# HG changeset patch # User sam # Date 1724326341 -25200 # Node ID 966032c7a3aa0603ae9ac6977780d0fe272c0cde # Parent df3c075e5dea262418ec10b6cc76c6c71d4fabaa did: formatting diff -r df3c075e5dea -r 966032c7a3aa semicongine/audio/generators.nim --- a/semicongine/audio/generators.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/audio/generators.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,6 +1,7 @@ proc sinewave(f: float): proc(x: float): float = proc ret(x: float): float = sin(x * 2 * Pi * f) + result = ret proc sineSoundData*(f: float, len: float, rate: int, amplitude = 0.5'f32): SoundData = diff -r df3c075e5dea -r 966032c7a3aa semicongine/audio/mixer.nim --- a/semicongine/audio/mixer.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/audio/mixer.nim Thu Aug 22 18:32:21 2024 +0700 @@ -27,6 +27,7 @@ levelLeft: Level levelRight: Level paused: bool + Track = object playing: Table[uint64, Playback] level: Level @@ -34,33 +35,29 @@ fadeTime: float fadeStep: float -proc `=copy`(dest: var Playback; source: Playback) {.error.} -proc `=copy`(dest: var Track; source: Track) {.error.} +proc `=copy`(dest: var Playback, source: Playback) {.error.} +proc `=copy`(dest: var Track, source: Track) {.error.} when defined(windows): include ./platform/windows when defined(linux): include ./platform/linux -type - Mixer* = object - playbackCounter: uint64 - tracks: Table[string, Track] - sounds*: Table[string, SoundData] - level: Level - device: NativeSoundDevice - lock: Lock - buffers: seq[SoundData] - currentBuffer: int - lastUpdate: MonoTime +type Mixer* = object + playbackCounter: uint64 + tracks: Table[string, Track] + sounds*: Table[string, SoundData] + level: Level + device: NativeSoundDevice + lock: Lock + buffers: seq[SoundData] + currentBuffer: int + lastUpdate: MonoTime -proc `=copy`(dest: var Mixer; source: Mixer) {.error.} +proc `=copy`(dest: var Mixer, source: Mixer) {.error.} proc initMixer(): Mixer = - result = Mixer( - tracks: initTable[string, Track](), - level: 1'f, - ) + result = Mixer(tracks: initTable[string, Track](), level: 1'f) result.tracks[""] = Track(level: 1) result.lock.initLock() @@ -75,8 +72,8 @@ # TODO: this should probably be in the load-code-stuff # proc LoadSound*(mixer: var Mixer, name: string, resource: string) = - # assert not (name in mixer.sounds) - # mixer.sounds[name] = LoadAudio(resource) +# assert not (name in mixer.sounds) +# mixer.sounds[name] = LoadAudio(resource) proc addSound*(mixer: var Mixer, name: string, sound: SoundData) = assert not (name in mixer.sounds) @@ -88,13 +85,20 @@ proc addTrack*(mixer: var Mixer, name: string, level: Level = 1'f) = assert not (name in mixer.tracks) - mixer.lock.withLock(): + mixer.lock.withLock: mixer.tracks[name] = Track(level: level) -proc play*(mixer: var Mixer, soundName: string, track = "", stopOtherSounds = false, loop = false, levelLeft, levelRight: Level): uint64 = +proc play*( + mixer: var Mixer, + soundName: string, + track = "", + stopOtherSounds = false, + loop = false, + levelLeft, levelRight: Level, +): uint64 = assert track in mixer.tracks, &"Track '{track}' does not exists" assert soundName in mixer.sounds, soundName & " not loaded" - mixer.lock.withLock(): + mixer.lock.withLock: if stopOtherSounds: mixer.tracks[track].playing.clear() mixer.tracks[track].playing[mixer.playbackCounter] = Playback( @@ -108,7 +112,14 @@ result = mixer.playbackCounter inc mixer.playbackCounter -proc play*(mixer: var Mixer, soundName: string, track = "", stopOtherSounds = false, loop = false, level: Level = 1'f): uint64 = +proc play*( + mixer: var Mixer, + soundName: string, + track = "", + stopOtherSounds = false, + loop = false, + level: Level = 1'f, +): uint64 = play( mixer = mixer, soundName = soundName, @@ -116,69 +127,88 @@ stopOtherSounds = stopOtherSounds, loop = loop, levelLeft = level, - levelRight = level + levelRight = level, ) proc stop*(mixer: var Mixer) = - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: track.playing.clear() -proc getLevel*(mixer: var Mixer): Level = mixer.level -proc getLevel*(mixer: var Mixer, track: string): Level = mixer.tracks[track].level +proc getLevel*(mixer: var Mixer): Level = + mixer.level + +proc getLevel*(mixer: var Mixer, track: string): Level = + mixer.tracks[track].level + proc getLevel*(mixer: var Mixer, playbackId: uint64): (Level, Level) = for track in mixer.tracks.mvalues: if playbackId in track.playing: return (track.playing[playbackId].levelLeft, track.playing[playbackId].levelRight) -proc setLevel*(mixer: var Mixer, level: Level) = mixer.level = level +proc setLevel*(mixer: var Mixer, level: Level) = + mixer.level = level + proc setLevel*(mixer: var Mixer, track: string, level: Level) = - mixer.lock.withLock(): + mixer.lock.withLock: mixer.tracks[track].level = level + proc setLevel*(mixer: var Mixer, playbackId: uint64, levelLeft, levelRight: Level) = - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: if playbackId in track.playing: track.playing[playbackId].levelLeft = levelLeft track.playing[playbackId].levelRight = levelRight + proc setLevel*(mixer: var Mixer, playbackId: uint64, level: Level) = setLevel(mixer, playbackId, level, level) proc stop*(mixer: var Mixer, track: string) = assert track in mixer.tracks - mixer.lock.withLock(): + mixer.lock.withLock: mixer.tracks[track].playing.clear() proc stop*(mixer: var Mixer, playbackId: uint64) = - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: if playbackId in track.playing: track.playing.del(playbackId) break proc pause*(mixer: var Mixer, value: bool) = - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: for playback in track.playing.mvalues: playback.paused = value proc pause*(mixer: var Mixer, track: string, value: bool) = - mixer.lock.withLock(): + mixer.lock.withLock: for playback in mixer.tracks[track].playing.mvalues: playback.paused = value proc pause*(mixer: var Mixer, playbackId: uint64, value: bool) = - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: if playbackId in track.playing: track.playing[playbackId].paused = value -proc pause*(mixer: var Mixer) = mixer.pause(true) -proc pause*(mixer: var Mixer, track: string) = mixer.pause(track, true) -proc pause*(mixer: var Mixer, playbackId: uint64) = mixer.pause(playbackId, true) -proc unpause*(mixer: var Mixer) = mixer.pause(false) -proc unpause*(mixer: var Mixer, track: string) = mixer.pause(track, false) -proc unpause*(mixer: var Mixer, playbackId: uint64) = mixer.pause(playbackId, false) +proc pause*(mixer: var Mixer) = + mixer.pause(true) + +proc pause*(mixer: var Mixer, track: string) = + mixer.pause(track, true) + +proc pause*(mixer: var Mixer, playbackId: uint64) = + mixer.pause(playbackId, true) + +proc unpause*(mixer: var Mixer) = + mixer.pause(false) + +proc unpause*(mixer: var Mixer, track: string) = + mixer.pause(track, false) + +proc unpause*(mixer: var Mixer, playbackId: uint64) = + mixer.pause(playbackId, false) proc fadeTo*(mixer: var Mixer, track: string, level: Level, time: float) = mixer.tracks[track].targetLevel = level @@ -186,7 +216,7 @@ mixer.tracks[track].fadeStep = level.float - mixer.tracks[track].level.float / time proc isPlaying*(mixer: var Mixer): bool = - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: for playback in track.playing.values: if not playback.paused: @@ -194,7 +224,7 @@ return false proc isPlaying*(mixer: var Mixer, track: string): bool = - mixer.lock.withLock(): + mixer.lock.withLock: if mixer.tracks.contains(track): for playback in mixer.tracks[track].playing.values: if not playback.paused: @@ -209,10 +239,7 @@ # used for combining sounds func mix(a, b: Sample): Sample = - [ - clip(int32(a[0]) + int32(b[0])), - clip(int32(a[1]) + int32(b[1])), - ] + [clip(int32(a[0]) + int32(b[0])), clip(int32(a[1]) + int32(b[1]))] proc updateSoundBuffer(mixer: var Mixer) = let t = getMonoTime() @@ -224,14 +251,15 @@ for track in mixer.tracks.mvalues: if track.fadeTime > 0: track.fadeTime -= dt - track.level = (track.level.float64 + track.fadeStep.float64 * dt).clamp(Level.low, Level.high) + track.level = + (track.level.float64 + track.fadeStep.float64 * dt).clamp(Level.low, Level.high) if track.fadeTime <= 0: track.level = track.targetLevel # mix var hasData = false for i in 0 ..< mixer.buffers[mixer.currentBuffer].len: var mixedSample = [0'i16, 0'i16] - mixer.lock.withLock(): + mixer.lock.withLock: for track in mixer.tracks.mvalues: var stoppedSounds: seq[uint64] for (id, playback) in track.playing.mpairs: @@ -305,7 +333,11 @@ proc audioWorker() {.thread.} = mixer[].setupDevice() - onThreadDestruction(proc() = mixer[].lock.withLock(mixer[].destroy()); freeShared(mixer)) + onThreadDestruction( + proc() = + mixer[].lock.withLock(mixer[].destroy()) + freeShared(mixer) + ) while true: mixer[].updateSoundBuffer() diff -r df3c075e5dea -r 966032c7a3aa semicongine/audio/platform/linux.nim --- a/semicongine/audio/platform/linux.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/audio/platform/linux.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,64 +1,109 @@ # alsa API type - OpenMode*{.size: sizeof(culong).} = enum + OpenMode* {.size: sizeof(culong).} = enum SND_PCM_BLOCK = 0x00000000 # added by semicongine, for clarity SND_PCM_NONBLOCK = 0x00000001 + StreamMode* {.size: sizeof(cint).} = enum SND_PCM_STREAM_PLAYBACK = 0 - AccessMode*{.size: sizeof(cint).} = enum + + AccessMode* {.size: sizeof(cint).} = enum SND_PCM_ACCESS_RW_INTERLEAVED = 3 - PCMFormat*{.size: sizeof(cint).} = enum + + PCMFormat* {.size: sizeof(cint).} = enum SND_PCM_FORMAT_S16_LE = 2 + snd_pcm_p* = ptr object snd_pcm_hw_params_p* = ptr object snd_pcm_uframes_t* = culong snd_pcm_sframes_t* = clong + {.pragma: alsafunc, importc, cdecl, dynlib: "libasound.so.2".} -proc snd_pcm_open*(pcm_ref: ptr snd_pcm_p, name: cstring, streamMode: StreamMode, openmode: OpenMode): cint {.alsafunc.} +proc snd_pcm_open*( + pcm_ref: ptr snd_pcm_p, name: cstring, streamMode: StreamMode, openmode: OpenMode +): cint {.alsafunc.} + proc snd_pcm_close*(pcm: snd_pcm_p): cint {.alsafunc.} -proc snd_pcm_hw_params_malloc*(hw_params_ptr: ptr snd_pcm_hw_params_p): cint {.alsafunc.} +proc snd_pcm_hw_params_malloc*( + hw_params_ptr: ptr snd_pcm_hw_params_p +): cint {.alsafunc.} + proc snd_pcm_hw_params_free*(hw_params: snd_pcm_hw_params_p) {.alsafunc.} -proc snd_pcm_hw_params_any*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p): cint {.alsafunc.} -proc snd_pcm_hw_params_set_access*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p, mode: AccessMode): cint {.alsafunc.} -proc snd_pcm_hw_params_set_format*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p, format: PCMFormat): cint {.alsafunc.} -proc snd_pcm_hw_params_set_channels*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p, val: cuint): cint {.alsafunc.} -proc snd_pcm_hw_params_set_buffer_size*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p, size: snd_pcm_uframes_t): cint {.alsafunc.} -proc snd_pcm_hw_params_set_rate*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p, val: cuint, dir: cint): cint {.alsafunc.} +proc snd_pcm_hw_params_any*( + pcm: snd_pcm_p, params: snd_pcm_hw_params_p +): cint {.alsafunc.} + +proc snd_pcm_hw_params_set_access*( + pcm: snd_pcm_p, params: snd_pcm_hw_params_p, mode: AccessMode +): cint {.alsafunc.} + +proc snd_pcm_hw_params_set_format*( + pcm: snd_pcm_p, params: snd_pcm_hw_params_p, format: PCMFormat +): cint {.alsafunc.} + +proc snd_pcm_hw_params_set_channels*( + pcm: snd_pcm_p, params: snd_pcm_hw_params_p, val: cuint +): cint {.alsafunc.} + +proc snd_pcm_hw_params_set_buffer_size*( + pcm: snd_pcm_p, params: snd_pcm_hw_params_p, size: snd_pcm_uframes_t +): cint {.alsafunc.} + +proc snd_pcm_hw_params_set_rate*( + pcm: snd_pcm_p, params: snd_pcm_hw_params_p, val: cuint, dir: cint +): cint {.alsafunc.} + proc snd_pcm_hw_params*(pcm: snd_pcm_p, params: snd_pcm_hw_params_p): cint {.alsafunc.} -proc snd_pcm_writei*(pcm: snd_pcm_p, buffer: pointer, size: snd_pcm_uframes_t): snd_pcm_sframes_t {.alsafunc.} +proc snd_pcm_writei*( + pcm: snd_pcm_p, buffer: pointer, size: snd_pcm_uframes_t +): snd_pcm_sframes_t {.alsafunc.} + proc snd_pcm_recover*(pcm: snd_pcm_p, err: cint, silent: cint): cint {.alsafunc.} template checkAlsaResult(call: untyped) = let value = call if value < 0: - raise newException(Exception, "Alsa error: " & astToStr(call) & - " returned " & $value) + raise + newException(Exception, "Alsa error: " & astToStr(call) & " returned " & $value) # required for engine: -type - NativeSoundDevice* = object - handle: snd_pcm_p - buffers: seq[ptr SoundData] +type NativeSoundDevice* = object + handle: snd_pcm_p + buffers: seq[ptr SoundData] -proc OpenSoundDevice*(sampleRate: uint32, buffers: seq[ptr SoundData]): NativeSoundDevice = +proc OpenSoundDevice*( + sampleRate: uint32, buffers: seq[ptr SoundData] +): NativeSoundDevice = var hw_params: snd_pcm_hw_params_p = nil - checkAlsaResult snd_pcm_open(addr result.handle, "default", SND_PCM_STREAM_PLAYBACK, SND_PCM_BLOCK) + checkAlsaResult snd_pcm_open( + addr result.handle, "default", SND_PCM_STREAM_PLAYBACK, SND_PCM_BLOCK + ) # hw parameters, quiet a bit of hardcoding here checkAlsaResult snd_pcm_hw_params_malloc(addr hw_params) checkAlsaResult snd_pcm_hw_params_any(result.handle, hw_params) - checkAlsaResult snd_pcm_hw_params_set_access(result.handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED) - checkAlsaResult snd_pcm_hw_params_set_format(result.handle, hw_params, SND_PCM_FORMAT_S16_LE) + checkAlsaResult snd_pcm_hw_params_set_access( + result.handle, hw_params, SND_PCM_ACCESS_RW_INTERLEAVED + ) + checkAlsaResult snd_pcm_hw_params_set_format( + result.handle, hw_params, SND_PCM_FORMAT_S16_LE + ) checkAlsaResult snd_pcm_hw_params_set_rate(result.handle, hw_params, sampleRate, 0) checkAlsaResult snd_pcm_hw_params_set_channels(result.handle, hw_params, 2) - checkAlsaResult snd_pcm_hw_params_set_buffer_size(result.handle, hw_params, snd_pcm_uframes_t(buffers[0][].len)) + checkAlsaResult snd_pcm_hw_params_set_buffer_size( + result.handle, hw_params, snd_pcm_uframes_t(buffers[0][].len) + ) checkAlsaResult snd_pcm_hw_params(result.handle, hw_params) snd_pcm_hw_params_free(hw_params) result.buffers = buffers proc WriteSoundData*(soundDevice: NativeSoundDevice, buffer: int) = - var ret = snd_pcm_writei(soundDevice.handle, addr soundDevice.buffers[buffer][][0], snd_pcm_uframes_t(soundDevice.buffers[buffer][].len)) + var ret = snd_pcm_writei( + soundDevice.handle, + addr soundDevice.buffers[buffer][][0], + snd_pcm_uframes_t(soundDevice.buffers[buffer][].len), + ) if ret < 0: checkAlsaResult snd_pcm_recover(soundDevice.handle, cint(ret), 0) diff -r df3c075e5dea -r 966032c7a3aa semicongine/audio/platform/windows.nim --- a/semicongine/audio/platform/windows.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/audio/platform/windows.nim Thu Aug 22 18:32:21 2024 +0700 @@ -4,18 +4,20 @@ # import ../../thirdparty/winim/winim/inc/[windef, winuser, wincon, winbase] - template CheckWinMMResult*(call: untyped) = let value = call if value < 0: - raise newException(Exception, "Windows multimedia error: " & astToStr(call) & - " returned " & $value) -type - NativeSoundDevice* = object - handle: HWAVEOUT - buffers: seq[WAVEHDR] + raise newException( + Exception, "Windows multimedia error: " & astToStr(call) & " returned " & $value + ) -proc OpenSoundDevice*(sampleRate: uint32, buffers: seq[ptr SoundData]): NativeSoundDevice = +type NativeSoundDevice* = object + handle: HWAVEOUT + buffers: seq[WAVEHDR] + +proc OpenSoundDevice*( + sampleRate: uint32, buffers: seq[ptr SoundData] +): NativeSoundDevice = var format = WAVEFORMATEX( wFormatTag: WAVE_FORMAT_PCM, nChannels: 2, @@ -25,7 +27,14 @@ wBitsPerSample: 16, cbSize: 0, ) - CheckWinMMResult waveOutOpen(addr result.handle, WAVE_MAPPER, addr format, DWORD_PTR(0), DWORD_PTR(0), CALLBACK_NULL) + CheckWinMMResult waveOutOpen( + addr result.handle, + WAVE_MAPPER, + addr format, + DWORD_PTR(0), + DWORD_PTR(0), + CALLBACK_NULL, + ) for i in 0 ..< buffers.len: result.buffers.add WAVEHDR( @@ -34,15 +43,23 @@ dwLoops: 1, ) for i in 0 ..< result.buffers.len: - CheckWinMMResult waveOutPrepareHeader(result.handle, addr result.buffers[i], UINT(sizeof(WAVEHDR))) - CheckWinMMResult waveOutWrite(result.handle, addr result.buffers[i], UINT(sizeof(WAVEHDR))) + CheckWinMMResult waveOutPrepareHeader( + result.handle, addr result.buffers[i], UINT(sizeof(WAVEHDR)) + ) + CheckWinMMResult waveOutWrite( + result.handle, addr result.buffers[i], UINT(sizeof(WAVEHDR)) + ) proc WriteSoundData*(soundDevice: var NativeSoundDevice, buffer: int) = while (soundDevice.buffers[buffer].dwFlags and WHDR_DONE) == 0: sleep(1) - CheckWinMMResult waveOutWrite(soundDevice.handle, addr soundDevice.buffers[buffer], UINT(sizeof(WAVEHDR))) + CheckWinMMResult waveOutWrite( + soundDevice.handle, addr soundDevice.buffers[buffer], UINT(sizeof(WAVEHDR)) + ) proc CloseSoundDevice*(soundDevice: var NativeSoundDevice) = for i in 0 ..< soundDevice.buffers.len: - discard waveOutUnprepareHeader(soundDevice.handle, addr soundDevice.buffers[i], UINT(sizeof(WAVEHDR))) + discard waveOutUnprepareHeader( + soundDevice.handle, addr soundDevice.buffers[i], UINT(sizeof(WAVEHDR)) + ) waveOutClose(soundDevice.handle) diff -r df3c075e5dea -r 966032c7a3aa semicongine/audio/resources.nim --- a/semicongine/audio/resources.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/audio/resources.nim Thu Aug 22 18:32:21 2024 +0700 @@ -48,9 +48,16 @@ assert header.magicNumber == 0x2e736e64 if header.sampleRate != AUDIO_SAMPLE_RATE: - raise newException(Exception, &"Only support sample rate of {AUDIO_SAMPLE_RATE} Hz but got {header.sampleRate} Hz, please resample (e.g. ffmpeg -i -ar {AUDIO_SAMPLE_RATE} )") + raise newException( + Exception, + &"Only support sample rate of {AUDIO_SAMPLE_RATE} Hz but got {header.sampleRate} Hz, please resample (e.g. ffmpeg -i -ar {AUDIO_SAMPLE_RATE} )", + ) if not (header.channels in [1'u32, 2'u32]): - raise newException(Exception, "Only support mono and stereo audio at the moment (1 or 2 channels), but found " & $header.channels) + raise newException( + Exception, + "Only support mono and stereo audio at the moment (1 or 2 channels), but found " & + $header.channels, + ) var annotation: string stream.read(annotation) @@ -61,7 +68,13 @@ {.compile: currentSourcePath.parentDir() & "/stb_vorbis.c".} -proc stb_vorbis_decode_memory(mem: pointer, len: cint, channels: ptr cint, sample_rate: ptr cint, output: ptr ptr cshort): cint {.importc.} +proc stb_vorbis_decode_memory( + mem: pointer, + len: cint, + channels: ptr cint, + sample_rate: ptr cint, + output: ptr ptr cshort, +): cint {.importc.} proc readVorbis*(stream: Stream): SoundData = var @@ -70,12 +83,19 @@ sampleRate: cint output: ptr cshort - var nSamples = stb_vorbis_decode_memory(addr data[0], cint(data.len), addr channels, addr sampleRate, addr output) + var nSamples = stb_vorbis_decode_memory( + addr data[0], cint(data.len), addr channels, addr sampleRate, addr output + ) if nSamples < 0: - raise newException(Exception, &"Unable to read ogg/vorbis sound file, error code: {nSamples}") + raise newException( + Exception, &"Unable to read ogg/vorbis sound file, error code: {nSamples}" + ) if sampleRate != AUDIO_SAMPLE_RATE: - raise newException(Exception, &"Only support sample rate of {AUDIO_SAMPLE_RATE} Hz but got {sampleRate} Hz, please resample (e.g. ffmpeg -i -acodec libvorbis -ar {AUDIO_SAMPLE_RATE} )") + raise newException( + Exception, + &"Only support sample rate of {AUDIO_SAMPLE_RATE} Hz but got {sampleRate} Hz, please resample (e.g. ffmpeg -i -acodec libvorbis -ar {AUDIO_SAMPLE_RATE} )", + ) if channels == 2: result.setLen(int(nSamples)) @@ -88,7 +108,11 @@ nativeFree(output) else: nativeFree(output) - raise newException(Exception, "Only support mono and stereo audio at the moment (1 or 2 channels), but found " & $channels) + raise newException( + Exception, + "Only support mono and stereo audio at the moment (1 or 2 channels), but found " & + $channels, + ) proc loadAudio*(path: string, package = DEFAULT_PACKAGE): SoundData = if path.splitFile().ext.toLowerAscii == ".au": @@ -97,4 +121,3 @@ loadResource_intern(path, package = package).readVorbis() else: raise newException(Exception, "Unsupported audio file type: " & path) - diff -r df3c075e5dea -r 966032c7a3aa semicongine/build.nim --- a/semicongine/build.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/build.nim Thu Aug 22 18:32:21 2024 +0700 @@ -6,13 +6,17 @@ include ./core/globals -const BLENDER_CONVERT_SCRIPT = currentSourcePath().parentDir().parentDir().joinPath("tools/blender_gltf_converter.py") -const STEAMCMD_ZIP = currentSourcePath().parentDir().parentDir().joinPath("tools/steamcmd.zip") +const BLENDER_CONVERT_SCRIPT = currentSourcePath().parentDir().parentDir().joinPath( + "tools/blender_gltf_converter.py" + ) +const STEAMCMD_ZIP = + currentSourcePath().parentDir().parentDir().joinPath("tools/steamcmd.zip") const STEAMBUILD_DIR_NAME = "steam" var STEAMLIB: string if defined(linux): - STEAMLIB = currentSourcePath().parentDir().parentDir().joinPath("libs/libsteam_api.so") + STEAMLIB = + currentSourcePath().parentDir().parentDir().joinPath("libs/libsteam_api.so") elif defined(windows): STEAMLIB = currentSourcePath().parentDir().parentDir().joinPath("libs/steam_api.dll") else: @@ -44,9 +48,12 @@ raise newException(Exception, "Unsupported platform") switch("outdir", semicongine_builddir(buildname, builddir = builddir)) - switch("passL", "-Wl,-rpath,'$ORIGIN'") # adds directory of executable to dynlib search path + switch("passL", "-Wl,-rpath,'$ORIGIN'") + # adds directory of executable to dynlib search path -proc semicongine_pack*(outdir: string, bundleType: string, resourceRoot: string, withSteam: bool) = +proc semicongine_pack*( + outdir: string, bundleType: string, resourceRoot: string, withSteam: bool +) = switch("define", "PACKAGETYPE=" & bundleType) assert resourceRoot.dirExists, &"Resource root '{resourceRoot}' does not exists" @@ -54,7 +61,8 @@ outdir.rmDir() outdir.mkDir() - echo "BUILD: Packing assets from '" & resourceRoot & "' into directory '" & outdir & "'" + echo "BUILD: Packing assets from '" & resourceRoot & "' into directory '" & outdir & + "'" let outdir_resources = joinPath(outdir, RESOURCEROOT) if bundleType == "dir": cpDir(resourceRoot, outdir_resources) @@ -72,7 +80,8 @@ else: raise newException(Exception, "Unsupported platform") elif bundleType == "exe": - switch("define", "BUILD_RESOURCEROOT=" & joinPath(getCurrentDir(), resourceRoot)) # required for in-exe packing of resources, must be absolute + switch("define", "BUILD_RESOURCEROOT=" & joinPath(getCurrentDir(), resourceRoot)) + # required for in-exe packing of resources, must be absolute if withSteam: STEAMLIB.cpFile(outdir.joinPath(STEAMLIB.extractFilename)) @@ -88,7 +97,6 @@ else: raise newException(Exception, "Unsupported platform") - # need this because fileNewer from std/os does not work in Nim VM proc fileNewerStatic(file1, file2: string): bool = assert file1.fileExists @@ -98,7 +106,7 @@ let ex = gorgeEx(command) return ex.exitCode == 0 elif defined(window): - {.error "Resource imports not supported on windows for now".} + {.error, "Resource imports not supported on windows for now".} proc import_meshes*(files: seq[(string, string)]) = if files.len == 0: @@ -113,12 +121,16 @@ proc import_audio*(files: seq[(string, string)]) = for (input, output) in files: - let command = "ffmpeg " & ["-y", "-i", input, "-ar", $AUDIO_SAMPLE_RATE, output].join(" ") + let command = + "ffmpeg " & ["-y", "-i", input, "-ar", $AUDIO_SAMPLE_RATE, output].join(" ") exec(command) proc semicongine_import_resource_file*(resourceMap: openArray[(string, string)]) = when not defined(linux): - {.warning: "Resource files can only be imported on linux, please make sure that the required files are created by runing the build on a linux machine.".} + {. + warning: + "Resource files can only be imported on linux, please make sure that the required files are created by runing the build on a linux machine." + .} return var meshfiles: seq[(string, string)] var audiofiles: seq[(string, string)] @@ -142,7 +154,6 @@ import_meshes meshfiles import_audio audiofiles - # for steam-buildscript docs see https://partner.steamgames.com/doc/sdk/uploading proc semicongine_steam_upload*(steamaccount, password, buildscript: string) = let steamdir = thisDir().joinPath(STEAMBUILD_DIR_NAME) @@ -173,7 +184,11 @@ exec &"./{steamcmd} +login \"{steamaccount}\" \"{password}\" +run_app_build {scriptPath} +quit" proc semicongine_sign_executable*(file: string) = - const SIGNTOOL_EXE = "C:/Program Files (x86)/Windows Kits/10/App Certification Kit/signtool.exe" + const SIGNTOOL_EXE = + "C:/Program Files (x86)/Windows Kits/10/App Certification Kit/signtool.exe" if not SIGNTOOL_EXE.fileExists: - raise newException(Exception, &"signtool.exe not found at ({SIGNTOOL_EXE}), please install the Windows SDK") + raise newException( + Exception, + &"signtool.exe not found at ({SIGNTOOL_EXE}), please install the Windows SDK", + ) exec &"\"{SIGNTOOL_EXE}\" sign /a /tr http://timestamp.globalsign.com/tsa/r6advanced1 /fd SHA256 /td SHA256 {file}" diff -r df3c075e5dea -r 966032c7a3aa semicongine/contrib/algorithms/collision.nim --- a/semicongine/contrib/algorithms/collision.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/contrib/algorithms/collision.nim Thu Aug 22 18:32:21 2024 +0700 @@ -7,20 +7,23 @@ type ColliderType* = enum - Box, Sphere, Points + Box + Sphere + Points + Collider* = object transform*: Mat4 = Unit4F32 case theType*: ColliderType - of Box: discard - of Sphere: radius*: float32 - of Points: points*: seq[Vec3f] + of Box: discard + of Sphere: radius*: float32 + of Points: points*: seq[Vec3f] func between(value, b1, b2: float32): bool = min(b1, b2) <= value and value <= max(b1, b2) func contains*(collider: Collider, x: Vec3f): bool = # from https://math.stackexchange.com/questions/1472049/check-if-a-point-is-inside-a-rectangular-shaped-area-3d - case collider.theType: + case collider.theType of Box: let P1 = collider.transform * vec3(0, 0, 0) # origin @@ -70,7 +73,7 @@ transform * (Y + Z), transform * (X + Y + Z), ], - direction + direction, ) func findFurthestPoint(collider: Collider, direction: Vec3f): Vec3f = case collider.theType @@ -93,7 +96,7 @@ a = simplex[0] b = simplex[1] ab = b - a - ao = - a + ao = -a if sameDirection(ab, ao): direction = cross(cross(ab, ao), ab) @@ -103,14 +106,16 @@ return false -func triangle(simplex: var seq[Vec3f], direction: var Vec3f, twoDimensional = false): bool = +func triangle( + simplex: var seq[Vec3f], direction: var Vec3f, twoDimensional = false +): bool = let a = simplex[0] b = simplex[1] c = simplex[2] ab = b - a ac = c - a - ao = - a + ao = -a abc = ab.cross(ac) if sameDirection(abc.cross(ac), ao): @@ -144,7 +149,7 @@ ab = b - a ac = c - a ad = d - a - ao = - a + ao = -a abc = ab.cross(ac) acd = ac.cross(ad) adb = ad.cross(ab) @@ -195,28 +200,32 @@ else: edges.add (faces[a], faces[b]) -func nextSimplex(simplex: var seq[Vec3f], direction: var Vec3f, twoDimensional = false): bool = +func nextSimplex( + simplex: var seq[Vec3f], direction: var Vec3f, twoDimensional = false +): bool = case simplex.len - of 2: simplex.line(direction) - of 3: simplex.triangle(direction, twoDimensional) - of 4: simplex.tetrahedron(direction) - else: raise newException(Exception, "Error in simplex") + of 2: + simplex.line(direction) + of 3: + simplex.triangle(direction, twoDimensional) + of 4: + simplex.tetrahedron(direction) + else: + raise newException(Exception, "Error in simplex") -func collisionPoint3D(simplex: var seq[Vec3f], a, b: Collider): tuple[normal: Vec3f, penetrationDepth: float32] = +func collisionPoint3D( + simplex: var seq[Vec3f], a, b: Collider +): tuple[normal: Vec3f, penetrationDepth: float32] = var polytope = simplex - faces = @[ - 0, 1, 2, - 0, 3, 1, - 0, 2, 3, - 1, 3, 2 - ] + faces = @[0, 1, 2, 0, 3, 1, 0, 2, 3, 1, 3, 2] (normals, minFace) = getFaceNormals(polytope, faces) minNormal: Vec3f minDistance = high(float32) iterCount = 0 - while minDistance == high(float32) and iterCount < MAX_COLLISON_POINT_CALCULATION_ITERATIONS: + while minDistance == high(float32) and + iterCount < MAX_COLLISON_POINT_CALCULATION_ITERATIONS: minNormal = normals[minFace].xyz minDistance = normals[minFace].w var @@ -273,8 +282,9 @@ result = (normal: minNormal, penetrationDepth: minDistance + 0.001'f32) - -func collisionPoint2D(polytopeIn: seq[Vec3f], a, b: Collider): tuple[normal: Vec3f, penetrationDepth: float32] = +func collisionPoint2D( + polytopeIn: seq[Vec3f], a, b: Collider +): tuple[normal: Vec3f, penetrationDepth: float32] = var polytope = polytopeIn minIndex = 0 @@ -282,7 +292,8 @@ iterCount = 0 minNormal: Vec2f - while minDistance == high(float32) and iterCount < MAX_COLLISON_POINT_CALCULATION_ITERATIONS: + while minDistance == high(float32) and + iterCount < MAX_COLLISON_POINT_CALCULATION_ITERATIONS: for i in 0 ..< polytope.len: let j = (i + 1) mod polytope.len @@ -306,16 +317,19 @@ support = supportPoint(a, b, minNormal.ToVec3) sDistance = minNormal.dot(support) - if(abs(sDistance - minDistance) > 0.001): + if (abs(sDistance - minDistance) > 0.001): minDistance = high(float32) polytope.insert(support, minIndex) inc iterCount - result = (normal: vec3(minNormal.x, minNormal.y, 0), penetrationDepth: minDistance + 0.001'f32) + result = ( + normal: vec3(minNormal.x, minNormal.y, 0), penetrationDepth: minDistance + 0.001'f32 + ) func intersects*(a, b: Collider, as2D = false): bool = var - support = supportPoint(a, b, vec3(0.8153, -0.4239, if as2D: 0.0 else: 0.5786)) # just random initial vector + support = supportPoint(a, b, vec3(0.8153, -0.4239, if as2D: 0.0 else: 0.5786)) + # just random initial vector simplex = newSeq[Vec3f]() direction = -support n = 0 @@ -332,9 +346,12 @@ direction[0] = 0.0001 inc n -func collision*(a, b: Collider, as2D = false): tuple[hasCollision: bool, normal: Vec3f, penetrationDepth: float32] = +func collision*( + a, b: Collider, as2D = false +): tuple[hasCollision: bool, normal: Vec3f, penetrationDepth: float32] = var - support = supportPoint(a, b, vec3(0.8153, -0.4239, if as2D: 0.0 else: 0.5786)) # just random initial vector + support = supportPoint(a, b, vec3(0.8153, -0.4239, if as2D: 0.0 else: 0.5786)) + # just random initial vector simplex = newSeq[Vec3f]() direction = -support n = 0 @@ -345,7 +362,11 @@ return result simplex.insert(support, 0) if nextSimplex(simplex, direction, twoDimensional = as2D): - let (normal, depth) = if as2D: collisionPoint2D(simplex, a, b) else: collisionPoint3D(simplex, a, b) + let (normal, depth) = + if as2D: + collisionPoint2D(simplex, a, b) + else: + collisionPoint3D(simplex, a, b) return (true, normal, depth) # prevent numeric instability if direction == vec3(0, 0, 0): @@ -380,7 +401,10 @@ if theType == Points: result = Collider(theType: Points, points: @points) else: - result = Collider(theType: theType, transform: translate(minX, minY, minZ) * scale(scaleX, scaleY, scaleZ)) + result = Collider( + theType: theType, + transform: translate(minX, minY, minZ) * scale(scaleX, scaleY, scaleZ), + ) if theType == Sphere: result.transform = translate(center) diff -r df3c075e5dea -r 966032c7a3aa semicongine/contrib/algorithms/noise.nim --- a/semicongine/contrib/algorithms/noise.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/contrib/algorithms/noise.nim Thu Aug 22 18:32:21 2024 +0700 @@ -4,12 +4,13 @@ import ../../core proc randomGradient(pos: Vec2f, seed: int32 = 0): Vec2f = - let randomAngle: float32 = TAU * (float32(int(hash((pos.x, pos.y, seed)))) / float32(high(int))) + let randomAngle: float32 = + TAU * (float32(int(hash((pos.x, pos.y, seed)))) / float32(high(int))) return vec2(cos(randomAngle), sin(randomAngle)) proc interpolate(a: float32, b: float32, weight: float32): float32 = # with Smootherstep - (b - a) * ((weight * (weight * 6.0 - 15.0) + 10.0) * weight * weight * weight) + a; + (b - a) * ((weight * (weight * 6.0 - 15.0) + 10.0) * weight * weight * weight) + a proc perlin*(pos: Vec2f, seed: int32 = 0): float32 = let @@ -29,5 +30,5 @@ return interpolate( interpolate(topleft_dot, bottomleft_dot, yinterpol), interpolate(topright_dot, bottomright_dot, yinterpol), - xinterpol + xinterpol, ) diff -r df3c075e5dea -r 966032c7a3aa semicongine/contrib/algorithms/texture_packing.nim --- a/semicongine/contrib/algorithms/texture_packing.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/contrib/algorithms/texture_packing.nim Thu Aug 22 18:32:21 2024 +0700 @@ -2,28 +2,29 @@ import ../../image -type - Rect = tuple - i: int - x, y, w, h: uint32 +type Rect = tuple[i: int, x, y, w, h: uint32] func between(a1, a2, b: uint32): bool = a1 <= b and b <= a2 func overlap(a1, a2, b1, b2: uint32): bool = - return between(a1, a2, b1) or - between(a1, a2, b2) or - between(b1, b2, a1) or - between(b1, b2, a2) + return + between(a1, a2, b1) or between(a1, a2, b2) or between(b1, b2, a1) or + between(b1, b2, a2) # FYI: also serves as "overlaps" func advanceIfOverlap(fix, newRect: Rect): (bool, uint32) = - let overlapping = overlap(fix.x, fix.x + fix.w - 1, newRect.x, newRect.x + newRect.w - 1) and - overlap(fix.y, fix.y + fix.h - 1, newRect.y, newRect.y + newRect.h - 1) - if overlapping: (true, fix.x + fix.w) # next free x coordinate to the right - else: (false, newRect.x) # current position is fine + let overlapping = + overlap(fix.x, fix.x + fix.w - 1, newRect.x, newRect.x + newRect.w - 1) and + overlap(fix.y, fix.y + fix.h - 1, newRect.y, newRect.y + newRect.h - 1) + if overlapping: + (true, fix.x + fix.w) # next free x coordinate to the right + else: + (false, newRect.x) # current position is fine -proc findInsertionPosition(alreadyPlaced: seq[Rect], area: tuple[i: int, w, h: uint32], maxDim: uint32): (bool, Rect) = +proc findInsertionPosition( + alreadyPlaced: seq[Rect], area: tuple[i: int, w, h: uint32], maxDim: uint32 +): (bool, Rect) = var newRect = (i: area.i, x: 0'u32, y: 0'u32, w: area.w, h: area.h) while newRect.y + newRect.h <= maxDim: @@ -32,7 +33,8 @@ for placed in alreadyPlaced: (hasOverlap, advanceX) = placed.advanceIfOverlap(newRect) - if hasOverlap: # rects were overlapping and newRect needs to be shifted to the right + if hasOverlap: + # rects were overlapping and newRect needs to be shifted to the right newRect.x = advanceX break @@ -45,8 +47,9 @@ return (false, newRect) - -proc pack*[T: PixelType](images: seq[Image[T]]): tuple[atlas: Image[T], coords: seq[tuple[x: uint32, y: uint32]]] = +proc pack*[T: PixelType]( + images: seq[Image[T]] +): tuple[atlas: Image[T], coords: seq[tuple[x: uint32, y: uint32]]] = const MAX_ATLAS_SIZE = 4096'u32 var areas: seq[tuple[i: int, w, h: uint32]] @@ -59,9 +62,11 @@ for area in areasBySize: var pos = findInsertionPosition(assignedAreas, area, maxDim) - while not pos[0]: # this should actually never loop more than once, but weird things happen ¯\_(ツ)_/¯ + while not pos[0]: + # this should actually never loop more than once, but weird things happen ¯\_(ツ)_/¯ maxDim = maxDim * 2 - assert maxDim <= MAX_ATLAS_SIZE, &"Atlas gets bigger than {MAX_ATLAS_SIZE}, cannot pack images" + assert maxDim <= MAX_ATLAS_SIZE, + &"Atlas gets bigger than {MAX_ATLAS_SIZE}, cannot pack images" pos = findInsertionPosition(assignedAreas, area, maxDim) assignedAreas.add pos[1] @@ -69,17 +74,21 @@ # check there are overlaps for i in 0 ..< assignedAreas.len - 1: for j in i + 1 ..< assignedAreas.len: - assert not assignedAreas[i].advanceIfOverlap(assignedAreas[j])[0], &"{assignedAreas[i]} and {assignedAreas[j]} overlap!" + assert not assignedAreas[i].advanceIfOverlap(assignedAreas[j])[0], + &"{assignedAreas[i]} and {assignedAreas[j]} overlap!" - result.atlas = Image[T](width: maxDim, height: maxDim, data: newSeq[T](maxDim * maxDim)) + result.atlas = + Image[T](width: maxDim, height: maxDim, data: newSeq[T](maxDim * maxDim)) result.coords.setLen(images.len) for rect in assignedAreas: for y in 0 ..< rect.h: for x in 0 ..< rect.w: when T is Gray: - assert result.atlas[rect.x + x, rect.y + y] == [0'u8], "Atlas texture packing encountered an overlap error" + assert result.atlas[rect.x + x, rect.y + y] == [0'u8], + "Atlas texture packing encountered an overlap error" elif T is BGRA: - assert result.atlas[rect.x + x, rect.y + y] == [0'u8, 0'u8, 0'u8, 0'u8], "Atlas texture packing encountered an overlap error" + assert result.atlas[rect.x + x, rect.y + y] == [0'u8, 0'u8, 0'u8, 0'u8], + "Atlas texture packing encountered an overlap error" else: {.error: "Unsupported type for texture packing".} result.atlas[rect.x + x, rect.y + y] = images[rect.i][x, y] diff -r df3c075e5dea -r 966032c7a3aa semicongine/contrib/settings.nim --- a/semicongine/contrib/settings.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/contrib/settings.nim Thu Aug 22 18:32:21 2024 +0700 @@ -11,10 +11,8 @@ const CONFIGROOT {.strdefine.}: string = "." const CONFIGEXTENSION {.strdefine.}: string = "ini" - when CONFIGHOTRELOAD: - var - configUpdates: Channel[(string, string)] + var configUpdates: Channel[(string, string)] configUpdates.open() # runtime configuration @@ -55,27 +53,35 @@ raise newException(Exception, &"Settings {namespace}.{section}.{key} was not found") allsettings[namespace].getSectionValue(section, key) -proc Setting*[T: int|float|string](key, section, namespace: string): T = +proc Setting*[T: int | float | string](key, section, namespace: string): T = when T is int: let value = configStr(key, section, namespace) if parseInt(value, result) == 0: - raise newException(Exception, &"Unable to parse int from settings {namespace}.{section}.{key}: {value}") + raise newException( + Exception, + &"Unable to parse int from settings {namespace}.{section}.{key}: {value}", + ) elif T is float: let value = configStr(key, section, namespace) if parseFloat(value, result) == 0: - raise newException(Exception, &"Unable to parse float from settings {namespace}.{section}.{key}: {value}") + raise newException( + Exception, + &"Unable to parse float from settings {namespace}.{section}.{key}: {value}", + ) else: result = configStr(key, section, namespace) -proc Setting*[T: int|float|string](identifier: string): T = +proc Setting*[T: int | float | string](identifier: string): T = # identifier can be in the form: # {namespace}.{key} # {namespace}.{section}.{key} let parts = identifier.rsplit(".") if parts.len == 1: raise newException(Exception, &"Setting with name {identifier} has no namespace") - if parts.len == 2: result = Setting[T](parts[1], "", parts[0]) - else: result = Setting[T](parts[^1], parts[^2], joinPath(parts[0 .. ^3])) + if parts.len == 2: + result = Setting[T](parts[1], "", parts[0]) + else: + result = Setting[T](parts[^1], parts[^2], joinPath(parts[0 .. ^3])) proc HadConfigUpdate*(): bool = when CONFIGHOTRELOAD == true: @@ -96,5 +102,6 @@ let configStr = newFileStream(namespace.getFile()).readAll() configUpdates.send((namespace, configStr)) sleep CONFIGHOTRELOADINTERVAL + var thethread: Thread[void] createThread(thethread, configFileWatchdog) diff -r df3c075e5dea -r 966032c7a3aa semicongine/contrib/steam.nim --- a/semicongine/contrib/steam.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/contrib/steam.nim Thu Aug 22 18:32:21 2024 +0700 @@ -12,10 +12,8 @@ steam_api = "steam_api".loadLib() # TODO: maybe should get some error reporting on windows too? - # required to store reference, when calling certain APIs -type - SteamUserStatsRef = ptr object +type SteamUserStatsRef = ptr object var userStats: SteamUserStatsRef # load function pointers for steam API @@ -23,13 +21,16 @@ Shutdown*: proc() {.stdcall.} Init: proc(msg: ptr array[1024, char]): cint {.stdcall.} SteamUserStats: proc(): SteamUserStatsRef {.stdcall.} - RequestCurrentStats: proc(self: SteamUserStatsRef): bool {.stdcall.} # needs to be called before the achievment-stuff + RequestCurrentStats: proc(self: SteamUserStatsRef): bool {.stdcall.} + # needs to be called before the achievment-stuff ClearAchievement: proc(self: SteamUserStatsRef, pchName: cstring): bool {.stdcall.} SetAchievement: proc(self: SteamUserStatsRef, pchName: cstring): bool {.stdcall.} - StoreStats: proc(self: SteamUserStatsRef): bool {.stdcall.} # needs to be called in order for achievments to be saved - # dynlib-helper function + StoreStats: proc(self: SteamUserStatsRef): bool {.stdcall.} + # needs to be called in order for achievments to be saved + # dynlib-helper function proc loadFunc[T](nimFunc: var T, dllFuncName: string) = nimFunc = cast[T](steam_api.checkedSymAddr(dllFuncName)) + if steam_api != nil: loadFunc(Init, "SteamAPI_InitFlat") loadFunc(Shutdown, "SteamAPI_Shutdown") @@ -39,7 +40,6 @@ loadFunc(SetAchievement, "SteamAPI_ISteamUserStats_SetAchievement") loadFunc(StoreStats, "SteamAPI_ISteamUserStats_StoreStats") - # nice wrappers for steam API proc SteamRequestCurrentStats*(): bool = @@ -57,7 +57,6 @@ proc SteamShutdown*() = Shutdown() - # helper funcs proc SteamAvailable*(): bool = steam_api != nil and steam_is_loaded diff -r df3c075e5dea -r 966032c7a3aa semicongine/core.nim --- a/semicongine/core.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/core.nim Thu Aug 22 18:32:21 2024 +0700 @@ -15,4 +15,3 @@ include ./core/buildconfig include ./core/vector include ./core/matrix - diff -r df3c075e5dea -r 966032c7a3aa semicongine/core/buildconfig.nim --- a/semicongine/core/buildconfig.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/core/buildconfig.nim Thu Aug 22 18:32:21 2024 +0700 @@ -5,16 +5,17 @@ # checks required build options: static: if defined(linux): - assert defined(VK_USE_PLATFORM_XLIB_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_XLIB_KHR for linux builds" + assert defined(VK_USE_PLATFORM_XLIB_KHR), + ENGINENAME & " requires --d:VK_USE_PLATFORM_XLIB_KHR for linux builds" elif defined(windows): - assert defined(VK_USE_PLATFORM_WIN32_KHR), ENGINENAME & " requires --d:VK_USE_PLATFORM_WIN32_KHR for windows builds" + assert defined(VK_USE_PLATFORM_WIN32_KHR), + ENGINENAME & " requires --d:VK_USE_PLATFORM_WIN32_KHR for windows builds" else: assert false, "trying to build on unsupported platform" # build configuration # ===================== - # log level when not defined(release): const LOGLEVEL {.strdefine.}: string = "Debug" @@ -28,4 +29,6 @@ const DEFAULT_PACKAGE* = "default" const PACKAGETYPE* {.strdefine.}: string = "exe" # dir, zip, exe static: - assert PACKAGETYPE in ["dir", "zip", "exe"], ENGINENAME & " requires one of -d:PACKAGETYPE=dir -d:PACKAGETYPE=zip -d:PACKAGETYPE=exe" + assert PACKAGETYPE in ["dir", "zip", "exe"], + ENGINENAME & + " requires one of -d:PACKAGETYPE=dir -d:PACKAGETYPE=zip -d:PACKAGETYPE=exe" diff -r df3c075e5dea -r 966032c7a3aa semicongine/core/matrix.nim --- a/semicongine/core/matrix.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/core/matrix.nim Thu Aug 22 18:32:21 2024 +0700 @@ -8,20 +8,27 @@ # Though, great news is that objects have zero overhead! TMat2*[T: SomeNumber] = object data*: array[4, T] + TMat23*[T: SomeNumber] = object data*: array[6, T] + TMat32*[T: SomeNumber] = object data*: array[6, T] + TMat3*[T: SomeNumber] = object data*: array[9, T] + TMat34*[T: SomeNumber] = object data*: array[12, T] + TMat43*[T: SomeNumber] = object data*: array[12, T] + TMat4*[T: SomeNumber] = object data*: array[16, T] - TMat* = TMat2|TMat3|TMat4|TMat23|TMat32|TMat34|TMat43 - TSquareMat = TMat2|TMat3|TMat4 + + TMat* = TMat2 | TMat3 | TMat4 | TMat23 | TMat32 | TMat34 | TMat43 + TSquareMat = TMat2 | TMat3 | TMat4 Mat2* = TMat2[float32] Mat23* = TMat23[float32] Mat32* = TMat32[float32] @@ -30,45 +37,63 @@ Mat43* = TMat43[float32] Mat4* = TMat4[float32] -func makeUnit2[T: SomeNumber](): auto {.compiletime.} = TMat2[T](data: [ - T(1), T(0), - T(0), T(1), -]) -func makeUnit3[T: SomeNumber](): auto {.compiletime.} = TMat3[T](data: [ - T(1), T(0), T(0), - T(0), T(1), T(0), - T(0), T(0), T(1), -]) -func makeUnit4[T: SomeNumber](): auto {.compiletime.} = TMat4[T](data: [ - T(1), T(0), T(0), T(0), - T(0), T(1), T(0), T(0), - T(0), T(0), T(1), T(0), - T(0), T(0), T(0), T(1), -]) +func makeUnit2[T: SomeNumber](): auto {.compiletime.} = + TMat2[T](data: [T(1), T(0), T(0), T(1)]) +func makeUnit3[T: SomeNumber](): auto {.compiletime.} = + TMat3[T](data: [T(1), T(0), T(0), T(0), T(1), T(0), T(0), T(0), T(1)]) +func makeUnit4[T: SomeNumber](): auto {.compiletime.} = + TMat4[T]( + data: [ + T(1), + T(0), + T(0), + T(0), + T(0), + T(1), + T(0), + T(0), + T(0), + T(0), + T(1), + T(0), + T(0), + T(0), + T(0), + T(1), + ] + ) # generates constants: Unit # Also for Y, Z, R, G, B # not sure if this is necessary or even a good idea... macro generateAllMatrixConsts() = result = newStmtList() - for theType in ["int", "int8", "int16", "int32", "int64", "float", "float32", "float64"]: + for theType in [ + "int", "int8", "int16", "int32", "int64", "float", "float32", "float64" + ]: var typename = theType[0 .. 0] if theType[^2].isDigit: typename = typename & theType[^2] if theType[^1].isDigit: typename = typename & theType[^1] - result.add(newConstStmt( - postfix(ident("Unit2" & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("makeUnit2"), ident(theType))) - )) - result.add(newConstStmt( - postfix(ident("Unit3" & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("makeUnit3"), ident(theType))) - )) - result.add(newConstStmt( - postfix(ident("Unit4" & typename), "*"), - newCall(nnkBracketExpr.newTree(ident("makeUnit4"), ident(theType))) - )) + result.add( + newConstStmt( + postfix(ident("Unit2" & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("makeUnit2"), ident(theType))), + ) + ) + result.add( + newConstStmt( + postfix(ident("Unit3" & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("makeUnit3"), ident(theType))), + ) + ) + result.add( + newConstStmt( + postfix(ident("Unit4" & typename), "*"), + newCall(nnkBracketExpr.newTree(ident("makeUnit4"), ident(theType))), + ) + ) generateAllMatrixConsts() @@ -77,30 +102,52 @@ const Unit4* = makeUnit4[float32]() template RowCount*(m: typedesc): int = - when m is TMat2: 2 - elif m is TMat23: 2 - elif m is TMat32: 3 - elif m is TMat3: 3 - elif m is TMat34: 3 - elif m is TMat43: 4 - elif m is TMat4: 4 + when m is TMat2: + 2 + elif m is TMat23: + 2 + elif m is TMat32: + 3 + elif m is TMat3: + 3 + elif m is TMat34: + 3 + elif m is TMat43: + 4 + elif m is TMat4: + 4 + template ColumnCount*(m: typedesc): int = - when m is TMat2: 2 - elif m is TMat23: 3 - elif m is TMat32: 2 - elif m is TMat3: 3 - elif m is TMat34: 4 - elif m is TMat43: 3 - elif m is TMat4: 4 + when m is TMat2: + 2 + elif m is TMat23: + 3 + elif m is TMat32: + 2 + elif m is TMat3: + 3 + elif m is TMat34: + 4 + elif m is TMat43: + 3 + elif m is TMat4: + 4 + template matlen(m: typedesc): int = - when m is TMat2: 4 - elif m is TMat23: 6 - elif m is TMat32: 6 - elif m is TMat3: 9 - elif m is TMat34: 12 - elif m is TMat43: 12 - elif m is TMat4: 16 - + when m is TMat2: + 4 + elif m is TMat23: + 6 + elif m is TMat32: + 6 + elif m is TMat3: + 9 + elif m is TMat34: + 12 + elif m is TMat43: + 12 + elif m is TMat4: + 16 func toMatString[T: TMat](value: T): string = var @@ -122,56 +169,87 @@ result &= " " result &= filler & strvalues[i] & " " -func `$`*(v: TMat2[SomeNumber]): string = toMatString[TMat2[SomeNumber]](v) -func `$`*(v: TMat23[SomeNumber]): string = toMatString[TMat23[SomeNumber]](v) -func `$`*(v: TMat32[SomeNumber]): string = toMatString[TMat32[SomeNumber]](v) -func `$`*(v: TMat3[SomeNumber]): string = toMatString[TMat3[SomeNumber]](v) -func `$`*(v: TMat34[SomeNumber]): string = toMatString[TMat34[SomeNumber]](v) -func `$`*(v: TMat43[SomeNumber]): string = toMatString[TMat43[SomeNumber]](v) -func `$`*(v: TMat4[SomeNumber]): string = toMatString[TMat4[SomeNumber]](v) +func `$`*(v: TMat2[SomeNumber]): string = + toMatString[TMat2[SomeNumber]](v) +func `$`*(v: TMat23[SomeNumber]): string = + toMatString[TMat23[SomeNumber]](v) +func `$`*(v: TMat32[SomeNumber]): string = + toMatString[TMat32[SomeNumber]](v) +func `$`*(v: TMat3[SomeNumber]): string = + toMatString[TMat3[SomeNumber]](v) +func `$`*(v: TMat34[SomeNumber]): string = + toMatString[TMat34[SomeNumber]](v) +func `$`*(v: TMat43[SomeNumber]): string = + toMatString[TMat43[SomeNumber]](v) +func `$`*(v: TMat4[SomeNumber]): string = + toMatString[TMat4[SomeNumber]](v) -func `[]`*[T: TMat](m: T, row, col: int): auto = m.data[col + row * T.ColumnCount] -func `[]=`*[T: TMat, U](m: var T, row, col: int, value: U) = m.data[col + row * T.ColumnCount] = value -func `[]`*[T: TMat](m: T, i: int): auto = m.data[i] -func `[]=`*[T: TMat, U](m: var T, i: int, value: U) = m.data[i] = value +func `[]`*[T: TMat](m: T, row, col: int): auto = + m.data[col + row * T.ColumnCount] +func `[]=`*[T: TMat, U](m: var T, row, col: int, value: U) = + m.data[col + row * T.ColumnCount] = value +func `[]`*[T: TMat](m: T, i: int): auto = + m.data[i] +func `[]=`*[T: TMat, U](m: var T, i: int, value: U) = + m.data[i] = value -func row*[T: TMat2](m: T, i: 0..1): auto = TVec2([m[i, 0], m[i, 1]]) -func row*[T: TMat32](m: T, i: 0..2): auto = TVec2([m[i, 0], m[i, 1]]) -func row*[T: TMat23](m: T, i: 0..1): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) -func row*[T: TMat3](m: T, i: 0..2): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) -func row*[T: TMat43](m: T, i: 0..3): auto = TVec3([m[i, 0], m[i, 1], m[i, 2]]) -func row*[T: TMat34](m: T, i: 0..2): auto = TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) -func row*[T: TMat4](m: T, i: 0..3): auto = TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) +func row*[T: TMat2](m: T, i: 0 .. 1): auto = + TVec2([m[i, 0], m[i, 1]]) +func row*[T: TMat32](m: T, i: 0 .. 2): auto = + TVec2([m[i, 0], m[i, 1]]) +func row*[T: TMat23](m: T, i: 0 .. 1): auto = + TVec3([m[i, 0], m[i, 1], m[i, 2]]) +func row*[T: TMat3](m: T, i: 0 .. 2): auto = + TVec3([m[i, 0], m[i, 1], m[i, 2]]) +func row*[T: TMat43](m: T, i: 0 .. 3): auto = + TVec3([m[i, 0], m[i, 1], m[i, 2]]) +func row*[T: TMat34](m: T, i: 0 .. 2): auto = + TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) +func row*[T: TMat4](m: T, i: 0 .. 3): auto = + TVec4([m[i, 0], m[i, 1], m[i, 2], m[i, 3]]) -func col*[T: TMat2](m: T, i: 0..1): auto = TVec2([m[0, i], m[1, i]]) -func col*[T: TMat23](m: T, i: 0..2): auto = TVec2([m[0, i], m[1, i]]) -func col*[T: TMat32](m: T, i: 0..1): auto = TVec3([m[0, i], m[1, i], m[2, i]]) -func col*[T: TMat3](m: T, i: 0..2): auto = TVec3([m[0, i], m[1, i], m[2, i]]) -func col*[T: TMat34](m: T, i: 0..3): auto = TVec3([m[0, i], m[1, i], m[2, i]]) -func col*[T: TMat43](m: T, i: 0..2): auto = TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) -func col*[T: TMat4](m: T, i: 0..3): auto = TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) +func col*[T: TMat2](m: T, i: 0 .. 1): auto = + TVec2([m[0, i], m[1, i]]) +func col*[T: TMat23](m: T, i: 0 .. 2): auto = + TVec2([m[0, i], m[1, i]]) +func col*[T: TMat32](m: T, i: 0 .. 1): auto = + TVec3([m[0, i], m[1, i], m[2, i]]) +func col*[T: TMat3](m: T, i: 0 .. 2): auto = + TVec3([m[0, i], m[1, i], m[2, i]]) +func col*[T: TMat34](m: T, i: 0 .. 3): auto = + TVec3([m[0, i], m[1, i], m[2, i]]) +func col*[T: TMat43](m: T, i: 0 .. 2): auto = + TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) +func col*[T: TMat4](m: T, i: 0 .. 3): auto = + TVec4([m[0, i], m[1, i], m[2, i], m[3, i]]) -proc createMatMatMultiplicationOperator(leftType: typedesc, rightType: typedesc, outType: typedesc): NimNode = +proc createMatMatMultiplicationOperator( + leftType: typedesc, rightType: typedesc, outType: typedesc +): NimNode = var data = nnkBracket.newTree() for i in 0 ..< RowCount(leftType): for j in 0 ..< rightType.ColumnCount: - data.add(newCall( - ident("sum"), - infix( - newCall(newDotExpr(ident("a"), ident("row")), newLit(i)), - "*", - newCall(newDotExpr(ident("b"), ident("col")), newLit(j)) + data.add( + newCall( + ident("sum"), + infix( + newCall(newDotExpr(ident("a"), ident("row")), newLit(i)), + "*", + newCall(newDotExpr(ident("b"), ident("col")), newLit(j)), + ), ) - )) + ) return newProc( postfix(nnkAccQuoted.newTree(ident("*")), "*"), params = [ ident("auto"), newIdentDefs(ident("a"), ident(leftType.name)), - newIdentDefs(ident("b"), ident(rightType.name)) + newIdentDefs(ident("b"), ident(rightType.name)), ], - body = nnkObjConstr.newTree(ident(outType.name), nnkExprColonExpr.newTree(ident("data"), data)), + body = nnkObjConstr.newTree( + ident(outType.name), nnkExprColonExpr.newTree(ident("data"), data) + ), procType = nnkFuncDef, ) @@ -183,37 +261,37 @@ nnkBracketExpr.newTree(ident("a"), newLit(i)), "+", nnkBracketExpr.newTree(ident("b"), newLit(i)), - )) + ) + ) return newProc( postfix(nnkAccQuoted.newTree(ident("+")), "*"), params = [ ident("auto"), newIdentDefs(ident("a"), ident(theType.name)), - newIdentDefs(ident("b"), ident(theType.name)) + newIdentDefs(ident("b"), ident(theType.name)), ], - body = nnkObjConstr.newTree(ident(theType.name), nnkExprColonExpr.newTree(ident("data"), data)), + body = nnkObjConstr.newTree( + ident(theType.name), nnkExprColonExpr.newTree(ident("data"), data) + ), procType = nnkFuncDef, ) proc createVecMatMultiplicationOperator(matType: typedesc, vecType: typedesc): NimNode = var data = nnkBracket.newTree() for i in 0 ..< matType.RowCount: - data.add(newCall( - ident("sum"), - infix( - ident("v"), - "*", - newCall(newDotExpr(ident("m"), ident("row")), newLit(i)) + data.add( + newCall( + ident("sum"), + infix(ident("v"), "*", newCall(newDotExpr(ident("m"), ident("row")), newLit(i))), ) - )) + ) - let resultVec = newCall( - nnkBracketExpr.newTree(ident(vecType.name), ident("T")), - data, + let resultVec = newCall(nnkBracketExpr.newTree(ident(vecType.name), ident("T")), data) + let name = postfix(nnkAccQuoted.newTree(ident("*")), "*") + let genericParams = nnkGenericParams.newTree( + nnkIdentDefs.newTree(ident("T"), ident("SomeNumber"), newEmptyNode()) ) - let name = postfix(nnkAccQuoted.newTree(ident("*")), "*") - let genericParams = nnkGenericParams.newTree(nnkIdentDefs.newTree(ident("T"), ident("SomeNumber"), newEmptyNode())) let formalParams = nnkFormalParams.newTree( ident("auto"), newIdentDefs(ident("m"), nnkBracketExpr.newTree(ident(matType.name), ident("T"))), @@ -227,49 +305,67 @@ formalParams, newEmptyNode(), newEmptyNode(), - resultVec + resultVec, ) - proc createMatScalarOperator(matType: typedesc, op: string): NimNode = result = newStmtList() var data = nnkBracket.newTree() for i in 0 ..< matType.RowCount * matType.ColumnCount: - data.add(infix(nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op, ident("b"))) - result.add(newProc( - postfix(nnkAccQuoted.newTree(ident(op)), "*"), - params = [ - ident("auto"), - newIdentDefs(ident("a"), ident(matType.name)), - newIdentDefs(ident("b"), ident("SomeNumber")), - ], - body = nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data)), - procType = nnkFuncDef, - )) - result.add(newProc( - postfix(nnkAccQuoted.newTree(ident(op)), "*"), - params = [ - ident("auto"), - newIdentDefs(ident("b"), ident("SomeNumber")), - newIdentDefs(ident("a"), ident(matType.name)), - ], - body = nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data)), - procType = nnkFuncDef, - )) - if op == "-": - var data2 = nnkBracket.newTree() - for i in 0 ..< matType.RowCount * matType.ColumnCount: - data2.add(prefix(nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op)) - result.add(newProc( + data.add( + infix( + nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), + op, + ident("b"), + ) + ) + result.add( + newProc( postfix(nnkAccQuoted.newTree(ident(op)), "*"), params = [ ident("auto"), newIdentDefs(ident("a"), ident(matType.name)), + newIdentDefs(ident("b"), ident("SomeNumber")), ], - body = nnkObjConstr.newTree(ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data2)), + body = nnkObjConstr.newTree( + ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data) + ), + procType = nnkFuncDef, + ) + ) + result.add( + newProc( + postfix(nnkAccQuoted.newTree(ident(op)), "*"), + params = [ + ident("auto"), + newIdentDefs(ident("b"), ident("SomeNumber")), + newIdentDefs(ident("a"), ident(matType.name)), + ], + body = nnkObjConstr.newTree( + ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data) + ), procType = nnkFuncDef, - )) + ) + ) + if op == "-": + var data2 = nnkBracket.newTree() + for i in 0 ..< matType.RowCount * matType.ColumnCount: + data2.add( + prefix( + nnkBracketExpr.newTree(newDotExpr(ident("a"), ident("data")), newLit(i)), op + ) + ) + result.add( + newProc( + postfix(nnkAccQuoted.newTree(ident(op)), "*"), + params = [ident("auto"), newIdentDefs(ident("a"), ident(matType.name))], + body = nnkObjConstr.newTree( + ident(matType.name), nnkExprColonExpr.newTree(ident("data"), data2) + ), + procType = nnkFuncDef, + ) + ) macro createAllMultiplicationOperators() = result = newStmtList() @@ -311,13 +407,13 @@ createAllMultiplicationOperators() -proc `+=`*[T1: TSquareMat, T2: TSquareMat|SomeNumber](a: var T1, b: T2) = +proc `+=`*[T1: TSquareMat, T2: TSquareMat | SomeNumber](a: var T1, b: T2) = a = a + b -proc `-=`*[T1: TSquareMat, T2: TSquareMat|SomeNumber](a: var T1, b: T2) = +proc `-=`*[T1: TSquareMat, T2: TSquareMat | SomeNumber](a: var T1, b: T2) = a = a + b -proc `*=`*[T1: TSquareMat, T2: TSquareMat|SomeNumber](a: var T1, b: T2) = +proc `*=`*[T1: TSquareMat, T2: TSquareMat | SomeNumber](a: var T1, b: T2) = a = a * b func `*`*(mat: Mat4, vec: Vec3f): Vec3f = @@ -326,71 +422,100 @@ func `*`*(mat: Mat3, vec: Vec2f): Vec2f = (mat * vec.ToVec3(1)).ToVec2 -func transposed*[T](m: TMat2[T]): TMat2[T] = TMat2[T](data: [ - m[0, 0], m[1, 0], - m[0, 1], m[1, 1], -]) -func transposed*[T](m: TMat23[T]): TMat32[T] = TMat32[T](data: [ - m[0, 0], m[1, 0], - m[0, 1], m[1, 1], - m[0, 2], m[1, 2], -]) -func transposed*[T](m: TMat32[T]): TMat23[T] = TMat23[T](data: [ - m[0, 0], m[1, 0], m[2, 0], - m[0, 1], m[1, 1], m[2, 1], -]) -func transposed*[T](m: TMat3[T]): TMat3[T] = TMat3[T](data: [ - m[0, 0], m[1, 0], m[2, 0], - m[0, 1], m[1, 1], m[2, 1], - m[0, 2], m[1, 2], m[2, 2], -]) -func transposed*[T](m: TMat43[T]): TMat34[T] = TMat34[T](data: [ - m[0, 0], m[1, 0], m[2, 0], m[3, 0], - m[0, 1], m[1, 1], m[2, 1], m[3, 1], - m[0, 2], m[1, 2], m[2, 2], m[3, 2], -]) -func transposed*[T](m: TMat34[T]): TMat43[T] = TMat43[T](data: [ - m[0, 0], m[1, 0], m[2, 0], - m[0, 1], m[1, 1], m[2, 1], - m[0, 2], m[1, 2], m[2, 2], - m[0, 3], m[1, 3], m[2, 3], -]) -func transposed*[T](m: TMat4[T]): TMat4[T] = TMat4[T](data: [ - m[0, 0], m[1, 0], m[2, 0], m[3, 0], - m[0, 1], m[1, 1], m[2, 1], m[3, 1], - m[0, 2], m[1, 2], m[2, 2], m[3, 2], - m[0, 3], m[1, 3], m[2, 3], m[3, 3], -]) +func transposed*[T](m: TMat2[T]): TMat2[T] = + TMat2[T](data: [m[0, 0], m[1, 0], m[0, 1], m[1, 1]]) +func transposed*[T](m: TMat23[T]): TMat32[T] = + TMat32[T](data: [m[0, 0], m[1, 0], m[0, 1], m[1, 1], m[0, 2], m[1, 2]]) +func transposed*[T](m: TMat32[T]): TMat23[T] = + TMat23[T](data: [m[0, 0], m[1, 0], m[2, 0], m[0, 1], m[1, 1], m[2, 1]]) +func transposed*[T](m: TMat3[T]): TMat3[T] = + TMat3[T]( + data: + [m[0, 0], m[1, 0], m[2, 0], m[0, 1], m[1, 1], m[2, 1], m[0, 2], m[1, 2], m[2, 2]] + ) +func transposed*[T](m: TMat43[T]): TMat34[T] = + TMat34[T]( + data: [ + m[0, 0], + m[1, 0], + m[2, 0], + m[3, 0], + m[0, 1], + m[1, 1], + m[2, 1], + m[3, 1], + m[0, 2], + m[1, 2], + m[2, 2], + m[3, 2], + ] + ) +func transposed*[T](m: TMat34[T]): TMat43[T] = + TMat43[T]( + data: [ + m[0, 0], + m[1, 0], + m[2, 0], + m[0, 1], + m[1, 1], + m[2, 1], + m[0, 2], + m[1, 2], + m[2, 2], + m[0, 3], + m[1, 3], + m[2, 3], + ] + ) +func transposed*[T](m: TMat4[T]): TMat4[T] = + TMat4[T]( + data: [ + m[0, 0], + m[1, 0], + m[2, 0], + m[3, 0], + m[0, 1], + m[1, 1], + m[2, 1], + m[3, 1], + m[0, 2], + m[1, 2], + m[2, 2], + m[3, 2], + m[0, 3], + m[1, 3], + m[2, 3], + m[3, 3], + ] + ) -func translate2d*[T](x, y: T): TMat3[T] = TMat3[T](data: [ - T(1), T(0), x, - T(0), T(1), y, - T(0), T(0), T(1), -]) -func scale2d*[T](sx, sy: T): TMat3[T] = TMat3[T](data: [ - sx, T(0), T(0), - T(0), sy, T(0), - T(0), T(0), T(1), -]) -func rotate2d*[T](angle: T): TMat3[T] = TMat3[T](data: [ - cos(angle), -sin(angle), T(0), - sin(angle), cos(angle), T(0), - T(0), T(0), T(1), -]) -func translate*(x = 0'f32, y = 0'f32, z = 0'f32): TMat4[float32] = Mat4(data: [ - 1'f32, 0'f32, 0'f32, x, - 0'f32, 1'f32, 0'f32, y, - 0'f32, 0'f32, 1'f32, z, - 0'f32, 0'f32, 0'f32, 1'f32, -]) -func translate*[T: TVec3](v: T): TMat4[float32] = translate(v[0], v[1], v[2]) -func scale*(x = 1'f32, y = 1'f32, z = 1'f32): Mat4 = Mat4(data: [ - x, 0'f32, 0'f32, 0'f32, - 0'f32, y, 0'f32, 0'f32, - 0'f32, 0'f32, z, 0'f32, - 0'f32, 0'f32, 0'f32, 1'f32, -]) -func scale*[T: TVec3](v: T): TMat4[float32] = scale(v[0], v[1], v[2]) +func translate2d*[T](x, y: T): TMat3[T] = + TMat3[T](data: [T(1), T(0), x, T(0), T(1), y, T(0), T(0), T(1)]) +func scale2d*[T](sx, sy: T): TMat3[T] = + TMat3[T](data: [sx, T(0), T(0), T(0), sy, T(0), T(0), T(0), T(1)]) +func rotate2d*[T](angle: T): TMat3[T] = + TMat3[T]( + data: + [cos(angle), -sin(angle), T(0), sin(angle), cos(angle), T(0), T(0), T(0), T(1)] + ) +func translate*(x = 0'f32, y = 0'f32, z = 0'f32): TMat4[float32] = + Mat4( + data: [ + 1'f32, 0'f32, 0'f32, x, 0'f32, 1'f32, 0'f32, y, 0'f32, 0'f32, 1'f32, z, 0'f32, + 0'f32, 0'f32, 1'f32, + ] + ) +func translate*[T: TVec3](v: T): TMat4[float32] = + translate(v[0], v[1], v[2]) +func scale*(x = 1'f32, y = 1'f32, z = 1'f32): Mat4 = + Mat4( + data: [ + x, 0'f32, 0'f32, 0'f32, 0'f32, y, 0'f32, 0'f32, 0'f32, 0'f32, z, 0'f32, 0'f32, + 0'f32, 0'f32, 1'f32, + ] + ) +func scale*[T: TVec3](v: T): TMat4[float32] = + scale(v[0], v[1], v[2]) func rotate*(angle: float32, a: Vec3f): Mat4 = let axis = a.normalized() @@ -399,20 +524,32 @@ x = axis.x y = axis.y z = axis.z - Mat4(data: [ - x * x * (1 - cosa) + cosa, y * x * (1 - cosa) - z * sina, z * x * (1 - cosa) + y * sina, 0'f32, - x * y * (1 - cosa) + z * sina, y * y * (1 - cosa) + cosa, z * y * (1 - cosa) - x * sina, 0'f32, - x * z * (1 - cosa) - y * sina, y * z * (1 - cosa) + x * sina, z * z * (1 - cosa) + cosa, 0'f32, - 0'f32, 0'f32, 0'f32, 1'f32, - ]) + Mat4( + data: [ + x * x * (1 - cosa) + cosa, + y * x * (1 - cosa) - z * sina, + z * x * (1 - cosa) + y * sina, + 0'f32, + x * y * (1 - cosa) + z * sina, + y * y * (1 - cosa) + cosa, + z * y * (1 - cosa) - x * sina, + 0'f32, + x * z * (1 - cosa) - y * sina, + y * z * (1 - cosa) + x * sina, + z * z * (1 - cosa) + cosa, + 0'f32, + 0'f32, + 0'f32, + 0'f32, + 1'f32, + ] + ) func asMat3(m: Mat4): auto = - Mat3(data: [ - m[0, 0], m[0, 1], m[0, 2], - m[1, 0], m[1, 1], m[1, 2], - m[2, 0], m[2, 1], m[2, 2], - ]) - + Mat3( + data: + [m[0, 0], m[0, 1], m[0, 2], m[1, 0], m[1, 1], m[1, 2], m[2, 0], m[2, 1], m[2, 2]] + ) func inversed*(a: Mat4): Mat4 = # from: https://stackoverflow.com/a/9614511 @@ -431,27 +568,27 @@ c0 = a[2, 0] * a[3, 1] - a[3, 0] * a[2, 1] # Should check for 0 determinant - var invdet = 1.0 / (s0 * c5 - s1 * c4 + s2 * c3 + s3 * c2 - s4 * c1 + s5 * c0); + var invdet = 1.0 / (s0 * c5 - s1 * c4 + s2 * c3 + s3 * c2 - s4 * c1 + s5 * c0) - result[0, 0] = ( a[1, 1] * c5 - a[1, 2] * c4 + a[1, 3] * c3) * invdet; - result[0, 1] = (-a[0, 1] * c5 + a[0, 2] * c4 - a[0, 3] * c3) * invdet; - result[0, 2] = ( a[3, 1] * s5 - a[3, 2] * s4 + a[3, 3] * s3) * invdet; - result[0, 3] = (-a[2, 1] * s5 + a[2, 2] * s4 - a[2, 3] * s3) * invdet; + result[0, 0] = (a[1, 1] * c5 - a[1, 2] * c4 + a[1, 3] * c3) * invdet + result[0, 1] = (-a[0, 1] * c5 + a[0, 2] * c4 - a[0, 3] * c3) * invdet + result[0, 2] = (a[3, 1] * s5 - a[3, 2] * s4 + a[3, 3] * s3) * invdet + result[0, 3] = (-a[2, 1] * s5 + a[2, 2] * s4 - a[2, 3] * s3) * invdet - result[1, 0] = (-a[1, 0] * c5 + a[1, 2] * c2 - a[1, 3] * c1) * invdet; - result[1, 1] = ( a[0, 0] * c5 - a[0, 2] * c2 + a[0, 3] * c1) * invdet; - result[1, 2] = (-a[3, 0] * s5 + a[3, 2] * s2 - a[3, 3] * s1) * invdet; - result[1, 3] = ( a[2, 0] * s5 - a[2, 2] * s2 + a[2, 3] * s1) * invdet; + result[1, 0] = (-a[1, 0] * c5 + a[1, 2] * c2 - a[1, 3] * c1) * invdet + result[1, 1] = (a[0, 0] * c5 - a[0, 2] * c2 + a[0, 3] * c1) * invdet + result[1, 2] = (-a[3, 0] * s5 + a[3, 2] * s2 - a[3, 3] * s1) * invdet + result[1, 3] = (a[2, 0] * s5 - a[2, 2] * s2 + a[2, 3] * s1) * invdet - result[2, 0] = ( a[1, 0] * c4 - a[1, 1] * c2 + a[1, 3] * c0) * invdet; - result[2, 1] = (-a[0, 0] * c4 + a[0, 1] * c2 - a[0, 3] * c0) * invdet; - result[2, 2] = ( a[3, 0] * s4 - a[3, 1] * s2 + a[3, 3] * s0) * invdet; - result[2, 3] = (-a[2, 0] * s4 + a[2, 1] * s2 - a[2, 3] * s0) * invdet; + result[2, 0] = (a[1, 0] * c4 - a[1, 1] * c2 + a[1, 3] * c0) * invdet + result[2, 1] = (-a[0, 0] * c4 + a[0, 1] * c2 - a[0, 3] * c0) * invdet + result[2, 2] = (a[3, 0] * s4 - a[3, 1] * s2 + a[3, 3] * s0) * invdet + result[2, 3] = (-a[2, 0] * s4 + a[2, 1] * s2 - a[2, 3] * s0) * invdet - result[3, 0] = (-a[1, 0] * c3 + a[1, 1] * c1 - a[1, 2] * c0) * invdet; - result[3, 1] = ( a[0, 0] * c3 - a[0, 1] * c1 + a[0, 2] * c0) * invdet; - result[3, 2] = (-a[3, 0] * s3 + a[3, 1] * s1 - a[3, 2] * s0) * invdet; - result[3, 3] = ( a[2, 0] * s3 - a[2, 1] * s1 + a[2, 2] * s0) * invdet; + result[3, 0] = (-a[1, 0] * c3 + a[1, 1] * c1 - a[1, 2] * c0) * invdet + result[3, 1] = (a[0, 0] * c3 - a[0, 1] * c1 + a[0, 2] * c0) * invdet + result[3, 2] = (-a[3, 0] * s3 + a[3, 1] * s1 - a[3, 2] * s0) * invdet + result[3, 3] = (a[2, 0] * s3 - a[2, 1] * s1 + a[2, 2] * s0) * invdet func transformed*[T, S](points: openArray[S], mat: TMat4[T]): seq[S] = for p in points: @@ -463,17 +600,45 @@ func projection*(fovy, aspect, zNear, zFar: float32): Mat4 = let tanHalfFovy = 1 / tan(fovy / 2) - return Mat4(data: [ - tanHalfFovy / aspect, 0, 0, 0, - 0, tanHalfFovy, 0, 0, - 0, 0, zFar / (zFar - zNear), -(zFar * zNear) / (zFar - zNear), - 0, 0, 1, 0, - ]) + return Mat4( + data: [ + tanHalfFovy / aspect, + 0, + 0, + 0, + 0, + tanHalfFovy, + 0, + 0, + 0, + 0, + zFar / (zFar - zNear), + -(zFar * zNear) / (zFar - zNear), + 0, + 0, + 1, + 0, + ] + ) func ortho*(left, right, top, bottom, zNear, zFar: float32): Mat4 = - Mat4(data: [ - 2 / (right - left), 0, 0, -(right + left) / (right - left), - 0, 2 / (bottom - top), 0, -(bottom + top) / (bottom - top), - 0, 0, 1 / (zFar - zNear), zNear / (zFar - zNear), - 0, 0, 0, 1, - ]) + Mat4( + data: [ + 2 / (right - left), + 0, + 0, + -(right + left) / (right - left), + 0, + 2 / (bottom - top), + 0, + -(bottom + top) / (bottom - top), + 0, + 0, + 1 / (zFar - zNear), + zNear / (zFar - zNear), + 0, + 0, + 0, + 1, + ] + ) diff -r df3c075e5dea -r 966032c7a3aa semicongine/core/utils.nim --- a/semicongine/core/utils.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/core/utils.nim Thu Aug 22 18:32:21 2024 +0700 @@ -3,6 +3,7 @@ Left Center Right + VerticalAlignment* = enum Top Center @@ -15,17 +16,20 @@ break func ToCPointer*[T](list: openArray[T]): ptr T = - if list.len > 0: addr(list[0]) else: nil + if list.len > 0: + addr(list[0]) + else: + nil # required for some external libraries proc nativeFree*(p: pointer) {.importc: "free".} proc StaticExecChecked*(command: string, input = ""): string {.compileTime.} = - let (output, exitcode) = gorgeEx( - command = command, - input = input) + let (output, exitcode) = gorgeEx(command = command, input = input) if exitcode != 0: - raise newException(Exception, &"Running '{command}' produced exit code: {exitcode}" & output) + raise newException( + Exception, &"Running '{command}' produced exit code: {exitcode}" & output + ) return output proc AppName*(): string = @@ -59,5 +63,6 @@ var i = low(IX) while true: yield a[i] - if i >= high(IX): break + if i >= high(IX): + break inc(i) diff -r df3c075e5dea -r 966032c7a3aa semicongine/core/vector.nim --- a/semicongine/core/vector.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/core/vector.nim Thu Aug 22 18:32:21 2024 +0700 @@ -3,7 +3,7 @@ TVec2*[T: SomeNumber] = array[2, T] TVec3*[T: SomeNumber] = array[3, T] TVec4*[T: SomeNumber] = array[4, T] - TVec* = TVec1|TVec2|TVec3|TVec4 + TVec* = TVec1 | TVec2 | TVec3 | TVec4 Vec1f* = TVec1[float32] Vec2f* = TVec2[float32] Vec3f* = TVec3[float32] @@ -21,10 +21,12 @@ Vec2i8* = TVec2[int8] Vec3i8* = TVec3[int8] -converter ToVec1*[T: SomeNumber](orig: TVec3[T]|TVec4[T]): TVec1[T] = +converter ToVec1*[T: SomeNumber](orig: TVec3[T] | TVec4[T]): TVec1[T] = TVec1[T]([orig[0]]) -converter ToVec2*[T: SomeNumber](orig: TVec3[T]|TVec4[T]): TVec2[T] = + +converter ToVec2*[T: SomeNumber](orig: TVec3[T] | TVec4[T]): TVec2[T] = TVec2[T]([orig[0], orig[1]]) + converter ToVec3*[T: SomeNumber](orig: TVec4[T]): TVec3[T] = TVec3[T]([orig[0], orig[1], orig[2]]) @@ -40,46 +42,75 @@ Vec1f([float32(x)]) func vec2*[T, S: SomeNumber](x: T, y: S): Vec2f = Vec2f([float32(x), float32(y)]) -func vec2*[T: SomeNumber](x: T): Vec2f = vec2(x, 0) -func vec2*(): Vec2f = vec2(0, 0) +func vec2*[T: SomeNumber](x: T): Vec2f = + vec2(x, 0) +func vec2*(): Vec2f = + vec2(0, 0) func vec3*[T, S, U: SomeNumber](x: T, y: S, z: U): Vec3f = Vec3f([float32(x), float32(y), float32(z)]) -func vec3*[T, S: SomeNumber](x: T, y: S): Vec3f = vec3(x, y, 0) -func vec3*[T: SomeNumber](x: T): Vec3f = vec3(x, 0, 0) -func vec3*(): Vec3f = vec3(0, 0, 0) +func vec3*[T, S: SomeNumber](x: T, y: S): Vec3f = + vec3(x, y, 0) +func vec3*[T: SomeNumber](x: T): Vec3f = + vec3(x, 0, 0) +func vec3*(): Vec3f = + vec3(0, 0, 0) func vec4*[T, S, U, V: SomeNumber](x: T, y: S, z: U, w: V): Vec4f = Vec4f([float32(x), float32(y), float32(z), float32(w)]) -func vec4*[T, S, U: SomeNumber](x: T, y: S, z: U): Vec4f = vec4(x, y, z, 0) -func vec4*[T, S: SomeNumber](x: T, y: S): Vec4f = vec4(x, y, 0, 0) -func vec4*[T: SomeNumber](x: T): Vec4f = vec4(x, 0, 0, 0) -func vec4*(): Vec4f = vec4(0, 0, 0, 0) +func vec4*[T, S, U: SomeNumber](x: T, y: S, z: U): Vec4f = + vec4(x, y, z, 0) +func vec4*[T, S: SomeNumber](x: T, y: S): Vec4f = + vec4(x, y, 0, 0) +func vec4*[T: SomeNumber](x: T): Vec4f = + vec4(x, 0, 0, 0) +func vec4*(): Vec4f = + vec4(0, 0, 0, 0) # shortcuts Vec3i -func vec1i*[T: SomeInteger](x: T): Vec1i = Vec1i([int32(x)]) -func vec2i*[T, S: SomeInteger](x: T, y: S): Vec2i = Vec2i([int32(x), int32(y)]) -func vec2i*[T: SomeInteger](x: T): Vec2i = vec2i(x, 0) -func vec2i*(): Vec2i = vec2i(0, 0) -func vec3i*[T, S, U: SomeInteger](x: T, y: S, z: U): Vec3i = Vec3i([int32(x), int32(y), int32(z)]) -func vec3i*[T, S: SomeInteger](x: T, y: S): Vec3i = vec3i(x, y, 0) -func vec3i*[T: SomeInteger](x: T): Vec3i = vec3i(x, 0, 0) -func vec3i*(): Vec3i = vec3i(0, 0, 0) -func vec4i*[T, S, U, V: SomeInteger](x: T, y: S, z: U, w: V): Vec4i = Vec4i([int32(x), int32(y), int32(z), int32(w)]) -func vec4i*[T, S, U: SomeInteger](x: T, y: S, z: U): Vec4i = vec4i(x, y, z, 0) -func vec4i*[T, S: SomeInteger](x: T, y: S): Vec4i = vec4i(x, y, 0, 0) -func vec4i*[T: SomeInteger](x: T): Vec4i = vec4i(x, 0, 0, 0) -func vec4i*(): Vec4i = vec4i(0, 0, 0, 0) +func vec1i*[T: SomeInteger](x: T): Vec1i = + Vec1i([int32(x)]) +func vec2i*[T, S: SomeInteger](x: T, y: S): Vec2i = + Vec2i([int32(x), int32(y)]) +func vec2i*[T: SomeInteger](x: T): Vec2i = + vec2i(x, 0) +func vec2i*(): Vec2i = + vec2i(0, 0) +func vec3i*[T, S, U: SomeInteger](x: T, y: S, z: U): Vec3i = + Vec3i([int32(x), int32(y), int32(z)]) +func vec3i*[T, S: SomeInteger](x: T, y: S): Vec3i = + vec3i(x, y, 0) +func vec3i*[T: SomeInteger](x: T): Vec3i = + vec3i(x, 0, 0) +func vec3i*(): Vec3i = + vec3i(0, 0, 0) +func vec4i*[T, S, U, V: SomeInteger](x: T, y: S, z: U, w: V): Vec4i = + Vec4i([int32(x), int32(y), int32(z), int32(w)]) +func vec4i*[T, S, U: SomeInteger](x: T, y: S, z: U): Vec4i = + vec4i(x, y, z, 0) +func vec4i*[T, S: SomeInteger](x: T, y: S): Vec4i = + vec4i(x, y, 0, 0) +func vec4i*[T: SomeInteger](x: T): Vec4i = + vec4i(x, 0, 0, 0) +func vec4i*(): Vec4i = + vec4i(0, 0, 0, 0) # shortcuts Vec3i8 -func vec2i8*[T, S: SomeInteger](x: T, y: S): Vec2i8 = Vec2i8([int8(x), int8(y)]) -func vec2i8*[T: SomeInteger](x: T): Vec2i8 = vec2i8(x, 0) -func vec2i8*(): Vec2i8 = vec2i8(0, 0) -func vec3i8*[T, S, U: SomeInteger](x: T, y: S, z: U): Vec3i8 = Vec3i8([int8(x), int8(y), int8(z)]) -func vec3i8*[T, S: SomeInteger](x: T, y: S): Vec3i8 = vec3i8(x, y, 0) -func vec3i8*[T: SomeInteger](x: T): Vec3i8 = vec3i8(x, 0, 0) -func vec3i8*(): Vec3i8 = vec3i8(0, 0, 0) +func vec2i8*[T, S: SomeInteger](x: T, y: S): Vec2i8 = + Vec2i8([int8(x), int8(y)]) +func vec2i8*[T: SomeInteger](x: T): Vec2i8 = + vec2i8(x, 0) +func vec2i8*(): Vec2i8 = + vec2i8(0, 0) +func vec3i8*[T, S, U: SomeInteger](x: T, y: S, z: U): Vec3i8 = + Vec3i8([int8(x), int8(y), int8(z)]) +func vec3i8*[T, S: SomeInteger](x: T, y: S): Vec3i8 = + vec3i8(x, y, 0) +func vec3i8*[T: SomeInteger](x: T): Vec3i8 = + vec3i8(x, 0, 0) +func vec3i8*(): Vec3i8 = + vec3i8(0, 0, 0) # shortcuts color -func toVec*(value: string, gamma=2.2'f32): Vec4f = +func toVec*(value: string, gamma = 2.2'f32): Vec4f = # converts hex-string to color, also applies gamma of 2.2 assert value != "" var hex = value @@ -101,7 +132,6 @@ a = parseHexInt(hex[6 .. 7]).float32 / 255'f32 return vec4(pow(r, gamma), pow(g, gamma), pow(b, gamma), a) - const R* = vec4(1, 0, 0, 1) G* = vec4(1, 0, 0, 1) @@ -131,25 +161,41 @@ YZi8* = vec3i8(0, 1, 1) XYZi8* = vec3i8(1, 1, 1) -func to*[T](v: TVec1): auto = TVec1([T(v[0])]) -func to*[T](v: TVec2): auto = TVec2([T(v[0]), T(v[1])]) -func to*[T](v: TVec3): auto = TVec3([T(v[0]), T(v[1]), T(v[2])]) -func to*[T](v: TVec4): auto = TVec4([T(v[0]), T(v[1]), T(v[2]), T(v[3])]) +func to*[T](v: TVec1): auto = + TVec1([T(v[0])]) +func to*[T](v: TVec2): auto = + TVec2([T(v[0]), T(v[1])]) +func to*[T](v: TVec3): auto = + TVec3([T(v[0]), T(v[1]), T(v[2])]) +func to*[T](v: TVec4): auto = + TVec4([T(v[0]), T(v[1]), T(v[2]), T(v[3])]) -func f32*(v: TVec1): auto = to[float32](v) -func f32*(v: TVec2): auto = to[float32](v) -func f32*(v: TVec3): auto = to[float32](v) -func f32*(v: TVec4): auto = to[float32](v) +func f32*(v: TVec1): auto = + to[float32](v) +func f32*(v: TVec2): auto = + to[float32](v) +func f32*(v: TVec3): auto = + to[float32](v) +func f32*(v: TVec4): auto = + to[float32](v) -func i32*(v: TVec1): auto = to[int32](v) -func i32*(v: TVec2): auto = to[int32](v) -func i32*(v: TVec3): auto = to[int32](v) -func i32*(v: TVec4): auto = to[int32](v) +func i32*(v: TVec1): auto = + to[int32](v) +func i32*(v: TVec2): auto = + to[int32](v) +func i32*(v: TVec3): auto = + to[int32](v) +func i32*(v: TVec4): auto = + to[int32](v) -func i8*(v: TVec1): auto = to[int8](v) -func i8*(v: TVec2): auto = to[int8](v) -func i8*(v: TVec3): auto = to[int8](v) -func i8*(v: TVec4): auto = to[int8](v) +func i8*(v: TVec1): auto = + to[int8](v) +func i8*(v: TVec2): auto = + to[int8](v) +func i8*(v: TVec3): auto = + to[int8](v) +func i8*(v: TVec4): auto = + to[int8](v) func toVecString[T: TVec](value: T): string = var items: seq[string] @@ -158,46 +204,76 @@ items.add(&"{item:.5f}") else: items.add(&"{item}") - & "(" & join(items, " ") & ")" + &"(" & join(items, " ") & ")" -func `$`*(v: TVec1[SomeNumber]): string = toVecString[TVec1[SomeNumber]](v) -func `$`*(v: TVec2[SomeNumber]): string = toVecString[TVec2[SomeNumber]](v) -func `$`*(v: TVec3[SomeNumber]): string = toVecString[TVec3[SomeNumber]](v) -func `$`*(v: TVec4[SomeNumber]): string = toVecString[TVec4[SomeNumber]](v) +func `$`*(v: TVec1[SomeNumber]): string = + toVecString[TVec1[SomeNumber]](v) +func `$`*(v: TVec2[SomeNumber]): string = + toVecString[TVec2[SomeNumber]](v) +func `$`*(v: TVec3[SomeNumber]): string = + toVecString[TVec3[SomeNumber]](v) +func `$`*(v: TVec4[SomeNumber]): string = + toVecString[TVec4[SomeNumber]](v) -func length*(vec: TVec1): auto = vec[0] -func length*(vec: TVec2[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[1]) -func length*(vec: TVec2[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[1] * vec[1])) -func length*(vec: TVec3[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]) -func length*(vec: TVec3[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2])) -func length*(vec: TVec4[SomeFloat]): auto = sqrt(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2] + vec[3] * vec[3]) -func length*(vec: TVec4[SomeInteger]): auto = sqrt(float(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2] + vec[3] * vec[3])) +func length*(vec: TVec1): auto = + vec[0] +func length*(vec: TVec2[SomeFloat]): auto = + sqrt(vec[0] * vec[0] + vec[1] * vec[1]) +func length*(vec: TVec2[SomeInteger]): auto = + sqrt(float(vec[0] * vec[0] + vec[1] * vec[1])) +func length*(vec: TVec3[SomeFloat]): auto = + sqrt(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2]) +func length*(vec: TVec3[SomeInteger]): auto = + sqrt(float(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2])) +func length*(vec: TVec4[SomeFloat]): auto = + sqrt(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2] + vec[3] * vec[3]) +func length*(vec: TVec4[SomeInteger]): auto = + sqrt(float(vec[0] * vec[0] + vec[1] * vec[1] + vec[2] * vec[2] + vec[3] * vec[3])) +func abs*[T](vec: TVec1[T]): auto = + TVec1([abs(vec[0])]) +func abs*[T](vec: TVec2[T]): auto = + TVec2([abs(vec[0]), abs(vec[1])]) +func abs*[T](vec: TVec3[T]): auto = + TVec3([abs(vec[0]), abs(vec[1]), abs(vec[2])]) +func abs*[T](vec: TVec4[T]): auto = + TVec4([abs(vec[0]), abs(vec[1]), abs(vec[2]), abs(vec[3])]) -func abs*[T](vec: TVec1[T]): auto = TVec1([abs(vec[0])]) -func abs*[T](vec: TVec2[T]): auto = TVec2([abs(vec[0]), abs(vec[1])]) -func abs*[T](vec: TVec3[T]): auto = TVec3([abs(vec[0]), abs(vec[1]), abs(vec[2])]) -func abs*[T](vec: TVec4[T]): auto = TVec4([abs(vec[0]), abs(vec[1]), abs(vec[2]), abs(vec[3])]) +func round*[T](vec: TVec1[T]): auto = + TVec1([round(vec[0])]) +func round*[T](vec: TVec2[T]): auto = + TVec2([round(vec[0]), round(vec[1])]) +func round*[T](vec: TVec3[T]): auto = + TVec3([round(vec[0]), round(vec[1]), round(vec[2])]) +func round*[T](vec: TVec4[T]): auto = + TVec4([round(vec[0]), round(vec[1]), round(vec[2]), round(vec[3])]) -func round*[T](vec: TVec1[T]): auto = TVec1([round(vec[0])]) -func round*[T](vec: TVec2[T]): auto = TVec2([round(vec[0]), round(vec[1])]) -func round*[T](vec: TVec3[T]): auto = TVec3([round(vec[0]), round(vec[1]), round(vec[2])]) -func round*[T](vec: TVec4[T]): auto = TVec4([round(vec[0]), round(vec[1]), round(vec[2]), round(vec[3])]) +func floor*[T](vec: TVec1[T]): auto = + TVec1([floor(vec[0])]) +func floor*[T](vec: TVec2[T]): auto = + TVec2([floor(vec[0]), floor(vec[1])]) +func floor*[T](vec: TVec3[T]): auto = + TVec3([floor(vec[0]), floor(vec[1]), floor(vec[2])]) +func floor*[T](vec: TVec4[T]): auto = + TVec4([floor(vec[0]), floor(vec[1]), floor(vec[2]), floor(vec[3])]) -func floor*[T](vec: TVec1[T]): auto = TVec1([floor(vec[0])]) -func floor*[T](vec: TVec2[T]): auto = TVec2([floor(vec[0]), floor(vec[1])]) -func floor*[T](vec: TVec3[T]): auto = TVec3([floor(vec[0]), floor(vec[1]), floor(vec[2])]) -func floor*[T](vec: TVec4[T]): auto = TVec4([floor(vec[0]), floor(vec[1]), floor(vec[2]), floor(vec[3])]) +func ceil*[T](vec: TVec1[T]): auto = + TVec1([ceil(vec[0])]) +func ceil*[T](vec: TVec2[T]): auto = + TVec2([ceil(vec[0]), ceil(vec[1])]) +func ceil*[T](vec: TVec3[T]): auto = + TVec3([ceil(vec[0]), ceil(vec[1]), ceil(vec[2])]) +func ceil*[T](vec: TVec4[T]): auto = + TVec4([ceil(vec[0]), ceil(vec[1]), ceil(vec[2]), ceil(vec[3])]) -func ceil*[T](vec: TVec1[T]): auto = TVec1([ceil(vec[0])]) -func ceil*[T](vec: TVec2[T]): auto = TVec2([ceil(vec[0]), ceil(vec[1])]) -func ceil*[T](vec: TVec3[T]): auto = TVec3([ceil(vec[0]), ceil(vec[1]), ceil(vec[2])]) -func ceil*[T](vec: TVec4[T]): auto = TVec4([ceil(vec[0]), ceil(vec[1]), ceil(vec[2]), ceil(vec[3])]) - -func manhattan*(vec: TVec1): auto = abs(vec[0]) -func manhattan*(vec: TVec2): auto = abs(vec[0]) + abs(vec[1]) -func manhattan*(vec: TVec3): auto = abs(vec[0]) + abs(vec[1]) + abs(vec[2]) -func manhattan*(vec: TVec4): auto = abs(vec[0]) + abs(vec[1]) + abs(vec[2]) + abs(vec[3]) +func manhattan*(vec: TVec1): auto = + abs(vec[0]) +func manhattan*(vec: TVec2): auto = + abs(vec[0]) + abs(vec[1]) +func manhattan*(vec: TVec3): auto = + abs(vec[0]) + abs(vec[1]) + abs(vec[2]) +func manhattan*(vec: TVec4): auto = + abs(vec[0]) + abs(vec[1]) + abs(vec[2]) + abs(vec[3]) func normal*[T: SomeFloat](vec: TVec2[T]): auto = TVec2[T]([vec[1], -vec[0]]) @@ -206,141 +282,269 @@ return T(1) func normalized*[T: SomeFloat](vec: TVec2[T]): auto = let l = vec.length - if l == 0: vec - else: TVec2[T]([vec[0] / l, vec[1] / l]) + if l == 0: + vec + else: + TVec2[T]([vec[0] / l, vec[1] / l]) func normalized*[T: SomeFloat](vec: TVec3[T]): auto = let l = vec.length - if l == 0: return vec - else: TVec3[T]([vec[0] / l, vec[1] / l, vec[2] / l]) + if l == 0: + return vec + else: + TVec3[T]([vec[0] / l, vec[1] / l, vec[2] / l]) func normalized*[T: SomeFloat](vec: TVec4[T]): auto = let l = vec.length - if l == 0: return vec - else: TVec4[T]([vec[0] / l, vec[1] / l, vec[2] / l, vec[3] / l]) + if l == 0: + return vec + else: + TVec4[T]([vec[0] / l, vec[1] / l, vec[2] / l, vec[3] / l]) # scalar operations -func `+`*(a: TVec1, b: SomeNumber): auto = TVec1([a[0] + b]) -func `+`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] + b, a[1] + b]) -func `+`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] + b, a[1] + b, a[2] + b]) -func `+`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] + b, a[1] + b, a[2] + b, a[3] + b]) -func `-`*(a: TVec1, b: SomeNumber): auto = TVec1([a[0] - b]) -func `-`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] - b, a[1] - b]) -func `-`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] - b, a[1] - b, a[2] - b]) -func `-`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] - b, a[1] - b, a[2] - b, - a[3] - b]) -func `*`*(a: TVec1, b: SomeNumber): auto = TVec1([a[0] * b]) -func `*`*(a: TVec2, b: SomeNumber): auto = TVec2([a[0] * b, a[1] * b]) -func `*`*(a: TVec3, b: SomeNumber): auto = TVec3([a[0] * b, a[1] * b, a[2] * b]) -func `*`*(a: TVec4, b: SomeNumber): auto = TVec4([a[0] * b, a[1] * b, a[2] * b, - a[3] * b]) -func `div`*[T, S: SomeInteger](a: TVec1[T], b: S): auto = TVec1[T]([a[0] div T(b)]) -func `/`*[T, S: SomeFloat](a: TVec1[T], b: S): auto = TVec1[T]([a[0] / T(b)]) -func `div`*[T, S: SomeInteger](a: TVec2[T], b: S): auto = TVec2([a[0] div T(b), a[1] div T(b)]) -func `/`*[T, S: SomeFloat](a: TVec2[T], b: S): auto = TVec2[T]([a[0] / T(b), a[1] / T(b)]) -func `div`*[T, S: SomeInteger](a: TVec3[T], b: S): auto = TVec3([a[0] div T(b), a[1] div T(b), a[2] div T(b)]) -func `/`*[T, S: SomeFloat](a: TVec3[T], b: S): auto = TVec3[T]([a[0] / T(b), a[1] / T(b), a[2] / T(b)]) -func `div`*[T, S: SomeInteger](a: TVec4[T], b: S): auto = TVec4([a[0] div T(b), a[1] div T(b), a[2] div T(b), a[3] div T(b)]) -func `/`*[T, S: SomeFloat](a: TVec4[T], b: S): auto = TVec4[T]([a[0] / T(b), a[1] / T(b), a[2] / T(b), a[3] / T(b)]) +func `+`*(a: TVec1, b: SomeNumber): auto = + TVec1([a[0] + b]) +func `+`*(a: TVec2, b: SomeNumber): auto = + TVec2([a[0] + b, a[1] + b]) +func `+`*(a: TVec3, b: SomeNumber): auto = + TVec3([a[0] + b, a[1] + b, a[2] + b]) +func `+`*(a: TVec4, b: SomeNumber): auto = + TVec4([a[0] + b, a[1] + b, a[2] + b, a[3] + b]) +func `-`*(a: TVec1, b: SomeNumber): auto = + TVec1([a[0] - b]) +func `-`*(a: TVec2, b: SomeNumber): auto = + TVec2([a[0] - b, a[1] - b]) +func `-`*(a: TVec3, b: SomeNumber): auto = + TVec3([a[0] - b, a[1] - b, a[2] - b]) +func `-`*(a: TVec4, b: SomeNumber): auto = + TVec4([a[0] - b, a[1] - b, a[2] - b, a[3] - b]) +func `*`*(a: TVec1, b: SomeNumber): auto = + TVec1([a[0] * b]) +func `*`*(a: TVec2, b: SomeNumber): auto = + TVec2([a[0] * b, a[1] * b]) +func `*`*(a: TVec3, b: SomeNumber): auto = + TVec3([a[0] * b, a[1] * b, a[2] * b]) +func `*`*(a: TVec4, b: SomeNumber): auto = + TVec4([a[0] * b, a[1] * b, a[2] * b, a[3] * b]) +func `div`*[T, S: SomeInteger](a: TVec1[T], b: S): auto = + TVec1[T]([a[0] div T(b)]) +func `/`*[T, S: SomeFloat](a: TVec1[T], b: S): auto = + TVec1[T]([a[0] / T(b)]) +func `div`*[T, S: SomeInteger](a: TVec2[T], b: S): auto = + TVec2([a[0] div T(b), a[1] div T(b)]) +func `/`*[T, S: SomeFloat](a: TVec2[T], b: S): auto = + TVec2[T]([a[0] / T(b), a[1] / T(b)]) +func `div`*[T, S: SomeInteger](a: TVec3[T], b: S): auto = + TVec3([a[0] div T(b), a[1] div T(b), a[2] div T(b)]) +func `/`*[T, S: SomeFloat](a: TVec3[T], b: S): auto = + TVec3[T]([a[0] / T(b), a[1] / T(b), a[2] / T(b)]) +func `div`*[T, S: SomeInteger](a: TVec4[T], b: S): auto = + TVec4([a[0] div T(b), a[1] div T(b), a[2] div T(b), a[3] div T(b)]) +func `/`*[T, S: SomeFloat](a: TVec4[T], b: S): auto = + TVec4[T]([a[0] / T(b), a[1] / T(b), a[2] / T(b), a[3] / T(b)]) -func `+`*(a: SomeNumber, b: TVec1): auto = TVec1([a + b[0]]) -func `+`*(a: SomeNumber, b: TVec2): auto = TVec2([a + b[0], a + b[1]]) -func `+`*(a: SomeNumber, b: TVec3): auto = TVec3([a + b[0], a + b[1], a + b[2]]) -func `+`*(a: SomeNumber, b: TVec4): auto = TVec4([a + b[0], a + b[1], a + b[2], a + b[3]]) -func `-`*(a: SomeNumber, b: TVec1): auto = TVec1([a - b[0]]) -func `-`*(a: SomeNumber, b: TVec2): auto = TVec2([a - b[0], a - b[1]]) -func `-`*(a: SomeNumber, b: TVec3): auto = TVec3([a - b[0], a - b[1], a - b[2]]) -func `-`*(a: SomeNumber, b: TVec4): auto = TVec4([a - b[0], a - b[1], a - b[2], a - b[3]]) -func `*`*(a: SomeNumber, b: TVec1): auto = TVec1([a * b[0]]) -func `*`*(a: SomeNumber, b: TVec2): auto = TVec2([a * b[0], a * b[1]]) -func `*`*(a: SomeNumber, b: TVec3): auto = TVec3([a * b[0], a * b[1], a * b[2]]) -func `*`*(a: SomeNumber, b: TVec4): auto = TVec4([a * b[0], a * b[1], a * b[2], a * b[3]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec1[T]): auto = TVec1([a div b[0]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec1[T]): auto = TVec1([a / b[0]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec2[T]): auto = TVec2([a div b[0], a div b[1]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec2[T]): auto = TVec2([a / b[0], a / b[1]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec3[T]): auto = TVec3([a div b[0], a div b[1], a div b[2]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec3[T]): auto = TVec3([a / b[0], a / b[1], a / b[2]]) -func `/`*[T: SomeInteger](a: SomeInteger, b: TVec4[T]): auto = TVec4([a div b[0], a div b[1], a div b[2], a div b[3]]) -func `/`*[T: SomeFloat](a: SomeFloat, b: TVec4[T]): auto = TVec4([a / b[0], a / - b[1], a / b[2], a / b[3]]) +func `+`*(a: SomeNumber, b: TVec1): auto = + TVec1([a + b[0]]) +func `+`*(a: SomeNumber, b: TVec2): auto = + TVec2([a + b[0], a + b[1]]) +func `+`*(a: SomeNumber, b: TVec3): auto = + TVec3([a + b[0], a + b[1], a + b[2]]) +func `+`*(a: SomeNumber, b: TVec4): auto = + TVec4([a + b[0], a + b[1], a + b[2], a + b[3]]) +func `-`*(a: SomeNumber, b: TVec1): auto = + TVec1([a - b[0]]) +func `-`*(a: SomeNumber, b: TVec2): auto = + TVec2([a - b[0], a - b[1]]) +func `-`*(a: SomeNumber, b: TVec3): auto = + TVec3([a - b[0], a - b[1], a - b[2]]) +func `-`*(a: SomeNumber, b: TVec4): auto = + TVec4([a - b[0], a - b[1], a - b[2], a - b[3]]) +func `*`*(a: SomeNumber, b: TVec1): auto = + TVec1([a * b[0]]) +func `*`*(a: SomeNumber, b: TVec2): auto = + TVec2([a * b[0], a * b[1]]) +func `*`*(a: SomeNumber, b: TVec3): auto = + TVec3([a * b[0], a * b[1], a * b[2]]) +func `*`*(a: SomeNumber, b: TVec4): auto = + TVec4([a * b[0], a * b[1], a * b[2], a * b[3]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec1[T]): auto = + TVec1([a div b[0]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec1[T]): auto = + TVec1([a / b[0]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec2[T]): auto = + TVec2([a div b[0], a div b[1]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec2[T]): auto = + TVec2([a / b[0], a / b[1]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec3[T]): auto = + TVec3([a div b[0], a div b[1], a div b[2]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec3[T]): auto = + TVec3([a / b[0], a / b[1], a / b[2]]) +func `/`*[T: SomeInteger](a: SomeInteger, b: TVec4[T]): auto = + TVec4([a div b[0], a div b[1], a div b[2], a div b[3]]) +func `/`*[T: SomeFloat](a: SomeFloat, b: TVec4[T]): auto = + TVec4([a / b[0], a / b[1], a / b[2], a / b[3]]) # compontent-wise operations -func `+`*(a, b: TVec1): auto = TVec1([a[0] + b[0]]) -func `+`*(a, b: TVec2): auto = TVec2([a[0] + b[0], a[1] + b[1]]) -func `+`*(a, b: TVec3): auto = TVec3([a[0] + b[0], a[1] + b[1], a[2] + b[2]]) -func `+`*(a, b: TVec4): auto = TVec4([a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3]]) -func `-`*(a: TVec1): auto = TVec1([-a[0]]) -func `-`*(a: TVec2): auto = TVec2([-a[0], -a[1]]) -func `-`*(a: TVec3): auto = TVec3([-a[0], -a[1], -a[2]]) -func `-`*(a: TVec4): auto = TVec4([-a[0], -a[1], -a[2], -a[3]]) -func `-`*(a, b: TVec1): auto = TVec1([a[0] - b[0]]) -func `-`*(a, b: TVec2): auto = TVec2([a[0] - b[0], a[1] - b[1]]) -func `-`*(a, b: TVec3): auto = TVec3([a[0] - b[0], a[1] - b[1], a[2] - b[2]]) -func `-`*(a, b: TVec4): auto = TVec4([a[0] - b[0], a[1] - b[1], a[2] - b[2], a[3] - b[3]]) -func `*`*(a, b: TVec1): auto = TVec1([a[0] * b[0]]) -func `*`*(a, b: TVec2): auto = TVec2([a[0] * b[0], a[1] * b[1]]) -func `*`*(a, b: TVec3): auto = TVec3([a[0] * b[0], a[1] * b[1], a[2] * b[2]]) -func `*`*(a, b: TVec4): auto = TVec4([a[0] * b[0], a[1] * b[1], a[2] * b[2], a[3] * b[3]]) -func `div`*[T: SomeInteger](a, b: TVec1[T]): auto = TVec1([a[0] div b[0]]) -func floorDiv*[T: SomeInteger](a, b: TVec1[T]): auto = TVec1([floorDiv(a[0], b[0])]) -func floorMod*[T: SomeInteger](a, b: TVec1[T]): auto = TVec1([floorMod(a[0], b[0])]) -func `/`*[T: SomeInteger](a, b: TVec1[T]): auto = TVec1([a[0] / b[0]]) -func `/`*[T: SomeFloat](a, b: TVec1[T]): auto = TVec1([a[0] / b[0]]) -func `div`*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([a[0] div b[0], a[1] div b[1]]) -func floorDiv*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([floorDiv(a[0], b[0]), floorDiv(a[1], b[1])]) -func floorMod*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([floorMod(a[0], b[0]), floorMod(a[1], b[1])]) -func `/`*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([a[0] / b[0], a[1] / b[1]]) -func `/`*[T: SomeFloat](a, b: TVec2[T]): auto = TVec2([a[0] / b[0], a[1] / b[1]]) -func `div`*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([a[0] div b[0], a[1] div b[1], a[2] div b[2]]) -func floorDiv*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([floorDiv(a[0], b[0]), floorDiv(a[1], b[1]), floorDiv(a[2], b[2])]) -func floorMod*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([floorMod(a[0], b[0]), floorMod(a[1], b[1]), floorMod(a[2], b[2])]) -func `/`*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([a[0] / b[0], a[1] / b[1], a[2] / b[2]]) -func `/`*[T: SomeFloat](a, b: TVec3[T]): auto = TVec3([a[0] / b[0], a[1] / b[1], a[2] / b[2]]) -func `div`*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([a[0] div b[0], a[1] div b[1], a[2] div b[2], a[3] div b[3]]) -func floorDiv*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([floorDiv(a[0], b[0]), floorDiv(a[1], b[1]), floorDiv(a[2], b[2]), floorDiv(a[3], b[3])]) -func floorMod*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([floorMod(a[0], b[0]), floorMod(a[1], b[1]), floorMod(a[2], b[2]), floorMod(a[3], b[3])]) -func `/`*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([a[0] / b[0], a[1] / b[1], a[2] / b[2], a[3] / b[3]]) -func `/`*[T: SomeFloat](a, b: TVec4[T]): auto = TVec4([a[0] / b[0], a[1] / b[1], a[2] / b[2], a[3] / b[3]]) +func `+`*(a, b: TVec1): auto = + TVec1([a[0] + b[0]]) +func `+`*(a, b: TVec2): auto = + TVec2([a[0] + b[0], a[1] + b[1]]) +func `+`*(a, b: TVec3): auto = + TVec3([a[0] + b[0], a[1] + b[1], a[2] + b[2]]) +func `+`*(a, b: TVec4): auto = + TVec4([a[0] + b[0], a[1] + b[1], a[2] + b[2], a[3] + b[3]]) +func `-`*(a: TVec1): auto = + TVec1([-a[0]]) +func `-`*(a: TVec2): auto = + TVec2([-a[0], -a[1]]) +func `-`*(a: TVec3): auto = + TVec3([-a[0], -a[1], -a[2]]) +func `-`*(a: TVec4): auto = + TVec4([-a[0], -a[1], -a[2], -a[3]]) +func `-`*(a, b: TVec1): auto = + TVec1([a[0] - b[0]]) +func `-`*(a, b: TVec2): auto = + TVec2([a[0] - b[0], a[1] - b[1]]) +func `-`*(a, b: TVec3): auto = + TVec3([a[0] - b[0], a[1] - b[1], a[2] - b[2]]) +func `-`*(a, b: TVec4): auto = + TVec4([a[0] - b[0], a[1] - b[1], a[2] - b[2], a[3] - b[3]]) +func `*`*(a, b: TVec1): auto = + TVec1([a[0] * b[0]]) +func `*`*(a, b: TVec2): auto = + TVec2([a[0] * b[0], a[1] * b[1]]) +func `*`*(a, b: TVec3): auto = + TVec3([a[0] * b[0], a[1] * b[1], a[2] * b[2]]) +func `*`*(a, b: TVec4): auto = + TVec4([a[0] * b[0], a[1] * b[1], a[2] * b[2], a[3] * b[3]]) +func `div`*[T: SomeInteger](a, b: TVec1[T]): auto = + TVec1([a[0] div b[0]]) +func floorDiv*[T: SomeInteger](a, b: TVec1[T]): auto = + TVec1([floorDiv(a[0], b[0])]) +func floorMod*[T: SomeInteger](a, b: TVec1[T]): auto = + TVec1([floorMod(a[0], b[0])]) +func `/`*[T: SomeInteger](a, b: TVec1[T]): auto = + TVec1([a[0] / b[0]]) +func `/`*[T: SomeFloat](a, b: TVec1[T]): auto = + TVec1([a[0] / b[0]]) +func `div`*[T: SomeInteger](a, b: TVec2[T]): auto = + TVec2([a[0] div b[0], a[1] div b[1]]) +func floorDiv*[T: SomeInteger](a, b: TVec2[T]): auto = + TVec2([floorDiv(a[0], b[0]), floorDiv(a[1], b[1])]) +func floorMod*[T: SomeInteger](a, b: TVec2[T]): auto = + TVec2([floorMod(a[0], b[0]), floorMod(a[1], b[1])]) +func `/`*[T: SomeInteger](a, b: TVec2[T]): auto = + TVec2([a[0] / b[0], a[1] / b[1]]) +func `/`*[T: SomeFloat](a, b: TVec2[T]): auto = + TVec2([a[0] / b[0], a[1] / b[1]]) +func `div`*[T: SomeInteger](a, b: TVec3[T]): auto = + TVec3([a[0] div b[0], a[1] div b[1], a[2] div b[2]]) +func floorDiv*[T: SomeInteger](a, b: TVec3[T]): auto = + TVec3([floorDiv(a[0], b[0]), floorDiv(a[1], b[1]), floorDiv(a[2], b[2])]) +func floorMod*[T: SomeInteger](a, b: TVec3[T]): auto = + TVec3([floorMod(a[0], b[0]), floorMod(a[1], b[1]), floorMod(a[2], b[2])]) +func `/`*[T: SomeInteger](a, b: TVec3[T]): auto = + TVec3([a[0] / b[0], a[1] / b[1], a[2] / b[2]]) +func `/`*[T: SomeFloat](a, b: TVec3[T]): auto = + TVec3([a[0] / b[0], a[1] / b[1], a[2] / b[2]]) +func `div`*[T: SomeInteger](a, b: TVec4[T]): auto = + TVec4([a[0] div b[0], a[1] div b[1], a[2] div b[2], a[3] div b[3]]) +func floorDiv*[T: SomeInteger](a, b: TVec4[T]): auto = + TVec4( + [ + floorDiv(a[0], b[0]), + floorDiv(a[1], b[1]), + floorDiv(a[2], b[2]), + floorDiv(a[3], b[3]), + ] + ) +func floorMod*[T: SomeInteger](a, b: TVec4[T]): auto = + TVec4( + [ + floorMod(a[0], b[0]), + floorMod(a[1], b[1]), + floorMod(a[2], b[2]), + floorMod(a[3], b[3]), + ] + ) +func `/`*[T: SomeInteger](a, b: TVec4[T]): auto = + TVec4([a[0] / b[0], a[1] / b[1], a[2] / b[2], a[3] / b[3]]) +func `/`*[T: SomeFloat](a, b: TVec4[T]): auto = + TVec4([a[0] / b[0], a[1] / b[1], a[2] / b[2], a[3] / b[3]]) -func `mod`*[T: SomeInteger](a, b: TVec1[T]): auto = TVec1([a[0] mod b[0]]) -func `mod`*[T: SomeInteger](a, b: TVec2[T]): auto = TVec2([a[0] mod b[0], a[1] mod b[1]]) -func `mod`*[T: SomeInteger](a, b: TVec3[T]): auto = TVec3([a[0] mod b[0], a[1] mod b[1], a[2] mod b[2]]) -func `mod`*[T: SomeInteger](a, b: TVec4[T]): auto = TVec4([a[0] mod b[0], a[1] mod b[1], a[2] mod b[2], a[3] mod b[3]]) +func `mod`*[T: SomeInteger](a, b: TVec1[T]): auto = + TVec1([a[0] mod b[0]]) +func `mod`*[T: SomeInteger](a, b: TVec2[T]): auto = + TVec2([a[0] mod b[0], a[1] mod b[1]]) +func `mod`*[T: SomeInteger](a, b: TVec3[T]): auto = + TVec3([a[0] mod b[0], a[1] mod b[1], a[2] mod b[2]]) +func `mod`*[T: SomeInteger](a, b: TVec4[T]): auto = + TVec4([a[0] mod b[0], a[1] mod b[1], a[2] mod b[2], a[3] mod b[3]]) # assignment operations, scalar -func `+=`*(a: var TVec1, b: SomeNumber) = a = a + b -func `+=`*(a: var TVec2, b: SomeNumber) = a = a + b -func `+=`*(a: var TVec3, b: SomeNumber) = a = a + b -func `+=`*(a: var TVec4, b: SomeNumber) = a = a + b -func `-=`*(a: var TVec1, b: SomeNumber) = a = a - b -func `-=`*(a: var TVec2, b: SomeNumber) = a = a - b -func `-=`*(a: var TVec3, b: SomeNumber) = a = a - b -func `-=`*(a: var TVec4, b: SomeNumber) = a = a - b -func `*=`*(a: var TVec1, b: SomeNumber) = a = a * b -func `*=`*(a: var TVec2, b: SomeNumber) = a = a * b -func `*=`*(a: var TVec3, b: SomeNumber) = a = a * b -func `*=`*(a: var TVec4, b: SomeNumber) = a = a * b -func `/=`*(a: var TVec1, b: SomeNumber) = a = a / b -func `/=`*(a: var TVec2, b: SomeNumber) = a = a / b -func `/=`*(a: var TVec3, b: SomeNumber) = a = a / b -func `/=`*(a: var TVec4, b: SomeNumber) = a = a / b +func `+=`*(a: var TVec1, b: SomeNumber) = + a = a + b +func `+=`*(a: var TVec2, b: SomeNumber) = + a = a + b +func `+=`*(a: var TVec3, b: SomeNumber) = + a = a + b +func `+=`*(a: var TVec4, b: SomeNumber) = + a = a + b +func `-=`*(a: var TVec1, b: SomeNumber) = + a = a - b +func `-=`*(a: var TVec2, b: SomeNumber) = + a = a - b +func `-=`*(a: var TVec3, b: SomeNumber) = + a = a - b +func `-=`*(a: var TVec4, b: SomeNumber) = + a = a - b +func `*=`*(a: var TVec1, b: SomeNumber) = + a = a * b +func `*=`*(a: var TVec2, b: SomeNumber) = + a = a * b +func `*=`*(a: var TVec3, b: SomeNumber) = + a = a * b +func `*=`*(a: var TVec4, b: SomeNumber) = + a = a * b +func `/=`*(a: var TVec1, b: SomeNumber) = + a = a / b +func `/=`*(a: var TVec2, b: SomeNumber) = + a = a / b +func `/=`*(a: var TVec3, b: SomeNumber) = + a = a / b +func `/=`*(a: var TVec4, b: SomeNumber) = + a = a / b # assignment operations, vector -func `+=`*(a: var TVec1, b: TVec1) = a = a + b -func `+=`*(a: var TVec2, b: TVec2) = a = a + b -func `+=`*(a: var TVec3, b: TVec3) = a = a + b -func `+=`*(a: var TVec4, b: TVec4) = a = a + b -func `-=`*(a: var TVec1, b: TVec1) = a = a - b -func `-=`*(a: var TVec2, b: TVec2) = a = a - b -func `-=`*(a: var TVec3, b: TVec3) = a = a - b -func `-=`*(a: var TVec4, b: TVec4) = a = a - b -func `*=`*(a: var TVec1, b: TVec1) = a = a * b -func `*=`*(a: var TVec2, b: TVec2) = a = a * b -func `*=`*(a: var TVec3, b: TVec3) = a = a * b -func `*=`*(a: var TVec4, b: TVec4) = a = a * b -func `/=`*(a: var TVec1, b: TVec1) = a = a / b -func `/=`*(a: var TVec2, b: TVec2) = a = a / b -func `/=`*(a: var TVec3, b: TVec3) = a = a / b -func `/=`*(a: var TVec4, b: TVec4) = a = a / b - +func `+=`*(a: var TVec1, b: TVec1) = + a = a + b +func `+=`*(a: var TVec2, b: TVec2) = + a = a + b +func `+=`*(a: var TVec3, b: TVec3) = + a = a + b +func `+=`*(a: var TVec4, b: TVec4) = + a = a + b +func `-=`*(a: var TVec1, b: TVec1) = + a = a - b +func `-=`*(a: var TVec2, b: TVec2) = + a = a - b +func `-=`*(a: var TVec3, b: TVec3) = + a = a - b +func `-=`*(a: var TVec4, b: TVec4) = + a = a - b +func `*=`*(a: var TVec1, b: TVec1) = + a = a * b +func `*=`*(a: var TVec2, b: TVec2) = + a = a * b +func `*=`*(a: var TVec3, b: TVec3) = + a = a * b +func `*=`*(a: var TVec4, b: TVec4) = + a = a * b +func `/=`*(a: var TVec1, b: TVec1) = + a = a / b +func `/=`*(a: var TVec2, b: TVec2) = + a = a / b +func `/=`*(a: var TVec3, b: TVec3) = + a = a / b +func `/=`*(a: var TVec4, b: TVec4) = + a = a / b # special operations func pow*(a: TVec1, b: SomeNumber): auto = @@ -351,46 +555,45 @@ TVec3([pow(a[0], b), pow(a[1], b), pow(a[2], b)]) func pow*(a: TVec4, b: SomeNumber): auto = TVec4([pow(a[0], b), pow(a[1], b), pow(a[2], b), pow(a[3], b)]) -func dot*(a, b: TVec1): auto = a[0] * b[0] -func dot*(a, b: TVec2): auto = a[0] * b[0] + a[1] * b[1] -func dot*(a, b: TVec3): auto = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] -func dot*(a, b: TVec4): auto = a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3] -func cross*(a, b: TVec3): auto = TVec3([ - a[1] * b[2] - a[2] * b[1], - a[2] * b[0] - a[0] * b[2], - a[0] * b[1] - a[1] * b[0], -]) - +func dot*(a, b: TVec1): auto = + a[0] * b[0] +func dot*(a, b: TVec2): auto = + a[0] * b[0] + a[1] * b[1] +func dot*(a, b: TVec3): auto = + a[0] * b[0] + a[1] * b[1] + a[2] * b[2] +func dot*(a, b: TVec4): auto = + a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3] +func cross*(a, b: TVec3): auto = + TVec3( + [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]] + ) # macro to allow creation of new vectors by specifying vector components as attributes # e.g. myVec.xxy will return a new Vec3 that contains the components x, x an y of the original vector # (instead of x, y, z for a simple copy) proc vectorAttributeAccessor(accessor: string): seq[NimNode] = - const ACCESSOR_INDICES = { - 'x': 0, - 'y': 1, - 'z': 2, - 'w': 3, - 'r': 0, - 'g': 1, - 'b': 2, - 'a': 3, - }.toTable + const ACCESSOR_INDICES = + {'x': 0, 'y': 1, 'z': 2, 'w': 3, 'r': 0, 'g': 1, 'b': 2, 'a': 3}.toTable var getterCode, setterCode: NimNode let accessorvalue = accessor if accessorvalue.len == 0: raise newException(Exception, "empty attribute") elif accessorvalue.len == 1: - getterCode = nnkBracketExpr.newTree(ident("vec"), newLit(ACCESSOR_INDICES[accessorvalue[0]])) + getterCode = + nnkBracketExpr.newTree(ident("vec"), newLit(ACCESSOR_INDICES[accessorvalue[0]])) setterCode = nnkStmtList.newTree( nnkAsgn.newTree( - nnkBracketExpr.newTree(ident("vec"), newLit(ACCESSOR_INDICES[accessorvalue[0]])), ident("value")) + nnkBracketExpr.newTree(ident("vec"), newLit(ACCESSOR_INDICES[accessorvalue[0]])), + ident("value"), + ) ) if accessorvalue.len > 1: var attrs = nnkBracket.newTree() for attrname in accessorvalue: - attrs.add(nnkBracketExpr.newTree(ident("vec"), newLit(ACCESSOR_INDICES[attrname]))) + attrs.add( + nnkBracketExpr.newTree(ident("vec"), newLit(ACCESSOR_INDICES[attrname])) + ) getterCode = nnkCall.newTree(ident("TVec" & $accessorvalue.len), attrs) setterCode = nnkStmtList.newTree() var i = 0 @@ -403,26 +606,30 @@ result.add newProc( name = nnkPostfix.newTree(ident("*"), ident(accessor)), - params = [ident("auto"), nnkIdentDefs.newTree(ident("vec"), ident("TVec"), newEmptyNode())], + params = + [ident("auto"), nnkIdentDefs.newTree(ident("vec"), ident("TVec"), newEmptyNode())], body = newStmtList(getterCode), procType = nnkFuncDef, ) result.add nnkFuncDef.newTree( nnkPostfix.newTree( - newIdentNode("*"), - nnkAccQuoted.newTree(newIdentNode(accessor), newIdentNode("=")) + newIdentNode("*"), nnkAccQuoted.newTree(newIdentNode(accessor), newIdentNode("=")) ), newEmptyNode(), - nnkGenericParams.newTree(nnkIdentDefs.newTree(newIdentNode("T"), newEmptyNode(), newEmptyNode())), + nnkGenericParams.newTree( + nnkIdentDefs.newTree(newIdentNode("T"), newEmptyNode(), newEmptyNode()) + ), nnkFormalParams.newTree( newEmptyNode(), - nnkIdentDefs.newTree(newIdentNode("vec"), nnkVarTy.newTree(newIdentNode("TVec")), newEmptyNode()), - nnkIdentDefs.newTree(newIdentNode("value"), newIdentNode("T"), newEmptyNode()) + nnkIdentDefs.newTree( + newIdentNode("vec"), nnkVarTy.newTree(newIdentNode("TVec")), newEmptyNode() + ), + nnkIdentDefs.newTree(newIdentNode("value"), newIdentNode("T"), newEmptyNode()), ), newEmptyNode(), newEmptyNode(), - setterCode + setterCode, ) macro createVectorAttribAccessorFuncs() = diff -r df3c075e5dea -r 966032c7a3aa semicongine/events.nim --- a/semicongine/events.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/events.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,27 +1,112 @@ type EventType* = enum Quit - ResizedWindow, MinimizedWindow, RestoredWindow - KeyPressed, KeyReleased - MousePressed, MouseReleased, + ResizedWindow + MinimizedWindow + RestoredWindow + KeyPressed + KeyReleased + MousePressed + MouseReleased MouseWheel - GotFocus, LostFocus + GotFocus + LostFocus + Key* {.size: sizeof(cint), pure.} = enum UNKNOWN - Escape, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12 - NumberRowExtra1, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `0`, - NumberRowExtra2, NumberRowExtra3 # tilde, minus, plus - A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z - Tab, CapsLock, ShiftL, ShiftR, CtrlL, CtrlR, SuperL, SuperR, AltL, AltR, - Space, Enter, Backspace - LetterRow1Extra1, LetterRow1Extra2 # open bracket, close brackt, backslash - LetterRow2Extra1, LetterRow2Extra2, LetterRow2Extra3 # semicolon, quote - LetterRow3Extra1, LetterRow3Extra2, LetterRow3Extra3 # comma, period, slash - Up, Down, Left, Right - PageUp, PageDown, Home, End, Insert, Delete - PrintScreen, ScrollLock, Pause + Escape + F1 + F2 + F3 + F4 + F5 + F6 + F7 + F8 + F9 + F10 + F11 + F12 + NumberRowExtra1 + `1` + `2` + `3` + `4` + `5` + `6` + `7` + `8` + `9` + `0` + NumberRowExtra2 + NumberRowExtra3 # tilde, minus, plus + A + B + C + D + E + F + G + H + I + J + K + L + M + N + O + P + Q + R + S + T + U + V + W + X + Y + Z + Tab + CapsLock + ShiftL + ShiftR + CtrlL + CtrlR + SuperL + SuperR + AltL + AltR + Space + Enter + Backspace + LetterRow1Extra1 + LetterRow1Extra2 # open bracket, close brackt, backslash + LetterRow2Extra1 + LetterRow2Extra2 + LetterRow2Extra3 # semicolon, quote + LetterRow3Extra1 + LetterRow3Extra2 + LetterRow3Extra3 # comma, period, slash + Up + Down + Left + Right + PageUp + PageDown + Home + End + Insert + Delete + PrintScreen + ScrollLock + Pause + MouseButton* {.size: sizeof(cint), pure.} = enum - UNKNOWN, Mouse1, Mouse2, Mouse3 # Left, middle, right + UNKNOWN + Mouse1 + Mouse2 + Mouse3 # Left, middle, right + Event* = object case eventType*: EventType of KeyPressed, KeyReleased: diff -r df3c075e5dea -r 966032c7a3aa semicongine/gltf.nim --- a/semicongine/gltf.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/gltf.nim Thu Aug 22 18:32:21 2024 +0700 @@ -16,22 +16,24 @@ children*: seq[int] mesh*: int = -1 transform*: Mat4 = Unit4 + GltfData*[TMesh, TMaterial] = object scenes*: seq[seq[int]] # each scene has a seq of node indices - nodes*: seq[GltfNode] # each node has a seq of mesh indices + nodes*: seq[GltfNode] # each node has a seq of mesh indices meshes*: seq[seq[(TMesh, VkPrimitiveTopology)]] materials*: seq[TMaterial] textures*: seq[Image[BGRA]] + glTFHeader = object magic: uint32 version: uint32 length: uint32 + glTFData = object structuredContent: JsonNode binaryBufferData: seq[uint8] - MaterialAttributeNames* = object - # pbr + MaterialAttributeNames* = object # pbr baseColorTexture*: string baseColorTextureUv*: string baseColorFactor*: string @@ -60,10 +62,10 @@ indices*: string material*: string -proc `=copy`(dest: var GltfNode; source: GltfNode) {.error.} -proc `=copy`(dest: var glTFHeader; source: glTFHeader) {.error.} -proc `=copy`(dest: var glTFData; source: glTFData) {.error.} -proc `=copy`[S, T](dest: var GltfData[S, T]; source: GltfData[S, T]) {.error.} +proc `=copy`(dest: var GltfNode, source: GltfNode) {.error.} +proc `=copy`(dest: var glTFHeader, source: glTFHeader) {.error.} +proc `=copy`(dest: var glTFData, source: glTFData) {.error.} +proc `=copy`[S, T](dest: var GltfData[S, T], source: GltfData[S, T]) {.error.} const HEADER_MAGIC = 0x46546C67 @@ -80,20 +82,22 @@ SAMPLER_WRAP_MODE_MAP = { 33071: VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, 33648: VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, - 10497: VK_SAMPLER_ADDRESS_MODE_REPEAT + 10497: VK_SAMPLER_ADDRESS_MODE_REPEAT, }.toTable PRIMITIVE_MODE_MAP = [ 0: VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 1: VK_PRIMITIVE_TOPOLOGY_LINE_LIST, - 2: VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, # not correct, as mode 2 would be a loo, but vulkan has no concept of this + 2: VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, + # not correct, as mode 2 would be a loo, but vulkan has no concept of this 3: VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, 4: VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, 5: VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, 6: VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, ] -proc getBufferViewData(bufferView: JsonNode, mainBuffer: seq[uint8], - baseBufferOffset = 0): seq[uint8] = +proc getBufferViewData( + bufferView: JsonNode, mainBuffer: seq[uint8], baseBufferOffset = 0 +): seq[uint8] = assert bufferView["buffer"].getInt() == 0, "Currently no external buffers supported" result = newSeq[uint8](bufferView["byteLength"].getInt()) @@ -105,22 +109,36 @@ copyMem(dstPointer, addr mainBuffer[bufferOffset], result.len) proc componentTypeId(t: typedesc): int = - if t is int8: return 5120 - elif t is uint8: return 5121 - elif t is int16: return 5122 - elif t is uint16: return 5123 - elif t is uint32: return 5125 - elif t is float32: return 5126 + if t is int8: + return 5120 + elif t is uint8: + return 5121 + elif t is int16: + return 5122 + elif t is uint16: + return 5123 + elif t is uint32: + return 5125 + elif t is float32: + return 5126 proc componentTypeName(id: int): string = - if id == 5120: return int8.name - elif id == 5121: return uint8.name - elif id == 5122: return int16.name - elif id == 5123: return uint16.name - elif id == 5125: return uint32.name - elif id == 5126: return float32.name + if id == 5120: + return int8.name + elif id == 5121: + return uint8.name + elif id == 5122: + return int16.name + elif id == 5123: + return uint16.name + elif id == 5125: + return uint32.name + elif id == 5126: + return float32.name -proc getAccessorData[T](root: JsonNode, accessor: JsonNode, mainBuffer: seq[uint8]): seq[T] = +proc getAccessorData[T]( + root: JsonNode, accessor: JsonNode, mainBuffer: seq[uint8] +): seq[T] = if accessor.hasKey("sparse"): raise newException(Exception, "Sparce accessors are currently not supported") @@ -128,18 +146,29 @@ let itemType = accessor["type"].getStr() when T is TVec or T is TMat: - assert componentTypeId(elementType(default(T))) == componentType, "Requested type '" & name(elementType(default(T))) & $componentTypeId(elementType(default(T))) & "' but actual type is '" & componentTypeName(componentType) & "'" + assert componentTypeId(elementType(default(T))) == componentType, + "Requested type '" & name(elementType(default(T))) & + $componentTypeId(elementType(default(T))) & "' but actual type is '" & + componentTypeName(componentType) & "'" else: - assert componentTypeId(T) == componentType, "Requested type '" & name(T) & "' but actual type is '" & componentTypeName(componentType) & "'" + assert componentTypeId(T) == componentType, + "Requested type '" & name(T) & "' but actual type is '" & + componentTypeName(componentType) & "'" when T is TVec: - when len(default(T)) == 2: assert itemType == "VEC2" - elif len(default(T)) == 3: assert itemType == "VEC3" - elif len(default(T)) == 4: assert itemType == "VEC4" + when len(default(T)) == 2: + assert itemType == "VEC2" + elif len(default(T)) == 3: + assert itemType == "VEC3" + elif len(default(T)) == 4: + assert itemType == "VEC4" elif T is TMat: - when T is Mat2: assert itemType == "MAT2" - elif T is Mat3: assert itemType == "MAT3" - elif T is Mat4: assert itemType == "MAT4" + when T is Mat2: + assert itemType == "MAT2" + elif T is Mat3: + assert itemType == "MAT3" + elif T is Mat4: + assert itemType == "MAT4" else: assert itemType == "SCALAR" @@ -147,39 +176,49 @@ let bufferView = root["bufferViews"][accessor["bufferView"].getInt()] assert bufferView["buffer"].getInt() == 0, "Currently no external buffers supported" - let accessorOffset = if accessor.hasKey("byteOffset"): accessor["byteOffset"].getInt() else: 0 - let bufferOffset = (if "byteOffset" in bufferView: bufferView["byteOffset"].getInt() else: 0) + accessorOffset + let accessorOffset = + if accessor.hasKey("byteOffset"): + accessor["byteOffset"].getInt() + else: + 0 + let bufferOffset = + (if "byteOffset" in bufferView: bufferView["byteOffset"].getInt() + else: 0) + accessorOffset var dstPointer = result.ToCPointer() if bufferView.hasKey("byteStride"): warn "Congratulations, you try to test a feature (loading buffer data with stride attributes) that we have no idea where it is used and how it can be tested (need a coresponding *.glb file)." # we don't support stride, have to convert stuff here... does this even work? for i in 0 ..< result.len: - copyMem(dstPointer, addr(mainBuffer[bufferOffset + i * bufferView["byteStride"].getInt()]), sizeof(T)) + copyMem( + dstPointer, + addr(mainBuffer[bufferOffset + i * bufferView["byteStride"].getInt()]), + sizeof(T), + ) dstPointer = cast[typeof(dstPointer)](cast[uint](dstPointer) + sizeof(T).uint) else: copyMem(dstPointer, addr(mainBuffer[bufferOffset]), result.len * sizeof(T)) -proc loadTexture(root: JsonNode, textureNode: JsonNode, mainBuffer: seq[ - uint8]): Image[BGRA] = - +proc loadTexture( + root: JsonNode, textureNode: JsonNode, mainBuffer: seq[uint8] +): Image[BGRA] = let imageIndex = textureNode["source"].getInt() if root["images"][imageIndex].hasKey("uri"): - raise newException(Exception, "Unsupported feature: Cannot load images from external files") + raise newException( + Exception, "Unsupported feature: Cannot load images from external files" + ) - let bufferView = root["bufferViews"][root["images"][imageIndex][ - "bufferView"].getInt()] + let bufferView = + root["bufferViews"][root["images"][imageIndex]["bufferView"].getInt()] result = loadImageData[BGRA](getBufferViewData(bufferView, mainBuffer)) if textureNode.hasKey("sampler"): let sampler = root["samplers"][textureNode["sampler"].getInt()] if sampler.hasKey("magFilter"): - result.magInterpolation = SAMPLER_FILTER_MODE_MAP[sampler[ - "magFilter"].getInt()] + result.magInterpolation = SAMPLER_FILTER_MODE_MAP[sampler["magFilter"].getInt()] if sampler.hasKey("minFilter"): - result.minInterpolation = SAMPLER_FILTER_MODE_MAP[sampler[ - "minFilter"].getInt()] + result.minInterpolation = SAMPLER_FILTER_MODE_MAP[sampler["minFilter"].getInt()] if sampler.hasKey("wrapS"): result.wrapU = SAMPLER_WRAP_MODE_MAP[sampler["wrapS"].getInt()] if sampler.hasKey("wrapT"): @@ -189,10 +228,10 @@ vec4(node[0].getFloat(), node[1].getFloat(), node[2].getFloat(), node[3].getFloat()) proc loadMaterial[TMaterial]( - root: JsonNode, - materialNode: JsonNode, - mapping: static MaterialAttributeNames, - mainBuffer: seq[uint8], + root: JsonNode, + materialNode: JsonNode, + mapping: static MaterialAttributeNames, + mainBuffer: seq[uint8], ): TMaterial = result = TMaterial() @@ -213,10 +252,10 @@ {.error: "Unsupported gltf material attribute".} proc loadPrimitive[TMesh]( - root: JsonNode, - primitive: JsonNode, - mapping: static MeshAttributeNames, - mainBuffer: seq[uint8] + root: JsonNode, + primitive: JsonNode, + mapping: static MeshAttributeNames, + mainBuffer: seq[uint8], ): (TMesh, VkPrimitiveTopology) = result[0] = TMesh() result[1] = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST @@ -233,26 +272,35 @@ var i = 0 for mappedIndexName in mappedName: if gltfAttribute != "" and resultFieldName == mappedIndexName: - assert resultValue is GPUData, "Attribute " & resultFieldName & " must be of type GPUData" + assert resultValue is GPUData, + "Attribute " & resultFieldName & " must be of type GPUData" let gltfAttributeIndexed = gltfAttribute & "_" & $i if primitive["attributes"].hasKey(gltfAttributeIndexed): let accessor = primitive["attributes"][gltfAttributeIndexed].getInt() - resultValue.data = getAccessorData[elementType(resultValue.data)](root, root["accessors"][accessor], mainBuffer) + resultValue.data = getAccessorData[elementType(resultValue.data)]( + root, root["accessors"][accessor], mainBuffer + ) inc i elif typeof(mappedName) is string: when resultFieldName == mappedName: - assert resultValue is GPUData or gltfAttribute == "material", "Attribute " & resultFieldName & " must be of type GPUData" + assert resultValue is GPUData or gltfAttribute == "material", + "Attribute " & resultFieldName & " must be of type GPUData" when gltfAttribute == "indices": if primitive.hasKey(gltfAttribute): let accessor = primitive[gltfAttribute].getInt() - resultValue.data = getAccessorData[elementType(resultValue.data)](root, root["accessors"][accessor], mainBuffer) + resultValue.data = getAccessorData[elementType(resultValue.data)]( + root, root["accessors"][accessor], mainBuffer + ) elif gltfAttribute == "material": - if primitive.hasKey(gltfAttribute): # assuming here that materials IDs are a normal field on the mesh, not GPUData + if primitive.hasKey(gltfAttribute): + # assuming here that materials IDs are a normal field on the mesh, not GPUData resultValue = typeof(resultValue)(primitive[gltfAttribute].getInt()) else: if primitive["attributes"].hasKey(gltfAttribute): let accessor = primitive["attributes"][gltfAttribute].getInt() - resultValue.data = getAccessorData[elementType(resultValue.data)](root, root["accessors"][accessor], mainBuffer) + resultValue.data = getAccessorData[elementType(resultValue.data)]( + root, root["accessors"][accessor], mainBuffer + ) proc loadNode(node: JsonNode): GltfNode = result = GltfNode() @@ -271,7 +319,7 @@ t = translate( float32(node["translation"][0].getFloat()), float32(node["translation"][1].getFloat()), - float32(node["translation"][2].getFloat()) + float32(node["translation"][2].getFloat()), ) if "rotation" in node: t = rotate( @@ -279,22 +327,22 @@ vec3( float32(node["rotation"][0].getFloat()), float32(node["rotation"][1].getFloat()), - float32(node["rotation"][2].getFloat()) - ) + float32(node["rotation"][2].getFloat()), + ), ) if "scale" in node: t = scale( float32(node["scale"][0].getFloat()), float32(node["scale"][1].getFloat()), - float32(node["scale"][2].getFloat()) + float32(node["scale"][2].getFloat()), ) result.transform = t * r * s proc ReadglTF*[TMesh, TMaterial]( - stream: Stream, - meshAttributesMapping: static MeshAttributeNames, - materialAttributesMapping: static MaterialAttributeNames, + stream: Stream, + meshAttributesMapping: static MeshAttributeNames, + materialAttributesMapping: static MaterialAttributeNames, ): GltfData[TMesh, TMaterial] = var header: glTFHeader @@ -314,33 +362,40 @@ assert stream.readUint32() == BINARY_CHUNK data.binaryBufferData.setLen(chunkLength) assert stream.readData(addr data.binaryBufferData[0], int(chunkLength)) == - int(chunkLength) + int(chunkLength) # check that the refered buffer is the same as the binary chunk # external binary buffers are not supported assert data.structuredContent["buffers"].len == 1 assert not data.structuredContent["buffers"][0].hasKey("uri") - let bufferLenDiff = int(chunkLength) - data.structuredContent["buffers"][0]["byteLength"].getInt() - assert 0 <= bufferLenDiff and bufferLenDiff <= 3 # binary buffer may be aligned to 4 bytes + let bufferLenDiff = + int(chunkLength) - data.structuredContent["buffers"][0]["byteLength"].getInt() + assert 0 <= bufferLenDiff and bufferLenDiff <= 3 + # binary buffer may be aligned to 4 bytes debug "Loading mesh: ", data.structuredContent.pretty if "materials" in data.structuredContent: for materialnode in items(data.structuredContent["materials"]): - result.materials.add loadMaterial[TMaterial](data.structuredContent, - materialnode, materialAttributesMapping, data.binaryBufferData) + result.materials.add loadMaterial[TMaterial]( + data.structuredContent, materialnode, materialAttributesMapping, + data.binaryBufferData, + ) if "textures" in data.structuredContent: for texturenode in items(data.structuredContent["textures"]): - result.textures.add loadTexture(data.structuredContent, texturenode, - data.binaryBufferData) + result.textures.add loadTexture( + data.structuredContent, texturenode, data.binaryBufferData + ) if "meshes" in data.structuredContent: for mesh in items(data.structuredContent["meshes"]): var primitives: seq[(TMesh, VkPrimitiveTopology)] for primitive in items(mesh["primitives"]): - primitives.add loadPrimitive[TMesh](data.structuredContent, primitive, - meshAttributesMapping, data.binaryBufferData) + primitives.add loadPrimitive[TMesh]( + data.structuredContent, primitive, meshAttributesMapping, + data.binaryBufferData, + ) result.meshes.add primitives if "nodes" in data.structuredContent: @@ -356,10 +411,10 @@ result.scenes.add nodes proc loadMeshes*[TMesh, TMaterial]( - path: string, - meshAttributesMapping: static MeshAttributeNames, - materialAttributesMapping: static MaterialAttributeNames, - package = DEFAULT_PACKAGE + path: string, + meshAttributesMapping: static MeshAttributeNames, + materialAttributesMapping: static MaterialAttributeNames, + package = DEFAULT_PACKAGE, ): GltfData[TMesh, TMaterial] = ReadglTF[TMesh, TMaterial]( stream = loadResource_intern(path, package = package), diff -r df3c075e5dea -r 966032c7a3aa semicongine/image.nim --- a/semicongine/image.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/image.nim Thu Aug 22 18:32:21 2024 +0700 @@ -8,14 +8,16 @@ {.emit: "#define STB_IMAGE_STATIC".} {.emit: "#define STB_IMAGE_IMPLEMENTATION".} -{.emit: "#include \"" & currentSourcePath.parentDir() & "/thirdparty/stb/stb_image.h\"".} +{. + emit: "#include \"" & currentSourcePath.parentDir() & "/thirdparty/stb/stb_image.h\"" +.} proc stbi_load_from_memory( buffer: ptr uint8, len: cint, x, y: ptr cint, channels_in_file: ptr cint, - desired_channels: cint + desired_channels: cint, ): ptr uint8 {.importc, nodecl.} type @@ -38,16 +40,17 @@ samples*: VkSampleCountFlagBits = VK_SAMPLE_COUNT_1_BIT when IsArray: nLayers*: uint32 + Image*[T: PixelType] = ImageObject[T, false] ImageArray*[T: PixelType] = ImageObject[T, true] template nLayers*(image: Image): untyped = 1 -proc `=copy`[S, T](dest: var ImageObject[S, T]; source: ImageObject[S, T]) {.error.} +proc `=copy`[S, T](dest: var ImageObject[S, T], source: ImageObject[S, T]) {.error.} # loads single layer image -proc loadImageData*[T: PixelType](pngData: string|seq[uint8]): Image[T] = +proc loadImageData*[T: PixelType](pngData: string | seq[uint8]): Image[T] = when T is Gray: let nChannels = 1.cint elif T is BGRA: @@ -61,7 +64,7 @@ x = addr(w), y = addr(h), channels_in_file = addr(c), - desired_channels = nChannels + desired_channels = nChannels, ) if data == nil: raise newException(Exception, "An error occured while loading PNG file") @@ -75,7 +78,7 @@ for i in 0 ..< result.data.len: swap(result.data[i][0], result.data[i][2]) -proc addImageLayer*[T: PixelType](image: var Image[T], pngData: string|seq[uint8]) = +proc addImageLayer*[T: PixelType](image: var Image[T], pngData: string | seq[uint8]) = when T is Gray: const nChannels = 1.cint elif T is BGRA: @@ -89,13 +92,15 @@ x = addr(w), y = addr(h), channels_in_file = addr(c), - desired_channels = nChannels + desired_channels = nChannels, ) if data == nil: raise newException(Exception, "An error occured while loading PNG file") - assert w == image.width, "New image layer has dimension {(w, y)} but image has dimension {(image.width, image.height)}" - assert h == image.height, "New image layer has dimension {(w, y)} but image has dimension {(image.width, image.height)}" + assert w == image.width, + "New image layer has dimension {(w, y)} but image has dimension {(image.width, image.height)}" + assert h == image.height, + "New image layer has dimension {(w, y)} but image has dimension {(image.width, image.height)}" let imagesize = image.width * image.height * nChannels let layerOffset = image.width * image.height * image.nLayers @@ -109,7 +114,8 @@ swap(image.data[layerOffset + i][0], image.data[layerOffset + i][2]) proc loadImage*[T: PixelType](path: string, package = DEFAULT_PACKAGE): Image[T] = - assert path.splitFile().ext.toLowerAscii == ".png", "Unsupported image type: " & path.splitFile().ext.toLowerAscii + assert path.splitFile().ext.toLowerAscii == ".png", + "Unsupported image type: " & path.splitFile().ext.toLowerAscii when T is Gray: let pngType = 0.cint elif T is BGRA: @@ -130,16 +136,22 @@ image.data[y * image.width + x] = value proc `[]`*(image: ImageArray, layer, x, y: uint32): auto = - assert layer < image.nLayers, &"Tried to access image layer {layer}, but image has only {image.nLayers} layers" - assert x < image.width, &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" - assert y < image.height, &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" + assert layer < image.nLayers, + &"Tried to access image layer {layer}, but image has only {image.nLayers} layers" + assert x < image.width, + &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" + assert y < image.height, + &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" image.data[layer * (image.width * image.height) + y * image.width + x] proc `[]=`*[T](image: var ImageArray[T], layer, x, y: uint32, value: T) = - assert layer < image.nLayers, &"Tried to access image layer {layer}, but image has only {image.nLayers} layers" - assert x < image.width, &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" - assert y < image.height, &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" + assert layer < image.nLayers, + &"Tried to access image layer {layer}, but image has only {image.nLayers} layers" + assert x < image.width, + &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" + assert y < image.height, + &"Tried to access pixel coordinate {(x, y)} but image has size {(image.width, image.height)}" image.data[layer * (image.width * image.height) + y * image.width + x] = value diff -r df3c075e5dea -r 966032c7a3aa semicongine/input.nim --- a/semicongine/input.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/input.nim Thu Aug 22 18:32:21 2024 +0700 @@ -6,21 +6,20 @@ import ./rendering import ./storage -type - Input = object - keyIsDown: set[Key] - keyWasPressed: set[Key] - keyWasReleased: set[Key] - mouseIsDown: set[MouseButton] - mouseWasPressed: set[MouseButton] - mouseWasReleased: set[MouseButton] - mousePosition: Vec2i - mouseMove: Vec2i - mouseWheel: float32 - windowWasResized: bool = true - windowIsMinimized: bool = false - lockMouse: bool = false - hasFocus: bool = false +type Input = object + keyIsDown: set[Key] + keyWasPressed: set[Key] + keyWasReleased: set[Key] + mouseIsDown: set[MouseButton] + mouseWasPressed: set[MouseButton] + mouseWasReleased: set[MouseButton] + mousePosition: Vec2i + mouseMove: Vec2i + mouseWheel: float32 + windowWasResized: bool = true + windowIsMinimized: bool = false + lockMouse: bool = false + hasFocus: bool = false # warning, shit is not thread safe var input = Input() @@ -45,65 +44,99 @@ var killed = false for event in vulkan.window.pendingEvents(): - case event.eventType: - of Quit: - killed = true - of ResizedWindow: - input.windowWasResized = true - of KeyPressed: - input.keyWasPressed.incl event.key - input.keyIsDown.incl event.key - of KeyReleased: - input.keyWasReleased.incl event.key - input.keyIsDown.excl event.key - of MousePressed: - input.mouseWasPressed.incl event.button - input.mouseIsDown.incl event.button - of MouseReleased: - input.mouseWasReleased.incl event.button - input.mouseIsDown.excl event.button - of MouseWheel: - input.mouseWheel = event.amount - of MinimizedWindow: - input.windowIsMinimized = true - of RestoredWindow: - input.windowIsMinimized = false - of GotFocus: - input.hasFocus = true - of LostFocus: - input.hasFocus = false + case event.eventType + of Quit: + killed = true + of ResizedWindow: + input.windowWasResized = true + of KeyPressed: + input.keyWasPressed.incl event.key + input.keyIsDown.incl event.key + of KeyReleased: + input.keyWasReleased.incl event.key + input.keyIsDown.excl event.key + of MousePressed: + input.mouseWasPressed.incl event.button + input.mouseIsDown.incl event.button + of MouseReleased: + input.mouseWasReleased.incl event.button + input.mouseIsDown.excl event.button + of MouseWheel: + input.mouseWheel = event.amount + of MinimizedWindow: + input.windowIsMinimized = true + of RestoredWindow: + input.windowIsMinimized = false + of GotFocus: + input.hasFocus = true + of LostFocus: + input.hasFocus = false return not killed -proc keyIsDown*(key: Key): bool = key in input.keyIsDown -proc keyWasPressed*(key: Key): bool = key in input.keyWasPressed -proc keyWasPressed*(): bool = input.keyWasPressed.len > 0 -proc keyWasReleased*(key: Key): bool = key in input.keyWasReleased -proc mouseIsDown*(button: MouseButton): bool = button in input.mouseIsDown -proc mouseWasPressed*(): bool = input.mouseWasPressed.len > 0 -proc mouseWasPressed*(button: MouseButton): bool = button in input.mouseWasPressed -proc mousePressedButtons*(): set[MouseButton] = input.mouseWasPressed -proc mouseWasReleased*(): bool = input.mouseWasReleased.len > 0 -proc mouseWasReleased*(button: MouseButton): bool = button in input.mouseWasReleased -proc mouseReleasedButtons*(): set[MouseButton] = input.mouseWasReleased -proc mousePositionPixel*(): Vec2i = input.mousePosition +proc keyIsDown*(key: Key): bool = + key in input.keyIsDown + +proc keyWasPressed*(key: Key): bool = + key in input.keyWasPressed + +proc keyWasPressed*(): bool = + input.keyWasPressed.len > 0 + +proc keyWasReleased*(key: Key): bool = + key in input.keyWasReleased + +proc mouseIsDown*(button: MouseButton): bool = + button in input.mouseIsDown + +proc mouseWasPressed*(): bool = + input.mouseWasPressed.len > 0 + +proc mouseWasPressed*(button: MouseButton): bool = + button in input.mouseWasPressed + +proc mousePressedButtons*(): set[MouseButton] = + input.mouseWasPressed + +proc mouseWasReleased*(): bool = + input.mouseWasReleased.len > 0 + +proc mouseWasReleased*(button: MouseButton): bool = + button in input.mouseWasReleased + +proc mouseReleasedButtons*(): set[MouseButton] = + input.mouseWasReleased + +proc mousePositionPixel*(): Vec2i = + input.mousePosition + proc mousePosition*(): Vec2f = result = input.mousePosition.f32 / vulkan.window.size().f32 * 2.0'f32 - 1.0'f32 result.y = result.y * -1 -proc mouseMove*(): Vec2i = input.mouseMove -proc mouseWheel*(): float32 = input.mouseWheel -proc windowWasResized*(): auto = input.windowWasResized -proc windowIsMinimized*(): auto = input.windowIsMinimized -proc lockMouse*(value: bool) = input.lockMouse = value -proc hasFocus*(): bool = input.hasFocus + +proc mouseMove*(): Vec2i = + input.mouseMove + +proc mouseWheel*(): float32 = + input.mouseWheel +proc windowWasResized*(): auto = + input.windowWasResized + +proc windowIsMinimized*(): auto = + input.windowIsMinimized + +proc lockMouse*(value: bool) = + input.lockMouse = value + +proc hasFocus*(): bool = + input.hasFocus # actions as a slight abstraction over raw input -type - ActionMap = object - keyActions: Table[string, set[Key]] - mouseActions: Table[string, set[MouseButton]] +type ActionMap = object + keyActions: Table[string, set[Key]] + mouseActions: Table[string, set[MouseButton]] # warning, shit is not thread safe var actionMap: ActionMap @@ -118,7 +151,7 @@ actionMap.mouseActions[$action] = {} actionMap.mouseActions[$action].incl button -proc mapAction*[T: enum](action: T, keys: openArray[Key|MouseButton]) = +proc mapAction*[T: enum](action: T, keys: openArray[Key | MouseButton]) = for key in keys: mapAction(action, key) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering.nim --- a/semicongine/rendering.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering.nim Thu Aug 22 18:32:21 2024 +0700 @@ -19,12 +19,13 @@ # - some utils code that is used in mutiple rendering files # - inclusion of all rendering files - # const definitions const INFLIGHTFRAMES* = 2'u32 const BUFFER_ALIGNMENT = 64'u64 # align offsets inside buffers along this alignment -const MEMORY_BLOCK_ALLOCATION_SIZE = 100_000_000'u64 # ca. 100mb per block, seems reasonable -const BUFFER_ALLOCATION_SIZE = 9_000_000'u64 # ca. 9mb per block, seems reasonable, can put 10 buffers into one memory block +const MEMORY_BLOCK_ALLOCATION_SIZE = 100_000_000'u64 + # ca. 100mb per block, seems reasonable +const BUFFER_ALLOCATION_SIZE = 9_000_000'u64 + # ca. 9mb per block, seems reasonable, can put 10 buffers into one memory block const MAX_DESCRIPTORSETS = 4 const SURFACE_FORMAT* = VK_FORMAT_B8G8R8A8_SRGB const DEPTH_FORMAT* = VK_FORMAT_D32_SFLOAT @@ -32,12 +33,12 @@ # custom pragmas to classify shader attributes type DescriptorSetIndex = range[0 .. MAX_DESCRIPTORSETS - 1] -template VertexAttribute* {.pragma.} -template InstanceAttribute* {.pragma.} -template PushConstant* {.pragma.} -template Pass* {.pragma.} -template PassFlat* {.pragma.} -template ShaderOutput* {.pragma.} +template VertexAttribute*() {.pragma.} +template InstanceAttribute*() {.pragma.} +template PushConstant*() {.pragma.} +template Pass*() {.pragma.} +template PassFlat*() {.pragma.} +template ShaderOutput*() {.pragma.} template DescriptorSet*(index: DescriptorSetIndex) {.pragma.} # there is a big, bad global vulkan object @@ -50,10 +51,18 @@ type # type aliases - SupportedGPUType = float32 | float64 | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | TVec2[int32] | TVec2[int64] | TVec3[int32] | TVec3[int64] | TVec4[int32] | TVec4[int64] | TVec2[uint32] | TVec2[uint64] | TVec3[uint32] | TVec3[uint64] | TVec4[uint32] | TVec4[uint64] | TVec2[float32] | TVec2[float64] | TVec3[float32] | TVec3[float64] | TVec4[float32] | TVec4[float64] | TMat2[float32] | TMat2[float64] | TMat23[float32] | TMat23[float64] | TMat32[float32] | TMat32[float64] | TMat3[float32] | TMat3[float64] | TMat34[float32] | TMat34[float64] | TMat43[float32] | TMat43[float64] | TMat4[float32] | TMat4[float64] + SupportedGPUType = + float32 | float64 | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | + TVec2[int32] | TVec2[int64] | TVec3[int32] | TVec3[int64] | TVec4[int32] | + TVec4[int64] | TVec2[uint32] | TVec2[uint64] | TVec3[uint32] | TVec3[uint64] | + TVec4[uint32] | TVec4[uint64] | TVec2[float32] | TVec2[float64] | TVec3[float32] | + TVec3[float64] | TVec4[float32] | TVec4[float64] | TMat2[float32] | TMat2[float64] | + TMat23[float32] | TMat23[float64] | TMat32[float32] | TMat32[float64] | + TMat3[float32] | TMat3[float64] | TMat34[float32] | TMat34[float64] | TMat43[ + float32 + ] | TMat43[float64] | TMat4[float32] | TMat4[float64] - VulkanGlobals* = object - # populated through InitVulkan proc + VulkanGlobals* = object # populated through InitVulkan proc instance*: VkInstance device*: VkDevice physicalDevice*: VkPhysicalDevice @@ -66,10 +75,12 @@ swapchain*: Swapchain # unclear as of yet anisotropy*: float32 = 0 # needs to be enable during device creation + RenderPass* = ref object vk*: VkRenderPass samples*: VkSampleCountFlagBits depthBuffer*: bool + Swapchain* = ref object # parameters to initSwapchain, required for swapchain recreation renderPass*: RenderPass @@ -103,6 +114,7 @@ DescriptorSetData*[T: object] = object data*: T vk: array[INFLIGHTFRAMES.int, VkDescriptorSet] + Pipeline*[TShader] = object vk: VkPipeline vertexShaderModule: VkShaderModule @@ -118,11 +130,13 @@ IndexBufferMapped UniformBuffer UniformBufferMapped + MemoryBlock* = object vk: VkDeviceMemory size: uint64 rawPointer: pointer # if not nil, this is mapped memory offsetNextFree: uint64 + Buffer* = object vk: VkBuffer size: uint64 @@ -130,14 +144,17 @@ offsetNextFree: uint64 memoryOffset: uint64 memory: VkDeviceMemory + GPUArray*[T: SupportedGPUType, TBuffer: static BufferType] = object data*: seq[T] buffer*: Buffer offset*: uint64 + GPUValue*[T: object, TBuffer: static BufferType] = object data*: T buffer*: Buffer offset: uint64 + GPUData* = GPUArray | GPUValue RenderDataObject = object @@ -147,25 +164,29 @@ images: seq[VkImage] imageViews: seq[VkImageView] samplers: seq[VkSampler] + RenderData* = ref RenderDataObject var vulkan* = VulkanGlobals() var fullscreen_internal: bool -proc `=copy`(dest: var VulkanGlobals; source: VulkanGlobals) {.error.} -proc `=copy`(dest: var RenderDataObject; source: RenderDataObject) {.error.} -proc `=copy`[T, S](dest: var GPUValue[T, S]; source: GPUValue[T, S]) {.error.} -proc `=copy`[T, S](dest: var GPUArray[T, S]; source: GPUArray[T, S]) {.error.} -proc `=copy`(dest: var MemoryBlock; source: MemoryBlock) {.error.} -proc `=copy`[T](dest: var Pipeline[T]; source: Pipeline[T]) {.error.} -proc `=copy`[T](dest: var DescriptorSetData[T]; source: DescriptorSetData[T]) {.error.} +proc `=copy`(dest: var VulkanGlobals, source: VulkanGlobals) {.error.} +proc `=copy`(dest: var RenderDataObject, source: RenderDataObject) {.error.} +proc `=copy`[T, S](dest: var GPUValue[T, S], source: GPUValue[T, S]) {.error.} +proc `=copy`[T, S](dest: var GPUArray[T, S], source: GPUArray[T, S]) {.error.} +proc `=copy`(dest: var MemoryBlock, source: MemoryBlock) {.error.} +proc `=copy`[T](dest: var Pipeline[T], source: Pipeline[T]) {.error.} +proc `=copy`[T](dest: var DescriptorSetData[T], source: DescriptorSetData[T]) {.error.} proc `[]`*[T, S](a: GPUArray[T, S], i: int): T = a.data[i] + proc `[]=`*[T, S](a: var GPUArray[T, S], i: int, value: T) = a.data[i] = value -template forDescriptorFields(shader: typed, valuename, typename, countname, bindingNumber, body: untyped): untyped = +template forDescriptorFields( + shader: typed, valuename, typename, countname, bindingNumber, body: untyped +): untyped = var `bindingNumber` {.inject.} = 0'u32 for theFieldname, `valuename` in fieldPairs(shader): when typeof(`valuename`) is Image: @@ -194,7 +215,9 @@ body `bindingNumber`.inc else: - {.error: "Unsupported descriptor type: " & typetraits.name(typeof(`valuename`)).} + {. + error: "Unsupported descriptor type: " & typetraits.name(typeof(`valuename`)) + .} else: {.error: "Unsupported descriptor type: " & typetraits.name(typeof(`valuename`)).} @@ -209,36 +232,46 @@ include ./rendering/renderer proc debugCallback( - messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, - messageTypes: VkDebugUtilsMessageTypeFlagsEXT, - pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, - userData: pointer + messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, + messageTypes: VkDebugUtilsMessageTypeFlagsEXT, + pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, + userData: pointer, ): VkBool32 {.cdecl.} = const LOG_LEVEL_MAPPING = { - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: lvlDebug, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: lvlInfo, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: lvlWarn, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: lvlError, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT: lvlDebug, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT: lvlInfo, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT: lvlWarn, + VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: lvlError, }.toTable - log LOG_LEVEL_MAPPING[messageSeverity], &"{toEnums messageTypes}: {pCallbackData.pMessage}" + log LOG_LEVEL_MAPPING[messageSeverity], + &"{toEnums messageTypes}: {pCallbackData.pMessage}" if messageSeverity == VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT: stderr.writeLine "-----------------------------------" stderr.write getStackTrace() - stderr.writeLine LOG_LEVEL_MAPPING[messageSeverity], &"{toEnums messageTypes}: {pCallbackData.pMessage}" + stderr.writeLine LOG_LEVEL_MAPPING[messageSeverity], + &"{toEnums messageTypes}: {pCallbackData.pMessage}" stderr.writeLine "-----------------------------------" - let errorMsg = getStackTrace() & &"\n{toEnums messageTypes}: {pCallbackData.pMessage}" + let errorMsg = + getStackTrace() & &"\n{toEnums messageTypes}: {pCallbackData.pMessage}" raise newException(Exception, errorMsg) return false proc initVulkan*(appName: string = "semicongine app") = - # instance creation # enagle all kind of debug stuff when not defined(release): - let requiredExtensions = REQUIRED_PLATFORM_EXTENSIONS & @["VK_KHR_surface", "VK_EXT_debug_utils"] - let layers: seq[string] = if hasValidationLayer(): @["VK_LAYER_KHRONOS_validation"] else: @[] - putEnv("VK_LAYER_ENABLES", "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA,VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXTVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT") + let requiredExtensions = + REQUIRED_PLATFORM_EXTENSIONS & @["VK_KHR_surface", "VK_EXT_debug_utils"] + let layers: seq[string] = + if hasValidationLayer(): + @["VK_LAYER_KHRONOS_validation"] + else: + @[] + putEnv( + "VK_LAYER_ENABLES", + "VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_AMD,VALIDATION_CHECK_ENABLE_VENDOR_SPECIFIC_NVIDIA,VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXTVK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT,VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT", + ) else: let requiredExtensions = REQUIRED_PLATFORM_EXTENSIONS & @["VK_KHR_surface"] let layers: seq[string] = @[] @@ -263,7 +296,7 @@ enabledLayerCount: layers.len.uint32, ppEnabledLayerNames: layersC, enabledExtensionCount: requiredExtensions.len.uint32, - ppEnabledExtensionNames: instanceExtensionsC + ppEnabledExtensionNames: instanceExtensionsC, ) checkVkResult vkCreateInstance(addr(createinfo), nil, addr(vulkan.instance)) loadVulkan(vulkan.instance) @@ -295,15 +328,13 @@ pUserData: nil, ) checkVkResult vkCreateDebugUtilsMessengerEXT( - vulkan.instance, - addr(debugMessengerCreateInfo), - nil, - addr(vulkan.debugMessenger) + vulkan.instance, addr(debugMessengerCreateInfo), nil, addr(vulkan.debugMessenger) ) # get physical device and graphics queue family vulkan.physicalDevice = getBestPhysicalDevice(vulkan.instance) - vulkan.graphicsQueueFamily = getQueueFamily(vulkan.physicalDevice, VK_QUEUE_GRAPHICS_BIT) + vulkan.graphicsQueueFamily = + getQueueFamily(vulkan.physicalDevice, VK_QUEUE_GRAPHICS_BIT) let priority = cfloat(1) @@ -314,12 +345,10 @@ pQueuePriorities: addr(priority), ) deviceExtensionsC = allocCStringArray(deviceExtensions) - defer: deallocCStringArray(deviceExtensionsC) + defer: + deallocCStringArray(deviceExtensionsC) let enabledFeatures = VkPhysicalDeviceFeatures( - fillModeNonSolid: true, - depthClamp: true, - wideLines: true, - largePoints: true, + fillModeNonSolid: true, depthClamp: true, wideLines: true, largePoints: true ) var createDeviceInfo = VkDeviceCreateInfo( sType: VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, @@ -335,9 +364,10 @@ physicalDevice = vulkan.physicalDevice, pCreateInfo = addr createDeviceInfo, pAllocator = nil, - pDevice = addr vulkan.device + pDevice = addr vulkan.device, ) - vulkan.graphicsQueue = svkGetDeviceQueue(vulkan.device, vulkan.graphicsQueueFamily, VK_QUEUE_GRAPHICS_BIT) + vulkan.graphicsQueue = + svkGetDeviceQueue(vulkan.device, vulkan.graphicsQueueFamily, VK_QUEUE_GRAPHICS_BIT) proc clearSwapchain*() = assert vulkan.swapchain != nil, "Swapchain has not been initialized yet" @@ -357,8 +387,12 @@ vkDestroyDebugUtilsMessengerEXT(vulkan.instance, vulkan.debugMessenger, nil) vkDestroyInstance(vulkan.instance, nil) -proc showSystemCursor*(value: bool) = vulkan.window.showSystemCursor(value) -proc fullscreen*(): bool = fullscreen_internal +proc showSystemCursor*(value: bool) = + vulkan.window.showSystemCursor(value) + +proc fullscreen*(): bool = + fullscreen_internal + proc setFullscreen*(enable: bool) = if enable != fullscreen_internal: fullscreen_internal = enable @@ -368,9 +402,12 @@ assert vulkan.swapchain != nil, "Swapchain has not been initialized yet" vulkan.swapchain.width.float32 / vulkan.swapchain.height.float32 -proc maxFramebufferSampleCount*(maxSamples = VK_SAMPLE_COUNT_8_BIT): VkSampleCountFlagBits = +proc maxFramebufferSampleCount*( + maxSamples = VK_SAMPLE_COUNT_8_BIT +): VkSampleCountFlagBits = let limits = svkGetPhysicalDeviceProperties().limits let available = VkSampleCountFlags( - limits.framebufferColorSampleCounts.uint32 and limits.framebufferDepthSampleCounts.uint32 + limits.framebufferColorSampleCounts.uint32 and + limits.framebufferDepthSampleCounts.uint32 ).toEnums return min(max(available), maxSamples) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/platform/linux.nim --- a/semicongine/rendering/platform/linux.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/platform/linux.nim Thu Aug 22 18:32:21 2024 +0700 @@ -13,24 +13,92 @@ # got values (keycodes) from xev const KeyTypeMap = { - 9: Escape, 67: F1, 68: F2, 69: F3, 70: F4, 71: F5, 72: F6, 73: F7, 74: F8, - 75: F9, 76: F10, 95: F11, 96: F12, - 49: NumberRowExtra1, 10: `1`, 11: `2`, 12: `3`, 13: `4`, 14: `5`, 15: `6`, - 16: `7`, 17: `8`, 18: `9`, 19: `0`, 20: NumberRowExtra2, 21: NumberRowExtra3, - 24: Q, 25: W, 26: E, 27: R, 28: T, 29: Y, 30: U, 31: I, 32: O, 33: P, 38: A, - 39: S, 40: D, 41: Key.F, 42: G, 43: H, 44: J, 45: K, 46: L, 52: Z, 53: X, - 54: C, 55: V, 56: B, 57: N, 58: M, - - 23: Tab, 66: CapsLock, 50: ShiftL, 62: ShiftR, 37: CtrlL, 105: CtrlR, - 133: SuperL, 134: SuperR, - 64: AltL, 108: AltR, - 65: Space, 36: Enter, 22: Backspace, - 34: LetterRow1Extra1, 35: LetterRow1Extra2, - 47: LetterRow2Extra1, 48: LetterRow2Extra2, 51: LetterRow2Extra3, - 59: LetterRow3Extra1, 60: LetterRow3Extra2, 61: LetterRow3Extra3, - 111: Up, 116: Down, 113: Left, 114: Right, - 112: PageUp, 117: PageDown, 110: Home, 115: End, 118: Insert, 119: Delete, - 107: PrintScreen, 78: ScrollLock, 127: Pause, + 9: Escape, + 67: F1, + 68: F2, + 69: F3, + 70: F4, + 71: F5, + 72: F6, + 73: F7, + 74: F8, + 75: F9, + 76: F10, + 95: F11, + 96: F12, + 49: NumberRowExtra1, + 10: `1`, + 11: `2`, + 12: `3`, + 13: `4`, + 14: `5`, + 15: `6`, + 16: `7`, + 17: `8`, + 18: `9`, + 19: `0`, + 20: NumberRowExtra2, + 21: NumberRowExtra3, + 24: Q, + 25: W, + 26: E, + 27: R, + 28: T, + 29: Y, + 30: U, + 31: I, + 32: O, + 33: P, + 38: A, + 39: S, + 40: D, + 41: Key.F, + 42: G, + 43: H, + 44: J, + 45: K, + 46: L, + 52: Z, + 53: X, + 54: C, + 55: V, + 56: B, + 57: N, + 58: M, + 23: Tab, + 66: CapsLock, + 50: ShiftL, + 62: ShiftR, + 37: CtrlL, + 105: CtrlR, + 133: SuperL, + 134: SuperR, + 64: AltL, + 108: AltR, + 65: Space, + 36: Enter, + 22: Backspace, + 34: LetterRow1Extra1, + 35: LetterRow1Extra2, + 47: LetterRow2Extra1, + 48: LetterRow2Extra2, + 51: LetterRow2Extra3, + 59: LetterRow3Extra1, + 60: LetterRow3Extra2, + 61: LetterRow3Extra3, + 111: Up, + 116: Down, + 113: Left, + 114: Right, + 112: PageUp, + 117: PageDown, + 110: Home, + 115: End, + 118: Insert, + 119: Delete, + 107: PrintScreen, + 78: ScrollLock, + 127: Pause, }.toTable const MouseButtonTypeMap = { @@ -41,17 +109,16 @@ var deleteMessage*: Atom -type - NativeWindow* = object - display*: ptr xlib.Display - window*: x11.Window - emptyCursor: Cursor +type NativeWindow* = object + display*: ptr xlib.Display + window*: x11.Window + emptyCursor: Cursor template checkXlibResult(call: untyped) = let value = call if value == 0: - raise newException(Exception, "Xlib error: " & astToStr(call) & - " returned " & $value) + raise + newException(Exception, "Xlib error: " & astToStr(call) & " returned " & $value) proc XErrorLogger(display: PDisplay, event: PXErrorEvent): cint {.cdecl.} = logging.error &"Xlib: {event[]}" @@ -75,18 +142,26 @@ let window = XCreateWindow( display, rootWindow, - (attribs.width - cint(width)) div 2, (attribs.height - cint(height)) div 2, - width, height, + (attribs.width - cint(width)) div 2, + (attribs.height - cint(height)) div 2, + width, + height, 0, CopyFromParent, InputOutput, cast[PVisual](CopyFromParent), 0, # CWOverrideRedirect, - addr attrs, - # foregroundColor, backgroundColor + addr attrs, # foregroundColor, backgroundColor + ) + checkXlibResult XSetStandardProperties( + display, window, title, "window", 0, nil, 0, nil ) - checkXlibResult XSetStandardProperties(display, window, title, "window", 0, nil, 0, nil) - checkXlibResult XSelectInput(display, window, ButtonPressMask or ButtonReleaseMask or KeyPressMask or KeyReleaseMask or ExposureMask or FocusChangeMask) + checkXlibResult XSelectInput( + display, + window, + ButtonPressMask or ButtonReleaseMask or KeyPressMask or KeyReleaseMask or + ExposureMask or FocusChangeMask, + ) checkXlibResult XMapWindow(display, window) deleteMessage = XInternAtom(display, "WM_DELETE_WINDOW", XBool(false)) @@ -95,32 +170,26 @@ var data = "\0".cstring var pixmap = display.XCreateBitmapFromData(window, data, 1, 1) var color: XColor - var empty_cursor = display.XCreatePixmapCursor(pixmap, pixmap, addr(color), addr(color), 0, 0) + var empty_cursor = + display.XCreatePixmapCursor(pixmap, pixmap, addr(color), addr(color), 0, 0) checkXlibResult display.XFreePixmap(pixmap) return NativeWindow(display: display, window: window, emptyCursor: empty_cursor) proc setTitle*(window: NativeWindow, title: string) = - discard XSetStandardProperties(window.display, window.window, title, "window", 0, nil, 0, nil) + discard XSetStandardProperties( + window.display, window.window, title, "window", 0, nil, 0, nil + ) proc setFullscreen*(window: var NativeWindow, enable: bool) = var wm_state = window.display.XInternAtom("_NET_WM_STATE", 0) wm_fullscreen = window.display.XInternAtom("_NET_WM_STATE_FULLSCREEN", 0) - var - xev: XEvent + var xev: XEvent xev.xclient = XClientMessageEvent( message_type: wm_state, format: 32, window: window.window, - data: XClientMessageData( - l: [ - int(not enable) xor 1, - clong(wm_fullscreen), - 0, - 0, - 0 - ] - ) + data: XClientMessageData(l: [int(not enable) xor 1, clong(wm_fullscreen), 0, 0, 0]), ) xev.theType = ClientMessage @@ -128,7 +197,7 @@ window.display.DefaultRootWindow(), 0, SubstructureRedirectMask or SubstructureNotifyMask, - addr xev + addr xev, ) checkXlibResult window.display.XFlush() @@ -161,11 +230,15 @@ of KeyPress: let keyevent = cast[PXKeyEvent](addr(event)) let xkey = int(keyevent.keycode) - result.add Event(eventType: KeyPressed, key: KeyTypeMap.getOrDefault(xkey, Key.UNKNOWN)) + result.add Event( + eventType: KeyPressed, key: KeyTypeMap.getOrDefault(xkey, Key.UNKNOWN) + ) of KeyRelease: let keyevent = cast[PXKeyEvent](addr(event)) let xkey = int(keyevent.keycode) - result.add Event(eventType: KeyReleased, key: KeyTypeMap.getOrDefault(xkey, Key.UNKNOWN)) + result.add Event( + eventType: KeyReleased, key: KeyTypeMap.getOrDefault(xkey, Key.UNKNOWN) + ) of ButtonPress: let button = int(cast[PXButtonEvent](addr(event)).button) if button == Button4: @@ -173,10 +246,16 @@ elif button == Button5: result.add Event(eventType: MouseWheel, amount: -1'f32) else: - result.add Event(eventType: MousePressed, button: MouseButtonTypeMap.getOrDefault(button, MouseButton.UNKNOWN)) + result.add Event( + eventType: MousePressed, + button: MouseButtonTypeMap.getOrDefault(button, MouseButton.UNKNOWN), + ) of ButtonRelease: let button = int(cast[PXButtonEvent](addr(event)).button) - result.add Event(eventType: MouseReleased, button: MouseButtonTypeMap.getOrDefault(button, MouseButton.UNKNOWN)) + result.add Event( + eventType: MouseReleased, + button: MouseButtonTypeMap.getOrDefault(button, MouseButton.UNKNOWN), + ) of FocusIn: result.add Event(eventType: GotFocus) of FocusOut: @@ -186,7 +265,6 @@ else: discard - proc getMousePosition*(window: NativeWindow): Vec2i = var root: x11.Window @@ -214,7 +292,10 @@ window.display, default(x11.Window), window.window, - 0, 0, 0, 0, + 0, + 0, + 0, + 0, pos.x.cint, pos.y.cint, ) @@ -225,4 +306,6 @@ dpy: cast[ptr api.Display](window.display), window: cast[api.Window](window.window), ) - checkVkResult vkCreateXlibSurfaceKHR(instance, addr(surfaceCreateInfo), nil, addr(result)) + checkVkResult vkCreateXlibSurfaceKHR( + instance, addr(surfaceCreateInfo), nil, addr(result) + ) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/platform/windows.nim --- a/semicongine/rendering/platform/windows.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/platform/windows.nim Thu Aug 22 18:32:21 2024 +0700 @@ -11,38 +11,97 @@ const REQUIRED_PLATFORM_EXTENSIONS = @["VK_KHR_win32_surface"] const KeyTypeMap* = { - VK_ESCAPE: Key.Escape, VK_F1: F1, VK_F2: F2, VK_F3: F3, VK_F4: F4, VK_F5: F5, - VK_F6: F6, VK_F7: F7, VK_F8: F8, VK_F9: F9, VK_F10: F10, VK_F11: F11, + VK_ESCAPE: Key.Escape, + VK_F1: F1, + VK_F2: F2, + VK_F3: F3, + VK_F4: F4, + VK_F5: F5, + VK_F6: F6, + VK_F7: F7, + VK_F8: F8, + VK_F9: F9, + VK_F10: F10, + VK_F11: F11, VK_F12: F12, - VK_OEM_3: NumberRowExtra1, int('0'): `0`, int('1'): `1`, int('2'): `2`, int( - '3'): `3`, int('4'): `4`, int('5'): `5`, int('6'): `6`, int('7'): `7`, - int('8'): `8`, int('9'): `9`, VK_OEM_MINUS: NumberRowExtra2, - VK_OEM_PLUS: NumberRowExtra3, - int('A'): A, int('B'): B, int('C'): C, int('D'): D, int('E'): E, int('F'): F, - int('G'): G, int('H'): H, int('I'): I, int('J'): J, int('K'): K, int( - 'L'): L, int('M'): M, int('N'): N, int('O'): O, int('P'): P, int('Q'): Q, - int('R'): R, int('S'): S, int('T'): T, int('U'): U, int('V'): V, int( - 'W'): W, int('X'): X, int('Y'): Y, int('Z'): Z, - VK_TAB: Tab, VK_CAPITAL: CapsLock, VK_LSHIFT: ShiftL, VK_SHIFT: ShiftL, - VK_RSHIFT: ShiftR, VK_LCONTROL: CtrlL, VK_CONTROL: CtrlL, - VK_RCONTROL: CtrlR, VK_LWIN: SuperL, VK_RWIN: SuperR, VK_LMENU: AltL, - VK_RMENU: AltR, VK_SPACE: Space, VK_RETURN: Enter, VK_BACK: Backspace, - VK_OEM_4: LetterRow1Extra1, VK_OEM_6: LetterRow1Extra2, - VK_OEM_5: LetterRow2Extra3, - VK_OEM_1: LetterRow2Extra1, VK_OEM_7: LetterRow2Extra2, - VK_OEM_COMMA: LetterRow3Extra1, VK_OEM_PERIOD: LetterRow3Extra2, - VK_OEM_2: LetterRow3Extra3, - VK_UP: Up, VK_DOWN: Down, VK_LEFT: Left, VK_RIGHT: Right, - VK_PRIOR: PageUp, VK_NEXT: PageDown, VK_HOME: Home, VK_END: End, - VK_INSERT: Insert, VK_DELETE: Key.Delete, + VK_OEM_3: NumberRowExtra1, + int('0'): `0`, + int('1'): `1`, + int('2'): `2`, + int('3'): `3`, + int('4'): `4`, + int('5'): `5`, + int('6'): `6`, + int('7'): `7`, + int('8'): `8`, + int('9'): `9`, + VK_OEM_MINUS: NumberRowExtra2, + VK_OEM_PLUS: NumberRowExtra3, + int('A'): A, + int('B'): B, + int('C'): C, + int('D'): D, + int('E'): E, + int('F'): F, + int('G'): G, + int('H'): H, + int('I'): I, + int('J'): J, + int('K'): K, + int('L'): L, + int('M'): M, + int('N'): N, + int('O'): O, + int('P'): P, + int('Q'): Q, + int('R'): R, + int('S'): S, + int('T'): T, + int('U'): U, + int('V'): V, + int('W'): W, + int('X'): X, + int('Y'): Y, + int('Z'): Z, + VK_TAB: Tab, + VK_CAPITAL: CapsLock, + VK_LSHIFT: ShiftL, + VK_SHIFT: ShiftL, + VK_RSHIFT: ShiftR, + VK_LCONTROL: CtrlL, + VK_CONTROL: CtrlL, + VK_RCONTROL: CtrlR, + VK_LWIN: SuperL, + VK_RWIN: SuperR, + VK_LMENU: AltL, + VK_RMENU: AltR, + VK_SPACE: Space, + VK_RETURN: Enter, + VK_BACK: Backspace, + VK_OEM_4: LetterRow1Extra1, + VK_OEM_6: LetterRow1Extra2, + VK_OEM_5: LetterRow2Extra3, + VK_OEM_1: LetterRow2Extra1, + VK_OEM_7: LetterRow2Extra2, + VK_OEM_COMMA: LetterRow3Extra1, + VK_OEM_PERIOD: LetterRow3Extra2, + VK_OEM_2: LetterRow3Extra3, + VK_UP: Up, + VK_DOWN: Down, + VK_LEFT: Left, + VK_RIGHT: Right, + VK_PRIOR: PageUp, + VK_NEXT: PageDown, + VK_HOME: Home, + VK_END: End, + VK_INSERT: Insert, + VK_DELETE: Key.Delete, }.toTable -type - NativeWindow* = object - hinstance*: HINSTANCE - hwnd*: HWND - g_wpPrev: WINDOWPLACEMENT - +type NativeWindow* = object + hinstance*: HINSTANCE + hwnd*: HWND + g_wpPrev: WINDOWPLACEMENT # sorry, have to use module-global variable to capture windows events var currentEvents: seq[Event] @@ -50,12 +109,15 @@ template checkWin32Result*(call: untyped) = let value = call if value == 0: - raise newException(Exception, "Win32 error: " & astToStr(call) & " returned " & $value) + raise + newException(Exception, "Win32 error: " & astToStr(call) & " returned " & $value) let andCursorMask = [0xff] xorCursorMask = [0x00] - invisibleCursor = CreateCursor(0, 0, 0, 1, 1, pointer(addr andCursorMask), pointer(addr xorCursorMask)) + invisibleCursor = CreateCursor( + 0, 0, 0, 1, 1, pointer(addr andCursorMask), pointer(addr xorCursorMask) + ) defaultCursor = LoadCursor(0, IDC_ARROW) var currentCursor = defaultCursor @@ -70,16 +132,22 @@ else: key -proc windowHandler(hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.stdcall.} = +proc windowHandler( + hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.stdcall.} = case uMsg of WM_DESTROY: currentEvents.add(Event(eventType: events.EventType.Quit)) of WM_KEYDOWN, WM_SYSKEYDOWN: let key = mapLeftRightKeys(INT(wParam), lParam) - currentEvents.add(Event(eventType: KeyPressed, key: KeyTypeMap.getOrDefault(key, Key.UNKNOWN))) + currentEvents.add( + Event(eventType: KeyPressed, key: KeyTypeMap.getOrDefault(key, Key.UNKNOWN)) + ) of WM_KEYUP, WM_SYSKEYUP: let key = mapLeftRightKeys(INT(wParam), lParam) - currentEvents.add(Event(eventType: KeyReleased, key: KeyTypeMap.getOrDefault(key, Key.UNKNOWN))) + currentEvents.add( + Event(eventType: KeyReleased, key: KeyTypeMap.getOrDefault(key, Key.UNKNOWN)) + ) of WM_LBUTTONDOWN: currentEvents.add(Event(eventType: MousePressed, button: MouseButton.Mouse1)) of WM_LBUTTONUP: @@ -93,7 +161,12 @@ of WM_RBUTTONUP: currentEvents.add(Event(eventType: MouseReleased, button: MouseButton.Mouse3)) of WM_MOUSEWHEEL: - currentEvents.add(Event(eventType: MouseWheel, amount: float32(GET_WHEEL_DELTA_WPARAM(wParam)) / WHEEL_DELTA)) + currentEvents.add( + Event( + eventType: MouseWheel, + amount: float32(GET_WHEEL_DELTA_WPARAM(wParam)) / WHEEL_DELTA, + ) + ) of WM_SIZING: currentEvents.add(Event(eventType: ResizedWindow)) of WM_SIZE: @@ -114,7 +187,6 @@ else: return DefWindowProc(hwnd, uMsg, wParam, lParam) - proc createWindow*(title: string): NativeWindow = when not defined(release): AllocConsole() @@ -131,23 +203,26 @@ lpfnWndProc: windowHandler, hInstance: result.hInstance, lpszClassName: windowClassName, - hcursor: currentCursor, + hcursor: currentCursor, ) - if(RegisterClassEx(addr(windowClass)) == 0): + if (RegisterClassEx(addr(windowClass)) == 0): raise newException(Exception, "Unable to register window class") result.hwnd = CreateWindowEx( - DWORD(0), - windowClassName, - windowName, - DWORD(WS_OVERLAPPEDWINDOW), - CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, - HMENU(0), - HINSTANCE(0), - result.hInstance, - nil - ) + DWORD(0), + windowClassName, + windowName, + DWORD(WS_OVERLAPPEDWINDOW), + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + HMENU(0), + HINSTANCE(0), + result.hInstance, + nil, + ) result.g_wpPrev.length = UINT(sizeof(WINDOWPLACEMENT)) discard result.hwnd.ShowWindow(SW_SHOW) @@ -163,13 +238,32 @@ let dwStyle: DWORD = GetWindowLong(window.hwnd, GWL_STYLE) if enable: var mi = MONITORINFO(cbSize: DWORD(sizeof(MONITORINFO))) - if GetWindowPlacement(window.hwnd, addr window.g_wpPrev) and GetMonitorInfo(MonitorFromWindow(window.hwnd, MONITOR_DEFAULTTOPRIMARY), addr mi): + if GetWindowPlacement(window.hwnd, addr window.g_wpPrev) and + GetMonitorInfo( + MonitorFromWindow(window.hwnd, MONITOR_DEFAULTTOPRIMARY), addr mi + ): SetWindowLong(window.hwnd, GWL_STYLE, dwStyle and (not WS_OVERLAPPEDWINDOW)) - SetWindowPos(window.hwnd, HWND_TOP, mi.rcMonitor.left, mi.rcMonitor.top, mi.rcMonitor.right - mi.rcMonitor.left, mi.rcMonitor.bottom - mi.rcMonitor.top, SWP_NOOWNERZORDER or SWP_FRAMECHANGED) + SetWindowPos( + window.hwnd, + HWND_TOP, + mi.rcMonitor.left, + mi.rcMonitor.top, + mi.rcMonitor.right - mi.rcMonitor.left, + mi.rcMonitor.bottom - mi.rcMonitor.top, + SWP_NOOWNERZORDER or SWP_FRAMECHANGED, + ) else: SetWindowLong(window.hwnd, GWL_STYLE, dwStyle or WS_OVERLAPPEDWINDOW) SetWindowPlacement(window.hwnd, addr window.g_wpPrev) - SetWindowPos(window.hwnd, HWND(0), 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_NOOWNERZORDER or SWP_FRAMECHANGED) + SetWindowPos( + window.hwnd, + HWND(0), + 0, + 0, + 0, + 0, + SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_NOOWNERZORDER or SWP_FRAMECHANGED, + ) proc showSystemCursor*(window: NativeWindow, value: bool) = if value == true: @@ -215,4 +309,6 @@ hinstance: cast[HINSTANCE](window.hinstance), hwnd: cast[HWND](window.hwnd), ) - checkVkResult vkCreateWin32SurfaceKHR(instance, addr(surfaceCreateInfo), nil, addr(result)) + checkVkResult vkCreateWin32SurfaceKHR( + instance, addr(surfaceCreateInfo), nil, addr(result) + ) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/renderer.nim --- a/semicongine/rendering/renderer.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/renderer.nim Thu Aug 22 18:32:21 2024 +0700 @@ -2,19 +2,29 @@ cast[pointer](cast[T](p) + offset) func usage(bType: BufferType): seq[VkBufferUsageFlagBits] = - case bType: - of VertexBuffer: @[VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT] - of VertexBufferMapped: @[VK_BUFFER_USAGE_VERTEX_BUFFER_BIT] - of IndexBuffer: @[VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT] - of IndexBufferMapped: @[VK_BUFFER_USAGE_INDEX_BUFFER_BIT] - of UniformBuffer: @[VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT] - of UniformBufferMapped: @[VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT] + case bType + of VertexBuffer: + @[VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT] + of VertexBufferMapped: + @[VK_BUFFER_USAGE_VERTEX_BUFFER_BIT] + of IndexBuffer: + @[VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT] + of IndexBufferMapped: + @[VK_BUFFER_USAGE_INDEX_BUFFER_BIT] + of UniformBuffer: + @[VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_BUFFER_USAGE_TRANSFER_DST_BIT] + of UniformBufferMapped: + @[VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT] proc getVkFormat(grayscale: bool, usage: openArray[VkImageUsageFlagBits]): VkFormat = - let formats = if grayscale: [VK_FORMAT_R8_SRGB, VK_FORMAT_R8_UNORM] - else: [VK_FORMAT_B8G8R8A8_SRGB, VK_FORMAT_B8G8R8A8_UNORM] + let formats = + if grayscale: + [VK_FORMAT_R8_SRGB, VK_FORMAT_R8_UNORM] + else: + [VK_FORMAT_B8G8R8A8_SRGB, VK_FORMAT_B8G8R8A8_UNORM] - var formatProperties = VkImageFormatProperties2(sType: VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2) + var formatProperties = + VkImageFormatProperties2(sType: VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2) for format in formats: var formatInfo = VkPhysicalDeviceImageFormatInfo2( sType: VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, @@ -24,9 +34,7 @@ usage: usage.toBits, ) let formatCheck = vkGetPhysicalDeviceImageFormatProperties2( - vulkan.physicalDevice, - addr formatInfo, - addr formatProperties, + vulkan.physicalDevice, addr formatInfo, addr formatProperties ) if formatCheck == VK_SUCCESS: # found suitable format return format @@ -37,7 +45,6 @@ assert false, "Unable to find format for textures" - func alignedTo[T: SomeInteger](value: T, alignment: T): T = let remainder = value mod alignment if remainder == 0: @@ -47,20 +54,25 @@ template bufferType(gpuData: GPUData): untyped = typeof(gpuData).TBuffer + func needsMapping(bType: BufferType): bool = bType in [VertexBufferMapped, IndexBufferMapped, UniformBufferMapped] template needsMapping(gpuData: GPUData): untyped = gpuData.bufferType.needsMapping -template size(gpuArray: GPUArray, count=0'u64): uint64 = - (if count == 0: gpuArray.data.len.uint64 else: count).uint64 * sizeof(elementType(gpuArray.data)).uint64 +template size(gpuArray: GPUArray, count = 0'u64): uint64 = + (if count == 0: gpuArray.data.len.uint64 else: count).uint64 * + sizeof(elementType(gpuArray.data)).uint64 + template size(gpuValue: GPUValue): uint64 = sizeof(gpuValue.data).uint64 + func size(image: ImageObject): uint64 = image.data.len.uint64 * sizeof(elementType(image.data)).uint64 template rawPointer(gpuArray: GPUArray): pointer = addr(gpuArray.data[0]) + template rawPointer(gpuValue: GPUValue): pointer = addr(gpuValue.data) @@ -71,11 +83,10 @@ return VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT in flags proc initDescriptorSet*( - renderData: RenderData, - layout: VkDescriptorSetLayout, - descriptorSet: DescriptorSetData, + renderData: RenderData, + layout: VkDescriptorSetLayout, + descriptorSet: DescriptorSetData, ) = - # santization checks for theName, value in descriptorSet.data.fieldPairs: when typeof(value) is GPUValue: @@ -106,7 +117,9 @@ descriptorSetCount: uint32(layouts.len), pSetLayouts: layouts.ToCPointer, ) - checkVkResult vkAllocateDescriptorSets(vulkan.device, addr(allocInfo), descriptorSet.vk.ToCPointer) + checkVkResult vkAllocateDescriptorSets( + vulkan.device, addr(allocInfo), descriptorSet.vk.ToCPointer + ) # allocate seq with high cap to prevent realocation while adding to set # (which invalidates pointers that are passed to the vulkan api call) @@ -114,7 +127,10 @@ var imageWrites = newSeqOfCap[VkDescriptorImageInfo](1024) var bufferWrites = newSeqOfCap[VkDescriptorBufferInfo](1024) - forDescriptorFields(descriptorSet.data, fieldValue, descriptorType, descriptorCount, descriptorBindingNumber): + forDescriptorFields( + descriptorSet.data, fieldValue, descriptorType, descriptorCount, + descriptorBindingNumber, + ): for i in 0 ..< descriptorSet.vk.len: when typeof(fieldValue) is GPUValue: bufferWrites.add VkDescriptorBufferInfo( @@ -169,9 +185,7 @@ elif elementType(fieldValue) is GPUValue: for entry in fieldValue.litems: bufferWrites.add VkDescriptorBufferInfo( - buffer: entry.buffer.vk, - offset: entry.offset, - range: entry.size, + buffer: entry.buffer.vk, offset: entry.offset, range: entry.size ) descriptorSetWrites.add VkWriteDescriptorSet( sType: VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, @@ -184,9 +198,13 @@ pBufferInfo: addr(bufferWrites[^descriptorCount.int]), ) else: - {.error: "Unsupported descriptor type: " & typetraits.name(typeof(fieldValue)).} + {. + error: "Unsupported descriptor type: " & typetraits.name(typeof(fieldValue)) + .} else: - {.error: "Unsupported descriptor type: " & typetraits.name(typeof(fieldValue)).} + {. + error: "Unsupported descriptor type: " & typetraits.name(typeof(fieldValue)) + .} vkUpdateDescriptorSets( device = vulkan.device, @@ -198,10 +216,7 @@ proc allocateNewMemoryBlock(size: uint64, mType: uint32): MemoryBlock = result = MemoryBlock( - vk: svkAllocateMemory(size, mType), - size: size, - rawPointer: nil, - offsetNextFree: 0, + vk: svkAllocateMemory(size, mType), size: size, rawPointer: nil, offsetNextFree: 0 ) if mType.isMappable(): checkVkResult vkMapMemory( @@ -210,7 +225,7 @@ offset = 0'u64, size = result.size, flags = VkMemoryMapFlags(0), - ppData = addr(result.rawPointer) + ppData = addr(result.rawPointer), ) proc flushBuffer*(buffer: Buffer) = @@ -230,12 +245,19 @@ flushRegions.add VkMappedMemoryRange( sType: VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, memory: memoryBlock.vk, - size: alignedTo(memoryBlock.offsetNextFree, svkGetPhysicalDeviceProperties().limits.nonCoherentAtomSize), + size: alignedTo( + memoryBlock.offsetNextFree, + svkGetPhysicalDeviceProperties().limits.nonCoherentAtomSize, + ), ) if flushRegions.len > 0: - checkVkResult vkFlushMappedMemoryRanges(vulkan.device, flushRegions.len.uint32, flushRegions.ToCPointer()) + checkVkResult vkFlushMappedMemoryRanges( + vulkan.device, flushRegions.len.uint32, flushRegions.ToCPointer() + ) -proc allocateNewBuffer(renderData: var RenderData, size: uint64, bufferType: BufferType): Buffer = +proc allocateNewBuffer( + renderData: var RenderData, size: uint64, bufferType: BufferType +): Buffer = result = Buffer( vk: svkCreateBuffer(size, bufferType.usage), size: size, @@ -243,12 +265,17 @@ offsetNextFree: 0, ) let memoryRequirements = svkGetBufferMemoryRequirements(result.vk) - let memoryType = bestMemory(mappable = bufferType.needsMapping, filter = memoryRequirements.memoryTypes) + let memoryType = bestMemory( + mappable = bufferType.needsMapping, filter = memoryRequirements.memoryTypes + ) # check if there is an existing allocated memory block that is large enough to be used var selectedBlockI = -1 for i in 0 ..< renderData.memory[memoryType].len: - if renderData.memory[memoryType][i].size - alignedTo(renderData.memory[memoryType][i].offsetNextFree, memoryRequirements.alignment) >= memoryRequirements.size: + if renderData.memory[memoryType][i].size - + alignedTo( + renderData.memory[memoryType][i].offsetNextFree, memoryRequirements.alignment + ) >= memoryRequirements.size: selectedBlockI = i break # otherwise, allocate a new block of memory and use that @@ -256,35 +283,41 @@ selectedBlockI = renderData.memory[memoryType].len renderData.memory[memoryType].add allocateNewMemoryBlock( size = max(memoryRequirements.size, MEMORY_BLOCK_ALLOCATION_SIZE), - mType = memoryType + mType = memoryType, ) - template selectedBlock(): untyped = renderData.memory[memoryType][selectedBlockI] + template selectedBlock(): untyped = + renderData.memory[memoryType][selectedBlockI] + # let selectedBlock = - renderData.memory[memoryType][selectedBlockI].offsetNextFree = alignedTo( - selectedBlock.offsetNextFree, - memoryRequirements.alignment, - ) + renderData.memory[memoryType][selectedBlockI].offsetNextFree = + alignedTo(selectedBlock.offsetNextFree, memoryRequirements.alignment) checkVkResult vkBindBufferMemory( - vulkan.device, - result.vk, - selectedBlock.vk, - selectedBlock.offsetNextFree, + vulkan.device, result.vk, selectedBlock.vk, selectedBlock.offsetNextFree ) result.memory = selectedBlock.vk result.memoryOffset = selectedBlock.offsetNextFree - result.rawPointer = selectedBlock.rawPointer.pointerAddOffset(selectedBlock.offsetNextFree) + result.rawPointer = + selectedBlock.rawPointer.pointerAddOffset(selectedBlock.offsetNextFree) renderData.memory[memoryType][selectedBlockI].offsetNextFree += memoryRequirements.size -proc updateGPUBuffer*(gpuData: GPUData, count=0'u64, flush = false) = +proc updateGPUBuffer*(gpuData: GPUData, count = 0'u64, flush = false) = if gpuData.size() == 0: return when needsMapping(gpuData): when gpuData is GPUArray: - copyMem(pointerAddOffset(gpuData.buffer.rawPointer, gpuData.offset), gpuData.rawPointer, gpuData.size(count)) + copyMem( + pointerAddOffset(gpuData.buffer.rawPointer, gpuData.offset), + gpuData.rawPointer, + gpuData.size(count), + ) else: - copyMem(pointerAddOffset(gpuData.buffer.rawPointer, gpuData.offset), gpuData.rawPointer, gpuData.size()) + copyMem( + pointerAddOffset(gpuData.buffer.rawPointer, gpuData.offset), + gpuData.rawPointer, + gpuData.size(), + ) if flush: flushBuffer(gpuData.buffer) else: @@ -304,11 +337,8 @@ updateGPUBuffer(entry, flush = flush) proc allocateGPUData( - renderdata: var RenderData, - bufferType: BufferType, - size: uint64, + renderdata: var RenderData, bufferType: BufferType, size: uint64 ): (Buffer, uint64) = - # find buffer that has space var selectedBufferI = -1 @@ -321,16 +351,13 @@ if selectedBufferI < 0: selectedBufferI = renderdata.buffers[bufferType].len renderdata.buffers[bufferType].add renderdata.allocateNewBuffer( - size = max(size, BUFFER_ALLOCATION_SIZE), - bufferType = bufferType, + size = max(size, BUFFER_ALLOCATION_SIZE), bufferType = bufferType ) # assigne value let selectedBuffer = renderdata.buffers[bufferType][selectedBufferI] - renderdata.buffers[bufferType][selectedBufferI].offsetNextFree = alignedTo( - selectedBuffer.offsetNextFree, - BUFFER_ALIGNMENT - ) + renderdata.buffers[bufferType][selectedBufferI].offsetNextFree = + alignedTo(selectedBuffer.offsetNextFree, BUFFER_ALIGNMENT) result[0] = selectedBuffer result[1] = renderdata.buffers[bufferType][selectedBufferI].offsetNextFree @@ -338,13 +365,11 @@ proc assignBuffers*[T](renderdata: var RenderData, data: var T, uploadData = true) = for name, value in fieldPairs(data): - when typeof(value) is GPUData: - (value.buffer, value.offset) = allocateGPUData(renderdata, value.bufferType, value.size) - + (value.buffer, value.offset) = + allocateGPUData(renderdata, value.bufferType, value.size) elif typeof(value) is DescriptorSetData: assignBuffers(renderdata, value.data, uploadData = uploadData) - elif typeof(value) is array: when elementType(value) is GPUValue: for v in value.mitems: @@ -353,15 +378,22 @@ if uploadData: updateAllGPUBuffers(data, flush = true) -proc assignBuffers*(renderdata: var RenderData, descriptorSet: var DescriptorSetData, uploadData = true) = +proc assignBuffers*( + renderdata: var RenderData, descriptorSet: var DescriptorSetData, uploadData = true +) = assignBuffers(renderdata, descriptorSet.data, uploadData = uploadData) proc initRenderData*(descriptorPoolLimit = 1024'u32): RenderData = result = RenderData() # allocate descriptor pools var poolSizes = [ - VkDescriptorPoolSize(thetype: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, descriptorCount: descriptorPoolLimit), - VkDescriptorPoolSize(thetype: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, descriptorCount: descriptorPoolLimit), + VkDescriptorPoolSize( + thetype: VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, + descriptorCount: descriptorPoolLimit, + ), + VkDescriptorPoolSize( + thetype: VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, descriptorCount: descriptorPoolLimit + ), ] var poolInfo = VkDescriptorPoolCreateInfo( sType: VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, @@ -369,7 +401,9 @@ pPoolSizes: poolSizes.ToCPointer, maxSets: descriptorPoolLimit, ) - checkVkResult vkCreateDescriptorPool(vulkan.device, addr(poolInfo), nil, addr(result.descriptorPool)) + checkVkResult vkCreateDescriptorPool( + vulkan.device, addr(poolInfo), nil, addr(result.descriptorPool) + ) proc destroyRenderData*(renderData: RenderData) = vkDestroyDescriptorPool(vulkan.device, renderData.descriptorPool, nil) @@ -411,12 +445,14 @@ srcStage: VkPipelineStageFlagBits dstStage: VkPipelineStageFlagBits - if oldLayout == VK_IMAGE_LAYOUT_UNDEFINED and newLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + if oldLayout == VK_IMAGE_LAYOUT_UNDEFINED and + newLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: srcStage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT barrier.srcAccessMask = VkAccessFlags(0) dstStage = VK_PIPELINE_STAGE_TRANSFER_BIT barrier.dstAccessMask = [VK_ACCESS_TRANSFER_WRITE_BIT].toBits - elif oldLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL and newLayout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + elif oldLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL and + newLayout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: srcStage = VK_PIPELINE_STAGE_TRANSFER_BIT barrier.srcAccessMask = [VK_ACCESS_TRANSFER_WRITE_BIT].toBits dstStage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT @@ -439,12 +475,11 @@ ) proc createSampler( - magFilter = VK_FILTER_LINEAR, - minFilter = VK_FILTER_LINEAR, - addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT, - addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT, + magFilter = VK_FILTER_LINEAR, + minFilter = VK_FILTER_LINEAR, + addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT, + addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT, ): VkSampler = - let samplerInfo = VkSamplerCreateInfo( sType: VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, magFilter: magFilter, @@ -472,7 +507,9 @@ usage.add VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT let format = getVkFormat(grayscale = elementType(image.data) is Gray, usage = usage) - image.vk = svkCreate2DImage(image.width, image.height, format, usage, image.samples, image.nLayers) + image.vk = svkCreate2DImage( + image.width, image.height, format, usage, image.samples, image.nLayers + ) renderData.images.add image.vk image.sampler = createSampler( magFilter = image.magInterpolation, @@ -487,7 +524,10 @@ # check if there is an existing allocated memory block that is large enough to be used var selectedBlockI = -1 for i in 0 ..< renderData.memory[memoryType].len: - if renderData.memory[memoryType][i].size - alignedTo(renderData.memory[memoryType][i].offsetNextFree, memoryRequirements.alignment) >= memoryRequirements.size: + if renderData.memory[memoryType][i].size - + alignedTo( + renderData.memory[memoryType][i].offsetNextFree, memoryRequirements.alignment + ) >= memoryRequirements.size: selectedBlockI = i break # otherwise, allocate a new block of memory and use that @@ -495,13 +535,13 @@ selectedBlockI = renderData.memory[memoryType].len renderData.memory[memoryType].add allocateNewMemoryBlock( size = max(memoryRequirements.size, MEMORY_BLOCK_ALLOCATION_SIZE), - mType = memoryType + mType = memoryType, ) - template selectedBlock(): untyped = renderData.memory[memoryType][selectedBlockI] - renderData.memory[memoryType][selectedBlockI].offsetNextFree = alignedTo( - selectedBlock.offsetNextFree, - memoryRequirements.alignment, - ) + template selectedBlock(): untyped = + renderData.memory[memoryType][selectedBlockI] + + renderData.memory[memoryType][selectedBlockI].offsetNextFree = + alignedTo(selectedBlock.offsetNextFree, memoryRequirements.alignment) checkVkResult vkBindImageMemory( vulkan.device, @@ -512,20 +552,22 @@ renderData.memory[memoryType][selectedBlockI].offsetNextFree += memoryRequirements.size # imageview can only be created after memory is bound - image.imageview = svkCreate2DImageView(image.vk, format, nLayers=image.nLayers) + image.imageview = svkCreate2DImageView(image.vk, format, nLayers = image.nLayers) renderData.imageViews.add image.imageview # data transfer and layout transition - transitionImageLayout(image.vk, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL) + transitionImageLayout( + image.vk, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL + ) if image.data.len > 0: withStagingBuffer( - (image.vk, image.width, image.height), - memoryRequirements.size, - stagingPtr + (image.vk, image.width, image.height), memoryRequirements.size, stagingPtr ): copyMem(stagingPtr, image.data.ToCPointer, image.size) - transitionImageLayout(image.vk, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL) - + transitionImageLayout( + image.vk, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + ) proc uploadImages*(renderdata: var RenderData, descriptorSet: var DescriptorSetData) = for name, value in fieldPairs(descriptorSet.data): @@ -538,17 +580,29 @@ type EMPTY = object # only used for static assertions -proc assertCompatibleDescriptorSet(TDescriptorSet, TShader: typedesc, index: static DescriptorSetIndex) = +proc assertCompatibleDescriptorSet( + TDescriptorSet, TShader: typedesc, index: static DescriptorSetIndex +) = for _, fieldvalue in default(TShader).fieldPairs: when fieldvalue.hasCustomPragma(DescriptorSet): when fieldvalue.getCustomPragmaVal(DescriptorSet) == index: - assert TDescriptorSet is typeof(fieldvalue), "Incompatible descriptor set types for set number " & $index & " in shader " & name(TShader) - + assert TDescriptorSet is typeof(fieldvalue), + "Incompatible descriptor set types for set number " & $index & " in shader " & + name(TShader) -proc bindDescriptorSet*[TDescriptorSet, TShader](commandBuffer: VkCommandBuffer, descriptorSet: DescriptorSetData[TDescriptorSet], index: static DescriptorSetIndex, pipeline: Pipeline[TShader]) = - assert descriptorSet.vk[currentFiF()].Valid, "DescriptorSetData not initialized, maybe forgot to call initDescriptorSet" - static: assertCompatibleDescriptorSet(TDescriptorSet, TShader, index) - svkCmdBindDescriptorSet(commandBuffer, descriptorSet.vk[currentFiF()], index, pipeline.layout) +proc bindDescriptorSet*[TDescriptorSet, TShader]( + commandBuffer: VkCommandBuffer, + descriptorSet: DescriptorSetData[TDescriptorSet], + index: static DescriptorSetIndex, + pipeline: Pipeline[TShader], +) = + assert descriptorSet.vk[currentFiF()].Valid, + "DescriptorSetData not initialized, maybe forgot to call initDescriptorSet" + static: + assertCompatibleDescriptorSet(TDescriptorSet, TShader, index) + svkCmdBindDescriptorSet( + commandBuffer, descriptorSet.vk[currentFiF()], index, pipeline.layout + ) proc assertCanRenderMesh(TShader, TMesh, TInstance: typedesc) = for attrName, attrValue in default(TShader).fieldPairs: @@ -556,29 +610,41 @@ var foundAttr = false for meshAttrName, meshAttrValue in default(TMesh).fieldPairs: when attrName == meshAttrName: - assert typeof(meshAttrValue) is GPUArray, "Mesh attribute '" & attrName & "' must be a GPUArray" - assert typeof(attrValue) is elementType(meshAttrValue.data), "Type of shader attribute and mesh attribute '" & attrName & "' is not the same" + assert typeof(meshAttrValue) is GPUArray, + "Mesh attribute '" & attrName & "' must be a GPUArray" + assert typeof(attrValue) is elementType(meshAttrValue.data), + "Type of shader attribute and mesh attribute '" & attrName & + "' is not the same" foundAttr = true - assert foundAttr, "Attribute '" & attrName & "' is not provided in mesh type '" & name(TMesh) & "'" + assert foundAttr, + "Attribute '" & attrName & "' is not provided in mesh type '" & name(TMesh) & "'" if hasCustomPragma(attrValue, InstanceAttribute): var foundAttr = false for instAttrName, instAttrValue in default(TInstance).fieldPairs: when attrName == instAttrName: - assert typeof(instAttrValue) is GPUArray, "Instance attribute '" & attrName & "' must be a GPUArray" - assert foundAttr == false, "Attribute '" & attrName & "' is defined in Mesh and Instance, can only be one" - assert typeof(attrValue) is elementType(instAttrValue.data), "Type of shader attribute and mesh attribute '" & attrName & "' is not the same" + assert typeof(instAttrValue) is GPUArray, + "Instance attribute '" & attrName & "' must be a GPUArray" + assert foundAttr == false, + "Attribute '" & attrName & + "' is defined in Mesh and Instance, can only be one" + assert typeof(attrValue) is elementType(instAttrValue.data), + "Type of shader attribute and mesh attribute '" & attrName & + "' is not the same" foundAttr = true - assert foundAttr, "Attribute '" & attrName & "' is not provided in instance type '" & name(TInstance) & "'" + assert foundAttr, + "Attribute '" & attrName & "' is not provided in instance type '" & + name(TInstance) & "'" proc render*[TShader, TMesh, TInstance]( - commandBuffer: VkCommandBuffer, - pipeline: Pipeline[TShader], - mesh: TMesh, - instances: TInstance, - fixedVertexCount = -1, - fixedInstanceCount = -1, + commandBuffer: VkCommandBuffer, + pipeline: Pipeline[TShader], + mesh: TMesh, + instances: TInstance, + fixedVertexCount = -1, + fixedInstanceCount = -1, ) = - static: assertCanRenderMesh(TShader, TMesh, TInstance) + static: + assertCanRenderMesh(TShader, TMesh, TInstance) var vertexBuffers: seq[VkBuffer] var vertexBuffersOffsets: seq[uint64] @@ -605,7 +671,7 @@ firstBinding = 0'u32, bindingCount = uint32(vertexBuffers.len), pBuffers = vertexBuffers.ToCPointer(), - pOffsets = vertexBuffersOffsets.ToCPointer() + pOffsets = vertexBuffersOffsets.ToCPointer(), ) var indexBuffer: VkBuffer @@ -630,81 +696,83 @@ elementCount = meshValue.data.len.uint32 if indexType != VK_INDEX_TYPE_NONE_KHR: - vkCmdBindIndexBuffer( - commandBuffer, - indexBuffer, - indexBufferOffset, - indexType, - ) + vkCmdBindIndexBuffer(commandBuffer, indexBuffer, indexBufferOffset, indexType) vkCmdDrawIndexed( commandBuffer = commandBuffer, indexCount = elementCount, - instanceCount = if fixedInstanceCount == -1: instanceCount else: fixedInstanceCount.uint32, + instanceCount = + if fixedInstanceCount == -1: instanceCount else: fixedInstanceCount.uint32, firstIndex = 0, vertexOffset = 0, - firstInstance = 0 + firstInstance = 0, ) else: vkCmdDraw( commandBuffer = commandBuffer, vertexCount = if fixedVertexCount < 0: elementCount else: fixedVertexCount.uint32, - instanceCount = if fixedInstanceCount == -1: instanceCount else: fixedInstanceCount.uint32, + instanceCount = + if fixedInstanceCount == -1: instanceCount else: fixedInstanceCount.uint32, firstVertex = 0, - firstInstance = 0 + firstInstance = 0, ) proc render*[TShader, TMesh]( - commandBuffer: VkCommandBuffer, - pipeline: Pipeline[TShader], - mesh: TMesh, - fixedVertexCount = -1, + commandBuffer: VkCommandBuffer, + pipeline: Pipeline[TShader], + mesh: TMesh, + fixedVertexCount = -1, ) = render(commandBuffer, pipeline, mesh, EMPTY(), fixedVertexCount) proc assertValidPushConstantType(TShader, TPushConstant: typedesc) = - assert sizeof(TPushConstant) <= PUSH_CONSTANT_SIZE, "Push constant values must be <= 128 bytes" + assert sizeof(TPushConstant) <= PUSH_CONSTANT_SIZE, + "Push constant values must be <= 128 bytes" var foundPushConstant = false for fieldname, fieldvalue in default(TShader).fieldPairs(): when hasCustomPragma(fieldvalue, PushConstant): - assert typeof(fieldvalue) is TPushConstant, "Provided push constant has not same type as declared in shader" + assert typeof(fieldvalue) is TPushConstant, + "Provided push constant has not same type as declared in shader" assert foundPushConstant == false, "More than on push constant found in shader" foundPushConstant = true assert foundPushConstant == true, "No push constant found in shader" proc renderWithPushConstant*[TShader, TMesh, TInstance, TPushConstant]( - commandBuffer: VkCommandBuffer, - pipeline: Pipeline[TShader], - mesh: TMesh, - instances: TInstance, - pushConstant: TPushConstant, - fixedVertexCount = -1, + commandBuffer: VkCommandBuffer, + pipeline: Pipeline[TShader], + mesh: TMesh, + instances: TInstance, + pushConstant: TPushConstant, + fixedVertexCount = -1, ) = - static: assertValidPushConstantType(TShader, TPushConstant) + static: + assertValidPushConstantType(TShader, TPushConstant) vkCmdPushConstants( commandBuffer = commandBuffer, layout = pipeline.layout, stageFlags = VkShaderStageFlags(VK_SHADER_STAGE_ALL_GRAPHICS), offset = 0, size = sizeof(pushConstant).uint32, - pValues = addr(pushConstant) - ); + pValues = addr(pushConstant), + ) render(commandBuffer, pipeline, mesh, instances, fixedVertexCount) + proc renderWithPushConstant*[TShader, TMesh, TPushConstant]( - commandBuffer: VkCommandBuffer, - pipeline: Pipeline[TShader], - mesh: TMesh, - pushConstant: TPushConstant, - fixedVertexCount = -1, + commandBuffer: VkCommandBuffer, + pipeline: Pipeline[TShader], + mesh: TMesh, + pushConstant: TPushConstant, + fixedVertexCount = -1, ) = - static: assertValidPushConstantType(TShader, TPushConstant) + static: + assertValidPushConstantType(TShader, TPushConstant) vkCmdPushConstants( commandBuffer = commandBuffer, layout = pipeline.layout, stageFlags = VkShaderStageFlags(VK_SHADER_STAGE_ALL_GRAPHICS), offset = 0, size = sizeof(pushConstant).uint32, - pValues = addr(pushConstant) - ); + pValues = addr(pushConstant), + ) render(commandBuffer, pipeline, mesh, EMPTY(), fixedVertexCount) proc asGPUArray*[T](data: sink openArray[T], bufferType: static BufferType): auto = diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/renderpasses.nim --- a/semicongine/rendering/renderpasses.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/renderpasses.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,17 +1,26 @@ -proc createDirectPresentationRenderPass*(depthBuffer: bool, samples = VK_SAMPLE_COUNT_1_BIT): RenderPass = +proc createDirectPresentationRenderPass*( + depthBuffer: bool, samples = VK_SAMPLE_COUNT_1_BIT +): RenderPass = assert vulkan.instance.Valid, "Vulkan not initialized" result = RenderPass(depthBuffer: depthBuffer, samples: samples) - var attachments = @[VkAttachmentDescription( - format: SURFACE_FORMAT, - samples: samples, - loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, - storeOp: VK_ATTACHMENT_STORE_OP_STORE, - stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, - stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, - initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, - finalLayout: if samples == VK_SAMPLE_COUNT_1_BIT: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR else: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, - )] + var attachments = + @[ + VkAttachmentDescription( + format: SURFACE_FORMAT, + samples: samples, + loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, + storeOp: VK_ATTACHMENT_STORE_OP_STORE, + stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, + stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, + initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, + finalLayout: + if samples == VK_SAMPLE_COUNT_1_BIT: + VK_IMAGE_LAYOUT_PRESENT_SRC_KHR + else: + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + ) + ] if depthBuffer: attachments.add VkAttachmentDescription( format: DEPTH_FORMAT, @@ -35,56 +44,84 @@ finalLayout: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, ) var - dependencies = @[ - VkSubpassDependency( - srcSubpass: VK_SUBPASS_EXTERNAL, - dstSubpass: 0, - srcStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT], - dstStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT], - srcAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT], - dstAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT], - ) - ] + dependencies = + @[ + VkSubpassDependency( + srcSubpass: VK_SUBPASS_EXTERNAL, + dstSubpass: 0, + srcStageMask: toBits [ + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, + ], + dstStageMask: toBits [ + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, + ], + srcAccessMask: toBits [ + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + ], + dstAccessMask: toBits [ + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + ], + ) + ] colorAttachment = VkAttachmentReference( - attachment: 0, - layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + attachment: 0, layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL ) depthAttachment = VkAttachmentReference( - attachment: 1, - layout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, + attachment: 1, layout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL ) resolveAttachment = VkAttachmentReference( - attachment: (attachments.len - 1).uint32, # depending on whether depthBuffer is used or not + attachment: (attachments.len - 1).uint32, + # depending on whether depthBuffer is used or not layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, ) result.vk = svkCreateRenderPass( attachments = attachments, colorAttachments = [colorAttachment], - depthAttachments = if depthBuffer: @[depthAttachment] else: @[], - resolveAttachments = if samples > VK_SAMPLE_COUNT_1_BIT: @[resolveAttachment] else: @[], + depthAttachments = + if depthBuffer: + @[depthAttachment] + else: + @[], + resolveAttachments = + if samples > VK_SAMPLE_COUNT_1_BIT: + @[resolveAttachment] + else: + @[], dependencies = dependencies, ) -proc createIndirectPresentationRenderPass*(depthBuffer: bool, samples = VK_SAMPLE_COUNT_1_BIT): (RenderPass, RenderPass) = +proc createIndirectPresentationRenderPass*( + depthBuffer: bool, samples = VK_SAMPLE_COUNT_1_BIT +): (RenderPass, RenderPass) = assert vulkan.instance.Valid, "Vulkan not initialized" result[0] = RenderPass(depthBuffer: depthBuffer, samples: samples) result[1] = RenderPass(depthBuffer: false, samples: VK_SAMPLE_COUNT_1_BIT) # first renderpass, drawing - var - attachments = @[VkAttachmentDescription( - format: SURFACE_FORMAT, # not strictly necessary - samples: samples, - loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, - storeOp: VK_ATTACHMENT_STORE_OP_STORE, - stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, - stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, - initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, - # finalLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, - finalLayout: if samples == VK_SAMPLE_COUNT_1_BIT: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL else: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, - )] + var attachments = + @[ + VkAttachmentDescription( + format: SURFACE_FORMAT, # not strictly necessary + samples: samples, + loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, + storeOp: VK_ATTACHMENT_STORE_OP_STORE, + stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, + stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, + initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, + # finalLayout: VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, + finalLayout: + if samples == VK_SAMPLE_COUNT_1_BIT: + VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL + else: + VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + ) + ] if depthBuffer: attachments.add VkAttachmentDescription( format: DEPTH_FORMAT, @@ -109,75 +146,100 @@ ) var - dependencies = @[ - VkSubpassDependency( - srcSubpass: VK_SUBPASS_EXTERNAL, - dstSubpass: 0, - srcStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT], - dstStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT], - srcAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT], - dstAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT], - ), - VkSubpassDependency( - srcSubpass: VK_SUBPASS_EXTERNAL, - dstSubpass: 0, - srcStageMask: toBits [VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT], - dstStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], - srcAccessMask: toBits [VK_ACCESS_SHADER_READ_BIT], - dstAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT], - ), - VkSubpassDependency( - srcSubpass: 0, - dstSubpass: VK_SUBPASS_EXTERNAL, - srcStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], - dstStageMask: toBits [VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT], - srcAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT], - dstAccessMask: toBits [VK_ACCESS_SHADER_READ_BIT], - ), - ] + dependencies = + @[ + VkSubpassDependency( + srcSubpass: VK_SUBPASS_EXTERNAL, + dstSubpass: 0, + srcStageMask: toBits [ + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, + ], + dstStageMask: toBits [ + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, + VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, + ], + srcAccessMask: toBits [ + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + ], + dstAccessMask: toBits [ + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, + ], + ), + VkSubpassDependency( + srcSubpass: VK_SUBPASS_EXTERNAL, + dstSubpass: 0, + srcStageMask: toBits [VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT], + dstStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], + srcAccessMask: toBits [VK_ACCESS_SHADER_READ_BIT], + dstAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT], + ), + VkSubpassDependency( + srcSubpass: 0, + dstSubpass: VK_SUBPASS_EXTERNAL, + srcStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], + dstStageMask: toBits [VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT], + srcAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT], + dstAccessMask: toBits [VK_ACCESS_SHADER_READ_BIT], + ), + ] colorAttachment = VkAttachmentReference( - attachment: 0, - layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + attachment: 0, layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL ) depthAttachment = VkAttachmentReference( - attachment: 1, - layout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, + attachment: 1, layout: VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL ) resolveAttachment = VkAttachmentReference( - attachment: (attachments.len - 1).uint32, # depending on whether depthBuffer is used or not + attachment: (attachments.len - 1).uint32, + # depending on whether depthBuffer is used or not layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, ) result[0].vk = svkCreateRenderPass( attachments = attachments, colorAttachments = [colorAttachment], - depthAttachments = if depthBuffer: @[depthAttachment] else: @[], - resolveAttachments = if samples > VK_SAMPLE_COUNT_1_BIT: @[resolveAttachment] else: @[], - dependencies = dependencies + depthAttachments = + if depthBuffer: + @[depthAttachment] + else: + @[], + resolveAttachments = + if samples > VK_SAMPLE_COUNT_1_BIT: + @[resolveAttachment] + else: + @[], + dependencies = dependencies, ) # second renderpass, presentation var - presentAttachments = @[VkAttachmentDescription( - format: SURFACE_FORMAT, - samples: VK_SAMPLE_COUNT_1_BIT, - loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, - storeOp: VK_ATTACHMENT_STORE_OP_STORE, - stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, - stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, - initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, - finalLayout: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, - )] - presentDependencies = @[VkSubpassDependency( - srcSubpass: VK_SUBPASS_EXTERNAL, - dstSubpass: 0, - srcStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], - dstStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], - srcAccessMask: VkAccessFlags(0), - dstAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT], - )] + presentAttachments = + @[ + VkAttachmentDescription( + format: SURFACE_FORMAT, + samples: VK_SAMPLE_COUNT_1_BIT, + loadOp: VK_ATTACHMENT_LOAD_OP_CLEAR, + storeOp: VK_ATTACHMENT_STORE_OP_STORE, + stencilLoadOp: VK_ATTACHMENT_LOAD_OP_DONT_CARE, + stencilStoreOp: VK_ATTACHMENT_STORE_OP_DONT_CARE, + initialLayout: VK_IMAGE_LAYOUT_UNDEFINED, + finalLayout: VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, + ) + ] + presentDependencies = + @[ + VkSubpassDependency( + srcSubpass: VK_SUBPASS_EXTERNAL, + dstSubpass: 0, + srcStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], + dstStageMask: toBits [VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT], + srcAccessMask: VkAccessFlags(0), + dstAccessMask: toBits [VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT], + ) + ] presentColorAttachment = VkAttachmentReference( - attachment: 0, - layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, + attachment: 0, layout: VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL ) result[1].vk = svkCreateRenderPass( @@ -185,22 +247,22 @@ colorAttachments = [presentColorAttachment], depthAttachments = [], resolveAttachments = [], - dependencies = presentDependencies + dependencies = presentDependencies, ) template withRenderPass*( - theRenderPass: RenderPass, - theFramebuffer: VkFramebuffer, - commandbuffer: VkCommandBuffer, - renderWidth: uint32, - renderHeight: uint32, - clearColor: Vec4f, - body: untyped + theRenderPass: RenderPass, + theFramebuffer: VkFramebuffer, + commandbuffer: VkCommandBuffer, + renderWidth: uint32, + renderHeight: uint32, + clearColor: Vec4f, + body: untyped, ): untyped = var clearColors = [ VkClearValue(color: VkClearColorValue(float32: clearColor)), - VkClearValue(depthStencil: VkClearDepthStencilValue(depth: 1'f32, stencil: 0)) + VkClearValue(depthStencil: VkClearDepthStencilValue(depth: 1'f32, stencil: 0)), ] renderPassInfo = VkRenderPassBeginInfo( sType: VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, @@ -223,7 +285,7 @@ ) scissor = VkRect2D( offset: VkOffset2D(x: 0, y: 0), - extent: VkExtent2D(width: renderWidth, height: renderHeight) + extent: VkExtent2D(width: renderWidth, height: renderHeight), ) vkCmdBeginRenderPass(commandbuffer, addr(renderPassInfo), VK_SUBPASS_CONTENTS_INLINE) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/shaders.nim --- a/semicongine/rendering/shaders.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/shaders.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,103 +1,188 @@ -func glslType[T: SupportedGPUType|ImageObject](value: T): string = - when T is float32: "float" - elif T is float64: "double" - elif T is int8 or T is int16 or T is int32 or T is int64: "int" - elif T is uint8 or T is uint16 or T is uint32 or T is uint64: "uint" - elif T is TVec2[int32]: "ivec2" - elif T is TVec2[int64]: "ivec2" - elif T is TVec3[int32]: "ivec3" - elif T is TVec3[int64]: "ivec3" - elif T is TVec4[int32]: "ivec4" - elif T is TVec4[int64]: "ivec4" - elif T is TVec2[uint32]: "uvec2" - elif T is TVec2[uint64]: "uvec2" - elif T is TVec3[uint32]: "uvec3" - elif T is TVec3[uint64]: "uvec3" - elif T is TVec4[uint32]: "uvec4" - elif T is TVec4[uint64]: "uvec4" - elif T is TVec2[float32]: "vec2" - elif T is TVec2[float64]: "dvec2" - elif T is TVec3[float32]: "vec3" - elif T is TVec3[float64]: "dvec3" - elif T is TVec4[float32]: "vec4" - elif T is TVec4[float64]: "dvec4" - elif T is TMat2[float32]: "mat2" - elif T is TMat2[float64]: "dmat2" - elif T is TMat23[float32]: "mat23" - elif T is TMat23[float64]: "dmat23" - elif T is TMat32[float32]: "mat32" - elif T is TMat32[float64]: "dmat32" - elif T is TMat3[float32]: "mat3" - elif T is TMat3[float64]: "dmat3" - elif T is TMat34[float32]: "mat34" - elif T is TMat34[float64]: "dmat34" - elif T is TMat43[float32]: "mat43" - elif T is TMat43[float64]: "dmat43" - elif T is TMat4[float32]: "mat4" - elif T is TMat4[float64]: "dmat4" - elif T is Image: "sampler2D" - elif T is ImageArray: "sampler2DArray" +func glslType[T: SupportedGPUType | ImageObject](value: T): string = + when T is float32: + "float" + elif T is float64: + "double" + elif T is int8 or T is int16 or T is int32 or T is int64: + "int" + elif T is uint8 or T is uint16 or T is uint32 or T is uint64: + "uint" + elif T is TVec2[int32]: + "ivec2" + elif T is TVec2[int64]: + "ivec2" + elif T is TVec3[int32]: + "ivec3" + elif T is TVec3[int64]: + "ivec3" + elif T is TVec4[int32]: + "ivec4" + elif T is TVec4[int64]: + "ivec4" + elif T is TVec2[uint32]: + "uvec2" + elif T is TVec2[uint64]: + "uvec2" + elif T is TVec3[uint32]: + "uvec3" + elif T is TVec3[uint64]: + "uvec3" + elif T is TVec4[uint32]: + "uvec4" + elif T is TVec4[uint64]: + "uvec4" + elif T is TVec2[float32]: + "vec2" + elif T is TVec2[float64]: + "dvec2" + elif T is TVec3[float32]: + "vec3" + elif T is TVec3[float64]: + "dvec3" + elif T is TVec4[float32]: + "vec4" + elif T is TVec4[float64]: + "dvec4" + elif T is TMat2[float32]: + "mat2" + elif T is TMat2[float64]: + "dmat2" + elif T is TMat23[float32]: + "mat23" + elif T is TMat23[float64]: + "dmat23" + elif T is TMat32[float32]: + "mat32" + elif T is TMat32[float64]: + "dmat32" + elif T is TMat3[float32]: + "mat3" + elif T is TMat3[float64]: + "dmat3" + elif T is TMat34[float32]: + "mat34" + elif T is TMat34[float64]: + "dmat34" + elif T is TMat43[float32]: + "mat43" + elif T is TMat43[float64]: + "dmat43" + elif T is TMat4[float32]: + "mat4" + elif T is TMat4[float64]: + "dmat4" + elif T is Image: + "sampler2D" + elif T is ImageArray: + "sampler2DArray" else: const n = typetraits.name(T) {.error: "Unsupported data type on GPU: " & n.} func vkType[T: SupportedGPUType](value: T): VkFormat = - when T is float32: VK_FORMAT_R32_SFLOAT - elif T is float64: VK_FORMAT_R64_SFLOAT - elif T is int8: VK_FORMAT_R8_SINT - elif T is int16: VK_FORMAT_R16_SINT - elif T is int32: VK_FORMAT_R32_SINT - elif T is int64: VK_FORMAT_R64_SINT - elif T is uint8: VK_FORMAT_R8_UINT - elif T is uint16: VK_FORMAT_R16_UINT - elif T is uint32: VK_FORMAT_R32_UINT - elif T is uint64: VK_FORMAT_R64_UINT - elif T is TVec2[int32]: VK_FORMAT_R32G32_SINT - elif T is TVec2[int64]: VK_FORMAT_R64G64_SINT - elif T is TVec3[int32]: VK_FORMAT_R32G32B32_SINT - elif T is TVec3[int64]: VK_FORMAT_R64G64B64_SINT - elif T is TVec4[int32]: VK_FORMAT_R32G32B32A32_SINT - elif T is TVec4[int64]: VK_FORMAT_R64G64B64A64_SINT - elif T is TVec2[uint32]: VK_FORMAT_R32G32_UINT - elif T is TVec2[uint64]: VK_FORMAT_R64G64_UINT - elif T is TVec3[uint32]: VK_FORMAT_R32G32B32_UINT - elif T is TVec3[uint64]: VK_FORMAT_R64G64B64_UINT - elif T is TVec4[uint32]: VK_FORMAT_R32G32B32A32_UINT - elif T is TVec4[uint64]: VK_FORMAT_R64G64B64A64_UINT - elif T is TVec2[float32]: VK_FORMAT_R32G32_SFLOAT - elif T is TVec2[float64]: VK_FORMAT_R64G64_SFLOAT - elif T is TVec3[float32]: VK_FORMAT_R32G32B32_SFLOAT - elif T is TVec3[float64]: VK_FORMAT_R64G64B64_SFLOAT - elif T is TVec4[float32]: VK_FORMAT_R32G32B32A32_SFLOAT - elif T is TVec4[float64]: VK_FORMAT_R64G64B64A64_SFLOAT - elif T is TMat2[float32]: VK_FORMAT_R32G32_SFLOAT - elif T is TMat2[float64]: VK_FORMAT_R64G64_SFLOAT - elif T is TMat23[float32]: VK_FORMAT_R32G32B32_SFLOAT - elif T is TMat23[float64]: VK_FORMAT_R64G64B64_SFLOAT - elif T is TMat32[float32]: VK_FORMAT_R32G32_SFLOAT - elif T is TMat32[float64]: VK_FORMAT_R64G64_SFLOAT - elif T is TMat3[float32]: VK_FORMAT_R32G32B32_SFLOAT - elif T is TMat3[float64]: VK_FORMAT_R64G64B64_SFLOAT - elif T is TMat34[float32]: VK_FORMAT_R32G32B32A32_SFLOAT - elif T is TMat34[float64]: VK_FORMAT_R64G64B64A64_SFLOAT - elif T is TMat43[float32]: VK_FORMAT_R32G32B32_SFLOAT - elif T is TMat43[float64]: VK_FORMAT_R64G64B64_SFLOAT - elif T is TMat4[float32]: VK_FORMAT_R32G32B32A32_SFLOAT - elif T is TMat4[float64]: VK_FORMAT_R64G64B64A64_SFLOAT - else: {.error: "Unsupported data type on GPU".} + when T is float32: + VK_FORMAT_R32_SFLOAT + elif T is float64: + VK_FORMAT_R64_SFLOAT + elif T is int8: + VK_FORMAT_R8_SINT + elif T is int16: + VK_FORMAT_R16_SINT + elif T is int32: + VK_FORMAT_R32_SINT + elif T is int64: + VK_FORMAT_R64_SINT + elif T is uint8: + VK_FORMAT_R8_UINT + elif T is uint16: + VK_FORMAT_R16_UINT + elif T is uint32: + VK_FORMAT_R32_UINT + elif T is uint64: + VK_FORMAT_R64_UINT + elif T is TVec2[int32]: + VK_FORMAT_R32G32_SINT + elif T is TVec2[int64]: + VK_FORMAT_R64G64_SINT + elif T is TVec3[int32]: + VK_FORMAT_R32G32B32_SINT + elif T is TVec3[int64]: + VK_FORMAT_R64G64B64_SINT + elif T is TVec4[int32]: + VK_FORMAT_R32G32B32A32_SINT + elif T is TVec4[int64]: + VK_FORMAT_R64G64B64A64_SINT + elif T is TVec2[uint32]: + VK_FORMAT_R32G32_UINT + elif T is TVec2[uint64]: + VK_FORMAT_R64G64_UINT + elif T is TVec3[uint32]: + VK_FORMAT_R32G32B32_UINT + elif T is TVec3[uint64]: + VK_FORMAT_R64G64B64_UINT + elif T is TVec4[uint32]: + VK_FORMAT_R32G32B32A32_UINT + elif T is TVec4[uint64]: + VK_FORMAT_R64G64B64A64_UINT + elif T is TVec2[float32]: + VK_FORMAT_R32G32_SFLOAT + elif T is TVec2[float64]: + VK_FORMAT_R64G64_SFLOAT + elif T is TVec3[float32]: + VK_FORMAT_R32G32B32_SFLOAT + elif T is TVec3[float64]: + VK_FORMAT_R64G64B64_SFLOAT + elif T is TVec4[float32]: + VK_FORMAT_R32G32B32A32_SFLOAT + elif T is TVec4[float64]: + VK_FORMAT_R64G64B64A64_SFLOAT + elif T is TMat2[float32]: + VK_FORMAT_R32G32_SFLOAT + elif T is TMat2[float64]: + VK_FORMAT_R64G64_SFLOAT + elif T is TMat23[float32]: + VK_FORMAT_R32G32B32_SFLOAT + elif T is TMat23[float64]: + VK_FORMAT_R64G64B64_SFLOAT + elif T is TMat32[float32]: + VK_FORMAT_R32G32_SFLOAT + elif T is TMat32[float64]: + VK_FORMAT_R64G64_SFLOAT + elif T is TMat3[float32]: + VK_FORMAT_R32G32B32_SFLOAT + elif T is TMat3[float64]: + VK_FORMAT_R64G64B64_SFLOAT + elif T is TMat34[float32]: + VK_FORMAT_R32G32B32A32_SFLOAT + elif T is TMat34[float64]: + VK_FORMAT_R64G64B64A64_SFLOAT + elif T is TMat43[float32]: + VK_FORMAT_R32G32B32_SFLOAT + elif T is TMat43[float64]: + VK_FORMAT_R64G64B64_SFLOAT + elif T is TMat4[float32]: + VK_FORMAT_R32G32B32A32_SFLOAT + elif T is TMat4[float64]: + VK_FORMAT_R64G64B64A64_SFLOAT + else: + {.error: "Unsupported data type on GPU".} - -func numberOfVertexInputAttributeDescriptors[T: SupportedGPUType|ImageObject](value: T): uint32 = - when T is TMat2[float32] or T is TMat2[float64] or T is TMat23[float32] or T is TMat23[float64]: +func numberOfVertexInputAttributeDescriptors[T: SupportedGPUType | ImageObject]( + value: T +): uint32 = + when T is TMat2[float32] or T is TMat2[float64] or T is TMat23[float32] or + T is TMat23[float64]: 2 - elif T is TMat32[float32] or T is TMat32[float64] or T is TMat3[float32] or T is TMat3[float64] or T is TMat34[float32] or T is TMat34[float64]: + elif T is TMat32[float32] or T is TMat32[float64] or T is TMat3[float32] or + T is TMat3[float64] or T is TMat34[float32] or T is TMat34[float64]: 3 - elif T is TMat43[float32] or T is TMat43[float64] or T is TMat4[float32] or T is TMat4[float64]: + elif T is TMat43[float32] or T is TMat43[float64] or T is TMat4[float32] or + T is TMat4[float64]: 4 else: 1 -func nLocationSlots[T: SupportedGPUType|ImageObject](value: T): uint32 = +func nLocationSlots[T: SupportedGPUType | ImageObject](value: T): uint32 = #[ single location: - any scalar @@ -110,17 +195,11 @@ two locations 64-bit three- and four-component vectors ]# - when T is TVec3[int64] or - T is TVec4[int64] or - T is TVec3[uint64] or - T is TVec4[uint64] or - T is TVec3[float64] or - T is TVec4[float64] or - T is TMat23[float64] or - T is TMat3[float64] or - T is TMat34[float64] or - T is TMat43[float64] or - T is TMat4[float64]: + when T is TVec3[int64] or T is TVec4[int64] or T is TVec3[uint64] or T is TVec4[ + uint64 + ] or T is TVec3[float64] or T is TVec4[float64] or T is TMat23[float64] or + T is TMat3[float64] or T is TMat34[float64] or T is TMat43[float64] or + T is TMat4[float64]: return 2 else: return 1 @@ -141,71 +220,83 @@ var sawDescriptorSets: array[MAX_DESCRIPTORSETS, bool] for fieldname, value in fieldPairs(shader): # vertex shader inputs - when hasCustomPragma(value, VertexAttribute) or hasCustomPragma(value, InstanceAttribute): + when hasCustomPragma(value, VertexAttribute) or + hasCustomPragma(value, InstanceAttribute): assert typeof(value) is SupportedGPUType - vsInput.add "layout(location = " & $vsInputLocation & ") in " & glslType(value) & " " & fieldname & ";" + vsInput.add "layout(location = " & $vsInputLocation & ") in " & glslType(value) & + " " & fieldname & ";" for j in 0 ..< numberOfVertexInputAttributeDescriptors(value): vsInputLocation += nLocationSlots(value) # intermediate values, passed between shaders elif hasCustomPragma(value, Pass) or hasCustomPragma(value, PassFlat): let flat = if hasCustomPragma(value, PassFlat): "flat " else: "" - vsOutput.add "layout(location = " & $passLocation & ") " & flat & "out " & glslType(value) & " " & fieldname & ";" - fsInput.add "layout(location = " & $passLocation & ") " & flat & "in " & glslType(value) & " " & fieldname & ";" + vsOutput.add "layout(location = " & $passLocation & ") " & flat & "out " & + glslType(value) & " " & fieldname & ";" + fsInput.add "layout(location = " & $passLocation & ") " & flat & "in " & + glslType(value) & " " & fieldname & ";" passLocation.inc # fragment shader output elif hasCustomPragma(value, ShaderOutput): - fsOutput.add &"layout(location = " & $fsOutputLocation & ") out " & glslType(value) & " " & fieldname & ";" + fsOutput.add &"layout(location = " & $fsOutputLocation & ") out " & glslType( + value + ) & " " & fieldname & ";" fsOutputLocation.inc # descriptor sets # need to consider 4 cases: uniform block, texture, uniform block array, texture array elif hasCustomPragma(value, DescriptorSet): let setIndex = value.getCustomPragmaVal(DescriptorSet) - assert not sawDescriptorSets[setIndex], "Only one DescriptorSet per index is allowed per shader" - assert typeof(value) is object, "Descriptor field '" & fieldname & "' must be of type object" - assert setIndex < MAX_DESCRIPTORSETS, typetraits.name(TShader) & ": maximum " & $MAX_DESCRIPTORSETS & " descriptor sets allowed" + assert not sawDescriptorSets[setIndex], + "Only one DescriptorSet per index is allowed per shader" + assert typeof(value) is object, + "Descriptor field '" & fieldname & "' must be of type object" + assert setIndex < MAX_DESCRIPTORSETS, + typetraits.name(TShader) & ": maximum " & $MAX_DESCRIPTORSETS & + " descriptor sets allowed" sawDescriptorSets[setIndex] = true var descriptorBinding = 0 for descriptorName, descriptorValue in fieldPairs(value): when typeof(descriptorValue) is ImageObject: - samplers.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & ") uniform " & glslType(descriptorValue) & " " & descriptorName & ";" + samplers.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & + ") uniform " & glslType(descriptorValue) & " " & descriptorName & ";" descriptorBinding.inc - elif typeof(descriptorValue) is GPUValue: - - uniforms.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & ") uniform T" & descriptorName & " {" + uniforms.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & + ") uniform T" & descriptorName & " {" when typeof(descriptorValue.data) is object: - for blockFieldName, blockFieldValue in descriptorValue.data.fieldPairs(): - assert typeof(blockFieldValue) is SupportedGPUType, "uniform block field '" & blockFieldName & "' is not a SupportedGPUType" + assert typeof(blockFieldValue) is SupportedGPUType, + "uniform block field '" & blockFieldName & "' is not a SupportedGPUType" uniforms.add " " & glslType(blockFieldValue) & " " & blockFieldName & ";" uniforms.add "} " & descriptorName & ";" - else: - {.error: "Unsupported shader descriptor field " & descriptorName & " (must be object)".} + {. + error: + "Unsupported shader descriptor field " & descriptorName & + " (must be object)" + .} descriptorBinding.inc - elif typeof(descriptorValue) is array: - when elementType(descriptorValue) is ImageObject: - let arrayDecl = "[" & $typeof(descriptorValue).len & "]" - samplers.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & ") uniform " & glslType(default(elementType(descriptorValue))) & " " & descriptorName & "" & arrayDecl & ";" + samplers.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & + ") uniform " & glslType(default(elementType(descriptorValue))) & " " & + descriptorName & "" & arrayDecl & ";" descriptorBinding.inc - elif elementType(descriptorValue) is GPUValue: + uniforms.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & + ") uniform T" & descriptorName & " {" - uniforms.add "layout(set=" & $setIndex & ", binding = " & $descriptorBinding & ") uniform T" & descriptorName & " {" - - for blockFieldName, blockFieldValue in default(elementType(descriptorValue)).data.fieldPairs(): - assert typeof(blockFieldValue) is SupportedGPUType, "uniform block field '" & blockFieldName & "' is not a SupportedGPUType" + for blockFieldName, blockFieldValue in default(elementType(descriptorValue)).data + .fieldPairs(): + assert typeof(blockFieldValue) is SupportedGPUType, + "uniform block field '" & blockFieldName & "' is not a SupportedGPUType" uniforms.add " " & glslType(blockFieldValue) & " " & blockFieldName & ";" uniforms.add "} " & descriptorName & "[" & $descriptorValue.len & "];" descriptorBinding.inc - else: {.error: "Unsupported shader descriptor field " & descriptorName.} elif fieldname in ["vertexCode", "fragmentCode"]: @@ -216,31 +307,29 @@ pushConstants.add "layout( push_constant ) uniform constants" pushConstants.add "{" for constFieldName, constFieldValue in value.fieldPairs(): - assert typeof(constFieldValue) is SupportedGPUType, "push constant field '" & constFieldName & "' is not a SupportedGPUType" + assert typeof(constFieldValue) is SupportedGPUType, + "push constant field '" & constFieldName & "' is not a SupportedGPUType" pushConstants.add " " & glslType(constFieldValue) & " " & constFieldName & ";" pushConstants.add "} " & fieldname & ";" else: static: - echo "Unsupported shader field '" & typetraits.name(TShader) & "." & fieldname & "' of type " & typetraits.name(typeof(value)) + echo "Unsupported shader field '" & typetraits.name(TShader) & "." & fieldname & + "' of type " & typetraits.name(typeof(value)) {.error: "Unsupported shader field".} - result[0] = (@[&"#version {GLSL_VERSION}", "#extension GL_EXT_scalar_block_layout : require", ""] & - vsInput & - uniforms & - pushConstants & - samplers & - vsOutput & - @[shader.vertexCode]).join("\n") + result[0] = ( + @[&"#version {GLSL_VERSION}", "#extension GL_EXT_scalar_block_layout : require", ""] & + vsInput & uniforms & pushConstants & samplers & vsOutput & @[shader.vertexCode] + ).join("\n") - result[1] = (@[&"#version {GLSL_VERSION}", "#extension GL_EXT_scalar_block_layout : require", ""] & - fsInput & - uniforms & - pushConstants & - samplers & - fsOutput & - @[shader.fragmentCode]).join("\n") + result[1] = ( + @[&"#version {GLSL_VERSION}", "#extension GL_EXT_scalar_block_layout : require", ""] & + fsInput & uniforms & pushConstants & samplers & fsOutput & @[shader.fragmentCode] + ).join("\n") -proc compileGlslToSPIRV(stage: VkShaderStageFlagBits, shaderSource: string): seq[uint32] {.compileTime.} = +proc compileGlslToSPIRV( + stage: VkShaderStageFlagBits, shaderSource: string +): seq[uint32] {.compileTime.} = func stage2string(stage: VkShaderStageFlagBits): string {.compileTime.} = case stage of VK_SHADER_STAGE_VERTEX_BIT: "vert" @@ -263,19 +352,19 @@ echo "shader of type ", stage for i, line in enumerate(shaderSource.splitlines()): echo " ", i + 1, " ", line - var glslExe = currentSourcePath.parentDir.parentDir.parentDir / "tools" / "glslangValidator" + var glslExe = + currentSourcePath.parentDir.parentDir.parentDir / "tools" / "glslangValidator" when defined(windows): glslExe = glslExe & "." & ExeExt - let command = &"{glslExe} --entry-point main -V --stdin -S {stagename} -o {shaderfile}" + let command = + &"{glslExe} --entry-point main -V --stdin -S {stagename} -o {shaderfile}" echo "run: ", command - discard StaticExecChecked( - command = command, - input = shaderSource - ) + discard StaticExecChecked(command = command, input = shaderSource) else: echo &"shaderfile {shaderfile} is up-to-date" - when defined(mingw) and defined(linux): # required for crosscompilation, path separators get messed up + when defined(mingw) and defined(linux): + # required for crosscompilation, path separators get messed up let shaderbinary = staticRead shaderfile.replace("\\", "/") else: let shaderbinary = staticRead shaderfile @@ -283,36 +372,41 @@ var i = 0 while i < shaderbinary.len: result.add( - (uint32(shaderbinary[i + 0]) shl 0) or - (uint32(shaderbinary[i + 1]) shl 8) or - (uint32(shaderbinary[i + 2]) shl 16) or - (uint32(shaderbinary[i + 3]) shl 24) + (uint32(shaderbinary[i + 0]) shl 0) or (uint32(shaderbinary[i + 1]) shl 8) or + (uint32(shaderbinary[i + 2]) shl 16) or (uint32(shaderbinary[i + 3]) shl 24) ) i += 4 - proc compileShader[TShader](shader: static TShader): (VkShaderModule, VkShaderModule) = const (vertexShaderSource, fragmentShaderSource) = generateShaderSource(shader) let vertexBinary = compileGlslToSPIRV(VK_SHADER_STAGE_VERTEX_BIT, vertexShaderSource) - let fragmentBinary = compileGlslToSPIRV(VK_SHADER_STAGE_FRAGMENT_BIT, fragmentShaderSource) + let fragmentBinary = + compileGlslToSPIRV(VK_SHADER_STAGE_FRAGMENT_BIT, fragmentShaderSource) var createInfoVertex = VkShaderModuleCreateInfo( sType: VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, codeSize: csize_t(vertexBinary.len * sizeof(uint32)), pCode: vertexBinary.ToCPointer, ) - checkVkResult vulkan.device.vkCreateShaderModule(addr(createInfoVertex), nil, addr(result[0])) + checkVkResult vulkan.device.vkCreateShaderModule( + addr(createInfoVertex), nil, addr(result[0]) + ) var createInfoFragment = VkShaderModuleCreateInfo( sType: VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, codeSize: csize_t(fragmentBinary.len * sizeof(uint32)), pCode: fragmentBinary.ToCPointer, ) - checkVkResult vulkan.device.vkCreateShaderModule(addr(createInfoFragment), nil, addr(result[1])) + checkVkResult vulkan.device.vkCreateShaderModule( + addr(createInfoFragment), nil, addr(result[1]) + ) -template ForVertexDataFields(shader: typed, fieldname, valuename, isinstancename, body: untyped): untyped = +template ForVertexDataFields( + shader: typed, fieldname, valuename, isinstancename, body: untyped +): untyped = for theFieldname, value in fieldPairs(shader): - when hasCustomPragma(value, VertexAttribute) or hasCustomPragma(value, InstanceAttribute): + when hasCustomPragma(value, VertexAttribute) or + hasCustomPragma(value, InstanceAttribute): when not typeof(value) is seq: {.error: "field '" & theFieldname & "' needs to be a seq".} when not typeof(value) is SupportedGPUType: @@ -323,11 +417,15 @@ const `isinstancename` {.inject.} = hasCustomPragma(value, InstanceAttribute) body -proc createDescriptorSetLayouts[TShader](): array[MAX_DESCRIPTORSETS, VkDescriptorSetLayout] = +proc createDescriptorSetLayouts[TShader](): array[ + MAX_DESCRIPTORSETS, VkDescriptorSetLayout +] = for _, value in fieldPairs(default(TShader)): when hasCustomPragma(value, DescriptorSet): var layoutbindings: seq[VkDescriptorSetLayoutBinding] - forDescriptorFields(value, fieldValue, descriptorType, descriptorCount, descriptorBindingNumber): + forDescriptorFields( + value, fieldValue, descriptorType, descriptorCount, descriptorBindingNumber + ): layoutbindings.add VkDescriptorSetLayoutBinding( binding: descriptorBindingNumber, descriptorType: descriptorType, @@ -338,23 +436,23 @@ var layoutCreateInfo = VkDescriptorSetLayoutCreateInfo( sType: VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, bindingCount: layoutbindings.len.uint32, - pBindings: layoutbindings.ToCPointer + pBindings: layoutbindings.ToCPointer, ) checkVkResult vkCreateDescriptorSetLayout( vulkan.device, addr(layoutCreateInfo), nil, - addr(result[value.getCustomPragmaVal(DescriptorSet)]) + addr(result[value.getCustomPragmaVal(DescriptorSet)]), ) proc createPipeline*[TShader]( - renderPass: RenderPass, - topology: VkPrimitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, - polygonMode: VkPolygonMode = VK_POLYGON_MODE_FILL, - cullMode: openArray[VkCullModeFlagBits] = [VK_CULL_MODE_BACK_BIT], - frontFace: VkFrontFace = VK_FRONT_FACE_CLOCKWISE, - lineWidth = 1'f32, - depthClampEnable = false, + renderPass: RenderPass, + topology: VkPrimitiveTopology = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, + polygonMode: VkPolygonMode = VK_POLYGON_MODE_FILL, + cullMode: openArray[VkCullModeFlagBits] = [VK_CULL_MODE_BACK_BIT], + frontFace: VkFrontFace = VK_FRONT_FACE_CLOCKWISE, + lineWidth = 1'f32, + depthClampEnable = false, ): Pipeline[TShader] = # create pipeline @@ -380,7 +478,9 @@ pushConstantRangeCount: 1, pPushConstantRanges: addr(pushConstant), ) - checkVkResult vkCreatePipelineLayout(vulkan.device, addr(pipelineLayoutInfo), nil, addr(result.layout)) + checkVkResult vkCreatePipelineLayout( + vulkan.device, addr(pipelineLayoutInfo), nil, addr(result.layout) + ) let stages = [ VkPipelineShaderStageCreateInfo( @@ -405,10 +505,15 @@ bindings.add VkVertexInputBindingDescription( binding: inputBindingNumber, stride: sizeof(value).uint32, - inputRate: if isInstanceAttr: VK_VERTEX_INPUT_RATE_INSTANCE else: VK_VERTEX_INPUT_RATE_VERTEX, + inputRate: + if isInstanceAttr: + VK_VERTEX_INPUT_RATE_INSTANCE + else: + VK_VERTEX_INPUT_RATE_VERTEX, ) # allows to submit larger data structures like Mat44, for most other types will be 1 - let perDescriptorSize = sizeof(value).uint32 div numberOfVertexInputAttributeDescriptors(value) + let perDescriptorSize = + sizeof(value).uint32 div numberOfVertexInputAttributeDescriptors(value) for i in 0'u32 ..< numberOfVertexInputAttributeDescriptors(value): attributes.add VkVertexInputAttributeDescription( binding: inputBindingNumber, @@ -471,7 +576,10 @@ maxDepthBounds: 0'f32, ) colorBlendAttachment = VkPipelineColorBlendAttachmentState( - colorWriteMask: toBits [VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, VK_COLOR_COMPONENT_B_BIT, VK_COLOR_COMPONENT_A_BIT], + colorWriteMask: toBits [ + VK_COLOR_COMPONENT_R_BIT, VK_COLOR_COMPONENT_G_BIT, VK_COLOR_COMPONENT_B_BIT, + VK_COLOR_COMPONENT_A_BIT, + ], blendEnable: true, srcColorBlendFactor: VK_BLEND_FACTOR_SRC_ALPHA, dstColorBlendFactor: VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, @@ -486,7 +594,7 @@ logicOp: VK_LOGIC_OP_COPY, attachmentCount: 1, pAttachments: addr(colorBlendAttachment), - blendConstants: [0'f32, 0'f32, 0'f32, 0'f32] + blendConstants: [0'f32, 0'f32, 0'f32, 0'f32], ) dynamicStates = [VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR] dynamicState = VkPipelineDynamicStateCreateInfo( @@ -503,7 +611,11 @@ pViewportState: addr(viewportState), pRasterizationState: addr(rasterizer), pMultisampleState: addr(multisampling), - pDepthStencilState: if renderPass.depthBuffer: addr(depthStencil) else: nil, + pDepthStencilState: + if renderPass.depthBuffer: + addr(depthStencil) + else: + nil, pColorBlendState: addr(colorBlending), pDynamicState: addr(dynamicState), layout: result.layout, @@ -513,24 +625,20 @@ basePipelineIndex: -1, ) checkVkResult vkCreateGraphicsPipelines( - vulkan.device, - VkPipelineCache(0), - 1, - addr(createInfo), - nil, - addr(result.vk) + vulkan.device, VkPipelineCache(0), 1, addr(createInfo), nil, addr(result.vk) ) func layout*(pipeline: Pipeline, level: int): VkDescriptorSetLayout = pipeline.descriptorSetLayouts[level] -template withPipeline*(commandbuffer: VkCommandBuffer, pipeline: Pipeline, body: untyped): untyped = +template withPipeline*( + commandbuffer: VkCommandBuffer, pipeline: Pipeline, body: untyped +): untyped = block: vkCmdBindPipeline(commandbuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline.vk) body proc destroyPipeline*(pipeline: Pipeline) = - for descriptorSetLayout in pipeline.descriptorSetLayouts: vkDestroyDescriptorSetLayout(vulkan.device, descriptorSetLayout, nil) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/swapchain.nim --- a/semicongine/rendering/swapchain.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/swapchain.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,14 +1,14 @@ const N_FRAMEBUFFERS = 3'u32 proc initSwapchain( - renderPass: RenderPass, - vSync: bool = false, - oldSwapchain: Swapchain = nil, + renderPass: RenderPass, vSync: bool = false, oldSwapchain: Swapchain = nil ): Swapchain = assert vulkan.instance.Valid, "Vulkan not initialized" var capabilities: VkSurfaceCapabilitiesKHR - checkVkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(vulkan.physicalDevice, vulkan.surface, addr(capabilities)) + checkVkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( + vulkan.physicalDevice, vulkan.surface, addr(capabilities) + ) let width = capabilities.currentExtent.width height = capabilities.currentExtent.height @@ -23,22 +23,33 @@ minFramebufferCount = min(minFramebufferCount, capabilities.maxImageCount) # create swapchain - let hasTripleBuffering = VK_PRESENT_MODE_MAILBOX_KHR in svkGetPhysicalDeviceSurfacePresentModesKHR() + let hasTripleBuffering = + VK_PRESENT_MODE_MAILBOX_KHR in svkGetPhysicalDeviceSurfacePresentModesKHR() var swapchainCreateInfo = VkSwapchainCreateInfoKHR( sType: VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR, surface: vulkan.surface, minImageCount: minFramebufferCount, imageFormat: SURFACE_FORMAT, - imageColorSpace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, # only one supported without special extensions + imageColorSpace: VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, + # only one supported without special extensions imageExtent: capabilities.currentExtent, imageArrayLayers: 1, imageUsage: toBits [VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT], imageSharingMode: VK_SHARING_MODE_EXCLUSIVE, preTransform: capabilities.currentTransform, - compositeAlpha: VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, # only used for blending with other windows, can be opaque - presentMode: if (vSync or not hasTripleBuffering): VK_PRESENT_MODE_FIFO_KHR else: VK_PRESENT_MODE_MAILBOX_KHR, + compositeAlpha: VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, + # only used for blending with other windows, can be opaque + presentMode: + if (vSync or not hasTripleBuffering): + VK_PRESENT_MODE_FIFO_KHR + else: + VK_PRESENT_MODE_MAILBOX_KHR, clipped: true, - oldSwapchain: if oldSwapchain != nil: oldSwapchain.vk else: VkSwapchainKHR(0), + oldSwapchain: + if oldSwapchain != nil: + oldSwapchain.vk + else: + VkSwapchainKHR(0), ) var swapchain = Swapchain( width: width, @@ -48,7 +59,9 @@ oldSwapchain: oldSwapchain, ) - if vkCreateSwapchainKHR(vulkan.device, addr(swapchainCreateInfo), nil, addr(swapchain.vk)) != VK_SUCCESS: + if vkCreateSwapchainKHR( + vulkan.device, addr(swapchainCreateInfo), nil, addr(swapchain.vk) + ) != VK_SUCCESS: return nil if swapchain.oldSwapchain != nil: @@ -65,19 +78,15 @@ ) let requirements = svkGetImageMemoryRequirements(swapchain.depthImage) swapchain.depthMemory = svkAllocateMemory( - requirements.size, - bestMemory(mappable = false, filter = requirements.memoryTypes) + requirements.size, bestMemory(mappable = false, filter = requirements.memoryTypes) ) checkVkResult vkBindImageMemory( - vulkan.device, - swapchain.depthImage, - swapchain.depthMemory, - 0, + vulkan.device, swapchain.depthImage, swapchain.depthMemory, 0 ) swapchain.depthImageView = svkCreate2DImageView( image = swapchain.depthImage, format = DEPTH_FORMAT, - aspect = VK_IMAGE_ASPECT_DEPTH_BIT + aspect = VK_IMAGE_ASPECT_DEPTH_BIT, ) # create msaa image+view if desired @@ -86,27 +95,29 @@ width = width, height = height, format = SURFACE_FORMAT, - usage = [VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT], + usage = + [VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT], samples = renderPass.samples, ) let requirements = svkGetImageMemoryRequirements(swapchain.msaaImage) swapchain.msaaMemory = svkAllocateMemory( - requirements.size, - bestMemory(mappable = false, filter = requirements.memoryTypes) + requirements.size, bestMemory(mappable = false, filter = requirements.memoryTypes) ) checkVkResult vkBindImageMemory( - vulkan.device, - swapchain.msaaImage, - swapchain.msaaMemory, - 0, + vulkan.device, swapchain.msaaImage, swapchain.msaaMemory, 0 ) - swapchain.msaaImageView = svkCreate2DImageView(image = swapchain.msaaImage, format = SURFACE_FORMAT) + swapchain.msaaImageView = + svkCreate2DImageView(image = swapchain.msaaImage, format = SURFACE_FORMAT) # create framebuffers var actualNFramebuffers: uint32 - checkVkResult vkGetSwapchainImagesKHR(vulkan.device, swapchain.vk, addr(actualNFramebuffers), nil) + checkVkResult vkGetSwapchainImagesKHR( + vulkan.device, swapchain.vk, addr(actualNFramebuffers), nil + ) var framebuffers = newSeq[VkImage](actualNFramebuffers) - checkVkResult vkGetSwapchainImagesKHR(vulkan.device, swapchain.vk, addr(actualNFramebuffers), framebuffers.ToCPointer) + checkVkResult vkGetSwapchainImagesKHR( + vulkan.device, swapchain.vk, addr(actualNFramebuffers), framebuffers.ToCPointer + ) for framebuffer in framebuffers: swapchain.framebufferViews.add svkCreate2DImageView(framebuffer, SURFACE_FORMAT) @@ -118,7 +129,12 @@ attachments = @[swapchain.framebufferViews[^1]] else: if renderPass.depthBuffer: - attachments = @[swapchain.msaaImageView, swapchain.depthImageView, swapchain.framebufferViews[^1]] + attachments = + @[ + swapchain.msaaImageView, + swapchain.depthImageView, + swapchain.framebufferViews[^1], + ] else: attachments = @[swapchain.msaaImageView, swapchain.framebufferViews[^1]] @@ -141,14 +157,18 @@ flags: toBits [VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT], queueFamilyIndex: vulkan.graphicsQueueFamily, ) - checkVkResult vkCreateCommandPool(vulkan.device, addr(commandPoolCreateInfo), nil, addr(swapchain.commandBufferPool)) + checkVkResult vkCreateCommandPool( + vulkan.device, addr(commandPoolCreateInfo), nil, addr(swapchain.commandBufferPool) + ) var allocInfo = VkCommandBufferAllocateInfo( sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, commandPool: swapchain.commandBufferPool, level: VK_COMMAND_BUFFER_LEVEL_PRIMARY, commandBufferCount: INFLIGHTFRAMES, ) - checkVkResult vkAllocateCommandBuffers(vulkan.device, addr(allocInfo), swapchain.commandBuffers.ToCPointer) + checkVkResult vkAllocateCommandBuffers( + vulkan.device, addr(allocInfo), swapchain.commandBuffers.ToCPointer + ) return swapchain @@ -221,7 +241,7 @@ queue = vulkan.graphicsQueue, submitCount = 1, pSubmits = addr(submitInfo), - fence = swapchain.queueFinishedFence[swapchain.currentFiF] + fence = swapchain.queueFinishedFence[swapchain.currentFiF], ) var presentInfo = VkPresentInfoKHR( @@ -249,9 +269,7 @@ proc recreate(swapchain: Swapchain): Swapchain = initSwapchain( - renderPass = swapchain.renderPass, - vSync = swapchain.vSync, - oldSwapchain = swapchain, + renderPass = swapchain.renderPass, vSync = swapchain.vSync, oldSwapchain = swapchain ) template withNextFrame*(framebufferName, commandBufferName, body: untyped): untyped = @@ -260,12 +278,15 @@ if maybeFramebuffer.isSome: block: let `framebufferName` {.inject.} = maybeFramebuffer.get - let `commandBufferName` {.inject.} = vulkan.swapchain.commandBuffers[vulkan.swapchain.currentFiF] + let `commandBufferName` {.inject.} = + vulkan.swapchain.commandBuffers[vulkan.swapchain.currentFiF] let beginInfo = VkCommandBufferBeginInfo( sType: VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, flags: VkCommandBufferUsageFlags(VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT), ) - checkVkResult vkResetCommandBuffer(`commandBufferName`, VkCommandBufferResetFlags(0)) + checkVkResult vkResetCommandBuffer( + `commandBufferName`, VkCommandBufferResetFlags(0) + ) checkVkResult vkBeginCommandBuffer(`commandBufferName`, addr(beginInfo)) body diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/vulkan/api.nim --- a/semicongine/rendering/vulkan/api.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/vulkan/api.nim Thu Aug 22 18:32:21 2024 +0700 @@ -8,21 +8,26 @@ type VkHandle* = distinct uint VkNonDispatchableHandle* = distinct uint + when defined(linux): let vulkanLib* = loadLib("libvulkan.so.1") when defined(windows): let vulkanLib* = loadLib("vulkan-1.dll") if vulkanLib == nil: raise newException(Exception, "Unable to load vulkan library") -func VK_MAKE_API_VERSION*(variant: uint32, major: uint32, minor: uint32, patch: uint32): uint32 {.compileTime.} = +func VK_MAKE_API_VERSION*( + variant: uint32, major: uint32, minor: uint32, patch: uint32 +): uint32 {.compileTime.} = (variant shl 29) or (major shl 22) or (minor shl 12) or patch # custom enum iteration (for enum values > 2^16) macro enumFullRange(a: typed): untyped = - newNimNode(nnkBracket).add(a.getType[1][1..^1]) + newNimNode(nnkBracket).add(a.getType[1][1 ..^ 1]) iterator items*[T: HoleyEnum](E: typedesc[T]): T = - for a in enumFullRange(E): yield a + for a in enumFullRange(E): + yield a + const VK_MAX_PHYSICAL_DEVICE_NAME_SIZE*: uint32 = 256 VK_UUID_SIZE*: uint32 = 16 @@ -121,198 +126,583 @@ VkVideoSessionParametersKHR* = distinct VkNonDispatchableHandle VkSemaphoreSciSyncPoolNV* = distinct VkNonDispatchableHandle VkRemoteAddressNV* = pointer -proc `$`*(handle: VkInstance): string = "VkInstance(" & $(uint(handle)) & ")" -proc Valid*(handle: VkInstance): bool = uint(handle) != 0 -proc Reset*(handle: var VkInstance) = handle = VkInstance(0) -proc `==`*(a, b: VkInstance): bool = uint(a) == uint(b) -proc `$`*(handle: VkPhysicalDevice): string = "VkPhysicalDevice(" & $(uint(handle)) & ")" -proc Valid*(handle: VkPhysicalDevice): bool = uint(handle) != 0 -proc Reset*(handle: var VkPhysicalDevice) = handle = VkPhysicalDevice(0) -proc `==`*(a, b: VkPhysicalDevice): bool = uint(a) == uint(b) -proc `$`*(handle: VkDevice): string = "VkDevice(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDevice): bool = uint(handle) != 0 -proc Reset*(handle: var VkDevice) = handle = VkDevice(0) -proc `==`*(a, b: VkDevice): bool = uint(a) == uint(b) -proc `$`*(handle: VkQueue): string = "VkQueue(" & $(uint(handle)) & ")" -proc Valid*(handle: VkQueue): bool = uint(handle) != 0 -proc Reset*(handle: var VkQueue) = handle = VkQueue(0) -proc `==`*(a, b: VkQueue): bool = uint(a) == uint(b) -proc `$`*(handle: VkCommandBuffer): string = "VkCommandBuffer(" & $(uint(handle)) & ")" -proc Valid*(handle: VkCommandBuffer): bool = uint(handle) != 0 -proc Reset*(handle: var VkCommandBuffer) = handle = VkCommandBuffer(0) -proc `==`*(a, b: VkCommandBuffer): bool = uint(a) == uint(b) -proc `$`*(handle: VkDeviceMemory): string = "VkDeviceMemory(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDeviceMemory): bool = uint(handle) != 0 -proc Reset*(handle: var VkDeviceMemory) = handle = VkDeviceMemory(0) -proc `==`*(a, b: VkDeviceMemory): bool = uint(a) == uint(b) -proc `$`*(handle: VkCommandPool): string = "VkCommandPool(" & $(uint(handle)) & ")" -proc Valid*(handle: VkCommandPool): bool = uint(handle) != 0 -proc Reset*(handle: var VkCommandPool) = handle = VkCommandPool(0) -proc `==`*(a, b: VkCommandPool): bool = uint(a) == uint(b) -proc `$`*(handle: VkBuffer): string = "VkBuffer(" & $(uint(handle)) & ")" -proc Valid*(handle: VkBuffer): bool = uint(handle) != 0 -proc Reset*(handle: var VkBuffer) = handle = VkBuffer(0) -proc `==`*(a, b: VkBuffer): bool = uint(a) == uint(b) -proc `$`*(handle: VkBufferView): string = "VkBufferView(" & $(uint(handle)) & ")" -proc Valid*(handle: VkBufferView): bool = uint(handle) != 0 -proc Reset*(handle: var VkBufferView) = handle = VkBufferView(0) -proc `==`*(a, b: VkBufferView): bool = uint(a) == uint(b) -proc `$`*(handle: VkImage): string = "VkImage(" & $(uint(handle)) & ")" -proc Valid*(handle: VkImage): bool = uint(handle) != 0 -proc Reset*(handle: var VkImage) = handle = VkImage(0) -proc `==`*(a, b: VkImage): bool = uint(a) == uint(b) -proc `$`*(handle: VkImageView): string = "VkImageView(" & $(uint(handle)) & ")" -proc Valid*(handle: VkImageView): bool = uint(handle) != 0 -proc Reset*(handle: var VkImageView) = handle = VkImageView(0) -proc `==`*(a, b: VkImageView): bool = uint(a) == uint(b) -proc `$`*(handle: VkShaderModule): string = "VkShaderModule(" & $(uint(handle)) & ")" -proc Valid*(handle: VkShaderModule): bool = uint(handle) != 0 -proc Reset*(handle: var VkShaderModule) = handle = VkShaderModule(0) -proc `==`*(a, b: VkShaderModule): bool = uint(a) == uint(b) -proc `$`*(handle: VkPipeline): string = "VkPipeline(" & $(uint(handle)) & ")" -proc Valid*(handle: VkPipeline): bool = uint(handle) != 0 -proc Reset*(handle: var VkPipeline) = handle = VkPipeline(0) -proc `==`*(a, b: VkPipeline): bool = uint(a) == uint(b) -proc `$`*(handle: VkPipelineLayout): string = "VkPipelineLayout(" & $(uint(handle)) & ")" -proc Valid*(handle: VkPipelineLayout): bool = uint(handle) != 0 -proc Reset*(handle: var VkPipelineLayout) = handle = VkPipelineLayout(0) -proc `==`*(a, b: VkPipelineLayout): bool = uint(a) == uint(b) -proc `$`*(handle: VkSampler): string = "VkSampler(" & $(uint(handle)) & ")" -proc Valid*(handle: VkSampler): bool = uint(handle) != 0 -proc Reset*(handle: var VkSampler) = handle = VkSampler(0) -proc `==`*(a, b: VkSampler): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorSet): string = "VkDescriptorSet(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDescriptorSet): bool = uint(handle) != 0 -proc Reset*(handle: var VkDescriptorSet) = handle = VkDescriptorSet(0) -proc `==`*(a, b: VkDescriptorSet): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorSetLayout): string = "VkDescriptorSetLayout(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDescriptorSetLayout): bool = uint(handle) != 0 -proc Reset*(handle: var VkDescriptorSetLayout) = handle = VkDescriptorSetLayout(0) -proc `==`*(a, b: VkDescriptorSetLayout): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorPool): string = "VkDescriptorPool(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDescriptorPool): bool = uint(handle) != 0 -proc Reset*(handle: var VkDescriptorPool) = handle = VkDescriptorPool(0) -proc `==`*(a, b: VkDescriptorPool): bool = uint(a) == uint(b) -proc `$`*(handle: VkFence): string = "VkFence(" & $(uint(handle)) & ")" -proc Valid*(handle: VkFence): bool = uint(handle) != 0 -proc Reset*(handle: var VkFence) = handle = VkFence(0) -proc `==`*(a, b: VkFence): bool = uint(a) == uint(b) -proc `$`*(handle: VkSemaphore): string = "VkSemaphore(" & $(uint(handle)) & ")" -proc Valid*(handle: VkSemaphore): bool = uint(handle) != 0 -proc Reset*(handle: var VkSemaphore) = handle = VkSemaphore(0) -proc `==`*(a, b: VkSemaphore): bool = uint(a) == uint(b) -proc `$`*(handle: VkEvent): string = "VkEvent(" & $(uint(handle)) & ")" -proc Valid*(handle: VkEvent): bool = uint(handle) != 0 -proc Reset*(handle: var VkEvent) = handle = VkEvent(0) -proc `==`*(a, b: VkEvent): bool = uint(a) == uint(b) -proc `$`*(handle: VkQueryPool): string = "VkQueryPool(" & $(uint(handle)) & ")" -proc Valid*(handle: VkQueryPool): bool = uint(handle) != 0 -proc Reset*(handle: var VkQueryPool) = handle = VkQueryPool(0) -proc `==`*(a, b: VkQueryPool): bool = uint(a) == uint(b) -proc `$`*(handle: VkFramebuffer): string = "VkFramebuffer(" & $(uint(handle)) & ")" -proc Valid*(handle: VkFramebuffer): bool = uint(handle) != 0 -proc Reset*(handle: var VkFramebuffer) = handle = VkFramebuffer(0) -proc `==`*(a, b: VkFramebuffer): bool = uint(a) == uint(b) -proc `$`*(handle: VkRenderPass): string = "VkRenderPass(" & $(uint(handle)) & ")" -proc Valid*(handle: VkRenderPass): bool = uint(handle) != 0 -proc Reset*(handle: var VkRenderPass) = handle = VkRenderPass(0) -proc `==`*(a, b: VkRenderPass): bool = uint(a) == uint(b) -proc `$`*(handle: VkPipelineCache): string = "VkPipelineCache(" & $(uint(handle)) & ")" -proc Valid*(handle: VkPipelineCache): bool = uint(handle) != 0 -proc Reset*(handle: var VkPipelineCache) = handle = VkPipelineCache(0) -proc `==`*(a, b: VkPipelineCache): bool = uint(a) == uint(b) -proc `$`*(handle: VkIndirectCommandsLayoutNV): string = "VkIndirectCommandsLayoutNV(" & $(uint(handle)) & ")" -proc Valid*(handle: VkIndirectCommandsLayoutNV): bool = uint(handle) != 0 -proc Reset*(handle: var VkIndirectCommandsLayoutNV) = handle = VkIndirectCommandsLayoutNV(0) -proc `==`*(a, b: VkIndirectCommandsLayoutNV): bool = uint(a) == uint(b) -proc `$`*(handle: VkDescriptorUpdateTemplate): string = "VkDescriptorUpdateTemplate(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDescriptorUpdateTemplate): bool = uint(handle) != 0 -proc Reset*(handle: var VkDescriptorUpdateTemplate) = handle = VkDescriptorUpdateTemplate(0) -proc `==`*(a, b: VkDescriptorUpdateTemplate): bool = uint(a) == uint(b) -proc `$`*(handle: VkSamplerYcbcrConversion): string = "VkSamplerYcbcrConversion(" & $(uint(handle)) & ")" -proc Valid*(handle: VkSamplerYcbcrConversion): bool = uint(handle) != 0 -proc Reset*(handle: var VkSamplerYcbcrConversion) = handle = VkSamplerYcbcrConversion(0) -proc `==`*(a, b: VkSamplerYcbcrConversion): bool = uint(a) == uint(b) -proc `$`*(handle: VkValidationCacheEXT): string = "VkValidationCacheEXT(" & $(uint(handle)) & ")" -proc Valid*(handle: VkValidationCacheEXT): bool = uint(handle) != 0 -proc Reset*(handle: var VkValidationCacheEXT) = handle = VkValidationCacheEXT(0) -proc `==`*(a, b: VkValidationCacheEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkAccelerationStructureKHR): string = "VkAccelerationStructureKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkAccelerationStructureKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkAccelerationStructureKHR) = handle = VkAccelerationStructureKHR(0) -proc `==`*(a, b: VkAccelerationStructureKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkAccelerationStructureNV): string = "VkAccelerationStructureNV(" & $(uint(handle)) & ")" -proc Valid*(handle: VkAccelerationStructureNV): bool = uint(handle) != 0 -proc Reset*(handle: var VkAccelerationStructureNV) = handle = VkAccelerationStructureNV(0) -proc `==`*(a, b: VkAccelerationStructureNV): bool = uint(a) == uint(b) -proc `$`*(handle: VkPerformanceConfigurationINTEL): string = "VkPerformanceConfigurationINTEL(" & $(uint(handle)) & ")" -proc Valid*(handle: VkPerformanceConfigurationINTEL): bool = uint(handle) != 0 -proc Reset*(handle: var VkPerformanceConfigurationINTEL) = handle = VkPerformanceConfigurationINTEL(0) -proc `==`*(a, b: VkPerformanceConfigurationINTEL): bool = uint(a) == uint(b) -proc `$`*(handle: VkBufferCollectionFUCHSIA): string = "VkBufferCollectionFUCHSIA(" & $(uint(handle)) & ")" -proc Valid*(handle: VkBufferCollectionFUCHSIA): bool = uint(handle) != 0 -proc Reset*(handle: var VkBufferCollectionFUCHSIA) = handle = VkBufferCollectionFUCHSIA(0) -proc `==`*(a, b: VkBufferCollectionFUCHSIA): bool = uint(a) == uint(b) -proc `$`*(handle: VkDeferredOperationKHR): string = "VkDeferredOperationKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDeferredOperationKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkDeferredOperationKHR) = handle = VkDeferredOperationKHR(0) -proc `==`*(a, b: VkDeferredOperationKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkPrivateDataSlot): string = "VkPrivateDataSlot(" & $(uint(handle)) & ")" -proc Valid*(handle: VkPrivateDataSlot): bool = uint(handle) != 0 -proc Reset*(handle: var VkPrivateDataSlot) = handle = VkPrivateDataSlot(0) -proc `==`*(a, b: VkPrivateDataSlot): bool = uint(a) == uint(b) -proc `$`*(handle: VkCuModuleNVX): string = "VkCuModuleNVX(" & $(uint(handle)) & ")" -proc Valid*(handle: VkCuModuleNVX): bool = uint(handle) != 0 -proc Reset*(handle: var VkCuModuleNVX) = handle = VkCuModuleNVX(0) -proc `==`*(a, b: VkCuModuleNVX): bool = uint(a) == uint(b) -proc `$`*(handle: VkCuFunctionNVX): string = "VkCuFunctionNVX(" & $(uint(handle)) & ")" -proc Valid*(handle: VkCuFunctionNVX): bool = uint(handle) != 0 -proc Reset*(handle: var VkCuFunctionNVX) = handle = VkCuFunctionNVX(0) -proc `==`*(a, b: VkCuFunctionNVX): bool = uint(a) == uint(b) -proc `$`*(handle: VkOpticalFlowSessionNV): string = "VkOpticalFlowSessionNV(" & $(uint(handle)) & ")" -proc Valid*(handle: VkOpticalFlowSessionNV): bool = uint(handle) != 0 -proc Reset*(handle: var VkOpticalFlowSessionNV) = handle = VkOpticalFlowSessionNV(0) -proc `==`*(a, b: VkOpticalFlowSessionNV): bool = uint(a) == uint(b) -proc `$`*(handle: VkMicromapEXT): string = "VkMicromapEXT(" & $(uint(handle)) & ")" -proc Valid*(handle: VkMicromapEXT): bool = uint(handle) != 0 -proc Reset*(handle: var VkMicromapEXT) = handle = VkMicromapEXT(0) -proc `==`*(a, b: VkMicromapEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkDisplayKHR): string = "VkDisplayKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDisplayKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkDisplayKHR) = handle = VkDisplayKHR(0) -proc `==`*(a, b: VkDisplayKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkDisplayModeKHR): string = "VkDisplayModeKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDisplayModeKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkDisplayModeKHR) = handle = VkDisplayModeKHR(0) -proc `==`*(a, b: VkDisplayModeKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkSurfaceKHR): string = "VkSurfaceKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkSurfaceKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkSurfaceKHR) = handle = VkSurfaceKHR(0) -proc `==`*(a, b: VkSurfaceKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkSwapchainKHR): string = "VkSwapchainKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkSwapchainKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkSwapchainKHR) = handle = VkSwapchainKHR(0) -proc `==`*(a, b: VkSwapchainKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkDebugReportCallbackEXT): string = "VkDebugReportCallbackEXT(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDebugReportCallbackEXT): bool = uint(handle) != 0 -proc Reset*(handle: var VkDebugReportCallbackEXT) = handle = VkDebugReportCallbackEXT(0) -proc `==`*(a, b: VkDebugReportCallbackEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkDebugUtilsMessengerEXT): string = "VkDebugUtilsMessengerEXT(" & $(uint(handle)) & ")" -proc Valid*(handle: VkDebugUtilsMessengerEXT): bool = uint(handle) != 0 -proc Reset*(handle: var VkDebugUtilsMessengerEXT) = handle = VkDebugUtilsMessengerEXT(0) -proc `==`*(a, b: VkDebugUtilsMessengerEXT): bool = uint(a) == uint(b) -proc `$`*(handle: VkVideoSessionKHR): string = "VkVideoSessionKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkVideoSessionKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkVideoSessionKHR) = handle = VkVideoSessionKHR(0) -proc `==`*(a, b: VkVideoSessionKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkVideoSessionParametersKHR): string = "VkVideoSessionParametersKHR(" & $(uint(handle)) & ")" -proc Valid*(handle: VkVideoSessionParametersKHR): bool = uint(handle) != 0 -proc Reset*(handle: var VkVideoSessionParametersKHR) = handle = VkVideoSessionParametersKHR(0) -proc `==`*(a, b: VkVideoSessionParametersKHR): bool = uint(a) == uint(b) -proc `$`*(handle: VkSemaphoreSciSyncPoolNV): string = "VkSemaphoreSciSyncPoolNV(" & $(uint(handle)) & ")" -proc Valid*(handle: VkSemaphoreSciSyncPoolNV): bool = uint(handle) != 0 -proc Reset*(handle: var VkSemaphoreSciSyncPoolNV) = handle = VkSemaphoreSciSyncPoolNV(0) -proc `==`*(a, b: VkSemaphoreSciSyncPoolNV): bool = uint(a) == uint(b) + +proc `$`*(handle: VkInstance): string = + "VkInstance(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkInstance): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkInstance) = + handle = VkInstance(0) + +proc `==`*(a, b: VkInstance): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkPhysicalDevice): string = + "VkPhysicalDevice(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkPhysicalDevice): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkPhysicalDevice) = + handle = VkPhysicalDevice(0) + +proc `==`*(a, b: VkPhysicalDevice): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDevice): string = + "VkDevice(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDevice): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDevice) = + handle = VkDevice(0) + +proc `==`*(a, b: VkDevice): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkQueue): string = + "VkQueue(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkQueue): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkQueue) = + handle = VkQueue(0) + +proc `==`*(a, b: VkQueue): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkCommandBuffer): string = + "VkCommandBuffer(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkCommandBuffer): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkCommandBuffer) = + handle = VkCommandBuffer(0) + +proc `==`*(a, b: VkCommandBuffer): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDeviceMemory): string = + "VkDeviceMemory(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDeviceMemory): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDeviceMemory) = + handle = VkDeviceMemory(0) + +proc `==`*(a, b: VkDeviceMemory): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkCommandPool): string = + "VkCommandPool(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkCommandPool): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkCommandPool) = + handle = VkCommandPool(0) + +proc `==`*(a, b: VkCommandPool): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkBuffer): string = + "VkBuffer(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkBuffer): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkBuffer) = + handle = VkBuffer(0) + +proc `==`*(a, b: VkBuffer): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkBufferView): string = + "VkBufferView(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkBufferView): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkBufferView) = + handle = VkBufferView(0) + +proc `==`*(a, b: VkBufferView): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkImage): string = + "VkImage(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkImage): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkImage) = + handle = VkImage(0) + +proc `==`*(a, b: VkImage): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkImageView): string = + "VkImageView(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkImageView): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkImageView) = + handle = VkImageView(0) + +proc `==`*(a, b: VkImageView): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkShaderModule): string = + "VkShaderModule(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkShaderModule): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkShaderModule) = + handle = VkShaderModule(0) + +proc `==`*(a, b: VkShaderModule): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkPipeline): string = + "VkPipeline(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkPipeline): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkPipeline) = + handle = VkPipeline(0) + +proc `==`*(a, b: VkPipeline): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkPipelineLayout): string = + "VkPipelineLayout(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkPipelineLayout): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkPipelineLayout) = + handle = VkPipelineLayout(0) + +proc `==`*(a, b: VkPipelineLayout): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkSampler): string = + "VkSampler(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkSampler): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkSampler) = + handle = VkSampler(0) + +proc `==`*(a, b: VkSampler): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDescriptorSet): string = + "VkDescriptorSet(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDescriptorSet): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDescriptorSet) = + handle = VkDescriptorSet(0) + +proc `==`*(a, b: VkDescriptorSet): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDescriptorSetLayout): string = + "VkDescriptorSetLayout(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDescriptorSetLayout): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDescriptorSetLayout) = + handle = VkDescriptorSetLayout(0) + +proc `==`*(a, b: VkDescriptorSetLayout): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDescriptorPool): string = + "VkDescriptorPool(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDescriptorPool): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDescriptorPool) = + handle = VkDescriptorPool(0) + +proc `==`*(a, b: VkDescriptorPool): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkFence): string = + "VkFence(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkFence): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkFence) = + handle = VkFence(0) + +proc `==`*(a, b: VkFence): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkSemaphore): string = + "VkSemaphore(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkSemaphore): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkSemaphore) = + handle = VkSemaphore(0) + +proc `==`*(a, b: VkSemaphore): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkEvent): string = + "VkEvent(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkEvent): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkEvent) = + handle = VkEvent(0) + +proc `==`*(a, b: VkEvent): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkQueryPool): string = + "VkQueryPool(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkQueryPool): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkQueryPool) = + handle = VkQueryPool(0) + +proc `==`*(a, b: VkQueryPool): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkFramebuffer): string = + "VkFramebuffer(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkFramebuffer): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkFramebuffer) = + handle = VkFramebuffer(0) + +proc `==`*(a, b: VkFramebuffer): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkRenderPass): string = + "VkRenderPass(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkRenderPass): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkRenderPass) = + handle = VkRenderPass(0) + +proc `==`*(a, b: VkRenderPass): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkPipelineCache): string = + "VkPipelineCache(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkPipelineCache): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkPipelineCache) = + handle = VkPipelineCache(0) + +proc `==`*(a, b: VkPipelineCache): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkIndirectCommandsLayoutNV): string = + "VkIndirectCommandsLayoutNV(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkIndirectCommandsLayoutNV): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkIndirectCommandsLayoutNV) = + handle = VkIndirectCommandsLayoutNV(0) + +proc `==`*(a, b: VkIndirectCommandsLayoutNV): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDescriptorUpdateTemplate): string = + "VkDescriptorUpdateTemplate(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDescriptorUpdateTemplate): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDescriptorUpdateTemplate) = + handle = VkDescriptorUpdateTemplate(0) + +proc `==`*(a, b: VkDescriptorUpdateTemplate): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkSamplerYcbcrConversion): string = + "VkSamplerYcbcrConversion(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkSamplerYcbcrConversion): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkSamplerYcbcrConversion) = + handle = VkSamplerYcbcrConversion(0) + +proc `==`*(a, b: VkSamplerYcbcrConversion): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkValidationCacheEXT): string = + "VkValidationCacheEXT(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkValidationCacheEXT): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkValidationCacheEXT) = + handle = VkValidationCacheEXT(0) + +proc `==`*(a, b: VkValidationCacheEXT): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkAccelerationStructureKHR): string = + "VkAccelerationStructureKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkAccelerationStructureKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkAccelerationStructureKHR) = + handle = VkAccelerationStructureKHR(0) + +proc `==`*(a, b: VkAccelerationStructureKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkAccelerationStructureNV): string = + "VkAccelerationStructureNV(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkAccelerationStructureNV): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkAccelerationStructureNV) = + handle = VkAccelerationStructureNV(0) + +proc `==`*(a, b: VkAccelerationStructureNV): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkPerformanceConfigurationINTEL): string = + "VkPerformanceConfigurationINTEL(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkPerformanceConfigurationINTEL): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkPerformanceConfigurationINTEL) = + handle = VkPerformanceConfigurationINTEL(0) + +proc `==`*(a, b: VkPerformanceConfigurationINTEL): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkBufferCollectionFUCHSIA): string = + "VkBufferCollectionFUCHSIA(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkBufferCollectionFUCHSIA): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkBufferCollectionFUCHSIA) = + handle = VkBufferCollectionFUCHSIA(0) + +proc `==`*(a, b: VkBufferCollectionFUCHSIA): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDeferredOperationKHR): string = + "VkDeferredOperationKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDeferredOperationKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDeferredOperationKHR) = + handle = VkDeferredOperationKHR(0) + +proc `==`*(a, b: VkDeferredOperationKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkPrivateDataSlot): string = + "VkPrivateDataSlot(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkPrivateDataSlot): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkPrivateDataSlot) = + handle = VkPrivateDataSlot(0) + +proc `==`*(a, b: VkPrivateDataSlot): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkCuModuleNVX): string = + "VkCuModuleNVX(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkCuModuleNVX): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkCuModuleNVX) = + handle = VkCuModuleNVX(0) + +proc `==`*(a, b: VkCuModuleNVX): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkCuFunctionNVX): string = + "VkCuFunctionNVX(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkCuFunctionNVX): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkCuFunctionNVX) = + handle = VkCuFunctionNVX(0) + +proc `==`*(a, b: VkCuFunctionNVX): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkOpticalFlowSessionNV): string = + "VkOpticalFlowSessionNV(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkOpticalFlowSessionNV): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkOpticalFlowSessionNV) = + handle = VkOpticalFlowSessionNV(0) + +proc `==`*(a, b: VkOpticalFlowSessionNV): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkMicromapEXT): string = + "VkMicromapEXT(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkMicromapEXT): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkMicromapEXT) = + handle = VkMicromapEXT(0) + +proc `==`*(a, b: VkMicromapEXT): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDisplayKHR): string = + "VkDisplayKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDisplayKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDisplayKHR) = + handle = VkDisplayKHR(0) + +proc `==`*(a, b: VkDisplayKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDisplayModeKHR): string = + "VkDisplayModeKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDisplayModeKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDisplayModeKHR) = + handle = VkDisplayModeKHR(0) + +proc `==`*(a, b: VkDisplayModeKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkSurfaceKHR): string = + "VkSurfaceKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkSurfaceKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkSurfaceKHR) = + handle = VkSurfaceKHR(0) + +proc `==`*(a, b: VkSurfaceKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkSwapchainKHR): string = + "VkSwapchainKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkSwapchainKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkSwapchainKHR) = + handle = VkSwapchainKHR(0) + +proc `==`*(a, b: VkSwapchainKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDebugReportCallbackEXT): string = + "VkDebugReportCallbackEXT(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDebugReportCallbackEXT): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDebugReportCallbackEXT) = + handle = VkDebugReportCallbackEXT(0) + +proc `==`*(a, b: VkDebugReportCallbackEXT): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkDebugUtilsMessengerEXT): string = + "VkDebugUtilsMessengerEXT(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkDebugUtilsMessengerEXT): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkDebugUtilsMessengerEXT) = + handle = VkDebugUtilsMessengerEXT(0) + +proc `==`*(a, b: VkDebugUtilsMessengerEXT): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkVideoSessionKHR): string = + "VkVideoSessionKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkVideoSessionKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkVideoSessionKHR) = + handle = VkVideoSessionKHR(0) + +proc `==`*(a, b: VkVideoSessionKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkVideoSessionParametersKHR): string = + "VkVideoSessionParametersKHR(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkVideoSessionParametersKHR): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkVideoSessionParametersKHR) = + handle = VkVideoSessionParametersKHR(0) + +proc `==`*(a, b: VkVideoSessionParametersKHR): bool = + uint(a) == uint(b) + +proc `$`*(handle: VkSemaphoreSciSyncPoolNV): string = + "VkSemaphoreSciSyncPoolNV(" & $(uint(handle)) & ")" + +proc Valid*(handle: VkSemaphoreSciSyncPoolNV): bool = + uint(handle) != 0 + +proc Reset*(handle: var VkSemaphoreSciSyncPoolNV) = + handle = VkSemaphoreSciSyncPoolNV(0) + +proc `==`*(a, b: VkSemaphoreSciSyncPoolNV): bool = + uint(a) == uint(b) + type VkFramebufferCreateFlags* = distinct VkFlags VkQueryPoolCreateFlags* = distinct VkFlags @@ -495,7 +885,10 @@ VkVideoEncodeH265OutputModeFlagsEXT* = distinct VkFlags VkVideoEncodeH265CtbSizeFlagsEXT* = distinct VkFlags VkVideoEncodeH265TransformBlockSizeFlagsEXT* = distinct VkFlags -let vkGetInstanceProcAddr = cast[proc(instance: VkInstance, name: cstring): pointer {.stdcall.}](checkedSymAddr(vulkanLib, "vkGetInstanceProcAddr")) + +let vkGetInstanceProcAddr = cast[proc(instance: VkInstance, name: cstring): pointer {. + stdcall +.}](checkedSymAddr(vulkanLib, "vkGetInstanceProcAddr")) type VkImageLayout* {.size: sizeof(cint).} = enum VK_IMAGE_LAYOUT_UNDEFINED = 0 @@ -526,23 +919,28 @@ VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000 + VkAttachmentLoadOp* {.size: sizeof(cint).} = enum VK_ATTACHMENT_LOAD_OP_LOAD = 0 VK_ATTACHMENT_LOAD_OP_CLEAR = 1 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2 VK_ATTACHMENT_LOAD_OP_NONE_EXT = 1000400000 + VkAttachmentStoreOp* {.size: sizeof(cint).} = enum VK_ATTACHMENT_STORE_OP_STORE = 0 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1 VK_ATTACHMENT_STORE_OP_NONE = 1000301000 + VkImageType* {.size: sizeof(cint).} = enum VK_IMAGE_TYPE_1D = 0 VK_IMAGE_TYPE_2D = 1 VK_IMAGE_TYPE_3D = 2 + VkImageTiling* {.size: sizeof(cint).} = enum VK_IMAGE_TILING_OPTIMAL = 0 VK_IMAGE_TILING_LINEAR = 1 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000 + VkImageViewType* {.size: sizeof(cint).} = enum VK_IMAGE_VIEW_TYPE_1D = 0 VK_IMAGE_VIEW_TYPE_2D = 1 @@ -551,9 +949,11 @@ VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6 + VkCommandBufferLevel* {.size: sizeof(cint).} = enum VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1 + VkComponentSwizzle* {.size: sizeof(cint).} = enum VK_COMPONENT_SWIZZLE_IDENTITY = 0 VK_COMPONENT_SWIZZLE_ZERO = 1 @@ -562,6 +962,7 @@ VK_COMPONENT_SWIZZLE_G = 4 VK_COMPONENT_SWIZZLE_B = 5 VK_COMPONENT_SWIZZLE_A = 6 + VkDescriptorType* {.size: sizeof(cint).} = enum VK_DESCRIPTOR_TYPE_SAMPLER = 0 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1 @@ -580,6 +981,7 @@ VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001 + VkQueryType* {.size: sizeof(cint).} = enum VK_QUERY_TYPE_OCCLUSION = 0 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1 @@ -594,10 +996,12 @@ VK_QUERY_TYPE_VIDEO_ENCODE_BITSTREAM_BUFFER_RANGE_KHR = 1000299000 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000 - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000 + VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = + 1000386000 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001 + VkBorderColor* {.size: sizeof(cint).} = enum VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1 @@ -607,26 +1011,36 @@ VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004 + VkPipelineBindPoint* {.size: sizeof(cint).} = enum VK_PIPELINE_BIND_POINT_GRAPHICS = 0 VK_PIPELINE_BIND_POINT_COMPUTE = 1 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003 + VkPipelineCacheHeaderVersion* {.size: sizeof(cint).} = enum VK_PIPELINE_CACHE_HEADER_VERSION_ONE_ENUM = 1 VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE_ENUM = 1000298001 + VkPipelineCacheCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = + 0b00000000000000000000000000000001 VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT = 0b00000000000000000000000000000010 - VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkPipelineCacheCreateFlagBits]): VkPipelineCacheCreateFlags = + VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT = + 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkPipelineCacheCreateFlagBits] +): VkPipelineCacheCreateFlags = for flag in flags: result = VkPipelineCacheCreateFlags(uint(result) or uint(flag)) func toEnums*(number: VkPipelineCacheCreateFlags): seq[VkPipelineCacheCreateFlagBits] = for value in VkPipelineCacheCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineCacheCreateFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkPipelineCacheCreateFlags): bool = + cint(a) == cint(b) + type VkPrimitiveTopology* {.size: sizeof(cint).} = enum VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0 @@ -640,27 +1054,33 @@ VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10 + VkSharingMode* {.size: sizeof(cint).} = enum VK_SHARING_MODE_EXCLUSIVE = 0 VK_SHARING_MODE_CONCURRENT = 1 + VkIndexType* {.size: sizeof(cint).} = enum VK_INDEX_TYPE_UINT16 = 0 VK_INDEX_TYPE_UINT32 = 1 VK_INDEX_TYPE_NONE_KHR = 1000165000 VK_INDEX_TYPE_UINT8_EXT = 1000265000 + VkFilter* {.size: sizeof(cint).} = enum VK_FILTER_NEAREST = 0 VK_FILTER_LINEAR = 1 VK_FILTER_CUBIC_EXT = 1000015000 + VkSamplerMipmapMode* {.size: sizeof(cint).} = enum VK_SAMPLER_MIPMAP_MODE_NEAREST = 0 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1 + VkSamplerAddressMode* {.size: sizeof(cint).} = enum VK_SAMPLER_ADDRESS_MODE_REPEAT = 0 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4 + VkCompareOp* {.size: sizeof(cint).} = enum VK_COMPARE_OP_NEVER = 0 VK_COMPARE_OP_LESS = 1 @@ -670,14 +1090,17 @@ VK_COMPARE_OP_NOT_EQUAL = 5 VK_COMPARE_OP_GREATER_OR_EQUAL = 6 VK_COMPARE_OP_ALWAYS = 7 + VkPolygonMode* {.size: sizeof(cint).} = enum VK_POLYGON_MODE_FILL = 0 VK_POLYGON_MODE_LINE = 1 VK_POLYGON_MODE_POINT = 2 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000 + VkFrontFace* {.size: sizeof(cint).} = enum VK_FRONT_FACE_COUNTER_CLOCKWISE = 0 VK_FRONT_FACE_CLOCKWISE = 1 + VkBlendFactor* {.size: sizeof(cint).} = enum VK_BLEND_FACTOR_ZERO = 0 VK_BLEND_FACTOR_ONE = 1 @@ -698,6 +1121,7 @@ VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16 VK_BLEND_FACTOR_SRC1_ALPHA = 17 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18 + VkBlendOp* {.size: sizeof(cint).} = enum VK_BLEND_OP_ADD = 0 VK_BLEND_OP_SUBTRACT = 1 @@ -750,6 +1174,7 @@ VK_BLEND_OP_RED_EXT = 1000148043 VK_BLEND_OP_GREEN_EXT = 1000148044 VK_BLEND_OP_BLUE_EXT = 1000148045 + VkStencilOp* {.size: sizeof(cint).} = enum VK_STENCIL_OP_KEEP = 0 VK_STENCIL_OP_ZERO = 1 @@ -759,6 +1184,7 @@ VK_STENCIL_OP_INVERT = 5 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7 + VkLogicOp* {.size: sizeof(cint).} = enum VK_LOGIC_OP_CLEAR = 0 VK_LOGIC_OP_AND = 1 @@ -776,23 +1202,28 @@ VK_LOGIC_OP_OR_INVERTED = 13 VK_LOGIC_OP_NAND = 14 VK_LOGIC_OP_SET = 15 + VkInternalAllocationType* {.size: sizeof(cint).} = enum VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0 + VkSystemAllocationScope* {.size: sizeof(cint).} = enum VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4 + VkPhysicalDeviceType* {.size: sizeof(cint).} = enum VK_PHYSICAL_DEVICE_TYPE_OTHER = 0 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3 VK_PHYSICAL_DEVICE_TYPE_CPU = 4 + VkVertexInputRate* {.size: sizeof(cint).} = enum VK_VERTEX_INPUT_RATE_VERTEX = 0 VK_VERTEX_INPUT_RATE_INSTANCE = 1 + VkFormat* {.size: sizeof(cint).} = enum VK_FORMAT_UNDEFINED = 0 VK_FORMAT_R4G4_UNORM_PACK8 = 1 @@ -1072,6 +1503,7 @@ VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001 VK_FORMAT_R16G16_S10_5_NV = 1000464000 + VkStructureType* {.size: sizeof(cint).} = enum VK_STRUCTURE_TYPE_APPLICATION_INFO = 0 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1 @@ -1285,7 +1717,8 @@ VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = + 1000081000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000 @@ -1300,14 +1733,18 @@ VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = + 1000097000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = + 1000101000 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = + 1000101001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = + 1000102001 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001 @@ -1388,7 +1825,8 @@ VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = + 1000148001 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000 @@ -1431,14 +1869,18 @@ VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003 - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = + 1000161003 + VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = + 1000161004 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = + 1000164000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = + 1000164005 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003 @@ -1450,14 +1892,17 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000 - VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = + 1000166000 + VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = + 1000166001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = 1000174000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = + 1000175000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001 @@ -1474,7 +1919,8 @@ VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = + 1000190000 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000 @@ -1483,12 +1929,15 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = + 1000201000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = + 1000203000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000 - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000 + VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = + 1000205000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001 @@ -1498,7 +1947,8 @@ VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = + 1000209000 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002 @@ -1517,7 +1967,8 @@ VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000 - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = + 1000225001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001 @@ -1526,13 +1977,16 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = + 1000234000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = + 1000240000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = + 1000241000 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000 @@ -1548,11 +2002,14 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = + 1000251000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = + 1000253000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000 - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001 + VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = + 1000254001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001 @@ -1569,7 +2026,8 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = + 1000269000 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003 @@ -1585,8 +2043,10 @@ VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = 1000275003 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = 1000275004 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = 1000275005 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = + 1000276000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = + 1000277000 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003 @@ -1594,13 +2054,15 @@ VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = + 1000278000 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001 - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000 + VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = + 1000282000 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001 @@ -1619,7 +2081,8 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = + 1000297000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES = 1000298000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES = 1000298001 VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO = 1000298002 @@ -1661,7 +2124,8 @@ VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = + 1000316001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004 @@ -1669,31 +2133,45 @@ VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = + 1000316009 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011 - VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001 + VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = + 1000316012 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = + 1000320000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = + 1000320001 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001 - VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002 - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = + 1000321000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = + 1000322000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = + 1000323000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = + 1000325000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = + 1000326000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = + 1000326001 + VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = + 1000326002 + VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = + 1000327000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = + 1000330000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = + 1000336000 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002 @@ -1705,17 +2183,20 @@ VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = + 1000338000 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = 1000338002 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = 1000338003 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = + 1000339000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = + 1000342000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000 @@ -1723,7 +2204,8 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = + 1000352000 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000 @@ -1731,7 +2213,8 @@ VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = + 1000356000 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001 @@ -1769,15 +2252,18 @@ VK_STRUCTURE_TYPE_MEMORY_GET_SCI_BUF_INFO_NV = 1000374002 VK_STRUCTURE_TYPE_MEMORY_SCI_BUF_PROPERTIES_NV = 1000374003 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCI_BUF_FEATURES_NV = 1000374004 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = + 1000376000 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = + 1000382000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = + 1000386000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = 1000388000 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = 1000388001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000 @@ -1795,11 +2281,15 @@ VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = + 1000404000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = + 1000404001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000 - VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000 + VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = + 1000411001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = + 1000412000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002 @@ -1807,13 +2297,16 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = + 1000420000 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = 1000421000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = 1000425000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = 1000425001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = + 1000425000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = + 1000425001 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = 1000425002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = 1000426001 @@ -1821,12 +2314,14 @@ VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000 VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT = 1000435000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = + 1000437000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = + 1000455001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002 @@ -1834,8 +2329,10 @@ VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001 - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = + 1000462001 + VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = + 1000462002 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001 @@ -1845,26 +2342,36 @@ VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = 1000466000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = + 1000466000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = + 1000488000 VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_POOL_CREATE_INFO_NV = 1000489000 VK_STRUCTURE_TYPE_SEMAPHORE_SCI_SYNC_CREATE_INFO_NV = 1000489001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SCI_SYNC_2_FEATURES_NV = 1000489002 - VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV = 1000489003 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001 + VK_STRUCTURE_TYPE_DEVICE_SEMAPHORE_SCI_SYNC_POOL_RESERVATION_CREATE_INFO_NV = + 1000489003 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = + 1000490000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = + 1000490001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000 - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000 - VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = + 1000498000 + VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = + 1000510000 + VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = + 1000510001 + VkSubpassContents* {.size: sizeof(cint).} = enum VK_SUBPASS_CONTENTS_INLINE = 0 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1 + VkResult* {.size: sizeof(cint).} = enum VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000 VK_ERROR_NO_PIPELINE_MATCH = -1000298001 @@ -1913,6 +2420,7 @@ VK_OPERATION_DEFERRED_KHR = 1000268002 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003 VK_PIPELINE_COMPILE_REQUIRED = 1000297000 + VkDynamicState* {.size: sizeof(cint).} = enum VK_DYNAMIC_STATE_VIEWPORT = 0 VK_DYNAMIC_STATE_SCISSOR = 1 @@ -1985,9 +2493,11 @@ VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032 + VkDescriptorUpdateTemplateType* {.size: sizeof(cint).} = enum VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1 + VkObjectType* {.size: sizeof(cint).} = enum VK_OBJECT_TYPE_UNKNOWN = 0 VK_OBJECT_TYPE_INSTANCE = 1 @@ -2038,12 +2548,15 @@ VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000 VK_OBJECT_TYPE_SEMAPHORE_SCI_SYNC_POOL_NV = 1000489000 + VkRayTracingInvocationReorderModeNV* {.size: sizeof(cint).} = enum VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1 + VkDirectDriverLoadingModeLUNARG* {.size: sizeof(cint).} = enum VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1 + VkQueueFlagBits* {.size: sizeof(cint).} = enum VK_QUEUE_GRAPHICS_BIT = 0b00000000000000000000000000000001 VK_QUEUE_COMPUTE_BIT = 0b00000000000000000000000000000010 @@ -2055,6 +2568,7 @@ VK_QUEUE_RESERVED_7_BIT_QCOM = 0b00000000000000000000000010000000 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0b00000000000000000000000100000000 VK_QUEUE_RESERVED_9_BIT_EXT = 0b00000000000000000000001000000000 + func toBits*(flags: openArray[VkQueueFlagBits]): VkQueueFlags = for flag in flags: result = VkQueueFlags(uint(result) or uint(flag)) @@ -2062,11 +2576,13 @@ for value in VkQueueFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkQueueFlags): bool = cint(a) == cint(b) -type - VkCullModeFlagBits* {.size: sizeof(cint).} = enum - VK_CULL_MODE_FRONT_BIT = 0b00000000000000000000000000000001 - VK_CULL_MODE_BACK_BIT = 0b00000000000000000000000000000010 +proc `==`*(a, b: VkQueueFlags): bool = + cint(a) == cint(b) + +type VkCullModeFlagBits* {.size: sizeof(cint).} = enum + VK_CULL_MODE_FRONT_BIT = 0b00000000000000000000000000000001 + VK_CULL_MODE_BACK_BIT = 0b00000000000000000000000000000010 + func toBits*(flags: openArray[VkCullModeFlagBits]): VkCullModeFlags = for flag in flags: result = VkCullModeFlags(uint(result) or uint(flag)) @@ -2074,14 +2590,16 @@ for value in VkCullModeFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkCullModeFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkCullModeFlags): bool = + cint(a) == cint(b) + const VK_CULL_MODE_NONE* = 0 VK_CULL_MODE_FRONT_AND_BACK* = 0x00000003 -type - VkRenderPassCreateFlagBits* {.size: sizeof(cint).} = enum - VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR = 0b00000000000000000000000000000001 - VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0b00000000000000000000000000000010 +type VkRenderPassCreateFlagBits* {.size: sizeof(cint).} = enum + VK_RENDER_PASS_CREATE_RESERVED_0_BIT_KHR = 0b00000000000000000000000000000001 + VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0b00000000000000000000000000000010 + func toBits*(flags: openArray[VkRenderPassCreateFlagBits]): VkRenderPassCreateFlags = for flag in flags: result = VkRenderPassCreateFlags(uint(result) or uint(flag)) @@ -2089,11 +2607,13 @@ for value in VkRenderPassCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkRenderPassCreateFlags): bool = cint(a) == cint(b) -type - VkDeviceQueueCreateFlagBits* {.size: sizeof(cint).} = enum - VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000001 - VK_DEVICE_QUEUE_CREATE_RESERVED_1_BIT_QCOM = 0b00000000000000000000000000000010 +proc `==`*(a, b: VkRenderPassCreateFlags): bool = + cint(a) == cint(b) + +type VkDeviceQueueCreateFlagBits* {.size: sizeof(cint).} = enum + VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000001 + VK_DEVICE_QUEUE_CREATE_RESERVED_1_BIT_QCOM = 0b00000000000000000000000000000010 + func toBits*(flags: openArray[VkDeviceQueueCreateFlagBits]): VkDeviceQueueCreateFlags = for flag in flags: result = VkDeviceQueueCreateFlags(uint(result) or uint(flag)) @@ -2101,18 +2621,20 @@ for value in VkDeviceQueueCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDeviceQueueCreateFlags): bool = cint(a) == cint(b) -type - VkMemoryPropertyFlagBits* {.size: sizeof(cint).} = enum - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0b00000000000000000000000000000010 - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0b00000000000000000000000000000100 - VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0b00000000000000000000000000001000 - VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0b00000000000000000000000000010000 - VK_MEMORY_PROPERTY_PROTECTED_BIT = 0b00000000000000000000000000100000 - VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0b00000000000000000000000001000000 - VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0b00000000000000000000000010000000 - VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0b00000000000000000000000100000000 +proc `==`*(a, b: VkDeviceQueueCreateFlags): bool = + cint(a) == cint(b) + +type VkMemoryPropertyFlagBits* {.size: sizeof(cint).} = enum + VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 + VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0b00000000000000000000000000000010 + VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0b00000000000000000000000000000100 + VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0b00000000000000000000000000001000 + VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0b00000000000000000000000000010000 + VK_MEMORY_PROPERTY_PROTECTED_BIT = 0b00000000000000000000000000100000 + VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0b00000000000000000000000001000000 + VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0b00000000000000000000000010000000 + VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0b00000000000000000000000100000000 + func toBits*(flags: openArray[VkMemoryPropertyFlagBits]): VkMemoryPropertyFlags = for flag in flags: result = VkMemoryPropertyFlags(uint(result) or uint(flag)) @@ -2120,12 +2642,14 @@ for value in VkMemoryPropertyFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkMemoryPropertyFlags): bool = cint(a) == cint(b) -type - VkMemoryHeapFlagBits* {.size: sizeof(cint).} = enum - VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0b00000000000000000000000000000010 - VK_MEMORY_HEAP_SEU_SAFE_BIT = 0b00000000000000000000000000000100 +proc `==`*(a, b: VkMemoryPropertyFlags): bool = + cint(a) == cint(b) + +type VkMemoryHeapFlagBits* {.size: sizeof(cint).} = enum + VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0b00000000000000000000000000000001 + VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0b00000000000000000000000000000010 + VK_MEMORY_HEAP_SEU_SAFE_BIT = 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkMemoryHeapFlagBits]): VkMemoryHeapFlags = for flag in flags: result = VkMemoryHeapFlags(uint(result) or uint(flag)) @@ -2133,37 +2657,42 @@ for value in VkMemoryHeapFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkMemoryHeapFlags): bool = cint(a) == cint(b) -type - VkAccessFlagBits* {.size: sizeof(cint).} = enum - VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0b00000000000000000000000000000001 - VK_ACCESS_INDEX_READ_BIT = 0b00000000000000000000000000000010 - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0b00000000000000000000000000000100 - VK_ACCESS_UNIFORM_READ_BIT = 0b00000000000000000000000000001000 - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0b00000000000000000000000000010000 - VK_ACCESS_SHADER_READ_BIT = 0b00000000000000000000000000100000 - VK_ACCESS_SHADER_WRITE_BIT = 0b00000000000000000000000001000000 - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0b00000000000000000000000010000000 - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0b00000000000000000000000100000000 - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b00000000000000000000001000000000 - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b00000000000000000000010000000000 - VK_ACCESS_TRANSFER_READ_BIT = 0b00000000000000000000100000000000 - VK_ACCESS_TRANSFER_WRITE_BIT = 0b00000000000000000001000000000000 - VK_ACCESS_HOST_READ_BIT = 0b00000000000000000010000000000000 - VK_ACCESS_HOST_WRITE_BIT = 0b00000000000000000100000000000000 - VK_ACCESS_MEMORY_READ_BIT = 0b00000000000000001000000000000000 - VK_ACCESS_MEMORY_WRITE_BIT = 0b00000000000000010000000000000000 - VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0b00000000000000100000000000000000 - VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b00000000000001000000000000000000 - VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0b00000000000010000000000000000000 - VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b00000000000100000000000000000000 - VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b00000000001000000000000000000000 - VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b00000000010000000000000000000000 - VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0b00000000100000000000000000000000 - VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b00000001000000000000000000000000 - VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b00000010000000000000000000000000 - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b00000100000000000000000000000000 - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0b00001000000000000000000000000000 +proc `==`*(a, b: VkMemoryHeapFlags): bool = + cint(a) == cint(b) + +type VkAccessFlagBits* {.size: sizeof(cint).} = enum + VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0b00000000000000000000000000000001 + VK_ACCESS_INDEX_READ_BIT = 0b00000000000000000000000000000010 + VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0b00000000000000000000000000000100 + VK_ACCESS_UNIFORM_READ_BIT = 0b00000000000000000000000000001000 + VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0b00000000000000000000000000010000 + VK_ACCESS_SHADER_READ_BIT = 0b00000000000000000000000000100000 + VK_ACCESS_SHADER_WRITE_BIT = 0b00000000000000000000000001000000 + VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0b00000000000000000000000010000000 + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0b00000000000000000000000100000000 + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b00000000000000000000001000000000 + VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b00000000000000000000010000000000 + VK_ACCESS_TRANSFER_READ_BIT = 0b00000000000000000000100000000000 + VK_ACCESS_TRANSFER_WRITE_BIT = 0b00000000000000000001000000000000 + VK_ACCESS_HOST_READ_BIT = 0b00000000000000000010000000000000 + VK_ACCESS_HOST_WRITE_BIT = 0b00000000000000000100000000000000 + VK_ACCESS_MEMORY_READ_BIT = 0b00000000000000001000000000000000 + VK_ACCESS_MEMORY_WRITE_BIT = 0b00000000000000010000000000000000 + VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0b00000000000000100000000000000000 + VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b00000000000001000000000000000000 + VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = + 0b00000000000010000000000000000000 + VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b00000000000100000000000000000000 + VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b00000000001000000000000000000000 + VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b00000000010000000000000000000000 + VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = + 0b00000000100000000000000000000000 + VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b00000001000000000000000000000000 + VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b00000010000000000000000000000000 + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b00000100000000000000000000000000 + VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = + 0b00001000000000000000000000000000 + func toBits*(flags: openArray[VkAccessFlagBits]): VkAccessFlags = for flag in flags: result = VkAccessFlags(uint(result) or uint(flag)) @@ -2171,36 +2700,44 @@ for value in VkAccessFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkAccessFlags): bool = cint(a) == cint(b) -type - VkBufferUsageFlagBits* {.size: sizeof(cint).} = enum - VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 - VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 - VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000000100 - VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0b00000000000000000000000000010000 - VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0b00000000000000000000000000100000 - VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0b00000000000000000000000001000000 - VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0b00000000000000000000000010000000 - VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0b00000000000000000000000100000000 - VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000000000000001000000000 - VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0b00000000000000000000010000000000 - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0b00000000000000000000100000000000 - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0b00000000000000000001000000000000 - VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000010000000000000 - VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000100000000000000 - VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000001000000000000000 - VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000010000000000000000 - VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0b00000000000000100000000000000000 - VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM = 0b00000000000001000000000000000000 - VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0b00000000000010000000000000000000 - VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0b00000000000100000000000000000000 - VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000001000000000000000000000 - VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000010000000000000000000000 - VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0b00000000100000000000000000000000 - VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0b00000001000000000000000000000000 - VK_BUFFER_USAGE_RESERVED_25_BIT_AMD = 0b00000010000000000000000000000000 - VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000100000000000000000000000000 +proc `==`*(a, b: VkAccessFlags): bool = + cint(a) == cint(b) + +type VkBufferUsageFlagBits* {.size: sizeof(cint).} = enum + VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 + VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 + VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000000100 + VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 + VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0b00000000000000000000000000010000 + VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0b00000000000000000000000000100000 + VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0b00000000000000000000000001000000 + VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0b00000000000000000000000010000000 + VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0b00000000000000000000000100000000 + VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000000000000001000000000 + VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0b00000000000000000000010000000000 + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0b00000000000000000000100000000000 + VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = + 0b00000000000000000001000000000000 + VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000010000000000000 + VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000100000000000000 + VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000001000000000000000 + VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000010000000000000000 + VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0b00000000000000100000000000000000 + VK_BUFFER_USAGE_RESERVED_18_BIT_QCOM = 0b00000000000001000000000000000000 + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = + 0b00000000000010000000000000000000 + VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = + 0b00000000000100000000000000000000 + VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000001000000000000000000000 + VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = + 0b00000000010000000000000000000000 + VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = + 0b00000000100000000000000000000000 + VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0b00000001000000000000000000000000 + VK_BUFFER_USAGE_RESERVED_25_BIT_AMD = 0b00000010000000000000000000000000 + VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = + 0b00000100000000000000000000000000 + func toBits*(flags: openArray[VkBufferUsageFlagBits]): VkBufferUsageFlags = for flag in flags: result = VkBufferUsageFlags(uint(result) or uint(flag)) @@ -2208,15 +2745,19 @@ for value in VkBufferUsageFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkBufferUsageFlags): bool = cint(a) == cint(b) -type - VkBufferCreateFlagBits* {.size: sizeof(cint).} = enum - VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 - VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 - VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 - VK_BUFFER_CREATE_PROTECTED_BIT = 0b00000000000000000000000000001000 - VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0b00000000000000000000000000010000 - VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000100000 +proc `==`*(a, b: VkBufferUsageFlags): bool = + cint(a) == cint(b) + +type VkBufferCreateFlagBits* {.size: sizeof(cint).} = enum + VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 + VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 + VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 + VK_BUFFER_CREATE_PROTECTED_BIT = 0b00000000000000000000000000001000 + VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = + 0b00000000000000000000000000010000 + VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = + 0b00000000000000000000000000100000 + func toBits*(flags: openArray[VkBufferCreateFlagBits]): VkBufferCreateFlags = for flag in flags: result = VkBufferCreateFlags(uint(result) or uint(flag)) @@ -2224,28 +2765,30 @@ for value in VkBufferCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkBufferCreateFlags): bool = cint(a) == cint(b) -type - VkShaderStageFlagBits* {.size: sizeof(cint).} = enum - VK_SHADER_STAGE_VERTEX_BIT = 0b00000000000000000000000000000001 - VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0b00000000000000000000000000000010 - VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0b00000000000000000000000000000100 - VK_SHADER_STAGE_GEOMETRY_BIT = 0b00000000000000000000000000001000 - VK_SHADER_STAGE_FRAGMENT_BIT = 0b00000000000000000000000000010000 - VK_SHADER_STAGE_COMPUTE_BIT = 0b00000000000000000000000000100000 - VK_SHADER_STAGE_TASK_BIT_EXT = 0b00000000000000000000000001000000 - VK_SHADER_STAGE_MESH_BIT_EXT = 0b00000000000000000000000010000000 - VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0b00000000000000000000000100000000 - VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0b00000000000000000000001000000000 - VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0b00000000000000000000010000000000 - VK_SHADER_STAGE_MISS_BIT_KHR = 0b00000000000000000000100000000000 - VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0b00000000000000000001000000000000 - VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0b00000000000000000010000000000000 - VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0b00000000000000000100000000000000 - VK_SHADER_STAGE_EXT_483_RESERVE_15 = 0b00000000000000001000000000000000 - VK_SHADER_STAGE_EXT_483_RESERVE_16 = 0b00000000000000010000000000000000 - VK_SHADER_STAGE_EXT_483_RESERVE_17 = 0b00000000000000100000000000000000 - VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0b00000000000010000000000000000000 +proc `==`*(a, b: VkBufferCreateFlags): bool = + cint(a) == cint(b) + +type VkShaderStageFlagBits* {.size: sizeof(cint).} = enum + VK_SHADER_STAGE_VERTEX_BIT = 0b00000000000000000000000000000001 + VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0b00000000000000000000000000000010 + VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0b00000000000000000000000000000100 + VK_SHADER_STAGE_GEOMETRY_BIT = 0b00000000000000000000000000001000 + VK_SHADER_STAGE_FRAGMENT_BIT = 0b00000000000000000000000000010000 + VK_SHADER_STAGE_COMPUTE_BIT = 0b00000000000000000000000000100000 + VK_SHADER_STAGE_TASK_BIT_EXT = 0b00000000000000000000000001000000 + VK_SHADER_STAGE_MESH_BIT_EXT = 0b00000000000000000000000010000000 + VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0b00000000000000000000000100000000 + VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0b00000000000000000000001000000000 + VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0b00000000000000000000010000000000 + VK_SHADER_STAGE_MISS_BIT_KHR = 0b00000000000000000000100000000000 + VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0b00000000000000000001000000000000 + VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0b00000000000000000010000000000000 + VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0b00000000000000000100000000000000 + VK_SHADER_STAGE_EXT_483_RESERVE_15 = 0b00000000000000001000000000000000 + VK_SHADER_STAGE_EXT_483_RESERVE_16 = 0b00000000000000010000000000000000 + VK_SHADER_STAGE_EXT_483_RESERVE_17 = 0b00000000000000100000000000000000 + VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0b00000000000010000000000000000000 + func toBits*(flags: openArray[VkShaderStageFlagBits]): VkShaderStageFlags = for flag in flags: result = VkShaderStageFlags(uint(result) or uint(flag)) @@ -2253,35 +2796,38 @@ for value in VkShaderStageFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkShaderStageFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkShaderStageFlags): bool = + cint(a) == cint(b) + const VK_SHADER_STAGE_ALL_GRAPHICS* = 0x0000001F VK_SHADER_STAGE_ALL* = 0x7FFFFFFF -type - VkImageUsageFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 - VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 - VK_IMAGE_USAGE_SAMPLED_BIT = 0b00000000000000000000000000000100 - VK_IMAGE_USAGE_STORAGE_BIT = 0b00000000000000000000000000001000 - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000000010000 - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000000000100000 - VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0b00000000000000000000000001000000 - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0b00000000000000000000000010000000 - VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000000000000000000100000000 - VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000000000000000000001000000000 - VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000000010000000000 - VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000000100000000000 - VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000000000000000001000000000000 - VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000000010000000000000 - VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000000100000000000000 - VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00000000000000001000000000000000 - VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM = 0b00000000000000010000000000000000 - VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM = 0b00000000000000100000000000000000 - VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0b00000000000001000000000000000000 - VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000000000010000000000000000000 - VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0b00000000000100000000000000000000 - VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0b00000000001000000000000000000000 - VK_IMAGE_USAGE_RESERVED_22_BIT_EXT = 0b00000000010000000000000000000000 +type VkImageUsageFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0b00000000000000000000000000000001 + VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0b00000000000000000000000000000010 + VK_IMAGE_USAGE_SAMPLED_BIT = 0b00000000000000000000000000000100 + VK_IMAGE_USAGE_STORAGE_BIT = 0b00000000000000000000000000001000 + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000000010000 + VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000000000100000 + VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0b00000000000000000000000001000000 + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0b00000000000000000000000010000000 + VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = + 0b00000000000000000000000100000000 + VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000000000000000000001000000000 + VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0b00000000000000000000010000000000 + VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0b00000000000000000000100000000000 + VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000000000000000001000000000000 + VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0b00000000000000000010000000000000 + VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0b00000000000000000100000000000000 + VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00000000000000001000000000000000 + VK_IMAGE_USAGE_RESERVED_16_BIT_QCOM = 0b00000000000000010000000000000000 + VK_IMAGE_USAGE_RESERVED_17_BIT_QCOM = 0b00000000000000100000000000000000 + VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0b00000000000001000000000000000000 + VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000000000010000000000000000000 + VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0b00000000000100000000000000000000 + VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0b00000000001000000000000000000000 + VK_IMAGE_USAGE_RESERVED_22_BIT_EXT = 0b00000000010000000000000000000000 + func toBits*(flags: openArray[VkImageUsageFlagBits]): VkImageUsageFlags = for flag in flags: result = VkImageUsageFlags(uint(result) or uint(flag)) @@ -2289,29 +2835,35 @@ for value in VkImageUsageFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageUsageFlags): bool = cint(a) == cint(b) -type - VkImageCreateFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 - VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 - VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 - VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0b00000000000000000000000000001000 - VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0b00000000000000000000000000010000 - VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0b00000000000000000000000000100000 - VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0b00000000000000000000000001000000 - VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0b00000000000000000000000010000000 - VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0b00000000000000000000000100000000 - VK_IMAGE_CREATE_DISJOINT_BIT = 0b00000000000000000000001000000000 - VK_IMAGE_CREATE_ALIAS_BIT = 0b00000000000000000000010000000000 - VK_IMAGE_CREATE_PROTECTED_BIT = 0b00000000000000000000100000000000 - VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0b00000000000000000001000000000000 - VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0b00000000000000000010000000000000 - VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000100000000000000 - VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = 0b00000000000000001000000000000000 - VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000010000000000000000 - VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0b00000000000000100000000000000000 - VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0b00000000000001000000000000000000 - VK_IMAGE_CREATE_RESERVED_19_BIT_EXT = 0b00000000000010000000000000000000 +proc `==`*(a, b: VkImageUsageFlags): bool = + cint(a) == cint(b) + +type VkImageCreateFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0b00000000000000000000000000000001 + VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0b00000000000000000000000000000010 + VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0b00000000000000000000000000000100 + VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0b00000000000000000000000000001000 + VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0b00000000000000000000000000010000 + VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0b00000000000000000000000000100000 + VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0b00000000000000000000000001000000 + VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0b00000000000000000000000010000000 + VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0b00000000000000000000000100000000 + VK_IMAGE_CREATE_DISJOINT_BIT = 0b00000000000000000000001000000000 + VK_IMAGE_CREATE_ALIAS_BIT = 0b00000000000000000000010000000000 + VK_IMAGE_CREATE_PROTECTED_BIT = 0b00000000000000000000100000000000 + VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = + 0b00000000000000000001000000000000 + VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0b00000000000000000010000000000000 + VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000100000000000000 + VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = + 0b00000000000000001000000000000000 + VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = + 0b00000000000000010000000000000000 + VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0b00000000000000100000000000000000 + VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = + 0b00000000000001000000000000000000 + VK_IMAGE_CREATE_RESERVED_19_BIT_EXT = 0b00000000000010000000000000000000 + func toBits*(flags: openArray[VkImageCreateFlagBits]): VkImageCreateFlags = for flag in flags: result = VkImageCreateFlags(uint(result) or uint(flag)) @@ -2319,12 +2871,17 @@ for value in VkImageCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageCreateFlags): bool = cint(a) == cint(b) -type - VkImageViewCreateFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0b00000000000000000000000000000001 - VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0b00000000000000000000000000000010 - VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000000100 +proc `==`*(a, b: VkImageCreateFlags): bool = + cint(a) == cint(b) + +type VkImageViewCreateFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = + 0b00000000000000000000000000000001 + VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = + 0b00000000000000000000000000000010 + VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = + 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkImageViewCreateFlagBits]): VkImageViewCreateFlags = for flag in flags: result = VkImageViewCreateFlags(uint(result) or uint(flag)) @@ -2332,14 +2889,18 @@ for value in VkImageViewCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageViewCreateFlags): bool = cint(a) == cint(b) -type - VkSamplerCreateFlagBits* {.size: sizeof(cint).} = enum - VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000000000000000001 - VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0b00000000000000000000000000000010 - VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0b00000000000000000000000000000100 - VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000001000 - VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0b00000000000000000000000000010000 +proc `==`*(a, b: VkImageViewCreateFlags): bool = + cint(a) == cint(b) + +type VkSamplerCreateFlagBits* {.size: sizeof(cint).} = enum + VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0b00000000000000000000000000000001 + VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = + 0b00000000000000000000000000000010 + VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0b00000000000000000000000000000100 + VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = + 0b00000000000000000000000000001000 + VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0b00000000000000000000000000010000 + func toBits*(flags: openArray[VkSamplerCreateFlagBits]): VkSamplerCreateFlags = for flag in flags: result = VkSamplerCreateFlags(uint(result) or uint(flag)) @@ -2347,40 +2908,58 @@ for value in VkSamplerCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSamplerCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0b00000000000000000000000000000100 - VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0b00000000000000000000000000001000 - VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0b00000000000000000000000000010000 - VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0b00000000000000000000000000100000 - VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0b00000000000000000000000001000000 - VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0b00000000000000000000000010000000 - VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0b00000000000000000000000100000000 - VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0b00000000000000000000001000000000 - VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0b00000000000000000000010000000000 - VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0b00000000000000000000100000000000 - VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0b00000000000000000001000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0b00000000000000000010000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0b00000000000000000100000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0b00000000000000001000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0b00000000000000010000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0b00000000000000100000000000000000 - VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0b00000000000001000000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0b00000000000010000000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0b00000000000100000000000000000000 - VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000001000000000000000000000 - VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0b00000000010000000000000000000000 - VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0b00000000100000000000000000000000 - VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0b00000001000000000000000000000000 - VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000010000000000000000000000000 - VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0b00000100000000000000000000000000 - VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0b00001000000000000000000000000000 - VK_PIPELINE_CREATE_RESERVED_BIT_28_NV = 0b00010000000000000000000000000000 - VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00100000000000000000000000000000 - VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0b01000000000000000000000000000000 +proc `==`*(a, b: VkSamplerCreateFlags): bool = + cint(a) == cint(b) + +type VkPipelineCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0b00000000000000000000000000000010 + VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0b00000000000000000000000000000100 + VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = + 0b00000000000000000000000000001000 + VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0b00000000000000000000000000010000 + VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0b00000000000000000000000000100000 + VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0b00000000000000000000000001000000 + VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = + 0b00000000000000000000000010000000 + VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = + 0b00000000000000000000000100000000 + VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0b00000000000000000000001000000000 + VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0b00000000000000000000010000000000 + VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0b00000000000000000000100000000000 + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = + 0b00000000000000000001000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0b00000000000000000010000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = + 0b00000000000000000100000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = + 0b00000000000000001000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = + 0b00000000000000010000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = + 0b00000000000000100000000000000000 + VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0b00000000000001000000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = + 0b00000000000010000000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = + 0b00000000000100000000000000000000 + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = + 0b00000000001000000000000000000000 + VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = + 0b00000000010000000000000000000000 + VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = + 0b00000000100000000000000000000000 + VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = + 0b00000001000000000000000000000000 + VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = + 0b00000010000000000000000000000000 + VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = + 0b00000100000000000000000000000000 + VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = 0b00001000000000000000000000000000 + VK_PIPELINE_CREATE_RESERVED_BIT_28_NV = 0b00010000000000000000000000000000 + VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00100000000000000000000000000000 + VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = 0b01000000000000000000000000000000 + func toBits*(flags: openArray[VkPipelineCreateFlagBits]): VkPipelineCreateFlags = for flag in flags: result = VkPipelineCreateFlags(uint(result) or uint(flag)) @@ -2388,26 +2967,37 @@ for value in VkPipelineCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineShaderStageCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkPipelineShaderStageCreateFlagBits]): VkPipelineShaderStageCreateFlags = +proc `==`*(a, b: VkPipelineCreateFlags): bool = + cint(a) == cint(b) + +type VkPipelineShaderStageCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = + 0b00000000000000000000000000000001 + VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = + 0b00000000000000000000000000000010 + VK_PIPELINE_SHADER_STAGE_CREATE_RESERVED_3_BIT_KHR = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkPipelineShaderStageCreateFlagBits] +): VkPipelineShaderStageCreateFlags = for flag in flags: result = VkPipelineShaderStageCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineShaderStageCreateFlags): seq[VkPipelineShaderStageCreateFlagBits] = +func toEnums*( + number: VkPipelineShaderStageCreateFlags +): seq[VkPipelineShaderStageCreateFlagBits] = for value in VkPipelineShaderStageCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineShaderStageCreateFlags): bool = cint(a) == cint(b) -type - VkColorComponentFlagBits* {.size: sizeof(cint).} = enum - VK_COLOR_COMPONENT_R_BIT = 0b00000000000000000000000000000001 - VK_COLOR_COMPONENT_G_BIT = 0b00000000000000000000000000000010 - VK_COLOR_COMPONENT_B_BIT = 0b00000000000000000000000000000100 - VK_COLOR_COMPONENT_A_BIT = 0b00000000000000000000000000001000 +proc `==`*(a, b: VkPipelineShaderStageCreateFlags): bool = + cint(a) == cint(b) + +type VkColorComponentFlagBits* {.size: sizeof(cint).} = enum + VK_COLOR_COMPONENT_R_BIT = 0b00000000000000000000000000000001 + VK_COLOR_COMPONENT_G_BIT = 0b00000000000000000000000000000010 + VK_COLOR_COMPONENT_B_BIT = 0b00000000000000000000000000000100 + VK_COLOR_COMPONENT_A_BIT = 0b00000000000000000000000000001000 + func toBits*(flags: openArray[VkColorComponentFlagBits]): VkColorComponentFlags = for flag in flags: result = VkColorComponentFlags(uint(result) or uint(flag)) @@ -2415,10 +3005,12 @@ for value in VkColorComponentFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkColorComponentFlags): bool = cint(a) == cint(b) -type - VkFenceCreateFlagBits* {.size: sizeof(cint).} = enum - VK_FENCE_CREATE_SIGNALED_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkColorComponentFlags): bool = + cint(a) == cint(b) + +type VkFenceCreateFlagBits* {.size: sizeof(cint).} = enum + VK_FENCE_CREATE_SIGNALED_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkFenceCreateFlagBits]): VkFenceCreateFlags = for flag in flags: result = VkFenceCreateFlags(uint(result) or uint(flag)) @@ -2426,40 +3018,49 @@ for value in VkFenceCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkFenceCreateFlags): bool = cint(a) == cint(b) -type - VkFormatFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0b00000000000000000000000000000001 - VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0b00000000000000000000000000000010 - VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0b00000000000000000000000000000100 - VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000010000 - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b00000000000000000000000000100000 - VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0b00000000000000000000000001000000 - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000010000000 - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0b00000000000000000000000100000000 - VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000001000000000 - VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0b00000000000000000000010000000000 - VK_FORMAT_FEATURE_BLIT_DST_BIT = 0b00000000000000000000100000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b00000000000000000001000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0b00000000000000000010000000000000 - VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0b00000000000000000100000000000000 - VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0b00000000000000001000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b00000000000000010000000000000000 - VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0b00000000000000100000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0b00000000000001000000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0b00000000000010000000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0b00000000000100000000000000000000 - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0b00000000001000000000000000000000 - VK_FORMAT_FEATURE_DISJOINT_BIT = 0b00000000010000000000000000000000 - VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0b00000000100000000000000000000000 - VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000001000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b00000010000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000100000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0b00001000000000000000000000000000 - VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00010000000000000000000000000000 - VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0b00100000000000000000000000000000 - VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b01000000000000000000000000000000 +proc `==`*(a, b: VkFenceCreateFlags): bool = + cint(a) == cint(b) + +type VkFormatFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0b00000000000000000000000000000001 + VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0b00000000000000000000000000000010 + VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0b00000000000000000000000000000100 + VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0b00000000000000000000000000001000 + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0b00000000000000000000000000010000 + VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b00000000000000000000000000100000 + VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0b00000000000000000000000001000000 + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0b00000000000000000000000010000000 + VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0b00000000000000000000000100000000 + VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0b00000000000000000000001000000000 + VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0b00000000000000000000010000000000 + VK_FORMAT_FEATURE_BLIT_DST_BIT = 0b00000000000000000000100000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b00000000000000000001000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = + 0b00000000000000000010000000000000 + VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0b00000000000000000100000000000000 + VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0b00000000000000001000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b00000000000000010000000000000000 + VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0b00000000000000100000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = + 0b00000000000001000000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = + 0b00000000000010000000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = + 0b00000000000100000000000000000000 + VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = + 0b00000000001000000000000000000000 + VK_FORMAT_FEATURE_DISJOINT_BIT = 0b00000000010000000000000000000000 + VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0b00000000100000000000000000000000 + VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b00000001000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b00000010000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0b00000100000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0b00001000000000000000000000000000 + VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0b00010000000000000000000000000000 + VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = + 0b00100000000000000000000000000000 + VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = + 0b01000000000000000000000000000000 + func toBits*(flags: openArray[VkFormatFeatureFlagBits]): VkFormatFeatureFlags = for flag in flags: result = VkFormatFeatureFlags(uint(result) or uint(flag)) @@ -2467,10 +3068,12 @@ for value in VkFormatFeatureFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkFormatFeatureFlags): bool = cint(a) == cint(b) -type - VkQueryControlFlagBits* {.size: sizeof(cint).} = enum - VK_QUERY_CONTROL_PRECISE_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkFormatFeatureFlags): bool = + cint(a) == cint(b) + +type VkQueryControlFlagBits* {.size: sizeof(cint).} = enum + VK_QUERY_CONTROL_PRECISE_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkQueryControlFlagBits]): VkQueryControlFlags = for flag in flags: result = VkQueryControlFlags(uint(result) or uint(flag)) @@ -2478,14 +3081,16 @@ for value in VkQueryControlFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkQueryControlFlags): bool = cint(a) == cint(b) -type - VkQueryResultFlagBits* {.size: sizeof(cint).} = enum - VK_QUERY_RESULT_64_BIT = 0b00000000000000000000000000000001 - VK_QUERY_RESULT_WAIT_BIT = 0b00000000000000000000000000000010 - VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0b00000000000000000000000000000100 - VK_QUERY_RESULT_PARTIAL_BIT = 0b00000000000000000000000000001000 - VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0b00000000000000000000000000010000 +proc `==`*(a, b: VkQueryControlFlags): bool = + cint(a) == cint(b) + +type VkQueryResultFlagBits* {.size: sizeof(cint).} = enum + VK_QUERY_RESULT_64_BIT = 0b00000000000000000000000000000001 + VK_QUERY_RESULT_WAIT_BIT = 0b00000000000000000000000000000010 + VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0b00000000000000000000000000000100 + VK_QUERY_RESULT_PARTIAL_BIT = 0b00000000000000000000000000001000 + VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0b00000000000000000000000000010000 + func toBits*(flags: openArray[VkQueryResultFlagBits]): VkQueryResultFlags = for flag in flags: result = VkQueryResultFlags(uint(result) or uint(flag)) @@ -2493,57 +3098,83 @@ for value in VkQueryResultFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkQueryResultFlags): bool = cint(a) == cint(b) -type - VkCommandBufferUsageFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0b00000000000000000000000000000001 - VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0b00000000000000000000000000000010 - VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkCommandBufferUsageFlagBits]): VkCommandBufferUsageFlags = +proc `==`*(a, b: VkQueryResultFlags): bool = + cint(a) == cint(b) + +type VkCommandBufferUsageFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0b00000000000000000000000000000001 + VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0b00000000000000000000000000000010 + VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkCommandBufferUsageFlagBits] +): VkCommandBufferUsageFlags = for flag in flags: result = VkCommandBufferUsageFlags(uint(result) or uint(flag)) func toEnums*(number: VkCommandBufferUsageFlags): seq[VkCommandBufferUsageFlagBits] = for value in VkCommandBufferUsageFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkCommandBufferUsageFlags): bool = cint(a) == cint(b) -type - VkQueryPipelineStatisticFlagBits* {.size: sizeof(cint).} = enum - VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0b00000000000000000000000000000001 - VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0b00000000000000000000000000000010 - VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000000000100 - VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000000001000 - VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0b00000000000000000000000000010000 - VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0b00000000000000000000000000100000 - VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0b00000000000000000000000001000000 - VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0b00000000000000000000000010000000 - VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0b00000000000000000000000100000000 - VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0b00000000000000000000001000000000 - VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0b00000000000000000000010000000000 - VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0b00000000000000000000100000000000 - VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0b00000000000000000001000000000000 - VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0b00000000000000000010000000000000 -func toBits*(flags: openArray[VkQueryPipelineStatisticFlagBits]): VkQueryPipelineStatisticFlags = +proc `==`*(a, b: VkCommandBufferUsageFlags): bool = + cint(a) == cint(b) + +type VkQueryPipelineStatisticFlagBits* {.size: sizeof(cint).} = enum + VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = + 0b00000000000000000000000000000001 + VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = + 0b00000000000000000000000000000010 + VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = + 0b00000000000000000000000000000100 + VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = + 0b00000000000000000000000000001000 + VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = + 0b00000000000000000000000000010000 + VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = + 0b00000000000000000000000000100000 + VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = + 0b00000000000000000000000001000000 + VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = + 0b00000000000000000000000010000000 + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = + 0b00000000000000000000000100000000 + VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = + 0b00000000000000000000001000000000 + VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = + 0b00000000000000000000010000000000 + VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = + 0b00000000000000000000100000000000 + VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = + 0b00000000000000000001000000000000 + VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = + 0b00000000000000000010000000000000 + +func toBits*( + flags: openArray[VkQueryPipelineStatisticFlagBits] +): VkQueryPipelineStatisticFlags = for flag in flags: result = VkQueryPipelineStatisticFlags(uint(result) or uint(flag)) -func toEnums*(number: VkQueryPipelineStatisticFlags): seq[VkQueryPipelineStatisticFlagBits] = +func toEnums*( + number: VkQueryPipelineStatisticFlags +): seq[VkQueryPipelineStatisticFlagBits] = for value in VkQueryPipelineStatisticFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkQueryPipelineStatisticFlags): bool = cint(a) == cint(b) -type - VkImageAspectFlagBits* {.size: sizeof(cint).} = enum - VK_IMAGE_ASPECT_COLOR_BIT = 0b00000000000000000000000000000001 - VK_IMAGE_ASPECT_DEPTH_BIT = 0b00000000000000000000000000000010 - VK_IMAGE_ASPECT_STENCIL_BIT = 0b00000000000000000000000000000100 - VK_IMAGE_ASPECT_METADATA_BIT = 0b00000000000000000000000000001000 - VK_IMAGE_ASPECT_PLANE_0_BIT = 0b00000000000000000000000000010000 - VK_IMAGE_ASPECT_PLANE_1_BIT = 0b00000000000000000000000000100000 - VK_IMAGE_ASPECT_PLANE_2_BIT = 0b00000000000000000000000001000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0b00000000000000000000000010000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0b00000000000000000000000100000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0b00000000000000000000001000000000 - VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0b00000000000000000000010000000000 +proc `==`*(a, b: VkQueryPipelineStatisticFlags): bool = + cint(a) == cint(b) + +type VkImageAspectFlagBits* {.size: sizeof(cint).} = enum + VK_IMAGE_ASPECT_COLOR_BIT = 0b00000000000000000000000000000001 + VK_IMAGE_ASPECT_DEPTH_BIT = 0b00000000000000000000000000000010 + VK_IMAGE_ASPECT_STENCIL_BIT = 0b00000000000000000000000000000100 + VK_IMAGE_ASPECT_METADATA_BIT = 0b00000000000000000000000000001000 + VK_IMAGE_ASPECT_PLANE_0_BIT = 0b00000000000000000000000000010000 + VK_IMAGE_ASPECT_PLANE_1_BIT = 0b00000000000000000000000000100000 + VK_IMAGE_ASPECT_PLANE_2_BIT = 0b00000000000000000000000001000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0b00000000000000000000000010000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0b00000000000000000000000100000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0b00000000000000000000001000000000 + VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0b00000000000000000000010000000000 + func toBits*(flags: openArray[VkImageAspectFlagBits]): VkImageAspectFlags = for flag in flags: result = VkImageAspectFlags(uint(result) or uint(flag)) @@ -2551,12 +3182,14 @@ for value in VkImageAspectFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageAspectFlags): bool = cint(a) == cint(b) -type - VkSparseImageFormatFlagBits* {.size: sizeof(cint).} = enum - VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0b00000000000000000000000000000001 - VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0b00000000000000000000000000000010 - VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0b00000000000000000000000000000100 +proc `==`*(a, b: VkImageAspectFlags): bool = + cint(a) == cint(b) + +type VkSparseImageFormatFlagBits* {.size: sizeof(cint).} = enum + VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0b00000000000000000000000000000001 + VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0b00000000000000000000000000000010 + VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkSparseImageFormatFlagBits]): VkSparseImageFormatFlags = for flag in flags: result = VkSparseImageFormatFlags(uint(result) or uint(flag)) @@ -2564,10 +3197,12 @@ for value in VkSparseImageFormatFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSparseImageFormatFlags): bool = cint(a) == cint(b) -type - VkSparseMemoryBindFlagBits* {.size: sizeof(cint).} = enum - VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkSparseImageFormatFlags): bool = + cint(a) == cint(b) + +type VkSparseMemoryBindFlagBits* {.size: sizeof(cint).} = enum + VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkSparseMemoryBindFlagBits]): VkSparseMemoryBindFlags = for flag in flags: result = VkSparseMemoryBindFlags(uint(result) or uint(flag)) @@ -2575,35 +3210,41 @@ for value in VkSparseMemoryBindFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSparseMemoryBindFlags): bool = cint(a) == cint(b) -type - VkPipelineStageFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0b00000000000000000000000000000100 - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0b00000000000000000000000000001000 - VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0b00000000000000000000000000010000 - VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0b00000000000000000000000000100000 - VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0b00000000000000000000000001000000 - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0b00000000000000000000000010000000 - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0b00000000000000000000000100000000 - VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0b00000000000000000000001000000000 - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0b00000000000000000000010000000000 - VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0b00000000000000000000100000000000 - VK_PIPELINE_STAGE_TRANSFER_BIT = 0b00000000000000000001000000000000 - VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0b00000000000000000010000000000000 - VK_PIPELINE_STAGE_HOST_BIT = 0b00000000000000000100000000000000 - VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0b00000000000000001000000000000000 - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0b00000000000000010000000000000000 - VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0b00000000000000100000000000000000 - VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000001000000000000000000 - VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0b00000000000010000000000000000000 - VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0b00000000000100000000000000000000 - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0b00000000001000000000000000000000 - VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b00000000010000000000000000000000 - VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0b00000000100000000000000000000000 - VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0b00000001000000000000000000000000 - VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0b00000010000000000000000000000000 +proc `==`*(a, b: VkSparseMemoryBindFlags): bool = + cint(a) == cint(b) + +type VkPipelineStageFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0b00000000000000000000000000000010 + VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0b00000000000000000000000000000100 + VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0b00000000000000000000000000001000 + VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0b00000000000000000000000000010000 + VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = + 0b00000000000000000000000000100000 + VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0b00000000000000000000000001000000 + VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0b00000000000000000000000010000000 + VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0b00000000000000000000000100000000 + VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0b00000000000000000000001000000000 + VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0b00000000000000000000010000000000 + VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0b00000000000000000000100000000000 + VK_PIPELINE_STAGE_TRANSFER_BIT = 0b00000000000000000001000000000000 + VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0b00000000000000000010000000000000 + VK_PIPELINE_STAGE_HOST_BIT = 0b00000000000000000100000000000000 + VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0b00000000000000001000000000000000 + VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0b00000000000000010000000000000000 + VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0b00000000000000100000000000000000 + VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0b00000000000001000000000000000000 + VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0b00000000000010000000000000000000 + VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0b00000000000100000000000000000000 + VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0b00000000001000000000000000000000 + VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = + 0b00000000010000000000000000000000 + VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = + 0b00000000100000000000000000000000 + VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0b00000001000000000000000000000000 + VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = + 0b00000010000000000000000000000000 + func toBits*(flags: openArray[VkPipelineStageFlagBits]): VkPipelineStageFlags = for flag in flags: result = VkPipelineStageFlags(uint(result) or uint(flag)) @@ -2611,12 +3252,14 @@ for value in VkPipelineStageFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineStageFlags): bool = cint(a) == cint(b) -type - VkCommandPoolCreateFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0b00000000000000000000000000000001 - VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0b00000000000000000000000000000010 - VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000100 +proc `==`*(a, b: VkPipelineStageFlags): bool = + cint(a) == cint(b) + +type VkCommandPoolCreateFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0b00000000000000000000000000000001 + VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0b00000000000000000000000000000010 + VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkCommandPoolCreateFlagBits]): VkCommandPoolCreateFlags = for flag in flags: result = VkCommandPoolCreateFlags(uint(result) or uint(flag)) @@ -2624,11 +3267,13 @@ for value in VkCommandPoolCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkCommandPoolCreateFlags): bool = cint(a) == cint(b) -type - VkCommandPoolResetFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 - VK_COMMAND_POOL_RESET_RESERVED_1_BIT_COREAVI = 0b00000000000000000000000000000010 +proc `==`*(a, b: VkCommandPoolCreateFlags): bool = + cint(a) == cint(b) + +type VkCommandPoolResetFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 + VK_COMMAND_POOL_RESET_RESERVED_1_BIT_COREAVI = 0b00000000000000000000000000000010 + func toBits*(flags: openArray[VkCommandPoolResetFlagBits]): VkCommandPoolResetFlags = for flag in flags: result = VkCommandPoolResetFlags(uint(result) or uint(flag)) @@ -2636,27 +3281,33 @@ for value in VkCommandPoolResetFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkCommandPoolResetFlags): bool = cint(a) == cint(b) -type - VkCommandBufferResetFlagBits* {.size: sizeof(cint).} = enum - VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkCommandBufferResetFlagBits]): VkCommandBufferResetFlags = +proc `==`*(a, b: VkCommandPoolResetFlags): bool = + cint(a) == cint(b) + +type VkCommandBufferResetFlagBits* {.size: sizeof(cint).} = enum + VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkCommandBufferResetFlagBits] +): VkCommandBufferResetFlags = for flag in flags: result = VkCommandBufferResetFlags(uint(result) or uint(flag)) func toEnums*(number: VkCommandBufferResetFlags): seq[VkCommandBufferResetFlagBits] = for value in VkCommandBufferResetFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkCommandBufferResetFlags): bool = cint(a) == cint(b) -type - VkSampleCountFlagBits* {.size: sizeof(cint).} = enum - VK_SAMPLE_COUNT_1_BIT = 0b00000000000000000000000000000001 - VK_SAMPLE_COUNT_2_BIT = 0b00000000000000000000000000000010 - VK_SAMPLE_COUNT_4_BIT = 0b00000000000000000000000000000100 - VK_SAMPLE_COUNT_8_BIT = 0b00000000000000000000000000001000 - VK_SAMPLE_COUNT_16_BIT = 0b00000000000000000000000000010000 - VK_SAMPLE_COUNT_32_BIT = 0b00000000000000000000000000100000 - VK_SAMPLE_COUNT_64_BIT = 0b00000000000000000000000001000000 +proc `==`*(a, b: VkCommandBufferResetFlags): bool = + cint(a) == cint(b) + +type VkSampleCountFlagBits* {.size: sizeof(cint).} = enum + VK_SAMPLE_COUNT_1_BIT = 0b00000000000000000000000000000001 + VK_SAMPLE_COUNT_2_BIT = 0b00000000000000000000000000000010 + VK_SAMPLE_COUNT_4_BIT = 0b00000000000000000000000000000100 + VK_SAMPLE_COUNT_8_BIT = 0b00000000000000000000000000001000 + VK_SAMPLE_COUNT_16_BIT = 0b00000000000000000000000000010000 + VK_SAMPLE_COUNT_32_BIT = 0b00000000000000000000000000100000 + VK_SAMPLE_COUNT_64_BIT = 0b00000000000000000000000001000000 + func toBits*(flags: openArray[VkSampleCountFlagBits]): VkSampleCountFlags = for flag in flags: result = VkSampleCountFlags(uint(result) or uint(flag)) @@ -2664,22 +3315,30 @@ for value in VkSampleCountFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSampleCountFlags): bool = cint(a) == cint(b) -type - VkAttachmentDescriptionFlagBits* {.size: sizeof(cint).} = enum - VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkAttachmentDescriptionFlagBits]): VkAttachmentDescriptionFlags = +proc `==`*(a, b: VkSampleCountFlags): bool = + cint(a) == cint(b) + +type VkAttachmentDescriptionFlagBits* {.size: sizeof(cint).} = enum + VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkAttachmentDescriptionFlagBits] +): VkAttachmentDescriptionFlags = for flag in flags: result = VkAttachmentDescriptionFlags(uint(result) or uint(flag)) -func toEnums*(number: VkAttachmentDescriptionFlags): seq[VkAttachmentDescriptionFlagBits] = +func toEnums*( + number: VkAttachmentDescriptionFlags +): seq[VkAttachmentDescriptionFlagBits] = for value in VkAttachmentDescriptionFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkAttachmentDescriptionFlags): bool = cint(a) == cint(b) -type - VkStencilFaceFlagBits* {.size: sizeof(cint).} = enum - VK_STENCIL_FACE_FRONT_BIT = 0b00000000000000000000000000000001 - VK_STENCIL_FACE_BACK_BIT = 0b00000000000000000000000000000010 +proc `==`*(a, b: VkAttachmentDescriptionFlags): bool = + cint(a) == cint(b) + +type VkStencilFaceFlagBits* {.size: sizeof(cint).} = enum + VK_STENCIL_FACE_FRONT_BIT = 0b00000000000000000000000000000001 + VK_STENCIL_FACE_BACK_BIT = 0b00000000000000000000000000000010 + func toBits*(flags: openArray[VkStencilFaceFlagBits]): VkStencilFaceFlags = for flag in flags: result = VkStencilFaceFlags(uint(result) or uint(flag)) @@ -2687,28 +3346,35 @@ for value in VkStencilFaceFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkStencilFaceFlags): bool = cint(a) == cint(b) -const - VK_STENCIL_FACE_FRONT_AND_BACK* = 0x00000003 -type - VkDescriptorPoolCreateFlagBits* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0b00000000000000000000000000000001 - VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000010 - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkDescriptorPoolCreateFlagBits]): VkDescriptorPoolCreateFlags = +proc `==`*(a, b: VkStencilFaceFlags): bool = + cint(a) == cint(b) + +const VK_STENCIL_FACE_FRONT_AND_BACK* = 0x00000003 +type VkDescriptorPoolCreateFlagBits* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0b00000000000000000000000000000001 + VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000010 + VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkDescriptorPoolCreateFlagBits] +): VkDescriptorPoolCreateFlags = for flag in flags: result = VkDescriptorPoolCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDescriptorPoolCreateFlags): seq[VkDescriptorPoolCreateFlagBits] = +func toEnums*( + number: VkDescriptorPoolCreateFlags +): seq[VkDescriptorPoolCreateFlagBits] = for value in VkDescriptorPoolCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDescriptorPoolCreateFlags): bool = cint(a) == cint(b) -type - VkDependencyFlagBits* {.size: sizeof(cint).} = enum - VK_DEPENDENCY_BY_REGION_BIT = 0b00000000000000000000000000000001 - VK_DEPENDENCY_VIEW_LOCAL_BIT = 0b00000000000000000000000000000010 - VK_DEPENDENCY_DEVICE_GROUP_BIT = 0b00000000000000000000000000000100 - VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0b00000000000000000000000000001000 +proc `==`*(a, b: VkDescriptorPoolCreateFlags): bool = + cint(a) == cint(b) + +type VkDependencyFlagBits* {.size: sizeof(cint).} = enum + VK_DEPENDENCY_BY_REGION_BIT = 0b00000000000000000000000000000001 + VK_DEPENDENCY_VIEW_LOCAL_BIT = 0b00000000000000000000000000000010 + VK_DEPENDENCY_DEVICE_GROUP_BIT = 0b00000000000000000000000000000100 + VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0b00000000000000000000000000001000 + func toBits*(flags: openArray[VkDependencyFlagBits]): VkDependencyFlags = for flag in flags: result = VkDependencyFlags(uint(result) or uint(flag)) @@ -2716,13 +3382,17 @@ for value in VkDependencyFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDependencyFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkDependencyFlags): bool = + cint(a) == cint(b) + type VkSemaphoreType* {.size: sizeof(cint).} = enum VK_SEMAPHORE_TYPE_BINARY = 0 VK_SEMAPHORE_TYPE_TIMELINE = 1 + VkSemaphoreWaitFlagBits* {.size: sizeof(cint).} = enum VK_SEMAPHORE_WAIT_ANY_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkSemaphoreWaitFlagBits]): VkSemaphoreWaitFlags = for flag in flags: result = VkSemaphoreWaitFlags(uint(result) or uint(flag)) @@ -2730,7 +3400,9 @@ for value in VkSemaphoreWaitFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSemaphoreWaitFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkSemaphoreWaitFlags): bool = + cint(a) == cint(b) + type VkPresentModeKHR* {.size: sizeof(cint).} = enum VK_PRESENT_MODE_IMMEDIATE_KHR = 0 @@ -2739,6 +3411,7 @@ VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001 + VkColorSpaceKHR* {.size: sizeof(cint).} = enum VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001 @@ -2756,25 +3429,34 @@ VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000 + VkDisplayPlaneAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0b00000000000000000000000000000010 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0b00000000000000000000000000000100 - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDisplayPlaneAlphaFlagBitsKHR]): VkDisplayPlaneAlphaFlagsKHR = + VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkDisplayPlaneAlphaFlagBitsKHR] +): VkDisplayPlaneAlphaFlagsKHR = for flag in flags: result = VkDisplayPlaneAlphaFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkDisplayPlaneAlphaFlagsKHR): seq[VkDisplayPlaneAlphaFlagBitsKHR] = +func toEnums*( + number: VkDisplayPlaneAlphaFlagsKHR +): seq[VkDisplayPlaneAlphaFlagBitsKHR] = for value in VkDisplayPlaneAlphaFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDisplayPlaneAlphaFlagsKHR): bool = cint(a) == cint(b) -type - VkCompositeAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 - VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000010 - VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000100 - VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0b00000000000000000000000000001000 +proc `==`*(a, b: VkDisplayPlaneAlphaFlagsKHR): bool = + cint(a) == cint(b) + +type VkCompositeAlphaFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 + VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000010 + VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0b00000000000000000000000000000100 + VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0b00000000000000000000000000001000 + func toBits*(flags: openArray[VkCompositeAlphaFlagBitsKHR]): VkCompositeAlphaFlagsKHR = for flag in flags: result = VkCompositeAlphaFlagsKHR(uint(result) or uint(flag)) @@ -2782,49 +3464,66 @@ for value in VkCompositeAlphaFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkCompositeAlphaFlagsKHR): bool = cint(a) == cint(b) -type - VkSurfaceTransformFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0b00000000000000000000000000000001 - VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0b00000000000000000000000000000010 - VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0b00000000000000000000000000000100 - VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0b00000000000000000000000000001000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0b00000000000000000000000000010000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0b00000000000000000000000000100000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0b00000000000000000000000001000000 - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0b00000000000000000000000010000000 - VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0b00000000000000000000000100000000 -func toBits*(flags: openArray[VkSurfaceTransformFlagBitsKHR]): VkSurfaceTransformFlagsKHR = +proc `==`*(a, b: VkCompositeAlphaFlagsKHR): bool = + cint(a) == cint(b) + +type VkSurfaceTransformFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0b00000000000000000000000000000001 + VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0b00000000000000000000000000000010 + VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0b00000000000000000000000000000100 + VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0b00000000000000000000000000001000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0b00000000000000000000000000010000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = + 0b00000000000000000000000000100000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = + 0b00000000000000000000000001000000 + VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = + 0b00000000000000000000000010000000 + VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0b00000000000000000000000100000000 + +func toBits*( + flags: openArray[VkSurfaceTransformFlagBitsKHR] +): VkSurfaceTransformFlagsKHR = for flag in flags: result = VkSurfaceTransformFlagsKHR(uint(result) or uint(flag)) func toEnums*(number: VkSurfaceTransformFlagsKHR): seq[VkSurfaceTransformFlagBitsKHR] = for value in VkSurfaceTransformFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSurfaceTransformFlagsKHR): bool = cint(a) == cint(b) -type - VkSwapchainImageUsageFlagBitsANDROID* {.size: sizeof(cint).} = enum - VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkSwapchainImageUsageFlagBitsANDROID]): VkSwapchainImageUsageFlagsANDROID = +proc `==`*(a, b: VkSurfaceTransformFlagsKHR): bool = + cint(a) == cint(b) + +type VkSwapchainImageUsageFlagBitsANDROID* {.size: sizeof(cint).} = enum + VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID = 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkSwapchainImageUsageFlagBitsANDROID] +): VkSwapchainImageUsageFlagsANDROID = for flag in flags: result = VkSwapchainImageUsageFlagsANDROID(uint(result) or uint(flag)) -func toEnums*(number: VkSwapchainImageUsageFlagsANDROID): seq[VkSwapchainImageUsageFlagBitsANDROID] = +func toEnums*( + number: VkSwapchainImageUsageFlagsANDROID +): seq[VkSwapchainImageUsageFlagBitsANDROID] = for value in VkSwapchainImageUsageFlagBitsANDROID.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSwapchainImageUsageFlagsANDROID): bool = cint(a) == cint(b) +proc `==`*(a, b: VkSwapchainImageUsageFlagsANDROID): bool = + cint(a) == cint(b) + type VkTimeDomainEXT* {.size: sizeof(cint).} = enum VK_TIME_DOMAIN_DEVICE_EXT = 0 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3 + VkDebugReportFlagBitsEXT* {.size: sizeof(cint).} = enum VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0b00000000000000000000000000000001 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0b00000000000000000000000000000010 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0b00000000000000000000000000000100 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0b00000000000000000000000000001000 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0b00000000000000000000000000010000 + func toBits*(flags: openArray[VkDebugReportFlagBitsEXT]): VkDebugReportFlagsEXT = for flag in flags: result = VkDebugReportFlagsEXT(uint(result) or uint(flag)) @@ -2832,7 +3531,9 @@ for value in VkDebugReportFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDebugReportFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkDebugReportFlagsEXT): bool = + cint(a) == cint(b) + type VkDebugReportObjectTypeEXT* {.size: sizeof(cint).} = enum VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0 @@ -2874,51 +3575,73 @@ VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000 + VkDeviceMemoryReportEventTypeEXT* {.size: sizeof(cint).} = enum VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4 + VkRasterizationOrderAMD* {.size: sizeof(cint).} = enum VK_RASTERIZATION_ORDER_STRICT_AMD = 0 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1 + VkExternalMemoryHandleTypeFlagBitsNV* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0b00000000000000000000000000000100 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkExternalMemoryHandleTypeFlagBitsNV]): VkExternalMemoryHandleTypeFlagsNV = + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = + 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = + 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = + 0b00000000000000000000000000000100 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkExternalMemoryHandleTypeFlagBitsNV] +): VkExternalMemoryHandleTypeFlagsNV = for flag in flags: result = VkExternalMemoryHandleTypeFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryHandleTypeFlagsNV): seq[VkExternalMemoryHandleTypeFlagBitsNV] = +func toEnums*( + number: VkExternalMemoryHandleTypeFlagsNV +): seq[VkExternalMemoryHandleTypeFlagBitsNV] = for value in VkExternalMemoryHandleTypeFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalMemoryHandleTypeFlagsNV): bool = cint(a) == cint(b) -type - VkExternalMemoryFeatureFlagBitsNV* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkExternalMemoryFeatureFlagBitsNV]): VkExternalMemoryFeatureFlagsNV = +proc `==`*(a, b: VkExternalMemoryHandleTypeFlagsNV): bool = + cint(a) == cint(b) + +type VkExternalMemoryFeatureFlagBitsNV* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkExternalMemoryFeatureFlagBitsNV] +): VkExternalMemoryFeatureFlagsNV = for flag in flags: result = VkExternalMemoryFeatureFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryFeatureFlagsNV): seq[VkExternalMemoryFeatureFlagBitsNV] = +func toEnums*( + number: VkExternalMemoryFeatureFlagsNV +): seq[VkExternalMemoryFeatureFlagBitsNV] = for value in VkExternalMemoryFeatureFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalMemoryFeatureFlagsNV): bool = cint(a) == cint(b) +proc `==`*(a, b: VkExternalMemoryFeatureFlagsNV): bool = + cint(a) == cint(b) + type VkValidationCheckEXT* {.size: sizeof(cint).} = enum VK_VALIDATION_CHECK_ALL_EXT = 0 VK_VALIDATION_CHECK_SHADERS_EXT = 1 + VkValidationFeatureEnableEXT* {.size: sizeof(cint).} = enum VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4 + VkValidationFeatureDisableEXT* {.size: sizeof(cint).} = enum VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1 @@ -2928,6 +3651,7 @@ VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7 + VkSubgroupFeatureFlagBits* {.size: sizeof(cint).} = enum VK_SUBGROUP_FEATURE_BASIC_BIT = 0b00000000000000000000000000000001 VK_SUBGROUP_FEATURE_VOTE_BIT = 0b00000000000000000000000000000010 @@ -2938,6 +3662,7 @@ VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0b00000000000000000000000001000000 VK_SUBGROUP_FEATURE_QUAD_BIT = 0b00000000000000000000000010000000 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0b00000000000000000000000100000000 + func toBits*(flags: openArray[VkSubgroupFeatureFlagBits]): VkSubgroupFeatureFlags = for flag in flags: result = VkSubgroupFeatureFlags(uint(result) or uint(flag)) @@ -2945,23 +3670,34 @@ for value in VkSubgroupFeatureFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSubgroupFeatureFlags): bool = cint(a) == cint(b) -type - VkIndirectCommandsLayoutUsageFlagBitsNV* {.size: sizeof(cint).} = enum - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0b00000000000000000000000000000001 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0b00000000000000000000000000000010 - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkIndirectCommandsLayoutUsageFlagBitsNV]): VkIndirectCommandsLayoutUsageFlagsNV = +proc `==`*(a, b: VkSubgroupFeatureFlags): bool = + cint(a) == cint(b) + +type VkIndirectCommandsLayoutUsageFlagBitsNV* {.size: sizeof(cint).} = enum + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = + 0b00000000000000000000000000000001 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = + 0b00000000000000000000000000000010 + VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = + 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkIndirectCommandsLayoutUsageFlagBitsNV] +): VkIndirectCommandsLayoutUsageFlagsNV = for flag in flags: result = VkIndirectCommandsLayoutUsageFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkIndirectCommandsLayoutUsageFlagsNV): seq[VkIndirectCommandsLayoutUsageFlagBitsNV] = +func toEnums*( + number: VkIndirectCommandsLayoutUsageFlagsNV +): seq[VkIndirectCommandsLayoutUsageFlagBitsNV] = for value in VkIndirectCommandsLayoutUsageFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkIndirectCommandsLayoutUsageFlagsNV): bool = cint(a) == cint(b) -type - VkIndirectStateFlagBitsNV* {.size: sizeof(cint).} = enum - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkIndirectCommandsLayoutUsageFlagsNV): bool = + cint(a) == cint(b) + +type VkIndirectStateFlagBitsNV* {.size: sizeof(cint).} = enum + VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkIndirectStateFlagBitsNV]): VkIndirectStateFlagsNV = for flag in flags: result = VkIndirectStateFlagsNV(uint(result) or uint(flag)) @@ -2969,7 +3705,9 @@ for value in VkIndirectStateFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkIndirectStateFlagsNV): bool = cint(a) == cint(b) +proc `==`*(a, b: VkIndirectStateFlagsNV): bool = + cint(a) == cint(b) + type VkIndirectCommandsTokenTypeNV* {.size: sizeof(cint).} = enum VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0 @@ -2981,101 +3719,156 @@ VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000 + VkPrivateDataSlotCreateFlagBits* {.size: sizeof(cint).} = enum VK_PRIVATE_DATA_SLOT_CREATE_RESERVED_0_BIT_NV = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkPrivateDataSlotCreateFlagBits]): VkPrivateDataSlotCreateFlags = + +func toBits*( + flags: openArray[VkPrivateDataSlotCreateFlagBits] +): VkPrivateDataSlotCreateFlags = for flag in flags: result = VkPrivateDataSlotCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPrivateDataSlotCreateFlags): seq[VkPrivateDataSlotCreateFlagBits] = +func toEnums*( + number: VkPrivateDataSlotCreateFlags +): seq[VkPrivateDataSlotCreateFlagBits] = for value in VkPrivateDataSlotCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPrivateDataSlotCreateFlags): bool = cint(a) == cint(b) -type - VkDescriptorSetLayoutCreateFlagBits* {.size: sizeof(cint).} = enum - VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0b00000000000000000000000000000001 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0b00000000000000000000000000000010 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0b00000000000000000000000000000100 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD = 0b00000000000000000000000000001000 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0b00000000000000000000000000010000 - VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkDescriptorSetLayoutCreateFlagBits]): VkDescriptorSetLayoutCreateFlags = +proc `==`*(a, b: VkPrivateDataSlotCreateFlags): bool = + cint(a) == cint(b) + +type VkDescriptorSetLayoutCreateFlagBits* {.size: sizeof(cint).} = enum + VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = + 0b00000000000000000000000000000001 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = + 0b00000000000000000000000000000010 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = + 0b00000000000000000000000000000100 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_RESERVED_3_BIT_AMD = + 0b00000000000000000000000000001000 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = + 0b00000000000000000000000000010000 + VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = + 0b00000000000000000000000000100000 + +func toBits*( + flags: openArray[VkDescriptorSetLayoutCreateFlagBits] +): VkDescriptorSetLayoutCreateFlags = for flag in flags: result = VkDescriptorSetLayoutCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkDescriptorSetLayoutCreateFlags): seq[VkDescriptorSetLayoutCreateFlagBits] = +func toEnums*( + number: VkDescriptorSetLayoutCreateFlags +): seq[VkDescriptorSetLayoutCreateFlagBits] = for value in VkDescriptorSetLayoutCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDescriptorSetLayoutCreateFlags): bool = cint(a) == cint(b) -type - VkExternalMemoryHandleTypeFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0b00000000000000000000000000001000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0b00000000000000000000000000010000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0b00000000000000000000000000100000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0b00000000000000000000000001000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0b00000000000000000000000010000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0b00000000000000000000000100000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0b00000000000000000000001000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0b00000000000000000000010000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0b00000000000000000000100000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0b00000000000000000001000000000000 - VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV = 0b00000000000000000010000000000000 -func toBits*(flags: openArray[VkExternalMemoryHandleTypeFlagBits]): VkExternalMemoryHandleTypeFlags = +proc `==`*(a, b: VkDescriptorSetLayoutCreateFlags): bool = + cint(a) == cint(b) + +type VkExternalMemoryHandleTypeFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = + 0b00000000000000000000000000000100 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0b00000000000000000000000000001000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = + 0b00000000000000000000000000010000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0b00000000000000000000000000100000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0b00000000000000000000000001000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = + 0b00000000000000000000000010000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = + 0b00000000000000000000000100000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0b00000000000000000000001000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = + 0b00000000000000000000010000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = + 0b00000000000000000000100000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = + 0b00000000000000000001000000000000 + VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCI_BUF_BIT_NV = 0b00000000000000000010000000000000 + +func toBits*( + flags: openArray[VkExternalMemoryHandleTypeFlagBits] +): VkExternalMemoryHandleTypeFlags = for flag in flags: result = VkExternalMemoryHandleTypeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryHandleTypeFlags): seq[VkExternalMemoryHandleTypeFlagBits] = +func toEnums*( + number: VkExternalMemoryHandleTypeFlags +): seq[VkExternalMemoryHandleTypeFlagBits] = for value in VkExternalMemoryHandleTypeFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalMemoryHandleTypeFlags): bool = cint(a) == cint(b) -type - VkExternalMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkExternalMemoryFeatureFlagBits]): VkExternalMemoryFeatureFlags = +proc `==`*(a, b: VkExternalMemoryHandleTypeFlags): bool = + cint(a) == cint(b) + +type VkExternalMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkExternalMemoryFeatureFlagBits] +): VkExternalMemoryFeatureFlags = for flag in flags: result = VkExternalMemoryFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalMemoryFeatureFlags): seq[VkExternalMemoryFeatureFlagBits] = +func toEnums*( + number: VkExternalMemoryFeatureFlags +): seq[VkExternalMemoryFeatureFlagBits] = for value in VkExternalMemoryFeatureFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalMemoryFeatureFlags): bool = cint(a) == cint(b) -type - VkExternalSemaphoreHandleTypeFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0b00000000000000000000000000001000 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000010000 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000100000 - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0b00000000000000000000000010000000 -func toBits*(flags: openArray[VkExternalSemaphoreHandleTypeFlagBits]): VkExternalSemaphoreHandleTypeFlags = +proc `==`*(a, b: VkExternalMemoryFeatureFlags): bool = + cint(a) == cint(b) + +type VkExternalSemaphoreHandleTypeFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = + 0b00000000000000000000000000000010 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = + 0b00000000000000000000000000000100 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0b00000000000000000000000000001000 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000010000 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = + 0b00000000000000000000000000100000 + VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = + 0b00000000000000000000000010000000 + +func toBits*( + flags: openArray[VkExternalSemaphoreHandleTypeFlagBits] +): VkExternalSemaphoreHandleTypeFlags = for flag in flags: result = VkExternalSemaphoreHandleTypeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalSemaphoreHandleTypeFlags): seq[VkExternalSemaphoreHandleTypeFlagBits] = +func toEnums*( + number: VkExternalSemaphoreHandleTypeFlags +): seq[VkExternalSemaphoreHandleTypeFlagBits] = for value in VkExternalSemaphoreHandleTypeFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalSemaphoreHandleTypeFlags): bool = cint(a) == cint(b) -type - VkExternalSemaphoreFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkExternalSemaphoreFeatureFlagBits]): VkExternalSemaphoreFeatureFlags = +proc `==`*(a, b: VkExternalSemaphoreHandleTypeFlags): bool = + cint(a) == cint(b) + +type VkExternalSemaphoreFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkExternalSemaphoreFeatureFlagBits] +): VkExternalSemaphoreFeatureFlags = for flag in flags: result = VkExternalSemaphoreFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalSemaphoreFeatureFlags): seq[VkExternalSemaphoreFeatureFlagBits] = +func toEnums*( + number: VkExternalSemaphoreFeatureFlags +): seq[VkExternalSemaphoreFeatureFlagBits] = for value in VkExternalSemaphoreFeatureFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalSemaphoreFeatureFlags): bool = cint(a) == cint(b) -type - VkSemaphoreImportFlagBits* {.size: sizeof(cint).} = enum - VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkExternalSemaphoreFeatureFlags): bool = + cint(a) == cint(b) + +type VkSemaphoreImportFlagBits* {.size: sizeof(cint).} = enum + VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkSemaphoreImportFlagBits]): VkSemaphoreImportFlags = for flag in flags: result = VkSemaphoreImportFlags(uint(result) or uint(flag)) @@ -3083,38 +3876,54 @@ for value in VkSemaphoreImportFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSemaphoreImportFlags): bool = cint(a) == cint(b) -type - VkExternalFenceHandleTypeFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0b00000000000000000000000000000100 - VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000001000 - VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000010000 - VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkExternalFenceHandleTypeFlagBits]): VkExternalFenceHandleTypeFlags = +proc `==`*(a, b: VkSemaphoreImportFlags): bool = + cint(a) == cint(b) + +type VkExternalFenceHandleTypeFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0b00000000000000000000000000000010 + VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = + 0b00000000000000000000000000000100 + VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0b00000000000000000000000000001000 + VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_OBJ_BIT_NV = 0b00000000000000000000000000010000 + VK_EXTERNAL_FENCE_HANDLE_TYPE_SCI_SYNC_FENCE_BIT_NV = + 0b00000000000000000000000000100000 + +func toBits*( + flags: openArray[VkExternalFenceHandleTypeFlagBits] +): VkExternalFenceHandleTypeFlags = for flag in flags: result = VkExternalFenceHandleTypeFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalFenceHandleTypeFlags): seq[VkExternalFenceHandleTypeFlagBits] = +func toEnums*( + number: VkExternalFenceHandleTypeFlags +): seq[VkExternalFenceHandleTypeFlagBits] = for value in VkExternalFenceHandleTypeFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalFenceHandleTypeFlags): bool = cint(a) == cint(b) -type - VkExternalFenceFeatureFlagBits* {.size: sizeof(cint).} = enum - VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 - VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkExternalFenceFeatureFlagBits]): VkExternalFenceFeatureFlags = +proc `==`*(a, b: VkExternalFenceHandleTypeFlags): bool = + cint(a) == cint(b) + +type VkExternalFenceFeatureFlagBits* {.size: sizeof(cint).} = enum + VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0b00000000000000000000000000000001 + VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkExternalFenceFeatureFlagBits] +): VkExternalFenceFeatureFlags = for flag in flags: result = VkExternalFenceFeatureFlags(uint(result) or uint(flag)) -func toEnums*(number: VkExternalFenceFeatureFlags): seq[VkExternalFenceFeatureFlagBits] = +func toEnums*( + number: VkExternalFenceFeatureFlags +): seq[VkExternalFenceFeatureFlagBits] = for value in VkExternalFenceFeatureFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExternalFenceFeatureFlags): bool = cint(a) == cint(b) -type - VkFenceImportFlagBits* {.size: sizeof(cint).} = enum - VK_FENCE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkExternalFenceFeatureFlags): bool = + cint(a) == cint(b) + +type VkFenceImportFlagBits* {.size: sizeof(cint).} = enum + VK_FENCE_IMPORT_TEMPORARY_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkFenceImportFlagBits]): VkFenceImportFlags = for flag in flags: result = VkFenceImportFlags(uint(result) or uint(flag)) @@ -3122,10 +3931,12 @@ for value in VkFenceImportFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkFenceImportFlags): bool = cint(a) == cint(b) -type - VkSurfaceCounterFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkFenceImportFlags): bool = + cint(a) == cint(b) + +type VkSurfaceCounterFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkSurfaceCounterFlagBitsEXT]): VkSurfaceCounterFlagsEXT = for flag in flags: result = VkSurfaceCounterFlagsEXT(uint(result) or uint(flag)) @@ -3133,21 +3944,27 @@ for value in VkSurfaceCounterFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSurfaceCounterFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkSurfaceCounterFlagsEXT): bool = + cint(a) == cint(b) + type VkDisplayPowerStateEXT* {.size: sizeof(cint).} = enum VK_DISPLAY_POWER_STATE_OFF_EXT = 0 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1 VK_DISPLAY_POWER_STATE_ON_EXT = 2 + VkDeviceEventTypeEXT* {.size: sizeof(cint).} = enum VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0 + VkDisplayEventTypeEXT* {.size: sizeof(cint).} = enum VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0 + VkPeerMemoryFeatureFlagBits* {.size: sizeof(cint).} = enum VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0b00000000000000000000000000000001 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0b00000000000000000000000000000010 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0b00000000000000000000000000000100 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0b00000000000000000000000000001000 + func toBits*(flags: openArray[VkPeerMemoryFeatureFlagBits]): VkPeerMemoryFeatureFlags = for flag in flags: result = VkPeerMemoryFeatureFlags(uint(result) or uint(flag)) @@ -3155,12 +3972,15 @@ for value in VkPeerMemoryFeatureFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPeerMemoryFeatureFlags): bool = cint(a) == cint(b) -type - VkMemoryAllocateFlagBits* {.size: sizeof(cint).} = enum - VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0b00000000000000000000000000000001 - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0b00000000000000000000000000000010 - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0b00000000000000000000000000000100 +proc `==`*(a, b: VkPeerMemoryFeatureFlags): bool = + cint(a) == cint(b) + +type VkMemoryAllocateFlagBits* {.size: sizeof(cint).} = enum + VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0b00000000000000000000000000000001 + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0b00000000000000000000000000000010 + VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = + 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkMemoryAllocateFlagBits]): VkMemoryAllocateFlags = for flag in flags: result = VkMemoryAllocateFlags(uint(result) or uint(flag)) @@ -3168,36 +3988,51 @@ for value in VkMemoryAllocateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkMemoryAllocateFlags): bool = cint(a) == cint(b) -type - VkDeviceGroupPresentModeFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0b00000000000000000000000000000001 - VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0b00000000000000000000000000000010 - VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0b00000000000000000000000000000100 - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDeviceGroupPresentModeFlagBitsKHR]): VkDeviceGroupPresentModeFlagsKHR = +proc `==`*(a, b: VkMemoryAllocateFlags): bool = + cint(a) == cint(b) + +type VkDeviceGroupPresentModeFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0b00000000000000000000000000000001 + VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0b00000000000000000000000000000010 + VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0b00000000000000000000000000000100 + VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkDeviceGroupPresentModeFlagBitsKHR] +): VkDeviceGroupPresentModeFlagsKHR = for flag in flags: result = VkDeviceGroupPresentModeFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceGroupPresentModeFlagsKHR): seq[VkDeviceGroupPresentModeFlagBitsKHR] = +func toEnums*( + number: VkDeviceGroupPresentModeFlagsKHR +): seq[VkDeviceGroupPresentModeFlagBitsKHR] = for value in VkDeviceGroupPresentModeFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDeviceGroupPresentModeFlagsKHR): bool = cint(a) == cint(b) -type - VkSwapchainCreateFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0b00000000000000000000000000000001 - VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0b00000000000000000000000000000010 - VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0b00000000000000000000000000000100 - VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0b00000000000000000000000000001000 - VK_SWAPCHAIN_CREATE_RESERVED_4_BIT_EXT = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkSwapchainCreateFlagBitsKHR]): VkSwapchainCreateFlagsKHR = +proc `==`*(a, b: VkDeviceGroupPresentModeFlagsKHR): bool = + cint(a) == cint(b) + +type VkSwapchainCreateFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = + 0b00000000000000000000000000000001 + VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0b00000000000000000000000000000010 + VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0b00000000000000000000000000000100 + VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = + 0b00000000000000000000000000001000 + VK_SWAPCHAIN_CREATE_RESERVED_4_BIT_EXT = 0b00000000000000000000000000010000 + +func toBits*( + flags: openArray[VkSwapchainCreateFlagBitsKHR] +): VkSwapchainCreateFlagsKHR = for flag in flags: result = VkSwapchainCreateFlagsKHR(uint(result) or uint(flag)) func toEnums*(number: VkSwapchainCreateFlagsKHR): seq[VkSwapchainCreateFlagBitsKHR] = for value in VkSwapchainCreateFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSwapchainCreateFlagsKHR): bool = cint(a) == cint(b) +proc `==`*(a, b: VkSwapchainCreateFlagsKHR): bool = + cint(a) == cint(b) + type VkViewportCoordinateSwizzleNV* {.size: sizeof(cint).} = enum VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0 @@ -3208,110 +4043,153 @@ VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7 + VkDiscardRectangleModeEXT* {.size: sizeof(cint).} = enum VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1 + VkSubpassDescriptionFlagBits* {.size: sizeof(cint).} = enum - VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0b00000000000000000000000000000001 - VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0b00000000000000000000000000000010 + VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = + 0b00000000000000000000000000000001 + VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = + 0b00000000000000000000000000000010 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0b00000000000000000000000000000100 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0b00000000000000000000000000001000 - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0b00000000000000000000000000010000 - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0b00000000000000000000000000100000 - VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0b00000000000000000000000001000000 - VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000010000000 -func toBits*(flags: openArray[VkSubpassDescriptionFlagBits]): VkSubpassDescriptionFlags = + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = + 0b00000000000000000000000000010000 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = + 0b00000000000000000000000000100000 + VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = + 0b00000000000000000000000001000000 + VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = + 0b00000000000000000000000010000000 + +func toBits*( + flags: openArray[VkSubpassDescriptionFlagBits] +): VkSubpassDescriptionFlags = for flag in flags: result = VkSubpassDescriptionFlags(uint(result) or uint(flag)) func toEnums*(number: VkSubpassDescriptionFlags): seq[VkSubpassDescriptionFlagBits] = for value in VkSubpassDescriptionFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSubpassDescriptionFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkSubpassDescriptionFlags): bool = + cint(a) == cint(b) + type VkPointClippingBehavior* {.size: sizeof(cint).} = enum VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1 + VkSamplerReductionMode* {.size: sizeof(cint).} = enum VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0 VK_SAMPLER_REDUCTION_MODE_MIN = 1 VK_SAMPLER_REDUCTION_MODE_MAX = 2 + VkTessellationDomainOrigin* {.size: sizeof(cint).} = enum VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1 + VkSamplerYcbcrModelConversion* {.size: sizeof(cint).} = enum VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4 + VkSamplerYcbcrRange* {.size: sizeof(cint).} = enum VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1 + VkChromaLocation* {.size: sizeof(cint).} = enum VK_CHROMA_LOCATION_COSITED_EVEN = 0 VK_CHROMA_LOCATION_MIDPOINT = 1 + VkBlendOverlapEXT* {.size: sizeof(cint).} = enum VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0 VK_BLEND_OVERLAP_DISJOINT_EXT = 1 VK_BLEND_OVERLAP_CONJOINT_EXT = 2 + VkCoverageModulationModeNV* {.size: sizeof(cint).} = enum VK_COVERAGE_MODULATION_MODE_NONE_NV = 0 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3 + VkCoverageReductionModeNV* {.size: sizeof(cint).} = enum VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1 + VkValidationCacheHeaderVersionEXT* {.size: sizeof(cint).} = enum VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1 + VkShaderInfoTypeAMD* {.size: sizeof(cint).} = enum VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0 VK_SHADER_INFO_TYPE_BINARY_AMD = 1 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2 + VkQueueGlobalPriorityKHR* {.size: sizeof(cint).} = enum VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = 128 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = 256 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = 512 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = 1024 + VkDebugUtilsMessageSeverityFlagBitsEXT* {.size: sizeof(cint).} = enum VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0b00000000000000000000000000000001 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0b00000000000000000000000000010000 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0b00000000000000000000000100000000 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0b00000000000000000001000000000000 -func toBits*(flags: openArray[VkDebugUtilsMessageSeverityFlagBitsEXT]): VkDebugUtilsMessageSeverityFlagsEXT = + +func toBits*( + flags: openArray[VkDebugUtilsMessageSeverityFlagBitsEXT] +): VkDebugUtilsMessageSeverityFlagsEXT = for flag in flags: result = VkDebugUtilsMessageSeverityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDebugUtilsMessageSeverityFlagsEXT): seq[VkDebugUtilsMessageSeverityFlagBitsEXT] = +func toEnums*( + number: VkDebugUtilsMessageSeverityFlagsEXT +): seq[VkDebugUtilsMessageSeverityFlagBitsEXT] = for value in VkDebugUtilsMessageSeverityFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDebugUtilsMessageSeverityFlagsEXT): bool = cint(a) == cint(b) -type - VkDebugUtilsMessageTypeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0b00000000000000000000000000000001 - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0b00000000000000000000000000000010 - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0b00000000000000000000000000000100 - VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDebugUtilsMessageTypeFlagBitsEXT]): VkDebugUtilsMessageTypeFlagsEXT = +proc `==`*(a, b: VkDebugUtilsMessageSeverityFlagsEXT): bool = + cint(a) == cint(b) + +type VkDebugUtilsMessageTypeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0b00000000000000000000000000000001 + VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0b00000000000000000000000000000010 + VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0b00000000000000000000000000000100 + VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkDebugUtilsMessageTypeFlagBitsEXT] +): VkDebugUtilsMessageTypeFlagsEXT = for flag in flags: result = VkDebugUtilsMessageTypeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDebugUtilsMessageTypeFlagsEXT): seq[VkDebugUtilsMessageTypeFlagBitsEXT] = +func toEnums*( + number: VkDebugUtilsMessageTypeFlagsEXT +): seq[VkDebugUtilsMessageTypeFlagBitsEXT] = for value in VkDebugUtilsMessageTypeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDebugUtilsMessageTypeFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkDebugUtilsMessageTypeFlagsEXT): bool = + cint(a) == cint(b) + type VkConservativeRasterizationModeEXT* {.size: sizeof(cint).} = enum VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2 + VkDescriptorBindingFlagBits* {.size: sizeof(cint).} = enum VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0b00000000000000000000000000000001 - VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0b00000000000000000000000000000010 + VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = + 0b00000000000000000000000000000010 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0b00000000000000000000000000000100 - VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0b00000000000000000000000000001000 + VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = + 0b00000000000000000000000000001000 VK_DESCRIPTOR_BINDING_RESERVED_4_BIT_QCOM = 0b00000000000000000000000000010000 + func toBits*(flags: openArray[VkDescriptorBindingFlagBits]): VkDescriptorBindingFlags = for flag in flags: result = VkDescriptorBindingFlags(uint(result) or uint(flag)) @@ -3319,7 +4197,9 @@ for value in VkDescriptorBindingFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDescriptorBindingFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkDescriptorBindingFlags): bool = + cint(a) == cint(b) + type VkVendorId* {.size: sizeof(cint).} = enum VK_VENDOR_ID_VIV = 65537 @@ -3328,6 +4208,7 @@ VK_VENDOR_ID_CODEPLAY = 65540 VK_VENDOR_ID_MESA = 65541 VK_VENDOR_ID_POCL = 65542 + VkDriverId* {.size: sizeof(cint).} = enum VK_DRIVER_ID_AMD_PROPRIETARY = 1 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2 @@ -3354,22 +4235,30 @@ VK_DRIVER_ID_MESA_DOZEN = 23 VK_DRIVER_ID_MESA_NVK = 24 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25 + VkConditionalRenderingFlagBitsEXT* {.size: sizeof(cint).} = enum VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkConditionalRenderingFlagBitsEXT]): VkConditionalRenderingFlagsEXT = + +func toBits*( + flags: openArray[VkConditionalRenderingFlagBitsEXT] +): VkConditionalRenderingFlagsEXT = for flag in flags: result = VkConditionalRenderingFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkConditionalRenderingFlagsEXT): seq[VkConditionalRenderingFlagBitsEXT] = +func toEnums*( + number: VkConditionalRenderingFlagsEXT +): seq[VkConditionalRenderingFlagBitsEXT] = for value in VkConditionalRenderingFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkConditionalRenderingFlagsEXT): bool = cint(a) == cint(b) -type - VkResolveModeFlagBits* {.size: sizeof(cint).} = enum - VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0b00000000000000000000000000000001 - VK_RESOLVE_MODE_AVERAGE_BIT = 0b00000000000000000000000000000010 - VK_RESOLVE_MODE_MIN_BIT = 0b00000000000000000000000000000100 - VK_RESOLVE_MODE_MAX_BIT = 0b00000000000000000000000000001000 +proc `==`*(a, b: VkConditionalRenderingFlagsEXT): bool = + cint(a) == cint(b) + +type VkResolveModeFlagBits* {.size: sizeof(cint).} = enum + VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0b00000000000000000000000000000001 + VK_RESOLVE_MODE_AVERAGE_BIT = 0b00000000000000000000000000000010 + VK_RESOLVE_MODE_MIN_BIT = 0b00000000000000000000000000000100 + VK_RESOLVE_MODE_MAX_BIT = 0b00000000000000000000000000001000 + func toBits*(flags: openArray[VkResolveModeFlagBits]): VkResolveModeFlags = for flag in flags: result = VkResolveModeFlags(uint(result) or uint(flag)) @@ -3377,9 +4266,10 @@ for value in VkResolveModeFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkResolveModeFlags): bool = cint(a) == cint(b) -const - VK_RESOLVE_MODE_NONE* = 0 +proc `==`*(a, b: VkResolveModeFlags): bool = + cint(a) == cint(b) + +const VK_RESOLVE_MODE_NONE* = 0 type VkShadingRatePaletteEntryNV* {.size: sizeof(cint).} = enum VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0 @@ -3394,30 +4284,42 @@ VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11 + VkCoarseSampleOrderTypeNV* {.size: sizeof(cint).} = enum VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3 + VkGeometryInstanceFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0b00000000000000000000000000000001 - VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0b00000000000000000000000000000010 + VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = + 0b00000000000000000000000000000001 + VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = + 0b00000000000000000000000000000010 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0b00000000000000000000000000000100 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0b00000000000000000000000000001000 - VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = 0b00000000000000000000000000010000 - VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkGeometryInstanceFlagBitsKHR]): VkGeometryInstanceFlagsKHR = + VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = + 0b00000000000000000000000000010000 + VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = + 0b00000000000000000000000000100000 + +func toBits*( + flags: openArray[VkGeometryInstanceFlagBitsKHR] +): VkGeometryInstanceFlagsKHR = for flag in flags: result = VkGeometryInstanceFlagsKHR(uint(result) or uint(flag)) func toEnums*(number: VkGeometryInstanceFlagsKHR): seq[VkGeometryInstanceFlagBitsKHR] = for value in VkGeometryInstanceFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkGeometryInstanceFlagsKHR): bool = cint(a) == cint(b) -type - VkGeometryFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_GEOMETRY_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0b00000000000000000000000000000010 +proc `==`*(a, b: VkGeometryInstanceFlagsKHR): bool = + cint(a) == cint(b) + +type VkGeometryFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_GEOMETRY_OPAQUE_BIT_KHR = 0b00000000000000000000000000000001 + VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = + 0b00000000000000000000000000000010 + func toBits*(flags: openArray[VkGeometryFlagBitsKHR]): VkGeometryFlagsKHR = for flag in flags: result = VkGeometryFlagsKHR(uint(result) or uint(flag)) @@ -3425,84 +4327,120 @@ for value in VkGeometryFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkGeometryFlagsKHR): bool = cint(a) == cint(b) -type - VkBuildAccelerationStructureFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0b00000000000000000000000000000001 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0b00000000000000000000000000000010 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0b00000000000000000000000000000100 - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0b00000000000000000000000000001000 - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0b00000000000000000000000000010000 - VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0b00000000000000000000000000100000 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = 0b00000000000000000000000001000000 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = 0b00000000000000000000000010000000 - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = 0b00000000000000000000000100000000 - VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_9_NV = 0b00000000000000000000001000000000 - VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_10_NV = 0b00000000000000000000010000000000 -func toBits*(flags: openArray[VkBuildAccelerationStructureFlagBitsKHR]): VkBuildAccelerationStructureFlagsKHR = +proc `==`*(a, b: VkGeometryFlagsKHR): bool = + cint(a) == cint(b) + +type VkBuildAccelerationStructureFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = + 0b00000000000000000000000000000001 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = + 0b00000000000000000000000000000010 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = + 0b00000000000000000000000000000100 + VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = + 0b00000000000000000000000000001000 + VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = + 0b00000000000000000000000000010000 + VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0b00000000000000000000000000100000 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = + 0b00000000000000000000000001000000 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = + 0b00000000000000000000000010000000 + VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = + 0b00000000000000000000000100000000 + VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_9_NV = 0b00000000000000000000001000000000 + VK_BUILD_ACCELERATION_STRUCTURE_RESERVED_BIT_10_NV = + 0b00000000000000000000010000000000 + +func toBits*( + flags: openArray[VkBuildAccelerationStructureFlagBitsKHR] +): VkBuildAccelerationStructureFlagsKHR = for flag in flags: result = VkBuildAccelerationStructureFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkBuildAccelerationStructureFlagsKHR): seq[VkBuildAccelerationStructureFlagBitsKHR] = +func toEnums*( + number: VkBuildAccelerationStructureFlagsKHR +): seq[VkBuildAccelerationStructureFlagBitsKHR] = for value in VkBuildAccelerationStructureFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkBuildAccelerationStructureFlagsKHR): bool = cint(a) == cint(b) -type - VkAccelerationStructureCreateFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0b00000000000000000000000000000001 - VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0b00000000000000000000000000000100 - VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkAccelerationStructureCreateFlagBitsKHR]): VkAccelerationStructureCreateFlagsKHR = +proc `==`*(a, b: VkBuildAccelerationStructureFlagsKHR): bool = + cint(a) == cint(b) + +type VkAccelerationStructureCreateFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = + 0b00000000000000000000000000000001 + VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0b00000000000000000000000000000100 + VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkAccelerationStructureCreateFlagBitsKHR] +): VkAccelerationStructureCreateFlagsKHR = for flag in flags: result = VkAccelerationStructureCreateFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkAccelerationStructureCreateFlagsKHR): seq[VkAccelerationStructureCreateFlagBitsKHR] = +func toEnums*( + number: VkAccelerationStructureCreateFlagsKHR +): seq[VkAccelerationStructureCreateFlagBitsKHR] = for value in VkAccelerationStructureCreateFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkAccelerationStructureCreateFlagsKHR): bool = cint(a) == cint(b) +proc `==`*(a, b: VkAccelerationStructureCreateFlagsKHR): bool = + cint(a) == cint(b) + type VkCopyAccelerationStructureModeKHR* {.size: sizeof(cint).} = enum VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3 + VkBuildAccelerationStructureModeKHR* {.size: sizeof(cint).} = enum VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1 + VkAccelerationStructureTypeKHR* {.size: sizeof(cint).} = enum VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2 + VkGeometryTypeKHR* {.size: sizeof(cint).} = enum VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0 VK_GEOMETRY_TYPE_AABBS_KHR = 1 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2 + VkAccelerationStructureMemoryRequirementsTypeNV* {.size: sizeof(cint).} = enum VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2 + VkAccelerationStructureBuildTypeKHR* {.size: sizeof(cint).} = enum VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2 + VkRayTracingShaderGroupTypeKHR* {.size: sizeof(cint).} = enum VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2 + VkAccelerationStructureCompatibilityKHR* {.size: sizeof(cint).} = enum VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1 + VkShaderGroupShaderKHR* {.size: sizeof(cint).} = enum VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3 + VkMemoryOverallocationBehaviorAMD* {.size: sizeof(cint).} = enum VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2 + VkFramebufferCreateFlagBits* {.size: sizeof(cint).} = enum VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkFramebufferCreateFlagBits]): VkFramebufferCreateFlags = for flag in flags: result = VkFramebufferCreateFlags(uint(result) or uint(flag)) @@ -3510,13 +4448,16 @@ for value in VkFramebufferCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkFramebufferCreateFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkFramebufferCreateFlags): bool = + cint(a) == cint(b) + type VkScopeNV* {.size: sizeof(cint).} = enum VK_SCOPE_DEVICE_NV = 1 VK_SCOPE_WORKGROUP_NV = 2 VK_SCOPE_SUBGROUP_NV = 3 VK_SCOPE_QUEUE_FAMILY_NV = 5 + VkComponentTypeNV* {.size: sizeof(cint).} = enum VK_COMPONENT_TYPE_FLOAT16_NV = 0 VK_COMPONENT_TYPE_FLOAT32_NV = 1 @@ -3529,52 +4470,82 @@ VK_COMPONENT_TYPE_UINT16_NV = 8 VK_COMPONENT_TYPE_UINT32_NV = 9 VK_COMPONENT_TYPE_UINT64_NV = 10 + VkDeviceDiagnosticsConfigFlagBitsNV* {.size: sizeof(cint).} = enum - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0b00000000000000000000000000000001 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0b00000000000000000000000000000010 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0b00000000000000000000000000000100 - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkDeviceDiagnosticsConfigFlagBitsNV]): VkDeviceDiagnosticsConfigFlagsNV = + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = + 0b00000000000000000000000000000001 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = + 0b00000000000000000000000000000010 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = + 0b00000000000000000000000000000100 + VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkDeviceDiagnosticsConfigFlagBitsNV] +): VkDeviceDiagnosticsConfigFlagsNV = for flag in flags: result = VkDeviceDiagnosticsConfigFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceDiagnosticsConfigFlagsNV): seq[VkDeviceDiagnosticsConfigFlagBitsNV] = +func toEnums*( + number: VkDeviceDiagnosticsConfigFlagsNV +): seq[VkDeviceDiagnosticsConfigFlagBitsNV] = for value in VkDeviceDiagnosticsConfigFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDeviceDiagnosticsConfigFlagsNV): bool = cint(a) == cint(b) -type - VkPipelineCreationFeedbackFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0b00000000000000000000000000000001 - VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0b00000000000000000000000000000010 - VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkPipelineCreationFeedbackFlagBits]): VkPipelineCreationFeedbackFlags = +proc `==`*(a, b: VkDeviceDiagnosticsConfigFlagsNV): bool = + cint(a) == cint(b) + +type VkPipelineCreationFeedbackFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0b00000000000000000000000000000001 + VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = + 0b00000000000000000000000000000010 + VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = + 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkPipelineCreationFeedbackFlagBits] +): VkPipelineCreationFeedbackFlags = for flag in flags: result = VkPipelineCreationFeedbackFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineCreationFeedbackFlags): seq[VkPipelineCreationFeedbackFlagBits] = +func toEnums*( + number: VkPipelineCreationFeedbackFlags +): seq[VkPipelineCreationFeedbackFlagBits] = for value in VkPipelineCreationFeedbackFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineCreationFeedbackFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkPipelineCreationFeedbackFlags): bool = + cint(a) == cint(b) + type VkFullScreenExclusiveEXT* {.size: sizeof(cint).} = enum VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0 VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1 VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2 VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3 + VkPerformanceCounterScopeKHR* {.size: sizeof(cint).} = enum VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2 + VkMemoryDecompressionMethodFlagBitsNV* {.size: 8.} = enum - VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0b0000000000000000000000000000000000000000000000000000000000000001 -func toBits*(flags: openArray[VkMemoryDecompressionMethodFlagBitsNV]): VkMemoryDecompressionMethodFlagsNV = + VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = + 0b0000000000000000000000000000000000000000000000000000000000000001 + +func toBits*( + flags: openArray[VkMemoryDecompressionMethodFlagBitsNV] +): VkMemoryDecompressionMethodFlagsNV = for flag in flags: result = VkMemoryDecompressionMethodFlagsNV(uint64(result) or uint64(flag)) -func toEnums*(number: VkMemoryDecompressionMethodFlagsNV): seq[VkMemoryDecompressionMethodFlagBitsNV] = +func toEnums*( + number: VkMemoryDecompressionMethodFlagsNV +): seq[VkMemoryDecompressionMethodFlagBitsNV] = for value in VkMemoryDecompressionMethodFlagBitsNV.items: if (cast[uint64](value) and uint64(number)) > 0: result.add value -proc `==`*(a, b: VkMemoryDecompressionMethodFlagsNV): bool = uint64(a) == uint64(b) +proc `==`*(a, b: VkMemoryDecompressionMethodFlagsNV): bool = + uint64(a) == uint64(b) + type VkPerformanceCounterUnitKHR* {.size: sizeof(cint).} = enum VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0 @@ -3588,6 +4559,7 @@ VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10 + VkPerformanceCounterStorageKHR* {.size: sizeof(cint).} = enum VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1 @@ -3595,53 +4567,73 @@ VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5 + VkPerformanceCounterDescriptionFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0b00000000000000000000000000000001 - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkPerformanceCounterDescriptionFlagBitsKHR]): VkPerformanceCounterDescriptionFlagsKHR = + VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = + 0b00000000000000000000000000000001 + VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = + 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkPerformanceCounterDescriptionFlagBitsKHR] +): VkPerformanceCounterDescriptionFlagsKHR = for flag in flags: result = VkPerformanceCounterDescriptionFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkPerformanceCounterDescriptionFlagsKHR): seq[VkPerformanceCounterDescriptionFlagBitsKHR] = +func toEnums*( + number: VkPerformanceCounterDescriptionFlagsKHR +): seq[VkPerformanceCounterDescriptionFlagBitsKHR] = for value in VkPerformanceCounterDescriptionFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPerformanceCounterDescriptionFlagsKHR): bool = cint(a) == cint(b) +proc `==`*(a, b: VkPerformanceCounterDescriptionFlagsKHR): bool = + cint(a) == cint(b) + type VkPerformanceConfigurationTypeINTEL* {.size: sizeof(cint).} = enum - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0 + VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = + 0 + VkQueryPoolSamplingModeINTEL* {.size: sizeof(cint).} = enum VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0 + VkPerformanceOverrideTypeINTEL* {.size: sizeof(cint).} = enum VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1 + VkPerformanceParameterTypeINTEL* {.size: sizeof(cint).} = enum VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1 + VkPerformanceValueTypeINTEL* {.size: sizeof(cint).} = enum VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4 + VkShaderFloatControlsIndependence* {.size: sizeof(cint).} = enum VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2 + VkPipelineExecutableStatisticFormatKHR* {.size: sizeof(cint).} = enum VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3 + VkLineRasterizationModeEXT* {.size: sizeof(cint).} = enum VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3 + VkFaultLevel* {.size: sizeof(cint).} = enum VK_FAULT_LEVEL_UNASSIGNED = 0 VK_FAULT_LEVEL_CRITICAL = 1 VK_FAULT_LEVEL_RECOVERABLE = 2 VK_FAULT_LEVEL_WARNING = 3 + VkFaultType* {.size: sizeof(cint).} = enum VK_FAULT_TYPE_INVALID = 0 VK_FAULT_TYPE_UNASSIGNED = 1 @@ -3650,8 +4642,10 @@ VK_FAULT_TYPE_PHYSICAL_DEVICE = 4 VK_FAULT_TYPE_COMMAND_BUFFER_FULL = 5 VK_FAULT_TYPE_INVALID_API_USAGE = 6 + VkFaultQueryBehavior* {.size: sizeof(cint).} = enum VK_FAULT_QUERY_BEHAVIOR_GET_AND_CLEAR_ALL_FAULTS = 0 + VkToolPurposeFlagBits* {.size: sizeof(cint).} = enum VK_TOOL_PURPOSE_VALIDATION_BIT = 0b00000000000000000000000000000001 VK_TOOL_PURPOSE_PROFILING_BIT = 0b00000000000000000000000000000010 @@ -3660,6 +4654,7 @@ VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0b00000000000000000000000000010000 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0b00000000000000000000000000100000 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0b00000000000000000000000001000000 + func toBits*(flags: openArray[VkToolPurposeFlagBits]): VkToolPurposeFlags = for flag in flags: result = VkToolPurposeFlags(uint(result) or uint(flag)) @@ -3667,16 +4662,20 @@ for value in VkToolPurposeFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkToolPurposeFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkToolPurposeFlags): bool = + cint(a) == cint(b) + type VkPipelineMatchControl* {.size: sizeof(cint).} = enum VK_PIPELINE_MATCH_CONTROL_APPLICATION_UUID_EXACT_MATCH = 0 + VkFragmentShadingRateCombinerOpKHR* {.size: sizeof(cint).} = enum VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4 + VkFragmentShadingRateNV* {.size: sizeof(cint).} = enum VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1 @@ -3690,9 +4689,11 @@ VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15 + VkFragmentShadingRateTypeNV* {.size: sizeof(cint).} = enum VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1 + VkSubpassMergeStatusEXT* {.size: sizeof(cint).} = enum VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1 @@ -3708,50 +4709,95 @@ VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13 + VkAccessFlagBits2* {.size: 8.} = enum - VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 - VK_ACCESS_2_INDEX_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 - VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 - VK_ACCESS_2_UNIFORM_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 - VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 - VK_ACCESS_2_SHADER_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 - VK_ACCESS_2_SHADER_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 - VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 - VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 - VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 - VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 - VK_ACCESS_2_TRANSFER_READ_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 - VK_ACCESS_2_TRANSFER_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 - VK_ACCESS_2_HOST_READ_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 - VK_ACCESS_2_HOST_WRITE_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 - VK_ACCESS_2_MEMORY_READ_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 - VK_ACCESS_2_MEMORY_WRITE_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 - VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0b0000000000000000000000000000000000000000000000100000000000000000 - VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0b0000000000000000000000000000000000000000000001000000000000000000 - VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0b0000000000000000000000000000000000000000000010000000000000000000 - VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0b0000000000000000000000000000000000000000000100000000000000000000 - VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0b0000000000000000000000000000000000000000001000000000000000000000 - VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0b0000000000000000000000000000000000000000010000000000000000000000 - VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0b0000000000000000000000000000000000000000100000000000000000000000 - VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 - VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0b0000000000000000000000000000000000000010000000000000000000000000 - VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0b0000000000000000000000000000000000000100000000000000000000000000 - VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0b0000000000000000000000000000000000001000000000000000000000000000 - VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 - VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 - VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0b0000000000000000000000000000010000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0b0000000000000000000000000000100000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0b0000000000000000000000000001000000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0b0000000000000000000000000010000000000000000000000000000000000000 - VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0b0000000000000000000000000100000000000000000000000000000000000000 - VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0b0000000000000000000000001000000000000000000000000000000000000000 - VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0b0000000000000000000000010000000000000000000000000000000000000000 - VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0b0000000000000000000000100000000000000000000000000000000000000000 - VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0b0000000000000000000001000000000000000000000000000000000000000000 - VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0b0000000000000000000010000000000000000000000000000000000000000000 - VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0b0000000000000000000100000000000000000000000000000000000000000000 - VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0b0000000000000000001000000000000000000000000000000000000000000000 - VK_ACCESS_2_RESERVED_46_BIT_EXT = 0b0000000000000000010000000000000000000000000000000000000000000000 + VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000001 + VK_ACCESS_2_INDEX_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000010 + VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000100 + VK_ACCESS_2_UNIFORM_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000000001000 + VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000000010000 + VK_ACCESS_2_SHADER_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000000100000 + VK_ACCESS_2_SHADER_WRITE_BIT = + 0b0000000000000000000000000000000000000000000000000000000001000000 + VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000000010000000 + VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = + 0b0000000000000000000000000000000000000000000000000000000100000000 + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000001000000000 + VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = + 0b0000000000000000000000000000000000000000000000000000010000000000 + VK_ACCESS_2_TRANSFER_READ_BIT = + 0b0000000000000000000000000000000000000000000000000000100000000000 + VK_ACCESS_2_TRANSFER_WRITE_BIT = + 0b0000000000000000000000000000000000000000000000000001000000000000 + VK_ACCESS_2_HOST_READ_BIT = + 0b0000000000000000000000000000000000000000000000000010000000000000 + VK_ACCESS_2_HOST_WRITE_BIT = + 0b0000000000000000000000000000000000000000000000000100000000000000 + VK_ACCESS_2_MEMORY_READ_BIT = + 0b0000000000000000000000000000000000000000000000001000000000000000 + VK_ACCESS_2_MEMORY_WRITE_BIT = + 0b0000000000000000000000000000000000000000000000010000000000000000 + VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = + 0b0000000000000000000000000000000000000000000000100000000000000000 + VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = + 0b0000000000000000000000000000000000000000000001000000000000000000 + VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = + 0b0000000000000000000000000000000000000000000010000000000000000000 + VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = + 0b0000000000000000000000000000000000000000000100000000000000000000 + VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = + 0b0000000000000000000000000000000000000000001000000000000000000000 + VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = + 0b0000000000000000000000000000000000000000010000000000000000000000 + VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = + 0b0000000000000000000000000000000000000000100000000000000000000000 + VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = + 0b0000000000000000000000000000000000000001000000000000000000000000 + VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = + 0b0000000000000000000000000000000000000010000000000000000000000000 + VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = + 0b0000000000000000000000000000000000000100000000000000000000000000 + VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = + 0b0000000000000000000000000000000000001000000000000000000000000000 + VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = + 0b0000000000000000000000000000000100000000000000000000000000000000 + VK_ACCESS_2_SHADER_STORAGE_READ_BIT = + 0b0000000000000000000000000000001000000000000000000000000000000000 + VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = + 0b0000000000000000000000000000010000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = + 0b0000000000000000000000000000100000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = + 0b0000000000000000000000000001000000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = + 0b0000000000000000000000000010000000000000000000000000000000000000 + VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = + 0b0000000000000000000000000100000000000000000000000000000000000000 + VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = + 0b0000000000000000000000001000000000000000000000000000000000000000 + VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = + 0b0000000000000000000000010000000000000000000000000000000000000000 + VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = + 0b0000000000000000000000100000000000000000000000000000000000000000 + VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = + 0b0000000000000000000001000000000000000000000000000000000000000000 + VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = + 0b0000000000000000000010000000000000000000000000000000000000000000 + VK_ACCESS_2_MICROMAP_READ_BIT_EXT = + 0b0000000000000000000100000000000000000000000000000000000000000000 + VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = + 0b0000000000000000001000000000000000000000000000000000000000000000 + VK_ACCESS_2_RESERVED_46_BIT_EXT = + 0b0000000000000000010000000000000000000000000000000000000000000000 + func toBits*(flags: openArray[VkAccessFlagBits2]): VkAccessFlags2 = for flag in flags: result = VkAccessFlags2(uint64(result) or uint64(flag)) @@ -3759,52 +4805,94 @@ for value in VkAccessFlagBits2.items: if (cast[uint64](value) and uint64(number)) > 0: result.add value -proc `==`*(a, b: VkAccessFlags2): bool = uint64(a) == uint64(b) -const - VK_ACCESS_2_NONE* = 0 -type - VkPipelineStageFlagBits2* {.size: 8.} = enum - VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 - VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 - VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 - VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 - VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 - VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 - VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 - VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 - VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 - VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 - VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 - VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 - VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 - VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 - VK_PIPELINE_STAGE_2_HOST_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 - VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 - VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 - VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0b0000000000000000000000000000000000000000000000100000000000000000 - VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0b0000000000000000000000000000000000000000000001000000000000000000 - VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0b0000000000000000000000000000000000000000000010000000000000000000 - VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0b0000000000000000000000000000000000000000000100000000000000000000 - VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0b0000000000000000000000000000000000000000001000000000000000000000 - VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b0000000000000000000000000000000000000000010000000000000000000000 - VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0b0000000000000000000000000000000000000000100000000000000000000000 - VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 - VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0b0000000000000000000000000000000000000010000000000000000000000000 - VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0b0000000000000000000000000000000000000100000000000000000000000000 - VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0b0000000000000000000000000000000000001000000000000000000000000000 - VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0b0000000000000000000000000000000000010000000000000000000000000000 - VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0b0000000000000000000000000000000000100000000000000000000000000000 - VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0b0000000000000000000000000000000001000000000000000000000000000000 - VK_PIPELINE_STAGE_2_COPY_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 - VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_BLIT_BIT = 0b0000000000000000000000000000010000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_CLEAR_BIT = 0b0000000000000000000000000000100000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0b0000000000000000000000000001000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0b0000000000000000000000000010000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0b0000000000000000000000000100000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0b0000000000000000000000001000000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0b0000000000000000000000010000000000000000000000000000000000000000 - VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0b0000000000000000000000100000000000000000000000000000000000000000 +proc `==`*(a, b: VkAccessFlags2): bool = + uint64(a) == uint64(b) + +const VK_ACCESS_2_NONE* = 0 +type VkPipelineStageFlagBits2* {.size: 8.} = enum + VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000001 + VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000010 + VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000100 + VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = + 0b0000000000000000000000000000000000000000000000000000000000001000 + VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = + 0b0000000000000000000000000000000000000000000000000000000000010000 + VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = + 0b0000000000000000000000000000000000000000000000000000000000100000 + VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = + 0b0000000000000000000000000000000000000000000000000000000001000000 + VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = + 0b0000000000000000000000000000000000000000000000000000000010000000 + VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = + 0b0000000000000000000000000000000000000000000000000000000100000000 + VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = + 0b0000000000000000000000000000000000000000000000000000001000000000 + VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = + 0b0000000000000000000000000000000000000000000000000000010000000000 + VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = + 0b0000000000000000000000000000000000000000000000000000100000000000 + VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = + 0b0000000000000000000000000000000000000000000000000001000000000000 + VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = + 0b0000000000000000000000000000000000000000000000000010000000000000 + VK_PIPELINE_STAGE_2_HOST_BIT = + 0b0000000000000000000000000000000000000000000000000100000000000000 + VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = + 0b0000000000000000000000000000000000000000000000001000000000000000 + VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = + 0b0000000000000000000000000000000000000000000000010000000000000000 + VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = + 0b0000000000000000000000000000000000000000000000100000000000000000 + VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = + 0b0000000000000000000000000000000000000000000001000000000000000000 + VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = + 0b0000000000000000000000000000000000000000000010000000000000000000 + VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = + 0b0000000000000000000000000000000000000000000100000000000000000000 + VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = + 0b0000000000000000000000000000000000000000001000000000000000000000 + VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = + 0b0000000000000000000000000000000000000000010000000000000000000000 + VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = + 0b0000000000000000000000000000000000000000100000000000000000000000 + VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = + 0b0000000000000000000000000000000000000001000000000000000000000000 + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = + 0b0000000000000000000000000000000000000010000000000000000000000000 + VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = + 0b0000000000000000000000000000000000000100000000000000000000000000 + VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = + 0b0000000000000000000000000000000000001000000000000000000000000000 + VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = + 0b0000000000000000000000000000000000010000000000000000000000000000 + VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = + 0b0000000000000000000000000000000000100000000000000000000000000000 + VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = + 0b0000000000000000000000000000000001000000000000000000000000000000 + VK_PIPELINE_STAGE_2_COPY_BIT = + 0b0000000000000000000000000000000100000000000000000000000000000000 + VK_PIPELINE_STAGE_2_RESOLVE_BIT = + 0b0000000000000000000000000000001000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_BLIT_BIT = + 0b0000000000000000000000000000010000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_CLEAR_BIT = + 0b0000000000000000000000000000100000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = + 0b0000000000000000000000000001000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = + 0b0000000000000000000000000010000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = + 0b0000000000000000000000000100000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = + 0b0000000000000000000000001000000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = + 0b0000000000000000000000010000000000000000000000000000000000000000 + VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = + 0b0000000000000000000000100000000000000000000000000000000000000000 + func toBits*(flags: openArray[VkPipelineStageFlagBits2]): VkPipelineStageFlags2 = for flag in flags: result = VkPipelineStageFlags2(uint64(result) or uint64(flag)) @@ -3812,12 +4900,13 @@ for value in VkPipelineStageFlagBits2.items: if (cast[uint64](value) and uint64(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineStageFlags2): bool = uint64(a) == uint64(b) -const - VK_PIPELINE_STAGE_2_NONE* = 0 -type - VkSubmitFlagBits* {.size: sizeof(cint).} = enum - VK_SUBMIT_PROTECTED_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkPipelineStageFlags2): bool = + uint64(a) == uint64(b) + +const VK_PIPELINE_STAGE_2_NONE* = 0 +type VkSubmitFlagBits* {.size: sizeof(cint).} = enum + VK_SUBMIT_PROTECTED_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkSubmitFlagBits]): VkSubmitFlags = for flag in flags: result = VkSubmitFlags(uint(result) or uint(flag)) @@ -3825,10 +4914,12 @@ for value in VkSubmitFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkSubmitFlags): bool = cint(a) == cint(b) -type - VkEventCreateFlagBits* {.size: sizeof(cint).} = enum - VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkSubmitFlags): bool = + cint(a) == cint(b) + +type VkEventCreateFlagBits* {.size: sizeof(cint).} = enum + VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkEventCreateFlagBits]): VkEventCreateFlags = for flag in flags: result = VkEventCreateFlags(uint(result) or uint(flag)) @@ -3836,91 +4927,139 @@ for value in VkEventCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkEventCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineLayoutCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_LAYOUT_CREATE_RESERVED_0_BIT_AMD = 0b00000000000000000000000000000001 - VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkPipelineLayoutCreateFlagBits]): VkPipelineLayoutCreateFlags = +proc `==`*(a, b: VkEventCreateFlags): bool = + cint(a) == cint(b) + +type VkPipelineLayoutCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_LAYOUT_CREATE_RESERVED_0_BIT_AMD = 0b00000000000000000000000000000001 + VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = + 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkPipelineLayoutCreateFlagBits] +): VkPipelineLayoutCreateFlags = for flag in flags: result = VkPipelineLayoutCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineLayoutCreateFlags): seq[VkPipelineLayoutCreateFlagBits] = +func toEnums*( + number: VkPipelineLayoutCreateFlags +): seq[VkPipelineLayoutCreateFlagBits] = for value in VkPipelineLayoutCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineLayoutCreateFlags): bool = cint(a) == cint(b) +proc `==`*(a, b: VkPipelineLayoutCreateFlags): bool = + cint(a) == cint(b) + type VkSciSyncClientTypeNV* {.size: sizeof(cint).} = enum VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_NV = 0 VK_SCI_SYNC_CLIENT_TYPE_WAITER_NV = 1 VK_SCI_SYNC_CLIENT_TYPE_SIGNALER_WAITER_NV = 2 + VkSciSyncPrimitiveTypeNV* {.size: sizeof(cint).} = enum VK_SCI_SYNC_PRIMITIVE_TYPE_FENCE_NV = 0 VK_SCI_SYNC_PRIMITIVE_TYPE_SEMAPHORE_NV = 1 + VkProvokingVertexModeEXT* {.size: sizeof(cint).} = enum VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1 + VkPipelineCacheValidationVersion* {.size: sizeof(cint).} = enum VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE = 1 + VkAccelerationStructureMotionInstanceTypeNV* {.size: sizeof(cint).} = enum VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2 + VkPipelineColorBlendStateCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkPipelineColorBlendStateCreateFlagBits]): VkPipelineColorBlendStateCreateFlags = + VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = + 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkPipelineColorBlendStateCreateFlagBits] +): VkPipelineColorBlendStateCreateFlags = for flag in flags: result = VkPipelineColorBlendStateCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineColorBlendStateCreateFlags): seq[VkPipelineColorBlendStateCreateFlagBits] = +func toEnums*( + number: VkPipelineColorBlendStateCreateFlags +): seq[VkPipelineColorBlendStateCreateFlagBits] = for value in VkPipelineColorBlendStateCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineColorBlendStateCreateFlags): bool = cint(a) == cint(b) -type - VkPipelineDepthStencilStateCreateFlagBits* {.size: sizeof(cint).} = enum - VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0b00000000000000000000000000000001 - VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkPipelineDepthStencilStateCreateFlagBits]): VkPipelineDepthStencilStateCreateFlags = +proc `==`*(a, b: VkPipelineColorBlendStateCreateFlags): bool = + cint(a) == cint(b) + +type VkPipelineDepthStencilStateCreateFlagBits* {.size: sizeof(cint).} = enum + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = + 0b00000000000000000000000000000001 + VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = + 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkPipelineDepthStencilStateCreateFlagBits] +): VkPipelineDepthStencilStateCreateFlags = for flag in flags: result = VkPipelineDepthStencilStateCreateFlags(uint(result) or uint(flag)) -func toEnums*(number: VkPipelineDepthStencilStateCreateFlags): seq[VkPipelineDepthStencilStateCreateFlagBits] = +func toEnums*( + number: VkPipelineDepthStencilStateCreateFlags +): seq[VkPipelineDepthStencilStateCreateFlagBits] = for value in VkPipelineDepthStencilStateCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPipelineDepthStencilStateCreateFlags): bool = cint(a) == cint(b) -type - VkGraphicsPipelineLibraryFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0b00000000000000000000000000000001 - VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0b00000000000000000000000000000010 - VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0b00000000000000000000000000000100 - VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkGraphicsPipelineLibraryFlagBitsEXT]): VkGraphicsPipelineLibraryFlagsEXT = +proc `==`*(a, b: VkPipelineDepthStencilStateCreateFlags): bool = + cint(a) == cint(b) + +type VkGraphicsPipelineLibraryFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = + 0b00000000000000000000000000000001 + VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = + 0b00000000000000000000000000000010 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = + 0b00000000000000000000000000000100 + VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkGraphicsPipelineLibraryFlagBitsEXT] +): VkGraphicsPipelineLibraryFlagsEXT = for flag in flags: result = VkGraphicsPipelineLibraryFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkGraphicsPipelineLibraryFlagsEXT): seq[VkGraphicsPipelineLibraryFlagBitsEXT] = +func toEnums*( + number: VkGraphicsPipelineLibraryFlagsEXT +): seq[VkGraphicsPipelineLibraryFlagBitsEXT] = for value in VkGraphicsPipelineLibraryFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkGraphicsPipelineLibraryFlagsEXT): bool = cint(a) == cint(b) -type - VkDeviceAddressBindingFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkDeviceAddressBindingFlagBitsEXT]): VkDeviceAddressBindingFlagsEXT = +proc `==`*(a, b: VkGraphicsPipelineLibraryFlagsEXT): bool = + cint(a) == cint(b) + +type VkDeviceAddressBindingFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkDeviceAddressBindingFlagBitsEXT] +): VkDeviceAddressBindingFlagsEXT = for flag in flags: result = VkDeviceAddressBindingFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkDeviceAddressBindingFlagsEXT): seq[VkDeviceAddressBindingFlagBitsEXT] = +func toEnums*( + number: VkDeviceAddressBindingFlagsEXT +): seq[VkDeviceAddressBindingFlagBitsEXT] = for value in VkDeviceAddressBindingFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkDeviceAddressBindingFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkDeviceAddressBindingFlagsEXT): bool = + cint(a) == cint(b) + type VkDeviceAddressBindingTypeEXT* {.size: sizeof(cint).} = enum VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1 + VkPresentScalingFlagBitsEXT* {.size: sizeof(cint).} = enum VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = 0b00000000000000000000000000000001 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = 0b00000000000000000000000000000010 VK_PRESENT_SCALING_STRETCH_BIT_EXT = 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkPresentScalingFlagBitsEXT]): VkPresentScalingFlagsEXT = for flag in flags: result = VkPresentScalingFlagsEXT(uint(result) or uint(flag)) @@ -3928,12 +5067,14 @@ for value in VkPresentScalingFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPresentScalingFlagsEXT): bool = cint(a) == cint(b) -type - VkPresentGravityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0b00000000000000000000000000000001 - VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0b00000000000000000000000000000010 - VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0b00000000000000000000000000000100 +proc `==`*(a, b: VkPresentScalingFlagsEXT): bool = + cint(a) == cint(b) + +type VkPresentGravityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_PRESENT_GRAVITY_MIN_BIT_EXT = 0b00000000000000000000000000000001 + VK_PRESENT_GRAVITY_MAX_BIT_EXT = 0b00000000000000000000000000000010 + VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkPresentGravityFlagBitsEXT]): VkPresentGravityFlagsEXT = for flag in flags: result = VkPresentGravityFlagsEXT(uint(result) or uint(flag)) @@ -3941,166 +5082,230 @@ for value in VkPresentGravityFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkPresentGravityFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoCodecOperationFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0b00000000000000010000000000000000 - VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0b00000000000000100000000000000000 -func toBits*(flags: openArray[VkVideoCodecOperationFlagBitsKHR]): VkVideoCodecOperationFlagsKHR = +proc `==`*(a, b: VkPresentGravityFlagsEXT): bool = + cint(a) == cint(b) + +type VkVideoCodecOperationFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT = 0b00000000000000010000000000000000 + VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT = 0b00000000000000100000000000000000 + +func toBits*( + flags: openArray[VkVideoCodecOperationFlagBitsKHR] +): VkVideoCodecOperationFlagsKHR = for flag in flags: result = VkVideoCodecOperationFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoCodecOperationFlagsKHR): seq[VkVideoCodecOperationFlagBitsKHR] = +func toEnums*( + number: VkVideoCodecOperationFlagsKHR +): seq[VkVideoCodecOperationFlagBitsKHR] = for value in VkVideoCodecOperationFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoCodecOperationFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_CODEC_OPERATION_NONE_KHR* = 0 -type - VkVideoChromaSubsamplingFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0b00000000000000000000000000000100 - VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkVideoChromaSubsamplingFlagBitsKHR]): VkVideoChromaSubsamplingFlagsKHR = +proc `==`*(a, b: VkVideoCodecOperationFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_CODEC_OPERATION_NONE_KHR* = 0 +type VkVideoChromaSubsamplingFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0b00000000000000000000000000000100 + VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkVideoChromaSubsamplingFlagBitsKHR] +): VkVideoChromaSubsamplingFlagsKHR = for flag in flags: result = VkVideoChromaSubsamplingFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoChromaSubsamplingFlagsKHR): seq[VkVideoChromaSubsamplingFlagBitsKHR] = +func toEnums*( + number: VkVideoChromaSubsamplingFlagsKHR +): seq[VkVideoChromaSubsamplingFlagBitsKHR] = for value in VkVideoChromaSubsamplingFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoChromaSubsamplingFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR* = 0 -type - VkVideoComponentBitDepthFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0b00000000000000000000000000000100 - VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkVideoComponentBitDepthFlagBitsKHR]): VkVideoComponentBitDepthFlagsKHR = +proc `==`*(a, b: VkVideoChromaSubsamplingFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR* = 0 +type VkVideoComponentBitDepthFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0b00000000000000000000000000000100 + VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0b00000000000000000000000000010000 + +func toBits*( + flags: openArray[VkVideoComponentBitDepthFlagBitsKHR] +): VkVideoComponentBitDepthFlagsKHR = for flag in flags: result = VkVideoComponentBitDepthFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoComponentBitDepthFlagsKHR): seq[VkVideoComponentBitDepthFlagBitsKHR] = +func toEnums*( + number: VkVideoComponentBitDepthFlagsKHR +): seq[VkVideoComponentBitDepthFlagBitsKHR] = for value in VkVideoComponentBitDepthFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoComponentBitDepthFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR* = 0 -type - VkVideoCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkVideoCapabilityFlagBitsKHR]): VkVideoCapabilityFlagsKHR = +proc `==`*(a, b: VkVideoComponentBitDepthFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR* = 0 +type VkVideoCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = + 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkVideoCapabilityFlagBitsKHR] +): VkVideoCapabilityFlagsKHR = for flag in flags: result = VkVideoCapabilityFlagsKHR(uint(result) or uint(flag)) func toEnums*(number: VkVideoCapabilityFlagsKHR): seq[VkVideoCapabilityFlagBitsKHR] = for value in VkVideoCapabilityFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoCapabilityFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoSessionCreateFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkVideoSessionCreateFlagBitsKHR]): VkVideoSessionCreateFlagsKHR = +proc `==`*(a, b: VkVideoCapabilityFlagsKHR): bool = + cint(a) == cint(b) + +type VkVideoSessionCreateFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkVideoSessionCreateFlagBitsKHR] +): VkVideoSessionCreateFlagsKHR = for flag in flags: result = VkVideoSessionCreateFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoSessionCreateFlagsKHR): seq[VkVideoSessionCreateFlagBitsKHR] = +func toEnums*( + number: VkVideoSessionCreateFlagsKHR +): seq[VkVideoSessionCreateFlagBitsKHR] = for value in VkVideoSessionCreateFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoSessionCreateFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoDecodeH264PictureLayoutFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkVideoDecodeH264PictureLayoutFlagBitsKHR]): VkVideoDecodeH264PictureLayoutFlagsKHR = +proc `==`*(a, b: VkVideoSessionCreateFlagsKHR): bool = + cint(a) == cint(b) + +type VkVideoDecodeH264PictureLayoutFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = + 0b00000000000000000000000000000001 + VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = + 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkVideoDecodeH264PictureLayoutFlagBitsKHR] +): VkVideoDecodeH264PictureLayoutFlagsKHR = for flag in flags: result = VkVideoDecodeH264PictureLayoutFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoDecodeH264PictureLayoutFlagsKHR): seq[VkVideoDecodeH264PictureLayoutFlagBitsKHR] = +func toEnums*( + number: VkVideoDecodeH264PictureLayoutFlagsKHR +): seq[VkVideoDecodeH264PictureLayoutFlagBitsKHR] = for value in VkVideoDecodeH264PictureLayoutFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoDecodeH264PictureLayoutFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR* = 0 -type - VkVideoCodingControlFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoCodingControlFlagBitsKHR]): VkVideoCodingControlFlagsKHR = +proc `==`*(a, b: VkVideoDecodeH264PictureLayoutFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR* = 0 +type VkVideoCodingControlFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = + 0b00000000000000000000000000000010 + VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_LAYER_BIT_KHR = + 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoCodingControlFlagBitsKHR] +): VkVideoCodingControlFlagsKHR = for flag in flags: result = VkVideoCodingControlFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoCodingControlFlagsKHR): seq[VkVideoCodingControlFlagBitsKHR] = +func toEnums*( + number: VkVideoCodingControlFlagsKHR +): seq[VkVideoCodingControlFlagBitsKHR] = for value in VkVideoCodingControlFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoCodingControlFlagsKHR): bool = cint(a) == cint(b) +proc `==`*(a, b: VkVideoCodingControlFlagsKHR): bool = + cint(a) == cint(b) + type VkQueryResultStatusKHR* {.size: sizeof(cint).} = enum VK_QUERY_RESULT_STATUS_ERROR_KHR = -1 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1 + VkVideoDecodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0b00000000000000000000000000000010 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoDecodeUsageFlagBitsKHR]): VkVideoDecodeUsageFlagsKHR = + +func toBits*( + flags: openArray[VkVideoDecodeUsageFlagBitsKHR] +): VkVideoDecodeUsageFlagsKHR = for flag in flags: result = VkVideoDecodeUsageFlagsKHR(uint(result) or uint(flag)) func toEnums*(number: VkVideoDecodeUsageFlagsKHR): seq[VkVideoDecodeUsageFlagBitsKHR] = for value in VkVideoDecodeUsageFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoDecodeUsageFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_DECODE_USAGE_DEFAULT_KHR* = 0 -type - VkVideoDecodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0b00000000000000000000000000000010 -func toBits*(flags: openArray[VkVideoDecodeCapabilityFlagBitsKHR]): VkVideoDecodeCapabilityFlagsKHR = +proc `==`*(a, b: VkVideoDecodeUsageFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_DECODE_USAGE_DEFAULT_KHR* = 0 +type VkVideoDecodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = + 0b00000000000000000000000000000001 + VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = + 0b00000000000000000000000000000010 + +func toBits*( + flags: openArray[VkVideoDecodeCapabilityFlagBitsKHR] +): VkVideoDecodeCapabilityFlagsKHR = for flag in flags: result = VkVideoDecodeCapabilityFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoDecodeCapabilityFlagsKHR): seq[VkVideoDecodeCapabilityFlagBitsKHR] = +func toEnums*( + number: VkVideoDecodeCapabilityFlagsKHR +): seq[VkVideoDecodeCapabilityFlagBitsKHR] = for value in VkVideoDecodeCapabilityFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoDecodeCapabilityFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoEncodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkVideoEncodeUsageFlagBitsKHR]): VkVideoEncodeUsageFlagsKHR = +proc `==`*(a, b: VkVideoDecodeCapabilityFlagsKHR): bool = + cint(a) == cint(b) + +type VkVideoEncodeUsageFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkVideoEncodeUsageFlagBitsKHR] +): VkVideoEncodeUsageFlagsKHR = for flag in flags: result = VkVideoEncodeUsageFlagsKHR(uint(result) or uint(flag)) func toEnums*(number: VkVideoEncodeUsageFlagsKHR): seq[VkVideoEncodeUsageFlagBitsKHR] = for value in VkVideoEncodeUsageFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeUsageFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR* = 0 -type - VkVideoEncodeContentFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeContentFlagBitsKHR]): VkVideoEncodeContentFlagsKHR = +proc `==`*(a, b: VkVideoEncodeUsageFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR* = 0 +type VkVideoEncodeContentFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoEncodeContentFlagBitsKHR] +): VkVideoEncodeContentFlagsKHR = for flag in flags: result = VkVideoEncodeContentFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeContentFlagsKHR): seq[VkVideoEncodeContentFlagBitsKHR] = +func toEnums*( + number: VkVideoEncodeContentFlagsKHR +): seq[VkVideoEncodeContentFlagBitsKHR] = for value in VkVideoEncodeContentFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeContentFlagsKHR): bool = cint(a) == cint(b) -const - VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR* = 0 +proc `==`*(a, b: VkVideoEncodeContentFlagsKHR): bool = + cint(a) == cint(b) + +const VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR* = 0 type VkVideoEncodeTuningModeKHR* {.size: sizeof(cint).} = enum VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0 @@ -4108,156 +5313,270 @@ VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4 + VkVideoEncodeCapabilityFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkVideoEncodeCapabilityFlagBitsKHR]): VkVideoEncodeCapabilityFlagsKHR = + VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = + 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkVideoEncodeCapabilityFlagBitsKHR] +): VkVideoEncodeCapabilityFlagsKHR = for flag in flags: result = VkVideoEncodeCapabilityFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeCapabilityFlagsKHR): seq[VkVideoEncodeCapabilityFlagBitsKHR] = +func toEnums*( + number: VkVideoEncodeCapabilityFlagsKHR +): seq[VkVideoEncodeCapabilityFlagBitsKHR] = for value in VkVideoEncodeCapabilityFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeCapabilityFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoEncodeRateControlModeFlagBitsKHR* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeRateControlModeFlagBitsKHR]): VkVideoEncodeRateControlModeFlagsKHR = +proc `==`*(a, b: VkVideoEncodeCapabilityFlagsKHR): bool = + cint(a) == cint(b) + +type VkVideoEncodeRateControlModeFlagBitsKHR* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_NONE_BIT_KHR = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoEncodeRateControlModeFlagBitsKHR] +): VkVideoEncodeRateControlModeFlagsKHR = for flag in flags: result = VkVideoEncodeRateControlModeFlagsKHR(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeRateControlModeFlagsKHR): seq[VkVideoEncodeRateControlModeFlagBitsKHR] = +func toEnums*( + number: VkVideoEncodeRateControlModeFlagsKHR +): seq[VkVideoEncodeRateControlModeFlagBitsKHR] = for value in VkVideoEncodeRateControlModeFlagBitsKHR.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeRateControlModeFlagsKHR): bool = cint(a) == cint(b) -type - VkVideoEncodeH264CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = 0b00000000000000000000000000001000 - VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = 0b00000000000000000000000000010000 - VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0b00000000000000000000000000100000 - VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = 0b00000000000000000000000001000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = 0b00000000000000000000000010000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = 0b00000000000000000000000100000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0b00000000000000000000001000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = 0b00000000000000000000010000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = 0b00000000000000000000100000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0b00000000000000000001000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = 0b00000000000000000010000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0b00000000000000000100000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0b00000000000000001000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = 0b00000000000000010000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = 0b00000000000000100000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = 0b00000000000001000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = 0b00000000000010000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = 0b00000000000100000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = 0b00000000001000000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = 0b00000000010000000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0b00000000100000000000000000000000 - VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0b00000001000000000000000000000000 -func toBits*(flags: openArray[VkVideoEncodeH264CapabilityFlagBitsEXT]): VkVideoEncodeH264CapabilityFlagsEXT = +proc `==`*(a, b: VkVideoEncodeRateControlModeFlagsKHR): bool = + cint(a) == cint(b) + +type VkVideoEncodeH264CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_ENABLED_BIT_EXT = + 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H264_CAPABILITY_DIRECT_8X8_INFERENCE_DISABLED_BIT_EXT = + 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H264_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = + 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_H264_CAPABILITY_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_BIT_EXT = + 0b00000000000000000000000000001000 + VK_VIDEO_ENCODE_H264_CAPABILITY_SCALING_LISTS_BIT_EXT = + 0b00000000000000000000000000010000 + VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = + 0b00000000000000000000000000100000 + VK_VIDEO_ENCODE_H264_CAPABILITY_CHROMA_QP_OFFSET_BIT_EXT = + 0b00000000000000000000000001000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_SECOND_CHROMA_QP_OFFSET_BIT_EXT = + 0b00000000000000000000000010000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_PIC_INIT_QP_MINUS26_BIT_EXT = + 0b00000000000000000000000100000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_BIT_EXT = + 0b00000000000000000000001000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_EXPLICIT_BIT_EXT = + 0b00000000000000000000010000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_BIPRED_IMPLICIT_BIT_EXT = + 0b00000000000000000000100000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = + 0b00000000000000000001000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_TRANSFORM_8X8_BIT_EXT = + 0b00000000000000000010000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_CABAC_BIT_EXT = 0b00000000000000000100000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_CAVLC_BIT_EXT = 0b00000000000000001000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_DISABLED_BIT_EXT = + 0b00000000000000010000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_ENABLED_BIT_EXT = + 0b00000000000000100000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DEBLOCKING_FILTER_PARTIAL_BIT_EXT = + 0b00000000000001000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DISABLE_DIRECT_SPATIAL_MV_PRED_BIT_EXT = + 0b00000000000010000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_MULTIPLE_SLICE_PER_FRAME_BIT_EXT = + 0b00000000000100000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_SLICE_MB_COUNT_BIT_EXT = + 0b00000000001000000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_EXT = + 0b00000000010000000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = + 0b00000000100000000000000000000000 + VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = + 0b00000001000000000000000000000000 + +func toBits*( + flags: openArray[VkVideoEncodeH264CapabilityFlagBitsEXT] +): VkVideoEncodeH264CapabilityFlagsEXT = for flag in flags: result = VkVideoEncodeH264CapabilityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH264CapabilityFlagsEXT): seq[VkVideoEncodeH264CapabilityFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH264CapabilityFlagsEXT +): seq[VkVideoEncodeH264CapabilityFlagBitsEXT] = for value in VkVideoEncodeH264CapabilityFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH264CapabilityFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH264InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH264InputModeFlagBitsEXT]): VkVideoEncodeH264InputModeFlagsEXT = +proc `==`*(a, b: VkVideoEncodeH264CapabilityFlagsEXT): bool = + cint(a) == cint(b) + +type VkVideoEncodeH264InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H264_INPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H264_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoEncodeH264InputModeFlagBitsEXT] +): VkVideoEncodeH264InputModeFlagsEXT = for flag in flags: result = VkVideoEncodeH264InputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH264InputModeFlagsEXT): seq[VkVideoEncodeH264InputModeFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH264InputModeFlagsEXT +): seq[VkVideoEncodeH264InputModeFlagBitsEXT] = for value in VkVideoEncodeH264InputModeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH264InputModeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH264OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH264OutputModeFlagBitsEXT]): VkVideoEncodeH264OutputModeFlagsEXT = +proc `==`*(a, b: VkVideoEncodeH264InputModeFlagsEXT): bool = + cint(a) == cint(b) + +type VkVideoEncodeH264OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_SLICE_BIT_EXT = 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H264_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoEncodeH264OutputModeFlagBitsEXT] +): VkVideoEncodeH264OutputModeFlagsEXT = for flag in flags: result = VkVideoEncodeH264OutputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH264OutputModeFlagsEXT): seq[VkVideoEncodeH264OutputModeFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH264OutputModeFlagsEXT +): seq[VkVideoEncodeH264OutputModeFlagBitsEXT] = for value in VkVideoEncodeH264OutputModeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH264OutputModeFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkVideoEncodeH264OutputModeFlagsEXT): bool = + cint(a) == cint(b) + type VkVideoEncodeH264RateControlStructureEXT* {.size: sizeof(cint).} = enum VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0 VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1 VK_VIDEO_ENCODE_H264_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2 + VkImageConstraintsInfoFlagBitsFUCHSIA* {.size: sizeof(cint).} = enum - VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = 0b00000000000000000000000000000001 - VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = 0b00000000000000000000000000000010 - VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = 0b00000000000000000000000000000100 - VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = 0b00000000000000000000000000001000 - VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkImageConstraintsInfoFlagBitsFUCHSIA]): VkImageConstraintsInfoFlagsFUCHSIA = + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA = + 0b00000000000000000000000000000001 + VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA = + 0b00000000000000000000000000000010 + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA = + 0b00000000000000000000000000000100 + VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA = + 0b00000000000000000000000000001000 + VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA = + 0b00000000000000000000000000010000 + +func toBits*( + flags: openArray[VkImageConstraintsInfoFlagBitsFUCHSIA] +): VkImageConstraintsInfoFlagsFUCHSIA = for flag in flags: result = VkImageConstraintsInfoFlagsFUCHSIA(uint(result) or uint(flag)) -func toEnums*(number: VkImageConstraintsInfoFlagsFUCHSIA): seq[VkImageConstraintsInfoFlagBitsFUCHSIA] = +func toEnums*( + number: VkImageConstraintsInfoFlagsFUCHSIA +): seq[VkImageConstraintsInfoFlagBitsFUCHSIA] = for value in VkImageConstraintsInfoFlagBitsFUCHSIA.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageConstraintsInfoFlagsFUCHSIA): bool = cint(a) == cint(b) -type - VkFormatFeatureFlagBits2* {.size: 8.} = enum - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000001 - VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0b0000000000000000000000000000000000000000000000000000000000000010 - VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0b0000000000000000000000000000000000000000000000000000000000000100 - VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000000001000 - VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000000010000 - VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0b0000000000000000000000000000000000000000000000000000000000100000 - VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0b0000000000000000000000000000000000000000000000000000000001000000 - VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0b0000000000000000000000000000000000000000000000000000000010000000 - VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0b0000000000000000000000000000000000000000000000000000000100000000 - VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0b0000000000000000000000000000000000000000000000000000001000000000 - VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0b0000000000000000000000000000000000000000000000000000010000000000 - VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0b0000000000000000000000000000000000000000000000000000100000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0b0000000000000000000000000000000000000000000000000001000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0b0000000000000000000000000000000000000000000000000010000000000000 - VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0b0000000000000000000000000000000000000000000000000100000000000000 - VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0b0000000000000000000000000000000000000000000000001000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0b0000000000000000000000000000000000000000000000010000000000000000 - VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0b0000000000000000000000000000000000000000000000100000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0b0000000000000000000000000000000000000000000001000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0b0000000000000000000000000000000000000000000010000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0b0000000000000000000000000000000000000000000100000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0b0000000000000000000000000000000000000000001000000000000000000000 - VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0b0000000000000000000000000000000000000000010000000000000000000000 - VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0b0000000000000000000000000000000000000000100000000000000000000000 - VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0b0000000000000000000000000000000000000001000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0b0000000000000000000000000000000000000010000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0b0000000000000000000000000000000000000100000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0b0000000000000000000000000000000000001000000000000000000000000000 - VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0b0000000000000000000000000000000000010000000000000000000000000000 - VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0b0000000000000000000000000000000000100000000000000000000000000000 - VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0b0000000000000000000000000000000001000000000000000000000000000000 - VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0b0000000000000000000000000000000010000000000000000000000000000000 - VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0b0000000000000000000000000000000100000000000000000000000000000000 - VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0b0000000000000000000000000000001000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0b0000000000000000000000000000010000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0b0000000000000000000000000000100000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0b0000000000000000000000000001000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0b0000000000000000000000000010000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0b0000000000000000000000000100000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_RESERVED_39_BIT_EXT = 0b0000000000000000000000001000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0b0000000000000000000000010000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0b0000000000000000000000100000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0b0000000000000000000001000000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_RESERVED_44_BIT_EXT = 0b0000000000000000000100000000000000000000000000000000000000000000 - VK_FORMAT_FEATURE_2_RESERVED_45_BIT_EXT = 0b0000000000000000001000000000000000000000000000000000000000000000 +proc `==`*(a, b: VkImageConstraintsInfoFlagsFUCHSIA): bool = + cint(a) == cint(b) + +type VkFormatFeatureFlagBits2* {.size: 8.} = enum + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000001 + VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000010 + VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = + 0b0000000000000000000000000000000000000000000000000000000000000100 + VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = + 0b0000000000000000000000000000000000000000000000000000000000001000 + VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = + 0b0000000000000000000000000000000000000000000000000000000000010000 + VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = + 0b0000000000000000000000000000000000000000000000000000000000100000 + VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = + 0b0000000000000000000000000000000000000000000000000000000001000000 + VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = + 0b0000000000000000000000000000000000000000000000000000000010000000 + VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = + 0b0000000000000000000000000000000000000000000000000000000100000000 + VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = + 0b0000000000000000000000000000000000000000000000000000001000000000 + VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = + 0b0000000000000000000000000000000000000000000000000000010000000000 + VK_FORMAT_FEATURE_2_BLIT_DST_BIT = + 0b0000000000000000000000000000000000000000000000000000100000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = + 0b0000000000000000000000000000000000000000000000000001000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = + 0b0000000000000000000000000000000000000000000000000010000000000000 + VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = + 0b0000000000000000000000000000000000000000000000000100000000000000 + VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = + 0b0000000000000000000000000000000000000000000000001000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = + 0b0000000000000000000000000000000000000000000000010000000000000000 + VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = + 0b0000000000000000000000000000000000000000000000100000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = + 0b0000000000000000000000000000000000000000000001000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = + 0b0000000000000000000000000000000000000000000010000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = + 0b0000000000000000000000000000000000000000000100000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = + 0b0000000000000000000000000000000000000000001000000000000000000000 + VK_FORMAT_FEATURE_2_DISJOINT_BIT = + 0b0000000000000000000000000000000000000000010000000000000000000000 + VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = + 0b0000000000000000000000000000000000000000100000000000000000000000 + VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = + 0b0000000000000000000000000000000000000001000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = + 0b0000000000000000000000000000000000000010000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = + 0b0000000000000000000000000000000000000100000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = + 0b0000000000000000000000000000000000001000000000000000000000000000 + VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = + 0b0000000000000000000000000000000000010000000000000000000000000000 + VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = + 0b0000000000000000000000000000000000100000000000000000000000000000 + VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = + 0b0000000000000000000000000000000001000000000000000000000000000000 + VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = + 0b0000000000000000000000000000000010000000000000000000000000000000 + VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = + 0b0000000000000000000000000000000100000000000000000000000000000000 + VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = + 0b0000000000000000000000000000001000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = + 0b0000000000000000000000000000010000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = + 0b0000000000000000000000000000100000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = + 0b0000000000000000000000000001000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = + 0b0000000000000000000000000010000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = + 0b0000000000000000000000000100000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_RESERVED_39_BIT_EXT = + 0b0000000000000000000000001000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = + 0b0000000000000000000000010000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = + 0b0000000000000000000000100000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = + 0b0000000000000000000001000000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_RESERVED_44_BIT_EXT = + 0b0000000000000000000100000000000000000000000000000000000000000000 + VK_FORMAT_FEATURE_2_RESERVED_45_BIT_EXT = + 0b0000000000000000001000000000000000000000000000000000000000000000 + func toBits*(flags: openArray[VkFormatFeatureFlagBits2]): VkFormatFeatureFlags2 = for flag in flags: result = VkFormatFeatureFlags2(uint64(result) or uint64(flag)) @@ -4265,13 +5584,16 @@ for value in VkFormatFeatureFlagBits2.items: if (cast[uint64](value) and uint64(number)) > 0: result.add value -proc `==`*(a, b: VkFormatFeatureFlags2): bool = uint64(a) == uint64(b) -type - VkRenderingFlagBits* {.size: sizeof(cint).} = enum - VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0b00000000000000000000000000000001 - VK_RENDERING_SUSPENDING_BIT = 0b00000000000000000000000000000010 - VK_RENDERING_RESUMING_BIT = 0b00000000000000000000000000000100 - VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000000001000 +proc `==`*(a, b: VkFormatFeatureFlags2): bool = + uint64(a) == uint64(b) + +type VkRenderingFlagBits* {.size: sizeof(cint).} = enum + VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = + 0b00000000000000000000000000000001 + VK_RENDERING_SUSPENDING_BIT = 0b00000000000000000000000000000010 + VK_RENDERING_RESUMING_BIT = 0b00000000000000000000000000000100 + VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0b00000000000000000000000000001000 + func toBits*(flags: openArray[VkRenderingFlagBits]): VkRenderingFlags = for flag in flags: result = VkRenderingFlags(uint(result) or uint(flag)) @@ -4279,119 +5601,194 @@ for value in VkRenderingFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkRenderingFlags): bool = cint(a) == cint(b) -type - VkVideoEncodeH265CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = 0b00000000000000000000000000001000 - VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = 0b00000000000000000000000000010000 - VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = 0b00000000000000000000000000100000 - VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = 0b00000000000000000000000001000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = 0b00000000000000000000000010000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = 0b00000000000000000000000100000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = 0b00000000000000000000001000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = 0b00000000000000000000010000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = 0b00000000000000000000100000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = 0b00000000000000000001000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = 0b00000000000000000010000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = 0b00000000000000000100000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = 0b00000000000000001000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = 0b00000000000000010000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = 0b00000000000000100000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = 0b00000000000001000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = 0b00000000000010000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = 0b00000000000100000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = 0b00000000001000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = 0b00000000010000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = 0b00000000100000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = 0b00000001000000000000000000000000 - VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = 0b00000010000000000000000000000000 -func toBits*(flags: openArray[VkVideoEncodeH265CapabilityFlagBitsEXT]): VkVideoEncodeH265CapabilityFlagsEXT = +proc `==`*(a, b: VkRenderingFlags): bool = + cint(a) == cint(b) + +type VkVideoEncodeH265CapabilityFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_CAPABILITY_SEPARATE_COLOUR_PLANE_BIT_EXT = + 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_CAPABILITY_SCALING_LISTS_BIT_EXT = + 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_CAPABILITY_SAMPLE_ADAPTIVE_OFFSET_ENABLED_BIT_EXT = + 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_H265_CAPABILITY_PCM_ENABLE_BIT_EXT = + 0b00000000000000000000000000001000 + VK_VIDEO_ENCODE_H265_CAPABILITY_SPS_TEMPORAL_MVP_ENABLED_BIT_EXT = + 0b00000000000000000000000000010000 + VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_EXT = + 0b00000000000000000000000000100000 + VK_VIDEO_ENCODE_H265_CAPABILITY_INIT_QP_MINUS26_BIT_EXT = + 0b00000000000000000000000001000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_EXT = + 0b00000000000000000000000010000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_SIGN_DATA_HIDING_ENABLED_BIT_EXT = + 0b00000000000000000000000100000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_ENABLED_BIT_EXT = + 0b00000000000000000000001000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSFORM_SKIP_DISABLED_BIT_EXT = + 0b00000000000000000000010000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_BIT_EXT = + 0b00000000000000000000100000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_BIT_EXT = + 0b00000000000000000001000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_BIPRED_BIT_EXT = + 0b00000000000000000010000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_WEIGHTED_PRED_NO_TABLE_BIT_EXT = + 0b00000000000000000100000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_TRANSQUANT_BYPASS_ENABLED_BIT_EXT = + 0b00000000000000001000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_ENTROPY_CODING_SYNC_ENABLED_BIT_EXT = + 0b00000000000000010000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_DEBLOCKING_FILTER_OVERRIDE_ENABLED_BIT_EXT = + 0b00000000000000100000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_FRAME_BIT_EXT = + 0b00000000000001000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_PER_TILE_BIT_EXT = + 0b00000000000010000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILE_PER_SLICE_BIT_EXT = + 0b00000000000100000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_SLICE_SEGMENT_CTB_COUNT_BIT_EXT = + 0b00000000001000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_EXT = + 0b00000000010000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_DEPENDENT_SLICE_SEGMENT_BIT_EXT = + 0b00000000100000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_EXT = + 0b00000001000000000000000000000000 + VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_EXT = + 0b00000010000000000000000000000000 + +func toBits*( + flags: openArray[VkVideoEncodeH265CapabilityFlagBitsEXT] +): VkVideoEncodeH265CapabilityFlagsEXT = for flag in flags: result = VkVideoEncodeH265CapabilityFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265CapabilityFlagsEXT): seq[VkVideoEncodeH265CapabilityFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH265CapabilityFlagsEXT +): seq[VkVideoEncodeH265CapabilityFlagBitsEXT] = for value in VkVideoEncodeH265CapabilityFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH265CapabilityFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH265InputModeFlagBitsEXT]): VkVideoEncodeH265InputModeFlagsEXT = +proc `==`*(a, b: VkVideoEncodeH265CapabilityFlagsEXT): bool = + cint(a) == cint(b) + +type VkVideoEncodeH265InputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_INPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_INPUT_MODE_SLICE_SEGMENT_BIT_EXT = + 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_INPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoEncodeH265InputModeFlagBitsEXT] +): VkVideoEncodeH265InputModeFlagsEXT = for flag in flags: result = VkVideoEncodeH265InputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265InputModeFlagsEXT): seq[VkVideoEncodeH265InputModeFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH265InputModeFlagsEXT +): seq[VkVideoEncodeH265InputModeFlagBitsEXT] = for value in VkVideoEncodeH265InputModeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH265InputModeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH265OutputModeFlagBitsEXT]): VkVideoEncodeH265OutputModeFlagsEXT = +proc `==`*(a, b: VkVideoEncodeH265InputModeFlagsEXT): bool = + cint(a) == cint(b) + +type VkVideoEncodeH265OutputModeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_FRAME_BIT_EXT = 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_SLICE_SEGMENT_BIT_EXT = + 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_OUTPUT_MODE_NON_VCL_BIT_EXT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkVideoEncodeH265OutputModeFlagBitsEXT] +): VkVideoEncodeH265OutputModeFlagsEXT = for flag in flags: result = VkVideoEncodeH265OutputModeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265OutputModeFlagsEXT): seq[VkVideoEncodeH265OutputModeFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH265OutputModeFlagsEXT +): seq[VkVideoEncodeH265OutputModeFlagBitsEXT] = for value in VkVideoEncodeH265OutputModeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH265OutputModeFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkVideoEncodeH265OutputModeFlagsEXT): bool = + cint(a) == cint(b) + type VkVideoEncodeH265RateControlStructureEXT* {.size: sizeof(cint).} = enum VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_UNKNOWN_EXT = 0 VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_FLAT_EXT = 1 VK_VIDEO_ENCODE_H265_RATE_CONTROL_STRUCTURE_DYADIC_EXT = 2 + VkVideoEncodeH265CtbSizeFlagBitsEXT* {.size: sizeof(cint).} = enum VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_EXT = 0b00000000000000000000000000000001 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_EXT = 0b00000000000000000000000000000010 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkVideoEncodeH265CtbSizeFlagBitsEXT]): VkVideoEncodeH265CtbSizeFlagsEXT = + +func toBits*( + flags: openArray[VkVideoEncodeH265CtbSizeFlagBitsEXT] +): VkVideoEncodeH265CtbSizeFlagsEXT = for flag in flags: result = VkVideoEncodeH265CtbSizeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265CtbSizeFlagsEXT): seq[VkVideoEncodeH265CtbSizeFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH265CtbSizeFlagsEXT +): seq[VkVideoEncodeH265CtbSizeFlagBitsEXT] = for value in VkVideoEncodeH265CtbSizeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH265CtbSizeFlagsEXT): bool = cint(a) == cint(b) -type - VkVideoEncodeH265TransformBlockSizeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = 0b00000000000000000000000000000001 - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = 0b00000000000000000000000000000010 - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = 0b00000000000000000000000000000100 - VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT]): VkVideoEncodeH265TransformBlockSizeFlagsEXT = +proc `==`*(a, b: VkVideoEncodeH265CtbSizeFlagsEXT): bool = + cint(a) == cint(b) + +type VkVideoEncodeH265TransformBlockSizeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_EXT = + 0b00000000000000000000000000000001 + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_EXT = + 0b00000000000000000000000000000010 + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_EXT = + 0b00000000000000000000000000000100 + VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_EXT = + 0b00000000000000000000000000001000 + +func toBits*( + flags: openArray[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT] +): VkVideoEncodeH265TransformBlockSizeFlagsEXT = for flag in flags: result = VkVideoEncodeH265TransformBlockSizeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkVideoEncodeH265TransformBlockSizeFlagsEXT): seq[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT] = +func toEnums*( + number: VkVideoEncodeH265TransformBlockSizeFlagsEXT +): seq[VkVideoEncodeH265TransformBlockSizeFlagBitsEXT] = for value in VkVideoEncodeH265TransformBlockSizeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkVideoEncodeH265TransformBlockSizeFlagsEXT): bool = cint(a) == cint(b) -type - VkExportMetalObjectTypeFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0b00000000000000000000000000000001 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = 0b00000000000000000000000000000010 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0b00000000000000000000000000000100 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0b00000000000000000000000000001000 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = 0b00000000000000000000000000010000 - VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = 0b00000000000000000000000000100000 -func toBits*(flags: openArray[VkExportMetalObjectTypeFlagBitsEXT]): VkExportMetalObjectTypeFlagsEXT = +proc `==`*(a, b: VkVideoEncodeH265TransformBlockSizeFlagsEXT): bool = + cint(a) == cint(b) + +type VkExportMetalObjectTypeFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT = 0b00000000000000000000000000000001 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT = + 0b00000000000000000000000000000010 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT = 0b00000000000000000000000000000100 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT = 0b00000000000000000000000000001000 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT = + 0b00000000000000000000000000010000 + VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT = + 0b00000000000000000000000000100000 + +func toBits*( + flags: openArray[VkExportMetalObjectTypeFlagBitsEXT] +): VkExportMetalObjectTypeFlagsEXT = for flag in flags: result = VkExportMetalObjectTypeFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkExportMetalObjectTypeFlagsEXT): seq[VkExportMetalObjectTypeFlagBitsEXT] = +func toEnums*( + number: VkExportMetalObjectTypeFlagsEXT +): seq[VkExportMetalObjectTypeFlagBitsEXT] = for value in VkExportMetalObjectTypeFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkExportMetalObjectTypeFlagsEXT): bool = cint(a) == cint(b) -type - VkInstanceCreateFlagBits* {.size: sizeof(cint).} = enum - VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkExportMetalObjectTypeFlagsEXT): bool = + cint(a) == cint(b) + +type VkInstanceCreateFlagBits* {.size: sizeof(cint).} = enum + VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkInstanceCreateFlagBits]): VkInstanceCreateFlags = for flag in flags: result = VkInstanceCreateFlags(uint(result) or uint(flag)) @@ -4399,107 +5796,129 @@ for value in VkInstanceCreateFlagBits.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkInstanceCreateFlags): bool = cint(a) == cint(b) -type - VkImageCompressionFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0b00000000000000000000000000000001 - VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0b00000000000000000000000000000010 - VK_IMAGE_COMPRESSION_DISABLED_EXT = 0b00000000000000000000000000000100 -func toBits*(flags: openArray[VkImageCompressionFlagBitsEXT]): VkImageCompressionFlagsEXT = +proc `==`*(a, b: VkInstanceCreateFlags): bool = + cint(a) == cint(b) + +type VkImageCompressionFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0b00000000000000000000000000000001 + VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0b00000000000000000000000000000010 + VK_IMAGE_COMPRESSION_DISABLED_EXT = 0b00000000000000000000000000000100 + +func toBits*( + flags: openArray[VkImageCompressionFlagBitsEXT] +): VkImageCompressionFlagsEXT = for flag in flags: result = VkImageCompressionFlagsEXT(uint(result) or uint(flag)) func toEnums*(number: VkImageCompressionFlagsEXT): seq[VkImageCompressionFlagBitsEXT] = for value in VkImageCompressionFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageCompressionFlagsEXT): bool = cint(a) == cint(b) -const - VK_IMAGE_COMPRESSION_DEFAULT_EXT* = 0 -type - VkImageCompressionFixedRateFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0b00000000000000000000000000000001 - VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0b00000000000000000000000000000010 - VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0b00000000000000000000000000000100 - VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0b00000000000000000000000000001000 - VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0b00000000000000000000000000010000 - VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0b00000000000000000000000000100000 - VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0b00000000000000000000000001000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0b00000000000000000000000010000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0b00000000000000000000000100000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0b00000000000000000000001000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0b00000000000000000000010000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0b00000000000000000000100000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0b00000000000000000001000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0b00000000000000000010000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0b00000000000000000100000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0b00000000000000001000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0b00000000000000010000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0b00000000000000100000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0b00000000000001000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0b00000000000010000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0b00000000000100000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0b00000000001000000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0b00000000010000000000000000000000 - VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0b00000000100000000000000000000000 -func toBits*(flags: openArray[VkImageCompressionFixedRateFlagBitsEXT]): VkImageCompressionFixedRateFlagsEXT = +proc `==`*(a, b: VkImageCompressionFlagsEXT): bool = + cint(a) == cint(b) + +const VK_IMAGE_COMPRESSION_DEFAULT_EXT* = 0 +type VkImageCompressionFixedRateFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0b00000000000000000000000000000001 + VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0b00000000000000000000000000000010 + VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0b00000000000000000000000000000100 + VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0b00000000000000000000000000001000 + VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0b00000000000000000000000000010000 + VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0b00000000000000000000000000100000 + VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0b00000000000000000000000001000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0b00000000000000000000000010000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0b00000000000000000000000100000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0b00000000000000000000001000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0b00000000000000000000010000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0b00000000000000000000100000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0b00000000000000000001000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0b00000000000000000010000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0b00000000000000000100000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0b00000000000000001000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0b00000000000000010000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0b00000000000000100000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0b00000000000001000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0b00000000000010000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0b00000000000100000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0b00000000001000000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0b00000000010000000000000000000000 + VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0b00000000100000000000000000000000 + +func toBits*( + flags: openArray[VkImageCompressionFixedRateFlagBitsEXT] +): VkImageCompressionFixedRateFlagsEXT = for flag in flags: result = VkImageCompressionFixedRateFlagsEXT(uint(result) or uint(flag)) -func toEnums*(number: VkImageCompressionFixedRateFlagsEXT): seq[VkImageCompressionFixedRateFlagBitsEXT] = +func toEnums*( + number: VkImageCompressionFixedRateFlagsEXT +): seq[VkImageCompressionFixedRateFlagBitsEXT] = for value in VkImageCompressionFixedRateFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkImageCompressionFixedRateFlagsEXT): bool = cint(a) == cint(b) -const - VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT* = 0 +proc `==`*(a, b: VkImageCompressionFixedRateFlagsEXT): bool = + cint(a) == cint(b) + +const VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT* = 0 type VkPipelineRobustnessBufferBehaviorEXT* {.size: sizeof(cint).} = enum VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = 1 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = 2 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = 3 + VkPipelineRobustnessImageBehaviorEXT* {.size: sizeof(cint).} = enum VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = 0 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = 1 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = 2 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = 3 + VkOpticalFlowGridSizeFlagBitsNV* {.size: sizeof(cint).} = enum VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0b00000000000000000000000000000001 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0b00000000000000000000000000000010 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0b00000000000000000000000000000100 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0b00000000000000000000000000001000 -func toBits*(flags: openArray[VkOpticalFlowGridSizeFlagBitsNV]): VkOpticalFlowGridSizeFlagsNV = + +func toBits*( + flags: openArray[VkOpticalFlowGridSizeFlagBitsNV] +): VkOpticalFlowGridSizeFlagsNV = for flag in flags: result = VkOpticalFlowGridSizeFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowGridSizeFlagsNV): seq[VkOpticalFlowGridSizeFlagBitsNV] = +func toEnums*( + number: VkOpticalFlowGridSizeFlagsNV +): seq[VkOpticalFlowGridSizeFlagBitsNV] = for value in VkOpticalFlowGridSizeFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkOpticalFlowGridSizeFlagsNV): bool = cint(a) == cint(b) -const - VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV* = 0 -type - VkOpticalFlowUsageFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0b00000000000000000000000000000001 - VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0b00000000000000000000000000000010 - VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0b00000000000000000000000000000100 - VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0b00000000000000000000000000001000 - VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkOpticalFlowUsageFlagBitsNV]): VkOpticalFlowUsageFlagsNV = +proc `==`*(a, b: VkOpticalFlowGridSizeFlagsNV): bool = + cint(a) == cint(b) + +const VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV* = 0 +type VkOpticalFlowUsageFlagBitsNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0b00000000000000000000000000000001 + VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0b00000000000000000000000000000010 + VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0b00000000000000000000000000000100 + VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0b00000000000000000000000000001000 + VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000010000 + +func toBits*( + flags: openArray[VkOpticalFlowUsageFlagBitsNV] +): VkOpticalFlowUsageFlagsNV = for flag in flags: result = VkOpticalFlowUsageFlagsNV(uint(result) or uint(flag)) func toEnums*(number: VkOpticalFlowUsageFlagsNV): seq[VkOpticalFlowUsageFlagBitsNV] = for value in VkOpticalFlowUsageFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkOpticalFlowUsageFlagsNV): bool = cint(a) == cint(b) -const - VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV* = 0 +proc `==`*(a, b: VkOpticalFlowUsageFlagsNV): bool = + cint(a) == cint(b) + +const VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV* = 0 type VkOpticalFlowPerformanceLevelNV* {.size: sizeof(cint).} = enum VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3 + VkOpticalFlowSessionBindingPointNV* {.size: sizeof(cint).} = enum VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1 @@ -4510,38 +5929,60 @@ VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8 + VkOpticalFlowSessionCreateFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0b00000000000000000000000000000001 - VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0b00000000000000000000000000000010 - VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0b00000000000000000000000000000100 - VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0b00000000000000000000000000001000 - VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0b00000000000000000000000000010000 -func toBits*(flags: openArray[VkOpticalFlowSessionCreateFlagBitsNV]): VkOpticalFlowSessionCreateFlagsNV = + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = + 0b00000000000000000000000000000001 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = + 0b00000000000000000000000000000010 + VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = + 0b00000000000000000000000000000100 + VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = + 0b00000000000000000000000000001000 + VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = + 0b00000000000000000000000000010000 + +func toBits*( + flags: openArray[VkOpticalFlowSessionCreateFlagBitsNV] +): VkOpticalFlowSessionCreateFlagsNV = for flag in flags: result = VkOpticalFlowSessionCreateFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowSessionCreateFlagsNV): seq[VkOpticalFlowSessionCreateFlagBitsNV] = +func toEnums*( + number: VkOpticalFlowSessionCreateFlagsNV +): seq[VkOpticalFlowSessionCreateFlagBitsNV] = for value in VkOpticalFlowSessionCreateFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkOpticalFlowSessionCreateFlagsNV): bool = cint(a) == cint(b) -type - VkOpticalFlowExecuteFlagBitsNV* {.size: sizeof(cint).} = enum - VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0b00000000000000000000000000000001 -func toBits*(flags: openArray[VkOpticalFlowExecuteFlagBitsNV]): VkOpticalFlowExecuteFlagsNV = +proc `==`*(a, b: VkOpticalFlowSessionCreateFlagsNV): bool = + cint(a) == cint(b) + +type VkOpticalFlowExecuteFlagBitsNV* {.size: sizeof(cint).} = enum + VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = + 0b00000000000000000000000000000001 + +func toBits*( + flags: openArray[VkOpticalFlowExecuteFlagBitsNV] +): VkOpticalFlowExecuteFlagsNV = for flag in flags: result = VkOpticalFlowExecuteFlagsNV(uint(result) or uint(flag)) -func toEnums*(number: VkOpticalFlowExecuteFlagsNV): seq[VkOpticalFlowExecuteFlagBitsNV] = +func toEnums*( + number: VkOpticalFlowExecuteFlagsNV +): seq[VkOpticalFlowExecuteFlagBitsNV] = for value in VkOpticalFlowExecuteFlagBitsNV.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkOpticalFlowExecuteFlagsNV): bool = cint(a) == cint(b) +proc `==`*(a, b: VkOpticalFlowExecuteFlagsNV): bool = + cint(a) == cint(b) + type VkMicromapTypeEXT* {.size: sizeof(cint).} = enum VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0 + VkBuildMicromapFlagBitsEXT* {.size: sizeof(cint).} = enum VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0b00000000000000000000000000000001 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0b00000000000000000000000000000010 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0b00000000000000000000000000000100 + func toBits*(flags: openArray[VkBuildMicromapFlagBitsEXT]): VkBuildMicromapFlagsEXT = for flag in flags: result = VkBuildMicromapFlagsEXT(uint(result) or uint(flag)) @@ -4549,10 +5990,13 @@ for value in VkBuildMicromapFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkBuildMicromapFlagsEXT): bool = cint(a) == cint(b) -type - VkMicromapCreateFlagBitsEXT* {.size: sizeof(cint).} = enum - VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0b00000000000000000000000000000001 +proc `==`*(a, b: VkBuildMicromapFlagsEXT): bool = + cint(a) == cint(b) + +type VkMicromapCreateFlagBitsEXT* {.size: sizeof(cint).} = enum + VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = + 0b00000000000000000000000000000001 + func toBits*(flags: openArray[VkMicromapCreateFlagBitsEXT]): VkMicromapCreateFlagsEXT = for flag in flags: result = VkMicromapCreateFlagsEXT(uint(result) or uint(flag)) @@ -4560,23 +6004,29 @@ for value in VkMicromapCreateFlagBitsEXT.items: if (value.ord and cint(number)) > 0: result.add value -proc `==`*(a, b: VkMicromapCreateFlagsEXT): bool = cint(a) == cint(b) +proc `==`*(a, b: VkMicromapCreateFlagsEXT): bool = + cint(a) == cint(b) + type VkCopyMicromapModeEXT* {.size: sizeof(cint).} = enum VK_COPY_MICROMAP_MODE_CLONE_EXT = 0 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3 + VkBuildMicromapModeEXT* {.size: sizeof(cint).} = enum VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0 + VkOpacityMicromapFormatEXT* {.size: sizeof(cint).} = enum VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2 + VkOpacityMicromapSpecialIndexEXT* {.size: sizeof(cint).} = enum VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1 + VkDeviceFaultAddressTypeEXT* {.size: sizeof(cint).} = enum VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1 @@ -4585,131 +6035,379 @@ VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6 + VkDeviceFaultVendorBinaryHeaderVersionEXT* {.size: sizeof(cint).} = enum VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT_ENUM = 1 -proc `$`*(bitset: VkFramebufferCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkRenderPassCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSamplerCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineCacheCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineShaderStageCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDescriptorSetLayoutCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkInstanceCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceQueueCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkBufferCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkBufferUsageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkColorComponentFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandPoolCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandPoolResetFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandBufferResetFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCommandBufferUsageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkCullModeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkFenceCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkFormatFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageAspectFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageUsageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageViewCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryHeapFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkAccessFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryPropertyFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueryControlFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueryPipelineStatisticFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueryResultFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkQueueFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkShaderStageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSparseMemoryBindFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkStencilFaceFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineStageFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSparseImageFormatFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSampleCountFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkAttachmentDescriptionFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDescriptorPoolCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDependencyFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkEventCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineLayoutCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkIndirectCommandsLayoutUsageFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkIndirectStateFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkPrivateDataSlotCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSubpassDescriptionFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkResolveModeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDescriptorBindingFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkConditionalRenderingFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkGeometryFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkGeometryInstanceFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkBuildAccelerationStructureFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkAccelerationStructureCreateFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceDiagnosticsConfigFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineCreationFeedbackFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPerformanceCounterDescriptionFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSemaphoreWaitFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkToolPurposeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkAccessFlags2): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineStageFlags2): string = $toEnums(bitset) -proc `$`*(bitset: VkImageConstraintsInfoFlagsFUCHSIA): string = $toEnums(bitset) -proc `$`*(bitset: VkFormatFeatureFlags2): string = $toEnums(bitset) -proc `$`*(bitset: VkRenderingFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineDepthStencilStateCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkPipelineColorBlendStateCreateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkImageCompressionFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkImageCompressionFixedRateFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkExportMetalObjectTypeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceAddressBindingFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkBuildMicromapFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkMicromapCreateFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryDecompressionMethodFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkCompositeAlphaFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkDisplayPlaneAlphaFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSurfaceTransformFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkDebugReportFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryHandleTypeFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryFeatureFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryHandleTypeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalMemoryFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalSemaphoreHandleTypeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalSemaphoreFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSemaphoreImportFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalFenceHandleTypeFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkExternalFenceFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkFenceImportFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkSurfaceCounterFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkPeerMemoryFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkMemoryAllocateFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDeviceGroupPresentModeFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSwapchainCreateFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkSubgroupFeatureFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkDebugUtilsMessageSeverityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkDebugUtilsMessageTypeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkSwapchainImageUsageFlagsANDROID): string = $toEnums(bitset) -proc `$`*(bitset: VkSubmitFlags): string = $toEnums(bitset) -proc `$`*(bitset: VkGraphicsPipelineLibraryFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowGridSizeFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowUsageFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowSessionCreateFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkOpticalFlowExecuteFlagsNV): string = $toEnums(bitset) -proc `$`*(bitset: VkPresentScalingFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkPresentGravityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoCodecOperationFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoChromaSubsamplingFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoComponentBitDepthFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoCapabilityFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoSessionCreateFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoCodingControlFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoDecodeUsageFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoDecodeCapabilityFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoDecodeH264PictureLayoutFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeUsageFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeContentFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeCapabilityFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeRateControlModeFlagsKHR): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH264CapabilityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH264InputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH264OutputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265CapabilityFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265InputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265OutputModeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265CtbSizeFlagsEXT): string = $toEnums(bitset) -proc `$`*(bitset: VkVideoEncodeH265TransformBlockSizeFlagsEXT): string = $toEnums(bitset) + +proc `$`*(bitset: VkFramebufferCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkRenderPassCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSamplerCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineCacheCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineShaderStageCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDescriptorSetLayoutCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkInstanceCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDeviceQueueCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkBufferCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkBufferUsageFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkColorComponentFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkCommandPoolCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkCommandPoolResetFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkCommandBufferResetFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkCommandBufferUsageFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkCullModeFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkFenceCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkFormatFeatureFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageAspectFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageUsageFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageViewCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkMemoryHeapFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkAccessFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkMemoryPropertyFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkQueryControlFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkQueryPipelineStatisticFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkQueryResultFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkQueueFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkShaderStageFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSparseMemoryBindFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkStencilFaceFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineStageFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSparseImageFormatFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSampleCountFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkAttachmentDescriptionFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDescriptorPoolCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDependencyFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkEventCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineLayoutCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkIndirectCommandsLayoutUsageFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkIndirectStateFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPrivateDataSlotCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSubpassDescriptionFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkResolveModeFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDescriptorBindingFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkConditionalRenderingFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkGeometryFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkGeometryInstanceFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkBuildAccelerationStructureFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkAccelerationStructureCreateFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDeviceDiagnosticsConfigFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineCreationFeedbackFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPerformanceCounterDescriptionFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSemaphoreWaitFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkToolPurposeFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkAccessFlags2): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineStageFlags2): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageConstraintsInfoFlagsFUCHSIA): string = + $toEnums(bitset) + +proc `$`*(bitset: VkFormatFeatureFlags2): string = + $toEnums(bitset) + +proc `$`*(bitset: VkRenderingFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineDepthStencilStateCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPipelineColorBlendStateCreateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageCompressionFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkImageCompressionFixedRateFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExportMetalObjectTypeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDeviceAddressBindingFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkBuildMicromapFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkMicromapCreateFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkMemoryDecompressionMethodFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkCompositeAlphaFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDisplayPlaneAlphaFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSurfaceTransformFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDebugReportFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalMemoryHandleTypeFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalMemoryFeatureFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalMemoryHandleTypeFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalMemoryFeatureFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalSemaphoreHandleTypeFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalSemaphoreFeatureFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSemaphoreImportFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalFenceHandleTypeFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkExternalFenceFeatureFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkFenceImportFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSurfaceCounterFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPeerMemoryFeatureFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkMemoryAllocateFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDeviceGroupPresentModeFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSwapchainCreateFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSubgroupFeatureFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDebugUtilsMessageSeverityFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkDebugUtilsMessageTypeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSwapchainImageUsageFlagsANDROID): string = + $toEnums(bitset) + +proc `$`*(bitset: VkSubmitFlags): string = + $toEnums(bitset) + +proc `$`*(bitset: VkGraphicsPipelineLibraryFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkOpticalFlowGridSizeFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkOpticalFlowUsageFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkOpticalFlowSessionCreateFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkOpticalFlowExecuteFlagsNV): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPresentScalingFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkPresentGravityFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoCodecOperationFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoChromaSubsamplingFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoComponentBitDepthFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoCapabilityFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoSessionCreateFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoCodingControlFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoDecodeUsageFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoDecodeCapabilityFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoDecodeH264PictureLayoutFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeUsageFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeContentFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeCapabilityFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeRateControlModeFlagsKHR): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH264CapabilityFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH264InputModeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH264OutputModeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH265CapabilityFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH265InputModeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH265OutputModeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH265CtbSizeFlagsEXT): string = + $toEnums(bitset) + +proc `$`*(bitset: VkVideoEncodeH265TransformBlockSizeFlagsEXT): string = + $toEnums(bitset) + type VkGeometryFlagsNV* = VkGeometryFlagsKHR VkGeometryInstanceFlagsNV* = VkGeometryInstanceFlagsKHR @@ -4776,38 +6474,85 @@ VkShaderFloatControlsIndependenceKHR* = VkShaderFloatControlsIndependence VkSubmitFlagBitsKHR* = VkSubmitFlagBits VkDriverIdKHR* = VkDriverId + type - PFN_vkInternalAllocationNotification* = proc(pUserData: pointer, size: csize_t, allocationType: VkInternalAllocationType, allocationScope: VkSystemAllocationScope): void {.cdecl.} - PFN_vkInternalFreeNotification* = proc(pUserData: pointer, size: csize_t, allocationType: VkInternalAllocationType, allocationScope: VkSystemAllocationScope): void {.cdecl.} - PFN_vkReallocationFunction* = proc(pUserData: pointer, pOriginal: pointer, size: csize_t, alignment: csize_t, allocationScope: VkSystemAllocationScope): pointer {.cdecl.} - PFN_vkAllocationFunction* = proc(pUserData: pointer, size: csize_t, alignment: csize_t, allocationScope: VkSystemAllocationScope): pointer {.cdecl.} + PFN_vkInternalAllocationNotification* = proc( + pUserData: pointer, + size: csize_t, + allocationType: VkInternalAllocationType, + allocationScope: VkSystemAllocationScope, + ): void {.cdecl.} + PFN_vkInternalFreeNotification* = proc( + pUserData: pointer, + size: csize_t, + allocationType: VkInternalAllocationType, + allocationScope: VkSystemAllocationScope, + ): void {.cdecl.} + PFN_vkReallocationFunction* = proc( + pUserData: pointer, + pOriginal: pointer, + size: csize_t, + alignment: csize_t, + allocationScope: VkSystemAllocationScope, + ): pointer {.cdecl.} + PFN_vkAllocationFunction* = proc( + pUserData: pointer, + size: csize_t, + alignment: csize_t, + allocationScope: VkSystemAllocationScope, + ): pointer {.cdecl.} PFN_vkFreeFunction* = proc(pUserData: pointer, pMemory: pointer): void {.cdecl.} PFN_vkVoidFunction* = proc(): void {.cdecl.} - PFN_vkDebugReportCallbackEXT* = proc(flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring, pUserData: pointer): VkBool32 {.cdecl.} - PFN_vkDebugUtilsMessengerCallbackEXT* = proc(messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, pUserData: pointer): VkBool32 {.cdecl.} - PFN_vkFaultCallbackFunction* = proc(unrecordedFaults: VkBool32, faultCount: uint32, pFaults: ptr VkFaultData): void {.cdecl.} - PFN_vkDeviceMemoryReportCallbackEXT* = proc(pCallbackData: ptr VkDeviceMemoryReportCallbackDataEXT, pUserData: pointer): void {.cdecl.} - PFN_vkGetInstanceProcAddrLUNARG* = proc(instance: VkInstance, pName: cstring): PFN_vkVoidFunction {.cdecl.} + PFN_vkDebugReportCallbackEXT* = proc( + flags: VkDebugReportFlagsEXT, + objectType: VkDebugReportObjectTypeEXT, + theobject: uint64, + location: csize_t, + messageCode: int32, + pLayerPrefix: cstring, + pMessage: cstring, + pUserData: pointer, + ): VkBool32 {.cdecl.} + PFN_vkDebugUtilsMessengerCallbackEXT* = proc( + messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, + messageTypes: VkDebugUtilsMessageTypeFlagsEXT, + pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, + pUserData: pointer, + ): VkBool32 {.cdecl.} + PFN_vkFaultCallbackFunction* = proc( + unrecordedFaults: VkBool32, faultCount: uint32, pFaults: ptr VkFaultData + ): void {.cdecl.} + PFN_vkDeviceMemoryReportCallbackEXT* = proc( + pCallbackData: ptr VkDeviceMemoryReportCallbackDataEXT, pUserData: pointer + ): void {.cdecl.} + PFN_vkGetInstanceProcAddrLUNARG* = + proc(instance: VkInstance, pName: cstring): PFN_vkVoidFunction {.cdecl.} VkBaseOutStructure* = object sType*: VkStructureType pNext*: ptr VkBaseOutStructure + VkBaseInStructure* = object sType*: VkStructureType pNext*: ptr VkBaseInStructure + VkOffset2D* = object x*: int32 y*: int32 + VkOffset3D* = object x*: int32 y*: int32 z*: int32 + VkExtent2D* = object width*: uint32 height*: uint32 + VkExtent3D* = object width*: uint32 height*: uint32 depth*: uint32 + VkViewport* = object x*: float32 y*: float32 @@ -4815,18 +6560,22 @@ height*: float32 minDepth*: float32 maxDepth*: float32 + VkRect2D* = object offset*: VkOffset2D extent*: VkExtent2D + VkClearRect* = object rect*: VkRect2D baseArrayLayer*: uint32 layerCount*: uint32 + VkComponentMapping* = object r*: VkComponentSwizzle g*: VkComponentSwizzle b*: VkComponentSwizzle a*: VkComponentSwizzle + VkPhysicalDeviceProperties* = object apiVersion*: uint32 driverVersion*: uint32 @@ -4837,14 +6586,17 @@ pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] limits*: VkPhysicalDeviceLimits sparseProperties*: VkPhysicalDeviceSparseProperties + VkExtensionProperties* = object extensionName*: array[VK_MAX_EXTENSION_NAME_SIZE, char] specVersion*: uint32 + VkLayerProperties* = object layerName*: array[VK_MAX_EXTENSION_NAME_SIZE, char] specVersion*: uint32 implementationVersion*: uint32 description*: array[VK_MAX_DESCRIPTION_SIZE, char] + VkApplicationInfo* = object sType*: VkStructureType pNext*: pointer @@ -4853,6 +6605,7 @@ pEngineName*: cstring engineVersion*: uint32 apiVersion*: uint32 + VkAllocationCallbacks* = object pUserData*: pointer pfnAllocation*: PFN_vkAllocationFunction @@ -4860,6 +6613,7 @@ pfnFree*: PFN_vkFreeFunction pfnInternalAllocation*: PFN_vkInternalAllocationNotification pfnInternalFree*: PFN_vkInternalFreeNotification + VkDeviceQueueCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -4867,6 +6621,7 @@ queueFamilyIndex*: uint32 queueCount*: uint32 pQueuePriorities*: ptr float32 + VkDeviceCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -4878,6 +6633,7 @@ enabledExtensionCount*: uint32 ppEnabledExtensionNames*: cstringArray pEnabledFeatures*: ptr VkPhysicalDeviceFeatures + VkInstanceCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -4887,65 +6643,79 @@ ppEnabledLayerNames*: cstringArray enabledExtensionCount*: uint32 ppEnabledExtensionNames*: cstringArray + VkQueueFamilyProperties* = object queueFlags*: VkQueueFlags queueCount*: uint32 timestampValidBits*: uint32 minImageTransferGranularity*: VkExtent3D + VkPhysicalDeviceMemoryProperties* = object memoryTypeCount*: uint32 memoryTypes*: array[VK_MAX_MEMORY_TYPES, VkMemoryType] memoryHeapCount*: uint32 memoryHeaps*: array[VK_MAX_MEMORY_HEAPS, VkMemoryHeap] + VkMemoryAllocateInfo* = object sType*: VkStructureType pNext*: pointer allocationSize*: VkDeviceSize memoryTypeIndex*: uint32 + VkMemoryRequirements* = object size*: VkDeviceSize alignment*: VkDeviceSize memoryTypeBits*: uint32 + VkSparseImageFormatProperties* = object aspectMask*: VkImageAspectFlags imageGranularity*: VkExtent3D flags*: VkSparseImageFormatFlags + VkSparseImageMemoryRequirements* = object formatProperties*: VkSparseImageFormatProperties imageMipTailFirstLod*: uint32 imageMipTailSize*: VkDeviceSize imageMipTailOffset*: VkDeviceSize imageMipTailStride*: VkDeviceSize + VkMemoryType* = object propertyFlags*: VkMemoryPropertyFlags heapIndex*: uint32 + VkMemoryHeap* = object size*: VkDeviceSize flags*: VkMemoryHeapFlags + VkMappedMemoryRange* = object sType*: VkStructureType pNext*: pointer memory*: VkDeviceMemory offset*: VkDeviceSize size*: VkDeviceSize + VkFormatProperties* = object linearTilingFeatures*: VkFormatFeatureFlags optimalTilingFeatures*: VkFormatFeatureFlags bufferFeatures*: VkFormatFeatureFlags + VkImageFormatProperties* = object maxExtent*: VkExtent3D maxMipLevels*: uint32 maxArrayLayers*: uint32 sampleCounts*: VkSampleCountFlags maxResourceSize*: VkDeviceSize + VkDescriptorBufferInfo* = object buffer*: VkBuffer offset*: VkDeviceSize range*: VkDeviceSize + VkDescriptorImageInfo* = object sampler*: VkSampler imageView*: VkImageView imageLayout*: VkImageLayout + VkWriteDescriptorSet* = object sType*: VkStructureType pNext*: pointer @@ -4957,6 +6727,7 @@ pImageInfo*: ptr VkDescriptorImageInfo pBufferInfo*: ptr VkDescriptorBufferInfo pTexelBufferView*: ptr VkBufferView + VkCopyDescriptorSet* = object sType*: VkStructureType pNext*: pointer @@ -4967,6 +6738,7 @@ dstBinding*: uint32 dstArrayElement*: uint32 descriptorCount*: uint32 + VkBufferCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -4976,6 +6748,7 @@ sharingMode*: VkSharingMode queueFamilyIndexCount*: uint32 pQueueFamilyIndices*: ptr uint32 + VkBufferViewCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -4984,26 +6757,31 @@ format*: VkFormat offset*: VkDeviceSize range*: VkDeviceSize + VkImageSubresource* = object aspectMask*: VkImageAspectFlags mipLevel*: uint32 arrayLayer*: uint32 + VkImageSubresourceLayers* = object aspectMask*: VkImageAspectFlags mipLevel*: uint32 baseArrayLayer*: uint32 layerCount*: uint32 + VkImageSubresourceRange* = object aspectMask*: VkImageAspectFlags baseMipLevel*: uint32 levelCount*: uint32 baseArrayLayer*: uint32 layerCount*: uint32 + VkMemoryBarrier* = object sType*: VkStructureType pNext*: pointer srcAccessMask*: VkAccessFlags dstAccessMask*: VkAccessFlags + VkBufferMemoryBarrier* = object sType*: VkStructureType pNext*: pointer @@ -5014,6 +6792,7 @@ buffer*: VkBuffer offset*: VkDeviceSize size*: VkDeviceSize + VkImageMemoryBarrier* = object sType*: VkStructureType pNext*: pointer @@ -5025,6 +6804,7 @@ dstQueueFamilyIndex*: uint32 image*: VkImage subresourceRange*: VkImageSubresourceRange + VkImageCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5041,12 +6821,14 @@ queueFamilyIndexCount*: uint32 pQueueFamilyIndices*: ptr uint32 initialLayout*: VkImageLayout + VkSubresourceLayout* = object offset*: VkDeviceSize size*: VkDeviceSize rowPitch*: VkDeviceSize arrayPitch*: VkDeviceSize depthPitch*: VkDeviceSize + VkImageViewCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5056,16 +6838,19 @@ format*: VkFormat components*: VkComponentMapping subresourceRange*: VkImageSubresourceRange + VkBufferCopy* = object srcOffset*: VkDeviceSize dstOffset*: VkDeviceSize size*: VkDeviceSize + VkSparseMemoryBind* = object resourceOffset*: VkDeviceSize size*: VkDeviceSize memory*: VkDeviceMemory memoryOffset*: VkDeviceSize flags*: VkSparseMemoryBindFlags + VkSparseImageMemoryBind* = object subresource*: VkImageSubresource offset*: VkOffset3D @@ -5073,18 +6858,22 @@ memory*: VkDeviceMemory memoryOffset*: VkDeviceSize flags*: VkSparseMemoryBindFlags + VkSparseBufferMemoryBindInfo* = object buffer*: VkBuffer bindCount*: uint32 pBinds*: ptr VkSparseMemoryBind + VkSparseImageOpaqueMemoryBindInfo* = object image*: VkImage bindCount*: uint32 pBinds*: ptr VkSparseMemoryBind + VkSparseImageMemoryBindInfo* = object image*: VkImage bindCount*: uint32 pBinds*: ptr VkSparseImageMemoryBind + VkBindSparseInfo* = object sType*: VkStructureType pNext*: pointer @@ -5098,17 +6887,20 @@ pImageBinds*: ptr VkSparseImageMemoryBindInfo signalSemaphoreCount*: uint32 pSignalSemaphores*: ptr VkSemaphore + VkImageCopy* = object srcSubresource*: VkImageSubresourceLayers srcOffset*: VkOffset3D dstSubresource*: VkImageSubresourceLayers dstOffset*: VkOffset3D extent*: VkExtent3D + VkImageBlit* = object srcSubresource*: VkImageSubresourceLayers srcOffsets*: array[2, VkOffset3D] dstSubresource*: VkImageSubresourceLayers dstOffsets*: array[2, VkOffset3D] + VkBufferImageCopy* = object bufferOffset*: VkDeviceSize bufferRowLength*: uint32 @@ -5116,10 +6908,12 @@ imageSubresource*: VkImageSubresourceLayers imageOffset*: VkOffset3D imageExtent*: VkExtent3D + VkCopyMemoryIndirectCommandNV* = object srcAddress*: VkDeviceAddress dstAddress*: VkDeviceAddress size*: VkDeviceSize + VkCopyMemoryToImageIndirectCommandNV* = object srcAddress*: VkDeviceAddress bufferRowLength*: uint32 @@ -5127,33 +6921,39 @@ imageSubresource*: VkImageSubresourceLayers imageOffset*: VkOffset3D imageExtent*: VkExtent3D + VkImageResolve* = object srcSubresource*: VkImageSubresourceLayers srcOffset*: VkOffset3D dstSubresource*: VkImageSubresourceLayers dstOffset*: VkOffset3D extent*: VkExtent3D + VkShaderModuleCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkShaderModuleCreateFlags codeSize*: csize_t pCode*: ptr uint32 + VkDescriptorSetLayoutBinding* = object binding*: uint32 descriptorType*: VkDescriptorType descriptorCount*: uint32 stageFlags*: VkShaderStageFlags pImmutableSamplers*: ptr VkSampler + VkDescriptorSetLayoutCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkDescriptorSetLayoutCreateFlags bindingCount*: uint32 pBindings*: ptr VkDescriptorSetLayoutBinding + VkDescriptorPoolSize* = object thetype*: VkDescriptorType descriptorCount*: uint32 + VkDescriptorPoolCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5161,21 +6961,25 @@ maxSets*: uint32 poolSizeCount*: uint32 pPoolSizes*: ptr VkDescriptorPoolSize + VkDescriptorSetAllocateInfo* = object sType*: VkStructureType pNext*: pointer descriptorPool*: VkDescriptorPool descriptorSetCount*: uint32 pSetLayouts*: ptr VkDescriptorSetLayout + VkSpecializationMapEntry* = object constantID*: uint32 offset*: uint32 size*: csize_t + VkSpecializationInfo* = object mapEntryCount*: uint32 pMapEntries*: ptr VkSpecializationMapEntry dataSize*: csize_t pData*: pointer + VkPipelineShaderStageCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5184,6 +6988,7 @@ module*: VkShaderModule pName*: cstring pSpecializationInfo*: ptr VkSpecializationInfo + VkComputePipelineCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5192,15 +6997,18 @@ layout*: VkPipelineLayout basePipelineHandle*: VkPipeline basePipelineIndex*: int32 + VkVertexInputBindingDescription* = object binding*: uint32 stride*: uint32 inputRate*: VkVertexInputRate + VkVertexInputAttributeDescription* = object location*: uint32 binding*: uint32 format*: VkFormat offset*: uint32 + VkPipelineVertexInputStateCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5209,17 +7017,20 @@ pVertexBindingDescriptions*: ptr VkVertexInputBindingDescription vertexAttributeDescriptionCount*: uint32 pVertexAttributeDescriptions*: ptr VkVertexInputAttributeDescription + VkPipelineInputAssemblyStateCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineInputAssemblyStateCreateFlags topology*: VkPrimitiveTopology primitiveRestartEnable*: VkBool32 + VkPipelineTessellationStateCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineTessellationStateCreateFlags patchControlPoints*: uint32 + VkPipelineViewportStateCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5228,6 +7039,7 @@ pViewports*: ptr VkViewport scissorCount*: uint32 pScissors*: ptr VkRect2D + VkPipelineRasterizationStateCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5242,6 +7054,7 @@ depthBiasClamp*: float32 depthBiasSlopeFactor*: float32 lineWidth*: float32 + VkPipelineMultisampleStateCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5252,6 +7065,7 @@ pSampleMask*: ptr VkSampleMask alphaToCoverageEnable*: VkBool32 alphaToOneEnable*: VkBool32 + VkPipelineColorBlendAttachmentState* = object blendEnable*: VkBool32 srcColorBlendFactor*: VkBlendFactor @@ -5261,6 +7075,7 @@ dstAlphaBlendFactor*: VkBlendFactor alphaBlendOp*: VkBlendOp colorWriteMask*: VkColorComponentFlags + VkPipelineColorBlendStateCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5270,12 +7085,14 @@ attachmentCount*: uint32 pAttachments*: ptr VkPipelineColorBlendAttachmentState blendConstants*: array[4, float32] + VkPipelineDynamicStateCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineDynamicStateCreateFlags dynamicStateCount*: uint32 pDynamicStates*: ptr VkDynamicState + VkStencilOpState* = object failOp*: VkStencilOp passOp*: VkStencilOp @@ -5284,6 +7101,7 @@ compareMask*: uint32 writeMask*: uint32 reference*: uint32 + VkPipelineDepthStencilStateCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5297,6 +7115,7 @@ back*: VkStencilOpState minDepthBounds*: float32 maxDepthBounds*: float32 + VkGraphicsPipelineCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5317,21 +7136,25 @@ subpass*: uint32 basePipelineHandle*: VkPipeline basePipelineIndex*: int32 + VkPipelineCacheCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineCacheCreateFlags initialDataSize*: csize_t pInitialData*: pointer + VkPipelineCacheHeaderVersionOne* = object headerSize*: uint32 headerVersion*: VkPipelineCacheHeaderVersion vendorID*: uint32 deviceID*: uint32 pipelineCacheUUID*: array[VK_UUID_SIZE, uint8] + VkPipelineCacheStageValidationIndexEntry* = object codeSize*: uint64 codeOffset*: uint64 + VkPipelineCacheSafetyCriticalIndexEntry* = object pipelineIdentifier*: array[VK_UUID_SIZE, uint8] pipelineMemorySize*: uint64 @@ -5340,6 +7163,7 @@ stageIndexCount*: uint32 stageIndexStride*: uint32 stageIndexOffset*: uint64 + VkPipelineCacheHeaderVersionSafetyCriticalOne* = object headerVersionOne*: VkPipelineCacheHeaderVersionOne validationVersion*: VkPipelineCacheValidationVersion @@ -5347,10 +7171,12 @@ pipelineIndexCount*: uint32 pipelineIndexStride*: uint32 pipelineIndexOffset*: uint64 + VkPushConstantRange* = object stageFlags*: VkShaderStageFlags offset*: uint32 size*: uint32 + VkPipelineLayoutCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5359,6 +7185,7 @@ pSetLayouts*: ptr VkDescriptorSetLayout pushConstantRangeCount*: uint32 pPushConstantRanges*: ptr VkPushConstantRange + VkSamplerCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5378,17 +7205,20 @@ maxLod*: float32 borderColor*: VkBorderColor unnormalizedCoordinates*: VkBool32 + VkCommandPoolCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkCommandPoolCreateFlags queueFamilyIndex*: uint32 + VkCommandBufferAllocateInfo* = object sType*: VkStructureType pNext*: pointer commandPool*: VkCommandPool level*: VkCommandBufferLevel commandBufferCount*: uint32 + VkCommandBufferInheritanceInfo* = object sType*: VkStructureType pNext*: pointer @@ -5398,11 +7228,13 @@ occlusionQueryEnable*: VkBool32 queryFlags*: VkQueryControlFlags pipelineStatistics*: VkQueryPipelineStatisticFlags + VkCommandBufferBeginInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkCommandBufferUsageFlags pInheritanceInfo*: ptr VkCommandBufferInheritanceInfo + VkRenderPassBeginInfo* = object sType*: VkStructureType pNext*: pointer @@ -5411,20 +7243,25 @@ renderArea*: VkRect2D clearValueCount*: uint32 pClearValues*: ptr VkClearValue + VkClearColorValue* {.union.} = object float32*: array[4, float32] int32*: array[4, int32] uint32*: array[4, uint32] + VkClearDepthStencilValue* = object depth*: float32 stencil*: uint32 + VkClearValue* {.union.} = object color*: VkClearColorValue depthStencil*: VkClearDepthStencilValue + VkClearAttachment* = object aspectMask*: VkImageAspectFlags colorAttachment*: uint32 clearValue*: VkClearValue + VkAttachmentDescription* = object flags*: VkAttachmentDescriptionFlags format*: VkFormat @@ -5435,9 +7272,11 @@ stencilStoreOp*: VkAttachmentStoreOp initialLayout*: VkImageLayout finalLayout*: VkImageLayout + VkAttachmentReference* = object attachment*: uint32 layout*: VkImageLayout + VkSubpassDescription* = object flags*: VkSubpassDescriptionFlags pipelineBindPoint*: VkPipelineBindPoint @@ -5449,6 +7288,7 @@ pDepthStencilAttachment*: ptr VkAttachmentReference preserveAttachmentCount*: uint32 pPreserveAttachments*: ptr uint32 + VkSubpassDependency* = object srcSubpass*: uint32 dstSubpass*: uint32 @@ -5457,6 +7297,7 @@ srcAccessMask*: VkAccessFlags dstAccessMask*: VkAccessFlags dependencyFlags*: VkDependencyFlags + VkRenderPassCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5467,14 +7308,17 @@ pSubpasses*: ptr VkSubpassDescription dependencyCount*: uint32 pDependencies*: ptr VkSubpassDependency + VkEventCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkEventCreateFlags + VkFenceCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkFenceCreateFlags + VkPhysicalDeviceFeatures* = object robustBufferAccess*: VkBool32 fullDrawIndexUint32*: VkBool32 @@ -5531,12 +7375,14 @@ sparseResidencyAliased*: VkBool32 variableMultisampleRate*: VkBool32 inheritedQueries*: VkBool32 + VkPhysicalDeviceSparseProperties* = object residencyStandard2DBlockShape*: VkBool32 residencyStandard2DMultisampleBlockShape*: VkBool32 residencyStandard3DBlockShape*: VkBool32 residencyAlignedMipSize*: VkBool32 residencyNonResidentStrict*: VkBool32 + VkPhysicalDeviceLimits* = object maxImageDimension1D*: uint32 maxImageDimension2D*: uint32 @@ -5644,10 +7490,12 @@ optimalBufferCopyOffsetAlignment*: VkDeviceSize optimalBufferCopyRowPitchAlignment*: VkDeviceSize nonCoherentAtomSize*: VkDeviceSize + VkSemaphoreCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkSemaphoreCreateFlags + VkQueryPoolCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5655,6 +7503,7 @@ queryType*: VkQueryType queryCount*: uint32 pipelineStatistics*: VkQueryPipelineStatisticFlags + VkFramebufferCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -5665,28 +7514,34 @@ width*: uint32 height*: uint32 layers*: uint32 + VkDrawIndirectCommand* = object vertexCount*: uint32 instanceCount*: uint32 firstVertex*: uint32 firstInstance*: uint32 + VkDrawIndexedIndirectCommand* = object indexCount*: uint32 instanceCount*: uint32 firstIndex*: uint32 vertexOffset*: int32 firstInstance*: uint32 + VkDispatchIndirectCommand* = object x*: uint32 y*: uint32 z*: uint32 + VkMultiDrawInfoEXT* = object firstVertex*: uint32 vertexCount*: uint32 + VkMultiDrawIndexedInfoEXT* = object firstIndex*: uint32 indexCount*: uint32 vertexOffset*: int32 + VkSubmitInfo* = object sType*: VkStructureType pNext*: pointer @@ -5697,6 +7552,7 @@ pCommandBuffers*: ptr VkCommandBuffer signalSemaphoreCount*: uint32 pSignalSemaphores*: ptr VkSemaphore + VkDisplayPropertiesKHR* = object display*: VkDisplayKHR displayName*: cstring @@ -5705,20 +7561,25 @@ supportedTransforms*: VkSurfaceTransformFlagsKHR planeReorderPossible*: VkBool32 persistentContent*: VkBool32 + VkDisplayPlanePropertiesKHR* = object currentDisplay*: VkDisplayKHR currentStackIndex*: uint32 + VkDisplayModeParametersKHR* = object visibleRegion*: VkExtent2D refreshRate*: uint32 + VkDisplayModePropertiesKHR* = object displayMode*: VkDisplayModeKHR parameters*: VkDisplayModeParametersKHR + VkDisplayModeCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer flags*: VkDisplayModeCreateFlagsKHR parameters*: VkDisplayModeParametersKHR + VkDisplayPlaneCapabilitiesKHR* = object supportedAlpha*: VkDisplayPlaneAlphaFlagsKHR minSrcPosition*: VkOffset2D @@ -5729,6 +7590,7 @@ maxDstPosition*: VkOffset2D minDstExtent*: VkExtent2D maxDstExtent*: VkExtent2D + VkDisplaySurfaceCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -5740,12 +7602,14 @@ globalAlpha*: float32 alphaMode*: VkDisplayPlaneAlphaFlagBitsKHR imageExtent*: VkExtent2D + VkDisplayPresentInfoKHR* = object sType*: VkStructureType pNext*: pointer srcRect*: VkRect2D dstRect*: VkRect2D persistent*: VkBool32 + VkSurfaceCapabilitiesKHR* = object minImageCount*: uint32 maxImageCount*: uint32 @@ -5757,9 +7621,11 @@ currentTransform*: VkSurfaceTransformFlagBitsKHR supportedCompositeAlpha*: VkCompositeAlphaFlagsKHR supportedUsageFlags*: VkImageUsageFlags + VkSurfaceFormatKHR* = object format*: VkFormat colorSpace*: VkColorSpaceKHR + VkSwapchainCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -5779,6 +7645,7 @@ presentMode*: VkPresentModeKHR clipped*: VkBool32 oldSwapchain*: VkSwapchainKHR + VkPresentInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -5788,17 +7655,20 @@ pSwapchains*: ptr VkSwapchainKHR pImageIndices*: ptr uint32 pResults*: ptr VkResult + VkDebugReportCallbackCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkDebugReportFlagsEXT pfnCallback*: PFN_vkDebugReportCallbackEXT pUserData*: pointer + VkValidationFlagsEXT* = object sType*: VkStructureType pNext*: pointer disabledValidationCheckCount*: uint32 pDisabledValidationChecks*: ptr VkValidationCheckEXT + VkValidationFeaturesEXT* = object sType*: VkStructureType pNext*: pointer @@ -5806,6 +7676,7 @@ pEnabledValidationFeatures*: ptr VkValidationFeatureEnableEXT disabledValidationFeatureCount*: uint32 pDisabledValidationFeatures*: ptr VkValidationFeatureDisableEXT + VkApplicationParametersEXT* = object sType*: VkStructureType pNext*: pointer @@ -5813,16 +7684,19 @@ deviceID*: uint32 key*: uint32 value*: uint64 + VkPipelineRasterizationStateRasterizationOrderAMD* = object sType*: VkStructureType pNext*: pointer rasterizationOrder*: VkRasterizationOrderAMD + VkDebugMarkerObjectNameInfoEXT* = object sType*: VkStructureType pNext*: pointer objectType*: VkDebugReportObjectTypeEXT theobject*: uint64 pObjectName*: cstring + VkDebugMarkerObjectTagInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -5831,55 +7705,67 @@ tagName*: uint64 tagSize*: csize_t pTag*: pointer + VkDebugMarkerMarkerInfoEXT* = object sType*: VkStructureType pNext*: pointer pMarkerName*: cstring color*: array[4, float32] + VkDedicatedAllocationImageCreateInfoNV* = object sType*: VkStructureType pNext*: pointer dedicatedAllocation*: VkBool32 + VkDedicatedAllocationBufferCreateInfoNV* = object sType*: VkStructureType pNext*: pointer dedicatedAllocation*: VkBool32 + VkDedicatedAllocationMemoryAllocateInfoNV* = object sType*: VkStructureType pNext*: pointer image*: VkImage buffer*: VkBuffer + VkExternalImageFormatPropertiesNV* = object imageFormatProperties*: VkImageFormatProperties externalMemoryFeatures*: VkExternalMemoryFeatureFlagsNV exportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes*: VkExternalMemoryHandleTypeFlagsNV + VkExternalMemoryImageCreateInfoNV* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalMemoryHandleTypeFlagsNV + VkExportMemoryAllocateInfoNV* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalMemoryHandleTypeFlagsNV + VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* = object sType*: VkStructureType pNext*: pointer deviceGeneratedCommands*: VkBool32 + VkDevicePrivateDataCreateInfo* = object sType*: VkStructureType pNext*: pointer privateDataSlotRequestCount*: uint32 + VkDevicePrivateDataCreateInfoEXT* = object VkPrivateDataSlotCreateInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkPrivateDataSlotCreateFlags + VkPrivateDataSlotCreateInfoEXT* = object VkPhysicalDevicePrivateDataFeatures* = object sType*: VkStructureType pNext*: pointer privateData*: VkBool32 + VkPhysicalDevicePrivateDataFeaturesEXT* = object VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* = object sType*: VkStructureType @@ -5893,10 +7779,12 @@ minSequencesCountBufferOffsetAlignment*: uint32 minSequencesIndexBufferOffsetAlignment*: uint32 minIndirectCommandsBufferOffsetAlignment*: uint32 + VkPhysicalDeviceMultiDrawPropertiesEXT* = object sType*: VkStructureType pNext*: pointer maxMultiDrawCount*: uint32 + VkGraphicsShaderGroupCreateInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -5904,6 +7792,7 @@ pStages*: ptr VkPipelineShaderStageCreateInfo pVertexInputState*: ptr VkPipelineVertexInputStateCreateInfo pTessellationState*: ptr VkPipelineTessellationStateCreateInfo + VkGraphicsPipelineShaderGroupsCreateInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -5911,21 +7800,27 @@ pGroups*: ptr VkGraphicsShaderGroupCreateInfoNV pipelineCount*: uint32 pPipelines*: ptr VkPipeline + VkBindShaderGroupIndirectCommandNV* = object groupIndex*: uint32 + VkBindIndexBufferIndirectCommandNV* = object bufferAddress*: VkDeviceAddress size*: uint32 indexType*: VkIndexType + VkBindVertexBufferIndirectCommandNV* = object bufferAddress*: VkDeviceAddress size*: uint32 stride*: uint32 + VkSetStateFlagsIndirectCommandNV* = object data*: uint32 + VkIndirectCommandsStreamNV* = object buffer*: VkBuffer offset*: VkDeviceSize + VkIndirectCommandsLayoutTokenNV* = object sType*: VkStructureType pNext*: pointer @@ -5942,6 +7837,7 @@ indexTypeCount*: uint32 pIndexTypes*: ptr VkIndexType pIndexTypeValues*: ptr uint32 + VkIndirectCommandsLayoutCreateInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -5951,6 +7847,7 @@ pTokens*: ptr VkIndirectCommandsLayoutTokenNV streamCount*: uint32 pStreamStrides*: ptr uint32 + VkGeneratedCommandsInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -5967,6 +7864,7 @@ sequencesCountOffset*: VkDeviceSize sequencesIndexBuffer*: VkBuffer sequencesIndexOffset*: VkDeviceSize + VkGeneratedCommandsMemoryRequirementsInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -5974,25 +7872,30 @@ pipeline*: VkPipeline indirectCommandsLayout*: VkIndirectCommandsLayoutNV maxSequencesCount*: uint32 + VkPhysicalDeviceFeatures2* = object sType*: VkStructureType pNext*: pointer features*: VkPhysicalDeviceFeatures + VkPhysicalDeviceFeatures2KHR* = object VkPhysicalDeviceProperties2* = object sType*: VkStructureType pNext*: pointer properties*: VkPhysicalDeviceProperties + VkPhysicalDeviceProperties2KHR* = object VkFormatProperties2* = object sType*: VkStructureType pNext*: pointer formatProperties*: VkFormatProperties + VkFormatProperties2KHR* = object VkImageFormatProperties2* = object sType*: VkStructureType pNext*: pointer imageFormatProperties*: VkImageFormatProperties + VkImageFormatProperties2KHR* = object VkPhysicalDeviceImageFormatInfo2* = object sType*: VkStructureType @@ -6002,21 +7905,25 @@ tiling*: VkImageTiling usage*: VkImageUsageFlags flags*: VkImageCreateFlags + VkPhysicalDeviceImageFormatInfo2KHR* = object VkQueueFamilyProperties2* = object sType*: VkStructureType pNext*: pointer queueFamilyProperties*: VkQueueFamilyProperties + VkQueueFamilyProperties2KHR* = object VkPhysicalDeviceMemoryProperties2* = object sType*: VkStructureType pNext*: pointer memoryProperties*: VkPhysicalDeviceMemoryProperties + VkPhysicalDeviceMemoryProperties2KHR* = object VkSparseImageFormatProperties2* = object sType*: VkStructureType pNext*: pointer properties*: VkSparseImageFormatProperties + VkSparseImageFormatProperties2KHR* = object VkPhysicalDeviceSparseImageFormatInfo2* = object sType*: VkStructureType @@ -6026,16 +7933,19 @@ samples*: VkSampleCountFlagBits usage*: VkImageUsageFlags tiling*: VkImageTiling + VkPhysicalDeviceSparseImageFormatInfo2KHR* = object VkPhysicalDevicePushDescriptorPropertiesKHR* = object sType*: VkStructureType pNext*: pointer maxPushDescriptors*: uint32 + VkConformanceVersion* = object major*: uint8 minor*: uint8 subminor*: uint8 patch*: uint8 + VkConformanceVersionKHR* = object VkPhysicalDeviceDriverProperties* = object sType*: VkStructureType @@ -6044,24 +7954,29 @@ driverName*: array[VK_MAX_DRIVER_NAME_SIZE, char] driverInfo*: array[VK_MAX_DRIVER_INFO_SIZE, char] conformanceVersion*: VkConformanceVersion + VkPhysicalDeviceDriverPropertiesKHR* = object VkPresentRegionsKHR* = object sType*: VkStructureType pNext*: pointer swapchainCount*: uint32 pRegions*: ptr VkPresentRegionKHR + VkPresentRegionKHR* = object rectangleCount*: uint32 pRectangles*: ptr VkRectLayerKHR + VkRectLayerKHR* = object offset*: VkOffset2D extent*: VkExtent2D layer*: uint32 + VkPhysicalDeviceVariablePointersFeatures* = object sType*: VkStructureType pNext*: pointer variablePointersStorageBuffer*: VkBool32 variablePointers*: VkBool32 + VkPhysicalDeviceVariablePointersFeaturesKHR* = object VkPhysicalDeviceVariablePointerFeaturesKHR* = object VkPhysicalDeviceVariablePointerFeatures* = object @@ -6069,16 +7984,19 @@ externalMemoryFeatures*: VkExternalMemoryFeatureFlags exportFromImportedHandleTypes*: VkExternalMemoryHandleTypeFlags compatibleHandleTypes*: VkExternalMemoryHandleTypeFlags + VkExternalMemoryPropertiesKHR* = object VkPhysicalDeviceExternalImageFormatInfo* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceExternalImageFormatInfoKHR* = object VkExternalImageFormatProperties* = object sType*: VkStructureType pNext*: pointer externalMemoryProperties*: VkExternalMemoryProperties + VkExternalImageFormatPropertiesKHR* = object VkPhysicalDeviceExternalBufferInfo* = object sType*: VkStructureType @@ -6086,11 +8004,13 @@ flags*: VkBufferCreateFlags usage*: VkBufferUsageFlags handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceExternalBufferInfoKHR* = object VkExternalBufferProperties* = object sType*: VkStructureType pNext*: pointer externalMemoryProperties*: VkExternalMemoryProperties + VkExternalBufferPropertiesKHR* = object VkPhysicalDeviceIDProperties* = object sType*: VkStructureType @@ -6100,40 +8020,48 @@ deviceLUID*: array[VK_LUID_SIZE, uint8] deviceNodeMask*: uint32 deviceLUIDValid*: VkBool32 + VkPhysicalDeviceIDPropertiesKHR* = object VkExternalMemoryImageCreateInfo* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalMemoryHandleTypeFlags + VkExternalMemoryImageCreateInfoKHR* = object VkExternalMemoryBufferCreateInfo* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalMemoryHandleTypeFlags + VkExternalMemoryBufferCreateInfoKHR* = object VkExportMemoryAllocateInfo* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalMemoryHandleTypeFlags + VkExportMemoryAllocateInfoKHR* = object VkImportMemoryFdInfoKHR* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalMemoryHandleTypeFlagBits fd*: cint + VkMemoryFdPropertiesKHR* = object sType*: VkStructureType pNext*: pointer memoryTypeBits*: uint32 + VkMemoryGetFdInfoKHR* = object sType*: VkStructureType pNext*: pointer memory*: VkDeviceMemory handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceExternalSemaphoreInfo* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalSemaphoreHandleTypeFlagBits + VkPhysicalDeviceExternalSemaphoreInfoKHR* = object VkExternalSemaphoreProperties* = object sType*: VkStructureType @@ -6141,11 +8069,13 @@ exportFromImportedHandleTypes*: VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes*: VkExternalSemaphoreHandleTypeFlags externalSemaphoreFeatures*: VkExternalSemaphoreFeatureFlags + VkExternalSemaphorePropertiesKHR* = object VkExportSemaphoreCreateInfo* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalSemaphoreHandleTypeFlags + VkExportSemaphoreCreateInfoKHR* = object VkImportSemaphoreFdInfoKHR* = object sType*: VkStructureType @@ -6154,15 +8084,18 @@ flags*: VkSemaphoreImportFlags handleType*: VkExternalSemaphoreHandleTypeFlagBits fd*: cint + VkSemaphoreGetFdInfoKHR* = object sType*: VkStructureType pNext*: pointer semaphore*: VkSemaphore handleType*: VkExternalSemaphoreHandleTypeFlagBits + VkPhysicalDeviceExternalFenceInfo* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalFenceHandleTypeFlagBits + VkPhysicalDeviceExternalFenceInfoKHR* = object VkExternalFenceProperties* = object sType*: VkStructureType @@ -6170,11 +8103,13 @@ exportFromImportedHandleTypes*: VkExternalFenceHandleTypeFlags compatibleHandleTypes*: VkExternalFenceHandleTypeFlags externalFenceFeatures*: VkExternalFenceFeatureFlags + VkExternalFencePropertiesKHR* = object VkExportFenceCreateInfo* = object sType*: VkStructureType pNext*: pointer handleTypes*: VkExternalFenceHandleTypeFlags + VkExportFenceCreateInfoKHR* = object VkImportFenceFdInfoKHR* = object sType*: VkStructureType @@ -6183,23 +8118,27 @@ flags*: VkFenceImportFlags handleType*: VkExternalFenceHandleTypeFlagBits fd*: cint + VkFenceGetFdInfoKHR* = object sType*: VkStructureType pNext*: pointer fence*: VkFence handleType*: VkExternalFenceHandleTypeFlagBits + VkPhysicalDeviceMultiviewFeatures* = object sType*: VkStructureType pNext*: pointer multiview*: VkBool32 multiviewGeometryShader*: VkBool32 multiviewTessellationShader*: VkBool32 + VkPhysicalDeviceMultiviewFeaturesKHR* = object VkPhysicalDeviceMultiviewProperties* = object sType*: VkStructureType pNext*: pointer maxMultiviewViewCount*: uint32 maxMultiviewInstanceIndex*: uint32 + VkPhysicalDeviceMultiviewPropertiesKHR* = object VkRenderPassMultiviewCreateInfo* = object sType*: VkStructureType @@ -6210,6 +8149,7 @@ pViewOffsets*: ptr int32 correlationMaskCount*: uint32 pCorrelationMasks*: ptr uint32 + VkRenderPassMultiviewCreateInfoKHR* = object VkSurfaceCapabilities2EXT* = object sType*: VkStructureType @@ -6225,34 +8165,41 @@ supportedCompositeAlpha*: VkCompositeAlphaFlagsKHR supportedUsageFlags*: VkImageUsageFlags supportedSurfaceCounters*: VkSurfaceCounterFlagsEXT + VkDisplayPowerInfoEXT* = object sType*: VkStructureType pNext*: pointer powerState*: VkDisplayPowerStateEXT + VkDeviceEventInfoEXT* = object sType*: VkStructureType pNext*: pointer deviceEvent*: VkDeviceEventTypeEXT + VkDisplayEventInfoEXT* = object sType*: VkStructureType pNext*: pointer displayEvent*: VkDisplayEventTypeEXT + VkSwapchainCounterCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer surfaceCounters*: VkSurfaceCounterFlagsEXT + VkPhysicalDeviceGroupProperties* = object sType*: VkStructureType pNext*: pointer physicalDeviceCount*: uint32 physicalDevices*: array[VK_MAX_DEVICE_GROUP_SIZE, VkPhysicalDevice] subsetAllocation*: VkBool32 + VkPhysicalDeviceGroupPropertiesKHR* = object VkMemoryAllocateFlagsInfo* = object sType*: VkStructureType pNext*: pointer flags*: VkMemoryAllocateFlags deviceMask*: uint32 + VkMemoryAllocateFlagsInfoKHR* = object VkBindBufferMemoryInfo* = object sType*: VkStructureType @@ -6260,12 +8207,14 @@ buffer*: VkBuffer memory*: VkDeviceMemory memoryOffset*: VkDeviceSize + VkBindBufferMemoryInfoKHR* = object VkBindBufferMemoryDeviceGroupInfo* = object sType*: VkStructureType pNext*: pointer deviceIndexCount*: uint32 pDeviceIndices*: ptr uint32 + VkBindBufferMemoryDeviceGroupInfoKHR* = object VkBindImageMemoryInfo* = object sType*: VkStructureType @@ -6273,6 +8222,7 @@ image*: VkImage memory*: VkDeviceMemory memoryOffset*: VkDeviceSize + VkBindImageMemoryInfoKHR* = object VkBindImageMemoryDeviceGroupInfo* = object sType*: VkStructureType @@ -6281,6 +8231,7 @@ pDeviceIndices*: ptr uint32 splitInstanceBindRegionCount*: uint32 pSplitInstanceBindRegions*: ptr VkRect2D + VkBindImageMemoryDeviceGroupInfoKHR* = object VkDeviceGroupRenderPassBeginInfo* = object sType*: VkStructureType @@ -6288,11 +8239,13 @@ deviceMask*: uint32 deviceRenderAreaCount*: uint32 pDeviceRenderAreas*: ptr VkRect2D + VkDeviceGroupRenderPassBeginInfoKHR* = object VkDeviceGroupCommandBufferBeginInfo* = object sType*: VkStructureType pNext*: pointer deviceMask*: uint32 + VkDeviceGroupCommandBufferBeginInfoKHR* = object VkDeviceGroupSubmitInfo* = object sType*: VkStructureType @@ -6303,27 +8256,32 @@ pCommandBufferDeviceMasks*: ptr uint32 signalSemaphoreCount*: uint32 pSignalSemaphoreDeviceIndices*: ptr uint32 + VkDeviceGroupSubmitInfoKHR* = object VkDeviceGroupBindSparseInfo* = object sType*: VkStructureType pNext*: pointer resourceDeviceIndex*: uint32 memoryDeviceIndex*: uint32 + VkDeviceGroupBindSparseInfoKHR* = object VkDeviceGroupPresentCapabilitiesKHR* = object sType*: VkStructureType pNext*: pointer presentMask*: array[VK_MAX_DEVICE_GROUP_SIZE, uint32] modes*: VkDeviceGroupPresentModeFlagsKHR + VkImageSwapchainCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer swapchain*: VkSwapchainKHR + VkBindImageMemorySwapchainInfoKHR* = object sType*: VkStructureType pNext*: pointer swapchain*: VkSwapchainKHR imageIndex*: uint32 + VkAcquireNextImageInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -6332,22 +8290,26 @@ semaphore*: VkSemaphore fence*: VkFence deviceMask*: uint32 + VkDeviceGroupPresentInfoKHR* = object sType*: VkStructureType pNext*: pointer swapchainCount*: uint32 pDeviceMasks*: ptr uint32 mode*: VkDeviceGroupPresentModeFlagBitsKHR + VkDeviceGroupDeviceCreateInfo* = object sType*: VkStructureType pNext*: pointer physicalDeviceCount*: uint32 pPhysicalDevices*: ptr VkPhysicalDevice + VkDeviceGroupDeviceCreateInfoKHR* = object VkDeviceGroupSwapchainCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer modes*: VkDeviceGroupPresentModeFlagsKHR + VkDescriptorUpdateTemplateEntry* = object dstBinding*: uint32 dstArrayElement*: uint32 @@ -6355,6 +8317,7 @@ descriptorType*: VkDescriptorType offset*: csize_t stride*: csize_t + VkDescriptorUpdateTemplateEntryKHR* = object VkDescriptorUpdateTemplateCreateInfo* = object sType*: VkStructureType @@ -6367,23 +8330,28 @@ pipelineBindPoint*: VkPipelineBindPoint pipelineLayout*: VkPipelineLayout set*: uint32 + VkDescriptorUpdateTemplateCreateInfoKHR* = object VkXYColorEXT* = object x*: float32 y*: float32 + VkPhysicalDevicePresentIdFeaturesKHR* = object sType*: VkStructureType pNext*: pointer presentId*: VkBool32 + VkPresentIdKHR* = object sType*: VkStructureType pNext*: pointer swapchainCount*: uint32 pPresentIds*: ptr uint64 + VkPhysicalDevicePresentWaitFeaturesKHR* = object sType*: VkStructureType pNext*: pointer presentWait*: VkBool32 + VkHdrMetadataEXT* = object sType*: VkStructureType pNext*: pointer @@ -6395,54 +8363,66 @@ minLuminance*: float32 maxContentLightLevel*: float32 maxFrameAverageLightLevel*: float32 + VkDisplayNativeHdrSurfaceCapabilitiesAMD* = object sType*: VkStructureType pNext*: pointer localDimmingSupport*: VkBool32 + VkSwapchainDisplayNativeHdrCreateInfoAMD* = object sType*: VkStructureType pNext*: pointer localDimmingEnable*: VkBool32 + VkRefreshCycleDurationGOOGLE* = object refreshDuration*: uint64 + VkPastPresentationTimingGOOGLE* = object presentID*: uint32 desiredPresentTime*: uint64 actualPresentTime*: uint64 earliestPresentTime*: uint64 presentMargin*: uint64 + VkPresentTimesInfoGOOGLE* = object sType*: VkStructureType pNext*: pointer swapchainCount*: uint32 pTimes*: ptr VkPresentTimeGOOGLE + VkPresentTimeGOOGLE* = object presentID*: uint32 desiredPresentTime*: uint64 + VkViewportWScalingNV* = object xcoeff*: float32 ycoeff*: float32 + VkPipelineViewportWScalingStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer viewportWScalingEnable*: VkBool32 viewportCount*: uint32 pViewportWScalings*: ptr VkViewportWScalingNV + VkViewportSwizzleNV* = object x*: VkViewportCoordinateSwizzleNV y*: VkViewportCoordinateSwizzleNV z*: VkViewportCoordinateSwizzleNV w*: VkViewportCoordinateSwizzleNV + VkPipelineViewportSwizzleStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineViewportSwizzleStateCreateFlagsNV viewportCount*: uint32 pViewportSwizzles*: ptr VkViewportSwizzleNV + VkPhysicalDeviceDiscardRectanglePropertiesEXT* = object sType*: VkStructureType pNext*: pointer maxDiscardRectangles*: uint32 + VkPipelineDiscardRectangleStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -6450,58 +8430,71 @@ discardRectangleMode*: VkDiscardRectangleModeEXT discardRectangleCount*: uint32 pDiscardRectangles*: ptr VkRect2D + VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX* = object sType*: VkStructureType pNext*: pointer perViewPositionAllComponents*: VkBool32 + VkInputAttachmentAspectReference* = object subpass*: uint32 inputAttachmentIndex*: uint32 aspectMask*: VkImageAspectFlags + VkInputAttachmentAspectReferenceKHR* = object VkRenderPassInputAttachmentAspectCreateInfo* = object sType*: VkStructureType pNext*: pointer aspectReferenceCount*: uint32 pAspectReferences*: ptr VkInputAttachmentAspectReference + VkRenderPassInputAttachmentAspectCreateInfoKHR* = object VkPhysicalDeviceSurfaceInfo2KHR* = object sType*: VkStructureType pNext*: pointer surface*: VkSurfaceKHR + VkSurfaceCapabilities2KHR* = object sType*: VkStructureType pNext*: pointer surfaceCapabilities*: VkSurfaceCapabilitiesKHR + VkSurfaceFormat2KHR* = object sType*: VkStructureType pNext*: pointer surfaceFormat*: VkSurfaceFormatKHR + VkDisplayProperties2KHR* = object sType*: VkStructureType pNext*: pointer displayProperties*: VkDisplayPropertiesKHR + VkDisplayPlaneProperties2KHR* = object sType*: VkStructureType pNext*: pointer displayPlaneProperties*: VkDisplayPlanePropertiesKHR + VkDisplayModeProperties2KHR* = object sType*: VkStructureType pNext*: pointer displayModeProperties*: VkDisplayModePropertiesKHR + VkDisplayPlaneInfo2KHR* = object sType*: VkStructureType pNext*: pointer mode*: VkDisplayModeKHR planeIndex*: uint32 + VkDisplayPlaneCapabilities2KHR* = object sType*: VkStructureType pNext*: pointer capabilities*: VkDisplayPlaneCapabilitiesKHR + VkSharedPresentSurfaceCapabilitiesKHR* = object sType*: VkStructureType pNext*: pointer sharedPresentSupportedUsageFlags*: VkImageUsageFlags + VkPhysicalDevice16BitStorageFeatures* = object sType*: VkStructureType pNext*: pointer @@ -6509,6 +8502,7 @@ uniformAndStorageBuffer16BitAccess*: VkBool32 storagePushConstant16*: VkBool32 storageInputOutput16*: VkBool32 + VkPhysicalDevice16BitStorageFeaturesKHR* = object VkPhysicalDeviceSubgroupProperties* = object sType*: VkStructureType @@ -6517,83 +8511,99 @@ supportedStages*: VkShaderStageFlags supportedOperations*: VkSubgroupFeatureFlags quadOperationsInAllStages*: VkBool32 + VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* = object sType*: VkStructureType pNext*: pointer shaderSubgroupExtendedTypes*: VkBool32 + VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR* = object VkBufferMemoryRequirementsInfo2* = object sType*: VkStructureType pNext*: pointer buffer*: VkBuffer + VkBufferMemoryRequirementsInfo2KHR* = object VkDeviceBufferMemoryRequirements* = object sType*: VkStructureType pNext*: pointer pCreateInfo*: ptr VkBufferCreateInfo + VkDeviceBufferMemoryRequirementsKHR* = object VkImageMemoryRequirementsInfo2* = object sType*: VkStructureType pNext*: pointer image*: VkImage + VkImageMemoryRequirementsInfo2KHR* = object VkImageSparseMemoryRequirementsInfo2* = object sType*: VkStructureType pNext*: pointer image*: VkImage + VkImageSparseMemoryRequirementsInfo2KHR* = object VkDeviceImageMemoryRequirements* = object sType*: VkStructureType pNext*: pointer pCreateInfo*: ptr VkImageCreateInfo planeAspect*: VkImageAspectFlagBits + VkDeviceImageMemoryRequirementsKHR* = object VkMemoryRequirements2* = object sType*: VkStructureType pNext*: pointer memoryRequirements*: VkMemoryRequirements + VkMemoryRequirements2KHR* = object VkSparseImageMemoryRequirements2* = object sType*: VkStructureType pNext*: pointer memoryRequirements*: VkSparseImageMemoryRequirements + VkSparseImageMemoryRequirements2KHR* = object VkPhysicalDevicePointClippingProperties* = object sType*: VkStructureType pNext*: pointer pointClippingBehavior*: VkPointClippingBehavior + VkPhysicalDevicePointClippingPropertiesKHR* = object VkMemoryDedicatedRequirements* = object sType*: VkStructureType pNext*: pointer prefersDedicatedAllocation*: VkBool32 requiresDedicatedAllocation*: VkBool32 + VkMemoryDedicatedRequirementsKHR* = object VkMemoryDedicatedAllocateInfo* = object sType*: VkStructureType pNext*: pointer image*: VkImage buffer*: VkBuffer + VkMemoryDedicatedAllocateInfoKHR* = object VkImageViewUsageCreateInfo* = object sType*: VkStructureType pNext*: pointer usage*: VkImageUsageFlags + VkImageViewSlicedCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer sliceOffset*: uint32 sliceCount*: uint32 + VkImageViewUsageCreateInfoKHR* = object VkPipelineTessellationDomainOriginStateCreateInfo* = object sType*: VkStructureType pNext*: pointer domainOrigin*: VkTessellationDomainOrigin + VkPipelineTessellationDomainOriginStateCreateInfoKHR* = object VkSamplerYcbcrConversionInfo* = object sType*: VkStructureType pNext*: pointer conversion*: VkSamplerYcbcrConversion + VkSamplerYcbcrConversionInfoKHR* = object VkSamplerYcbcrConversionCreateInfo* = object sType*: VkStructureType @@ -6606,70 +8616,84 @@ yChromaOffset*: VkChromaLocation chromaFilter*: VkFilter forceExplicitReconstruction*: VkBool32 + VkSamplerYcbcrConversionCreateInfoKHR* = object VkBindImagePlaneMemoryInfo* = object sType*: VkStructureType pNext*: pointer planeAspect*: VkImageAspectFlagBits + VkBindImagePlaneMemoryInfoKHR* = object VkImagePlaneMemoryRequirementsInfo* = object sType*: VkStructureType pNext*: pointer planeAspect*: VkImageAspectFlagBits + VkImagePlaneMemoryRequirementsInfoKHR* = object VkPhysicalDeviceSamplerYcbcrConversionFeatures* = object sType*: VkStructureType pNext*: pointer samplerYcbcrConversion*: VkBool32 + VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR* = object VkSamplerYcbcrConversionImageFormatProperties* = object sType*: VkStructureType pNext*: pointer combinedImageSamplerDescriptorCount*: uint32 + VkSamplerYcbcrConversionImageFormatPropertiesKHR* = object VkTextureLODGatherFormatPropertiesAMD* = object sType*: VkStructureType pNext*: pointer supportsTextureGatherLODBiasAMD*: VkBool32 + VkConditionalRenderingBeginInfoEXT* = object sType*: VkStructureType pNext*: pointer buffer*: VkBuffer offset*: VkDeviceSize flags*: VkConditionalRenderingFlagsEXT + VkProtectedSubmitInfo* = object sType*: VkStructureType pNext*: pointer protectedSubmit*: VkBool32 + VkPhysicalDeviceProtectedMemoryFeatures* = object sType*: VkStructureType pNext*: pointer protectedMemory*: VkBool32 + VkPhysicalDeviceProtectedMemoryProperties* = object sType*: VkStructureType pNext*: pointer protectedNoFault*: VkBool32 + VkDeviceQueueInfo2* = object sType*: VkStructureType pNext*: pointer flags*: VkDeviceQueueCreateFlags queueFamilyIndex*: uint32 queueIndex*: uint32 + VkPipelineCoverageToColorStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineCoverageToColorStateCreateFlagsNV coverageToColorEnable*: VkBool32 coverageToColorLocation*: uint32 + VkPhysicalDeviceSamplerFilterMinmaxProperties* = object sType*: VkStructureType pNext*: pointer filterMinmaxSingleComponentFormats*: VkBool32 filterMinmaxImageComponentMapping*: VkBool32 + VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* = object VkSampleLocationEXT* = object x*: float32 y*: float32 + VkSampleLocationsInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -6677,12 +8701,15 @@ sampleLocationGridSize*: VkExtent2D sampleLocationsCount*: uint32 pSampleLocations*: ptr VkSampleLocationEXT + VkAttachmentSampleLocationsEXT* = object attachmentIndex*: uint32 sampleLocationsInfo*: VkSampleLocationsInfoEXT + VkSubpassSampleLocationsEXT* = object subpassIndex*: uint32 sampleLocationsInfo*: VkSampleLocationsInfoEXT + VkRenderPassSampleLocationsBeginInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -6690,11 +8717,13 @@ pAttachmentInitialSampleLocations*: ptr VkAttachmentSampleLocationsEXT postSubpassSampleLocationsCount*: uint32 pPostSubpassSampleLocations*: ptr VkSubpassSampleLocationsEXT + VkPipelineSampleLocationsStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer sampleLocationsEnable*: VkBool32 sampleLocationsInfo*: VkSampleLocationsInfoEXT + VkPhysicalDeviceSampleLocationsPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -6703,23 +8732,28 @@ sampleLocationCoordinateRange*: array[2, float32] sampleLocationSubPixelBits*: uint32 variableSampleLocations*: VkBool32 + VkMultisamplePropertiesEXT* = object sType*: VkStructureType pNext*: pointer maxSampleLocationGridSize*: VkExtent2D + VkSamplerReductionModeCreateInfo* = object sType*: VkStructureType pNext*: pointer reductionMode*: VkSamplerReductionMode + VkSamplerReductionModeCreateInfoEXT* = object VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT* = object sType*: VkStructureType pNext*: pointer advancedBlendCoherentOperations*: VkBool32 + VkPhysicalDeviceMultiDrawFeaturesEXT* = object sType*: VkStructureType pNext*: pointer multiDraw*: VkBool32 + VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -6729,17 +8763,20 @@ advancedBlendNonPremultipliedDstColor*: VkBool32 advancedBlendCorrelatedOverlap*: VkBool32 advancedBlendAllOperations*: VkBool32 + VkPipelineColorBlendAdvancedStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer srcPremultiplied*: VkBool32 dstPremultiplied*: VkBool32 blendOverlap*: VkBlendOverlapEXT + VkPhysicalDeviceInlineUniformBlockFeatures* = object sType*: VkStructureType pNext*: pointer inlineUniformBlock*: VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind*: VkBool32 + VkPhysicalDeviceInlineUniformBlockFeaturesEXT* = object VkPhysicalDeviceInlineUniformBlockProperties* = object sType*: VkStructureType @@ -6749,17 +8786,20 @@ maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks*: uint32 maxDescriptorSetInlineUniformBlocks*: uint32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks*: uint32 + VkPhysicalDeviceInlineUniformBlockPropertiesEXT* = object VkWriteDescriptorSetInlineUniformBlock* = object sType*: VkStructureType pNext*: pointer dataSize*: uint32 pData*: pointer + VkWriteDescriptorSetInlineUniformBlockEXT* = object VkDescriptorPoolInlineUniformBlockCreateInfo* = object sType*: VkStructureType pNext*: pointer maxInlineUniformBlockBindings*: uint32 + VkDescriptorPoolInlineUniformBlockCreateInfoEXT* = object VkPipelineCoverageModulationStateCreateInfoNV* = object sType*: VkStructureType @@ -6769,11 +8809,13 @@ coverageModulationTableEnable*: VkBool32 coverageModulationTableCount*: uint32 pCoverageModulationTable*: ptr float32 + VkImageFormatListCreateInfo* = object sType*: VkStructureType pNext*: pointer viewFormatCount*: uint32 pViewFormats*: ptr VkFormat + VkImageFormatListCreateInfoKHR* = object VkValidationCacheCreateInfoEXT* = object sType*: VkStructureType @@ -6781,41 +8823,49 @@ flags*: VkValidationCacheCreateFlagsEXT initialDataSize*: csize_t pInitialData*: pointer + VkShaderModuleValidationCacheCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer validationCache*: VkValidationCacheEXT + VkPhysicalDeviceMaintenance3Properties* = object sType*: VkStructureType pNext*: pointer maxPerSetDescriptors*: uint32 maxMemoryAllocationSize*: VkDeviceSize + VkPhysicalDeviceMaintenance3PropertiesKHR* = object VkPhysicalDeviceMaintenance4Features* = object sType*: VkStructureType pNext*: pointer maintenance4*: VkBool32 + VkPhysicalDeviceMaintenance4FeaturesKHR* = object VkPhysicalDeviceMaintenance4Properties* = object sType*: VkStructureType pNext*: pointer maxBufferSize*: VkDeviceSize + VkPhysicalDeviceMaintenance4PropertiesKHR* = object VkDescriptorSetLayoutSupport* = object sType*: VkStructureType pNext*: pointer supported*: VkBool32 + VkDescriptorSetLayoutSupportKHR* = object VkPhysicalDeviceShaderDrawParametersFeatures* = object sType*: VkStructureType pNext*: pointer shaderDrawParameters*: VkBool32 + VkPhysicalDeviceShaderDrawParameterFeatures* = object VkPhysicalDeviceShaderFloat16Int8Features* = object sType*: VkStructureType pNext*: pointer shaderFloat16*: VkBool32 shaderInt8*: VkBool32 + VkPhysicalDeviceShaderFloat16Int8FeaturesKHR* = object VkPhysicalDeviceFloat16Int8FeaturesKHR* = object VkPhysicalDeviceFloatControlsProperties* = object @@ -6838,11 +8888,13 @@ shaderRoundingModeRTZFloat16*: VkBool32 shaderRoundingModeRTZFloat32*: VkBool32 shaderRoundingModeRTZFloat64*: VkBool32 + VkPhysicalDeviceFloatControlsPropertiesKHR* = object VkPhysicalDeviceHostQueryResetFeatures* = object sType*: VkStructureType pNext*: pointer hostQueryReset*: VkBool32 + VkPhysicalDeviceHostQueryResetFeaturesEXT* = object VkShaderResourceUsageAMD* = object numUsedVgprs*: uint32 @@ -6850,6 +8902,7 @@ ldsSizePerLocalWorkGroup*: uint32 ldsUsageSizeInBytes*: csize_t scratchMemUsageInBytes*: csize_t + VkShaderStatisticsInfoAMD* = object shaderStageMask*: VkShaderStageFlags resourceUsage*: VkShaderResourceUsageAMD @@ -6858,21 +8911,25 @@ numAvailableVgprs*: uint32 numAvailableSgprs*: uint32 computeWorkGroupSize*: array[3, uint32] + VkDeviceQueueGlobalPriorityCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer globalPriority*: VkQueueGlobalPriorityKHR + VkDeviceQueueGlobalPriorityCreateInfoEXT* = object VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR* = object sType*: VkStructureType pNext*: pointer globalPriorityQuery*: VkBool32 + VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT* = object VkQueueFamilyGlobalPriorityPropertiesKHR* = object sType*: VkStructureType pNext*: pointer priorityCount*: uint32 priorities*: array[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR, VkQueueGlobalPriorityKHR] + VkQueueFamilyGlobalPriorityPropertiesEXT* = object VkDebugUtilsObjectNameInfoEXT* = object sType*: VkStructureType @@ -6880,6 +8937,7 @@ objectType*: VkObjectType objectHandle*: uint64 pObjectName*: cstring + VkDebugUtilsObjectTagInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -6888,11 +8946,13 @@ tagName*: uint64 tagSize*: csize_t pTag*: pointer + VkDebugUtilsLabelEXT* = object sType*: VkStructureType pNext*: pointer pLabelName*: cstring color*: array[4, float32] + VkDebugUtilsMessengerCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -6901,6 +8961,7 @@ messageType*: VkDebugUtilsMessageTypeFlagsEXT pfnUserCallback*: PFN_vkDebugUtilsMessengerCallbackEXT pUserData*: pointer + VkDebugUtilsMessengerCallbackDataEXT* = object sType*: VkStructureType pNext*: pointer @@ -6914,16 +8975,19 @@ pCmdBufLabels*: ptr VkDebugUtilsLabelEXT objectCount*: uint32 pObjects*: ptr VkDebugUtilsObjectNameInfoEXT + VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* = object sType*: VkStructureType pNext*: pointer deviceMemoryReport*: VkBool32 + VkDeviceDeviceMemoryReportCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkDeviceMemoryReportFlagsEXT pfnUserCallback*: PFN_vkDeviceMemoryReportCallbackEXT pUserData*: pointer + VkDeviceMemoryReportCallbackDataEXT* = object sType*: VkStructureType pNext*: pointer @@ -6934,19 +8998,23 @@ objectType*: VkObjectType objectHandle*: uint64 heapIndex*: uint32 + VkImportMemoryHostPointerInfoEXT* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalMemoryHandleTypeFlagBits pHostPointer*: pointer + VkMemoryHostPointerPropertiesEXT* = object sType*: VkStructureType pNext*: pointer memoryTypeBits*: uint32 + VkPhysicalDeviceExternalMemoryHostPropertiesEXT* = object sType*: VkStructureType pNext*: pointer minImportedHostPointerAlignment*: VkDeviceSize + VkPhysicalDeviceConservativeRasterizationPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -6959,10 +9027,12 @@ degenerateLinesRasterized*: VkBool32 fullyCoveredFragmentShaderInputVariable*: VkBool32 conservativeRasterizationPostDepthCoverage*: VkBool32 + VkCalibratedTimestampInfoEXT* = object sType*: VkStructureType pNext*: pointer timeDomain*: VkTimeDomainEXT + VkPhysicalDeviceShaderCorePropertiesAMD* = object sType*: VkStructureType pNext*: pointer @@ -6980,17 +9050,20 @@ minVgprAllocation*: uint32 maxVgprAllocation*: uint32 vgprAllocationGranularity*: uint32 + VkPhysicalDeviceShaderCoreProperties2AMD* = object sType*: VkStructureType pNext*: pointer shaderCoreFeatures*: VkShaderCorePropertiesFlagsAMD activeComputeUnitCount*: uint32 + VkPipelineRasterizationConservativeStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineRasterizationConservativeStateCreateFlagsEXT conservativeRasterizationMode*: VkConservativeRasterizationModeEXT extraPrimitiveOverestimationSize*: float32 + VkPhysicalDeviceDescriptorIndexingFeatures* = object sType*: VkStructureType pNext*: pointer @@ -7014,6 +9087,7 @@ descriptorBindingPartiallyBound*: VkBool32 descriptorBindingVariableDescriptorCount*: VkBool32 runtimeDescriptorArray*: VkBool32 + VkPhysicalDeviceDescriptorIndexingFeaturesEXT* = object VkPhysicalDeviceDescriptorIndexingProperties* = object sType*: VkStructureType @@ -7041,23 +9115,27 @@ maxDescriptorSetUpdateAfterBindSampledImages*: uint32 maxDescriptorSetUpdateAfterBindStorageImages*: uint32 maxDescriptorSetUpdateAfterBindInputAttachments*: uint32 + VkPhysicalDeviceDescriptorIndexingPropertiesEXT* = object VkDescriptorSetLayoutBindingFlagsCreateInfo* = object sType*: VkStructureType pNext*: pointer bindingCount*: uint32 pBindingFlags*: ptr VkDescriptorBindingFlags + VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* = object VkDescriptorSetVariableDescriptorCountAllocateInfo* = object sType*: VkStructureType pNext*: pointer descriptorSetCount*: uint32 pDescriptorCounts*: ptr uint32 + VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* = object VkDescriptorSetVariableDescriptorCountLayoutSupport* = object sType*: VkStructureType pNext*: pointer maxVariableDescriptorCount*: uint32 + VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* = object VkAttachmentDescription2* = object sType*: VkStructureType @@ -7071,6 +9149,7 @@ stencilStoreOp*: VkAttachmentStoreOp initialLayout*: VkImageLayout finalLayout*: VkImageLayout + VkAttachmentDescription2KHR* = object VkAttachmentReference2* = object sType*: VkStructureType @@ -7078,6 +9157,7 @@ attachment*: uint32 layout*: VkImageLayout aspectMask*: VkImageAspectFlags + VkAttachmentReference2KHR* = object VkSubpassDescription2* = object sType*: VkStructureType @@ -7093,6 +9173,7 @@ pDepthStencilAttachment*: ptr VkAttachmentReference2 preserveAttachmentCount*: uint32 pPreserveAttachments*: ptr uint32 + VkSubpassDescription2KHR* = object VkSubpassDependency2* = object sType*: VkStructureType @@ -7105,6 +9186,7 @@ dstAccessMask*: VkAccessFlags dependencyFlags*: VkDependencyFlags viewOffset*: int32 + VkSubpassDependency2KHR* = object VkRenderPassCreateInfo2* = object sType*: VkStructureType @@ -7118,31 +9200,37 @@ pDependencies*: ptr VkSubpassDependency2 correlatedViewMaskCount*: uint32 pCorrelatedViewMasks*: ptr uint32 + VkRenderPassCreateInfo2KHR* = object VkSubpassBeginInfo* = object sType*: VkStructureType pNext*: pointer contents*: VkSubpassContents + VkSubpassBeginInfoKHR* = object VkSubpassEndInfo* = object sType*: VkStructureType pNext*: pointer + VkSubpassEndInfoKHR* = object VkPhysicalDeviceTimelineSemaphoreFeatures* = object sType*: VkStructureType pNext*: pointer timelineSemaphore*: VkBool32 + VkPhysicalDeviceTimelineSemaphoreFeaturesKHR* = object VkPhysicalDeviceTimelineSemaphoreProperties* = object sType*: VkStructureType pNext*: pointer maxTimelineSemaphoreValueDifference*: uint64 + VkPhysicalDeviceTimelineSemaphorePropertiesKHR* = object VkSemaphoreTypeCreateInfo* = object sType*: VkStructureType pNext*: pointer semaphoreType*: VkSemaphoreType initialValue*: uint64 + VkSemaphoreTypeCreateInfoKHR* = object VkTimelineSemaphoreSubmitInfo* = object sType*: VkStructureType @@ -7151,6 +9239,7 @@ pWaitSemaphoreValues*: ptr uint64 signalSemaphoreValueCount*: uint32 pSignalSemaphoreValues*: ptr uint64 + VkTimelineSemaphoreSubmitInfoKHR* = object VkSemaphoreWaitInfo* = object sType*: VkStructureType @@ -7159,25 +9248,30 @@ semaphoreCount*: uint32 pSemaphores*: ptr VkSemaphore pValues*: ptr uint64 + VkSemaphoreWaitInfoKHR* = object VkSemaphoreSignalInfo* = object sType*: VkStructureType pNext*: pointer semaphore*: VkSemaphore value*: uint64 + VkSemaphoreSignalInfoKHR* = object VkVertexInputBindingDivisorDescriptionEXT* = object binding*: uint32 divisor*: uint32 + VkPipelineVertexInputDivisorStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer vertexBindingDivisorCount*: uint32 pVertexBindingDivisors*: ptr VkVertexInputBindingDivisorDescriptionEXT + VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT* = object sType*: VkStructureType pNext*: pointer maxVertexAttribDivisor*: uint32 + VkPhysicalDevicePCIBusInfoPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -7185,34 +9279,40 @@ pciBus*: uint32 pciDevice*: uint32 pciFunction*: uint32 + VkCommandBufferInheritanceConditionalRenderingInfoEXT* = object sType*: VkStructureType pNext*: pointer conditionalRenderingEnable*: VkBool32 + VkPhysicalDevice8BitStorageFeatures* = object sType*: VkStructureType pNext*: pointer storageBuffer8BitAccess*: VkBool32 uniformAndStorageBuffer8BitAccess*: VkBool32 storagePushConstant8*: VkBool32 + VkPhysicalDevice8BitStorageFeaturesKHR* = object VkPhysicalDeviceConditionalRenderingFeaturesEXT* = object sType*: VkStructureType pNext*: pointer conditionalRendering*: VkBool32 inheritedConditionalRendering*: VkBool32 + VkPhysicalDeviceVulkanMemoryModelFeatures* = object sType*: VkStructureType pNext*: pointer vulkanMemoryModel*: VkBool32 vulkanMemoryModelDeviceScope*: VkBool32 vulkanMemoryModelAvailabilityVisibilityChains*: VkBool32 + VkPhysicalDeviceVulkanMemoryModelFeaturesKHR* = object VkPhysicalDeviceShaderAtomicInt64Features* = object sType*: VkStructureType pNext*: pointer shaderBufferInt64Atomics*: VkBool32 shaderSharedInt64Atomics*: VkBool32 + VkPhysicalDeviceShaderAtomicInt64FeaturesKHR* = object VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* = object sType*: VkStructureType @@ -7229,6 +9329,7 @@ shaderImageFloat32AtomicAdd*: VkBool32 sparseImageFloat32Atomics*: VkBool32 sparseImageFloat32AtomicAdd*: VkBool32 + VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT* = object sType*: VkStructureType pNext*: pointer @@ -7244,20 +9345,24 @@ shaderSharedFloat64AtomicMinMax*: VkBool32 shaderImageFloat32AtomicMinMax*: VkBool32 sparseImageFloat32AtomicMinMax*: VkBool32 + VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* = object sType*: VkStructureType pNext*: pointer vertexAttributeInstanceRateDivisor*: VkBool32 vertexAttributeInstanceRateZeroDivisor*: VkBool32 + VkQueueFamilyCheckpointPropertiesNV* = object sType*: VkStructureType pNext*: pointer checkpointExecutionStageMask*: VkPipelineStageFlags + VkCheckpointDataNV* = object sType*: VkStructureType pNext*: pointer stage*: VkPipelineStageFlagBits pCheckpointMarker*: pointer + VkPhysicalDeviceDepthStencilResolveProperties* = object sType*: VkStructureType pNext*: pointer @@ -7265,6 +9370,7 @@ supportedStencilResolveModes*: VkResolveModeFlags independentResolveNone*: VkBool32 independentResolve*: VkBool32 + VkPhysicalDeviceDepthStencilResolvePropertiesKHR* = object VkSubpassDescriptionDepthStencilResolve* = object sType*: VkStructureType @@ -7272,20 +9378,24 @@ depthResolveMode*: VkResolveModeFlagBits stencilResolveMode*: VkResolveModeFlagBits pDepthStencilResolveAttachment*: ptr VkAttachmentReference2 + VkSubpassDescriptionDepthStencilResolveKHR* = object VkImageViewASTCDecodeModeEXT* = object sType*: VkStructureType pNext*: pointer decodeMode*: VkFormat + VkPhysicalDeviceASTCDecodeFeaturesEXT* = object sType*: VkStructureType pNext*: pointer decodeModeSharedExponent*: VkBool32 + VkPhysicalDeviceTransformFeedbackFeaturesEXT* = object sType*: VkStructureType pNext*: pointer transformFeedback*: VkBool32 geometryStreams*: VkBool32 + VkPhysicalDeviceTransformFeedbackPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -7299,107 +9409,130 @@ transformFeedbackStreamsLinesTriangles*: VkBool32 transformFeedbackRasterizationStreamSelect*: VkBool32 transformFeedbackDraw*: VkBool32 + VkPipelineRasterizationStateStreamCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineRasterizationStateStreamCreateFlagsEXT rasterizationStream*: uint32 + VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* = object sType*: VkStructureType pNext*: pointer representativeFragmentTest*: VkBool32 + VkPipelineRepresentativeFragmentTestStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer representativeFragmentTestEnable*: VkBool32 + VkPhysicalDeviceExclusiveScissorFeaturesNV* = object sType*: VkStructureType pNext*: pointer exclusiveScissor*: VkBool32 + VkPipelineViewportExclusiveScissorStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer exclusiveScissorCount*: uint32 pExclusiveScissors*: ptr VkRect2D + VkPhysicalDeviceCornerSampledImageFeaturesNV* = object sType*: VkStructureType pNext*: pointer cornerSampledImage*: VkBool32 + VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* = object sType*: VkStructureType pNext*: pointer computeDerivativeGroupQuads*: VkBool32 computeDerivativeGroupLinear*: VkBool32 + VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* = object VkPhysicalDeviceShaderImageFootprintFeaturesNV* = object sType*: VkStructureType pNext*: pointer imageFootprint*: VkBool32 + VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* = object sType*: VkStructureType pNext*: pointer dedicatedAllocationImageAliasing*: VkBool32 + VkPhysicalDeviceCopyMemoryIndirectFeaturesNV* = object sType*: VkStructureType pNext*: pointer indirectCopy*: VkBool32 + VkPhysicalDeviceCopyMemoryIndirectPropertiesNV* = object sType*: VkStructureType pNext*: pointer supportedQueues*: VkQueueFlags + VkPhysicalDeviceMemoryDecompressionFeaturesNV* = object sType*: VkStructureType pNext*: pointer memoryDecompression*: VkBool32 + VkPhysicalDeviceMemoryDecompressionPropertiesNV* = object sType*: VkStructureType pNext*: pointer decompressionMethods*: VkMemoryDecompressionMethodFlagsNV maxDecompressionIndirectCount*: uint64 + VkShadingRatePaletteNV* = object shadingRatePaletteEntryCount*: uint32 pShadingRatePaletteEntries*: ptr VkShadingRatePaletteEntryNV + VkPipelineViewportShadingRateImageStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer shadingRateImageEnable*: VkBool32 viewportCount*: uint32 pShadingRatePalettes*: ptr VkShadingRatePaletteNV + VkPhysicalDeviceShadingRateImageFeaturesNV* = object sType*: VkStructureType pNext*: pointer shadingRateImage*: VkBool32 shadingRateCoarseSampleOrder*: VkBool32 + VkPhysicalDeviceShadingRateImagePropertiesNV* = object sType*: VkStructureType pNext*: pointer shadingRateTexelSize*: VkExtent2D shadingRatePaletteSize*: uint32 shadingRateMaxCoarseSamples*: uint32 + VkPhysicalDeviceInvocationMaskFeaturesHUAWEI* = object sType*: VkStructureType pNext*: pointer invocationMask*: VkBool32 + VkCoarseSampleLocationNV* = object pixelX*: uint32 pixelY*: uint32 sample*: uint32 + VkCoarseSampleOrderCustomNV* = object shadingRate*: VkShadingRatePaletteEntryNV sampleCount*: uint32 sampleLocationCount*: uint32 pSampleLocations*: ptr VkCoarseSampleLocationNV + VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer sampleOrderType*: VkCoarseSampleOrderTypeNV customSampleOrderCount*: uint32 pCustomSampleOrders*: ptr VkCoarseSampleOrderCustomNV + VkPhysicalDeviceMeshShaderFeaturesNV* = object sType*: VkStructureType pNext*: pointer taskShader*: VkBool32 meshShader*: VkBool32 + VkPhysicalDeviceMeshShaderPropertiesNV* = object sType*: VkStructureType pNext*: pointer @@ -7416,9 +9549,11 @@ maxMeshMultiviewViewCount*: uint32 meshOutputPerVertexGranularity*: uint32 meshOutputPerPrimitiveGranularity*: uint32 + VkDrawMeshTasksIndirectCommandNV* = object taskCount*: uint32 firstTask*: uint32 + VkPhysicalDeviceMeshShaderFeaturesEXT* = object sType*: VkStructureType pNext*: pointer @@ -7427,6 +9562,7 @@ multiviewMeshShader*: VkBool32 primitiveFragmentShadingRateMeshShader*: VkBool32 meshShaderQueries*: VkBool32 + VkPhysicalDeviceMeshShaderPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -7458,10 +9594,12 @@ prefersLocalInvocationPrimitiveOutput*: VkBool32 prefersCompactVertexOutput*: VkBool32 prefersCompactPrimitiveOutput*: VkBool32 + VkDrawMeshTasksIndirectCommandEXT* = object groupCountX*: uint32 groupCountY*: uint32 groupCountZ*: uint32 + VkRayTracingShaderGroupCreateInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -7470,6 +9608,7 @@ closestHitShader*: uint32 anyHitShader*: uint32 intersectionShader*: uint32 + VkRayTracingShaderGroupCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -7479,6 +9618,7 @@ anyHitShader*: uint32 intersectionShader*: uint32 pShaderGroupCaptureReplayHandle*: pointer + VkRayTracingPipelineCreateInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -7491,6 +9631,7 @@ layout*: VkPipelineLayout basePipelineHandle*: VkPipeline basePipelineIndex*: int32 + VkRayTracingPipelineCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -7506,6 +9647,7 @@ layout*: VkPipelineLayout basePipelineHandle*: VkPipeline basePipelineIndex*: int32 + VkGeometryTrianglesNV* = object sType*: VkStructureType pNext*: pointer @@ -7520,6 +9662,7 @@ indexType*: VkIndexType transformData*: VkBuffer transformOffset*: VkDeviceSize + VkGeometryAABBNV* = object sType*: VkStructureType pNext*: pointer @@ -7527,15 +9670,18 @@ numAABBs*: uint32 stride*: uint32 offset*: VkDeviceSize + VkGeometryDataNV* = object triangles*: VkGeometryTrianglesNV aabbs*: VkGeometryAABBNV + VkGeometryNV* = object sType*: VkStructureType pNext*: pointer geometryType*: VkGeometryTypeKHR geometry*: VkGeometryDataNV flags*: VkGeometryFlagsKHR + VkAccelerationStructureInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -7544,11 +9690,13 @@ instanceCount*: uint32 geometryCount*: uint32 pGeometries*: ptr VkGeometryNV + VkAccelerationStructureCreateInfoNV* = object sType*: VkStructureType pNext*: pointer compactedSize*: VkDeviceSize info*: VkAccelerationStructureInfoNV + VkBindAccelerationStructureMemoryInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -7557,21 +9705,25 @@ memoryOffset*: VkDeviceSize deviceIndexCount*: uint32 pDeviceIndices*: ptr uint32 + VkWriteDescriptorSetAccelerationStructureKHR* = object sType*: VkStructureType pNext*: pointer accelerationStructureCount*: uint32 pAccelerationStructures*: ptr VkAccelerationStructureKHR + VkWriteDescriptorSetAccelerationStructureNV* = object sType*: VkStructureType pNext*: pointer accelerationStructureCount*: uint32 pAccelerationStructures*: ptr VkAccelerationStructureNV + VkAccelerationStructureMemoryRequirementsInfoNV* = object sType*: VkStructureType pNext*: pointer thetype*: VkAccelerationStructureMemoryRequirementsTypeNV accelerationStructure*: VkAccelerationStructureNV + VkPhysicalDeviceAccelerationStructureFeaturesKHR* = object sType*: VkStructureType pNext*: pointer @@ -7580,6 +9732,7 @@ accelerationStructureIndirectBuild*: VkBool32 accelerationStructureHostCommands*: VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind*: VkBool32 + VkPhysicalDeviceRayTracingPipelineFeaturesKHR* = object sType*: VkStructureType pNext*: pointer @@ -7588,10 +9741,12 @@ rayTracingPipelineShaderGroupHandleCaptureReplayMixed*: VkBool32 rayTracingPipelineTraceRaysIndirect*: VkBool32 rayTraversalPrimitiveCulling*: VkBool32 + VkPhysicalDeviceRayQueryFeaturesKHR* = object sType*: VkStructureType pNext*: pointer rayQuery*: VkBool32 + VkPhysicalDeviceAccelerationStructurePropertiesKHR* = object sType*: VkStructureType pNext*: pointer @@ -7603,6 +9758,7 @@ maxDescriptorSetAccelerationStructures*: uint32 maxDescriptorSetUpdateAfterBindAccelerationStructures*: uint32 minAccelerationStructureScratchOffsetAlignment*: uint32 + VkPhysicalDeviceRayTracingPipelinePropertiesKHR* = object sType*: VkStructureType pNext*: pointer @@ -7614,6 +9770,7 @@ maxRayDispatchInvocationCount*: uint32 shaderGroupHandleAlignment*: uint32 maxRayHitAttributeSize*: uint32 + VkPhysicalDeviceRayTracingPropertiesNV* = object sType*: VkStructureType pNext*: pointer @@ -7625,14 +9782,17 @@ maxInstanceCount*: uint64 maxTriangleCount*: uint64 maxDescriptorSetAccelerationStructures*: uint32 + VkStridedDeviceAddressRegionKHR* = object deviceAddress*: VkDeviceAddress stride*: VkDeviceSize size*: VkDeviceSize + VkTraceRaysIndirectCommandKHR* = object width*: uint32 height*: uint32 depth*: uint32 + VkTraceRaysIndirectCommand2KHR* = object raygenShaderRecordAddress*: VkDeviceAddress raygenShaderRecordSize*: VkDeviceSize @@ -7648,20 +9808,24 @@ width*: uint32 height*: uint32 depth*: uint32 + VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR* = object sType*: VkStructureType pNext*: pointer rayTracingMaintenance1*: VkBool32 rayTracingPipelineTraceRaysIndirect2*: VkBool32 + VkDrmFormatModifierPropertiesListEXT* = object sType*: VkStructureType pNext*: pointer drmFormatModifierCount*: uint32 pDrmFormatModifierProperties*: ptr VkDrmFormatModifierPropertiesEXT + VkDrmFormatModifierPropertiesEXT* = object drmFormatModifier*: uint64 drmFormatModifierPlaneCount*: uint32 drmFormatModifierTilingFeatures*: VkFormatFeatureFlags + VkPhysicalDeviceImageDrmFormatModifierInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -7669,50 +9833,60 @@ sharingMode*: VkSharingMode queueFamilyIndexCount*: uint32 pQueueFamilyIndices*: ptr uint32 + VkImageDrmFormatModifierListCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer drmFormatModifierCount*: uint32 pDrmFormatModifiers*: ptr uint64 + VkImageDrmFormatModifierExplicitCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer drmFormatModifier*: uint64 drmFormatModifierPlaneCount*: uint32 pPlaneLayouts*: ptr VkSubresourceLayout + VkImageDrmFormatModifierPropertiesEXT* = object sType*: VkStructureType pNext*: pointer drmFormatModifier*: uint64 + VkImageStencilUsageCreateInfo* = object sType*: VkStructureType pNext*: pointer stencilUsage*: VkImageUsageFlags + VkImageStencilUsageCreateInfoEXT* = object VkDeviceMemoryOverallocationCreateInfoAMD* = object sType*: VkStructureType pNext*: pointer overallocationBehavior*: VkMemoryOverallocationBehaviorAMD + VkPhysicalDeviceFragmentDensityMapFeaturesEXT* = object sType*: VkStructureType pNext*: pointer fragmentDensityMap*: VkBool32 fragmentDensityMapDynamic*: VkBool32 fragmentDensityMapNonSubsampledImages*: VkBool32 + VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* = object sType*: VkStructureType pNext*: pointer fragmentDensityMapDeferred*: VkBool32 + VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM* = object sType*: VkStructureType pNext*: pointer fragmentDensityMapOffset*: VkBool32 + VkPhysicalDeviceFragmentDensityMapPropertiesEXT* = object sType*: VkStructureType pNext*: pointer minFragmentDensityTexelSize*: VkExtent2D maxFragmentDensityTexelSize*: VkExtent2D fragmentDensityInvocations*: VkBool32 + VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -7720,65 +9894,79 @@ subsampledCoarseReconstructionEarlyAccess*: VkBool32 maxSubsampledArrayLayers*: uint32 maxDescriptorSetSubsampledSamplers*: uint32 + VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM* = object sType*: VkStructureType pNext*: pointer fragmentDensityOffsetGranularity*: VkExtent2D + VkRenderPassFragmentDensityMapCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer fragmentDensityMapAttachment*: VkAttachmentReference + VkSubpassFragmentDensityMapOffsetEndInfoQCOM* = object sType*: VkStructureType pNext*: pointer fragmentDensityOffsetCount*: uint32 pFragmentDensityOffsets*: ptr VkOffset2D + VkPhysicalDeviceScalarBlockLayoutFeatures* = object sType*: VkStructureType pNext*: pointer scalarBlockLayout*: VkBool32 + VkPhysicalDeviceScalarBlockLayoutFeaturesEXT* = object VkSurfaceProtectedCapabilitiesKHR* = object sType*: VkStructureType pNext*: pointer supportsProtected*: VkBool32 + VkPhysicalDeviceUniformBufferStandardLayoutFeatures* = object sType*: VkStructureType pNext*: pointer uniformBufferStandardLayout*: VkBool32 + VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR* = object VkPhysicalDeviceDepthClipEnableFeaturesEXT* = object sType*: VkStructureType pNext*: pointer depthClipEnable*: VkBool32 + VkPipelineRasterizationDepthClipStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineRasterizationDepthClipStateCreateFlagsEXT depthClipEnable*: VkBool32 + VkPhysicalDeviceMemoryBudgetPropertiesEXT* = object sType*: VkStructureType pNext*: pointer heapBudget*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize] heapUsage*: array[VK_MAX_MEMORY_HEAPS, VkDeviceSize] + VkPhysicalDeviceMemoryPriorityFeaturesEXT* = object sType*: VkStructureType pNext*: pointer memoryPriority*: VkBool32 + VkMemoryPriorityAllocateInfoEXT* = object sType*: VkStructureType pNext*: pointer priority*: float32 + VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT* = object sType*: VkStructureType pNext*: pointer pageableDeviceLocalMemory*: VkBool32 + VkPhysicalDeviceBufferDeviceAddressFeatures* = object sType*: VkStructureType pNext*: pointer bufferDeviceAddress*: VkBool32 bufferDeviceAddressCaptureReplay*: VkBool32 bufferDeviceAddressMultiDevice*: VkBool32 + VkPhysicalDeviceBufferDeviceAddressFeaturesKHR* = object VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* = object sType*: VkStructureType @@ -7786,41 +9974,49 @@ bufferDeviceAddress*: VkBool32 bufferDeviceAddressCaptureReplay*: VkBool32 bufferDeviceAddressMultiDevice*: VkBool32 + VkPhysicalDeviceBufferAddressFeaturesEXT* = object VkBufferDeviceAddressInfo* = object sType*: VkStructureType pNext*: pointer buffer*: VkBuffer + VkBufferDeviceAddressInfoKHR* = object VkBufferDeviceAddressInfoEXT* = object VkBufferOpaqueCaptureAddressCreateInfo* = object sType*: VkStructureType pNext*: pointer opaqueCaptureAddress*: uint64 + VkBufferOpaqueCaptureAddressCreateInfoKHR* = object VkBufferDeviceAddressCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer deviceAddress*: VkDeviceAddress + VkPhysicalDeviceImageViewImageFormatInfoEXT* = object sType*: VkStructureType pNext*: pointer imageViewType*: VkImageViewType + VkFilterCubicImageViewImageFormatPropertiesEXT* = object sType*: VkStructureType pNext*: pointer filterCubic*: VkBool32 filterCubicMinmax*: VkBool32 + VkPhysicalDeviceImagelessFramebufferFeatures* = object sType*: VkStructureType pNext*: pointer imagelessFramebuffer*: VkBool32 + VkPhysicalDeviceImagelessFramebufferFeaturesKHR* = object VkFramebufferAttachmentsCreateInfo* = object sType*: VkStructureType pNext*: pointer attachmentImageInfoCount*: uint32 pAttachmentImageInfos*: ptr VkFramebufferAttachmentImageInfo + VkFramebufferAttachmentsCreateInfoKHR* = object VkFramebufferAttachmentImageInfo* = object sType*: VkStructureType @@ -7832,27 +10028,32 @@ layerCount*: uint32 viewFormatCount*: uint32 pViewFormats*: ptr VkFormat + VkFramebufferAttachmentImageInfoKHR* = object VkRenderPassAttachmentBeginInfo* = object sType*: VkStructureType pNext*: pointer attachmentCount*: uint32 pAttachments*: ptr VkImageView + VkRenderPassAttachmentBeginInfoKHR* = object VkPhysicalDeviceTextureCompressionASTCHDRFeatures* = object sType*: VkStructureType pNext*: pointer textureCompressionASTC_HDR*: VkBool32 + VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* = object VkPhysicalDeviceCooperativeMatrixFeaturesNV* = object sType*: VkStructureType pNext*: pointer cooperativeMatrix*: VkBool32 cooperativeMatrixRobustBufferAccess*: VkBool32 + VkPhysicalDeviceCooperativeMatrixPropertiesNV* = object sType*: VkStructureType pNext*: pointer cooperativeMatrixSupportedStages*: VkShaderStageFlags + VkCooperativeMatrixPropertiesNV* = object sType*: VkStructureType pNext*: pointer @@ -7864,24 +10065,29 @@ CType*: VkComponentTypeNV DType*: VkComponentTypeNV scope*: VkScopeNV + VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* = object sType*: VkStructureType pNext*: pointer ycbcrImageArrays*: VkBool32 + VkImageViewHandleInfoNVX* = object sType*: VkStructureType pNext*: pointer imageView*: VkImageView descriptorType*: VkDescriptorType sampler*: VkSampler + VkImageViewAddressPropertiesNVX* = object sType*: VkStructureType pNext*: pointer deviceAddress*: VkDeviceAddress size*: VkDeviceSize + VkPipelineCreationFeedback* = object flags*: VkPipelineCreationFeedbackFlags duration*: uint64 + VkPipelineCreationFeedbackEXT* = object VkPipelineCreationFeedbackCreateInfo* = object sType*: VkStructureType @@ -7889,28 +10095,34 @@ pPipelineCreationFeedback*: ptr VkPipelineCreationFeedback pipelineStageCreationFeedbackCount*: uint32 pPipelineStageCreationFeedbacks*: ptr VkPipelineCreationFeedback + VkPipelineCreationFeedbackCreateInfoEXT* = object VkPhysicalDevicePresentBarrierFeaturesNV* = object sType*: VkStructureType pNext*: pointer presentBarrier*: VkBool32 + VkSurfaceCapabilitiesPresentBarrierNV* = object sType*: VkStructureType pNext*: pointer presentBarrierSupported*: VkBool32 + VkSwapchainPresentBarrierCreateInfoNV* = object sType*: VkStructureType pNext*: pointer presentBarrierEnable*: VkBool32 + VkPhysicalDevicePerformanceQueryFeaturesKHR* = object sType*: VkStructureType pNext*: pointer performanceCounterQueryPools*: VkBool32 performanceCounterMultipleQueryPools*: VkBool32 + VkPhysicalDevicePerformanceQueryPropertiesKHR* = object sType*: VkStructureType pNext*: pointer allowCommandBufferQueryCopies*: VkBool32 + VkPerformanceCounterKHR* = object sType*: VkStructureType pNext*: pointer @@ -7918,6 +10130,7 @@ scope*: VkPerformanceCounterScopeKHR storage*: VkPerformanceCounterStorageKHR uuid*: array[VK_UUID_SIZE, uint8] + VkPerformanceCounterDescriptionKHR* = object sType*: VkStructureType pNext*: pointer @@ -7925,12 +10138,14 @@ name*: array[VK_MAX_DESCRIPTION_SIZE, char] category*: array[VK_MAX_DESCRIPTION_SIZE, char] description*: array[VK_MAX_DESCRIPTION_SIZE, char] + VkQueryPoolPerformanceCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer queueFamilyIndex*: uint32 counterIndexCount*: uint32 pCounterIndices*: ptr uint32 + VkPerformanceCounterResultKHR* {.union.} = object int32*: int32 int64*: int64 @@ -7938,32 +10153,39 @@ uint64*: uint64 float32*: float32 float64*: float64 + VkAcquireProfilingLockInfoKHR* = object sType*: VkStructureType pNext*: pointer flags*: VkAcquireProfilingLockFlagsKHR timeout*: uint64 + VkPerformanceQuerySubmitInfoKHR* = object sType*: VkStructureType pNext*: pointer counterPassIndex*: uint32 + VkPerformanceQueryReservationInfoKHR* = object sType*: VkStructureType pNext*: pointer maxPerformanceQueriesPerPool*: uint32 + VkHeadlessSurfaceCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkHeadlessSurfaceCreateFlagsEXT + VkPhysicalDeviceCoverageReductionModeFeaturesNV* = object sType*: VkStructureType pNext*: pointer coverageReductionMode*: VkBool32 + VkPipelineCoverageReductionStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer flags*: VkPipelineCoverageReductionStateCreateFlagsNV coverageReductionMode*: VkCoverageReductionModeNV + VkFramebufferMixedSamplesCombinationNV* = object sType*: VkStructureType pNext*: pointer @@ -7971,99 +10193,120 @@ rasterizationSamples*: VkSampleCountFlagBits depthStencilSamples*: VkSampleCountFlags colorSamples*: VkSampleCountFlags + VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* = object sType*: VkStructureType pNext*: pointer shaderIntegerFunctions2*: VkBool32 + VkPerformanceValueDataINTEL* {.union.} = object value32*: uint32 value64*: uint64 valueFloat*: float32 valueBool*: VkBool32 valueString*: cstring + VkPerformanceValueINTEL* = object thetype*: VkPerformanceValueTypeINTEL data*: VkPerformanceValueDataINTEL + VkInitializePerformanceApiInfoINTEL* = object sType*: VkStructureType pNext*: pointer pUserData*: pointer + VkQueryPoolPerformanceQueryCreateInfoINTEL* = object sType*: VkStructureType pNext*: pointer performanceCountersSampling*: VkQueryPoolSamplingModeINTEL + VkQueryPoolCreateInfoINTEL* = object VkPerformanceMarkerInfoINTEL* = object sType*: VkStructureType pNext*: pointer marker*: uint64 + VkPerformanceStreamMarkerInfoINTEL* = object sType*: VkStructureType pNext*: pointer marker*: uint32 + VkPerformanceOverrideInfoINTEL* = object sType*: VkStructureType pNext*: pointer thetype*: VkPerformanceOverrideTypeINTEL enable*: VkBool32 parameter*: uint64 + VkPerformanceConfigurationAcquireInfoINTEL* = object sType*: VkStructureType pNext*: pointer thetype*: VkPerformanceConfigurationTypeINTEL + VkPhysicalDeviceShaderClockFeaturesKHR* = object sType*: VkStructureType pNext*: pointer shaderSubgroupClock*: VkBool32 shaderDeviceClock*: VkBool32 + VkPhysicalDeviceIndexTypeUint8FeaturesEXT* = object sType*: VkStructureType pNext*: pointer indexTypeUint8*: VkBool32 + VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* = object sType*: VkStructureType pNext*: pointer shaderSMCount*: uint32 shaderWarpsPerSM*: uint32 + VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* = object sType*: VkStructureType pNext*: pointer shaderSMBuiltins*: VkBool32 + VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* = object sType*: VkStructureType pNext*: pointer fragmentShaderSampleInterlock*: VkBool32 fragmentShaderPixelInterlock*: VkBool32 fragmentShaderShadingRateInterlock*: VkBool32 + VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* = object sType*: VkStructureType pNext*: pointer separateDepthStencilLayouts*: VkBool32 + VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR* = object VkAttachmentReferenceStencilLayout* = object sType*: VkStructureType pNext*: pointer stencilLayout*: VkImageLayout + VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT* = object sType*: VkStructureType pNext*: pointer primitiveTopologyListRestart*: VkBool32 primitiveTopologyPatchListRestart*: VkBool32 + VkAttachmentReferenceStencilLayoutKHR* = object VkAttachmentDescriptionStencilLayout* = object sType*: VkStructureType pNext*: pointer stencilInitialLayout*: VkImageLayout stencilFinalLayout*: VkImageLayout + VkAttachmentDescriptionStencilLayoutKHR* = object VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* = object sType*: VkStructureType pNext*: pointer pipelineExecutableInfo*: VkBool32 + VkPipelineInfoKHR* = object sType*: VkStructureType pNext*: pointer pipeline*: VkPipeline + VkPipelineInfoEXT* = object VkPipelineExecutablePropertiesKHR* = object sType*: VkStructureType @@ -8072,16 +10315,19 @@ name*: array[VK_MAX_DESCRIPTION_SIZE, char] description*: array[VK_MAX_DESCRIPTION_SIZE, char] subgroupSize*: uint32 + VkPipelineExecutableInfoKHR* = object sType*: VkStructureType pNext*: pointer pipeline*: VkPipeline executableIndex*: uint32 + VkPipelineExecutableStatisticValueKHR* {.union.} = object b32*: VkBool32 i64*: int64 u64*: uint64 f64*: float64 + VkPipelineExecutableStatisticKHR* = object sType*: VkStructureType pNext*: pointer @@ -8089,6 +10335,7 @@ description*: array[VK_MAX_DESCRIPTION_SIZE, char] format*: VkPipelineExecutableStatisticFormatKHR value*: VkPipelineExecutableStatisticValueKHR + VkPipelineExecutableInternalRepresentationKHR* = object sType*: VkStructureType pNext*: pointer @@ -8097,15 +10344,18 @@ isText*: VkBool32 dataSize*: csize_t pData*: pointer + VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures* = object sType*: VkStructureType pNext*: pointer shaderDemoteToHelperInvocation*: VkBool32 + VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* = object VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* = object sType*: VkStructureType pNext*: pointer texelBufferAlignment*: VkBool32 + VkPhysicalDeviceTexelBufferAlignmentProperties* = object sType*: VkStructureType pNext*: pointer @@ -8113,12 +10363,14 @@ storageTexelBufferOffsetSingleTexelAlignment*: VkBool32 uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSize uniformTexelBufferOffsetSingleTexelAlignment*: VkBool32 + VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* = object VkPhysicalDeviceSubgroupSizeControlFeatures* = object sType*: VkStructureType pNext*: pointer subgroupSizeControl*: VkBool32 computeFullSubgroups*: VkBool32 + VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* = object VkPhysicalDeviceSubgroupSizeControlProperties* = object sType*: VkStructureType @@ -8127,36 +10379,43 @@ maxSubgroupSize*: uint32 maxComputeWorkgroupSubgroups*: uint32 requiredSubgroupSizeStages*: VkShaderStageFlags + VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* = object VkPipelineShaderStageRequiredSubgroupSizeCreateInfo* = object sType*: VkStructureType pNext*: pointer requiredSubgroupSize*: uint32 + VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* = object VkSubpassShadingPipelineCreateInfoHUAWEI* = object sType*: VkStructureType pNext*: pointer renderPass*: VkRenderPass subpass*: uint32 + VkPhysicalDeviceSubpassShadingPropertiesHUAWEI* = object sType*: VkStructureType pNext*: pointer maxSubpassShadingWorkgroupSizeAspectRatio*: uint32 + VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI* = object sType*: VkStructureType pNext*: pointer maxWorkGroupCount*: array[3, uint32] maxWorkGroupSize*: array[3, uint32] maxOutputClusterCount*: uint32 + VkMemoryOpaqueCaptureAddressAllocateInfo* = object sType*: VkStructureType pNext*: pointer opaqueCaptureAddress*: uint64 + VkMemoryOpaqueCaptureAddressAllocateInfoKHR* = object VkDeviceMemoryOpaqueCaptureAddressInfo* = object sType*: VkStructureType pNext*: pointer memory*: VkDeviceMemory + VkDeviceMemoryOpaqueCaptureAddressInfoKHR* = object VkPhysicalDeviceLineRasterizationFeaturesEXT* = object sType*: VkStructureType @@ -8167,10 +10426,12 @@ stippledRectangularLines*: VkBool32 stippledBresenhamLines*: VkBool32 stippledSmoothLines*: VkBool32 + VkPhysicalDeviceLineRasterizationPropertiesEXT* = object sType*: VkStructureType pNext*: pointer lineSubPixelPrecisionBits*: uint32 + VkPipelineRasterizationLineStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -8178,10 +10439,12 @@ stippledLineEnable*: VkBool32 lineStippleFactor*: uint32 lineStipplePattern*: uint16 + VkPhysicalDevicePipelineCreationCacheControlFeatures* = object sType*: VkStructureType pNext*: pointer pipelineCreationCacheControl*: VkBool32 + VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* = object VkPhysicalDeviceVulkan11Features* = object sType*: VkStructureType @@ -8198,6 +10461,7 @@ protectedMemory*: VkBool32 samplerYcbcrConversion*: VkBool32 shaderDrawParameters*: VkBool32 + VkPhysicalDeviceVulkan11Properties* = object sType*: VkStructureType pNext*: pointer @@ -8216,6 +10480,7 @@ protectedNoFault*: VkBool32 maxPerSetDescriptors*: uint32 maxMemoryAllocationSize*: VkDeviceSize + VkPhysicalDeviceVulkan12Features* = object sType*: VkStructureType pNext*: pointer @@ -8266,6 +10531,7 @@ shaderOutputViewportIndex*: VkBool32 shaderOutputLayer*: VkBool32 subgroupBroadcastDynamicId*: VkBool32 + VkPhysicalDeviceVulkan12Properties* = object sType*: VkStructureType pNext*: pointer @@ -8321,6 +10587,7 @@ filterMinmaxImageComponentMapping*: VkBool32 maxTimelineSemaphoreValueDifference*: uint64 framebufferIntegerColorSampleCounts*: VkSampleCountFlags + VkPhysicalDeviceVulkan13Features* = object sType*: VkStructureType pNext*: pointer @@ -8339,6 +10606,7 @@ dynamicRendering*: VkBool32 shaderIntegerDotProduct*: VkBool32 maintenance4*: VkBool32 + VkPhysicalDeviceVulkan13Properties* = object sType*: VkStructureType pNext*: pointer @@ -8372,7 +10640,8 @@ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated*: VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated*: VkBool32 @@ -8387,25 +10656,30 @@ uniformTexelBufferOffsetAlignmentBytes*: VkDeviceSize uniformTexelBufferOffsetSingleTexelAlignment*: VkBool32 maxBufferSize*: VkDeviceSize + VkPipelineCompilerControlCreateInfoAMD* = object sType*: VkStructureType pNext*: pointer compilerControlFlags*: VkPipelineCompilerControlFlagsAMD + VkPhysicalDeviceCoherentMemoryFeaturesAMD* = object sType*: VkStructureType pNext*: pointer deviceCoherentMemory*: VkBool32 + VkFaultData* = object sType*: VkStructureType pNext*: pointer faultLevel*: VkFaultLevel faultType*: VkFaultType + VkFaultCallbackInfo* = object sType*: VkStructureType pNext*: pointer faultCount*: uint32 pFaults*: ptr VkFaultData pfnFaultCallback*: PFN_vkFaultCallbackFunction + VkPhysicalDeviceToolProperties* = object sType*: VkStructureType pNext*: pointer @@ -8414,37 +10688,45 @@ purposes*: VkToolPurposeFlags description*: array[VK_MAX_DESCRIPTION_SIZE, char] layer*: array[VK_MAX_EXTENSION_NAME_SIZE, char] + VkPhysicalDeviceToolPropertiesEXT* = object VkSamplerCustomBorderColorCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer customBorderColor*: VkClearColorValue format*: VkFormat + VkPhysicalDeviceCustomBorderColorPropertiesEXT* = object sType*: VkStructureType pNext*: pointer maxCustomBorderColorSamplers*: uint32 + VkPhysicalDeviceCustomBorderColorFeaturesEXT* = object sType*: VkStructureType pNext*: pointer customBorderColors*: VkBool32 customBorderColorWithoutFormat*: VkBool32 + VkSamplerBorderColorComponentMappingCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer components*: VkComponentMapping srgb*: VkBool32 + VkPhysicalDeviceBorderColorSwizzleFeaturesEXT* = object sType*: VkStructureType pNext*: pointer borderColorSwizzle*: VkBool32 borderColorSwizzleFromImage*: VkBool32 + VkDeviceOrHostAddressKHR* {.union.} = object deviceAddress*: VkDeviceAddress hostAddress*: pointer + VkDeviceOrHostAddressConstKHR* {.union.} = object deviceAddress*: VkDeviceAddress hostAddress*: pointer + VkAccelerationStructureGeometryTrianglesDataKHR* = object sType*: VkStructureType pNext*: pointer @@ -8455,26 +10737,31 @@ indexType*: VkIndexType indexData*: VkDeviceOrHostAddressConstKHR transformData*: VkDeviceOrHostAddressConstKHR + VkAccelerationStructureGeometryAabbsDataKHR* = object sType*: VkStructureType pNext*: pointer data*: VkDeviceOrHostAddressConstKHR stride*: VkDeviceSize + VkAccelerationStructureGeometryInstancesDataKHR* = object sType*: VkStructureType pNext*: pointer arrayOfPointers*: VkBool32 data*: VkDeviceOrHostAddressConstKHR + VkAccelerationStructureGeometryDataKHR* {.union.} = object triangles*: VkAccelerationStructureGeometryTrianglesDataKHR aabbs*: VkAccelerationStructureGeometryAabbsDataKHR instances*: VkAccelerationStructureGeometryInstancesDataKHR + VkAccelerationStructureGeometryKHR* = object sType*: VkStructureType pNext*: pointer geometryType*: VkGeometryTypeKHR geometry*: VkAccelerationStructureGeometryDataKHR flags*: VkGeometryFlagsKHR + VkAccelerationStructureBuildGeometryInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -8487,11 +10774,13 @@ pGeometries*: ptr VkAccelerationStructureGeometryKHR ppGeometries*: ptr ptr VkAccelerationStructureGeometryKHR scratchData*: VkDeviceOrHostAddressKHR + VkAccelerationStructureBuildRangeInfoKHR* = object primitiveCount*: uint32 primitiveOffset*: uint32 firstVertex*: uint32 transformOffset*: uint32 + VkAccelerationStructureCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -8501,6 +10790,7 @@ size*: VkDeviceSize thetype*: VkAccelerationStructureTypeKHR deviceAddress*: VkDeviceAddress + VkAabbPositionsKHR* = object minX*: float32 minY*: float32 @@ -8508,9 +10798,11 @@ maxX*: float32 maxY*: float32 maxZ*: float32 + VkAabbPositionsNV* = object VkTransformMatrixKHR* = object - matrix*: array[3*4, float32] + matrix*: array[3 * 4, float32] + VkTransformMatrixNV* = object VkAccelerationStructureInstanceKHR* = object transform*: VkTransformMatrixKHR @@ -8519,62 +10811,74 @@ instanceShaderBindingTableRecordOffset*: uint32 flags*: VkGeometryInstanceFlagsKHR accelerationStructureReference*: uint64 + VkAccelerationStructureInstanceNV* = object VkAccelerationStructureDeviceAddressInfoKHR* = object sType*: VkStructureType pNext*: pointer accelerationStructure*: VkAccelerationStructureKHR + VkAccelerationStructureVersionInfoKHR* = object sType*: VkStructureType pNext*: pointer pVersionData*: ptr uint8 + VkCopyAccelerationStructureInfoKHR* = object sType*: VkStructureType pNext*: pointer src*: VkAccelerationStructureKHR dst*: VkAccelerationStructureKHR mode*: VkCopyAccelerationStructureModeKHR + VkCopyAccelerationStructureToMemoryInfoKHR* = object sType*: VkStructureType pNext*: pointer src*: VkAccelerationStructureKHR dst*: VkDeviceOrHostAddressKHR mode*: VkCopyAccelerationStructureModeKHR + VkCopyMemoryToAccelerationStructureInfoKHR* = object sType*: VkStructureType pNext*: pointer src*: VkDeviceOrHostAddressConstKHR dst*: VkAccelerationStructureKHR mode*: VkCopyAccelerationStructureModeKHR + VkRayTracingPipelineInterfaceCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer maxPipelineRayPayloadSize*: uint32 maxPipelineRayHitAttributeSize*: uint32 + VkPipelineLibraryCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer libraryCount*: uint32 pLibraries*: ptr VkPipeline + VkRefreshObjectKHR* = object objectType*: VkObjectType objectHandle*: uint64 flags*: VkRefreshObjectFlagsKHR + VkRefreshObjectListKHR* = object sType*: VkStructureType pNext*: pointer objectCount*: uint32 pObjects*: ptr VkRefreshObjectKHR + VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* = object sType*: VkStructureType pNext*: pointer extendedDynamicState*: VkBool32 + VkPhysicalDeviceExtendedDynamicState2FeaturesEXT* = object sType*: VkStructureType pNext*: pointer extendedDynamicState2*: VkBool32 extendedDynamicState2LogicOp*: VkBool32 extendedDynamicState2PatchControlPoints*: VkBool32 + VkPhysicalDeviceExtendedDynamicState3FeaturesEXT* = object sType*: VkStructureType pNext*: pointer @@ -8609,10 +10913,12 @@ extendedDynamicState3CoverageReductionMode*: VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable*: VkBool32 extendedDynamicState3ShadingRateImageEnable*: VkBool32 + VkPhysicalDeviceExtendedDynamicState3PropertiesEXT* = object sType*: VkStructureType pNext*: pointer dynamicPrimitiveTopologyUnrestricted*: VkBool32 + VkColorBlendEquationEXT* = object srcColorBlendFactor*: VkBlendFactor dstColorBlendFactor*: VkBlendFactor @@ -8620,63 +10926,76 @@ srcAlphaBlendFactor*: VkBlendFactor dstAlphaBlendFactor*: VkBlendFactor alphaBlendOp*: VkBlendOp + VkColorBlendAdvancedEXT* = object advancedBlendOp*: VkBlendOp srcPremultiplied*: VkBool32 dstPremultiplied*: VkBool32 blendOverlap*: VkBlendOverlapEXT clampResults*: VkBool32 + VkRenderPassTransformBeginInfoQCOM* = object sType*: VkStructureType pNext*: pointer transform*: VkSurfaceTransformFlagBitsKHR + VkCopyCommandTransformInfoQCOM* = object sType*: VkStructureType pNext*: pointer transform*: VkSurfaceTransformFlagBitsKHR + VkCommandBufferInheritanceRenderPassTransformInfoQCOM* = object sType*: VkStructureType pNext*: pointer transform*: VkSurfaceTransformFlagBitsKHR renderArea*: VkRect2D + VkPhysicalDeviceDiagnosticsConfigFeaturesNV* = object sType*: VkStructureType pNext*: pointer diagnosticsConfig*: VkBool32 + VkDeviceDiagnosticsConfigCreateInfoNV* = object sType*: VkStructureType pNext*: pointer flags*: VkDeviceDiagnosticsConfigFlagsNV + VkPipelineOfflineCreateInfo* = object sType*: VkStructureType pNext*: pointer pipelineIdentifier*: array[VK_UUID_SIZE, uint8] matchControl*: VkPipelineMatchControl poolEntrySize*: VkDeviceSize + VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures* = object sType*: VkStructureType pNext*: pointer shaderZeroInitializeWorkgroupMemory*: VkBool32 + VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR* = object VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR* = object sType*: VkStructureType pNext*: pointer shaderSubgroupUniformControlFlow*: VkBool32 + VkPhysicalDeviceRobustness2FeaturesEXT* = object sType*: VkStructureType pNext*: pointer robustBufferAccess2*: VkBool32 robustImageAccess2*: VkBool32 nullDescriptor*: VkBool32 + VkPhysicalDeviceRobustness2PropertiesEXT* = object sType*: VkStructureType pNext*: pointer robustStorageBufferAccessSizeAlignment*: VkDeviceSize robustUniformBufferAccessSizeAlignment*: VkDeviceSize + VkPhysicalDeviceImageRobustnessFeatures* = object sType*: VkStructureType pNext*: pointer robustImageAccess*: VkBool32 + VkPhysicalDeviceImageRobustnessFeaturesEXT* = object VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR* = object sType*: VkStructureType @@ -8685,26 +11004,31 @@ workgroupMemoryExplicitLayoutScalarBlockLayout*: VkBool32 workgroupMemoryExplicitLayout8BitAccess*: VkBool32 workgroupMemoryExplicitLayout16BitAccess*: VkBool32 + VkPhysicalDevice4444FormatsFeaturesEXT* = object sType*: VkStructureType pNext*: pointer formatA4R4G4B4*: VkBool32 formatA4B4G4R4*: VkBool32 + VkPhysicalDeviceSubpassShadingFeaturesHUAWEI* = object sType*: VkStructureType pNext*: pointer subpassShading*: VkBool32 + VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI* = object sType*: VkStructureType pNext*: pointer clustercullingShader*: VkBool32 multiviewClusterCullingShader*: VkBool32 + VkBufferCopy2* = object sType*: VkStructureType pNext*: pointer srcOffset*: VkDeviceSize dstOffset*: VkDeviceSize size*: VkDeviceSize + VkBufferCopy2KHR* = object VkImageCopy2* = object sType*: VkStructureType @@ -8714,6 +11038,7 @@ dstSubresource*: VkImageSubresourceLayers dstOffset*: VkOffset3D extent*: VkExtent3D + VkImageCopy2KHR* = object VkImageBlit2* = object sType*: VkStructureType @@ -8722,6 +11047,7 @@ srcOffsets*: array[2, VkOffset3D] dstSubresource*: VkImageSubresourceLayers dstOffsets*: array[2, VkOffset3D] + VkImageBlit2KHR* = object VkBufferImageCopy2* = object sType*: VkStructureType @@ -8732,6 +11058,7 @@ imageSubresource*: VkImageSubresourceLayers imageOffset*: VkOffset3D imageExtent*: VkExtent3D + VkBufferImageCopy2KHR* = object VkImageResolve2* = object sType*: VkStructureType @@ -8741,6 +11068,7 @@ dstSubresource*: VkImageSubresourceLayers dstOffset*: VkOffset3D extent*: VkExtent3D + VkImageResolve2KHR* = object VkCopyBufferInfo2* = object sType*: VkStructureType @@ -8749,6 +11077,7 @@ dstBuffer*: VkBuffer regionCount*: uint32 pRegions*: ptr VkBufferCopy2 + VkCopyBufferInfo2KHR* = object VkCopyImageInfo2* = object sType*: VkStructureType @@ -8759,6 +11088,7 @@ dstImageLayout*: VkImageLayout regionCount*: uint32 pRegions*: ptr VkImageCopy2 + VkCopyImageInfo2KHR* = object VkBlitImageInfo2* = object sType*: VkStructureType @@ -8770,6 +11100,7 @@ regionCount*: uint32 pRegions*: ptr VkImageBlit2 filter*: VkFilter + VkBlitImageInfo2KHR* = object VkCopyBufferToImageInfo2* = object sType*: VkStructureType @@ -8779,6 +11110,7 @@ dstImageLayout*: VkImageLayout regionCount*: uint32 pRegions*: ptr VkBufferImageCopy2 + VkCopyBufferToImageInfo2KHR* = object VkCopyImageToBufferInfo2* = object sType*: VkStructureType @@ -8788,6 +11120,7 @@ dstBuffer*: VkBuffer regionCount*: uint32 pRegions*: ptr VkBufferImageCopy2 + VkCopyImageToBufferInfo2KHR* = object VkResolveImageInfo2* = object sType*: VkStructureType @@ -8798,28 +11131,33 @@ dstImageLayout*: VkImageLayout regionCount*: uint32 pRegions*: ptr VkImageResolve2 + VkResolveImageInfo2KHR* = object VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* = object sType*: VkStructureType pNext*: pointer shaderImageInt64Atomics*: VkBool32 sparseImageInt64Atomics*: VkBool32 + VkFragmentShadingRateAttachmentInfoKHR* = object sType*: VkStructureType pNext*: pointer pFragmentShadingRateAttachment*: ptr VkAttachmentReference2 shadingRateAttachmentTexelSize*: VkExtent2D + VkPipelineFragmentShadingRateStateCreateInfoKHR* = object sType*: VkStructureType pNext*: pointer fragmentSize*: VkExtent2D combinerOps*: array[2, VkFragmentShadingRateCombinerOpKHR] + VkPhysicalDeviceFragmentShadingRateFeaturesKHR* = object sType*: VkStructureType pNext*: pointer pipelineFragmentShadingRate*: VkBool32 primitiveFragmentShadingRate*: VkBool32 attachmentFragmentShadingRate*: VkBool32 + VkPhysicalDeviceFragmentShadingRatePropertiesKHR* = object sType*: VkStructureType pNext*: pointer @@ -8840,15 +11178,18 @@ fragmentShadingRateWithFragmentShaderInterlock*: VkBool32 fragmentShadingRateWithCustomSampleLocations*: VkBool32 fragmentShadingRateStrictMultiplyCombiner*: VkBool32 + VkPhysicalDeviceFragmentShadingRateKHR* = object sType*: VkStructureType pNext*: pointer sampleCounts*: VkSampleCountFlags fragmentSize*: VkExtent2D + VkPhysicalDeviceShaderTerminateInvocationFeatures* = object sType*: VkStructureType pNext*: pointer shaderTerminateInvocation*: VkBool32 + VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* = object VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* = object sType*: VkStructureType @@ -8856,62 +11197,75 @@ fragmentShadingRateEnums*: VkBool32 supersampleFragmentShadingRates*: VkBool32 noInvocationFragmentShadingRates*: VkBool32 + VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* = object sType*: VkStructureType pNext*: pointer maxFragmentShadingRateInvocationCount*: VkSampleCountFlagBits + VkPipelineFragmentShadingRateEnumStateCreateInfoNV* = object sType*: VkStructureType pNext*: pointer shadingRateType*: VkFragmentShadingRateTypeNV shadingRate*: VkFragmentShadingRateNV combinerOps*: array[2, VkFragmentShadingRateCombinerOpKHR] + VkAccelerationStructureBuildSizesInfoKHR* = object sType*: VkStructureType pNext*: pointer accelerationStructureSize*: VkDeviceSize updateScratchSize*: VkDeviceSize buildScratchSize*: VkDeviceSize + VkPhysicalDeviceImage2DViewOf3DFeaturesEXT* = object sType*: VkStructureType pNext*: pointer image2DViewOf3D*: VkBool32 sampler2DViewOf3D*: VkBool32 + VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT* = object sType*: VkStructureType pNext*: pointer imageSlicedViewOf3D*: VkBool32 + VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT* = object sType*: VkStructureType pNext*: pointer mutableDescriptorType*: VkBool32 + VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE* = object VkMutableDescriptorTypeListEXT* = object descriptorTypeCount*: uint32 pDescriptorTypes*: ptr VkDescriptorType + VkMutableDescriptorTypeListVALVE* = object VkMutableDescriptorTypeCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer mutableDescriptorTypeListCount*: uint32 pMutableDescriptorTypeLists*: ptr VkMutableDescriptorTypeListEXT + VkMutableDescriptorTypeCreateInfoVALVE* = object VkPhysicalDeviceDepthClipControlFeaturesEXT* = object sType*: VkStructureType pNext*: pointer depthClipControl*: VkBool32 + VkPipelineViewportDepthClipControlCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer negativeOneToOne*: VkBool32 + VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT* = object sType*: VkStructureType pNext*: pointer vertexInputDynamicState*: VkBool32 + VkPhysicalDeviceExternalMemoryRDMAFeaturesNV* = object sType*: VkStructureType pNext*: pointer externalMemoryRDMA*: VkBool32 + VkVertexInputBindingDescription2EXT* = object sType*: VkStructureType pNext*: pointer @@ -8919,6 +11273,7 @@ stride*: uint32 inputRate*: VkVertexInputRate divisor*: uint32 + VkVertexInputAttributeDescription2EXT* = object sType*: VkStructureType pNext*: pointer @@ -8926,15 +11281,18 @@ binding*: uint32 format*: VkFormat offset*: uint32 + VkPhysicalDeviceColorWriteEnableFeaturesEXT* = object sType*: VkStructureType pNext*: pointer colorWriteEnable*: VkBool32 + VkPipelineColorWriteCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer attachmentCount*: uint32 pColorWriteEnables*: ptr VkBool32 + VkMemoryBarrier2* = object sType*: VkStructureType pNext*: pointer @@ -8942,6 +11300,7 @@ srcAccessMask*: VkAccessFlags2 dstStageMask*: VkPipelineStageFlags2 dstAccessMask*: VkAccessFlags2 + VkMemoryBarrier2KHR* = object VkImageMemoryBarrier2* = object sType*: VkStructureType @@ -8956,6 +11315,7 @@ dstQueueFamilyIndex*: uint32 image*: VkImage subresourceRange*: VkImageSubresourceRange + VkImageMemoryBarrier2KHR* = object VkBufferMemoryBarrier2* = object sType*: VkStructureType @@ -8969,6 +11329,7 @@ buffer*: VkBuffer offset*: VkDeviceSize size*: VkDeviceSize + VkBufferMemoryBarrier2KHR* = object VkDependencyInfo* = object sType*: VkStructureType @@ -8980,6 +11341,7 @@ pBufferMemoryBarriers*: ptr VkBufferMemoryBarrier2 imageMemoryBarrierCount*: uint32 pImageMemoryBarriers*: ptr VkImageMemoryBarrier2 + VkDependencyInfoKHR* = object VkSemaphoreSubmitInfo* = object sType*: VkStructureType @@ -8988,12 +11350,14 @@ value*: uint64 stageMask*: VkPipelineStageFlags2 deviceIndex*: uint32 + VkSemaphoreSubmitInfoKHR* = object VkCommandBufferSubmitInfo* = object sType*: VkStructureType pNext*: pointer commandBuffer*: VkCommandBuffer deviceMask*: uint32 + VkCommandBufferSubmitInfoKHR* = object VkSubmitInfo2* = object sType*: VkStructureType @@ -9005,20 +11369,24 @@ pCommandBufferInfos*: ptr VkCommandBufferSubmitInfo signalSemaphoreInfoCount*: uint32 pSignalSemaphoreInfos*: ptr VkSemaphoreSubmitInfo + VkSubmitInfo2KHR* = object VkQueueFamilyCheckpointProperties2NV* = object sType*: VkStructureType pNext*: pointer checkpointExecutionStageMask*: VkPipelineStageFlags2 + VkCheckpointData2NV* = object sType*: VkStructureType pNext*: pointer stage*: VkPipelineStageFlags2 pCheckpointMarker*: pointer + VkPhysicalDeviceSynchronization2Features* = object sType*: VkStructureType pNext*: pointer synchronization2*: VkBool32 + VkPhysicalDeviceSynchronization2FeaturesKHR* = object VkPhysicalDeviceVulkanSC10Properties* = object sType*: VkStructureType @@ -9041,11 +11409,13 @@ maxCallbackFaultCount*: uint32 maxCommandPoolCommandBuffers*: uint32 maxCommandBufferSize*: VkDeviceSize + VkPipelinePoolSize* = object sType*: VkStructureType pNext*: pointer poolEntrySize*: VkDeviceSize poolEntryCount*: uint32 + VkDeviceObjectReservationCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -9090,86 +11460,104 @@ maxPipelineStatisticsQueriesPerPool*: uint32 maxTimestampQueriesPerPool*: uint32 maxImmutableSamplersPerDescriptorSetLayout*: uint32 + VkCommandPoolMemoryReservationCreateInfo* = object sType*: VkStructureType pNext*: pointer commandPoolReservedSize*: VkDeviceSize commandPoolMaxCommandBuffers*: uint32 + VkCommandPoolMemoryConsumption* = object sType*: VkStructureType pNext*: pointer commandPoolAllocated*: VkDeviceSize commandPoolReservedSize*: VkDeviceSize commandBufferAllocated*: VkDeviceSize + VkPhysicalDeviceVulkanSC10Features* = object sType*: VkStructureType pNext*: pointer shaderAtomicInstructions*: VkBool32 + VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT* = object sType*: VkStructureType pNext*: pointer primitivesGeneratedQuery*: VkBool32 primitivesGeneratedQueryWithRasterizerDiscard*: VkBool32 primitivesGeneratedQueryWithNonZeroStreams*: VkBool32 + VkPhysicalDeviceLegacyDitheringFeaturesEXT* = object sType*: VkStructureType pNext*: pointer legacyDithering*: VkBool32 + VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT* = object sType*: VkStructureType pNext*: pointer multisampledRenderToSingleSampled*: VkBool32 + VkSubpassResolvePerformanceQueryEXT* = object sType*: VkStructureType pNext*: pointer optimal*: VkBool32 + VkMultisampledRenderToSingleSampledInfoEXT* = object sType*: VkStructureType pNext*: pointer multisampledRenderToSingleSampledEnable*: VkBool32 rasterizationSamples*: VkSampleCountFlagBits + VkPhysicalDevicePipelineProtectedAccessFeaturesEXT* = object sType*: VkStructureType pNext*: pointer pipelineProtectedAccess*: VkBool32 + VkPhysicalDeviceInheritedViewportScissorFeaturesNV* = object sType*: VkStructureType pNext*: pointer inheritedViewportScissor2D*: VkBool32 + VkCommandBufferInheritanceViewportScissorInfoNV* = object sType*: VkStructureType pNext*: pointer viewportScissor2D*: VkBool32 viewportDepthCount*: uint32 pViewportDepths*: ptr VkViewport + VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT* = object sType*: VkStructureType pNext*: pointer ycbcr2plane444Formats*: VkBool32 + VkPhysicalDeviceProvokingVertexFeaturesEXT* = object sType*: VkStructureType pNext*: pointer provokingVertexLast*: VkBool32 transformFeedbackPreservesProvokingVertex*: VkBool32 + VkPhysicalDeviceProvokingVertexPropertiesEXT* = object sType*: VkStructureType pNext*: pointer provokingVertexModePerPipeline*: VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex*: VkBool32 + VkPipelineRasterizationProvokingVertexStateCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer provokingVertexMode*: VkProvokingVertexModeEXT + VkCuModuleCreateInfoNVX* = object sType*: VkStructureType pNext*: pointer dataSize*: csize_t pData*: pointer + VkCuFunctionCreateInfoNVX* = object sType*: VkStructureType pNext*: pointer module*: VkCuModuleNVX pName*: cstring + VkCuLaunchInfoNVX* = object sType*: VkStructureType pNext*: pointer @@ -9185,6 +11573,7 @@ pParams*: ptr pointer extraCount*: csize_t pExtras*: ptr pointer + VkPhysicalDeviceDescriptorBufferFeaturesEXT* = object sType*: VkStructureType pNext*: pointer @@ -9192,6 +11581,7 @@ descriptorBufferCaptureReplay*: VkBool32 descriptorBufferImageLayoutIgnored*: VkBool32 descriptorBufferPushDescriptors*: VkBool32 + VkPhysicalDeviceDescriptorBufferPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -9228,25 +11618,30 @@ samplerDescriptorBufferAddressSpaceSize*: VkDeviceSize resourceDescriptorBufferAddressSpaceSize*: VkDeviceSize descriptorBufferAddressSpaceSize*: VkDeviceSize + VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT* = object sType*: VkStructureType pNext*: pointer combinedImageSamplerDensityMapDescriptorSize*: csize_t + VkDescriptorAddressInfoEXT* = object sType*: VkStructureType pNext*: pointer address*: VkDeviceAddress range*: VkDeviceSize format*: VkFormat + VkDescriptorBufferBindingInfoEXT* = object sType*: VkStructureType pNext*: pointer address*: VkDeviceAddress usage*: VkBufferUsageFlags + VkDescriptorBufferBindingPushDescriptorBufferHandleEXT* = object sType*: VkStructureType pNext*: pointer buffer*: VkBuffer + VkDescriptorDataEXT* {.union.} = object pSampler*: ptr VkSampler pCombinedImageSampler*: ptr VkDescriptorImageInfo @@ -9258,40 +11653,49 @@ pUniformBuffer*: ptr VkDescriptorAddressInfoEXT pStorageBuffer*: ptr VkDescriptorAddressInfoEXT accelerationStructure*: VkDeviceAddress + VkDescriptorGetInfoEXT* = object sType*: VkStructureType pNext*: pointer thetype*: VkDescriptorType data*: VkDescriptorDataEXT + VkBufferCaptureDescriptorDataInfoEXT* = object sType*: VkStructureType pNext*: pointer buffer*: VkBuffer + VkImageCaptureDescriptorDataInfoEXT* = object sType*: VkStructureType pNext*: pointer image*: VkImage + VkImageViewCaptureDescriptorDataInfoEXT* = object sType*: VkStructureType pNext*: pointer imageView*: VkImageView + VkSamplerCaptureDescriptorDataInfoEXT* = object sType*: VkStructureType pNext*: pointer sampler*: VkSampler + VkAccelerationStructureCaptureDescriptorDataInfoEXT* = object sType*: VkStructureType pNext*: pointer accelerationStructure*: VkAccelerationStructureKHR accelerationStructureNV*: VkAccelerationStructureNV + VkOpaqueCaptureDescriptorDataCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer opaqueCaptureDescriptorData*: pointer + VkPhysicalDeviceShaderIntegerDotProductFeatures* = object sType*: VkStructureType pNext*: pointer shaderIntegerDotProduct*: VkBool32 + VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR* = object VkPhysicalDeviceShaderIntegerDotProductProperties* = object sType*: VkStructureType @@ -9316,7 +11720,8 @@ integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated*: VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated*: VkBool32 - integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: VkBool32 + integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated*: + VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated*: VkBool32 @@ -9326,6 +11731,7 @@ integerDotProductAccumulatingSaturating64BitUnsignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated*: VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated*: VkBool32 + VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR* = object VkPhysicalDeviceDrmPropertiesEXT* = object sType*: VkStructureType @@ -9336,28 +11742,34 @@ primaryMinor*: int64 renderMajor*: int64 renderMinor*: int64 + VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR* = object sType*: VkStructureType pNext*: pointer fragmentShaderBarycentric*: VkBool32 + VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR* = object sType*: VkStructureType pNext*: pointer triStripVertexOrderIndependentOfProvokingVertex*: VkBool32 + VkPhysicalDeviceRayTracingMotionBlurFeaturesNV* = object sType*: VkStructureType pNext*: pointer rayTracingMotionBlur*: VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect*: VkBool32 + VkAccelerationStructureGeometryMotionTrianglesDataNV* = object sType*: VkStructureType pNext*: pointer vertexData*: VkDeviceOrHostAddressConstKHR + VkAccelerationStructureMotionInfoNV* = object sType*: VkStructureType pNext*: pointer maxInstances*: uint32 flags*: VkAccelerationStructureMotionInfoFlagsNV + VkSRTDataNV* = object sx*: float32 a*: float32 @@ -9375,6 +11787,7 @@ tx*: float32 ty*: float32 tz*: float32 + VkAccelerationStructureSRTMotionInstanceNV* = object transformT0*: VkSRTDataNV transformT1*: VkSRTDataNV @@ -9383,6 +11796,7 @@ instanceShaderBindingTableRecordOffset*: uint32 flags*: VkGeometryInstanceFlagsKHR accelerationStructureReference*: uint64 + VkAccelerationStructureMatrixMotionInstanceNV* = object transformT0*: VkTransformMatrixKHR transformT1*: VkTransformMatrixKHR @@ -9391,39 +11805,47 @@ instanceShaderBindingTableRecordOffset*: uint32 flags*: VkGeometryInstanceFlagsKHR accelerationStructureReference*: uint64 + VkAccelerationStructureMotionInstanceDataNV* {.union.} = object staticInstance*: VkAccelerationStructureInstanceKHR matrixMotionInstance*: VkAccelerationStructureMatrixMotionInstanceNV srtMotionInstance*: VkAccelerationStructureSRTMotionInstanceNV + VkAccelerationStructureMotionInstanceNV* = object thetype*: VkAccelerationStructureMotionInstanceTypeNV flags*: VkAccelerationStructureMotionInstanceFlagsNV data*: VkAccelerationStructureMotionInstanceDataNV + VkMemoryGetRemoteAddressInfoNV* = object sType*: VkStructureType pNext*: pointer memory*: VkDeviceMemory handleType*: VkExternalMemoryHandleTypeFlagBits + VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT* = object sType*: VkStructureType pNext*: pointer formatRgba10x6WithoutYCbCrSampler*: VkBool32 + VkFormatProperties3* = object sType*: VkStructureType pNext*: pointer linearTilingFeatures*: VkFormatFeatureFlags2 optimalTilingFeatures*: VkFormatFeatureFlags2 bufferFeatures*: VkFormatFeatureFlags2 + VkFormatProperties3KHR* = object VkDrmFormatModifierPropertiesList2EXT* = object sType*: VkStructureType pNext*: pointer drmFormatModifierCount*: uint32 pDrmFormatModifierProperties*: ptr VkDrmFormatModifierProperties2EXT + VkDrmFormatModifierProperties2EXT* = object drmFormatModifier*: uint64 drmFormatModifierPlaneCount*: uint32 drmFormatModifierTilingFeatures*: VkFormatFeatureFlags2 + VkPipelineRenderingCreateInfo* = object sType*: VkStructureType pNext*: pointer @@ -9432,6 +11854,7 @@ pColorAttachmentFormats*: ptr VkFormat depthAttachmentFormat*: VkFormat stencilAttachmentFormat*: VkFormat + VkPipelineRenderingCreateInfoKHR* = object VkRenderingInfo* = object sType*: VkStructureType @@ -9444,6 +11867,7 @@ pColorAttachments*: ptr VkRenderingAttachmentInfo pDepthAttachment*: ptr VkRenderingAttachmentInfo pStencilAttachment*: ptr VkRenderingAttachmentInfo + VkRenderingInfoKHR* = object VkRenderingAttachmentInfo* = object sType*: VkStructureType @@ -9456,6 +11880,7 @@ loadOp*: VkAttachmentLoadOp storeOp*: VkAttachmentStoreOp clearValue*: VkClearValue + VkRenderingAttachmentInfoKHR* = object VkRenderingFragmentShadingRateAttachmentInfoKHR* = object sType*: VkStructureType @@ -9463,15 +11888,18 @@ imageView*: VkImageView imageLayout*: VkImageLayout shadingRateAttachmentTexelSize*: VkExtent2D + VkRenderingFragmentDensityMapAttachmentInfoEXT* = object sType*: VkStructureType pNext*: pointer imageView*: VkImageView imageLayout*: VkImageLayout + VkPhysicalDeviceDynamicRenderingFeatures* = object sType*: VkStructureType pNext*: pointer dynamicRendering*: VkBool32 + VkPhysicalDeviceDynamicRenderingFeaturesKHR* = object VkCommandBufferInheritanceRenderingInfo* = object sType*: VkStructureType @@ -9483,6 +11911,7 @@ depthAttachmentFormat*: VkFormat stencilAttachmentFormat*: VkFormat rasterizationSamples*: VkSampleCountFlagBits + VkCommandBufferInheritanceRenderingInfoKHR* = object VkAttachmentSampleCountInfoAMD* = object sType*: VkStructureType @@ -9490,125 +11919,153 @@ colorAttachmentCount*: uint32 pColorAttachmentSamples*: ptr VkSampleCountFlagBits depthStencilAttachmentSamples*: VkSampleCountFlagBits + VkAttachmentSampleCountInfoNV* = object VkMultiviewPerViewAttributesInfoNVX* = object sType*: VkStructureType pNext*: pointer perViewAttributes*: VkBool32 perViewAttributesPositionXOnly*: VkBool32 + VkPhysicalDeviceImageViewMinLodFeaturesEXT* = object sType*: VkStructureType pNext*: pointer minLod*: VkBool32 + VkImageViewMinLodCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer minLod*: float32 + VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT* = object sType*: VkStructureType pNext*: pointer rasterizationOrderColorAttachmentAccess*: VkBool32 rasterizationOrderDepthAttachmentAccess*: VkBool32 rasterizationOrderStencilAttachmentAccess*: VkBool32 + VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM* = object VkPhysicalDeviceLinearColorAttachmentFeaturesNV* = object sType*: VkStructureType pNext*: pointer linearColorAttachment*: VkBool32 + VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT* = object sType*: VkStructureType pNext*: pointer graphicsPipelineLibrary*: VkBool32 + VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT* = object sType*: VkStructureType pNext*: pointer graphicsPipelineLibraryFastLinking*: VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration*: VkBool32 + VkGraphicsPipelineLibraryCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkGraphicsPipelineLibraryFlagsEXT + VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE* = object sType*: VkStructureType pNext*: pointer descriptorSetHostMapping*: VkBool32 + VkDescriptorSetBindingReferenceVALVE* = object sType*: VkStructureType pNext*: pointer descriptorSetLayout*: VkDescriptorSetLayout binding*: uint32 + VkDescriptorSetLayoutHostMappingInfoVALVE* = object sType*: VkStructureType pNext*: pointer descriptorOffset*: csize_t descriptorSize*: uint32 + VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT* = object sType*: VkStructureType pNext*: pointer shaderModuleIdentifier*: VkBool32 + VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT* = object sType*: VkStructureType pNext*: pointer shaderModuleIdentifierAlgorithmUUID*: array[VK_UUID_SIZE, uint8] + VkPipelineShaderStageModuleIdentifierCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer identifierSize*: uint32 pIdentifier*: ptr uint8 + VkShaderModuleIdentifierEXT* = object sType*: VkStructureType pNext*: pointer identifierSize*: uint32 identifier*: array[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT, uint8] + VkImageCompressionControlEXT* = object sType*: VkStructureType pNext*: pointer flags*: VkImageCompressionFlagsEXT compressionControlPlaneCount*: uint32 pFixedRateFlags*: ptr VkImageCompressionFixedRateFlagsEXT + VkPhysicalDeviceImageCompressionControlFeaturesEXT* = object sType*: VkStructureType pNext*: pointer imageCompressionControl*: VkBool32 + VkImageCompressionPropertiesEXT* = object sType*: VkStructureType pNext*: pointer imageCompressionFlags*: VkImageCompressionFlagsEXT imageCompressionFixedRateFlags*: VkImageCompressionFixedRateFlagsEXT + VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT* = object sType*: VkStructureType pNext*: pointer imageCompressionControlSwapchain*: VkBool32 + VkImageSubresource2EXT* = object sType*: VkStructureType pNext*: pointer imageSubresource*: VkImageSubresource + VkSubresourceLayout2EXT* = object sType*: VkStructureType pNext*: pointer subresourceLayout*: VkSubresourceLayout + VkRenderPassCreationControlEXT* = object sType*: VkStructureType pNext*: pointer disallowMerging*: VkBool32 + VkRenderPassCreationFeedbackInfoEXT* = object postMergeSubpassCount*: uint32 + VkRenderPassCreationFeedbackCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer pRenderPassFeedback*: ptr VkRenderPassCreationFeedbackInfoEXT + VkRenderPassSubpassFeedbackInfoEXT* = object subpassMergeStatus*: VkSubpassMergeStatusEXT description*: array[VK_MAX_DESCRIPTION_SIZE, char] postMergeIndex*: uint32 + VkRenderPassSubpassFeedbackCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer pSubpassFeedback*: ptr VkRenderPassSubpassFeedbackInfoEXT + VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT* = object sType*: VkStructureType pNext*: pointer subpassMergeFeedback*: VkBool32 + VkMicromapBuildInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -9623,6 +12080,7 @@ scratchData*: VkDeviceOrHostAddressKHR triangleArray*: VkDeviceOrHostAddressConstKHR triangleArrayStride*: VkDeviceSize + VkMicromapCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -9632,53 +12090,63 @@ size*: VkDeviceSize thetype*: VkMicromapTypeEXT deviceAddress*: VkDeviceAddress + VkMicromapVersionInfoEXT* = object sType*: VkStructureType pNext*: pointer pVersionData*: ptr uint8 + VkCopyMicromapInfoEXT* = object sType*: VkStructureType pNext*: pointer src*: VkMicromapEXT dst*: VkMicromapEXT mode*: VkCopyMicromapModeEXT + VkCopyMicromapToMemoryInfoEXT* = object sType*: VkStructureType pNext*: pointer src*: VkMicromapEXT dst*: VkDeviceOrHostAddressKHR mode*: VkCopyMicromapModeEXT + VkCopyMemoryToMicromapInfoEXT* = object sType*: VkStructureType pNext*: pointer src*: VkDeviceOrHostAddressConstKHR dst*: VkMicromapEXT mode*: VkCopyMicromapModeEXT + VkMicromapBuildSizesInfoEXT* = object sType*: VkStructureType pNext*: pointer micromapSize*: VkDeviceSize buildScratchSize*: VkDeviceSize discardable*: VkBool32 + VkMicromapUsageEXT* = object count*: uint32 subdivisionLevel*: uint32 format*: uint32 + VkMicromapTriangleEXT* = object dataOffset*: uint32 subdivisionLevel*: uint16 format*: uint16 + VkPhysicalDeviceOpacityMicromapFeaturesEXT* = object sType*: VkStructureType pNext*: pointer micromap*: VkBool32 micromapCaptureReplay*: VkBool32 micromapHostCommands*: VkBool32 + VkPhysicalDeviceOpacityMicromapPropertiesEXT* = object sType*: VkStructureType pNext*: pointer maxOpacity2StateSubdivisionLevel*: uint32 maxOpacity4StateSubdivisionLevel*: uint32 + VkAccelerationStructureTrianglesOpacityMicromapEXT* = object sType*: VkStructureType pNext*: pointer @@ -9690,26 +12158,32 @@ pUsageCounts*: ptr VkMicromapUsageEXT ppUsageCounts*: ptr ptr VkMicromapUsageEXT micromap*: VkMicromapEXT + VkPipelinePropertiesIdentifierEXT* = object sType*: VkStructureType pNext*: pointer pipelineIdentifier*: array[VK_UUID_SIZE, uint8] + VkPhysicalDevicePipelinePropertiesFeaturesEXT* = object sType*: VkStructureType pNext*: pointer pipelinePropertiesIdentifier*: VkBool32 + VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD* = object sType*: VkStructureType pNext*: pointer shaderEarlyAndLateFragmentTests*: VkBool32 + VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT* = object sType*: VkStructureType pNext*: pointer nonSeamlessCubeMap*: VkBool32 + VkPhysicalDevicePipelineRobustnessFeaturesEXT* = object sType*: VkStructureType pNext*: pointer pipelineRobustness*: VkBool32 + VkPipelineRobustnessCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -9717,6 +12191,7 @@ uniformBuffers*: VkPipelineRobustnessBufferBehaviorEXT vertexInputs*: VkPipelineRobustnessBufferBehaviorEXT images*: VkPipelineRobustnessImageBehaviorEXT + VkPhysicalDevicePipelineRobustnessPropertiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -9724,18 +12199,21 @@ defaultRobustnessUniformBuffers*: VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessVertexInputs*: VkPipelineRobustnessBufferBehaviorEXT defaultRobustnessImages*: VkPipelineRobustnessImageBehaviorEXT + VkImageViewSampleWeightCreateInfoQCOM* = object sType*: VkStructureType pNext*: pointer filterCenter*: VkOffset2D filterSize*: VkExtent2D numPhases*: uint32 + VkPhysicalDeviceImageProcessingFeaturesQCOM* = object sType*: VkStructureType pNext*: pointer textureSampleWeighted*: VkBool32 textureBoxFilter*: VkBool32 textureBlockMatch*: VkBool32 + VkPhysicalDeviceImageProcessingPropertiesQCOM* = object sType*: VkStructureType pNext*: pointer @@ -9743,37 +12221,45 @@ maxWeightFilterDimension*: VkExtent2D maxBlockMatchRegion*: VkExtent2D maxBoxFilterBlockSize*: VkExtent2D + VkPhysicalDeviceTilePropertiesFeaturesQCOM* = object sType*: VkStructureType pNext*: pointer tileProperties*: VkBool32 + VkTilePropertiesQCOM* = object sType*: VkStructureType pNext*: pointer tileSize*: VkExtent3D apronSize*: VkExtent2D origin*: VkOffset2D + VkPhysicalDeviceAmigoProfilingFeaturesSEC* = object sType*: VkStructureType pNext*: pointer amigoProfiling*: VkBool32 + VkAmigoProfilingSubmitInfoSEC* = object sType*: VkStructureType pNext*: pointer firstDrawTimestamp*: uint64 swapBufferTimestamp*: uint64 + VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT* = object sType*: VkStructureType pNext*: pointer attachmentFeedbackLoopLayout*: VkBool32 + VkPhysicalDeviceDepthClampZeroOneFeaturesEXT* = object sType*: VkStructureType pNext*: pointer depthClampZeroOne*: VkBool32 + VkPhysicalDeviceAddressBindingReportFeaturesEXT* = object sType*: VkStructureType pNext*: pointer reportAddressBinding*: VkBool32 + VkDeviceAddressBindingCallbackDataEXT* = object sType*: VkStructureType pNext*: pointer @@ -9781,10 +12267,12 @@ baseAddress*: VkDeviceAddress size*: VkDeviceSize bindingType*: VkDeviceAddressBindingTypeEXT + VkPhysicalDeviceOpticalFlowFeaturesNV* = object sType*: VkStructureType pNext*: pointer opticalFlow*: VkBool32 + VkPhysicalDeviceOpticalFlowPropertiesNV* = object sType*: VkStructureType pNext*: pointer @@ -9799,14 +12287,17 @@ maxWidth*: uint32 maxHeight*: uint32 maxNumRegionsOfInterest*: uint32 + VkOpticalFlowImageFormatInfoNV* = object sType*: VkStructureType pNext*: pointer usage*: VkOpticalFlowUsageFlagsNV + VkOpticalFlowImageFormatPropertiesNV* = object sType*: VkStructureType pNext*: pointer format*: VkFormat + VkOpticalFlowSessionCreateInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -9819,37 +12310,44 @@ hintGridSize*: VkOpticalFlowGridSizeFlagsNV performanceLevel*: VkOpticalFlowPerformanceLevelNV flags*: VkOpticalFlowSessionCreateFlagsNV + VkOpticalFlowSessionCreatePrivateDataInfoNV* = object sType*: VkStructureType pNext*: pointer id*: uint32 size*: uint32 pPrivateData*: pointer + VkOpticalFlowExecuteInfoNV* = object sType*: VkStructureType pNext*: pointer flags*: VkOpticalFlowExecuteFlagsNV regionCount*: uint32 pRegions*: ptr VkRect2D + VkPhysicalDeviceFaultFeaturesEXT* = object sType*: VkStructureType pNext*: pointer deviceFault*: VkBool32 deviceFaultVendorBinary*: VkBool32 + VkDeviceFaultAddressInfoEXT* = object addressType*: VkDeviceFaultAddressTypeEXT reportedAddress*: VkDeviceAddress addressPrecision*: VkDeviceSize + VkDeviceFaultVendorInfoEXT* = object description*: array[VK_MAX_DESCRIPTION_SIZE, char] vendorFaultCode*: uint64 vendorFaultData*: uint64 + VkDeviceFaultCountsEXT* = object sType*: VkStructureType pNext*: pointer addressInfoCount*: uint32 vendorInfoCount*: uint32 vendorBinarySize*: VkDeviceSize + VkDeviceFaultInfoEXT* = object sType*: VkStructureType pNext*: pointer @@ -9857,6 +12355,7 @@ pAddressInfos*: ptr VkDeviceFaultAddressInfoEXT pVendorInfos*: ptr VkDeviceFaultVendorInfoEXT pVendorBinaryData*: pointer + VkDeviceFaultVendorBinaryHeaderVersionOneEXT* = object headerSize*: uint32 headerVersion*: VkDeviceFaultVendorBinaryHeaderVersionEXT @@ -9867,30 +12366,36 @@ applicationNameOffset*: uint32 applicationVersion*: uint32 engineNameOffset*: uint32 + VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT* = object sType*: VkStructureType pNext*: pointer pipelineLibraryGroupHandles*: VkBool32 + VkDecompressMemoryRegionNV* = object srcAddress*: VkDeviceAddress dstAddress*: VkDeviceAddress compressedSize*: VkDeviceSize decompressedSize*: VkDeviceSize decompressionMethod*: VkMemoryDecompressionMethodFlagsNV + VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM* = object sType*: VkStructureType pNext*: pointer shaderCoreMask*: uint64 shaderCoreCount*: uint32 shaderWarpsPerCore*: uint32 + VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM* = object sType*: VkStructureType pNext*: pointer shaderCoreBuiltins*: VkBool32 + VkSurfacePresentModeEXT* = object sType*: VkStructureType pNext*: pointer presentMode*: VkPresentModeKHR + VkSurfacePresentScalingCapabilitiesEXT* = object sType*: VkStructureType pNext*: pointer @@ -9899,520 +12404,2232 @@ supportedPresentGravityY*: VkPresentGravityFlagsEXT minScaledImageExtent*: VkExtent2D maxScaledImageExtent*: VkExtent2D + VkSurfacePresentModeCompatibilityEXT* = object sType*: VkStructureType pNext*: pointer presentModeCount*: uint32 pPresentModes*: ptr VkPresentModeKHR + VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT* = object sType*: VkStructureType pNext*: pointer swapchainMaintenance1*: VkBool32 + VkSwapchainPresentFenceInfoEXT* = object sType*: VkStructureType pNext*: pointer swapchainCount*: uint32 pFences*: ptr VkFence + VkSwapchainPresentModesCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer presentModeCount*: uint32 pPresentModes*: ptr VkPresentModeKHR + VkSwapchainPresentModeInfoEXT* = object sType*: VkStructureType pNext*: pointer swapchainCount*: uint32 pPresentModes*: ptr VkPresentModeKHR + VkSwapchainPresentScalingCreateInfoEXT* = object sType*: VkStructureType pNext*: pointer scalingBehavior*: VkPresentScalingFlagsEXT presentGravityX*: VkPresentGravityFlagsEXT presentGravityY*: VkPresentGravityFlagsEXT + VkReleaseSwapchainImagesInfoEXT* = object sType*: VkStructureType pNext*: pointer swapchain*: VkSwapchainKHR imageIndexCount*: uint32 pImageIndices*: ptr uint32 + VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV* = object sType*: VkStructureType pNext*: pointer rayTracingInvocationReorder*: VkBool32 + VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV* = object sType*: VkStructureType pNext*: pointer rayTracingInvocationReorderReorderingHint*: VkRayTracingInvocationReorderModeNV + VkDirectDriverLoadingInfoLUNARG* = object sType*: VkStructureType pNext*: pointer flags*: VkDirectDriverLoadingFlagsLUNARG pfnGetInstanceProcAddr*: PFN_vkGetInstanceProcAddrLUNARG + VkDirectDriverLoadingListLUNARG* = object sType*: VkStructureType pNext*: pointer mode*: VkDirectDriverLoadingModeLUNARG driverCount*: uint32 pDrivers*: ptr VkDirectDriverLoadingInfoLUNARG + VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM* = object sType*: VkStructureType pNext*: pointer multiviewPerViewViewports*: VkBool32 + VkPhysicalDeviceShaderCorePropertiesARM* = object sType*: VkStructureType pNext*: pointer pixelRate*: uint32 texelRate*: uint32 fmaRate*: uint32 + VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM* = object sType*: VkStructureType pNext*: pointer multiviewPerViewRenderAreas*: VkBool32 + VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM* = object sType*: VkStructureType pNext*: pointer perViewRenderAreaCount*: uint32 pPerViewRenderAreas*: ptr VkRect2D + # feature VK_VERSION_1_0 var - vkCreateInstance*: proc(pCreateInfo: ptr VkInstanceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pInstance: ptr VkInstance): VkResult {.stdcall.} - vkDestroyInstance*: proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkEnumeratePhysicalDevices*: proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32, pPhysicalDevices: ptr VkPhysicalDevice): VkResult {.stdcall.} - vkGetPhysicalDeviceFeatures*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures): void {.stdcall.} - vkGetPhysicalDeviceFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties): void {.stdcall.} - vkGetPhysicalDeviceImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties): VkResult {.stdcall.} - vkGetPhysicalDeviceProperties*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties): void {.stdcall.} - vkGetPhysicalDeviceQueueFamilyProperties*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties): void {.stdcall.} - vkGetPhysicalDeviceMemoryProperties*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties): void {.stdcall.} - vkGetDeviceProcAddr*: proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.} - vkCreateDevice*: proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDevice: ptr VkDevice): VkResult {.stdcall.} - vkDestroyDevice*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkEnumerateInstanceExtensionProperties*: proc(pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.} - vkEnumerateDeviceExtensionProperties*: proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.} - vkEnumerateInstanceLayerProperties*: proc(pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.} - vkEnumerateDeviceLayerProperties*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.} - vkGetDeviceQueue*: proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue): void {.stdcall.} - vkQueueSubmit*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence): VkResult {.stdcall.} + vkCreateInstance*: proc( + pCreateInfo: ptr VkInstanceCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pInstance: ptr VkInstance, + ): VkResult {.stdcall.} + vkDestroyInstance*: + proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkEnumeratePhysicalDevices*: proc( + instance: VkInstance, + pPhysicalDeviceCount: ptr uint32, + pPhysicalDevices: ptr VkPhysicalDevice, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceFeatures*: proc( + physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures + ): void {.stdcall.} + vkGetPhysicalDeviceFormatProperties*: proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + pFormatProperties: ptr VkFormatProperties, + ): void {.stdcall.} + vkGetPhysicalDeviceImageFormatProperties*: proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + thetype: VkImageType, + tiling: VkImageTiling, + usage: VkImageUsageFlags, + flags: VkImageCreateFlags, + pImageFormatProperties: ptr VkImageFormatProperties, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceProperties*: proc( + physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties + ): void {.stdcall.} + vkGetPhysicalDeviceQueueFamilyProperties*: proc( + physicalDevice: VkPhysicalDevice, + pQueueFamilyPropertyCount: ptr uint32, + pQueueFamilyProperties: ptr VkQueueFamilyProperties, + ): void {.stdcall.} + vkGetPhysicalDeviceMemoryProperties*: proc( + physicalDevice: VkPhysicalDevice, + pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties, + ): void {.stdcall.} + vkGetDeviceProcAddr*: + proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.} + vkCreateDevice*: proc( + physicalDevice: VkPhysicalDevice, + pCreateInfo: ptr VkDeviceCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pDevice: ptr VkDevice, + ): VkResult {.stdcall.} + vkDestroyDevice*: + proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkEnumerateInstanceExtensionProperties*: proc( + pLayerName: cstring, + pPropertyCount: ptr uint32, + pProperties: ptr VkExtensionProperties, + ): VkResult {.stdcall.} + vkEnumerateDeviceExtensionProperties*: proc( + physicalDevice: VkPhysicalDevice, + pLayerName: cstring, + pPropertyCount: ptr uint32, + pProperties: ptr VkExtensionProperties, + ): VkResult {.stdcall.} + vkEnumerateInstanceLayerProperties*: proc( + pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties + ): VkResult {.stdcall.} + vkEnumerateDeviceLayerProperties*: proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkLayerProperties, + ): VkResult {.stdcall.} + vkGetDeviceQueue*: proc( + device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue + ): void {.stdcall.} + vkQueueSubmit*: proc( + queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence + ): VkResult {.stdcall.} vkQueueWaitIdle*: proc(queue: VkQueue): VkResult {.stdcall.} vkDeviceWaitIdle*: proc(device: VkDevice): VkResult {.stdcall.} - vkAllocateMemory*: proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo, pAllocator: ptr VkAllocationCallbacks, pMemory: ptr VkDeviceMemory): VkResult {.stdcall.} - vkFreeMemory*: proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkMapMemory*: proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer): VkResult {.stdcall.} + vkAllocateMemory*: proc( + device: VkDevice, + pAllocateInfo: ptr VkMemoryAllocateInfo, + pAllocator: ptr VkAllocationCallbacks, + pMemory: ptr VkDeviceMemory, + ): VkResult {.stdcall.} + vkFreeMemory*: proc( + device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkMapMemory*: proc( + device: VkDevice, + memory: VkDeviceMemory, + offset: VkDeviceSize, + size: VkDeviceSize, + flags: VkMemoryMapFlags, + ppData: ptr pointer, + ): VkResult {.stdcall.} vkUnmapMemory*: proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.} - vkFlushMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.} - vkInvalidateMappedMemoryRanges*: proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.} - vkGetDeviceMemoryCommitment*: proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize): void {.stdcall.} - vkBindBufferMemory*: proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.} - vkBindImageMemory*: proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.} - vkGetBufferMemoryRequirements*: proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.} - vkGetImageMemoryRequirements*: proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.} - vkGetImageSparseMemoryRequirements*: proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements): void {.stdcall.} - vkGetPhysicalDeviceSparseImageFormatProperties*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties): void {.stdcall.} - vkQueueBindSparse*: proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo, fence: VkFence): VkResult {.stdcall.} - vkCreateFence*: proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} - vkDestroyFence*: proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkResetFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence): VkResult {.stdcall.} + vkFlushMappedMemoryRanges*: proc( + device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange + ): VkResult {.stdcall.} + vkInvalidateMappedMemoryRanges*: proc( + device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange + ): VkResult {.stdcall.} + vkGetDeviceMemoryCommitment*: proc( + device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize + ): void {.stdcall.} + vkBindBufferMemory*: proc( + device: VkDevice, + buffer: VkBuffer, + memory: VkDeviceMemory, + memoryOffset: VkDeviceSize, + ): VkResult {.stdcall.} + vkBindImageMemory*: proc( + device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize + ): VkResult {.stdcall.} + vkGetBufferMemoryRequirements*: proc( + device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements + ): void {.stdcall.} + vkGetImageMemoryRequirements*: proc( + device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements + ): void {.stdcall.} + vkGetImageSparseMemoryRequirements*: proc( + device: VkDevice, + image: VkImage, + pSparseMemoryRequirementCount: ptr uint32, + pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements, + ): void {.stdcall.} + vkGetPhysicalDeviceSparseImageFormatProperties*: proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + thetype: VkImageType, + samples: VkSampleCountFlagBits, + usage: VkImageUsageFlags, + tiling: VkImageTiling, + pPropertyCount: ptr uint32, + pProperties: ptr VkSparseImageFormatProperties, + ): void {.stdcall.} + vkQueueBindSparse*: proc( + queue: VkQueue, + bindInfoCount: uint32, + pBindInfo: ptr VkBindSparseInfo, + fence: VkFence, + ): VkResult {.stdcall.} + vkCreateFence*: proc( + device: VkDevice, + pCreateInfo: ptr VkFenceCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pFence: ptr VkFence, + ): VkResult {.stdcall.} + vkDestroyFence*: proc( + device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkResetFences*: proc( + device: VkDevice, fenceCount: uint32, pFences: ptr VkFence + ): VkResult {.stdcall.} vkGetFenceStatus*: proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.} - vkWaitForFences*: proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence, waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.} - vkCreateSemaphore*: proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSemaphore: ptr VkSemaphore): VkResult {.stdcall.} - vkDestroySemaphore*: proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateEvent*: proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo, pAllocator: ptr VkAllocationCallbacks, pEvent: ptr VkEvent): VkResult {.stdcall.} - vkDestroyEvent*: proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkWaitForFences*: proc( + device: VkDevice, + fenceCount: uint32, + pFences: ptr VkFence, + waitAll: VkBool32, + timeout: uint64, + ): VkResult {.stdcall.} + vkCreateSemaphore*: proc( + device: VkDevice, + pCreateInfo: ptr VkSemaphoreCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pSemaphore: ptr VkSemaphore, + ): VkResult {.stdcall.} + vkDestroySemaphore*: proc( + device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreateEvent*: proc( + device: VkDevice, + pCreateInfo: ptr VkEventCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pEvent: ptr VkEvent, + ): VkResult {.stdcall.} + vkDestroyEvent*: proc( + device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} vkGetEventStatus*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} vkSetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} vkResetEvent*: proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.} - vkCreateQueryPool*: proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pQueryPool: ptr VkQueryPool): VkResult {.stdcall.} - vkDestroyQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetQueryPoolResults*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: csize_t, pData: pointer, stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.} - vkCreateBuffer*: proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pBuffer: ptr VkBuffer): VkResult {.stdcall.} - vkDestroyBuffer*: proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateBufferView*: proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkBufferView): VkResult {.stdcall.} - vkDestroyBufferView*: proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateImage*: proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo, pAllocator: ptr VkAllocationCallbacks, pImage: ptr VkImage): VkResult {.stdcall.} - vkDestroyImage*: proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetImageSubresourceLayout*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource, pLayout: ptr VkSubresourceLayout): void {.stdcall.} - vkCreateImageView*: proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkImageView): VkResult {.stdcall.} - vkDestroyImageView*: proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateShaderModule*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pAllocator: ptr VkAllocationCallbacks, pShaderModule: ptr VkShaderModule): VkResult {.stdcall.} - vkDestroyShaderModule*: proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreatePipelineCache*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineCache: ptr VkPipelineCache): VkResult {.stdcall.} - vkDestroyPipelineCache*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetPipelineCacheData*: proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.} - vkMergePipelineCaches*: proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache): VkResult {.stdcall.} - vkCreateGraphicsPipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkCreateComputePipelines*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkDestroyPipeline*: proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreatePipelineLayout*: proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineLayout: ptr VkPipelineLayout): VkResult {.stdcall.} - vkDestroyPipelineLayout*: proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateSampler*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSampler: ptr VkSampler): VkResult {.stdcall.} - vkDestroySampler*: proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateDescriptorSetLayout*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSetLayout: ptr VkDescriptorSetLayout): VkResult {.stdcall.} - vkDestroyDescriptorSetLayout*: proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateDescriptorPool*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorPool: ptr VkDescriptorPool): VkResult {.stdcall.} - vkDestroyDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkResetDescriptorPool*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.} - vkAllocateDescriptorSets*: proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.} - vkFreeDescriptorSets*: proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.} - vkUpdateDescriptorSets*: proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet, descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet): void {.stdcall.} - vkCreateFramebuffer*: proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFramebuffer: ptr VkFramebuffer): VkResult {.stdcall.} - vkDestroyFramebuffer*: proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateRenderPass*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.} - vkDestroyRenderPass*: proc(device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetRenderAreaGranularity*: proc(device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D): void {.stdcall.} - vkCreateCommandPool*: proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pCommandPool: ptr VkCommandPool): VkResult {.stdcall.} - vkDestroyCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkResetCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.} - vkAllocateCommandBuffers*: proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo, pCommandBuffers: ptr VkCommandBuffer): VkResult {.stdcall.} - vkFreeCommandBuffers*: proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.} - vkBeginCommandBuffer*: proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo): VkResult {.stdcall.} + vkCreateQueryPool*: proc( + device: VkDevice, + pCreateInfo: ptr VkQueryPoolCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pQueryPool: ptr VkQueryPool, + ): VkResult {.stdcall.} + vkDestroyQueryPool*: proc( + device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkGetQueryPoolResults*: proc( + device: VkDevice, + queryPool: VkQueryPool, + firstQuery: uint32, + queryCount: uint32, + dataSize: csize_t, + pData: pointer, + stride: VkDeviceSize, + flags: VkQueryResultFlags, + ): VkResult {.stdcall.} + vkCreateBuffer*: proc( + device: VkDevice, + pCreateInfo: ptr VkBufferCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pBuffer: ptr VkBuffer, + ): VkResult {.stdcall.} + vkDestroyBuffer*: proc( + device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreateBufferView*: proc( + device: VkDevice, + pCreateInfo: ptr VkBufferViewCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pView: ptr VkBufferView, + ): VkResult {.stdcall.} + vkDestroyBufferView*: proc( + device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreateImage*: proc( + device: VkDevice, + pCreateInfo: ptr VkImageCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pImage: ptr VkImage, + ): VkResult {.stdcall.} + vkDestroyImage*: proc( + device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkGetImageSubresourceLayout*: proc( + device: VkDevice, + image: VkImage, + pSubresource: ptr VkImageSubresource, + pLayout: ptr VkSubresourceLayout, + ): void {.stdcall.} + vkCreateImageView*: proc( + device: VkDevice, + pCreateInfo: ptr VkImageViewCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pView: ptr VkImageView, + ): VkResult {.stdcall.} + vkDestroyImageView*: proc( + device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreateShaderModule*: proc( + device: VkDevice, + pCreateInfo: ptr VkShaderModuleCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pShaderModule: ptr VkShaderModule, + ): VkResult {.stdcall.} + vkDestroyShaderModule*: proc( + device: VkDevice, + shaderModule: VkShaderModule, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkCreatePipelineCache*: proc( + device: VkDevice, + pCreateInfo: ptr VkPipelineCacheCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelineCache: ptr VkPipelineCache, + ): VkResult {.stdcall.} + vkDestroyPipelineCache*: proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkGetPipelineCacheData*: proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + pDataSize: ptr csize_t, + pData: pointer, + ): VkResult {.stdcall.} + vkMergePipelineCaches*: proc( + device: VkDevice, + dstCache: VkPipelineCache, + srcCacheCount: uint32, + pSrcCaches: ptr VkPipelineCache, + ): VkResult {.stdcall.} + vkCreateGraphicsPipelines*: proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkGraphicsPipelineCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.} + vkCreateComputePipelines*: proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkComputePipelineCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.} + vkDestroyPipeline*: proc( + device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreatePipelineLayout*: proc( + device: VkDevice, + pCreateInfo: ptr VkPipelineLayoutCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelineLayout: ptr VkPipelineLayout, + ): VkResult {.stdcall.} + vkDestroyPipelineLayout*: proc( + device: VkDevice, + pipelineLayout: VkPipelineLayout, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkCreateSampler*: proc( + device: VkDevice, + pCreateInfo: ptr VkSamplerCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pSampler: ptr VkSampler, + ): VkResult {.stdcall.} + vkDestroySampler*: proc( + device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreateDescriptorSetLayout*: proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pSetLayout: ptr VkDescriptorSetLayout, + ): VkResult {.stdcall.} + vkDestroyDescriptorSetLayout*: proc( + device: VkDevice, + descriptorSetLayout: VkDescriptorSetLayout, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkCreateDescriptorPool*: proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorPoolCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pDescriptorPool: ptr VkDescriptorPool, + ): VkResult {.stdcall.} + vkDestroyDescriptorPool*: proc( + device: VkDevice, + descriptorPool: VkDescriptorPool, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkResetDescriptorPool*: proc( + device: VkDevice, + descriptorPool: VkDescriptorPool, + flags: VkDescriptorPoolResetFlags, + ): VkResult {.stdcall.} + vkAllocateDescriptorSets*: proc( + device: VkDevice, + pAllocateInfo: ptr VkDescriptorSetAllocateInfo, + pDescriptorSets: ptr VkDescriptorSet, + ): VkResult {.stdcall.} + vkFreeDescriptorSets*: proc( + device: VkDevice, + descriptorPool: VkDescriptorPool, + descriptorSetCount: uint32, + pDescriptorSets: ptr VkDescriptorSet, + ): VkResult {.stdcall.} + vkUpdateDescriptorSets*: proc( + device: VkDevice, + descriptorWriteCount: uint32, + pDescriptorWrites: ptr VkWriteDescriptorSet, + descriptorCopyCount: uint32, + pDescriptorCopies: ptr VkCopyDescriptorSet, + ): void {.stdcall.} + vkCreateFramebuffer*: proc( + device: VkDevice, + pCreateInfo: ptr VkFramebufferCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pFramebuffer: ptr VkFramebuffer, + ): VkResult {.stdcall.} + vkDestroyFramebuffer*: proc( + device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCreateRenderPass*: proc( + device: VkDevice, + pCreateInfo: ptr VkRenderPassCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pRenderPass: ptr VkRenderPass, + ): VkResult {.stdcall.} + vkDestroyRenderPass*: proc( + device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkGetRenderAreaGranularity*: proc( + device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D + ): void {.stdcall.} + vkCreateCommandPool*: proc( + device: VkDevice, + pCreateInfo: ptr VkCommandPoolCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pCommandPool: ptr VkCommandPool, + ): VkResult {.stdcall.} + vkDestroyCommandPool*: proc( + device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkResetCommandPool*: proc( + device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags + ): VkResult {.stdcall.} + vkAllocateCommandBuffers*: proc( + device: VkDevice, + pAllocateInfo: ptr VkCommandBufferAllocateInfo, + pCommandBuffers: ptr VkCommandBuffer, + ): VkResult {.stdcall.} + vkFreeCommandBuffers*: proc( + device: VkDevice, + commandPool: VkCommandPool, + commandBufferCount: uint32, + pCommandBuffers: ptr VkCommandBuffer, + ): void {.stdcall.} + vkBeginCommandBuffer*: proc( + commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo + ): VkResult {.stdcall.} vkEndCommandBuffer*: proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.} - vkResetCommandBuffer*: proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.} - vkCmdBindPipeline*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.} - vkCmdSetViewport*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.} - vkCmdSetScissor*: proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.} - vkCmdSetLineWidth*: proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.} - vkCmdSetDepthBias*: proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.} - vkCmdSetBlendConstants*: proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.} - vkCmdSetDepthBounds*: proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.} - vkCmdSetStencilCompareMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.} - vkCmdSetStencilWriteMask*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.} - vkCmdSetStencilReference*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.} - vkCmdBindDescriptorSets*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet, dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32): void {.stdcall.} - vkCmdBindIndexBuffer*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.} - vkCmdBindVertexBuffers*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdDraw*: proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.} - vkCmdDrawIndexed*: proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.} - vkCmdDrawIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawIndexedIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDispatch*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkCmdDispatchIndirect*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.} - vkCmdCopyBuffer*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy): void {.stdcall.} - vkCmdCopyImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy): void {.stdcall.} - vkCmdBlitImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit, filter: VkFilter): void {.stdcall.} - vkCmdCopyBufferToImage*: proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.} - vkCmdCopyImageToBuffer*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.} - vkCmdUpdateBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer): void {.stdcall.} - vkCmdFillBuffer*: proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.} - vkCmdClearColorImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.} - vkCmdClearDepthStencilImage*: proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.} - vkCmdClearAttachments*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment, rectCount: uint32, pRects: ptr VkClearRect): void {.stdcall.} - vkCmdResolveImage*: proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve): void {.stdcall.} - vkCmdSetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.} - vkCmdResetEvent*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.} - vkCmdWaitEvents*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.} - vkCmdPipelineBarrier*: proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.} - vkCmdBeginQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.} - vkCmdEndQuery*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.} - vkCmdResetQueryPool*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.} - vkCmdWriteTimestamp*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.} - vkCmdCopyQueryPoolResults*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.} - vkCmdPushConstants*: proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer): void {.stdcall.} - vkCmdBeginRenderPass*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, contents: VkSubpassContents): void {.stdcall.} - vkCmdNextSubpass*: proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.} + vkResetCommandBuffer*: proc( + commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags + ): VkResult {.stdcall.} + vkCmdBindPipeline*: proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + pipeline: VkPipeline, + ): void {.stdcall.} + vkCmdSetViewport*: proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pViewports: ptr VkViewport, + ): void {.stdcall.} + vkCmdSetScissor*: proc( + commandBuffer: VkCommandBuffer, + firstScissor: uint32, + scissorCount: uint32, + pScissors: ptr VkRect2D, + ): void {.stdcall.} + vkCmdSetLineWidth*: + proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.} + vkCmdSetDepthBias*: proc( + commandBuffer: VkCommandBuffer, + depthBiasConstantFactor: float32, + depthBiasClamp: float32, + depthBiasSlopeFactor: float32, + ): void {.stdcall.} + vkCmdSetBlendConstants*: proc( + commandBuffer: VkCommandBuffer, blendConstants: array[4, float32] + ): void {.stdcall.} + vkCmdSetDepthBounds*: proc( + commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32 + ): void {.stdcall.} + vkCmdSetStencilCompareMask*: proc( + commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32 + ): void {.stdcall.} + vkCmdSetStencilWriteMask*: proc( + commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32 + ): void {.stdcall.} + vkCmdSetStencilReference*: proc( + commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32 + ): void {.stdcall.} + vkCmdBindDescriptorSets*: proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + firstSet: uint32, + descriptorSetCount: uint32, + pDescriptorSets: ptr VkDescriptorSet, + dynamicOffsetCount: uint32, + pDynamicOffsets: ptr uint32, + ): void {.stdcall.} + vkCmdBindIndexBuffer*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + indexType: VkIndexType, + ): void {.stdcall.} + vkCmdBindVertexBuffers*: proc( + commandBuffer: VkCommandBuffer, + firstBinding: uint32, + bindingCount: uint32, + pBuffers: ptr VkBuffer, + pOffsets: ptr VkDeviceSize, + ): void {.stdcall.} + vkCmdDraw*: proc( + commandBuffer: VkCommandBuffer, + vertexCount: uint32, + instanceCount: uint32, + firstVertex: uint32, + firstInstance: uint32, + ): void {.stdcall.} + vkCmdDrawIndexed*: proc( + commandBuffer: VkCommandBuffer, + indexCount: uint32, + instanceCount: uint32, + firstIndex: uint32, + vertexOffset: int32, + firstInstance: uint32, + ): void {.stdcall.} + vkCmdDrawIndirect*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdDrawIndexedIndirect*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdDispatch*: proc( + commandBuffer: VkCommandBuffer, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.} + vkCmdDispatchIndirect*: proc( + commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize + ): void {.stdcall.} + vkCmdCopyBuffer*: proc( + commandBuffer: VkCommandBuffer, + srcBuffer: VkBuffer, + dstBuffer: VkBuffer, + regionCount: uint32, + pRegions: ptr VkBufferCopy, + ): void {.stdcall.} + vkCmdCopyImage*: proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkImageCopy, + ): void {.stdcall.} + vkCmdBlitImage*: proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkImageBlit, + filter: VkFilter, + ): void {.stdcall.} + vkCmdCopyBufferToImage*: proc( + commandBuffer: VkCommandBuffer, + srcBuffer: VkBuffer, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkBufferImageCopy, + ): void {.stdcall.} + vkCmdCopyImageToBuffer*: proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstBuffer: VkBuffer, + regionCount: uint32, + pRegions: ptr VkBufferImageCopy, + ): void {.stdcall.} + vkCmdUpdateBuffer*: proc( + commandBuffer: VkCommandBuffer, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + dataSize: VkDeviceSize, + pData: pointer, + ): void {.stdcall.} + vkCmdFillBuffer*: proc( + commandBuffer: VkCommandBuffer, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + size: VkDeviceSize, + data: uint32, + ): void {.stdcall.} + vkCmdClearColorImage*: proc( + commandBuffer: VkCommandBuffer, + image: VkImage, + imageLayout: VkImageLayout, + pColor: ptr VkClearColorValue, + rangeCount: uint32, + pRanges: ptr VkImageSubresourceRange, + ): void {.stdcall.} + vkCmdClearDepthStencilImage*: proc( + commandBuffer: VkCommandBuffer, + image: VkImage, + imageLayout: VkImageLayout, + pDepthStencil: ptr VkClearDepthStencilValue, + rangeCount: uint32, + pRanges: ptr VkImageSubresourceRange, + ): void {.stdcall.} + vkCmdClearAttachments*: proc( + commandBuffer: VkCommandBuffer, + attachmentCount: uint32, + pAttachments: ptr VkClearAttachment, + rectCount: uint32, + pRects: ptr VkClearRect, + ): void {.stdcall.} + vkCmdResolveImage*: proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkImageResolve, + ): void {.stdcall.} + vkCmdSetEvent*: proc( + commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags + ): void {.stdcall.} + vkCmdResetEvent*: proc( + commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags + ): void {.stdcall.} + vkCmdWaitEvents*: proc( + commandBuffer: VkCommandBuffer, + eventCount: uint32, + pEvents: ptr VkEvent, + srcStageMask: VkPipelineStageFlags, + dstStageMask: VkPipelineStageFlags, + memoryBarrierCount: uint32, + pMemoryBarriers: ptr VkMemoryBarrier, + bufferMemoryBarrierCount: uint32, + pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, + imageMemoryBarrierCount: uint32, + pImageMemoryBarriers: ptr VkImageMemoryBarrier, + ): void {.stdcall.} + vkCmdPipelineBarrier*: proc( + commandBuffer: VkCommandBuffer, + srcStageMask: VkPipelineStageFlags, + dstStageMask: VkPipelineStageFlags, + dependencyFlags: VkDependencyFlags, + memoryBarrierCount: uint32, + pMemoryBarriers: ptr VkMemoryBarrier, + bufferMemoryBarrierCount: uint32, + pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, + imageMemoryBarrierCount: uint32, + pImageMemoryBarriers: ptr VkImageMemoryBarrier, + ): void {.stdcall.} + vkCmdBeginQuery*: proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + query: uint32, + flags: VkQueryControlFlags, + ): void {.stdcall.} + vkCmdEndQuery*: proc( + commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32 + ): void {.stdcall.} + vkCmdResetQueryPool*: proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + firstQuery: uint32, + queryCount: uint32, + ): void {.stdcall.} + vkCmdWriteTimestamp*: proc( + commandBuffer: VkCommandBuffer, + pipelineStage: VkPipelineStageFlagBits, + queryPool: VkQueryPool, + query: uint32, + ): void {.stdcall.} + vkCmdCopyQueryPoolResults*: proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + firstQuery: uint32, + queryCount: uint32, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + stride: VkDeviceSize, + flags: VkQueryResultFlags, + ): void {.stdcall.} + vkCmdPushConstants*: proc( + commandBuffer: VkCommandBuffer, + layout: VkPipelineLayout, + stageFlags: VkShaderStageFlags, + offset: uint32, + size: uint32, + pValues: pointer, + ): void {.stdcall.} + vkCmdBeginRenderPass*: proc( + commandBuffer: VkCommandBuffer, + pRenderPassBegin: ptr VkRenderPassBeginInfo, + contents: VkSubpassContents, + ): void {.stdcall.} + vkCmdNextSubpass*: + proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.} vkCmdEndRenderPass*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} - vkCmdExecuteCommands*: proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.} + vkCmdExecuteCommands*: proc( + commandBuffer: VkCommandBuffer, + commandBufferCount: uint32, + pCommandBuffers: ptr VkCommandBuffer, + ): void {.stdcall.} proc loadVK_VERSION_1_0*(instance: VkInstance) = - vkDestroyInstance = cast[proc(instance: VkInstance, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyInstance")) - vkEnumeratePhysicalDevices = cast[proc(instance: VkInstance, pPhysicalDeviceCount: ptr uint32, pPhysicalDevices: ptr VkPhysicalDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices")) - vkGetPhysicalDeviceFeatures = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures")) - vkGetPhysicalDeviceFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties")) - vkGetPhysicalDeviceImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, pImageFormatProperties: ptr VkImageFormatProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties")) - vkGetPhysicalDeviceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties")) - vkGetPhysicalDeviceQueueFamilyProperties = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties")) - vkGetPhysicalDeviceMemoryProperties = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties")) - vkGetDeviceProcAddr = cast[proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr")) - vkCreateDevice = cast[proc(physicalDevice: VkPhysicalDevice, pCreateInfo: ptr VkDeviceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDevice: ptr VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDevice")) - vkDestroyDevice = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDevice")) - vkEnumerateDeviceExtensionProperties = cast[proc(physicalDevice: VkPhysicalDevice, pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties")) - vkEnumerateDeviceLayerProperties = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateDeviceLayerProperties")) - vkGetDeviceQueue = cast[proc(device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue")) - vkQueueSubmit = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit")) - vkQueueWaitIdle = cast[proc(queue: VkQueue): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueWaitIdle")) - vkDeviceWaitIdle = cast[proc(device: VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeviceWaitIdle")) - vkAllocateMemory = cast[proc(device: VkDevice, pAllocateInfo: ptr VkMemoryAllocateInfo, pAllocator: ptr VkAllocationCallbacks, pMemory: ptr VkDeviceMemory): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateMemory")) - vkFreeMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeMemory")) - vkMapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory, offset: VkDeviceSize, size: VkDeviceSize, flags: VkMemoryMapFlags, ppData: ptr pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMapMemory")) - vkUnmapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUnmapMemory")) - vkFlushMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFlushMappedMemoryRanges")) - vkInvalidateMappedMemoryRanges = cast[proc(device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkInvalidateMappedMemoryRanges")) - vkGetDeviceMemoryCommitment = cast[proc(device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryCommitment")) - vkBindBufferMemory = cast[proc(device: VkDevice, buffer: VkBuffer, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory")) - vkBindImageMemory = cast[proc(device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory")) - vkGetBufferMemoryRequirements = cast[proc(device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements")) - vkGetImageMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements")) - vkGetImageSparseMemoryRequirements = cast[proc(device: VkDevice, image: VkImage, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements")) - vkGetPhysicalDeviceSparseImageFormatProperties = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, samples: VkSampleCountFlagBits, usage: VkImageUsageFlags, tiling: VkImageTiling, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties")) - vkQueueBindSparse = cast[proc(queue: VkQueue, bindInfoCount: uint32, pBindInfo: ptr VkBindSparseInfo, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBindSparse")) - vkCreateFence = cast[proc(device: VkDevice, pCreateInfo: ptr VkFenceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFence")) - vkDestroyFence = cast[proc(device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFence")) - vkResetFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetFences")) - vkGetFenceStatus = cast[proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceStatus")) - vkWaitForFences = cast[proc(device: VkDevice, fenceCount: uint32, pFences: ptr VkFence, waitAll: VkBool32, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForFences")) - vkCreateSemaphore = cast[proc(device: VkDevice, pCreateInfo: ptr VkSemaphoreCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSemaphore: ptr VkSemaphore): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSemaphore")) - vkDestroySemaphore = cast[proc(device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySemaphore")) - vkCreateEvent = cast[proc(device: VkDevice, pCreateInfo: ptr VkEventCreateInfo, pAllocator: ptr VkAllocationCallbacks, pEvent: ptr VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateEvent")) - vkDestroyEvent = cast[proc(device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyEvent")) - vkGetEventStatus = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetEventStatus")) - vkSetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetEvent")) - vkResetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetEvent")) - vkCreateQueryPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkQueryPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pQueryPool: ptr VkQueryPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateQueryPool")) - vkDestroyQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyQueryPool")) - vkGetQueryPoolResults = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dataSize: csize_t, pData: pointer, stride: VkDeviceSize, flags: VkQueryResultFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults")) - vkCreateBuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pBuffer: ptr VkBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBuffer")) - vkDestroyBuffer = cast[proc(device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBuffer")) - vkCreateBufferView = cast[proc(device: VkDevice, pCreateInfo: ptr VkBufferViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkBufferView): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBufferView")) - vkDestroyBufferView = cast[proc(device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBufferView")) - vkCreateImage = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageCreateInfo, pAllocator: ptr VkAllocationCallbacks, pImage: ptr VkImage): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImage")) - vkDestroyImage = cast[proc(device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImage")) - vkGetImageSubresourceLayout = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource, pLayout: ptr VkSubresourceLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout")) - vkCreateImageView = cast[proc(device: VkDevice, pCreateInfo: ptr VkImageViewCreateInfo, pAllocator: ptr VkAllocationCallbacks, pView: ptr VkImageView): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImageView")) - vkDestroyImageView = cast[proc(device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImageView")) - vkCreateShaderModule = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pAllocator: ptr VkAllocationCallbacks, pShaderModule: ptr VkShaderModule): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateShaderModule")) - vkDestroyShaderModule = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyShaderModule")) - vkCreatePipelineCache = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineCacheCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineCache: ptr VkPipelineCache): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineCache")) - vkDestroyPipelineCache = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache")) - vkGetPipelineCacheData = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineCacheData")) - vkMergePipelineCaches = cast[proc(device: VkDevice, dstCache: VkPipelineCache, srcCacheCount: uint32, pSrcCaches: ptr VkPipelineCache): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergePipelineCaches")) - vkCreateGraphicsPipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkGraphicsPipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateGraphicsPipelines")) - vkCreateComputePipelines = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkComputePipelineCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateComputePipelines")) - vkDestroyPipeline = cast[proc(device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipeline")) - vkCreatePipelineLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkPipelineLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPipelineLayout: ptr VkPipelineLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout")) - vkDestroyPipelineLayout = cast[proc(device: VkDevice, pipelineLayout: VkPipelineLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout")) - vkCreateSampler = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSampler: ptr VkSampler): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSampler")) - vkDestroySampler = cast[proc(device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySampler")) - vkCreateDescriptorSetLayout = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pAllocator: ptr VkAllocationCallbacks, pSetLayout: ptr VkDescriptorSetLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorSetLayout")) - vkDestroyDescriptorSetLayout = cast[proc(device: VkDevice, descriptorSetLayout: VkDescriptorSetLayout, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorSetLayout")) - vkCreateDescriptorPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorPool: ptr VkDescriptorPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool")) - vkDestroyDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool")) - vkResetDescriptorPool = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, flags: VkDescriptorPoolResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetDescriptorPool")) - vkAllocateDescriptorSets = cast[proc(device: VkDevice, pAllocateInfo: ptr VkDescriptorSetAllocateInfo, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateDescriptorSets")) - vkFreeDescriptorSets = cast[proc(device: VkDevice, descriptorPool: VkDescriptorPool, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeDescriptorSets")) - vkUpdateDescriptorSets = cast[proc(device: VkDevice, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet, descriptorCopyCount: uint32, pDescriptorCopies: ptr VkCopyDescriptorSet): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets")) - vkCreateFramebuffer = cast[proc(device: VkDevice, pCreateInfo: ptr VkFramebufferCreateInfo, pAllocator: ptr VkAllocationCallbacks, pFramebuffer: ptr VkFramebuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFramebuffer")) - vkDestroyFramebuffer = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer")) - vkCreateRenderPass = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass")) - vkDestroyRenderPass = cast[proc(device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyRenderPass")) - vkGetRenderAreaGranularity = cast[proc(device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRenderAreaGranularity")) - vkCreateCommandPool = cast[proc(device: VkDevice, pCreateInfo: ptr VkCommandPoolCreateInfo, pAllocator: ptr VkAllocationCallbacks, pCommandPool: ptr VkCommandPool): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCommandPool")) - vkDestroyCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCommandPool")) - vkResetCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandPool")) - vkAllocateCommandBuffers = cast[proc(device: VkDevice, pAllocateInfo: ptr VkCommandBufferAllocateInfo, pCommandBuffers: ptr VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateCommandBuffers")) - vkFreeCommandBuffers = cast[proc(device: VkDevice, commandPool: VkCommandPool, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers")) - vkBeginCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer")) - vkEndCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEndCommandBuffer")) - vkResetCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandBuffer")) - vkCmdBindPipeline = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipeline")) - vkCmdSetViewport = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewport")) - vkCmdSetScissor = cast[proc(commandBuffer: VkCommandBuffer, firstScissor: uint32, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissor")) - vkCmdSetLineWidth = cast[proc(commandBuffer: VkCommandBuffer, lineWidth: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth")) - vkCmdSetDepthBias = cast[proc(commandBuffer: VkCommandBuffer, depthBiasConstantFactor: float32, depthBiasClamp: float32, depthBiasSlopeFactor: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias")) - vkCmdSetBlendConstants = cast[proc(commandBuffer: VkCommandBuffer, blendConstants: array[4, float32]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetBlendConstants")) - vkCmdSetDepthBounds = cast[proc(commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBounds")) - vkCmdSetStencilCompareMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilCompareMask")) - vkCmdSetStencilWriteMask = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilWriteMask")) - vkCmdSetStencilReference = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilReference")) - vkCmdBindDescriptorSets = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, descriptorSetCount: uint32, pDescriptorSets: ptr VkDescriptorSet, dynamicOffsetCount: uint32, pDynamicOffsets: ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets")) - vkCmdBindIndexBuffer = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, indexType: VkIndexType): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer")) - vkCmdBindVertexBuffers = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers")) - vkCmdDraw = cast[proc(commandBuffer: VkCommandBuffer, vertexCount: uint32, instanceCount: uint32, firstVertex: uint32, firstInstance: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDraw")) - vkCmdDrawIndexed = cast[proc(commandBuffer: VkCommandBuffer, indexCount: uint32, instanceCount: uint32, firstIndex: uint32, vertexOffset: int32, firstInstance: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed")) - vkCmdDrawIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect")) - vkCmdDrawIndexedIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirect")) - vkCmdDispatch = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatch")) - vkCmdDispatchIndirect = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchIndirect")) - vkCmdCopyBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer")) - vkCmdCopyImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage")) - vkCmdBlitImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageBlit, filter: VkFilter): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage")) - vkCmdCopyBufferToImage = cast[proc(commandBuffer: VkCommandBuffer, srcBuffer: VkBuffer, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage")) - vkCmdCopyImageToBuffer = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstBuffer: VkBuffer, regionCount: uint32, pRegions: ptr VkBufferImageCopy): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer")) - vkCmdUpdateBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, dataSize: VkDeviceSize, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdUpdateBuffer")) - vkCmdFillBuffer = cast[proc(commandBuffer: VkCommandBuffer, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, size: VkDeviceSize, data: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdFillBuffer")) - vkCmdClearColorImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pColor: ptr VkClearColorValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearColorImage")) - vkCmdClearDepthStencilImage = cast[proc(commandBuffer: VkCommandBuffer, image: VkImage, imageLayout: VkImageLayout, pDepthStencil: ptr VkClearDepthStencilValue, rangeCount: uint32, pRanges: ptr VkImageSubresourceRange): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearDepthStencilImage")) - vkCmdClearAttachments = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pAttachments: ptr VkClearAttachment, rectCount: uint32, pRects: ptr VkClearRect): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearAttachments")) - vkCmdResolveImage = cast[proc(commandBuffer: VkCommandBuffer, srcImage: VkImage, srcImageLayout: VkImageLayout, dstImage: VkImage, dstImageLayout: VkImageLayout, regionCount: uint32, pRegions: ptr VkImageResolve): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage")) - vkCmdSetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent")) - vkCmdResetEvent = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent")) - vkCmdWaitEvents = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents")) - vkCmdPipelineBarrier = cast[proc(commandBuffer: VkCommandBuffer, srcStageMask: VkPipelineStageFlags, dstStageMask: VkPipelineStageFlags, dependencyFlags: VkDependencyFlags, memoryBarrierCount: uint32, pMemoryBarriers: ptr VkMemoryBarrier, bufferMemoryBarrierCount: uint32, pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, imageMemoryBarrierCount: uint32, pImageMemoryBarriers: ptr VkImageMemoryBarrier): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier")) - vkCmdBeginQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQuery")) - vkCmdEndQuery = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQuery")) - vkCmdResetQueryPool = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool")) - vkCmdWriteTimestamp = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp")) - vkCmdCopyQueryPoolResults = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, stride: VkDeviceSize, flags: VkQueryResultFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyQueryPoolResults")) - vkCmdPushConstants = cast[proc(commandBuffer: VkCommandBuffer, layout: VkPipelineLayout, stageFlags: VkShaderStageFlags, offset: uint32, size: uint32, pValues: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushConstants")) - vkCmdBeginRenderPass = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, contents: VkSubpassContents): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass")) - vkCmdNextSubpass = cast[proc(commandBuffer: VkCommandBuffer, contents: VkSubpassContents): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass")) - vkCmdEndRenderPass = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass")) - vkCmdExecuteCommands = cast[proc(commandBuffer: VkCommandBuffer, commandBufferCount: uint32, pCommandBuffers: ptr VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands")) + vkDestroyInstance = cast[proc( + instance: VkInstance, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyInstance")) + vkEnumeratePhysicalDevices = cast[proc( + instance: VkInstance, + pPhysicalDeviceCount: ptr uint32, + pPhysicalDevices: ptr VkPhysicalDevice, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices")) + vkGetPhysicalDeviceFeatures = cast[proc( + physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures")) + vkGetPhysicalDeviceFormatProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + pFormatProperties: ptr VkFormatProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceFormatProperties" + )) + vkGetPhysicalDeviceImageFormatProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + thetype: VkImageType, + tiling: VkImageTiling, + usage: VkImageUsageFlags, + flags: VkImageCreateFlags, + pImageFormatProperties: ptr VkImageFormatProperties, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceImageFormatProperties" + )) + vkGetPhysicalDeviceProperties = cast[proc( + physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties")) + vkGetPhysicalDeviceQueueFamilyProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pQueueFamilyPropertyCount: ptr uint32, + pQueueFamilyProperties: ptr VkQueueFamilyProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceQueueFamilyProperties" + )) + vkGetPhysicalDeviceMemoryProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceMemoryProperties" + )) + vkGetDeviceProcAddr = cast[proc(device: VkDevice, pName: cstring): PFN_vkVoidFunction {. + stdcall + .}](vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr")) + vkCreateDevice = cast[proc( + physicalDevice: VkPhysicalDevice, + pCreateInfo: ptr VkDeviceCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pDevice: ptr VkDevice, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDevice")) + vkDestroyDevice = cast[proc( + device: VkDevice, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDevice")) + vkEnumerateDeviceExtensionProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pLayerName: cstring, + pPropertyCount: ptr uint32, + pProperties: ptr VkExtensionProperties, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumerateDeviceExtensionProperties" + )) + vkEnumerateDeviceLayerProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkLayerProperties, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumerateDeviceLayerProperties" + )) + vkGetDeviceQueue = cast[proc( + device: VkDevice, queueFamilyIndex: uint32, queueIndex: uint32, pQueue: ptr VkQueue + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue")) + vkQueueSubmit = cast[proc( + queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo, fence: VkFence + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit")) + vkQueueWaitIdle = cast[proc(queue: VkQueue): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkQueueWaitIdle" + )) + vkDeviceWaitIdle = cast[proc(device: VkDevice): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDeviceWaitIdle" + )) + vkAllocateMemory = cast[proc( + device: VkDevice, + pAllocateInfo: ptr VkMemoryAllocateInfo, + pAllocator: ptr VkAllocationCallbacks, + pMemory: ptr VkDeviceMemory, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateMemory")) + vkFreeMemory = cast[proc( + device: VkDevice, memory: VkDeviceMemory, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeMemory")) + vkMapMemory = cast[proc( + device: VkDevice, + memory: VkDeviceMemory, + offset: VkDeviceSize, + size: VkDeviceSize, + flags: VkMemoryMapFlags, + ppData: ptr pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMapMemory")) + vkUnmapMemory = cast[proc(device: VkDevice, memory: VkDeviceMemory): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkUnmapMemory" + )) + vkFlushMappedMemoryRanges = cast[proc( + device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFlushMappedMemoryRanges")) + vkInvalidateMappedMemoryRanges = cast[proc( + device: VkDevice, memoryRangeCount: uint32, pMemoryRanges: ptr VkMappedMemoryRange + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkInvalidateMappedMemoryRanges" + )) + vkGetDeviceMemoryCommitment = cast[proc( + device: VkDevice, memory: VkDeviceMemory, pCommittedMemoryInBytes: ptr VkDeviceSize + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryCommitment")) + vkBindBufferMemory = cast[proc( + device: VkDevice, + buffer: VkBuffer, + memory: VkDeviceMemory, + memoryOffset: VkDeviceSize, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory")) + vkBindImageMemory = cast[proc( + device: VkDevice, image: VkImage, memory: VkDeviceMemory, memoryOffset: VkDeviceSize + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory")) + vkGetBufferMemoryRequirements = cast[proc( + device: VkDevice, buffer: VkBuffer, pMemoryRequirements: ptr VkMemoryRequirements + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements")) + vkGetImageMemoryRequirements = cast[proc( + device: VkDevice, image: VkImage, pMemoryRequirements: ptr VkMemoryRequirements + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements")) + vkGetImageSparseMemoryRequirements = cast[proc( + device: VkDevice, + image: VkImage, + pSparseMemoryRequirementCount: ptr uint32, + pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetImageSparseMemoryRequirements" + )) + vkGetPhysicalDeviceSparseImageFormatProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + thetype: VkImageType, + samples: VkSampleCountFlagBits, + usage: VkImageUsageFlags, + tiling: VkImageTiling, + pPropertyCount: ptr uint32, + pProperties: ptr VkSparseImageFormatProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSparseImageFormatProperties" + )) + vkQueueBindSparse = cast[proc( + queue: VkQueue, + bindInfoCount: uint32, + pBindInfo: ptr VkBindSparseInfo, + fence: VkFence, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBindSparse")) + vkCreateFence = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkFenceCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pFence: ptr VkFence, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFence")) + vkDestroyFence = cast[proc( + device: VkDevice, fence: VkFence, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFence")) + vkResetFences = cast[proc( + device: VkDevice, fenceCount: uint32, pFences: ptr VkFence + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetFences")) + vkGetFenceStatus = cast[proc(device: VkDevice, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetFenceStatus" + )) + vkWaitForFences = cast[proc( + device: VkDevice, + fenceCount: uint32, + pFences: ptr VkFence, + waitAll: VkBool32, + timeout: uint64, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForFences")) + vkCreateSemaphore = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkSemaphoreCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pSemaphore: ptr VkSemaphore, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSemaphore")) + vkDestroySemaphore = cast[proc( + device: VkDevice, semaphore: VkSemaphore, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySemaphore")) + vkCreateEvent = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkEventCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pEvent: ptr VkEvent, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateEvent")) + vkDestroyEvent = cast[proc( + device: VkDevice, event: VkEvent, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyEvent")) + vkGetEventStatus = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetEventStatus" + )) + vkSetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkSetEvent" + )) + vkResetEvent = cast[proc(device: VkDevice, event: VkEvent): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkResetEvent" + )) + vkCreateQueryPool = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkQueryPoolCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pQueryPool: ptr VkQueryPool, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateQueryPool")) + vkDestroyQueryPool = cast[proc( + device: VkDevice, queryPool: VkQueryPool, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyQueryPool")) + vkGetQueryPoolResults = cast[proc( + device: VkDevice, + queryPool: VkQueryPool, + firstQuery: uint32, + queryCount: uint32, + dataSize: csize_t, + pData: pointer, + stride: VkDeviceSize, + flags: VkQueryResultFlags, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueryPoolResults")) + vkCreateBuffer = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkBufferCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pBuffer: ptr VkBuffer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBuffer")) + vkDestroyBuffer = cast[proc( + device: VkDevice, buffer: VkBuffer, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBuffer")) + vkCreateBufferView = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkBufferViewCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pView: ptr VkBufferView, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateBufferView")) + vkDestroyBufferView = cast[proc( + device: VkDevice, bufferView: VkBufferView, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyBufferView")) + vkCreateImage = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkImageCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pImage: ptr VkImage, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImage")) + vkDestroyImage = cast[proc( + device: VkDevice, image: VkImage, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImage")) + vkGetImageSubresourceLayout = cast[proc( + device: VkDevice, + image: VkImage, + pSubresource: ptr VkImageSubresource, + pLayout: ptr VkSubresourceLayout, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout")) + vkCreateImageView = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkImageViewCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pView: ptr VkImageView, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateImageView")) + vkDestroyImageView = cast[proc( + device: VkDevice, imageView: VkImageView, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyImageView")) + vkCreateShaderModule = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkShaderModuleCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pShaderModule: ptr VkShaderModule, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateShaderModule")) + vkDestroyShaderModule = cast[proc( + device: VkDevice, + shaderModule: VkShaderModule, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyShaderModule")) + vkCreatePipelineCache = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkPipelineCacheCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelineCache: ptr VkPipelineCache, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineCache")) + vkDestroyPipelineCache = cast[proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineCache")) + vkGetPipelineCacheData = cast[proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + pDataSize: ptr csize_t, + pData: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineCacheData")) + vkMergePipelineCaches = cast[proc( + device: VkDevice, + dstCache: VkPipelineCache, + srcCacheCount: uint32, + pSrcCaches: ptr VkPipelineCache, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergePipelineCaches")) + vkCreateGraphicsPipelines = cast[proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkGraphicsPipelineCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateGraphicsPipelines")) + vkCreateComputePipelines = cast[proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkComputePipelineCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateComputePipelines")) + vkDestroyPipeline = cast[proc( + device: VkDevice, pipeline: VkPipeline, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipeline")) + vkCreatePipelineLayout = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkPipelineLayoutCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPipelineLayout: ptr VkPipelineLayout, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePipelineLayout")) + vkDestroyPipelineLayout = cast[proc( + device: VkDevice, + pipelineLayout: VkPipelineLayout, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPipelineLayout")) + vkCreateSampler = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkSamplerCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pSampler: ptr VkSampler, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSampler")) + vkDestroySampler = cast[proc( + device: VkDevice, sampler: VkSampler, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySampler")) + vkCreateDescriptorSetLayout = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pSetLayout: ptr VkDescriptorSetLayout, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateDescriptorSetLayout" + )) + vkDestroyDescriptorSetLayout = cast[proc( + device: VkDevice, + descriptorSetLayout: VkDescriptorSetLayout, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorSetLayout")) + vkCreateDescriptorPool = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorPoolCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pDescriptorPool: ptr VkDescriptorPool, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorPool")) + vkDestroyDescriptorPool = cast[proc( + device: VkDevice, + descriptorPool: VkDescriptorPool, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorPool")) + vkResetDescriptorPool = cast[proc( + device: VkDevice, + descriptorPool: VkDescriptorPool, + flags: VkDescriptorPoolResetFlags, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetDescriptorPool")) + vkAllocateDescriptorSets = cast[proc( + device: VkDevice, + pAllocateInfo: ptr VkDescriptorSetAllocateInfo, + pDescriptorSets: ptr VkDescriptorSet, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateDescriptorSets")) + vkFreeDescriptorSets = cast[proc( + device: VkDevice, + descriptorPool: VkDescriptorPool, + descriptorSetCount: uint32, + pDescriptorSets: ptr VkDescriptorSet, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeDescriptorSets")) + vkUpdateDescriptorSets = cast[proc( + device: VkDevice, + descriptorWriteCount: uint32, + pDescriptorWrites: ptr VkWriteDescriptorSet, + descriptorCopyCount: uint32, + pDescriptorCopies: ptr VkCopyDescriptorSet, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSets")) + vkCreateFramebuffer = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkFramebufferCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pFramebuffer: ptr VkFramebuffer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateFramebuffer")) + vkDestroyFramebuffer = cast[proc( + device: VkDevice, framebuffer: VkFramebuffer, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyFramebuffer")) + vkCreateRenderPass = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkRenderPassCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pRenderPass: ptr VkRenderPass, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass")) + vkDestroyRenderPass = cast[proc( + device: VkDevice, renderPass: VkRenderPass, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyRenderPass")) + vkGetRenderAreaGranularity = cast[proc( + device: VkDevice, renderPass: VkRenderPass, pGranularity: ptr VkExtent2D + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRenderAreaGranularity")) + vkCreateCommandPool = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkCommandPoolCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pCommandPool: ptr VkCommandPool, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCommandPool")) + vkDestroyCommandPool = cast[proc( + device: VkDevice, commandPool: VkCommandPool, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCommandPool")) + vkResetCommandPool = cast[proc( + device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolResetFlags + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandPool")) + vkAllocateCommandBuffers = cast[proc( + device: VkDevice, + pAllocateInfo: ptr VkCommandBufferAllocateInfo, + pCommandBuffers: ptr VkCommandBuffer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAllocateCommandBuffers")) + vkFreeCommandBuffers = cast[proc( + device: VkDevice, + commandPool: VkCommandPool, + commandBufferCount: uint32, + pCommandBuffers: ptr VkCommandBuffer, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkFreeCommandBuffers")) + vkBeginCommandBuffer = cast[proc( + commandBuffer: VkCommandBuffer, pBeginInfo: ptr VkCommandBufferBeginInfo + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBeginCommandBuffer")) + vkEndCommandBuffer = cast[proc(commandBuffer: VkCommandBuffer): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEndCommandBuffer" + )) + vkResetCommandBuffer = cast[proc( + commandBuffer: VkCommandBuffer, flags: VkCommandBufferResetFlags + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetCommandBuffer")) + vkCmdBindPipeline = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + pipeline: VkPipeline, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipeline")) + vkCmdSetViewport = cast[proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pViewports: ptr VkViewport, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewport")) + vkCmdSetScissor = cast[proc( + commandBuffer: VkCommandBuffer, + firstScissor: uint32, + scissorCount: uint32, + pScissors: ptr VkRect2D, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissor")) + vkCmdSetLineWidth = cast[proc( + commandBuffer: VkCommandBuffer, lineWidth: float32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineWidth")) + vkCmdSetDepthBias = cast[proc( + commandBuffer: VkCommandBuffer, + depthBiasConstantFactor: float32, + depthBiasClamp: float32, + depthBiasSlopeFactor: float32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBias")) + vkCmdSetBlendConstants = cast[proc( + commandBuffer: VkCommandBuffer, blendConstants: array[4, float32] + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetBlendConstants")) + vkCmdSetDepthBounds = cast[proc( + commandBuffer: VkCommandBuffer, minDepthBounds: float32, maxDepthBounds: float32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBounds")) + vkCmdSetStencilCompareMask = cast[proc( + commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, compareMask: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilCompareMask")) + vkCmdSetStencilWriteMask = cast[proc( + commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, writeMask: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilWriteMask")) + vkCmdSetStencilReference = cast[proc( + commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, reference: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilReference")) + vkCmdBindDescriptorSets = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + firstSet: uint32, + descriptorSetCount: uint32, + pDescriptorSets: ptr VkDescriptorSet, + dynamicOffsetCount: uint32, + pDynamicOffsets: ptr uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorSets")) + vkCmdBindIndexBuffer = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + indexType: VkIndexType, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindIndexBuffer")) + vkCmdBindVertexBuffers = cast[proc( + commandBuffer: VkCommandBuffer, + firstBinding: uint32, + bindingCount: uint32, + pBuffers: ptr VkBuffer, + pOffsets: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers")) + vkCmdDraw = cast[proc( + commandBuffer: VkCommandBuffer, + vertexCount: uint32, + instanceCount: uint32, + firstVertex: uint32, + firstInstance: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDraw")) + vkCmdDrawIndexed = cast[proc( + commandBuffer: VkCommandBuffer, + indexCount: uint32, + instanceCount: uint32, + firstIndex: uint32, + vertexOffset: int32, + firstInstance: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexed")) + vkCmdDrawIndirect = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirect")) + vkCmdDrawIndexedIndirect = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirect")) + vkCmdDispatch = cast[proc( + commandBuffer: VkCommandBuffer, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatch")) + vkCmdDispatchIndirect = cast[proc( + commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchIndirect")) + vkCmdCopyBuffer = cast[proc( + commandBuffer: VkCommandBuffer, + srcBuffer: VkBuffer, + dstBuffer: VkBuffer, + regionCount: uint32, + pRegions: ptr VkBufferCopy, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer")) + vkCmdCopyImage = cast[proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkImageCopy, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage")) + vkCmdBlitImage = cast[proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkImageBlit, + filter: VkFilter, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage")) + vkCmdCopyBufferToImage = cast[proc( + commandBuffer: VkCommandBuffer, + srcBuffer: VkBuffer, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkBufferImageCopy, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage")) + vkCmdCopyImageToBuffer = cast[proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstBuffer: VkBuffer, + regionCount: uint32, + pRegions: ptr VkBufferImageCopy, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer")) + vkCmdUpdateBuffer = cast[proc( + commandBuffer: VkCommandBuffer, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + dataSize: VkDeviceSize, + pData: pointer, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdUpdateBuffer")) + vkCmdFillBuffer = cast[proc( + commandBuffer: VkCommandBuffer, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + size: VkDeviceSize, + data: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdFillBuffer")) + vkCmdClearColorImage = cast[proc( + commandBuffer: VkCommandBuffer, + image: VkImage, + imageLayout: VkImageLayout, + pColor: ptr VkClearColorValue, + rangeCount: uint32, + pRanges: ptr VkImageSubresourceRange, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearColorImage")) + vkCmdClearDepthStencilImage = cast[proc( + commandBuffer: VkCommandBuffer, + image: VkImage, + imageLayout: VkImageLayout, + pDepthStencil: ptr VkClearDepthStencilValue, + rangeCount: uint32, + pRanges: ptr VkImageSubresourceRange, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearDepthStencilImage")) + vkCmdClearAttachments = cast[proc( + commandBuffer: VkCommandBuffer, + attachmentCount: uint32, + pAttachments: ptr VkClearAttachment, + rectCount: uint32, + pRects: ptr VkClearRect, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdClearAttachments")) + vkCmdResolveImage = cast[proc( + commandBuffer: VkCommandBuffer, + srcImage: VkImage, + srcImageLayout: VkImageLayout, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + regionCount: uint32, + pRegions: ptr VkImageResolve, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage")) + vkCmdSetEvent = cast[proc( + commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent")) + vkCmdResetEvent = cast[proc( + commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent")) + vkCmdWaitEvents = cast[proc( + commandBuffer: VkCommandBuffer, + eventCount: uint32, + pEvents: ptr VkEvent, + srcStageMask: VkPipelineStageFlags, + dstStageMask: VkPipelineStageFlags, + memoryBarrierCount: uint32, + pMemoryBarriers: ptr VkMemoryBarrier, + bufferMemoryBarrierCount: uint32, + pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, + imageMemoryBarrierCount: uint32, + pImageMemoryBarriers: ptr VkImageMemoryBarrier, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents")) + vkCmdPipelineBarrier = cast[proc( + commandBuffer: VkCommandBuffer, + srcStageMask: VkPipelineStageFlags, + dstStageMask: VkPipelineStageFlags, + dependencyFlags: VkDependencyFlags, + memoryBarrierCount: uint32, + pMemoryBarriers: ptr VkMemoryBarrier, + bufferMemoryBarrierCount: uint32, + pBufferMemoryBarriers: ptr VkBufferMemoryBarrier, + imageMemoryBarrierCount: uint32, + pImageMemoryBarriers: ptr VkImageMemoryBarrier, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier")) + vkCmdBeginQuery = cast[proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + query: uint32, + flags: VkQueryControlFlags, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQuery")) + vkCmdEndQuery = cast[proc( + commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQuery")) + vkCmdResetQueryPool = cast[proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + firstQuery: uint32, + queryCount: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetQueryPool")) + vkCmdWriteTimestamp = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineStage: VkPipelineStageFlagBits, + queryPool: VkQueryPool, + query: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp")) + vkCmdCopyQueryPoolResults = cast[proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + firstQuery: uint32, + queryCount: uint32, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + stride: VkDeviceSize, + flags: VkQueryResultFlags, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyQueryPoolResults")) + vkCmdPushConstants = cast[proc( + commandBuffer: VkCommandBuffer, + layout: VkPipelineLayout, + stageFlags: VkShaderStageFlags, + offset: uint32, + size: uint32, + pValues: pointer, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushConstants")) + vkCmdBeginRenderPass = cast[proc( + commandBuffer: VkCommandBuffer, + pRenderPassBegin: ptr VkRenderPassBeginInfo, + contents: VkSubpassContents, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass")) + vkCmdNextSubpass = cast[proc( + commandBuffer: VkCommandBuffer, contents: VkSubpassContents + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass")) + vkCmdEndRenderPass = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdEndRenderPass" + )) + vkCmdExecuteCommands = cast[proc( + commandBuffer: VkCommandBuffer, + commandBufferCount: uint32, + pCommandBuffers: ptr VkCommandBuffer, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteCommands")) # feature VK_VERSION_1_1 var vkEnumerateInstanceVersion*: proc(pApiVersion: ptr uint32): VkResult {.stdcall.} - vkBindBufferMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo): VkResult {.stdcall.} - vkBindImageMemory2*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo): VkResult {.stdcall.} - vkGetDeviceGroupPeerMemoryFeatures*: proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags): void {.stdcall.} - vkCmdSetDeviceMask*: proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.} - vkCmdDispatchBase*: proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkEnumeratePhysicalDeviceGroups*: proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32, pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties): VkResult {.stdcall.} - vkGetImageMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetBufferMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetImageSparseMemoryRequirements2*: proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.} - vkGetPhysicalDeviceFeatures2*: proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2): void {.stdcall.} - vkGetPhysicalDeviceProperties2*: proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2): void {.stdcall.} - vkGetPhysicalDeviceFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2): void {.stdcall.} - vkGetPhysicalDeviceImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: ptr VkImageFormatProperties2): VkResult {.stdcall.} - vkGetPhysicalDeviceQueueFamilyProperties2*: proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties2): void {.stdcall.} - vkGetPhysicalDeviceMemoryProperties2*: proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2): void {.stdcall.} - vkGetPhysicalDeviceSparseImageFormatProperties2*: proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties2): void {.stdcall.} - vkTrimCommandPool*: proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.} - vkGetDeviceQueue2*: proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue): void {.stdcall.} - vkCreateSamplerYcbcrConversion*: proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, pAllocator: ptr VkAllocationCallbacks, pYcbcrConversion: ptr VkSamplerYcbcrConversion): VkResult {.stdcall.} - vkDestroySamplerYcbcrConversion*: proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCreateDescriptorUpdateTemplate*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate): VkResult {.stdcall.} - vkDestroyDescriptorUpdateTemplate*: proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkUpdateDescriptorSetWithTemplate*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer): void {.stdcall.} - vkGetPhysicalDeviceExternalBufferProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ptr VkExternalBufferProperties): void {.stdcall.} - vkGetPhysicalDeviceExternalFenceProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ptr VkExternalFenceProperties): void {.stdcall.} - vkGetPhysicalDeviceExternalSemaphoreProperties*: proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties): void {.stdcall.} - vkGetDescriptorSetLayoutSupport*: proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pSupport: ptr VkDescriptorSetLayoutSupport): void {.stdcall.} + vkBindBufferMemory2*: proc( + device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo + ): VkResult {.stdcall.} + vkBindImageMemory2*: proc( + device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo + ): VkResult {.stdcall.} + vkGetDeviceGroupPeerMemoryFeatures*: proc( + device: VkDevice, + heapIndex: uint32, + localDeviceIndex: uint32, + remoteDeviceIndex: uint32, + pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags, + ): void {.stdcall.} + vkCmdSetDeviceMask*: + proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.} + vkCmdDispatchBase*: proc( + commandBuffer: VkCommandBuffer, + baseGroupX: uint32, + baseGroupY: uint32, + baseGroupZ: uint32, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.} + vkEnumeratePhysicalDeviceGroups*: proc( + instance: VkInstance, + pPhysicalDeviceGroupCount: ptr uint32, + pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties, + ): VkResult {.stdcall.} + vkGetImageMemoryRequirements2*: proc( + device: VkDevice, + pInfo: ptr VkImageMemoryRequirementsInfo2, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.} + vkGetBufferMemoryRequirements2*: proc( + device: VkDevice, + pInfo: ptr VkBufferMemoryRequirementsInfo2, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.} + vkGetImageSparseMemoryRequirements2*: proc( + device: VkDevice, + pInfo: ptr VkImageSparseMemoryRequirementsInfo2, + pSparseMemoryRequirementCount: ptr uint32, + pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2, + ): void {.stdcall.} + vkGetPhysicalDeviceFeatures2*: proc( + physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2 + ): void {.stdcall.} + vkGetPhysicalDeviceProperties2*: proc( + physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2 + ): void {.stdcall.} + vkGetPhysicalDeviceFormatProperties2*: proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + pFormatProperties: ptr VkFormatProperties2, + ): void {.stdcall.} + vkGetPhysicalDeviceImageFormatProperties2*: proc( + physicalDevice: VkPhysicalDevice, + pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, + pImageFormatProperties: ptr VkImageFormatProperties2, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceQueueFamilyProperties2*: proc( + physicalDevice: VkPhysicalDevice, + pQueueFamilyPropertyCount: ptr uint32, + pQueueFamilyProperties: ptr VkQueueFamilyProperties2, + ): void {.stdcall.} + vkGetPhysicalDeviceMemoryProperties2*: proc( + physicalDevice: VkPhysicalDevice, + pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2, + ): void {.stdcall.} + vkGetPhysicalDeviceSparseImageFormatProperties2*: proc( + physicalDevice: VkPhysicalDevice, + pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, + pPropertyCount: ptr uint32, + pProperties: ptr VkSparseImageFormatProperties2, + ): void {.stdcall.} + vkTrimCommandPool*: proc( + device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags + ): void {.stdcall.} + vkGetDeviceQueue2*: proc( + device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue + ): void {.stdcall.} + vkCreateSamplerYcbcrConversion*: proc( + device: VkDevice, + pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pYcbcrConversion: ptr VkSamplerYcbcrConversion, + ): VkResult {.stdcall.} + vkDestroySamplerYcbcrConversion*: proc( + device: VkDevice, + ycbcrConversion: VkSamplerYcbcrConversion, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkCreateDescriptorUpdateTemplate*: proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate, + ): VkResult {.stdcall.} + vkDestroyDescriptorUpdateTemplate*: proc( + device: VkDevice, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkUpdateDescriptorSetWithTemplate*: proc( + device: VkDevice, + descriptorSet: VkDescriptorSet, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + pData: pointer, + ): void {.stdcall.} + vkGetPhysicalDeviceExternalBufferProperties*: proc( + physicalDevice: VkPhysicalDevice, + pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, + pExternalBufferProperties: ptr VkExternalBufferProperties, + ): void {.stdcall.} + vkGetPhysicalDeviceExternalFenceProperties*: proc( + physicalDevice: VkPhysicalDevice, + pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, + pExternalFenceProperties: ptr VkExternalFenceProperties, + ): void {.stdcall.} + vkGetPhysicalDeviceExternalSemaphoreProperties*: proc( + physicalDevice: VkPhysicalDevice, + pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, + pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties, + ): void {.stdcall.} + vkGetDescriptorSetLayoutSupport*: proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, + pSupport: ptr VkDescriptorSetLayoutSupport, + ): void {.stdcall.} proc loadVK_VERSION_1_1*(instance: VkInstance) = - vkBindBufferMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory2")) - vkBindImageMemory2 = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory2")) - vkGetDeviceGroupPeerMemoryFeatures = cast[proc(device: VkDevice, heapIndex: uint32, localDeviceIndex: uint32, remoteDeviceIndex: uint32, pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPeerMemoryFeatures")) - vkCmdSetDeviceMask = cast[proc(commandBuffer: VkCommandBuffer, deviceMask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMask")) - vkCmdDispatchBase = cast[proc(commandBuffer: VkCommandBuffer, baseGroupX: uint32, baseGroupY: uint32, baseGroupZ: uint32, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchBase")) - vkEnumeratePhysicalDeviceGroups = cast[proc(instance: VkInstance, pPhysicalDeviceGroupCount: ptr uint32, pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroups")) - vkGetImageMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements2")) - vkGetBufferMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkBufferMemoryRequirementsInfo2, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements2")) - vkGetImageSparseMemoryRequirements2 = cast[proc(device: VkDevice, pInfo: ptr VkImageSparseMemoryRequirementsInfo2, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSparseMemoryRequirements2")) - vkGetPhysicalDeviceFeatures2 = cast[proc(physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2")) - vkGetPhysicalDeviceProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2")) - vkGetPhysicalDeviceFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, pFormatProperties: ptr VkFormatProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2")) - vkGetPhysicalDeviceImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, pImageFormatProperties: ptr VkImageFormatProperties2): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2")) - vkGetPhysicalDeviceQueueFamilyProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pQueueFamilyPropertyCount: ptr uint32, pQueueFamilyProperties: ptr VkQueueFamilyProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2")) - vkGetPhysicalDeviceMemoryProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2")) - vkGetPhysicalDeviceSparseImageFormatProperties2 = cast[proc(physicalDevice: VkPhysicalDevice, pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, pPropertyCount: ptr uint32, pProperties: ptr VkSparseImageFormatProperties2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2")) - vkTrimCommandPool = cast[proc(device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkTrimCommandPool")) - vkGetDeviceQueue2 = cast[proc(device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue2")) - vkCreateSamplerYcbcrConversion = cast[proc(device: VkDevice, pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, pAllocator: ptr VkAllocationCallbacks, pYcbcrConversion: ptr VkSamplerYcbcrConversion): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSamplerYcbcrConversion")) - vkDestroySamplerYcbcrConversion = cast[proc(device: VkDevice, ycbcrConversion: VkSamplerYcbcrConversion, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySamplerYcbcrConversion")) - vkCreateDescriptorUpdateTemplate = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, pAllocator: ptr VkAllocationCallbacks, pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDescriptorUpdateTemplate")) - vkDestroyDescriptorUpdateTemplate = cast[proc(device: VkDevice, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDescriptorUpdateTemplate")) - vkUpdateDescriptorSetWithTemplate = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUpdateDescriptorSetWithTemplate")) - vkGetPhysicalDeviceExternalBufferProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, pExternalBufferProperties: ptr VkExternalBufferProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferProperties")) - vkGetPhysicalDeviceExternalFenceProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, pExternalFenceProperties: ptr VkExternalFenceProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFenceProperties")) - vkGetPhysicalDeviceExternalSemaphoreProperties = cast[proc(physicalDevice: VkPhysicalDevice, pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphoreProperties")) - vkGetDescriptorSetLayoutSupport = cast[proc(device: VkDevice, pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, pSupport: ptr VkDescriptorSetLayoutSupport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSupport")) + vkBindBufferMemory2 = cast[proc( + device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindBufferMemoryInfo + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindBufferMemory2")) + vkBindImageMemory2 = cast[proc( + device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindImageMemoryInfo + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindImageMemory2")) + vkGetDeviceGroupPeerMemoryFeatures = cast[proc( + device: VkDevice, + heapIndex: uint32, + localDeviceIndex: uint32, + remoteDeviceIndex: uint32, + pPeerMemoryFeatures: ptr VkPeerMemoryFeatureFlags, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceGroupPeerMemoryFeatures" + )) + vkCmdSetDeviceMask = cast[proc( + commandBuffer: VkCommandBuffer, deviceMask: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDeviceMask")) + vkCmdDispatchBase = cast[proc( + commandBuffer: VkCommandBuffer, + baseGroupX: uint32, + baseGroupY: uint32, + baseGroupZ: uint32, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDispatchBase")) + vkEnumeratePhysicalDeviceGroups = cast[proc( + instance: VkInstance, + pPhysicalDeviceGroupCount: ptr uint32, + pPhysicalDeviceGroupProperties: ptr VkPhysicalDeviceGroupProperties, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumeratePhysicalDeviceGroups" + )) + vkGetImageMemoryRequirements2 = cast[proc( + device: VkDevice, + pInfo: ptr VkImageMemoryRequirementsInfo2, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageMemoryRequirements2")) + vkGetBufferMemoryRequirements2 = cast[proc( + device: VkDevice, + pInfo: ptr VkBufferMemoryRequirementsInfo2, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferMemoryRequirements2")) + vkGetImageSparseMemoryRequirements2 = cast[proc( + device: VkDevice, + pInfo: ptr VkImageSparseMemoryRequirementsInfo2, + pSparseMemoryRequirementCount: ptr uint32, + pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetImageSparseMemoryRequirements2" + )) + vkGetPhysicalDeviceFeatures2 = cast[proc( + physicalDevice: VkPhysicalDevice, pFeatures: ptr VkPhysicalDeviceFeatures2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2")) + vkGetPhysicalDeviceProperties2 = cast[proc( + physicalDevice: VkPhysicalDevice, pProperties: ptr VkPhysicalDeviceProperties2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2")) + vkGetPhysicalDeviceFormatProperties2 = cast[proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + pFormatProperties: ptr VkFormatProperties2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceFormatProperties2" + )) + vkGetPhysicalDeviceImageFormatProperties2 = cast[proc( + physicalDevice: VkPhysicalDevice, + pImageFormatInfo: ptr VkPhysicalDeviceImageFormatInfo2, + pImageFormatProperties: ptr VkImageFormatProperties2, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceImageFormatProperties2" + )) + vkGetPhysicalDeviceQueueFamilyProperties2 = cast[proc( + physicalDevice: VkPhysicalDevice, + pQueueFamilyPropertyCount: ptr uint32, + pQueueFamilyProperties: ptr VkQueueFamilyProperties2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceQueueFamilyProperties2" + )) + vkGetPhysicalDeviceMemoryProperties2 = cast[proc( + physicalDevice: VkPhysicalDevice, + pMemoryProperties: ptr VkPhysicalDeviceMemoryProperties2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceMemoryProperties2" + )) + vkGetPhysicalDeviceSparseImageFormatProperties2 = cast[proc( + physicalDevice: VkPhysicalDevice, + pFormatInfo: ptr VkPhysicalDeviceSparseImageFormatInfo2, + pPropertyCount: ptr uint32, + pProperties: ptr VkSparseImageFormatProperties2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" + )) + vkTrimCommandPool = cast[proc( + device: VkDevice, commandPool: VkCommandPool, flags: VkCommandPoolTrimFlags + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkTrimCommandPool")) + vkGetDeviceQueue2 = cast[proc( + device: VkDevice, pQueueInfo: ptr VkDeviceQueueInfo2, pQueue: ptr VkQueue + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceQueue2")) + vkCreateSamplerYcbcrConversion = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkSamplerYcbcrConversionCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pYcbcrConversion: ptr VkSamplerYcbcrConversion, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateSamplerYcbcrConversion" + )) + vkDestroySamplerYcbcrConversion = cast[proc( + device: VkDevice, + ycbcrConversion: VkSamplerYcbcrConversion, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroySamplerYcbcrConversion" + )) + vkCreateDescriptorUpdateTemplate = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorUpdateTemplateCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pDescriptorUpdateTemplate: ptr VkDescriptorUpdateTemplate, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateDescriptorUpdateTemplate" + )) + vkDestroyDescriptorUpdateTemplate = cast[proc( + device: VkDevice, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroyDescriptorUpdateTemplate" + )) + vkUpdateDescriptorSetWithTemplate = cast[proc( + device: VkDevice, + descriptorSet: VkDescriptorSet, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + pData: pointer, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkUpdateDescriptorSetWithTemplate" + )) + vkGetPhysicalDeviceExternalBufferProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pExternalBufferInfo: ptr VkPhysicalDeviceExternalBufferInfo, + pExternalBufferProperties: ptr VkExternalBufferProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceExternalBufferProperties" + )) + vkGetPhysicalDeviceExternalFenceProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pExternalFenceInfo: ptr VkPhysicalDeviceExternalFenceInfo, + pExternalFenceProperties: ptr VkExternalFenceProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceExternalFenceProperties" + )) + vkGetPhysicalDeviceExternalSemaphoreProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pExternalSemaphoreInfo: ptr VkPhysicalDeviceExternalSemaphoreInfo, + pExternalSemaphoreProperties: ptr VkExternalSemaphoreProperties, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" + )) + vkGetDescriptorSetLayoutSupport = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkDescriptorSetLayoutCreateInfo, + pSupport: ptr VkDescriptorSetLayoutSupport, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDescriptorSetLayoutSupport" + )) # feature VK_VERSION_1_2 var - vkCmdDrawIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawIndexedIndirectCount*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} - vkCreateRenderPass2*: proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.} - vkCmdBeginRenderPass2*: proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, pSubpassBeginInfo: ptr VkSubpassBeginInfo): void {.stdcall.} - vkCmdNextSubpass2*: proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.} - vkCmdEndRenderPass2*: proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.} - vkResetQueryPool*: proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.} - vkGetSemaphoreCounterValue*: proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64): VkResult {.stdcall.} - vkWaitSemaphores*: proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64): VkResult {.stdcall.} - vkSignalSemaphore*: proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.} - vkGetBufferDeviceAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.} - vkGetBufferOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.} - vkGetDeviceMemoryOpaqueCaptureAddress*: proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo): uint64 {.stdcall.} + vkCmdDrawIndirectCount*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdDrawIndexedIndirectCount*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCreateRenderPass2*: proc( + device: VkDevice, + pCreateInfo: ptr VkRenderPassCreateInfo2, + pAllocator: ptr VkAllocationCallbacks, + pRenderPass: ptr VkRenderPass, + ): VkResult {.stdcall.} + vkCmdBeginRenderPass2*: proc( + commandBuffer: VkCommandBuffer, + pRenderPassBegin: ptr VkRenderPassBeginInfo, + pSubpassBeginInfo: ptr VkSubpassBeginInfo, + ): void {.stdcall.} + vkCmdNextSubpass2*: proc( + commandBuffer: VkCommandBuffer, + pSubpassBeginInfo: ptr VkSubpassBeginInfo, + pSubpassEndInfo: ptr VkSubpassEndInfo, + ): void {.stdcall.} + vkCmdEndRenderPass2*: proc( + commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo + ): void {.stdcall.} + vkResetQueryPool*: proc( + device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32 + ): void {.stdcall.} + vkGetSemaphoreCounterValue*: proc( + device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64 + ): VkResult {.stdcall.} + vkWaitSemaphores*: proc( + device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64 + ): VkResult {.stdcall.} + vkSignalSemaphore*: + proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.} + vkGetBufferDeviceAddress*: proc( + device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo + ): VkDeviceAddress {.stdcall.} + vkGetBufferOpaqueCaptureAddress*: + proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.} + vkGetDeviceMemoryOpaqueCaptureAddress*: proc( + device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo + ): uint64 {.stdcall.} proc loadVK_VERSION_1_2*(instance: VkInstance) = - vkCmdDrawIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCount")) - vkCmdDrawIndexedIndirectCount = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCount")) - vkCreateRenderPass2 = cast[proc(device: VkDevice, pCreateInfo: ptr VkRenderPassCreateInfo2, pAllocator: ptr VkAllocationCallbacks, pRenderPass: ptr VkRenderPass): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass2")) - vkCmdBeginRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pRenderPassBegin: ptr VkRenderPassBeginInfo, pSubpassBeginInfo: ptr VkSubpassBeginInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2")) - vkCmdNextSubpass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassBeginInfo: ptr VkSubpassBeginInfo, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2")) - vkCmdEndRenderPass2 = cast[proc(commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2")) - vkResetQueryPool = cast[proc(device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetQueryPool")) - vkGetSemaphoreCounterValue = cast[proc(device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreCounterValue")) - vkWaitSemaphores = cast[proc(device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitSemaphores")) - vkSignalSemaphore = cast[proc(device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSignalSemaphore")) - vkGetBufferDeviceAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferDeviceAddress")) - vkGetBufferOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): uint64 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureAddress")) - vkGetDeviceMemoryOpaqueCaptureAddress = cast[proc(device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo): uint64 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMemoryOpaqueCaptureAddress")) + vkCmdDrawIndirectCount = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectCount")) + vkCmdDrawIndexedIndirectCount = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndexedIndirectCount")) + vkCreateRenderPass2 = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkRenderPassCreateInfo2, + pAllocator: ptr VkAllocationCallbacks, + pRenderPass: ptr VkRenderPass, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRenderPass2")) + vkCmdBeginRenderPass2 = cast[proc( + commandBuffer: VkCommandBuffer, + pRenderPassBegin: ptr VkRenderPassBeginInfo, + pSubpassBeginInfo: ptr VkSubpassBeginInfo, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRenderPass2")) + vkCmdNextSubpass2 = cast[proc( + commandBuffer: VkCommandBuffer, + pSubpassBeginInfo: ptr VkSubpassBeginInfo, + pSubpassEndInfo: ptr VkSubpassEndInfo, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdNextSubpass2")) + vkCmdEndRenderPass2 = cast[proc( + commandBuffer: VkCommandBuffer, pSubpassEndInfo: ptr VkSubpassEndInfo + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRenderPass2")) + vkResetQueryPool = cast[proc( + device: VkDevice, queryPool: VkQueryPool, firstQuery: uint32, queryCount: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkResetQueryPool")) + vkGetSemaphoreCounterValue = cast[proc( + device: VkDevice, semaphore: VkSemaphore, pValue: ptr uint64 + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreCounterValue")) + vkWaitSemaphores = cast[proc( + device: VkDevice, pWaitInfo: ptr VkSemaphoreWaitInfo, timeout: uint64 + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitSemaphores")) + vkSignalSemaphore = cast[proc( + device: VkDevice, pSignalInfo: ptr VkSemaphoreSignalInfo + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSignalSemaphore")) + vkGetBufferDeviceAddress = cast[proc( + device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo + ): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetBufferDeviceAddress" + )) + vkGetBufferOpaqueCaptureAddress = cast[proc( + device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo + ): uint64 {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetBufferOpaqueCaptureAddress" + )) + vkGetDeviceMemoryOpaqueCaptureAddress = cast[proc( + device: VkDevice, pInfo: ptr VkDeviceMemoryOpaqueCaptureAddressInfo + ): uint64 {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceMemoryOpaqueCaptureAddress" + )) # feature VK_VERSION_1_3 var - vkGetPhysicalDeviceToolProperties*: proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32, pToolProperties: ptr VkPhysicalDeviceToolProperties): VkResult {.stdcall.} - vkCreatePrivateDataSlot*: proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPrivateDataSlot: ptr VkPrivateDataSlot): VkResult {.stdcall.} - vkDestroyPrivateDataSlot*: proc(device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkSetPrivateData*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, data: uint64): VkResult {.stdcall.} - vkGetPrivateData*: proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, pData: ptr uint64): void {.stdcall.} - vkCmdSetEvent2*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.} - vkCmdResetEvent2*: proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2): void {.stdcall.} - vkCmdWaitEvents2*: proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, pDependencyInfos: ptr VkDependencyInfo): void {.stdcall.} - vkCmdPipelineBarrier2*: proc(commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.} - vkCmdWriteTimestamp2*: proc(commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: uint32): void {.stdcall.} - vkQueueSubmit2*: proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence): VkResult {.stdcall.} - vkCmdCopyBuffer2*: proc(commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2): void {.stdcall.} - vkCmdCopyImage2*: proc(commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2): void {.stdcall.} - vkCmdCopyBufferToImage2*: proc(commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2): void {.stdcall.} - vkCmdCopyImageToBuffer2*: proc(commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2): void {.stdcall.} - vkCmdBlitImage2*: proc(commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2): void {.stdcall.} - vkCmdResolveImage2*: proc(commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2): void {.stdcall.} - vkCmdBeginRendering*: proc(commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo): void {.stdcall.} + vkGetPhysicalDeviceToolProperties*: proc( + physicalDevice: VkPhysicalDevice, + pToolCount: ptr uint32, + pToolProperties: ptr VkPhysicalDeviceToolProperties, + ): VkResult {.stdcall.} + vkCreatePrivateDataSlot*: proc( + device: VkDevice, + pCreateInfo: ptr VkPrivateDataSlotCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPrivateDataSlot: ptr VkPrivateDataSlot, + ): VkResult {.stdcall.} + vkDestroyPrivateDataSlot*: proc( + device: VkDevice, + privateDataSlot: VkPrivateDataSlot, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkSetPrivateData*: proc( + device: VkDevice, + objectType: VkObjectType, + objectHandle: uint64, + privateDataSlot: VkPrivateDataSlot, + data: uint64, + ): VkResult {.stdcall.} + vkGetPrivateData*: proc( + device: VkDevice, + objectType: VkObjectType, + objectHandle: uint64, + privateDataSlot: VkPrivateDataSlot, + pData: ptr uint64, + ): void {.stdcall.} + vkCmdSetEvent2*: proc( + commandBuffer: VkCommandBuffer, + event: VkEvent, + pDependencyInfo: ptr VkDependencyInfo, + ): void {.stdcall.} + vkCmdResetEvent2*: proc( + commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2 + ): void {.stdcall.} + vkCmdWaitEvents2*: proc( + commandBuffer: VkCommandBuffer, + eventCount: uint32, + pEvents: ptr VkEvent, + pDependencyInfos: ptr VkDependencyInfo, + ): void {.stdcall.} + vkCmdPipelineBarrier2*: proc( + commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo + ): void {.stdcall.} + vkCmdWriteTimestamp2*: proc( + commandBuffer: VkCommandBuffer, + stage: VkPipelineStageFlags2, + queryPool: VkQueryPool, + query: uint32, + ): void {.stdcall.} + vkQueueSubmit2*: proc( + queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence + ): VkResult {.stdcall.} + vkCmdCopyBuffer2*: proc( + commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2 + ): void {.stdcall.} + vkCmdCopyImage2*: proc( + commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2 + ): void {.stdcall.} + vkCmdCopyBufferToImage2*: proc( + commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2 + ): void {.stdcall.} + vkCmdCopyImageToBuffer2*: proc( + commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2 + ): void {.stdcall.} + vkCmdBlitImage2*: proc( + commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2 + ): void {.stdcall.} + vkCmdResolveImage2*: proc( + commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2 + ): void {.stdcall.} + vkCmdBeginRendering*: proc( + commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo + ): void {.stdcall.} vkCmdEndRendering*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} - vkCmdSetCullMode*: proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.} - vkCmdSetFrontFace*: proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.} - vkCmdSetPrimitiveTopology*: proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.} - vkCmdSetViewportWithCount*: proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.} - vkCmdSetScissorWithCount*: proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.} - vkCmdBindVertexBuffers2*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize, pStrides: ptr VkDeviceSize): void {.stdcall.} - vkCmdSetDepthTestEnable*: proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthWriteEnable*: proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthCompareOp*: proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.} - vkCmdSetDepthBoundsTestEnable*: proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.} - vkCmdSetStencilTestEnable*: proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.} - vkCmdSetStencilOp*: proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.} - vkCmdSetRasterizerDiscardEnable*: proc(commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthBiasEnable*: proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.} - vkCmdSetPrimitiveRestartEnable*: proc(commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32): void {.stdcall.} - vkGetDeviceBufferMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceBufferMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetDeviceImageMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkGetDeviceImageSparseMemoryRequirements*: proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.} + vkCmdSetCullMode*: + proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.} + vkCmdSetFrontFace*: + proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.} + vkCmdSetPrimitiveTopology*: proc( + commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology + ): void {.stdcall.} + vkCmdSetViewportWithCount*: proc( + commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport + ): void {.stdcall.} + vkCmdSetScissorWithCount*: proc( + commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D + ): void {.stdcall.} + vkCmdBindVertexBuffers2*: proc( + commandBuffer: VkCommandBuffer, + firstBinding: uint32, + bindingCount: uint32, + pBuffers: ptr VkBuffer, + pOffsets: ptr VkDeviceSize, + pSizes: ptr VkDeviceSize, + pStrides: ptr VkDeviceSize, + ): void {.stdcall.} + vkCmdSetDepthTestEnable*: + proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthWriteEnable*: + proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthCompareOp*: + proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.} + vkCmdSetDepthBoundsTestEnable*: proc( + commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetStencilTestEnable*: + proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.} + vkCmdSetStencilOp*: proc( + commandBuffer: VkCommandBuffer, + faceMask: VkStencilFaceFlags, + failOp: VkStencilOp, + passOp: VkStencilOp, + depthFailOp: VkStencilOp, + compareOp: VkCompareOp, + ): void {.stdcall.} + vkCmdSetRasterizerDiscardEnable*: proc( + commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetDepthBiasEnable*: + proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.} + vkCmdSetPrimitiveRestartEnable*: proc( + commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32 + ): void {.stdcall.} + vkGetDeviceBufferMemoryRequirements*: proc( + device: VkDevice, + pInfo: ptr VkDeviceBufferMemoryRequirements, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.} + vkGetDeviceImageMemoryRequirements*: proc( + device: VkDevice, + pInfo: ptr VkDeviceImageMemoryRequirements, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.} + vkGetDeviceImageSparseMemoryRequirements*: proc( + device: VkDevice, + pInfo: ptr VkDeviceImageMemoryRequirements, + pSparseMemoryRequirementCount: ptr uint32, + pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2, + ): void {.stdcall.} proc loadVK_VERSION_1_3*(instance: VkInstance) = - vkGetPhysicalDeviceToolProperties = cast[proc(physicalDevice: VkPhysicalDevice, pToolCount: ptr uint32, pToolProperties: ptr VkPhysicalDeviceToolProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceToolProperties")) - vkCreatePrivateDataSlot = cast[proc(device: VkDevice, pCreateInfo: ptr VkPrivateDataSlotCreateInfo, pAllocator: ptr VkAllocationCallbacks, pPrivateDataSlot: ptr VkPrivateDataSlot): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePrivateDataSlot")) - vkDestroyPrivateDataSlot = cast[proc(device: VkDevice, privateDataSlot: VkPrivateDataSlot, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPrivateDataSlot")) - vkSetPrivateData = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, data: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetPrivateData")) - vkGetPrivateData = cast[proc(device: VkDevice, objectType: VkObjectType, objectHandle: uint64, privateDataSlot: VkPrivateDataSlot, pData: ptr uint64): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPrivateData")) - vkCmdSetEvent2 = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent2")) - vkCmdResetEvent2 = cast[proc(commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent2")) - vkCmdWaitEvents2 = cast[proc(commandBuffer: VkCommandBuffer, eventCount: uint32, pEvents: ptr VkEvent, pDependencyInfos: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents2")) - vkCmdPipelineBarrier2 = cast[proc(commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier2")) - vkCmdWriteTimestamp2 = cast[proc(commandBuffer: VkCommandBuffer, stage: VkPipelineStageFlags2, queryPool: VkQueryPool, query: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp2")) - vkQueueSubmit2 = cast[proc(queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit2")) - vkCmdCopyBuffer2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2")) - vkCmdCopyImage2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage2")) - vkCmdCopyBufferToImage2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage2")) - vkCmdCopyImageToBuffer2 = cast[proc(commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer2")) - vkCmdBlitImage2 = cast[proc(commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage2")) - vkCmdResolveImage2 = cast[proc(commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage2")) - vkCmdBeginRendering = cast[proc(commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRendering")) - vkCmdEndRendering = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndRendering")) - vkCmdSetCullMode = cast[proc(commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCullMode")) - vkCmdSetFrontFace = cast[proc(commandBuffer: VkCommandBuffer, frontFace: VkFrontFace): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFrontFace")) - vkCmdSetPrimitiveTopology = cast[proc(commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveTopology")) - vkCmdSetViewportWithCount = cast[proc(commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWithCount")) - vkCmdSetScissorWithCount = cast[proc(commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissorWithCount")) - vkCmdBindVertexBuffers2 = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize, pStrides: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers2")) - vkCmdSetDepthTestEnable = cast[proc(commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthTestEnable")) - vkCmdSetDepthWriteEnable = cast[proc(commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthWriteEnable")) - vkCmdSetDepthCompareOp = cast[proc(commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthCompareOp")) - vkCmdSetDepthBoundsTestEnable = cast[proc(commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBoundsTestEnable")) - vkCmdSetStencilTestEnable = cast[proc(commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilTestEnable")) - vkCmdSetStencilOp = cast[proc(commandBuffer: VkCommandBuffer, faceMask: VkStencilFaceFlags, failOp: VkStencilOp, passOp: VkStencilOp, depthFailOp: VkStencilOp, compareOp: VkCompareOp): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilOp")) - vkCmdSetRasterizerDiscardEnable = cast[proc(commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizerDiscardEnable")) - vkCmdSetDepthBiasEnable = cast[proc(commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBiasEnable")) - vkCmdSetPrimitiveRestartEnable = cast[proc(commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveRestartEnable")) - vkGetDeviceBufferMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceBufferMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceBufferMemoryRequirements")) - vkGetDeviceImageMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceImageMemoryRequirements")) - vkGetDeviceImageSparseMemoryRequirements = cast[proc(device: VkDevice, pInfo: ptr VkDeviceImageMemoryRequirements, pSparseMemoryRequirementCount: ptr uint32, pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceImageSparseMemoryRequirements")) - + vkGetPhysicalDeviceToolProperties = cast[proc( + physicalDevice: VkPhysicalDevice, + pToolCount: ptr uint32, + pToolProperties: ptr VkPhysicalDeviceToolProperties, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceToolProperties" + )) + vkCreatePrivateDataSlot = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkPrivateDataSlotCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pPrivateDataSlot: ptr VkPrivateDataSlot, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreatePrivateDataSlot")) + vkDestroyPrivateDataSlot = cast[proc( + device: VkDevice, + privateDataSlot: VkPrivateDataSlot, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyPrivateDataSlot")) + vkSetPrivateData = cast[proc( + device: VkDevice, + objectType: VkObjectType, + objectHandle: uint64, + privateDataSlot: VkPrivateDataSlot, + data: uint64, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetPrivateData")) + vkGetPrivateData = cast[proc( + device: VkDevice, + objectType: VkObjectType, + objectHandle: uint64, + privateDataSlot: VkPrivateDataSlot, + pData: ptr uint64, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPrivateData")) + vkCmdSetEvent2 = cast[proc( + commandBuffer: VkCommandBuffer, + event: VkEvent, + pDependencyInfo: ptr VkDependencyInfo, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetEvent2")) + vkCmdResetEvent2 = cast[proc( + commandBuffer: VkCommandBuffer, event: VkEvent, stageMask: VkPipelineStageFlags2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResetEvent2")) + vkCmdWaitEvents2 = cast[proc( + commandBuffer: VkCommandBuffer, + eventCount: uint32, + pEvents: ptr VkEvent, + pDependencyInfos: ptr VkDependencyInfo, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWaitEvents2")) + vkCmdPipelineBarrier2 = cast[proc( + commandBuffer: VkCommandBuffer, pDependencyInfo: ptr VkDependencyInfo + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPipelineBarrier2")) + vkCmdWriteTimestamp2 = cast[proc( + commandBuffer: VkCommandBuffer, + stage: VkPipelineStageFlags2, + queryPool: VkQueryPool, + query: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteTimestamp2")) + vkQueueSubmit2 = cast[proc( + queue: VkQueue, submitCount: uint32, pSubmits: ptr VkSubmitInfo2, fence: VkFence + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSubmit2")) + vkCmdCopyBuffer2 = cast[proc( + commandBuffer: VkCommandBuffer, pCopyBufferInfo: ptr VkCopyBufferInfo2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBuffer2")) + vkCmdCopyImage2 = cast[proc( + commandBuffer: VkCommandBuffer, pCopyImageInfo: ptr VkCopyImageInfo2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImage2")) + vkCmdCopyBufferToImage2 = cast[proc( + commandBuffer: VkCommandBuffer, pCopyBufferToImageInfo: ptr VkCopyBufferToImageInfo2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyBufferToImage2")) + vkCmdCopyImageToBuffer2 = cast[proc( + commandBuffer: VkCommandBuffer, pCopyImageToBufferInfo: ptr VkCopyImageToBufferInfo2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyImageToBuffer2")) + vkCmdBlitImage2 = cast[proc( + commandBuffer: VkCommandBuffer, pBlitImageInfo: ptr VkBlitImageInfo2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBlitImage2")) + vkCmdResolveImage2 = cast[proc( + commandBuffer: VkCommandBuffer, pResolveImageInfo: ptr VkResolveImageInfo2 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdResolveImage2")) + vkCmdBeginRendering = cast[proc( + commandBuffer: VkCommandBuffer, pRenderingInfo: ptr VkRenderingInfo + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginRendering")) + vkCmdEndRendering = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdEndRendering" + )) + vkCmdSetCullMode = cast[proc( + commandBuffer: VkCommandBuffer, cullMode: VkCullModeFlags + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCullMode")) + vkCmdSetFrontFace = cast[proc( + commandBuffer: VkCommandBuffer, frontFace: VkFrontFace + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFrontFace")) + vkCmdSetPrimitiveTopology = cast[proc( + commandBuffer: VkCommandBuffer, primitiveTopology: VkPrimitiveTopology + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveTopology")) + vkCmdSetViewportWithCount = cast[proc( + commandBuffer: VkCommandBuffer, viewportCount: uint32, pViewports: ptr VkViewport + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWithCount")) + vkCmdSetScissorWithCount = cast[proc( + commandBuffer: VkCommandBuffer, scissorCount: uint32, pScissors: ptr VkRect2D + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetScissorWithCount")) + vkCmdBindVertexBuffers2 = cast[proc( + commandBuffer: VkCommandBuffer, + firstBinding: uint32, + bindingCount: uint32, + pBuffers: ptr VkBuffer, + pOffsets: ptr VkDeviceSize, + pSizes: ptr VkDeviceSize, + pStrides: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindVertexBuffers2")) + vkCmdSetDepthTestEnable = cast[proc( + commandBuffer: VkCommandBuffer, depthTestEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthTestEnable")) + vkCmdSetDepthWriteEnable = cast[proc( + commandBuffer: VkCommandBuffer, depthWriteEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthWriteEnable")) + vkCmdSetDepthCompareOp = cast[proc( + commandBuffer: VkCommandBuffer, depthCompareOp: VkCompareOp + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthCompareOp")) + vkCmdSetDepthBoundsTestEnable = cast[proc( + commandBuffer: VkCommandBuffer, depthBoundsTestEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBoundsTestEnable")) + vkCmdSetStencilTestEnable = cast[proc( + commandBuffer: VkCommandBuffer, stencilTestEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilTestEnable")) + vkCmdSetStencilOp = cast[proc( + commandBuffer: VkCommandBuffer, + faceMask: VkStencilFaceFlags, + failOp: VkStencilOp, + passOp: VkStencilOp, + depthFailOp: VkStencilOp, + compareOp: VkCompareOp, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetStencilOp")) + vkCmdSetRasterizerDiscardEnable = cast[proc( + commandBuffer: VkCommandBuffer, rasterizerDiscardEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetRasterizerDiscardEnable" + )) + vkCmdSetDepthBiasEnable = cast[proc( + commandBuffer: VkCommandBuffer, depthBiasEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthBiasEnable")) + vkCmdSetPrimitiveRestartEnable = cast[proc( + commandBuffer: VkCommandBuffer, primitiveRestartEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPrimitiveRestartEnable")) + vkGetDeviceBufferMemoryRequirements = cast[proc( + device: VkDevice, + pInfo: ptr VkDeviceBufferMemoryRequirements, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceBufferMemoryRequirements" + )) + vkGetDeviceImageMemoryRequirements = cast[proc( + device: VkDevice, + pInfo: ptr VkDeviceImageMemoryRequirements, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceImageMemoryRequirements" + )) + vkGetDeviceImageSparseMemoryRequirements = cast[proc( + device: VkDevice, + pInfo: ptr VkDeviceImageMemoryRequirements, + pSparseMemoryRequirementCount: ptr uint32, + pSparseMemoryRequirements: ptr VkSparseImageMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceImageSparseMemoryRequirements" + )) proc loadVulkan*(instance: VkInstance) = loadVK_VERSION_1_0(instance) @@ -10442,10 +14659,23 @@ loadVK_VERSION_1_3(instance) # extension VK_AMD_shader_info -var - vkGetShaderInfoAMD*: proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr csize_t, pInfo: pointer): VkResult {.stdcall.} +var vkGetShaderInfoAMD*: proc( + device: VkDevice, + pipeline: VkPipeline, + shaderStage: VkShaderStageFlagBits, + infoType: VkShaderInfoTypeAMD, + pInfoSize: ptr csize_t, + pInfo: pointer, +): VkResult {.stdcall.} proc loadVK_AMD_shader_info*(instance: VkInstance) = - vkGetShaderInfoAMD = cast[proc(device: VkDevice, pipeline: VkPipeline, shaderStage: VkShaderStageFlagBits, infoType: VkShaderInfoTypeAMD, pInfoSize: ptr csize_t, pInfo: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderInfoAMD")) + vkGetShaderInfoAMD = cast[proc( + device: VkDevice, + pipeline: VkPipeline, + shaderStage: VkShaderStageFlagBits, + infoType: VkShaderInfoTypeAMD, + pInfoSize: ptr csize_t, + pInfo: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderInfoAMD")) proc loadVK_AMD_gpu_shader_int16*(instance: VkInstance) = discard @@ -10455,68 +14685,256 @@ # extension VK_EXT_sample_locations var - vkCmdSetSampleLocationsEXT*: proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT): void {.stdcall.} - vkGetPhysicalDeviceMultisamplePropertiesEXT*: proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT): void {.stdcall.} + vkCmdSetSampleLocationsEXT*: proc( + commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT + ): void {.stdcall.} + vkGetPhysicalDeviceMultisamplePropertiesEXT*: proc( + physicalDevice: VkPhysicalDevice, + samples: VkSampleCountFlagBits, + pMultisampleProperties: ptr VkMultisamplePropertiesEXT, + ): void {.stdcall.} proc loadVK_EXT_sample_locations*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetSampleLocationsEXT = cast[proc(commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEXT")) - vkGetPhysicalDeviceMultisamplePropertiesEXT = cast[proc(physicalDevice: VkPhysicalDevice, samples: VkSampleCountFlagBits, pMultisampleProperties: ptr VkMultisamplePropertiesEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT")) + vkCmdSetSampleLocationsEXT = cast[proc( + commandBuffer: VkCommandBuffer, pSampleLocationsInfo: ptr VkSampleLocationsInfoEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEXT")) + vkGetPhysicalDeviceMultisamplePropertiesEXT = cast[proc( + physicalDevice: VkPhysicalDevice, + samples: VkSampleCountFlagBits, + pMultisampleProperties: ptr VkMultisamplePropertiesEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" + )) # extension VK_EXT_descriptor_buffer var - vkGetDescriptorSetLayoutSizeEXT*: proc(device: VkDevice, layout: VkDescriptorSetLayout, pLayoutSizeInBytes: ptr VkDeviceSize): void {.stdcall.} - vkGetDescriptorSetLayoutBindingOffsetEXT*: proc(device: VkDevice, layout: VkDescriptorSetLayout, binding: uint32, pOffset: ptr VkDeviceSize): void {.stdcall.} - vkGetDescriptorEXT*: proc(device: VkDevice, pDescriptorInfo: ptr VkDescriptorGetInfoEXT, dataSize: csize_t, pDescriptor: pointer): void {.stdcall.} - vkCmdBindDescriptorBuffersEXT*: proc(commandBuffer: VkCommandBuffer, bufferCount: uint32, pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT): void {.stdcall.} - vkCmdSetDescriptorBufferOffsetsEXT*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, setCount: uint32, pBufferIndices: ptr uint32, pOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdBindDescriptorBufferEmbeddedSamplersEXT*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32): void {.stdcall.} - vkGetBufferOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetImageOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetImageViewOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetSamplerOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} - vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.} + vkGetDescriptorSetLayoutSizeEXT*: proc( + device: VkDevice, + layout: VkDescriptorSetLayout, + pLayoutSizeInBytes: ptr VkDeviceSize, + ): void {.stdcall.} + vkGetDescriptorSetLayoutBindingOffsetEXT*: proc( + device: VkDevice, + layout: VkDescriptorSetLayout, + binding: uint32, + pOffset: ptr VkDeviceSize, + ): void {.stdcall.} + vkGetDescriptorEXT*: proc( + device: VkDevice, + pDescriptorInfo: ptr VkDescriptorGetInfoEXT, + dataSize: csize_t, + pDescriptor: pointer, + ): void {.stdcall.} + vkCmdBindDescriptorBuffersEXT*: proc( + commandBuffer: VkCommandBuffer, + bufferCount: uint32, + pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT, + ): void {.stdcall.} + vkCmdSetDescriptorBufferOffsetsEXT*: proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + firstSet: uint32, + setCount: uint32, + pBufferIndices: ptr uint32, + pOffsets: ptr VkDeviceSize, + ): void {.stdcall.} + vkCmdBindDescriptorBufferEmbeddedSamplersEXT*: proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + set: uint32, + ): void {.stdcall.} + vkGetBufferOpaqueCaptureDescriptorDataEXT*: proc( + device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.} + vkGetImageOpaqueCaptureDescriptorDataEXT*: proc( + device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.} + vkGetImageViewOpaqueCaptureDescriptorDataEXT*: proc( + device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.} + vkGetSamplerOpaqueCaptureDescriptorDataEXT*: proc( + device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.} + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT*: proc( + device: VkDevice, + pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, + pData: pointer, + ): VkResult {.stdcall.} proc loadVK_EXT_descriptor_buffer*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_2(instance) loadVK_VERSION_1_3(instance) loadVK_VERSION_1_2(instance) - vkGetDescriptorSetLayoutSizeEXT = cast[proc(device: VkDevice, layout: VkDescriptorSetLayout, pLayoutSizeInBytes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutSizeEXT")) - vkGetDescriptorSetLayoutBindingOffsetEXT = cast[proc(device: VkDevice, layout: VkDescriptorSetLayout, binding: uint32, pOffset: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutBindingOffsetEXT")) - vkGetDescriptorEXT = cast[proc(device: VkDevice, pDescriptorInfo: ptr VkDescriptorGetInfoEXT, dataSize: csize_t, pDescriptor: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorEXT")) - vkCmdBindDescriptorBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, bufferCount: uint32, pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBuffersEXT")) - vkCmdSetDescriptorBufferOffsetsEXT = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, firstSet: uint32, setCount: uint32, pBufferIndices: ptr uint32, pOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDescriptorBufferOffsetsEXT")) - vkCmdBindDescriptorBufferEmbeddedSamplersEXT = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT")) - vkGetBufferOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT")) - vkGetImageOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageOpaqueCaptureDescriptorDataEXT")) - vkGetImageViewOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT")) - vkGetSamplerOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT")) - vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT")) + vkGetDescriptorSetLayoutSizeEXT = cast[proc( + device: VkDevice, + layout: VkDescriptorSetLayout, + pLayoutSizeInBytes: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDescriptorSetLayoutSizeEXT" + )) + vkGetDescriptorSetLayoutBindingOffsetEXT = cast[proc( + device: VkDevice, + layout: VkDescriptorSetLayout, + binding: uint32, + pOffset: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDescriptorSetLayoutBindingOffsetEXT" + )) + vkGetDescriptorEXT = cast[proc( + device: VkDevice, + pDescriptorInfo: ptr VkDescriptorGetInfoEXT, + dataSize: csize_t, + pDescriptor: pointer, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorEXT")) + vkCmdBindDescriptorBuffersEXT = cast[proc( + commandBuffer: VkCommandBuffer, + bufferCount: uint32, + pBindingInfos: ptr VkDescriptorBufferBindingInfoEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindDescriptorBuffersEXT")) + vkCmdSetDescriptorBufferOffsetsEXT = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + firstSet: uint32, + setCount: uint32, + pBufferIndices: ptr uint32, + pOffsets: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetDescriptorBufferOffsetsEXT" + )) + vkCmdBindDescriptorBufferEmbeddedSamplersEXT = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + set: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" + )) + vkGetBufferOpaqueCaptureDescriptorDataEXT = cast[proc( + device: VkDevice, pInfo: ptr VkBufferCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetBufferOpaqueCaptureDescriptorDataEXT" + )) + vkGetImageOpaqueCaptureDescriptorDataEXT = cast[proc( + device: VkDevice, pInfo: ptr VkImageCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetImageOpaqueCaptureDescriptorDataEXT" + )) + vkGetImageViewOpaqueCaptureDescriptorDataEXT = cast[proc( + device: VkDevice, pInfo: ptr VkImageViewCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" + )) + vkGetSamplerOpaqueCaptureDescriptorDataEXT = cast[proc( + device: VkDevice, pInfo: ptr VkSamplerCaptureDescriptorDataInfoEXT, pData: pointer + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" + )) + vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = cast[proc( + device: VkDevice, + pInfo: ptr VkAccelerationStructureCaptureDescriptorDataInfoEXT, + pData: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" + )) # extension VK_KHR_performance_query var - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32, pCounters: ptr VkPerformanceCounterKHR, pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR*: proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: ptr uint32): void {.stdcall.} - vkAcquireProfilingLockKHR*: proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR): VkResult {.stdcall.} + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR*: proc( + physicalDevice: VkPhysicalDevice, + queueFamilyIndex: uint32, + pCounterCount: ptr uint32, + pCounters: ptr VkPerformanceCounterKHR, + pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR*: proc( + physicalDevice: VkPhysicalDevice, + pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, + pNumPasses: ptr uint32, + ): void {.stdcall.} + vkAcquireProfilingLockKHR*: proc( + device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR + ): VkResult {.stdcall.} vkReleaseProfilingLockKHR*: proc(device: VkDevice): void {.stdcall.} proc loadVK_KHR_performance_query*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, pCounterCount: ptr uint32, pCounters: ptr VkPerformanceCounterKHR, pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, pNumPasses: ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) - vkAcquireProfilingLockKHR = cast[proc(device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireProfilingLockKHR")) - vkReleaseProfilingLockKHR = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseProfilingLockKHR")) + vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + queueFamilyIndex: uint32, + pCounterCount: ptr uint32, + pCounters: ptr VkPerformanceCounterKHR, + pCounterDescriptions: ptr VkPerformanceCounterDescriptionKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" + )) + vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pPerformanceQueryCreateInfo: ptr VkQueryPoolPerformanceCreateInfoKHR, + pNumPasses: ptr uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" + )) + vkAcquireProfilingLockKHR = cast[proc( + device: VkDevice, pInfo: ptr VkAcquireProfilingLockInfoKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireProfilingLockKHR")) + vkReleaseProfilingLockKHR = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkReleaseProfilingLockKHR" + )) proc loadVK_GOOGLE_user_type*(instance: VkInstance) = discard # extension VK_EXT_debug_report var - vkCreateDebugReportCallbackEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pCallback: ptr VkDebugReportCallbackEXT): VkResult {.stdcall.} - vkDestroyDebugReportCallbackEXT*: proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkDebugReportMessageEXT*: proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring): void {.stdcall.} + vkCreateDebugReportCallbackEXT*: proc( + instance: VkInstance, + pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pCallback: ptr VkDebugReportCallbackEXT, + ): VkResult {.stdcall.} + vkDestroyDebugReportCallbackEXT*: proc( + instance: VkInstance, + callback: VkDebugReportCallbackEXT, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkDebugReportMessageEXT*: proc( + instance: VkInstance, + flags: VkDebugReportFlagsEXT, + objectType: VkDebugReportObjectTypeEXT, + theobject: uint64, + location: csize_t, + messageCode: int32, + pLayerPrefix: cstring, + pMessage: cstring, + ): void {.stdcall.} proc loadVK_EXT_debug_report*(instance: VkInstance) = - vkCreateDebugReportCallbackEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pCallback: ptr VkDebugReportCallbackEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT")) - vkDestroyDebugReportCallbackEXT = cast[proc(instance: VkInstance, callback: VkDebugReportCallbackEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT")) - vkDebugReportMessageEXT = cast[proc(instance: VkInstance, flags: VkDebugReportFlagsEXT, objectType: VkDebugReportObjectTypeEXT, theobject: uint64, location: csize_t, messageCode: int32, pLayerPrefix: cstring, pMessage: cstring): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT")) + vkCreateDebugReportCallbackEXT = cast[proc( + instance: VkInstance, + pCreateInfo: ptr VkDebugReportCallbackCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pCallback: ptr VkDebugReportCallbackEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateDebugReportCallbackEXT" + )) + vkDestroyDebugReportCallbackEXT = cast[proc( + instance: VkInstance, + callback: VkDebugReportCallbackEXT, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroyDebugReportCallbackEXT" + )) + vkDebugReportMessageEXT = cast[proc( + instance: VkInstance, + flags: VkDebugReportFlagsEXT, + objectType: VkDebugReportObjectTypeEXT, + theobject: uint64, + location: csize_t, + messageCode: int32, + pLayerPrefix: cstring, + pMessage: cstring, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT")) proc loadVK_EXT_multisampled_render_to_single_sampled*(instance: VkInstance) = loadVK_VERSION_1_2(instance) @@ -10550,26 +14968,63 @@ # extension VK_NV_shading_rate_image var - vkCmdBindShadingRateImageNV*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.} - vkCmdSetViewportShadingRatePaletteNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV): void {.stdcall.} - vkCmdSetCoarseSampleOrderNV*: proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV): void {.stdcall.} + vkCmdBindShadingRateImageNV*: proc( + commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout + ): void {.stdcall.} + vkCmdSetViewportShadingRatePaletteNV*: proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pShadingRatePalettes: ptr VkShadingRatePaletteNV, + ): void {.stdcall.} + vkCmdSetCoarseSampleOrderNV*: proc( + commandBuffer: VkCommandBuffer, + sampleOrderType: VkCoarseSampleOrderTypeNV, + customSampleOrderCount: uint32, + pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV, + ): void {.stdcall.} proc loadVK_NV_shading_rate_image*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdBindShadingRateImageNV = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindShadingRateImageNV")) - vkCmdSetViewportShadingRatePaletteNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pShadingRatePalettes: ptr VkShadingRatePaletteNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportShadingRatePaletteNV")) - vkCmdSetCoarseSampleOrderNV = cast[proc(commandBuffer: VkCommandBuffer, sampleOrderType: VkCoarseSampleOrderTypeNV, customSampleOrderCount: uint32, pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoarseSampleOrderNV")) + vkCmdBindShadingRateImageNV = cast[proc( + commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindShadingRateImageNV")) + vkCmdSetViewportShadingRatePaletteNV = cast[proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pShadingRatePalettes: ptr VkShadingRatePaletteNV, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetViewportShadingRatePaletteNV" + )) + vkCmdSetCoarseSampleOrderNV = cast[proc( + commandBuffer: VkCommandBuffer, + sampleOrderType: VkCoarseSampleOrderTypeNV, + customSampleOrderCount: uint32, + pCustomSampleOrders: ptr VkCoarseSampleOrderCustomNV, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoarseSampleOrderNV")) proc loadVK_EXT_fragment_density_map*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_NV_device_diagnostic_checkpoints var - vkCmdSetCheckpointNV*: proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.} - vkGetQueueCheckpointDataNV*: proc(queue: VkQueue, pCheckpointDataCount: ptr uint32, pCheckpointData: ptr VkCheckpointDataNV): void {.stdcall.} + vkCmdSetCheckpointNV*: + proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.} + vkGetQueueCheckpointDataNV*: proc( + queue: VkQueue, + pCheckpointDataCount: ptr uint32, + pCheckpointData: ptr VkCheckpointDataNV, + ): void {.stdcall.} proc loadVK_NV_device_diagnostic_checkpoints*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetCheckpointNV = cast[proc(commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCheckpointNV")) - vkGetQueueCheckpointDataNV = cast[proc(queue: VkQueue, pCheckpointDataCount: ptr uint32, pCheckpointData: ptr VkCheckpointDataNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueueCheckpointDataNV")) + vkCmdSetCheckpointNV = cast[proc( + commandBuffer: VkCommandBuffer, pCheckpointMarker: pointer + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCheckpointNV")) + vkGetQueueCheckpointDataNV = cast[proc( + queue: VkQueue, + pCheckpointDataCount: ptr uint32, + pCheckpointData: ptr VkCheckpointDataNV, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetQueueCheckpointDataNV")) proc loadVK_EXT_pci_bus_info*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10579,29 +15034,93 @@ # extension VK_EXT_debug_utils var - vkSetDebugUtilsObjectNameEXT*: proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT): VkResult {.stdcall.} - vkSetDebugUtilsObjectTagEXT*: proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT): VkResult {.stdcall.} - vkQueueBeginDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkSetDebugUtilsObjectNameEXT*: proc( + device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT + ): VkResult {.stdcall.} + vkSetDebugUtilsObjectTagEXT*: proc( + device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT + ): VkResult {.stdcall.} + vkQueueBeginDebugUtilsLabelEXT*: + proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} vkQueueEndDebugUtilsLabelEXT*: proc(queue: VkQueue): void {.stdcall.} - vkQueueInsertDebugUtilsLabelEXT*: proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} - vkCmdBeginDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkQueueInsertDebugUtilsLabelEXT*: + proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} + vkCmdBeginDebugUtilsLabelEXT*: proc( + commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT + ): void {.stdcall.} vkCmdEndDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} - vkCmdInsertDebugUtilsLabelEXT*: proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.} - vkCreateDebugUtilsMessengerEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMessenger: ptr VkDebugUtilsMessengerEXT): VkResult {.stdcall.} - vkDestroyDebugUtilsMessengerEXT*: proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkSubmitDebugUtilsMessageEXT*: proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT): void {.stdcall.} + vkCmdInsertDebugUtilsLabelEXT*: proc( + commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT + ): void {.stdcall.} + vkCreateDebugUtilsMessengerEXT*: proc( + instance: VkInstance, + pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pMessenger: ptr VkDebugUtilsMessengerEXT, + ): VkResult {.stdcall.} + vkDestroyDebugUtilsMessengerEXT*: proc( + instance: VkInstance, + messenger: VkDebugUtilsMessengerEXT, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkSubmitDebugUtilsMessageEXT*: proc( + instance: VkInstance, + messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, + messageTypes: VkDebugUtilsMessageTypeFlagsEXT, + pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, + ): void {.stdcall.} proc loadVK_EXT_debug_utils*(instance: VkInstance) = - vkSetDebugUtilsObjectNameEXT = cast[proc(device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectNameEXT")) - vkSetDebugUtilsObjectTagEXT = cast[proc(device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDebugUtilsObjectTagEXT")) - vkQueueBeginDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT")) - vkQueueEndDebugUtilsLabelEXT = cast[proc(queue: VkQueue): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueEndDebugUtilsLabelEXT")) - vkQueueInsertDebugUtilsLabelEXT = cast[proc(queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueInsertDebugUtilsLabelEXT")) - vkCmdBeginDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT")) - vkCmdEndDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT")) - vkCmdInsertDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT")) - vkCreateDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMessenger: ptr VkDebugUtilsMessengerEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT")) - vkDestroyDebugUtilsMessengerEXT = cast[proc(instance: VkInstance, messenger: VkDebugUtilsMessengerEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT")) - vkSubmitDebugUtilsMessageEXT = cast[proc(instance: VkInstance, messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, messageTypes: VkDebugUtilsMessageTypeFlagsEXT, pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT")) + vkSetDebugUtilsObjectNameEXT = cast[proc( + device: VkDevice, pNameInfo: ptr VkDebugUtilsObjectNameInfoEXT + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkSetDebugUtilsObjectNameEXT" + )) + vkSetDebugUtilsObjectTagEXT = cast[proc( + device: VkDevice, pTagInfo: ptr VkDebugUtilsObjectTagInfoEXT + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkSetDebugUtilsObjectTagEXT" + )) + vkQueueBeginDebugUtilsLabelEXT = cast[proc( + queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueBeginDebugUtilsLabelEXT")) + vkQueueEndDebugUtilsLabelEXT = cast[proc(queue: VkQueue): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkQueueEndDebugUtilsLabelEXT" + )) + vkQueueInsertDebugUtilsLabelEXT = cast[proc( + queue: VkQueue, pLabelInfo: ptr VkDebugUtilsLabelEXT + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkQueueInsertDebugUtilsLabelEXT" + )) + vkCmdBeginDebugUtilsLabelEXT = cast[proc( + commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginDebugUtilsLabelEXT")) + vkCmdEndDebugUtilsLabelEXT = cast[proc(commandBuffer: VkCommandBuffer): void {. + stdcall + .}](vkGetInstanceProcAddr(instance, "vkCmdEndDebugUtilsLabelEXT")) + vkCmdInsertDebugUtilsLabelEXT = cast[proc( + commandBuffer: VkCommandBuffer, pLabelInfo: ptr VkDebugUtilsLabelEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdInsertDebugUtilsLabelEXT")) + vkCreateDebugUtilsMessengerEXT = cast[proc( + instance: VkInstance, + pCreateInfo: ptr VkDebugUtilsMessengerCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pMessenger: ptr VkDebugUtilsMessengerEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateDebugUtilsMessengerEXT" + )) + vkDestroyDebugUtilsMessengerEXT = cast[proc( + instance: VkInstance, + messenger: VkDebugUtilsMessengerEXT, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroyDebugUtilsMessengerEXT" + )) + vkSubmitDebugUtilsMessageEXT = cast[proc( + instance: VkInstance, + messageSeverity: VkDebugUtilsMessageSeverityFlagBitsEXT, + messageTypes: VkDebugUtilsMessageTypeFlagsEXT, + pCallbackData: ptr VkDebugUtilsMessengerCallbackDataEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT")) proc loadVK_KHR_portability_enumeration*(instance: VkInstance) = discard @@ -10614,30 +15133,98 @@ # extension VK_KHR_external_fence_fd var - vkImportFenceFdKHR*: proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR): VkResult {.stdcall.} - vkGetFenceFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} + vkImportFenceFdKHR*: proc( + device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR + ): VkResult {.stdcall.} + vkGetFenceFdKHR*: proc( + device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint + ): VkResult {.stdcall.} proc loadVK_KHR_external_fence_fd*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkImportFenceFdKHR = cast[proc(device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportFenceFdKHR")) - vkGetFenceFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceFdKHR")) + vkImportFenceFdKHR = cast[proc( + device: VkDevice, pImportFenceFdInfo: ptr VkImportFenceFdInfoKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportFenceFdKHR")) + vkGetFenceFdKHR = cast[proc( + device: VkDevice, pGetFdInfo: ptr VkFenceGetFdInfoKHR, pFd: ptr cint + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceFdKHR")) # extension VK_NV_device_generated_commands var - vkGetGeneratedCommandsMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.} - vkCmdPreprocessGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.} - vkCmdExecuteGeneratedCommandsNV*: proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.} - vkCmdBindPipelineShaderGroupNV*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.} - vkCreateIndirectCommandsLayoutNV*: proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV): VkResult {.stdcall.} - vkDestroyIndirectCommandsLayoutNV*: proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} + vkGetGeneratedCommandsMemoryRequirementsNV*: proc( + device: VkDevice, + pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.} + vkCmdPreprocessGeneratedCommandsNV*: proc( + commandBuffer: VkCommandBuffer, + pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV, + ): void {.stdcall.} + vkCmdExecuteGeneratedCommandsNV*: proc( + commandBuffer: VkCommandBuffer, + isPreprocessed: VkBool32, + pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV, + ): void {.stdcall.} + vkCmdBindPipelineShaderGroupNV*: proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + pipeline: VkPipeline, + groupIndex: uint32, + ): void {.stdcall.} + vkCreateIndirectCommandsLayoutNV*: proc( + device: VkDevice, + pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV, + ): VkResult {.stdcall.} + vkDestroyIndirectCommandsLayoutNV*: proc( + device: VkDevice, + indirectCommandsLayout: VkIndirectCommandsLayoutNV, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} proc loadVK_NV_device_generated_commands*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_2(instance) - vkGetGeneratedCommandsMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetGeneratedCommandsMemoryRequirementsNV")) - vkCmdPreprocessGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPreprocessGeneratedCommandsNV")) - vkCmdExecuteGeneratedCommandsNV = cast[proc(commandBuffer: VkCommandBuffer, isPreprocessed: VkBool32, pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdExecuteGeneratedCommandsNV")) - vkCmdBindPipelineShaderGroupNV = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, pipeline: VkPipeline, groupIndex: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipelineShaderGroupNV")) - vkCreateIndirectCommandsLayoutNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateIndirectCommandsLayoutNV")) - vkDestroyIndirectCommandsLayoutNV = cast[proc(device: VkDevice, indirectCommandsLayout: VkIndirectCommandsLayoutNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyIndirectCommandsLayoutNV")) + vkGetGeneratedCommandsMemoryRequirementsNV = cast[proc( + device: VkDevice, + pInfo: ptr VkGeneratedCommandsMemoryRequirementsInfoNV, + pMemoryRequirements: ptr VkMemoryRequirements2, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetGeneratedCommandsMemoryRequirementsNV" + )) + vkCmdPreprocessGeneratedCommandsNV = cast[proc( + commandBuffer: VkCommandBuffer, + pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdPreprocessGeneratedCommandsNV" + )) + vkCmdExecuteGeneratedCommandsNV = cast[proc( + commandBuffer: VkCommandBuffer, + isPreprocessed: VkBool32, + pGeneratedCommandsInfo: ptr VkGeneratedCommandsInfoNV, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdExecuteGeneratedCommandsNV" + )) + vkCmdBindPipelineShaderGroupNV = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + pipeline: VkPipeline, + groupIndex: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindPipelineShaderGroupNV")) + vkCreateIndirectCommandsLayoutNV = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkIndirectCommandsLayoutCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pIndirectCommandsLayout: ptr VkIndirectCommandsLayoutNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateIndirectCommandsLayoutNV" + )) + vkDestroyIndirectCommandsLayoutNV = cast[proc( + device: VkDevice, + indirectCommandsLayout: VkIndirectCommandsLayoutNV, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroyIndirectCommandsLayoutNV" + )) proc loadVK_NV_viewport_array2*(instance: VkInstance) = discard @@ -10647,12 +15234,26 @@ # extension VK_KHR_external_memory_fd var - vkGetMemoryFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} - vkGetMemoryFdPropertiesKHR*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: cint, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR): VkResult {.stdcall.} + vkGetMemoryFdKHR*: proc( + device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint + ): VkResult {.stdcall.} + vkGetMemoryFdPropertiesKHR*: proc( + device: VkDevice, + handleType: VkExternalMemoryHandleTypeFlagBits, + fd: cint, + pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR, + ): VkResult {.stdcall.} proc loadVK_KHR_external_memory_fd*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetMemoryFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHR")) - vkGetMemoryFdPropertiesKHR = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, fd: cint, pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdPropertiesKHR")) + vkGetMemoryFdKHR = cast[proc( + device: VkDevice, pGetFdInfo: ptr VkMemoryGetFdInfoKHR, pFd: ptr cint + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdKHR")) + vkGetMemoryFdPropertiesKHR = cast[proc( + device: VkDevice, + handleType: VkExternalMemoryHandleTypeFlagBits, + fd: cint, + pMemoryFdProperties: ptr VkMemoryFdPropertiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryFdPropertiesKHR")) proc loadVK_EXT_rgba10x6_formats*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10662,11 +15263,20 @@ loadVK_VERSION_1_1(instance) # extension VK_NV_cooperative_matrix -var - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkCooperativeMatrixPropertiesNV): VkResult {.stdcall.} +var vkGetPhysicalDeviceCooperativeMatrixPropertiesNV*: proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkCooperativeMatrixPropertiesNV, +): VkResult {.stdcall.} proc loadVK_NV_cooperative_matrix*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkCooperativeMatrixPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")) + vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = cast[proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkCooperativeMatrixPropertiesNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" + )) proc loadVK_EXT_depth_clamp_zero_one*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10678,42 +15288,163 @@ discard # extension VK_EXT_image_drm_format_modifier -var - vkGetImageDrmFormatModifierPropertiesEXT*: proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT): VkResult {.stdcall.} +var vkGetImageDrmFormatModifierPropertiesEXT*: proc( + device: VkDevice, + image: VkImage, + pProperties: ptr VkImageDrmFormatModifierPropertiesEXT, +): VkResult {.stdcall.} proc loadVK_EXT_image_drm_format_modifier*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_1(instance) loadVK_VERSION_1_2(instance) loadVK_VERSION_1_1(instance) - vkGetImageDrmFormatModifierPropertiesEXT = cast[proc(device: VkDevice, image: VkImage, pProperties: ptr VkImageDrmFormatModifierPropertiesEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageDrmFormatModifierPropertiesEXT")) + vkGetImageDrmFormatModifierPropertiesEXT = cast[proc( + device: VkDevice, + image: VkImage, + pProperties: ptr VkImageDrmFormatModifierPropertiesEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetImageDrmFormatModifierPropertiesEXT" + )) # extension VK_EXT_mesh_shader var - vkCmdDrawMeshTasksEXT*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectEXT*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectCountEXT*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawMeshTasksEXT*: proc( + commandBuffer: VkCommandBuffer, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.} + vkCmdDrawMeshTasksIndirectEXT*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdDrawMeshTasksIndirectCountEXT*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.} proc loadVK_EXT_mesh_shader*(instance: VkInstance) = loadVK_VERSION_1_2(instance) - vkCmdDrawMeshTasksEXT = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksEXT")) - vkCmdDrawMeshTasksIndirectEXT = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectEXT")) - vkCmdDrawMeshTasksIndirectCountEXT = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountEXT")) + vkCmdDrawMeshTasksEXT = cast[proc( + commandBuffer: VkCommandBuffer, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksEXT")) + vkCmdDrawMeshTasksIndirectEXT = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectEXT")) + vkCmdDrawMeshTasksIndirectCountEXT = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdDrawMeshTasksIndirectCountEXT" + )) # extension VK_EXT_transform_feedback var - vkCmdBindTransformFeedbackBuffersEXT*: proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize): void {.stdcall.} - vkCmdBeginTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdEndTransformFeedbackEXT*: proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.} - vkCmdBeginQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.} - vkCmdEndQueryIndexedEXT*: proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.} - vkCmdDrawIndirectByteCountEXT*: proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.} + vkCmdBindTransformFeedbackBuffersEXT*: proc( + commandBuffer: VkCommandBuffer, + firstBinding: uint32, + bindingCount: uint32, + pBuffers: ptr VkBuffer, + pOffsets: ptr VkDeviceSize, + pSizes: ptr VkDeviceSize, + ): void {.stdcall.} + vkCmdBeginTransformFeedbackEXT*: proc( + commandBuffer: VkCommandBuffer, + firstCounterBuffer: uint32, + counterBufferCount: uint32, + pCounterBuffers: ptr VkBuffer, + pCounterBufferOffsets: ptr VkDeviceSize, + ): void {.stdcall.} + vkCmdEndTransformFeedbackEXT*: proc( + commandBuffer: VkCommandBuffer, + firstCounterBuffer: uint32, + counterBufferCount: uint32, + pCounterBuffers: ptr VkBuffer, + pCounterBufferOffsets: ptr VkDeviceSize, + ): void {.stdcall.} + vkCmdBeginQueryIndexedEXT*: proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + query: uint32, + flags: VkQueryControlFlags, + index: uint32, + ): void {.stdcall.} + vkCmdEndQueryIndexedEXT*: proc( + commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32 + ): void {.stdcall.} + vkCmdDrawIndirectByteCountEXT*: proc( + commandBuffer: VkCommandBuffer, + instanceCount: uint32, + firstInstance: uint32, + counterBuffer: VkBuffer, + counterBufferOffset: VkDeviceSize, + counterOffset: uint32, + vertexStride: uint32, + ): void {.stdcall.} proc loadVK_EXT_transform_feedback*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdBindTransformFeedbackBuffersEXT = cast[proc(commandBuffer: VkCommandBuffer, firstBinding: uint32, bindingCount: uint32, pBuffers: ptr VkBuffer, pOffsets: ptr VkDeviceSize, pSizes: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindTransformFeedbackBuffersEXT")) - vkCmdBeginTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginTransformFeedbackEXT")) - vkCmdEndTransformFeedbackEXT = cast[proc(commandBuffer: VkCommandBuffer, firstCounterBuffer: uint32, counterBufferCount: uint32, pCounterBuffers: ptr VkBuffer, pCounterBufferOffsets: ptr VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndTransformFeedbackEXT")) - vkCmdBeginQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, flags: VkQueryControlFlags, index: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQueryIndexedEXT")) - vkCmdEndQueryIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQueryIndexedEXT")) - vkCmdDrawIndirectByteCountEXT = cast[proc(commandBuffer: VkCommandBuffer, instanceCount: uint32, firstInstance: uint32, counterBuffer: VkBuffer, counterBufferOffset: VkDeviceSize, counterOffset: uint32, vertexStride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectByteCountEXT")) + vkCmdBindTransformFeedbackBuffersEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstBinding: uint32, + bindingCount: uint32, + pBuffers: ptr VkBuffer, + pOffsets: ptr VkDeviceSize, + pSizes: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdBindTransformFeedbackBuffersEXT" + )) + vkCmdBeginTransformFeedbackEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstCounterBuffer: uint32, + counterBufferCount: uint32, + pCounterBuffers: ptr VkBuffer, + pCounterBufferOffsets: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginTransformFeedbackEXT")) + vkCmdEndTransformFeedbackEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstCounterBuffer: uint32, + counterBufferCount: uint32, + pCounterBuffers: ptr VkBuffer, + pCounterBufferOffsets: ptr VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndTransformFeedbackEXT")) + vkCmdBeginQueryIndexedEXT = cast[proc( + commandBuffer: VkCommandBuffer, + queryPool: VkQueryPool, + query: uint32, + flags: VkQueryControlFlags, + index: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginQueryIndexedEXT")) + vkCmdEndQueryIndexedEXT = cast[proc( + commandBuffer: VkCommandBuffer, queryPool: VkQueryPool, query: uint32, index: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndQueryIndexedEXT")) + vkCmdDrawIndirectByteCountEXT = cast[proc( + commandBuffer: VkCommandBuffer, + instanceCount: uint32, + firstInstance: uint32, + counterBuffer: VkBuffer, + counterBufferOffset: VkDeviceSize, + counterOffset: uint32, + vertexStride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawIndirectByteCountEXT")) proc loadVK_AMD_shader_early_and_late_fragment_tests*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10740,21 +15471,50 @@ discard # extension VK_EXT_vertex_input_dynamic_state -var - vkCmdSetVertexInputEXT*: proc(commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: uint32, pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: uint32, pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT): void {.stdcall.} +var vkCmdSetVertexInputEXT*: proc( + commandBuffer: VkCommandBuffer, + vertexBindingDescriptionCount: uint32, + pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, + vertexAttributeDescriptionCount: uint32, + pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT, +): void {.stdcall.} proc loadVK_EXT_vertex_input_dynamic_state*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetVertexInputEXT = cast[proc(commandBuffer: VkCommandBuffer, vertexBindingDescriptionCount: uint32, pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, vertexAttributeDescriptionCount: uint32, pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetVertexInputEXT")) + vkCmdSetVertexInputEXT = cast[proc( + commandBuffer: VkCommandBuffer, + vertexBindingDescriptionCount: uint32, + pVertexBindingDescriptions: ptr VkVertexInputBindingDescription2EXT, + vertexAttributeDescriptionCount: uint32, + pVertexAttributeDescriptions: ptr VkVertexInputAttributeDescription2EXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetVertexInputEXT")) # extension VK_KHR_fragment_shading_rate var - vkGetPhysicalDeviceFragmentShadingRatesKHR*: proc(physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: ptr uint32, pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR): VkResult {.stdcall.} - vkCmdSetFragmentShadingRateKHR*: proc(commandBuffer: VkCommandBuffer, pFragmentSize: ptr VkExtent2D, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.} + vkGetPhysicalDeviceFragmentShadingRatesKHR*: proc( + physicalDevice: VkPhysicalDevice, + pFragmentShadingRateCount: ptr uint32, + pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR, + ): VkResult {.stdcall.} + vkCmdSetFragmentShadingRateKHR*: proc( + commandBuffer: VkCommandBuffer, + pFragmentSize: ptr VkExtent2D, + combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR], + ): void {.stdcall.} proc loadVK_KHR_fragment_shading_rate*(instance: VkInstance) = loadVK_VERSION_1_2(instance) loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceFragmentShadingRatesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pFragmentShadingRateCount: ptr uint32, pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR")) - vkCmdSetFragmentShadingRateKHR = cast[proc(commandBuffer: VkCommandBuffer, pFragmentSize: ptr VkExtent2D, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateKHR")) + vkGetPhysicalDeviceFragmentShadingRatesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pFragmentShadingRateCount: ptr uint32, + pFragmentShadingRates: ptr VkPhysicalDeviceFragmentShadingRateKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" + )) + vkCmdSetFragmentShadingRateKHR = cast[proc( + commandBuffer: VkCommandBuffer, + pFragmentSize: ptr VkExtent2D, + combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR], + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateKHR")) proc loadVK_EXT_depth_clip_enable*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10764,12 +15524,20 @@ # extension VK_KHR_external_semaphore_fd var - vkImportSemaphoreFdKHR*: proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR): VkResult {.stdcall.} - vkGetSemaphoreFdKHR*: proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.} + vkImportSemaphoreFdKHR*: proc( + device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR + ): VkResult {.stdcall.} + vkGetSemaphoreFdKHR*: proc( + device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint + ): VkResult {.stdcall.} proc loadVK_KHR_external_semaphore_fd*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkImportSemaphoreFdKHR = cast[proc(device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportSemaphoreFdKHR")) - vkGetSemaphoreFdKHR = cast[proc(device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreFdKHR")) + vkImportSemaphoreFdKHR = cast[proc( + device: VkDevice, pImportSemaphoreFdInfo: ptr VkImportSemaphoreFdInfoKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportSemaphoreFdKHR")) + vkGetSemaphoreFdKHR = cast[proc( + device: VkDevice, pGetFdInfo: ptr VkSemaphoreGetFdInfoKHR, pFd: ptr cint + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreFdKHR")) proc loadVK_KHR_fragment_shader_barycentric*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10788,25 +15556,71 @@ # extension VK_NV_mesh_shader var - vkCmdDrawMeshTasksNV*: proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawMeshTasksIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.} + vkCmdDrawMeshTasksNV*: proc( + commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32 + ): void {.stdcall.} + vkCmdDrawMeshTasksIndirectNV*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdDrawMeshTasksIndirectCountNV*: proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.} proc loadVK_NV_mesh_shader*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdDrawMeshTasksNV = cast[proc(commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksNV")) - vkCmdDrawMeshTasksIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, drawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectNV")) - vkCmdDrawMeshTasksIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize, countBuffer: VkBuffer, countBufferOffset: VkDeviceSize, maxDrawCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectCountNV")) + vkCmdDrawMeshTasksNV = cast[proc( + commandBuffer: VkCommandBuffer, taskCount: uint32, firstTask: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksNV")) + vkCmdDrawMeshTasksIndirectNV = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + drawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMeshTasksIndirectNV")) + vkCmdDrawMeshTasksIndirectCountNV = cast[proc( + commandBuffer: VkCommandBuffer, + buffer: VkBuffer, + offset: VkDeviceSize, + countBuffer: VkBuffer, + countBufferOffset: VkDeviceSize, + maxDrawCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdDrawMeshTasksIndirectCountNV" + )) # extension VK_EXT_image_compression_control -var - vkGetImageSubresourceLayout2EXT*: proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource2EXT, pLayout: ptr VkSubresourceLayout2EXT): void {.stdcall.} +var vkGetImageSubresourceLayout2EXT*: proc( + device: VkDevice, + image: VkImage, + pSubresource: ptr VkImageSubresource2EXT, + pLayout: ptr VkSubresourceLayout2EXT, +): void {.stdcall.} proc loadVK_EXT_image_compression_control*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetImageSubresourceLayout2EXT = cast[proc(device: VkDevice, image: VkImage, pSubresource: ptr VkImageSubresource2EXT, pLayout: ptr VkSubresourceLayout2EXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageSubresourceLayout2EXT")) + vkGetImageSubresourceLayout2EXT = cast[proc( + device: VkDevice, + image: VkImage, + pSubresource: ptr VkImageSubresource2EXT, + pLayout: ptr VkSubresourceLayout2EXT, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetImageSubresourceLayout2EXT" + )) # extension VK_EXT_buffer_device_address -var - vkGetBufferDeviceAddressEXT*: proc(device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo): VkDeviceAddress {.stdcall.} +var vkGetBufferDeviceAddressEXT*: proc( + device: VkDevice, pInfo: ptr VkBufferDeviceAddressInfo +): VkDeviceAddress {.stdcall.} proc loadVK_EXT_buffer_device_address*(instance: VkInstance) = loadVK_VERSION_1_1(instance) vkGetBufferDeviceAddressEXT = vkGetBufferDeviceAddress @@ -10819,55 +15633,157 @@ # extension VK_HUAWEI_subpass_shading var - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI*: proc(device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D): VkResult {.stdcall.} + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI*: proc( + device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D + ): VkResult {.stdcall.} vkCmdSubpassShadingHUAWEI*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} proc loadVK_HUAWEI_subpass_shading*(instance: VkInstance) = loadVK_VERSION_1_2(instance) loadVK_VERSION_1_3(instance) - vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = cast[proc(device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) - vkCmdSubpassShadingHUAWEI = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSubpassShadingHUAWEI")) + vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = cast[proc( + device: VkDevice, renderpass: VkRenderPass, pMaxWorkgroupSize: ptr VkExtent2D + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" + )) + vkCmdSubpassShadingHUAWEI = cast[proc(commandBuffer: VkCommandBuffer): void {. + stdcall + .}](vkGetInstanceProcAddr(instance, "vkCmdSubpassShadingHUAWEI")) # extension VK_VALVE_descriptor_set_host_mapping var - vkGetDescriptorSetLayoutHostMappingInfoVALVE*: proc(device: VkDevice, pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE): void {.stdcall.} - vkGetDescriptorSetHostMappingVALVE*: proc(device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer): void {.stdcall.} + vkGetDescriptorSetLayoutHostMappingInfoVALVE*: proc( + device: VkDevice, + pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, + pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE, + ): void {.stdcall.} + vkGetDescriptorSetHostMappingVALVE*: proc( + device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer + ): void {.stdcall.} proc loadVK_VALVE_descriptor_set_host_mapping*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetDescriptorSetLayoutHostMappingInfoVALVE = cast[proc(device: VkDevice, pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE")) - vkGetDescriptorSetHostMappingVALVE = cast[proc(device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDescriptorSetHostMappingVALVE")) + vkGetDescriptorSetLayoutHostMappingInfoVALVE = cast[proc( + device: VkDevice, + pBindingReference: ptr VkDescriptorSetBindingReferenceVALVE, + pHostMapping: ptr VkDescriptorSetLayoutHostMappingInfoVALVE, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" + )) + vkGetDescriptorSetHostMappingVALVE = cast[proc( + device: VkDevice, descriptorSet: VkDescriptorSet, ppData: ptr pointer + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDescriptorSetHostMappingVALVE" + )) # extension VK_NV_external_memory_capabilities -var - vkGetPhysicalDeviceExternalImageFormatPropertiesNV*: proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV): VkResult {.stdcall.} +var vkGetPhysicalDeviceExternalImageFormatPropertiesNV*: proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + thetype: VkImageType, + tiling: VkImageTiling, + usage: VkImageUsageFlags, + flags: VkImageCreateFlags, + externalHandleType: VkExternalMemoryHandleTypeFlagsNV, + pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV, +): VkResult {.stdcall.} proc loadVK_NV_external_memory_capabilities*(instance: VkInstance) = - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast[proc(physicalDevice: VkPhysicalDevice, format: VkFormat, thetype: VkImageType, tiling: VkImageTiling, usage: VkImageUsageFlags, flags: VkImageCreateFlags, externalHandleType: VkExternalMemoryHandleTypeFlagsNV, pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")) + vkGetPhysicalDeviceExternalImageFormatPropertiesNV = cast[proc( + physicalDevice: VkPhysicalDevice, + format: VkFormat, + thetype: VkImageType, + tiling: VkImageTiling, + usage: VkImageUsageFlags, + flags: VkImageCreateFlags, + externalHandleType: VkExternalMemoryHandleTypeFlagsNV, + pExternalImageFormatProperties: ptr VkExternalImageFormatPropertiesNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" + )) # extension VK_NV_optical_flow var - vkGetPhysicalDeviceOpticalFlowImageFormatsNV*: proc(physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, pFormatCount: ptr uint32, pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV): VkResult {.stdcall.} - vkCreateOpticalFlowSessionNV*: proc(device: VkDevice, pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pSession: ptr VkOpticalFlowSessionNV): VkResult {.stdcall.} - vkDestroyOpticalFlowSessionNV*: proc(device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkBindOpticalFlowSessionImageNV*: proc(device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout): VkResult {.stdcall.} - vkCmdOpticalFlowExecuteNV*: proc(commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV): void {.stdcall.} + vkGetPhysicalDeviceOpticalFlowImageFormatsNV*: proc( + physicalDevice: VkPhysicalDevice, + pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, + pFormatCount: ptr uint32, + pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV, + ): VkResult {.stdcall.} + vkCreateOpticalFlowSessionNV*: proc( + device: VkDevice, + pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pSession: ptr VkOpticalFlowSessionNV, + ): VkResult {.stdcall.} + vkDestroyOpticalFlowSessionNV*: proc( + device: VkDevice, + session: VkOpticalFlowSessionNV, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkBindOpticalFlowSessionImageNV*: proc( + device: VkDevice, + session: VkOpticalFlowSessionNV, + bindingPoint: VkOpticalFlowSessionBindingPointNV, + view: VkImageView, + layout: VkImageLayout, + ): VkResult {.stdcall.} + vkCmdOpticalFlowExecuteNV*: proc( + commandBuffer: VkCommandBuffer, + session: VkOpticalFlowSessionNV, + pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV, + ): void {.stdcall.} proc loadVK_NV_optical_flow*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_3(instance) loadVK_VERSION_1_3(instance) - vkGetPhysicalDeviceOpticalFlowImageFormatsNV = cast[proc(physicalDevice: VkPhysicalDevice, pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, pFormatCount: ptr uint32, pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV")) - vkCreateOpticalFlowSessionNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pSession: ptr VkOpticalFlowSessionNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateOpticalFlowSessionNV")) - vkDestroyOpticalFlowSessionNV = cast[proc(device: VkDevice, session: VkOpticalFlowSessionNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyOpticalFlowSessionNV")) - vkBindOpticalFlowSessionImageNV = cast[proc(device: VkDevice, session: VkOpticalFlowSessionNV, bindingPoint: VkOpticalFlowSessionBindingPointNV, view: VkImageView, layout: VkImageLayout): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindOpticalFlowSessionImageNV")) - vkCmdOpticalFlowExecuteNV = cast[proc(commandBuffer: VkCommandBuffer, session: VkOpticalFlowSessionNV, pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdOpticalFlowExecuteNV")) + vkGetPhysicalDeviceOpticalFlowImageFormatsNV = cast[proc( + physicalDevice: VkPhysicalDevice, + pOpticalFlowImageFormatInfo: ptr VkOpticalFlowImageFormatInfoNV, + pFormatCount: ptr uint32, + pImageFormatProperties: ptr VkOpticalFlowImageFormatPropertiesNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" + )) + vkCreateOpticalFlowSessionNV = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkOpticalFlowSessionCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pSession: ptr VkOpticalFlowSessionNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateOpticalFlowSessionNV" + )) + vkDestroyOpticalFlowSessionNV = cast[proc( + device: VkDevice, + session: VkOpticalFlowSessionNV, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyOpticalFlowSessionNV")) + vkBindOpticalFlowSessionImageNV = cast[proc( + device: VkDevice, + session: VkOpticalFlowSessionNV, + bindingPoint: VkOpticalFlowSessionBindingPointNV, + view: VkImageView, + layout: VkImageLayout, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkBindOpticalFlowSessionImageNV" + )) + vkCmdOpticalFlowExecuteNV = cast[proc( + commandBuffer: VkCommandBuffer, + session: VkOpticalFlowSessionNV, + pExecuteInfo: ptr VkOpticalFlowExecuteInfoNV, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdOpticalFlowExecuteNV")) proc loadVK_EXT_vertex_attribute_divisor*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_EXT_line_rasterization -var - vkCmdSetLineStippleEXT*: proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.} +var vkCmdSetLineStippleEXT*: proc( + commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16 +): void {.stdcall.} proc loadVK_EXT_line_rasterization*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetLineStippleEXT = cast[proc(commandBuffer: VkCommandBuffer, lineStippleFactor: uint32, lineStipplePattern: uint16): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEXT")) + vkCmdSetLineStippleEXT = cast[proc( + commandBuffer: VkCommandBuffer, + lineStippleFactor: uint32, + lineStipplePattern: uint16, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEXT")) proc loadVK_AMD_texture_gather_bias_lod*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10885,10 +15801,21 @@ discard # extension VK_AMD_buffer_marker -var - vkCmdWriteBufferMarkerAMD*: proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.} +var vkCmdWriteBufferMarkerAMD*: proc( + commandBuffer: VkCommandBuffer, + pipelineStage: VkPipelineStageFlagBits, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + marker: uint32, +): void {.stdcall.} proc loadVK_AMD_buffer_marker*(instance: VkInstance) = - vkCmdWriteBufferMarkerAMD = cast[proc(commandBuffer: VkCommandBuffer, pipelineStage: VkPipelineStageFlagBits, dstBuffer: VkBuffer, dstOffset: VkDeviceSize, marker: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteBufferMarkerAMD")) + vkCmdWriteBufferMarkerAMD = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineStage: VkPipelineStageFlagBits, + dstBuffer: VkBuffer, + dstOffset: VkDeviceSize, + marker: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteBufferMarkerAMD")) proc loadVK_NV_corner_sampled_image*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -10901,12 +15828,34 @@ # extension VK_NV_scissor_exclusive var - vkCmdSetExclusiveScissorEnableNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissorEnables: ptr VkBool32): void {.stdcall.} - vkCmdSetExclusiveScissorNV*: proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D): void {.stdcall.} + vkCmdSetExclusiveScissorEnableNV*: proc( + commandBuffer: VkCommandBuffer, + firstExclusiveScissor: uint32, + exclusiveScissorCount: uint32, + pExclusiveScissorEnables: ptr VkBool32, + ): void {.stdcall.} + vkCmdSetExclusiveScissorNV*: proc( + commandBuffer: VkCommandBuffer, + firstExclusiveScissor: uint32, + exclusiveScissorCount: uint32, + pExclusiveScissors: ptr VkRect2D, + ): void {.stdcall.} proc loadVK_NV_scissor_exclusive*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetExclusiveScissorEnableNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissorEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorEnableNV")) - vkCmdSetExclusiveScissorNV = cast[proc(commandBuffer: VkCommandBuffer, firstExclusiveScissor: uint32, exclusiveScissorCount: uint32, pExclusiveScissors: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorNV")) + vkCmdSetExclusiveScissorEnableNV = cast[proc( + commandBuffer: VkCommandBuffer, + firstExclusiveScissor: uint32, + exclusiveScissorCount: uint32, + pExclusiveScissorEnables: ptr VkBool32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetExclusiveScissorEnableNV" + )) + vkCmdSetExclusiveScissorNV = cast[proc( + commandBuffer: VkCommandBuffer, + firstExclusiveScissor: uint32, + exclusiveScissorCount: uint32, + pExclusiveScissors: ptr VkRect2D, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExclusiveScissorNV")) proc loadVK_NV_framebuffer_mixed_samples*(instance: VkInstance) = discard @@ -10919,91 +15868,326 @@ # extension VK_KHR_pipeline_executable_properties var - vkGetPipelineExecutablePropertiesKHR*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR, pExecutableCount: ptr uint32, pProperties: ptr VkPipelineExecutablePropertiesKHR): VkResult {.stdcall.} - vkGetPipelineExecutableStatisticsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pStatisticCount: ptr uint32, pStatistics: ptr VkPipelineExecutableStatisticKHR): VkResult {.stdcall.} - vkGetPipelineExecutableInternalRepresentationsKHR*: proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pInternalRepresentationCount: ptr uint32, pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR): VkResult {.stdcall.} + vkGetPipelineExecutablePropertiesKHR*: proc( + device: VkDevice, + pPipelineInfo: ptr VkPipelineInfoKHR, + pExecutableCount: ptr uint32, + pProperties: ptr VkPipelineExecutablePropertiesKHR, + ): VkResult {.stdcall.} + vkGetPipelineExecutableStatisticsKHR*: proc( + device: VkDevice, + pExecutableInfo: ptr VkPipelineExecutableInfoKHR, + pStatisticCount: ptr uint32, + pStatistics: ptr VkPipelineExecutableStatisticKHR, + ): VkResult {.stdcall.} + vkGetPipelineExecutableInternalRepresentationsKHR*: proc( + device: VkDevice, + pExecutableInfo: ptr VkPipelineExecutableInfoKHR, + pInternalRepresentationCount: ptr uint32, + pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR, + ): VkResult {.stdcall.} proc loadVK_KHR_pipeline_executable_properties*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetPipelineExecutablePropertiesKHR = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoKHR, pExecutableCount: ptr uint32, pProperties: ptr VkPipelineExecutablePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutablePropertiesKHR")) - vkGetPipelineExecutableStatisticsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pStatisticCount: ptr uint32, pStatistics: ptr VkPipelineExecutableStatisticKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableStatisticsKHR")) - vkGetPipelineExecutableInternalRepresentationsKHR = cast[proc(device: VkDevice, pExecutableInfo: ptr VkPipelineExecutableInfoKHR, pInternalRepresentationCount: ptr uint32, pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelineExecutableInternalRepresentationsKHR")) + vkGetPipelineExecutablePropertiesKHR = cast[proc( + device: VkDevice, + pPipelineInfo: ptr VkPipelineInfoKHR, + pExecutableCount: ptr uint32, + pProperties: ptr VkPipelineExecutablePropertiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPipelineExecutablePropertiesKHR" + )) + vkGetPipelineExecutableStatisticsKHR = cast[proc( + device: VkDevice, + pExecutableInfo: ptr VkPipelineExecutableInfoKHR, + pStatisticCount: ptr uint32, + pStatistics: ptr VkPipelineExecutableStatisticKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPipelineExecutableStatisticsKHR" + )) + vkGetPipelineExecutableInternalRepresentationsKHR = cast[proc( + device: VkDevice, + pExecutableInfo: ptr VkPipelineExecutableInfoKHR, + pInternalRepresentationCount: ptr uint32, + pInternalRepresentations: ptr VkPipelineExecutableInternalRepresentationKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPipelineExecutableInternalRepresentationsKHR" + )) # extension VK_EXT_extended_dynamic_state3 var - vkCmdSetTessellationDomainOriginEXT*: proc(commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin): void {.stdcall.} - vkCmdSetDepthClampEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.} - vkCmdSetPolygonModeEXT*: proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.} - vkCmdSetRasterizationSamplesEXT*: proc(commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits): void {.stdcall.} - vkCmdSetSampleMaskEXT*: proc(commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: ptr VkSampleMask): void {.stdcall.} - vkCmdSetAlphaToCoverageEnableEXT*: proc(commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32): void {.stdcall.} - vkCmdSetAlphaToOneEnableEXT*: proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.} - vkCmdSetLogicOpEnableEXT*: proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.} - vkCmdSetColorBlendEnableEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEnables: ptr VkBool32): void {.stdcall.} - vkCmdSetColorBlendEquationEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEquations: ptr VkColorBlendEquationEXT): void {.stdcall.} - vkCmdSetColorWriteMaskEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorWriteMasks: ptr VkColorComponentFlags): void {.stdcall.} - vkCmdSetRasterizationStreamEXT*: proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.} - vkCmdSetConservativeRasterizationModeEXT*: proc(commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT): void {.stdcall.} - vkCmdSetExtraPrimitiveOverestimationSizeEXT*: proc(commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32): void {.stdcall.} - vkCmdSetDepthClipEnableEXT*: proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.} - vkCmdSetSampleLocationsEnableEXT*: proc(commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32): void {.stdcall.} - vkCmdSetColorBlendAdvancedEXT*: proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT): void {.stdcall.} - vkCmdSetProvokingVertexModeEXT*: proc(commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT): void {.stdcall.} - vkCmdSetLineRasterizationModeEXT*: proc(commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT): void {.stdcall.} - vkCmdSetLineStippleEnableEXT*: proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.} - vkCmdSetDepthClipNegativeOneToOneEXT*: proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.} - vkCmdSetViewportWScalingEnableNV*: proc(commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32): void {.stdcall.} - vkCmdSetViewportSwizzleNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportSwizzles: ptr VkViewportSwizzleNV): void {.stdcall.} - vkCmdSetCoverageToColorEnableNV*: proc(commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32): void {.stdcall.} - vkCmdSetCoverageToColorLocationNV*: proc(commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32): void {.stdcall.} - vkCmdSetCoverageModulationModeNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV): void {.stdcall.} - vkCmdSetCoverageModulationTableEnableNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32): void {.stdcall.} - vkCmdSetCoverageModulationTableNV*: proc(commandBuffer: VkCommandBuffer, coverageModulationTableCount: uint32, pCoverageModulationTable: ptr float32): void {.stdcall.} - vkCmdSetShadingRateImageEnableNV*: proc(commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32): void {.stdcall.} - vkCmdSetRepresentativeFragmentTestEnableNV*: proc(commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32): void {.stdcall.} - vkCmdSetCoverageReductionModeNV*: proc(commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV): void {.stdcall.} + vkCmdSetTessellationDomainOriginEXT*: proc( + commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin + ): void {.stdcall.} + vkCmdSetDepthClampEnableEXT*: + proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.} + vkCmdSetPolygonModeEXT*: + proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.} + vkCmdSetRasterizationSamplesEXT*: proc( + commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits + ): void {.stdcall.} + vkCmdSetSampleMaskEXT*: proc( + commandBuffer: VkCommandBuffer, + samples: VkSampleCountFlagBits, + pSampleMask: ptr VkSampleMask, + ): void {.stdcall.} + vkCmdSetAlphaToCoverageEnableEXT*: proc( + commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetAlphaToOneEnableEXT*: + proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.} + vkCmdSetLogicOpEnableEXT*: + proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.} + vkCmdSetColorBlendEnableEXT*: proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorBlendEnables: ptr VkBool32, + ): void {.stdcall.} + vkCmdSetColorBlendEquationEXT*: proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorBlendEquations: ptr VkColorBlendEquationEXT, + ): void {.stdcall.} + vkCmdSetColorWriteMaskEXT*: proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorWriteMasks: ptr VkColorComponentFlags, + ): void {.stdcall.} + vkCmdSetRasterizationStreamEXT*: + proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.} + vkCmdSetConservativeRasterizationModeEXT*: proc( + commandBuffer: VkCommandBuffer, + conservativeRasterizationMode: VkConservativeRasterizationModeEXT, + ): void {.stdcall.} + vkCmdSetExtraPrimitiveOverestimationSizeEXT*: proc( + commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32 + ): void {.stdcall.} + vkCmdSetDepthClipEnableEXT*: + proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.} + vkCmdSetSampleLocationsEnableEXT*: proc( + commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetColorBlendAdvancedEXT*: proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT, + ): void {.stdcall.} + vkCmdSetProvokingVertexModeEXT*: proc( + commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT + ): void {.stdcall.} + vkCmdSetLineRasterizationModeEXT*: proc( + commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT + ): void {.stdcall.} + vkCmdSetLineStippleEnableEXT*: + proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.} + vkCmdSetDepthClipNegativeOneToOneEXT*: + proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.} + vkCmdSetViewportWScalingEnableNV*: proc( + commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetViewportSwizzleNV*: proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pViewportSwizzles: ptr VkViewportSwizzleNV, + ): void {.stdcall.} + vkCmdSetCoverageToColorEnableNV*: proc( + commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetCoverageToColorLocationNV*: proc( + commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32 + ): void {.stdcall.} + vkCmdSetCoverageModulationModeNV*: proc( + commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV + ): void {.stdcall.} + vkCmdSetCoverageModulationTableEnableNV*: proc( + commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetCoverageModulationTableNV*: proc( + commandBuffer: VkCommandBuffer, + coverageModulationTableCount: uint32, + pCoverageModulationTable: ptr float32, + ): void {.stdcall.} + vkCmdSetShadingRateImageEnableNV*: proc( + commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetRepresentativeFragmentTestEnableNV*: proc( + commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetCoverageReductionModeNV*: proc( + commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV + ): void {.stdcall.} proc loadVK_EXT_extended_dynamic_state3*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetTessellationDomainOriginEXT = cast[proc(commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetTessellationDomainOriginEXT")) - vkCmdSetDepthClampEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClampEnableEXT")) - vkCmdSetPolygonModeEXT = cast[proc(commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPolygonModeEXT")) - vkCmdSetRasterizationSamplesEXT = cast[proc(commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationSamplesEXT")) - vkCmdSetSampleMaskEXT = cast[proc(commandBuffer: VkCommandBuffer, samples: VkSampleCountFlagBits, pSampleMask: ptr VkSampleMask): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleMaskEXT")) - vkCmdSetAlphaToCoverageEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToCoverageEnableEXT")) - vkCmdSetAlphaToOneEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToOneEnableEXT")) - vkCmdSetLogicOpEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLogicOpEnableEXT")) - vkCmdSetColorBlendEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEnableEXT")) - vkCmdSetColorBlendEquationEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendEquations: ptr VkColorBlendEquationEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEquationEXT")) - vkCmdSetColorWriteMaskEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorWriteMasks: ptr VkColorComponentFlags): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteMaskEXT")) - vkCmdSetRasterizationStreamEXT = cast[proc(commandBuffer: VkCommandBuffer, rasterizationStream: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationStreamEXT")) - vkCmdSetConservativeRasterizationModeEXT = cast[proc(commandBuffer: VkCommandBuffer, conservativeRasterizationMode: VkConservativeRasterizationModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetConservativeRasterizationModeEXT")) - vkCmdSetExtraPrimitiveOverestimationSizeEXT = cast[proc(commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT")) - vkCmdSetDepthClipEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipEnableEXT")) - vkCmdSetSampleLocationsEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleLocationsEnableEXT")) - vkCmdSetColorBlendAdvancedEXT = cast[proc(commandBuffer: VkCommandBuffer, firstAttachment: uint32, attachmentCount: uint32, pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendAdvancedEXT")) - vkCmdSetProvokingVertexModeEXT = cast[proc(commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetProvokingVertexModeEXT")) - vkCmdSetLineRasterizationModeEXT = cast[proc(commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineRasterizationModeEXT")) - vkCmdSetLineStippleEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEnableEXT")) - vkCmdSetDepthClipNegativeOneToOneEXT = cast[proc(commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipNegativeOneToOneEXT")) - vkCmdSetViewportWScalingEnableNV = cast[proc(commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingEnableNV")) - vkCmdSetViewportSwizzleNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportSwizzles: ptr VkViewportSwizzleNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportSwizzleNV")) - vkCmdSetCoverageToColorEnableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageToColorEnableNV")) - vkCmdSetCoverageToColorLocationNV = cast[proc(commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageToColorLocationNV")) - vkCmdSetCoverageModulationModeNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationModeNV")) - vkCmdSetCoverageModulationTableEnableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationTableEnableNV")) - vkCmdSetCoverageModulationTableNV = cast[proc(commandBuffer: VkCommandBuffer, coverageModulationTableCount: uint32, pCoverageModulationTable: ptr float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageModulationTableNV")) - vkCmdSetShadingRateImageEnableNV = cast[proc(commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetShadingRateImageEnableNV")) - vkCmdSetRepresentativeFragmentTestEnableNV = cast[proc(commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRepresentativeFragmentTestEnableNV")) - vkCmdSetCoverageReductionModeNV = cast[proc(commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetCoverageReductionModeNV")) + vkCmdSetTessellationDomainOriginEXT = cast[proc( + commandBuffer: VkCommandBuffer, domainOrigin: VkTessellationDomainOrigin + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetTessellationDomainOriginEXT" + )) + vkCmdSetDepthClampEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, depthClampEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClampEnableEXT")) + vkCmdSetPolygonModeEXT = cast[proc( + commandBuffer: VkCommandBuffer, polygonMode: VkPolygonMode + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPolygonModeEXT")) + vkCmdSetRasterizationSamplesEXT = cast[proc( + commandBuffer: VkCommandBuffer, rasterizationSamples: VkSampleCountFlagBits + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetRasterizationSamplesEXT" + )) + vkCmdSetSampleMaskEXT = cast[proc( + commandBuffer: VkCommandBuffer, + samples: VkSampleCountFlagBits, + pSampleMask: ptr VkSampleMask, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetSampleMaskEXT")) + vkCmdSetAlphaToCoverageEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, alphaToCoverageEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetAlphaToCoverageEnableEXT" + )) + vkCmdSetAlphaToOneEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, alphaToOneEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetAlphaToOneEnableEXT")) + vkCmdSetLogicOpEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, logicOpEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLogicOpEnableEXT")) + vkCmdSetColorBlendEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorBlendEnables: ptr VkBool32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEnableEXT")) + vkCmdSetColorBlendEquationEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorBlendEquations: ptr VkColorBlendEquationEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendEquationEXT")) + vkCmdSetColorWriteMaskEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorWriteMasks: ptr VkColorComponentFlags, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteMaskEXT")) + vkCmdSetRasterizationStreamEXT = cast[proc( + commandBuffer: VkCommandBuffer, rasterizationStream: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRasterizationStreamEXT")) + vkCmdSetConservativeRasterizationModeEXT = cast[proc( + commandBuffer: VkCommandBuffer, + conservativeRasterizationMode: VkConservativeRasterizationModeEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetConservativeRasterizationModeEXT" + )) + vkCmdSetExtraPrimitiveOverestimationSizeEXT = cast[proc( + commandBuffer: VkCommandBuffer, extraPrimitiveOverestimationSize: float32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" + )) + vkCmdSetDepthClipEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, depthClipEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDepthClipEnableEXT")) + vkCmdSetSampleLocationsEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, sampleLocationsEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetSampleLocationsEnableEXT" + )) + vkCmdSetColorBlendAdvancedEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstAttachment: uint32, + attachmentCount: uint32, + pColorBlendAdvanced: ptr VkColorBlendAdvancedEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorBlendAdvancedEXT")) + vkCmdSetProvokingVertexModeEXT = cast[proc( + commandBuffer: VkCommandBuffer, provokingVertexMode: VkProvokingVertexModeEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetProvokingVertexModeEXT")) + vkCmdSetLineRasterizationModeEXT = cast[proc( + commandBuffer: VkCommandBuffer, lineRasterizationMode: VkLineRasterizationModeEXT + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetLineRasterizationModeEXT" + )) + vkCmdSetLineStippleEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, stippledLineEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetLineStippleEnableEXT")) + vkCmdSetDepthClipNegativeOneToOneEXT = cast[proc( + commandBuffer: VkCommandBuffer, negativeOneToOne: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetDepthClipNegativeOneToOneEXT" + )) + vkCmdSetViewportWScalingEnableNV = cast[proc( + commandBuffer: VkCommandBuffer, viewportWScalingEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetViewportWScalingEnableNV" + )) + vkCmdSetViewportSwizzleNV = cast[proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pViewportSwizzles: ptr VkViewportSwizzleNV, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportSwizzleNV")) + vkCmdSetCoverageToColorEnableNV = cast[proc( + commandBuffer: VkCommandBuffer, coverageToColorEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetCoverageToColorEnableNV" + )) + vkCmdSetCoverageToColorLocationNV = cast[proc( + commandBuffer: VkCommandBuffer, coverageToColorLocation: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetCoverageToColorLocationNV" + )) + vkCmdSetCoverageModulationModeNV = cast[proc( + commandBuffer: VkCommandBuffer, coverageModulationMode: VkCoverageModulationModeNV + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetCoverageModulationModeNV" + )) + vkCmdSetCoverageModulationTableEnableNV = cast[proc( + commandBuffer: VkCommandBuffer, coverageModulationTableEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetCoverageModulationTableEnableNV" + )) + vkCmdSetCoverageModulationTableNV = cast[proc( + commandBuffer: VkCommandBuffer, + coverageModulationTableCount: uint32, + pCoverageModulationTable: ptr float32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetCoverageModulationTableNV" + )) + vkCmdSetShadingRateImageEnableNV = cast[proc( + commandBuffer: VkCommandBuffer, shadingRateImageEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetShadingRateImageEnableNV" + )) + vkCmdSetRepresentativeFragmentTestEnableNV = cast[proc( + commandBuffer: VkCommandBuffer, representativeFragmentTestEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetRepresentativeFragmentTestEnableNV" + )) + vkCmdSetCoverageReductionModeNV = cast[proc( + commandBuffer: VkCommandBuffer, coverageReductionMode: VkCoverageReductionModeNV + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetCoverageReductionModeNV" + )) proc loadVK_EXT_device_address_binding_report*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_EXT_debug_utils(instance) # extension VK_NV_clip_space_w_scaling -var - vkCmdSetViewportWScalingNV*: proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV): void {.stdcall.} +var vkCmdSetViewportWScalingNV*: proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pViewportWScalings: ptr VkViewportWScalingNV, +): void {.stdcall.} proc loadVK_NV_clip_space_w_scaling*(instance: VkInstance) = - vkCmdSetViewportWScalingNV = cast[proc(commandBuffer: VkCommandBuffer, firstViewport: uint32, viewportCount: uint32, pViewportWScalings: ptr VkViewportWScalingNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingNV")) + vkCmdSetViewportWScalingNV = cast[proc( + commandBuffer: VkCommandBuffer, + firstViewport: uint32, + viewportCount: uint32, + pViewportWScalings: ptr VkViewportWScalingNV, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetViewportWScalingNV")) proc loadVK_NV_fill_rectangle*(instance: VkInstance) = discard @@ -11016,12 +16200,36 @@ # extension VK_EXT_calibrated_timestamps var - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT*: proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32, pTimeDomains: ptr VkTimeDomainEXT): VkResult {.stdcall.} - vkGetCalibratedTimestampsEXT*: proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, pTimestamps: ptr uint64, pMaxDeviation: ptr uint64): VkResult {.stdcall.} + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT*: proc( + physicalDevice: VkPhysicalDevice, + pTimeDomainCount: ptr uint32, + pTimeDomains: ptr VkTimeDomainEXT, + ): VkResult {.stdcall.} + vkGetCalibratedTimestampsEXT*: proc( + device: VkDevice, + timestampCount: uint32, + pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, + pTimestamps: ptr uint64, + pMaxDeviation: ptr uint64, + ): VkResult {.stdcall.} proc loadVK_EXT_calibrated_timestamps*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = cast[proc(physicalDevice: VkPhysicalDevice, pTimeDomainCount: ptr uint32, pTimeDomains: ptr VkTimeDomainEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")) - vkGetCalibratedTimestampsEXT = cast[proc(device: VkDevice, timestampCount: uint32, pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, pTimestamps: ptr uint64, pMaxDeviation: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetCalibratedTimestampsEXT")) + vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = cast[proc( + physicalDevice: VkPhysicalDevice, + pTimeDomainCount: ptr uint32, + pTimeDomains: ptr VkTimeDomainEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" + )) + vkGetCalibratedTimestampsEXT = cast[proc( + device: VkDevice, + timestampCount: uint32, + pTimestampInfos: ptr VkCalibratedTimestampInfoEXT, + pTimestamps: ptr uint64, + pMaxDeviation: ptr uint64, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetCalibratedTimestampsEXT" + )) proc loadVK_EXT_attachment_feedback_loop_layout*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11030,48 +16238,106 @@ discard # extension VK_EXT_external_memory_host -var - vkGetMemoryHostPointerPropertiesEXT*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer, pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT): VkResult {.stdcall.} +var vkGetMemoryHostPointerPropertiesEXT*: proc( + device: VkDevice, + handleType: VkExternalMemoryHandleTypeFlagBits, + pHostPointer: pointer, + pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT, +): VkResult {.stdcall.} proc loadVK_EXT_external_memory_host*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetMemoryHostPointerPropertiesEXT = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, pHostPointer: pointer, pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryHostPointerPropertiesEXT")) + vkGetMemoryHostPointerPropertiesEXT = cast[proc( + device: VkDevice, + handleType: VkExternalMemoryHandleTypeFlagBits, + pHostPointer: pointer, + pMemoryHostPointerProperties: ptr VkMemoryHostPointerPropertiesEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetMemoryHostPointerPropertiesEXT" + )) proc loadVK_ARM_shader_core_properties*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_EXT_shader_module_identifier var - vkGetShaderModuleIdentifierEXT*: proc(device: VkDevice, shaderModule: VkShaderModule, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.} - vkGetShaderModuleCreateInfoIdentifierEXT*: proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.} + vkGetShaderModuleIdentifierEXT*: proc( + device: VkDevice, + shaderModule: VkShaderModule, + pIdentifier: ptr VkShaderModuleIdentifierEXT, + ): void {.stdcall.} + vkGetShaderModuleCreateInfoIdentifierEXT*: proc( + device: VkDevice, + pCreateInfo: ptr VkShaderModuleCreateInfo, + pIdentifier: ptr VkShaderModuleIdentifierEXT, + ): void {.stdcall.} proc loadVK_EXT_shader_module_identifier*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_3(instance) - vkGetShaderModuleIdentifierEXT = cast[proc(device: VkDevice, shaderModule: VkShaderModule, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleIdentifierEXT")) - vkGetShaderModuleCreateInfoIdentifierEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkShaderModuleCreateInfo, pIdentifier: ptr VkShaderModuleIdentifierEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleCreateInfoIdentifierEXT")) + vkGetShaderModuleIdentifierEXT = cast[proc( + device: VkDevice, + shaderModule: VkShaderModule, + pIdentifier: ptr VkShaderModuleIdentifierEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetShaderModuleIdentifierEXT")) + vkGetShaderModuleCreateInfoIdentifierEXT = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkShaderModuleCreateInfo, + pIdentifier: ptr VkShaderModuleIdentifierEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetShaderModuleCreateInfoIdentifierEXT" + )) proc loadVK_EXT_border_color_swizzle*(instance: VkInstance) = loadVK_EXT_custom_border_color(instance) # extension VK_NV_memory_decompression var - vkCmdDecompressMemoryNV*: proc(commandBuffer: VkCommandBuffer, decompressRegionCount: uint32, pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV): void {.stdcall.} - vkCmdDecompressMemoryIndirectCountNV*: proc(commandBuffer: VkCommandBuffer, indirectCommandsAddress: VkDeviceAddress, indirectCommandsCountAddress: VkDeviceAddress, stride: uint32): void {.stdcall.} + vkCmdDecompressMemoryNV*: proc( + commandBuffer: VkCommandBuffer, + decompressRegionCount: uint32, + pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV, + ): void {.stdcall.} + vkCmdDecompressMemoryIndirectCountNV*: proc( + commandBuffer: VkCommandBuffer, + indirectCommandsAddress: VkDeviceAddress, + indirectCommandsCountAddress: VkDeviceAddress, + stride: uint32, + ): void {.stdcall.} proc loadVK_NV_memory_decompression*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_2(instance) - vkCmdDecompressMemoryNV = cast[proc(commandBuffer: VkCommandBuffer, decompressRegionCount: uint32, pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryNV")) - vkCmdDecompressMemoryIndirectCountNV = cast[proc(commandBuffer: VkCommandBuffer, indirectCommandsAddress: VkDeviceAddress, indirectCommandsCountAddress: VkDeviceAddress, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryIndirectCountNV")) + vkCmdDecompressMemoryNV = cast[proc( + commandBuffer: VkCommandBuffer, + decompressRegionCount: uint32, + pDecompressMemoryRegions: ptr VkDecompressMemoryRegionNV, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDecompressMemoryNV")) + vkCmdDecompressMemoryIndirectCountNV = cast[proc( + commandBuffer: VkCommandBuffer, + indirectCommandsAddress: VkDeviceAddress, + indirectCommandsCountAddress: VkDeviceAddress, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdDecompressMemoryIndirectCountNV" + )) proc loadVK_EXT_fragment_shader_interlock*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_NV_coverage_reduction_mode -var - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV*: proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32, pCombinations: ptr VkFramebufferMixedSamplesCombinationNV): VkResult {.stdcall.} +var vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV*: proc( + physicalDevice: VkPhysicalDevice, + pCombinationCount: ptr uint32, + pCombinations: ptr VkFramebufferMixedSamplesCombinationNV, +): VkResult {.stdcall.} proc loadVK_NV_coverage_reduction_mode*(instance: VkInstance) = loadVK_NV_framebuffer_mixed_samples(instance) loadVK_VERSION_1_1(instance) - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = cast[proc(physicalDevice: VkPhysicalDevice, pCombinationCount: ptr uint32, pCombinations: ptr VkFramebufferMixedSamplesCombinationNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) + vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = cast[proc( + physicalDevice: VkPhysicalDevice, + pCombinationCount: ptr uint32, + pCombinations: ptr VkFramebufferMixedSamplesCombinationNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" + )) proc loadVK_NV_glsl_shader*(instance: VkInstance) = discard @@ -11081,22 +16347,80 @@ # extension VK_QCOM_tile_properties var - vkGetFramebufferTilePropertiesQCOM*: proc(device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: ptr uint32, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.} - vkGetDynamicRenderingTilePropertiesQCOM*: proc(device: VkDevice, pRenderingInfo: ptr VkRenderingInfo, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.} + vkGetFramebufferTilePropertiesQCOM*: proc( + device: VkDevice, + framebuffer: VkFramebuffer, + pPropertiesCount: ptr uint32, + pProperties: ptr VkTilePropertiesQCOM, + ): VkResult {.stdcall.} + vkGetDynamicRenderingTilePropertiesQCOM*: proc( + device: VkDevice, + pRenderingInfo: ptr VkRenderingInfo, + pProperties: ptr VkTilePropertiesQCOM, + ): VkResult {.stdcall.} proc loadVK_QCOM_tile_properties*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetFramebufferTilePropertiesQCOM = cast[proc(device: VkDevice, framebuffer: VkFramebuffer, pPropertiesCount: ptr uint32, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFramebufferTilePropertiesQCOM")) - vkGetDynamicRenderingTilePropertiesQCOM = cast[proc(device: VkDevice, pRenderingInfo: ptr VkRenderingInfo, pProperties: ptr VkTilePropertiesQCOM): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDynamicRenderingTilePropertiesQCOM")) + vkGetFramebufferTilePropertiesQCOM = cast[proc( + device: VkDevice, + framebuffer: VkFramebuffer, + pPropertiesCount: ptr uint32, + pProperties: ptr VkTilePropertiesQCOM, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetFramebufferTilePropertiesQCOM" + )) + vkGetDynamicRenderingTilePropertiesQCOM = cast[proc( + device: VkDevice, + pRenderingInfo: ptr VkRenderingInfo, + pProperties: ptr VkTilePropertiesQCOM, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDynamicRenderingTilePropertiesQCOM" + )) # extension VK_KHR_push_descriptor var - vkCmdPushDescriptorSetKHR*: proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet): void {.stdcall.} - vkCmdPushDescriptorSetWithTemplateKHR*: proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.} + vkCmdPushDescriptorSetKHR*: proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + set: uint32, + descriptorWriteCount: uint32, + pDescriptorWrites: ptr VkWriteDescriptorSet, + ): void {.stdcall.} + vkCmdPushDescriptorSetWithTemplateKHR*: proc( + commandBuffer: VkCommandBuffer, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + layout: VkPipelineLayout, + set: uint32, + pData: pointer, + ): void {.stdcall.} proc loadVK_KHR_push_descriptor*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdPushDescriptorSetKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineBindPoint: VkPipelineBindPoint, layout: VkPipelineLayout, set: uint32, descriptorWriteCount: uint32, pDescriptorWrites: ptr VkWriteDescriptorSet): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetKHR")) - vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR")) - vkCmdPushDescriptorSetWithTemplateKHR = cast[proc(commandBuffer: VkCommandBuffer, descriptorUpdateTemplate: VkDescriptorUpdateTemplate, layout: VkPipelineLayout, set: uint32, pData: pointer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetWithTemplateKHR")) + vkCmdPushDescriptorSetKHR = cast[proc( + commandBuffer: VkCommandBuffer, + pipelineBindPoint: VkPipelineBindPoint, + layout: VkPipelineLayout, + set: uint32, + descriptorWriteCount: uint32, + pDescriptorWrites: ptr VkWriteDescriptorSet, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdPushDescriptorSetKHR")) + vkCmdPushDescriptorSetWithTemplateKHR = cast[proc( + commandBuffer: VkCommandBuffer, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + layout: VkPipelineLayout, + set: uint32, + pData: pointer, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdPushDescriptorSetWithTemplateKHR" + )) + vkCmdPushDescriptorSetWithTemplateKHR = cast[proc( + commandBuffer: VkCommandBuffer, + descriptorUpdateTemplate: VkDescriptorUpdateTemplate, + layout: VkPipelineLayout, + set: uint32, + pData: pointer, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdPushDescriptorSetWithTemplateKHR" + )) proc loadVK_NV_viewport_swizzle*(instance: VkInstance) = discard @@ -11118,25 +16442,83 @@ # extension VK_INTEL_performance_query var - vkInitializePerformanceApiINTEL*: proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL): VkResult {.stdcall.} + vkInitializePerformanceApiINTEL*: proc( + device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL + ): VkResult {.stdcall.} vkUninitializePerformanceApiINTEL*: proc(device: VkDevice): void {.stdcall.} - vkCmdSetPerformanceMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL): VkResult {.stdcall.} - vkCmdSetPerformanceStreamMarkerINTEL*: proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL): VkResult {.stdcall.} - vkCmdSetPerformanceOverrideINTEL*: proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL): VkResult {.stdcall.} - vkAcquirePerformanceConfigurationINTEL*: proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: ptr VkPerformanceConfigurationINTEL): VkResult {.stdcall.} - vkReleasePerformanceConfigurationINTEL*: proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.} - vkQueueSetPerformanceConfigurationINTEL*: proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.} - vkGetPerformanceParameterINTEL*: proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL): VkResult {.stdcall.} + vkCmdSetPerformanceMarkerINTEL*: proc( + commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL + ): VkResult {.stdcall.} + vkCmdSetPerformanceStreamMarkerINTEL*: proc( + commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL + ): VkResult {.stdcall.} + vkCmdSetPerformanceOverrideINTEL*: proc( + commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL + ): VkResult {.stdcall.} + vkAcquirePerformanceConfigurationINTEL*: proc( + device: VkDevice, + pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, + pConfiguration: ptr VkPerformanceConfigurationINTEL, + ): VkResult {.stdcall.} + vkReleasePerformanceConfigurationINTEL*: proc( + device: VkDevice, configuration: VkPerformanceConfigurationINTEL + ): VkResult {.stdcall.} + vkQueueSetPerformanceConfigurationINTEL*: proc( + queue: VkQueue, configuration: VkPerformanceConfigurationINTEL + ): VkResult {.stdcall.} + vkGetPerformanceParameterINTEL*: proc( + device: VkDevice, + parameter: VkPerformanceParameterTypeINTEL, + pValue: ptr VkPerformanceValueINTEL, + ): VkResult {.stdcall.} proc loadVK_INTEL_performance_query*(instance: VkInstance) = - vkInitializePerformanceApiINTEL = cast[proc(device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkInitializePerformanceApiINTEL")) - vkUninitializePerformanceApiINTEL = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkUninitializePerformanceApiINTEL")) - vkCmdSetPerformanceMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceMarkerINTEL")) - vkCmdSetPerformanceStreamMarkerINTEL = cast[proc(commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceStreamMarkerINTEL")) - vkCmdSetPerformanceOverrideINTEL = cast[proc(commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetPerformanceOverrideINTEL")) - vkAcquirePerformanceConfigurationINTEL = cast[proc(device: VkDevice, pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, pConfiguration: ptr VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquirePerformanceConfigurationINTEL")) - vkReleasePerformanceConfigurationINTEL = cast[proc(device: VkDevice, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleasePerformanceConfigurationINTEL")) - vkQueueSetPerformanceConfigurationINTEL = cast[proc(queue: VkQueue, configuration: VkPerformanceConfigurationINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueueSetPerformanceConfigurationINTEL")) - vkGetPerformanceParameterINTEL = cast[proc(device: VkDevice, parameter: VkPerformanceParameterTypeINTEL, pValue: ptr VkPerformanceValueINTEL): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPerformanceParameterINTEL")) + vkInitializePerformanceApiINTEL = cast[proc( + device: VkDevice, pInitializeInfo: ptr VkInitializePerformanceApiInfoINTEL + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkInitializePerformanceApiINTEL" + )) + vkUninitializePerformanceApiINTEL = cast[proc(device: VkDevice): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkUninitializePerformanceApiINTEL" + )) + vkCmdSetPerformanceMarkerINTEL = cast[proc( + commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceMarkerInfoINTEL + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetPerformanceMarkerINTEL" + )) + vkCmdSetPerformanceStreamMarkerINTEL = cast[proc( + commandBuffer: VkCommandBuffer, pMarkerInfo: ptr VkPerformanceStreamMarkerInfoINTEL + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetPerformanceStreamMarkerINTEL" + )) + vkCmdSetPerformanceOverrideINTEL = cast[proc( + commandBuffer: VkCommandBuffer, pOverrideInfo: ptr VkPerformanceOverrideInfoINTEL + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetPerformanceOverrideINTEL" + )) + vkAcquirePerformanceConfigurationINTEL = cast[proc( + device: VkDevice, + pAcquireInfo: ptr VkPerformanceConfigurationAcquireInfoINTEL, + pConfiguration: ptr VkPerformanceConfigurationINTEL, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkAcquirePerformanceConfigurationINTEL" + )) + vkReleasePerformanceConfigurationINTEL = cast[proc( + device: VkDevice, configuration: VkPerformanceConfigurationINTEL + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkReleasePerformanceConfigurationINTEL" + )) + vkQueueSetPerformanceConfigurationINTEL = cast[proc( + queue: VkQueue, configuration: VkPerformanceConfigurationINTEL + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkQueueSetPerformanceConfigurationINTEL" + )) + vkGetPerformanceParameterINTEL = cast[proc( + device: VkDevice, + parameter: VkPerformanceParameterTypeINTEL, + pValue: ptr VkPerformanceValueINTEL, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPerformanceParameterINTEL" + )) proc loadVK_EXT_primitives_generated_query*(instance: VkInstance) = loadVK_EXT_transform_feedback(instance) @@ -11149,24 +16531,65 @@ # extension VK_EXT_conditional_rendering var - vkCmdBeginConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT): void {.stdcall.} - vkCmdEndConditionalRenderingEXT*: proc(commandBuffer: VkCommandBuffer): void {.stdcall.} + vkCmdBeginConditionalRenderingEXT*: proc( + commandBuffer: VkCommandBuffer, + pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT, + ): void {.stdcall.} + vkCmdEndConditionalRenderingEXT*: + proc(commandBuffer: VkCommandBuffer): void {.stdcall.} proc loadVK_EXT_conditional_rendering*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdBeginConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer, pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBeginConditionalRenderingEXT")) - vkCmdEndConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdEndConditionalRenderingEXT")) + vkCmdBeginConditionalRenderingEXT = cast[proc( + commandBuffer: VkCommandBuffer, + pConditionalRenderingBegin: ptr VkConditionalRenderingBeginInfoEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdBeginConditionalRenderingEXT" + )) + vkCmdEndConditionalRenderingEXT = cast[proc(commandBuffer: VkCommandBuffer): void {. + stdcall + .}](vkGetInstanceProcAddr(instance, "vkCmdEndConditionalRenderingEXT")) proc loadVK_QCOM_multiview_per_view_viewports*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_EXT_multi_draw var - vkCmdDrawMultiEXT*: proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pVertexInfo: ptr VkMultiDrawInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32): void {.stdcall.} - vkCmdDrawMultiIndexedEXT*: proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32, pVertexOffset: ptr int32): void {.stdcall.} + vkCmdDrawMultiEXT*: proc( + commandBuffer: VkCommandBuffer, + drawCount: uint32, + pVertexInfo: ptr VkMultiDrawInfoEXT, + instanceCount: uint32, + firstInstance: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdDrawMultiIndexedEXT*: proc( + commandBuffer: VkCommandBuffer, + drawCount: uint32, + pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, + instanceCount: uint32, + firstInstance: uint32, + stride: uint32, + pVertexOffset: ptr int32, + ): void {.stdcall.} proc loadVK_EXT_multi_draw*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdDrawMultiEXT = cast[proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pVertexInfo: ptr VkMultiDrawInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiEXT")) - vkCmdDrawMultiIndexedEXT = cast[proc(commandBuffer: VkCommandBuffer, drawCount: uint32, pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, instanceCount: uint32, firstInstance: uint32, stride: uint32, pVertexOffset: ptr int32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiIndexedEXT")) + vkCmdDrawMultiEXT = cast[proc( + commandBuffer: VkCommandBuffer, + drawCount: uint32, + pVertexInfo: ptr VkMultiDrawInfoEXT, + instanceCount: uint32, + firstInstance: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiEXT")) + vkCmdDrawMultiIndexedEXT = cast[proc( + commandBuffer: VkCommandBuffer, + drawCount: uint32, + pIndexInfo: ptr VkMultiDrawIndexedInfoEXT, + instanceCount: uint32, + firstInstance: uint32, + stride: uint32, + pVertexOffset: ptr int32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawMultiIndexedEXT")) proc loadVK_NV_fragment_coverage_to_color*(instance: VkInstance) = discard @@ -11190,11 +16613,18 @@ loadVK_VERSION_1_1(instance) # extension VK_EXT_pipeline_properties -var - vkGetPipelinePropertiesEXT*: proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoEXT, pPipelineProperties: ptr VkBaseOutStructure): VkResult {.stdcall.} +var vkGetPipelinePropertiesEXT*: proc( + device: VkDevice, + pPipelineInfo: ptr VkPipelineInfoEXT, + pPipelineProperties: ptr VkBaseOutStructure, +): VkResult {.stdcall.} proc loadVK_EXT_pipeline_properties*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetPipelinePropertiesEXT = cast[proc(device: VkDevice, pPipelineInfo: ptr VkPipelineInfoEXT, pPipelineProperties: ptr VkBaseOutStructure): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelinePropertiesEXT")) + vkGetPipelinePropertiesEXT = cast[proc( + device: VkDevice, + pPipelineInfo: ptr VkPipelineInfoEXT, + pPipelineProperties: ptr VkBaseOutStructure, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPipelinePropertiesEXT")) proc loadVK_EXT_graphics_pipeline_library*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11202,45 +16632,137 @@ # extension VK_KHR_surface var - vkDestroySurfaceKHR*: proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetPhysicalDeviceSurfaceSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfaceCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfaceFormatsKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormatKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfacePresentModesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.} + vkDestroySurfaceKHR*: proc( + instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkGetPhysicalDeviceSurfaceSupportKHR*: proc( + physicalDevice: VkPhysicalDevice, + queueFamilyIndex: uint32, + surface: VkSurfaceKHR, + pSupported: ptr VkBool32, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceCapabilitiesKHR*: proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceFormatsKHR*: proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pSurfaceFormatCount: ptr uint32, + pSurfaceFormats: ptr VkSurfaceFormatKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfacePresentModesKHR*: proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pPresentModeCount: ptr uint32, + pPresentModes: ptr VkPresentModeKHR, + ): VkResult {.stdcall.} proc loadVK_KHR_surface*(instance: VkInstance) = - vkDestroySurfaceKHR = cast[proc(instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR")) - vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, surface: VkSurfaceKHR, pSupported: ptr VkBool32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR")) - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")) - vkGetPhysicalDeviceSurfaceFormatsKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormatKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR")) - vkGetPhysicalDeviceSurfacePresentModesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR")) + vkDestroySurfaceKHR = cast[proc( + instance: VkInstance, surface: VkSurfaceKHR, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR")) + vkGetPhysicalDeviceSurfaceSupportKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + queueFamilyIndex: uint32, + surface: VkSurfaceKHR, + pSupported: ptr VkBool32, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfaceSupportKHR" + )) + vkGetPhysicalDeviceSurfaceCapabilitiesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pSurfaceCapabilities: ptr VkSurfaceCapabilitiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" + )) + vkGetPhysicalDeviceSurfaceFormatsKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pSurfaceFormatCount: ptr uint32, + pSurfaceFormats: ptr VkSurfaceFormatKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" + )) + vkGetPhysicalDeviceSurfacePresentModesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pPresentModeCount: ptr uint32, + pPresentModes: ptr VkPresentModeKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" + )) proc loadVK_AMD_gpu_shader_half_float*(instance: VkInstance) = discard # extension VK_KHR_deferred_host_operations var - vkCreateDeferredOperationKHR*: proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks, pDeferredOperation: ptr VkDeferredOperationKHR): VkResult {.stdcall.} - vkDestroyDeferredOperationKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetDeferredOperationMaxConcurrencyKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.} - vkGetDeferredOperationResultKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} - vkDeferredOperationJoinKHR*: proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} + vkCreateDeferredOperationKHR*: proc( + device: VkDevice, + pAllocator: ptr VkAllocationCallbacks, + pDeferredOperation: ptr VkDeferredOperationKHR, + ): VkResult {.stdcall.} + vkDestroyDeferredOperationKHR*: proc( + device: VkDevice, + operation: VkDeferredOperationKHR, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkGetDeferredOperationMaxConcurrencyKHR*: + proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.} + vkGetDeferredOperationResultKHR*: + proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} + vkDeferredOperationJoinKHR*: + proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.} proc loadVK_KHR_deferred_host_operations*(instance: VkInstance) = - vkCreateDeferredOperationKHR = cast[proc(device: VkDevice, pAllocator: ptr VkAllocationCallbacks, pDeferredOperation: ptr VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDeferredOperationKHR")) - vkDestroyDeferredOperationKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDeferredOperationKHR")) - vkGetDeferredOperationMaxConcurrencyKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeferredOperationMaxConcurrencyKHR")) - vkGetDeferredOperationResultKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeferredOperationResultKHR")) - vkDeferredOperationJoinKHR = cast[proc(device: VkDevice, operation: VkDeferredOperationKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeferredOperationJoinKHR")) + vkCreateDeferredOperationKHR = cast[proc( + device: VkDevice, + pAllocator: ptr VkAllocationCallbacks, + pDeferredOperation: ptr VkDeferredOperationKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateDeferredOperationKHR" + )) + vkDestroyDeferredOperationKHR = cast[proc( + device: VkDevice, + operation: VkDeferredOperationKHR, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyDeferredOperationKHR")) + vkGetDeferredOperationMaxConcurrencyKHR = cast[proc( + device: VkDevice, operation: VkDeferredOperationKHR + ): uint32 {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeferredOperationMaxConcurrencyKHR" + )) + vkGetDeferredOperationResultKHR = cast[proc( + device: VkDevice, operation: VkDeferredOperationKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeferredOperationResultKHR" + )) + vkDeferredOperationJoinKHR = cast[proc( + device: VkDevice, operation: VkDeferredOperationKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDeferredOperationJoinKHR")) proc loadVK_NV_dedicated_allocation*(instance: VkInstance) = discard # extension VK_NVX_image_view_handle var - vkGetImageViewHandleNVX*: proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.} - vkGetImageViewAddressNVX*: proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX): VkResult {.stdcall.} + vkGetImageViewHandleNVX*: + proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.} + vkGetImageViewAddressNVX*: proc( + device: VkDevice, + imageView: VkImageView, + pProperties: ptr VkImageViewAddressPropertiesNVX, + ): VkResult {.stdcall.} proc loadVK_NVX_image_view_handle*(instance: VkInstance) = - vkGetImageViewHandleNVX = cast[proc(device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewHandleNVX")) - vkGetImageViewAddressNVX = cast[proc(device: VkDevice, imageView: VkImageView, pProperties: ptr VkImageViewAddressPropertiesNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewAddressNVX")) + vkGetImageViewHandleNVX = cast[proc( + device: VkDevice, pInfo: ptr VkImageViewHandleInfoNVX + ): uint32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewHandleNVX")) + vkGetImageViewAddressNVX = cast[proc( + device: VkDevice, + imageView: VkImageView, + pProperties: ptr VkImageViewAddressPropertiesNVX, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetImageViewAddressNVX")) proc loadVK_EXT_non_seamless_cube_map*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11249,53 +16771,139 @@ discard # extension VK_EXT_device_fault -var - vkGetDeviceFaultInfoEXT*: proc(device: VkDevice, pFaultCounts: ptr VkDeviceFaultCountsEXT, pFaultInfo: ptr VkDeviceFaultInfoEXT): VkResult {.stdcall.} +var vkGetDeviceFaultInfoEXT*: proc( + device: VkDevice, + pFaultCounts: ptr VkDeviceFaultCountsEXT, + pFaultInfo: ptr VkDeviceFaultInfoEXT, +): VkResult {.stdcall.} proc loadVK_EXT_device_fault*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetDeviceFaultInfoEXT = cast[proc(device: VkDevice, pFaultCounts: ptr VkDeviceFaultCountsEXT, pFaultInfo: ptr VkDeviceFaultInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceFaultInfoEXT")) + vkGetDeviceFaultInfoEXT = cast[proc( + device: VkDevice, + pFaultCounts: ptr VkDeviceFaultCountsEXT, + pFaultInfo: ptr VkDeviceFaultInfoEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceFaultInfoEXT")) proc loadVK_EXT_mutable_descriptor_type*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_EXT_color_write_enable -var - vkCmdSetColorWriteEnableEXT*: proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pColorWriteEnables: ptr VkBool32): void {.stdcall.} +var vkCmdSetColorWriteEnableEXT*: proc( + commandBuffer: VkCommandBuffer, + attachmentCount: uint32, + pColorWriteEnables: ptr VkBool32, +): void {.stdcall.} proc loadVK_EXT_color_write_enable*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetColorWriteEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, attachmentCount: uint32, pColorWriteEnables: ptr VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteEnableEXT")) + vkCmdSetColorWriteEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, + attachmentCount: uint32, + pColorWriteEnables: ptr VkBool32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetColorWriteEnableEXT")) proc loadVK_SEC_amigo_profiling*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_NVX_binary_import var - vkCreateCuModuleNVX*: proc(device: VkDevice, pCreateInfo: ptr VkCuModuleCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pModule: ptr VkCuModuleNVX): VkResult {.stdcall.} - vkCreateCuFunctionNVX*: proc(device: VkDevice, pCreateInfo: ptr VkCuFunctionCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pFunction: ptr VkCuFunctionNVX): VkResult {.stdcall.} - vkDestroyCuModuleNVX*: proc(device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkDestroyCuFunctionNVX*: proc(device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCmdCuLaunchKernelNVX*: proc(commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX): void {.stdcall.} + vkCreateCuModuleNVX*: proc( + device: VkDevice, + pCreateInfo: ptr VkCuModuleCreateInfoNVX, + pAllocator: ptr VkAllocationCallbacks, + pModule: ptr VkCuModuleNVX, + ): VkResult {.stdcall.} + vkCreateCuFunctionNVX*: proc( + device: VkDevice, + pCreateInfo: ptr VkCuFunctionCreateInfoNVX, + pAllocator: ptr VkAllocationCallbacks, + pFunction: ptr VkCuFunctionNVX, + ): VkResult {.stdcall.} + vkDestroyCuModuleNVX*: proc( + device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkDestroyCuFunctionNVX*: proc( + device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCmdCuLaunchKernelNVX*: proc( + commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX + ): void {.stdcall.} proc loadVK_NVX_binary_import*(instance: VkInstance) = - vkCreateCuModuleNVX = cast[proc(device: VkDevice, pCreateInfo: ptr VkCuModuleCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pModule: ptr VkCuModuleNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuModuleNVX")) - vkCreateCuFunctionNVX = cast[proc(device: VkDevice, pCreateInfo: ptr VkCuFunctionCreateInfoNVX, pAllocator: ptr VkAllocationCallbacks, pFunction: ptr VkCuFunctionNVX): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuFunctionNVX")) - vkDestroyCuModuleNVX = cast[proc(device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuModuleNVX")) - vkDestroyCuFunctionNVX = cast[proc(device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuFunctionNVX")) - vkCmdCuLaunchKernelNVX = cast[proc(commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCuLaunchKernelNVX")) + vkCreateCuModuleNVX = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkCuModuleCreateInfoNVX, + pAllocator: ptr VkAllocationCallbacks, + pModule: ptr VkCuModuleNVX, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuModuleNVX")) + vkCreateCuFunctionNVX = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkCuFunctionCreateInfoNVX, + pAllocator: ptr VkAllocationCallbacks, + pFunction: ptr VkCuFunctionNVX, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateCuFunctionNVX")) + vkDestroyCuModuleNVX = cast[proc( + device: VkDevice, module: VkCuModuleNVX, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuModuleNVX")) + vkDestroyCuFunctionNVX = cast[proc( + device: VkDevice, function: VkCuFunctionNVX, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyCuFunctionNVX")) + vkCmdCuLaunchKernelNVX = cast[proc( + commandBuffer: VkCommandBuffer, pLaunchInfo: ptr VkCuLaunchInfoNVX + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCuLaunchKernelNVX")) proc loadVK_NV_representative_fragment_test*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_EXT_validation_cache var - vkCreateValidationCacheEXT*: proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pValidationCache: ptr VkValidationCacheEXT): VkResult {.stdcall.} - vkDestroyValidationCacheEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkMergeValidationCachesEXT*: proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT): VkResult {.stdcall.} - vkGetValidationCacheDataEXT*: proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.} + vkCreateValidationCacheEXT*: proc( + device: VkDevice, + pCreateInfo: ptr VkValidationCacheCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pValidationCache: ptr VkValidationCacheEXT, + ): VkResult {.stdcall.} + vkDestroyValidationCacheEXT*: proc( + device: VkDevice, + validationCache: VkValidationCacheEXT, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkMergeValidationCachesEXT*: proc( + device: VkDevice, + dstCache: VkValidationCacheEXT, + srcCacheCount: uint32, + pSrcCaches: ptr VkValidationCacheEXT, + ): VkResult {.stdcall.} + vkGetValidationCacheDataEXT*: proc( + device: VkDevice, + validationCache: VkValidationCacheEXT, + pDataSize: ptr csize_t, + pData: pointer, + ): VkResult {.stdcall.} proc loadVK_EXT_validation_cache*(instance: VkInstance) = - vkCreateValidationCacheEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkValidationCacheCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pValidationCache: ptr VkValidationCacheEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateValidationCacheEXT")) - vkDestroyValidationCacheEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyValidationCacheEXT")) - vkMergeValidationCachesEXT = cast[proc(device: VkDevice, dstCache: VkValidationCacheEXT, srcCacheCount: uint32, pSrcCaches: ptr VkValidationCacheEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergeValidationCachesEXT")) - vkGetValidationCacheDataEXT = cast[proc(device: VkDevice, validationCache: VkValidationCacheEXT, pDataSize: ptr csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetValidationCacheDataEXT")) + vkCreateValidationCacheEXT = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkValidationCacheCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pValidationCache: ptr VkValidationCacheEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateValidationCacheEXT")) + vkDestroyValidationCacheEXT = cast[proc( + device: VkDevice, + validationCache: VkValidationCacheEXT, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyValidationCacheEXT")) + vkMergeValidationCachesEXT = cast[proc( + device: VkDevice, + dstCache: VkValidationCacheEXT, + srcCacheCount: uint32, + pSrcCaches: ptr VkValidationCacheEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkMergeValidationCachesEXT")) + vkGetValidationCacheDataEXT = cast[proc( + device: VkDevice, + validationCache: VkValidationCacheEXT, + pDataSize: ptr csize_t, + pData: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetValidationCacheDataEXT" + )) proc loadVK_NV_inherited_viewport_scissor*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11311,24 +16919,53 @@ # extension VK_EXT_discard_rectangles var - vkCmdSetDiscardRectangleEXT*: proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D): void {.stdcall.} - vkCmdSetDiscardRectangleEnableEXT*: proc(commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32): void {.stdcall.} - vkCmdSetDiscardRectangleModeEXT*: proc(commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT): void {.stdcall.} + vkCmdSetDiscardRectangleEXT*: proc( + commandBuffer: VkCommandBuffer, + firstDiscardRectangle: uint32, + discardRectangleCount: uint32, + pDiscardRectangles: ptr VkRect2D, + ): void {.stdcall.} + vkCmdSetDiscardRectangleEnableEXT*: proc( + commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32 + ): void {.stdcall.} + vkCmdSetDiscardRectangleModeEXT*: proc( + commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT + ): void {.stdcall.} proc loadVK_EXT_discard_rectangles*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdSetDiscardRectangleEXT = cast[proc(commandBuffer: VkCommandBuffer, firstDiscardRectangle: uint32, discardRectangleCount: uint32, pDiscardRectangles: ptr VkRect2D): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEXT")) - vkCmdSetDiscardRectangleEnableEXT = cast[proc(commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEnableEXT")) - vkCmdSetDiscardRectangleModeEXT = cast[proc(commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleModeEXT")) + vkCmdSetDiscardRectangleEXT = cast[proc( + commandBuffer: VkCommandBuffer, + firstDiscardRectangle: uint32, + discardRectangleCount: uint32, + pDiscardRectangles: ptr VkRect2D, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetDiscardRectangleEXT")) + vkCmdSetDiscardRectangleEnableEXT = cast[proc( + commandBuffer: VkCommandBuffer, discardRectangleEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetDiscardRectangleEnableEXT" + )) + vkCmdSetDiscardRectangleModeEXT = cast[proc( + commandBuffer: VkCommandBuffer, discardRectangleMode: VkDiscardRectangleModeEXT + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetDiscardRectangleModeEXT" + )) proc loadVK_EXT_shader_stencil_export*(instance: VkInstance) = discard # extension VK_NV_external_memory_rdma -var - vkGetMemoryRemoteAddressNV*: proc(device: VkDevice, pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, pAddress: ptr VkRemoteAddressNV): VkResult {.stdcall.} +var vkGetMemoryRemoteAddressNV*: proc( + device: VkDevice, + pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, + pAddress: ptr VkRemoteAddressNV, +): VkResult {.stdcall.} proc loadVK_NV_external_memory_rdma*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetMemoryRemoteAddressNV = cast[proc(device: VkDevice, pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, pAddress: ptr VkRemoteAddressNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryRemoteAddressNV")) + vkGetMemoryRemoteAddressNV = cast[proc( + device: VkDevice, + pMemoryGetRemoteAddressInfo: ptr VkMemoryGetRemoteAddressInfoNV, + pAddress: ptr VkRemoteAddressNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryRemoteAddressNV")) proc loadVK_ARM_shader_core_builtins*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11343,11 +16980,20 @@ discard # extension VK_EXT_headless_surface -var - vkCreateHeadlessSurfaceEXT*: proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} +var vkCreateHeadlessSurfaceEXT*: proc( + instance: VkInstance, + pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, +): VkResult {.stdcall.} proc loadVK_EXT_headless_surface*(instance: VkInstance) = loadVK_KHR_surface(instance) - vkCreateHeadlessSurfaceEXT = cast[proc(instance: VkInstance, pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT")) + vkCreateHeadlessSurfaceEXT = cast[proc( + instance: VkInstance, + pCreateInfo: ptr VkHeadlessSurfaceCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT")) proc loadVK_NV_shader_sm_builtins*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11357,34 +17003,98 @@ # extension VK_NV_copy_memory_indirect var - vkCmdCopyMemoryIndirectNV*: proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32): void {.stdcall.} - vkCmdCopyMemoryToImageIndirectNV*: proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32, dstImage: VkImage, dstImageLayout: VkImageLayout, pImageSubresources: ptr VkImageSubresourceLayers): void {.stdcall.} + vkCmdCopyMemoryIndirectNV*: proc( + commandBuffer: VkCommandBuffer, + copyBufferAddress: VkDeviceAddress, + copyCount: uint32, + stride: uint32, + ): void {.stdcall.} + vkCmdCopyMemoryToImageIndirectNV*: proc( + commandBuffer: VkCommandBuffer, + copyBufferAddress: VkDeviceAddress, + copyCount: uint32, + stride: uint32, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + pImageSubresources: ptr VkImageSubresourceLayers, + ): void {.stdcall.} proc loadVK_NV_copy_memory_indirect*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_2(instance) - vkCmdCopyMemoryIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryIndirectNV")) - vkCmdCopyMemoryToImageIndirectNV = cast[proc(commandBuffer: VkCommandBuffer, copyBufferAddress: VkDeviceAddress, copyCount: uint32, stride: uint32, dstImage: VkImage, dstImageLayout: VkImageLayout, pImageSubresources: ptr VkImageSubresourceLayers): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToImageIndirectNV")) + vkCmdCopyMemoryIndirectNV = cast[proc( + commandBuffer: VkCommandBuffer, + copyBufferAddress: VkDeviceAddress, + copyCount: uint32, + stride: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryIndirectNV")) + vkCmdCopyMemoryToImageIndirectNV = cast[proc( + commandBuffer: VkCommandBuffer, + copyBufferAddress: VkDeviceAddress, + copyCount: uint32, + stride: uint32, + dstImage: VkImage, + dstImageLayout: VkImageLayout, + pImageSubresources: ptr VkImageSubresourceLayers, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdCopyMemoryToImageIndirectNV" + )) proc loadVK_EXT_astc_decode_mode*(instance: VkInstance) = loadVK_VERSION_1_1(instance) # extension VK_KHR_get_surface_capabilities2 var - vkGetPhysicalDeviceSurfaceCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR): VkResult {.stdcall.} - vkGetPhysicalDeviceSurfaceFormats2KHR*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormat2KHR): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceCapabilities2KHR*: proc( + physicalDevice: VkPhysicalDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfaceFormats2KHR*: proc( + physicalDevice: VkPhysicalDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pSurfaceFormatCount: ptr uint32, + pSurfaceFormats: ptr VkSurfaceFormat2KHR, + ): VkResult {.stdcall.} proc loadVK_KHR_get_surface_capabilities2*(instance: VkInstance) = loadVK_KHR_surface(instance) - vkGetPhysicalDeviceSurfaceCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")) - vkGetPhysicalDeviceSurfaceFormats2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pSurfaceFormatCount: ptr uint32, pSurfaceFormats: ptr VkSurfaceFormat2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormats2KHR")) + vkGetPhysicalDeviceSurfaceCapabilities2KHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pSurfaceCapabilities: ptr VkSurfaceCapabilities2KHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" + )) + vkGetPhysicalDeviceSurfaceFormats2KHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pSurfaceFormatCount: ptr uint32, + pSurfaceFormats: ptr VkSurfaceFormat2KHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" + )) # extension VK_HUAWEI_cluster_culling_shader var - vkCmdDrawClusterHUAWEI*: proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.} - vkCmdDrawClusterIndirectHUAWEI*: proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.} + vkCmdDrawClusterHUAWEI*: proc( + commandBuffer: VkCommandBuffer, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.} + vkCmdDrawClusterIndirectHUAWEI*: proc( + commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize + ): void {.stdcall.} proc loadVK_HUAWEI_cluster_culling_shader*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkCmdDrawClusterHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, groupCountX: uint32, groupCountY: uint32, groupCountZ: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterHUAWEI")) - vkCmdDrawClusterIndirectHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterIndirectHUAWEI")) + vkCmdDrawClusterHUAWEI = cast[proc( + commandBuffer: VkCommandBuffer, + groupCountX: uint32, + groupCountY: uint32, + groupCountZ: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterHUAWEI")) + vkCmdDrawClusterIndirectHUAWEI = cast[proc( + commandBuffer: VkCommandBuffer, buffer: VkBuffer, offset: VkDeviceSize + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdDrawClusterIndirectHUAWEI")) proc loadVK_KHR_surface_protected_capabilities*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11404,53 +17114,146 @@ loadVK_EXT_shader_atomic_float(instance) # extension VK_EXT_pageable_device_local_memory -var - vkSetDeviceMemoryPriorityEXT*: proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.} +var vkSetDeviceMemoryPriorityEXT*: + proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.} proc loadVK_EXT_pageable_device_local_memory*(instance: VkInstance) = loadVK_EXT_memory_priority(instance) - vkSetDeviceMemoryPriorityEXT = cast[proc(device: VkDevice, memory: VkDeviceMemory, priority: float32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDeviceMemoryPriorityEXT")) + vkSetDeviceMemoryPriorityEXT = cast[proc( + device: VkDevice, memory: VkDeviceMemory, priority: float32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetDeviceMemoryPriorityEXT")) # extension VK_KHR_swapchain var - vkCreateSwapchainKHR*: proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchain: ptr VkSwapchainKHR): VkResult {.stdcall.} - vkDestroySwapchainKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetSwapchainImagesKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32, pSwapchainImages: ptr VkImage): VkResult {.stdcall.} - vkAcquireNextImageKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32): VkResult {.stdcall.} - vkQueuePresentKHR*: proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.} - vkGetDeviceGroupPresentCapabilitiesKHR*: proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR): VkResult {.stdcall.} - vkGetDeviceGroupSurfacePresentModesKHR*: proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.} - vkGetPhysicalDevicePresentRectanglesKHR*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32, pRects: ptr VkRect2D): VkResult {.stdcall.} - vkAcquireNextImage2KHR*: proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR, pImageIndex: ptr uint32): VkResult {.stdcall.} + vkCreateSwapchainKHR*: proc( + device: VkDevice, + pCreateInfo: ptr VkSwapchainCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSwapchain: ptr VkSwapchainKHR, + ): VkResult {.stdcall.} + vkDestroySwapchainKHR*: proc( + device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkGetSwapchainImagesKHR*: proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + pSwapchainImageCount: ptr uint32, + pSwapchainImages: ptr VkImage, + ): VkResult {.stdcall.} + vkAcquireNextImageKHR*: proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + timeout: uint64, + semaphore: VkSemaphore, + fence: VkFence, + pImageIndex: ptr uint32, + ): VkResult {.stdcall.} + vkQueuePresentKHR*: + proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.} + vkGetDeviceGroupPresentCapabilitiesKHR*: proc( + device: VkDevice, + pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR, + ): VkResult {.stdcall.} + vkGetDeviceGroupSurfacePresentModesKHR*: proc( + device: VkDevice, + surface: VkSurfaceKHR, + pModes: ptr VkDeviceGroupPresentModeFlagsKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDevicePresentRectanglesKHR*: proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pRectCount: ptr uint32, + pRects: ptr VkRect2D, + ): VkResult {.stdcall.} + vkAcquireNextImage2KHR*: proc( + device: VkDevice, + pAcquireInfo: ptr VkAcquireNextImageInfoKHR, + pImageIndex: ptr uint32, + ): VkResult {.stdcall.} proc loadVK_KHR_swapchain*(instance: VkInstance) = loadVK_KHR_surface(instance) - vkCreateSwapchainKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchain: ptr VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR")) - vkDestroySwapchainKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR")) - vkGetSwapchainImagesKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pSwapchainImageCount: ptr uint32, pSwapchainImages: ptr VkImage): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR")) - vkAcquireNextImageKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, timeout: uint64, semaphore: VkSemaphore, fence: VkFence, pImageIndex: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR")) - vkQueuePresentKHR = cast[proc(queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueuePresentKHR")) - vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc(device: VkDevice, pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupPresentCapabilitiesKHR")) - vkGetDeviceGroupSurfacePresentModesKHR = cast[proc(device: VkDevice, surface: VkSurfaceKHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModesKHR")) - vkGetPhysicalDevicePresentRectanglesKHR = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pRectCount: ptr uint32, pRects: ptr VkRect2D): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDevicePresentRectanglesKHR")) - vkAcquireNextImage2KHR = cast[proc(device: VkDevice, pAcquireInfo: ptr VkAcquireNextImageInfoKHR, pImageIndex: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR")) + vkCreateSwapchainKHR = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkSwapchainCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSwapchain: ptr VkSwapchainKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSwapchainKHR")) + vkDestroySwapchainKHR = cast[proc( + device: VkDevice, swapchain: VkSwapchainKHR, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroySwapchainKHR")) + vkGetSwapchainImagesKHR = cast[proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + pSwapchainImageCount: ptr uint32, + pSwapchainImages: ptr VkImage, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainImagesKHR")) + vkAcquireNextImageKHR = cast[proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + timeout: uint64, + semaphore: VkSemaphore, + fence: VkFence, + pImageIndex: ptr uint32, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImageKHR")) + vkQueuePresentKHR = cast[proc( + queue: VkQueue, pPresentInfo: ptr VkPresentInfoKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkQueuePresentKHR")) + vkGetDeviceGroupPresentCapabilitiesKHR = cast[proc( + device: VkDevice, + pDeviceGroupPresentCapabilities: ptr VkDeviceGroupPresentCapabilitiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceGroupPresentCapabilitiesKHR" + )) + vkGetDeviceGroupSurfacePresentModesKHR = cast[proc( + device: VkDevice, + surface: VkSurfaceKHR, + pModes: ptr VkDeviceGroupPresentModeFlagsKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceGroupSurfacePresentModesKHR" + )) + vkGetPhysicalDevicePresentRectanglesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pRectCount: ptr uint32, + pRects: ptr VkRect2D, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDevicePresentRectanglesKHR" + )) + vkAcquireNextImage2KHR = cast[proc( + device: VkDevice, + pAcquireInfo: ptr VkAcquireNextImageInfoKHR, + pImageIndex: ptr uint32, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireNextImage2KHR")) proc loadVK_EXT_fragment_density_map2*(instance: VkInstance) = loadVK_EXT_fragment_density_map(instance) # extension VK_NV_fragment_shading_rate_enums -var - vkCmdSetFragmentShadingRateEnumNV*: proc(commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.} +var vkCmdSetFragmentShadingRateEnumNV*: proc( + commandBuffer: VkCommandBuffer, + shadingRate: VkFragmentShadingRateNV, + combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR], +): void {.stdcall.} proc loadVK_NV_fragment_shading_rate_enums*(instance: VkInstance) = loadVK_KHR_fragment_shading_rate(instance) - vkCmdSetFragmentShadingRateEnumNV = cast[proc(commandBuffer: VkCommandBuffer, shadingRate: VkFragmentShadingRateNV, combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR]): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetFragmentShadingRateEnumNV")) + vkCmdSetFragmentShadingRateEnumNV = cast[proc( + commandBuffer: VkCommandBuffer, + shadingRate: VkFragmentShadingRateNV, + combinerOps: array[2, VkFragmentShadingRateCombinerOpKHR], + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetFragmentShadingRateEnumNV" + )) # extension VK_AMD_display_native_hdr -var - vkSetLocalDimmingAMD*: proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.} +var vkSetLocalDimmingAMD*: proc( + device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32 +): void {.stdcall.} proc loadVK_AMD_display_native_hdr*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_KHR_get_surface_capabilities2(instance) loadVK_KHR_swapchain(instance) - vkSetLocalDimmingAMD = cast[proc(device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetLocalDimmingAMD")) + vkSetLocalDimmingAMD = cast[proc( + device: VkDevice, swapChain: VkSwapchainKHR, localDimmingEnable: VkBool32 + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetLocalDimmingAMD")) proc loadVK_NV_present_barrier*(instance: VkInstance) = loadVK_VERSION_1_1(instance) @@ -11468,52 +17271,254 @@ # extension VK_KHR_acceleration_structure var - vkCreateAccelerationStructureKHR*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureKHR): VkResult {.stdcall.} - vkDestroyAccelerationStructureKHR*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCmdBuildAccelerationStructuresKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): void {.stdcall.} - vkCmdBuildAccelerationStructuresIndirectKHR*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ptr VkDeviceAddress, pIndirectStrides: ptr uint32, ppMaxPrimitiveCounts: ptr ptr uint32): void {.stdcall.} - vkBuildAccelerationStructuresKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): VkResult {.stdcall.} - vkCopyAccelerationStructureKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureInfoKHR): VkResult {.stdcall.} - vkCopyAccelerationStructureToMemoryKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): VkResult {.stdcall.} - vkCopyMemoryToAccelerationStructureKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): VkResult {.stdcall.} - vkWriteAccelerationStructuresPropertiesKHR*: proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.} - vkCmdCopyAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR): void {.stdcall.} - vkCmdCopyAccelerationStructureToMemoryKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): void {.stdcall.} - vkCmdCopyMemoryToAccelerationStructureKHR*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): void {.stdcall.} - vkGetAccelerationStructureDeviceAddressKHR*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR): VkDeviceAddress {.stdcall.} - vkCmdWriteAccelerationStructuresPropertiesKHR*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} - vkGetDeviceAccelerationStructureCompatibilityKHR*: proc(device: VkDevice, pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.} - vkGetAccelerationStructureBuildSizesKHR*: proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ptr uint32, pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR): void {.stdcall.} + vkCreateAccelerationStructureKHR*: proc( + device: VkDevice, + pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pAccelerationStructure: ptr VkAccelerationStructureKHR, + ): VkResult {.stdcall.} + vkDestroyAccelerationStructureKHR*: proc( + device: VkDevice, + accelerationStructure: VkAccelerationStructureKHR, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkCmdBuildAccelerationStructuresKHR*: proc( + commandBuffer: VkCommandBuffer, + infoCount: uint32, + pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, + ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR, + ): void {.stdcall.} + vkCmdBuildAccelerationStructuresIndirectKHR*: proc( + commandBuffer: VkCommandBuffer, + infoCount: uint32, + pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, + pIndirectDeviceAddresses: ptr VkDeviceAddress, + pIndirectStrides: ptr uint32, + ppMaxPrimitiveCounts: ptr ptr uint32, + ): void {.stdcall.} + vkBuildAccelerationStructuresKHR*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + infoCount: uint32, + pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, + ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR, + ): VkResult {.stdcall.} + vkCopyAccelerationStructureKHR*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyAccelerationStructureInfoKHR, + ): VkResult {.stdcall.} + vkCopyAccelerationStructureToMemoryKHR*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR, + ): VkResult {.stdcall.} + vkCopyMemoryToAccelerationStructureKHR*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR, + ): VkResult {.stdcall.} + vkWriteAccelerationStructuresPropertiesKHR*: proc( + device: VkDevice, + accelerationStructureCount: uint32, + pAccelerationStructures: ptr VkAccelerationStructureKHR, + queryType: VkQueryType, + dataSize: csize_t, + pData: pointer, + stride: csize_t, + ): VkResult {.stdcall.} + vkCmdCopyAccelerationStructureKHR*: proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR + ): void {.stdcall.} + vkCmdCopyAccelerationStructureToMemoryKHR*: proc( + commandBuffer: VkCommandBuffer, + pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR, + ): void {.stdcall.} + vkCmdCopyMemoryToAccelerationStructureKHR*: proc( + commandBuffer: VkCommandBuffer, + pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR, + ): void {.stdcall.} + vkGetAccelerationStructureDeviceAddressKHR*: proc( + device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR + ): VkDeviceAddress {.stdcall.} + vkCmdWriteAccelerationStructuresPropertiesKHR*: proc( + commandBuffer: VkCommandBuffer, + accelerationStructureCount: uint32, + pAccelerationStructures: ptr VkAccelerationStructureKHR, + queryType: VkQueryType, + queryPool: VkQueryPool, + firstQuery: uint32, + ): void {.stdcall.} + vkGetDeviceAccelerationStructureCompatibilityKHR*: proc( + device: VkDevice, + pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, + pCompatibility: ptr VkAccelerationStructureCompatibilityKHR, + ): void {.stdcall.} + vkGetAccelerationStructureBuildSizesKHR*: proc( + device: VkDevice, + buildType: VkAccelerationStructureBuildTypeKHR, + pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, + pMaxPrimitiveCounts: ptr uint32, + pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR, + ): void {.stdcall.} proc loadVK_KHR_acceleration_structure*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_2(instance) loadVK_VERSION_1_2(instance) loadVK_KHR_deferred_host_operations(instance) - vkCreateAccelerationStructureKHR = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureKHR")) - vkDestroyAccelerationStructureKHR = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureKHR, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureKHR")) - vkCmdBuildAccelerationStructuresKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresKHR")) - vkCmdBuildAccelerationStructuresIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, pIndirectDeviceAddresses: ptr VkDeviceAddress, pIndirectStrides: ptr uint32, ppMaxPrimitiveCounts: ptr ptr uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructuresIndirectKHR")) - vkBuildAccelerationStructuresKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildAccelerationStructuresKHR")) - vkCopyAccelerationStructureKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureKHR")) - vkCopyAccelerationStructureToMemoryKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyAccelerationStructureToMemoryKHR")) - vkCopyMemoryToAccelerationStructureKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToAccelerationStructureKHR")) - vkWriteAccelerationStructuresPropertiesKHR = cast[proc(device: VkDevice, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWriteAccelerationStructuresPropertiesKHR")) - vkCmdCopyAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureKHR")) - vkCmdCopyAccelerationStructureToMemoryKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureToMemoryKHR")) - vkCmdCopyMemoryToAccelerationStructureKHR = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToAccelerationStructureKHR")) - vkGetAccelerationStructureDeviceAddressKHR = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureDeviceAddressKHR")) - vkCmdWriteAccelerationStructuresPropertiesKHR = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureKHR, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesKHR")) - vkGetDeviceAccelerationStructureCompatibilityKHR = cast[proc(device: VkDevice, pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceAccelerationStructureCompatibilityKHR")) - vkGetAccelerationStructureBuildSizesKHR = cast[proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, pMaxPrimitiveCounts: ptr uint32, pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureBuildSizesKHR")) + vkCreateAccelerationStructureKHR = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkAccelerationStructureCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pAccelerationStructure: ptr VkAccelerationStructureKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateAccelerationStructureKHR" + )) + vkDestroyAccelerationStructureKHR = cast[proc( + device: VkDevice, + accelerationStructure: VkAccelerationStructureKHR, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroyAccelerationStructureKHR" + )) + vkCmdBuildAccelerationStructuresKHR = cast[proc( + commandBuffer: VkCommandBuffer, + infoCount: uint32, + pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, + ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdBuildAccelerationStructuresKHR" + )) + vkCmdBuildAccelerationStructuresIndirectKHR = cast[proc( + commandBuffer: VkCommandBuffer, + infoCount: uint32, + pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, + pIndirectDeviceAddresses: ptr VkDeviceAddress, + pIndirectStrides: ptr uint32, + ppMaxPrimitiveCounts: ptr ptr uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdBuildAccelerationStructuresIndirectKHR" + )) + vkBuildAccelerationStructuresKHR = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + infoCount: uint32, + pInfos: ptr VkAccelerationStructureBuildGeometryInfoKHR, + ppBuildRangeInfos: ptr ptr VkAccelerationStructureBuildRangeInfoKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkBuildAccelerationStructuresKHR" + )) + vkCopyAccelerationStructureKHR = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyAccelerationStructureInfoKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCopyAccelerationStructureKHR" + )) + vkCopyAccelerationStructureToMemoryKHR = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCopyAccelerationStructureToMemoryKHR" + )) + vkCopyMemoryToAccelerationStructureKHR = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCopyMemoryToAccelerationStructureKHR" + )) + vkWriteAccelerationStructuresPropertiesKHR = cast[proc( + device: VkDevice, + accelerationStructureCount: uint32, + pAccelerationStructures: ptr VkAccelerationStructureKHR, + queryType: VkQueryType, + dataSize: csize_t, + pData: pointer, + stride: csize_t, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkWriteAccelerationStructuresPropertiesKHR" + )) + vkCmdCopyAccelerationStructureKHR = cast[proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyAccelerationStructureInfoKHR + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdCopyAccelerationStructureKHR" + )) + vkCmdCopyAccelerationStructureToMemoryKHR = cast[proc( + commandBuffer: VkCommandBuffer, + pInfo: ptr VkCopyAccelerationStructureToMemoryInfoKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdCopyAccelerationStructureToMemoryKHR" + )) + vkCmdCopyMemoryToAccelerationStructureKHR = cast[proc( + commandBuffer: VkCommandBuffer, + pInfo: ptr VkCopyMemoryToAccelerationStructureInfoKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdCopyMemoryToAccelerationStructureKHR" + )) + vkGetAccelerationStructureDeviceAddressKHR = cast[proc( + device: VkDevice, pInfo: ptr VkAccelerationStructureDeviceAddressInfoKHR + ): VkDeviceAddress {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetAccelerationStructureDeviceAddressKHR" + )) + vkCmdWriteAccelerationStructuresPropertiesKHR = cast[proc( + commandBuffer: VkCommandBuffer, + accelerationStructureCount: uint32, + pAccelerationStructures: ptr VkAccelerationStructureKHR, + queryType: VkQueryType, + queryPool: VkQueryPool, + firstQuery: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" + )) + vkGetDeviceAccelerationStructureCompatibilityKHR = cast[proc( + device: VkDevice, + pVersionInfo: ptr VkAccelerationStructureVersionInfoKHR, + pCompatibility: ptr VkAccelerationStructureCompatibilityKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" + )) + vkGetAccelerationStructureBuildSizesKHR = cast[proc( + device: VkDevice, + buildType: VkAccelerationStructureBuildTypeKHR, + pBuildInfo: ptr VkAccelerationStructureBuildGeometryInfoKHR, + pMaxPrimitiveCounts: ptr uint32, + pSizeInfo: ptr VkAccelerationStructureBuildSizesInfoKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetAccelerationStructureBuildSizesKHR" + )) # extension VK_GOOGLE_display_timing var - vkGetRefreshCycleDurationGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE): VkResult {.stdcall.} - vkGetPastPresentationTimingGOOGLE*: proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32, pPresentationTimings: ptr VkPastPresentationTimingGOOGLE): VkResult {.stdcall.} + vkGetRefreshCycleDurationGOOGLE*: proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE, + ): VkResult {.stdcall.} + vkGetPastPresentationTimingGOOGLE*: proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + pPresentationTimingCount: ptr uint32, + pPresentationTimings: ptr VkPastPresentationTimingGOOGLE, + ): VkResult {.stdcall.} proc loadVK_GOOGLE_display_timing*(instance: VkInstance) = loadVK_KHR_swapchain(instance) - vkGetRefreshCycleDurationGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRefreshCycleDurationGOOGLE")) - vkGetPastPresentationTimingGOOGLE = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, pPresentationTimingCount: ptr uint32, pPresentationTimings: ptr VkPastPresentationTimingGOOGLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPastPresentationTimingGOOGLE")) + vkGetRefreshCycleDurationGOOGLE = cast[proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + pDisplayTimingProperties: ptr VkRefreshCycleDurationGOOGLE, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetRefreshCycleDurationGOOGLE" + )) + vkGetPastPresentationTimingGOOGLE = cast[proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + pPresentationTimingCount: ptr uint32, + pPresentationTimings: ptr VkPastPresentationTimingGOOGLE, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPastPresentationTimingGOOGLE" + )) proc loadVK_QCOM_render_pass_transform*(instance: VkInstance) = loadVK_KHR_swapchain(instance) @@ -11527,38 +17532,125 @@ # extension VK_KHR_display var - vkGetPhysicalDeviceDisplayPropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPropertiesKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceDisplayPlanePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlanePropertiesKHR): VkResult {.stdcall.} - vkGetDisplayPlaneSupportedDisplaysKHR*: proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32, pDisplays: ptr VkDisplayKHR): VkResult {.stdcall.} - vkGetDisplayModePropertiesKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModePropertiesKHR): VkResult {.stdcall.} - vkCreateDisplayModeKHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pMode: ptr VkDisplayModeKHR): VkResult {.stdcall.} - vkGetDisplayPlaneCapabilitiesKHR*: proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR): VkResult {.stdcall.} - vkCreateDisplayPlaneSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} + vkGetPhysicalDeviceDisplayPropertiesKHR*: proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayPropertiesKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceDisplayPlanePropertiesKHR*: proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayPlanePropertiesKHR, + ): VkResult {.stdcall.} + vkGetDisplayPlaneSupportedDisplaysKHR*: proc( + physicalDevice: VkPhysicalDevice, + planeIndex: uint32, + pDisplayCount: ptr uint32, + pDisplays: ptr VkDisplayKHR, + ): VkResult {.stdcall.} + vkGetDisplayModePropertiesKHR*: proc( + physicalDevice: VkPhysicalDevice, + display: VkDisplayKHR, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayModePropertiesKHR, + ): VkResult {.stdcall.} + vkCreateDisplayModeKHR*: proc( + physicalDevice: VkPhysicalDevice, + display: VkDisplayKHR, + pCreateInfo: ptr VkDisplayModeCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pMode: ptr VkDisplayModeKHR, + ): VkResult {.stdcall.} + vkGetDisplayPlaneCapabilitiesKHR*: proc( + physicalDevice: VkPhysicalDevice, + mode: VkDisplayModeKHR, + planeIndex: uint32, + pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR, + ): VkResult {.stdcall.} + vkCreateDisplayPlaneSurfaceKHR*: proc( + instance: VkInstance, + pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.} proc loadVK_KHR_display*(instance: VkInstance) = loadVK_KHR_surface(instance) - vkGetPhysicalDeviceDisplayPropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR")) - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlanePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")) - vkGetDisplayPlaneSupportedDisplaysKHR = cast[proc(physicalDevice: VkPhysicalDevice, planeIndex: uint32, pDisplayCount: ptr uint32, pDisplays: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneSupportedDisplaysKHR")) - vkGetDisplayModePropertiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayModePropertiesKHR")) - vkCreateDisplayModeKHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: ptr VkDisplayModeCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pMode: ptr VkDisplayModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR")) - vkGetDisplayPlaneCapabilitiesKHR = cast[proc(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: uint32, pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilitiesKHR")) - vkCreateDisplayPlaneSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayPlaneSurfaceKHR")) + vkGetPhysicalDeviceDisplayPropertiesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayPropertiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" + )) + vkGetPhysicalDeviceDisplayPlanePropertiesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayPlanePropertiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" + )) + vkGetDisplayPlaneSupportedDisplaysKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + planeIndex: uint32, + pDisplayCount: ptr uint32, + pDisplays: ptr VkDisplayKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDisplayPlaneSupportedDisplaysKHR" + )) + vkGetDisplayModePropertiesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + display: VkDisplayKHR, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayModePropertiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDisplayModePropertiesKHR" + )) + vkCreateDisplayModeKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + display: VkDisplayKHR, + pCreateInfo: ptr VkDisplayModeCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pMode: ptr VkDisplayModeKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR")) + vkGetDisplayPlaneCapabilitiesKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + mode: VkDisplayModeKHR, + planeIndex: uint32, + pCapabilities: ptr VkDisplayPlaneCapabilitiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDisplayPlaneCapabilitiesKHR" + )) + vkCreateDisplayPlaneSurfaceKHR = cast[proc( + instance: VkInstance, + pCreateInfo: ptr VkDisplaySurfaceCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateDisplayPlaneSurfaceKHR" + )) # extension VK_EXT_swapchain_maintenance1 -var - vkReleaseSwapchainImagesEXT*: proc(device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT): VkResult {.stdcall.} +var vkReleaseSwapchainImagesEXT*: proc( + device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT +): VkResult {.stdcall.} proc loadVK_EXT_swapchain_maintenance1*(instance: VkInstance) = loadVK_KHR_swapchain(instance) loadVK_EXT_surface_maintenance1(instance) loadVK_VERSION_1_1(instance) - vkReleaseSwapchainImagesEXT = cast[proc(device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseSwapchainImagesEXT")) + vkReleaseSwapchainImagesEXT = cast[proc( + device: VkDevice, pReleaseInfo: ptr VkReleaseSwapchainImagesInfoEXT + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkReleaseSwapchainImagesEXT" + )) # extension VK_EXT_direct_mode_display -var - vkReleaseDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.} +var vkReleaseDisplayEXT*: + proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.} proc loadVK_EXT_direct_mode_display*(instance: VkInstance) = loadVK_KHR_display(instance) - vkReleaseDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT")) + vkReleaseDisplayEXT = cast[proc( + physicalDevice: VkPhysicalDevice, display: VkDisplayKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT")) proc loadVK_KHR_swapchain_mutable_format*(instance: VkInstance) = loadVK_KHR_swapchain(instance) @@ -11570,150 +17662,506 @@ # extension VK_EXT_opacity_micromap var - vkCreateMicromapEXT*: proc(device: VkDevice, pCreateInfo: ptr VkMicromapCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMicromap: ptr VkMicromapEXT): VkResult {.stdcall.} - vkDestroyMicromapEXT*: proc(device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkCmdBuildMicromapsEXT*: proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): void {.stdcall.} - vkBuildMicromapsEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): VkResult {.stdcall.} - vkCopyMicromapEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapInfoEXT): VkResult {.stdcall.} - vkCopyMicromapToMemoryEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): VkResult {.stdcall.} - vkCopyMemoryToMicromapEXT*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): VkResult {.stdcall.} - vkWriteMicromapsPropertiesEXT*: proc(device: VkDevice, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.} - vkCmdCopyMicromapEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT): void {.stdcall.} - vkCmdCopyMicromapToMemoryEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): void {.stdcall.} - vkCmdCopyMemoryToMicromapEXT*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): void {.stdcall.} - vkCmdWriteMicromapsPropertiesEXT*: proc(commandBuffer: VkCommandBuffer, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} - vkGetDeviceMicromapCompatibilityEXT*: proc(device: VkDevice, pVersionInfo: ptr VkMicromapVersionInfoEXT, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.} - vkGetMicromapBuildSizesEXT*: proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkMicromapBuildInfoEXT, pSizeInfo: ptr VkMicromapBuildSizesInfoEXT): void {.stdcall.} + vkCreateMicromapEXT*: proc( + device: VkDevice, + pCreateInfo: ptr VkMicromapCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pMicromap: ptr VkMicromapEXT, + ): VkResult {.stdcall.} + vkDestroyMicromapEXT*: proc( + device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.} + vkCmdBuildMicromapsEXT*: proc( + commandBuffer: VkCommandBuffer, + infoCount: uint32, + pInfos: ptr VkMicromapBuildInfoEXT, + ): void {.stdcall.} + vkBuildMicromapsEXT*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + infoCount: uint32, + pInfos: ptr VkMicromapBuildInfoEXT, + ): VkResult {.stdcall.} + vkCopyMicromapEXT*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMicromapInfoEXT, + ): VkResult {.stdcall.} + vkCopyMicromapToMemoryEXT*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMicromapToMemoryInfoEXT, + ): VkResult {.stdcall.} + vkCopyMemoryToMicromapEXT*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMemoryToMicromapInfoEXT, + ): VkResult {.stdcall.} + vkWriteMicromapsPropertiesEXT*: proc( + device: VkDevice, + micromapCount: uint32, + pMicromaps: ptr VkMicromapEXT, + queryType: VkQueryType, + dataSize: csize_t, + pData: pointer, + stride: csize_t, + ): VkResult {.stdcall.} + vkCmdCopyMicromapEXT*: proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT + ): void {.stdcall.} + vkCmdCopyMicromapToMemoryEXT*: proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT + ): void {.stdcall.} + vkCmdCopyMemoryToMicromapEXT*: proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT + ): void {.stdcall.} + vkCmdWriteMicromapsPropertiesEXT*: proc( + commandBuffer: VkCommandBuffer, + micromapCount: uint32, + pMicromaps: ptr VkMicromapEXT, + queryType: VkQueryType, + queryPool: VkQueryPool, + firstQuery: uint32, + ): void {.stdcall.} + vkGetDeviceMicromapCompatibilityEXT*: proc( + device: VkDevice, + pVersionInfo: ptr VkMicromapVersionInfoEXT, + pCompatibility: ptr VkAccelerationStructureCompatibilityKHR, + ): void {.stdcall.} + vkGetMicromapBuildSizesEXT*: proc( + device: VkDevice, + buildType: VkAccelerationStructureBuildTypeKHR, + pBuildInfo: ptr VkMicromapBuildInfoEXT, + pSizeInfo: ptr VkMicromapBuildSizesInfoEXT, + ): void {.stdcall.} proc loadVK_EXT_opacity_micromap*(instance: VkInstance) = loadVK_KHR_acceleration_structure(instance) loadVK_VERSION_1_3(instance) - vkCreateMicromapEXT = cast[proc(device: VkDevice, pCreateInfo: ptr VkMicromapCreateInfoEXT, pAllocator: ptr VkAllocationCallbacks, pMicromap: ptr VkMicromapEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateMicromapEXT")) - vkDestroyMicromapEXT = cast[proc(device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyMicromapEXT")) - vkCmdBuildMicromapsEXT = cast[proc(commandBuffer: VkCommandBuffer, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildMicromapsEXT")) - vkBuildMicromapsEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, infoCount: uint32, pInfos: ptr VkMicromapBuildInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildMicromapsEXT")) - vkCopyMicromapEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapEXT")) - vkCopyMicromapToMemoryEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapToMemoryEXT")) - vkCopyMemoryToMicromapEXT = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToMicromapEXT")) - vkWriteMicromapsPropertiesEXT = cast[proc(device: VkDevice, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, dataSize: csize_t, pData: pointer, stride: csize_t): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWriteMicromapsPropertiesEXT")) - vkCmdCopyMicromapEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapEXT")) - vkCmdCopyMicromapToMemoryEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapToMemoryEXT")) - vkCmdCopyMemoryToMicromapEXT = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToMicromapEXT")) - vkCmdWriteMicromapsPropertiesEXT = cast[proc(commandBuffer: VkCommandBuffer, micromapCount: uint32, pMicromaps: ptr VkMicromapEXT, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteMicromapsPropertiesEXT")) - vkGetDeviceMicromapCompatibilityEXT = cast[proc(device: VkDevice, pVersionInfo: ptr VkMicromapVersionInfoEXT, pCompatibility: ptr VkAccelerationStructureCompatibilityKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceMicromapCompatibilityEXT")) - vkGetMicromapBuildSizesEXT = cast[proc(device: VkDevice, buildType: VkAccelerationStructureBuildTypeKHR, pBuildInfo: ptr VkMicromapBuildInfoEXT, pSizeInfo: ptr VkMicromapBuildSizesInfoEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMicromapBuildSizesEXT")) + vkCreateMicromapEXT = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkMicromapCreateInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pMicromap: ptr VkMicromapEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateMicromapEXT")) + vkDestroyMicromapEXT = cast[proc( + device: VkDevice, micromap: VkMicromapEXT, pAllocator: ptr VkAllocationCallbacks + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyMicromapEXT")) + vkCmdBuildMicromapsEXT = cast[proc( + commandBuffer: VkCommandBuffer, + infoCount: uint32, + pInfos: ptr VkMicromapBuildInfoEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildMicromapsEXT")) + vkBuildMicromapsEXT = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + infoCount: uint32, + pInfos: ptr VkMicromapBuildInfoEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBuildMicromapsEXT")) + vkCopyMicromapEXT = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMicromapInfoEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapEXT")) + vkCopyMicromapToMemoryEXT = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMicromapToMemoryInfoEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMicromapToMemoryEXT")) + vkCopyMemoryToMicromapEXT = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pInfo: ptr VkCopyMemoryToMicromapInfoEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCopyMemoryToMicromapEXT")) + vkWriteMicromapsPropertiesEXT = cast[proc( + device: VkDevice, + micromapCount: uint32, + pMicromaps: ptr VkMicromapEXT, + queryType: VkQueryType, + dataSize: csize_t, + pData: pointer, + stride: csize_t, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkWriteMicromapsPropertiesEXT" + )) + vkCmdCopyMicromapEXT = cast[proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapInfoEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapEXT")) + vkCmdCopyMicromapToMemoryEXT = cast[proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMicromapToMemoryInfoEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMicromapToMemoryEXT")) + vkCmdCopyMemoryToMicromapEXT = cast[proc( + commandBuffer: VkCommandBuffer, pInfo: ptr VkCopyMemoryToMicromapInfoEXT + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyMemoryToMicromapEXT")) + vkCmdWriteMicromapsPropertiesEXT = cast[proc( + commandBuffer: VkCommandBuffer, + micromapCount: uint32, + pMicromaps: ptr VkMicromapEXT, + queryType: VkQueryType, + queryPool: VkQueryPool, + firstQuery: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdWriteMicromapsPropertiesEXT" + )) + vkGetDeviceMicromapCompatibilityEXT = cast[proc( + device: VkDevice, + pVersionInfo: ptr VkMicromapVersionInfoEXT, + pCompatibility: ptr VkAccelerationStructureCompatibilityKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceMicromapCompatibilityEXT" + )) + vkGetMicromapBuildSizesEXT = cast[proc( + device: VkDevice, + buildType: VkAccelerationStructureBuildTypeKHR, + pBuildInfo: ptr VkMicromapBuildInfoEXT, + pSizeInfo: ptr VkMicromapBuildSizesInfoEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMicromapBuildSizesEXT")) proc loadVK_KHR_incremental_present*(instance: VkInstance) = loadVK_KHR_swapchain(instance) # extension VK_KHR_shared_presentable_image -var - vkGetSwapchainStatusKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} +var vkGetSwapchainStatusKHR*: + proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} proc loadVK_KHR_shared_presentable_image*(instance: VkInstance) = loadVK_KHR_swapchain(instance) loadVK_VERSION_1_1(instance) loadVK_KHR_get_surface_capabilities2(instance) - vkGetSwapchainStatusKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainStatusKHR")) + vkGetSwapchainStatusKHR = cast[proc( + device: VkDevice, swapchain: VkSwapchainKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainStatusKHR")) # extension VK_EXT_hdr_metadata -var - vkSetHdrMetadataEXT*: proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR, pMetadata: ptr VkHdrMetadataEXT): void {.stdcall.} +var vkSetHdrMetadataEXT*: proc( + device: VkDevice, + swapchainCount: uint32, + pSwapchains: ptr VkSwapchainKHR, + pMetadata: ptr VkHdrMetadataEXT, +): void {.stdcall.} proc loadVK_EXT_hdr_metadata*(instance: VkInstance) = loadVK_KHR_swapchain(instance) - vkSetHdrMetadataEXT = cast[proc(device: VkDevice, swapchainCount: uint32, pSwapchains: ptr VkSwapchainKHR, pMetadata: ptr VkHdrMetadataEXT): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetHdrMetadataEXT")) + vkSetHdrMetadataEXT = cast[proc( + device: VkDevice, + swapchainCount: uint32, + pSwapchains: ptr VkSwapchainKHR, + pMetadata: ptr VkHdrMetadataEXT, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkSetHdrMetadataEXT")) proc loadVK_KHR_present_id*(instance: VkInstance) = loadVK_KHR_swapchain(instance) loadVK_VERSION_1_1(instance) # extension VK_KHR_ray_tracing_maintenance1 -var - vkCmdTraceRaysIndirect2KHR*: proc(commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.} +var vkCmdTraceRaysIndirect2KHR*: proc( + commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress +): void {.stdcall.} proc loadVK_KHR_ray_tracing_maintenance1*(instance: VkInstance) = loadVK_KHR_acceleration_structure(instance) - vkCmdTraceRaysIndirect2KHR = cast[proc(commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirect2KHR")) + vkCmdTraceRaysIndirect2KHR = cast[proc( + commandBuffer: VkCommandBuffer, indirectDeviceAddress: VkDeviceAddress + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirect2KHR")) # extension VK_KHR_ray_tracing_pipeline var - vkCmdTraceRaysKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, width: uint32, height: uint32, depth: uint32): void {.stdcall.} - vkCreateRayTracingPipelinesKHR*: proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkGetRayTracingShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkCmdTraceRaysIndirectKHR*: proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.} - vkGetRayTracingShaderGroupStackSizeKHR*: proc(device: VkDevice, pipeline: VkPipeline, group: uint32, groupShader: VkShaderGroupShaderKHR): VkDeviceSize {.stdcall.} - vkCmdSetRayTracingPipelineStackSizeKHR*: proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.} + vkCmdTraceRaysKHR*: proc( + commandBuffer: VkCommandBuffer, + pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + width: uint32, + height: uint32, + depth: uint32, + ): void {.stdcall.} + vkCreateRayTracingPipelinesKHR*: proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.} + vkGetRayTracingShaderGroupHandlesKHR*: proc( + device: VkDevice, + pipeline: VkPipeline, + firstGroup: uint32, + groupCount: uint32, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.} + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR*: proc( + device: VkDevice, + pipeline: VkPipeline, + firstGroup: uint32, + groupCount: uint32, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.} + vkCmdTraceRaysIndirectKHR*: proc( + commandBuffer: VkCommandBuffer, + pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + indirectDeviceAddress: VkDeviceAddress, + ): void {.stdcall.} + vkGetRayTracingShaderGroupStackSizeKHR*: proc( + device: VkDevice, + pipeline: VkPipeline, + group: uint32, + groupShader: VkShaderGroupShaderKHR, + ): VkDeviceSize {.stdcall.} + vkCmdSetRayTracingPipelineStackSizeKHR*: + proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.} proc loadVK_KHR_ray_tracing_pipeline*(instance: VkInstance) = loadVK_VERSION_1_2(instance) loadVK_KHR_acceleration_structure(instance) - vkCmdTraceRaysKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysKHR")) - vkCreateRayTracingPipelinesKHR = cast[proc(device: VkDevice, deferredOperation: VkDeferredOperationKHR, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesKHR")) - vkGetRayTracingShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupHandlesKHR")) - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")) - vkCmdTraceRaysIndirectKHR = cast[proc(commandBuffer: VkCommandBuffer, pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, indirectDeviceAddress: VkDeviceAddress): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirectKHR")) - vkGetRayTracingShaderGroupStackSizeKHR = cast[proc(device: VkDevice, pipeline: VkPipeline, group: uint32, groupShader: VkShaderGroupShaderKHR): VkDeviceSize {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetRayTracingShaderGroupStackSizeKHR")) - vkCmdSetRayTracingPipelineStackSizeKHR = cast[proc(commandBuffer: VkCommandBuffer, pipelineStackSize: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdSetRayTracingPipelineStackSizeKHR")) + vkCmdTraceRaysKHR = cast[proc( + commandBuffer: VkCommandBuffer, + pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + width: uint32, + height: uint32, + depth: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysKHR")) + vkCreateRayTracingPipelinesKHR = cast[proc( + device: VkDevice, + deferredOperation: VkDeferredOperationKHR, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkRayTracingPipelineCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateRayTracingPipelinesKHR" + )) + vkGetRayTracingShaderGroupHandlesKHR = cast[proc( + device: VkDevice, + pipeline: VkPipeline, + firstGroup: uint32, + groupCount: uint32, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetRayTracingShaderGroupHandlesKHR" + )) + vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = cast[proc( + device: VkDevice, + pipeline: VkPipeline, + firstGroup: uint32, + groupCount: uint32, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" + )) + vkCmdTraceRaysIndirectKHR = cast[proc( + commandBuffer: VkCommandBuffer, + pRaygenShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pMissShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pHitShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + pCallableShaderBindingTable: ptr VkStridedDeviceAddressRegionKHR, + indirectDeviceAddress: VkDeviceAddress, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysIndirectKHR")) + vkGetRayTracingShaderGroupStackSizeKHR = cast[proc( + device: VkDevice, + pipeline: VkPipeline, + group: uint32, + groupShader: VkShaderGroupShaderKHR, + ): VkDeviceSize {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetRayTracingShaderGroupStackSizeKHR" + )) + vkCmdSetRayTracingPipelineStackSizeKHR = cast[proc( + commandBuffer: VkCommandBuffer, pipelineStackSize: uint32 + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdSetRayTracingPipelineStackSizeKHR" + )) # extension VK_HUAWEI_invocation_mask -var - vkCmdBindInvocationMaskHUAWEI*: proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.} +var vkCmdBindInvocationMaskHUAWEI*: proc( + commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout +): void {.stdcall.} proc loadVK_HUAWEI_invocation_mask*(instance: VkInstance) = loadVK_KHR_ray_tracing_pipeline(instance) loadVK_VERSION_1_3(instance) - vkCmdBindInvocationMaskHUAWEI = cast[proc(commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindInvocationMaskHUAWEI")) + vkCmdBindInvocationMaskHUAWEI = cast[proc( + commandBuffer: VkCommandBuffer, imageView: VkImageView, imageLayout: VkImageLayout + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBindInvocationMaskHUAWEI")) # extension VK_EXT_display_surface_counter -var - vkGetPhysicalDeviceSurfaceCapabilities2EXT*: proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT): VkResult {.stdcall.} +var vkGetPhysicalDeviceSurfaceCapabilities2EXT*: proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT, +): VkResult {.stdcall.} proc loadVK_EXT_display_surface_counter*(instance: VkInstance) = loadVK_KHR_display(instance) - vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast[proc(physicalDevice: VkPhysicalDevice, surface: VkSurfaceKHR, pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT")) + vkGetPhysicalDeviceSurfaceCapabilities2EXT = cast[proc( + physicalDevice: VkPhysicalDevice, + surface: VkSurfaceKHR, + pSurfaceCapabilities: ptr VkSurfaceCapabilities2EXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" + )) # extension VK_KHR_get_display_properties2 var - vkGetPhysicalDeviceDisplayProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayProperties2KHR): VkResult {.stdcall.} - vkGetPhysicalDeviceDisplayPlaneProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlaneProperties2KHR): VkResult {.stdcall.} - vkGetDisplayModeProperties2KHR*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModeProperties2KHR): VkResult {.stdcall.} - vkGetDisplayPlaneCapabilities2KHR*: proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, pCapabilities: ptr VkDisplayPlaneCapabilities2KHR): VkResult {.stdcall.} + vkGetPhysicalDeviceDisplayProperties2KHR*: proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayProperties2KHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceDisplayPlaneProperties2KHR*: proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayPlaneProperties2KHR, + ): VkResult {.stdcall.} + vkGetDisplayModeProperties2KHR*: proc( + physicalDevice: VkPhysicalDevice, + display: VkDisplayKHR, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayModeProperties2KHR, + ): VkResult {.stdcall.} + vkGetDisplayPlaneCapabilities2KHR*: proc( + physicalDevice: VkPhysicalDevice, + pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, + pCapabilities: ptr VkDisplayPlaneCapabilities2KHR, + ): VkResult {.stdcall.} proc loadVK_KHR_get_display_properties2*(instance: VkInstance) = loadVK_KHR_display(instance) - vkGetPhysicalDeviceDisplayProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayProperties2KHR")) - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayPlaneProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")) - vkGetDisplayModeProperties2KHR = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: ptr uint32, pProperties: ptr VkDisplayModeProperties2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayModeProperties2KHR")) - vkGetDisplayPlaneCapabilities2KHR = cast[proc(physicalDevice: VkPhysicalDevice, pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, pCapabilities: ptr VkDisplayPlaneCapabilities2KHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilities2KHR")) + vkGetPhysicalDeviceDisplayProperties2KHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayProperties2KHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceDisplayProperties2KHR" + )) + vkGetPhysicalDeviceDisplayPlaneProperties2KHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayPlaneProperties2KHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" + )) + vkGetDisplayModeProperties2KHR = cast[proc( + physicalDevice: VkPhysicalDevice, + display: VkDisplayKHR, + pPropertyCount: ptr uint32, + pProperties: ptr VkDisplayModeProperties2KHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDisplayModeProperties2KHR" + )) + vkGetDisplayPlaneCapabilities2KHR = cast[proc( + physicalDevice: VkPhysicalDevice, + pDisplayPlaneInfo: ptr VkDisplayPlaneInfo2KHR, + pCapabilities: ptr VkDisplayPlaneCapabilities2KHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDisplayPlaneCapabilities2KHR" + )) proc loadVK_KHR_ray_query*(instance: VkInstance) = loadVK_VERSION_1_2(instance) loadVK_KHR_acceleration_structure(instance) # extension VK_KHR_display_swapchain -var - vkCreateSharedSwapchainsKHR*: proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchains: ptr VkSwapchainKHR): VkResult {.stdcall.} +var vkCreateSharedSwapchainsKHR*: proc( + device: VkDevice, + swapchainCount: uint32, + pCreateInfos: ptr VkSwapchainCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSwapchains: ptr VkSwapchainKHR, +): VkResult {.stdcall.} proc loadVK_KHR_display_swapchain*(instance: VkInstance) = loadVK_KHR_swapchain(instance) loadVK_KHR_display(instance) - vkCreateSharedSwapchainsKHR = cast[proc(device: VkDevice, swapchainCount: uint32, pCreateInfos: ptr VkSwapchainCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSwapchains: ptr VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateSharedSwapchainsKHR")) + vkCreateSharedSwapchainsKHR = cast[proc( + device: VkDevice, + swapchainCount: uint32, + pCreateInfos: ptr VkSwapchainCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSwapchains: ptr VkSwapchainKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateSharedSwapchainsKHR" + )) # extension VK_EXT_acquire_drm_display var - vkAcquireDrmDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR): VkResult {.stdcall.} - vkGetDrmDisplayEXT*: proc(physicalDevice: VkPhysicalDevice, drmFd: int32, connectorId: uint32, display: ptr VkDisplayKHR): VkResult {.stdcall.} + vkAcquireDrmDisplayEXT*: proc( + physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR + ): VkResult {.stdcall.} + vkGetDrmDisplayEXT*: proc( + physicalDevice: VkPhysicalDevice, + drmFd: int32, + connectorId: uint32, + display: ptr VkDisplayKHR, + ): VkResult {.stdcall.} proc loadVK_EXT_acquire_drm_display*(instance: VkInstance) = loadVK_EXT_direct_mode_display(instance) - vkAcquireDrmDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireDrmDisplayEXT")) - vkGetDrmDisplayEXT = cast[proc(physicalDevice: VkPhysicalDevice, drmFd: int32, connectorId: uint32, display: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDrmDisplayEXT")) + vkAcquireDrmDisplayEXT = cast[proc( + physicalDevice: VkPhysicalDevice, drmFd: int32, display: VkDisplayKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireDrmDisplayEXT")) + vkGetDrmDisplayEXT = cast[proc( + physicalDevice: VkPhysicalDevice, + drmFd: int32, + connectorId: uint32, + display: ptr VkDisplayKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDrmDisplayEXT")) # extension VK_EXT_display_control var - vkDisplayPowerControlEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT): VkResult {.stdcall.} - vkRegisterDeviceEventEXT*: proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} - vkRegisterDisplayEventEXT*: proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.} - vkGetSwapchainCounterEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64): VkResult {.stdcall.} + vkDisplayPowerControlEXT*: proc( + device: VkDevice, + display: VkDisplayKHR, + pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT, + ): VkResult {.stdcall.} + vkRegisterDeviceEventEXT*: proc( + device: VkDevice, + pDeviceEventInfo: ptr VkDeviceEventInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pFence: ptr VkFence, + ): VkResult {.stdcall.} + vkRegisterDisplayEventEXT*: proc( + device: VkDevice, + display: VkDisplayKHR, + pDisplayEventInfo: ptr VkDisplayEventInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pFence: ptr VkFence, + ): VkResult {.stdcall.} + vkGetSwapchainCounterEXT*: proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + counter: VkSurfaceCounterFlagBitsEXT, + pCounterValue: ptr uint64, + ): VkResult {.stdcall.} proc loadVK_EXT_display_control*(instance: VkInstance) = loadVK_EXT_display_surface_counter(instance) loadVK_KHR_swapchain(instance) - vkDisplayPowerControlEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDisplayPowerControlEXT")) - vkRegisterDeviceEventEXT = cast[proc(device: VkDevice, pDeviceEventInfo: ptr VkDeviceEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDeviceEventEXT")) - vkRegisterDisplayEventEXT = cast[proc(device: VkDevice, display: VkDisplayKHR, pDisplayEventInfo: ptr VkDisplayEventInfoEXT, pAllocator: ptr VkAllocationCallbacks, pFence: ptr VkFence): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDisplayEventEXT")) - vkGetSwapchainCounterEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, counter: VkSurfaceCounterFlagBitsEXT, pCounterValue: ptr uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainCounterEXT")) + vkDisplayPowerControlEXT = cast[proc( + device: VkDevice, + display: VkDisplayKHR, + pDisplayPowerInfo: ptr VkDisplayPowerInfoEXT, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDisplayPowerControlEXT")) + vkRegisterDeviceEventEXT = cast[proc( + device: VkDevice, + pDeviceEventInfo: ptr VkDeviceEventInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pFence: ptr VkFence, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDeviceEventEXT")) + vkRegisterDisplayEventEXT = cast[proc( + device: VkDevice, + display: VkDisplayKHR, + pDisplayEventInfo: ptr VkDisplayEventInfoEXT, + pAllocator: ptr VkAllocationCallbacks, + pFence: ptr VkFence, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkRegisterDisplayEventEXT")) + vkGetSwapchainCounterEXT = cast[proc( + device: VkDevice, + swapchain: VkSwapchainKHR, + counter: VkSurfaceCounterFlagBitsEXT, + pCounterValue: ptr uint64, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSwapchainCounterEXT")) proc loadVK_NV_ray_tracing_motion_blur*(instance: VkInstance) = loadVK_KHR_ray_tracing_pipeline(instance) @@ -11724,41 +18172,206 @@ # extension VK_NV_ray_tracing var - vkCreateAccelerationStructureNV*: proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureNV): VkResult {.stdcall.} - vkDestroyAccelerationStructureNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.} - vkGetAccelerationStructureMemoryRequirementsNV*: proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2KHR): void {.stdcall.} - vkBindAccelerationStructureMemoryNV*: proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV): VkResult {.stdcall.} - vkCmdBuildAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.} - vkCmdCopyAccelerationStructureNV*: proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.} - vkCmdTraceRaysNV*: proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.} - vkCreateRayTracingPipelinesNV*: proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.} - vkGetRayTracingShaderGroupHandlesNV*: proc(device: VkDevice, pipeline: VkPipeline, firstGroup: uint32, groupCount: uint32, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkGetAccelerationStructureHandleNV*: proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: csize_t, pData: pointer): VkResult {.stdcall.} - vkCmdWriteAccelerationStructuresPropertiesNV*: proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.} - vkCompileDeferredNV*: proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.} + vkCreateAccelerationStructureNV*: proc( + device: VkDevice, + pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pAccelerationStructure: ptr VkAccelerationStructureNV, + ): VkResult {.stdcall.} + vkDestroyAccelerationStructureNV*: proc( + device: VkDevice, + accelerationStructure: VkAccelerationStructureNV, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.} + vkGetAccelerationStructureMemoryRequirementsNV*: proc( + device: VkDevice, + pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, + pMemoryRequirements: ptr VkMemoryRequirements2KHR, + ): void {.stdcall.} + vkBindAccelerationStructureMemoryNV*: proc( + device: VkDevice, + bindInfoCount: uint32, + pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV, + ): VkResult {.stdcall.} + vkCmdBuildAccelerationStructureNV*: proc( + commandBuffer: VkCommandBuffer, + pInfo: ptr VkAccelerationStructureInfoNV, + instanceData: VkBuffer, + instanceOffset: VkDeviceSize, + update: VkBool32, + dst: VkAccelerationStructureNV, + src: VkAccelerationStructureNV, + scratch: VkBuffer, + scratchOffset: VkDeviceSize, + ): void {.stdcall.} + vkCmdCopyAccelerationStructureNV*: proc( + commandBuffer: VkCommandBuffer, + dst: VkAccelerationStructureNV, + src: VkAccelerationStructureNV, + mode: VkCopyAccelerationStructureModeKHR, + ): void {.stdcall.} + vkCmdTraceRaysNV*: proc( + commandBuffer: VkCommandBuffer, + raygenShaderBindingTableBuffer: VkBuffer, + raygenShaderBindingOffset: VkDeviceSize, + missShaderBindingTableBuffer: VkBuffer, + missShaderBindingOffset: VkDeviceSize, + missShaderBindingStride: VkDeviceSize, + hitShaderBindingTableBuffer: VkBuffer, + hitShaderBindingOffset: VkDeviceSize, + hitShaderBindingStride: VkDeviceSize, + callableShaderBindingTableBuffer: VkBuffer, + callableShaderBindingOffset: VkDeviceSize, + callableShaderBindingStride: VkDeviceSize, + width: uint32, + height: uint32, + depth: uint32, + ): void {.stdcall.} + vkCreateRayTracingPipelinesNV*: proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.} + vkGetRayTracingShaderGroupHandlesNV*: proc( + device: VkDevice, + pipeline: VkPipeline, + firstGroup: uint32, + groupCount: uint32, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.} + vkGetAccelerationStructureHandleNV*: proc( + device: VkDevice, + accelerationStructure: VkAccelerationStructureNV, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.} + vkCmdWriteAccelerationStructuresPropertiesNV*: proc( + commandBuffer: VkCommandBuffer, + accelerationStructureCount: uint32, + pAccelerationStructures: ptr VkAccelerationStructureNV, + queryType: VkQueryType, + queryPool: VkQueryPool, + firstQuery: uint32, + ): void {.stdcall.} + vkCompileDeferredNV*: + proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.} proc loadVK_NV_ray_tracing*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_VERSION_1_1(instance) - vkCreateAccelerationStructureNV = cast[proc(device: VkDevice, pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pAccelerationStructure: ptr VkAccelerationStructureNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateAccelerationStructureNV")) - vkDestroyAccelerationStructureNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, pAllocator: ptr VkAllocationCallbacks): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkDestroyAccelerationStructureNV")) - vkGetAccelerationStructureMemoryRequirementsNV = cast[proc(device: VkDevice, pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, pMemoryRequirements: ptr VkMemoryRequirements2KHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureMemoryRequirementsNV")) - vkBindAccelerationStructureMemoryNV = cast[proc(device: VkDevice, bindInfoCount: uint32, pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkBindAccelerationStructureMemoryNV")) - vkCmdBuildAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, pInfo: ptr VkAccelerationStructureInfoNV, instanceData: VkBuffer, instanceOffset: VkDeviceSize, update: VkBool32, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, scratch: VkBuffer, scratchOffset: VkDeviceSize): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdBuildAccelerationStructureNV")) - vkCmdCopyAccelerationStructureNV = cast[proc(commandBuffer: VkCommandBuffer, dst: VkAccelerationStructureNV, src: VkAccelerationStructureNV, mode: VkCopyAccelerationStructureModeKHR): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdCopyAccelerationStructureNV")) - vkCmdTraceRaysNV = cast[proc(commandBuffer: VkCommandBuffer, raygenShaderBindingTableBuffer: VkBuffer, raygenShaderBindingOffset: VkDeviceSize, missShaderBindingTableBuffer: VkBuffer, missShaderBindingOffset: VkDeviceSize, missShaderBindingStride: VkDeviceSize, hitShaderBindingTableBuffer: VkBuffer, hitShaderBindingOffset: VkDeviceSize, hitShaderBindingStride: VkDeviceSize, callableShaderBindingTableBuffer: VkBuffer, callableShaderBindingOffset: VkDeviceSize, callableShaderBindingStride: VkDeviceSize, width: uint32, height: uint32, depth: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysNV")) - vkCreateRayTracingPipelinesNV = cast[proc(device: VkDevice, pipelineCache: VkPipelineCache, createInfoCount: uint32, pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, pAllocator: ptr VkAllocationCallbacks, pPipelines: ptr VkPipeline): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateRayTracingPipelinesNV")) + vkCreateAccelerationStructureNV = cast[proc( + device: VkDevice, + pCreateInfo: ptr VkAccelerationStructureCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pAccelerationStructure: ptr VkAccelerationStructureNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateAccelerationStructureNV" + )) + vkDestroyAccelerationStructureNV = cast[proc( + device: VkDevice, + accelerationStructure: VkAccelerationStructureNV, + pAllocator: ptr VkAllocationCallbacks, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkDestroyAccelerationStructureNV" + )) + vkGetAccelerationStructureMemoryRequirementsNV = cast[proc( + device: VkDevice, + pInfo: ptr VkAccelerationStructureMemoryRequirementsInfoNV, + pMemoryRequirements: ptr VkMemoryRequirements2KHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetAccelerationStructureMemoryRequirementsNV" + )) + vkBindAccelerationStructureMemoryNV = cast[proc( + device: VkDevice, + bindInfoCount: uint32, + pBindInfos: ptr VkBindAccelerationStructureMemoryInfoNV, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkBindAccelerationStructureMemoryNV" + )) + vkCmdBuildAccelerationStructureNV = cast[proc( + commandBuffer: VkCommandBuffer, + pInfo: ptr VkAccelerationStructureInfoNV, + instanceData: VkBuffer, + instanceOffset: VkDeviceSize, + update: VkBool32, + dst: VkAccelerationStructureNV, + src: VkAccelerationStructureNV, + scratch: VkBuffer, + scratchOffset: VkDeviceSize, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdBuildAccelerationStructureNV" + )) + vkCmdCopyAccelerationStructureNV = cast[proc( + commandBuffer: VkCommandBuffer, + dst: VkAccelerationStructureNV, + src: VkAccelerationStructureNV, + mode: VkCopyAccelerationStructureModeKHR, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdCopyAccelerationStructureNV" + )) + vkCmdTraceRaysNV = cast[proc( + commandBuffer: VkCommandBuffer, + raygenShaderBindingTableBuffer: VkBuffer, + raygenShaderBindingOffset: VkDeviceSize, + missShaderBindingTableBuffer: VkBuffer, + missShaderBindingOffset: VkDeviceSize, + missShaderBindingStride: VkDeviceSize, + hitShaderBindingTableBuffer: VkBuffer, + hitShaderBindingOffset: VkDeviceSize, + hitShaderBindingStride: VkDeviceSize, + callableShaderBindingTableBuffer: VkBuffer, + callableShaderBindingOffset: VkDeviceSize, + callableShaderBindingStride: VkDeviceSize, + width: uint32, + height: uint32, + depth: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdTraceRaysNV")) + vkCreateRayTracingPipelinesNV = cast[proc( + device: VkDevice, + pipelineCache: VkPipelineCache, + createInfoCount: uint32, + pCreateInfos: ptr VkRayTracingPipelineCreateInfoNV, + pAllocator: ptr VkAllocationCallbacks, + pPipelines: ptr VkPipeline, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCreateRayTracingPipelinesNV" + )) vkGetRayTracingShaderGroupHandlesNV = vkGetRayTracingShaderGroupHandlesKHR - vkGetAccelerationStructureHandleNV = cast[proc(device: VkDevice, accelerationStructure: VkAccelerationStructureNV, dataSize: csize_t, pData: pointer): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetAccelerationStructureHandleNV")) - vkCmdWriteAccelerationStructuresPropertiesNV = cast[proc(commandBuffer: VkCommandBuffer, accelerationStructureCount: uint32, pAccelerationStructures: ptr VkAccelerationStructureNV, queryType: VkQueryType, queryPool: VkQueryPool, firstQuery: uint32): void {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCmdWriteAccelerationStructuresPropertiesNV")) - vkCompileDeferredNV = cast[proc(device: VkDevice, pipeline: VkPipeline, shader: uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCompileDeferredNV")) + vkGetAccelerationStructureHandleNV = cast[proc( + device: VkDevice, + accelerationStructure: VkAccelerationStructureNV, + dataSize: csize_t, + pData: pointer, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetAccelerationStructureHandleNV" + )) + vkCmdWriteAccelerationStructuresPropertiesNV = cast[proc( + commandBuffer: VkCommandBuffer, + accelerationStructureCount: uint32, + pAccelerationStructures: ptr VkAccelerationStructureNV, + queryType: VkQueryType, + queryPool: VkQueryPool, + firstQuery: uint32, + ): void {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkCmdWriteAccelerationStructuresPropertiesNV" + )) + vkCompileDeferredNV = cast[proc( + device: VkDevice, pipeline: VkPipeline, shader: uint32 + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCompileDeferredNV")) # extension VK_KHR_present_wait -var - vkWaitForPresentKHR*: proc(device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64): VkResult {.stdcall.} +var vkWaitForPresentKHR*: proc( + device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64 +): VkResult {.stdcall.} proc loadVK_KHR_present_wait*(instance: VkInstance) = loadVK_KHR_swapchain(instance) loadVK_KHR_present_id(instance) - vkWaitForPresentKHR = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForPresentKHR")) + vkWaitForPresentKHR = cast[proc( + device: VkDevice, swapchain: VkSwapchainKHR, presentId: uint64, timeout: uint64 + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkWaitForPresentKHR")) proc loadVK_NV_ray_tracing_invocation_reorder*(instance: VkInstance) = loadVK_KHR_ray_tracing_pipeline(instance) @@ -11769,11 +18382,13 @@ "VK_EXT_pipeline_library_group_handles": loadVK_EXT_pipeline_library_group_handles, "VK_NV_geometry_shader_passthrough": loadVK_NV_geometry_shader_passthrough, "VK_EXT_line_rasterization": loadVK_EXT_line_rasterization, - "VK_EXT_rasterization_order_attachment_access": loadVK_EXT_rasterization_order_attachment_access, + "VK_EXT_rasterization_order_attachment_access": + loadVK_EXT_rasterization_order_attachment_access, "VK_EXT_shader_atomic_float2": loadVK_EXT_shader_atomic_float2, "VK_IMG_format_pvrtc": loadVK_IMG_format_pvrtc, "VK_AMD_texture_gather_bias_lod": loadVK_AMD_texture_gather_bias_lod, - "VK_KHR_shader_subgroup_uniform_control_flow": loadVK_KHR_shader_subgroup_uniform_control_flow, + "VK_KHR_shader_subgroup_uniform_control_flow": + loadVK_KHR_shader_subgroup_uniform_control_flow, "VK_AMD_shader_fragment_mask": loadVK_AMD_shader_fragment_mask, "VK_EXT_external_memory_dma_buf": loadVK_EXT_external_memory_dma_buf, "VK_IMG_filter_cubic": loadVK_IMG_filter_cubic, @@ -11803,7 +18418,8 @@ "VK_GOOGLE_user_type": loadVK_GOOGLE_user_type, "VK_KHR_ray_tracing_maintenance1": loadVK_KHR_ray_tracing_maintenance1, "VK_EXT_debug_report": loadVK_EXT_debug_report, - "VK_EXT_multisampled_render_to_single_sampled": loadVK_EXT_multisampled_render_to_single_sampled, + "VK_EXT_multisampled_render_to_single_sampled": + loadVK_EXT_multisampled_render_to_single_sampled, "VK_EXT_device_address_binding_report": loadVK_EXT_device_address_binding_report, "VK_NV_clip_space_w_scaling": loadVK_NV_clip_space_w_scaling, "VK_NV_fill_rectangle": loadVK_NV_fill_rectangle, @@ -11871,7 +18487,8 @@ "VK_EXT_post_depth_coverage": loadVK_EXT_post_depth_coverage, "VK_EXT_rgba10x6_formats": loadVK_EXT_rgba10x6_formats, "VK_KHR_external_memory_fd": loadVK_KHR_external_memory_fd, - "VK_NV_dedicated_allocation_image_aliasing": loadVK_NV_dedicated_allocation_image_aliasing, + "VK_NV_dedicated_allocation_image_aliasing": + loadVK_NV_dedicated_allocation_image_aliasing, "VK_NV_cooperative_matrix": loadVK_NV_cooperative_matrix, "VK_EXT_depth_clamp_zero_one": loadVK_EXT_depth_clamp_zero_one, "VK_EXT_conditional_rendering": loadVK_EXT_conditional_rendering, @@ -11889,7 +18506,8 @@ "VK_KHR_workgroup_memory_explicit_layout": loadVK_KHR_workgroup_memory_explicit_layout, "VK_EXT_index_type_uint8": loadVK_EXT_index_type_uint8, "VK_EXT_mesh_shader": loadVK_EXT_mesh_shader, - "VK_AMD_shader_early_and_late_fragment_tests": loadVK_AMD_shader_early_and_late_fragment_tests, + "VK_AMD_shader_early_and_late_fragment_tests": + loadVK_AMD_shader_early_and_late_fragment_tests, "VK_KHR_display_swapchain": loadVK_KHR_display_swapchain, "VK_EXT_transform_feedback": loadVK_EXT_transform_feedback, "VK_GOOGLE_decorate_string": loadVK_GOOGLE_decorate_string, @@ -11941,7 +18559,8 @@ "VK_EXT_shader_stencil_export": loadVK_EXT_shader_stencil_export, "VK_KHR_shared_presentable_image": loadVK_KHR_shared_presentable_image, "VK_NV_external_memory_rdma": loadVK_NV_external_memory_rdma, - "VK_EXT_image_compression_control_swapchain": loadVK_EXT_image_compression_control_swapchain, + "VK_EXT_image_compression_control_swapchain": + loadVK_EXT_image_compression_control_swapchain, "VK_EXT_hdr_metadata": loadVK_EXT_hdr_metadata, "VK_AMD_device_coherent_memory": loadVK_AMD_device_coherent_memory, "VK_EXT_device_memory_report": loadVK_EXT_device_memory_report, @@ -11976,7 +18595,8 @@ EXTENSION_LOADERS["VK_KHR_xlib_surface"] = loadVK_KHR_xlib_surface when defined(VK_USE_PLATFORM_WIN32_KHR): include ./platform/win32 - EXTENSION_LOADERS["VK_KHR_external_semaphore_win32"] = loadVK_KHR_external_semaphore_win32 + EXTENSION_LOADERS["VK_KHR_external_semaphore_win32"] = + loadVK_KHR_external_semaphore_win32 EXTENSION_LOADERS["VK_EXT_full_screen_exclusive"] = loadVK_EXT_full_screen_exclusive EXTENSION_LOADERS["VK_NV_external_memory_win32"] = loadVK_NV_external_memory_win32 EXTENSION_LOADERS["VK_KHR_external_memory_win32"] = loadVK_KHR_external_memory_win32 @@ -11992,12 +18612,29 @@ # load global functions immediately block globalFunctions: let instance = VkInstance(0) - vkEnumerateInstanceVersion = cast[proc(pApiVersion: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceVersion")) - vkEnumerateInstanceExtensionProperties = cast[proc(pLayerName: cstring, pPropertyCount: ptr uint32, pProperties: ptr VkExtensionProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceExtensionProperties")) - vkEnumerateInstanceLayerProperties = cast[proc(pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkEnumerateInstanceLayerProperties")) - vkCreateInstance = cast[proc(pCreateInfo: ptr VkInstanceCreateInfo, pAllocator: ptr VkAllocationCallbacks, pInstance: ptr VkInstance): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateInstance")) - -converter NimBool2VkBool*(a: bool): VkBool32 = VkBool32(a) + vkEnumerateInstanceVersion = cast[proc(pApiVersion: ptr uint32): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumerateInstanceVersion" + )) + vkEnumerateInstanceExtensionProperties = cast[proc( + pLayerName: cstring, + pPropertyCount: ptr uint32, + pProperties: ptr VkExtensionProperties, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumerateInstanceExtensionProperties" + )) + vkEnumerateInstanceLayerProperties = cast[proc( + pPropertyCount: ptr uint32, pProperties: ptr VkLayerProperties + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkEnumerateInstanceLayerProperties" + )) + vkCreateInstance = cast[proc( + pCreateInfo: ptr VkInstanceCreateInfo, + pAllocator: ptr VkAllocationCallbacks, + pInstance: ptr VkInstance, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateInstance")) + +converter NimBool2VkBool*(a: bool): VkBool32 = + VkBool32(a) template checkVkResult*(call: untyped) = when defined(release): @@ -12011,5 +18648,6 @@ let value = call if value != VK_SUCCESS: error "Vulkan error: ", astToStr(call), " returned ", $value - raise newException(Exception, "Vulkan error: " & astToStr(call) & - " returned " & $value) + raise newException( + Exception, "Vulkan error: " & astToStr(call) & " returned " & $value + ) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/vulkan/platform/win32.nim --- a/semicongine/rendering/vulkan/platform/win32.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/vulkan/platform/win32.nim Thu Aug 22 18:32:21 2024 +0700 @@ -5,16 +5,19 @@ flags*: VkWin32SurfaceCreateFlagsKHR hinstance*: HINSTANCE hwnd*: HWND + VkImportMemoryWin32HandleInfoNV* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalMemoryHandleTypeFlagsNV handle*: HANDLE + VkExportMemoryWin32HandleInfoNV* = object sType*: VkStructureType pNext*: pointer pAttributes*: ptr SECURITY_ATTRIBUTES dwAccess*: DWORD + VkWin32KeyedMutexAcquireReleaseInfoNV* = object sType*: VkStructureType pNext*: pointer @@ -25,27 +28,32 @@ releaseCount*: uint32 pReleaseSyncs*: ptr VkDeviceMemory pReleaseKeys*: ptr uint64 + VkImportMemoryWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer handleType*: VkExternalMemoryHandleTypeFlagBits handle*: HANDLE name*: LPCWSTR + VkExportMemoryWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer pAttributes*: ptr SECURITY_ATTRIBUTES dwAccess*: DWORD name*: LPCWSTR + VkMemoryWin32HandlePropertiesKHR* = object sType*: VkStructureType pNext*: pointer memoryTypeBits*: uint32 + VkMemoryGetWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer memory*: VkDeviceMemory handleType*: VkExternalMemoryHandleTypeFlagBits + VkWin32KeyedMutexAcquireReleaseInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -56,6 +64,7 @@ releaseCount*: uint32 pReleaseSyncs*: ptr VkDeviceMemory pReleaseKeys*: ptr uint64 + VkImportSemaphoreWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -64,12 +73,14 @@ handleType*: VkExternalSemaphoreHandleTypeFlagBits handle*: HANDLE name*: LPCWSTR + VkExportSemaphoreWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer pAttributes*: ptr SECURITY_ATTRIBUTES dwAccess*: DWORD name*: LPCWSTR + VkD3D12FenceSubmitInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -77,11 +88,13 @@ pWaitSemaphoreValues*: ptr uint64 signalSemaphoreValuesCount*: uint32 pSignalSemaphoreValues*: ptr uint64 + VkSemaphoreGetWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer semaphore*: VkSemaphore handleType*: VkExternalSemaphoreHandleTypeFlagBits + VkImportFenceWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer @@ -90,29 +103,35 @@ handleType*: VkExternalFenceHandleTypeFlagBits handle*: HANDLE name*: LPCWSTR + VkExportFenceWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer pAttributes*: ptr SECURITY_ATTRIBUTES dwAccess*: DWORD name*: LPCWSTR + VkFenceGetWin32HandleInfoKHR* = object sType*: VkStructureType pNext*: pointer fence*: VkFence handleType*: VkExternalFenceHandleTypeFlagBits + VkSurfaceFullScreenExclusiveInfoEXT* = object sType*: VkStructureType pNext*: pointer fullScreenExclusive*: VkFullScreenExclusiveEXT + VkSurfaceFullScreenExclusiveWin32InfoEXT* = object sType*: VkStructureType pNext*: pointer hmonitor*: HMONITOR + VkSurfaceCapabilitiesFullScreenExclusiveEXT* = object sType*: VkStructureType pNext*: pointer fullScreenExclusiveSupported*: VkBool32 + HINSTANCE {.header: "windows.h".} = int HWND {.header: "windows.h".} = int HMONITOR {.header: "windows.h".} = int @@ -120,74 +139,201 @@ SECURITY_ATTRIBUTES {.header: "windows.h".} = object DWORD {.header: "windows.h".} = int32 LPCWSTR {.header: "windows.h".} = ptr uint16 + # extension VK_KHR_external_semaphore_win32 var - vkImportSemaphoreWin32HandleKHR*: proc(device: VkDevice, pImportSemaphoreWin32HandleInfo: ptr VkImportSemaphoreWin32HandleInfoKHR): VkResult {.stdcall.} - vkGetSemaphoreWin32HandleKHR*: proc(device: VkDevice, pGetWin32HandleInfo: ptr VkSemaphoreGetWin32HandleInfoKHR, pHandle: ptr HANDLE): VkResult {.stdcall.} + vkImportSemaphoreWin32HandleKHR*: proc( + device: VkDevice, + pImportSemaphoreWin32HandleInfo: ptr VkImportSemaphoreWin32HandleInfoKHR, + ): VkResult {.stdcall.} + vkGetSemaphoreWin32HandleKHR*: proc( + device: VkDevice, + pGetWin32HandleInfo: ptr VkSemaphoreGetWin32HandleInfoKHR, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.} proc loadVK_KHR_external_semaphore_win32*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkImportSemaphoreWin32HandleKHR = cast[proc(device: VkDevice, pImportSemaphoreWin32HandleInfo: ptr VkImportSemaphoreWin32HandleInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportSemaphoreWin32HandleKHR")) - vkGetSemaphoreWin32HandleKHR = cast[proc(device: VkDevice, pGetWin32HandleInfo: ptr VkSemaphoreGetWin32HandleInfoKHR, pHandle: ptr HANDLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetSemaphoreWin32HandleKHR")) + vkImportSemaphoreWin32HandleKHR = cast[proc( + device: VkDevice, + pImportSemaphoreWin32HandleInfo: ptr VkImportSemaphoreWin32HandleInfoKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkImportSemaphoreWin32HandleKHR" + )) + vkGetSemaphoreWin32HandleKHR = cast[proc( + device: VkDevice, + pGetWin32HandleInfo: ptr VkSemaphoreGetWin32HandleInfoKHR, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetSemaphoreWin32HandleKHR" + )) # extension VK_KHR_external_memory_win32 var - vkGetMemoryWin32HandleKHR*: proc(device: VkDevice, pGetWin32HandleInfo: ptr VkMemoryGetWin32HandleInfoKHR, pHandle: ptr HANDLE): VkResult {.stdcall.} - vkGetMemoryWin32HandlePropertiesKHR*: proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, handle: HANDLE, pMemoryWin32HandleProperties: ptr VkMemoryWin32HandlePropertiesKHR): VkResult {.stdcall.} + vkGetMemoryWin32HandleKHR*: proc( + device: VkDevice, + pGetWin32HandleInfo: ptr VkMemoryGetWin32HandleInfoKHR, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.} + vkGetMemoryWin32HandlePropertiesKHR*: proc( + device: VkDevice, + handleType: VkExternalMemoryHandleTypeFlagBits, + handle: HANDLE, + pMemoryWin32HandleProperties: ptr VkMemoryWin32HandlePropertiesKHR, + ): VkResult {.stdcall.} proc loadVK_KHR_external_memory_win32*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkGetMemoryWin32HandleKHR = cast[proc(device: VkDevice, pGetWin32HandleInfo: ptr VkMemoryGetWin32HandleInfoKHR, pHandle: ptr HANDLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleKHR")) - vkGetMemoryWin32HandlePropertiesKHR = cast[proc(device: VkDevice, handleType: VkExternalMemoryHandleTypeFlagBits, handle: HANDLE, pMemoryWin32HandleProperties: ptr VkMemoryWin32HandlePropertiesKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandlePropertiesKHR")) + vkGetMemoryWin32HandleKHR = cast[proc( + device: VkDevice, + pGetWin32HandleInfo: ptr VkMemoryGetWin32HandleInfoKHR, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleKHR")) + vkGetMemoryWin32HandlePropertiesKHR = cast[proc( + device: VkDevice, + handleType: VkExternalMemoryHandleTypeFlagBits, + handle: HANDLE, + pMemoryWin32HandleProperties: ptr VkMemoryWin32HandlePropertiesKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetMemoryWin32HandlePropertiesKHR" + )) # extension VK_KHR_external_fence_win32 var - vkImportFenceWin32HandleKHR*: proc(device: VkDevice, pImportFenceWin32HandleInfo: ptr VkImportFenceWin32HandleInfoKHR): VkResult {.stdcall.} - vkGetFenceWin32HandleKHR*: proc(device: VkDevice, pGetWin32HandleInfo: ptr VkFenceGetWin32HandleInfoKHR, pHandle: ptr HANDLE): VkResult {.stdcall.} + vkImportFenceWin32HandleKHR*: proc( + device: VkDevice, pImportFenceWin32HandleInfo: ptr VkImportFenceWin32HandleInfoKHR + ): VkResult {.stdcall.} + vkGetFenceWin32HandleKHR*: proc( + device: VkDevice, + pGetWin32HandleInfo: ptr VkFenceGetWin32HandleInfoKHR, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.} proc loadVK_KHR_external_fence_win32*(instance: VkInstance) = loadVK_VERSION_1_1(instance) - vkImportFenceWin32HandleKHR = cast[proc(device: VkDevice, pImportFenceWin32HandleInfo: ptr VkImportFenceWin32HandleInfoKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkImportFenceWin32HandleKHR")) - vkGetFenceWin32HandleKHR = cast[proc(device: VkDevice, pGetWin32HandleInfo: ptr VkFenceGetWin32HandleInfoKHR, pHandle: ptr HANDLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceWin32HandleKHR")) + vkImportFenceWin32HandleKHR = cast[proc( + device: VkDevice, pImportFenceWin32HandleInfo: ptr VkImportFenceWin32HandleInfoKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkImportFenceWin32HandleKHR" + )) + vkGetFenceWin32HandleKHR = cast[proc( + device: VkDevice, + pGetWin32HandleInfo: ptr VkFenceGetWin32HandleInfoKHR, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetFenceWin32HandleKHR")) proc loadVK_KHR_win32_keyed_mutex*(instance: VkInstance) = loadVK_KHR_external_memory_win32(instance) # extension VK_NV_external_memory_win32 -var - vkGetMemoryWin32HandleNV*: proc(device: VkDevice, memory: VkDeviceMemory, handleType: VkExternalMemoryHandleTypeFlagsNV, pHandle: ptr HANDLE): VkResult {.stdcall.} +var vkGetMemoryWin32HandleNV*: proc( + device: VkDevice, + memory: VkDeviceMemory, + handleType: VkExternalMemoryHandleTypeFlagsNV, + pHandle: ptr HANDLE, +): VkResult {.stdcall.} proc loadVK_NV_external_memory_win32*(instance: VkInstance) = loadVK_NV_external_memory(instance) - vkGetMemoryWin32HandleNV = cast[proc(device: VkDevice, memory: VkDeviceMemory, handleType: VkExternalMemoryHandleTypeFlagsNV, pHandle: ptr HANDLE): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleNV")) + vkGetMemoryWin32HandleNV = cast[proc( + device: VkDevice, + memory: VkDeviceMemory, + handleType: VkExternalMemoryHandleTypeFlagsNV, + pHandle: ptr HANDLE, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetMemoryWin32HandleNV")) # extension VK_EXT_full_screen_exclusive var - vkGetPhysicalDeviceSurfacePresentModes2EXT*: proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.} - vkAcquireFullScreenExclusiveModeEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} - vkReleaseFullScreenExclusiveModeEXT*: proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} - vkGetDeviceGroupSurfacePresentModes2EXT*: proc(device: VkDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.} + vkGetPhysicalDeviceSurfacePresentModes2EXT*: proc( + physicalDevice: VkPhysicalDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pPresentModeCount: ptr uint32, + pPresentModes: ptr VkPresentModeKHR, + ): VkResult {.stdcall.} + vkAcquireFullScreenExclusiveModeEXT*: + proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} + vkReleaseFullScreenExclusiveModeEXT*: + proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.} + vkGetDeviceGroupSurfacePresentModes2EXT*: proc( + device: VkDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pModes: ptr VkDeviceGroupPresentModeFlagsKHR, + ): VkResult {.stdcall.} proc loadVK_EXT_full_screen_exclusive*(instance: VkInstance) = loadVK_VERSION_1_1(instance) loadVK_KHR_surface(instance) loadVK_KHR_get_surface_capabilities2(instance) loadVK_KHR_swapchain(instance) - vkGetPhysicalDeviceSurfacePresentModes2EXT = cast[proc(physicalDevice: VkPhysicalDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pPresentModeCount: ptr uint32, pPresentModes: ptr VkPresentModeKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT")) - vkAcquireFullScreenExclusiveModeEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireFullScreenExclusiveModeEXT")) - vkReleaseFullScreenExclusiveModeEXT = cast[proc(device: VkDevice, swapchain: VkSwapchainKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkReleaseFullScreenExclusiveModeEXT")) - vkGetDeviceGroupSurfacePresentModes2EXT = cast[proc(device: VkDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModes2EXT")) - vkGetDeviceGroupSurfacePresentModes2EXT = cast[proc(device: VkDevice, pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, pModes: ptr VkDeviceGroupPresentModeFlagsKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetDeviceGroupSurfacePresentModes2EXT")) + vkGetPhysicalDeviceSurfacePresentModes2EXT = cast[proc( + physicalDevice: VkPhysicalDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pPresentModeCount: ptr uint32, + pPresentModes: ptr VkPresentModeKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" + )) + vkAcquireFullScreenExclusiveModeEXT = cast[proc( + device: VkDevice, swapchain: VkSwapchainKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkAcquireFullScreenExclusiveModeEXT" + )) + vkReleaseFullScreenExclusiveModeEXT = cast[proc( + device: VkDevice, swapchain: VkSwapchainKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkReleaseFullScreenExclusiveModeEXT" + )) + vkGetDeviceGroupSurfacePresentModes2EXT = cast[proc( + device: VkDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pModes: ptr VkDeviceGroupPresentModeFlagsKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceGroupSurfacePresentModes2EXT" + )) + vkGetDeviceGroupSurfacePresentModes2EXT = cast[proc( + device: VkDevice, + pSurfaceInfo: ptr VkPhysicalDeviceSurfaceInfo2KHR, + pModes: ptr VkDeviceGroupPresentModeFlagsKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetDeviceGroupSurfacePresentModes2EXT" + )) # extension VK_KHR_win32_surface var - vkCreateWin32SurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceWin32PresentationSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32): VkBool32 {.stdcall.} + vkCreateWin32SurfaceKHR*: proc( + instance: VkInstance, + pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceWin32PresentationSupportKHR*: proc( + physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32 + ): VkBool32 {.stdcall.} proc loadVK_KHR_win32_surface*(instance: VkInstance) = loadVK_KHR_surface(instance) - vkCreateWin32SurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR")) - vkGetPhysicalDeviceWin32PresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32): VkBool32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) + vkCreateWin32SurfaceKHR = cast[proc( + instance: VkInstance, + pCreateInfo: ptr VkWin32SurfaceCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR")) + vkGetPhysicalDeviceWin32PresentationSupportKHR = cast[proc( + physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32 + ): VkBool32 {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" + )) # extension VK_NV_acquire_winrt_display var - vkAcquireWinrtDisplayNV*: proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.} - vkGetWinrtDisplayNV*: proc(physicalDevice: VkPhysicalDevice, deviceRelativeId: uint32, pDisplay: ptr VkDisplayKHR): VkResult {.stdcall.} + vkAcquireWinrtDisplayNV*: + proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.} + vkGetWinrtDisplayNV*: proc( + physicalDevice: VkPhysicalDevice, + deviceRelativeId: uint32, + pDisplay: ptr VkDisplayKHR, + ): VkResult {.stdcall.} proc loadVK_NV_acquire_winrt_display*(instance: VkInstance) = loadVK_EXT_direct_mode_display(instance) - vkAcquireWinrtDisplayNV = cast[proc(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireWinrtDisplayNV")) - vkGetWinrtDisplayNV = cast[proc(physicalDevice: VkPhysicalDevice, deviceRelativeId: uint32, pDisplay: ptr VkDisplayKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetWinrtDisplayNV")) + vkAcquireWinrtDisplayNV = cast[proc( + physicalDevice: VkPhysicalDevice, display: VkDisplayKHR + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkAcquireWinrtDisplayNV")) + vkGetWinrtDisplayNV = cast[proc( + physicalDevice: VkPhysicalDevice, + deviceRelativeId: uint32, + pDisplay: ptr VkDisplayKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetWinrtDisplayNV")) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/vulkan/platform/xlib.nim --- a/semicongine/rendering/vulkan/platform/xlib.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/vulkan/platform/xlib.nim Thu Aug 22 18:32:21 2024 +0700 @@ -5,14 +5,38 @@ flags*: VkXlibSurfaceCreateFlagsKHR dpy*: ptr Display window*: Window - Display *{.header: "X11/Xlib.h".} = object - VisualID *{.header: "X11/Xlib.h".} = object - Window *{.header: "X11/Xlib.h".} = object + + Display* {.header: "X11/Xlib.h".} = object + VisualID* {.header: "X11/Xlib.h".} = object + Window* {.header: "X11/Xlib.h".} = object + # extension VK_KHR_xlib_surface var - vkCreateXlibSurfaceKHR*: proc(instance: VkInstance, pCreateInfo: ptr VkXlibSurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.} - vkGetPhysicalDeviceXlibPresentationSupportKHR*: proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, dpy: ptr Display, visualID: VisualID): VkBool32 {.stdcall.} + vkCreateXlibSurfaceKHR*: proc( + instance: VkInstance, + pCreateInfo: ptr VkXlibSurfaceCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.} + vkGetPhysicalDeviceXlibPresentationSupportKHR*: proc( + physicalDevice: VkPhysicalDevice, + queueFamilyIndex: uint32, + dpy: ptr Display, + visualID: VisualID, + ): VkBool32 {.stdcall.} proc loadVK_KHR_xlib_surface*(instance: VkInstance) = loadVK_KHR_surface(instance) - vkCreateXlibSurfaceKHR = cast[proc(instance: VkInstance, pCreateInfo: ptr VkXlibSurfaceCreateInfoKHR, pAllocator: ptr VkAllocationCallbacks, pSurface: ptr VkSurfaceKHR): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR")) - vkGetPhysicalDeviceXlibPresentationSupportKHR = cast[proc(physicalDevice: VkPhysicalDevice, queueFamilyIndex: uint32, dpy: ptr Display, visualID: VisualID): VkBool32 {.stdcall.}](vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR")) + vkCreateXlibSurfaceKHR = cast[proc( + instance: VkInstance, + pCreateInfo: ptr VkXlibSurfaceCreateInfoKHR, + pAllocator: ptr VkAllocationCallbacks, + pSurface: ptr VkSurfaceKHR, + ): VkResult {.stdcall.}](vkGetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR")) + vkGetPhysicalDeviceXlibPresentationSupportKHR = cast[proc( + physicalDevice: VkPhysicalDevice, + queueFamilyIndex: uint32, + dpy: ptr Display, + visualID: VisualID, + ): VkBool32 {.stdcall.}](vkGetInstanceProcAddr( + instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" + )) diff -r df3c075e5dea -r 966032c7a3aa semicongine/rendering/vulkan_wrappers.nim --- a/semicongine/rendering/vulkan_wrappers.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/rendering/vulkan_wrappers.nim Thu Aug 22 18:32:21 2024 +0700 @@ -9,7 +9,8 @@ var props: VkPhysicalDeviceProperties # CANNOT use svkGetPhysicalDeviceProperties (not initialized yet) vkGetPhysicalDeviceProperties(pDevice, addr(props)) - if props.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU and props.limits.maxImageDimension2D > score: + if props.deviceType == VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU and + props.limits.maxImageDimension2D > score: score = props.limits.maxImageDimension2D result = pDevice @@ -18,7 +19,8 @@ var props: VkPhysicalDeviceProperties # CANNOT use svkGetPhysicalDeviceProperties (not initialized yet) vkGetPhysicalDeviceProperties(pDevice, addr(props)) - if props.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU and props.limits.maxImageDimension2D > score: + if props.deviceType == VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU and + props.limits.maxImageDimension2D > score: score = props.limits.maxImageDimension2D result = pDevice @@ -26,14 +28,18 @@ proc svkGetPhysicalDeviceSurfaceSupportKHR*(queueFamily: uint32): bool = var presentation = VkBool32(false) - checkVkResult vkGetPhysicalDeviceSurfaceSupportKHR(vulkan.physicalDevice, queueFamily, vulkan.surface, addr(presentation)) + checkVkResult vkGetPhysicalDeviceSurfaceSupportKHR( + vulkan.physicalDevice, queueFamily, vulkan.surface, addr(presentation) + ) return bool(presentation) proc getQueueFamily(pDevice: VkPhysicalDevice, qType: VkQueueFlagBits): uint32 = var nQueuefamilies: uint32 vkGetPhysicalDeviceQueueFamilyProperties(pDevice, addr nQueuefamilies, nil) var queuFamilies = newSeq[VkQueueFamilyProperties](nQueuefamilies) - vkGetPhysicalDeviceQueueFamilyProperties(pDevice, addr nQueuefamilies, queuFamilies.ToCPointer) + vkGetPhysicalDeviceQueueFamilyProperties( + pDevice, addr nQueuefamilies, queuFamilies.ToCPointer + ) for i in 0'u32 ..< nQueuefamilies: if qType in toEnums(queuFamilies[i].queueFlags): # for graphics queues we always also want prsentation, they seem never to be separated in practice @@ -41,25 +47,24 @@ return i assert false, &"Queue of type {qType} not found" -proc svkGetDeviceQueue*(device: VkDevice, queueFamilyIndex: uint32, qType: VkQueueFlagBits): VkQueue = - vkGetDeviceQueue( - device, - queueFamilyIndex, - 0, - addr(result), - ) +proc svkGetDeviceQueue*( + device: VkDevice, queueFamilyIndex: uint32, qType: VkQueueFlagBits +): VkQueue = + vkGetDeviceQueue(device, queueFamilyIndex, 0, addr(result)) func size(format: VkFormat): uint64 = - const formatSize = [ - VK_FORMAT_B8G8R8A8_SRGB.int: 4'u64, - ] + const formatSize = [VK_FORMAT_B8G8R8A8_SRGB.int: 4'u64] return formatSize[format.int] proc svkGetPhysicalDeviceSurfacePresentModesKHR*(): seq[VkPresentModeKHR] = var n_modes: uint32 - checkVkResult vkGetPhysicalDeviceSurfacePresentModesKHR(vulkan.physicalDevice, vulkan.surface, addr(n_modes), nil) + checkVkResult vkGetPhysicalDeviceSurfacePresentModesKHR( + vulkan.physicalDevice, vulkan.surface, addr(n_modes), nil + ) result = newSeq[VkPresentModeKHR](n_modes) - checkVkResult vkGetPhysicalDeviceSurfacePresentModesKHR(vulkan.physicalDevice, vulkan.surface, addr(n_modes), result.ToCPointer) + checkVkResult vkGetPhysicalDeviceSurfacePresentModesKHR( + vulkan.physicalDevice, vulkan.surface, addr(n_modes), result.ToCPointer + ) proc hasValidationLayer*(): bool = var n_layers: uint32 @@ -97,13 +102,16 @@ memoryTypeIndex: typeIndex, ) checkVkResult vkAllocateMemory( - vulkan.device, - addr(memoryAllocationInfo), - nil, - addr(result), + vulkan.device, addr(memoryAllocationInfo), nil, addr(result) ) -proc svkCreate2DImage*(width, height: uint32, format: VkFormat, usage: openArray[VkImageUsageFlagBits], samples = VK_SAMPLE_COUNT_1_BIT, nLayers = 1'u32): VkImage = +proc svkCreate2DImage*( + width, height: uint32, + format: VkFormat, + usage: openArray[VkImageUsageFlagBits], + samples = VK_SAMPLE_COUNT_1_BIT, + nLayers = 1'u32, +): VkImage = var imageProps: VkImageFormatProperties checkVkResult vkGetPhysicalDeviceImageFormatProperties( vulkan.physicalDevice, @@ -112,7 +120,7 @@ VK_IMAGE_TILING_OPTIMAL, usage.toBits, VkImageCreateFlags(0), - addr(imageProps) + addr(imageProps), ) var imageInfo = VkImageCreateInfo( @@ -130,7 +138,12 @@ ) checkVkResult vkCreateImage(vulkan.device, addr imageInfo, nil, addr(result)) -proc svkCreate2DImageView*(image: VkImage, format: VkFormat, aspect = VK_IMAGE_ASPECT_COLOR_BIT, nLayers=1'u32): VkImageView = +proc svkCreate2DImageView*( + image: VkImage, + format: VkFormat, + aspect = VK_IMAGE_ASPECT_COLOR_BIT, + nLayers = 1'u32, +): VkImageView = var createInfo = VkImageViewCreateInfo( sType: VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, image: image, @@ -152,7 +165,9 @@ ) checkVkResult vkCreateImageView(vulkan.device, addr(createInfo), nil, addr(result)) -proc svkCreateFramebuffer*(renderpass: VkRenderPass, width, height: uint32, attachments: openArray[VkImageView]): VkFramebuffer = +proc svkCreateFramebuffer*( + renderpass: VkRenderPass, width, height: uint32, attachments: openArray[VkImageView] +): VkFramebuffer = var framebufferInfo = VkFramebufferCreateInfo( sType: VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, renderPass: renderpass, @@ -162,9 +177,13 @@ height: height, layers: 1, ) - checkVkResult vkCreateFramebuffer(vulkan.device, addr(framebufferInfo), nil, addr(result)) + checkVkResult vkCreateFramebuffer( + vulkan.device, addr(framebufferInfo), nil, addr(result) + ) -proc svkGetBufferMemoryRequirements*(buffer: VkBuffer): tuple[size: uint64, alignment: uint64, memoryTypes: seq[uint32]] = +proc svkGetBufferMemoryRequirements*( + buffer: VkBuffer +): tuple[size: uint64, alignment: uint64, memoryTypes: seq[uint32]] = var reqs: VkMemoryRequirements vkGetBufferMemoryRequirements(vulkan.device, buffer, addr(reqs)) result.size = reqs.size @@ -173,7 +192,9 @@ if ((1'u32 shl i) and reqs.memoryTypeBits) > 0: result.memoryTypes.add i -proc svkGetImageMemoryRequirements*(image: VkImage): tuple[size: uint64, alignment: uint64, memoryTypes: seq[uint32]] = +proc svkGetImageMemoryRequirements*( + image: VkImage +): tuple[size: uint64, alignment: uint64, memoryTypes: seq[uint32]] = var reqs: VkMemoryRequirements vkGetImageMemoryRequirements(vulkan.device, image, addr(reqs)) result.size = reqs.size @@ -185,12 +206,17 @@ proc svkCreateFence*(signaled = false): VkFence = var fenceInfo = VkFenceCreateInfo( sType: VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, - flags: if signaled: toBits [VK_FENCE_CREATE_SIGNALED_BIT] else: VkFenceCreateFlags(0) + flags: + if signaled: + toBits [VK_FENCE_CREATE_SIGNALED_BIT] + else: + VkFenceCreateFlags(0), ) checkVkResult vkCreateFence(vulkan.device, addr(fenceInfo), nil, addr(result)) proc svkCreateSemaphore*(): VkSemaphore = - var semaphoreInfo = VkSemaphoreCreateInfo(sType: VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO) + var semaphoreInfo = + VkSemaphoreCreateInfo(sType: VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO) checkVkResult vkCreateSemaphore(vulkan.device, addr(semaphoreInfo), nil, addr(result)) proc await*(fence: VkFence, timeout = high(uint64)): bool = @@ -203,7 +229,11 @@ proc svkResetFences*(fence: VkFence) = checkVkResult vkResetFences(vulkan.device, 1, addr(fence)) -proc svkCmdBindDescriptorSets(commandBuffer: VkCommandBuffer, descriptorSets: openArray[VkDescriptorSet], layout: VkPipelineLayout) = +proc svkCmdBindDescriptorSets( + commandBuffer: VkCommandBuffer, + descriptorSets: openArray[VkDescriptorSet], + layout: VkPipelineLayout, +) = vkCmdBindDescriptorSets( commandBuffer = commandBuffer, pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, @@ -212,10 +242,15 @@ descriptorSetCount = descriptorSets.len.uint32, pDescriptorSets = descriptorSets.ToCPointer, dynamicOffsetCount = 0, - pDynamicOffsets = nil + pDynamicOffsets = nil, ) -proc svkCmdBindDescriptorSet(commandBuffer: VkCommandBuffer, descriptorSet: VkDescriptorSet, index: DescriptorSetIndex, layout: VkPipelineLayout) = +proc svkCmdBindDescriptorSet( + commandBuffer: VkCommandBuffer, + descriptorSet: VkDescriptorSet, + index: DescriptorSetIndex, + layout: VkPipelineLayout, +) = vkCmdBindDescriptorSets( commandBuffer = commandBuffer, pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS, @@ -224,16 +259,15 @@ descriptorSetCount = 1, pDescriptorSets = addr(descriptorSet), dynamicOffsetCount = 0, - pDynamicOffsets = nil + pDynamicOffsets = nil, ) - proc svkCreateRenderPass( - attachments: openArray[VkAttachmentDescription], - colorAttachments: openArray[VkAttachmentReference], - depthAttachments: openArray[VkAttachmentReference], - resolveAttachments: openArray[VkAttachmentReference], - dependencies: openArray[VkSubpassDependency], + attachments: openArray[VkAttachmentDescription], + colorAttachments: openArray[VkAttachmentReference], + depthAttachments: openArray[VkAttachmentReference], + resolveAttachments: openArray[VkAttachmentReference], + dependencies: openArray[VkSubpassDependency], ): VkRenderPass = assert colorAttachments.len == resolveAttachments.len or resolveAttachments.len == 0 var subpass = VkSubpassDescription( @@ -249,14 +283,14 @@ pPreserveAttachments: nil, ) var createInfo = VkRenderPassCreateInfo( - sType: VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, - attachmentCount: uint32(attachments.len), - pAttachments: attachments.ToCPointer, - subpassCount: 1, - pSubpasses: addr(subpass), - dependencyCount: uint32(dependencies.len), - pDependencies: dependencies.ToCPointer, - ) + sType: VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, + attachmentCount: uint32(attachments.len), + pAttachments: attachments.ToCPointer, + subpassCount: 1, + pSubpasses: addr(subpass), + dependencyCount: uint32(dependencies.len), + pDependencies: dependencies.ToCPointer, + ) checkVkResult vkCreateRenderPass(vulkan.device, addr(createInfo), nil, addr(result)) proc bestMemory*(mappable: bool, filter: seq[uint32] = @[]): uint32 = @@ -270,13 +304,21 @@ let flags = toEnums(physicalProperties.memoryTypes[index].propertyFlags) if not mappable or VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT in flags: var score: float = 0 - if VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT in flags: score += 1_000_000 - if VK_MEMORY_PROPERTY_HOST_CACHED_BIT in flags: score += 1_000 - score += float(physicalProperties.memoryHeaps[physicalProperties.memoryTypes[index].heapIndex].size) / 1_000_000_000 + if VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT in flags: + score += 1_000_000 + if VK_MEMORY_PROPERTY_HOST_CACHED_BIT in flags: + score += 1_000 + score += + float( + physicalProperties.memoryHeaps[ + physicalProperties.memoryTypes[index].heapIndex + ].size + ) / 1_000_000_000 if score > maxScore: maxScore = score maxIndex = index - assert maxScore > 0, &"Unable to find memory type (mappable: {mappable}, filter: {filter})" + assert maxScore > 0, + &"Unable to find memory type (mappable: {mappable}, filter: {filter})" return maxIndex template withSingleUseCommandBuffer*(cmd, body: untyped): untyped = @@ -288,7 +330,9 @@ flags: VkCommandPoolCreateFlags(0), queueFamilyIndex: vulkan.graphicsQueueFamily, ) - checkVkResult vkCreateCommandPool(vulkan.device, addr createInfo, nil, addr(commandBufferPool)) + checkVkResult vkCreateCommandPool( + vulkan.device, addr createInfo, nil, addr(commandBufferPool) + ) var `cmd` {.inject.}: VkCommandBuffer allocInfo = VkCommandBufferAllocateInfo( @@ -319,11 +363,8 @@ vkDestroyFence(vulkan.device, fence, nil) vkDestroyCommandPool(vulkan.device, commandBufferPool, nil) -template withStagingBuffer*[T: (VkBuffer, uint64)|(VkImage, uint32, uint32)]( - target: T, - bufferSize: uint64, - dataPointer, - body: untyped +template withStagingBuffer*[T: (VkBuffer, uint64) | (VkImage, uint32, uint32)]( + target: T, bufferSize: uint64, dataPointer, body: untyped ): untyped = var `dataPointer` {.inject.}: pointer let stagingBuffer = svkCreateBuffer(bufferSize, [VK_BUFFER_USAGE_TRANSFER_SRC_BIT]) @@ -336,7 +377,7 @@ offset = 0'u64, size = VK_WHOLE_SIZE, flags = VkMemoryMapFlags(0), - ppData = addr(`dataPointer`) + ppData = addr(`dataPointer`), ) checkVkResult vkBindBufferMemory(vulkan.device, stagingBuffer, stagingMemory, 0) @@ -369,17 +410,14 @@ pImageMemoryBarriers = nil, ) # now copy stuff - let copyRegion = VkBufferCopy( - size: bufferSize, - dstOffset: target[1], - srcOffset: 0 - ) + let copyRegion = + VkBufferCopy(size: bufferSize, dstOffset: target[1], srcOffset: 0) vkCmdCopyBuffer( commandBuffer = commandBuffer, srcBuffer = stagingBuffer, dstBuffer = target[0], regionCount = 1, - pRegions = addr(copyRegion) + pRegions = addr(copyRegion), ) elif T is (VkImage, uint32, uint32): let region = VkBufferImageCopy( @@ -393,7 +431,7 @@ layerCount: 1, ), imageOffset: VkOffset3D(x: 0, y: 0, z: 0), - imageExtent: VkExtent3D(width: target[1], height: target[2], depth: 1) + imageExtent: VkExtent3D(width: target[1], height: target[2], depth: 1), ) vkCmdCopyBufferToImage( commandBuffer = commandBuffer, @@ -401,9 +439,8 @@ dstImage = target[0], dstImageLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, regionCount = 1, - pRegions = addr(region) + pRegions = addr(region), ) vkDestroyBuffer(vulkan.device, stagingBuffer, nil) vkFreeMemory(vulkan.device, stagingMemory, nil) - diff -r df3c075e5dea -r 966032c7a3aa semicongine/resources.nim --- a/semicongine/resources.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/resources.nim Thu Aug 22 18:32:21 2024 +0700 @@ -12,14 +12,13 @@ import ./core -type - ResourceBundlingType = enum - Dir # Directories - Zip # Zip files - Exe # Embeded in executable +type ResourceBundlingType = enum + Dir # Directories + Zip # Zip files + Exe # Embeded in executable -const - thebundletype = parseEnum[ResourceBundlingType](PACKAGETYPE.toLowerAscii().capitalizeAscii()) +const thebundletype = + parseEnum[ResourceBundlingType](PACKAGETYPE.toLowerAscii().capitalizeAscii()) # resource loading @@ -34,9 +33,9 @@ result = result & "/" when thebundletype == Dir: - proc resourceRoot(): string = getAppDir().absolutePath().joinPath(RESOURCEROOT) + proc packageRoot(package: string): string = resourceRoot().joinPath(package) @@ -55,16 +54,18 @@ for file in walkDirRec(package.packageRoot().joinPath(dir), relative = true): yield file - iterator ls_intern(dir: string, package: string): tuple[kind: PathComponent, path: string] = + iterator ls_intern( + dir: string, package: string + ): tuple[kind: PathComponent, path: string] = for i in walkDir(package.packageRoot().joinPath(dir), relative = true): yield i elif thebundletype == Zip: - import ./thirdparty/zippy/zippy/ziparchives proc resourceRoot(): string = absolutePath(getAppDir()).joinPath(RESOURCEROOT) + proc packageRoot(package: string): string = resourceRoot().joinPath(package) @@ -89,7 +90,9 @@ yield i archive.close() - iterator ls_intern(dir: string, package: string): tuple[kind: PathComponent, path: string] = + iterator ls_intern( + dir: string, package: string + ): tuple[kind: PathComponent, path: string] = let archive = openZipArchive(package.packageRoot() & ".zip") let normDir = dir.normalizeDir() var yielded: HashSet[string] @@ -107,7 +110,6 @@ archive.close() elif thebundletype == Exe: - const BUILD_RESOURCEROOT* {.strdefine.}: string = "" proc loadResources(): Table[string, Table[string, string]] {.compileTime.} = @@ -120,7 +122,9 @@ let package = packageDir.splitPath.tail result[package] = Table[string, string]() for resourcefile in walkDirRec(packageDir, relative = true): - result[package][resourcefile.replace('\\', '/')] = staticRead(packageDir.joinPath(resourcefile)) + result[package][resourcefile.replace('\\', '/')] = + staticRead(packageDir.joinPath(resourcefile)) + const bundledResources = loadResources() proc loadResource_intern*(path: string, package: string): Stream = @@ -135,7 +139,9 @@ for i in bundledResources[package].keys: yield i - iterator ls_intern(dir: string, package: string): tuple[kind: PathComponent, path: string] = + iterator ls_intern( + dir: string, package: string + ): tuple[kind: PathComponent, path: string] = let normDir = dir.normalizeDir() var yielded: HashSet[string] @@ -168,7 +174,9 @@ result.add i result.sort() -proc list*(dir: string, package = DEFAULT_PACKAGE): seq[tuple[kind: PathComponent, path: string]] = +proc list*( + dir: string, package = DEFAULT_PACKAGE +): seq[tuple[kind: PathComponent, path: string]] = for i in ls_intern(dir = dir, package = package): result.add i result.sort() diff -r df3c075e5dea -r 966032c7a3aa semicongine/storage.nim --- a/semicongine/storage.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/storage.nim Thu Aug 22 18:32:21 2024 +0700 @@ -11,21 +11,19 @@ const STORAGE_NAME = Path("storage.db") const DEFAULT_KEY_VALUE_TABLE_NAME = "shelf" -type - StorageType* = enum - SystemStorage - UserStorage - # ? level storage type ? +type StorageType* = enum + SystemStorage + UserStorage # ? level storage type ? var db: Table[StorageType, DbConn] proc path(storageType: StorageType): Path = - case storageType: - of SystemStorage: - Path(getAppDir()) / STORAGE_NAME - of UserStorage: - string(Path(getDataDir()) / Path(AppName())).createDir() - Path(getDataDir()) / Path(AppName()) / STORAGE_NAME + case storageType + of SystemStorage: + Path(getAppDir()) / STORAGE_NAME + of UserStorage: + string(Path(getDataDir()) / Path(AppName())).createDir() + Path(getDataDir()) / Path(AppName()) / STORAGE_NAME proc ensureExists(storageType: StorageType) = if storageType in db: @@ -34,25 +32,48 @@ proc ensureExists(storageType: StorageType, table: string) = storageType.ensureExists() - db[storageType].exec(sql(&"""CREATE TABLE IF NOT EXISTS {table} ( + db[storageType].exec( + sql( + &"""CREATE TABLE IF NOT EXISTS {table} ( key TEXT NOT NULL UNIQUE, value TEXT NOT NULL - )""")) + )""" + ) + ) -proc store*[T](storageType: StorageType, key: string, value: T, table = DEFAULT_KEY_VALUE_TABLE_NAME) = +proc store*[T]( + storageType: StorageType, + key: string, + value: T, + table = DEFAULT_KEY_VALUE_TABLE_NAME, +) = storageType.ensureExists(table) - db[storageType].exec(sql(&"""INSERT INTO {table} VALUES(?, ?) + db[storageType].exec( + sql( + &"""INSERT INTO {table} VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value=excluded.value - """), key, $$value) + """ + ), + key, + $$value, + ) -proc load*[T](storageType: StorageType, key: string, default: T, table = DEFAULT_KEY_VALUE_TABLE_NAME): T = +proc load*[T]( + storageType: StorageType, + key: string, + default: T, + table = DEFAULT_KEY_VALUE_TABLE_NAME, +): T = storageType.ensureExists(table) - let dbResult = db[storageType].getValue(sql(&"""SELECT value FROM {table} WHERE key = ? """), key) + let dbResult = + db[storageType].getValue(sql(&"""SELECT value FROM {table} WHERE key = ? """), key) if dbResult == "": return default return to[T](dbResult) -proc list*[T](storageType: StorageType, table = DEFAULT_KEY_VALUE_TABLE_NAME): seq[string] = +proc list*[T]( + storageType: StorageType, table = DEFAULT_KEY_VALUE_TABLE_NAME +): seq[string] = storageType.ensureExists(table) for row in db[storageType].fastRows(sql(&"""SELECT key FROM {table}""")): result.add row[0] diff -r df3c075e5dea -r 966032c7a3aa semicongine/text.nim --- a/semicongine/text.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/text.nim Thu Aug 22 18:32:21 2024 +0700 @@ -8,7 +8,6 @@ import std/tables import std/unicode - import ./core import ./resources import ./rendering @@ -27,6 +26,7 @@ topOffset*: float32 leftOffset*: float32 advance*: float32 + FontObj* = object glyphs*: Table[Rune, GlyphInfo] fontAtlas*: Image[Gray] @@ -37,6 +37,7 @@ lineAdvance*: float32 capHeight*: float32 xHeight*: float32 + Font = ref FontObj TextboxData = object @@ -47,16 +48,19 @@ DefaultFontShader*[T] = object position {.VertexAttribute.}: Vec3f - uv {.VertexAttribute.}: Vec2f # TODO: maybe we can keep the uvs in a uniform buffer and just pass an index + uv {.VertexAttribute.}: Vec2f + # TODO: maybe we can keep the uvs in a uniform buffer and just pass an index fragmentUv {.Pass.}: Vec2f color {.ShaderOutput.}: Vec4f textbox {.PushConstant.}: TextboxData descriptorSets {.DescriptorSet: 0.}: T - vertexCode* = """void main() { + vertexCode* = + """void main() { gl_Position = vec4(position * vec3(textbox.scale, 1) + textbox.position, 1.0); fragmentUv = uv; } """ - fragmentCode* = """void main() { + fragmentCode* = + """void main() { float v = texture(fontAtlas, fragmentUv).r; // CARFULL: This can lead to rough edges at times if(v == 0) { @@ -65,7 +69,7 @@ color = vec4(textbox.color.rgb, textbox.color.a * v); }""" -proc `=copy`(dest: var FontObj; source: FontObj) {.error.} +proc `=copy`(dest: var FontObj, source: FontObj) {.error.} include ./text/font include ./text/textbox diff -r df3c075e5dea -r 966032c7a3aa semicongine/text/font.nim --- a/semicongine/text/font.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/text/font.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,31 +1,62 @@ {.emit: "#define STBTT_STATIC".} {.emit: "#define STB_TRUETYPE_IMPLEMENTATION".} -{.emit: "#include \"" & currentSourcePath.parentDir().parentDir() & "/thirdparty/stb/stb_truetype.h\"".} +{. + emit: + "#include \"" & currentSourcePath.parentDir().parentDir() & + "/thirdparty/stb/stb_truetype.h\"" +.} const ASCII_CHARSET = PrintableChars.toSeq.toRunes type stbtt_fontinfo {.importc, incompleteStruct.} = object -proc stbtt_InitFont(info: ptr stbtt_fontinfo, data: ptr char, offset: cint): cint {.importc, nodecl.} -proc stbtt_ScaleForPixelHeight(info: ptr stbtt_fontinfo, pixels: cfloat): cfloat {.importc, nodecl.} +proc stbtt_InitFont( + info: ptr stbtt_fontinfo, data: ptr char, offset: cint +): cint {.importc, nodecl.} + +proc stbtt_ScaleForPixelHeight( + info: ptr stbtt_fontinfo, pixels: cfloat +): cfloat {.importc, nodecl.} -proc stbtt_GetCodepointBitmap(info: ptr stbtt_fontinfo, scale_x: cfloat, scale_y: cfloat, codepoint: cint, width, height, xoff, yoff: ptr cint): cstring {.importc, nodecl.} +proc stbtt_GetCodepointBitmap( + info: ptr stbtt_fontinfo, + scale_x: cfloat, + scale_y: cfloat, + codepoint: cint, + width, height, xoff, yoff: ptr cint, +): cstring {.importc, nodecl.} + # proc stbtt_GetCodepointBitmapBox(info: ptr stbtt_fontinfo, codepoint: cint, scale_x, scale_y: cfloat, ix0, iy0, ix1, iy1: ptr cint) {.importc, nodecl.} -proc stbtt_GetCodepointHMetrics(info: ptr stbtt_fontinfo, codepoint: cint, advance, leftBearing: ptr cint) {.importc, nodecl.} -proc stbtt_GetCodepointKernAdvance(info: ptr stbtt_fontinfo, ch1, ch2: cint): cint {.importc, nodecl.} -proc stbtt_FindGlyphIndex(info: ptr stbtt_fontinfo, codepoint: cint): cint {.importc, nodecl.} +proc stbtt_GetCodepointHMetrics( + info: ptr stbtt_fontinfo, codepoint: cint, advance, leftBearing: ptr cint +) {.importc, nodecl.} + +proc stbtt_GetCodepointKernAdvance( + info: ptr stbtt_fontinfo, ch1, ch2: cint +): cint {.importc, nodecl.} -proc stbtt_GetFontVMetrics(info: ptr stbtt_fontinfo, ascent, descent, lineGap: ptr cint) {.importc, nodecl.} +proc stbtt_FindGlyphIndex( + info: ptr stbtt_fontinfo, codepoint: cint +): cint {.importc, nodecl.} -proc readTrueType(stream: Stream, name: string, codePoints: seq[Rune], lineHeightPixels: float32): Font = +proc stbtt_GetFontVMetrics( + info: ptr stbtt_fontinfo, ascent, descent, lineGap: ptr cint +) {.importc, nodecl.} + +proc readTrueType( + stream: Stream, name: string, codePoints: seq[Rune], lineHeightPixels: float32 +): Font = var indata = stream.readAll() fontinfo: stbtt_fontinfo if stbtt_InitFont(addr fontinfo, indata.ToCPointer, 0) == 0: raise newException(Exception, "An error occured while loading font file") - result = Font(fontscale: float32(stbtt_ScaleForPixelHeight(addr fontinfo, cfloat(lineHeightPixels)))) + result = Font( + fontscale: + float32(stbtt_ScaleForPixelHeight(addr fontinfo, cfloat(lineHeightPixels))) + ) var ascent, descent, lineGap: cint stbtt_GetFontVMetrics(addr fontinfo, addr ascent, addr descent, addr lineGap) @@ -47,15 +78,16 @@ var width, height: cint offX, offY: cint - let - data = stbtt_GetCodepointBitmap( - addr fontinfo, - result.fontscale, - result.fontscale, - cint(codePoint), - addr width, addr height, - addr offX, addr offY - ) + let data = stbtt_GetCodepointBitmap( + addr fontinfo, + result.fontscale, + result.fontscale, + cint(codePoint), + addr width, + addr height, + addr offX, + addr offY, + ) topOffsets[codePoint] = offY if char(codePoint) in UppercaseLetters: @@ -88,7 +120,9 @@ ih = float32(image.height) # horizontal spaces: var advance, leftBearing: cint - stbtt_GetCodepointHMetrics(addr fontinfo, cint(codePoint), addr advance, addr leftBearing) + stbtt_GetCodepointHMetrics( + addr fontinfo, cint(codePoint), addr advance, addr leftBearing + ) result.glyphs[codePoint] = GlyphInfo( dimension: vec2(float32(image.width), float32(image.height)), @@ -104,22 +138,25 @@ ) for codePointAfter in codePoints: - result.kerning[(codePoint, codePointAfter)] = float32(stbtt_GetCodepointKernAdvance( - addr fontinfo, - cint(codePoint), - cint(codePointAfter) - )) * result.fontscale + result.kerning[(codePoint, codePointAfter)] = + float32( + stbtt_GetCodepointKernAdvance( + addr fontinfo, cint(codePoint), cint(codePointAfter) + ) + ) * result.fontscale proc loadFont*( - path: string, - lineHeightPixels = 80'f32, - additional_codepoints: openArray[Rune] = [], - charset = ASCII_CHARSET, - package = DEFAULT_PACKAGE + path: string, + lineHeightPixels = 80'f32, + additional_codepoints: openArray[Rune] = [], + charset = ASCII_CHARSET, + package = DEFAULT_PACKAGE, ): Font = - loadResource_intern(path, package = package).readTrueType(path.splitFile().name, charset & additional_codepoints.toSeq, lineHeightPixels) + loadResource_intern(path, package = package).readTrueType( + path.splitFile().name, charset & additional_codepoints.toSeq, lineHeightPixels + ) -func textWidth*(theText: seq[Rune]|string, font: FontObj): float32 = +func textWidth*(theText: seq[Rune] | string, font: FontObj): float32 = var text = when theText is string: theText.toRunes else: theText var currentWidth = 0'f32 var lineWidths: seq[float32] @@ -163,7 +200,8 @@ break subWord.add c result.add subWord & NEWLINE - remaining.add currentWord[subWord.len .. ^1] # process rest of the word in next iteration + remaining.add currentWord[subWord.len .. ^1] + # process rest of the word in next iteration else: if (currentLine & SPACE & currentWord).textWidth(font) <= maxWidth: if currentLine.len == 0: @@ -178,4 +216,3 @@ result.add currentLine return result - diff -r df3c075e5dea -r 966032c7a3aa semicongine/text/textbox.nim --- a/semicongine/text/textbox.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/text/textbox.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,24 +1,25 @@ -type - Textbox* = object - font*: Font - maxLen*: int # maximum amount of characters that will be rendered - maxWidth: float32 = 0 # if set, will cause automatic word breaks at maxWidth - baseScale: float32 - text: seq[Rune] - horizontalAlignment: HorizontalAlignment = Center - verticalAlignment: VerticalAlignment = Center - # management/internal: - dirtyGeometry: bool # is true if any of the attributes changed - dirtyShaderdata: bool # is true if any of the attributes changed - visibleText: seq[Rune] # used to store processed (word-wrapper) text to preserve original - lastRenderedText: seq[Rune] # stores the last rendered text, to prevent unnecessary updates +type Textbox* = object + font*: Font + maxLen*: int # maximum amount of characters that will be rendered + maxWidth: float32 = 0 # if set, will cause automatic word breaks at maxWidth + baseScale: float32 + text: seq[Rune] + horizontalAlignment: HorizontalAlignment = Center + verticalAlignment: VerticalAlignment = Center + # management/internal: + dirtyGeometry: bool # is true if any of the attributes changed + dirtyShaderdata: bool # is true if any of the attributes changed + visibleText: seq[Rune] + # used to store processed (word-wrapper) text to preserve original + lastRenderedText: seq[Rune] + # stores the last rendered text, to prevent unnecessary updates - # rendering data - position: GPUArray[Vec3f, VertexBuffer] - uv: GPUArray[Vec2f, VertexBuffer] - indices: GPUArray[uint16, IndexBuffer] + # rendering data + position: GPUArray[Vec3f, VertexBuffer] + uv: GPUArray[Vec2f, VertexBuffer] + indices: GPUArray[uint16, IndexBuffer] -proc `=copy`(dest: var Textbox; source: Textbox) {.error.} +proc `=copy`(dest: var Textbox, source: Textbox) {.error.} func `$`*(textbox: Textbox): string = "\"" & $textbox.text[0 ..< min(textbox.text.len, 16)] & "\"" @@ -35,26 +36,34 @@ if not (i == textbox.visibleText.len - 1 and textbox.visibleText[i].isWhiteSpace): width += textbox.font.glyphs[textbox.visibleText[i]].advance if i < textbox.visibleText.len - 1: - width += textbox.font.kerning[(textbox.visibleText[i], textbox.visibleText[i + 1])] + width += + textbox.font.kerning[(textbox.visibleText[i], textbox.visibleText[i + 1])] lineWidths.add width - var height = float32(lineWidths.len - 1) * textbox.font.lineAdvance + textbox.font.capHeight + var height = + float32(lineWidths.len - 1) * textbox.font.lineAdvance + textbox.font.capHeight if lineWidths[^1] == 0 and lineWidths.len > 1: height -= 1 - let anchorY = (case textbox.verticalAlignment - of Top: 0'f32 - of Center: -height / 2 - of Bottom: -height - ) + textbox.font.capHeight + let anchorY = + ( + case textbox.verticalAlignment + of Top: 0'f32 + of Center: -height / 2 + of Bottom: -height + ) + textbox.font.capHeight var offsetX = 0'f32 offsetY = 0'f32 lineIndex = 0 - anchorX = case textbox.horizontalAlignment - of Left: 0'f32 - of Center: lineWidths[lineIndex] / 2 - of Right: lineWidths[lineIndex] + anchorX = + case textbox.horizontalAlignment + of Left: + 0'f32 + of Center: + lineWidths[lineIndex] / 2 + of Right: + lineWidths[lineIndex] for i in 0 ..< textbox.maxLen: let vertexOffset = i * 4 if i < textbox.visibleText.len: @@ -66,10 +75,14 @@ textbox.position.data[vertexOffset + 2] = vec3(0, 0, 0) textbox.position.data[vertexOffset + 3] = vec3(0, 0, 0) inc lineIndex - anchorX = case textbox.horizontalAlignment - of Left: 0'f32 - of Center: lineWidths[lineIndex] / 2 - of Right: lineWidths[lineIndex] + anchorX = + case textbox.horizontalAlignment + of Left: + 0'f32 + of Center: + lineWidths[lineIndex] / 2 + of Right: + lineWidths[lineIndex] else: let glyph = textbox.font.glyphs[textbox.visibleText[i]] @@ -78,10 +91,13 @@ top = offsetY - glyph.topOffset bottom = offsetY - glyph.topOffset - glyph.dimension.y - textbox.position.data[vertexOffset + 0] = vec3(left - anchorX, bottom - anchorY, 0) + textbox.position.data[vertexOffset + 0] = + vec3(left - anchorX, bottom - anchorY, 0) textbox.position.data[vertexOffset + 1] = vec3(left - anchorX, top - anchorY, 0) - textbox.position.data[vertexOffset + 2] = vec3(right - anchorX, top - anchorY, 0) - textbox.position.data[vertexOffset + 3] = vec3(right - anchorX, bottom - anchorY, 0) + textbox.position.data[vertexOffset + 2] = + vec3(right - anchorX, top - anchorY, 0) + textbox.position.data[vertexOffset + 3] = + vec3(right - anchorX, bottom - anchorY, 0) textbox.uv.data[vertexOffset + 0] = glyph.uvs[0] textbox.uv.data[vertexOffset + 1] = glyph.uvs[1] @@ -90,9 +106,10 @@ offsetX += glyph.advance if i < textbox.visibleText.len - 1: - offsetX += textbox.font.kerning[(textbox.visibleText[i], textbox.visibleText[i + 1])] - updateGPUBuffer(textbox.position, count=textbox.visibleText.len.uint64 * 4) - updateGPUBuffer(textbox.uv, count=textbox.visibleText.len.uint64 * 4) + offsetX += + textbox.font.kerning[(textbox.visibleText[i], textbox.visibleText[i + 1])] + updateGPUBuffer(textbox.position, count = textbox.visibleText.len.uint64 * 4) + updateGPUBuffer(textbox.uv, count = textbox.visibleText.len.uint64 * 4) textbox.lastRenderedText = textbox.visibleText func text*(textbox: Textbox): seq[Rune] = @@ -107,9 +124,7 @@ textbox.visibleText = textbox.text if textbox.maxWidth > 0: textbox.visibleText = WordWrapped( - textbox.visibleText, - textbox.font[], - textbox.maxWidth / textbox.baseScale, + textbox.visibleText, textbox.font[], textbox.maxWidth / textbox.baseScale ) proc `text=`*(textbox: var Textbox, newText: string) = @@ -117,6 +132,7 @@ proc horizontalAlignment*(textbox: Textbox): HorizontalAlignment = textbox.horizontalAlignment + proc `horizontalAlignment=`*(textbox: var Textbox, value: HorizontalAlignment) = if value != textbox.horizontalAlignment: textbox.horizontalAlignment = value @@ -124,6 +140,7 @@ proc verticalAlignment*(textbox: Textbox): VerticalAlignment = textbox.verticalAlignment + proc `verticalAlignment=`*(textbox: var Textbox, value: VerticalAlignment) = if value != textbox.verticalAlignment: textbox.verticalAlignment = value @@ -135,33 +152,33 @@ textbox.dirtyGeometry = false proc render*( - commandbuffer: VkCommandBuffer, - pipeline: Pipeline, - textbox: Textbox, - position: Vec3f, - color: Vec4f, - scale: Vec2f = vec2(1, 1), + commandbuffer: VkCommandBuffer, + pipeline: Pipeline, + textbox: Textbox, + position: Vec3f, + color: Vec4f, + scale: Vec2f = vec2(1, 1), ) = renderWithPushConstant( commandbuffer = commandbuffer, pipeline = pipeline, mesh = textbox, - pushConstant = TextboxData(position: position, scale: textbox.baseScale * scale, color: color), - fixedVertexCount=textbox.visibleText.len * 6 + pushConstant = + TextboxData(position: position, scale: textbox.baseScale * scale, color: color), + fixedVertexCount = textbox.visibleText.len * 6, ) proc initTextbox*[T: string | seq[Rune]]( - renderdata: var RenderData, - descriptorSetLayout: VkDescriptorSetLayout, - font: Font, - baseScale: float32, - text: T = default(T), - maxLen: int = text.len, - verticalAlignment: VerticalAlignment = Center, - horizontalAlignment: HorizontalAlignment = Center, - maxWidth = 0'f32, + renderdata: var RenderData, + descriptorSetLayout: VkDescriptorSetLayout, + font: Font, + baseScale: float32, + text: T = default(T), + maxLen: int = text.len, + verticalAlignment: VerticalAlignment = Center, + horizontalAlignment: HorizontalAlignment = Center, + maxWidth = 0'f32, ): Textbox = - result = Textbox( maxLen: maxLen, font: font, diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/db_connector/db_common.nim --- a/semicongine/thirdparty/db_connector/db_common.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/db_connector/db_common.nim Thu Aug 22 18:32:21 2024 +0700 @@ -18,71 +18,73 @@ SqlQuery* = distinct string ## an SQL query string - DbEffect* = object of IOEffect ## effect that denotes a database operation ReadDbEffect* = object of DbEffect ## effect that denotes a read operation WriteDbEffect* = object of DbEffect ## effect that denotes a write operation DbTypeKind* = enum ## a superset of datatypes that might be supported. - dbUnknown, ## unknown datatype - dbSerial, ## datatype used for primary auto-increment keys - dbNull, ## datatype used for the NULL value - dbBit, ## bit datatype - dbBool, ## boolean datatype - dbBlob, ## blob datatype - dbFixedChar, ## string of fixed length - dbVarchar, ## string datatype - dbJson, ## JSON datatype - dbXml, ## XML datatype - dbInt, ## some integer type - dbUInt, ## some unsigned integer type - dbDecimal, ## decimal numbers (fixed-point number) - dbFloat, ## some floating point type - dbDate, ## a year-month-day description - dbTime, ## HH:MM:SS information - dbDatetime, ## year-month-day and HH:MM:SS information, - ## plus optional time or timezone information - dbTimestamp, ## Timestamp values are stored as the number of seconds - ## since the epoch ('1970-01-01 00:00:00' UTC). - dbTimeInterval, ## an interval [a,b] of times - dbEnum, ## some enum - dbSet, ## set of enum values - dbArray, ## an array of values - dbComposite, ## composite type (record, struct, etc) - dbUrl, ## a URL - dbUuid, ## a UUID - dbInet, ## an IP address - dbMacAddress, ## a MAC address - dbGeometry, ## some geometric type - dbPoint, ## Point on a plane (x,y) - dbLine, ## Infinite line ((x1,y1),(x2,y2)) - dbLseg, ## Finite line segment ((x1,y1),(x2,y2)) - dbBox, ## Rectangular box ((x1,y1),(x2,y2)) - dbPath, ## Closed or open path (similar to polygon) ((x1,y1),...) - dbPolygon, ## Polygon (similar to closed path) ((x1,y1),...) - dbCircle, ## Circle <(x,y),r> (center point and radius) - dbUser1, ## user definable datatype 1 (for unknown extensions) - dbUser2, ## user definable datatype 2 (for unknown extensions) - dbUser3, ## user definable datatype 3 (for unknown extensions) - dbUser4, ## user definable datatype 4 (for unknown extensions) - dbUser5 ## user definable datatype 5 (for unknown extensions) + dbUnknown ## unknown datatype + dbSerial ## datatype used for primary auto-increment keys + dbNull ## datatype used for the NULL value + dbBit ## bit datatype + dbBool ## boolean datatype + dbBlob ## blob datatype + dbFixedChar ## string of fixed length + dbVarchar ## string datatype + dbJson ## JSON datatype + dbXml ## XML datatype + dbInt ## some integer type + dbUInt ## some unsigned integer type + dbDecimal ## decimal numbers (fixed-point number) + dbFloat ## some floating point type + dbDate ## a year-month-day description + dbTime ## HH:MM:SS information + dbDatetime + ## year-month-day and HH:MM:SS information, + ## plus optional time or timezone information + dbTimestamp + ## Timestamp values are stored as the number of seconds + ## since the epoch ('1970-01-01 00:00:00' UTC). + dbTimeInterval ## an interval [a,b] of times + dbEnum ## some enum + dbSet ## set of enum values + dbArray ## an array of values + dbComposite ## composite type (record, struct, etc) + dbUrl ## a URL + dbUuid ## a UUID + dbInet ## an IP address + dbMacAddress ## a MAC address + dbGeometry ## some geometric type + dbPoint ## Point on a plane (x,y) + dbLine ## Infinite line ((x1,y1),(x2,y2)) + dbLseg ## Finite line segment ((x1,y1),(x2,y2)) + dbBox ## Rectangular box ((x1,y1),(x2,y2)) + dbPath ## Closed or open path (similar to polygon) ((x1,y1),...) + dbPolygon ## Polygon (similar to closed path) ((x1,y1),...) + dbCircle ## Circle <(x,y),r> (center point and radius) + dbUser1 ## user definable datatype 1 (for unknown extensions) + dbUser2 ## user definable datatype 2 (for unknown extensions) + dbUser3 ## user definable datatype 3 (for unknown extensions) + dbUser4 ## user definable datatype 4 (for unknown extensions) + dbUser5 ## user definable datatype 5 (for unknown extensions) - DbType* = object ## describes a database type - kind*: DbTypeKind ## the kind of the described type - notNull*: bool ## does the type contain NULL? - name*: string ## the name of the type - size*: Natural ## the size of the datatype; 0 if of variable size - maxReprLen*: Natural ## maximal length required for the representation + DbType* = object ## describes a database type + kind*: DbTypeKind ## the kind of the described type + notNull*: bool ## does the type contain NULL? + name*: string ## the name of the type + size*: Natural ## the size of the datatype; 0 if of variable size + maxReprLen*: Natural ## maximal length required for the representation precision*, scale*: Natural ## precision and scale of the number - min*, max*: BiggestInt ## the minimum and maximum of allowed values - validValues*: seq[string] ## valid values of an enum or a set + min*, max*: BiggestInt ## the minimum and maximum of allowed values + validValues*: seq[string] ## valid values of an enum or a set - DbColumn* = object ## information about a database column - name*: string ## name of the column + DbColumn* = object ## information about a database column + name*: string ## name of the column tableName*: string ## name of the table the column belongs to (optional) - typ*: DbType ## type of the column - primaryKey*: bool ## is this a primary key? - foreignKey*: bool ## is this a foreign key? + typ*: DbType ## type of the column + primaryKey*: bool ## is this a primary key? + foreignKey*: bool ## is this a foreign key? + DbColumns* = seq[DbColumn] template sql*(query: string): SqlQuery = diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/db_connector/db_sqlite.nim --- a/semicongine/thirdparty/db_connector/db_sqlite.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/db_connector/db_sqlite.nim Thu Aug 22 18:32:21 2024 +0700 @@ -167,7 +167,6 @@ ## * `db_mysql module `_ for MySQL database wrapper ## * `db_postgres module `_ for PostgreSQL database wrapper - import ./sqlite3, macros import ./db_common @@ -180,11 +179,13 @@ import std/assertions type - DbConn* = PSqlite3 ## Encapsulates a database connection. - Row* = seq[string] ## A row of a dataset. `NULL` database values will be - ## converted to an empty string. - InstantRow* = PStmt ## A handle that can be used to get a row's column - ## text on demand. + DbConn* = PSqlite3 ## Encapsulates a database connection. + Row* = seq[string] + ## A row of a dataset. `NULL` database values will be + ## converted to an empty string. + InstantRow* = PStmt + ## A handle that can be used to get a row's column + ## text on demand. SqlPrepared* = distinct PStmt ## a identifier for the prepared queries proc bindParam*(ps: SqlPrepared, paramIdx: int, val: int32) {.since: (1, 3).} @@ -192,8 +193,13 @@ proc bindParam*(ps: SqlPrepared, paramIdx: int, val: int) {.since: (1, 3).} proc bindParam*(ps: SqlPrepared, paramIdx: int, val: float64) {.since: (1, 3).} proc bindNull*(ps: SqlPrepared, paramIdx: int) {.since: (1, 3).} -proc bindParam*(ps: SqlPrepared, paramIdx: int, val: string, copy = true) {.since: (1, 3).} -proc bindParam*(ps: SqlPrepared, paramIdx: int,val: openArray[byte], copy = true) {.since: (1, 3).} +proc bindParam*( + ps: SqlPrepared, paramIdx: int, val: string, copy = true +) {.since: (1, 3).} + +proc bindParam*( + ps: SqlPrepared, paramIdx: int, val: openArray[byte], copy = true +) {.since: (1, 3).} proc dbError*(db: DbConn) {.noreturn.} = ## Raises a `DbError` exception. @@ -219,22 +225,24 @@ result = "'" for c in items(s): - if c == '\'': add(result, "''") - else: add(result, c) + if c == '\'': + add(result, "''") + else: + add(result, c) add(result, '\'') proc dbFormat(formatstr: SqlQuery, args: varargs[string]): string = dbFormatImpl(formatstr, dbQuote, args) -proc prepare*(db: DbConn; q: string): SqlPrepared {.since: (1, 3).} = +proc prepare*(db: DbConn, q: string): SqlPrepared {.since: (1, 3).} = ## Creates a new `SqlPrepared` statement. - if prepare_v2(db, q, q.len.cint,result.PStmt, nil) != SQLITE_OK: + if prepare_v2(db, q, q.len.cint, result.PStmt, nil) != SQLITE_OK: discard finalize(result.PStmt) dbError(db) -proc tryExec*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): bool {. - tags: [ReadDbEffect, WriteDbEffect].} = +proc tryExec*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): bool {.tags: [ReadDbEffect, WriteDbEffect].} = ## Tries to execute the query and returns `true` if successful, `false` otherwise. ## ## **Examples:** @@ -255,17 +263,19 @@ discard finalize(stmt) result = false -proc tryExec*(db: DbConn, stmtName: SqlPrepared): bool {. - tags: [ReadDbEffect, WriteDbEffect].} = - let x = step(stmtName.PStmt) - if x in [SQLITE_DONE, SQLITE_ROW]: - result = true - else: - discard finalize(stmtName.PStmt) - result = false +proc tryExec*( + db: DbConn, stmtName: SqlPrepared +): bool {.tags: [ReadDbEffect, WriteDbEffect].} = + let x = step(stmtName.PStmt) + if x in [SQLITE_DONE, SQLITE_ROW]: + result = true + else: + discard finalize(stmtName.PStmt) + result = false -proc exec*(db: DbConn, query: SqlQuery, args: varargs[string, `$`]) {. - tags: [ReadDbEffect, WriteDbEffect].} = +proc exec*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +) {.tags: [ReadDbEffect, WriteDbEffect].} = ## Executes the query and raises a `DbError` exception if not successful. ## ## **Examples:** @@ -279,51 +289,56 @@ ## finally: ## db.close() ## ``` - if not tryExec(db, query, args): dbError(db) + if not tryExec(db, query, args): + dbError(db) macro untypedLen(args: varargs[untyped]): int = newLit(args.len) -macro bindParams*(ps: SqlPrepared, params: varargs[untyped]): untyped {.since: (1, 3).} = +macro bindParams*( + ps: SqlPrepared, params: varargs[untyped] +): untyped {.since: (1, 3).} = let bindParam = bindSym("bindParam", brOpen) let bindNull = bindSym("bindNull") let preparedStatement = genSym() result = newStmtList() # Store `ps` in a temporary variable. This prevents `ps` from being evaluated every call. - result.add newNimNode(nnkLetSection).add(newIdentDefs(preparedStatement, newEmptyNode(), ps)) + result.add newNimNode(nnkLetSection).add( + newIdentDefs(preparedStatement, newEmptyNode(), ps) + ) for idx, param in params: if param.kind != nnkNilLit: result.add newCall(bindParam, preparedStatement, newIntLitNode idx + 1, param) else: result.add newCall(bindNull, preparedStatement, newIntLitNode idx + 1) - -template exec*(db: DbConn, stmtName: SqlPrepared, - args: varargs[typed]): untyped = +template exec*(db: DbConn, stmtName: SqlPrepared, args: varargs[typed]): untyped = when untypedLen(args) > 0: if reset(stmtName.PStmt) != SQLITE_OK: dbError(db) if clear_bindings(stmtName.PStmt) != SQLITE_OK: dbError(db) stmtName.bindParams(args) - if not tryExec(db, stmtName): dbError(db) + if not tryExec(db, stmtName): + dbError(db) proc newRow(L: int): Row = newSeq(result, L) - for i in 0..L-1: result[i] = "" + for i in 0 .. L - 1: + result[i] = "" -proc setupQuery(db: DbConn, query: SqlQuery, - args: varargs[string]): PStmt = +proc setupQuery(db: DbConn, query: SqlQuery, args: varargs[string]): PStmt = assert(not db.isNil, "Database not connected.") var q = dbFormat(query, args) - if prepare_v2(db, q.cstring, q.len.cint, result, nil) != SQLITE_OK: dbError(db) + if prepare_v2(db, q.cstring, q.len.cint, result, nil) != SQLITE_OK: + dbError(db) proc setupQuery(db: DbConn, stmtName: SqlPrepared): SqlPrepared {.since: (1, 3).} = assert(not db.isNil, "Database not connected.") result = stmtName proc setRow(stmt: PStmt, r: var Row, cols: cint) = - for col in 0'i32..cols-1: + for col in 0'i32 .. cols - 1: let cb = column_bytes(stmt, col) setLen(r[col], cb) # set capacity if column_type(stmt, col) == SQLITE_BLOB: @@ -331,10 +346,12 @@ else: setLen(r[col], 0) let x = column_text(stmt, col) - if not isNil(x): add(r[col], x) + if not isNil(x): + add(r[col], x) -iterator fastRows*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): Row {.tags: [ReadDbEffect].} = +iterator fastRows*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): Row {.tags: [ReadDbEffect].} = ## Executes the query and iterates over the result dataset. ## ## This is very fast, but potentially dangerous. Use this iterator only @@ -372,10 +389,12 @@ setRow(stmt, result, L) yield result finally: - if finalize(stmt) != SQLITE_OK: dbError(db) + if finalize(stmt) != SQLITE_OK: + dbError(db) -iterator fastRows*(db: DbConn, stmtName: SqlPrepared): Row - {.tags: [ReadDbEffect,WriteDbEffect], since: (1, 3).} = +iterator fastRows*( + db: DbConn, stmtName: SqlPrepared +): Row {.tags: [ReadDbEffect, WriteDbEffect], since: (1, 3).} = discard setupQuery(db, stmtName) var L = (column_count(stmtName.PStmt)) var result = newRow(L) @@ -386,9 +405,9 @@ except: dbError(db) -iterator instantRows*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): InstantRow - {.tags: [ReadDbEffect].} = +iterator instantRows*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): InstantRow {.tags: [ReadDbEffect].} = ## Similar to `fastRows iterator <#fastRows.i,DbConn,SqlQuery,varargs[string,]>`_ ## but returns a handle that can be used to get column text ## on demand using `[]`. Returned handle is valid only within the iterator body. @@ -424,10 +443,12 @@ while step(stmt) == SQLITE_ROW: yield stmt finally: - if finalize(stmt) != SQLITE_OK: dbError(db) + if finalize(stmt) != SQLITE_OK: + dbError(db) -iterator instantRows*(db: DbConn, stmtName: SqlPrepared): InstantRow - {.tags: [ReadDbEffect,WriteDbEffect], since: (1, 3).} = +iterator instantRows*( + db: DbConn, stmtName: SqlPrepared +): InstantRow {.tags: [ReadDbEffect, WriteDbEffect], since: (1, 3).} = var stmt = setupQuery(db, stmtName).PStmt try: while step(stmt) == SQLITE_ROW: @@ -435,7 +456,7 @@ except: dbError(db) -proc toTypeKind(t: var DbType; x: int32) = +proc toTypeKind(t: var DbType, x: int32) = case x of SQLITE_INTEGER: t.kind = dbInt @@ -443,12 +464,16 @@ of SQLITE_FLOAT: t.kind = dbFloat t.size = 8 - of SQLITE_BLOB: t.kind = dbBlob - of SQLITE_NULL: t.kind = dbNull - of SQLITE_TEXT: t.kind = dbVarchar - else: t.kind = dbUnknown + of SQLITE_BLOB: + t.kind = dbBlob + of SQLITE_NULL: + t.kind = dbNull + of SQLITE_TEXT: + t.kind = dbVarchar + else: + t.kind = dbUnknown -proc setColumns(columns: var DbColumns; x: PStmt) = +proc setColumns(columns: var DbColumns, x: PStmt) = let L = column_count(x) setLen(columns, L) for i in 0'i32 ..< L: @@ -457,9 +482,9 @@ toTypeKind(columns[i].typ, column_type(x, i)) columns[i].tableName = $column_table_name(x, i) -iterator instantRows*(db: DbConn; columns: var DbColumns; query: SqlQuery, - args: varargs[string, `$`]): InstantRow - {.tags: [ReadDbEffect].} = +iterator instantRows*( + db: DbConn, columns: var DbColumns, query: SqlQuery, args: varargs[string, `$`] +): InstantRow {.tags: [ReadDbEffect].} = ## Similar to `instantRows iterator <#instantRows.i,DbConn,SqlQuery,varargs[string,]>`_, ## but sets information about columns to `columns`. ## @@ -493,7 +518,8 @@ while step(stmt) == SQLITE_ROW: yield stmt finally: - if finalize(stmt) != SQLITE_OK: dbError(db) + if finalize(stmt) != SQLITE_OK: + dbError(db) proc `[]`*(row: InstantRow, col: int32): string {.inline.} = ## Returns text for given column of the row. @@ -519,8 +545,9 @@ ## example code column_count(row) -proc getRow*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): Row {.tags: [ReadDbEffect].} = +proc getRow*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): Row {.tags: [ReadDbEffect].} = ## Retrieves a single row. If the query doesn't return any rows, this proc ## will return a `Row` with empty strings for each column. ## @@ -553,10 +580,12 @@ result = newRow(L) if step(stmt) == SQLITE_ROW: setRow(stmt, result, L) - if finalize(stmt) != SQLITE_OK: dbError(db) + if finalize(stmt) != SQLITE_OK: + dbError(db) -proc getAllRows*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): seq[Row] {.tags: [ReadDbEffect].} = +proc getAllRows*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): seq[Row] {.tags: [ReadDbEffect].} = ## Executes the query and returns the whole result dataset. ## ## **Examples:** @@ -577,14 +606,16 @@ for r in fastRows(db, query, args): result.add(r) -proc getAllRows*(db: DbConn, stmtName: SqlPrepared): seq[Row] - {.tags: [ReadDbEffect,WriteDbEffect], since: (1, 3).} = +proc getAllRows*( + db: DbConn, stmtName: SqlPrepared +): seq[Row] {.tags: [ReadDbEffect, WriteDbEffect], since: (1, 3).} = result = @[] for r in fastRows(db, stmtName): result.add(r) -iterator rows*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): Row {.tags: [ReadDbEffect].} = +iterator rows*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): Row {.tags: [ReadDbEffect].} = ## Similar to `fastRows iterator <#fastRows.i,DbConn,SqlQuery,varargs[string,]>`_, ## but slower and safe. ## @@ -608,14 +639,18 @@ ## ## db.close() ## ``` - for r in fastRows(db, query, args): yield r + for r in fastRows(db, query, args): + yield r -iterator rows*(db: DbConn, stmtName: SqlPrepared): Row - {.tags: [ReadDbEffect,WriteDbEffect], since: (1, 3).} = - for r in fastRows(db, stmtName): yield r +iterator rows*( + db: DbConn, stmtName: SqlPrepared +): Row {.tags: [ReadDbEffect, WriteDbEffect], since: (1, 3).} = + for r in fastRows(db, stmtName): + yield r -proc getValue*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): string {.tags: [ReadDbEffect].} = +proc getValue*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): string {.tags: [ReadDbEffect].} = ## Executes the query and returns the first column of the first row of the ## result dataset. Returns `""` if the dataset contains no rows or the database ## value is `NULL`. @@ -652,10 +687,12 @@ add(result, column_text(stmt, 0)) else: result = "" - if finalize(stmt) != SQLITE_OK: dbError(db) + if finalize(stmt) != SQLITE_OK: + dbError(db) -proc getValue*(db: DbConn, stmtName: SqlPrepared): string - {.tags: [ReadDbEffect,WriteDbEffect], since: (1, 3).} = +proc getValue*( + db: DbConn, stmtName: SqlPrepared +): string {.tags: [ReadDbEffect, WriteDbEffect], since: (1, 3).} = var stmt = setupQuery(db, stmtName).PStmt if step(stmt) == SQLITE_ROW: let cb = column_bytes(stmt, 0) @@ -671,9 +708,9 @@ else: result = "" -proc tryInsertID*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): int64 - {.tags: [WriteDbEffect], raises: [DbError].} = +proc tryInsertID*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): int64 {.tags: [WriteDbEffect], raises: [DbError].} = ## Executes the query (typically "INSERT") and returns the ## generated ID for the row or -1 in case of an error. ## @@ -699,8 +736,9 @@ else: discard finalize(stmt) -proc insertID*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): int64 {.tags: [WriteDbEffect].} = +proc insertID*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): int64 {.tags: [WriteDbEffect].} = ## Executes the query (typically "INSERT") and returns the ## generated ID for the row. ## @@ -726,24 +764,26 @@ ## db.close() ## ``` result = tryInsertID(db, query, args) - if result < 0: dbError(db) + if result < 0: + dbError(db) -proc tryInsert*(db: DbConn, query: SqlQuery, pkName: string, - args: varargs[string, `$`]): int64 - {.tags: [WriteDbEffect], raises: [DbError], since: (1, 3).} = +proc tryInsert*( + db: DbConn, query: SqlQuery, pkName: string, args: varargs[string, `$`] +): int64 {.tags: [WriteDbEffect], raises: [DbError], since: (1, 3).} = ## same as tryInsertID tryInsertID(db, query, args) -proc insert*(db: DbConn, query: SqlQuery, pkName: string, - args: varargs[string, `$`]): int64 - {.tags: [WriteDbEffect], since: (1, 3).} = +proc insert*( + db: DbConn, query: SqlQuery, pkName: string, args: varargs[string, `$`] +): int64 {.tags: [WriteDbEffect], since: (1, 3).} = ## same as insertId result = tryInsert(db, query, pkName, args) - if result < 0: dbError(db) + if result < 0: + dbError(db) -proc execAffectedRows*(db: DbConn, query: SqlQuery, - args: varargs[string, `$`]): int64 {. - tags: [ReadDbEffect, WriteDbEffect].} = +proc execAffectedRows*( + db: DbConn, query: SqlQuery, args: varargs[string, `$`] +): int64 {.tags: [ReadDbEffect, WriteDbEffect].} = ## Executes the query (typically "UPDATE") and returns the ## number of affected rows. ## @@ -765,8 +805,9 @@ exec(db, query, args) result = changes(db) -proc execAffectedRows*(db: DbConn, stmtName: SqlPrepared): int64 - {.tags: [ReadDbEffect, WriteDbEffect],since: (1, 3).} = +proc execAffectedRows*( + db: DbConn, stmtName: SqlPrepared +): int64 {.tags: [ReadDbEffect, WriteDbEffect], since: (1, 3).} = exec(db, stmtName) result = changes(db) @@ -778,10 +819,10 @@ ## let db = open("mytest.db", "", "", "") ## db.close() ## ``` - if sqlite3.close(db) != SQLITE_OK: dbError(db) + if sqlite3.close(db) != SQLITE_OK: + dbError(db) -proc open*(connection, user, password, database: string): DbConn {. - tags: [DbEffect].} = +proc open*(connection, user, password, database: string): DbConn {.tags: [DbEffect].} = ## Opens a database connection. Raises a `DbError` exception if the connection ## could not be established. ## @@ -803,8 +844,7 @@ else: dbError(db) -proc setEncoding*(connection: DbConn, encoding: string): bool {. - tags: [DbEffect].} = +proc setEncoding*(connection: DbConn, encoding: string): bool {.tags: [DbEffect].} = ## Sets the encoding of a database connection, returns `true` for ## success, `false` for failure. ## @@ -815,7 +855,7 @@ exec(connection, sql"PRAGMA encoding = ?", [encoding]) result = connection.getValue(sql"PRAGMA encoding") == encoding -proc finalize*(sqlPrepared:SqlPrepared) {.discardable, since: (1, 3).} = +proc finalize*(sqlPrepared: SqlPrepared) {.discardable, since: (1, 3).} = discard finalize(sqlPrepared.PStmt) template dbBindParamError*(paramIdx: int, val: varargs[untyped]) = @@ -853,17 +893,33 @@ if bind_null(ps.PStmt, paramIdx.int32) != SQLITE_OK: dbBindParamError(paramIdx) -proc bindParam*(ps: SqlPrepared, paramIdx: int, val: string, copy = true) {.since: (1, 3).} = +proc bindParam*( + ps: SqlPrepared, paramIdx: int, val: string, copy = true +) {.since: (1, 3).} = ## Binds a string to the specified paramIndex. ## if copy is true then SQLite makes its own private copy of the data immediately - if bind_text(ps.PStmt, paramIdx.int32, val.cstring, val.len.int32, if copy: SQLITE_TRANSIENT else: SQLITE_STATIC) != SQLITE_OK: + if bind_text( + ps.PStmt, + paramIdx.int32, + val.cstring, + val.len.int32, + if copy: SQLITE_TRANSIENT else: SQLITE_STATIC, + ) != SQLITE_OK: dbBindParamError(paramIdx, val) -proc bindParam*(ps: SqlPrepared, paramIdx: int,val: openArray[byte], copy = true) {.since: (1, 3).} = +proc bindParam*( + ps: SqlPrepared, paramIdx: int, val: openArray[byte], copy = true +) {.since: (1, 3).} = ## binds a blob to the specified paramIndex. ## if copy is true then SQLite makes its own private copy of the data immediately let len = val.len - if bind_blob(ps.PStmt, paramIdx.int32, val[0].unsafeAddr, len.int32, if copy: SQLITE_TRANSIENT else: SQLITE_STATIC) != SQLITE_OK: + if bind_blob( + ps.PStmt, + paramIdx.int32, + val[0].unsafeAddr, + len.int32, + if copy: SQLITE_TRANSIENT else: SQLITE_STATIC, + ) != SQLITE_OK: dbBindParamError(paramIdx, val) when not defined(testing) and isMainModule: @@ -887,12 +943,12 @@ echo(r[0], r[1]) for r in db.instantRows(sql"select * from tbl1", []): echo(r[0], r[1]) - var p4 = db.prepare "select * from tbl2" + var p4 = db.prepare "select * from tbl2" for r in db.rows(p4): echo(r[0], r[1]) finalize(p4) var i5 = 0 - var p5 = db.prepare "select * from tbl2" + var p5 = db.prepare "select * from tbl2" for r in db.instantRows(p5): inc i5 echo(r[0], r[1]) @@ -930,9 +986,9 @@ exec(db, p8) finalize(p8) var p10 = db.prepare "INSERT INTO photos (ID,PHOTO) VALUES (?,?)" - p10.bindParams(2'i32,nil) + p10.bindParams(2'i32, nil) exec(db, p10) - exec( db, p10, 3, nil) + exec(db, p10, 3, nil) finalize(p10) for r in db.rows(sql"select * from photos where ID = 1", []): assert r[1].len == d.len diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/db_connector/private/dbutils.nim --- a/semicongine/thirdparty/db_connector/private/dbutils.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/db_connector/private/dbutils.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,13 +1,18 @@ import ../db_common - -template dbFormatImpl*(formatstr: SqlQuery, dbQuote: proc (s: string): string {.nimcall.}, args: varargs[string]): string = +template dbFormatImpl*( + formatstr: SqlQuery, + dbQuote: proc(s: string): string {.nimcall.}, + args: varargs[string], +): string = var res = "" var a = 0 for c in items(string(formatstr)): if c == '?': if a == args.len: - dbError("""The number of "?" given exceeds the number of parameters present in the query.""") + dbError( + """The number of "?" given exceeds the number of parameters present in the query.""" + ) add(res, dbQuote(args[a])) inc(a) else: diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/db_connector/sqlite3.nim --- a/semicongine/thirdparty/db_connector/sqlite3.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/db_connector/sqlite3.nim Thu Aug 22 18:32:21 2024 +0700 @@ -21,38 +21,38 @@ SQLITE_TEXT* = 3 SQLITE_UTF8* = 1 SQLITE_UTF16LE* = 2 - SQLITE_UTF16BE* = 3 # Use native byte order - SQLITE_UTF16* = 4 # sqlite3_create_function only - SQLITE_ANY* = 5 #sqlite_exec return values + SQLITE_UTF16BE* = 3 # Use native byte order + SQLITE_UTF16* = 4 # sqlite3_create_function only + SQLITE_ANY* = 5 #sqlite_exec return values SQLITE_OK* = 0 - SQLITE_ERROR* = 1 # SQL error or missing database - SQLITE_INTERNAL* = 2 # An internal logic error in SQLite - SQLITE_PERM* = 3 # Access permission denied - SQLITE_ABORT* = 4 # Callback routine requested an abort - SQLITE_BUSY* = 5 # The database file is locked - SQLITE_LOCKED* = 6 # A table in the database is locked - SQLITE_NOMEM* = 7 # A malloc() failed - SQLITE_READONLY* = 8 # Attempt to write a readonly database - SQLITE_INTERRUPT* = 9 # Operation terminated by sqlite3_interrupt() - SQLITE_IOERR* = 10 # Some kind of disk I/O error occurred - SQLITE_CORRUPT* = 11 # The database disk image is malformed - SQLITE_NOTFOUND* = 12 # (Internal Only) Table or record not found - SQLITE_FULL* = 13 # Insertion failed because database is full - SQLITE_CANTOPEN* = 14 # Unable to open the database file - SQLITE_PROTOCOL* = 15 # Database lock protocol error - SQLITE_EMPTY* = 16 # Database is empty - SQLITE_SCHEMA* = 17 # The database schema changed - SQLITE_TOOBIG* = 18 # Too much data for one row of a table + SQLITE_ERROR* = 1 # SQL error or missing database + SQLITE_INTERNAL* = 2 # An internal logic error in SQLite + SQLITE_PERM* = 3 # Access permission denied + SQLITE_ABORT* = 4 # Callback routine requested an abort + SQLITE_BUSY* = 5 # The database file is locked + SQLITE_LOCKED* = 6 # A table in the database is locked + SQLITE_NOMEM* = 7 # A malloc() failed + SQLITE_READONLY* = 8 # Attempt to write a readonly database + SQLITE_INTERRUPT* = 9 # Operation terminated by sqlite3_interrupt() + SQLITE_IOERR* = 10 # Some kind of disk I/O error occurred + SQLITE_CORRUPT* = 11 # The database disk image is malformed + SQLITE_NOTFOUND* = 12 # (Internal Only) Table or record not found + SQLITE_FULL* = 13 # Insertion failed because database is full + SQLITE_CANTOPEN* = 14 # Unable to open the database file + SQLITE_PROTOCOL* = 15 # Database lock protocol error + SQLITE_EMPTY* = 16 # Database is empty + SQLITE_SCHEMA* = 17 # The database schema changed + SQLITE_TOOBIG* = 18 # Too much data for one row of a table SQLITE_CONSTRAINT* = 19 # Abort due to constraint violation - SQLITE_MISMATCH* = 20 # Data type mismatch - SQLITE_MISUSE* = 21 # Library used incorrectly - SQLITE_NOLFS* = 22 # Uses OS features not supported on host - SQLITE_AUTH* = 23 # Authorization denied - SQLITE_FORMAT* = 24 # Auxiliary database format error - SQLITE_RANGE* = 25 # 2nd parameter to sqlite3_bind out of range - SQLITE_NOTADB* = 26 # File opened that is not a database file - SQLITE_ROW* = 100 # sqlite3_step() has another row ready - SQLITE_DONE* = 101 # sqlite3_step() has finished executing + SQLITE_MISMATCH* = 20 # Data type mismatch + SQLITE_MISUSE* = 21 # Library used incorrectly + SQLITE_NOLFS* = 22 # Uses OS features not supported on host + SQLITE_AUTH* = 23 # Authorization denied + SQLITE_FORMAT* = 24 # Auxiliary database format error + SQLITE_RANGE* = 25 # 2nd parameter to sqlite3_bind out of range + SQLITE_NOTADB* = 26 # File opened that is not a database file + SQLITE_ROW* = 100 # sqlite3_step() has another row ready + SQLITE_DONE* = 101 # sqlite3_step() has finished executing SQLITE_COPY* = 0 SQLITE_CREATE_INDEX* = 1 SQLITE_CREATE_TABLE* = 2 @@ -82,9 +82,10 @@ SQLITE_ALTER_TABLE* = 26 SQLITE_REINDEX* = 27 SQLITE_DENY* = 1 - SQLITE_IGNORE* = 2 # Original from sqlite3.h: - #define SQLITE_STATIC ((void(*)(void *))0) - #define SQLITE_TRANSIENT ((void(*)(void *))-1) + SQLITE_IGNORE* = 2 + # Original from sqlite3.h: + #define SQLITE_STATIC ((void(*)(void *))0) + #define SQLITE_TRANSIENT ((void(*)(void *))-1) SQLITE_DETERMINISTIC* = 0x800 type @@ -94,273 +95,421 @@ Sqlite3_Backup {.pure, final.} = object PSqlite3_Backup* = ptr Sqlite3_Backup PPSqlite3_Backup* = ptr PSqlite3_Backup - Context{.pure, final.} = object + Context {.pure, final.} = object Pcontext* = ptr Context - TStmt{.pure, final.} = object + TStmt {.pure, final.} = object PStmt* = ptr TStmt - Value{.pure, final.} = object + Value {.pure, final.} = object PValue* = ptr Value - PValueArg* = array[0..127, PValue] + PValueArg* = array[0 .. 127, PValue] - Callback* = proc (para1: pointer, para2: int32, para3, - para4: cstringArray): int32{.cdecl.} - Tbind_destructor_func* = proc (para1: pointer){.cdecl, tags: [], gcsafe.} - Create_function_step_func* = proc (para1: Pcontext, para2: int32, - para3: PValueArg){.cdecl.} - Create_function_func_func* = proc (para1: Pcontext, para2: int32, - para3: PValueArg){.cdecl.} - Create_function_final_func* = proc (para1: Pcontext){.cdecl.} - Result_func* = proc (para1: pointer){.cdecl.} - Create_collation_func* = proc (para1: pointer, para2: int32, para3: pointer, - para4: int32, para5: pointer): int32{.cdecl.} - Collation_needed_func* = proc (para1: pointer, para2: PSqlite3, eTextRep: int32, - para4: cstring){.cdecl.} + Callback* = + proc(para1: pointer, para2: int32, para3, para4: cstringArray): int32 {.cdecl.} + Tbind_destructor_func* = proc(para1: pointer) {.cdecl, tags: [], gcsafe.} + Create_function_step_func* = + proc(para1: Pcontext, para2: int32, para3: PValueArg) {.cdecl.} + Create_function_func_func* = + proc(para1: Pcontext, para2: int32, para3: PValueArg) {.cdecl.} + Create_function_final_func* = proc(para1: Pcontext) {.cdecl.} + Result_func* = proc(para1: pointer) {.cdecl.} + Create_collation_func* = proc( + para1: pointer, para2: int32, para3: pointer, para4: int32, para5: pointer + ): int32 {.cdecl.} + Collation_needed_func* = + proc(para1: pointer, para2: PSqlite3, eTextRep: int32, para4: cstring) {.cdecl.} const SQLITE_STATIC* = nil SQLITE_TRANSIENT* = cast[Tbind_destructor_func](-1) -proc close*(para1: PSqlite3): int32{.cdecl, mylib, importc: "sqlite3_close".} -proc exec*(para1: PSqlite3, sql: cstring, para3: Callback, para4: pointer, - errmsg: var cstring): int32{.cdecl, mylib, - importc: "sqlite3_exec".} -proc last_insert_rowid*(para1: PSqlite3): int64{.cdecl, mylib, - importc: "sqlite3_last_insert_rowid".} -proc changes*(para1: PSqlite3): int32{.cdecl, mylib, importc: "sqlite3_changes".} -proc total_changes*(para1: PSqlite3): int32{.cdecl, mylib, - importc: "sqlite3_total_changes".} -proc interrupt*(para1: PSqlite3){.cdecl, mylib, importc: "sqlite3_interrupt".} -proc complete*(sql: cstring): int32{.cdecl, mylib, - importc: "sqlite3_complete".} -proc complete16*(sql: pointer): int32{.cdecl, mylib, - importc: "sqlite3_complete16".} -proc busy_handler*(para1: PSqlite3, - para2: proc (para1: pointer, para2: int32): int32{.cdecl.}, - para3: pointer): int32{.cdecl, mylib, - importc: "sqlite3_busy_handler".} -proc busy_timeout*(para1: PSqlite3, ms: int32): int32{.cdecl, mylib, - importc: "sqlite3_busy_timeout".} -proc get_table*(para1: PSqlite3, sql: cstring, resultp: var cstringArray, - nrow, ncolumn: var cint, errmsg: ptr cstring): int32{.cdecl, - mylib, importc: "sqlite3_get_table".} -proc free_table*(result: cstringArray){.cdecl, mylib, - importc: "sqlite3_free_table".} +proc close*(para1: PSqlite3): int32 {.cdecl, mylib, importc: "sqlite3_close".} +proc exec*( + para1: PSqlite3, sql: cstring, para3: Callback, para4: pointer, errmsg: var cstring +): int32 {.cdecl, mylib, importc: "sqlite3_exec".} + +proc last_insert_rowid*( + para1: PSqlite3 +): int64 {.cdecl, mylib, importc: "sqlite3_last_insert_rowid".} + +proc changes*(para1: PSqlite3): int32 {.cdecl, mylib, importc: "sqlite3_changes".} +proc total_changes*( + para1: PSqlite3 +): int32 {.cdecl, mylib, importc: "sqlite3_total_changes".} + +proc interrupt*(para1: PSqlite3) {.cdecl, mylib, importc: "sqlite3_interrupt".} +proc complete*(sql: cstring): int32 {.cdecl, mylib, importc: "sqlite3_complete".} +proc complete16*(sql: pointer): int32 {.cdecl, mylib, importc: "sqlite3_complete16".} +proc busy_handler*( + para1: PSqlite3, + para2: proc(para1: pointer, para2: int32): int32 {.cdecl.}, + para3: pointer, +): int32 {.cdecl, mylib, importc: "sqlite3_busy_handler".} + +proc busy_timeout*( + para1: PSqlite3, ms: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_busy_timeout".} + +proc get_table*( + para1: PSqlite3, + sql: cstring, + resultp: var cstringArray, + nrow, ncolumn: var cint, + errmsg: ptr cstring, +): int32 {.cdecl, mylib, importc: "sqlite3_get_table".} + +proc free_table*(result: cstringArray) {.cdecl, mylib, importc: "sqlite3_free_table".} # Todo: see how translate sqlite3_mprintf, sqlite3_vmprintf, sqlite3_snprintf # function sqlite3_mprintf(_para1:Pchar; args:array of const):Pchar;cdecl; external Sqlite3Lib name 'sqlite3_mprintf'; -proc mprintf*(para1: cstring): cstring{.cdecl, varargs, mylib, - importc: "sqlite3_mprintf".} + +proc mprintf*( + para1: cstring +): cstring {.cdecl, varargs, mylib, importc: "sqlite3_mprintf".} #function sqlite3_vmprintf(_para1:Pchar; _para2:va_list):Pchar;cdecl; external Sqlite3Lib name 'sqlite3_vmprintf'; -proc free*(z: cstring){.cdecl, mylib, importc: "sqlite3_free".} + +proc free*(z: cstring) {.cdecl, mylib, importc: "sqlite3_free".} #function sqlite3_snprintf(_para1:longint; _para2:Pchar; _para3:Pchar; args:array of const):Pchar;cdecl; external Sqlite3Lib name 'sqlite3_snprintf'; -proc snprintf*(para1: int32, para2: cstring, para3: cstring): cstring{.cdecl, - mylib, varargs, importc: "sqlite3_snprintf".} -proc set_authorizer*(para1: PSqlite3, xAuth: proc (para1: pointer, para2: int32, - para3: cstring, para4: cstring, para5: cstring, para6: cstring): int32{. - cdecl.}, pUserData: pointer): int32{.cdecl, mylib, - importc: "sqlite3_set_authorizer".} -proc trace*(para1: PSqlite3, xTrace: proc (para1: pointer, para2: cstring){.cdecl.}, - para3: pointer): pointer{.cdecl, mylib, - importc: "sqlite3_trace".} -proc progress_handler*(para1: PSqlite3, para2: int32, - para3: proc (para1: pointer): int32{.cdecl.}, - para4: pointer){.cdecl, mylib, - importc: "sqlite3_progress_handler".} -proc commit_hook*(para1: PSqlite3, para2: proc (para1: pointer): int32{.cdecl.}, - para3: pointer): pointer{.cdecl, mylib, - importc: "sqlite3_commit_hook".} -proc open*(filename: cstring, ppDb: var PSqlite3): int32{.cdecl, mylib, - importc: "sqlite3_open".} -proc open16*(filename: pointer, ppDb: var PSqlite3): int32{.cdecl, mylib, - importc: "sqlite3_open16".} -proc errcode*(db: PSqlite3): int32{.cdecl, mylib, importc: "sqlite3_errcode".} -proc errmsg*(para1: PSqlite3): cstring{.cdecl, mylib, importc: "sqlite3_errmsg".} -proc errmsg16*(para1: PSqlite3): pointer{.cdecl, mylib, - importc: "sqlite3_errmsg16".} -proc prepare*(db: PSqlite3, zSql: cstring, nBytes: int32, ppStmt: var PStmt, - pzTail: ptr cstring): int32{.cdecl, mylib, - importc: "sqlite3_prepare".} + +proc snprintf*( + para1: int32, para2: cstring, para3: cstring +): cstring {.cdecl, mylib, varargs, importc: "sqlite3_snprintf".} + +proc set_authorizer*( + para1: PSqlite3, + xAuth: proc( + para1: pointer, + para2: int32, + para3: cstring, + para4: cstring, + para5: cstring, + para6: cstring, + ): int32 {.cdecl.}, + pUserData: pointer, +): int32 {.cdecl, mylib, importc: "sqlite3_set_authorizer".} + +proc trace*( + para1: PSqlite3, + xTrace: proc(para1: pointer, para2: cstring) {.cdecl.}, + para3: pointer, +): pointer {.cdecl, mylib, importc: "sqlite3_trace".} + +proc progress_handler*( + para1: PSqlite3, + para2: int32, + para3: proc(para1: pointer): int32 {.cdecl.}, + para4: pointer, +) {.cdecl, mylib, importc: "sqlite3_progress_handler".} + +proc commit_hook*( + para1: PSqlite3, para2: proc(para1: pointer): int32 {.cdecl.}, para3: pointer +): pointer {.cdecl, mylib, importc: "sqlite3_commit_hook".} + +proc open*( + filename: cstring, ppDb: var PSqlite3 +): int32 {.cdecl, mylib, importc: "sqlite3_open".} + +proc open16*( + filename: pointer, ppDb: var PSqlite3 +): int32 {.cdecl, mylib, importc: "sqlite3_open16".} -proc prepare_v2*(db: PSqlite3, zSql: cstring, nByte: cint, ppStmt: var PStmt, - pzTail: ptr cstring): cint {. - importc: "sqlite3_prepare_v2", cdecl, mylib.} +proc errcode*(db: PSqlite3): int32 {.cdecl, mylib, importc: "sqlite3_errcode".} +proc errmsg*(para1: PSqlite3): cstring {.cdecl, mylib, importc: "sqlite3_errmsg".} +proc errmsg16*(para1: PSqlite3): pointer {.cdecl, mylib, importc: "sqlite3_errmsg16".} +proc prepare*( + db: PSqlite3, zSql: cstring, nBytes: int32, ppStmt: var PStmt, pzTail: ptr cstring +): int32 {.cdecl, mylib, importc: "sqlite3_prepare".} + +proc prepare_v2*( + db: PSqlite3, zSql: cstring, nByte: cint, ppStmt: var PStmt, pzTail: ptr cstring +): cint {.importc: "sqlite3_prepare_v2", cdecl, mylib.} + +proc prepare16*( + db: PSqlite3, zSql: pointer, nBytes: int32, ppStmt: var PStmt, pzTail: var pointer +): int32 {.cdecl, mylib, importc: "sqlite3_prepare16".} + +proc bind_blob*( + para1: PStmt, para2: int32, para3: pointer, n: int32, para5: Tbind_destructor_func +): int32 {.cdecl, mylib, importc: "sqlite3_bind_blob".} -proc prepare16*(db: PSqlite3, zSql: pointer, nBytes: int32, ppStmt: var PStmt, - pzTail: var pointer): int32{.cdecl, mylib, - importc: "sqlite3_prepare16".} -proc bind_blob*(para1: PStmt, para2: int32, para3: pointer, n: int32, - para5: Tbind_destructor_func): int32{.cdecl, mylib, - importc: "sqlite3_bind_blob".} -proc bind_double*(para1: PStmt, para2: int32, para3: float64): int32{.cdecl, - mylib, importc: "sqlite3_bind_double".} -proc bind_int*(para1: PStmt, para2: int32, para3: int32): int32{.cdecl, - mylib, importc: "sqlite3_bind_int".} -proc bind_int64*(para1: PStmt, para2: int32, para3: int64): int32{.cdecl, - mylib, importc: "sqlite3_bind_int64".} -proc bind_null*(para1: PStmt, para2: int32): int32{.cdecl, mylib, - importc: "sqlite3_bind_null".} -proc bind_text*(para1: PStmt, para2: int32, para3: cstring, n: int32, - para5: Tbind_destructor_func): int32{.cdecl, mylib, - importc: "sqlite3_bind_text".} -proc bind_text16*(para1: PStmt, para2: int32, para3: pointer, para4: int32, - para5: Tbind_destructor_func): int32{.cdecl, mylib, - importc: "sqlite3_bind_text16".} +proc bind_double*( + para1: PStmt, para2: int32, para3: float64 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_double".} + +proc bind_int*( + para1: PStmt, para2: int32, para3: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_int".} + +proc bind_int64*( + para1: PStmt, para2: int32, para3: int64 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_int64".} + +proc bind_null*( + para1: PStmt, para2: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_null".} + +proc bind_text*( + para1: PStmt, para2: int32, para3: cstring, n: int32, para5: Tbind_destructor_func +): int32 {.cdecl, mylib, importc: "sqlite3_bind_text".} + +proc bind_text16*( + para1: PStmt, para2: int32, para3: pointer, para4: int32, para5: Tbind_destructor_func +): int32 {.cdecl, mylib, importc: "sqlite3_bind_text16".} #function sqlite3_bind_value(_para1:Psqlite3_stmt; _para2:longint; _para3:Psqlite3_value):longint;cdecl; external Sqlite3Lib name 'sqlite3_bind_value'; #These overloaded functions were introduced to allow the use of SQLITE_STATIC and SQLITE_TRANSIENT #It's the c world man ;-) -proc bind_blob*(para1: PStmt, para2: int32, para3: pointer, n: int32, - para5: int32): int32{.cdecl, mylib, - importc: "sqlite3_bind_blob".} -proc bind_text*(para1: PStmt, para2: int32, para3: cstring, n: int32, - para5: int32): int32{.cdecl, mylib, - importc: "sqlite3_bind_text".} -proc bind_text16*(para1: PStmt, para2: int32, para3: pointer, para4: int32, - para5: int32): int32{.cdecl, mylib, - importc: "sqlite3_bind_text16".} -proc bind_parameter_count*(para1: PStmt): int32{.cdecl, mylib, - importc: "sqlite3_bind_parameter_count".} -proc bind_parameter_name*(para1: PStmt, para2: int32): cstring{.cdecl, - mylib, importc: "sqlite3_bind_parameter_name".} -proc bind_parameter_index*(para1: PStmt, zName: cstring): int32{.cdecl, - mylib, importc: "sqlite3_bind_parameter_index".} -proc clear_bindings*(para1: PStmt): int32 {.cdecl, - mylib, importc: "sqlite3_clear_bindings".} -proc column_count*(PStmt: PStmt): int32{.cdecl, mylib, - importc: "sqlite3_column_count".} -proc column_name*(para1: PStmt, para2: int32): cstring{.cdecl, mylib, - importc: "sqlite3_column_name".} -proc column_table_name*(para1: PStmt; para2: int32): cstring{.cdecl, mylib, - importc: "sqlite3_column_table_name".} -proc column_name16*(para1: PStmt, para2: int32): pointer{.cdecl, mylib, - importc: "sqlite3_column_name16".} -proc column_decltype*(para1: PStmt, i: int32): cstring{.cdecl, mylib, - importc: "sqlite3_column_decltype".} -proc column_decltype16*(para1: PStmt, para2: int32): pointer{.cdecl, - mylib, importc: "sqlite3_column_decltype16".} -proc step*(para1: PStmt): int32{.cdecl, mylib, importc: "sqlite3_step".} -proc data_count*(PStmt: PStmt): int32{.cdecl, mylib, - importc: "sqlite3_data_count".} -proc column_blob*(para1: PStmt, iCol: int32): pointer{.cdecl, mylib, - importc: "sqlite3_column_blob".} -proc column_bytes*(para1: PStmt, iCol: int32): int32{.cdecl, mylib, - importc: "sqlite3_column_bytes".} -proc column_bytes16*(para1: PStmt, iCol: int32): int32{.cdecl, mylib, - importc: "sqlite3_column_bytes16".} -proc column_double*(para1: PStmt, iCol: int32): float64{.cdecl, mylib, - importc: "sqlite3_column_double".} -proc column_int*(para1: PStmt, iCol: int32): int32{.cdecl, mylib, - importc: "sqlite3_column_int".} -proc column_int64*(para1: PStmt, iCol: int32): int64{.cdecl, mylib, - importc: "sqlite3_column_int64".} -proc column_text*(para1: PStmt, iCol: int32): cstring{.cdecl, mylib, - importc: "sqlite3_column_text".} -proc column_text16*(para1: PStmt, iCol: int32): pointer{.cdecl, mylib, - importc: "sqlite3_column_text16".} -proc column_type*(para1: PStmt, iCol: int32): int32{.cdecl, mylib, - importc: "sqlite3_column_type".} -proc finalize*(PStmt: PStmt): int32{.cdecl, mylib, - importc: "sqlite3_finalize".} -proc reset*(PStmt: PStmt): int32{.cdecl, mylib, importc: "sqlite3_reset".} -proc create_function*(para1: PSqlite3, zFunctionName: cstring, nArg: int32, - eTextRep: int32, para5: pointer, - xFunc: Create_function_func_func, - xStep: Create_function_step_func, - xFinal: Create_function_final_func): int32{.cdecl, - mylib, importc: "sqlite3_create_function".} -proc create_function16*(para1: PSqlite3, zFunctionName: pointer, nArg: int32, - eTextRep: int32, para5: pointer, - xFunc: Create_function_func_func, - xStep: Create_function_step_func, - xFinal: Create_function_final_func): int32{.cdecl, - mylib, importc: "sqlite3_create_function16".} -proc aggregate_count*(para1: Pcontext): int32{.cdecl, mylib, - importc: "sqlite3_aggregate_count".} -proc value_blob*(para1: PValue): pointer{.cdecl, mylib, - importc: "sqlite3_value_blob".} -proc value_bytes*(para1: PValue): int32{.cdecl, mylib, - importc: "sqlite3_value_bytes".} -proc value_bytes16*(para1: PValue): int32{.cdecl, mylib, - importc: "sqlite3_value_bytes16".} -proc value_double*(para1: PValue): float64{.cdecl, mylib, - importc: "sqlite3_value_double".} -proc value_int*(para1: PValue): int32{.cdecl, mylib, - importc: "sqlite3_value_int".} -proc value_int64*(para1: PValue): int64{.cdecl, mylib, - importc: "sqlite3_value_int64".} -proc value_text*(para1: PValue): cstring{.cdecl, mylib, - importc: "sqlite3_value_text".} -proc value_text16*(para1: PValue): pointer{.cdecl, mylib, - importc: "sqlite3_value_text16".} -proc value_text16le*(para1: PValue): pointer{.cdecl, mylib, - importc: "sqlite3_value_text16le".} -proc value_text16be*(para1: PValue): pointer{.cdecl, mylib, - importc: "sqlite3_value_text16be".} -proc value_type*(para1: PValue): int32{.cdecl, mylib, - importc: "sqlite3_value_type".} -proc aggregate_context*(para1: Pcontext, nBytes: int32): pointer{.cdecl, - mylib, importc: "sqlite3_aggregate_context".} -proc user_data*(para1: Pcontext): pointer{.cdecl, mylib, - importc: "sqlite3_user_data".} -proc get_auxdata*(para1: Pcontext, para2: int32): pointer{.cdecl, mylib, - importc: "sqlite3_get_auxdata".} -proc set_auxdata*(para1: Pcontext, para2: int32, para3: pointer, - para4: proc (para1: pointer){.cdecl.}){.cdecl, mylib, - importc: "sqlite3_set_auxdata".} -proc result_blob*(para1: Pcontext, para2: pointer, para3: int32, - para4: Result_func){.cdecl, mylib, - importc: "sqlite3_result_blob".} -proc result_double*(para1: Pcontext, para2: float64){.cdecl, mylib, - importc: "sqlite3_result_double".} -proc result_error*(para1: Pcontext, para2: cstring, para3: int32){.cdecl, - mylib, importc: "sqlite3_result_error".} -proc result_error16*(para1: Pcontext, para2: pointer, para3: int32){.cdecl, - mylib, importc: "sqlite3_result_error16".} -proc result_int*(para1: Pcontext, para2: int32){.cdecl, mylib, - importc: "sqlite3_result_int".} -proc result_int64*(para1: Pcontext, para2: int64){.cdecl, mylib, - importc: "sqlite3_result_int64".} -proc result_null*(para1: Pcontext){.cdecl, mylib, - importc: "sqlite3_result_null".} -proc result_text*(para1: Pcontext, para2: cstring, para3: int32, - para4: Result_func){.cdecl, mylib, - importc: "sqlite3_result_text".} -proc result_text16*(para1: Pcontext, para2: pointer, para3: int32, - para4: Result_func){.cdecl, mylib, - importc: "sqlite3_result_text16".} -proc result_text16le*(para1: Pcontext, para2: pointer, para3: int32, - para4: Result_func){.cdecl, mylib, - importc: "sqlite3_result_text16le".} -proc result_text16be*(para1: Pcontext, para2: pointer, para3: int32, - para4: Result_func){.cdecl, mylib, - importc: "sqlite3_result_text16be".} -proc result_value*(para1: Pcontext, para2: PValue){.cdecl, mylib, - importc: "sqlite3_result_value".} -proc create_collation*(para1: PSqlite3, zName: cstring, eTextRep: int32, - para4: pointer, xCompare: Create_collation_func): int32{. - cdecl, mylib, importc: "sqlite3_create_collation".} -proc create_collation16*(para1: PSqlite3, zName: cstring, eTextRep: int32, - para4: pointer, xCompare: Create_collation_func): int32{. - cdecl, mylib, importc: "sqlite3_create_collation16".} -proc collation_needed*(para1: PSqlite3, para2: pointer, para3: Collation_needed_func): int32{. - cdecl, mylib, importc: "sqlite3_collation_needed".} -proc collation_needed16*(para1: PSqlite3, para2: pointer, para3: Collation_needed_func): int32{. - cdecl, mylib, importc: "sqlite3_collation_needed16".} -proc libversion*(): cstring{.cdecl, mylib, importc: "sqlite3_libversion".} + +proc bind_blob*( + para1: PStmt, para2: int32, para3: pointer, n: int32, para5: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_blob".} + +proc bind_text*( + para1: PStmt, para2: int32, para3: cstring, n: int32, para5: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_text".} + +proc bind_text16*( + para1: PStmt, para2: int32, para3: pointer, para4: int32, para5: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_bind_text16".} + +proc bind_parameter_count*( + para1: PStmt +): int32 {.cdecl, mylib, importc: "sqlite3_bind_parameter_count".} + +proc bind_parameter_name*( + para1: PStmt, para2: int32 +): cstring {.cdecl, mylib, importc: "sqlite3_bind_parameter_name".} + +proc bind_parameter_index*( + para1: PStmt, zName: cstring +): int32 {.cdecl, mylib, importc: "sqlite3_bind_parameter_index".} + +proc clear_bindings*( + para1: PStmt +): int32 {.cdecl, mylib, importc: "sqlite3_clear_bindings".} + +proc column_count*( + PStmt: PStmt +): int32 {.cdecl, mylib, importc: "sqlite3_column_count".} + +proc column_name*( + para1: PStmt, para2: int32 +): cstring {.cdecl, mylib, importc: "sqlite3_column_name".} + +proc column_table_name*( + para1: PStmt, para2: int32 +): cstring {.cdecl, mylib, importc: "sqlite3_column_table_name".} + +proc column_name16*( + para1: PStmt, para2: int32 +): pointer {.cdecl, mylib, importc: "sqlite3_column_name16".} + +proc column_decltype*( + para1: PStmt, i: int32 +): cstring {.cdecl, mylib, importc: "sqlite3_column_decltype".} + +proc column_decltype16*( + para1: PStmt, para2: int32 +): pointer {.cdecl, mylib, importc: "sqlite3_column_decltype16".} + +proc step*(para1: PStmt): int32 {.cdecl, mylib, importc: "sqlite3_step".} +proc data_count*(PStmt: PStmt): int32 {.cdecl, mylib, importc: "sqlite3_data_count".} +proc column_blob*( + para1: PStmt, iCol: int32 +): pointer {.cdecl, mylib, importc: "sqlite3_column_blob".} + +proc column_bytes*( + para1: PStmt, iCol: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_column_bytes".} + +proc column_bytes16*( + para1: PStmt, iCol: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_column_bytes16".} + +proc column_double*( + para1: PStmt, iCol: int32 +): float64 {.cdecl, mylib, importc: "sqlite3_column_double".} + +proc column_int*( + para1: PStmt, iCol: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_column_int".} + +proc column_int64*( + para1: PStmt, iCol: int32 +): int64 {.cdecl, mylib, importc: "sqlite3_column_int64".} + +proc column_text*( + para1: PStmt, iCol: int32 +): cstring {.cdecl, mylib, importc: "sqlite3_column_text".} + +proc column_text16*( + para1: PStmt, iCol: int32 +): pointer {.cdecl, mylib, importc: "sqlite3_column_text16".} + +proc column_type*( + para1: PStmt, iCol: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_column_type".} + +proc finalize*(PStmt: PStmt): int32 {.cdecl, mylib, importc: "sqlite3_finalize".} +proc reset*(PStmt: PStmt): int32 {.cdecl, mylib, importc: "sqlite3_reset".} +proc create_function*( + para1: PSqlite3, + zFunctionName: cstring, + nArg: int32, + eTextRep: int32, + para5: pointer, + xFunc: Create_function_func_func, + xStep: Create_function_step_func, + xFinal: Create_function_final_func, +): int32 {.cdecl, mylib, importc: "sqlite3_create_function".} + +proc create_function16*( + para1: PSqlite3, + zFunctionName: pointer, + nArg: int32, + eTextRep: int32, + para5: pointer, + xFunc: Create_function_func_func, + xStep: Create_function_step_func, + xFinal: Create_function_final_func, +): int32 {.cdecl, mylib, importc: "sqlite3_create_function16".} + +proc aggregate_count*( + para1: Pcontext +): int32 {.cdecl, mylib, importc: "sqlite3_aggregate_count".} + +proc value_blob*(para1: PValue): pointer {.cdecl, mylib, importc: "sqlite3_value_blob".} +proc value_bytes*(para1: PValue): int32 {.cdecl, mylib, importc: "sqlite3_value_bytes".} +proc value_bytes16*( + para1: PValue +): int32 {.cdecl, mylib, importc: "sqlite3_value_bytes16".} + +proc value_double*( + para1: PValue +): float64 {.cdecl, mylib, importc: "sqlite3_value_double".} + +proc value_int*(para1: PValue): int32 {.cdecl, mylib, importc: "sqlite3_value_int".} +proc value_int64*(para1: PValue): int64 {.cdecl, mylib, importc: "sqlite3_value_int64".} +proc value_text*(para1: PValue): cstring {.cdecl, mylib, importc: "sqlite3_value_text".} +proc value_text16*( + para1: PValue +): pointer {.cdecl, mylib, importc: "sqlite3_value_text16".} + +proc value_text16le*( + para1: PValue +): pointer {.cdecl, mylib, importc: "sqlite3_value_text16le".} + +proc value_text16be*( + para1: PValue +): pointer {.cdecl, mylib, importc: "sqlite3_value_text16be".} + +proc value_type*(para1: PValue): int32 {.cdecl, mylib, importc: "sqlite3_value_type".} +proc aggregate_context*( + para1: Pcontext, nBytes: int32 +): pointer {.cdecl, mylib, importc: "sqlite3_aggregate_context".} + +proc user_data*(para1: Pcontext): pointer {.cdecl, mylib, importc: "sqlite3_user_data".} +proc get_auxdata*( + para1: Pcontext, para2: int32 +): pointer {.cdecl, mylib, importc: "sqlite3_get_auxdata".} + +proc set_auxdata*( + para1: Pcontext, para2: int32, para3: pointer, para4: proc(para1: pointer) {.cdecl.} +) {.cdecl, mylib, importc: "sqlite3_set_auxdata".} + +proc result_blob*( + para1: Pcontext, para2: pointer, para3: int32, para4: Result_func +) {.cdecl, mylib, importc: "sqlite3_result_blob".} + +proc result_double*( + para1: Pcontext, para2: float64 +) {.cdecl, mylib, importc: "sqlite3_result_double".} + +proc result_error*( + para1: Pcontext, para2: cstring, para3: int32 +) {.cdecl, mylib, importc: "sqlite3_result_error".} + +proc result_error16*( + para1: Pcontext, para2: pointer, para3: int32 +) {.cdecl, mylib, importc: "sqlite3_result_error16".} + +proc result_int*( + para1: Pcontext, para2: int32 +) {.cdecl, mylib, importc: "sqlite3_result_int".} + +proc result_int64*( + para1: Pcontext, para2: int64 +) {.cdecl, mylib, importc: "sqlite3_result_int64".} + +proc result_null*(para1: Pcontext) {.cdecl, mylib, importc: "sqlite3_result_null".} +proc result_text*( + para1: Pcontext, para2: cstring, para3: int32, para4: Result_func +) {.cdecl, mylib, importc: "sqlite3_result_text".} + +proc result_text16*( + para1: Pcontext, para2: pointer, para3: int32, para4: Result_func +) {.cdecl, mylib, importc: "sqlite3_result_text16".} + +proc result_text16le*( + para1: Pcontext, para2: pointer, para3: int32, para4: Result_func +) {.cdecl, mylib, importc: "sqlite3_result_text16le".} + +proc result_text16be*( + para1: Pcontext, para2: pointer, para3: int32, para4: Result_func +) {.cdecl, mylib, importc: "sqlite3_result_text16be".} + +proc result_value*( + para1: Pcontext, para2: PValue +) {.cdecl, mylib, importc: "sqlite3_result_value".} + +proc create_collation*( + para1: PSqlite3, + zName: cstring, + eTextRep: int32, + para4: pointer, + xCompare: Create_collation_func, +): int32 {.cdecl, mylib, importc: "sqlite3_create_collation".} + +proc create_collation16*( + para1: PSqlite3, + zName: cstring, + eTextRep: int32, + para4: pointer, + xCompare: Create_collation_func, +): int32 {.cdecl, mylib, importc: "sqlite3_create_collation16".} + +proc collation_needed*( + para1: PSqlite3, para2: pointer, para3: Collation_needed_func +): int32 {.cdecl, mylib, importc: "sqlite3_collation_needed".} + +proc collation_needed16*( + para1: PSqlite3, para2: pointer, para3: Collation_needed_func +): int32 {.cdecl, mylib, importc: "sqlite3_collation_needed16".} + +proc libversion*(): cstring {.cdecl, mylib, importc: "sqlite3_libversion".} #Alias for allowing better code portability (win32 is not working with external variables) -proc version*(): cstring{.cdecl, mylib, importc: "sqlite3_libversion".} + +proc version*(): cstring {.cdecl, mylib, importc: "sqlite3_libversion".} # Not published functions -proc libversion_number*(): int32{.cdecl, mylib, - importc: "sqlite3_libversion_number".} + +proc libversion_number*(): int32 {.cdecl, mylib, importc: "sqlite3_libversion_number".} -proc backup_init*(pDest: PSqlite3, zDestName: cstring, pSource: PSqlite3, zSourceName: cstring): PSqlite3_Backup {. - cdecl, mylib, importc: "sqlite3_backup_init".} +proc backup_init*( + pDest: PSqlite3, zDestName: cstring, pSource: PSqlite3, zSourceName: cstring +): PSqlite3_Backup {.cdecl, mylib, importc: "sqlite3_backup_init".} -proc backup_step*(pBackup: PSqlite3_Backup, nPage: int32): int32 {.cdecl, mylib, importc: "sqlite3_backup_step".} +proc backup_step*( + pBackup: PSqlite3_Backup, nPage: int32 +): int32 {.cdecl, mylib, importc: "sqlite3_backup_step".} -proc backup_finish*(pBackup: PSqlite3_Backup): int32 {.cdecl, mylib, importc: "sqlite3_backup_finish".} +proc backup_finish*( + pBackup: PSqlite3_Backup +): int32 {.cdecl, mylib, importc: "sqlite3_backup_finish".} -proc backup_pagecount*(pBackup: PSqlite3_Backup): int32 {.cdecl, mylib, importc: "sqlite3_backup_pagecount".} +proc backup_pagecount*( + pBackup: PSqlite3_Backup +): int32 {.cdecl, mylib, importc: "sqlite3_backup_pagecount".} -proc backup_remaining*(pBackup: PSqlite3_Backup): int32 {.cdecl, mylib, importc: "sqlite3_backup_remaining".} +proc backup_remaining*( + pBackup: PSqlite3_Backup +): int32 {.cdecl, mylib, importc: "sqlite3_backup_remaining".} proc sqlite3_sleep*(t: int64): int64 {.cdecl, mylib, importc: "sqlite3_sleep".} @@ -369,6 +518,7 @@ #function sqlite3_sleep(_para1:longint):longint;cdecl; external Sqlite3Lib name 'sqlite3_sleep'; #function sqlite3_expired(_para1:Psqlite3_stmt):longint;cdecl; external Sqlite3Lib name 'sqlite3_expired'; #function sqlite3_global_recover:longint;cdecl; external Sqlite3Lib name 'sqlite3_global_recover'; + # implementation when defined(nimHasStyleChecks): diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/clr.nim --- a/semicongine/thirdparty/winim/winim/clr.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/clr.nim Thu Aug 22 18:32:21 2024 +0700 @@ -35,7 +35,8 @@ proc example3() = ## Compile some code and run it - var code = """ + var code = + """ using System; public class Test { @@ -60,15 +61,12 @@ CSharpCodeProvider* = "Microsoft.CSharp.CSharpCodeProvider" type - CLRError* = object of CatchableError - ## Raised if a CLR error occurred. + CLRError* = object of CatchableError ## Raised if a CLR error occurred. hresult*: HRESULT - CLRVariant* = distinct variant - ## `distinct variant` to represent CLR object or value. + CLRVariant* = distinct variant ## `distinct variant` to represent CLR object or value. - CLRType* = distinct variant - ## `distinct variant` to represent CLR Type object. + CLRType* = distinct variant ## `distinct variant` to represent CLR Type object. CLRInterface* = object ## Represent CLR object with specified interface. @@ -84,13 +82,12 @@ hresult {.threadvar.}: HRESULT CurrentAssembly {.threadvar.}: CLRVariant -converter voidpp_converter(x: ptr ptr object): ptr pointer {.used.} = cast[ptr pointer](x) +converter voidpp_converter(x: ptr ptr object): ptr pointer {.used.} = + cast[ptr pointer](x) -proc isNil*(x: CLRVariant): bool {.borrow.} - ## Check if `CLRVariant` is nil or not. +proc isNil*(x: CLRVariant): bool {.borrow.} ## Check if `CLRVariant` is nil or not. -proc isNil*(x: CLRType): bool {.borrow.} - ## Check if `CLRType` is nil or not. +proc isNil*(x: CLRType): bool {.borrow.} ## Check if `CLRType` is nil or not. proc isNull*(x: CLRVariant): bool {.borrow.} ## Check if `CLRVariant` is C# null or VB nothing. @@ -112,7 +109,9 @@ else: result = CLRVariant toVariant(x) -proc toCLRVariant*[T](x: openArray[T], vt: VARENUM = VT_VARIANT): CLRVariant {.inline.} = +proc toCLRVariant*[T]( + x: openArray[T], vt: VARENUM = VT_VARIANT +): CLRVariant {.inline.} = ## Converts any supported openArray types into a `CLRVariant`. result = CLRVariant toVariant(x, vt) @@ -125,86 +124,113 @@ ## Converts a `CLRVariant` into any supported types. result = fromVariant[T](variant x) -converter clrVariantToVariant*(x: CLRVariant): variant = variant x +converter clrVariantToVariant*(x: CLRVariant): variant = ## Converts `CLRVariant` into `variant` automatically. + variant x -converter clrVariantToString*(x: CLRVariant): string = fromCLRVariant[string](x) +converter clrVariantToString*(x: CLRVariant): string = ## Converts `CLRVariant` into `string` automatically. + fromCLRVariant[string](x) -converter clrVariantToCString*(x: CLRVariant): cstring = fromCLRVariant[cstring](x) +converter clrVariantToCString*(x: CLRVariant): cstring = ## Converts `CLRVariant` into `cstring` automatically. + fromCLRVariant[cstring](x) -converter clrVariantToMString*(x: CLRVariant): mstring = fromCLRVariant[mstring](x) +converter clrVariantToMString*(x: CLRVariant): mstring = ## Converts `CLRVariant` into `mstring` automatically. + fromCLRVariant[mstring](x) -converter clrVariantToWString*(x: CLRVariant): wstring = fromCLRVariant[wstring](x) +converter clrVariantToWString*(x: CLRVariant): wstring = ## Converts `CLRVariant` into `wstring` automatically. + fromCLRVariant[wstring](x) -converter clrVariantToChar*(x: CLRVariant): char = fromCLRVariant[char](x) +converter clrVariantToChar*(x: CLRVariant): char = ## Converts `CLRVariant` into `char` automatically. + fromCLRVariant[char](x) -converter clrVariantToBool*(x: CLRVariant): bool = fromCLRVariant[bool](x) +converter clrVariantToBool*(x: CLRVariant): bool = ## Converts `CLRVariant` into `bool` automatically. + fromCLRVariant[bool](x) -converter clrVariantToPtrIDispatch*(x: CLRVariant): ptr IDispatch = fromCLRVariant[ptr IDispatch](x) +converter clrVariantToPtrIDispatch*(x: CLRVariant): ptr IDispatch = ## Converts `CLRVariant` into `ptr IDispatch` automatically. + fromCLRVariant[ptr IDispatch](x) -converter clrVariantToPtrIUnknown*(x: CLRVariant): ptr IUnknown = fromCLRVariant[ptr IUnknown](x) +converter clrVariantToPtrIUnknown*(x: CLRVariant): ptr IUnknown = ## Converts `CLRVariant` into `ptr IUnknown` automatically. + fromCLRVariant[ptr IUnknown](x) -converter clrVariantToPointer*(x: CLRVariant): pointer = fromCLRVariant[pointer](x) +converter clrVariantToPointer*(x: CLRVariant): pointer = ## Converts `CLRVariant` into `ptr IUnknown` automatically. + fromCLRVariant[pointer](x) -converter clrVariantToInt*(x: CLRVariant): int = fromCLRVariant[int](x) +converter clrVariantToInt*(x: CLRVariant): int = ## Converts `CLRVariant` into `int` automatically. + fromCLRVariant[int](x) -converter clrVariantToUint*(x: CLRVariant): uint = fromCLRVariant[uint](x) +converter clrVariantToUint*(x: CLRVariant): uint = ## Converts `CLRVariant` into `uint` automatically. + fromCLRVariant[uint](x) -converter clrVariantToInt8*(x: CLRVariant): int8 = fromCLRVariant[int8](x) +converter clrVariantToInt8*(x: CLRVariant): int8 = ## Converts `CLRVariant` into `int8` automatically. + fromCLRVariant[int8](x) -converter clrVariantToUint8*(x: CLRVariant): uint8 = fromCLRVariant[uint8](x) +converter clrVariantToUint8*(x: CLRVariant): uint8 = ## Converts `CLRVariant` into `uint8` automatically. + fromCLRVariant[uint8](x) -converter clrVariantToInt16*(x: CLRVariant): int16 = fromCLRVariant[int16](x) +converter clrVariantToInt16*(x: CLRVariant): int16 = ## Converts `CLRVariant` into `int16` automatically. + fromCLRVariant[int16](x) -converter clrVariantToUInt16*(x: CLRVariant): uint16 = fromCLRVariant[uint16](x) +converter clrVariantToUInt16*(x: CLRVariant): uint16 = ## Converts `CLRVariant` into `uint16` automatically. + fromCLRVariant[uint16](x) -converter clrVariantToInt32*(x: CLRVariant): int32 = fromCLRVariant[int32](x) +converter clrVariantToInt32*(x: CLRVariant): int32 = ## Converts `CLRVariant` into `int32` automatically. + fromCLRVariant[int32](x) -converter clrVariantToUInt32*(x: CLRVariant): uint32 = fromCLRVariant[uint32](x) +converter clrVariantToUInt32*(x: CLRVariant): uint32 = ## Converts `CLRVariant` into `uint32` automatically. + fromCLRVariant[uint32](x) -converter clrVariantToInt64*(x: CLRVariant): int64 = fromCLRVariant[int64](x) +converter clrVariantToInt64*(x: CLRVariant): int64 = ## Converts `CLRVariant` into `int64` automatically. + fromCLRVariant[int64](x) -converter clrVariantToUInt64*(x: CLRVariant): uint64 = fromCLRVariant[uint64](x) +converter clrVariantToUInt64*(x: CLRVariant): uint64 = ## Converts `CLRVariant` into `uint64` automatically. + fromCLRVariant[uint64](x) -converter clrVariantToFloat32*(x: CLRVariant): float32 = fromCLRVariant[float32](x) +converter clrVariantToFloat32*(x: CLRVariant): float32 = ## Converts `CLRVariant` into `float32` automatically. + fromCLRVariant[float32](x) -converter clrVariantToFloat64*(x: CLRVariant): float64 = fromCLRVariant[float64](x) +converter clrVariantToFloat64*(x: CLRVariant): float64 = ## Converts `CLRVariant` into `float64` automatically. + fromCLRVariant[float64](x) -converter clrVariantToVARIANTRaw*(x: CLRVariant): VARIANT = fromCLRVariant[VARIANT](x) +converter clrVariantToVARIANTRaw*(x: CLRVariant): VARIANT = ## Converts `CLRVariant` into `VARIANT` automatically. + fromCLRVariant[VARIANT](x) -converter clrVariantToCOMArray1D*(x: CLRVariant): COMArray1D = fromCLRVariant[COMArray1D](x) +converter clrVariantToCOMArray1D*(x: CLRVariant): COMArray1D = ## Converts `CLRVariant` into `COMArray1D` automatically. + fromCLRVariant[COMArray1D](x) -converter clrVariantToCOMArray2D*(x: CLRVariant): COMArray2D = fromCLRVariant[COMArray2D](x) +converter clrVariantToCOMArray2D*(x: CLRVariant): COMArray2D = ## Converts `CLRVariant` into `COMArray2D` automatically. + fromCLRVariant[COMArray2D](x) -converter clrVariantToCOMArray3D*(x: CLRVariant): COMArray3D = fromCLRVariant[COMArray3D](x) +converter clrVariantToCOMArray3D*(x: CLRVariant): COMArray3D = ## Converts `CLRVariant` into `COMArray3D` automatically. + fromCLRVariant[COMArray3D](x) -converter clrVariantToCOMBinary*(x: CLRVariant): COMBinary = fromCLRVariant[COMBinary](x) +converter clrVariantToCOMBinary*(x: CLRVariant): COMBinary = ## Converts `CLRVariant` into `COMBinary` automatically. + fromCLRVariant[COMBinary](x) template ERR(x: HRESULT): bool = hresult = x @@ -212,8 +238,10 @@ proc clrError(msg: string, hr: HRESULT = 0) = var hr = hr - if hr == 0: hr = hresult - if hr == 0: hr = E_FAIL + if hr == 0: + hr = hresult + if hr == 0: + hr = E_FAIL var e = newException(CLRError, fmt"{msg} (0x{hr.tohex})") e.hresult = hr @@ -223,10 +251,8 @@ var ret: ptr T if v.unwrap.vt == VT_UNKNOWN: hresult = v.unwrap.punkVal.QueryInterface(&(`IID T`), &ret) - elif v.unwrap.vt == VT_DISPATCH: hresult = v.unwrap.pdispVal.QueryInterface(&(`IID T`), &ret) - else: hresult = E_NOINTERFACE @@ -264,9 +290,13 @@ result = newCom(cast[ptr IDispatch](v.unwrap.punkVal)) -proc invoke(typ: ptr IType, self: VARIANT, name: string, flags: int, - vargs: varargs[CLRVariant, toCLRVariant]): CLRVariant {.discardable.} = - +proc invoke( + typ: ptr IType, + self: VARIANT, + name: string, + flags: int, + vargs: varargs[CLRVariant, toCLRVariant], +): CLRVariant {.discardable.} = var bstr = SysAllocString(name) retVal: VARIANT @@ -286,8 +316,9 @@ result = CLRVariant wrap(retVal) -proc invoke*(v: CLRVariant, name: string, flags: int, - vargs: varargs[CLRVariant, toCLRVariant]): CLRVariant {.discardable.} = +proc invoke*( + v: CLRVariant, name: string, flags: int, vargs: varargs[CLRVariant, toCLRVariant] +): CLRVariant {.discardable.} = ## Low level `invoke` for `CLRVariant`. Equal to `CLRVariant.GetType().InvokeMember(...)` if v.isNil: clrError("variant is nil", E_POINTER) @@ -298,8 +329,10 @@ self: VARIANT defer: - if not obj.isNil: obj.Release() - if not typ.isNil: typ.Release() + if not obj.isNil: + obj.Release() + if not typ.isNil: + typ.Release() obj = v.to(IObject) if obj.isNil: @@ -315,8 +348,9 @@ result = invoke(typ, self, name, flags, vargs) -proc invoke*(v: CLRType, name: string, flags: int, - vargs: varargs[CLRVariant, toCLRVariant]): CLRVariant {.discardable.} = +proc invoke*( + v: CLRType, name: string, flags: int, vargs: varargs[CLRVariant, toCLRVariant] +): CLRVariant {.discardable.} = ## Low level `invoke` for `CLRType`. Equal to `CLRType.InvokeMember(...)` let v = CLRVariant v if v.isNil: @@ -327,7 +361,8 @@ self: VARIANT defer: - if not typ.isNil: typ.Release() + if not typ.isNil: + typ.Release() typ = v.to(IType) if typ.isNil: @@ -335,8 +370,9 @@ result = invoke(typ, self, name, flags, vargs) -proc invoke*(v: CLRInterface, name: string, flags: int, - vargs: varargs[CLRVariant, toCLRVariant]): CLRVariant {.discardable.} = +proc invoke*( + v: CLRInterface, name: string, flags: int, vargs: varargs[CLRVariant, toCLRVariant] +): CLRVariant {.discardable.} = ## Low level `invoke` for `CLRInterface`. if v.obj.isNil or v.intf.isNil: clrError("invalid interface", E_POINTER) @@ -347,8 +383,10 @@ self: VARIANT defer: - if not obj.isNil: obj.Release() - if not typ.isNil: typ.Release() + if not obj.isNil: + obj.Release() + if not typ.isNil: + typ.Release() obj = v.obj.to(IObject) if obj.isNil: @@ -367,51 +405,88 @@ macro `.`*(v: CLRVariant, name: untyped, vargs: varargs[untyped]): untyped = ## Dot operator for `CLRVariant`. Invoke a method, get a property, or get a field. - result = newCall("invoke", v, newStrLitNode($name), - newIntLitNode(BindingFlags_InvokeMethod or BindingFlags_GetProperty or - BindingFlags_GetField or BindingFlags_OptionalParamBinding)) + result = newCall( + "invoke", + v, + newStrLitNode($name), + newIntLitNode( + BindingFlags_InvokeMethod or BindingFlags_GetProperty or BindingFlags_GetField or + BindingFlags_OptionalParamBinding + ), + ) - for i in vargs: result.add i + for i in vargs: + result.add i macro `.=`*(v: CLRVariant, name: untyped, vargs: varargs[untyped]): untyped = ## Dot assignment operator for `CLRVariant`. Set a property or field. - result = newCall("invoke", v, newStrLitNode($name), - newIntLitNode(BindingFlags_SetProperty or BindingFlags_SetField)) + result = newCall( + "invoke", + v, + newStrLitNode($name), + newIntLitNode(BindingFlags_SetProperty or BindingFlags_SetField), + ) - for i in vargs: result.add i + for i in vargs: + result.add i macro `.`*(v: CLRType, name: untyped, vargs: varargs[untyped]): untyped = ## Dot operator for `CLRType`. Invoke a static method, get a static property, or get a static field. - result = newCall("invoke", v, newStrLitNode($name), - newIntLitNode(BindingFlags_InvokeMethod or BindingFlags_GetProperty or - BindingFlags_GetField or BindingFlags_FlattenHierarchy or BindingFlags_Static or - BindingFlags_Public or BindingFlags_NonPublic or BindingFlags_OptionalParamBinding)) + result = newCall( + "invoke", + v, + newStrLitNode($name), + newIntLitNode( + BindingFlags_InvokeMethod or BindingFlags_GetProperty or BindingFlags_GetField or + BindingFlags_FlattenHierarchy or BindingFlags_Static or BindingFlags_Public or + BindingFlags_NonPublic or BindingFlags_OptionalParamBinding + ), + ) - for i in vargs: result.add i + for i in vargs: + result.add i macro `.=`*(v: CLRType, name: untyped, vargs: varargs[untyped]): untyped = ## Dot assignment operator for `CLRType`. Set a static property or field. - result = newCall("invoke", v, newStrLitNode($name), - newIntLitNode(BindingFlags_SetProperty or BindingFlags_SetField or - BindingFlags_FlattenHierarchy or BindingFlags_Static or BindingFlags_Public or - BindingFlags_NonPublic)) + result = newCall( + "invoke", + v, + newStrLitNode($name), + newIntLitNode( + BindingFlags_SetProperty or BindingFlags_SetField or BindingFlags_FlattenHierarchy or + BindingFlags_Static or BindingFlags_Public or BindingFlags_NonPublic + ), + ) - for i in vargs: result.add i + for i in vargs: + result.add i macro `.`*(v: CLRInterface, name: untyped, vargs: varargs[untyped]): untyped = ## Dot operator for `CLRInterface`. - result = newCall("invoke", v, newStrLitNode($name), - newIntLitNode(BindingFlags_InvokeMethod or BindingFlags_GetProperty or - BindingFlags_GetField or BindingFlags_OptionalParamBinding)) + result = newCall( + "invoke", + v, + newStrLitNode($name), + newIntLitNode( + BindingFlags_InvokeMethod or BindingFlags_GetProperty or BindingFlags_GetField or + BindingFlags_OptionalParamBinding + ), + ) - for i in vargs: result.add i + for i in vargs: + result.add i macro `.=`*(v: CLRInterface, name: untyped, vargs: varargs[untyped]): untyped = ## Dot assignment operator for `CLRInterface`. - result = newCall("invoke", v, newStrLitNode($name), - newIntLitNode(BindingFlags_SetProperty or BindingFlags_SetField)) + result = newCall( + "invoke", + v, + newStrLitNode($name), + newIntLitNode(BindingFlags_SetProperty or BindingFlags_SetField), + ) - for i in vargs: result.add i + for i in vargs: + result.add i proc reformatAsgn(n: NimNode): NimNode = # reformat code: @@ -425,7 +500,7 @@ params.insert(1, newIntLitNode(BindingFlags_SetProperty or BindingFlags_SetField)) params.insert(1, dots.last.toStrLit) params.add(n.last) - dots.del(dots.len-1) + dots.del(dots.len - 1) dots.add(newIdentNode("invoke")) result = n[0] @@ -435,9 +510,8 @@ if n.kind == nnkAsgn and n[0].kind == nnkCall and n[0][0].kind == nnkDotExpr: # deal with a.b(c) = d result = clrReformat(reformatAsgn(n)) - elif n.len != 0: - for i in 0.. sab[1].cElements: sab[1].cElements = x[i].len.ULONG + for i in 0 ..< x.len: + if x[i].len.ULONG > sab[1].cElements: + sab[1].cElements = x[i].len.ULONG result.raw.parray = SafeArrayCreate(VARTYPE vt, 2, &sab[0]) if result.raw.parray == nil: - raise newException(VariantConversionError, vcErrorMsg("openarray", VARTYPE(vt or VT_ARRAY).typeDesc(2))) + raise newException( + VariantConversionError, + vcErrorMsg("openarray", VARTYPE(vt or VT_ARRAY).typeDesc(2)), + ) - for i in 0.. sab[1].cElements: sab[1].cElements = x[i].len.ULONG - for j in 0.. sab[2].cElements: sab[2].cElements = x[i][j].len.ULONG + for i in 0 ..< x.len: + if x[i].len.ULONG > sab[1].cElements: + sab[1].cElements = x[i].len.ULONG + for j in 0 ..< x[i].len: + if x[i][j].len.ULONG > sab[2].cElements: + sab[2].cElements = x[i][j].len.ULONG result.raw.parray = SafeArrayCreate(VARTYPE vt, 3, &sab[0]) if result.raw.parray == nil: - raise newException(VariantConversionError, vcErrorMsg("openarray", VARTYPE(vt or VT_ARRAY).typeDesc(3))) + raise newException( + VariantConversionError, + vcErrorMsg("openarray", VARTYPE(vt or VT_ARRAY).typeDesc(3)), + ) - for i in 0..= vargs.len: break + if index >= vargs.len: + break if args[i].vt == VT_EMPTY: args[i] = vargs[index].raw index.inc @@ -995,9 +1195,11 @@ skipArgs = 0 if args.len != 0: - for i in 0..args.high: - if args[i].vt == VT_EMPTY: skipArgs.inc - else: break + for i in 0 .. args.high: + if args[i].vt == VT_EMPTY: + skipArgs.inc + else: + break dp.rgvarg = &args[skipArgs] dp.cArgs = DWORD(args.len - skipArgs) @@ -1006,14 +1208,17 @@ dp.rgdispidNamedArgs = &dispidNamed dp.cNamedArgs = 1 - if self.disp.Invoke(dispid, &IID_NULL, LOCALE_USER_DEFAULT, invokeType, &dp, &ret, &excep, nil).ERR: + if self.disp.Invoke( + dispid, &IID_NULL, LOCALE_USER_DEFAULT, invokeType, &dp, &ret, &excep, nil + ).ERR: {.gcsafe.}: if cast[pointer](excep.pfnDeferredFillIn).notNil: discard excep.pfnDeferredFillIn(&excep) if excep.bstrSource.notNil: var err = $toVariant(excep.bstrSource) - if excep.bstrDescription.notNil: err &= ": " & $toVariant(excep.bstrDescription) + if excep.bstrDescription.notNil: + err &= ": " & $toVariant(excep.bstrDescription) SysFreeString(excep.bstrSource) SysFreeString(excep.bstrDescription) SysFreeString(excep.bstrHelpFile) @@ -1024,40 +1229,66 @@ result = newVariant(ret) discard VariantClear(&ret) -proc call*(self: com, name: string, vargs: varargs[variant, toVariant], - kwargs: openarray[(string, variant)] = []): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_METHOD, vargs, kwargs=kwargs) +proc call*( + self: com, + name: string, + vargs: varargs[variant, toVariant], + kwargs: openarray[(string, variant)] = [], +): variant {.discardable, inline.} = + result = invoke(self, name, DISPATCH_METHOD, vargs, kwargs = kwargs) -proc call*(self: com, name: string, vargs: varargs[variant, toVariant]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_METHOD, vargs, kwargs=[]) +proc call*( + self: com, name: string, vargs: varargs[variant, toVariant] +): variant {.discardable, inline.} = + result = invoke(self, name, DISPATCH_METHOD, vargs, kwargs = []) -proc set*(self: com, name: string, vargs: varargs[variant, toVariant], - kwargs: openarray[(string, variant)]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_PROPERTYPUT, vargs, kwargs=kwargs) +proc set*( + self: com, + name: string, + vargs: varargs[variant, toVariant], + kwargs: openarray[(string, variant)], +): variant {.discardable, inline.} = + result = invoke(self, name, DISPATCH_PROPERTYPUT, vargs, kwargs = kwargs) -proc set*(self: com, name: string, vargs: varargs[variant, toVariant]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_PROPERTYPUT, vargs, kwargs=[]) +proc set*( + self: com, name: string, vargs: varargs[variant, toVariant] +): variant {.discardable, inline.} = + result = invoke(self, name, DISPATCH_PROPERTYPUT, vargs, kwargs = []) -proc setRef*(self: com, name: string, vargs: varargs[variant, toVariant], - kwargs: openarray[(string, variant)]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_PROPERTYPUTREF, vargs, kwargs=kwargs) +proc setRef*( + self: com, + name: string, + vargs: varargs[variant, toVariant], + kwargs: openarray[(string, variant)], +): variant {.discardable, inline.} = + result = invoke(self, name, DISPATCH_PROPERTYPUTREF, vargs, kwargs = kwargs) -proc setRef*(self: com, name: string, vargs: varargs[variant, toVariant]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_PROPERTYPUTREF, vargs, kwargs=[]) +proc setRef*( + self: com, name: string, vargs: varargs[variant, toVariant] +): variant {.discardable, inline.} = + result = invoke(self, name, DISPATCH_PROPERTYPUTREF, vargs, kwargs = []) -proc get*(self: com, name: string, vargs: varargs[variant, toVariant], - kwargs: openarray[(string, variant)]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_METHOD or DISPATCH_PROPERTYGET, vargs, kwargs=kwargs) +proc get*( + self: com, + name: string, + vargs: varargs[variant, toVariant], + kwargs: openarray[(string, variant)], +): variant {.discardable, inline.} = + result = + invoke(self, name, DISPATCH_METHOD or DISPATCH_PROPERTYGET, vargs, kwargs = kwargs) -proc get*(self: com, name: string, vargs: varargs[variant, toVariant]): variant {.discardable, inline.} = - result = invoke(self, name, DISPATCH_METHOD or DISPATCH_PROPERTYGET, vargs, kwargs=[]) +proc get*( + self: com, name: string, vargs: varargs[variant, toVariant] +): variant {.discardable, inline.} = + result = + invoke(self, name, DISPATCH_METHOD or DISPATCH_PROPERTYGET, vargs, kwargs = []) proc `[]`*(self: variant, name: string): variant = var tinfo = self.getVariantTypeInfo() if tinfo.notNil: - defer: tinfo.Release() + defer: + tinfo.Release() return tinfo.getValue(name) - else: return invoke(self, name, DISPATCH_METHOD or DISPATCH_PROPERTYGET) @@ -1076,7 +1307,16 @@ dp: DISPPARAMS enumvar: ptr IEnumVARIANT - if x.disp.Invoke(DISPID_NEWENUM, &IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD or DISPATCH_PROPERTYGET, &dp, &ret, nil, nil).ERR: + if x.disp.Invoke( + DISPID_NEWENUM, + &IID_NULL, + LOCALE_USER_DEFAULT, + DISPATCH_METHOD or DISPATCH_PROPERTYGET, + &dp, + &ret, + nil, + nil, + ).ERR: raise newCOMError("object is not iterable") if ret.punkVal.QueryInterface(&IID_IEnumVARIANT, &enumvar).ERR: @@ -1093,10 +1333,10 @@ if not x.isNil: var tinfo = x.getVariantTypeInfo() if tinfo.notNil: - defer: tinfo.Release() - for tup in tinfo.items(keyOnly=true): + defer: + tinfo.Release() + for tup in tinfo.items(keyOnly = true): yield toVariant(tup.key) - else: var obj = x.com for v in obj: @@ -1118,12 +1358,14 @@ macro `.`*(self: com, name: untyped, vargs: varargs[untyped]): untyped = result = newCall("get", self, newStrLitNode($name)) - for i in vargs: result.add i + for i in vargs: + result.add i result.standardizeKwargs() macro `.=`*(self: com, name: untyped, vargs: varargs[untyped]): untyped = result = newCall("set", self, newStrLitNode($name)) - for i in vargs: result.add i + for i in vargs: + result.add i result.standardizeKwargs() proc GetCLSID(progId: string, clsid: var GUID): HRESULT = @@ -1144,10 +1386,14 @@ # better than CoCreateInstance: # some IClassFactory.CreateInstance return SUCCEEDED with nil pointer, this crash CoCreateInstance # for example: {D5F7E36B-5B38-445D-A50F-439B8FCBB87A} - if CoGetClassObject(&clsid, CLSCTX_LOCAL_SERVER or CLSCTX_INPROC_SERVER, nil, &IID_IClassFactory, &pCf).OK: - defer: pCf.Release() + if CoGetClassObject( + &clsid, CLSCTX_LOCAL_SERVER or CLSCTX_INPROC_SERVER, nil, &IID_IClassFactory, &pCf + ).OK: + defer: + pCf.Release() - if pCf.CreateInstance(nil, &IID_IDispatch, &(result.disp)).OK and result.disp.notNil: + if pCf.CreateInstance(nil, &IID_IDispatch, &(result.disp)).OK and + result.disp.notNil: return result raise newCOMError("unable to create object from " & progId) @@ -1164,18 +1410,26 @@ if progId.len != 0: if GetCLSID(progId, clsid).OK: if file.len != 0: - if CoCreateInstance(&clsid, nil, CLSCTX_LOCAL_SERVER or CLSCTX_INPROC_SERVER, &IID_IPersistFile, &pPf).OK: - defer: pPf.Release() + if CoCreateInstance( + &clsid, + nil, + CLSCTX_LOCAL_SERVER or CLSCTX_INPROC_SERVER, + &IID_IPersistFile, + &pPf, + ).OK: + defer: + pPf.Release() - if pPf.Load(file, 0).OK and pPf.QueryInterface(&IID_IDispatch, &(result.disp)).OK: + if pPf.Load(file, 0).OK and + pPf.QueryInterface(&IID_IDispatch, &(result.disp)).OK: return result else: if GetActiveObject(&clsid, nil, &pUk).OK: - defer: pUk.Release() + defer: + pUk.Release() if pUk.QueryInterface(&IID_IDispatch, &(result.disp)).OK: return result - elif file.len != 0: if CoGetObject(file, nil, &IID_IDispatch, &(result.disp)).OK: return result @@ -1197,11 +1451,15 @@ refCount: ULONG handler: comEventHandler parent: com + Sink {.pure.} = ptr SinkObj -proc Sink_QueryInterface(self: ptr IUnknown, riid: ptr IID, pvObject: ptr pointer): HRESULT {.stdcall.} = +proc Sink_QueryInterface( + self: ptr IUnknown, riid: ptr IID, pvObject: ptr pointer +): HRESULT {.stdcall.} = var this = cast[Sink](self) - if IsEqualGUID(riid, &IID_IUnknown) or IsEqualGUID(riid, &IID_IDispatch) or IsEqualGUID(riid, &this.iid): + if IsEqualGUID(riid, &IID_IUnknown) or IsEqualGUID(riid, &IID_IDispatch) or + IsEqualGUID(riid, &this.iid): pvObject[] = self self.AddRef() result = S_OK @@ -1224,21 +1482,42 @@ else: result = this.refCount -proc Sink_GetTypeInfoCount(self: ptr IDispatch, pctinfo: ptr UINT): HRESULT {.stdcall.} = +proc Sink_GetTypeInfoCount( + self: ptr IDispatch, pctinfo: ptr UINT +): HRESULT {.stdcall.} = pctinfo[] = 1 result = S_OK -proc Sink_GetTypeInfo(self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr LPTYPEINFO): HRESULT {.stdcall.} = +proc Sink_GetTypeInfo( + self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr LPTYPEINFO +): HRESULT {.stdcall.} = var this = cast[Sink](self) ppTInfo[] = this.typeInfo this.typeInfo.AddRef() result = S_OK -proc Sink_GetIDsOfNames(self: ptr IDispatch, riid: REFIID, rgszNames: ptr LPOLESTR, cNames: UINT, lcid: LCID, rgDispId: ptr DISPID): HRESULT {.stdcall.} = +proc Sink_GetIDsOfNames( + self: ptr IDispatch, + riid: REFIID, + rgszNames: ptr LPOLESTR, + cNames: UINT, + lcid: LCID, + rgDispId: ptr DISPID, +): HRESULT {.stdcall.} = var this = cast[Sink](self) result = DispGetIDsOfNames(this.typeInfo, rgszNames, cNames, rgDispId) -proc Sink_Invoke(self: ptr IDispatch, dispid: DISPID, riid: REFIID, lcid: LCID, wFlags: WORD, params: ptr DISPPARAMS, ret: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.stdcall, thread.} = +proc Sink_Invoke( + self: ptr IDispatch, + dispid: DISPID, + riid: REFIID, + lcid: LCID, + wFlags: WORD, + params: ptr DISPPARAMS, + ret: ptr VARIANT, + pExcepInfo: ptr EXCEPINFO, + puArgErr: ptr UINT, +): HRESULT {.stdcall, thread.} = var this = cast[Sink](self) var bname: BSTR @@ -1255,34 +1534,34 @@ name = $bname SysFreeString(bname) - for i in 1..total: - sargs.add(newVariant(args[total-i])) + for i in 1 .. total: + sargs.add(newVariant(args[total - i])) try: - {.gcsafe.}: vret = this.handler(this.parent, name, sargs) - + {.gcsafe.}: + vret = this.handler(this.parent, name, sargs) except CatchableError: let e = getCurrentException() echo "uncatched exception inside event hander: " & $e.name & " (" & $e.msg & ")" - finally: if vret.notNil and ret.notNil: result = VariantCopy(ret, &vret.raw) else: result = S_OK -let - SinkVtbl: IDispatchVtbl = IDispatchVtbl( - QueryInterface: Sink_QueryInterface, - AddRef: Sink_AddRef, - Release: Sink_Release, - GetTypeInfoCount: Sink_GetTypeInfoCount, - GetTypeInfo: Sink_GetTypeInfo, - GetIDsOfNames: Sink_GetIDsOfNames, - Invoke: Sink_Invoke - ) +let SinkVtbl: IDispatchVtbl = IDispatchVtbl( + QueryInterface: Sink_QueryInterface, + AddRef: Sink_AddRef, + Release: Sink_Release, + GetTypeInfoCount: Sink_GetTypeInfoCount, + GetTypeInfo: Sink_GetTypeInfo, + GetIDsOfNames: Sink_GetIDsOfNames, + Invoke: Sink_Invoke, +) -proc newSink(parent: com, iid: GUID, typeInfo: ptr ITypeInfo, handler: comEventHandler): Sink = +proc newSink( + parent: com, iid: GUID, typeInfo: ptr ITypeInfo, handler: comEventHandler +): Sink = result = cast[Sink.type](alloc0(sizeof(SinkObj))) result.lpVtbl = SinkVtbl.unsafeaddr result.parent = parent @@ -1291,7 +1570,9 @@ typeInfo.AddRef() result.handler = handler -proc connectRaw(self: com, riid: REFIID = nil, cookie: DWORD, handler: comEventHandler = nil): DWORD = +proc connectRaw( + self: com, riid: REFIID = nil, cookie: DWORD, handler: comEventHandler = nil +): DWORD = var iid: IID count, index: UINT @@ -1303,45 +1584,61 @@ sink: Sink defer: - if typeInfo.notNil: typeInfo.Release() - if dispTypeInfo.notNil: dispTypeInfo.Release() - if connection.notNil: connection.Release() - if typeLib.notNil: typeLib.Release() - if container.notNil: container.Release() - if enu.notNil: enu.Release() + if typeInfo.notNil: + typeInfo.Release() + if dispTypeInfo.notNil: + dispTypeInfo.Release() + if connection.notNil: + connection.Release() + if typeLib.notNil: + typeLib.Release() + if container.notNil: + container.Release() + if enu.notNil: + enu.Release() block okay: - if self.disp.GetTypeInfoCount(&count).ERR or count != 1: break okay - if self.disp.GetTypeInfo(0, 0, &dispTypeInfo).ERR: break okay - if dispTypeInfo.GetContainingTypeLib(&typeLib, &index).ERR: break okay - if self.disp.QueryInterface(&IID_IConnectionPointContainer, &container).ERR: break okay + if self.disp.GetTypeInfoCount(&count).ERR or count != 1: + break okay + if self.disp.GetTypeInfo(0, 0, &dispTypeInfo).ERR: + break okay + if dispTypeInfo.GetContainingTypeLib(&typeLib, &index).ERR: + break okay + if self.disp.QueryInterface(&IID_IConnectionPointContainer, &container).ERR: + break okay if riid.isNil: - if container.EnumConnectionPoints(&enu).ERR: break okay + if container.EnumConnectionPoints(&enu).ERR: + break okay enu.Reset() while enu.Next(1, &connection, nil) != S_FALSE: if connection.GetConnectionInterface(&iid).OK and - typeLib.GetTypeInfoOfGuid(&iid, &typeInfo).OK: - break + typeLib.GetTypeInfoOfGuid(&iid, &typeInfo).OK: + break connection.Release() connection = nil - else: - if container.FindConnectionPoint(riid, &connection).ERR: break okay - if connection.GetConnectionInterface(&iid).ERR: break okay - if typeLib.GetTypeInfoOfGuid(riid, &typeInfo).ERR: break okay + if container.FindConnectionPoint(riid, &connection).ERR: + break okay + if connection.GetConnectionInterface(&iid).ERR: + break okay + if typeLib.GetTypeInfoOfGuid(riid, &typeInfo).ERR: + break okay if handler.notNil: sink = newSink(self, iid, typeInfo, handler) - if connection.Advise(cast[ptr IUnknown](sink), &result).OK: return result - + if connection.Advise(cast[ptr IUnknown](sink), &result).OK: + return result elif cookie != 0: - if connection.Unadvise(cookie).OK: return 1 + if connection.Unadvise(cookie).OK: + return 1 raise newCOMError("unable to connect/disconnect event") -proc connect*(self: com, handler: comEventHandler, riid: REFIID = nil): DWORD {.discardable.} = +proc connect*( + self: com, handler: comEventHandler, riid: REFIID = nil +): DWORD {.discardable.} = ## Connect a COM object to a comEventHandler. Return a cookie to disconnect (if needed). ## Handler is a user defined proc to receive the COM event. ## comEventHandler is defined as: @@ -1369,7 +1666,7 @@ params.insert(1, dots.last.toStrLit) params.add(n.last) - dots.del(dots.len-1) + dots.del(dots.len - 1) dots.add(newIdentNode("set")) result = n[0] @@ -1381,12 +1678,13 @@ result = newNimNode(nnkCall) var table = newNimNode(nnkTableConstr) - for i in 0.. ", dict.item(key) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/core.nim --- a/semicongine/thirdparty/winim/winim/core.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/core.nim Thu Aug 22 18:32:21 2024 +0700 @@ -7,8 +7,12 @@ # #==================================================================== -import inc/[windef, winerror, winbase, wingdi, winuser, wincon, winnls, - winver, winreg, winnetwk, winsvc, virtdisk, winsock, wincrypt] +import + inc/[ + windef, winerror, winbase, wingdi, winuser, wincon, winnls, winver, winreg, + winnetwk, winsvc, virtdisk, winsock, wincrypt, + ] -export windef, winerror, winbase, wingdi, winuser, wincon, winnls, - winver, winreg, winnetwk, winsvc, virtdisk, winsock, wincrypt +export + windef, winerror, winbase, wingdi, winuser, wincon, winnls, winver, winreg, winnetwk, + winsvc, virtdisk, winsock, wincrypt diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/extra.nim --- a/semicongine/thirdparty/winim/winim/extra.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/extra.nim Thu Aug 22 18:32:21 2024 +0700 @@ -7,10 +7,14 @@ # #==================================================================== -import inc/[psapi, tlhelp32, wintrust, imagehlp, odbc, dde, lzexpand, nb30, - winperf, mmsystem, winefs, winioctl, winscard, winspool, mcx, powrprof, vfw, - usp10, subauth, snmp, aclapi, dhcpcsdk, wincodec, gdiplus] +import + inc/[ + psapi, tlhelp32, wintrust, imagehlp, odbc, dde, lzexpand, nb30, winperf, mmsystem, + winefs, winioctl, winscard, winspool, mcx, powrprof, vfw, usp10, subauth, snmp, + aclapi, dhcpcsdk, wincodec, gdiplus, + ] -export psapi, tlhelp32, wintrust, imagehlp, odbc, dde, lzexpand, nb30, - winperf, mmsystem, winefs, winioctl, winscard, winspool, mcx, powrprof, vfw, - usp10, subauth, snmp, aclapi, dhcpcsdk, wincodec, gdiplus +export + psapi, tlhelp32, wintrust, imagehlp, odbc, dde, lzexpand, nb30, winperf, mmsystem, + winefs, winioctl, winscard, winspool, mcx, powrprof, vfw, usp10, subauth, snmp, + aclapi, dhcpcsdk, wincodec, gdiplus diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/aclapi.nim --- a/semicongine/thirdparty/winim/winim/inc/aclapi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/aclapi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -50,6 +50,7 @@ ObjectTypeGuid*: GUID InheritedObjectTypeGuid*: GUID pSid*: ptr SID + POBJECTS_AND_SID* = ptr OBJECTS_AND_SID OBJECTS_AND_NAME_A* {.pure.} = object ObjectsPresent*: DWORD @@ -57,6 +58,7 @@ ObjectTypeName*: LPSTR InheritedObjectTypeName*: LPSTR ptstrName*: LPSTR + POBJECTS_AND_NAME_A* = ptr OBJECTS_AND_NAME_A OBJECTS_AND_NAME_W* {.pure.} = object ObjectsPresent*: DWORD @@ -64,6 +66,7 @@ ObjectTypeName*: LPWSTR InheritedObjectTypeName*: LPWSTR ptstrName*: LPWSTR + POBJECTS_AND_NAME_W* = ptr OBJECTS_AND_NAME_W TRUSTEE_A* {.pure.} = object pMultipleTrustee*: ptr TRUSTEE_A @@ -71,6 +74,7 @@ TrusteeForm*: TRUSTEE_FORM TrusteeType*: TRUSTEE_TYPE ptstrName*: LPSTR + PTRUSTEE_A* = ptr TRUSTEE_A TRUSTEE_W* {.pure.} = object pMultipleTrustee*: ptr TRUSTEE_W @@ -78,18 +82,21 @@ TrusteeForm*: TRUSTEE_FORM TrusteeType*: TRUSTEE_TYPE ptstrName*: LPWSTR + PTRUSTEE_W* = ptr TRUSTEE_W EXPLICIT_ACCESS_A* {.pure.} = object grfAccessPermissions*: DWORD grfAccessMode*: ACCESS_MODE grfInheritance*: DWORD Trustee*: TRUSTEE_A + PEXPLICIT_ACCESS_A* = ptr EXPLICIT_ACCESS_A EXPLICIT_ACCESS_W* {.pure.} = object grfAccessPermissions*: DWORD grfAccessMode*: ACCESS_MODE grfInheritance*: DWORD Trustee*: TRUSTEE_W + PEXPLICIT_ACCESS_W* = ptr EXPLICIT_ACCESS_W ACTRL_ACCESS_ENTRYA* {.pure.} = object Trustee*: TRUSTEE_A @@ -98,6 +105,7 @@ ProvSpecificAccess*: ACCESS_RIGHTS Inheritance*: INHERIT_FLAGS lpInheritProperty*: LPSTR + PACTRL_ACCESS_ENTRYA* = ptr ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRYW* {.pure.} = object Trustee*: TRUSTEE_W @@ -106,34 +114,41 @@ ProvSpecificAccess*: ACCESS_RIGHTS Inheritance*: INHERIT_FLAGS lpInheritProperty*: LPWSTR + PACTRL_ACCESS_ENTRYW* = ptr ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY_LISTA* {.pure.} = object cEntries*: ULONG pAccessList*: ptr ACTRL_ACCESS_ENTRYA + PACTRL_ACCESS_ENTRY_LISTA* = ptr ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LISTW* {.pure.} = object cEntries*: ULONG pAccessList*: ptr ACTRL_ACCESS_ENTRYW + PACTRL_ACCESS_ENTRY_LISTW* = ptr ACTRL_ACCESS_ENTRY_LISTW ACTRL_PROPERTY_ENTRYA* {.pure.} = object lpProperty*: LPSTR pAccessEntryList*: PACTRL_ACCESS_ENTRY_LISTA fListFlags*: ULONG + PACTRL_PROPERTY_ENTRYA* = ptr ACTRL_PROPERTY_ENTRYA ACTRL_PROPERTY_ENTRYW* {.pure.} = object lpProperty*: LPWSTR pAccessEntryList*: PACTRL_ACCESS_ENTRY_LISTW fListFlags*: ULONG + PACTRL_PROPERTY_ENTRYW* = ptr ACTRL_PROPERTY_ENTRYW ACTRL_ACCESSA* {.pure.} = object cEntries*: ULONG pPropertyAccessList*: PACTRL_PROPERTY_ENTRYA + PACTRL_ACCESSA* = ptr ACTRL_ACCESSA ACTRL_AUDITA* = ACTRL_ACCESSA PACTRL_AUDITA* = ptr ACTRL_ACCESSA ACTRL_ACCESSW* {.pure.} = object cEntries*: ULONG pPropertyAccessList*: PACTRL_PROPERTY_ENTRYW + PACTRL_ACCESSW* = ptr ACTRL_ACCESSW ACTRL_AUDITW* = ACTRL_ACCESSW PACTRL_AUDITW* = ptr ACTRL_ACCESSW @@ -142,64 +157,78 @@ Access*: ACCESS_RIGHTS fAccessFlags*: ULONG fReturnedAccess*: ULONG + PTRUSTEE_ACCESSA* = ptr TRUSTEE_ACCESSA TRUSTEE_ACCESSW* {.pure.} = object lpProperty*: LPWSTR Access*: ACCESS_RIGHTS fAccessFlags*: ULONG fReturnedAccess*: ULONG + PTRUSTEE_ACCESSW* = ptr TRUSTEE_ACCESSW ACTRL_OVERLAPPED_UNION1* {.pure, union.} = object Provider*: PVOID Reserved1*: ULONG + ACTRL_OVERLAPPED* {.pure.} = object union1*: ACTRL_OVERLAPPED_UNION1 Reserved2*: ULONG hEvent*: HANDLE + PACTRL_OVERLAPPED* = ptr ACTRL_OVERLAPPED ACTRL_ACCESS_INFOA* {.pure.} = object fAccessPermission*: ULONG lpAccessPermissionName*: LPSTR + PACTRL_ACCESS_INFOA* = ptr ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFOW* {.pure.} = object fAccessPermission*: ULONG lpAccessPermissionName*: LPWSTR + PACTRL_ACCESS_INFOW* = ptr ACTRL_ACCESS_INFOW ACTRL_CONTROL_INFOA* {.pure.} = object lpControlId*: LPSTR lpControlName*: LPSTR + PACTRL_CONTROL_INFOA* = ptr ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFOW* {.pure.} = object lpControlId*: LPWSTR lpControlName*: LPWSTR + PACTRL_CONTROL_INFOW* = ptr ACTRL_CONTROL_INFOW FN_OBJECT_MGR_FUNCTS* {.pure.} = object Placeholder*: ULONG + PFN_OBJECT_MGR_FUNCTS* = ptr FN_OBJECT_MGR_FUNCTS INHERITED_FROMA* {.pure.} = object GenerationGap*: LONG AncestorName*: LPSTR + PINHERITED_FROMA* = ptr INHERITED_FROMA INHERITED_FROMW* {.pure.} = object GenerationGap*: LONG AncestorName*: LPWSTR + PINHERITED_FROMW* = ptr INHERITED_FROMW AUDIT_OBJECT_TYPE* {.pure.} = object ObjectType*: GUID Flags*: USHORT Level*: USHORT AccessMask*: ACCESS_MASK + PAUDIT_OBJECT_TYPE* = ptr AUDIT_OBJECT_TYPE AUDIT_OBJECT_TYPES* {.pure.} = object Count*: USHORT Flags*: USHORT pObjectTypes*: ptr AUDIT_OBJECT_TYPE + PAUDIT_OBJECT_TYPES* = ptr AUDIT_OBJECT_TYPES -const - AUTHZ_SS_MAXSIZE* = 128 + +const AUTHZ_SS_MAXSIZE* = 128 type AUDIT_IP_ADDRESS* {.pure.} = object pIpAddress*: array[AUTHZ_SS_MAXSIZE, BYTE] + PAUDIT_IP_ADDRESS* = ptr AUDIT_IP_ADDRESS AUDIT_PARAM_UNION1* {.pure, union.} = object Data0*: ULONG_PTR @@ -210,29 +239,35 @@ LogonId_LowPart*: ULONG pObjectTypes*: ptr AUDIT_OBJECT_TYPES pIpAddress*: ptr AUDIT_IP_ADDRESS + AUDIT_PARAM_UNION2* {.pure, union.} = object Data1*: ULONG_PTR LogonId_HighPart*: LONG + AUDIT_PARAM* {.pure.} = object Type*: AUDIT_PARAM_TYPE Length*: ULONG Flags*: DWORD union1*: AUDIT_PARAM_UNION1 union2*: AUDIT_PARAM_UNION2 + PAUDIT_PARAM* = ptr AUDIT_PARAM AUDIT_PARAMS* {.pure.} = object Length*: ULONG Flags*: DWORD Count*: USHORT Parameters*: ptr AUDIT_PARAM + PAUDIT_PARAMS* = ptr AUDIT_PARAMS AUTHZ_AUDIT_EVENT_TYPE_LEGACY* {.pure.} = object CategoryId*: USHORT AuditId*: USHORT ParameterCount*: USHORT + PAUTHZ_AUDIT_EVENT_TYPE_LEGACY* = ptr AUTHZ_AUDIT_EVENT_TYPE_LEGACY AUTHZ_AUDIT_EVENT_TYPE_UNION* {.pure, union.} = object Legacy*: AUTHZ_AUDIT_EVENT_TYPE_LEGACY + PAUTHZ_AUDIT_EVENT_TYPE_UNION* = ptr AUTHZ_AUDIT_EVENT_TYPE_UNION AUTHZ_AUDIT_EVENT_TYPE_OLD* {.pure.} = object Version*: ULONG @@ -241,6 +276,7 @@ hAudit*: ULONG_PTR LinkId*: LUID u*: AUTHZ_AUDIT_EVENT_TYPE_UNION + PAUTHZ_AUDIT_EVENT_TYPE_OLD* = ptr AUTHZ_AUDIT_EVENT_TYPE_OLD PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE* = ptr AUTHZ_ACCESS_CHECK_RESULTS_HANDLE PAUTHZ_CLIENT_CONTEXT_HANDLE* = ptr AUTHZ_CLIENT_CONTEXT_HANDLE @@ -255,27 +291,33 @@ ObjectTypeList*: POBJECT_TYPE_LIST ObjectTypeListLength*: DWORD OptionalArguments*: PVOID + PAUTHZ_ACCESS_REQUEST* = ptr AUTHZ_ACCESS_REQUEST AUTHZ_ACCESS_REPLY* {.pure.} = object ResultListLength*: DWORD GrantedAccessMask*: PACCESS_MASK SaclEvaluationResults*: PDWORD Error*: PDWORD + PAUTHZ_ACCESS_REPLY* = ptr AUTHZ_ACCESS_REPLY AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE* {.pure.} = object Version*: ULONG64 pName*: PWSTR + PAUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE* = ptr AUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE* {.pure.} = object pValue*: PVOID ValueLength*: ULONG - PAUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE* = ptr AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE + + PAUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE* = + ptr AUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE AUTHZ_SECURITY_ATTRIBUTE_V1_Values* {.pure, union.} = object pInt64*: PLONG64 pUint64*: PULONG64 ppString*: ptr PWSTR pFqbn*: PAUTHZ_SECURITY_ATTRIBUTE_FQBN_VALUE pOctetString*: PAUTHZ_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE + AUTHZ_SECURITY_ATTRIBUTE_V1* {.pure.} = object pName*: PWSTR ValueType*: USHORT @@ -283,14 +325,17 @@ Flags*: ULONG ValueCount*: ULONG Values*: AUTHZ_SECURITY_ATTRIBUTE_V1_Values + PAUTHZ_SECURITY_ATTRIBUTE_V1* = ptr AUTHZ_SECURITY_ATTRIBUTE_V1 AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_Attribute* {.pure, union.} = object pAttributeV1*: PAUTHZ_SECURITY_ATTRIBUTE_V1 + AUTHZ_SECURITY_ATTRIBUTES_INFORMATION* {.pure.} = object Version*: USHORT Reserved*: USHORT AttributeCount*: ULONG Attribute*: AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_Attribute + PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION* = ptr AUTHZ_SECURITY_ATTRIBUTES_INFORMATION AUTHZ_RPC_INIT_INFO_CLIENT* {.pure.} = object version*: USHORT @@ -300,12 +345,33 @@ Endpoint*: PWSTR Options*: PWSTR ServerSpn*: PWSTR + PAUTHZ_RPC_INIT_INFO_CLIENT* = ptr AUTHZ_RPC_INIT_INFO_CLIENT - PFN_AUTHZ_DYNAMIC_ACCESS_CHECK* = proc (hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pAce: PACE_HEADER, pArgs: PVOID, pbAceApplicable: PBOOL): WINBOOL {.stdcall.} - PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS* = proc (hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, Args: PVOID, pSidAttrArray: ptr PSID_AND_ATTRIBUTES, pSidCount: PDWORD, pRestrictedSidAttrArray: ptr PSID_AND_ATTRIBUTES, pRestrictedSidCount: PDWORD): WINBOOL {.stdcall.} - PFN_AUTHZ_FREE_DYNAMIC_GROUPS* = proc (pSidAttrArray: PSID_AND_ATTRIBUTES): VOID {.stdcall.} - PFN_AUTHZ_GET_CENTRAL_ACCESS_POLICY* = proc (hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, capid: PSID, pArgs: PVOID, pCentralAccessPolicyApplicable: PBOOL, ppCentralAccessPolicy: ptr PVOID): WINBOOL {.stdcall.} - PFN_AUTHZ_FREE_CENTRAL_ACCESS_POLICY* = proc (pCentralAccessPolicy: PVOID): VOID {.stdcall.} + PFN_AUTHZ_DYNAMIC_ACCESS_CHECK* = proc( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pAce: PACE_HEADER, + pArgs: PVOID, + pbAceApplicable: PBOOL, + ): WINBOOL {.stdcall.} + PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS* = proc( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + Args: PVOID, + pSidAttrArray: ptr PSID_AND_ATTRIBUTES, + pSidCount: PDWORD, + pRestrictedSidAttrArray: ptr PSID_AND_ATTRIBUTES, + pRestrictedSidCount: PDWORD, + ): WINBOOL {.stdcall.} + PFN_AUTHZ_FREE_DYNAMIC_GROUPS* = + proc(pSidAttrArray: PSID_AND_ATTRIBUTES): VOID {.stdcall.} + PFN_AUTHZ_GET_CENTRAL_ACCESS_POLICY* = proc( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + capid: PSID, + pArgs: PVOID, + pCentralAccessPolicyApplicable: PBOOL, + ppCentralAccessPolicy: ptr PVOID, + ): WINBOOL {.stdcall.} + PFN_AUTHZ_FREE_CENTRAL_ACCESS_POLICY* = + proc(pCentralAccessPolicy: PVOID): VOID {.stdcall.} AUTHZ_INIT_INFO* {.pure.} = object version*: USHORT szResourceManagerName*: PCWSTR @@ -314,14 +380,18 @@ pfnFreeDynamicGroups*: PFN_AUTHZ_FREE_DYNAMIC_GROUPS pfnGetCentralAccessPolicy*: PFN_AUTHZ_GET_CENTRAL_ACCESS_POLICY pfnFreeCentralAccessPolicy*: PFN_AUTHZ_FREE_CENTRAL_ACCESS_POLICY + PAUTHZ_INIT_INFO* = ptr AUTHZ_INIT_INFO AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET* {.pure.} = object szObjectTypeName*: PWSTR dwOffset*: DWORD - PAUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET* = ptr AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET + + PAUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET* = + ptr AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET AUTHZ_SOURCE_SCHEMA_REGISTRATION_UNION1* {.pure, union.} = object pReserved*: PVOID pProviderGuid*: ptr GUID + AUTHZ_SOURCE_SCHEMA_REGISTRATION* {.pure.} = object dwFlags*: DWORD szEventSourceName*: PWSTR @@ -332,6 +402,7 @@ union1*: AUTHZ_SOURCE_SCHEMA_REGISTRATION_UNION1 dwObjectTypeNameCount*: DWORD ObjectTypeNames*: array[ANYSIZE_ARRAY, AUTHZ_REGISTRATION_OBJECT_TYPE_NAME_OFFSET] + PAUTHZ_SOURCE_SCHEMA_REGISTRATION* = ptr AUTHZ_SOURCE_SCHEMA_REGISTRATION SI_OBJECT_INFO* {.pure.} = object dwFlags*: DWORD @@ -340,67 +411,135 @@ pszObjectName*: LPWSTR pszPageTitle*: LPWSTR guidObjectType*: GUID + PSI_OBJECT_INFO* = ptr SI_OBJECT_INFO SI_ACCESS* {.pure.} = object pguid*: ptr GUID mask*: ACCESS_MASK pszName*: LPCWSTR dwFlags*: DWORD + PSI_ACCESS* = ptr SI_ACCESS SI_INHERIT_TYPE* {.pure.} = object pguid*: ptr GUID dwFlags*: ULONG pszName*: LPCWSTR + PSI_INHERIT_TYPE* = ptr SI_INHERIT_TYPE ISecurityInformation* {.pure.} = object lpVtbl*: ptr ISecurityInformationVtbl + ISecurityInformationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetObjectInformation*: proc(self: ptr ISecurityInformation, pObjectInfo: PSI_OBJECT_INFO): HRESULT {.stdcall.} - GetSecurity*: proc(self: ptr ISecurityInformation, RequestedInformation: SECURITY_INFORMATION, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, fDefault: WINBOOL): HRESULT {.stdcall.} - SetSecurity*: proc(self: ptr ISecurityInformation, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): HRESULT {.stdcall.} - GetAccessRights*: proc(self: ptr ISecurityInformation, pguidObjectType: ptr GUID, dwFlags: DWORD, ppAccess: ptr PSI_ACCESS, pcAccesses: ptr ULONG, piDefaultAccess: ptr ULONG): HRESULT {.stdcall.} - MapGeneric*: proc(self: ptr ISecurityInformation, pguidObjectType: ptr GUID, pAceFlags: ptr UCHAR, pMask: ptr ACCESS_MASK): HRESULT {.stdcall.} - GetInheritTypes*: proc(self: ptr ISecurityInformation, ppInheritTypes: ptr PSI_INHERIT_TYPE, pcInheritTypes: ptr ULONG): HRESULT {.stdcall.} - PropertySheetPageCallback*: proc(self: ptr ISecurityInformation, hwnd: HWND, uMsg: UINT, uPage: SI_PAGE_TYPE): HRESULT {.stdcall.} + GetObjectInformation*: proc( + self: ptr ISecurityInformation, pObjectInfo: PSI_OBJECT_INFO + ): HRESULT {.stdcall.} + GetSecurity*: proc( + self: ptr ISecurityInformation, + RequestedInformation: SECURITY_INFORMATION, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + fDefault: WINBOOL, + ): HRESULT {.stdcall.} + SetSecurity*: proc( + self: ptr ISecurityInformation, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ): HRESULT {.stdcall.} + GetAccessRights*: proc( + self: ptr ISecurityInformation, + pguidObjectType: ptr GUID, + dwFlags: DWORD, + ppAccess: ptr PSI_ACCESS, + pcAccesses: ptr ULONG, + piDefaultAccess: ptr ULONG, + ): HRESULT {.stdcall.} + MapGeneric*: proc( + self: ptr ISecurityInformation, + pguidObjectType: ptr GUID, + pAceFlags: ptr UCHAR, + pMask: ptr ACCESS_MASK, + ): HRESULT {.stdcall.} + GetInheritTypes*: proc( + self: ptr ISecurityInformation, + ppInheritTypes: ptr PSI_INHERIT_TYPE, + pcInheritTypes: ptr ULONG, + ): HRESULT {.stdcall.} + PropertySheetPageCallback*: proc( + self: ptr ISecurityInformation, hwnd: HWND, uMsg: UINT, uPage: SI_PAGE_TYPE + ): HRESULT {.stdcall.} + LPSECURITYINFO* = ptr ISecurityInformation ISecurityInformation2* {.pure.} = object lpVtbl*: ptr ISecurityInformation2Vtbl + ISecurityInformation2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - IsDaclCanonical*: proc(self: ptr ISecurityInformation2, pDacl: PACL): WINBOOL {.stdcall.} - LookupSids*: proc(self: ptr ISecurityInformation2, cSids: ULONG, rgpSids: ptr PSID, ppdo: ptr LPDATAOBJECT): HRESULT {.stdcall.} + IsDaclCanonical*: + proc(self: ptr ISecurityInformation2, pDacl: PACL): WINBOOL {.stdcall.} + LookupSids*: proc( + self: ptr ISecurityInformation2, + cSids: ULONG, + rgpSids: ptr PSID, + ppdo: ptr LPDATAOBJECT, + ): HRESULT {.stdcall.} + LPSECURITYINFO2* = ptr ISecurityInformation2 SID_INFO* {.pure.} = object pSid*: PSID pwzCommonName*: PWSTR pwzClass*: PWSTR pwzUPN*: PWSTR + PSID_INFO* = ptr SID_INFO SID_INFO_LIST* {.pure.} = object cItems*: ULONG aSidInfo*: array[ANYSIZE_ARRAY, SID_INFO] + PSID_INFO_LIST* = ptr SID_INFO_LIST IEffectivePermission* {.pure.} = object lpVtbl*: ptr IEffectivePermissionVtbl + IEffectivePermissionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetEffectivePermission*: proc(self: ptr IEffectivePermission, pguidObjectType: ptr GUID, pUserSid: PSID, pszServerName: LPCWSTR, pSD: PSECURITY_DESCRIPTOR, ppObjectTypeList: ptr POBJECT_TYPE_LIST, pcObjectTypeListLength: ptr ULONG, ppGrantedAccessList: ptr PACCESS_MASK, pcGrantedAccessListLength: ptr ULONG): HRESULT {.stdcall.} + GetEffectivePermission*: proc( + self: ptr IEffectivePermission, + pguidObjectType: ptr GUID, + pUserSid: PSID, + pszServerName: LPCWSTR, + pSD: PSECURITY_DESCRIPTOR, + ppObjectTypeList: ptr POBJECT_TYPE_LIST, + pcObjectTypeListLength: ptr ULONG, + ppGrantedAccessList: ptr PACCESS_MASK, + pcGrantedAccessListLength: ptr ULONG, + ): HRESULT {.stdcall.} + LPEFFECTIVEPERMISSION* = ptr IEffectivePermission + when winimUnicode: - type - PINHERITED_FROM* = PINHERITED_FROMW + type PINHERITED_FROM* = PINHERITED_FROMW when winimAnsi: - type - PINHERITED_FROM* = PINHERITED_FROMA + type PINHERITED_FROM* = PINHERITED_FROMA type ISecurityObjectTypeInfo* {.pure.} = object lpVtbl*: ptr ISecurityObjectTypeInfoVtbl + ISecurityObjectTypeInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetInheritSource*: proc(self: ptr ISecurityObjectTypeInfo, si: SECURITY_INFORMATION, pACL: PACL, ppInheritArray: ptr PINHERITED_FROM): HRESULT {.stdcall.} + GetInheritSource*: proc( + self: ptr ISecurityObjectTypeInfo, + si: SECURITY_INFORMATION, + pACL: PACL, + ppInheritArray: ptr PINHERITED_FROM, + ): HRESULT {.stdcall.} + LPSecurityObjectTypeInfo* = ptr ISecurityObjectTypeInfo ISecurityInformation3* {.pure.} = object lpVtbl*: ptr ISecurityInformation3Vtbl + ISecurityInformation3Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetFullResourceName*: proc(self: ptr ISecurityInformation3, ppszResourceName: ptr LPWSTR): HRESULT {.stdcall.} - OpenElevatedEditor*: proc(self: ptr ISecurityInformation3, hWnd: HWND, uPage: SI_PAGE_TYPE): HRESULT {.stdcall.} + GetFullResourceName*: proc( + self: ptr ISecurityInformation3, ppszResourceName: ptr LPWSTR + ): HRESULT {.stdcall.} + OpenElevatedEditor*: proc( + self: ptr ISecurityInformation3, hWnd: HWND, uPage: SI_PAGE_TYPE + ): HRESULT {.stdcall.} + LPSECURITYINFO3* = ptr ISecurityInformation3 SECURITY_OBJECT* {.pure.} = object pwszName*: PWSTR @@ -410,23 +549,50 @@ cbData2*: DWORD Id*: DWORD fWellKnown*: BOOLEAN + PSECURITY_OBJECT* = ptr SECURITY_OBJECT EFFPERM_RESULT_LIST* {.pure.} = object fEvaluated*: BOOLEAN cObjectTypeListLength*: ULONG pObjectTypeList*: ptr OBJECT_TYPE_LIST pGrantedAccessList*: ptr ACCESS_MASK + PEFFPERM_RESULT_LIST* = ptr EFFPERM_RESULT_LIST ISecurityInformation4* {.pure.} = object lpVtbl*: ptr ISecurityInformation4Vtbl + ISecurityInformation4Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSecondarySecurity*: proc(self: ptr ISecurityInformation4, pSecurityObjects: ptr PSECURITY_OBJECT, pSecurityObjectCount: PULONG): HRESULT {.stdcall.} + GetSecondarySecurity*: proc( + self: ptr ISecurityInformation4, + pSecurityObjects: ptr PSECURITY_OBJECT, + pSecurityObjectCount: PULONG, + ): HRESULT {.stdcall.} + LPSECURITYINFO4* = ptr ISecurityInformation4 IEffectivePermission2* {.pure.} = object lpVtbl*: ptr IEffectivePermission2Vtbl + IEffectivePermission2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - ComputeEffectivePermissionWithSecondarySecurity*: proc(self: ptr IEffectivePermission2, pSid: PSID, pDeviceSid: PSID, pszServerName: PCWSTR, pSecurityObjects: PSECURITY_OBJECT, dwSecurityObjectCount: DWORD, pUserGroups: PTOKEN_GROUPS, pAuthzUserGroupsOperations: PAUTHZ_SID_OPERATION, pDeviceGroups: PTOKEN_GROUPS, pAuthzDeviceGroupsOperations: PAUTHZ_SID_OPERATION, pAuthzUserClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, pAuthzUserClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, pAuthzDeviceClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, pAuthzDeviceClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, pEffpermResultLists: PEFFPERM_RESULT_LIST): HRESULT {.stdcall.} + ComputeEffectivePermissionWithSecondarySecurity*: proc( + self: ptr IEffectivePermission2, + pSid: PSID, + pDeviceSid: PSID, + pszServerName: PCWSTR, + pSecurityObjects: PSECURITY_OBJECT, + dwSecurityObjectCount: DWORD, + pUserGroups: PTOKEN_GROUPS, + pAuthzUserGroupsOperations: PAUTHZ_SID_OPERATION, + pDeviceGroups: PTOKEN_GROUPS, + pAuthzDeviceGroupsOperations: PAUTHZ_SID_OPERATION, + pAuthzUserClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, + pAuthzUserClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, + pAuthzDeviceClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, + pAuthzDeviceClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, + pEffpermResultLists: PEFFPERM_RESULT_LIST, + ): HRESULT {.stdcall.} + LPEFFECTIVEPERMISSION2* = ptr IEffectivePermission2 + const SE_UNKNOWN_OBJECT_TYPE* = 0 SE_FILE_OBJECT* = 1 @@ -650,14 +816,19 @@ AUTHZ_SID_OPERATION_REPLACE* = 4 AUTHZ_SECURITY_ATTRIBUTE_NON_INHERITABLE* = 0x1 AUTHZ_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE* = 0x2 - AUTHZ_SECURITY_ATTRIBUTE_VALID_FLAGS* = AUTHZ_SECURITY_ATTRIBUTE_NON_INHERITABLE or AUTHZ_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE + AUTHZ_SECURITY_ATTRIBUTE_VALID_FLAGS* = + AUTHZ_SECURITY_ATTRIBUTE_NON_INHERITABLE or + AUTHZ_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1* = 1 - AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION* = AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 + AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION* = + AUTHZ_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 AUTHZ_ACCESS_CHECK_NO_DEEP_COPY_SD* = 0x1 AUTHZ_RM_FLAG_NO_AUDIT* = 0x1 AUTHZ_RM_FLAG_INITIALIZE_UNDER_IMPERSONATION* = 0x2 AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES* = 0x4 - AUTHZ_VALID_RM_INIT_FLAGS* = AUTHZ_RM_FLAG_NO_AUDIT or AUTHZ_RM_FLAG_INITIALIZE_UNDER_IMPERSONATION or AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES + AUTHZ_VALID_RM_INIT_FLAGS* = + AUTHZ_RM_FLAG_NO_AUDIT or AUTHZ_RM_FLAG_INITIALIZE_UNDER_IMPERSONATION or + AUTHZ_RM_FLAG_NO_CENTRAL_ACCESS_POLICIES AUTHZ_RPC_INIT_INFO_CLIENT_VERSION_V1* = 1 AUTHZ_INIT_INFO_VERSION_V1* = 1 authzContextInfoUserSid* = 1 @@ -680,7 +851,9 @@ AUTHZ_NO_FAILURE_AUDIT* = 0x2 AUTHZ_NO_ALLOC_STRINGS* = 0x4 AUTHZ_WPD_CATEGORY_FLAG* = 0x10 - AUTHZ_VALID_OBJECT_ACCESS_AUDIT_FLAGS* = AUTHZ_NO_SUCCESS_AUDIT or AUTHZ_NO_FAILURE_AUDIT or AUTHZ_NO_ALLOC_STRINGS or AUTHZ_WPD_CATEGORY_FLAG + AUTHZ_VALID_OBJECT_ACCESS_AUDIT_FLAGS* = + AUTHZ_NO_SUCCESS_AUDIT or AUTHZ_NO_FAILURE_AUDIT or AUTHZ_NO_ALLOC_STRINGS or + AUTHZ_WPD_CATEGORY_FLAG authzAuditEventInfoFlags* = 1 authzAuditEventInfoOperationType* = 2 authzAuditEventInfoObjectType* = 3 @@ -742,7 +915,7 @@ DOBJ_VOL_NTACLS* = 0x00000004 DOBJ_COND_NTACLS* = 0x00000008 DOBJ_RIBBON_LAUNCH* = 0x00000010 - PSPCB_SI_INITDIALOG* = WM_USER+1 + PSPCB_SI_INITDIALOG* = WM_USER + 1 IID_ISecurityInformation* = DEFINE_GUID("965fc360-16ff-11d0-91cb-00aa00bbb723") IID_ISecurityInformation2* = DEFINE_GUID("c3ccfdb4-6f88-11d2-a3ce-00c04fb1782a") CFSTR_ACLUI_SID_INFO_LIST* = "CFSTR_ACLUI_SID_INFO_LIST" @@ -755,157 +928,942 @@ SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE* = 4 IID_ISecurityInformation4* = DEFINE_GUID("ea961070-cd14-4621-ace4-f63c03e583e4") IID_IEffectivePermission2* = DEFINE_GUID("941fabca-dd47-4fca-90bb-b0e10255f20d") -type - FN_PROGRESS* = proc (pObjectName: LPWSTR, Status: DWORD, pInvokeSetting: PPROG_INVOKE_SETTING, Args: PVOID, SecuritySet: WINBOOL): VOID {.stdcall.} -proc SetEntriesInAclA*(cCountOfExplicitEntries: ULONG, pListOfExplicitEntries: PEXPLICIT_ACCESS_A, OldAcl: PACL, NewAcl: ptr PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetEntriesInAclW*(cCountOfExplicitEntries: ULONG, pListOfExplicitEntries: PEXPLICIT_ACCESS_W, OldAcl: PACL, NewAcl: ptr PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetExplicitEntriesFromAclA*(pacl: PACL, pcCountOfExplicitEntries: PULONG, pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_A): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetExplicitEntriesFromAclW*(pacl: PACL, pcCountOfExplicitEntries: PULONG, pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_W): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetEffectiveRightsFromAclA*(pacl: PACL, pTrustee: PTRUSTEE_A, pAccessRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetEffectiveRightsFromAclW*(pacl: PACL, pTrustee: PTRUSTEE_W, pAccessRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetAuditedPermissionsFromAclA*(pacl: PACL, pTrustee: PTRUSTEE_A, pSuccessfulAuditedRights: PACCESS_MASK, pFailedAuditRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetAuditedPermissionsFromAclW*(pacl: PACL, pTrustee: PTRUSTEE_W, pSuccessfulAuditedRights: PACCESS_MASK, pFailedAuditRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetNamedSecurityInfoA*(pObjectName: LPCSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, ppsidOwner: ptr PSID, ppsidGroup: ptr PSID, ppDacl: ptr PACL, ppSacl: ptr PACL, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetNamedSecurityInfoW*(pObjectName: LPCWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, ppsidOwner: ptr PSID, ppsidGroup: ptr PSID, ppDacl: ptr PACL, ppSacl: ptr PACL, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityInfo*(handle: HANDLE, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, ppsidOwner: ptr PSID, ppsidGroup: ptr PSID, ppDacl: ptr PACL, ppSacl: ptr PACL, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetNamedSecurityInfoA*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, psidOwner: PSID, psidGroup: PSID, pDacl: PACL, pSacl: PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetNamedSecurityInfoW*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, psidOwner: PSID, psidGroup: PSID, pDacl: PACL, pSacl: PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityInfo*(handle: HANDLE, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, psidOwner: PSID, psidGroup: PSID, pDacl: PACL, pSacl: PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetInheritanceSourceA*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, Container: WINBOOL, pObjectClassGuids: ptr ptr GUID, GuidCount: DWORD, pAcl: PACL, pfnArray: PFN_OBJECT_MGR_FUNCTS, pGenericMapping: PGENERIC_MAPPING, pInheritArray: PINHERITED_FROMA): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetInheritanceSourceW*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, Container: WINBOOL, pObjectClassGuids: ptr ptr GUID, GuidCount: DWORD, pAcl: PACL, pfnArray: PFN_OBJECT_MGR_FUNCTS, pGenericMapping: PGENERIC_MAPPING, pInheritArray: PINHERITED_FROMW): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc FreeInheritedFromArray*(pInheritArray: PINHERITED_FROMW, AceCnt: USHORT, pfnArray: PFN_OBJECT_MGR_FUNCTS): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc TreeResetNamedSecurityInfoA*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, KeepExplicit: WINBOOL, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc TreeResetNamedSecurityInfoW*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, KeepExplicit: WINBOOL, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildSecurityDescriptorA*(pOwner: PTRUSTEE_A, pGroup: PTRUSTEE_A, cCountOfAccessEntries: ULONG, pListOfAccessEntries: PEXPLICIT_ACCESS_A, cCountOfAuditEntries: ULONG, pListOfAuditEntries: PEXPLICIT_ACCESS_A, pOldSD: PSECURITY_DESCRIPTOR, pSizeNewSD: PULONG, pNewSD: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildSecurityDescriptorW*(pOwner: PTRUSTEE_W, pGroup: PTRUSTEE_W, cCountOfAccessEntries: ULONG, pListOfAccessEntries: PEXPLICIT_ACCESS_W, cCountOfAuditEntries: ULONG, pListOfAuditEntries: PEXPLICIT_ACCESS_W, pOldSD: PSECURITY_DESCRIPTOR, pSizeNewSD: PULONG, pNewSD: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupSecurityDescriptorPartsA*(ppOwner: ptr PTRUSTEE_A, ppGroup: ptr PTRUSTEE_A, pcCountOfAccessEntries: PULONG, ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_A, pcCountOfAuditEntries: PULONG, ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_A, pSD: PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupSecurityDescriptorPartsW*(ppOwner: ptr PTRUSTEE_W, ppGroup: ptr PTRUSTEE_W, pcCountOfAccessEntries: PULONG, ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_W, pcCountOfAuditEntries: PULONG, ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_W, pSD: PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildExplicitAccessWithNameA*(pExplicitAccess: PEXPLICIT_ACCESS_A, pTrusteeName: LPSTR, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildExplicitAccessWithNameW*(pExplicitAccess: PEXPLICIT_ACCESS_W, pTrusteeName: LPWSTR, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildImpersonateExplicitAccessWithNameA*(pExplicitAccess: PEXPLICIT_ACCESS_A, pTrusteeName: LPSTR, pTrustee: PTRUSTEE_A, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildImpersonateExplicitAccessWithNameW*(pExplicitAccess: PEXPLICIT_ACCESS_W, pTrusteeName: LPWSTR, pTrustee: PTRUSTEE_W, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithNameA*(pTrustee: PTRUSTEE_A, pName: LPSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithNameW*(pTrustee: PTRUSTEE_W, pName: LPWSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildImpersonateTrusteeA*(pTrustee: PTRUSTEE_A, pImpersonateTrustee: PTRUSTEE_A): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildImpersonateTrusteeW*(pTrustee: PTRUSTEE_W, pImpersonateTrustee: PTRUSTEE_W): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithSidA*(pTrustee: PTRUSTEE_A, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithSidW*(pTrustee: PTRUSTEE_W, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithObjectsAndSidA*(pTrustee: PTRUSTEE_A, pObjSid: POBJECTS_AND_SID, pObjectGuid: ptr GUID, pInheritedObjectGuid: ptr GUID, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithObjectsAndSidW*(pTrustee: PTRUSTEE_W, pObjSid: POBJECTS_AND_SID, pObjectGuid: ptr GUID, pInheritedObjectGuid: ptr GUID, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithObjectsAndNameA*(pTrustee: PTRUSTEE_A, pObjName: POBJECTS_AND_NAME_A, ObjectType: SE_OBJECT_TYPE, ObjectTypeName: LPSTR, InheritedObjectTypeName: LPSTR, Name: LPSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildTrusteeWithObjectsAndNameW*(pTrustee: PTRUSTEE_W, pObjName: POBJECTS_AND_NAME_W, ObjectType: SE_OBJECT_TYPE, ObjectTypeName: LPWSTR, InheritedObjectTypeName: LPWSTR, Name: LPWSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTrusteeNameA*(pTrustee: PTRUSTEE_A): LPSTR {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTrusteeNameW*(pTrustee: PTRUSTEE_W): LPWSTR {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTrusteeTypeA*(pTrustee: PTRUSTEE_A): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTrusteeTypeW*(pTrustee: PTRUSTEE_W): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTrusteeFormA*(pTrustee: PTRUSTEE_A): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTrusteeFormW*(pTrustee: PTRUSTEE_W): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetMultipleTrusteeOperationA*(pTrustee: PTRUSTEE_A): MULTIPLE_TRUSTEE_OPERATION {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetMultipleTrusteeOperationW*(pTrustee: PTRUSTEE_W): MULTIPLE_TRUSTEE_OPERATION {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetMultipleTrusteeA*(pTrustee: PTRUSTEE_A): PTRUSTEE_A {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetMultipleTrusteeW*(pTrustee: PTRUSTEE_W): PTRUSTEE_W {.winapi, stdcall, dynlib: "advapi32", importc.} -proc TreeSetNamedSecurityInfoA*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, dwAction: DWORD, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc TreeSetNamedSecurityInfoW*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, dwAction: DWORD, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuthzAccessCheck*(Flags: DWORD, hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pRequest: PAUTHZ_ACCESS_REQUEST, hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE, pSecurityDescriptor: PSECURITY_DESCRIPTOR, OptionalSecurityDescriptorArray: ptr PSECURITY_DESCRIPTOR, OptionalSecurityDescriptorCount: DWORD, pReply: PAUTHZ_ACCESS_REPLY, phAccessCheckResults: PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzCachedAccessCheck*(Flags: DWORD, hAccessCheckResults: AUTHZ_ACCESS_CHECK_RESULTS_HANDLE, pRequest: PAUTHZ_ACCESS_REQUEST, hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE, pReply: PAUTHZ_ACCESS_REPLY): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzOpenObjectAudit*(Flags: DWORD, hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pRequest: PAUTHZ_ACCESS_REQUEST, hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE, pSecurityDescriptor: PSECURITY_DESCRIPTOR, OptionalSecurityDescriptorArray: ptr PSECURITY_DESCRIPTOR, OptionalSecurityDescriptorCount: DWORD, pReply: PAUTHZ_ACCESS_REPLY): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzFreeHandle*(hAccessCheckResults: AUTHZ_ACCESS_CHECK_RESULTS_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeResourceManager*(Flags: DWORD, pfnDynamicAccessCheck: PFN_AUTHZ_DYNAMIC_ACCESS_CHECK, pfnComputeDynamicGroups: PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS, pfnFreeDynamicGroups: PFN_AUTHZ_FREE_DYNAMIC_GROUPS, szResourceManagerName: PCWSTR, phAuthzResourceManager: PAUTHZ_RESOURCE_MANAGER_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeResourceManagerEx*(Flags: DWORD, pAuthzInitInfo: PAUTHZ_INIT_INFO, phAuthzResourceManager: PAUTHZ_RESOURCE_MANAGER_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeRemoteResourceManager*(pRpcInitInfo: PAUTHZ_RPC_INIT_INFO_CLIENT, phAuthzResourceManager: PAUTHZ_RESOURCE_MANAGER_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzFreeResourceManager*(hAuthzResourceManager: AUTHZ_RESOURCE_MANAGER_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeContextFromToken*(Flags: DWORD, TokenHandle: HANDLE, hAuthzResourceManager: AUTHZ_RESOURCE_MANAGER_HANDLE, pExpirationTime: PLARGE_INTEGER, Identifier: LUID, DynamicGroupArgs: PVOID, phAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeContextFromSid*(Flags: DWORD, UserSid: PSID, hAuthzResourceManager: AUTHZ_RESOURCE_MANAGER_HANDLE, pExpirationTime: PLARGE_INTEGER, Identifier: LUID, DynamicGroupArgs: PVOID, phAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeContextFromAuthzContext*(Flags: DWORD, hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pExpirationTime: PLARGE_INTEGER, Identifier: LUID, DynamicGroupArgs: PVOID, phNewAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeCompoundContext*(UserContext: AUTHZ_CLIENT_CONTEXT_HANDLE, DeviceContext: AUTHZ_CLIENT_CONTEXT_HANDLE, phCompoundContext: PAUTHZ_CLIENT_CONTEXT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzAddSidsToContext*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, Sids: PSID_AND_ATTRIBUTES, SidCount: DWORD, RestrictedSids: PSID_AND_ATTRIBUTES, RestrictedSidCount: DWORD, phNewAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzModifySecurityAttributes*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, pAttributes: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzModifyClaims*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, ClaimClass: AUTHZ_CONTEXT_INFORMATION_CLASS, pClaimOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, pClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzModifySids*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, SidClass: AUTHZ_CONTEXT_INFORMATION_CLASS, pSidOperations: PAUTHZ_SID_OPERATION, pSids: PTOKEN_GROUPS): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzSetAppContainerInformation*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pAppContainerSid: PSID, CapabilityCount: DWORD, pCapabilitySids: PSID_AND_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzGetInformationFromContext*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, InfoClass: AUTHZ_CONTEXT_INFORMATION_CLASS, BufferSize: DWORD, pSizeRequired: PDWORD, Buffer: PVOID): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzFreeContext*(hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInitializeObjectAccessAuditEvent*(Flags: DWORD, hAuditEventType: AUTHZ_AUDIT_EVENT_TYPE_HANDLE, szOperationType: PWSTR, szObjectType: PWSTR, szObjectName: PWSTR, szAdditionalInfo: PWSTR, phAuditEvent: PAUTHZ_AUDIT_EVENT_HANDLE, dwAdditionalParameterCount: DWORD): WINBOOL {.winapi, cdecl, varargs, dynlib: "authz", importc.} -proc AuthzInitializeObjectAccessAuditEvent2*(Flags: DWORD, hAuditEventType: AUTHZ_AUDIT_EVENT_TYPE_HANDLE, szOperationType: PWSTR, szObjectType: PWSTR, szObjectName: PWSTR, szAdditionalInfo: PWSTR, szAdditionalInfo2: PWSTR, phAuditEvent: PAUTHZ_AUDIT_EVENT_HANDLE, dwAdditionalParameterCount: DWORD): WINBOOL {.winapi, cdecl, varargs, dynlib: "authz", importc.} -proc AuthzFreeAuditEvent*(hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzEvaluateSacl*(AuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, pRequest: PAUTHZ_ACCESS_REQUEST, Sacl: PACL, GrantedAccess: ACCESS_MASK, AccessGranted: WINBOOL, pbGenerateAudit: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzInstallSecurityEventSource*(dwFlags: DWORD, pRegistration: PAUTHZ_SOURCE_SCHEMA_REGISTRATION): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzUninstallSecurityEventSource*(dwFlags: DWORD, szEventSourceName: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzEnumerateSecurityEventSources*(dwFlags: DWORD, Buffer: PAUTHZ_SOURCE_SCHEMA_REGISTRATION, pdwCount: PDWORD, pdwLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzRegisterSecurityEventSource*(dwFlags: DWORD, szEventSourceName: PCWSTR, phEventProvider: PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzUnregisterSecurityEventSource*(dwFlags: DWORD, phEventProvider: PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzReportSecurityEvent*(dwFlags: DWORD, hEventProvider: AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, dwAuditId: DWORD, pUserSid: PSID, dwCount: DWORD): WINBOOL {.winapi, cdecl, varargs, dynlib: "authz", importc.} -proc AuthzReportSecurityEventFromParams*(dwFlags: DWORD, hEventProvider: AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, dwAuditId: DWORD, pUserSid: PSID, pParams: PAUDIT_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzRegisterCapChangeNotification*(phCapChangeSubscription: PAUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE, pfnCapChangeCallback: LPTHREAD_START_ROUTINE, pCallbackContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzUnregisterCapChangeNotification*(hCapChangeSubscription: AUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc AuthzFreeCentralAccessPolicyCache*(): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} -proc CreateSecurityPage*(psi: LPSECURITYINFO): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "aclui", importc.} -proc EditSecurity*(hwndOwner: HWND, psi: LPSECURITYINFO): WINBOOL {.winapi, stdcall, dynlib: "aclui", importc.} -proc EditSecurityAdvanced*(hwndOwner: HWND, psi: LPSECURITYINFO, uSIPage: SI_PAGE_TYPE): HRESULT {.winapi, stdcall, dynlib: "aclui", importc.} -proc `Provider=`*(self: var ACTRL_OVERLAPPED, x: PVOID) {.inline.} = self.union1.Provider = x -proc Provider*(self: ACTRL_OVERLAPPED): PVOID {.inline.} = self.union1.Provider -proc Provider*(self: var ACTRL_OVERLAPPED): var PVOID {.inline.} = self.union1.Provider -proc `Reserved1=`*(self: var ACTRL_OVERLAPPED, x: ULONG) {.inline.} = self.union1.Reserved1 = x -proc Reserved1*(self: ACTRL_OVERLAPPED): ULONG {.inline.} = self.union1.Reserved1 -proc Reserved1*(self: var ACTRL_OVERLAPPED): var ULONG {.inline.} = self.union1.Reserved1 -proc `Data0=`*(self: var AUDIT_PARAM, x: ULONG_PTR) {.inline.} = self.union1.Data0 = x -proc Data0*(self: AUDIT_PARAM): ULONG_PTR {.inline.} = self.union1.Data0 -proc Data0*(self: var AUDIT_PARAM): var ULONG_PTR {.inline.} = self.union1.Data0 -proc `Str=`*(self: var AUDIT_PARAM, x: PWSTR) {.inline.} = self.union1.Str = x -proc Str*(self: AUDIT_PARAM): PWSTR {.inline.} = self.union1.Str -proc Str*(self: var AUDIT_PARAM): var PWSTR {.inline.} = self.union1.Str -proc `u=`*(self: var AUDIT_PARAM, x: ULONG_PTR) {.inline.} = self.union1.u = x -proc u*(self: AUDIT_PARAM): ULONG_PTR {.inline.} = self.union1.u -proc u*(self: var AUDIT_PARAM): var ULONG_PTR {.inline.} = self.union1.u -proc `psid=`*(self: var AUDIT_PARAM, x: ptr SID) {.inline.} = self.union1.psid = x -proc psid*(self: AUDIT_PARAM): ptr SID {.inline.} = self.union1.psid -proc psid*(self: var AUDIT_PARAM): var ptr SID {.inline.} = self.union1.psid -proc `pguid=`*(self: var AUDIT_PARAM, x: ptr GUID) {.inline.} = self.union1.pguid = x -proc pguid*(self: AUDIT_PARAM): ptr GUID {.inline.} = self.union1.pguid -proc pguid*(self: var AUDIT_PARAM): var ptr GUID {.inline.} = self.union1.pguid -proc `LogonId_LowPart=`*(self: var AUDIT_PARAM, x: ULONG) {.inline.} = self.union1.LogonId_LowPart = x -proc LogonId_LowPart*(self: AUDIT_PARAM): ULONG {.inline.} = self.union1.LogonId_LowPart -proc LogonId_LowPart*(self: var AUDIT_PARAM): var ULONG {.inline.} = self.union1.LogonId_LowPart -proc `pObjectTypes=`*(self: var AUDIT_PARAM, x: ptr AUDIT_OBJECT_TYPES) {.inline.} = self.union1.pObjectTypes = x -proc pObjectTypes*(self: AUDIT_PARAM): ptr AUDIT_OBJECT_TYPES {.inline.} = self.union1.pObjectTypes -proc pObjectTypes*(self: var AUDIT_PARAM): var ptr AUDIT_OBJECT_TYPES {.inline.} = self.union1.pObjectTypes -proc `pIpAddress=`*(self: var AUDIT_PARAM, x: ptr AUDIT_IP_ADDRESS) {.inline.} = self.union1.pIpAddress = x -proc pIpAddress*(self: AUDIT_PARAM): ptr AUDIT_IP_ADDRESS {.inline.} = self.union1.pIpAddress -proc pIpAddress*(self: var AUDIT_PARAM): var ptr AUDIT_IP_ADDRESS {.inline.} = self.union1.pIpAddress -proc `Data1=`*(self: var AUDIT_PARAM, x: ULONG_PTR) {.inline.} = self.union2.Data1 = x -proc Data1*(self: AUDIT_PARAM): ULONG_PTR {.inline.} = self.union2.Data1 -proc Data1*(self: var AUDIT_PARAM): var ULONG_PTR {.inline.} = self.union2.Data1 -proc `LogonId_HighPart=`*(self: var AUDIT_PARAM, x: LONG) {.inline.} = self.union2.LogonId_HighPart = x -proc LogonId_HighPart*(self: AUDIT_PARAM): LONG {.inline.} = self.union2.LogonId_HighPart -proc LogonId_HighPart*(self: var AUDIT_PARAM): var LONG {.inline.} = self.union2.LogonId_HighPart -proc `pReserved=`*(self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION, x: PVOID) {.inline.} = self.union1.pReserved = x -proc pReserved*(self: AUTHZ_SOURCE_SCHEMA_REGISTRATION): PVOID {.inline.} = self.union1.pReserved -proc pReserved*(self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION): var PVOID {.inline.} = self.union1.pReserved -proc `pProviderGuid=`*(self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION, x: ptr GUID) {.inline.} = self.union1.pProviderGuid = x -proc pProviderGuid*(self: AUTHZ_SOURCE_SCHEMA_REGISTRATION): ptr GUID {.inline.} = self.union1.pProviderGuid -proc pProviderGuid*(self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION): var ptr GUID {.inline.} = self.union1.pProviderGuid -proc GetObjectInformation*(self: ptr ISecurityInformation, pObjectInfo: PSI_OBJECT_INFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectInformation(self, pObjectInfo) -proc GetSecurity*(self: ptr ISecurityInformation, RequestedInformation: SECURITY_INFORMATION, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, fDefault: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecurity(self, RequestedInformation, ppSecurityDescriptor, fDefault) -proc SetSecurity*(self: ptr ISecurityInformation, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSecurity(self, SecurityInformation, pSecurityDescriptor) -proc GetAccessRights*(self: ptr ISecurityInformation, pguidObjectType: ptr GUID, dwFlags: DWORD, ppAccess: ptr PSI_ACCESS, pcAccesses: ptr ULONG, piDefaultAccess: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAccessRights(self, pguidObjectType, dwFlags, ppAccess, pcAccesses, piDefaultAccess) -proc MapGeneric*(self: ptr ISecurityInformation, pguidObjectType: ptr GUID, pAceFlags: ptr UCHAR, pMask: ptr ACCESS_MASK): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapGeneric(self, pguidObjectType, pAceFlags, pMask) -proc GetInheritTypes*(self: ptr ISecurityInformation, ppInheritTypes: ptr PSI_INHERIT_TYPE, pcInheritTypes: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInheritTypes(self, ppInheritTypes, pcInheritTypes) -proc PropertySheetPageCallback*(self: ptr ISecurityInformation, hwnd: HWND, uMsg: UINT, uPage: SI_PAGE_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PropertySheetPageCallback(self, hwnd, uMsg, uPage) -proc IsDaclCanonical*(self: ptr ISecurityInformation2, pDacl: PACL): WINBOOL {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDaclCanonical(self, pDacl) -proc LookupSids*(self: ptr ISecurityInformation2, cSids: ULONG, rgpSids: ptr PSID, ppdo: ptr LPDATAOBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LookupSids(self, cSids, rgpSids, ppdo) -proc GetEffectivePermission*(self: ptr IEffectivePermission, pguidObjectType: ptr GUID, pUserSid: PSID, pszServerName: LPCWSTR, pSD: PSECURITY_DESCRIPTOR, ppObjectTypeList: ptr POBJECT_TYPE_LIST, pcObjectTypeListLength: ptr ULONG, ppGrantedAccessList: ptr PACCESS_MASK, pcGrantedAccessListLength: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEffectivePermission(self, pguidObjectType, pUserSid, pszServerName, pSD, ppObjectTypeList, pcObjectTypeListLength, ppGrantedAccessList, pcGrantedAccessListLength) -proc GetInheritSource*(self: ptr ISecurityObjectTypeInfo, si: SECURITY_INFORMATION, pACL: PACL, ppInheritArray: ptr PINHERITED_FROM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInheritSource(self, si, pACL, ppInheritArray) -proc GetFullResourceName*(self: ptr ISecurityInformation3, ppszResourceName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFullResourceName(self, ppszResourceName) -proc OpenElevatedEditor*(self: ptr ISecurityInformation3, hWnd: HWND, uPage: SI_PAGE_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenElevatedEditor(self, hWnd, uPage) -proc GetSecondarySecurity*(self: ptr ISecurityInformation4, pSecurityObjects: ptr PSECURITY_OBJECT, pSecurityObjectCount: PULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecondarySecurity(self, pSecurityObjects, pSecurityObjectCount) -proc ComputeEffectivePermissionWithSecondarySecurity*(self: ptr IEffectivePermission2, pSid: PSID, pDeviceSid: PSID, pszServerName: PCWSTR, pSecurityObjects: PSECURITY_OBJECT, dwSecurityObjectCount: DWORD, pUserGroups: PTOKEN_GROUPS, pAuthzUserGroupsOperations: PAUTHZ_SID_OPERATION, pDeviceGroups: PTOKEN_GROUPS, pAuthzDeviceGroupsOperations: PAUTHZ_SID_OPERATION, pAuthzUserClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, pAuthzUserClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, pAuthzDeviceClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, pAuthzDeviceClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, pEffpermResultLists: PEFFPERM_RESULT_LIST): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComputeEffectivePermissionWithSecondarySecurity(self, pSid, pDeviceSid, pszServerName, pSecurityObjects, dwSecurityObjectCount, pUserGroups, pAuthzUserGroupsOperations, pDeviceGroups, pAuthzDeviceGroupsOperations, pAuthzUserClaims, pAuthzUserClaimsOperations, pAuthzDeviceClaims, pAuthzDeviceClaimsOperations, pEffpermResultLists) -converter winimConverterISecurityInformationToIUnknown*(x: ptr ISecurityInformation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISecurityInformation2ToIUnknown*(x: ptr ISecurityInformation2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEffectivePermissionToIUnknown*(x: ptr IEffectivePermission): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISecurityObjectTypeInfoToIUnknown*(x: ptr ISecurityObjectTypeInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISecurityInformation3ToIUnknown*(x: ptr ISecurityInformation3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISecurityInformation4ToIUnknown*(x: ptr ISecurityInformation4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEffectivePermission2ToIUnknown*(x: ptr IEffectivePermission2): ptr IUnknown = cast[ptr IUnknown](x) +type FN_PROGRESS* = proc( + pObjectName: LPWSTR, + Status: DWORD, + pInvokeSetting: PPROG_INVOKE_SETTING, + Args: PVOID, + SecuritySet: WINBOOL, +): VOID {.stdcall.} + +proc SetEntriesInAclA*( + cCountOfExplicitEntries: ULONG, + pListOfExplicitEntries: PEXPLICIT_ACCESS_A, + OldAcl: PACL, + NewAcl: ptr PACL, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetEntriesInAclW*( + cCountOfExplicitEntries: ULONG, + pListOfExplicitEntries: PEXPLICIT_ACCESS_W, + OldAcl: PACL, + NewAcl: ptr PACL, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetExplicitEntriesFromAclA*( + pacl: PACL, + pcCountOfExplicitEntries: PULONG, + pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_A, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetExplicitEntriesFromAclW*( + pacl: PACL, + pcCountOfExplicitEntries: PULONG, + pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_W, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetEffectiveRightsFromAclA*( + pacl: PACL, pTrustee: PTRUSTEE_A, pAccessRights: PACCESS_MASK +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetEffectiveRightsFromAclW*( + pacl: PACL, pTrustee: PTRUSTEE_W, pAccessRights: PACCESS_MASK +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetAuditedPermissionsFromAclA*( + pacl: PACL, + pTrustee: PTRUSTEE_A, + pSuccessfulAuditedRights: PACCESS_MASK, + pFailedAuditRights: PACCESS_MASK, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetAuditedPermissionsFromAclW*( + pacl: PACL, + pTrustee: PTRUSTEE_W, + pSuccessfulAuditedRights: PACCESS_MASK, + pFailedAuditRights: PACCESS_MASK, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetNamedSecurityInfoA*( + pObjectName: LPCSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + ppsidOwner: ptr PSID, + ppsidGroup: ptr PSID, + ppDacl: ptr PACL, + ppSacl: ptr PACL, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetNamedSecurityInfoW*( + pObjectName: LPCWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + ppsidOwner: ptr PSID, + ppsidGroup: ptr PSID, + ppDacl: ptr PACL, + ppSacl: ptr PACL, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityInfo*( + handle: HANDLE, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + ppsidOwner: ptr PSID, + ppsidGroup: ptr PSID, + ppDacl: ptr PACL, + ppSacl: ptr PACL, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetNamedSecurityInfoA*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + psidOwner: PSID, + psidGroup: PSID, + pDacl: PACL, + pSacl: PACL, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetNamedSecurityInfoW*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + psidOwner: PSID, + psidGroup: PSID, + pDacl: PACL, + pSacl: PACL, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityInfo*( + handle: HANDLE, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + psidOwner: PSID, + psidGroup: PSID, + pDacl: PACL, + pSacl: PACL, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetInheritanceSourceA*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + Container: WINBOOL, + pObjectClassGuids: ptr ptr GUID, + GuidCount: DWORD, + pAcl: PACL, + pfnArray: PFN_OBJECT_MGR_FUNCTS, + pGenericMapping: PGENERIC_MAPPING, + pInheritArray: PINHERITED_FROMA, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetInheritanceSourceW*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + Container: WINBOOL, + pObjectClassGuids: ptr ptr GUID, + GuidCount: DWORD, + pAcl: PACL, + pfnArray: PFN_OBJECT_MGR_FUNCTS, + pGenericMapping: PGENERIC_MAPPING, + pInheritArray: PINHERITED_FROMW, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc FreeInheritedFromArray*( + pInheritArray: PINHERITED_FROMW, AceCnt: USHORT, pfnArray: PFN_OBJECT_MGR_FUNCTS +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc TreeResetNamedSecurityInfoA*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + KeepExplicit: WINBOOL, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc TreeResetNamedSecurityInfoW*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + KeepExplicit: WINBOOL, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildSecurityDescriptorA*( + pOwner: PTRUSTEE_A, + pGroup: PTRUSTEE_A, + cCountOfAccessEntries: ULONG, + pListOfAccessEntries: PEXPLICIT_ACCESS_A, + cCountOfAuditEntries: ULONG, + pListOfAuditEntries: PEXPLICIT_ACCESS_A, + pOldSD: PSECURITY_DESCRIPTOR, + pSizeNewSD: PULONG, + pNewSD: ptr PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildSecurityDescriptorW*( + pOwner: PTRUSTEE_W, + pGroup: PTRUSTEE_W, + cCountOfAccessEntries: ULONG, + pListOfAccessEntries: PEXPLICIT_ACCESS_W, + cCountOfAuditEntries: ULONG, + pListOfAuditEntries: PEXPLICIT_ACCESS_W, + pOldSD: PSECURITY_DESCRIPTOR, + pSizeNewSD: PULONG, + pNewSD: ptr PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupSecurityDescriptorPartsA*( + ppOwner: ptr PTRUSTEE_A, + ppGroup: ptr PTRUSTEE_A, + pcCountOfAccessEntries: PULONG, + ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_A, + pcCountOfAuditEntries: PULONG, + ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_A, + pSD: PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupSecurityDescriptorPartsW*( + ppOwner: ptr PTRUSTEE_W, + ppGroup: ptr PTRUSTEE_W, + pcCountOfAccessEntries: PULONG, + ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_W, + pcCountOfAuditEntries: PULONG, + ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_W, + pSD: PSECURITY_DESCRIPTOR, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildExplicitAccessWithNameA*( + pExplicitAccess: PEXPLICIT_ACCESS_A, + pTrusteeName: LPSTR, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildExplicitAccessWithNameW*( + pExplicitAccess: PEXPLICIT_ACCESS_W, + pTrusteeName: LPWSTR, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildImpersonateExplicitAccessWithNameA*( + pExplicitAccess: PEXPLICIT_ACCESS_A, + pTrusteeName: LPSTR, + pTrustee: PTRUSTEE_A, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildImpersonateExplicitAccessWithNameW*( + pExplicitAccess: PEXPLICIT_ACCESS_W, + pTrusteeName: LPWSTR, + pTrustee: PTRUSTEE_W, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithNameA*( + pTrustee: PTRUSTEE_A, pName: LPSTR +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithNameW*( + pTrustee: PTRUSTEE_W, pName: LPWSTR +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildImpersonateTrusteeA*( + pTrustee: PTRUSTEE_A, pImpersonateTrustee: PTRUSTEE_A +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildImpersonateTrusteeW*( + pTrustee: PTRUSTEE_W, pImpersonateTrustee: PTRUSTEE_W +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithSidA*( + pTrustee: PTRUSTEE_A, pSid: PSID +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithSidW*( + pTrustee: PTRUSTEE_W, pSid: PSID +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithObjectsAndSidA*( + pTrustee: PTRUSTEE_A, + pObjSid: POBJECTS_AND_SID, + pObjectGuid: ptr GUID, + pInheritedObjectGuid: ptr GUID, + pSid: PSID, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithObjectsAndSidW*( + pTrustee: PTRUSTEE_W, + pObjSid: POBJECTS_AND_SID, + pObjectGuid: ptr GUID, + pInheritedObjectGuid: ptr GUID, + pSid: PSID, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithObjectsAndNameA*( + pTrustee: PTRUSTEE_A, + pObjName: POBJECTS_AND_NAME_A, + ObjectType: SE_OBJECT_TYPE, + ObjectTypeName: LPSTR, + InheritedObjectTypeName: LPSTR, + Name: LPSTR, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildTrusteeWithObjectsAndNameW*( + pTrustee: PTRUSTEE_W, + pObjName: POBJECTS_AND_NAME_W, + ObjectType: SE_OBJECT_TYPE, + ObjectTypeName: LPWSTR, + InheritedObjectTypeName: LPWSTR, + Name: LPWSTR, +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTrusteeNameA*( + pTrustee: PTRUSTEE_A +): LPSTR {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTrusteeNameW*( + pTrustee: PTRUSTEE_W +): LPWSTR {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTrusteeTypeA*( + pTrustee: PTRUSTEE_A +): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTrusteeTypeW*( + pTrustee: PTRUSTEE_W +): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTrusteeFormA*( + pTrustee: PTRUSTEE_A +): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTrusteeFormW*( + pTrustee: PTRUSTEE_W +): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetMultipleTrusteeOperationA*( + pTrustee: PTRUSTEE_A +): MULTIPLE_TRUSTEE_OPERATION {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetMultipleTrusteeOperationW*( + pTrustee: PTRUSTEE_W +): MULTIPLE_TRUSTEE_OPERATION {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetMultipleTrusteeA*( + pTrustee: PTRUSTEE_A +): PTRUSTEE_A {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetMultipleTrusteeW*( + pTrustee: PTRUSTEE_W +): PTRUSTEE_W {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc TreeSetNamedSecurityInfoA*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + dwAction: DWORD, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc TreeSetNamedSecurityInfoW*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + dwAction: DWORD, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuthzAccessCheck*( + Flags: DWORD, + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pRequest: PAUTHZ_ACCESS_REQUEST, + hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + OptionalSecurityDescriptorArray: ptr PSECURITY_DESCRIPTOR, + OptionalSecurityDescriptorCount: DWORD, + pReply: PAUTHZ_ACCESS_REPLY, + phAccessCheckResults: PAUTHZ_ACCESS_CHECK_RESULTS_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzCachedAccessCheck*( + Flags: DWORD, + hAccessCheckResults: AUTHZ_ACCESS_CHECK_RESULTS_HANDLE, + pRequest: PAUTHZ_ACCESS_REQUEST, + hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE, + pReply: PAUTHZ_ACCESS_REPLY, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzOpenObjectAudit*( + Flags: DWORD, + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pRequest: PAUTHZ_ACCESS_REQUEST, + hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + OptionalSecurityDescriptorArray: ptr PSECURITY_DESCRIPTOR, + OptionalSecurityDescriptorCount: DWORD, + pReply: PAUTHZ_ACCESS_REPLY, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzFreeHandle*( + hAccessCheckResults: AUTHZ_ACCESS_CHECK_RESULTS_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeResourceManager*( + Flags: DWORD, + pfnDynamicAccessCheck: PFN_AUTHZ_DYNAMIC_ACCESS_CHECK, + pfnComputeDynamicGroups: PFN_AUTHZ_COMPUTE_DYNAMIC_GROUPS, + pfnFreeDynamicGroups: PFN_AUTHZ_FREE_DYNAMIC_GROUPS, + szResourceManagerName: PCWSTR, + phAuthzResourceManager: PAUTHZ_RESOURCE_MANAGER_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeResourceManagerEx*( + Flags: DWORD, + pAuthzInitInfo: PAUTHZ_INIT_INFO, + phAuthzResourceManager: PAUTHZ_RESOURCE_MANAGER_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeRemoteResourceManager*( + pRpcInitInfo: PAUTHZ_RPC_INIT_INFO_CLIENT, + phAuthzResourceManager: PAUTHZ_RESOURCE_MANAGER_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzFreeResourceManager*( + hAuthzResourceManager: AUTHZ_RESOURCE_MANAGER_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeContextFromToken*( + Flags: DWORD, + TokenHandle: HANDLE, + hAuthzResourceManager: AUTHZ_RESOURCE_MANAGER_HANDLE, + pExpirationTime: PLARGE_INTEGER, + Identifier: LUID, + DynamicGroupArgs: PVOID, + phAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeContextFromSid*( + Flags: DWORD, + UserSid: PSID, + hAuthzResourceManager: AUTHZ_RESOURCE_MANAGER_HANDLE, + pExpirationTime: PLARGE_INTEGER, + Identifier: LUID, + DynamicGroupArgs: PVOID, + phAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeContextFromAuthzContext*( + Flags: DWORD, + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pExpirationTime: PLARGE_INTEGER, + Identifier: LUID, + DynamicGroupArgs: PVOID, + phNewAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeCompoundContext*( + UserContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + DeviceContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + phCompoundContext: PAUTHZ_CLIENT_CONTEXT_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzAddSidsToContext*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + Sids: PSID_AND_ATTRIBUTES, + SidCount: DWORD, + RestrictedSids: PSID_AND_ATTRIBUTES, + RestrictedSidCount: DWORD, + phNewAuthzClientContext: PAUTHZ_CLIENT_CONTEXT_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzModifySecurityAttributes*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, + pAttributes: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzModifyClaims*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + ClaimClass: AUTHZ_CONTEXT_INFORMATION_CLASS, + pClaimOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, + pClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzModifySids*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + SidClass: AUTHZ_CONTEXT_INFORMATION_CLASS, + pSidOperations: PAUTHZ_SID_OPERATION, + pSids: PTOKEN_GROUPS, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzSetAppContainerInformation*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pAppContainerSid: PSID, + CapabilityCount: DWORD, + pCapabilitySids: PSID_AND_ATTRIBUTES, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzGetInformationFromContext*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + InfoClass: AUTHZ_CONTEXT_INFORMATION_CLASS, + BufferSize: DWORD, + pSizeRequired: PDWORD, + Buffer: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzFreeContext*( + hAuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInitializeObjectAccessAuditEvent*( + Flags: DWORD, + hAuditEventType: AUTHZ_AUDIT_EVENT_TYPE_HANDLE, + szOperationType: PWSTR, + szObjectType: PWSTR, + szObjectName: PWSTR, + szAdditionalInfo: PWSTR, + phAuditEvent: PAUTHZ_AUDIT_EVENT_HANDLE, + dwAdditionalParameterCount: DWORD, +): WINBOOL {.winapi, cdecl, varargs, dynlib: "authz", importc.} + +proc AuthzInitializeObjectAccessAuditEvent2*( + Flags: DWORD, + hAuditEventType: AUTHZ_AUDIT_EVENT_TYPE_HANDLE, + szOperationType: PWSTR, + szObjectType: PWSTR, + szObjectName: PWSTR, + szAdditionalInfo: PWSTR, + szAdditionalInfo2: PWSTR, + phAuditEvent: PAUTHZ_AUDIT_EVENT_HANDLE, + dwAdditionalParameterCount: DWORD, +): WINBOOL {.winapi, cdecl, varargs, dynlib: "authz", importc.} + +proc AuthzFreeAuditEvent*( + hAuditEvent: AUTHZ_AUDIT_EVENT_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzEvaluateSacl*( + AuthzClientContext: AUTHZ_CLIENT_CONTEXT_HANDLE, + pRequest: PAUTHZ_ACCESS_REQUEST, + Sacl: PACL, + GrantedAccess: ACCESS_MASK, + AccessGranted: WINBOOL, + pbGenerateAudit: PBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzInstallSecurityEventSource*( + dwFlags: DWORD, pRegistration: PAUTHZ_SOURCE_SCHEMA_REGISTRATION +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzUninstallSecurityEventSource*( + dwFlags: DWORD, szEventSourceName: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzEnumerateSecurityEventSources*( + dwFlags: DWORD, + Buffer: PAUTHZ_SOURCE_SCHEMA_REGISTRATION, + pdwCount: PDWORD, + pdwLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzRegisterSecurityEventSource*( + dwFlags: DWORD, + szEventSourceName: PCWSTR, + phEventProvider: PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzUnregisterSecurityEventSource*( + dwFlags: DWORD, phEventProvider: PAUTHZ_SECURITY_EVENT_PROVIDER_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzReportSecurityEvent*( + dwFlags: DWORD, + hEventProvider: AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, + dwAuditId: DWORD, + pUserSid: PSID, + dwCount: DWORD, +): WINBOOL {.winapi, cdecl, varargs, dynlib: "authz", importc.} + +proc AuthzReportSecurityEventFromParams*( + dwFlags: DWORD, + hEventProvider: AUTHZ_SECURITY_EVENT_PROVIDER_HANDLE, + dwAuditId: DWORD, + pUserSid: PSID, + pParams: PAUDIT_PARAMS, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzRegisterCapChangeNotification*( + phCapChangeSubscription: PAUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE, + pfnCapChangeCallback: LPTHREAD_START_ROUTINE, + pCallbackContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzUnregisterCapChangeNotification*( + hCapChangeSubscription: AUTHZ_CAP_CHANGE_SUBSCRIPTION_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "authz", importc.} + +proc AuthzFreeCentralAccessPolicyCache*(): WINBOOL {. + winapi, stdcall, dynlib: "authz", importc +.} + +proc CreateSecurityPage*( + psi: LPSECURITYINFO +): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "aclui", importc.} + +proc EditSecurity*( + hwndOwner: HWND, psi: LPSECURITYINFO +): WINBOOL {.winapi, stdcall, dynlib: "aclui", importc.} + +proc EditSecurityAdvanced*( + hwndOwner: HWND, psi: LPSECURITYINFO, uSIPage: SI_PAGE_TYPE +): HRESULT {.winapi, stdcall, dynlib: "aclui", importc.} + +proc `Provider=`*(self: var ACTRL_OVERLAPPED, x: PVOID) {.inline.} = + self.union1.Provider = x + +proc Provider*(self: ACTRL_OVERLAPPED): PVOID {.inline.} = + self.union1.Provider + +proc Provider*(self: var ACTRL_OVERLAPPED): var PVOID {.inline.} = + self.union1.Provider + +proc `Reserved1=`*(self: var ACTRL_OVERLAPPED, x: ULONG) {.inline.} = + self.union1.Reserved1 = x + +proc Reserved1*(self: ACTRL_OVERLAPPED): ULONG {.inline.} = + self.union1.Reserved1 + +proc Reserved1*(self: var ACTRL_OVERLAPPED): var ULONG {.inline.} = + self.union1.Reserved1 + +proc `Data0=`*(self: var AUDIT_PARAM, x: ULONG_PTR) {.inline.} = + self.union1.Data0 = x + +proc Data0*(self: AUDIT_PARAM): ULONG_PTR {.inline.} = + self.union1.Data0 + +proc Data0*(self: var AUDIT_PARAM): var ULONG_PTR {.inline.} = + self.union1.Data0 + +proc `Str=`*(self: var AUDIT_PARAM, x: PWSTR) {.inline.} = + self.union1.Str = x + +proc Str*(self: AUDIT_PARAM): PWSTR {.inline.} = + self.union1.Str + +proc Str*(self: var AUDIT_PARAM): var PWSTR {.inline.} = + self.union1.Str + +proc `u=`*(self: var AUDIT_PARAM, x: ULONG_PTR) {.inline.} = + self.union1.u = x + +proc u*(self: AUDIT_PARAM): ULONG_PTR {.inline.} = + self.union1.u + +proc u*(self: var AUDIT_PARAM): var ULONG_PTR {.inline.} = + self.union1.u + +proc `psid=`*(self: var AUDIT_PARAM, x: ptr SID) {.inline.} = + self.union1.psid = x + +proc psid*(self: AUDIT_PARAM): ptr SID {.inline.} = + self.union1.psid + +proc psid*(self: var AUDIT_PARAM): var ptr SID {.inline.} = + self.union1.psid + +proc `pguid=`*(self: var AUDIT_PARAM, x: ptr GUID) {.inline.} = + self.union1.pguid = x + +proc pguid*(self: AUDIT_PARAM): ptr GUID {.inline.} = + self.union1.pguid + +proc pguid*(self: var AUDIT_PARAM): var ptr GUID {.inline.} = + self.union1.pguid + +proc `LogonId_LowPart=`*(self: var AUDIT_PARAM, x: ULONG) {.inline.} = + self.union1.LogonId_LowPart = x + +proc LogonId_LowPart*(self: AUDIT_PARAM): ULONG {.inline.} = + self.union1.LogonId_LowPart + +proc LogonId_LowPart*(self: var AUDIT_PARAM): var ULONG {.inline.} = + self.union1.LogonId_LowPart + +proc `pObjectTypes=`*(self: var AUDIT_PARAM, x: ptr AUDIT_OBJECT_TYPES) {.inline.} = + self.union1.pObjectTypes = x + +proc pObjectTypes*(self: AUDIT_PARAM): ptr AUDIT_OBJECT_TYPES {.inline.} = + self.union1.pObjectTypes + +proc pObjectTypes*(self: var AUDIT_PARAM): var ptr AUDIT_OBJECT_TYPES {.inline.} = + self.union1.pObjectTypes + +proc `pIpAddress=`*(self: var AUDIT_PARAM, x: ptr AUDIT_IP_ADDRESS) {.inline.} = + self.union1.pIpAddress = x + +proc pIpAddress*(self: AUDIT_PARAM): ptr AUDIT_IP_ADDRESS {.inline.} = + self.union1.pIpAddress + +proc pIpAddress*(self: var AUDIT_PARAM): var ptr AUDIT_IP_ADDRESS {.inline.} = + self.union1.pIpAddress + +proc `Data1=`*(self: var AUDIT_PARAM, x: ULONG_PTR) {.inline.} = + self.union2.Data1 = x + +proc Data1*(self: AUDIT_PARAM): ULONG_PTR {.inline.} = + self.union2.Data1 + +proc Data1*(self: var AUDIT_PARAM): var ULONG_PTR {.inline.} = + self.union2.Data1 + +proc `LogonId_HighPart=`*(self: var AUDIT_PARAM, x: LONG) {.inline.} = + self.union2.LogonId_HighPart = x + +proc LogonId_HighPart*(self: AUDIT_PARAM): LONG {.inline.} = + self.union2.LogonId_HighPart + +proc LogonId_HighPart*(self: var AUDIT_PARAM): var LONG {.inline.} = + self.union2.LogonId_HighPart + +proc `pReserved=`*(self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION, x: PVOID) {.inline.} = + self.union1.pReserved = x + +proc pReserved*(self: AUTHZ_SOURCE_SCHEMA_REGISTRATION): PVOID {.inline.} = + self.union1.pReserved + +proc pReserved*(self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION): var PVOID {.inline.} = + self.union1.pReserved + +proc `pProviderGuid=`*( + self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION, x: ptr GUID +) {.inline.} = + self.union1.pProviderGuid = x + +proc pProviderGuid*(self: AUTHZ_SOURCE_SCHEMA_REGISTRATION): ptr GUID {.inline.} = + self.union1.pProviderGuid + +proc pProviderGuid*( + self: var AUTHZ_SOURCE_SCHEMA_REGISTRATION +): var ptr GUID {.inline.} = + self.union1.pProviderGuid + +proc GetObjectInformation*( + self: ptr ISecurityInformation, pObjectInfo: PSI_OBJECT_INFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectInformation(self, pObjectInfo) + +proc GetSecurity*( + self: ptr ISecurityInformation, + RequestedInformation: SECURITY_INFORMATION, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + fDefault: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecurity(self, RequestedInformation, ppSecurityDescriptor, fDefault) + +proc SetSecurity*( + self: ptr ISecurityInformation, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSecurity(self, SecurityInformation, pSecurityDescriptor) + +proc GetAccessRights*( + self: ptr ISecurityInformation, + pguidObjectType: ptr GUID, + dwFlags: DWORD, + ppAccess: ptr PSI_ACCESS, + pcAccesses: ptr ULONG, + piDefaultAccess: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAccessRights( + self, pguidObjectType, dwFlags, ppAccess, pcAccesses, piDefaultAccess + ) + +proc MapGeneric*( + self: ptr ISecurityInformation, + pguidObjectType: ptr GUID, + pAceFlags: ptr UCHAR, + pMask: ptr ACCESS_MASK, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapGeneric(self, pguidObjectType, pAceFlags, pMask) + +proc GetInheritTypes*( + self: ptr ISecurityInformation, + ppInheritTypes: ptr PSI_INHERIT_TYPE, + pcInheritTypes: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInheritTypes(self, ppInheritTypes, pcInheritTypes) + +proc PropertySheetPageCallback*( + self: ptr ISecurityInformation, hwnd: HWND, uMsg: UINT, uPage: SI_PAGE_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PropertySheetPageCallback(self, hwnd, uMsg, uPage) + +proc IsDaclCanonical*( + self: ptr ISecurityInformation2, pDacl: PACL +): WINBOOL {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDaclCanonical(self, pDacl) + +proc LookupSids*( + self: ptr ISecurityInformation2, + cSids: ULONG, + rgpSids: ptr PSID, + ppdo: ptr LPDATAOBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LookupSids(self, cSids, rgpSids, ppdo) + +proc GetEffectivePermission*( + self: ptr IEffectivePermission, + pguidObjectType: ptr GUID, + pUserSid: PSID, + pszServerName: LPCWSTR, + pSD: PSECURITY_DESCRIPTOR, + ppObjectTypeList: ptr POBJECT_TYPE_LIST, + pcObjectTypeListLength: ptr ULONG, + ppGrantedAccessList: ptr PACCESS_MASK, + pcGrantedAccessListLength: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEffectivePermission( + self, pguidObjectType, pUserSid, pszServerName, pSD, ppObjectTypeList, + pcObjectTypeListLength, ppGrantedAccessList, pcGrantedAccessListLength, + ) + +proc GetInheritSource*( + self: ptr ISecurityObjectTypeInfo, + si: SECURITY_INFORMATION, + pACL: PACL, + ppInheritArray: ptr PINHERITED_FROM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInheritSource(self, si, pACL, ppInheritArray) + +proc GetFullResourceName*( + self: ptr ISecurityInformation3, ppszResourceName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFullResourceName(self, ppszResourceName) + +proc OpenElevatedEditor*( + self: ptr ISecurityInformation3, hWnd: HWND, uPage: SI_PAGE_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenElevatedEditor(self, hWnd, uPage) + +proc GetSecondarySecurity*( + self: ptr ISecurityInformation4, + pSecurityObjects: ptr PSECURITY_OBJECT, + pSecurityObjectCount: PULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecondarySecurity(self, pSecurityObjects, pSecurityObjectCount) + +proc ComputeEffectivePermissionWithSecondarySecurity*( + self: ptr IEffectivePermission2, + pSid: PSID, + pDeviceSid: PSID, + pszServerName: PCWSTR, + pSecurityObjects: PSECURITY_OBJECT, + dwSecurityObjectCount: DWORD, + pUserGroups: PTOKEN_GROUPS, + pAuthzUserGroupsOperations: PAUTHZ_SID_OPERATION, + pDeviceGroups: PTOKEN_GROUPS, + pAuthzDeviceGroupsOperations: PAUTHZ_SID_OPERATION, + pAuthzUserClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, + pAuthzUserClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, + pAuthzDeviceClaims: PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION, + pAuthzDeviceClaimsOperations: PAUTHZ_SECURITY_ATTRIBUTE_OPERATION, + pEffpermResultLists: PEFFPERM_RESULT_LIST, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ComputeEffectivePermissionWithSecondarySecurity( + self, pSid, pDeviceSid, pszServerName, pSecurityObjects, dwSecurityObjectCount, + pUserGroups, pAuthzUserGroupsOperations, pDeviceGroups, + pAuthzDeviceGroupsOperations, pAuthzUserClaims, pAuthzUserClaimsOperations, + pAuthzDeviceClaims, pAuthzDeviceClaimsOperations, pEffpermResultLists, + ) + +converter winimConverterISecurityInformationToIUnknown*( + x: ptr ISecurityInformation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISecurityInformation2ToIUnknown*( + x: ptr ISecurityInformation2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEffectivePermissionToIUnknown*( + x: ptr IEffectivePermission +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISecurityObjectTypeInfoToIUnknown*( + x: ptr ISecurityObjectTypeInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISecurityInformation3ToIUnknown*( + x: ptr ISecurityInformation3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISecurityInformation4ToIUnknown*( + x: ptr ISecurityInformation4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEffectivePermission2ToIUnknown*( + x: ptr IEffectivePermission2 +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type OBJECTS_AND_NAME* = OBJECTS_AND_NAME_W @@ -931,31 +1889,205 @@ ACTRL_CONTROL_INFO* = ACTRL_CONTROL_INFOW PACTRL_CONTROL_INFO* = PACTRL_CONTROL_INFOW INHERITED_FROM* = INHERITED_FROMW - const - ACCCTRL_DEFAULT_PROVIDER* = ACCCTRL_DEFAULT_PROVIDERW - proc SetEntriesInAcl*(cCountOfExplicitEntries: ULONG, pListOfExplicitEntries: PEXPLICIT_ACCESS_W, OldAcl: PACL, NewAcl: ptr PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetEntriesInAclW".} - proc GetExplicitEntriesFromAcl*(pacl: PACL, pcCountOfExplicitEntries: PULONG, pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_W): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetExplicitEntriesFromAclW".} - proc GetEffectiveRightsFromAcl*(pacl: PACL, pTrustee: PTRUSTEE_W, pAccessRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetEffectiveRightsFromAclW".} - proc GetAuditedPermissionsFromAcl*(pacl: PACL, pTrustee: PTRUSTEE_W, pSuccessfulAuditedRights: PACCESS_MASK, pFailedAuditRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetAuditedPermissionsFromAclW".} - proc GetNamedSecurityInfo*(pObjectName: LPCWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, ppsidOwner: ptr PSID, ppsidGroup: ptr PSID, ppDacl: ptr PACL, ppSacl: ptr PACL, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetNamedSecurityInfoW".} - proc SetNamedSecurityInfo*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, psidOwner: PSID, psidGroup: PSID, pDacl: PACL, pSacl: PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetNamedSecurityInfoW".} - proc GetInheritanceSource*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, Container: WINBOOL, pObjectClassGuids: ptr ptr GUID, GuidCount: DWORD, pAcl: PACL, pfnArray: PFN_OBJECT_MGR_FUNCTS, pGenericMapping: PGENERIC_MAPPING, pInheritArray: PINHERITED_FROMW): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetInheritanceSourceW".} - proc TreeResetNamedSecurityInfo*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, KeepExplicit: WINBOOL, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "TreeResetNamedSecurityInfoW".} - proc BuildSecurityDescriptor*(pOwner: PTRUSTEE_W, pGroup: PTRUSTEE_W, cCountOfAccessEntries: ULONG, pListOfAccessEntries: PEXPLICIT_ACCESS_W, cCountOfAuditEntries: ULONG, pListOfAuditEntries: PEXPLICIT_ACCESS_W, pOldSD: PSECURITY_DESCRIPTOR, pSizeNewSD: PULONG, pNewSD: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "BuildSecurityDescriptorW".} - proc LookupSecurityDescriptorParts*(ppOwner: ptr PTRUSTEE_W, ppGroup: ptr PTRUSTEE_W, pcCountOfAccessEntries: PULONG, ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_W, pcCountOfAuditEntries: PULONG, ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_W, pSD: PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "LookupSecurityDescriptorPartsW".} - proc BuildExplicitAccessWithName*(pExplicitAccess: PEXPLICIT_ACCESS_W, pTrusteeName: LPWSTR, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildExplicitAccessWithNameW".} - proc BuildImpersonateExplicitAccessWithName*(pExplicitAccess: PEXPLICIT_ACCESS_W, pTrusteeName: LPWSTR, pTrustee: PTRUSTEE_W, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildImpersonateExplicitAccessWithNameW".} - proc BuildTrusteeWithName*(pTrustee: PTRUSTEE_W, pName: LPWSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithNameW".} - proc BuildImpersonateTrustee*(pTrustee: PTRUSTEE_W, pImpersonateTrustee: PTRUSTEE_W): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildImpersonateTrusteeW".} - proc BuildTrusteeWithSid*(pTrustee: PTRUSTEE_W, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithSidW".} - proc BuildTrusteeWithObjectsAndSid*(pTrustee: PTRUSTEE_W, pObjSid: POBJECTS_AND_SID, pObjectGuid: ptr GUID, pInheritedObjectGuid: ptr GUID, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndSidW".} - proc BuildTrusteeWithObjectsAndName*(pTrustee: PTRUSTEE_W, pObjName: POBJECTS_AND_NAME_W, ObjectType: SE_OBJECT_TYPE, ObjectTypeName: LPWSTR, InheritedObjectTypeName: LPWSTR, Name: LPWSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndNameW".} - proc GetTrusteeName*(pTrustee: PTRUSTEE_W): LPWSTR {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeNameW".} - proc GetTrusteeType*(pTrustee: PTRUSTEE_W): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeTypeW".} - proc GetTrusteeForm*(pTrustee: PTRUSTEE_W): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeFormW".} - proc GetMultipleTrusteeOperation*(pTrustee: PTRUSTEE_W): MULTIPLE_TRUSTEE_OPERATION {.winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeOperationW".} - proc GetMultipleTrustee*(pTrustee: PTRUSTEE_W): PTRUSTEE_W {.winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeW".} - proc TreeSetNamedSecurityInfo*(pObjectName: LPWSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, dwAction: DWORD, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "TreeSetNamedSecurityInfoW".} + + const ACCCTRL_DEFAULT_PROVIDER* = ACCCTRL_DEFAULT_PROVIDERW + proc SetEntriesInAcl*( + cCountOfExplicitEntries: ULONG, + pListOfExplicitEntries: PEXPLICIT_ACCESS_W, + OldAcl: PACL, + NewAcl: ptr PACL, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetEntriesInAclW".} + + proc GetExplicitEntriesFromAcl*( + pacl: PACL, + pcCountOfExplicitEntries: PULONG, + pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_W, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "GetExplicitEntriesFromAclW" + .} + + proc GetEffectiveRightsFromAcl*( + pacl: PACL, pTrustee: PTRUSTEE_W, pAccessRights: PACCESS_MASK + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "GetEffectiveRightsFromAclW" + .} + + proc GetAuditedPermissionsFromAcl*( + pacl: PACL, + pTrustee: PTRUSTEE_W, + pSuccessfulAuditedRights: PACCESS_MASK, + pFailedAuditRights: PACCESS_MASK, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "GetAuditedPermissionsFromAclW" + .} + + proc GetNamedSecurityInfo*( + pObjectName: LPCWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + ppsidOwner: ptr PSID, + ppsidGroup: ptr PSID, + ppDacl: ptr PACL, + ppSacl: ptr PACL, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetNamedSecurityInfoW".} + + proc SetNamedSecurityInfo*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + psidOwner: PSID, + psidGroup: PSID, + pDacl: PACL, + pSacl: PACL, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetNamedSecurityInfoW".} + + proc GetInheritanceSource*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + Container: WINBOOL, + pObjectClassGuids: ptr ptr GUID, + GuidCount: DWORD, + pAcl: PACL, + pfnArray: PFN_OBJECT_MGR_FUNCTS, + pGenericMapping: PGENERIC_MAPPING, + pInheritArray: PINHERITED_FROMW, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetInheritanceSourceW".} + + proc TreeResetNamedSecurityInfo*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + KeepExplicit: WINBOOL, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "TreeResetNamedSecurityInfoW" + .} + + proc BuildSecurityDescriptor*( + pOwner: PTRUSTEE_W, + pGroup: PTRUSTEE_W, + cCountOfAccessEntries: ULONG, + pListOfAccessEntries: PEXPLICIT_ACCESS_W, + cCountOfAuditEntries: ULONG, + pListOfAuditEntries: PEXPLICIT_ACCESS_W, + pOldSD: PSECURITY_DESCRIPTOR, + pSizeNewSD: PULONG, + pNewSD: ptr PSECURITY_DESCRIPTOR, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "BuildSecurityDescriptorW".} + + proc LookupSecurityDescriptorParts*( + ppOwner: ptr PTRUSTEE_W, + ppGroup: ptr PTRUSTEE_W, + pcCountOfAccessEntries: PULONG, + ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_W, + pcCountOfAuditEntries: PULONG, + ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_W, + pSD: PSECURITY_DESCRIPTOR, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "LookupSecurityDescriptorPartsW" + .} + + proc BuildExplicitAccessWithName*( + pExplicitAccess: PEXPLICIT_ACCESS_W, + pTrusteeName: LPWSTR, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, + ): VOID {. + winapi, stdcall, dynlib: "advapi32", importc: "BuildExplicitAccessWithNameW" + .} + + proc BuildImpersonateExplicitAccessWithName*( + pExplicitAccess: PEXPLICIT_ACCESS_W, + pTrusteeName: LPWSTR, + pTrustee: PTRUSTEE_W, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, + ): VOID {. + winapi, + stdcall, + dynlib: "advapi32", + importc: "BuildImpersonateExplicitAccessWithNameW" + .} + + proc BuildTrusteeWithName*( + pTrustee: PTRUSTEE_W, pName: LPWSTR + ): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithNameW".} + + proc BuildImpersonateTrustee*( + pTrustee: PTRUSTEE_W, pImpersonateTrustee: PTRUSTEE_W + ): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildImpersonateTrusteeW".} + + proc BuildTrusteeWithSid*( + pTrustee: PTRUSTEE_W, pSid: PSID + ): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithSidW".} + + proc BuildTrusteeWithObjectsAndSid*( + pTrustee: PTRUSTEE_W, + pObjSid: POBJECTS_AND_SID, + pObjectGuid: ptr GUID, + pInheritedObjectGuid: ptr GUID, + pSid: PSID, + ): VOID {. + winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndSidW" + .} + + proc BuildTrusteeWithObjectsAndName*( + pTrustee: PTRUSTEE_W, + pObjName: POBJECTS_AND_NAME_W, + ObjectType: SE_OBJECT_TYPE, + ObjectTypeName: LPWSTR, + InheritedObjectTypeName: LPWSTR, + Name: LPWSTR, + ): VOID {. + winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndNameW" + .} + + proc GetTrusteeName*( + pTrustee: PTRUSTEE_W + ): LPWSTR {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeNameW".} + + proc GetTrusteeType*( + pTrustee: PTRUSTEE_W + ): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeTypeW".} + + proc GetTrusteeForm*( + pTrustee: PTRUSTEE_W + ): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeFormW".} + + proc GetMultipleTrusteeOperation*( + pTrustee: PTRUSTEE_W + ): MULTIPLE_TRUSTEE_OPERATION {. + winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeOperationW" + .} + + proc GetMultipleTrustee*( + pTrustee: PTRUSTEE_W + ): PTRUSTEE_W {.winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeW".} + + proc TreeSetNamedSecurityInfo*( + pObjectName: LPWSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + dwAction: DWORD, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "TreeSetNamedSecurityInfoW".} + when winimAnsi: type OBJECTS_AND_NAME* = OBJECTS_AND_NAME_A @@ -981,28 +2113,201 @@ ACTRL_CONTROL_INFO* = ACTRL_CONTROL_INFOA PACTRL_CONTROL_INFO* = PACTRL_CONTROL_INFOA INHERITED_FROM* = INHERITED_FROMA - const - ACCCTRL_DEFAULT_PROVIDER* = ACCCTRL_DEFAULT_PROVIDERA - proc SetEntriesInAcl*(cCountOfExplicitEntries: ULONG, pListOfExplicitEntries: PEXPLICIT_ACCESS_A, OldAcl: PACL, NewAcl: ptr PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetEntriesInAclA".} - proc GetExplicitEntriesFromAcl*(pacl: PACL, pcCountOfExplicitEntries: PULONG, pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_A): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetExplicitEntriesFromAclA".} - proc GetEffectiveRightsFromAcl*(pacl: PACL, pTrustee: PTRUSTEE_A, pAccessRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetEffectiveRightsFromAclA".} - proc GetAuditedPermissionsFromAcl*(pacl: PACL, pTrustee: PTRUSTEE_A, pSuccessfulAuditedRights: PACCESS_MASK, pFailedAuditRights: PACCESS_MASK): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetAuditedPermissionsFromAclA".} - proc GetNamedSecurityInfo*(pObjectName: LPCSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, ppsidOwner: ptr PSID, ppsidGroup: ptr PSID, ppDacl: ptr PACL, ppSacl: ptr PACL, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetNamedSecurityInfoA".} - proc SetNamedSecurityInfo*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, psidOwner: PSID, psidGroup: PSID, pDacl: PACL, pSacl: PACL): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetNamedSecurityInfoA".} - proc GetInheritanceSource*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, Container: WINBOOL, pObjectClassGuids: ptr ptr GUID, GuidCount: DWORD, pAcl: PACL, pfnArray: PFN_OBJECT_MGR_FUNCTS, pGenericMapping: PGENERIC_MAPPING, pInheritArray: PINHERITED_FROMA): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetInheritanceSourceA".} - proc TreeResetNamedSecurityInfo*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, KeepExplicit: WINBOOL, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "TreeResetNamedSecurityInfoA".} - proc BuildSecurityDescriptor*(pOwner: PTRUSTEE_A, pGroup: PTRUSTEE_A, cCountOfAccessEntries: ULONG, pListOfAccessEntries: PEXPLICIT_ACCESS_A, cCountOfAuditEntries: ULONG, pListOfAuditEntries: PEXPLICIT_ACCESS_A, pOldSD: PSECURITY_DESCRIPTOR, pSizeNewSD: PULONG, pNewSD: ptr PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "BuildSecurityDescriptorA".} - proc LookupSecurityDescriptorParts*(ppOwner: ptr PTRUSTEE_A, ppGroup: ptr PTRUSTEE_A, pcCountOfAccessEntries: PULONG, ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_A, pcCountOfAuditEntries: PULONG, ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_A, pSD: PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "LookupSecurityDescriptorPartsA".} - proc BuildExplicitAccessWithName*(pExplicitAccess: PEXPLICIT_ACCESS_A, pTrusteeName: LPSTR, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildExplicitAccessWithNameA".} - proc BuildImpersonateExplicitAccessWithName*(pExplicitAccess: PEXPLICIT_ACCESS_A, pTrusteeName: LPSTR, pTrustee: PTRUSTEE_A, AccessPermissions: DWORD, AccessMode: ACCESS_MODE, Inheritance: DWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildImpersonateExplicitAccessWithNameA".} - proc BuildTrusteeWithName*(pTrustee: PTRUSTEE_A, pName: LPSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithNameA".} - proc BuildImpersonateTrustee*(pTrustee: PTRUSTEE_A, pImpersonateTrustee: PTRUSTEE_A): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildImpersonateTrusteeA".} - proc BuildTrusteeWithSid*(pTrustee: PTRUSTEE_A, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithSidA".} - proc BuildTrusteeWithObjectsAndSid*(pTrustee: PTRUSTEE_A, pObjSid: POBJECTS_AND_SID, pObjectGuid: ptr GUID, pInheritedObjectGuid: ptr GUID, pSid: PSID): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndSidA".} - proc BuildTrusteeWithObjectsAndName*(pTrustee: PTRUSTEE_A, pObjName: POBJECTS_AND_NAME_A, ObjectType: SE_OBJECT_TYPE, ObjectTypeName: LPSTR, InheritedObjectTypeName: LPSTR, Name: LPSTR): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndNameA".} - proc GetTrusteeName*(pTrustee: PTRUSTEE_A): LPSTR {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeNameA".} - proc GetTrusteeType*(pTrustee: PTRUSTEE_A): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeTypeA".} - proc GetTrusteeForm*(pTrustee: PTRUSTEE_A): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeFormA".} - proc GetMultipleTrusteeOperation*(pTrustee: PTRUSTEE_A): MULTIPLE_TRUSTEE_OPERATION {.winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeOperationA".} - proc GetMultipleTrustee*(pTrustee: PTRUSTEE_A): PTRUSTEE_A {.winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeA".} - proc TreeSetNamedSecurityInfo*(pObjectName: LPSTR, ObjectType: SE_OBJECT_TYPE, SecurityInfo: SECURITY_INFORMATION, pOwner: PSID, pGroup: PSID, pDacl: PACL, pSacl: PACL, dwAction: DWORD, fnProgress: FN_PROGRESS, ProgressInvokeSetting: PROG_INVOKE_SETTING, Args: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "TreeSetNamedSecurityInfoA".} + + const ACCCTRL_DEFAULT_PROVIDER* = ACCCTRL_DEFAULT_PROVIDERA + proc SetEntriesInAcl*( + cCountOfExplicitEntries: ULONG, + pListOfExplicitEntries: PEXPLICIT_ACCESS_A, + OldAcl: PACL, + NewAcl: ptr PACL, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetEntriesInAclA".} + + proc GetExplicitEntriesFromAcl*( + pacl: PACL, + pcCountOfExplicitEntries: PULONG, + pListOfExplicitEntries: ptr PEXPLICIT_ACCESS_A, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "GetExplicitEntriesFromAclA" + .} + + proc GetEffectiveRightsFromAcl*( + pacl: PACL, pTrustee: PTRUSTEE_A, pAccessRights: PACCESS_MASK + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "GetEffectiveRightsFromAclA" + .} + + proc GetAuditedPermissionsFromAcl*( + pacl: PACL, + pTrustee: PTRUSTEE_A, + pSuccessfulAuditedRights: PACCESS_MASK, + pFailedAuditRights: PACCESS_MASK, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "GetAuditedPermissionsFromAclA" + .} + + proc GetNamedSecurityInfo*( + pObjectName: LPCSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + ppsidOwner: ptr PSID, + ppsidGroup: ptr PSID, + ppDacl: ptr PACL, + ppSacl: ptr PACL, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetNamedSecurityInfoA".} + + proc SetNamedSecurityInfo*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + psidOwner: PSID, + psidGroup: PSID, + pDacl: PACL, + pSacl: PACL, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "SetNamedSecurityInfoA".} + + proc GetInheritanceSource*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + Container: WINBOOL, + pObjectClassGuids: ptr ptr GUID, + GuidCount: DWORD, + pAcl: PACL, + pfnArray: PFN_OBJECT_MGR_FUNCTS, + pGenericMapping: PGENERIC_MAPPING, + pInheritArray: PINHERITED_FROMA, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "GetInheritanceSourceA".} + + proc TreeResetNamedSecurityInfo*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + KeepExplicit: WINBOOL, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "TreeResetNamedSecurityInfoA" + .} + + proc BuildSecurityDescriptor*( + pOwner: PTRUSTEE_A, + pGroup: PTRUSTEE_A, + cCountOfAccessEntries: ULONG, + pListOfAccessEntries: PEXPLICIT_ACCESS_A, + cCountOfAuditEntries: ULONG, + pListOfAuditEntries: PEXPLICIT_ACCESS_A, + pOldSD: PSECURITY_DESCRIPTOR, + pSizeNewSD: PULONG, + pNewSD: ptr PSECURITY_DESCRIPTOR, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "BuildSecurityDescriptorA".} + + proc LookupSecurityDescriptorParts*( + ppOwner: ptr PTRUSTEE_A, + ppGroup: ptr PTRUSTEE_A, + pcCountOfAccessEntries: PULONG, + ppListOfAccessEntries: ptr PEXPLICIT_ACCESS_A, + pcCountOfAuditEntries: PULONG, + ppListOfAuditEntries: ptr PEXPLICIT_ACCESS_A, + pSD: PSECURITY_DESCRIPTOR, + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "LookupSecurityDescriptorPartsA" + .} + + proc BuildExplicitAccessWithName*( + pExplicitAccess: PEXPLICIT_ACCESS_A, + pTrusteeName: LPSTR, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, + ): VOID {. + winapi, stdcall, dynlib: "advapi32", importc: "BuildExplicitAccessWithNameA" + .} + + proc BuildImpersonateExplicitAccessWithName*( + pExplicitAccess: PEXPLICIT_ACCESS_A, + pTrusteeName: LPSTR, + pTrustee: PTRUSTEE_A, + AccessPermissions: DWORD, + AccessMode: ACCESS_MODE, + Inheritance: DWORD, + ): VOID {. + winapi, + stdcall, + dynlib: "advapi32", + importc: "BuildImpersonateExplicitAccessWithNameA" + .} + + proc BuildTrusteeWithName*( + pTrustee: PTRUSTEE_A, pName: LPSTR + ): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithNameA".} + + proc BuildImpersonateTrustee*( + pTrustee: PTRUSTEE_A, pImpersonateTrustee: PTRUSTEE_A + ): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildImpersonateTrusteeA".} + + proc BuildTrusteeWithSid*( + pTrustee: PTRUSTEE_A, pSid: PSID + ): VOID {.winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithSidA".} + + proc BuildTrusteeWithObjectsAndSid*( + pTrustee: PTRUSTEE_A, + pObjSid: POBJECTS_AND_SID, + pObjectGuid: ptr GUID, + pInheritedObjectGuid: ptr GUID, + pSid: PSID, + ): VOID {. + winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndSidA" + .} + + proc BuildTrusteeWithObjectsAndName*( + pTrustee: PTRUSTEE_A, + pObjName: POBJECTS_AND_NAME_A, + ObjectType: SE_OBJECT_TYPE, + ObjectTypeName: LPSTR, + InheritedObjectTypeName: LPSTR, + Name: LPSTR, + ): VOID {. + winapi, stdcall, dynlib: "advapi32", importc: "BuildTrusteeWithObjectsAndNameA" + .} + + proc GetTrusteeName*( + pTrustee: PTRUSTEE_A + ): LPSTR {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeNameA".} + + proc GetTrusteeType*( + pTrustee: PTRUSTEE_A + ): TRUSTEE_TYPE {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeTypeA".} + + proc GetTrusteeForm*( + pTrustee: PTRUSTEE_A + ): TRUSTEE_FORM {.winapi, stdcall, dynlib: "advapi32", importc: "GetTrusteeFormA".} + + proc GetMultipleTrusteeOperation*( + pTrustee: PTRUSTEE_A + ): MULTIPLE_TRUSTEE_OPERATION {. + winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeOperationA" + .} + + proc GetMultipleTrustee*( + pTrustee: PTRUSTEE_A + ): PTRUSTEE_A {.winapi, stdcall, dynlib: "advapi32", importc: "GetMultipleTrusteeA".} + + proc TreeSetNamedSecurityInfo*( + pObjectName: LPSTR, + ObjectType: SE_OBJECT_TYPE, + SecurityInfo: SECURITY_INFORMATION, + pOwner: PSID, + pGroup: PSID, + pDacl: PACL, + pSacl: PACL, + dwAction: DWORD, + fnProgress: FN_PROGRESS, + ProgressInvokeSetting: PROG_INVOKE_SETTING, + Args: PVOID, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "TreeSetNamedSecurityInfoA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/commctrl.nim --- a/semicongine/thirdparty/winim/winim/inc/commctrl.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/commctrl.nim Thu Aug 22 18:32:21 2024 +0700 @@ -32,10 +32,13 @@ PROPSHEETPAGEA_UNION1* {.pure, union.} = object pszTemplate*: LPCSTR pResource*: LPCDLGTEMPLATE + PROPSHEETPAGEA_UNION2* {.pure, union.} = object hIcon*: HICON pszIcon*: LPCSTR - LPFNPSPCALLBACKA* = proc (hwnd: HWND, uMsg: UINT, ppsp: ptr PROPSHEETPAGEA): UINT {.stdcall.} + + LPFNPSPCALLBACKA* = + proc(hwnd: HWND, uMsg: UINT, ppsp: ptr PROPSHEETPAGEA): UINT {.stdcall.} PROPSHEETPAGEA* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD @@ -50,15 +53,19 @@ pszHeaderTitle*: LPCSTR pszHeaderSubTitle*: LPCSTR hActCtx*: HANDLE + LPPROPSHEETPAGEA* = ptr PROPSHEETPAGEA LPCPROPSHEETPAGEA* = ptr PROPSHEETPAGEA PROPSHEETPAGEW_UNION1* {.pure, union.} = object pszTemplate*: LPCWSTR pResource*: LPCDLGTEMPLATE + PROPSHEETPAGEW_UNION2* {.pure, union.} = object hIcon*: HICON pszIcon*: LPCWSTR - LPFNPSPCALLBACKW* = proc (hwnd: HWND, uMsg: UINT, ppsp: ptr PROPSHEETPAGEW): UINT {.stdcall.} + + LPFNPSPCALLBACKW* = + proc(hwnd: HWND, uMsg: UINT, ppsp: ptr PROPSHEETPAGEW): UINT {.stdcall.} PROPSHEETPAGEW* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD @@ -73,24 +80,30 @@ pszHeaderTitle*: LPCWSTR pszHeaderSubTitle*: LPCWSTR hActCtx*: HANDLE + LPPROPSHEETPAGEW* = ptr PROPSHEETPAGEW LPCPROPSHEETPAGEW* = ptr PROPSHEETPAGEW PROPSHEETHEADERA_UNION1* {.pure, union.} = object hIcon*: HICON pszIcon*: LPCSTR + PROPSHEETHEADERA_UNION2* {.pure, union.} = object nStartPage*: UINT pStartPage*: LPCSTR + PROPSHEETHEADERA_UNION3* {.pure, union.} = object ppsp*: LPCPROPSHEETPAGEA phpage*: ptr HPROPSHEETPAGE - PFNPROPSHEETCALLBACK* = proc (P1: HWND, P2: UINT, P3: LPARAM): int32 {.stdcall.} + + PFNPROPSHEETCALLBACK* = proc(P1: HWND, P2: UINT, P3: LPARAM): int32 {.stdcall.} PROPSHEETHEADERA_UNION4* {.pure, union.} = object hbmWatermark*: HBITMAP pszbmWatermark*: LPCSTR + PROPSHEETHEADERA_UNION5* {.pure, union.} = object hbmHeader*: HBITMAP pszbmHeader*: LPCSTR + PROPSHEETHEADERA* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD @@ -105,23 +118,29 @@ union4*: PROPSHEETHEADERA_UNION4 hplWatermark*: HPALETTE union5*: PROPSHEETHEADERA_UNION5 + LPPROPSHEETHEADERA* = ptr PROPSHEETHEADERA LPCPROPSHEETHEADERA* = ptr PROPSHEETHEADERA PROPSHEETHEADERW_UNION1* {.pure, union.} = object hIcon*: HICON pszIcon*: LPCWSTR + PROPSHEETHEADERW_UNION2* {.pure, union.} = object nStartPage*: UINT pStartPage*: LPCWSTR + PROPSHEETHEADERW_UNION3* {.pure, union.} = object ppsp*: LPCPROPSHEETPAGEW phpage*: ptr HPROPSHEETPAGE + PROPSHEETHEADERW_UNION4* {.pure, union.} = object hbmWatermark*: HBITMAP pszbmWatermark*: LPCWSTR + PROPSHEETHEADERW_UNION5* {.pure, union.} = object hbmHeader*: HBITMAP pszbmHeader*: LPCWSTR + PROPSHEETHEADERW* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD @@ -136,24 +155,29 @@ union4*: PROPSHEETHEADERW_UNION4 hplWatermark*: HPALETTE union5*: PROPSHEETHEADERW_UNION5 + LPPROPSHEETHEADERW* = ptr PROPSHEETHEADERW LPCPROPSHEETHEADERW* = ptr PROPSHEETHEADERW PSHNOTIFY* {.pure.} = object hdr*: NMHDR lParam*: LPARAM + LPPSHNOTIFY* = ptr PSHNOTIFY TINITCOMMONCONTROLSEX* {.pure.} = object dwSize*: DWORD dwICC*: DWORD + LPINITCOMMONCONTROLSEX* = ptr TINITCOMMONCONTROLSEX COLORSCHEME* {.pure.} = object dwSize*: DWORD clrBtnHighlight*: COLORREF clrBtnShadow*: COLORREF + LPCOLORSCHEME* = ptr COLORSCHEME TNMTOOLTIPSCREATED* {.pure.} = object hdr*: NMHDR hwndToolTips*: HWND + LPNMTOOLTIPSCREATED* = ptr TNMTOOLTIPSCREATED NMMOUSE* {.pure.} = object hdr*: NMHDR @@ -161,6 +185,7 @@ dwItemData*: DWORD_PTR pt*: POINT dwHitInfo*: LPARAM + LPNMMOUSE* = ptr NMMOUSE TNMCLICK* = NMMOUSE LPNMCLICK* = LPNMMOUSE @@ -171,17 +196,20 @@ pObject*: pointer hResult*: HRESULT dwFlags*: DWORD + LPNMOBJECTNOTIFY* = ptr NMOBJECTNOTIFY NMKEY* {.pure.} = object hdr*: NMHDR nVKey*: UINT uFlags*: UINT + LPNMKEY* = ptr NMKEY TNMCHAR* {.pure.} = object hdr*: NMHDR ch*: UINT dwItemPrev*: DWORD dwItemNext*: DWORD + LPNMCHAR* = ptr TNMCHAR TNMCUSTOMTEXT* {.pure.} = object hdr*: NMHDR @@ -191,6 +219,7 @@ lpRect*: LPRECT uFormat*: UINT fLink*: WINBOOL + LPNMCUSTOMTEXT* = ptr TNMCUSTOMTEXT TNMCUSTOMDRAW* {.pure.} = object hdr*: NMHDR @@ -200,16 +229,19 @@ dwItemSpec*: DWORD_PTR uItemState*: UINT lItemlParam*: LPARAM + LPNMCUSTOMDRAW* = ptr TNMCUSTOMDRAW NMTTCUSTOMDRAW* {.pure.} = object nmcd*: TNMCUSTOMDRAW uDrawFlags*: UINT + LPNMTTCUSTOMDRAW* = ptr NMTTCUSTOMDRAW NMCUSTOMSPLITRECTINFO* {.pure.} = object hdr*: NMHDR rcClient*: RECT rcButton*: RECT rcSplit*: RECT + LPNMCUSTOMSPLITRECTINFO* = ptr NMCUSTOMSPLITRECTINFO IMAGELISTDRAWPARAMS* {.pure.} = object cbSize*: DWORD @@ -229,6 +261,7 @@ fState*: DWORD Frame*: DWORD crEffect*: COLORREF + LPIMAGELISTDRAWPARAMS* = ptr IMAGELISTDRAWPARAMS IMAGEINFO* {.pure.} = object hbmImage*: HBITMAP @@ -236,14 +269,17 @@ Unused1*: int32 Unused2*: int32 rcImage*: RECT + LPIMAGEINFO* = ptr IMAGEINFO HD_TEXTFILTERA* {.pure.} = object pszText*: LPSTR cchTextMax*: INT + LPHD_TEXTFILTERA* = ptr HD_TEXTFILTERA HD_TEXTFILTERW* {.pure.} = object pszText*: LPWSTR cchTextMax*: INT + LPHD_TEXTFILTERW* = ptr HD_TEXTFILTERW HDITEMA* {.pure.} = object mask*: UINT @@ -258,6 +294,7 @@ `type`*: UINT pvFilter*: pointer state*: UINT + LPHDITEMA* = ptr HDITEMA HDITEMW* {.pure.} = object mask*: UINT @@ -272,34 +309,38 @@ `type`*: UINT pvFilter*: pointer state*: UINT + LPHDITEMW* = ptr HDITEMW HDLAYOUT* {.pure.} = object prc*: ptr RECT pwpos*: ptr WINDOWPOS + LPHDLAYOUT* = ptr HDLAYOUT HDHITTESTINFO* {.pure.} = object pt*: POINT flags*: UINT iItem*: int32 + LPHDHITTESTINFO* = ptr HDHITTESTINFO NMHEADERA* {.pure.} = object hdr*: NMHDR iItem*: int32 iButton*: int32 pitem*: ptr HDITEMA + HD_NOTIFYA* = NMHEADERA NMHEADERW* {.pure.} = object hdr*: NMHDR iItem*: int32 iButton*: int32 pitem*: ptr HDITEMW + HD_NOTIFYW* = NMHEADERW + when winimUnicode: - type - NMHEADER* = NMHEADERW + type NMHEADER* = NMHEADERW when winimAnsi: - type - NMHEADER* = NMHEADERA + type NMHEADER* = NMHEADERA type HD_NOTIFY* = NMHEADER LPNMHEADERA* = ptr NMHEADERA @@ -312,6 +353,7 @@ cchTextMax*: int32 iImage*: int32 lParam*: LPARAM + LPNMHDDISPINFOW* = ptr NMHDDISPINFOW NMHDDISPINFOA* {.pure.} = object hdr*: NMHDR @@ -321,37 +363,41 @@ cchTextMax*: int32 iImage*: int32 lParam*: LPARAM + LPNMHDDISPINFOA* = ptr NMHDDISPINFOA NMHDFILTERBTNCLICK* {.pure.} = object hdr*: NMHDR iItem*: INT rc*: RECT + LPNMHDFILTERBTNCLICK* = ptr NMHDFILTERBTNCLICK + when winimCpu64: - type - TBBUTTON* {.pure.} = object - iBitmap*: int32 - idCommand*: int32 - fsState*: BYTE - fsStyle*: BYTE - bReserved*: array[6, BYTE] - dwData*: DWORD_PTR - iString*: INT_PTR + type TBBUTTON* {.pure.} = object + iBitmap*: int32 + idCommand*: int32 + fsState*: BYTE + fsStyle*: BYTE + bReserved*: array[6, BYTE] + dwData*: DWORD_PTR + iString*: INT_PTR + when winimCpu32: - type - TBBUTTON* {.pure.} = object - iBitmap*: int32 - idCommand*: int32 - fsState*: BYTE - fsStyle*: BYTE - bReserved*: array[2, BYTE] - dwData*: DWORD_PTR - iString*: INT_PTR + type TBBUTTON* {.pure.} = object + iBitmap*: int32 + idCommand*: int32 + fsState*: BYTE + fsStyle*: BYTE + bReserved*: array[2, BYTE] + dwData*: DWORD_PTR + iString*: INT_PTR + type LPCTBBUTTON* = ptr TBBUTTON COLORMAP* {.pure.} = object `from`*: COLORREF to*: COLORREF + LPCOLORMAP* = ptr COLORMAP NMTBCUSTOMDRAW* {.pure.} = object nmcd*: TNMCUSTOMDRAW @@ -368,24 +414,29 @@ nStringBkMode*: int32 nHLStringBkMode*: int32 iListGap*: int32 + LPNMTBCUSTOMDRAW* = ptr NMTBCUSTOMDRAW TTBADDBITMAP* {.pure.} = object hInst*: HINSTANCE nID*: UINT_PTR + LPTBADDBITMAP* = ptr TTBADDBITMAP TBSAVEPARAMSA* {.pure.} = object hkr*: HKEY pszSubKey*: LPCSTR pszValueName*: LPCSTR + LPTBSAVEPARAMSA* = ptr TBSAVEPARAMSA TBSAVEPARAMSW* {.pure.} = object hkr*: HKEY pszSubKey*: LPCWSTR pszValueName*: LPCWSTR + LPTBSAVEPARAMW* = ptr TBSAVEPARAMSW TBINSERTMARK* {.pure.} = object iButton*: int32 dwFlags*: DWORD + LPTBINSERTMARK* = ptr TBINSERTMARK TTBREPLACEBITMAP* {.pure.} = object hInstOld*: HINSTANCE @@ -393,6 +444,7 @@ hInstNew*: HINSTANCE nIDNew*: UINT_PTR nButtons*: int32 + LPTBREPLACEBITMAP* = ptr TTBREPLACEBITMAP TBBUTTONINFOA* {.pure.} = object cbSize*: UINT @@ -405,6 +457,7 @@ lParam*: DWORD_PTR pszText*: LPSTR cchText*: int32 + LPTBBUTTONINFOA* = ptr TBBUTTONINFOA TBBUTTONINFOW* {.pure.} = object cbSize*: UINT @@ -417,6 +470,7 @@ lParam*: DWORD_PTR pszText*: LPWSTR cchText*: int32 + LPTBBUTTONINFOW* = ptr TBBUTTONINFOW TBMETRICS* {.pure.} = object cbSize*: UINT @@ -427,12 +481,14 @@ cyBarPad*: int32 cxButtonSpacing*: int32 cyButtonSpacing*: int32 + LPTBMETRICS* = ptr TBMETRICS NMTBHOTITEM* {.pure.} = object hdr*: NMHDR idOld*: int32 idNew*: int32 dwFlags*: DWORD + LPNMTBHOTITEM* = ptr NMTBHOTITEM NMTBSAVE* {.pure.} = object hdr*: NMHDR @@ -442,6 +498,7 @@ iItem*: int32 cButtons*: int32 tbButton*: TBBUTTON + LPNMTBSAVE* = ptr NMTBSAVE NMTBRESTORE* {.pure.} = object hdr*: NMHDR @@ -452,6 +509,7 @@ cButtons*: int32 cbBytesPerRecord*: int32 tbButton*: TBBUTTON + LPNMTBRESTORE* = ptr NMTBRESTORE NMTBGETINFOTIPA* {.pure.} = object hdr*: NMHDR @@ -459,6 +517,7 @@ cchTextMax*: int32 iItem*: int32 lParam*: LPARAM + LPNMTBGETINFOTIPA* = ptr NMTBGETINFOTIPA NMTBGETINFOTIPW* {.pure.} = object hdr*: NMHDR @@ -466,6 +525,7 @@ cchTextMax*: int32 iItem*: int32 lParam*: LPARAM + LPNMTBGETINFOTIPW* = ptr NMTBGETINFOTIPW NMTBDISPINFOA* {.pure.} = object hdr*: NMHDR @@ -475,6 +535,7 @@ iImage*: int32 pszText*: LPSTR cchText*: int32 + LPNMTBDISPINFOA* = ptr NMTBDISPINFOA NMTBDISPINFOW* {.pure.} = object hdr*: NMHDR @@ -484,6 +545,7 @@ iImage*: int32 pszText*: LPWSTR cchText*: int32 + LPNMTBDISPINFOW* = ptr NMTBDISPINFOW NMTOOLBARA* {.pure.} = object hdr*: NMHDR @@ -492,6 +554,7 @@ cchText*: int32 pszText*: LPSTR rcButton*: RECT + TBNOTIFYA* = NMTOOLBARA NMTOOLBARW* {.pure.} = object hdr*: NMHDR @@ -500,31 +563,29 @@ cchText*: int32 pszText*: LPWSTR rcButton*: RECT + TBNOTIFYW* = NMTOOLBARW LPNMTOOLBARA* = ptr NMTOOLBARA LPTBNOTIFYA* = LPNMTOOLBARA LPNMTOOLBARW* = ptr NMTOOLBARW LPTBNOTIFYW* = LPNMTOOLBARW + when winimUnicode: - type - NMTOOLBAR* = NMTOOLBARW + type NMTOOLBAR* = NMTOOLBARW when winimAnsi: - type - NMTOOLBAR* = NMTOOLBARA -type - TBNOTIFY* = NMTOOLBAR + type NMTOOLBAR* = NMTOOLBARA +type TBNOTIFY* = NMTOOLBAR when winimUnicode: - type - LPNMTOOLBAR* = LPNMTOOLBARW + type LPNMTOOLBAR* = LPNMTOOLBARW when winimAnsi: - type - LPNMTOOLBAR* = LPNMTOOLBARA + type LPNMTOOLBAR* = LPNMTOOLBARA type LPTBNOTIFY* = LPNMTOOLBAR REBARINFO* {.pure.} = object cbSize*: UINT fMask*: UINT himl*: HIMAGELIST + LPREBARINFO* = ptr REBARINFO REBARBANDINFOA* {.pure.} = object cbSize*: UINT @@ -549,6 +610,7 @@ cxHeader*: UINT rcChevronLocation*: RECT uChevronState*: UINT + LPREBARBANDINFOA* = ptr REBARBANDINFOA LPCREBARBANDINFOA* = ptr REBARBANDINFOA REBARBANDINFOW* {.pure.} = object @@ -574,6 +636,7 @@ cxHeader*: UINT rcChevronLocation*: RECT uChevronState*: UINT + LPREBARBANDINFOW* = ptr REBARBANDINFOW LPCREBARBANDINFOW* = ptr REBARBANDINFOW NMREBARCHILDSIZE* {.pure.} = object @@ -582,6 +645,7 @@ wID*: UINT rcChild*: RECT rcBand*: RECT + LPNMREBARCHILDSIZE* = ptr NMREBARCHILDSIZE NMREBAR* {.pure.} = object hdr*: NMHDR @@ -590,12 +654,14 @@ fStyle*: UINT wID*: UINT lParam*: LPARAM + LPNMREBAR* = ptr NMREBAR NMRBAUTOSIZE* {.pure.} = object hdr*: NMHDR fChanged*: WINBOOL rcTarget*: RECT rcActual*: RECT + LPNMRBAUTOSIZE* = ptr NMRBAUTOSIZE NMREBARCHEVRON* {.pure.} = object hdr*: NMHDR @@ -604,10 +670,12 @@ lParam*: LPARAM rc*: RECT lParamNM*: LPARAM + LPNMREBARCHEVRON* = ptr NMREBARCHEVRON NMREBARSPLITTER* {.pure.} = object hdr*: NMHDR rcSizing*: RECT + LPNMREBARSPLITTER* = ptr NMREBARSPLITTER NMREBARAUTOBREAK* {.pure.} = object hdr*: NMHDR @@ -617,11 +685,13 @@ uMsg*: UINT fStyleCurrent*: UINT fAutoBreak*: WINBOOL + LPNMREBARAUTOBREAK* = ptr NMREBARAUTOBREAK RBHITTESTINFO* {.pure.} = object pt*: POINT flags*: UINT iBand*: int32 + LPRBHITTESTINFO* = ptr RBHITTESTINFO TTTOOLINFOA* {.pure.} = object cbSize*: UINT @@ -633,6 +703,7 @@ lpszText*: LPSTR lParam*: LPARAM lpReserved*: pointer + LPTTTOOLINFOA* = ptr TTTOOLINFOA LPTOOLINFOA* = LPTTTOOLINFOA TTTOOLINFOW* {.pure.} = object @@ -645,16 +716,16 @@ lpszText*: LPWSTR lParam*: LPARAM lpReserved*: pointer + LPTTTOOLINFOW* = ptr TTTOOLINFOW LPTOOLINFOW* = LPTTTOOLINFOW TOOLINFOA* = TTTOOLINFOA TOOLINFOW* = TTTOOLINFOW + when winimUnicode: - type - LPTTTOOLINFO* = LPTTTOOLINFOW + type LPTTTOOLINFO* = LPTTTOOLINFOW when winimAnsi: - type - LPTTTOOLINFO* = LPTTTOOLINFOA + type LPTTTOOLINFO* = LPTTTOOLINFOA type LPTOOLINFO* = LPTTTOOLINFO PTOOLINFOA* = ptr TTTOOLINFOA @@ -664,25 +735,27 @@ uTitleBitmap*: UINT cch*: UINT pszTitle*: ptr WCHAR + PTTGETTITLE* = ptr TTGETTITLE TTHITTESTINFOW* {.pure.} = object hwnd*: HWND pt*: POINT ti*: TTTOOLINFOW + LPTTHITTESTINFOW* = ptr TTHITTESTINFOW LPHITTESTINFOW* = LPTTHITTESTINFOW TTHITTESTINFOA* {.pure.} = object hwnd*: HWND pt*: POINT ti*: TTTOOLINFOA + LPTTHITTESTINFOA* = ptr TTHITTESTINFOA LPHITTESTINFOA* = LPTTHITTESTINFOA + when winimUnicode: - type - LPTTHITTESTINFO* = LPTTHITTESTINFOW + type LPTTHITTESTINFO* = LPTTHITTESTINFOW when winimAnsi: - type - LPTTHITTESTINFO* = LPTTHITTESTINFOA + type LPTTHITTESTINFO* = LPTTHITTESTINFOA type LPHITTESTINFO* = LPTTHITTESTINFO NMTTDISPINFOW* {.pure.} = object @@ -692,6 +765,7 @@ hinst*: HINSTANCE uFlags*: UINT lParam*: LPARAM + TOOLTIPTEXTW* = NMTTDISPINFOW NMTTDISPINFOA* {.pure.} = object hdr*: NMHDR @@ -700,45 +774,47 @@ hinst*: HINSTANCE uFlags*: UINT lParam*: LPARAM + TOOLTIPTEXTA* = NMTTDISPINFOA LPNMTTDISPINFOA* = ptr NMTTDISPINFOA LPTOOLTIPTEXTA* = LPNMTTDISPINFOA LPNMTTDISPINFOW* = ptr NMTTDISPINFOW LPTOOLTIPTEXTW* = LPNMTTDISPINFOW + when winimUnicode: - type - NMTTDISPINFO* = NMTTDISPINFOW + type NMTTDISPINFO* = NMTTDISPINFOW when winimAnsi: - type - NMTTDISPINFO* = NMTTDISPINFOA -type - TOOLTIPTEXT* = NMTTDISPINFO + type NMTTDISPINFO* = NMTTDISPINFOA +type TOOLTIPTEXT* = NMTTDISPINFO when winimUnicode: - type - LPNMTTDISPINFO* = LPNMTTDISPINFOW + type LPNMTTDISPINFO* = LPNMTTDISPINFOW when winimAnsi: - type - LPNMTTDISPINFO* = LPNMTTDISPINFOA + type LPNMTTDISPINFO* = LPNMTTDISPINFOA type LPTOOLTIPTEXT* = LPNMTTDISPINFO DRAGLISTINFO* {.pure.} = object uNotification*: UINT hWnd*: HWND ptCursor*: POINT + LPDRAGLISTINFO* = ptr DRAGLISTINFO UDACCEL* {.pure.} = object nSec*: UINT nInc*: UINT + LPUDACCEL* = ptr UDACCEL NMUPDOWN* {.pure.} = object hdr*: NMHDR iPos*: int32 iDelta*: int32 + LPNMUPDOWN* = ptr NMUPDOWN PBRANGE* {.pure.} = object iLow*: int32 iHigh*: int32 + PPBRANGE* = ptr PBRANGE + const MAX_LINKID_TEXT* = 48 L_MAX_URL_LENGTH* = 2084 @@ -750,14 +826,17 @@ stateMask*: UINT szID*: array[MAX_LINKID_TEXT, WCHAR] szUrl*: array[L_MAX_URL_LENGTH, WCHAR] + PLITEM* = ptr LITEM LHITTESTINFO* {.pure.} = object pt*: POINT item*: LITEM + PLHITTESTINFO* = ptr LHITTESTINFO NMLINK* {.pure.} = object hdr*: NMHDR item*: LITEM + PNMLINK* = ptr NMLINK LVITEMA* {.pure.} = object mask*: UINT @@ -775,6 +854,7 @@ puColumns*: PUINT piColFmt*: ptr int32 iGroup*: int32 + LPLVITEMA* = ptr LVITEMA LVITEMW* {.pure.} = object mask*: UINT @@ -792,6 +872,7 @@ puColumns*: PUINT piColFmt*: ptr int32 iGroup*: int32 + LPLVITEMW* = ptr LVITEMW LVFINDINFOA* {.pure.} = object flags*: UINT @@ -799,6 +880,7 @@ lParam*: LPARAM pt*: POINT vkDirection*: UINT + LPFINDINFOA* = ptr LVFINDINFOA LVFINDINFOW* {.pure.} = object flags*: UINT @@ -806,6 +888,7 @@ lParam*: LPARAM pt*: POINT vkDirection*: UINT + LPFINDINFOW* = ptr LVFINDINFOW LVHITTESTINFO* {.pure.} = object pt*: POINT @@ -813,6 +896,7 @@ iItem*: int32 iSubItem*: int32 iGroup*: int32 + LPLVHITTESTINFO* = ptr LVHITTESTINFO LVCOLUMNA* {.pure.} = object mask*: UINT @@ -826,6 +910,7 @@ cxMin*: int32 cxDefault*: int32 cxIdeal*: int32 + LPLVCOLUMNA* = ptr LVCOLUMNA LVCOLUMNW* {.pure.} = object mask*: UINT @@ -839,6 +924,7 @@ cxMin*: int32 cxDefault*: int32 cxIdeal*: int32 + LPLVCOLUMNW* = ptr LVCOLUMNW LVBKIMAGEA* {.pure.} = object ulFlags*: ULONG @@ -847,6 +933,7 @@ cchImageMax*: UINT xOffsetPercent*: int32 yOffsetPercent*: int32 + LPLVBKIMAGEA* = ptr LVBKIMAGEA LVBKIMAGEW* {.pure.} = object ulFlags*: ULONG @@ -855,6 +942,7 @@ cchImageMax*: UINT xOffsetPercent*: int32 yOffsetPercent*: int32 + LPLVBKIMAGEW* = ptr LVBKIMAGEW LVGROUP* {.pure.} = object cbSize*: UINT @@ -881,6 +969,7 @@ cItems*: UINT pszSubsetTitle*: LPWSTR cchSubsetTitle*: UINT + PLVGROUP* = ptr LVGROUP LVGROUPMETRICS* {.pure.} = object cbSize*: UINT @@ -895,12 +984,14 @@ crBottom*: COLORREF crHeader*: COLORREF crFooter*: COLORREF + PLVGROUPMETRICS* = ptr LVGROUPMETRICS - PFNLVGROUPCOMPARE* = proc (P1: int32, P2: int32, P3: pointer): int32 {.stdcall.} + PFNLVGROUPCOMPARE* = proc(P1: int32, P2: int32, P3: pointer): int32 {.stdcall.} LVINSERTGROUPSORTED* {.pure.} = object pfnGroupCompare*: PFNLVGROUPCOMPARE pvData*: pointer lvGroup*: LVGROUP + PLVINSERTGROUPSORTED* = ptr LVINSERTGROUPSORTED LVTILEVIEWINFO* {.pure.} = object cbSize*: UINT @@ -909,6 +1000,7 @@ sizeTile*: SIZE cLines*: int32 rcLabelMargin*: RECT + PLVTILEVIEWINFO* = ptr LVTILEVIEWINFO LVTILEINFO* {.pure.} = object cbSize*: UINT @@ -916,12 +1008,14 @@ cColumns*: UINT puColumns*: PUINT piColFmt*: ptr int32 + PLVTILEINFO* = ptr LVTILEINFO LVINSERTMARK* {.pure.} = object cbSize*: UINT dwFlags*: DWORD iItem*: int32 dwReserved*: DWORD + LPLVINSERTMARK* = ptr LVINSERTMARK LVSETINFOTIP* {.pure.} = object cbSize*: UINT @@ -929,12 +1023,14 @@ pszText*: LPWSTR iItem*: int32 iSubItem*: int32 + PLVSETINFOTIP* = ptr LVSETINFOTIP LVFOOTERINFO* {.pure.} = object mask*: UINT pszText*: LPWSTR cchTextMax*: int32 cItems*: UINT + LPLVFOOTERINFO* = ptr LVFOOTERINFO LVFOOTERITEM* {.pure.} = object mask*: UINT @@ -943,10 +1039,12 @@ cchTextMax*: int32 state*: UINT stateMask*: UINT + LPLVFOOTERITEM* = ptr LVFOOTERITEM LVITEMINDEX* {.pure.} = object iItem*: int32 iGroup*: int32 + PLVITEMINDEX* = ptr LVITEMINDEX NMLISTVIEW* {.pure.} = object hdr*: NMHDR @@ -957,6 +1055,7 @@ uChanged*: UINT ptAction*: POINT lParam*: LPARAM + LPNMLISTVIEW* = ptr NMLISTVIEW NMITEMACTIVATE* {.pure.} = object hdr*: NMHDR @@ -968,6 +1067,7 @@ ptAction*: POINT lParam*: LPARAM uKeyFlags*: UINT + LPNMITEMACTIVATE* = ptr NMITEMACTIVATE NMLVCUSTOMDRAW* {.pure.} = object nmcd*: TNMCUSTOMDRAW @@ -982,11 +1082,13 @@ iStateId*: int32 rcText*: RECT uAlign*: UINT + LPNMLVCUSTOMDRAW* = ptr NMLVCUSTOMDRAW NMLVCACHEHINT* {.pure.} = object hdr*: NMHDR iFrom*: int32 iTo*: int32 + LPNMLVCACHEHINT* = ptr NMLVCACHEHINT LPNM_CACHEHINT* = LPNMLVCACHEHINT PNM_CACHEHINT* = LPNMLVCACHEHINT @@ -995,11 +1097,13 @@ hdr*: NMHDR iStart*: int32 lvfi*: LVFINDINFOA + LPNMLVFINDITEMA* = ptr NMLVFINDITEMA NMLVFINDITEMW* {.pure.} = object hdr*: NMHDR iStart*: int32 lvfi*: LVFINDINFOW + LPNMLVFINDITEMW* = ptr NMLVFINDITEMW PNM_FINDITEMA* = LPNMLVFINDITEMA LPNM_FINDITEMA* = LPNMLVFINDITEMA @@ -1013,6 +1117,7 @@ iTo*: int32 uNewState*: UINT uOldState*: UINT + LPNMLVODSTATECHANGE* = ptr NMLVODSTATECHANGE PNM_ODSTATECHANGE* = LPNMLVODSTATECHANGE LPNM_ODSTATECHANGE* = LPNMLVODSTATECHANGE @@ -1020,17 +1125,18 @@ NMLVDISPINFOA* {.pure.} = object hdr*: NMHDR item*: LVITEMA + LV_DISPINFOA* = NMLVDISPINFOA NMLVDISPINFOW* {.pure.} = object hdr*: NMHDR item*: LVITEMW + LV_DISPINFOW* = NMLVDISPINFOW + when winimUnicode: - type - NMLVDISPINFO* = NMLVDISPINFOW + type NMLVDISPINFO* = NMLVDISPINFOW when winimAnsi: - type - NMLVDISPINFO* = NMLVDISPINFOA + type NMLVDISPINFO* = NMLVDISPINFOA type LV_DISPINFO* = NMLVDISPINFO LPNMLVDISPINFOA* = ptr NMLVDISPINFOA @@ -1039,6 +1145,7 @@ hdr*: NMHDR wVKey*: WORD flags*: UINT + LV_KEYDOWN* = NMLVKEYDOWN LPNMLVKEYDOWN* = ptr NMLVKEYDOWN NMLVLINK* {.pure.} = object @@ -1046,6 +1153,7 @@ link*: LITEM iItem*: int32 iSubItem*: int32 + PNMLVLINK* = ptr NMLVLINK NMLVGETINFOTIPA* {.pure.} = object hdr*: NMHDR @@ -1055,6 +1163,7 @@ iItem*: int32 iSubItem*: int32 lParam*: LPARAM + LPNMLVGETINFOTIPA* = ptr NMLVGETINFOTIPA NMLVGETINFOTIPW* {.pure.} = object hdr*: NMHDR @@ -1064,17 +1173,20 @@ iItem*: int32 iSubItem*: int32 lParam*: LPARAM + LPNMLVGETINFOTIPW* = ptr NMLVGETINFOTIPW NMLVSCROLL* {.pure.} = object hdr*: NMHDR dx*: int32 dy*: int32 + LPNMLVSCROLL* = ptr NMLVSCROLL TNMTVSTATEIMAGECHANGING* {.pure.} = object hdr*: NMHDR hti*: HTREEITEM iOldStateImageIndex*: int32 iNewStateImageIndex*: int32 + LPNMTVSTATEIMAGECHANGING* = ptr TNMTVSTATEIMAGECHANGING TVITEMA* {.pure.} = object mask*: UINT @@ -1087,6 +1199,7 @@ iSelectedImage*: int32 cChildren*: int32 lParam*: LPARAM + LPTVITEMA* = ptr TVITEMA TVITEMW* {.pure.} = object mask*: UINT @@ -1099,6 +1212,7 @@ iSelectedImage*: int32 cChildren*: int32 lParam*: LPARAM + LPTVITEMW* = ptr TVITEMW TVITEMEXA* {.pure.} = object mask*: UINT @@ -1116,6 +1230,7 @@ hwnd*: HWND iExpandedImage*: int32 iReserved*: int32 + LPTVITEMEXA* = ptr TVITEMEXA TVITEMEXW* {.pure.} = object mask*: UINT @@ -1133,33 +1248,41 @@ hwnd*: HWND iExpandedImage*: int32 iReserved*: int32 + LPTVITEMEXW* = ptr TVITEMEXW TVINSERTSTRUCTA_UNION1* {.pure, union.} = object itemex*: TVITEMEXA item*: TV_ITEMA + TVINSERTSTRUCTA* {.pure.} = object hParent*: HTREEITEM hInsertAfter*: HTREEITEM union1*: TVINSERTSTRUCTA_UNION1 + LPTVINSERTSTRUCTA* = ptr TVINSERTSTRUCTA TVINSERTSTRUCTW_UNION1* {.pure, union.} = object itemex*: TVITEMEXW item*: TV_ITEMW + TVINSERTSTRUCTW* {.pure.} = object hParent*: HTREEITEM hInsertAfter*: HTREEITEM union1*: TVINSERTSTRUCTW_UNION1 + LPTVINSERTSTRUCTW* = ptr TVINSERTSTRUCTW TVHITTESTINFO* {.pure.} = object pt*: POINT flags*: UINT hItem*: HTREEITEM + LPTVHITTESTINFO* = ptr TVHITTESTINFO - PFNTVCOMPARE* = proc (lParam1: LPARAM, lParam2: LPARAM, lParamSort: LPARAM): int32 {.stdcall.} + PFNTVCOMPARE* = + proc(lParam1: LPARAM, lParam2: LPARAM, lParamSort: LPARAM): int32 {.stdcall.} TVSORTCB* {.pure.} = object hParent*: HTREEITEM lpfnCompare*: PFNTVCOMPARE lParam*: LPARAM + LPTVSORTCB* = ptr TVSORTCB NMTREEVIEWA* {.pure.} = object hdr*: NMHDR @@ -1167,6 +1290,7 @@ itemOld*: TVITEMA itemNew*: TVITEMA ptDrag*: POINT + LPNMTREEVIEWA* = ptr NMTREEVIEWA NMTREEVIEWW* {.pure.} = object hdr*: NMHDR @@ -1174,21 +1298,23 @@ itemOld*: TVITEMW itemNew*: TVITEMW ptDrag*: POINT + LPNMTREEVIEWW* = ptr NMTREEVIEWW NMTVDISPINFOA* {.pure.} = object hdr*: NMHDR item*: TVITEMA + TV_DISPINFOA* = NMTVDISPINFOA NMTVDISPINFOW* {.pure.} = object hdr*: NMHDR item*: TVITEMW + TV_DISPINFOW* = NMTVDISPINFOW + when winimUnicode: - type - NMTVDISPINFO* = NMTVDISPINFOW + type NMTVDISPINFO* = NMTVDISPINFOW when winimAnsi: - type - NMTVDISPINFO* = NMTVDISPINFOA + type NMTVDISPINFO* = NMTVDISPINFOA type TV_DISPINFO* = NMTVDISPINFO LPNMTVDISPINFOA* = ptr NMTVDISPINFOA @@ -1196,25 +1322,27 @@ NMTVDISPINFOEXA* {.pure.} = object hdr*: NMHDR item*: TVITEMEXA + LPNMTVDISPINFOEXA* = ptr NMTVDISPINFOEXA NMTVDISPINFOEXW* {.pure.} = object hdr*: NMHDR item*: TVITEMEXW + LPNMTVDISPINFOEXW* = ptr NMTVDISPINFOEXW TV_DISPINFOEXA* = NMTVDISPINFOEXA TV_DISPINFOEXW* = NMTVDISPINFOEXW + when winimUnicode: - type - NMTVDISPINFOEX* = NMTVDISPINFOEXW + type NMTVDISPINFOEX* = NMTVDISPINFOEXW when winimAnsi: - type - NMTVDISPINFOEX* = NMTVDISPINFOEXA + type NMTVDISPINFOEX* = NMTVDISPINFOEXA type TV_DISPINFOEX* = NMTVDISPINFOEX NMTVKEYDOWN* {.pure, packed.} = object hdr*: NMHDR wVKey*: WORD flags*: UINT + TV_KEYDOWN* = NMTVKEYDOWN LPNMTVKEYDOWN* = ptr NMTVKEYDOWN NMTVCUSTOMDRAW* {.pure.} = object @@ -1222,6 +1350,7 @@ clrText*: COLORREF clrTextBk*: COLORREF iLevel*: int32 + LPNMTVCUSTOMDRAW* = ptr NMTVCUSTOMDRAW NMTVGETINFOTIPA* {.pure.} = object hdr*: NMHDR @@ -1229,6 +1358,7 @@ cchTextMax*: int32 hItem*: HTREEITEM lParam*: LPARAM + LPNMTVGETINFOTIPA* = ptr NMTVGETINFOTIPA NMTVGETINFOTIPW* {.pure.} = object hdr*: NMHDR @@ -1236,6 +1366,7 @@ cchTextMax*: int32 hItem*: HTREEITEM lParam*: LPARAM + LPNMTVGETINFOTIPW* = ptr NMTVGETINFOTIPW COMBOBOXEXITEMA* {.pure.} = object mask*: UINT @@ -1247,6 +1378,7 @@ iOverlay*: int32 iIndent*: int32 lParam*: LPARAM + PCOMBOBOXEXITEMA* = ptr COMBOBOXEXITEMA PCCOMBOEXITEMA* = ptr COMBOBOXEXITEMA COMBOBOXEXITEMW* {.pure.} = object @@ -1259,29 +1391,34 @@ iOverlay*: int32 iIndent*: int32 lParam*: LPARAM + PCOMBOBOXEXITEMW* = ptr COMBOBOXEXITEMW PCCOMBOEXITEMW* = ptr COMBOBOXEXITEMW NMCOMBOBOXEXA* {.pure.} = object hdr*: NMHDR ceItem*: COMBOBOXEXITEMA + PNMCOMBOBOXEXA* = ptr NMCOMBOBOXEXA NMCOMBOBOXEXW* {.pure.} = object hdr*: NMHDR ceItem*: COMBOBOXEXITEMW + PNMCOMBOBOXEXW* = ptr NMCOMBOBOXEXW -const - CBEMAXSTRLEN* = 260 + +const CBEMAXSTRLEN* = 260 type NMCBEDRAGBEGINW* {.pure.} = object hdr*: NMHDR iItemid*: int32 szText*: array[CBEMAXSTRLEN, WCHAR] + LPNMCBEDRAGBEGINW* = ptr NMCBEDRAGBEGINW PNMCBEDRAGBEGINW* = ptr NMCBEDRAGBEGINW NMCBEDRAGBEGINA* {.pure.} = object hdr*: NMHDR iItemid*: int32 szText*: array[CBEMAXSTRLEN, char] + LPNMCBEDRAGBEGINA* = ptr NMCBEDRAGBEGINA PNMCBEDRAGBEGINA* = ptr NMCBEDRAGBEGINA NMCBEENDEDITW* {.pure.} = object @@ -1290,6 +1427,7 @@ iNewSelection*: int32 szText*: array[CBEMAXSTRLEN, WCHAR] iWhy*: int32 + LPNMCBEENDEDITW* = ptr NMCBEENDEDITW PNMCBEENDEDITW* = ptr NMCBEENDEDITW NMCBEENDEDITA* {.pure.} = object @@ -1298,6 +1436,7 @@ iNewSelection*: int32 szText*: array[CBEMAXSTRLEN, char] iWhy*: int32 + LPNMCBEENDEDITA* = ptr NMCBEENDEDITA PNMCBEENDEDITA* = ptr NMCBEENDEDITA TCITEMHEADERA* {.pure.} = object @@ -1307,6 +1446,7 @@ pszText*: LPSTR cchTextMax*: int32 iImage*: int32 + LPTCITEMHEADERA* = ptr TCITEMHEADERA TCITEMHEADERW* {.pure.} = object mask*: UINT @@ -1315,6 +1455,7 @@ pszText*: LPWSTR cchTextMax*: int32 iImage*: int32 + LPTCITEMHEADERW* = ptr TCITEMHEADERW TCITEMA* {.pure.} = object mask*: UINT @@ -1324,6 +1465,7 @@ cchTextMax*: int32 iImage*: int32 lParam*: LPARAM + LPTCITEMA* = ptr TCITEMA TCITEMW* {.pure.} = object mask*: UINT @@ -1333,15 +1475,18 @@ cchTextMax*: int32 iImage*: int32 lParam*: LPARAM + LPTCITEMW* = ptr TCITEMW TCHITTESTINFO* {.pure.} = object pt*: POINT flags*: UINT + LPTCHITTESTINFO* = ptr TCHITTESTINFO NMTCKEYDOWN* {.pure, packed.} = object hdr*: NMHDR wVKey*: WORD flags*: UINT + TC_KEYDOWN* = NMTCKEYDOWN MCHITTESTINFO* {.pure.} = object cbSize*: UINT @@ -1352,6 +1497,7 @@ iOffset*: int32 iRow*: int32 iCol*: int32 + PMCHITTESTINFO* = ptr MCHITTESTINFO MCGRIDINFO* {.pure.} = object cbSize*: UINT @@ -1366,17 +1512,20 @@ rc*: RECT pszName*: PWSTR cchName*: int + PMCGRIDINFO* = ptr MCGRIDINFO NMSELCHANGE* {.pure.} = object nmhdr*: NMHDR stSelStart*: SYSTEMTIME stSelEnd*: SYSTEMTIME + LPNMSELCHANGE* = ptr NMSELCHANGE NMDAYSTATE* {.pure.} = object nmhdr*: NMHDR stStart*: SYSTEMTIME cDayState*: int32 prgDayState*: LPMONTHDAYSTATE + LPNMDAYSTATE* = ptr NMDAYSTATE NMSELECT* = NMSELCHANGE LPNMSELECT* = ptr NMSELCHANGE @@ -1384,6 +1533,7 @@ nmhdr*: NMHDR dwOldView*: DWORD dwNewView*: DWORD + LPNMVIEWCHANGE* = ptr NMVIEWCHANGE DATETIMEPICKERINFO* {.pure.} = object cbSize*: DWORD @@ -1394,35 +1544,41 @@ hwndEdit*: HWND hwndUD*: HWND hwndDropDown*: HWND + LPDATETIMEPICKERINFO* = ptr DATETIMEPICKERINFO NMDATETIMECHANGE* {.pure.} = object nmhdr*: NMHDR dwFlags*: DWORD st*: SYSTEMTIME + LPNMDATETIMECHANGE* = ptr NMDATETIMECHANGE NMDATETIMESTRINGA* {.pure.} = object nmhdr*: NMHDR pszUserString*: LPCSTR st*: SYSTEMTIME dwFlags*: DWORD + LPNMDATETIMESTRINGA* = ptr NMDATETIMESTRINGA NMDATETIMESTRINGW* {.pure.} = object nmhdr*: NMHDR pszUserString*: LPCWSTR st*: SYSTEMTIME dwFlags*: DWORD + LPNMDATETIMESTRINGW* = ptr NMDATETIMESTRINGW NMDATETIMEWMKEYDOWNA* {.pure.} = object nmhdr*: NMHDR nVirtKey*: int32 pszFormat*: LPCSTR st*: SYSTEMTIME + LPNMDATETIMEWMKEYDOWNA* = ptr NMDATETIMEWMKEYDOWNA NMDATETIMEWMKEYDOWNW* {.pure.} = object nmhdr*: NMHDR nVirtKey*: int32 pszFormat*: LPCWSTR st*: SYSTEMTIME + LPNMDATETIMEWMKEYDOWNW* = ptr NMDATETIMEWMKEYDOWNW NMDATETIMEFORMATA* {.pure.} = object nmhdr*: NMHDR @@ -1430,6 +1586,7 @@ st*: SYSTEMTIME pszDisplay*: LPCSTR szDisplay*: array[64, CHAR] + LPNMDATETIMEFORMATA* = ptr NMDATETIMEFORMATA NMDATETIMEFORMATW* {.pure.} = object nmhdr*: NMHDR @@ -1437,21 +1594,25 @@ st*: SYSTEMTIME pszDisplay*: LPCWSTR szDisplay*: array[64, WCHAR] + LPNMDATETIMEFORMATW* = ptr NMDATETIMEFORMATW NMDATETIMEFORMATQUERYA* {.pure.} = object nmhdr*: NMHDR pszFormat*: LPCSTR szMax*: SIZE + LPNMDATETIMEFORMATQUERYA* = ptr NMDATETIMEFORMATQUERYA NMDATETIMEFORMATQUERYW* {.pure.} = object nmhdr*: NMHDR pszFormat*: LPCWSTR szMax*: SIZE + LPNMDATETIMEFORMATQUERYW* = ptr NMDATETIMEFORMATQUERYW NMIPADDRESS* {.pure.} = object hdr*: NMHDR iField*: int32 iValue*: int32 + LPNMIPADDRESS* = ptr NMIPADDRESS NMPGSCROLL* {.pure, packed.} = object hdr*: NMHDR @@ -1461,64 +1622,70 @@ iXpos*: int32 iYpos*: int32 iScroll*: int32 + LPNMPGSCROLL* = ptr NMPGSCROLL NMPGCALCSIZE* {.pure.} = object hdr*: NMHDR dwFlag*: DWORD iWidth*: int32 iHeight*: int32 + LPNMPGCALCSIZE* = ptr NMPGCALCSIZE NMPGHOTITEM* {.pure.} = object hdr*: NMHDR idOld*: int32 idNew*: int32 dwFlags*: DWORD + LPNMPGHOTITEM* = ptr NMPGHOTITEM BUTTON_IMAGELIST* {.pure.} = object himl*: HIMAGELIST margin*: RECT uAlign*: UINT + PBUTTON_IMAGELIST* = ptr BUTTON_IMAGELIST NMBCHOTITEM* {.pure.} = object hdr*: NMHDR dwFlags*: DWORD + LPNMBCHOTITEM* = ptr NMBCHOTITEM BUTTON_SPLITINFO* {.pure.} = object mask*: UINT himlGlyph*: HIMAGELIST uSplitStyle*: UINT size*: SIZE + PBUTTON_SPLITINFO* = ptr BUTTON_SPLITINFO NMBCDROPDOWN* {.pure.} = object hdr*: NMHDR rcButton*: RECT + LPNMBCDROPDOWN* = ptr NMBCDROPDOWN EDITBALLOONTIP* {.pure.} = object cbStruct*: DWORD pszTitle*: LPCWSTR pszText*: LPCWSTR ttiIcon*: INT + PEDITBALLOONTIP* = ptr EDITBALLOONTIP - PFNDAENUMCALLBACK* = proc (p: pointer, pData: pointer): int32 {.stdcall.} + PFNDAENUMCALLBACK* = proc(p: pointer, pData: pointer): int32 {.stdcall.} PFNDSAENUMCALLBACK* = PFNDAENUMCALLBACK - PFNDAENUMCALLBACKCONST* = proc (p: pointer, pData: pointer): int32 {.stdcall.} + PFNDAENUMCALLBACKCONST* = proc(p: pointer, pData: pointer): int32 {.stdcall.} PFNDSAENUMCALLBACKCONST* = PFNDAENUMCALLBACKCONST - PFNDACOMPARE* = proc (p1: pointer, p2: pointer, lParam: LPARAM): int32 {.stdcall.} + PFNDACOMPARE* = proc(p1: pointer, p2: pointer, lParam: LPARAM): int32 {.stdcall.} PFNDSACOMPARE* = PFNDACOMPARE - PFNDACOMPARECONST* = proc (p1: pointer, p2: pointer, lParam: LPARAM): int32 {.stdcall.} + PFNDACOMPARECONST* = proc(p1: pointer, p2: pointer, lParam: LPARAM): int32 {.stdcall.} PFNDSACOMPARECONST* = PFNDACOMPARECONST PFNDPAENUMCALLBACK* = PFNDAENUMCALLBACK PFNDPAENUMCALLBACKCONST* = PFNDAENUMCALLBACKCONST PFNDPACOMPARE* = PFNDACOMPARE PFNDPACOMPARECONST* = PFNDACOMPARECONST + when winimUnicode: - type - TTTOOLINFO* = TTTOOLINFOW + type TTTOOLINFO* = TTTOOLINFOW when winimAnsi: - type - TTTOOLINFO* = TTTOOLINFOA -type - TOOLINFO* = TTTOOLINFO + type TTTOOLINFO* = TTTOOLINFOA +type TOOLINFO* = TTTOOLINFO const MAXPROPPAGES* = 100 PSP_DEFAULT* = 0x00000000 @@ -1565,42 +1732,42 @@ PSCB_INITIALIZED* = 1 PSCB_PRECREATE* = 2 PSCB_BUTTONPRESSED* = 3 - PSN_FIRST* = 0-200 - PSN_LAST* = 0-299 - PSN_SETACTIVE* = PSN_FIRST-0 - PSN_KILLACTIVE* = PSN_FIRST-1 - PSN_APPLY* = PSN_FIRST-2 - PSN_RESET* = PSN_FIRST-3 - PSN_HELP* = PSN_FIRST-5 - PSN_WIZBACK* = PSN_FIRST-6 - PSN_WIZNEXT* = PSN_FIRST-7 - PSN_WIZFINISH* = PSN_FIRST-8 - PSN_QUERYCANCEL* = PSN_FIRST-9 - PSN_GETOBJECT* = PSN_FIRST-10 - PSN_TRANSLATEACCELERATOR* = PSN_FIRST-12 - PSN_QUERYINITIALFOCUS* = PSN_FIRST-13 + PSN_FIRST* = 0 - 200 + PSN_LAST* = 0 - 299 + PSN_SETACTIVE* = PSN_FIRST - 0 + PSN_KILLACTIVE* = PSN_FIRST - 1 + PSN_APPLY* = PSN_FIRST - 2 + PSN_RESET* = PSN_FIRST - 3 + PSN_HELP* = PSN_FIRST - 5 + PSN_WIZBACK* = PSN_FIRST - 6 + PSN_WIZNEXT* = PSN_FIRST - 7 + PSN_WIZFINISH* = PSN_FIRST - 8 + PSN_QUERYCANCEL* = PSN_FIRST - 9 + PSN_GETOBJECT* = PSN_FIRST - 10 + PSN_TRANSLATEACCELERATOR* = PSN_FIRST - 12 + PSN_QUERYINITIALFOCUS* = PSN_FIRST - 13 PSNRET_NOERROR* = 0 PSNRET_INVALID* = 1 PSNRET_INVALID_NOCHANGEPAGE* = 2 PSNRET_MESSAGEHANDLED* = 3 - PSM_SETCURSEL* = WM_USER+101 - PSM_REMOVEPAGE* = WM_USER+102 - PSM_ADDPAGE* = WM_USER+103 - PSM_CHANGED* = WM_USER+104 - PSM_RESTARTWINDOWS* = WM_USER+105 - PSM_REBOOTSYSTEM* = WM_USER+106 - PSM_CANCELTOCLOSE* = WM_USER+107 - PSM_QUERYSIBLINGS* = WM_USER+108 - PSM_UNCHANGED* = WM_USER+109 - PSM_APPLY* = WM_USER+110 - PSM_SETTITLEA* = WM_USER+111 - PSM_SETTITLEW* = WM_USER+120 - PSM_SETWIZBUTTONS* = WM_USER+112 + PSM_SETCURSEL* = WM_USER + 101 + PSM_REMOVEPAGE* = WM_USER + 102 + PSM_ADDPAGE* = WM_USER + 103 + PSM_CHANGED* = WM_USER + 104 + PSM_RESTARTWINDOWS* = WM_USER + 105 + PSM_REBOOTSYSTEM* = WM_USER + 106 + PSM_CANCELTOCLOSE* = WM_USER + 107 + PSM_QUERYSIBLINGS* = WM_USER + 108 + PSM_UNCHANGED* = WM_USER + 109 + PSM_APPLY* = WM_USER + 110 + PSM_SETTITLEA* = WM_USER + 111 + PSM_SETTITLEW* = WM_USER + 120 + PSM_SETWIZBUTTONS* = WM_USER + 112 PSWIZB_BACK* = 0x00000001 PSWIZB_NEXT* = 0x00000002 PSWIZB_FINISH* = 0x00000004 PSWIZB_DISABLEDFINISH* = 0x00000008 - PSM_PRESSBUTTON* = WM_USER+113 + PSM_PRESSBUTTON* = WM_USER + 113 PSBTN_BACK* = 0 PSBTN_NEXT* = 1 PSBTN_FINISH* = 2 @@ -1609,25 +1776,25 @@ PSBTN_CANCEL* = 5 PSBTN_HELP* = 6 PSBTN_MAX* = 6 - PSM_SETCURSELID* = WM_USER+114 - PSM_SETFINISHTEXTA* = WM_USER+115 - PSM_SETFINISHTEXTW* = WM_USER+121 - PSM_GETTABCONTROL* = WM_USER+116 - PSM_ISDIALOGMESSAGE* = WM_USER+117 - PSM_GETCURRENTPAGEHWND* = WM_USER+118 - PSM_INSERTPAGE* = WM_USER+119 - PSM_SETHEADERTITLEA* = WM_USER+125 - PSM_SETHEADERTITLEW* = WM_USER+126 - PSM_SETHEADERSUBTITLEA* = WM_USER+127 - PSM_SETHEADERSUBTITLEW* = WM_USER+128 - PSM_HWNDTOINDEX* = WM_USER+129 - PSM_INDEXTOHWND* = WM_USER+130 - PSM_PAGETOINDEX* = WM_USER+131 - PSM_INDEXTOPAGE* = WM_USER+132 - PSM_IDTOINDEX* = WM_USER+133 - PSM_INDEXTOID* = WM_USER+134 - PSM_GETRESULT* = WM_USER+135 - PSM_RECALCPAGESIZES* = WM_USER+136 + PSM_SETCURSELID* = WM_USER + 114 + PSM_SETFINISHTEXTA* = WM_USER + 115 + PSM_SETFINISHTEXTW* = WM_USER + 121 + PSM_GETTABCONTROL* = WM_USER + 116 + PSM_ISDIALOGMESSAGE* = WM_USER + 117 + PSM_GETCURRENTPAGEHWND* = WM_USER + 118 + PSM_INSERTPAGE* = WM_USER + 119 + PSM_SETHEADERTITLEA* = WM_USER + 125 + PSM_SETHEADERTITLEW* = WM_USER + 126 + PSM_SETHEADERSUBTITLEA* = WM_USER + 127 + PSM_SETHEADERSUBTITLEW* = WM_USER + 128 + PSM_HWNDTOINDEX* = WM_USER + 129 + PSM_INDEXTOHWND* = WM_USER + 130 + PSM_PAGETOINDEX* = WM_USER + 131 + PSM_INDEXTOPAGE* = WM_USER + 132 + PSM_IDTOINDEX* = WM_USER + 133 + PSM_INDEXTOID* = WM_USER + 134 + PSM_GETRESULT* = WM_USER + 135 + PSM_RECALCPAGESIZES* = WM_USER + 136 ID_PSRESTARTWINDOWS* = 0x2 ID_PSREBOOTSYSTEM* = ID_PSRESTARTWINDOWS or 0x1 WIZ_CXDLG* = 276 @@ -1670,82 +1837,82 @@ BCM_FIRST* = 0x1600 CBM_FIRST* = 0x1700 CCM_FIRST* = 0x2000 - CCM_LAST* = CCM_FIRST+0x200 - CCM_SETBKCOLOR* = CCM_FIRST+1 - CCM_SETCOLORSCHEME* = CCM_FIRST+2 - CCM_GETCOLORSCHEME* = CCM_FIRST+3 - CCM_GETDROPTARGET* = CCM_FIRST+4 - CCM_SETUNICODEFORMAT* = CCM_FIRST+5 - CCM_GETUNICODEFORMAT* = CCM_FIRST+6 - CCM_SETVERSION* = CCM_FIRST+0x7 - CCM_GETVERSION* = CCM_FIRST+0x8 - CCM_SETNOTIFYWINDOW* = CCM_FIRST+0x9 - CCM_SETWINDOWTHEME* = CCM_FIRST+0xb - CCM_DPISCALE* = CCM_FIRST+0xc + CCM_LAST* = CCM_FIRST + 0x200 + CCM_SETBKCOLOR* = CCM_FIRST + 1 + CCM_SETCOLORSCHEME* = CCM_FIRST + 2 + CCM_GETCOLORSCHEME* = CCM_FIRST + 3 + CCM_GETDROPTARGET* = CCM_FIRST + 4 + CCM_SETUNICODEFORMAT* = CCM_FIRST + 5 + CCM_GETUNICODEFORMAT* = CCM_FIRST + 6 + CCM_SETVERSION* = CCM_FIRST + 0x7 + CCM_GETVERSION* = CCM_FIRST + 0x8 + CCM_SETNOTIFYWINDOW* = CCM_FIRST + 0x9 + CCM_SETWINDOWTHEME* = CCM_FIRST + 0xb + CCM_DPISCALE* = CCM_FIRST + 0xc COMCTL32_VERSION* = 6 INFOTIPSIZE* = 1024 - NM_FIRST* = 0-0 - NM_OUTOFMEMORY* = NM_FIRST-1 - NM_CLICK* = NM_FIRST-2 - NM_DBLCLK* = NM_FIRST-3 - NM_RETURN* = NM_FIRST-4 - NM_RCLICK* = NM_FIRST-5 - NM_RDBLCLK* = NM_FIRST-6 - NM_SETFOCUS* = NM_FIRST-7 - NM_KILLFOCUS* = NM_FIRST-8 - NM_CUSTOMDRAW* = NM_FIRST-12 - NM_HOVER* = NM_FIRST-13 - NM_NCHITTEST* = NM_FIRST-14 - NM_KEYDOWN* = NM_FIRST-15 - NM_RELEASEDCAPTURE* = NM_FIRST-16 - NM_SETCURSOR* = NM_FIRST-17 - NM_CHAR* = NM_FIRST-18 - NM_TOOLTIPSCREATED* = NM_FIRST-19 - NM_LDOWN* = NM_FIRST-20 - NM_RDOWN* = NM_FIRST-21 - NM_THEMECHANGED* = NM_FIRST-22 - NM_FONTCHANGED* = NM_FIRST-23 - NM_CUSTOMTEXT* = NM_FIRST-24 - NM_TVSTATEIMAGECHANGING* = NM_FIRST-24 - NM_LAST* = 0-99 - LVN_FIRST* = 0-100 - LVN_LAST* = 0-199 - HDN_FIRST* = 0-300 - HDN_LAST* = 0-399 - TVN_FIRST* = 0-400 - TVN_LAST* = 0-499 - TTN_FIRST* = 0-520 - TTN_LAST* = 0-549 - TCN_FIRST* = 0-550 - TCN_LAST* = 0-580 - CDN_FIRST* = 0-601 - CDN_LAST* = 0-699 - TBN_FIRST* = 0-700 - TBN_LAST* = 0-720 - UDN_FIRST* = 0-721 - UDN_LAST* = 0-729 - DTN_FIRST* = 0-740 - DTN_LAST* = 0-745 - MCN_FIRST* = 0-746 - MCN_LAST* = 0-752 - DTN_FIRST2* = 0-753 - DTN_LAST2* = 0-799 - CBEN_FIRST* = 0-800 - CBEN_LAST* = 0-830 - RBN_FIRST* = 0-831 - RBN_LAST* = 0-859 - IPN_FIRST* = 0-860 - IPN_LAST* = 0-879 - SBN_FIRST* = 0-880 - SBN_LAST* = 0-899 - PGN_FIRST* = 0-900 - PGN_LAST* = 0-950 - WMN_FIRST* = 0-1000 - WMN_LAST* = 0-1200 - BCN_FIRST* = 0-1250 - BCN_LAST* = 0-1350 - TRBN_FIRST* = 0-1501 - TRBN_LAST* = 0-1519 + NM_FIRST* = 0 - 0 + NM_OUTOFMEMORY* = NM_FIRST - 1 + NM_CLICK* = NM_FIRST - 2 + NM_DBLCLK* = NM_FIRST - 3 + NM_RETURN* = NM_FIRST - 4 + NM_RCLICK* = NM_FIRST - 5 + NM_RDBLCLK* = NM_FIRST - 6 + NM_SETFOCUS* = NM_FIRST - 7 + NM_KILLFOCUS* = NM_FIRST - 8 + NM_CUSTOMDRAW* = NM_FIRST - 12 + NM_HOVER* = NM_FIRST - 13 + NM_NCHITTEST* = NM_FIRST - 14 + NM_KEYDOWN* = NM_FIRST - 15 + NM_RELEASEDCAPTURE* = NM_FIRST - 16 + NM_SETCURSOR* = NM_FIRST - 17 + NM_CHAR* = NM_FIRST - 18 + NM_TOOLTIPSCREATED* = NM_FIRST - 19 + NM_LDOWN* = NM_FIRST - 20 + NM_RDOWN* = NM_FIRST - 21 + NM_THEMECHANGED* = NM_FIRST - 22 + NM_FONTCHANGED* = NM_FIRST - 23 + NM_CUSTOMTEXT* = NM_FIRST - 24 + NM_TVSTATEIMAGECHANGING* = NM_FIRST - 24 + NM_LAST* = 0 - 99 + LVN_FIRST* = 0 - 100 + LVN_LAST* = 0 - 199 + HDN_FIRST* = 0 - 300 + HDN_LAST* = 0 - 399 + TVN_FIRST* = 0 - 400 + TVN_LAST* = 0 - 499 + TTN_FIRST* = 0 - 520 + TTN_LAST* = 0 - 549 + TCN_FIRST* = 0 - 550 + TCN_LAST* = 0 - 580 + CDN_FIRST* = 0 - 601 + CDN_LAST* = 0 - 699 + TBN_FIRST* = 0 - 700 + TBN_LAST* = 0 - 720 + UDN_FIRST* = 0 - 721 + UDN_LAST* = 0 - 729 + DTN_FIRST* = 0 - 740 + DTN_LAST* = 0 - 745 + MCN_FIRST* = 0 - 746 + MCN_LAST* = 0 - 752 + DTN_FIRST2* = 0 - 753 + DTN_LAST2* = 0 - 799 + CBEN_FIRST* = 0 - 800 + CBEN_LAST* = 0 - 830 + RBN_FIRST* = 0 - 831 + RBN_LAST* = 0 - 859 + IPN_FIRST* = 0 - 860 + IPN_LAST* = 0 - 879 + SBN_FIRST* = 0 - 880 + SBN_LAST* = 0 - 899 + PGN_FIRST* = 0 - 900 + PGN_LAST* = 0 - 950 + WMN_FIRST* = 0 - 1000 + WMN_LAST* = 0 - 1200 + BCN_FIRST* = 0 - 1250 + BCN_LAST* = 0 - 1350 + TRBN_FIRST* = 0 - 1501 + TRBN_LAST* = 0 - 1519 MSGF_COMMCTRL_BEGINDRAG* = 0x4200 MSGF_COMMCTRL_SIZEHEADER* = 0x4201 MSGF_COMMCTRL_DRAGSELECT* = 0x4202 @@ -1782,7 +1949,7 @@ CDIS_NEARHOT* = 0x0400 CDIS_OTHERSIDEHOT* = 0x0800 CDIS_DROPHILITED* = 0x1000 - NM_GETCUSTOMSPLITRECT* = BCN_FIRST+0x0003 + NM_GETCUSTOMSPLITRECT* = BCN_FIRST + 0x0003 CLR_NONE* = 0xffffffff'i32 CLR_DEFAULT* = 0xff000000'i32 ILC_MASK* = 0x1 @@ -1871,15 +2038,15 @@ HDF_FIXEDWIDTH* = 0x100 HDF_SPLITBUTTON* = 0x1000000 HDIS_FOCUSED* = 0x1 - HDM_GETITEMCOUNT* = HDM_FIRST+0 - HDM_INSERTITEMA* = HDM_FIRST+1 - HDM_INSERTITEMW* = HDM_FIRST+10 - HDM_DELETEITEM* = HDM_FIRST+2 - HDM_GETITEMA* = HDM_FIRST+3 - HDM_GETITEMW* = HDM_FIRST+11 - HDM_SETITEMA* = HDM_FIRST+4 - HDM_SETITEMW* = HDM_FIRST+12 - HDM_LAYOUT* = HDM_FIRST+5 + HDM_GETITEMCOUNT* = HDM_FIRST + 0 + HDM_INSERTITEMA* = HDM_FIRST + 1 + HDM_INSERTITEMW* = HDM_FIRST + 10 + HDM_DELETEITEM* = HDM_FIRST + 2 + HDM_GETITEMA* = HDM_FIRST + 3 + HDM_GETITEMW* = HDM_FIRST + 11 + HDM_SETITEMA* = HDM_FIRST + 4 + HDM_SETITEMW* = HDM_FIRST + 12 + HDM_LAYOUT* = HDM_FIRST + 5 HHT_NOWHERE* = 0x1 HHT_ONHEADER* = 0x2 HHT_ONDIVIDER* = 0x4 @@ -1895,54 +2062,54 @@ HHT_ONOVERFLOW* = 0x4000 HDSIL_NORMAL* = 0 HDSIL_STATE* = 1 - HDM_HITTEST* = HDM_FIRST+6 - HDM_GETITEMRECT* = HDM_FIRST+7 - HDM_SETIMAGELIST* = HDM_FIRST+8 - HDM_GETIMAGELIST* = HDM_FIRST+9 - HDM_ORDERTOINDEX* = HDM_FIRST+15 - HDM_CREATEDRAGIMAGE* = HDM_FIRST+16 - HDM_GETORDERARRAY* = HDM_FIRST+17 - HDM_SETORDERARRAY* = HDM_FIRST+18 - HDM_SETHOTDIVIDER* = HDM_FIRST+19 - HDM_SETBITMAPMARGIN* = HDM_FIRST+20 - HDM_GETBITMAPMARGIN* = HDM_FIRST+21 + HDM_HITTEST* = HDM_FIRST + 6 + HDM_GETITEMRECT* = HDM_FIRST + 7 + HDM_SETIMAGELIST* = HDM_FIRST + 8 + HDM_GETIMAGELIST* = HDM_FIRST + 9 + HDM_ORDERTOINDEX* = HDM_FIRST + 15 + HDM_CREATEDRAGIMAGE* = HDM_FIRST + 16 + HDM_GETORDERARRAY* = HDM_FIRST + 17 + HDM_SETORDERARRAY* = HDM_FIRST + 18 + HDM_SETHOTDIVIDER* = HDM_FIRST + 19 + HDM_SETBITMAPMARGIN* = HDM_FIRST + 20 + HDM_GETBITMAPMARGIN* = HDM_FIRST + 21 HDM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT HDM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - HDM_SETFILTERCHANGETIMEOUT* = HDM_FIRST+22 - HDM_EDITFILTER* = HDM_FIRST+23 - HDM_CLEARFILTER* = HDM_FIRST+24 - HDM_GETITEMDROPDOWNRECT* = HDM_FIRST+25 - HDM_GETOVERFLOWRECT* = HDM_FIRST+26 - HDM_GETFOCUSEDITEM* = HDM_FIRST+27 - HDM_SETFOCUSEDITEM* = HDM_FIRST+28 - HDN_ITEMCHANGINGA* = HDN_FIRST-0 - HDN_ITEMCHANGINGW* = HDN_FIRST-20 - HDN_ITEMCHANGEDA* = HDN_FIRST-1 - HDN_ITEMCHANGEDW* = HDN_FIRST-21 - HDN_ITEMCLICKA* = HDN_FIRST-2 - HDN_ITEMCLICKW* = HDN_FIRST-22 - HDN_ITEMDBLCLICKA* = HDN_FIRST-3 - HDN_ITEMDBLCLICKW* = HDN_FIRST-23 - HDN_DIVIDERDBLCLICKA* = HDN_FIRST-5 - HDN_DIVIDERDBLCLICKW* = HDN_FIRST-25 - HDN_BEGINTRACKA* = HDN_FIRST-6 - HDN_BEGINTRACKW* = HDN_FIRST-26 - HDN_ENDTRACKA* = HDN_FIRST-7 - HDN_ENDTRACKW* = HDN_FIRST-27 - HDN_TRACKA* = HDN_FIRST-8 - HDN_TRACKW* = HDN_FIRST-28 - HDN_GETDISPINFOA* = HDN_FIRST-9 - HDN_GETDISPINFOW* = HDN_FIRST-29 - HDN_BEGINDRAG* = HDN_FIRST-10 - HDN_ENDDRAG* = HDN_FIRST-11 - HDN_FILTERCHANGE* = HDN_FIRST-12 - HDN_FILTERBTNCLICK* = HDN_FIRST-13 - HDN_BEGINFILTEREDIT* = HDN_FIRST-14 - HDN_ENDFILTEREDIT* = HDN_FIRST-15 - HDN_ITEMSTATEICONCLICK* = HDN_FIRST-16 - HDN_ITEMKEYDOWN* = HDN_FIRST-17 - HDN_DROPDOWN* = HDN_FIRST-18 - HDN_OVERFLOWCLICK* = HDN_FIRST-19 + HDM_SETFILTERCHANGETIMEOUT* = HDM_FIRST + 22 + HDM_EDITFILTER* = HDM_FIRST + 23 + HDM_CLEARFILTER* = HDM_FIRST + 24 + HDM_GETITEMDROPDOWNRECT* = HDM_FIRST + 25 + HDM_GETOVERFLOWRECT* = HDM_FIRST + 26 + HDM_GETFOCUSEDITEM* = HDM_FIRST + 27 + HDM_SETFOCUSEDITEM* = HDM_FIRST + 28 + HDN_ITEMCHANGINGA* = HDN_FIRST - 0 + HDN_ITEMCHANGINGW* = HDN_FIRST - 20 + HDN_ITEMCHANGEDA* = HDN_FIRST - 1 + HDN_ITEMCHANGEDW* = HDN_FIRST - 21 + HDN_ITEMCLICKA* = HDN_FIRST - 2 + HDN_ITEMCLICKW* = HDN_FIRST - 22 + HDN_ITEMDBLCLICKA* = HDN_FIRST - 3 + HDN_ITEMDBLCLICKW* = HDN_FIRST - 23 + HDN_DIVIDERDBLCLICKA* = HDN_FIRST - 5 + HDN_DIVIDERDBLCLICKW* = HDN_FIRST - 25 + HDN_BEGINTRACKA* = HDN_FIRST - 6 + HDN_BEGINTRACKW* = HDN_FIRST - 26 + HDN_ENDTRACKA* = HDN_FIRST - 7 + HDN_ENDTRACKW* = HDN_FIRST - 27 + HDN_TRACKA* = HDN_FIRST - 8 + HDN_TRACKW* = HDN_FIRST - 28 + HDN_GETDISPINFOA* = HDN_FIRST - 9 + HDN_GETDISPINFOW* = HDN_FIRST - 29 + HDN_BEGINDRAG* = HDN_FIRST - 10 + HDN_ENDDRAG* = HDN_FIRST - 11 + HDN_FILTERCHANGE* = HDN_FIRST - 12 + HDN_FILTERBTNCLICK* = HDN_FIRST - 13 + HDN_BEGINFILTEREDIT* = HDN_FIRST - 14 + HDN_ENDFILTEREDIT* = HDN_FIRST - 15 + HDN_ITEMSTATEICONCLICK* = HDN_FIRST - 16 + HDN_ITEMKEYDOWN* = HDN_FIRST - 17 + HDN_DROPDOWN* = HDN_FIRST - 18 + HDN_OVERFLOWCLICK* = HDN_FIRST - 19 TOOLBARCLASSNAMEW* = "ToolbarWindow32" TOOLBARCLASSNAMEA* = "ToolbarWindow32" CMB_MASKED* = 0x2 @@ -1994,21 +2161,21 @@ TBCDRF_BLENDICON* = 0x200000 TBCDRF_NOBACKGROUND* = 0x400000 TBCDRF_USECDCOLORS* = 0x00800000 - TB_ENABLEBUTTON* = WM_USER+1 - TB_CHECKBUTTON* = WM_USER+2 - TB_PRESSBUTTON* = WM_USER+3 - TB_HIDEBUTTON* = WM_USER+4 - TB_INDETERMINATE* = WM_USER+5 - TB_MARKBUTTON* = WM_USER+6 - TB_ISBUTTONENABLED* = WM_USER+9 - TB_ISBUTTONCHECKED* = WM_USER+10 - TB_ISBUTTONPRESSED* = WM_USER+11 - TB_ISBUTTONHIDDEN* = WM_USER+12 - TB_ISBUTTONINDETERMINATE* = WM_USER+13 - TB_ISBUTTONHIGHLIGHTED* = WM_USER+14 - TB_SETSTATE* = WM_USER+17 - TB_GETSTATE* = WM_USER+18 - TB_ADDBITMAP* = WM_USER+19 + TB_ENABLEBUTTON* = WM_USER + 1 + TB_CHECKBUTTON* = WM_USER + 2 + TB_PRESSBUTTON* = WM_USER + 3 + TB_HIDEBUTTON* = WM_USER + 4 + TB_INDETERMINATE* = WM_USER + 5 + TB_MARKBUTTON* = WM_USER + 6 + TB_ISBUTTONENABLED* = WM_USER + 9 + TB_ISBUTTONCHECKED* = WM_USER + 10 + TB_ISBUTTONPRESSED* = WM_USER + 11 + TB_ISBUTTONHIDDEN* = WM_USER + 12 + TB_ISBUTTONINDETERMINATE* = WM_USER + 13 + TB_ISBUTTONHIGHLIGHTED* = WM_USER + 14 + TB_SETSTATE* = WM_USER + 17 + TB_GETSTATE* = WM_USER + 18 + TB_ADDBITMAP* = WM_USER + 19 HINST_COMMCTRL* = HINSTANCE(-1) IDB_STD_SMALL_COLOR* = 0 IDB_STD_LARGE_COLOR* = 1 @@ -2053,74 +2220,74 @@ HIST_FAVORITES* = 2 HIST_ADDTOFAVORITES* = 3 HIST_VIEWTREE* = 4 - TB_ADDBUTTONSA* = WM_USER+20 - TB_INSERTBUTTONA* = WM_USER+21 - TB_DELETEBUTTON* = WM_USER+22 - TB_GETBUTTON* = WM_USER+23 - TB_BUTTONCOUNT* = WM_USER+24 - TB_COMMANDTOINDEX* = WM_USER+25 - TB_SAVERESTOREA* = WM_USER+26 - TB_SAVERESTOREW* = WM_USER+76 - TB_CUSTOMIZE* = WM_USER+27 - TB_ADDSTRINGA* = WM_USER+28 - TB_ADDSTRINGW* = WM_USER+77 - TB_GETITEMRECT* = WM_USER+29 - TB_BUTTONSTRUCTSIZE* = WM_USER+30 - TB_SETBUTTONSIZE* = WM_USER+31 - TB_SETBITMAPSIZE* = WM_USER+32 - TB_AUTOSIZE* = WM_USER+33 - TB_GETTOOLTIPS* = WM_USER+35 - TB_SETTOOLTIPS* = WM_USER+36 - TB_SETPARENT* = WM_USER+37 - TB_SETROWS* = WM_USER+39 - TB_GETROWS* = WM_USER+40 - TB_SETCMDID* = WM_USER+42 - TB_CHANGEBITMAP* = WM_USER+43 - TB_GETBITMAP* = WM_USER+44 - TB_GETBUTTONTEXTA* = WM_USER+45 - TB_GETBUTTONTEXTW* = WM_USER+75 - TB_REPLACEBITMAP* = WM_USER+46 - TB_SETINDENT* = WM_USER+47 - TB_SETIMAGELIST* = WM_USER+48 - TB_GETIMAGELIST* = WM_USER+49 - TB_LOADIMAGES* = WM_USER+50 - TB_GETRECT* = WM_USER+51 - TB_SETHOTIMAGELIST* = WM_USER+52 - TB_GETHOTIMAGELIST* = WM_USER+53 - TB_SETDISABLEDIMAGELIST* = WM_USER+54 - TB_GETDISABLEDIMAGELIST* = WM_USER+55 - TB_SETSTYLE* = WM_USER+56 - TB_GETSTYLE* = WM_USER+57 - TB_GETBUTTONSIZE* = WM_USER+58 - TB_SETBUTTONWIDTH* = WM_USER+59 - TB_SETMAXTEXTROWS* = WM_USER+60 - TB_GETTEXTROWS* = WM_USER+61 - TB_GETOBJECT* = WM_USER+62 - TB_GETHOTITEM* = WM_USER+71 - TB_SETHOTITEM* = WM_USER+72 - TB_SETANCHORHIGHLIGHT* = WM_USER+73 - TB_GETANCHORHIGHLIGHT* = WM_USER+74 - TB_MAPACCELERATORA* = WM_USER+78 + TB_ADDBUTTONSA* = WM_USER + 20 + TB_INSERTBUTTONA* = WM_USER + 21 + TB_DELETEBUTTON* = WM_USER + 22 + TB_GETBUTTON* = WM_USER + 23 + TB_BUTTONCOUNT* = WM_USER + 24 + TB_COMMANDTOINDEX* = WM_USER + 25 + TB_SAVERESTOREA* = WM_USER + 26 + TB_SAVERESTOREW* = WM_USER + 76 + TB_CUSTOMIZE* = WM_USER + 27 + TB_ADDSTRINGA* = WM_USER + 28 + TB_ADDSTRINGW* = WM_USER + 77 + TB_GETITEMRECT* = WM_USER + 29 + TB_BUTTONSTRUCTSIZE* = WM_USER + 30 + TB_SETBUTTONSIZE* = WM_USER + 31 + TB_SETBITMAPSIZE* = WM_USER + 32 + TB_AUTOSIZE* = WM_USER + 33 + TB_GETTOOLTIPS* = WM_USER + 35 + TB_SETTOOLTIPS* = WM_USER + 36 + TB_SETPARENT* = WM_USER + 37 + TB_SETROWS* = WM_USER + 39 + TB_GETROWS* = WM_USER + 40 + TB_SETCMDID* = WM_USER + 42 + TB_CHANGEBITMAP* = WM_USER + 43 + TB_GETBITMAP* = WM_USER + 44 + TB_GETBUTTONTEXTA* = WM_USER + 45 + TB_GETBUTTONTEXTW* = WM_USER + 75 + TB_REPLACEBITMAP* = WM_USER + 46 + TB_SETINDENT* = WM_USER + 47 + TB_SETIMAGELIST* = WM_USER + 48 + TB_GETIMAGELIST* = WM_USER + 49 + TB_LOADIMAGES* = WM_USER + 50 + TB_GETRECT* = WM_USER + 51 + TB_SETHOTIMAGELIST* = WM_USER + 52 + TB_GETHOTIMAGELIST* = WM_USER + 53 + TB_SETDISABLEDIMAGELIST* = WM_USER + 54 + TB_GETDISABLEDIMAGELIST* = WM_USER + 55 + TB_SETSTYLE* = WM_USER + 56 + TB_GETSTYLE* = WM_USER + 57 + TB_GETBUTTONSIZE* = WM_USER + 58 + TB_SETBUTTONWIDTH* = WM_USER + 59 + TB_SETMAXTEXTROWS* = WM_USER + 60 + TB_GETTEXTROWS* = WM_USER + 61 + TB_GETOBJECT* = WM_USER + 62 + TB_GETHOTITEM* = WM_USER + 71 + TB_SETHOTITEM* = WM_USER + 72 + TB_SETANCHORHIGHLIGHT* = WM_USER + 73 + TB_GETANCHORHIGHLIGHT* = WM_USER + 74 + TB_MAPACCELERATORA* = WM_USER + 78 TBIMHT_AFTER* = 0x1 TBIMHT_BACKGROUND* = 0x2 - TB_GETINSERTMARK* = WM_USER+79 - TB_SETINSERTMARK* = WM_USER+80 - TB_INSERTMARKHITTEST* = WM_USER+81 - TB_MOVEBUTTON* = WM_USER+82 - TB_GETMAXSIZE* = WM_USER+83 - TB_SETEXTENDEDSTYLE* = WM_USER+84 - TB_GETEXTENDEDSTYLE* = WM_USER+85 - TB_GETPADDING* = WM_USER+86 - TB_SETPADDING* = WM_USER+87 - TB_SETINSERTMARKCOLOR* = WM_USER+88 - TB_GETINSERTMARKCOLOR* = WM_USER+89 + TB_GETINSERTMARK* = WM_USER + 79 + TB_SETINSERTMARK* = WM_USER + 80 + TB_INSERTMARKHITTEST* = WM_USER + 81 + TB_MOVEBUTTON* = WM_USER + 82 + TB_GETMAXSIZE* = WM_USER + 83 + TB_SETEXTENDEDSTYLE* = WM_USER + 84 + TB_GETEXTENDEDSTYLE* = WM_USER + 85 + TB_GETPADDING* = WM_USER + 86 + TB_SETPADDING* = WM_USER + 87 + TB_SETINSERTMARKCOLOR* = WM_USER + 88 + TB_GETINSERTMARKCOLOR* = WM_USER + 89 TB_SETCOLORSCHEME* = CCM_SETCOLORSCHEME TB_GETCOLORSCHEME* = CCM_GETCOLORSCHEME TB_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT TB_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - TB_MAPACCELERATORW* = WM_USER+90 + TB_MAPACCELERATORW* = WM_USER + 90 TBBF_LARGE* = 0x1 - TB_GETBITMAPFLAGS* = WM_USER+41 + TB_GETBITMAPFLAGS* = WM_USER + 41 TBIF_IMAGE* = 0x1 TBIF_TEXT* = 0x2 TBIF_STATE* = 0x4 @@ -2129,43 +2296,43 @@ TBIF_COMMAND* = 0x20 TBIF_SIZE* = 0x40 TBIF_BYINDEX* = 0x80000000'i32 - TB_GETBUTTONINFOW* = WM_USER+63 - TB_SETBUTTONINFOW* = WM_USER+64 - TB_GETBUTTONINFOA* = WM_USER+65 - TB_SETBUTTONINFOA* = WM_USER+66 - TB_INSERTBUTTONW* = WM_USER+67 - TB_ADDBUTTONSW* = WM_USER+68 - TB_HITTEST* = WM_USER+69 - TB_SETDRAWTEXTFLAGS* = WM_USER+70 - TB_GETSTRINGW* = WM_USER+91 - TB_GETSTRINGA* = WM_USER+92 - TB_SETBOUNDINGSIZE* = WM_USER+93 - TB_SETHOTITEM2* = WM_USER+94 - TB_HASACCELERATOR* = WM_USER+95 - TB_SETLISTGAP* = WM_USER+96 - TB_GETIMAGELISTCOUNT* = WM_USER+98 - TB_GETIDEALSIZE* = WM_USER+99 + TB_GETBUTTONINFOW* = WM_USER + 63 + TB_SETBUTTONINFOW* = WM_USER + 64 + TB_GETBUTTONINFOA* = WM_USER + 65 + TB_SETBUTTONINFOA* = WM_USER + 66 + TB_INSERTBUTTONW* = WM_USER + 67 + TB_ADDBUTTONSW* = WM_USER + 68 + TB_HITTEST* = WM_USER + 69 + TB_SETDRAWTEXTFLAGS* = WM_USER + 70 + TB_GETSTRINGW* = WM_USER + 91 + TB_GETSTRINGA* = WM_USER + 92 + TB_SETBOUNDINGSIZE* = WM_USER + 93 + TB_SETHOTITEM2* = WM_USER + 94 + TB_HASACCELERATOR* = WM_USER + 95 + TB_SETLISTGAP* = WM_USER + 96 + TB_GETIMAGELISTCOUNT* = WM_USER + 98 + TB_GETIDEALSIZE* = WM_USER + 99 TBMF_PAD* = 0x1 TBMF_BARPAD* = 0x2 TBMF_BUTTONSPACING* = 0x4 - TB_GETMETRICS* = WM_USER+101 - TB_SETMETRICS* = WM_USER+102 - TB_GETITEMDROPDOWNRECT* = WM_USER+103 - TB_SETPRESSEDIMAGELIST* = WM_USER+104 - TB_GETPRESSEDIMAGELIST* = WM_USER+105 + TB_GETMETRICS* = WM_USER + 101 + TB_SETMETRICS* = WM_USER + 102 + TB_GETITEMDROPDOWNRECT* = WM_USER + 103 + TB_SETPRESSEDIMAGELIST* = WM_USER + 104 + TB_GETPRESSEDIMAGELIST* = WM_USER + 105 TB_SETWINDOWTHEME* = CCM_SETWINDOWTHEME - TBN_GETBUTTONINFOA* = TBN_FIRST-0 - TBN_BEGINDRAG* = TBN_FIRST-1 - TBN_ENDDRAG* = TBN_FIRST-2 - TBN_BEGINADJUST* = TBN_FIRST-3 - TBN_ENDADJUST* = TBN_FIRST-4 - TBN_RESET* = TBN_FIRST-5 - TBN_QUERYINSERT* = TBN_FIRST-6 - TBN_QUERYDELETE* = TBN_FIRST-7 - TBN_TOOLBARCHANGE* = TBN_FIRST-8 - TBN_CUSTHELP* = TBN_FIRST-9 - TBN_DROPDOWN* = TBN_FIRST-10 - TBN_GETOBJECT* = TBN_FIRST-12 + TBN_GETBUTTONINFOA* = TBN_FIRST - 0 + TBN_BEGINDRAG* = TBN_FIRST - 1 + TBN_ENDDRAG* = TBN_FIRST - 2 + TBN_BEGINADJUST* = TBN_FIRST - 3 + TBN_ENDADJUST* = TBN_FIRST - 4 + TBN_RESET* = TBN_FIRST - 5 + TBN_QUERYINSERT* = TBN_FIRST - 6 + TBN_QUERYDELETE* = TBN_FIRST - 7 + TBN_TOOLBARCHANGE* = TBN_FIRST - 8 + TBN_CUSTHELP* = TBN_FIRST - 9 + TBN_DROPDOWN* = TBN_FIRST - 10 + TBN_GETOBJECT* = TBN_FIRST - 12 HICF_OTHER* = 0x0 HICF_MOUSE* = 0x1 HICF_ARROWKEYS* = 0x2 @@ -2176,24 +2343,24 @@ HICF_RESELECT* = 0x40 HICF_LMOUSE* = 0x80 HICF_TOGGLEDROPDOWN* = 0x100 - TBN_HOTITEMCHANGE* = TBN_FIRST-13 - TBN_DRAGOUT* = TBN_FIRST-14 - TBN_DELETINGBUTTON* = TBN_FIRST-15 - TBN_GETDISPINFOA* = TBN_FIRST-16 - TBN_GETDISPINFOW* = TBN_FIRST-17 - TBN_GETINFOTIPA* = TBN_FIRST-18 - TBN_GETINFOTIPW* = TBN_FIRST-19 - TBN_GETBUTTONINFOW* = TBN_FIRST-20 - TBN_RESTORE* = TBN_FIRST-21 - TBN_SAVE* = TBN_FIRST-22 - TBN_INITCUSTOMIZE* = TBN_FIRST-23 + TBN_HOTITEMCHANGE* = TBN_FIRST - 13 + TBN_DRAGOUT* = TBN_FIRST - 14 + TBN_DELETINGBUTTON* = TBN_FIRST - 15 + TBN_GETDISPINFOA* = TBN_FIRST - 16 + TBN_GETDISPINFOW* = TBN_FIRST - 17 + TBN_GETINFOTIPA* = TBN_FIRST - 18 + TBN_GETINFOTIPW* = TBN_FIRST - 19 + TBN_GETBUTTONINFOW* = TBN_FIRST - 20 + TBN_RESTORE* = TBN_FIRST - 21 + TBN_SAVE* = TBN_FIRST - 22 + TBN_INITCUSTOMIZE* = TBN_FIRST - 23 TBNRF_HIDEHELP* = 0x1 TBNRF_ENDCUSTOMIZE* = 0x2 - TBN_WRAPHOTITEM* = TBN_FIRST-24 - TBN_DUPACCELERATOR* = TBN_FIRST-25 - TBN_WRAPACCELERATOR* = TBN_FIRST-26 - TBN_DRAGOVER* = TBN_FIRST-27 - TBN_MAPACCELERATOR* = TBN_FIRST-28 + TBN_WRAPHOTITEM* = TBN_FIRST - 24 + TBN_DUPACCELERATOR* = TBN_FIRST - 25 + TBN_WRAPACCELERATOR* = TBN_FIRST - 26 + TBN_DRAGOVER* = TBN_FIRST - 27 + TBN_MAPACCELERATOR* = TBN_FIRST - 28 TBNF_IMAGE* = 0x1 TBNF_TEXT* = 0x2 TBNF_DI_SETITEM* = 0x10000000 @@ -2237,65 +2404,65 @@ RBBIM_HEADERSIZE* = 0x800 RBBIM_CHEVRONLOCATION* = 0x00001000 RBBIM_CHEVRONSTATE* = 0x00002000 - RB_INSERTBANDA* = WM_USER+1 - RB_DELETEBAND* = WM_USER+2 - RB_GETBARINFO* = WM_USER+3 - RB_SETBARINFO* = WM_USER+4 - RB_SETBANDINFOA* = WM_USER+6 - RB_SETPARENT* = WM_USER+7 - RB_HITTEST* = WM_USER+8 - RB_GETRECT* = WM_USER+9 - RB_INSERTBANDW* = WM_USER+10 - RB_SETBANDINFOW* = WM_USER+11 - RB_GETBANDCOUNT* = WM_USER+12 - RB_GETROWCOUNT* = WM_USER+13 - RB_GETROWHEIGHT* = WM_USER+14 - RB_IDTOINDEX* = WM_USER+16 - RB_GETTOOLTIPS* = WM_USER+17 - RB_SETTOOLTIPS* = WM_USER+18 - RB_SETBKCOLOR* = WM_USER+19 - RB_GETBKCOLOR* = WM_USER+20 - RB_SETTEXTCOLOR* = WM_USER+21 - RB_GETTEXTCOLOR* = WM_USER+22 + RB_INSERTBANDA* = WM_USER + 1 + RB_DELETEBAND* = WM_USER + 2 + RB_GETBARINFO* = WM_USER + 3 + RB_SETBARINFO* = WM_USER + 4 + RB_SETBANDINFOA* = WM_USER + 6 + RB_SETPARENT* = WM_USER + 7 + RB_HITTEST* = WM_USER + 8 + RB_GETRECT* = WM_USER + 9 + RB_INSERTBANDW* = WM_USER + 10 + RB_SETBANDINFOW* = WM_USER + 11 + RB_GETBANDCOUNT* = WM_USER + 12 + RB_GETROWCOUNT* = WM_USER + 13 + RB_GETROWHEIGHT* = WM_USER + 14 + RB_IDTOINDEX* = WM_USER + 16 + RB_GETTOOLTIPS* = WM_USER + 17 + RB_SETTOOLTIPS* = WM_USER + 18 + RB_SETBKCOLOR* = WM_USER + 19 + RB_GETBKCOLOR* = WM_USER + 20 + RB_SETTEXTCOLOR* = WM_USER + 21 + RB_GETTEXTCOLOR* = WM_USER + 22 RBSTR_CHANGERECT* = 0x1 - RB_SIZETORECT* = WM_USER+23 + RB_SIZETORECT* = WM_USER + 23 RB_SETCOLORSCHEME* = CCM_SETCOLORSCHEME RB_GETCOLORSCHEME* = CCM_GETCOLORSCHEME - RB_BEGINDRAG* = WM_USER+24 - RB_ENDDRAG* = WM_USER+25 - RB_DRAGMOVE* = WM_USER+26 - RB_GETBARHEIGHT* = WM_USER+27 - RB_GETBANDINFOW* = WM_USER+28 - RB_GETBANDINFOA* = WM_USER+29 - RB_MINIMIZEBAND* = WM_USER+30 - RB_MAXIMIZEBAND* = WM_USER+31 + RB_BEGINDRAG* = WM_USER + 24 + RB_ENDDRAG* = WM_USER + 25 + RB_DRAGMOVE* = WM_USER + 26 + RB_GETBARHEIGHT* = WM_USER + 27 + RB_GETBANDINFOW* = WM_USER + 28 + RB_GETBANDINFOA* = WM_USER + 29 + RB_MINIMIZEBAND* = WM_USER + 30 + RB_MAXIMIZEBAND* = WM_USER + 31 RB_GETDROPTARGET* = CCM_GETDROPTARGET - RB_GETBANDBORDERS* = WM_USER+34 - RB_SHOWBAND* = WM_USER+35 - RB_SETPALETTE* = WM_USER+37 - RB_GETPALETTE* = WM_USER+38 - RB_MOVEBAND* = WM_USER+39 + RB_GETBANDBORDERS* = WM_USER + 34 + RB_SHOWBAND* = WM_USER + 35 + RB_SETPALETTE* = WM_USER + 37 + RB_GETPALETTE* = WM_USER + 38 + RB_MOVEBAND* = WM_USER + 39 RB_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT RB_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - RB_GETBANDMARGINS* = WM_USER+40 + RB_GETBANDMARGINS* = WM_USER + 40 RB_SETWINDOWTHEME* = CCM_SETWINDOWTHEME - RB_SETEXTENDEDSTYLE* = WM_USER+41 - RB_GETEXTENDEDSTYLE* = WM_USER+42 - RB_PUSHCHEVRON* = WM_USER+43 - RB_SETBANDWIDTH* = WM_USER+44 - RBN_HEIGHTCHANGE* = RBN_FIRST-0 - RBN_GETOBJECT* = RBN_FIRST-1 - RBN_LAYOUTCHANGED* = RBN_FIRST-2 - RBN_AUTOSIZE* = RBN_FIRST-3 - RBN_BEGINDRAG* = RBN_FIRST-4 - RBN_ENDDRAG* = RBN_FIRST-5 - RBN_DELETINGBAND* = RBN_FIRST-6 - RBN_DELETEDBAND* = RBN_FIRST-7 - RBN_CHILDSIZE* = RBN_FIRST-8 - RBN_CHEVRONPUSHED* = RBN_FIRST-10 - RBN_SPLITTERDRAG* = RBN_FIRST-11 - RBN_MINMAX* = RBN_FIRST-21 - RBN_AUTOBREAK* = RBN_FIRST-22 + RB_SETEXTENDEDSTYLE* = WM_USER + 41 + RB_GETEXTENDEDSTYLE* = WM_USER + 42 + RB_PUSHCHEVRON* = WM_USER + 43 + RB_SETBANDWIDTH* = WM_USER + 44 + RBN_HEIGHTCHANGE* = RBN_FIRST - 0 + RBN_GETOBJECT* = RBN_FIRST - 1 + RBN_LAYOUTCHANGED* = RBN_FIRST - 2 + RBN_AUTOSIZE* = RBN_FIRST - 3 + RBN_BEGINDRAG* = RBN_FIRST - 4 + RBN_ENDDRAG* = RBN_FIRST - 5 + RBN_DELETINGBAND* = RBN_FIRST - 6 + RBN_DELETEDBAND* = RBN_FIRST - 7 + RBN_CHILDSIZE* = RBN_FIRST - 8 + RBN_CHEVRONPUSHED* = RBN_FIRST - 10 + RBN_SPLITTERDRAG* = RBN_FIRST - 11 + RBN_MINMAX* = RBN_FIRST - 21 + RBN_AUTOBREAK* = RBN_FIRST - 22 RBNM_ID* = 0x1 RBNM_STYLE* = 0x2 RBNM_LPARAM* = 0x4 @@ -2336,62 +2503,60 @@ TTI_INFO_LARGE* = 4 TTI_WARNING_LARGE* = 5 TTI_ERROR_LARGE* = 6 - TTM_ACTIVATE* = WM_USER+1 - TTM_SETDELAYTIME* = WM_USER+3 - TTM_ADDTOOLA* = WM_USER+4 - TTM_ADDTOOLW* = WM_USER+50 - TTM_DELTOOLA* = WM_USER+5 - TTM_DELTOOLW* = WM_USER+51 - TTM_NEWTOOLRECTA* = WM_USER+6 - TTM_NEWTOOLRECTW* = WM_USER+52 - TTM_RELAYEVENT* = WM_USER+7 - TTM_GETTOOLINFOA* = WM_USER+8 - TTM_GETTOOLINFOW* = WM_USER+53 - TTM_SETTOOLINFOA* = WM_USER+9 - TTM_SETTOOLINFOW* = WM_USER+54 - TTM_HITTESTA* = WM_USER+10 - TTM_HITTESTW* = WM_USER+55 - TTM_GETTEXTA* = WM_USER+11 - TTM_GETTEXTW* = WM_USER+56 - TTM_UPDATETIPTEXTA* = WM_USER+12 - TTM_UPDATETIPTEXTW* = WM_USER+57 - TTM_GETTOOLCOUNT* = WM_USER+13 - TTM_ENUMTOOLSA* = WM_USER+14 - TTM_ENUMTOOLSW* = WM_USER+58 - TTM_GETCURRENTTOOLA* = WM_USER+15 - TTM_GETCURRENTTOOLW* = WM_USER+59 - TTM_WINDOWFROMPOINT* = WM_USER+16 - TTM_TRACKACTIVATE* = WM_USER+17 - TTM_TRACKPOSITION* = WM_USER+18 - TTM_SETTIPBKCOLOR* = WM_USER+19 - TTM_SETTIPTEXTCOLOR* = WM_USER+20 - TTM_GETDELAYTIME* = WM_USER+21 - TTM_GETTIPBKCOLOR* = WM_USER+22 - TTM_GETTIPTEXTCOLOR* = WM_USER+23 - TTM_SETMAXTIPWIDTH* = WM_USER+24 - TTM_GETMAXTIPWIDTH* = WM_USER+25 - TTM_SETMARGIN* = WM_USER+26 - TTM_GETMARGIN* = WM_USER+27 - TTM_POP* = WM_USER+28 - TTM_UPDATE* = WM_USER+29 - TTM_GETBUBBLESIZE* = WM_USER+30 - TTM_ADJUSTRECT* = WM_USER+31 - TTM_SETTITLEA* = WM_USER+32 - TTM_SETTITLEW* = WM_USER+33 - TTM_POPUP* = WM_USER+34 - TTM_GETTITLE* = WM_USER+35 + TTM_ACTIVATE* = WM_USER + 1 + TTM_SETDELAYTIME* = WM_USER + 3 + TTM_ADDTOOLA* = WM_USER + 4 + TTM_ADDTOOLW* = WM_USER + 50 + TTM_DELTOOLA* = WM_USER + 5 + TTM_DELTOOLW* = WM_USER + 51 + TTM_NEWTOOLRECTA* = WM_USER + 6 + TTM_NEWTOOLRECTW* = WM_USER + 52 + TTM_RELAYEVENT* = WM_USER + 7 + TTM_GETTOOLINFOA* = WM_USER + 8 + TTM_GETTOOLINFOW* = WM_USER + 53 + TTM_SETTOOLINFOA* = WM_USER + 9 + TTM_SETTOOLINFOW* = WM_USER + 54 + TTM_HITTESTA* = WM_USER + 10 + TTM_HITTESTW* = WM_USER + 55 + TTM_GETTEXTA* = WM_USER + 11 + TTM_GETTEXTW* = WM_USER + 56 + TTM_UPDATETIPTEXTA* = WM_USER + 12 + TTM_UPDATETIPTEXTW* = WM_USER + 57 + TTM_GETTOOLCOUNT* = WM_USER + 13 + TTM_ENUMTOOLSA* = WM_USER + 14 + TTM_ENUMTOOLSW* = WM_USER + 58 + TTM_GETCURRENTTOOLA* = WM_USER + 15 + TTM_GETCURRENTTOOLW* = WM_USER + 59 + TTM_WINDOWFROMPOINT* = WM_USER + 16 + TTM_TRACKACTIVATE* = WM_USER + 17 + TTM_TRACKPOSITION* = WM_USER + 18 + TTM_SETTIPBKCOLOR* = WM_USER + 19 + TTM_SETTIPTEXTCOLOR* = WM_USER + 20 + TTM_GETDELAYTIME* = WM_USER + 21 + TTM_GETTIPBKCOLOR* = WM_USER + 22 + TTM_GETTIPTEXTCOLOR* = WM_USER + 23 + TTM_SETMAXTIPWIDTH* = WM_USER + 24 + TTM_GETMAXTIPWIDTH* = WM_USER + 25 + TTM_SETMARGIN* = WM_USER + 26 + TTM_GETMARGIN* = WM_USER + 27 + TTM_POP* = WM_USER + 28 + TTM_UPDATE* = WM_USER + 29 + TTM_GETBUBBLESIZE* = WM_USER + 30 + TTM_ADJUSTRECT* = WM_USER + 31 + TTM_SETTITLEA* = WM_USER + 32 + TTM_SETTITLEW* = WM_USER + 33 + TTM_POPUP* = WM_USER + 34 + TTM_GETTITLE* = WM_USER + 35 TTM_SETWINDOWTHEME* = CCM_SETWINDOWTHEME - TTN_GETDISPINFOA* = TTN_FIRST-0 - TTN_GETDISPINFOW* = TTN_FIRST-10 - TTN_SHOW* = TTN_FIRST-1 - TTN_POP* = TTN_FIRST-2 - TTN_LINKCLICK* = TTN_FIRST-3 + TTN_GETDISPINFOA* = TTN_FIRST - 0 + TTN_GETDISPINFOW* = TTN_FIRST - 10 + TTN_SHOW* = TTN_FIRST - 1 + TTN_POP* = TTN_FIRST - 2 + TTN_LINKCLICK* = TTN_FIRST - 3 when winimUnicode: - const - TTN_GETDISPINFO* = TTN_GETDISPINFOW + const TTN_GETDISPINFO* = TTN_GETDISPINFOW when winimAnsi: - const - TTN_GETDISPINFO* = TTN_GETDISPINFOA + const TTN_GETDISPINFO* = TTN_GETDISPINFOA const TTN_NEEDTEXT* = TTN_GETDISPINFO TTN_NEEDTEXTA* = TTN_GETDISPINFOA @@ -2401,25 +2566,25 @@ SBT_TOOLTIPS* = 0x800 STATUSCLASSNAMEW* = "msctls_statusbar32" STATUSCLASSNAMEA* = "msctls_statusbar32" - SB_SETTEXTA* = WM_USER+1 - SB_SETTEXTW* = WM_USER+11 - SB_GETTEXTA* = WM_USER+2 - SB_GETTEXTW* = WM_USER+13 - SB_GETTEXTLENGTHA* = WM_USER+3 - SB_GETTEXTLENGTHW* = WM_USER+12 - SB_SETPARTS* = WM_USER+4 - SB_GETPARTS* = WM_USER+6 - SB_GETBORDERS* = WM_USER+7 - SB_SETMINHEIGHT* = WM_USER+8 - SB_SIMPLE* = WM_USER+9 - SB_GETRECT* = WM_USER+10 - SB_ISSIMPLE* = WM_USER+14 - SB_SETICON* = WM_USER+15 - SB_SETTIPTEXTA* = WM_USER+16 - SB_SETTIPTEXTW* = WM_USER+17 - SB_GETTIPTEXTA* = WM_USER+18 - SB_GETTIPTEXTW* = WM_USER+19 - SB_GETICON* = WM_USER+20 + SB_SETTEXTA* = WM_USER + 1 + SB_SETTEXTW* = WM_USER + 11 + SB_GETTEXTA* = WM_USER + 2 + SB_GETTEXTW* = WM_USER + 13 + SB_GETTEXTLENGTHA* = WM_USER + 3 + SB_GETTEXTLENGTHW* = WM_USER + 12 + SB_SETPARTS* = WM_USER + 4 + SB_GETPARTS* = WM_USER + 6 + SB_GETBORDERS* = WM_USER + 7 + SB_SETMINHEIGHT* = WM_USER + 8 + SB_SIMPLE* = WM_USER + 9 + SB_GETRECT* = WM_USER + 10 + SB_ISSIMPLE* = WM_USER + 14 + SB_SETICON* = WM_USER + 15 + SB_SETTIPTEXTA* = WM_USER + 16 + SB_SETTIPTEXTW* = WM_USER + 17 + SB_GETTIPTEXTA* = WM_USER + 18 + SB_GETTIPTEXTW* = WM_USER + 19 + SB_GETICON* = WM_USER + 20 SB_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT SB_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT SBT_OWNERDRAW* = 0x1000 @@ -2428,7 +2593,7 @@ SBT_RTLREADING* = 0x400 SBT_NOTABPARSING* = 0x800 SB_SETBKCOLOR* = CCM_SETBKCOLOR - SBN_SIMPLEMODECHANGE* = SBN_FIRST-0 + SBN_SIMPLEMODECHANGE* = SBN_FIRST - 0 SB_SIMPLEID* = 0xff MINSYSCOMMAND* = SC_SIZE TRACKBAR_CLASSA* = "msctls_trackbar32" @@ -2451,42 +2616,42 @@ TBS_NOTIFYBEFOREMOVE* = 0x800 TBS_TRANSPARENTBKGND* = 0x1000 TBM_GETPOS* = WM_USER - TBM_GETRANGEMIN* = WM_USER+1 - TBM_GETRANGEMAX* = WM_USER+2 - TBM_GETTIC* = WM_USER+3 - TBM_SETTIC* = WM_USER+4 - TBM_SETPOS* = WM_USER+5 - TBM_SETRANGE* = WM_USER+6 - TBM_SETRANGEMIN* = WM_USER+7 - TBM_SETRANGEMAX* = WM_USER+8 - TBM_CLEARTICS* = WM_USER+9 - TBM_SETSEL* = WM_USER+10 - TBM_SETSELSTART* = WM_USER+11 - TBM_SETSELEND* = WM_USER+12 - TBM_GETPTICS* = WM_USER+14 - TBM_GETTICPOS* = WM_USER+15 - TBM_GETNUMTICS* = WM_USER+16 - TBM_GETSELSTART* = WM_USER+17 - TBM_GETSELEND* = WM_USER+18 - TBM_CLEARSEL* = WM_USER+19 - TBM_SETTICFREQ* = WM_USER+20 - TBM_SETPAGESIZE* = WM_USER+21 - TBM_GETPAGESIZE* = WM_USER+22 - TBM_SETLINESIZE* = WM_USER+23 - TBM_GETLINESIZE* = WM_USER+24 - TBM_GETTHUMBRECT* = WM_USER+25 - TBM_GETCHANNELRECT* = WM_USER+26 - TBM_SETTHUMBLENGTH* = WM_USER+27 - TBM_GETTHUMBLENGTH* = WM_USER+28 - TBM_SETTOOLTIPS* = WM_USER+29 - TBM_GETTOOLTIPS* = WM_USER+30 - TBM_SETTIPSIDE* = WM_USER+31 + TBM_GETRANGEMIN* = WM_USER + 1 + TBM_GETRANGEMAX* = WM_USER + 2 + TBM_GETTIC* = WM_USER + 3 + TBM_SETTIC* = WM_USER + 4 + TBM_SETPOS* = WM_USER + 5 + TBM_SETRANGE* = WM_USER + 6 + TBM_SETRANGEMIN* = WM_USER + 7 + TBM_SETRANGEMAX* = WM_USER + 8 + TBM_CLEARTICS* = WM_USER + 9 + TBM_SETSEL* = WM_USER + 10 + TBM_SETSELSTART* = WM_USER + 11 + TBM_SETSELEND* = WM_USER + 12 + TBM_GETPTICS* = WM_USER + 14 + TBM_GETTICPOS* = WM_USER + 15 + TBM_GETNUMTICS* = WM_USER + 16 + TBM_GETSELSTART* = WM_USER + 17 + TBM_GETSELEND* = WM_USER + 18 + TBM_CLEARSEL* = WM_USER + 19 + TBM_SETTICFREQ* = WM_USER + 20 + TBM_SETPAGESIZE* = WM_USER + 21 + TBM_GETPAGESIZE* = WM_USER + 22 + TBM_SETLINESIZE* = WM_USER + 23 + TBM_GETLINESIZE* = WM_USER + 24 + TBM_GETTHUMBRECT* = WM_USER + 25 + TBM_GETCHANNELRECT* = WM_USER + 26 + TBM_SETTHUMBLENGTH* = WM_USER + 27 + TBM_GETTHUMBLENGTH* = WM_USER + 28 + TBM_SETTOOLTIPS* = WM_USER + 29 + TBM_GETTOOLTIPS* = WM_USER + 30 + TBM_SETTIPSIDE* = WM_USER + 31 TBTS_TOP* = 0 TBTS_LEFT* = 1 TBTS_BOTTOM* = 2 TBTS_RIGHT* = 3 - TBM_SETBUDDY* = WM_USER+32 - TBM_GETBUDDY* = WM_USER+33 + TBM_SETBUDDY* = WM_USER + 32 + TBM_GETBUDDY* = WM_USER + 33 TBM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT TBM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT TB_LINEUP* = 0 @@ -2501,11 +2666,11 @@ TBCD_TICS* = 0x1 TBCD_THUMB* = 0x2 TBCD_CHANNEL* = 0x3 - TRBN_THUMBPOSCHANGING* = TRBN_FIRST-1 - DL_BEGINDRAG* = WM_USER+133 - DL_DRAGGING* = WM_USER+134 - DL_DROPPED* = WM_USER+135 - DL_CANCELDRAG* = WM_USER+136 + TRBN_THUMBPOSCHANGING* = TRBN_FIRST - 1 + DL_BEGINDRAG* = WM_USER + 133 + DL_DRAGGING* = WM_USER + 134 + DL_DROPPED* = WM_USER + 135 + DL_CANCELDRAG* = WM_USER + 136 DL_CURSORSET* = 0 DL_STOPCURSOR* = 1 DL_COPYCURSOR* = 2 @@ -2524,44 +2689,44 @@ UDS_HORZ* = 0x40 UDS_NOTHOUSANDS* = 0x80 UDS_HOTTRACK* = 0x100 - UDM_SETRANGE* = WM_USER+101 - UDM_GETRANGE* = WM_USER+102 - UDM_SETPOS* = WM_USER+103 - UDM_GETPOS* = WM_USER+104 - UDM_SETBUDDY* = WM_USER+105 - UDM_GETBUDDY* = WM_USER+106 - UDM_SETACCEL* = WM_USER+107 - UDM_GETACCEL* = WM_USER+108 - UDM_SETBASE* = WM_USER+109 - UDM_GETBASE* = WM_USER+110 - UDM_SETRANGE32* = WM_USER+111 - UDM_GETRANGE32* = WM_USER+112 + UDM_SETRANGE* = WM_USER + 101 + UDM_GETRANGE* = WM_USER + 102 + UDM_SETPOS* = WM_USER + 103 + UDM_GETPOS* = WM_USER + 104 + UDM_SETBUDDY* = WM_USER + 105 + UDM_GETBUDDY* = WM_USER + 106 + UDM_SETACCEL* = WM_USER + 107 + UDM_GETACCEL* = WM_USER + 108 + UDM_SETBASE* = WM_USER + 109 + UDM_GETBASE* = WM_USER + 110 + UDM_SETRANGE32* = WM_USER + 111 + UDM_GETRANGE32* = WM_USER + 112 UDM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT UDM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - UDM_SETPOS32* = WM_USER+113 - UDM_GETPOS32* = WM_USER+114 - UDN_DELTAPOS* = UDN_FIRST-1 + UDM_SETPOS32* = WM_USER + 113 + UDM_GETPOS32* = WM_USER + 114 + UDN_DELTAPOS* = UDN_FIRST - 1 PROGRESS_CLASSA* = "msctls_progress32" PROGRESS_CLASSW* = "msctls_progress32" PBS_SMOOTH* = 0x1 PBS_VERTICAL* = 0x4 - PBM_SETRANGE* = WM_USER+1 - PBM_SETPOS* = WM_USER+2 - PBM_DELTAPOS* = WM_USER+3 - PBM_SETSTEP* = WM_USER+4 - PBM_STEPIT* = WM_USER+5 - PBM_SETRANGE32* = WM_USER+6 - PBM_GETRANGE* = WM_USER+7 - PBM_GETPOS* = WM_USER+8 - PBM_SETBARCOLOR* = WM_USER+9 + PBM_SETRANGE* = WM_USER + 1 + PBM_SETPOS* = WM_USER + 2 + PBM_DELTAPOS* = WM_USER + 3 + PBM_SETSTEP* = WM_USER + 4 + PBM_STEPIT* = WM_USER + 5 + PBM_SETRANGE32* = WM_USER + 6 + PBM_GETRANGE* = WM_USER + 7 + PBM_GETPOS* = WM_USER + 8 + PBM_SETBARCOLOR* = WM_USER + 9 PBM_SETBKCOLOR* = CCM_SETBKCOLOR PBS_MARQUEE* = 0x8 - PBM_SETMARQUEE* = WM_USER+10 - PBM_GETSTEP* = WM_USER+13 - PBM_GETBKCOLOR* = WM_USER+14 - PBM_GETBARCOLOR* = WM_USER+15 - PBM_SETSTATE* = WM_USER+16 - PBM_GETSTATE* = WM_USER+17 + PBM_SETMARQUEE* = WM_USER + 10 + PBM_GETSTEP* = WM_USER + 13 + PBM_GETBKCOLOR* = WM_USER + 14 + PBM_GETBARCOLOR* = WM_USER + 15 + PBM_SETSTATE* = WM_USER + 16 + PBM_GETSTATE* = WM_USER + 17 PBS_SMOOTHREVERSE* = 0x10 PBST_NORMAL* = 1 PBST_ERROR* = 2 @@ -2578,9 +2743,9 @@ HKCOMB_SA* = 0x20 HKCOMB_CA* = 0x40 HKCOMB_SCA* = 0x80 - HKM_SETHOTKEY* = WM_USER+1 - HKM_GETHOTKEY* = WM_USER+2 - HKM_SETRULES* = WM_USER+3 + HKM_SETHOTKEY* = WM_USER + 1 + HKM_GETHOTKEY* = WM_USER + 2 + HKM_SETRULES* = WM_USER + 3 HOTKEY_CLASSA* = "msctls_hotkey32" HOTKEY_CLASSW* = "msctls_hotkey32" CCS_TOP* = 0x1 @@ -2622,15 +2787,15 @@ LVS_NOSORTHEADER* = 0x8000 LVM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT LVM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - LVM_GETBKCOLOR* = LVM_FIRST+0 - LVM_SETBKCOLOR* = LVM_FIRST+1 - LVM_GETIMAGELIST* = LVM_FIRST+2 + LVM_GETBKCOLOR* = LVM_FIRST + 0 + LVM_SETBKCOLOR* = LVM_FIRST + 1 + LVM_GETIMAGELIST* = LVM_FIRST + 2 LVSIL_NORMAL* = 0 LVSIL_SMALL* = 1 LVSIL_STATE* = 2 LVSIL_GROUPHEADER* = 3 - LVM_SETIMAGELIST* = LVM_FIRST+3 - LVM_GETITEMCOUNT* = LVM_FIRST+4 + LVM_SETIMAGELIST* = LVM_FIRST + 3 + LVM_GETITEMCOUNT* = LVM_FIRST + 4 LVIF_TEXT* = 0x1 LVIF_IMAGE* = 0x2 LVIF_PARAM* = 0x4 @@ -2654,16 +2819,16 @@ I_IMAGECALLBACK* = -1 I_IMAGENONE* = -2 I_COLUMNSCALLBACK* = UINT(-1) - LVM_GETITEMA* = LVM_FIRST+5 - LVM_GETITEMW* = LVM_FIRST+75 - LVM_SETITEMA* = LVM_FIRST+6 - LVM_SETITEMW* = LVM_FIRST+76 - LVM_INSERTITEMA* = LVM_FIRST+7 - LVM_INSERTITEMW* = LVM_FIRST+77 - LVM_DELETEITEM* = LVM_FIRST+8 - LVM_DELETEALLITEMS* = LVM_FIRST+9 - LVM_GETCALLBACKMASK* = LVM_FIRST+10 - LVM_SETCALLBACKMASK* = LVM_FIRST+11 + LVM_GETITEMA* = LVM_FIRST + 5 + LVM_GETITEMW* = LVM_FIRST + 75 + LVM_SETITEMA* = LVM_FIRST + 6 + LVM_SETITEMW* = LVM_FIRST + 76 + LVM_INSERTITEMA* = LVM_FIRST + 7 + LVM_INSERTITEMW* = LVM_FIRST + 77 + LVM_DELETEITEM* = LVM_FIRST + 8 + LVM_DELETEALLITEMS* = LVM_FIRST + 9 + LVM_GETCALLBACKMASK* = LVM_FIRST + 10 + LVM_SETCALLBACKMASK* = LVM_FIRST + 11 LVNI_ALL* = 0x0 LVNI_FOCUSED* = 0x1 LVNI_SELECTED* = 0x2 @@ -2679,23 +2844,23 @@ LVNI_TOLEFT* = 0x400 LVNI_TORIGHT* = 0x800 LVNI_DIRECTIONMASK* = LVNI_ABOVE or LVNI_BELOW or LVNI_TOLEFT or LVNI_TORIGHT - LVM_GETNEXTITEM* = LVM_FIRST+12 + LVM_GETNEXTITEM* = LVM_FIRST + 12 LVFI_PARAM* = 0x1 LVFI_STRING* = 0x2 LVFI_PARTIAL* = 0x8 LVFI_WRAP* = 0x20 LVFI_NEARESTXY* = 0x40 - LVM_FINDITEMA* = LVM_FIRST+13 - LVM_FINDITEMW* = LVM_FIRST+83 + LVM_FINDITEMA* = LVM_FIRST + 13 + LVM_FINDITEMW* = LVM_FIRST + 83 LVIR_BOUNDS* = 0 LVIR_ICON* = 1 LVIR_LABEL* = 2 LVIR_SELECTBOUNDS* = 3 - LVM_GETITEMRECT* = LVM_FIRST+14 - LVM_SETITEMPOSITION* = LVM_FIRST+15 - LVM_GETITEMPOSITION* = LVM_FIRST+16 - LVM_GETSTRINGWIDTHA* = LVM_FIRST+17 - LVM_GETSTRINGWIDTHW* = LVM_FIRST+87 + LVM_GETITEMRECT* = LVM_FIRST + 14 + LVM_SETITEMPOSITION* = LVM_FIRST + 15 + LVM_GETITEMPOSITION* = LVM_FIRST + 16 + LVM_GETSTRINGWIDTHA* = LVM_FIRST + 17 + LVM_GETSTRINGWIDTHW* = LVM_FIRST + 87 LVHT_NOWHERE* = 0x1 LVHT_ONITEMICON* = 0x2 LVHT_ONITEMLABEL* = 0x4 @@ -2711,20 +2876,22 @@ LVHT_EX_GROUP_BACKGROUND* = 0x80000000'i32 LVHT_EX_GROUP_STATEICON* = 0x01000000 LVHT_EX_GROUP_SUBSETLINK* = 0x02000000 - LVHT_EX_GROUP* = LVHT_EX_GROUP_BACKGROUND or LVHT_EX_GROUP_COLLAPSE or LVHT_EX_GROUP_FOOTER or LVHT_EX_GROUP_HEADER or LVHT_EX_GROUP_STATEICON or LVHT_EX_GROUP_SUBSETLINK + LVHT_EX_GROUP* = + LVHT_EX_GROUP_BACKGROUND or LVHT_EX_GROUP_COLLAPSE or LVHT_EX_GROUP_FOOTER or + LVHT_EX_GROUP_HEADER or LVHT_EX_GROUP_STATEICON or LVHT_EX_GROUP_SUBSETLINK LVHT_EX_ONCONTENTS* = 0x04000000 - LVM_HITTEST* = LVM_FIRST+18 - LVM_ENSUREVISIBLE* = LVM_FIRST+19 - LVM_SCROLL* = LVM_FIRST+20 - LVM_REDRAWITEMS* = LVM_FIRST+21 + LVM_HITTEST* = LVM_FIRST + 18 + LVM_ENSUREVISIBLE* = LVM_FIRST + 19 + LVM_SCROLL* = LVM_FIRST + 20 + LVM_REDRAWITEMS* = LVM_FIRST + 21 LVA_DEFAULT* = 0x0 LVA_ALIGNLEFT* = 0x1 LVA_ALIGNTOP* = 0x2 LVA_SNAPTOGRID* = 0x5 - LVM_ARRANGE* = LVM_FIRST+22 - LVM_EDITLABELA* = LVM_FIRST+23 - LVM_EDITLABELW* = LVM_FIRST+118 - LVM_GETEDITCONTROL* = LVM_FIRST+24 + LVM_ARRANGE* = LVM_FIRST + 22 + LVM_EDITLABELA* = LVM_FIRST + 23 + LVM_EDITLABELW* = LVM_FIRST + 118 + LVM_GETEDITCONTROL* = LVM_FIRST + 24 LVCF_FMT* = 0x1 LVCF_WIDTH* = 0x2 LVCF_TEXT* = 0x4 @@ -2750,46 +2917,46 @@ LVCFMT_NO_TITLE* = 0x800000 LVCFMT_SPLITBUTTON* = 0x1000000 LVCFMT_TILE_PLACEMENTMASK* = LVCFMT_LINE_BREAK or LVCFMT_FILL - LVM_GETCOLUMNA* = LVM_FIRST+25 - LVM_GETCOLUMNW* = LVM_FIRST+95 - LVM_SETCOLUMNA* = LVM_FIRST+26 - LVM_SETCOLUMNW* = LVM_FIRST+96 - LVM_INSERTCOLUMNA* = LVM_FIRST+27 - LVM_INSERTCOLUMNW* = LVM_FIRST+97 - LVM_DELETECOLUMN* = LVM_FIRST+28 - LVM_GETCOLUMNWIDTH* = LVM_FIRST+29 + LVM_GETCOLUMNA* = LVM_FIRST + 25 + LVM_GETCOLUMNW* = LVM_FIRST + 95 + LVM_SETCOLUMNA* = LVM_FIRST + 26 + LVM_SETCOLUMNW* = LVM_FIRST + 96 + LVM_INSERTCOLUMNA* = LVM_FIRST + 27 + LVM_INSERTCOLUMNW* = LVM_FIRST + 97 + LVM_DELETECOLUMN* = LVM_FIRST + 28 + LVM_GETCOLUMNWIDTH* = LVM_FIRST + 29 LVSCW_AUTOSIZE* = -1 LVSCW_AUTOSIZE_USEHEADER* = -2 - LVM_SETCOLUMNWIDTH* = LVM_FIRST+30 - LVM_GETHEADER* = LVM_FIRST+31 - LVM_CREATEDRAGIMAGE* = LVM_FIRST+33 - LVM_GETVIEWRECT* = LVM_FIRST+34 - LVM_GETTEXTCOLOR* = LVM_FIRST+35 - LVM_SETTEXTCOLOR* = LVM_FIRST+36 - LVM_GETTEXTBKCOLOR* = LVM_FIRST+37 - LVM_SETTEXTBKCOLOR* = LVM_FIRST+38 - LVM_GETTOPINDEX* = LVM_FIRST+39 - LVM_GETCOUNTPERPAGE* = LVM_FIRST+40 - LVM_GETORIGIN* = LVM_FIRST+41 - LVM_UPDATE* = LVM_FIRST+42 - LVM_SETITEMSTATE* = LVM_FIRST+43 - LVM_GETITEMSTATE* = LVM_FIRST+44 - LVM_GETITEMTEXTA* = LVM_FIRST+45 - LVM_GETITEMTEXTW* = LVM_FIRST+115 - LVM_SETITEMTEXTA* = LVM_FIRST+46 - LVM_SETITEMTEXTW* = LVM_FIRST+116 + LVM_SETCOLUMNWIDTH* = LVM_FIRST + 30 + LVM_GETHEADER* = LVM_FIRST + 31 + LVM_CREATEDRAGIMAGE* = LVM_FIRST + 33 + LVM_GETVIEWRECT* = LVM_FIRST + 34 + LVM_GETTEXTCOLOR* = LVM_FIRST + 35 + LVM_SETTEXTCOLOR* = LVM_FIRST + 36 + LVM_GETTEXTBKCOLOR* = LVM_FIRST + 37 + LVM_SETTEXTBKCOLOR* = LVM_FIRST + 38 + LVM_GETTOPINDEX* = LVM_FIRST + 39 + LVM_GETCOUNTPERPAGE* = LVM_FIRST + 40 + LVM_GETORIGIN* = LVM_FIRST + 41 + LVM_UPDATE* = LVM_FIRST + 42 + LVM_SETITEMSTATE* = LVM_FIRST + 43 + LVM_GETITEMSTATE* = LVM_FIRST + 44 + LVM_GETITEMTEXTA* = LVM_FIRST + 45 + LVM_GETITEMTEXTW* = LVM_FIRST + 115 + LVM_SETITEMTEXTA* = LVM_FIRST + 46 + LVM_SETITEMTEXTW* = LVM_FIRST + 116 LVSICF_NOINVALIDATEALL* = 0x1 LVSICF_NOSCROLL* = 0x2 - LVM_SETITEMCOUNT* = LVM_FIRST+47 - LVM_SORTITEMS* = LVM_FIRST+48 - LVM_SETITEMPOSITION32* = LVM_FIRST+49 - LVM_GETSELECTEDCOUNT* = LVM_FIRST+50 - LVM_GETITEMSPACING* = LVM_FIRST+51 - LVM_GETISEARCHSTRINGA* = LVM_FIRST+52 - LVM_GETISEARCHSTRINGW* = LVM_FIRST+117 - LVM_SETICONSPACING* = LVM_FIRST+53 - LVM_SETEXTENDEDLISTVIEWSTYLE* = LVM_FIRST+54 - LVM_GETEXTENDEDLISTVIEWSTYLE* = LVM_FIRST+55 + LVM_SETITEMCOUNT* = LVM_FIRST + 47 + LVM_SORTITEMS* = LVM_FIRST + 48 + LVM_SETITEMPOSITION32* = LVM_FIRST + 49 + LVM_GETSELECTEDCOUNT* = LVM_FIRST + 50 + LVM_GETITEMSPACING* = LVM_FIRST + 51 + LVM_GETISEARCHSTRINGA* = LVM_FIRST + 52 + LVM_GETISEARCHSTRINGW* = LVM_FIRST + 117 + LVM_SETICONSPACING* = LVM_FIRST + 53 + LVM_SETEXTENDEDLISTVIEWSTYLE* = LVM_FIRST + 54 + LVM_GETEXTENDEDLISTVIEWSTYLE* = LVM_FIRST + 55 LVS_EX_GRIDLINES* = 0x1 LVS_EX_SUBITEMIMAGES* = 0x2 LVS_EX_CHECKBOXES* = 0x4 @@ -2820,26 +2987,26 @@ LVS_EX_AUTOSIZECOLUMNS* = 0x10000000 LVS_EX_COLUMNSNAPPOINTS* = 0x40000000 LVS_EX_COLUMNOVERFLOW* = 0x80000000'i32 - LVM_GETSUBITEMRECT* = LVM_FIRST+56 - LVM_SUBITEMHITTEST* = LVM_FIRST+57 - LVM_SETCOLUMNORDERARRAY* = LVM_FIRST+58 - LVM_GETCOLUMNORDERARRAY* = LVM_FIRST+59 - LVM_SETHOTITEM* = LVM_FIRST+60 - LVM_GETHOTITEM* = LVM_FIRST+61 - LVM_SETHOTCURSOR* = LVM_FIRST+62 - LVM_GETHOTCURSOR* = LVM_FIRST+63 - LVM_APPROXIMATEVIEWRECT* = LVM_FIRST+64 + LVM_GETSUBITEMRECT* = LVM_FIRST + 56 + LVM_SUBITEMHITTEST* = LVM_FIRST + 57 + LVM_SETCOLUMNORDERARRAY* = LVM_FIRST + 58 + LVM_GETCOLUMNORDERARRAY* = LVM_FIRST + 59 + LVM_SETHOTITEM* = LVM_FIRST + 60 + LVM_GETHOTITEM* = LVM_FIRST + 61 + LVM_SETHOTCURSOR* = LVM_FIRST + 62 + LVM_GETHOTCURSOR* = LVM_FIRST + 63 + LVM_APPROXIMATEVIEWRECT* = LVM_FIRST + 64 LV_MAX_WORKAREAS* = 16 - LVM_SETWORKAREAS* = LVM_FIRST+65 - LVM_GETWORKAREAS* = LVM_FIRST+70 - LVM_GETNUMBEROFWORKAREAS* = LVM_FIRST+73 - LVM_GETSELECTIONMARK* = LVM_FIRST+66 - LVM_SETSELECTIONMARK* = LVM_FIRST+67 - LVM_SETHOVERTIME* = LVM_FIRST+71 - LVM_GETHOVERTIME* = LVM_FIRST+72 - LVM_SETTOOLTIPS* = LVM_FIRST+74 - LVM_GETTOOLTIPS* = LVM_FIRST+78 - LVM_SORTITEMSEX* = LVM_FIRST+81 + LVM_SETWORKAREAS* = LVM_FIRST + 65 + LVM_GETWORKAREAS* = LVM_FIRST + 70 + LVM_GETNUMBEROFWORKAREAS* = LVM_FIRST + 73 + LVM_GETSELECTIONMARK* = LVM_FIRST + 66 + LVM_SETSELECTIONMARK* = LVM_FIRST + 67 + LVM_SETHOVERTIME* = LVM_FIRST + 71 + LVM_GETHOVERTIME* = LVM_FIRST + 72 + LVM_SETTOOLTIPS* = LVM_FIRST + 74 + LVM_GETTOOLTIPS* = LVM_FIRST + 78 + LVM_SORTITEMSEX* = LVM_FIRST + 81 LVBKIF_SOURCE_NONE* = 0x0 LVBKIF_SOURCE_HBITMAP* = 0x1 LVBKIF_SOURCE_URL* = 0x2 @@ -2850,20 +3017,20 @@ LVBKIF_FLAG_TILEOFFSET* = 0x100 LVBKIF_TYPE_WATERMARK* = 0x10000000 LVBKIF_FLAG_ALPHABLEND* = 0x20000000 - LVM_SETBKIMAGEA* = LVM_FIRST+68 - LVM_SETBKIMAGEW* = LVM_FIRST+138 - LVM_GETBKIMAGEA* = LVM_FIRST+69 - LVM_GETBKIMAGEW* = LVM_FIRST+139 - LVM_SETSELECTEDCOLUMN* = LVM_FIRST+140 - LVM_SETTILEWIDTH* = LVM_FIRST+141 + LVM_SETBKIMAGEA* = LVM_FIRST + 68 + LVM_SETBKIMAGEW* = LVM_FIRST + 138 + LVM_GETBKIMAGEA* = LVM_FIRST + 69 + LVM_GETBKIMAGEW* = LVM_FIRST + 139 + LVM_SETSELECTEDCOLUMN* = LVM_FIRST + 140 + LVM_SETTILEWIDTH* = LVM_FIRST + 141 LV_VIEW_ICON* = 0x0 LV_VIEW_DETAILS* = 0x1 LV_VIEW_SMALLICON* = 0x2 LV_VIEW_LIST* = 0x3 LV_VIEW_TILE* = 0x4 LV_VIEW_MAX* = 0x4 - LVM_SETVIEW* = LVM_FIRST+142 - LVM_GETVIEW* = LVM_FIRST+143 + LVM_SETVIEW* = LVM_FIRST + 142 + LVM_GETVIEW* = LVM_FIRST + 143 LVGF_NONE* = 0x0 LVGF_HEADER* = 0x1 LVGF_FOOTER* = 0x2 @@ -2894,32 +3061,32 @@ LVGA_FOOTER_LEFT* = 0x8 LVGA_FOOTER_CENTER* = 0x10 LVGA_FOOTER_RIGHT* = 0x20 - LVM_INSERTGROUP* = LVM_FIRST+145 - LVM_SETGROUPINFO* = LVM_FIRST+147 - LVM_GETGROUPINFO* = LVM_FIRST+149 - LVM_REMOVEGROUP* = LVM_FIRST+150 - LVM_MOVEGROUP* = LVM_FIRST+151 - LVM_GETGROUPCOUNT* = LVM_FIRST+152 - LVM_GETGROUPINFOBYINDEX* = LVM_FIRST+153 - LVM_MOVEITEMTOGROUP* = LVM_FIRST+154 + LVM_INSERTGROUP* = LVM_FIRST + 145 + LVM_SETGROUPINFO* = LVM_FIRST + 147 + LVM_GETGROUPINFO* = LVM_FIRST + 149 + LVM_REMOVEGROUP* = LVM_FIRST + 150 + LVM_MOVEGROUP* = LVM_FIRST + 151 + LVM_GETGROUPCOUNT* = LVM_FIRST + 152 + LVM_GETGROUPINFOBYINDEX* = LVM_FIRST + 153 + LVM_MOVEITEMTOGROUP* = LVM_FIRST + 154 LVGGR_GROUP* = 0 LVGGR_HEADER* = 1 LVGGR_LABEL* = 2 LVGGR_SUBSETLINK* = 3 - LVM_GETGROUPRECT* = LVM_FIRST+98 + LVM_GETGROUPRECT* = LVM_FIRST + 98 LVGMF_NONE* = 0x0 LVGMF_BORDERSIZE* = 0x1 LVGMF_BORDERCOLOR* = 0x2 LVGMF_TEXTCOLOR* = 0x4 - LVM_SETGROUPMETRICS* = LVM_FIRST+155 - LVM_GETGROUPMETRICS* = LVM_FIRST+156 - LVM_ENABLEGROUPVIEW* = LVM_FIRST+157 - LVM_SORTGROUPS* = LVM_FIRST+158 - LVM_INSERTGROUPSORTED* = LVM_FIRST+159 - LVM_REMOVEALLGROUPS* = LVM_FIRST+160 - LVM_HASGROUP* = LVM_FIRST+161 - LVM_GETGROUPSTATE* = LVM_FIRST+92 - LVM_GETFOCUSEDGROUP* = LVM_FIRST+93 + LVM_SETGROUPMETRICS* = LVM_FIRST + 155 + LVM_GETGROUPMETRICS* = LVM_FIRST + 156 + LVM_ENABLEGROUPVIEW* = LVM_FIRST + 157 + LVM_SORTGROUPS* = LVM_FIRST + 158 + LVM_INSERTGROUPSORTED* = LVM_FIRST + 159 + LVM_REMOVEALLGROUPS* = LVM_FIRST + 160 + LVM_HASGROUP* = LVM_FIRST + 161 + LVM_GETGROUPSTATE* = LVM_FIRST + 92 + LVM_GETFOCUSEDGROUP* = LVM_FIRST + 93 LVTVIF_AUTOSIZE* = 0x0 LVTVIF_FIXEDWIDTH* = 0x1 LVTVIF_FIXEDHEIGHT* = 0x2 @@ -2928,38 +3095,38 @@ LVTVIM_TILESIZE* = 0x1 LVTVIM_COLUMNS* = 0x2 LVTVIM_LABELMARGIN* = 0x4 - LVM_SETTILEVIEWINFO* = LVM_FIRST+162 - LVM_GETTILEVIEWINFO* = LVM_FIRST+163 - LVM_SETTILEINFO* = LVM_FIRST+164 - LVM_GETTILEINFO* = LVM_FIRST+165 + LVM_SETTILEVIEWINFO* = LVM_FIRST + 162 + LVM_GETTILEVIEWINFO* = LVM_FIRST + 163 + LVM_SETTILEINFO* = LVM_FIRST + 164 + LVM_GETTILEINFO* = LVM_FIRST + 165 LVIM_AFTER* = 0x1 - LVM_SETINSERTMARK* = LVM_FIRST+166 - LVM_GETINSERTMARK* = LVM_FIRST+167 - LVM_INSERTMARKHITTEST* = LVM_FIRST+168 - LVM_GETINSERTMARKRECT* = LVM_FIRST+169 - LVM_SETINSERTMARKCOLOR* = LVM_FIRST+170 - LVM_GETINSERTMARKCOLOR* = LVM_FIRST+171 - LVM_SETINFOTIP* = LVM_FIRST+173 - LVM_GETSELECTEDCOLUMN* = LVM_FIRST+174 - LVM_ISGROUPVIEWENABLED* = LVM_FIRST+175 - LVM_GETOUTLINECOLOR* = LVM_FIRST+176 - LVM_SETOUTLINECOLOR* = LVM_FIRST+177 - LVM_CANCELEDITLABEL* = LVM_FIRST+179 - LVM_MAPINDEXTOID* = LVM_FIRST+180 - LVM_MAPIDTOINDEX* = LVM_FIRST+181 - LVM_ISITEMVISIBLE* = LVM_FIRST+182 - LVM_GETEMPTYTEXT* = LVM_FIRST+204 - LVM_GETFOOTERRECT* = LVM_FIRST+205 + LVM_SETINSERTMARK* = LVM_FIRST + 166 + LVM_GETINSERTMARK* = LVM_FIRST + 167 + LVM_INSERTMARKHITTEST* = LVM_FIRST + 168 + LVM_GETINSERTMARKRECT* = LVM_FIRST + 169 + LVM_SETINSERTMARKCOLOR* = LVM_FIRST + 170 + LVM_GETINSERTMARKCOLOR* = LVM_FIRST + 171 + LVM_SETINFOTIP* = LVM_FIRST + 173 + LVM_GETSELECTEDCOLUMN* = LVM_FIRST + 174 + LVM_ISGROUPVIEWENABLED* = LVM_FIRST + 175 + LVM_GETOUTLINECOLOR* = LVM_FIRST + 176 + LVM_SETOUTLINECOLOR* = LVM_FIRST + 177 + LVM_CANCELEDITLABEL* = LVM_FIRST + 179 + LVM_MAPINDEXTOID* = LVM_FIRST + 180 + LVM_MAPIDTOINDEX* = LVM_FIRST + 181 + LVM_ISITEMVISIBLE* = LVM_FIRST + 182 + LVM_GETEMPTYTEXT* = LVM_FIRST + 204 + LVM_GETFOOTERRECT* = LVM_FIRST + 205 LVFF_ITEMCOUNT* = 0x1 - LVM_GETFOOTERINFO* = LVM_FIRST+206 - LVM_GETFOOTERITEMRECT* = LVM_FIRST+207 + LVM_GETFOOTERINFO* = LVM_FIRST + 206 + LVM_GETFOOTERITEMRECT* = LVM_FIRST + 207 LVFIF_TEXT* = 0x1 LVFIF_STATE* = 0x2 LVFIS_FOCUSED* = 0x1 - LVM_GETFOOTERITEM* = LVM_FIRST+208 - LVM_GETITEMINDEXRECT* = LVM_FIRST+209 - LVM_SETITEMINDEXSTATE* = LVM_FIRST+210 - LVM_GETNEXTITEMINDEX* = LVM_FIRST+211 + LVM_GETFOOTERITEM* = LVM_FIRST + 208 + LVM_GETITEMINDEXRECT* = LVM_FIRST + 209 + LVM_SETITEMINDEXSTATE* = LVM_FIRST + 210 + LVM_GETNEXTITEMINDEX* = LVM_FIRST + 211 LVKF_ALT* = 0x1 LVKF_CONTROL* = 0x2 LVKF_SHIFT* = 0x4 @@ -2968,46 +3135,46 @@ LVCDI_ITEMSLIST* = 0x2 LVCDRF_NOSELECT* = 0x10000 LVCDRF_NOGROUPFRAME* = 0x20000 - LVN_ITEMCHANGING* = LVN_FIRST-0 - LVN_ITEMCHANGED* = LVN_FIRST-1 - LVN_INSERTITEM* = LVN_FIRST-2 - LVN_DELETEITEM* = LVN_FIRST-3 - LVN_DELETEALLITEMS* = LVN_FIRST-4 - LVN_BEGINLABELEDITA* = LVN_FIRST-5 - LVN_BEGINLABELEDITW* = LVN_FIRST-75 - LVN_ENDLABELEDITA* = LVN_FIRST-6 - LVN_ENDLABELEDITW* = LVN_FIRST-76 - LVN_COLUMNCLICK* = LVN_FIRST-8 - LVN_BEGINDRAG* = LVN_FIRST-9 - LVN_BEGINRDRAG* = LVN_FIRST-11 - LVN_ODCACHEHINT* = LVN_FIRST-13 - LVN_ODFINDITEMA* = LVN_FIRST-52 - LVN_ODFINDITEMW* = LVN_FIRST-79 - LVN_ITEMACTIVATE* = LVN_FIRST-14 - LVN_ODSTATECHANGED* = LVN_FIRST-15 - LVN_HOTTRACK* = LVN_FIRST-21 - LVN_GETDISPINFOA* = LVN_FIRST-50 - LVN_GETDISPINFOW* = LVN_FIRST-77 - LVN_SETDISPINFOA* = LVN_FIRST-51 - LVN_SETDISPINFOW* = LVN_FIRST-78 + LVN_ITEMCHANGING* = LVN_FIRST - 0 + LVN_ITEMCHANGED* = LVN_FIRST - 1 + LVN_INSERTITEM* = LVN_FIRST - 2 + LVN_DELETEITEM* = LVN_FIRST - 3 + LVN_DELETEALLITEMS* = LVN_FIRST - 4 + LVN_BEGINLABELEDITA* = LVN_FIRST - 5 + LVN_BEGINLABELEDITW* = LVN_FIRST - 75 + LVN_ENDLABELEDITA* = LVN_FIRST - 6 + LVN_ENDLABELEDITW* = LVN_FIRST - 76 + LVN_COLUMNCLICK* = LVN_FIRST - 8 + LVN_BEGINDRAG* = LVN_FIRST - 9 + LVN_BEGINRDRAG* = LVN_FIRST - 11 + LVN_ODCACHEHINT* = LVN_FIRST - 13 + LVN_ODFINDITEMA* = LVN_FIRST - 52 + LVN_ODFINDITEMW* = LVN_FIRST - 79 + LVN_ITEMACTIVATE* = LVN_FIRST - 14 + LVN_ODSTATECHANGED* = LVN_FIRST - 15 + LVN_HOTTRACK* = LVN_FIRST - 21 + LVN_GETDISPINFOA* = LVN_FIRST - 50 + LVN_GETDISPINFOW* = LVN_FIRST - 77 + LVN_SETDISPINFOA* = LVN_FIRST - 51 + LVN_SETDISPINFOW* = LVN_FIRST - 78 LVIF_DI_SETITEM* = 0x1000 - LVN_KEYDOWN* = LVN_FIRST-55 - LVN_MARQUEEBEGIN* = LVN_FIRST-56 + LVN_KEYDOWN* = LVN_FIRST - 55 + LVN_MARQUEEBEGIN* = LVN_FIRST - 56 LVGIT_UNFOLDED* = 0x1 - LVN_GETINFOTIPA* = LVN_FIRST-57 - LVN_GETINFOTIPW* = LVN_FIRST-58 + LVN_GETINFOTIPA* = LVN_FIRST - 57 + LVN_GETINFOTIPW* = LVN_FIRST - 58 LVNSCH_DEFAULT* = -1 LVNSCH_ERROR* = -2 LVNSCH_IGNORE* = -3 - LVN_INCREMENTALSEARCHA* = LVN_FIRST-62 - LVN_INCREMENTALSEARCHW* = LVN_FIRST-63 - LVN_COLUMNDROPDOWN* = LVN_FIRST-64 - LVN_COLUMNOVERFLOWCLICK* = LVN_FIRST-66 - LVN_BEGINSCROLL* = LVN_FIRST-80 - LVN_ENDSCROLL* = LVN_FIRST-81 - LVN_LINKCLICK* = LVN_FIRST-84 + LVN_INCREMENTALSEARCHA* = LVN_FIRST - 62 + LVN_INCREMENTALSEARCHW* = LVN_FIRST - 63 + LVN_COLUMNDROPDOWN* = LVN_FIRST - 64 + LVN_COLUMNOVERFLOWCLICK* = LVN_FIRST - 66 + LVN_BEGINSCROLL* = LVN_FIRST - 80 + LVN_ENDSCROLL* = LVN_FIRST - 81 + LVN_LINKCLICK* = LVN_FIRST - 84 EMF_CENTERED* = 0x1 - LVN_GETEMPTYMARKUP* = LVN_FIRST-87 + LVN_GETEMPTYMARKUP* = LVN_FIRST - 87 WC_TREEVIEWA* = "SysTreeView32" WC_TREEVIEWW* = "SysTreeView32" TVS_HASBUTTONS* = 0x1 @@ -3062,24 +3229,24 @@ TVIS_EX_ALL* = 0x0002 I_CHILDRENCALLBACK* = -1 I_CHILDRENAUTO* = -2 - TVM_INSERTITEMA* = TV_FIRST+0 - TVM_INSERTITEMW* = TV_FIRST+50 - TVM_DELETEITEM* = TV_FIRST+1 - TVM_EXPAND* = TV_FIRST+2 + TVM_INSERTITEMA* = TV_FIRST + 0 + TVM_INSERTITEMW* = TV_FIRST + 50 + TVM_DELETEITEM* = TV_FIRST + 1 + TVM_EXPAND* = TV_FIRST + 2 TVE_COLLAPSE* = 0x1 TVE_EXPAND* = 0x2 TVE_TOGGLE* = 0x3 TVE_EXPANDPARTIAL* = 0x4000 TVE_COLLAPSERESET* = 0x8000 - TVM_GETITEMRECT* = TV_FIRST+4 - TVM_GETCOUNT* = TV_FIRST+5 - TVM_GETINDENT* = TV_FIRST+6 - TVM_SETINDENT* = TV_FIRST+7 - TVM_GETIMAGELIST* = TV_FIRST+8 + TVM_GETITEMRECT* = TV_FIRST + 4 + TVM_GETCOUNT* = TV_FIRST + 5 + TVM_GETINDENT* = TV_FIRST + 6 + TVM_SETINDENT* = TV_FIRST + 7 + TVM_GETIMAGELIST* = TV_FIRST + 8 TVSIL_NORMAL* = 0 TVSIL_STATE* = 2 - TVM_SETIMAGELIST* = TV_FIRST+9 - TVM_GETNEXTITEM* = TV_FIRST+10 + TVM_SETIMAGELIST* = TV_FIRST + 9 + TVM_GETNEXTITEM* = TV_FIRST + 10 TVGN_ROOT* = 0x0 TVGN_NEXT* = 0x1 TVGN_PREVIOUS* = 0x2 @@ -3093,16 +3260,16 @@ TVGN_LASTVISIBLE* = 0xa TVGN_NEXTSELECTED* = 0xb TVSI_NOSINGLEEXPAND* = 0x8000 - TVM_SELECTITEM* = TV_FIRST+11 - TVM_GETITEMA* = TV_FIRST+12 - TVM_GETITEMW* = TV_FIRST+62 - TVM_SETITEMA* = TV_FIRST+13 - TVM_SETITEMW* = TV_FIRST+63 - TVM_EDITLABELA* = TV_FIRST+14 - TVM_EDITLABELW* = TV_FIRST+65 - TVM_GETEDITCONTROL* = TV_FIRST+15 - TVM_GETVISIBLECOUNT* = TV_FIRST+16 - TVM_HITTEST* = TV_FIRST+17 + TVM_SELECTITEM* = TV_FIRST + 11 + TVM_GETITEMA* = TV_FIRST + 12 + TVM_GETITEMW* = TV_FIRST + 62 + TVM_SETITEMA* = TV_FIRST + 13 + TVM_SETITEMW* = TV_FIRST + 63 + TVM_EDITLABELA* = TV_FIRST + 14 + TVM_EDITLABELW* = TV_FIRST + 65 + TVM_GETEDITCONTROL* = TV_FIRST + 15 + TVM_GETVISIBLECOUNT* = TV_FIRST + 16 + TVM_HITTEST* = TV_FIRST + 17 TVHT_NOWHERE* = 0x1 TVHT_ONITEMICON* = 0x2 TVHT_ONITEMLABEL* = 0x4 @@ -3115,82 +3282,82 @@ TVHT_BELOW* = 0x200 TVHT_TORIGHT* = 0x400 TVHT_TOLEFT* = 0x800 - TVM_CREATEDRAGIMAGE* = TV_FIRST+18 - TVM_SORTCHILDREN* = TV_FIRST+19 - TVM_ENSUREVISIBLE* = TV_FIRST+20 - TVM_SORTCHILDRENCB* = TV_FIRST+21 - TVM_ENDEDITLABELNOW* = TV_FIRST+22 - TVM_GETISEARCHSTRINGA* = TV_FIRST+23 - TVM_GETISEARCHSTRINGW* = TV_FIRST+64 - TVM_SETTOOLTIPS* = TV_FIRST+24 - TVM_GETTOOLTIPS* = TV_FIRST+25 - TVM_SETINSERTMARK* = TV_FIRST+26 + TVM_CREATEDRAGIMAGE* = TV_FIRST + 18 + TVM_SORTCHILDREN* = TV_FIRST + 19 + TVM_ENSUREVISIBLE* = TV_FIRST + 20 + TVM_SORTCHILDRENCB* = TV_FIRST + 21 + TVM_ENDEDITLABELNOW* = TV_FIRST + 22 + TVM_GETISEARCHSTRINGA* = TV_FIRST + 23 + TVM_GETISEARCHSTRINGW* = TV_FIRST + 64 + TVM_SETTOOLTIPS* = TV_FIRST + 24 + TVM_GETTOOLTIPS* = TV_FIRST + 25 + TVM_SETINSERTMARK* = TV_FIRST + 26 TVM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT TVM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - TVM_SETITEMHEIGHT* = TV_FIRST+27 - TVM_GETITEMHEIGHT* = TV_FIRST+28 - TVM_SETBKCOLOR* = TV_FIRST+29 - TVM_SETTEXTCOLOR* = TV_FIRST+30 - TVM_GETBKCOLOR* = TV_FIRST+31 - TVM_GETTEXTCOLOR* = TV_FIRST+32 - TVM_SETSCROLLTIME* = TV_FIRST+33 - TVM_GETSCROLLTIME* = TV_FIRST+34 - TVM_SETBORDER* = TV_FIRST+35 + TVM_SETITEMHEIGHT* = TV_FIRST + 27 + TVM_GETITEMHEIGHT* = TV_FIRST + 28 + TVM_SETBKCOLOR* = TV_FIRST + 29 + TVM_SETTEXTCOLOR* = TV_FIRST + 30 + TVM_GETBKCOLOR* = TV_FIRST + 31 + TVM_GETTEXTCOLOR* = TV_FIRST + 32 + TVM_SETSCROLLTIME* = TV_FIRST + 33 + TVM_GETSCROLLTIME* = TV_FIRST + 34 + TVM_SETBORDER* = TV_FIRST + 35 TVSBF_XBORDER* = 0x1 TVSBF_YBORDER* = 0x2 - TVM_SETINSERTMARKCOLOR* = TV_FIRST+37 - TVM_GETINSERTMARKCOLOR* = TV_FIRST+38 - TVM_GETITEMSTATE* = TV_FIRST+39 - TVM_SETLINECOLOR* = TV_FIRST+40 - TVM_GETLINECOLOR* = TV_FIRST+41 - TVM_MAPACCIDTOHTREEITEM* = TV_FIRST+42 - TVM_MAPHTREEITEMTOACCID* = TV_FIRST+43 - TVM_SETEXTENDEDSTYLE* = TV_FIRST+44 - TVM_GETEXTENDEDSTYLE* = TV_FIRST+45 - TVM_SETHOT* = TV_FIRST+58 - TVM_SETAUTOSCROLLINFO* = TV_FIRST+59 - TVM_GETSELECTEDCOUNT* = TV_FIRST+70 - TVM_SHOWINFOTIP* = TV_FIRST+71 + TVM_SETINSERTMARKCOLOR* = TV_FIRST + 37 + TVM_GETINSERTMARKCOLOR* = TV_FIRST + 38 + TVM_GETITEMSTATE* = TV_FIRST + 39 + TVM_SETLINECOLOR* = TV_FIRST + 40 + TVM_GETLINECOLOR* = TV_FIRST + 41 + TVM_MAPACCIDTOHTREEITEM* = TV_FIRST + 42 + TVM_MAPHTREEITEMTOACCID* = TV_FIRST + 43 + TVM_SETEXTENDEDSTYLE* = TV_FIRST + 44 + TVM_GETEXTENDEDSTYLE* = TV_FIRST + 45 + TVM_SETHOT* = TV_FIRST + 58 + TVM_SETAUTOSCROLLINFO* = TV_FIRST + 59 + TVM_GETSELECTEDCOUNT* = TV_FIRST + 70 + TVM_SHOWINFOTIP* = TV_FIRST + 71 TVGIPR_BUTTON* = 0x0001 - TVM_GETITEMPARTRECT* = TV_FIRST+72 - TVN_SELCHANGINGA* = TVN_FIRST-1 - TVN_SELCHANGINGW* = TVN_FIRST-50 - TVN_SELCHANGEDA* = TVN_FIRST-2 - TVN_SELCHANGEDW* = TVN_FIRST-51 + TVM_GETITEMPARTRECT* = TV_FIRST + 72 + TVN_SELCHANGINGA* = TVN_FIRST - 1 + TVN_SELCHANGINGW* = TVN_FIRST - 50 + TVN_SELCHANGEDA* = TVN_FIRST - 2 + TVN_SELCHANGEDW* = TVN_FIRST - 51 TVC_UNKNOWN* = 0x0 TVC_BYMOUSE* = 0x1 TVC_BYKEYBOARD* = 0x2 - TVN_GETDISPINFOA* = TVN_FIRST-3 - TVN_GETDISPINFOW* = TVN_FIRST-52 - TVN_SETDISPINFOA* = TVN_FIRST-4 - TVN_SETDISPINFOW* = TVN_FIRST-53 + TVN_GETDISPINFOA* = TVN_FIRST - 3 + TVN_GETDISPINFOW* = TVN_FIRST - 52 + TVN_SETDISPINFOA* = TVN_FIRST - 4 + TVN_SETDISPINFOW* = TVN_FIRST - 53 TVIF_DI_SETITEM* = 0x1000 - TVN_ITEMEXPANDINGA* = TVN_FIRST-5 - TVN_ITEMEXPANDINGW* = TVN_FIRST-54 - TVN_ITEMEXPANDEDA* = TVN_FIRST-6 - TVN_ITEMEXPANDEDW* = TVN_FIRST-55 - TVN_BEGINDRAGA* = TVN_FIRST-7 - TVN_BEGINDRAGW* = TVN_FIRST-56 - TVN_BEGINRDRAGA* = TVN_FIRST-8 - TVN_BEGINRDRAGW* = TVN_FIRST-57 - TVN_DELETEITEMA* = TVN_FIRST-9 - TVN_DELETEITEMW* = TVN_FIRST-58 - TVN_BEGINLABELEDITA* = TVN_FIRST-10 - TVN_BEGINLABELEDITW* = TVN_FIRST-59 - TVN_ENDLABELEDITA* = TVN_FIRST-11 - TVN_ENDLABELEDITW* = TVN_FIRST-60 - TVN_KEYDOWN* = TVN_FIRST-12 - TVN_GETINFOTIPA* = TVN_FIRST-13 - TVN_GETINFOTIPW* = TVN_FIRST-14 - TVN_SINGLEEXPAND* = TVN_FIRST-15 + TVN_ITEMEXPANDINGA* = TVN_FIRST - 5 + TVN_ITEMEXPANDINGW* = TVN_FIRST - 54 + TVN_ITEMEXPANDEDA* = TVN_FIRST - 6 + TVN_ITEMEXPANDEDW* = TVN_FIRST - 55 + TVN_BEGINDRAGA* = TVN_FIRST - 7 + TVN_BEGINDRAGW* = TVN_FIRST - 56 + TVN_BEGINRDRAGA* = TVN_FIRST - 8 + TVN_BEGINRDRAGW* = TVN_FIRST - 57 + TVN_DELETEITEMA* = TVN_FIRST - 9 + TVN_DELETEITEMW* = TVN_FIRST - 58 + TVN_BEGINLABELEDITA* = TVN_FIRST - 10 + TVN_BEGINLABELEDITW* = TVN_FIRST - 59 + TVN_ENDLABELEDITA* = TVN_FIRST - 11 + TVN_ENDLABELEDITW* = TVN_FIRST - 60 + TVN_KEYDOWN* = TVN_FIRST - 12 + TVN_GETINFOTIPA* = TVN_FIRST - 13 + TVN_GETINFOTIPW* = TVN_FIRST - 14 + TVN_SINGLEEXPAND* = TVN_FIRST - 15 TVNRET_DEFAULT* = 0 TVNRET_SKIPOLD* = 1 TVNRET_SKIPNEW* = 2 - TVN_ITEMCHANGINGA* = TVN_FIRST-16 - TVN_ITEMCHANGINGW* = TVN_FIRST-17 - TVN_ITEMCHANGEDA* = TVN_FIRST-18 - TVN_ITEMCHANGEDW* = TVN_FIRST-19 - TVN_ASYNCDRAW* = TVN_FIRST-20 + TVN_ITEMCHANGINGA* = TVN_FIRST - 16 + TVN_ITEMCHANGINGW* = TVN_FIRST - 17 + TVN_ITEMCHANGEDA* = TVN_FIRST - 18 + TVN_ITEMCHANGEDW* = TVN_FIRST - 19 + TVN_ASYNCDRAW* = TVN_FIRST - 20 TVCDRF_NOIMAGES* = 0x10000 WC_COMBOBOXEXW* = "ComboBoxEx32" WC_COMBOBOXEXA* = "ComboBoxEx32" @@ -3201,24 +3368,24 @@ CBEIF_INDENT* = 0x10 CBEIF_LPARAM* = 0x20 CBEIF_DI_SETITEM* = 0x10000000 - CBEM_INSERTITEMA* = WM_USER+1 - CBEM_SETIMAGELIST* = WM_USER+2 - CBEM_GETIMAGELIST* = WM_USER+3 - CBEM_GETITEMA* = WM_USER+4 - CBEM_SETITEMA* = WM_USER+5 + CBEM_INSERTITEMA* = WM_USER + 1 + CBEM_SETIMAGELIST* = WM_USER + 2 + CBEM_GETIMAGELIST* = WM_USER + 3 + CBEM_GETITEMA* = WM_USER + 4 + CBEM_SETITEMA* = WM_USER + 5 CBEM_DELETEITEM* = CB_DELETESTRING - CBEM_GETCOMBOCONTROL* = WM_USER+6 - CBEM_GETEDITCONTROL* = WM_USER+7 - CBEM_SETEXSTYLE* = WM_USER+8 - CBEM_SETEXTENDEDSTYLE* = WM_USER+14 - CBEM_GETEXSTYLE* = WM_USER+9 - CBEM_GETEXTENDEDSTYLE* = WM_USER+9 + CBEM_GETCOMBOCONTROL* = WM_USER + 6 + CBEM_GETEDITCONTROL* = WM_USER + 7 + CBEM_SETEXSTYLE* = WM_USER + 8 + CBEM_SETEXTENDEDSTYLE* = WM_USER + 14 + CBEM_GETEXSTYLE* = WM_USER + 9 + CBEM_GETEXTENDEDSTYLE* = WM_USER + 9 CBEM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT CBEM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - CBEM_HASEDITCHANGED* = WM_USER+10 - CBEM_INSERTITEMW* = WM_USER+11 - CBEM_SETITEMW* = WM_USER+12 - CBEM_GETITEMW* = WM_USER+13 + CBEM_HASEDITCHANGED* = WM_USER + 10 + CBEM_INSERTITEMW* = WM_USER + 11 + CBEM_SETITEMW* = WM_USER + 12 + CBEM_GETITEMW* = WM_USER + 13 CBEM_SETWINDOWTHEME* = CCM_SETWINDOWTHEME CBES_EX_NOEDITIMAGE* = 0x1 CBES_EX_NOEDITIMAGEINDENT* = 0x2 @@ -3226,15 +3393,15 @@ CBES_EX_NOSIZELIMIT* = 0x8 CBES_EX_CASESENSITIVE* = 0x10 CBES_EX_TEXTENDELLIPSIS* = 0x00000020 - CBEN_GETDISPINFOA* = CBEN_FIRST-0 - CBEN_INSERTITEM* = CBEN_FIRST-1 - CBEN_DELETEITEM* = CBEN_FIRST-2 - CBEN_BEGINEDIT* = CBEN_FIRST-4 - CBEN_ENDEDITA* = CBEN_FIRST-5 - CBEN_ENDEDITW* = CBEN_FIRST-6 - CBEN_GETDISPINFOW* = CBEN_FIRST-7 - CBEN_DRAGBEGINA* = CBEN_FIRST-8 - CBEN_DRAGBEGINW* = CBEN_FIRST-9 + CBEN_GETDISPINFOA* = CBEN_FIRST - 0 + CBEN_INSERTITEM* = CBEN_FIRST - 1 + CBEN_DELETEITEM* = CBEN_FIRST - 2 + CBEN_BEGINEDIT* = CBEN_FIRST - 4 + CBEN_ENDEDITA* = CBEN_FIRST - 5 + CBEN_ENDEDITW* = CBEN_FIRST - 6 + CBEN_GETDISPINFOW* = CBEN_FIRST - 7 + CBEN_DRAGBEGINA* = CBEN_FIRST - 8 + CBEN_DRAGBEGINW* = CBEN_FIRST - 9 CBENF_KILLFOCUS* = 1 CBENF_RETURN* = 2 CBENF_ESCAPE* = 3 @@ -3263,9 +3430,9 @@ TCS_FOCUSNEVER* = 0x8000 TCS_EX_FLATSEPARATORS* = 0x1 TCS_EX_REGISTERDROP* = 0x2 - TCM_GETIMAGELIST* = TCM_FIRST+2 - TCM_SETIMAGELIST* = TCM_FIRST+3 - TCM_GETITEMCOUNT* = TCM_FIRST+4 + TCM_GETIMAGELIST* = TCM_FIRST + 2 + TCM_SETIMAGELIST* = TCM_FIRST + 3 + TCM_GETITEMCOUNT* = TCM_FIRST + 4 TCIF_TEXT* = 0x1 TCIF_IMAGE* = 0x2 TCIF_RTLREADING* = 0x4 @@ -3273,80 +3440,80 @@ TCIF_STATE* = 0x10 TCIS_BUTTONPRESSED* = 0x1 TCIS_HIGHLIGHTED* = 0x2 - TCM_GETITEMA* = TCM_FIRST+5 - TCM_GETITEMW* = TCM_FIRST+60 - TCM_SETITEMA* = TCM_FIRST+6 - TCM_SETITEMW* = TCM_FIRST+61 - TCM_INSERTITEMA* = TCM_FIRST+7 - TCM_INSERTITEMW* = TCM_FIRST+62 - TCM_DELETEITEM* = TCM_FIRST+8 - TCM_DELETEALLITEMS* = TCM_FIRST+9 - TCM_GETITEMRECT* = TCM_FIRST+10 - TCM_GETCURSEL* = TCM_FIRST+11 - TCM_SETCURSEL* = TCM_FIRST+12 + TCM_GETITEMA* = TCM_FIRST + 5 + TCM_GETITEMW* = TCM_FIRST + 60 + TCM_SETITEMA* = TCM_FIRST + 6 + TCM_SETITEMW* = TCM_FIRST + 61 + TCM_INSERTITEMA* = TCM_FIRST + 7 + TCM_INSERTITEMW* = TCM_FIRST + 62 + TCM_DELETEITEM* = TCM_FIRST + 8 + TCM_DELETEALLITEMS* = TCM_FIRST + 9 + TCM_GETITEMRECT* = TCM_FIRST + 10 + TCM_GETCURSEL* = TCM_FIRST + 11 + TCM_SETCURSEL* = TCM_FIRST + 12 TCHT_NOWHERE* = 0x1 TCHT_ONITEMICON* = 0x2 TCHT_ONITEMLABEL* = 0x4 TCHT_ONITEM* = TCHT_ONITEMICON or TCHT_ONITEMLABEL - TCM_HITTEST* = TCM_FIRST+13 - TCM_SETITEMEXTRA* = TCM_FIRST+14 - TCM_ADJUSTRECT* = TCM_FIRST+40 - TCM_SETITEMSIZE* = TCM_FIRST+41 - TCM_REMOVEIMAGE* = TCM_FIRST+42 - TCM_SETPADDING* = TCM_FIRST+43 - TCM_GETROWCOUNT* = TCM_FIRST+44 - TCM_GETTOOLTIPS* = TCM_FIRST+45 - TCM_SETTOOLTIPS* = TCM_FIRST+46 - TCM_GETCURFOCUS* = TCM_FIRST+47 - TCM_SETCURFOCUS* = TCM_FIRST+48 - TCM_SETMINTABWIDTH* = TCM_FIRST+49 - TCM_DESELECTALL* = TCM_FIRST+50 - TCM_HIGHLIGHTITEM* = TCM_FIRST+51 - TCM_SETEXTENDEDSTYLE* = TCM_FIRST+52 - TCM_GETEXTENDEDSTYLE* = TCM_FIRST+53 + TCM_HITTEST* = TCM_FIRST + 13 + TCM_SETITEMEXTRA* = TCM_FIRST + 14 + TCM_ADJUSTRECT* = TCM_FIRST + 40 + TCM_SETITEMSIZE* = TCM_FIRST + 41 + TCM_REMOVEIMAGE* = TCM_FIRST + 42 + TCM_SETPADDING* = TCM_FIRST + 43 + TCM_GETROWCOUNT* = TCM_FIRST + 44 + TCM_GETTOOLTIPS* = TCM_FIRST + 45 + TCM_SETTOOLTIPS* = TCM_FIRST + 46 + TCM_GETCURFOCUS* = TCM_FIRST + 47 + TCM_SETCURFOCUS* = TCM_FIRST + 48 + TCM_SETMINTABWIDTH* = TCM_FIRST + 49 + TCM_DESELECTALL* = TCM_FIRST + 50 + TCM_HIGHLIGHTITEM* = TCM_FIRST + 51 + TCM_SETEXTENDEDSTYLE* = TCM_FIRST + 52 + TCM_GETEXTENDEDSTYLE* = TCM_FIRST + 53 TCM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT TCM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT - TCN_KEYDOWN* = TCN_FIRST-0 - TCN_SELCHANGE* = TCN_FIRST-1 - TCN_SELCHANGING* = TCN_FIRST-2 - TCN_GETOBJECT* = TCN_FIRST-3 - TCN_FOCUSCHANGE* = TCN_FIRST-4 + TCN_KEYDOWN* = TCN_FIRST - 0 + TCN_SELCHANGE* = TCN_FIRST - 1 + TCN_SELCHANGING* = TCN_FIRST - 2 + TCN_GETOBJECT* = TCN_FIRST - 3 + TCN_FOCUSCHANGE* = TCN_FIRST - 4 ANIMATE_CLASSW* = "SysAnimate32" ANIMATE_CLASSA* = "SysAnimate32" ACS_CENTER* = 0x1 ACS_TRANSPARENT* = 0x2 ACS_AUTOPLAY* = 0x4 ACS_TIMER* = 0x8 - ACM_OPENA* = WM_USER+100 - ACM_OPENW* = WM_USER+103 - ACM_PLAY* = WM_USER+101 - ACM_STOP* = WM_USER+102 - ACM_ISPLAYING* = WM_USER+104 + ACM_OPENA* = WM_USER + 100 + ACM_OPENW* = WM_USER + 103 + ACM_PLAY* = WM_USER + 101 + ACM_STOP* = WM_USER + 102 + ACM_ISPLAYING* = WM_USER + 104 ACN_START* = 1 ACN_STOP* = 2 MONTHCAL_CLASSW* = "SysMonthCal32" MONTHCAL_CLASSA* = "SysMonthCal32" MCM_FIRST* = 0x1000 - MCM_GETCURSEL* = MCM_FIRST+1 - MCM_SETCURSEL* = MCM_FIRST+2 - MCM_GETMAXSELCOUNT* = MCM_FIRST+3 - MCM_SETMAXSELCOUNT* = MCM_FIRST+4 - MCM_GETSELRANGE* = MCM_FIRST+5 - MCM_SETSELRANGE* = MCM_FIRST+6 - MCM_GETMONTHRANGE* = MCM_FIRST+7 - MCM_SETDAYSTATE* = MCM_FIRST+8 - MCM_GETMINREQRECT* = MCM_FIRST+9 - MCM_SETCOLOR* = MCM_FIRST+10 - MCM_GETCOLOR* = MCM_FIRST+11 + MCM_GETCURSEL* = MCM_FIRST + 1 + MCM_SETCURSEL* = MCM_FIRST + 2 + MCM_GETMAXSELCOUNT* = MCM_FIRST + 3 + MCM_SETMAXSELCOUNT* = MCM_FIRST + 4 + MCM_GETSELRANGE* = MCM_FIRST + 5 + MCM_SETSELRANGE* = MCM_FIRST + 6 + MCM_GETMONTHRANGE* = MCM_FIRST + 7 + MCM_SETDAYSTATE* = MCM_FIRST + 8 + MCM_GETMINREQRECT* = MCM_FIRST + 9 + MCM_SETCOLOR* = MCM_FIRST + 10 + MCM_GETCOLOR* = MCM_FIRST + 11 MCSC_BACKGROUND* = 0 MCSC_TEXT* = 1 MCSC_TITLEBK* = 2 MCSC_TITLETEXT* = 3 MCSC_MONTHBK* = 4 MCSC_TRAILINGTEXT* = 5 - MCM_SETTODAY* = MCM_FIRST+12 - MCM_GETTODAY* = MCM_FIRST+13 - MCM_HITTEST* = MCM_FIRST+14 + MCM_SETTODAY* = MCM_FIRST + 12 + MCM_GETTODAY* = MCM_FIRST + 13 + MCM_HITTEST* = MCM_FIRST + 14 MCHT_TITLE* = 0x10000 MCHT_CALENDAR* = 0x20000 MCHT_TODAYLINK* = 0x30000 @@ -3367,13 +3534,13 @@ MCHT_CALENDARWEEKNUM* = MCHT_CALENDAR or 0x3 MCHT_CALENDARDATEMIN* = MCHT_CALENDAR or 0x4 MCHT_CALENDARDATEMAX* = MCHT_CALENDAR or 0x5 - MCM_SETFIRSTDAYOFWEEK* = MCM_FIRST+15 - MCM_GETFIRSTDAYOFWEEK* = MCM_FIRST+16 - MCM_GETRANGE* = MCM_FIRST+17 - MCM_SETRANGE* = MCM_FIRST+18 - MCM_GETMONTHDELTA* = MCM_FIRST+19 - MCM_SETMONTHDELTA* = MCM_FIRST+20 - MCM_GETMAXTODAYWIDTH* = MCM_FIRST+21 + MCM_SETFIRSTDAYOFWEEK* = MCM_FIRST + 15 + MCM_GETFIRSTDAYOFWEEK* = MCM_FIRST + 16 + MCM_GETRANGE* = MCM_FIRST + 17 + MCM_SETRANGE* = MCM_FIRST + 18 + MCM_GETMONTHDELTA* = MCM_FIRST + 19 + MCM_SETMONTHDELTA* = MCM_FIRST + 20 + MCM_GETMAXTODAYWIDTH* = MCM_FIRST + 21 MCM_SETUNICODEFORMAT* = CCM_SETUNICODEFORMAT MCM_GETUNICODEFORMAT* = CCM_GETUNICODEFORMAT MCMV_MONTH* = 0 @@ -3381,8 +3548,8 @@ MCMV_DECADE* = 2 MCMV_CENTURY* = 3 MCMV_MAX* = MCMV_CENTURY - MCM_GETCURRENTVIEW* = MCM_FIRST+22 - MCM_GETCALENDARCOUNT* = MCM_FIRST+23 + MCM_GETCURRENTVIEW* = MCM_FIRST + 22 + MCM_GETCALENDARCOUNT* = MCM_FIRST + 23 MCGIP_CALENDARCONTROL* = 0 MCGIP_NEXT* = 1 MCGIP_PREV* = 2 @@ -3395,17 +3562,17 @@ MCGIF_DATE* = 01 MCGIF_RECT* = 0x2 MCGIF_NAME* = 0x4 - MCM_GETCALENDARGRIDINFO* = MCM_FIRST+24 - MCM_GETCALID* = MCM_FIRST+27 - MCM_SETCALID* = MCM_FIRST+28 - MCM_SIZERECTTOMIN* = MCM_FIRST+29 - MCM_SETCALENDARBORDER* = MCM_FIRST+30 - MCM_GETCALENDARBORDER* = MCM_FIRST+31 - MCM_SETCURRENTVIEW* = MCM_FIRST+32 - MCN_SELCHANGE* = MCN_FIRST-3 - MCN_GETDAYSTATE* = MCN_FIRST+3 + MCM_GETCALENDARGRIDINFO* = MCM_FIRST + 24 + MCM_GETCALID* = MCM_FIRST + 27 + MCM_SETCALID* = MCM_FIRST + 28 + MCM_SIZERECTTOMIN* = MCM_FIRST + 29 + MCM_SETCALENDARBORDER* = MCM_FIRST + 30 + MCM_GETCALENDARBORDER* = MCM_FIRST + 31 + MCM_SETCURRENTVIEW* = MCM_FIRST + 32 + MCN_SELCHANGE* = MCN_FIRST - 3 + MCN_GETDAYSTATE* = MCN_FIRST + 3 MCN_SELECT* = MCN_FIRST - MCN_VIEWCHANGE* = MCN_FIRST-4 + MCN_VIEWCHANGE* = MCN_FIRST - 4 MCS_DAYSTATE* = 0x1 MCS_MULTISELECT* = 0x2 MCS_WEEKNUMBERS* = 0x4 @@ -3419,22 +3586,22 @@ DATETIMEPICK_CLASSW* = "SysDateTimePick32" DATETIMEPICK_CLASSA* = "SysDateTimePick32" DTM_FIRST* = 0x1000 - DTM_GETSYSTEMTIME* = DTM_FIRST+1 - DTM_SETSYSTEMTIME* = DTM_FIRST+2 - DTM_GETRANGE* = DTM_FIRST+3 - DTM_SETRANGE* = DTM_FIRST+4 - DTM_SETFORMATA* = DTM_FIRST+5 - DTM_SETFORMATW* = DTM_FIRST+50 - DTM_SETMCCOLOR* = DTM_FIRST+6 - DTM_GETMCCOLOR* = DTM_FIRST+7 - DTM_GETMONTHCAL* = DTM_FIRST+8 - DTM_SETMCFONT* = DTM_FIRST+9 - DTM_GETMCFONT* = DTM_FIRST+10 - DTM_SETMCSTYLE* = DTM_FIRST+11 - DTM_GETMCSTYLE* = DTM_FIRST+12 - DTM_CLOSEMONTHCAL* = DTM_FIRST+13 - DTM_GETDATETIMEPICKERINFO* = DTM_FIRST+14 - DTM_GETIDEALSIZE* = DTM_FIRST+15 + DTM_GETSYSTEMTIME* = DTM_FIRST + 1 + DTM_SETSYSTEMTIME* = DTM_FIRST + 2 + DTM_GETRANGE* = DTM_FIRST + 3 + DTM_SETRANGE* = DTM_FIRST + 4 + DTM_SETFORMATA* = DTM_FIRST + 5 + DTM_SETFORMATW* = DTM_FIRST + 50 + DTM_SETMCCOLOR* = DTM_FIRST + 6 + DTM_GETMCCOLOR* = DTM_FIRST + 7 + DTM_GETMONTHCAL* = DTM_FIRST + 8 + DTM_SETMCFONT* = DTM_FIRST + 9 + DTM_GETMCFONT* = DTM_FIRST + 10 + DTM_SETMCSTYLE* = DTM_FIRST + 11 + DTM_GETMCSTYLE* = DTM_FIRST + 12 + DTM_CLOSEMONTHCAL* = DTM_FIRST + 13 + DTM_GETDATETIMEPICKERINFO* = DTM_FIRST + 14 + DTM_GETIDEALSIZE* = DTM_FIRST + 15 DTS_UPDOWN* = 0x1 DTS_SHOWNONE* = 0x2 DTS_SHORTDATEFORMAT* = 0x0 @@ -3443,31 +3610,31 @@ DTS_TIMEFORMAT* = 0x9 DTS_APPCANPARSE* = 0x10 DTS_RIGHTALIGN* = 0x20 - DTN_DATETIMECHANGE* = DTN_FIRST2-6 - DTN_USERSTRINGA* = DTN_FIRST2-5 - DTN_USERSTRINGW* = DTN_FIRST-5 - DTN_WMKEYDOWNA* = DTN_FIRST2-4 - DTN_WMKEYDOWNW* = DTN_FIRST-4 - DTN_FORMATA* = DTN_FIRST2-3 - DTN_FORMATW* = DTN_FIRST-3 - DTN_FORMATQUERYA* = DTN_FIRST2-2 - DTN_FORMATQUERYW* = DTN_FIRST-2 - DTN_DROPDOWN* = DTN_FIRST2-1 + DTN_DATETIMECHANGE* = DTN_FIRST2 - 6 + DTN_USERSTRINGA* = DTN_FIRST2 - 5 + DTN_USERSTRINGW* = DTN_FIRST - 5 + DTN_WMKEYDOWNA* = DTN_FIRST2 - 4 + DTN_WMKEYDOWNW* = DTN_FIRST - 4 + DTN_FORMATA* = DTN_FIRST2 - 3 + DTN_FORMATW* = DTN_FIRST - 3 + DTN_FORMATQUERYA* = DTN_FIRST2 - 2 + DTN_FORMATQUERYW* = DTN_FIRST - 2 + DTN_DROPDOWN* = DTN_FIRST2 - 1 DTN_CLOSEUP* = DTN_FIRST2 GDTR_MIN* = 0x1 GDTR_MAX* = 0x2 GDT_ERROR* = -1 GDT_VALID* = 0 GDT_NONE* = 1 - IPM_CLEARADDRESS* = WM_USER+100 - IPM_SETADDRESS* = WM_USER+101 - IPM_GETADDRESS* = WM_USER+102 - IPM_SETRANGE* = WM_USER+103 - IPM_SETFOCUS* = WM_USER+104 - IPM_ISBLANK* = WM_USER+105 + IPM_CLEARADDRESS* = WM_USER + 100 + IPM_SETADDRESS* = WM_USER + 101 + IPM_GETADDRESS* = WM_USER + 102 + IPM_SETRANGE* = WM_USER + 103 + IPM_SETFOCUS* = WM_USER + 104 + IPM_ISBLANK* = WM_USER + 105 WC_IPADDRESSW* = "SysIPAddress32" WC_IPADDRESSA* = "SysIPAddress32" - IPN_FIELDCHANGED* = IPN_FIRST-0 + IPN_FIELDCHANGED* = IPN_FIRST - 0 WC_PAGESCROLLERW* = "SysPager" WC_PAGESCROLLERA* = "SysPager" PGS_VERT* = 0x0 @@ -3481,21 +3648,21 @@ PGF_HOT* = 8 PGB_TOPORLEFT* = 0 PGB_BOTTOMORRIGHT* = 1 - PGM_SETCHILD* = PGM_FIRST+1 - PGM_RECALCSIZE* = PGM_FIRST+2 - PGM_FORWARDMOUSE* = PGM_FIRST+3 - PGM_SETBKCOLOR* = PGM_FIRST+4 - PGM_GETBKCOLOR* = PGM_FIRST+5 - PGM_SETBORDER* = PGM_FIRST+6 - PGM_GETBORDER* = PGM_FIRST+7 - PGM_SETPOS* = PGM_FIRST+8 - PGM_GETPOS* = PGM_FIRST+9 - PGM_SETBUTTONSIZE* = PGM_FIRST+10 - PGM_GETBUTTONSIZE* = PGM_FIRST+11 - PGM_GETBUTTONSTATE* = PGM_FIRST+12 + PGM_SETCHILD* = PGM_FIRST + 1 + PGM_RECALCSIZE* = PGM_FIRST + 2 + PGM_FORWARDMOUSE* = PGM_FIRST + 3 + PGM_SETBKCOLOR* = PGM_FIRST + 4 + PGM_GETBKCOLOR* = PGM_FIRST + 5 + PGM_SETBORDER* = PGM_FIRST + 6 + PGM_GETBORDER* = PGM_FIRST + 7 + PGM_SETPOS* = PGM_FIRST + 8 + PGM_GETPOS* = PGM_FIRST + 9 + PGM_SETBUTTONSIZE* = PGM_FIRST + 10 + PGM_GETBUTTONSIZE* = PGM_FIRST + 11 + PGM_GETBUTTONSTATE* = PGM_FIRST + 12 PGM_GETDROPTARGET* = CCM_GETDROPTARGET - PGM_SETSCROLLINFO* = PGM_FIRST+13 - PGN_SCROLL* = PGN_FIRST-1 + PGM_SETSCROLLINFO* = PGM_FIRST + 13 + PGN_SCROLL* = PGN_FIRST - 1 PGF_SCROLLUP* = 1 PGF_SCROLLDOWN* = 2 PGF_SCROLLLEFT* = 4 @@ -3503,10 +3670,10 @@ PGK_SHIFT* = 1 PGK_CONTROL* = 2 PGK_MENU* = 4 - PGN_CALCSIZE* = PGN_FIRST-2 + PGN_CALCSIZE* = PGN_FIRST - 2 PGF_CALCWIDTH* = 1 PGF_CALCHEIGHT* = 2 - PGN_HOTITEMCHANGE* = PGN_FIRST-3 + PGN_HOTITEMCHANGE* = PGN_FIRST - 3 WC_NATIVEFONTCTLW* = "NativeFontCtl" WC_NATIVEFONTCTLA* = "NativeFontCtl" NFS_EDIT* = 0x1 @@ -3522,12 +3689,12 @@ BUTTON_IMAGELIST_ALIGN_TOP* = 2 BUTTON_IMAGELIST_ALIGN_BOTTOM* = 3 BUTTON_IMAGELIST_ALIGN_CENTER* = 4 - BCM_GETIDEALSIZE* = BCM_FIRST+0x1 - BCM_SETIMAGELIST* = BCM_FIRST+0x2 - BCM_GETIMAGELIST* = BCM_FIRST+0x3 - BCM_SETTEXTMARGIN* = BCM_FIRST+0x4 - BCM_GETTEXTMARGIN* = BCM_FIRST+0x5 - BCN_HOTITEMCHANGE* = BCN_FIRST+0x1 + BCM_GETIDEALSIZE* = BCM_FIRST + 0x1 + BCM_SETIMAGELIST* = BCM_FIRST + 0x2 + BCM_GETIMAGELIST* = BCM_FIRST + 0x3 + BCM_SETTEXTMARGIN* = BCM_FIRST + 0x4 + BCM_GETTEXTMARGIN* = BCM_FIRST + 0x5 + BCN_HOTITEMCHANGE* = BCN_FIRST + 0x1 BST_HOT* = 0x0200 BST_DROPDOWNPUSHED* = 0x0400 BS_SPLITBUTTON* = 0xc @@ -3542,34 +3709,34 @@ BCSS_STRETCH* = 0x0002 BCSS_ALIGNLEFT* = 0x0004 BCSS_IMAGE* = 0x0008 - BCM_SETDROPDOWNSTATE* = BCM_FIRST+0x6 - BCM_SETSPLITINFO* = BCM_FIRST+0x7 - BCM_GETSPLITINFO* = BCM_FIRST+0x8 - BCM_SETNOTE* = BCM_FIRST+0x9 - BCM_GETNOTE* = BCM_FIRST+0xa - BCM_GETNOTELENGTH* = BCM_FIRST+0xb - BCM_SETSHIELD* = BCM_FIRST+0xc - BCN_DROPDOWN* = BCN_FIRST+0x0002 + BCM_SETDROPDOWNSTATE* = BCM_FIRST + 0x6 + BCM_SETSPLITINFO* = BCM_FIRST + 0x7 + BCM_GETSPLITINFO* = BCM_FIRST + 0x8 + BCM_SETNOTE* = BCM_FIRST + 0x9 + BCM_GETNOTE* = BCM_FIRST + 0xa + BCM_GETNOTELENGTH* = BCM_FIRST + 0xb + BCM_SETSHIELD* = BCM_FIRST + 0xc + BCN_DROPDOWN* = BCN_FIRST + 0x0002 WC_STATICA* = "Static" WC_STATICW* = "Static" WC_EDITA* = "Edit" WC_EDITW* = "Edit" - EM_SETCUEBANNER* = ECM_FIRST+1 - EM_GETCUEBANNER* = ECM_FIRST+2 - EM_SHOWBALLOONTIP* = ECM_FIRST+3 - EM_HIDEBALLOONTIP* = ECM_FIRST+4 - EM_SETHILITE* = ECM_FIRST+5 - EM_GETHILITE* = ECM_FIRST+6 - EM_NOSETFOCUS* = ECM_FIRST+7 - EM_TAKEFOCUS* = ECM_FIRST+8 + EM_SETCUEBANNER* = ECM_FIRST + 1 + EM_GETCUEBANNER* = ECM_FIRST + 2 + EM_SHOWBALLOONTIP* = ECM_FIRST + 3 + EM_HIDEBALLOONTIP* = ECM_FIRST + 4 + EM_SETHILITE* = ECM_FIRST + 5 + EM_GETHILITE* = ECM_FIRST + 6 + EM_NOSETFOCUS* = ECM_FIRST + 7 + EM_TAKEFOCUS* = ECM_FIRST + 8 WC_LISTBOXA* = "ListBox" WC_LISTBOXW* = "ListBox" WC_COMBOBOXA* = "ComboBox" WC_COMBOBOXW* = "ComboBox" - CB_SETMINVISIBLE* = CBM_FIRST+1 - CB_GETMINVISIBLE* = CBM_FIRST+2 - CB_SETCUEBANNER* = CBM_FIRST+3 - CB_GETCUEBANNER* = CBM_FIRST+4 + CB_SETMINVISIBLE* = CBM_FIRST + 1 + CB_GETMINVISIBLE* = CBM_FIRST + 2 + CB_SETCUEBANNER* = CBM_FIRST + 3 + CB_GETCUEBANNER* = CBM_FIRST + 4 WC_SCROLLBARA* = "ScrollBar" WC_SCROLLBARW* = "ScrollBar" LWS_TRANSPARENT* = 0x1 @@ -3587,10 +3754,10 @@ LIS_VISITED* = 0x4 LIS_HOTTRACK* = 0x8 LIS_DEFAULTCOLORS* = 0x10 - LM_HITTEST* = WM_USER+0x300 - LM_GETIDEALHEIGHT* = WM_USER+0x301 - LM_SETITEM* = WM_USER+0x302 - LM_GETITEM* = WM_USER+0x303 + LM_HITTEST* = WM_USER + 0x300 + LM_GETIDEALHEIGHT* = WM_USER + 0x301 + LM_SETITEM* = WM_USER + 0x302 + LM_GETITEM* = WM_USER + 0x303 TDF_ENABLE_HYPERLINKS* = 0x1 TDF_USE_HICON_MAIN* = 0x2 TDF_USE_HICON_FOOTER* = 0x4 @@ -3609,21 +3776,21 @@ TDF_CAN_BE_MINIMIZED* = 0x8000 TDF_NO_SET_FOREGROUND* = 0x10000 TDF_SIZE_TO_CONTENT* = 0x1000000 - TDM_NAVIGATE_PAGE* = WM_USER+101 - TDM_CLICK_BUTTON* = WM_USER+102 - TDM_SET_MARQUEE_PROGRESS_BAR* = WM_USER+103 - TDM_SET_PROGRESS_BAR_STATE* = WM_USER+104 - TDM_SET_PROGRESS_BAR_RANGE* = WM_USER+105 - TDM_SET_PROGRESS_BAR_POS* = WM_USER+106 - TDM_SET_PROGRESS_BAR_MARQUEE* = WM_USER+107 - TDM_SET_ELEMENT_TEXT* = WM_USER+108 - TDM_CLICK_RADIO_BUTTON* = WM_USER+110 - TDM_ENABLE_BUTTON* = WM_USER+111 - TDM_ENABLE_RADIO_BUTTON* = WM_USER+112 - TDM_CLICK_VERIFICATION* = WM_USER+113 - TDM_UPDATE_ELEMENT_TEXT* = WM_USER+114 - TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE* = WM_USER+115 - TDM_UPDATE_ICON* = WM_USER+116 + TDM_NAVIGATE_PAGE* = WM_USER + 101 + TDM_CLICK_BUTTON* = WM_USER + 102 + TDM_SET_MARQUEE_PROGRESS_BAR* = WM_USER + 103 + TDM_SET_PROGRESS_BAR_STATE* = WM_USER + 104 + TDM_SET_PROGRESS_BAR_RANGE* = WM_USER + 105 + TDM_SET_PROGRESS_BAR_POS* = WM_USER + 106 + TDM_SET_PROGRESS_BAR_MARQUEE* = WM_USER + 107 + TDM_SET_ELEMENT_TEXT* = WM_USER + 108 + TDM_CLICK_RADIO_BUTTON* = WM_USER + 110 + TDM_ENABLE_BUTTON* = WM_USER + 111 + TDM_ENABLE_RADIO_BUTTON* = WM_USER + 112 + TDM_CLICK_VERIFICATION* = WM_USER + 113 + TDM_UPDATE_ELEMENT_TEXT* = WM_USER + 114 + TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE* = WM_USER + 115 + TDM_UPDATE_ICON* = WM_USER + 116 TDN_CREATED* = 0 TDN_NAVIGATED* = 1 TDN_BUTTON_CLICKED* = 2 @@ -3719,29 +3886,49 @@ TVI_SORT* = HTREEITEM(-0xfffd) LM_GETIDEALSIZE* = LM_GETIDEALHEIGHT type - LPFNADDPROPSHEETPAGE* = proc (P1: HPROPSHEETPAGE, P2: LPARAM): WINBOOL {.stdcall.} - LPFNADDPROPSHEETPAGES* = proc (P1: LPVOID, P2: LPFNADDPROPSHEETPAGE, P3: LPARAM): WINBOOL {.stdcall.} - PFNLVCOMPARE* = proc (P1: LPARAM, P2: LPARAM, P3: LPARAM): int32 {.stdcall.} - PFTASKDIALOGCALLBACK* = proc (hwnd: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM, lpRefData: LONG_PTR): HRESULT {.stdcall.} + LPFNADDPROPSHEETPAGE* = proc(P1: HPROPSHEETPAGE, P2: LPARAM): WINBOOL {.stdcall.} + LPFNADDPROPSHEETPAGES* = + proc(P1: LPVOID, P2: LPFNADDPROPSHEETPAGE, P3: LPARAM): WINBOOL {.stdcall.} + PFNLVCOMPARE* = proc(P1: LPARAM, P2: LPARAM, P3: LPARAM): int32 {.stdcall.} + PFTASKDIALOGCALLBACK* = proc( + hwnd: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM, lpRefData: LONG_PTR + ): HRESULT {.stdcall.} DPASTREAMINFO* {.pure.} = object iPos*: int32 pvItem*: pointer - PFNDPASTREAM* = proc (pinfo: ptr DPASTREAMINFO, pstream: ptr IStream, pvInstData: pointer): HRESULT {.stdcall.} - PFNDPAMERGE* = proc (uMsg: UINT, pvDest: pointer, pvSrc: pointer, lParam: LPARAM): pointer {.stdcall.} - PFNDPAMERGECONST* = proc (uMsg: UINT, pvDest: pointer, pvSrc: pointer, lParam: LPARAM): pointer {.stdcall.} - SUBCLASSPROC* = proc (hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, uIdSubclass: UINT_PTR, dwRefData: DWORD_PTR): LRESULT {.stdcall.} + + PFNDPASTREAM* = proc( + pinfo: ptr DPASTREAMINFO, pstream: ptr IStream, pvInstData: pointer + ): HRESULT {.stdcall.} + PFNDPAMERGE* = proc( + uMsg: UINT, pvDest: pointer, pvSrc: pointer, lParam: LPARAM + ): pointer {.stdcall.} + PFNDPAMERGECONST* = proc( + uMsg: UINT, pvDest: pointer, pvSrc: pointer, lParam: LPARAM + ): pointer {.stdcall.} + SUBCLASSPROC* = proc( + hWnd: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + uIdSubclass: UINT_PTR, + dwRefData: DWORD_PTR, + ): LRESULT {.stdcall.} NMTRBTHUMBPOSCHANGING* {.pure.} = object hdr*: NMHDR dwPos*: DWORD nReason*: int32 + NMLVEMPTYMARKUP* {.pure.} = object hdr*: NMHDR dwFlags*: DWORD szMarkup*: array[L_MAX_URL_LENGTH, WCHAR] + TVGETITEMPARTRECTINFO* {.pure.} = object hti*: HTREEITEM prc*: ptr RECT partID*: TVITEMPART + NMTVITEMCHANGE* {.pure.} = object hdr*: NMHDR uChanged*: UINT @@ -3749,6 +3936,7 @@ uStateNew*: UINT uStateOld*: UINT lParam*: LPARAM + NMTVASYNCDRAW* {.pure.} = object hdr*: NMHDR pimldp*: ptr IMAGELISTDRAWPARAMS @@ -3757,15 +3945,19 @@ lParam*: LPARAM dwRetFlags*: DWORD iRetImageIndex*: int32 + TASKDIALOG_BUTTON* {.pure, packed.} = object nButtonID*: int32 pszButtonText*: PCWSTR + TASKDIALOGCONFIG_UNION1* {.pure, union.} = object hMainIcon*: HICON pszMainIcon*: PCWSTR + TASKDIALOGCONFIG_UNION2* {.pure, union.} = object hFooterIcon*: HICON pszFooterIcon*: PCWSTR + TASKDIALOGCONFIG* {.pure, packed.} = object cbSize*: UINT hwndParent*: HWND @@ -3791,978 +3983,2969 @@ pfCallback*: PFTASKDIALOGCALLBACK lpCallbackData*: LONG_PTR cxWidth*: UINT + IMAGELISTSTATS* {.pure.} = object cbSize*: DWORD cAlloc*: int32 cUsed*: int32 cStandby*: int32 + IImageList* {.pure.} = object lpVtbl*: ptr IImageListVtbl + IImageListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Add*: proc(self: ptr IImageList, hbmImage: HBITMAP, hbmMask: HBITMAP, pi: ptr int32): HRESULT {.stdcall.} - ReplaceIcon*: proc(self: ptr IImageList, i: int32, hicon: HICON, pi: ptr int32): HRESULT {.stdcall.} - SetOverlayImage*: proc(self: ptr IImageList, iImage: int32, iOverlay: int32): HRESULT {.stdcall.} - Replace*: proc(self: ptr IImageList, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP): HRESULT {.stdcall.} - AddMasked*: proc(self: ptr IImageList, hbmImage: HBITMAP, crMask: COLORREF, pi: ptr int32): HRESULT {.stdcall.} - Draw*: proc(self: ptr IImageList, pimldp: ptr IMAGELISTDRAWPARAMS): HRESULT {.stdcall.} + Add*: proc( + self: ptr IImageList, hbmImage: HBITMAP, hbmMask: HBITMAP, pi: ptr int32 + ): HRESULT {.stdcall.} + ReplaceIcon*: proc( + self: ptr IImageList, i: int32, hicon: HICON, pi: ptr int32 + ): HRESULT {.stdcall.} + SetOverlayImage*: + proc(self: ptr IImageList, iImage: int32, iOverlay: int32): HRESULT {.stdcall.} + Replace*: proc( + self: ptr IImageList, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP + ): HRESULT {.stdcall.} + AddMasked*: proc( + self: ptr IImageList, hbmImage: HBITMAP, crMask: COLORREF, pi: ptr int32 + ): HRESULT {.stdcall.} + Draw*: + proc(self: ptr IImageList, pimldp: ptr IMAGELISTDRAWPARAMS): HRESULT {.stdcall.} Remove*: proc(self: ptr IImageList, i: int32): HRESULT {.stdcall.} - GetIcon*: proc(self: ptr IImageList, i: int32, flags: UINT, picon: ptr HICON): HRESULT {.stdcall.} - GetImageInfo*: proc(self: ptr IImageList, i: int32, pImageInfo: ptr IMAGEINFO): HRESULT {.stdcall.} - Copy*: proc(self: ptr IImageList, iDst: int32, punkSrc: ptr IUnknown, iSrc: int32, uFlags: UINT): HRESULT {.stdcall.} - Merge*: proc(self: ptr IImageList, i1: int32, punk2: ptr IUnknown, i2: int32, dx: int32, dy: int32, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - Clone*: proc(self: ptr IImageList, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetImageRect*: proc(self: ptr IImageList, i: int32, prc: ptr RECT): HRESULT {.stdcall.} - GetIconSize*: proc(self: ptr IImageList, cx: ptr int32, cy: ptr int32): HRESULT {.stdcall.} + GetIcon*: proc( + self: ptr IImageList, i: int32, flags: UINT, picon: ptr HICON + ): HRESULT {.stdcall.} + GetImageInfo*: proc( + self: ptr IImageList, i: int32, pImageInfo: ptr IMAGEINFO + ): HRESULT {.stdcall.} + Copy*: proc( + self: ptr IImageList, + iDst: int32, + punkSrc: ptr IUnknown, + iSrc: int32, + uFlags: UINT, + ): HRESULT {.stdcall.} + Merge*: proc( + self: ptr IImageList, + i1: int32, + punk2: ptr IUnknown, + i2: int32, + dx: int32, + dy: int32, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IImageList, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetImageRect*: + proc(self: ptr IImageList, i: int32, prc: ptr RECT): HRESULT {.stdcall.} + GetIconSize*: + proc(self: ptr IImageList, cx: ptr int32, cy: ptr int32): HRESULT {.stdcall.} SetIconSize*: proc(self: ptr IImageList, cx: int32, cy: int32): HRESULT {.stdcall.} GetImageCount*: proc(self: ptr IImageList, pi: ptr int32): HRESULT {.stdcall.} SetImageCount*: proc(self: ptr IImageList, uNewCount: UINT): HRESULT {.stdcall.} - SetBkColor*: proc(self: ptr IImageList, clrBk: COLORREF, pclr: ptr COLORREF): HRESULT {.stdcall.} + SetBkColor*: proc( + self: ptr IImageList, clrBk: COLORREF, pclr: ptr COLORREF + ): HRESULT {.stdcall.} GetBkColor*: proc(self: ptr IImageList, pclr: ptr COLORREF): HRESULT {.stdcall.} - BeginDrag*: proc(self: ptr IImageList, iTrack: int32, dxHotspot: int32, dyHotspot: int32): HRESULT {.stdcall.} + BeginDrag*: proc( + self: ptr IImageList, iTrack: int32, dxHotspot: int32, dyHotspot: int32 + ): HRESULT {.stdcall.} EndDrag*: proc(self: ptr IImageList): HRESULT {.stdcall.} - DragEnter*: proc(self: ptr IImageList, hwndLock: HWND, x: int32, y: int32): HRESULT {.stdcall.} + DragEnter*: proc(self: ptr IImageList, hwndLock: HWND, x: int32, y: int32): HRESULT {. + stdcall + .} DragLeave*: proc(self: ptr IImageList, hwndLock: HWND): HRESULT {.stdcall.} DragMove*: proc(self: ptr IImageList, x: int32, y: int32): HRESULT {.stdcall.} - SetDragCursorImage*: proc(self: ptr IImageList, punk: ptr IUnknown, iDrag: int32, dxHotspot: int32, dyHotspot: int32): HRESULT {.stdcall.} + SetDragCursorImage*: proc( + self: ptr IImageList, + punk: ptr IUnknown, + iDrag: int32, + dxHotspot: int32, + dyHotspot: int32, + ): HRESULT {.stdcall.} DragShowNolock*: proc(self: ptr IImageList, fShow: WINBOOL): HRESULT {.stdcall.} - GetDragImage*: proc(self: ptr IImageList, ppt: ptr POINT, pptHotspot: ptr POINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetItemFlags*: proc(self: ptr IImageList, i: int32, dwFlags: ptr DWORD): HRESULT {.stdcall.} - GetOverlayImage*: proc(self: ptr IImageList, iOverlay: int32, piIndex: ptr int32): HRESULT {.stdcall.} + GetDragImage*: proc( + self: ptr IImageList, + ppt: ptr POINT, + pptHotspot: ptr POINT, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetItemFlags*: + proc(self: ptr IImageList, i: int32, dwFlags: ptr DWORD): HRESULT {.stdcall.} + GetOverlayImage*: proc( + self: ptr IImageList, iOverlay: int32, piIndex: ptr int32 + ): HRESULT {.stdcall.} + IImageList2* {.pure.} = object lpVtbl*: ptr IImageList2Vtbl + IImageList2Vtbl* {.pure, inheritable.} = object of IImageListVtbl - Resize*: proc(self: ptr IImageList2, cxNewIconSize: int32, cyNewIconSize: int32): HRESULT {.stdcall.} - GetOriginalSize*: proc(self: ptr IImageList2, iImage: int32, dwFlags: DWORD, pcx: ptr int32, pcy: ptr int32): HRESULT {.stdcall.} - SetOriginalSize*: proc(self: ptr IImageList2, iImage: int32, cx: int32, cy: int32): HRESULT {.stdcall.} + Resize*: proc( + self: ptr IImageList2, cxNewIconSize: int32, cyNewIconSize: int32 + ): HRESULT {.stdcall.} + GetOriginalSize*: proc( + self: ptr IImageList2, + iImage: int32, + dwFlags: DWORD, + pcx: ptr int32, + pcy: ptr int32, + ): HRESULT {.stdcall.} + SetOriginalSize*: proc( + self: ptr IImageList2, iImage: int32, cx: int32, cy: int32 + ): HRESULT {.stdcall.} SetCallback*: proc(self: ptr IImageList2, punk: ptr IUnknown): HRESULT {.stdcall.} - GetCallback*: proc(self: ptr IImageList2, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - ForceImagePresent*: proc(self: ptr IImageList2, iImage: int32, dwFlags: DWORD): HRESULT {.stdcall.} - DiscardImages*: proc(self: ptr IImageList2, iFirstImage: int32, iLastImage: int32, dwFlags: DWORD): HRESULT {.stdcall.} - PreloadImages*: proc(self: ptr IImageList2, pimldp: ptr IMAGELISTDRAWPARAMS): HRESULT {.stdcall.} - GetStatistics*: proc(self: ptr IImageList2, pils: ptr IMAGELISTSTATS): HRESULT {.stdcall.} - Initialize*: proc(self: ptr IImageList2, cx: int32, cy: int32, flags: UINT, cInitial: int32, cGrow: int32): HRESULT {.stdcall.} - Replace2*: proc(self: ptr IImageList2, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP, punk: ptr IUnknown, dwFlags: DWORD): HRESULT {.stdcall.} - ReplaceFromImageList*: proc(self: ptr IImageList2, i: int32, pil: ptr IImageList, iSrc: int32, punk: ptr IUnknown, dwFlags: DWORD): HRESULT {.stdcall.} -proc CreatePropertySheetPageA*(constPropSheetPagePointer: LPCPROPSHEETPAGEA): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "comctl32", importc.} -proc CreatePropertySheetPageW*(constPropSheetPagePointer: LPCPROPSHEETPAGEW): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DestroyPropertySheetPage*(P1: HPROPSHEETPAGE): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc PropertySheetA*(P1: LPCPROPSHEETHEADERA): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc.} -proc PropertySheetW*(P1: LPCPROPSHEETHEADERW): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc.} + GetCallback*: + proc(self: ptr IImageList2, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + ForceImagePresent*: + proc(self: ptr IImageList2, iImage: int32, dwFlags: DWORD): HRESULT {.stdcall.} + DiscardImages*: proc( + self: ptr IImageList2, iFirstImage: int32, iLastImage: int32, dwFlags: DWORD + ): HRESULT {.stdcall.} + PreloadImages*: + proc(self: ptr IImageList2, pimldp: ptr IMAGELISTDRAWPARAMS): HRESULT {.stdcall.} + GetStatistics*: + proc(self: ptr IImageList2, pils: ptr IMAGELISTSTATS): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IImageList2, + cx: int32, + cy: int32, + flags: UINT, + cInitial: int32, + cGrow: int32, + ): HRESULT {.stdcall.} + Replace2*: proc( + self: ptr IImageList2, + i: int32, + hbmImage: HBITMAP, + hbmMask: HBITMAP, + punk: ptr IUnknown, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + ReplaceFromImageList*: proc( + self: ptr IImageList2, + i: int32, + pil: ptr IImageList, + iSrc: int32, + punk: ptr IUnknown, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + +proc CreatePropertySheetPageA*( + constPropSheetPagePointer: LPCPROPSHEETPAGEA +): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc CreatePropertySheetPageW*( + constPropSheetPagePointer: LPCPROPSHEETPAGEW +): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DestroyPropertySheetPage*( + P1: HPROPSHEETPAGE +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc PropertySheetA*( + P1: LPCPROPSHEETHEADERA +): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc PropertySheetW*( + P1: LPCPROPSHEETHEADERW +): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc.} + proc InitCommonControls*(): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc InitCommonControlsEx*(P1: ptr TINITCOMMONCONTROLSEX): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Create*(cx: int32, cy: int32, flags: UINT, cInitial: int32, cGrow: int32): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Destroy*(himl: HIMAGELIST): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_GetImageCount*(himl: HIMAGELIST): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_SetImageCount*(himl: HIMAGELIST, uNewCount: UINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Add*(himl: HIMAGELIST, hbmImage: HBITMAP, hbmMask: HBITMAP): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_ReplaceIcon*(himl: HIMAGELIST, i: int32, hicon: HICON): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_SetBkColor*(himl: HIMAGELIST, clrBk: COLORREF): COLORREF {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_GetBkColor*(himl: HIMAGELIST): COLORREF {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_SetOverlayImage*(himl: HIMAGELIST, iImage: int32, iOverlay: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Draw*(himl: HIMAGELIST, i: int32, hdcDst: HDC, x: int32, y: int32, fStyle: UINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Replace*(himl: HIMAGELIST, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_AddMasked*(himl: HIMAGELIST, hbmImage: HBITMAP, crMask: COLORREF): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_DrawEx*(himl: HIMAGELIST, i: int32, hdcDst: HDC, x: int32, y: int32, dx: int32, dy: int32, rgbBk: COLORREF, rgbFg: COLORREF, fStyle: UINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_DrawIndirect*(pimldp: ptr IMAGELISTDRAWPARAMS): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Remove*(himl: HIMAGELIST, i: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_GetIcon*(himl: HIMAGELIST, i: int32, flags: UINT): HICON {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_LoadImageA*(hi: HINSTANCE, lpbmp: LPCSTR, cx: int32, cGrow: int32, crMask: COLORREF, uType: UINT, uFlags: UINT): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_LoadImageW*(hi: HINSTANCE, lpbmp: LPCWSTR, cx: int32, cGrow: int32, crMask: COLORREF, uType: UINT, uFlags: UINT): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Copy*(himlDst: HIMAGELIST, iDst: int32, himlSrc: HIMAGELIST, iSrc: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_BeginDrag*(himlTrack: HIMAGELIST, iTrack: int32, dxHotspot: int32, dyHotspot: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} +proc InitCommonControlsEx*( + P1: ptr TINITCOMMONCONTROLSEX +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Create*( + cx: int32, cy: int32, flags: UINT, cInitial: int32, cGrow: int32 +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Destroy*( + himl: HIMAGELIST +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_GetImageCount*( + himl: HIMAGELIST +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_SetImageCount*( + himl: HIMAGELIST, uNewCount: UINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Add*( + himl: HIMAGELIST, hbmImage: HBITMAP, hbmMask: HBITMAP +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_ReplaceIcon*( + himl: HIMAGELIST, i: int32, hicon: HICON +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_SetBkColor*( + himl: HIMAGELIST, clrBk: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_GetBkColor*( + himl: HIMAGELIST +): COLORREF {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_SetOverlayImage*( + himl: HIMAGELIST, iImage: int32, iOverlay: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Draw*( + himl: HIMAGELIST, i: int32, hdcDst: HDC, x: int32, y: int32, fStyle: UINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Replace*( + himl: HIMAGELIST, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_AddMasked*( + himl: HIMAGELIST, hbmImage: HBITMAP, crMask: COLORREF +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_DrawEx*( + himl: HIMAGELIST, + i: int32, + hdcDst: HDC, + x: int32, + y: int32, + dx: int32, + dy: int32, + rgbBk: COLORREF, + rgbFg: COLORREF, + fStyle: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_DrawIndirect*( + pimldp: ptr IMAGELISTDRAWPARAMS +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Remove*( + himl: HIMAGELIST, i: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_GetIcon*( + himl: HIMAGELIST, i: int32, flags: UINT +): HICON {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_LoadImageA*( + hi: HINSTANCE, + lpbmp: LPCSTR, + cx: int32, + cGrow: int32, + crMask: COLORREF, + uType: UINT, + uFlags: UINT, +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_LoadImageW*( + hi: HINSTANCE, + lpbmp: LPCWSTR, + cx: int32, + cGrow: int32, + crMask: COLORREF, + uType: UINT, + uFlags: UINT, +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Copy*( + himlDst: HIMAGELIST, iDst: int32, himlSrc: HIMAGELIST, iSrc: int32, uFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_BeginDrag*( + himlTrack: HIMAGELIST, iTrack: int32, dxHotspot: int32, dyHotspot: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + proc ImageList_EndDrag*(): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_DragEnter*(hwndLock: HWND, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_DragLeave*(hwndLock: HWND): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_DragMove*(x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_SetDragCursorImage*(himlDrag: HIMAGELIST, iDrag: int32, dxHotspot: int32, dyHotspot: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_DragShowNolock*(fShow: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_GetDragImage*(ppt: ptr POINT, pptHotspot: ptr POINT): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Read*(pstm: LPSTREAM): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Write*(himl: HIMAGELIST, pstm: LPSTREAM): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_ReadEx*(dwFlags: DWORD, pstm: LPSTREAM, riid: REFIID, ppv: ptr PVOID): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_WriteEx*(himl: HIMAGELIST, dwFlags: DWORD, pstm: LPSTREAM): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_GetIconSize*(himl: HIMAGELIST, cx: ptr int32, cy: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_SetIconSize*(himl: HIMAGELIST, cx: int32, cy: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_GetImageInfo*(himl: HIMAGELIST, i: int32, pImageInfo: ptr IMAGEINFO): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Merge*(himl1: HIMAGELIST, i1: int32, himl2: HIMAGELIST, i2: int32, dx: int32, dy: int32): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_Duplicate*(himl: HIMAGELIST): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} -proc HIMAGELIST_QueryInterface*(himl: HIMAGELIST, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc CreateToolbarEx*(hwnd: HWND, ws: DWORD, wID: UINT, nBitmaps: int32, hBMInst: HINSTANCE, wBMID: UINT_PTR, lpButtons: LPCTBBUTTON, iNumButtons: int32, dxButton: int32, dyButton: int32, dxBitmap: int32, dyBitmap: int32, uStructSize: UINT): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} -proc CreateMappedBitmap*(hInstance: HINSTANCE, idBitmap: INT_PTR, wFlags: UINT, lpColorMap: LPCOLORMAP, iNumMaps: int32): HBITMAP {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DrawStatusTextA*(hDC: HDC, lprc: LPCRECT, pszText: LPCSTR, uFlags: UINT): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DrawStatusTextW*(hDC: HDC, lprc: LPCRECT, pszText: LPCWSTR, uFlags: UINT): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc CreateStatusWindowA*(style: LONG, lpszText: LPCSTR, hwndParent: HWND, wID: UINT): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} -proc CreateStatusWindowW*(style: LONG, lpszText: LPCWSTR, hwndParent: HWND, wID: UINT): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} -proc MenuHelp*(uMsg: UINT, wParam: WPARAM, lParam: LPARAM, hMainMenu: HMENU, hInst: HINSTANCE, hwndStatus: HWND, lpwIDs: ptr UINT): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ShowHideMenuCtl*(hWnd: HWND, uFlags: UINT_PTR, lpInfo: LPINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc GetEffectiveClientRect*(hWnd: HWND, lprc: LPRECT, lpInfo: ptr INT): void {.winapi, stdcall, dynlib: "comctl32", importc.} +proc ImageList_DragEnter*( + hwndLock: HWND, x: int32, y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_DragLeave*( + hwndLock: HWND +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_DragMove*( + x: int32, y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_SetDragCursorImage*( + himlDrag: HIMAGELIST, iDrag: int32, dxHotspot: int32, dyHotspot: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_DragShowNolock*( + fShow: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_GetDragImage*( + ppt: ptr POINT, pptHotspot: ptr POINT +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Read*( + pstm: LPSTREAM +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Write*( + himl: HIMAGELIST, pstm: LPSTREAM +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_ReadEx*( + dwFlags: DWORD, pstm: LPSTREAM, riid: REFIID, ppv: ptr PVOID +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_WriteEx*( + himl: HIMAGELIST, dwFlags: DWORD, pstm: LPSTREAM +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_GetIconSize*( + himl: HIMAGELIST, cx: ptr int32, cy: ptr int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_SetIconSize*( + himl: HIMAGELIST, cx: int32, cy: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_GetImageInfo*( + himl: HIMAGELIST, i: int32, pImageInfo: ptr IMAGEINFO +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Merge*( + himl1: HIMAGELIST, i1: int32, himl2: HIMAGELIST, i2: int32, dx: int32, dy: int32 +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_Duplicate*( + himl: HIMAGELIST +): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc HIMAGELIST_QueryInterface*( + himl: HIMAGELIST, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc CreateToolbarEx*( + hwnd: HWND, + ws: DWORD, + wID: UINT, + nBitmaps: int32, + hBMInst: HINSTANCE, + wBMID: UINT_PTR, + lpButtons: LPCTBBUTTON, + iNumButtons: int32, + dxButton: int32, + dyButton: int32, + dxBitmap: int32, + dyBitmap: int32, + uStructSize: UINT, +): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc CreateMappedBitmap*( + hInstance: HINSTANCE, + idBitmap: INT_PTR, + wFlags: UINT, + lpColorMap: LPCOLORMAP, + iNumMaps: int32, +): HBITMAP {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DrawStatusTextA*( + hDC: HDC, lprc: LPCRECT, pszText: LPCSTR, uFlags: UINT +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DrawStatusTextW*( + hDC: HDC, lprc: LPCRECT, pszText: LPCWSTR, uFlags: UINT +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc CreateStatusWindowA*( + style: LONG, lpszText: LPCSTR, hwndParent: HWND, wID: UINT +): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc CreateStatusWindowW*( + style: LONG, lpszText: LPCWSTR, hwndParent: HWND, wID: UINT +): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc MenuHelp*( + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + hMainMenu: HMENU, + hInst: HINSTANCE, + hwndStatus: HWND, + lpwIDs: ptr UINT, +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ShowHideMenuCtl*( + hWnd: HWND, uFlags: UINT_PTR, lpInfo: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc GetEffectiveClientRect*( + hWnd: HWND, lprc: LPRECT, lpInfo: ptr INT +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + proc MakeDragList*(hLB: HWND): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DrawInsert*(handParent: HWND, hLB: HWND, nItem: int32): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc LBItemFromPt*(hLB: HWND, pt: POINT, bAutoScroll: WINBOOL): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc CreateUpDownControl*(dwStyle: DWORD, x: int32, y: int32, cx: int32, cy: int32, hParent: HWND, nID: int32, hInst: HINSTANCE, hBuddy: HWND, nUpper: int32, nLower: int32, nPos: int32): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} -proc TaskDialogIndirect*(pTaskConfig: ptr TASKDIALOGCONFIG, pnButton: ptr int32, pnRadioButton: ptr int32, pfVerificationFlagChecked: ptr WINBOOL): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc TaskDialog*(hwndOwner: HWND, hInstance: HINSTANCE, pszWindowTitle: PCWSTR, pszMainInstruction: PCWSTR, pszContent: PCWSTR, dwCommonButtons: TASKDIALOG_COMMON_BUTTON_FLAGS, pszIcon: PCWSTR, pnButton: ptr int32): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc InitMUILanguage*(uiLang: LANGID): void {.winapi, stdcall, dynlib: "comctl32", importc.} +proc DrawInsert*( + handParent: HWND, hLB: HWND, nItem: int32 +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc LBItemFromPt*( + hLB: HWND, pt: POINT, bAutoScroll: WINBOOL +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc CreateUpDownControl*( + dwStyle: DWORD, + x: int32, + y: int32, + cx: int32, + cy: int32, + hParent: HWND, + nID: int32, + hInst: HINSTANCE, + hBuddy: HWND, + nUpper: int32, + nLower: int32, + nPos: int32, +): HWND {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc TaskDialogIndirect*( + pTaskConfig: ptr TASKDIALOGCONFIG, + pnButton: ptr int32, + pnRadioButton: ptr int32, + pfVerificationFlagChecked: ptr WINBOOL, +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc TaskDialog*( + hwndOwner: HWND, + hInstance: HINSTANCE, + pszWindowTitle: PCWSTR, + pszMainInstruction: PCWSTR, + pszContent: PCWSTR, + dwCommonButtons: TASKDIALOG_COMMON_BUTTON_FLAGS, + pszIcon: PCWSTR, + pnButton: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc InitMUILanguage*( + uiLang: LANGID +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + proc GetMUILanguage*(): LANGID {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_Create*(cbItem: int32, cItemGrow: int32): HDSA {.winapi, stdcall, dynlib: "comctl32", importc.} +proc DSA_Create*( + cbItem: int32, cItemGrow: int32 +): HDSA {.winapi, stdcall, dynlib: "comctl32", importc.} + proc DSA_Destroy*(hdsa: HDSA): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_DestroyCallback*(hdsa: HDSA, pfnCB: PFNDAENUMCALLBACK, pData: pointer): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_DeleteItem*(hdsa: HDSA, i: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_DeleteAllItems*(hdsa: HDSA): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_EnumCallback*(hdsa: HDSA, pfnCB: PFNDAENUMCALLBACK, pData: pointer): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_InsertItem*(hdsa: HDSA, i: int32, pitem: pointer): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_GetItemPtr*(hdsa: HDSA, i: int32): PVOID {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_GetItem*(hdsa: HDSA, i: int32, pitem: pointer): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_SetItem*(hdsa: HDSA, i: int32, pitem: pointer): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} +proc DSA_DestroyCallback*( + hdsa: HDSA, pfnCB: PFNDAENUMCALLBACK, pData: pointer +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_DeleteItem*( + hdsa: HDSA, i: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_DeleteAllItems*( + hdsa: HDSA +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_EnumCallback*( + hdsa: HDSA, pfnCB: PFNDAENUMCALLBACK, pData: pointer +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_InsertItem*( + hdsa: HDSA, i: int32, pitem: pointer +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_GetItemPtr*( + hdsa: HDSA, i: int32 +): PVOID {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_GetItem*( + hdsa: HDSA, i: int32, pitem: pointer +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_SetItem*( + hdsa: HDSA, i: int32, pitem: pointer +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + proc DSA_Clone*(hdsa: HDSA): HDSA {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_GetSize*(hdsa: HDSA): ULONGLONG {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DSA_Sort*(pdsa: HDSA, pfnCompare: PFNDACOMPARE, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_Create*(cItemGrow: int32): HDPA {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_CreateEx*(cpGrow: int32, hheap: HANDLE): HDPA {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_Clone*(hdpa: HDPA, hdpaNew: HDPA): HDPA {.winapi, stdcall, dynlib: "comctl32", importc.} +proc DSA_GetSize*( + hdsa: HDSA +): ULONGLONG {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DSA_Sort*( + pdsa: HDSA, pfnCompare: PFNDACOMPARE, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_Create*( + cItemGrow: int32 +): HDPA {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_CreateEx*( + cpGrow: int32, hheap: HANDLE +): HDPA {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_Clone*( + hdpa: HDPA, hdpaNew: HDPA +): HDPA {.winapi, stdcall, dynlib: "comctl32", importc.} + proc DPA_Destroy*(hdpa: HDPA): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_DestroyCallback*(hdpa: HDPA, pfnCB: PFNDAENUMCALLBACK, pData: pointer): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_DeletePtr*(hdpa: HDPA, i: int32): PVOID {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_DeleteAllPtrs*(hdpa: HDPA): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_EnumCallback*(hdpa: HDPA, pfnCB: PFNDAENUMCALLBACK, pData: pointer): void {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_Grow*(pdpa: HDPA, cp: int32): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_InsertPtr*(hdpa: HDPA, i: int32, p: pointer): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_SetPtr*(hdpa: HDPA, i: int32, p: pointer): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_GetPtr*(hdpa: HDPA, i: INT_PTR): PVOID {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_GetPtrIndex*(hdpa: HDPA, p: pointer): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_GetSize*(hdpa: HDPA): ULONGLONG {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_Sort*(hdpa: HDPA, pfnCompare: PFNDACOMPARE, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_LoadStream*(phdpa: ptr HDPA, pfn: PFNDPASTREAM, pstream: ptr IStream, pvInstData: pointer): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_SaveStream*(hdpa: HDPA, pfn: PFNDPASTREAM, pstream: ptr IStream, pvInstData: pointer): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_Merge*(hdpaDest: HDPA, hdpaSrc: HDPA, dwFlags: DWORD, pfnCompare: PFNDACOMPARE, pfnMerge: PFNDPAMERGE, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DPA_Search*(hdpa: HDPA, pFind: pointer, iStart: int32, pfnCompare: PFNDACOMPARE, lParam: LPARAM, options: UINT): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc Str_SetPtrW*(ppsz: ptr LPWSTR, psz: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc COMCTL32_TrackMouseEvent*(lpEventTrack: LPTRACKMOUSEEVENT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc: "_TrackMouseEvent".} -proc FlatSB_EnableScrollBar*(P1: HWND, P2: int32, P3: UINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_ShowScrollBar*(P1: HWND, code: int32, P3: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_GetScrollRange*(P1: HWND, code: int32, P3: LPINT, P4: LPINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_GetScrollInfo*(P1: HWND, code: int32, P3: LPSCROLLINFO): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_GetScrollPos*(P1: HWND, code: int32): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_GetScrollProp*(P1: HWND, propIndex: int32, P3: LPINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_SetScrollPos*(P1: HWND, code: int32, pos: int32, fRedraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_SetScrollInfo*(P1: HWND, code: int32, P3: LPSCROLLINFO, fRedraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_SetScrollRange*(P1: HWND, code: int32, min: int32, max: int32, fRedraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_SetScrollProp*(P1: HWND, index: UINT, newValue: INT_PTR, P4: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc FlatSB_SetScrollPropPtr*(P1: HWND, index: UINT, newValue: INT_PTR, P4: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc: "FlatSB_SetScrollProp".} -proc InitializeFlatSB*(P1: HWND): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc UninitializeFlatSB*(P1: HWND): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc SetWindowSubclass*(hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR, dwRefData: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc GetWindowSubclass*(hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR, pdwRefData: ptr DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc RemoveWindowSubclass*(hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DefSubclassProc*(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc DrawShadowText*(hdc: HDC, pszText: LPCWSTR, cch: UINT, prc: ptr RECT, dwFlags: DWORD, crText: COLORREF, crShadow: COLORREF, ixOffset: int32, iyOffset: int32): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} -proc LoadIconMetric*(hinst: HINSTANCE, pszName: PCWSTR, lims: int32, phico: ptr HICON): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc LoadIconWithScaleDown*(hinst: HINSTANCE, pszName: PCWSTR, cx: int32, cy: int32, phico: ptr HICON): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -proc ImageList_CoCreateInstance*(rclsid: REFCLSID, punkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} -template HANDLE_WM_NOTIFY*(hwnd: HWND, wParam: WPARAM, lParam: LPARAM, fn: proc(hwnd: HWND, wParam: WPARAM, nmhdr: ptr NMHDR)) = fn(hwnd, wParam, cast[ptr NMHDR](lParam)) -template FORWARD_WM_NOTIFY*(hwnd: HWND, idFrom: int32, pnmhdr: ptr NMHDR, fn: SendMessage.type|PostMessage.type): untyped = fn(hwnd, WM_NOTIFY, WPARAM idFrom, cast[LPARAM](pnmhdr)) -template INDEXTOOVERLAYMASK*(i: untyped): untyped = i shl 8 -template INDEXTOSTATEIMAGEMASK*(i: untyped): untyped = i shl 12 -template MAKEIPRANGE*(low: BYTE, high: BYTE): LPARAM = (high.LPARAM shl 8) + low.LPARAM -template MAKEIPADDRESS*(b1: BYTE, b2: BYTE, b3: BYTE, b4: BYTE): LPARAM = (b1.LPARAM shl 24) + (b2.LPARAM shl 16) + (b3.LPARAM shl 8) + (b4.LPARAM) -template FIRST_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x shr 24) -template SECOND_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x shr 16) -template THIRD_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x shr 8) -template FOURTH_IPADDRESS*(x: LPARAM): BYTE = cast[BYTE](x) +proc DPA_DestroyCallback*( + hdpa: HDPA, pfnCB: PFNDAENUMCALLBACK, pData: pointer +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_DeletePtr*( + hdpa: HDPA, i: int32 +): PVOID {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_DeleteAllPtrs*( + hdpa: HDPA +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_EnumCallback*( + hdpa: HDPA, pfnCB: PFNDAENUMCALLBACK, pData: pointer +): void {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_Grow*( + pdpa: HDPA, cp: int32 +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_InsertPtr*( + hdpa: HDPA, i: int32, p: pointer +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_SetPtr*( + hdpa: HDPA, i: int32, p: pointer +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_GetPtr*( + hdpa: HDPA, i: INT_PTR +): PVOID {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_GetPtrIndex*( + hdpa: HDPA, p: pointer +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_GetSize*( + hdpa: HDPA +): ULONGLONG {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_Sort*( + hdpa: HDPA, pfnCompare: PFNDACOMPARE, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_LoadStream*( + phdpa: ptr HDPA, pfn: PFNDPASTREAM, pstream: ptr IStream, pvInstData: pointer +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_SaveStream*( + hdpa: HDPA, pfn: PFNDPASTREAM, pstream: ptr IStream, pvInstData: pointer +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_Merge*( + hdpaDest: HDPA, + hdpaSrc: HDPA, + dwFlags: DWORD, + pfnCompare: PFNDACOMPARE, + pfnMerge: PFNDPAMERGE, + lParam: LPARAM, +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DPA_Search*( + hdpa: HDPA, + pFind: pointer, + iStart: int32, + pfnCompare: PFNDACOMPARE, + lParam: LPARAM, + options: UINT, +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc Str_SetPtrW*( + ppsz: ptr LPWSTR, psz: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc COMCTL32_TrackMouseEvent*( + lpEventTrack: LPTRACKMOUSEEVENT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc: "_TrackMouseEvent".} + +proc FlatSB_EnableScrollBar*( + P1: HWND, P2: int32, P3: UINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_ShowScrollBar*( + P1: HWND, code: int32, P3: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_GetScrollRange*( + P1: HWND, code: int32, P3: LPINT, P4: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_GetScrollInfo*( + P1: HWND, code: int32, P3: LPSCROLLINFO +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_GetScrollPos*( + P1: HWND, code: int32 +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_GetScrollProp*( + P1: HWND, propIndex: int32, P3: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_SetScrollPos*( + P1: HWND, code: int32, pos: int32, fRedraw: WINBOOL +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_SetScrollInfo*( + P1: HWND, code: int32, P3: LPSCROLLINFO, fRedraw: WINBOOL +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_SetScrollRange*( + P1: HWND, code: int32, min: int32, max: int32, fRedraw: WINBOOL +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_SetScrollProp*( + P1: HWND, index: UINT, newValue: INT_PTR, P4: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc FlatSB_SetScrollPropPtr*( + P1: HWND, index: UINT, newValue: INT_PTR, P4: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc: "FlatSB_SetScrollProp".} + +proc InitializeFlatSB*( + P1: HWND +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc UninitializeFlatSB*( + P1: HWND +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc SetWindowSubclass*( + hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR, dwRefData: DWORD_PTR +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc GetWindowSubclass*( + hWnd: HWND, + pfnSubclass: SUBCLASSPROC, + uIdSubclass: UINT_PTR, + pdwRefData: ptr DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc RemoveWindowSubclass*( + hWnd: HWND, pfnSubclass: SUBCLASSPROC, uIdSubclass: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DefSubclassProc*( + hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc DrawShadowText*( + hdc: HDC, + pszText: LPCWSTR, + cch: UINT, + prc: ptr RECT, + dwFlags: DWORD, + crText: COLORREF, + crShadow: COLORREF, + ixOffset: int32, + iyOffset: int32, +): int32 {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc LoadIconMetric*( + hinst: HINSTANCE, pszName: PCWSTR, lims: int32, phico: ptr HICON +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc LoadIconWithScaleDown*( + hinst: HINSTANCE, pszName: PCWSTR, cx: int32, cy: int32, phico: ptr HICON +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +proc ImageList_CoCreateInstance*( + rclsid: REFCLSID, punkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "comctl32", importc.} + +template HANDLE_WM_NOTIFY*( + hwnd: HWND, + wParam: WPARAM, + lParam: LPARAM, + fn: proc(hwnd: HWND, wParam: WPARAM, nmhdr: ptr NMHDR), +) = + fn(hwnd, wParam, cast[ptr NMHDR](lParam)) + +template FORWARD_WM_NOTIFY*( + hwnd: HWND, + idFrom: int32, + pnmhdr: ptr NMHDR, + fn: SendMessage.type | PostMessage.type, +): untyped = + fn(hwnd, WM_NOTIFY, WPARAM idFrom, cast[LPARAM](pnmhdr)) + +template INDEXTOOVERLAYMASK*(i: untyped): untyped = + i shl 8 + +template INDEXTOSTATEIMAGEMASK*(i: untyped): untyped = + i shl 12 + +template MAKEIPRANGE*(low: BYTE, high: BYTE): LPARAM = + (high.LPARAM shl 8) + low.LPARAM + +template MAKEIPADDRESS*(b1: BYTE, b2: BYTE, b3: BYTE, b4: BYTE): LPARAM = + (b1.LPARAM shl 24) + (b2.LPARAM shl 16) + (b3.LPARAM shl 8) + (b4.LPARAM) + +template FIRST_IPADDRESS*(x: LPARAM): BYTE = + cast[BYTE](x shr 24) + +template SECOND_IPADDRESS*(x: LPARAM): BYTE = + cast[BYTE](x shr 16) + +template THIRD_IPADDRESS*(x: LPARAM): BYTE = + cast[BYTE](x shr 8) + +template FOURTH_IPADDRESS*(x: LPARAM): BYTE = + cast[BYTE](x) + when winimUnicode: - const - ACM_OPEN* = ACM_OPENW -when winimAnsi: - const - ACM_OPEN* = ACM_OPENA -template Animate_Open*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL SendMessage(hwnd, ACM_OPEN, 0, cast[LPARAM](szName)) -template Animate_Close*(hwnd: HWND): BOOL = Animate_Open(hwnd, NULL) -when winimUnicode: - const - ANIMATE_CLASS* = ANIMATE_CLASSW + const ACM_OPEN* = ACM_OPENW when winimAnsi: - const - ANIMATE_CLASS* = ANIMATE_CLASSA -template Animate_Create*(hwndP: HWND, id: UINT, dwStyle: DWORD, hInstance: HINSTANCE): HWND = CreateWindow(ANIMATE_CLASS, NULL, dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, NULL) -template Animate_IsPlaying*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, ACM_ISPLAYING, 0, 0) -template Animate_OpenEx*(hwnd: HWND, hInst: HINSTANCE, szName: LPTSTR): BOOL = discardable BOOL SendMessage(hwnd, ACM_OPEN, cast[WPARAM](hInst), cast[LPARAM](szName)) -template Animate_Play*(hwnd: HWND, `from`: UINT, `to`: UINT, rep: UINT): BOOL = discardable BOOL SendMessage(hwnd, ACM_PLAY, cast[WPARAM](rep), cast[LPARAM](MAKELONG(`from`, `to`))) -template Animate_Seek*(hwnd: HWND, frame: UINT): BOOL = Animate_Play(hwnd, frame, frame, 1) -template Animate_Stop*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, ACM_STOP, 0, 0) -template Button_GetIdealSize*(hwnd: HWND, psize: ptr SIZE): BOOL = discardable BOOL SendMessage(hwnd, BCM_GETIDEALSIZE, 0, cast[LPARAM](psize)) -template Button_GetImageList*(hwnd: HWND, pbuttonImagelist: PBUTTON_IMAGELIST): BOOL = discardable BOOL SendMessage(hwnd, BCM_GETIMAGELIST, 0, cast[LPARAM](pbuttonImagelist)) -template Button_GetNote*(hwnd: HWND, psz: LPCWSTR, pcc: int32): BOOL = discardable BOOL SendMessage(hwnd, BCM_GETNOTE, cast[WPARAM](pcc), cast[LPARAM](psz)) -template Button_GetNoteLength*(hwnd: HWND): LRESULT = discardable LRESULT SendMessage(hwnd, BCM_GETNOTELENGTH, 0, 0) -template Button_GetSplitInfo*(hwnd: HWND, pInfo: ptr BUTTON_SPLITINFO): BOOL = discardable BOOL SendMessage(hwnd, BCM_GETSPLITINFO, 0, cast[LPARAM](pInfo)) -template Button_GetTextMargin*(hwnd: HWND, pmargin: ptr RECT): BOOL = discardable BOOL SendMessage(hwnd, BCM_GETTEXTMARGIN, 0, cast[LPARAM](pmargin)) -template Button_SetDropDownState*(hwnd: HWND, fDropDown: BOOL): BOOL = discardable BOOL SendMessage(hwnd, BCM_SETDROPDOWNSTATE, cast[WPARAM](fDropDown), 0) -template Button_SetElevationRequiredState*(hwnd: HWND, fRequired: BOOL): LRESULT = discardable LRESULT SendMessage(hwnd, BCM_SETSHIELD, 0, cast[LPARAM](fRequired)) -template Button_SetImageList*(hwnd: HWND, pbuttonImagelist: PBUTTON_IMAGELIST): BOOL = discardable BOOL SendMessage(hwnd, BCM_SETIMAGELIST, 0, cast[LPARAM](pbuttonImagelist)) -template Button_SetNote*(hwnd: HWND, psz: PCWSTR): BOOL = discardable BOOL SendMessage(hwnd, BCM_SETNOTE, 0, cast[LPARAM](psz)) -template Button_SetSplitInfo*(hwnd: HWND, pInfo: ptr BUTTON_SPLITINFO): BOOL = discardable BOOL SendMessage(hwnd, BCM_SETSPLITINFO, 0, cast[LPARAM](pInfo)) -template Button_SetTextMargin*(hwnd: HWND, pmargin: ptr RECT): BOOL = discardable BOOL SendMessage(hwnd, BCM_SETTEXTMARGIN, 0, cast[LPARAM](pmargin)) -template ComboBox_GetCueBannerText*(hwnd: HWND, lpwText: LPWSTR, cchText: int32): BOOL = discardable BOOL SendMessage(hwnd, CB_GETCUEBANNER, cast[WPARAM](lpwText), cast[LPARAM](cchText)) -template ComboBox_GetMinVisible*(hwnd: HWND): INT = discardable INT SendMessage(hwnd, CB_GETMINVISIBLE, 0, 0) -template ComboBox_SetCueBannerText*(hwnd: HWND, lpcwText: LPCWSTR): BOOL = discardable BOOL SendMessage(hwnd, CB_SETCUEBANNER, 0, cast[LPARAM](lpcwText)) -template ComboBox_SetMinVisible*(hwnd: HWND, iMinVisible: INT): BOOL = discardable BOOL SendMessage(hwnd, CB_SETMINVISIBLE, cast[WPARAM](iMinVisible), 0) -template DateTime_CloseMonthCal*(hdp: HWND): LRESULT = discardable LRESULT SendMessage(hdp, DTM_CLOSEMONTHCAL, 0, 0) -template DateTime_GetDateTimePickerInfo*(hdp: HWND, pdtpi: ptr DATETIMEPICKERINFO): LRESULT = discardable LRESULT SendMessage(hdp, DTM_GETDATETIMEPICKERINFO, 0, cast[LPARAM](pdtpi)) -template DateTime_GetIdealSize*(hdp: HWND, psize: SIZE): BOOL = discardable BOOL SendMessage(hdp, DTM_GETIDEALSIZE, 0, cast[LPARAM](psize)) -template DateTime_GetMonthCal*(hdp: HWND): HWND = discardable HWND SendMessage(hdp, DTM_GETMONTHCAL, 0, 0) -template DateTime_GetMonthCalColor*(hdp: HWND, iColor: int32): COLORREF = discardable COLORREF SendMessage(hdp, DTM_GETMCCOLOR, cast[WPARAM](iColor), 0) -template DateTime_GetMonthCalFont*(hdp: HWND): HFONT = discardable HFONT SendMessage(hdp, DTM_GETMCFONT, 0, 0) -template DateTime_GetMonthCalStyle*(hdp: HWND): LRESULT = discardable LRESULT SendMessage(hdp, DTM_GETMCSTYLE, 0, 0) -template DateTime_GetRange*(hdp: HWND, rgst: LPSYSTEMTIME): DWORD = discardable DWORD SendMessage(hdp, DTM_GETRANGE, 0, cast[LPARAM](rgst)) -template DateTime_GetSystemtime*(hdp: HWND, pst: LPSYSTEMTIME): DWORD = discardable DWORD SendMessage(hdp, DTM_GETSYSTEMTIME, 0, cast[LPARAM](pst)) + const ACM_OPEN* = ACM_OPENA +template Animate_Open*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL SendMessage(hwnd, ACM_OPEN, 0, cast[LPARAM](szName)) + +template Animate_Close*(hwnd: HWND): BOOL = + Animate_Open(hwnd, NULL) + when winimUnicode: - const - DTM_SETFORMAT* = DTM_SETFORMATW -when winimAnsi: - const - DTM_SETFORMAT* = DTM_SETFORMATA -template DateTime_SetFormat*(hdp: HWND, sz: LPCTSTR): void = SendMessage(hdp, DTM_SETFORMAT, 0, cast[LPARAM](sz)) -template DateTime_SetMonthCalColor*(hdp: HWND, iColor: int32, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hdp, DTM_SETMCCOLOR, cast[WPARAM](iColor), cast[LPARAM](clr)) -template DateTime_SetMonthCalFont*(hdp: HWND, hfont: HFONT, fRedraw: int32): void = SendMessage(hdp, DTM_SETMCFONT, cast[WPARAM](hfont), cast[LPARAM](fRedraw)) -template DateTime_SetMonthCalStyle*(hdp: HWND, dwStyle: DWORD): LRESULT = discardable LRESULT SendMessage(hdp, DTM_SETMCSTYLE, 0, cast[LPARAM](dwStyle)) -template DateTime_SetRange*(hdp: HWND, gd: DWORD, rgst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hdp, DTM_SETRANGE, cast[WPARAM](gd), cast[LPARAM](rgst)) -template DateTime_SetSystemtime*(hdp: HWND, gd: DWORD, pst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hdp, DTM_SETSYSTEMTIME, cast[WPARAM](gd), cast[LPARAM](pst)) -template DPA_AppendPtr*(hdpa: HDPA, pitem: pointer): int32 = DPA_InsertPtr(hdpa, DA_LAST, pitem) -template DPA_FastDeleteLastPtr*(hdpa: HDPA): void = cast[ptr int32](hdpa)[].dec -template DPA_GetPtrPtr*(hdpa: HDPA): ptr pointer = discardable (cast[ptr ptr pointer](cast[int](hdpa) + sizeof(pointer)))[] -template DPA_FastGetPtr*(hdpa: HDPA, i: int32): ptr pointer = discardable cast[ptr pointer](cast[int](DPA_GetPtrPtr(hdpa)) + sizeof(pointer) * i) -template DPA_GetPtrCount*(hdpa: HDPA): int32 = discardable int32 cast[ptr int32](hdpa)[] -template DPA_SetPtrCount*(hdpa: HDPA, cItems: int32): int32 = (cast[ptr int32](hdpa)[] = cItems; discardable int32 cItems) -template DPA_SortedInsertPtr*(hdpa: HDPA, pFind: pointer, iStart: int32, pfnCompare: PFNDPACOMPARE, lParam: LPARAM, options: UINT, pitem: pointer): int32 = DPA_InsertPtr(hdpa, DPA_Search(hdpa, pFind, iStart, pfnCompare, lParam, options or DPAS_SORTED), pitem) -template DSA_AppendItem*(hdsa: HDSA, pitem: pointer): int32 = DSA_InsertItem(hdsa, DA_LAST, pitem) -template DSA_GetItemCount*(hdsa: HDSA): int32 = discardable int32 cast[ptr int32](hdsa)[] -template Edit_GetCueBannerText*(hwnd: HWND, lpwText: LPCWSTR, cchText: LONG): BOOL = discardable BOOL SendMessage(hwnd, EM_GETCUEBANNER, cast[WPARAM](lpwText), cast[LPARAM](cchText)) -template Edit_GetHilite*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, EM_GETHILITE, 0, 0) -template Edit_HideBalloonTip*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, EM_HIDEBALLOONTIP, 0, 0) -template Edit_NoSetFocus*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, EM_NOSETFOCUS, 0, 0) -template Edit_SetCueBannerText*(hwnd: HWND, lpcwText: LPCWSTR): BOOL = discardable BOOL SendMessage(hwnd, EM_SETCUEBANNER, 0, cast[LPARAM](lpcwText)) -template Edit_SetHilite*(hwnd: HWND, ichStart: int32, ichEnd: int32): void = SendMessage(hwnd, EM_SETHILITE, cast[WPARAM](ichStart), cast[LPARAM](ichEnd)) -template Edit_ShowBalloonTip*(hwnd: HWND, peditballoontip: PEDITBALLOONTIP): BOOL = discardable BOOL SendMessage(hwnd, EM_SHOWBALLOONTIP, 0, cast[LPARAM](peditballoontip)) -template Edit_TakeFocus*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, EM_TAKEFOCUS, 0, 0) -template Header_ClearAllFilters*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, HDM_CLEARFILTER, cast[WPARAM](-1), 0) -template Header_ClearFilter*(hwnd: HWND, i: int32): int32 = discardable int32 SendMessage(hwnd, HDM_CLEARFILTER, cast[WPARAM](i), 0) -template Header_CreateDragImage*(hwnd: HWND, i: int32): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, HDM_CREATEDRAGIMAGE, cast[WPARAM](i), 0) -template Header_DeleteItem*(hwndHD: HWND, i: int32): BOOL = discardable BOOL SendMessage(hwndHD, HDM_DELETEITEM, cast[WPARAM](i), 0) -template Header_EditFilter*(hwnd: HWND, i: int32, fDiscardChanges: BOOL): int32 = discardable int32 SendMessage(hwnd, HDM_EDITFILTER, cast[WPARAM](i), MAKELPARAM(fDiscardChanges, 0)) -template Header_GetBitmapMargin*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, HDM_GETBITMAPMARGIN, 0, 0) -template Header_GetFocusedItem*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, HDM_GETFOCUSEDITEM, 0, 0) -template Header_GetImageList*(hwnd: HWND): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, HDM_GETIMAGELIST, 0, 0) -when winimUnicode: - type - LPHDITEM* = LPHDITEMW + const ANIMATE_CLASS* = ANIMATE_CLASSW when winimAnsi: - type - LPHDITEM* = LPHDITEMA -when winimUnicode: - const - HDM_GETITEM* = HDM_GETITEMW -when winimAnsi: - const - HDM_GETITEM* = HDM_GETITEMA -template Header_GetItem*(hwndHD: HWND, i: int32, phdi: LPHDITEM): BOOL = discardable BOOL SendMessage(hwndHD, HDM_GETITEM, cast[WPARAM](i), cast[LPARAM](phdi)) -template Header_GetItemCount*(hwndHD: HWND): int32 = discardable int32 SendMessage(hwndHD, HDM_GETITEMCOUNT, 0, 0) -template Header_GetItemDropDownRect*(hwnd: HWND, iItem: int32, lprc: LPRECT): BOOL = discardable BOOL SendMessage(hwnd, HDM_GETITEMDROPDOWNRECT, cast[WPARAM](iItem), cast[LPARAM](lprc)) -template Header_GetItemRect*(hwnd: HWND, iItem: int32, lprc: LPRECT): BOOL = discardable BOOL SendMessage(hwnd, HDM_GETITEMRECT, cast[WPARAM](iItem), cast[LPARAM](lprc)) -template Header_GetOrderArray*(hwnd: HWND, iCount: int32, lpi: ptr int32): BOOL = discardable BOOL SendMessage(hwnd, HDM_GETORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](lpi)) -template Header_GetOverflowRect*(hwnd: HWND, lprc: LPRECT): BOOL = discardable BOOL SendMessage(hwnd, HDM_GETOVERFLOWRECT, 0, cast[LPARAM](lprc)) -template Header_GetUnicodeFormat*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, HDM_GETUNICODEFORMAT, 0, 0) + const ANIMATE_CLASS* = ANIMATE_CLASSA +template Animate_Create*( + hwndP: HWND, id: UINT, dwStyle: DWORD, hInstance: HINSTANCE +): HWND = + CreateWindow(ANIMATE_CLASS, NULL, dwStyle, 0, 0, 0, 0, hwndP, id, hInstance, NULL) + +template Animate_IsPlaying*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, ACM_ISPLAYING, 0, 0) + +template Animate_OpenEx*(hwnd: HWND, hInst: HINSTANCE, szName: LPTSTR): BOOL = + discardable BOOL SendMessage( + hwnd, ACM_OPEN, cast[WPARAM](hInst), cast[LPARAM](szName) + ) + +template Animate_Play*(hwnd: HWND, `from`: UINT, `to`: UINT, rep: UINT): BOOL = + discardable BOOL SendMessage( + hwnd, ACM_PLAY, cast[WPARAM](rep), cast[LPARAM](MAKELONG(`from`, `to`)) + ) + +template Animate_Seek*(hwnd: HWND, frame: UINT): BOOL = + Animate_Play(hwnd, frame, frame, 1) + +template Animate_Stop*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, ACM_STOP, 0, 0) + +template Button_GetIdealSize*(hwnd: HWND, psize: ptr SIZE): BOOL = + discardable BOOL SendMessage(hwnd, BCM_GETIDEALSIZE, 0, cast[LPARAM](psize)) + +template Button_GetImageList*(hwnd: HWND, pbuttonImagelist: PBUTTON_IMAGELIST): BOOL = + discardable BOOL SendMessage( + hwnd, BCM_GETIMAGELIST, 0, cast[LPARAM](pbuttonImagelist) + ) + +template Button_GetNote*(hwnd: HWND, psz: LPCWSTR, pcc: int32): BOOL = + discardable BOOL SendMessage(hwnd, BCM_GETNOTE, cast[WPARAM](pcc), cast[LPARAM](psz)) + +template Button_GetNoteLength*(hwnd: HWND): LRESULT = + discardable LRESULT SendMessage(hwnd, BCM_GETNOTELENGTH, 0, 0) + +template Button_GetSplitInfo*(hwnd: HWND, pInfo: ptr BUTTON_SPLITINFO): BOOL = + discardable BOOL SendMessage(hwnd, BCM_GETSPLITINFO, 0, cast[LPARAM](pInfo)) + +template Button_GetTextMargin*(hwnd: HWND, pmargin: ptr RECT): BOOL = + discardable BOOL SendMessage(hwnd, BCM_GETTEXTMARGIN, 0, cast[LPARAM](pmargin)) + +template Button_SetDropDownState*(hwnd: HWND, fDropDown: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, BCM_SETDROPDOWNSTATE, cast[WPARAM](fDropDown), 0) + +template Button_SetElevationRequiredState*(hwnd: HWND, fRequired: BOOL): LRESULT = + discardable LRESULT SendMessage(hwnd, BCM_SETSHIELD, 0, cast[LPARAM](fRequired)) + +template Button_SetImageList*(hwnd: HWND, pbuttonImagelist: PBUTTON_IMAGELIST): BOOL = + discardable BOOL SendMessage( + hwnd, BCM_SETIMAGELIST, 0, cast[LPARAM](pbuttonImagelist) + ) + +template Button_SetNote*(hwnd: HWND, psz: PCWSTR): BOOL = + discardable BOOL SendMessage(hwnd, BCM_SETNOTE, 0, cast[LPARAM](psz)) + +template Button_SetSplitInfo*(hwnd: HWND, pInfo: ptr BUTTON_SPLITINFO): BOOL = + discardable BOOL SendMessage(hwnd, BCM_SETSPLITINFO, 0, cast[LPARAM](pInfo)) + +template Button_SetTextMargin*(hwnd: HWND, pmargin: ptr RECT): BOOL = + discardable BOOL SendMessage(hwnd, BCM_SETTEXTMARGIN, 0, cast[LPARAM](pmargin)) + +template ComboBox_GetCueBannerText*(hwnd: HWND, lpwText: LPWSTR, cchText: int32): BOOL = + discardable BOOL SendMessage( + hwnd, CB_GETCUEBANNER, cast[WPARAM](lpwText), cast[LPARAM](cchText) + ) + +template ComboBox_GetMinVisible*(hwnd: HWND): INT = + discardable INT SendMessage(hwnd, CB_GETMINVISIBLE, 0, 0) + +template ComboBox_SetCueBannerText*(hwnd: HWND, lpcwText: LPCWSTR): BOOL = + discardable BOOL SendMessage(hwnd, CB_SETCUEBANNER, 0, cast[LPARAM](lpcwText)) + +template ComboBox_SetMinVisible*(hwnd: HWND, iMinVisible: INT): BOOL = + discardable BOOL SendMessage(hwnd, CB_SETMINVISIBLE, cast[WPARAM](iMinVisible), 0) + +template DateTime_CloseMonthCal*(hdp: HWND): LRESULT = + discardable LRESULT SendMessage(hdp, DTM_CLOSEMONTHCAL, 0, 0) + +template DateTime_GetDateTimePickerInfo*( + hdp: HWND, pdtpi: ptr DATETIMEPICKERINFO +): LRESULT = + discardable LRESULT SendMessage( + hdp, DTM_GETDATETIMEPICKERINFO, 0, cast[LPARAM](pdtpi) + ) + +template DateTime_GetIdealSize*(hdp: HWND, psize: SIZE): BOOL = + discardable BOOL SendMessage(hdp, DTM_GETIDEALSIZE, 0, cast[LPARAM](psize)) + +template DateTime_GetMonthCal*(hdp: HWND): HWND = + discardable HWND SendMessage(hdp, DTM_GETMONTHCAL, 0, 0) + +template DateTime_GetMonthCalColor*(hdp: HWND, iColor: int32): COLORREF = + discardable COLORREF SendMessage(hdp, DTM_GETMCCOLOR, cast[WPARAM](iColor), 0) + +template DateTime_GetMonthCalFont*(hdp: HWND): HFONT = + discardable HFONT SendMessage(hdp, DTM_GETMCFONT, 0, 0) + +template DateTime_GetMonthCalStyle*(hdp: HWND): LRESULT = + discardable LRESULT SendMessage(hdp, DTM_GETMCSTYLE, 0, 0) + +template DateTime_GetRange*(hdp: HWND, rgst: LPSYSTEMTIME): DWORD = + discardable DWORD SendMessage(hdp, DTM_GETRANGE, 0, cast[LPARAM](rgst)) + +template DateTime_GetSystemtime*(hdp: HWND, pst: LPSYSTEMTIME): DWORD = + discardable DWORD SendMessage(hdp, DTM_GETSYSTEMTIME, 0, cast[LPARAM](pst)) + when winimUnicode: - const - HDM_INSERTITEM* = HDM_INSERTITEMW -when winimAnsi: - const - HDM_INSERTITEM* = HDM_INSERTITEMA -template Header_InsertItem*(hwndHD: HWND, i: int32, phdi: LPHDITEM): int32 = discardable int32 SendMessage(hwndHD, HDM_INSERTITEM, cast[WPARAM](i), cast[LPARAM](phdi)) -template Header_Layout*(hwndHD: HWND, playout: LPHDLAYOUT): BOOL = discardable BOOL SendMessage(hwndHD, HDM_LAYOUT, 0, cast[LPARAM](playout)) -template Header_OrderToIndex*(hwnd: HWND, i: int32): int32 = discardable int32 SendMessage(hwnd, HDM_ORDERTOINDEX, cast[WPARAM](i), 0) -template Header_SetBitmapMargin*(hwnd: HWND, iWidth: int32): int32 = discardable int32 SendMessage(hwnd, HDM_SETBITMAPMARGIN, cast[WPARAM](iWidth), 0) -template Header_SetFilterChangeTimeout*(hwnd: HWND, i: int32): int32 = discardable int32 SendMessage(hwnd, HDM_SETFILTERCHANGETIMEOUT, 0, cast[LPARAM](i)) -template Header_SetFocusedItem*(hwnd: HWND, iItem: int32): BOOL = discardable BOOL SendMessage(hwnd, HDM_SETFOCUSEDITEM, 0, cast[LPARAM](iItem)) -template Header_SetHotDivider*(hwnd: HWND, fPos: BOOL, dw: DWORD): int32 = discardable int32 SendMessage(hwnd, HDM_SETHOTDIVIDER, cast[WPARAM](fPos), cast[LPARAM](dw)) -template Header_SetImageList*(hwnd: HWND, himl: HIMAGELIST): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, HDM_SETIMAGELIST, 0, cast[LPARAM](himl)) -when winimUnicode: - const - HDM_SETITEM* = HDM_SETITEMW + const DTM_SETFORMAT* = DTM_SETFORMATW when winimAnsi: - const - HDM_SETITEM* = HDM_SETITEMA -template Header_SetItem*(hwndHD: HWND, i: int32, phdi: LPHDITEM): BOOL = discardable BOOL SendMessage(hwndHD, HDM_SETITEM, cast[WPARAM](i), cast[LPARAM](phdi)) -template Header_SetOrderArray*(hwnd: HWND, iCount: int32, lpi: ptr int32): BOOL = discardable BOOL SendMessage(hwnd, HDM_SETORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](lpi)) -template Header_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = discardable BOOL SendMessage(hwnd, HDM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) -template ImageList_AddIcon*(himl: HIMAGELIST, hicon: HICON): int32 = ImageList_ReplaceIcon(himl, -1, hicon) -template ImageList_ExtractIcon*(hi: HINSTANCE, himl: HIMAGELIST, i: int32): HICON = ImageList_GetIcon(himl, i, 0) -template ImageList_LoadBitmap*(hi: HINSTANCE, lpbmp: LPCTSTR, cx: int32, cGrow: int32, crMask: COLORREF): HIMAGELIST = ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0) -template ImageList_RemoveAll*(himl: HIMAGELIST): BOOL = ImageList_Remove(himl, -1) -template ListView_ApproximateViewRect*(hwnd: HWND, iWidth: int32, iHeight: int32, iCount: int32): DWORD = discardable DWORD SendMessage(hwnd, LVM_APPROXIMATEVIEWRECT, cast[WPARAM](iCount), MAKELPARAM(iWidth, iHeight)) -template ListView_Arrange*(hwnd: HWND, code: UINT): BOOL = discardable BOOL SendMessage(hwnd, LVM_ARRANGE, cast[WPARAM](code), 0) -template ListView_CancelEditLabel*(hwnd: HWND): void = SendMessage(hwnd, LVM_CANCELEDITLABEL, 0, 0) -template ListView_CreateDragImage*(hwnd: HWND, i: int32, lpptUpLeft: LPPOINT): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, LVM_CREATEDRAGIMAGE, cast[WPARAM](i), cast[LPARAM](lpptUpLeft)) -template ListView_DeleteAllItems*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, LVM_DELETEALLITEMS, 0, 0) -template ListView_DeleteColumn*(hwnd: HWND, iCol: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_DELETECOLUMN, cast[WPARAM](iCol), 0) -template ListView_DeleteItem*(hwnd: HWND, i: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_DELETEITEM, cast[WPARAM](i), 0) + const DTM_SETFORMAT* = DTM_SETFORMATA +template DateTime_SetFormat*(hdp: HWND, sz: LPCTSTR): void = + SendMessage(hdp, DTM_SETFORMAT, 0, cast[LPARAM](sz)) + +template DateTime_SetMonthCalColor*(hdp: HWND, iColor: int32, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage( + hdp, DTM_SETMCCOLOR, cast[WPARAM](iColor), cast[LPARAM](clr) + ) + +template DateTime_SetMonthCalFont*(hdp: HWND, hfont: HFONT, fRedraw: int32): void = + SendMessage(hdp, DTM_SETMCFONT, cast[WPARAM](hfont), cast[LPARAM](fRedraw)) + +template DateTime_SetMonthCalStyle*(hdp: HWND, dwStyle: DWORD): LRESULT = + discardable LRESULT SendMessage(hdp, DTM_SETMCSTYLE, 0, cast[LPARAM](dwStyle)) + +template DateTime_SetRange*(hdp: HWND, gd: DWORD, rgst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hdp, DTM_SETRANGE, cast[WPARAM](gd), cast[LPARAM](rgst)) + +template DateTime_SetSystemtime*(hdp: HWND, gd: DWORD, pst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage( + hdp, DTM_SETSYSTEMTIME, cast[WPARAM](gd), cast[LPARAM](pst) + ) + +template DPA_AppendPtr*(hdpa: HDPA, pitem: pointer): int32 = + DPA_InsertPtr(hdpa, DA_LAST, pitem) + +template DPA_FastDeleteLastPtr*(hdpa: HDPA): void = + cast[ptr int32](hdpa)[].dec + +template DPA_GetPtrPtr*(hdpa: HDPA): ptr pointer = + discardable (cast[ptr ptr pointer](cast[int](hdpa) + sizeof(pointer)))[] + +template DPA_FastGetPtr*(hdpa: HDPA, i: int32): ptr pointer = + discardable cast[ptr pointer](cast[int](DPA_GetPtrPtr(hdpa)) + sizeof(pointer) * i) + +template DPA_GetPtrCount*(hdpa: HDPA): int32 = + discardable int32 cast[ptr int32](hdpa)[] + +template DPA_SetPtrCount*(hdpa: HDPA, cItems: int32): int32 = + (cast[ptr int32](hdpa)[] = cItems; discardable int32 cItems) + +template DPA_SortedInsertPtr*( + hdpa: HDPA, + pFind: pointer, + iStart: int32, + pfnCompare: PFNDPACOMPARE, + lParam: LPARAM, + options: UINT, + pitem: pointer, +): int32 = + DPA_InsertPtr( + hdpa, + DPA_Search(hdpa, pFind, iStart, pfnCompare, lParam, options or DPAS_SORTED), + pitem, + ) + +template DSA_AppendItem*(hdsa: HDSA, pitem: pointer): int32 = + DSA_InsertItem(hdsa, DA_LAST, pitem) + +template DSA_GetItemCount*(hdsa: HDSA): int32 = + discardable int32 cast[ptr int32](hdsa)[] + +template Edit_GetCueBannerText*(hwnd: HWND, lpwText: LPCWSTR, cchText: LONG): BOOL = + discardable BOOL SendMessage( + hwnd, EM_GETCUEBANNER, cast[WPARAM](lpwText), cast[LPARAM](cchText) + ) + +template Edit_GetHilite*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, EM_GETHILITE, 0, 0) + +template Edit_HideBalloonTip*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, EM_HIDEBALLOONTIP, 0, 0) + +template Edit_NoSetFocus*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, EM_NOSETFOCUS, 0, 0) + +template Edit_SetCueBannerText*(hwnd: HWND, lpcwText: LPCWSTR): BOOL = + discardable BOOL SendMessage(hwnd, EM_SETCUEBANNER, 0, cast[LPARAM](lpcwText)) + +template Edit_SetHilite*(hwnd: HWND, ichStart: int32, ichEnd: int32): void = + SendMessage(hwnd, EM_SETHILITE, cast[WPARAM](ichStart), cast[LPARAM](ichEnd)) + +template Edit_ShowBalloonTip*(hwnd: HWND, peditballoontip: PEDITBALLOONTIP): BOOL = + discardable BOOL SendMessage( + hwnd, EM_SHOWBALLOONTIP, 0, cast[LPARAM](peditballoontip) + ) + +template Edit_TakeFocus*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, EM_TAKEFOCUS, 0, 0) + +template Header_ClearAllFilters*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, HDM_CLEARFILTER, cast[WPARAM](-1), 0) + +template Header_ClearFilter*(hwnd: HWND, i: int32): int32 = + discardable int32 SendMessage(hwnd, HDM_CLEARFILTER, cast[WPARAM](i), 0) + +template Header_CreateDragImage*(hwnd: HWND, i: int32): HIMAGELIST = + discardable HIMAGELIST SendMessage(hwnd, HDM_CREATEDRAGIMAGE, cast[WPARAM](i), 0) + +template Header_DeleteItem*(hwndHD: HWND, i: int32): BOOL = + discardable BOOL SendMessage(hwndHD, HDM_DELETEITEM, cast[WPARAM](i), 0) + +template Header_EditFilter*(hwnd: HWND, i: int32, fDiscardChanges: BOOL): int32 = + discardable int32 SendMessage( + hwnd, HDM_EDITFILTER, cast[WPARAM](i), MAKELPARAM(fDiscardChanges, 0) + ) + +template Header_GetBitmapMargin*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, HDM_GETBITMAPMARGIN, 0, 0) + +template Header_GetFocusedItem*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, HDM_GETFOCUSEDITEM, 0, 0) + +template Header_GetImageList*(hwnd: HWND): HIMAGELIST = + discardable HIMAGELIST SendMessage(hwnd, HDM_GETIMAGELIST, 0, 0) + when winimUnicode: - const - LVM_EDITLABEL* = LVM_EDITLABELW + type LPHDITEM* = LPHDITEMW when winimAnsi: - const - LVM_EDITLABEL* = LVM_EDITLABELA -template ListView_EditLabel*(hwnd: HWND, i: int32): HWND = discardable HWND SendMessage(hwnd, LVM_EDITLABEL, cast[WPARAM](i), 0) -template ListView_EnableGroupView*(hwnd: HWND, fEnable: BOOL): int32 = discardable int32 SendMessage(hwnd, LVM_ENABLEGROUPVIEW, cast[WPARAM](fEnable), 0) -template ListView_EnsureVisible*(hwnd: HWND, i: int32, fPartialOK: BOOL): BOOL = discardable BOOL SendMessage(hwnd, LVM_ENSUREVISIBLE, cast[WPARAM](i), MAKELPARAM(fPartialOK, 0)) -when winimUnicode: - type - LVFINDINFO* = LVFINDINFOW -when winimAnsi: - type - LVFINDINFO* = LVFINDINFOA + type LPHDITEM* = LPHDITEMA when winimUnicode: - const - LVM_FINDITEM* = LVM_FINDITEMW + const HDM_GETITEM* = HDM_GETITEMW when winimAnsi: - const - LVM_FINDITEM* = LVM_FINDITEMA -template ListView_FindItem*(hwnd: HWND, iStart: int32, plvfi: ptr LVFINDINFO): int32 = discardable int32 SendMessage(hwnd, LVM_FINDITEM, cast[WPARAM](iStart), cast[LPARAM](plvfi)) -template ListView_GetBkColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_GETBKCOLOR, 0, 0) + const HDM_GETITEM* = HDM_GETITEMA +template Header_GetItem*(hwndHD: HWND, i: int32, phdi: LPHDITEM): BOOL = + discardable BOOL SendMessage(hwndHD, HDM_GETITEM, cast[WPARAM](i), cast[LPARAM](phdi)) + +template Header_GetItemCount*(hwndHD: HWND): int32 = + discardable int32 SendMessage(hwndHD, HDM_GETITEMCOUNT, 0, 0) + +template Header_GetItemDropDownRect*(hwnd: HWND, iItem: int32, lprc: LPRECT): BOOL = + discardable BOOL SendMessage( + hwnd, HDM_GETITEMDROPDOWNRECT, cast[WPARAM](iItem), cast[LPARAM](lprc) + ) + +template Header_GetItemRect*(hwnd: HWND, iItem: int32, lprc: LPRECT): BOOL = + discardable BOOL SendMessage( + hwnd, HDM_GETITEMRECT, cast[WPARAM](iItem), cast[LPARAM](lprc) + ) + +template Header_GetOrderArray*(hwnd: HWND, iCount: int32, lpi: ptr int32): BOOL = + discardable BOOL SendMessage( + hwnd, HDM_GETORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](lpi) + ) + +template Header_GetOverflowRect*(hwnd: HWND, lprc: LPRECT): BOOL = + discardable BOOL SendMessage(hwnd, HDM_GETOVERFLOWRECT, 0, cast[LPARAM](lprc)) + +template Header_GetUnicodeFormat*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, HDM_GETUNICODEFORMAT, 0, 0) + when winimUnicode: - type - LPLVBKIMAGE* = LPLVBKIMAGEW + const HDM_INSERTITEM* = HDM_INSERTITEMW when winimAnsi: - type - LPLVBKIMAGE* = LPLVBKIMAGEA + const HDM_INSERTITEM* = HDM_INSERTITEMA +template Header_InsertItem*(hwndHD: HWND, i: int32, phdi: LPHDITEM): int32 = + discardable int32 SendMessage( + hwndHD, HDM_INSERTITEM, cast[WPARAM](i), cast[LPARAM](phdi) + ) + +template Header_Layout*(hwndHD: HWND, playout: LPHDLAYOUT): BOOL = + discardable BOOL SendMessage(hwndHD, HDM_LAYOUT, 0, cast[LPARAM](playout)) + +template Header_OrderToIndex*(hwnd: HWND, i: int32): int32 = + discardable int32 SendMessage(hwnd, HDM_ORDERTOINDEX, cast[WPARAM](i), 0) + +template Header_SetBitmapMargin*(hwnd: HWND, iWidth: int32): int32 = + discardable int32 SendMessage(hwnd, HDM_SETBITMAPMARGIN, cast[WPARAM](iWidth), 0) + +template Header_SetFilterChangeTimeout*(hwnd: HWND, i: int32): int32 = + discardable int32 SendMessage(hwnd, HDM_SETFILTERCHANGETIMEOUT, 0, cast[LPARAM](i)) + +template Header_SetFocusedItem*(hwnd: HWND, iItem: int32): BOOL = + discardable BOOL SendMessage(hwnd, HDM_SETFOCUSEDITEM, 0, cast[LPARAM](iItem)) + +template Header_SetHotDivider*(hwnd: HWND, fPos: BOOL, dw: DWORD): int32 = + discardable int32 SendMessage( + hwnd, HDM_SETHOTDIVIDER, cast[WPARAM](fPos), cast[LPARAM](dw) + ) + +template Header_SetImageList*(hwnd: HWND, himl: HIMAGELIST): HIMAGELIST = + discardable HIMAGELIST SendMessage(hwnd, HDM_SETIMAGELIST, 0, cast[LPARAM](himl)) + when winimUnicode: - const - LVM_GETBKIMAGE* = LVM_GETBKIMAGEW + const HDM_SETITEM* = HDM_SETITEMW when winimAnsi: - const - LVM_GETBKIMAGE* = LVM_GETBKIMAGEA -template ListView_GetBkImage*(hwnd: HWND, plvbki: LPLVBKIMAGE): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETBKIMAGE, 0, cast[LPARAM](plvbki)) -template ListView_GetCallbackMask*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, LVM_GETCALLBACKMASK, 0, 0) -template ListView_GetCheckState*(hwnd: HWND, i: UINT): BOOL = discardable BOOL((SendMessage(hwnd, LVM_GETITEMSTATE, cast[WPARAM](i), LVIS_STATEIMAGEMASK) shr 12) - 1) + const HDM_SETITEM* = HDM_SETITEMA +template Header_SetItem*(hwndHD: HWND, i: int32, phdi: LPHDITEM): BOOL = + discardable BOOL SendMessage(hwndHD, HDM_SETITEM, cast[WPARAM](i), cast[LPARAM](phdi)) + +template Header_SetOrderArray*(hwnd: HWND, iCount: int32, lpi: ptr int32): BOOL = + discardable BOOL SendMessage( + hwnd, HDM_SETORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](lpi) + ) + +template Header_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, HDM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) + +template ImageList_AddIcon*(himl: HIMAGELIST, hicon: HICON): int32 = + ImageList_ReplaceIcon(himl, -1, hicon) + +template ImageList_ExtractIcon*(hi: HINSTANCE, himl: HIMAGELIST, i: int32): HICON = + ImageList_GetIcon(himl, i, 0) + +template ImageList_LoadBitmap*( + hi: HINSTANCE, lpbmp: LPCTSTR, cx: int32, cGrow: int32, crMask: COLORREF +): HIMAGELIST = + ImageList_LoadImage(hi, lpbmp, cx, cGrow, crMask, IMAGE_BITMAP, 0) + +template ImageList_RemoveAll*(himl: HIMAGELIST): BOOL = + ImageList_Remove(himl, -1) + +template ListView_ApproximateViewRect*( + hwnd: HWND, iWidth: int32, iHeight: int32, iCount: int32 +): DWORD = + discardable DWORD SendMessage( + hwnd, LVM_APPROXIMATEVIEWRECT, cast[WPARAM](iCount), MAKELPARAM(iWidth, iHeight) + ) + +template ListView_Arrange*(hwnd: HWND, code: UINT): BOOL = + discardable BOOL SendMessage(hwnd, LVM_ARRANGE, cast[WPARAM](code), 0) + +template ListView_CancelEditLabel*(hwnd: HWND): void = + SendMessage(hwnd, LVM_CANCELEDITLABEL, 0, 0) + +template ListView_CreateDragImage*( + hwnd: HWND, i: int32, lpptUpLeft: LPPOINT +): HIMAGELIST = + discardable HIMAGELIST SendMessage( + hwnd, LVM_CREATEDRAGIMAGE, cast[WPARAM](i), cast[LPARAM](lpptUpLeft) + ) + +template ListView_DeleteAllItems*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, LVM_DELETEALLITEMS, 0, 0) + +template ListView_DeleteColumn*(hwnd: HWND, iCol: int32): BOOL = + discardable BOOL SendMessage(hwnd, LVM_DELETECOLUMN, cast[WPARAM](iCol), 0) + +template ListView_DeleteItem*(hwnd: HWND, i: int32): BOOL = + discardable BOOL SendMessage(hwnd, LVM_DELETEITEM, cast[WPARAM](i), 0) + when winimUnicode: - type - LPLVCOLUMN* = LPLVCOLUMNW + const LVM_EDITLABEL* = LVM_EDITLABELW when winimAnsi: - type - LPLVCOLUMN* = LPLVCOLUMNA + const LVM_EDITLABEL* = LVM_EDITLABELA +template ListView_EditLabel*(hwnd: HWND, i: int32): HWND = + discardable HWND SendMessage(hwnd, LVM_EDITLABEL, cast[WPARAM](i), 0) + +template ListView_EnableGroupView*(hwnd: HWND, fEnable: BOOL): int32 = + discardable int32 SendMessage(hwnd, LVM_ENABLEGROUPVIEW, cast[WPARAM](fEnable), 0) + +template ListView_EnsureVisible*(hwnd: HWND, i: int32, fPartialOK: BOOL): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_ENSUREVISIBLE, cast[WPARAM](i), MAKELPARAM(fPartialOK, 0) + ) + when winimUnicode: - const - LVM_GETCOLUMN* = LVM_GETCOLUMNW + type LVFINDINFO* = LVFINDINFOW +when winimAnsi: + type LVFINDINFO* = LVFINDINFOA +when winimUnicode: + const LVM_FINDITEM* = LVM_FINDITEMW +when winimAnsi: + const LVM_FINDITEM* = LVM_FINDITEMA +template ListView_FindItem*(hwnd: HWND, iStart: int32, plvfi: ptr LVFINDINFO): int32 = + discardable int32 SendMessage( + hwnd, LVM_FINDITEM, cast[WPARAM](iStart), cast[LPARAM](plvfi) + ) + +template ListView_GetBkColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_GETBKCOLOR, 0, 0) + +when winimUnicode: + type LPLVBKIMAGE* = LPLVBKIMAGEW when winimAnsi: - const - LVM_GETCOLUMN* = LVM_GETCOLUMNA -template ListView_GetColumn*(hwnd: HWND, iCol: int32, pcol: LPLVCOLUMN): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETCOLUMN, cast[WPARAM](iCol), cast[LPARAM](pcol)) -template ListView_GetColumnOrderArray*(hwnd: HWND, iCount: int32, pi: ptr int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETCOLUMNORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](pi)) -template ListView_GetColumnWidth*(hwnd: HWND, iCol: int32): int32 = discardable int32 SendMessage(hwnd, LVM_GETCOLUMNWIDTH, cast[WPARAM](iCol), 0) -template ListView_GetCountPerPage*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, LVM_GETCOUNTPERPAGE, 0, 0) -template ListView_GetEditControl*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, LVM_GETEDITCONTROL, 0, 0) -template ListView_GetEmptyText*(hwnd: HWND, pszText: PWSTR, cchText: UINT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETEMPTYTEXT, cast[WPARAM](cchText), cast[LPARAM](pszText)) -template ListView_GetExtendedListViewStyle*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) -template ListView_GetFocusedGroup*(hwnd: HWND): INT = discardable INT SendMessage(hwnd, LVM_GETFOCUSEDGROUP, 0, 0) -template ListView_GetFooterInfo*(hwnd: HWND, plvfi: LPLVFOOTERINFO): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETFOOTERINFO, cast[WPARAM]((0)), cast[LPARAM](plvfi)) -template ListView_GetFooterItem*(hwnd: HWND, iItem: UINT, pfi: ptr LVFOOTERITEM): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETFOOTERITEM, cast[WPARAM](iItem), cast[LPARAM](pfi)) -template ListView_GetFooterItemRect*(hwnd: HWND, iItem: UINT, prc: ptr RECT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETFOOTERITEMRECT, cast[WPARAM](iItem), cast[LPARAM](prc)) -template ListView_GetFooterRect*(hwnd: HWND, prc: ptr RECT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETFOOTERRECT, cast[WPARAM]((0)), cast[LPARAM](prc)) -template ListView_GetGroupCount*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, LVM_GETGROUPCOUNT, 0, 0) -template ListView_GetGroupHeaderImageList*(hwnd: HWND): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, LVM_GETIMAGELIST, cast[WPARAM](LVSIL_GROUPHEADER), 0) -template ListView_GetGroupInfo*(hwnd: HWND, iGroupId: int32, pgrp: PLVGROUP): int32 = discardable int32 SendMessage(hwnd, LVM_GETGROUPINFO, cast[WPARAM](iGroupId), cast[LPARAM](pgrp)) -template ListView_GetGroupInfoByIndex*(hwnd: HWND, iIndex: int32, pgrp: PLVGROUP): LRESULT = discardable LRESULT SendMessage(hwnd, LVM_GETGROUPINFOBYINDEX, cast[WPARAM](iIndex), cast[LPARAM](pgrp)) -template ListView_GetGroupMetrics*(hwnd: HWND, pGroupMetrics: PLVGROUPMETRICS): void = SendMessage(hwnd, LVM_GETGROUPMETRICS, 0, cast[LPARAM](pGroupMetrics)) -template ListView_GetGroupRect*(hwnd: HWND, iGroupId: int32, `type`: LONG, prc: ptr RECT): BOOL = (if prc.pointer != nil: cast[ptr RECT](cast[int](prc)).top = `type`; discardable BOOL SendMessage(hwnd, LVM_GETGROUPRECT, cast[WPARAM](iGroupId), cast[LPARAM](prc))) -template ListView_GetGroupState*(hwnd: HWND, dwGroupId: UINT, dwMask: UINT): UINT = discardable UINT SendMessage(hwnd, LVM_GETGROUPSTATE, cast[WPARAM](dwGroupId), cast[LPARAM](dwMask)) -template ListView_GetHeader*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, LVM_GETHEADER, 0, 0) -template ListView_GetHotCursor*(hwnd: HWND): HCURSOR = discardable HCURSOR SendMessage(hwnd, LVM_GETHOTCURSOR, 0, 0) -template ListView_GetHotItem*(hwnd: HWND): INT = discardable INT SendMessage(hwnd, LVM_GETHOTITEM, 0, 0) -template ListView_GetHoverTime*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, LVM_GETHOVERTIME, 0, 0) -template ListView_GetImageList*(hwnd: HWND, iImageList: int32): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, LVM_GETIMAGELIST, cast[WPARAM](iImageList), 0) -template ListView_GetInsertMark*(hwnd: HWND, lvim: LPLVINSERTMARK): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETINSERTMARK, 0, cast[LPARAM](lvim)) -template ListView_GetInsertMarkColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_GETINSERTMARKCOLOR, 0, 0) -template ListView_GetInsertMarkRect*(hwnd: HWND, rc: LPRECT): int32 = discardable int32 SendMessage(hwnd, LVM_GETINSERTMARKRECT, 0, cast[LPARAM](rc)) + type LPLVBKIMAGE* = LPLVBKIMAGEA +when winimUnicode: + const LVM_GETBKIMAGE* = LVM_GETBKIMAGEW +when winimAnsi: + const LVM_GETBKIMAGE* = LVM_GETBKIMAGEA +template ListView_GetBkImage*(hwnd: HWND, plvbki: LPLVBKIMAGE): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETBKIMAGE, 0, cast[LPARAM](plvbki)) + +template ListView_GetCallbackMask*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, LVM_GETCALLBACKMASK, 0, 0) + +template ListView_GetCheckState*(hwnd: HWND, i: UINT): BOOL = + discardable BOOL( + (SendMessage(hwnd, LVM_GETITEMSTATE, cast[WPARAM](i), LVIS_STATEIMAGEMASK) shr 12) - + 1 + ) + +when winimUnicode: + type LPLVCOLUMN* = LPLVCOLUMNW +when winimAnsi: + type LPLVCOLUMN* = LPLVCOLUMNA when winimUnicode: - const - LVM_GETISEARCHSTRING* = LVM_GETISEARCHSTRINGW + const LVM_GETCOLUMN* = LVM_GETCOLUMNW when winimAnsi: - const - LVM_GETISEARCHSTRING* = LVM_GETISEARCHSTRINGA -template ListView_GetISearchString*(hwnd: HWND, lpsz: LPSTR): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETISEARCHSTRING, 0, cast[LPARAM](lpsz)) -when winimUnicode: - type - LPLVITEM* = LPLVITEMW -when winimAnsi: - type - LPLVITEM* = LPLVITEMA + const LVM_GETCOLUMN* = LVM_GETCOLUMNA +template ListView_GetColumn*(hwnd: HWND, iCol: int32, pcol: LPLVCOLUMN): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETCOLUMN, cast[WPARAM](iCol), cast[LPARAM](pcol) + ) + +template ListView_GetColumnOrderArray*(hwnd: HWND, iCount: int32, pi: ptr int32): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETCOLUMNORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](pi) + ) + +template ListView_GetColumnWidth*(hwnd: HWND, iCol: int32): int32 = + discardable int32 SendMessage(hwnd, LVM_GETCOLUMNWIDTH, cast[WPARAM](iCol), 0) + +template ListView_GetCountPerPage*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, LVM_GETCOUNTPERPAGE, 0, 0) + +template ListView_GetEditControl*(hwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, LVM_GETEDITCONTROL, 0, 0) + +template ListView_GetEmptyText*(hwnd: HWND, pszText: PWSTR, cchText: UINT): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETEMPTYTEXT, cast[WPARAM](cchText), cast[LPARAM](pszText) + ) + +template ListView_GetExtendedListViewStyle*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) + +template ListView_GetFocusedGroup*(hwnd: HWND): INT = + discardable INT SendMessage(hwnd, LVM_GETFOCUSEDGROUP, 0, 0) + +template ListView_GetFooterInfo*(hwnd: HWND, plvfi: LPLVFOOTERINFO): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETFOOTERINFO, cast[WPARAM]((0)), cast[LPARAM](plvfi) + ) + +template ListView_GetFooterItem*(hwnd: HWND, iItem: UINT, pfi: ptr LVFOOTERITEM): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETFOOTERITEM, cast[WPARAM](iItem), cast[LPARAM](pfi) + ) + +template ListView_GetFooterItemRect*(hwnd: HWND, iItem: UINT, prc: ptr RECT): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETFOOTERITEMRECT, cast[WPARAM](iItem), cast[LPARAM](prc) + ) + +template ListView_GetFooterRect*(hwnd: HWND, prc: ptr RECT): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETFOOTERRECT, cast[WPARAM]((0)), cast[LPARAM](prc) + ) + +template ListView_GetGroupCount*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, LVM_GETGROUPCOUNT, 0, 0) + +template ListView_GetGroupHeaderImageList*(hwnd: HWND): HIMAGELIST = + discardable HIMAGELIST SendMessage( + hwnd, LVM_GETIMAGELIST, cast[WPARAM](LVSIL_GROUPHEADER), 0 + ) + +template ListView_GetGroupInfo*(hwnd: HWND, iGroupId: int32, pgrp: PLVGROUP): int32 = + discardable int32 SendMessage( + hwnd, LVM_GETGROUPINFO, cast[WPARAM](iGroupId), cast[LPARAM](pgrp) + ) + +template ListView_GetGroupInfoByIndex*( + hwnd: HWND, iIndex: int32, pgrp: PLVGROUP +): LRESULT = + discardable LRESULT SendMessage( + hwnd, LVM_GETGROUPINFOBYINDEX, cast[WPARAM](iIndex), cast[LPARAM](pgrp) + ) + +template ListView_GetGroupMetrics*(hwnd: HWND, pGroupMetrics: PLVGROUPMETRICS): void = + SendMessage(hwnd, LVM_GETGROUPMETRICS, 0, cast[LPARAM](pGroupMetrics)) + +template ListView_GetGroupRect*( + hwnd: HWND, iGroupId: int32, `type`: LONG, prc: ptr RECT +): BOOL = + ( + if prc.pointer != nil: cast[ptr RECT](cast[int](prc)).top = `type` + discardable BOOL SendMessage( + hwnd, LVM_GETGROUPRECT, cast[WPARAM](iGroupId), cast[LPARAM](prc) + ) + ) + +template ListView_GetGroupState*(hwnd: HWND, dwGroupId: UINT, dwMask: UINT): UINT = + discardable UINT SendMessage( + hwnd, LVM_GETGROUPSTATE, cast[WPARAM](dwGroupId), cast[LPARAM](dwMask) + ) + +template ListView_GetHeader*(hwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, LVM_GETHEADER, 0, 0) + +template ListView_GetHotCursor*(hwnd: HWND): HCURSOR = + discardable HCURSOR SendMessage(hwnd, LVM_GETHOTCURSOR, 0, 0) + +template ListView_GetHotItem*(hwnd: HWND): INT = + discardable INT SendMessage(hwnd, LVM_GETHOTITEM, 0, 0) + +template ListView_GetHoverTime*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, LVM_GETHOVERTIME, 0, 0) + +template ListView_GetImageList*(hwnd: HWND, iImageList: int32): HIMAGELIST = + discardable HIMAGELIST SendMessage( + hwnd, LVM_GETIMAGELIST, cast[WPARAM](iImageList), 0 + ) + +template ListView_GetInsertMark*(hwnd: HWND, lvim: LPLVINSERTMARK): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETINSERTMARK, 0, cast[LPARAM](lvim)) + +template ListView_GetInsertMarkColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_GETINSERTMARKCOLOR, 0, 0) + +template ListView_GetInsertMarkRect*(hwnd: HWND, rc: LPRECT): int32 = + discardable int32 SendMessage(hwnd, LVM_GETINSERTMARKRECT, 0, cast[LPARAM](rc)) + when winimUnicode: - const - LVM_GETITEM* = LVM_GETITEMW + const LVM_GETISEARCHSTRING* = LVM_GETISEARCHSTRINGW when winimAnsi: - const - LVM_GETITEM* = LVM_GETITEMA -template ListView_GetItem*(hwnd: HWND, pitem: LPLVITEM): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETITEM, 0, cast[LPARAM](pitem)) -template ListView_GetItemCount*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0) -template ListView_GetItemIndexRect*(hwnd: HWND, plvii: ptr LVITEMINDEX, iSubItem: LONG, code: LONG, prc: LPRECT): BOOL = (if prc.pointer != nil: (cast[ptr RECT](cast[int](prc)).top = iSubItem; cast[ptr RECT](cast[int](prc)).left = code); discardable BOOL SendMessage(hwnd, LVM_GETITEMINDEXRECT, cast[WPARAM](plvii), cast[LPARAM](prc))) -template ListView_GetItemPosition*(hwnd: HWND, i: int32, ppt: ptr POINT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETITEMPOSITION, cast[WPARAM](i), cast[LPARAM](ppt)) -template ListView_GetItemRect*(hwnd: HWND, i: int32, prc: ptr RECT, code: int32): BOOL = (if prc.pointer != nil: cast[ptr RECT](cast[int](prc)).left = code; discardable BOOL SendMessage(hwnd, LVM_GETITEMRECT, cast[WPARAM](i), cast[LPARAM](prc))) -template ListView_GetItemSpacing*(hwnd: HWND, fSmall: BOOL): DWORD = discardable DWORD SendMessage(hwnd, LVM_GETITEMSPACING, cast[WPARAM](fSmall), 0) -template ListView_GetItemState*(hwnd: HWND, i: int32, mask: UINT): UINT = discardable UINT SendMessage(hwnd, LVM_GETITEMSTATE, cast[WPARAM](i), cast[LPARAM](mask)) + const LVM_GETISEARCHSTRING* = LVM_GETISEARCHSTRINGA +template ListView_GetISearchString*(hwnd: HWND, lpsz: LPSTR): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETISEARCHSTRING, 0, cast[LPARAM](lpsz)) + when winimUnicode: - const - LVM_GETITEMTEXT* = LVM_GETITEMTEXTW + type LPLVITEM* = LPLVITEMW +when winimAnsi: + type LPLVITEM* = LPLVITEMA +when winimUnicode: + const LVM_GETITEM* = LVM_GETITEMW when winimAnsi: - const - LVM_GETITEMTEXT* = LVM_GETITEMTEXTA -template ListView_GetItemText*(hwnd: HWND, i: int32, iSub: int32, text: LPTSTR, max: int32): void = (var lvi = LV_ITEM(iSubItem: iSub, cchTextMax: max, pszText: text); SendMessage(hwnd, LVM_GETITEMTEXT, cast[WPARAM](i), cast[LPARAM](addr lvi))) -template ListView_GetNextItem*(hwnd: HWND, i: int32, flags: UINT): int32 = discardable int32 SendMessage(hwnd, LVM_GETNEXTITEM, cast[WPARAM](i), MAKELPARAM(flags, 0)) -template ListView_GetNextItemIndex*(hwnd: HWND, plvii: ptr LVITEMINDEX, flags: LPARAM): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETNEXTITEMINDEX, cast[WPARAM](plvii), MAKELPARAM(flags, 0)) -template ListView_GetNumberOfWorkAreas*(hwnd: HWND, pnWorkAreas: ptr UINT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETNUMBEROFWORKAREAS, 0, cast[LPARAM](pnWorkAreas)) -template ListView_GetOrigin*(hwnd: HWND, ppt: LPPOINT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETORIGIN, 0, cast[LPARAM](ppt)) -template ListView_GetOutlineColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_GETOUTLINECOLOR, 0, 0) -template ListView_GetSelectedColumn*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, LVM_GETSELECTEDCOLUMN, 0, 0) -template ListView_GetSelectedCount*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, LVM_GETSELECTEDCOUNT, 0, 0) -template ListView_GetSelectionMark*(hwnd: HWND): INT = discardable INT SendMessage(hwnd, LVM_GETSELECTIONMARK, 0, 0) + const LVM_GETITEM* = LVM_GETITEMA +template ListView_GetItem*(hwnd: HWND, pitem: LPLVITEM): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETITEM, 0, cast[LPARAM](pitem)) + +template ListView_GetItemCount*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, LVM_GETITEMCOUNT, 0, 0) + +template ListView_GetItemIndexRect*( + hwnd: HWND, plvii: ptr LVITEMINDEX, iSubItem: LONG, code: LONG, prc: LPRECT +): BOOL = + ( + if prc.pointer != nil: (; + cast[ptr RECT](cast[int](prc)).top = iSubItem + cast[ptr RECT](cast[int](prc)).left = code + ) + discardable BOOL SendMessage( + hwnd, LVM_GETITEMINDEXRECT, cast[WPARAM](plvii), cast[LPARAM](prc) + ) + ) + +template ListView_GetItemPosition*(hwnd: HWND, i: int32, ppt: ptr POINT): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETITEMPOSITION, cast[WPARAM](i), cast[LPARAM](ppt) + ) + +template ListView_GetItemRect*(hwnd: HWND, i: int32, prc: ptr RECT, code: int32): BOOL = + ( + if prc.pointer != nil: cast[ptr RECT](cast[int](prc)).left = code + discardable BOOL SendMessage( + hwnd, LVM_GETITEMRECT, cast[WPARAM](i), cast[LPARAM](prc) + ) + ) + +template ListView_GetItemSpacing*(hwnd: HWND, fSmall: BOOL): DWORD = + discardable DWORD SendMessage(hwnd, LVM_GETITEMSPACING, cast[WPARAM](fSmall), 0) + +template ListView_GetItemState*(hwnd: HWND, i: int32, mask: UINT): UINT = + discardable UINT SendMessage( + hwnd, LVM_GETITEMSTATE, cast[WPARAM](i), cast[LPARAM](mask) + ) + when winimUnicode: - const - LVM_GETSTRINGWIDTH* = LVM_GETSTRINGWIDTHW + const LVM_GETITEMTEXT* = LVM_GETITEMTEXTW when winimAnsi: - const - LVM_GETSTRINGWIDTH* = LVM_GETSTRINGWIDTHA -template ListView_GetStringWidth*(hwnd: HWND, psz: LPCSTR): int32 = discardable int32 SendMessage(hwnd, LVM_GETSTRINGWIDTH, 0, cast[LPARAM](psz)) -template ListView_GetSubItemRect*(hwnd: HWND, iItem: int32, iSubItem: int32, code: int32, prc: LPRECT): BOOL = (if prc.pointer != nil: (cast[LPRECT](cast[int](prc)).top = iSubItem; cast[LPRECT](cast[int](prc)).left = code); discardable BOOL SendMessage(hwnd, LVM_GETSUBITEMRECT, cast[WPARAM](iItem), cast[LPARAM](prc))) -template ListView_GetTextBkColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_GETTEXTBKCOLOR, 0, 0) -template ListView_GetTextColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_GETTEXTCOLOR, 0, 0) -template ListView_GetTileInfo*(hwnd: HWND, pti: PLVTILEINFO): void = SendMessage(hwnd, LVM_GETTILEINFO, 0, cast[LPARAM](pti)) -template ListView_GetTileViewInfo*(hwnd: HWND, ptvi: PLVTILEVIEWINFO): void = SendMessage(hwnd, LVM_GETTILEVIEWINFO, 0, cast[LPARAM](ptvi)) -template ListView_GetToolTips*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, LVM_GETTOOLTIPS, 0, 0) -template ListView_GetTopIndex*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, LVM_GETTOPINDEX, 0, 0) -template ListView_GetUnicodeFormat*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETUNICODEFORMAT, 0, 0) -template ListView_GetView*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, LVM_GETVIEW, 0, 0) -template ListView_GetViewRect*(hwnd: HWND, prc: ptr RECT): BOOL = discardable BOOL SendMessage(hwnd, LVM_GETVIEWRECT, 0, cast[LPARAM](prc)) -template ListView_GetWorkAreas*(hwnd: HWND, nWorkAreas: INT, prc: LPRECT): void = SendMessage(hwnd, LVM_GETWORKAREAS, cast[WPARAM](nWorkAreas), cast[LPARAM](prc)) -template ListView_HasGroup*(hwnd: HWND, dwGroupId: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_HASGROUP, cast[WPARAM](dwGroupId), 0) -template ListView_HitTest*(hwnd: HWND, pinfo: LPLVHITTESTINFO): int32 = discardable int32 SendMessage(hwnd, LVM_HITTEST, 0, cast[LPARAM](pinfo)) + const LVM_GETITEMTEXT* = LVM_GETITEMTEXTA +template ListView_GetItemText*( + hwnd: HWND, i: int32, iSub: int32, text: LPTSTR, max: int32 +): void = + ( + var lvi = LV_ITEM(iSubItem: iSub, cchTextMax: max, pszText: text) + SendMessage(hwnd, LVM_GETITEMTEXT, cast[WPARAM](i), cast[LPARAM](addr lvi)) + ) + +template ListView_GetNextItem*(hwnd: HWND, i: int32, flags: UINT): int32 = + discardable int32 SendMessage( + hwnd, LVM_GETNEXTITEM, cast[WPARAM](i), MAKELPARAM(flags, 0) + ) + +template ListView_GetNextItemIndex*( + hwnd: HWND, plvii: ptr LVITEMINDEX, flags: LPARAM +): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETNEXTITEMINDEX, cast[WPARAM](plvii), MAKELPARAM(flags, 0) + ) + +template ListView_GetNumberOfWorkAreas*(hwnd: HWND, pnWorkAreas: ptr UINT): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_GETNUMBEROFWORKAREAS, 0, cast[LPARAM](pnWorkAreas) + ) + +template ListView_GetOrigin*(hwnd: HWND, ppt: LPPOINT): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETORIGIN, 0, cast[LPARAM](ppt)) + +template ListView_GetOutlineColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_GETOUTLINECOLOR, 0, 0) + +template ListView_GetSelectedColumn*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, LVM_GETSELECTEDCOLUMN, 0, 0) + +template ListView_GetSelectedCount*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, LVM_GETSELECTEDCOUNT, 0, 0) + +template ListView_GetSelectionMark*(hwnd: HWND): INT = + discardable INT SendMessage(hwnd, LVM_GETSELECTIONMARK, 0, 0) + when winimUnicode: - const - LVM_INSERTCOLUMN* = LVM_INSERTCOLUMNW + const LVM_GETSTRINGWIDTH* = LVM_GETSTRINGWIDTHW when winimAnsi: - const - LVM_INSERTCOLUMN* = LVM_INSERTCOLUMNA -template ListView_InsertColumn*(hwnd: HWND, iCol: int32, pcol: LPLVCOLUMN): int32 = discardable int32 SendMessage(hwnd, LVM_INSERTCOLUMN, cast[WPARAM](iCol), cast[LPARAM](pcol)) -template ListView_InsertGroup*(hwnd: HWND, index: int32, pgrp: PLVGROUP): int32 = discardable int32 SendMessage(hwnd, LVM_INSERTGROUP, cast[WPARAM](index), cast[LPARAM](pgrp)) -template ListView_InsertGroupSorted*(hwnd: HWND, structInsert: PLVINSERTGROUPSORTED): void = SendMessage(hwnd, LVM_INSERTGROUPSORTED, cast[WPARAM](structInsert), 0) + const LVM_GETSTRINGWIDTH* = LVM_GETSTRINGWIDTHA +template ListView_GetStringWidth*(hwnd: HWND, psz: LPCSTR): int32 = + discardable int32 SendMessage(hwnd, LVM_GETSTRINGWIDTH, 0, cast[LPARAM](psz)) + +template ListView_GetSubItemRect*( + hwnd: HWND, iItem: int32, iSubItem: int32, code: int32, prc: LPRECT +): BOOL = + ( + if prc.pointer != nil: (; + cast[LPRECT](cast[int](prc)).top = iSubItem + cast[LPRECT](cast[int](prc)).left = code + ) + discardable BOOL SendMessage( + hwnd, LVM_GETSUBITEMRECT, cast[WPARAM](iItem), cast[LPARAM](prc) + ) + ) + +template ListView_GetTextBkColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_GETTEXTBKCOLOR, 0, 0) + +template ListView_GetTextColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_GETTEXTCOLOR, 0, 0) + +template ListView_GetTileInfo*(hwnd: HWND, pti: PLVTILEINFO): void = + SendMessage(hwnd, LVM_GETTILEINFO, 0, cast[LPARAM](pti)) + +template ListView_GetTileViewInfo*(hwnd: HWND, ptvi: PLVTILEVIEWINFO): void = + SendMessage(hwnd, LVM_GETTILEVIEWINFO, 0, cast[LPARAM](ptvi)) + +template ListView_GetToolTips*(hwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, LVM_GETTOOLTIPS, 0, 0) + +template ListView_GetTopIndex*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, LVM_GETTOPINDEX, 0, 0) + +template ListView_GetUnicodeFormat*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETUNICODEFORMAT, 0, 0) + +template ListView_GetView*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, LVM_GETVIEW, 0, 0) + +template ListView_GetViewRect*(hwnd: HWND, prc: ptr RECT): BOOL = + discardable BOOL SendMessage(hwnd, LVM_GETVIEWRECT, 0, cast[LPARAM](prc)) + +template ListView_GetWorkAreas*(hwnd: HWND, nWorkAreas: INT, prc: LPRECT): void = + SendMessage(hwnd, LVM_GETWORKAREAS, cast[WPARAM](nWorkAreas), cast[LPARAM](prc)) + +template ListView_HasGroup*(hwnd: HWND, dwGroupId: int32): BOOL = + discardable BOOL SendMessage(hwnd, LVM_HASGROUP, cast[WPARAM](dwGroupId), 0) + +template ListView_HitTest*(hwnd: HWND, pinfo: LPLVHITTESTINFO): int32 = + discardable int32 SendMessage(hwnd, LVM_HITTEST, 0, cast[LPARAM](pinfo)) + when winimUnicode: - const - LVM_INSERTITEM* = LVM_INSERTITEMW + const LVM_INSERTCOLUMN* = LVM_INSERTCOLUMNW when winimAnsi: - const - LVM_INSERTITEM* = LVM_INSERTITEMA -template ListView_InsertItem*(hwnd: HWND, pitem: LPLVITEM): int32 = discardable int32 SendMessage(hwnd, LVM_INSERTITEM, 0, cast[LPARAM](pitem)) -template ListView_InsertMarkHitTest*(hwnd: HWND, point: LPPOINT, lvim: LPLVINSERTMARK): BOOL = discardable BOOL SendMessage(hwnd, LVM_INSERTMARKHITTEST, cast[WPARAM](point), cast[LPARAM](lvim)) -template ListView_IsGroupViewEnabled*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, LVM_ISGROUPVIEWENABLED, 0, 0) -template ListView_IsItemVisible*(hwnd: HWND, index: UINT): UINT = discardable UINT SendMessage(hwnd, LVM_ISITEMVISIBLE, cast[WPARAM](index), 0) -template ListView_MapIDToIndex*(hwnd: HWND, id: UINT): UINT = discardable UINT SendMessage(hwnd, LVM_MAPIDTOINDEX, cast[WPARAM](id), 0) -template ListView_MapIndexToID*(hwnd: HWND, index: UINT): UINT = discardable UINT SendMessage(hwnd, LVM_MAPINDEXTOID, cast[WPARAM](index), 0) -template ListView_MoveGroup*(hwnd: HWND, iGroupId: int32, toIndex: int32): void = SendMessage(hwnd, LVM_MOVEGROUP, cast[WPARAM](iGroupId), cast[LPARAM](toIndex)) -template ListView_MoveItemToGroup*(hwnd: HWND, idItemFrom: int32, idGroupTo: int32): void = SendMessage(hwnd, LVM_MOVEITEMTOGROUP, cast[WPARAM](idItemFrom), cast[LPARAM](idGroupTo)) -template ListView_RedrawItems*(hwnd: HWND, iFirst: int32, iLast: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_REDRAWITEMS, cast[WPARAM](iFirst), cast[LPARAM](iLast)) -template ListView_RemoveAllGroups*(hwnd: HWND): void = SendMessage(hwnd, LVM_REMOVEALLGROUPS, 0, 0) -template ListView_RemoveGroup*(hwnd: HWND, iGroupId: int32): int32 = discardable int32 SendMessage(hwnd, LVM_REMOVEGROUP, cast[WPARAM](iGroupId), 0) -template ListView_Scroll*(hwnd: HWND, dx: int32, dy: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_SCROLL, cast[WPARAM](dx), cast[LPARAM](dy)) -template ListView_SetBkColor*(hwnd: HWND, clrBk: COLORREF): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETBKCOLOR, 0, cast[LPARAM](clrBk)) + const LVM_INSERTCOLUMN* = LVM_INSERTCOLUMNA +template ListView_InsertColumn*(hwnd: HWND, iCol: int32, pcol: LPLVCOLUMN): int32 = + discardable int32 SendMessage( + hwnd, LVM_INSERTCOLUMN, cast[WPARAM](iCol), cast[LPARAM](pcol) + ) + +template ListView_InsertGroup*(hwnd: HWND, index: int32, pgrp: PLVGROUP): int32 = + discardable int32 SendMessage( + hwnd, LVM_INSERTGROUP, cast[WPARAM](index), cast[LPARAM](pgrp) + ) + +template ListView_InsertGroupSorted*( + hwnd: HWND, structInsert: PLVINSERTGROUPSORTED +): void = + SendMessage(hwnd, LVM_INSERTGROUPSORTED, cast[WPARAM](structInsert), 0) + when winimUnicode: - const - LVM_SETBKIMAGE* = LVM_SETBKIMAGEW + const LVM_INSERTITEM* = LVM_INSERTITEMW when winimAnsi: - const - LVM_SETBKIMAGE* = LVM_SETBKIMAGEA -template ListView_SetBkImage*(hwnd: HWND, plvbki: LPLVBKIMAGE): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETBKIMAGE, 0, cast[LPARAM](plvbki)) -template ListView_SetCallbackMask*(hwnd: HWND, mask: UINT): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETCALLBACKMASK, cast[WPARAM](mask), 0) -template ListView_SetItemState*(hwnd: HWND, i: int32, data: UINT, mask: UINT): void = (var lvi = LV_ITEM(stateMask: mask, state: data); SendMessage(hwnd, LVM_SETITEMSTATE, cast[WPARAM](i), cast[LPARAM](addr lvi))) -template ListView_SetCheckState*(hwnd: HWND, i: UINT, fCheck: BOOL) = ListView_SetItemState(hwnd, i, INDEXTOSTATEIMAGEMASK(if bool fCheck:2 else:1), LVIS_STATEIMAGEMASK) + const LVM_INSERTITEM* = LVM_INSERTITEMA +template ListView_InsertItem*(hwnd: HWND, pitem: LPLVITEM): int32 = + discardable int32 SendMessage(hwnd, LVM_INSERTITEM, 0, cast[LPARAM](pitem)) + +template ListView_InsertMarkHitTest*( + hwnd: HWND, point: LPPOINT, lvim: LPLVINSERTMARK +): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_INSERTMARKHITTEST, cast[WPARAM](point), cast[LPARAM](lvim) + ) + +template ListView_IsGroupViewEnabled*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, LVM_ISGROUPVIEWENABLED, 0, 0) + +template ListView_IsItemVisible*(hwnd: HWND, index: UINT): UINT = + discardable UINT SendMessage(hwnd, LVM_ISITEMVISIBLE, cast[WPARAM](index), 0) + +template ListView_MapIDToIndex*(hwnd: HWND, id: UINT): UINT = + discardable UINT SendMessage(hwnd, LVM_MAPIDTOINDEX, cast[WPARAM](id), 0) + +template ListView_MapIndexToID*(hwnd: HWND, index: UINT): UINT = + discardable UINT SendMessage(hwnd, LVM_MAPINDEXTOID, cast[WPARAM](index), 0) + +template ListView_MoveGroup*(hwnd: HWND, iGroupId: int32, toIndex: int32): void = + SendMessage(hwnd, LVM_MOVEGROUP, cast[WPARAM](iGroupId), cast[LPARAM](toIndex)) + +template ListView_MoveItemToGroup*( + hwnd: HWND, idItemFrom: int32, idGroupTo: int32 +): void = + SendMessage( + hwnd, LVM_MOVEITEMTOGROUP, cast[WPARAM](idItemFrom), cast[LPARAM](idGroupTo) + ) + +template ListView_RedrawItems*(hwnd: HWND, iFirst: int32, iLast: int32): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_REDRAWITEMS, cast[WPARAM](iFirst), cast[LPARAM](iLast) + ) + +template ListView_RemoveAllGroups*(hwnd: HWND): void = + SendMessage(hwnd, LVM_REMOVEALLGROUPS, 0, 0) + +template ListView_RemoveGroup*(hwnd: HWND, iGroupId: int32): int32 = + discardable int32 SendMessage(hwnd, LVM_REMOVEGROUP, cast[WPARAM](iGroupId), 0) + +template ListView_Scroll*(hwnd: HWND, dx: int32, dy: int32): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SCROLL, cast[WPARAM](dx), cast[LPARAM](dy)) + +template ListView_SetBkColor*(hwnd: HWND, clrBk: COLORREF): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETBKCOLOR, 0, cast[LPARAM](clrBk)) + when winimUnicode: - const - LVM_SETCOLUMN* = LVM_SETCOLUMNW + const LVM_SETBKIMAGE* = LVM_SETBKIMAGEW +when winimAnsi: + const LVM_SETBKIMAGE* = LVM_SETBKIMAGEA +template ListView_SetBkImage*(hwnd: HWND, plvbki: LPLVBKIMAGE): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETBKIMAGE, 0, cast[LPARAM](plvbki)) + +template ListView_SetCallbackMask*(hwnd: HWND, mask: UINT): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETCALLBACKMASK, cast[WPARAM](mask), 0) + +template ListView_SetItemState*(hwnd: HWND, i: int32, data: UINT, mask: UINT): void = + ( + var lvi = LV_ITEM(stateMask: mask, state: data) + SendMessage(hwnd, LVM_SETITEMSTATE, cast[WPARAM](i), cast[LPARAM](addr lvi)) + ) + +template ListView_SetCheckState*(hwnd: HWND, i: UINT, fCheck: BOOL) = + ListView_SetItemState( + hwnd, i, INDEXTOSTATEIMAGEMASK(if bool fCheck: 2 else: 1), LVIS_STATEIMAGEMASK + ) + +when winimUnicode: + const LVM_SETCOLUMN* = LVM_SETCOLUMNW when winimAnsi: - const - LVM_SETCOLUMN* = LVM_SETCOLUMNA -template ListView_SetColumn*(hwnd: HWND, iCol: int32, pcol: LPLVCOLUMN): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETCOLUMN, cast[WPARAM](iCol), cast[LPARAM](pcol)) -template ListView_SetColumnOrderArray*(hwnd: HWND, iCount: int32, pi: ptr int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETCOLUMNORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](pi)) -template ListView_SetColumnWidth*(hwnd: HWND, iCol: int32, cx: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETCOLUMNWIDTH, cast[WPARAM](iCol), MAKELPARAM(cx, 0)) -template ListView_SetExtendedListViewStyle*(hwnd: HWND, dw: DWORD): void = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, cast[LPARAM](dw)) -template ListView_SetExtendedListViewStyleEx*(hwnd: HWND, dwMask: DWORD, dw: DWORD): void = SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, cast[WPARAM](dwMask), cast[LPARAM](dw)) -template ListView_SetGroupHeaderImageList*(hwnd: HWND, himl: HIMAGELIST): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, LVM_SETIMAGELIST, cast[WPARAM](LVSIL_GROUPHEADER), cast[LPARAM](himl)) -template ListView_SetGroupInfo*(hwnd: HWND, iGroupId: int32, pgrp: PLVGROUP): int32 = discardable int32 SendMessage(hwnd, LVM_SETGROUPINFO, cast[WPARAM](iGroupId), cast[LPARAM](pgrp)) -template ListView_SetGroupMetrics*(hwnd: HWND, pGroupMetrics: PLVGROUPMETRICS): void = SendMessage(hwnd, LVM_SETGROUPMETRICS, 0, cast[LPARAM](pGroupMetrics)) -template ListView_SetGroupState*(hwnd: HWND, dwGroupId: UINT, dwMask: UINT, dwState: UINT): LRESULT = (var lvg = LVGROUP(cbSize: int32 sizeof(LVGROUP), mask: LVGF_STATE, stateMask: dwMask, state: dwState); discardable LRESULT SendMessage(hwnd, LVM_SETGROUPINFO, cast[WPARAM](dwGroupId), cast[LPARAM](addr lvg))) -template ListView_SetHotCursor*(hwnd: HWND, hcur: HCURSOR): HCURSOR = discardable HCURSOR SendMessage(hwnd, LVM_SETHOTCURSOR, 0, cast[LPARAM](hcur)) -template ListView_SetHotItem*(hwnd: HWND, i: INT): INT = discardable INT SendMessage(hwnd, LVM_SETHOTITEM, cast[WPARAM](i), 0) -template ListView_SetHoverTime*(hwnd: HWND, dwHoverTimeMs: DWORD): void = SendMessage(hwnd, LVM_SETHOVERTIME, 0, cast[LPARAM](dwHoverTimeMs)) -template ListView_SetIconSpacing*(hwnd: HWND, cx: int32, cy: int32): DWORD = discardable DWORD SendMessage(hwnd, LVM_SETICONSPACING, 0, MAKELONG(cx, cy)) -template ListView_SetImageList*(hwnd: HWND, himl: HIMAGELIST, iImageList: int32): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, LVM_SETIMAGELIST, cast[WPARAM](iImageList), cast[LPARAM](himl)) -template ListView_SetInfoTip*(hwnd: HWND, plvInfoTip: PLVSETINFOTIP): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETINFOTIP, 0, cast[LPARAM](plvInfoTip)) -template ListView_SetInsertMark*(hwnd: HWND, lvim: LPLVINSERTMARK): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETINSERTMARK, 0, cast[LPARAM](lvim)) -template ListView_SetInsertMarkColor*(hwnd: HWND, color: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_SETINSERTMARKCOLOR, 0, cast[LPARAM](color)) + const LVM_SETCOLUMN* = LVM_SETCOLUMNA +template ListView_SetColumn*(hwnd: HWND, iCol: int32, pcol: LPLVCOLUMN): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_SETCOLUMN, cast[WPARAM](iCol), cast[LPARAM](pcol) + ) + +template ListView_SetColumnOrderArray*(hwnd: HWND, iCount: int32, pi: ptr int32): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_SETCOLUMNORDERARRAY, cast[WPARAM](iCount), cast[LPARAM](pi) + ) + +template ListView_SetColumnWidth*(hwnd: HWND, iCol: int32, cx: int32): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_SETCOLUMNWIDTH, cast[WPARAM](iCol), MAKELPARAM(cx, 0) + ) + +template ListView_SetExtendedListViewStyle*(hwnd: HWND, dw: DWORD): void = + SendMessage(hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, cast[LPARAM](dw)) + +template ListView_SetExtendedListViewStyleEx*( + hwnd: HWND, dwMask: DWORD, dw: DWORD +): void = + SendMessage( + hwnd, LVM_SETEXTENDEDLISTVIEWSTYLE, cast[WPARAM](dwMask), cast[LPARAM](dw) + ) + +template ListView_SetGroupHeaderImageList*(hwnd: HWND, himl: HIMAGELIST): HIMAGELIST = + discardable HIMAGELIST SendMessage( + hwnd, LVM_SETIMAGELIST, cast[WPARAM](LVSIL_GROUPHEADER), cast[LPARAM](himl) + ) + +template ListView_SetGroupInfo*(hwnd: HWND, iGroupId: int32, pgrp: PLVGROUP): int32 = + discardable int32 SendMessage( + hwnd, LVM_SETGROUPINFO, cast[WPARAM](iGroupId), cast[LPARAM](pgrp) + ) + +template ListView_SetGroupMetrics*(hwnd: HWND, pGroupMetrics: PLVGROUPMETRICS): void = + SendMessage(hwnd, LVM_SETGROUPMETRICS, 0, cast[LPARAM](pGroupMetrics)) + +template ListView_SetGroupState*( + hwnd: HWND, dwGroupId: UINT, dwMask: UINT, dwState: UINT +): LRESULT = + ( + var lvg = LVGROUP( + cbSize: int32 sizeof(LVGROUP), mask: LVGF_STATE, stateMask: dwMask, state: dwState + ) + discardable LRESULT SendMessage( + hwnd, LVM_SETGROUPINFO, cast[WPARAM](dwGroupId), cast[LPARAM](addr lvg) + ) + ) + +template ListView_SetHotCursor*(hwnd: HWND, hcur: HCURSOR): HCURSOR = + discardable HCURSOR SendMessage(hwnd, LVM_SETHOTCURSOR, 0, cast[LPARAM](hcur)) + +template ListView_SetHotItem*(hwnd: HWND, i: INT): INT = + discardable INT SendMessage(hwnd, LVM_SETHOTITEM, cast[WPARAM](i), 0) + +template ListView_SetHoverTime*(hwnd: HWND, dwHoverTimeMs: DWORD): void = + SendMessage(hwnd, LVM_SETHOVERTIME, 0, cast[LPARAM](dwHoverTimeMs)) + +template ListView_SetIconSpacing*(hwnd: HWND, cx: int32, cy: int32): DWORD = + discardable DWORD SendMessage(hwnd, LVM_SETICONSPACING, 0, MAKELONG(cx, cy)) + +template ListView_SetImageList*( + hwnd: HWND, himl: HIMAGELIST, iImageList: int32 +): HIMAGELIST = + discardable HIMAGELIST SendMessage( + hwnd, LVM_SETIMAGELIST, cast[WPARAM](iImageList), cast[LPARAM](himl) + ) + +template ListView_SetInfoTip*(hwnd: HWND, plvInfoTip: PLVSETINFOTIP): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETINFOTIP, 0, cast[LPARAM](plvInfoTip)) + +template ListView_SetInsertMark*(hwnd: HWND, lvim: LPLVINSERTMARK): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETINSERTMARK, 0, cast[LPARAM](lvim)) + +template ListView_SetInsertMarkColor*(hwnd: HWND, color: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_SETINSERTMARKCOLOR, 0, cast[LPARAM](color)) + when winimUnicode: - const - LVM_SETITEM* = LVM_SETITEMW + const LVM_SETITEM* = LVM_SETITEMW when winimAnsi: - const - LVM_SETITEM* = LVM_SETITEMA -template ListView_SetItem*(hwnd: HWND, pitem: LPLVITEM): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETITEM, 0, cast[LPARAM](pitem)) -template ListView_SetItemCount*(hwnd: HWND, cItems: int32): void = SendMessage(hwnd, LVM_SETITEMCOUNT, cast[WPARAM](cItems), 0) -template ListView_SetItemCountEx*(hwnd: HWND, cItems: int32, dwFlags: DWORD): void = SendMessage(hwnd, LVM_SETITEMCOUNT, cast[WPARAM](cItems), cast[LPARAM](dwFlags)) -template ListView_SetItemIndexState*(hwnd: HWND, plvii: ptr LVITEMINDEX, data: UINT, mask: UINT): HRESULT = (var lvi = LV_ITEM(stateMask: mask, state: data); discardable HRESULT SendMessage(hwnd, LVM_SETITEMINDEXSTATE, cast[WPARAM](plvii), cast[LPARAM](addr lvi))) -template ListView_SetItemPosition*(hwnd: HWND, i: int32, x: int32, y: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETITEMPOSITION, cast[WPARAM](i), MAKELPARAM(x, y)) -template ListView_SetItemPosition32*(hwnd: HWND, i: int32, x0: int32, y0: int32): void = (var p = POINT(x: x0, y: y0); SendMessage(hwnd, LVM_SETITEMPOSITION32, cast[WPARAM](i), cast[LPARAM](addr p))) + const LVM_SETITEM* = LVM_SETITEMA +template ListView_SetItem*(hwnd: HWND, pitem: LPLVITEM): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETITEM, 0, cast[LPARAM](pitem)) + +template ListView_SetItemCount*(hwnd: HWND, cItems: int32): void = + SendMessage(hwnd, LVM_SETITEMCOUNT, cast[WPARAM](cItems), 0) + +template ListView_SetItemCountEx*(hwnd: HWND, cItems: int32, dwFlags: DWORD): void = + SendMessage(hwnd, LVM_SETITEMCOUNT, cast[WPARAM](cItems), cast[LPARAM](dwFlags)) + +template ListView_SetItemIndexState*( + hwnd: HWND, plvii: ptr LVITEMINDEX, data: UINT, mask: UINT +): HRESULT = + ( + var lvi = LV_ITEM(stateMask: mask, state: data) + discardable HRESULT SendMessage( + hwnd, LVM_SETITEMINDEXSTATE, cast[WPARAM](plvii), cast[LPARAM](addr lvi) + ) + ) + +template ListView_SetItemPosition*(hwnd: HWND, i: int32, x: int32, y: int32): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_SETITEMPOSITION, cast[WPARAM](i), MAKELPARAM(x, y) + ) + +template ListView_SetItemPosition32*(hwnd: HWND, i: int32, x0: int32, y0: int32): void = + ( + var p = POINT(x: x0, y: y0) + SendMessage(hwnd, LVM_SETITEMPOSITION32, cast[WPARAM](i), cast[LPARAM](addr p)) + ) + when winimUnicode: - const - LVM_SETITEMTEXT* = LVM_SETITEMTEXTW + const LVM_SETITEMTEXT* = LVM_SETITEMTEXTW when winimAnsi: - const - LVM_SETITEMTEXT* = LVM_SETITEMTEXTA -template ListView_SetItemText*(hwnd: HWND, i: int32, iSub: int32, text: LPCTSTR): void = (var lvi = LV_ITEM(iSubItem: iSub, pszText: text); SendMessage(hwnd, LVM_SETITEMTEXT, cast[WPARAM](i), cast[LPARAM](addr lvi))) -template ListView_SetOutlineColor*(hwnd: HWND, color: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, LVM_SETOUTLINECOLOR, 0, cast[LPARAM](color)) -template ListView_SetSelectedColumn*(hwnd: HWND, iCol: int32): void = SendMessage(hwnd, LVM_SETSELECTEDCOLUMN, cast[WPARAM](iCol), 0) -template ListView_SetSelectionMark*(hwnd: HWND, i: INT): INT = discardable INT SendMessage(hwnd, LVM_SETSELECTIONMARK, 0, cast[LPARAM](i)) -template ListView_SetTextBkColor*(hwnd: HWND, clrTextBk: COLORREF): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETTEXTBKCOLOR, 0, cast[LPARAM](clrTextBk)) -template ListView_SetTextColor*(hwnd: HWND, clrText: COLORREF): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETTEXTCOLOR, 0, cast[LPARAM](clrText)) -template ListView_SetTileInfo*(hwnd: HWND, pti: PLVTILEINFO): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETTILEINFO, 0, cast[LPARAM](pti)) -template ListView_SetTileViewInfo*(hwnd: HWND, ptvi: PLVTILEVIEWINFO): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETTILEVIEWINFO, 0, cast[LPARAM](ptvi)) -template ListView_SetTileWidth*(hwnd: HWND, cpWidth: int32): void = SendMessage(hwnd, LVM_SETTILEWIDTH, cast[WPARAM](cpWidth), 0) -template ListView_SetToolTips*(hwnd: HWND, hwndNewHwnd: HWND): HWND = discardable HWND SendMessage(hwnd, LVM_SETTOOLTIPS, cast[WPARAM](hwndNewHwnd), 0) -template ListView_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = discardable BOOL SendMessage(hwnd, LVM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) -template ListView_SetView*(hwnd: HWND, iView: DWORD): int32 = discardable int32 SendMessage(hwnd, LVM_SETVIEW, cast[WPARAM](iView), 0) -template ListView_SetWorkAreas*(hwnd: HWND, nWorkAreas: INT, prc: LPRECT): void = SendMessage(hwnd, LVM_SETWORKAREAS, cast[WPARAM](nWorkAreas), cast[LPARAM](prc)) -template ListView_SortGroups*(hwnd: HWND, pfnGroupCompate: PFNLVGROUPCOMPARE, plv: LPVOID): int32 = discardable int32 SendMessage(hwnd, LVM_SORTGROUPS, cast[WPARAM](pfnGroupCompate), cast[LPARAM](plv)) -template ListView_SortItems*(hwnd: HWND, pfnCompare: PFNLVCOMPARE, lPrm: LPARAM): BOOL = discardable BOOL SendMessage(hwnd, LVM_SORTITEMS, cast[WPARAM](lPrm), cast[LPARAM](pfnCompare)) -template ListView_SortItemsEx*(hwnd: HWND, pfnCompare: PFNLVCOMPARE, lPrm: LPARAM): BOOL = discardable BOOL SendMessage(hwnd, LVM_SORTITEMSEX, cast[WPARAM](lPrm), cast[LPARAM](pfnCompare)) -template ListView_SubItemHitTest*(hwnd: HWND, plvhti: LPLVHITTESTINFO): INT = discardable INT SendMessage(hwnd, LVM_SUBITEMHITTEST, 0, cast[LPARAM](plvhti)) -template ListView_SubItemHitTestEx*(hwnd: HWND, plvhti: LPLVHITTESTINFO): INT = discardable INT SendMessage(hwnd, LVM_SUBITEMHITTEST, cast[WPARAM](-1), cast[LPARAM](plvhti)) -template ListView_Update*(hwnd: HWND, i: int32): BOOL = discardable BOOL SendMessage(hwnd, LVM_UPDATE, cast[WPARAM](i), 0) -template MonthCal_GetCalendarBorder*(hmc: HWND): DWORD = discardable DWORD SendMessage(hmc, MCM_GETCALENDARBORDER, 0, 0) -template MonthCal_GetCalendarCount*(hmc: HWND): DWORD = discardable DWORD SendMessage(hmc, MCM_GETCALENDARCOUNT, 0, 0) -template MonthCal_GetCalendarGridInfo*(hmc: HWND, pmcGridInfo: ptr MCGRIDINFO): BOOL = discardable BOOL SendMessage(hmc, MCM_GETCALENDARGRIDINFO, 0, cast[LPARAM](pmcGridInfo)) -template MonthCal_GetCALID*(hmc: HWND): CALID = discardable CALID SendMessage(hmc, MCM_GETCALID, 0, 0) -template MonthCal_GetColor*(hmc: HWND, iColor: INT): COLORREF = discardable COLORREF SendMessage(hmc, MCM_GETCOLOR, cast[WPARAM](iColor), 0) -template MonthCal_GetCurrentView*(hmc: HWND): DWORD = discardable DWORD SendMessage(hmc, MCM_GETCURRENTVIEW, 0, 0) -template MonthCal_GetCurSel*(hmc: HWND, pst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hmc, MCM_GETCURSEL, 0, cast[LPARAM](pst)) -template MonthCal_GetFirstDayOfWeek*(hmc: HWND): DWORD = discardable DWORD SendMessage(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) -template MonthCal_GetMaxSelCount*(hmc: HWND): DWORD = discardable DWORD SendMessage(hmc, MCM_GETMAXSELCOUNT, 0, 0) -template MonthCal_GetMaxTodayWidth*(hmc: HWND): DWORD = discardable DWORD SendMessage(hmc, MCM_GETMAXTODAYWIDTH, 0, 0) -template MonthCal_GetMinReqRect*(hmc: HWND, prc: LPRECT): BOOL = discardable BOOL SendMessage(hmc, MCM_GETMINREQRECT, 0, cast[LPARAM](prc)) -template MonthCal_GetMonthDelta*(hmc: HWND): INT = discardable INT SendMessage(hmc, MCM_GETMONTHDELTA, 0, 0) -template MonthCal_GetMonthRange*(hmc: HWND, gmr: DWORD, rgst: LPSYSTEMTIME): INT = discardable INT SendMessage(hmc, MCM_GETMONTHRANGE, cast[WPARAM](gmr), cast[LPARAM](rgst)) -template MonthCal_GetRange*(hmc: HWND, rgst: LPSYSTEMTIME): DWORD = discardable DWORD SendMessage(hmc, MCM_GETRANGE, 0, cast[LPARAM](rgst)) -template MonthCal_GetSelRange*(hmc: HWND, rgst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hmc, MCM_GETSELRANGE, 0, cast[LPARAM](rgst)) -template MonthCal_GetToday*(hmc: HWND, pst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hmc, MCM_GETTODAY, 0, cast[LPARAM](pst)) -template MonthCal_GetUnicodeFormat*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCM_GETUNICODEFORMAT, 0, 0) -template MonthCal_HitTest*(hmc: HWND, pinfo: PMCHITTESTINFO): DWORD = discardable DWORD SendMessage(hmc, MCM_HITTEST, 0, cast[LPARAM](pinfo)) -template MonthCal_SetCalendarBorder*(hmc: HWND, fset: BOOL, xyborder: int32): LRESULT = discardable LRESULT SendMessage(hmc, MCM_SETCALENDARBORDER, cast[WPARAM](fset), cast[LPARAM](xyborder)) -template MonthCal_SetCALID*(hmc: HWND, calid: UINT): LRESULT = discardable LRESULT SendMessage(hmc, MCM_SETCALID, cast[WPARAM](calid), 0) -template MonthCal_SetColor*(hmc: HWND, iColor: INT, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hmc, MCM_SETCOLOR, cast[WPARAM](iColor), cast[LPARAM](clr)) -template MonthCal_SetCurrentView*(hmc: HWND, dwNewView: DWORD): BOOL = discardable BOOL SendMessage(hmc, MCM_SETCURRENTVIEW, 0, cast[LPARAM](dwNewView)) -template MonthCal_SetCurSel*(hmc: HWND, pst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hmc, MCM_SETCURSEL, 0, cast[LPARAM](pst)) -template MonthCal_SetDayState*(hmc: HWND, cbds: INT, rgds: LPMONTHDAYSTATE): BOOL = discardable BOOL SendMessage(hmc, MCM_SETDAYSTATE, cast[WPARAM](cbds), cast[LPARAM](rgds)) -template MonthCal_SetFirstDayOfWeek*(hmc: HWND, iDay: INT): DWORD = discardable DWORD SendMessage(hmc, MCM_SETFIRSTDAYOFWEEK, 0, cast[LPARAM](iDay)) -template MonthCal_SetMaxSelCount*(hmc: HWND, n: UINT): BOOL = discardable BOOL SendMessage(hmc, MCM_SETMAXSELCOUNT, cast[WPARAM](n), 0) -template MonthCal_SetMonthDelta*(hmc: HWND, n: INT): INT = discardable INT SendMessage(hmc, MCM_SETMONTHDELTA, cast[WPARAM](n), 0) -template MonthCal_SetRange*(hmc: HWND, gd: DWORD, rgst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hmc, MCM_SETRANGE, cast[WPARAM](gd), cast[LPARAM](rgst)) -template MonthCal_SetSelRange*(hmc: HWND, rgst: LPSYSTEMTIME): BOOL = discardable BOOL SendMessage(hmc, MCM_SETSELRANGE, 0, cast[LPARAM](rgst)) -template MonthCal_SetToday*(hmc: HWND, pst: LPSYSTEMTIME): void = SendMessage(hmc, MCM_SETTODAY, 0, cast[LPARAM](pst)) -template MonthCal_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = discardable BOOL SendMessage(hwnd, MCM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) -template MonthCal_SizeRectToMin*(hmc: HWND, prc: RECT): LRESULT = discardable LRESULT SendMessage(hmc, MCM_SIZERECTTOMIN, 0, cast[LPARAM](prc)) -template Pager_ForwardMouse*(hwnd: HWND, bForward: BOOL): void = SendMessage(hwnd, PGM_FORWARDMOUSE, cast[WPARAM](bForward), 0) -template Pager_GetBkColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, PGM_GETBKCOLOR, 0, 0) -template Pager_GetBorder*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, PGM_GETBORDER, 0, 0) -template Pager_GetButtonSize*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, PGM_GETBUTTONSIZE, 0, 0) -template Pager_GetButtonState*(hwnd: HWND, iButton: int32): DWORD = discardable DWORD SendMessage(hwnd, PGM_GETBUTTONSTATE, 0, cast[LPARAM](iButton)) -template Pager_GetDropTarget*(hwnd: HWND, ppdt: ptr ptr IDropTarget): void = SendMessage(hwnd, PGM_GETDROPTARGET, 0, cast[LPARAM](ppdt)) -template Pager_GetPos*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, PGM_GETPOS, 0, 0) -template Pager_RecalcSize*(hwnd: HWND): void = SendMessage(hwnd, PGM_RECALCSIZE, 0, 0) -template Pager_SetBkColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, PGM_SETBKCOLOR, 0, cast[LPARAM](clr)) -template Pager_SetBorder*(hwnd: HWND, iBorder: int32): INT = discardable INT SendMessage(hwnd, PGM_SETBORDER, 0, cast[LPARAM](iBorder)) -template Pager_SetButtonSize*(hwnd: HWND, iSize: int32): int32 = discardable int32 SendMessage(hwnd, PGM_SETBUTTONSIZE, 0, cast[LPARAM](iSize)) -template Pager_SetChild*(hwnd: HWND, hwndChild: HWND): void = SendMessage(hwnd, PGM_SETCHILD, 0, cast[LPARAM](hwndChild)) -template Pager_SetPos*(hwnd: HWND, iPos: int32): int32 = discardable int32 SendMessage(hwnd, PGM_SETPOS, 0, cast[LPARAM](iPos)) -template Pager_SetScrollInfo*(hwnd: HWND, cTimeOut: UINT, cLinesPer: UINT, cPixelsPerLine: UINT): void = SendMessage(hwnd, PGM_SETSCROLLINFO, cast[WPARAM](cTimeOut), cast[LPARAM](MAKELONG(cLinesPer, cPixelsPerLine))) -template PropSheet_AddPage*(hDlg: HWND, hpage: HPROPSHEETPAGE): BOOL = discardable BOOL SendMessage(hDlg, PSM_ADDPAGE, 0, cast[LPARAM](hpage)) -template PropSheet_Apply*(hDlg: HWND): BOOL = discardable BOOL SendMessage(hDlg, PSM_APPLY, 0, 0) -template PropSheet_CancelToClose*(hDlg: HWND): void = PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0) -template PropSheet_Changed*(hDlg: HWND, hwnd: HWND): BOOL = discardable BOOL SendMessage(hDlg, PSM_CHANGED, cast[WPARAM](hwnd), 0) -template PropSheet_GetCurrentPageHwnd*(hDlg: HWND): HWND = discardable HWND SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0) -template PropSheet_GetResult*(hDlg: HWND): int32 = discardable int32 SendMessage(hDlg, PSM_GETRESULT, 0, 0) -template PropSheet_GetTabControl*(hDlg: HWND): HWND = discardable HWND SendMessage(hDlg, PSM_GETTABCONTROL, 0, 0) -template PropSheet_HwndToIndex*(hDlg: HWND, hwnd: HWND): int32 = discardable int32 SendMessage(hDlg, PSM_HWNDTOINDEX, cast[WPARAM](hwnd), 0) -template PropSheet_IdToIndex*(hDlg: HWND, id: int32): int32 = discardable int32 SendMessage(hDlg, PSM_IDTOINDEX, 0, cast[LPARAM](id)) -template PropSheet_IndexToHwnd*(hDlg: HWND, i: int32): HWND = discardable HWND SendMessage(hDlg, PSM_INDEXTOHWND, cast[WPARAM](i), 0) -template PropSheet_IndexToId*(hDlg: HWND, i: int32): int32 = discardable int32 SendMessage(hDlg, PSM_INDEXTOID, cast[WPARAM](i), 0) -template PropSheet_IndexToPage*(hDlg: HWND, i: int32): HPROPSHEETPAGE = discardable HPROPSHEETPAGE SendMessage(hDlg, PSM_INDEXTOPAGE, cast[WPARAM](i), 0) -template PropSheet_InsertPage*(hDlg: HWND, index: HWND, hpage: HWND): BOOL = discardable BOOL SendMessage(hDlg, PSM_INSERTPAGE, cast[WPARAM](index), cast[LPARAM](hpage)) -template PropSheet_IsDialogMessage*(hDlg: HWND, pMsg: LPMSG): BOOL = discardable BOOL SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 0, cast[LPARAM](pMsg)) -template PropSheet_PageToIndex*(hDlg: HWND, hpage: HPROPSHEETPAGE): int32 = discardable int32 SendMessage(hDlg, PSM_PAGETOINDEX, 0, cast[LPARAM](hpage)) -template PropSheet_PressButton*(hDlg: HWND, iButton: int32): BOOL = PostMessage(hDlg, PSM_PRESSBUTTON, cast[WPARAM](iButton), 0) -template PropSheet_QuerySiblings*(hDlg: HWND, wParam: WPARAM, lParam: LPARAM): int32 = discardable int32 SendMessage(hDlg, PSM_QUERYSIBLINGS, cast[WPARAM](wParam), cast[LPARAM](lParam)) -template PropSheet_RebootSystem*(hDlg: HWND): void = SendMessage(hDlg, PSM_REBOOTSYSTEM, 0, 0) -template PropSheet_RecalcPageSizes*(hDlg: HWND): BOOL = discardable BOOL SendMessage(hDlg, PSM_RECALCPAGESIZES, 0, 0) -template PropSheet_RemovePage*(hDlg: HWND, index: int32, hpage: HPROPSHEETPAGE): void = SendMessage(hDlg, PSM_REMOVEPAGE, cast[WPARAM](index), cast[LPARAM](hpage)) -template PropSheet_RestartWindows*(hDlg: HWND): void = SendMessage(hDlg, PSM_RESTARTWINDOWS, 0, 0) -template PropSheet_SetCurSel*(hDlg: HWND, hpage: HPROPSHEETPAGE, index: UINT): BOOL = discardable BOOL SendMessage(hDlg, PSM_SETCURSEL, cast[WPARAM](index), cast[LPARAM](hpage)) -template PropSheet_SetCurSelByID*(hDlg: HWND, id: int32): BOOL = discardable BOOL SendMessage(hDlg, PSM_SETCURSELID, 0, cast[LPARAM](id)) + const LVM_SETITEMTEXT* = LVM_SETITEMTEXTA +template ListView_SetItemText*(hwnd: HWND, i: int32, iSub: int32, text: LPCTSTR): void = + ( + var lvi = LV_ITEM(iSubItem: iSub, pszText: text) + SendMessage(hwnd, LVM_SETITEMTEXT, cast[WPARAM](i), cast[LPARAM](addr lvi)) + ) + +template ListView_SetOutlineColor*(hwnd: HWND, color: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, LVM_SETOUTLINECOLOR, 0, cast[LPARAM](color)) + +template ListView_SetSelectedColumn*(hwnd: HWND, iCol: int32): void = + SendMessage(hwnd, LVM_SETSELECTEDCOLUMN, cast[WPARAM](iCol), 0) + +template ListView_SetSelectionMark*(hwnd: HWND, i: INT): INT = + discardable INT SendMessage(hwnd, LVM_SETSELECTIONMARK, 0, cast[LPARAM](i)) + +template ListView_SetTextBkColor*(hwnd: HWND, clrTextBk: COLORREF): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETTEXTBKCOLOR, 0, cast[LPARAM](clrTextBk)) + +template ListView_SetTextColor*(hwnd: HWND, clrText: COLORREF): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETTEXTCOLOR, 0, cast[LPARAM](clrText)) + +template ListView_SetTileInfo*(hwnd: HWND, pti: PLVTILEINFO): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETTILEINFO, 0, cast[LPARAM](pti)) + +template ListView_SetTileViewInfo*(hwnd: HWND, ptvi: PLVTILEVIEWINFO): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETTILEVIEWINFO, 0, cast[LPARAM](ptvi)) + +template ListView_SetTileWidth*(hwnd: HWND, cpWidth: int32): void = + SendMessage(hwnd, LVM_SETTILEWIDTH, cast[WPARAM](cpWidth), 0) + +template ListView_SetToolTips*(hwnd: HWND, hwndNewHwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, LVM_SETTOOLTIPS, cast[WPARAM](hwndNewHwnd), 0) + +template ListView_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, LVM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) + +template ListView_SetView*(hwnd: HWND, iView: DWORD): int32 = + discardable int32 SendMessage(hwnd, LVM_SETVIEW, cast[WPARAM](iView), 0) + +template ListView_SetWorkAreas*(hwnd: HWND, nWorkAreas: INT, prc: LPRECT): void = + SendMessage(hwnd, LVM_SETWORKAREAS, cast[WPARAM](nWorkAreas), cast[LPARAM](prc)) + +template ListView_SortGroups*( + hwnd: HWND, pfnGroupCompate: PFNLVGROUPCOMPARE, plv: LPVOID +): int32 = + discardable int32 SendMessage( + hwnd, LVM_SORTGROUPS, cast[WPARAM](pfnGroupCompate), cast[LPARAM](plv) + ) + +template ListView_SortItems*(hwnd: HWND, pfnCompare: PFNLVCOMPARE, lPrm: LPARAM): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_SORTITEMS, cast[WPARAM](lPrm), cast[LPARAM](pfnCompare) + ) + +template ListView_SortItemsEx*( + hwnd: HWND, pfnCompare: PFNLVCOMPARE, lPrm: LPARAM +): BOOL = + discardable BOOL SendMessage( + hwnd, LVM_SORTITEMSEX, cast[WPARAM](lPrm), cast[LPARAM](pfnCompare) + ) + +template ListView_SubItemHitTest*(hwnd: HWND, plvhti: LPLVHITTESTINFO): INT = + discardable INT SendMessage(hwnd, LVM_SUBITEMHITTEST, 0, cast[LPARAM](plvhti)) + +template ListView_SubItemHitTestEx*(hwnd: HWND, plvhti: LPLVHITTESTINFO): INT = + discardable INT SendMessage( + hwnd, LVM_SUBITEMHITTEST, cast[WPARAM](-1), cast[LPARAM](plvhti) + ) + +template ListView_Update*(hwnd: HWND, i: int32): BOOL = + discardable BOOL SendMessage(hwnd, LVM_UPDATE, cast[WPARAM](i), 0) + +template MonthCal_GetCalendarBorder*(hmc: HWND): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETCALENDARBORDER, 0, 0) + +template MonthCal_GetCalendarCount*(hmc: HWND): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETCALENDARCOUNT, 0, 0) + +template MonthCal_GetCalendarGridInfo*(hmc: HWND, pmcGridInfo: ptr MCGRIDINFO): BOOL = + discardable BOOL SendMessage( + hmc, MCM_GETCALENDARGRIDINFO, 0, cast[LPARAM](pmcGridInfo) + ) + +template MonthCal_GetCALID*(hmc: HWND): CALID = + discardable CALID SendMessage(hmc, MCM_GETCALID, 0, 0) + +template MonthCal_GetColor*(hmc: HWND, iColor: INT): COLORREF = + discardable COLORREF SendMessage(hmc, MCM_GETCOLOR, cast[WPARAM](iColor), 0) + +template MonthCal_GetCurrentView*(hmc: HWND): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETCURRENTVIEW, 0, 0) + +template MonthCal_GetCurSel*(hmc: HWND, pst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hmc, MCM_GETCURSEL, 0, cast[LPARAM](pst)) + +template MonthCal_GetFirstDayOfWeek*(hmc: HWND): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETFIRSTDAYOFWEEK, 0, 0) + +template MonthCal_GetMaxSelCount*(hmc: HWND): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETMAXSELCOUNT, 0, 0) + +template MonthCal_GetMaxTodayWidth*(hmc: HWND): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETMAXTODAYWIDTH, 0, 0) + +template MonthCal_GetMinReqRect*(hmc: HWND, prc: LPRECT): BOOL = + discardable BOOL SendMessage(hmc, MCM_GETMINREQRECT, 0, cast[LPARAM](prc)) + +template MonthCal_GetMonthDelta*(hmc: HWND): INT = + discardable INT SendMessage(hmc, MCM_GETMONTHDELTA, 0, 0) + +template MonthCal_GetMonthRange*(hmc: HWND, gmr: DWORD, rgst: LPSYSTEMTIME): INT = + discardable INT SendMessage( + hmc, MCM_GETMONTHRANGE, cast[WPARAM](gmr), cast[LPARAM](rgst) + ) + +template MonthCal_GetRange*(hmc: HWND, rgst: LPSYSTEMTIME): DWORD = + discardable DWORD SendMessage(hmc, MCM_GETRANGE, 0, cast[LPARAM](rgst)) + +template MonthCal_GetSelRange*(hmc: HWND, rgst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hmc, MCM_GETSELRANGE, 0, cast[LPARAM](rgst)) + +template MonthCal_GetToday*(hmc: HWND, pst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hmc, MCM_GETTODAY, 0, cast[LPARAM](pst)) + +template MonthCal_GetUnicodeFormat*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCM_GETUNICODEFORMAT, 0, 0) + +template MonthCal_HitTest*(hmc: HWND, pinfo: PMCHITTESTINFO): DWORD = + discardable DWORD SendMessage(hmc, MCM_HITTEST, 0, cast[LPARAM](pinfo)) + +template MonthCal_SetCalendarBorder*(hmc: HWND, fset: BOOL, xyborder: int32): LRESULT = + discardable LRESULT SendMessage( + hmc, MCM_SETCALENDARBORDER, cast[WPARAM](fset), cast[LPARAM](xyborder) + ) + +template MonthCal_SetCALID*(hmc: HWND, calid: UINT): LRESULT = + discardable LRESULT SendMessage(hmc, MCM_SETCALID, cast[WPARAM](calid), 0) + +template MonthCal_SetColor*(hmc: HWND, iColor: INT, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage( + hmc, MCM_SETCOLOR, cast[WPARAM](iColor), cast[LPARAM](clr) + ) + +template MonthCal_SetCurrentView*(hmc: HWND, dwNewView: DWORD): BOOL = + discardable BOOL SendMessage(hmc, MCM_SETCURRENTVIEW, 0, cast[LPARAM](dwNewView)) + +template MonthCal_SetCurSel*(hmc: HWND, pst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hmc, MCM_SETCURSEL, 0, cast[LPARAM](pst)) + +template MonthCal_SetDayState*(hmc: HWND, cbds: INT, rgds: LPMONTHDAYSTATE): BOOL = + discardable BOOL SendMessage( + hmc, MCM_SETDAYSTATE, cast[WPARAM](cbds), cast[LPARAM](rgds) + ) + +template MonthCal_SetFirstDayOfWeek*(hmc: HWND, iDay: INT): DWORD = + discardable DWORD SendMessage(hmc, MCM_SETFIRSTDAYOFWEEK, 0, cast[LPARAM](iDay)) + +template MonthCal_SetMaxSelCount*(hmc: HWND, n: UINT): BOOL = + discardable BOOL SendMessage(hmc, MCM_SETMAXSELCOUNT, cast[WPARAM](n), 0) + +template MonthCal_SetMonthDelta*(hmc: HWND, n: INT): INT = + discardable INT SendMessage(hmc, MCM_SETMONTHDELTA, cast[WPARAM](n), 0) + +template MonthCal_SetRange*(hmc: HWND, gd: DWORD, rgst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hmc, MCM_SETRANGE, cast[WPARAM](gd), cast[LPARAM](rgst)) + +template MonthCal_SetSelRange*(hmc: HWND, rgst: LPSYSTEMTIME): BOOL = + discardable BOOL SendMessage(hmc, MCM_SETSELRANGE, 0, cast[LPARAM](rgst)) + +template MonthCal_SetToday*(hmc: HWND, pst: LPSYSTEMTIME): void = + SendMessage(hmc, MCM_SETTODAY, 0, cast[LPARAM](pst)) + +template MonthCal_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, MCM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) + +template MonthCal_SizeRectToMin*(hmc: HWND, prc: RECT): LRESULT = + discardable LRESULT SendMessage(hmc, MCM_SIZERECTTOMIN, 0, cast[LPARAM](prc)) + +template Pager_ForwardMouse*(hwnd: HWND, bForward: BOOL): void = + SendMessage(hwnd, PGM_FORWARDMOUSE, cast[WPARAM](bForward), 0) + +template Pager_GetBkColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, PGM_GETBKCOLOR, 0, 0) + +template Pager_GetBorder*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, PGM_GETBORDER, 0, 0) + +template Pager_GetButtonSize*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, PGM_GETBUTTONSIZE, 0, 0) + +template Pager_GetButtonState*(hwnd: HWND, iButton: int32): DWORD = + discardable DWORD SendMessage(hwnd, PGM_GETBUTTONSTATE, 0, cast[LPARAM](iButton)) + +template Pager_GetDropTarget*(hwnd: HWND, ppdt: ptr ptr IDropTarget): void = + SendMessage(hwnd, PGM_GETDROPTARGET, 0, cast[LPARAM](ppdt)) + +template Pager_GetPos*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, PGM_GETPOS, 0, 0) + +template Pager_RecalcSize*(hwnd: HWND): void = + SendMessage(hwnd, PGM_RECALCSIZE, 0, 0) + +template Pager_SetBkColor*(hwnd: HWND, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, PGM_SETBKCOLOR, 0, cast[LPARAM](clr)) + +template Pager_SetBorder*(hwnd: HWND, iBorder: int32): INT = + discardable INT SendMessage(hwnd, PGM_SETBORDER, 0, cast[LPARAM](iBorder)) + +template Pager_SetButtonSize*(hwnd: HWND, iSize: int32): int32 = + discardable int32 SendMessage(hwnd, PGM_SETBUTTONSIZE, 0, cast[LPARAM](iSize)) + +template Pager_SetChild*(hwnd: HWND, hwndChild: HWND): void = + SendMessage(hwnd, PGM_SETCHILD, 0, cast[LPARAM](hwndChild)) + +template Pager_SetPos*(hwnd: HWND, iPos: int32): int32 = + discardable int32 SendMessage(hwnd, PGM_SETPOS, 0, cast[LPARAM](iPos)) + +template Pager_SetScrollInfo*( + hwnd: HWND, cTimeOut: UINT, cLinesPer: UINT, cPixelsPerLine: UINT +): void = + SendMessage( + hwnd, + PGM_SETSCROLLINFO, + cast[WPARAM](cTimeOut), + cast[LPARAM](MAKELONG(cLinesPer, cPixelsPerLine)), + ) + +template PropSheet_AddPage*(hDlg: HWND, hpage: HPROPSHEETPAGE): BOOL = + discardable BOOL SendMessage(hDlg, PSM_ADDPAGE, 0, cast[LPARAM](hpage)) + +template PropSheet_Apply*(hDlg: HWND): BOOL = + discardable BOOL SendMessage(hDlg, PSM_APPLY, 0, 0) + +template PropSheet_CancelToClose*(hDlg: HWND): void = + PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0) + +template PropSheet_Changed*(hDlg: HWND, hwnd: HWND): BOOL = + discardable BOOL SendMessage(hDlg, PSM_CHANGED, cast[WPARAM](hwnd), 0) + +template PropSheet_GetCurrentPageHwnd*(hDlg: HWND): HWND = + discardable HWND SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0) + +template PropSheet_GetResult*(hDlg: HWND): int32 = + discardable int32 SendMessage(hDlg, PSM_GETRESULT, 0, 0) + +template PropSheet_GetTabControl*(hDlg: HWND): HWND = + discardable HWND SendMessage(hDlg, PSM_GETTABCONTROL, 0, 0) + +template PropSheet_HwndToIndex*(hDlg: HWND, hwnd: HWND): int32 = + discardable int32 SendMessage(hDlg, PSM_HWNDTOINDEX, cast[WPARAM](hwnd), 0) + +template PropSheet_IdToIndex*(hDlg: HWND, id: int32): int32 = + discardable int32 SendMessage(hDlg, PSM_IDTOINDEX, 0, cast[LPARAM](id)) + +template PropSheet_IndexToHwnd*(hDlg: HWND, i: int32): HWND = + discardable HWND SendMessage(hDlg, PSM_INDEXTOHWND, cast[WPARAM](i), 0) + +template PropSheet_IndexToId*(hDlg: HWND, i: int32): int32 = + discardable int32 SendMessage(hDlg, PSM_INDEXTOID, cast[WPARAM](i), 0) + +template PropSheet_IndexToPage*(hDlg: HWND, i: int32): HPROPSHEETPAGE = + discardable HPROPSHEETPAGE SendMessage(hDlg, PSM_INDEXTOPAGE, cast[WPARAM](i), 0) + +template PropSheet_InsertPage*(hDlg: HWND, index: HWND, hpage: HWND): BOOL = + discardable BOOL SendMessage( + hDlg, PSM_INSERTPAGE, cast[WPARAM](index), cast[LPARAM](hpage) + ) + +template PropSheet_IsDialogMessage*(hDlg: HWND, pMsg: LPMSG): BOOL = + discardable BOOL SendMessage(hDlg, PSM_ISDIALOGMESSAGE, 0, cast[LPARAM](pMsg)) + +template PropSheet_PageToIndex*(hDlg: HWND, hpage: HPROPSHEETPAGE): int32 = + discardable int32 SendMessage(hDlg, PSM_PAGETOINDEX, 0, cast[LPARAM](hpage)) + +template PropSheet_PressButton*(hDlg: HWND, iButton: int32): BOOL = + PostMessage(hDlg, PSM_PRESSBUTTON, cast[WPARAM](iButton), 0) + +template PropSheet_QuerySiblings*(hDlg: HWND, wParam: WPARAM, lParam: LPARAM): int32 = + discardable int32 SendMessage( + hDlg, PSM_QUERYSIBLINGS, cast[WPARAM](wParam), cast[LPARAM](lParam) + ) + +template PropSheet_RebootSystem*(hDlg: HWND): void = + SendMessage(hDlg, PSM_REBOOTSYSTEM, 0, 0) + +template PropSheet_RecalcPageSizes*(hDlg: HWND): BOOL = + discardable BOOL SendMessage(hDlg, PSM_RECALCPAGESIZES, 0, 0) + +template PropSheet_RemovePage*(hDlg: HWND, index: int32, hpage: HPROPSHEETPAGE): void = + SendMessage(hDlg, PSM_REMOVEPAGE, cast[WPARAM](index), cast[LPARAM](hpage)) + +template PropSheet_RestartWindows*(hDlg: HWND): void = + SendMessage(hDlg, PSM_RESTARTWINDOWS, 0, 0) + +template PropSheet_SetCurSel*(hDlg: HWND, hpage: HPROPSHEETPAGE, index: UINT): BOOL = + discardable BOOL SendMessage( + hDlg, PSM_SETCURSEL, cast[WPARAM](index), cast[LPARAM](hpage) + ) + +template PropSheet_SetCurSelByID*(hDlg: HWND, id: int32): BOOL = + discardable BOOL SendMessage(hDlg, PSM_SETCURSELID, 0, cast[LPARAM](id)) + when winimUnicode: - const - PSM_SETFINISHTEXT* = PSM_SETFINISHTEXTW -when winimAnsi: - const - PSM_SETFINISHTEXT* = PSM_SETFINISHTEXTA -template PropSheet_SetFinishText*(hDlg: HWND, lpszText: LPTSTR): void = SendMessage(hDlg, PSM_SETFINISHTEXT, 0, cast[LPARAM](lpszText)) -when winimUnicode: - const - PSM_SETHEADERSUBTITLE* = PSM_SETHEADERSUBTITLEW + const PSM_SETFINISHTEXT* = PSM_SETFINISHTEXTW when winimAnsi: - const - PSM_SETHEADERSUBTITLE* = PSM_SETHEADERSUBTITLEA -template PropSheet_SetHeaderSubTitle*(hDlg: HWND, index: int32, lpszText: LPCSTR): void = SendMessage(hDlg, PSM_SETHEADERSUBTITLE, cast[WPARAM](index), cast[LPARAM](lpszText)) + const PSM_SETFINISHTEXT* = PSM_SETFINISHTEXTA +template PropSheet_SetFinishText*(hDlg: HWND, lpszText: LPTSTR): void = + SendMessage(hDlg, PSM_SETFINISHTEXT, 0, cast[LPARAM](lpszText)) + when winimUnicode: - const - PSM_SETHEADERTITLE* = PSM_SETHEADERTITLEW + const PSM_SETHEADERSUBTITLE* = PSM_SETHEADERSUBTITLEW when winimAnsi: - const - PSM_SETHEADERTITLE* = PSM_SETHEADERTITLEA -template PropSheet_SetHeaderTitle*(hDlg: HWND, index: int32, lpszText: LPCTSTR): int32 = discardable int32 SendMessage(hDlg, PSM_SETHEADERTITLE, cast[WPARAM](index), cast[LPARAM](lpszText)) + const PSM_SETHEADERSUBTITLE* = PSM_SETHEADERSUBTITLEA +template PropSheet_SetHeaderSubTitle*( + hDlg: HWND, index: int32, lpszText: LPCSTR +): void = + SendMessage(hDlg, PSM_SETHEADERSUBTITLE, cast[WPARAM](index), cast[LPARAM](lpszText)) + when winimUnicode: - const - PSM_SETTITLE* = PSM_SETTITLEW + const PSM_SETHEADERTITLE* = PSM_SETHEADERTITLEW +when winimAnsi: + const PSM_SETHEADERTITLE* = PSM_SETHEADERTITLEA +template PropSheet_SetHeaderTitle*(hDlg: HWND, index: int32, lpszText: LPCTSTR): int32 = + discardable int32 SendMessage( + hDlg, PSM_SETHEADERTITLE, cast[WPARAM](index), cast[LPARAM](lpszText) + ) + +when winimUnicode: + const PSM_SETTITLE* = PSM_SETTITLEW when winimAnsi: - const - PSM_SETTITLE* = PSM_SETTITLEA -template PropSheet_SetTitle*(hDlg: HWND, wStyle: DWORD, lpszText: LPTSTR): void = SendMessage(hDlg, PSM_SETTITLE, cast[WPARAM](wStyle), cast[LPARAM](lpszText)) -template PropSheet_SetWizButtons*(hDlg: HWND, dwFlags: DWORD): void = PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, cast[LPARAM](dwFlags)) -template PropSheet_SetWizButtons*(hDlg: HWND, iButton: int32): void = PostMessage(hDlg, PSM_PRESSBUTTON, cast[WPARAM](iButton), 0) -template PropSheet_UnChanged*(hDlg: HWND, hwnd: HWND): void = SendMessage(hDlg, PSM_UNCHANGED, cast[WPARAM](hwnd), 0) -template TabCtrl_AdjustRect*(hwnd: HWND, bLarger: BOOL, prc: ptr RECT): void = SendMessage(hwnd, TCM_ADJUSTRECT, cast[WPARAM](bLarger), cast[LPARAM](prc)) -template TabCtrl_DeleteAllItems*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, TCM_DELETEALLITEMS, 0, 0) -template TabCtrl_DeleteItem*(hwnd: HWND, i: int32): BOOL = discardable BOOL SendMessage(hwnd, TCM_DELETEITEM, cast[WPARAM](i), 0) -template TabCtrl_DeselectAll*(hwnd: HWND, fExcludeFocus: UINT): void = SendMessage(hwnd, TCM_DESELECTALL, cast[WPARAM](fExcludeFocus), 0) -template TabCtrl_GetCurFocus*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, TCM_GETCURFOCUS, 0, 0) -template TabCtrl_GetCurSel*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, TCM_GETCURSEL, 0, 0) -template TabCtrl_GetExtendedStyle*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, TCM_GETEXTENDEDSTYLE, 0, 0) -template TabCtrl_GetImageList*(hwnd: HWND): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, TCM_GETIMAGELIST, 0, 0) + const PSM_SETTITLE* = PSM_SETTITLEA +template PropSheet_SetTitle*(hDlg: HWND, wStyle: DWORD, lpszText: LPTSTR): void = + SendMessage(hDlg, PSM_SETTITLE, cast[WPARAM](wStyle), cast[LPARAM](lpszText)) + +template PropSheet_SetWizButtons*(hDlg: HWND, dwFlags: DWORD): void = + PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, cast[LPARAM](dwFlags)) + +template PropSheet_SetWizButtons*(hDlg: HWND, iButton: int32): void = + PostMessage(hDlg, PSM_PRESSBUTTON, cast[WPARAM](iButton), 0) + +template PropSheet_UnChanged*(hDlg: HWND, hwnd: HWND): void = + SendMessage(hDlg, PSM_UNCHANGED, cast[WPARAM](hwnd), 0) + +template TabCtrl_AdjustRect*(hwnd: HWND, bLarger: BOOL, prc: ptr RECT): void = + SendMessage(hwnd, TCM_ADJUSTRECT, cast[WPARAM](bLarger), cast[LPARAM](prc)) + +template TabCtrl_DeleteAllItems*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, TCM_DELETEALLITEMS, 0, 0) + +template TabCtrl_DeleteItem*(hwnd: HWND, i: int32): BOOL = + discardable BOOL SendMessage(hwnd, TCM_DELETEITEM, cast[WPARAM](i), 0) + +template TabCtrl_DeselectAll*(hwnd: HWND, fExcludeFocus: UINT): void = + SendMessage(hwnd, TCM_DESELECTALL, cast[WPARAM](fExcludeFocus), 0) + +template TabCtrl_GetCurFocus*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, TCM_GETCURFOCUS, 0, 0) + +template TabCtrl_GetCurSel*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, TCM_GETCURSEL, 0, 0) + +template TabCtrl_GetExtendedStyle*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, TCM_GETEXTENDEDSTYLE, 0, 0) + +template TabCtrl_GetImageList*(hwnd: HWND): HIMAGELIST = + discardable HIMAGELIST SendMessage(hwnd, TCM_GETIMAGELIST, 0, 0) + when winimUnicode: - type - LPTCITEM* = LPTCITEMW + type LPTCITEM* = LPTCITEMW when winimAnsi: - type - LPTCITEM* = LPTCITEMA + type LPTCITEM* = LPTCITEMA when winimUnicode: - const - TCM_GETITEM* = TCM_GETITEMW + const TCM_GETITEM* = TCM_GETITEMW when winimAnsi: - const - TCM_GETITEM* = TCM_GETITEMA -template TabCtrl_GetItem*(hwnd: HWND, iItem: int32, pitem: LPTCITEM): BOOL = discardable BOOL SendMessage(hwnd, TCM_GETITEM, cast[WPARAM](iItem), cast[LPARAM](pitem)) -template TabCtrl_GetItemCount*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, TCM_GETITEMCOUNT, 0, 0) -template TabCtrl_GetItemRect*(hwnd: HWND, i: int32, prc: ptr RECT): BOOL = discardable BOOL SendMessage(hwnd, TCM_GETITEMRECT, cast[WPARAM](i), cast[LPARAM](prc)) -template TabCtrl_GetRowCount*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, TCM_GETROWCOUNT, 0, 0) -template TabCtrl_GetToolTips*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, TCM_GETTOOLTIPS, 0, 0) -template TabCtrl_GetUnicodeFormat*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, TCM_GETUNICODEFORMAT, 0, 0) -template TabCtrl_HighlightItem*(hwnd: HWND, i: INT, fHighlight: WORD): BOOL = discardable BOOL SendMessage(hwnd, TCM_HIGHLIGHTITEM, cast[WPARAM](i), MAKELONG(fHighlight, 0)) -template TabCtrl_HitTest*(hwnd: HWND, pinfo: LPTCHITTESTINFO): int32 = discardable int32 SendMessage(hwnd, TCM_HITTEST, 0, cast[LPARAM](pinfo)) + const TCM_GETITEM* = TCM_GETITEMA +template TabCtrl_GetItem*(hwnd: HWND, iItem: int32, pitem: LPTCITEM): BOOL = + discardable BOOL SendMessage( + hwnd, TCM_GETITEM, cast[WPARAM](iItem), cast[LPARAM](pitem) + ) + +template TabCtrl_GetItemCount*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, TCM_GETITEMCOUNT, 0, 0) + +template TabCtrl_GetItemRect*(hwnd: HWND, i: int32, prc: ptr RECT): BOOL = + discardable BOOL SendMessage( + hwnd, TCM_GETITEMRECT, cast[WPARAM](i), cast[LPARAM](prc) + ) + +template TabCtrl_GetRowCount*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, TCM_GETROWCOUNT, 0, 0) + +template TabCtrl_GetToolTips*(hwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, TCM_GETTOOLTIPS, 0, 0) + +template TabCtrl_GetUnicodeFormat*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, TCM_GETUNICODEFORMAT, 0, 0) + +template TabCtrl_HighlightItem*(hwnd: HWND, i: INT, fHighlight: WORD): BOOL = + discardable BOOL SendMessage( + hwnd, TCM_HIGHLIGHTITEM, cast[WPARAM](i), MAKELONG(fHighlight, 0) + ) + +template TabCtrl_HitTest*(hwnd: HWND, pinfo: LPTCHITTESTINFO): int32 = + discardable int32 SendMessage(hwnd, TCM_HITTEST, 0, cast[LPARAM](pinfo)) + when winimUnicode: - const - TCM_INSERTITEM* = TCM_INSERTITEMW + const TCM_INSERTITEM* = TCM_INSERTITEMW +when winimAnsi: + const TCM_INSERTITEM* = TCM_INSERTITEMA +template TabCtrl_InsertItem*(hwnd: HWND, iItem: int32, pitem: LPTCITEM): int32 = + discardable int32 SendMessage( + hwnd, TCM_INSERTITEM, cast[WPARAM](iItem), cast[LPARAM](pitem) + ) + +template TabCtrl_RemoveImage*(hwnd: HWND, i: int32): void = + SendMessage(hwnd, TCM_REMOVEIMAGE, cast[WPARAM](i), 0) + +template TabCtrl_SetCurFocus*(hwnd: HWND, i: int32): void = + SendMessage(hwnd, TCM_SETCURFOCUS, cast[WPARAM](i), 0) + +template TabCtrl_SetCurSel*(hwnd: HWND, i: int32): int32 = + discardable int32 SendMessage(hwnd, TCM_SETCURSEL, cast[WPARAM](i), 0) + +template TabCtrl_SetExtendedStyle*(hwnd: HWND, dw: DWORD): DWORD = + discardable DWORD SendMessage(hwnd, TCM_SETEXTENDEDSTYLE, 0, cast[LPARAM](dw)) + +template TabCtrl_SetImageList*(hwnd: HWND, himl: HIMAGELIST): BOOL = + discardable BOOL SendMessage(hwnd, TCM_SETIMAGELIST, 0, cast[LPARAM](himl)) + +when winimUnicode: + const TCM_SETITEM* = TCM_SETITEMW when winimAnsi: - const - TCM_INSERTITEM* = TCM_INSERTITEMA -template TabCtrl_InsertItem*(hwnd: HWND, iItem: int32, pitem: LPTCITEM): int32 = discardable int32 SendMessage(hwnd, TCM_INSERTITEM, cast[WPARAM](iItem), cast[LPARAM](pitem)) -template TabCtrl_RemoveImage*(hwnd: HWND, i: int32): void = SendMessage(hwnd, TCM_REMOVEIMAGE, cast[WPARAM](i), 0) -template TabCtrl_SetCurFocus*(hwnd: HWND, i: int32): void = SendMessage(hwnd, TCM_SETCURFOCUS, cast[WPARAM](i), 0) -template TabCtrl_SetCurSel*(hwnd: HWND, i: int32): int32 = discardable int32 SendMessage(hwnd, TCM_SETCURSEL, cast[WPARAM](i), 0) -template TabCtrl_SetExtendedStyle*(hwnd: HWND, dw: DWORD): DWORD = discardable DWORD SendMessage(hwnd, TCM_SETEXTENDEDSTYLE, 0, cast[LPARAM](dw)) -template TabCtrl_SetImageList*(hwnd: HWND, himl: HIMAGELIST): BOOL = discardable BOOL SendMessage(hwnd, TCM_SETIMAGELIST, 0, cast[LPARAM](himl)) + const TCM_SETITEM* = TCM_SETITEMA +template TabCtrl_SetItem*(hwnd: HWND, iItem: int32, pitem: LPTCITEM): BOOL = + discardable BOOL SendMessage( + hwnd, TCM_SETITEM, cast[WPARAM](iItem), cast[LPARAM](pitem) + ) + +template TabCtrl_SetItemExtra*(hwndTC: HWND, cb: int32): BOOL = + discardable BOOL SendMessage(hwndTC, TCM_SETITEMEXTRA, cast[WPARAM](cb), 0) + +template TabCtrl_SetItemSize*(hwnd: HWND, x: int32, y: int32): DWORD = + discardable DWORD SendMessage(hwnd, TCM_SETITEMSIZE, 0, MAKELPARAM(x, y)) + +template TabCtrl_SetMinTabWidth*(hwnd: HWND, x: int32): int32 = + discardable int32 SendMessage(hwnd, TCM_SETMINTABWIDTH, 0, cast[LPARAM](x)) + +template TabCtrl_SetPadding*(hwnd: HWND, cx: int32, cy: int32): void = + SendMessage(hwnd, TCM_SETPADDING, 0, MAKELPARAM(cx, cy)) + +template TabCtrl_SetToolTips*(hwnd: HWND, hwndTT: HWND): void = + SendMessage(hwnd, TCM_SETTOOLTIPS, cast[WPARAM](hwndTT), 0) + +template TabCtrl_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, TCM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) + +template TreeView_CreateDragImage*(hwnd: HWND, hitem: HTREEITEM): HIMAGELIST = + discardable HIMAGELIST SendMessage(hwnd, TVM_CREATEDRAGIMAGE, 0, cast[LPARAM](hitem)) + +template TreeView_DeleteAllItems*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, TVM_DELETEITEM, 0, cast[LPARAM](TVI_ROOT)) + +template TreeView_DeleteItem*(hwnd: HWND, hitem: HTREEITEM): BOOL = + discardable BOOL SendMessage(hwnd, TVM_DELETEITEM, 0, cast[LPARAM](hitem)) + when winimUnicode: - const - TCM_SETITEM* = TCM_SETITEMW + const TVM_EDITLABEL* = TVM_EDITLABELW when winimAnsi: - const - TCM_SETITEM* = TCM_SETITEMA -template TabCtrl_SetItem*(hwnd: HWND, iItem: int32, pitem: LPTCITEM): BOOL = discardable BOOL SendMessage(hwnd, TCM_SETITEM, cast[WPARAM](iItem), cast[LPARAM](pitem)) -template TabCtrl_SetItemExtra*(hwndTC: HWND, cb: int32): BOOL = discardable BOOL SendMessage(hwndTC, TCM_SETITEMEXTRA, cast[WPARAM](cb), 0) -template TabCtrl_SetItemSize*(hwnd: HWND, x: int32, y: int32): DWORD = discardable DWORD SendMessage(hwnd, TCM_SETITEMSIZE, 0, MAKELPARAM(x, y)) -template TabCtrl_SetMinTabWidth*(hwnd: HWND, x: int32): int32 = discardable int32 SendMessage(hwnd, TCM_SETMINTABWIDTH, 0, cast[LPARAM](x)) -template TabCtrl_SetPadding*(hwnd: HWND, cx: int32, cy: int32): void = SendMessage(hwnd, TCM_SETPADDING, 0, MAKELPARAM(cx,cy)) -template TabCtrl_SetToolTips*(hwnd: HWND, hwndTT: HWND): void = SendMessage(hwnd, TCM_SETTOOLTIPS, cast[WPARAM](hwndTT), 0) -template TabCtrl_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TCM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) -template TreeView_CreateDragImage*(hwnd: HWND, hitem: HTREEITEM): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, TVM_CREATEDRAGIMAGE, 0, cast[LPARAM](hitem)) -template TreeView_DeleteAllItems*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, TVM_DELETEITEM, 0, cast[LPARAM](TVI_ROOT)) -template TreeView_DeleteItem*(hwnd: HWND, hitem: HTREEITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_DELETEITEM, 0, cast[LPARAM](hitem)) + const TVM_EDITLABEL* = TVM_EDITLABELA +template TreeView_EditLabel*(hwnd: HWND, hitem: HTREEITEM): HWND = + discardable HWND SendMessage(hwnd, TVM_EDITLABEL, 0, cast[LPARAM](hitem)) + +template TreeView_EndEditLabelNow*(hwnd: HWND, fCancel: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, TVM_ENDEDITLABELNOW, cast[WPARAM](fCancel), 0) + +template TreeView_EnsureVisible*(hwnd: HWND, hitem: HTREEITEM): BOOL = + discardable BOOL SendMessage(hwnd, TVM_ENSUREVISIBLE, 0, cast[LPARAM](hitem)) + +template TreeView_Expand*(hwnd: HWND, hitem: HTREEITEM, code: UINT): BOOL = + discardable BOOL SendMessage( + hwnd, TVM_EXPAND, cast[WPARAM](code), cast[LPARAM](hitem) + ) + +template TreeView_GetBkColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_GETBKCOLOR, 0, 0) + +template TreeView_GetCheckState*(hwnd: HWND, hti: HTREEITEM): UINT = + discardable UINT( + (SendMessage(hwnd, TVM_GETITEMSTATE, cast[WPARAM](hti), TVIS_STATEIMAGEMASK) shr 12) - + 1 + ) + +template TreeView_GetNextItem*(hwnd: HWND, hitem: HTREEITEM, code: UINT): HTREEITEM = + discardable HTREEITEM SendMessage( + hwnd, TVM_GETNEXTITEM, cast[WPARAM](code), cast[LPARAM](hitem) + ) + +template TreeView_GetChild*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD) + +template TreeView_GetCount*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, TVM_GETCOUNT, 0, 0) + +template TreeView_GetDropHilight*(hwnd: HWND): HTREEITEM = + TreeView_GetNextItem(hwnd, 0, TVGN_DROPHILITE) + +template TreeView_GetEditControl*(hwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, TVM_GETEDITCONTROL, 0, 0) + +template TreeView_GetExtendedStyle*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, TVM_GETEXTENDEDSTYLE, 0, 0) + +template TreeView_GetFirstVisible*(hwnd: HWND): HTREEITEM = + TreeView_GetNextItem(hwnd, 0, TVGN_FIRSTVISIBLE) + +template TreeView_GetImageList*(hwnd: HWND, iImage: INT): HIMAGELIST = + discardable HIMAGELIST SendMessage(hwnd, TVM_GETIMAGELIST, cast[WPARAM](iImage), 0) + +template TreeView_GetIndent*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, TVM_GETINDENT, 0, 0) + +template TreeView_GetInsertMarkColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_GETINSERTMARKCOLOR, 0, 0) + when winimUnicode: - const - TVM_EDITLABEL* = TVM_EDITLABELW + const TVM_GETISEARCHSTRING* = TVM_GETISEARCHSTRINGW when winimAnsi: - const - TVM_EDITLABEL* = TVM_EDITLABELA -template TreeView_EditLabel*(hwnd: HWND, hitem: HTREEITEM): HWND = discardable HWND SendMessage(hwnd, TVM_EDITLABEL, 0, cast[LPARAM](hitem)) -template TreeView_EndEditLabelNow*(hwnd: HWND, fCancel: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_ENDEDITLABELNOW, cast[WPARAM](fCancel), 0) -template TreeView_EnsureVisible*(hwnd: HWND, hitem: HTREEITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_ENSUREVISIBLE, 0, cast[LPARAM](hitem)) -template TreeView_Expand*(hwnd: HWND, hitem: HTREEITEM, code: UINT): BOOL = discardable BOOL SendMessage(hwnd, TVM_EXPAND, cast[WPARAM](code), cast[LPARAM](hitem)) -template TreeView_GetBkColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_GETBKCOLOR, 0, 0) -template TreeView_GetCheckState*(hwnd: HWND, hti: HTREEITEM): UINT = discardable UINT((SendMessage(hwnd, TVM_GETITEMSTATE, cast[WPARAM](hti), TVIS_STATEIMAGEMASK) shr 12) - 1) -template TreeView_GetNextItem*(hwnd: HWND, hitem: HTREEITEM, code: UINT): HTREEITEM = discardable HTREEITEM SendMessage(hwnd, TVM_GETNEXTITEM, cast[WPARAM](code), cast[LPARAM](hitem)) -template TreeView_GetChild*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem(hwnd, hitem, TVGN_CHILD) -template TreeView_GetCount*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, TVM_GETCOUNT, 0, 0) -template TreeView_GetDropHilight*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_DROPHILITE) -template TreeView_GetEditControl*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, TVM_GETEDITCONTROL, 0, 0) -template TreeView_GetExtendedStyle*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, TVM_GETEXTENDEDSTYLE, 0, 0) -template TreeView_GetFirstVisible*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_FIRSTVISIBLE) -template TreeView_GetImageList*(hwnd: HWND, iImage: INT): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, TVM_GETIMAGELIST, cast[WPARAM](iImage), 0) -template TreeView_GetIndent*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, TVM_GETINDENT, 0, 0) -template TreeView_GetInsertMarkColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_GETINSERTMARKCOLOR, 0, 0) + const TVM_GETISEARCHSTRING* = TVM_GETISEARCHSTRINGA +template TreeView_GetISearchString*(hwndTV: HWND, lpsz: LPTSTR): BOOL = + discardable BOOL SendMessage(hwndTV, TVM_GETISEARCHSTRING, 0, cast[LPARAM](lpsz)) + when winimUnicode: - const - TVM_GETISEARCHSTRING* = TVM_GETISEARCHSTRINGW + type LPTVITEM* = LPTVITEMW +when winimAnsi: + type LPTVITEM* = LPTVITEMA +when winimUnicode: + const TVM_GETITEM* = TVM_GETITEMW when winimAnsi: - const - TVM_GETISEARCHSTRING* = TVM_GETISEARCHSTRINGA -template TreeView_GetISearchString*(hwndTV: HWND, lpsz: LPTSTR): BOOL = discardable BOOL SendMessage(hwndTV, TVM_GETISEARCHSTRING, 0, cast[LPARAM](lpsz)) + const TVM_GETITEM* = TVM_GETITEMA +template TreeView_GetItem*(hwnd: HWND, pitem: LPTVITEM): BOOL = + discardable BOOL SendMessage(hwnd, TVM_GETITEM, 0, cast[LPARAM](pitem)) + +template TreeView_GetItemHeight*(hwnd: HWND): int32 = + discardable int32 SendMessage(hwnd, TVM_GETITEMHEIGHT, 0, 0) + +template TreeView_GetItemPartRect*( + hwnd: HWND, hitem: HTREEITEM, pRect: ptr RECT, pPartID: TVITEMPART +): BOOL = + ( + var info = TVGETITEMPARTRECTINFO(hti: hItem, prc: pRect, partID: pPartID) + discardable BOOL SendMessage(hwnd, TVM_GETITEMPARTRECT, 0, cast[LPARAM](addr info)) + ) + +template TreeView_GetItemRect*( + hwnd: HWND, hitem: HTREEITEM, prc: LPRECT, fItemRect: BOOL +): BOOL = + (; + cast[ptr HTREEITEM](prc)[] = hitem + discardable BOOL SendMessage( + hwnd, TVM_GETITEMRECT, cast[WPARAM](fItemRect), cast[LPARAM](prc) + ) + ) + +template TreeView_GetItemState*(hwndTV: HWND, hti: HTREEITEM, mask: UINT): UINT = + discardable UINT SendMessage( + hwndTV, TVM_GETITEMSTATE, cast[WPARAM](hti), cast[LPARAM](mask) + ) + +template TreeView_GetLastVisible*(hwnd: HWND): HTREEITEM = + TreeView_GetNextItem(hwnd, 0, TVGN_LASTVISIBLE) + +template TreeView_GetLineColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_GETLINECOLOR, 0, 0) + +template TreeView_GetNextSelected*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem (hwnd, hitem, TVGN_NEXTSELECTED) + +template TreeView_GetNextSibling*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT) + +template TreeView_GetNextVisible*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE) + +template TreeView_GetParent*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT) + +template TreeView_GetPrevSibling*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS) + +template TreeView_GetPrevVisible*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = + TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE) + +template TreeView_GetRoot*(hwnd: HWND): HTREEITEM = + TreeView_GetNextItem(hwnd, 0, TVGN_ROOT) + +template TreeView_GetScrollTime*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, TVM_GETSCROLLTIME, 0, 0) + +template TreeView_GetSelectedCount*(hwnd: HWND): DWORD = + discardable DWORD SendMessage(hwnd, TVM_GETSELECTEDCOUNT, 0, 0) + +template TreeView_GetSelection*(hwnd: HWND): HTREEITEM = + TreeView_GetNextItem(hwnd, 0, TVGN_CARET) + +template TreeView_GetTextColor*(hwnd: HWND): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_GETTEXTCOLOR, 0, 0) + +template TreeView_GetToolTips*(hwnd: HWND): HWND = + discardable HWND SendMessage(hwnd, TVM_GETTOOLTIPS, 0, 0) + +template TreeView_GetUnicodeFormat*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, TVM_GETUNICODEFORMAT, 0, 0) + +template TreeView_GetVisibleCount*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, TVM_GETVISIBLECOUNT, 0, 0) + +template TreeView_HitTest*(hwnd: HWND, lpht: LPTVHITTESTINFO): HTREEITEM = + discardable HTREEITEM SendMessage(hwnd, TVM_HITTEST, 0, cast[LPARAM](lpht)) + when winimUnicode: - type - LPTVITEM* = LPTVITEMW -when winimAnsi: - type - LPTVITEM* = LPTVITEMA -when winimUnicode: - const - TVM_GETITEM* = TVM_GETITEMW + type LPTVINSERTSTRUCT* = LPTVINSERTSTRUCTW when winimAnsi: - const - TVM_GETITEM* = TVM_GETITEMA -template TreeView_GetItem*(hwnd: HWND, pitem: LPTVITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_GETITEM, 0, cast[LPARAM](pitem)) -template TreeView_GetItemHeight*(hwnd: HWND): int32 = discardable int32 SendMessage(hwnd, TVM_GETITEMHEIGHT, 0, 0) -template TreeView_GetItemPartRect*(hwnd: HWND, hitem: HTREEITEM, pRect: ptr RECT, pPartID: TVITEMPART): BOOL = (var info = TVGETITEMPARTRECTINFO(hti: hItem, prc: pRect, partID: pPartID); discardable BOOL SendMessage(hwnd, TVM_GETITEMPARTRECT, 0, cast[LPARAM](addr info))) -template TreeView_GetItemRect*(hwnd: HWND, hitem: HTREEITEM, prc: LPRECT, fItemRect: BOOL): BOOL = (cast[ptr HTREEITEM](prc)[] = hitem; discardable BOOL SendMessage(hwnd, TVM_GETITEMRECT, cast[WPARAM](fItemRect), cast[LPARAM](prc))) -template TreeView_GetItemState*(hwndTV: HWND, hti: HTREEITEM, mask: UINT): UINT = discardable UINT SendMessage(hwndTV, TVM_GETITEMSTATE, cast[WPARAM](hti), cast[LPARAM](mask)) -template TreeView_GetLastVisible*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_LASTVISIBLE) -template TreeView_GetLineColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_GETLINECOLOR, 0, 0) -template TreeView_GetNextSelected*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem (hwnd, hitem, TVGN_NEXTSELECTED) -template TreeView_GetNextSibling*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem(hwnd, hitem, TVGN_NEXT) -template TreeView_GetNextVisible*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem(hwnd, hitem, TVGN_NEXTVISIBLE) -template TreeView_GetParent*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem(hwnd, hitem, TVGN_PARENT) -template TreeView_GetPrevSibling*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUS) -template TreeView_GetPrevVisible*(hwnd: HWND, hitem: HTREEITEM): HTREEITEM = TreeView_GetNextItem(hwnd, hitem, TVGN_PREVIOUSVISIBLE) -template TreeView_GetRoot*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_ROOT) -template TreeView_GetScrollTime*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, TVM_GETSCROLLTIME, 0, 0) -template TreeView_GetSelectedCount*(hwnd: HWND): DWORD = discardable DWORD SendMessage(hwnd, TVM_GETSELECTEDCOUNT, 0, 0) -template TreeView_GetSelection*(hwnd: HWND): HTREEITEM = TreeView_GetNextItem(hwnd, 0, TVGN_CARET) -template TreeView_GetTextColor*(hwnd: HWND): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_GETTEXTCOLOR, 0, 0) -template TreeView_GetToolTips*(hwnd: HWND): HWND = discardable HWND SendMessage(hwnd, TVM_GETTOOLTIPS, 0, 0) -template TreeView_GetUnicodeFormat*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, TVM_GETUNICODEFORMAT, 0, 0) -template TreeView_GetVisibleCount*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, TVM_GETVISIBLECOUNT, 0, 0) -template TreeView_HitTest*(hwnd: HWND, lpht: LPTVHITTESTINFO): HTREEITEM = discardable HTREEITEM SendMessage(hwnd, TVM_HITTEST, 0, cast[LPARAM](lpht)) + type LPTVINSERTSTRUCT* = LPTVINSERTSTRUCTA when winimUnicode: - type - LPTVINSERTSTRUCT* = LPTVINSERTSTRUCTW + const TVM_INSERTITEM* = TVM_INSERTITEMW when winimAnsi: - type - LPTVINSERTSTRUCT* = LPTVINSERTSTRUCTA + const TVM_INSERTITEM* = TVM_INSERTITEMA +template TreeView_InsertItem*(hwnd: HWND, lpis: LPTVINSERTSTRUCT): HTREEITEM = + discardable HTREEITEM SendMessage(hwnd, TVM_INSERTITEM, 0, cast[LPARAM](lpis)) + +template TreeView_MapAccIDToHTREEITEM*(hwnd: HWND, id: UINT): HTREEITEM = + discardable HTREEITEM SendMessage(hwnd, TVM_MAPACCIDTOHTREEITEM, cast[WPARAM](id), 0) + +template TreeView_MapHTREEITEMToAccID*(hwnd: HWND, htreeitem: HTREEITEM): UINT = + discardable UINT SendMessage( + hwnd, TVM_MAPHTREEITEMTOACCID, cast[WPARAM](htreeitem), 0 + ) + +template TreeView_Select*(hwnd: HWND, hitem: HTREEITEM, code: UINT): BOOL = + discardable BOOL SendMessage( + hwnd, TVM_SELECTITEM, cast[WPARAM](code), cast[LPARAM](hitem) + ) + +template TreeView_SelectDropTarget*(hwnd: HWND, hitem: HTREEITEM): BOOL = + TreeView_Select(hwnd, hitem, TVGN_DROPHILITE) + +template TreeView_SelectItem*(hwnd: HWND, hitem: HTREEITEM): BOOL = + TreeView_Select(hwnd, hitem, TVGN_CARET) + +template TreeView_SelectSetFirstVisible*(hwnd: HWND, hitem: HTREEITEM): BOOL = + TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE) + +template TreeView_SetAutoScrollInfo*( + hwnd: HWND, uPixPerSec: UINT, uUpdateTime: UINT +): LRESULT = + discardable LRESULT SendMessage( + hwnd, TVM_SETAUTOSCROLLINFO, cast[WPARAM](uPixPerSec), cast[LPARAM](uUpdateTime) + ) + +template TreeView_SetBkColor*(hwnd: HWND, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_SETBKCOLOR, 0, cast[LPARAM](clr)) + +template TreeView_SetBorder*( + hwnd: HWND, dwFlags: DWORD, xBorder: SHORT, yBorder: SHORT +): int32 = + discardable int32 SendMessage( + hwnd, TVM_SETBORDER, cast[WPARAM](dwFlags), MAKELPARAM(xBorder, yBorder) + ) + when winimUnicode: - const - TVM_INSERTITEM* = TVM_INSERTITEMW + type TVITEM* = TVITEMW when winimAnsi: - const - TVM_INSERTITEM* = TVM_INSERTITEMA -template TreeView_InsertItem*(hwnd: HWND, lpis: LPTVINSERTSTRUCT): HTREEITEM = discardable HTREEITEM SendMessage(hwnd, TVM_INSERTITEM, 0, cast[LPARAM](lpis)) -template TreeView_MapAccIDToHTREEITEM*(hwnd: HWND, id: UINT): HTREEITEM = discardable HTREEITEM SendMessage(hwnd, TVM_MAPACCIDTOHTREEITEM, cast[WPARAM](id), 0) -template TreeView_MapHTREEITEMToAccID*(hwnd: HWND, htreeitem: HTREEITEM): UINT = discardable UINT SendMessage(hwnd, TVM_MAPHTREEITEMTOACCID, cast[WPARAM](htreeitem), 0) -template TreeView_Select*(hwnd: HWND, hitem: HTREEITEM, code: UINT): BOOL = discardable BOOL SendMessage(hwnd, TVM_SELECTITEM, cast[WPARAM](code), cast[LPARAM](hitem)) -template TreeView_SelectDropTarget*(hwnd: HWND, hitem: HTREEITEM): BOOL = TreeView_Select(hwnd, hitem, TVGN_DROPHILITE) -template TreeView_SelectItem*(hwnd: HWND, hitem: HTREEITEM): BOOL = TreeView_Select(hwnd, hitem, TVGN_CARET) -template TreeView_SelectSetFirstVisible*(hwnd: HWND, hitem: HTREEITEM): BOOL = TreeView_Select(hwnd, hitem, TVGN_FIRSTVISIBLE) -template TreeView_SetAutoScrollInfo*(hwnd: HWND, uPixPerSec: UINT, uUpdateTime: UINT): LRESULT = discardable LRESULT SendMessage(hwnd, TVM_SETAUTOSCROLLINFO, cast[WPARAM](uPixPerSec), cast[LPARAM](uUpdateTime)) -template TreeView_SetBkColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_SETBKCOLOR, 0, cast[LPARAM](clr)) -template TreeView_SetBorder*(hwnd: HWND, dwFlags: DWORD, xBorder: SHORT, yBorder: SHORT): int32 = discardable int32 SendMessage(hwnd, TVM_SETBORDER, cast[WPARAM](dwFlags), MAKELPARAM(xBorder, yBorder)) + type TVITEM* = TVITEMA when winimUnicode: - type - TVITEM* = TVITEMW -when winimAnsi: - type - TVITEM* = TVITEMA -when winimUnicode: - const - TVM_SETITEM* = TVM_SETITEMW + const TVM_SETITEM* = TVM_SETITEMW when winimAnsi: - const - TVM_SETITEM* = TVM_SETITEMA -template TreeView_SetItemState*(hwnd: HWND, hti: HTREEITEM, data: UINT, m: UINT): UINT = (var tvi = TVITEM(mask: TVIF_STATE, hItem: hti, stateMask: m, state: data); discardable UINT SendMessage(hwnd, TVM_SETITEM, 0, cast[LPARAM](addr tvi))) -template TreeView_SetCheckState*(hwnd: HWND, hti: HTREEITEM, fCheck: BOOL): UINT = TreeView_SetItemState(hwnd, hti, INDEXTOSTATEIMAGEMASK(if bool fCheck:2 else:1), TVIS_STATEIMAGEMASK) -template TreeView_SetExtendedStyle*(hwnd: HWND, dw: DWORD, mask: UINT): HRESULT = discardable HRESULT SendMessage(hwnd, TVM_SETEXTENDEDSTYLE, cast[WPARAM](mask), cast[LPARAM](dw)) -template TreeView_SetHot*(hwnd: HWND, hitem: HTREEITEM): LRESULT = discardable LRESULT SendMessage(hwnd, TVM_SETHOT, 0, cast[LPARAM](hitem)) -template TreeView_SetImageList*(hwnd: HWND, himl: HIMAGELIST, iImage: INT): HIMAGELIST = discardable HIMAGELIST SendMessage(hwnd, TVM_SETIMAGELIST, cast[WPARAM](iImage), cast[LPARAM](himl)) -template TreeView_SetIndent*(hwnd: HWND, indent: INT): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETINDENT, cast[WPARAM](indent), 0) -template TreeView_SetInsertMark*(hwnd: HWND, hItem: HTREEITEM, fAfter: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETINSERTMARK, cast[WPARAM](fAfter), cast[LPARAM](hItem)) -template TreeView_SetInsertMarkColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_SETINSERTMARKCOLOR, 0, cast[LPARAM](clr)) -template TreeView_SetItem*(hwnd: HWND, pitem: LPTVITEM): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETITEM, 0, cast[LPARAM](pitem)) -template TreeView_SetItemHeight*(hwnd: HWND, iHeight: SHORT): int32 = discardable int32 SendMessage(hwnd, TVM_SETITEMHEIGHT, cast[WPARAM](iHeight), 0) -template TreeView_SetLineColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_SETLINECOLOR, 0, cast[LPARAM](clr)) -template TreeView_SetScrollTime*(hwnd: HWND, uTime: UINT): UINT = discardable UINT SendMessage(hwnd, TVM_SETSCROLLTIME, cast[WPARAM](uTime), 0) -template TreeView_SetTextColor*(hwnd: HWND, clr: COLORREF): COLORREF = discardable COLORREF SendMessage(hwnd, TVM_SETTEXTCOLOR, 0, cast[LPARAM](clr)) -template TreeView_SetToolTips*(hwnd: HWND, hwndTT: HWND): HWND = discardable HWND SendMessage(hwnd, TVM_SETTOOLTIPS, cast[WPARAM](hwndTT), 0) -template TreeView_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) -template TreeView_ShowInfoTip*(hwnd: HWND, hitem: HTREEITEM): DWORD = discardable DWORD SendMessage(hwnd, TVM_SHOWINFOTIP, 0, cast[LPARAM](hitem)) -template TreeView_SortChildren*(hwnd: HWND, hitem: HTREEITEM, recurse: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SORTCHILDREN, cast[WPARAM](recurse), cast[LPARAM](hitem)) -template TreeView_SortChildrenCB*(hwnd: HWND, psort: LPTVSORTCB, recurse: BOOL): BOOL = discardable BOOL SendMessage(hwnd, TVM_SORTCHILDRENCB, cast[WPARAM](recurse), cast[LPARAM](psort)) -proc `pszTemplate=`*(self: var PROPSHEETPAGEA, x: LPCSTR) {.inline.} = self.union1.pszTemplate = x -proc pszTemplate*(self: PROPSHEETPAGEA): LPCSTR {.inline.} = self.union1.pszTemplate -proc pszTemplate*(self: var PROPSHEETPAGEA): var LPCSTR {.inline.} = self.union1.pszTemplate -proc `pResource=`*(self: var PROPSHEETPAGEA, x: LPCDLGTEMPLATE) {.inline.} = self.union1.pResource = x -proc pResource*(self: PROPSHEETPAGEA): LPCDLGTEMPLATE {.inline.} = self.union1.pResource -proc pResource*(self: var PROPSHEETPAGEA): var LPCDLGTEMPLATE {.inline.} = self.union1.pResource -proc `hIcon=`*(self: var PROPSHEETPAGEA, x: HICON) {.inline.} = self.union2.hIcon = x -proc hIcon*(self: PROPSHEETPAGEA): HICON {.inline.} = self.union2.hIcon -proc hIcon*(self: var PROPSHEETPAGEA): var HICON {.inline.} = self.union2.hIcon -proc `pszIcon=`*(self: var PROPSHEETPAGEA, x: LPCSTR) {.inline.} = self.union2.pszIcon = x -proc pszIcon*(self: PROPSHEETPAGEA): LPCSTR {.inline.} = self.union2.pszIcon -proc pszIcon*(self: var PROPSHEETPAGEA): var LPCSTR {.inline.} = self.union2.pszIcon -proc `pszTemplate=`*(self: var PROPSHEETPAGEW, x: LPCWSTR) {.inline.} = self.union1.pszTemplate = x -proc pszTemplate*(self: PROPSHEETPAGEW): LPCWSTR {.inline.} = self.union1.pszTemplate -proc pszTemplate*(self: var PROPSHEETPAGEW): var LPCWSTR {.inline.} = self.union1.pszTemplate -proc `pResource=`*(self: var PROPSHEETPAGEW, x: LPCDLGTEMPLATE) {.inline.} = self.union1.pResource = x -proc pResource*(self: PROPSHEETPAGEW): LPCDLGTEMPLATE {.inline.} = self.union1.pResource -proc pResource*(self: var PROPSHEETPAGEW): var LPCDLGTEMPLATE {.inline.} = self.union1.pResource -proc `hIcon=`*(self: var PROPSHEETPAGEW, x: HICON) {.inline.} = self.union2.hIcon = x -proc hIcon*(self: PROPSHEETPAGEW): HICON {.inline.} = self.union2.hIcon -proc hIcon*(self: var PROPSHEETPAGEW): var HICON {.inline.} = self.union2.hIcon -proc `pszIcon=`*(self: var PROPSHEETPAGEW, x: LPCWSTR) {.inline.} = self.union2.pszIcon = x -proc pszIcon*(self: PROPSHEETPAGEW): LPCWSTR {.inline.} = self.union2.pszIcon -proc pszIcon*(self: var PROPSHEETPAGEW): var LPCWSTR {.inline.} = self.union2.pszIcon -proc `hIcon=`*(self: var PROPSHEETHEADERA, x: HICON) {.inline.} = self.union1.hIcon = x -proc hIcon*(self: PROPSHEETHEADERA): HICON {.inline.} = self.union1.hIcon -proc hIcon*(self: var PROPSHEETHEADERA): var HICON {.inline.} = self.union1.hIcon -proc `pszIcon=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = self.union1.pszIcon = x -proc pszIcon*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = self.union1.pszIcon -proc pszIcon*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = self.union1.pszIcon -proc `nStartPage=`*(self: var PROPSHEETHEADERA, x: UINT) {.inline.} = self.union2.nStartPage = x -proc nStartPage*(self: PROPSHEETHEADERA): UINT {.inline.} = self.union2.nStartPage -proc nStartPage*(self: var PROPSHEETHEADERA): var UINT {.inline.} = self.union2.nStartPage -proc `pStartPage=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = self.union2.pStartPage = x -proc pStartPage*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = self.union2.pStartPage -proc pStartPage*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = self.union2.pStartPage -proc `ppsp=`*(self: var PROPSHEETHEADERA, x: LPCPROPSHEETPAGEA) {.inline.} = self.union3.ppsp = x -proc ppsp*(self: PROPSHEETHEADERA): LPCPROPSHEETPAGEA {.inline.} = self.union3.ppsp -proc ppsp*(self: var PROPSHEETHEADERA): var LPCPROPSHEETPAGEA {.inline.} = self.union3.ppsp -proc `phpage=`*(self: var PROPSHEETHEADERA, x: ptr HPROPSHEETPAGE) {.inline.} = self.union3.phpage = x -proc phpage*(self: PROPSHEETHEADERA): ptr HPROPSHEETPAGE {.inline.} = self.union3.phpage -proc phpage*(self: var PROPSHEETHEADERA): var ptr HPROPSHEETPAGE {.inline.} = self.union3.phpage -proc `hbmWatermark=`*(self: var PROPSHEETHEADERA, x: HBITMAP) {.inline.} = self.union4.hbmWatermark = x -proc hbmWatermark*(self: PROPSHEETHEADERA): HBITMAP {.inline.} = self.union4.hbmWatermark -proc hbmWatermark*(self: var PROPSHEETHEADERA): var HBITMAP {.inline.} = self.union4.hbmWatermark -proc `pszbmWatermark=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = self.union4.pszbmWatermark = x -proc pszbmWatermark*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = self.union4.pszbmWatermark -proc pszbmWatermark*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = self.union4.pszbmWatermark -proc `hbmHeader=`*(self: var PROPSHEETHEADERA, x: HBITMAP) {.inline.} = self.union5.hbmHeader = x -proc hbmHeader*(self: PROPSHEETHEADERA): HBITMAP {.inline.} = self.union5.hbmHeader -proc hbmHeader*(self: var PROPSHEETHEADERA): var HBITMAP {.inline.} = self.union5.hbmHeader -proc `pszbmHeader=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = self.union5.pszbmHeader = x -proc pszbmHeader*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = self.union5.pszbmHeader -proc pszbmHeader*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = self.union5.pszbmHeader -proc `hIcon=`*(self: var PROPSHEETHEADERW, x: HICON) {.inline.} = self.union1.hIcon = x -proc hIcon*(self: PROPSHEETHEADERW): HICON {.inline.} = self.union1.hIcon -proc hIcon*(self: var PROPSHEETHEADERW): var HICON {.inline.} = self.union1.hIcon -proc `pszIcon=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = self.union1.pszIcon = x -proc pszIcon*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = self.union1.pszIcon -proc pszIcon*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = self.union1.pszIcon -proc `nStartPage=`*(self: var PROPSHEETHEADERW, x: UINT) {.inline.} = self.union2.nStartPage = x -proc nStartPage*(self: PROPSHEETHEADERW): UINT {.inline.} = self.union2.nStartPage -proc nStartPage*(self: var PROPSHEETHEADERW): var UINT {.inline.} = self.union2.nStartPage -proc `pStartPage=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = self.union2.pStartPage = x -proc pStartPage*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = self.union2.pStartPage -proc pStartPage*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = self.union2.pStartPage -proc `ppsp=`*(self: var PROPSHEETHEADERW, x: LPCPROPSHEETPAGEW) {.inline.} = self.union3.ppsp = x -proc ppsp*(self: PROPSHEETHEADERW): LPCPROPSHEETPAGEW {.inline.} = self.union3.ppsp -proc ppsp*(self: var PROPSHEETHEADERW): var LPCPROPSHEETPAGEW {.inline.} = self.union3.ppsp -proc `phpage=`*(self: var PROPSHEETHEADERW, x: ptr HPROPSHEETPAGE) {.inline.} = self.union3.phpage = x -proc phpage*(self: PROPSHEETHEADERW): ptr HPROPSHEETPAGE {.inline.} = self.union3.phpage -proc phpage*(self: var PROPSHEETHEADERW): var ptr HPROPSHEETPAGE {.inline.} = self.union3.phpage -proc `hbmWatermark=`*(self: var PROPSHEETHEADERW, x: HBITMAP) {.inline.} = self.union4.hbmWatermark = x -proc hbmWatermark*(self: PROPSHEETHEADERW): HBITMAP {.inline.} = self.union4.hbmWatermark -proc hbmWatermark*(self: var PROPSHEETHEADERW): var HBITMAP {.inline.} = self.union4.hbmWatermark -proc `pszbmWatermark=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = self.union4.pszbmWatermark = x -proc pszbmWatermark*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = self.union4.pszbmWatermark -proc pszbmWatermark*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = self.union4.pszbmWatermark -proc `hbmHeader=`*(self: var PROPSHEETHEADERW, x: HBITMAP) {.inline.} = self.union5.hbmHeader = x -proc hbmHeader*(self: PROPSHEETHEADERW): HBITMAP {.inline.} = self.union5.hbmHeader -proc hbmHeader*(self: var PROPSHEETHEADERW): var HBITMAP {.inline.} = self.union5.hbmHeader -proc `pszbmHeader=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = self.union5.pszbmHeader = x -proc pszbmHeader*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = self.union5.pszbmHeader -proc pszbmHeader*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = self.union5.pszbmHeader -proc `itemex=`*(self: var TVINSERTSTRUCTA, x: TVITEMEXA) {.inline.} = self.union1.itemex = x -proc itemex*(self: TVINSERTSTRUCTA): TVITEMEXA {.inline.} = self.union1.itemex -proc itemex*(self: var TVINSERTSTRUCTA): var TVITEMEXA {.inline.} = self.union1.itemex -proc `item=`*(self: var TVINSERTSTRUCTA, x: TV_ITEMA) {.inline.} = self.union1.item = x -proc item*(self: TVINSERTSTRUCTA): TV_ITEMA {.inline.} = self.union1.item -proc item*(self: var TVINSERTSTRUCTA): var TV_ITEMA {.inline.} = self.union1.item -proc `itemex=`*(self: var TVINSERTSTRUCTW, x: TVITEMEXW) {.inline.} = self.union1.itemex = x -proc itemex*(self: TVINSERTSTRUCTW): TVITEMEXW {.inline.} = self.union1.itemex -proc itemex*(self: var TVINSERTSTRUCTW): var TVITEMEXW {.inline.} = self.union1.itemex -proc `item=`*(self: var TVINSERTSTRUCTW, x: TV_ITEMW) {.inline.} = self.union1.item = x -proc item*(self: TVINSERTSTRUCTW): TV_ITEMW {.inline.} = self.union1.item -proc item*(self: var TVINSERTSTRUCTW): var TV_ITEMW {.inline.} = self.union1.item -proc `hMainIcon=`*(self: var TASKDIALOGCONFIG, x: HICON) {.inline.} = self.union1.hMainIcon = x -proc hMainIcon*(self: TASKDIALOGCONFIG): HICON {.inline.} = self.union1.hMainIcon -proc hMainIcon*(self: var TASKDIALOGCONFIG): var HICON {.inline.} = self.union1.hMainIcon -proc `pszMainIcon=`*(self: var TASKDIALOGCONFIG, x: PCWSTR) {.inline.} = self.union1.pszMainIcon = x -proc pszMainIcon*(self: TASKDIALOGCONFIG): PCWSTR {.inline.} = self.union1.pszMainIcon -proc pszMainIcon*(self: var TASKDIALOGCONFIG): var PCWSTR {.inline.} = self.union1.pszMainIcon -proc `hFooterIcon=`*(self: var TASKDIALOGCONFIG, x: HICON) {.inline.} = self.union2.hFooterIcon = x -proc hFooterIcon*(self: TASKDIALOGCONFIG): HICON {.inline.} = self.union2.hFooterIcon -proc hFooterIcon*(self: var TASKDIALOGCONFIG): var HICON {.inline.} = self.union2.hFooterIcon -proc `pszFooterIcon=`*(self: var TASKDIALOGCONFIG, x: PCWSTR) {.inline.} = self.union2.pszFooterIcon = x -proc pszFooterIcon*(self: TASKDIALOGCONFIG): PCWSTR {.inline.} = self.union2.pszFooterIcon -proc pszFooterIcon*(self: var TASKDIALOGCONFIG): var PCWSTR {.inline.} = self.union2.pszFooterIcon -proc Add*(self: ptr IImageList, hbmImage: HBITMAP, hbmMask: HBITMAP, pi: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Add(self, hbmImage, hbmMask, pi) -proc ReplaceIcon*(self: ptr IImageList, i: int32, hicon: HICON, pi: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReplaceIcon(self, i, hicon, pi) -proc SetOverlayImage*(self: ptr IImageList, iImage: int32, iOverlay: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOverlayImage(self, iImage, iOverlay) -proc Replace*(self: ptr IImageList, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Replace(self, i, hbmImage, hbmMask) -proc AddMasked*(self: ptr IImageList, hbmImage: HBITMAP, crMask: COLORREF, pi: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddMasked(self, hbmImage, crMask, pi) -proc Draw*(self: ptr IImageList, pimldp: ptr IMAGELISTDRAWPARAMS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Draw(self, pimldp) -proc Remove*(self: ptr IImageList, i: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Remove(self, i) -proc GetIcon*(self: ptr IImageList, i: int32, flags: UINT, picon: ptr HICON): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIcon(self, i, flags, picon) -proc GetImageInfo*(self: ptr IImageList, i: int32, pImageInfo: ptr IMAGEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImageInfo(self, i, pImageInfo) -proc Copy*(self: ptr IImageList, iDst: int32, punkSrc: ptr IUnknown, iSrc: int32, uFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Copy(self, iDst, punkSrc, iSrc, uFlags) -proc Merge*(self: ptr IImageList, i1: int32, punk2: ptr IUnknown, i2: int32, dx: int32, dy: int32, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Merge(self, i1, punk2, i2, dx, dy, riid, ppv) -proc Clone*(self: ptr IImageList, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, riid, ppv) -proc GetImageRect*(self: ptr IImageList, i: int32, prc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImageRect(self, i, prc) -proc GetIconSize*(self: ptr IImageList, cx: ptr int32, cy: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconSize(self, cx, cy) -proc SetIconSize*(self: ptr IImageList, cx: int32, cy: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconSize(self, cx, cy) -proc GetImageCount*(self: ptr IImageList, pi: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImageCount(self, pi) -proc SetImageCount*(self: ptr IImageList, uNewCount: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetImageCount(self, uNewCount) -proc SetBkColor*(self: ptr IImageList, clrBk: COLORREF, pclr: ptr COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBkColor(self, clrBk, pclr) -proc GetBkColor*(self: ptr IImageList, pclr: ptr COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBkColor(self, pclr) -proc BeginDrag*(self: ptr IImageList, iTrack: int32, dxHotspot: int32, dyHotspot: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginDrag(self, iTrack, dxHotspot, dyHotspot) -proc EndDrag*(self: ptr IImageList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndDrag(self) -proc DragEnter*(self: ptr IImageList, hwndLock: HWND, x: int32, y: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragEnter(self, hwndLock, x, y) -proc DragLeave*(self: ptr IImageList, hwndLock: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragLeave(self, hwndLock) -proc DragMove*(self: ptr IImageList, x: int32, y: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragMove(self, x, y) -proc SetDragCursorImage*(self: ptr IImageList, punk: ptr IUnknown, iDrag: int32, dxHotspot: int32, dyHotspot: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDragCursorImage(self, punk, iDrag, dxHotspot, dyHotspot) -proc DragShowNolock*(self: ptr IImageList, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragShowNolock(self, fShow) -proc GetDragImage*(self: ptr IImageList, ppt: ptr POINT, pptHotspot: ptr POINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDragImage(self, ppt, pptHotspot, riid, ppv) -proc GetItemFlags*(self: ptr IImageList, i: int32, dwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemFlags(self, i, dwFlags) -proc GetOverlayImage*(self: ptr IImageList, iOverlay: int32, piIndex: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOverlayImage(self, iOverlay, piIndex) -proc Resize*(self: ptr IImageList2, cxNewIconSize: int32, cyNewIconSize: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resize(self, cxNewIconSize, cyNewIconSize) -proc GetOriginalSize*(self: ptr IImageList2, iImage: int32, dwFlags: DWORD, pcx: ptr int32, pcy: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOriginalSize(self, iImage, dwFlags, pcx, pcy) -proc SetOriginalSize*(self: ptr IImageList2, iImage: int32, cx: int32, cy: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOriginalSize(self, iImage, cx, cy) -proc SetCallback*(self: ptr IImageList2, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCallback(self, punk) -proc GetCallback*(self: ptr IImageList2, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCallback(self, riid, ppv) -proc ForceImagePresent*(self: ptr IImageList2, iImage: int32, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ForceImagePresent(self, iImage, dwFlags) -proc DiscardImages*(self: ptr IImageList2, iFirstImage: int32, iLastImage: int32, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DiscardImages(self, iFirstImage, iLastImage, dwFlags) -proc PreloadImages*(self: ptr IImageList2, pimldp: ptr IMAGELISTDRAWPARAMS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreloadImages(self, pimldp) -proc GetStatistics*(self: ptr IImageList2, pils: ptr IMAGELISTSTATS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStatistics(self, pils) -proc Initialize*(self: ptr IImageList2, cx: int32, cy: int32, flags: UINT, cInitial: int32, cGrow: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, cx, cy, flags, cInitial, cGrow) -proc Replace2*(self: ptr IImageList2, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP, punk: ptr IUnknown, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Replace2(self, i, hbmImage, hbmMask, punk, dwFlags) -proc ReplaceFromImageList*(self: ptr IImageList2, i: int32, pil: ptr IImageList, iSrc: int32, punk: ptr IUnknown, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReplaceFromImageList(self, i, pil, iSrc, punk, dwFlags) -converter winimConverterIImageListToIUnknown*(x: ptr IImageList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIImageList2ToIImageList*(x: ptr IImageList2): ptr IImageList = cast[ptr IImageList](x) -converter winimConverterIImageList2ToIUnknown*(x: ptr IImageList2): ptr IUnknown = cast[ptr IUnknown](x) + const TVM_SETITEM* = TVM_SETITEMA +template TreeView_SetItemState*(hwnd: HWND, hti: HTREEITEM, data: UINT, m: UINT): UINT = + ( + var tvi = TVITEM(mask: TVIF_STATE, hItem: hti, stateMask: m, state: data) + discardable UINT SendMessage(hwnd, TVM_SETITEM, 0, cast[LPARAM](addr tvi)) + ) + +template TreeView_SetCheckState*(hwnd: HWND, hti: HTREEITEM, fCheck: BOOL): UINT = + TreeView_SetItemState( + hwnd, hti, INDEXTOSTATEIMAGEMASK(if bool fCheck: 2 else: 1), TVIS_STATEIMAGEMASK + ) + +template TreeView_SetExtendedStyle*(hwnd: HWND, dw: DWORD, mask: UINT): HRESULT = + discardable HRESULT SendMessage( + hwnd, TVM_SETEXTENDEDSTYLE, cast[WPARAM](mask), cast[LPARAM](dw) + ) + +template TreeView_SetHot*(hwnd: HWND, hitem: HTREEITEM): LRESULT = + discardable LRESULT SendMessage(hwnd, TVM_SETHOT, 0, cast[LPARAM](hitem)) + +template TreeView_SetImageList*(hwnd: HWND, himl: HIMAGELIST, iImage: INT): HIMAGELIST = + discardable HIMAGELIST SendMessage( + hwnd, TVM_SETIMAGELIST, cast[WPARAM](iImage), cast[LPARAM](himl) + ) + +template TreeView_SetIndent*(hwnd: HWND, indent: INT): BOOL = + discardable BOOL SendMessage(hwnd, TVM_SETINDENT, cast[WPARAM](indent), 0) + +template TreeView_SetInsertMark*(hwnd: HWND, hItem: HTREEITEM, fAfter: BOOL): BOOL = + discardable BOOL SendMessage( + hwnd, TVM_SETINSERTMARK, cast[WPARAM](fAfter), cast[LPARAM](hItem) + ) + +template TreeView_SetInsertMarkColor*(hwnd: HWND, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_SETINSERTMARKCOLOR, 0, cast[LPARAM](clr)) + +template TreeView_SetItem*(hwnd: HWND, pitem: LPTVITEM): BOOL = + discardable BOOL SendMessage(hwnd, TVM_SETITEM, 0, cast[LPARAM](pitem)) + +template TreeView_SetItemHeight*(hwnd: HWND, iHeight: SHORT): int32 = + discardable int32 SendMessage(hwnd, TVM_SETITEMHEIGHT, cast[WPARAM](iHeight), 0) + +template TreeView_SetLineColor*(hwnd: HWND, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_SETLINECOLOR, 0, cast[LPARAM](clr)) + +template TreeView_SetScrollTime*(hwnd: HWND, uTime: UINT): UINT = + discardable UINT SendMessage(hwnd, TVM_SETSCROLLTIME, cast[WPARAM](uTime), 0) + +template TreeView_SetTextColor*(hwnd: HWND, clr: COLORREF): COLORREF = + discardable COLORREF SendMessage(hwnd, TVM_SETTEXTCOLOR, 0, cast[LPARAM](clr)) + +template TreeView_SetToolTips*(hwnd: HWND, hwndTT: HWND): HWND = + discardable HWND SendMessage(hwnd, TVM_SETTOOLTIPS, cast[WPARAM](hwndTT), 0) + +template TreeView_SetUnicodeFormat*(hwnd: HWND, fUnicode: BOOL): BOOL = + discardable BOOL SendMessage(hwnd, TVM_SETUNICODEFORMAT, cast[WPARAM](fUnicode), 0) + +template TreeView_ShowInfoTip*(hwnd: HWND, hitem: HTREEITEM): DWORD = + discardable DWORD SendMessage(hwnd, TVM_SHOWINFOTIP, 0, cast[LPARAM](hitem)) + +template TreeView_SortChildren*(hwnd: HWND, hitem: HTREEITEM, recurse: BOOL): BOOL = + discardable BOOL SendMessage( + hwnd, TVM_SORTCHILDREN, cast[WPARAM](recurse), cast[LPARAM](hitem) + ) + +template TreeView_SortChildrenCB*(hwnd: HWND, psort: LPTVSORTCB, recurse: BOOL): BOOL = + discardable BOOL SendMessage( + hwnd, TVM_SORTCHILDRENCB, cast[WPARAM](recurse), cast[LPARAM](psort) + ) + +proc `pszTemplate=`*(self: var PROPSHEETPAGEA, x: LPCSTR) {.inline.} = + self.union1.pszTemplate = x + +proc pszTemplate*(self: PROPSHEETPAGEA): LPCSTR {.inline.} = + self.union1.pszTemplate + +proc pszTemplate*(self: var PROPSHEETPAGEA): var LPCSTR {.inline.} = + self.union1.pszTemplate + +proc `pResource=`*(self: var PROPSHEETPAGEA, x: LPCDLGTEMPLATE) {.inline.} = + self.union1.pResource = x + +proc pResource*(self: PROPSHEETPAGEA): LPCDLGTEMPLATE {.inline.} = + self.union1.pResource + +proc pResource*(self: var PROPSHEETPAGEA): var LPCDLGTEMPLATE {.inline.} = + self.union1.pResource + +proc `hIcon=`*(self: var PROPSHEETPAGEA, x: HICON) {.inline.} = + self.union2.hIcon = x + +proc hIcon*(self: PROPSHEETPAGEA): HICON {.inline.} = + self.union2.hIcon + +proc hIcon*(self: var PROPSHEETPAGEA): var HICON {.inline.} = + self.union2.hIcon + +proc `pszIcon=`*(self: var PROPSHEETPAGEA, x: LPCSTR) {.inline.} = + self.union2.pszIcon = x + +proc pszIcon*(self: PROPSHEETPAGEA): LPCSTR {.inline.} = + self.union2.pszIcon + +proc pszIcon*(self: var PROPSHEETPAGEA): var LPCSTR {.inline.} = + self.union2.pszIcon + +proc `pszTemplate=`*(self: var PROPSHEETPAGEW, x: LPCWSTR) {.inline.} = + self.union1.pszTemplate = x + +proc pszTemplate*(self: PROPSHEETPAGEW): LPCWSTR {.inline.} = + self.union1.pszTemplate + +proc pszTemplate*(self: var PROPSHEETPAGEW): var LPCWSTR {.inline.} = + self.union1.pszTemplate + +proc `pResource=`*(self: var PROPSHEETPAGEW, x: LPCDLGTEMPLATE) {.inline.} = + self.union1.pResource = x + +proc pResource*(self: PROPSHEETPAGEW): LPCDLGTEMPLATE {.inline.} = + self.union1.pResource + +proc pResource*(self: var PROPSHEETPAGEW): var LPCDLGTEMPLATE {.inline.} = + self.union1.pResource + +proc `hIcon=`*(self: var PROPSHEETPAGEW, x: HICON) {.inline.} = + self.union2.hIcon = x + +proc hIcon*(self: PROPSHEETPAGEW): HICON {.inline.} = + self.union2.hIcon + +proc hIcon*(self: var PROPSHEETPAGEW): var HICON {.inline.} = + self.union2.hIcon + +proc `pszIcon=`*(self: var PROPSHEETPAGEW, x: LPCWSTR) {.inline.} = + self.union2.pszIcon = x + +proc pszIcon*(self: PROPSHEETPAGEW): LPCWSTR {.inline.} = + self.union2.pszIcon + +proc pszIcon*(self: var PROPSHEETPAGEW): var LPCWSTR {.inline.} = + self.union2.pszIcon + +proc `hIcon=`*(self: var PROPSHEETHEADERA, x: HICON) {.inline.} = + self.union1.hIcon = x + +proc hIcon*(self: PROPSHEETHEADERA): HICON {.inline.} = + self.union1.hIcon + +proc hIcon*(self: var PROPSHEETHEADERA): var HICON {.inline.} = + self.union1.hIcon + +proc `pszIcon=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = + self.union1.pszIcon = x + +proc pszIcon*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = + self.union1.pszIcon + +proc pszIcon*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = + self.union1.pszIcon + +proc `nStartPage=`*(self: var PROPSHEETHEADERA, x: UINT) {.inline.} = + self.union2.nStartPage = x + +proc nStartPage*(self: PROPSHEETHEADERA): UINT {.inline.} = + self.union2.nStartPage + +proc nStartPage*(self: var PROPSHEETHEADERA): var UINT {.inline.} = + self.union2.nStartPage + +proc `pStartPage=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = + self.union2.pStartPage = x + +proc pStartPage*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = + self.union2.pStartPage + +proc pStartPage*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = + self.union2.pStartPage + +proc `ppsp=`*(self: var PROPSHEETHEADERA, x: LPCPROPSHEETPAGEA) {.inline.} = + self.union3.ppsp = x + +proc ppsp*(self: PROPSHEETHEADERA): LPCPROPSHEETPAGEA {.inline.} = + self.union3.ppsp + +proc ppsp*(self: var PROPSHEETHEADERA): var LPCPROPSHEETPAGEA {.inline.} = + self.union3.ppsp + +proc `phpage=`*(self: var PROPSHEETHEADERA, x: ptr HPROPSHEETPAGE) {.inline.} = + self.union3.phpage = x + +proc phpage*(self: PROPSHEETHEADERA): ptr HPROPSHEETPAGE {.inline.} = + self.union3.phpage + +proc phpage*(self: var PROPSHEETHEADERA): var ptr HPROPSHEETPAGE {.inline.} = + self.union3.phpage + +proc `hbmWatermark=`*(self: var PROPSHEETHEADERA, x: HBITMAP) {.inline.} = + self.union4.hbmWatermark = x + +proc hbmWatermark*(self: PROPSHEETHEADERA): HBITMAP {.inline.} = + self.union4.hbmWatermark + +proc hbmWatermark*(self: var PROPSHEETHEADERA): var HBITMAP {.inline.} = + self.union4.hbmWatermark + +proc `pszbmWatermark=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = + self.union4.pszbmWatermark = x + +proc pszbmWatermark*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = + self.union4.pszbmWatermark + +proc pszbmWatermark*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = + self.union4.pszbmWatermark + +proc `hbmHeader=`*(self: var PROPSHEETHEADERA, x: HBITMAP) {.inline.} = + self.union5.hbmHeader = x + +proc hbmHeader*(self: PROPSHEETHEADERA): HBITMAP {.inline.} = + self.union5.hbmHeader + +proc hbmHeader*(self: var PROPSHEETHEADERA): var HBITMAP {.inline.} = + self.union5.hbmHeader + +proc `pszbmHeader=`*(self: var PROPSHEETHEADERA, x: LPCSTR) {.inline.} = + self.union5.pszbmHeader = x + +proc pszbmHeader*(self: PROPSHEETHEADERA): LPCSTR {.inline.} = + self.union5.pszbmHeader + +proc pszbmHeader*(self: var PROPSHEETHEADERA): var LPCSTR {.inline.} = + self.union5.pszbmHeader + +proc `hIcon=`*(self: var PROPSHEETHEADERW, x: HICON) {.inline.} = + self.union1.hIcon = x + +proc hIcon*(self: PROPSHEETHEADERW): HICON {.inline.} = + self.union1.hIcon + +proc hIcon*(self: var PROPSHEETHEADERW): var HICON {.inline.} = + self.union1.hIcon + +proc `pszIcon=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = + self.union1.pszIcon = x + +proc pszIcon*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = + self.union1.pszIcon + +proc pszIcon*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = + self.union1.pszIcon + +proc `nStartPage=`*(self: var PROPSHEETHEADERW, x: UINT) {.inline.} = + self.union2.nStartPage = x + +proc nStartPage*(self: PROPSHEETHEADERW): UINT {.inline.} = + self.union2.nStartPage + +proc nStartPage*(self: var PROPSHEETHEADERW): var UINT {.inline.} = + self.union2.nStartPage + +proc `pStartPage=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = + self.union2.pStartPage = x + +proc pStartPage*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = + self.union2.pStartPage + +proc pStartPage*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = + self.union2.pStartPage + +proc `ppsp=`*(self: var PROPSHEETHEADERW, x: LPCPROPSHEETPAGEW) {.inline.} = + self.union3.ppsp = x + +proc ppsp*(self: PROPSHEETHEADERW): LPCPROPSHEETPAGEW {.inline.} = + self.union3.ppsp + +proc ppsp*(self: var PROPSHEETHEADERW): var LPCPROPSHEETPAGEW {.inline.} = + self.union3.ppsp + +proc `phpage=`*(self: var PROPSHEETHEADERW, x: ptr HPROPSHEETPAGE) {.inline.} = + self.union3.phpage = x + +proc phpage*(self: PROPSHEETHEADERW): ptr HPROPSHEETPAGE {.inline.} = + self.union3.phpage + +proc phpage*(self: var PROPSHEETHEADERW): var ptr HPROPSHEETPAGE {.inline.} = + self.union3.phpage + +proc `hbmWatermark=`*(self: var PROPSHEETHEADERW, x: HBITMAP) {.inline.} = + self.union4.hbmWatermark = x + +proc hbmWatermark*(self: PROPSHEETHEADERW): HBITMAP {.inline.} = + self.union4.hbmWatermark + +proc hbmWatermark*(self: var PROPSHEETHEADERW): var HBITMAP {.inline.} = + self.union4.hbmWatermark + +proc `pszbmWatermark=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = + self.union4.pszbmWatermark = x + +proc pszbmWatermark*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = + self.union4.pszbmWatermark + +proc pszbmWatermark*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = + self.union4.pszbmWatermark + +proc `hbmHeader=`*(self: var PROPSHEETHEADERW, x: HBITMAP) {.inline.} = + self.union5.hbmHeader = x + +proc hbmHeader*(self: PROPSHEETHEADERW): HBITMAP {.inline.} = + self.union5.hbmHeader + +proc hbmHeader*(self: var PROPSHEETHEADERW): var HBITMAP {.inline.} = + self.union5.hbmHeader + +proc `pszbmHeader=`*(self: var PROPSHEETHEADERW, x: LPCWSTR) {.inline.} = + self.union5.pszbmHeader = x + +proc pszbmHeader*(self: PROPSHEETHEADERW): LPCWSTR {.inline.} = + self.union5.pszbmHeader + +proc pszbmHeader*(self: var PROPSHEETHEADERW): var LPCWSTR {.inline.} = + self.union5.pszbmHeader + +proc `itemex=`*(self: var TVINSERTSTRUCTA, x: TVITEMEXA) {.inline.} = + self.union1.itemex = x + +proc itemex*(self: TVINSERTSTRUCTA): TVITEMEXA {.inline.} = + self.union1.itemex + +proc itemex*(self: var TVINSERTSTRUCTA): var TVITEMEXA {.inline.} = + self.union1.itemex + +proc `item=`*(self: var TVINSERTSTRUCTA, x: TV_ITEMA) {.inline.} = + self.union1.item = x + +proc item*(self: TVINSERTSTRUCTA): TV_ITEMA {.inline.} = + self.union1.item + +proc item*(self: var TVINSERTSTRUCTA): var TV_ITEMA {.inline.} = + self.union1.item + +proc `itemex=`*(self: var TVINSERTSTRUCTW, x: TVITEMEXW) {.inline.} = + self.union1.itemex = x + +proc itemex*(self: TVINSERTSTRUCTW): TVITEMEXW {.inline.} = + self.union1.itemex + +proc itemex*(self: var TVINSERTSTRUCTW): var TVITEMEXW {.inline.} = + self.union1.itemex + +proc `item=`*(self: var TVINSERTSTRUCTW, x: TV_ITEMW) {.inline.} = + self.union1.item = x + +proc item*(self: TVINSERTSTRUCTW): TV_ITEMW {.inline.} = + self.union1.item + +proc item*(self: var TVINSERTSTRUCTW): var TV_ITEMW {.inline.} = + self.union1.item + +proc `hMainIcon=`*(self: var TASKDIALOGCONFIG, x: HICON) {.inline.} = + self.union1.hMainIcon = x + +proc hMainIcon*(self: TASKDIALOGCONFIG): HICON {.inline.} = + self.union1.hMainIcon + +proc hMainIcon*(self: var TASKDIALOGCONFIG): var HICON {.inline.} = + self.union1.hMainIcon + +proc `pszMainIcon=`*(self: var TASKDIALOGCONFIG, x: PCWSTR) {.inline.} = + self.union1.pszMainIcon = x + +proc pszMainIcon*(self: TASKDIALOGCONFIG): PCWSTR {.inline.} = + self.union1.pszMainIcon + +proc pszMainIcon*(self: var TASKDIALOGCONFIG): var PCWSTR {.inline.} = + self.union1.pszMainIcon + +proc `hFooterIcon=`*(self: var TASKDIALOGCONFIG, x: HICON) {.inline.} = + self.union2.hFooterIcon = x + +proc hFooterIcon*(self: TASKDIALOGCONFIG): HICON {.inline.} = + self.union2.hFooterIcon + +proc hFooterIcon*(self: var TASKDIALOGCONFIG): var HICON {.inline.} = + self.union2.hFooterIcon + +proc `pszFooterIcon=`*(self: var TASKDIALOGCONFIG, x: PCWSTR) {.inline.} = + self.union2.pszFooterIcon = x + +proc pszFooterIcon*(self: TASKDIALOGCONFIG): PCWSTR {.inline.} = + self.union2.pszFooterIcon + +proc pszFooterIcon*(self: var TASKDIALOGCONFIG): var PCWSTR {.inline.} = + self.union2.pszFooterIcon + +proc Add*( + self: ptr IImageList, hbmImage: HBITMAP, hbmMask: HBITMAP, pi: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Add(self, hbmImage, hbmMask, pi) + +proc ReplaceIcon*( + self: ptr IImageList, i: int32, hicon: HICON, pi: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReplaceIcon(self, i, hicon, pi) + +proc SetOverlayImage*( + self: ptr IImageList, iImage: int32, iOverlay: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOverlayImage(self, iImage, iOverlay) + +proc Replace*( + self: ptr IImageList, i: int32, hbmImage: HBITMAP, hbmMask: HBITMAP +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Replace(self, i, hbmImage, hbmMask) + +proc AddMasked*( + self: ptr IImageList, hbmImage: HBITMAP, crMask: COLORREF, pi: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddMasked(self, hbmImage, crMask, pi) + +proc Draw*( + self: ptr IImageList, pimldp: ptr IMAGELISTDRAWPARAMS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Draw(self, pimldp) + +proc Remove*(self: ptr IImageList, i: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Remove(self, i) + +proc GetIcon*( + self: ptr IImageList, i: int32, flags: UINT, picon: ptr HICON +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIcon(self, i, flags, picon) + +proc GetImageInfo*( + self: ptr IImageList, i: int32, pImageInfo: ptr IMAGEINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImageInfo(self, i, pImageInfo) + +proc Copy*( + self: ptr IImageList, iDst: int32, punkSrc: ptr IUnknown, iSrc: int32, uFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Copy(self, iDst, punkSrc, iSrc, uFlags) + +proc Merge*( + self: ptr IImageList, + i1: int32, + punk2: ptr IUnknown, + i2: int32, + dx: int32, + dy: int32, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Merge(self, i1, punk2, i2, dx, dy, riid, ppv) + +proc Clone*( + self: ptr IImageList, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, riid, ppv) + +proc GetImageRect*( + self: ptr IImageList, i: int32, prc: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImageRect(self, i, prc) + +proc GetIconSize*( + self: ptr IImageList, cx: ptr int32, cy: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconSize(self, cx, cy) + +proc SetIconSize*( + self: ptr IImageList, cx: int32, cy: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconSize(self, cx, cy) + +proc GetImageCount*(self: ptr IImageList, pi: ptr int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImageCount(self, pi) + +proc SetImageCount*(self: ptr IImageList, uNewCount: UINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetImageCount(self, uNewCount) + +proc SetBkColor*( + self: ptr IImageList, clrBk: COLORREF, pclr: ptr COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBkColor(self, clrBk, pclr) + +proc GetBkColor*(self: ptr IImageList, pclr: ptr COLORREF): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBkColor(self, pclr) + +proc BeginDrag*( + self: ptr IImageList, iTrack: int32, dxHotspot: int32, dyHotspot: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginDrag(self, iTrack, dxHotspot, dyHotspot) + +proc EndDrag*(self: ptr IImageList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndDrag(self) + +proc DragEnter*( + self: ptr IImageList, hwndLock: HWND, x: int32, y: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragEnter(self, hwndLock, x, y) + +proc DragLeave*(self: ptr IImageList, hwndLock: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragLeave(self, hwndLock) + +proc DragMove*(self: ptr IImageList, x: int32, y: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragMove(self, x, y) + +proc SetDragCursorImage*( + self: ptr IImageList, + punk: ptr IUnknown, + iDrag: int32, + dxHotspot: int32, + dyHotspot: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDragCursorImage(self, punk, iDrag, dxHotspot, dyHotspot) + +proc DragShowNolock*(self: ptr IImageList, fShow: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragShowNolock(self, fShow) + +proc GetDragImage*( + self: ptr IImageList, + ppt: ptr POINT, + pptHotspot: ptr POINT, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDragImage(self, ppt, pptHotspot, riid, ppv) + +proc GetItemFlags*( + self: ptr IImageList, i: int32, dwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemFlags(self, i, dwFlags) + +proc GetOverlayImage*( + self: ptr IImageList, iOverlay: int32, piIndex: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOverlayImage(self, iOverlay, piIndex) + +proc Resize*( + self: ptr IImageList2, cxNewIconSize: int32, cyNewIconSize: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resize(self, cxNewIconSize, cyNewIconSize) + +proc GetOriginalSize*( + self: ptr IImageList2, iImage: int32, dwFlags: DWORD, pcx: ptr int32, pcy: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOriginalSize(self, iImage, dwFlags, pcx, pcy) + +proc SetOriginalSize*( + self: ptr IImageList2, iImage: int32, cx: int32, cy: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOriginalSize(self, iImage, cx, cy) + +proc SetCallback*( + self: ptr IImageList2, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCallback(self, punk) + +proc GetCallback*( + self: ptr IImageList2, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCallback(self, riid, ppv) + +proc ForceImagePresent*( + self: ptr IImageList2, iImage: int32, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ForceImagePresent(self, iImage, dwFlags) + +proc DiscardImages*( + self: ptr IImageList2, iFirstImage: int32, iLastImage: int32, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DiscardImages(self, iFirstImage, iLastImage, dwFlags) + +proc PreloadImages*( + self: ptr IImageList2, pimldp: ptr IMAGELISTDRAWPARAMS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreloadImages(self, pimldp) + +proc GetStatistics*( + self: ptr IImageList2, pils: ptr IMAGELISTSTATS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStatistics(self, pils) + +proc Initialize*( + self: ptr IImageList2, + cx: int32, + cy: int32, + flags: UINT, + cInitial: int32, + cGrow: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, cx, cy, flags, cInitial, cGrow) + +proc Replace2*( + self: ptr IImageList2, + i: int32, + hbmImage: HBITMAP, + hbmMask: HBITMAP, + punk: ptr IUnknown, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Replace2(self, i, hbmImage, hbmMask, punk, dwFlags) + +proc ReplaceFromImageList*( + self: ptr IImageList2, + i: int32, + pil: ptr IImageList, + iSrc: int32, + punk: ptr IUnknown, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReplaceFromImageList(self, i, pil, iSrc, punk, dwFlags) + +converter winimConverterIImageListToIUnknown*(x: ptr IImageList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIImageList2ToIImageList*(x: ptr IImageList2): ptr IImageList = + cast[ptr IImageList](x) + +converter winimConverterIImageList2ToIUnknown*(x: ptr IImageList2): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type LPNMLVDISPINFO* = LPNMLVDISPINFOW @@ -4831,6 +7014,7 @@ LPNMDATETIMEFORMAT* = LPNMDATETIMEFORMATW NMDATETIMEFORMATQUERY* = NMDATETIMEFORMATQUERYW LPNMDATETIMEFORMATQUERY* = LPNMDATETIMEFORMATQUERYW + const WC_HEADER* = WC_HEADERW HDN_ITEMCHANGING* = HDN_ITEMCHANGINGW @@ -4928,11 +7112,34 @@ WC_LISTBOX* = WC_LISTBOXW WC_COMBOBOX* = WC_COMBOBOXW WC_SCROLLBAR* = WC_SCROLLBARW - proc CreatePropertySheetPage*(constPropSheetPagePointer: LPCPROPSHEETPAGEW): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "comctl32", importc: "CreatePropertySheetPageW".} - proc PropertySheet*(P1: LPCPROPSHEETHEADERW): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc: "PropertySheetW".} - proc ImageList_LoadImage*(hi: HINSTANCE, lpbmp: LPCWSTR, cx: int32, cGrow: int32, crMask: COLORREF, uType: UINT, uFlags: UINT): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc: "ImageList_LoadImageW".} - proc CreateStatusWindow*(style: LONG, lpszText: LPCWSTR, hwndParent: HWND, wID: UINT): HWND {.winapi, stdcall, dynlib: "comctl32", importc: "CreateStatusWindowW".} - proc DrawStatusText*(hDC: HDC, lprc: LPCRECT, pszText: LPCWSTR, uFlags: UINT): void {.winapi, stdcall, dynlib: "comctl32", importc: "DrawStatusTextW".} + proc CreatePropertySheetPage*( + constPropSheetPagePointer: LPCPROPSHEETPAGEW + ): HPROPSHEETPAGE {. + winapi, stdcall, dynlib: "comctl32", importc: "CreatePropertySheetPageW" + .} + + proc PropertySheet*( + P1: LPCPROPSHEETHEADERW + ): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc: "PropertySheetW".} + + proc ImageList_LoadImage*( + hi: HINSTANCE, + lpbmp: LPCWSTR, + cx: int32, + cGrow: int32, + crMask: COLORREF, + uType: UINT, + uFlags: UINT, + ): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc: "ImageList_LoadImageW".} + + proc CreateStatusWindow*( + style: LONG, lpszText: LPCWSTR, hwndParent: HWND, wID: UINT + ): HWND {.winapi, stdcall, dynlib: "comctl32", importc: "CreateStatusWindowW".} + + proc DrawStatusText*( + hDC: HDC, lprc: LPCRECT, pszText: LPCWSTR, uFlags: UINT + ): void {.winapi, stdcall, dynlib: "comctl32", importc: "DrawStatusTextW".} + when winimAnsi: type LPNMLVDISPINFO* = LPNMLVDISPINFOA @@ -5002,6 +7209,7 @@ LPNMDATETIMEFORMAT* = LPNMDATETIMEFORMATA NMDATETIMEFORMATQUERY* = NMDATETIMEFORMATQUERYA LPNMDATETIMEFORMATQUERY* = LPNMDATETIMEFORMATQUERYA + const WC_HEADER* = WC_HEADERA HDN_ITEMCHANGING* = HDN_ITEMCHANGINGA @@ -5099,18 +7307,48 @@ WC_LISTBOX* = WC_LISTBOXA WC_COMBOBOX* = WC_COMBOBOXA WC_SCROLLBAR* = WC_SCROLLBARA - proc CreatePropertySheetPage*(constPropSheetPagePointer: LPCPROPSHEETPAGEA): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "comctl32", importc: "CreatePropertySheetPageA".} - proc PropertySheet*(P1: LPCPROPSHEETHEADERA): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc: "PropertySheetA".} - proc ImageList_LoadImage*(hi: HINSTANCE, lpbmp: LPCSTR, cx: int32, cGrow: int32, crMask: COLORREF, uType: UINT, uFlags: UINT): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc: "ImageList_LoadImageA".} - proc CreateStatusWindow*(style: LONG, lpszText: LPCSTR, hwndParent: HWND, wID: UINT): HWND {.winapi, stdcall, dynlib: "comctl32", importc: "CreateStatusWindowA".} - proc DrawStatusText*(hDC: HDC, lprc: LPCRECT, pszText: LPCSTR, uFlags: UINT): void {.winapi, stdcall, dynlib: "comctl32", importc: "DrawStatusTextA".} + proc CreatePropertySheetPage*( + constPropSheetPagePointer: LPCPROPSHEETPAGEA + ): HPROPSHEETPAGE {. + winapi, stdcall, dynlib: "comctl32", importc: "CreatePropertySheetPageA" + .} + + proc PropertySheet*( + P1: LPCPROPSHEETHEADERA + ): INT_PTR {.winapi, stdcall, dynlib: "comctl32", importc: "PropertySheetA".} + + proc ImageList_LoadImage*( + hi: HINSTANCE, + lpbmp: LPCSTR, + cx: int32, + cGrow: int32, + crMask: COLORREF, + uType: UINT, + uFlags: UINT, + ): HIMAGELIST {.winapi, stdcall, dynlib: "comctl32", importc: "ImageList_LoadImageA".} + + proc CreateStatusWindow*( + style: LONG, lpszText: LPCSTR, hwndParent: HWND, wID: UINT + ): HWND {.winapi, stdcall, dynlib: "comctl32", importc: "CreateStatusWindowA".} + + proc DrawStatusText*( + hDC: HDC, lprc: LPCRECT, pszText: LPCSTR, uFlags: UINT + ): void {.winapi, stdcall, dynlib: "comctl32", importc: "DrawStatusTextA".} + when winimCpu64: type PTBBUTTON* = ptr TBBUTTON LPTBBUTTON* = ptr TBBUTTON - proc FlatSB_GetScrollPropPtr*(P1: HWND, propIndex: int32, P3: PINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + + proc FlatSB_GetScrollPropPtr*( + P1: HWND, propIndex: int32, P3: PINT_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc.} + when winimCpu32: type PTBBUTTON* = ptr TBBUTTON LPTBBUTTON* = ptr TBBUTTON - proc FlatSB_GetScrollPropPtr*(P1: HWND, propIndex: int32, P3: LPINT): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc: "FlatSB_GetScrollProp".} + + proc FlatSB_GetScrollPropPtr*( + P1: HWND, propIndex: int32, P3: LPINT + ): WINBOOL {.winapi, stdcall, dynlib: "comctl32", importc: "FlatSB_GetScrollProp".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/commdlg.nim --- a/semicongine/thirdparty/winim/winim/inc/commdlg.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/commdlg.nim Thu Aug 22 18:32:21 2024 +0700 @@ -12,7 +12,8 @@ import commctrl #include type - LPOFNHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPOFNHOOKPROC* = + proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} OPENFILENAME_NT4A* {.pure.} = object lStructSize*: DWORD hwndOwner*: HWND @@ -34,6 +35,7 @@ lCustData*: LPARAM lpfnHook*: LPOFNHOOKPROC lpTemplateName*: LPCSTR + LPOPENFILENAME_NT4A* = ptr OPENFILENAME_NT4A OPENFILENAME_NT4W* {.pure.} = object lStructSize*: DWORD @@ -56,6 +58,7 @@ lCustData*: LPARAM lpfnHook*: LPOFNHOOKPROC lpTemplateName*: LPCWSTR + LPOPENFILENAME_NT4W* = ptr OPENFILENAME_NT4W OPENFILENAMEA* {.pure.} = object lStructSize*: DWORD @@ -81,6 +84,7 @@ pvReserved*: pointer dwReserved*: DWORD FlagsEx*: DWORD + LPOPENFILENAMEA* = ptr OPENFILENAMEA OPENFILENAMEW* {.pure.} = object lStructSize*: DWORD @@ -106,30 +110,35 @@ pvReserved*: pointer dwReserved*: DWORD FlagsEx*: DWORD + LPOPENFILENAMEW* = ptr OPENFILENAMEW OFNOTIFYA* {.pure.} = object hdr*: NMHDR lpOFN*: LPOPENFILENAMEA pszFile*: LPSTR + LPOFNOTIFYA* = ptr OFNOTIFYA OFNOTIFYW* {.pure.} = object hdr*: NMHDR lpOFN*: LPOPENFILENAMEW pszFile*: LPWSTR + LPOFNOTIFYW* = ptr OFNOTIFYW OFNOTIFYEXA* {.pure.} = object hdr*: NMHDR lpOFN*: LPOPENFILENAMEA psf*: LPVOID pidl*: LPVOID + LPOFNOTIFYEXA* = ptr OFNOTIFYEXA OFNOTIFYEXW* {.pure.} = object hdr*: NMHDR lpOFN*: LPOPENFILENAMEW psf*: LPVOID pidl*: LPVOID + LPOFNOTIFYEXW* = ptr OFNOTIFYEXW - LPCCHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPCCHOOKPROC* = proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} TCHOOSECOLORA* {.pure.} = object lStructSize*: DWORD hwndOwner*: HWND @@ -140,6 +149,7 @@ lCustData*: LPARAM lpfnHook*: LPCCHOOKPROC lpTemplateName*: LPCSTR + LPCHOOSECOLORA* = ptr TCHOOSECOLORA TCHOOSECOLORW* {.pure.} = object lStructSize*: DWORD @@ -151,8 +161,9 @@ lCustData*: LPARAM lpfnHook*: LPCCHOOKPROC lpTemplateName*: LPCWSTR + LPCHOOSECOLORW* = ptr TCHOOSECOLORW - LPFRHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPFRHOOKPROC* = proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} FINDREPLACEA* {.pure.} = object lStructSize*: DWORD hwndOwner*: HWND @@ -165,6 +176,7 @@ lCustData*: LPARAM lpfnHook*: LPFRHOOKPROC lpTemplateName*: LPCSTR + LPFINDREPLACEA* = ptr FINDREPLACEA FINDREPLACEW* {.pure.} = object lStructSize*: DWORD @@ -178,8 +190,9 @@ lCustData*: LPARAM lpfnHook*: LPFRHOOKPROC lpTemplateName*: LPCWSTR + LPFINDREPLACEW* = ptr FINDREPLACEW - LPCFHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPCFHOOKPROC* = proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} TCHOOSEFONTA* {.pure.} = object lStructSize*: DWORD hwndOwner*: HWND @@ -197,6 +210,7 @@ MISSING_ALIGNMENT*: WORD nSizeMin*: INT nSizeMax*: INT + LPCHOOSEFONTA* = ptr TCHOOSEFONTA TCHOOSEFONTW* {.pure.} = object lStructSize*: DWORD @@ -215,104 +229,108 @@ MISSING_ALIGNMENT*: WORD nSizeMin*: INT nSizeMax*: INT + LPCHOOSEFONTW* = ptr TCHOOSEFONTW - LPPRINTHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} - LPSETUPHOOKPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPPRINTHOOKPROC* = + proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPSETUPHOOKPROC* = + proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + when winimCpu64: - type - TPRINTDLGA* {.pure.} = object - lStructSize*: DWORD - hwndOwner*: HWND - hDevMode*: HGLOBAL - hDevNames*: HGLOBAL - hDC*: HDC - Flags*: DWORD - nFromPage*: WORD - nToPage*: WORD - nMinPage*: WORD - nMaxPage*: WORD - nCopies*: WORD - hInstance*: HINSTANCE - lCustData*: LPARAM - lpfnPrintHook*: LPPRINTHOOKPROC - lpfnSetupHook*: LPSETUPHOOKPROC - lpPrintTemplateName*: LPCSTR - lpSetupTemplateName*: LPCSTR - hPrintTemplate*: HGLOBAL - hSetupTemplate*: HGLOBAL + type TPRINTDLGA* {.pure.} = object + lStructSize*: DWORD + hwndOwner*: HWND + hDevMode*: HGLOBAL + hDevNames*: HGLOBAL + hDC*: HDC + Flags*: DWORD + nFromPage*: WORD + nToPage*: WORD + nMinPage*: WORD + nMaxPage*: WORD + nCopies*: WORD + hInstance*: HINSTANCE + lCustData*: LPARAM + lpfnPrintHook*: LPPRINTHOOKPROC + lpfnSetupHook*: LPSETUPHOOKPROC + lpPrintTemplateName*: LPCSTR + lpSetupTemplateName*: LPCSTR + hPrintTemplate*: HGLOBAL + hSetupTemplate*: HGLOBAL + when winimCpu32: - type - TPRINTDLGA* {.pure, packed.} = object - lStructSize*: DWORD - hwndOwner*: HWND - hDevMode*: HGLOBAL - hDevNames*: HGLOBAL - hDC*: HDC - Flags*: DWORD - nFromPage*: WORD - nToPage*: WORD - nMinPage*: WORD - nMaxPage*: WORD - nCopies*: WORD - hInstance*: HINSTANCE - lCustData*: LPARAM - lpfnPrintHook*: LPPRINTHOOKPROC - lpfnSetupHook*: LPSETUPHOOKPROC - lpPrintTemplateName*: LPCSTR - lpSetupTemplateName*: LPCSTR - hPrintTemplate*: HGLOBAL - hSetupTemplate*: HGLOBAL -type - LPPRINTDLGA* = ptr TPRINTDLGA + type TPRINTDLGA* {.pure, packed.} = object + lStructSize*: DWORD + hwndOwner*: HWND + hDevMode*: HGLOBAL + hDevNames*: HGLOBAL + hDC*: HDC + Flags*: DWORD + nFromPage*: WORD + nToPage*: WORD + nMinPage*: WORD + nMaxPage*: WORD + nCopies*: WORD + hInstance*: HINSTANCE + lCustData*: LPARAM + lpfnPrintHook*: LPPRINTHOOKPROC + lpfnSetupHook*: LPSETUPHOOKPROC + lpPrintTemplateName*: LPCSTR + lpSetupTemplateName*: LPCSTR + hPrintTemplate*: HGLOBAL + hSetupTemplate*: HGLOBAL + +type LPPRINTDLGA* = ptr TPRINTDLGA when winimCpu64: - type - TPRINTDLGW* {.pure.} = object - lStructSize*: DWORD - hwndOwner*: HWND - hDevMode*: HGLOBAL - hDevNames*: HGLOBAL - hDC*: HDC - Flags*: DWORD - nFromPage*: WORD - nToPage*: WORD - nMinPage*: WORD - nMaxPage*: WORD - nCopies*: WORD - hInstance*: HINSTANCE - lCustData*: LPARAM - lpfnPrintHook*: LPPRINTHOOKPROC - lpfnSetupHook*: LPSETUPHOOKPROC - lpPrintTemplateName*: LPCWSTR - lpSetupTemplateName*: LPCWSTR - hPrintTemplate*: HGLOBAL - hSetupTemplate*: HGLOBAL + type TPRINTDLGW* {.pure.} = object + lStructSize*: DWORD + hwndOwner*: HWND + hDevMode*: HGLOBAL + hDevNames*: HGLOBAL + hDC*: HDC + Flags*: DWORD + nFromPage*: WORD + nToPage*: WORD + nMinPage*: WORD + nMaxPage*: WORD + nCopies*: WORD + hInstance*: HINSTANCE + lCustData*: LPARAM + lpfnPrintHook*: LPPRINTHOOKPROC + lpfnSetupHook*: LPSETUPHOOKPROC + lpPrintTemplateName*: LPCWSTR + lpSetupTemplateName*: LPCWSTR + hPrintTemplate*: HGLOBAL + hSetupTemplate*: HGLOBAL + when winimCpu32: - type - TPRINTDLGW* {.pure, packed.} = object - lStructSize*: DWORD - hwndOwner*: HWND - hDevMode*: HGLOBAL - hDevNames*: HGLOBAL - hDC*: HDC - Flags*: DWORD - nFromPage*: WORD - nToPage*: WORD - nMinPage*: WORD - nMaxPage*: WORD - nCopies*: WORD - hInstance*: HINSTANCE - lCustData*: LPARAM - lpfnPrintHook*: LPPRINTHOOKPROC - lpfnSetupHook*: LPSETUPHOOKPROC - lpPrintTemplateName*: LPCWSTR - lpSetupTemplateName*: LPCWSTR - hPrintTemplate*: HGLOBAL - hSetupTemplate*: HGLOBAL + type TPRINTDLGW* {.pure, packed.} = object + lStructSize*: DWORD + hwndOwner*: HWND + hDevMode*: HGLOBAL + hDevNames*: HGLOBAL + hDC*: HDC + Flags*: DWORD + nFromPage*: WORD + nToPage*: WORD + nMinPage*: WORD + nMaxPage*: WORD + nCopies*: WORD + hInstance*: HINSTANCE + lCustData*: LPARAM + lpfnPrintHook*: LPPRINTHOOKPROC + lpfnSetupHook*: LPSETUPHOOKPROC + lpPrintTemplateName*: LPCWSTR + lpSetupTemplateName*: LPCWSTR + hPrintTemplate*: HGLOBAL + hSetupTemplate*: HGLOBAL + type LPPRINTDLGW* = ptr TPRINTDLGW PRINTPAGERANGE* {.pure.} = object nFromPage*: DWORD nToPage*: DWORD + LPPRINTPAGERANGE* = ptr PRINTPAGERANGE TPRINTDLGEXA* {.pure.} = object lStructSize*: DWORD @@ -336,6 +354,7 @@ lphPropertyPages*: ptr HPROPSHEETPAGE nStartPage*: DWORD dwResultAction*: DWORD + LPPRINTDLGEXA* = ptr TPRINTDLGEXA TPRINTDLGEXW* {.pure.} = object lStructSize*: DWORD @@ -359,15 +378,19 @@ lphPropertyPages*: ptr HPROPSHEETPAGE nStartPage*: DWORD dwResultAction*: DWORD + LPPRINTDLGEXW* = ptr TPRINTDLGEXW DEVNAMES* {.pure.} = object wDriverOffset*: WORD wDeviceOffset*: WORD wOutputOffset*: WORD wDefault*: WORD + LPDEVNAMES* = ptr DEVNAMES - LPPAGESETUPHOOK* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} - LPPAGEPAINTHOOK* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPPAGESETUPHOOK* = + proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} + LPPAGEPAINTHOOK* = + proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT_PTR {.stdcall.} TPAGESETUPDLGA* {.pure.} = object lStructSize*: DWORD hwndOwner*: HWND @@ -383,6 +406,7 @@ lpfnPagePaintHook*: LPPAGEPAINTHOOK lpPageSetupTemplateName*: LPCSTR hPageSetupTemplate*: HGLOBAL + LPPAGESETUPDLGA* = ptr TPAGESETUPDLGA TPAGESETUPDLGW* {.pure.} = object lStructSize*: DWORD @@ -399,7 +423,9 @@ lpfnPagePaintHook*: LPPAGEPAINTHOOK lpPageSetupTemplateName*: LPCWSTR hPageSetupTemplate*: HGLOBAL + LPPAGESETUPDLGW* = ptr TPAGESETUPDLGW + const IID_IPrintDialogCallback* = DEFINE_GUID("5852a2c3-6530-11d1-b6a3-0000f8757bf9") IID_IPrintDialogServices* = DEFINE_GUID("509aaeda-5639-11d1-b6a1-0000f8757bf9") @@ -434,22 +460,22 @@ OFN_SHARENOWARN* = 1 OFN_SHAREWARN* = 0 CDN_INITDONE* = CDN_FIRST - CDN_SELCHANGE* = CDN_FIRST-1 - CDN_FOLDERCHANGE* = CDN_FIRST-2 - CDN_SHAREVIOLATION* = CDN_FIRST-3 - CDN_HELP* = CDN_FIRST-4 - CDN_FILEOK* = CDN_FIRST-5 - CDN_TYPECHANGE* = CDN_FIRST-6 - CDN_INCLUDEITEM* = CDN_FIRST-7 - CDM_FIRST* = WM_USER+100 - CDM_LAST* = WM_USER+200 + CDN_SELCHANGE* = CDN_FIRST - 1 + CDN_FOLDERCHANGE* = CDN_FIRST - 2 + CDN_SHAREVIOLATION* = CDN_FIRST - 3 + CDN_HELP* = CDN_FIRST - 4 + CDN_FILEOK* = CDN_FIRST - 5 + CDN_TYPECHANGE* = CDN_FIRST - 6 + CDN_INCLUDEITEM* = CDN_FIRST - 7 + CDM_FIRST* = WM_USER + 100 + CDM_LAST* = WM_USER + 200 CDM_GETSPEC* = CDM_FIRST - CDM_GETFILEPATH* = CDM_FIRST+1 - CDM_GETFOLDERPATH* = CDM_FIRST+2 - CDM_GETFOLDERIDLIST* = CDM_FIRST+3 - CDM_SETCONTROLTEXT* = CDM_FIRST+4 - CDM_HIDECONTROL* = CDM_FIRST+5 - CDM_SETDEFEXT* = CDM_FIRST+6 + CDM_GETFILEPATH* = CDM_FIRST + 1 + CDM_GETFOLDERPATH* = CDM_FIRST + 2 + CDM_GETFOLDERIDLIST* = CDM_FIRST + 3 + CDM_SETCONTROLTEXT* = CDM_FIRST + 4 + CDM_HIDECONTROL* = CDM_FIRST + 5 + CDM_SETDEFEXT* = CDM_FIRST + 6 CC_RGBINIT* = 0x1 CC_FULLOPEN* = 0x2 CC_PREVENTFULLOPEN* = 0x4 @@ -519,9 +545,9 @@ TT_OPENTYPE_FONTTYPE* = 0x20000 TYPE1_FONTTYPE* = 0x40000 SYMBOL_FONTTYPE* = 0x80000 - WM_CHOOSEFONT_GETLOGFONT* = WM_USER+1 - WM_CHOOSEFONT_SETLOGFONT* = WM_USER+101 - WM_CHOOSEFONT_SETFLAGS* = WM_USER+102 + WM_CHOOSEFONT_GETLOGFONT* = WM_USER + 1 + WM_CHOOSEFONT_SETLOGFONT* = WM_USER + 101 + WM_CHOOSEFONT_SETFLAGS* = WM_USER + 102 LBSELCHSTRINGA* = "commdlg_LBSelChangedNotify" SHAREVISTRINGA* = "commdlg_ShareViolation" FILEOKSTRINGA* = "commdlg_FileNameOK" @@ -575,12 +601,12 @@ PD_RESULT_APPLY* = 2 DN_DEFAULTPRN* = 0x1 WM_PSD_PAGESETUPDLG* = WM_USER - WM_PSD_FULLPAGERECT* = WM_USER+1 - WM_PSD_MINMARGINRECT* = WM_USER+2 - WM_PSD_MARGINRECT* = WM_USER+3 - WM_PSD_GREEKTEXTRECT* = WM_USER+4 - WM_PSD_ENVSTAMPRECT* = WM_USER+5 - WM_PSD_YAFULLPAGERECT* = WM_USER+6 + WM_PSD_FULLPAGERECT* = WM_USER + 1 + WM_PSD_MINMARGINRECT* = WM_USER + 2 + WM_PSD_MARGINRECT* = WM_USER + 3 + WM_PSD_GREEKTEXTRECT* = WM_USER + 4 + WM_PSD_ENVSTAMPRECT* = WM_USER + 5 + WM_PSD_YAFULLPAGERECT* = WM_USER + 6 PSD_DEFAULTMINMARGINS* = 0x0 PSD_INWININIINTLMEASURE* = 0x0 PSD_MINMARGINS* = 0x1 @@ -605,45 +631,161 @@ type IPrintDialogCallback* {.pure.} = object lpVtbl*: ptr IPrintDialogCallbackVtbl + IPrintDialogCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl InitDone*: proc(self: ptr IPrintDialogCallback): HRESULT {.stdcall.} SelectionChange*: proc(self: ptr IPrintDialogCallback): HRESULT {.stdcall.} - HandleMessage*: proc(self: ptr IPrintDialogCallback, hDlg: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, pResult: ptr LRESULT): HRESULT {.stdcall.} + HandleMessage*: proc( + self: ptr IPrintDialogCallback, + hDlg: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pResult: ptr LRESULT, + ): HRESULT {.stdcall.} + IPrintDialogServices* {.pure.} = object lpVtbl*: ptr IPrintDialogServicesVtbl + IPrintDialogServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentDevMode*: proc(self: ptr IPrintDialogServices, pDevMode: LPDEVMODE, pcbSize: ptr UINT): HRESULT {.stdcall.} - GetCurrentPrinterName*: proc(self: ptr IPrintDialogServices, pPrinterName: LPTSTR, pcchSize: ptr UINT): HRESULT {.stdcall.} - GetCurrentPortName*: proc(self: ptr IPrintDialogServices, pPortName: LPTSTR, pcchSize: ptr UINT): HRESULT {.stdcall.} -proc GetOpenFileNameA*(P1: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc GetOpenFileNameW*(P1: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc GetSaveFileNameA*(P1: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc GetSaveFileNameW*(P1: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc GetFileTitleA*(P1: LPCSTR, P2: LPSTR, P3: WORD): int16 {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc GetFileTitleW*(P1: LPCWSTR, P2: LPWSTR, P3: WORD): int16 {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc ChooseColorA*(P1: LPCHOOSECOLORA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc ChooseColorW*(P1: LPCHOOSECOLORW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc FindTextA*(P1: LPFINDREPLACEA): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc FindTextW*(P1: LPFINDREPLACEW): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc ReplaceTextA*(P1: LPFINDREPLACEA): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc ReplaceTextW*(P1: LPFINDREPLACEW): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc ChooseFontA*(P1: LPCHOOSEFONTA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc ChooseFontW*(P1: LPCHOOSEFONTW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc PrintDlgA*(P1: LPPRINTDLGA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc PrintDlgW*(P1: LPPRINTDLGW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc PrintDlgExA*(P1: LPPRINTDLGEXA): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc PrintDlgExW*(P1: LPPRINTDLGEXW): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc.} + GetCurrentDevMode*: proc( + self: ptr IPrintDialogServices, pDevMode: LPDEVMODE, pcbSize: ptr UINT + ): HRESULT {.stdcall.} + GetCurrentPrinterName*: proc( + self: ptr IPrintDialogServices, pPrinterName: LPTSTR, pcchSize: ptr UINT + ): HRESULT {.stdcall.} + GetCurrentPortName*: proc( + self: ptr IPrintDialogServices, pPortName: LPTSTR, pcchSize: ptr UINT + ): HRESULT {.stdcall.} + +proc GetOpenFileNameA*( + P1: LPOPENFILENAMEA +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc GetOpenFileNameW*( + P1: LPOPENFILENAMEW +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc GetSaveFileNameA*( + P1: LPOPENFILENAMEA +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc GetSaveFileNameW*( + P1: LPOPENFILENAMEW +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc GetFileTitleA*( + P1: LPCSTR, P2: LPSTR, P3: WORD +): int16 {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc GetFileTitleW*( + P1: LPCWSTR, P2: LPWSTR, P3: WORD +): int16 {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc ChooseColorA*( + P1: LPCHOOSECOLORA +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc ChooseColorW*( + P1: LPCHOOSECOLORW +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc FindTextA*( + P1: LPFINDREPLACEA +): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc FindTextW*( + P1: LPFINDREPLACEW +): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc ReplaceTextA*( + P1: LPFINDREPLACEA +): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc ReplaceTextW*( + P1: LPFINDREPLACEW +): HWND {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc ChooseFontA*( + P1: LPCHOOSEFONTA +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc ChooseFontW*( + P1: LPCHOOSEFONTW +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc PrintDlgA*( + P1: LPPRINTDLGA +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc PrintDlgW*( + P1: LPPRINTDLGW +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc PrintDlgExA*( + P1: LPPRINTDLGEXA +): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc PrintDlgExW*( + P1: LPPRINTDLGEXW +): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc.} + proc CommDlgExtendedError*(): DWORD {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc PageSetupDlgA*(P1: LPPAGESETUPDLGA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc PageSetupDlgW*(P1: LPPAGESETUPDLGW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} -proc InitDone*(self: ptr IPrintDialogCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitDone(self) -proc SelectionChange*(self: ptr IPrintDialogCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectionChange(self) -proc HandleMessage*(self: ptr IPrintDialogCallback, hDlg: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, pResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleMessage(self, hDlg, uMsg, wParam, lParam, pResult) -proc GetCurrentDevMode*(self: ptr IPrintDialogServices, pDevMode: LPDEVMODE, pcbSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentDevMode(self, pDevMode, pcbSize) -proc GetCurrentPrinterName*(self: ptr IPrintDialogServices, pPrinterName: LPTSTR, pcchSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPrinterName(self, pPrinterName, pcchSize) -proc GetCurrentPortName*(self: ptr IPrintDialogServices, pPortName: LPTSTR, pcchSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPortName(self, pPortName, pcchSize) -converter winimConverterIPrintDialogCallbackToIUnknown*(x: ptr IPrintDialogCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPrintDialogServicesToIUnknown*(x: ptr IPrintDialogServices): ptr IUnknown = cast[ptr IUnknown](x) +proc PageSetupDlgA*( + P1: LPPAGESETUPDLGA +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc PageSetupDlgW*( + P1: LPPAGESETUPDLGW +): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc.} + +proc InitDone*(self: ptr IPrintDialogCallback): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitDone(self) + +proc SelectionChange*(self: ptr IPrintDialogCallback): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectionChange(self) + +proc HandleMessage*( + self: ptr IPrintDialogCallback, + hDlg: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleMessage(self, hDlg, uMsg, wParam, lParam, pResult) + +proc GetCurrentDevMode*( + self: ptr IPrintDialogServices, pDevMode: LPDEVMODE, pcbSize: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentDevMode(self, pDevMode, pcbSize) + +proc GetCurrentPrinterName*( + self: ptr IPrintDialogServices, pPrinterName: LPTSTR, pcchSize: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentPrinterName(self, pPrinterName, pcchSize) + +proc GetCurrentPortName*( + self: ptr IPrintDialogServices, pPortName: LPTSTR, pcchSize: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentPortName(self, pPortName, pcchSize) + +converter winimConverterIPrintDialogCallbackToIUnknown*( + x: ptr IPrintDialogCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPrintDialogServicesToIUnknown*( + x: ptr IPrintDialogServices +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type OPENFILENAME_NT4* = OPENFILENAME_NT4W @@ -666,6 +808,7 @@ LPPRINTDLGEX* = LPPRINTDLGEXW TPAGESETUPDLG* = TPAGESETUPDLGW LPPAGESETUPDLG* = LPPAGESETUPDLGW + const OPENFILENAME_SIZE_VERSION_400* = OPENFILENAME_SIZE_VERSION_400W LBSELCHSTRING* = LBSELCHSTRINGW @@ -675,16 +818,46 @@ SETRGBSTRING* = SETRGBSTRINGW HELPMSGSTRING* = HELPMSGSTRINGW FINDMSGSTRING* = FINDMSGSTRINGW - proc GetOpenFileName*(P1: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetOpenFileNameW".} - proc GetSaveFileName*(P1: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetSaveFileNameW".} - proc GetFileTitle*(P1: LPCWSTR, P2: LPWSTR, P3: WORD): int16 {.winapi, stdcall, dynlib: "comdlg32", importc: "GetFileTitleW".} - proc ChooseColor*(P1: LPCHOOSECOLORW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseColorW".} - proc FindText*(P1: LPFINDREPLACEW): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "FindTextW".} - proc ReplaceText*(P1: LPFINDREPLACEW): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "ReplaceTextW".} - proc ChooseFont*(P1: LPCHOOSEFONTW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseFontW".} - proc PrintDlg*(P1: LPPRINTDLGW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgW".} - proc PrintDlgEx*(P1: LPPRINTDLGEXW): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgExW".} - proc PageSetupDlg*(P1: LPPAGESETUPDLGW): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PageSetupDlgW".} + proc GetOpenFileName*( + P1: LPOPENFILENAMEW + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetOpenFileNameW".} + + proc GetSaveFileName*( + P1: LPOPENFILENAMEW + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetSaveFileNameW".} + + proc GetFileTitle*( + P1: LPCWSTR, P2: LPWSTR, P3: WORD + ): int16 {.winapi, stdcall, dynlib: "comdlg32", importc: "GetFileTitleW".} + + proc ChooseColor*( + P1: LPCHOOSECOLORW + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseColorW".} + + proc FindText*( + P1: LPFINDREPLACEW + ): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "FindTextW".} + + proc ReplaceText*( + P1: LPFINDREPLACEW + ): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "ReplaceTextW".} + + proc ChooseFont*( + P1: LPCHOOSEFONTW + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseFontW".} + + proc PrintDlg*( + P1: LPPRINTDLGW + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgW".} + + proc PrintDlgEx*( + P1: LPPRINTDLGEXW + ): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgExW".} + + proc PageSetupDlg*( + P1: LPPAGESETUPDLGW + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PageSetupDlgW".} + when winimAnsi: type OPENFILENAME_NT4* = OPENFILENAME_NT4A @@ -707,6 +880,7 @@ LPPRINTDLGEX* = LPPRINTDLGEXA TPAGESETUPDLG* = TPAGESETUPDLGA LPPAGESETUPDLG* = LPPAGESETUPDLGA + const OPENFILENAME_SIZE_VERSION_400* = OPENFILENAME_SIZE_VERSION_400A LBSELCHSTRING* = LBSELCHSTRINGA @@ -716,13 +890,42 @@ SETRGBSTRING* = SETRGBSTRINGA HELPMSGSTRING* = HELPMSGSTRINGA FINDMSGSTRING* = FINDMSGSTRINGA - proc GetOpenFileName*(P1: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetOpenFileNameA".} - proc GetSaveFileName*(P1: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetSaveFileNameA".} - proc GetFileTitle*(P1: LPCSTR, P2: LPSTR, P3: WORD): int16 {.winapi, stdcall, dynlib: "comdlg32", importc: "GetFileTitleA".} - proc ChooseColor*(P1: LPCHOOSECOLORA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseColorA".} - proc FindText*(P1: LPFINDREPLACEA): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "FindTextA".} - proc ReplaceText*(P1: LPFINDREPLACEA): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "ReplaceTextA".} - proc ChooseFont*(P1: LPCHOOSEFONTA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseFontA".} - proc PrintDlg*(P1: LPPRINTDLGA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgA".} - proc PrintDlgEx*(P1: LPPRINTDLGEXA): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgExA".} - proc PageSetupDlg*(P1: LPPAGESETUPDLGA): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PageSetupDlgA".} + proc GetOpenFileName*( + P1: LPOPENFILENAMEA + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetOpenFileNameA".} + + proc GetSaveFileName*( + P1: LPOPENFILENAMEA + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "GetSaveFileNameA".} + + proc GetFileTitle*( + P1: LPCSTR, P2: LPSTR, P3: WORD + ): int16 {.winapi, stdcall, dynlib: "comdlg32", importc: "GetFileTitleA".} + + proc ChooseColor*( + P1: LPCHOOSECOLORA + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseColorA".} + + proc FindText*( + P1: LPFINDREPLACEA + ): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "FindTextA".} + + proc ReplaceText*( + P1: LPFINDREPLACEA + ): HWND {.winapi, stdcall, dynlib: "comdlg32", importc: "ReplaceTextA".} + + proc ChooseFont*( + P1: LPCHOOSEFONTA + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "ChooseFontA".} + + proc PrintDlg*( + P1: LPPRINTDLGA + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgA".} + + proc PrintDlgEx*( + P1: LPPRINTDLGEXA + ): HRESULT {.winapi, stdcall, dynlib: "comdlg32", importc: "PrintDlgExA".} + + proc PageSetupDlg*( + P1: LPPAGESETUPDLGA + ): WINBOOL {.winapi, stdcall, dynlib: "comdlg32", importc: "PageSetupDlgA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/dde.nim --- a/semicongine/thirdparty/winim/winim/inc/dde.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/dde.nim Thu Aug 22 18:32:21 2024 +0700 @@ -17,6 +17,7 @@ HSZPAIR* {.pure.} = object hszSvc*: HSZ hszTopic*: HSZ + PHSZPAIR* = ptr HSZPAIR CONVCONTEXT* {.pure.} = object cb*: UINT @@ -26,6 +27,7 @@ dwLangID*: DWORD dwSecurity*: DWORD qos*: SECURITY_QUALITY_OF_SERVICE + PCONVCONTEXT* = ptr CONVCONTEXT CONVINFO* {.pure.} = object cb*: DWORD @@ -44,12 +46,14 @@ ConvCtxt*: CONVCONTEXT hwnd*: HWND hwndPartner*: HWND + PCONVINFO* = ptr CONVINFO DDEML_MSG_HOOK_DATA* {.pure.} = object uiLo*: UINT_PTR uiHi*: UINT_PTR cbData*: DWORD Data*: array[8, DWORD] + PDDEML_MSG_HOOK_DATA* = ptr DDEML_MSG_HOOK_DATA MONMSGSTRUCT* {.pure.} = object cb*: UINT @@ -60,6 +64,7 @@ wParam*: WPARAM lParam*: LPARAM dmhd*: DDEML_MSG_HOOK_DATA + PMONMSGSTRUCT* = ptr MONMSGSTRUCT MONCBSTRUCT* {.pure.} = object cb*: UINT @@ -77,6 +82,7 @@ cc*: CONVCONTEXT cbData*: DWORD Data*: array[8, DWORD] + PMONCBSTRUCT* = ptr MONCBSTRUCT MONHSZSTRUCTA* {.pure.} = object cb*: UINT @@ -85,6 +91,7 @@ hsz*: HSZ hTask*: HANDLE str*: array[1, CHAR] + PMONHSZSTRUCTA* = ptr MONHSZSTRUCTA MONHSZSTRUCTW* {.pure.} = object cb*: UINT @@ -93,12 +100,14 @@ hsz*: HSZ hTask*: HANDLE str*: array[1, WCHAR] + PMONHSZSTRUCTW* = ptr MONHSZSTRUCTW MONERRSTRUCT* {.pure.} = object cb*: UINT wLastError*: UINT dwTime*: DWORD hTask*: HANDLE + PMONERRSTRUCT* = ptr MONERRSTRUCT MONLINKSTRUCT* {.pure.} = object cb*: UINT @@ -113,6 +122,7 @@ fServer*: WINBOOL hConvServer*: HCONV hConvClient*: HCONV + PMONLINKSTRUCT* = ptr MONLINKSTRUCT MONCONVSTRUCT* {.pure.} = object cb*: UINT @@ -123,7 +133,9 @@ hszTopic*: HSZ hConvClient*: HCONV hConvServer*: HCONV + PMONCONVSTRUCT* = ptr MONCONVSTRUCT + const CDERR_DIALOGFAILURE* = 0xFFFF CDERR_GENERALCODES* = 0x0000 @@ -164,15 +176,15 @@ CCERR_CHOOSECOLORCODES* = 0x5000 WM_DDE_FIRST* = 0x03E0 WM_DDE_INITIATE* = WM_DDE_FIRST - WM_DDE_TERMINATE* = WM_DDE_FIRST+1 - WM_DDE_ADVISE* = WM_DDE_FIRST+2 - WM_DDE_UNADVISE* = WM_DDE_FIRST+3 - WM_DDE_ACK* = WM_DDE_FIRST+4 - WM_DDE_DATA* = WM_DDE_FIRST+5 - WM_DDE_REQUEST* = WM_DDE_FIRST+6 - WM_DDE_POKE* = WM_DDE_FIRST+7 - WM_DDE_EXECUTE* = WM_DDE_FIRST+8 - WM_DDE_LAST* = WM_DDE_FIRST+8 + WM_DDE_TERMINATE* = WM_DDE_FIRST + 1 + WM_DDE_ADVISE* = WM_DDE_FIRST + 2 + WM_DDE_UNADVISE* = WM_DDE_FIRST + 3 + WM_DDE_ACK* = WM_DDE_FIRST + 4 + WM_DDE_DATA* = WM_DDE_FIRST + 5 + WM_DDE_REQUEST* = WM_DDE_FIRST + 6 + WM_DDE_POKE* = WM_DDE_FIRST + 7 + WM_DDE_EXECUTE* = WM_DDE_FIRST + 8 + WM_DDE_LAST* = WM_DDE_FIRST + 8 XST_NULL* = 0 XST_INCOMPLETE* = 1 XST_CONNECTED* = 2 @@ -314,98 +326,262 @@ MF_CONV* = 0x40000000 MF_MASK* = 0xFF000000'i32 type - FNCALLBACK* = proc (wType: UINT, wFmt: UINT, hConv: HCONV, hsz1: HSZ, hsz2: HSZ, hData: HDDEDATA, dwData1: ULONG_PTR, dwData2: ULONG_PTR): HDDEDATA {.stdcall.} - PFNCALLBACK* = proc (wType: UINT, wFmt: UINT, hConv: HCONV, hsz1: HSZ, hsz2: HSZ, hData: HDDEDATA, dwData1: ULONG_PTR, dwData2: ULONG_PTR): HDDEDATA {.stdcall.} + FNCALLBACK* = proc( + wType: UINT, + wFmt: UINT, + hConv: HCONV, + hsz1: HSZ, + hsz2: HSZ, + hData: HDDEDATA, + dwData1: ULONG_PTR, + dwData2: ULONG_PTR, + ): HDDEDATA {.stdcall.} + PFNCALLBACK* = proc( + wType: UINT, + wFmt: UINT, + hConv: HCONV, + hsz1: HSZ, + hsz2: HSZ, + hData: HDDEDATA, + dwData1: ULONG_PTR, + dwData2: ULONG_PTR, + ): HDDEDATA {.stdcall.} DDEACK* {.pure.} = object - bAppReturnCode* {.bitsize:8.}: uint16 - reserved* {.bitsize:6.}: uint16 - fBusy* {.bitsize:1.}: uint16 - fAck* {.bitsize:1.}: uint16 + bAppReturnCode* {.bitsize: 8.}: uint16 + reserved* {.bitsize: 6.}: uint16 + fBusy* {.bitsize: 1.}: uint16 + fAck* {.bitsize: 1.}: uint16 + DDEADVISE* {.pure.} = object - reserved* {.bitsize:14.}: uint16 - fDeferUpd* {.bitsize:1.}: uint16 - fAckReq* {.bitsize:1.}: uint16 + reserved* {.bitsize: 14.}: uint16 + fDeferUpd* {.bitsize: 1.}: uint16 + fAckReq* {.bitsize: 1.}: uint16 cfFormat*: int16 + DDEDATA* {.pure.} = object - unused* {.bitsize:12.}: uint16 - fResponse* {.bitsize:1.}: uint16 - fRelease* {.bitsize:1.}: uint16 - reserved* {.bitsize:1.}: uint16 - fAckReq* {.bitsize:1.}: uint16 + unused* {.bitsize: 12.}: uint16 + fResponse* {.bitsize: 1.}: uint16 + fRelease* {.bitsize: 1.}: uint16 + reserved* {.bitsize: 1.}: uint16 + fAckReq* {.bitsize: 1.}: uint16 cfFormat*: int16 Value*: array[1, BYTE] + DDEPOKE* {.pure.} = object - unused* {.bitsize:13.}: uint16 - fRelease* {.bitsize:1.}: uint16 - fReserved* {.bitsize:2.}: uint16 + unused* {.bitsize: 13.}: uint16 + fRelease* {.bitsize: 1.}: uint16 + fReserved* {.bitsize: 2.}: uint16 cfFormat*: int16 Value*: array[1, BYTE] + DDELN* {.pure.} = object - unused* {.bitsize:13.}: uint16 - fRelease* {.bitsize:1.}: uint16 - fDeferUpd* {.bitsize:1.}: uint16 - fAckReq* {.bitsize:1.}: uint16 + unused* {.bitsize: 13.}: uint16 + fRelease* {.bitsize: 1.}: uint16 + fDeferUpd* {.bitsize: 1.}: uint16 + fAckReq* {.bitsize: 1.}: uint16 cfFormat*: int16 + DDEUP* {.pure.} = object - unused* {.bitsize:12.}: uint16 - fAck* {.bitsize:1.}: uint16 - fRelease* {.bitsize:1.}: uint16 - fReserved* {.bitsize:1.}: uint16 - fAckReq* {.bitsize:1.}: uint16 + unused* {.bitsize: 12.}: uint16 + fAck* {.bitsize: 1.}: uint16 + fRelease* {.bitsize: 1.}: uint16 + fReserved* {.bitsize: 1.}: uint16 + fAckReq* {.bitsize: 1.}: uint16 cfFormat*: int16 rgb*: array[1, BYTE] -proc DdeSetQualityOfService*(hwndClient: HWND, pqosNew: ptr SECURITY_QUALITY_OF_SERVICE, pqosPrev: PSECURITY_QUALITY_OF_SERVICE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ImpersonateDdeClientWindow*(hWndClient: HWND, hWndServer: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PackDDElParam*(msg: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} -proc UnpackDDElParam*(msg: UINT, lParam: LPARAM, puiLo: PUINT_PTR, puiHi: PUINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc FreeDDElParam*(msg: UINT, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ReuseDDElParam*(lParam: LPARAM, msgIn: UINT, msgOut: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeInitializeA*(pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeInitializeW*(pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeUninitialize*(idInst: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeConnectList*(idInst: DWORD, hszService: HSZ, hszTopic: HSZ, hConvList: HCONVLIST, pCC: PCONVCONTEXT): HCONVLIST {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeQueryNextServer*(hConvList: HCONVLIST, hConvPrev: HCONV): HCONV {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeDisconnectList*(hConvList: HCONVLIST): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeConnect*(idInst: DWORD, hszService: HSZ, hszTopic: HSZ, pCC: PCONVCONTEXT): HCONV {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeDisconnect*(hConv: HCONV): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeSetQualityOfService*( + hwndClient: HWND, + pqosNew: ptr SECURITY_QUALITY_OF_SERVICE, + pqosPrev: PSECURITY_QUALITY_OF_SERVICE, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ImpersonateDdeClientWindow*( + hWndClient: HWND, hWndServer: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PackDDElParam*( + msg: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR +): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnpackDDElParam*( + msg: UINT, lParam: LPARAM, puiLo: PUINT_PTR, puiHi: PUINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc FreeDDElParam*( + msg: UINT, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ReuseDDElParam*( + lParam: LPARAM, msgIn: UINT, msgOut: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR +): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeInitializeA*( + pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeInitializeW*( + pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeUninitialize*( + idInst: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeConnectList*( + idInst: DWORD, hszService: HSZ, hszTopic: HSZ, hConvList: HCONVLIST, pCC: PCONVCONTEXT +): HCONVLIST {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeQueryNextServer*( + hConvList: HCONVLIST, hConvPrev: HCONV +): HCONV {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeDisconnectList*( + hConvList: HCONVLIST +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeConnect*( + idInst: DWORD, hszService: HSZ, hszTopic: HSZ, pCC: PCONVCONTEXT +): HCONV {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeDisconnect*( + hConv: HCONV +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc DdeReconnect*(hConv: HCONV): HCONV {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeQueryConvInfo*(hConv: HCONV, idTransaction: DWORD, pConvInfo: PCONVINFO): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeSetUserHandle*(hConv: HCONV, id: DWORD, hUser: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeAbandonTransaction*(idInst: DWORD, hConv: HCONV, idTransaction: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdePostAdvise*(idInst: DWORD, hszTopic: HSZ, hszItem: HSZ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeEnableCallback*(idInst: DWORD, hConv: HCONV, wCmd: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeImpersonateClient*(hConv: HCONV): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeNameService*(idInst: DWORD, hsz1: HSZ, hsz2: HSZ, afCmd: UINT): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeClientTransaction*(pData: LPBYTE, cbData: DWORD, hConv: HCONV, hszItem: HSZ, wFmt: UINT, wType: UINT, dwTimeout: DWORD, pdwResult: LPDWORD): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeCreateDataHandle*(idInst: DWORD, pSrc: LPBYTE, cb: DWORD, cbOff: DWORD, hszItem: HSZ, wFmt: UINT, afCmd: UINT): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeAddData*(hData: HDDEDATA, pSrc: LPBYTE, cb: DWORD, cbOff: DWORD): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeGetData*(hData: HDDEDATA, pDst: LPBYTE, cbMax: DWORD, cbOff: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeAccessData*(hData: HDDEDATA, pcbDataSize: LPDWORD): LPBYTE {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeUnaccessData*(hData: HDDEDATA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeFreeDataHandle*(hData: HDDEDATA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeGetLastError*(idInst: DWORD): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeCreateStringHandleA*(idInst: DWORD, psz: LPCSTR, iCodePage: int32): HSZ {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeCreateStringHandleW*(idInst: DWORD, psz: LPCWSTR, iCodePage: int32): HSZ {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeQueryStringA*(idInst: DWORD, hsz: HSZ, psz: LPSTR, cchMax: DWORD, iCodePage: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeQueryStringW*(idInst: DWORD, hsz: HSZ, psz: LPWSTR, cchMax: DWORD, iCodePage: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeFreeStringHandle*(idInst: DWORD, hsz: HSZ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeKeepStringHandle*(idInst: DWORD, hsz: HSZ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DdeCmpStringHandles*(hsz1: HSZ, hsz2: HSZ): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc DdeQueryConvInfo*( + hConv: HCONV, idTransaction: DWORD, pConvInfo: PCONVINFO +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeSetUserHandle*( + hConv: HCONV, id: DWORD, hUser: DWORD_PTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeAbandonTransaction*( + idInst: DWORD, hConv: HCONV, idTransaction: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdePostAdvise*( + idInst: DWORD, hszTopic: HSZ, hszItem: HSZ +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeEnableCallback*( + idInst: DWORD, hConv: HCONV, wCmd: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeImpersonateClient*( + hConv: HCONV +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeNameService*( + idInst: DWORD, hsz1: HSZ, hsz2: HSZ, afCmd: UINT +): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeClientTransaction*( + pData: LPBYTE, + cbData: DWORD, + hConv: HCONV, + hszItem: HSZ, + wFmt: UINT, + wType: UINT, + dwTimeout: DWORD, + pdwResult: LPDWORD, +): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeCreateDataHandle*( + idInst: DWORD, + pSrc: LPBYTE, + cb: DWORD, + cbOff: DWORD, + hszItem: HSZ, + wFmt: UINT, + afCmd: UINT, +): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeAddData*( + hData: HDDEDATA, pSrc: LPBYTE, cb: DWORD, cbOff: DWORD +): HDDEDATA {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeGetData*( + hData: HDDEDATA, pDst: LPBYTE, cbMax: DWORD, cbOff: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeAccessData*( + hData: HDDEDATA, pcbDataSize: LPDWORD +): LPBYTE {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeUnaccessData*( + hData: HDDEDATA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeFreeDataHandle*( + hData: HDDEDATA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeGetLastError*( + idInst: DWORD +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeCreateStringHandleA*( + idInst: DWORD, psz: LPCSTR, iCodePage: int32 +): HSZ {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeCreateStringHandleW*( + idInst: DWORD, psz: LPCWSTR, iCodePage: int32 +): HSZ {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeQueryStringA*( + idInst: DWORD, hsz: HSZ, psz: LPSTR, cchMax: DWORD, iCodePage: int32 +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeQueryStringW*( + idInst: DWORD, hsz: HSZ, psz: LPWSTR, cchMax: DWORD, iCodePage: int32 +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeFreeStringHandle*( + idInst: DWORD, hsz: HSZ +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeKeepStringHandle*( + idInst: DWORD, hsz: HSZ +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DdeCmpStringHandles*( + hsz1: HSZ, hsz2: HSZ +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + when winimUnicode: type MONHSZSTRUCT* = MONHSZSTRUCTW PMONHSZSTRUCT* = PMONHSZSTRUCTW - const - CP_WINNEUTRAL* = CP_WINUNICODE - proc DdeInitialize*(pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD): UINT {.winapi, stdcall, dynlib: "user32", importc: "DdeInitializeW".} - proc DdeCreateStringHandle*(idInst: DWORD, psz: LPCWSTR, iCodePage: int32): HSZ {.winapi, stdcall, dynlib: "user32", importc: "DdeCreateStringHandleW".} - proc DdeQueryString*(idInst: DWORD, hsz: HSZ, psz: LPWSTR, cchMax: DWORD, iCodePage: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "DdeQueryStringW".} + + const CP_WINNEUTRAL* = CP_WINUNICODE + proc DdeInitialize*( + pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "DdeInitializeW".} + + proc DdeCreateStringHandle*( + idInst: DWORD, psz: LPCWSTR, iCodePage: int32 + ): HSZ {.winapi, stdcall, dynlib: "user32", importc: "DdeCreateStringHandleW".} + + proc DdeQueryString*( + idInst: DWORD, hsz: HSZ, psz: LPWSTR, cchMax: DWORD, iCodePage: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "DdeQueryStringW".} + when winimAnsi: type MONHSZSTRUCT* = MONHSZSTRUCTA PMONHSZSTRUCT* = PMONHSZSTRUCTA - const - CP_WINNEUTRAL* = CP_WINANSI - proc DdeInitialize*(pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD): UINT {.winapi, stdcall, dynlib: "user32", importc: "DdeInitializeA".} - proc DdeCreateStringHandle*(idInst: DWORD, psz: LPCSTR, iCodePage: int32): HSZ {.winapi, stdcall, dynlib: "user32", importc: "DdeCreateStringHandleA".} - proc DdeQueryString*(idInst: DWORD, hsz: HSZ, psz: LPSTR, cchMax: DWORD, iCodePage: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "DdeQueryStringA".} + + const CP_WINNEUTRAL* = CP_WINANSI + proc DdeInitialize*( + pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "DdeInitializeA".} + + proc DdeCreateStringHandle*( + idInst: DWORD, psz: LPCSTR, iCodePage: int32 + ): HSZ {.winapi, stdcall, dynlib: "user32", importc: "DdeCreateStringHandleA".} + + proc DdeQueryString*( + idInst: DWORD, hsz: HSZ, psz: LPSTR, cchMax: DWORD, iCodePage: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "DdeQueryStringA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/dhcpcsdk.nim --- a/semicongine/thirdparty/winim/winim/inc/dhcpcsdk.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/dhcpcsdk.nim Thu Aug 22 18:32:21 2024 +0700 @@ -14,6 +14,7 @@ IsVendor*: WINBOOL Data*: LPBYTE nBytesData*: DWORD + PDHCPAPI_PARAMS* = ptr DHCPAPI_PARAMS LPDHCPAPI_PARAMS* = ptr DHCPAPI_PARAMS DHCPCAPI_PARAMS* = DHCPAPI_PARAMS @@ -22,14 +23,17 @@ DHCPCAPI_PARAMS_ARRAY* {.pure.} = object nParams*: ULONG Params*: LPDHCPCAPI_PARAMS + PDHCPCAPI_PARAMS_ARRAY* = ptr DHCPCAPI_PARAMS_ARRAY LPDHCPCAPI_PARAMS_ARRAY* = ptr DHCPCAPI_PARAMS_ARRAY DHCPCAPI_CLASSID* {.pure.} = object Flags*: ULONG Data*: LPBYTE nBytesData*: ULONG + PDHCPCAPI_CLASSID* = ptr DHCPCAPI_CLASSID LPDHCPCAPI_CLASSID* = ptr DHCPCAPI_CLASSID + const OPTION_PAD* = 0 OPTION_SUBNET_MASK* = 1 @@ -103,10 +107,40 @@ DHCPCAPI_REQUEST_MASK* = 0x0F DHCPCAPI_REGISTER_HANDLE_EVENT* = 0x01 DHCPCAPI_DEREGISTER_HANDLE_EVENT* = 0x01 -proc DhcpCApiInitialize*(Version: LPDWORD): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} +proc DhcpCApiInitialize*( + Version: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} + proc DhcpCApiCleanup*(): VOID {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} -proc DhcpRequestParams*(Flags: DWORD, Reserved: LPVOID, AdapterName: LPWSTR, ClassId: LPDHCPCAPI_CLASSID, SendParams: DHCPCAPI_PARAMS_ARRAY, RecdParams: DHCPCAPI_PARAMS_ARRAY, Buffer: LPBYTE, pSize: LPDWORD, RequestIdStr: LPWSTR): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} -proc DhcpUndoRequestParams*(Flags: DWORD, Reserved: LPVOID, AdapterName: LPWSTR, RequestIdStr: LPWSTR): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} -proc DhcpRegisterParamChange*(Flags: DWORD, Reserved: LPVOID, AdapterName: LPWSTR, ClassId: LPDHCPCAPI_CLASSID, Params: DHCPCAPI_PARAMS_ARRAY, Handle: LPVOID): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} -proc DhcpDeRegisterParamChange*(Flags: DWORD, Reserved: LPVOID, Event: LPVOID): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} -proc DhcpRemoveDNSRegistrations*(): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} +proc DhcpRequestParams*( + Flags: DWORD, + Reserved: LPVOID, + AdapterName: LPWSTR, + ClassId: LPDHCPCAPI_CLASSID, + SendParams: DHCPCAPI_PARAMS_ARRAY, + RecdParams: DHCPCAPI_PARAMS_ARRAY, + Buffer: LPBYTE, + pSize: LPDWORD, + RequestIdStr: LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} + +proc DhcpUndoRequestParams*( + Flags: DWORD, Reserved: LPVOID, AdapterName: LPWSTR, RequestIdStr: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} + +proc DhcpRegisterParamChange*( + Flags: DWORD, + Reserved: LPVOID, + AdapterName: LPWSTR, + ClassId: LPDHCPCAPI_CLASSID, + Params: DHCPCAPI_PARAMS_ARRAY, + Handle: LPVOID, +): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} + +proc DhcpDeRegisterParamChange*( + Flags: DWORD, Reserved: LPVOID, Event: LPVOID +): DWORD {.winapi, stdcall, dynlib: "dhcpcsvc", importc.} + +proc DhcpRemoveDNSRegistrations*(): DWORD {. + winapi, stdcall, dynlib: "dhcpcsvc", importc +.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/dwmapi.nim --- a/semicongine/thirdparty/winim/winim/inc/dwmapi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/dwmapi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -25,6 +25,7 @@ fEnable*: BOOL hRgnBlur*: HRGN fTransitionOnMaximized*: BOOL + PDWM_BLURBEHIND* = ptr DWM_BLURBEHIND PHTHUMBNAIL* = ptr HTHUMBNAIL DWM_THUMBNAIL_PROPERTIES* {.pure.} = object @@ -34,7 +35,9 @@ opacity*: BYTE fVisible*: BOOL fSourceClientAreaOnly*: BOOL + PDWM_THUMBNAIL_PROPERTIES* = ptr DWM_THUMBNAIL_PROPERTIES + const DWM_BB_ENABLE* = 0x00000001 DWM_BB_BLURREGION* = 0x00000002 @@ -116,6 +119,7 @@ UNSIGNED_RATIO* {.pure.} = object uiNumerator*: UINT32 uiDenominator*: UINT32 + DWM_TIMING_INFO* {.pure.} = object cbSize*: UINT32 rateRefresh*: UNSIGNED_RATIO @@ -157,6 +161,7 @@ cPixelsReceived*: ULONGLONG cPixelsDrawn*: ULONGLONG cBuffersEmpty*: DWM_FRAME_COUNT + DWM_PRESENT_PARAMETERS* {.pure.} = object cbSize*: UINT32 fQueue*: BOOL @@ -166,6 +171,7 @@ rateSource*: UNSIGNED_RATIO cRefreshesPerFrame*: UINT eSampling*: DWM_SOURCE_FRAME_SAMPLING + MIL_MATRIX3X2D* {.pure.} = object S_11*: DOUBLE S_12*: DOUBLE @@ -173,34 +179,124 @@ S_22*: DOUBLE DX*: DOUBLE DY*: DOUBLE -proc DwmDefWindowProc*(hWnd: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): BOOL {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmEnableBlurBehindWindow*(hWnd: HWND, pBlurBehind: ptr DWM_BLURBEHIND): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmEnableComposition*(uCompositionAction: UINT): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmEnableMMCSS*(fEnableMMCSS: BOOL): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmExtendFrameIntoClientArea*(hWnd: HWND, pMarInset: ptr MARGINS): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetColorizationColor*(pcrColorization: ptr DWORD, pfOpaqueBlend: ptr BOOL): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetCompositionTimingInfo*(hwnd: HWND, pTimingInfo: ptr DWM_TIMING_INFO): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetWindowAttribute*(hwnd: HWND, dwAttribute: DWORD, pvAttribute: PVOID, cbAttribute: DWORD): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmIsCompositionEnabled*(pfEnabled: ptr BOOL): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmModifyPreviousDxFrameDuration*(hwnd: HWND, cRefreshes: INT, fRelative: BOOL): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmQueryThumbnailSourceSize*(hThumbnail: HTHUMBNAIL, pSize: PSIZE): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmRegisterThumbnail*(hwndDestination: HWND, hwndSource: HWND, phThumbnailId: PHTHUMBNAIL): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmSetDxFrameDuration*(hwnd: HWND, cRefreshes: INT): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmSetPresentParameters*(hwnd: HWND, pPresentParams: ptr DWM_PRESENT_PARAMETERS): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmSetWindowAttribute*(hwnd: HWND, dwAttribute: DWORD, pvAttribute: LPCVOID, cbAttribute: DWORD): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmUnregisterThumbnail*(hThumbnailId: HTHUMBNAIL): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmUpdateThumbnailProperties*(hThumbnailId: HTHUMBNAIL, ptnProperties: ptr DWM_THUMBNAIL_PROPERTIES): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmSetIconicThumbnail*(hwnd: HWND, hbmp: HBITMAP, dwSITFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmSetIconicLivePreviewBitmap*(hwnd: HWND, hbmp: HBITMAP, pptClient: ptr POINT, dwSITFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmInvalidateIconicBitmaps*(hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmAttachMilContent*(hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmDetachMilContent*(hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmDefWindowProc*( + hWnd: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT +): BOOL {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmEnableBlurBehindWindow*( + hWnd: HWND, pBlurBehind: ptr DWM_BLURBEHIND +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmEnableComposition*( + uCompositionAction: UINT +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmEnableMMCSS*( + fEnableMMCSS: BOOL +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmExtendFrameIntoClientArea*( + hWnd: HWND, pMarInset: ptr MARGINS +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmGetColorizationColor*( + pcrColorization: ptr DWORD, pfOpaqueBlend: ptr BOOL +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmGetCompositionTimingInfo*( + hwnd: HWND, pTimingInfo: ptr DWM_TIMING_INFO +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmGetWindowAttribute*( + hwnd: HWND, dwAttribute: DWORD, pvAttribute: PVOID, cbAttribute: DWORD +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmIsCompositionEnabled*( + pfEnabled: ptr BOOL +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmModifyPreviousDxFrameDuration*( + hwnd: HWND, cRefreshes: INT, fRelative: BOOL +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmQueryThumbnailSourceSize*( + hThumbnail: HTHUMBNAIL, pSize: PSIZE +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmRegisterThumbnail*( + hwndDestination: HWND, hwndSource: HWND, phThumbnailId: PHTHUMBNAIL +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmSetDxFrameDuration*( + hwnd: HWND, cRefreshes: INT +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmSetPresentParameters*( + hwnd: HWND, pPresentParams: ptr DWM_PRESENT_PARAMETERS +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmSetWindowAttribute*( + hwnd: HWND, dwAttribute: DWORD, pvAttribute: LPCVOID, cbAttribute: DWORD +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmUnregisterThumbnail*( + hThumbnailId: HTHUMBNAIL +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmUpdateThumbnailProperties*( + hThumbnailId: HTHUMBNAIL, ptnProperties: ptr DWM_THUMBNAIL_PROPERTIES +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmSetIconicThumbnail*( + hwnd: HWND, hbmp: HBITMAP, dwSITFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmSetIconicLivePreviewBitmap*( + hwnd: HWND, hbmp: HBITMAP, pptClient: ptr POINT, dwSITFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmInvalidateIconicBitmaps*( + hwnd: HWND +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmAttachMilContent*( + hwnd: HWND +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmDetachMilContent*( + hwnd: HWND +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + proc DwmFlush*(): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetGraphicsStreamTransformHint*(uIndex: UINT, pTransform: ptr MIL_MATRIX3X2D): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetGraphicsStreamClient*(uIndex: UINT, pClientUuid: ptr GUID): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetTransportAttributes*(pfIsRemoting: ptr BOOL, pfIsConnected: ptr BOOL, pDwGeneration: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmTransitionOwnedWindow*(hwnd: HWND, target: DWMTRANSITION_OWNEDWINDOW_TARGET): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmRenderGesture*(gt: GESTURE_TYPE, cContacts: UINT, pdwPointerID: ptr DWORD, pPoints: ptr POINT): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmTetherContact*(dwPointerID: DWORD, fEnable: BOOL, ptTether: POINT): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmShowContact*(dwPointerID: DWORD, eShowContact: DWM_SHOWCONTACT_ENUM): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} -proc DwmGetUnmetTabRequirements*(appWindow: HWND, value: ptr DWM_TAB_WINDOW_REQUIREMENTS): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} +proc DwmGetGraphicsStreamTransformHint*( + uIndex: UINT, pTransform: ptr MIL_MATRIX3X2D +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmGetGraphicsStreamClient*( + uIndex: UINT, pClientUuid: ptr GUID +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmGetTransportAttributes*( + pfIsRemoting: ptr BOOL, pfIsConnected: ptr BOOL, pDwGeneration: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmTransitionOwnedWindow*( + hwnd: HWND, target: DWMTRANSITION_OWNEDWINDOW_TARGET +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmRenderGesture*( + gt: GESTURE_TYPE, cContacts: UINT, pdwPointerID: ptr DWORD, pPoints: ptr POINT +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmTetherContact*( + dwPointerID: DWORD, fEnable: BOOL, ptTether: POINT +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmShowContact*( + dwPointerID: DWORD, eShowContact: DWM_SHOWCONTACT_ENUM +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} + +proc DwmGetUnmetTabRequirements*( + appWindow: HWND, value: ptr DWM_TAB_WINDOW_REQUIREMENTS +): HRESULT {.winapi, stdcall, dynlib: "dwmapi", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/gdiplus.nim --- a/semicongine/thirdparty/winim/winim/inc/gdiplus.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/gdiplus.nim Thu Aug 22 18:32:21 2024 +0700 @@ -105,9 +105,11 @@ nPalEntries*: DWORD szlDevice*: SIZEL szlMillimeters*: SIZEL + LPENHMETAHEADER3* = ptr ENHMETAHEADER3 PixelFormat* = INT ColorChannelLUT* = array[256, BYTE] + const brushTypeSolidColor* = 0 brushTypeHatchFill* = 1 @@ -157,7 +159,9 @@ driverStringOptionsRealizedAdvance* = 4 driverStringOptionsLimitSubpixel* = 8 GDIP_EMFPLUS_RECORD_BASE* = 0x4000 -template GDIP_WMF_RECORD_TO_EMFPLUS*(meta: untyped): untyped = meta or 0x00010000 +template GDIP_WMF_RECORD_TO_EMFPLUS*(meta: untyped): untyped = + meta or 0x00010000 + const wmfRecordTypeSetBkColor* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKCOLOR) wmfRecordTypeSetBkMode* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETBKMODE) @@ -168,7 +172,8 @@ wmfRecordTypeSetStretchBltMode* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETSTRETCHBLTMODE) wmfRecordTypeSetTextCharExtra* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCHAREXTRA) wmfRecordTypeSetTextColor* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTCOLOR) - wmfRecordTypeSetTextJustification* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION) + wmfRecordTypeSetTextJustification* = + GDIP_WMF_RECORD_TO_EMFPLUS(META_SETTEXTJUSTIFICATION) wmfRecordTypeSetWindowOrg* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWORG) wmfRecordTypeSetWindowExt* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETWINDOWEXT) wmfRecordTypeSetViewportOrg* = GDIP_WMF_RECORD_TO_EMFPLUS(META_SETVIEWPORTORG) @@ -218,7 +223,8 @@ wmfRecordTypeResizePalette* = GDIP_WMF_RECORD_TO_EMFPLUS(META_RESIZEPALETTE) wmfRecordTypeDIBBitBlt* = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBBITBLT) wmfRecordTypeDIBStretchBlt* = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBSTRETCHBLT) - wmfRecordTypeDIBCreatePatternBrush* = GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH) + wmfRecordTypeDIBCreatePatternBrush* = + GDIP_WMF_RECORD_TO_EMFPLUS(META_DIBCREATEPATTERNBRUSH) wmfRecordTypeStretchDIB* = GDIP_WMF_RECORD_TO_EMFPLUS(META_STRETCHDIB) wmfRecordTypeExtFloodFill* = GDIP_WMF_RECORD_TO_EMFPLUS(META_EXTFLOODFILL) wmfRecordTypeSetLayout* = GDIP_WMF_RECORD_TO_EMFPLUS(0x0149) @@ -234,7 +240,8 @@ wmfRecordTypeCreatePatternBrush* = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPATTERNBRUSH) wmfRecordTypeCreatePenIndirect* = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEPENINDIRECT) wmfRecordTypeCreateFontIndirect* = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEFONTINDIRECT) - wmfRecordTypeCreateBrushIndirect* = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT) + wmfRecordTypeCreateBrushIndirect* = + GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEBRUSHINDIRECT) wmfRecordTypeCreateBitmapIndirect* = GDIP_WMF_RECORD_TO_EMFPLUS(0x02FD) wmfRecordTypeCreateBitmap* = GDIP_WMF_RECORD_TO_EMFPLUS(0x06FE) wmfRecordTypeCreateRegion* = GDIP_WMF_RECORD_TO_EMFPLUS(META_CREATEREGION) @@ -363,67 +370,67 @@ emfRecordTypeMax* = 122 emfRecordTypeMin* = 1 emfPlusRecordTypeInvalid* = GDIP_EMFPLUS_RECORD_BASE - emfPlusRecordTypeHeader* = GDIP_EMFPLUS_RECORD_BASE+1 - emfPlusRecordTypeEndOfFile* = GDIP_EMFPLUS_RECORD_BASE+2 - emfPlusRecordTypeComment* = GDIP_EMFPLUS_RECORD_BASE+3 - emfPlusRecordTypeGetDC* = GDIP_EMFPLUS_RECORD_BASE+4 - emfPlusRecordTypeMultiFormatStart* = GDIP_EMFPLUS_RECORD_BASE+5 - emfPlusRecordTypeMultiFormatSection* = GDIP_EMFPLUS_RECORD_BASE+6 - emfPlusRecordTypeMultiFormatEnd* = GDIP_EMFPLUS_RECORD_BASE+7 - emfPlusRecordTypeObject* = GDIP_EMFPLUS_RECORD_BASE+8 - emfPlusRecordTypeClear* = GDIP_EMFPLUS_RECORD_BASE+9 - emfPlusRecordTypeFillRects* = GDIP_EMFPLUS_RECORD_BASE+10 - emfPlusRecordTypeDrawRects* = GDIP_EMFPLUS_RECORD_BASE+11 - emfPlusRecordTypeFillPolygon* = GDIP_EMFPLUS_RECORD_BASE+12 - emfPlusRecordTypeDrawLines* = GDIP_EMFPLUS_RECORD_BASE+13 - emfPlusRecordTypeFillEllipse* = GDIP_EMFPLUS_RECORD_BASE+14 - emfPlusRecordTypeDrawEllipse* = GDIP_EMFPLUS_RECORD_BASE+15 - emfPlusRecordTypeFillPie* = GDIP_EMFPLUS_RECORD_BASE+16 - emfPlusRecordTypeDrawPie* = GDIP_EMFPLUS_RECORD_BASE+17 - emfPlusRecordTypeDrawArc* = GDIP_EMFPLUS_RECORD_BASE+18 - emfPlusRecordTypeFillRegion* = GDIP_EMFPLUS_RECORD_BASE+19 - emfPlusRecordTypeFillPath* = GDIP_EMFPLUS_RECORD_BASE+20 - emfPlusRecordTypeDrawPath* = GDIP_EMFPLUS_RECORD_BASE+21 - emfPlusRecordTypeFillClosedCurve* = GDIP_EMFPLUS_RECORD_BASE+22 - emfPlusRecordTypeDrawClosedCurve* = GDIP_EMFPLUS_RECORD_BASE+23 - emfPlusRecordTypeDrawCurve* = GDIP_EMFPLUS_RECORD_BASE+24 - emfPlusRecordTypeDrawBeziers* = GDIP_EMFPLUS_RECORD_BASE+25 - emfPlusRecordTypeDrawImage* = GDIP_EMFPLUS_RECORD_BASE+26 - emfPlusRecordTypeDrawImagePoints* = GDIP_EMFPLUS_RECORD_BASE+27 - emfPlusRecordTypeDrawString* = GDIP_EMFPLUS_RECORD_BASE+28 - emfPlusRecordTypeSetRenderingOrigin* = GDIP_EMFPLUS_RECORD_BASE+29 - emfPlusRecordTypeSetAntiAliasMode* = GDIP_EMFPLUS_RECORD_BASE+30 - emfPlusRecordTypeSetTextRenderingHint* = GDIP_EMFPLUS_RECORD_BASE+31 - emfPlusRecordTypeSetTextContrast* = GDIP_EMFPLUS_RECORD_BASE+32 - emfPlusRecordTypeSetGammaValue* = GDIP_EMFPLUS_RECORD_BASE+33 - emfPlusRecordTypeSetInterpolationMode* = GDIP_EMFPLUS_RECORD_BASE+34 - emfPlusRecordTypeSetPixelOffsetMode* = GDIP_EMFPLUS_RECORD_BASE+35 - emfPlusRecordTypeSetCompositingMode* = GDIP_EMFPLUS_RECORD_BASE+36 - emfPlusRecordTypeSetCompositingQuality* = GDIP_EMFPLUS_RECORD_BASE+37 - emfPlusRecordTypeSave* = GDIP_EMFPLUS_RECORD_BASE+38 - emfPlusRecordTypeRestore* = GDIP_EMFPLUS_RECORD_BASE+39 - emfPlusRecordTypeBeginContainer* = GDIP_EMFPLUS_RECORD_BASE+40 - emfPlusRecordTypeBeginContainerNoParams* = GDIP_EMFPLUS_RECORD_BASE+41 - emfPlusRecordTypeEndContainer* = GDIP_EMFPLUS_RECORD_BASE+42 - emfPlusRecordTypeSetWorldTransform* = GDIP_EMFPLUS_RECORD_BASE+43 - emfPlusRecordTypeResetWorldTransform* = GDIP_EMFPLUS_RECORD_BASE+44 - emfPlusRecordTypeMultiplyWorldTransform* = GDIP_EMFPLUS_RECORD_BASE+45 - emfPlusRecordTypeTranslateWorldTransform* = GDIP_EMFPLUS_RECORD_BASE+46 - emfPlusRecordTypeScaleWorldTransform* = GDIP_EMFPLUS_RECORD_BASE+47 - emfPlusRecordTypeRotateWorldTransform* = GDIP_EMFPLUS_RECORD_BASE+48 - emfPlusRecordTypeSetPageTransform* = GDIP_EMFPLUS_RECORD_BASE+49 - emfPlusRecordTypeResetClip* = GDIP_EMFPLUS_RECORD_BASE+50 - emfPlusRecordTypeSetClipRect* = GDIP_EMFPLUS_RECORD_BASE+51 - emfPlusRecordTypeSetClipPath* = GDIP_EMFPLUS_RECORD_BASE+52 - emfPlusRecordTypeSetClipRegion* = GDIP_EMFPLUS_RECORD_BASE+53 - emfPlusRecordTypeOffsetClip* = GDIP_EMFPLUS_RECORD_BASE+54 - emfPlusRecordTypeDrawDriverString* = GDIP_EMFPLUS_RECORD_BASE+55 - emfPlusRecordTypeStrokeFillPath* = GDIP_EMFPLUS_RECORD_BASE+56 - emfPlusRecordTypeSerializableObject* = GDIP_EMFPLUS_RECORD_BASE+57 - emfPlusRecordTypeSetTSGraphics* = GDIP_EMFPLUS_RECORD_BASE+58 - emfPlusRecordTypeSetTSClip* = GDIP_EMFPLUS_RECORD_BASE+59 - emfPlusRecordTotal* = GDIP_EMFPLUS_RECORD_BASE+60 - emfPlusRecordTypeMax* = emfPlusRecordTotal-1 + emfPlusRecordTypeHeader* = GDIP_EMFPLUS_RECORD_BASE + 1 + emfPlusRecordTypeEndOfFile* = GDIP_EMFPLUS_RECORD_BASE + 2 + emfPlusRecordTypeComment* = GDIP_EMFPLUS_RECORD_BASE + 3 + emfPlusRecordTypeGetDC* = GDIP_EMFPLUS_RECORD_BASE + 4 + emfPlusRecordTypeMultiFormatStart* = GDIP_EMFPLUS_RECORD_BASE + 5 + emfPlusRecordTypeMultiFormatSection* = GDIP_EMFPLUS_RECORD_BASE + 6 + emfPlusRecordTypeMultiFormatEnd* = GDIP_EMFPLUS_RECORD_BASE + 7 + emfPlusRecordTypeObject* = GDIP_EMFPLUS_RECORD_BASE + 8 + emfPlusRecordTypeClear* = GDIP_EMFPLUS_RECORD_BASE + 9 + emfPlusRecordTypeFillRects* = GDIP_EMFPLUS_RECORD_BASE + 10 + emfPlusRecordTypeDrawRects* = GDIP_EMFPLUS_RECORD_BASE + 11 + emfPlusRecordTypeFillPolygon* = GDIP_EMFPLUS_RECORD_BASE + 12 + emfPlusRecordTypeDrawLines* = GDIP_EMFPLUS_RECORD_BASE + 13 + emfPlusRecordTypeFillEllipse* = GDIP_EMFPLUS_RECORD_BASE + 14 + emfPlusRecordTypeDrawEllipse* = GDIP_EMFPLUS_RECORD_BASE + 15 + emfPlusRecordTypeFillPie* = GDIP_EMFPLUS_RECORD_BASE + 16 + emfPlusRecordTypeDrawPie* = GDIP_EMFPLUS_RECORD_BASE + 17 + emfPlusRecordTypeDrawArc* = GDIP_EMFPLUS_RECORD_BASE + 18 + emfPlusRecordTypeFillRegion* = GDIP_EMFPLUS_RECORD_BASE + 19 + emfPlusRecordTypeFillPath* = GDIP_EMFPLUS_RECORD_BASE + 20 + emfPlusRecordTypeDrawPath* = GDIP_EMFPLUS_RECORD_BASE + 21 + emfPlusRecordTypeFillClosedCurve* = GDIP_EMFPLUS_RECORD_BASE + 22 + emfPlusRecordTypeDrawClosedCurve* = GDIP_EMFPLUS_RECORD_BASE + 23 + emfPlusRecordTypeDrawCurve* = GDIP_EMFPLUS_RECORD_BASE + 24 + emfPlusRecordTypeDrawBeziers* = GDIP_EMFPLUS_RECORD_BASE + 25 + emfPlusRecordTypeDrawImage* = GDIP_EMFPLUS_RECORD_BASE + 26 + emfPlusRecordTypeDrawImagePoints* = GDIP_EMFPLUS_RECORD_BASE + 27 + emfPlusRecordTypeDrawString* = GDIP_EMFPLUS_RECORD_BASE + 28 + emfPlusRecordTypeSetRenderingOrigin* = GDIP_EMFPLUS_RECORD_BASE + 29 + emfPlusRecordTypeSetAntiAliasMode* = GDIP_EMFPLUS_RECORD_BASE + 30 + emfPlusRecordTypeSetTextRenderingHint* = GDIP_EMFPLUS_RECORD_BASE + 31 + emfPlusRecordTypeSetTextContrast* = GDIP_EMFPLUS_RECORD_BASE + 32 + emfPlusRecordTypeSetGammaValue* = GDIP_EMFPLUS_RECORD_BASE + 33 + emfPlusRecordTypeSetInterpolationMode* = GDIP_EMFPLUS_RECORD_BASE + 34 + emfPlusRecordTypeSetPixelOffsetMode* = GDIP_EMFPLUS_RECORD_BASE + 35 + emfPlusRecordTypeSetCompositingMode* = GDIP_EMFPLUS_RECORD_BASE + 36 + emfPlusRecordTypeSetCompositingQuality* = GDIP_EMFPLUS_RECORD_BASE + 37 + emfPlusRecordTypeSave* = GDIP_EMFPLUS_RECORD_BASE + 38 + emfPlusRecordTypeRestore* = GDIP_EMFPLUS_RECORD_BASE + 39 + emfPlusRecordTypeBeginContainer* = GDIP_EMFPLUS_RECORD_BASE + 40 + emfPlusRecordTypeBeginContainerNoParams* = GDIP_EMFPLUS_RECORD_BASE + 41 + emfPlusRecordTypeEndContainer* = GDIP_EMFPLUS_RECORD_BASE + 42 + emfPlusRecordTypeSetWorldTransform* = GDIP_EMFPLUS_RECORD_BASE + 43 + emfPlusRecordTypeResetWorldTransform* = GDIP_EMFPLUS_RECORD_BASE + 44 + emfPlusRecordTypeMultiplyWorldTransform* = GDIP_EMFPLUS_RECORD_BASE + 45 + emfPlusRecordTypeTranslateWorldTransform* = GDIP_EMFPLUS_RECORD_BASE + 46 + emfPlusRecordTypeScaleWorldTransform* = GDIP_EMFPLUS_RECORD_BASE + 47 + emfPlusRecordTypeRotateWorldTransform* = GDIP_EMFPLUS_RECORD_BASE + 48 + emfPlusRecordTypeSetPageTransform* = GDIP_EMFPLUS_RECORD_BASE + 49 + emfPlusRecordTypeResetClip* = GDIP_EMFPLUS_RECORD_BASE + 50 + emfPlusRecordTypeSetClipRect* = GDIP_EMFPLUS_RECORD_BASE + 51 + emfPlusRecordTypeSetClipPath* = GDIP_EMFPLUS_RECORD_BASE + 52 + emfPlusRecordTypeSetClipRegion* = GDIP_EMFPLUS_RECORD_BASE + 53 + emfPlusRecordTypeOffsetClip* = GDIP_EMFPLUS_RECORD_BASE + 54 + emfPlusRecordTypeDrawDriverString* = GDIP_EMFPLUS_RECORD_BASE + 55 + emfPlusRecordTypeStrokeFillPath* = GDIP_EMFPLUS_RECORD_BASE + 56 + emfPlusRecordTypeSerializableObject* = GDIP_EMFPLUS_RECORD_BASE + 57 + emfPlusRecordTypeSetTSGraphics* = GDIP_EMFPLUS_RECORD_BASE + 58 + emfPlusRecordTypeSetTSClip* = GDIP_EMFPLUS_RECORD_BASE + 59 + emfPlusRecordTotal* = GDIP_EMFPLUS_RECORD_BASE + 60 + emfPlusRecordTypeMax* = emfPlusRecordTotal - 1 emfPlusRecordTypeMin* = emfPlusRecordTypeHeader emfToWmfBitsFlagsDefault* = 0 emfToWmfBitsFlagsEmbedEmf* = 1 @@ -531,7 +538,7 @@ hatchStyleSolidDiamond* = 52 hatchStyleTotal* = 53 hatchStyleMin* = hatchStyleHorizontal - hatchStyleMax* = hatchStyleTotal-1 + hatchStyleMax* = hatchStyleTotal - 1 hotkeyPrefixNone* = 0 hotkeyPrefixShow* = 1 hotkeyPrefixHide* = 2 @@ -981,11 +988,17 @@ pixelFormat16bppARGB1555* = INT(7 or (16 shl 8) or pixelFormatAlpha or pixelFormatGDI) pixelFormat24bppRGB* = INT(8 or (24 shl 8) or pixelFormatGDI) pixelFormat32bppRGB* = INT(9 or (32 shl 8) or pixelFormatGDI) - pixelFormat32bppARGB* = INT(10 or (32 shl 8) or pixelFormatAlpha or pixelFormatGDI or pixelFormatCanonical) - pixelFormat32bppPARGB* = INT(11 or (32 shl 8) or pixelFormatAlpha or pixelFormatPAlpha or pixelFormatGDI) + pixelFormat32bppARGB* = + INT(10 or (32 shl 8) or pixelFormatAlpha or pixelFormatGDI or pixelFormatCanonical) + pixelFormat32bppPARGB* = + INT(11 or (32 shl 8) or pixelFormatAlpha or pixelFormatPAlpha or pixelFormatGDI) pixelFormat48bppRGB* = INT(12 or (48 shl 8) or pixelFormatExtended) - pixelFormat64bppARGB* = INT(13 or (64 shl 8) or pixelFormatAlpha or pixelFormatCanonical or pixelFormatExtended) - pixelFormat64bppPARGB* = INT(14 or (64 shl 8) or pixelFormatAlpha or pixelFormatPAlpha or pixelFormatExtended) + pixelFormat64bppARGB* = INT( + 13 or (64 shl 8) or pixelFormatAlpha or pixelFormatCanonical or pixelFormatExtended + ) + pixelFormat64bppPARGB* = INT( + 14 or (64 shl 8) or pixelFormatAlpha or pixelFormatPAlpha or pixelFormatExtended + ) pixelFormatMax* = INT 15 paletteFlagsHasAlpha* = 1 paletteFlagsGrayScale* = 2 @@ -1035,72 +1048,146 @@ curveChannelRed* = 1 curveChannelGreen* = 2 curveChannelBlue* = 3 - EncoderChrominanceTable* = DEFINE_GUID(0xF2E455DC'i32, 0x09B3, 0x4316, [0x82'u8,0x60,0x67,0x6A,0xDA,0x32,0x48,0x1C]) - EncoderColorDepth* = DEFINE_GUID(0x66087055'i32, 0xAD66, 0x4C7C, [0x9A'u8,0x18,0x38,0xA2,0x31,0x0B,0x83,0x37]) - EncoderCompression* = DEFINE_GUID(0xE09D739D'i32, 0xCCD4, 0x44EE, [0x8E'u8,0xBA,0x3F,0xBF,0x8B,0xE4,0xFC,0x58]) - EncoderLuminanceTable* = DEFINE_GUID(0xEDB33BCE'i32, 0x0266, 0x4A77, [0xB9'u8,0x04,0x27,0x21,0x60,0x99,0xE7,0x17]) - EncoderQuality* = DEFINE_GUID(0x1D5BE4B5'i32, 0xFA4A, 0x452D, [0x9C'u8,0xDD,0x5D,0xB3,0x51,0x05,0xE7,0xEB]) - EncoderRenderMethod* = DEFINE_GUID(0x6D42C53A'i32, 0x229A, 0x4825, [0x8B'u8,0xB7,0x5C,0x99,0xE2,0xB9,0xA8,0xB8]) - EncoderSaveFlag* = DEFINE_GUID(0x292266FC'i32, 0xAC40, 0x47BF, [0x8C'u8,0xFC,0xA8,0x5B,0x89,0xA6,0x55,0xDE]) - EncoderScanMethod* = DEFINE_GUID(0x3A4E2661'i32, 0x3109, 0x4E56, [0x85'u8,0x36,0x42,0xC1,0x56,0xE7,0xDC,0xFA]) - EncoderTransformation* = DEFINE_GUID(0x8D0EB2D1'i32, 0xA58E, 0x4EA8, [0xAA'u8,0x14,0x10,0x80,0x74,0xB7,0xB6,0xF9]) - EncoderVersion* = DEFINE_GUID(0x24D18C76'i32, 0x814A, 0x41A4, [0xBF'u8,0x53,0x1C,0x21,0x9C,0xCC,0xF7,0x97]) - ImageFormatBMP* = DEFINE_GUID(0xB96B3CAB'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatEMF* = DEFINE_GUID(0xB96B3CAC'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatGIF* = DEFINE_GUID(0xB96B3CB0'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatIcon* = DEFINE_GUID(0xB96B3CB5'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatJPEG* = DEFINE_GUID(0xB96B3CAE'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatMemoryBMP* = DEFINE_GUID(0xB96B3CAA'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatPNG* = DEFINE_GUID(0xB96B3CAF'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatTIFF* = DEFINE_GUID(0xB96B3CB1'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - ImageFormatWMF* = DEFINE_GUID(0xB96B3CAD'i32, 0x0728, 0x11D3, [0x9D'u8,0x7B,0x00,0x00,0xF8,0x1E,0xF3,0x2E]) - FrameDimensionPage* = DEFINE_GUID(0x7462DC86'i32, 0x6180, 0x4C7E, [0x8E'u8,0x3F,0xEE,0x73,0x33,0xA7,0xA4,0x83]) - FrameDimensionTime* = DEFINE_GUID(0x6AEDBD6D'i32, 0x3FB5, 0x418A, [0x83'u8,0xA6,0x7F,0x45,0x22,0x9D,0xC8,0x72]) - BlurEffectGuid* = DEFINE_GUID(0x633C80A4'i32, 0x1843, 0x482B, [0x9E'u8,0xF2,0xBE,0x28,0x34,0xC5,0xFD,0xD4]) - BrightnessContrastEffectGuid* = DEFINE_GUID(0xD3A1DBE1'i32, 0x8EC4, 0x4C17, [0x9F'u8,0x4C,0xEA,0x97,0xAD,0x1C,0x34,0x3D]) - ColorBalanceEffectGuid* = DEFINE_GUID(0x537E597D'i32, 0x251E, 0x48DA, [0x96'u8,0x64,0x29,0xCA,0x49,0x6B,0x70,0xF8]) - ColorCurveEffectGuid* = DEFINE_GUID(0xDD6A0022'i32, 0x58E4, 0x4A67, [0x9D'u8,0x9B,0xD4,0x8E,0xB8,0x81,0xA5,0x3D]) - ColorLookupTableEffectGuid* = DEFINE_GUID(0xA7CE72A9'i32, 0x0F7F, 0x40D7, [0xB3'u8,0xCC,0xD0,0xC0,0x2D,0x5C,0x32,0x12]) - ColorMatrixEffectGuid* = DEFINE_GUID(0x718F2615'i32, 0x7933, 0x40E3, [0xA5'u8,0x11,0x5F,0x68,0xFE,0x14,0xDD,0x74]) - HueSaturationLightnessEffectGuid* = DEFINE_GUID(0x8B2DD6C3'i32, 0xEB07, 0x4D87, [0xA5'u8,0xF0,0x71,0x08,0xE2,0x6A,0x9C,0x5F]) - LevelsEffectGuid* = DEFINE_GUID(0x99C354EC'i32, 0x2A31, 0x4F3A, [0x8C'u8,0x34,0x17,0xA8,0x03,0xB3,0x3A,0x25]) - RedEyeCorrectionEffectGuid* = DEFINE_GUID(0x74D29D05'i32, 0x69A4, 0x4266, [0x95'u8,0x49,0x3C,0xC5,0x28,0x36,0xB6,0x32]) - SharpenEffectGuid* = DEFINE_GUID(0x63CBF3EE'i32, 0xC526, 0x402C, [0x8F'u8,0x71,0x62,0xC5,0x40,0xBF,0x51,0x42]) - TintEffectGuid* = DEFINE_GUID(0x1077AF00'i32, 0x2848, 0x4441, [0x94'u8,0x89,0x44,0xAD,0x4C,0x2D,0x7A,0x2C]) + EncoderChrominanceTable* = DEFINE_GUID( + 0xF2E455DC'i32, 0x09B3, 0x4316, [0x82'u8, 0x60, 0x67, 0x6A, 0xDA, 0x32, 0x48, 0x1C] + ) + EncoderColorDepth* = DEFINE_GUID( + 0x66087055'i32, 0xAD66, 0x4C7C, [0x9A'u8, 0x18, 0x38, 0xA2, 0x31, 0x0B, 0x83, 0x37] + ) + EncoderCompression* = DEFINE_GUID( + 0xE09D739D'i32, 0xCCD4, 0x44EE, [0x8E'u8, 0xBA, 0x3F, 0xBF, 0x8B, 0xE4, 0xFC, 0x58] + ) + EncoderLuminanceTable* = DEFINE_GUID( + 0xEDB33BCE'i32, 0x0266, 0x4A77, [0xB9'u8, 0x04, 0x27, 0x21, 0x60, 0x99, 0xE7, 0x17] + ) + EncoderQuality* = DEFINE_GUID( + 0x1D5BE4B5'i32, 0xFA4A, 0x452D, [0x9C'u8, 0xDD, 0x5D, 0xB3, 0x51, 0x05, 0xE7, 0xEB] + ) + EncoderRenderMethod* = DEFINE_GUID( + 0x6D42C53A'i32, 0x229A, 0x4825, [0x8B'u8, 0xB7, 0x5C, 0x99, 0xE2, 0xB9, 0xA8, 0xB8] + ) + EncoderSaveFlag* = DEFINE_GUID( + 0x292266FC'i32, 0xAC40, 0x47BF, [0x8C'u8, 0xFC, 0xA8, 0x5B, 0x89, 0xA6, 0x55, 0xDE] + ) + EncoderScanMethod* = DEFINE_GUID( + 0x3A4E2661'i32, 0x3109, 0x4E56, [0x85'u8, 0x36, 0x42, 0xC1, 0x56, 0xE7, 0xDC, 0xFA] + ) + EncoderTransformation* = DEFINE_GUID( + 0x8D0EB2D1'i32, 0xA58E, 0x4EA8, [0xAA'u8, 0x14, 0x10, 0x80, 0x74, 0xB7, 0xB6, 0xF9] + ) + EncoderVersion* = DEFINE_GUID( + 0x24D18C76'i32, 0x814A, 0x41A4, [0xBF'u8, 0x53, 0x1C, 0x21, 0x9C, 0xCC, 0xF7, 0x97] + ) + ImageFormatBMP* = DEFINE_GUID( + 0xB96B3CAB'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatEMF* = DEFINE_GUID( + 0xB96B3CAC'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatGIF* = DEFINE_GUID( + 0xB96B3CB0'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatIcon* = DEFINE_GUID( + 0xB96B3CB5'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatJPEG* = DEFINE_GUID( + 0xB96B3CAE'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatMemoryBMP* = DEFINE_GUID( + 0xB96B3CAA'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatPNG* = DEFINE_GUID( + 0xB96B3CAF'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatTIFF* = DEFINE_GUID( + 0xB96B3CB1'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + ImageFormatWMF* = DEFINE_GUID( + 0xB96B3CAD'i32, 0x0728, 0x11D3, [0x9D'u8, 0x7B, 0x00, 0x00, 0xF8, 0x1E, 0xF3, 0x2E] + ) + FrameDimensionPage* = DEFINE_GUID( + 0x7462DC86'i32, 0x6180, 0x4C7E, [0x8E'u8, 0x3F, 0xEE, 0x73, 0x33, 0xA7, 0xA4, 0x83] + ) + FrameDimensionTime* = DEFINE_GUID( + 0x6AEDBD6D'i32, 0x3FB5, 0x418A, [0x83'u8, 0xA6, 0x7F, 0x45, 0x22, 0x9D, 0xC8, 0x72] + ) + BlurEffectGuid* = DEFINE_GUID( + 0x633C80A4'i32, 0x1843, 0x482B, [0x9E'u8, 0xF2, 0xBE, 0x28, 0x34, 0xC5, 0xFD, 0xD4] + ) + BrightnessContrastEffectGuid* = DEFINE_GUID( + 0xD3A1DBE1'i32, 0x8EC4, 0x4C17, [0x9F'u8, 0x4C, 0xEA, 0x97, 0xAD, 0x1C, 0x34, 0x3D] + ) + ColorBalanceEffectGuid* = DEFINE_GUID( + 0x537E597D'i32, 0x251E, 0x48DA, [0x96'u8, 0x64, 0x29, 0xCA, 0x49, 0x6B, 0x70, 0xF8] + ) + ColorCurveEffectGuid* = DEFINE_GUID( + 0xDD6A0022'i32, 0x58E4, 0x4A67, [0x9D'u8, 0x9B, 0xD4, 0x8E, 0xB8, 0x81, 0xA5, 0x3D] + ) + ColorLookupTableEffectGuid* = DEFINE_GUID( + 0xA7CE72A9'i32, 0x0F7F, 0x40D7, [0xB3'u8, 0xCC, 0xD0, 0xC0, 0x2D, 0x5C, 0x32, 0x12] + ) + ColorMatrixEffectGuid* = DEFINE_GUID( + 0x718F2615'i32, 0x7933, 0x40E3, [0xA5'u8, 0x11, 0x5F, 0x68, 0xFE, 0x14, 0xDD, 0x74] + ) + HueSaturationLightnessEffectGuid* = DEFINE_GUID( + 0x8B2DD6C3'i32, 0xEB07, 0x4D87, [0xA5'u8, 0xF0, 0x71, 0x08, 0xE2, 0x6A, 0x9C, 0x5F] + ) + LevelsEffectGuid* = DEFINE_GUID( + 0x99C354EC'i32, 0x2A31, 0x4F3A, [0x8C'u8, 0x34, 0x17, 0xA8, 0x03, 0xB3, 0x3A, 0x25] + ) + RedEyeCorrectionEffectGuid* = DEFINE_GUID( + 0x74D29D05'i32, 0x69A4, 0x4266, [0x95'u8, 0x49, 0x3C, 0xC5, 0x28, 0x36, 0xB6, 0x32] + ) + SharpenEffectGuid* = DEFINE_GUID( + 0x63CBF3EE'i32, 0xC526, 0x402C, [0x8F'u8, 0x71, 0x62, 0xC5, 0x40, 0xBF, 0x51, 0x42] + ) + TintEffectGuid* = DEFINE_GUID( + 0x1077AF00'i32, 0x2848, 0x4441, [0x94'u8, 0x89, 0x44, 0xAD, 0x4C, 0x2D, 0x7A, 0x2C] + ) type - EnumerateMetafileProc* = proc (P1: EmfPlusRecordType, P2: UINT, P3: UINT, P4: ptr BYTE, P5: pointer): BOOL {.stdcall.} - NotificationHookProc* = proc (token: ptr ULONG_PTR): GpStatus {.stdcall.} - NotificationUnhookProc* = proc (token: ULONG_PTR): VOID {.stdcall.} + EnumerateMetafileProc* = proc( + P1: EmfPlusRecordType, P2: UINT, P3: UINT, P4: ptr BYTE, P5: pointer + ): BOOL {.stdcall.} + NotificationHookProc* = proc(token: ptr ULONG_PTR): GpStatus {.stdcall.} + NotificationUnhookProc* = proc(token: ULONG_PTR): VOID {.stdcall.} GpSize* {.pure.} = object Width*: INT Height*: INT + GpSizeF* {.pure.} = object Width*: REAL Height*: REAL + GpPoint* {.pure.} = object X*: INT Y*: INT + GpPointF* {.pure.} = object X*: REAL Y*: REAL + GpRect* {.pure.} = object X*: INT Y*: INT Width*: INT Height*: INT + GpRectF* {.pure.} = object X*: REAL Y*: REAL Width*: REAL Height*: REAL + GdiplusAbort* {.pure.} = object CharacterRange* {.pure.} = object First*: INT Length*: INT + PathData* {.pure.} = object Count*: INT Points*: ptr GpPointF Types*: ptr BYTE + BitmapData* {.pure.} = object Width*: UINT Height*: UINT @@ -1108,14 +1195,17 @@ PixelFormat*: INT Scan0*: pointer Reserved*: UINT_PTR + EncoderParameter* {.pure.} = object Guid*: GUID NumberOfValues*: ULONG Type*: ULONG Value*: pointer + EncoderParameters* {.pure.} = object Count*: UINT Parameter*: array[1, EncoderParameter] + ImageCodecInfo* {.pure.} = object Clsid*: CLSID FormatID*: GUID @@ -1130,6 +1220,7 @@ SigSize*: DWORD SigPattern*: ptr BYTE SigMask*: ptr BYTE + ImageItemData* {.pure.} = object Size*: UINT Position*: UINT @@ -1138,24 +1229,29 @@ Data*: ptr UINT DataSize*: UINT Cookie*: UINT + PropertyItem* {.pure.} = object id*: PROPID length*: ULONG `type`*: WORD value*: pointer + GdiplusStartupInput* {.pure.} = object GdiplusVersion*: UINT32 DebugEventCallback*: DebugEventProc SuppressBackgroundThread*: BOOL SuppressExternalCodecs*: BOOL + GdiplusStartupOutput* {.pure.} = object NotificationHook*: NotificationHookProc NotificationUnhook*: NotificationUnhookProc + PWMFRect16* {.pure.} = object Left*: INT16 Top*: INT16 Right*: INT16 Bottom*: INT16 + WmfPlaceableFileHeader* {.pure.} = object Key*: UINT32 Hmf*: INT16 @@ -1163,9 +1259,11 @@ Inch*: INT16 Reserved*: UINT32 Checksum*: INT16 + MetafileHeader_UNION1* {.pure, union.} = object WmfHeader*: METAHEADER EmfHeader*: ENHMETAHEADER3 + MetafileHeader* {.pure.} = object Type*: MetafileType Size*: UINT @@ -1181,53 +1279,68 @@ EmfPlusHeaderSize*: INT LogicalDpiX*: INT LogicalDpiY*: INT + ColorPalette* {.pure.} = object Flags*: UINT Count*: UINT Entries*: array[1, ARGB] + Color* {.pure.} = object Value*: ARGB + GpColorMap* {.pure.} = object oldColor*: Color newColor*: Color + ColorMatrix* {.pure.} = object m*: array[5, array[5, REAL]] + BlurParams* {.pure.} = object radius*: REAL expandEdge*: BOOL + BrightnessContrastParams* {.pure.} = object brightnessLevel*: INT contrastLevel*: INT + ColorBalanceParams* {.pure.} = object cyanRed*: INT magentaGreen*: INT yellowBlue*: INT + ColorCurveParams* {.pure.} = object adjustment*: CurveAdjustments channel*: CurveChannel adjustValue*: INT + ColorLUTParams* {.pure.} = object lutB*: ColorChannelLUT lutG*: ColorChannelLUT lutR*: ColorChannelLUT lutA*: ColorChannelLUT + HueSaturationLightnessParams* {.pure.} = object hueLevel*: INT saturationLevel*: INT lightnessLevel*: INT + LevelsParams* {.pure.} = object highlight*: INT midtone*: INT shadow*: INT + RedEyeCorrectionParams* {.pure.} = object numberOfAreas*: UINT areas*: ptr RECT + SharpenParams* {.pure.} = object radius*: REAL amount*: REAL + TintParams* {.pure.} = object hue*: INT amount*: INT + CGpEffect* {.pure.} = object GpAdjustableArrowCap* {.pure.} = object GpBitmap* {.pure.} = object @@ -1253,624 +1366,3099 @@ GpSolidFill* {.pure.} = object GpStringFormat* {.pure.} = object GpTexture* {.pure.} = object -proc GdiplusStartup*(token: ptr ULONG_PTR, input: ptr GdiplusStartupInput, output: ptr GdiplusStartupOutput): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdiplusShutdown*(token: ULONG_PTR): VOID {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdiplusNotificationHook*(token: ptr ULONG_PTR): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdiplusNotificationUnhook*(token: ULONG_PTR): VOID {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdiplusStartup*( + token: ptr ULONG_PTR, input: ptr GdiplusStartupInput, output: ptr GdiplusStartupOutput +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdiplusShutdown*( + token: ULONG_PTR +): VOID {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdiplusNotificationHook*( + token: ptr ULONG_PTR +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdiplusNotificationUnhook*( + token: ULONG_PTR +): VOID {.winapi, stdcall, dynlib: "gdiplus", importc.} + proc GdipFree*(`ptr`: pointer): VOID {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateAdjustableArrowCap*(height: REAL, width: REAL, isFilled: BOOL, cap: ptr ptr GpAdjustableArrowCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetAdjustableArrowCapHeight*(cap: ptr GpAdjustableArrowCap, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetAdjustableArrowCapHeight*(cap: ptr GpAdjustableArrowCap, height: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetAdjustableArrowCapWidth*(cap: ptr GpAdjustableArrowCap, width: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetAdjustableArrowCapWidth*(cap: ptr GpAdjustableArrowCap, width: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetAdjustableArrowCapMiddleInset*(cap: ptr GpAdjustableArrowCap, middleInset: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetAdjustableArrowCapMiddleInset*(cap: ptr GpAdjustableArrowCap, middleInset: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetAdjustableArrowCapFillState*(cap: ptr GpAdjustableArrowCap, fillState: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetAdjustableArrowCapFillState*(cap: ptr GpAdjustableArrowCap, fillState: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromStream*(stream: ptr IStream, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromFile*(filename: ptr WCHAR, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromStreamICM*(stream: ptr IStream, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromFileICM*(filename: ptr WCHAR, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromScan0*(width: INT, height: INT, stride: INT, format: PixelFormat, scan0: ptr BYTE, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromGraphics*(width: INT, height: INT, target: ptr GpGraphics, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromGdiDib*(gdiBitmapInfo: ptr BITMAPINFO, gdiBitmapData: pointer, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromHBITMAP*(hbm: HBITMAP, hpal: HPALETTE, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateHBITMAPFromBitmap*(bitmap: ptr GpBitmap, hbmReturn: ptr HBITMAP, background: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromHICON*(hicon: HICON, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateHICONFromBitmap*(bitmap: ptr GpBitmap, hbmReturn: ptr HICON): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateBitmapFromResource*(hInstance: HINSTANCE, lpBitmapName: ptr WCHAR, bitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneBitmapArea*(x: REAL, y: REAL, width: REAL, height: REAL, format: PixelFormat, srcBitmap: ptr GpBitmap, dstBitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneBitmapAreaI*(x: INT, y: INT, width: INT, height: INT, format: PixelFormat, srcBitmap: ptr GpBitmap, dstBitmap: ptr ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapLockBits*(bitmap: ptr GpBitmap, rect: ptr GpRect, flags: UINT, format: PixelFormat, lockedBitmapData: ptr BitmapData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapUnlockBits*(bitmap: ptr GpBitmap, lockedBitmapData: ptr BitmapData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapGetPixel*(bitmap: ptr GpBitmap, x: INT, y: INT, color: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapSetPixel*(bitmap: ptr GpBitmap, x: INT, y: INT, color: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapSetResolution*(bitmap: ptr GpBitmap, xdpi: REAL, ydpi: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapConvertFormat*(pInputBitmap: ptr GpBitmap, format: PixelFormat, dithertype: DitherType, palettetype: PaletteType, palette: ptr ColorPalette, alphaThresholdPercent: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipInitializePalette*(palette: ptr ColorPalette, palettetype: PaletteType, optimalColors: INT, useTransparentColor: BOOL, bitmap: ptr GpBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapApplyEffect*(bitmap: ptr GpBitmap, effect: ptr CGpEffect, roi: ptr RECT, useAuxData: BOOL, auxData: ptr pointer, auxDataSize: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapCreateApplyEffect*(inputBitmaps: ptr ptr GpBitmap, numInputs: INT, effect: ptr CGpEffect, roi: ptr RECT, outputRect: ptr RECT, outputBitmap: ptr ptr GpBitmap, useAuxData: BOOL, auxData: ptr pointer, auxDataSize: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapGetHistogram*(bitmap: ptr GpBitmap, format: HistogramFormat, NumberOfEntries: UINT, channel0: ptr UINT, channel1: ptr UINT, channel2: ptr UINT, channel3: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBitmapGetHistogramSize*(format: HistogramFormat, NumberOfEntries: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneBrush*(brush: ptr GpBrush, cloneBrush: ptr ptr GpBrush): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteBrush*(brush: ptr GpBrush): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetBrushType*(brush: ptr GpBrush, Type: ptr GpBrushType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateCachedBitmap*(bitmap: ptr GpBitmap, graphics: ptr GpGraphics, cachedBitmap: ptr ptr GpCachedBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteCachedBitmap*(cachedBitmap: ptr GpCachedBitmap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCachedBitmap*(graphics: ptr GpGraphics, cachedBitmap: ptr GpCachedBitmap, x: INT, y: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateCustomLineCap*(fillPath: ptr GpPath, strokePath: ptr GpPath, baseCap: GpLineCap, baseInset: REAL, customCap: ptr ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteCustomLineCap*(customCap: ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneCustomLineCap*(customCap: ptr GpCustomLineCap, clonedCap: ptr ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCustomLineCapType*(customCap: ptr GpCustomLineCap, capType: ptr CustomLineCapType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCustomLineCapStrokeCaps*(customCap: ptr GpCustomLineCap, startCap: GpLineCap, endCap: GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCustomLineCapStrokeCaps*(customCap: ptr GpCustomLineCap, startCap: ptr GpLineCap, endCap: ptr GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCustomLineCapStrokeJoin*(customCap: ptr GpCustomLineCap, lineJoin: GpLineJoin): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCustomLineCapStrokeJoin*(customCap: ptr GpCustomLineCap, lineJoin: ptr GpLineJoin): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCustomLineCapBaseCap*(customCap: ptr GpCustomLineCap, baseCap: GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCustomLineCapBaseCap*(customCap: ptr GpCustomLineCap, baseCap: ptr GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCustomLineCapBaseInset*(customCap: ptr GpCustomLineCap, inset: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCustomLineCapBaseInset*(customCap: ptr GpCustomLineCap, inset: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCustomLineCapWidthScale*(customCap: ptr GpCustomLineCap, widthScale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCustomLineCapWidthScale*(customCap: ptr GpCustomLineCap, widthScale: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateEffect*(guid: GUID, effect: ptr ptr CGpEffect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteEffect*(effect: ptr CGpEffect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetEffectParameterSize*(effect: ptr CGpEffect, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetEffectParameters*(effect: ptr CGpEffect, params: pointer, size: UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetEffectParameters*(effect: ptr CGpEffect, size: ptr UINT, params: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFontFromDC*(hdc: HDC, font: ptr ptr GpFont): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFontFromLogfontA*(hdc: HDC, logfont: ptr LOGFONTA, font: ptr ptr GpFont): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFontFromLogfontW*(hdc: HDC, logfont: ptr LOGFONTW, font: ptr ptr GpFont): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFont*(fontFamily: ptr GpFontFamily, emSize: REAL, style: INT, unit: GpUnit, font: ptr ptr GpFont): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneFont*(font: ptr GpFont, cloneFont: ptr ptr GpFont): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteFont*(font: ptr GpFont): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFamily*(font: ptr GpFont, family: ptr ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontStyle*(font: ptr GpFont, style: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontSize*(font: ptr GpFont, size: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontUnit*(font: ptr GpFont, unit: ptr GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontHeight*(font: ptr GpFont, graphics: ptr GpGraphics, height: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontHeightGivenDPI*(font: ptr GpFont, dpi: REAL, height: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLogFontA*(font: ptr GpFont, graphics: ptr GpGraphics, logfontA: ptr LOGFONTA): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLogFontW*(font: ptr GpFont, graphics: ptr GpGraphics, logfontW: ptr LOGFONTW): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipNewInstalledFontCollection*(fontCollection: ptr ptr GpFontCollection): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipNewPrivateFontCollection*(fontCollection: ptr ptr GpFontCollection): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeletePrivateFontCollection*(fontCollection: ptr ptr GpFontCollection): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontCollectionFamilyCount*(fontCollection: ptr GpFontCollection, numFound: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFontCollectionFamilyList*(fontCollection: ptr GpFontCollection, numSought: INT, gpfamilies: ptr ptr GpFontFamily, numFound: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPrivateAddFontFile*(fontCollection: ptr GpFontCollection, filename: ptr WCHAR): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPrivateAddMemoryFont*(fontCollection: ptr GpFontCollection, memory: pointer, length: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFontFamilyFromName*(name: ptr WCHAR, fontCollection: ptr GpFontCollection, FontFamily: ptr ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteFontFamily*(fontFamily: ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneFontFamily*(FontFamily: ptr GpFontFamily, clonedFontFamily: ptr ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetGenericFontFamilySansSerif*(nativeFamily: ptr ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetGenericFontFamilySerif*(nativeFamily: ptr ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetGenericFontFamilyMonospace*(nativeFamily: ptr ptr GpFontFamily): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetFamilyName*(family: ptr GpFontFamily, name: ptr WCHAR, language: LANGID): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsStyleAvailable*(family: ptr GpFontFamily, style: INT, IsStyleAvailable: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetEmHeight*(family: ptr GpFontFamily, style: INT, EmHeight: ptr UINT16): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCellAscent*(family: ptr GpFontFamily, style: INT, CellAscent: ptr UINT16): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCellDescent*(family: ptr GpFontFamily, style: INT, CellDescent: ptr UINT16): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineSpacing*(family: ptr GpFontFamily, style: INT, LineSpacing: ptr UINT16): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFlush*(graphics: ptr GpGraphics, intention: GpFlushIntention): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFromHDC*(hdc: HDC, graphics: ptr ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFromHDC2*(hdc: HDC, hDevice: HANDLE, graphics: ptr ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFromHWND*(hwnd: HWND, graphics: ptr ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateFromHWNDICM*(hwnd: HWND, graphics: ptr ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteGraphics*(graphics: ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetDC*(graphics: ptr GpGraphics, hdc: ptr HDC): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipReleaseDC*(graphics: ptr GpGraphics, hdc: HDC): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCompositingMode*(graphics: ptr GpGraphics, compositingMode: CompositingMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCompositingMode*(graphics: ptr GpGraphics, compositingMode: ptr CompositingMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetRenderingOrigin*(graphics: ptr GpGraphics, x: INT, y: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRenderingOrigin*(graphics: ptr GpGraphics, x: ptr INT, y: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetCompositingQuality*(graphics: ptr GpGraphics, compositingQuality: CompositingQuality): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetCompositingQuality*(graphics: ptr GpGraphics, compositingQuality: ptr CompositingQuality): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetSmoothingMode*(graphics: ptr GpGraphics, smoothingMode: SmoothingMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetSmoothingMode*(graphics: ptr GpGraphics, smoothingMode: ptr SmoothingMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPixelOffsetMode*(graphics: ptr GpGraphics, pixelOffsetMode: PixelOffsetMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPixelOffsetMode*(graphics: ptr GpGraphics, pixelOffsetMode: ptr PixelOffsetMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetTextRenderingHint*(graphics: ptr GpGraphics, mode: TextRenderingHint): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetTextRenderingHint*(graphics: ptr GpGraphics, mode: ptr TextRenderingHint): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetTextContrast*(graphics: ptr GpGraphics, contrast: UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetTextContrast*(graphics: ptr GpGraphics, contrast: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetInterpolationMode*(graphics: ptr GpGraphics, interpolationMode: InterpolationMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGraphicsSetAbort*(pGraphics: ptr GpGraphics, pIAbort: ptr GdiplusAbort): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetInterpolationMode*(graphics: ptr GpGraphics, interpolationMode: ptr InterpolationMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetWorldTransform*(graphics: ptr GpGraphics, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetWorldTransform*(graphics: ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMultiplyWorldTransform*(graphics: ptr GpGraphics, matrix: ptr GpMatrix, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateWorldTransform*(graphics: ptr GpGraphics, dx: REAL, dy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipScaleWorldTransform*(graphics: ptr GpGraphics, sx: REAL, sy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRotateWorldTransform*(graphics: ptr GpGraphics, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetWorldTransform*(graphics: ptr GpGraphics, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetPageTransform*(graphics: ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPageUnit*(graphics: ptr GpGraphics, unit: ptr GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPageScale*(graphics: ptr GpGraphics, scale: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPageUnit*(graphics: ptr GpGraphics, unit: GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPageScale*(graphics: ptr GpGraphics, scale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetDpiX*(graphics: ptr GpGraphics, dpi: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetDpiY*(graphics: ptr GpGraphics, dpi: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTransformPoints*(graphics: ptr GpGraphics, destSpace: GpCoordinateSpace, srcSpace: GpCoordinateSpace, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTransformPointsI*(graphics: ptr GpGraphics, destSpace: GpCoordinateSpace, srcSpace: GpCoordinateSpace, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetNearestColor*(graphics: ptr GpGraphics, argb: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateHalftonePalette*(): HPALETTE {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawLine*(graphics: ptr GpGraphics, pen: ptr GpPen, x1: REAL, y1: REAL, x2: REAL, y2: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawLineI*(graphics: ptr GpGraphics, pen: ptr GpPen, x1: INT, y1: INT, x2: INT, y2: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawLines*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawLinesI*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawArc*(graphics: ptr GpGraphics, pen: ptr GpPen, x: REAL, y: REAL, width: REAL, height: REAL, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawArcI*(graphics: ptr GpGraphics, pen: ptr GpPen, x: INT, y: INT, width: INT, height: INT, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawBezier*(graphics: ptr GpGraphics, pen: ptr GpPen, x1: REAL, y1: REAL, x2: REAL, y2: REAL, x3: REAL, y3: REAL, x4: REAL, y4: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawBezierI*(graphics: ptr GpGraphics, pen: ptr GpPen, x1: INT, y1: INT, x2: INT, y2: INT, x3: INT, y3: INT, x4: INT, y4: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawBeziers*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawBeziersI*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawRectangle*(graphics: ptr GpGraphics, pen: ptr GpPen, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawRectangleI*(graphics: ptr GpGraphics, pen: ptr GpPen, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawRectangles*(graphics: ptr GpGraphics, pen: ptr GpPen, rects: ptr GpRectF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawRectanglesI*(graphics: ptr GpGraphics, pen: ptr GpPen, rects: ptr GpRect, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawEllipse*(graphics: ptr GpGraphics, pen: ptr GpPen, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawEllipseI*(graphics: ptr GpGraphics, pen: ptr GpPen, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawPie*(graphics: ptr GpGraphics, pen: ptr GpPen, x: REAL, y: REAL, width: REAL, height: REAL, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawPieI*(graphics: ptr GpGraphics, pen: ptr GpPen, x: INT, y: INT, width: INT, height: INT, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawPolygon*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawPolygonI*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawPath*(graphics: ptr GpGraphics, pen: ptr GpPen, path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCurve*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCurveI*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCurve2*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCurve2I*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCurve3*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT, offset: INT, numberOfSegments: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawCurve3I*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT, offset: INT, numberOfSegments: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawClosedCurve*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawClosedCurveI*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawClosedCurve2*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawClosedCurve2I*(graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGraphicsClear*(graphics: ptr GpGraphics, color: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillRectangle*(graphics: ptr GpGraphics, brush: ptr GpBrush, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillRectangleI*(graphics: ptr GpGraphics, brush: ptr GpBrush, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillRectangles*(graphics: ptr GpGraphics, brush: ptr GpBrush, rects: ptr GpRectF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillRectanglesI*(graphics: ptr GpGraphics, brush: ptr GpBrush, rects: ptr GpRect, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPolygon*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPointF, count: INT, fillMode: GpFillMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPolygonI*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPoint, count: INT, fillMode: GpFillMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPolygon2*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPolygon2I*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillEllipse*(graphics: ptr GpGraphics, brush: ptr GpBrush, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillEllipseI*(graphics: ptr GpGraphics, brush: ptr GpBrush, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPie*(graphics: ptr GpGraphics, brush: ptr GpBrush, x: REAL, y: REAL, width: REAL, height: REAL, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPieI*(graphics: ptr GpGraphics, brush: ptr GpBrush, x: INT, y: INT, width: INT, height: INT, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillPath*(graphics: ptr GpGraphics, brush: ptr GpBrush, path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillClosedCurve*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillClosedCurveI*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillClosedCurve2*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPointF, count: INT, tension: REAL, fillMode: GpFillMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillClosedCurve2I*(graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPoint, count: INT, tension: REAL, fillMode: GpFillMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFillRegion*(graphics: ptr GpGraphics, brush: ptr GpBrush, region: ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImage*(graphics: ptr GpGraphics, image: ptr GpImage, x: REAL, y: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImageI*(graphics: ptr GpGraphics, image: ptr GpImage, x: INT, y: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImageRect*(graphics: ptr GpGraphics, image: ptr GpImage, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImageRectI*(graphics: ptr GpGraphics, image: ptr GpImage, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImagePoints*(graphics: ptr GpGraphics, image: ptr GpImage, dstpoints: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImagePointsI*(graphics: ptr GpGraphics, image: ptr GpImage, dstpoints: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImagePointRect*(graphics: ptr GpGraphics, image: ptr GpImage, x: REAL, y: REAL, srcx: REAL, srcy: REAL, srcwidth: REAL, srcheight: REAL, srcUnit: GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImagePointRectI*(graphics: ptr GpGraphics, image: ptr GpImage, x: INT, y: INT, srcx: INT, srcy: INT, srcwidth: INT, srcheight: INT, srcUnit: GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImageRectRect*(graphics: ptr GpGraphics, image: ptr GpImage, dstx: REAL, dsty: REAL, dstwidth: REAL, dstheight: REAL, srcx: REAL, srcy: REAL, srcwidth: REAL, srcheight: REAL, srcUnit: GpUnit, imageAttributes: ptr GpImageAttributes, callback: DrawImageAbort, callbackData: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImageRectRectI*(graphics: ptr GpGraphics, image: ptr GpImage, dstx: INT, dsty: INT, dstwidth: INT, dstheight: INT, srcx: INT, srcy: INT, srcwidth: INT, srcheight: INT, srcUnit: GpUnit, imageAttributes: ptr GpImageAttributes, callback: DrawImageAbort, callbackData: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImagePointsRect*(graphics: ptr GpGraphics, image: ptr GpImage, points: ptr GpPointF, count: INT, srcx: REAL, srcy: REAL, srcwidth: REAL, srcheight: REAL, srcUnit: GpUnit, imageAttributes: ptr GpImageAttributes, callback: DrawImageAbort, callbackData: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImagePointsRectI*(graphics: ptr GpGraphics, image: ptr GpImage, points: ptr GpPoint, count: INT, srcx: INT, srcy: INT, srcwidth: INT, srcheight: INT, srcUnit: GpUnit, imageAttributes: ptr GpImageAttributes, callback: DrawImageAbort, callbackData: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawImageFX*(graphics: ptr GpGraphics, image: ptr GpImage, source: ptr GpRectF, xForm: ptr GpMatrix, effect: ptr CGpEffect, imageAttributes: ptr GpImageAttributes, srcUnit: GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipEnumerateMetafileDestPoints*(graphics: ptr GpGraphics, metafile: ptr GpMetafile, destPoints: ptr GpPointF, count: INT, callback: EnumerateMetafileProc, callbackData: pointer, imageAttributes: ptr GpImageAttributes): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipEnumerateMetafileDestPointsI*(graphics: ptr GpGraphics, metafile: ptr GpMetafile, destGpPoints: ptr GpPoint, count: INT, callback: EnumerateMetafileProc, callbackData: pointer, imageAttributes: ptr GpImageAttributes): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetClipGraphics*(graphics: ptr GpGraphics, srcgraphics: ptr GpGraphics, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetClipRect*(graphics: ptr GpGraphics, x: REAL, y: REAL, width: REAL, height: REAL, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetClipRectI*(graphics: ptr GpGraphics, x: INT, y: INT, width: INT, height: INT, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetClipPath*(graphics: ptr GpGraphics, path: ptr GpPath, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetClipRegion*(graphics: ptr GpGraphics, region: ptr GpRegion, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetClipHrgn*(graphics: ptr GpGraphics, hRgn: HRGN, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetClip*(graphics: ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateClip*(graphics: ptr GpGraphics, dx: REAL, dy: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateClipI*(graphics: ptr GpGraphics, dx: INT, dy: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetClip*(graphics: ptr GpGraphics, region: ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetClipBounds*(graphics: ptr GpGraphics, rect: ptr GpRectF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetClipBoundsI*(graphics: ptr GpGraphics, rect: ptr GpRect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsClipEmpty*(graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetVisibleClipBounds*(graphics: ptr GpGraphics, rect: ptr GpRectF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetVisibleClipBoundsI*(graphics: ptr GpGraphics, rect: ptr GpRect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleClipEmpty*(graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisiblePoint*(graphics: ptr GpGraphics, x: REAL, y: REAL, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisiblePointI*(graphics: ptr GpGraphics, x: INT, y: INT, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleRect*(graphics: ptr GpGraphics, x: REAL, y: REAL, width: REAL, height: REAL, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleRectI*(graphics: ptr GpGraphics, x: INT, y: INT, width: INT, height: INT, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSaveGraphics*(graphics: ptr GpGraphics, state: ptr GraphicsState): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRestoreGraphics*(graphics: ptr GpGraphics, state: GraphicsState): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBeginContainer*(graphics: ptr GpGraphics, dstrect: ptr GpRectF, srcrect: ptr GpRectF, unit: GpUnit, state: ptr GraphicsContainer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBeginContainerI*(graphics: ptr GpGraphics, dstrect: ptr GpRect, srcrect: ptr GpRect, unit: GpUnit, state: ptr GraphicsContainer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipBeginContainer2*(graphics: ptr GpGraphics, state: ptr GraphicsContainer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipEndContainer*(graphics: ptr GpGraphics, state: GraphicsContainer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipComment*(graphics: ptr GpGraphics, sizeData: UINT, data: ptr BYTE): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePath*(brushMode: GpFillMode, path: ptr ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePath2*(points: ptr GpPointF, types: ptr BYTE, count: INT, fillMode: GpFillMode, path: ptr ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePath2I*(points: ptr GpPoint, types: ptr BYTE, count: INT, fillMode: GpFillMode, path: ptr ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipClonePath*(path: ptr GpPath, clonePath: ptr ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeletePath*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetPath*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPointCount*(path: ptr GpPath, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathTypes*(path: ptr GpPath, types: ptr BYTE, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathPoints*(path: ptr GpPath, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathPointsI*(path: ptr GpPath, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathFillMode*(path: ptr GpPath, fillmode: ptr GpFillMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathFillMode*(path: ptr GpPath, fillmode: GpFillMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathData*(path: ptr GpPath, pathData: ptr GpPathData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipStartPathFigure*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipClosePathFigure*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipClosePathFigures*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathMarker*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipClearPathMarkers*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipReversePath*(path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathLastPoint*(path: ptr GpPath, lastPoint: ptr GpPointF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathLine*(path: ptr GpPath, x1: REAL, y1: REAL, x2: REAL, y2: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathLine2*(path: ptr GpPath, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathArc*(path: ptr GpPath, x: REAL, y: REAL, width: REAL, height: REAL, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathBezier*(path: ptr GpPath, x1: REAL, y1: REAL, x2: REAL, y2: REAL, x3: REAL, y3: REAL, x4: REAL, y4: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathBeziers*(path: ptr GpPath, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathCurve*(path: ptr GpPath, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathCurve2*(path: ptr GpPath, points: ptr GpPointF, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathCurve3*(path: ptr GpPath, points: ptr GpPointF, count: INT, offset: INT, numberOfSegments: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathClosedCurve*(path: ptr GpPath, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathClosedCurve2*(path: ptr GpPath, points: ptr GpPointF, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathRectangle*(path: ptr GpPath, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathRectangles*(path: ptr GpPath, rects: ptr GpRectF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathEllipse*(path: ptr GpPath, x: REAL, y: REAL, width: REAL, height: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathPie*(path: ptr GpPath, x: REAL, y: REAL, width: REAL, height: REAL, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathPolygon*(path: ptr GpPath, points: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathPath*(path: ptr GpPath, addingPath: ptr GpPath, connect: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathString*(path: ptr GpPath, string: ptr WCHAR, length: INT, family: ptr GpFontFamily, style: INT, emSize: REAL, layoutRect: ptr GpRectF, format: ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathStringI*(path: ptr GpPath, string: ptr WCHAR, length: INT, family: ptr GpFontFamily, style: INT, emSize: REAL, layoutGpRect: ptr GpRect, format: ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathLineI*(path: ptr GpPath, x1: INT, y1: INT, x2: INT, y2: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathLine2I*(path: ptr GpPath, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathArcI*(path: ptr GpPath, x: INT, y: INT, width: INT, height: INT, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathBezierI*(path: ptr GpPath, x1: INT, y1: INT, x2: INT, y2: INT, x3: INT, y3: INT, x4: INT, y4: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathBeziersI*(path: ptr GpPath, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathCurveI*(path: ptr GpPath, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathCurve2I*(path: ptr GpPath, points: ptr GpPoint, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathCurve3I*(path: ptr GpPath, points: ptr GpPoint, count: INT, offset: INT, numberOfSegments: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathClosedCurveI*(path: ptr GpPath, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathClosedCurve2I*(path: ptr GpPath, points: ptr GpPoint, count: INT, tension: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathRectangleI*(path: ptr GpPath, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathRectanglesI*(path: ptr GpPath, rects: ptr GpRect, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathEllipseI*(path: ptr GpPath, x: INT, y: INT, width: INT, height: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathPieI*(path: ptr GpPath, x: INT, y: INT, width: INT, height: INT, startAngle: REAL, sweepAngle: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipAddPathPolygonI*(path: ptr GpPath, points: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFlattenPath*(path: ptr GpPath, matrix: ptr GpMatrix, flatness: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipWindingModeOutline*(path: ptr GpPath, matrix: ptr GpMatrix, flatness: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipWidenPath*(nativePath: ptr GpPath, pen: ptr GpPen, matrix: ptr GpMatrix, flatness: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipWarpPath*(path: ptr GpPath, matrix: ptr GpMatrix, points: ptr GpPointF, count: INT, srcx: REAL, srcy: REAL, srcwidth: REAL, srcheight: REAL, warpMode: WarpMode, flatness: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTransformPath*(path: ptr GpPath, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathWorldBounds*(path: ptr GpPath, bounds: ptr GpRectF, matrix: ptr GpMatrix, pen: ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathWorldBoundsI*(path: ptr GpPath, bounds: ptr GpRect, matrix: ptr GpMatrix, pen: ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisiblePathPoint*(path: ptr GpPath, x: REAL, y: REAL, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisiblePathPointI*(path: ptr GpPath, x: INT, y: INT, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsOutlineVisiblePathPoint*(path: ptr GpPath, x: REAL, y: REAL, pen: ptr GpPen, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsOutlineVisiblePathPointI*(path: ptr GpPath, x: INT, y: INT, pen: ptr GpPen, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateHatchBrush*(hatchstyle: GpHatchStyle, forecol: ARGB, backcol: ARGB, brush: ptr ptr GpHatch): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetHatchStyle*(brush: ptr GpHatch, hatchstyle: ptr GpHatchStyle): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetHatchForegroundColor*(brush: ptr GpHatch, forecol: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetHatchBackgroundColor*(brush: ptr GpHatch, backcol: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipLoadImageFromStream*(stream: ptr IStream, image: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipLoadImageFromFile*(filename: ptr WCHAR, image: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipLoadImageFromStreamICM*(stream: ptr IStream, image: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipLoadImageFromFileICM*(filename: ptr WCHAR, image: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneImage*(image: ptr GpImage, cloneImage: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDisposeImage*(image: ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSaveImageToFile*(image: ptr GpImage, filename: ptr WCHAR, clsidEncoder: ptr CLSID, encoderParams: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSaveImageToStream*(image: ptr GpImage, stream: ptr IStream, clsidEncoder: ptr CLSID, encoderParams: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSaveAdd*(image: ptr GpImage, encoderParams: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSaveAddImage*(image: ptr GpImage, newImage: ptr GpImage, encoderParams: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageGraphicsContext*(image: ptr GpImage, graphics: ptr ptr GpGraphics): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageBounds*(image: ptr GpImage, srcRect: ptr GpRectF, srcUnit: ptr GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageDimension*(image: ptr GpImage, width: ptr REAL, height: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageType*(image: ptr GpImage, Type: ptr ImageType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageWidth*(image: ptr GpImage, width: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageHeight*(image: ptr GpImage, height: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageHorizontalResolution*(image: ptr GpImage, resolution: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageVerticalResolution*(image: ptr GpImage, resolution: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageFlags*(image: ptr GpImage, flags: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageRawFormat*(image: ptr GpImage, format: ptr GUID): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImagePixelFormat*(image: ptr GpImage, format: ptr PixelFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageThumbnail*(image: ptr GpImage, thumbWidth: UINT, thumbHeight: UINT, thumbImage: ptr ptr GpImage, callback: GetThumbnailImageAbort, callbackData: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetEncoderParameterListSize*(image: ptr GpImage, clsidEncoder: ptr CLSID, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetEncoderParameterList*(image: ptr GpImage, clsidEncoder: ptr CLSID, size: UINT, buffer: ptr EncoderParameters): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageGetFrameDimensionsCount*(image: ptr GpImage, count: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageGetFrameDimensionsList*(image: ptr GpImage, dimensionIDs: ptr GUID, count: UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageGetFrameCount*(image: ptr GpImage, dimensionID: ptr GUID, count: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageSelectActiveFrame*(image: ptr GpImage, dimensionID: ptr GUID, frameIndex: UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageRotateFlip*(image: ptr GpImage, rfType: RotateFlipType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImagePalette*(image: ptr GpImage, palette: ptr ColorPalette, size: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImagePalette*(image: ptr GpImage, palette: ptr ColorPalette): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImagePaletteSize*(image: ptr GpImage, size: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPropertyCount*(image: ptr GpImage, numOfProperty: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPropertyIdList*(image: ptr GpImage, numOfProperty: UINT, list: ptr PROPID): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPropertyItemSize*(image: ptr GpImage, propId: PROPID, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPropertyItem*(image: ptr GpImage, propId: PROPID, propSize: UINT, buffer: ptr PropertyItem): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPropertySize*(image: ptr GpImage, totalBufferSize: ptr UINT, numProperties: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetAllPropertyItems*(image: ptr GpImage, totalBufferSize: UINT, numProperties: UINT, allItems: ptr PropertyItem): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRemovePropertyItem*(image: ptr GpImage, propId: PROPID): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPropertyItem*(image: ptr GpImage, item: ptr PropertyItem): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFindFirstImageItem*(image: ptr GpImage, item: ptr ImageItemData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipFindNextImageItem*(image: ptr GpImage, item: ptr ImageItemData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageItemData*(image: ptr GpImage, item: ptr ImageItemData): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageSetAbort*(pImage: ptr GpImage, pIAbort: ptr GdiplusAbort): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipImageForceValidation*(image: ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageDecodersSize*(numDecoders: ptr UINT, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageDecoders*(numDecoders: UINT, size: UINT, decoders: ptr ImageCodecInfo): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageEncodersSize*(numEncoders: ptr UINT, size: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageEncoders*(numEncoders: UINT, size: UINT, encoders: ptr ImageCodecInfo): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateImageAttributes*(imageattr: ptr ptr GpImageAttributes): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneImageAttributes*(imageattr: ptr GpImageAttributes, cloneImageattr: ptr ptr GpImageAttributes): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDisposeImageAttributes*(imageattr: ptr GpImageAttributes): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesToIdentity*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetImageAttributes*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesColorMatrix*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, colorMatrix: ptr ColorMatrix, grayMatrix: ptr ColorMatrix, flags: ColorMatrixFlags): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesThreshold*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, threshold: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesGamma*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, gamma: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesNoOp*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesColorKeys*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, colorLow: ARGB, colorHigh: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesOutputChannel*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, channelFlags: ColorChannelFlags): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesOutputChannelColorProfile*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, colorProfileFilename: ptr WCHAR): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesRemapTable*(imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, mapSize: UINT, map: ptr GpColorMap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesWrapMode*(imageAttr: ptr GpImageAttributes, wrap: GpWrapMode, argb: ARGB, clamp: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetImageAttributesAdjustedPalette*(imageAttr: ptr GpImageAttributes, colorPalette: ptr ColorPalette, colorAdjustType: ColorAdjustType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetImageAttributesCachedBackground*(imageattr: ptr GpImageAttributes, enableFlag: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateLineBrush*(point1: ptr GpPointF, point2: ptr GpPointF, color1: ARGB, color2: ARGB, wrapMode: GpWrapMode, lineGradient: ptr ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateLineBrushI*(point1: ptr GpPoint, point2: ptr GpPoint, color1: ARGB, color2: ARGB, wrapMode: GpWrapMode, lineGradient: ptr ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateLineBrushFromRect*(rect: ptr GpRectF, color1: ARGB, color2: ARGB, mode: LinearGradientMode, wrapMode: GpWrapMode, lineGradient: ptr ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateLineBrushFromRectI*(rect: ptr GpRect, color1: ARGB, color2: ARGB, mode: LinearGradientMode, wrapMode: GpWrapMode, lineGradient: ptr ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateLineBrushFromRectWithAngle*(rect: ptr GpRectF, color1: ARGB, color2: ARGB, angle: REAL, isAngleScalable: BOOL, wrapMode: GpWrapMode, lineGradient: ptr ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateLineBrushFromRectWithAngleI*(rect: ptr GpRect, color1: ARGB, color2: ARGB, angle: REAL, isAngleScalable: BOOL, wrapMode: GpWrapMode, lineGradient: ptr ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineColors*(brush: ptr GpLineGradient, color1: ARGB, color2: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineColors*(brush: ptr GpLineGradient, colors: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineRect*(brush: ptr GpLineGradient, rect: ptr GpRectF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineRectI*(brush: ptr GpLineGradient, rect: ptr GpRect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineGammaCorrection*(brush: ptr GpLineGradient, useGammaCorrection: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineGammaCorrection*(brush: ptr GpLineGradient, useGammaCorrection: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineBlendCount*(brush: ptr GpLineGradient, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineBlend*(brush: ptr GpLineGradient, blend: ptr REAL, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineBlend*(brush: ptr GpLineGradient, blend: ptr REAL, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLinePresetBlendCount*(brush: ptr GpLineGradient, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLinePresetBlend*(brush: ptr GpLineGradient, blend: ptr ARGB, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLinePresetBlend*(brush: ptr GpLineGradient, blend: ptr ARGB, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineSigmaBlend*(brush: ptr GpLineGradient, focus: REAL, scale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineLinearBlend*(brush: ptr GpLineGradient, focus: REAL, scale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineWrapMode*(brush: ptr GpLineGradient, wrapmode: GpWrapMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineWrapMode*(brush: ptr GpLineGradient, wrapmode: ptr GpWrapMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetLineTransform*(brush: ptr GpLineGradient, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetLineTransform*(brush: ptr GpLineGradient, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetLineTransform*(brush: ptr GpLineGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMultiplyLineTransform*(brush: ptr GpLineGradient, matrix: ptr GpMatrix, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateLineTransform*(brush: ptr GpLineGradient, dx: REAL, dy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipScaleLineTransform*(brush: ptr GpLineGradient, sx: REAL, sy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRotateLineTransform*(brush: ptr GpLineGradient, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMatrix*(matrix: ptr ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMatrix2*(m11: REAL, m12: REAL, m21: REAL, m22: REAL, dx: REAL, dy: REAL, matrix: ptr ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMatrix3*(rect: ptr GpRectF, dstplg: ptr GpPointF, matrix: ptr ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMatrix3I*(rect: ptr GpRect, dstplg: ptr GpPoint, matrix: ptr ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneMatrix*(matrix: ptr GpMatrix, cloneMatrix: ptr ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteMatrix*(matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetMatrixElements*(matrix: ptr GpMatrix, m11: REAL, m12: REAL, m21: REAL, m22: REAL, dx: REAL, dy: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMultiplyMatrix*(matrix: ptr GpMatrix, matrix2: ptr GpMatrix, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateMatrix*(matrix: ptr GpMatrix, offsetX: REAL, offsetY: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipScaleMatrix*(matrix: ptr GpMatrix, scaleX: REAL, scaleY: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRotateMatrix*(matrix: ptr GpMatrix, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipShearMatrix*(matrix: ptr GpMatrix, shearX: REAL, shearY: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipInvertMatrix*(matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTransformMatrixPoints*(matrix: ptr GpMatrix, pts: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTransformMatrixPointsI*(matrix: ptr GpMatrix, pts: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipVectorTransformMatrixPoints*(matrix: ptr GpMatrix, pts: ptr GpPointF, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipVectorTransformMatrixPointsI*(matrix: ptr GpMatrix, pts: ptr GpPoint, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetMatrixElements*(matrix: ptr GpMatrix, matrixOut: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsMatrixInvertible*(matrix: ptr GpMatrix, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsMatrixIdentity*(matrix: ptr GpMatrix, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsMatrixEqual*(matrix: ptr GpMatrix, matrix2: ptr GpMatrix, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetMetafileHeaderFromEmf*(hEmf: HENHMETAFILE, header: ptr MetafileHeader): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetMetafileHeaderFromFile*(filename: ptr WCHAR, header: ptr MetafileHeader): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetMetafileHeaderFromStream*(stream: ptr IStream, header: ptr MetafileHeader): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetMetafileHeaderFromMetafile*(metafile: ptr GpMetafile, header: ptr MetafileHeader): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetHemfFromMetafile*(metafile: ptr GpMetafile, hEmf: ptr HENHMETAFILE): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateStreamOnFile*(filename: ptr WCHAR, access: UINT, stream: ptr ptr IStream): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMetafileFromWmf*(hWmf: HMETAFILE, deleteWmf: BOOL, wmfPlaceableFileHeader: ptr WmfPlaceableFileHeader, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMetafileFromEmf*(hEmf: HENHMETAFILE, deleteEmf: BOOL, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMetafileFromFile*(file: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMetafileFromWmfFile*(file: ptr WCHAR, wmfPlaceableFileHeader: ptr WmfPlaceableFileHeader, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateMetafileFromStream*(stream: ptr IStream, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRecordMetafile*(referenceHdc: HDC, Type: EmfType, frameRect: ptr GpRectF, frameUnit: MetafileFrameUnit, description: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRecordMetafileI*(referenceHdc: HDC, Type: EmfType, frameRect: ptr GpRect, frameUnit: MetafileFrameUnit, description: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRecordMetafileFileName*(fileName: ptr WCHAR, referenceHdc: HDC, Type: EmfType, frameRect: ptr GpRectF, frameUnit: MetafileFrameUnit, description: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRecordMetafileFileNameI*(fileName: ptr WCHAR, referenceHdc: HDC, Type: EmfType, frameRect: ptr GpRect, frameUnit: MetafileFrameUnit, description: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRecordMetafileStream*(stream: ptr IStream, referenceHdc: HDC, Type: EmfType, frameRect: ptr GpRectF, frameUnit: MetafileFrameUnit, description: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRecordMetafileStreamI*(stream: ptr IStream, referenceHdc: HDC, Type: EmfType, frameRect: ptr GpRect, frameUnit: MetafileFrameUnit, description: ptr WCHAR, metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPlayMetafileRecord*(metafile: ptr GpMetafile, recordType: EmfPlusRecordType, flags: UINT, dataSize: UINT, data: ptr BYTE): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetMetafileDownLevelRasterizationLimit*(metafile: ptr GpMetafile, metafileRasterizationLimitDpi: UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetMetafileDownLevelRasterizationLimit*(metafile: ptr GpMetafile, metafileRasterizationLimitDpi: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipConvertToEmfPlus*(refGraphics: ptr GpGraphics, metafile: ptr GpMetafile, conversionSuccess: ptr BOOL, emfType: EmfType, description: ptr WCHAR, out_metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipConvertToEmfPlusToFile*(refGraphics: ptr GpGraphics, metafile: ptr GpMetafile, conversionSuccess: ptr BOOL, filename: ptr WCHAR, emfType: EmfType, description: ptr WCHAR, out_metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipConvertToEmfPlusToStream*(refGraphics: ptr GpGraphics, metafile: ptr GpMetafile, conversionSuccess: ptr BOOL, stream: ptr IStream, emfType: EmfType, description: ptr WCHAR, out_metafile: ptr ptr GpMetafile): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipEmfToWmfBits*(hemf: HENHMETAFILE, cbData16: UINT, pData16: LPBYTE, iMapMode: INT, eFlags: INT): UINT {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePathGradient*(points: ptr GpPointF, count: INT, wrapMode: GpWrapMode, polyGradient: ptr ptr GpPathGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePathGradientI*(points: ptr GpPoint, count: INT, wrapMode: GpWrapMode, polyGradient: ptr ptr GpPathGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePathGradientFromPath*(path: ptr GpPath, polyGradient: ptr ptr GpPathGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientCenterColor*(brush: ptr GpPathGradient, colors: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientCenterColor*(brush: ptr GpPathGradient, colors: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientSurroundColorsWithCount*(brush: ptr GpPathGradient, color: ptr ARGB, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientSurroundColorsWithCount*(brush: ptr GpPathGradient, color: ptr ARGB, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientPath*(brush: ptr GpPathGradient, path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientPath*(brush: ptr GpPathGradient, path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientCenterPoint*(brush: ptr GpPathGradient, points: ptr GpPointF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientCenterPointI*(brush: ptr GpPathGradient, points: ptr GpPoint): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientCenterPoint*(brush: ptr GpPathGradient, points: ptr GpPointF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientCenterPointI*(brush: ptr GpPathGradient, points: ptr GpPoint): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientRect*(brush: ptr GpPathGradient, rect: ptr GpRectF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientRectI*(brush: ptr GpPathGradient, rect: ptr GpRect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientPointCount*(brush: ptr GpPathGradient, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientSurroundColorCount*(brush: ptr GpPathGradient, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientGammaCorrection*(brush: ptr GpPathGradient, useGammaCorrection: BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientGammaCorrection*(brush: ptr GpPathGradient, useGammaCorrection: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientBlendCount*(brush: ptr GpPathGradient, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientBlend*(brush: ptr GpPathGradient, blend: ptr REAL, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientBlend*(brush: ptr GpPathGradient, blend: ptr REAL, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientPresetBlendCount*(brush: ptr GpPathGradient, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientPresetBlend*(brush: ptr GpPathGradient, blend: ptr ARGB, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientPresetBlend*(brush: ptr GpPathGradient, blend: ptr ARGB, positions: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientSigmaBlend*(brush: ptr GpPathGradient, focus: REAL, scale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientLinearBlend*(brush: ptr GpPathGradient, focus: REAL, scale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientWrapMode*(brush: ptr GpPathGradient, wrapmode: ptr GpWrapMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientWrapMode*(brush: ptr GpPathGradient, wrapmode: GpWrapMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientTransform*(brush: ptr GpPathGradient, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientTransform*(brush: ptr GpPathGradient, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetPathGradientTransform*(brush: ptr GpPathGradient): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMultiplyPathGradientTransform*(brush: ptr GpPathGradient, matrix: ptr GpMatrix, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslatePathGradientTransform*(brush: ptr GpPathGradient, dx: REAL, dy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipScalePathGradientTransform*(brush: ptr GpPathGradient, sx: REAL, sy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRotatePathGradientTransform*(brush: ptr GpPathGradient, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPathGradientFocusScales*(brush: ptr GpPathGradient, xScale: ptr REAL, yScale: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPathGradientFocusScales*(brush: ptr GpPathGradient, xScale: REAL, yScale: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePathIter*(Iterator: ptr ptr GpPathIterator, path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeletePathIter*(Iterator: ptr GpPathIterator): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterNextSubpath*(Iterator: ptr GpPathIterator, resultCount: ptr INT, startIndex: ptr INT, endIndex: ptr INT, isClosed: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterNextSubpathPath*(Iterator: ptr GpPathIterator, resultCount: ptr INT, path: ptr GpPath, isClosed: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterNextPathType*(Iterator: ptr GpPathIterator, resultCount: ptr INT, pathType: ptr BYTE, startIndex: ptr INT, endIndex: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterNextMarker*(Iterator: ptr GpPathIterator, resultCount: ptr INT, startIndex: ptr INT, endIndex: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterNextMarkerPath*(Iterator: ptr GpPathIterator, resultCount: ptr INT, path: ptr GpPath): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterGetCount*(Iterator: ptr GpPathIterator, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterGetSubpathCount*(Iterator: ptr GpPathIterator, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterIsValid*(Iterator: ptr GpPathIterator, valid: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterHasCurve*(Iterator: ptr GpPathIterator, hasCurve: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterRewind*(Iterator: ptr GpPathIterator): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterEnumerate*(Iterator: ptr GpPathIterator, resultCount: ptr INT, points: ptr GpPointF, types: ptr BYTE, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipPathIterCopyData*(Iterator: ptr GpPathIterator, resultCount: ptr INT, points: ptr GpPointF, types: ptr BYTE, startIndex: INT, endIndex: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePen1*(color: ARGB, width: REAL, unit: GpUnit, pen: ptr ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreatePen2*(brush: ptr GpBrush, width: REAL, unit: GpUnit, pen: ptr ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipClonePen*(pen: ptr GpPen, clonepen: ptr ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeletePen*(pen: ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenWidth*(pen: ptr GpPen, width: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenWidth*(pen: ptr GpPen, width: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenUnit*(pen: ptr GpPen, unit: GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenUnit*(pen: ptr GpPen, unit: ptr GpUnit): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenLineCap197819*(pen: ptr GpPen, startCap: GpLineCap, endCap: GpLineCap, dashCap: GpDashCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenStartCap*(pen: ptr GpPen, startCap: GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenEndCap*(pen: ptr GpPen, endCap: GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenDashCap197819*(pen: ptr GpPen, dashCap: GpDashCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenStartCap*(pen: ptr GpPen, startCap: ptr GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenEndCap*(pen: ptr GpPen, endCap: ptr GpLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenDashCap197819*(pen: ptr GpPen, dashCap: ptr GpDashCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenLineJoin*(pen: ptr GpPen, lineJoin: GpLineJoin): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenLineJoin*(pen: ptr GpPen, lineJoin: ptr GpLineJoin): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenCustomStartCap*(pen: ptr GpPen, customCap: ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenCustomStartCap*(pen: ptr GpPen, customCap: ptr ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenCustomEndCap*(pen: ptr GpPen, customCap: ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenCustomEndCap*(pen: ptr GpPen, customCap: ptr ptr GpCustomLineCap): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenMiterLimit*(pen: ptr GpPen, miterLimit: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenMiterLimit*(pen: ptr GpPen, miterLimit: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenMode*(pen: ptr GpPen, penMode: GpPenAlignment): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenMode*(pen: ptr GpPen, penMode: ptr GpPenAlignment): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenTransform*(pen: ptr GpPen, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenTransform*(pen: ptr GpPen, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetPenTransform*(pen: ptr GpPen): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMultiplyPenTransform*(pen: ptr GpPen, matrix: ptr GpMatrix, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslatePenTransform*(pen: ptr GpPen, dx: REAL, dy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipScalePenTransform*(pen: ptr GpPen, sx: REAL, sy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRotatePenTransform*(pen: ptr GpPen, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenColor*(pen: ptr GpPen, argb: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenColor*(pen: ptr GpPen, argb: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenBrushFill*(pen: ptr GpPen, brush: ptr GpBrush): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenBrushFill*(pen: ptr GpPen, brush: ptr ptr GpBrush): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenFillType*(pen: ptr GpPen, Type: ptr GpPenType): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenDashStyle*(pen: ptr GpPen, dashstyle: ptr GpDashStyle): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenDashStyle*(pen: ptr GpPen, dashstyle: GpDashStyle): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenDashOffset*(pen: ptr GpPen, offset: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenDashOffset*(pen: ptr GpPen, offset: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenDashCount*(pen: ptr GpPen, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenDashArray*(pen: ptr GpPen, dash: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenDashArray*(pen: ptr GpPen, dash: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenCompoundCount*(pen: ptr GpPen, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetPenCompoundArray*(pen: ptr GpPen, dash: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetPenCompoundArray*(pen: ptr GpPen, dash: ptr REAL, count: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateRegion*(region: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateRegionRect*(rect: ptr GpRectF, region: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateRegionRectI*(rect: ptr GpRect, region: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateRegionPath*(path: ptr GpPath, region: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateRegionRgnData*(regionData: ptr BYTE, size: INT, region: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateRegionHrgn*(hRgn: HRGN, region: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneRegion*(region: ptr GpRegion, cloneRegion: ptr ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteRegion*(region: ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetInfinite*(region: ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetEmpty*(region: ptr GpRegion): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCombineRegionRect*(region: ptr GpRegion, rect: ptr GpRectF, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCombineRegionRectI*(region: ptr GpRegion, rect: ptr GpRect, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCombineRegionPath*(region: ptr GpRegion, path: ptr GpPath, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCombineRegionRegion*(region: ptr GpRegion, region2: ptr GpRegion, combineMode: CombineMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateRegion*(region: ptr GpRegion, dx: REAL, dy: REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateRegionI*(region: ptr GpRegion, dx: INT, dy: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTransformRegion*(region: ptr GpRegion, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionBounds*(region: ptr GpRegion, graphics: ptr GpGraphics, rect: ptr GpRectF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionBoundsI*(region: ptr GpRegion, graphics: ptr GpGraphics, rect: ptr GpRect): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionHRgn*(region: ptr GpRegion, graphics: ptr GpGraphics, hRgn: ptr HRGN): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsEmptyRegion*(region: ptr GpRegion, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsInfiniteRegion*(region: ptr GpRegion, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsEqualRegion*(region: ptr GpRegion, region2: ptr GpRegion, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionDataSize*(region: ptr GpRegion, bufferSize: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionData*(region: ptr GpRegion, buffer: ptr BYTE, bufferSize: UINT, sizeFilled: ptr UINT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleRegionPoint*(region: ptr GpRegion, x: REAL, y: REAL, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleRegionPointI*(region: ptr GpRegion, x: INT, y: INT, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleRegionRect*(region: ptr GpRegion, x: REAL, y: REAL, width: REAL, height: REAL, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipIsVisibleRegionRectI*(region: ptr GpRegion, x: INT, y: INT, width: INT, height: INT, graphics: ptr GpGraphics, result: ptr BOOL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionScansCount*(region: ptr GpRegion, count: ptr UINT, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionScans*(region: ptr GpRegion, rects: ptr GpRectF, count: ptr INT, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetRegionScansI*(region: ptr GpRegion, rects: ptr GpRect, count: ptr INT, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateSolidFill*(color: ARGB, brush: ptr ptr GpSolidFill): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetSolidFillColor*(brush: ptr GpSolidFill, color: ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetSolidFillColor*(brush: ptr GpSolidFill, color: ptr ARGB): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateStringFormat*(formatAttributes: INT, language: LANGID, format: ptr ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipStringFormatGetGenericDefault*(format: ptr ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipStringFormatGetGenericTypographic*(format: ptr ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDeleteStringFormat*(format: ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCloneStringFormat*(format: ptr GpStringFormat, newFormat: ptr ptr GpStringFormat): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatFlags*(format: ptr GpStringFormat, flags: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatFlags*(format: ptr GpStringFormat, flags: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatAlign*(format: ptr GpStringFormat, align: StringAlignment): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatAlign*(format: ptr GpStringFormat, align: ptr StringAlignment): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatLineAlign*(format: ptr GpStringFormat, align: StringAlignment): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatLineAlign*(format: ptr GpStringFormat, align: ptr StringAlignment): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatTrimming*(format: ptr GpStringFormat, trimming: StringTrimming): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatTrimming*(format: ptr GpStringFormat, trimming: ptr StringTrimming): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatHotkeyPrefix*(format: ptr GpStringFormat, hotkeyPrefix: INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatHotkeyPrefix*(format: ptr GpStringFormat, hotkeyPrefix: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatTabStops*(format: ptr GpStringFormat, firstTabOffset: REAL, count: INT, tabStops: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatTabStops*(format: ptr GpStringFormat, count: INT, firstTabOffset: ptr REAL, tabStops: ptr REAL): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatTabStopCount*(format: ptr GpStringFormat, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatDigitSubstitution*(format: ptr GpStringFormat, language: LANGID, substitute: StringDigitSubstitute): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatDigitSubstitution*(format: ptr GpStringFormat, language: ptr LANGID, substitute: ptr StringDigitSubstitute): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetStringFormatMeasurableCharacterRangeCount*(format: ptr GpStringFormat, count: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetStringFormatMeasurableCharacterRanges*(format: ptr GpStringFormat, rangeCount: INT, ranges: ptr CharacterRange): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawString*(graphics: ptr GpGraphics, string: ptr WCHAR, length: INT, font: ptr GpFont, layoutRect: ptr GpRectF, stringFormat: ptr GpStringFormat, brush: ptr GpBrush): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMeasureString*(graphics: ptr GpGraphics, string: ptr WCHAR, length: INT, font: ptr GpFont, layoutRect: ptr GpRectF, stringFormat: ptr GpStringFormat, boundingBox: ptr GpRectF, codepointsFitted: ptr INT, linesFilled: ptr INT): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipDrawDriverString*(graphics: ptr GpGraphics, text: ptr UINT16, length: INT, font: ptr GpFont, brush: ptr GpBrush, positions: ptr GpPointF, flags: INT, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMeasureDriverString*(graphics: ptr GpGraphics, text: ptr UINT16, length: INT, font: ptr GpFont, positions: ptr GpPointF, flags: INT, matrix: ptr GpMatrix, boundingBox: ptr GpRectF): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateTexture*(image: ptr GpImage, wrapmode: GpWrapMode, texture: ptr ptr GpTexture): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateTexture2*(image: ptr GpImage, wrapmode: GpWrapMode, x: REAL, y: REAL, width: REAL, height: REAL, texture: ptr ptr GpTexture): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateTexture2I*(image: ptr GpImage, wrapmode: GpWrapMode, x: INT, y: INT, width: INT, height: INT, texture: ptr ptr GpTexture): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateTextureIA*(image: ptr GpImage, imageAttributes: ptr GpImageAttributes, x: REAL, y: REAL, width: REAL, height: REAL, texture: ptr ptr GpTexture): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipCreateTextureIAI*(image: ptr GpImage, imageAttributes: ptr GpImageAttributes, x: INT, y: INT, width: INT, height: INT, texture: ptr ptr GpTexture): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetTextureTransform*(brush: ptr GpTexture, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetTextureTransform*(brush: ptr GpTexture, matrix: ptr GpMatrix): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipResetTextureTransform*(brush: ptr GpTexture): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipMultiplyTextureTransform*(brush: ptr GpTexture, matrix: ptr GpMatrix, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTranslateTextureTransform*(brush: ptr GpTexture, dx: REAL, dy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipScaleTextureTransform*(brush: ptr GpTexture, sx: REAL, sy: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipRotateTextureTransform*(brush: ptr GpTexture, angle: REAL, order: GpMatrixOrder): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipSetTextureWrapMode*(brush: ptr GpTexture, wrapmode: GpWrapMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetTextureWrapMode*(brush: ptr GpTexture, wrapmode: ptr GpWrapMode): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipGetTextureImage*(brush: ptr GpTexture, image: ptr ptr GpImage): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc GdipTestControl*(control: GpTestControlEnum, param: pointer): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} -proc `WmfHeader=`*(self: var MetafileHeader, x: METAHEADER) {.inline.} = self.union1.WmfHeader = x -proc WmfHeader*(self: MetafileHeader): METAHEADER {.inline.} = self.union1.WmfHeader -proc WmfHeader*(self: var MetafileHeader): var METAHEADER {.inline.} = self.union1.WmfHeader -proc `EmfHeader=`*(self: var MetafileHeader, x: ENHMETAHEADER3) {.inline.} = self.union1.EmfHeader = x -proc EmfHeader*(self: MetafileHeader): ENHMETAHEADER3 {.inline.} = self.union1.EmfHeader -proc EmfHeader*(self: var MetafileHeader): var ENHMETAHEADER3 {.inline.} = self.union1.EmfHeader +proc GdipCreateAdjustableArrowCap*( + height: REAL, width: REAL, isFilled: BOOL, cap: ptr ptr GpAdjustableArrowCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetAdjustableArrowCapHeight*( + cap: ptr GpAdjustableArrowCap, height: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetAdjustableArrowCapHeight*( + cap: ptr GpAdjustableArrowCap, height: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetAdjustableArrowCapWidth*( + cap: ptr GpAdjustableArrowCap, width: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetAdjustableArrowCapWidth*( + cap: ptr GpAdjustableArrowCap, width: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetAdjustableArrowCapMiddleInset*( + cap: ptr GpAdjustableArrowCap, middleInset: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetAdjustableArrowCapMiddleInset*( + cap: ptr GpAdjustableArrowCap, middleInset: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetAdjustableArrowCapFillState*( + cap: ptr GpAdjustableArrowCap, fillState: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetAdjustableArrowCapFillState*( + cap: ptr GpAdjustableArrowCap, fillState: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromStream*( + stream: ptr IStream, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromFile*( + filename: ptr WCHAR, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromStreamICM*( + stream: ptr IStream, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromFileICM*( + filename: ptr WCHAR, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromScan0*( + width: INT, + height: INT, + stride: INT, + format: PixelFormat, + scan0: ptr BYTE, + bitmap: ptr ptr GpBitmap, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromGraphics*( + width: INT, height: INT, target: ptr GpGraphics, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromGdiDib*( + gdiBitmapInfo: ptr BITMAPINFO, gdiBitmapData: pointer, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromHBITMAP*( + hbm: HBITMAP, hpal: HPALETTE, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateHBITMAPFromBitmap*( + bitmap: ptr GpBitmap, hbmReturn: ptr HBITMAP, background: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromHICON*( + hicon: HICON, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateHICONFromBitmap*( + bitmap: ptr GpBitmap, hbmReturn: ptr HICON +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateBitmapFromResource*( + hInstance: HINSTANCE, lpBitmapName: ptr WCHAR, bitmap: ptr ptr GpBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneBitmapArea*( + x: REAL, + y: REAL, + width: REAL, + height: REAL, + format: PixelFormat, + srcBitmap: ptr GpBitmap, + dstBitmap: ptr ptr GpBitmap, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneBitmapAreaI*( + x: INT, + y: INT, + width: INT, + height: INT, + format: PixelFormat, + srcBitmap: ptr GpBitmap, + dstBitmap: ptr ptr GpBitmap, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapLockBits*( + bitmap: ptr GpBitmap, + rect: ptr GpRect, + flags: UINT, + format: PixelFormat, + lockedBitmapData: ptr BitmapData, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapUnlockBits*( + bitmap: ptr GpBitmap, lockedBitmapData: ptr BitmapData +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapGetPixel*( + bitmap: ptr GpBitmap, x: INT, y: INT, color: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapSetPixel*( + bitmap: ptr GpBitmap, x: INT, y: INT, color: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapSetResolution*( + bitmap: ptr GpBitmap, xdpi: REAL, ydpi: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapConvertFormat*( + pInputBitmap: ptr GpBitmap, + format: PixelFormat, + dithertype: DitherType, + palettetype: PaletteType, + palette: ptr ColorPalette, + alphaThresholdPercent: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipInitializePalette*( + palette: ptr ColorPalette, + palettetype: PaletteType, + optimalColors: INT, + useTransparentColor: BOOL, + bitmap: ptr GpBitmap, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapApplyEffect*( + bitmap: ptr GpBitmap, + effect: ptr CGpEffect, + roi: ptr RECT, + useAuxData: BOOL, + auxData: ptr pointer, + auxDataSize: ptr INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapCreateApplyEffect*( + inputBitmaps: ptr ptr GpBitmap, + numInputs: INT, + effect: ptr CGpEffect, + roi: ptr RECT, + outputRect: ptr RECT, + outputBitmap: ptr ptr GpBitmap, + useAuxData: BOOL, + auxData: ptr pointer, + auxDataSize: ptr INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapGetHistogram*( + bitmap: ptr GpBitmap, + format: HistogramFormat, + NumberOfEntries: UINT, + channel0: ptr UINT, + channel1: ptr UINT, + channel2: ptr UINT, + channel3: ptr UINT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBitmapGetHistogramSize*( + format: HistogramFormat, NumberOfEntries: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneBrush*( + brush: ptr GpBrush, cloneBrush: ptr ptr GpBrush +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteBrush*( + brush: ptr GpBrush +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetBrushType*( + brush: ptr GpBrush, Type: ptr GpBrushType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateCachedBitmap*( + bitmap: ptr GpBitmap, graphics: ptr GpGraphics, cachedBitmap: ptr ptr GpCachedBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteCachedBitmap*( + cachedBitmap: ptr GpCachedBitmap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCachedBitmap*( + graphics: ptr GpGraphics, cachedBitmap: ptr GpCachedBitmap, x: INT, y: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateCustomLineCap*( + fillPath: ptr GpPath, + strokePath: ptr GpPath, + baseCap: GpLineCap, + baseInset: REAL, + customCap: ptr ptr GpCustomLineCap, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteCustomLineCap*( + customCap: ptr GpCustomLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneCustomLineCap*( + customCap: ptr GpCustomLineCap, clonedCap: ptr ptr GpCustomLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCustomLineCapType*( + customCap: ptr GpCustomLineCap, capType: ptr CustomLineCapType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCustomLineCapStrokeCaps*( + customCap: ptr GpCustomLineCap, startCap: GpLineCap, endCap: GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCustomLineCapStrokeCaps*( + customCap: ptr GpCustomLineCap, startCap: ptr GpLineCap, endCap: ptr GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCustomLineCapStrokeJoin*( + customCap: ptr GpCustomLineCap, lineJoin: GpLineJoin +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCustomLineCapStrokeJoin*( + customCap: ptr GpCustomLineCap, lineJoin: ptr GpLineJoin +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCustomLineCapBaseCap*( + customCap: ptr GpCustomLineCap, baseCap: GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCustomLineCapBaseCap*( + customCap: ptr GpCustomLineCap, baseCap: ptr GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCustomLineCapBaseInset*( + customCap: ptr GpCustomLineCap, inset: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCustomLineCapBaseInset*( + customCap: ptr GpCustomLineCap, inset: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCustomLineCapWidthScale*( + customCap: ptr GpCustomLineCap, widthScale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCustomLineCapWidthScale*( + customCap: ptr GpCustomLineCap, widthScale: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateEffect*( + guid: GUID, effect: ptr ptr CGpEffect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteEffect*( + effect: ptr CGpEffect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetEffectParameterSize*( + effect: ptr CGpEffect, size: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetEffectParameters*( + effect: ptr CGpEffect, params: pointer, size: UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetEffectParameters*( + effect: ptr CGpEffect, size: ptr UINT, params: pointer +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFontFromDC*( + hdc: HDC, font: ptr ptr GpFont +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFontFromLogfontA*( + hdc: HDC, logfont: ptr LOGFONTA, font: ptr ptr GpFont +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFontFromLogfontW*( + hdc: HDC, logfont: ptr LOGFONTW, font: ptr ptr GpFont +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFont*( + fontFamily: ptr GpFontFamily, + emSize: REAL, + style: INT, + unit: GpUnit, + font: ptr ptr GpFont, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneFont*( + font: ptr GpFont, cloneFont: ptr ptr GpFont +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteFont*( + font: ptr GpFont +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFamily*( + font: ptr GpFont, family: ptr ptr GpFontFamily +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontStyle*( + font: ptr GpFont, style: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontSize*( + font: ptr GpFont, size: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontUnit*( + font: ptr GpFont, unit: ptr GpUnit +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontHeight*( + font: ptr GpFont, graphics: ptr GpGraphics, height: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontHeightGivenDPI*( + font: ptr GpFont, dpi: REAL, height: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLogFontA*( + font: ptr GpFont, graphics: ptr GpGraphics, logfontA: ptr LOGFONTA +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLogFontW*( + font: ptr GpFont, graphics: ptr GpGraphics, logfontW: ptr LOGFONTW +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipNewInstalledFontCollection*( + fontCollection: ptr ptr GpFontCollection +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipNewPrivateFontCollection*( + fontCollection: ptr ptr GpFontCollection +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeletePrivateFontCollection*( + fontCollection: ptr ptr GpFontCollection +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontCollectionFamilyCount*( + fontCollection: ptr GpFontCollection, numFound: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFontCollectionFamilyList*( + fontCollection: ptr GpFontCollection, + numSought: INT, + gpfamilies: ptr ptr GpFontFamily, + numFound: ptr INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPrivateAddFontFile*( + fontCollection: ptr GpFontCollection, filename: ptr WCHAR +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPrivateAddMemoryFont*( + fontCollection: ptr GpFontCollection, memory: pointer, length: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFontFamilyFromName*( + name: ptr WCHAR, + fontCollection: ptr GpFontCollection, + FontFamily: ptr ptr GpFontFamily, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteFontFamily*( + fontFamily: ptr GpFontFamily +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneFontFamily*( + FontFamily: ptr GpFontFamily, clonedFontFamily: ptr ptr GpFontFamily +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetGenericFontFamilySansSerif*( + nativeFamily: ptr ptr GpFontFamily +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetGenericFontFamilySerif*( + nativeFamily: ptr ptr GpFontFamily +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetGenericFontFamilyMonospace*( + nativeFamily: ptr ptr GpFontFamily +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetFamilyName*( + family: ptr GpFontFamily, name: ptr WCHAR, language: LANGID +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsStyleAvailable*( + family: ptr GpFontFamily, style: INT, IsStyleAvailable: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetEmHeight*( + family: ptr GpFontFamily, style: INT, EmHeight: ptr UINT16 +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCellAscent*( + family: ptr GpFontFamily, style: INT, CellAscent: ptr UINT16 +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCellDescent*( + family: ptr GpFontFamily, style: INT, CellDescent: ptr UINT16 +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineSpacing*( + family: ptr GpFontFamily, style: INT, LineSpacing: ptr UINT16 +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFlush*( + graphics: ptr GpGraphics, intention: GpFlushIntention +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFromHDC*( + hdc: HDC, graphics: ptr ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFromHDC2*( + hdc: HDC, hDevice: HANDLE, graphics: ptr ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFromHWND*( + hwnd: HWND, graphics: ptr ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateFromHWNDICM*( + hwnd: HWND, graphics: ptr ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteGraphics*( + graphics: ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetDC*( + graphics: ptr GpGraphics, hdc: ptr HDC +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipReleaseDC*( + graphics: ptr GpGraphics, hdc: HDC +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCompositingMode*( + graphics: ptr GpGraphics, compositingMode: CompositingMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCompositingMode*( + graphics: ptr GpGraphics, compositingMode: ptr CompositingMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetRenderingOrigin*( + graphics: ptr GpGraphics, x: INT, y: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRenderingOrigin*( + graphics: ptr GpGraphics, x: ptr INT, y: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetCompositingQuality*( + graphics: ptr GpGraphics, compositingQuality: CompositingQuality +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetCompositingQuality*( + graphics: ptr GpGraphics, compositingQuality: ptr CompositingQuality +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetSmoothingMode*( + graphics: ptr GpGraphics, smoothingMode: SmoothingMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetSmoothingMode*( + graphics: ptr GpGraphics, smoothingMode: ptr SmoothingMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPixelOffsetMode*( + graphics: ptr GpGraphics, pixelOffsetMode: PixelOffsetMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPixelOffsetMode*( + graphics: ptr GpGraphics, pixelOffsetMode: ptr PixelOffsetMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetTextRenderingHint*( + graphics: ptr GpGraphics, mode: TextRenderingHint +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetTextRenderingHint*( + graphics: ptr GpGraphics, mode: ptr TextRenderingHint +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetTextContrast*( + graphics: ptr GpGraphics, contrast: UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetTextContrast*( + graphics: ptr GpGraphics, contrast: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetInterpolationMode*( + graphics: ptr GpGraphics, interpolationMode: InterpolationMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGraphicsSetAbort*( + pGraphics: ptr GpGraphics, pIAbort: ptr GdiplusAbort +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetInterpolationMode*( + graphics: ptr GpGraphics, interpolationMode: ptr InterpolationMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetWorldTransform*( + graphics: ptr GpGraphics, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetWorldTransform*( + graphics: ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMultiplyWorldTransform*( + graphics: ptr GpGraphics, matrix: ptr GpMatrix, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateWorldTransform*( + graphics: ptr GpGraphics, dx: REAL, dy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipScaleWorldTransform*( + graphics: ptr GpGraphics, sx: REAL, sy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRotateWorldTransform*( + graphics: ptr GpGraphics, angle: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetWorldTransform*( + graphics: ptr GpGraphics, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetPageTransform*( + graphics: ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPageUnit*( + graphics: ptr GpGraphics, unit: ptr GpUnit +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPageScale*( + graphics: ptr GpGraphics, scale: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPageUnit*( + graphics: ptr GpGraphics, unit: GpUnit +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPageScale*( + graphics: ptr GpGraphics, scale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetDpiX*( + graphics: ptr GpGraphics, dpi: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetDpiY*( + graphics: ptr GpGraphics, dpi: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTransformPoints*( + graphics: ptr GpGraphics, + destSpace: GpCoordinateSpace, + srcSpace: GpCoordinateSpace, + points: ptr GpPointF, + count: INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTransformPointsI*( + graphics: ptr GpGraphics, + destSpace: GpCoordinateSpace, + srcSpace: GpCoordinateSpace, + points: ptr GpPoint, + count: INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetNearestColor*( + graphics: ptr GpGraphics, argb: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateHalftonePalette*(): HPALETTE {. + winapi, stdcall, dynlib: "gdiplus", importc +.} + +proc GdipDrawLine*( + graphics: ptr GpGraphics, pen: ptr GpPen, x1: REAL, y1: REAL, x2: REAL, y2: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawLineI*( + graphics: ptr GpGraphics, pen: ptr GpPen, x1: INT, y1: INT, x2: INT, y2: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawLines*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawLinesI*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawArc*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawArcI*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + x: INT, + y: INT, + width: INT, + height: INT, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawBezier*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + x1: REAL, + y1: REAL, + x2: REAL, + y2: REAL, + x3: REAL, + y3: REAL, + x4: REAL, + y4: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawBezierI*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + x1: INT, + y1: INT, + x2: INT, + y2: INT, + x3: INT, + y3: INT, + x4: INT, + y4: INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawBeziers*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawBeziersI*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawRectangle*( + graphics: ptr GpGraphics, pen: ptr GpPen, x: REAL, y: REAL, width: REAL, height: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawRectangleI*( + graphics: ptr GpGraphics, pen: ptr GpPen, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawRectangles*( + graphics: ptr GpGraphics, pen: ptr GpPen, rects: ptr GpRectF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawRectanglesI*( + graphics: ptr GpGraphics, pen: ptr GpPen, rects: ptr GpRect, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawEllipse*( + graphics: ptr GpGraphics, pen: ptr GpPen, x: REAL, y: REAL, width: REAL, height: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawEllipseI*( + graphics: ptr GpGraphics, pen: ptr GpPen, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawPie*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawPieI*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + x: INT, + y: INT, + width: INT, + height: INT, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawPolygon*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawPolygonI*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawPath*( + graphics: ptr GpGraphics, pen: ptr GpPen, path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCurve*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCurveI*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCurve2*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + points: ptr GpPointF, + count: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCurve2I*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + points: ptr GpPoint, + count: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCurve3*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + points: ptr GpPointF, + count: INT, + offset: INT, + numberOfSegments: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawCurve3I*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + points: ptr GpPoint, + count: INT, + offset: INT, + numberOfSegments: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawClosedCurve*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawClosedCurveI*( + graphics: ptr GpGraphics, pen: ptr GpPen, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawClosedCurve2*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + points: ptr GpPointF, + count: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawClosedCurve2I*( + graphics: ptr GpGraphics, + pen: ptr GpPen, + points: ptr GpPoint, + count: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGraphicsClear*( + graphics: ptr GpGraphics, color: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillRectangle*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + x: REAL, + y: REAL, + width: REAL, + height: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillRectangleI*( + graphics: ptr GpGraphics, brush: ptr GpBrush, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillRectangles*( + graphics: ptr GpGraphics, brush: ptr GpBrush, rects: ptr GpRectF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillRectanglesI*( + graphics: ptr GpGraphics, brush: ptr GpBrush, rects: ptr GpRect, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPolygon*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + points: ptr GpPointF, + count: INT, + fillMode: GpFillMode, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPolygonI*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + points: ptr GpPoint, + count: INT, + fillMode: GpFillMode, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPolygon2*( + graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPolygon2I*( + graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillEllipse*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + x: REAL, + y: REAL, + width: REAL, + height: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillEllipseI*( + graphics: ptr GpGraphics, brush: ptr GpBrush, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPie*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPieI*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + x: INT, + y: INT, + width: INT, + height: INT, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillPath*( + graphics: ptr GpGraphics, brush: ptr GpBrush, path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillClosedCurve*( + graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillClosedCurveI*( + graphics: ptr GpGraphics, brush: ptr GpBrush, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillClosedCurve2*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + points: ptr GpPointF, + count: INT, + tension: REAL, + fillMode: GpFillMode, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillClosedCurve2I*( + graphics: ptr GpGraphics, + brush: ptr GpBrush, + points: ptr GpPoint, + count: INT, + tension: REAL, + fillMode: GpFillMode, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFillRegion*( + graphics: ptr GpGraphics, brush: ptr GpBrush, region: ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImage*( + graphics: ptr GpGraphics, image: ptr GpImage, x: REAL, y: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImageI*( + graphics: ptr GpGraphics, image: ptr GpImage, x: INT, y: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImageRect*( + graphics: ptr GpGraphics, + image: ptr GpImage, + x: REAL, + y: REAL, + width: REAL, + height: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImageRectI*( + graphics: ptr GpGraphics, image: ptr GpImage, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImagePoints*( + graphics: ptr GpGraphics, image: ptr GpImage, dstpoints: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImagePointsI*( + graphics: ptr GpGraphics, image: ptr GpImage, dstpoints: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImagePointRect*( + graphics: ptr GpGraphics, + image: ptr GpImage, + x: REAL, + y: REAL, + srcx: REAL, + srcy: REAL, + srcwidth: REAL, + srcheight: REAL, + srcUnit: GpUnit, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImagePointRectI*( + graphics: ptr GpGraphics, + image: ptr GpImage, + x: INT, + y: INT, + srcx: INT, + srcy: INT, + srcwidth: INT, + srcheight: INT, + srcUnit: GpUnit, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImageRectRect*( + graphics: ptr GpGraphics, + image: ptr GpImage, + dstx: REAL, + dsty: REAL, + dstwidth: REAL, + dstheight: REAL, + srcx: REAL, + srcy: REAL, + srcwidth: REAL, + srcheight: REAL, + srcUnit: GpUnit, + imageAttributes: ptr GpImageAttributes, + callback: DrawImageAbort, + callbackData: pointer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImageRectRectI*( + graphics: ptr GpGraphics, + image: ptr GpImage, + dstx: INT, + dsty: INT, + dstwidth: INT, + dstheight: INT, + srcx: INT, + srcy: INT, + srcwidth: INT, + srcheight: INT, + srcUnit: GpUnit, + imageAttributes: ptr GpImageAttributes, + callback: DrawImageAbort, + callbackData: pointer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImagePointsRect*( + graphics: ptr GpGraphics, + image: ptr GpImage, + points: ptr GpPointF, + count: INT, + srcx: REAL, + srcy: REAL, + srcwidth: REAL, + srcheight: REAL, + srcUnit: GpUnit, + imageAttributes: ptr GpImageAttributes, + callback: DrawImageAbort, + callbackData: pointer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImagePointsRectI*( + graphics: ptr GpGraphics, + image: ptr GpImage, + points: ptr GpPoint, + count: INT, + srcx: INT, + srcy: INT, + srcwidth: INT, + srcheight: INT, + srcUnit: GpUnit, + imageAttributes: ptr GpImageAttributes, + callback: DrawImageAbort, + callbackData: pointer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawImageFX*( + graphics: ptr GpGraphics, + image: ptr GpImage, + source: ptr GpRectF, + xForm: ptr GpMatrix, + effect: ptr CGpEffect, + imageAttributes: ptr GpImageAttributes, + srcUnit: GpUnit, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipEnumerateMetafileDestPoints*( + graphics: ptr GpGraphics, + metafile: ptr GpMetafile, + destPoints: ptr GpPointF, + count: INT, + callback: EnumerateMetafileProc, + callbackData: pointer, + imageAttributes: ptr GpImageAttributes, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipEnumerateMetafileDestPointsI*( + graphics: ptr GpGraphics, + metafile: ptr GpMetafile, + destGpPoints: ptr GpPoint, + count: INT, + callback: EnumerateMetafileProc, + callbackData: pointer, + imageAttributes: ptr GpImageAttributes, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetClipGraphics*( + graphics: ptr GpGraphics, srcgraphics: ptr GpGraphics, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetClipRect*( + graphics: ptr GpGraphics, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + combineMode: CombineMode, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetClipRectI*( + graphics: ptr GpGraphics, + x: INT, + y: INT, + width: INT, + height: INT, + combineMode: CombineMode, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetClipPath*( + graphics: ptr GpGraphics, path: ptr GpPath, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetClipRegion*( + graphics: ptr GpGraphics, region: ptr GpRegion, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetClipHrgn*( + graphics: ptr GpGraphics, hRgn: HRGN, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetClip*( + graphics: ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateClip*( + graphics: ptr GpGraphics, dx: REAL, dy: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateClipI*( + graphics: ptr GpGraphics, dx: INT, dy: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetClip*( + graphics: ptr GpGraphics, region: ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetClipBounds*( + graphics: ptr GpGraphics, rect: ptr GpRectF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetClipBoundsI*( + graphics: ptr GpGraphics, rect: ptr GpRect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsClipEmpty*( + graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetVisibleClipBounds*( + graphics: ptr GpGraphics, rect: ptr GpRectF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetVisibleClipBoundsI*( + graphics: ptr GpGraphics, rect: ptr GpRect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleClipEmpty*( + graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisiblePoint*( + graphics: ptr GpGraphics, x: REAL, y: REAL, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisiblePointI*( + graphics: ptr GpGraphics, x: INT, y: INT, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleRect*( + graphics: ptr GpGraphics, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + result: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleRectI*( + graphics: ptr GpGraphics, x: INT, y: INT, width: INT, height: INT, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSaveGraphics*( + graphics: ptr GpGraphics, state: ptr GraphicsState +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRestoreGraphics*( + graphics: ptr GpGraphics, state: GraphicsState +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBeginContainer*( + graphics: ptr GpGraphics, + dstrect: ptr GpRectF, + srcrect: ptr GpRectF, + unit: GpUnit, + state: ptr GraphicsContainer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBeginContainerI*( + graphics: ptr GpGraphics, + dstrect: ptr GpRect, + srcrect: ptr GpRect, + unit: GpUnit, + state: ptr GraphicsContainer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipBeginContainer2*( + graphics: ptr GpGraphics, state: ptr GraphicsContainer +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipEndContainer*( + graphics: ptr GpGraphics, state: GraphicsContainer +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipComment*( + graphics: ptr GpGraphics, sizeData: UINT, data: ptr BYTE +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePath*( + brushMode: GpFillMode, path: ptr ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePath2*( + points: ptr GpPointF, + types: ptr BYTE, + count: INT, + fillMode: GpFillMode, + path: ptr ptr GpPath, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePath2I*( + points: ptr GpPoint, + types: ptr BYTE, + count: INT, + fillMode: GpFillMode, + path: ptr ptr GpPath, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipClonePath*( + path: ptr GpPath, clonePath: ptr ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeletePath*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetPath*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPointCount*( + path: ptr GpPath, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathTypes*( + path: ptr GpPath, types: ptr BYTE, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathPoints*( + path: ptr GpPath, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathPointsI*( + path: ptr GpPath, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathFillMode*( + path: ptr GpPath, fillmode: ptr GpFillMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathFillMode*( + path: ptr GpPath, fillmode: GpFillMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathData*( + path: ptr GpPath, pathData: ptr GpPathData +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipStartPathFigure*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipClosePathFigure*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipClosePathFigures*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathMarker*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipClearPathMarkers*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipReversePath*( + path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathLastPoint*( + path: ptr GpPath, lastPoint: ptr GpPointF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathLine*( + path: ptr GpPath, x1: REAL, y1: REAL, x2: REAL, y2: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathLine2*( + path: ptr GpPath, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathArc*( + path: ptr GpPath, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathBezier*( + path: ptr GpPath, + x1: REAL, + y1: REAL, + x2: REAL, + y2: REAL, + x3: REAL, + y3: REAL, + x4: REAL, + y4: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathBeziers*( + path: ptr GpPath, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathCurve*( + path: ptr GpPath, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathCurve2*( + path: ptr GpPath, points: ptr GpPointF, count: INT, tension: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathCurve3*( + path: ptr GpPath, + points: ptr GpPointF, + count: INT, + offset: INT, + numberOfSegments: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathClosedCurve*( + path: ptr GpPath, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathClosedCurve2*( + path: ptr GpPath, points: ptr GpPointF, count: INT, tension: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathRectangle*( + path: ptr GpPath, x: REAL, y: REAL, width: REAL, height: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathRectangles*( + path: ptr GpPath, rects: ptr GpRectF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathEllipse*( + path: ptr GpPath, x: REAL, y: REAL, width: REAL, height: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathPie*( + path: ptr GpPath, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathPolygon*( + path: ptr GpPath, points: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathPath*( + path: ptr GpPath, addingPath: ptr GpPath, connect: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathString*( + path: ptr GpPath, + string: ptr WCHAR, + length: INT, + family: ptr GpFontFamily, + style: INT, + emSize: REAL, + layoutRect: ptr GpRectF, + format: ptr GpStringFormat, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathStringI*( + path: ptr GpPath, + string: ptr WCHAR, + length: INT, + family: ptr GpFontFamily, + style: INT, + emSize: REAL, + layoutGpRect: ptr GpRect, + format: ptr GpStringFormat, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathLineI*( + path: ptr GpPath, x1: INT, y1: INT, x2: INT, y2: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathLine2I*( + path: ptr GpPath, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathArcI*( + path: ptr GpPath, + x: INT, + y: INT, + width: INT, + height: INT, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathBezierI*( + path: ptr GpPath, + x1: INT, + y1: INT, + x2: INT, + y2: INT, + x3: INT, + y3: INT, + x4: INT, + y4: INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathBeziersI*( + path: ptr GpPath, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathCurveI*( + path: ptr GpPath, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathCurve2I*( + path: ptr GpPath, points: ptr GpPoint, count: INT, tension: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathCurve3I*( + path: ptr GpPath, + points: ptr GpPoint, + count: INT, + offset: INT, + numberOfSegments: INT, + tension: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathClosedCurveI*( + path: ptr GpPath, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathClosedCurve2I*( + path: ptr GpPath, points: ptr GpPoint, count: INT, tension: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathRectangleI*( + path: ptr GpPath, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathRectanglesI*( + path: ptr GpPath, rects: ptr GpRect, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathEllipseI*( + path: ptr GpPath, x: INT, y: INT, width: INT, height: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathPieI*( + path: ptr GpPath, + x: INT, + y: INT, + width: INT, + height: INT, + startAngle: REAL, + sweepAngle: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipAddPathPolygonI*( + path: ptr GpPath, points: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFlattenPath*( + path: ptr GpPath, matrix: ptr GpMatrix, flatness: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipWindingModeOutline*( + path: ptr GpPath, matrix: ptr GpMatrix, flatness: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipWidenPath*( + nativePath: ptr GpPath, pen: ptr GpPen, matrix: ptr GpMatrix, flatness: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipWarpPath*( + path: ptr GpPath, + matrix: ptr GpMatrix, + points: ptr GpPointF, + count: INT, + srcx: REAL, + srcy: REAL, + srcwidth: REAL, + srcheight: REAL, + warpMode: WarpMode, + flatness: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTransformPath*( + path: ptr GpPath, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathWorldBounds*( + path: ptr GpPath, bounds: ptr GpRectF, matrix: ptr GpMatrix, pen: ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathWorldBoundsI*( + path: ptr GpPath, bounds: ptr GpRect, matrix: ptr GpMatrix, pen: ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisiblePathPoint*( + path: ptr GpPath, x: REAL, y: REAL, graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisiblePathPointI*( + path: ptr GpPath, x: INT, y: INT, graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsOutlineVisiblePathPoint*( + path: ptr GpPath, + x: REAL, + y: REAL, + pen: ptr GpPen, + graphics: ptr GpGraphics, + result: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsOutlineVisiblePathPointI*( + path: ptr GpPath, + x: INT, + y: INT, + pen: ptr GpPen, + graphics: ptr GpGraphics, + result: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateHatchBrush*( + hatchstyle: GpHatchStyle, forecol: ARGB, backcol: ARGB, brush: ptr ptr GpHatch +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetHatchStyle*( + brush: ptr GpHatch, hatchstyle: ptr GpHatchStyle +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetHatchForegroundColor*( + brush: ptr GpHatch, forecol: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetHatchBackgroundColor*( + brush: ptr GpHatch, backcol: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipLoadImageFromStream*( + stream: ptr IStream, image: ptr ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipLoadImageFromFile*( + filename: ptr WCHAR, image: ptr ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipLoadImageFromStreamICM*( + stream: ptr IStream, image: ptr ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipLoadImageFromFileICM*( + filename: ptr WCHAR, image: ptr ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneImage*( + image: ptr GpImage, cloneImage: ptr ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDisposeImage*( + image: ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSaveImageToFile*( + image: ptr GpImage, + filename: ptr WCHAR, + clsidEncoder: ptr CLSID, + encoderParams: ptr EncoderParameters, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSaveImageToStream*( + image: ptr GpImage, + stream: ptr IStream, + clsidEncoder: ptr CLSID, + encoderParams: ptr EncoderParameters, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSaveAdd*( + image: ptr GpImage, encoderParams: ptr EncoderParameters +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSaveAddImage*( + image: ptr GpImage, newImage: ptr GpImage, encoderParams: ptr EncoderParameters +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageGraphicsContext*( + image: ptr GpImage, graphics: ptr ptr GpGraphics +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageBounds*( + image: ptr GpImage, srcRect: ptr GpRectF, srcUnit: ptr GpUnit +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageDimension*( + image: ptr GpImage, width: ptr REAL, height: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageType*( + image: ptr GpImage, Type: ptr ImageType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageWidth*( + image: ptr GpImage, width: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageHeight*( + image: ptr GpImage, height: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageHorizontalResolution*( + image: ptr GpImage, resolution: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageVerticalResolution*( + image: ptr GpImage, resolution: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageFlags*( + image: ptr GpImage, flags: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageRawFormat*( + image: ptr GpImage, format: ptr GUID +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImagePixelFormat*( + image: ptr GpImage, format: ptr PixelFormat +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageThumbnail*( + image: ptr GpImage, + thumbWidth: UINT, + thumbHeight: UINT, + thumbImage: ptr ptr GpImage, + callback: GetThumbnailImageAbort, + callbackData: pointer, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetEncoderParameterListSize*( + image: ptr GpImage, clsidEncoder: ptr CLSID, size: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetEncoderParameterList*( + image: ptr GpImage, clsidEncoder: ptr CLSID, size: UINT, buffer: ptr EncoderParameters +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageGetFrameDimensionsCount*( + image: ptr GpImage, count: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageGetFrameDimensionsList*( + image: ptr GpImage, dimensionIDs: ptr GUID, count: UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageGetFrameCount*( + image: ptr GpImage, dimensionID: ptr GUID, count: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageSelectActiveFrame*( + image: ptr GpImage, dimensionID: ptr GUID, frameIndex: UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageRotateFlip*( + image: ptr GpImage, rfType: RotateFlipType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImagePalette*( + image: ptr GpImage, palette: ptr ColorPalette, size: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImagePalette*( + image: ptr GpImage, palette: ptr ColorPalette +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImagePaletteSize*( + image: ptr GpImage, size: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPropertyCount*( + image: ptr GpImage, numOfProperty: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPropertyIdList*( + image: ptr GpImage, numOfProperty: UINT, list: ptr PROPID +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPropertyItemSize*( + image: ptr GpImage, propId: PROPID, size: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPropertyItem*( + image: ptr GpImage, propId: PROPID, propSize: UINT, buffer: ptr PropertyItem +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPropertySize*( + image: ptr GpImage, totalBufferSize: ptr UINT, numProperties: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetAllPropertyItems*( + image: ptr GpImage, + totalBufferSize: UINT, + numProperties: UINT, + allItems: ptr PropertyItem, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRemovePropertyItem*( + image: ptr GpImage, propId: PROPID +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPropertyItem*( + image: ptr GpImage, item: ptr PropertyItem +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFindFirstImageItem*( + image: ptr GpImage, item: ptr ImageItemData +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipFindNextImageItem*( + image: ptr GpImage, item: ptr ImageItemData +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageItemData*( + image: ptr GpImage, item: ptr ImageItemData +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageSetAbort*( + pImage: ptr GpImage, pIAbort: ptr GdiplusAbort +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipImageForceValidation*( + image: ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageDecodersSize*( + numDecoders: ptr UINT, size: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageDecoders*( + numDecoders: UINT, size: UINT, decoders: ptr ImageCodecInfo +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageEncodersSize*( + numEncoders: ptr UINT, size: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageEncoders*( + numEncoders: UINT, size: UINT, encoders: ptr ImageCodecInfo +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateImageAttributes*( + imageattr: ptr ptr GpImageAttributes +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneImageAttributes*( + imageattr: ptr GpImageAttributes, cloneImageattr: ptr ptr GpImageAttributes +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDisposeImageAttributes*( + imageattr: ptr GpImageAttributes +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesToIdentity*( + imageattr: ptr GpImageAttributes, Type: ColorAdjustType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetImageAttributes*( + imageattr: ptr GpImageAttributes, Type: ColorAdjustType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesColorMatrix*( + imageattr: ptr GpImageAttributes, + Type: ColorAdjustType, + enableFlag: BOOL, + colorMatrix: ptr ColorMatrix, + grayMatrix: ptr ColorMatrix, + flags: ColorMatrixFlags, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesThreshold*( + imageattr: ptr GpImageAttributes, + Type: ColorAdjustType, + enableFlag: BOOL, + threshold: REAL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesGamma*( + imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL, gamma: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesNoOp*( + imageattr: ptr GpImageAttributes, Type: ColorAdjustType, enableFlag: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesColorKeys*( + imageattr: ptr GpImageAttributes, + Type: ColorAdjustType, + enableFlag: BOOL, + colorLow: ARGB, + colorHigh: ARGB, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesOutputChannel*( + imageattr: ptr GpImageAttributes, + Type: ColorAdjustType, + enableFlag: BOOL, + channelFlags: ColorChannelFlags, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesOutputChannelColorProfile*( + imageattr: ptr GpImageAttributes, + Type: ColorAdjustType, + enableFlag: BOOL, + colorProfileFilename: ptr WCHAR, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesRemapTable*( + imageattr: ptr GpImageAttributes, + Type: ColorAdjustType, + enableFlag: BOOL, + mapSize: UINT, + map: ptr GpColorMap, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesWrapMode*( + imageAttr: ptr GpImageAttributes, wrap: GpWrapMode, argb: ARGB, clamp: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetImageAttributesAdjustedPalette*( + imageAttr: ptr GpImageAttributes, + colorPalette: ptr ColorPalette, + colorAdjustType: ColorAdjustType, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetImageAttributesCachedBackground*( + imageattr: ptr GpImageAttributes, enableFlag: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateLineBrush*( + point1: ptr GpPointF, + point2: ptr GpPointF, + color1: ARGB, + color2: ARGB, + wrapMode: GpWrapMode, + lineGradient: ptr ptr GpLineGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateLineBrushI*( + point1: ptr GpPoint, + point2: ptr GpPoint, + color1: ARGB, + color2: ARGB, + wrapMode: GpWrapMode, + lineGradient: ptr ptr GpLineGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateLineBrushFromRect*( + rect: ptr GpRectF, + color1: ARGB, + color2: ARGB, + mode: LinearGradientMode, + wrapMode: GpWrapMode, + lineGradient: ptr ptr GpLineGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateLineBrushFromRectI*( + rect: ptr GpRect, + color1: ARGB, + color2: ARGB, + mode: LinearGradientMode, + wrapMode: GpWrapMode, + lineGradient: ptr ptr GpLineGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateLineBrushFromRectWithAngle*( + rect: ptr GpRectF, + color1: ARGB, + color2: ARGB, + angle: REAL, + isAngleScalable: BOOL, + wrapMode: GpWrapMode, + lineGradient: ptr ptr GpLineGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateLineBrushFromRectWithAngleI*( + rect: ptr GpRect, + color1: ARGB, + color2: ARGB, + angle: REAL, + isAngleScalable: BOOL, + wrapMode: GpWrapMode, + lineGradient: ptr ptr GpLineGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineColors*( + brush: ptr GpLineGradient, color1: ARGB, color2: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineColors*( + brush: ptr GpLineGradient, colors: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineRect*( + brush: ptr GpLineGradient, rect: ptr GpRectF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineRectI*( + brush: ptr GpLineGradient, rect: ptr GpRect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineGammaCorrection*( + brush: ptr GpLineGradient, useGammaCorrection: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineGammaCorrection*( + brush: ptr GpLineGradient, useGammaCorrection: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineBlendCount*( + brush: ptr GpLineGradient, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineBlend*( + brush: ptr GpLineGradient, blend: ptr REAL, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineBlend*( + brush: ptr GpLineGradient, blend: ptr REAL, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLinePresetBlendCount*( + brush: ptr GpLineGradient, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLinePresetBlend*( + brush: ptr GpLineGradient, blend: ptr ARGB, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLinePresetBlend*( + brush: ptr GpLineGradient, blend: ptr ARGB, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineSigmaBlend*( + brush: ptr GpLineGradient, focus: REAL, scale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineLinearBlend*( + brush: ptr GpLineGradient, focus: REAL, scale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineWrapMode*( + brush: ptr GpLineGradient, wrapmode: GpWrapMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineWrapMode*( + brush: ptr GpLineGradient, wrapmode: ptr GpWrapMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetLineTransform*( + brush: ptr GpLineGradient, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetLineTransform*( + brush: ptr GpLineGradient, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetLineTransform*( + brush: ptr GpLineGradient +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMultiplyLineTransform*( + brush: ptr GpLineGradient, matrix: ptr GpMatrix, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateLineTransform*( + brush: ptr GpLineGradient, dx: REAL, dy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipScaleLineTransform*( + brush: ptr GpLineGradient, sx: REAL, sy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRotateLineTransform*( + brush: ptr GpLineGradient, angle: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMatrix*( + matrix: ptr ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMatrix2*( + m11: REAL, + m12: REAL, + m21: REAL, + m22: REAL, + dx: REAL, + dy: REAL, + matrix: ptr ptr GpMatrix, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMatrix3*( + rect: ptr GpRectF, dstplg: ptr GpPointF, matrix: ptr ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMatrix3I*( + rect: ptr GpRect, dstplg: ptr GpPoint, matrix: ptr ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneMatrix*( + matrix: ptr GpMatrix, cloneMatrix: ptr ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteMatrix*( + matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetMatrixElements*( + matrix: ptr GpMatrix, m11: REAL, m12: REAL, m21: REAL, m22: REAL, dx: REAL, dy: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMultiplyMatrix*( + matrix: ptr GpMatrix, matrix2: ptr GpMatrix, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateMatrix*( + matrix: ptr GpMatrix, offsetX: REAL, offsetY: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipScaleMatrix*( + matrix: ptr GpMatrix, scaleX: REAL, scaleY: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRotateMatrix*( + matrix: ptr GpMatrix, angle: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipShearMatrix*( + matrix: ptr GpMatrix, shearX: REAL, shearY: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipInvertMatrix*( + matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTransformMatrixPoints*( + matrix: ptr GpMatrix, pts: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTransformMatrixPointsI*( + matrix: ptr GpMatrix, pts: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipVectorTransformMatrixPoints*( + matrix: ptr GpMatrix, pts: ptr GpPointF, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipVectorTransformMatrixPointsI*( + matrix: ptr GpMatrix, pts: ptr GpPoint, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetMatrixElements*( + matrix: ptr GpMatrix, matrixOut: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsMatrixInvertible*( + matrix: ptr GpMatrix, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsMatrixIdentity*( + matrix: ptr GpMatrix, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsMatrixEqual*( + matrix: ptr GpMatrix, matrix2: ptr GpMatrix, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetMetafileHeaderFromEmf*( + hEmf: HENHMETAFILE, header: ptr MetafileHeader +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetMetafileHeaderFromFile*( + filename: ptr WCHAR, header: ptr MetafileHeader +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetMetafileHeaderFromStream*( + stream: ptr IStream, header: ptr MetafileHeader +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetMetafileHeaderFromMetafile*( + metafile: ptr GpMetafile, header: ptr MetafileHeader +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetHemfFromMetafile*( + metafile: ptr GpMetafile, hEmf: ptr HENHMETAFILE +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateStreamOnFile*( + filename: ptr WCHAR, access: UINT, stream: ptr ptr IStream +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMetafileFromWmf*( + hWmf: HMETAFILE, + deleteWmf: BOOL, + wmfPlaceableFileHeader: ptr WmfPlaceableFileHeader, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMetafileFromEmf*( + hEmf: HENHMETAFILE, deleteEmf: BOOL, metafile: ptr ptr GpMetafile +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMetafileFromFile*( + file: ptr WCHAR, metafile: ptr ptr GpMetafile +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMetafileFromWmfFile*( + file: ptr WCHAR, + wmfPlaceableFileHeader: ptr WmfPlaceableFileHeader, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateMetafileFromStream*( + stream: ptr IStream, metafile: ptr ptr GpMetafile +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRecordMetafile*( + referenceHdc: HDC, + Type: EmfType, + frameRect: ptr GpRectF, + frameUnit: MetafileFrameUnit, + description: ptr WCHAR, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRecordMetafileI*( + referenceHdc: HDC, + Type: EmfType, + frameRect: ptr GpRect, + frameUnit: MetafileFrameUnit, + description: ptr WCHAR, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRecordMetafileFileName*( + fileName: ptr WCHAR, + referenceHdc: HDC, + Type: EmfType, + frameRect: ptr GpRectF, + frameUnit: MetafileFrameUnit, + description: ptr WCHAR, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRecordMetafileFileNameI*( + fileName: ptr WCHAR, + referenceHdc: HDC, + Type: EmfType, + frameRect: ptr GpRect, + frameUnit: MetafileFrameUnit, + description: ptr WCHAR, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRecordMetafileStream*( + stream: ptr IStream, + referenceHdc: HDC, + Type: EmfType, + frameRect: ptr GpRectF, + frameUnit: MetafileFrameUnit, + description: ptr WCHAR, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRecordMetafileStreamI*( + stream: ptr IStream, + referenceHdc: HDC, + Type: EmfType, + frameRect: ptr GpRect, + frameUnit: MetafileFrameUnit, + description: ptr WCHAR, + metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPlayMetafileRecord*( + metafile: ptr GpMetafile, + recordType: EmfPlusRecordType, + flags: UINT, + dataSize: UINT, + data: ptr BYTE, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetMetafileDownLevelRasterizationLimit*( + metafile: ptr GpMetafile, metafileRasterizationLimitDpi: UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetMetafileDownLevelRasterizationLimit*( + metafile: ptr GpMetafile, metafileRasterizationLimitDpi: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipConvertToEmfPlus*( + refGraphics: ptr GpGraphics, + metafile: ptr GpMetafile, + conversionSuccess: ptr BOOL, + emfType: EmfType, + description: ptr WCHAR, + out_metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipConvertToEmfPlusToFile*( + refGraphics: ptr GpGraphics, + metafile: ptr GpMetafile, + conversionSuccess: ptr BOOL, + filename: ptr WCHAR, + emfType: EmfType, + description: ptr WCHAR, + out_metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipConvertToEmfPlusToStream*( + refGraphics: ptr GpGraphics, + metafile: ptr GpMetafile, + conversionSuccess: ptr BOOL, + stream: ptr IStream, + emfType: EmfType, + description: ptr WCHAR, + out_metafile: ptr ptr GpMetafile, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipEmfToWmfBits*( + hemf: HENHMETAFILE, cbData16: UINT, pData16: LPBYTE, iMapMode: INT, eFlags: INT +): UINT {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePathGradient*( + points: ptr GpPointF, + count: INT, + wrapMode: GpWrapMode, + polyGradient: ptr ptr GpPathGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePathGradientI*( + points: ptr GpPoint, + count: INT, + wrapMode: GpWrapMode, + polyGradient: ptr ptr GpPathGradient, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePathGradientFromPath*( + path: ptr GpPath, polyGradient: ptr ptr GpPathGradient +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientCenterColor*( + brush: ptr GpPathGradient, colors: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientCenterColor*( + brush: ptr GpPathGradient, colors: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientSurroundColorsWithCount*( + brush: ptr GpPathGradient, color: ptr ARGB, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientSurroundColorsWithCount*( + brush: ptr GpPathGradient, color: ptr ARGB, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientPath*( + brush: ptr GpPathGradient, path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientPath*( + brush: ptr GpPathGradient, path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientCenterPoint*( + brush: ptr GpPathGradient, points: ptr GpPointF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientCenterPointI*( + brush: ptr GpPathGradient, points: ptr GpPoint +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientCenterPoint*( + brush: ptr GpPathGradient, points: ptr GpPointF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientCenterPointI*( + brush: ptr GpPathGradient, points: ptr GpPoint +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientRect*( + brush: ptr GpPathGradient, rect: ptr GpRectF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientRectI*( + brush: ptr GpPathGradient, rect: ptr GpRect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientPointCount*( + brush: ptr GpPathGradient, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientSurroundColorCount*( + brush: ptr GpPathGradient, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientGammaCorrection*( + brush: ptr GpPathGradient, useGammaCorrection: BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientGammaCorrection*( + brush: ptr GpPathGradient, useGammaCorrection: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientBlendCount*( + brush: ptr GpPathGradient, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientBlend*( + brush: ptr GpPathGradient, blend: ptr REAL, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientBlend*( + brush: ptr GpPathGradient, blend: ptr REAL, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientPresetBlendCount*( + brush: ptr GpPathGradient, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientPresetBlend*( + brush: ptr GpPathGradient, blend: ptr ARGB, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientPresetBlend*( + brush: ptr GpPathGradient, blend: ptr ARGB, positions: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientSigmaBlend*( + brush: ptr GpPathGradient, focus: REAL, scale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientLinearBlend*( + brush: ptr GpPathGradient, focus: REAL, scale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientWrapMode*( + brush: ptr GpPathGradient, wrapmode: ptr GpWrapMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientWrapMode*( + brush: ptr GpPathGradient, wrapmode: GpWrapMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientTransform*( + brush: ptr GpPathGradient, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientTransform*( + brush: ptr GpPathGradient, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetPathGradientTransform*( + brush: ptr GpPathGradient +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMultiplyPathGradientTransform*( + brush: ptr GpPathGradient, matrix: ptr GpMatrix, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslatePathGradientTransform*( + brush: ptr GpPathGradient, dx: REAL, dy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipScalePathGradientTransform*( + brush: ptr GpPathGradient, sx: REAL, sy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRotatePathGradientTransform*( + brush: ptr GpPathGradient, angle: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPathGradientFocusScales*( + brush: ptr GpPathGradient, xScale: ptr REAL, yScale: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPathGradientFocusScales*( + brush: ptr GpPathGradient, xScale: REAL, yScale: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePathIter*( + Iterator: ptr ptr GpPathIterator, path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeletePathIter*( + Iterator: ptr GpPathIterator +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterNextSubpath*( + Iterator: ptr GpPathIterator, + resultCount: ptr INT, + startIndex: ptr INT, + endIndex: ptr INT, + isClosed: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterNextSubpathPath*( + Iterator: ptr GpPathIterator, + resultCount: ptr INT, + path: ptr GpPath, + isClosed: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterNextPathType*( + Iterator: ptr GpPathIterator, + resultCount: ptr INT, + pathType: ptr BYTE, + startIndex: ptr INT, + endIndex: ptr INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterNextMarker*( + Iterator: ptr GpPathIterator, + resultCount: ptr INT, + startIndex: ptr INT, + endIndex: ptr INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterNextMarkerPath*( + Iterator: ptr GpPathIterator, resultCount: ptr INT, path: ptr GpPath +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterGetCount*( + Iterator: ptr GpPathIterator, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterGetSubpathCount*( + Iterator: ptr GpPathIterator, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterIsValid*( + Iterator: ptr GpPathIterator, valid: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterHasCurve*( + Iterator: ptr GpPathIterator, hasCurve: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterRewind*( + Iterator: ptr GpPathIterator +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterEnumerate*( + Iterator: ptr GpPathIterator, + resultCount: ptr INT, + points: ptr GpPointF, + types: ptr BYTE, + count: INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipPathIterCopyData*( + Iterator: ptr GpPathIterator, + resultCount: ptr INT, + points: ptr GpPointF, + types: ptr BYTE, + startIndex: INT, + endIndex: INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePen1*( + color: ARGB, width: REAL, unit: GpUnit, pen: ptr ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreatePen2*( + brush: ptr GpBrush, width: REAL, unit: GpUnit, pen: ptr ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipClonePen*( + pen: ptr GpPen, clonepen: ptr ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeletePen*( + pen: ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenWidth*( + pen: ptr GpPen, width: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenWidth*( + pen: ptr GpPen, width: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenUnit*( + pen: ptr GpPen, unit: GpUnit +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenUnit*( + pen: ptr GpPen, unit: ptr GpUnit +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenLineCap197819*( + pen: ptr GpPen, startCap: GpLineCap, endCap: GpLineCap, dashCap: GpDashCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenStartCap*( + pen: ptr GpPen, startCap: GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenEndCap*( + pen: ptr GpPen, endCap: GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenDashCap197819*( + pen: ptr GpPen, dashCap: GpDashCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenStartCap*( + pen: ptr GpPen, startCap: ptr GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenEndCap*( + pen: ptr GpPen, endCap: ptr GpLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenDashCap197819*( + pen: ptr GpPen, dashCap: ptr GpDashCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenLineJoin*( + pen: ptr GpPen, lineJoin: GpLineJoin +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenLineJoin*( + pen: ptr GpPen, lineJoin: ptr GpLineJoin +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenCustomStartCap*( + pen: ptr GpPen, customCap: ptr GpCustomLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenCustomStartCap*( + pen: ptr GpPen, customCap: ptr ptr GpCustomLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenCustomEndCap*( + pen: ptr GpPen, customCap: ptr GpCustomLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenCustomEndCap*( + pen: ptr GpPen, customCap: ptr ptr GpCustomLineCap +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenMiterLimit*( + pen: ptr GpPen, miterLimit: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenMiterLimit*( + pen: ptr GpPen, miterLimit: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenMode*( + pen: ptr GpPen, penMode: GpPenAlignment +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenMode*( + pen: ptr GpPen, penMode: ptr GpPenAlignment +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenTransform*( + pen: ptr GpPen, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenTransform*( + pen: ptr GpPen, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetPenTransform*( + pen: ptr GpPen +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMultiplyPenTransform*( + pen: ptr GpPen, matrix: ptr GpMatrix, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslatePenTransform*( + pen: ptr GpPen, dx: REAL, dy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipScalePenTransform*( + pen: ptr GpPen, sx: REAL, sy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRotatePenTransform*( + pen: ptr GpPen, angle: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenColor*( + pen: ptr GpPen, argb: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenColor*( + pen: ptr GpPen, argb: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenBrushFill*( + pen: ptr GpPen, brush: ptr GpBrush +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenBrushFill*( + pen: ptr GpPen, brush: ptr ptr GpBrush +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenFillType*( + pen: ptr GpPen, Type: ptr GpPenType +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenDashStyle*( + pen: ptr GpPen, dashstyle: ptr GpDashStyle +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenDashStyle*( + pen: ptr GpPen, dashstyle: GpDashStyle +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenDashOffset*( + pen: ptr GpPen, offset: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenDashOffset*( + pen: ptr GpPen, offset: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenDashCount*( + pen: ptr GpPen, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenDashArray*( + pen: ptr GpPen, dash: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenDashArray*( + pen: ptr GpPen, dash: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenCompoundCount*( + pen: ptr GpPen, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetPenCompoundArray*( + pen: ptr GpPen, dash: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetPenCompoundArray*( + pen: ptr GpPen, dash: ptr REAL, count: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateRegion*( + region: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateRegionRect*( + rect: ptr GpRectF, region: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateRegionRectI*( + rect: ptr GpRect, region: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateRegionPath*( + path: ptr GpPath, region: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateRegionRgnData*( + regionData: ptr BYTE, size: INT, region: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateRegionHrgn*( + hRgn: HRGN, region: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneRegion*( + region: ptr GpRegion, cloneRegion: ptr ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteRegion*( + region: ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetInfinite*( + region: ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetEmpty*( + region: ptr GpRegion +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCombineRegionRect*( + region: ptr GpRegion, rect: ptr GpRectF, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCombineRegionRectI*( + region: ptr GpRegion, rect: ptr GpRect, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCombineRegionPath*( + region: ptr GpRegion, path: ptr GpPath, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCombineRegionRegion*( + region: ptr GpRegion, region2: ptr GpRegion, combineMode: CombineMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateRegion*( + region: ptr GpRegion, dx: REAL, dy: REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateRegionI*( + region: ptr GpRegion, dx: INT, dy: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTransformRegion*( + region: ptr GpRegion, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionBounds*( + region: ptr GpRegion, graphics: ptr GpGraphics, rect: ptr GpRectF +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionBoundsI*( + region: ptr GpRegion, graphics: ptr GpGraphics, rect: ptr GpRect +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionHRgn*( + region: ptr GpRegion, graphics: ptr GpGraphics, hRgn: ptr HRGN +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsEmptyRegion*( + region: ptr GpRegion, graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsInfiniteRegion*( + region: ptr GpRegion, graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsEqualRegion*( + region: ptr GpRegion, + region2: ptr GpRegion, + graphics: ptr GpGraphics, + result: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionDataSize*( + region: ptr GpRegion, bufferSize: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionData*( + region: ptr GpRegion, buffer: ptr BYTE, bufferSize: UINT, sizeFilled: ptr UINT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleRegionPoint*( + region: ptr GpRegion, x: REAL, y: REAL, graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleRegionPointI*( + region: ptr GpRegion, x: INT, y: INT, graphics: ptr GpGraphics, result: ptr BOOL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleRegionRect*( + region: ptr GpRegion, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + graphics: ptr GpGraphics, + result: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipIsVisibleRegionRectI*( + region: ptr GpRegion, + x: INT, + y: INT, + width: INT, + height: INT, + graphics: ptr GpGraphics, + result: ptr BOOL, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionScansCount*( + region: ptr GpRegion, count: ptr UINT, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionScans*( + region: ptr GpRegion, rects: ptr GpRectF, count: ptr INT, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetRegionScansI*( + region: ptr GpRegion, rects: ptr GpRect, count: ptr INT, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateSolidFill*( + color: ARGB, brush: ptr ptr GpSolidFill +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetSolidFillColor*( + brush: ptr GpSolidFill, color: ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetSolidFillColor*( + brush: ptr GpSolidFill, color: ptr ARGB +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateStringFormat*( + formatAttributes: INT, language: LANGID, format: ptr ptr GpStringFormat +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipStringFormatGetGenericDefault*( + format: ptr ptr GpStringFormat +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipStringFormatGetGenericTypographic*( + format: ptr ptr GpStringFormat +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDeleteStringFormat*( + format: ptr GpStringFormat +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCloneStringFormat*( + format: ptr GpStringFormat, newFormat: ptr ptr GpStringFormat +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatFlags*( + format: ptr GpStringFormat, flags: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatFlags*( + format: ptr GpStringFormat, flags: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatAlign*( + format: ptr GpStringFormat, align: StringAlignment +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatAlign*( + format: ptr GpStringFormat, align: ptr StringAlignment +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatLineAlign*( + format: ptr GpStringFormat, align: StringAlignment +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatLineAlign*( + format: ptr GpStringFormat, align: ptr StringAlignment +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatTrimming*( + format: ptr GpStringFormat, trimming: StringTrimming +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatTrimming*( + format: ptr GpStringFormat, trimming: ptr StringTrimming +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatHotkeyPrefix*( + format: ptr GpStringFormat, hotkeyPrefix: INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatHotkeyPrefix*( + format: ptr GpStringFormat, hotkeyPrefix: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatTabStops*( + format: ptr GpStringFormat, firstTabOffset: REAL, count: INT, tabStops: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatTabStops*( + format: ptr GpStringFormat, count: INT, firstTabOffset: ptr REAL, tabStops: ptr REAL +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatTabStopCount*( + format: ptr GpStringFormat, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatDigitSubstitution*( + format: ptr GpStringFormat, language: LANGID, substitute: StringDigitSubstitute +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatDigitSubstitution*( + format: ptr GpStringFormat, + language: ptr LANGID, + substitute: ptr StringDigitSubstitute, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetStringFormatMeasurableCharacterRangeCount*( + format: ptr GpStringFormat, count: ptr INT +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetStringFormatMeasurableCharacterRanges*( + format: ptr GpStringFormat, rangeCount: INT, ranges: ptr CharacterRange +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawString*( + graphics: ptr GpGraphics, + string: ptr WCHAR, + length: INT, + font: ptr GpFont, + layoutRect: ptr GpRectF, + stringFormat: ptr GpStringFormat, + brush: ptr GpBrush, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMeasureString*( + graphics: ptr GpGraphics, + string: ptr WCHAR, + length: INT, + font: ptr GpFont, + layoutRect: ptr GpRectF, + stringFormat: ptr GpStringFormat, + boundingBox: ptr GpRectF, + codepointsFitted: ptr INT, + linesFilled: ptr INT, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipDrawDriverString*( + graphics: ptr GpGraphics, + text: ptr UINT16, + length: INT, + font: ptr GpFont, + brush: ptr GpBrush, + positions: ptr GpPointF, + flags: INT, + matrix: ptr GpMatrix, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMeasureDriverString*( + graphics: ptr GpGraphics, + text: ptr UINT16, + length: INT, + font: ptr GpFont, + positions: ptr GpPointF, + flags: INT, + matrix: ptr GpMatrix, + boundingBox: ptr GpRectF, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateTexture*( + image: ptr GpImage, wrapmode: GpWrapMode, texture: ptr ptr GpTexture +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateTexture2*( + image: ptr GpImage, + wrapmode: GpWrapMode, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + texture: ptr ptr GpTexture, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateTexture2I*( + image: ptr GpImage, + wrapmode: GpWrapMode, + x: INT, + y: INT, + width: INT, + height: INT, + texture: ptr ptr GpTexture, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateTextureIA*( + image: ptr GpImage, + imageAttributes: ptr GpImageAttributes, + x: REAL, + y: REAL, + width: REAL, + height: REAL, + texture: ptr ptr GpTexture, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipCreateTextureIAI*( + image: ptr GpImage, + imageAttributes: ptr GpImageAttributes, + x: INT, + y: INT, + width: INT, + height: INT, + texture: ptr ptr GpTexture, +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetTextureTransform*( + brush: ptr GpTexture, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetTextureTransform*( + brush: ptr GpTexture, matrix: ptr GpMatrix +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipResetTextureTransform*( + brush: ptr GpTexture +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipMultiplyTextureTransform*( + brush: ptr GpTexture, matrix: ptr GpMatrix, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTranslateTextureTransform*( + brush: ptr GpTexture, dx: REAL, dy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipScaleTextureTransform*( + brush: ptr GpTexture, sx: REAL, sy: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipRotateTextureTransform*( + brush: ptr GpTexture, angle: REAL, order: GpMatrixOrder +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipSetTextureWrapMode*( + brush: ptr GpTexture, wrapmode: GpWrapMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetTextureWrapMode*( + brush: ptr GpTexture, wrapmode: ptr GpWrapMode +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipGetTextureImage*( + brush: ptr GpTexture, image: ptr ptr GpImage +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc GdipTestControl*( + control: GpTestControlEnum, param: pointer +): GpStatus {.winapi, stdcall, dynlib: "gdiplus", importc.} + +proc `WmfHeader=`*(self: var MetafileHeader, x: METAHEADER) {.inline.} = + self.union1.WmfHeader = x + +proc WmfHeader*(self: MetafileHeader): METAHEADER {.inline.} = + self.union1.WmfHeader + +proc WmfHeader*(self: var MetafileHeader): var METAHEADER {.inline.} = + self.union1.WmfHeader + +proc `EmfHeader=`*(self: var MetafileHeader, x: ENHMETAHEADER3) {.inline.} = + self.union1.EmfHeader = x + +proc EmfHeader*(self: MetafileHeader): ENHMETAHEADER3 {.inline.} = + self.union1.EmfHeader + +proc EmfHeader*(self: var MetafileHeader): var ENHMETAHEADER3 {.inline.} = + self.union1.EmfHeader diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/http.nim --- a/semicongine/thirdparty/winim/winim/inc/http.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/http.nim Thu Aug 22 18:32:21 2024 +0700 @@ -69,40 +69,49 @@ HTTP_BYTE_RANGE* {.pure.} = object StartingOffset*: ULARGE_INTEGER Length*: ULARGE_INTEGER + PHTTP_BYTE_RANGE* = ptr HTTP_BYTE_RANGE HTTP_VERSION* {.pure.} = object MajorVersion*: USHORT MinorVersion*: USHORT + PHTTP_VERSION* = ptr HTTP_VERSION HTTP_KNOWN_HEADER* {.pure.} = object RawValueLength*: USHORT pRawValue*: PCSTR + PHTTP_KNOWN_HEADER* = ptr HTTP_KNOWN_HEADER HTTP_UNKNOWN_HEADER* {.pure.} = object NameLength*: USHORT RawValueLength*: USHORT pName*: PCSTR pRawValue*: PCSTR + PHTTP_UNKNOWN_HEADER* = ptr HTTP_UNKNOWN_HEADER HTTP_DATA_CHUNK_UNION1_FromMemory* {.pure.} = object pBuffer*: PVOID BufferLength*: ULONG + HTTP_DATA_CHUNK_UNION1_FromFileHandle* {.pure.} = object ByteRange*: HTTP_BYTE_RANGE FileHandle*: HANDLE + HTTP_DATA_CHUNK_UNION1_FromFragmentCache* {.pure.} = object FragmentNameLength*: USHORT pFragmentName*: PCWSTR + HTTP_DATA_CHUNK_UNION1* {.pure, union.} = object FromMemory*: HTTP_DATA_CHUNK_UNION1_FromMemory FromFileHandle*: HTTP_DATA_CHUNK_UNION1_FromFileHandle FromFragmentCache*: HTTP_DATA_CHUNK_UNION1_FromFragmentCache + HTTP_DATA_CHUNK* {.pure.} = object DataChunkType*: HTTP_DATA_CHUNK_TYPE union1*: HTTP_DATA_CHUNK_UNION1 + PHTTP_DATA_CHUNK* = ptr HTTP_DATA_CHUNK -const - httpHeaderRequestMaximum* = 41 + +const httpHeaderRequestMaximum* = 41 type HTTP_REQUEST_HEADERS* {.pure.} = object UnknownHeaderCount*: USHORT @@ -110,9 +119,10 @@ TrailerCount*: USHORT pTrailers*: PHTTP_UNKNOWN_HEADER KnownHeaders*: array[httpHeaderRequestMaximum, HTTP_KNOWN_HEADER] + PHTTP_REQUEST_HEADERS* = ptr HTTP_REQUEST_HEADERS -const - httpHeaderResponseMaximum* = 30 + +const httpHeaderResponseMaximum* = 30 type HTTP_RESPONSE_HEADERS* {.pure.} = object UnknownHeaderCount*: USHORT @@ -120,10 +130,12 @@ TrailerCount*: USHORT pTrailers*: PHTTP_UNKNOWN_HEADER KnownHeaders*: array[httpHeaderResponseMaximum, HTTP_KNOWN_HEADER] + PHTTP_RESPONSE_HEADERS* = ptr HTTP_RESPONSE_HEADERS HTTP_TRANSPORT_ADDRESS* {.pure.} = object pRemoteAddress*: PSOCKADDR pLocalAddress*: PSOCKADDR + PHTTP_TRANSPORT_ADDRESS* = ptr HTTP_TRANSPORT_ADDRESS HTTP_COOKED_URL* {.pure.} = object FullUrlLength*: USHORT @@ -134,6 +146,7 @@ pHost*: PCWSTR pAbsPath*: PCWSTR pQueryString*: PCWSTR + PHTTP_COOKED_URL* = ptr HTTP_COOKED_URL HTTP_SSL_CLIENT_CERT_INFO* {.pure.} = object CertFlags*: ULONG @@ -141,6 +154,7 @@ pCertEncoded*: PUCHAR Token*: HANDLE CertDeniedByMapper*: BOOLEAN + PHTTP_SSL_CLIENT_CERT_INFO* = ptr HTTP_SSL_CLIENT_CERT_INFO HTTP_SSL_INFO* {.pure.} = object ServerCertKeySize*: USHORT @@ -151,6 +165,7 @@ pServerCertSubject*: PCSTR pClientCertInfo*: PHTTP_SSL_CLIENT_CERT_INFO SslClientCertNegotiated*: ULONG + PHTTP_SSL_INFO* = ptr HTTP_SSL_INFO HTTP_REQUEST_V1* {.pure.} = object Flags*: ULONG @@ -171,11 +186,13 @@ pEntityChunks*: PHTTP_DATA_CHUNK RawConnectionId*: HTTP_RAW_CONNECTION_ID pSslInfo*: PHTTP_SSL_INFO + PHTTP_REQUEST_V1* = ptr HTTP_REQUEST_V1 HTTP_REQUEST_INFO* {.pure.} = object InfoType*: HTTP_REQUEST_INFO_TYPE InfoLength*: ULONG pInfo*: PVOID + PHTTP_REQUEST_INFO* = ptr HTTP_REQUEST_INFO HTTP_REQUEST_V2_STRUCT1* {.pure.} = object Flags*: ULONG @@ -196,10 +213,12 @@ pEntityChunks*: PHTTP_DATA_CHUNK RawConnectionId*: HTTP_RAW_CONNECTION_ID pSslInfo*: PHTTP_SSL_INFO + HTTP_REQUEST_V2* {.pure.} = object struct1*: HTTP_REQUEST_V2_STRUCT1 RequestInfoCount*: USHORT pRequestInfo*: PHTTP_REQUEST_INFO + PHTTP_REQUEST_V2* = ptr HTTP_REQUEST_V2 HTTP_REQUEST* = HTTP_REQUEST_V2 PHTTP_REQUEST* = ptr HTTP_REQUEST_V2 @@ -212,11 +231,13 @@ Headers*: HTTP_RESPONSE_HEADERS EntityChunkCount*: USHORT pEntityChunks*: PHTTP_DATA_CHUNK + PHTTP_RESPONSE_V1* = ptr HTTP_RESPONSE_V1 HTTP_RESPONSE_INFO* {.pure.} = object Type*: HTTP_RESPONSE_INFO_TYPE Length*: ULONG pInfo*: PVOID + PHTTP_RESPONSE_INFO* = ptr HTTP_RESPONSE_INFO HTTP_RESPONSE_V2_STRUCT1* {.pure.} = object Flags*: ULONG @@ -227,19 +248,23 @@ Headers*: HTTP_RESPONSE_HEADERS EntityChunkCount*: USHORT pEntityChunks*: PHTTP_DATA_CHUNK + HTTP_RESPONSE_V2* {.pure.} = object struct1*: HTTP_RESPONSE_V2_STRUCT1 ResponseInfoCount*: USHORT pResponseInfo*: PHTTP_RESPONSE_INFO + PHTTP_RESPONSE_V2* = ptr HTTP_RESPONSE_V2 HTTP_RESPONSE* = HTTP_RESPONSE_V2 PHTTP_RESPONSE* = ptr HTTP_RESPONSE_V2 HTTP_CACHE_POLICY* {.pure.} = object Policy*: HTTP_CACHE_POLICY_TYPE SecondsToLive*: ULONG + PHTTP_CACHE_POLICY* = ptr HTTP_CACHE_POLICY HTTP_SERVICE_CONFIG_SSL_KEY* {.pure.} = object pIpPort*: PSOCKADDR + PHTTP_SERVICE_CONFIG_SSL_KEY* = ptr HTTP_SERVICE_CONFIG_SSL_KEY HTTP_SERVICE_CONFIG_SSL_PARAM* {.pure.} = object SslHashLength*: ULONG @@ -252,71 +277,90 @@ pDefaultSslCtlIdentifier*: PWSTR pDefaultSslCtlStoreName*: PWSTR DefaultFlags*: DWORD + PHTTP_SERVICE_CONFIG_SSL_PARAM* = ptr HTTP_SERVICE_CONFIG_SSL_PARAM HTTP_SERVICE_CONFIG_SSL_SET* {.pure.} = object KeyDesc*: HTTP_SERVICE_CONFIG_SSL_KEY ParamDesc*: HTTP_SERVICE_CONFIG_SSL_PARAM + PHTTP_SERVICE_CONFIG_SSL_SET* = ptr HTTP_SERVICE_CONFIG_SSL_SET HTTP_SERVICE_CONFIG_SSL_QUERY* {.pure.} = object QueryDesc*: HTTP_SERVICE_CONFIG_QUERY_TYPE KeyDesc*: HTTP_SERVICE_CONFIG_SSL_KEY dwToken*: DWORD + PHTTP_SERVICE_CONFIG_SSL_QUERY* = ptr HTTP_SERVICE_CONFIG_SSL_QUERY HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM* {.pure.} = object AddrLength*: USHORT pAddress*: PSOCKADDR + PHTTP_SERVICE_CONFIG_IP_LISTEN_PARAM* = ptr HTTP_SERVICE_CONFIG_IP_LISTEN_PARAM HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY* {.pure.} = object AddrCount*: ULONG AddrList*: array[ANYSIZE_ARRAY, SOCKADDR_STORAGE] + PHTTP_SERVICE_CONFIG_IP_LISTEN_QUERY* = ptr HTTP_SERVICE_CONFIG_IP_LISTEN_QUERY HTTP_SERVICE_CONFIG_URLACL_KEY* {.pure.} = object pUrlPrefix*: PWSTR + PHTTP_SERVICE_CONFIG_URLACL_KEY* = ptr HTTP_SERVICE_CONFIG_URLACL_KEY HTTP_SERVICE_CONFIG_URLACL_PARAM* {.pure.} = object pStringSecurityDescriptor*: PWSTR + PHTTP_SERVICE_CONFIG_URLACL_PARAM* = ptr HTTP_SERVICE_CONFIG_URLACL_PARAM HTTP_SERVICE_CONFIG_URLACL_SET* {.pure.} = object KeyDesc*: HTTP_SERVICE_CONFIG_URLACL_KEY ParamDesc*: HTTP_SERVICE_CONFIG_URLACL_PARAM + PHTTP_SERVICE_CONFIG_URLACL_SET* = ptr HTTP_SERVICE_CONFIG_URLACL_SET HTTP_SERVICE_CONFIG_URLACL_QUERY* {.pure.} = object QueryDesc*: HTTP_SERVICE_CONFIG_QUERY_TYPE KeyDesc*: HTTP_SERVICE_CONFIG_URLACL_KEY dwToken*: DWORD + PHTTP_SERVICE_CONFIG_URLACL_QUERY* = ptr HTTP_SERVICE_CONFIG_URLACL_QUERY HTTPAPI_VERSION* {.pure.} = object HttpApiMajorVersion*: USHORT HttpApiMinorVersion*: USHORT + PHTTPAPI_VERSION* = ptr HTTPAPI_VERSION HTTP_LOG_DATA* {.pure.} = object Type*: HTTP_LOG_DATA_TYPE + PHTTP_LOG_DATA* = ptr HTTP_LOG_DATA HTTP_PROPERTY_FLAGS* {.pure.} = object - Present* {.bitsize:1.}: ULONG + Present* {.bitsize: 1.}: ULONG + PHTTP_PROPERTY_FLAGS* = ptr HTTP_PROPERTY_FLAGS HTTP_CONNECTION_LIMIT_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS MaxConnections*: ULONG + PHTTP_CONNECTION_LIMIT_INFO* = ptr HTTP_CONNECTION_LIMIT_INFO HTTP_STATE_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS State*: HTTP_ENABLED_STATE + PHTTP_STATE_INFO* = ptr HTTP_STATE_INFO HTTP_QOS_SETTING_INFO* {.pure.} = object QosType*: HTTP_QOS_SETTING_TYPE QosSetting*: PVOID + PHTTP_QOS_SETTING_INFO* = ptr HTTP_QOS_SETTING_INFO HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS* {.pure.} = object DomainNameLength*: USHORT DomainName*: PWSTR RealmLength*: USHORT Realm*: PWSTR - PHTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS* = ptr HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS + + PHTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS* = + ptr HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS* {.pure.} = object RealmLength*: USHORT Realm*: PWSTR - PHTTP_SERVER_AUTHENTICATION_BASIC_PARAMS* = ptr HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS + + PHTTP_SERVER_AUTHENTICATION_BASIC_PARAMS* = + ptr HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS HTTP_SERVER_AUTHENTICATION_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS AuthSchemes*: ULONG @@ -326,6 +370,7 @@ ExFlags*: UCHAR DigestParams*: HTTP_SERVER_AUTHENTICATION_DIGEST_PARAMS BasicParams*: HTTP_SERVER_AUTHENTICATION_BASIC_PARAMS + PHTTP_SERVER_AUTHENTICATION_INFO* = ptr HTTP_SERVER_AUTHENTICATION_INFO HTTP_LOGGING_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS @@ -342,6 +387,7 @@ RolloverType*: HTTP_LOGGING_ROLLOVER_TYPE RolloverSize*: ULONG pSecurityDescriptor*: PSECURITY_DESCRIPTOR + PHTTP_LOGGING_INFO* = ptr HTTP_LOGGING_INFO HTTP_TIMEOUT_LIMIT_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS @@ -351,31 +397,37 @@ IdleConnection*: USHORT HeaderWait*: USHORT MinSendRate*: ULONG + PHTTP_TIMEOUT_LIMIT_INFO* = ptr HTTP_TIMEOUT_LIMIT_INFO HTTP_SERVICE_BINDING_BASE* {.pure.} = object Type*: HTTP_SERVICE_BINDING_TYPE + PHTTP_SERVICE_BINDING_BASE* = ptr HTTP_SERVICE_BINDING_BASE HTTP_CHANNEL_BIND_INFO* {.pure.} = object Hardening*: HTTP_AUTHENTICATION_HARDENING_LEVELS Flags*: ULONG ServiceNames*: ptr PHTTP_SERVICE_BINDING_BASE NumberOfServiceNames*: ULONG + PHTTP_CHANNEL_BIND_INFO* = ptr HTTP_CHANNEL_BIND_INFO HTTP_REQUEST_CHANNEL_BIND_STATUS* {.pure.} = object ServiceName*: PHTTP_SERVICE_BINDING_BASE ChannelToken*: PUCHAR ChannelTokenSize*: ULONG Flags*: ULONG + PHTTP_REQUEST_CHANNEL_BIND_STATUS* = ptr HTTP_REQUEST_CHANNEL_BIND_STATUS HTTP_SERVICE_BINDING_A* {.pure.} = object Base*: HTTP_SERVICE_BINDING_BASE Buffer*: PCHAR BufferSize*: ULONG + PHTTP_SERVICE_BINDING_A* = ptr HTTP_SERVICE_BINDING_A HTTP_SERVICE_BINDING_W* {.pure.} = object Base*: HTTP_SERVICE_BINDING_BASE Buffer*: PWCHAR BufferSize*: ULONG + PHTTP_SERVICE_BINDING_W* = ptr HTTP_SERVICE_BINDING_W HTTP_LOG_FIELDS_DATA* {.pure.} = object Base*: HTTP_LOG_DATA @@ -407,6 +459,7 @@ Win32Status*: ULONG MethodNum*: HTTP_VERB SubStatus*: USHORT + PHTTP_LOG_FIELDS_DATA* = ptr HTTP_LOG_FIELDS_DATA HTTP_REQUEST_AUTH_INFO* {.pure.} = object AuthStatus*: HTTP_AUTH_STATUS @@ -420,39 +473,48 @@ PackedContext*: PVOID MutualAuthDataLength*: ULONG pMutualAuthData*: PCHAR + PHTTP_REQUEST_AUTH_INFO* = ptr HTTP_REQUEST_AUTH_INFO HTTP_MULTIPLE_KNOWN_HEADERS* {.pure.} = object HeaderId*: HTTP_HEADER_ID Flags*: ULONG KnownHeaderCount*: USHORT KnownHeaders*: PHTTP_KNOWN_HEADER + PHTTP_MULTIPLE_KNOWN_HEADERS* = ptr HTTP_MULTIPLE_KNOWN_HEADERS HTTP_SERVICE_CONFIG_TIMEOUT_SET* {.pure.} = object KeyDesc*: HTTP_SERVICE_CONFIG_TIMEOUT_KEY ParamDesc*: HTTP_SERVICE_CONFIG_TIMEOUT_PARAM + PHTTP_SERVICE_CONFIG_TIMEOUT_SET* = ptr HTTP_SERVICE_CONFIG_TIMEOUT_SET HTTP_BANDWIDTH_LIMIT_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS MaxBandwidth*: ULONG + PHTTP_BANDWIDTH_LIMIT_INFO* = ptr HTTP_BANDWIDTH_LIMIT_INFO HTTP_BINDING_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS RequestQueueHandle*: HANDLE + PHTTP_BINDING_INFO* = ptr HTTP_BINDING_INFO HTTP_LISTEN_ENDPOINT_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS EnableSharing*: BOOLEAN + PHTTP_LISTEN_ENDPOINT_INFO* = ptr HTTP_LISTEN_ENDPOINT_INFO HTTP_FLOWRATE_INFO* {.pure.} = object Flags*: HTTP_PROPERTY_FLAGS MaxBandwidth*: ULONG MaxPeakBandwidth*: ULONG BurstSize*: ULONG + PHTTP_FLOWRATE_INFO* = ptr HTTP_FLOWRATE_INFO HTTP_SERVICE_CONFIG_CACHE_SET* {.pure.} = object KeyDesc*: HTTP_SERVICE_CONFIG_CACHE_KEY ParamDesc*: HTTP_SERVICE_CONFIG_CACHE_PARAM + PHTTP_SERVICE_CONFIG_CACHE_SET* = ptr HTTP_SERVICE_CONFIG_CACHE_SET + const HTTP_INITIALIZE_SERVER* = 0x00000001 HTTP_INITIALIZE_CONFIG* = 0x00000002 @@ -463,10 +525,10 @@ HTTP_SEND_RESPONSE_FLAG_BUFFER_DATA* = 0x00000004 HTTP_FLUSH_RESPONSE_FLAG_RECURSIVE* = 0x00000001 HTTP_NULL_ID* = 0 - HTTP_VERSION_UNKNOWN* = [0'u8,0] - HTTP_VERSION_0_9* = [0'u8,9] - HTTP_VERSION_1_0* = [1'u8,0] - HTTP_VERSION_1_1* = [1'u8,1] + HTTP_VERSION_UNKNOWN* = [0'u8, 0] + HTTP_VERSION_0_9* = [0'u8, 9] + HTTP_VERSION_1_0* = [1'u8, 0] + HTTP_VERSION_1_1* = [1'u8, 1] httpVerbUnparsed* = 0 httpVerbUnknown* = 1 httpVerbInvalid* = 2 @@ -614,124 +676,514 @@ maxCacheResponseSize* = 0 cacheRangeChunkSize* = 1 HTTP_BYTE_RANGE_TO_EOF* = not ULONGLONG(0) -proc HttpInitialize*(Version: HTTPAPI_VERSION, Flags: ULONG, pReserved: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpTerminate*(Flags: ULONG, pReserved: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCreateHttpHandle*(pReqQueueHandle: PHANDLE, Options: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpReceiveClientCertificate*(ReqQueueHandle: HANDLE, ConnectionId: HTTP_CONNECTION_ID, Flags: ULONG, pSslClientCertInfo: PHTTP_SSL_CLIENT_CERT_INFO, SslClientCertInfoSize: ULONG, pBytesReceived: PULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpAddUrl*(ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR, pReserved: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpRemoveUrl*(ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpReceiveHttpRequest*(ReqQueueHandle: HANDLE, RequestId: HTTP_REQUEST_ID, Flags: ULONG, pRequestBuffer: PHTTP_REQUEST, RequestBufferLength: ULONG, pBytesReceived: PULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpReceiveRequestEntityBody*(ReqQueueHandle: HANDLE, RequestId: HTTP_REQUEST_ID, Flags: ULONG, pBuffer: PVOID, BufferLength: ULONG, pBytesReceived: PULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpSendHttpResponse*(ReqQueueHandle: HANDLE, RequestId: HTTP_REQUEST_ID, Flags: ULONG, pHttpResponse: PHTTP_RESPONSE, pReserved1: PVOID, pBytesSent: PULONG, pReserved2: PVOID, Reserved3: ULONG, pOverlapped: LPOVERLAPPED, pReserved4: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpSendResponseEntityBody*(ReqQueueHandle: HANDLE, RequestId: HTTP_REQUEST_ID, Flags: ULONG, EntityChunkCount: USHORT, pEntityChunks: PHTTP_DATA_CHUNK, pBytesSent: PULONG, pReserved1: PVOID, Reserved2: ULONG, pOverlapped: LPOVERLAPPED, pReserved3: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpWaitForDisconnect*(ReqQueueHandle: HANDLE, ConnectionId: HTTP_CONNECTION_ID, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpFlushResponseCache*(ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR, Flags: ULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpAddFragmentToCache*(ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR, pDataChunk: PHTTP_DATA_CHUNK, pCachePolicy: PHTTP_CACHE_POLICY, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpReadFragmentFromCache*(ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR, pByteRange: PHTTP_BYTE_RANGE, pBuffer: PVOID, BufferLength: ULONG, pBytesRead: PULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpSetServiceConfiguration*(ServiceHandle: HANDLE, ConfigId: HTTP_SERVICE_CONFIG_ID, pConfigInformation: PVOID, ConfigInformationLength: ULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpDeleteServiceConfiguration*(ServiceHandle: HANDLE, ConfigId: HTTP_SERVICE_CONFIG_ID, pConfigInformation: PVOID, ConfigInformationLength: ULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpQueryServiceConfiguration*(ServiceHandle: HANDLE, ConfigId: HTTP_SERVICE_CONFIG_ID, pInputConfigInformation: PVOID, InputConfigInformationLength: ULONG, pOutputConfigInformation: PVOID, OutputConfigInformationLength: ULONG, pReturnLength: PULONG, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpSetRequestQueueProperty*(Handle: HANDLE, Property: HTTP_SERVER_PROPERTY, pPropertyInformation: PVOID, PropertyInformationLength: ULONG, Reserved: ULONG, pReserved: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpQueryRequestQueueProperty*(Handle: HANDLE, Property: HTTP_SERVER_PROPERTY, pPropertyInformation: PVOID, PropertyInformationLength: ULONG, Reserved: ULONG, pReturnLength: PULONG, pReserved: PVOID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCreateRequestQueue*(Version: HTTPAPI_VERSION, pName: PCWSTR, pSecurityAttributes: PSECURITY_ATTRIBUTES, Flags: ULONG, pReqQueueHandle: PHANDLE): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpAddUrlToUrlGroup*(UrlGroupId: HTTP_URL_GROUP_ID, pFullyQualifiedUrl: PCWSTR, UrlContext: HTTP_URL_CONTEXT, Reserved: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCancelHttpRequest*(ReqQueueHandle: HANDLE, RequestId: HTTP_REQUEST_ID, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCloseRequestQueue*(ReqQueueHandle: HANDLE): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCloseServerSession*(ServerSessionId: HTTP_SERVER_SESSION_ID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCloseUrlGroup*(UrlGroupId: HTTP_URL_GROUP_ID): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCreateServerSession*(Version: HTTPAPI_VERSION, pServerSessionId: PHTTP_SERVER_SESSION_ID, Reserved: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpCreateUrlGroup*(ServerSessionId: HTTP_SERVER_SESSION_ID, pUrlGroupId: PHTTP_URL_GROUP_ID, Reserved: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpQueryServerSessionProperty*(ServerSessionId: HTTP_SERVER_SESSION_ID, Property: HTTP_SERVER_PROPERTY, pPropertyInformation: PVOID, PropertyInformationLength: ULONG, pReturnLength: PULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpQueryUrlGroupProperty*(UrlGroupId: HTTP_URL_GROUP_ID, Property: HTTP_SERVER_PROPERTY, pPropertyInformation: PVOID, PropertyInformationLength: ULONG, pReturnLength: PULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpRemoveUrlFromUrlGroup*(UrlGroupId: HTTP_URL_GROUP_ID, pFullyQualifiedUrl: PCWSTR, Flags: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpSetServerSessionProperty*(ServerSessionId: HTTP_SERVER_SESSION_ID, Property: HTTP_SERVER_PROPERTY, pPropertyInformation: PVOID, PropertyInformationLength: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpSetUrlGroupProperty*(UrlGroupId: HTTP_URL_GROUP_ID, Property: HTTP_SERVER_PROPERTY, pPropertyInformation: PVOID, PropertyInformationLength: ULONG): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpShutdownRequestQueue*(ReqQueueHandle: HANDLE): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc HttpWaitForDemandStart*(ReqQueueHandle: HANDLE, pOverlapped: LPOVERLAPPED): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} -proc `FromMemory=`*(self: var HTTP_DATA_CHUNK, x: HTTP_DATA_CHUNK_UNION1_FromMemory) {.inline.} = self.union1.FromMemory = x -proc FromMemory*(self: HTTP_DATA_CHUNK): HTTP_DATA_CHUNK_UNION1_FromMemory {.inline.} = self.union1.FromMemory -proc FromMemory*(self: var HTTP_DATA_CHUNK): var HTTP_DATA_CHUNK_UNION1_FromMemory {.inline.} = self.union1.FromMemory -proc `FromFileHandle=`*(self: var HTTP_DATA_CHUNK, x: HTTP_DATA_CHUNK_UNION1_FromFileHandle) {.inline.} = self.union1.FromFileHandle = x -proc FromFileHandle*(self: HTTP_DATA_CHUNK): HTTP_DATA_CHUNK_UNION1_FromFileHandle {.inline.} = self.union1.FromFileHandle -proc FromFileHandle*(self: var HTTP_DATA_CHUNK): var HTTP_DATA_CHUNK_UNION1_FromFileHandle {.inline.} = self.union1.FromFileHandle -proc `FromFragmentCache=`*(self: var HTTP_DATA_CHUNK, x: HTTP_DATA_CHUNK_UNION1_FromFragmentCache) {.inline.} = self.union1.FromFragmentCache = x -proc FromFragmentCache*(self: HTTP_DATA_CHUNK): HTTP_DATA_CHUNK_UNION1_FromFragmentCache {.inline.} = self.union1.FromFragmentCache -proc FromFragmentCache*(self: var HTTP_DATA_CHUNK): var HTTP_DATA_CHUNK_UNION1_FromFragmentCache {.inline.} = self.union1.FromFragmentCache -proc `Flags=`*(self: var HTTP_REQUEST_V2, x: ULONG) {.inline.} = self.struct1.Flags = x -proc Flags*(self: HTTP_REQUEST_V2): ULONG {.inline.} = self.struct1.Flags -proc Flags*(self: var HTTP_REQUEST_V2): var ULONG {.inline.} = self.struct1.Flags -proc `ConnectionId=`*(self: var HTTP_REQUEST_V2, x: HTTP_CONNECTION_ID) {.inline.} = self.struct1.ConnectionId = x -proc ConnectionId*(self: HTTP_REQUEST_V2): HTTP_CONNECTION_ID {.inline.} = self.struct1.ConnectionId -proc ConnectionId*(self: var HTTP_REQUEST_V2): var HTTP_CONNECTION_ID {.inline.} = self.struct1.ConnectionId -proc `RequestId=`*(self: var HTTP_REQUEST_V2, x: HTTP_REQUEST_ID) {.inline.} = self.struct1.RequestId = x -proc RequestId*(self: HTTP_REQUEST_V2): HTTP_REQUEST_ID {.inline.} = self.struct1.RequestId -proc RequestId*(self: var HTTP_REQUEST_V2): var HTTP_REQUEST_ID {.inline.} = self.struct1.RequestId -proc `UrlContext=`*(self: var HTTP_REQUEST_V2, x: HTTP_URL_CONTEXT) {.inline.} = self.struct1.UrlContext = x -proc UrlContext*(self: HTTP_REQUEST_V2): HTTP_URL_CONTEXT {.inline.} = self.struct1.UrlContext -proc UrlContext*(self: var HTTP_REQUEST_V2): var HTTP_URL_CONTEXT {.inline.} = self.struct1.UrlContext -proc `Version=`*(self: var HTTP_REQUEST_V2, x: HTTP_VERSION) {.inline.} = self.struct1.Version = x -proc Version*(self: HTTP_REQUEST_V2): HTTP_VERSION {.inline.} = self.struct1.Version -proc Version*(self: var HTTP_REQUEST_V2): var HTTP_VERSION {.inline.} = self.struct1.Version -proc `Verb=`*(self: var HTTP_REQUEST_V2, x: HTTP_VERB) {.inline.} = self.struct1.Verb = x -proc Verb*(self: HTTP_REQUEST_V2): HTTP_VERB {.inline.} = self.struct1.Verb -proc Verb*(self: var HTTP_REQUEST_V2): var HTTP_VERB {.inline.} = self.struct1.Verb -proc `UnknownVerbLength=`*(self: var HTTP_REQUEST_V2, x: USHORT) {.inline.} = self.struct1.UnknownVerbLength = x -proc UnknownVerbLength*(self: HTTP_REQUEST_V2): USHORT {.inline.} = self.struct1.UnknownVerbLength -proc UnknownVerbLength*(self: var HTTP_REQUEST_V2): var USHORT {.inline.} = self.struct1.UnknownVerbLength -proc `RawUrlLength=`*(self: var HTTP_REQUEST_V2, x: USHORT) {.inline.} = self.struct1.RawUrlLength = x -proc RawUrlLength*(self: HTTP_REQUEST_V2): USHORT {.inline.} = self.struct1.RawUrlLength -proc RawUrlLength*(self: var HTTP_REQUEST_V2): var USHORT {.inline.} = self.struct1.RawUrlLength -proc `pUnknownVerb=`*(self: var HTTP_REQUEST_V2, x: PCSTR) {.inline.} = self.struct1.pUnknownVerb = x -proc pUnknownVerb*(self: HTTP_REQUEST_V2): PCSTR {.inline.} = self.struct1.pUnknownVerb -proc pUnknownVerb*(self: var HTTP_REQUEST_V2): var PCSTR {.inline.} = self.struct1.pUnknownVerb -proc `pRawUrl=`*(self: var HTTP_REQUEST_V2, x: PCSTR) {.inline.} = self.struct1.pRawUrl = x -proc pRawUrl*(self: HTTP_REQUEST_V2): PCSTR {.inline.} = self.struct1.pRawUrl -proc pRawUrl*(self: var HTTP_REQUEST_V2): var PCSTR {.inline.} = self.struct1.pRawUrl -proc `CookedUrl=`*(self: var HTTP_REQUEST_V2, x: HTTP_COOKED_URL) {.inline.} = self.struct1.CookedUrl = x -proc CookedUrl*(self: HTTP_REQUEST_V2): HTTP_COOKED_URL {.inline.} = self.struct1.CookedUrl -proc CookedUrl*(self: var HTTP_REQUEST_V2): var HTTP_COOKED_URL {.inline.} = self.struct1.CookedUrl -proc `Address=`*(self: var HTTP_REQUEST_V2, x: HTTP_TRANSPORT_ADDRESS) {.inline.} = self.struct1.Address = x -proc Address*(self: HTTP_REQUEST_V2): HTTP_TRANSPORT_ADDRESS {.inline.} = self.struct1.Address -proc Address*(self: var HTTP_REQUEST_V2): var HTTP_TRANSPORT_ADDRESS {.inline.} = self.struct1.Address -proc `Headers=`*(self: var HTTP_REQUEST_V2, x: HTTP_REQUEST_HEADERS) {.inline.} = self.struct1.Headers = x -proc Headers*(self: HTTP_REQUEST_V2): HTTP_REQUEST_HEADERS {.inline.} = self.struct1.Headers -proc Headers*(self: var HTTP_REQUEST_V2): var HTTP_REQUEST_HEADERS {.inline.} = self.struct1.Headers -proc `BytesReceived=`*(self: var HTTP_REQUEST_V2, x: ULONGLONG) {.inline.} = self.struct1.BytesReceived = x -proc BytesReceived*(self: HTTP_REQUEST_V2): ULONGLONG {.inline.} = self.struct1.BytesReceived -proc BytesReceived*(self: var HTTP_REQUEST_V2): var ULONGLONG {.inline.} = self.struct1.BytesReceived -proc `EntityChunkCount=`*(self: var HTTP_REQUEST_V2, x: USHORT) {.inline.} = self.struct1.EntityChunkCount = x -proc EntityChunkCount*(self: HTTP_REQUEST_V2): USHORT {.inline.} = self.struct1.EntityChunkCount -proc EntityChunkCount*(self: var HTTP_REQUEST_V2): var USHORT {.inline.} = self.struct1.EntityChunkCount -proc `pEntityChunks=`*(self: var HTTP_REQUEST_V2, x: PHTTP_DATA_CHUNK) {.inline.} = self.struct1.pEntityChunks = x -proc pEntityChunks*(self: HTTP_REQUEST_V2): PHTTP_DATA_CHUNK {.inline.} = self.struct1.pEntityChunks -proc pEntityChunks*(self: var HTTP_REQUEST_V2): var PHTTP_DATA_CHUNK {.inline.} = self.struct1.pEntityChunks -proc `RawConnectionId=`*(self: var HTTP_REQUEST_V2, x: HTTP_RAW_CONNECTION_ID) {.inline.} = self.struct1.RawConnectionId = x -proc RawConnectionId*(self: HTTP_REQUEST_V2): HTTP_RAW_CONNECTION_ID {.inline.} = self.struct1.RawConnectionId -proc RawConnectionId*(self: var HTTP_REQUEST_V2): var HTTP_RAW_CONNECTION_ID {.inline.} = self.struct1.RawConnectionId -proc `pSslInfo=`*(self: var HTTP_REQUEST_V2, x: PHTTP_SSL_INFO) {.inline.} = self.struct1.pSslInfo = x -proc pSslInfo*(self: HTTP_REQUEST_V2): PHTTP_SSL_INFO {.inline.} = self.struct1.pSslInfo -proc pSslInfo*(self: var HTTP_REQUEST_V2): var PHTTP_SSL_INFO {.inline.} = self.struct1.pSslInfo -proc `Flags=`*(self: var HTTP_RESPONSE_V2, x: ULONG) {.inline.} = self.struct1.Flags = x -proc Flags*(self: HTTP_RESPONSE_V2): ULONG {.inline.} = self.struct1.Flags -proc Flags*(self: var HTTP_RESPONSE_V2): var ULONG {.inline.} = self.struct1.Flags -proc `Version=`*(self: var HTTP_RESPONSE_V2, x: HTTP_VERSION) {.inline.} = self.struct1.Version = x -proc Version*(self: HTTP_RESPONSE_V2): HTTP_VERSION {.inline.} = self.struct1.Version -proc Version*(self: var HTTP_RESPONSE_V2): var HTTP_VERSION {.inline.} = self.struct1.Version -proc `StatusCode=`*(self: var HTTP_RESPONSE_V2, x: USHORT) {.inline.} = self.struct1.StatusCode = x -proc StatusCode*(self: HTTP_RESPONSE_V2): USHORT {.inline.} = self.struct1.StatusCode -proc StatusCode*(self: var HTTP_RESPONSE_V2): var USHORT {.inline.} = self.struct1.StatusCode -proc `ReasonLength=`*(self: var HTTP_RESPONSE_V2, x: USHORT) {.inline.} = self.struct1.ReasonLength = x -proc ReasonLength*(self: HTTP_RESPONSE_V2): USHORT {.inline.} = self.struct1.ReasonLength -proc ReasonLength*(self: var HTTP_RESPONSE_V2): var USHORT {.inline.} = self.struct1.ReasonLength -proc `pReason=`*(self: var HTTP_RESPONSE_V2, x: PCSTR) {.inline.} = self.struct1.pReason = x -proc pReason*(self: HTTP_RESPONSE_V2): PCSTR {.inline.} = self.struct1.pReason -proc pReason*(self: var HTTP_RESPONSE_V2): var PCSTR {.inline.} = self.struct1.pReason -proc `Headers=`*(self: var HTTP_RESPONSE_V2, x: HTTP_RESPONSE_HEADERS) {.inline.} = self.struct1.Headers = x -proc Headers*(self: HTTP_RESPONSE_V2): HTTP_RESPONSE_HEADERS {.inline.} = self.struct1.Headers -proc Headers*(self: var HTTP_RESPONSE_V2): var HTTP_RESPONSE_HEADERS {.inline.} = self.struct1.Headers -proc `EntityChunkCount=`*(self: var HTTP_RESPONSE_V2, x: USHORT) {.inline.} = self.struct1.EntityChunkCount = x -proc EntityChunkCount*(self: HTTP_RESPONSE_V2): USHORT {.inline.} = self.struct1.EntityChunkCount -proc EntityChunkCount*(self: var HTTP_RESPONSE_V2): var USHORT {.inline.} = self.struct1.EntityChunkCount -proc `pEntityChunks=`*(self: var HTTP_RESPONSE_V2, x: PHTTP_DATA_CHUNK) {.inline.} = self.struct1.pEntityChunks = x -proc pEntityChunks*(self: HTTP_RESPONSE_V2): PHTTP_DATA_CHUNK {.inline.} = self.struct1.pEntityChunks -proc pEntityChunks*(self: var HTTP_RESPONSE_V2): var PHTTP_DATA_CHUNK {.inline.} = self.struct1.pEntityChunks +proc HttpInitialize*( + Version: HTTPAPI_VERSION, Flags: ULONG, pReserved: PVOID +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpTerminate*( + Flags: ULONG, pReserved: PVOID +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCreateHttpHandle*( + pReqQueueHandle: PHANDLE, Options: ULONG +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpReceiveClientCertificate*( + ReqQueueHandle: HANDLE, + ConnectionId: HTTP_CONNECTION_ID, + Flags: ULONG, + pSslClientCertInfo: PHTTP_SSL_CLIENT_CERT_INFO, + SslClientCertInfoSize: ULONG, + pBytesReceived: PULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpAddUrl*( + ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR, pReserved: PVOID +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpRemoveUrl*( + ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpReceiveHttpRequest*( + ReqQueueHandle: HANDLE, + RequestId: HTTP_REQUEST_ID, + Flags: ULONG, + pRequestBuffer: PHTTP_REQUEST, + RequestBufferLength: ULONG, + pBytesReceived: PULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpReceiveRequestEntityBody*( + ReqQueueHandle: HANDLE, + RequestId: HTTP_REQUEST_ID, + Flags: ULONG, + pBuffer: PVOID, + BufferLength: ULONG, + pBytesReceived: PULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpSendHttpResponse*( + ReqQueueHandle: HANDLE, + RequestId: HTTP_REQUEST_ID, + Flags: ULONG, + pHttpResponse: PHTTP_RESPONSE, + pReserved1: PVOID, + pBytesSent: PULONG, + pReserved2: PVOID, + Reserved3: ULONG, + pOverlapped: LPOVERLAPPED, + pReserved4: PVOID, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpSendResponseEntityBody*( + ReqQueueHandle: HANDLE, + RequestId: HTTP_REQUEST_ID, + Flags: ULONG, + EntityChunkCount: USHORT, + pEntityChunks: PHTTP_DATA_CHUNK, + pBytesSent: PULONG, + pReserved1: PVOID, + Reserved2: ULONG, + pOverlapped: LPOVERLAPPED, + pReserved3: PVOID, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpWaitForDisconnect*( + ReqQueueHandle: HANDLE, ConnectionId: HTTP_CONNECTION_ID, pOverlapped: LPOVERLAPPED +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpFlushResponseCache*( + ReqQueueHandle: HANDLE, pUrlPrefix: PCWSTR, Flags: ULONG, pOverlapped: LPOVERLAPPED +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpAddFragmentToCache*( + ReqQueueHandle: HANDLE, + pUrlPrefix: PCWSTR, + pDataChunk: PHTTP_DATA_CHUNK, + pCachePolicy: PHTTP_CACHE_POLICY, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpReadFragmentFromCache*( + ReqQueueHandle: HANDLE, + pUrlPrefix: PCWSTR, + pByteRange: PHTTP_BYTE_RANGE, + pBuffer: PVOID, + BufferLength: ULONG, + pBytesRead: PULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpSetServiceConfiguration*( + ServiceHandle: HANDLE, + ConfigId: HTTP_SERVICE_CONFIG_ID, + pConfigInformation: PVOID, + ConfigInformationLength: ULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpDeleteServiceConfiguration*( + ServiceHandle: HANDLE, + ConfigId: HTTP_SERVICE_CONFIG_ID, + pConfigInformation: PVOID, + ConfigInformationLength: ULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpQueryServiceConfiguration*( + ServiceHandle: HANDLE, + ConfigId: HTTP_SERVICE_CONFIG_ID, + pInputConfigInformation: PVOID, + InputConfigInformationLength: ULONG, + pOutputConfigInformation: PVOID, + OutputConfigInformationLength: ULONG, + pReturnLength: PULONG, + pOverlapped: LPOVERLAPPED, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpSetRequestQueueProperty*( + Handle: HANDLE, + Property: HTTP_SERVER_PROPERTY, + pPropertyInformation: PVOID, + PropertyInformationLength: ULONG, + Reserved: ULONG, + pReserved: PVOID, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpQueryRequestQueueProperty*( + Handle: HANDLE, + Property: HTTP_SERVER_PROPERTY, + pPropertyInformation: PVOID, + PropertyInformationLength: ULONG, + Reserved: ULONG, + pReturnLength: PULONG, + pReserved: PVOID, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCreateRequestQueue*( + Version: HTTPAPI_VERSION, + pName: PCWSTR, + pSecurityAttributes: PSECURITY_ATTRIBUTES, + Flags: ULONG, + pReqQueueHandle: PHANDLE, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpAddUrlToUrlGroup*( + UrlGroupId: HTTP_URL_GROUP_ID, + pFullyQualifiedUrl: PCWSTR, + UrlContext: HTTP_URL_CONTEXT, + Reserved: ULONG, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCancelHttpRequest*( + ReqQueueHandle: HANDLE, RequestId: HTTP_REQUEST_ID, pOverlapped: LPOVERLAPPED +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCloseRequestQueue*( + ReqQueueHandle: HANDLE +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCloseServerSession*( + ServerSessionId: HTTP_SERVER_SESSION_ID +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCloseUrlGroup*( + UrlGroupId: HTTP_URL_GROUP_ID +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCreateServerSession*( + Version: HTTPAPI_VERSION, pServerSessionId: PHTTP_SERVER_SESSION_ID, Reserved: ULONG +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpCreateUrlGroup*( + ServerSessionId: HTTP_SERVER_SESSION_ID, + pUrlGroupId: PHTTP_URL_GROUP_ID, + Reserved: ULONG, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpQueryServerSessionProperty*( + ServerSessionId: HTTP_SERVER_SESSION_ID, + Property: HTTP_SERVER_PROPERTY, + pPropertyInformation: PVOID, + PropertyInformationLength: ULONG, + pReturnLength: PULONG, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpQueryUrlGroupProperty*( + UrlGroupId: HTTP_URL_GROUP_ID, + Property: HTTP_SERVER_PROPERTY, + pPropertyInformation: PVOID, + PropertyInformationLength: ULONG, + pReturnLength: PULONG, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpRemoveUrlFromUrlGroup*( + UrlGroupId: HTTP_URL_GROUP_ID, pFullyQualifiedUrl: PCWSTR, Flags: ULONG +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpSetServerSessionProperty*( + ServerSessionId: HTTP_SERVER_SESSION_ID, + Property: HTTP_SERVER_PROPERTY, + pPropertyInformation: PVOID, + PropertyInformationLength: ULONG, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpSetUrlGroupProperty*( + UrlGroupId: HTTP_URL_GROUP_ID, + Property: HTTP_SERVER_PROPERTY, + pPropertyInformation: PVOID, + PropertyInformationLength: ULONG, +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpShutdownRequestQueue*( + ReqQueueHandle: HANDLE +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc HttpWaitForDemandStart*( + ReqQueueHandle: HANDLE, pOverlapped: LPOVERLAPPED +): ULONG {.winapi, stdcall, dynlib: "httpapi", importc.} + +proc `FromMemory=`*( + self: var HTTP_DATA_CHUNK, x: HTTP_DATA_CHUNK_UNION1_FromMemory +) {.inline.} = + self.union1.FromMemory = x + +proc FromMemory*(self: HTTP_DATA_CHUNK): HTTP_DATA_CHUNK_UNION1_FromMemory {.inline.} = + self.union1.FromMemory + +proc FromMemory*( + self: var HTTP_DATA_CHUNK +): var HTTP_DATA_CHUNK_UNION1_FromMemory {.inline.} = + self.union1.FromMemory + +proc `FromFileHandle=`*( + self: var HTTP_DATA_CHUNK, x: HTTP_DATA_CHUNK_UNION1_FromFileHandle +) {.inline.} = + self.union1.FromFileHandle = x + +proc FromFileHandle*( + self: HTTP_DATA_CHUNK +): HTTP_DATA_CHUNK_UNION1_FromFileHandle {.inline.} = + self.union1.FromFileHandle + +proc FromFileHandle*( + self: var HTTP_DATA_CHUNK +): var HTTP_DATA_CHUNK_UNION1_FromFileHandle {.inline.} = + self.union1.FromFileHandle + +proc `FromFragmentCache=`*( + self: var HTTP_DATA_CHUNK, x: HTTP_DATA_CHUNK_UNION1_FromFragmentCache +) {.inline.} = + self.union1.FromFragmentCache = x + +proc FromFragmentCache*( + self: HTTP_DATA_CHUNK +): HTTP_DATA_CHUNK_UNION1_FromFragmentCache {.inline.} = + self.union1.FromFragmentCache + +proc FromFragmentCache*( + self: var HTTP_DATA_CHUNK +): var HTTP_DATA_CHUNK_UNION1_FromFragmentCache {.inline.} = + self.union1.FromFragmentCache + +proc `Flags=`*(self: var HTTP_REQUEST_V2, x: ULONG) {.inline.} = + self.struct1.Flags = x + +proc Flags*(self: HTTP_REQUEST_V2): ULONG {.inline.} = + self.struct1.Flags + +proc Flags*(self: var HTTP_REQUEST_V2): var ULONG {.inline.} = + self.struct1.Flags + +proc `ConnectionId=`*(self: var HTTP_REQUEST_V2, x: HTTP_CONNECTION_ID) {.inline.} = + self.struct1.ConnectionId = x + +proc ConnectionId*(self: HTTP_REQUEST_V2): HTTP_CONNECTION_ID {.inline.} = + self.struct1.ConnectionId + +proc ConnectionId*(self: var HTTP_REQUEST_V2): var HTTP_CONNECTION_ID {.inline.} = + self.struct1.ConnectionId + +proc `RequestId=`*(self: var HTTP_REQUEST_V2, x: HTTP_REQUEST_ID) {.inline.} = + self.struct1.RequestId = x + +proc RequestId*(self: HTTP_REQUEST_V2): HTTP_REQUEST_ID {.inline.} = + self.struct1.RequestId + +proc RequestId*(self: var HTTP_REQUEST_V2): var HTTP_REQUEST_ID {.inline.} = + self.struct1.RequestId + +proc `UrlContext=`*(self: var HTTP_REQUEST_V2, x: HTTP_URL_CONTEXT) {.inline.} = + self.struct1.UrlContext = x + +proc UrlContext*(self: HTTP_REQUEST_V2): HTTP_URL_CONTEXT {.inline.} = + self.struct1.UrlContext + +proc UrlContext*(self: var HTTP_REQUEST_V2): var HTTP_URL_CONTEXT {.inline.} = + self.struct1.UrlContext + +proc `Version=`*(self: var HTTP_REQUEST_V2, x: HTTP_VERSION) {.inline.} = + self.struct1.Version = x + +proc Version*(self: HTTP_REQUEST_V2): HTTP_VERSION {.inline.} = + self.struct1.Version + +proc Version*(self: var HTTP_REQUEST_V2): var HTTP_VERSION {.inline.} = + self.struct1.Version + +proc `Verb=`*(self: var HTTP_REQUEST_V2, x: HTTP_VERB) {.inline.} = + self.struct1.Verb = x + +proc Verb*(self: HTTP_REQUEST_V2): HTTP_VERB {.inline.} = + self.struct1.Verb + +proc Verb*(self: var HTTP_REQUEST_V2): var HTTP_VERB {.inline.} = + self.struct1.Verb + +proc `UnknownVerbLength=`*(self: var HTTP_REQUEST_V2, x: USHORT) {.inline.} = + self.struct1.UnknownVerbLength = x + +proc UnknownVerbLength*(self: HTTP_REQUEST_V2): USHORT {.inline.} = + self.struct1.UnknownVerbLength + +proc UnknownVerbLength*(self: var HTTP_REQUEST_V2): var USHORT {.inline.} = + self.struct1.UnknownVerbLength + +proc `RawUrlLength=`*(self: var HTTP_REQUEST_V2, x: USHORT) {.inline.} = + self.struct1.RawUrlLength = x + +proc RawUrlLength*(self: HTTP_REQUEST_V2): USHORT {.inline.} = + self.struct1.RawUrlLength + +proc RawUrlLength*(self: var HTTP_REQUEST_V2): var USHORT {.inline.} = + self.struct1.RawUrlLength + +proc `pUnknownVerb=`*(self: var HTTP_REQUEST_V2, x: PCSTR) {.inline.} = + self.struct1.pUnknownVerb = x + +proc pUnknownVerb*(self: HTTP_REQUEST_V2): PCSTR {.inline.} = + self.struct1.pUnknownVerb + +proc pUnknownVerb*(self: var HTTP_REQUEST_V2): var PCSTR {.inline.} = + self.struct1.pUnknownVerb + +proc `pRawUrl=`*(self: var HTTP_REQUEST_V2, x: PCSTR) {.inline.} = + self.struct1.pRawUrl = x + +proc pRawUrl*(self: HTTP_REQUEST_V2): PCSTR {.inline.} = + self.struct1.pRawUrl + +proc pRawUrl*(self: var HTTP_REQUEST_V2): var PCSTR {.inline.} = + self.struct1.pRawUrl + +proc `CookedUrl=`*(self: var HTTP_REQUEST_V2, x: HTTP_COOKED_URL) {.inline.} = + self.struct1.CookedUrl = x + +proc CookedUrl*(self: HTTP_REQUEST_V2): HTTP_COOKED_URL {.inline.} = + self.struct1.CookedUrl + +proc CookedUrl*(self: var HTTP_REQUEST_V2): var HTTP_COOKED_URL {.inline.} = + self.struct1.CookedUrl + +proc `Address=`*(self: var HTTP_REQUEST_V2, x: HTTP_TRANSPORT_ADDRESS) {.inline.} = + self.struct1.Address = x + +proc Address*(self: HTTP_REQUEST_V2): HTTP_TRANSPORT_ADDRESS {.inline.} = + self.struct1.Address + +proc Address*(self: var HTTP_REQUEST_V2): var HTTP_TRANSPORT_ADDRESS {.inline.} = + self.struct1.Address + +proc `Headers=`*(self: var HTTP_REQUEST_V2, x: HTTP_REQUEST_HEADERS) {.inline.} = + self.struct1.Headers = x + +proc Headers*(self: HTTP_REQUEST_V2): HTTP_REQUEST_HEADERS {.inline.} = + self.struct1.Headers + +proc Headers*(self: var HTTP_REQUEST_V2): var HTTP_REQUEST_HEADERS {.inline.} = + self.struct1.Headers + +proc `BytesReceived=`*(self: var HTTP_REQUEST_V2, x: ULONGLONG) {.inline.} = + self.struct1.BytesReceived = x + +proc BytesReceived*(self: HTTP_REQUEST_V2): ULONGLONG {.inline.} = + self.struct1.BytesReceived + +proc BytesReceived*(self: var HTTP_REQUEST_V2): var ULONGLONG {.inline.} = + self.struct1.BytesReceived + +proc `EntityChunkCount=`*(self: var HTTP_REQUEST_V2, x: USHORT) {.inline.} = + self.struct1.EntityChunkCount = x + +proc EntityChunkCount*(self: HTTP_REQUEST_V2): USHORT {.inline.} = + self.struct1.EntityChunkCount + +proc EntityChunkCount*(self: var HTTP_REQUEST_V2): var USHORT {.inline.} = + self.struct1.EntityChunkCount + +proc `pEntityChunks=`*(self: var HTTP_REQUEST_V2, x: PHTTP_DATA_CHUNK) {.inline.} = + self.struct1.pEntityChunks = x + +proc pEntityChunks*(self: HTTP_REQUEST_V2): PHTTP_DATA_CHUNK {.inline.} = + self.struct1.pEntityChunks + +proc pEntityChunks*(self: var HTTP_REQUEST_V2): var PHTTP_DATA_CHUNK {.inline.} = + self.struct1.pEntityChunks + +proc `RawConnectionId=`*( + self: var HTTP_REQUEST_V2, x: HTTP_RAW_CONNECTION_ID +) {.inline.} = + self.struct1.RawConnectionId = x + +proc RawConnectionId*(self: HTTP_REQUEST_V2): HTTP_RAW_CONNECTION_ID {.inline.} = + self.struct1.RawConnectionId + +proc RawConnectionId*( + self: var HTTP_REQUEST_V2 +): var HTTP_RAW_CONNECTION_ID {.inline.} = + self.struct1.RawConnectionId + +proc `pSslInfo=`*(self: var HTTP_REQUEST_V2, x: PHTTP_SSL_INFO) {.inline.} = + self.struct1.pSslInfo = x + +proc pSslInfo*(self: HTTP_REQUEST_V2): PHTTP_SSL_INFO {.inline.} = + self.struct1.pSslInfo + +proc pSslInfo*(self: var HTTP_REQUEST_V2): var PHTTP_SSL_INFO {.inline.} = + self.struct1.pSslInfo + +proc `Flags=`*(self: var HTTP_RESPONSE_V2, x: ULONG) {.inline.} = + self.struct1.Flags = x + +proc Flags*(self: HTTP_RESPONSE_V2): ULONG {.inline.} = + self.struct1.Flags + +proc Flags*(self: var HTTP_RESPONSE_V2): var ULONG {.inline.} = + self.struct1.Flags + +proc `Version=`*(self: var HTTP_RESPONSE_V2, x: HTTP_VERSION) {.inline.} = + self.struct1.Version = x + +proc Version*(self: HTTP_RESPONSE_V2): HTTP_VERSION {.inline.} = + self.struct1.Version + +proc Version*(self: var HTTP_RESPONSE_V2): var HTTP_VERSION {.inline.} = + self.struct1.Version + +proc `StatusCode=`*(self: var HTTP_RESPONSE_V2, x: USHORT) {.inline.} = + self.struct1.StatusCode = x + +proc StatusCode*(self: HTTP_RESPONSE_V2): USHORT {.inline.} = + self.struct1.StatusCode + +proc StatusCode*(self: var HTTP_RESPONSE_V2): var USHORT {.inline.} = + self.struct1.StatusCode + +proc `ReasonLength=`*(self: var HTTP_RESPONSE_V2, x: USHORT) {.inline.} = + self.struct1.ReasonLength = x + +proc ReasonLength*(self: HTTP_RESPONSE_V2): USHORT {.inline.} = + self.struct1.ReasonLength + +proc ReasonLength*(self: var HTTP_RESPONSE_V2): var USHORT {.inline.} = + self.struct1.ReasonLength + +proc `pReason=`*(self: var HTTP_RESPONSE_V2, x: PCSTR) {.inline.} = + self.struct1.pReason = x + +proc pReason*(self: HTTP_RESPONSE_V2): PCSTR {.inline.} = + self.struct1.pReason + +proc pReason*(self: var HTTP_RESPONSE_V2): var PCSTR {.inline.} = + self.struct1.pReason + +proc `Headers=`*(self: var HTTP_RESPONSE_V2, x: HTTP_RESPONSE_HEADERS) {.inline.} = + self.struct1.Headers = x + +proc Headers*(self: HTTP_RESPONSE_V2): HTTP_RESPONSE_HEADERS {.inline.} = + self.struct1.Headers + +proc Headers*(self: var HTTP_RESPONSE_V2): var HTTP_RESPONSE_HEADERS {.inline.} = + self.struct1.Headers + +proc `EntityChunkCount=`*(self: var HTTP_RESPONSE_V2, x: USHORT) {.inline.} = + self.struct1.EntityChunkCount = x + +proc EntityChunkCount*(self: HTTP_RESPONSE_V2): USHORT {.inline.} = + self.struct1.EntityChunkCount + +proc EntityChunkCount*(self: var HTTP_RESPONSE_V2): var USHORT {.inline.} = + self.struct1.EntityChunkCount + +proc `pEntityChunks=`*(self: var HTTP_RESPONSE_V2, x: PHTTP_DATA_CHUNK) {.inline.} = + self.struct1.pEntityChunks = x + +proc pEntityChunks*(self: HTTP_RESPONSE_V2): PHTTP_DATA_CHUNK {.inline.} = + self.struct1.pEntityChunks + +proc pEntityChunks*(self: var HTTP_RESPONSE_V2): var PHTTP_DATA_CHUNK {.inline.} = + self.struct1.pEntityChunks diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/imagehlp.nim --- a/semicongine/thirdparty/winim/winim/inc/imagehlp.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/imagehlp.nim Thu Aug 22 18:32:21 2024 +0700 @@ -41,6 +41,7 @@ Version*: UCHAR Links*: LIST_ENTRY SizeOfImage*: ULONG + PLOADED_IMAGE* = ptr LOADED_IMAGE MODLOAD_DATA* {.pure.} = object ssize*: DWORD @@ -48,6 +49,7 @@ data*: PVOID size*: DWORD flags*: DWORD + PMODLOAD_DATA* = ptr MODLOAD_DATA MODLOAD_CVMISC* {.pure.} = object oCV*: DWORD @@ -56,11 +58,13 @@ cMisc*: int dtImage*: DWORD cImage*: DWORD + PMODLOAD_CVMISC* = ptr MODLOAD_CVMISC TADDRESS64* {.pure.} = object Offset*: DWORD64 Segment*: WORD Mode*: ADDRESS_MODE + LPADDRESS64* = ptr TADDRESS64 KDHELP64* {.pure.} = object Thread*: DWORD64 @@ -75,6 +79,7 @@ StackBase*: DWORD64 StackLimit*: DWORD64 Reserved*: array[5, DWORD64] + PKDHELP64* = ptr KDHELP64 STACKFRAME64* {.pure.} = object AddrPC*: TADDRESS64 @@ -88,12 +93,14 @@ Virtual*: WINBOOL Reserved*: array[3, DWORD64] KdHelp*: KDHELP64 + LPSTACKFRAME64* = ptr STACKFRAME64 API_VERSION* {.pure.} = object MajorVersion*: USHORT MinorVersion*: USHORT Revision*: USHORT Reserved*: USHORT + LPAPI_VERSION* = ptr API_VERSION IMAGEHLP_SYMBOL64* {.pure.} = object SizeOfStruct*: DWORD @@ -102,13 +109,15 @@ Flags*: DWORD MaxNameLength*: DWORD Name*: array[1, CHAR] + PIMAGEHLP_SYMBOL64* = ptr IMAGEHLP_SYMBOL64 -const - MAX_SYM_NAME* = 2000 + +const MAX_SYM_NAME* = 2000 type IMAGEHLP_SYMBOL64_PACKAGE* {.pure.} = object sym*: IMAGEHLP_SYMBOL64 - name*: array[MAX_SYM_NAME+1, CHAR] + name*: array[MAX_SYM_NAME + 1, CHAR] + PIMAGEHLP_SYMBOL64_PACKAGE* = ptr IMAGEHLP_SYMBOL64_PACKAGE IMAGEHLP_MODULE64* {.pure.} = object SizeOfStruct*: DWORD @@ -123,7 +132,7 @@ LoadedImageName*: array[256, CHAR] LoadedPdbName*: array[256, CHAR] CVSig*: DWORD - CVData*: array[MAX_PATH*3, CHAR] + CVData*: array[MAX_PATH * 3, CHAR] PdbSig*: DWORD PdbSig70*: GUID PdbAge*: DWORD @@ -134,6 +143,7 @@ TypeInfo*: WINBOOL SourceIndexed*: WINBOOL Publics*: WINBOOL + PIMAGEHLP_MODULE64* = ptr IMAGEHLP_MODULE64 IMAGEHLP_MODULEW64* {.pure.} = object SizeOfStruct*: DWORD @@ -148,7 +158,7 @@ LoadedImageName*: array[256, WCHAR] LoadedPdbName*: array[256, WCHAR] CVSig*: DWORD - CVData*: array[MAX_PATH*3, WCHAR] + CVData*: array[MAX_PATH * 3, WCHAR] PdbSig*: DWORD PdbSig70*: GUID PdbAge*: DWORD @@ -159,6 +169,7 @@ TypeInfo*: WINBOOL SourceIndexed*: WINBOOL Publics*: WINBOOL + PIMAGEHLP_MODULEW64* = ptr IMAGEHLP_MODULEW64 IMAGEHLP_LINE64* {.pure.} = object SizeOfStruct*: DWORD @@ -166,6 +177,7 @@ LineNumber*: DWORD FileName*: PCHAR Address*: DWORD64 + PIMAGEHLP_LINE64* = ptr IMAGEHLP_LINE64 IMAGEHLP_LINEW64* {.pure.} = object SizeOfStruct*: DWORD @@ -173,26 +185,31 @@ LineNumber*: DWORD FileName*: PWSTR Address*: DWORD64 + PIMAGEHLP_LINEW64* = ptr IMAGEHLP_LINEW64 SOURCEFILE* {.pure.} = object ModBase*: DWORD64 FileName*: PCHAR + PSOURCEFILE* = ptr SOURCEFILE SOURCEFILEW* {.pure.} = object ModBase*: DWORD64 FileName*: PWCHAR + PSOURCEFILEW* = ptr SOURCEFILEW IMAGEHLP_CBA_READ_MEMORY* {.pure.} = object `addr`*: DWORD64 buf*: PVOID bytes*: DWORD bytesread*: ptr DWORD + PIMAGEHLP_CBA_READ_MEMORY* = ptr IMAGEHLP_CBA_READ_MEMORY IMAGEHLP_CBA_EVENT* {.pure.} = object severity*: DWORD code*: DWORD desc*: PCHAR `object`*: PVOID + PIMAGEHLP_CBA_EVENT* = ptr IMAGEHLP_CBA_EVENT IMAGEHLP_DEFERRED_SYMBOL_LOAD64* {.pure.} = object SizeOfStruct*: DWORD @@ -203,66 +220,75 @@ Reparse*: BOOLEAN hFile*: HANDLE Flags*: DWORD + PIMAGEHLP_DEFERRED_SYMBOL_LOAD64* = ptr IMAGEHLP_DEFERRED_SYMBOL_LOAD64 IMAGEHLP_DUPLICATE_SYMBOL64* {.pure.} = object SizeOfStruct*: DWORD NumberOfDups*: DWORD Symbol*: PIMAGEHLP_SYMBOL64 SelectedSymbol*: DWORD + PIMAGEHLP_DUPLICATE_SYMBOL64* = ptr IMAGEHLP_DUPLICATE_SYMBOL64 SYMSRV_INDEX_INFO* {.pure.} = object sizeofstruct*: DWORD - file*: array[MAX_PATH+1, CHAR] + file*: array[MAX_PATH + 1, CHAR] stripped*: WINBOOL timestamp*: DWORD size*: DWORD - dbgfile*: array[MAX_PATH+1, CHAR] - pdbfile*: array[MAX_PATH+1, CHAR] + dbgfile*: array[MAX_PATH + 1, CHAR] + pdbfile*: array[MAX_PATH + 1, CHAR] guid*: GUID sig*: DWORD age*: DWORD + PSYMSRV_INDEX_INFO* = ptr SYMSRV_INDEX_INFO SYMSRV_INDEX_INFOW* {.pure.} = object sizeofstruct*: DWORD - file*: array[MAX_PATH+1, WCHAR] + file*: array[MAX_PATH + 1, WCHAR] stripped*: WINBOOL timestamp*: DWORD size*: DWORD - dbgfile*: array[MAX_PATH+1, WCHAR] - pdbfile*: array[MAX_PATH+1, WCHAR] + dbgfile*: array[MAX_PATH + 1, WCHAR] + pdbfile*: array[MAX_PATH + 1, WCHAR] guid*: GUID sig*: DWORD age*: DWORD + PSYMSRV_INDEX_INFOW* = ptr SYMSRV_INDEX_INFOW - PSYM_ENUMSOURCEFILES_CALLBACK* = proc (pSourceFile: PSOURCEFILE, UserContext: PVOID): WINBOOL {.stdcall.} + PSYM_ENUMSOURCEFILES_CALLBACK* = + proc(pSourceFile: PSOURCEFILE, UserContext: PVOID): WINBOOL {.stdcall.} PSYM_ENUMSOURCFILES_CALLBACK* = PSYM_ENUMSOURCEFILES_CALLBACK SRCCODEINFO* {.pure.} = object SizeOfStruct*: DWORD Key*: PVOID ModBase*: DWORD64 - Obj*: array[MAX_PATH+1, CHAR] - FileName*: array[MAX_PATH+1, CHAR] + Obj*: array[MAX_PATH + 1, CHAR] + FileName*: array[MAX_PATH + 1, CHAR] LineNumber*: DWORD Address*: DWORD64 + PSRCCODEINFO* = ptr SRCCODEINFO SRCCODEINFOW* {.pure.} = object SizeOfStruct*: DWORD Key*: PVOID ModBase*: DWORD64 - Obj*: array[MAX_PATH+1, WCHAR] - FileName*: array[MAX_PATH+1, WCHAR] + Obj*: array[MAX_PATH + 1, WCHAR] + FileName*: array[MAX_PATH + 1, WCHAR] LineNumber*: DWORD Address*: DWORD64 + PSRCCODEINFOW* = ptr SRCCODEINFOW IMAGEHLP_SYMBOL_SRC* {.pure.} = object sizeofstruct*: DWORD `type`*: DWORD file*: array[MAX_PATH, char] + PIMAGEHLP_SYMBOL_SRC* = ptr IMAGEHLP_SYMBOL_SRC MODULE_TYPE_INFO* {.pure.} = object dataLength*: USHORT leaf*: USHORT data*: array[1, BYTE] + PMODULE_TYPE_INFO* = ptr MODULE_TYPE_INFO SYMBOL_INFO* {.pure.} = object SizeOfStruct*: ULONG @@ -280,6 +306,7 @@ NameLen*: ULONG MaxNameLen*: ULONG Name*: array[1, CHAR] + PSYMBOL_INFO* = ptr SYMBOL_INFO SYMBOL_INFOW* {.pure.} = object SizeOfStruct*: ULONG @@ -297,10 +324,12 @@ NameLen*: ULONG MaxNameLen*: ULONG Name*: array[1, WCHAR] + PSYMBOL_INFOW* = ptr SYMBOL_INFOW SYMBOL_INFO_PACKAGE* {.pure.} = object si*: SYMBOL_INFO - name*: array[MAX_SYM_NAME+1, CHAR] + name*: array[MAX_SYM_NAME + 1, CHAR] + PSYMBOL_INFO_PACKAGE* = ptr SYMBOL_INFO_PACKAGE IMAGEHLP_STACK_FRAME* {.pure.} = object InstructionOffset*: ULONG64 @@ -313,23 +342,28 @@ Reserved*: array[5, ULONG64] Virtual*: WINBOOL Reserved2*: ULONG + PIMAGEHLP_STACK_FRAME* = ptr IMAGEHLP_STACK_FRAME IMAGEHLP_CONTEXT* = VOID RVA64* = ULONG64 MINIDUMP_LOCATION_DESCRIPTOR* {.pure.} = object DataSize*: ULONG32 Rva*: RVA + MINIDUMP_MEMORY_DESCRIPTOR* {.pure.} = object StartOfMemoryRange*: ULONG64 Memory*: MINIDUMP_LOCATION_DESCRIPTOR + PMINIDUMP_MEMORY_DESCRIPTOR* = ptr MINIDUMP_MEMORY_DESCRIPTOR MINIDUMP_MEMORY_DESCRIPTOR64* {.pure.} = object StartOfMemoryRange*: ULONG64 DataSize*: ULONG64 + PMINIDUMP_MEMORY_DESCRIPTOR64* = ptr MINIDUMP_MEMORY_DESCRIPTOR64 MINIDUMP_HEADER_UNION1* {.pure, union.} = object Reserved*: ULONG32 TimeDateStamp*: ULONG32 + MINIDUMP_HEADER* {.pure.} = object Signature*: ULONG32 Version*: ULONG32 @@ -338,38 +372,48 @@ CheckSum*: ULONG32 union1*: MINIDUMP_HEADER_UNION1 Flags*: ULONG64 + PMINIDUMP_HEADER* = ptr MINIDUMP_HEADER MINIDUMP_DIRECTORY* {.pure.} = object StreamType*: ULONG32 Location*: MINIDUMP_LOCATION_DESCRIPTOR + PMINIDUMP_DIRECTORY* = ptr MINIDUMP_DIRECTORY MINIDUMP_STRING* {.pure.} = object Length*: ULONG32 Buffer*: UncheckedArray[WCHAR] + PMINIDUMP_STRING* = ptr MINIDUMP_STRING CPU_INFORMATION_X86CpuInfo* {.pure.} = object VendorId*: array[3, ULONG32] VersionInformation*: ULONG32 FeatureInformation*: ULONG32 AMDExtendedCpuFeatures*: ULONG32 + CPU_INFORMATION_OtherCpuInfo* {.pure.} = object ProcessorFeatures*: array[2, ULONG64] + CPU_INFORMATION* {.pure, union.} = object X86CpuInfo*: CPU_INFORMATION_X86CpuInfo OtherCpuInfo*: CPU_INFORMATION_OtherCpuInfo + PCPU_INFORMATION* = ptr CPU_INFORMATION MINIDUMP_SYSTEM_INFO_UNION1_STRUCT1* {.pure.} = object NumberOfProcessors*: UCHAR ProductType*: UCHAR + MINIDUMP_SYSTEM_INFO_UNION1* {.pure, union.} = object Reserved0*: USHORT struct1*: MINIDUMP_SYSTEM_INFO_UNION1_STRUCT1 + MINIDUMP_SYSTEM_INFO_UNION2_STRUCT1* {.pure.} = object SuiteMask*: USHORT Reserved2*: USHORT + MINIDUMP_SYSTEM_INFO_UNION2* {.pure, union.} = object Reserved1*: ULONG32 struct1*: MINIDUMP_SYSTEM_INFO_UNION2_STRUCT1 + MINIDUMP_SYSTEM_INFO* {.pure.} = object ProcessorArchitecture*: USHORT ProcessorLevel*: USHORT @@ -382,6 +426,7 @@ CSDVersionRva*: RVA union2*: MINIDUMP_SYSTEM_INFO_UNION2 Cpu*: CPU_INFORMATION + PMINIDUMP_SYSTEM_INFO* = ptr MINIDUMP_SYSTEM_INFO MINIDUMP_THREAD* {.pure.} = object ThreadId*: ULONG32 @@ -391,10 +436,12 @@ Teb*: ULONG64 Stack*: MINIDUMP_MEMORY_DESCRIPTOR ThreadContext*: MINIDUMP_LOCATION_DESCRIPTOR + PMINIDUMP_THREAD* = ptr MINIDUMP_THREAD MINIDUMP_THREAD_LIST* {.pure, packed.} = object NumberOfThreads*: ULONG32 Threads*: UncheckedArray[MINIDUMP_THREAD] + PMINIDUMP_THREAD_LIST* = ptr MINIDUMP_THREAD_LIST MINIDUMP_THREAD_EX* {.pure.} = object ThreadId*: ULONG32 @@ -405,10 +452,12 @@ Stack*: MINIDUMP_MEMORY_DESCRIPTOR ThreadContext*: MINIDUMP_LOCATION_DESCRIPTOR BackingStore*: MINIDUMP_MEMORY_DESCRIPTOR + PMINIDUMP_THREAD_EX* = ptr MINIDUMP_THREAD_EX MINIDUMP_THREAD_EX_LIST* {.pure, packed.} = object NumberOfThreads*: ULONG32 Threads*: UncheckedArray[MINIDUMP_THREAD_EX] + PMINIDUMP_THREAD_EX_LIST* = ptr MINIDUMP_THREAD_EX_LIST MINIDUMP_EXCEPTION* {.pure.} = object ExceptionCode*: ULONG32 @@ -418,12 +467,14 @@ NumberParameters*: ULONG32 unusedAlignment*: ULONG32 ExceptionInformation*: array[EXCEPTION_MAXIMUM_PARAMETERS, ULONG64] + PMINIDUMP_EXCEPTION* = ptr MINIDUMP_EXCEPTION MINIDUMP_EXCEPTION_STREAM* {.pure.} = object ThreadId*: ULONG32 alignment*: ULONG32 ExceptionRecord*: MINIDUMP_EXCEPTION ThreadContext*: MINIDUMP_LOCATION_DESCRIPTOR + PMINIDUMP_EXCEPTION_STREAM* = ptr MINIDUMP_EXCEPTION_STREAM MINIDUMP_MODULE* {.pure, packed.} = object BaseOfImage*: ULONG64 @@ -436,30 +487,36 @@ MiscRecord*: MINIDUMP_LOCATION_DESCRIPTOR Reserved0*: ULONG64 Reserved1*: ULONG64 + PMINIDUMP_MODULE* = ptr MINIDUMP_MODULE MINIDUMP_MODULE_LIST* {.pure, packed.} = object NumberOfModules*: ULONG32 Modules*: UncheckedArray[MINIDUMP_MODULE] + PMINIDUMP_MODULE_LIST* = ptr MINIDUMP_MODULE_LIST MINIDUMP_MEMORY_LIST* {.pure, packed.} = object NumberOfMemoryRanges*: ULONG32 MemoryRanges*: UncheckedArray[MINIDUMP_MEMORY_DESCRIPTOR] + PMINIDUMP_MEMORY_LIST* = ptr MINIDUMP_MEMORY_LIST MINIDUMP_MEMORY64_LIST* {.pure.} = object NumberOfMemoryRanges*: ULONG64 BaseRva*: RVA64 MemoryRanges*: UncheckedArray[MINIDUMP_MEMORY_DESCRIPTOR64] + PMINIDUMP_MEMORY64_LIST* = ptr MINIDUMP_MEMORY64_LIST MINIDUMP_EXCEPTION_INFORMATION* {.pure, packed.} = object ThreadId*: DWORD ExceptionPointers*: PEXCEPTION_POINTERS ClientPointers*: WINBOOL + PMINIDUMP_EXCEPTION_INFORMATION* = ptr MINIDUMP_EXCEPTION_INFORMATION MINIDUMP_EXCEPTION_INFORMATION64* {.pure, packed.} = object ThreadId*: DWORD ExceptionRecord*: ULONG64 ContextRecord*: ULONG64 ClientPointers*: WINBOOL + PMINIDUMP_EXCEPTION_INFORMATION64* = ptr MINIDUMP_EXCEPTION_INFORMATION64 MINIDUMP_HANDLE_DESCRIPTOR* {.pure.} = object Handle*: ULONG64 @@ -469,12 +526,14 @@ GrantedAccess*: ULONG32 HandleCount*: ULONG32 PointerCount*: ULONG32 + PMINIDUMP_HANDLE_DESCRIPTOR* = ptr MINIDUMP_HANDLE_DESCRIPTOR MINIDUMP_HANDLE_DATA_STREAM* {.pure.} = object SizeOfHeader*: ULONG32 SizeOfDescriptor*: ULONG32 NumberOfDescriptors*: ULONG32 Reserved*: ULONG32 + PMINIDUMP_HANDLE_DATA_STREAM* = ptr MINIDUMP_HANDLE_DATA_STREAM MINIDUMP_FUNCTION_TABLE_DESCRIPTOR* {.pure.} = object MinimumAddress*: ULONG64 @@ -482,6 +541,7 @@ BaseAddress*: ULONG64 EntryCount*: ULONG32 SizeOfAlignPad*: ULONG32 + PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR* = ptr MINIDUMP_FUNCTION_TABLE_DESCRIPTOR MINIDUMP_FUNCTION_TABLE_STREAM* {.pure.} = object SizeOfHeader*: ULONG32 @@ -490,6 +550,7 @@ SizeOfFunctionEntry*: ULONG32 NumberOfDescriptors*: ULONG32 SizeOfAlignPad*: ULONG32 + PMINIDUMP_FUNCTION_TABLE_STREAM* = ptr MINIDUMP_FUNCTION_TABLE_STREAM MINIDUMP_UNLOADED_MODULE* {.pure.} = object BaseOfImage*: ULONG64 @@ -497,11 +558,13 @@ CheckSum*: ULONG32 TimeDateStamp*: ULONG32 ModuleNameRva*: RVA + PMINIDUMP_UNLOADED_MODULE* = ptr MINIDUMP_UNLOADED_MODULE MINIDUMP_UNLOADED_MODULE_LIST* {.pure.} = object SizeOfHeader*: ULONG32 SizeOfEntry*: ULONG32 NumberOfEntries*: ULONG32 + PMINIDUMP_UNLOADED_MODULE_LIST* = ptr MINIDUMP_UNLOADED_MODULE_LIST MINIDUMP_MISC_INFO* {.pure.} = object SizeOfInfo*: ULONG32 @@ -510,19 +573,23 @@ ProcessCreateTime*: ULONG32 ProcessUserTime*: ULONG32 ProcessKernelTime*: ULONG32 + PMINIDUMP_MISC_INFO* = ptr MINIDUMP_MISC_INFO MINIDUMP_USER_RECORD* {.pure.} = object Type*: ULONG32 Memory*: MINIDUMP_LOCATION_DESCRIPTOR + PMINIDUMP_USER_RECORD* = ptr MINIDUMP_USER_RECORD MINIDUMP_USER_STREAM* {.pure.} = object Type*: ULONG32 BufferSize*: ULONG Buffer*: PVOID + PMINIDUMP_USER_STREAM* = ptr MINIDUMP_USER_STREAM MINIDUMP_USER_STREAM_INFORMATION* {.pure, packed.} = object UserStreamCount*: ULONG UserStreamArray*: PMINIDUMP_USER_STREAM + PMINIDUMP_USER_STREAM_INFORMATION* = ptr MINIDUMP_USER_STREAM_INFORMATION MINIDUMP_THREAD_CALLBACK* {.pure, packed.} = object ThreadId*: ULONG @@ -531,6 +598,7 @@ SizeOfContext*: ULONG StackBase*: ULONG64 StackEnd*: ULONG64 + PMINIDUMP_THREAD_CALLBACK* = ptr MINIDUMP_THREAD_CALLBACK MINIDUMP_THREAD_EX_CALLBACK* {.pure, packed.} = object ThreadId*: ULONG @@ -541,9 +609,11 @@ StackEnd*: ULONG64 BackingStoreBase*: ULONG64 BackingStoreEnd*: ULONG64 + PMINIDUMP_THREAD_EX_CALLBACK* = ptr MINIDUMP_THREAD_EX_CALLBACK MINIDUMP_INCLUDE_THREAD_CALLBACK* {.pure.} = object ThreadId*: ULONG + PMINIDUMP_INCLUDE_THREAD_CALLBACK* = ptr MINIDUMP_INCLUDE_THREAD_CALLBACK MINIDUMP_MODULE_CALLBACK* {.pure, packed.} = object FullPath*: PWCHAR @@ -556,9 +626,11 @@ SizeOfCvRecord*: ULONG MiscRecord*: PVOID SizeOfMiscRecord*: ULONG + PMINIDUMP_MODULE_CALLBACK* = ptr MINIDUMP_MODULE_CALLBACK MINIDUMP_INCLUDE_MODULE_CALLBACK* {.pure.} = object BaseOfImage*: ULONG64 + PMINIDUMP_INCLUDE_MODULE_CALLBACK* = ptr MINIDUMP_INCLUDE_MODULE_CALLBACK MINIDUMP_CALLBACK_INPUT_UNION1* {.pure, union.} = object Thread*: MINIDUMP_THREAD_CALLBACK @@ -566,11 +638,13 @@ Module*: MINIDUMP_MODULE_CALLBACK IncludeThread*: MINIDUMP_INCLUDE_THREAD_CALLBACK IncludeModule*: MINIDUMP_INCLUDE_MODULE_CALLBACK + MINIDUMP_CALLBACK_INPUT* {.pure, packed.} = object ProcessId*: ULONG ProcessHandle*: HANDLE CallbackType*: ULONG union1*: MINIDUMP_CALLBACK_INPUT_UNION1 + PMINIDUMP_CALLBACK_INPUT* = ptr MINIDUMP_CALLBACK_INPUT MINIDUMP_MEMORY_INFO* {.pure.} = object BaseAddress*: ULONG64 @@ -582,6 +656,7 @@ Protect*: ULONG32 Type*: ULONG32 alignment2*: ULONG32 + PMINIDUMP_MEMORY_INFO* = ptr MINIDUMP_MEMORY_INFO MINIDUMP_MISC_INFO_2* {.pure.} = object SizeOfInfo*: ULONG32 @@ -595,18 +670,22 @@ ProcessorMhzLimit*: ULONG32 ProcessorMaxIdleState*: ULONG32 ProcessorCurrentIdleState*: ULONG32 + PMINIDUMP_MISC_INFO_2* = ptr MINIDUMP_MISC_INFO_2 MINIDUMP_MEMORY_INFO_LIST* {.pure.} = object SizeOfHeader*: ULONG SizeOfEntry*: ULONG NumberOfEntries*: ULONG64 + PMINIDUMP_MEMORY_INFO_LIST* = ptr MINIDUMP_MEMORY_INFO_LIST MINIDUMP_CALLBACK_OUTPUT_UNION1_STRUCT1* {.pure, packed.} = object MemoryBase*: ULONG64 MemorySize*: ULONG + MINIDUMP_CALLBACK_OUTPUT_UNION1_STRUCT2* {.pure, packed.} = object CheckCancel*: WINBOOL Cancel*: WINBOOL + MINIDUMP_CALLBACK_OUTPUT_UNION1* {.pure, union.} = object ModuleWriteFlags*: ULONG ThreadWriteFlags*: ULONG @@ -614,13 +693,16 @@ struct1*: MINIDUMP_CALLBACK_OUTPUT_UNION1_STRUCT1 struct2*: MINIDUMP_CALLBACK_OUTPUT_UNION1_STRUCT2 Handle*: HANDLE + MINIDUMP_CALLBACK_OUTPUT_STRUCT1* {.pure, packed.} = object VmRegion*: MINIDUMP_MEMORY_INFO Continue*: WINBOOL + MINIDUMP_CALLBACK_OUTPUT* {.pure, packed.} = object union1*: MINIDUMP_CALLBACK_OUTPUT_UNION1 struct1*: MINIDUMP_CALLBACK_OUTPUT_STRUCT1 Status*: HRESULT + PMINIDUMP_CALLBACK_OUTPUT* = ptr MINIDUMP_CALLBACK_OUTPUT MINIDUMP_THREAD_INFO* {.pure.} = object ThreadId*: ULONG32 @@ -633,25 +715,34 @@ UserTime*: ULONG64 StartAddress*: ULONG64 Affinity*: ULONG64 + PMINIDUMP_THREAD_INFO* = ptr MINIDUMP_THREAD_INFO MINIDUMP_THREAD_INFO_LIST* {.pure.} = object SizeOfHeader*: ULONG SizeOfEntry*: ULONG NumberOfEntries*: ULONG + PMINIDUMP_THREAD_INFO_LIST* = ptr MINIDUMP_THREAD_INFO_LIST MINIDUMP_HANDLE_OPERATION_LIST* {.pure.} = object SizeOfHeader*: ULONG32 SizeOfEntry*: ULONG32 NumberOfEntries*: ULONG32 Reserved*: ULONG32 + PMINIDUMP_HANDLE_OPERATION_LIST* = ptr MINIDUMP_HANDLE_OPERATION_LIST - MINIDUMP_CALLBACK_ROUTINE* = proc (CallbackParam: PVOID, CallbackInput: PMINIDUMP_CALLBACK_INPUT, CallbackOutput: PMINIDUMP_CALLBACK_OUTPUT): WINBOOL {.stdcall.} + MINIDUMP_CALLBACK_ROUTINE* = proc( + CallbackParam: PVOID, + CallbackInput: PMINIDUMP_CALLBACK_INPUT, + CallbackOutput: PMINIDUMP_CALLBACK_OUTPUT, + ): WINBOOL {.stdcall.} MINIDUMP_CALLBACK_INFORMATION* {.pure.} = object CallbackRoutine*: MINIDUMP_CALLBACK_ROUTINE CallbackParam*: PVOID + PMINIDUMP_CALLBACK_INFORMATION* = ptr MINIDUMP_CALLBACK_INFORMATION + const - IMAGE_SEPARATION* = 64*1024 + IMAGE_SEPARATION* = 64 * 1024 bindOutOfMemory* = 0 bindRvaToVaFailed* = 1 bindNoRoomInImage* = 2 @@ -971,310 +1062,1415 @@ SYMSTOREOPT_PASS_IF_EXISTS* = 0x40 SSRVOPT_RESET* = not ULONG_PTR(0) type - PIMAGEHLP_STATUS_ROUTINE* = proc (Reason: IMAGEHLP_STATUS_REASON, ImageName: PCSTR, DllName: PCSTR, Va: ULONG_PTR, Parameter: ULONG_PTR): WINBOOL {.stdcall.} - PIMAGEHLP_STATUS_ROUTINE32* = proc (Reason: IMAGEHLP_STATUS_REASON, ImageName: PCSTR, DllName: PCSTR, Va: ULONG, Parameter: ULONG_PTR): WINBOOL {.stdcall.} - PIMAGEHLP_STATUS_ROUTINE64* = proc (Reason: IMAGEHLP_STATUS_REASON, ImageName: PCSTR, DllName: PCSTR, Va: ULONG64, Parameter: ULONG_PTR): WINBOOL {.stdcall.} - DIGEST_FUNCTION* = proc (refdata: DIGEST_HANDLE, pData: PBYTE, dwLength: DWORD): WINBOOL {.stdcall.} - PFIND_DEBUG_FILE_CALLBACK* = proc (FileHandle: HANDLE, FileName: PCSTR, CallerData: PVOID): WINBOOL {.stdcall.} - PFIND_DEBUG_FILE_CALLBACKW* = proc (FileHandle: HANDLE, FileName: PCWSTR, CallerData: PVOID): WINBOOL {.stdcall.} - PFINDFILEINPATHCALLBACK* = proc (filename: PCSTR, context: PVOID): WINBOOL {.stdcall.} - PFINDFILEINPATHCALLBACKW* = proc (filename: PCWSTR, context: PVOID): WINBOOL {.stdcall.} - PFIND_EXE_FILE_CALLBACK* = proc (FileHandle: HANDLE, FileName: PCSTR, CallerData: PVOID): WINBOOL {.stdcall.} - PFIND_EXE_FILE_CALLBACKW* = proc (FileHandle: HANDLE, FileName: PCWSTR, CallerData: PVOID): WINBOOL {.stdcall.} - PSYMBOLSERVERPROC* = proc (P1: LPCSTR, P2: LPCSTR, P3: PVOID, P4: DWORD, P5: DWORD, P6: LPSTR): WINBOOL {.stdcall.} - PSYMBOLSERVEROPENPROC* = proc (): WINBOOL {.stdcall.} - PSYMBOLSERVERCLOSEPROC* = proc (): WINBOOL {.stdcall.} - PSYMBOLSERVERSETOPTIONSPROC* = proc (P1: UINT_PTR, P2: ULONG64): WINBOOL {.stdcall.} - PSYMBOLSERVERCALLBACKPROC* = proc (action: UINT_PTR, data: ULONG64, context: ULONG64): WINBOOL {.stdcall.} - PSYMBOLSERVERGETOPTIONSPROC* = proc (): UINT_PTR {.stdcall.} - PSYMBOLSERVERPINGPROC* = proc (P1: LPCSTR): WINBOOL {.stdcall.} - PENUMDIRTREE_CALLBACK* = proc (FilePath: LPCSTR, CallerData: PVOID): WINBOOL {.stdcall.} - PREAD_PROCESS_MEMORY_ROUTINE64* = proc (hProcess: HANDLE, qwBaseAddress: DWORD64, lpBuffer: PVOID, nSize: DWORD, lpNumberOfBytesRead: LPDWORD): WINBOOL {.stdcall.} - PFUNCTION_TABLE_ACCESS_ROUTINE64* = proc (hProcess: HANDLE, AddrBase: DWORD64): PVOID {.stdcall.} - PGET_MODULE_BASE_ROUTINE64* = proc (hProcess: HANDLE, Address: DWORD64): DWORD64 {.stdcall.} - PTRANSLATE_ADDRESS_ROUTINE64* = proc (hProcess: HANDLE, hThread: HANDLE, lpaddr: LPADDRESS64): DWORD64 {.stdcall.} - PSYM_ENUMMODULES_CALLBACK64* = proc (ModuleName: PCSTR, BaseOfDll: DWORD64, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMMODULES_CALLBACKW64* = proc (ModuleName: PCWSTR, BaseOfDll: DWORD64, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMSYMBOLS_CALLBACK64* = proc (SymbolName: PCSTR, SymbolAddress: DWORD64, SymbolSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMSYMBOLS_CALLBACK64W* = proc (SymbolName: PCWSTR, SymbolAddress: DWORD64, SymbolSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PENUMLOADED_MODULES_CALLBACK64* = proc (ModuleName: PCSTR, ModuleBase: DWORD64, ModuleSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PENUMLOADED_MODULES_CALLBACKW64* = proc (ModuleName: PCWSTR, ModuleBase: DWORD64, ModuleSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PSYMBOL_REGISTERED_CALLBACK64* = proc (hProcess: HANDLE, ActionCode: ULONG, CallbackData: ULONG64, UserContext: ULONG64): WINBOOL {.stdcall.} - PSYMBOL_FUNCENTRY_CALLBACK64* = proc (hProcess: HANDLE, AddrBase: ULONG64, UserContext: ULONG64): PVOID {.stdcall.} - PSYM_ENUMSOURCEFILES_CALLBACKW* = proc (pSourceFile: PSOURCEFILEW, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMLINES_CALLBACK* = proc (LineInfo: PSRCCODEINFO, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMLINES_CALLBACKW* = proc (LineInfo: PSRCCODEINFOW, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMERATESYMBOLS_CALLBACK* = proc (pSymInfo: PSYMBOL_INFO, SymbolSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMERATESYMBOLS_CALLBACKW* = proc (pSymInfo: PSYMBOL_INFOW, SymbolSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PDBGHELP_CREATE_USER_DUMP_CALLBACK* = proc (DataType: DWORD, Data: ptr PVOID, DataLength: LPDWORD, UserData: PVOID): WINBOOL {.stdcall.} + PIMAGEHLP_STATUS_ROUTINE* = proc( + Reason: IMAGEHLP_STATUS_REASON, + ImageName: PCSTR, + DllName: PCSTR, + Va: ULONG_PTR, + Parameter: ULONG_PTR, + ): WINBOOL {.stdcall.} + PIMAGEHLP_STATUS_ROUTINE32* = proc( + Reason: IMAGEHLP_STATUS_REASON, + ImageName: PCSTR, + DllName: PCSTR, + Va: ULONG, + Parameter: ULONG_PTR, + ): WINBOOL {.stdcall.} + PIMAGEHLP_STATUS_ROUTINE64* = proc( + Reason: IMAGEHLP_STATUS_REASON, + ImageName: PCSTR, + DllName: PCSTR, + Va: ULONG64, + Parameter: ULONG_PTR, + ): WINBOOL {.stdcall.} + DIGEST_FUNCTION* = + proc(refdata: DIGEST_HANDLE, pData: PBYTE, dwLength: DWORD): WINBOOL {.stdcall.} + PFIND_DEBUG_FILE_CALLBACK* = + proc(FileHandle: HANDLE, FileName: PCSTR, CallerData: PVOID): WINBOOL {.stdcall.} + PFIND_DEBUG_FILE_CALLBACKW* = + proc(FileHandle: HANDLE, FileName: PCWSTR, CallerData: PVOID): WINBOOL {.stdcall.} + PFINDFILEINPATHCALLBACK* = proc(filename: PCSTR, context: PVOID): WINBOOL {.stdcall.} + PFINDFILEINPATHCALLBACKW* = + proc(filename: PCWSTR, context: PVOID): WINBOOL {.stdcall.} + PFIND_EXE_FILE_CALLBACK* = + proc(FileHandle: HANDLE, FileName: PCSTR, CallerData: PVOID): WINBOOL {.stdcall.} + PFIND_EXE_FILE_CALLBACKW* = + proc(FileHandle: HANDLE, FileName: PCWSTR, CallerData: PVOID): WINBOOL {.stdcall.} + PSYMBOLSERVERPROC* = proc( + P1: LPCSTR, P2: LPCSTR, P3: PVOID, P4: DWORD, P5: DWORD, P6: LPSTR + ): WINBOOL {.stdcall.} + PSYMBOLSERVEROPENPROC* = proc(): WINBOOL {.stdcall.} + PSYMBOLSERVERCLOSEPROC* = proc(): WINBOOL {.stdcall.} + PSYMBOLSERVERSETOPTIONSPROC* = proc(P1: UINT_PTR, P2: ULONG64): WINBOOL {.stdcall.} + PSYMBOLSERVERCALLBACKPROC* = + proc(action: UINT_PTR, data: ULONG64, context: ULONG64): WINBOOL {.stdcall.} + PSYMBOLSERVERGETOPTIONSPROC* = proc(): UINT_PTR {.stdcall.} + PSYMBOLSERVERPINGPROC* = proc(P1: LPCSTR): WINBOOL {.stdcall.} + PENUMDIRTREE_CALLBACK* = + proc(FilePath: LPCSTR, CallerData: PVOID): WINBOOL {.stdcall.} + PREAD_PROCESS_MEMORY_ROUTINE64* = proc( + hProcess: HANDLE, + qwBaseAddress: DWORD64, + lpBuffer: PVOID, + nSize: DWORD, + lpNumberOfBytesRead: LPDWORD, + ): WINBOOL {.stdcall.} + PFUNCTION_TABLE_ACCESS_ROUTINE64* = + proc(hProcess: HANDLE, AddrBase: DWORD64): PVOID {.stdcall.} + PGET_MODULE_BASE_ROUTINE64* = + proc(hProcess: HANDLE, Address: DWORD64): DWORD64 {.stdcall.} + PTRANSLATE_ADDRESS_ROUTINE64* = + proc(hProcess: HANDLE, hThread: HANDLE, lpaddr: LPADDRESS64): DWORD64 {.stdcall.} + PSYM_ENUMMODULES_CALLBACK64* = + proc(ModuleName: PCSTR, BaseOfDll: DWORD64, UserContext: PVOID): WINBOOL {.stdcall.} + PSYM_ENUMMODULES_CALLBACKW64* = proc( + ModuleName: PCWSTR, BaseOfDll: DWORD64, UserContext: PVOID + ): WINBOOL {.stdcall.} + PSYM_ENUMSYMBOLS_CALLBACK64* = proc( + SymbolName: PCSTR, SymbolAddress: DWORD64, SymbolSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PSYM_ENUMSYMBOLS_CALLBACK64W* = proc( + SymbolName: PCWSTR, SymbolAddress: DWORD64, SymbolSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PENUMLOADED_MODULES_CALLBACK64* = proc( + ModuleName: PCSTR, ModuleBase: DWORD64, ModuleSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PENUMLOADED_MODULES_CALLBACKW64* = proc( + ModuleName: PCWSTR, ModuleBase: DWORD64, ModuleSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PSYMBOL_REGISTERED_CALLBACK64* = proc( + hProcess: HANDLE, ActionCode: ULONG, CallbackData: ULONG64, UserContext: ULONG64 + ): WINBOOL {.stdcall.} + PSYMBOL_FUNCENTRY_CALLBACK64* = + proc(hProcess: HANDLE, AddrBase: ULONG64, UserContext: ULONG64): PVOID {.stdcall.} + PSYM_ENUMSOURCEFILES_CALLBACKW* = + proc(pSourceFile: PSOURCEFILEW, UserContext: PVOID): WINBOOL {.stdcall.} + PSYM_ENUMLINES_CALLBACK* = + proc(LineInfo: PSRCCODEINFO, UserContext: PVOID): WINBOOL {.stdcall.} + PSYM_ENUMLINES_CALLBACKW* = + proc(LineInfo: PSRCCODEINFOW, UserContext: PVOID): WINBOOL {.stdcall.} + PSYM_ENUMERATESYMBOLS_CALLBACK* = proc( + pSymInfo: PSYMBOL_INFO, SymbolSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PSYM_ENUMERATESYMBOLS_CALLBACKW* = proc( + pSymInfo: PSYMBOL_INFOW, SymbolSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PDBGHELP_CREATE_USER_DUMP_CALLBACK* = proc( + DataType: DWORD, Data: ptr PVOID, DataLength: LPDWORD, UserData: PVOID + ): WINBOOL {.stdcall.} TI_FINDCHILDREN_PARAMS* {.pure.} = object Count*: ULONG Start*: ULONG ChildId*: array[1, ULONG] + MINIDUMP_LOCATION_DESCRIPTOR64* {.pure.} = object DataSize*: ULONG64 Rva*: RVA64 -proc BindImage*(ImageName: PCSTR, DllPath: PCSTR, SymbolPath: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc BindImageEx*(Flags: DWORD, ImageName: PCSTR, DllPath: PCSTR, SymbolPath: PCSTR, StatusRoutine: PIMAGEHLP_STATUS_ROUTINE): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ReBaseImage*(CurrentImageName: PCSTR, SymbolPath: PCSTR, fReBase: WINBOOL, fRebaseSysfileOk: WINBOOL, fGoingDown: WINBOOL, CheckImageSize: ULONG, OldImageSize: ptr ULONG, OldImageBase: ptr ULONG_PTR, NewImageSize: ptr ULONG, NewImageBase: ptr ULONG_PTR, TimeStamp: ULONG): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ReBaseImage64*(CurrentImageName: PCSTR, SymbolPath: PCSTR, fReBase: WINBOOL, fRebaseSysfileOk: WINBOOL, fGoingDown: WINBOOL, CheckImageSize: ULONG, OldImageSize: ptr ULONG, OldImageBase: ptr ULONG64, NewImageSize: ptr ULONG, NewImageBase: ptr ULONG64, TimeStamp: ULONG): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc GetImageConfigInformation*(LoadedImage: PLOADED_IMAGE, ImageConfigInformation: PIMAGE_LOAD_CONFIG_DIRECTORY): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc GetImageUnusedHeaderBytes*(LoadedImage: PLOADED_IMAGE, SizeUnusedHeaderBytes: PDWORD): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc SetImageConfigInformation*(LoadedImage: PLOADED_IMAGE, ImageConfigInformation: PIMAGE_LOAD_CONFIG_DIRECTORY): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc CheckSumMappedFile*(BaseAddress: PVOID, FileLength: DWORD, HeaderSum: PDWORD, CheckSum: PDWORD): PIMAGE_NT_HEADERS {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc MapFileAndCheckSumA*(Filename: PCSTR, HeaderSum: PDWORD, CheckSum: PDWORD): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc MapFileAndCheckSumW*(Filename: PCWSTR, HeaderSum: PDWORD, CheckSum: PDWORD): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageGetDigestStream*(FileHandle: HANDLE, DigestLevel: DWORD, DigestFunction: DIGEST_FUNCTION, DigestHandle: DIGEST_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageAddCertificate*(FileHandle: HANDLE, Certificate: LPWIN_CERTIFICATE, Index: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageRemoveCertificate*(FileHandle: HANDLE, Index: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageEnumerateCertificates*(FileHandle: HANDLE, TypeFilter: WORD, CertificateCount: PDWORD, Indices: PDWORD, IndexCount: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageGetCertificateData*(FileHandle: HANDLE, CertificateIndex: DWORD, Certificate: LPWIN_CERTIFICATE, RequiredLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageGetCertificateHeader*(FileHandle: HANDLE, CertificateIndex: DWORD, Certificateheader: LPWIN_CERTIFICATE): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageLoad*(DllName: PCSTR, DllPath: PCSTR): PLOADED_IMAGE {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc ImageUnload*(LoadedImage: PLOADED_IMAGE): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc MapAndLoad*(ImageName: PCSTR, DllPath: PCSTR, LoadedImage: PLOADED_IMAGE, DotDll: WINBOOL, ReadOnly: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc UnMapAndLoad*(LoadedImage: PLOADED_IMAGE): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc TouchFileTimes*(FileHandle: HANDLE, pSystemTime: PSYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc SplitSymbols*(ImageName: PSTR, SymbolsPath: PCSTR, SymbolFilePath: PSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc UpdateDebugInfoFile*(ImageFileName: PCSTR, SymbolPath: PCSTR, DebugFilePath: PSTR, NtHeaders: PIMAGE_NT_HEADERS32): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc UpdateDebugInfoFileEx*(ImageFileName: PCSTR, SymbolPath: PCSTR, DebugFilePath: PSTR, NtHeaders: PIMAGE_NT_HEADERS32, OldChecksum: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} -proc FindDebugInfoFile*(FileName: PCSTR, SymbolPath: PCSTR, DebugFilePath: PSTR): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc FindDebugInfoFileEx*(FileName: PCSTR, SymbolPath: PCSTR, DebugFilePath: PSTR, Callback: PFIND_DEBUG_FILE_CALLBACK, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc FindDebugInfoFileExW*(FileName: PCWSTR, SymbolPath: PCWSTR, DebugFilePath: PWSTR, Callback: PFIND_DEBUG_FILE_CALLBACKW, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFindFileInPath*(hprocess: HANDLE, SearchPath: PCSTR, FileName: PCSTR, id: PVOID, two: DWORD, three: DWORD, flags: DWORD, FoundFile: LPSTR, callback: PFINDFILEINPATHCALLBACK, context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFindFileInPathW*(hprocess: HANDLE, SearchPath: PCWSTR, FileName: PCWSTR, id: PVOID, two: DWORD, three: DWORD, flags: DWORD, FoundFile: LPSTR, callback: PFINDFILEINPATHCALLBACKW, context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc FindExecutableImage*(FileName: PCSTR, SymbolPath: PCSTR, ImageFilePath: PSTR): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc FindExecutableImageEx*(FileName: PCSTR, SymbolPath: PCSTR, ImageFilePath: PSTR, Callback: PFIND_EXE_FILE_CALLBACK, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc FindExecutableImageExW*(FileName: PCWSTR, SymbolPath: PCWSTR, ImageFilePath: PWSTR, Callback: PFIND_EXE_FILE_CALLBACKW, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImageNtHeader*(Base: PVOID): PIMAGE_NT_HEADERS {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImageDirectoryEntryToDataEx*(Base: PVOID, MappedAsImage: BOOLEAN, DirectoryEntry: USHORT, Size: PULONG, FoundHeader: ptr PIMAGE_SECTION_HEADER): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImageDirectoryEntryToData*(Base: PVOID, MappedAsImage: BOOLEAN, DirectoryEntry: USHORT, Size: PULONG): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImageRvaToSection*(NtHeaders: PIMAGE_NT_HEADERS, Base: PVOID, Rva: ULONG): PIMAGE_SECTION_HEADER {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImageRvaToVa*(NtHeaders: PIMAGE_NT_HEADERS, Base: PVOID, Rva: ULONG, LastRvaSection: ptr PIMAGE_SECTION_HEADER): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SearchTreeForFile*(RootPath: PSTR, InputPathName: PSTR, OutputPathBuffer: PSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SearchTreeForFileW*(RootPath: PWSTR, InputPathName: PWSTR, OutputPathBuffer: PWSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc EnumDirTree*(hProcess: HANDLE, RootPath: PSTR, InputPathName: PSTR, OutputPathBuffer: PSTR, Callback: PENUMDIRTREE_CALLBACK, CallbackData: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc MakeSureDirectoryPathExists*(DirPath: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc UnDecorateSymbolNameA*(DecoratedName: PCSTR, UnDecoratedName: PSTR, UndecoratedLength: DWORD, Flags: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc: "UnDecorateSymbolName".} -proc UnDecorateSymbolNameW*(DecoratedName: PCWSTR, UnDecoratedName: PWSTR, UndecoratedLength: DWORD, Flags: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc StackWalk64*(MachineType: DWORD, hProcess: HANDLE, hThread: HANDLE, StackFrame: LPSTACKFRAME64, ContextRecord: PVOID, ReadMemoryRoutine: PREAD_PROCESS_MEMORY_ROUTINE64, FunctionTableAccessRoutine: PFUNCTION_TABLE_ACCESS_ROUTINE64, GetModuleBaseRoutine: PGET_MODULE_BASE_ROUTINE64, TranslateAddress: PTRANSLATE_ADDRESS_ROUTINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImagehlpApiVersion*(): LPAPI_VERSION {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc ImagehlpApiVersionEx*(AppVersion: LPAPI_VERSION): LPAPI_VERSION {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc GetTimestampForLoadedLibrary*(Module: HMODULE): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetParentWindow*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetHomeDirectory*(hProcess: HANDLE, dir: PCSTR): PCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetHomeDirectoryW*(hProcess: HANDLE, dir: PCWSTR): PCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetHomeDirectory*(`type`: DWORD, dir: PSTR, size: int): PCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetHomeDirectoryW*(`type`: DWORD, dir: PWSTR, size: int): PWCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetOptions*(SymOptions: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc BindImage*( + ImageName: PCSTR, DllPath: PCSTR, SymbolPath: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc BindImageEx*( + Flags: DWORD, + ImageName: PCSTR, + DllPath: PCSTR, + SymbolPath: PCSTR, + StatusRoutine: PIMAGEHLP_STATUS_ROUTINE, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ReBaseImage*( + CurrentImageName: PCSTR, + SymbolPath: PCSTR, + fReBase: WINBOOL, + fRebaseSysfileOk: WINBOOL, + fGoingDown: WINBOOL, + CheckImageSize: ULONG, + OldImageSize: ptr ULONG, + OldImageBase: ptr ULONG_PTR, + NewImageSize: ptr ULONG, + NewImageBase: ptr ULONG_PTR, + TimeStamp: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ReBaseImage64*( + CurrentImageName: PCSTR, + SymbolPath: PCSTR, + fReBase: WINBOOL, + fRebaseSysfileOk: WINBOOL, + fGoingDown: WINBOOL, + CheckImageSize: ULONG, + OldImageSize: ptr ULONG, + OldImageBase: ptr ULONG64, + NewImageSize: ptr ULONG, + NewImageBase: ptr ULONG64, + TimeStamp: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc GetImageConfigInformation*( + LoadedImage: PLOADED_IMAGE, ImageConfigInformation: PIMAGE_LOAD_CONFIG_DIRECTORY +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc GetImageUnusedHeaderBytes*( + LoadedImage: PLOADED_IMAGE, SizeUnusedHeaderBytes: PDWORD +): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc SetImageConfigInformation*( + LoadedImage: PLOADED_IMAGE, ImageConfigInformation: PIMAGE_LOAD_CONFIG_DIRECTORY +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc CheckSumMappedFile*( + BaseAddress: PVOID, FileLength: DWORD, HeaderSum: PDWORD, CheckSum: PDWORD +): PIMAGE_NT_HEADERS {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc MapFileAndCheckSumA*( + Filename: PCSTR, HeaderSum: PDWORD, CheckSum: PDWORD +): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc MapFileAndCheckSumW*( + Filename: PCWSTR, HeaderSum: PDWORD, CheckSum: PDWORD +): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageGetDigestStream*( + FileHandle: HANDLE, + DigestLevel: DWORD, + DigestFunction: DIGEST_FUNCTION, + DigestHandle: DIGEST_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageAddCertificate*( + FileHandle: HANDLE, Certificate: LPWIN_CERTIFICATE, Index: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageRemoveCertificate*( + FileHandle: HANDLE, Index: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageEnumerateCertificates*( + FileHandle: HANDLE, + TypeFilter: WORD, + CertificateCount: PDWORD, + Indices: PDWORD, + IndexCount: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageGetCertificateData*( + FileHandle: HANDLE, + CertificateIndex: DWORD, + Certificate: LPWIN_CERTIFICATE, + RequiredLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageGetCertificateHeader*( + FileHandle: HANDLE, CertificateIndex: DWORD, Certificateheader: LPWIN_CERTIFICATE +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageLoad*( + DllName: PCSTR, DllPath: PCSTR +): PLOADED_IMAGE {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc ImageUnload*( + LoadedImage: PLOADED_IMAGE +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc MapAndLoad*( + ImageName: PCSTR, + DllPath: PCSTR, + LoadedImage: PLOADED_IMAGE, + DotDll: WINBOOL, + ReadOnly: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc UnMapAndLoad*( + LoadedImage: PLOADED_IMAGE +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc TouchFileTimes*( + FileHandle: HANDLE, pSystemTime: PSYSTEMTIME +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc SplitSymbols*( + ImageName: PSTR, SymbolsPath: PCSTR, SymbolFilePath: PSTR, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc UpdateDebugInfoFile*( + ImageFileName: PCSTR, + SymbolPath: PCSTR, + DebugFilePath: PSTR, + NtHeaders: PIMAGE_NT_HEADERS32, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc UpdateDebugInfoFileEx*( + ImageFileName: PCSTR, + SymbolPath: PCSTR, + DebugFilePath: PSTR, + NtHeaders: PIMAGE_NT_HEADERS32, + OldChecksum: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "imagehlp", importc.} + +proc FindDebugInfoFile*( + FileName: PCSTR, SymbolPath: PCSTR, DebugFilePath: PSTR +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc FindDebugInfoFileEx*( + FileName: PCSTR, + SymbolPath: PCSTR, + DebugFilePath: PSTR, + Callback: PFIND_DEBUG_FILE_CALLBACK, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc FindDebugInfoFileExW*( + FileName: PCWSTR, + SymbolPath: PCWSTR, + DebugFilePath: PWSTR, + Callback: PFIND_DEBUG_FILE_CALLBACKW, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFindFileInPath*( + hprocess: HANDLE, + SearchPath: PCSTR, + FileName: PCSTR, + id: PVOID, + two: DWORD, + three: DWORD, + flags: DWORD, + FoundFile: LPSTR, + callback: PFINDFILEINPATHCALLBACK, + context: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFindFileInPathW*( + hprocess: HANDLE, + SearchPath: PCWSTR, + FileName: PCWSTR, + id: PVOID, + two: DWORD, + three: DWORD, + flags: DWORD, + FoundFile: LPSTR, + callback: PFINDFILEINPATHCALLBACKW, + context: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc FindExecutableImage*( + FileName: PCSTR, SymbolPath: PCSTR, ImageFilePath: PSTR +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc FindExecutableImageEx*( + FileName: PCSTR, + SymbolPath: PCSTR, + ImageFilePath: PSTR, + Callback: PFIND_EXE_FILE_CALLBACK, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc FindExecutableImageExW*( + FileName: PCWSTR, + SymbolPath: PCWSTR, + ImageFilePath: PWSTR, + Callback: PFIND_EXE_FILE_CALLBACKW, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc ImageNtHeader*( + Base: PVOID +): PIMAGE_NT_HEADERS {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc ImageDirectoryEntryToDataEx*( + Base: PVOID, + MappedAsImage: BOOLEAN, + DirectoryEntry: USHORT, + Size: PULONG, + FoundHeader: ptr PIMAGE_SECTION_HEADER, +): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc ImageDirectoryEntryToData*( + Base: PVOID, MappedAsImage: BOOLEAN, DirectoryEntry: USHORT, Size: PULONG +): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc ImageRvaToSection*( + NtHeaders: PIMAGE_NT_HEADERS, Base: PVOID, Rva: ULONG +): PIMAGE_SECTION_HEADER {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc ImageRvaToVa*( + NtHeaders: PIMAGE_NT_HEADERS, + Base: PVOID, + Rva: ULONG, + LastRvaSection: ptr PIMAGE_SECTION_HEADER, +): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SearchTreeForFile*( + RootPath: PSTR, InputPathName: PSTR, OutputPathBuffer: PSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SearchTreeForFileW*( + RootPath: PWSTR, InputPathName: PWSTR, OutputPathBuffer: PWSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc EnumDirTree*( + hProcess: HANDLE, + RootPath: PSTR, + InputPathName: PSTR, + OutputPathBuffer: PSTR, + Callback: PENUMDIRTREE_CALLBACK, + CallbackData: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc MakeSureDirectoryPathExists*( + DirPath: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc UnDecorateSymbolNameA*( + DecoratedName: PCSTR, UnDecoratedName: PSTR, UndecoratedLength: DWORD, Flags: DWORD +): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc: "UnDecorateSymbolName".} + +proc UnDecorateSymbolNameW*( + DecoratedName: PCWSTR, UnDecoratedName: PWSTR, UndecoratedLength: DWORD, Flags: DWORD +): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc StackWalk64*( + MachineType: DWORD, + hProcess: HANDLE, + hThread: HANDLE, + StackFrame: LPSTACKFRAME64, + ContextRecord: PVOID, + ReadMemoryRoutine: PREAD_PROCESS_MEMORY_ROUTINE64, + FunctionTableAccessRoutine: PFUNCTION_TABLE_ACCESS_ROUTINE64, + GetModuleBaseRoutine: PGET_MODULE_BASE_ROUTINE64, + TranslateAddress: PTRANSLATE_ADDRESS_ROUTINE64, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc ImagehlpApiVersion*(): LPAPI_VERSION {. + winapi, stdcall, dynlib: "dbghelp", importc +.} + +proc ImagehlpApiVersionEx*( + AppVersion: LPAPI_VERSION +): LPAPI_VERSION {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc GetTimestampForLoadedLibrary*( + Module: HMODULE +): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetParentWindow*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetHomeDirectory*( + hProcess: HANDLE, dir: PCSTR +): PCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetHomeDirectoryW*( + hProcess: HANDLE, dir: PCWSTR +): PCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetHomeDirectory*( + `type`: DWORD, dir: PSTR, size: int +): PCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetHomeDirectoryW*( + `type`: DWORD, dir: PWSTR, size: int +): PWCHAR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetOptions*( + SymOptions: DWORD +): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + proc SymGetOptions*(): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymCleanup*(hProcess: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymMatchString*(string: PCSTR, expression: PCSTR, fCase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymMatchStringW*(string: PCWSTR, expression: PCWSTR, fCase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSourceFiles*(hProcess: HANDLE, ModBase: ULONG64, Mask: PCSTR, cbSrcFiles: PSYM_ENUMSOURCEFILES_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSourceFilesW*(hProcess: HANDLE, ModBase: ULONG64, Mask: PCWSTR, cbSrcFiles: PSYM_ENUMSOURCEFILES_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumerateModules64*(hProcess: HANDLE, EnumModulesCallback: PSYM_ENUMMODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumerateModulesW64*(hProcess: HANDLE, EnumModulesCallback: PSYM_ENUMMODULES_CALLBACKW64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumerateSymbols64*(hProcess: HANDLE, BaseOfDll: DWORD64, EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumerateSymbolsW64*(hProcess: HANDLE, BaseOfDll: DWORD64, EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64W, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc EnumerateLoadedModulesA64*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "EnumerateLoadedModules64".} -proc EnumerateLoadedModulesW64*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACKW64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFunctionTableAccess64*(hProcess: HANDLE, AddrBase: DWORD64): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetModuleInfo64*(hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetModuleInfoW64*(hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULEW64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetModuleBase64*(hProcess: HANDLE, qwAddr: DWORD64): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSymNext64*(hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSymPrev64*(hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumLines*(hProcess: HANDLE, Base: ULONG64, Obj: PCSTR, File: PCSTR, EnumLinesCallback: PSYM_ENUMLINES_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumLinesW*(hProcess: HANDLE, Base: ULONG64, Obj: PCWSTR, File: PCSTR, EnumLinesCallback: PSYM_ENUMLINES_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLineFromAddr64*(hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD, Line64: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLineFromAddrW64*(hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD, Line64: PIMAGEHLP_LINEW64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLineFromName64*(hProcess: HANDLE, ModuleName: PCSTR, FileName: PCSTR, dwLineNumber: DWORD, plDisplacement: PLONG, Line: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLineFromNameW64*(hProcess: HANDLE, ModuleName: PCWSTR, FileName: PCWSTR, dwLineNumber: DWORD, plDisplacement: PLONG, Line: PIMAGEHLP_LINEW64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLineNext64*(hProcess: HANDLE, Line: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLineNextW64*(hProcess: HANDLE, Line: PIMAGEHLP_LINEW64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLinePrev64*(hProcess: HANDLE, Line: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetLinePrevW64*(hProcess: HANDLE, Line: PIMAGEHLP_LINEW64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymMatchFileName*(FileName: PCSTR, Match: PCSTR, FileNameStop: ptr PSTR, MatchStop: ptr PSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymMatchFileNameW*(FileName: PCWSTR, Match: PCWSTR, FileNameStop: ptr PWSTR, MatchStop: ptr PWSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymInitialize*(hProcess: HANDLE, UserSearchPath: PCSTR, fInvadeProcess: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymInitializeW*(hProcess: HANDLE, UserSearchPath: PCWSTR, fInvadeProcess: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSearchPath*(hProcess: HANDLE, SearchPath: PSTR, SearchPathLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSearchPathW*(hProcess: HANDLE, SearchPath: PWSTR, SearchPathLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetSearchPath*(hProcess: HANDLE, SearchPath: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetSearchPathW*(hProcess: HANDLE, SearchPath: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymLoadModule64*(hProcess: HANDLE, hFile: HANDLE, ImageName: PSTR, ModuleName: PSTR, BaseOfDll: DWORD64, SizeOfDll: DWORD): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymLoadModuleEx*(hProcess: HANDLE, hFile: HANDLE, ImageName: PCSTR, ModuleName: PCSTR, BaseOfDll: DWORD64, DllSize: DWORD, Data: PMODLOAD_DATA, Flags: DWORD): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymLoadModuleExW*(hProcess: HANDLE, hFile: HANDLE, ImageName: PCWSTR, ModuleName: PCWSTR, BaseOfDll: DWORD64, DllSize: DWORD, Data: PMODLOAD_DATA, Flags: DWORD): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymUnloadModule64*(hProcess: HANDLE, BaseOfDll: DWORD64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymUnDName64*(sym: PIMAGEHLP_SYMBOL64, UnDecName: PSTR, UnDecNameLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymRegisterCallback64*(hProcess: HANDLE, CallbackFunction: PSYMBOL_REGISTERED_CALLBACK64, UserContext: ULONG64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymRegisterFunctionEntryCallback64*(hProcess: HANDLE, CallbackFunction: PSYMBOL_FUNCENTRY_CALLBACK64, UserContext: ULONG64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSetContext*(hProcess: HANDLE, StackFrame: PIMAGEHLP_STACK_FRAME, Context: PIMAGEHLP_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromAddr*(hProcess: HANDLE, Address: DWORD64, Displacement: PDWORD64, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromAddrW*(hProcess: HANDLE, Address: DWORD64, Displacement: PDWORD64, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromToken*(hProcess: HANDLE, Base: DWORD64, Token: DWORD, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromTokenW*(hProcess: HANDLE, Base: DWORD64, Token: DWORD, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromName*(hProcess: HANDLE, Name: PCSTR, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromNameW*(hProcess: HANDLE, Name: PCWSTR, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSymbols*(hProcess: HANDLE, BaseOfDll: ULONG64, Mask: PCSTR, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSymbolsW*(hProcess: HANDLE, BaseOfDll: ULONG64, Mask: PCWSTR, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSymbolsForAddr*(hProcess: HANDLE, Address: DWORD64, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSymbolsForAddrW*(hProcess: HANDLE, Address: DWORD64, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetTypeInfo*(hProcess: HANDLE, ModBase: DWORD64, TypeId: ULONG, GetType: IMAGEHLP_SYMBOL_TYPE_INFO, pInfo: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumTypes*(hProcess: HANDLE, BaseOfDll: ULONG64, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumTypesW*(hProcess: HANDLE, BaseOfDll: ULONG64, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetTypeFromName*(hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCSTR, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetTypeFromNameW*(hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCWSTR, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymAddSymbol*(hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCSTR, Address: DWORD64, Size: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymAddSymbolW*(hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCWSTR, Address: DWORD64, Size: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymDeleteSymbol*(hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCSTR, Address: DWORD64, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymDeleteSymbolW*(hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCWSTR, Address: DWORD64, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc DbgHelpCreateUserDump*(FileName: LPCSTR, Callback: PDBGHELP_CREATE_USER_DUMP_CALLBACK, UserData: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc DbgHelpCreateUserDumpW*(FileName: LPCWSTR, Callback: PDBGHELP_CREATE_USER_DUMP_CALLBACK, UserData: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSymFromAddr64*(hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD64, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSymFromName64*(hProcess: HANDLE, Name: PCSTR, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc MiniDumpWriteDump*(hProcess: HANDLE, ProcessId: DWORD, hFile: HANDLE, DumpType: MINIDUMP_TYPE, ExceptionParam: PMINIDUMP_EXCEPTION_INFORMATION, UserStreamParam: PMINIDUMP_USER_STREAM_INFORMATION, CallbackParam: PMINIDUMP_CALLBACK_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc MiniDumpReadDumpStream*(BaseOfDump: PVOID, StreamNumber: ULONG, Dir: ptr PMINIDUMP_DIRECTORY, StreamPointer: ptr PVOID, StreamSize: ptr ULONG): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc EnumerateLoadedModulesEx*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc EnumerateLoadedModulesExW*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACKW64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymAddSourceStream*(hProcess: HANDLE, Base: ULONG64, StreamFile: PCSTR, Buffer: PBYTE, Size: int): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymAddSourceStreamW*(hProcess: HANDLE, Base: ULONG64, StreamFile: PCWSTR, Buffer: PBYTE, Size: int): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSourceLines*(hProcess: HANDLE, Base: ULONG64, Obj: PCSTR, File: PCSTR, Line: DWORD, Flags: DWORD, EnumLinesCallback: PSYM_ENUMLINES_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumSourceLinesW*(hProcess: HANDLE, Base: ULONG64, Obj: PCWSTR, File: PCWSTR, Line: DWORD, Flags: DWORD, EnumLinesCallback: PSYM_ENUMLINES_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumTypesByName*(hProcess: HANDLE, BaseOfDll: ULONG64, mask: PCSTR, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymEnumTypesByNameW*(hProcess: HANDLE, BaseOfDll: ULONG64, mask: PCSTR, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFindDebugInfoFile*(hProcess: HANDLE, FileName: PCSTR, DebugFilePath: PSTR, Callback: PFIND_DEBUG_FILE_CALLBACK, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFindDebugInfoFileW*(hProcess: HANDLE, FileName: PCWSTR, DebugFilePath: PWSTR, Callback: PFIND_DEBUG_FILE_CALLBACKW, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFindExecutableImage*(hProcess: HANDLE, FileName: PCSTR, ImageFilePath: PSTR, Callback: PFIND_EXE_FILE_CALLBACK, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFindExecutableImageW*(hProcess: HANDLE, FileName: PCWSTR, ImageFilePath: PWSTR, Callback: PFIND_EXE_FILE_CALLBACKW, CallerData: PVOID): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromIndex*(hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymFromIndexW*(hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetScope*(hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetScopeW*(hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceFileFromToken*(hProcess: HANDLE, Token: PVOID, Params: PCSTR, FilePath: PSTR, Size: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceFileFromTokenW*(hProcess: HANDLE, Token: PVOID, Params: PCWSTR, FilePath: PWSTR, Size: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceFileToken*(hProcess: HANDLE, Base: ULONG64, FileSpec: PCSTR, Token: ptr PVOID, Size: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceFileTokenW*(hProcess: HANDLE, Base: ULONG64, FileSpec: PCWSTR, Token: ptr PVOID, Size: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceFile*(hProcess: HANDLE, Base: ULONG64, Params: PCSTR, FileSpec: PCSTR, FilePath: PSTR, Size: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceFileW*(hProcess: HANDLE, Base: ULONG64, Params: PCWSTR, FileSpec: PCWSTR, FilePath: PWSTR, Size: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceVarFromToken*(hProcess: HANDLE, Token: PVOID, Params: PCSTR, VarName: PCSTR, Value: PSTR, Size: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSourceVarFromTokenW*(hProcess: HANDLE, Token: PVOID, Params: PCWSTR, VarName: PCWSTR, Value: PWSTR, Size: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSymbolFile*(hProcess: HANDLE, SymPath: PCSTR, ImageFile: PCSTR, Type: DWORD, SymbolFile: PSTR, cSymbolFile: int, DbgFile: PSTR, cDbgFile: int): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymGetSymbolFileW*(hProcess: HANDLE, SymPath: PCWSTR, ImageFile: PCWSTR, Type: DWORD, SymbolFile: PWSTR, cSymbolFile: int, DbgFile: PWSTR, cDbgFile: int): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymNext*(hProcess: HANDLE, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymNextW*(hProcess: HANDLE, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymPrev*(hProcess: HANDLE, Symbol: PSYMBOL_INFO): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymPrevW*(hProcess: HANDLE, Symbol: PSYMBOL_INFOW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymRefreshModuleList*(hProcess: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSearch*(hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, SymTag: DWORD, Mask: PCSTR, Address: DWORD64, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, UserContext: PVOID, Options: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSearchW*(hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, SymTag: DWORD, Mask: PCWSTR, Address: DWORD64, EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, UserContext: PVOID, Options: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvGetFileIndexStringA*(hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Index: PSTR, Size: int, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexString".} -proc SymSrvGetFileIndexStringW*(hProcess: HANDLE, SrvPath: PCWSTR, File: PCWSTR, Index: PWSTR, Size: int, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvGetFileIndexInfoA*(File: PCSTR, Info: PSYMSRV_INDEX_INFO, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexInfo".} -proc SymSrvGetFileIndexInfoW*(File: PCWSTR, Info: PSYMSRV_INDEX_INFOW, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvGetFileIndexesA*(File: PCSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexes".} -proc SymSrvGetFileIndexesW*(File: PCWSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvGetSupplementA*(hProcess: HANDLE, SymPath: PCSTR, Node: PCSTR, File: PCSTR): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetSupplement".} -proc SymSrvGetSupplementW*(hProcess: HANDLE, SymPath: PCWSTR, Node: PCWSTR, File: PCWSTR): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvIsStoreA*(hProcess: HANDLE, path: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvIsStore".} -proc SymSrvIsStoreW*(hProcess: HANDLE, path: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvStoreFileA*(hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Flags: DWORD): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreFile".} -proc SymSrvStoreFileW*(hProcess: HANDLE, SrvPath: PCWSTR, File: PCWSTR, Flags: DWORD): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvStoreSupplementA*(hProcess: HANDLE, SymPath: PCTSTR, Node: PCSTR, File: PCSTR, Flags: DWORD): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreSupplement".} -proc SymSrvStoreSupplementW*(hProcess: HANDLE, SymPath: PCWSTR, Node: PCWSTR, File: PCWSTR, Flags: DWORD): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc SymSrvDeltaNameA*(hProcess: HANDLE, SymPath: PCSTR, Type: PCSTR, File1: PCSTR, File2: PCSTR): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvDeltaName".} -proc SymSrvDeltaNameW*(hProcess: HANDLE, SymPath: PCWSTR, Type: PCWSTR, File1: PCWSTR, File2: PCWSTR): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} -proc `Reserved=`*(self: var MINIDUMP_HEADER, x: ULONG32) {.inline.} = self.union1.Reserved = x -proc Reserved*(self: MINIDUMP_HEADER): ULONG32 {.inline.} = self.union1.Reserved -proc Reserved*(self: var MINIDUMP_HEADER): var ULONG32 {.inline.} = self.union1.Reserved -proc `TimeDateStamp=`*(self: var MINIDUMP_HEADER, x: ULONG32) {.inline.} = self.union1.TimeDateStamp = x -proc TimeDateStamp*(self: MINIDUMP_HEADER): ULONG32 {.inline.} = self.union1.TimeDateStamp -proc TimeDateStamp*(self: var MINIDUMP_HEADER): var ULONG32 {.inline.} = self.union1.TimeDateStamp -proc `Reserved0=`*(self: var MINIDUMP_SYSTEM_INFO, x: USHORT) {.inline.} = self.union1.Reserved0 = x -proc Reserved0*(self: MINIDUMP_SYSTEM_INFO): USHORT {.inline.} = self.union1.Reserved0 -proc Reserved0*(self: var MINIDUMP_SYSTEM_INFO): var USHORT {.inline.} = self.union1.Reserved0 -proc `NumberOfProcessors=`*(self: var MINIDUMP_SYSTEM_INFO, x: UCHAR) {.inline.} = self.union1.struct1.NumberOfProcessors = x -proc NumberOfProcessors*(self: MINIDUMP_SYSTEM_INFO): UCHAR {.inline.} = self.union1.struct1.NumberOfProcessors -proc NumberOfProcessors*(self: var MINIDUMP_SYSTEM_INFO): var UCHAR {.inline.} = self.union1.struct1.NumberOfProcessors -proc `ProductType=`*(self: var MINIDUMP_SYSTEM_INFO, x: UCHAR) {.inline.} = self.union1.struct1.ProductType = x -proc ProductType*(self: MINIDUMP_SYSTEM_INFO): UCHAR {.inline.} = self.union1.struct1.ProductType -proc ProductType*(self: var MINIDUMP_SYSTEM_INFO): var UCHAR {.inline.} = self.union1.struct1.ProductType -proc `Reserved1=`*(self: var MINIDUMP_SYSTEM_INFO, x: ULONG32) {.inline.} = self.union2.Reserved1 = x -proc Reserved1*(self: MINIDUMP_SYSTEM_INFO): ULONG32 {.inline.} = self.union2.Reserved1 -proc Reserved1*(self: var MINIDUMP_SYSTEM_INFO): var ULONG32 {.inline.} = self.union2.Reserved1 -proc `SuiteMask=`*(self: var MINIDUMP_SYSTEM_INFO, x: USHORT) {.inline.} = self.union2.struct1.SuiteMask = x -proc SuiteMask*(self: MINIDUMP_SYSTEM_INFO): USHORT {.inline.} = self.union2.struct1.SuiteMask -proc SuiteMask*(self: var MINIDUMP_SYSTEM_INFO): var USHORT {.inline.} = self.union2.struct1.SuiteMask -proc `Reserved2=`*(self: var MINIDUMP_SYSTEM_INFO, x: USHORT) {.inline.} = self.union2.struct1.Reserved2 = x -proc Reserved2*(self: MINIDUMP_SYSTEM_INFO): USHORT {.inline.} = self.union2.struct1.Reserved2 -proc Reserved2*(self: var MINIDUMP_SYSTEM_INFO): var USHORT {.inline.} = self.union2.struct1.Reserved2 -proc `Thread=`*(self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_THREAD_CALLBACK) {.inline.} = self.union1.Thread = x -proc Thread*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_THREAD_CALLBACK {.inline.} = self.union1.Thread -proc Thread*(self: var MINIDUMP_CALLBACK_INPUT): var MINIDUMP_THREAD_CALLBACK {.inline.} = self.union1.Thread -proc `ThreadEx=`*(self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_THREAD_EX_CALLBACK) {.inline.} = self.union1.ThreadEx = x -proc ThreadEx*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_THREAD_EX_CALLBACK {.inline.} = self.union1.ThreadEx -proc ThreadEx*(self: var MINIDUMP_CALLBACK_INPUT): var MINIDUMP_THREAD_EX_CALLBACK {.inline.} = self.union1.ThreadEx -proc `Module=`*(self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_MODULE_CALLBACK) {.inline.} = self.union1.Module = x -proc Module*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_MODULE_CALLBACK {.inline.} = self.union1.Module -proc Module*(self: var MINIDUMP_CALLBACK_INPUT): var MINIDUMP_MODULE_CALLBACK {.inline.} = self.union1.Module -proc `IncludeThread=`*(self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_INCLUDE_THREAD_CALLBACK) {.inline.} = self.union1.IncludeThread = x -proc IncludeThread*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_INCLUDE_THREAD_CALLBACK {.inline.} = self.union1.IncludeThread -proc IncludeThread*(self: var MINIDUMP_CALLBACK_INPUT): var MINIDUMP_INCLUDE_THREAD_CALLBACK {.inline.} = self.union1.IncludeThread -proc `IncludeModule=`*(self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_INCLUDE_MODULE_CALLBACK) {.inline.} = self.union1.IncludeModule = x -proc IncludeModule*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_INCLUDE_MODULE_CALLBACK {.inline.} = self.union1.IncludeModule -proc IncludeModule*(self: var MINIDUMP_CALLBACK_INPUT): var MINIDUMP_INCLUDE_MODULE_CALLBACK {.inline.} = self.union1.IncludeModule -proc `ModuleWriteFlags=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = self.union1.ModuleWriteFlags = x -proc ModuleWriteFlags*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = self.union1.ModuleWriteFlags -proc ModuleWriteFlags*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = self.union1.ModuleWriteFlags -proc `ThreadWriteFlags=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = self.union1.ThreadWriteFlags = x -proc ThreadWriteFlags*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = self.union1.ThreadWriteFlags -proc ThreadWriteFlags*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = self.union1.ThreadWriteFlags -proc `SecondaryFlags=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = self.union1.SecondaryFlags = x -proc SecondaryFlags*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = self.union1.SecondaryFlags -proc SecondaryFlags*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = self.union1.SecondaryFlags -proc `MemoryBase=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG64) {.inline.} = self.union1.struct1.MemoryBase = x -proc MemoryBase*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG64 {.inline.} = self.union1.struct1.MemoryBase -proc MemoryBase*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG64 {.inline.} = self.union1.struct1.MemoryBase -proc `MemorySize=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = self.union1.struct1.MemorySize = x -proc MemorySize*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = self.union1.struct1.MemorySize -proc MemorySize*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = self.union1.struct1.MemorySize -proc `CheckCancel=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: WINBOOL) {.inline.} = self.union1.struct2.CheckCancel = x -proc CheckCancel*(self: MINIDUMP_CALLBACK_OUTPUT): WINBOOL {.inline.} = self.union1.struct2.CheckCancel -proc CheckCancel*(self: var MINIDUMP_CALLBACK_OUTPUT): var WINBOOL {.inline.} = self.union1.struct2.CheckCancel -proc `Cancel=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: WINBOOL) {.inline.} = self.union1.struct2.Cancel = x -proc Cancel*(self: MINIDUMP_CALLBACK_OUTPUT): WINBOOL {.inline.} = self.union1.struct2.Cancel -proc Cancel*(self: var MINIDUMP_CALLBACK_OUTPUT): var WINBOOL {.inline.} = self.union1.struct2.Cancel -proc `VmRegion=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: MINIDUMP_MEMORY_INFO) {.inline.} = self.struct1.VmRegion = x -proc VmRegion*(self: MINIDUMP_CALLBACK_OUTPUT): MINIDUMP_MEMORY_INFO {.inline.} = self.struct1.VmRegion -proc VmRegion*(self: var MINIDUMP_CALLBACK_OUTPUT): var MINIDUMP_MEMORY_INFO {.inline.} = self.struct1.VmRegion -proc `Continue=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: WINBOOL) {.inline.} = self.struct1.Continue = x -proc Continue*(self: MINIDUMP_CALLBACK_OUTPUT): WINBOOL {.inline.} = self.struct1.Continue -proc Continue*(self: var MINIDUMP_CALLBACK_OUTPUT): var WINBOOL {.inline.} = self.struct1.Continue +proc SymCleanup*( + hProcess: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymMatchString*( + string: PCSTR, expression: PCSTR, fCase: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymMatchStringW*( + string: PCWSTR, expression: PCWSTR, fCase: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSourceFiles*( + hProcess: HANDLE, + ModBase: ULONG64, + Mask: PCSTR, + cbSrcFiles: PSYM_ENUMSOURCEFILES_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSourceFilesW*( + hProcess: HANDLE, + ModBase: ULONG64, + Mask: PCWSTR, + cbSrcFiles: PSYM_ENUMSOURCEFILES_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumerateModules64*( + hProcess: HANDLE, EnumModulesCallback: PSYM_ENUMMODULES_CALLBACK64, UserContext: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumerateModulesW64*( + hProcess: HANDLE, + EnumModulesCallback: PSYM_ENUMMODULES_CALLBACKW64, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumerateSymbols64*( + hProcess: HANDLE, + BaseOfDll: DWORD64, + EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumerateSymbolsW64*( + hProcess: HANDLE, + BaseOfDll: DWORD64, + EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64W, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc EnumerateLoadedModulesA64*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "EnumerateLoadedModules64".} + +proc EnumerateLoadedModulesW64*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACKW64, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFunctionTableAccess64*( + hProcess: HANDLE, AddrBase: DWORD64 +): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetModuleInfo64*( + hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULE64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetModuleInfoW64*( + hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULEW64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetModuleBase64*( + hProcess: HANDLE, qwAddr: DWORD64 +): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSymNext64*( + hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSymPrev64*( + hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumLines*( + hProcess: HANDLE, + Base: ULONG64, + Obj: PCSTR, + File: PCSTR, + EnumLinesCallback: PSYM_ENUMLINES_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumLinesW*( + hProcess: HANDLE, + Base: ULONG64, + Obj: PCWSTR, + File: PCSTR, + EnumLinesCallback: PSYM_ENUMLINES_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLineFromAddr64*( + hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD, Line64: PIMAGEHLP_LINE64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLineFromAddrW64*( + hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD, Line64: PIMAGEHLP_LINEW64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLineFromName64*( + hProcess: HANDLE, + ModuleName: PCSTR, + FileName: PCSTR, + dwLineNumber: DWORD, + plDisplacement: PLONG, + Line: PIMAGEHLP_LINE64, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLineFromNameW64*( + hProcess: HANDLE, + ModuleName: PCWSTR, + FileName: PCWSTR, + dwLineNumber: DWORD, + plDisplacement: PLONG, + Line: PIMAGEHLP_LINEW64, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLineNext64*( + hProcess: HANDLE, Line: PIMAGEHLP_LINE64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLineNextW64*( + hProcess: HANDLE, Line: PIMAGEHLP_LINEW64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLinePrev64*( + hProcess: HANDLE, Line: PIMAGEHLP_LINE64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetLinePrevW64*( + hProcess: HANDLE, Line: PIMAGEHLP_LINEW64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymMatchFileName*( + FileName: PCSTR, Match: PCSTR, FileNameStop: ptr PSTR, MatchStop: ptr PSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymMatchFileNameW*( + FileName: PCWSTR, Match: PCWSTR, FileNameStop: ptr PWSTR, MatchStop: ptr PWSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymInitialize*( + hProcess: HANDLE, UserSearchPath: PCSTR, fInvadeProcess: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymInitializeW*( + hProcess: HANDLE, UserSearchPath: PCWSTR, fInvadeProcess: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSearchPath*( + hProcess: HANDLE, SearchPath: PSTR, SearchPathLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSearchPathW*( + hProcess: HANDLE, SearchPath: PWSTR, SearchPathLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetSearchPath*( + hProcess: HANDLE, SearchPath: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetSearchPathW*( + hProcess: HANDLE, SearchPath: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymLoadModule64*( + hProcess: HANDLE, + hFile: HANDLE, + ImageName: PSTR, + ModuleName: PSTR, + BaseOfDll: DWORD64, + SizeOfDll: DWORD, +): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymLoadModuleEx*( + hProcess: HANDLE, + hFile: HANDLE, + ImageName: PCSTR, + ModuleName: PCSTR, + BaseOfDll: DWORD64, + DllSize: DWORD, + Data: PMODLOAD_DATA, + Flags: DWORD, +): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymLoadModuleExW*( + hProcess: HANDLE, + hFile: HANDLE, + ImageName: PCWSTR, + ModuleName: PCWSTR, + BaseOfDll: DWORD64, + DllSize: DWORD, + Data: PMODLOAD_DATA, + Flags: DWORD, +): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymUnloadModule64*( + hProcess: HANDLE, BaseOfDll: DWORD64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymUnDName64*( + sym: PIMAGEHLP_SYMBOL64, UnDecName: PSTR, UnDecNameLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymRegisterCallback64*( + hProcess: HANDLE, + CallbackFunction: PSYMBOL_REGISTERED_CALLBACK64, + UserContext: ULONG64, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymRegisterFunctionEntryCallback64*( + hProcess: HANDLE, CallbackFunction: PSYMBOL_FUNCENTRY_CALLBACK64, UserContext: ULONG64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSetContext*( + hProcess: HANDLE, StackFrame: PIMAGEHLP_STACK_FRAME, Context: PIMAGEHLP_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromAddr*( + hProcess: HANDLE, Address: DWORD64, Displacement: PDWORD64, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromAddrW*( + hProcess: HANDLE, Address: DWORD64, Displacement: PDWORD64, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromToken*( + hProcess: HANDLE, Base: DWORD64, Token: DWORD, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromTokenW*( + hProcess: HANDLE, Base: DWORD64, Token: DWORD, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromName*( + hProcess: HANDLE, Name: PCSTR, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromNameW*( + hProcess: HANDLE, Name: PCWSTR, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSymbols*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + Mask: PCSTR, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSymbolsW*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + Mask: PCWSTR, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSymbolsForAddr*( + hProcess: HANDLE, + Address: DWORD64, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSymbolsForAddrW*( + hProcess: HANDLE, + Address: DWORD64, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetTypeInfo*( + hProcess: HANDLE, + ModBase: DWORD64, + TypeId: ULONG, + GetType: IMAGEHLP_SYMBOL_TYPE_INFO, + pInfo: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumTypes*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumTypesW*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetTypeFromName*( + hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCSTR, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetTypeFromNameW*( + hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCWSTR, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymAddSymbol*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + Name: PCSTR, + Address: DWORD64, + Size: DWORD, + Flags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymAddSymbolW*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + Name: PCWSTR, + Address: DWORD64, + Size: DWORD, + Flags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymDeleteSymbol*( + hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCSTR, Address: DWORD64, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymDeleteSymbolW*( + hProcess: HANDLE, BaseOfDll: ULONG64, Name: PCWSTR, Address: DWORD64, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc DbgHelpCreateUserDump*( + FileName: LPCSTR, Callback: PDBGHELP_CREATE_USER_DUMP_CALLBACK, UserData: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc DbgHelpCreateUserDumpW*( + FileName: LPCWSTR, Callback: PDBGHELP_CREATE_USER_DUMP_CALLBACK, UserData: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSymFromAddr64*( + hProcess: HANDLE, + qwAddr: DWORD64, + pdwDisplacement: PDWORD64, + Symbol: PIMAGEHLP_SYMBOL64, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSymFromName64*( + hProcess: HANDLE, Name: PCSTR, Symbol: PIMAGEHLP_SYMBOL64 +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc MiniDumpWriteDump*( + hProcess: HANDLE, + ProcessId: DWORD, + hFile: HANDLE, + DumpType: MINIDUMP_TYPE, + ExceptionParam: PMINIDUMP_EXCEPTION_INFORMATION, + UserStreamParam: PMINIDUMP_USER_STREAM_INFORMATION, + CallbackParam: PMINIDUMP_CALLBACK_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc MiniDumpReadDumpStream*( + BaseOfDump: PVOID, + StreamNumber: ULONG, + Dir: ptr PMINIDUMP_DIRECTORY, + StreamPointer: ptr PVOID, + StreamSize: ptr ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc EnumerateLoadedModulesEx*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc EnumerateLoadedModulesExW*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACKW64, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymAddSourceStream*( + hProcess: HANDLE, Base: ULONG64, StreamFile: PCSTR, Buffer: PBYTE, Size: int +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymAddSourceStreamW*( + hProcess: HANDLE, Base: ULONG64, StreamFile: PCWSTR, Buffer: PBYTE, Size: int +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSourceLines*( + hProcess: HANDLE, + Base: ULONG64, + Obj: PCSTR, + File: PCSTR, + Line: DWORD, + Flags: DWORD, + EnumLinesCallback: PSYM_ENUMLINES_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumSourceLinesW*( + hProcess: HANDLE, + Base: ULONG64, + Obj: PCWSTR, + File: PCWSTR, + Line: DWORD, + Flags: DWORD, + EnumLinesCallback: PSYM_ENUMLINES_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumTypesByName*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + mask: PCSTR, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymEnumTypesByNameW*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + mask: PCSTR, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, + UserContext: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFindDebugInfoFile*( + hProcess: HANDLE, + FileName: PCSTR, + DebugFilePath: PSTR, + Callback: PFIND_DEBUG_FILE_CALLBACK, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFindDebugInfoFileW*( + hProcess: HANDLE, + FileName: PCWSTR, + DebugFilePath: PWSTR, + Callback: PFIND_DEBUG_FILE_CALLBACKW, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFindExecutableImage*( + hProcess: HANDLE, + FileName: PCSTR, + ImageFilePath: PSTR, + Callback: PFIND_EXE_FILE_CALLBACK, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFindExecutableImageW*( + hProcess: HANDLE, + FileName: PCWSTR, + ImageFilePath: PWSTR, + Callback: PFIND_EXE_FILE_CALLBACKW, + CallerData: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromIndex*( + hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymFromIndexW*( + hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetScope*( + hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetScopeW*( + hProcess: HANDLE, BaseOfDll: ULONG64, Index: DWORD, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceFileFromToken*( + hProcess: HANDLE, Token: PVOID, Params: PCSTR, FilePath: PSTR, Size: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceFileFromTokenW*( + hProcess: HANDLE, Token: PVOID, Params: PCWSTR, FilePath: PWSTR, Size: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceFileToken*( + hProcess: HANDLE, Base: ULONG64, FileSpec: PCSTR, Token: ptr PVOID, Size: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceFileTokenW*( + hProcess: HANDLE, Base: ULONG64, FileSpec: PCWSTR, Token: ptr PVOID, Size: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceFile*( + hProcess: HANDLE, + Base: ULONG64, + Params: PCSTR, + FileSpec: PCSTR, + FilePath: PSTR, + Size: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceFileW*( + hProcess: HANDLE, + Base: ULONG64, + Params: PCWSTR, + FileSpec: PCWSTR, + FilePath: PWSTR, + Size: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceVarFromToken*( + hProcess: HANDLE, + Token: PVOID, + Params: PCSTR, + VarName: PCSTR, + Value: PSTR, + Size: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSourceVarFromTokenW*( + hProcess: HANDLE, + Token: PVOID, + Params: PCWSTR, + VarName: PCWSTR, + Value: PWSTR, + Size: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSymbolFile*( + hProcess: HANDLE, + SymPath: PCSTR, + ImageFile: PCSTR, + Type: DWORD, + SymbolFile: PSTR, + cSymbolFile: int, + DbgFile: PSTR, + cDbgFile: int, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymGetSymbolFileW*( + hProcess: HANDLE, + SymPath: PCWSTR, + ImageFile: PCWSTR, + Type: DWORD, + SymbolFile: PWSTR, + cSymbolFile: int, + DbgFile: PWSTR, + cDbgFile: int, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymNext*( + hProcess: HANDLE, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymNextW*( + hProcess: HANDLE, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymPrev*( + hProcess: HANDLE, Symbol: PSYMBOL_INFO +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymPrevW*( + hProcess: HANDLE, Symbol: PSYMBOL_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymRefreshModuleList*( + hProcess: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSearch*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + Index: DWORD, + SymTag: DWORD, + Mask: PCSTR, + Address: DWORD64, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACK, + UserContext: PVOID, + Options: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSearchW*( + hProcess: HANDLE, + BaseOfDll: ULONG64, + Index: DWORD, + SymTag: DWORD, + Mask: PCWSTR, + Address: DWORD64, + EnumSymbolsCallback: PSYM_ENUMERATESYMBOLS_CALLBACKW, + UserContext: PVOID, + Options: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvGetFileIndexStringA*( + hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Index: PSTR, Size: int, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexString".} + +proc SymSrvGetFileIndexStringW*( + hProcess: HANDLE, SrvPath: PCWSTR, File: PCWSTR, Index: PWSTR, Size: int, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvGetFileIndexInfoA*( + File: PCSTR, Info: PSYMSRV_INDEX_INFO, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexInfo".} + +proc SymSrvGetFileIndexInfoW*( + File: PCWSTR, Info: PSYMSRV_INDEX_INFOW, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvGetFileIndexesA*( + File: PCSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexes".} + +proc SymSrvGetFileIndexesW*( + File: PCWSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvGetSupplementA*( + hProcess: HANDLE, SymPath: PCSTR, Node: PCSTR, File: PCSTR +): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetSupplement".} + +proc SymSrvGetSupplementW*( + hProcess: HANDLE, SymPath: PCWSTR, Node: PCWSTR, File: PCWSTR +): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvIsStoreA*( + hProcess: HANDLE, path: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvIsStore".} + +proc SymSrvIsStoreW*( + hProcess: HANDLE, path: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvStoreFileA*( + hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Flags: DWORD +): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreFile".} + +proc SymSrvStoreFileW*( + hProcess: HANDLE, SrvPath: PCWSTR, File: PCWSTR, Flags: DWORD +): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvStoreSupplementA*( + hProcess: HANDLE, SymPath: PCTSTR, Node: PCSTR, File: PCSTR, Flags: DWORD +): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreSupplement".} + +proc SymSrvStoreSupplementW*( + hProcess: HANDLE, SymPath: PCWSTR, Node: PCWSTR, File: PCWSTR, Flags: DWORD +): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc SymSrvDeltaNameA*( + hProcess: HANDLE, SymPath: PCSTR, Type: PCSTR, File1: PCSTR, File2: PCSTR +): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvDeltaName".} + +proc SymSrvDeltaNameW*( + hProcess: HANDLE, SymPath: PCWSTR, Type: PCWSTR, File1: PCWSTR, File2: PCWSTR +): PCWSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + +proc `Reserved=`*(self: var MINIDUMP_HEADER, x: ULONG32) {.inline.} = + self.union1.Reserved = x + +proc Reserved*(self: MINIDUMP_HEADER): ULONG32 {.inline.} = + self.union1.Reserved + +proc Reserved*(self: var MINIDUMP_HEADER): var ULONG32 {.inline.} = + self.union1.Reserved + +proc `TimeDateStamp=`*(self: var MINIDUMP_HEADER, x: ULONG32) {.inline.} = + self.union1.TimeDateStamp = x + +proc TimeDateStamp*(self: MINIDUMP_HEADER): ULONG32 {.inline.} = + self.union1.TimeDateStamp + +proc TimeDateStamp*(self: var MINIDUMP_HEADER): var ULONG32 {.inline.} = + self.union1.TimeDateStamp + +proc `Reserved0=`*(self: var MINIDUMP_SYSTEM_INFO, x: USHORT) {.inline.} = + self.union1.Reserved0 = x + +proc Reserved0*(self: MINIDUMP_SYSTEM_INFO): USHORT {.inline.} = + self.union1.Reserved0 + +proc Reserved0*(self: var MINIDUMP_SYSTEM_INFO): var USHORT {.inline.} = + self.union1.Reserved0 + +proc `NumberOfProcessors=`*(self: var MINIDUMP_SYSTEM_INFO, x: UCHAR) {.inline.} = + self.union1.struct1.NumberOfProcessors = x + +proc NumberOfProcessors*(self: MINIDUMP_SYSTEM_INFO): UCHAR {.inline.} = + self.union1.struct1.NumberOfProcessors + +proc NumberOfProcessors*(self: var MINIDUMP_SYSTEM_INFO): var UCHAR {.inline.} = + self.union1.struct1.NumberOfProcessors + +proc `ProductType=`*(self: var MINIDUMP_SYSTEM_INFO, x: UCHAR) {.inline.} = + self.union1.struct1.ProductType = x + +proc ProductType*(self: MINIDUMP_SYSTEM_INFO): UCHAR {.inline.} = + self.union1.struct1.ProductType + +proc ProductType*(self: var MINIDUMP_SYSTEM_INFO): var UCHAR {.inline.} = + self.union1.struct1.ProductType + +proc `Reserved1=`*(self: var MINIDUMP_SYSTEM_INFO, x: ULONG32) {.inline.} = + self.union2.Reserved1 = x + +proc Reserved1*(self: MINIDUMP_SYSTEM_INFO): ULONG32 {.inline.} = + self.union2.Reserved1 + +proc Reserved1*(self: var MINIDUMP_SYSTEM_INFO): var ULONG32 {.inline.} = + self.union2.Reserved1 + +proc `SuiteMask=`*(self: var MINIDUMP_SYSTEM_INFO, x: USHORT) {.inline.} = + self.union2.struct1.SuiteMask = x + +proc SuiteMask*(self: MINIDUMP_SYSTEM_INFO): USHORT {.inline.} = + self.union2.struct1.SuiteMask + +proc SuiteMask*(self: var MINIDUMP_SYSTEM_INFO): var USHORT {.inline.} = + self.union2.struct1.SuiteMask + +proc `Reserved2=`*(self: var MINIDUMP_SYSTEM_INFO, x: USHORT) {.inline.} = + self.union2.struct1.Reserved2 = x + +proc Reserved2*(self: MINIDUMP_SYSTEM_INFO): USHORT {.inline.} = + self.union2.struct1.Reserved2 + +proc Reserved2*(self: var MINIDUMP_SYSTEM_INFO): var USHORT {.inline.} = + self.union2.struct1.Reserved2 + +proc `Thread=`*( + self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_THREAD_CALLBACK +) {.inline.} = + self.union1.Thread = x + +proc Thread*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_THREAD_CALLBACK {.inline.} = + self.union1.Thread + +proc Thread*( + self: var MINIDUMP_CALLBACK_INPUT +): var MINIDUMP_THREAD_CALLBACK {.inline.} = + self.union1.Thread + +proc `ThreadEx=`*( + self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_THREAD_EX_CALLBACK +) {.inline.} = + self.union1.ThreadEx = x + +proc ThreadEx*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_THREAD_EX_CALLBACK {.inline.} = + self.union1.ThreadEx + +proc ThreadEx*( + self: var MINIDUMP_CALLBACK_INPUT +): var MINIDUMP_THREAD_EX_CALLBACK {.inline.} = + self.union1.ThreadEx + +proc `Module=`*( + self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_MODULE_CALLBACK +) {.inline.} = + self.union1.Module = x + +proc Module*(self: MINIDUMP_CALLBACK_INPUT): MINIDUMP_MODULE_CALLBACK {.inline.} = + self.union1.Module + +proc Module*( + self: var MINIDUMP_CALLBACK_INPUT +): var MINIDUMP_MODULE_CALLBACK {.inline.} = + self.union1.Module + +proc `IncludeThread=`*( + self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_INCLUDE_THREAD_CALLBACK +) {.inline.} = + self.union1.IncludeThread = x + +proc IncludeThread*( + self: MINIDUMP_CALLBACK_INPUT +): MINIDUMP_INCLUDE_THREAD_CALLBACK {.inline.} = + self.union1.IncludeThread + +proc IncludeThread*( + self: var MINIDUMP_CALLBACK_INPUT +): var MINIDUMP_INCLUDE_THREAD_CALLBACK {.inline.} = + self.union1.IncludeThread + +proc `IncludeModule=`*( + self: var MINIDUMP_CALLBACK_INPUT, x: MINIDUMP_INCLUDE_MODULE_CALLBACK +) {.inline.} = + self.union1.IncludeModule = x + +proc IncludeModule*( + self: MINIDUMP_CALLBACK_INPUT +): MINIDUMP_INCLUDE_MODULE_CALLBACK {.inline.} = + self.union1.IncludeModule + +proc IncludeModule*( + self: var MINIDUMP_CALLBACK_INPUT +): var MINIDUMP_INCLUDE_MODULE_CALLBACK {.inline.} = + self.union1.IncludeModule + +proc `ModuleWriteFlags=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = + self.union1.ModuleWriteFlags = x + +proc ModuleWriteFlags*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = + self.union1.ModuleWriteFlags + +proc ModuleWriteFlags*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = + self.union1.ModuleWriteFlags + +proc `ThreadWriteFlags=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = + self.union1.ThreadWriteFlags = x + +proc ThreadWriteFlags*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = + self.union1.ThreadWriteFlags + +proc ThreadWriteFlags*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = + self.union1.ThreadWriteFlags + +proc `SecondaryFlags=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = + self.union1.SecondaryFlags = x + +proc SecondaryFlags*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = + self.union1.SecondaryFlags + +proc SecondaryFlags*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = + self.union1.SecondaryFlags + +proc `MemoryBase=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG64) {.inline.} = + self.union1.struct1.MemoryBase = x + +proc MemoryBase*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG64 {.inline.} = + self.union1.struct1.MemoryBase + +proc MemoryBase*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG64 {.inline.} = + self.union1.struct1.MemoryBase + +proc `MemorySize=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: ULONG) {.inline.} = + self.union1.struct1.MemorySize = x + +proc MemorySize*(self: MINIDUMP_CALLBACK_OUTPUT): ULONG {.inline.} = + self.union1.struct1.MemorySize + +proc MemorySize*(self: var MINIDUMP_CALLBACK_OUTPUT): var ULONG {.inline.} = + self.union1.struct1.MemorySize + +proc `CheckCancel=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: WINBOOL) {.inline.} = + self.union1.struct2.CheckCancel = x + +proc CheckCancel*(self: MINIDUMP_CALLBACK_OUTPUT): WINBOOL {.inline.} = + self.union1.struct2.CheckCancel + +proc CheckCancel*(self: var MINIDUMP_CALLBACK_OUTPUT): var WINBOOL {.inline.} = + self.union1.struct2.CheckCancel + +proc `Cancel=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: WINBOOL) {.inline.} = + self.union1.struct2.Cancel = x + +proc Cancel*(self: MINIDUMP_CALLBACK_OUTPUT): WINBOOL {.inline.} = + self.union1.struct2.Cancel + +proc Cancel*(self: var MINIDUMP_CALLBACK_OUTPUT): var WINBOOL {.inline.} = + self.union1.struct2.Cancel + +proc `VmRegion=`*( + self: var MINIDUMP_CALLBACK_OUTPUT, x: MINIDUMP_MEMORY_INFO +) {.inline.} = + self.struct1.VmRegion = x + +proc VmRegion*(self: MINIDUMP_CALLBACK_OUTPUT): MINIDUMP_MEMORY_INFO {.inline.} = + self.struct1.VmRegion + +proc VmRegion*( + self: var MINIDUMP_CALLBACK_OUTPUT +): var MINIDUMP_MEMORY_INFO {.inline.} = + self.struct1.VmRegion + +proc `Continue=`*(self: var MINIDUMP_CALLBACK_OUTPUT, x: WINBOOL) {.inline.} = + self.struct1.Continue = x + +proc Continue*(self: MINIDUMP_CALLBACK_OUTPUT): WINBOOL {.inline.} = + self.struct1.Continue + +proc Continue*(self: var MINIDUMP_CALLBACK_OUTPUT): var WINBOOL {.inline.} = + self.struct1.Continue + when winimUnicode: - proc UnDecorateSymbolName*(DecoratedName: PCSTR, UnDecoratedName: PSTR, UndecoratedLength: DWORD, Flags: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc: "UnDecorateSymbolNameW".} - proc EnumerateLoadedModules64*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "EnumerateLoadedModulesW64".} - proc SymSrvGetFileIndexString*(hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Index: PSTR, Size: int, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexStringW".} - proc SymSrvGetFileIndexInfo*(File: PCSTR, Info: PSYMSRV_INDEX_INFO, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexInfoW".} - proc SymSrvGetFileIndexes*(File: PCSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexesW".} - proc SymSrvGetSupplement*(hProcess: HANDLE, SymPath: PCSTR, Node: PCSTR, File: PCSTR): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetSupplementW".} - proc SymSrvIsStore*(hProcess: HANDLE, path: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvIsStoreW".} - proc SymSrvStoreFile*(hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Flags: DWORD): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreFileW".} - proc SymSrvStoreSupplement*(hProcess: HANDLE, SymPath: PCTSTR, Node: PCSTR, File: PCSTR, Flags: DWORD): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreSupplementW".} - proc SymSrvDeltaName*(hProcess: HANDLE, SymPath: PCSTR, Type: PCSTR, File1: PCSTR, File2: PCSTR): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvDeltaNameW".} - proc MapFileAndCheckSum*(Filename: PCWSTR, HeaderSum: PDWORD, CheckSum: PDWORD): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc: "MapFileAndCheckSumW".} + proc UnDecorateSymbolName*( + DecoratedName: PCSTR, UnDecoratedName: PSTR, UndecoratedLength: DWORD, Flags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc: "UnDecorateSymbolNameW".} + + proc EnumerateLoadedModules64*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, + UserContext: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "dbghelp", importc: "EnumerateLoadedModulesW64" + .} + + proc SymSrvGetFileIndexString*( + hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Index: PSTR, Size: int, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexStringW" + .} + + proc SymSrvGetFileIndexInfo*( + File: PCSTR, Info: PSYMSRV_INDEX_INFO, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexInfoW".} + + proc SymSrvGetFileIndexes*( + File: PCSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetFileIndexesW".} + + proc SymSrvGetSupplement*( + hProcess: HANDLE, SymPath: PCSTR, Node: PCSTR, File: PCSTR + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvGetSupplementW".} + + proc SymSrvIsStore*( + hProcess: HANDLE, path: PCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvIsStoreW".} + + proc SymSrvStoreFile*( + hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Flags: DWORD + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreFileW".} + + proc SymSrvStoreSupplement*( + hProcess: HANDLE, SymPath: PCTSTR, Node: PCSTR, File: PCSTR, Flags: DWORD + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvStoreSupplementW".} + + proc SymSrvDeltaName*( + hProcess: HANDLE, SymPath: PCSTR, Type: PCSTR, File1: PCSTR, File2: PCSTR + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc: "SymSrvDeltaNameW".} + + proc MapFileAndCheckSum*( + Filename: PCWSTR, HeaderSum: PDWORD, CheckSum: PDWORD + ): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc: "MapFileAndCheckSumW".} + when winimAnsi: - proc UnDecorateSymbolName*(DecoratedName: PCSTR, UnDecoratedName: PSTR, UndecoratedLength: DWORD, Flags: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc EnumerateLoadedModules64*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvGetFileIndexString*(hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Index: PSTR, Size: int, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvGetFileIndexInfo*(File: PCSTR, Info: PSYMSRV_INDEX_INFO, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvGetFileIndexes*(File: PCSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvGetSupplement*(hProcess: HANDLE, SymPath: PCSTR, Node: PCSTR, File: PCSTR): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvIsStore*(hProcess: HANDLE, path: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvStoreFile*(hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Flags: DWORD): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvStoreSupplement*(hProcess: HANDLE, SymPath: PCTSTR, Node: PCSTR, File: PCSTR, Flags: DWORD): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymSrvDeltaName*(hProcess: HANDLE, SymPath: PCSTR, Type: PCSTR, File1: PCSTR, File2: PCSTR): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc MapFileAndCheckSum*(Filename: PCSTR, HeaderSum: PDWORD, CheckSum: PDWORD): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc: "MapFileAndCheckSumA".} + proc UnDecorateSymbolName*( + DecoratedName: PCSTR, UnDecoratedName: PSTR, UndecoratedLength: DWORD, Flags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc EnumerateLoadedModules64*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvGetFileIndexString*( + hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Index: PSTR, Size: int, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvGetFileIndexInfo*( + File: PCSTR, Info: PSYMSRV_INDEX_INFO, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvGetFileIndexes*( + File: PCSTR, Id: ptr GUID, Val1: ptr DWORD, Val2: ptr DWORD, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvGetSupplement*( + hProcess: HANDLE, SymPath: PCSTR, Node: PCSTR, File: PCSTR + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvIsStore*( + hProcess: HANDLE, path: PCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvStoreFile*( + hProcess: HANDLE, SrvPath: PCSTR, File: PCSTR, Flags: DWORD + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvStoreSupplement*( + hProcess: HANDLE, SymPath: PCTSTR, Node: PCSTR, File: PCSTR, Flags: DWORD + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymSrvDeltaName*( + hProcess: HANDLE, SymPath: PCSTR, Type: PCSTR, File1: PCSTR, File2: PCSTR + ): PCSTR {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc MapFileAndCheckSum*( + Filename: PCSTR, HeaderSum: PDWORD, CheckSum: PDWORD + ): DWORD {.winapi, stdcall, dynlib: "imagehlp", importc: "MapFileAndCheckSumA".} + when winimCpu64: type TADDRESS* = TADDRESS64 @@ -1307,28 +2503,132 @@ PIMAGEHLP_DEFERRED_SYMBOL_LOAD* = PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 IMAGEHLP_DUPLICATE_SYMBOL* = IMAGEHLP_DUPLICATE_SYMBOL64 PIMAGEHLP_DUPLICATE_SYMBOL* = PIMAGEHLP_DUPLICATE_SYMBOL64 - proc StackWalk*(MachineType: DWORD, hProcess: HANDLE, hThread: HANDLE, StackFrame: LPSTACKFRAME64, ContextRecord: PVOID, ReadMemoryRoutine: PREAD_PROCESS_MEMORY_ROUTINE64, FunctionTableAccessRoutine: PFUNCTION_TABLE_ACCESS_ROUTINE64, GetModuleBaseRoutine: PGET_MODULE_BASE_ROUTINE64, TranslateAddress: PTRANSLATE_ADDRESS_ROUTINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "StackWalk64".} - proc SymEnumerateModules*(hProcess: HANDLE, EnumModulesCallback: PSYM_ENUMMODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymEnumerateModules64".} - proc SymEnumerateSymbols*(hProcess: HANDLE, BaseOfDll: DWORD64, EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymEnumerateSymbols64".} - proc SymEnumerateSymbolsW*(hProcess: HANDLE, BaseOfDll: DWORD64, EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64W, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymEnumerateSymbolsW64".} - proc EnumerateLoadedModules*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "EnumerateLoadedModules64".} - proc SymFunctionTableAccess*(hProcess: HANDLE, AddrBase: DWORD64): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc: "SymFunctionTableAccess64".} - proc SymGetModuleInfo*(hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetModuleInfo64".} - proc SymGetModuleInfoW*(hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULEW64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetModuleInfoW64".} - proc SymGetModuleBase*(hProcess: HANDLE, qwAddr: DWORD64): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetModuleBase64".} - proc SymGetSymNext*(hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymNext64".} - proc SymGetSymPrev*(hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymPrev64".} - proc SymGetLineFromAddr*(hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD, Line64: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLineFromAddr64".} - proc SymGetLineFromName*(hProcess: HANDLE, ModuleName: PCSTR, FileName: PCSTR, dwLineNumber: DWORD, plDisplacement: PLONG, Line: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLineFromName64".} - proc SymGetLineNext*(hProcess: HANDLE, Line: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLineNext64".} - proc SymGetLinePrev*(hProcess: HANDLE, Line: PIMAGEHLP_LINE64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLinePrev64".} - proc SymLoadModule*(hProcess: HANDLE, hFile: HANDLE, ImageName: PSTR, ModuleName: PSTR, BaseOfDll: DWORD64, SizeOfDll: DWORD): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc: "SymLoadModule64".} - proc SymUnloadModule*(hProcess: HANDLE, BaseOfDll: DWORD64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymUnloadModule64".} - proc SymUnDName*(sym: PIMAGEHLP_SYMBOL64, UnDecName: PSTR, UnDecNameLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymUnDName64".} - proc SymRegisterCallback*(hProcess: HANDLE, CallbackFunction: PSYMBOL_REGISTERED_CALLBACK64, UserContext: ULONG64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymRegisterCallback64".} - proc SymRegisterFunctionEntryCallback*(hProcess: HANDLE, CallbackFunction: PSYMBOL_FUNCENTRY_CALLBACK64, UserContext: ULONG64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymRegisterFunctionEntryCallback64".} - proc SymGetSymFromAddr*(hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD64, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymFromAddr64".} - proc SymGetSymFromName*(hProcess: HANDLE, Name: PCSTR, Symbol: PIMAGEHLP_SYMBOL64): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymFromName64".} + + proc StackWalk*( + MachineType: DWORD, + hProcess: HANDLE, + hThread: HANDLE, + StackFrame: LPSTACKFRAME64, + ContextRecord: PVOID, + ReadMemoryRoutine: PREAD_PROCESS_MEMORY_ROUTINE64, + FunctionTableAccessRoutine: PFUNCTION_TABLE_ACCESS_ROUTINE64, + GetModuleBaseRoutine: PGET_MODULE_BASE_ROUTINE64, + TranslateAddress: PTRANSLATE_ADDRESS_ROUTINE64, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "StackWalk64".} + + proc SymEnumerateModules*( + hProcess: HANDLE, + EnumModulesCallback: PSYM_ENUMMODULES_CALLBACK64, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymEnumerateModules64".} + + proc SymEnumerateSymbols*( + hProcess: HANDLE, + BaseOfDll: DWORD64, + EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymEnumerateSymbols64".} + + proc SymEnumerateSymbolsW*( + hProcess: HANDLE, + BaseOfDll: DWORD64, + EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK64W, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymEnumerateSymbolsW64".} + + proc EnumerateLoadedModules*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK64, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "EnumerateLoadedModules64".} + + proc SymFunctionTableAccess*( + hProcess: HANDLE, AddrBase: DWORD64 + ): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc: "SymFunctionTableAccess64".} + + proc SymGetModuleInfo*( + hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULE64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetModuleInfo64".} + + proc SymGetModuleInfoW*( + hProcess: HANDLE, qwAddr: DWORD64, ModuleInfo: PIMAGEHLP_MODULEW64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetModuleInfoW64".} + + proc SymGetModuleBase*( + hProcess: HANDLE, qwAddr: DWORD64 + ): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetModuleBase64".} + + proc SymGetSymNext*( + hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymNext64".} + + proc SymGetSymPrev*( + hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymPrev64".} + + proc SymGetLineFromAddr*( + hProcess: HANDLE, qwAddr: DWORD64, pdwDisplacement: PDWORD, Line64: PIMAGEHLP_LINE64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLineFromAddr64".} + + proc SymGetLineFromName*( + hProcess: HANDLE, + ModuleName: PCSTR, + FileName: PCSTR, + dwLineNumber: DWORD, + plDisplacement: PLONG, + Line: PIMAGEHLP_LINE64, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLineFromName64".} + + proc SymGetLineNext*( + hProcess: HANDLE, Line: PIMAGEHLP_LINE64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLineNext64".} + + proc SymGetLinePrev*( + hProcess: HANDLE, Line: PIMAGEHLP_LINE64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetLinePrev64".} + + proc SymLoadModule*( + hProcess: HANDLE, + hFile: HANDLE, + ImageName: PSTR, + ModuleName: PSTR, + BaseOfDll: DWORD64, + SizeOfDll: DWORD, + ): DWORD64 {.winapi, stdcall, dynlib: "dbghelp", importc: "SymLoadModule64".} + + proc SymUnloadModule*( + hProcess: HANDLE, BaseOfDll: DWORD64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymUnloadModule64".} + + proc SymUnDName*( + sym: PIMAGEHLP_SYMBOL64, UnDecName: PSTR, UnDecNameLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymUnDName64".} + + proc SymRegisterCallback*( + hProcess: HANDLE, + CallbackFunction: PSYMBOL_REGISTERED_CALLBACK64, + UserContext: ULONG64, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymRegisterCallback64".} + + proc SymRegisterFunctionEntryCallback*( + hProcess: HANDLE, + CallbackFunction: PSYMBOL_FUNCENTRY_CALLBACK64, + UserContext: ULONG64, + ): WINBOOL {. + winapi, stdcall, dynlib: "dbghelp", importc: "SymRegisterFunctionEntryCallback64" + .} + + proc SymGetSymFromAddr*( + hProcess: HANDLE, + qwAddr: DWORD64, + pdwDisplacement: PDWORD64, + Symbol: PIMAGEHLP_SYMBOL64, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymFromAddr64".} + + proc SymGetSymFromName*( + hProcess: HANDLE, Name: PCSTR, Symbol: PIMAGEHLP_SYMBOL64 + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc: "SymGetSymFromName64".} + when winimCpu32: type IMAGE_DEBUG_INFORMATION* {.pure.} = object @@ -1363,11 +2663,13 @@ ReservedNumberOfDebugDirectories*: DWORD ReservedOriginalFunctionTableBaseAddress*: DWORD Reserved*: array[2, DWORD] + PIMAGE_DEBUG_INFORMATION* = ptr IMAGE_DEBUG_INFORMATION TADDRESS* {.pure.} = object Offset*: DWORD Segment*: WORD Mode*: ADDRESS_MODE + LPADDRESS* = ptr TADDRESS KDHELP* {.pure.} = object Thread*: DWORD @@ -1382,6 +2684,7 @@ StackBase*: DWORD StackLimit*: DWORD Reserved*: array[5, DWORD] + PKDHELP* = ptr KDHELP STACKFRAME* {.pure.} = object AddrPC*: TADDRESS @@ -1395,6 +2698,7 @@ Reserved*: array[3, DWORD] KdHelp*: KDHELP AddrBStore*: TADDRESS + LPSTACKFRAME* = ptr STACKFRAME IMAGEHLP_SYMBOL* {.pure.} = object SizeOfStruct*: DWORD @@ -1403,10 +2707,12 @@ Flags*: DWORD MaxNameLength*: DWORD Name*: array[1, CHAR] + PIMAGEHLP_SYMBOL* = ptr IMAGEHLP_SYMBOL IMAGEHLP_SYMBOL_PACKAGE* {.pure.} = object sym*: IMAGEHLP_SYMBOL - name*: array[MAX_SYM_NAME+1, CHAR] + name*: array[MAX_SYM_NAME + 1, CHAR] + PIMAGEHLP_SYMBOL_PACKAGE* = ptr IMAGEHLP_SYMBOL_PACKAGE IMAGEHLP_MODULE* {.pure.} = object SizeOfStruct*: DWORD @@ -1419,6 +2725,7 @@ ModuleName*: array[32, CHAR] ImageName*: array[256, CHAR] LoadedImageName*: array[256, CHAR] + PIMAGEHLP_MODULE* = ptr IMAGEHLP_MODULE IMAGEHLP_MODULEW* {.pure.} = object SizeOfStruct*: DWORD @@ -1431,6 +2738,7 @@ ModuleName*: array[32, WCHAR] ImageName*: array[256, WCHAR] LoadedImageName*: array[256, WCHAR] + PIMAGEHLP_MODULEW* = ptr IMAGEHLP_MODULEW IMAGEHLP_LINE* {.pure.} = object SizeOfStruct*: DWORD @@ -1438,6 +2746,7 @@ LineNumber*: DWORD FileName*: PCHAR Address*: DWORD + PIMAGEHLP_LINE* = ptr IMAGEHLP_LINE IMAGEHLP_DEFERRED_SYMBOL_LOAD* {.pure.} = object SizeOfStruct*: DWORD @@ -1447,42 +2756,155 @@ FileName*: array[MAX_PATH, CHAR] Reparse*: BOOLEAN hFile*: HANDLE + PIMAGEHLP_DEFERRED_SYMBOL_LOAD* = ptr IMAGEHLP_DEFERRED_SYMBOL_LOAD IMAGEHLP_DUPLICATE_SYMBOL* {.pure.} = object SizeOfStruct*: DWORD NumberOfDups*: DWORD Symbol*: PIMAGEHLP_SYMBOL SelectedSymbol*: DWORD + PIMAGEHLP_DUPLICATE_SYMBOL* = ptr IMAGEHLP_DUPLICATE_SYMBOL - PREAD_PROCESS_MEMORY_ROUTINE* = proc (hProcess: HANDLE, lpBaseAddress: DWORD, lpBuffer: PVOID, nSize: DWORD, lpNumberOfBytesRead: PDWORD): WINBOOL {.stdcall.} - PFUNCTION_TABLE_ACCESS_ROUTINE* = proc (hProcess: HANDLE, AddrBase: DWORD): PVOID {.stdcall.} - PGET_MODULE_BASE_ROUTINE* = proc (hProcess: HANDLE, Address: DWORD): DWORD {.stdcall.} - PTRANSLATE_ADDRESS_ROUTINE* = proc (hProcess: HANDLE, hThread: HANDLE, lpaddr: LPADDRESS): DWORD {.stdcall.} - PSYMBOL_FUNCENTRY_CALLBACK* = proc (hProcess: HANDLE, AddrBase: DWORD, UserContext: PVOID): PVOID {.stdcall.} - PSYM_ENUMMODULES_CALLBACK* = proc (ModuleName: PCSTR, BaseOfDll: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMSYMBOLS_CALLBACK* = proc (SymbolName: PCSTR, SymbolAddress: ULONG, SymbolSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PSYM_ENUMSYMBOLS_CALLBACKW* = proc (SymbolName: PCWSTR, SymbolAddress: ULONG, SymbolSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PENUMLOADED_MODULES_CALLBACK* = proc (ModuleName: PCSTR, ModuleBase: ULONG, ModuleSize: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} - PSYMBOL_REGISTERED_CALLBACK* = proc (hProcess: HANDLE, ActionCode: ULONG, CallbackData: PVOID, UserContext: PVOID): WINBOOL {.stdcall.} - proc StackWalk*(MachineType: DWORD, hProcess: HANDLE, hThread: HANDLE, StackFrame: LPSTACKFRAME, ContextRecord: PVOID, ReadMemoryRoutine: PREAD_PROCESS_MEMORY_ROUTINE, FunctionTableAccessRoutine: PFUNCTION_TABLE_ACCESS_ROUTINE, GetModuleBaseRoutine: PGET_MODULE_BASE_ROUTINE, TranslateAddress: PTRANSLATE_ADDRESS_ROUTINE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymEnumerateModules*(hProcess: HANDLE, EnumModulesCallback: PSYM_ENUMMODULES_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymEnumerateSymbols*(hProcess: HANDLE, BaseOfDll: DWORD, EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymEnumerateSymbolsW*(hProcess: HANDLE, BaseOfDll: DWORD, EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACKW, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc EnumerateLoadedModules*(hProcess: HANDLE, EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymFunctionTableAccess*(hProcess: HANDLE, AddrBase: DWORD): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetModuleInfo*(hProcess: HANDLE, dwAddr: DWORD, ModuleInfo: PIMAGEHLP_MODULE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetModuleInfoW*(hProcess: HANDLE, dwAddr: DWORD, ModuleInfo: PIMAGEHLP_MODULEW): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetModuleBase*(hProcess: HANDLE, dwAddr: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetSymNext*(hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetSymPrev*(hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetLineFromAddr*(hProcess: HANDLE, dwAddr: DWORD, pdwDisplacement: PDWORD, Line: PIMAGEHLP_LINE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetLineFromName*(hProcess: HANDLE, ModuleName: PCSTR, FileName: PCSTR, dwLineNumber: DWORD, plDisplacement: PLONG, Line: PIMAGEHLP_LINE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetLineNext*(hProcess: HANDLE, Line: PIMAGEHLP_LINE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetLinePrev*(hProcess: HANDLE, Line: PIMAGEHLP_LINE): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymLoadModule*(hProcess: HANDLE, hFile: HANDLE, ImageName: PCSTR, ModuleName: PCSTR, BaseOfDll: DWORD, SizeOfDll: DWORD): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymUnloadModule*(hProcess: HANDLE, BaseOfDll: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymUnDName*(sym: PIMAGEHLP_SYMBOL, UnDecName: PSTR, UnDecNameLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymRegisterCallback*(hProcess: HANDLE, CallbackFunction: PSYMBOL_REGISTERED_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymRegisterFunctionEntryCallback*(hProcess: HANDLE, CallbackFunction: PSYMBOL_FUNCENTRY_CALLBACK, UserContext: PVOID): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetSymFromAddr*(hProcess: HANDLE, dwAddr: DWORD, pdwDisplacement: PDWORD, Symbol: PIMAGEHLP_SYMBOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} - proc SymGetSymFromName*(hProcess: HANDLE, Name: PCSTR, Symbol: PIMAGEHLP_SYMBOL): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + PREAD_PROCESS_MEMORY_ROUTINE* = proc( + hProcess: HANDLE, + lpBaseAddress: DWORD, + lpBuffer: PVOID, + nSize: DWORD, + lpNumberOfBytesRead: PDWORD, + ): WINBOOL {.stdcall.} + PFUNCTION_TABLE_ACCESS_ROUTINE* = + proc(hProcess: HANDLE, AddrBase: DWORD): PVOID {.stdcall.} + PGET_MODULE_BASE_ROUTINE* = + proc(hProcess: HANDLE, Address: DWORD): DWORD {.stdcall.} + PTRANSLATE_ADDRESS_ROUTINE* = + proc(hProcess: HANDLE, hThread: HANDLE, lpaddr: LPADDRESS): DWORD {.stdcall.} + PSYMBOL_FUNCENTRY_CALLBACK* = + proc(hProcess: HANDLE, AddrBase: DWORD, UserContext: PVOID): PVOID {.stdcall.} + PSYM_ENUMMODULES_CALLBACK* = + proc(ModuleName: PCSTR, BaseOfDll: ULONG, UserContext: PVOID): WINBOOL {.stdcall.} + PSYM_ENUMSYMBOLS_CALLBACK* = proc( + SymbolName: PCSTR, SymbolAddress: ULONG, SymbolSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PSYM_ENUMSYMBOLS_CALLBACKW* = proc( + SymbolName: PCWSTR, SymbolAddress: ULONG, SymbolSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PENUMLOADED_MODULES_CALLBACK* = proc( + ModuleName: PCSTR, ModuleBase: ULONG, ModuleSize: ULONG, UserContext: PVOID + ): WINBOOL {.stdcall.} + PSYMBOL_REGISTERED_CALLBACK* = proc( + hProcess: HANDLE, ActionCode: ULONG, CallbackData: PVOID, UserContext: PVOID + ): WINBOOL {.stdcall.} + + proc StackWalk*( + MachineType: DWORD, + hProcess: HANDLE, + hThread: HANDLE, + StackFrame: LPSTACKFRAME, + ContextRecord: PVOID, + ReadMemoryRoutine: PREAD_PROCESS_MEMORY_ROUTINE, + FunctionTableAccessRoutine: PFUNCTION_TABLE_ACCESS_ROUTINE, + GetModuleBaseRoutine: PGET_MODULE_BASE_ROUTINE, + TranslateAddress: PTRANSLATE_ADDRESS_ROUTINE, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymEnumerateModules*( + hProcess: HANDLE, EnumModulesCallback: PSYM_ENUMMODULES_CALLBACK, UserContext: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymEnumerateSymbols*( + hProcess: HANDLE, + BaseOfDll: DWORD, + EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACK, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymEnumerateSymbolsW*( + hProcess: HANDLE, + BaseOfDll: DWORD, + EnumSymbolsCallback: PSYM_ENUMSYMBOLS_CALLBACKW, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc EnumerateLoadedModules*( + hProcess: HANDLE, + EnumLoadedModulesCallback: PENUMLOADED_MODULES_CALLBACK, + UserContext: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymFunctionTableAccess*( + hProcess: HANDLE, AddrBase: DWORD + ): PVOID {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetModuleInfo*( + hProcess: HANDLE, dwAddr: DWORD, ModuleInfo: PIMAGEHLP_MODULE + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetModuleInfoW*( + hProcess: HANDLE, dwAddr: DWORD, ModuleInfo: PIMAGEHLP_MODULEW + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetModuleBase*( + hProcess: HANDLE, dwAddr: DWORD + ): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetSymNext*( + hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetSymPrev*( + hProcess: HANDLE, Symbol: PIMAGEHLP_SYMBOL + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetLineFromAddr*( + hProcess: HANDLE, dwAddr: DWORD, pdwDisplacement: PDWORD, Line: PIMAGEHLP_LINE + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetLineFromName*( + hProcess: HANDLE, + ModuleName: PCSTR, + FileName: PCSTR, + dwLineNumber: DWORD, + plDisplacement: PLONG, + Line: PIMAGEHLP_LINE, + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetLineNext*( + hProcess: HANDLE, Line: PIMAGEHLP_LINE + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetLinePrev*( + hProcess: HANDLE, Line: PIMAGEHLP_LINE + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymLoadModule*( + hProcess: HANDLE, + hFile: HANDLE, + ImageName: PCSTR, + ModuleName: PCSTR, + BaseOfDll: DWORD, + SizeOfDll: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymUnloadModule*( + hProcess: HANDLE, BaseOfDll: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymUnDName*( + sym: PIMAGEHLP_SYMBOL, UnDecName: PSTR, UnDecNameLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymRegisterCallback*( + hProcess: HANDLE, CallbackFunction: PSYMBOL_REGISTERED_CALLBACK, UserContext: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymRegisterFunctionEntryCallback*( + hProcess: HANDLE, CallbackFunction: PSYMBOL_FUNCENTRY_CALLBACK, UserContext: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetSymFromAddr*( + hProcess: HANDLE, dwAddr: DWORD, pdwDisplacement: PDWORD, Symbol: PIMAGEHLP_SYMBOL + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} + + proc SymGetSymFromName*( + hProcess: HANDLE, Name: PCSTR, Symbol: PIMAGEHLP_SYMBOL + ): WINBOOL {.winapi, stdcall, dynlib: "dbghelp", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/imm.nim --- a/semicongine/thirdparty/winim/winim/inc/imm.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/imm.nim Thu Aug 22 18:32:21 2024 +0700 @@ -20,6 +20,7 @@ dwStyle*: DWORD ptCurrentPos*: POINT rcArea*: RECT + PCOMPOSITIONFORM* = ptr COMPOSITIONFORM NPCOMPOSITIONFORM* = ptr COMPOSITIONFORM LPCOMPOSITIONFORM* = ptr COMPOSITIONFORM @@ -28,6 +29,7 @@ dwStyle*: DWORD ptCurrentPos*: POINT rcArea*: RECT + PCANDIDATEFORM* = ptr CANDIDATEFORM NPCANDIDATEFORM* = ptr CANDIDATEFORM LPCANDIDATEFORM* = ptr CANDIDATEFORM @@ -39,18 +41,21 @@ dwPageStart*: DWORD dwPageSize*: DWORD dwOffset*: array[1, DWORD] + PCANDIDATELIST* = ptr CANDIDATELIST NPCANDIDATELIST* = ptr CANDIDATELIST LPCANDIDATELIST* = ptr CANDIDATELIST REGISTERWORDA* {.pure.} = object lpReading*: LPSTR lpWord*: LPSTR + PREGISTERWORDA* = ptr REGISTERWORDA NPREGISTERWORDA* = ptr REGISTERWORDA LPREGISTERWORDA* = ptr REGISTERWORDA REGISTERWORDW* {.pure.} = object lpReading*: LPWSTR lpWord*: LPWSTR + PREGISTERWORDW* = ptr REGISTERWORDW NPREGISTERWORDW* = ptr REGISTERWORDW LPREGISTERWORDW* = ptr REGISTERWORDW @@ -63,26 +68,29 @@ dwCompStrOffset*: DWORD dwTargetStrLen*: DWORD dwTargetStrOffset*: DWORD + PRECONVERTSTRING* = ptr RECONVERTSTRING NPRECONVERTSTRING* = ptr RECONVERTSTRING LPRECONVERTSTRING* = ptr RECONVERTSTRING -const - STYLE_DESCRIPTION_SIZE* = 32 + +const STYLE_DESCRIPTION_SIZE* = 32 type STYLEBUFA* {.pure.} = object dwStyle*: DWORD szDescription*: array[STYLE_DESCRIPTION_SIZE, CHAR] + PSTYLEBUFA* = ptr STYLEBUFA NPSTYLEBUFA* = ptr STYLEBUFA LPSTYLEBUFA* = ptr STYLEBUFA STYLEBUFW* {.pure.} = object dwStyle*: DWORD szDescription*: array[STYLE_DESCRIPTION_SIZE, WCHAR] + PSTYLEBUFW* = ptr STYLEBUFW NPSTYLEBUFW* = ptr STYLEBUFW LPSTYLEBUFW* = ptr STYLEBUFW -const - IMEMENUITEM_STRING_SIZE* = 80 + +const IMEMENUITEM_STRING_SIZE* = 80 type IMEMENUITEMINFOA* {.pure.} = object cbSize*: UINT @@ -94,6 +102,7 @@ dwItemData*: DWORD szString*: array[IMEMENUITEM_STRING_SIZE, CHAR] hbmpItem*: HBITMAP + PIMEMENUITEMINFOA* = ptr IMEMENUITEMINFOA NPIMEMENUITEMINFOA* = ptr IMEMENUITEMINFOA LPIMEMENUITEMINFOA* = ptr IMEMENUITEMINFOA @@ -107,6 +116,7 @@ dwItemData*: DWORD szString*: array[IMEMENUITEM_STRING_SIZE, WCHAR] hbmpItem*: HBITMAP + PIMEMENUITEMINFOW* = ptr IMEMENUITEMINFOW NPIMEMENUITEMINFOW* = ptr IMEMENUITEMINFOW LPIMEMENUITEMINFOW* = ptr IMEMENUITEMINFOW @@ -116,9 +126,11 @@ pt*: POINT cLineHeight*: UINT rcDocument*: RECT + PIMECHARPOSITION* = ptr IMECHARPOSITION NPIMECHARPOSITION* = ptr IMECHARPOSITION LPIMECHARPOSITION* = ptr IMECHARPOSITION + const IMC_GETCANDIDATEPOS* = 0x0007 IMC_SETCANDIDATEPOS* = 0x0008 @@ -362,12 +374,15 @@ CLSID_CActiveIMM* = DEFINE_GUID("4955dd33-b159-11d0-8fcf-00aa006bcc59") IGP_GETIMEVERSION* = DWORD(-4) type - IMCENUMPROC* = proc (P1: HIMC, P2: LPARAM): WINBOOL {.stdcall.} - REGISTERWORDENUMPROCA* = proc (P1: LPCSTR, P2: DWORD, P3: LPCSTR, P4: LPVOID): int32 {.stdcall.} - REGISTERWORDENUMPROCW* = proc (P1: LPCWSTR, P2: DWORD, P3: LPCWSTR, P4: LPVOID): int32 {.stdcall.} + IMCENUMPROC* = proc(P1: HIMC, P2: LPARAM): WINBOOL {.stdcall.} + REGISTERWORDENUMPROCA* = + proc(P1: LPCSTR, P2: DWORD, P3: LPCSTR, P4: LPVOID): int32 {.stdcall.} + REGISTERWORDENUMPROCW* = + proc(P1: LPCWSTR, P2: DWORD, P3: LPCWSTR, P4: LPVOID): int32 {.stdcall.} INPUTCONTEXT_lfFont* {.pure, union.} = object A*: LOGFONTA W*: LOGFONTW + INPUTCONTEXT* {.pure.} = object hWnd*: HWND fOpen*: WINBOOL @@ -386,6 +401,7 @@ hMsgBuf*: HIMCC fdwInit*: DWORD dwReserve*: array[3, DWORD] + IMEINFO* {.pure.} = object dwPrivateDataSize*: DWORD fdwProperty*: DWORD @@ -394,494 +410,2736 @@ fdwUICaps*: DWORD fdwSCSCaps*: DWORD fdwSelectCaps*: DWORD + IEnumInputContext* {.pure.} = object lpVtbl*: ptr IEnumInputContextVtbl + IEnumInputContextVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Clone*: proc(self: ptr IEnumInputContext, ppEnum: ptr ptr IEnumInputContext): HRESULT {.stdcall.} - Next*: proc(self: ptr IEnumInputContext, ulCount: ULONG, rgInputContext: ptr HIMC, pcFetched: ptr ULONG): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumInputContext, ppEnum: ptr ptr IEnumInputContext + ): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumInputContext, + ulCount: ULONG, + rgInputContext: ptr HIMC, + pcFetched: ptr ULONG, + ): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumInputContext): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumInputContext, ulCount: ULONG): HRESULT {.stdcall.} + IActiveIMMRegistrar* {.pure.} = object lpVtbl*: ptr IActiveIMMRegistrarVtbl + IActiveIMMRegistrarVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterIME*: proc(self: ptr IActiveIMMRegistrar, rclsid: REFCLSID, lgid: LANGID, pszIconFile: LPCWSTR, pszDesc: LPCWSTR): HRESULT {.stdcall.} - UnregisterIME*: proc(self: ptr IActiveIMMRegistrar, rclsid: REFCLSID): HRESULT {.stdcall.} + RegisterIME*: proc( + self: ptr IActiveIMMRegistrar, + rclsid: REFCLSID, + lgid: LANGID, + pszIconFile: LPCWSTR, + pszDesc: LPCWSTR, + ): HRESULT {.stdcall.} + UnregisterIME*: + proc(self: ptr IActiveIMMRegistrar, rclsid: REFCLSID): HRESULT {.stdcall.} + IActiveIMMMessagePumpOwner* {.pure.} = object lpVtbl*: ptr IActiveIMMMessagePumpOwnerVtbl + IActiveIMMMessagePumpOwnerVtbl* {.pure, inheritable.} = object of IUnknownVtbl Start*: proc(self: ptr IActiveIMMMessagePumpOwner): HRESULT {.stdcall.} End*: proc(self: ptr IActiveIMMMessagePumpOwner): HRESULT {.stdcall.} - OnTranslateMessage*: proc(self: ptr IActiveIMMMessagePumpOwner, pMsg: ptr MSG): HRESULT {.stdcall.} - Pause*: proc(self: ptr IActiveIMMMessagePumpOwner, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - Resume*: proc(self: ptr IActiveIMMMessagePumpOwner, dwCookie: DWORD): HRESULT {.stdcall.} + OnTranslateMessage*: + proc(self: ptr IActiveIMMMessagePumpOwner, pMsg: ptr MSG): HRESULT {.stdcall.} + Pause*: proc(self: ptr IActiveIMMMessagePumpOwner, pdwCookie: ptr DWORD): HRESULT {. + stdcall + .} + Resume*: + proc(self: ptr IActiveIMMMessagePumpOwner, dwCookie: DWORD): HRESULT {.stdcall.} + IEnumRegisterWordA* {.pure.} = object lpVtbl*: ptr IEnumRegisterWordAVtbl + IEnumRegisterWordAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Clone*: proc(self: ptr IEnumRegisterWordA, ppEnum: ptr ptr IEnumRegisterWordA): HRESULT {.stdcall.} - Next*: proc(self: ptr IEnumRegisterWordA, ulCount: ULONG, rgRegisterWord: ptr REGISTERWORDA, pcFetched: ptr ULONG): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumRegisterWordA, ppEnum: ptr ptr IEnumRegisterWordA + ): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumRegisterWordA, + ulCount: ULONG, + rgRegisterWord: ptr REGISTERWORDA, + pcFetched: ptr ULONG, + ): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumRegisterWordA): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumRegisterWordA, ulCount: ULONG): HRESULT {.stdcall.} + IEnumRegisterWordW* {.pure.} = object lpVtbl*: ptr IEnumRegisterWordWVtbl + IEnumRegisterWordWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Clone*: proc(self: ptr IEnumRegisterWordW, ppEnum: ptr ptr IEnumRegisterWordW): HRESULT {.stdcall.} - Next*: proc(self: ptr IEnumRegisterWordW, ulCount: ULONG, rgRegisterWord: ptr REGISTERWORDW, pcFetched: ptr ULONG): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumRegisterWordW, ppEnum: ptr ptr IEnumRegisterWordW + ): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumRegisterWordW, + ulCount: ULONG, + rgRegisterWord: ptr REGISTERWORDW, + pcFetched: ptr ULONG, + ): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumRegisterWordW): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumRegisterWordW, ulCount: ULONG): HRESULT {.stdcall.} + IActiveIMMApp* {.pure.} = object lpVtbl*: ptr IActiveIMMAppVtbl + IActiveIMMAppVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AssociateContext*: proc(self: ptr IActiveIMMApp, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC): HRESULT {.stdcall.} - ConfigureIMEA*: proc(self: ptr IActiveIMMApp, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDA): HRESULT {.stdcall.} - ConfigureIMEW*: proc(self: ptr IActiveIMMApp, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDW): HRESULT {.stdcall.} + AssociateContext*: proc( + self: ptr IActiveIMMApp, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC + ): HRESULT {.stdcall.} + ConfigureIMEA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDA, + ): HRESULT {.stdcall.} + ConfigureIMEW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDW, + ): HRESULT {.stdcall.} CreateContext*: proc(self: ptr IActiveIMMApp, phIMC: ptr HIMC): HRESULT {.stdcall.} DestroyContext*: proc(self: ptr IActiveIMMApp, hIME: HIMC): HRESULT {.stdcall.} - EnumRegisterWordA*: proc(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordA): HRESULT {.stdcall.} - EnumRegisterWordW*: proc(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordW): HRESULT {.stdcall.} - EscapeA*: proc(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.stdcall.} - EscapeW*: proc(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.stdcall.} - GetCandidateListA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetCandidateListW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetCandidateListCountA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.stdcall.} - GetCandidateListCountW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.stdcall.} - GetCandidateWindow*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM): HRESULT {.stdcall.} - GetCompositionFontA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} - GetCompositionFontW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} - GetCompositionStringA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.stdcall.} - GetCompositionStringW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.stdcall.} - GetCompositionWindow*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.stdcall.} - GetContext*: proc(self: ptr IActiveIMMApp, hWnd: HWND, phIMC: ptr HIMC): HRESULT {.stdcall.} - GetConversionListA*: proc(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, pSrc: LPSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetConversionListW*: proc(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, pSrc: LPWSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetConversionStatus*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pfdwConversion: ptr DWORD, pfdwSentence: ptr DWORD): HRESULT {.stdcall.} - GetDefaultIMEWnd*: proc(self: ptr IActiveIMMApp, hWnd: HWND, phDefWnd: ptr HWND): HRESULT {.stdcall.} - GetDescriptionA*: proc(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szDescription: LPSTR, puCopied: ptr UINT): HRESULT {.stdcall.} - GetDescriptionW*: proc(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szDescription: LPWSTR, puCopied: ptr UINT): HRESULT {.stdcall.} - GetGuideLineA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPSTR, pdwResult: ptr DWORD): HRESULT {.stdcall.} - GetGuideLineW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPWSTR, pdwResult: ptr DWORD): HRESULT {.stdcall.} - GetIMEFileNameA*: proc(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szFileName: LPSTR, puCopied: ptr UINT): HRESULT {.stdcall.} - GetIMEFileNameW*: proc(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szFileName: LPWSTR, puCopied: ptr UINT): HRESULT {.stdcall.} + EnumRegisterWordA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordA, + ): HRESULT {.stdcall.} + EnumRegisterWordW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordW, + ): HRESULT {.stdcall.} + EscapeA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + EscapeW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + GetCandidateListA*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetCandidateListW*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetCandidateListCountA*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD + ): HRESULT {.stdcall.} + GetCandidateListCountW*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD + ): HRESULT {.stdcall.} + GetCandidateWindow*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM + ): HRESULT {.stdcall.} + GetCompositionFontA*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} + GetCompositionFontW*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} + GetCompositionStringA*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, + ): HRESULT {.stdcall.} + GetCompositionStringW*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, + ): HRESULT {.stdcall.} + GetCompositionWindow*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM + ): HRESULT {.stdcall.} + GetContext*: + proc(self: ptr IActiveIMMApp, hWnd: HWND, phIMC: ptr HIMC): HRESULT {.stdcall.} + GetConversionListA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + pSrc: LPSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetConversionListW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + pSrc: LPWSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetConversionStatus*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + pfdwConversion: ptr DWORD, + pfdwSentence: ptr DWORD, + ): HRESULT {.stdcall.} + GetDefaultIMEWnd*: + proc(self: ptr IActiveIMMApp, hWnd: HWND, phDefWnd: ptr HWND): HRESULT {.stdcall.} + GetDescriptionA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szDescription: LPSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetDescriptionW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szDescription: LPWSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetGuideLineA*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPSTR, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetGuideLineW*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPWSTR, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetIMEFileNameA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szFileName: LPSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetIMEFileNameW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szFileName: LPWSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} GetOpenStatus*: proc(self: ptr IActiveIMMApp, hIMC: HIMC): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr IActiveIMMApp, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD): HRESULT {.stdcall.} - GetRegisterWordStyleA*: proc(self: ptr IActiveIMMApp, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFA, puCopied: ptr UINT): HRESULT {.stdcall.} - GetRegisterWordStyleW*: proc(self: ptr IActiveIMMApp, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puCopied: ptr UINT): HRESULT {.stdcall.} - GetStatusWindowPos*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} - GetVirtualKey*: proc(self: ptr IActiveIMMApp, hWnd: HWND, puVirtualKey: ptr UINT): HRESULT {.stdcall.} - InstallIMEA*: proc(self: ptr IActiveIMMApp, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL): HRESULT {.stdcall.} - InstallIMEW*: proc(self: ptr IActiveIMMApp, szIMEFileName: LPWSTR, szLayoutText: LPWSTR, phKL: ptr HKL): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IActiveIMMApp, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD + ): HRESULT {.stdcall.} + GetRegisterWordStyleA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFA, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetRegisterWordStyleW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFW, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetStatusWindowPos*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} + GetVirtualKey*: proc( + self: ptr IActiveIMMApp, hWnd: HWND, puVirtualKey: ptr UINT + ): HRESULT {.stdcall.} + InstallIMEA*: proc( + self: ptr IActiveIMMApp, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL + ): HRESULT {.stdcall.} + InstallIMEW*: proc( + self: ptr IActiveIMMApp, + szIMEFileName: LPWSTR, + szLayoutText: LPWSTR, + phKL: ptr HKL, + ): HRESULT {.stdcall.} IsIME*: proc(self: ptr IActiveIMMApp, hKL: HKL): HRESULT {.stdcall.} - IsUIMessageA*: proc(self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} - IsUIMessageW*: proc(self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} - NotifyIME*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): HRESULT {.stdcall.} - RegisterWordA*: proc(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR): HRESULT {.stdcall.} - RegisterWordW*: proc(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR): HRESULT {.stdcall.} - ReleaseContext*: proc(self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC): HRESULT {.stdcall.} - SetCandidateWindow*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM): HRESULT {.stdcall.} - SetCompositionFontA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} - SetCompositionFontW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} - SetCompositionStringA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.stdcall.} - SetCompositionStringW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.stdcall.} - SetCompositionWindow*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.stdcall.} - SetConversionStatus*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD): HRESULT {.stdcall.} - SetOpenStatus*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, fOpen: WINBOOL): HRESULT {.stdcall.} - SetStatusWindowPos*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} - SimulateHotKey*: proc(self: ptr IActiveIMMApp, hWnd: HWND, dwHotKeyID: DWORD): HRESULT {.stdcall.} - UnregisterWordA*: proc(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szUnregister: LPSTR): HRESULT {.stdcall.} - UnregisterWordW*: proc(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szUnregister: LPWSTR): HRESULT {.stdcall.} - Activate*: proc(self: ptr IActiveIMMApp, fRestoreLayout: WINBOOL): HRESULT {.stdcall.} + IsUIMessageA*: proc( + self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + IsUIMessageW*: proc( + self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + NotifyIME*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwAction: DWORD, + dwIndex: DWORD, + dwValue: DWORD, + ): HRESULT {.stdcall.} + RegisterWordA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, + ): HRESULT {.stdcall.} + RegisterWordW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + ): HRESULT {.stdcall.} + ReleaseContext*: + proc(self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC): HRESULT {.stdcall.} + SetCandidateWindow*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM + ): HRESULT {.stdcall.} + SetCompositionFontA*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} + SetCompositionFontW*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} + SetCompositionStringA*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, + ): HRESULT {.stdcall.} + SetCompositionStringW*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, + ): HRESULT {.stdcall.} + SetCompositionWindow*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM + ): HRESULT {.stdcall.} + SetConversionStatus*: proc( + self: ptr IActiveIMMApp, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD + ): HRESULT {.stdcall.} + SetOpenStatus*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, fOpen: WINBOOL): HRESULT {.stdcall.} + SetStatusWindowPos*: + proc(self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} + SimulateHotKey*: + proc(self: ptr IActiveIMMApp, hWnd: HWND, dwHotKeyID: DWORD): HRESULT {.stdcall.} + UnregisterWordA*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szUnregister: LPSTR, + ): HRESULT {.stdcall.} + UnregisterWordW*: proc( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szUnregister: LPWSTR, + ): HRESULT {.stdcall.} + Activate*: + proc(self: ptr IActiveIMMApp, fRestoreLayout: WINBOOL): HRESULT {.stdcall.} Deactivate*: proc(self: ptr IActiveIMMApp): HRESULT {.stdcall.} - OnDefWindowProc*: proc(self: ptr IActiveIMMApp, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} - FilterClientWindows*: proc(self: ptr IActiveIMMApp, aaClassList: ptr ATOM, uSize: UINT): HRESULT {.stdcall.} - GetCodePageA*: proc(self: ptr IActiveIMMApp, hKL: HKL, uCodePage: ptr UINT): HRESULT {.stdcall.} - GetLangId*: proc(self: ptr IActiveIMMApp, hKL: HKL, plid: ptr LANGID): HRESULT {.stdcall.} - AssociateContextEx*: proc(self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD): HRESULT {.stdcall.} + OnDefWindowProc*: proc( + self: ptr IActiveIMMApp, + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + FilterClientWindows*: proc( + self: ptr IActiveIMMApp, aaClassList: ptr ATOM, uSize: UINT + ): HRESULT {.stdcall.} + GetCodePageA*: + proc(self: ptr IActiveIMMApp, hKL: HKL, uCodePage: ptr UINT): HRESULT {.stdcall.} + GetLangId*: + proc(self: ptr IActiveIMMApp, hKL: HKL, plid: ptr LANGID): HRESULT {.stdcall.} + AssociateContextEx*: proc( + self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD + ): HRESULT {.stdcall.} DisableIME*: proc(self: ptr IActiveIMMApp, idThread: DWORD): HRESULT {.stdcall.} - GetImeMenuItemsA*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOA, pImeMenu: ptr IMEMENUITEMINFOA, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.stdcall.} - GetImeMenuItemsW*: proc(self: ptr IActiveIMMApp, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOW, pImeMenu: ptr IMEMENUITEMINFOW, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.stdcall.} - EnumInputContext*: proc(self: ptr IActiveIMMApp, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext): HRESULT {.stdcall.} + GetImeMenuItemsA*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOA, + pImeMenu: ptr IMEMENUITEMINFOA, + dwSize: DWORD, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetImeMenuItemsW*: proc( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOW, + pImeMenu: ptr IMEMENUITEMINFOW, + dwSize: DWORD, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + EnumInputContext*: proc( + self: ptr IActiveIMMApp, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext + ): HRESULT {.stdcall.} + IActiveIMMIME* {.pure.} = object lpVtbl*: ptr IActiveIMMIMEVtbl + IActiveIMMIMEVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AssociateContext*: proc(self: ptr IActiveIMMIME, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC): HRESULT {.stdcall.} - ConfigureIMEA*: proc(self: ptr IActiveIMMIME, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDA): HRESULT {.stdcall.} - ConfigureIMEW*: proc(self: ptr IActiveIMMIME, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDW): HRESULT {.stdcall.} + AssociateContext*: proc( + self: ptr IActiveIMMIME, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC + ): HRESULT {.stdcall.} + ConfigureIMEA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDA, + ): HRESULT {.stdcall.} + ConfigureIMEW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDW, + ): HRESULT {.stdcall.} CreateContext*: proc(self: ptr IActiveIMMIME, phIMC: ptr HIMC): HRESULT {.stdcall.} DestroyContext*: proc(self: ptr IActiveIMMIME, hIME: HIMC): HRESULT {.stdcall.} - EnumRegisterWordA*: proc(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordA): HRESULT {.stdcall.} - EnumRegisterWordW*: proc(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordW): HRESULT {.stdcall.} - EscapeA*: proc(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.stdcall.} - EscapeW*: proc(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.stdcall.} - GetCandidateListA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetCandidateListW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetCandidateListCountA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.stdcall.} - GetCandidateListCountW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.stdcall.} - GetCandidateWindow*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM): HRESULT {.stdcall.} - GetCompositionFontA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} - GetCompositionFontW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} - GetCompositionStringA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.stdcall.} - GetCompositionStringW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.stdcall.} - GetCompositionWindow*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.stdcall.} - GetContext*: proc(self: ptr IActiveIMMIME, hWnd: HWND, phIMC: ptr HIMC): HRESULT {.stdcall.} - GetConversionListA*: proc(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, pSrc: LPSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetConversionListW*: proc(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, pSrc: LPWSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - GetConversionStatus*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pfdwConversion: ptr DWORD, pfdwSentence: ptr DWORD): HRESULT {.stdcall.} - GetDefaultIMEWnd*: proc(self: ptr IActiveIMMIME, hWnd: HWND, phDefWnd: ptr HWND): HRESULT {.stdcall.} - GetDescriptionA*: proc(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szDescription: LPSTR, puCopied: ptr UINT): HRESULT {.stdcall.} - GetDescriptionW*: proc(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szDescription: LPWSTR, puCopied: ptr UINT): HRESULT {.stdcall.} - GetGuideLineA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPSTR, pdwResult: ptr DWORD): HRESULT {.stdcall.} - GetGuideLineW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPWSTR, pdwResult: ptr DWORD): HRESULT {.stdcall.} - GetIMEFileNameA*: proc(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szFileName: LPSTR, puCopied: ptr UINT): HRESULT {.stdcall.} - GetIMEFileNameW*: proc(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szFileName: LPWSTR, puCopied: ptr UINT): HRESULT {.stdcall.} + EnumRegisterWordA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordA, + ): HRESULT {.stdcall.} + EnumRegisterWordW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordW, + ): HRESULT {.stdcall.} + EscapeA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + EscapeW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + GetCandidateListA*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetCandidateListW*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetCandidateListCountA*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD + ): HRESULT {.stdcall.} + GetCandidateListCountW*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD + ): HRESULT {.stdcall.} + GetCandidateWindow*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM + ): HRESULT {.stdcall.} + GetCompositionFontA*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} + GetCompositionFontW*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} + GetCompositionStringA*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, + ): HRESULT {.stdcall.} + GetCompositionStringW*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, + ): HRESULT {.stdcall.} + GetCompositionWindow*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM + ): HRESULT {.stdcall.} + GetContext*: + proc(self: ptr IActiveIMMIME, hWnd: HWND, phIMC: ptr HIMC): HRESULT {.stdcall.} + GetConversionListA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + pSrc: LPSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetConversionListW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + pSrc: LPWSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetConversionStatus*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + pfdwConversion: ptr DWORD, + pfdwSentence: ptr DWORD, + ): HRESULT {.stdcall.} + GetDefaultIMEWnd*: + proc(self: ptr IActiveIMMIME, hWnd: HWND, phDefWnd: ptr HWND): HRESULT {.stdcall.} + GetDescriptionA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szDescription: LPSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetDescriptionW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szDescription: LPWSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetGuideLineA*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPSTR, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetGuideLineW*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPWSTR, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetIMEFileNameA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szFileName: LPSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetIMEFileNameW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szFileName: LPWSTR, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} GetOpenStatus*: proc(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr IActiveIMMIME, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD): HRESULT {.stdcall.} - GetRegisterWordStyleA*: proc(self: ptr IActiveIMMIME, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFA, puCopied: ptr UINT): HRESULT {.stdcall.} - GetRegisterWordStyleW*: proc(self: ptr IActiveIMMIME, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puCopied: ptr UINT): HRESULT {.stdcall.} - GetStatusWindowPos*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} - GetVirtualKey*: proc(self: ptr IActiveIMMIME, hWnd: HWND, puVirtualKey: ptr UINT): HRESULT {.stdcall.} - InstallIMEA*: proc(self: ptr IActiveIMMIME, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL): HRESULT {.stdcall.} - InstallIMEW*: proc(self: ptr IActiveIMMIME, szIMEFileName: LPWSTR, szLayoutText: LPWSTR, phKL: ptr HKL): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IActiveIMMIME, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD + ): HRESULT {.stdcall.} + GetRegisterWordStyleA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFA, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetRegisterWordStyleW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFW, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + GetStatusWindowPos*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} + GetVirtualKey*: proc( + self: ptr IActiveIMMIME, hWnd: HWND, puVirtualKey: ptr UINT + ): HRESULT {.stdcall.} + InstallIMEA*: proc( + self: ptr IActiveIMMIME, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL + ): HRESULT {.stdcall.} + InstallIMEW*: proc( + self: ptr IActiveIMMIME, + szIMEFileName: LPWSTR, + szLayoutText: LPWSTR, + phKL: ptr HKL, + ): HRESULT {.stdcall.} IsIME*: proc(self: ptr IActiveIMMIME, hKL: HKL): HRESULT {.stdcall.} - IsUIMessageA*: proc(self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} - IsUIMessageW*: proc(self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} - NotifyIME*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): HRESULT {.stdcall.} - RegisterWordA*: proc(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR): HRESULT {.stdcall.} - RegisterWordW*: proc(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR): HRESULT {.stdcall.} - ReleaseContext*: proc(self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC): HRESULT {.stdcall.} - SetCandidateWindow*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM): HRESULT {.stdcall.} - SetCompositionFontA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} - SetCompositionFontW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} - SetCompositionStringA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.stdcall.} - SetCompositionStringW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.stdcall.} - SetCompositionWindow*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.stdcall.} - SetConversionStatus*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD): HRESULT {.stdcall.} - SetOpenStatus*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, fOpen: WINBOOL): HRESULT {.stdcall.} - SetStatusWindowPos*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} - SimulateHotKey*: proc(self: ptr IActiveIMMIME, hWnd: HWND, dwHotKeyID: DWORD): HRESULT {.stdcall.} - UnregisterWordA*: proc(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szUnregister: LPSTR): HRESULT {.stdcall.} - UnregisterWordW*: proc(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szUnregister: LPWSTR): HRESULT {.stdcall.} + IsUIMessageA*: proc( + self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + IsUIMessageW*: proc( + self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + NotifyIME*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwAction: DWORD, + dwIndex: DWORD, + dwValue: DWORD, + ): HRESULT {.stdcall.} + RegisterWordA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, + ): HRESULT {.stdcall.} + RegisterWordW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + ): HRESULT {.stdcall.} + ReleaseContext*: + proc(self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC): HRESULT {.stdcall.} + SetCandidateWindow*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM + ): HRESULT {.stdcall.} + SetCompositionFontA*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.stdcall.} + SetCompositionFontW*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.stdcall.} + SetCompositionStringA*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, + ): HRESULT {.stdcall.} + SetCompositionStringW*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, + ): HRESULT {.stdcall.} + SetCompositionWindow*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM + ): HRESULT {.stdcall.} + SetConversionStatus*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD + ): HRESULT {.stdcall.} + SetOpenStatus*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, fOpen: WINBOOL): HRESULT {.stdcall.} + SetStatusWindowPos*: + proc(self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.stdcall.} + SimulateHotKey*: + proc(self: ptr IActiveIMMIME, hWnd: HWND, dwHotKeyID: DWORD): HRESULT {.stdcall.} + UnregisterWordA*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szUnregister: LPSTR, + ): HRESULT {.stdcall.} + UnregisterWordW*: proc( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szUnregister: LPWSTR, + ): HRESULT {.stdcall.} GenerateMessage*: proc(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.stdcall.} - LockIMC*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, ppIMC: ptr ptr INPUTCONTEXT): HRESULT {.stdcall.} + LockIMC*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, ppIMC: ptr ptr INPUTCONTEXT + ): HRESULT {.stdcall.} UnlockIMC*: proc(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.stdcall.} - GetIMCLockCount*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, pdwLockCount: ptr DWORD): HRESULT {.stdcall.} - CreateIMCC*: proc(self: ptr IActiveIMMIME, dwSize: DWORD, phIMCC: ptr HIMCC): HRESULT {.stdcall.} + GetIMCLockCount*: proc( + self: ptr IActiveIMMIME, hIMC: HIMC, pdwLockCount: ptr DWORD + ): HRESULT {.stdcall.} + CreateIMCC*: proc( + self: ptr IActiveIMMIME, dwSize: DWORD, phIMCC: ptr HIMCC + ): HRESULT {.stdcall.} DestroyIMCC*: proc(self: ptr IActiveIMMIME, hIMCC: HIMCC): HRESULT {.stdcall.} - LockIMCC*: proc(self: ptr IActiveIMMIME, hIMCC: HIMCC, ppv: ptr pointer): HRESULT {.stdcall.} + LockIMCC*: + proc(self: ptr IActiveIMMIME, hIMCC: HIMCC, ppv: ptr pointer): HRESULT {.stdcall.} UnlockIMCC*: proc(self: ptr IActiveIMMIME, hIMCC: HIMCC): HRESULT {.stdcall.} - ReSizeIMCC*: proc(self: ptr IActiveIMMIME, hIMCC: HIMCC, dwSize: DWORD, phIMCC: ptr HIMCC): HRESULT {.stdcall.} - GetIMCCSize*: proc(self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwSize: ptr DWORD): HRESULT {.stdcall.} - GetIMCCLockCount*: proc(self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwLockCount: ptr DWORD): HRESULT {.stdcall.} - GetHotKey*: proc(self: ptr IActiveIMMIME, dwHotKeyID: DWORD, puModifiers: ptr UINT, puVKey: ptr UINT, phKL: ptr HKL): HRESULT {.stdcall.} - SetHotKey*: proc(self: ptr IActiveIMMIME, dwHotKeyID: DWORD, uModifiers: UINT, uVKey: UINT, hKL: HKL): HRESULT {.stdcall.} - CreateSoftKeyboard*: proc(self: ptr IActiveIMMIME, uType: UINT, hOwner: HWND, x: int32, y: int32, phSoftKbdWnd: ptr HWND): HRESULT {.stdcall.} - DestroySoftKeyboard*: proc(self: ptr IActiveIMMIME, hSoftKbdWnd: HWND): HRESULT {.stdcall.} - ShowSoftKeyboard*: proc(self: ptr IActiveIMMIME, hSoftKbdWnd: HWND, nCmdShow: int32): HRESULT {.stdcall.} - GetCodePageA*: proc(self: ptr IActiveIMMIME, hKL: HKL, uCodePage: ptr UINT): HRESULT {.stdcall.} - GetLangId*: proc(self: ptr IActiveIMMIME, hKL: HKL, plid: ptr LANGID): HRESULT {.stdcall.} - KeybdEvent*: proc(self: ptr IActiveIMMIME, lgidIME: LANGID, bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: DWORD): HRESULT {.stdcall.} + ReSizeIMCC*: proc( + self: ptr IActiveIMMIME, hIMCC: HIMCC, dwSize: DWORD, phIMCC: ptr HIMCC + ): HRESULT {.stdcall.} + GetIMCCSize*: proc( + self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwSize: ptr DWORD + ): HRESULT {.stdcall.} + GetIMCCLockCount*: proc( + self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwLockCount: ptr DWORD + ): HRESULT {.stdcall.} + GetHotKey*: proc( + self: ptr IActiveIMMIME, + dwHotKeyID: DWORD, + puModifiers: ptr UINT, + puVKey: ptr UINT, + phKL: ptr HKL, + ): HRESULT {.stdcall.} + SetHotKey*: proc( + self: ptr IActiveIMMIME, + dwHotKeyID: DWORD, + uModifiers: UINT, + uVKey: UINT, + hKL: HKL, + ): HRESULT {.stdcall.} + CreateSoftKeyboard*: proc( + self: ptr IActiveIMMIME, + uType: UINT, + hOwner: HWND, + x: int32, + y: int32, + phSoftKbdWnd: ptr HWND, + ): HRESULT {.stdcall.} + DestroySoftKeyboard*: + proc(self: ptr IActiveIMMIME, hSoftKbdWnd: HWND): HRESULT {.stdcall.} + ShowSoftKeyboard*: proc( + self: ptr IActiveIMMIME, hSoftKbdWnd: HWND, nCmdShow: int32 + ): HRESULT {.stdcall.} + GetCodePageA*: + proc(self: ptr IActiveIMMIME, hKL: HKL, uCodePage: ptr UINT): HRESULT {.stdcall.} + GetLangId*: + proc(self: ptr IActiveIMMIME, hKL: HKL, plid: ptr LANGID): HRESULT {.stdcall.} + KeybdEvent*: proc( + self: ptr IActiveIMMIME, + lgidIME: LANGID, + bVk: BYTE, + bScan: BYTE, + dwFlags: DWORD, + dwExtraInfo: DWORD, + ): HRESULT {.stdcall.} LockModal*: proc(self: ptr IActiveIMMIME): HRESULT {.stdcall.} UnlockModal*: proc(self: ptr IActiveIMMIME): HRESULT {.stdcall.} - AssociateContextEx*: proc(self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD): HRESULT {.stdcall.} + AssociateContextEx*: proc( + self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD + ): HRESULT {.stdcall.} DisableIME*: proc(self: ptr IActiveIMMIME, idThread: DWORD): HRESULT {.stdcall.} - GetImeMenuItemsA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOA, pImeMenu: ptr IMEMENUITEMINFOA, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.stdcall.} - GetImeMenuItemsW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOW, pImeMenu: ptr IMEMENUITEMINFOW, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.stdcall.} - EnumInputContext*: proc(self: ptr IActiveIMMIME, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext): HRESULT {.stdcall.} - RequestMessageA*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} - RequestMessageW*: proc(self: ptr IActiveIMMIME, hIMC: HIMC, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} - SendIMCA*: proc(self: ptr IActiveIMMIME, hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} - SendIMCW*: proc(self: ptr IActiveIMMIME, hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} + GetImeMenuItemsA*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOA, + pImeMenu: ptr IMEMENUITEMINFOA, + dwSize: DWORD, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetImeMenuItemsW*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOW, + pImeMenu: ptr IMEMENUITEMINFOW, + dwSize: DWORD, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + EnumInputContext*: proc( + self: ptr IActiveIMMIME, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext + ): HRESULT {.stdcall.} + RequestMessageA*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + RequestMessageW*: proc( + self: ptr IActiveIMMIME, + hIMC: HIMC, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + SendIMCA*: proc( + self: ptr IActiveIMMIME, + hWnd: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + SendIMCW*: proc( + self: ptr IActiveIMMIME, + hWnd: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} IsSleeping*: proc(self: ptr IActiveIMMIME): HRESULT {.stdcall.} + IActiveIME* {.pure.} = object lpVtbl*: ptr IActiveIMEVtbl + IActiveIMEVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Inquire*: proc(self: ptr IActiveIME, dwSystemInfoFlags: DWORD, pIMEInfo: ptr IMEINFO, szWndClass: LPWSTR, pdwPrivate: ptr DWORD): HRESULT {.stdcall.} - ConversionList*: proc(self: ptr IActiveIME, hIMC: HIMC, szSource: LPWSTR, uFlag: UINT, uBufLen: UINT, pDest: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.stdcall.} - Configure*: proc(self: ptr IActiveIME, hKL: HKL, hWnd: HWND, dwMode: DWORD, pRegisterWord: ptr REGISTERWORDW): HRESULT {.stdcall.} + Inquire*: proc( + self: ptr IActiveIME, + dwSystemInfoFlags: DWORD, + pIMEInfo: ptr IMEINFO, + szWndClass: LPWSTR, + pdwPrivate: ptr DWORD, + ): HRESULT {.stdcall.} + ConversionList*: proc( + self: ptr IActiveIME, + hIMC: HIMC, + szSource: LPWSTR, + uFlag: UINT, + uBufLen: UINT, + pDest: ptr CANDIDATELIST, + puCopied: ptr UINT, + ): HRESULT {.stdcall.} + Configure*: proc( + self: ptr IActiveIME, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pRegisterWord: ptr REGISTERWORDW, + ): HRESULT {.stdcall.} Destroy*: proc(self: ptr IActiveIME, uReserved: UINT): HRESULT {.stdcall.} - Escape*: proc(self: ptr IActiveIME, hIMC: HIMC, uEscape: UINT, pData: pointer, plResult: ptr LRESULT): HRESULT {.stdcall.} - SetActiveContext*: proc(self: ptr IActiveIME, hIMC: HIMC, fFlag: WINBOOL): HRESULT {.stdcall.} - ProcessKey*: proc(self: ptr IActiveIME, hIMC: HIMC, uVirKey: UINT, lParam: DWORD, pbKeyState: ptr BYTE): HRESULT {.stdcall.} - Notify*: proc(self: ptr IActiveIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): HRESULT {.stdcall.} - Select*: proc(self: ptr IActiveIME, hIMC: HIMC, fSelect: WINBOOL): HRESULT {.stdcall.} - SetCompositionString*: proc(self: ptr IActiveIME, hIMC: HIMC, dwIndex: DWORD, pComp: pointer, dwCompLen: DWORD, pRead: pointer, dwReadLen: DWORD): HRESULT {.stdcall.} - ToAsciiEx*: proc(self: ptr IActiveIME, uVirKey: UINT, uScanCode: UINT, pbKeyState: ptr BYTE, fuState: UINT, hIMC: HIMC, pdwTransBuf: ptr DWORD, puSize: ptr UINT): HRESULT {.stdcall.} - RegisterWord*: proc(self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR): HRESULT {.stdcall.} - UnregisterWord*: proc(self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR): HRESULT {.stdcall.} - GetRegisterWordStyle*: proc(self: ptr IActiveIME, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puBufSize: ptr UINT): HRESULT {.stdcall.} - EnumRegisterWord*: proc(self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR, pData: LPVOID, ppEnum: ptr ptr IEnumRegisterWordW): HRESULT {.stdcall.} + Escape*: proc( + self: ptr IActiveIME, + hIMC: HIMC, + uEscape: UINT, + pData: pointer, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + SetActiveContext*: + proc(self: ptr IActiveIME, hIMC: HIMC, fFlag: WINBOOL): HRESULT {.stdcall.} + ProcessKey*: proc( + self: ptr IActiveIME, + hIMC: HIMC, + uVirKey: UINT, + lParam: DWORD, + pbKeyState: ptr BYTE, + ): HRESULT {.stdcall.} + Notify*: proc( + self: ptr IActiveIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD + ): HRESULT {.stdcall.} + Select*: + proc(self: ptr IActiveIME, hIMC: HIMC, fSelect: WINBOOL): HRESULT {.stdcall.} + SetCompositionString*: proc( + self: ptr IActiveIME, + hIMC: HIMC, + dwIndex: DWORD, + pComp: pointer, + dwCompLen: DWORD, + pRead: pointer, + dwReadLen: DWORD, + ): HRESULT {.stdcall.} + ToAsciiEx*: proc( + self: ptr IActiveIME, + uVirKey: UINT, + uScanCode: UINT, + pbKeyState: ptr BYTE, + fuState: UINT, + hIMC: HIMC, + pdwTransBuf: ptr DWORD, + puSize: ptr UINT, + ): HRESULT {.stdcall.} + RegisterWord*: proc( + self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR + ): HRESULT {.stdcall.} + UnregisterWord*: proc( + self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR + ): HRESULT {.stdcall.} + GetRegisterWordStyle*: proc( + self: ptr IActiveIME, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puBufSize: ptr UINT + ): HRESULT {.stdcall.} + EnumRegisterWord*: proc( + self: ptr IActiveIME, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + pData: LPVOID, + ppEnum: ptr ptr IEnumRegisterWordW, + ): HRESULT {.stdcall.} GetCodePageA*: proc(self: ptr IActiveIME, uCodePage: ptr UINT): HRESULT {.stdcall.} GetLangId*: proc(self: ptr IActiveIME, plid: ptr LANGID): HRESULT {.stdcall.} + IActiveIME2* {.pure.} = object lpVtbl*: ptr IActiveIME2Vtbl + IActiveIME2Vtbl* {.pure, inheritable.} = object of IActiveIMEVtbl Sleep*: proc(self: ptr IActiveIME2): HRESULT {.stdcall.} Unsleep*: proc(self: ptr IActiveIME2, fDead: WINBOOL): HRESULT {.stdcall.} -proc ImmInstallIMEA*(lpszIMEFileName: LPCSTR, lpszLayoutText: LPCSTR): HKL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmInstallIMEW*(lpszIMEFileName: LPCWSTR, lpszLayoutText: LPCWSTR): HKL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmInstallIMEA*( + lpszIMEFileName: LPCSTR, lpszLayoutText: LPCSTR +): HKL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmInstallIMEW*( + lpszIMEFileName: LPCWSTR, lpszLayoutText: LPCWSTR +): HKL {.winapi, stdcall, dynlib: "imm32", importc.} + proc ImmGetDefaultIMEWnd*(P1: HWND): HWND {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetDescriptionA*(P1: HKL, P2: LPSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetDescriptionW*(P1: HKL, P2: LPWSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetIMEFileNameA*(P1: HKL, P2: LPSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetIMEFileNameW*(P1: HKL, P2: LPWSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetProperty*(P1: HKL, P2: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} +proc ImmGetDescriptionA*( + P1: HKL, P2: LPSTR, uBufLen: UINT +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetDescriptionW*( + P1: HKL, P2: LPWSTR, uBufLen: UINT +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetIMEFileNameA*( + P1: HKL, P2: LPSTR, uBufLen: UINT +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetIMEFileNameW*( + P1: HKL, P2: LPWSTR, uBufLen: UINT +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetProperty*( + P1: HKL, P2: DWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + proc ImmIsIME*(P1: HKL): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSimulateHotKey*(P1: HWND, P2: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} +proc ImmSimulateHotKey*( + P1: HWND, P2: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + proc ImmCreateContext*(): HIMC {.winapi, stdcall, dynlib: "imm32", importc.} proc ImmDestroyContext*(P1: HIMC): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} proc ImmGetContext*(P1: HWND): HIMC {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmReleaseContext*(P1: HWND, P2: HIMC): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmAssociateContext*(P1: HWND, P2: HIMC): HIMC {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmAssociateContextEx*(P1: HWND, P2: HIMC, P3: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCompositionStringA*(P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD): LONG {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCompositionStringW*(P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD): LONG {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetCompositionStringA*(P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetCompositionStringW*(P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCandidateListCountA*(P1: HIMC, lpdwListCount: LPDWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCandidateListCountW*(P1: HIMC, lpdwListCount: LPDWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCandidateListA*(P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCandidateListW*(P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetGuideLineA*(P1: HIMC, dwIndex: DWORD, P3: LPSTR, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetGuideLineW*(P1: HIMC, dwIndex: DWORD, P3: LPWSTR, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetConversionStatus*(P1: HIMC, P2: LPDWORD, P3: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetConversionStatus*(P1: HIMC, P2: DWORD, P3: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} +proc ImmReleaseContext*( + P1: HWND, P2: HIMC +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmAssociateContext*( + P1: HWND, P2: HIMC +): HIMC {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmAssociateContextEx*( + P1: HWND, P2: HIMC, P3: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCompositionStringA*( + P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD +): LONG {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCompositionStringW*( + P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD +): LONG {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetCompositionStringA*( + P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetCompositionStringW*( + P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCandidateListCountA*( + P1: HIMC, lpdwListCount: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCandidateListCountW*( + P1: HIMC, lpdwListCount: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCandidateListA*( + P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCandidateListW*( + P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetGuideLineA*( + P1: HIMC, dwIndex: DWORD, P3: LPSTR, dwBufLen: DWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetGuideLineW*( + P1: HIMC, dwIndex: DWORD, P3: LPWSTR, dwBufLen: DWORD +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetConversionStatus*( + P1: HIMC, P2: LPDWORD, P3: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetConversionStatus*( + P1: HIMC, P2: DWORD, P3: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + proc ImmGetOpenStatus*(P1: HIMC): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetOpenStatus*(P1: HIMC, P2: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCompositionFontA*(P1: HIMC, P2: LPLOGFONTA): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCompositionFontW*(P1: HIMC, P2: LPLOGFONTW): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetCompositionFontA*(P1: HIMC, P2: LPLOGFONTA): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetCompositionFontW*(P1: HIMC, P2: LPLOGFONTW): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmConfigureIMEA*(P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmConfigureIMEW*(P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmEscapeA*(P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID): LRESULT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmEscapeW*(P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID): LRESULT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetConversionListA*(P1: HKL, P2: HIMC, P3: LPCSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetConversionListW*(P1: HKL, P2: HIMC, P3: LPCWSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmNotifyIME*(P1: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetStatusWindowPos*(P1: HIMC, P2: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetStatusWindowPos*(P1: HIMC, P2: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCompositionWindow*(P1: HIMC, P2: LPCOMPOSITIONFORM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetCompositionWindow*(P1: HIMC, P2: LPCOMPOSITIONFORM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetCandidateWindow*(P1: HIMC, P2: DWORD, P3: LPCANDIDATEFORM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmSetCandidateWindow*(P1: HIMC, P2: LPCANDIDATEFORM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmIsUIMessageA*(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmIsUIMessageW*(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} +proc ImmSetOpenStatus*( + P1: HIMC, P2: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCompositionFontA*( + P1: HIMC, P2: LPLOGFONTA +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCompositionFontW*( + P1: HIMC, P2: LPLOGFONTW +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetCompositionFontA*( + P1: HIMC, P2: LPLOGFONTA +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetCompositionFontW*( + P1: HIMC, P2: LPLOGFONTW +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmConfigureIMEA*( + P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmConfigureIMEW*( + P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmEscapeA*( + P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID +): LRESULT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmEscapeW*( + P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID +): LRESULT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetConversionListA*( + P1: HKL, P2: HIMC, P3: LPCSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetConversionListW*( + P1: HKL, P2: HIMC, P3: LPCWSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmNotifyIME*( + P1: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetStatusWindowPos*( + P1: HIMC, P2: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetStatusWindowPos*( + P1: HIMC, P2: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCompositionWindow*( + P1: HIMC, P2: LPCOMPOSITIONFORM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetCompositionWindow*( + P1: HIMC, P2: LPCOMPOSITIONFORM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetCandidateWindow*( + P1: HIMC, P2: DWORD, P3: LPCANDIDATEFORM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmSetCandidateWindow*( + P1: HIMC, P2: LPCANDIDATEFORM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmIsUIMessageA*( + P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmIsUIMessageW*( + P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + proc ImmGetVirtualKey*(P1: HWND): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmRegisterWordA*(P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszRegister: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmRegisterWordW*(P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszRegister: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmUnregisterWordA*(P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszUnregister: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmUnregisterWordW*(P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszUnregister: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetRegisterWordStyleA*(P1: HKL, nItem: UINT, P3: LPSTYLEBUFA): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetRegisterWordStyleW*(P1: HKL, nItem: UINT, P3: LPSTYLEBUFW): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmEnumRegisterWordA*(P1: HKL, P2: REGISTERWORDENUMPROCA, lpszReading: LPCSTR, P4: DWORD, lpszRegister: LPCSTR, P6: LPVOID): UINT {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmEnumRegisterWordW*(P1: HKL, P2: REGISTERWORDENUMPROCW, lpszReading: LPCWSTR, P4: DWORD, lpszRegister: LPCWSTR, P6: LPVOID): UINT {.winapi, stdcall, dynlib: "imm32", importc.} +proc ImmRegisterWordA*( + P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszRegister: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmRegisterWordW*( + P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszRegister: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmUnregisterWordA*( + P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszUnregister: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmUnregisterWordW*( + P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszUnregister: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetRegisterWordStyleA*( + P1: HKL, nItem: UINT, P3: LPSTYLEBUFA +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetRegisterWordStyleW*( + P1: HKL, nItem: UINT, P3: LPSTYLEBUFW +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmEnumRegisterWordA*( + P1: HKL, + P2: REGISTERWORDENUMPROCA, + lpszReading: LPCSTR, + P4: DWORD, + lpszRegister: LPCSTR, + P6: LPVOID, +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmEnumRegisterWordW*( + P1: HKL, + P2: REGISTERWORDENUMPROCW, + lpszReading: LPCWSTR, + P4: DWORD, + lpszRegister: LPCWSTR, + P6: LPVOID, +): UINT {.winapi, stdcall, dynlib: "imm32", importc.} + proc ImmDisableIME*(P1: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmEnumInputContext*(idThread: DWORD, lpfn: IMCENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetImeMenuItemsA*(P1: HIMC, P2: DWORD, P3: DWORD, P4: LPIMEMENUITEMINFOA, P5: LPIMEMENUITEMINFOA, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmGetImeMenuItemsW*(P1: HIMC, P2: DWORD, P3: DWORD, P4: LPIMEMENUITEMINFOW, P5: LPIMEMENUITEMINFOW, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} -proc ImmDisableTextFrameService*(idThread: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} -proc Clone*(self: ptr IEnumInputContext, ppEnum: ptr ptr IEnumInputContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc Next*(self: ptr IEnumInputContext, ulCount: ULONG, rgInputContext: ptr HIMC, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, ulCount, rgInputContext, pcFetched) -proc Reset*(self: ptr IEnumInputContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Skip*(self: ptr IEnumInputContext, ulCount: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, ulCount) -proc RegisterIME*(self: ptr IActiveIMMRegistrar, rclsid: REFCLSID, lgid: LANGID, pszIconFile: LPCWSTR, pszDesc: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterIME(self, rclsid, lgid, pszIconFile, pszDesc) -proc UnregisterIME*(self: ptr IActiveIMMRegistrar, rclsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterIME(self, rclsid) -proc Start*(self: ptr IActiveIMMMessagePumpOwner): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Start(self) -proc End*(self: ptr IActiveIMMMessagePumpOwner): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.End(self) -proc OnTranslateMessage*(self: ptr IActiveIMMMessagePumpOwner, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnTranslateMessage(self, pMsg) -proc Pause*(self: ptr IActiveIMMMessagePumpOwner, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Pause(self, pdwCookie) -proc Resume*(self: ptr IActiveIMMMessagePumpOwner, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resume(self, dwCookie) -proc AssociateContext*(self: ptr IActiveIMMApp, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AssociateContext(self, hWnd, hIME, phPrev) -proc ConfigureIMEA*(self: ptr IActiveIMMApp, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConfigureIMEA(self, hKL, hWnd, dwMode, pData) -proc ConfigureIMEW*(self: ptr IActiveIMMApp, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConfigureIMEW(self, hKL, hWnd, dwMode, pData) -proc CreateContext*(self: ptr IActiveIMMApp, phIMC: ptr HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateContext(self, phIMC) -proc DestroyContext*(self: ptr IActiveIMMApp, hIME: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyContext(self, hIME) -proc EnumRegisterWordA*(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRegisterWordA(self, hKL, szReading, dwStyle, szRegister, pData, pEnum) -proc EnumRegisterWordW*(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRegisterWordW(self, hKL, szReading, dwStyle, szRegister, pData, pEnum) -proc EscapeA*(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EscapeA(self, hKL, hIMC, uEscape, pData, plResult) -proc EscapeW*(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EscapeW(self, hKL, hIMC, uEscape, pData, plResult) -proc GetCandidateListA*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListA(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) -proc GetCandidateListW*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListW(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) -proc GetCandidateListCountA*(self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListCountA(self, hIMC, pdwListSize, pdwBufLen) -proc GetCandidateListCountW*(self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListCountW(self, hIMC, pdwListSize, pdwBufLen) -proc GetCandidateWindow*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateWindow(self, hIMC, dwIndex, pCandidate) -proc GetCompositionFontA*(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionFontA(self, hIMC, plf) -proc GetCompositionFontW*(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionFontW(self, hIMC, plf) -proc GetCompositionStringA*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionStringA(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) -proc GetCompositionStringW*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionStringW(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) -proc GetCompositionWindow*(self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionWindow(self, hIMC, pCompForm) -proc GetContext*(self: ptr IActiveIMMApp, hWnd: HWND, phIMC: ptr HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContext(self, hWnd, phIMC) -proc GetConversionListA*(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, pSrc: LPSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionListA(self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied) -proc GetConversionListW*(self: ptr IActiveIMMApp, hKL: HKL, hIMC: HIMC, pSrc: LPWSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionListW(self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied) -proc GetConversionStatus*(self: ptr IActiveIMMApp, hIMC: HIMC, pfdwConversion: ptr DWORD, pfdwSentence: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionStatus(self, hIMC, pfdwConversion, pfdwSentence) -proc GetDefaultIMEWnd*(self: ptr IActiveIMMApp, hWnd: HWND, phDefWnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultIMEWnd(self, hWnd, phDefWnd) -proc GetDescriptionA*(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szDescription: LPSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescriptionA(self, hKL, uBufLen, szDescription, puCopied) -proc GetDescriptionW*(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szDescription: LPWSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescriptionW(self, hKL, uBufLen, szDescription, puCopied) -proc GetGuideLineA*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPSTR, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGuideLineA(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) -proc GetGuideLineW*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPWSTR, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGuideLineW(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) -proc GetIMEFileNameA*(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szFileName: LPSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMEFileNameA(self, hKL, uBufLen, szFileName, puCopied) -proc GetIMEFileNameW*(self: ptr IActiveIMMApp, hKL: HKL, uBufLen: UINT, szFileName: LPWSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMEFileNameW(self, hKL, uBufLen, szFileName, puCopied) -proc GetOpenStatus*(self: ptr IActiveIMMApp, hIMC: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOpenStatus(self, hIMC) -proc GetProperty*(self: ptr IActiveIMMApp, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, hKL, fdwIndex, pdwProperty) -proc GetRegisterWordStyleA*(self: ptr IActiveIMMApp, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFA, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRegisterWordStyleA(self, hKL, nItem, pStyleBuf, puCopied) -proc GetRegisterWordStyleW*(self: ptr IActiveIMMApp, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRegisterWordStyleW(self, hKL, nItem, pStyleBuf, puCopied) -proc GetStatusWindowPos*(self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStatusWindowPos(self, hIMC, pptPos) -proc GetVirtualKey*(self: ptr IActiveIMMApp, hWnd: HWND, puVirtualKey: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVirtualKey(self, hWnd, puVirtualKey) -proc InstallIMEA*(self: ptr IActiveIMMApp, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InstallIMEA(self, szIMEFileName, szLayoutText, phKL) -proc InstallIMEW*(self: ptr IActiveIMMApp, szIMEFileName: LPWSTR, szLayoutText: LPWSTR, phKL: ptr HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InstallIMEW(self, szIMEFileName, szLayoutText, phKL) -proc IsIME*(self: ptr IActiveIMMApp, hKL: HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsIME(self, hKL) -proc IsUIMessageA*(self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsUIMessageA(self, hWndIME, msg, wParam, lParam) -proc IsUIMessageW*(self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsUIMessageW(self, hWndIME, msg, wParam, lParam) -proc NotifyIME*(self: ptr IActiveIMMApp, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NotifyIME(self, hIMC, dwAction, dwIndex, dwValue) -proc mRegisterWordA*(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterWordA(self, hKL, szReading, dwStyle, szRegister) -proc mRegisterWordW*(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterWordW(self, hKL, szReading, dwStyle, szRegister) -proc ReleaseContext*(self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseContext(self, hWnd, hIMC) -proc SetCandidateWindow*(self: ptr IActiveIMMApp, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCandidateWindow(self, hIMC, pCandidate) -proc SetCompositionFontA*(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionFontA(self, hIMC, plf) -proc SetCompositionFontW*(self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionFontW(self, hIMC, plf) -proc SetCompositionStringA*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionStringA(self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen) -proc SetCompositionStringW*(self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionStringW(self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen) -proc SetCompositionWindow*(self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionWindow(self, hIMC, pCompForm) -proc SetConversionStatus*(self: ptr IActiveIMMApp, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetConversionStatus(self, hIMC, fdwConversion, fdwSentence) -proc SetOpenStatus*(self: ptr IActiveIMMApp, hIMC: HIMC, fOpen: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOpenStatus(self, hIMC, fOpen) -proc SetStatusWindowPos*(self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStatusWindowPos(self, hIMC, pptPos) -proc SimulateHotKey*(self: ptr IActiveIMMApp, hWnd: HWND, dwHotKeyID: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SimulateHotKey(self, hWnd, dwHotKeyID) -proc UnregisterWordA*(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szUnregister: LPSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterWordA(self, hKL, szReading, dwStyle, szUnregister) -proc UnregisterWordW*(self: ptr IActiveIMMApp, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szUnregister: LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterWordW(self, hKL, szReading, dwStyle, szUnregister) -proc Activate*(self: ptr IActiveIMMApp, fRestoreLayout: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Activate(self, fRestoreLayout) -proc Deactivate*(self: ptr IActiveIMMApp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Deactivate(self) -proc OnDefWindowProc*(self: ptr IActiveIMMApp, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDefWindowProc(self, hWnd, Msg, wParam, lParam, plResult) -proc FilterClientWindows*(self: ptr IActiveIMMApp, aaClassList: ptr ATOM, uSize: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FilterClientWindows(self, aaClassList, uSize) -proc GetCodePageA*(self: ptr IActiveIMMApp, hKL: HKL, uCodePage: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCodePageA(self, hKL, uCodePage) -proc GetLangId*(self: ptr IActiveIMMApp, hKL: HKL, plid: ptr LANGID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLangId(self, hKL, plid) -proc AssociateContextEx*(self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AssociateContextEx(self, hWnd, hIMC, dwFlags) -proc DisableIME*(self: ptr IActiveIMMApp, idThread: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DisableIME(self, idThread) -proc GetImeMenuItemsA*(self: ptr IActiveIMMApp, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOA, pImeMenu: ptr IMEMENUITEMINFOA, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImeMenuItemsA(self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult) -proc GetImeMenuItemsW*(self: ptr IActiveIMMApp, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOW, pImeMenu: ptr IMEMENUITEMINFOW, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImeMenuItemsW(self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult) -proc EnumInputContext*(self: ptr IActiveIMMApp, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumInputContext(self, idThread, ppEnum) -proc AssociateContext*(self: ptr IActiveIMMIME, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AssociateContext(self, hWnd, hIME, phPrev) -proc ConfigureIMEA*(self: ptr IActiveIMMIME, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConfigureIMEA(self, hKL, hWnd, dwMode, pData) -proc ConfigureIMEW*(self: ptr IActiveIMMIME, hKL: HKL, hWnd: HWND, dwMode: DWORD, pData: ptr REGISTERWORDW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConfigureIMEW(self, hKL, hWnd, dwMode, pData) -proc CreateContext*(self: ptr IActiveIMMIME, phIMC: ptr HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateContext(self, phIMC) -proc DestroyContext*(self: ptr IActiveIMMIME, hIME: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyContext(self, hIME) -proc EnumRegisterWordA*(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRegisterWordA(self, hKL, szReading, dwStyle, szRegister, pData, pEnum) -proc EnumRegisterWordW*(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR, pData: LPVOID, pEnum: ptr ptr IEnumRegisterWordW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRegisterWordW(self, hKL, szReading, dwStyle, szRegister, pData, pEnum) -proc EscapeA*(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EscapeA(self, hKL, hIMC, uEscape, pData, plResult) -proc EscapeW*(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, uEscape: UINT, pData: LPVOID, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EscapeW(self, hKL, hIMC, uEscape, pData, plResult) -proc GetCandidateListA*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListA(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) -proc GetCandidateListW*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, uBufLen: UINT, pCandList: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListW(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) -proc GetCandidateListCountA*(self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListCountA(self, hIMC, pdwListSize, pdwBufLen) -proc GetCandidateListCountW*(self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateListCountW(self, hIMC, pdwListSize, pdwBufLen) -proc GetCandidateWindow*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCandidateWindow(self, hIMC, dwIndex, pCandidate) -proc GetCompositionFontA*(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionFontA(self, hIMC, plf) -proc GetCompositionFontW*(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionFontW(self, hIMC, plf) -proc GetCompositionStringA*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionStringA(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) -proc GetCompositionStringW*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, plCopied: ptr LONG, pBuf: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionStringW(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) -proc GetCompositionWindow*(self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionWindow(self, hIMC, pCompForm) -proc GetContext*(self: ptr IActiveIMMIME, hWnd: HWND, phIMC: ptr HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContext(self, hWnd, phIMC) -proc GetConversionListA*(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, pSrc: LPSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionListA(self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied) -proc GetConversionListW*(self: ptr IActiveIMMIME, hKL: HKL, hIMC: HIMC, pSrc: LPWSTR, uBufLen: UINT, uFlag: UINT, pDst: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionListW(self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied) -proc GetConversionStatus*(self: ptr IActiveIMMIME, hIMC: HIMC, pfdwConversion: ptr DWORD, pfdwSentence: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionStatus(self, hIMC, pfdwConversion, pfdwSentence) -proc GetDefaultIMEWnd*(self: ptr IActiveIMMIME, hWnd: HWND, phDefWnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultIMEWnd(self, hWnd, phDefWnd) -proc GetDescriptionA*(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szDescription: LPSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescriptionA(self, hKL, uBufLen, szDescription, puCopied) -proc GetDescriptionW*(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szDescription: LPWSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescriptionW(self, hKL, uBufLen, szDescription, puCopied) -proc GetGuideLineA*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPSTR, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGuideLineA(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) -proc GetGuideLineW*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, dwBufLen: DWORD, pBuf: LPWSTR, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGuideLineW(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) -proc GetIMEFileNameA*(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szFileName: LPSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMEFileNameA(self, hKL, uBufLen, szFileName, puCopied) -proc GetIMEFileNameW*(self: ptr IActiveIMMIME, hKL: HKL, uBufLen: UINT, szFileName: LPWSTR, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMEFileNameW(self, hKL, uBufLen, szFileName, puCopied) -proc GetOpenStatus*(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOpenStatus(self, hIMC) -proc GetProperty*(self: ptr IActiveIMMIME, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, hKL, fdwIndex, pdwProperty) -proc GetRegisterWordStyleA*(self: ptr IActiveIMMIME, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFA, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRegisterWordStyleA(self, hKL, nItem, pStyleBuf, puCopied) -proc GetRegisterWordStyleW*(self: ptr IActiveIMMIME, hKL: HKL, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRegisterWordStyleW(self, hKL, nItem, pStyleBuf, puCopied) -proc GetStatusWindowPos*(self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStatusWindowPos(self, hIMC, pptPos) -proc GetVirtualKey*(self: ptr IActiveIMMIME, hWnd: HWND, puVirtualKey: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVirtualKey(self, hWnd, puVirtualKey) -proc InstallIMEA*(self: ptr IActiveIMMIME, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InstallIMEA(self, szIMEFileName, szLayoutText, phKL) -proc InstallIMEW*(self: ptr IActiveIMMIME, szIMEFileName: LPWSTR, szLayoutText: LPWSTR, phKL: ptr HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InstallIMEW(self, szIMEFileName, szLayoutText, phKL) -proc IsIME*(self: ptr IActiveIMMIME, hKL: HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsIME(self, hKL) -proc IsUIMessageA*(self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsUIMessageA(self, hWndIME, msg, wParam, lParam) -proc IsUIMessageW*(self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsUIMessageW(self, hWndIME, msg, wParam, lParam) -proc NotifyIME*(self: ptr IActiveIMMIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NotifyIME(self, hIMC, dwAction, dwIndex, dwValue) -proc mRegisterWordA*(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szRegister: LPSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterWordA(self, hKL, szReading, dwStyle, szRegister) -proc mRegisterWordW*(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterWordW(self, hKL, szReading, dwStyle, szRegister) -proc ReleaseContext*(self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseContext(self, hWnd, hIMC) -proc SetCandidateWindow*(self: ptr IActiveIMMIME, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCandidateWindow(self, hIMC, pCandidate) -proc SetCompositionFontA*(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionFontA(self, hIMC, plf) -proc SetCompositionFontW*(self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionFontW(self, hIMC, plf) -proc SetCompositionStringA*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionStringA(self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen) -proc SetCompositionStringW*(self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pComp: LPVOID, dwCompLen: DWORD, pRead: LPVOID, dwReadLen: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionStringW(self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen) -proc SetCompositionWindow*(self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionWindow(self, hIMC, pCompForm) -proc SetConversionStatus*(self: ptr IActiveIMMIME, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetConversionStatus(self, hIMC, fdwConversion, fdwSentence) -proc SetOpenStatus*(self: ptr IActiveIMMIME, hIMC: HIMC, fOpen: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOpenStatus(self, hIMC, fOpen) -proc SetStatusWindowPos*(self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStatusWindowPos(self, hIMC, pptPos) -proc SimulateHotKey*(self: ptr IActiveIMMIME, hWnd: HWND, dwHotKeyID: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SimulateHotKey(self, hWnd, dwHotKeyID) -proc UnregisterWordA*(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPSTR, dwStyle: DWORD, szUnregister: LPSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterWordA(self, hKL, szReading, dwStyle, szUnregister) -proc UnregisterWordW*(self: ptr IActiveIMMIME, hKL: HKL, szReading: LPWSTR, dwStyle: DWORD, szUnregister: LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterWordW(self, hKL, szReading, dwStyle, szUnregister) -proc GenerateMessage*(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GenerateMessage(self, hIMC) -proc LockIMC*(self: ptr IActiveIMMIME, hIMC: HIMC, ppIMC: ptr ptr INPUTCONTEXT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockIMC(self, hIMC, ppIMC) -proc UnlockIMC*(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockIMC(self, hIMC) -proc GetIMCLockCount*(self: ptr IActiveIMMIME, hIMC: HIMC, pdwLockCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMCLockCount(self, hIMC, pdwLockCount) -proc CreateIMCC*(self: ptr IActiveIMMIME, dwSize: DWORD, phIMCC: ptr HIMCC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateIMCC(self, dwSize, phIMCC) -proc DestroyIMCC*(self: ptr IActiveIMMIME, hIMCC: HIMCC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyIMCC(self, hIMCC) -proc LockIMCC*(self: ptr IActiveIMMIME, hIMCC: HIMCC, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockIMCC(self, hIMCC, ppv) -proc UnlockIMCC*(self: ptr IActiveIMMIME, hIMCC: HIMCC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockIMCC(self, hIMCC) -proc ReSizeIMCC*(self: ptr IActiveIMMIME, hIMCC: HIMCC, dwSize: DWORD, phIMCC: ptr HIMCC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReSizeIMCC(self, hIMCC, dwSize, phIMCC) -proc GetIMCCSize*(self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMCCSize(self, hIMCC, pdwSize) -proc GetIMCCLockCount*(self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwLockCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIMCCLockCount(self, hIMCC, pdwLockCount) -proc GetHotKey*(self: ptr IActiveIMMIME, dwHotKeyID: DWORD, puModifiers: ptr UINT, puVKey: ptr UINT, phKL: ptr HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHotKey(self, dwHotKeyID, puModifiers, puVKey, phKL) -proc SetHotKey*(self: ptr IActiveIMMIME, dwHotKeyID: DWORD, uModifiers: UINT, uVKey: UINT, hKL: HKL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHotKey(self, dwHotKeyID, uModifiers, uVKey, hKL) -proc CreateSoftKeyboard*(self: ptr IActiveIMMIME, uType: UINT, hOwner: HWND, x: int32, y: int32, phSoftKbdWnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateSoftKeyboard(self, uType, hOwner, x, y, phSoftKbdWnd) -proc DestroySoftKeyboard*(self: ptr IActiveIMMIME, hSoftKbdWnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroySoftKeyboard(self, hSoftKbdWnd) -proc ShowSoftKeyboard*(self: ptr IActiveIMMIME, hSoftKbdWnd: HWND, nCmdShow: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowSoftKeyboard(self, hSoftKbdWnd, nCmdShow) -proc GetCodePageA*(self: ptr IActiveIMMIME, hKL: HKL, uCodePage: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCodePageA(self, hKL, uCodePage) -proc GetLangId*(self: ptr IActiveIMMIME, hKL: HKL, plid: ptr LANGID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLangId(self, hKL, plid) -proc KeybdEvent*(self: ptr IActiveIMMIME, lgidIME: LANGID, bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.KeybdEvent(self, lgidIME, bVk, bScan, dwFlags, dwExtraInfo) -proc LockModal*(self: ptr IActiveIMMIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockModal(self) -proc UnlockModal*(self: ptr IActiveIMMIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockModal(self) -proc AssociateContextEx*(self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AssociateContextEx(self, hWnd, hIMC, dwFlags) -proc DisableIME*(self: ptr IActiveIMMIME, idThread: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DisableIME(self, idThread) -proc GetImeMenuItemsA*(self: ptr IActiveIMMIME, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOA, pImeMenu: ptr IMEMENUITEMINFOA, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImeMenuItemsA(self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult) -proc GetImeMenuItemsW*(self: ptr IActiveIMMIME, hIMC: HIMC, dwFlags: DWORD, dwType: DWORD, pImeParentMenu: ptr IMEMENUITEMINFOW, pImeMenu: ptr IMEMENUITEMINFOW, dwSize: DWORD, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImeMenuItemsW(self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult) -proc EnumInputContext*(self: ptr IActiveIMMIME, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumInputContext(self, idThread, ppEnum) -proc RequestMessageA*(self: ptr IActiveIMMIME, hIMC: HIMC, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestMessageA(self, hIMC, wParam, lParam, plResult) -proc RequestMessageW*(self: ptr IActiveIMMIME, hIMC: HIMC, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestMessageW(self, hIMC, wParam, lParam, plResult) -proc SendIMCA*(self: ptr IActiveIMMIME, hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendIMCA(self, hWnd, uMsg, wParam, lParam, plResult) -proc SendIMCW*(self: ptr IActiveIMMIME, hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendIMCW(self, hWnd, uMsg, wParam, lParam, plResult) -proc IsSleeping*(self: ptr IActiveIMMIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSleeping(self) -proc Inquire*(self: ptr IActiveIME, dwSystemInfoFlags: DWORD, pIMEInfo: ptr IMEINFO, szWndClass: LPWSTR, pdwPrivate: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Inquire(self, dwSystemInfoFlags, pIMEInfo, szWndClass, pdwPrivate) -proc ConversionList*(self: ptr IActiveIME, hIMC: HIMC, szSource: LPWSTR, uFlag: UINT, uBufLen: UINT, pDest: ptr CANDIDATELIST, puCopied: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConversionList(self, hIMC, szSource, uFlag, uBufLen, pDest, puCopied) -proc Configure*(self: ptr IActiveIME, hKL: HKL, hWnd: HWND, dwMode: DWORD, pRegisterWord: ptr REGISTERWORDW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Configure(self, hKL, hWnd, dwMode, pRegisterWord) -proc Destroy*(self: ptr IActiveIME, uReserved: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Destroy(self, uReserved) -proc Escape*(self: ptr IActiveIME, hIMC: HIMC, uEscape: UINT, pData: pointer, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Escape(self, hIMC, uEscape, pData, plResult) -proc SetActiveContext*(self: ptr IActiveIME, hIMC: HIMC, fFlag: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActiveContext(self, hIMC, fFlag) -proc ProcessKey*(self: ptr IActiveIME, hIMC: HIMC, uVirKey: UINT, lParam: DWORD, pbKeyState: ptr BYTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessKey(self, hIMC, uVirKey, lParam, pbKeyState) -proc Notify*(self: ptr IActiveIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Notify(self, hIMC, dwAction, dwIndex, dwValue) -proc Select*(self: ptr IActiveIME, hIMC: HIMC, fSelect: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self, hIMC, fSelect) -proc SetCompositionString*(self: ptr IActiveIME, hIMC: HIMC, dwIndex: DWORD, pComp: pointer, dwCompLen: DWORD, pRead: pointer, dwReadLen: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionString(self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen) -proc ToAsciiEx*(self: ptr IActiveIME, uVirKey: UINT, uScanCode: UINT, pbKeyState: ptr BYTE, fuState: UINT, hIMC: HIMC, pdwTransBuf: ptr DWORD, puSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ToAsciiEx(self, uVirKey, uScanCode, pbKeyState, fuState, hIMC, pdwTransBuf, puSize) -proc mRegisterWord*(self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterWord(self, szReading, dwStyle, szString) -proc UnregisterWord*(self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterWord(self, szReading, dwStyle, szString) -proc GetRegisterWordStyle*(self: ptr IActiveIME, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puBufSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRegisterWordStyle(self, nItem, pStyleBuf, puBufSize) -proc EnumRegisterWord*(self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szRegister: LPWSTR, pData: LPVOID, ppEnum: ptr ptr IEnumRegisterWordW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRegisterWord(self, szReading, dwStyle, szRegister, pData, ppEnum) -proc GetCodePageA*(self: ptr IActiveIME, uCodePage: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCodePageA(self, uCodePage) -proc GetLangId*(self: ptr IActiveIME, plid: ptr LANGID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLangId(self, plid) -proc Sleep*(self: ptr IActiveIME2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Sleep(self) -proc Unsleep*(self: ptr IActiveIME2, fDead: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unsleep(self, fDead) -proc Clone*(self: ptr IEnumRegisterWordA, ppEnum: ptr ptr IEnumRegisterWordA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc Next*(self: ptr IEnumRegisterWordA, ulCount: ULONG, rgRegisterWord: ptr REGISTERWORDA, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, ulCount, rgRegisterWord, pcFetched) -proc Reset*(self: ptr IEnumRegisterWordA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Skip*(self: ptr IEnumRegisterWordA, ulCount: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, ulCount) -proc Clone*(self: ptr IEnumRegisterWordW, ppEnum: ptr ptr IEnumRegisterWordW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc Next*(self: ptr IEnumRegisterWordW, ulCount: ULONG, rgRegisterWord: ptr REGISTERWORDW, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, ulCount, rgRegisterWord, pcFetched) -proc Reset*(self: ptr IEnumRegisterWordW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Skip*(self: ptr IEnumRegisterWordW, ulCount: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, ulCount) -converter winimConverterIEnumInputContextToIUnknown*(x: ptr IEnumInputContext): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveIMMRegistrarToIUnknown*(x: ptr IActiveIMMRegistrar): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveIMMMessagePumpOwnerToIUnknown*(x: ptr IActiveIMMMessagePumpOwner): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveIMMAppToIUnknown*(x: ptr IActiveIMMApp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveIMMIMEToIUnknown*(x: ptr IActiveIMMIME): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveIMEToIUnknown*(x: ptr IActiveIME): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveIME2ToIActiveIME*(x: ptr IActiveIME2): ptr IActiveIME = cast[ptr IActiveIME](x) -converter winimConverterIActiveIME2ToIUnknown*(x: ptr IActiveIME2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumRegisterWordAToIUnknown*(x: ptr IEnumRegisterWordA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumRegisterWordWToIUnknown*(x: ptr IEnumRegisterWordW): ptr IUnknown = cast[ptr IUnknown](x) +proc ImmEnumInputContext*( + idThread: DWORD, lpfn: IMCENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetImeMenuItemsA*( + P1: HIMC, + P2: DWORD, + P3: DWORD, + P4: LPIMEMENUITEMINFOA, + P5: LPIMEMENUITEMINFOA, + P6: DWORD, +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmGetImeMenuItemsW*( + P1: HIMC, + P2: DWORD, + P3: DWORD, + P4: LPIMEMENUITEMINFOW, + P5: LPIMEMENUITEMINFOW, + P6: DWORD, +): DWORD {.winapi, stdcall, dynlib: "imm32", importc.} + +proc ImmDisableTextFrameService*( + idThread: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc.} + +proc Clone*( + self: ptr IEnumInputContext, ppEnum: ptr ptr IEnumInputContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc Next*( + self: ptr IEnumInputContext, + ulCount: ULONG, + rgInputContext: ptr HIMC, + pcFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, ulCount, rgInputContext, pcFetched) + +proc Reset*(self: ptr IEnumInputContext): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Skip*(self: ptr IEnumInputContext, ulCount: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, ulCount) + +proc RegisterIME*( + self: ptr IActiveIMMRegistrar, + rclsid: REFCLSID, + lgid: LANGID, + pszIconFile: LPCWSTR, + pszDesc: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterIME(self, rclsid, lgid, pszIconFile, pszDesc) + +proc UnregisterIME*( + self: ptr IActiveIMMRegistrar, rclsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterIME(self, rclsid) + +proc Start*(self: ptr IActiveIMMMessagePumpOwner): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Start(self) + +proc End*(self: ptr IActiveIMMMessagePumpOwner): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.End(self) + +proc OnTranslateMessage*( + self: ptr IActiveIMMMessagePumpOwner, pMsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnTranslateMessage(self, pMsg) + +proc Pause*( + self: ptr IActiveIMMMessagePumpOwner, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Pause(self, pdwCookie) + +proc Resume*( + self: ptr IActiveIMMMessagePumpOwner, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resume(self, dwCookie) + +proc AssociateContext*( + self: ptr IActiveIMMApp, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AssociateContext(self, hWnd, hIME, phPrev) + +proc ConfigureIMEA*( + self: ptr IActiveIMMApp, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDA, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConfigureIMEA(self, hKL, hWnd, dwMode, pData) + +proc ConfigureIMEW*( + self: ptr IActiveIMMApp, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConfigureIMEW(self, hKL, hWnd, dwMode, pData) + +proc CreateContext*( + self: ptr IActiveIMMApp, phIMC: ptr HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateContext(self, phIMC) + +proc DestroyContext*(self: ptr IActiveIMMApp, hIME: HIMC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyContext(self, hIME) + +proc EnumRegisterWordA*( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordA, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRegisterWordA( + self, hKL, szReading, dwStyle, szRegister, pData, pEnum + ) + +proc EnumRegisterWordW*( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRegisterWordW( + self, hKL, szReading, dwStyle, szRegister, pData, pEnum + ) + +proc EscapeA*( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EscapeA(self, hKL, hIMC, uEscape, pData, plResult) + +proc EscapeW*( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EscapeW(self, hKL, hIMC, uEscape, pData, plResult) + +proc GetCandidateListA*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListA(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) + +proc GetCandidateListW*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListW(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) + +proc GetCandidateListCountA*( + self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListCountA(self, hIMC, pdwListSize, pdwBufLen) + +proc GetCandidateListCountW*( + self: ptr IActiveIMMApp, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListCountW(self, hIMC, pdwListSize, pdwBufLen) + +proc GetCandidateWindow*( + self: ptr IActiveIMMApp, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateWindow(self, hIMC, dwIndex, pCandidate) + +proc GetCompositionFontA*( + self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionFontA(self, hIMC, plf) + +proc GetCompositionFontW*( + self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionFontW(self, hIMC, plf) + +proc GetCompositionStringA*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionStringA(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) + +proc GetCompositionStringW*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionStringW(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) + +proc GetCompositionWindow*( + self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionWindow(self, hIMC, pCompForm) + +proc GetContext*( + self: ptr IActiveIMMApp, hWnd: HWND, phIMC: ptr HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContext(self, hWnd, phIMC) + +proc GetConversionListA*( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + pSrc: LPSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionListA( + self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied + ) + +proc GetConversionListW*( + self: ptr IActiveIMMApp, + hKL: HKL, + hIMC: HIMC, + pSrc: LPWSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionListW( + self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied + ) + +proc GetConversionStatus*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + pfdwConversion: ptr DWORD, + pfdwSentence: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionStatus(self, hIMC, pfdwConversion, pfdwSentence) + +proc GetDefaultIMEWnd*( + self: ptr IActiveIMMApp, hWnd: HWND, phDefWnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultIMEWnd(self, hWnd, phDefWnd) + +proc GetDescriptionA*( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szDescription: LPSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescriptionA(self, hKL, uBufLen, szDescription, puCopied) + +proc GetDescriptionW*( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szDescription: LPWSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescriptionW(self, hKL, uBufLen, szDescription, puCopied) + +proc GetGuideLineA*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPSTR, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGuideLineA(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) + +proc GetGuideLineW*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPWSTR, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGuideLineW(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) + +proc GetIMEFileNameA*( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szFileName: LPSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMEFileNameA(self, hKL, uBufLen, szFileName, puCopied) + +proc GetIMEFileNameW*( + self: ptr IActiveIMMApp, + hKL: HKL, + uBufLen: UINT, + szFileName: LPWSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMEFileNameW(self, hKL, uBufLen, szFileName, puCopied) + +proc GetOpenStatus*(self: ptr IActiveIMMApp, hIMC: HIMC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOpenStatus(self, hIMC) + +proc GetProperty*( + self: ptr IActiveIMMApp, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, hKL, fdwIndex, pdwProperty) + +proc GetRegisterWordStyleA*( + self: ptr IActiveIMMApp, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFA, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRegisterWordStyleA(self, hKL, nItem, pStyleBuf, puCopied) + +proc GetRegisterWordStyleW*( + self: ptr IActiveIMMApp, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFW, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRegisterWordStyleW(self, hKL, nItem, pStyleBuf, puCopied) + +proc GetStatusWindowPos*( + self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStatusWindowPos(self, hIMC, pptPos) + +proc GetVirtualKey*( + self: ptr IActiveIMMApp, hWnd: HWND, puVirtualKey: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVirtualKey(self, hWnd, puVirtualKey) + +proc InstallIMEA*( + self: ptr IActiveIMMApp, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InstallIMEA(self, szIMEFileName, szLayoutText, phKL) + +proc InstallIMEW*( + self: ptr IActiveIMMApp, szIMEFileName: LPWSTR, szLayoutText: LPWSTR, phKL: ptr HKL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InstallIMEW(self, szIMEFileName, szLayoutText, phKL) + +proc IsIME*(self: ptr IActiveIMMApp, hKL: HKL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsIME(self, hKL) + +proc IsUIMessageA*( + self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsUIMessageA(self, hWndIME, msg, wParam, lParam) + +proc IsUIMessageW*( + self: ptr IActiveIMMApp, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsUIMessageW(self, hWndIME, msg, wParam, lParam) + +proc NotifyIME*( + self: ptr IActiveIMMApp, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NotifyIME(self, hIMC, dwAction, dwIndex, dwValue) + +proc mRegisterWordA*( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterWordA(self, hKL, szReading, dwStyle, szRegister) + +proc mRegisterWordW*( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterWordW(self, hKL, szReading, dwStyle, szRegister) + +proc ReleaseContext*( + self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseContext(self, hWnd, hIMC) + +proc SetCandidateWindow*( + self: ptr IActiveIMMApp, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCandidateWindow(self, hIMC, pCandidate) + +proc SetCompositionFontA*( + self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionFontA(self, hIMC, plf) + +proc SetCompositionFontW*( + self: ptr IActiveIMMApp, hIMC: HIMC, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionFontW(self, hIMC, plf) + +proc SetCompositionStringA*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionStringA( + self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen + ) + +proc SetCompositionStringW*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionStringW( + self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen + ) + +proc SetCompositionWindow*( + self: ptr IActiveIMMApp, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionWindow(self, hIMC, pCompForm) + +proc SetConversionStatus*( + self: ptr IActiveIMMApp, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetConversionStatus(self, hIMC, fdwConversion, fdwSentence) + +proc SetOpenStatus*( + self: ptr IActiveIMMApp, hIMC: HIMC, fOpen: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOpenStatus(self, hIMC, fOpen) + +proc SetStatusWindowPos*( + self: ptr IActiveIMMApp, hIMC: HIMC, pptPos: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStatusWindowPos(self, hIMC, pptPos) + +proc SimulateHotKey*( + self: ptr IActiveIMMApp, hWnd: HWND, dwHotKeyID: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SimulateHotKey(self, hWnd, dwHotKeyID) + +proc UnregisterWordA*( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szUnregister: LPSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterWordA(self, hKL, szReading, dwStyle, szUnregister) + +proc UnregisterWordW*( + self: ptr IActiveIMMApp, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szUnregister: LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterWordW(self, hKL, szReading, dwStyle, szUnregister) + +proc Activate*( + self: ptr IActiveIMMApp, fRestoreLayout: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Activate(self, fRestoreLayout) + +proc Deactivate*(self: ptr IActiveIMMApp): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Deactivate(self) + +proc OnDefWindowProc*( + self: ptr IActiveIMMApp, + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDefWindowProc(self, hWnd, Msg, wParam, lParam, plResult) + +proc FilterClientWindows*( + self: ptr IActiveIMMApp, aaClassList: ptr ATOM, uSize: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FilterClientWindows(self, aaClassList, uSize) + +proc GetCodePageA*( + self: ptr IActiveIMMApp, hKL: HKL, uCodePage: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCodePageA(self, hKL, uCodePage) + +proc GetLangId*( + self: ptr IActiveIMMApp, hKL: HKL, plid: ptr LANGID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLangId(self, hKL, plid) + +proc AssociateContextEx*( + self: ptr IActiveIMMApp, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AssociateContextEx(self, hWnd, hIMC, dwFlags) + +proc DisableIME*(self: ptr IActiveIMMApp, idThread: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DisableIME(self, idThread) + +proc GetImeMenuItemsA*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOA, + pImeMenu: ptr IMEMENUITEMINFOA, + dwSize: DWORD, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImeMenuItemsA( + self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult + ) + +proc GetImeMenuItemsW*( + self: ptr IActiveIMMApp, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOW, + pImeMenu: ptr IMEMENUITEMINFOW, + dwSize: DWORD, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImeMenuItemsW( + self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult + ) + +proc EnumInputContext*( + self: ptr IActiveIMMApp, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumInputContext(self, idThread, ppEnum) + +proc AssociateContext*( + self: ptr IActiveIMMIME, hWnd: HWND, hIME: HIMC, phPrev: ptr HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AssociateContext(self, hWnd, hIME, phPrev) + +proc ConfigureIMEA*( + self: ptr IActiveIMMIME, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDA, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConfigureIMEA(self, hKL, hWnd, dwMode, pData) + +proc ConfigureIMEW*( + self: ptr IActiveIMMIME, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pData: ptr REGISTERWORDW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConfigureIMEW(self, hKL, hWnd, dwMode, pData) + +proc CreateContext*( + self: ptr IActiveIMMIME, phIMC: ptr HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateContext(self, phIMC) + +proc DestroyContext*(self: ptr IActiveIMMIME, hIME: HIMC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyContext(self, hIME) + +proc EnumRegisterWordA*( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordA, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRegisterWordA( + self, hKL, szReading, dwStyle, szRegister, pData, pEnum + ) + +proc EnumRegisterWordW*( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + pData: LPVOID, + pEnum: ptr ptr IEnumRegisterWordW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRegisterWordW( + self, hKL, szReading, dwStyle, szRegister, pData, pEnum + ) + +proc EscapeA*( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EscapeA(self, hKL, hIMC, uEscape, pData, plResult) + +proc EscapeW*( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + uEscape: UINT, + pData: LPVOID, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EscapeW(self, hKL, hIMC, uEscape, pData, plResult) + +proc GetCandidateListA*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListA(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) + +proc GetCandidateListW*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + uBufLen: UINT, + pCandList: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListW(self, hIMC, dwIndex, uBufLen, pCandList, puCopied) + +proc GetCandidateListCountA*( + self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListCountA(self, hIMC, pdwListSize, pdwBufLen) + +proc GetCandidateListCountW*( + self: ptr IActiveIMMIME, hIMC: HIMC, pdwListSize: ptr DWORD, pdwBufLen: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateListCountW(self, hIMC, pdwListSize, pdwBufLen) + +proc GetCandidateWindow*( + self: ptr IActiveIMMIME, hIMC: HIMC, dwIndex: DWORD, pCandidate: ptr CANDIDATEFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCandidateWindow(self, hIMC, dwIndex, pCandidate) + +proc GetCompositionFontA*( + self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionFontA(self, hIMC, plf) + +proc GetCompositionFontW*( + self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionFontW(self, hIMC, plf) + +proc GetCompositionStringA*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionStringA(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) + +proc GetCompositionStringW*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + plCopied: ptr LONG, + pBuf: LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionStringW(self, hIMC, dwIndex, dwBufLen, plCopied, pBuf) + +proc GetCompositionWindow*( + self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionWindow(self, hIMC, pCompForm) + +proc GetContext*( + self: ptr IActiveIMMIME, hWnd: HWND, phIMC: ptr HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContext(self, hWnd, phIMC) + +proc GetConversionListA*( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + pSrc: LPSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionListA( + self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied + ) + +proc GetConversionListW*( + self: ptr IActiveIMMIME, + hKL: HKL, + hIMC: HIMC, + pSrc: LPWSTR, + uBufLen: UINT, + uFlag: UINT, + pDst: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionListW( + self, hKL, hIMC, pSrc, uBufLen, uFlag, pDst, puCopied + ) + +proc GetConversionStatus*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + pfdwConversion: ptr DWORD, + pfdwSentence: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionStatus(self, hIMC, pfdwConversion, pfdwSentence) + +proc GetDefaultIMEWnd*( + self: ptr IActiveIMMIME, hWnd: HWND, phDefWnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultIMEWnd(self, hWnd, phDefWnd) + +proc GetDescriptionA*( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szDescription: LPSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescriptionA(self, hKL, uBufLen, szDescription, puCopied) + +proc GetDescriptionW*( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szDescription: LPWSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescriptionW(self, hKL, uBufLen, szDescription, puCopied) + +proc GetGuideLineA*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPSTR, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGuideLineA(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) + +proc GetGuideLineW*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + dwBufLen: DWORD, + pBuf: LPWSTR, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGuideLineW(self, hIMC, dwIndex, dwBufLen, pBuf, pdwResult) + +proc GetIMEFileNameA*( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szFileName: LPSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMEFileNameA(self, hKL, uBufLen, szFileName, puCopied) + +proc GetIMEFileNameW*( + self: ptr IActiveIMMIME, + hKL: HKL, + uBufLen: UINT, + szFileName: LPWSTR, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMEFileNameW(self, hKL, uBufLen, szFileName, puCopied) + +proc GetOpenStatus*(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOpenStatus(self, hIMC) + +proc GetProperty*( + self: ptr IActiveIMMIME, hKL: HKL, fdwIndex: DWORD, pdwProperty: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, hKL, fdwIndex, pdwProperty) + +proc GetRegisterWordStyleA*( + self: ptr IActiveIMMIME, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFA, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRegisterWordStyleA(self, hKL, nItem, pStyleBuf, puCopied) + +proc GetRegisterWordStyleW*( + self: ptr IActiveIMMIME, + hKL: HKL, + nItem: UINT, + pStyleBuf: ptr STYLEBUFW, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRegisterWordStyleW(self, hKL, nItem, pStyleBuf, puCopied) + +proc GetStatusWindowPos*( + self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStatusWindowPos(self, hIMC, pptPos) + +proc GetVirtualKey*( + self: ptr IActiveIMMIME, hWnd: HWND, puVirtualKey: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVirtualKey(self, hWnd, puVirtualKey) + +proc InstallIMEA*( + self: ptr IActiveIMMIME, szIMEFileName: LPSTR, szLayoutText: LPSTR, phKL: ptr HKL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InstallIMEA(self, szIMEFileName, szLayoutText, phKL) + +proc InstallIMEW*( + self: ptr IActiveIMMIME, szIMEFileName: LPWSTR, szLayoutText: LPWSTR, phKL: ptr HKL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InstallIMEW(self, szIMEFileName, szLayoutText, phKL) + +proc IsIME*(self: ptr IActiveIMMIME, hKL: HKL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsIME(self, hKL) + +proc IsUIMessageA*( + self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsUIMessageA(self, hWndIME, msg, wParam, lParam) + +proc IsUIMessageW*( + self: ptr IActiveIMMIME, hWndIME: HWND, msg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsUIMessageW(self, hWndIME, msg, wParam, lParam) + +proc NotifyIME*( + self: ptr IActiveIMMIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NotifyIME(self, hIMC, dwAction, dwIndex, dwValue) + +proc mRegisterWordA*( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szRegister: LPSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterWordA(self, hKL, szReading, dwStyle, szRegister) + +proc mRegisterWordW*( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterWordW(self, hKL, szReading, dwStyle, szRegister) + +proc ReleaseContext*( + self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseContext(self, hWnd, hIMC) + +proc SetCandidateWindow*( + self: ptr IActiveIMMIME, hIMC: HIMC, pCandidate: ptr CANDIDATEFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCandidateWindow(self, hIMC, pCandidate) + +proc SetCompositionFontA*( + self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionFontA(self, hIMC, plf) + +proc SetCompositionFontW*( + self: ptr IActiveIMMIME, hIMC: HIMC, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionFontW(self, hIMC, plf) + +proc SetCompositionStringA*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionStringA( + self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen + ) + +proc SetCompositionStringW*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwIndex: DWORD, + pComp: LPVOID, + dwCompLen: DWORD, + pRead: LPVOID, + dwReadLen: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionStringW( + self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen + ) + +proc SetCompositionWindow*( + self: ptr IActiveIMMIME, hIMC: HIMC, pCompForm: ptr COMPOSITIONFORM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionWindow(self, hIMC, pCompForm) + +proc SetConversionStatus*( + self: ptr IActiveIMMIME, hIMC: HIMC, fdwConversion: DWORD, fdwSentence: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetConversionStatus(self, hIMC, fdwConversion, fdwSentence) + +proc SetOpenStatus*( + self: ptr IActiveIMMIME, hIMC: HIMC, fOpen: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOpenStatus(self, hIMC, fOpen) + +proc SetStatusWindowPos*( + self: ptr IActiveIMMIME, hIMC: HIMC, pptPos: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStatusWindowPos(self, hIMC, pptPos) + +proc SimulateHotKey*( + self: ptr IActiveIMMIME, hWnd: HWND, dwHotKeyID: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SimulateHotKey(self, hWnd, dwHotKeyID) + +proc UnregisterWordA*( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPSTR, + dwStyle: DWORD, + szUnregister: LPSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterWordA(self, hKL, szReading, dwStyle, szUnregister) + +proc UnregisterWordW*( + self: ptr IActiveIMMIME, + hKL: HKL, + szReading: LPWSTR, + dwStyle: DWORD, + szUnregister: LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterWordW(self, hKL, szReading, dwStyle, szUnregister) + +proc GenerateMessage*(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GenerateMessage(self, hIMC) + +proc LockIMC*( + self: ptr IActiveIMMIME, hIMC: HIMC, ppIMC: ptr ptr INPUTCONTEXT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockIMC(self, hIMC, ppIMC) + +proc UnlockIMC*(self: ptr IActiveIMMIME, hIMC: HIMC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnlockIMC(self, hIMC) + +proc GetIMCLockCount*( + self: ptr IActiveIMMIME, hIMC: HIMC, pdwLockCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMCLockCount(self, hIMC, pdwLockCount) + +proc CreateIMCC*( + self: ptr IActiveIMMIME, dwSize: DWORD, phIMCC: ptr HIMCC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateIMCC(self, dwSize, phIMCC) + +proc DestroyIMCC*(self: ptr IActiveIMMIME, hIMCC: HIMCC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyIMCC(self, hIMCC) + +proc LockIMCC*( + self: ptr IActiveIMMIME, hIMCC: HIMCC, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockIMCC(self, hIMCC, ppv) + +proc UnlockIMCC*(self: ptr IActiveIMMIME, hIMCC: HIMCC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnlockIMCC(self, hIMCC) + +proc ReSizeIMCC*( + self: ptr IActiveIMMIME, hIMCC: HIMCC, dwSize: DWORD, phIMCC: ptr HIMCC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReSizeIMCC(self, hIMCC, dwSize, phIMCC) + +proc GetIMCCSize*( + self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwSize: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMCCSize(self, hIMCC, pdwSize) + +proc GetIMCCLockCount*( + self: ptr IActiveIMMIME, hIMCC: HIMCC, pdwLockCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIMCCLockCount(self, hIMCC, pdwLockCount) + +proc GetHotKey*( + self: ptr IActiveIMMIME, + dwHotKeyID: DWORD, + puModifiers: ptr UINT, + puVKey: ptr UINT, + phKL: ptr HKL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHotKey(self, dwHotKeyID, puModifiers, puVKey, phKL) + +proc SetHotKey*( + self: ptr IActiveIMMIME, dwHotKeyID: DWORD, uModifiers: UINT, uVKey: UINT, hKL: HKL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHotKey(self, dwHotKeyID, uModifiers, uVKey, hKL) + +proc CreateSoftKeyboard*( + self: ptr IActiveIMMIME, + uType: UINT, + hOwner: HWND, + x: int32, + y: int32, + phSoftKbdWnd: ptr HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateSoftKeyboard(self, uType, hOwner, x, y, phSoftKbdWnd) + +proc DestroySoftKeyboard*( + self: ptr IActiveIMMIME, hSoftKbdWnd: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroySoftKeyboard(self, hSoftKbdWnd) + +proc ShowSoftKeyboard*( + self: ptr IActiveIMMIME, hSoftKbdWnd: HWND, nCmdShow: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowSoftKeyboard(self, hSoftKbdWnd, nCmdShow) + +proc GetCodePageA*( + self: ptr IActiveIMMIME, hKL: HKL, uCodePage: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCodePageA(self, hKL, uCodePage) + +proc GetLangId*( + self: ptr IActiveIMMIME, hKL: HKL, plid: ptr LANGID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLangId(self, hKL, plid) + +proc KeybdEvent*( + self: ptr IActiveIMMIME, + lgidIME: LANGID, + bVk: BYTE, + bScan: BYTE, + dwFlags: DWORD, + dwExtraInfo: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.KeybdEvent(self, lgidIME, bVk, bScan, dwFlags, dwExtraInfo) + +proc LockModal*(self: ptr IActiveIMMIME): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockModal(self) + +proc UnlockModal*(self: ptr IActiveIMMIME): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnlockModal(self) + +proc AssociateContextEx*( + self: ptr IActiveIMMIME, hWnd: HWND, hIMC: HIMC, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AssociateContextEx(self, hWnd, hIMC, dwFlags) + +proc DisableIME*(self: ptr IActiveIMMIME, idThread: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DisableIME(self, idThread) + +proc GetImeMenuItemsA*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOA, + pImeMenu: ptr IMEMENUITEMINFOA, + dwSize: DWORD, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImeMenuItemsA( + self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult + ) + +proc GetImeMenuItemsW*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + dwFlags: DWORD, + dwType: DWORD, + pImeParentMenu: ptr IMEMENUITEMINFOW, + pImeMenu: ptr IMEMENUITEMINFOW, + dwSize: DWORD, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImeMenuItemsW( + self, hIMC, dwFlags, dwType, pImeParentMenu, pImeMenu, dwSize, pdwResult + ) + +proc EnumInputContext*( + self: ptr IActiveIMMIME, idThread: DWORD, ppEnum: ptr ptr IEnumInputContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumInputContext(self, idThread, ppEnum) + +proc RequestMessageA*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestMessageA(self, hIMC, wParam, lParam, plResult) + +proc RequestMessageW*( + self: ptr IActiveIMMIME, + hIMC: HIMC, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestMessageW(self, hIMC, wParam, lParam, plResult) + +proc SendIMCA*( + self: ptr IActiveIMMIME, + hWnd: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendIMCA(self, hWnd, uMsg, wParam, lParam, plResult) + +proc SendIMCW*( + self: ptr IActiveIMMIME, + hWnd: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendIMCW(self, hWnd, uMsg, wParam, lParam, plResult) + +proc IsSleeping*(self: ptr IActiveIMMIME): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsSleeping(self) + +proc Inquire*( + self: ptr IActiveIME, + dwSystemInfoFlags: DWORD, + pIMEInfo: ptr IMEINFO, + szWndClass: LPWSTR, + pdwPrivate: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Inquire(self, dwSystemInfoFlags, pIMEInfo, szWndClass, pdwPrivate) + +proc ConversionList*( + self: ptr IActiveIME, + hIMC: HIMC, + szSource: LPWSTR, + uFlag: UINT, + uBufLen: UINT, + pDest: ptr CANDIDATELIST, + puCopied: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConversionList(self, hIMC, szSource, uFlag, uBufLen, pDest, puCopied) + +proc Configure*( + self: ptr IActiveIME, + hKL: HKL, + hWnd: HWND, + dwMode: DWORD, + pRegisterWord: ptr REGISTERWORDW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Configure(self, hKL, hWnd, dwMode, pRegisterWord) + +proc Destroy*(self: ptr IActiveIME, uReserved: UINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Destroy(self, uReserved) + +proc Escape*( + self: ptr IActiveIME, + hIMC: HIMC, + uEscape: UINT, + pData: pointer, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Escape(self, hIMC, uEscape, pData, plResult) + +proc SetActiveContext*( + self: ptr IActiveIME, hIMC: HIMC, fFlag: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetActiveContext(self, hIMC, fFlag) + +proc ProcessKey*( + self: ptr IActiveIME, hIMC: HIMC, uVirKey: UINT, lParam: DWORD, pbKeyState: ptr BYTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessKey(self, hIMC, uVirKey, lParam, pbKeyState) + +proc Notify*( + self: ptr IActiveIME, hIMC: HIMC, dwAction: DWORD, dwIndex: DWORD, dwValue: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Notify(self, hIMC, dwAction, dwIndex, dwValue) + +proc Select*( + self: ptr IActiveIME, hIMC: HIMC, fSelect: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self, hIMC, fSelect) + +proc SetCompositionString*( + self: ptr IActiveIME, + hIMC: HIMC, + dwIndex: DWORD, + pComp: pointer, + dwCompLen: DWORD, + pRead: pointer, + dwReadLen: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionString( + self, hIMC, dwIndex, pComp, dwCompLen, pRead, dwReadLen + ) + +proc ToAsciiEx*( + self: ptr IActiveIME, + uVirKey: UINT, + uScanCode: UINT, + pbKeyState: ptr BYTE, + fuState: UINT, + hIMC: HIMC, + pdwTransBuf: ptr DWORD, + puSize: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ToAsciiEx( + self, uVirKey, uScanCode, pbKeyState, fuState, hIMC, pdwTransBuf, puSize + ) + +proc mRegisterWord*( + self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterWord(self, szReading, dwStyle, szString) + +proc UnregisterWord*( + self: ptr IActiveIME, szReading: LPWSTR, dwStyle: DWORD, szString: LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterWord(self, szReading, dwStyle, szString) + +proc GetRegisterWordStyle*( + self: ptr IActiveIME, nItem: UINT, pStyleBuf: ptr STYLEBUFW, puBufSize: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRegisterWordStyle(self, nItem, pStyleBuf, puBufSize) + +proc EnumRegisterWord*( + self: ptr IActiveIME, + szReading: LPWSTR, + dwStyle: DWORD, + szRegister: LPWSTR, + pData: LPVOID, + ppEnum: ptr ptr IEnumRegisterWordW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRegisterWord(self, szReading, dwStyle, szRegister, pData, ppEnum) + +proc GetCodePageA*( + self: ptr IActiveIME, uCodePage: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCodePageA(self, uCodePage) + +proc GetLangId*(self: ptr IActiveIME, plid: ptr LANGID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLangId(self, plid) + +proc Sleep*(self: ptr IActiveIME2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Sleep(self) + +proc Unsleep*(self: ptr IActiveIME2, fDead: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unsleep(self, fDead) + +proc Clone*( + self: ptr IEnumRegisterWordA, ppEnum: ptr ptr IEnumRegisterWordA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc Next*( + self: ptr IEnumRegisterWordA, + ulCount: ULONG, + rgRegisterWord: ptr REGISTERWORDA, + pcFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, ulCount, rgRegisterWord, pcFetched) + +proc Reset*(self: ptr IEnumRegisterWordA): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Skip*(self: ptr IEnumRegisterWordA, ulCount: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, ulCount) + +proc Clone*( + self: ptr IEnumRegisterWordW, ppEnum: ptr ptr IEnumRegisterWordW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc Next*( + self: ptr IEnumRegisterWordW, + ulCount: ULONG, + rgRegisterWord: ptr REGISTERWORDW, + pcFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, ulCount, rgRegisterWord, pcFetched) + +proc Reset*(self: ptr IEnumRegisterWordW): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Skip*(self: ptr IEnumRegisterWordW, ulCount: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, ulCount) + +converter winimConverterIEnumInputContextToIUnknown*( + x: ptr IEnumInputContext +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveIMMRegistrarToIUnknown*( + x: ptr IActiveIMMRegistrar +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveIMMMessagePumpOwnerToIUnknown*( + x: ptr IActiveIMMMessagePumpOwner +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveIMMAppToIUnknown*(x: ptr IActiveIMMApp): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveIMMIMEToIUnknown*(x: ptr IActiveIMMIME): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveIMEToIUnknown*(x: ptr IActiveIME): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveIME2ToIActiveIME*(x: ptr IActiveIME2): ptr IActiveIME = + cast[ptr IActiveIME](x) + +converter winimConverterIActiveIME2ToIUnknown*(x: ptr IActiveIME2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumRegisterWordAToIUnknown*( + x: ptr IEnumRegisterWordA +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumRegisterWordWToIUnknown*( + x: ptr IEnumRegisterWordW +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type REGISTERWORD* = REGISTERWORDW @@ -897,25 +3155,93 @@ NPIMEMENUITEMINFO* = NPIMEMENUITEMINFOW LPIMEMENUITEMINFO* = LPIMEMENUITEMINFOW REGISTERWORDENUMPROC* = REGISTERWORDENUMPROCW - proc ImmInstallIME*(lpszIMEFileName: LPCWSTR, lpszLayoutText: LPCWSTR): HKL {.winapi, stdcall, dynlib: "imm32", importc: "ImmInstallIMEW".} - proc ImmGetDescription*(P1: HKL, P2: LPWSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetDescriptionW".} - proc ImmGetIMEFileName*(P1: HKL, P2: LPWSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetIMEFileNameW".} - proc ImmGetCompositionString*(P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD): LONG {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionStringW".} - proc ImmSetCompositionString*(P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionStringW".} - proc ImmGetCandidateListCount*(P1: HIMC, lpdwListCount: LPDWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListCountW".} - proc ImmGetCandidateList*(P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListW".} - proc ImmGetGuideLine*(P1: HIMC, dwIndex: DWORD, P3: LPWSTR, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetGuideLineW".} - proc ImmGetCompositionFont*(P1: HIMC, P2: LPLOGFONTW): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionFontW".} - proc ImmSetCompositionFont*(P1: HIMC, P2: LPLOGFONTW): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionFontW".} - proc ImmConfigureIME*(P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmConfigureIMEW".} - proc ImmEscape*(P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID): LRESULT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEscapeW".} - proc ImmGetConversionList*(P1: HKL, P2: HIMC, P3: LPCWSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetConversionListW".} - proc ImmIsUIMessage*(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmIsUIMessageW".} - proc ImmRegisterWord*(P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszRegister: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmRegisterWordW".} - proc ImmUnregisterWord*(P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszUnregister: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmUnregisterWordW".} - proc ImmGetRegisterWordStyle*(P1: HKL, nItem: UINT, P3: LPSTYLEBUFW): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetRegisterWordStyleW".} - proc ImmEnumRegisterWord*(P1: HKL, P2: REGISTERWORDENUMPROCW, lpszReading: LPCWSTR, P4: DWORD, lpszRegister: LPCWSTR, P6: LPVOID): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEnumRegisterWordW".} - proc ImmGetImeMenuItems*(P1: HIMC, P2: DWORD, P3: DWORD, P4: LPIMEMENUITEMINFOW, P5: LPIMEMENUITEMINFOW, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetImeMenuItemsW".} + + proc ImmInstallIME*( + lpszIMEFileName: LPCWSTR, lpszLayoutText: LPCWSTR + ): HKL {.winapi, stdcall, dynlib: "imm32", importc: "ImmInstallIMEW".} + + proc ImmGetDescription*( + P1: HKL, P2: LPWSTR, uBufLen: UINT + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetDescriptionW".} + + proc ImmGetIMEFileName*( + P1: HKL, P2: LPWSTR, uBufLen: UINT + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetIMEFileNameW".} + + proc ImmGetCompositionString*( + P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD + ): LONG {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionStringW".} + + proc ImmSetCompositionString*( + P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionStringW".} + + proc ImmGetCandidateListCount*( + P1: HIMC, lpdwListCount: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListCountW".} + + proc ImmGetCandidateList*( + P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListW".} + + proc ImmGetGuideLine*( + P1: HIMC, dwIndex: DWORD, P3: LPWSTR, dwBufLen: DWORD + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetGuideLineW".} + + proc ImmGetCompositionFont*( + P1: HIMC, P2: LPLOGFONTW + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionFontW".} + + proc ImmSetCompositionFont*( + P1: HIMC, P2: LPLOGFONTW + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionFontW".} + + proc ImmConfigureIME*( + P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmConfigureIMEW".} + + proc ImmEscape*( + P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID + ): LRESULT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEscapeW".} + + proc ImmGetConversionList*( + P1: HKL, P2: HIMC, P3: LPCWSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetConversionListW".} + + proc ImmIsUIMessage*( + P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmIsUIMessageW".} + + proc ImmRegisterWord*( + P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszRegister: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmRegisterWordW".} + + proc ImmUnregisterWord*( + P1: HKL, lpszReading: LPCWSTR, P3: DWORD, lpszUnregister: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmUnregisterWordW".} + + proc ImmGetRegisterWordStyle*( + P1: HKL, nItem: UINT, P3: LPSTYLEBUFW + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetRegisterWordStyleW".} + + proc ImmEnumRegisterWord*( + P1: HKL, + P2: REGISTERWORDENUMPROCW, + lpszReading: LPCWSTR, + P4: DWORD, + lpszRegister: LPCWSTR, + P6: LPVOID, + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEnumRegisterWordW".} + + proc ImmGetImeMenuItems*( + P1: HIMC, + P2: DWORD, + P3: DWORD, + P4: LPIMEMENUITEMINFOW, + P5: LPIMEMENUITEMINFOW, + P6: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetImeMenuItemsW".} + when winimAnsi: type REGISTERWORD* = REGISTERWORDA @@ -931,22 +3257,89 @@ NPIMEMENUITEMINFO* = NPIMEMENUITEMINFOA LPIMEMENUITEMINFO* = LPIMEMENUITEMINFOA REGISTERWORDENUMPROC* = REGISTERWORDENUMPROCA - proc ImmInstallIME*(lpszIMEFileName: LPCSTR, lpszLayoutText: LPCSTR): HKL {.winapi, stdcall, dynlib: "imm32", importc: "ImmInstallIMEA".} - proc ImmGetDescription*(P1: HKL, P2: LPSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetDescriptionA".} - proc ImmGetIMEFileName*(P1: HKL, P2: LPSTR, uBufLen: UINT): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetIMEFileNameA".} - proc ImmGetCompositionString*(P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD): LONG {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionStringA".} - proc ImmSetCompositionString*(P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionStringA".} - proc ImmGetCandidateListCount*(P1: HIMC, lpdwListCount: LPDWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListCountA".} - proc ImmGetCandidateList*(P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListA".} - proc ImmGetGuideLine*(P1: HIMC, dwIndex: DWORD, P3: LPSTR, dwBufLen: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetGuideLineA".} - proc ImmGetCompositionFont*(P1: HIMC, P2: LPLOGFONTA): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionFontA".} - proc ImmSetCompositionFont*(P1: HIMC, P2: LPLOGFONTA): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionFontA".} - proc ImmConfigureIME*(P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmConfigureIMEA".} - proc ImmEscape*(P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID): LRESULT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEscapeA".} - proc ImmGetConversionList*(P1: HKL, P2: HIMC, P3: LPCSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetConversionListA".} - proc ImmIsUIMessage*(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmIsUIMessageA".} - proc ImmRegisterWord*(P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszRegister: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmRegisterWordA".} - proc ImmUnregisterWord*(P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszUnregister: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmUnregisterWordA".} - proc ImmGetRegisterWordStyle*(P1: HKL, nItem: UINT, P3: LPSTYLEBUFA): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetRegisterWordStyleA".} - proc ImmEnumRegisterWord*(P1: HKL, P2: REGISTERWORDENUMPROCA, lpszReading: LPCSTR, P4: DWORD, lpszRegister: LPCSTR, P6: LPVOID): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEnumRegisterWordA".} - proc ImmGetImeMenuItems*(P1: HIMC, P2: DWORD, P3: DWORD, P4: LPIMEMENUITEMINFOA, P5: LPIMEMENUITEMINFOA, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetImeMenuItemsA".} + + proc ImmInstallIME*( + lpszIMEFileName: LPCSTR, lpszLayoutText: LPCSTR + ): HKL {.winapi, stdcall, dynlib: "imm32", importc: "ImmInstallIMEA".} + + proc ImmGetDescription*( + P1: HKL, P2: LPSTR, uBufLen: UINT + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetDescriptionA".} + + proc ImmGetIMEFileName*( + P1: HKL, P2: LPSTR, uBufLen: UINT + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetIMEFileNameA".} + + proc ImmGetCompositionString*( + P1: HIMC, P2: DWORD, P3: LPVOID, P4: DWORD + ): LONG {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionStringA".} + + proc ImmSetCompositionString*( + P1: HIMC, dwIndex: DWORD, lpComp: LPVOID, P4: DWORD, lpRead: LPVOID, P6: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionStringA".} + + proc ImmGetCandidateListCount*( + P1: HIMC, lpdwListCount: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListCountA".} + + proc ImmGetCandidateList*( + P1: HIMC, deIndex: DWORD, P3: LPCANDIDATELIST, dwBufLen: DWORD + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCandidateListA".} + + proc ImmGetGuideLine*( + P1: HIMC, dwIndex: DWORD, P3: LPSTR, dwBufLen: DWORD + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetGuideLineA".} + + proc ImmGetCompositionFont*( + P1: HIMC, P2: LPLOGFONTA + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetCompositionFontA".} + + proc ImmSetCompositionFont*( + P1: HIMC, P2: LPLOGFONTA + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmSetCompositionFontA".} + + proc ImmConfigureIME*( + P1: HKL, P2: HWND, P3: DWORD, P4: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmConfigureIMEA".} + + proc ImmEscape*( + P1: HKL, P2: HIMC, P3: UINT, P4: LPVOID + ): LRESULT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEscapeA".} + + proc ImmGetConversionList*( + P1: HKL, P2: HIMC, P3: LPCSTR, P4: LPCANDIDATELIST, dwBufLen: DWORD, uFlag: UINT + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetConversionListA".} + + proc ImmIsUIMessage*( + P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmIsUIMessageA".} + + proc ImmRegisterWord*( + P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszRegister: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmRegisterWordA".} + + proc ImmUnregisterWord*( + P1: HKL, lpszReading: LPCSTR, P3: DWORD, lpszUnregister: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "imm32", importc: "ImmUnregisterWordA".} + + proc ImmGetRegisterWordStyle*( + P1: HKL, nItem: UINT, P3: LPSTYLEBUFA + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetRegisterWordStyleA".} + + proc ImmEnumRegisterWord*( + P1: HKL, + P2: REGISTERWORDENUMPROCA, + lpszReading: LPCSTR, + P4: DWORD, + lpszRegister: LPCSTR, + P6: LPVOID, + ): UINT {.winapi, stdcall, dynlib: "imm32", importc: "ImmEnumRegisterWordA".} + + proc ImmGetImeMenuItems*( + P1: HIMC, + P2: DWORD, + P3: DWORD, + P4: LPIMEMENUITEMINFOA, + P5: LPIMEMENUITEMINFOA, + P6: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "imm32", importc: "ImmGetImeMenuItemsA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/iphlpapi.nim --- a/semicongine/thirdparty/winim/winim/inc/iphlpapi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/iphlpapi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -252,36 +252,41 @@ NDIS_SWITCH_NIC_INDEX* = USHORT PNDIS_SWITCH_NIC_INDEX* = ptr USHORT NL_INTERFACE_OFFLOAD_ROD* {.pure.} = object - NlChecksumSupported* {.bitsize:1.}: BOOLEAN - NlOptionsSupported* {.bitsize:1.}: BOOLEAN - TlDatagramChecksumSupported* {.bitsize:1.}: BOOLEAN - TlStreamChecksumSupported* {.bitsize:1.}: BOOLEAN - TlStreamOptionsSupported* {.bitsize:1.}: BOOLEAN - FastPathCompatible* {.bitsize:1.}: BOOLEAN - TlLargeSendOffloadSupported* {.bitsize:1.}: BOOLEAN - TlGiantSendOffloadSupported* {.bitsize:1.}: BOOLEAN + NlChecksumSupported* {.bitsize: 1.}: BOOLEAN + NlOptionsSupported* {.bitsize: 1.}: BOOLEAN + TlDatagramChecksumSupported* {.bitsize: 1.}: BOOLEAN + TlStreamChecksumSupported* {.bitsize: 1.}: BOOLEAN + TlStreamOptionsSupported* {.bitsize: 1.}: BOOLEAN + FastPathCompatible* {.bitsize: 1.}: BOOLEAN + TlLargeSendOffloadSupported* {.bitsize: 1.}: BOOLEAN + TlGiantSendOffloadSupported* {.bitsize: 1.}: BOOLEAN + PNL_INTERFACE_OFFLOAD_ROD* = ptr NL_INTERFACE_OFFLOAD_ROD NL_PATH_BANDWIDTH_ROD* {.pure.} = object Bandwidth*: ULONG64 Instability*: ULONG64 BandwidthPeaked*: BOOLEAN + PNL_PATH_BANDWIDTH_ROD* = ptr NL_PATH_BANDWIDTH_ROD NL_BANDWIDTH_INFORMATION* {.pure.} = object Bandwidth*: ULONG64 Instability*: ULONG64 BandwidthPeaked*: BOOLEAN + PNL_BANDWIDTH_INFORMATION* = ptr NL_BANDWIDTH_INFORMATION MIB_UDP6ROW* {.pure.} = object dwLocalAddr*: IN6_ADDR dwLocalScopeId*: DWORD dwLocalPort*: DWORD + PMIB_UDP6ROW* = ptr MIB_UDP6ROW -const - ANY_SIZE* = 1 + +const ANY_SIZE* = 1 type MIB_UDP6TABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_UDP6ROW] + PMIB_UDP6TABLE* = ptr MIB_UDP6TABLE MIB_TCP6ROW* {.pure.} = object State*: MIB_TCP_STATE @@ -291,10 +296,12 @@ RemoteAddr*: IN6_ADDR dwRemoteScopeId*: DWORD dwRemotePort*: DWORD + PMIB_TCP6ROW* = ptr MIB_TCP6ROW MIB_TCP6TABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCP6ROW] + PMIB_TCP6TABLE* = ptr MIB_TCP6TABLE MIB_TCP6ROW2* {.pure.} = object LocalAddr*: IN6_ADDR @@ -306,10 +313,12 @@ State*: MIB_TCP_STATE dwOwningPid*: DWORD dwOffloadState*: TCP_CONNECTION_OFFLOAD_STATE + PMIB_TCP6ROW2* = ptr MIB_TCP6ROW2 MIB_TCP6TABLE2* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCP6ROW2] + PMIB_TCP6TABLE2* = ptr MIB_TCP6TABLE2 MIB_TCPROW2* {.pure.} = object dwState*: DWORD @@ -319,18 +328,23 @@ dwRemotePort*: DWORD dwOwningPid*: DWORD dwOffloadState*: TCP_CONNECTION_OFFLOAD_STATE + PMIB_TCPROW2* = ptr MIB_TCPROW2 MIB_TCPTABLE2* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCPROW2] + PMIB_TCPTABLE2* = ptr MIB_TCPTABLE2 MIB_OPAQUE_QUERY* {.pure.} = object dwVarId*: DWORD rgdwVarIndex*: array[ANY_SIZE, DWORD] + PMIB_OPAQUE_QUERY* = ptr MIB_OPAQUE_QUERY MIB_IFNUMBER* {.pure.} = object dwValue*: DWORD + PMIB_IFNUMBER* = ptr MIB_IFNUMBER + const MAXLEN_PHYSADDR* = 8 MAXLEN_IFDESCR* = 256 @@ -360,10 +374,12 @@ dwOutQLen*: DWORD dwDescrLen*: DWORD bDescr*: array[MAXLEN_IFDESCR, BYTE] + PMIB_IFROW* = ptr MIB_IFROW MIB_IFTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IFROW] + PMIB_IFTABLE* = ptr MIB_IFTABLE MIBICMPSTATS* {.pure.} = object dwMsgs*: DWORD @@ -379,21 +395,26 @@ dwTimestampReps*: DWORD dwAddrMasks*: DWORD dwAddrMaskReps*: DWORD + PMIBICMPSTATS* = ptr MIBICMPSTATS MIBICMPINFO* {.pure.} = object icmpInStats*: MIBICMPSTATS icmpOutStats*: MIBICMPSTATS + MIB_ICMP* {.pure.} = object stats*: MIBICMPINFO + PMIB_ICMP* = ptr MIB_ICMP MIBICMPSTATS_EX* {.pure.} = object dwMsgs*: DWORD dwErrors*: DWORD rgdwTypeCount*: array[256, DWORD] + PMIBICMPSTATS_EX* = ptr MIBICMPSTATS_EX MIB_ICMP_EX* {.pure.} = object icmpInStats*: MIBICMPSTATS_EX icmpOutStats*: MIBICMPSTATS_EX + PMIB_ICMP_EX* = ptr MIB_ICMP_EX MIB_UDPSTATS* {.pure.} = object dwInDatagrams*: DWORD @@ -401,10 +422,12 @@ dwInErrors*: DWORD dwOutDatagrams*: DWORD dwNumAddrs*: DWORD + PMIB_UDPSTATS* = ptr MIB_UDPSTATS MIB_UDPROW* {.pure.} = object dwLocalAddr*: DWORD dwLocalPort*: DWORD + PMIB_UDPROW* = ptr MIB_UDPROW MIB_UDPROW_BASIC* = MIB_UDPROW PMIB_UDPROW_BASIC* = ptr MIB_UDPROW @@ -412,14 +435,16 @@ dwLocalAddr*: DWORD dwLocalPort*: DWORD dwOwningPid*: DWORD + PMIB_UDPROW_OWNER_PID* = ptr MIB_UDPROW_OWNER_PID MIB_UDPROW_OWNER_MODULE_UNION1_STRUCT1* {.pure.} = object - SpecificPortBind* {.bitsize:1.}: DWORD + SpecificPortBind* {.bitsize: 1.}: DWORD + MIB_UDPROW_OWNER_MODULE_UNION1* {.pure, union.} = object struct1*: MIB_UDPROW_OWNER_MODULE_UNION1_STRUCT1 dwFlags*: DWORD -const - TCPIP_OWNING_MODULE_SIZE* = 16 + +const TCPIP_OWNING_MODULE_SIZE* = 16 type MIB_UDPROW_OWNER_MODULE* {.pure.} = object dwLocalAddr*: DWORD @@ -428,18 +453,22 @@ liCreateTimestamp*: LARGE_INTEGER union1*: MIB_UDPROW_OWNER_MODULE_UNION1 OwningModuleInfo*: array[TCPIP_OWNING_MODULE_SIZE, ULONGLONG] + PMIB_UDPROW_OWNER_MODULE* = ptr MIB_UDPROW_OWNER_MODULE MIB_UDP6ROW_OWNER_PID* {.pure.} = object ucLocalAddr*: array[16, UCHAR] dwLocalScopeId*: DWORD dwLocalPort*: DWORD dwOwningPid*: DWORD + PMIB_UDP6ROW_OWNER_PID* = ptr MIB_UDP6ROW_OWNER_PID MIB_UDP6ROW_OWNER_MODULE_UNION1_STRUCT1* {.pure.} = object - SpecificPortBind* {.bitsize:1.}: DWORD + SpecificPortBind* {.bitsize: 1.}: DWORD + MIB_UDP6ROW_OWNER_MODULE_UNION1* {.pure, union.} = object struct1*: MIB_UDP6ROW_OWNER_MODULE_UNION1_STRUCT1 dwFlags*: DWORD + MIB_UDP6ROW_OWNER_MODULE* {.pure.} = object ucLocalAddr*: array[16, UCHAR] dwLocalScopeId*: DWORD @@ -448,28 +477,34 @@ liCreateTimestamp*: LARGE_INTEGER union1*: MIB_UDP6ROW_OWNER_MODULE_UNION1 OwningModuleInfo*: array[TCPIP_OWNING_MODULE_SIZE, ULONGLONG] + PMIB_UDP6ROW_OWNER_MODULE* = ptr MIB_UDP6ROW_OWNER_MODULE MIB_UDPTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_UDPROW] + PMIB_UDPTABLE* = ptr MIB_UDPTABLE MIB_UDPTABLE_BASIC* = MIB_UDPTABLE PMIB_UDPTABLE_BASIC* = ptr MIB_UDPTABLE MIB_UDPTABLE_OWNER_PID* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_UDPROW_OWNER_PID] + PMIB_UDPTABLE_OWNER_PID* = ptr MIB_UDPTABLE_OWNER_PID MIB_UDPTABLE_OWNER_MODULE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_UDPROW_OWNER_MODULE] + PMIB_UDPTABLE_OWNER_MODULE* = ptr MIB_UDPTABLE_OWNER_MODULE MIB_UDP6TABLE_OWNER_PID* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_UDP6ROW_OWNER_PID] + PMIB_UDP6TABLE_OWNER_PID* = ptr MIB_UDP6TABLE_OWNER_PID MIB_UDP6TABLE_OWNER_MODULE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_UDP6ROW_OWNER_MODULE] + PMIB_UDP6TABLE_OWNER_MODULE* = ptr MIB_UDP6TABLE_OWNER_MODULE MIB_TCPSTATS* {.pure.} = object dwRtoAlgorithm*: DWORD @@ -487,6 +522,7 @@ dwInErrs*: DWORD dwOutRsts*: DWORD dwNumConns*: DWORD + PMIB_TCPSTATS* = ptr MIB_TCPSTATS MIB_TCPROW* {.pure.} = object dwState*: DWORD @@ -494,6 +530,7 @@ dwLocalPort*: DWORD dwRemoteAddr*: DWORD dwRemotePort*: DWORD + PMIB_TCPROW* = ptr MIB_TCPROW MIB_TCPROW_BASIC* = MIB_TCPROW PMIB_TCPROW_BASIC* = ptr MIB_TCPROW @@ -504,6 +541,7 @@ dwRemoteAddr*: DWORD dwRemotePort*: DWORD dwOwningPid*: DWORD + PMIB_TCPROW_OWNER_PID* = ptr MIB_TCPROW_OWNER_PID MIB_TCPROW_OWNER_MODULE* {.pure.} = object dwState*: DWORD @@ -514,6 +552,7 @@ dwOwningPid*: DWORD liCreateTimestamp*: LARGE_INTEGER OwningModuleInfo*: array[TCPIP_OWNING_MODULE_SIZE, ULONGLONG] + PMIB_TCPROW_OWNER_MODULE* = ptr MIB_TCPROW_OWNER_MODULE MIB_TCP6ROW_OWNER_PID* {.pure.} = object ucLocalAddr*: array[16, UCHAR] @@ -524,6 +563,7 @@ dwRemotePort*: DWORD dwState*: DWORD dwOwningPid*: DWORD + PMIB_TCP6ROW_OWNER_PID* = ptr MIB_TCP6ROW_OWNER_PID MIB_TCP6ROW_OWNER_MODULE* {.pure.} = object ucLocalAddr*: array[16, UCHAR] @@ -536,28 +576,34 @@ dwOwningPid*: DWORD liCreateTimestamp*: LARGE_INTEGER OwningModuleInfo*: array[TCPIP_OWNING_MODULE_SIZE, ULONGLONG] + PMIB_TCP6ROW_OWNER_MODULE* = ptr MIB_TCP6ROW_OWNER_MODULE MIB_TCPTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCPROW] + PMIB_TCPTABLE* = ptr MIB_TCPTABLE MIB_TCPTABLE_BASIC* = MIB_TCPTABLE PMIB_TCPTABLE_BASIC* = ptr MIB_TCPTABLE MIB_TCPTABLE_OWNER_PID* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCPROW_OWNER_PID] + PMIB_TCPTABLE_OWNER_PID* = ptr MIB_TCPTABLE_OWNER_PID MIB_TCPTABLE_OWNER_MODULE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCPROW_OWNER_MODULE] + PMIB_TCPTABLE_OWNER_MODULE* = ptr MIB_TCPTABLE_OWNER_MODULE MIB_TCP6TABLE_OWNER_PID* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCP6ROW_OWNER_PID] + PMIB_TCP6TABLE_OWNER_PID* = ptr MIB_TCP6TABLE_OWNER_PID MIB_TCP6TABLE_OWNER_MODULE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_TCP6ROW_OWNER_MODULE] + PMIB_TCP6TABLE_OWNER_MODULE* = ptr MIB_TCP6TABLE_OWNER_MODULE MIB_IPSTATS* {.pure.} = object dwForwarding*: DWORD @@ -583,6 +629,7 @@ dwNumIf*: DWORD dwNumAddr*: DWORD dwNumRoutes*: DWORD + PMIB_IPSTATS* = ptr MIB_IPSTATS MIB_IPADDRROW* {.pure.} = object dwAddr*: DWORD @@ -592,13 +639,16 @@ dwReasmSize*: DWORD unused1*: uint16 wType*: uint16 + PMIB_IPADDRROW* = ptr MIB_IPADDRROW MIB_IPADDRTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPADDRROW] + PMIB_IPADDRTABLE* = ptr MIB_IPADDRTABLE MIB_IPFORWARDNUMBER* {.pure.} = object dwValue*: DWORD + PMIB_IPFORWARDNUMBER* = ptr MIB_IPFORWARDNUMBER MIB_IPFORWARDROW* {.pure.} = object dwForwardDest*: DWORD @@ -615,10 +665,12 @@ dwForwardMetric3*: DWORD dwForwardMetric4*: DWORD dwForwardMetric5*: DWORD + PMIB_IPFORWARDROW* = ptr MIB_IPFORWARDROW MIB_IPFORWARDTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPFORWARDROW] + PMIB_IPFORWARDTABLE* = ptr MIB_IPFORWARDTABLE MIB_IPNETROW* {.pure.} = object dwIndex*: DWORD @@ -626,16 +678,19 @@ bPhysAddr*: array[MAXLEN_PHYSADDR, BYTE] dwAddr*: DWORD dwType*: DWORD + PMIB_IPNETROW* = ptr MIB_IPNETROW MIB_IPNETTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPNETROW] + PMIB_IPNETTABLE* = ptr MIB_IPNETTABLE MIB_IPMCAST_OIF* {.pure.} = object dwOutIfIndex*: DWORD dwNextHopAddr*: DWORD dwReserved*: DWORD dwReserved1*: DWORD + PMIB_IPMCAST_OIF* = ptr MIB_IPMCAST_OIF MIB_IPMCAST_MFE* {.pure.} = object dwGroup*: DWORD @@ -654,10 +709,12 @@ fFlags*: DWORD dwReserved*: DWORD rgmioOutInfo*: array[ANY_SIZE, MIB_IPMCAST_OIF] + PMIB_IPMCAST_MFE* = ptr MIB_IPMCAST_MFE MIB_MFE_TABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPMCAST_MFE] + PMIB_MFE_TABLE* = ptr MIB_MFE_TABLE MIB_IPMCAST_OIF_STATS* {.pure.} = object dwOutIfIndex*: DWORD @@ -667,6 +724,7 @@ ulFragNeeded*: ULONG ulOutPackets*: ULONG ulOutDiscards*: ULONG + PMIB_IPMCAST_OIF_STATS* = ptr MIB_IPMCAST_OIF_STATS MIB_IPMCAST_MFE_STATS* {.pure.} = object dwGroup*: DWORD @@ -686,10 +744,12 @@ ulPktsDifferentIf*: ULONG ulQueueOverflow*: ULONG rgmiosOutStats*: array[ANY_SIZE, MIB_IPMCAST_OIF_STATS] + PMIB_IPMCAST_MFE_STATS* = ptr MIB_IPMCAST_MFE_STATS MIB_MFE_STATS_TABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPMCAST_MFE_STATS] + PMIB_MFE_STATS_TABLE* = ptr MIB_MFE_STATS_TABLE MIB_IPMCAST_MFE_STATS_EX* {.pure.} = object dwGroup*: DWORD @@ -714,13 +774,16 @@ ulInHdrErrors*: ULONG ulTotalOutPackets*: ULONG rgmiosOutStats*: array[ANY_SIZE, MIB_IPMCAST_OIF_STATS] + PMIB_IPMCAST_MFE_STATS_EX* = ptr MIB_IPMCAST_MFE_STATS_EX MIB_MFE_STATS_TABLE_EX* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPMCAST_MFE_STATS_EX] + PMIB_MFE_STATS_TABLE_EX* = ptr MIB_MFE_STATS_TABLE_EX MIB_IPMCAST_GLOBAL* {.pure.} = object dwEnable*: DWORD + PMIB_IPMCAST_GLOBAL* = ptr MIB_IPMCAST_GLOBAL MIB_IPMCAST_IF_ENTRY* {.pure.} = object dwIfIndex*: DWORD @@ -729,57 +792,68 @@ dwRateLimit*: DWORD ulInMcastOctets*: ULONG ulOutMcastOctets*: ULONG + PMIB_IPMCAST_IF_ENTRY* = ptr MIB_IPMCAST_IF_ENTRY MIB_IPMCAST_IF_TABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPMCAST_IF_ENTRY] + PMIB_IPMCAST_IF_TABLE* = ptr MIB_IPMCAST_IF_TABLE MIB_IPMCAST_BOUNDARY* {.pure.} = object dwIfIndex*: DWORD dwGroupAddress*: DWORD dwGroupMask*: DWORD dwStatus*: DWORD + PMIB_IPMCAST_BOUNDARY* = ptr MIB_IPMCAST_BOUNDARY MIB_IPMCAST_BOUNDARY_TABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPMCAST_BOUNDARY] + PMIB_IPMCAST_BOUNDARY_TABLE* = ptr MIB_IPMCAST_BOUNDARY_TABLE MIB_BOUNDARYROW* {.pure.} = object dwGroupAddress*: DWORD dwGroupMask*: DWORD + PMIB_BOUNDARYROW* = ptr MIB_BOUNDARYROW MIB_MCAST_LIMIT_ROW* {.pure.} = object dwTtl*: DWORD dwRateLimit*: DWORD + PMIB_MCAST_LIMIT_ROW* = ptr MIB_MCAST_LIMIT_ROW -const - MAX_SCOPE_NAME_LEN* = 255 + +const MAX_SCOPE_NAME_LEN* = 255 type - SCOPE_NAME_BUFFER* = array[MAX_SCOPE_NAME_LEN+1, SN_CHAR] + SCOPE_NAME_BUFFER* = array[MAX_SCOPE_NAME_LEN + 1, SN_CHAR] SCOPE_NAME* = ptr SN_CHAR MIB_IPMCAST_SCOPE* {.pure.} = object dwGroupAddress*: DWORD dwGroupMask*: DWORD snNameBuffer*: SCOPE_NAME_BUFFER dwStatus*: DWORD + PMIB_IPMCAST_SCOPE* = ptr MIB_IPMCAST_SCOPE MIB_IPDESTROW* {.pure.} = object ForwardRow*: MIB_IPFORWARDROW dwForwardPreference*: DWORD dwForwardViewSet*: DWORD + PMIB_IPDESTROW* = ptr MIB_IPDESTROW MIB_IPDESTTABLE* {.pure.} = object dwNumEntries*: DWORD table*: array[ANY_SIZE, MIB_IPDESTROW] + PMIB_IPDESTTABLE* = ptr MIB_IPDESTTABLE MIB_BEST_IF* {.pure.} = object dwDestAddr*: DWORD dwIfIndex*: DWORD + PMIB_BEST_IF* = ptr MIB_BEST_IF MIB_PROXYARP* {.pure.} = object dwAddress*: DWORD dwMask*: DWORD dwIfIndex*: DWORD + PMIB_PROXYARP* = ptr MIB_PROXYARP MIB_IFSTATUS* {.pure.} = object dwIfIndex*: DWORD @@ -787,20 +861,25 @@ dwOperationalStatus*: DWORD bMHbeatActive*: WINBOOL bMHbeatAlive*: WINBOOL + PMIB_IFSTATUS* = ptr MIB_IFSTATUS MIB_ROUTESTATE* {.pure.} = object bRoutesSetToStack*: WINBOOL + PMIB_ROUTESTATE* = ptr MIB_ROUTESTATE MIB_OPAQUE_INFO_UNION1* {.pure, union.} = object ullAlign*: ULONGLONG rgbyData*: array[1, BYTE] + MIB_OPAQUE_INFO* {.pure.} = object dwId*: DWORD union1*: MIB_OPAQUE_INFO_UNION1 + PMIB_OPAQUE_INFO* = ptr MIB_OPAQUE_INFO TCPIP_OWNER_MODULE_BASIC_INFO* {.pure.} = object pModuleName*: PWCHAR pModulePath*: PWCHAR + PTCPIP_OWNER_MODULE_BASIC_INFO* = ptr TCPIP_OWNER_MODULE_BASIC_INFO IP_OPTION_INFORMATION* {.pure.} = object Ttl*: UCHAR @@ -808,6 +887,7 @@ Flags*: UCHAR OptionsSize*: UCHAR OptionsData*: PUCHAR + PIP_OPTION_INFORMATION* = ptr IP_OPTION_INFORMATION ICMP_ECHO_REPLY* {.pure.} = object Address*: IPAddr @@ -817,45 +897,54 @@ Reserved*: USHORT Data*: PVOID Options*: IP_OPTION_INFORMATION + PICMP_ECHO_REPLY* = ptr ICMP_ECHO_REPLY ARP_SEND_REPLY* {.pure.} = object DestAddress*: IPAddr SrcAddress*: IPAddr + PARP_SEND_REPLY* = ptr ARP_SEND_REPLY TCP_RESERVE_PORT_RANGE* {.pure.} = object UpperRange*: USHORT LowerRange*: USHORT + PTCP_RESERVE_PORT_RANGE* = ptr TCP_RESERVE_PORT_RANGE -const - MAX_ADAPTER_NAME* = 128 + +const MAX_ADAPTER_NAME* = 128 type IP_ADAPTER_INDEX_MAP* {.pure.} = object Index*: ULONG Name*: array[MAX_ADAPTER_NAME, WCHAR] + PIP_ADAPTER_INDEX_MAP* = ptr IP_ADAPTER_INDEX_MAP IP_INTERFACE_INFO* {.pure.} = object NumAdapters*: LONG Adapter*: array[1, IP_ADAPTER_INDEX_MAP] + PIP_INTERFACE_INFO* = ptr IP_INTERFACE_INFO IP_UNIDIRECTIONAL_ADAPTER_ADDRESS* {.pure.} = object NumAdapters*: ULONG Address*: array[1, IPAddr] + PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS* = ptr IP_UNIDIRECTIONAL_ADAPTER_ADDRESS IP_ADAPTER_ORDER_MAP* {.pure.} = object NumAdapters*: ULONG AdapterOrder*: array[1, ULONG] + PIP_ADAPTER_ORDER_MAP* = ptr IP_ADAPTER_ORDER_MAP IP_MCAST_COUNTER_INFO* {.pure.} = object InMcastOctets*: ULONG64 OutMcastOctets*: ULONG64 InMcastPkts*: ULONG64 OutMcastPkts*: ULONG64 + PIP_MCAST_COUNTER_INFO* = ptr IP_MCAST_COUNTER_INFO IPV6_ADDRESS_EX* {.pure.} = object sin6_port*: USHORT sin6_flowinfo*: ULONG sin6_addr*: array[8, USHORT] sin6_scope_id*: ULONG + PIPV6_ADDRESS_EX* = ptr IPV6_ADDRESS_EX NET_IF_COMPARTMENT_ID* = UINT32 PNET_IF_COMPARTMENT_ID* = ptr UINT32 @@ -865,35 +954,40 @@ PIF_INDEX* = ptr NET_IFINDEX NET_IF_NETWORK_GUID* = GUID NET_LUID_Info* {.pure.} = object - Reserved* {.bitsize:24.}: ULONG64 - NetLuidIndex* {.bitsize:24.}: ULONG64 - IfType* {.bitsize:16.}: ULONG64 + Reserved* {.bitsize: 24.}: ULONG64 + NetLuidIndex* {.bitsize: 24.}: ULONG64 + IfType* {.bitsize: 16.}: ULONG64 + NET_LUID* {.pure, union.} = object Value*: ULONG64 Info*: NET_LUID_Info + PNET_LUID* = ptr NET_LUID IF_LUID* = NET_LUID PIF_LUID* = ptr NET_LUID -const - IF_MAX_STRING_SIZE* = 256 + +const IF_MAX_STRING_SIZE* = 256 type IF_COUNTED_STRING_LH* {.pure.} = object Length*: USHORT String*: array[IF_MAX_STRING_SIZE + 1, WCHAR] + PIF_COUNTED_STRING_LH* = ptr IF_COUNTED_STRING_LH IF_COUNTED_STRING* = IF_COUNTED_STRING_LH PIF_COUNTED_STRING* = ptr IF_COUNTED_STRING -const - IF_MAX_PHYS_ADDRESS_LENGTH* = 32 + +const IF_MAX_PHYS_ADDRESS_LENGTH* = 32 type IF_PHYSICAL_ADDRESS_LH* {.pure.} = object Length*: USHORT Address*: array[IF_MAX_PHYS_ADDRESS_LENGTH, UCHAR] + PIF_PHYSICAL_ADDRESS_LH* = ptr IF_PHYSICAL_ADDRESS_LH IF_PHYSICAL_ADDRESS* = IF_PHYSICAL_ADDRESS_LH PIF_PHYSICAL_ADDRESS* = ptr IF_PHYSICAL_ADDRESS IP_ADDRESS_STRING* {.pure.} = object - String*: array[4*4, char] + String*: array[4 * 4, char] + PIP_ADDRESS_STRING* = ptr IP_ADDRESS_STRING IP_MASK_STRING* = IP_ADDRESS_STRING PIP_MASK_STRING* = ptr IP_ADDRESS_STRING @@ -902,7 +996,9 @@ IpAddress*: IP_ADDRESS_STRING IpMask*: IP_MASK_STRING Context*: DWORD + PIP_ADDR_STRING* = ptr IP_ADDR_STRING + const MAX_ADAPTER_NAME_LENGTH* = 256 MAX_ADAPTER_DESCRIPTION_LENGTH* = 128 @@ -927,6 +1023,7 @@ SecondaryWinsServer*: IP_ADDR_STRING LeaseObtained*: int LeaseExpires*: int + PIP_ADAPTER_INFO* = ptr IP_ADAPTER_INFO IP_PREFIX_ORIGIN* = NL_PREFIX_ORIGIN IP_SUFFIX_ORIGIN* = NL_SUFFIX_ORIGIN @@ -934,9 +1031,11 @@ IP_ADAPTER_UNICAST_ADDRESS_XP_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Flags*: DWORD + IP_ADAPTER_UNICAST_ADDRESS_XP_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_UNICAST_ADDRESS_XP_UNION1_STRUCT1 + IP_ADAPTER_UNICAST_ADDRESS_XP* {.pure.} = object union1*: IP_ADAPTER_UNICAST_ADDRESS_XP_UNION1 Next*: ptr IP_ADAPTER_UNICAST_ADDRESS_XP @@ -947,13 +1046,16 @@ ValidLifetime*: ULONG PreferredLifetime*: ULONG LeaseLifetime*: ULONG + PIP_ADAPTER_UNICAST_ADDRESS_XP* = ptr IP_ADAPTER_UNICAST_ADDRESS_XP IP_ADAPTER_UNICAST_ADDRESS_LH_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Flags*: DWORD + IP_ADAPTER_UNICAST_ADDRESS_LH_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_UNICAST_ADDRESS_LH_UNION1_STRUCT1 + IP_ADAPTER_UNICAST_ADDRESS_LH* {.pure.} = object union1*: IP_ADAPTER_UNICAST_ADDRESS_LH_UNION1 Next*: ptr IP_ADAPTER_UNICAST_ADDRESS_LH @@ -965,117 +1067,140 @@ PreferredLifetime*: ULONG LeaseLifetime*: ULONG OnLinkPrefixLength*: UINT8 + PIP_ADAPTER_UNICAST_ADDRESS_LH* = ptr IP_ADAPTER_UNICAST_ADDRESS_LH IP_ADAPTER_UNICAST_ADDRESS* = IP_ADAPTER_UNICAST_ADDRESS_XP PIP_ADAPTER_UNICAST_ADDRESS* = ptr IP_ADAPTER_UNICAST_ADDRESS_XP IP_ADAPTER_ANYCAST_ADDRESS_XP_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Flags*: DWORD + IP_ADAPTER_ANYCAST_ADDRESS_XP_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_ANYCAST_ADDRESS_XP_UNION1_STRUCT1 + IP_ADAPTER_ANYCAST_ADDRESS_XP* {.pure.} = object union1*: IP_ADAPTER_ANYCAST_ADDRESS_XP_UNION1 Next*: ptr IP_ADAPTER_ANYCAST_ADDRESS_XP Address*: SOCKET_ADDRESS + PIP_ADAPTER_ANYCAST_ADDRESS_XP* = ptr IP_ADAPTER_ANYCAST_ADDRESS_XP IP_ADAPTER_ANYCAST_ADDRESS* = IP_ADAPTER_ANYCAST_ADDRESS_XP PIP_ADAPTER_ANYCAST_ADDRESS* = ptr IP_ADAPTER_ANYCAST_ADDRESS_XP IP_ADAPTER_MULTICAST_ADDRESS_XP_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Flags*: DWORD + IP_ADAPTER_MULTICAST_ADDRESS_XP_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_MULTICAST_ADDRESS_XP_UNION1_STRUCT1 + IP_ADAPTER_MULTICAST_ADDRESS_XP* {.pure.} = object union1*: IP_ADAPTER_MULTICAST_ADDRESS_XP_UNION1 Next*: ptr IP_ADAPTER_MULTICAST_ADDRESS_XP Address*: SOCKET_ADDRESS + PIP_ADAPTER_MULTICAST_ADDRESS_XP* = ptr IP_ADAPTER_MULTICAST_ADDRESS_XP IP_ADAPTER_MULTICAST_ADDRESS* = IP_ADAPTER_MULTICAST_ADDRESS_XP PIP_ADAPTER_MULTICAST_ADDRESS* = ptr IP_ADAPTER_MULTICAST_ADDRESS_XP IP_ADAPTER_DNS_SERVER_ADDRESS_XP_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Reserved*: DWORD + IP_ADAPTER_DNS_SERVER_ADDRESS_XP_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_DNS_SERVER_ADDRESS_XP_UNION1_STRUCT1 + IP_ADAPTER_DNS_SERVER_ADDRESS_XP* {.pure.} = object union1*: IP_ADAPTER_DNS_SERVER_ADDRESS_XP_UNION1 Next*: ptr IP_ADAPTER_DNS_SERVER_ADDRESS_XP Address*: SOCKET_ADDRESS + PIP_ADAPTER_DNS_SERVER_ADDRESS_XP* = ptr IP_ADAPTER_DNS_SERVER_ADDRESS_XP IP_ADAPTER_DNS_SERVER_ADDRESS* = IP_ADAPTER_DNS_SERVER_ADDRESS_XP PIP_ADAPTER_DNS_SERVER_ADDRESS* = ptr IP_ADAPTER_DNS_SERVER_ADDRESS_XP IP_ADAPTER_PREFIX_XP_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Flags*: DWORD + IP_ADAPTER_PREFIX_XP_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_PREFIX_XP_UNION1_STRUCT1 + IP_ADAPTER_PREFIX_XP* {.pure.} = object union1*: IP_ADAPTER_PREFIX_XP_UNION1 Next*: ptr IP_ADAPTER_PREFIX_XP Address*: SOCKET_ADDRESS PrefixLength*: ULONG + PIP_ADAPTER_PREFIX_XP* = ptr IP_ADAPTER_PREFIX_XP IP_ADAPTER_PREFIX* = IP_ADAPTER_PREFIX_XP PIP_ADAPTER_PREFIX* = ptr IP_ADAPTER_PREFIX_XP IP_ADAPTER_WINS_SERVER_ADDRESS_LH_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Reserved*: DWORD + IP_ADAPTER_WINS_SERVER_ADDRESS_LH_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_WINS_SERVER_ADDRESS_LH_UNION1_STRUCT1 + IP_ADAPTER_WINS_SERVER_ADDRESS_LH* {.pure.} = object union1*: IP_ADAPTER_WINS_SERVER_ADDRESS_LH_UNION1 Next*: ptr IP_ADAPTER_WINS_SERVER_ADDRESS_LH Address*: SOCKET_ADDRESS + PIP_ADAPTER_WINS_SERVER_ADDRESS_LH* = ptr IP_ADAPTER_WINS_SERVER_ADDRESS_LH IP_ADAPTER_WINS_SERVER_ADDRESS* = IP_ADAPTER_WINS_SERVER_ADDRESS_LH PIP_ADAPTER_WINS_SERVER_ADDRESS* = ptr IP_ADAPTER_WINS_SERVER_ADDRESS_LH IP_ADAPTER_GATEWAY_ADDRESS_LH_UNION1_STRUCT1* {.pure.} = object Length*: ULONG Reserved*: DWORD + IP_ADAPTER_GATEWAY_ADDRESS_LH_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_GATEWAY_ADDRESS_LH_UNION1_STRUCT1 + IP_ADAPTER_GATEWAY_ADDRESS_LH* {.pure.} = object union1*: IP_ADAPTER_GATEWAY_ADDRESS_LH_UNION1 Next*: ptr IP_ADAPTER_GATEWAY_ADDRESS_LH Address*: SOCKET_ADDRESS + PIP_ADAPTER_GATEWAY_ADDRESS_LH* = ptr IP_ADAPTER_GATEWAY_ADDRESS_LH IP_ADAPTER_GATEWAY_ADDRESS* = IP_ADAPTER_GATEWAY_ADDRESS_LH PIP_ADAPTER_GATEWAY_ADDRESS* = ptr IP_ADAPTER_GATEWAY_ADDRESS_LH -const - MAX_DNS_SUFFIX_STRING_LENGTH* = 256 + +const MAX_DNS_SUFFIX_STRING_LENGTH* = 256 type IP_ADAPTER_DNS_SUFFIX* {.pure.} = object Next*: ptr IP_ADAPTER_DNS_SUFFIX String*: array[MAX_DNS_SUFFIX_STRING_LENGTH, WCHAR] + PIP_ADAPTER_DNS_SUFFIX* = ptr IP_ADAPTER_DNS_SUFFIX IP_ADAPTER_ADDRESSES_LH_UNION1_STRUCT1* {.pure.} = object Length*: ULONG IfIndex*: IF_INDEX + IP_ADAPTER_ADDRESSES_LH_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_ADDRESSES_LH_UNION1_STRUCT1 + IP_ADAPTER_ADDRESSES_LH_UNION2_STRUCT1* {.pure.} = object - DdnsEnabled* {.bitsize:1.}: ULONG - RegisterAdapterSuffix* {.bitsize:1.}: ULONG - Dhcpv4Enabled* {.bitsize:1.}: ULONG - ReceiveOnly* {.bitsize:1.}: ULONG - NoMulticast* {.bitsize:1.}: ULONG - Ipv6OtherStatefulConfig* {.bitsize:1.}: ULONG - NetbiosOverTcpipEnabled* {.bitsize:1.}: ULONG - Ipv4Enabled* {.bitsize:1.}: ULONG - Ipv6Enabled* {.bitsize:1.}: ULONG - Ipv6ManagedAddressConfigurationSupported* {.bitsize:1.}: ULONG + DdnsEnabled* {.bitsize: 1.}: ULONG + RegisterAdapterSuffix* {.bitsize: 1.}: ULONG + Dhcpv4Enabled* {.bitsize: 1.}: ULONG + ReceiveOnly* {.bitsize: 1.}: ULONG + NoMulticast* {.bitsize: 1.}: ULONG + Ipv6OtherStatefulConfig* {.bitsize: 1.}: ULONG + NetbiosOverTcpipEnabled* {.bitsize: 1.}: ULONG + Ipv4Enabled* {.bitsize: 1.}: ULONG + Ipv6Enabled* {.bitsize: 1.}: ULONG + Ipv6ManagedAddressConfigurationSupported* {.bitsize: 1.}: ULONG + IP_ADAPTER_ADDRESSES_LH_UNION2* {.pure, union.} = object Flags*: ULONG struct1*: IP_ADAPTER_ADDRESSES_LH_UNION2_STRUCT1 -const - MAX_DHCPV6_DUID_LENGTH* = 130 + +const MAX_DHCPV6_DUID_LENGTH* = 130 type IP_ADAPTER_ADDRESSES_LH* {.pure.} = object union1*: IP_ADAPTER_ADDRESSES_LH_UNION1 @@ -1114,13 +1239,16 @@ Dhcpv6ClientDuidLength*: ULONG Dhcpv6Iaid*: ULONG FirstDnsSuffix*: PIP_ADAPTER_DNS_SUFFIX + PIP_ADAPTER_ADDRESSES_LH* = ptr IP_ADAPTER_ADDRESSES_LH IP_ADAPTER_ADDRESSES_XP_UNION1_STRUCT1* {.pure.} = object Length*: ULONG IfIndex*: DWORD + IP_ADAPTER_ADDRESSES_XP_UNION1* {.pure, union.} = object Alignment*: ULONGLONG struct1*: IP_ADAPTER_ADDRESSES_XP_UNION1_STRUCT1 + IP_ADAPTER_ADDRESSES_XP* {.pure.} = object union1*: IP_ADAPTER_ADDRESSES_XP_UNION1 Next*: ptr IP_ADAPTER_ADDRESSES_XP @@ -1141,6 +1269,7 @@ Ipv6IfIndex*: DWORD ZoneIndices*: array[16, DWORD] FirstPrefix*: PIP_ADAPTER_PREFIX_XP + PIP_ADAPTER_ADDRESSES_XP* = ptr IP_ADAPTER_ADDRESSES_XP IP_ADAPTER_ADDRESSES* = IP_ADAPTER_ADDRESSES_XP PIP_ADAPTER_ADDRESSES* = ptr IP_ADAPTER_ADDRESSES_XP @@ -1149,7 +1278,9 @@ AutoconfigActive*: UINT CurrentDnsServer*: PIP_ADDR_STRING DnsServerList*: IP_ADDR_STRING + PIP_PER_ADAPTER_INFO* = ptr IP_PER_ADAPTER_INFO + const MAX_HOSTNAME_LEN* = 128 MAX_DOMAIN_NAME_LEN* = 128 @@ -1165,6 +1296,7 @@ EnableRouting*: UINT EnableProxy*: UINT EnableDns*: UINT + PFIXED_INFO* = ptr FIXED_INFO IP_INTERFACE_NAME_INFO* {.pure.} = object Index*: ULONG @@ -1173,6 +1305,7 @@ AccessType*: UCHAR DeviceGuid*: GUID InterfaceGuid*: GUID + PIP_INTERFACE_NAME_INFO* = ptr IP_INTERFACE_NAME_INFO TCP_ESTATS_BANDWIDTH_ROD_v0* {.pure.} = object OutboundBandwidth*: ULONG64 @@ -1181,10 +1314,12 @@ InboundInstability*: ULONG64 OutboundBandwidthPeaked*: BOOLEAN InboundBandwidthPeaked*: BOOLEAN + PTCP_ESTATS_BANDWIDTH_ROD_v0* = ptr TCP_ESTATS_BANDWIDTH_ROD_v0 TCP_ESTATS_BANDWIDTH_RW_v0* {.pure.} = object EnableCollectionOutbound*: TCP_BOOLEAN_OPTIONAL EnableCollectionInbound*: TCP_BOOLEAN_OPTIONAL + PTCP_ESTATS_BANDWIDTH_RW_v0* = ptr TCP_ESTATS_BANDWIDTH_RW_v0 TCP_ESTATS_DATA_ROD_v0* {.pure.} = object DataBytesOut*: ULONG64 @@ -1201,27 +1336,33 @@ ThruBytesAcked*: ULONG64 RcvNxt*: ULONG ThruBytesReceived*: ULONG64 + PTCP_ESTATS_DATA_ROD_v0* = ptr TCP_ESTATS_DATA_ROD_v0 TCP_ESTATS_DATA_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_DATA_RW_v0* = ptr TCP_ESTATS_DATA_RW_v0 TCP_ESTATS_FINE_RTT_ROD_v0* {.pure.} = object RttVar*: ULONG MaxRtt*: ULONG MinRtt*: ULONG SumRtt*: ULONG + PTCP_ESTATS_FINE_RTT_ROD_v0* = ptr TCP_ESTATS_FINE_RTT_ROD_v0 TCP_ESTATS_FINE_RTT_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_FINE_RTT_RW_v0* = ptr TCP_ESTATS_FINE_RTT_RW_v0 TCP_ESTATS_OBS_REC_ROD_v0* {.pure.} = object CurRwinRcvd*: ULONG MaxRwinRcvd*: ULONG MinRwinRcvd*: ULONG WinScaleRcvd*: UCHAR + PTCP_ESTATS_OBS_REC_ROD_v0* = ptr TCP_ESTATS_OBS_REC_ROD_v0 TCP_ESTATS_OBS_REC_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_OBS_REC_RW_v0* = ptr TCP_ESTATS_OBS_REC_RW_v0 TCP_ESTATS_PATH_ROD_v0* {.pure.} = object FastRetran*: ULONG @@ -1264,9 +1405,11 @@ MaxMss*: ULONG MinMss*: ULONG SpuriousRtoDetections*: ULONG + PTCP_ESTATS_PATH_ROD_v0* = ptr TCP_ESTATS_PATH_ROD_v0 TCP_ESTATS_PATH_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_PATH_RW_v0* = ptr TCP_ESTATS_PATH_RW_v0 TCP_ESTATS_REC_ROD_v0* {.pure.} = object CurRwinSent*: ULONG @@ -1283,18 +1426,22 @@ CurAppRQueue*: SIZE_T MaxAppRQueue*: SIZE_T WinScaleSent*: UCHAR + PTCP_ESTATS_REC_ROD_v0* = ptr TCP_ESTATS_REC_ROD_v0 TCP_ESTATS_REC_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_REC_RW_v0* = ptr TCP_ESTATS_REC_RW_v0 TCP_ESTATS_SEND_BUFF_ROD_v0* {.pure.} = object CurRetxQueue*: SIZE_T MaxRetxQueue*: SIZE_T CurAppWQueue*: SIZE_T MaxAppWQueue*: SIZE_T + PTCP_ESTATS_SEND_BUFF_ROD_v0* = ptr TCP_ESTATS_SEND_BUFF_ROD_v0 TCP_ESTATS_SEND_BUFF_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_SEND_BUFF_RW_v0* = ptr TCP_ESTATS_SEND_BUFF_RW_v0 TCP_ESTATS_SND_CONG_ROD_v0* {.pure.} = object SndLimTransRwin*: ULONG @@ -1315,55 +1462,69 @@ CurSsthresh*: ULONG MaxSsthresh*: ULONG MinSsthresh*: ULONG + PTCP_ESTATS_SND_CONG_ROD_v0* = ptr TCP_ESTATS_SND_CONG_ROD_v0 TCP_ESTATS_SND_CONG_ROS_v0* {.pure.} = object LimCwnd*: ULONG + PTCP_ESTATS_SND_CONG_ROS_v0* = ptr TCP_ESTATS_SND_CONG_ROS_v0 TCP_ESTATS_SND_CONG_RW_v0* {.pure.} = object EnableCollection*: BOOLEAN + PTCP_ESTATS_SND_CONG_RW_v0* = ptr TCP_ESTATS_SND_CONG_RW_v0 TCP_ESTATS_SYN_OPTS_ROS_v0* {.pure.} = object ActiveOpen*: BOOLEAN MssRcvd*: ULONG MssSent*: ULONG + PTCP_ESTATS_SYN_OPTS_ROS_v0* = ptr TCP_ESTATS_SYN_OPTS_ROS_v0 NET_ADDRESS_INFO_UNION1_NamedAddress* {.pure.} = object Address*: array[DNS_MAX_NAME_BUFFER_LENGTH, WCHAR] Port*: array[6, WCHAR] + NET_ADDRESS_INFO_UNION1* {.pure, union.} = object NamedAddress*: NET_ADDRESS_INFO_UNION1_NamedAddress Ipv4Address*: SOCKADDR_IN Ipv6Address*: SOCKADDR_IN6 IpAddress*: SOCKADDR + NET_ADDRESS_INFO* {.pure.} = object Format*: NET_ADDRESS_FORMAT union1*: NET_ADDRESS_INFO_UNION1 + PNET_ADDRESS_INFO* = ptr NET_ADDRESS_INFO IConnectionRequestCallback* {.pure.} = object lpVtbl*: ptr IConnectionRequestCallbackVtbl + IConnectionRequestCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnComplete*: proc(self: ptr IConnectionRequestCallback, hrStatus: HRESULT): HRESULT {.stdcall.} + OnComplete*: + proc(self: ptr IConnectionRequestCallback, hrStatus: HRESULT): HRESULT {.stdcall.} + ILocationReport* = IConnectionRequestCallback NDIS_STATISTICS_VALUE* {.pure.} = object Oid*: NDIS_OID DataLength*: ULONG Data*: array[1, UCHAR] + PNDIS_STATISTICS_VALUE* = ptr NDIS_STATISTICS_VALUE NDIS_STATISTICS_VALUE_EX* {.pure.} = object Oid*: NDIS_OID DataLength*: ULONG Length*: ULONG Data*: array[1, UCHAR] + PNDIS_STATISTICS_VALUE_EX* = ptr NDIS_STATISTICS_VALUE_EX NDIS_VAR_DATA_DESC* {.pure.} = object Length*: USHORT MaximumLength*: USHORT Offset*: ULONG_PTR + PNDIS_VAR_DATA_DESC* = ptr NDIS_VAR_DATA_DESC NDIS_OBJECT_HEADER* {.pure.} = object Type*: UCHAR Revision*: UCHAR Size*: USHORT + PNDIS_OBJECT_HEADER* = ptr NDIS_OBJECT_HEADER NDIS_STATISTICS_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -1386,6 +1547,7 @@ ifHCOutUcastOctets*: ULONG64 ifHCOutMulticastOctets*: ULONG64 ifHCOutBroadcastOctets*: ULONG64 + PNDIS_STATISTICS_INFO* = ptr NDIS_STATISTICS_INFO NDIS_RSC_STATISTICS_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -1393,17 +1555,20 @@ CoalescedOctets*: ULONG64 CoalesceEvents*: ULONG64 Aborts*: ULONG64 + PNDIS_RSC_STATISTICS_INFO* = ptr NDIS_RSC_STATISTICS_INFO NDIS_INTERRUPT_MODERATION_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG InterruptModeration*: NDIS_INTERRUPT_MODERATION + PNDIS_INTERRUPT_MODERATION_PARAMETERS* = ptr NDIS_INTERRUPT_MODERATION_PARAMETERS NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG TimeoutArrayLength*: ULONG TimeoutArray*: array[1, ULONG] + PNDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES* = ptr NDIS_TIMEOUT_DPC_REQUEST_CAPABILITIES NDIS_PCI_DEVICE_CUSTOM_PROPERTIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -1419,34 +1584,41 @@ PciExpressVersion*: UINT32 InterruptType*: UINT32 MaxInterruptMessages*: UINT32 + PNDIS_PCI_DEVICE_CUSTOM_PROPERTIES* = ptr NDIS_PCI_DEVICE_CUSTOM_PROPERTIES NDIS_802_11_MAC_ADDRESS* = array[6, UCHAR] NDIS_802_11_STATUS_INDICATION* {.pure.} = object StatusType*: NDIS_802_11_STATUS_TYPE + PNDIS_802_11_STATUS_INDICATION* = ptr NDIS_802_11_STATUS_INDICATION NDIS_802_11_AUTHENTICATION_REQUEST* {.pure.} = object Length*: ULONG Bssid*: NDIS_802_11_MAC_ADDRESS Flags*: ULONG + PNDIS_802_11_AUTHENTICATION_REQUEST* = ptr NDIS_802_11_AUTHENTICATION_REQUEST PMKID_CANDIDATE* {.pure.} = object BSSID*: NDIS_802_11_MAC_ADDRESS Flags*: ULONG + PPMKID_CANDIDATE* = ptr PMKID_CANDIDATE NDIS_802_11_PMKID_CANDIDATE_LIST* {.pure.} = object Version*: ULONG NumCandidates*: ULONG CandidateList*: array[1, PMKID_CANDIDATE] + PNDIS_802_11_PMKID_CANDIDATE_LIST* = ptr NDIS_802_11_PMKID_CANDIDATE_LIST NDIS_802_11_NETWORK_TYPE_LIST* {.pure.} = object NumberOfItems*: ULONG NetworkType*: array[1, NDIS_802_11_NETWORK_TYPE] + PNDIS_802_11_NETWORK_TYPE_LIST* = ptr NDIS_802_11_NETWORK_TYPE_LIST NDIS_802_11_CONFIGURATION_FH* {.pure.} = object Length*: ULONG HopPattern*: ULONG HopSet*: ULONG DwellTime*: ULONG + PNDIS_802_11_CONFIGURATION_FH* = ptr NDIS_802_11_CONFIGURATION_FH NDIS_802_11_CONFIGURATION* {.pure.} = object Length*: ULONG @@ -1454,6 +1626,7 @@ ATIMWindow*: ULONG DSConfig*: ULONG FHConfig*: NDIS_802_11_CONFIGURATION_FH + PNDIS_802_11_CONFIGURATION* = ptr NDIS_802_11_CONFIGURATION NDIS_802_11_STATISTICS* {.pure.} = object Length*: ULONG @@ -1481,6 +1654,7 @@ WEPICVErrorCount*: LARGE_INTEGER DecryptSuccessCount*: LARGE_INTEGER DecryptFailureCount*: LARGE_INTEGER + PNDIS_802_11_STATISTICS* = ptr NDIS_802_11_STATISTICS NDIS_802_11_KEY* {.pure.} = object Length*: ULONG @@ -1489,32 +1663,32 @@ BSSID*: NDIS_802_11_MAC_ADDRESS KeyRSC*: NDIS_802_11_KEY_RSC KeyMaterial*: array[1, UCHAR] + PNDIS_802_11_KEY* = ptr NDIS_802_11_KEY NDIS_802_11_REMOVE_KEY* {.pure.} = object Length*: ULONG KeyIndex*: ULONG BSSID*: NDIS_802_11_MAC_ADDRESS + PNDIS_802_11_REMOVE_KEY* = ptr NDIS_802_11_REMOVE_KEY NDIS_802_11_WEP* {.pure.} = object Length*: ULONG KeyIndex*: ULONG KeyLength*: ULONG KeyMaterial*: array[1, UCHAR] + PNDIS_802_11_WEP* = ptr NDIS_802_11_WEP -const - NDIS_802_11_LENGTH_RATES* = 8 -type - NDIS_802_11_RATES* = array[NDIS_802_11_LENGTH_RATES, UCHAR] -const - NDIS_802_11_LENGTH_RATES_EX* = 16 -type - NDIS_802_11_RATES_EX* = array[NDIS_802_11_LENGTH_RATES_EX, UCHAR] -const - NDIS_802_11_LENGTH_SSID* = 32 + +const NDIS_802_11_LENGTH_RATES* = 8 +type NDIS_802_11_RATES* = array[NDIS_802_11_LENGTH_RATES, UCHAR] +const NDIS_802_11_LENGTH_RATES_EX* = 16 +type NDIS_802_11_RATES_EX* = array[NDIS_802_11_LENGTH_RATES_EX, UCHAR] +const NDIS_802_11_LENGTH_SSID* = 32 type NDIS_802_11_SSID* {.pure.} = object SsidLength*: ULONG Ssid*: array[NDIS_802_11_LENGTH_SSID, UCHAR] + PNDIS_802_11_SSID* = ptr NDIS_802_11_SSID NDIS_WLAN_BSSID* {.pure.} = object Length*: ULONG @@ -1527,10 +1701,12 @@ Configuration*: NDIS_802_11_CONFIGURATION InfrastructureMode*: NDIS_802_11_NETWORK_INFRASTRUCTURE SupportedRates*: NDIS_802_11_RATES + PNDIS_WLAN_BSSID* = ptr NDIS_WLAN_BSSID NDIS_802_11_BSSID_LIST* {.pure.} = object NumberOfItems*: ULONG Bssid*: array[1, NDIS_WLAN_BSSID] + PNDIS_802_11_BSSID_LIST* = ptr NDIS_802_11_BSSID_LIST NDIS_WLAN_BSSID_EX* {.pure.} = object Length*: ULONG @@ -1545,30 +1721,36 @@ SupportedRates*: NDIS_802_11_RATES_EX IELength*: ULONG IEs*: array[1, UCHAR] + PNDIS_WLAN_BSSID_EX* = ptr NDIS_WLAN_BSSID_EX NDIS_802_11_BSSID_LIST_EX* {.pure.} = object NumberOfItems*: ULONG Bssid*: array[1, NDIS_WLAN_BSSID_EX] + PNDIS_802_11_BSSID_LIST_EX* = ptr NDIS_802_11_BSSID_LIST_EX NDIS_802_11_FIXED_IEs* {.pure.} = object Timestamp*: array[8, UCHAR] BeaconInterval*: USHORT Capabilities*: USHORT + PNDIS_802_11_FIXED_IEs* = ptr NDIS_802_11_FIXED_IEs NDIS_802_11_VARIABLE_IEs* {.pure.} = object ElementID*: UCHAR Length*: UCHAR data*: array[1, UCHAR] + PNDIS_802_11_VARIABLE_IEs* = ptr NDIS_802_11_VARIABLE_IEs NDIS_802_11_AI_REQFI* {.pure.} = object Capabilities*: USHORT ListenInterval*: USHORT CurrentAPAddress*: NDIS_802_11_MAC_ADDRESS + PNDIS_802_11_AI_REQFI* = ptr NDIS_802_11_AI_REQFI NDIS_802_11_AI_RESFI* {.pure.} = object Capabilities*: USHORT StatusCode*: USHORT AssociationId*: USHORT + PNDIS_802_11_AI_RESFI* = ptr NDIS_802_11_AI_RESFI NDIS_802_11_ASSOCIATION_INFORMATION* {.pure.} = object Length*: ULONG @@ -1580,32 +1762,39 @@ ResponseFixedIEs*: NDIS_802_11_AI_RESFI ResponseIELength*: ULONG OffsetResponseIEs*: ULONG + PNDIS_802_11_ASSOCIATION_INFORMATION* = ptr NDIS_802_11_ASSOCIATION_INFORMATION NDIS_802_11_AUTHENTICATION_EVENT* {.pure.} = object Status*: NDIS_802_11_STATUS_INDICATION Request*: array[1, NDIS_802_11_AUTHENTICATION_REQUEST] + PNDIS_802_11_AUTHENTICATION_EVENT* = ptr NDIS_802_11_AUTHENTICATION_EVENT NDIS_802_11_TEST_UNION1* {.pure, union.} = object AuthenticationEvent*: NDIS_802_11_AUTHENTICATION_EVENT RssiTrigger*: NDIS_802_11_RSSI + NDIS_802_11_TEST* {.pure.} = object Length*: ULONG Type*: ULONG union1*: NDIS_802_11_TEST_UNION1 + PNDIS_802_11_TEST* = ptr NDIS_802_11_TEST NDIS_802_11_PMKID_VALUE* = array[16, UCHAR] BSSID_INFO* {.pure.} = object BSSID*: NDIS_802_11_MAC_ADDRESS PMKID*: NDIS_802_11_PMKID_VALUE + PBSSID_INFO* = ptr BSSID_INFO NDIS_802_11_PMKID* {.pure.} = object Length*: ULONG BSSIDInfoCount*: ULONG BSSIDInfo*: array[1, BSSID_INFO] + PNDIS_802_11_PMKID* = ptr NDIS_802_11_PMKID NDIS_802_11_AUTHENTICATION_ENCRYPTION* {.pure.} = object AuthModeSupported*: NDIS_802_11_AUTHENTICATION_MODE EncryptStatusSupported*: NDIS_802_11_ENCRYPTION_STATUS + PNDIS_802_11_AUTHENTICATION_ENCRYPTION* = ptr NDIS_802_11_AUTHENTICATION_ENCRYPTION NDIS_802_11_CAPABILITY* {.pure.} = object Length*: ULONG @@ -1613,10 +1802,12 @@ NoOfPMKIDs*: ULONG NoOfAuthEncryptPairsSupported*: ULONG AuthenticationEncryptionSupported*: array[1, NDIS_802_11_AUTHENTICATION_ENCRYPTION] + PNDIS_802_11_CAPABILITY* = ptr NDIS_802_11_CAPABILITY NDIS_802_11_NON_BCAST_SSID_LIST* {.pure.} = object NumberOfItems*: ULONG Non_Bcast_Ssid*: array[1, NDIS_802_11_SSID] + PNDIS_802_11_NON_BCAST_SSID_LIST* = ptr NDIS_802_11_NON_BCAST_SSID_LIST NDIS_CO_DEVICE_PROFILE* {.pure.} = object DeviceDescription*: NDIS_VAR_DATA_DESC @@ -1647,11 +1838,13 @@ ulUUIDropSize*: ULONG ulUUISendUserUserInfoSize*: ULONG ulUUICallInfoSize*: ULONG + PNDIS_CO_DEVICE_PROFILE* = ptr NDIS_CO_DEVICE_PROFILE OFFLOAD_ALGO_INFO* {.pure.} = object algoIdentifier*: ULONG algoKeylen*: ULONG algoRounds*: ULONG + POFFLOAD_ALGO_INFO* = ptr OFFLOAD_ALGO_INFO OFFLOAD_SECURITY_ASSOCIATION* {.pure.} = object Operation*: OFFLOAD_OPERATION_E @@ -1659,9 +1852,10 @@ IntegrityAlgo*: OFFLOAD_ALGO_INFO ConfAlgo*: OFFLOAD_ALGO_INFO Reserved*: OFFLOAD_ALGO_INFO + POFFLOAD_SECURITY_ASSOCIATION* = ptr OFFLOAD_SECURITY_ASSOCIATION -const - OFFLOAD_MAX_SAS* = 3 + +const OFFLOAD_MAX_SAS* = 3 type OFFLOAD_IPSEC_ADD_SA* {.pure.} = object SrcAddr*: IPAddr @@ -1679,13 +1873,16 @@ OffloadHandle*: HANDLE KeyLen*: ULONG KeyMat*: array[1, UCHAR] + POFFLOAD_IPSEC_ADD_SA* = ptr OFFLOAD_IPSEC_ADD_SA OFFLOAD_IPSEC_DELETE_SA* {.pure.} = object OffloadHandle*: HANDLE + POFFLOAD_IPSEC_DELETE_SA* = ptr OFFLOAD_IPSEC_DELETE_SA OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY* {.pure.} = object UdpEncapType*: UDP_ENCAP_TYPE DstEncapPort*: USHORT + POFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY* = ptr OFFLOAD_IPSEC_UDPESP_ENCAPTYPE_ENTRY OFFLOAD_IPSEC_ADD_UDPESP_SA* {.pure.} = object SrcAddr*: IPAddr @@ -1705,41 +1902,50 @@ EncapTypeEntryOffldHandle*: HANDLE KeyLen*: ULONG KeyMat*: array[1, UCHAR] + POFFLOAD_IPSEC_ADD_UDPESP_SA* = ptr OFFLOAD_IPSEC_ADD_UDPESP_SA OFFLOAD_IPSEC_DELETE_UDPESP_SA* {.pure.} = object OffloadHandle*: HANDLE EncapTypeEntryOffldHandle*: HANDLE + POFFLOAD_IPSEC_DELETE_UDPESP_SA* = ptr OFFLOAD_IPSEC_DELETE_UDPESP_SA TRANSPORT_HEADER_OFFSET* {.pure.} = object ProtocolType*: USHORT HeaderOffset*: USHORT + PTRANSPORT_HEADER_OFFSET* = ptr TRANSPORT_HEADER_OFFSET NETWORK_ADDRESS* {.pure.} = object AddressLength*: USHORT AddressType*: USHORT Address*: array[1, UCHAR] + PNETWORK_ADDRESS* = ptr NETWORK_ADDRESS NETWORK_ADDRESS_LIST* {.pure.} = object AddressCount*: LONG AddressType*: USHORT Address*: array[1, NETWORK_ADDRESS] + PNETWORK_ADDRESS_LIST* = ptr NETWORK_ADDRESS_LIST NETWORK_ADDRESS_IP* {.pure.} = object sin_port*: USHORT in_addr*: ULONG sin_zero*: array[8, UCHAR] + PNETWORK_ADDRESS_IP* = ptr NETWORK_ADDRESS_IP NETWORK_ADDRESS_IPX* {.pure.} = object NetworkAddress*: ULONG NodeAddress*: array[6, UCHAR] Socket*: USHORT + PNETWORK_ADDRESS_IPX* = ptr NETWORK_ADDRESS_IPX GEN_GET_TIME_CAPS* {.pure.} = object Flags*: ULONG ClockPrecision*: ULONG + PGEN_GET_TIME_CAPS* = ptr GEN_GET_TIME_CAPS GEN_GET_NETCARD_TIME* {.pure.} = object ReadTime*: ULONGLONG + PGEN_GET_NETCARD_TIME* = ptr GEN_GET_NETCARD_TIME NDIS_PM_PACKET_PATTERN* {.pure.} = object Priority*: ULONG @@ -1748,40 +1954,49 @@ PatternOffset*: ULONG PatternSize*: ULONG PatternFlags*: ULONG + PNDIS_PM_PACKET_PATTERN* = ptr NDIS_PM_PACKET_PATTERN NDIS_PM_WAKE_UP_CAPABILITIES* {.pure.} = object MinMagicPacketWakeUp*: NDIS_DEVICE_POWER_STATE MinPatternWakeUp*: NDIS_DEVICE_POWER_STATE MinLinkChangeWakeUp*: NDIS_DEVICE_POWER_STATE + PNDIS_PM_WAKE_UP_CAPABILITIES* = ptr NDIS_PM_WAKE_UP_CAPABILITIES NDIS_PNP_CAPABILITIES* {.pure.} = object Flags*: ULONG WakeUpCapabilities*: NDIS_PM_WAKE_UP_CAPABILITIES + PNDIS_PNP_CAPABILITIES* = ptr NDIS_PNP_CAPABILITIES NDIS_WAN_PROTOCOL_CAPS* {.pure.} = object Flags*: ULONG Reserved*: ULONG + PNDIS_WAN_PROTOCOL_CAPS* = ptr NDIS_WAN_PROTOCOL_CAPS NDIS_CO_LINK_SPEED* {.pure.} = object Outbound*: ULONG Inbound*: ULONG + PNDIS_CO_LINK_SPEED* = ptr NDIS_CO_LINK_SPEED NDIS_LINK_SPEED* {.pure.} = object XmitLinkSpeed*: ULONG64 RcvLinkSpeed*: ULONG64 + PNDIS_LINK_SPEED* = ptr NDIS_LINK_SPEED NDIS_GUID_UNION1* {.pure, union.} = object Oid*: NDIS_OID Status*: NDIS_STATUS + NDIS_GUID* {.pure.} = object Guid*: GUID union1*: NDIS_GUID_UNION1 Size*: ULONG Flags*: ULONG + PNDIS_GUID* = ptr NDIS_GUID NDIS_IRDA_PACKET_INFO* {.pure.} = object ExtraBOFs*: ULONG MinTurnAroundTime*: ULONG + PNDIS_IRDA_PACKET_INFO* = ptr NDIS_IRDA_PACKET_INFO NDIS_IF_COUNTED_STRING* = IF_COUNTED_STRING PNDIS_IF_COUNTED_STRING* = ptr IF_COUNTED_STRING @@ -1799,6 +2014,7 @@ RcvLinkSpeed*: ULONG64 PauseFunctions*: NDIS_SUPPORTED_PAUSE_FUNCTIONS AutoNegotiationFlags*: ULONG + PNDIS_LINK_STATE* = ptr NDIS_LINK_STATE NDIS_LINK_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -1807,37 +2023,45 @@ RcvLinkSpeed*: ULONG64 PauseFunctions*: NDIS_SUPPORTED_PAUSE_FUNCTIONS AutoNegotiationFlags*: ULONG + PNDIS_LINK_PARAMETERS* = ptr NDIS_LINK_PARAMETERS NDIS_OPER_STATE* {.pure.} = object Header*: NDIS_OBJECT_HEADER OperationalStatus*: NET_IF_OPER_STATUS OperationalStatusFlags*: ULONG + PNDIS_OPER_STATE* = ptr NDIS_OPER_STATE NDIS_IP_OPER_STATUS* {.pure.} = object AddressFamily*: ULONG OperationalStatus*: NET_IF_OPER_STATUS OperationalStatusFlags*: ULONG + PNDIS_IP_OPER_STATUS* = ptr NDIS_IP_OPER_STATUS -const - MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED* = 32 + +const MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED* = 32 type NDIS_IP_OPER_STATUS_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG NumberofAddressFamiliesReturned*: ULONG - IpOperationalStatus*: array[MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED, NDIS_IP_OPER_STATUS] + IpOperationalStatus*: + array[MAXIMUM_IP_OPER_STATUS_ADDRESS_FAMILIES_SUPPORTED, NDIS_IP_OPER_STATUS] + PNDIS_IP_OPER_STATUS_INFO* = ptr NDIS_IP_OPER_STATUS_INFO NDIS_IP_OPER_STATE* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG IpOperationalStatus*: NDIS_IP_OPER_STATUS + PNDIS_IP_OPER_STATE* = ptr NDIS_IP_OPER_STATE NDIS_OFFLOAD_PARAMETERS_STRUCT1* {.pure.} = object RscIPv4*: UCHAR RscIPv6*: UCHAR + NDIS_OFFLOAD_PARAMETERS_STRUCT2* {.pure.} = object EncapsulatedPacketTaskOffload*: UCHAR EncapsulationTypes*: UCHAR + NDIS_OFFLOAD_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER IPv4Checksum*: UCHAR @@ -1856,47 +2080,55 @@ IPsecV2IPv4*: UCHAR struct1*: NDIS_OFFLOAD_PARAMETERS_STRUCT1 struct2*: NDIS_OFFLOAD_PARAMETERS_STRUCT2 + PNDIS_OFFLOAD_PARAMETERS* = ptr NDIS_OFFLOAD_PARAMETERS NDIS_TCP_LARGE_SEND_OFFLOAD_V1_IPv4* {.pure.} = object Encapsulation*: ULONG MaxOffLoadSize*: ULONG MinSegmentCount*: ULONG - TcpOptions* {.bitsize:2.}: ULONG - IpOptions* {.bitsize:2.}: ULONG + TcpOptions* {.bitsize: 2.}: ULONG + IpOptions* {.bitsize: 2.}: ULONG + NDIS_TCP_LARGE_SEND_OFFLOAD_V1* {.pure.} = object IPv4*: NDIS_TCP_LARGE_SEND_OFFLOAD_V1_IPv4 + PNDIS_TCP_LARGE_SEND_OFFLOAD_V1* = ptr NDIS_TCP_LARGE_SEND_OFFLOAD_V1 NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv4Transmit* {.pure.} = object Encapsulation*: ULONG - IpOptionsSupported* {.bitsize:2.}: ULONG - TcpOptionsSupported* {.bitsize:2.}: ULONG - TcpChecksum* {.bitsize:2.}: ULONG - UdpChecksum* {.bitsize:2.}: ULONG - IpChecksum* {.bitsize:2.}: ULONG + IpOptionsSupported* {.bitsize: 2.}: ULONG + TcpOptionsSupported* {.bitsize: 2.}: ULONG + TcpChecksum* {.bitsize: 2.}: ULONG + UdpChecksum* {.bitsize: 2.}: ULONG + IpChecksum* {.bitsize: 2.}: ULONG + NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv4Receive* {.pure.} = object Encapsulation*: ULONG - IpOptionsSupported* {.bitsize:2.}: ULONG - TcpOptionsSupported* {.bitsize:2.}: ULONG - TcpChecksum* {.bitsize:2.}: ULONG - UdpChecksum* {.bitsize:2.}: ULONG - IpChecksum* {.bitsize:2.}: ULONG + IpOptionsSupported* {.bitsize: 2.}: ULONG + TcpOptionsSupported* {.bitsize: 2.}: ULONG + TcpChecksum* {.bitsize: 2.}: ULONG + UdpChecksum* {.bitsize: 2.}: ULONG + IpChecksum* {.bitsize: 2.}: ULONG + NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv6Transmit* {.pure.} = object Encapsulation*: ULONG - IpExtensionHeadersSupported* {.bitsize:2.}: ULONG - TcpOptionsSupported* {.bitsize:2.}: ULONG - TcpChecksum* {.bitsize:2.}: ULONG - UdpChecksum* {.bitsize:2.}: ULONG + IpExtensionHeadersSupported* {.bitsize: 2.}: ULONG + TcpOptionsSupported* {.bitsize: 2.}: ULONG + TcpChecksum* {.bitsize: 2.}: ULONG + UdpChecksum* {.bitsize: 2.}: ULONG + NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv6Receive* {.pure.} = object Encapsulation*: ULONG - IpExtensionHeadersSupported* {.bitsize:2.}: ULONG - TcpOptionsSupported* {.bitsize:2.}: ULONG - TcpChecksum* {.bitsize:2.}: ULONG - UdpChecksum* {.bitsize:2.}: ULONG + IpExtensionHeadersSupported* {.bitsize: 2.}: ULONG + TcpOptionsSupported* {.bitsize: 2.}: ULONG + TcpChecksum* {.bitsize: 2.}: ULONG + UdpChecksum* {.bitsize: 2.}: ULONG + NDIS_TCP_IP_CHECKSUM_OFFLOAD* {.pure.} = object IPv4Transmit*: NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv4Transmit IPv4Receive*: NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv4Receive IPv6Transmit*: NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv6Transmit IPv6Receive*: NDIS_TCP_IP_CHECKSUM_OFFLOAD_IPv6Receive + PNDIS_TCP_IP_CHECKSUM_OFFLOAD* = ptr NDIS_TCP_IP_CHECKSUM_OFFLOAD NDIS_IPSEC_OFFLOAD_V1_Supported* {.pure.} = object Encapsulation*: ULONG @@ -1904,40 +2136,47 @@ TransportTunnelCombined*: ULONG IPv4Options*: ULONG Flags*: ULONG + NDIS_IPSEC_OFFLOAD_V1_IPv4AH* {.pure.} = object - Md5* {.bitsize:2.}: ULONG - Sha_1* {.bitsize:2.}: ULONG - Transport* {.bitsize:2.}: ULONG - Tunnel* {.bitsize:2.}: ULONG - Send* {.bitsize:2.}: ULONG - Receive* {.bitsize:2.}: ULONG + Md5* {.bitsize: 2.}: ULONG + Sha_1* {.bitsize: 2.}: ULONG + Transport* {.bitsize: 2.}: ULONG + Tunnel* {.bitsize: 2.}: ULONG + Send* {.bitsize: 2.}: ULONG + Receive* {.bitsize: 2.}: ULONG + NDIS_IPSEC_OFFLOAD_V1_IPv4ESP* {.pure.} = object - Des* {.bitsize:2.}: ULONG - Reserved* {.bitsize:2.}: ULONG - TripleDes* {.bitsize:2.}: ULONG - NullEsp* {.bitsize:2.}: ULONG - Transport* {.bitsize:2.}: ULONG - Tunnel* {.bitsize:2.}: ULONG - Send* {.bitsize:2.}: ULONG - Receive* {.bitsize:2.}: ULONG + Des* {.bitsize: 2.}: ULONG + Reserved* {.bitsize: 2.}: ULONG + TripleDes* {.bitsize: 2.}: ULONG + NullEsp* {.bitsize: 2.}: ULONG + Transport* {.bitsize: 2.}: ULONG + Tunnel* {.bitsize: 2.}: ULONG + Send* {.bitsize: 2.}: ULONG + Receive* {.bitsize: 2.}: ULONG + NDIS_IPSEC_OFFLOAD_V1* {.pure.} = object Supported*: NDIS_IPSEC_OFFLOAD_V1_Supported IPv4AH*: NDIS_IPSEC_OFFLOAD_V1_IPv4AH IPv4ESP*: NDIS_IPSEC_OFFLOAD_V1_IPv4ESP + PNDIS_IPSEC_OFFLOAD_V1* = ptr NDIS_IPSEC_OFFLOAD_V1 NDIS_TCP_LARGE_SEND_OFFLOAD_V2_IPv4* {.pure.} = object Encapsulation*: ULONG MaxOffLoadSize*: ULONG MinSegmentCount*: ULONG + NDIS_TCP_LARGE_SEND_OFFLOAD_V2_IPv6* {.pure.} = object Encapsulation*: ULONG MaxOffLoadSize*: ULONG MinSegmentCount*: ULONG - IpExtensionHeadersSupported* {.bitsize:2.}: ULONG - TcpOptionsSupported* {.bitsize:2.}: ULONG + IpExtensionHeadersSupported* {.bitsize: 2.}: ULONG + TcpOptionsSupported* {.bitsize: 2.}: ULONG + NDIS_TCP_LARGE_SEND_OFFLOAD_V2* {.pure.} = object IPv4*: NDIS_TCP_LARGE_SEND_OFFLOAD_V2_IPv4 IPv6*: NDIS_TCP_LARGE_SEND_OFFLOAD_V2_IPv6 + PNDIS_TCP_LARGE_SEND_OFFLOAD_V2* = ptr NDIS_TCP_LARGE_SEND_OFFLOAD_V2 NDIS_IPSEC_OFFLOAD_V2* {.pure.} = object Encapsulation*: ULONG @@ -1956,22 +2195,27 @@ AuthenticationAlgorithms*: ULONG EncryptionAlgorithms*: ULONG SaOffloadCapacity*: ULONG + PNDIS_IPSEC_OFFLOAD_V2* = ptr NDIS_IPSEC_OFFLOAD_V2 NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD_IPv4* {.pure.} = object Enabled*: BOOLEAN + NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD_IPv6* {.pure.} = object Enabled*: BOOLEAN + NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD* {.pure.} = object IPv4*: NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD_IPv4 IPv6*: NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD_IPv6 + PNDIS_TCP_RECV_SEG_COALESCE_OFFLOAD* = ptr NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD* {.pure.} = object - TransmitChecksumOffloadSupported* {.bitsize:4.}: ULONG - ReceiveChecksumOffloadSupported* {.bitsize:4.}: ULONG - LsoV2Supported* {.bitsize:4.}: ULONG - RssSupported* {.bitsize:4.}: ULONG - VmqSupported* {.bitsize:4.}: ULONG + TransmitChecksumOffloadSupported* {.bitsize: 4.}: ULONG + ReceiveChecksumOffloadSupported* {.bitsize: 4.}: ULONG + LsoV2Supported* {.bitsize: 4.}: ULONG + RssSupported* {.bitsize: 4.}: ULONG + VmqSupported* {.bitsize: 4.}: ULONG MaxHeaderSizeSupported*: ULONG + PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD* = ptr NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD NDIS_OFFLOAD* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -1983,6 +2227,7 @@ IPsecV2*: NDIS_IPSEC_OFFLOAD_V2 Rsc*: NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD EncapsulatedPacketTaskOffloadGre*: NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD + PNDIS_OFFLOAD* = ptr NDIS_OFFLOAD NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1_IPv4* {.pure.} = object Encapsulation*: ULONG @@ -1990,8 +2235,10 @@ MinSegmentCount*: ULONG TcpOptions*: ULONG IpOptions*: ULONG + NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1* {.pure.} = object IPv4*: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1_IPv4 + PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1* = ptr NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V1 NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv4Transmit* {.pure.} = object Encapsulation*: ULONG @@ -2000,6 +2247,7 @@ TcpChecksum*: ULONG UdpChecksum*: ULONG IpChecksum*: ULONG + NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv4Receive* {.pure.} = object Encapsulation*: ULONG IpOptionsSupported*: ULONG @@ -2007,23 +2255,27 @@ TcpChecksum*: ULONG UdpChecksum*: ULONG IpChecksum*: ULONG + NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv6Transmit* {.pure.} = object Encapsulation*: ULONG IpExtensionHeadersSupported*: ULONG TcpOptionsSupported*: ULONG TcpChecksum*: ULONG UdpChecksum*: ULONG + NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv6Receive* {.pure.} = object Encapsulation*: ULONG IpExtensionHeadersSupported*: ULONG TcpOptionsSupported*: ULONG TcpChecksum*: ULONG UdpChecksum*: ULONG + NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD* {.pure.} = object IPv4Transmit*: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv4Transmit IPv4Receive*: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv4Receive IPv6Transmit*: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv6Transmit IPv6Receive*: NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD_IPv6Receive + PNDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD* = ptr NDIS_WMI_TCP_IP_CHECKSUM_OFFLOAD NDIS_WMI_IPSEC_OFFLOAD_V1_Supported* {.pure.} = object Encapsulation*: ULONG @@ -2031,6 +2283,7 @@ TransportTunnelCombined*: ULONG IPv4Options*: ULONG Flags*: ULONG + NDIS_WMI_IPSEC_OFFLOAD_V1_IPv4AH* {.pure.} = object Md5*: ULONG Sha_1*: ULONG @@ -2038,6 +2291,7 @@ Tunnel*: ULONG Send*: ULONG Receive*: ULONG + NDIS_WMI_IPSEC_OFFLOAD_V1_IPv4ESP* {.pure.} = object Des*: ULONG Reserved*: ULONG @@ -2047,24 +2301,29 @@ Tunnel*: ULONG Send*: ULONG Receive*: ULONG + NDIS_WMI_IPSEC_OFFLOAD_V1* {.pure.} = object Supported*: NDIS_WMI_IPSEC_OFFLOAD_V1_Supported IPv4AH*: NDIS_WMI_IPSEC_OFFLOAD_V1_IPv4AH IPv4ESP*: NDIS_WMI_IPSEC_OFFLOAD_V1_IPv4ESP + PNDIS_WMI_IPSEC_OFFLOAD_V1* = ptr NDIS_WMI_IPSEC_OFFLOAD_V1 NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_IPv4* {.pure.} = object Encapsulation*: ULONG MaxOffLoadSize*: ULONG MinSegmentCount*: ULONG + NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_IPv6* {.pure.} = object Encapsulation*: ULONG MaxOffLoadSize*: ULONG MinSegmentCount*: ULONG IpExtensionHeadersSupported*: ULONG TcpOptionsSupported*: ULONG + NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2* {.pure.} = object IPv4*: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_IPv4 IPv6*: NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2_IPv6 + PNDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2* = ptr NDIS_WMI_TCP_LARGE_SEND_OFFLOAD_V2 NDIS_WMI_OFFLOAD* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2076,17 +2335,19 @@ IPsecV2*: NDIS_IPSEC_OFFLOAD_V2 Rsc*: NDIS_TCP_RECV_SEG_COALESCE_OFFLOAD EncapsulatedPacketTaskOffloadGre*: NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD + PNDIS_WMI_OFFLOAD* = ptr NDIS_WMI_OFFLOAD NDIS_TCP_CONNECTION_OFFLOAD* {.pure.} = object Header*: NDIS_OBJECT_HEADER Encapsulation*: ULONG - SupportIPv4* {.bitsize:2.}: ULONG - SupportIPv6* {.bitsize:2.}: ULONG - SupportIPv6ExtensionHeaders* {.bitsize:2.}: ULONG - SupportSack* {.bitsize:2.}: ULONG - CongestionAlgorithm* {.bitsize:4.}: ULONG + SupportIPv4* {.bitsize: 2.}: ULONG + SupportIPv6* {.bitsize: 2.}: ULONG + SupportIPv6ExtensionHeaders* {.bitsize: 2.}: ULONG + SupportSack* {.bitsize: 2.}: ULONG + CongestionAlgorithm* {.bitsize: 4.}: ULONG TcpConnectionOffloadCapacity*: ULONG Flags*: ULONG + PNDIS_TCP_CONNECTION_OFFLOAD* = ptr NDIS_TCP_CONNECTION_OFFLOAD NDIS_WMI_TCP_CONNECTION_OFFLOAD* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2097,6 +2358,7 @@ SupportSack*: ULONG TcpConnectionOffloadCapacity*: ULONG Flags*: ULONG + PNDIS_WMI_TCP_CONNECTION_OFFLOAD* = ptr NDIS_WMI_TCP_CONNECTION_OFFLOAD NDIS_PORT_CONTROLL_STATE* = NDIS_PORT_CONTROL_STATE PNDIS_PORT_CONTROLL_STATE* = PNDIS_PORT_CONTROL_STATE @@ -2106,6 +2368,7 @@ RcvControlState*: NDIS_PORT_CONTROL_STATE SendAuthorizationState*: NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState*: NDIS_PORT_AUTHORIZATION_STATE + PNDIS_PORT_AUTHENTICATION_PARAMETERS* = ptr NDIS_PORT_AUTHENTICATION_PARAMETERS NDIS_WMI_METHOD_HEADER* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2114,6 +2377,7 @@ RequestId*: ULONG64 Timeout*: ULONG Padding*: array[4, UCHAR] + PNDIS_WMI_METHOD_HEADER* = ptr NDIS_WMI_METHOD_HEADER NDIS_WMI_SET_HEADER* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2122,6 +2386,7 @@ RequestId*: ULONG64 Timeout*: ULONG Padding*: array[4, UCHAR] + PNDIS_WMI_SET_HEADER* = ptr NDIS_WMI_SET_HEADER NDIS_WMI_EVENT_HEADER* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2132,6 +2397,7 @@ DeviceNameLength*: ULONG DeviceNameOffset*: ULONG Padding*: array[4, UCHAR] + PNDIS_WMI_EVENT_HEADER* = ptr NDIS_WMI_EVENT_HEADER NDIS_WMI_ENUM_ADAPTER* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2139,10 +2405,12 @@ NetLuid*: NET_LUID DeviceNameLength*: USHORT DeviceName*: array[1, CHAR] + PNDIS_WMI_ENUM_ADAPTER* = ptr NDIS_WMI_ENUM_ADAPTER NDIS_HD_SPLIT_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER HDSplitCombineFlags*: ULONG + PNDIS_HD_SPLIT_PARAMETERS* = ptr NDIS_HD_SPLIT_PARAMETERS NDIS_HD_SPLIT_CURRENT_CONFIG* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2152,19 +2420,22 @@ HDSplitCombineFlags*: ULONG BackfillSize*: ULONG MaxHeaderSize*: ULONG + PNDIS_HD_SPLIT_CURRENT_CONFIG* = ptr NDIS_HD_SPLIT_CURRENT_CONFIG NDIS_WMI_OUTPUT_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG SupportedRevision*: UCHAR DataOffset*: ULONG + PNDIS_WMI_OUTPUT_INFO* = ptr NDIS_WMI_OUTPUT_INFO -const - NDIS_PM_MAX_STRING_SIZE* = 64 + +const NDIS_PM_MAX_STRING_SIZE* = 64 type NDIS_PM_COUNTED_STRING* {.pure.} = object Length*: USHORT String*: array[NDIS_PM_MAX_STRING_SIZE + 1, WCHAR] + PNDIS_PM_COUNTED_STRING* = ptr NDIS_PM_COUNTED_STRING NDIS_PM_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2182,6 +2453,7 @@ MinLinkChangeWakeUp*: NDIS_DEVICE_POWER_STATE SupportedWakeUpEvents*: ULONG MediaSpecificWakeUpEvents*: ULONG + PNDIS_PM_CAPABILITIES* = ptr NDIS_PM_CAPABILITIES NDIS_PM_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2189,6 +2461,7 @@ EnabledProtocolOffloads*: ULONG WakeUpFlags*: ULONG MediaSpecificWakeUpEvents*: ULONG + PNDIS_PM_PARAMETERS* = ptr NDIS_PM_PARAMETERS NDIS_PM_WOL_PATTERN_WoLPattern_IPv4TcpSynParameters* {.pure.} = object Flags*: ULONG @@ -2196,25 +2469,31 @@ IPv4DestAddress*: array[4, UCHAR] TCPSourcePortNumber*: USHORT TCPDestPortNumber*: USHORT + NDIS_PM_WOL_PATTERN_WoLPattern_IPv6TcpSynParameters* {.pure.} = object Flags*: ULONG IPv6SourceAddress*: array[16, UCHAR] IPv6DestAddress*: array[16, UCHAR] TCPSourcePortNumber*: USHORT TCPDestPortNumber*: USHORT + NDIS_PM_WOL_PATTERN_WoLPattern_EapolRequestIdMessageParameters* {.pure.} = object Flags*: ULONG + NDIS_PM_WOL_PATTERN_WoLPattern_WoLBitMapPattern* {.pure.} = object Flags*: ULONG MaskOffset*: ULONG MaskSize*: ULONG PatternOffset*: ULONG PatternSize*: ULONG + NDIS_PM_WOL_PATTERN_WoLPattern* {.pure, union.} = object IPv4TcpSynParameters*: NDIS_PM_WOL_PATTERN_WoLPattern_IPv4TcpSynParameters IPv6TcpSynParameters*: NDIS_PM_WOL_PATTERN_WoLPattern_IPv6TcpSynParameters - EapolRequestIdMessageParameters*: NDIS_PM_WOL_PATTERN_WoLPattern_EapolRequestIdMessageParameters + EapolRequestIdMessageParameters*: + NDIS_PM_WOL_PATTERN_WoLPattern_EapolRequestIdMessageParameters WoLBitMapPattern*: NDIS_PM_WOL_PATTERN_WoLPattern_WoLBitMapPattern + NDIS_PM_WOL_PATTERN* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -2224,18 +2503,21 @@ PatternId*: ULONG NextWoLPatternOffset*: ULONG WoLPattern*: NDIS_PM_WOL_PATTERN_WoLPattern + PNDIS_PM_WOL_PATTERN* = ptr NDIS_PM_WOL_PATTERN NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_IPv4ARPParameters* {.pure.} = object Flags*: ULONG RemoteIPv4Address*: array[4, UCHAR] HostIPv4Address*: array[4, UCHAR] MacAddress*: array[6, UCHAR] + NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_IPv6NSParameters* {.pure.} = object Flags*: ULONG RemoteIPv6Address*: array[16, UCHAR] SolicitedNodeIPv6Address*: array[16, UCHAR] MacAddress*: array[6, UCHAR] TargetIPv6Addresses*: array[2, array[16, UCHAR]] + const DOT11_RSN_KCK_LENGTH* = 16 DOT11_RSN_KEK_LENGTH* = 16 @@ -2245,10 +2527,15 @@ KCK*: array[DOT11_RSN_KCK_LENGTH, UCHAR] KEK*: array[DOT11_RSN_KEK_LENGTH, UCHAR] KeyReplayCounter*: ULONGLONG + NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters* {.pure, union.} = object - IPv4ARPParameters*: NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_IPv4ARPParameters - IPv6NSParameters*: NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_IPv6NSParameters - Dot11RSNRekeyParameters*: NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_Dot11RSNRekeyParameters + IPv4ARPParameters*: + NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_IPv4ARPParameters + IPv6NSParameters*: + NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_IPv6NSParameters + Dot11RSNRekeyParameters*: + NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters_Dot11RSNRekeyParameters + NDIS_PM_PROTOCOL_OFFLOAD* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -2258,6 +2545,7 @@ ProtocolOffloadId*: ULONG NextProtocolOffloadOffset*: ULONG ProtocolOffloadParameters*: NDIS_PM_PROTOCOL_OFFLOAD_ProtocolOffloadParameters + PNDIS_PM_PROTOCOL_OFFLOAD* = ptr NDIS_PM_PROTOCOL_OFFLOAD NDIS_PM_WAKE_REASON* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2265,6 +2553,7 @@ WakeReason*: NDIS_PM_WAKE_REASON_TYPE InfoBufferOffset*: ULONG InfoBufferSize*: ULONG + PNDIS_PM_WAKE_REASON* = ptr NDIS_PM_WAKE_REASON NDIS_PM_WAKE_PACKET* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2274,6 +2563,7 @@ OriginalPacketSize*: ULONG SavedPacketSize*: ULONG SavedPacketOffset*: ULONG + PNDIS_PM_WAKE_PACKET* = ptr NDIS_PM_WAKE_PACKET NDIS_WMI_PM_ADMIN_CONFIG* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2283,6 +2573,7 @@ PMARPOffload*: NDIS_PM_ADMIN_CONFIG_STATE PMNSOffload*: NDIS_PM_ADMIN_CONFIG_STATE PMWiFiRekeyOffload*: NDIS_PM_ADMIN_CONFIG_STATE + PNDIS_WMI_PM_ADMIN_CONFIG* = ptr NDIS_WMI_PM_ADMIN_CONFIG NDIS_WMI_PM_ACTIVE_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2292,6 +2583,7 @@ PMARPOffload*: NDIS_PM_CAPABILITY_STATE PMNSOffload*: NDIS_PM_CAPABILITY_STATE PMWiFiRekeyOffload*: NDIS_PM_CAPABILITY_STATE + PNDIS_WMI_PM_ACTIVE_CAPABILITIES* = ptr NDIS_WMI_PM_ACTIVE_CAPABILITIES NDIS_RECEIVE_FILTER_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2315,6 +2607,7 @@ MaxFieldTestsPerPacketCoalescingFilter*: ULONG MaxPacketCoalescingFilters*: ULONG NdisReserved*: ULONG + PNDIS_RECEIVE_FILTER_CAPABILITIES* = ptr NDIS_RECEIVE_FILTER_CAPABILITIES NDIS_NIC_SWITCH_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2346,12 +2639,14 @@ NdisReserved15*: ULONG NdisReserved16*: ULONG NdisReserved17*: ULONG + PNDIS_NIC_SWITCH_CAPABILITIES* = ptr NDIS_NIC_SWITCH_CAPABILITIES NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG EnabledFilterTypes*: ULONG EnabledQueueTypes*: ULONG + PNDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS* = ptr NDIS_RECEIVE_FILTER_GLOBAL_PARAMETERS NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_HeaderField* {.pure, union.} = object MacHeaderField*: NDIS_MAC_HEADER_FIELD @@ -2359,18 +2654,21 @@ IPv4HeaderField*: NDIS_IPV4_HEADER_FIELD IPv6HeaderField*: NDIS_IPV6_HEADER_FIELD UdpHeaderField*: NDIS_UDP_HEADER_FIELD + NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_FieldValue* {.pure, union.} = object FieldByteValue*: UCHAR FieldShortValue*: USHORT FieldLongValue*: ULONG FieldLong64Value*: ULONG64 FieldByteArrayValue*: array[16, UCHAR] + NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_ResultValue* {.pure, union.} = object ResultByteValue*: UCHAR ResultShortValue*: USHORT ResultLongValue*: ULONG ResultLong64Value*: ULONG64 ResultByteArrayValue*: array[16, UCHAR] + NDIS_RECEIVE_FILTER_FIELD_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -2379,6 +2677,7 @@ HeaderField*: NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_HeaderField FieldValue*: NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_FieldValue ResultValue*: NDIS_RECEIVE_FILTER_FIELD_PARAMETERS_ResultValue + PNDIS_RECEIVE_FILTER_FIELD_PARAMETERS* = ptr NDIS_RECEIVE_FILTER_FIELD_PARAMETERS NDIS_RECEIVE_FILTER_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2392,12 +2691,14 @@ RequestedFilterIdBitCount*: ULONG MaxCoalescingDelay*: ULONG VPortId*: NDIS_NIC_SWITCH_VPORT_ID + PNDIS_RECEIVE_FILTER_PARAMETERS* = ptr NDIS_RECEIVE_FILTER_PARAMETERS NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG QueueId*: NDIS_RECEIVE_QUEUE_ID FilterId*: NDIS_RECEIVE_FILTER_ID + PNDIS_RECEIVE_FILTER_CLEAR_PARAMETERS* = ptr NDIS_RECEIVE_FILTER_CLEAR_PARAMETERS NDIS_QUEUE_NAME* = NDIS_IF_COUNTED_STRING PNDIS_QUEUE_NAME* = ptr NDIS_IF_COUNTED_STRING @@ -2439,11 +2740,13 @@ QueueName*: NDIS_QUEUE_NAME PortId*: ULONG InterruptCoalescingDomainId*: ULONG + PNDIS_RECEIVE_QUEUE_PARAMETERS* = ptr NDIS_RECEIVE_QUEUE_PARAMETERS NDIS_RECEIVE_QUEUE_FREE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG QueueId*: NDIS_RECEIVE_QUEUE_ID + PNDIS_RECEIVE_QUEUE_FREE_PARAMETERS* = ptr NDIS_RECEIVE_QUEUE_FREE_PARAMETERS NDIS_RECEIVE_QUEUE_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2460,18 +2763,21 @@ QueueName*: NDIS_QUEUE_NAME NumFilters*: ULONG InterruptCoalescingDomainId*: ULONG + PNDIS_RECEIVE_QUEUE_INFO* = ptr NDIS_RECEIVE_QUEUE_INFO NDIS_RECEIVE_QUEUE_INFO_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER FirstElementOffset*: ULONG NumElements*: ULONG ElementSize*: ULONG + PNDIS_RECEIVE_QUEUE_INFO_ARRAY* = ptr NDIS_RECEIVE_QUEUE_INFO_ARRAY NDIS_RECEIVE_FILTER_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG FilterType*: NDIS_RECEIVE_FILTER_TYPE FilterId*: NDIS_RECEIVE_FILTER_ID + PNDIS_RECEIVE_FILTER_INFO* = ptr NDIS_RECEIVE_FILTER_INFO NDIS_RECEIVE_FILTER_INFO_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2481,26 +2787,32 @@ ElementSize*: ULONG Flags*: ULONG VPortId*: NDIS_NIC_SWITCH_VPORT_ID + PNDIS_RECEIVE_FILTER_INFO_ARRAY* = ptr NDIS_RECEIVE_FILTER_INFO_ARRAY NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG QueueId*: NDIS_RECEIVE_QUEUE_ID CompletionStatus*: NDIS_STATUS - PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS* = ptr NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS + + PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS* = + ptr NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_PARAMETERS NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG FirstElementOffset*: ULONG NumElements*: ULONG ElementSize*: ULONG - PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY* = ptr NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY + + PNDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY* = + ptr NDIS_RECEIVE_QUEUE_ALLOCATION_COMPLETE_ARRAY NDIS_RECEIVE_SCALE_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER CapabilitiesFlags*: ULONG NumberOfInterruptMessages*: ULONG NumberOfReceiveQueues*: ULONG NumberOfIndirectionTableEntries*: USHORT + PNDIS_RECEIVE_SCALE_CAPABILITIES* = ptr NDIS_RECEIVE_SCALE_CAPABILITIES NDIS_RECEIVE_SCALE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2514,6 +2826,7 @@ ProcessorMasksOffset*: ULONG NumberOfProcessorMasks*: ULONG ProcessorMasksEntrySize*: ULONG + PNDIS_RECEIVE_SCALE_PARAMETERS* = ptr NDIS_RECEIVE_SCALE_PARAMETERS NDIS_RECEIVE_HASH_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2521,11 +2834,13 @@ HashInformation*: ULONG HashSecretKeySize*: USHORT HashSecretKeyOffset*: ULONG + PNDIS_RECEIVE_HASH_PARAMETERS* = ptr NDIS_RECEIVE_HASH_PARAMETERS NDIS_RSS_PROCESSOR* {.pure.} = object ProcNum*: PROCESSOR_NUMBER PreferenceIndex*: USHORT Reserved*: USHORT + PNDIS_RSS_PROCESSOR* = ptr NDIS_RSS_PROCESSOR NDIS_RSS_PROCESSOR_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2538,6 +2853,7 @@ RssProcessorEntrySize*: ULONG RssMaxProcessor*: PROCESSOR_NUMBER RssProfile*: NDIS_RSS_PROFILE + PNDIS_RSS_PROCESSOR_INFO* = ptr NDIS_RSS_PROCESSOR_INFO NDIS_PROCESSOR_INFO_EX* {.pure.} = object ProcNum*: PROCESSOR_NUMBER @@ -2546,6 +2862,7 @@ HyperThreadId*: ULONG NodeId*: USHORT NodeDistance*: USHORT + PNDIS_PROCESSOR_INFO_EX* = ptr NDIS_PROCESSOR_INFO_EX NDIS_SYSTEM_PROCESSOR_INFO_EX* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2558,16 +2875,19 @@ ProcessorInfoOffset*: ULONG NumberOfProcessors*: ULONG ProcessorInfoEntrySize*: ULONG + PNDIS_SYSTEM_PROCESSOR_INFO_EX* = ptr NDIS_SYSTEM_PROCESSOR_INFO_EX NDIS_HYPERVISOR_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG PartitionType*: NDIS_HYPERVISOR_PARTITION_TYPE + PNDIS_HYPERVISOR_INFO* = ptr NDIS_HYPERVISOR_INFO NDIS_WMI_GROUP_AFFINITY* {.pure.} = object Mask*: ULONG64 Group*: USHORT Reserved*: array[3, USHORT] + PNDIS_WMI_GROUP_AFFINITY* = ptr NDIS_WMI_GROUP_AFFINITY NDIS_WMI_RECEIVE_QUEUE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2581,6 +2901,7 @@ LookaheadSize*: ULONG VmName*: NDIS_VM_NAME QueueName*: NDIS_QUEUE_NAME + PNDIS_WMI_RECEIVE_QUEUE_PARAMETERS* = ptr NDIS_WMI_RECEIVE_QUEUE_PARAMETERS NDIS_WMI_RECEIVE_QUEUE_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2595,6 +2916,7 @@ LookaheadSize*: ULONG VmName*: NDIS_VM_NAME QueueName*: NDIS_QUEUE_NAME + PNDIS_WMI_RECEIVE_QUEUE_INFO* = ptr NDIS_WMI_RECEIVE_QUEUE_INFO NDIS_NDK_PERFORMANCE_COUNTERS* {.pure.} = object Connect*: ULONG64 @@ -2627,10 +2949,12 @@ RDMAOutOctets*: ULONG64 RDMAInFrames*: ULONG64 RDMAOutFrames*: ULONG64 + PNDIS_NDK_PERFORMANCE_COUNTERS* = ptr NDIS_NDK_PERFORMANCE_COUNTERS NDK_VERSION* {.pure.} = object Major*: USHORT Minor*: USHORT + NDK_ADAPTER_INFO* {.pure.} = object Version*: NDK_VERSION VendorId*: UINT32 @@ -2653,6 +2977,7 @@ MaxCallerData*: ULONG MaxCalleeData*: ULONG AdapterFlags*: ULONG + NDIS_NDK_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -2666,6 +2991,7 @@ MaxSrqCount*: ULONG MissingCounterMask*: ULONG64 NdkInfo*: ptr NDK_ADAPTER_INFO + PNDIS_NDK_CAPABILITIES* = ptr NDIS_NDK_CAPABILITIES NDK_WMI_ADAPTER_INFO* {.pure.} = object Version*: NDK_VERSION @@ -2689,6 +3015,7 @@ MaxCallerData*: ULONG MaxCalleeData*: ULONG AdapterFlags*: ULONG + PNDK_WMI_ADAPTER_INFO* = ptr NDK_WMI_ADAPTER_INFO NDIS_WMI_NDK_CAPABILITIES* {.pure.} = object MaxQpCount*: ULONG @@ -2701,6 +3028,7 @@ MaxSrqCount*: ULONG MissingCounterMask*: ULONG64 NdkInfo*: NDK_WMI_ADAPTER_INFO + PNDIS_WMI_NDK_CAPABILITIES* = ptr NDIS_WMI_NDK_CAPABILITIES NDIS_QOS_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2708,6 +3036,7 @@ MaxNumTrafficClasses*: ULONG MaxNumEtsCapableTrafficClasses*: ULONG MaxNumPfcEnabledTrafficClasses*: ULONG + PNDIS_QOS_CAPABILITIES* = ptr NDIS_QOS_CAPABILITIES NDIS_QOS_CLASSIFICATION_ELEMENT* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2716,7 +3045,9 @@ ConditionField*: USHORT ActionSelector*: USHORT ActionField*: USHORT + PNDIS_QOS_CLASSIFICATION_ELEMENT* = ptr NDIS_QOS_CLASSIFICATION_ELEMENT + const NDIS_QOS_MAXIMUM_PRIORITIES* = 8 NDIS_QOS_MAXIMUM_TRAFFIC_CLASSES* = 8 @@ -2732,6 +3063,7 @@ NumClassificationElements*: ULONG ClassificationElementSize*: ULONG FirstClassificationElementOffset*: ULONG + PNDIS_QOS_PARAMETERS* = ptr NDIS_QOS_PARAMETERS NDIS_NIC_SWITCH_FRIENDLYNAME* = NDIS_IF_COUNTED_STRING PNDIS_NIC_SWITCH_FRIENDLYNAME* = ptr NDIS_IF_COUNTED_STRING @@ -2747,12 +3079,15 @@ NdisReserved1*: ULONG NdisReserved2*: ULONG NdisReserved3*: ULONG + PNDIS_NIC_SWITCH_PARAMETERS* = ptr NDIS_NIC_SWITCH_PARAMETERS NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG SwitchId*: NDIS_NIC_SWITCH_ID - PNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS* = ptr NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS + + PNDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS* = + ptr NDIS_NIC_SWITCH_DELETE_SWITCH_PARAMETERS NDIS_NIC_SWITCH_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -2769,12 +3104,14 @@ NumActiveNonDefaultVPortMacAddresses*: ULONG NumActiveDefaultVPortVlanIds*: ULONG NumActiveNonDefaultVPortVlanIds*: ULONG + PNDIS_NIC_SWITCH_INFO* = ptr NDIS_NIC_SWITCH_INFO NDIS_NIC_SWITCH_INFO_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER FirstElementOffset*: ULONG NumElements*: ULONG ElementSize*: ULONG + PNDIS_NIC_SWITCH_INFO_ARRAY* = ptr NDIS_NIC_SWITCH_INFO_ARRAY NDIS_NIC_SWITCH_VPORT_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2788,12 +3125,15 @@ VPortState*: NDIS_NIC_SWITCH_VPORT_STATE ProcessorAffinity*: GROUP_AFFINITY LookaheadSize*: ULONG + PNDIS_NIC_SWITCH_VPORT_PARAMETERS* = ptr NDIS_NIC_SWITCH_VPORT_PARAMETERS NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG VPortId*: NDIS_NIC_SWITCH_VPORT_ID - PNDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS* = ptr NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS + + PNDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS* = + ptr NDIS_NIC_SWITCH_DELETE_VPORT_PARAMETERS NDIS_NIC_SWITCH_VPORT_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER VPortId*: NDIS_NIC_SWITCH_VPORT_ID @@ -2807,6 +3147,7 @@ ProcessorAffinity*: GROUP_AFFINITY LookaheadSize*: ULONG NumFilters*: ULONG + PNDIS_NIC_SWITCH_VPORT_INFO* = ptr NDIS_NIC_SWITCH_VPORT_INFO NDIS_NIC_SWITCH_VPORT_INFO_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2816,9 +3157,10 @@ FirstElementOffset*: ULONG NumElements*: ULONG ElementSize*: ULONG + PNDIS_NIC_SWITCH_VPORT_INFO_ARRAY* = ptr NDIS_NIC_SWITCH_VPORT_INFO_ARRAY -const - NDIS_MAX_PHYS_ADDRESS_LENGTH* = IF_MAX_PHYS_ADDRESS_LENGTH + +const NDIS_MAX_PHYS_ADDRESS_LENGTH* = IF_MAX_PHYS_ADDRESS_LENGTH type NDIS_NIC_SWITCH_VF_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2832,11 +3174,13 @@ CurrentMacAddress*: array[NDIS_MAX_PHYS_ADDRESS_LENGTH, UCHAR] VFId*: NDIS_SRIOV_FUNCTION_ID RequestorId*: NDIS_VF_RID + PNDIS_NIC_SWITCH_VF_PARAMETERS* = ptr NDIS_NIC_SWITCH_VF_PARAMETERS NDIS_NIC_SWITCH_FREE_VF_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG VFId*: NDIS_SRIOV_FUNCTION_ID + PNDIS_NIC_SWITCH_FREE_VF_PARAMETERS* = ptr NDIS_NIC_SWITCH_FREE_VF_PARAMETERS NDIS_NIC_SWITCH_VF_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2850,6 +3194,7 @@ CurrentMacAddress*: array[NDIS_MAX_PHYS_ADDRESS_LENGTH, UCHAR] VFId*: NDIS_SRIOV_FUNCTION_ID RequestorId*: NDIS_VF_RID + PNDIS_NIC_SWITCH_VF_INFO* = ptr NDIS_NIC_SWITCH_VF_INFO NDIS_NIC_SWITCH_VF_INFO_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2858,11 +3203,13 @@ FirstElementOffset*: ULONG NumElements*: ULONG ElementSize*: ULONG + PNDIS_NIC_SWITCH_VF_INFO_ARRAY* = ptr NDIS_NIC_SWITCH_VF_INFO_ARRAY NDIS_SRIOV_CAPABILITIES* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG SriovCapabilities*: ULONG + PNDIS_SRIOV_CAPABILITIES* = ptr NDIS_SRIOV_CAPABILITIES NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2870,52 +3217,66 @@ Offset*: ULONG Length*: ULONG BufferOffset*: ULONG - PNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS* = ptr NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS + + PNDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS* = + ptr NDIS_SRIOV_READ_VF_CONFIG_SPACE_PARAMETERS NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID Offset*: ULONG Length*: ULONG BufferOffset*: ULONG - PNDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS* = ptr NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS + + PNDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS* = + ptr NDIS_SRIOV_WRITE_VF_CONFIG_SPACE_PARAMETERS NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID BlockId*: ULONG Length*: ULONG BufferOffset*: ULONG - PNDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS* = ptr NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS + + PNDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS* = + ptr NDIS_SRIOV_READ_VF_CONFIG_BLOCK_PARAMETERS NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID BlockId*: ULONG Length*: ULONG BufferOffset*: ULONG - PNDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS* = ptr NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS + + PNDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS* = + ptr NDIS_SRIOV_WRITE_VF_CONFIG_BLOCK_PARAMETERS NDIS_SRIOV_RESET_VF_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID + PNDIS_SRIOV_RESET_VF_PARAMETERS* = ptr NDIS_SRIOV_RESET_VF_PARAMETERS NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID PowerState*: NDIS_DEVICE_POWER_STATE WakeEnable*: BOOLEAN - PNDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS* = ptr NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS + + PNDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS* = + ptr NDIS_SRIOV_SET_VF_POWER_STATE_PARAMETERS NDIS_SRIOV_CONFIG_STATE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER BlockId*: ULONG Length*: ULONG + PNDIS_SRIOV_CONFIG_STATE_PARAMETERS* = ptr NDIS_SRIOV_CONFIG_STATE_PARAMETERS NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID VendorId*: USHORT DeviceId*: USHORT + PNDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO* = ptr NDIS_SRIOV_VF_VENDOR_DEVICE_ID_INFO NDIS_SRIOV_PROBED_BARS_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER BaseRegisterValuesOffset*: ULONG + PNDIS_SRIOV_PROBED_BARS_INFO* = ptr NDIS_SRIOV_PROBED_BARS_INFO NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -2924,25 +3285,32 @@ SourceVPortId*: NDIS_NIC_SWITCH_VPORT_ID DestQueueId*: NDIS_RECEIVE_QUEUE_ID DestVPortId*: NDIS_NIC_SWITCH_VPORT_ID - PNDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS* = ptr NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS + + PNDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS* = + ptr NDIS_RECEIVE_FILTER_MOVE_FILTER_PARAMETERS NDIS_SRIOV_BAR_RESOURCES_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER VFId*: NDIS_SRIOV_FUNCTION_ID BarIndex*: USHORT BarResourcesOffset*: ULONG + PNDIS_SRIOV_BAR_RESOURCES_INFO* = ptr NDIS_SRIOV_BAR_RESOURCES_INFO NDIS_SRIOV_PF_LUID_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Luid*: LUID + PNDIS_SRIOV_PF_LUID_INFO* = ptr NDIS_SRIOV_PF_LUID_INFO NDIS_SRIOV_VF_SERIAL_NUMBER_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER SerialNumber*: ULONG + PNDIS_SRIOV_VF_SERIAL_NUMBER_INFO* = ptr NDIS_SRIOV_VF_SERIAL_NUMBER_INFO NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER BlockMask*: ULONG64 - PNDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO* = ptr NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO + + PNDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO* = + ptr NDIS_SRIOV_VF_INVALIDATE_CONFIG_BLOCK_INFO NDIS_SWITCH_OBJECT_INSTANCE_ID* = GUID PNDIS_SWITCH_OBJECT_INSTANCE_ID* = ptr GUID NDIS_SWITCH_OBJECT_ID* = GUID @@ -2956,33 +3324,40 @@ AllowIeeePriorityTag*: BOOLEAN VirtualSubnetId*: UINT32 AllowTeaming*: BOOLEAN + PNDIS_SWITCH_PORT_PROPERTY_SECURITY* = ptr NDIS_SWITCH_PORT_PROPERTY_SECURITY NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties* {.pure.} = object AccessVlanId*: UINT16 NativeVlanId*: UINT16 PruneVlanIdArray*: array[64, UINT64] TrunkVlanIdArray*: array[64, UINT64] + NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties_UNION1* {.pure, union.} = object SecondaryVlanId*: UINT16 SecondaryVlanIdArray*: array[64, UINT64] + NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties* {.pure.} = object PvlanMode*: NDIS_SWITCH_PORT_PVLAN_MODE PrimaryVlanId*: UINT16 union1*: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties_UNION1 + NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1* {.pure, union.} = object VlanProperties*: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties PvlanProperties*: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties + NDIS_SWITCH_PORT_PROPERTY_VLAN* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG OperationMode*: NDIS_SWITCH_PORT_VLAN_MODE union1*: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1 + PNDIS_SWITCH_PORT_PROPERTY_VLAN* = ptr NDIS_SWITCH_PORT_PROPERTY_VLAN NDIS_SWITCH_PORT_PROPERTY_PROFILE_PciLocation* {.pure.} = object - PciSegmentNumber* {.bitsize:16.}: UINT32 - PciBusNumber* {.bitsize:8.}: UINT32 - PciDeviceNumber* {.bitsize:5.}: UINT32 - PciFunctionNumber* {.bitsize:3.}: UINT32 + PciSegmentNumber* {.bitsize: 16.}: UINT32 + PciBusNumber* {.bitsize: 8.}: UINT32 + PciDeviceNumber* {.bitsize: 5.}: UINT32 + PciFunctionNumber* {.bitsize: 3.}: UINT32 + NDIS_SWITCH_PORT_PROPERTY_PROFILE* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -2995,12 +3370,14 @@ PciLocation*: NDIS_SWITCH_PORT_PROPERTY_PROFILE_PciLocation CdnLabelId*: UINT32 CdnLabel*: NDIS_SWITCH_PORT_PROPERTY_PROFILE_CDN_LABEL + PNDIS_SWITCH_PORT_PROPERTY_PROFILE* = ptr NDIS_SWITCH_PORT_PROPERTY_PROFILE NDIS_SWITCH_PORT_PROPERTY_CUSTOM* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG PropertyBufferLength*: ULONG PropertyBufferOffset*: ULONG + PNDIS_SWITCH_PORT_PROPERTY_CUSTOM* = ptr NDIS_SWITCH_PORT_PROPERTY_CUSTOM NDIS_SWITCH_PORT_PROPERTY_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3014,6 +3391,7 @@ PropertyBufferLength*: ULONG PropertyBufferOffset*: ULONG Reserved*: ULONG + PNDIS_SWITCH_PORT_PROPERTY_PARAMETERS* = ptr NDIS_SWITCH_PORT_PROPERTY_PARAMETERS NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3022,7 +3400,9 @@ PropertyType*: NDIS_SWITCH_PORT_PROPERTY_TYPE PropertyId*: NDIS_SWITCH_OBJECT_ID PropertyInstanceId*: NDIS_SWITCH_OBJECT_INSTANCE_ID - PNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS* = ptr NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS + + PNDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS* = + ptr NDIS_SWITCH_PORT_PROPERTY_DELETE_PARAMETERS NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -3033,7 +3413,9 @@ FirstPropertyOffset*: ULONG NumProperties*: ULONG Reserved*: USHORT - PNDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS* = ptr NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS + + PNDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS* = + ptr NDIS_SWITCH_PORT_PROPERTY_ENUM_PARAMETERS NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG @@ -3042,6 +3424,7 @@ QwordAlignedPropertyBufferLength*: ULONG PropertyBufferLength*: ULONG PropertyBufferOffset*: ULONG + PNDIS_SWITCH_PORT_PROPERTY_ENUM_INFO* = ptr NDIS_SWITCH_PORT_PROPERTY_ENUM_INFO NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3055,18 +3438,22 @@ FeatureStatusBufferLength*: ULONG FeatureStatusBufferOffset*: ULONG Reserved*: ULONG - PNDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS* = ptr NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS + + PNDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS* = + ptr NDIS_SWITCH_PORT_FEATURE_STATUS_PARAMETERS NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG FeatureStatusBufferLength*: ULONG FeatureStatusBufferOffset*: ULONG + PNDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM* = ptr NDIS_SWITCH_PORT_FEATURE_STATUS_CUSTOM NDIS_SWITCH_PROPERTY_CUSTOM* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG PropertyBufferLength*: ULONG PropertyBufferOffset*: ULONG + PNDIS_SWITCH_PROPERTY_CUSTOM* = ptr NDIS_SWITCH_PROPERTY_CUSTOM NDIS_SWITCH_PROPERTY_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3078,6 +3465,7 @@ PropertyInstanceId*: NDIS_SWITCH_OBJECT_INSTANCE_ID PropertyBufferLength*: ULONG PropertyBufferOffset*: ULONG + PNDIS_SWITCH_PROPERTY_PARAMETERS* = ptr NDIS_SWITCH_PROPERTY_PARAMETERS NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3085,6 +3473,7 @@ PropertyType*: NDIS_SWITCH_PROPERTY_TYPE PropertyId*: NDIS_SWITCH_OBJECT_ID PropertyInstanceId*: NDIS_SWITCH_OBJECT_INSTANCE_ID + PNDIS_SWITCH_PROPERTY_DELETE_PARAMETERS* = ptr NDIS_SWITCH_PROPERTY_DELETE_PARAMETERS NDIS_SWITCH_PROPERTY_ENUM_INFO* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3094,6 +3483,7 @@ QwordAlignedPropertyBufferLength*: ULONG PropertyBufferLength*: ULONG PropertyBufferOffset*: ULONG + PNDIS_SWITCH_PROPERTY_ENUM_INFO* = ptr NDIS_SWITCH_PROPERTY_ENUM_INFO NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3103,6 +3493,7 @@ SerializationVersion*: NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION FirstPropertyOffset*: ULONG NumProperties*: ULONG + PNDIS_SWITCH_PROPERTY_ENUM_PARAMETERS* = ptr NDIS_SWITCH_PROPERTY_ENUM_PARAMETERS NDIS_SWITCH_FEATURE_STATUS_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3114,12 +3505,14 @@ SerializationVersion*: NDIS_SWITCH_OBJECT_SERIALIZATION_VERSION FeatureStatusBufferOffset*: ULONG FeatureStatusBufferLength*: ULONG + PNDIS_SWITCH_FEATURE_STATUS_PARAMETERS* = ptr NDIS_SWITCH_FEATURE_STATUS_PARAMETERS NDIS_SWITCH_FEATURE_STATUS_CUSTOM* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG FeatureStatusCustomBufferLength*: ULONG FeatureStatusCustomBufferOffset*: ULONG + PNDIS_SWITCH_FEATURE_STATUS_CUSTOM* = ptr NDIS_SWITCH_FEATURE_STATUS_CUSTOM NDIS_SWITCH_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3128,6 +3521,7 @@ SwitchFriendlyName*: NDIS_SWITCH_FRIENDLYNAME NumSwitchPorts*: UINT32 IsActive*: BOOLEAN + PNDIS_SWITCH_PARAMETERS* = ptr NDIS_SWITCH_PARAMETERS NDIS_SWITCH_PORT_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3138,6 +3532,7 @@ PortType*: NDIS_SWITCH_PORT_TYPE IsValidationPort*: BOOLEAN PortState*: NDIS_SWITCH_PORT_STATE + PNDIS_SWITCH_PORT_PARAMETERS* = ptr NDIS_SWITCH_PORT_PARAMETERS NDIS_SWITCH_PORT_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3145,6 +3540,7 @@ FirstElementOffset*: USHORT NumElements*: ULONG ElementSize*: ULONG + PNDIS_SWITCH_PORT_ARRAY* = ptr NDIS_SWITCH_PORT_ARRAY NDIS_SWITCH_NIC_PARAMETERS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3164,6 +3560,7 @@ VMMacAddress*: array[NDIS_MAX_PHYS_ADDRESS_LENGTH, UCHAR] CurrentMacAddress*: array[NDIS_MAX_PHYS_ADDRESS_LENGTH, UCHAR] VFAssigned*: BOOLEAN + PNDIS_SWITCH_NIC_PARAMETERS* = ptr NDIS_SWITCH_NIC_PARAMETERS NDIS_SWITCH_NIC_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3171,6 +3568,7 @@ FirstElementOffset*: USHORT NumElements*: ULONG ElementSize*: ULONG + PNDIS_SWITCH_NIC_ARRAY* = ptr NDIS_SWITCH_NIC_ARRAY NDIS_OID_REQUEST* {.pure.} = object PNDIS_OID_REQUEST* = ptr NDIS_OID_REQUEST @@ -3182,6 +3580,7 @@ DestinationPortId*: NDIS_SWITCH_PORT_ID DestinationNicIndex*: NDIS_SWITCH_NIC_INDEX OidRequest*: PNDIS_OID_REQUEST + PNDIS_SWITCH_NIC_OID_REQUEST* = ptr NDIS_SWITCH_NIC_OID_REQUEST NDIS_SWITCH_NIC_SAVE_STATE* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3193,6 +3592,7 @@ FeatureClassId*: GUID SaveDataSize*: USHORT SaveDataOffset*: USHORT + PNDIS_SWITCH_NIC_SAVE_STATE* = ptr NDIS_SWITCH_NIC_SAVE_STATE NDIS_PORT_STATE* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3205,6 +3605,7 @@ SendAuthorizationState*: NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState*: NDIS_PORT_AUTHORIZATION_STATE Flags*: ULONG + PNDIS_PORT_STATE* = ptr NDIS_PORT_STATE NDIS_PORT_CHARACTERISTICS* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3219,6 +3620,7 @@ RcvControlState*: NDIS_PORT_CONTROL_STATE SendAuthorizationState*: NDIS_PORT_AUTHORIZATION_STATE RcvAuthorizationState*: NDIS_PORT_AUTHORIZATION_STATE + PNDIS_PORT_CHARACTERISTICS* = ptr NDIS_PORT_CHARACTERISTICS NDIS_PORT* {.pure.} = object Next*: PNDIS_PORT @@ -3226,6 +3628,7 @@ MiniportReserved*: PVOID ProtocolReserved*: PVOID PortCharacteristics*: NDIS_PORT_CHARACTERISTICS + PNDIS_PORT* = ptr NDIS_PORT NDIS_PORT_ARRAY* {.pure.} = object Header*: NDIS_OBJECT_HEADER @@ -3233,16 +3636,18 @@ OffsetFirstPort*: ULONG ElementSize*: ULONG Ports*: array[1, NDIS_PORT_CHARACTERISTICS] + PNDIS_PORT_ARRAY* = ptr NDIS_PORT_ARRAY MIB_IF_ROW2_InterfaceAndOperStatusFlags* {.pure.} = object - HardwareInterface* {.bitsize:1.}: BOOLEAN - FilterInterface* {.bitsize:1.}: BOOLEAN - ConnectorPresent* {.bitsize:1.}: BOOLEAN - NotAuthenticated* {.bitsize:1.}: BOOLEAN - NotMediaConnected* {.bitsize:1.}: BOOLEAN - Paused* {.bitsize:1.}: BOOLEAN - LowPower* {.bitsize:1.}: BOOLEAN - EndPointInterface* {.bitsize:1.}: BOOLEAN + HardwareInterface* {.bitsize: 1.}: BOOLEAN + FilterInterface* {.bitsize: 1.}: BOOLEAN + ConnectorPresent* {.bitsize: 1.}: BOOLEAN + NotAuthenticated* {.bitsize: 1.}: BOOLEAN + NotMediaConnected* {.bitsize: 1.}: BOOLEAN + Paused* {.bitsize: 1.}: BOOLEAN + LowPower* {.bitsize: 1.}: BOOLEAN + EndPointInterface* {.bitsize: 1.}: BOOLEAN + MIB_IF_ROW2* {.pure.} = object InterfaceLuid*: NET_LUID InterfaceIndex*: NET_IFINDEX @@ -3285,10 +3690,12 @@ OutMulticastOctets*: ULONG64 OutBroadcastOctets*: ULONG64 OutQLen*: ULONG64 + PMIB_IF_ROW2* = ptr MIB_IF_ROW2 MIB_IF_TABLE2* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_IF_ROW2] + PMIB_IF_TABLE2* = ptr MIB_IF_TABLE2 MIB_IPINTERFACE_ROW* {.pure.} = object Family*: ADDRESS_FAMILY @@ -3326,31 +3733,39 @@ TransmitOffload*: NL_INTERFACE_OFFLOAD_ROD ReceiveOffload*: NL_INTERFACE_OFFLOAD_ROD DisableDefaultRoutes*: BOOLEAN + PMIB_IPINTERFACE_ROW* = ptr MIB_IPINTERFACE_ROW MIB_IPINTERFACE_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_IPINTERFACE_ROW] + PMIB_IPINTERFACE_TABLE* = ptr MIB_IPINTERFACE_TABLE MIB_IFSTACK_ROW* {.pure.} = object HigherLayerInterfaceIndex*: NET_IFINDEX LowerLayerInterfaceIndex*: NET_IFINDEX + PMIB_IFSTACK_ROW* = ptr MIB_IFSTACK_ROW MIB_INVERTEDIFSTACK_ROW* {.pure.} = object LowerLayerInterfaceIndex*: NET_IFINDEX HigherLayerInterfaceIndex*: NET_IFINDEX + PMIB_INVERTEDIFSTACK_ROW* = ptr MIB_INVERTEDIFSTACK_ROW MIB_IFSTACK_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_IFSTACK_ROW] + PMIB_IFSTACK_TABLE* = ptr MIB_IFSTACK_TABLE MIB_INVERTEDIFSTACK_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_INVERTEDIFSTACK_ROW] + PMIB_INVERTEDIFSTACK_TABLE* = ptr MIB_INVERTEDIFSTACK_TABLE MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES* {.pure.} = object InboundBandwidthInformation*: NL_BANDWIDTH_INFORMATION OutboundBandwidthInformation*: NL_BANDWIDTH_INFORMATION - PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES* = ptr MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES + + PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES* = + ptr MIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES MIB_UNICASTIPADDRESS_ROW* {.pure.} = object Address*: SOCKADDR_INET InterfaceLuid*: NET_LUID @@ -3364,34 +3779,41 @@ DadState*: NL_DAD_STATE ScopeId*: SCOPE_ID CreationTimeStamp*: LARGE_INTEGER + PMIB_UNICASTIPADDRESS_ROW* = ptr MIB_UNICASTIPADDRESS_ROW MIB_UNICASTIPADDRESS_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_UNICASTIPADDRESS_ROW] + PMIB_UNICASTIPADDRESS_TABLE* = ptr MIB_UNICASTIPADDRESS_TABLE MIB_ANYCASTIPADDRESS_ROW* {.pure.} = object Address*: SOCKADDR_INET InterfaceLuid*: NET_LUID InterfaceIndex*: NET_IFINDEX ScopeId*: SCOPE_ID + PMIB_ANYCASTIPADDRESS_ROW* = ptr MIB_ANYCASTIPADDRESS_ROW MIB_ANYCASTIPADDRESS_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_ANYCASTIPADDRESS_ROW] + PMIB_ANYCASTIPADDRESS_TABLE* = ptr MIB_ANYCASTIPADDRESS_TABLE MIB_MULTICASTIPADDRESS_ROW* {.pure.} = object Address*: SOCKADDR_INET InterfaceIndex*: NET_IFINDEX InterfaceLuid*: NET_LUID ScopeId*: SCOPE_ID + PMIB_MULTICASTIPADDRESS_ROW* = ptr MIB_MULTICASTIPADDRESS_ROW MIB_MULTICASTIPADDRESS_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_MULTICASTIPADDRESS_ROW] + PMIB_MULTICASTIPADDRESS_TABLE* = ptr MIB_MULTICASTIPADDRESS_TABLE IP_ADDRESS_PREFIX* {.pure.} = object Prefix*: SOCKADDR_INET PrefixLength*: UINT8 + PIP_ADDRESS_PREFIX* = ptr IP_ADDRESS_PREFIX MIB_IPFORWARD_ROW2* {.pure.} = object InterfaceLuid*: NET_LUID @@ -3409,14 +3831,17 @@ Immortal*: BOOLEAN Age*: ULONG Origin*: NL_ROUTE_ORIGIN + PMIB_IPFORWARD_ROW2* = ptr MIB_IPFORWARD_ROW2 MIB_IPFORWARD_TABLE2* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_IPFORWARD_ROW2] + PMIB_IPFORWARD_TABLE2* = ptr MIB_IPFORWARD_TABLE2 MIB_IPPATH_ROW_UNION1* {.pure, union.} = object LastReachable*: ULONG LastUnreachable*: ULONG + MIB_IPPATH_ROW* {.pure.} = object Source*: SOCKADDR_INET Destination*: SOCKADDR_INET @@ -3430,20 +3855,25 @@ IsReachable*: BOOLEAN LinkTransmitSpeed*: ULONG64 LinkReceiveSpeed*: ULONG64 + PMIB_IPPATH_ROW* = ptr MIB_IPPATH_ROW MIB_IPPATH_TABLE* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_IPPATH_ROW] + PMIB_IPPATH_TABLE* = ptr MIB_IPPATH_TABLE MIB_IPNET_ROW2_UNION1_STRUCT1* {.pure.} = object - IsRouter* {.bitsize:1.}: BOOLEAN - IsUnreachable* {.bitsize:1.}: BOOLEAN + IsRouter* {.bitsize: 1.}: BOOLEAN + IsUnreachable* {.bitsize: 1.}: BOOLEAN + MIB_IPNET_ROW2_UNION1* {.pure, union.} = object struct1*: MIB_IPNET_ROW2_UNION1_STRUCT1 Flags*: UCHAR + MIB_IPNET_ROW2_ReachabilityTime* {.pure, union.} = object LastReachable*: ULONG LastUnreachable*: ULONG + MIB_IPNET_ROW2* {.pure.} = object Address*: SOCKADDR_INET InterfaceIndex*: NET_IFINDEX @@ -3453,13 +3883,16 @@ State*: NL_NEIGHBOR_STATE union1*: MIB_IPNET_ROW2_UNION1 ReachabilityTime*: MIB_IPNET_ROW2_ReachabilityTime + PMIB_IPNET_ROW2* = ptr MIB_IPNET_ROW2 MIB_IPNET_TABLE2* {.pure.} = object NumEntries*: ULONG Table*: array[ANY_SIZE, MIB_IPNET_ROW2] + PMIB_IPNET_TABLE2* = ptr MIB_IPNET_TABLE2 IPv6Addr* = IN6_ADDR NETIO_STATUS* = NTSTATUS + const nldsInvalid* = 0 nldsTentative* = 1 @@ -3756,45 +4189,45 @@ tcpConnectionOffloadStateMax* = 4 IPRTRMGR_PID* = 10000 IF_NUMBER* = 0 - IF_TABLE* = IF_NUMBER+1 - IF_ROW* = IF_TABLE+1 - IP_STATS* = IF_ROW+1 - IP_ADDRTABLE* = IP_STATS+1 - IP_ADDRROW* = IP_ADDRTABLE+1 - IP_FORWARDNUMBER* = IP_ADDRROW+1 - IP_FORWARDTABLE* = IP_FORWARDNUMBER+1 - IP_FORWARDROW* = IP_FORWARDTABLE+1 - IP_NETTABLE* = IP_FORWARDROW+1 - IP_NETROW* = IP_NETTABLE+1 - ICMP_STATS* = IP_NETROW+1 - TCP_STATS* = ICMP_STATS+1 - TCP_TABLE* = TCP_STATS+1 - TCP_ROW* = TCP_TABLE+1 - UDP_STATS* = TCP_ROW+1 - UDP_TABLE* = UDP_STATS+1 - UDP_ROW* = UDP_TABLE+1 - MCAST_MFE* = UDP_ROW+1 - MCAST_MFE_STATS* = MCAST_MFE+1 - BEST_IF* = MCAST_MFE_STATS+1 - BEST_ROUTE* = BEST_IF+1 - PROXY_ARP* = BEST_ROUTE+1 - MCAST_IF_ENTRY* = PROXY_ARP+1 - MCAST_GLOBAL* = MCAST_IF_ENTRY+1 - IF_STATUS* = MCAST_GLOBAL+1 - MCAST_BOUNDARY* = IF_STATUS+1 - MCAST_SCOPE* = MCAST_BOUNDARY+1 - DEST_MATCHING* = MCAST_SCOPE+1 - DEST_LONGER* = DEST_MATCHING+1 - DEST_SHORTER* = DEST_LONGER+1 - ROUTE_MATCHING* = DEST_SHORTER+1 - ROUTE_LONGER* = ROUTE_MATCHING+1 - ROUTE_SHORTER* = ROUTE_LONGER+1 - ROUTE_STATE* = ROUTE_SHORTER+1 - MCAST_MFE_STATS_EX* = ROUTE_STATE+1 - IP6_STATS* = MCAST_MFE_STATS_EX+1 - UDP6_STATS* = IP6_STATS+1 - TCP6_STATS* = UDP6_STATS+1 - NUMBER_OF_EXPORTED_VARIABLES* = TCP6_STATS+1 + IF_TABLE* = IF_NUMBER + 1 + IF_ROW* = IF_TABLE + 1 + IP_STATS* = IF_ROW + 1 + IP_ADDRTABLE* = IP_STATS + 1 + IP_ADDRROW* = IP_ADDRTABLE + 1 + IP_FORWARDNUMBER* = IP_ADDRROW + 1 + IP_FORWARDTABLE* = IP_FORWARDNUMBER + 1 + IP_FORWARDROW* = IP_FORWARDTABLE + 1 + IP_NETTABLE* = IP_FORWARDROW + 1 + IP_NETROW* = IP_NETTABLE + 1 + ICMP_STATS* = IP_NETROW + 1 + TCP_STATS* = ICMP_STATS + 1 + TCP_TABLE* = TCP_STATS + 1 + TCP_ROW* = TCP_TABLE + 1 + UDP_STATS* = TCP_ROW + 1 + UDP_TABLE* = UDP_STATS + 1 + UDP_ROW* = UDP_TABLE + 1 + MCAST_MFE* = UDP_ROW + 1 + MCAST_MFE_STATS* = MCAST_MFE + 1 + BEST_IF* = MCAST_MFE_STATS + 1 + BEST_ROUTE* = BEST_IF + 1 + PROXY_ARP* = BEST_ROUTE + 1 + MCAST_IF_ENTRY* = PROXY_ARP + 1 + MCAST_GLOBAL* = MCAST_IF_ENTRY + 1 + IF_STATUS* = MCAST_GLOBAL + 1 + MCAST_BOUNDARY* = IF_STATUS + 1 + MCAST_SCOPE* = MCAST_BOUNDARY + 1 + DEST_MATCHING* = MCAST_SCOPE + 1 + DEST_LONGER* = DEST_MATCHING + 1 + DEST_SHORTER* = DEST_LONGER + 1 + ROUTE_MATCHING* = DEST_SHORTER + 1 + ROUTE_LONGER* = ROUTE_MATCHING + 1 + ROUTE_SHORTER* = ROUTE_LONGER + 1 + ROUTE_STATE* = ROUTE_SHORTER + 1 + MCAST_MFE_STATS_EX* = ROUTE_STATE + 1 + IP6_STATS* = MCAST_MFE_STATS_EX + 1 + UDP6_STATS* = IP6_STATS + 1 + TCP6_STATS* = UDP6_STATS + 1 + NUMBER_OF_EXPORTED_VARIABLES* = TCP6_STATS + 1 ICMP6_DST_UNREACH* = 1 ICMP6_PACKET_TOO_BIG* = 2 ICMP6_TIME_EXCEEDED* = 3 @@ -3892,56 +4325,56 @@ IP_EXPORT_INCLUDED* = 1 IP_STATUS_BASE* = 11000 IP_SUCCESS* = 0 - IP_BUF_TOO_SMALL* = IP_STATUS_BASE+1 - IP_DEST_NET_UNREACHABLE* = IP_STATUS_BASE+2 - IP_DEST_HOST_UNREACHABLE* = IP_STATUS_BASE+3 - IP_DEST_PROT_UNREACHABLE* = IP_STATUS_BASE+4 - IP_DEST_PORT_UNREACHABLE* = IP_STATUS_BASE+5 - IP_NO_RESOURCES* = IP_STATUS_BASE+6 - IP_BAD_OPTION* = IP_STATUS_BASE+7 - IP_HW_ERROR* = IP_STATUS_BASE+8 - IP_PACKET_TOO_BIG* = IP_STATUS_BASE+9 - IP_REQ_TIMED_OUT* = IP_STATUS_BASE+10 - IP_BAD_REQ* = IP_STATUS_BASE+11 - IP_BAD_ROUTE* = IP_STATUS_BASE+12 - IP_TTL_EXPIRED_TRANSIT* = IP_STATUS_BASE+13 - IP_TTL_EXPIRED_REASSEM* = IP_STATUS_BASE+14 - IP_PARAM_PROBLEM* = IP_STATUS_BASE+15 - IP_SOURCE_QUENCH* = IP_STATUS_BASE+16 - IP_OPTION_TOO_BIG* = IP_STATUS_BASE+17 - IP_BAD_DESTINATION* = IP_STATUS_BASE+18 - IP_DEST_NO_ROUTE* = IP_STATUS_BASE+2 - IP_DEST_ADDR_UNREACHABLE* = IP_STATUS_BASE+3 - IP_DEST_PROHIBITED* = IP_STATUS_BASE+4 - IP_HOP_LIMIT_EXCEEDED* = IP_STATUS_BASE+13 - IP_REASSEMBLY_TIME_EXCEEDED* = IP_STATUS_BASE+14 - IP_PARAMETER_PROBLEM* = IP_STATUS_BASE+15 - IP_DEST_UNREACHABLE* = IP_STATUS_BASE+40 - IP_TIME_EXCEEDED* = IP_STATUS_BASE+41 - IP_BAD_HEADER* = IP_STATUS_BASE+42 - IP_UNRECOGNIZED_NEXT_HEADER* = IP_STATUS_BASE+43 - IP_ICMP_ERROR* = IP_STATUS_BASE+44 - IP_DEST_SCOPE_MISMATCH* = IP_STATUS_BASE+45 - IP_ADDR_DELETED* = IP_STATUS_BASE+19 - IP_SPEC_MTU_CHANGE* = IP_STATUS_BASE+20 - IP_MTU_CHANGE* = IP_STATUS_BASE+21 - IP_UNLOAD* = IP_STATUS_BASE+22 - IP_ADDR_ADDED* = IP_STATUS_BASE+23 - IP_MEDIA_CONNECT* = IP_STATUS_BASE+24 - IP_MEDIA_DISCONNECT* = IP_STATUS_BASE+25 - IP_BIND_ADAPTER* = IP_STATUS_BASE+26 - IP_UNBIND_ADAPTER* = IP_STATUS_BASE+27 - IP_DEVICE_DOES_NOT_EXIST* = IP_STATUS_BASE+28 - IP_DUPLICATE_ADDRESS* = IP_STATUS_BASE+29 - IP_INTERFACE_METRIC_CHANGE* = IP_STATUS_BASE+30 - IP_RECONFIG_SECFLTR* = IP_STATUS_BASE+31 - IP_NEGOTIATING_IPSEC* = IP_STATUS_BASE+32 - IP_INTERFACE_WOL_CAPABILITY_CHANGE* = IP_STATUS_BASE+33 - IP_DUPLICATE_IPADD* = IP_STATUS_BASE+34 - IP_NO_FURTHER_SENDS* = IP_STATUS_BASE+35 - IP_GENERAL_FAILURE* = IP_STATUS_BASE+50 + IP_BUF_TOO_SMALL* = IP_STATUS_BASE + 1 + IP_DEST_NET_UNREACHABLE* = IP_STATUS_BASE + 2 + IP_DEST_HOST_UNREACHABLE* = IP_STATUS_BASE + 3 + IP_DEST_PROT_UNREACHABLE* = IP_STATUS_BASE + 4 + IP_DEST_PORT_UNREACHABLE* = IP_STATUS_BASE + 5 + IP_NO_RESOURCES* = IP_STATUS_BASE + 6 + IP_BAD_OPTION* = IP_STATUS_BASE + 7 + IP_HW_ERROR* = IP_STATUS_BASE + 8 + IP_PACKET_TOO_BIG* = IP_STATUS_BASE + 9 + IP_REQ_TIMED_OUT* = IP_STATUS_BASE + 10 + IP_BAD_REQ* = IP_STATUS_BASE + 11 + IP_BAD_ROUTE* = IP_STATUS_BASE + 12 + IP_TTL_EXPIRED_TRANSIT* = IP_STATUS_BASE + 13 + IP_TTL_EXPIRED_REASSEM* = IP_STATUS_BASE + 14 + IP_PARAM_PROBLEM* = IP_STATUS_BASE + 15 + IP_SOURCE_QUENCH* = IP_STATUS_BASE + 16 + IP_OPTION_TOO_BIG* = IP_STATUS_BASE + 17 + IP_BAD_DESTINATION* = IP_STATUS_BASE + 18 + IP_DEST_NO_ROUTE* = IP_STATUS_BASE + 2 + IP_DEST_ADDR_UNREACHABLE* = IP_STATUS_BASE + 3 + IP_DEST_PROHIBITED* = IP_STATUS_BASE + 4 + IP_HOP_LIMIT_EXCEEDED* = IP_STATUS_BASE + 13 + IP_REASSEMBLY_TIME_EXCEEDED* = IP_STATUS_BASE + 14 + IP_PARAMETER_PROBLEM* = IP_STATUS_BASE + 15 + IP_DEST_UNREACHABLE* = IP_STATUS_BASE + 40 + IP_TIME_EXCEEDED* = IP_STATUS_BASE + 41 + IP_BAD_HEADER* = IP_STATUS_BASE + 42 + IP_UNRECOGNIZED_NEXT_HEADER* = IP_STATUS_BASE + 43 + IP_ICMP_ERROR* = IP_STATUS_BASE + 44 + IP_DEST_SCOPE_MISMATCH* = IP_STATUS_BASE + 45 + IP_ADDR_DELETED* = IP_STATUS_BASE + 19 + IP_SPEC_MTU_CHANGE* = IP_STATUS_BASE + 20 + IP_MTU_CHANGE* = IP_STATUS_BASE + 21 + IP_UNLOAD* = IP_STATUS_BASE + 22 + IP_ADDR_ADDED* = IP_STATUS_BASE + 23 + IP_MEDIA_CONNECT* = IP_STATUS_BASE + 24 + IP_MEDIA_DISCONNECT* = IP_STATUS_BASE + 25 + IP_BIND_ADAPTER* = IP_STATUS_BASE + 26 + IP_UNBIND_ADAPTER* = IP_STATUS_BASE + 27 + IP_DEVICE_DOES_NOT_EXIST* = IP_STATUS_BASE + 28 + IP_DUPLICATE_ADDRESS* = IP_STATUS_BASE + 29 + IP_INTERFACE_METRIC_CHANGE* = IP_STATUS_BASE + 30 + IP_RECONFIG_SECFLTR* = IP_STATUS_BASE + 31 + IP_NEGOTIATING_IPSEC* = IP_STATUS_BASE + 32 + IP_INTERFACE_WOL_CAPABILITY_CHANGE* = IP_STATUS_BASE + 33 + IP_DUPLICATE_IPADD* = IP_STATUS_BASE + 34 + IP_NO_FURTHER_SENDS* = IP_STATUS_BASE + 35 + IP_GENERAL_FAILURE* = IP_STATUS_BASE + 50 MAX_IP_STATUS* = IP_GENERAL_FAILURE - IP_PENDING* = IP_STATUS_BASE+255 + IP_PENDING* = IP_STATUS_BASE + 255 IP_FLAG_DF* = 0x2 IP_OPT_EOL* = 0 IP_OPT_NOP* = 1 @@ -4055,14 +4488,18 @@ NET_STRING_NAMED_ADDRESS* = 0x00000100 NET_STRING_NAMED_SERVICE* = 0x00000200 NET_STRING_IP_ADDRESS* = NET_STRING_IPV4_ADDRESS or NET_STRING_IPV6_ADDRESS - NET_STRING_IP_ADDRESS_NO_SCOPE* = NET_STRING_IPV4_ADDRESS or NET_STRING_IPV6_ADDRESS_NO_SCOPE + NET_STRING_IP_ADDRESS_NO_SCOPE* = + NET_STRING_IPV4_ADDRESS or NET_STRING_IPV6_ADDRESS_NO_SCOPE NET_STRING_IP_SERVICE* = NET_STRING_IPV4_SERVICE or NET_STRING_IPV6_SERVICE - NET_STRING_IP_SERVICE_NO_SCOPE* = NET_STRING_IPV4_SERVICE or NET_STRING_IPV6_SERVICE_NO_SCOPE + NET_STRING_IP_SERVICE_NO_SCOPE* = + NET_STRING_IPV4_SERVICE or NET_STRING_IPV6_SERVICE_NO_SCOPE NET_STRING_IP_NETWORK* = NET_STRING_IPV4_NETWORK or NET_STRING_IPV6_NETWORK NET_STRING_ANY_ADDRESS* = NET_STRING_NAMED_ADDRESS or NET_STRING_IP_ADDRESS - NET_STRING_ANY_ADDRESS_NO_SCOPE* = NET_STRING_NAMED_ADDRESS or NET_STRING_IP_ADDRESS_NO_SCOPE + NET_STRING_ANY_ADDRESS_NO_SCOPE* = + NET_STRING_NAMED_ADDRESS or NET_STRING_IP_ADDRESS_NO_SCOPE NET_STRING_ANY_SERVICE* = NET_STRING_NAMED_SERVICE or NET_STRING_IP_SERVICE - NET_STRING_ANY_SERVICE_NO_SCOPE* = NET_STRING_NAMED_SERVICE or NET_STRING_IP_SERVICE_NO_SCOPE + NET_STRING_ANY_SERVICE_NO_SCOPE* = + NET_STRING_NAMED_SERVICE or NET_STRING_IP_SERVICE_NO_SCOPE NET_ADDRESS_FORMAT_UNSPECIFIED* = 0 NET_ADDRESS_DNS_NAME* = 1 NET_ADDRESS_IPV4* = 2 @@ -4717,16 +5154,16 @@ Ndis802_11PrivFilter8021xWEP* = 1 Ndis802_11WEPEnabled* = 0 Ndis802_11Encryption1Enabled* = Ndis802_11WEPEnabled - Ndis802_11WEPDisabled* = Ndis802_11WEPEnabled+1 + Ndis802_11WEPDisabled* = Ndis802_11WEPEnabled + 1 Ndis802_11EncryptionDisabled* = Ndis802_11WEPDisabled - Ndis802_11WEPKeyAbsent* = Ndis802_11WEPDisabled+1 + Ndis802_11WEPKeyAbsent* = Ndis802_11WEPDisabled + 1 Ndis802_11Encryption1KeyAbsent* = Ndis802_11WEPKeyAbsent - Ndis802_11WEPNotSupported* = Ndis802_11WEPKeyAbsent+1 + Ndis802_11WEPNotSupported* = Ndis802_11WEPKeyAbsent + 1 Ndis802_11EncryptionNotSupported* = Ndis802_11WEPNotSupported - Ndis802_11Encryption2Enabled* = Ndis802_11WEPNotSupported+1 - Ndis802_11Encryption2KeyAbsent* = Ndis802_11WEPNotSupported+2 - Ndis802_11Encryption3Enabled* = Ndis802_11WEPNotSupported+3 - Ndis802_11Encryption3KeyAbsent* = Ndis802_11WEPNotSupported+4 + Ndis802_11Encryption2Enabled* = Ndis802_11WEPNotSupported + 1 + Ndis802_11Encryption2KeyAbsent* = Ndis802_11WEPNotSupported + 2 + Ndis802_11Encryption3Enabled* = Ndis802_11WEPNotSupported + 3 + Ndis802_11Encryption3KeyAbsent* = Ndis802_11WEPNotSupported + 4 Ndis802_11ReloadWEPKeys* = 0 Ndis802_11MediaStreamOff* = 0 Ndis802_11MediaStreamOn* = 1 @@ -5150,22 +5587,54 @@ NDIS_OFFLOAD_PARAMETERS_REVISION_2* = 2 NDIS_OFFLOAD_PARAMETERS_REVISION_3* = 3 NDIS_OFFLOAD_PARAMETERS_SKIP_REGISTRY_UPDATE* = 0x00000001 -proc Flags*(self: IP_ADAPTER_UNICAST_ADDRESS_XP): DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP): var DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: IP_ADAPTER_UNICAST_ADDRESS_LH): DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH): var DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: IP_ADAPTER_ANYCAST_ADDRESS_XP): DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP): var DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: IP_ADAPTER_MULTICAST_ADDRESS_XP): DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP): var DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: IP_ADAPTER_PREFIX_XP): DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: var IP_ADAPTER_PREFIX_XP): var DWORD {.inline.} = self.union1.struct1.Flags -proc Flags*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.Flags -proc Flags*(self: var IP_ADAPTER_ADDRESSES_LH): var ULONG {.inline.} = self.union2.Flags -proc Flags*(self: MIB_IPNET_ROW2): UCHAR {.inline.} = self.union1.Flags -proc Flags*(self: var MIB_IPNET_ROW2): var UCHAR {.inline.} = self.union1.Flags -proc EncapsulationTypes*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = self.struct2.EncapsulationTypes -proc EncapsulationTypes*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = self.struct2.EncapsulationTypes +proc Flags*(self: IP_ADAPTER_UNICAST_ADDRESS_XP): DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP): var DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: IP_ADAPTER_UNICAST_ADDRESS_LH): DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH): var DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: IP_ADAPTER_ANYCAST_ADDRESS_XP): DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP): var DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: IP_ADAPTER_MULTICAST_ADDRESS_XP): DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP): var DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: IP_ADAPTER_PREFIX_XP): DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: var IP_ADAPTER_PREFIX_XP): var DWORD {.inline.} = + self.union1.struct1.Flags + +proc Flags*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.Flags + +proc Flags*(self: var IP_ADAPTER_ADDRESSES_LH): var ULONG {.inline.} = + self.union2.Flags + +proc Flags*(self: MIB_IPNET_ROW2): UCHAR {.inline.} = + self.union1.Flags + +proc Flags*(self: var MIB_IPNET_ROW2): var UCHAR {.inline.} = + self.union1.Flags + +proc EncapsulationTypes*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = + self.struct2.EncapsulationTypes + +proc EncapsulationTypes*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = + self.struct2.EncapsulationTypes + const NDIS_OFFLOAD_NOT_SUPPORTED* = 0 NDIS_OFFLOAD_SUPPORTED* = 1 @@ -5331,7 +5800,8 @@ NDIS_RECEIVE_FILTER_VM_QUEUES_ENABLED* = 0x00000001 NDIS_NIC_SWITCH_CAPS_VLAN_SUPPORTED* = 0x00000001 NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED* = 0x00000002 - NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED* = 0x00000004 + NDIS_NIC_SWITCH_CAPS_ASYMMETRIC_QUEUE_PAIRS_FOR_NONDEFAULT_VPORT_SUPPORTED* = + 0x00000004 NDIS_NIC_SWITCH_CAPS_VF_RSS_SUPPORTED* = 0x00000008 NDIS_NIC_SWITCH_CAPS_SINGLE_VPORT_POOL* = 0x00000010 NDIS_DEFAULT_RECEIVE_QUEUE_ID* = 0 @@ -5506,7 +5976,7 @@ ndisProcessorVendorUnknown* = 0 ndisProcessorVendorGenuinIntel* = 1 ndisProcessorVendorGenuineIntel* = ndisProcessorVendorGenuinIntel - ndisProcessorVendorAuthenticAMD* = ndisProcessorVendorGenuinIntel+1 + ndisProcessorVendorAuthenticAMD* = ndisProcessorVendorGenuinIntel + 1 NDIS_HYPERVISOR_INFO_FLAG_HYPERVISOR_PRESENT* = 0x00000001 NDIS_RSS_PROCESSOR_INFO_REVISION_1* = 1 NDIS_SYSTEM_PROCESSOR_INFO_EX_REVISION_1* = 1 @@ -5641,39 +6111,99 @@ NDIS_SWITCH_NIC_OID_REQUEST_REVISION_1* = 1 NDIS_SWITCH_FEATURE_STATUS_PARAMETERS_REVISION_1* = 1 NDIS_SWITCH_NIC_SAVE_STATE_REVISION_1* = 1 -type - NDIS_NDK_STATISTICS_INFO* {.pure.} = object - Header*: NDIS_OBJECT_HEADER - Flags*: ULONG - CounterSet*: NDIS_NDK_PERFORMANCE_COUNTERS -proc Length*(self: IP_ADAPTER_UNICAST_ADDRESS_XP): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_UNICAST_ADDRESS_LH): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_ANYCAST_ADDRESS_XP): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_MULTICAST_ADDRESS_XP): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_DNS_SERVER_ADDRESS_XP): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_PREFIX_XP): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_PREFIX_XP): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_WINS_SERVER_ADDRESS_LH): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_GATEWAY_ADDRESS_LH): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_ADDRESSES_LH): var ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: IP_ADAPTER_ADDRESSES_XP): ULONG {.inline.} = self.union1.struct1.Length -proc Length*(self: var IP_ADAPTER_ADDRESSES_XP): var ULONG {.inline.} = self.union1.struct1.Length -proc VlanProperties*(self: NDIS_SWITCH_PORT_PROPERTY_VLAN): NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties {.inline.} = self.union1.VlanProperties -proc VlanProperties*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN): var NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties {.inline.} = self.union1.VlanProperties -proc Reserved*(self: IP_ADAPTER_DNS_SERVER_ADDRESS_XP): DWORD {.inline.} = self.union1.struct1.Reserved -proc Reserved*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP): var DWORD {.inline.} = self.union1.struct1.Reserved -proc Reserved*(self: IP_ADAPTER_WINS_SERVER_ADDRESS_LH): DWORD {.inline.} = self.union1.struct1.Reserved -proc Reserved*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH): var DWORD {.inline.} = self.union1.struct1.Reserved -proc Reserved*(self: IP_ADAPTER_GATEWAY_ADDRESS_LH): DWORD {.inline.} = self.union1.struct1.Reserved -proc Reserved*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH): var DWORD {.inline.} = self.union1.struct1.Reserved +type NDIS_NDK_STATISTICS_INFO* {.pure.} = object + Header*: NDIS_OBJECT_HEADER + Flags*: ULONG + CounterSet*: NDIS_NDK_PERFORMANCE_COUNTERS + +proc Length*(self: IP_ADAPTER_UNICAST_ADDRESS_XP): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_UNICAST_ADDRESS_LH): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_ANYCAST_ADDRESS_XP): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_MULTICAST_ADDRESS_XP): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_DNS_SERVER_ADDRESS_XP): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_PREFIX_XP): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_PREFIX_XP): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_WINS_SERVER_ADDRESS_LH): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_GATEWAY_ADDRESS_LH): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_ADDRESSES_LH): var ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: IP_ADAPTER_ADDRESSES_XP): ULONG {.inline.} = + self.union1.struct1.Length + +proc Length*(self: var IP_ADAPTER_ADDRESSES_XP): var ULONG {.inline.} = + self.union1.struct1.Length + +proc VlanProperties*( + self: NDIS_SWITCH_PORT_PROPERTY_VLAN +): NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties {.inline.} = + self.union1.VlanProperties + +proc VlanProperties*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN +): var NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties {.inline.} = + self.union1.VlanProperties + +proc Reserved*(self: IP_ADAPTER_DNS_SERVER_ADDRESS_XP): DWORD {.inline.} = + self.union1.struct1.Reserved + +proc Reserved*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP): var DWORD {.inline.} = + self.union1.struct1.Reserved + +proc Reserved*(self: IP_ADAPTER_WINS_SERVER_ADDRESS_LH): DWORD {.inline.} = + self.union1.struct1.Reserved + +proc Reserved*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH): var DWORD {.inline.} = + self.union1.struct1.Reserved + +proc Reserved*(self: IP_ADAPTER_GATEWAY_ADDRESS_LH): DWORD {.inline.} = + self.union1.struct1.Reserved + +proc Reserved*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH): var DWORD {.inline.} = + self.union1.struct1.Reserved + const NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED* = 0x1 NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED* = 0x2 @@ -5753,329 +6283,1245 @@ NDIS_PF_FUNCTION_ID* = not USHORT(0) NDIS_INVALID_VF_FUNCTION_ID* = not USHORT(0) type - PIPINTERFACE_CHANGE_CALLBACK* = proc (CallerContext: PVOID, Row: PMIB_IPINTERFACE_ROW, NotificationType: MIB_NOTIFICATION_TYPE): VOID {.stdcall.} - PUNICAST_IPADDRESS_CHANGE_CALLBACK* = proc (CallerContext: PVOID, Row: PMIB_UNICASTIPADDRESS_ROW, NotificationType: MIB_NOTIFICATION_TYPE): VOID {.stdcall.} - PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK* = proc (CallerContext: PVOID, AddressTable: PMIB_UNICASTIPADDRESS_TABLE): VOID {.stdcall.} - PTEREDO_PORT_CHANGE_CALLBACK* = proc (CallerContext: PVOID, Port: USHORT, NotificationType: MIB_NOTIFICATION_TYPE): VOID {.stdcall.} - PIPFORWARD_CHANGE_CALLBACK* = proc (CallerContext: PVOID, Row: PMIB_IPFORWARD_ROW2, NotificationType: MIB_NOTIFICATION_TYPE): VOID {.stdcall.} + PIPINTERFACE_CHANGE_CALLBACK* = proc( + CallerContext: PVOID, + Row: PMIB_IPINTERFACE_ROW, + NotificationType: MIB_NOTIFICATION_TYPE, + ): VOID {.stdcall.} + PUNICAST_IPADDRESS_CHANGE_CALLBACK* = proc( + CallerContext: PVOID, + Row: PMIB_UNICASTIPADDRESS_ROW, + NotificationType: MIB_NOTIFICATION_TYPE, + ): VOID {.stdcall.} + PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK* = proc( + CallerContext: PVOID, AddressTable: PMIB_UNICASTIPADDRESS_TABLE + ): VOID {.stdcall.} + PTEREDO_PORT_CHANGE_CALLBACK* = proc( + CallerContext: PVOID, Port: USHORT, NotificationType: MIB_NOTIFICATION_TYPE + ): VOID {.stdcall.} + PIPFORWARD_CHANGE_CALLBACK* = proc( + CallerContext: PVOID, + Row: PMIB_IPFORWARD_ROW2, + NotificationType: MIB_NOTIFICATION_TYPE, + ): VOID {.stdcall.} NDIS_NDK_CONNECTION_ENTRY* {.pure.} = object Local*: SOCKADDR_INET Remote*: SOCKADDR_INET UserModeOwner*: BOOLEAN OwnerPid*: ULONG + NDIS_NDK_CONNECTIONS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG Count*: ULONG NDConnectionsMappedtoTCPConnections*: BOOLEAN Connections*: array[1, NDIS_NDK_CONNECTION_ENTRY] + NDIS_NDK_LOCAL_ENDPOINT_ENTRY* {.pure.} = object Local*: SOCKADDR_INET UserModeOwner*: BOOLEAN Listener*: BOOLEAN OwnerPid*: ULONG + NDIS_NDK_LOCAL_ENDPOINTS* {.pure.} = object Header*: NDIS_OBJECT_HEADER Flags*: ULONG Count*: ULONG NDLocalEndpointsMappedtoTCPLocalEndpoints*: BOOLEAN LocalEndpoints*: array[1, NDIS_NDK_LOCAL_ENDPOINT_ENTRY] -proc GetNumberOfInterfaces*(pdwNumIf: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIfEntry*(pIfRow: PMIB_IFROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIfTable*(pIfTable: PMIB_IFTABLE, pdwSize: PULONG, bOrder: WINBOOL): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpAddrTable*(pIpAddrTable: PMIB_IPADDRTABLE, pdwSize: PULONG, bOrder: WINBOOL): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpNetTable*(IpNetTable: PMIB_IPNETTABLE, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpForwardTable*(pIpForwardTable: PMIB_IPFORWARDTABLE, pdwSize: PULONG, bOrder: WINBOOL): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTcpTable*(TcpTable: PMIB_TCPTABLE, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetExtendedTcpTable*(pTcpTable: PVOID, pdwSize: PDWORD, bOrder: WINBOOL, ulAf: ULONG, TableClass: TCP_TABLE_CLASS, Reserved: ULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetOwnerModuleFromTcpEntry*(pTcpEntry: PMIB_TCPROW_OWNER_MODULE, Class: TCPIP_OWNER_MODULE_INFO_CLASS, pBuffer: PVOID, pdwSize: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUdpTable*(UdpTable: PMIB_UDPTABLE, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetExtendedUdpTable*(pUdpTable: PVOID, pdwSize: PDWORD, bOrder: WINBOOL, ulAf: ULONG, TableClass: UDP_TABLE_CLASS, Reserved: ULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetOwnerModuleFromUdpEntry*(pUdpEntry: PMIB_UDPROW_OWNER_MODULE, Class: TCPIP_OWNER_MODULE_INFO_CLASS, pBuffer: PVOID, pdwSize: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTcpTable2*(TcpTable: PMIB_TCPTABLE2, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTcp6Table*(TcpTable: PMIB_TCP6TABLE, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTcp6Table2*(TcpTable: PMIB_TCP6TABLE2, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetPerTcpConnectionEStats*(Row: PMIB_TCPROW, EstatsType: TCP_ESTATS_TYPE, Rw: PUCHAR, RwVersion: ULONG, RwSize: ULONG, Ros: PUCHAR, RosVersion: ULONG, RosSize: ULONG, Rod: PUCHAR, RodVersion: ULONG, RodSize: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetPerTcpConnectionEStats*(Row: PMIB_TCPROW, EstatsType: TCP_ESTATS_TYPE, Rw: PUCHAR, RwVersion: ULONG, RwSize: ULONG, Offset: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetPerTcp6ConnectionEStats*(Row: PMIB_TCP6ROW, EstatsType: TCP_ESTATS_TYPE, Rw: PUCHAR, RwVersion: ULONG, RwSize: ULONG, Ros: PUCHAR, RosVersion: ULONG, RosSize: ULONG, Rod: PUCHAR, RodVersion: ULONG, RodSize: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetPerTcp6ConnectionEStats*(Row: PMIB_TCP6ROW, EstatsType: TCP_ESTATS_TYPE, Rw: PUCHAR, RwVersion: ULONG, RwSize: ULONG, Offset: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUdp6Table*(Udp6Table: PMIB_UDP6TABLE, SizePointer: PULONG, Order: WINBOOL): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetOwnerModuleFromTcp6Entry*(pTcpEntry: PMIB_TCP6ROW_OWNER_MODULE, Class: TCPIP_OWNER_MODULE_INFO_CLASS, pBuffer: PVOID, pdwSize: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetOwnerModuleFromUdp6Entry*(pUdpEntry: PMIB_UDP6ROW_OWNER_MODULE, Class: TCPIP_OWNER_MODULE_INFO_CLASS, pBuffer: PVOID, pdwSize: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetOwnerModuleFromPidAndInfo*(ulPid: ULONG, pInfo: ptr ULONGLONG, Class: TCPIP_OWNER_MODULE_INFO_CLASS, pBuffer: PVOID, pdwSize: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpStatistics*(Statistics: PMIB_IPSTATS): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIcmpStatistics*(Statistics: PMIB_ICMP): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTcpStatistics*(Statistics: PMIB_TCPSTATS): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUdpStatistics*(Stats: PMIB_UDPSTATS): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpStatisticsEx*(Statistics: PMIB_IPSTATS, Family: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpStatisticsEx*(Statistics: PMIB_IPSTATS, Family: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIcmpStatisticsEx*(Statistics: PMIB_ICMP_EX, Family: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTcpStatisticsEx*(Statistics: PMIB_TCPSTATS, Family: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUdpStatisticsEx*(Statistics: PMIB_UDPSTATS, Family: ULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIfEntry*(pIfRow: PMIB_IFROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateIpForwardEntry*(pRoute: PMIB_IPFORWARDROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpForwardEntry*(pRoute: PMIB_IPFORWARDROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteIpForwardEntry*(pRoute: PMIB_IPFORWARDROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpStatistics*(pIpStats: PMIB_IPSTATS): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetNumberOfInterfaces*( + pdwNumIf: PDWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIfEntry*( + pIfRow: PMIB_IFROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIfTable*( + pIfTable: PMIB_IFTABLE, pdwSize: PULONG, bOrder: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpAddrTable*( + pIpAddrTable: PMIB_IPADDRTABLE, pdwSize: PULONG, bOrder: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpNetTable*( + IpNetTable: PMIB_IPNETTABLE, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpForwardTable*( + pIpForwardTable: PMIB_IPFORWARDTABLE, pdwSize: PULONG, bOrder: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTcpTable*( + TcpTable: PMIB_TCPTABLE, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetExtendedTcpTable*( + pTcpTable: PVOID, + pdwSize: PDWORD, + bOrder: WINBOOL, + ulAf: ULONG, + TableClass: TCP_TABLE_CLASS, + Reserved: ULONG, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetOwnerModuleFromTcpEntry*( + pTcpEntry: PMIB_TCPROW_OWNER_MODULE, + Class: TCPIP_OWNER_MODULE_INFO_CLASS, + pBuffer: PVOID, + pdwSize: PDWORD, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUdpTable*( + UdpTable: PMIB_UDPTABLE, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetExtendedUdpTable*( + pUdpTable: PVOID, + pdwSize: PDWORD, + bOrder: WINBOOL, + ulAf: ULONG, + TableClass: UDP_TABLE_CLASS, + Reserved: ULONG, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetOwnerModuleFromUdpEntry*( + pUdpEntry: PMIB_UDPROW_OWNER_MODULE, + Class: TCPIP_OWNER_MODULE_INFO_CLASS, + pBuffer: PVOID, + pdwSize: PDWORD, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTcpTable2*( + TcpTable: PMIB_TCPTABLE2, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTcp6Table*( + TcpTable: PMIB_TCP6TABLE, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTcp6Table2*( + TcpTable: PMIB_TCP6TABLE2, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetPerTcpConnectionEStats*( + Row: PMIB_TCPROW, + EstatsType: TCP_ESTATS_TYPE, + Rw: PUCHAR, + RwVersion: ULONG, + RwSize: ULONG, + Ros: PUCHAR, + RosVersion: ULONG, + RosSize: ULONG, + Rod: PUCHAR, + RodVersion: ULONG, + RodSize: ULONG, +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetPerTcpConnectionEStats*( + Row: PMIB_TCPROW, + EstatsType: TCP_ESTATS_TYPE, + Rw: PUCHAR, + RwVersion: ULONG, + RwSize: ULONG, + Offset: ULONG, +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetPerTcp6ConnectionEStats*( + Row: PMIB_TCP6ROW, + EstatsType: TCP_ESTATS_TYPE, + Rw: PUCHAR, + RwVersion: ULONG, + RwSize: ULONG, + Ros: PUCHAR, + RosVersion: ULONG, + RosSize: ULONG, + Rod: PUCHAR, + RodVersion: ULONG, + RodSize: ULONG, +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetPerTcp6ConnectionEStats*( + Row: PMIB_TCP6ROW, + EstatsType: TCP_ESTATS_TYPE, + Rw: PUCHAR, + RwVersion: ULONG, + RwSize: ULONG, + Offset: ULONG, +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUdp6Table*( + Udp6Table: PMIB_UDP6TABLE, SizePointer: PULONG, Order: WINBOOL +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetOwnerModuleFromTcp6Entry*( + pTcpEntry: PMIB_TCP6ROW_OWNER_MODULE, + Class: TCPIP_OWNER_MODULE_INFO_CLASS, + pBuffer: PVOID, + pdwSize: PDWORD, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetOwnerModuleFromUdp6Entry*( + pUdpEntry: PMIB_UDP6ROW_OWNER_MODULE, + Class: TCPIP_OWNER_MODULE_INFO_CLASS, + pBuffer: PVOID, + pdwSize: PDWORD, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetOwnerModuleFromPidAndInfo*( + ulPid: ULONG, + pInfo: ptr ULONGLONG, + Class: TCPIP_OWNER_MODULE_INFO_CLASS, + pBuffer: PVOID, + pdwSize: PDWORD, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpStatistics*( + Statistics: PMIB_IPSTATS +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIcmpStatistics*( + Statistics: PMIB_ICMP +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTcpStatistics*( + Statistics: PMIB_TCPSTATS +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUdpStatistics*( + Stats: PMIB_UDPSTATS +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpStatisticsEx*( + Statistics: PMIB_IPSTATS, Family: ULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpStatisticsEx*( + Statistics: PMIB_IPSTATS, Family: ULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIcmpStatisticsEx*( + Statistics: PMIB_ICMP_EX, Family: ULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTcpStatisticsEx*( + Statistics: PMIB_TCPSTATS, Family: ULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUdpStatisticsEx*( + Statistics: PMIB_UDPSTATS, Family: ULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIfEntry*( + pIfRow: PMIB_IFROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreateIpForwardEntry*( + pRoute: PMIB_IPFORWARDROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpForwardEntry*( + pRoute: PMIB_IPFORWARDROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteIpForwardEntry*( + pRoute: PMIB_IPFORWARDROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpStatistics*( + pIpStats: PMIB_IPSTATS +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + proc SetIpTTL*(nTTL: UINT): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateIpNetEntry*(pArpEntry: PMIB_IPNETROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpNetEntry*(pArpEntry: PMIB_IPNETROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteIpNetEntry*(pArpEntry: PMIB_IPNETROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc FlushIpNetTable*(dwIfIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateProxyArpEntry*(dwAddress: DWORD, dwMask: DWORD, dwIfIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteProxyArpEntry*(dwAddress: DWORD, dwMask: DWORD, dwIfIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetTcpEntry*(pTcpRow: PMIB_TCPROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetInterfaceInfo*(pIfTable: PIP_INTERFACE_INFO, dwOutBufLen: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUniDirectionalAdapterInfo*(pIPIfInfo: PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS, dwOutBufLen: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NhpAllocateAndGetInterfaceInfoFromStack*(ppTable: ptr ptr IP_INTERFACE_NAME_INFO, pdwCount: PDWORD, bOrder: WINBOOL, hHeap: HANDLE, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetBestInterface*(dwDestAddr: IPAddr, pdwBestIfIndex: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetBestInterfaceEx*(pDestAddr: ptr sockaddr, pdwBestIfIndex: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetBestRoute*(dwDestAddr: DWORD, dwSourceAddr: DWORD, pBestRoute: PMIB_IPFORWARDROW): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyAddrChange*(Handle: PHANDLE, overlapped: LPOVERLAPPED): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyRouteChange*(Handle: PHANDLE, overlapped: LPOVERLAPPED): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CancelIPChangeNotify*(notifyOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetAdapterIndex*(AdapterName: LPWSTR, IfIndex: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc AddIPAddress*(Address: IPAddr, IpMask: IPMask, IfIndex: DWORD, NTEContext: PULONG, NTEInstance: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteIPAddress*(NTEContext: ULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetNetworkParams*(pFixedInfo: PFIXED_INFO, pOutBufLen: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetAdaptersInfo*(AdapterInfo: PIP_ADAPTER_INFO, SizePointer: PULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetAdapterOrderMap*(): PIP_ADAPTER_ORDER_MAP {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetAdaptersAddresses*(Family: ULONG, Flags: ULONG, Reserved: PVOID, AdapterAddresses: PIP_ADAPTER_ADDRESSES, SizePointer: PULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetPerAdapterInfo*(IfIndex: ULONG, pPerAdapterInfo: PIP_PER_ADAPTER_INFO, pOutBufLen: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc IpReleaseAddress*(AdapterInfo: PIP_ADAPTER_INDEX_MAP): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc IpRenewAddress*(AdapterInfo: PIP_ADAPTER_INDEX_MAP): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SendARP*(DestIP: IPAddr, SrcIP: IPAddr, pMacAddr: PVOID, PhyAddrLen: PULONG): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetRTTAndHopCount*(DestIpAddress: IPAddr, HopCount: PULONG, MaxHops: ULONG, RTT: PULONG): WINBOOL {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetFriendlyIfIndex*(IfIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc EnableRouter*(pHandle: ptr HANDLE, pOverlapped: ptr OVERLAPPED): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc UnenableRouter*(pOverlapped: ptr OVERLAPPED, lpdwEnableCount: LPDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DisableMediaSense*(pHandle: ptr HANDLE, pOverLapped: ptr OVERLAPPED): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc RestoreMediaSense*(pOverlapped: ptr OVERLAPPED, lpdwEnableCount: LPDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ParseNetworkString*(NetworkString: ptr WCHAR, Types: DWORD, AddressInfo: PNET_ADDRESS_INFO, PortNumber: ptr USHORT, PrefixLength: ptr BYTE): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpErrorString*(ErrorCode: IP_STATUS, Buffer: PWSTR, Size: PDWORD): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ResolveNeighbor*(NetworkAddress: ptr SOCKADDR, PhysicalAddress: PVOID, PhysicalAddressLength: PULONG): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreatePersistentTcpPortReservation*(StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreatePersistentUdpPortReservation*(StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeletePersistentTcpPortReservation*(StartPort: USHORT, NumberOfPorts: USHORT): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeletePersistentUdpPortReservation*(StartPort: USHORT, NumberOfPorts: USHORT): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc LookupPersistentTcpPortReservation*(StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc LookupPersistentUdpPortReservation*(StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIfEntry2*(Row: PMIB_IF_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIfTable2*(Table: ptr PMIB_IF_TABLE2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIfTable2Ex*(Level: MIB_IF_TABLE_LEVEL, Table: ptr PMIB_IF_TABLE2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIfStackTable*(Table: ptr PMIB_IFSTACK_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetInvertedIfStackTable*(Table: ptr PMIB_INVERTEDIFSTACK_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpInterfaceEntry*(Row: PMIB_IPINTERFACE_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpInterfaceTable*(Family: ADDRESS_FAMILY, Table: ptr PMIB_IPINTERFACE_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc InitializeIpInterfaceEntry*(Row: PMIB_IPINTERFACE_ROW): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyIpInterfaceChange*(Family: ADDRESS_FAMILY, Callback: PIPINTERFACE_CHANGE_CALLBACK, CallerContext: PVOID, InitialNotification: BOOLEAN, NotificationHandle: ptr HANDLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpInterfaceEntry*(Row: PMIB_IPINTERFACE_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpNetworkConnectionBandwidthEstimates*(InterfaceIndex: NET_IFINDEX, AddressFamily: ADDRESS_FAMILY, BandwidthEstimates: PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateUnicastIpAddressEntry*(Row: ptr MIB_UNICASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteUnicastIpAddressEntry*(Row: ptr MIB_UNICASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUnicastIpAddressEntry*(Row: PMIB_UNICASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetUnicastIpAddressTable*(Family: ADDRESS_FAMILY, Table: ptr PMIB_UNICASTIPADDRESS_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc InitializeUnicastIpAddressEntry*(Row: PMIB_UNICASTIPADDRESS_ROW): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyUnicastIpAddressChange*(Family: ADDRESS_FAMILY, Callback: PUNICAST_IPADDRESS_CHANGE_CALLBACK, CallerContext: PVOID, InitialNotification: BOOLEAN, NotificationHandle: ptr HANDLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateAnycastIpAddressEntry*(Row: ptr MIB_ANYCASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteAnycastIpAddressEntry*(Row: ptr MIB_ANYCASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetAnycastIpAddressEntry*(Row: PMIB_ANYCASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetAnycastIpAddressTable*(Family: ADDRESS_FAMILY, Table: ptr PMIB_ANYCASTIPADDRESS_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyStableUnicastIpAddressTable*(Family: ADDRESS_FAMILY, Table: ptr PMIB_UNICASTIPADDRESS_TABLE, CallerCallback: PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK, CallerContext: PVOID, NotificationHandle: ptr HANDLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetUnicastIpAddressEntry*(Row: ptr MIB_UNICASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetMulticastIpAddressEntry*(Row: PMIB_MULTICASTIPADDRESS_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetMulticastIpAddressTable*(Family: ADDRESS_FAMILY, Table: ptr PMIB_MULTICASTIPADDRESS_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateIpForwardEntry2*(Row: ptr MIB_IPFORWARD_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteIpForwardEntry2*(Row: ptr MIB_IPFORWARD_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetBestRoute2*(InterfaceLuid: ptr NET_LUID, InterfaceIndex: NET_IFINDEX, SourceAddress: ptr SOCKADDR_INET, DestinationAddress: ptr SOCKADDR_INET, AddressSortOptions: ULONG, BestRoute: PMIB_IPFORWARD_ROW2, BestSourceAddress: ptr SOCKADDR_INET): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpForwardEntry2*(Row: PMIB_IPFORWARD_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpForwardTable2*(Family: ADDRESS_FAMILY, Table: ptr PMIB_IPFORWARD_TABLE2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc InitializeIpForwardEntry*(Row: PMIB_IPFORWARD_ROW2): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyRouteChange2*(AddressFamily: ADDRESS_FAMILY, Callback: PIPFORWARD_CHANGE_CALLBACK, CallerContext: PVOID, InitialNotification: BOOLEAN, NotificationHandle: ptr HANDLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpForwardEntry2*(Route: ptr MIB_IPFORWARD_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc FlushIpPathTable*(Family: ADDRESS_FAMILY): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpPathEntry*(Row: PMIB_IPPATH_ROW): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpPathTable*(Family: ADDRESS_FAMILY, Table: ptr PMIB_IPPATH_TABLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateIpNetEntry2*(Row: ptr MIB_IPNET_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc DeleteIpNetEntry2*(Row: ptr MIB_IPNET_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc FlushIpNetTable2*(Family: ADDRESS_FAMILY, InterfaceIndex: NET_IFINDEX): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpNetEntry2*(Row: PMIB_IPNET_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetIpNetTable2*(Family: ADDRESS_FAMILY, Table: ptr PMIB_IPNET_TABLE2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ResolveIpNetEntry2*(Row: PMIB_IPNET_ROW2, SourceAddress: ptr SOCKADDR_INET): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetIpNetEntry2*(Row: PMIB_IPNET_ROW2): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc NotifyTeredoPortChange*(Callback: PTEREDO_PORT_CHANGE_CALLBACK, CallerContext: PVOID, InitialNotification: BOOLEAN, NotificationHandle: ptr HANDLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetTeredoPort*(Port: ptr USHORT): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CancelMibChangeNotify2*(NotificationHandle: HANDLE): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} +proc CreateIpNetEntry*( + pArpEntry: PMIB_IPNETROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpNetEntry*( + pArpEntry: PMIB_IPNETROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteIpNetEntry*( + pArpEntry: PMIB_IPNETROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc FlushIpNetTable*( + dwIfIndex: DWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreateProxyArpEntry*( + dwAddress: DWORD, dwMask: DWORD, dwIfIndex: DWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteProxyArpEntry*( + dwAddress: DWORD, dwMask: DWORD, dwIfIndex: DWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetTcpEntry*( + pTcpRow: PMIB_TCPROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetInterfaceInfo*( + pIfTable: PIP_INTERFACE_INFO, dwOutBufLen: PULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUniDirectionalAdapterInfo*( + pIPIfInfo: PIP_UNIDIRECTIONAL_ADAPTER_ADDRESS, dwOutBufLen: PULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NhpAllocateAndGetInterfaceInfoFromStack*( + ppTable: ptr ptr IP_INTERFACE_NAME_INFO, + pdwCount: PDWORD, + bOrder: WINBOOL, + hHeap: HANDLE, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetBestInterface*( + dwDestAddr: IPAddr, pdwBestIfIndex: PDWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetBestInterfaceEx*( + pDestAddr: ptr sockaddr, pdwBestIfIndex: PDWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetBestRoute*( + dwDestAddr: DWORD, dwSourceAddr: DWORD, pBestRoute: PMIB_IPFORWARDROW +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyAddrChange*( + Handle: PHANDLE, overlapped: LPOVERLAPPED +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyRouteChange*( + Handle: PHANDLE, overlapped: LPOVERLAPPED +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CancelIPChangeNotify*( + notifyOverlapped: LPOVERLAPPED +): WINBOOL {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetAdapterIndex*( + AdapterName: LPWSTR, IfIndex: PULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc AddIPAddress*( + Address: IPAddr, + IpMask: IPMask, + IfIndex: DWORD, + NTEContext: PULONG, + NTEInstance: PULONG, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteIPAddress*( + NTEContext: ULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetNetworkParams*( + pFixedInfo: PFIXED_INFO, pOutBufLen: PULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetAdaptersInfo*( + AdapterInfo: PIP_ADAPTER_INFO, SizePointer: PULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetAdapterOrderMap*(): PIP_ADAPTER_ORDER_MAP {. + winapi, stdcall, dynlib: "iphlpapi", importc +.} + +proc GetAdaptersAddresses*( + Family: ULONG, + Flags: ULONG, + Reserved: PVOID, + AdapterAddresses: PIP_ADAPTER_ADDRESSES, + SizePointer: PULONG, +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetPerAdapterInfo*( + IfIndex: ULONG, pPerAdapterInfo: PIP_PER_ADAPTER_INFO, pOutBufLen: PULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc IpReleaseAddress*( + AdapterInfo: PIP_ADAPTER_INDEX_MAP +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc IpRenewAddress*( + AdapterInfo: PIP_ADAPTER_INDEX_MAP +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SendARP*( + DestIP: IPAddr, SrcIP: IPAddr, pMacAddr: PVOID, PhyAddrLen: PULONG +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetRTTAndHopCount*( + DestIpAddress: IPAddr, HopCount: PULONG, MaxHops: ULONG, RTT: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetFriendlyIfIndex*( + IfIndex: DWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc EnableRouter*( + pHandle: ptr HANDLE, pOverlapped: ptr OVERLAPPED +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc UnenableRouter*( + pOverlapped: ptr OVERLAPPED, lpdwEnableCount: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DisableMediaSense*( + pHandle: ptr HANDLE, pOverLapped: ptr OVERLAPPED +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc RestoreMediaSense*( + pOverlapped: ptr OVERLAPPED, lpdwEnableCount: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ParseNetworkString*( + NetworkString: ptr WCHAR, + Types: DWORD, + AddressInfo: PNET_ADDRESS_INFO, + PortNumber: ptr USHORT, + PrefixLength: ptr BYTE, +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpErrorString*( + ErrorCode: IP_STATUS, Buffer: PWSTR, Size: PDWORD +): DWORD {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ResolveNeighbor*( + NetworkAddress: ptr SOCKADDR, PhysicalAddress: PVOID, PhysicalAddressLength: PULONG +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreatePersistentTcpPortReservation*( + StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64 +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreatePersistentUdpPortReservation*( + StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64 +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeletePersistentTcpPortReservation*( + StartPort: USHORT, NumberOfPorts: USHORT +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeletePersistentUdpPortReservation*( + StartPort: USHORT, NumberOfPorts: USHORT +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc LookupPersistentTcpPortReservation*( + StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64 +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc LookupPersistentUdpPortReservation*( + StartPort: USHORT, NumberOfPorts: USHORT, Token: PULONG64 +): ULONG {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIfEntry2*( + Row: PMIB_IF_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIfTable2*( + Table: ptr PMIB_IF_TABLE2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIfTable2Ex*( + Level: MIB_IF_TABLE_LEVEL, Table: ptr PMIB_IF_TABLE2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIfStackTable*( + Table: ptr PMIB_IFSTACK_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetInvertedIfStackTable*( + Table: ptr PMIB_INVERTEDIFSTACK_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpInterfaceEntry*( + Row: PMIB_IPINTERFACE_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpInterfaceTable*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_IPINTERFACE_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc InitializeIpInterfaceEntry*( + Row: PMIB_IPINTERFACE_ROW +): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyIpInterfaceChange*( + Family: ADDRESS_FAMILY, + Callback: PIPINTERFACE_CHANGE_CALLBACK, + CallerContext: PVOID, + InitialNotification: BOOLEAN, + NotificationHandle: ptr HANDLE, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpInterfaceEntry*( + Row: PMIB_IPINTERFACE_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpNetworkConnectionBandwidthEstimates*( + InterfaceIndex: NET_IFINDEX, + AddressFamily: ADDRESS_FAMILY, + BandwidthEstimates: PMIB_IP_NETWORK_CONNECTION_BANDWIDTH_ESTIMATES, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreateUnicastIpAddressEntry*( + Row: ptr MIB_UNICASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteUnicastIpAddressEntry*( + Row: ptr MIB_UNICASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUnicastIpAddressEntry*( + Row: PMIB_UNICASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetUnicastIpAddressTable*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_UNICASTIPADDRESS_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc InitializeUnicastIpAddressEntry*( + Row: PMIB_UNICASTIPADDRESS_ROW +): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyUnicastIpAddressChange*( + Family: ADDRESS_FAMILY, + Callback: PUNICAST_IPADDRESS_CHANGE_CALLBACK, + CallerContext: PVOID, + InitialNotification: BOOLEAN, + NotificationHandle: ptr HANDLE, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreateAnycastIpAddressEntry*( + Row: ptr MIB_ANYCASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteAnycastIpAddressEntry*( + Row: ptr MIB_ANYCASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetAnycastIpAddressEntry*( + Row: PMIB_ANYCASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetAnycastIpAddressTable*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_ANYCASTIPADDRESS_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyStableUnicastIpAddressTable*( + Family: ADDRESS_FAMILY, + Table: ptr PMIB_UNICASTIPADDRESS_TABLE, + CallerCallback: PSTABLE_UNICAST_IPADDRESS_TABLE_CALLBACK, + CallerContext: PVOID, + NotificationHandle: ptr HANDLE, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetUnicastIpAddressEntry*( + Row: ptr MIB_UNICASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetMulticastIpAddressEntry*( + Row: PMIB_MULTICASTIPADDRESS_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetMulticastIpAddressTable*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_MULTICASTIPADDRESS_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreateIpForwardEntry2*( + Row: ptr MIB_IPFORWARD_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteIpForwardEntry2*( + Row: ptr MIB_IPFORWARD_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetBestRoute2*( + InterfaceLuid: ptr NET_LUID, + InterfaceIndex: NET_IFINDEX, + SourceAddress: ptr SOCKADDR_INET, + DestinationAddress: ptr SOCKADDR_INET, + AddressSortOptions: ULONG, + BestRoute: PMIB_IPFORWARD_ROW2, + BestSourceAddress: ptr SOCKADDR_INET, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpForwardEntry2*( + Row: PMIB_IPFORWARD_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpForwardTable2*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_IPFORWARD_TABLE2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc InitializeIpForwardEntry*( + Row: PMIB_IPFORWARD_ROW2 +): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyRouteChange2*( + AddressFamily: ADDRESS_FAMILY, + Callback: PIPFORWARD_CHANGE_CALLBACK, + CallerContext: PVOID, + InitialNotification: BOOLEAN, + NotificationHandle: ptr HANDLE, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpForwardEntry2*( + Route: ptr MIB_IPFORWARD_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc FlushIpPathTable*( + Family: ADDRESS_FAMILY +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpPathEntry*( + Row: PMIB_IPPATH_ROW +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpPathTable*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_IPPATH_TABLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CreateIpNetEntry2*( + Row: ptr MIB_IPNET_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc DeleteIpNetEntry2*( + Row: ptr MIB_IPNET_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc FlushIpNetTable2*( + Family: ADDRESS_FAMILY, InterfaceIndex: NET_IFINDEX +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpNetEntry2*( + Row: PMIB_IPNET_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetIpNetTable2*( + Family: ADDRESS_FAMILY, Table: ptr PMIB_IPNET_TABLE2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ResolveIpNetEntry2*( + Row: PMIB_IPNET_ROW2, SourceAddress: ptr SOCKADDR_INET +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetIpNetEntry2*( + Row: PMIB_IPNET_ROW2 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc NotifyTeredoPortChange*( + Callback: PTEREDO_PORT_CHANGE_CALLBACK, + CallerContext: PVOID, + InitialNotification: BOOLEAN, + NotificationHandle: ptr HANDLE, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetTeredoPort*( + Port: ptr USHORT +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc CancelMibChangeNotify2*( + NotificationHandle: HANDLE +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + proc FreeMibTable*(Memory: PVOID): VOID {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc CreateSortedAddressPairs*(SourceAddressList: PSOCKADDR_IN6, SourceAddressCount: ULONG, DestinationAddressList: PSOCKADDR_IN6, DestinationAddressCount: ULONG, AddressSortOptions: ULONG, SortedAddressPairList: ptr PSOCKADDR_IN6_PAIR, SortedAddressPairCount: ptr ULONG): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceNameToLuidA*(InterfaceName: ptr CHAR, InterfaceLuid: ptr NET_LUID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceNameToLuidW*(InterfaceName: ptr WCHAR, InterfaceLuid: ptr NET_LUID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceLuidToNameA*(InterfaceLuid: ptr NET_LUID, InterfaceName: PSTR, Length: SIZE_T): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceLuidToNameW*(InterfaceLuid: ptr NET_LUID, InterfaceName: PWSTR, Length: SIZE_T): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceLuidToIndex*(InterfaceLuid: ptr NET_LUID, InterfaceIndex: PNET_IFINDEX): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceIndexToLuid*(InterfaceIndex: NET_IFINDEX, InterfaceLuid: PNET_LUID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceLuidToAlias*(InterfaceLuid: ptr NET_LUID, InterfaceAlias: PWSTR, Length: SIZE_T): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceAliasToLuid*(InterfaceAlias: ptr WCHAR, InterfaceLuid: PNET_LUID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceLuidToGuid*(InterfaceLuid: ptr NET_LUID, InterfaceGuid: ptr GUID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertInterfaceGuidToLuid*(InterfaceGuid: ptr GUID, InterfaceLuid: PNET_LUID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc if_nametoindex*(InterfaceName: PCSTR): NET_IFINDEX {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc if_indextoname*(InterfaceIndex: NET_IFINDEX, InterfaceName: PCHAR): PCHAR {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetCurrentThreadCompartmentId*(): NET_IF_COMPARTMENT_ID {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetCurrentThreadCompartmentId*(CompartmentId: NET_IF_COMPARTMENT_ID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetSessionCompartmentId*(SessionId: ULONG): NET_IF_COMPARTMENT_ID {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetSessionCompartmentId*(SessionId: ULONG, CompartmentId: NET_IF_COMPARTMENT_ID): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc GetNetworkInformation*(NetworkGuid: ptr NET_IF_NETWORK_GUID, CompartmentId: PNET_IF_COMPARTMENT_ID, SiteId: PULONG, NetworkName: PWCHAR, Length: ULONG): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc SetNetworkInformation*(NetworkGuid: ptr NET_IF_NETWORK_GUID, CompartmentId: NET_IF_COMPARTMENT_ID, NetworkName: ptr WCHAR): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertLengthToIpv4Mask*(MaskLength: ULONG, Mask: PULONG): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc ConvertIpv4MaskToLength*(Mask: ULONG, MaskLength: PUINT8): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} -proc `SpecificPortBind=`*(self: var MIB_UDPROW_OWNER_MODULE, x: DWORD) {.inline.} = self.union1.struct1.SpecificPortBind = x -proc SpecificPortBind*(self: MIB_UDPROW_OWNER_MODULE): DWORD {.inline.} = self.union1.struct1.SpecificPortBind -proc `dwFlags=`*(self: var MIB_UDPROW_OWNER_MODULE, x: DWORD) {.inline.} = self.union1.dwFlags = x -proc dwFlags*(self: MIB_UDPROW_OWNER_MODULE): DWORD {.inline.} = self.union1.dwFlags -proc dwFlags*(self: var MIB_UDPROW_OWNER_MODULE): var DWORD {.inline.} = self.union1.dwFlags -proc `SpecificPortBind=`*(self: var MIB_UDP6ROW_OWNER_MODULE, x: DWORD) {.inline.} = self.union1.struct1.SpecificPortBind = x -proc SpecificPortBind*(self: MIB_UDP6ROW_OWNER_MODULE): DWORD {.inline.} = self.union1.struct1.SpecificPortBind -proc `dwFlags=`*(self: var MIB_UDP6ROW_OWNER_MODULE, x: DWORD) {.inline.} = self.union1.dwFlags = x -proc dwFlags*(self: MIB_UDP6ROW_OWNER_MODULE): DWORD {.inline.} = self.union1.dwFlags -proc dwFlags*(self: var MIB_UDP6ROW_OWNER_MODULE): var DWORD {.inline.} = self.union1.dwFlags -proc `ullAlign=`*(self: var MIB_OPAQUE_INFO, x: ULONGLONG) {.inline.} = self.union1.ullAlign = x -proc ullAlign*(self: MIB_OPAQUE_INFO): ULONGLONG {.inline.} = self.union1.ullAlign -proc ullAlign*(self: var MIB_OPAQUE_INFO): var ULONGLONG {.inline.} = self.union1.ullAlign -proc `rgbyData=`*(self: var MIB_OPAQUE_INFO, x: array[1, BYTE]) {.inline.} = self.union1.rgbyData = x -proc rgbyData*(self: MIB_OPAQUE_INFO): array[1, BYTE] {.inline.} = self.union1.rgbyData -proc rgbyData*(self: var MIB_OPAQUE_INFO): var array[1, BYTE] {.inline.} = self.union1.rgbyData -proc `Alignment=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_UNICAST_ADDRESS_XP): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Flags=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP, x: DWORD) {.inline.} = self.union1.struct1.Flags = x -proc `Alignment=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_UNICAST_ADDRESS_LH): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Flags=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH, x: DWORD) {.inline.} = self.union1.struct1.Flags = x -proc `Alignment=`*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_ANYCAST_ADDRESS_XP): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Flags=`*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP, x: DWORD) {.inline.} = self.union1.struct1.Flags = x -proc `Alignment=`*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_MULTICAST_ADDRESS_XP): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Flags=`*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP, x: DWORD) {.inline.} = self.union1.struct1.Flags = x -proc `Alignment=`*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_DNS_SERVER_ADDRESS_XP): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Reserved=`*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP, x: DWORD) {.inline.} = self.union1.struct1.Reserved = x -proc `Alignment=`*(self: var IP_ADAPTER_PREFIX_XP, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_PREFIX_XP): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_PREFIX_XP): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_PREFIX_XP, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Flags=`*(self: var IP_ADAPTER_PREFIX_XP, x: DWORD) {.inline.} = self.union1.struct1.Flags = x -proc `Alignment=`*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_WINS_SERVER_ADDRESS_LH): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Reserved=`*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH, x: DWORD) {.inline.} = self.union1.struct1.Reserved = x -proc `Alignment=`*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_GATEWAY_ADDRESS_LH): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `Reserved=`*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH, x: DWORD) {.inline.} = self.union1.struct1.Reserved = x -proc `Alignment=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_ADDRESSES_LH): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_ADDRESSES_LH): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `IfIndex=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: IF_INDEX) {.inline.} = self.union1.struct1.IfIndex = x -proc ifIndex*(self: IP_ADAPTER_ADDRESSES_LH): IF_INDEX {.inline.} = self.union1.struct1.IfIndex -proc ifIndex*(self: var IP_ADAPTER_ADDRESSES_LH): var IF_INDEX {.inline.} = self.union1.struct1.IfIndex -proc `Flags=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.Flags = x -proc `DdnsEnabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.DdnsEnabled = x -proc DdnsEnabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.DdnsEnabled -proc `RegisterAdapterSuffix=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.RegisterAdapterSuffix = x -proc RegisterAdapterSuffix*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.RegisterAdapterSuffix -proc `Dhcpv4Enabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.Dhcpv4Enabled = x -proc Dhcpv4Enabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.Dhcpv4Enabled -proc `ReceiveOnly=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.ReceiveOnly = x -proc ReceiveOnly*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.ReceiveOnly -proc `NoMulticast=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.NoMulticast = x -proc NoMulticast*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.NoMulticast -proc `Ipv6OtherStatefulConfig=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.Ipv6OtherStatefulConfig = x -proc Ipv6OtherStatefulConfig*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.Ipv6OtherStatefulConfig -proc `NetbiosOverTcpipEnabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.NetbiosOverTcpipEnabled = x -proc NetbiosOverTcpipEnabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.NetbiosOverTcpipEnabled -proc `Ipv4Enabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.Ipv4Enabled = x -proc Ipv4Enabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.Ipv4Enabled -proc `Ipv6Enabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.Ipv6Enabled = x -proc Ipv6Enabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.Ipv6Enabled -proc `Ipv6ManagedAddressConfigurationSupported=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = self.union2.struct1.Ipv6ManagedAddressConfigurationSupported = x -proc Ipv6ManagedAddressConfigurationSupported*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = self.union2.struct1.Ipv6ManagedAddressConfigurationSupported -proc `Alignment=`*(self: var IP_ADAPTER_ADDRESSES_XP, x: ULONGLONG) {.inline.} = self.union1.Alignment = x -proc Alignment*(self: IP_ADAPTER_ADDRESSES_XP): ULONGLONG {.inline.} = self.union1.Alignment -proc Alignment*(self: var IP_ADAPTER_ADDRESSES_XP): var ULONGLONG {.inline.} = self.union1.Alignment -proc `Length=`*(self: var IP_ADAPTER_ADDRESSES_XP, x: ULONG) {.inline.} = self.union1.struct1.Length = x -proc `IfIndex=`*(self: var IP_ADAPTER_ADDRESSES_XP, x: DWORD) {.inline.} = self.union1.struct1.IfIndex = x -proc ifIndex*(self: IP_ADAPTER_ADDRESSES_XP): DWORD {.inline.} = self.union1.struct1.IfIndex -proc ifIndex*(self: var IP_ADAPTER_ADDRESSES_XP): var DWORD {.inline.} = self.union1.struct1.IfIndex -proc `NamedAddress=`*(self: var NET_ADDRESS_INFO, x: NET_ADDRESS_INFO_UNION1_NamedAddress) {.inline.} = self.union1.NamedAddress = x -proc NamedAddress*(self: NET_ADDRESS_INFO): NET_ADDRESS_INFO_UNION1_NamedAddress {.inline.} = self.union1.NamedAddress -proc NamedAddress*(self: var NET_ADDRESS_INFO): var NET_ADDRESS_INFO_UNION1_NamedAddress {.inline.} = self.union1.NamedAddress -proc `Ipv4Address=`*(self: var NET_ADDRESS_INFO, x: SOCKADDR_IN) {.inline.} = self.union1.Ipv4Address = x -proc ipv4Address*(self: NET_ADDRESS_INFO): SOCKADDR_IN {.inline.} = self.union1.Ipv4Address -proc ipv4Address*(self: var NET_ADDRESS_INFO): var SOCKADDR_IN {.inline.} = self.union1.Ipv4Address -proc `Ipv6Address=`*(self: var NET_ADDRESS_INFO, x: SOCKADDR_IN6) {.inline.} = self.union1.Ipv6Address = x -proc ipv6Address*(self: NET_ADDRESS_INFO): SOCKADDR_IN6 {.inline.} = self.union1.Ipv6Address -proc ipv6Address*(self: var NET_ADDRESS_INFO): var SOCKADDR_IN6 {.inline.} = self.union1.Ipv6Address -proc `IpAddress=`*(self: var NET_ADDRESS_INFO, x: SOCKADDR) {.inline.} = self.union1.IpAddress = x -proc ipAddress*(self: NET_ADDRESS_INFO): SOCKADDR {.inline.} = self.union1.IpAddress -proc ipAddress*(self: var NET_ADDRESS_INFO): var SOCKADDR {.inline.} = self.union1.IpAddress -proc `AuthenticationEvent=`*(self: var NDIS_802_11_TEST, x: NDIS_802_11_AUTHENTICATION_EVENT) {.inline.} = self.union1.AuthenticationEvent = x -proc AuthenticationEvent*(self: NDIS_802_11_TEST): NDIS_802_11_AUTHENTICATION_EVENT {.inline.} = self.union1.AuthenticationEvent -proc AuthenticationEvent*(self: var NDIS_802_11_TEST): var NDIS_802_11_AUTHENTICATION_EVENT {.inline.} = self.union1.AuthenticationEvent -proc `RssiTrigger=`*(self: var NDIS_802_11_TEST, x: NDIS_802_11_RSSI) {.inline.} = self.union1.RssiTrigger = x -proc RssiTrigger*(self: NDIS_802_11_TEST): NDIS_802_11_RSSI {.inline.} = self.union1.RssiTrigger -proc RssiTrigger*(self: var NDIS_802_11_TEST): var NDIS_802_11_RSSI {.inline.} = self.union1.RssiTrigger -proc `Oid=`*(self: var NDIS_GUID, x: NDIS_OID) {.inline.} = self.union1.Oid = x -proc Oid*(self: NDIS_GUID): NDIS_OID {.inline.} = self.union1.Oid -proc Oid*(self: var NDIS_GUID): var NDIS_OID {.inline.} = self.union1.Oid -proc `Status=`*(self: var NDIS_GUID, x: NDIS_STATUS) {.inline.} = self.union1.Status = x -proc Status*(self: NDIS_GUID): NDIS_STATUS {.inline.} = self.union1.Status -proc Status*(self: var NDIS_GUID): var NDIS_STATUS {.inline.} = self.union1.Status -proc `RscIPv4=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = self.struct1.RscIPv4 = x -proc RscIPv4*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = self.struct1.RscIPv4 -proc RscIPv4*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = self.struct1.RscIPv4 -proc `RscIPv6=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = self.struct1.RscIPv6 = x -proc RscIPv6*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = self.struct1.RscIPv6 -proc RscIPv6*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = self.struct1.RscIPv6 -proc `EncapsulatedPacketTaskOffload=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = self.struct2.EncapsulatedPacketTaskOffload = x -proc EncapsulatedPacketTaskOffload*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = self.struct2.EncapsulatedPacketTaskOffload -proc EncapsulatedPacketTaskOffload*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = self.struct2.EncapsulatedPacketTaskOffload -proc `EncapsulationTypes=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = self.struct2.EncapsulationTypes = x -proc `VlanProperties=`*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, x: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties) {.inline.} = self.union1.VlanProperties = x -proc `SecondaryVlanId=`*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, x: UINT16) {.inline.} = self.union1.PvlanProperties.union1.SecondaryVlanId = x -proc SecondaryVlanId*(self: NDIS_SWITCH_PORT_PROPERTY_VLAN): UINT16 {.inline.} = self.union1.PvlanProperties.union1.SecondaryVlanId -proc SecondaryVlanId*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN): var UINT16 {.inline.} = self.union1.PvlanProperties.union1.SecondaryVlanId -proc `SecondaryVlanIdArray=`*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, x: array[64, UINT64]) {.inline.} = self.union1.PvlanProperties.union1.SecondaryVlanIdArray = x -proc SecondaryVlanIdArray*(self: NDIS_SWITCH_PORT_PROPERTY_VLAN): array[64, UINT64] {.inline.} = self.union1.PvlanProperties.union1.SecondaryVlanIdArray -proc SecondaryVlanIdArray*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN): var array[64, UINT64] {.inline.} = self.union1.PvlanProperties.union1.SecondaryVlanIdArray -proc `PvlanProperties=`*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, x: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties) {.inline.} = self.union1.PvlanProperties = x -proc PvlanProperties*(self: NDIS_SWITCH_PORT_PROPERTY_VLAN): NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties {.inline.} = self.union1.PvlanProperties -proc PvlanProperties*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN): var NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties {.inline.} = self.union1.PvlanProperties -proc `LastReachable=`*(self: var MIB_IPPATH_ROW, x: ULONG) {.inline.} = self.union1.LastReachable = x -proc LastReachable*(self: MIB_IPPATH_ROW): ULONG {.inline.} = self.union1.LastReachable -proc LastReachable*(self: var MIB_IPPATH_ROW): var ULONG {.inline.} = self.union1.LastReachable -proc `LastUnreachable=`*(self: var MIB_IPPATH_ROW, x: ULONG) {.inline.} = self.union1.LastUnreachable = x -proc LastUnreachable*(self: MIB_IPPATH_ROW): ULONG {.inline.} = self.union1.LastUnreachable -proc LastUnreachable*(self: var MIB_IPPATH_ROW): var ULONG {.inline.} = self.union1.LastUnreachable -proc `IsRouter=`*(self: var MIB_IPNET_ROW2, x: BOOLEAN) {.inline.} = self.union1.struct1.IsRouter = x -proc IsRouter*(self: MIB_IPNET_ROW2): BOOLEAN {.inline.} = self.union1.struct1.IsRouter -proc `IsUnreachable=`*(self: var MIB_IPNET_ROW2, x: BOOLEAN) {.inline.} = self.union1.struct1.IsUnreachable = x -proc IsUnreachable*(self: MIB_IPNET_ROW2): BOOLEAN {.inline.} = self.union1.struct1.IsUnreachable -proc `Flags=`*(self: var MIB_IPNET_ROW2, x: UCHAR) {.inline.} = self.union1.Flags = x -proc OnComplete*(self: ptr IConnectionRequestCallback, hrStatus: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnComplete(self, hrStatus) -converter winimConverterIConnectionRequestCallbackToIUnknown*(x: ptr IConnectionRequestCallback): ptr IUnknown = cast[ptr IUnknown](x) +proc CreateSortedAddressPairs*( + SourceAddressList: PSOCKADDR_IN6, + SourceAddressCount: ULONG, + DestinationAddressList: PSOCKADDR_IN6, + DestinationAddressCount: ULONG, + AddressSortOptions: ULONG, + SortedAddressPairList: ptr PSOCKADDR_IN6_PAIR, + SortedAddressPairCount: ptr ULONG, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceNameToLuidA*( + InterfaceName: ptr CHAR, InterfaceLuid: ptr NET_LUID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceNameToLuidW*( + InterfaceName: ptr WCHAR, InterfaceLuid: ptr NET_LUID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceLuidToNameA*( + InterfaceLuid: ptr NET_LUID, InterfaceName: PSTR, Length: SIZE_T +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceLuidToNameW*( + InterfaceLuid: ptr NET_LUID, InterfaceName: PWSTR, Length: SIZE_T +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceLuidToIndex*( + InterfaceLuid: ptr NET_LUID, InterfaceIndex: PNET_IFINDEX +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceIndexToLuid*( + InterfaceIndex: NET_IFINDEX, InterfaceLuid: PNET_LUID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceLuidToAlias*( + InterfaceLuid: ptr NET_LUID, InterfaceAlias: PWSTR, Length: SIZE_T +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceAliasToLuid*( + InterfaceAlias: ptr WCHAR, InterfaceLuid: PNET_LUID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceLuidToGuid*( + InterfaceLuid: ptr NET_LUID, InterfaceGuid: ptr GUID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertInterfaceGuidToLuid*( + InterfaceGuid: ptr GUID, InterfaceLuid: PNET_LUID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc if_nametoindex*( + InterfaceName: PCSTR +): NET_IFINDEX {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc if_indextoname*( + InterfaceIndex: NET_IFINDEX, InterfaceName: PCHAR +): PCHAR {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetCurrentThreadCompartmentId*(): NET_IF_COMPARTMENT_ID {. + winapi, stdcall, dynlib: "iphlpapi", importc +.} + +proc SetCurrentThreadCompartmentId*( + CompartmentId: NET_IF_COMPARTMENT_ID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetSessionCompartmentId*( + SessionId: ULONG +): NET_IF_COMPARTMENT_ID {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetSessionCompartmentId*( + SessionId: ULONG, CompartmentId: NET_IF_COMPARTMENT_ID +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc GetNetworkInformation*( + NetworkGuid: ptr NET_IF_NETWORK_GUID, + CompartmentId: PNET_IF_COMPARTMENT_ID, + SiteId: PULONG, + NetworkName: PWCHAR, + Length: ULONG, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc SetNetworkInformation*( + NetworkGuid: ptr NET_IF_NETWORK_GUID, + CompartmentId: NET_IF_COMPARTMENT_ID, + NetworkName: ptr WCHAR, +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertLengthToIpv4Mask*( + MaskLength: ULONG, Mask: PULONG +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc ConvertIpv4MaskToLength*( + Mask: ULONG, MaskLength: PUINT8 +): NETIO_STATUS {.winapi, stdcall, dynlib: "iphlpapi", importc.} + +proc `SpecificPortBind=`*(self: var MIB_UDPROW_OWNER_MODULE, x: DWORD) {.inline.} = + self.union1.struct1.SpecificPortBind = x + +proc SpecificPortBind*(self: MIB_UDPROW_OWNER_MODULE): DWORD {.inline.} = + self.union1.struct1.SpecificPortBind + +proc `dwFlags=`*(self: var MIB_UDPROW_OWNER_MODULE, x: DWORD) {.inline.} = + self.union1.dwFlags = x + +proc dwFlags*(self: MIB_UDPROW_OWNER_MODULE): DWORD {.inline.} = + self.union1.dwFlags + +proc dwFlags*(self: var MIB_UDPROW_OWNER_MODULE): var DWORD {.inline.} = + self.union1.dwFlags + +proc `SpecificPortBind=`*(self: var MIB_UDP6ROW_OWNER_MODULE, x: DWORD) {.inline.} = + self.union1.struct1.SpecificPortBind = x + +proc SpecificPortBind*(self: MIB_UDP6ROW_OWNER_MODULE): DWORD {.inline.} = + self.union1.struct1.SpecificPortBind + +proc `dwFlags=`*(self: var MIB_UDP6ROW_OWNER_MODULE, x: DWORD) {.inline.} = + self.union1.dwFlags = x + +proc dwFlags*(self: MIB_UDP6ROW_OWNER_MODULE): DWORD {.inline.} = + self.union1.dwFlags + +proc dwFlags*(self: var MIB_UDP6ROW_OWNER_MODULE): var DWORD {.inline.} = + self.union1.dwFlags + +proc `ullAlign=`*(self: var MIB_OPAQUE_INFO, x: ULONGLONG) {.inline.} = + self.union1.ullAlign = x + +proc ullAlign*(self: MIB_OPAQUE_INFO): ULONGLONG {.inline.} = + self.union1.ullAlign + +proc ullAlign*(self: var MIB_OPAQUE_INFO): var ULONGLONG {.inline.} = + self.union1.ullAlign + +proc `rgbyData=`*(self: var MIB_OPAQUE_INFO, x: array[1, BYTE]) {.inline.} = + self.union1.rgbyData = x + +proc rgbyData*(self: MIB_OPAQUE_INFO): array[1, BYTE] {.inline.} = + self.union1.rgbyData + +proc rgbyData*(self: var MIB_OPAQUE_INFO): var array[1, BYTE] {.inline.} = + self.union1.rgbyData + +proc `Alignment=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_UNICAST_ADDRESS_XP): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Flags=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_XP, x: DWORD) {.inline.} = + self.union1.struct1.Flags = x + +proc `Alignment=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_UNICAST_ADDRESS_LH): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Flags=`*(self: var IP_ADAPTER_UNICAST_ADDRESS_LH, x: DWORD) {.inline.} = + self.union1.struct1.Flags = x + +proc `Alignment=`*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_ANYCAST_ADDRESS_XP): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Flags=`*(self: var IP_ADAPTER_ANYCAST_ADDRESS_XP, x: DWORD) {.inline.} = + self.union1.struct1.Flags = x + +proc `Alignment=`*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_MULTICAST_ADDRESS_XP): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Flags=`*(self: var IP_ADAPTER_MULTICAST_ADDRESS_XP, x: DWORD) {.inline.} = + self.union1.struct1.Flags = x + +proc `Alignment=`*( + self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP, x: ULONGLONG +) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_DNS_SERVER_ADDRESS_XP): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Reserved=`*(self: var IP_ADAPTER_DNS_SERVER_ADDRESS_XP, x: DWORD) {.inline.} = + self.union1.struct1.Reserved = x + +proc `Alignment=`*(self: var IP_ADAPTER_PREFIX_XP, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_PREFIX_XP): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_PREFIX_XP): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_PREFIX_XP, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Flags=`*(self: var IP_ADAPTER_PREFIX_XP, x: DWORD) {.inline.} = + self.union1.struct1.Flags = x + +proc `Alignment=`*( + self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH, x: ULONGLONG +) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_WINS_SERVER_ADDRESS_LH): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Reserved=`*(self: var IP_ADAPTER_WINS_SERVER_ADDRESS_LH, x: DWORD) {.inline.} = + self.union1.struct1.Reserved = x + +proc `Alignment=`*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_GATEWAY_ADDRESS_LH): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `Reserved=`*(self: var IP_ADAPTER_GATEWAY_ADDRESS_LH, x: DWORD) {.inline.} = + self.union1.struct1.Reserved = x + +proc `Alignment=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_ADDRESSES_LH): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_ADDRESSES_LH): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `IfIndex=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: IF_INDEX) {.inline.} = + self.union1.struct1.IfIndex = x + +proc ifIndex*(self: IP_ADAPTER_ADDRESSES_LH): IF_INDEX {.inline.} = + self.union1.struct1.IfIndex + +proc ifIndex*(self: var IP_ADAPTER_ADDRESSES_LH): var IF_INDEX {.inline.} = + self.union1.struct1.IfIndex + +proc `Flags=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.Flags = x + +proc `DdnsEnabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.DdnsEnabled = x + +proc DdnsEnabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.DdnsEnabled + +proc `RegisterAdapterSuffix=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.RegisterAdapterSuffix = x + +proc RegisterAdapterSuffix*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.RegisterAdapterSuffix + +proc `Dhcpv4Enabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.Dhcpv4Enabled = x + +proc Dhcpv4Enabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.Dhcpv4Enabled + +proc `ReceiveOnly=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.ReceiveOnly = x + +proc ReceiveOnly*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.ReceiveOnly + +proc `NoMulticast=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.NoMulticast = x + +proc NoMulticast*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.NoMulticast + +proc `Ipv6OtherStatefulConfig=`*( + self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG +) {.inline.} = + self.union2.struct1.Ipv6OtherStatefulConfig = x + +proc Ipv6OtherStatefulConfig*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.Ipv6OtherStatefulConfig + +proc `NetbiosOverTcpipEnabled=`*( + self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG +) {.inline.} = + self.union2.struct1.NetbiosOverTcpipEnabled = x + +proc NetbiosOverTcpipEnabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.NetbiosOverTcpipEnabled + +proc `Ipv4Enabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.Ipv4Enabled = x + +proc Ipv4Enabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.Ipv4Enabled + +proc `Ipv6Enabled=`*(self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG) {.inline.} = + self.union2.struct1.Ipv6Enabled = x + +proc Ipv6Enabled*(self: IP_ADAPTER_ADDRESSES_LH): ULONG {.inline.} = + self.union2.struct1.Ipv6Enabled + +proc `Ipv6ManagedAddressConfigurationSupported=`*( + self: var IP_ADAPTER_ADDRESSES_LH, x: ULONG +) {.inline.} = + self.union2.struct1.Ipv6ManagedAddressConfigurationSupported = x + +proc Ipv6ManagedAddressConfigurationSupported*( + self: IP_ADAPTER_ADDRESSES_LH +): ULONG {.inline.} = + self.union2.struct1.Ipv6ManagedAddressConfigurationSupported + +proc `Alignment=`*(self: var IP_ADAPTER_ADDRESSES_XP, x: ULONGLONG) {.inline.} = + self.union1.Alignment = x + +proc Alignment*(self: IP_ADAPTER_ADDRESSES_XP): ULONGLONG {.inline.} = + self.union1.Alignment + +proc Alignment*(self: var IP_ADAPTER_ADDRESSES_XP): var ULONGLONG {.inline.} = + self.union1.Alignment + +proc `Length=`*(self: var IP_ADAPTER_ADDRESSES_XP, x: ULONG) {.inline.} = + self.union1.struct1.Length = x + +proc `IfIndex=`*(self: var IP_ADAPTER_ADDRESSES_XP, x: DWORD) {.inline.} = + self.union1.struct1.IfIndex = x + +proc ifIndex*(self: IP_ADAPTER_ADDRESSES_XP): DWORD {.inline.} = + self.union1.struct1.IfIndex + +proc ifIndex*(self: var IP_ADAPTER_ADDRESSES_XP): var DWORD {.inline.} = + self.union1.struct1.IfIndex + +proc `NamedAddress=`*( + self: var NET_ADDRESS_INFO, x: NET_ADDRESS_INFO_UNION1_NamedAddress +) {.inline.} = + self.union1.NamedAddress = x + +proc NamedAddress*( + self: NET_ADDRESS_INFO +): NET_ADDRESS_INFO_UNION1_NamedAddress {.inline.} = + self.union1.NamedAddress + +proc NamedAddress*( + self: var NET_ADDRESS_INFO +): var NET_ADDRESS_INFO_UNION1_NamedAddress {.inline.} = + self.union1.NamedAddress + +proc `Ipv4Address=`*(self: var NET_ADDRESS_INFO, x: SOCKADDR_IN) {.inline.} = + self.union1.Ipv4Address = x + +proc ipv4Address*(self: NET_ADDRESS_INFO): SOCKADDR_IN {.inline.} = + self.union1.Ipv4Address + +proc ipv4Address*(self: var NET_ADDRESS_INFO): var SOCKADDR_IN {.inline.} = + self.union1.Ipv4Address + +proc `Ipv6Address=`*(self: var NET_ADDRESS_INFO, x: SOCKADDR_IN6) {.inline.} = + self.union1.Ipv6Address = x + +proc ipv6Address*(self: NET_ADDRESS_INFO): SOCKADDR_IN6 {.inline.} = + self.union1.Ipv6Address + +proc ipv6Address*(self: var NET_ADDRESS_INFO): var SOCKADDR_IN6 {.inline.} = + self.union1.Ipv6Address + +proc `IpAddress=`*(self: var NET_ADDRESS_INFO, x: SOCKADDR) {.inline.} = + self.union1.IpAddress = x + +proc ipAddress*(self: NET_ADDRESS_INFO): SOCKADDR {.inline.} = + self.union1.IpAddress + +proc ipAddress*(self: var NET_ADDRESS_INFO): var SOCKADDR {.inline.} = + self.union1.IpAddress + +proc `AuthenticationEvent=`*( + self: var NDIS_802_11_TEST, x: NDIS_802_11_AUTHENTICATION_EVENT +) {.inline.} = + self.union1.AuthenticationEvent = x + +proc AuthenticationEvent*( + self: NDIS_802_11_TEST +): NDIS_802_11_AUTHENTICATION_EVENT {.inline.} = + self.union1.AuthenticationEvent + +proc AuthenticationEvent*( + self: var NDIS_802_11_TEST +): var NDIS_802_11_AUTHENTICATION_EVENT {.inline.} = + self.union1.AuthenticationEvent + +proc `RssiTrigger=`*(self: var NDIS_802_11_TEST, x: NDIS_802_11_RSSI) {.inline.} = + self.union1.RssiTrigger = x + +proc RssiTrigger*(self: NDIS_802_11_TEST): NDIS_802_11_RSSI {.inline.} = + self.union1.RssiTrigger + +proc RssiTrigger*(self: var NDIS_802_11_TEST): var NDIS_802_11_RSSI {.inline.} = + self.union1.RssiTrigger + +proc `Oid=`*(self: var NDIS_GUID, x: NDIS_OID) {.inline.} = + self.union1.Oid = x + +proc Oid*(self: NDIS_GUID): NDIS_OID {.inline.} = + self.union1.Oid + +proc Oid*(self: var NDIS_GUID): var NDIS_OID {.inline.} = + self.union1.Oid + +proc `Status=`*(self: var NDIS_GUID, x: NDIS_STATUS) {.inline.} = + self.union1.Status = x + +proc Status*(self: NDIS_GUID): NDIS_STATUS {.inline.} = + self.union1.Status + +proc Status*(self: var NDIS_GUID): var NDIS_STATUS {.inline.} = + self.union1.Status + +proc `RscIPv4=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = + self.struct1.RscIPv4 = x + +proc RscIPv4*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = + self.struct1.RscIPv4 + +proc RscIPv4*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = + self.struct1.RscIPv4 + +proc `RscIPv6=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = + self.struct1.RscIPv6 = x + +proc RscIPv6*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = + self.struct1.RscIPv6 + +proc RscIPv6*(self: var NDIS_OFFLOAD_PARAMETERS): var UCHAR {.inline.} = + self.struct1.RscIPv6 + +proc `EncapsulatedPacketTaskOffload=`*( + self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR +) {.inline.} = + self.struct2.EncapsulatedPacketTaskOffload = x + +proc EncapsulatedPacketTaskOffload*(self: NDIS_OFFLOAD_PARAMETERS): UCHAR {.inline.} = + self.struct2.EncapsulatedPacketTaskOffload + +proc EncapsulatedPacketTaskOffload*( + self: var NDIS_OFFLOAD_PARAMETERS +): var UCHAR {.inline.} = + self.struct2.EncapsulatedPacketTaskOffload + +proc `EncapsulationTypes=`*(self: var NDIS_OFFLOAD_PARAMETERS, x: UCHAR) {.inline.} = + self.struct2.EncapsulationTypes = x + +proc `VlanProperties=`*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, + x: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_VlanProperties, +) {.inline.} = + self.union1.VlanProperties = x + +proc `SecondaryVlanId=`*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, x: UINT16 +) {.inline.} = + self.union1.PvlanProperties.union1.SecondaryVlanId = x + +proc SecondaryVlanId*(self: NDIS_SWITCH_PORT_PROPERTY_VLAN): UINT16 {.inline.} = + self.union1.PvlanProperties.union1.SecondaryVlanId + +proc SecondaryVlanId*(self: var NDIS_SWITCH_PORT_PROPERTY_VLAN): var UINT16 {.inline.} = + self.union1.PvlanProperties.union1.SecondaryVlanId + +proc `SecondaryVlanIdArray=`*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, x: array[64, UINT64] +) {.inline.} = + self.union1.PvlanProperties.union1.SecondaryVlanIdArray = x + +proc SecondaryVlanIdArray*( + self: NDIS_SWITCH_PORT_PROPERTY_VLAN +): array[64, UINT64] {.inline.} = + self.union1.PvlanProperties.union1.SecondaryVlanIdArray + +proc SecondaryVlanIdArray*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN +): var array[64, UINT64] {.inline.} = + self.union1.PvlanProperties.union1.SecondaryVlanIdArray + +proc `PvlanProperties=`*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN, + x: NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties, +) {.inline.} = + self.union1.PvlanProperties = x + +proc PvlanProperties*( + self: NDIS_SWITCH_PORT_PROPERTY_VLAN +): NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties {.inline.} = + self.union1.PvlanProperties + +proc PvlanProperties*( + self: var NDIS_SWITCH_PORT_PROPERTY_VLAN +): var NDIS_SWITCH_PORT_PROPERTY_VLAN_UNION1_PvlanProperties {.inline.} = + self.union1.PvlanProperties + +proc `LastReachable=`*(self: var MIB_IPPATH_ROW, x: ULONG) {.inline.} = + self.union1.LastReachable = x + +proc LastReachable*(self: MIB_IPPATH_ROW): ULONG {.inline.} = + self.union1.LastReachable + +proc LastReachable*(self: var MIB_IPPATH_ROW): var ULONG {.inline.} = + self.union1.LastReachable + +proc `LastUnreachable=`*(self: var MIB_IPPATH_ROW, x: ULONG) {.inline.} = + self.union1.LastUnreachable = x + +proc LastUnreachable*(self: MIB_IPPATH_ROW): ULONG {.inline.} = + self.union1.LastUnreachable + +proc LastUnreachable*(self: var MIB_IPPATH_ROW): var ULONG {.inline.} = + self.union1.LastUnreachable + +proc `IsRouter=`*(self: var MIB_IPNET_ROW2, x: BOOLEAN) {.inline.} = + self.union1.struct1.IsRouter = x + +proc IsRouter*(self: MIB_IPNET_ROW2): BOOLEAN {.inline.} = + self.union1.struct1.IsRouter + +proc `IsUnreachable=`*(self: var MIB_IPNET_ROW2, x: BOOLEAN) {.inline.} = + self.union1.struct1.IsUnreachable = x + +proc IsUnreachable*(self: MIB_IPNET_ROW2): BOOLEAN {.inline.} = + self.union1.struct1.IsUnreachable + +proc `Flags=`*(self: var MIB_IPNET_ROW2, x: UCHAR) {.inline.} = + self.union1.Flags = x + +proc OnComplete*( + self: ptr IConnectionRequestCallback, hrStatus: HRESULT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnComplete(self, hrStatus) + +converter winimConverterIConnectionRequestCallbackToIUnknown*( + x: ptr IConnectionRequestCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimCpu64: type IP_OPTION_INFORMATION32* {.pure.} = object @@ -6084,6 +7530,7 @@ Flags*: UCHAR OptionsSize*: UCHAR OptionsData*: ptr UCHAR + PIP_OPTION_INFORMATION32* = ptr IP_OPTION_INFORMATION32 ICMP_ECHO_REPLY32* {.pure.} = object Address*: IPAddr @@ -6093,4 +7540,5 @@ Reserved*: USHORT Data*: pointer Options*: IP_OPTION_INFORMATION32 + PICMP_ECHO_REPLY32* = ptr ICMP_ECHO_REPLY32 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/lm.nim --- a/semicongine/thirdparty/winim/winim/inc/lm.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/lm.nim Thu Aug 22 18:32:21 2024 +0700 @@ -46,16 +46,16 @@ LMSTR* = LPWSTR LMCSTR* = LPCWSTR NET_API_STATUS* = DWORD + when winimUnicode: - type - DESC_CHAR* = WCHAR + type DESC_CHAR* = WCHAR when winimAnsi: - type - DESC_CHAR* = CHAR + type DESC_CHAR* = CHAR type API_RET_TYPE* = NET_API_STATUS USER_INFO_0* {.pure.} = object usri0_name*: LPWSTR + PUSER_INFO_0* = ptr USER_INFO_0 LPUSER_INFO_0* = ptr USER_INFO_0 USER_INFO_1* {.pure.} = object @@ -67,6 +67,7 @@ usri1_comment*: LPWSTR usri1_flags*: DWORD usri1_script_path*: LPWSTR + PUSER_INFO_1* = ptr USER_INFO_1 LPUSER_INFO_1* = ptr USER_INFO_1 USER_INFO_2* {.pure.} = object @@ -94,6 +95,7 @@ usri2_logon_server*: LPWSTR usri2_country_code*: DWORD usri2_code_page*: DWORD + PUSER_INFO_2* = ptr USER_INFO_2 LPUSER_INFO_2* = ptr USER_INFO_2 USER_INFO_3* {.pure.} = object @@ -126,6 +128,7 @@ usri3_profile*: LPWSTR usri3_home_dir_drive*: LPWSTR usri3_password_expired*: DWORD + PUSER_INFO_3* = ptr USER_INFO_3 LPUSER_INFO_3* = ptr USER_INFO_3 USER_INFO_4* {.pure.} = object @@ -158,6 +161,7 @@ usri4_profile*: LPWSTR usri4_home_dir_drive*: LPWSTR usri4_password_expired*: DWORD + PUSER_INFO_4* = ptr USER_INFO_4 LPUSER_INFO_4* = ptr USER_INFO_4 USER_INFO_10* {.pure.} = object @@ -165,6 +169,7 @@ usri10_comment*: LPWSTR usri10_usr_comment*: LPWSTR usri10_full_name*: LPWSTR + PUSER_INFO_10* = ptr USER_INFO_10 LPUSER_INFO_10* = ptr USER_INFO_10 USER_INFO_11* {.pure.} = object @@ -188,6 +193,7 @@ usri11_units_per_week*: DWORD usri11_logon_hours*: PBYTE usri11_code_page*: DWORD + PUSER_INFO_11* = ptr USER_INFO_11 LPUSER_INFO_11* = ptr USER_INFO_11 USER_INFO_20* {.pure.} = object @@ -196,13 +202,15 @@ usri20_comment*: LPWSTR usri20_flags*: DWORD usri20_user_id*: DWORD + PUSER_INFO_20* = ptr USER_INFO_20 LPUSER_INFO_20* = ptr USER_INFO_20 -const - ENCRYPTED_PWLEN* = 16 + +const ENCRYPTED_PWLEN* = 16 type USER_INFO_21* {.pure.} = object usri21_password*: array[ENCRYPTED_PWLEN, BYTE] + PUSER_INFO_21* = ptr USER_INFO_21 LPUSER_INFO_21* = ptr USER_INFO_21 USER_INFO_22* {.pure.} = object @@ -230,6 +238,7 @@ usri22_logon_server*: LPWSTR usri22_country_code*: DWORD usri22_code_page*: DWORD + PUSER_INFO_22* = ptr USER_INFO_22 LPUSER_INFO_22* = ptr USER_INFO_22 USER_INFO_23* {.pure.} = object @@ -238,6 +247,7 @@ usri23_comment*: LPWSTR usri23_flags*: DWORD usri23_user_sid*: PSID + PUSER_INFO_23* = ptr USER_INFO_23 LPUSER_INFO_23* = ptr USER_INFO_23 USER_INFO_24* {.pure.} = object @@ -246,87 +256,108 @@ usri24_internet_provider_name*: LPWSTR usri24_internet_principal_name*: LPWSTR usri24_user_sid*: PSID + PUSER_INFO_24* = ptr USER_INFO_24 LPUSER_INFO_24* = ptr USER_INFO_24 USER_INFO_1003* {.pure.} = object usri1003_password*: LPWSTR + PUSER_INFO_1003* = ptr USER_INFO_1003 LPUSER_INFO_1003* = ptr USER_INFO_1003 USER_INFO_1005* {.pure.} = object usri1005_priv*: DWORD + PUSER_INFO_1005* = ptr USER_INFO_1005 LPUSER_INFO_1005* = ptr USER_INFO_1005 USER_INFO_1006* {.pure.} = object usri1006_home_dir*: LPWSTR + PUSER_INFO_1006* = ptr USER_INFO_1006 LPUSER_INFO_1006* = ptr USER_INFO_1006 USER_INFO_1007* {.pure.} = object usri1007_comment*: LPWSTR + PUSER_INFO_1007* = ptr USER_INFO_1007 LPUSER_INFO_1007* = ptr USER_INFO_1007 USER_INFO_1008* {.pure.} = object usri1008_flags*: DWORD + PUSER_INFO_1008* = ptr USER_INFO_1008 LPUSER_INFO_1008* = ptr USER_INFO_1008 USER_INFO_1009* {.pure.} = object usri1009_script_path*: LPWSTR + PUSER_INFO_1009* = ptr USER_INFO_1009 LPUSER_INFO_1009* = ptr USER_INFO_1009 USER_INFO_1010* {.pure.} = object usri1010_auth_flags*: DWORD + PUSER_INFO_1010* = ptr USER_INFO_1010 LPUSER_INFO_1010* = ptr USER_INFO_1010 USER_INFO_1011* {.pure.} = object usri1011_full_name*: LPWSTR + PUSER_INFO_1011* = ptr USER_INFO_1011 LPUSER_INFO_1011* = ptr USER_INFO_1011 USER_INFO_1012* {.pure.} = object usri1012_usr_comment*: LPWSTR + PUSER_INFO_1012* = ptr USER_INFO_1012 LPUSER_INFO_1012* = ptr USER_INFO_1012 USER_INFO_1013* {.pure.} = object usri1013_parms*: LPWSTR + PUSER_INFO_1013* = ptr USER_INFO_1013 LPUSER_INFO_1013* = ptr USER_INFO_1013 USER_INFO_1014* {.pure.} = object usri1014_workstations*: LPWSTR + PUSER_INFO_1014* = ptr USER_INFO_1014 LPUSER_INFO_1014* = ptr USER_INFO_1014 USER_INFO_1017* {.pure.} = object usri1017_acct_expires*: DWORD + PUSER_INFO_1017* = ptr USER_INFO_1017 LPUSER_INFO_1017* = ptr USER_INFO_1017 USER_INFO_1018* {.pure.} = object usri1018_max_storage*: DWORD + PUSER_INFO_1018* = ptr USER_INFO_1018 LPUSER_INFO_1018* = ptr USER_INFO_1018 USER_INFO_1020* {.pure.} = object usri1020_units_per_week*: DWORD usri1020_logon_hours*: LPBYTE + PUSER_INFO_1020* = ptr USER_INFO_1020 LPUSER_INFO_1020* = ptr USER_INFO_1020 USER_INFO_1023* {.pure.} = object usri1023_logon_server*: LPWSTR + PUSER_INFO_1023* = ptr USER_INFO_1023 LPUSER_INFO_1023* = ptr USER_INFO_1023 USER_INFO_1024* {.pure.} = object usri1024_country_code*: DWORD + PUSER_INFO_1024* = ptr USER_INFO_1024 LPUSER_INFO_1024* = ptr USER_INFO_1024 USER_INFO_1025* {.pure.} = object usri1025_code_page*: DWORD + PUSER_INFO_1025* = ptr USER_INFO_1025 LPUSER_INFO_1025* = ptr USER_INFO_1025 USER_INFO_1051* {.pure.} = object usri1051_primary_group_id*: DWORD + PUSER_INFO_1051* = ptr USER_INFO_1051 LPUSER_INFO_1051* = ptr USER_INFO_1051 USER_INFO_1052* {.pure.} = object usri1052_profile*: LPWSTR + PUSER_INFO_1052* = ptr USER_INFO_1052 LPUSER_INFO_1052* = ptr USER_INFO_1052 USER_INFO_1053* {.pure.} = object usri1053_home_dir_drive*: LPWSTR + PUSER_INFO_1053* = ptr USER_INFO_1053 LPUSER_INFO_1053* = ptr USER_INFO_1053 USER_MODALS_INFO_0* {.pure.} = object @@ -335,59 +366,72 @@ usrmod0_min_passwd_age*: DWORD usrmod0_force_logoff*: DWORD usrmod0_password_hist_len*: DWORD + PUSER_MODALS_INFO_0* = ptr USER_MODALS_INFO_0 LPUSER_MODALS_INFO_0* = ptr USER_MODALS_INFO_0 USER_MODALS_INFO_1* {.pure.} = object usrmod1_role*: DWORD usrmod1_primary*: LPWSTR + PUSER_MODALS_INFO_1* = ptr USER_MODALS_INFO_1 LPUSER_MODALS_INFO_1* = ptr USER_MODALS_INFO_1 USER_MODALS_INFO_2* {.pure.} = object usrmod2_domain_name*: LPWSTR usrmod2_domain_id*: PSID + PUSER_MODALS_INFO_2* = ptr USER_MODALS_INFO_2 LPUSER_MODALS_INFO_2* = ptr USER_MODALS_INFO_2 USER_MODALS_INFO_3* {.pure.} = object usrmod3_lockout_duration*: DWORD usrmod3_lockout_observation_window*: DWORD usrmod3_lockout_threshold*: DWORD + PUSER_MODALS_INFO_3* = ptr USER_MODALS_INFO_3 LPUSER_MODALS_INFO_3* = ptr USER_MODALS_INFO_3 USER_MODALS_INFO_1001* {.pure.} = object usrmod1001_min_passwd_len*: DWORD + PUSER_MODALS_INFO_1001* = ptr USER_MODALS_INFO_1001 LPUSER_MODALS_INFO_1001* = ptr USER_MODALS_INFO_1001 USER_MODALS_INFO_1002* {.pure.} = object usrmod1002_max_passwd_age*: DWORD + PUSER_MODALS_INFO_1002* = ptr USER_MODALS_INFO_1002 LPUSER_MODALS_INFO_1002* = ptr USER_MODALS_INFO_1002 USER_MODALS_INFO_1003* {.pure.} = object usrmod1003_min_passwd_age*: DWORD + PUSER_MODALS_INFO_1003* = ptr USER_MODALS_INFO_1003 LPUSER_MODALS_INFO_1003* = ptr USER_MODALS_INFO_1003 USER_MODALS_INFO_1004* {.pure.} = object usrmod1004_force_logoff*: DWORD + PUSER_MODALS_INFO_1004* = ptr USER_MODALS_INFO_1004 LPUSER_MODALS_INFO_1004* = ptr USER_MODALS_INFO_1004 USER_MODALS_INFO_1005* {.pure.} = object usrmod1005_password_hist_len*: DWORD + PUSER_MODALS_INFO_1005* = ptr USER_MODALS_INFO_1005 LPUSER_MODALS_INFO_1005* = ptr USER_MODALS_INFO_1005 USER_MODALS_INFO_1006* {.pure.} = object usrmod1006_role*: DWORD + PUSER_MODALS_INFO_1006* = ptr USER_MODALS_INFO_1006 LPUSER_MODALS_INFO_1006* = ptr USER_MODALS_INFO_1006 USER_MODALS_INFO_1007* {.pure.} = object usrmod1007_primary*: LPWSTR + PUSER_MODALS_INFO_1007* = ptr USER_MODALS_INFO_1007 LPUSER_MODALS_INFO_1007* = ptr USER_MODALS_INFO_1007 GROUP_INFO_0* {.pure.} = object grpi0_name*: LPWSTR + PGROUP_INFO_0* = ptr GROUP_INFO_0 LPGROUP_INFO_0* = ptr GROUP_INFO_0 GROUP_INFO_1* {.pure.} = object grpi1_name*: LPWSTR grpi1_comment*: LPWSTR + PGROUP_INFO_1* = ptr GROUP_INFO_1 LPGROUP_INFO_1* = ptr GROUP_INFO_1 GROUP_INFO_2* {.pure.} = object @@ -395,65 +439,79 @@ grpi2_comment*: LPWSTR grpi2_group_id*: DWORD grpi2_attributes*: DWORD + PGROUP_INFO_2* = ptr GROUP_INFO_2 GROUP_INFO_3* {.pure.} = object grpi3_name*: LPWSTR grpi3_comment*: LPWSTR grpi3_group_sid*: PSID grpi3_attributes*: DWORD + PGROUP_INFO_3* = ptr GROUP_INFO_3 GROUP_INFO_1002* {.pure.} = object grpi1002_comment*: LPWSTR + PGROUP_INFO_1002* = ptr GROUP_INFO_1002 LPGROUP_INFO_1002* = ptr GROUP_INFO_1002 GROUP_INFO_1005* {.pure.} = object grpi1005_attributes*: DWORD + PGROUP_INFO_1005* = ptr GROUP_INFO_1005 LPGROUP_INFO_1005* = ptr GROUP_INFO_1005 GROUP_USERS_INFO_0* {.pure.} = object grui0_name*: LPWSTR + PGROUP_USERS_INFO_0* = ptr GROUP_USERS_INFO_0 LPGROUP_USERS_INFO_0* = ptr GROUP_USERS_INFO_0 GROUP_USERS_INFO_1* {.pure.} = object grui1_name*: LPWSTR grui1_attributes*: DWORD + PGROUP_USERS_INFO_1* = ptr GROUP_USERS_INFO_1 LPGROUP_USERS_INFO_1* = ptr GROUP_USERS_INFO_1 LOCALGROUP_INFO_0* {.pure.} = object lgrpi0_name*: LPWSTR + PLOCALGROUP_INFO_0* = ptr LOCALGROUP_INFO_0 LPLOCALGROUP_INFO_0* = ptr LOCALGROUP_INFO_0 LOCALGROUP_INFO_1* {.pure.} = object lgrpi1_name*: LPWSTR lgrpi1_comment*: LPWSTR + PLOCALGROUP_INFO_1* = ptr LOCALGROUP_INFO_1 LPLOCALGROUP_INFO_1* = ptr LOCALGROUP_INFO_1 LOCALGROUP_INFO_1002* {.pure.} = object lgrpi1002_comment*: LPWSTR + PLOCALGROUP_INFO_1002* = ptr LOCALGROUP_INFO_1002 LPLOCALGROUP_INFO_1002* = ptr LOCALGROUP_INFO_1002 LOCALGROUP_MEMBERS_INFO_0* {.pure.} = object lgrmi0_sid*: PSID + PLOCALGROUP_MEMBERS_INFO_0* = ptr LOCALGROUP_MEMBERS_INFO_0 LPLOCALGROUP_MEMBERS_INFO_0* = ptr LOCALGROUP_MEMBERS_INFO_0 LOCALGROUP_MEMBERS_INFO_1* {.pure.} = object lgrmi1_sid*: PSID lgrmi1_sidusage*: SID_NAME_USE lgrmi1_name*: LPWSTR + PLOCALGROUP_MEMBERS_INFO_1* = ptr LOCALGROUP_MEMBERS_INFO_1 LPLOCALGROUP_MEMBERS_INFO_1* = ptr LOCALGROUP_MEMBERS_INFO_1 LOCALGROUP_MEMBERS_INFO_2* {.pure.} = object lgrmi2_sid*: PSID lgrmi2_sidusage*: SID_NAME_USE lgrmi2_domainandname*: LPWSTR + PLOCALGROUP_MEMBERS_INFO_2* = ptr LOCALGROUP_MEMBERS_INFO_2 LPLOCALGROUP_MEMBERS_INFO_2* = ptr LOCALGROUP_MEMBERS_INFO_2 LOCALGROUP_MEMBERS_INFO_3* {.pure.} = object lgrmi3_domainandname*: LPWSTR + PLOCALGROUP_MEMBERS_INFO_3* = ptr LOCALGROUP_MEMBERS_INFO_3 LPLOCALGROUP_MEMBERS_INFO_3* = ptr LOCALGROUP_MEMBERS_INFO_3 LOCALGROUP_USERS_INFO_0* {.pure.} = object lgrui0_name*: LPWSTR + PLOCALGROUP_USERS_INFO_0* = ptr LOCALGROUP_USERS_INFO_0 LPLOCALGROUP_USERS_INFO_0* = ptr LOCALGROUP_USERS_INFO_0 NET_DISPLAY_USER* {.pure.} = object @@ -463,6 +521,7 @@ usri1_full_name*: LPWSTR usri1_user_id*: DWORD usri1_next_index*: DWORD + PNET_DISPLAY_USER* = ptr NET_DISPLAY_USER NET_DISPLAY_MACHINE* {.pure.} = object usri2_name*: LPWSTR @@ -470,6 +529,7 @@ usri2_flags*: DWORD usri2_user_id*: DWORD usri2_next_index*: DWORD + PNET_DISPLAY_MACHINE* = ptr NET_DISPLAY_MACHINE NET_DISPLAY_GROUP* {.pure.} = object grpi3_name*: LPWSTR @@ -477,29 +537,35 @@ grpi3_group_id*: DWORD grpi3_attributes*: DWORD grpi3_next_index*: DWORD + PNET_DISPLAY_GROUP* = ptr NET_DISPLAY_GROUP ACCESS_INFO_0* {.pure.} = object acc0_resource_name*: LPWSTR + PACCESS_INFO_0* = ptr ACCESS_INFO_0 LPACCESS_INFO_0* = ptr ACCESS_INFO_0 ACCESS_INFO_1* {.pure.} = object acc1_resource_name*: LPWSTR acc1_attr*: DWORD acc1_count*: DWORD + PACCESS_INFO_1* = ptr ACCESS_INFO_1 LPACCESS_INFO_1* = ptr ACCESS_INFO_1 ACCESS_INFO_1002* {.pure.} = object acc1002_attr*: DWORD + PACCESS_INFO_1002* = ptr ACCESS_INFO_1002 LPACCESS_INFO_1002* = ptr ACCESS_INFO_1002 ACCESS_LIST* {.pure.} = object acl_ugname*: LPWSTR acl_access*: DWORD + PACCESS_LIST* = ptr ACCESS_LIST LPACCESS_LIST* = ptr ACCESS_LIST NET_VALIDATE_PASSWORD_HASH* {.pure.} = object Length*: ULONG Hash*: LPBYTE + PNET_VALIDATE_PASSWORD_HASH* = ptr NET_VALIDATE_PASSWORD_HASH NET_VALIDATE_PERSISTED_FIELDS* {.pure.} = object PresentFields*: ULONG @@ -509,14 +575,17 @@ BadPasswordCount*: ULONG PasswordHistoryLength*: ULONG PasswordHistory*: PNET_VALIDATE_PASSWORD_HASH + PNET_VALIDATE_PERSISTED_FIELDS* = ptr NET_VALIDATE_PERSISTED_FIELDS NET_VALIDATE_OUTPUT_ARG* {.pure.} = object ChangedPersistedFields*: NET_VALIDATE_PERSISTED_FIELDS ValidationStatus*: NET_API_STATUS + PNET_VALIDATE_OUTPUT_ARG* = ptr NET_VALIDATE_OUTPUT_ARG NET_VALIDATE_AUTHENTICATION_INPUT_ARG* {.pure.} = object InputPersistedFields*: NET_VALIDATE_PERSISTED_FIELDS PasswordMatched*: BOOLEAN + PNET_VALIDATE_AUTHENTICATION_INPUT_ARG* = ptr NET_VALIDATE_AUTHENTICATION_INPUT_ARG NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG* {.pure.} = object InputPersistedFields*: NET_VALIDATE_PERSISTED_FIELDS @@ -524,6 +593,7 @@ UserAccountName*: LPWSTR HashedPassword*: NET_VALIDATE_PASSWORD_HASH PasswordMatch*: BOOLEAN + PNET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG* = ptr NET_VALIDATE_PASSWORD_CHANGE_INPUT_ARG NET_VALIDATE_PASSWORD_RESET_INPUT_ARG* {.pure.} = object InputPersistedFields*: NET_VALIDATE_PERSISTED_FIELDS @@ -532,16 +602,19 @@ HashedPassword*: NET_VALIDATE_PASSWORD_HASH PasswordMustChangeAtNextLogon*: BOOLEAN ClearLockout*: BOOLEAN + PNET_VALIDATE_PASSWORD_RESET_INPUT_ARG* = ptr NET_VALIDATE_PASSWORD_RESET_INPUT_ARG NETLOGON_INFO_1* {.pure.} = object netlog1_flags*: DWORD netlog1_pdc_connection_status*: NET_API_STATUS + PNETLOGON_INFO_1* = ptr NETLOGON_INFO_1 NETLOGON_INFO_2* {.pure.} = object netlog2_flags*: DWORD netlog2_pdc_connection_status*: NET_API_STATUS netlog2_trusted_dc_name*: LPWSTR netlog2_tc_connection_status*: NET_API_STATUS + PNETLOGON_INFO_2* = ptr NETLOGON_INFO_2 NETLOGON_INFO_3* {.pure.} = object netlog3_flags*: DWORD @@ -551,14 +624,18 @@ netlog3_reserved3*: DWORD netlog3_reserved4*: DWORD netlog3_reserved5*: DWORD + PNETLOGON_INFO_3* = ptr NETLOGON_INFO_3 NETLOGON_INFO_4* {.pure.} = object netlog4_trusted_dc_name*: LPWSTR netlog4_trusted_domain_name*: LPWSTR + PNETLOGON_INFO_4* = ptr NETLOGON_INFO_4 MSA_INFO_0* {.pure.} = object State*: MSA_INFO_STATE + PMSA_INFO_0* = ptr MSA_INFO_0 + const EVLEN* = 16 SNLEN* = 80 @@ -567,16 +644,19 @@ alrt_timestamp*: DWORD alrt_eventname*: array[EVLEN + 1, WCHAR] alrt_servicename*: array[SNLEN + 1, WCHAR] + PSTD_ALERT* = ptr STD_ALERT LPSTD_ALERT* = ptr STD_ALERT ADMIN_OTHER_INFO* {.pure.} = object alrtad_errcode*: DWORD alrtad_numstrings*: DWORD + PADMIN_OTHER_INFO* = ptr ADMIN_OTHER_INFO LPADMIN_OTHER_INFO* = ptr ADMIN_OTHER_INFO ERRLOG_OTHER_INFO* {.pure.} = object alrter_errcode*: DWORD alrter_offset*: DWORD + PERRLOG_OTHER_INFO* = ptr ERRLOG_OTHER_INFO LPERRLOG_OTHER_INFO* = ptr ERRLOG_OTHER_INFO PRINT_OTHER_INFO* {.pure.} = object @@ -584,21 +664,25 @@ alrtpr_status*: DWORD alrtpr_submitted*: DWORD alrtpr_size*: DWORD + PPRINT_OTHER_INFO* = ptr PRINT_OTHER_INFO LPPRINT_OTHER_INFO* = ptr PRINT_OTHER_INFO USER_OTHER_INFO* {.pure.} = object alrtus_errcode*: DWORD alrtus_numstrings*: DWORD + PUSER_OTHER_INFO* = ptr USER_OTHER_INFO LPUSER_OTHER_INFO* = ptr USER_OTHER_INFO SHARE_INFO_0* {.pure.} = object shi0_netname*: LMSTR + PSHARE_INFO_0* = ptr SHARE_INFO_0 LPSHARE_INFO_0* = ptr SHARE_INFO_0 SHARE_INFO_1* {.pure.} = object shi1_netname*: LMSTR shi1_type*: DWORD shi1_remark*: LMSTR + PSHARE_INFO_1* = ptr SHARE_INFO_1 LPSHARE_INFO_1* = ptr SHARE_INFO_1 SHARE_INFO_2* {.pure.} = object @@ -610,6 +694,7 @@ shi2_current_uses*: DWORD shi2_path*: LMSTR shi2_passwd*: LMSTR + PSHARE_INFO_2* = ptr SHARE_INFO_2 LPSHARE_INFO_2* = ptr SHARE_INFO_2 SHARE_INFO_501* {.pure.} = object @@ -617,6 +702,7 @@ shi501_type*: DWORD shi501_remark*: LMSTR shi501_flags*: DWORD + PSHARE_INFO_501* = ptr SHARE_INFO_501 LPSHARE_INFO_501* = ptr SHARE_INFO_501 SHARE_INFO_502* {.pure.} = object @@ -630,27 +716,33 @@ shi502_passwd*: LMSTR shi502_reserved*: DWORD shi502_security_descriptor*: PSECURITY_DESCRIPTOR + PSHARE_INFO_502* = ptr SHARE_INFO_502 LPSHARE_INFO_502* = ptr SHARE_INFO_502 SHARE_INFO_1004* {.pure.} = object shi1004_remark*: LMSTR + PSHARE_INFO_1004* = ptr SHARE_INFO_1004 LPSHARE_INFO_1004* = ptr SHARE_INFO_1004 SHARE_INFO_1005* {.pure.} = object shi1005_flags*: DWORD + PSHARE_INFO_1005* = ptr SHARE_INFO_1005 LPSHARE_INFO_1005* = ptr SHARE_INFO_1005 SHARE_INFO_1006* {.pure.} = object shi1006_max_uses*: DWORD + PSHARE_INFO_1006* = ptr SHARE_INFO_1006 LPSHARE_INFO_1006* = ptr SHARE_INFO_1006 SHARE_INFO_1501* {.pure.} = object shi1501_reserved*: DWORD shi1501_security_descriptor*: PSECURITY_DESCRIPTOR + PSHARE_INFO_1501* = ptr SHARE_INFO_1501 LPSHARE_INFO_1501* = ptr SHARE_INFO_1501 SESSION_INFO_0* {.pure.} = object sesi0_cname*: LMSTR + PSESSION_INFO_0* = ptr SESSION_INFO_0 LPSESSION_INFO_0* = ptr SESSION_INFO_0 SESSION_INFO_1* {.pure.} = object @@ -660,6 +752,7 @@ sesi1_time*: DWORD sesi1_idle_time*: DWORD sesi1_user_flags*: DWORD + PSESSION_INFO_1* = ptr SESSION_INFO_1 LPSESSION_INFO_1* = ptr SESSION_INFO_1 SESSION_INFO_2* {.pure.} = object @@ -670,6 +763,7 @@ sesi2_idle_time*: DWORD sesi2_user_flags*: DWORD sesi2_cltype_name*: LMSTR + PSESSION_INFO_2* = ptr SESSION_INFO_2 LPSESSION_INFO_2* = ptr SESSION_INFO_2 SESSION_INFO_10* {.pure.} = object @@ -677,6 +771,7 @@ sesi10_username*: LMSTR sesi10_time*: DWORD sesi10_idle_time*: DWORD + PSESSION_INFO_10* = ptr SESSION_INFO_10 LPSESSION_INFO_10* = ptr SESSION_INFO_10 SESSION_INFO_502* {.pure.} = object @@ -688,10 +783,12 @@ sesi502_user_flags*: DWORD sesi502_cltype_name*: LMSTR sesi502_transport*: LMSTR + PSESSION_INFO_502* = ptr SESSION_INFO_502 LPSESSION_INFO_502* = ptr SESSION_INFO_502 CONNECTION_INFO_0* {.pure.} = object coni0_id*: DWORD + PCONNECTION_INFO_0* = ptr CONNECTION_INFO_0 LPCONNECTION_INFO_0* = ptr CONNECTION_INFO_0 CONNECTION_INFO_1* {.pure.} = object @@ -702,10 +799,12 @@ coni1_time*: DWORD coni1_username*: LMSTR coni1_netname*: LMSTR + PCONNECTION_INFO_1* = ptr CONNECTION_INFO_1 LPCONNECTION_INFO_1* = ptr CONNECTION_INFO_1 FILE_INFO_2* {.pure.} = object fi2_id*: DWORD + PFILE_INFO_2* = ptr FILE_INFO_2 LPFILE_INFO_2* = ptr FILE_INFO_2 FILE_INFO_3* {.pure.} = object @@ -714,16 +813,19 @@ fi3_num_locks*: DWORD fi3_pathname*: LMSTR fi3_username*: LMSTR + PFILE_INFO_3* = ptr FILE_INFO_3 LPFILE_INFO_3* = ptr FILE_INFO_3 MSG_INFO_0* {.pure.} = object msgi0_name*: LPWSTR + PMSG_INFO_0* = ptr MSG_INFO_0 LPMSG_INFO_0* = ptr MSG_INFO_0 MSG_INFO_1* {.pure.} = object msgi1_name*: LPWSTR msgi1_forward_flag*: DWORD msgi1_forward*: LPWSTR + PMSG_INFO_1* = ptr MSG_INFO_1 LPMSG_INFO_1* = ptr MSG_INFO_1 LPDESC* = ptr DESC_CHAR @@ -740,6 +842,7 @@ tod_month*: DWORD tod_year*: DWORD tod_weekday*: DWORD + PTIME_OF_DAY_INFO* = ptr TIME_OF_DAY_INFO LPTIME_OF_DAY_INFO* = ptr TIME_OF_DAY_INFO REPL_INFO_0* {.pure.} = object @@ -753,32 +856,39 @@ rp0_pulse*: DWORD rp0_guardtime*: DWORD rp0_random*: DWORD + PREPL_INFO_0* = ptr REPL_INFO_0 LPREPL_INFO_0* = ptr REPL_INFO_0 REPL_INFO_1000* {.pure.} = object rp1000_interval*: DWORD + PREPL_INFO_1000* = ptr REPL_INFO_1000 LPREPL_INFO_1000* = ptr REPL_INFO_1000 REPL_INFO_1001* {.pure.} = object rp1001_pulse*: DWORD + PREPL_INFO_1001* = ptr REPL_INFO_1001 LPREPL_INFO_1001* = ptr REPL_INFO_1001 REPL_INFO_1002* {.pure.} = object rp1002_guardtime*: DWORD + PREPL_INFO_1002* = ptr REPL_INFO_1002 LPREPL_INFO_1002* = ptr REPL_INFO_1002 REPL_INFO_1003* {.pure.} = object rp1003_random*: DWORD + PREPL_INFO_1003* = ptr REPL_INFO_1003 LPREPL_INFO_1003* = ptr REPL_INFO_1003 REPL_EDIR_INFO_0* {.pure.} = object rped0_dirname*: LPWSTR + PREPL_EDIR_INFO_0* = ptr REPL_EDIR_INFO_0 LPREPL_EDIR_INFO_0* = ptr REPL_EDIR_INFO_0 REPL_EDIR_INFO_1* {.pure.} = object rped1_dirname*: LPWSTR rped1_integrity*: DWORD rped1_extent*: DWORD + PREPL_EDIR_INFO_1* = ptr REPL_EDIR_INFO_1 LPREPL_EDIR_INFO_1* = ptr REPL_EDIR_INFO_1 REPL_EDIR_INFO_2* {.pure.} = object @@ -787,18 +897,22 @@ rped2_extent*: DWORD rped2_lockcount*: DWORD rped2_locktime*: DWORD + PREPL_EDIR_INFO_2* = ptr REPL_EDIR_INFO_2 LPREPL_EDIR_INFO_2* = ptr REPL_EDIR_INFO_2 REPL_EDIR_INFO_1000* {.pure.} = object rped1000_integrity*: DWORD + PREPL_EDIR_INFO_1000* = ptr REPL_EDIR_INFO_1000 LPREPL_EDIR_INFO_1000* = ptr REPL_EDIR_INFO_1000 REPL_EDIR_INFO_1001* {.pure.} = object rped1001_extent*: DWORD + PREPL_EDIR_INFO_1001* = ptr REPL_EDIR_INFO_1001 LPREPL_EDIR_INFO_1001* = ptr REPL_EDIR_INFO_1001 REPL_IDIR_INFO_0* {.pure.} = object rpid0_dirname*: LPWSTR + PREPL_IDIR_INFO_0* = ptr REPL_IDIR_INFO_0 LPREPL_IDIR_INFO_0* = ptr REPL_IDIR_INFO_0 REPL_IDIR_INFO_1* {.pure.} = object @@ -808,11 +922,13 @@ rpid1_last_update_time*: DWORD rpid1_lockcount*: DWORD rpid1_locktime*: DWORD + PREPL_IDIR_INFO_1* = ptr REPL_IDIR_INFO_1 LPREPL_IDIR_INFO_1* = ptr REPL_IDIR_INFO_1 SERVER_INFO_100* {.pure.} = object sv100_platform_id*: DWORD sv100_name*: LMSTR + PSERVER_INFO_100* = ptr SERVER_INFO_100 LPSERVER_INFO_100* = ptr SERVER_INFO_100 SERVER_INFO_101* {.pure.} = object @@ -822,6 +938,7 @@ sv101_version_minor*: DWORD sv101_type*: DWORD sv101_comment*: LMSTR + PSERVER_INFO_101* = ptr SERVER_INFO_101 LPSERVER_INFO_101* = ptr SERVER_INFO_101 SERVER_INFO_102* {.pure.} = object @@ -838,6 +955,7 @@ sv102_anndelta*: DWORD sv102_licenses*: DWORD sv102_userpath*: LMSTR + PSERVER_INFO_102* = ptr SERVER_INFO_102 LPSERVER_INFO_102* = ptr SERVER_INFO_102 SERVER_INFO_402* {.pure.} = object @@ -872,6 +990,7 @@ sv402_netioalert*: DWORD sv402_maxauditsz*: DWORD sv402_srvheuristics*: LMSTR + PSERVER_INFO_402* = ptr SERVER_INFO_402 LPSERVER_INFO_402* = ptr SERVER_INFO_402 SERVER_INFO_403* {.pure.} = object @@ -909,6 +1028,7 @@ sv403_auditedevents*: DWORD sv403_autoprofile*: DWORD sv403_autopath*: LMSTR + PSERVER_INFO_403* = ptr SERVER_INFO_403 LPSERVER_INFO_403* = ptr SERVER_INFO_403 SERVER_INFO_502* {.pure.} = object @@ -930,6 +1050,7 @@ sv502_timesource*: WINBOOL sv502_acceptdownlevelapis*: WINBOOL sv502_lmannounce*: WINBOOL + PSERVER_INFO_502* = ptr SERVER_INFO_502 LPSERVER_INFO_502* = ptr SERVER_INFO_502 SERVER_INFO_503* {.pure.} = object @@ -975,6 +1096,7 @@ sv503_enablesharednetdrives*: WINBOOL sv503_minfreeconnections*: DWORD sv503_maxfreeconnections*: DWORD + PSERVER_INFO_503* = ptr SERVER_INFO_503 LPSERVER_INFO_503* = ptr SERVER_INFO_503 SERVER_INFO_599* {.pure.} = object @@ -1034,6 +1156,7 @@ sv599_linkinfovalidtime*: DWORD sv599_scavqosinfoupdatetime*: DWORD sv599_maxworkitemidletime*: DWORD + PSERVER_INFO_599* = ptr SERVER_INFO_599 LPSERVER_INFO_599* = ptr SERVER_INFO_599 SERVER_INFO_598* {.pure.} = object @@ -1079,382 +1202,477 @@ sv598_disabledos*: WINBOOL sv598_lowdiskspaceminimum*: DWORD sv598_disablestrictnamechecking*: WINBOOL + PSERVER_INFO_598* = ptr SERVER_INFO_598 LPSERVER_INFO_598* = ptr SERVER_INFO_598 SERVER_INFO_1005* {.pure.} = object sv1005_comment*: LMSTR + PSERVER_INFO_1005* = ptr SERVER_INFO_1005 LPSERVER_INFO_1005* = ptr SERVER_INFO_1005 SERVER_INFO_1107* {.pure.} = object sv1107_users*: DWORD + PSERVER_INFO_1107* = ptr SERVER_INFO_1107 LPSERVER_INFO_1107* = ptr SERVER_INFO_1107 SERVER_INFO_1010* {.pure.} = object sv1010_disc*: LONG + PSERVER_INFO_1010* = ptr SERVER_INFO_1010 LPSERVER_INFO_1010* = ptr SERVER_INFO_1010 SERVER_INFO_1016* {.pure.} = object sv1016_hidden*: WINBOOL + PSERVER_INFO_1016* = ptr SERVER_INFO_1016 LPSERVER_INFO_1016* = ptr SERVER_INFO_1016 SERVER_INFO_1017* {.pure.} = object sv1017_announce*: DWORD + PSERVER_INFO_1017* = ptr SERVER_INFO_1017 LPSERVER_INFO_1017* = ptr SERVER_INFO_1017 SERVER_INFO_1018* {.pure.} = object sv1018_anndelta*: DWORD + PSERVER_INFO_1018* = ptr SERVER_INFO_1018 LPSERVER_INFO_1018* = ptr SERVER_INFO_1018 SERVER_INFO_1501* {.pure.} = object sv1501_sessopens*: DWORD + PSERVER_INFO_1501* = ptr SERVER_INFO_1501 LPSERVER_INFO_1501* = ptr SERVER_INFO_1501 SERVER_INFO_1502* {.pure.} = object sv1502_sessvcs*: DWORD + PSERVER_INFO_1502* = ptr SERVER_INFO_1502 LPSERVER_INFO_1502* = ptr SERVER_INFO_1502 SERVER_INFO_1503* {.pure.} = object sv1503_opensearch*: DWORD + PSERVER_INFO_1503* = ptr SERVER_INFO_1503 LPSERVER_INFO_1503* = ptr SERVER_INFO_1503 SERVER_INFO_1506* {.pure.} = object sv1506_maxworkitems*: DWORD + PSERVER_INFO_1506* = ptr SERVER_INFO_1506 LPSERVER_INFO_1506* = ptr SERVER_INFO_1506 SERVER_INFO_1509* {.pure.} = object sv1509_maxrawbuflen*: DWORD + PSERVER_INFO_1509* = ptr SERVER_INFO_1509 LPSERVER_INFO_1509* = ptr SERVER_INFO_1509 SERVER_INFO_1510* {.pure.} = object sv1510_sessusers*: DWORD + PSERVER_INFO_1510* = ptr SERVER_INFO_1510 LPSERVER_INFO_1510* = ptr SERVER_INFO_1510 SERVER_INFO_1511* {.pure.} = object sv1511_sessconns*: DWORD + PSERVER_INFO_1511* = ptr SERVER_INFO_1511 LPSERVER_INFO_1511* = ptr SERVER_INFO_1511 SERVER_INFO_1512* {.pure.} = object sv1512_maxnonpagedmemoryusage*: DWORD + PSERVER_INFO_1512* = ptr SERVER_INFO_1512 LPSERVER_INFO_1512* = ptr SERVER_INFO_1512 SERVER_INFO_1513* {.pure.} = object sv1513_maxpagedmemoryusage*: DWORD + PSERVER_INFO_1513* = ptr SERVER_INFO_1513 LPSERVER_INFO_1513* = ptr SERVER_INFO_1513 SERVER_INFO_1514* {.pure.} = object sv1514_enablesoftcompat*: WINBOOL + PSERVER_INFO_1514* = ptr SERVER_INFO_1514 LPSERVER_INFO_1514* = ptr SERVER_INFO_1514 SERVER_INFO_1515* {.pure.} = object sv1515_enableforcedlogoff*: WINBOOL + PSERVER_INFO_1515* = ptr SERVER_INFO_1515 LPSERVER_INFO_1515* = ptr SERVER_INFO_1515 SERVER_INFO_1516* {.pure.} = object sv1516_timesource*: WINBOOL + PSERVER_INFO_1516* = ptr SERVER_INFO_1516 LPSERVER_INFO_1516* = ptr SERVER_INFO_1516 SERVER_INFO_1518* {.pure.} = object sv1518_lmannounce*: WINBOOL + PSERVER_INFO_1518* = ptr SERVER_INFO_1518 LPSERVER_INFO_1518* = ptr SERVER_INFO_1518 SERVER_INFO_1520* {.pure.} = object sv1520_maxcopyreadlen*: DWORD + PSERVER_INFO_1520* = ptr SERVER_INFO_1520 LPSERVER_INFO_1520* = ptr SERVER_INFO_1520 SERVER_INFO_1521* {.pure.} = object sv1521_maxcopywritelen*: DWORD + PSERVER_INFO_1521* = ptr SERVER_INFO_1521 LPSERVER_INFO_1521* = ptr SERVER_INFO_1521 SERVER_INFO_1522* {.pure.} = object sv1522_minkeepsearch*: DWORD + PSERVER_INFO_1522* = ptr SERVER_INFO_1522 LPSERVER_INFO_1522* = ptr SERVER_INFO_1522 SERVER_INFO_1523* {.pure.} = object sv1523_maxkeepsearch*: DWORD + PSERVER_INFO_1523* = ptr SERVER_INFO_1523 LPSERVER_INFO_1523* = ptr SERVER_INFO_1523 SERVER_INFO_1524* {.pure.} = object sv1524_minkeepcomplsearch*: DWORD + PSERVER_INFO_1524* = ptr SERVER_INFO_1524 LPSERVER_INFO_1524* = ptr SERVER_INFO_1524 SERVER_INFO_1525* {.pure.} = object sv1525_maxkeepcomplsearch*: DWORD + PSERVER_INFO_1525* = ptr SERVER_INFO_1525 LPSERVER_INFO_1525* = ptr SERVER_INFO_1525 SERVER_INFO_1528* {.pure.} = object sv1528_scavtimeout*: DWORD + PSERVER_INFO_1528* = ptr SERVER_INFO_1528 LPSERVER_INFO_1528* = ptr SERVER_INFO_1528 SERVER_INFO_1529* {.pure.} = object sv1529_minrcvqueue*: DWORD + PSERVER_INFO_1529* = ptr SERVER_INFO_1529 LPSERVER_INFO_1529* = ptr SERVER_INFO_1529 SERVER_INFO_1530* {.pure.} = object sv1530_minfreeworkitems*: DWORD + PSERVER_INFO_1530* = ptr SERVER_INFO_1530 LPSERVER_INFO_1530* = ptr SERVER_INFO_1530 SERVER_INFO_1533* {.pure.} = object sv1533_maxmpxct*: DWORD + PSERVER_INFO_1533* = ptr SERVER_INFO_1533 LPSERVER_INFO_1533* = ptr SERVER_INFO_1533 SERVER_INFO_1534* {.pure.} = object sv1534_oplockbreakwait*: DWORD + PSERVER_INFO_1534* = ptr SERVER_INFO_1534 LPSERVER_INFO_1534* = ptr SERVER_INFO_1534 SERVER_INFO_1535* {.pure.} = object sv1535_oplockbreakresponsewait*: DWORD + PSERVER_INFO_1535* = ptr SERVER_INFO_1535 LPSERVER_INFO_1535* = ptr SERVER_INFO_1535 SERVER_INFO_1536* {.pure.} = object sv1536_enableoplocks*: WINBOOL + PSERVER_INFO_1536* = ptr SERVER_INFO_1536 LPSERVER_INFO_1536* = ptr SERVER_INFO_1536 SERVER_INFO_1537* {.pure.} = object sv1537_enableoplockforceclose*: WINBOOL + PSERVER_INFO_1537* = ptr SERVER_INFO_1537 LPSERVER_INFO_1537* = ptr SERVER_INFO_1537 SERVER_INFO_1538* {.pure.} = object sv1538_enablefcbopens*: WINBOOL + PSERVER_INFO_1538* = ptr SERVER_INFO_1538 LPSERVER_INFO_1538* = ptr SERVER_INFO_1538 SERVER_INFO_1539* {.pure.} = object sv1539_enableraw*: WINBOOL + PSERVER_INFO_1539* = ptr SERVER_INFO_1539 LPSERVER_INFO_1539* = ptr SERVER_INFO_1539 SERVER_INFO_1540* {.pure.} = object sv1540_enablesharednetdrives*: WINBOOL + PSERVER_INFO_1540* = ptr SERVER_INFO_1540 LPSERVER_INFO_1540* = ptr SERVER_INFO_1540 SERVER_INFO_1541* {.pure.} = object sv1541_minfreeconnections*: WINBOOL + PSERVER_INFO_1541* = ptr SERVER_INFO_1541 LPSERVER_INFO_1541* = ptr SERVER_INFO_1541 SERVER_INFO_1542* {.pure.} = object sv1542_maxfreeconnections*: WINBOOL + PSERVER_INFO_1542* = ptr SERVER_INFO_1542 LPSERVER_INFO_1542* = ptr SERVER_INFO_1542 SERVER_INFO_1543* {.pure.} = object sv1543_initsesstable*: DWORD + PSERVER_INFO_1543* = ptr SERVER_INFO_1543 LPSERVER_INFO_1543* = ptr SERVER_INFO_1543 SERVER_INFO_1544* {.pure.} = object sv1544_initconntable*: DWORD + PSERVER_INFO_1544* = ptr SERVER_INFO_1544 LPSERVER_INFO_1544* = ptr SERVER_INFO_1544 SERVER_INFO_1545* {.pure.} = object sv1545_initfiletable*: DWORD + PSERVER_INFO_1545* = ptr SERVER_INFO_1545 LPSERVER_INFO_1545* = ptr SERVER_INFO_1545 SERVER_INFO_1546* {.pure.} = object sv1546_initsearchtable*: DWORD + PSERVER_INFO_1546* = ptr SERVER_INFO_1546 LPSERVER_INFO_1546* = ptr SERVER_INFO_1546 SERVER_INFO_1547* {.pure.} = object sv1547_alertschedule*: DWORD + PSERVER_INFO_1547* = ptr SERVER_INFO_1547 LPSERVER_INFO_1547* = ptr SERVER_INFO_1547 SERVER_INFO_1548* {.pure.} = object sv1548_errorthreshold*: DWORD + PSERVER_INFO_1548* = ptr SERVER_INFO_1548 LPSERVER_INFO_1548* = ptr SERVER_INFO_1548 SERVER_INFO_1549* {.pure.} = object sv1549_networkerrorthreshold*: DWORD + PSERVER_INFO_1549* = ptr SERVER_INFO_1549 LPSERVER_INFO_1549* = ptr SERVER_INFO_1549 SERVER_INFO_1550* {.pure.} = object sv1550_diskspacethreshold*: DWORD + PSERVER_INFO_1550* = ptr SERVER_INFO_1550 LPSERVER_INFO_1550* = ptr SERVER_INFO_1550 SERVER_INFO_1552* {.pure.} = object sv1552_maxlinkdelay*: DWORD + PSERVER_INFO_1552* = ptr SERVER_INFO_1552 LPSERVER_INFO_1552* = ptr SERVER_INFO_1552 SERVER_INFO_1553* {.pure.} = object sv1553_minlinkthroughput*: DWORD + PSERVER_INFO_1553* = ptr SERVER_INFO_1553 LPSERVER_INFO_1553* = ptr SERVER_INFO_1553 SERVER_INFO_1554* {.pure.} = object sv1554_linkinfovalidtime*: DWORD + PSERVER_INFO_1554* = ptr SERVER_INFO_1554 LPSERVER_INFO_1554* = ptr SERVER_INFO_1554 SERVER_INFO_1555* {.pure.} = object sv1555_scavqosinfoupdatetime*: DWORD + PSERVER_INFO_1555* = ptr SERVER_INFO_1555 LPSERVER_INFO_1555* = ptr SERVER_INFO_1555 SERVER_INFO_1556* {.pure.} = object sv1556_maxworkitemidletime*: DWORD + PSERVER_INFO_1556* = ptr SERVER_INFO_1556 LPSERVER_INFO_1556* = ptr SERVER_INFO_1556 SERVER_INFO_1557* {.pure.} = object sv1557_maxrawworkitems*: DWORD + PSERVER_INFO_1557* = ptr SERVER_INFO_1557 LPSERVER_INFO_1557* = ptr SERVER_INFO_1557 SERVER_INFO_1560* {.pure.} = object sv1560_producttype*: DWORD + PSERVER_INFO_1560* = ptr SERVER_INFO_1560 LPSERVER_INFO_1560* = ptr SERVER_INFO_1560 SERVER_INFO_1561* {.pure.} = object sv1561_serversize*: DWORD + PSERVER_INFO_1561* = ptr SERVER_INFO_1561 LPSERVER_INFO_1561* = ptr SERVER_INFO_1561 SERVER_INFO_1562* {.pure.} = object sv1562_connectionlessautodisc*: DWORD + PSERVER_INFO_1562* = ptr SERVER_INFO_1562 LPSERVER_INFO_1562* = ptr SERVER_INFO_1562 SERVER_INFO_1563* {.pure.} = object sv1563_sharingviolationretries*: DWORD + PSERVER_INFO_1563* = ptr SERVER_INFO_1563 LPSERVER_INFO_1563* = ptr SERVER_INFO_1563 SERVER_INFO_1564* {.pure.} = object sv1564_sharingviolationdelay*: DWORD + PSERVER_INFO_1564* = ptr SERVER_INFO_1564 LPSERVER_INFO_1564* = ptr SERVER_INFO_1564 SERVER_INFO_1565* {.pure.} = object sv1565_maxglobalopensearch*: DWORD + PSERVER_INFO_1565* = ptr SERVER_INFO_1565 LPSERVER_INFO_1565* = ptr SERVER_INFO_1565 SERVER_INFO_1566* {.pure.} = object sv1566_removeduplicatesearches*: WINBOOL + PSERVER_INFO_1566* = ptr SERVER_INFO_1566 LPSERVER_INFO_1566* = ptr SERVER_INFO_1566 SERVER_INFO_1567* {.pure.} = object sv1567_lockviolationretries*: DWORD + PSERVER_INFO_1567* = ptr SERVER_INFO_1567 LPSERVER_INFO_1567* = ptr SERVER_INFO_1567 SERVER_INFO_1568* {.pure.} = object sv1568_lockviolationoffset*: DWORD + PSERVER_INFO_1568* = ptr SERVER_INFO_1568 LPSERVER_INFO_1568* = ptr SERVER_INFO_1568 SERVER_INFO_1569* {.pure.} = object sv1569_lockviolationdelay*: DWORD + PSERVER_INFO_1569* = ptr SERVER_INFO_1569 LPSERVER_INFO_1569* = ptr SERVER_INFO_1569 SERVER_INFO_1570* {.pure.} = object sv1570_mdlreadswitchover*: DWORD + PSERVER_INFO_1570* = ptr SERVER_INFO_1570 LPSERVER_INFO_1570* = ptr SERVER_INFO_1570 SERVER_INFO_1571* {.pure.} = object sv1571_cachedopenlimit*: DWORD + PSERVER_INFO_1571* = ptr SERVER_INFO_1571 LPSERVER_INFO_1571* = ptr SERVER_INFO_1571 SERVER_INFO_1572* {.pure.} = object sv1572_criticalthreads*: DWORD + PSERVER_INFO_1572* = ptr SERVER_INFO_1572 LPSERVER_INFO_1572* = ptr SERVER_INFO_1572 SERVER_INFO_1573* {.pure.} = object sv1573_restrictnullsessaccess*: DWORD + PSERVER_INFO_1573* = ptr SERVER_INFO_1573 LPSERVER_INFO_1573* = ptr SERVER_INFO_1573 SERVER_INFO_1574* {.pure.} = object sv1574_enablewfw311directipx*: DWORD + PSERVER_INFO_1574* = ptr SERVER_INFO_1574 LPSERVER_INFO_1574* = ptr SERVER_INFO_1574 SERVER_INFO_1575* {.pure.} = object sv1575_otherqueueaffinity*: DWORD + PSERVER_INFO_1575* = ptr SERVER_INFO_1575 LPSERVER_INFO_1575* = ptr SERVER_INFO_1575 SERVER_INFO_1576* {.pure.} = object sv1576_queuesamplesecs*: DWORD + PSERVER_INFO_1576* = ptr SERVER_INFO_1576 LPSERVER_INFO_1576* = ptr SERVER_INFO_1576 SERVER_INFO_1577* {.pure.} = object sv1577_balancecount*: DWORD + PSERVER_INFO_1577* = ptr SERVER_INFO_1577 LPSERVER_INFO_1577* = ptr SERVER_INFO_1577 SERVER_INFO_1578* {.pure.} = object sv1578_preferredaffinity*: DWORD + PSERVER_INFO_1578* = ptr SERVER_INFO_1578 LPSERVER_INFO_1578* = ptr SERVER_INFO_1578 SERVER_INFO_1579* {.pure.} = object sv1579_maxfreerfcbs*: DWORD + PSERVER_INFO_1579* = ptr SERVER_INFO_1579 LPSERVER_INFO_1579* = ptr SERVER_INFO_1579 SERVER_INFO_1580* {.pure.} = object sv1580_maxfreemfcbs*: DWORD + PSERVER_INFO_1580* = ptr SERVER_INFO_1580 LPSERVER_INFO_1580* = ptr SERVER_INFO_1580 SERVER_INFO_1581* {.pure.} = object sv1581_maxfreemlcbs*: DWORD + PSERVER_INFO_1581* = ptr SERVER_INFO_1581 LPSERVER_INFO_1581* = ptr SERVER_INFO_1581 SERVER_INFO_1582* {.pure.} = object sv1582_maxfreepagedpoolchunks*: DWORD + PSERVER_INFO_1582* = ptr SERVER_INFO_1582 LPSERVER_INFO_1582* = ptr SERVER_INFO_1582 SERVER_INFO_1583* {.pure.} = object sv1583_minpagedpoolchunksize*: DWORD + PSERVER_INFO_1583* = ptr SERVER_INFO_1583 LPSERVER_INFO_1583* = ptr SERVER_INFO_1583 SERVER_INFO_1584* {.pure.} = object sv1584_maxpagedpoolchunksize*: DWORD + PSERVER_INFO_1584* = ptr SERVER_INFO_1584 LPSERVER_INFO_1584* = ptr SERVER_INFO_1584 SERVER_INFO_1585* {.pure.} = object sv1585_sendsfrompreferredprocessor*: WINBOOL + PSERVER_INFO_1585* = ptr SERVER_INFO_1585 LPSERVER_INFO_1585* = ptr SERVER_INFO_1585 SERVER_INFO_1586* {.pure.} = object sv1586_maxthreadsperqueue*: DWORD + PSERVER_INFO_1586* = ptr SERVER_INFO_1586 LPSERVER_INFO_1586* = ptr SERVER_INFO_1586 SERVER_INFO_1587* {.pure.} = object sv1587_cacheddirectorylimit*: DWORD + PSERVER_INFO_1587* = ptr SERVER_INFO_1587 LPSERVER_INFO_1587* = ptr SERVER_INFO_1587 SERVER_INFO_1588* {.pure.} = object sv1588_maxcopylength*: DWORD + PSERVER_INFO_1588* = ptr SERVER_INFO_1588 LPSERVER_INFO_1588* = ptr SERVER_INFO_1588 SERVER_INFO_1590* {.pure.} = object sv1590_enablecompression*: DWORD + PSERVER_INFO_1590* = ptr SERVER_INFO_1590 LPSERVER_INFO_1590* = ptr SERVER_INFO_1590 SERVER_INFO_1591* {.pure.} = object sv1591_autosharewks*: DWORD + PSERVER_INFO_1591* = ptr SERVER_INFO_1591 LPSERVER_INFO_1591* = ptr SERVER_INFO_1591 SERVER_INFO_1592* {.pure.} = object sv1592_autosharewks*: DWORD + PSERVER_INFO_1592* = ptr SERVER_INFO_1592 LPSERVER_INFO_1592* = ptr SERVER_INFO_1592 SERVER_INFO_1593* {.pure.} = object sv1593_enablesecuritysignature*: DWORD + PSERVER_INFO_1593* = ptr SERVER_INFO_1593 LPSERVER_INFO_1593* = ptr SERVER_INFO_1593 SERVER_INFO_1594* {.pure.} = object sv1594_requiresecuritysignature*: DWORD + PSERVER_INFO_1594* = ptr SERVER_INFO_1594 LPSERVER_INFO_1594* = ptr SERVER_INFO_1594 SERVER_INFO_1595* {.pure.} = object sv1595_minclientbuffersize*: DWORD + PSERVER_INFO_1595* = ptr SERVER_INFO_1595 LPSERVER_INFO_1595* = ptr SERVER_INFO_1595 SERVER_INFO_1596* {.pure.} = object sv1596_ConnectionNoSessionsTimeout*: DWORD + PSERVER_INFO_1596* = ptr SERVER_INFO_1596 LPSERVER_INFO_1596* = ptr SERVER_INFO_1596 SERVER_INFO_1597* {.pure.} = object sv1597_IdleThreadTimeOut*: DWORD + PSERVER_INFO_1597* = ptr SERVER_INFO_1597 LPSERVER_INFO_1597* = ptr SERVER_INFO_1597 SERVER_INFO_1598* {.pure.} = object sv1598_enableW9xsecuritysignature*: DWORD + PSERVER_INFO_1598* = ptr SERVER_INFO_1598 LPSERVER_INFO_1598* = ptr SERVER_INFO_1598 SERVER_INFO_1599* {.pure.} = object sv1598_enforcekerberosreauthentication*: BOOLEAN + PSERVER_INFO_1599* = ptr SERVER_INFO_1599 LPSERVER_INFO_1599* = ptr SERVER_INFO_1599 SERVER_INFO_1600* {.pure.} = object sv1598_disabledos*: BOOLEAN + PSERVER_INFO_1600* = ptr SERVER_INFO_1600 LPSERVER_INFO_1600* = ptr SERVER_INFO_1600 SERVER_INFO_1601* {.pure.} = object sv1598_lowdiskspaceminimum*: DWORD + PSERVER_INFO_1601* = ptr SERVER_INFO_1601 LPSERVER_INFO_1601* = ptr SERVER_INFO_1601 SERVER_INFO_1602* {.pure.} = object sv_1598_disablestrictnamechecking*: WINBOOL + PSERVER_INFO_1602* = ptr SERVER_INFO_1602 LPSERVER_INFO_1602* = ptr SERVER_INFO_1602 SERVER_TRANSPORT_INFO_0* {.pure.} = object @@ -1463,6 +1681,7 @@ svti0_transportaddress*: LPBYTE svti0_transportaddresslength*: DWORD svti0_networkaddress*: LMSTR + PSERVER_TRANSPORT_INFO_0* = ptr SERVER_TRANSPORT_INFO_0 LPSERVER_TRANSPORT_INFO_0* = ptr SERVER_TRANSPORT_INFO_0 SERVER_TRANSPORT_INFO_1* {.pure.} = object @@ -1472,6 +1691,7 @@ svti1_transportaddresslength*: DWORD svti1_networkaddress*: LMSTR svti1_domain*: LMSTR + PSERVER_TRANSPORT_INFO_1* = ptr SERVER_TRANSPORT_INFO_1 LPSERVER_TRANSPORT_INFO_1* = ptr SERVER_TRANSPORT_INFO_1 SERVER_TRANSPORT_INFO_2* {.pure.} = object @@ -1482,6 +1702,7 @@ svti2_networkaddress*: LMSTR svti2_domain*: LMSTR svti2_flags*: ULONG + PSERVER_TRANSPORT_INFO_2* = ptr SERVER_TRANSPORT_INFO_2 LPSERVER_TRANSPORT_INFO_2* = ptr SERVER_TRANSPORT_INFO_2 SERVER_TRANSPORT_INFO_3* {.pure.} = object @@ -1493,11 +1714,13 @@ svti3_domain*: LMSTR svti3_flags*: ULONG svti3_passwordlength*: DWORD - svti3_password*: array[256 , BYTE] + svti3_password*: array[256, BYTE] + PSERVER_TRANSPORT_INFO_3* = ptr SERVER_TRANSPORT_INFO_3 LPSERVER_TRANSPORT_INFO_3* = ptr SERVER_TRANSPORT_INFO_3 SERVICE_INFO_0* {.pure.} = object svci0_name*: LPWSTR + PSERVICE_INFO_0* = ptr SERVICE_INFO_0 LPSERVICE_INFO_0* = ptr SERVICE_INFO_0 SERVICE_INFO_1* {.pure.} = object @@ -1505,6 +1728,7 @@ svci1_status*: DWORD svci1_code*: DWORD svci1_pid*: DWORD + PSERVICE_INFO_1* = ptr SERVICE_INFO_1 LPSERVICE_INFO_1* = ptr SERVICE_INFO_1 SERVICE_INFO_2* {.pure.} = object @@ -1515,11 +1739,13 @@ svci2_text*: LPWSTR svci2_specific_error*: DWORD svci2_display_name*: LPWSTR + PSERVICE_INFO_2* = ptr SERVICE_INFO_2 LPSERVICE_INFO_2* = ptr SERVICE_INFO_2 USE_INFO_0* {.pure.} = object ui0_local*: LMSTR ui0_remote*: LMSTR + PUSE_INFO_0* = ptr USE_INFO_0 LPUSE_INFO_0* = ptr USE_INFO_0 USE_INFO_1* {.pure.} = object @@ -1530,6 +1756,7 @@ ui1_asg_type*: DWORD ui1_refcount*: DWORD ui1_usecount*: DWORD + PUSE_INFO_1* = ptr USE_INFO_1 LPUSE_INFO_1* = ptr USE_INFO_1 USE_INFO_2* {.pure.} = object @@ -1542,11 +1769,13 @@ ui2_usecount*: DWORD ui2_username*: LMSTR ui2_domainname*: LMSTR + PUSE_INFO_2* = ptr USE_INFO_2 LPUSE_INFO_2* = ptr USE_INFO_2 USE_INFO_3* {.pure.} = object ui3_ui2*: USE_INFO_2 ui3_flags*: ULONG + PUSE_INFO_3* = ptr USE_INFO_3 LPUSE_INFO_3* = ptr USE_INFO_3 WKSTA_INFO_100* {.pure.} = object @@ -1555,6 +1784,7 @@ wki100_langroup*: LMSTR wki100_ver_major*: DWORD wki100_ver_minor*: DWORD + PWKSTA_INFO_100* = ptr WKSTA_INFO_100 LPWKSTA_INFO_100* = ptr WKSTA_INFO_100 WKSTA_INFO_101* {.pure.} = object @@ -1564,6 +1794,7 @@ wki101_ver_major*: DWORD wki101_ver_minor*: DWORD wki101_lanroot*: LMSTR + PWKSTA_INFO_101* = ptr WKSTA_INFO_101 LPWKSTA_INFO_101* = ptr WKSTA_INFO_101 WKSTA_INFO_102* {.pure.} = object @@ -1574,6 +1805,7 @@ wki102_ver_minor*: DWORD wki102_lanroot*: LMSTR wki102_logged_on_users*: DWORD + PWKSTA_INFO_102* = ptr WKSTA_INFO_102 LPWKSTA_INFO_102* = ptr WKSTA_INFO_102 WKSTA_INFO_302* {.pure.} = object @@ -1597,6 +1829,7 @@ wki302_wrk_heuristics*: LMSTR wki302_mailslots*: DWORD wki302_num_dgram_buf*: DWORD + PWKSTA_INFO_302* = ptr WKSTA_INFO_302 LPWKSTA_INFO_302* = ptr WKSTA_INFO_302 WKSTA_INFO_402* {.pure.} = object @@ -1621,6 +1854,7 @@ wki402_mailslots*: DWORD wki402_num_dgram_buf*: DWORD wki402_max_threads*: DWORD + PWKSTA_INFO_402* = ptr WKSTA_INFO_402 LPWKSTA_INFO_402* = ptr WKSTA_INFO_402 WKSTA_INFO_502* {.pure.} = object @@ -1659,138 +1893,172 @@ wki502_buf_read_only_files*: WINBOOL wki502_force_core_create_mode*: WINBOOL wki502_use_512_byte_max_transfer*: WINBOOL + PWKSTA_INFO_502* = ptr WKSTA_INFO_502 LPWKSTA_INFO_502* = ptr WKSTA_INFO_502 WKSTA_INFO_1010* {.pure.} = object wki1010_char_wait*: DWORD + PWKSTA_INFO_1010* = ptr WKSTA_INFO_1010 LPWKSTA_INFO_1010* = ptr WKSTA_INFO_1010 WKSTA_INFO_1011* {.pure.} = object wki1011_collection_time*: DWORD + PWKSTA_INFO_1011* = ptr WKSTA_INFO_1011 LPWKSTA_INFO_1011* = ptr WKSTA_INFO_1011 WKSTA_INFO_1012* {.pure.} = object wki1012_maximum_collection_count*: DWORD + PWKSTA_INFO_1012* = ptr WKSTA_INFO_1012 LPWKSTA_INFO_1012* = ptr WKSTA_INFO_1012 WKSTA_INFO_1027* {.pure.} = object wki1027_errlog_sz*: DWORD + PWKSTA_INFO_1027* = ptr WKSTA_INFO_1027 LPWKSTA_INFO_1027* = ptr WKSTA_INFO_1027 WKSTA_INFO_1028* {.pure.} = object wki1028_print_buf_time*: DWORD + PWKSTA_INFO_1028* = ptr WKSTA_INFO_1028 LPWKSTA_INFO_1028* = ptr WKSTA_INFO_1028 WKSTA_INFO_1032* {.pure.} = object wki1032_wrk_heuristics*: DWORD + PWKSTA_INFO_1032* = ptr WKSTA_INFO_1032 LPWKSTA_INFO_1032* = ptr WKSTA_INFO_1032 WKSTA_INFO_1013* {.pure.} = object wki1013_keep_conn*: DWORD + PWKSTA_INFO_1013* = ptr WKSTA_INFO_1013 LPWKSTA_INFO_1013* = ptr WKSTA_INFO_1013 WKSTA_INFO_1018* {.pure.} = object wki1018_sess_timeout*: DWORD + PWKSTA_INFO_1018* = ptr WKSTA_INFO_1018 LPWKSTA_INFO_1018* = ptr WKSTA_INFO_1018 WKSTA_INFO_1023* {.pure.} = object wki1023_siz_char_buf*: DWORD + PWKSTA_INFO_1023* = ptr WKSTA_INFO_1023 LPWKSTA_INFO_1023* = ptr WKSTA_INFO_1023 WKSTA_INFO_1033* {.pure.} = object wki1033_max_threads*: DWORD + PWKSTA_INFO_1033* = ptr WKSTA_INFO_1033 LPWKSTA_INFO_1033* = ptr WKSTA_INFO_1033 WKSTA_INFO_1041* {.pure.} = object wki1041_lock_quota*: DWORD + PWKSTA_INFO_1041* = ptr WKSTA_INFO_1041 LPWKSTA_INFO_1041* = ptr WKSTA_INFO_1041 WKSTA_INFO_1042* {.pure.} = object wki1042_lock_increment*: DWORD + PWKSTA_INFO_1042* = ptr WKSTA_INFO_1042 LPWKSTA_INFO_1042* = ptr WKSTA_INFO_1042 WKSTA_INFO_1043* {.pure.} = object wki1043_lock_maximum*: DWORD + PWKSTA_INFO_1043* = ptr WKSTA_INFO_1043 LPWKSTA_INFO_1043* = ptr WKSTA_INFO_1043 WKSTA_INFO_1044* {.pure.} = object wki1044_pipe_increment*: DWORD + PWKSTA_INFO_1044* = ptr WKSTA_INFO_1044 LPWKSTA_INFO_1044* = ptr WKSTA_INFO_1044 WKSTA_INFO_1045* {.pure.} = object wki1045_pipe_maximum*: DWORD + PWKSTA_INFO_1045* = ptr WKSTA_INFO_1045 LPWKSTA_INFO_1045* = ptr WKSTA_INFO_1045 WKSTA_INFO_1046* {.pure.} = object wki1046_dormant_file_limit*: DWORD + PWKSTA_INFO_1046* = ptr WKSTA_INFO_1046 LPWKSTA_INFO_1046* = ptr WKSTA_INFO_1046 WKSTA_INFO_1047* {.pure.} = object wki1047_cache_file_timeout*: DWORD + PWKSTA_INFO_1047* = ptr WKSTA_INFO_1047 LPWKSTA_INFO_1047* = ptr WKSTA_INFO_1047 WKSTA_INFO_1048* {.pure.} = object wki1048_use_opportunistic_locking*: WINBOOL + PWKSTA_INFO_1048* = ptr WKSTA_INFO_1048 LPWKSTA_INFO_1048* = ptr WKSTA_INFO_1048 WKSTA_INFO_1049* {.pure.} = object wki1049_use_unlock_behind*: WINBOOL + PWKSTA_INFO_1049* = ptr WKSTA_INFO_1049 LPWKSTA_INFO_1049* = ptr WKSTA_INFO_1049 WKSTA_INFO_1050* {.pure.} = object wki1050_use_close_behind*: WINBOOL + PWKSTA_INFO_1050* = ptr WKSTA_INFO_1050 LPWKSTA_INFO_1050* = ptr WKSTA_INFO_1050 WKSTA_INFO_1051* {.pure.} = object wki1051_buf_named_pipes*: WINBOOL + PWKSTA_INFO_1051* = ptr WKSTA_INFO_1051 LPWKSTA_INFO_1051* = ptr WKSTA_INFO_1051 WKSTA_INFO_1052* {.pure.} = object wki1052_use_lock_read_unlock*: WINBOOL + PWKSTA_INFO_1052* = ptr WKSTA_INFO_1052 LPWKSTA_INFO_1052* = ptr WKSTA_INFO_1052 WKSTA_INFO_1053* {.pure.} = object wki1053_utilize_nt_caching*: WINBOOL + PWKSTA_INFO_1053* = ptr WKSTA_INFO_1053 LPWKSTA_INFO_1053* = ptr WKSTA_INFO_1053 WKSTA_INFO_1054* {.pure.} = object wki1054_use_raw_read*: WINBOOL + PWKSTA_INFO_1054* = ptr WKSTA_INFO_1054 LPWKSTA_INFO_1054* = ptr WKSTA_INFO_1054 WKSTA_INFO_1055* {.pure.} = object wki1055_use_raw_write*: WINBOOL + PWKSTA_INFO_1055* = ptr WKSTA_INFO_1055 LPWKSTA_INFO_1055* = ptr WKSTA_INFO_1055 WKSTA_INFO_1056* {.pure.} = object wki1056_use_write_raw_data*: WINBOOL + PWKSTA_INFO_1056* = ptr WKSTA_INFO_1056 LPWKSTA_INFO_1056* = ptr WKSTA_INFO_1056 WKSTA_INFO_1057* {.pure.} = object wki1057_use_encryption*: WINBOOL + PWKSTA_INFO_1057* = ptr WKSTA_INFO_1057 LPWKSTA_INFO_1057* = ptr WKSTA_INFO_1057 WKSTA_INFO_1058* {.pure.} = object wki1058_buf_files_deny_write*: WINBOOL + PWKSTA_INFO_1058* = ptr WKSTA_INFO_1058 LPWKSTA_INFO_1058* = ptr WKSTA_INFO_1058 WKSTA_INFO_1059* {.pure.} = object wki1059_buf_read_only_files*: WINBOOL + PWKSTA_INFO_1059* = ptr WKSTA_INFO_1059 LPWKSTA_INFO_1059* = ptr WKSTA_INFO_1059 WKSTA_INFO_1060* {.pure.} = object wki1060_force_core_create_mode*: WINBOOL + PWKSTA_INFO_1060* = ptr WKSTA_INFO_1060 LPWKSTA_INFO_1060* = ptr WKSTA_INFO_1060 WKSTA_INFO_1061* {.pure.} = object wki1061_use_512_byte_max_transfer*: WINBOOL + PWKSTA_INFO_1061* = ptr WKSTA_INFO_1061 LPWKSTA_INFO_1061* = ptr WKSTA_INFO_1061 WKSTA_INFO_1062* {.pure.} = object wki1062_read_ahead_throughput*: DWORD + PWKSTA_INFO_1062* = ptr WKSTA_INFO_1062 LPWKSTA_INFO_1062* = ptr WKSTA_INFO_1062 WKSTA_USER_INFO_0* {.pure.} = object wkui0_username*: LMSTR + PWKSTA_USER_INFO_0* = ptr WKSTA_USER_INFO_0 LPWKSTA_USER_INFO_0* = ptr WKSTA_USER_INFO_0 WKSTA_USER_INFO_1* {.pure.} = object @@ -1798,10 +2066,12 @@ wkui1_logon_domain*: LMSTR wkui1_oth_domains*: LMSTR wkui1_logon_server*: LMSTR + PWKSTA_USER_INFO_1* = ptr WKSTA_USER_INFO_1 LPWKSTA_USER_INFO_1* = ptr WKSTA_USER_INFO_1 WKSTA_USER_INFO_1101* {.pure.} = object wkui1101_oth_domains*: LMSTR + PWKSTA_USER_INFO_1101* = ptr WKSTA_USER_INFO_1101 LPWKSTA_USER_INFO_1101* = ptr WKSTA_USER_INFO_1101 WKSTA_TRANSPORT_INFO_0* {.pure.} = object @@ -1810,6 +2080,7 @@ wkti0_transport_name*: LMSTR wkti0_transport_address*: LMSTR wkti0_wan_ish*: WINBOOL + PWKSTA_TRANSPORT_INFO_0* = ptr WKSTA_TRANSPORT_INFO_0 LPWKSTA_TRANSPORT_INFO_0* = ptr WKSTA_TRANSPORT_INFO_0 ERROR_LOG* {.pure.} = object @@ -1822,17 +2093,20 @@ el_data*: LPBYTE el_data_size*: DWORD el_nstrings*: DWORD + PERROR_LOG* = ptr ERROR_LOG HLOG* {.pure.} = object time*: DWORD last_flags*: DWORD offset*: DWORD rec_offset*: DWORD + PHLOG* = ptr HLOG LPHLOG* = ptr HLOG CONFIG_INFO_0* {.pure.} = object cfgi0_key*: LPWSTR cfgi0_data*: LPWSTR + PCONFIG_INFO_0* = ptr CONFIG_INFO_0 LPCONFIG_INFO_0* = ptr CONFIG_INFO_0 STAT_WORKSTATION_0* {.pure.} = object @@ -1876,6 +2150,7 @@ UseCount*: DWORD FailedUseCount*: DWORD CurrentCommands*: DWORD + PSTAT_WORKSTATION_0* = ptr STAT_WORKSTATION_0 LPSTAT_WORKSTATION_0* = ptr STAT_WORKSTATION_0 STAT_SERVER_0* {.pure.} = object @@ -1896,6 +2171,7 @@ sts0_avresponse*: DWORD sts0_reqbufneed*: DWORD sts0_bigbufneed*: DWORD + PSTAT_SERVER_0* = ptr STAT_SERVER_0 LPSTAT_SERVER_0* = ptr STAT_SERVER_0 AUDIT_ENTRY* {.pure.} = object @@ -1905,27 +2181,32 @@ ae_type*: DWORD ae_data_offset*: DWORD ae_data_size*: DWORD + PAUDIT_ENTRY* = ptr AUDIT_ENTRY LPAUDIT_ENTRY* = ptr AUDIT_ENTRY TAE_SRVSTATUS* {.pure.} = object ae_sv_status*: DWORD + PAE_SRVSTATUS* = ptr TAE_SRVSTATUS LPAE_SRVSTATUS* = ptr TAE_SRVSTATUS TAE_SESSLOGON* {.pure.} = object ae_so_compname*: DWORD ae_so_username*: DWORD ae_so_privilege*: DWORD + PAE_SESSLOGON* = ptr TAE_SESSLOGON LPAE_SESSLOGON* = ptr TAE_SESSLOGON TAE_SESSLOGOFF* {.pure.} = object ae_sf_compname*: DWORD ae_sf_username*: DWORD ae_sf_reason*: DWORD + PAE_SESSLOGOFF* = ptr TAE_SESSLOGOFF LPAE_SESSLOGOFF* = ptr TAE_SESSLOGOFF TAE_SESSPWERR* {.pure.} = object ae_sp_compname*: DWORD ae_sp_username*: DWORD + PAE_SESSPWERR* = ptr TAE_SESSPWERR LPAE_SESSPWERR* = ptr TAE_SESSPWERR TAE_CONNSTART* {.pure.} = object @@ -1933,6 +2214,7 @@ ae_ct_username*: DWORD ae_ct_netname*: DWORD ae_ct_connid*: DWORD + PAE_CONNSTART* = ptr TAE_CONNSTART LPAE_CONNSTART* = ptr TAE_CONNSTART TAE_CONNSTOP* {.pure.} = object @@ -1941,6 +2223,7 @@ ae_cp_netname*: DWORD ae_cp_connid*: DWORD ae_cp_reason*: DWORD + PAE_CONNSTOP* = ptr TAE_CONNSTOP LPAE_CONNSTOP* = ptr TAE_CONNSTOP TAE_CONNREJ* {.pure.} = object @@ -1948,6 +2231,7 @@ ae_cr_username*: DWORD ae_cr_netname*: DWORD ae_cr_reason*: DWORD + PAE_CONNREJ* = ptr TAE_CONNREJ LPAE_CONNREJ* = ptr TAE_CONNREJ TAE_RESACCESS* {.pure.} = object @@ -1958,6 +2242,7 @@ ae_ra_returncode*: DWORD ae_ra_restype*: DWORD ae_ra_fileid*: DWORD + PAE_RESACCESS* = ptr TAE_RESACCESS LPAE_RESACCESS* = ptr TAE_RESACCESS TAE_RESACCESSREJ* {.pure.} = object @@ -1965,6 +2250,7 @@ ae_rr_username*: DWORD ae_rr_resname*: DWORD ae_rr_operation*: DWORD + PAE_RESACCESSREJ* = ptr TAE_RESACCESSREJ LPAE_RESACCESSREJ* = ptr TAE_RESACCESSREJ TAE_CLOSEFILE* {.pure.} = object @@ -1974,6 +2260,7 @@ ae_cf_fileid*: DWORD ae_cf_duration*: DWORD ae_cf_reason*: DWORD + PAE_CLOSEFILE* = ptr TAE_CLOSEFILE LPAE_CLOSEFILE* = ptr TAE_CLOSEFILE TAE_SERVICESTAT* {.pure.} = object @@ -1984,6 +2271,7 @@ ae_ss_code*: DWORD ae_ss_text*: DWORD ae_ss_returnval*: DWORD + PAE_SERVICESTAT* = ptr TAE_SERVICESTAT LPAE_SERVICESTAT* = ptr TAE_SERVICESTAT TAE_ACLMOD* {.pure.} = object @@ -1992,6 +2280,7 @@ ae_am_resname*: DWORD ae_am_action*: DWORD ae_am_datalen*: DWORD + PAE_ACLMOD* = ptr TAE_ACLMOD LPAE_ACLMOD* = ptr TAE_ACLMOD TAE_UASMOD* {.pure.} = object @@ -2001,6 +2290,7 @@ ae_um_rectype*: DWORD ae_um_action*: DWORD ae_um_datalen*: DWORD + PAE_UASMOD* = ptr TAE_UASMOD LPAE_UASMOD* = ptr TAE_UASMOD TAE_NETLOGON* {.pure.} = object @@ -2008,6 +2298,7 @@ ae_no_username*: DWORD ae_no_privilege*: DWORD ae_no_authflags*: DWORD + PAE_NETLOGON* = ptr TAE_NETLOGON LPAE_NETLOGON* = ptr TAE_NETLOGON TAE_NETLOGOFF* {.pure.} = object @@ -2015,6 +2306,7 @@ ae_nf_username*: DWORD ae_nf_reserved1*: DWORD ae_nf_reserved2*: DWORD + PAE_NETLOGOFF* = ptr TAE_NETLOGOFF LPAE_NETLOGOFF* = ptr TAE_NETLOGOFF AE_ACCLIM* {.pure.} = object @@ -2022,6 +2314,7 @@ ae_al_username*: DWORD ae_al_resname*: DWORD ae_al_limit*: DWORD + PAE_ACCLIM* = ptr AE_ACCLIM LPAE_ACCLIM* = ptr AE_ACCLIM TAE_LOCKOUT* {.pure.} = object @@ -2029,6 +2322,7 @@ ae_lk_username*: DWORD ae_lk_action*: DWORD ae_lk_bad_pw_count*: DWORD + PAE_LOCKOUT* = ptr TAE_LOCKOUT LPAE_LOCKOUT* = ptr TAE_LOCKOUT AE_GENERIC* {.pure.} = object @@ -2044,6 +2338,7 @@ ae_ge_param7*: DWORD ae_ge_param8*: DWORD ae_ge_param9*: DWORD + PAE_GENERIC* = ptr AE_GENERIC LPAE_GENERIC* = ptr AE_GENERIC AT_INFO* {.pure.} = object @@ -2052,6 +2347,7 @@ DaysOfWeek*: UCHAR Flags*: UCHAR Command*: LPWSTR + PAT_INFO* = ptr AT_INFO LPAT_INFO* = ptr AT_INFO AT_ENUM* {.pure.} = object @@ -2061,15 +2357,18 @@ DaysOfWeek*: UCHAR Flags*: UCHAR Command*: LPWSTR + PAT_ENUM* = ptr AT_ENUM LPAT_ENUM* = ptr AT_ENUM DFS_TARGET_PRIORITY* {.pure.} = object TargetPriorityClass*: DFS_TARGET_PRIORITY_CLASS TargetPriorityRank*: USHORT Reserved*: USHORT + PDFS_TARGET_PRIORITY* = ptr DFS_TARGET_PRIORITY DFS_INFO_1* {.pure.} = object EntryPath*: LPWSTR + PDFS_INFO_1* = ptr DFS_INFO_1 LPDFS_INFO_1* = ptr DFS_INFO_1 DFS_INFO_2* {.pure.} = object @@ -2077,12 +2376,14 @@ Comment*: LPWSTR State*: DWORD NumberOfStorages*: DWORD + PDFS_INFO_2* = ptr DFS_INFO_2 LPDFS_INFO_2* = ptr DFS_INFO_2 DFS_STORAGE_INFO* {.pure.} = object State*: ULONG ServerName*: LPWSTR ShareName*: LPWSTR + PDFS_STORAGE_INFO* = ptr DFS_STORAGE_INFO LPDFS_STORAGE_INFO* = ptr DFS_STORAGE_INFO DFS_STORAGE_INFO_1* {.pure.} = object @@ -2090,6 +2391,7 @@ ServerName*: LPWSTR ShareName*: LPWSTR TargetPriority*: DFS_TARGET_PRIORITY + PDFS_STORAGE_INFO_1* = ptr DFS_STORAGE_INFO_1 LPDFS_STORAGE_INFO_1* = ptr DFS_STORAGE_INFO_1 DFS_INFO_3* {.pure.} = object @@ -2098,6 +2400,7 @@ State*: DWORD NumberOfStorages*: DWORD Storage*: LPDFS_STORAGE_INFO + PDFS_INFO_3* = ptr DFS_INFO_3 LPDFS_INFO_3* = ptr DFS_INFO_3 DFS_INFO_4* {.pure.} = object @@ -2108,6 +2411,7 @@ Guid*: GUID NumberOfStorages*: DWORD Storage*: LPDFS_STORAGE_INFO + PDFS_INFO_4* = ptr DFS_INFO_4 LPDFS_INFO_4* = ptr DFS_INFO_4 DFS_INFO_5* {.pure.} = object @@ -2119,6 +2423,7 @@ PropertyFlags*: ULONG MetadataSize*: ULONG NumberOfStorages*: DWORD + PDFS_INFO_5* = ptr DFS_INFO_5 LPDFS_INFO_5* = ptr DFS_INFO_5 DFS_INFO_6* {.pure.} = object @@ -2131,31 +2436,38 @@ MetadataSize*: ULONG NumberOfStorages*: DWORD Storage*: LPDFS_STORAGE_INFO_1 + PDFS_INFO_6* = ptr DFS_INFO_6 LPDFS_INFO_6* = ptr DFS_INFO_6 DFS_INFO_7* {.pure.} = object GenerationGuid*: GUID + PDFS_INFO_7* = ptr DFS_INFO_7 LPDFS_INFO_7* = ptr DFS_INFO_7 DFS_INFO_100* {.pure.} = object Comment*: LPWSTR + PDFS_INFO_100* = ptr DFS_INFO_100 LPDFS_INFO_100* = ptr DFS_INFO_100 DFS_INFO_101* {.pure.} = object State*: DWORD + PDFS_INFO_101* = ptr DFS_INFO_101 LPDFS_INFO_101* = ptr DFS_INFO_101 DFS_INFO_102* {.pure.} = object Timeout*: ULONG + PDFS_INFO_102* = ptr DFS_INFO_102 LPDFS_INFO_102* = ptr DFS_INFO_102 DFS_INFO_103* {.pure.} = object PropertyFlagMask*: ULONG PropertyFlags*: ULONG + PDFS_INFO_103* = ptr DFS_INFO_103 LPDFS_INFO_103* = ptr DFS_INFO_103 DFS_INFO_104* {.pure.} = object TargetPriority*: DFS_TARGET_PRIORITY + PDFS_INFO_104* = ptr DFS_INFO_104 LPDFS_INFO_104* = ptr DFS_INFO_104 DFS_INFO_105* {.pure.} = object @@ -2164,11 +2476,13 @@ Timeout*: ULONG PropertyFlagMask*: ULONG PropertyFlags*: ULONG + PDFS_INFO_105* = ptr DFS_INFO_105 LPDFS_INFO_105* = ptr DFS_INFO_105 DFS_INFO_106* {.pure.} = object State*: DWORD TargetPriority*: DFS_TARGET_PRIORITY + PDFS_INFO_106* = ptr DFS_INFO_106 LPDFS_INFO_106* = ptr DFS_INFO_106 DFS_SUPPORTED_NAMESPACE_VERSION_INFO* {.pure.} = object @@ -2178,6 +2492,7 @@ StandaloneDfsMajorVersion*: ULONG StandaloneDfsMinorVersion*: ULONG StandaloneDfsCapabilities*: ULONGLONG + PDFS_SUPPORTED_NAMESPACE_VERSION_INFO* = ptr DFS_SUPPORTED_NAMESPACE_VERSION_INFO DFS_INFO_8* {.pure.} = object EntryPath*: LPWSTR @@ -2190,6 +2505,7 @@ SdLengthReserved*: ULONG pSecurityDescriptor*: PSECURITY_DESCRIPTOR NumberOfStorages*: DWORD + PDFS_INFO_8* = ptr DFS_INFO_8 DFS_INFO_9* {.pure.} = object EntryPath*: LPWSTR @@ -2203,11 +2519,13 @@ pSecurityDescriptor*: PSECURITY_DESCRIPTOR NumberOfStorages*: DWORD Storage*: LPDFS_STORAGE_INFO_1 + PDFS_INFO_9* = ptr DFS_INFO_9 DFS_INFO_50* {.pure.} = object NamespaceMajorVersion*: ULONG NamespaceMinorVersion*: ULONG NamespaceCapabilities*: ULONGLONG + PDFS_INFO_50* = ptr DFS_INFO_50 DFS_INFO_107* {.pure.} = object Comment*: LPWSTR @@ -2217,53 +2535,62 @@ PropertyFlags*: ULONG SdLengthReserved*: ULONG pSecurityDescriptor*: PSECURITY_DESCRIPTOR + PDFS_INFO_107* = ptr DFS_INFO_107 DFS_INFO_150* {.pure.} = object SdLengthReserved*: ULONG pSecurityDescriptor*: PSECURITY_DESCRIPTOR + PDFS_INFO_150* = ptr DFS_INFO_150 DFS_INFO_200* {.pure.} = object FtDfsName*: LPWSTR + PDFS_INFO_200* = ptr DFS_INFO_200 LPDFS_INFO_200* = ptr DFS_INFO_200 DFS_INFO_300* {.pure.} = object Flags*: DWORD DfsName*: LPWSTR + PDFS_INFO_300* = ptr DFS_INFO_300 LPDFS_INFO_300* = ptr DFS_INFO_300 DFS_SITENAME_INFO* {.pure.} = object SiteFlags*: ULONG SiteName*: LPWSTR + PDFS_SITENAME_INFO* = ptr DFS_SITENAME_INFO LPDFS_SITENAME_INFO* = ptr DFS_SITENAME_INFO DFS_SITELIST_INFO* {.pure.} = object cSites*: ULONG Site*: array[1, DFS_SITENAME_INFO] + PDFS_SITELIST_INFO* = ptr DFS_SITELIST_INFO LPDFS_SITELIST_INFO* = ptr DFS_SITELIST_INFO PORT_INFO_FFW* {.pure.} = object pName*: LPWSTR cbMonitorData*: DWORD pMonitorData*: LPBYTE + PPORT_INFO_FFW* = ptr PORT_INFO_FFW LPPORT_INFO_FFW* = ptr PORT_INFO_FFW PORT_INFO_FFA* {.pure.} = object pName*: LPSTR cbMonitorData*: DWORD pMonitorData*: LPBYTE + PPORT_INFO_FFA* = ptr PORT_INFO_FFA LPPORT_INFO_FFA* = ptr PORT_INFO_FFA + const CNLEN* = 15 LM20_CNLEN* = 15 DNLEN* = CNLEN LM20_DNLEN* = LM20_CNLEN - UNCLEN* = CNLEN+2 - LM20_UNCLEN* = LM20_CNLEN+2 + UNCLEN* = CNLEN + 2 + LM20_UNCLEN* = LM20_CNLEN + 2 NNLEN* = 80 LM20_NNLEN* = 12 - RMLEN* = UNCLEN+1+NNLEN - LM20_RMLEN* = LM20_UNCLEN+1+LM20_NNLEN + RMLEN* = UNCLEN + 1 + NNLEN + LM20_RMLEN* = LM20_UNCLEN + 1 + LM20_NNLEN LM20_SNLEN* = 15 STXTLEN* = 256 LM20_STXTLEN* = 63 @@ -2306,316 +2633,316 @@ MIN_LANMAN_MESSAGE_ID* = NERR_BASE MAX_LANMAN_MESSAGE_ID* = 5899 NERR_Success* = 0 - NERR_NetNotStarted* = NERR_BASE+2 - NERR_UnknownServer* = NERR_BASE+3 - NERR_ShareMem* = NERR_BASE+4 - NERR_NoNetworkResource* = NERR_BASE+5 - NERR_RemoteOnly* = NERR_BASE+6 - NERR_DevNotRedirected* = NERR_BASE+7 - NERR_ServerNotStarted* = NERR_BASE+14 - NERR_ItemNotFound* = NERR_BASE+15 - NERR_UnknownDevDir* = NERR_BASE+16 - NERR_RedirectedPath* = NERR_BASE+17 - NERR_DuplicateShare* = NERR_BASE+18 - NERR_NoRoom* = NERR_BASE+19 - NERR_TooManyItems* = NERR_BASE+21 - NERR_InvalidMaxUsers* = NERR_BASE+22 - NERR_BufTooSmall* = NERR_BASE+23 - NERR_RemoteErr* = NERR_BASE+27 - NERR_LanmanIniError* = NERR_BASE+31 - NERR_NetworkError* = NERR_BASE+36 - NERR_WkstaInconsistentState* = NERR_BASE+37 - NERR_WkstaNotStarted* = NERR_BASE+38 - NERR_BrowserNotStarted* = NERR_BASE+39 - NERR_InternalError* = NERR_BASE+40 - NERR_BadTransactConfig* = NERR_BASE+41 - NERR_InvalidAPI* = NERR_BASE+42 - NERR_BadEventName* = NERR_BASE+43 - NERR_DupNameReboot* = NERR_BASE+44 - NERR_CfgCompNotFound* = NERR_BASE+46 - NERR_CfgParamNotFound* = NERR_BASE+47 - NERR_LineTooLong* = NERR_BASE+49 - NERR_QNotFound* = NERR_BASE+50 - NERR_JobNotFound* = NERR_BASE+51 - NERR_DestNotFound* = NERR_BASE+52 - NERR_DestExists* = NERR_BASE+53 - NERR_QExists* = NERR_BASE+54 - NERR_QNoRoom* = NERR_BASE+55 - NERR_JobNoRoom* = NERR_BASE+56 - NERR_DestNoRoom* = NERR_BASE+57 - NERR_DestIdle* = NERR_BASE+58 - NERR_DestInvalidOp* = NERR_BASE+59 - NERR_ProcNoRespond* = NERR_BASE+60 - NERR_SpoolerNotLoaded* = NERR_BASE+61 - NERR_DestInvalidState* = NERR_BASE+62 - NERR_QInvalidState* = NERR_BASE+63 - NERR_JobInvalidState* = NERR_BASE+64 - NERR_SpoolNoMemory* = NERR_BASE+65 - NERR_DriverNotFound* = NERR_BASE+66 - NERR_DataTypeInvalid* = NERR_BASE+67 - NERR_ProcNotFound* = NERR_BASE+68 - NERR_ServiceTableLocked* = NERR_BASE+80 - NERR_ServiceTableFull* = NERR_BASE+81 - NERR_ServiceInstalled* = NERR_BASE+82 - NERR_ServiceEntryLocked* = NERR_BASE+83 - NERR_ServiceNotInstalled* = NERR_BASE+84 - NERR_BadServiceName* = NERR_BASE+85 - NERR_ServiceCtlTimeout* = NERR_BASE+86 - NERR_ServiceCtlBusy* = NERR_BASE+87 - NERR_BadServiceProgName* = NERR_BASE+88 - NERR_ServiceNotCtrl* = NERR_BASE+89 - NERR_ServiceKillProc* = NERR_BASE+90 - NERR_ServiceCtlNotValid* = NERR_BASE+91 - NERR_NotInDispatchTbl* = NERR_BASE+92 - NERR_BadControlRecv* = NERR_BASE+93 - NERR_ServiceNotStarting* = NERR_BASE+94 - NERR_AlreadyLoggedOn* = NERR_BASE+100 - NERR_NotLoggedOn* = NERR_BASE+101 - NERR_BadUsername* = NERR_BASE+102 - NERR_BadPassword* = NERR_BASE+103 - NERR_UnableToAddName_W* = NERR_BASE+104 - NERR_UnableToAddName_F* = NERR_BASE+105 - NERR_UnableToDelName_W* = NERR_BASE+106 - NERR_UnableToDelName_F* = NERR_BASE+107 - NERR_LogonsPaused* = NERR_BASE+109 - NERR_LogonServerConflict* = NERR_BASE+110 - NERR_LogonNoUserPath* = NERR_BASE+111 - NERR_LogonScriptError* = NERR_BASE+112 - NERR_StandaloneLogon* = NERR_BASE+114 - NERR_LogonServerNotFound* = NERR_BASE+115 - NERR_LogonDomainExists* = NERR_BASE+116 - NERR_NonValidatedLogon* = NERR_BASE+117 - NERR_ACFNotFound* = NERR_BASE+119 - NERR_GroupNotFound* = NERR_BASE+120 - NERR_UserNotFound* = NERR_BASE+121 - NERR_ResourceNotFound* = NERR_BASE+122 - NERR_GroupExists* = NERR_BASE+123 - NERR_UserExists* = NERR_BASE+124 - NERR_ResourceExists* = NERR_BASE+125 - NERR_NotPrimary* = NERR_BASE+126 - NERR_ACFNotLoaded* = NERR_BASE+127 - NERR_ACFNoRoom* = NERR_BASE+128 - NERR_ACFFileIOFail* = NERR_BASE+129 - NERR_ACFTooManyLists* = NERR_BASE+130 - NERR_UserLogon* = NERR_BASE+131 - NERR_ACFNoParent* = NERR_BASE+132 - NERR_CanNotGrowSegment* = NERR_BASE+133 - NERR_SpeGroupOp* = NERR_BASE+134 - NERR_NotInCache* = NERR_BASE+135 - NERR_UserInGroup* = NERR_BASE+136 - NERR_UserNotInGroup* = NERR_BASE+137 - NERR_AccountUndefined* = NERR_BASE+138 - NERR_AccountExpired* = NERR_BASE+139 - NERR_InvalidWorkstation* = NERR_BASE+140 - NERR_InvalidLogonHours* = NERR_BASE+141 - NERR_PasswordExpired* = NERR_BASE+142 - NERR_PasswordCantChange* = NERR_BASE+143 - NERR_PasswordHistConflict* = NERR_BASE+144 - NERR_PasswordTooShort* = NERR_BASE+145 - NERR_PasswordTooRecent* = NERR_BASE+146 - NERR_InvalidDatabase* = NERR_BASE+147 - NERR_DatabaseUpToDate* = NERR_BASE+148 - NERR_SyncRequired* = NERR_BASE+149 - NERR_UseNotFound* = NERR_BASE+150 - NERR_BadAsgType* = NERR_BASE+151 - NERR_DeviceIsShared* = NERR_BASE+152 - NERR_NoComputerName* = NERR_BASE+170 - NERR_MsgAlreadyStarted* = NERR_BASE+171 - NERR_MsgInitFailed* = NERR_BASE+172 - NERR_NameNotFound* = NERR_BASE+173 - NERR_AlreadyForwarded* = NERR_BASE+174 - NERR_AddForwarded* = NERR_BASE+175 - NERR_AlreadyExists* = NERR_BASE+176 - NERR_TooManyNames* = NERR_BASE+177 - NERR_DelComputerName* = NERR_BASE+178 - NERR_LocalForward* = NERR_BASE+179 - NERR_GrpMsgProcessor* = NERR_BASE+180 - NERR_PausedRemote* = NERR_BASE+181 - NERR_BadReceive* = NERR_BASE+182 - NERR_NameInUse* = NERR_BASE+183 - NERR_MsgNotStarted* = NERR_BASE+184 - NERR_NotLocalName* = NERR_BASE+185 - NERR_NoForwardName* = NERR_BASE+186 - NERR_RemoteFull* = NERR_BASE+187 - NERR_NameNotForwarded* = NERR_BASE+188 - NERR_TruncatedBroadcast* = NERR_BASE+189 - NERR_InvalidDevice* = NERR_BASE+194 - NERR_WriteFault* = NERR_BASE+195 - NERR_DuplicateName* = NERR_BASE+197 - NERR_DeleteLater* = NERR_BASE+198 - NERR_IncompleteDel* = NERR_BASE+199 - NERR_MultipleNets* = NERR_BASE+200 - NERR_NetNameNotFound* = NERR_BASE+210 - NERR_DeviceNotShared* = NERR_BASE+211 - NERR_ClientNameNotFound* = NERR_BASE+212 - NERR_FileIdNotFound* = NERR_BASE+214 - NERR_ExecFailure* = NERR_BASE+215 - NERR_TmpFile* = NERR_BASE+216 - NERR_TooMuchData* = NERR_BASE+217 - NERR_DeviceShareConflict* = NERR_BASE+218 - NERR_BrowserTableIncomplete* = NERR_BASE+219 - NERR_NotLocalDomain* = NERR_BASE+220 - NERR_IsDfsShare* = NERR_BASE+221 - NERR_DevInvalidOpCode* = NERR_BASE+231 - NERR_DevNotFound* = NERR_BASE+232 - NERR_DevNotOpen* = NERR_BASE+233 - NERR_BadQueueDevString* = NERR_BASE+234 - NERR_BadQueuePriority* = NERR_BASE+235 - NERR_NoCommDevs* = NERR_BASE+237 - NERR_QueueNotFound* = NERR_BASE+238 - NERR_BadDevString* = NERR_BASE+240 - NERR_BadDev* = NERR_BASE+241 - NERR_InUseBySpooler* = NERR_BASE+242 - NERR_CommDevInUse* = NERR_BASE+243 - NERR_InvalidComputer* = NERR_BASE+251 - NERR_MaxLenExceeded* = NERR_BASE+254 - NERR_BadComponent* = NERR_BASE+256 - NERR_CantType* = NERR_BASE+257 - NERR_TooManyEntries* = NERR_BASE+262 - NERR_ProfileFileTooBig* = NERR_BASE+270 - NERR_ProfileOffset* = NERR_BASE+271 - NERR_ProfileCleanup* = NERR_BASE+272 - NERR_ProfileUnknownCmd* = NERR_BASE+273 - NERR_ProfileLoadErr* = NERR_BASE+274 - NERR_ProfileSaveErr* = NERR_BASE+275 - NERR_LogOverflow* = NERR_BASE+277 - NERR_LogFileChanged* = NERR_BASE+278 - NERR_LogFileCorrupt* = NERR_BASE+279 - NERR_SourceIsDir* = NERR_BASE+280 - NERR_BadSource* = NERR_BASE+281 - NERR_BadDest* = NERR_BASE+282 - NERR_DifferentServers* = NERR_BASE+283 - NERR_RunSrvPaused* = NERR_BASE+285 - NERR_ErrCommRunSrv* = NERR_BASE+289 - NERR_ErrorExecingGhost* = NERR_BASE+291 - NERR_ShareNotFound* = NERR_BASE+292 - NERR_InvalidLana* = NERR_BASE+300 - NERR_OpenFiles* = NERR_BASE+301 - NERR_ActiveConns* = NERR_BASE+302 - NERR_BadPasswordCore* = NERR_BASE+303 - NERR_DevInUse* = NERR_BASE+304 - NERR_LocalDrive* = NERR_BASE+305 - NERR_AlertExists* = NERR_BASE+330 - NERR_TooManyAlerts* = NERR_BASE+331 - NERR_NoSuchAlert* = NERR_BASE+332 - NERR_BadRecipient* = NERR_BASE+333 - NERR_AcctLimitExceeded* = NERR_BASE+334 - NERR_InvalidLogSeek* = NERR_BASE+340 - NERR_BadUasConfig* = NERR_BASE+350 - NERR_InvalidUASOp* = NERR_BASE+351 - NERR_LastAdmin* = NERR_BASE+352 - NERR_DCNotFound* = NERR_BASE+353 - NERR_LogonTrackingError* = NERR_BASE+354 - NERR_NetlogonNotStarted* = NERR_BASE+355 - NERR_CanNotGrowUASFile* = NERR_BASE+356 - NERR_TimeDiffAtDC* = NERR_BASE+357 - NERR_PasswordMismatch* = NERR_BASE+358 - NERR_NoSuchServer* = NERR_BASE+360 - NERR_NoSuchSession* = NERR_BASE+361 - NERR_NoSuchConnection* = NERR_BASE+362 - NERR_TooManyServers* = NERR_BASE+363 - NERR_TooManySessions* = NERR_BASE+364 - NERR_TooManyConnections* = NERR_BASE+365 - NERR_TooManyFiles* = NERR_BASE+366 - NERR_NoAlternateServers* = NERR_BASE+367 - NERR_TryDownLevel* = NERR_BASE+370 - NERR_UPSDriverNotStarted* = NERR_BASE+380 - NERR_UPSInvalidConfig* = NERR_BASE+381 - NERR_UPSInvalidCommPort* = NERR_BASE+382 - NERR_UPSSignalAsserted* = NERR_BASE+383 - NERR_UPSShutdownFailed* = NERR_BASE+384 - NERR_BadDosRetCode* = NERR_BASE+400 - NERR_ProgNeedsExtraMem* = NERR_BASE+401 - NERR_BadDosFunction* = NERR_BASE+402 - NERR_RemoteBootFailed* = NERR_BASE+403 - NERR_BadFileCheckSum* = NERR_BASE+404 - NERR_NoRplBootSystem* = NERR_BASE+405 - NERR_RplLoadrNetBiosErr* = NERR_BASE+406 - NERR_RplLoadrDiskErr* = NERR_BASE+407 - NERR_ImageParamErr* = NERR_BASE+408 - NERR_TooManyImageParams* = NERR_BASE+409 - NERR_NonDosFloppyUsed* = NERR_BASE+410 - NERR_RplBootRestart* = NERR_BASE+411 - NERR_RplSrvrCallFailed* = NERR_BASE+412 - NERR_CantConnectRplSrvr* = NERR_BASE+413 - NERR_CantOpenImageFile* = NERR_BASE+414 - NERR_CallingRplSrvr* = NERR_BASE+415 - NERR_StartingRplBoot* = NERR_BASE+416 - NERR_RplBootServiceTerm* = NERR_BASE+417 - NERR_RplBootStartFailed* = NERR_BASE+418 - NERR_RPL_CONNECTED* = NERR_BASE+419 - NERR_BrowserConfiguredToNotRun* = NERR_BASE+450 - NERR_RplNoAdaptersStarted* = NERR_BASE+510 - NERR_RplBadRegistry* = NERR_BASE+511 - NERR_RplBadDatabase* = NERR_BASE+512 - NERR_RplRplfilesShare* = NERR_BASE+513 - NERR_RplNotRplServer* = NERR_BASE+514 - NERR_RplCannotEnum* = NERR_BASE+515 - NERR_RplWkstaInfoCorrupted* = NERR_BASE+516 - NERR_RplWkstaNotFound* = NERR_BASE+517 - NERR_RplWkstaNameUnavailable* = NERR_BASE+518 - NERR_RplProfileInfoCorrupted* = NERR_BASE+519 - NERR_RplProfileNotFound* = NERR_BASE+520 - NERR_RplProfileNameUnavailable* = NERR_BASE+521 - NERR_RplProfileNotEmpty* = NERR_BASE+522 - NERR_RplConfigInfoCorrupted* = NERR_BASE+523 - NERR_RplConfigNotFound* = NERR_BASE+524 - NERR_RplAdapterInfoCorrupted* = NERR_BASE+525 - NERR_RplInternal* = NERR_BASE+526 - NERR_RplVendorInfoCorrupted* = NERR_BASE+527 - NERR_RplBootInfoCorrupted* = NERR_BASE+528 - NERR_RplWkstaNeedsUserAcct* = NERR_BASE+529 - NERR_RplNeedsRPLUSERAcct* = NERR_BASE+530 - NERR_RplBootNotFound* = NERR_BASE+531 - NERR_RplIncompatibleProfile* = NERR_BASE+532 - NERR_RplAdapterNameUnavailable* = NERR_BASE+533 - NERR_RplConfigNotEmpty* = NERR_BASE+534 - NERR_RplBootInUse* = NERR_BASE+535 - NERR_RplBackupDatabase* = NERR_BASE+536 - NERR_RplAdapterNotFound* = NERR_BASE+537 - NERR_RplVendorNotFound* = NERR_BASE+538 - NERR_RplVendorNameUnavailable* = NERR_BASE+539 - NERR_RplBootNameUnavailable* = NERR_BASE+540 - NERR_RplConfigNameUnavailable* = NERR_BASE+541 - NERR_DfsInternalCorruption* = NERR_BASE+560 - NERR_DfsVolumeDataCorrupt* = NERR_BASE+561 - NERR_DfsNoSuchVolume* = NERR_BASE+562 - NERR_DfsVolumeAlreadyExists* = NERR_BASE+563 - NERR_DfsAlreadyShared* = NERR_BASE+564 - NERR_DfsNoSuchShare* = NERR_BASE+565 - NERR_DfsNotALeafVolume* = NERR_BASE+566 - NERR_DfsLeafVolume* = NERR_BASE+567 - NERR_DfsVolumeHasMultipleServers* = NERR_BASE+568 - NERR_DfsCantCreateJunctionPoint* = NERR_BASE+569 - NERR_DfsServerNotDfsAware* = NERR_BASE+570 - NERR_DfsBadRenamePath* = NERR_BASE+571 - NERR_DfsVolumeIsOffline* = NERR_BASE+572 - NERR_DfsNoSuchServer* = NERR_BASE+573 - NERR_DfsCyclicalName* = NERR_BASE+574 - NERR_DfsNotSupportedInServerDfs* = NERR_BASE+575 - NERR_DfsDuplicateService* = NERR_BASE+576 - NERR_DfsCantRemoveLastServerShare* = NERR_BASE+577 - NERR_DfsVolumeIsInterDfs* = NERR_BASE+578 - NERR_DfsInconsistent* = NERR_BASE+579 - NERR_DfsServerUpgraded* = NERR_BASE+580 - NERR_DfsDataIsIdentical* = NERR_BASE+581 - NERR_DfsCantRemoveDfsRoot* = NERR_BASE+582 - NERR_DfsChildOrParentInDfs* = NERR_BASE+583 - NERR_DfsInternalError* = NERR_BASE+590 - NERR_SetupAlreadyJoined* = NERR_BASE+591 - NERR_SetupNotJoined* = NERR_BASE+592 - NERR_SetupDomainController* = NERR_BASE+593 - NERR_DefaultJoinRequired* = NERR_BASE+594 - NERR_InvalidWorkgroupName* = NERR_BASE+595 - NERR_NameUsesIncompatibleCodePage* = NERR_BASE+596 - NERR_ComputerAccountNotFound* = NERR_BASE+597 - NERR_PersonalSku* = NERR_BASE+598 - NERR_PasswordMustChange* = NERR_BASE+601 - NERR_AccountLockedOut* = NERR_BASE+602 - NERR_PasswordTooLong* = NERR_BASE+603 - NERR_PasswordNotComplexEnough* = NERR_BASE+604 - NERR_PasswordFilterError* = NERR_BASE+605 - MAX_NERR* = NERR_BASE+899 + NERR_NetNotStarted* = NERR_BASE + 2 + NERR_UnknownServer* = NERR_BASE + 3 + NERR_ShareMem* = NERR_BASE + 4 + NERR_NoNetworkResource* = NERR_BASE + 5 + NERR_RemoteOnly* = NERR_BASE + 6 + NERR_DevNotRedirected* = NERR_BASE + 7 + NERR_ServerNotStarted* = NERR_BASE + 14 + NERR_ItemNotFound* = NERR_BASE + 15 + NERR_UnknownDevDir* = NERR_BASE + 16 + NERR_RedirectedPath* = NERR_BASE + 17 + NERR_DuplicateShare* = NERR_BASE + 18 + NERR_NoRoom* = NERR_BASE + 19 + NERR_TooManyItems* = NERR_BASE + 21 + NERR_InvalidMaxUsers* = NERR_BASE + 22 + NERR_BufTooSmall* = NERR_BASE + 23 + NERR_RemoteErr* = NERR_BASE + 27 + NERR_LanmanIniError* = NERR_BASE + 31 + NERR_NetworkError* = NERR_BASE + 36 + NERR_WkstaInconsistentState* = NERR_BASE + 37 + NERR_WkstaNotStarted* = NERR_BASE + 38 + NERR_BrowserNotStarted* = NERR_BASE + 39 + NERR_InternalError* = NERR_BASE + 40 + NERR_BadTransactConfig* = NERR_BASE + 41 + NERR_InvalidAPI* = NERR_BASE + 42 + NERR_BadEventName* = NERR_BASE + 43 + NERR_DupNameReboot* = NERR_BASE + 44 + NERR_CfgCompNotFound* = NERR_BASE + 46 + NERR_CfgParamNotFound* = NERR_BASE + 47 + NERR_LineTooLong* = NERR_BASE + 49 + NERR_QNotFound* = NERR_BASE + 50 + NERR_JobNotFound* = NERR_BASE + 51 + NERR_DestNotFound* = NERR_BASE + 52 + NERR_DestExists* = NERR_BASE + 53 + NERR_QExists* = NERR_BASE + 54 + NERR_QNoRoom* = NERR_BASE + 55 + NERR_JobNoRoom* = NERR_BASE + 56 + NERR_DestNoRoom* = NERR_BASE + 57 + NERR_DestIdle* = NERR_BASE + 58 + NERR_DestInvalidOp* = NERR_BASE + 59 + NERR_ProcNoRespond* = NERR_BASE + 60 + NERR_SpoolerNotLoaded* = NERR_BASE + 61 + NERR_DestInvalidState* = NERR_BASE + 62 + NERR_QInvalidState* = NERR_BASE + 63 + NERR_JobInvalidState* = NERR_BASE + 64 + NERR_SpoolNoMemory* = NERR_BASE + 65 + NERR_DriverNotFound* = NERR_BASE + 66 + NERR_DataTypeInvalid* = NERR_BASE + 67 + NERR_ProcNotFound* = NERR_BASE + 68 + NERR_ServiceTableLocked* = NERR_BASE + 80 + NERR_ServiceTableFull* = NERR_BASE + 81 + NERR_ServiceInstalled* = NERR_BASE + 82 + NERR_ServiceEntryLocked* = NERR_BASE + 83 + NERR_ServiceNotInstalled* = NERR_BASE + 84 + NERR_BadServiceName* = NERR_BASE + 85 + NERR_ServiceCtlTimeout* = NERR_BASE + 86 + NERR_ServiceCtlBusy* = NERR_BASE + 87 + NERR_BadServiceProgName* = NERR_BASE + 88 + NERR_ServiceNotCtrl* = NERR_BASE + 89 + NERR_ServiceKillProc* = NERR_BASE + 90 + NERR_ServiceCtlNotValid* = NERR_BASE + 91 + NERR_NotInDispatchTbl* = NERR_BASE + 92 + NERR_BadControlRecv* = NERR_BASE + 93 + NERR_ServiceNotStarting* = NERR_BASE + 94 + NERR_AlreadyLoggedOn* = NERR_BASE + 100 + NERR_NotLoggedOn* = NERR_BASE + 101 + NERR_BadUsername* = NERR_BASE + 102 + NERR_BadPassword* = NERR_BASE + 103 + NERR_UnableToAddName_W* = NERR_BASE + 104 + NERR_UnableToAddName_F* = NERR_BASE + 105 + NERR_UnableToDelName_W* = NERR_BASE + 106 + NERR_UnableToDelName_F* = NERR_BASE + 107 + NERR_LogonsPaused* = NERR_BASE + 109 + NERR_LogonServerConflict* = NERR_BASE + 110 + NERR_LogonNoUserPath* = NERR_BASE + 111 + NERR_LogonScriptError* = NERR_BASE + 112 + NERR_StandaloneLogon* = NERR_BASE + 114 + NERR_LogonServerNotFound* = NERR_BASE + 115 + NERR_LogonDomainExists* = NERR_BASE + 116 + NERR_NonValidatedLogon* = NERR_BASE + 117 + NERR_ACFNotFound* = NERR_BASE + 119 + NERR_GroupNotFound* = NERR_BASE + 120 + NERR_UserNotFound* = NERR_BASE + 121 + NERR_ResourceNotFound* = NERR_BASE + 122 + NERR_GroupExists* = NERR_BASE + 123 + NERR_UserExists* = NERR_BASE + 124 + NERR_ResourceExists* = NERR_BASE + 125 + NERR_NotPrimary* = NERR_BASE + 126 + NERR_ACFNotLoaded* = NERR_BASE + 127 + NERR_ACFNoRoom* = NERR_BASE + 128 + NERR_ACFFileIOFail* = NERR_BASE + 129 + NERR_ACFTooManyLists* = NERR_BASE + 130 + NERR_UserLogon* = NERR_BASE + 131 + NERR_ACFNoParent* = NERR_BASE + 132 + NERR_CanNotGrowSegment* = NERR_BASE + 133 + NERR_SpeGroupOp* = NERR_BASE + 134 + NERR_NotInCache* = NERR_BASE + 135 + NERR_UserInGroup* = NERR_BASE + 136 + NERR_UserNotInGroup* = NERR_BASE + 137 + NERR_AccountUndefined* = NERR_BASE + 138 + NERR_AccountExpired* = NERR_BASE + 139 + NERR_InvalidWorkstation* = NERR_BASE + 140 + NERR_InvalidLogonHours* = NERR_BASE + 141 + NERR_PasswordExpired* = NERR_BASE + 142 + NERR_PasswordCantChange* = NERR_BASE + 143 + NERR_PasswordHistConflict* = NERR_BASE + 144 + NERR_PasswordTooShort* = NERR_BASE + 145 + NERR_PasswordTooRecent* = NERR_BASE + 146 + NERR_InvalidDatabase* = NERR_BASE + 147 + NERR_DatabaseUpToDate* = NERR_BASE + 148 + NERR_SyncRequired* = NERR_BASE + 149 + NERR_UseNotFound* = NERR_BASE + 150 + NERR_BadAsgType* = NERR_BASE + 151 + NERR_DeviceIsShared* = NERR_BASE + 152 + NERR_NoComputerName* = NERR_BASE + 170 + NERR_MsgAlreadyStarted* = NERR_BASE + 171 + NERR_MsgInitFailed* = NERR_BASE + 172 + NERR_NameNotFound* = NERR_BASE + 173 + NERR_AlreadyForwarded* = NERR_BASE + 174 + NERR_AddForwarded* = NERR_BASE + 175 + NERR_AlreadyExists* = NERR_BASE + 176 + NERR_TooManyNames* = NERR_BASE + 177 + NERR_DelComputerName* = NERR_BASE + 178 + NERR_LocalForward* = NERR_BASE + 179 + NERR_GrpMsgProcessor* = NERR_BASE + 180 + NERR_PausedRemote* = NERR_BASE + 181 + NERR_BadReceive* = NERR_BASE + 182 + NERR_NameInUse* = NERR_BASE + 183 + NERR_MsgNotStarted* = NERR_BASE + 184 + NERR_NotLocalName* = NERR_BASE + 185 + NERR_NoForwardName* = NERR_BASE + 186 + NERR_RemoteFull* = NERR_BASE + 187 + NERR_NameNotForwarded* = NERR_BASE + 188 + NERR_TruncatedBroadcast* = NERR_BASE + 189 + NERR_InvalidDevice* = NERR_BASE + 194 + NERR_WriteFault* = NERR_BASE + 195 + NERR_DuplicateName* = NERR_BASE + 197 + NERR_DeleteLater* = NERR_BASE + 198 + NERR_IncompleteDel* = NERR_BASE + 199 + NERR_MultipleNets* = NERR_BASE + 200 + NERR_NetNameNotFound* = NERR_BASE + 210 + NERR_DeviceNotShared* = NERR_BASE + 211 + NERR_ClientNameNotFound* = NERR_BASE + 212 + NERR_FileIdNotFound* = NERR_BASE + 214 + NERR_ExecFailure* = NERR_BASE + 215 + NERR_TmpFile* = NERR_BASE + 216 + NERR_TooMuchData* = NERR_BASE + 217 + NERR_DeviceShareConflict* = NERR_BASE + 218 + NERR_BrowserTableIncomplete* = NERR_BASE + 219 + NERR_NotLocalDomain* = NERR_BASE + 220 + NERR_IsDfsShare* = NERR_BASE + 221 + NERR_DevInvalidOpCode* = NERR_BASE + 231 + NERR_DevNotFound* = NERR_BASE + 232 + NERR_DevNotOpen* = NERR_BASE + 233 + NERR_BadQueueDevString* = NERR_BASE + 234 + NERR_BadQueuePriority* = NERR_BASE + 235 + NERR_NoCommDevs* = NERR_BASE + 237 + NERR_QueueNotFound* = NERR_BASE + 238 + NERR_BadDevString* = NERR_BASE + 240 + NERR_BadDev* = NERR_BASE + 241 + NERR_InUseBySpooler* = NERR_BASE + 242 + NERR_CommDevInUse* = NERR_BASE + 243 + NERR_InvalidComputer* = NERR_BASE + 251 + NERR_MaxLenExceeded* = NERR_BASE + 254 + NERR_BadComponent* = NERR_BASE + 256 + NERR_CantType* = NERR_BASE + 257 + NERR_TooManyEntries* = NERR_BASE + 262 + NERR_ProfileFileTooBig* = NERR_BASE + 270 + NERR_ProfileOffset* = NERR_BASE + 271 + NERR_ProfileCleanup* = NERR_BASE + 272 + NERR_ProfileUnknownCmd* = NERR_BASE + 273 + NERR_ProfileLoadErr* = NERR_BASE + 274 + NERR_ProfileSaveErr* = NERR_BASE + 275 + NERR_LogOverflow* = NERR_BASE + 277 + NERR_LogFileChanged* = NERR_BASE + 278 + NERR_LogFileCorrupt* = NERR_BASE + 279 + NERR_SourceIsDir* = NERR_BASE + 280 + NERR_BadSource* = NERR_BASE + 281 + NERR_BadDest* = NERR_BASE + 282 + NERR_DifferentServers* = NERR_BASE + 283 + NERR_RunSrvPaused* = NERR_BASE + 285 + NERR_ErrCommRunSrv* = NERR_BASE + 289 + NERR_ErrorExecingGhost* = NERR_BASE + 291 + NERR_ShareNotFound* = NERR_BASE + 292 + NERR_InvalidLana* = NERR_BASE + 300 + NERR_OpenFiles* = NERR_BASE + 301 + NERR_ActiveConns* = NERR_BASE + 302 + NERR_BadPasswordCore* = NERR_BASE + 303 + NERR_DevInUse* = NERR_BASE + 304 + NERR_LocalDrive* = NERR_BASE + 305 + NERR_AlertExists* = NERR_BASE + 330 + NERR_TooManyAlerts* = NERR_BASE + 331 + NERR_NoSuchAlert* = NERR_BASE + 332 + NERR_BadRecipient* = NERR_BASE + 333 + NERR_AcctLimitExceeded* = NERR_BASE + 334 + NERR_InvalidLogSeek* = NERR_BASE + 340 + NERR_BadUasConfig* = NERR_BASE + 350 + NERR_InvalidUASOp* = NERR_BASE + 351 + NERR_LastAdmin* = NERR_BASE + 352 + NERR_DCNotFound* = NERR_BASE + 353 + NERR_LogonTrackingError* = NERR_BASE + 354 + NERR_NetlogonNotStarted* = NERR_BASE + 355 + NERR_CanNotGrowUASFile* = NERR_BASE + 356 + NERR_TimeDiffAtDC* = NERR_BASE + 357 + NERR_PasswordMismatch* = NERR_BASE + 358 + NERR_NoSuchServer* = NERR_BASE + 360 + NERR_NoSuchSession* = NERR_BASE + 361 + NERR_NoSuchConnection* = NERR_BASE + 362 + NERR_TooManyServers* = NERR_BASE + 363 + NERR_TooManySessions* = NERR_BASE + 364 + NERR_TooManyConnections* = NERR_BASE + 365 + NERR_TooManyFiles* = NERR_BASE + 366 + NERR_NoAlternateServers* = NERR_BASE + 367 + NERR_TryDownLevel* = NERR_BASE + 370 + NERR_UPSDriverNotStarted* = NERR_BASE + 380 + NERR_UPSInvalidConfig* = NERR_BASE + 381 + NERR_UPSInvalidCommPort* = NERR_BASE + 382 + NERR_UPSSignalAsserted* = NERR_BASE + 383 + NERR_UPSShutdownFailed* = NERR_BASE + 384 + NERR_BadDosRetCode* = NERR_BASE + 400 + NERR_ProgNeedsExtraMem* = NERR_BASE + 401 + NERR_BadDosFunction* = NERR_BASE + 402 + NERR_RemoteBootFailed* = NERR_BASE + 403 + NERR_BadFileCheckSum* = NERR_BASE + 404 + NERR_NoRplBootSystem* = NERR_BASE + 405 + NERR_RplLoadrNetBiosErr* = NERR_BASE + 406 + NERR_RplLoadrDiskErr* = NERR_BASE + 407 + NERR_ImageParamErr* = NERR_BASE + 408 + NERR_TooManyImageParams* = NERR_BASE + 409 + NERR_NonDosFloppyUsed* = NERR_BASE + 410 + NERR_RplBootRestart* = NERR_BASE + 411 + NERR_RplSrvrCallFailed* = NERR_BASE + 412 + NERR_CantConnectRplSrvr* = NERR_BASE + 413 + NERR_CantOpenImageFile* = NERR_BASE + 414 + NERR_CallingRplSrvr* = NERR_BASE + 415 + NERR_StartingRplBoot* = NERR_BASE + 416 + NERR_RplBootServiceTerm* = NERR_BASE + 417 + NERR_RplBootStartFailed* = NERR_BASE + 418 + NERR_RPL_CONNECTED* = NERR_BASE + 419 + NERR_BrowserConfiguredToNotRun* = NERR_BASE + 450 + NERR_RplNoAdaptersStarted* = NERR_BASE + 510 + NERR_RplBadRegistry* = NERR_BASE + 511 + NERR_RplBadDatabase* = NERR_BASE + 512 + NERR_RplRplfilesShare* = NERR_BASE + 513 + NERR_RplNotRplServer* = NERR_BASE + 514 + NERR_RplCannotEnum* = NERR_BASE + 515 + NERR_RplWkstaInfoCorrupted* = NERR_BASE + 516 + NERR_RplWkstaNotFound* = NERR_BASE + 517 + NERR_RplWkstaNameUnavailable* = NERR_BASE + 518 + NERR_RplProfileInfoCorrupted* = NERR_BASE + 519 + NERR_RplProfileNotFound* = NERR_BASE + 520 + NERR_RplProfileNameUnavailable* = NERR_BASE + 521 + NERR_RplProfileNotEmpty* = NERR_BASE + 522 + NERR_RplConfigInfoCorrupted* = NERR_BASE + 523 + NERR_RplConfigNotFound* = NERR_BASE + 524 + NERR_RplAdapterInfoCorrupted* = NERR_BASE + 525 + NERR_RplInternal* = NERR_BASE + 526 + NERR_RplVendorInfoCorrupted* = NERR_BASE + 527 + NERR_RplBootInfoCorrupted* = NERR_BASE + 528 + NERR_RplWkstaNeedsUserAcct* = NERR_BASE + 529 + NERR_RplNeedsRPLUSERAcct* = NERR_BASE + 530 + NERR_RplBootNotFound* = NERR_BASE + 531 + NERR_RplIncompatibleProfile* = NERR_BASE + 532 + NERR_RplAdapterNameUnavailable* = NERR_BASE + 533 + NERR_RplConfigNotEmpty* = NERR_BASE + 534 + NERR_RplBootInUse* = NERR_BASE + 535 + NERR_RplBackupDatabase* = NERR_BASE + 536 + NERR_RplAdapterNotFound* = NERR_BASE + 537 + NERR_RplVendorNotFound* = NERR_BASE + 538 + NERR_RplVendorNameUnavailable* = NERR_BASE + 539 + NERR_RplBootNameUnavailable* = NERR_BASE + 540 + NERR_RplConfigNameUnavailable* = NERR_BASE + 541 + NERR_DfsInternalCorruption* = NERR_BASE + 560 + NERR_DfsVolumeDataCorrupt* = NERR_BASE + 561 + NERR_DfsNoSuchVolume* = NERR_BASE + 562 + NERR_DfsVolumeAlreadyExists* = NERR_BASE + 563 + NERR_DfsAlreadyShared* = NERR_BASE + 564 + NERR_DfsNoSuchShare* = NERR_BASE + 565 + NERR_DfsNotALeafVolume* = NERR_BASE + 566 + NERR_DfsLeafVolume* = NERR_BASE + 567 + NERR_DfsVolumeHasMultipleServers* = NERR_BASE + 568 + NERR_DfsCantCreateJunctionPoint* = NERR_BASE + 569 + NERR_DfsServerNotDfsAware* = NERR_BASE + 570 + NERR_DfsBadRenamePath* = NERR_BASE + 571 + NERR_DfsVolumeIsOffline* = NERR_BASE + 572 + NERR_DfsNoSuchServer* = NERR_BASE + 573 + NERR_DfsCyclicalName* = NERR_BASE + 574 + NERR_DfsNotSupportedInServerDfs* = NERR_BASE + 575 + NERR_DfsDuplicateService* = NERR_BASE + 576 + NERR_DfsCantRemoveLastServerShare* = NERR_BASE + 577 + NERR_DfsVolumeIsInterDfs* = NERR_BASE + 578 + NERR_DfsInconsistent* = NERR_BASE + 579 + NERR_DfsServerUpgraded* = NERR_BASE + 580 + NERR_DfsDataIsIdentical* = NERR_BASE + 581 + NERR_DfsCantRemoveDfsRoot* = NERR_BASE + 582 + NERR_DfsChildOrParentInDfs* = NERR_BASE + 583 + NERR_DfsInternalError* = NERR_BASE + 590 + NERR_SetupAlreadyJoined* = NERR_BASE + 591 + NERR_SetupNotJoined* = NERR_BASE + 592 + NERR_SetupDomainController* = NERR_BASE + 593 + NERR_DefaultJoinRequired* = NERR_BASE + 594 + NERR_InvalidWorkgroupName* = NERR_BASE + 595 + NERR_NameUsesIncompatibleCodePage* = NERR_BASE + 596 + NERR_ComputerAccountNotFound* = NERR_BASE + 597 + NERR_PersonalSku* = NERR_BASE + 598 + NERR_PasswordMustChange* = NERR_BASE + 601 + NERR_AccountLockedOut* = NERR_BASE + 602 + NERR_PasswordTooLong* = NERR_BASE + 603 + NERR_PasswordNotComplexEnough* = NERR_BASE + 604 + NERR_PasswordFilterError* = NERR_BASE + 605 + MAX_NERR* = NERR_BASE + 899 UF_SCRIPT* = 0x0001 UF_ACCOUNTDISABLE* = 0x0002 UF_HOMEDIR_REQUIRED* = 0x0008 @@ -2628,8 +2955,12 @@ UF_INTERDOMAIN_TRUST_ACCOUNT* = 0x0800 UF_WORKSTATION_TRUST_ACCOUNT* = 0x1000 UF_SERVER_TRUST_ACCOUNT* = 0x2000 - UF_MACHINE_ACCOUNT_MASK* = UF_INTERDOMAIN_TRUST_ACCOUNT or UF_WORKSTATION_TRUST_ACCOUNT or UF_SERVER_TRUST_ACCOUNT - UF_ACCOUNT_TYPE_MASK* = UF_TEMP_DUPLICATE_ACCOUNT or UF_NORMAL_ACCOUNT or UF_INTERDOMAIN_TRUST_ACCOUNT or UF_WORKSTATION_TRUST_ACCOUNT or UF_SERVER_TRUST_ACCOUNT + UF_MACHINE_ACCOUNT_MASK* = + UF_INTERDOMAIN_TRUST_ACCOUNT or UF_WORKSTATION_TRUST_ACCOUNT or + UF_SERVER_TRUST_ACCOUNT + UF_ACCOUNT_TYPE_MASK* = + UF_TEMP_DUPLICATE_ACCOUNT or UF_NORMAL_ACCOUNT or UF_INTERDOMAIN_TRUST_ACCOUNT or + UF_WORKSTATION_TRUST_ACCOUNT or UF_SERVER_TRUST_ACCOUNT UF_DONT_EXPIRE_PASSWD* = 0x10000 UF_MNS_LOGON_ACCOUNT* = 0x20000 UF_SMARTCARD_REQUIRED* = 0x40000 @@ -2640,7 +2971,13 @@ UF_PASSWORD_EXPIRED* = 0x800000 UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION* = 0x1000000 UF_NO_AUTH_DATA_REQUIRED* = 0x2000000 - UF_SETTABLE_BITS* = UF_SCRIPT or UF_ACCOUNTDISABLE or UF_LOCKOUT or UF_HOMEDIR_REQUIRED or UF_PASSWD_NOTREQD or UF_PASSWD_CANT_CHANGE or UF_ACCOUNT_TYPE_MASK or UF_DONT_EXPIRE_PASSWD or UF_MNS_LOGON_ACCOUNT or UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED or UF_SMARTCARD_REQUIRED or UF_TRUSTED_FOR_DELEGATION or UF_NOT_DELEGATED or UF_USE_DES_KEY_ONLY or UF_DONT_REQUIRE_PREAUTH or UF_PASSWORD_EXPIRED or UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION or UF_NO_AUTH_DATA_REQUIRED + UF_SETTABLE_BITS* = + UF_SCRIPT or UF_ACCOUNTDISABLE or UF_LOCKOUT or UF_HOMEDIR_REQUIRED or + UF_PASSWD_NOTREQD or UF_PASSWD_CANT_CHANGE or UF_ACCOUNT_TYPE_MASK or + UF_DONT_EXPIRE_PASSWD or UF_MNS_LOGON_ACCOUNT or UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED or + UF_SMARTCARD_REQUIRED or UF_TRUSTED_FOR_DELEGATION or UF_NOT_DELEGATED or + UF_USE_DES_KEY_ONLY or UF_DONT_REQUIRE_PREAUTH or UF_PASSWORD_EXPIRED or + UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION or UF_NO_AUTH_DATA_REQUIRED FILTER_TEMP_DUPLICATE_ACCOUNT* = 0x0001 FILTER_NORMAL_ACCOUNT* = 0x0002 FILTER_INTERDOMAIN_TRUST_ACCOUNT* = 0x0008 @@ -2684,38 +3021,38 @@ USER_PROFILE* = 52 USER_PROFILE_PARMNUM* = 52 USER_HOME_DIR_DRIVE_PARMNUM* = 53 - USER_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_NAME_PARMNUM - USER_PASSWORD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_PARMNUM - USER_PASSWORD_AGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_PASSWORD_AGE_PARMNUM - USER_PRIV_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_PRIV_PARMNUM - USER_HOME_DIR_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_PARMNUM - USER_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_COMMENT_PARMNUM - USER_FLAGS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_FLAGS_PARMNUM - USER_SCRIPT_PATH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_SCRIPT_PATH_PARMNUM - USER_AUTH_FLAGS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_AUTH_FLAGS_PARMNUM - USER_FULL_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_FULL_NAME_PARMNUM - USER_USR_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_USR_COMMENT_PARMNUM - USER_PARMS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_PARMS_PARMNUM - USER_WORKSTATIONS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_WORKSTATIONS_PARMNUM - USER_LAST_LOGON_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGON_PARMNUM - USER_LAST_LOGOFF_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_LAST_LOGOFF_PARMNUM - USER_ACCT_EXPIRES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_ACCT_EXPIRES_PARMNUM - USER_MAX_STORAGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_MAX_STORAGE_PARMNUM - USER_UNITS_PER_WEEK_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_UNITS_PER_WEEK_PARMNUM - USER_LOGON_HOURS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_LOGON_HOURS_PARMNUM - USER_PAD_PW_COUNT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_PAD_PW_COUNT_PARMNUM - USER_NUM_LOGONS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_NUM_LOGONS_PARMNUM - USER_LOGON_SERVER_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_LOGON_SERVER_PARMNUM - USER_COUNTRY_CODE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_COUNTRY_CODE_PARMNUM - USER_CODE_PAGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_CODE_PAGE_PARMNUM - USER_PRIMARY_GROUP_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_PRIMARY_GROUP_PARMNUM - USER_HOME_DIR_DRIVE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+USER_HOME_DIR_DRIVE_PARMNUM + USER_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_NAME_PARMNUM + USER_PASSWORD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_PARMNUM + USER_PASSWORD_AGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_AGE_PARMNUM + USER_PRIV_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_PRIV_PARMNUM + USER_HOME_DIR_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_PARMNUM + USER_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_COMMENT_PARMNUM + USER_FLAGS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_FLAGS_PARMNUM + USER_SCRIPT_PATH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_SCRIPT_PATH_PARMNUM + USER_AUTH_FLAGS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_AUTH_FLAGS_PARMNUM + USER_FULL_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_FULL_NAME_PARMNUM + USER_USR_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_USR_COMMENT_PARMNUM + USER_PARMS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_PARMS_PARMNUM + USER_WORKSTATIONS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_WORKSTATIONS_PARMNUM + USER_LAST_LOGON_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGON_PARMNUM + USER_LAST_LOGOFF_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGOFF_PARMNUM + USER_ACCT_EXPIRES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_ACCT_EXPIRES_PARMNUM + USER_MAX_STORAGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_MAX_STORAGE_PARMNUM + USER_UNITS_PER_WEEK_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_UNITS_PER_WEEK_PARMNUM + USER_LOGON_HOURS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_LOGON_HOURS_PARMNUM + USER_PAD_PW_COUNT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_PAD_PW_COUNT_PARMNUM + USER_NUM_LOGONS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_NUM_LOGONS_PARMNUM + USER_LOGON_SERVER_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_LOGON_SERVER_PARMNUM + USER_COUNTRY_CODE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_COUNTRY_CODE_PARMNUM + USER_CODE_PAGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_CODE_PAGE_PARMNUM + USER_PRIMARY_GROUP_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_PRIMARY_GROUP_PARMNUM + USER_HOME_DIR_DRIVE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_DRIVE_PARMNUM NULL_USERSETINFO_PASSWD* = " " TIMEQ_FOREVER* = -1 USER_MAXSTORAGE_UNLIMITED* = -1 USER_NO_LOGOFF* = -1 UNITS_PER_DAY* = 24 - UNITS_PER_WEEK* = UNITS_PER_DAY*7 + UNITS_PER_WEEK* = UNITS_PER_DAY * 7 USER_PRIV_MASK* = 0x3 USER_PRIV_GUEST* = 0 USER_PRIV_USER* = 1 @@ -2728,7 +3065,7 @@ DEF_MIN_PWAGE* = 0 DEF_FORCE_LOGOFF* = 0xffffffff'i32 DEF_MAX_BADPW* = 0 - ONE_DAY* = 01*24*3600 + ONE_DAY* = 01 * 24 * 3600 VALIDATED_LOGON* = 0 PASSWORD_EXPIRED* = 2 NON_VALIDATED_LOGON* = 3 @@ -2745,15 +3082,19 @@ MODALS_LOCKOUT_DURATION_PARMNUM* = 10 MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM* = 11 MODALS_LOCKOUT_THRESHOLD_PARMNUM* = 12 - MODALS_MIN_PASSWD_LEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_LEN_PARMNUM - MODALS_MAX_PASSWD_AGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_MAX_PASSWD_AGE_PARMNUM - MODALS_MIN_PASSWD_AGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_MIN_PASSWD_AGE_PARMNUM - MODALS_FORCE_LOGOFF_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_FORCE_LOGOFF_PARMNUM - MODALS_PASSWD_HIST_LEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_PASSWD_HIST_LEN_PARMNUM - MODALS_ROLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_ROLE_PARMNUM - MODALS_PRIMARY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_PRIMARY_PARMNUM - MODALS_DOMAIN_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_NAME_PARMNUM - MODALS_DOMAIN_ID_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+MODALS_DOMAIN_ID_PARMNUM + MODALS_MIN_PASSWD_LEN_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM + MODALS_MAX_PASSWD_AGE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM + MODALS_MIN_PASSWD_AGE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM + MODALS_FORCE_LOGOFF_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM + MODALS_PASSWD_HIST_LEN_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM + MODALS_ROLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM + MODALS_PRIMARY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM + MODALS_DOMAIN_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM + MODALS_DOMAIN_ID_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM GROUPIDMASK* = 0x8000 GROUP_SPECIALGRP_USERS* = "USERS" GROUP_SPECIALGRP_ADMINS* = "ADMINS" @@ -2763,10 +3104,10 @@ GROUP_NAME_PARMNUM* = 1 GROUP_COMMENT_PARMNUM* = 2 GROUP_ATTRIBUTES_PARMNUM* = 3 - GROUP_ALL_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+GROUP_ALL_PARMNUM - GROUP_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+GROUP_NAME_PARMNUM - GROUP_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+GROUP_COMMENT_PARMNUM - GROUP_ATTRIBUTES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+GROUP_ATTRIBUTES_PARMNUM + GROUP_ALL_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM + GROUP_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM + GROUP_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM + GROUP_ATTRIBUTES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM LOCALGROUP_NAME_PARMNUM* = 1 LOCALGROUP_COMMENT_PARMNUM* = 2 MAXPERMENTRIES* = 64 @@ -2778,7 +3119,9 @@ ACCESS_DELETE* = 0x10 ACCESS_ATRIB* = 0x20 ACCESS_PERM* = 0x40 - ACCESS_ALL* = ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or ACCESS_EXEC or ACCESS_DELETE or ACCESS_ATRIB or ACCESS_PERM + ACCESS_ALL* = + ACCESS_READ or ACCESS_WRITE or ACCESS_CREATE or ACCESS_EXEC or ACCESS_DELETE or + ACCESS_ATRIB or ACCESS_PERM ACCESS_GROUP* = 0x8000 ACCESS_AUDIT* = 0x1 ACCESS_SUCCESS_OPEN* = 0x10 @@ -2796,10 +3139,11 @@ ACCESS_ATTR_PARMNUM* = 2 ACCESS_COUNT_PARMNUM* = 3 ACCESS_ACCESS_LIST_PARMNUM* = 4 - ACCESS_RESOURCE_NAME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+ACCESS_RESOURCE_NAME_PARMNUM - ACCESS_ATTR_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+ACCESS_ATTR_PARMNUM - ACCESS_COUNT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+ACCESS_COUNT_PARMNUM - ACCESS_ACCESS_LIST_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+ACCESS_ACCESS_LIST_PARMNUM + ACCESS_RESOURCE_NAME_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM + ACCESS_ATTR_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM + ACCESS_COUNT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM + ACCESS_ACCESS_LIST_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM ACCESS_LETTERS* = "RWCXDAP " netValidateAuthentication* = 1 netValidatePasswordChange* = 2 @@ -2870,9 +3214,9 @@ SHARE_PATH_PARMNUM* = 8 SHARE_PASSWD_PARMNUM* = 9 SHARE_FILE_SD_PARMNUM* = 501 - SHARE_REMARK_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SHARE_REMARK_PARMNUM - SHARE_MAX_USES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SHARE_MAX_USES_PARMNUM - SHARE_FILE_SD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SHARE_FILE_SD_PARMNUM + SHARE_REMARK_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM + SHARE_MAX_USES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM + SHARE_FILE_SD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM SHI1_NUM_ELEMENTS* = 4 SHI2_NUM_ELEMENTS* = 10 STYPE_DISKTREE* = 0 @@ -2893,7 +3237,10 @@ SHI1005_FLAGS_FORCE_SHARED_DELETE* = 0x0200 SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING* = 0x0400 SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM* = 0x0800 - SHI1005_VALID_FLAGS_SET* = CSC_MASK or SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS or SHI1005_FLAGS_FORCE_SHARED_DELETE or SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING or SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM + SHI1005_VALID_FLAGS_SET* = + CSC_MASK or SHI1005_FLAGS_RESTRICT_EXCLUSIVE_OPENS or + SHI1005_FLAGS_FORCE_SHARED_DELETE or SHI1005_FLAGS_ALLOW_NAMESPACE_CACHING or + SHI1005_FLAGS_ACCESS_BASED_DIRECTORY_ENUM SESS_GUEST* = 0x00000001 SESS_NOENCRYPTION* = 0x00000002 SESI1_NUM_ELEMENTS* = 8 @@ -2916,16 +3263,16 @@ REPL_ROLE_EXPORT* = 1 REPL_ROLE_IMPORT* = 2 REPL_ROLE_BOTH* = 3 - REPL_INTERVAL_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+0 - REPL_PULSE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+1 - REPL_GUARDTIME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+2 - REPL_RANDOM_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+3 + REPL_INTERVAL_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + 0 + REPL_PULSE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + 1 + REPL_GUARDTIME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + 2 + REPL_RANDOM_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + 3 REPL_INTEGRITY_FILE* = 1 REPL_INTEGRITY_TREE* = 2 REPL_EXTENT_FILE* = 1 REPL_EXTENT_TREE* = 2 - REPL_EXPORT_INTEGRITY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+0 - REPL_EXPORT_EXTENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+1 + REPL_EXPORT_INTEGRITY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + 0 + REPL_EXPORT_EXTENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + 1 REPL_UNLOCK_NOFORCE* = 0 REPL_UNLOCK_FORCE* = 1 REPL_STATE_OK* = 0 @@ -3109,100 +3456,145 @@ SV_DISABLEDOS_PARMNUM* = 600 SV_LOWDISKSPACEMINIMUM_PARMNUM* = 601 SV_DISABLESTRICTNAMECHECKING_PARMNUM* = 602 - SV_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_COMMENT_PARMNUM - SV_USERS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_USERS_PARMNUM - SV_DISC_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_DISC_PARMNUM - SV_HIDDEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_HIDDEN_PARMNUM - SV_ANNOUNCE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ANNOUNCE_PARMNUM - SV_ANNDELTA_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ANNDELTA_PARMNUM - SV_SESSOPENS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SESSOPENS_PARMNUM - SV_SESSVCS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SESSVCS_PARMNUM - SV_OPENSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_OPENSEARCH_PARMNUM - SV_MAXWORKITEMS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMS_PARMNUM - SV_MAXRAWBUFLEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXRAWBUFLEN_PARMNUM - SV_SESSUSERS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SESSUSERS_PARMNUM - SV_SESSCONNS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SESSCONNS_PARMNUM - SV_MAXNONPAGEDMEMORYUSAGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM - SV_MAXPAGEDMEMORYUSAGE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDMEMORYUSAGE_PARMNUM - SV_ENABLESOFTCOMPAT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLESOFTCOMPAT_PARMNUM - SV_ENABLEFORCEDLOGOFF_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLEFORCEDLOGOFF_PARMNUM - SV_TIMESOURCE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_TIMESOURCE_PARMNUM - SV_LMANNOUNCE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_LMANNOUNCE_PARMNUM - SV_MAXCOPYREADLEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYREADLEN_PARMNUM - SV_MAXCOPYWRITELEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYWRITELEN_PARMNUM - SV_MINKEEPSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINKEEPSEARCH_PARMNUM - SV_MAXKEEPSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPSEARCH_PARMNUM - SV_MINKEEPCOMPLSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINKEEPCOMPLSEARCH_PARMNUM - SV_MAXKEEPCOMPLSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXKEEPCOMPLSEARCH_PARMNUM - SV_SCAVTIMEOUT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SCAVTIMEOUT_PARMNUM - SV_MINRCVQUEUE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINRCVQUEUE_PARMNUM - SV_MINFREEWORKITEMS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINFREEWORKITEMS_PARMNUM - SV_MAXMPXCT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXMPXCT_PARMNUM - SV_OPLOCKBREAKWAIT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKWAIT_PARMNUM - SV_OPLOCKBREAKRESPONSEWAIT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM - SV_ENABLEOPLOCKS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKS_PARMNUM - SV_ENABLEOPLOCKFORCECLOSE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLEOPLOCKFORCECLOSE_PARMNUM - SV_ENABLEFCBOPENS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLEFCBOPENS_PARMNUM - SV_ENABLERAW_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLERAW_PARMNUM - SV_ENABLESHAREDNETDRIVES_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLESHAREDNETDRIVES_PARMNUM - SV_MINFREECONNECTIONS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINFREECONNECTIONS_PARMNUM - SV_MAXFREECONNECTIONS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXFREECONNECTIONS_PARMNUM - SV_INITSESSTABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_INITSESSTABLE_PARMNUM - SV_INITCONNTABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_INITCONNTABLE_PARMNUM - SV_INITFILETABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_INITFILETABLE_PARMNUM - SV_INITSEARCHTABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_INITSEARCHTABLE_PARMNUM - SV_ALERTSCHEDULE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ALERTSCHEDULE_PARMNUM - SV_ERRORTHRESHOLD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ERRORTHRESHOLD_PARMNUM - SV_NETWORKERRORTHRESHOLD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_NETWORKERRORTHRESHOLD_PARMNUM - SV_DISKSPACETHRESHOLD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_DISKSPACETHRESHOLD_PARMNUM - SV_MAXLINKDELAY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXLINKDELAY_PARMNUM - SV_MINLINKTHROUGHPUT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINLINKTHROUGHPUT_PARMNUM - SV_LINKINFOVALIDTIME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_LINKINFOVALIDTIME_PARMNUM - SV_SCAVQOSINFOUPDATETIME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SCAVQOSINFOUPDATETIME_PARMNUM - SV_MAXWORKITEMIDLETIME_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXWORKITEMIDLETIME_PARMNUM - SV_MAXRAWWORKITEMS_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXRAWWORKITEMS_PARMNUM - SV_PRODUCTTYPE_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_PRODUCTTYPE_PARMNUM - SV_SERVERSIZE_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SERVERSIZE_PARMNUM - SV_CONNECTIONLESSAUTODISC_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_CONNECTIONLESSAUTODISC_PARMNUM - SV_SHARINGVIOLATIONRETRIES_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONRETRIES_PARMNUM - SV_SHARINGVIOLATIONDELAY_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SHARINGVIOLATIONDELAY_PARMNUM - SV_MAXGLOBALOPENSEARCH_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXGLOBALOPENSEARCH_PARMNUM - SV_REMOVEDUPLICATESEARCHES_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_REMOVEDUPLICATESEARCHES_PARMNUM - SV_LOCKVIOLATIONRETRIES_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONRETRIES_PARMNUM - SV_LOCKVIOLATIONOFFSET_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONOFFSET_PARMNUM - SV_LOCKVIOLATIONDELAY_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_LOCKVIOLATIONDELAY_PARMNUM - SV_MDLREADSWITCHOVER_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MDLREADSWITCHOVER_PARMNUM - SV_CACHEDOPENLIMIT_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_CACHEDOPENLIMIT_PARMNUM - SV_CRITICALTHREADS_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_CRITICALTHREADS_PARMNUM - SV_RESTRICTNULLSESSACCESS_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_RESTRICTNULLSESSACCESS_PARMNUM - SV_ENABLEWFW311DIRECTIPX_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLEWFW311DIRECTIPX_PARMNUM - SV_OTHERQUEUEAFFINITY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_OTHERQUEUEAFFINITY_PARMNUM - SV_QUEUESAMPLESECS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_QUEUESAMPLESECS_PARMNUM - SV_BALANCECOUNT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_BALANCECOUNT_PARMNUM - SV_PREFERREDAFFINITY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_PREFERREDAFFINITY_PARMNUM - SV_MAXFREERFCBS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXFREERFCBS_PARMNUM - SV_MAXFREEMFCBS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXFREEMFCBS_PARMNUM - SV_MAXFREELFCBS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXFREELFCBS_PARMNUM - SV_MAXFREEPAGEDPOOLCHUNKS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM - SV_MINPAGEDPOOLCHUNKSIZE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM - SV_MAXPAGEDPOOLCHUNKSIZE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM - SV_SENDSFROMPREFERREDPROCESSOR_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM - SV_MAXTHREADSPERQUEUE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXTHREADSPERQUEUE_PARMNUM - SV_CACHEDDIRECTORYLIMIT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_CACHEDDIRECTORYLIMIT_PARMNUM - SV_MAXCOPYLENGTH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MAXCOPYLENGTH_PARMNUM - SV_ENABLECOMPRESSION_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLECOMPRESSION_PARMNUM - SV_AUTOSHAREWKS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_AUTOSHAREWKS_PARMNUM - SV_AUTOSHARESERVER_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_AUTOSHARESERVER_PARMNUM - SV_ENABLESECURITYSIGNATURE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLESECURITYSIGNATURE_PARMNUM - SV_REQUIRESECURITYSIGNATURE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_REQUIRESECURITYSIGNATURE_PARMNUM - SV_MINCLIENTBUFFERSIZE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_MINCLIENTBUFFERSIZE_PARMNUM - SV_CONNECTIONNOSESSIONSTIMEOUT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM - SV_IDLETHREADTIMEOUT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_IDLETHREADTIMEOUT_PARMNUM - SV_ENABLEW9XSECURITYSIGNATURE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENABLEW9XSECURITYSIGNATURE_PARMNUM - SV_ENFORCEKERBEROSREAUTHENTICATION_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_ENFORCEKERBEROSREAUTHENTICATION_PARMNUM - SV_DISABLEDOS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_DISABLEDOS_PARMNUM - SV_LOWDISKSPACEMINIMUM_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_LOWDISKSPACEMINIMUM_PARMNUM - SV_DISABLESTRICTNAMECHECKING_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL+SV_DISABLESTRICTNAMECHECKING_PARMNUM + SV_COMMENT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_COMMENT_PARMNUM + SV_USERS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_USERS_PARMNUM + SV_DISC_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_DISC_PARMNUM + SV_HIDDEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_HIDDEN_PARMNUM + SV_ANNOUNCE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ANNOUNCE_PARMNUM + SV_ANNDELTA_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ANNDELTA_PARMNUM + SV_SESSOPENS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_SESSOPENS_PARMNUM + SV_SESSVCS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_SESSVCS_PARMNUM + SV_OPENSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_OPENSEARCH_PARMNUM + SV_MAXWORKITEMS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXWORKITEMS_PARMNUM + SV_MAXRAWBUFLEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXRAWBUFLEN_PARMNUM + SV_SESSUSERS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_SESSUSERS_PARMNUM + SV_SESSCONNS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_SESSCONNS_PARMNUM + SV_MAXNONPAGEDMEMORYUSAGE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM + SV_MAXPAGEDMEMORYUSAGE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXPAGEDMEMORYUSAGE_PARMNUM + SV_ENABLESOFTCOMPAT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ENABLESOFTCOMPAT_PARMNUM + SV_ENABLEFORCEDLOGOFF_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLEFORCEDLOGOFF_PARMNUM + SV_TIMESOURCE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_TIMESOURCE_PARMNUM + SV_LMANNOUNCE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_LMANNOUNCE_PARMNUM + SV_MAXCOPYREADLEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXCOPYREADLEN_PARMNUM + SV_MAXCOPYWRITELEN_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXCOPYWRITELEN_PARMNUM + SV_MINKEEPSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MINKEEPSEARCH_PARMNUM + SV_MAXKEEPSEARCH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXKEEPSEARCH_PARMNUM + SV_MINKEEPCOMPLSEARCH_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MINKEEPCOMPLSEARCH_PARMNUM + SV_MAXKEEPCOMPLSEARCH_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXKEEPCOMPLSEARCH_PARMNUM + SV_SCAVTIMEOUT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_SCAVTIMEOUT_PARMNUM + SV_MINRCVQUEUE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MINRCVQUEUE_PARMNUM + SV_MINFREEWORKITEMS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MINFREEWORKITEMS_PARMNUM + SV_MAXMPXCT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXMPXCT_PARMNUM + SV_OPLOCKBREAKWAIT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_OPLOCKBREAKWAIT_PARMNUM + SV_OPLOCKBREAKRESPONSEWAIT_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM + SV_ENABLEOPLOCKS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ENABLEOPLOCKS_PARMNUM + SV_ENABLEOPLOCKFORCECLOSE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLEOPLOCKFORCECLOSE_PARMNUM + SV_ENABLEFCBOPENS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ENABLEFCBOPENS_PARMNUM + SV_ENABLERAW_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ENABLERAW_PARMNUM + SV_ENABLESHAREDNETDRIVES_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLESHAREDNETDRIVES_PARMNUM + SV_MINFREECONNECTIONS_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MINFREECONNECTIONS_PARMNUM + SV_MAXFREECONNECTIONS_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXFREECONNECTIONS_PARMNUM + SV_INITSESSTABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_INITSESSTABLE_PARMNUM + SV_INITCONNTABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_INITCONNTABLE_PARMNUM + SV_INITFILETABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_INITFILETABLE_PARMNUM + SV_INITSEARCHTABLE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_INITSEARCHTABLE_PARMNUM + SV_ALERTSCHEDULE_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ALERTSCHEDULE_PARMNUM + SV_ERRORTHRESHOLD_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_ERRORTHRESHOLD_PARMNUM + SV_NETWORKERRORTHRESHOLD_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_NETWORKERRORTHRESHOLD_PARMNUM + SV_DISKSPACETHRESHOLD_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_DISKSPACETHRESHOLD_PARMNUM + SV_MAXLINKDELAY_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXLINKDELAY_PARMNUM + SV_MINLINKTHROUGHPUT_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MINLINKTHROUGHPUT_PARMNUM + SV_LINKINFOVALIDTIME_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_LINKINFOVALIDTIME_PARMNUM + SV_SCAVQOSINFOUPDATETIME_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_SCAVQOSINFOUPDATETIME_PARMNUM + SV_MAXWORKITEMIDLETIME_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXWORKITEMIDLETIME_PARMNUM + SV_MAXRAWWORKITEMS_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXRAWWORKITEMS_PARMNUM + SV_PRODUCTTYPE_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL + SV_PRODUCTTYPE_PARMNUM + SV_SERVERSIZE_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL + SV_SERVERSIZE_PARMNUM + SV_CONNECTIONLESSAUTODISC_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_CONNECTIONLESSAUTODISC_PARMNUM + SV_SHARINGVIOLATIONRETRIES_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_SHARINGVIOLATIONRETRIES_PARMNUM + SV_SHARINGVIOLATIONDELAY_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_SHARINGVIOLATIONDELAY_PARMNUM + SV_MAXGLOBALOPENSEARCH_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXGLOBALOPENSEARCH_PARMNUM + SV_REMOVEDUPLICATESEARCHES_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_REMOVEDUPLICATESEARCHES_PARMNUM + SV_LOCKVIOLATIONRETRIES_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_LOCKVIOLATIONRETRIES_PARMNUM + SV_LOCKVIOLATIONOFFSET_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_LOCKVIOLATIONOFFSET_PARMNUM + SV_LOCKVIOLATIONDELAY_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_LOCKVIOLATIONDELAY_PARMNUM + SV_MDLREADSWITCHOVER_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MDLREADSWITCHOVER_PARMNUM + SV_CACHEDOPENLIMIT_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL + SV_CACHEDOPENLIMIT_PARMNUM + SV_CRITICALTHREADS_INFOLOEVEL* = PARMNUM_BASE_INFOLEVEL + SV_CRITICALTHREADS_PARMNUM + SV_RESTRICTNULLSESSACCESS_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_RESTRICTNULLSESSACCESS_PARMNUM + SV_ENABLEWFW311DIRECTIPX_INFOLOEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLEWFW311DIRECTIPX_PARMNUM + SV_OTHERQUEUEAFFINITY_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_OTHERQUEUEAFFINITY_PARMNUM + SV_QUEUESAMPLESECS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_QUEUESAMPLESECS_PARMNUM + SV_BALANCECOUNT_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_BALANCECOUNT_PARMNUM + SV_PREFERREDAFFINITY_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_PREFERREDAFFINITY_PARMNUM + SV_MAXFREERFCBS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXFREERFCBS_PARMNUM + SV_MAXFREEMFCBS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXFREEMFCBS_PARMNUM + SV_MAXFREELFCBS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXFREELFCBS_PARMNUM + SV_MAXFREEPAGEDPOOLCHUNKS_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM + SV_MINPAGEDPOOLCHUNKSIZE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM + SV_MAXPAGEDPOOLCHUNKSIZE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM + SV_SENDSFROMPREFERREDPROCESSOR_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM + SV_MAXTHREADSPERQUEUE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MAXTHREADSPERQUEUE_PARMNUM + SV_CACHEDDIRECTORYLIMIT_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_CACHEDDIRECTORYLIMIT_PARMNUM + SV_MAXCOPYLENGTH_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_MAXCOPYLENGTH_PARMNUM + SV_ENABLECOMPRESSION_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLECOMPRESSION_PARMNUM + SV_AUTOSHAREWKS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_AUTOSHAREWKS_PARMNUM + SV_AUTOSHARESERVER_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_AUTOSHARESERVER_PARMNUM + SV_ENABLESECURITYSIGNATURE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLESECURITYSIGNATURE_PARMNUM + SV_REQUIRESECURITYSIGNATURE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_REQUIRESECURITYSIGNATURE_PARMNUM + SV_MINCLIENTBUFFERSIZE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_MINCLIENTBUFFERSIZE_PARMNUM + SV_CONNECTIONNOSESSIONSTIMEOUT_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM + SV_IDLETHREADTIMEOUT_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_IDLETHREADTIMEOUT_PARMNUM + SV_ENABLEW9XSECURITYSIGNATURE_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENABLEW9XSECURITYSIGNATURE_PARMNUM + SV_ENFORCEKERBEROSREAUTHENTICATION_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_ENFORCEKERBEROSREAUTHENTICATION_PARMNUM + SV_DISABLEDOS_INFOLEVEL* = PARMNUM_BASE_INFOLEVEL + SV_DISABLEDOS_PARMNUM + SV_LOWDISKSPACEMINIMUM_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_LOWDISKSPACEMINIMUM_PARMNUM + SV_DISABLESTRICTNAMECHECKING_INFOLEVEL* = + PARMNUM_BASE_INFOLEVEL + SV_DISABLESTRICTNAMECHECKING_PARMNUM SVI1_NUM_ELEMENTS* = 5 SVI2_NUM_ELEMENTS* = 40 SVI3_NUM_ELEMENTS* = 44 @@ -3323,54 +3715,54 @@ SERVICE_MAXTIME* = 0x000000FF SERVICE_BASE* = 3050 SERVICE_UIC_NORMAL* = 0 - SERVICE_UIC_BADPARMVAL* = SERVICE_BASE+1 - SERVICE_UIC_MISSPARM* = SERVICE_BASE+2 - SERVICE_UIC_UNKPARM* = SERVICE_BASE+3 - SERVICE_UIC_RESOURCE* = SERVICE_BASE+4 - SERVICE_UIC_CONFIG* = SERVICE_BASE+5 - SERVICE_UIC_SYSTEM* = SERVICE_BASE+6 - SERVICE_UIC_INTERNAL* = SERVICE_BASE+7 - SERVICE_UIC_AMBIGPARM* = SERVICE_BASE+8 - SERVICE_UIC_DUPPARM* = SERVICE_BASE+9 - SERVICE_UIC_KILL* = SERVICE_BASE+10 - SERVICE_UIC_EXEC* = SERVICE_BASE+11 - SERVICE_UIC_SUBSERV* = SERVICE_BASE+12 - SERVICE_UIC_CONFLPARM* = SERVICE_BASE+13 - SERVICE_UIC_FILE* = SERVICE_BASE+14 + SERVICE_UIC_BADPARMVAL* = SERVICE_BASE + 1 + SERVICE_UIC_MISSPARM* = SERVICE_BASE + 2 + SERVICE_UIC_UNKPARM* = SERVICE_BASE + 3 + SERVICE_UIC_RESOURCE* = SERVICE_BASE + 4 + SERVICE_UIC_CONFIG* = SERVICE_BASE + 5 + SERVICE_UIC_SYSTEM* = SERVICE_BASE + 6 + SERVICE_UIC_INTERNAL* = SERVICE_BASE + 7 + SERVICE_UIC_AMBIGPARM* = SERVICE_BASE + 8 + SERVICE_UIC_DUPPARM* = SERVICE_BASE + 9 + SERVICE_UIC_KILL* = SERVICE_BASE + 10 + SERVICE_UIC_EXEC* = SERVICE_BASE + 11 + SERVICE_UIC_SUBSERV* = SERVICE_BASE + 12 + SERVICE_UIC_CONFLPARM* = SERVICE_BASE + 13 + SERVICE_UIC_FILE* = SERVICE_BASE + 14 SERVICE_UIC_M_NULL* = 0 - SERVICE_UIC_M_MEMORY* = SERVICE_BASE+20 - SERVICE_UIC_M_DISK* = SERVICE_BASE+21 - SERVICE_UIC_M_THREADS* = SERVICE_BASE+22 - SERVICE_UIC_M_PROCESSES* = SERVICE_BASE+23 - SERVICE_UIC_M_SECURITY* = SERVICE_BASE+24 - SERVICE_UIC_M_LANROOT* = SERVICE_BASE+25 - SERVICE_UIC_M_REDIR* = SERVICE_BASE+26 - SERVICE_UIC_M_SERVER* = SERVICE_BASE+27 - SERVICE_UIC_M_SEC_FILE_ERR* = SERVICE_BASE+28 - SERVICE_UIC_M_FILES* = SERVICE_BASE+29 - SERVICE_UIC_M_LOGS* = SERVICE_BASE+30 - SERVICE_UIC_M_LANGROUP* = SERVICE_BASE+31 - SERVICE_UIC_M_MSGNAME* = SERVICE_BASE+32 - SERVICE_UIC_M_ANNOUNCE* = SERVICE_BASE+33 - SERVICE_UIC_M_UAS* = SERVICE_BASE+34 - SERVICE_UIC_M_SERVER_SEC_ERR* = SERVICE_BASE+35 - SERVICE_UIC_M_WKSTA* = SERVICE_BASE+37 - SERVICE_UIC_M_ERRLOG* = SERVICE_BASE+38 - SERVICE_UIC_M_FILE_UW* = SERVICE_BASE+39 - SERVICE_UIC_M_ADDPAK* = SERVICE_BASE+40 - SERVICE_UIC_M_LAZY* = SERVICE_BASE+41 - SERVICE_UIC_M_UAS_MACHINE_ACCT* = SERVICE_BASE+42 - SERVICE_UIC_M_UAS_SERVERS_NMEMB* = SERVICE_BASE+43 - SERVICE_UIC_M_UAS_SERVERS_NOGRP* = SERVICE_BASE+44 - SERVICE_UIC_M_UAS_INVALID_ROLE* = SERVICE_BASE+45 - SERVICE_UIC_M_NETLOGON_NO_DC* = SERVICE_BASE+46 - SERVICE_UIC_M_NETLOGON_DC_CFLCT* = SERVICE_BASE+47 - SERVICE_UIC_M_NETLOGON_AUTH* = SERVICE_BASE+48 - SERVICE_UIC_M_UAS_PROLOG* = SERVICE_BASE+49 + SERVICE_UIC_M_MEMORY* = SERVICE_BASE + 20 + SERVICE_UIC_M_DISK* = SERVICE_BASE + 21 + SERVICE_UIC_M_THREADS* = SERVICE_BASE + 22 + SERVICE_UIC_M_PROCESSES* = SERVICE_BASE + 23 + SERVICE_UIC_M_SECURITY* = SERVICE_BASE + 24 + SERVICE_UIC_M_LANROOT* = SERVICE_BASE + 25 + SERVICE_UIC_M_REDIR* = SERVICE_BASE + 26 + SERVICE_UIC_M_SERVER* = SERVICE_BASE + 27 + SERVICE_UIC_M_SEC_FILE_ERR* = SERVICE_BASE + 28 + SERVICE_UIC_M_FILES* = SERVICE_BASE + 29 + SERVICE_UIC_M_LOGS* = SERVICE_BASE + 30 + SERVICE_UIC_M_LANGROUP* = SERVICE_BASE + 31 + SERVICE_UIC_M_MSGNAME* = SERVICE_BASE + 32 + SERVICE_UIC_M_ANNOUNCE* = SERVICE_BASE + 33 + SERVICE_UIC_M_UAS* = SERVICE_BASE + 34 + SERVICE_UIC_M_SERVER_SEC_ERR* = SERVICE_BASE + 35 + SERVICE_UIC_M_WKSTA* = SERVICE_BASE + 37 + SERVICE_UIC_M_ERRLOG* = SERVICE_BASE + 38 + SERVICE_UIC_M_FILE_UW* = SERVICE_BASE + 39 + SERVICE_UIC_M_ADDPAK* = SERVICE_BASE + 40 + SERVICE_UIC_M_LAZY* = SERVICE_BASE + 41 + SERVICE_UIC_M_UAS_MACHINE_ACCT* = SERVICE_BASE + 42 + SERVICE_UIC_M_UAS_SERVERS_NMEMB* = SERVICE_BASE + 43 + SERVICE_UIC_M_UAS_SERVERS_NOGRP* = SERVICE_BASE + 44 + SERVICE_UIC_M_UAS_INVALID_ROLE* = SERVICE_BASE + 45 + SERVICE_UIC_M_NETLOGON_NO_DC* = SERVICE_BASE + 46 + SERVICE_UIC_M_NETLOGON_DC_CFLCT* = SERVICE_BASE + 47 + SERVICE_UIC_M_NETLOGON_AUTH* = SERVICE_BASE + 48 + SERVICE_UIC_M_UAS_PROLOG* = SERVICE_BASE + 49 SERVICE2_BASE* = 5600 - SERVICE_UIC_M_NETLOGON_MPATH* = SERVICE2_BASE+0 - SERVICE_UIC_M_LSA_MACHINE_ACCT* = SERVICE2_BASE+1 - SERVICE_UIC_M_DATABASE_ERROR* = SERVICE2_BASE+2 + SERVICE_UIC_M_NETLOGON_MPATH* = SERVICE2_BASE + 0 + SERVICE_UIC_M_LSA_MACHINE_ACCT* = SERVICE2_BASE + 1 + SERVICE_UIC_M_DATABASE_ERROR* = SERVICE2_BASE + 2 USE_NOFORCE* = 0 USE_FORCE* = 1 USE_LOTS_OF_FORCE* = 2 @@ -3453,227 +3845,227 @@ LOGFLAGS_BACKWARD* = 0x1 LOGFLAGS_SEEK* = 0x2 ERRLOG_BASE* = 3100 - NELOG_Internal_Error* = ERRLOG_BASE+0 - NELOG_Resource_Shortage* = ERRLOG_BASE+1 - NELOG_Unable_To_Lock_Segment* = ERRLOG_BASE+2 - NELOG_Unable_To_Unlock_Segment* = ERRLOG_BASE+3 - NELOG_Uninstall_Service* = ERRLOG_BASE+4 - NELOG_Init_Exec_Fail* = ERRLOG_BASE+5 - NELOG_Ncb_Error* = ERRLOG_BASE+6 - NELOG_Net_Not_Started* = ERRLOG_BASE+7 - NELOG_Ioctl_Error* = ERRLOG_BASE+8 - NELOG_System_Semaphore* = ERRLOG_BASE+9 - NELOG_Init_OpenCreate_Err* = ERRLOG_BASE+10 - NELOG_NetBios* = ERRLOG_BASE+11 - NELOG_SMB_Illegal* = ERRLOG_BASE+12 - NELOG_Service_Fail* = ERRLOG_BASE+13 - NELOG_Entries_Lost* = ERRLOG_BASE+14 - NELOG_Init_Seg_Overflow* = ERRLOG_BASE+20 - NELOG_Srv_No_Mem_Grow* = ERRLOG_BASE+21 - NELOG_Access_File_Bad* = ERRLOG_BASE+22 - NELOG_Srvnet_Not_Started* = ERRLOG_BASE+23 - NELOG_Init_Chardev_Err* = ERRLOG_BASE+24 - NELOG_Remote_API* = ERRLOG_BASE+25 - NELOG_Ncb_TooManyErr* = ERRLOG_BASE+26 - NELOG_Mailslot_err* = ERRLOG_BASE+27 - NELOG_ReleaseMem_Alert* = ERRLOG_BASE+28 - NELOG_AT_cannot_write* = ERRLOG_BASE+29 - NELOG_Cant_Make_Msg_File* = ERRLOG_BASE+30 - NELOG_Exec_Netservr_NoMem* = ERRLOG_BASE+31 - NELOG_Server_Lock_Failure* = ERRLOG_BASE+32 - NELOG_Msg_Shutdown* = ERRLOG_BASE+40 - NELOG_Msg_Sem_Shutdown* = ERRLOG_BASE+41 - NELOG_Msg_Log_Err* = ERRLOG_BASE+50 - NELOG_VIO_POPUP_ERR* = ERRLOG_BASE+51 - NELOG_Msg_Unexpected_SMB_Type* = ERRLOG_BASE+52 - NELOG_Wksta_Infoseg* = ERRLOG_BASE+60 - NELOG_Wksta_Compname* = ERRLOG_BASE+61 - NELOG_Wksta_BiosThreadFailure* = ERRLOG_BASE+62 - NELOG_Wksta_IniSeg* = ERRLOG_BASE+63 - NELOG_Wksta_HostTab_Full* = ERRLOG_BASE+64 - NELOG_Wksta_Bad_Mailslot_SMB* = ERRLOG_BASE+65 - NELOG_Wksta_UASInit* = ERRLOG_BASE+66 - NELOG_Wksta_SSIRelogon* = ERRLOG_BASE+67 - NELOG_Build_Name* = ERRLOG_BASE+70 - NELOG_Name_Expansion* = ERRLOG_BASE+71 - NELOG_Message_Send* = ERRLOG_BASE+72 - NELOG_Mail_Slt_Err* = ERRLOG_BASE+73 - NELOG_AT_cannot_read* = ERRLOG_BASE+74 - NELOG_AT_sched_err* = ERRLOG_BASE+75 - NELOG_AT_schedule_file_created* = ERRLOG_BASE+76 - NELOG_Srvnet_NB_Open* = ERRLOG_BASE+77 - NELOG_AT_Exec_Err* = ERRLOG_BASE+78 - NELOG_Lazy_Write_Err* = ERRLOG_BASE+80 - NELOG_HotFix* = ERRLOG_BASE+81 - NELOG_HardErr_From_Server* = ERRLOG_BASE+82 - NELOG_LocalSecFail1* = ERRLOG_BASE+83 - NELOG_LocalSecFail2* = ERRLOG_BASE+84 - NELOG_LocalSecFail3* = ERRLOG_BASE+85 - NELOG_LocalSecGeneralFail* = ERRLOG_BASE+86 - NELOG_NetWkSta_Internal_Error* = ERRLOG_BASE+90 - NELOG_NetWkSta_No_Resource* = ERRLOG_BASE+91 - NELOG_NetWkSta_SMB_Err* = ERRLOG_BASE+92 - NELOG_NetWkSta_VC_Err* = ERRLOG_BASE+93 - NELOG_NetWkSta_Stuck_VC_Err* = ERRLOG_BASE+94 - NELOG_NetWkSta_NCB_Err* = ERRLOG_BASE+95 - NELOG_NetWkSta_Write_Behind_Err* = ERRLOG_BASE+96 - NELOG_NetWkSta_Reset_Err* = ERRLOG_BASE+97 - NELOG_NetWkSta_Too_Many* = ERRLOG_BASE+98 - NELOG_Srv_Thread_Failure* = ERRLOG_BASE+104 - NELOG_Srv_Close_Failure* = ERRLOG_BASE+105 - NELOG_ReplUserCurDir* = ERRLOG_BASE+106 - NELOG_ReplCannotMasterDir* = ERRLOG_BASE+107 - NELOG_ReplUpdateError* = ERRLOG_BASE+108 - NELOG_ReplLostMaster* = ERRLOG_BASE+109 - NELOG_NetlogonAuthDCFail* = ERRLOG_BASE+110 - NELOG_ReplLogonFailed* = ERRLOG_BASE+111 - NELOG_ReplNetErr* = ERRLOG_BASE+112 - NELOG_ReplMaxFiles* = ERRLOG_BASE+113 - NELOG_ReplMaxTreeDepth* = ERRLOG_BASE+114 - NELOG_ReplBadMsg* = ERRLOG_BASE+115 - NELOG_ReplSysErr* = ERRLOG_BASE+116 - NELOG_ReplUserLoged* = ERRLOG_BASE+117 - NELOG_ReplBadImport* = ERRLOG_BASE+118 - NELOG_ReplBadExport* = ERRLOG_BASE+119 - NELOG_ReplSignalFileErr* = ERRLOG_BASE+120 - NELOG_DiskFT* = ERRLOG_BASE+121 - NELOG_ReplAccessDenied* = ERRLOG_BASE+122 - NELOG_NetlogonFailedPrimary* = ERRLOG_BASE+123 - NELOG_NetlogonPasswdSetFailed* = ERRLOG_BASE+124 - NELOG_NetlogonTrackingError* = ERRLOG_BASE+125 - NELOG_NetlogonSyncError* = ERRLOG_BASE+126 - NELOG_NetlogonRequireSignOrSealError* = ERRLOG_BASE+127 - NELOG_UPS_PowerOut* = ERRLOG_BASE+130 - NELOG_UPS_Shutdown* = ERRLOG_BASE+131 - NELOG_UPS_CmdFileError* = ERRLOG_BASE+132 - NELOG_UPS_CannotOpenDriver* = ERRLOG_BASE+133 - NELOG_UPS_PowerBack* = ERRLOG_BASE+134 - NELOG_UPS_CmdFileConfig* = ERRLOG_BASE+135 - NELOG_UPS_CmdFileExec* = ERRLOG_BASE+136 - NELOG_Missing_Parameter* = ERRLOG_BASE+150 - NELOG_Invalid_Config_Line* = ERRLOG_BASE+151 - NELOG_Invalid_Config_File* = ERRLOG_BASE+152 - NELOG_File_Changed* = ERRLOG_BASE+153 - NELOG_Files_Dont_Fit* = ERRLOG_BASE+154 - NELOG_Wrong_DLL_Version* = ERRLOG_BASE+155 - NELOG_Error_in_DLL* = ERRLOG_BASE+156 - NELOG_System_Error* = ERRLOG_BASE+157 - NELOG_FT_ErrLog_Too_Large* = ERRLOG_BASE+158 - NELOG_FT_Update_In_Progress* = ERRLOG_BASE+159 - NELOG_Joined_Domain* = ERRLOG_BASE+160 - NELOG_Joined_Workgroup* = ERRLOG_BASE+161 - NELOG_OEM_Code* = ERRLOG_BASE+199 + NELOG_Internal_Error* = ERRLOG_BASE + 0 + NELOG_Resource_Shortage* = ERRLOG_BASE + 1 + NELOG_Unable_To_Lock_Segment* = ERRLOG_BASE + 2 + NELOG_Unable_To_Unlock_Segment* = ERRLOG_BASE + 3 + NELOG_Uninstall_Service* = ERRLOG_BASE + 4 + NELOG_Init_Exec_Fail* = ERRLOG_BASE + 5 + NELOG_Ncb_Error* = ERRLOG_BASE + 6 + NELOG_Net_Not_Started* = ERRLOG_BASE + 7 + NELOG_Ioctl_Error* = ERRLOG_BASE + 8 + NELOG_System_Semaphore* = ERRLOG_BASE + 9 + NELOG_Init_OpenCreate_Err* = ERRLOG_BASE + 10 + NELOG_NetBios* = ERRLOG_BASE + 11 + NELOG_SMB_Illegal* = ERRLOG_BASE + 12 + NELOG_Service_Fail* = ERRLOG_BASE + 13 + NELOG_Entries_Lost* = ERRLOG_BASE + 14 + NELOG_Init_Seg_Overflow* = ERRLOG_BASE + 20 + NELOG_Srv_No_Mem_Grow* = ERRLOG_BASE + 21 + NELOG_Access_File_Bad* = ERRLOG_BASE + 22 + NELOG_Srvnet_Not_Started* = ERRLOG_BASE + 23 + NELOG_Init_Chardev_Err* = ERRLOG_BASE + 24 + NELOG_Remote_API* = ERRLOG_BASE + 25 + NELOG_Ncb_TooManyErr* = ERRLOG_BASE + 26 + NELOG_Mailslot_err* = ERRLOG_BASE + 27 + NELOG_ReleaseMem_Alert* = ERRLOG_BASE + 28 + NELOG_AT_cannot_write* = ERRLOG_BASE + 29 + NELOG_Cant_Make_Msg_File* = ERRLOG_BASE + 30 + NELOG_Exec_Netservr_NoMem* = ERRLOG_BASE + 31 + NELOG_Server_Lock_Failure* = ERRLOG_BASE + 32 + NELOG_Msg_Shutdown* = ERRLOG_BASE + 40 + NELOG_Msg_Sem_Shutdown* = ERRLOG_BASE + 41 + NELOG_Msg_Log_Err* = ERRLOG_BASE + 50 + NELOG_VIO_POPUP_ERR* = ERRLOG_BASE + 51 + NELOG_Msg_Unexpected_SMB_Type* = ERRLOG_BASE + 52 + NELOG_Wksta_Infoseg* = ERRLOG_BASE + 60 + NELOG_Wksta_Compname* = ERRLOG_BASE + 61 + NELOG_Wksta_BiosThreadFailure* = ERRLOG_BASE + 62 + NELOG_Wksta_IniSeg* = ERRLOG_BASE + 63 + NELOG_Wksta_HostTab_Full* = ERRLOG_BASE + 64 + NELOG_Wksta_Bad_Mailslot_SMB* = ERRLOG_BASE + 65 + NELOG_Wksta_UASInit* = ERRLOG_BASE + 66 + NELOG_Wksta_SSIRelogon* = ERRLOG_BASE + 67 + NELOG_Build_Name* = ERRLOG_BASE + 70 + NELOG_Name_Expansion* = ERRLOG_BASE + 71 + NELOG_Message_Send* = ERRLOG_BASE + 72 + NELOG_Mail_Slt_Err* = ERRLOG_BASE + 73 + NELOG_AT_cannot_read* = ERRLOG_BASE + 74 + NELOG_AT_sched_err* = ERRLOG_BASE + 75 + NELOG_AT_schedule_file_created* = ERRLOG_BASE + 76 + NELOG_Srvnet_NB_Open* = ERRLOG_BASE + 77 + NELOG_AT_Exec_Err* = ERRLOG_BASE + 78 + NELOG_Lazy_Write_Err* = ERRLOG_BASE + 80 + NELOG_HotFix* = ERRLOG_BASE + 81 + NELOG_HardErr_From_Server* = ERRLOG_BASE + 82 + NELOG_LocalSecFail1* = ERRLOG_BASE + 83 + NELOG_LocalSecFail2* = ERRLOG_BASE + 84 + NELOG_LocalSecFail3* = ERRLOG_BASE + 85 + NELOG_LocalSecGeneralFail* = ERRLOG_BASE + 86 + NELOG_NetWkSta_Internal_Error* = ERRLOG_BASE + 90 + NELOG_NetWkSta_No_Resource* = ERRLOG_BASE + 91 + NELOG_NetWkSta_SMB_Err* = ERRLOG_BASE + 92 + NELOG_NetWkSta_VC_Err* = ERRLOG_BASE + 93 + NELOG_NetWkSta_Stuck_VC_Err* = ERRLOG_BASE + 94 + NELOG_NetWkSta_NCB_Err* = ERRLOG_BASE + 95 + NELOG_NetWkSta_Write_Behind_Err* = ERRLOG_BASE + 96 + NELOG_NetWkSta_Reset_Err* = ERRLOG_BASE + 97 + NELOG_NetWkSta_Too_Many* = ERRLOG_BASE + 98 + NELOG_Srv_Thread_Failure* = ERRLOG_BASE + 104 + NELOG_Srv_Close_Failure* = ERRLOG_BASE + 105 + NELOG_ReplUserCurDir* = ERRLOG_BASE + 106 + NELOG_ReplCannotMasterDir* = ERRLOG_BASE + 107 + NELOG_ReplUpdateError* = ERRLOG_BASE + 108 + NELOG_ReplLostMaster* = ERRLOG_BASE + 109 + NELOG_NetlogonAuthDCFail* = ERRLOG_BASE + 110 + NELOG_ReplLogonFailed* = ERRLOG_BASE + 111 + NELOG_ReplNetErr* = ERRLOG_BASE + 112 + NELOG_ReplMaxFiles* = ERRLOG_BASE + 113 + NELOG_ReplMaxTreeDepth* = ERRLOG_BASE + 114 + NELOG_ReplBadMsg* = ERRLOG_BASE + 115 + NELOG_ReplSysErr* = ERRLOG_BASE + 116 + NELOG_ReplUserLoged* = ERRLOG_BASE + 117 + NELOG_ReplBadImport* = ERRLOG_BASE + 118 + NELOG_ReplBadExport* = ERRLOG_BASE + 119 + NELOG_ReplSignalFileErr* = ERRLOG_BASE + 120 + NELOG_DiskFT* = ERRLOG_BASE + 121 + NELOG_ReplAccessDenied* = ERRLOG_BASE + 122 + NELOG_NetlogonFailedPrimary* = ERRLOG_BASE + 123 + NELOG_NetlogonPasswdSetFailed* = ERRLOG_BASE + 124 + NELOG_NetlogonTrackingError* = ERRLOG_BASE + 125 + NELOG_NetlogonSyncError* = ERRLOG_BASE + 126 + NELOG_NetlogonRequireSignOrSealError* = ERRLOG_BASE + 127 + NELOG_UPS_PowerOut* = ERRLOG_BASE + 130 + NELOG_UPS_Shutdown* = ERRLOG_BASE + 131 + NELOG_UPS_CmdFileError* = ERRLOG_BASE + 132 + NELOG_UPS_CannotOpenDriver* = ERRLOG_BASE + 133 + NELOG_UPS_PowerBack* = ERRLOG_BASE + 134 + NELOG_UPS_CmdFileConfig* = ERRLOG_BASE + 135 + NELOG_UPS_CmdFileExec* = ERRLOG_BASE + 136 + NELOG_Missing_Parameter* = ERRLOG_BASE + 150 + NELOG_Invalid_Config_Line* = ERRLOG_BASE + 151 + NELOG_Invalid_Config_File* = ERRLOG_BASE + 152 + NELOG_File_Changed* = ERRLOG_BASE + 153 + NELOG_Files_Dont_Fit* = ERRLOG_BASE + 154 + NELOG_Wrong_DLL_Version* = ERRLOG_BASE + 155 + NELOG_Error_in_DLL* = ERRLOG_BASE + 156 + NELOG_System_Error* = ERRLOG_BASE + 157 + NELOG_FT_ErrLog_Too_Large* = ERRLOG_BASE + 158 + NELOG_FT_Update_In_Progress* = ERRLOG_BASE + 159 + NELOG_Joined_Domain* = ERRLOG_BASE + 160 + NELOG_Joined_Workgroup* = ERRLOG_BASE + 161 + NELOG_OEM_Code* = ERRLOG_BASE + 199 ERRLOG2_BASE* = 5700 - NELOG_NetlogonSSIInitError* = ERRLOG2_BASE+0 - NELOG_NetlogonFailedToUpdateTrustList* = ERRLOG2_BASE+1 - NELOG_NetlogonFailedToAddRpcInterface* = ERRLOG2_BASE+2 - NELOG_NetlogonFailedToReadMailslot* = ERRLOG2_BASE+3 - NELOG_NetlogonFailedToRegisterSC* = ERRLOG2_BASE+4 - NELOG_NetlogonChangeLogCorrupt* = ERRLOG2_BASE+5 - NELOG_NetlogonFailedToCreateShare* = ERRLOG2_BASE+6 - NELOG_NetlogonDownLevelLogonFailed* = ERRLOG2_BASE+7 - NELOG_NetlogonDownLevelLogoffFailed* = ERRLOG2_BASE+8 - NELOG_NetlogonNTLogonFailed* = ERRLOG2_BASE+9 - NELOG_NetlogonNTLogoffFailed* = ERRLOG2_BASE+10 - NELOG_NetlogonPartialSyncCallSuccess* = ERRLOG2_BASE+11 - NELOG_NetlogonPartialSyncCallFailed* = ERRLOG2_BASE+12 - NELOG_NetlogonFullSyncCallSuccess* = ERRLOG2_BASE+13 - NELOG_NetlogonFullSyncCallFailed* = ERRLOG2_BASE+14 - NELOG_NetlogonPartialSyncSuccess* = ERRLOG2_BASE+15 - NELOG_NetlogonPartialSyncFailed* = ERRLOG2_BASE+16 - NELOG_NetlogonFullSyncSuccess* = ERRLOG2_BASE+17 - NELOG_NetlogonFullSyncFailed* = ERRLOG2_BASE+18 - NELOG_NetlogonAuthNoDomainController* = ERRLOG2_BASE+19 - NELOG_NetlogonAuthNoTrustLsaSecret* = ERRLOG2_BASE+20 - NELOG_NetlogonAuthNoTrustSamAccount* = ERRLOG2_BASE+21 - NELOG_NetlogonServerAuthFailed* = ERRLOG2_BASE+22 - NELOG_NetlogonServerAuthNoTrustSamAccount* = ERRLOG2_BASE+23 - NELOG_FailedToRegisterSC* = ERRLOG2_BASE+24 - NELOG_FailedToSetServiceStatus* = ERRLOG2_BASE+25 - NELOG_FailedToGetComputerName* = ERRLOG2_BASE+26 - NELOG_DriverNotLoaded* = ERRLOG2_BASE+27 - NELOG_NoTranportLoaded* = ERRLOG2_BASE+28 - NELOG_NetlogonFailedDomainDelta* = ERRLOG2_BASE+29 - NELOG_NetlogonFailedGlobalGroupDelta* = ERRLOG2_BASE+30 - NELOG_NetlogonFailedLocalGroupDelta* = ERRLOG2_BASE+31 - NELOG_NetlogonFailedUserDelta* = ERRLOG2_BASE+32 - NELOG_NetlogonFailedPolicyDelta* = ERRLOG2_BASE+33 - NELOG_NetlogonFailedTrustedDomainDelta* = ERRLOG2_BASE+34 - NELOG_NetlogonFailedAccountDelta* = ERRLOG2_BASE+35 - NELOG_NetlogonFailedSecretDelta* = ERRLOG2_BASE+36 - NELOG_NetlogonSystemError* = ERRLOG2_BASE+37 - NELOG_NetlogonDuplicateMachineAccounts* = ERRLOG2_BASE+38 - NELOG_NetlogonTooManyGlobalGroups* = ERRLOG2_BASE+39 - NELOG_NetlogonBrowserDriver* = ERRLOG2_BASE+40 - NELOG_NetlogonAddNameFailure* = ERRLOG2_BASE+41 - NELOG_RplMessages* = ERRLOG2_BASE+42 - NELOG_RplXnsBoot* = ERRLOG2_BASE+43 - NELOG_RplSystem* = ERRLOG2_BASE+44 - NELOG_RplWkstaTimeout* = ERRLOG2_BASE+45 - NELOG_RplWkstaFileOpen* = ERRLOG2_BASE+46 - NELOG_RplWkstaFileRead* = ERRLOG2_BASE+47 - NELOG_RplWkstaMemory* = ERRLOG2_BASE+48 - NELOG_RplWkstaFileChecksum* = ERRLOG2_BASE+49 - NELOG_RplWkstaFileLineCount* = ERRLOG2_BASE+50 - NELOG_RplWkstaBbcFile* = ERRLOG2_BASE+51 - NELOG_RplWkstaFileSize* = ERRLOG2_BASE+52 - NELOG_RplWkstaInternal* = ERRLOG2_BASE+53 - NELOG_RplWkstaWrongVersion* = ERRLOG2_BASE+54 - NELOG_RplWkstaNetwork* = ERRLOG2_BASE+55 - NELOG_RplAdapterResource* = ERRLOG2_BASE+56 - NELOG_RplFileCopy* = ERRLOG2_BASE+57 - NELOG_RplFileDelete* = ERRLOG2_BASE+58 - NELOG_RplFilePerms* = ERRLOG2_BASE+59 - NELOG_RplCheckConfigs* = ERRLOG2_BASE+60 - NELOG_RplCreateProfiles* = ERRLOG2_BASE+61 - NELOG_RplRegistry* = ERRLOG2_BASE+62 - NELOG_RplReplaceRPLDISK* = ERRLOG2_BASE+63 - NELOG_RplCheckSecurity* = ERRLOG2_BASE+64 - NELOG_RplBackupDatabase* = ERRLOG2_BASE+65 - NELOG_RplInitDatabase* = ERRLOG2_BASE+66 - NELOG_RplRestoreDatabaseFailure* = ERRLOG2_BASE+67 - NELOG_RplRestoreDatabaseSuccess* = ERRLOG2_BASE+68 - NELOG_RplInitRestoredDatabase* = ERRLOG2_BASE+69 - NELOG_NetlogonSessionTypeWrong* = ERRLOG2_BASE+70 - NELOG_RplUpgradeDBTo40* = ERRLOG2_BASE+71 - NELOG_NetlogonLanmanBdcsNotAllowed* = ERRLOG2_BASE+72 - NELOG_NetlogonNoDynamicDns* = ERRLOG2_BASE+73 - NELOG_NetlogonDynamicDnsRegisterFailure* = ERRLOG2_BASE+74 - NELOG_NetlogonDynamicDnsDeregisterFailure* = ERRLOG2_BASE+75 - NELOG_NetlogonFailedFileCreate* = ERRLOG2_BASE+76 - NELOG_NetlogonGetSubnetToSite* = ERRLOG2_BASE+77 - NELOG_NetlogonNoSiteForClient* = ERRLOG2_BASE+78 - NELOG_NetlogonBadSiteName* = ERRLOG2_BASE+79 - NELOG_NetlogonBadSubnetName* = ERRLOG2_BASE+80 - NELOG_NetlogonDynamicDnsServerFailure* = ERRLOG2_BASE+81 - NELOG_NetlogonDynamicDnsFailure* = ERRLOG2_BASE+82 - NELOG_NetlogonRpcCallCancelled* = ERRLOG2_BASE+83 - NELOG_NetlogonDcSiteCovered* = ERRLOG2_BASE+84 - NELOG_NetlogonDcSiteNotCovered* = ERRLOG2_BASE+85 - NELOG_NetlogonGcSiteCovered* = ERRLOG2_BASE+86 - NELOG_NetlogonGcSiteNotCovered* = ERRLOG2_BASE+87 - NELOG_NetlogonFailedSpnUpdate* = ERRLOG2_BASE+88 - NELOG_NetlogonFailedDnsHostNameUpdate* = ERRLOG2_BASE+89 - NELOG_NetlogonAuthNoUplevelDomainController* = ERRLOG2_BASE+90 - NELOG_NetlogonAuthDomainDowngraded* = ERRLOG2_BASE+91 - NELOG_NetlogonNdncSiteCovered* = ERRLOG2_BASE+92 - NELOG_NetlogonNdncSiteNotCovered* = ERRLOG2_BASE+93 - NELOG_NetlogonDcOldSiteCovered* = ERRLOG2_BASE+94 - NELOG_NetlogonDcSiteNotCoveredAuto* = ERRLOG2_BASE+95 - NELOG_NetlogonGcOldSiteCovered* = ERRLOG2_BASE+96 - NELOG_NetlogonGcSiteNotCoveredAuto* = ERRLOG2_BASE+97 - NELOG_NetlogonNdncOldSiteCovered* = ERRLOG2_BASE+98 - NELOG_NetlogonNdncSiteNotCoveredAuto* = ERRLOG2_BASE+99 - NELOG_NetlogonSpnMultipleSamAccountNames* = ERRLOG2_BASE+100 - NELOG_NetlogonSpnCrackNamesFailure* = ERRLOG2_BASE+101 - NELOG_NetlogonNoAddressToSiteMapping* = ERRLOG2_BASE+102 - NELOG_NetlogonInvalidGenericParameterValue* = ERRLOG2_BASE+103 - NELOG_NetlogonInvalidDwordParameterValue* = ERRLOG2_BASE+104 - NELOG_NetlogonServerAuthFailedNoAccount* = ERRLOG2_BASE+105 - NELOG_NetlogonNoDynamicDnsManual* = ERRLOG2_BASE+106 - NELOG_NetlogonNoSiteForClients* = ERRLOG2_BASE+107 - NELOG_NetlogonDnsDeregAborted* = ERRLOG2_BASE+108 - NELOG_NetlogonRpcPortRequestFailure* = ERRLOG2_BASE+109 + NELOG_NetlogonSSIInitError* = ERRLOG2_BASE + 0 + NELOG_NetlogonFailedToUpdateTrustList* = ERRLOG2_BASE + 1 + NELOG_NetlogonFailedToAddRpcInterface* = ERRLOG2_BASE + 2 + NELOG_NetlogonFailedToReadMailslot* = ERRLOG2_BASE + 3 + NELOG_NetlogonFailedToRegisterSC* = ERRLOG2_BASE + 4 + NELOG_NetlogonChangeLogCorrupt* = ERRLOG2_BASE + 5 + NELOG_NetlogonFailedToCreateShare* = ERRLOG2_BASE + 6 + NELOG_NetlogonDownLevelLogonFailed* = ERRLOG2_BASE + 7 + NELOG_NetlogonDownLevelLogoffFailed* = ERRLOG2_BASE + 8 + NELOG_NetlogonNTLogonFailed* = ERRLOG2_BASE + 9 + NELOG_NetlogonNTLogoffFailed* = ERRLOG2_BASE + 10 + NELOG_NetlogonPartialSyncCallSuccess* = ERRLOG2_BASE + 11 + NELOG_NetlogonPartialSyncCallFailed* = ERRLOG2_BASE + 12 + NELOG_NetlogonFullSyncCallSuccess* = ERRLOG2_BASE + 13 + NELOG_NetlogonFullSyncCallFailed* = ERRLOG2_BASE + 14 + NELOG_NetlogonPartialSyncSuccess* = ERRLOG2_BASE + 15 + NELOG_NetlogonPartialSyncFailed* = ERRLOG2_BASE + 16 + NELOG_NetlogonFullSyncSuccess* = ERRLOG2_BASE + 17 + NELOG_NetlogonFullSyncFailed* = ERRLOG2_BASE + 18 + NELOG_NetlogonAuthNoDomainController* = ERRLOG2_BASE + 19 + NELOG_NetlogonAuthNoTrustLsaSecret* = ERRLOG2_BASE + 20 + NELOG_NetlogonAuthNoTrustSamAccount* = ERRLOG2_BASE + 21 + NELOG_NetlogonServerAuthFailed* = ERRLOG2_BASE + 22 + NELOG_NetlogonServerAuthNoTrustSamAccount* = ERRLOG2_BASE + 23 + NELOG_FailedToRegisterSC* = ERRLOG2_BASE + 24 + NELOG_FailedToSetServiceStatus* = ERRLOG2_BASE + 25 + NELOG_FailedToGetComputerName* = ERRLOG2_BASE + 26 + NELOG_DriverNotLoaded* = ERRLOG2_BASE + 27 + NELOG_NoTranportLoaded* = ERRLOG2_BASE + 28 + NELOG_NetlogonFailedDomainDelta* = ERRLOG2_BASE + 29 + NELOG_NetlogonFailedGlobalGroupDelta* = ERRLOG2_BASE + 30 + NELOG_NetlogonFailedLocalGroupDelta* = ERRLOG2_BASE + 31 + NELOG_NetlogonFailedUserDelta* = ERRLOG2_BASE + 32 + NELOG_NetlogonFailedPolicyDelta* = ERRLOG2_BASE + 33 + NELOG_NetlogonFailedTrustedDomainDelta* = ERRLOG2_BASE + 34 + NELOG_NetlogonFailedAccountDelta* = ERRLOG2_BASE + 35 + NELOG_NetlogonFailedSecretDelta* = ERRLOG2_BASE + 36 + NELOG_NetlogonSystemError* = ERRLOG2_BASE + 37 + NELOG_NetlogonDuplicateMachineAccounts* = ERRLOG2_BASE + 38 + NELOG_NetlogonTooManyGlobalGroups* = ERRLOG2_BASE + 39 + NELOG_NetlogonBrowserDriver* = ERRLOG2_BASE + 40 + NELOG_NetlogonAddNameFailure* = ERRLOG2_BASE + 41 + NELOG_RplMessages* = ERRLOG2_BASE + 42 + NELOG_RplXnsBoot* = ERRLOG2_BASE + 43 + NELOG_RplSystem* = ERRLOG2_BASE + 44 + NELOG_RplWkstaTimeout* = ERRLOG2_BASE + 45 + NELOG_RplWkstaFileOpen* = ERRLOG2_BASE + 46 + NELOG_RplWkstaFileRead* = ERRLOG2_BASE + 47 + NELOG_RplWkstaMemory* = ERRLOG2_BASE + 48 + NELOG_RplWkstaFileChecksum* = ERRLOG2_BASE + 49 + NELOG_RplWkstaFileLineCount* = ERRLOG2_BASE + 50 + NELOG_RplWkstaBbcFile* = ERRLOG2_BASE + 51 + NELOG_RplWkstaFileSize* = ERRLOG2_BASE + 52 + NELOG_RplWkstaInternal* = ERRLOG2_BASE + 53 + NELOG_RplWkstaWrongVersion* = ERRLOG2_BASE + 54 + NELOG_RplWkstaNetwork* = ERRLOG2_BASE + 55 + NELOG_RplAdapterResource* = ERRLOG2_BASE + 56 + NELOG_RplFileCopy* = ERRLOG2_BASE + 57 + NELOG_RplFileDelete* = ERRLOG2_BASE + 58 + NELOG_RplFilePerms* = ERRLOG2_BASE + 59 + NELOG_RplCheckConfigs* = ERRLOG2_BASE + 60 + NELOG_RplCreateProfiles* = ERRLOG2_BASE + 61 + NELOG_RplRegistry* = ERRLOG2_BASE + 62 + NELOG_RplReplaceRPLDISK* = ERRLOG2_BASE + 63 + NELOG_RplCheckSecurity* = ERRLOG2_BASE + 64 + NELOG_RplBackupDatabase* = ERRLOG2_BASE + 65 + NELOG_RplInitDatabase* = ERRLOG2_BASE + 66 + NELOG_RplRestoreDatabaseFailure* = ERRLOG2_BASE + 67 + NELOG_RplRestoreDatabaseSuccess* = ERRLOG2_BASE + 68 + NELOG_RplInitRestoredDatabase* = ERRLOG2_BASE + 69 + NELOG_NetlogonSessionTypeWrong* = ERRLOG2_BASE + 70 + NELOG_RplUpgradeDBTo40* = ERRLOG2_BASE + 71 + NELOG_NetlogonLanmanBdcsNotAllowed* = ERRLOG2_BASE + 72 + NELOG_NetlogonNoDynamicDns* = ERRLOG2_BASE + 73 + NELOG_NetlogonDynamicDnsRegisterFailure* = ERRLOG2_BASE + 74 + NELOG_NetlogonDynamicDnsDeregisterFailure* = ERRLOG2_BASE + 75 + NELOG_NetlogonFailedFileCreate* = ERRLOG2_BASE + 76 + NELOG_NetlogonGetSubnetToSite* = ERRLOG2_BASE + 77 + NELOG_NetlogonNoSiteForClient* = ERRLOG2_BASE + 78 + NELOG_NetlogonBadSiteName* = ERRLOG2_BASE + 79 + NELOG_NetlogonBadSubnetName* = ERRLOG2_BASE + 80 + NELOG_NetlogonDynamicDnsServerFailure* = ERRLOG2_BASE + 81 + NELOG_NetlogonDynamicDnsFailure* = ERRLOG2_BASE + 82 + NELOG_NetlogonRpcCallCancelled* = ERRLOG2_BASE + 83 + NELOG_NetlogonDcSiteCovered* = ERRLOG2_BASE + 84 + NELOG_NetlogonDcSiteNotCovered* = ERRLOG2_BASE + 85 + NELOG_NetlogonGcSiteCovered* = ERRLOG2_BASE + 86 + NELOG_NetlogonGcSiteNotCovered* = ERRLOG2_BASE + 87 + NELOG_NetlogonFailedSpnUpdate* = ERRLOG2_BASE + 88 + NELOG_NetlogonFailedDnsHostNameUpdate* = ERRLOG2_BASE + 89 + NELOG_NetlogonAuthNoUplevelDomainController* = ERRLOG2_BASE + 90 + NELOG_NetlogonAuthDomainDowngraded* = ERRLOG2_BASE + 91 + NELOG_NetlogonNdncSiteCovered* = ERRLOG2_BASE + 92 + NELOG_NetlogonNdncSiteNotCovered* = ERRLOG2_BASE + 93 + NELOG_NetlogonDcOldSiteCovered* = ERRLOG2_BASE + 94 + NELOG_NetlogonDcSiteNotCoveredAuto* = ERRLOG2_BASE + 95 + NELOG_NetlogonGcOldSiteCovered* = ERRLOG2_BASE + 96 + NELOG_NetlogonGcSiteNotCoveredAuto* = ERRLOG2_BASE + 97 + NELOG_NetlogonNdncOldSiteCovered* = ERRLOG2_BASE + 98 + NELOG_NetlogonNdncSiteNotCoveredAuto* = ERRLOG2_BASE + 99 + NELOG_NetlogonSpnMultipleSamAccountNames* = ERRLOG2_BASE + 100 + NELOG_NetlogonSpnCrackNamesFailure* = ERRLOG2_BASE + 101 + NELOG_NetlogonNoAddressToSiteMapping* = ERRLOG2_BASE + 102 + NELOG_NetlogonInvalidGenericParameterValue* = ERRLOG2_BASE + 103 + NELOG_NetlogonInvalidDwordParameterValue* = ERRLOG2_BASE + 104 + NELOG_NetlogonServerAuthFailedNoAccount* = ERRLOG2_BASE + 105 + NELOG_NetlogonNoDynamicDnsManual* = ERRLOG2_BASE + 106 + NELOG_NetlogonNoSiteForClients* = ERRLOG2_BASE + 107 + NELOG_NetlogonDnsDeregAborted* = ERRLOG2_BASE + 108 + NELOG_NetlogonRpcPortRequestFailure* = ERRLOG2_BASE + 109 STATSOPT_CLR* = 1 STATS_NO_VALUE* = -1 STATS_OVERFLOW* = -2 @@ -3790,7 +4182,8 @@ NETSETUP_DEFER_SPN_SET* = 0x00000100 NETSETUP_INSTALL_INVOCATION* = 0x00040000 NETSETUP_IGNORE_UNSUPPORTED_FLAGS* = 0x10000000 - NETSETUP_VALID_UNJOIN_FLAGS* = NETSETUP_ACCT_DELETE or NETSETUP_IGNORE_UNSUPPORTED_FLAGS + NETSETUP_VALID_UNJOIN_FLAGS* = + NETSETUP_ACCT_DELETE or NETSETUP_IGNORE_UNSUPPORTED_FLAGS NET_IGNORE_UNSUPPORTED_FLAGS* = 0x01 netPrimaryComputerName* = 0 netAlternateComputerNames* = 1 @@ -3802,7 +4195,8 @@ JOB_ADD_CURRENT_DATE* = 0x08 JOB_NONINTERACTIVE* = 0x10 JOB_INPUT_FLAGS* = JOB_RUN_PERIODICALLY or JOB_ADD_CURRENT_DATE or JOB_NONINTERACTIVE - JOB_OUTPUT_FLAGS* = JOB_RUN_PERIODICALLY or JOB_EXEC_ERROR or JOB_RUNS_TODAY or JOB_NONINTERACTIVE + JOB_OUTPUT_FLAGS* = + JOB_RUN_PERIODICALLY or JOB_EXEC_ERROR or JOB_RUNS_TODAY or JOB_NONINTERACTIVE DFS_VOLUME_STATES* = 0xF DFS_VOLUME_STATE_OK* = 1 DFS_VOLUME_STATE_INCONSISTENT* = 2 @@ -3844,201 +4238,1071 @@ DFS_MOVE_FLAG_REPLACE_IF_EXISTS* = 0x00000001 PARM_ERROR_UNKNOWN* = DWORD(-1) USE_WILDCARD* = DWORD(-1) - MAXDEVENTRIES* = sizeof(int32)*8 -proc NetUserAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserEnum*(servername: LPCWSTR, level: DWORD, filter: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserGetInfo*(servername: LPCWSTR, username: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserSetInfo*(servername: LPCWSTR, username: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserDel*(servername: LPCWSTR, username: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserGetGroups*(servername: LPCWSTR, username: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserSetGroups*(servername: LPCWSTR, username: LPCWSTR, level: DWORD, buf: LPBYTE, num_entries: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserGetLocalGroups*(servername: LPCWSTR, username: LPCWSTR, level: DWORD, flags: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserModalsGet*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserModalsSet*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUserChangePassword*(domainname: LPCWSTR, username: LPCWSTR, oldpassword: LPCWSTR, newpassword: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupAddUser*(servername: LPCWSTR, GroupName: LPCWSTR, username: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupEnum*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: PDWORD_PTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupGetInfo*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupSetInfo*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupDel*(servername: LPCWSTR, groupname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupDelUser*(servername: LPCWSTR, GroupName: LPCWSTR, Username: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupGetUsers*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, ResumeHandle: PDWORD_PTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGroupSetUsers*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, totalentries: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupAddMember*(servername: LPCWSTR, groupname: LPCWSTR, membersid: PSID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupEnum*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: PDWORD_PTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupGetInfo*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupSetInfo*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupDel*(servername: LPCWSTR, groupname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupDelMember*(servername: LPCWSTR, groupname: LPCWSTR, membersid: PSID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupGetMembers*(servername: LPCWSTR, localgroupname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: PDWORD_PTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupSetMembers*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, totalentries: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupAddMembers*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, totalentries: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetLocalGroupDelMembers*(servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, totalentries: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetQueryDisplayInformation*(ServerName: LPCWSTR, Level: DWORD, Index: DWORD, EntriesRequested: DWORD, PreferredMaximumLength: DWORD, ReturnedEntryCount: LPDWORD, SortedBuffer: ptr PVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGetDisplayInformationIndex*(ServerName: LPCWSTR, Level: DWORD, Prefix: LPCWSTR, Index: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc RxNetAccessAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc RxNetAccessEnum*(servername: LPCWSTR, BasePath: LPCWSTR, Recursive: DWORD, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc RxNetAccessGetInfo*(servername: LPCWSTR, resource: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc RxNetAccessSetInfo*(servername: LPCWSTR, resource: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc RxNetAccessDel*(servername: LPCWSTR, resource: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc RxNetAccessGetUserPerms*(servername: LPCWSTR, UGname: LPCWSTR, resource: LPCWSTR, Perms: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetValidatePasswordPolicy*(ServerName: LPCWSTR, Qualifier: LPVOID, ValidationType: NET_VALIDATE_PASSWORD_TYPE, InputArg: LPVOID, OutputArg: ptr LPVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetValidatePasswordPolicyFree*(OutputArg: ptr LPVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGetDCName*(servername: LPCWSTR, domainname: LPCWSTR, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGetAnyDCName*(servername: LPCWSTR, domainname: LPCWSTR, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc I_NetLogonControl*(ServerName: LPCWSTR, FunctionCode: DWORD, QueryLevel: DWORD, Buffer: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc I_NetLogonControl2*(ServerName: LPCWSTR, FunctionCode: DWORD, QueryLevel: DWORD, Data: LPBYTE, Buffer: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetEnumerateTrustedDomains*(ServerName: LPWSTR, DomainNames: ptr LPWSTR): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAddServiceAccount*(ServerName: LPWSTR, AccountName: LPWSTR, Reserved: LPWSTR, Flags: DWORD): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetRemoveServiceAccount*(ServerName: LPWSTR, AccountName: LPWSTR, Flags: DWORD): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetIsServiceAccount*(ServerName: LPWSTR, AccountName: LPWSTR, IsService: ptr BOOL): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetEnumerateServiceAccounts*(ServerName: LPWSTR, Flags: DWORD, AccountsCount: ptr DWORD, Accounts: ptr PZPWSTR): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAlertRaise*(AlertEventName: LPCWSTR, Buffer: LPVOID, BufferSize: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAlertRaiseEx*(AlertEventName: LPCWSTR, VariableInfo: LPVOID, VariableInfoSize: DWORD, ServiceName: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareAdd*(servername: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareEnum*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareEnumSticky*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareGetInfo*(servername: LMSTR, netname: LMSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareSetInfo*(servername: LMSTR, netname: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareDel*(servername: LMSTR, netname: LMSTR, reserved: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareDelSticky*(servername: LMSTR, netname: LMSTR, reserved: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareCheck*(servername: LMSTR, device: LMSTR, `type`: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetSessionEnum*(servername: LMSTR, UncClientName: LMSTR, username: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetSessionDel*(servername: LMSTR, UncClientName: LMSTR, username: LMSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetSessionGetInfo*(servername: LMSTR, UncClientName: LMSTR, username: LMSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetConnectionEnum*(servername: LMSTR, qualifier: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetFileClose*(servername: LMSTR, fileid: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetFileEnum*(servername: LMSTR, basepath: LMSTR, username: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: PDWORD_PTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetFileGetInfo*(servername: LMSTR, fileid: DWORD, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetMessageNameAdd*(servername: LPCWSTR, msgname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetMessageNameEnum*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetMessageNameGetInfo*(servername: LPCWSTR, msgname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetMessageNameDel*(servername: LPCWSTR, msgname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetMessageBufferSend*(servername: LPCWSTR, msgname: LPCWSTR, fromname: LPCWSTR, buf: LPBYTE, buflen: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetRemoteTOD*(UncServerName: LPCWSTR, BufferPtr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetRemoteComputerSupports*(UncServerName: LPCWSTR, OptionsWanted: DWORD, OptionsSupported: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplGetInfo*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplSetInfo*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirDel*(servername: LPCWSTR, dirname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirEnum*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirGetInfo*(servername: LPCWSTR, dirname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirSetInfo*(servername: LPCWSTR, dirname: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirLock*(servername: LPCWSTR, dirname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplExportDirUnlock*(servername: LPCWSTR, dirname: LPCWSTR, unlockforce: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplImportDirAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplImportDirDel*(servername: LPCWSTR, dirname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplImportDirEnum*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplImportDirGetInfo*(servername: LPCWSTR, dirname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplImportDirLock*(servername: LPCWSTR, dirname: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetReplImportDirUnlock*(servername: LPCWSTR, dirname: LPCWSTR, unlockforce: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerEnum*(servername: LMCSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, servertype: DWORD, domain: LMCSTR, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerEnumEx*(ServerName: LMCSTR, Level: DWORD, Bufptr: ptr LPBYTE, PrefMaxlen: DWORD, EntriesRead: LPDWORD, totalentries: LPDWORD, servertype: DWORD, domain: LMCSTR, FirstNameToReturn: LMCSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerGetInfo*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerSetInfo*(servername: LMSTR, level: DWORD, buf: LPBYTE, ParmError: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerDiskEnum*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerComputerNameAdd*(ServerName: LMSTR, EmulatedDomainName: LMSTR, EmulatedServerName: LMSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerComputerNameDel*(ServerName: LMSTR, EmulatedServerName: LMSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerTransportAdd*(servername: LMSTR, level: DWORD, bufptr: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerTransportAddEx*(servername: LMSTR, level: DWORD, bufptr: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerTransportDel*(servername: LMSTR, level: DWORD, bufptr: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServerTransportEnum*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc SetServiceBits*(hServiceStatus: SERVICE_STATUS_HANDLE, dwServiceBits: DWORD, bSetBitsOn: WINBOOL, bUpdateImmediately: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc NetServiceControl*(servername: LPCWSTR, service: LPCWSTR, opcode: DWORD, arg: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServiceEnum*(servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServiceGetInfo*(servername: LPCWSTR, service: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetServiceInstall*(servername: LPCWSTR, service: LPCWSTR, argc: DWORD, argv: ptr LPCWSTR, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUseAdd*(UncServerName: LMSTR, Level: DWORD, Buf: LPBYTE, ParmError: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUseDel*(UncServerName: LMSTR, UseName: LMSTR, ForceCond: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUseEnum*(UncServerName: LMSTR, Level: DWORD, BufPtr: ptr LPBYTE, PreferedMaximumSize: DWORD, EntriesRead: LPDWORD, TotalEntries: LPDWORD, ResumeHandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUseGetInfo*(UncServerName: LMSTR, UseName: LMSTR, Level: DWORD, BufPtr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaGetInfo*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaSetInfo*(servername: LMSTR, level: DWORD, buffer: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaUserGetInfo*(reserved: LMSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaUserSetInfo*(reserved: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaUserEnum*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaTransportAdd*(servername: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaTransportDel*(servername: LMSTR, transportname: LMSTR, ucond: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetWkstaTransportEnum*(servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resumehandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetApiBufferAllocate*(ByteCount: DWORD, Buffer: ptr LPVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetApiBufferFree*(Buffer: LPVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetApiBufferReallocate*(OldBuffer: LPVOID, NewByteCount: DWORD, NewBuffer: ptr LPVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetApiBufferSize*(Buffer: LPVOID, ByteCount: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetapipBufferAllocate*(ByteCount: DWORD, Buffer: ptr LPVOID): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetErrorLogClear*(server: LPCWSTR, backupfile: LPCWSTR, reserved: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetErrorLogRead*(server: LPCWSTR, reserved1: LPWSTR, errloghandle: LPHLOG, offset: DWORD, reserved2: LPDWORD, reserved3: DWORD, offsetflag: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, bytesread: LPDWORD, totalbytes: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetErrorLogWrite*(reserved1: LPBYTE, code: DWORD, component: LPCWSTR, buffer: LPBYTE, numbytes: DWORD, msgbuf: LPBYTE, strcount: DWORD, reserved2: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetConfigGet*(server: LPCWSTR, component: LPCWSTR, parameter: LPCWSTR, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetConfigGetAll*(server: LPCWSTR, component: LPCWSTR, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetConfigSet*(server: LPCWSTR, reserved1: LPCWSTR, component: LPCWSTR, level: DWORD, reserved2: DWORD, buf: LPBYTE, reserved3: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetRegisterDomainNameChangeNotification*(NotificationEventHandle: PHANDLE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUnregisterDomainNameChangeNotification*(NotificationEventHandle: HANDLE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetStatisticsGet*(server: LMSTR, service: LMSTR, level: DWORD, options: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAuditClear*(server: LPCWSTR, backupfile: LPCWSTR, service: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAuditRead*(server: LPCWSTR, service: LPCWSTR, auditloghandle: LPHLOG, offset: DWORD, reserved1: LPDWORD, reserved2: DWORD, offsetflag: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, bytesread: LPDWORD, totalavailable: LPDWORD): DWORD {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAuditWrite*(`type`: DWORD, buf: LPBYTE, numbytes: DWORD, service: LPCWSTR, reserved: LPBYTE): DWORD {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetJoinDomain*(lpServer: LPCWSTR, lpDomain: LPCWSTR, lpAccountOU: LPCWSTR, lpAccount: LPCWSTR, lpPassword: LPCWSTR, fJoinOptions: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetUnjoinDomain*(lpServer: LPCWSTR, lpAccount: LPCWSTR, lpPassword: LPCWSTR, fUnjoinOptions: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetRenameMachineInDomain*(lpServer: LPCWSTR, lpNewMachineName: LPCWSTR, lpAccount: LPCWSTR, lpPassword: LPCWSTR, fRenameOptions: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetValidateName*(lpServer: LPCWSTR, lpName: LPCWSTR, lpAccount: LPCWSTR, lpPassword: LPCWSTR, NameType: NETSETUP_NAME_TYPE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGetJoinInformation*(lpServer: LPCWSTR, lpNameBuffer: ptr LPWSTR, BufferType: PNETSETUP_JOIN_STATUS): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetGetJoinableOUs*(lpServer: LPCWSTR, lpDomain: LPCWSTR, lpAccount: LPCWSTR, lpPassword: LPCWSTR, OUCount: ptr DWORD, OUs: ptr ptr LPWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAddAlternateComputerName*(Server: LPCWSTR, AlternateName: LPCWSTR, DomainAccount: LPCWSTR, DomainAccountPassword: LPCWSTR, Reserved: ULONG): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetRemoveAlternateComputerName*(Server: LPCWSTR, AlternateName: LPCWSTR, DomainAccount: LPCWSTR, DomainAccountPassword: LPCWSTR, Reserved: ULONG): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetSetPrimaryComputerName*(Server: LPCWSTR, PrimaryName: LPCWSTR, DomainAccount: LPCWSTR, DomainAccountPassword: LPCWSTR, Reserved: ULONG): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetEnumerateComputerNames*(Server: LPCWSTR, NameType: NET_COMPUTER_NAME_TYPE, Reserved: ULONG, EntryCount: PDWORD, ComputerNames: ptr ptr LPWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetScheduleJobAdd*(Servername: LPCWSTR, Buffer: LPBYTE, JobId: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetScheduleJobDel*(Servername: LPCWSTR, MinJobId: DWORD, MaxJobId: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetScheduleJobEnum*(Servername: LPCWSTR, PointerToBuffer: ptr LPBYTE, PrefferedMaximumLength: DWORD, EntriesRead: LPDWORD, TotalEntries: LPDWORD, ResumeHandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetScheduleJobGetInfo*(Servername: LPCWSTR, JobId: DWORD, PointerToBuffer: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetShareDelEx*(servername: LMSTR, level: DWORD, buf: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsAdd*(DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR, Comment: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsAddStdRoot*(ServerName: LPWSTR, RootShare: LPWSTR, Comment: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsRemoveStdRoot*(ServerName: LPWSTR, RootShare: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsAddFtRoot*(ServerName: LPWSTR, RootShare: LPWSTR, FtDfsName: LPWSTR, Comment: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsRemoveFtRoot*(ServerName: LPWSTR, RootShare: LPWSTR, FtDfsName: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsRemoveFtRootForced*(DomainName: LPWSTR, ServerName: LPWSTR, RootShare: LPWSTR, FtDfsName: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsManagerInitialize*(ServerName: LPWSTR, Flags: DWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsAddStdRootForced*(ServerName: LPWSTR, RootShare: LPWSTR, Comment: LPWSTR, Store: LPWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsGetDcAddress*(ServerName: LPWSTR, DcIpAddress: ptr LPWSTR, IsRoot: ptr BOOLEAN, Timeout: ptr ULONG): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsRemove*(DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsEnum*(DfsName: LPWSTR, Level: DWORD, PrefMaxLen: DWORD, Buffer: ptr LPBYTE, EntriesRead: LPDWORD, ResumeHandle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsGetInfo*(DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR, Level: DWORD, Buffer: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsSetInfo*(DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR, Level: DWORD, Buffer: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsGetClientInfo*(DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR, Level: DWORD, Buffer: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsSetClientInfo*(DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR, Level: DWORD, Buffer: LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsMove*(DfsEntryPath: LPWSTR, DfsNewEntryPath: LPWSTR, Flags: ULONG): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsRename*(Path: LPWSTR, NewPath: LPWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsGetSecurity*(DfsEntryPath: LPWSTR, SecurityInformation: SECURITY_INFORMATION, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, lpcbSecurityDescriptor: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsSetSecurity*(DfsEntryPath: LPWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsGetStdContainerSecurity*(MachineName: LPWSTR, SecurityInformation: SECURITY_INFORMATION, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, lpcbSecurityDescriptor: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsSetStdContainerSecurity*(MachineName: LPWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsGetFtContainerSecurity*(DomainName: LPWSTR, SecurityInformation: SECURITY_INFORMATION, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, lpcbSecurityDescriptor: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetDfsSetFtContainerSecurity*(DomainName: LPWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} -proc NetAccessAdd*(servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessAdd".} -proc NetAccessEnum*(servername: LPCWSTR, BasePath: LPCWSTR, Recursive: DWORD, level: DWORD, bufptr: ptr LPBYTE, prefmaxlen: DWORD, entriesread: LPDWORD, totalentries: LPDWORD, resume_handle: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessEnum".} -proc NetAccessGetInfo*(servername: LPCWSTR, resource: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessGetInfo".} -proc NetAccessSetInfo*(servername: LPCWSTR, resource: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessSetInfo".} -proc NetAccessDel*(servername: LPCWSTR, resource: LPCWSTR): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessDel".} -proc NetAccessGetUserPerms*(servername: LPCWSTR, UGname: LPCWSTR, resource: LPCWSTR, Perms: LPDWORD): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessGetUserPerms".} + MAXDEVENTRIES* = sizeof(int32) * 8 +proc NetUserAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserEnum*( + servername: LPCWSTR, + level: DWORD, + filter: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserGetInfo*( + servername: LPCWSTR, username: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserSetInfo*( + servername: LPCWSTR, username: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserDel*( + servername: LPCWSTR, username: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserGetGroups*( + servername: LPCWSTR, + username: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserSetGroups*( + servername: LPCWSTR, username: LPCWSTR, level: DWORD, buf: LPBYTE, num_entries: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserGetLocalGroups*( + servername: LPCWSTR, + username: LPCWSTR, + level: DWORD, + flags: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserModalsGet*( + servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserModalsSet*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUserChangePassword*( + domainname: LPCWSTR, username: LPCWSTR, oldpassword: LPCWSTR, newpassword: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupAddUser*( + servername: LPCWSTR, GroupName: LPCWSTR, username: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupEnum*( + servername: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: PDWORD_PTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupGetInfo*( + servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupSetInfo*( + servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupDel*( + servername: LPCWSTR, groupname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupDelUser*( + servername: LPCWSTR, GroupName: LPCWSTR, Username: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupGetUsers*( + servername: LPCWSTR, + groupname: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + ResumeHandle: PDWORD_PTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGroupSetUsers*( + servername: LPCWSTR, + groupname: LPCWSTR, + level: DWORD, + buf: LPBYTE, + totalentries: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupAddMember*( + servername: LPCWSTR, groupname: LPCWSTR, membersid: PSID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupEnum*( + servername: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: PDWORD_PTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupGetInfo*( + servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupSetInfo*( + servername: LPCWSTR, groupname: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupDel*( + servername: LPCWSTR, groupname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupDelMember*( + servername: LPCWSTR, groupname: LPCWSTR, membersid: PSID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupGetMembers*( + servername: LPCWSTR, + localgroupname: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: PDWORD_PTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupSetMembers*( + servername: LPCWSTR, + groupname: LPCWSTR, + level: DWORD, + buf: LPBYTE, + totalentries: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupAddMembers*( + servername: LPCWSTR, + groupname: LPCWSTR, + level: DWORD, + buf: LPBYTE, + totalentries: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetLocalGroupDelMembers*( + servername: LPCWSTR, + groupname: LPCWSTR, + level: DWORD, + buf: LPBYTE, + totalentries: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetQueryDisplayInformation*( + ServerName: LPCWSTR, + Level: DWORD, + Index: DWORD, + EntriesRequested: DWORD, + PreferredMaximumLength: DWORD, + ReturnedEntryCount: LPDWORD, + SortedBuffer: ptr PVOID, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGetDisplayInformationIndex*( + ServerName: LPCWSTR, Level: DWORD, Prefix: LPCWSTR, Index: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc RxNetAccessAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc RxNetAccessEnum*( + servername: LPCWSTR, + BasePath: LPCWSTR, + Recursive: DWORD, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc RxNetAccessGetInfo*( + servername: LPCWSTR, resource: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc RxNetAccessSetInfo*( + servername: LPCWSTR, resource: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc RxNetAccessDel*( + servername: LPCWSTR, resource: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc RxNetAccessGetUserPerms*( + servername: LPCWSTR, UGname: LPCWSTR, resource: LPCWSTR, Perms: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetValidatePasswordPolicy*( + ServerName: LPCWSTR, + Qualifier: LPVOID, + ValidationType: NET_VALIDATE_PASSWORD_TYPE, + InputArg: LPVOID, + OutputArg: ptr LPVOID, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetValidatePasswordPolicyFree*( + OutputArg: ptr LPVOID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGetDCName*( + servername: LPCWSTR, domainname: LPCWSTR, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGetAnyDCName*( + servername: LPCWSTR, domainname: LPCWSTR, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc I_NetLogonControl*( + ServerName: LPCWSTR, FunctionCode: DWORD, QueryLevel: DWORD, Buffer: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc I_NetLogonControl2*( + ServerName: LPCWSTR, + FunctionCode: DWORD, + QueryLevel: DWORD, + Data: LPBYTE, + Buffer: ptr LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetEnumerateTrustedDomains*( + ServerName: LPWSTR, DomainNames: ptr LPWSTR +): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAddServiceAccount*( + ServerName: LPWSTR, AccountName: LPWSTR, Reserved: LPWSTR, Flags: DWORD +): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetRemoveServiceAccount*( + ServerName: LPWSTR, AccountName: LPWSTR, Flags: DWORD +): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetIsServiceAccount*( + ServerName: LPWSTR, AccountName: LPWSTR, IsService: ptr BOOL +): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetEnumerateServiceAccounts*( + ServerName: LPWSTR, Flags: DWORD, AccountsCount: ptr DWORD, Accounts: ptr PZPWSTR +): NTSTATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAlertRaise*( + AlertEventName: LPCWSTR, Buffer: LPVOID, BufferSize: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAlertRaiseEx*( + AlertEventName: LPCWSTR, + VariableInfo: LPVOID, + VariableInfoSize: DWORD, + ServiceName: LPCWSTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareAdd*( + servername: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareEnum*( + servername: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareEnumSticky*( + servername: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareGetInfo*( + servername: LMSTR, netname: LMSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareSetInfo*( + servername: LMSTR, netname: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareDel*( + servername: LMSTR, netname: LMSTR, reserved: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareDelSticky*( + servername: LMSTR, netname: LMSTR, reserved: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareCheck*( + servername: LMSTR, device: LMSTR, `type`: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetSessionEnum*( + servername: LMSTR, + UncClientName: LMSTR, + username: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetSessionDel*( + servername: LMSTR, UncClientName: LMSTR, username: LMSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetSessionGetInfo*( + servername: LMSTR, + UncClientName: LMSTR, + username: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetConnectionEnum*( + servername: LMSTR, + qualifier: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetFileClose*( + servername: LMSTR, fileid: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetFileEnum*( + servername: LMSTR, + basepath: LMSTR, + username: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: PDWORD_PTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetFileGetInfo*( + servername: LMSTR, fileid: DWORD, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetMessageNameAdd*( + servername: LPCWSTR, msgname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetMessageNameEnum*( + servername: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetMessageNameGetInfo*( + servername: LPCWSTR, msgname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetMessageNameDel*( + servername: LPCWSTR, msgname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetMessageBufferSend*( + servername: LPCWSTR, msgname: LPCWSTR, fromname: LPCWSTR, buf: LPBYTE, buflen: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetRemoteTOD*( + UncServerName: LPCWSTR, BufferPtr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetRemoteComputerSupports*( + UncServerName: LPCWSTR, OptionsWanted: DWORD, OptionsSupported: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplGetInfo*( + servername: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplSetInfo*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirDel*( + servername: LPCWSTR, dirname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirEnum*( + servername: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirGetInfo*( + servername: LPCWSTR, dirname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirSetInfo*( + servername: LPCWSTR, dirname: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirLock*( + servername: LPCWSTR, dirname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplExportDirUnlock*( + servername: LPCWSTR, dirname: LPCWSTR, unlockforce: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplImportDirAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplImportDirDel*( + servername: LPCWSTR, dirname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplImportDirEnum*( + servername: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplImportDirGetInfo*( + servername: LPCWSTR, dirname: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplImportDirLock*( + servername: LPCWSTR, dirname: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetReplImportDirUnlock*( + servername: LPCWSTR, dirname: LPCWSTR, unlockforce: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerEnum*( + servername: LMCSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + servertype: DWORD, + domain: LMCSTR, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerEnumEx*( + ServerName: LMCSTR, + Level: DWORD, + Bufptr: ptr LPBYTE, + PrefMaxlen: DWORD, + EntriesRead: LPDWORD, + totalentries: LPDWORD, + servertype: DWORD, + domain: LMCSTR, + FirstNameToReturn: LMCSTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerGetInfo*( + servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerSetInfo*( + servername: LMSTR, level: DWORD, buf: LPBYTE, ParmError: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerDiskEnum*( + servername: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerComputerNameAdd*( + ServerName: LMSTR, EmulatedDomainName: LMSTR, EmulatedServerName: LMSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerComputerNameDel*( + ServerName: LMSTR, EmulatedServerName: LMSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerTransportAdd*( + servername: LMSTR, level: DWORD, bufptr: LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerTransportAddEx*( + servername: LMSTR, level: DWORD, bufptr: LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerTransportDel*( + servername: LMSTR, level: DWORD, bufptr: LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServerTransportEnum*( + servername: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc SetServiceBits*( + hServiceStatus: SERVICE_STATUS_HANDLE, + dwServiceBits: DWORD, + bSetBitsOn: WINBOOL, + bUpdateImmediately: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc NetServiceControl*( + servername: LPCWSTR, service: LPCWSTR, opcode: DWORD, arg: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServiceEnum*( + servername: LPCWSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServiceGetInfo*( + servername: LPCWSTR, service: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetServiceInstall*( + servername: LPCWSTR, + service: LPCWSTR, + argc: DWORD, + argv: ptr LPCWSTR, + bufptr: ptr LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUseAdd*( + UncServerName: LMSTR, Level: DWORD, Buf: LPBYTE, ParmError: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUseDel*( + UncServerName: LMSTR, UseName: LMSTR, ForceCond: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUseEnum*( + UncServerName: LMSTR, + Level: DWORD, + BufPtr: ptr LPBYTE, + PreferedMaximumSize: DWORD, + EntriesRead: LPDWORD, + TotalEntries: LPDWORD, + ResumeHandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUseGetInfo*( + UncServerName: LMSTR, UseName: LMSTR, Level: DWORD, BufPtr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaGetInfo*( + servername: LMSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaSetInfo*( + servername: LMSTR, level: DWORD, buffer: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaUserGetInfo*( + reserved: LMSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaUserSetInfo*( + reserved: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaUserEnum*( + servername: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaTransportAdd*( + servername: LMSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaTransportDel*( + servername: LMSTR, transportname: LMSTR, ucond: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetWkstaTransportEnum*( + servername: LMSTR, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resumehandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetApiBufferAllocate*( + ByteCount: DWORD, Buffer: ptr LPVOID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetApiBufferFree*( + Buffer: LPVOID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetApiBufferReallocate*( + OldBuffer: LPVOID, NewByteCount: DWORD, NewBuffer: ptr LPVOID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetApiBufferSize*( + Buffer: LPVOID, ByteCount: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetapipBufferAllocate*( + ByteCount: DWORD, Buffer: ptr LPVOID +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetErrorLogClear*( + server: LPCWSTR, backupfile: LPCWSTR, reserved: LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetErrorLogRead*( + server: LPCWSTR, + reserved1: LPWSTR, + errloghandle: LPHLOG, + offset: DWORD, + reserved2: LPDWORD, + reserved3: DWORD, + offsetflag: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + bytesread: LPDWORD, + totalbytes: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetErrorLogWrite*( + reserved1: LPBYTE, + code: DWORD, + component: LPCWSTR, + buffer: LPBYTE, + numbytes: DWORD, + msgbuf: LPBYTE, + strcount: DWORD, + reserved2: LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetConfigGet*( + server: LPCWSTR, component: LPCWSTR, parameter: LPCWSTR, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetConfigGetAll*( + server: LPCWSTR, component: LPCWSTR, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetConfigSet*( + server: LPCWSTR, + reserved1: LPCWSTR, + component: LPCWSTR, + level: DWORD, + reserved2: DWORD, + buf: LPBYTE, + reserved3: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetRegisterDomainNameChangeNotification*( + NotificationEventHandle: PHANDLE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUnregisterDomainNameChangeNotification*( + NotificationEventHandle: HANDLE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetStatisticsGet*( + server: LMSTR, service: LMSTR, level: DWORD, options: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAuditClear*( + server: LPCWSTR, backupfile: LPCWSTR, service: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAuditRead*( + server: LPCWSTR, + service: LPCWSTR, + auditloghandle: LPHLOG, + offset: DWORD, + reserved1: LPDWORD, + reserved2: DWORD, + offsetflag: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + bytesread: LPDWORD, + totalavailable: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAuditWrite*( + `type`: DWORD, buf: LPBYTE, numbytes: DWORD, service: LPCWSTR, reserved: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetJoinDomain*( + lpServer: LPCWSTR, + lpDomain: LPCWSTR, + lpAccountOU: LPCWSTR, + lpAccount: LPCWSTR, + lpPassword: LPCWSTR, + fJoinOptions: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetUnjoinDomain*( + lpServer: LPCWSTR, lpAccount: LPCWSTR, lpPassword: LPCWSTR, fUnjoinOptions: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetRenameMachineInDomain*( + lpServer: LPCWSTR, + lpNewMachineName: LPCWSTR, + lpAccount: LPCWSTR, + lpPassword: LPCWSTR, + fRenameOptions: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetValidateName*( + lpServer: LPCWSTR, + lpName: LPCWSTR, + lpAccount: LPCWSTR, + lpPassword: LPCWSTR, + NameType: NETSETUP_NAME_TYPE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGetJoinInformation*( + lpServer: LPCWSTR, lpNameBuffer: ptr LPWSTR, BufferType: PNETSETUP_JOIN_STATUS +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetGetJoinableOUs*( + lpServer: LPCWSTR, + lpDomain: LPCWSTR, + lpAccount: LPCWSTR, + lpPassword: LPCWSTR, + OUCount: ptr DWORD, + OUs: ptr ptr LPWSTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAddAlternateComputerName*( + Server: LPCWSTR, + AlternateName: LPCWSTR, + DomainAccount: LPCWSTR, + DomainAccountPassword: LPCWSTR, + Reserved: ULONG, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetRemoveAlternateComputerName*( + Server: LPCWSTR, + AlternateName: LPCWSTR, + DomainAccount: LPCWSTR, + DomainAccountPassword: LPCWSTR, + Reserved: ULONG, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetSetPrimaryComputerName*( + Server: LPCWSTR, + PrimaryName: LPCWSTR, + DomainAccount: LPCWSTR, + DomainAccountPassword: LPCWSTR, + Reserved: ULONG, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetEnumerateComputerNames*( + Server: LPCWSTR, + NameType: NET_COMPUTER_NAME_TYPE, + Reserved: ULONG, + EntryCount: PDWORD, + ComputerNames: ptr ptr LPWSTR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetScheduleJobAdd*( + Servername: LPCWSTR, Buffer: LPBYTE, JobId: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetScheduleJobDel*( + Servername: LPCWSTR, MinJobId: DWORD, MaxJobId: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetScheduleJobEnum*( + Servername: LPCWSTR, + PointerToBuffer: ptr LPBYTE, + PrefferedMaximumLength: DWORD, + EntriesRead: LPDWORD, + TotalEntries: LPDWORD, + ResumeHandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetScheduleJobGetInfo*( + Servername: LPCWSTR, JobId: DWORD, PointerToBuffer: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetShareDelEx*( + servername: LMSTR, level: DWORD, buf: LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsAdd*( + DfsEntryPath: LPWSTR, + ServerName: LPWSTR, + ShareName: LPWSTR, + Comment: LPWSTR, + Flags: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsAddStdRoot*( + ServerName: LPWSTR, RootShare: LPWSTR, Comment: LPWSTR, Flags: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsRemoveStdRoot*( + ServerName: LPWSTR, RootShare: LPWSTR, Flags: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsAddFtRoot*( + ServerName: LPWSTR, + RootShare: LPWSTR, + FtDfsName: LPWSTR, + Comment: LPWSTR, + Flags: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsRemoveFtRoot*( + ServerName: LPWSTR, RootShare: LPWSTR, FtDfsName: LPWSTR, Flags: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsRemoveFtRootForced*( + DomainName: LPWSTR, + ServerName: LPWSTR, + RootShare: LPWSTR, + FtDfsName: LPWSTR, + Flags: DWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsManagerInitialize*( + ServerName: LPWSTR, Flags: DWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsAddStdRootForced*( + ServerName: LPWSTR, RootShare: LPWSTR, Comment: LPWSTR, Store: LPWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsGetDcAddress*( + ServerName: LPWSTR, DcIpAddress: ptr LPWSTR, IsRoot: ptr BOOLEAN, Timeout: ptr ULONG +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsRemove*( + DfsEntryPath: LPWSTR, ServerName: LPWSTR, ShareName: LPWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsEnum*( + DfsName: LPWSTR, + Level: DWORD, + PrefMaxLen: DWORD, + Buffer: ptr LPBYTE, + EntriesRead: LPDWORD, + ResumeHandle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsGetInfo*( + DfsEntryPath: LPWSTR, + ServerName: LPWSTR, + ShareName: LPWSTR, + Level: DWORD, + Buffer: ptr LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsSetInfo*( + DfsEntryPath: LPWSTR, + ServerName: LPWSTR, + ShareName: LPWSTR, + Level: DWORD, + Buffer: LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsGetClientInfo*( + DfsEntryPath: LPWSTR, + ServerName: LPWSTR, + ShareName: LPWSTR, + Level: DWORD, + Buffer: ptr LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsSetClientInfo*( + DfsEntryPath: LPWSTR, + ServerName: LPWSTR, + ShareName: LPWSTR, + Level: DWORD, + Buffer: LPBYTE, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsMove*( + DfsEntryPath: LPWSTR, DfsNewEntryPath: LPWSTR, Flags: ULONG +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsRename*( + Path: LPWSTR, NewPath: LPWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsGetSecurity*( + DfsEntryPath: LPWSTR, + SecurityInformation: SECURITY_INFORMATION, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + lpcbSecurityDescriptor: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsSetSecurity*( + DfsEntryPath: LPWSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsGetStdContainerSecurity*( + MachineName: LPWSTR, + SecurityInformation: SECURITY_INFORMATION, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + lpcbSecurityDescriptor: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsSetStdContainerSecurity*( + MachineName: LPWSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsGetFtContainerSecurity*( + DomainName: LPWSTR, + SecurityInformation: SECURITY_INFORMATION, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + lpcbSecurityDescriptor: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetDfsSetFtContainerSecurity*( + DomainName: LPWSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc.} + +proc NetAccessAdd*( + servername: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessAdd".} + +proc NetAccessEnum*( + servername: LPCWSTR, + BasePath: LPCWSTR, + Recursive: DWORD, + level: DWORD, + bufptr: ptr LPBYTE, + prefmaxlen: DWORD, + entriesread: LPDWORD, + totalentries: LPDWORD, + resume_handle: LPDWORD, +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessEnum".} + +proc NetAccessGetInfo*( + servername: LPCWSTR, resource: LPCWSTR, level: DWORD, bufptr: ptr LPBYTE +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessGetInfo".} + +proc NetAccessSetInfo*( + servername: LPCWSTR, resource: LPCWSTR, level: DWORD, buf: LPBYTE, parm_err: LPDWORD +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessSetInfo".} + +proc NetAccessDel*( + servername: LPCWSTR, resource: LPCWSTR +): NET_API_STATUS {.winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessDel".} + +proc NetAccessGetUserPerms*( + servername: LPCWSTR, UGname: LPCWSTR, resource: LPCWSTR, Perms: LPDWORD +): NET_API_STATUS {. + winapi, stdcall, dynlib: "netapi32", importc: "RxNetAccessGetUserPerms" +.} + when winimUnicode: type PORT_INFO_FF* = PORT_INFO_FFW PPORT_INFO_FF* = PPORT_INFO_FFW LPPORT_INFO_FF* = LPPORT_INFO_FFW + when winimAnsi: type PORT_INFO_FF* = PORT_INFO_FFA PPORT_INFO_FF* = PPORT_INFO_FFA LPPORT_INFO_FF* = LPPORT_INFO_FFA + when winimCpu64: type DFS_STORAGE_INFO_0_32* {.pure.} = object State*: ULONG ServerName*: ULONG ShareName*: ULONG + PDFS_STORAGE_INFO_0_32* = ptr DFS_STORAGE_INFO_0_32 LPDFS_STORAGE_INFO_0_32* = ptr DFS_STORAGE_INFO_0_32 DFS_INFO_3_32* {.pure.} = object @@ -4047,6 +5311,7 @@ State*: DWORD NumberOfStorages*: DWORD Storage*: ULONG + PDFS_INFO_3_32* = ptr DFS_INFO_3_32 LPDFS_INFO_3_32* = ptr DFS_INFO_3_32 DFS_INFO_4_32* {.pure.} = object @@ -4057,5 +5322,6 @@ Guid*: GUID NumberOfStorages*: DWORD Storage*: ULONG + PDFS_INFO_4_32* = ptr DFS_INFO_4_32 LPDFS_INFO_4_32* = ptr DFS_INFO_4_32 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/lzexpand.nim --- a/semicongine/thirdparty/winim/winim/inc/lzexpand.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/lzexpand.nim Thu Aug 22 18:32:21 2024 +0700 @@ -22,16 +22,45 @@ proc CopyLZFile*(P1: INT, P2: INT): LONG {.winapi, stdcall, dynlib: "lz32", importc.} proc LZCopy*(P1: INT, P2: INT): LONG {.winapi, stdcall, dynlib: "lz32", importc.} proc LZInit*(P1: INT): INT {.winapi, stdcall, dynlib: "lz32", importc.} -proc GetExpandedNameA*(P1: LPSTR, P2: LPSTR): INT {.winapi, stdcall, dynlib: "lz32", importc.} -proc GetExpandedNameW*(P1: LPWSTR, P2: LPWSTR): INT {.winapi, stdcall, dynlib: "lz32", importc.} -proc LZOpenFileA*(P1: LPSTR, P2: LPOFSTRUCT, P3: WORD): INT {.winapi, stdcall, dynlib: "lz32", importc.} -proc LZOpenFileW*(P1: LPWSTR, P2: LPOFSTRUCT, P3: WORD): INT {.winapi, stdcall, dynlib: "lz32", importc.} -proc LZSeek*(P1: INT, P2: LONG, P3: INT): LONG {.winapi, stdcall, dynlib: "lz32", importc.} -proc LZRead*(P1: INT, P2: LPSTR, P3: INT): INT {.winapi, stdcall, dynlib: "lz32", importc.} +proc GetExpandedNameA*( + P1: LPSTR, P2: LPSTR +): INT {.winapi, stdcall, dynlib: "lz32", importc.} + +proc GetExpandedNameW*( + P1: LPWSTR, P2: LPWSTR +): INT {.winapi, stdcall, dynlib: "lz32", importc.} + +proc LZOpenFileA*( + P1: LPSTR, P2: LPOFSTRUCT, P3: WORD +): INT {.winapi, stdcall, dynlib: "lz32", importc.} + +proc LZOpenFileW*( + P1: LPWSTR, P2: LPOFSTRUCT, P3: WORD +): INT {.winapi, stdcall, dynlib: "lz32", importc.} + +proc LZSeek*( + P1: INT, P2: LONG, P3: INT +): LONG {.winapi, stdcall, dynlib: "lz32", importc.} + +proc LZRead*( + P1: INT, P2: LPSTR, P3: INT +): INT {.winapi, stdcall, dynlib: "lz32", importc.} + proc LZClose*(P1: INT): VOID {.winapi, stdcall, dynlib: "lz32", importc.} when winimUnicode: - proc GetExpandedName*(P1: LPWSTR, P2: LPWSTR): INT {.winapi, stdcall, dynlib: "lz32", importc: "GetExpandedNameW".} - proc LZOpenFile*(P1: LPWSTR, P2: LPOFSTRUCT, P3: WORD): INT {.winapi, stdcall, dynlib: "lz32", importc: "LZOpenFileW".} + proc GetExpandedName*( + P1: LPWSTR, P2: LPWSTR + ): INT {.winapi, stdcall, dynlib: "lz32", importc: "GetExpandedNameW".} + + proc LZOpenFile*( + P1: LPWSTR, P2: LPOFSTRUCT, P3: WORD + ): INT {.winapi, stdcall, dynlib: "lz32", importc: "LZOpenFileW".} + when winimAnsi: - proc GetExpandedName*(P1: LPSTR, P2: LPSTR): INT {.winapi, stdcall, dynlib: "lz32", importc: "GetExpandedNameA".} - proc LZOpenFile*(P1: LPSTR, P2: LPOFSTRUCT, P3: WORD): INT {.winapi, stdcall, dynlib: "lz32", importc: "LZOpenFileA".} + proc GetExpandedName*( + P1: LPSTR, P2: LPSTR + ): INT {.winapi, stdcall, dynlib: "lz32", importc: "GetExpandedNameA".} + + proc LZOpenFile*( + P1: LPSTR, P2: LPOFSTRUCT, P3: WORD + ): INT {.winapi, stdcall, dynlib: "lz32", importc: "LZOpenFileA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/mcx.nim --- a/semicongine/thirdparty/winim/winim/inc/mcx.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/mcx.nim Thu Aug 22 18:32:21 2024 +0700 @@ -28,6 +28,7 @@ dwMaxDTERate*: DWORD dwMaxDCERate*: DWORD abVariablePortion*: array[1, BYTE] + PMODEMDEVCAPS* = ptr MODEMDEVCAPS LPMODEMDEVCAPS* = ptr MODEMDEVCAPS MODEMSETTINGS* {.pure.} = object @@ -43,8 +44,10 @@ dwNegotiatedModemOptions*: DWORD dwNegotiatedDCERate*: DWORD abVariablePortion*: array[1, BYTE] + PMODEMSETTINGS* = ptr MODEMSETTINGS LPMODEMSETTINGS* = ptr MODEMSETTINGS + const DIALOPTION_BILLING* = 0x00000040 DIALOPTION_QUIET* = 0x00000080 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/mmsystem.nim --- a/semicongine/thirdparty/winim/winim/inc/mmsystem.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/mmsystem.nim Thu Aug 22 18:32:21 2024 +0700 @@ -37,8 +37,10 @@ fps*: BYTE dummy*: BYTE pad*: array[2, BYTE] + MMTIME_u_midi* {.pure.} = object songptrpos*: DWORD + MMTIME_u* {.pure, union.} = object ms*: DWORD sample*: DWORD @@ -46,9 +48,11 @@ ticks*: DWORD smpte*: MMTIME_u_smpte midi*: MMTIME_u_midi + MMTIME* {.pure.} = object wType*: UINT u*: MMTIME_u + PMMTIME* = ptr MMTIME NPMMTIME* = ptr MMTIME LPMMTIME* = ptr MMTIME @@ -57,6 +61,7 @@ lpszDCISectionName*: LPCWSTR lpszDCIAliasName*: LPCWSTR dnDevNode*: DWORD + PDRVCONFIGINFOEX* = ptr DRVCONFIGINFOEX NPDRVCONFIGINFOEX* = ptr DRVCONFIGINFOEX LPDRVCONFIGINFOEX* = ptr DRVCONFIGINFOEX @@ -64,10 +69,13 @@ dwDCISize*: DWORD lpszDCISectionName*: LPCWSTR lpszDCIAliasName*: LPCWSTR + PDRVCONFIGINFO* = ptr DRVCONFIGINFO NPDRVCONFIGINFO* = ptr DRVCONFIGINFO LPDRVCONFIGINFO* = ptr DRVCONFIGINFO - DRVCALLBACK* = proc (hdrvr: HDRVR, uMsg: UINT, dwUser: DWORD_PTR, dw1: DWORD_PTR, dw2: DWORD_PTR): void {.stdcall.} + DRVCALLBACK* = proc( + hdrvr: HDRVR, uMsg: UINT, dwUser: DWORD_PTR, dw1: DWORD_PTR, dw2: DWORD_PTR + ): void {.stdcall.} LPDRVCALLBACK* = ptr DRVCALLBACK PDRVCALLBACK* = ptr DRVCALLBACK LPHWAVEIN* = ptr HWAVEIN @@ -83,11 +91,12 @@ dwLoops*: DWORD lpNext*: ptr WAVEHDR reserved*: DWORD_PTR + PWAVEHDR* = ptr WAVEHDR NPWAVEHDR* = ptr WAVEHDR LPWAVEHDR* = ptr WAVEHDR -const - MAXPNAMELEN* = 32 + +const MAXPNAMELEN* = 32 type WAVEOUTCAPSA* {.pure.} = object wMid*: WORD @@ -98,6 +107,7 @@ wChannels*: WORD wReserved1*: WORD dwSupport*: DWORD + PWAVEOUTCAPSA* = ptr WAVEOUTCAPSA NPWAVEOUTCAPSA* = ptr WAVEOUTCAPSA LPWAVEOUTCAPSA* = ptr WAVEOUTCAPSA @@ -110,6 +120,7 @@ wChannels*: WORD wReserved1*: WORD dwSupport*: DWORD + PWAVEOUTCAPSW* = ptr WAVEOUTCAPSW NPWAVEOUTCAPSW* = ptr WAVEOUTCAPSW LPWAVEOUTCAPSW* = ptr WAVEOUTCAPSW @@ -125,6 +136,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PWAVEOUTCAPS2A* = ptr WAVEOUTCAPS2A NPWAVEOUTCAPS2A* = ptr WAVEOUTCAPS2A LPWAVEOUTCAPS2A* = ptr WAVEOUTCAPS2A @@ -140,6 +152,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PWAVEOUTCAPS2W* = ptr WAVEOUTCAPS2W NPWAVEOUTCAPS2W* = ptr WAVEOUTCAPS2W LPWAVEOUTCAPS2W* = ptr WAVEOUTCAPS2W @@ -151,6 +164,7 @@ dwFormats*: DWORD wChannels*: WORD wReserved1*: WORD + PWAVEINCAPSA* = ptr WAVEINCAPSA NPWAVEINCAPSA* = ptr WAVEINCAPSA LPWAVEINCAPSA* = ptr WAVEINCAPSA @@ -162,6 +176,7 @@ dwFormats*: DWORD wChannels*: WORD wReserved1*: WORD + PWAVEINCAPSW* = ptr WAVEINCAPSW NPWAVEINCAPSW* = ptr WAVEINCAPSW LPWAVEINCAPSW* = ptr WAVEINCAPSW @@ -176,6 +191,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PWAVEINCAPS2A* = ptr WAVEINCAPS2A NPWAVEINCAPS2A* = ptr WAVEINCAPS2A LPWAVEINCAPS2A* = ptr WAVEINCAPS2A @@ -190,6 +206,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PWAVEINCAPS2W* = ptr WAVEINCAPS2W NPWAVEINCAPS2W* = ptr WAVEINCAPS2W LPWAVEINCAPS2W* = ptr WAVEINCAPS2W @@ -199,12 +216,14 @@ nSamplesPerSec*: DWORD nAvgBytesPerSec*: DWORD nBlockAlign*: WORD + PWAVEFORMAT* = ptr WAVEFORMAT NPWAVEFORMAT* = ptr WAVEFORMAT LPWAVEFORMAT* = ptr WAVEFORMAT PCMWAVEFORMAT* {.pure, packed.} = object wf*: WAVEFORMAT wBitsPerSample*: WORD + PPCMWAVEFORMAT* = ptr PCMWAVEFORMAT NPPCMWAVEFORMAT* = ptr PCMWAVEFORMAT LPPCMWAVEFORMAT* = ptr PCMWAVEFORMAT @@ -216,6 +235,7 @@ nBlockAlign*: WORD wBitsPerSample*: WORD cbSize*: WORD + PWAVEFORMATEX* = ptr WAVEFORMATEX NPWAVEFORMATEX* = ptr WAVEFORMATEX LPWAVEFORMATEX* = ptr WAVEFORMATEX @@ -226,8 +246,8 @@ LPHMIDISTRM* = ptr HMIDISTRM MIDICALLBACK* = DRVCALLBACK LPMIDICALLBACK* = ptr MIDICALLBACK -const - MIDIPATCHSIZE* = 128 + +const MIDIPATCHSIZE* = 128 type PATCHARRAY* = array[MIDIPATCHSIZE, WORD] KEYARRAY* = array[MIDIPATCHSIZE, WORD] @@ -241,6 +261,7 @@ wNotes*: WORD wChannelMask*: WORD dwSupport*: DWORD + PMIDIOUTCAPSA* = ptr MIDIOUTCAPSA NPMIDIOUTCAPSA* = ptr MIDIOUTCAPSA LPMIDIOUTCAPSA* = ptr MIDIOUTCAPSA @@ -254,6 +275,7 @@ wNotes*: WORD wChannelMask*: WORD dwSupport*: DWORD + PMIDIOUTCAPSW* = ptr MIDIOUTCAPSW NPMIDIOUTCAPSW* = ptr MIDIOUTCAPSW LPMIDIOUTCAPSW* = ptr MIDIOUTCAPSW @@ -270,6 +292,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PMIDIOUTCAPS2A* = ptr MIDIOUTCAPS2A NPMIDIOUTCAPS2A* = ptr MIDIOUTCAPS2A LPMIDIOUTCAPS2A* = ptr MIDIOUTCAPS2A @@ -286,6 +309,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PMIDIOUTCAPS2W* = ptr MIDIOUTCAPS2W NPMIDIOUTCAPS2W* = ptr MIDIOUTCAPS2W LPMIDIOUTCAPS2W* = ptr MIDIOUTCAPS2W @@ -295,6 +319,7 @@ vDriverVersion*: MMVERSION szPname*: array[MAXPNAMELEN, CHAR] dwSupport*: DWORD + PMIDIINCAPSA* = ptr MIDIINCAPSA NPMIDIINCAPSA* = ptr MIDIINCAPSA LPMIDIINCAPSA* = ptr MIDIINCAPSA @@ -304,6 +329,7 @@ vDriverVersion*: MMVERSION szPname*: array[MAXPNAMELEN, WCHAR] dwSupport*: DWORD + PMIDIINCAPSW* = ptr MIDIINCAPSW NPMIDIINCAPSW* = ptr MIDIINCAPSW LPMIDIINCAPSW* = ptr MIDIINCAPSW @@ -316,6 +342,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PMIDIINCAPS2A* = ptr MIDIINCAPS2A NPMIDIINCAPS2A* = ptr MIDIINCAPS2A LPMIDIINCAPS2A* = ptr MIDIINCAPS2A @@ -328,6 +355,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PMIDIINCAPS2W* = ptr MIDIINCAPS2W NPMIDIINCAPS2W* = ptr MIDIINCAPS2W LPMIDIINCAPS2W* = ptr MIDIINCAPS2W @@ -341,16 +369,19 @@ reserved*: DWORD_PTR dwOffset*: DWORD dwReserved*: array[8, DWORD_PTR] + PMIDIHDR* = ptr MIDIHDR NPMIDIHDR* = ptr MIDIHDR LPMIDIHDR* = ptr MIDIHDR TMIDIPROPTIMEDIV* {.pure.} = object cbStruct*: DWORD dwTimeDiv*: DWORD + LPMIDIPROPTIMEDIV* = ptr TMIDIPROPTIMEDIV TMIDIPROPTEMPO* {.pure.} = object cbStruct*: DWORD dwTempo*: DWORD + LPMIDIPROPTEMPO* = ptr TMIDIPROPTEMPO AUXCAPSA* {.pure.} = object wMid*: WORD @@ -360,6 +391,7 @@ wTechnology*: WORD wReserved1*: WORD dwSupport*: DWORD + PAUXCAPSA* = ptr AUXCAPSA NPAUXCAPSA* = ptr AUXCAPSA LPAUXCAPSA* = ptr AUXCAPSA @@ -371,6 +403,7 @@ wTechnology*: WORD wReserved1*: WORD dwSupport*: DWORD + PAUXCAPSW* = ptr AUXCAPSW NPAUXCAPSW* = ptr AUXCAPSW LPAUXCAPSW* = ptr AUXCAPSW @@ -385,6 +418,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PAUXCAPS2A* = ptr AUXCAPS2A NPAUXCAPS2A* = ptr AUXCAPS2A LPAUXCAPS2A* = ptr AUXCAPS2A @@ -399,6 +433,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PAUXCAPS2W* = ptr AUXCAPS2W NPAUXCAPS2W* = ptr AUXCAPS2W LPAUXCAPS2W* = ptr AUXCAPS2W @@ -411,6 +446,7 @@ szPname*: array[MAXPNAMELEN, CHAR] fdwSupport*: DWORD cDestinations*: DWORD + PMIXERCAPSA* = ptr MIXERCAPSA LPMIXERCAPSA* = ptr MIXERCAPSA MIXERCAPSW* {.pure.} = object @@ -420,6 +456,7 @@ szPname*: array[MAXPNAMELEN, WCHAR] fdwSupport*: DWORD cDestinations*: DWORD + PMIXERCAPSW* = ptr MIXERCAPSW LPMIXERCAPSW* = ptr MIXERCAPSW MIXERCAPS2A* {.pure.} = object @@ -432,6 +469,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PMIXERCAPS2A* = ptr MIXERCAPS2A LPMIXERCAPS2A* = ptr MIXERCAPS2A MIXERCAPS2W* {.pure.} = object @@ -444,8 +482,10 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PMIXERCAPS2W* = ptr MIXERCAPS2W LPMIXERCAPS2W* = ptr MIXERCAPS2W + const MIXER_SHORT_NAME_CHARS* = 16 MIXER_LONG_NAME_CHARS* = 64 @@ -457,6 +497,7 @@ wPid*: WORD vDriverVersion*: MMVERSION szPname*: array[MAXPNAMELEN, CHAR] + MIXERLINEA* {.pure, packed.} = object cbStruct*: DWORD dwDestination*: DWORD @@ -471,6 +512,7 @@ szShortName*: array[MIXER_SHORT_NAME_CHARS, CHAR] szName*: array[MIXER_LONG_NAME_CHARS, CHAR] Target*: MIXERLINEA_Target + PMIXERLINEA* = ptr MIXERLINEA LPMIXERLINEA* = ptr MIXERLINEA MIXERLINEW_Target* {.pure.} = object @@ -480,6 +522,7 @@ wPid*: WORD vDriverVersion*: MMVERSION szPname*: array[MAXPNAMELEN, WCHAR] + MIXERLINEW* {.pure, packed.} = object cbStruct*: DWORD dwDestination*: DWORD @@ -494,22 +537,27 @@ szShortName*: array[MIXER_SHORT_NAME_CHARS, WCHAR] szName*: array[MIXER_LONG_NAME_CHARS, WCHAR] Target*: MIXERLINEW_Target + PMIXERLINEW* = ptr MIXERLINEW LPMIXERLINEW* = ptr MIXERLINEW MIXERCONTROLA_Bounds_STRUCT1* {.pure.} = object lMinimum*: LONG lMaximum*: LONG + MIXERCONTROLA_Bounds_STRUCT2* {.pure.} = object dwMinimum*: DWORD dwMaximum*: DWORD + MIXERCONTROLA_Bounds* {.pure, union.} = object struct1*: MIXERCONTROLA_Bounds_STRUCT1 struct2*: MIXERCONTROLA_Bounds_STRUCT2 dwReserved*: array[6, DWORD] + MIXERCONTROLA_Metrics* {.pure, union.} = object cSteps*: DWORD cbCustomData*: DWORD dwReserved*: array[6, DWORD] + MIXERCONTROLA* {.pure.} = object cbStruct*: DWORD dwControlID*: DWORD @@ -520,22 +568,27 @@ szName*: array[MIXER_LONG_NAME_CHARS, CHAR] Bounds*: MIXERCONTROLA_Bounds Metrics*: MIXERCONTROLA_Metrics + PMIXERCONTROLA* = ptr MIXERCONTROLA LPMIXERCONTROLA* = ptr MIXERCONTROLA MIXERCONTROLW_Bounds_STRUCT1* {.pure.} = object lMinimum*: LONG lMaximum*: LONG + MIXERCONTROLW_Bounds_STRUCT2* {.pure.} = object dwMinimum*: DWORD dwMaximum*: DWORD + MIXERCONTROLW_Bounds* {.pure, union.} = object struct1*: MIXERCONTROLW_Bounds_STRUCT1 struct2*: MIXERCONTROLW_Bounds_STRUCT2 dwReserved*: array[6, DWORD] + MIXERCONTROLW_Metrics* {.pure, union.} = object cSteps*: DWORD cbCustomData*: DWORD dwReserved*: array[6, DWORD] + MIXERCONTROLW* {.pure.} = object cbStruct*: DWORD dwControlID*: DWORD @@ -546,11 +599,13 @@ szName*: array[MIXER_LONG_NAME_CHARS, WCHAR] Bounds*: MIXERCONTROLW_Bounds Metrics*: MIXERCONTROLW_Metrics + PMIXERCONTROLW* = ptr MIXERCONTROLW LPMIXERCONTROLW* = ptr MIXERCONTROLW MIXERLINECONTROLSA_UNION1* {.pure, union.} = object dwControlID*: DWORD dwControlType*: DWORD + MIXERLINECONTROLSA* {.pure, packed.} = object cbStruct*: DWORD dwLineID*: DWORD @@ -558,11 +613,13 @@ cControls*: DWORD cbmxctrl*: DWORD pamxctrl*: LPMIXERCONTROLA + PMIXERLINECONTROLSA* = ptr MIXERLINECONTROLSA LPMIXERLINECONTROLSA* = ptr MIXERLINECONTROLSA MIXERLINECONTROLSW_UNION1* {.pure, union.} = object dwControlID*: DWORD dwControlType*: DWORD + MIXERLINECONTROLSW* {.pure, packed.} = object cbStruct*: DWORD dwLineID*: DWORD @@ -570,11 +627,13 @@ cControls*: DWORD cbmxctrl*: DWORD pamxctrl*: LPMIXERCONTROLW + PMIXERLINECONTROLSW* = ptr MIXERLINECONTROLSW LPMIXERLINECONTROLSW* = ptr MIXERLINECONTROLSW MIXERCONTROLDETAILS_UNION1* {.pure, union.} = object hwndOwner*: HWND cMultipleItems*: DWORD + MIXERCONTROLDETAILS* {.pure, packed.} = object cbStruct*: DWORD dwControlID*: DWORD @@ -582,42 +641,51 @@ union1*: MIXERCONTROLDETAILS_UNION1 cbDetails*: DWORD paDetails*: LPVOID + PMIXERCONTROLDETAILS* = ptr MIXERCONTROLDETAILS LPMIXERCONTROLDETAILS* = ptr MIXERCONTROLDETAILS MIXERCONTROLDETAILS_LISTTEXTA* {.pure.} = object dwParam1*: DWORD dwParam2*: DWORD szName*: array[MIXER_LONG_NAME_CHARS, CHAR] + PMIXERCONTROLDETAILS_LISTTEXTA* = ptr MIXERCONTROLDETAILS_LISTTEXTA LPMIXERCONTROLDETAILS_LISTTEXTA* = ptr MIXERCONTROLDETAILS_LISTTEXTA MIXERCONTROLDETAILS_LISTTEXTW* {.pure.} = object dwParam1*: DWORD dwParam2*: DWORD szName*: array[MIXER_LONG_NAME_CHARS, WCHAR] + PMIXERCONTROLDETAILS_LISTTEXTW* = ptr MIXERCONTROLDETAILS_LISTTEXTW LPMIXERCONTROLDETAILS_LISTTEXTW* = ptr MIXERCONTROLDETAILS_LISTTEXTW MIXERCONTROLDETAILS_BOOLEAN* {.pure.} = object fValue*: LONG + PMIXERCONTROLDETAILS_BOOLEAN* = ptr MIXERCONTROLDETAILS_BOOLEAN LPMIXERCONTROLDETAILS_BOOLEAN* = ptr MIXERCONTROLDETAILS_BOOLEAN MIXERCONTROLDETAILS_SIGNED* {.pure.} = object lValue*: LONG + PMIXERCONTROLDETAILS_SIGNED* = ptr MIXERCONTROLDETAILS_SIGNED LPMIXERCONTROLDETAILS_SIGNED* = ptr MIXERCONTROLDETAILS_SIGNED MIXERCONTROLDETAILS_UNSIGNED* {.pure.} = object dwValue*: DWORD + PMIXERCONTROLDETAILS_UNSIGNED* = ptr MIXERCONTROLDETAILS_UNSIGNED LPMIXERCONTROLDETAILS_UNSIGNED* = ptr MIXERCONTROLDETAILS_UNSIGNED - TIMECALLBACK* = proc (uTimerID: UINT, uMsg: UINT, dwUser: DWORD_PTR, dw1: DWORD_PTR, dw2: DWORD_PTR): void {.stdcall.} + TIMECALLBACK* = proc( + uTimerID: UINT, uMsg: UINT, dwUser: DWORD_PTR, dw1: DWORD_PTR, dw2: DWORD_PTR + ): void {.stdcall.} LPTIMECALLBACK* = ptr TIMECALLBACK TIMECAPS* {.pure.} = object wPeriodMin*: UINT wPeriodMax*: UINT + PTIMECAPS* = ptr TIMECAPS NPTIMECAPS* = ptr TIMECAPS LPTIMECAPS* = ptr TIMECAPS -const - MAX_JOYSTICKOEMVXDNAME* = 260 + +const MAX_JOYSTICKOEMVXDNAME* = 260 type JOYCAPSA* {.pure.} = object wMid*: WORD @@ -644,6 +712,7 @@ wMaxButtons*: UINT szRegKey*: array[MAXPNAMELEN, CHAR] szOEMVxD*: array[MAX_JOYSTICKOEMVXDNAME, CHAR] + PJOYCAPSA* = ptr JOYCAPSA NPJOYCAPSA* = ptr JOYCAPSA LPJOYCAPSA* = ptr JOYCAPSA @@ -672,6 +741,7 @@ wMaxButtons*: UINT szRegKey*: array[MAXPNAMELEN, WCHAR] szOEMVxD*: array[MAX_JOYSTICKOEMVXDNAME, WCHAR] + PJOYCAPSW* = ptr JOYCAPSW NPJOYCAPSW* = ptr JOYCAPSW LPJOYCAPSW* = ptr JOYCAPSW @@ -703,6 +773,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PJOYCAPS2A* = ptr JOYCAPS2A NPJOYCAPS2A* = ptr JOYCAPS2A LPJOYCAPS2A* = ptr JOYCAPS2A @@ -734,6 +805,7 @@ ManufacturerGuid*: GUID ProductGuid*: GUID NameGuid*: GUID + PJOYCAPS2W* = ptr JOYCAPS2W NPJOYCAPS2W* = ptr JOYCAPS2W LPJOYCAPS2W* = ptr JOYCAPS2W @@ -742,6 +814,7 @@ wYpos*: UINT wZpos*: UINT wButtons*: UINT + PJOYINFO* = ptr JOYINFO NPJOYINFO* = ptr JOYINFO LPJOYINFO* = ptr JOYINFO @@ -759,10 +832,13 @@ dwPOV*: DWORD dwReserved1*: DWORD dwReserved2*: DWORD + PJOYINFOEX* = ptr JOYINFOEX NPJOYINFOEX* = ptr JOYINFOEX LPJOYINFOEX* = ptr JOYINFOEX - MMIOPROC* = proc (lpmmioinfo: LPSTR, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM): LRESULT {.stdcall.} + MMIOPROC* = proc( + lpmmioinfo: LPSTR, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM + ): LRESULT {.stdcall.} LPMMIOPROC* = ptr MMIOPROC MMIOINFO* {.pure, packed.} = object dwFlags*: DWORD @@ -781,6 +857,7 @@ dwReserved1*: DWORD dwReserved2*: DWORD hmmio*: HMMIO + PMMIOINFO* = ptr MMIOINFO NPMMIOINFO* = ptr MMIOINFO LPMMIOINFO* = ptr MMIOINFO @@ -791,6 +868,7 @@ fccType*: FOURCC dwDataOffset*: DWORD dwFlags*: DWORD + PMMCKINFO* = ptr MMCKINFO NPMMCKINFO* = ptr MMCKINFO LPMMCKINFO* = ptr MMCKINFO @@ -798,6 +876,7 @@ MCIDEVICEID* = UINT MCI_GENERIC_PARMS* {.pure.} = object dwCallback*: DWORD_PTR + PMCI_GENERIC_PARMS* = ptr MCI_GENERIC_PARMS LPMCI_GENERIC_PARMS* = ptr MCI_GENERIC_PARMS MCI_OPEN_PARMSA* {.pure, packed.} = object @@ -806,6 +885,7 @@ lpstrDeviceType*: LPCSTR lpstrElementName*: LPCSTR lpstrAlias*: LPCSTR + PMCI_OPEN_PARMSA* = ptr MCI_OPEN_PARMSA LPMCI_OPEN_PARMSA* = ptr MCI_OPEN_PARMSA MCI_OPEN_PARMSW* {.pure, packed.} = object @@ -814,17 +894,20 @@ lpstrDeviceType*: LPCWSTR lpstrElementName*: LPCWSTR lpstrAlias*: LPCWSTR + PMCI_OPEN_PARMSW* = ptr MCI_OPEN_PARMSW LPMCI_OPEN_PARMSW* = ptr MCI_OPEN_PARMSW MCI_PLAY_PARMS* {.pure.} = object dwCallback*: DWORD_PTR dwFrom*: DWORD dwTo*: DWORD + PMCI_PLAY_PARMS* = ptr MCI_PLAY_PARMS LPMCI_PLAY_PARMS* = ptr MCI_PLAY_PARMS MCI_SEEK_PARMS* {.pure, packed.} = object dwCallback*: DWORD_PTR dwTo*: DWORD + PMCI_SEEK_PARMS* = ptr MCI_SEEK_PARMS LPMCI_SEEK_PARMS* = ptr MCI_SEEK_PARMS MCI_STATUS_PARMS* {.pure.} = object @@ -832,22 +915,26 @@ dwReturn*: DWORD_PTR dwItem*: DWORD dwTrack*: DWORD + PMCI_STATUS_PARMS* = ptr MCI_STATUS_PARMS LPMCI_STATUS_PARMS* = ptr MCI_STATUS_PARMS MCI_INFO_PARMSA* {.pure, packed.} = object dwCallback*: DWORD_PTR lpstrReturn*: LPSTR dwRetSize*: DWORD + LPMCI_INFO_PARMSA* = ptr MCI_INFO_PARMSA MCI_INFO_PARMSW* {.pure, packed.} = object dwCallback*: DWORD_PTR lpstrReturn*: LPWSTR dwRetSize*: DWORD + LPMCI_INFO_PARMSW* = ptr MCI_INFO_PARMSW MCI_GETDEVCAPS_PARMS* {.pure.} = object dwCallback*: DWORD_PTR dwReturn*: DWORD dwItem*: DWORD + PMCI_GETDEVCAPS_PARMS* = ptr MCI_GETDEVCAPS_PARMS LPMCI_GETDEVCAPS_PARMS* = ptr MCI_GETDEVCAPS_PARMS MCI_SYSINFO_PARMSA* {.pure, packed.} = object @@ -856,6 +943,7 @@ dwRetSize*: DWORD dwNumber*: DWORD wDeviceType*: UINT + PMCI_SYSINFO_PARMSA* = ptr MCI_SYSINFO_PARMSA LPMCI_SYSINFO_PARMSA* = ptr MCI_SYSINFO_PARMSA MCI_SYSINFO_PARMSW* {.pure, packed.} = object @@ -864,65 +952,77 @@ dwRetSize*: DWORD dwNumber*: DWORD wDeviceType*: UINT + PMCI_SYSINFO_PARMSW* = ptr MCI_SYSINFO_PARMSW LPMCI_SYSINFO_PARMSW* = ptr MCI_SYSINFO_PARMSW MCI_SET_PARMS* {.pure.} = object dwCallback*: DWORD_PTR dwTimeFormat*: DWORD dwAudio*: DWORD + PMCI_SET_PARMS* = ptr MCI_SET_PARMS LPMCI_SET_PARMS* = ptr MCI_SET_PARMS MCI_BREAK_PARMS* {.pure, packed.} = object dwCallback*: DWORD_PTR nVirtKey*: int32 hwndBreak*: HWND + PMCI_BREAK_PARMS* = ptr MCI_BREAK_PARMS LPMCI_BREAK_PARMS* = ptr MCI_BREAK_PARMS MCI_SAVE_PARMSA* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCSTR + PMCI_SAVE_PARMSA* = ptr MCI_SAVE_PARMSA LPMCI_SAVE_PARMSA* = ptr MCI_SAVE_PARMSA MCI_SAVE_PARMSW* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCWSTR + PMCI_SAVE_PARMSW* = ptr MCI_SAVE_PARMSW LPMCI_SAVE_PARMSW* = ptr MCI_SAVE_PARMSW MCI_LOAD_PARMSA* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCSTR + PMCI_LOAD_PARMSA* = ptr MCI_LOAD_PARMSA LPMCI_LOAD_PARMSA* = ptr MCI_LOAD_PARMSA MCI_LOAD_PARMSW* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCWSTR + PMCI_LOAD_PARMSW* = ptr MCI_LOAD_PARMSW LPMCI_LOAD_PARMSW* = ptr MCI_LOAD_PARMSW MCI_RECORD_PARMS* {.pure.} = object dwCallback*: DWORD_PTR dwFrom*: DWORD dwTo*: DWORD + LPMCI_RECORD_PARMS* = ptr MCI_RECORD_PARMS MCI_VD_PLAY_PARMS* {.pure, packed.} = object dwCallback*: DWORD_PTR dwFrom*: DWORD dwTo*: DWORD dwSpeed*: DWORD + PMCI_VD_PLAY_PARMS* = ptr MCI_VD_PLAY_PARMS LPMCI_VD_PLAY_PARMS* = ptr MCI_VD_PLAY_PARMS MCI_VD_STEP_PARMS* {.pure, packed.} = object dwCallback*: DWORD_PTR dwFrames*: DWORD + PMCI_VD_STEP_PARMS* = ptr MCI_VD_STEP_PARMS LPMCI_VD_STEP_PARMS* = ptr MCI_VD_STEP_PARMS MCI_VD_ESCAPE_PARMSA* {.pure.} = object dwCallback*: DWORD_PTR lpstrCommand*: LPCSTR + PMCI_VD_ESCAPE_PARMSA* = ptr MCI_VD_ESCAPE_PARMSA LPMCI_VD_ESCAPE_PARMSA* = ptr MCI_VD_ESCAPE_PARMSA MCI_VD_ESCAPE_PARMSW* {.pure.} = object dwCallback*: DWORD_PTR lpstrCommand*: LPCWSTR + PMCI_VD_ESCAPE_PARMSW* = ptr MCI_VD_ESCAPE_PARMSW LPMCI_VD_ESCAPE_PARMSW* = ptr MCI_VD_ESCAPE_PARMSW MCI_WAVE_OPEN_PARMSA* {.pure, packed.} = object @@ -932,6 +1032,7 @@ lpstrElementName*: LPCSTR lpstrAlias*: LPCSTR dwBufferSeconds*: DWORD + PMCI_WAVE_OPEN_PARMSA* = ptr MCI_WAVE_OPEN_PARMSA LPMCI_WAVE_OPEN_PARMSA* = ptr MCI_WAVE_OPEN_PARMSA MCI_WAVE_OPEN_PARMSW* {.pure, packed.} = object @@ -941,12 +1042,14 @@ lpstrElementName*: LPCWSTR lpstrAlias*: LPCWSTR dwBufferSeconds*: DWORD + PMCI_WAVE_OPEN_PARMSW* = ptr MCI_WAVE_OPEN_PARMSW LPMCI_WAVE_OPEN_PARMSW* = ptr MCI_WAVE_OPEN_PARMSW MCI_WAVE_DELETE_PARMS* {.pure.} = object dwCallback*: DWORD_PTR dwFrom*: DWORD dwTo*: DWORD + PMCI_WAVE_DELETE_PARMS* = ptr MCI_WAVE_DELETE_PARMS LPMCI_WAVE_DELETE_PARMS* = ptr MCI_WAVE_DELETE_PARMS MCI_WAVE_SET_PARMS* {.pure.} = object @@ -965,6 +1068,7 @@ wReserved4*: WORD wBitsPerSample*: WORD wReserved5*: WORD + PMCI_WAVE_SET_PARMS* = ptr MCI_WAVE_SET_PARMS LPMCI_WAVE_SET_PARMS* = ptr MCI_WAVE_SET_PARMS MCI_SEQ_SET_PARMS* {.pure, packed.} = object @@ -976,6 +1080,7 @@ dwSlave*: DWORD dwMaster*: DWORD dwOffset*: DWORD + PMCI_SEQ_SET_PARMS* = ptr MCI_SEQ_SET_PARMS LPMCI_SEQ_SET_PARMS* = ptr MCI_SEQ_SET_PARMS MCI_ANIM_OPEN_PARMSA* {.pure, packed.} = object @@ -986,6 +1091,7 @@ lpstrAlias*: LPCSTR dwStyle*: DWORD hWndParent*: HWND + PMCI_ANIM_OPEN_PARMSA* = ptr MCI_ANIM_OPEN_PARMSA LPMCI_ANIM_OPEN_PARMSA* = ptr MCI_ANIM_OPEN_PARMSA MCI_ANIM_OPEN_PARMSW* {.pure, packed.} = object @@ -996,6 +1102,7 @@ lpstrAlias*: LPCWSTR dwStyle*: DWORD hWndParent*: HWND + PMCI_ANIM_OPEN_PARMSW* = ptr MCI_ANIM_OPEN_PARMSW LPMCI_ANIM_OPEN_PARMSW* = ptr MCI_ANIM_OPEN_PARMSW MCI_ANIM_PLAY_PARMS* {.pure, packed.} = object @@ -1003,11 +1110,13 @@ dwFrom*: DWORD dwTo*: DWORD dwSpeed*: DWORD + PMCI_ANIM_PLAY_PARMS* = ptr MCI_ANIM_PLAY_PARMS LPMCI_ANIM_PLAY_PARMS* = ptr MCI_ANIM_PLAY_PARMS MCI_ANIM_STEP_PARMS* {.pure, packed.} = object dwCallback*: DWORD_PTR dwFrames*: DWORD + PMCI_ANIM_STEP_PARMS* = ptr MCI_ANIM_STEP_PARMS LPMCI_ANIM_STEP_PARMS* = ptr MCI_ANIM_STEP_PARMS MCI_ANIM_WINDOW_PARMSA* {.pure, packed.} = object @@ -1015,6 +1124,7 @@ hWnd*: HWND nCmdShow*: UINT lpstrText*: LPCSTR + PMCI_ANIM_WINDOW_PARMSA* = ptr MCI_ANIM_WINDOW_PARMSA LPMCI_ANIM_WINDOW_PARMSA* = ptr MCI_ANIM_WINDOW_PARMSA MCI_ANIM_WINDOW_PARMSW* {.pure, packed.} = object @@ -1022,17 +1132,20 @@ hWnd*: HWND nCmdShow*: UINT lpstrText*: LPCWSTR + PMCI_ANIM_WINDOW_PARMSW* = ptr MCI_ANIM_WINDOW_PARMSW LPMCI_ANIM_WINDOW_PARMSW* = ptr MCI_ANIM_WINDOW_PARMSW MCI_ANIM_RECT_PARMS* {.pure.} = object dwCallback*: DWORD_PTR rc*: RECT + PMCI_ANIM_RECT_PARMS* = ptr MCI_ANIM_RECT_PARMS LPMCI_ANIM_RECT_PARMS* = ptr MCI_ANIM_RECT_PARMS MCI_ANIM_UPDATE_PARMS* {.pure.} = object dwCallback*: DWORD_PTR rc*: RECT hDC*: HDC + PMCI_ANIM_UPDATE_PARMS* = ptr MCI_ANIM_UPDATE_PARMS LPMCI_ANIM_UPDATE_PARMS* = ptr MCI_ANIM_UPDATE_PARMS MCI_OVLY_OPEN_PARMSA* {.pure, packed.} = object @@ -1043,6 +1156,7 @@ lpstrAlias*: LPCSTR dwStyle*: DWORD hWndParent*: HWND + PMCI_OVLY_OPEN_PARMSA* = ptr MCI_OVLY_OPEN_PARMSA LPMCI_OVLY_OPEN_PARMSA* = ptr MCI_OVLY_OPEN_PARMSA MCI_OVLY_OPEN_PARMSW* {.pure, packed.} = object @@ -1053,6 +1167,7 @@ lpstrAlias*: LPCWSTR dwStyle*: DWORD hWndParent*: HWND + PMCI_OVLY_OPEN_PARMSW* = ptr MCI_OVLY_OPEN_PARMSW LPMCI_OVLY_OPEN_PARMSW* = ptr MCI_OVLY_OPEN_PARMSW MCI_OVLY_WINDOW_PARMSA* {.pure, packed.} = object @@ -1060,6 +1175,7 @@ hWnd*: HWND nCmdShow*: UINT lpstrText*: LPCSTR + PMCI_OVLY_WINDOW_PARMSA* = ptr MCI_OVLY_WINDOW_PARMSA LPMCI_OVLY_WINDOW_PARMSA* = ptr MCI_OVLY_WINDOW_PARMSA MCI_OVLY_WINDOW_PARMSW* {.pure, packed.} = object @@ -1067,46 +1183,54 @@ hWnd*: HWND nCmdShow*: UINT lpstrText*: LPCWSTR + PMCI_OVLY_WINDOW_PARMSW* = ptr MCI_OVLY_WINDOW_PARMSW LPMCI_OVLY_WINDOW_PARMSW* = ptr MCI_OVLY_WINDOW_PARMSW MCI_OVLY_RECT_PARMS* {.pure.} = object dwCallback*: DWORD_PTR rc*: RECT + PMCI_OVLY_RECT_PARMS* = ptr MCI_OVLY_RECT_PARMS LPMCI_OVLY_RECT_PARMS* = ptr MCI_OVLY_RECT_PARMS MCI_OVLY_SAVE_PARMSA* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCSTR rc*: RECT + PMCI_OVLY_SAVE_PARMSA* = ptr MCI_OVLY_SAVE_PARMSA LPMCI_OVLY_SAVE_PARMSA* = ptr MCI_OVLY_SAVE_PARMSA MCI_OVLY_SAVE_PARMSW* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCWSTR rc*: RECT + PMCI_OVLY_SAVE_PARMSW* = ptr MCI_OVLY_SAVE_PARMSW LPMCI_OVLY_SAVE_PARMSW* = ptr MCI_OVLY_SAVE_PARMSW MCI_OVLY_LOAD_PARMSA* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCSTR rc*: RECT + PMCI_OVLY_LOAD_PARMSA* = ptr MCI_OVLY_LOAD_PARMSA LPMCI_OVLY_LOAD_PARMSA* = ptr MCI_OVLY_LOAD_PARMSA MCI_OVLY_LOAD_PARMSW* {.pure.} = object dwCallback*: DWORD_PTR lpfilename*: LPCWSTR rc*: RECT + PMCI_OVLY_LOAD_PARMSW* = ptr MCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMSW* = ptr MCI_OVLY_LOAD_PARMSW WAVEFORMATEXTENSIBLE_Samples* {.pure, union.} = object wValidBitsPerSample*: WORD wSamplesPerBlock*: WORD wReserved*: WORD + TWAVEFORMATEXTENSIBLE* {.pure, packed.} = object Format*: WAVEFORMATEX Samples*: WAVEFORMATEXTENSIBLE_Samples dwChannelMask*: DWORD SubFormat*: GUID + PWAVEFORMATEXTENSIBLE* = ptr TWAVEFORMATEXTENSIBLE WAVEFORMATPCMEX* = TWAVEFORMATEXTENSIBLE PWAVEFORMATPCMEX* = ptr WAVEFORMATPCMEX @@ -1119,6 +1243,7 @@ ADPCMCOEFSET* {.pure.} = object iCoef1*: int16 iCoef2*: int16 + PADPCMCOEFSET* = ptr ADPCMCOEFSET NPADPCMCOEFSET* = ptr ADPCMCOEFSET LPADPCMCOEFSET* = ptr ADPCMCOEFSET @@ -1127,6 +1252,7 @@ wSamplesPerBlock*: WORD wNumCoef*: WORD aCoef*: UncheckedArray[ADPCMCOEFSET] + PADPCMWAVEFORMAT* = ptr ADPCMWAVEFORMAT NPADPCMWAVEFORMAT* = ptr ADPCMWAVEFORMAT LPADPCMWAVEFORMAT* = ptr ADPCMWAVEFORMAT @@ -1135,30 +1261,35 @@ wReserved*: WORD ulContentId*: ULONG wfxSecure*: WAVEFORMATEX + PDRMWAVEFORMAT* = ptr DRMWAVEFORMAT NPDRMWAVEFORMAT* = ptr DRMWAVEFORMAT LPDRMWAVEFORMAT* = ptr DRMWAVEFORMAT DVIADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PDVIADPCMWAVEFORMAT* = ptr DVIADPCMWAVEFORMAT NPDVIADPCMWAVEFORMAT* = ptr DVIADPCMWAVEFORMAT LPDVIADPCMWAVEFORMAT* = ptr DVIADPCMWAVEFORMAT IMAADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PIMAADPCMWAVEFORMAT* = ptr IMAADPCMWAVEFORMAT NPIMAADPCMWAVEFORMAT* = ptr IMAADPCMWAVEFORMAT LPIMAADPCMWAVEFORMAT* = ptr IMAADPCMWAVEFORMAT MEDIASPACEADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wRevision*: WORD + PMEDIASPACEADPCMWAVEFORMAT* = ptr MEDIASPACEADPCMWAVEFORMAT NPMEDIASPACEADPCMWAVEFORMAT* = ptr MEDIASPACEADPCMWAVEFORMAT LPMEDIASPACEADPCMWAVEFORMAT* = ptr MEDIASPACEADPCMWAVEFORMAT SIERRAADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wRevision*: WORD + PSIERRAADPCMWAVEFORMAT* = ptr SIERRAADPCMWAVEFORMAT NPSIERRAADPCMWAVEFORMAT* = ptr SIERRAADPCMWAVEFORMAT LPSIERRAADPCMWAVEFORMAT* = ptr SIERRAADPCMWAVEFORMAT @@ -1166,32 +1297,38 @@ wfx*: WAVEFORMATEX cbExtraSize*: WORD nAuxBlockSize*: WORD + PG723_ADPCMWAVEFORMAT* = ptr G723_ADPCMWAVEFORMAT NPG723_ADPCMWAVEFORMAT* = ptr G723_ADPCMWAVEFORMAT LPG723_ADPCMWAVEFORMAT* = ptr G723_ADPCMWAVEFORMAT DIGISTDWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PDIGISTDWAVEFORMAT* = ptr DIGISTDWAVEFORMAT NPDIGISTDWAVEFORMAT* = ptr DIGISTDWAVEFORMAT LPDIGISTDWAVEFORMAT* = ptr DIGISTDWAVEFORMAT DIGIFIXWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PDIGIFIXWAVEFORMAT* = ptr DIGIFIXWAVEFORMAT NPDIGIFIXWAVEFORMAT* = ptr DIGIFIXWAVEFORMAT LPDIGIFIXWAVEFORMAT* = ptr DIGIFIXWAVEFORMAT DIALOGICOKIADPCMWAVEFORMAT* {.pure, packed.} = object ewf*: WAVEFORMATEX + PDIALOGICOKIADPCMWAVEFORMAT* = ptr DIALOGICOKIADPCMWAVEFORMAT NPDIALOGICOKIADPCMWAVEFORMAT* = ptr DIALOGICOKIADPCMWAVEFORMAT LPDIALOGICOKIADPCMWAVEFORMAT* = ptr DIALOGICOKIADPCMWAVEFORMAT YAMAHA_ADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PYAMAHA_ADPCMWAVEFORMAT* = ptr YAMAHA_ADPCMWAVEFORMAT NPYAMAHA_ADPCMWAVEFORMAT* = ptr YAMAHA_ADPCMWAVEFORMAT LPYAMAHA_ADPCMWAVEFORMAT* = ptr YAMAHA_ADPCMWAVEFORMAT SONARCWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wCompType*: WORD + PSONARCWAVEFORMAT* = ptr SONARCWAVEFORMAT NPSONARCWAVEFORMAT* = ptr SONARCWAVEFORMAT LPSONARCWAVEFORMAT* = ptr SONARCWAVEFORMAT @@ -1200,74 +1337,87 @@ wRevision*: WORD nSamplesPerBlock*: WORD abReserved*: array[28, BYTE] + PTRUESPEECHWAVEFORMAT* = ptr TRUESPEECHWAVEFORMAT NPTRUESPEECHWAVEFORMAT* = ptr TRUESPEECHWAVEFORMAT LPTRUESPEECHWAVEFORMAT* = ptr TRUESPEECHWAVEFORMAT ECHOSC1WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PECHOSC1WAVEFORMAT* = ptr ECHOSC1WAVEFORMAT NPECHOSC1WAVEFORMAT* = ptr ECHOSC1WAVEFORMAT LPECHOSC1WAVEFORMAT* = ptr ECHOSC1WAVEFORMAT AUDIOFILE_AF36WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PAUDIOFILE_AF36WAVEFORMAT* = ptr AUDIOFILE_AF36WAVEFORMAT NPAUDIOFILE_AF36WAVEFORMAT* = ptr AUDIOFILE_AF36WAVEFORMAT LPAUDIOFILE_AF36WAVEFORMAT* = ptr AUDIOFILE_AF36WAVEFORMAT APTXWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PAPTXWAVEFORMAT* = ptr APTXWAVEFORMAT NPAPTXWAVEFORMAT* = ptr APTXWAVEFORMAT LPAPTXWAVEFORMAT* = ptr APTXWAVEFORMAT AUDIOFILE_AF10WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PAUDIOFILE_AF10WAVEFORMAT* = ptr AUDIOFILE_AF10WAVEFORMAT NPAUDIOFILE_AF10WAVEFORMAT* = ptr AUDIOFILE_AF10WAVEFORMAT LPAUDIOFILE_AF10WAVEFORMAT* = ptr AUDIOFILE_AF10WAVEFORMAT GSM610WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PGSM610WAVEFORMAT* = ptr GSM610WAVEFORMAT NPGSM610WAVEFORMAT* = ptr GSM610WAVEFORMAT LPGSM610WAVEFORMAT* = ptr GSM610WAVEFORMAT ADPCMEWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PADPCMEWAVEFORMAT* = ptr ADPCMEWAVEFORMAT NPADPCMEWAVEFORMAT* = ptr ADPCMEWAVEFORMAT LPADPCMEWAVEFORMAT* = ptr ADPCMEWAVEFORMAT CONTRESVQLPCWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PCONTRESVQLPCWAVEFORMAT* = ptr CONTRESVQLPCWAVEFORMAT NPCONTRESVQLPCWAVEFORMAT* = ptr CONTRESVQLPCWAVEFORMAT LPCONTRESVQLPCWAVEFORMAT* = ptr CONTRESVQLPCWAVEFORMAT DIGIREALWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PDIGIREALWAVEFORMAT* = ptr DIGIREALWAVEFORMAT NPDIGIREALWAVEFORMAT* = ptr DIGIREALWAVEFORMAT LPDIGIREALWAVEFORMAT* = ptr DIGIREALWAVEFORMAT DIGIADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PDIGIADPCMWAVEFORMAT* = ptr DIGIADPCMWAVEFORMAT NPDIGIADPCMWAVEFORMAT* = ptr DIGIADPCMWAVEFORMAT LPDIGIADPCMWAVEFORMAT* = ptr DIGIADPCMWAVEFORMAT CONTRESCR10WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PCONTRESCR10WAVEFORMAT* = ptr CONTRESCR10WAVEFORMAT NPCONTRESCR10WAVEFORMAT* = ptr CONTRESCR10WAVEFORMAT LPCONTRESCR10WAVEFORMAT* = ptr CONTRESCR10WAVEFORMAT NMS_VBXADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD + PNMS_VBXADPCMWAVEFORMAT* = ptr NMS_VBXADPCMWAVEFORMAT NPNMS_VBXADPCMWAVEFORMAT* = ptr NMS_VBXADPCMWAVEFORMAT LPNMS_VBXADPCMWAVEFORMAT* = ptr NMS_VBXADPCMWAVEFORMAT G721_ADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX nAuxBlockSize*: WORD + PG721_ADPCMWAVEFORMAT* = ptr G721_ADPCMWAVEFORMAT NPG721_ADPCMWAVEFORMAT* = ptr G721_ADPCMWAVEFORMAT LPG721_ADPCMWAVEFORMAT* = ptr G721_ADPCMWAVEFORMAT @@ -1281,6 +1431,7 @@ fwHeadFlags*: WORD dwPTSLow*: DWORD dwPTSHigh*: DWORD + PMPEG1WAVEFORMAT* = ptr MPEG1WAVEFORMAT NPMPEG1WAVEFORMAT* = ptr MPEG1WAVEFORMAT LPMPEG1WAVEFORMAT* = ptr MPEG1WAVEFORMAT @@ -1291,6 +1442,7 @@ nBlockSize*: WORD nFramesPerBlock*: WORD nCodecDelay*: WORD + PMPEGLAYER3WAVEFORMAT* = ptr MPEGLAYER3WAVEFORMAT NPMPEGLAYER3WAVEFORMAT* = ptr MPEGLAYER3WAVEFORMAT LPMPEGLAYER3WAVEFORMAT* = ptr MPEGLAYER3WAVEFORMAT @@ -1301,12 +1453,14 @@ wStructType*: WORD wReserved1*: WORD dwReserved2*: DWORD + PHEAACWAVEINFO* = ptr HEAACWAVEINFO NPHEAACWAVEINFO* = ptr HEAACWAVEINFO LPHEAACWAVEINFO* = ptr HEAACWAVEINFO HEAACWAVEFORMAT* {.pure, packed.} = object wfInfo*: HEAACWAVEINFO pbAudioSpecificConfig*: array[1, BYTE] + PHEAACWAVEFORMAT* = ptr HEAACWAVEFORMAT NPHEAACWAVEFORMAT* = ptr HEAACWAVEFORMAT LPHEAACWAVEFORMAT* = ptr HEAACWAVEFORMAT @@ -1314,12 +1468,14 @@ wfx*: WAVEFORMATEX wSamplesPerBlock*: WORD wEncodeOptions*: WORD + LPMSAUDIO1WAVEFORMAT* = ptr MSAUDIO1WAVEFORMAT WMAUDIO2WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX dwSamplesPerBlock*: DWORD wEncodeOptions*: WORD dwSuperBlockAlign*: DWORD + LPWMAUDIO2WAVEFORMAT* = ptr WMAUDIO2WAVEFORMAT WMAUDIO3WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX @@ -1329,58 +1485,69 @@ dwReserved2*: DWORD wEncodeOptions*: WORD wReserved3*: WORD + LPWMAUDIO3WAVEFORMAT* = ptr WMAUDIO3WAVEFORMAT CREATIVEADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wRevision*: WORD + PCREATIVEADPCMWAVEFORMAT* = ptr CREATIVEADPCMWAVEFORMAT NPCREATIVEADPCMWAVEFORMAT* = ptr CREATIVEADPCMWAVEFORMAT LPCREATIVEADPCMWAVEFORMAT* = ptr CREATIVEADPCMWAVEFORMAT CREATIVEFASTSPEECH8WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wRevision*: WORD + PCREATIVEFASTSPEECH8WAVEFORMAT* = ptr CREATIVEFASTSPEECH8WAVEFORMAT NPCREATIVEFASTSPEECH8WAVEFORMAT* = ptr CREATIVEFASTSPEECH8WAVEFORMAT LPCREATIVEFASTSPEECH8WAVEFORMAT* = ptr CREATIVEFASTSPEECH8WAVEFORMAT CREATIVEFASTSPEECH10WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wRevision*: WORD + PCREATIVEFASTSPEECH10WAVEFORMAT* = ptr CREATIVEFASTSPEECH10WAVEFORMAT NPCREATIVEFASTSPEECH10WAVEFORMAT* = ptr CREATIVEFASTSPEECH10WAVEFORMAT LPCREATIVEFASTSPEECH10WAVEFORMAT* = ptr CREATIVEFASTSPEECH10WAVEFORMAT FMTOWNS_SND_WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX wRevision*: WORD + PFMTOWNS_SND_WAVEFORMAT* = ptr FMTOWNS_SND_WAVEFORMAT NPFMTOWNS_SND_WAVEFORMAT* = ptr FMTOWNS_SND_WAVEFORMAT LPFMTOWNS_SND_WAVEFORMAT* = ptr FMTOWNS_SND_WAVEFORMAT OLIGSMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + POLIGSMWAVEFORMAT* = ptr OLIGSMWAVEFORMAT NPOLIGSMWAVEFORMAT* = ptr OLIGSMWAVEFORMAT LPOLIGSMWAVEFORMAT* = ptr OLIGSMWAVEFORMAT OLIADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + POLIADPCMWAVEFORMAT* = ptr OLIADPCMWAVEFORMAT NPOLIADPCMWAVEFORMAT* = ptr OLIADPCMWAVEFORMAT LPOLIADPCMWAVEFORMAT* = ptr OLIADPCMWAVEFORMAT OLICELPWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + POLICELPWAVEFORMAT* = ptr OLICELPWAVEFORMAT NPOLICELPWAVEFORMAT* = ptr OLICELPWAVEFORMAT LPOLICELPWAVEFORMAT* = ptr OLICELPWAVEFORMAT OLISBCWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + POLISBCWAVEFORMAT* = ptr OLISBCWAVEFORMAT NPOLISBCWAVEFORMAT* = ptr OLISBCWAVEFORMAT LPOLISBCWAVEFORMAT* = ptr OLISBCWAVEFORMAT OLIOPRWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + POLIOPRWAVEFORMAT* = ptr OLIOPRWAVEFORMAT NPOLIOPRWAVEFORMAT* = ptr OLIOPRWAVEFORMAT LPOLIOPRWAVEFORMAT* = ptr OLIOPRWAVEFORMAT CSIMAADPCMWAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX + PCSIMAADPCMWAVEFORMAT* = ptr CSIMAADPCMWAVEFORMAT NPCSIMAADPCMWAVEFORMAT* = ptr CSIMAADPCMWAVEFORMAT LPCSIMAADPCMWAVEFORMAT* = ptr CSIMAADPCMWAVEFORMAT @@ -1389,12 +1556,14 @@ dwFilterTag*: DWORD fdwFilter*: DWORD dwReserved*: array[5, DWORD] + PWAVEFILTER* = ptr WAVEFILTER NPWAVEFILTER* = ptr WAVEFILTER LPWAVEFILTER* = ptr WAVEFILTER VOLUMEWAVEFILTER* {.pure.} = object wfltr*: WAVEFILTER dwVolume*: DWORD + PVOLUMEWAVEFILTER* = ptr VOLUMEWAVEFILTER NPVOLUMEWAVEFILTER* = ptr VOLUMEWAVEFILTER LPVOLUMEWAVEFILTER* = ptr VOLUMEWAVEFILTER @@ -1402,9 +1571,11 @@ wfltr*: WAVEFILTER dwVolume*: DWORD dwDelay*: DWORD + PECHOWAVEFILTER* = ptr ECHOWAVEFILTER NPECHOWAVEFILTER* = ptr ECHOWAVEFILTER LPECHOWAVEFILTER* = ptr ECHOWAVEFILTER + const MAXERRORLENGTH* = 256 TIME_MS* = 0x0001 @@ -1463,28 +1634,28 @@ MCI_WAVE_OFFSET* = 1152 MCI_SEQ_OFFSET* = 1216 MMSYSERR_NOERROR* = 0 - MMSYSERR_ERROR* = MMSYSERR_BASE+1 - MMSYSERR_BADDEVICEID* = MMSYSERR_BASE+2 - MMSYSERR_NOTENABLED* = MMSYSERR_BASE+3 - MMSYSERR_ALLOCATED* = MMSYSERR_BASE+4 - MMSYSERR_INVALHANDLE* = MMSYSERR_BASE+5 - MMSYSERR_NODRIVER* = MMSYSERR_BASE+6 - MMSYSERR_NOMEM* = MMSYSERR_BASE+7 - MMSYSERR_NOTSUPPORTED* = MMSYSERR_BASE+8 - MMSYSERR_BADERRNUM* = MMSYSERR_BASE+9 - MMSYSERR_INVALFLAG* = MMSYSERR_BASE+10 - MMSYSERR_INVALPARAM* = MMSYSERR_BASE+11 - MMSYSERR_HANDLEBUSY* = MMSYSERR_BASE+12 - MMSYSERR_INVALIDALIAS* = MMSYSERR_BASE+13 - MMSYSERR_BADDB* = MMSYSERR_BASE+14 - MMSYSERR_KEYNOTFOUND* = MMSYSERR_BASE+15 - MMSYSERR_READERROR* = MMSYSERR_BASE+16 - MMSYSERR_WRITEERROR* = MMSYSERR_BASE+17 - MMSYSERR_DELETEERROR* = MMSYSERR_BASE+18 - MMSYSERR_VALNOTFOUND* = MMSYSERR_BASE+19 - MMSYSERR_NODRIVERCB* = MMSYSERR_BASE+20 - MMSYSERR_MOREDATA* = MMSYSERR_BASE+21 - MMSYSERR_LASTERROR* = MMSYSERR_BASE+21 + MMSYSERR_ERROR* = MMSYSERR_BASE + 1 + MMSYSERR_BADDEVICEID* = MMSYSERR_BASE + 2 + MMSYSERR_NOTENABLED* = MMSYSERR_BASE + 3 + MMSYSERR_ALLOCATED* = MMSYSERR_BASE + 4 + MMSYSERR_INVALHANDLE* = MMSYSERR_BASE + 5 + MMSYSERR_NODRIVER* = MMSYSERR_BASE + 6 + MMSYSERR_NOMEM* = MMSYSERR_BASE + 7 + MMSYSERR_NOTSUPPORTED* = MMSYSERR_BASE + 8 + MMSYSERR_BADERRNUM* = MMSYSERR_BASE + 9 + MMSYSERR_INVALFLAG* = MMSYSERR_BASE + 10 + MMSYSERR_INVALPARAM* = MMSYSERR_BASE + 11 + MMSYSERR_HANDLEBUSY* = MMSYSERR_BASE + 12 + MMSYSERR_INVALIDALIAS* = MMSYSERR_BASE + 13 + MMSYSERR_BADDB* = MMSYSERR_BASE + 14 + MMSYSERR_KEYNOTFOUND* = MMSYSERR_BASE + 15 + MMSYSERR_READERROR* = MMSYSERR_BASE + 16 + MMSYSERR_WRITEERROR* = MMSYSERR_BASE + 17 + MMSYSERR_DELETEERROR* = MMSYSERR_BASE + 18 + MMSYSERR_VALNOTFOUND* = MMSYSERR_BASE + 19 + MMSYSERR_NODRIVERCB* = MMSYSERR_BASE + 20 + MMSYSERR_MOREDATA* = MMSYSERR_BASE + 21 + MMSYSERR_LASTERROR* = MMSYSERR_BASE + 21 DRV_LOAD* = 0x0001 DRV_ENABLE* = 0x0002 DRV_OPEN* = 0x0003 @@ -1506,7 +1677,7 @@ DRV_OK* = DRVCNF_OK DRV_RESTART* = DRVCNF_RESTART DRV_MCI_FIRST* = DRV_RESERVED - DRV_MCI_LAST* = DRV_RESERVED+0xFFF + DRV_MCI_LAST* = DRV_RESERVED + 0xFFF CALLBACK_TYPEMASK* = 0x00070000 CALLBACK_NULL* = 0x00000000 CALLBACK_WINDOW* = 0x00010000 @@ -1528,11 +1699,11 @@ SND_PURGE* = 0x0040 SND_APPLICATION* = 0x0080 SND_ALIAS_START* = 0 - WAVERR_BADFORMAT* = WAVERR_BASE+0 - WAVERR_STILLPLAYING* = WAVERR_BASE+1 - WAVERR_UNPREPARED* = WAVERR_BASE+2 - WAVERR_SYNC* = WAVERR_BASE+3 - WAVERR_LASTERROR* = WAVERR_BASE+3 + WAVERR_BADFORMAT* = WAVERR_BASE + 0 + WAVERR_STILLPLAYING* = WAVERR_BASE + 1 + WAVERR_UNPREPARED* = WAVERR_BASE + 2 + WAVERR_SYNC* = WAVERR_BASE + 3 + WAVERR_LASTERROR* = WAVERR_BASE + 3 WOM_OPEN* = MM_WOM_OPEN WOM_CLOSE* = MM_WOM_CLOSE WOM_DONE* = MM_WOM_DONE @@ -1582,15 +1753,15 @@ WAVE_FORMAT_96M16* = 0x00040000 WAVE_FORMAT_96S16* = 0x00080000 WAVE_FORMAT_PCM* = 1 - MIDIERR_UNPREPARED* = MIDIERR_BASE+0 - MIDIERR_STILLPLAYING* = MIDIERR_BASE+1 - MIDIERR_NOMAP* = MIDIERR_BASE+2 - MIDIERR_NOTREADY* = MIDIERR_BASE+3 - MIDIERR_NODEVICE* = MIDIERR_BASE+4 - MIDIERR_INVALIDSETUP* = MIDIERR_BASE+5 - MIDIERR_BADOPENMODE* = MIDIERR_BASE+6 - MIDIERR_DONT_CONTINUE* = MIDIERR_BASE+7 - MIDIERR_LASTERROR* = MIDIERR_BASE+7 + MIDIERR_UNPREPARED* = MIDIERR_BASE + 0 + MIDIERR_STILLPLAYING* = MIDIERR_BASE + 1 + MIDIERR_NOMAP* = MIDIERR_BASE + 2 + MIDIERR_NOTREADY* = MIDIERR_BASE + 3 + MIDIERR_NODEVICE* = MIDIERR_BASE + 4 + MIDIERR_INVALIDSETUP* = MIDIERR_BASE + 5 + MIDIERR_BADOPENMODE* = MIDIERR_BASE + 6 + MIDIERR_DONT_CONTINUE* = MIDIERR_BASE + 7 + MIDIERR_LASTERROR* = MIDIERR_BASE + 7 MIM_OPEN* = MM_MIM_OPEN MIM_CLOSE* = MM_MIM_CLOSE MIM_DATA* = MM_MIM_DATA @@ -1642,10 +1813,10 @@ AUXCAPS_AUXIN* = 2 AUXCAPS_VOLUME* = 0x0001 AUXCAPS_LRVOLUME* = 0x0002 - MIXERR_INVALLINE* = MIXERR_BASE+0 - MIXERR_INVALCONTROL* = MIXERR_BASE+1 - MIXERR_INVALVALUE* = MIXERR_BASE+2 - MIXERR_LASTERROR* = MIXERR_BASE+2 + MIXERR_INVALLINE* = MIXERR_BASE + 0 + MIXERR_INVALCONTROL* = MIXERR_BASE + 1 + MIXERR_INVALVALUE* = MIXERR_BASE + 2 + MIXERR_LASTERROR* = MIXERR_BASE + 2 MIXER_OBJECTF_HANDLE* = 0x80000000'i32 MIXER_OBJECTF_MIXER* = 0x00000000 MIXER_OBJECTF_HMIXER* = MIXER_OBJECTF_HANDLE or MIXER_OBJECTF_MIXER @@ -1662,29 +1833,29 @@ MIXERLINE_LINEF_DISCONNECTED* = 0x00008000 MIXERLINE_LINEF_SOURCE* = 0x80000000'i32 MIXERLINE_COMPONENTTYPE_DST_FIRST* = 0x0 - MIXERLINE_COMPONENTTYPE_DST_UNDEFINED* = MIXERLINE_COMPONENTTYPE_DST_FIRST+0 - MIXERLINE_COMPONENTTYPE_DST_DIGITAL* = MIXERLINE_COMPONENTTYPE_DST_FIRST+1 - MIXERLINE_COMPONENTTYPE_DST_LINE* = MIXERLINE_COMPONENTTYPE_DST_FIRST+2 - MIXERLINE_COMPONENTTYPE_DST_MONITOR* = MIXERLINE_COMPONENTTYPE_DST_FIRST+3 - MIXERLINE_COMPONENTTYPE_DST_SPEAKERS* = MIXERLINE_COMPONENTTYPE_DST_FIRST+4 - MIXERLINE_COMPONENTTYPE_DST_HEADPHONES* = MIXERLINE_COMPONENTTYPE_DST_FIRST+5 - MIXERLINE_COMPONENTTYPE_DST_TELEPHONE* = MIXERLINE_COMPONENTTYPE_DST_FIRST+6 - MIXERLINE_COMPONENTTYPE_DST_WAVEIN* = MIXERLINE_COMPONENTTYPE_DST_FIRST+7 - MIXERLINE_COMPONENTTYPE_DST_VOICEIN* = MIXERLINE_COMPONENTTYPE_DST_FIRST+8 - MIXERLINE_COMPONENTTYPE_DST_LAST* = MIXERLINE_COMPONENTTYPE_DST_FIRST+8 + MIXERLINE_COMPONENTTYPE_DST_UNDEFINED* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 0 + MIXERLINE_COMPONENTTYPE_DST_DIGITAL* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 1 + MIXERLINE_COMPONENTTYPE_DST_LINE* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 2 + MIXERLINE_COMPONENTTYPE_DST_MONITOR* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 3 + MIXERLINE_COMPONENTTYPE_DST_SPEAKERS* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 4 + MIXERLINE_COMPONENTTYPE_DST_HEADPHONES* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 5 + MIXERLINE_COMPONENTTYPE_DST_TELEPHONE* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 6 + MIXERLINE_COMPONENTTYPE_DST_WAVEIN* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 7 + MIXERLINE_COMPONENTTYPE_DST_VOICEIN* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 + MIXERLINE_COMPONENTTYPE_DST_LAST* = MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 MIXERLINE_COMPONENTTYPE_SRC_FIRST* = 0x00001000 - MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+0 - MIXERLINE_COMPONENTTYPE_SRC_DIGITAL* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+1 - MIXERLINE_COMPONENTTYPE_SRC_LINE* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+2 - MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+3 - MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+4 - MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+5 - MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+6 - MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+7 - MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+8 - MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+9 - MIXERLINE_COMPONENTTYPE_SRC_ANALOG* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+10 - MIXERLINE_COMPONENTTYPE_SRC_LAST* = MIXERLINE_COMPONENTTYPE_SRC_FIRST+10 + MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0 + MIXERLINE_COMPONENTTYPE_SRC_DIGITAL* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1 + MIXERLINE_COMPONENTTYPE_SRC_LINE* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2 + MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3 + MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4 + MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5 + MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6 + MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7 + MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8 + MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9 + MIXERLINE_COMPONENTTYPE_SRC_ANALOG* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 + MIXERLINE_COMPONENTTYPE_SRC_LAST* = MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 MIXERLINE_TARGETTYPE_UNDEFINED* = 0 MIXERLINE_TARGETTYPE_WAVEOUT* = 1 MIXERLINE_TARGETTYPE_WAVEIN* = 2 @@ -1724,37 +1895,62 @@ MIXERCONTROL_CT_UNITS_UNSIGNED* = 0x00030000 MIXERCONTROL_CT_UNITS_DECIBELS* = 0x00040000 MIXERCONTROL_CT_UNITS_PERCENT* = 0x00050000 - MIXERCONTROL_CONTROLTYPE_CUSTOM* = MIXERCONTROL_CT_CLASS_CUSTOM or MIXERCONTROL_CT_UNITS_CUSTOM - MIXERCONTROL_CONTROLTYPE_BOOLEANMETER* = MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or MIXERCONTROL_CT_UNITS_BOOLEAN - MIXERCONTROL_CONTROLTYPE_SIGNEDMETER* = MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or MIXERCONTROL_CT_UNITS_SIGNED - MIXERCONTROL_CONTROLTYPE_PEAKMETER* = MIXERCONTROL_CONTROLTYPE_SIGNEDMETER+1 - MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER* = MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or MIXERCONTROL_CT_UNITS_UNSIGNED - MIXERCONTROL_CONTROLTYPE_BOOLEAN* = MIXERCONTROL_CT_CLASS_SWITCH or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN or MIXERCONTROL_CT_UNITS_BOOLEAN - MIXERCONTROL_CONTROLTYPE_ONOFF* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+1 - MIXERCONTROL_CONTROLTYPE_MUTE* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+2 - MIXERCONTROL_CONTROLTYPE_MONO* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+3 - MIXERCONTROL_CONTROLTYPE_LOUDNESS* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+4 - MIXERCONTROL_CONTROLTYPE_STEREOENH* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+5 - MIXERCONTROL_CONTROLTYPE_BASS_BOOST* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+0x00002277 - MIXERCONTROL_CONTROLTYPE_BUTTON* = MIXERCONTROL_CT_CLASS_SWITCH or MIXERCONTROL_CT_SC_SWITCH_BUTTON or MIXERCONTROL_CT_UNITS_BOOLEAN - MIXERCONTROL_CONTROLTYPE_DECIBELS* = MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_DECIBELS - MIXERCONTROL_CONTROLTYPE_SIGNED* = MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_SIGNED - MIXERCONTROL_CONTROLTYPE_UNSIGNED* = MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_UNSIGNED - MIXERCONTROL_CONTROLTYPE_PERCENT* = MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_PERCENT - MIXERCONTROL_CONTROLTYPE_SLIDER* = MIXERCONTROL_CT_CLASS_SLIDER or MIXERCONTROL_CT_UNITS_SIGNED - MIXERCONTROL_CONTROLTYPE_PAN* = MIXERCONTROL_CONTROLTYPE_SLIDER+1 - MIXERCONTROL_CONTROLTYPE_QSOUNDPAN* = MIXERCONTROL_CONTROLTYPE_SLIDER+2 - MIXERCONTROL_CONTROLTYPE_FADER* = MIXERCONTROL_CT_CLASS_FADER or MIXERCONTROL_CT_UNITS_UNSIGNED - MIXERCONTROL_CONTROLTYPE_VOLUME* = MIXERCONTROL_CONTROLTYPE_FADER+1 - MIXERCONTROL_CONTROLTYPE_BASS* = MIXERCONTROL_CONTROLTYPE_FADER+2 - MIXERCONTROL_CONTROLTYPE_TREBLE* = MIXERCONTROL_CONTROLTYPE_FADER+3 - MIXERCONTROL_CONTROLTYPE_EQUALIZER* = MIXERCONTROL_CONTROLTYPE_FADER+4 - MIXERCONTROL_CONTROLTYPE_SINGLESELECT* = MIXERCONTROL_CT_CLASS_LIST or MIXERCONTROL_CT_SC_LIST_SINGLE or MIXERCONTROL_CT_UNITS_BOOLEAN - MIXERCONTROL_CONTROLTYPE_MUX* = MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1 - MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT* = MIXERCONTROL_CT_CLASS_LIST or MIXERCONTROL_CT_SC_LIST_MULTIPLE or MIXERCONTROL_CT_UNITS_BOOLEAN - MIXERCONTROL_CONTROLTYPE_MIXER* = MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT+1 - MIXERCONTROL_CONTROLTYPE_MICROTIME* = MIXERCONTROL_CT_CLASS_TIME or MIXERCONTROL_CT_SC_TIME_MICROSECS or MIXERCONTROL_CT_UNITS_UNSIGNED - MIXERCONTROL_CONTROLTYPE_MILLITIME* = MIXERCONTROL_CT_CLASS_TIME or MIXERCONTROL_CT_SC_TIME_MILLISECS or MIXERCONTROL_CT_UNITS_UNSIGNED + MIXERCONTROL_CONTROLTYPE_CUSTOM* = + MIXERCONTROL_CT_CLASS_CUSTOM or MIXERCONTROL_CT_UNITS_CUSTOM + MIXERCONTROL_CONTROLTYPE_BOOLEANMETER* = + MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or + MIXERCONTROL_CT_UNITS_BOOLEAN + MIXERCONTROL_CONTROLTYPE_SIGNEDMETER* = + MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or + MIXERCONTROL_CT_UNITS_SIGNED + MIXERCONTROL_CONTROLTYPE_PEAKMETER* = MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1 + MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER* = + MIXERCONTROL_CT_CLASS_METER or MIXERCONTROL_CT_SC_METER_POLLED or + MIXERCONTROL_CT_UNITS_UNSIGNED + MIXERCONTROL_CONTROLTYPE_BOOLEAN* = + MIXERCONTROL_CT_CLASS_SWITCH or MIXERCONTROL_CT_SC_SWITCH_BOOLEAN or + MIXERCONTROL_CT_UNITS_BOOLEAN + MIXERCONTROL_CONTROLTYPE_ONOFF* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1 + MIXERCONTROL_CONTROLTYPE_MUTE* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2 + MIXERCONTROL_CONTROLTYPE_MONO* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3 + MIXERCONTROL_CONTROLTYPE_LOUDNESS* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4 + MIXERCONTROL_CONTROLTYPE_STEREOENH* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5 + MIXERCONTROL_CONTROLTYPE_BASS_BOOST* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 0x00002277 + MIXERCONTROL_CONTROLTYPE_BUTTON* = + MIXERCONTROL_CT_CLASS_SWITCH or MIXERCONTROL_CT_SC_SWITCH_BUTTON or + MIXERCONTROL_CT_UNITS_BOOLEAN + MIXERCONTROL_CONTROLTYPE_DECIBELS* = + MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_DECIBELS + MIXERCONTROL_CONTROLTYPE_SIGNED* = + MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_SIGNED + MIXERCONTROL_CONTROLTYPE_UNSIGNED* = + MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_UNSIGNED + MIXERCONTROL_CONTROLTYPE_PERCENT* = + MIXERCONTROL_CT_CLASS_NUMBER or MIXERCONTROL_CT_UNITS_PERCENT + MIXERCONTROL_CONTROLTYPE_SLIDER* = + MIXERCONTROL_CT_CLASS_SLIDER or MIXERCONTROL_CT_UNITS_SIGNED + MIXERCONTROL_CONTROLTYPE_PAN* = MIXERCONTROL_CONTROLTYPE_SLIDER + 1 + MIXERCONTROL_CONTROLTYPE_QSOUNDPAN* = MIXERCONTROL_CONTROLTYPE_SLIDER + 2 + MIXERCONTROL_CONTROLTYPE_FADER* = + MIXERCONTROL_CT_CLASS_FADER or MIXERCONTROL_CT_UNITS_UNSIGNED + MIXERCONTROL_CONTROLTYPE_VOLUME* = MIXERCONTROL_CONTROLTYPE_FADER + 1 + MIXERCONTROL_CONTROLTYPE_BASS* = MIXERCONTROL_CONTROLTYPE_FADER + 2 + MIXERCONTROL_CONTROLTYPE_TREBLE* = MIXERCONTROL_CONTROLTYPE_FADER + 3 + MIXERCONTROL_CONTROLTYPE_EQUALIZER* = MIXERCONTROL_CONTROLTYPE_FADER + 4 + MIXERCONTROL_CONTROLTYPE_SINGLESELECT* = + MIXERCONTROL_CT_CLASS_LIST or MIXERCONTROL_CT_SC_LIST_SINGLE or + MIXERCONTROL_CT_UNITS_BOOLEAN + MIXERCONTROL_CONTROLTYPE_MUX* = MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1 + MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT* = + MIXERCONTROL_CT_CLASS_LIST or MIXERCONTROL_CT_SC_LIST_MULTIPLE or + MIXERCONTROL_CT_UNITS_BOOLEAN + MIXERCONTROL_CONTROLTYPE_MIXER* = MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1 + MIXERCONTROL_CONTROLTYPE_MICROTIME* = + MIXERCONTROL_CT_CLASS_TIME or MIXERCONTROL_CT_SC_TIME_MICROSECS or + MIXERCONTROL_CT_UNITS_UNSIGNED + MIXERCONTROL_CONTROLTYPE_MILLITIME* = + MIXERCONTROL_CT_CLASS_TIME or MIXERCONTROL_CT_SC_TIME_MILLISECS or + MIXERCONTROL_CT_UNITS_UNSIGNED MIXER_GETLINECONTROLSF_ALL* = 0x00000000 MIXER_GETLINECONTROLSF_ONEBYID* = 0x00000001 MIXER_GETLINECONTROLSF_ONEBYTYPE* = 0x00000002 @@ -1766,8 +1962,8 @@ MIXER_SETCONTROLDETAILSF_CUSTOM* = 0x00000001 MIXER_SETCONTROLDETAILSF_QUERYMASK* = 0x0000000F TIMERR_NOERROR* = 0 - TIMERR_NOCANDO* = TIMERR_BASE+1 - TIMERR_STRUCT* = TIMERR_BASE+33 + TIMERR_NOCANDO* = TIMERR_BASE + 1 + TIMERR_STRUCT* = TIMERR_BASE + 33 TIME_ONESHOT* = 0x0000 TIME_PERIODIC* = 0x0001 TIME_CALLBACK_FUNCTION* = 0x0000 @@ -1775,9 +1971,9 @@ TIME_CALLBACK_EVENT_PULSE* = 0x0020 TIME_KILL_SYNCHRONOUS* = 0x0100 JOYERR_NOERROR* = 0 - JOYERR_PARMS* = JOYERR_BASE+5 - JOYERR_NOCANDO* = JOYERR_BASE+6 - JOYERR_UNPLUGGED* = JOYERR_BASE+7 + JOYERR_PARMS* = JOYERR_BASE + 5 + JOYERR_NOCANDO* = JOYERR_BASE + 6 + JOYERR_UNPLUGGED* = JOYERR_BASE + 7 JOY_BUTTON1* = 0x0001 JOY_BUTTON2* = 0x0002 JOY_BUTTON3* = 0x0004 @@ -1830,7 +2026,9 @@ JOY_RETURNPOVCTS* = 0x00000200 JOY_RETURNCENTERED* = 0x00000400 JOY_USEDEADZONE* = 0x00000800 - JOY_RETURNALL* = JOY_RETURNX or JOY_RETURNY or JOY_RETURNZ or JOY_RETURNR or JOY_RETURNU or JOY_RETURNV or JOY_RETURNPOV or JOY_RETURNBUTTONS + JOY_RETURNALL* = + JOY_RETURNX or JOY_RETURNY or JOY_RETURNZ or JOY_RETURNR or JOY_RETURNU or + JOY_RETURNV or JOY_RETURNPOV or JOY_RETURNBUTTONS JOY_CAL_READALWAYS* = 0x00010000 JOY_CAL_READXYONLY* = 0x00020000 JOY_CAL_READ3* = 0x00040000 @@ -1853,22 +2051,22 @@ JOYCAPS_POV4DIR* = 0x0020 JOYCAPS_POVCTS* = 0x0040 MMIOERR_BASE* = 256 - MMIOERR_FILENOTFOUND* = MMIOERR_BASE+1 - MMIOERR_OUTOFMEMORY* = MMIOERR_BASE+2 - MMIOERR_CANNOTOPEN* = MMIOERR_BASE+3 - MMIOERR_CANNOTCLOSE* = MMIOERR_BASE+4 - MMIOERR_CANNOTREAD* = MMIOERR_BASE+5 - MMIOERR_CANNOTWRITE* = MMIOERR_BASE+6 - MMIOERR_CANNOTSEEK* = MMIOERR_BASE+7 - MMIOERR_CANNOTEXPAND* = MMIOERR_BASE+8 - MMIOERR_CHUNKNOTFOUND* = MMIOERR_BASE+9 - MMIOERR_UNBUFFERED* = MMIOERR_BASE+10 - MMIOERR_PATHNOTFOUND* = MMIOERR_BASE+11 - MMIOERR_ACCESSDENIED* = MMIOERR_BASE+12 - MMIOERR_SHARINGVIOLATION* = MMIOERR_BASE+13 - MMIOERR_NETWORKERROR* = MMIOERR_BASE+14 - MMIOERR_TOOMANYOPENFILES* = MMIOERR_BASE+15 - MMIOERR_INVALIDFILE* = MMIOERR_BASE+16 + MMIOERR_FILENOTFOUND* = MMIOERR_BASE + 1 + MMIOERR_OUTOFMEMORY* = MMIOERR_BASE + 2 + MMIOERR_CANNOTOPEN* = MMIOERR_BASE + 3 + MMIOERR_CANNOTCLOSE* = MMIOERR_BASE + 4 + MMIOERR_CANNOTREAD* = MMIOERR_BASE + 5 + MMIOERR_CANNOTWRITE* = MMIOERR_BASE + 6 + MMIOERR_CANNOTSEEK* = MMIOERR_BASE + 7 + MMIOERR_CANNOTEXPAND* = MMIOERR_BASE + 8 + MMIOERR_CHUNKNOTFOUND* = MMIOERR_BASE + 9 + MMIOERR_UNBUFFERED* = MMIOERR_BASE + 10 + MMIOERR_PATHNOTFOUND* = MMIOERR_BASE + 11 + MMIOERR_ACCESSDENIED* = MMIOERR_BASE + 12 + MMIOERR_SHARINGVIOLATION* = MMIOERR_BASE + 13 + MMIOERR_NETWORKERROR* = MMIOERR_BASE + 14 + MMIOERR_TOOMANYOPENFILES* = MMIOERR_BASE + 15 + MMIOERR_INVALIDFILE* = MMIOERR_BASE + 16 CFSEPCHAR* = 0x2B MMIO_RWMODE* = 0x00000003 MMIO_SHAREMODE* = 0x00000070 @@ -1912,82 +2110,82 @@ SEEK_CUR* = 1 SEEK_END* = 2 MMIO_DEFAULTBUFFER* = 8192 - MCIERR_INVALID_DEVICE_ID* = MCIERR_BASE+1 - MCIERR_UNRECOGNIZED_KEYWORD* = MCIERR_BASE+3 - MCIERR_UNRECOGNIZED_COMMAND* = MCIERR_BASE+5 - MCIERR_HARDWARE* = MCIERR_BASE+6 - MCIERR_INVALID_DEVICE_NAME* = MCIERR_BASE+7 - MCIERR_OUT_OF_MEMORY* = MCIERR_BASE+8 - MCIERR_DEVICE_OPEN* = MCIERR_BASE+9 - MCIERR_CANNOT_LOAD_DRIVER* = MCIERR_BASE+10 - MCIERR_MISSING_COMMAND_STRING* = MCIERR_BASE+11 - MCIERR_PARAM_OVERFLOW* = MCIERR_BASE+12 - MCIERR_MISSING_STRING_ARGUMENT* = MCIERR_BASE+13 - MCIERR_BAD_INTEGER* = MCIERR_BASE+14 - MCIERR_PARSER_INTERNAL* = MCIERR_BASE+15 - MCIERR_DRIVER_INTERNAL* = MCIERR_BASE+16 - MCIERR_MISSING_PARAMETER* = MCIERR_BASE+17 - MCIERR_UNSUPPORTED_FUNCTION* = MCIERR_BASE+18 - MCIERR_FILE_NOT_FOUND* = MCIERR_BASE+19 - MCIERR_DEVICE_NOT_READY* = MCIERR_BASE+20 - MCIERR_INTERNAL* = MCIERR_BASE+21 - MCIERR_DRIVER* = MCIERR_BASE+22 - MCIERR_CANNOT_USE_ALL* = MCIERR_BASE+23 - MCIERR_MULTIPLE* = MCIERR_BASE+24 - MCIERR_EXTENSION_NOT_FOUND* = MCIERR_BASE+25 - MCIERR_OUTOFRANGE* = MCIERR_BASE+26 - MCIERR_FLAGS_NOT_COMPATIBLE* = MCIERR_BASE+28 - MCIERR_FILE_NOT_SAVED* = MCIERR_BASE+30 - MCIERR_DEVICE_TYPE_REQUIRED* = MCIERR_BASE+31 - MCIERR_DEVICE_LOCKED* = MCIERR_BASE+32 - MCIERR_DUPLICATE_ALIAS* = MCIERR_BASE+33 - MCIERR_BAD_CONSTANT* = MCIERR_BASE+34 - MCIERR_MUST_USE_SHAREABLE* = MCIERR_BASE+35 - MCIERR_MISSING_DEVICE_NAME* = MCIERR_BASE+36 - MCIERR_BAD_TIME_FORMAT* = MCIERR_BASE+37 - MCIERR_NO_CLOSING_QUOTE* = MCIERR_BASE+38 - MCIERR_DUPLICATE_FLAGS* = MCIERR_BASE+39 - MCIERR_INVALID_FILE* = MCIERR_BASE+40 - MCIERR_NULL_PARAMETER_BLOCK* = MCIERR_BASE+41 - MCIERR_UNNAMED_RESOURCE* = MCIERR_BASE+42 - MCIERR_NEW_REQUIRES_ALIAS* = MCIERR_BASE+43 - MCIERR_NOTIFY_ON_AUTO_OPEN* = MCIERR_BASE+44 - MCIERR_NO_ELEMENT_ALLOWED* = MCIERR_BASE+45 - MCIERR_NONAPPLICABLE_FUNCTION* = MCIERR_BASE+46 - MCIERR_ILLEGAL_FOR_AUTO_OPEN* = MCIERR_BASE+47 - MCIERR_FILENAME_REQUIRED* = MCIERR_BASE+48 - MCIERR_EXTRA_CHARACTERS* = MCIERR_BASE+49 - MCIERR_DEVICE_NOT_INSTALLED* = MCIERR_BASE+50 - MCIERR_GET_CD* = MCIERR_BASE+51 - MCIERR_SET_CD* = MCIERR_BASE+52 - MCIERR_SET_DRIVE* = MCIERR_BASE+53 - MCIERR_DEVICE_LENGTH* = MCIERR_BASE+54 - MCIERR_DEVICE_ORD_LENGTH* = MCIERR_BASE+55 - MCIERR_NO_INTEGER* = MCIERR_BASE+56 - MCIERR_WAVE_OUTPUTSINUSE* = MCIERR_BASE+64 - MCIERR_WAVE_SETOUTPUTINUSE* = MCIERR_BASE+65 - MCIERR_WAVE_INPUTSINUSE* = MCIERR_BASE+66 - MCIERR_WAVE_SETINPUTINUSE* = MCIERR_BASE+67 - MCIERR_WAVE_OUTPUTUNSPECIFIED* = MCIERR_BASE+68 - MCIERR_WAVE_INPUTUNSPECIFIED* = MCIERR_BASE+69 - MCIERR_WAVE_OUTPUTSUNSUITABLE* = MCIERR_BASE+70 - MCIERR_WAVE_SETOUTPUTUNSUITABLE* = MCIERR_BASE+71 - MCIERR_WAVE_INPUTSUNSUITABLE* = MCIERR_BASE+72 - MCIERR_WAVE_SETINPUTUNSUITABLE* = MCIERR_BASE+73 - MCIERR_SEQ_DIV_INCOMPATIBLE* = MCIERR_BASE+80 - MCIERR_SEQ_PORT_INUSE* = MCIERR_BASE+81 - MCIERR_SEQ_PORT_NONEXISTENT* = MCIERR_BASE+82 - MCIERR_SEQ_PORT_MAPNODEVICE* = MCIERR_BASE+83 - MCIERR_SEQ_PORT_MISCERROR* = MCIERR_BASE+84 - MCIERR_SEQ_TIMER* = MCIERR_BASE+85 - MCIERR_SEQ_PORTUNSPECIFIED* = MCIERR_BASE+86 - MCIERR_SEQ_NOMIDIPRESENT* = MCIERR_BASE+87 - MCIERR_NO_WINDOW* = MCIERR_BASE+90 - MCIERR_CREATEWINDOW* = MCIERR_BASE+91 - MCIERR_FILE_READ* = MCIERR_BASE+92 - MCIERR_FILE_WRITE* = MCIERR_BASE+93 - MCIERR_NO_IDENTITY* = MCIERR_BASE+94 - MCIERR_CUSTOM_DRIVER_BASE* = MCIERR_BASE+256 + MCIERR_INVALID_DEVICE_ID* = MCIERR_BASE + 1 + MCIERR_UNRECOGNIZED_KEYWORD* = MCIERR_BASE + 3 + MCIERR_UNRECOGNIZED_COMMAND* = MCIERR_BASE + 5 + MCIERR_HARDWARE* = MCIERR_BASE + 6 + MCIERR_INVALID_DEVICE_NAME* = MCIERR_BASE + 7 + MCIERR_OUT_OF_MEMORY* = MCIERR_BASE + 8 + MCIERR_DEVICE_OPEN* = MCIERR_BASE + 9 + MCIERR_CANNOT_LOAD_DRIVER* = MCIERR_BASE + 10 + MCIERR_MISSING_COMMAND_STRING* = MCIERR_BASE + 11 + MCIERR_PARAM_OVERFLOW* = MCIERR_BASE + 12 + MCIERR_MISSING_STRING_ARGUMENT* = MCIERR_BASE + 13 + MCIERR_BAD_INTEGER* = MCIERR_BASE + 14 + MCIERR_PARSER_INTERNAL* = MCIERR_BASE + 15 + MCIERR_DRIVER_INTERNAL* = MCIERR_BASE + 16 + MCIERR_MISSING_PARAMETER* = MCIERR_BASE + 17 + MCIERR_UNSUPPORTED_FUNCTION* = MCIERR_BASE + 18 + MCIERR_FILE_NOT_FOUND* = MCIERR_BASE + 19 + MCIERR_DEVICE_NOT_READY* = MCIERR_BASE + 20 + MCIERR_INTERNAL* = MCIERR_BASE + 21 + MCIERR_DRIVER* = MCIERR_BASE + 22 + MCIERR_CANNOT_USE_ALL* = MCIERR_BASE + 23 + MCIERR_MULTIPLE* = MCIERR_BASE + 24 + MCIERR_EXTENSION_NOT_FOUND* = MCIERR_BASE + 25 + MCIERR_OUTOFRANGE* = MCIERR_BASE + 26 + MCIERR_FLAGS_NOT_COMPATIBLE* = MCIERR_BASE + 28 + MCIERR_FILE_NOT_SAVED* = MCIERR_BASE + 30 + MCIERR_DEVICE_TYPE_REQUIRED* = MCIERR_BASE + 31 + MCIERR_DEVICE_LOCKED* = MCIERR_BASE + 32 + MCIERR_DUPLICATE_ALIAS* = MCIERR_BASE + 33 + MCIERR_BAD_CONSTANT* = MCIERR_BASE + 34 + MCIERR_MUST_USE_SHAREABLE* = MCIERR_BASE + 35 + MCIERR_MISSING_DEVICE_NAME* = MCIERR_BASE + 36 + MCIERR_BAD_TIME_FORMAT* = MCIERR_BASE + 37 + MCIERR_NO_CLOSING_QUOTE* = MCIERR_BASE + 38 + MCIERR_DUPLICATE_FLAGS* = MCIERR_BASE + 39 + MCIERR_INVALID_FILE* = MCIERR_BASE + 40 + MCIERR_NULL_PARAMETER_BLOCK* = MCIERR_BASE + 41 + MCIERR_UNNAMED_RESOURCE* = MCIERR_BASE + 42 + MCIERR_NEW_REQUIRES_ALIAS* = MCIERR_BASE + 43 + MCIERR_NOTIFY_ON_AUTO_OPEN* = MCIERR_BASE + 44 + MCIERR_NO_ELEMENT_ALLOWED* = MCIERR_BASE + 45 + MCIERR_NONAPPLICABLE_FUNCTION* = MCIERR_BASE + 46 + MCIERR_ILLEGAL_FOR_AUTO_OPEN* = MCIERR_BASE + 47 + MCIERR_FILENAME_REQUIRED* = MCIERR_BASE + 48 + MCIERR_EXTRA_CHARACTERS* = MCIERR_BASE + 49 + MCIERR_DEVICE_NOT_INSTALLED* = MCIERR_BASE + 50 + MCIERR_GET_CD* = MCIERR_BASE + 51 + MCIERR_SET_CD* = MCIERR_BASE + 52 + MCIERR_SET_DRIVE* = MCIERR_BASE + 53 + MCIERR_DEVICE_LENGTH* = MCIERR_BASE + 54 + MCIERR_DEVICE_ORD_LENGTH* = MCIERR_BASE + 55 + MCIERR_NO_INTEGER* = MCIERR_BASE + 56 + MCIERR_WAVE_OUTPUTSINUSE* = MCIERR_BASE + 64 + MCIERR_WAVE_SETOUTPUTINUSE* = MCIERR_BASE + 65 + MCIERR_WAVE_INPUTSINUSE* = MCIERR_BASE + 66 + MCIERR_WAVE_SETINPUTINUSE* = MCIERR_BASE + 67 + MCIERR_WAVE_OUTPUTUNSPECIFIED* = MCIERR_BASE + 68 + MCIERR_WAVE_INPUTUNSPECIFIED* = MCIERR_BASE + 69 + MCIERR_WAVE_OUTPUTSUNSUITABLE* = MCIERR_BASE + 70 + MCIERR_WAVE_SETOUTPUTUNSUITABLE* = MCIERR_BASE + 71 + MCIERR_WAVE_INPUTSUNSUITABLE* = MCIERR_BASE + 72 + MCIERR_WAVE_SETINPUTUNSUITABLE* = MCIERR_BASE + 73 + MCIERR_SEQ_DIV_INCOMPATIBLE* = MCIERR_BASE + 80 + MCIERR_SEQ_PORT_INUSE* = MCIERR_BASE + 81 + MCIERR_SEQ_PORT_NONEXISTENT* = MCIERR_BASE + 82 + MCIERR_SEQ_PORT_MAPNODEVICE* = MCIERR_BASE + 83 + MCIERR_SEQ_PORT_MISCERROR* = MCIERR_BASE + 84 + MCIERR_SEQ_TIMER* = MCIERR_BASE + 85 + MCIERR_SEQ_PORTUNSPECIFIED* = MCIERR_BASE + 86 + MCIERR_SEQ_NOMIDIPRESENT* = MCIERR_BASE + 87 + MCIERR_NO_WINDOW* = MCIERR_BASE + 90 + MCIERR_CREATEWINDOW* = MCIERR_BASE + 91 + MCIERR_FILE_READ* = MCIERR_BASE + 92 + MCIERR_FILE_WRITE* = MCIERR_BASE + 93 + MCIERR_NO_IDENTITY* = MCIERR_BASE + 94 + MCIERR_CUSTOM_DRIVER_BASE* = MCIERR_BASE + 256 MCI_FIRST* = DRV_MCI_FIRST MCI_OPEN* = 0x0803 MCI_CLOSE* = 0x0804 @@ -2020,7 +2218,7 @@ MCI_UPDATE* = 0x0854 MCI_RESUME* = 0x0855 MCI_DELETE* = 0x0856 - MCI_USER_MESSAGES* = DRV_MCI_FIRST+0x400 + MCI_USER_MESSAGES* = DRV_MCI_FIRST + 0x400 MCI_LAST* = 0x0FFF MCI_ALL_DEVICE_ID* = MCIDEVICEID(-1) MCI_DEVTYPE_VCR* = 513 @@ -2037,13 +2235,13 @@ MCI_DEVTYPE_FIRST* = MCI_DEVTYPE_VCR MCI_DEVTYPE_LAST* = MCI_DEVTYPE_SEQUENCER MCI_DEVTYPE_FIRST_USER* = 0x1000 - MCI_MODE_NOT_READY* = MCI_STRING_OFFSET+12 - MCI_MODE_STOP* = MCI_STRING_OFFSET+13 - MCI_MODE_PLAY* = MCI_STRING_OFFSET+14 - MCI_MODE_RECORD* = MCI_STRING_OFFSET+15 - MCI_MODE_SEEK* = MCI_STRING_OFFSET+16 - MCI_MODE_PAUSE* = MCI_STRING_OFFSET+17 - MCI_MODE_OPEN* = MCI_STRING_OFFSET+18 + MCI_MODE_NOT_READY* = MCI_STRING_OFFSET + 12 + MCI_MODE_STOP* = MCI_STRING_OFFSET + 13 + MCI_MODE_PLAY* = MCI_STRING_OFFSET + 14 + MCI_MODE_RECORD* = MCI_STRING_OFFSET + 15 + MCI_MODE_SEEK* = MCI_STRING_OFFSET + 16 + MCI_MODE_PAUSE* = MCI_STRING_OFFSET + 17 + MCI_MODE_OPEN* = MCI_STRING_OFFSET + 18 MCI_FORMAT_MILLISECONDS* = 0 MCI_FORMAT_HMS* = 1 MCI_FORMAT_MSF* = 2 @@ -2119,10 +2317,10 @@ MCI_RECORD_OVERWRITE* = 0x00000200 MCI_SAVE_FILE* = 0x00000100 MCI_LOAD_FILE* = 0x00000100 - MCI_VD_MODE_PARK* = MCI_VD_OFFSET+1 - MCI_VD_MEDIA_CLV* = MCI_VD_OFFSET+2 - MCI_VD_MEDIA_CAV* = MCI_VD_OFFSET+3 - MCI_VD_MEDIA_OTHER* = MCI_VD_OFFSET+4 + MCI_VD_MODE_PARK* = MCI_VD_OFFSET + 1 + MCI_VD_MEDIA_CLV* = MCI_VD_OFFSET + 2 + MCI_VD_MEDIA_CAV* = MCI_VD_OFFSET + 3 + MCI_VD_MEDIA_OTHER* = MCI_VD_OFFSET + 4 MCI_VD_FORMAT_TRACK* = 0x4001 MCI_VD_PLAY_REVERSE* = 0x00010000 MCI_VD_PLAY_FAST* = 0x00020000 @@ -2147,10 +2345,10 @@ MCI_VD_STEP_REVERSE* = 0x00020000 MCI_VD_ESCAPE_STRING* = 0x00000100 MCI_CDA_STATUS_TYPE_TRACK* = 0x00004001 - MCI_CDA_TRACK_AUDIO* = MCI_CD_OFFSET+0 - MCI_CDA_TRACK_OTHER* = MCI_CD_OFFSET+1 - MCI_WAVE_PCM* = MCI_WAVE_OFFSET+0 - MCI_WAVE_MAPPER* = MCI_WAVE_OFFSET+1 + MCI_CDA_TRACK_AUDIO* = MCI_CD_OFFSET + 0 + MCI_CDA_TRACK_OTHER* = MCI_CD_OFFSET + 1 + MCI_WAVE_PCM* = MCI_WAVE_OFFSET + 0 + MCI_WAVE_MAPPER* = MCI_WAVE_OFFSET + 1 MCI_WAVE_OPEN_BUFFER* = 0x00010000 MCI_WAVE_SET_FORMATTAG* = 0x00010000 MCI_WAVE_SET_CHANNELS* = 0x00020000 @@ -2171,11 +2369,11 @@ MCI_WAVE_SET_ANYOUTPUT* = 0x08000000 MCI_WAVE_GETDEVCAPS_INPUTS* = 0x00004001 MCI_WAVE_GETDEVCAPS_OUTPUTS* = 0x00004002 - MCI_SEQ_DIV_PPQN* = 0+MCI_SEQ_OFFSET - MCI_SEQ_DIV_SMPTE_24* = 1+MCI_SEQ_OFFSET - MCI_SEQ_DIV_SMPTE_25* = 2+MCI_SEQ_OFFSET - MCI_SEQ_DIV_SMPTE_30DROP* = 3+MCI_SEQ_OFFSET - MCI_SEQ_DIV_SMPTE_30* = 4+MCI_SEQ_OFFSET + MCI_SEQ_DIV_PPQN* = 0 + MCI_SEQ_OFFSET + MCI_SEQ_DIV_SMPTE_24* = 1 + MCI_SEQ_OFFSET + MCI_SEQ_DIV_SMPTE_25* = 2 + MCI_SEQ_OFFSET + MCI_SEQ_DIV_SMPTE_30DROP* = 3 + MCI_SEQ_OFFSET + MCI_SEQ_DIV_SMPTE_30* = 4 + MCI_SEQ_OFFSET MCI_SEQ_FORMAT_SONGPTR* = 0x4001 MCI_SEQ_FILE* = 0x4002 MCI_SEQ_MIDI* = 0x4003 @@ -2644,70 +2842,70 @@ MM_CREATIVE_SBPRO_MIXER* = 408 MM_CREATIVE_SB16_MIXER* = 409 MM_MEDIAVISION_PROAUDIO* = 0x10 - MM_PROAUD_MIDIOUT* = MM_MEDIAVISION_PROAUDIO+1 - MM_PROAUD_MIDIIN* = MM_MEDIAVISION_PROAUDIO+2 - MM_PROAUD_SYNTH* = MM_MEDIAVISION_PROAUDIO+3 - MM_PROAUD_WAVEOUT* = MM_MEDIAVISION_PROAUDIO+4 - MM_PROAUD_WAVEIN* = MM_MEDIAVISION_PROAUDIO+5 - MM_PROAUD_MIXER* = MM_MEDIAVISION_PROAUDIO+6 - MM_PROAUD_AUX* = MM_MEDIAVISION_PROAUDIO+7 + MM_PROAUD_MIDIOUT* = MM_MEDIAVISION_PROAUDIO + 1 + MM_PROAUD_MIDIIN* = MM_MEDIAVISION_PROAUDIO + 2 + MM_PROAUD_SYNTH* = MM_MEDIAVISION_PROAUDIO + 3 + MM_PROAUD_WAVEOUT* = MM_MEDIAVISION_PROAUDIO + 4 + MM_PROAUD_WAVEIN* = MM_MEDIAVISION_PROAUDIO + 5 + MM_PROAUD_MIXER* = MM_MEDIAVISION_PROAUDIO + 6 + MM_PROAUD_AUX* = MM_MEDIAVISION_PROAUDIO + 7 MM_MEDIAVISION_THUNDER* = 0x20 - MM_THUNDER_SYNTH* = MM_MEDIAVISION_THUNDER+3 - MM_THUNDER_WAVEOUT* = MM_MEDIAVISION_THUNDER+4 - MM_THUNDER_WAVEIN* = MM_MEDIAVISION_THUNDER+5 - MM_THUNDER_AUX* = MM_MEDIAVISION_THUNDER+7 + MM_THUNDER_SYNTH* = MM_MEDIAVISION_THUNDER + 3 + MM_THUNDER_WAVEOUT* = MM_MEDIAVISION_THUNDER + 4 + MM_THUNDER_WAVEIN* = MM_MEDIAVISION_THUNDER + 5 + MM_THUNDER_AUX* = MM_MEDIAVISION_THUNDER + 7 MM_MEDIAVISION_TPORT* = 0x40 - MM_TPORT_WAVEOUT* = MM_MEDIAVISION_TPORT+1 - MM_TPORT_WAVEIN* = MM_MEDIAVISION_TPORT+2 - MM_TPORT_SYNTH* = MM_MEDIAVISION_TPORT+3 + MM_TPORT_WAVEOUT* = MM_MEDIAVISION_TPORT + 1 + MM_TPORT_WAVEIN* = MM_MEDIAVISION_TPORT + 2 + MM_TPORT_SYNTH* = MM_MEDIAVISION_TPORT + 3 MM_MEDIAVISION_PROAUDIO_PLUS* = 0x50 - MM_PROAUD_PLUS_MIDIOUT* = MM_MEDIAVISION_PROAUDIO_PLUS+1 - MM_PROAUD_PLUS_MIDIIN* = MM_MEDIAVISION_PROAUDIO_PLUS+2 - MM_PROAUD_PLUS_SYNTH* = MM_MEDIAVISION_PROAUDIO_PLUS+3 - MM_PROAUD_PLUS_WAVEOUT* = MM_MEDIAVISION_PROAUDIO_PLUS+4 - MM_PROAUD_PLUS_WAVEIN* = MM_MEDIAVISION_PROAUDIO_PLUS+5 - MM_PROAUD_PLUS_MIXER* = MM_MEDIAVISION_PROAUDIO_PLUS+6 - MM_PROAUD_PLUS_AUX* = MM_MEDIAVISION_PROAUDIO_PLUS+7 + MM_PROAUD_PLUS_MIDIOUT* = MM_MEDIAVISION_PROAUDIO_PLUS + 1 + MM_PROAUD_PLUS_MIDIIN* = MM_MEDIAVISION_PROAUDIO_PLUS + 2 + MM_PROAUD_PLUS_SYNTH* = MM_MEDIAVISION_PROAUDIO_PLUS + 3 + MM_PROAUD_PLUS_WAVEOUT* = MM_MEDIAVISION_PROAUDIO_PLUS + 4 + MM_PROAUD_PLUS_WAVEIN* = MM_MEDIAVISION_PROAUDIO_PLUS + 5 + MM_PROAUD_PLUS_MIXER* = MM_MEDIAVISION_PROAUDIO_PLUS + 6 + MM_PROAUD_PLUS_AUX* = MM_MEDIAVISION_PROAUDIO_PLUS + 7 MM_MEDIAVISION_PROAUDIO_16* = 0x60 - MM_PROAUD_16_MIDIOUT* = MM_MEDIAVISION_PROAUDIO_16+1 - MM_PROAUD_16_MIDIIN* = MM_MEDIAVISION_PROAUDIO_16+2 - MM_PROAUD_16_SYNTH* = MM_MEDIAVISION_PROAUDIO_16+3 - MM_PROAUD_16_WAVEOUT* = MM_MEDIAVISION_PROAUDIO_16+4 - MM_PROAUD_16_WAVEIN* = MM_MEDIAVISION_PROAUDIO_16+5 - MM_PROAUD_16_MIXER* = MM_MEDIAVISION_PROAUDIO_16+6 - MM_PROAUD_16_AUX* = MM_MEDIAVISION_PROAUDIO_16+7 + MM_PROAUD_16_MIDIOUT* = MM_MEDIAVISION_PROAUDIO_16 + 1 + MM_PROAUD_16_MIDIIN* = MM_MEDIAVISION_PROAUDIO_16 + 2 + MM_PROAUD_16_SYNTH* = MM_MEDIAVISION_PROAUDIO_16 + 3 + MM_PROAUD_16_WAVEOUT* = MM_MEDIAVISION_PROAUDIO_16 + 4 + MM_PROAUD_16_WAVEIN* = MM_MEDIAVISION_PROAUDIO_16 + 5 + MM_PROAUD_16_MIXER* = MM_MEDIAVISION_PROAUDIO_16 + 6 + MM_PROAUD_16_AUX* = MM_MEDIAVISION_PROAUDIO_16 + 7 MM_MEDIAVISION_PROSTUDIO_16* = 0x60 - MM_STUDIO_16_MIDIOUT* = MM_MEDIAVISION_PROSTUDIO_16+1 - MM_STUDIO_16_MIDIIN* = MM_MEDIAVISION_PROSTUDIO_16+2 - MM_STUDIO_16_SYNTH* = MM_MEDIAVISION_PROSTUDIO_16+3 - MM_STUDIO_16_WAVEOUT* = MM_MEDIAVISION_PROSTUDIO_16+4 - MM_STUDIO_16_WAVEIN* = MM_MEDIAVISION_PROSTUDIO_16+5 - MM_STUDIO_16_MIXER* = MM_MEDIAVISION_PROSTUDIO_16+6 - MM_STUDIO_16_AUX* = MM_MEDIAVISION_PROSTUDIO_16+7 + MM_STUDIO_16_MIDIOUT* = MM_MEDIAVISION_PROSTUDIO_16 + 1 + MM_STUDIO_16_MIDIIN* = MM_MEDIAVISION_PROSTUDIO_16 + 2 + MM_STUDIO_16_SYNTH* = MM_MEDIAVISION_PROSTUDIO_16 + 3 + MM_STUDIO_16_WAVEOUT* = MM_MEDIAVISION_PROSTUDIO_16 + 4 + MM_STUDIO_16_WAVEIN* = MM_MEDIAVISION_PROSTUDIO_16 + 5 + MM_STUDIO_16_MIXER* = MM_MEDIAVISION_PROSTUDIO_16 + 6 + MM_STUDIO_16_AUX* = MM_MEDIAVISION_PROSTUDIO_16 + 7 MM_MEDIAVISION_CDPC* = 0x70 - MM_CDPC_MIDIOUT* = MM_MEDIAVISION_CDPC+1 - MM_CDPC_MIDIIN* = MM_MEDIAVISION_CDPC+2 - MM_CDPC_SYNTH* = MM_MEDIAVISION_CDPC+3 - MM_CDPC_WAVEOUT* = MM_MEDIAVISION_CDPC+4 - MM_CDPC_WAVEIN* = MM_MEDIAVISION_CDPC+5 - MM_CDPC_MIXER* = MM_MEDIAVISION_CDPC+6 - MM_CDPC_AUX* = MM_MEDIAVISION_CDPC+7 + MM_CDPC_MIDIOUT* = MM_MEDIAVISION_CDPC + 1 + MM_CDPC_MIDIIN* = MM_MEDIAVISION_CDPC + 2 + MM_CDPC_SYNTH* = MM_MEDIAVISION_CDPC + 3 + MM_CDPC_WAVEOUT* = MM_MEDIAVISION_CDPC + 4 + MM_CDPC_WAVEIN* = MM_MEDIAVISION_CDPC + 5 + MM_CDPC_MIXER* = MM_MEDIAVISION_CDPC + 6 + MM_CDPC_AUX* = MM_MEDIAVISION_CDPC + 7 MM_MEDIAVISION_OPUS1208* = 0x80 - MM_OPUS401_MIDIOUT* = MM_MEDIAVISION_OPUS1208+1 - MM_OPUS401_MIDIIN* = MM_MEDIAVISION_OPUS1208+2 - MM_OPUS1208_SYNTH* = MM_MEDIAVISION_OPUS1208+3 - MM_OPUS1208_WAVEOUT* = MM_MEDIAVISION_OPUS1208+4 - MM_OPUS1208_WAVEIN* = MM_MEDIAVISION_OPUS1208+5 - MM_OPUS1208_MIXER* = MM_MEDIAVISION_OPUS1208+6 - MM_OPUS1208_AUX* = MM_MEDIAVISION_OPUS1208+7 + MM_OPUS401_MIDIOUT* = MM_MEDIAVISION_OPUS1208 + 1 + MM_OPUS401_MIDIIN* = MM_MEDIAVISION_OPUS1208 + 2 + MM_OPUS1208_SYNTH* = MM_MEDIAVISION_OPUS1208 + 3 + MM_OPUS1208_WAVEOUT* = MM_MEDIAVISION_OPUS1208 + 4 + MM_OPUS1208_WAVEIN* = MM_MEDIAVISION_OPUS1208 + 5 + MM_OPUS1208_MIXER* = MM_MEDIAVISION_OPUS1208 + 6 + MM_OPUS1208_AUX* = MM_MEDIAVISION_OPUS1208 + 7 MM_MEDIAVISION_OPUS1216* = 0x90 - MM_OPUS1216_MIDIOUT* = MM_MEDIAVISION_OPUS1216+1 - MM_OPUS1216_MIDIIN* = MM_MEDIAVISION_OPUS1216+2 - MM_OPUS1216_SYNTH* = MM_MEDIAVISION_OPUS1216+3 - MM_OPUS1216_WAVEOUT* = MM_MEDIAVISION_OPUS1216+4 - MM_OPUS1216_WAVEIN* = MM_MEDIAVISION_OPUS1216+5 - MM_OPUS1216_MIXER* = MM_MEDIAVISION_OPUS1216+6 - MM_OPUS1216_AUX* = MM_MEDIAVISION_OPUS1216+7 + MM_OPUS1216_MIDIOUT* = MM_MEDIAVISION_OPUS1216 + 1 + MM_OPUS1216_MIDIIN* = MM_MEDIAVISION_OPUS1216 + 2 + MM_OPUS1216_SYNTH* = MM_MEDIAVISION_OPUS1216 + 3 + MM_OPUS1216_WAVEOUT* = MM_MEDIAVISION_OPUS1216 + 4 + MM_OPUS1216_WAVEIN* = MM_MEDIAVISION_OPUS1216 + 5 + MM_OPUS1216_MIXER* = MM_MEDIAVISION_OPUS1216 + 6 + MM_OPUS1216_AUX* = MM_MEDIAVISION_OPUS1216 + 7 MM_CYRIX_XASYNTH* = 1 MM_CYRIX_XAMIDIIN* = 2 MM_CYRIX_XAMIDIOUT* = 3 @@ -3313,14 +3511,14 @@ MM_BTV_MIDIWAVESTREAM* = 11 MM_BTV_MIXER* = 12 MM_ENSONIQ_SOUNDSCAPE* = 0x10 - MM_SOUNDSCAPE_WAVEOUT* = MM_ENSONIQ_SOUNDSCAPE+1 - MM_SOUNDSCAPE_WAVEOUT_AUX* = MM_ENSONIQ_SOUNDSCAPE+2 - MM_SOUNDSCAPE_WAVEIN* = MM_ENSONIQ_SOUNDSCAPE+3 - MM_SOUNDSCAPE_MIDIOUT* = MM_ENSONIQ_SOUNDSCAPE+4 - MM_SOUNDSCAPE_MIDIIN* = MM_ENSONIQ_SOUNDSCAPE+5 - MM_SOUNDSCAPE_SYNTH* = MM_ENSONIQ_SOUNDSCAPE+6 - MM_SOUNDSCAPE_MIXER* = MM_ENSONIQ_SOUNDSCAPE+7 - MM_SOUNDSCAPE_AUX* = MM_ENSONIQ_SOUNDSCAPE+8 + MM_SOUNDSCAPE_WAVEOUT* = MM_ENSONIQ_SOUNDSCAPE + 1 + MM_SOUNDSCAPE_WAVEOUT_AUX* = MM_ENSONIQ_SOUNDSCAPE + 2 + MM_SOUNDSCAPE_WAVEIN* = MM_ENSONIQ_SOUNDSCAPE + 3 + MM_SOUNDSCAPE_MIDIOUT* = MM_ENSONIQ_SOUNDSCAPE + 4 + MM_SOUNDSCAPE_MIDIIN* = MM_ENSONIQ_SOUNDSCAPE + 5 + MM_SOUNDSCAPE_SYNTH* = MM_ENSONIQ_SOUNDSCAPE + 6 + MM_SOUNDSCAPE_MIXER* = MM_ENSONIQ_SOUNDSCAPE + 7 + MM_SOUNDSCAPE_AUX* = MM_ENSONIQ_SOUNDSCAPE + 8 MM_NVIDIA_WAVEOUT* = 1 MM_NVIDIA_WAVEIN* = 2 MM_NVIDIA_MIDIOUT* = 3 @@ -3329,25 +3527,25 @@ MM_NVIDIA_MIXER* = 6 MM_NVIDIA_AUX* = 7 MM_OKSORI_BASE* = 0 - MM_OKSORI_OSR8_WAVEOUT* = MM_OKSORI_BASE+1 - MM_OKSORI_OSR8_WAVEIN* = MM_OKSORI_BASE+2 - MM_OKSORI_OSR16_WAVEOUT* = MM_OKSORI_BASE+3 - MM_OKSORI_OSR16_WAVEIN* = MM_OKSORI_BASE+4 - MM_OKSORI_FM_OPL4* = MM_OKSORI_BASE+5 - MM_OKSORI_MIX_MASTER* = MM_OKSORI_BASE+6 - MM_OKSORI_MIX_WAVE* = MM_OKSORI_BASE+7 - MM_OKSORI_MIX_FM* = MM_OKSORI_BASE+8 - MM_OKSORI_MIX_LINE* = MM_OKSORI_BASE+9 - MM_OKSORI_MIX_CD* = MM_OKSORI_BASE+10 - MM_OKSORI_MIX_MIC* = MM_OKSORI_BASE+11 - MM_OKSORI_MIX_ECHO* = MM_OKSORI_BASE+12 - MM_OKSORI_MIX_AUX1* = MM_OKSORI_BASE+13 - MM_OKSORI_MIX_LINE1* = MM_OKSORI_BASE+14 - MM_OKSORI_EXT_MIC1* = MM_OKSORI_BASE+15 - MM_OKSORI_EXT_MIC2* = MM_OKSORI_BASE+16 - MM_OKSORI_MIDIOUT* = MM_OKSORI_BASE+17 - MM_OKSORI_MIDIIN* = MM_OKSORI_BASE+18 - MM_OKSORI_MPEG_CDVISION* = MM_OKSORI_BASE+19 + MM_OKSORI_OSR8_WAVEOUT* = MM_OKSORI_BASE + 1 + MM_OKSORI_OSR8_WAVEIN* = MM_OKSORI_BASE + 2 + MM_OKSORI_OSR16_WAVEOUT* = MM_OKSORI_BASE + 3 + MM_OKSORI_OSR16_WAVEIN* = MM_OKSORI_BASE + 4 + MM_OKSORI_FM_OPL4* = MM_OKSORI_BASE + 5 + MM_OKSORI_MIX_MASTER* = MM_OKSORI_BASE + 6 + MM_OKSORI_MIX_WAVE* = MM_OKSORI_BASE + 7 + MM_OKSORI_MIX_FM* = MM_OKSORI_BASE + 8 + MM_OKSORI_MIX_LINE* = MM_OKSORI_BASE + 9 + MM_OKSORI_MIX_CD* = MM_OKSORI_BASE + 10 + MM_OKSORI_MIX_MIC* = MM_OKSORI_BASE + 11 + MM_OKSORI_MIX_ECHO* = MM_OKSORI_BASE + 12 + MM_OKSORI_MIX_AUX1* = MM_OKSORI_BASE + 13 + MM_OKSORI_MIX_LINE1* = MM_OKSORI_BASE + 14 + MM_OKSORI_EXT_MIC1* = MM_OKSORI_BASE + 15 + MM_OKSORI_EXT_MIC2* = MM_OKSORI_BASE + 16 + MM_OKSORI_MIDIOUT* = MM_OKSORI_BASE + 17 + MM_OKSORI_MIDIIN* = MM_OKSORI_BASE + 18 + MM_OKSORI_MPEG_CDVISION* = MM_OKSORI_BASE + 19 MM_DIACOUSTICS_DRUM_ACTION* = 1 MM_KAY_ELEMETRICS_CSL* = 0x4300 MM_KAY_ELEMETRICS_CSL_DAT* = 0x4308 @@ -3790,7 +3988,9 @@ MM_ALGOVISION_VB80MIXER* = 3 MM_ALGOVISION_VB80AUX* = 4 MM_ALGOVISION_VB80AUX2* = 5 -template mmioFOURCC*(c0: untyped, c1: untyped, c2: untyped, c3: untyped): untyped = c0.DWORD or (c1.DWORD shl 8) or (c2.DWORD shl 16) or (c3.DWORD shl 24) +template mmioFOURCC*(c0: untyped, c1: untyped, c2: untyped, c3: untyped): untyped = + c0.DWORD or (c1.DWORD shl 8) or (c2.DWORD shl 16) or (c3.DWORD shl 24) + const RIFFINFO_IARL* = mmioFOURCC('I', 'A', 'R', 'L') RIFFINFO_IART* = mmioFOURCC('I', 'A', 'R', 'T') @@ -4081,10 +4281,12 @@ WAVE_FORMAT_DEVELOPMENT* = 0xffff STATIC_KSDATAFORMAT_SUBTYPE_PCM* = DEFINE_GUID("00000001-0000-0010-8000-00aa00389b71") KSDATAFORMAT_SUBTYPE_PCM* = DEFINE_GUID("00000001-0000-0010-8000-00aa00389b71") - STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT* = DEFINE_GUID("00000003-0000-0010-8000-00aa00389b71") + STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT* = + DEFINE_GUID("00000003-0000-0010-8000-00aa00389b71") KSDATAFORMAT_SUBTYPE_IEEE_FLOAT* = DEFINE_GUID("00000003-0000-0010-8000-00aa00389b71") STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX* = 0x00000000 - KSDATAFORMAT_SUBTYPE_WAVEFORMATEX* = DEFINE_GUID("00000000-0000-0010-8000-00aa00389b71") + KSDATAFORMAT_SUBTYPE_WAVEFORMATEX* = + DEFINE_GUID("00000000-0000-0010-8000-00aa00389b71") SPEAKER_FRONT_LEFT* = 0x1 SPEAKER_FRONT_RIGHT* = 0x2 SPEAKER_FRONT_CENTER* = 0x4 @@ -4225,9 +4427,9 @@ ICTYPE_VIDEO* = mmioFOURCC('v', 'i', 'd', 'c') ICTYPE_AUDIO* = mmioFOURCC('a', 'u', 'd', 'c') FOURCC_RDSP* = mmioFOURCC('R', 'D', 'S', 'P') - MIXERCONTROL_CONTROLTYPE_SRS_MTS* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+6 - MIXERCONTROL_CONTROLTYPE_SRS_ONOFF* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+7 - MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT* = MIXERCONTROL_CONTROLTYPE_BOOLEAN+8 + MIXERCONTROL_CONTROLTYPE_SRS_MTS* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6 + MIXERCONTROL_CONTROLTYPE_SRS_ONOFF* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7 + MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT* = MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8 SND_ALIAS_SYSTEMASTERISK* = 0x00002A53 SND_ALIAS_SYSTEMQUESTION* = 0x00003F53 SND_ALIAS_SYSTEMHAND* = 0x00004853 @@ -4242,20 +4444,25 @@ FOURCC_MEM* = 0x204D454D JOY_POVCENTERED* = not WORD(0) type - DRIVERPROC* = proc (P1: DWORD_PTR, P2: HDRVR, P3: UINT, P4: LPARAM, P5: LPARAM): LRESULT {.stdcall.} - YIELDPROC* = proc (mciId: MCIDEVICEID, dwYieldData: DWORD): UINT {.stdcall.} + DRIVERPROC* = proc( + P1: DWORD_PTR, P2: HDRVR, P3: UINT, P4: LPARAM, P5: LPARAM + ): LRESULT {.stdcall.} + YIELDPROC* = proc(mciId: MCIDEVICEID, dwYieldData: DWORD): UINT {.stdcall.} MIDIEVENT* {.pure.} = object dwDeltaTime*: DWORD dwStreamID*: DWORD dwEvent*: DWORD dwParms*: array[1, DWORD] + MIDISTRMBUFFVER* {.pure.} = object dwVersion*: DWORD dwMid*: DWORD dwOEMVersion*: DWORD + DOLBYAC2WAVEFORMAT* {.pure, packed.} = object wfx*: WAVEFORMATEX nAuxBitsCode*: WORD + s_RIFFWAVE_inst* {.pure.} = object bUnshiftedNote*: BYTE chFineTune*: char @@ -4264,9 +4471,11 @@ bHighNote*: BYTE bLowVelocity*: BYTE bHighVelocity*: BYTE + EXBMINFOHEADER* {.pure.} = object bmi*: BITMAPINFOHEADER biExtDataOffset*: DWORD + JPEGINFOHEADER* {.pure.} = object JPEGSize*: DWORD JPEGProcess*: DWORD @@ -4274,210 +4483,774 @@ JPEGBitsPerSample*: DWORD JPEGHSubSampling*: DWORD JPEGVSubSampling*: DWORD -proc CloseDriver*(hDriver: HDRVR, lParam1: LPARAM, lParam2: LPARAM): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc OpenDriver*(szDriverName: LPCWSTR, szSectionName: LPCWSTR, lParam2: LPARAM): HDRVR {.winapi, stdcall, dynlib: "winmm", importc.} -proc SendDriverMessage*(hDriver: HDRVR, message: UINT, lParam1: LPARAM, lParam2: LPARAM): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc DrvGetModuleHandle*(hDriver: HDRVR): HMODULE {.winapi, stdcall, dynlib: "winmm", importc.} -proc GetDriverModuleHandle*(hDriver: HDRVR): HMODULE {.winapi, stdcall, dynlib: "winmm", importc.} -proc DefDriverProc*(dwDriverIdentifier: DWORD_PTR, hdrvr: HDRVR, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc sndPlaySoundA*(pszSound: LPCSTR, fuSound: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} -proc sndPlaySoundW*(pszSound: LPCWSTR, fuSound: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} -proc PlaySoundA*(pszSound: LPCSTR, hmod: HMODULE, fdwSound: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} -proc PlaySoundW*(pszSound: LPCWSTR, hmod: HMODULE, fdwSound: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc CloseDriver*( + hDriver: HDRVR, lParam1: LPARAM, lParam2: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc OpenDriver*( + szDriverName: LPCWSTR, szSectionName: LPCWSTR, lParam2: LPARAM +): HDRVR {.winapi, stdcall, dynlib: "winmm", importc.} + +proc SendDriverMessage*( + hDriver: HDRVR, message: UINT, lParam1: LPARAM, lParam2: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc DrvGetModuleHandle*( + hDriver: HDRVR +): HMODULE {.winapi, stdcall, dynlib: "winmm", importc.} + +proc GetDriverModuleHandle*( + hDriver: HDRVR +): HMODULE {.winapi, stdcall, dynlib: "winmm", importc.} + +proc DefDriverProc*( + dwDriverIdentifier: DWORD_PTR, + hdrvr: HDRVR, + uMsg: UINT, + lParam1: LPARAM, + lParam2: LPARAM, +): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc sndPlaySoundA*( + pszSound: LPCSTR, fuSound: UINT +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc sndPlaySoundW*( + pszSound: LPCWSTR, fuSound: UINT +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc PlaySoundA*( + pszSound: LPCSTR, hmod: HMODULE, fdwSound: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc PlaySoundW*( + pszSound: LPCWSTR, hmod: HMODULE, fdwSound: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + proc waveOutGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetDevCapsA*(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSA, cbwoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetDevCapsW*(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSW, cbwoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetVolume*(hwo: HWAVEOUT, pdwVolume: LPDWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutSetVolume*(hwo: HWAVEOUT, dwVolume: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetErrorTextA*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetErrorTextW*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutOpen*(phwo: LPHWAVEOUT, uDeviceID: UINT, pwfx: LPCWAVEFORMATEX, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutClose*(hwo: HWAVEOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutPrepareHeader*(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutUnprepareHeader*(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutWrite*(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutPause*(hwo: HWAVEOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutRestart*(hwo: HWAVEOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutReset*(hwo: HWAVEOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutBreakLoop*(hwo: HWAVEOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetPosition*(hwo: HWAVEOUT, pmmt: LPMMTIME, cbmmt: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetPitch*(hwo: HWAVEOUT, pdwPitch: LPDWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutSetPitch*(hwo: HWAVEOUT, dwPitch: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetPlaybackRate*(hwo: HWAVEOUT, pdwRate: LPDWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutSetPlaybackRate*(hwo: HWAVEOUT, dwRate: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutGetID*(hwo: HWAVEOUT, puDeviceID: LPUINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveOutMessage*(hwo: HWAVEOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc waveOutGetDevCapsA*( + uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSA, cbwoc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetDevCapsW*( + uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSW, cbwoc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetVolume*( + hwo: HWAVEOUT, pdwVolume: LPDWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutSetVolume*( + hwo: HWAVEOUT, dwVolume: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetErrorTextA*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetErrorTextW*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutOpen*( + phwo: LPHWAVEOUT, + uDeviceID: UINT, + pwfx: LPCWAVEFORMATEX, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutClose*( + hwo: HWAVEOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutPrepareHeader*( + hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutUnprepareHeader*( + hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutWrite*( + hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutPause*( + hwo: HWAVEOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutRestart*( + hwo: HWAVEOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutReset*( + hwo: HWAVEOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutBreakLoop*( + hwo: HWAVEOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetPosition*( + hwo: HWAVEOUT, pmmt: LPMMTIME, cbmmt: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetPitch*( + hwo: HWAVEOUT, pdwPitch: LPDWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutSetPitch*( + hwo: HWAVEOUT, dwPitch: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetPlaybackRate*( + hwo: HWAVEOUT, pdwRate: LPDWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutSetPlaybackRate*( + hwo: HWAVEOUT, dwRate: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutGetID*( + hwo: HWAVEOUT, puDeviceID: LPUINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveOutMessage*( + hwo: HWAVEOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc waveInGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInGetDevCapsA*(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSA, cbwic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInGetDevCapsW*(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSW, cbwic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInGetErrorTextA*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInGetErrorTextW*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInOpen*(phwi: LPHWAVEIN, uDeviceID: UINT, pwfx: LPCWAVEFORMATEX, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc waveInGetDevCapsA*( + uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSA, cbwic: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInGetDevCapsW*( + uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSW, cbwic: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInGetErrorTextA*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInGetErrorTextW*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInOpen*( + phwi: LPHWAVEIN, + uDeviceID: UINT, + pwfx: LPCWAVEFORMATEX, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc waveInClose*(hwi: HWAVEIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInPrepareHeader*(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInUnprepareHeader*(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInAddBuffer*(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc waveInPrepareHeader*( + hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInUnprepareHeader*( + hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInAddBuffer*( + hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc waveInStart*(hwi: HWAVEIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} proc waveInStop*(hwi: HWAVEIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} proc waveInReset*(hwi: HWAVEIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInGetPosition*(hwi: HWAVEIN, pmmt: LPMMTIME, cbmmt: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInGetID*(hwi: HWAVEIN, puDeviceID: LPUINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc waveInMessage*(hwi: HWAVEIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc waveInGetPosition*( + hwi: HWAVEIN, pmmt: LPMMTIME, cbmmt: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInGetID*( + hwi: HWAVEIN, puDeviceID: LPUINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc waveInMessage*( + hwi: HWAVEIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc midiOutGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamOpen*(phms: LPHMIDISTRM, puDeviceID: LPUINT, cMidi: DWORD, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamClose*(hms: HMIDISTRM): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamProperty*(hms: HMIDISTRM, lppropdata: LPBYTE, dwProperty: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamPosition*(hms: HMIDISTRM, lpmmt: LPMMTIME, cbmmt: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamOut*(hms: HMIDISTRM, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamPause*(hms: HMIDISTRM): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamRestart*(hms: HMIDISTRM): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiStreamStop*(hms: HMIDISTRM): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiConnect*(hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiDisconnect*(hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutGetDevCapsA*(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSA, cbmoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutGetDevCapsW*(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSW, cbmoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutGetVolume*(hmo: HMIDIOUT, pdwVolume: LPDWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutSetVolume*(hmo: HMIDIOUT, dwVolume: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutGetErrorTextA*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutGetErrorTextW*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutOpen*(phmo: LPHMIDIOUT, uDeviceID: UINT, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutClose*(hmo: HMIDIOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutPrepareHeader*(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutUnprepareHeader*(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutShortMsg*(hmo: HMIDIOUT, dwMsg: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutLongMsg*(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutReset*(hmo: HMIDIOUT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutCachePatches*(hmo: HMIDIOUT, uBank: UINT, pwpa: LPWORD, fuCache: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutCacheDrumPatches*(hmo: HMIDIOUT, uPatch: UINT, pwkya: LPWORD, fuCache: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutGetID*(hmo: HMIDIOUT, puDeviceID: LPUINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiOutMessage*(hmo: HMIDIOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc midiStreamOpen*( + phms: LPHMIDISTRM, + puDeviceID: LPUINT, + cMidi: DWORD, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamClose*( + hms: HMIDISTRM +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamProperty*( + hms: HMIDISTRM, lppropdata: LPBYTE, dwProperty: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamPosition*( + hms: HMIDISTRM, lpmmt: LPMMTIME, cbmmt: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamOut*( + hms: HMIDISTRM, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamPause*( + hms: HMIDISTRM +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamRestart*( + hms: HMIDISTRM +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiStreamStop*( + hms: HMIDISTRM +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiConnect*( + hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiDisconnect*( + hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutGetDevCapsA*( + uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSA, cbmoc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutGetDevCapsW*( + uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSW, cbmoc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutGetVolume*( + hmo: HMIDIOUT, pdwVolume: LPDWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutSetVolume*( + hmo: HMIDIOUT, dwVolume: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutGetErrorTextA*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutGetErrorTextW*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutOpen*( + phmo: LPHMIDIOUT, + uDeviceID: UINT, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutClose*( + hmo: HMIDIOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutPrepareHeader*( + hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutUnprepareHeader*( + hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutShortMsg*( + hmo: HMIDIOUT, dwMsg: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutLongMsg*( + hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutReset*( + hmo: HMIDIOUT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutCachePatches*( + hmo: HMIDIOUT, uBank: UINT, pwpa: LPWORD, fuCache: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutCacheDrumPatches*( + hmo: HMIDIOUT, uPatch: UINT, pwkya: LPWORD, fuCache: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutGetID*( + hmo: HMIDIOUT, puDeviceID: LPUINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiOutMessage*( + hmo: HMIDIOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc midiInGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInGetDevCapsA*(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSA, cbmic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInGetDevCapsW*(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSW, cbmic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInGetErrorTextA*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInGetErrorTextW*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInOpen*(phmi: LPHMIDIIN, uDeviceID: UINT, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc midiInGetDevCapsA*( + uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSA, cbmic: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInGetDevCapsW*( + uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSW, cbmic: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInGetErrorTextA*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInGetErrorTextW*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInOpen*( + phmi: LPHMIDIIN, + uDeviceID: UINT, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc midiInClose*(hmi: HMIDIIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInPrepareHeader*(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInUnprepareHeader*(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInAddBuffer*(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc midiInPrepareHeader*( + hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInUnprepareHeader*( + hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInAddBuffer*( + hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc midiInStart*(hmi: HMIDIIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} proc midiInStop*(hmi: HMIDIIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} proc midiInReset*(hmi: HMIDIIN): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInGetID*(hmi: HMIDIIN, puDeviceID: LPUINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc midiInMessage*(hmi: HMIDIIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc midiInGetID*( + hmi: HMIDIIN, puDeviceID: LPUINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc midiInMessage*( + hmi: HMIDIIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc auxGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc auxGetDevCapsA*(uDeviceID: UINT_PTR, pac: LPAUXCAPSA, cbac: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc auxGetDevCapsW*(uDeviceID: UINT_PTR, pac: LPAUXCAPSW, cbac: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc auxSetVolume*(uDeviceID: UINT, dwVolume: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc auxGetVolume*(uDeviceID: UINT, pdwVolume: LPDWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc auxOutMessage*(uDeviceID: UINT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc auxGetDevCapsA*( + uDeviceID: UINT_PTR, pac: LPAUXCAPSA, cbac: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc auxGetDevCapsW*( + uDeviceID: UINT_PTR, pac: LPAUXCAPSW, cbac: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc auxSetVolume*( + uDeviceID: UINT, dwVolume: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc auxGetVolume*( + uDeviceID: UINT, pdwVolume: LPDWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc auxOutMessage*( + uDeviceID: UINT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc mixerGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetDevCapsA*(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSA, cbmxcaps: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetDevCapsW*(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSW, cbmxcaps: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerOpen*(phmx: LPHMIXER, uMxId: UINT, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc mixerGetDevCapsA*( + uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSA, cbmxcaps: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetDevCapsW*( + uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSW, cbmxcaps: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerOpen*( + phmx: LPHMIXER, + uMxId: UINT, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc mixerClose*(hmx: HMIXER): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerMessage*(hmx: HMIXER, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR): DWORD {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetLineInfoA*(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEA, fdwInfo: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetLineInfoW*(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEW, fdwInfo: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetID*(hmxobj: HMIXEROBJ, puMxId: ptr UINT, fdwId: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetLineControlsA*(hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSA, fdwControls: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetLineControlsW*(hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSW, fdwControls: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetControlDetailsA*(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerGetControlDetailsW*(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mixerSetControlDetails*(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc timeGetSystemTime*(pmmt: LPMMTIME, cbmmt: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc mixerMessage*( + hmx: HMIXER, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR +): DWORD {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetLineInfoA*( + hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEA, fdwInfo: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetLineInfoW*( + hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEW, fdwInfo: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetID*( + hmxobj: HMIXEROBJ, puMxId: ptr UINT, fdwId: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetLineControlsA*( + hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSA, fdwControls: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetLineControlsW*( + hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSW, fdwControls: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetControlDetailsA*( + hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerGetControlDetailsW*( + hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mixerSetControlDetails*( + hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc timeGetSystemTime*( + pmmt: LPMMTIME, cbmmt: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc timeGetTime*(): DWORD {.winapi, stdcall, dynlib: "winmm", importc.} -proc timeSetEvent*(uDelay: UINT, uResolution: UINT, fptc: LPTIMECALLBACK, dwUser: DWORD_PTR, fuEvent: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc timeKillEvent*(uTimerID: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc timeGetDevCaps*(ptc: LPTIMECAPS, cbtc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc timeBeginPeriod*(uPeriod: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc timeEndPeriod*(uPeriod: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} +proc timeSetEvent*( + uDelay: UINT, + uResolution: UINT, + fptc: LPTIMECALLBACK, + dwUser: DWORD_PTR, + fuEvent: UINT, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc timeKillEvent*( + uTimerID: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc timeGetDevCaps*( + ptc: LPTIMECAPS, cbtc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc timeBeginPeriod*( + uPeriod: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc timeEndPeriod*( + uPeriod: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + proc joyGetNumDevs*(): UINT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joyGetDevCapsA*(uJoyID: UINT_PTR, pjc: LPJOYCAPSA, cbjc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joyGetDevCapsW*(uJoyID: UINT_PTR, pjc: LPJOYCAPSW, cbjc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joyGetPos*(uJoyID: UINT, pji: LPJOYINFO): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joyGetPosEx*(uJoyID: UINT, pji: LPJOYINFOEX): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joyGetThreshold*(uJoyID: UINT, puThreshold: LPUINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joyReleaseCapture*(uJoyID: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joySetCapture*(hwnd: HWND, uJoyID: UINT, uPeriod: UINT, fChanged: WINBOOL): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc joySetThreshold*(uJoyID: UINT, uThreshold: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioStringToFOURCCA*(sz: LPCSTR, uFlags: UINT): FOURCC {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioStringToFOURCCW*(sz: LPCWSTR, uFlags: UINT): FOURCC {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioInstallIOProcA*(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioInstallIOProcW*(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioOpenA*(pszFileName: LPSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD): HMMIO {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioOpenW*(pszFileName: LPWSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD): HMMIO {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioRenameA*(pszFileName: LPCSTR, pszNewFileName: LPCSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioRenameW*(pszFileName: LPCWSTR, pszNewFileName: LPCWSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioClose*(hmmio: HMMIO, fuClose: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioRead*(hmmio: HMMIO, pch: HPSTR, cch: LONG): LONG {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioWrite*(hmmio: HMMIO, pch: ptr char, cch: LONG): LONG {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioSeek*(hmmio: HMMIO, lOffset: LONG, iOrigin: int32): LONG {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioGetInfo*(hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuInfo: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioSetInfo*(hmmio: HMMIO, pmmioinfo: LPCMMIOINFO, fuInfo: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioSetBuffer*(hmmio: HMMIO, pchBuffer: LPSTR, cchBuffer: LONG, fuBuffer: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioFlush*(hmmio: HMMIO, fuFlush: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioAdvance*(hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuAdvance: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioSendMessage*(hmmio: HMMIO, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioDescend*(hmmio: HMMIO, pmmcki: LPMMCKINFO, pmmckiParent: ptr MMCKINFO, fuDescend: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioAscend*(hmmio: HMMIO, pmmcki: LPMMCKINFO, fuAscend: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mmioCreateChunk*(hmmio: HMMIO, pmmcki: LPMMCKINFO, fuCreate: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciSendCommandA*(mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciSendCommandW*(mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciSendStringA*(lpstrCommand: LPCSTR, lpstrReturnString: LPSTR, uReturnLength: UINT, hwndCallback: HWND): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciSendStringW*(lpstrCommand: LPCWSTR, lpstrReturnString: LPWSTR, uReturnLength: UINT, hwndCallback: HWND): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetDeviceIDA*(pszDevice: LPCSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetDeviceIDW*(pszDevice: LPCWSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetDeviceIDFromElementIDA*(dwElementID: DWORD, lpstrType: LPCSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetDeviceIDFromElementIDW*(dwElementID: DWORD, lpstrType: LPCWSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetErrorStringA*(mcierr: MCIERROR, pszText: LPSTR, cchText: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetErrorStringW*(mcierr: MCIERROR, pszText: LPWSTR, cchText: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciSetYieldProc*(mciId: MCIDEVICEID, fpYieldProc: YIELDPROC, dwYieldData: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetCreatorTask*(mciId: MCIDEVICEID): HTASK {.winapi, stdcall, dynlib: "winmm", importc.} -proc mciGetYieldProc*(mciId: MCIDEVICEID, pdwYieldData: LPDWORD): YIELDPROC {.winapi, stdcall, dynlib: "winmm", importc.} -proc `lMinimum=`*(self: var MIXERCONTROLA, x: LONG) {.inline.} = self.Bounds.struct1.lMinimum = x -proc lMinimum*(self: MIXERCONTROLA): LONG {.inline.} = self.Bounds.struct1.lMinimum -proc lMinimum*(self: var MIXERCONTROLA): var LONG {.inline.} = self.Bounds.struct1.lMinimum -proc `lMaximum=`*(self: var MIXERCONTROLA, x: LONG) {.inline.} = self.Bounds.struct1.lMaximum = x -proc lMaximum*(self: MIXERCONTROLA): LONG {.inline.} = self.Bounds.struct1.lMaximum -proc lMaximum*(self: var MIXERCONTROLA): var LONG {.inline.} = self.Bounds.struct1.lMaximum -proc `dwMinimum=`*(self: var MIXERCONTROLA, x: DWORD) {.inline.} = self.Bounds.struct2.dwMinimum = x -proc dwMinimum*(self: MIXERCONTROLA): DWORD {.inline.} = self.Bounds.struct2.dwMinimum -proc dwMinimum*(self: var MIXERCONTROLA): var DWORD {.inline.} = self.Bounds.struct2.dwMinimum -proc `dwMaximum=`*(self: var MIXERCONTROLA, x: DWORD) {.inline.} = self.Bounds.struct2.dwMaximum = x -proc dwMaximum*(self: MIXERCONTROLA): DWORD {.inline.} = self.Bounds.struct2.dwMaximum -proc dwMaximum*(self: var MIXERCONTROLA): var DWORD {.inline.} = self.Bounds.struct2.dwMaximum -proc `lMinimum=`*(self: var MIXERCONTROLW, x: LONG) {.inline.} = self.Bounds.struct1.lMinimum = x -proc lMinimum*(self: MIXERCONTROLW): LONG {.inline.} = self.Bounds.struct1.lMinimum -proc lMinimum*(self: var MIXERCONTROLW): var LONG {.inline.} = self.Bounds.struct1.lMinimum -proc `lMaximum=`*(self: var MIXERCONTROLW, x: LONG) {.inline.} = self.Bounds.struct1.lMaximum = x -proc lMaximum*(self: MIXERCONTROLW): LONG {.inline.} = self.Bounds.struct1.lMaximum -proc lMaximum*(self: var MIXERCONTROLW): var LONG {.inline.} = self.Bounds.struct1.lMaximum -proc `dwMinimum=`*(self: var MIXERCONTROLW, x: DWORD) {.inline.} = self.Bounds.struct2.dwMinimum = x -proc dwMinimum*(self: MIXERCONTROLW): DWORD {.inline.} = self.Bounds.struct2.dwMinimum -proc dwMinimum*(self: var MIXERCONTROLW): var DWORD {.inline.} = self.Bounds.struct2.dwMinimum -proc `dwMaximum=`*(self: var MIXERCONTROLW, x: DWORD) {.inline.} = self.Bounds.struct2.dwMaximum = x -proc dwMaximum*(self: MIXERCONTROLW): DWORD {.inline.} = self.Bounds.struct2.dwMaximum -proc dwMaximum*(self: var MIXERCONTROLW): var DWORD {.inline.} = self.Bounds.struct2.dwMaximum -proc `dwControlID=`*(self: var MIXERLINECONTROLSA, x: DWORD) {.inline.} = self.union1.dwControlID = x -proc dwControlID*(self: MIXERLINECONTROLSA): DWORD {.inline.} = self.union1.dwControlID -proc dwControlID*(self: var MIXERLINECONTROLSA): var DWORD {.inline.} = self.union1.dwControlID -proc `dwControlType=`*(self: var MIXERLINECONTROLSA, x: DWORD) {.inline.} = self.union1.dwControlType = x -proc dwControlType*(self: MIXERLINECONTROLSA): DWORD {.inline.} = self.union1.dwControlType -proc dwControlType*(self: var MIXERLINECONTROLSA): var DWORD {.inline.} = self.union1.dwControlType -proc `dwControlID=`*(self: var MIXERLINECONTROLSW, x: DWORD) {.inline.} = self.union1.dwControlID = x -proc dwControlID*(self: MIXERLINECONTROLSW): DWORD {.inline.} = self.union1.dwControlID -proc dwControlID*(self: var MIXERLINECONTROLSW): var DWORD {.inline.} = self.union1.dwControlID -proc `dwControlType=`*(self: var MIXERLINECONTROLSW, x: DWORD) {.inline.} = self.union1.dwControlType = x -proc dwControlType*(self: MIXERLINECONTROLSW): DWORD {.inline.} = self.union1.dwControlType -proc dwControlType*(self: var MIXERLINECONTROLSW): var DWORD {.inline.} = self.union1.dwControlType -proc `hwndOwner=`*(self: var MIXERCONTROLDETAILS, x: HWND) {.inline.} = self.union1.hwndOwner = x -proc hwndOwner*(self: MIXERCONTROLDETAILS): HWND {.inline.} = self.union1.hwndOwner -proc hwndOwner*(self: var MIXERCONTROLDETAILS): var HWND {.inline.} = self.union1.hwndOwner -proc `cMultipleItems=`*(self: var MIXERCONTROLDETAILS, x: DWORD) {.inline.} = self.union1.cMultipleItems = x -proc cMultipleItems*(self: MIXERCONTROLDETAILS): DWORD {.inline.} = self.union1.cMultipleItems -proc cMultipleItems*(self: var MIXERCONTROLDETAILS): var DWORD {.inline.} = self.union1.cMultipleItems +proc joyGetDevCapsA*( + uJoyID: UINT_PTR, pjc: LPJOYCAPSA, cbjc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joyGetDevCapsW*( + uJoyID: UINT_PTR, pjc: LPJOYCAPSW, cbjc: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joyGetPos*( + uJoyID: UINT, pji: LPJOYINFO +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joyGetPosEx*( + uJoyID: UINT, pji: LPJOYINFOEX +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joyGetThreshold*( + uJoyID: UINT, puThreshold: LPUINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joyReleaseCapture*( + uJoyID: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joySetCapture*( + hwnd: HWND, uJoyID: UINT, uPeriod: UINT, fChanged: WINBOOL +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc joySetThreshold*( + uJoyID: UINT, uThreshold: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioStringToFOURCCA*( + sz: LPCSTR, uFlags: UINT +): FOURCC {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioStringToFOURCCW*( + sz: LPCWSTR, uFlags: UINT +): FOURCC {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioInstallIOProcA*( + fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD +): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioInstallIOProcW*( + fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD +): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioOpenA*( + pszFileName: LPSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD +): HMMIO {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioOpenW*( + pszFileName: LPWSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD +): HMMIO {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioRenameA*( + pszFileName: LPCSTR, pszNewFileName: LPCSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioRenameW*( + pszFileName: LPCWSTR, + pszNewFileName: LPCWSTR, + pmmioinfo: LPCMMIOINFO, + fdwRename: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioClose*( + hmmio: HMMIO, fuClose: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioRead*( + hmmio: HMMIO, pch: HPSTR, cch: LONG +): LONG {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioWrite*( + hmmio: HMMIO, pch: ptr char, cch: LONG +): LONG {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioSeek*( + hmmio: HMMIO, lOffset: LONG, iOrigin: int32 +): LONG {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioGetInfo*( + hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuInfo: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioSetInfo*( + hmmio: HMMIO, pmmioinfo: LPCMMIOINFO, fuInfo: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioSetBuffer*( + hmmio: HMMIO, pchBuffer: LPSTR, cchBuffer: LONG, fuBuffer: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioFlush*( + hmmio: HMMIO, fuFlush: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioAdvance*( + hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuAdvance: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioSendMessage*( + hmmio: HMMIO, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioDescend*( + hmmio: HMMIO, pmmcki: LPMMCKINFO, pmmckiParent: ptr MMCKINFO, fuDescend: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioAscend*( + hmmio: HMMIO, pmmcki: LPMMCKINFO, fuAscend: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mmioCreateChunk*( + hmmio: HMMIO, pmmcki: LPMMCKINFO, fuCreate: UINT +): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciSendCommandA*( + mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR +): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciSendCommandW*( + mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR +): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciSendStringA*( + lpstrCommand: LPCSTR, + lpstrReturnString: LPSTR, + uReturnLength: UINT, + hwndCallback: HWND, +): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciSendStringW*( + lpstrCommand: LPCWSTR, + lpstrReturnString: LPWSTR, + uReturnLength: UINT, + hwndCallback: HWND, +): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetDeviceIDA*( + pszDevice: LPCSTR +): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetDeviceIDW*( + pszDevice: LPCWSTR +): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetDeviceIDFromElementIDA*( + dwElementID: DWORD, lpstrType: LPCSTR +): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetDeviceIDFromElementIDW*( + dwElementID: DWORD, lpstrType: LPCWSTR +): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetErrorStringA*( + mcierr: MCIERROR, pszText: LPSTR, cchText: UINT +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetErrorStringW*( + mcierr: MCIERROR, pszText: LPWSTR, cchText: UINT +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciSetYieldProc*( + mciId: MCIDEVICEID, fpYieldProc: YIELDPROC, dwYieldData: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetCreatorTask*( + mciId: MCIDEVICEID +): HTASK {.winapi, stdcall, dynlib: "winmm", importc.} + +proc mciGetYieldProc*( + mciId: MCIDEVICEID, pdwYieldData: LPDWORD +): YIELDPROC {.winapi, stdcall, dynlib: "winmm", importc.} + +proc `lMinimum=`*(self: var MIXERCONTROLA, x: LONG) {.inline.} = + self.Bounds.struct1.lMinimum = x + +proc lMinimum*(self: MIXERCONTROLA): LONG {.inline.} = + self.Bounds.struct1.lMinimum + +proc lMinimum*(self: var MIXERCONTROLA): var LONG {.inline.} = + self.Bounds.struct1.lMinimum + +proc `lMaximum=`*(self: var MIXERCONTROLA, x: LONG) {.inline.} = + self.Bounds.struct1.lMaximum = x + +proc lMaximum*(self: MIXERCONTROLA): LONG {.inline.} = + self.Bounds.struct1.lMaximum + +proc lMaximum*(self: var MIXERCONTROLA): var LONG {.inline.} = + self.Bounds.struct1.lMaximum + +proc `dwMinimum=`*(self: var MIXERCONTROLA, x: DWORD) {.inline.} = + self.Bounds.struct2.dwMinimum = x + +proc dwMinimum*(self: MIXERCONTROLA): DWORD {.inline.} = + self.Bounds.struct2.dwMinimum + +proc dwMinimum*(self: var MIXERCONTROLA): var DWORD {.inline.} = + self.Bounds.struct2.dwMinimum + +proc `dwMaximum=`*(self: var MIXERCONTROLA, x: DWORD) {.inline.} = + self.Bounds.struct2.dwMaximum = x + +proc dwMaximum*(self: MIXERCONTROLA): DWORD {.inline.} = + self.Bounds.struct2.dwMaximum + +proc dwMaximum*(self: var MIXERCONTROLA): var DWORD {.inline.} = + self.Bounds.struct2.dwMaximum + +proc `lMinimum=`*(self: var MIXERCONTROLW, x: LONG) {.inline.} = + self.Bounds.struct1.lMinimum = x + +proc lMinimum*(self: MIXERCONTROLW): LONG {.inline.} = + self.Bounds.struct1.lMinimum + +proc lMinimum*(self: var MIXERCONTROLW): var LONG {.inline.} = + self.Bounds.struct1.lMinimum + +proc `lMaximum=`*(self: var MIXERCONTROLW, x: LONG) {.inline.} = + self.Bounds.struct1.lMaximum = x + +proc lMaximum*(self: MIXERCONTROLW): LONG {.inline.} = + self.Bounds.struct1.lMaximum + +proc lMaximum*(self: var MIXERCONTROLW): var LONG {.inline.} = + self.Bounds.struct1.lMaximum + +proc `dwMinimum=`*(self: var MIXERCONTROLW, x: DWORD) {.inline.} = + self.Bounds.struct2.dwMinimum = x + +proc dwMinimum*(self: MIXERCONTROLW): DWORD {.inline.} = + self.Bounds.struct2.dwMinimum + +proc dwMinimum*(self: var MIXERCONTROLW): var DWORD {.inline.} = + self.Bounds.struct2.dwMinimum + +proc `dwMaximum=`*(self: var MIXERCONTROLW, x: DWORD) {.inline.} = + self.Bounds.struct2.dwMaximum = x + +proc dwMaximum*(self: MIXERCONTROLW): DWORD {.inline.} = + self.Bounds.struct2.dwMaximum + +proc dwMaximum*(self: var MIXERCONTROLW): var DWORD {.inline.} = + self.Bounds.struct2.dwMaximum + +proc `dwControlID=`*(self: var MIXERLINECONTROLSA, x: DWORD) {.inline.} = + self.union1.dwControlID = x + +proc dwControlID*(self: MIXERLINECONTROLSA): DWORD {.inline.} = + self.union1.dwControlID + +proc dwControlID*(self: var MIXERLINECONTROLSA): var DWORD {.inline.} = + self.union1.dwControlID + +proc `dwControlType=`*(self: var MIXERLINECONTROLSA, x: DWORD) {.inline.} = + self.union1.dwControlType = x + +proc dwControlType*(self: MIXERLINECONTROLSA): DWORD {.inline.} = + self.union1.dwControlType + +proc dwControlType*(self: var MIXERLINECONTROLSA): var DWORD {.inline.} = + self.union1.dwControlType + +proc `dwControlID=`*(self: var MIXERLINECONTROLSW, x: DWORD) {.inline.} = + self.union1.dwControlID = x + +proc dwControlID*(self: MIXERLINECONTROLSW): DWORD {.inline.} = + self.union1.dwControlID + +proc dwControlID*(self: var MIXERLINECONTROLSW): var DWORD {.inline.} = + self.union1.dwControlID + +proc `dwControlType=`*(self: var MIXERLINECONTROLSW, x: DWORD) {.inline.} = + self.union1.dwControlType = x + +proc dwControlType*(self: MIXERLINECONTROLSW): DWORD {.inline.} = + self.union1.dwControlType + +proc dwControlType*(self: var MIXERLINECONTROLSW): var DWORD {.inline.} = + self.union1.dwControlType + +proc `hwndOwner=`*(self: var MIXERCONTROLDETAILS, x: HWND) {.inline.} = + self.union1.hwndOwner = x + +proc hwndOwner*(self: MIXERCONTROLDETAILS): HWND {.inline.} = + self.union1.hwndOwner + +proc hwndOwner*(self: var MIXERCONTROLDETAILS): var HWND {.inline.} = + self.union1.hwndOwner + +proc `cMultipleItems=`*(self: var MIXERCONTROLDETAILS, x: DWORD) {.inline.} = + self.union1.cMultipleItems = x + +proc cMultipleItems*(self: MIXERCONTROLDETAILS): DWORD {.inline.} = + self.union1.cMultipleItems + +proc cMultipleItems*(self: var MIXERCONTROLDETAILS): var DWORD {.inline.} = + self.union1.cMultipleItems + when winimUnicode: type WAVEOUTCAPS* = WAVEOUTCAPSW @@ -4584,31 +5357,115 @@ MCI_OVLY_LOAD_PARMS* = MCI_OVLY_LOAD_PARMSW PMCI_OVLY_LOAD_PARMS* = PMCI_OVLY_LOAD_PARMSW LPMCI_OVLY_LOAD_PARMS* = LPMCI_OVLY_LOAD_PARMSW - proc sndPlaySound*(pszSound: LPCWSTR, fuSound: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "sndPlaySoundW".} - proc PlaySound*(pszSound: LPCWSTR, hmod: HMODULE, fdwSound: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "PlaySoundW".} - proc waveOutGetDevCaps*(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSW, cbwoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetDevCapsW".} - proc waveOutGetErrorText*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetErrorTextW".} - proc waveInGetDevCaps*(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSW, cbwic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetDevCapsW".} - proc waveInGetErrorText*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetErrorTextW".} - proc midiOutGetDevCaps*(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSW, cbmoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetDevCapsW".} - proc midiOutGetErrorText*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetErrorTextW".} - proc midiInGetDevCaps*(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSW, cbmic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetDevCapsW".} - proc midiInGetErrorText*(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetErrorTextW".} - proc auxGetDevCaps*(uDeviceID: UINT_PTR, pac: LPAUXCAPSW, cbac: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "auxGetDevCapsW".} - proc mixerGetDevCaps*(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSW, cbmxcaps: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetDevCapsW".} - proc mixerGetLineInfo*(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEW, fdwInfo: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineInfoW".} - proc mixerGetLineControls*(hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSW, fdwControls: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineControlsW".} - proc mixerGetControlDetails*(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetControlDetailsW".} - proc joyGetDevCaps*(uJoyID: UINT_PTR, pjc: LPJOYCAPSW, cbjc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "joyGetDevCapsW".} - proc mmioStringToFOURCC*(sz: LPCWSTR, uFlags: UINT): FOURCC {.winapi, stdcall, dynlib: "winmm", importc: "mmioStringToFOURCCW".} - proc mmioInstallIOProc*(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc: "mmioInstallIOProcW".} - proc mmioOpen*(pszFileName: LPWSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD): HMMIO {.winapi, stdcall, dynlib: "winmm", importc: "mmioOpenW".} - proc mmioRename*(pszFileName: LPCWSTR, pszNewFileName: LPCWSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mmioRenameW".} - proc mciSendCommand*(mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendCommandW".} - proc mciSendString*(lpstrCommand: LPCWSTR, lpstrReturnString: LPWSTR, uReturnLength: UINT, hwndCallback: HWND): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendStringW".} - proc mciGetDeviceID*(pszDevice: LPCWSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDW".} - proc mciGetDeviceIDFromElementID*(dwElementID: DWORD, lpstrType: LPCWSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDFromElementIDW".} - proc mciGetErrorString*(mcierr: MCIERROR, pszText: LPWSTR, cchText: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "mciGetErrorStringW".} + + proc sndPlaySound*( + pszSound: LPCWSTR, fuSound: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "sndPlaySoundW".} + + proc PlaySound*( + pszSound: LPCWSTR, hmod: HMODULE, fdwSound: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "PlaySoundW".} + + proc waveOutGetDevCaps*( + uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSW, cbwoc: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetDevCapsW".} + + proc waveOutGetErrorText*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetErrorTextW".} + + proc waveInGetDevCaps*( + uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSW, cbwic: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetDevCapsW".} + + proc waveInGetErrorText*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetErrorTextW".} + + proc midiOutGetDevCaps*( + uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSW, cbmoc: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetDevCapsW".} + + proc midiOutGetErrorText*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetErrorTextW".} + + proc midiInGetDevCaps*( + uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSW, cbmic: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetDevCapsW".} + + proc midiInGetErrorText*( + mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetErrorTextW".} + + proc auxGetDevCaps*( + uDeviceID: UINT_PTR, pac: LPAUXCAPSW, cbac: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "auxGetDevCapsW".} + + proc mixerGetDevCaps*( + uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSW, cbmxcaps: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetDevCapsW".} + + proc mixerGetLineInfo*( + hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEW, fdwInfo: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineInfoW".} + + proc mixerGetLineControls*( + hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSW, fdwControls: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineControlsW".} + + proc mixerGetControlDetails*( + hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetControlDetailsW".} + + proc joyGetDevCaps*( + uJoyID: UINT_PTR, pjc: LPJOYCAPSW, cbjc: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "joyGetDevCapsW".} + + proc mmioStringToFOURCC*( + sz: LPCWSTR, uFlags: UINT + ): FOURCC {.winapi, stdcall, dynlib: "winmm", importc: "mmioStringToFOURCCW".} + + proc mmioInstallIOProc*( + fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD + ): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc: "mmioInstallIOProcW".} + + proc mmioOpen*( + pszFileName: LPWSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD + ): HMMIO {.winapi, stdcall, dynlib: "winmm", importc: "mmioOpenW".} + + proc mmioRename*( + pszFileName: LPCWSTR, + pszNewFileName: LPCWSTR, + pmmioinfo: LPCMMIOINFO, + fdwRename: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mmioRenameW".} + + proc mciSendCommand*( + mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR + ): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendCommandW".} + + proc mciSendString*( + lpstrCommand: LPCWSTR, + lpstrReturnString: LPWSTR, + uReturnLength: UINT, + hwndCallback: HWND, + ): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendStringW".} + + proc mciGetDeviceID*( + pszDevice: LPCWSTR + ): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDW".} + + proc mciGetDeviceIDFromElementID*( + dwElementID: DWORD, lpstrType: LPCWSTR + ): MCIDEVICEID {. + winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDFromElementIDW" + .} + + proc mciGetErrorString*( + mcierr: MCIERROR, pszText: LPWSTR, cchText: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "mciGetErrorStringW".} + when winimAnsi: type WAVEOUTCAPS* = WAVEOUTCAPSA @@ -4715,28 +5572,111 @@ MCI_OVLY_LOAD_PARMS* = MCI_OVLY_LOAD_PARMSA PMCI_OVLY_LOAD_PARMS* = PMCI_OVLY_LOAD_PARMSA LPMCI_OVLY_LOAD_PARMS* = LPMCI_OVLY_LOAD_PARMSA - proc sndPlaySound*(pszSound: LPCSTR, fuSound: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "sndPlaySoundA".} - proc PlaySound*(pszSound: LPCSTR, hmod: HMODULE, fdwSound: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "PlaySoundA".} - proc waveOutGetDevCaps*(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSA, cbwoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetDevCapsA".} - proc waveOutGetErrorText*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetErrorTextA".} - proc waveInGetDevCaps*(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSA, cbwic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetDevCapsA".} - proc waveInGetErrorText*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetErrorTextA".} - proc midiOutGetDevCaps*(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSA, cbmoc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetDevCapsA".} - proc midiOutGetErrorText*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetErrorTextA".} - proc midiInGetDevCaps*(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSA, cbmic: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetDevCapsA".} - proc midiInGetErrorText*(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetErrorTextA".} - proc auxGetDevCaps*(uDeviceID: UINT_PTR, pac: LPAUXCAPSA, cbac: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "auxGetDevCapsA".} - proc mixerGetDevCaps*(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSA, cbmxcaps: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetDevCapsA".} - proc mixerGetLineInfo*(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEA, fdwInfo: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineInfoA".} - proc mixerGetLineControls*(hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSA, fdwControls: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineControlsA".} - proc mixerGetControlDetails*(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetControlDetailsA".} - proc joyGetDevCaps*(uJoyID: UINT_PTR, pjc: LPJOYCAPSA, cbjc: UINT): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "joyGetDevCapsA".} - proc mmioStringToFOURCC*(sz: LPCSTR, uFlags: UINT): FOURCC {.winapi, stdcall, dynlib: "winmm", importc: "mmioStringToFOURCCA".} - proc mmioInstallIOProc*(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc: "mmioInstallIOProcA".} - proc mmioOpen*(pszFileName: LPSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD): HMMIO {.winapi, stdcall, dynlib: "winmm", importc: "mmioOpenA".} - proc mmioRename*(pszFileName: LPCSTR, pszNewFileName: LPCSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mmioRenameA".} - proc mciSendCommand*(mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendCommandA".} - proc mciSendString*(lpstrCommand: LPCSTR, lpstrReturnString: LPSTR, uReturnLength: UINT, hwndCallback: HWND): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendStringA".} - proc mciGetDeviceID*(pszDevice: LPCSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDA".} - proc mciGetDeviceIDFromElementID*(dwElementID: DWORD, lpstrType: LPCSTR): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDFromElementIDA".} - proc mciGetErrorString*(mcierr: MCIERROR, pszText: LPSTR, cchText: UINT): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "mciGetErrorStringA".} + + proc sndPlaySound*( + pszSound: LPCSTR, fuSound: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "sndPlaySoundA".} + + proc PlaySound*( + pszSound: LPCSTR, hmod: HMODULE, fdwSound: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "PlaySoundA".} + + proc waveOutGetDevCaps*( + uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSA, cbwoc: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetDevCapsA".} + + proc waveOutGetErrorText*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveOutGetErrorTextA".} + + proc waveInGetDevCaps*( + uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSA, cbwic: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetDevCapsA".} + + proc waveInGetErrorText*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "waveInGetErrorTextA".} + + proc midiOutGetDevCaps*( + uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSA, cbmoc: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetDevCapsA".} + + proc midiOutGetErrorText*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiOutGetErrorTextA".} + + proc midiInGetDevCaps*( + uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSA, cbmic: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetDevCapsA".} + + proc midiInGetErrorText*( + mmrError: MMRESULT, pszText: LPSTR, cchText: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "midiInGetErrorTextA".} + + proc auxGetDevCaps*( + uDeviceID: UINT_PTR, pac: LPAUXCAPSA, cbac: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "auxGetDevCapsA".} + + proc mixerGetDevCaps*( + uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSA, cbmxcaps: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetDevCapsA".} + + proc mixerGetLineInfo*( + hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEA, fdwInfo: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineInfoA".} + + proc mixerGetLineControls*( + hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSA, fdwControls: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetLineControlsA".} + + proc mixerGetControlDetails*( + hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mixerGetControlDetailsA".} + + proc joyGetDevCaps*( + uJoyID: UINT_PTR, pjc: LPJOYCAPSA, cbjc: UINT + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "joyGetDevCapsA".} + + proc mmioStringToFOURCC*( + sz: LPCSTR, uFlags: UINT + ): FOURCC {.winapi, stdcall, dynlib: "winmm", importc: "mmioStringToFOURCCA".} + + proc mmioInstallIOProc*( + fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD + ): LPMMIOPROC {.winapi, stdcall, dynlib: "winmm", importc: "mmioInstallIOProcA".} + + proc mmioOpen*( + pszFileName: LPSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD + ): HMMIO {.winapi, stdcall, dynlib: "winmm", importc: "mmioOpenA".} + + proc mmioRename*( + pszFileName: LPCSTR, + pszNewFileName: LPCSTR, + pmmioinfo: LPCMMIOINFO, + fdwRename: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "winmm", importc: "mmioRenameA".} + + proc mciSendCommand*( + mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR + ): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendCommandA".} + + proc mciSendString*( + lpstrCommand: LPCSTR, + lpstrReturnString: LPSTR, + uReturnLength: UINT, + hwndCallback: HWND, + ): MCIERROR {.winapi, stdcall, dynlib: "winmm", importc: "mciSendStringA".} + + proc mciGetDeviceID*( + pszDevice: LPCSTR + ): MCIDEVICEID {.winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDA".} + + proc mciGetDeviceIDFromElementID*( + dwElementID: DWORD, lpstrType: LPCSTR + ): MCIDEVICEID {. + winapi, stdcall, dynlib: "winmm", importc: "mciGetDeviceIDFromElementIDA" + .} + + proc mciGetErrorString*( + mcierr: MCIERROR, pszText: LPSTR, cchText: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "winmm", importc: "mciGetErrorStringA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/mscoree.nim --- a/semicongine/thirdparty/winim/winim/inc/mscoree.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/mscoree.nim Thu Aug 22 18:32:21 2024 +0700 @@ -69,9 +69,11 @@ item1_data*: ptr int32 item2_flags*: int32 item2_data*: ptr int32 + VEContext* = VerError TASKID* = UINT64 POBJECT* = ptr object + const COR_GC_COUNTS* = 0x1 COR_GC_MEMORYUSAGE* = 0x2 @@ -124,7 +126,8 @@ IID_IHostManualEvent* = DEFINE_GUID("1bf4ec38-affe-4fb9-85a6-525268f15b54") IID_IHostSemaphore* = DEFINE_GUID("855efd47-cc09-463a-a97d-16acab882661") IID_ICLRSyncManager* = DEFINE_GUID("55ff199d-ad21-48f9-a16c-f24ebbb8727d") - IID_ICLRAppDomainResourceMonitor* = DEFINE_GUID("c62de18c-2e23-4aea-8423-b40c1fc59eae") + IID_ICLRAppDomainResourceMonitor* = + DEFINE_GUID("c62de18c-2e23-4aea-8423-b40c1fc59eae") IID_ICLRPolicyManager* = DEFINE_GUID("7d290010-d781-45da-a6f8-aa5d711a730e") IID_ICLRGCManager* = DEFINE_GUID("54d9007e-a8e2-4885-b7bf-f998deee4f2a") IID_ICLRGCManager2* = DEFINE_GUID("0603b793-a97a-4712-9cb4-0cd1c74c0f7c") @@ -145,7 +148,8 @@ IID_ICLRAssemblyReferenceList* = DEFINE_GUID("1b2c9750-2e66-4bda-8b44-0a642c5cd733") IID_ICLRReferenceAssemblyEnum* = DEFINE_GUID("d509cb5d-cf32-4876-ae61-67770cf91973") IID_ICLRProbingAssemblyEnum* = DEFINE_GUID("d0c5fb1f-416b-4f97-81f4-7ac7dc24dd5d") - IID_ICLRHostBindingPolicyManager* = DEFINE_GUID("4b3545e7-1856-48c9-a8ba-24b21a753c09") + IID_ICLRHostBindingPolicyManager* = + DEFINE_GUID("4b3545e7-1856-48c9-a8ba-24b21a753c09") IID_ITypeNameBuilder* = DEFINE_GUID("b81ff171-20f3-11d2-8dcc-00a0c9b00523") IID_ITypeNameFactory* = DEFINE_GUID("b81ff171-20f3-11d2-8dcc-00a0c9b00521") HOST_TYPE_DEFAULT* = 0 @@ -196,7 +200,8 @@ WAIT_MSGPUMP* = 0x1 WAIT_ALERTABLE* = 0x2 WAIT_NOTINDEADLOCK* = 0x4 - IID_ICLRMemoryNotificationCallback* = DEFINE_GUID("47eb8e57-0846-4546-af76-6f42fcfc2649") + IID_ICLRMemoryNotificationCallback* = + DEFINE_GUID("47eb8e57-0846-4546-af76-6f42fcfc2649") MALLOC_THREADSAFE* = 0x1 MALLOC_EXECUTABLE* = 0x2 TT_DEBUGGERHELPER* = 0x1 @@ -221,52 +226,52 @@ bucketParamsCount* = 10 bucketParamLength* = 255 parameter1* = 0 - parameter2* = parameter1+1 - parameter3* = parameter2+1 - parameter4* = parameter3+1 - parameter5* = parameter4+1 - parameter6* = parameter5+1 - parameter7* = parameter6+1 - parameter8* = parameter7+1 - parameter9* = parameter8+1 - invalidBucketParamIndex* = parameter9+1 + parameter2* = parameter1 + 1 + parameter3* = parameter2 + 1 + parameter4* = parameter3 + 1 + parameter5* = parameter4 + 1 + parameter6* = parameter5 + 1 + parameter7* = parameter6 + 1 + parameter8* = parameter7 + 1 + parameter9* = parameter8 + 1 + invalidBucketParamIndex* = parameter9 + 1 OPR_ThreadAbort* = 0 - OPR_ThreadRudeAbortInNonCriticalRegion* = OPR_ThreadAbort+1 - OPR_ThreadRudeAbortInCriticalRegion* = OPR_ThreadRudeAbortInNonCriticalRegion+1 - OPR_AppDomainUnload* = OPR_ThreadRudeAbortInCriticalRegion+1 - OPR_AppDomainRudeUnload* = OPR_AppDomainUnload+1 - OPR_ProcessExit* = OPR_AppDomainRudeUnload+1 - OPR_FinalizerRun* = OPR_ProcessExit+1 - maxClrOperation* = OPR_FinalizerRun+1 + OPR_ThreadRudeAbortInNonCriticalRegion* = OPR_ThreadAbort + 1 + OPR_ThreadRudeAbortInCriticalRegion* = OPR_ThreadRudeAbortInNonCriticalRegion + 1 + OPR_AppDomainUnload* = OPR_ThreadRudeAbortInCriticalRegion + 1 + OPR_AppDomainRudeUnload* = OPR_AppDomainUnload + 1 + OPR_ProcessExit* = OPR_AppDomainRudeUnload + 1 + OPR_FinalizerRun* = OPR_ProcessExit + 1 + maxClrOperation* = OPR_FinalizerRun + 1 FAIL_NonCriticalResource* = 0 - FAIL_CriticalResource* = FAIL_NonCriticalResource+1 - FAIL_FatalRuntime* = FAIL_CriticalResource+1 - FAIL_OrphanedLock* = FAIL_FatalRuntime+1 - FAIL_StackOverflow* = FAIL_OrphanedLock+1 - FAIL_AccessViolation* = FAIL_StackOverflow+1 - FAIL_CodeContract* = FAIL_AccessViolation+1 - maxClrFailure* = FAIL_CodeContract+1 + FAIL_CriticalResource* = FAIL_NonCriticalResource + 1 + FAIL_FatalRuntime* = FAIL_CriticalResource + 1 + FAIL_OrphanedLock* = FAIL_FatalRuntime + 1 + FAIL_StackOverflow* = FAIL_OrphanedLock + 1 + FAIL_AccessViolation* = FAIL_StackOverflow + 1 + FAIL_CodeContract* = FAIL_AccessViolation + 1 + maxClrFailure* = FAIL_CodeContract + 1 eRuntimeDeterminedPolicy* = 0 - eHostDeterminedPolicy* = eRuntimeDeterminedPolicy+1 + eHostDeterminedPolicy* = eRuntimeDeterminedPolicy + 1 eNoAction* = 0 - eThrowException* = eNoAction+1 - eAbortThread* = eThrowException+1 - eRudeAbortThread* = eAbortThread+1 - eUnloadAppDomain* = eRudeAbortThread+1 - eRudeUnloadAppDomain* = eUnloadAppDomain+1 - eExitProcess* = eRudeUnloadAppDomain+1 - eFastExitProcess* = eExitProcess+1 - eRudeExitProcess* = eFastExitProcess+1 - eDisableRuntime* = eRudeExitProcess+1 - maxPolicyAction* = eDisableRuntime+1 + eThrowException* = eNoAction + 1 + eAbortThread* = eThrowException + 1 + eRudeAbortThread* = eAbortThread + 1 + eUnloadAppDomain* = eRudeAbortThread + 1 + eRudeUnloadAppDomain* = eUnloadAppDomain + 1 + eExitProcess* = eRudeUnloadAppDomain + 1 + eFastExitProcess* = eExitProcess + 1 + eRudeExitProcess* = eFastExitProcess + 1 + eDisableRuntime* = eRudeExitProcess + 1 + maxPolicyAction* = eDisableRuntime + 1 Event_DomainUnload* = 0 - Event_ClrDisabled* = Event_DomainUnload+1 - Event_MDAFired* = Event_ClrDisabled+1 - Event_StackOverflow* = Event_MDAFired+1 - maxClrEvent* = Event_StackOverflow+1 + Event_ClrDisabled* = Event_DomainUnload + 1 + Event_MDAFired* = Event_ClrDisabled + 1 + Event_StackOverflow* = Event_MDAFired + 1 + maxClrEvent* = Event_StackOverflow + 1 SO_Managed* = 0 - SO_ClrEngine* = SO_Managed+1 - SO_Other* = SO_ClrEngine+1 + SO_ClrEngine* = SO_Managed + 1 + SO_Other* = SO_ClrEngine + 1 CLR_ASSEMBLY_IDENTITY_FLAGS_DEFAULT* = 0 HOST_BINDING_POLICY_MODIFY_DEFAULT* = 0 HOST_BINDING_POLICY_MODIFY_CHAIN* = 1 @@ -312,7 +317,8 @@ CLSID_CLRDebuggingLegacy* = DEFINE_GUID("df8395b5-a4ba-450b-a77c-a9a47762c520") CLSID_CLRProfiling* = DEFINE_GUID("bd097ed8-733e-43fe-8ed7-a95ff9a8448c") IID_ICLRProfiling* = DEFINE_GUID("b349abe3-b56f-4689-bfcd-76bf39d888ea") - IID_ICLRDebuggingLibraryProvider* = DEFINE_GUID("3151c08d-4d09-4f9b-8838-2880bf18fe51") + IID_ICLRDebuggingLibraryProvider* = + DEFINE_GUID("3151c08d-4d09-4f9b-8838-2880bf18fe51") METAHOST_POLICY_HIGHCOMPAT* = 0 METAHOST_POLICY_APPLY_UPGRADE_POLICY* = 0x8 METAHOST_POLICY_EMULATE_EXE_LAUNCH* = 0x10 @@ -407,33 +413,70 @@ CallingConventions_ExplicitThis* = 64 IID_IMethodInfo* = DEFINE_GUID("ffcc1b5d-ecb8-38dd-9b01-3dc8abc2aa5f") type - FLockClrVersionCallback* = proc (): HRESULT {.stdcall.} - FExecuteInAppDomainCallback* = proc (cookie: pointer): HRESULT {.stdcall.} - PTLS_CALLBACK_FUNCTION* = proc (MIDL_itf_mscoree_0000_00040005: PVOID): VOID {.stdcall.} - CLRCreateInstanceFnPtr* = proc (clsid: REFCLSID, riid: REFIID, ppInterface: ptr LPVOID): HRESULT {.stdcall.} - CreateInterfaceFnPtr* = proc (clsid: REFCLSID, riid: REFIID, ppInterface: ptr LPVOID): HRESULT {.stdcall.} - CallbackThreadSetFnPtr* = proc (P1: void): HRESULT {.stdcall.} - CallbackThreadUnsetFnPtr* = proc (P1: void): HRESULT {.stdcall.} + FLockClrVersionCallback* = proc(): HRESULT {.stdcall.} + FExecuteInAppDomainCallback* = proc(cookie: pointer): HRESULT {.stdcall.} + PTLS_CALLBACK_FUNCTION* = + proc(MIDL_itf_mscoree_0000_00040005: PVOID): VOID {.stdcall.} + CLRCreateInstanceFnPtr* = + proc(clsid: REFCLSID, riid: REFIID, ppInterface: ptr LPVOID): HRESULT {.stdcall.} + CreateInterfaceFnPtr* = + proc(clsid: REFCLSID, riid: REFIID, ppInterface: ptr LPVOID): HRESULT {.stdcall.} + CallbackThreadSetFnPtr* = proc(P1: void): HRESULT {.stdcall.} + CallbackThreadUnsetFnPtr* = proc(P1: void): HRESULT {.stdcall.} ICLRRuntimeInfo* {.pure.} = object lpVtbl*: ptr ICLRRuntimeInfoVtbl + ICLRRuntimeInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetVersionString*: proc(self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD): HRESULT {.stdcall.} - GetRuntimeDirectory*: proc(self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD): HRESULT {.stdcall.} - IsLoaded*: proc(self: ptr ICLRRuntimeInfo, hndProcess: HANDLE, pbLoaded: ptr BOOL): HRESULT {.stdcall.} - LoadErrorString*: proc(self: ptr ICLRRuntimeInfo, iResourceID: UINT, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD, iLocaleID: LONG): HRESULT {.stdcall.} - LoadLibrary*: proc(self: ptr ICLRRuntimeInfo, pwzDllName: LPCWSTR, phndModule: ptr HMODULE): HRESULT {.stdcall.} - GetProcAddress*: proc(self: ptr ICLRRuntimeInfo, pszProcName: LPCSTR, ppProc: ptr LPVOID): HRESULT {.stdcall.} - GetInterface*: proc(self: ptr ICLRRuntimeInfo, rclsid: REFCLSID, riid: REFIID, ppUnk: ptr LPVOID): HRESULT {.stdcall.} - IsLoadable*: proc(self: ptr ICLRRuntimeInfo, pbLoadable: ptr BOOL): HRESULT {.stdcall.} - SetDefaultStartupFlags*: proc(self: ptr ICLRRuntimeInfo, dwStartupFlags: DWORD, pwzHostConfigFile: LPCWSTR): HRESULT {.stdcall.} - GetDefaultStartupFlags*: proc(self: ptr ICLRRuntimeInfo, pdwStartupFlags: ptr DWORD, pwzHostConfigFile: LPWSTR, pcchHostConfigFile: ptr DWORD): HRESULT {.stdcall.} + GetVersionString*: proc( + self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD + ): HRESULT {.stdcall.} + GetRuntimeDirectory*: proc( + self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD + ): HRESULT {.stdcall.} + IsLoaded*: proc( + self: ptr ICLRRuntimeInfo, hndProcess: HANDLE, pbLoaded: ptr BOOL + ): HRESULT {.stdcall.} + LoadErrorString*: proc( + self: ptr ICLRRuntimeInfo, + iResourceID: UINT, + pwzBuffer: LPWSTR, + pcchBuffer: ptr DWORD, + iLocaleID: LONG, + ): HRESULT {.stdcall.} + LoadLibrary*: proc( + self: ptr ICLRRuntimeInfo, pwzDllName: LPCWSTR, phndModule: ptr HMODULE + ): HRESULT {.stdcall.} + GetProcAddress*: proc( + self: ptr ICLRRuntimeInfo, pszProcName: LPCSTR, ppProc: ptr LPVOID + ): HRESULT {.stdcall.} + GetInterface*: proc( + self: ptr ICLRRuntimeInfo, rclsid: REFCLSID, riid: REFIID, ppUnk: ptr LPVOID + ): HRESULT {.stdcall.} + IsLoadable*: + proc(self: ptr ICLRRuntimeInfo, pbLoadable: ptr BOOL): HRESULT {.stdcall.} + SetDefaultStartupFlags*: proc( + self: ptr ICLRRuntimeInfo, dwStartupFlags: DWORD, pwzHostConfigFile: LPCWSTR + ): HRESULT {.stdcall.} + GetDefaultStartupFlags*: proc( + self: ptr ICLRRuntimeInfo, + pdwStartupFlags: ptr DWORD, + pwzHostConfigFile: LPWSTR, + pcchHostConfigFile: ptr DWORD, + ): HRESULT {.stdcall.} BindAsLegacyV2Runtime*: proc(self: ptr ICLRRuntimeInfo): HRESULT {.stdcall.} - IsStarted*: proc(self: ptr ICLRRuntimeInfo, pbStarted: ptr BOOL, pdwStartupFlags: ptr DWORD): HRESULT {.stdcall.} - RuntimeLoadedCallbackFnPtr* = proc (pRuntimeInfo: ptr ICLRRuntimeInfo, pfnCallbackThreadSet: CallbackThreadSetFnPtr, pfnCallbackThreadUnset: CallbackThreadUnsetFnPtr): void {.stdcall.} + IsStarted*: proc( + self: ptr ICLRRuntimeInfo, pbStarted: ptr BOOL, pdwStartupFlags: ptr DWORD + ): HRESULT {.stdcall.} + + RuntimeLoadedCallbackFnPtr* = proc( + pRuntimeInfo: ptr ICLRRuntimeInfo, + pfnCallbackThreadSet: CallbackThreadSetFnPtr, + pfnCallbackThreadUnset: CallbackThreadUnsetFnPtr, + ): void {.stdcall.} COR_GC_STATS* {.pure.} = object Flags*: ULONG ExplicitGCCount*: SIZE_T - GenCollectionsTaken*: array[ 3 , SIZE_T] + GenCollectionsTaken*: array[3, SIZE_T] CommittedKBytes*: SIZE_T ReservedKBytes*: SIZE_T Gen0HeapSizeKBytes*: SIZE_T @@ -442,208 +485,469 @@ LargeObjectHeapSizeKBytes*: SIZE_T KBytesPromotedFromGen0*: SIZE_T KBytesPromotedFromGen1*: SIZE_T + COR_GC_THREAD_STATS* {.pure.} = object PerThreadAllocation*: ULONGLONG Flags*: ULONG + CustomDumpItem_UNION1* {.pure, union.} = object pReserved*: UINT_PTR + CustomDumpItem* {.pure.} = object itemKind*: ECustomDumpItemKind union1*: CustomDumpItem_UNION1 + BucketParameters* {.pure.} = object fInited*: BOOL - pszEventTypeName*: array[ 255 , WCHAR] - pszParams*: array[ 10 , array[ 255 , WCHAR]] + pszEventTypeName*: array[255, WCHAR] + pszParams*: array[10, array[255, WCHAR]] + MDAInfo* {.pure.} = object lpMDACaption*: LPCWSTR lpMDAMessage*: LPCWSTR lpStackTrace*: LPCWSTR + StackOverflowInfo* {.pure.} = object soType*: StackOverflowType pExceptionInfo*: ptr EXCEPTION_POINTERS + AssemblyBindInfo* {.pure.} = object dwAppDomainId*: DWORD lpReferencedIdentity*: LPCWSTR lpPostPolicyIdentity*: LPCWSTR ePolicyLevel*: DWORD + ModuleBindInfo* {.pure.} = object dwAppDomainId*: DWORD lpAssemblyIdentity*: LPCWSTR lpModuleName*: LPCWSTR + CLR_DEBUGGING_VERSION* {.pure.} = object wStructVersion*: WORD wMajor*: WORD wMinor*: WORD wBuild*: WORD wRevision*: WORD + StreamingContext* {.pure.} = object IGCHost* {.pure.} = object lpVtbl*: ptr IGCHostVtbl + IGCHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetGCStartupLimits*: proc(self: ptr IGCHost, SegmentSize: DWORD, MaxGen0Size: DWORD): HRESULT {.stdcall.} + SetGCStartupLimits*: proc( + self: ptr IGCHost, SegmentSize: DWORD, MaxGen0Size: DWORD + ): HRESULT {.stdcall.} Collect*: proc(self: ptr IGCHost, Generation: LONG): HRESULT {.stdcall.} GetStats*: proc(self: ptr IGCHost, pStats: ptr COR_GC_STATS): HRESULT {.stdcall.} - GetThreadStats*: proc(self: ptr IGCHost, pFiberCookie: ptr DWORD, pStats: ptr COR_GC_THREAD_STATS): HRESULT {.stdcall.} - SetVirtualMemLimit*: proc(self: ptr IGCHost, sztMaxVirtualMemMB: SIZE_T): HRESULT {.stdcall.} + GetThreadStats*: proc( + self: ptr IGCHost, pFiberCookie: ptr DWORD, pStats: ptr COR_GC_THREAD_STATS + ): HRESULT {.stdcall.} + SetVirtualMemLimit*: + proc(self: ptr IGCHost, sztMaxVirtualMemMB: SIZE_T): HRESULT {.stdcall.} + IGCHost2* {.pure.} = object lpVtbl*: ptr IGCHost2Vtbl + IGCHost2Vtbl* {.pure, inheritable.} = object of IGCHostVtbl - SetGCStartupLimitsEx*: proc(self: ptr IGCHost2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T): HRESULT {.stdcall.} + SetGCStartupLimitsEx*: proc( + self: ptr IGCHost2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T + ): HRESULT {.stdcall.} + IVEHandler* {.pure.} = object lpVtbl*: ptr IVEHandlerVtbl + IVEHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - VEHandler*: proc(self: ptr IVEHandler, VECode: HRESULT, Context: VEContext, psa: ptr SAFEARRAY): HRESULT {.stdcall.} + VEHandler*: proc( + self: ptr IVEHandler, VECode: HRESULT, Context: VEContext, psa: ptr SAFEARRAY + ): HRESULT {.stdcall.} SetReporterFtn*: proc(self: ptr IVEHandler, lFnPtr: int64): HRESULT {.stdcall.} + IValidator* {.pure.} = object lpVtbl*: ptr IValidatorVtbl + IValidatorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Validate*: proc(self: ptr IValidator, veh: ptr IVEHandler, pAppDomain: ptr IUnknown, ulFlags: int32, ulMaxError: int32, token: int32, fileName: LPWSTR, pe: ptr BYTE, ulSize: int32): HRESULT {.stdcall.} - FormatEventInfo*: proc(self: ptr IValidator, hVECode: HRESULT, Context: VEContext, msg: LPWSTR, ulMaxLength: int32, psa: ptr SAFEARRAY): HRESULT {.stdcall.} + Validate*: proc( + self: ptr IValidator, + veh: ptr IVEHandler, + pAppDomain: ptr IUnknown, + ulFlags: int32, + ulMaxError: int32, + token: int32, + fileName: LPWSTR, + pe: ptr BYTE, + ulSize: int32, + ): HRESULT {.stdcall.} + FormatEventInfo*: proc( + self: ptr IValidator, + hVECode: HRESULT, + Context: VEContext, + msg: LPWSTR, + ulMaxLength: int32, + psa: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + ICLRValidator* {.pure.} = object lpVtbl*: ptr ICLRValidatorVtbl + ICLRValidatorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Validate*: proc(self: ptr ICLRValidator, veh: ptr IVEHandler, ulAppDomainId: int32, ulFlags: int32, ulMaxError: int32, token: int32, fileName: LPWSTR, pe: ptr BYTE, ulSize: int32): HRESULT {.stdcall.} - FormatEventInfo*: proc(self: ptr ICLRValidator, hVECode: HRESULT, Context: VEContext, msg: LPWSTR, ulMaxLength: int32, psa: ptr SAFEARRAY): HRESULT {.stdcall.} + Validate*: proc( + self: ptr ICLRValidator, + veh: ptr IVEHandler, + ulAppDomainId: int32, + ulFlags: int32, + ulMaxError: int32, + token: int32, + fileName: LPWSTR, + pe: ptr BYTE, + ulSize: int32, + ): HRESULT {.stdcall.} + FormatEventInfo*: proc( + self: ptr ICLRValidator, + hVECode: HRESULT, + Context: VEContext, + msg: LPWSTR, + ulMaxLength: int32, + psa: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IObjectHandle* {.pure.} = object lpVtbl*: ptr IObjectHandleVtbl + IObjectHandleVtbl* {.pure, inheritable.} = object of IUnknownVtbl Unwrap*: proc(self: ptr IObjectHandle, ppv: ptr VARIANT): HRESULT {.stdcall.} + IAppDomainBinding* {.pure.} = object lpVtbl*: ptr IAppDomainBindingVtbl + IAppDomainBindingVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnAppDomain*: proc(self: ptr IAppDomainBinding, pAppdomain: ptr IUnknown): HRESULT {.stdcall.} + OnAppDomain*: + proc(self: ptr IAppDomainBinding, pAppdomain: ptr IUnknown): HRESULT {.stdcall.} + IGCThreadControl* {.pure.} = object lpVtbl*: ptr IGCThreadControlVtbl + IGCThreadControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ThreadIsBlockingForSuspension*: proc(self: ptr IGCThreadControl): HRESULT {.stdcall.} + ThreadIsBlockingForSuspension*: + proc(self: ptr IGCThreadControl): HRESULT {.stdcall.} SuspensionStarting*: proc(self: ptr IGCThreadControl): HRESULT {.stdcall.} - SuspensionEnding*: proc(self: ptr IGCThreadControl, Generation: DWORD): HRESULT {.stdcall.} + SuspensionEnding*: + proc(self: ptr IGCThreadControl, Generation: DWORD): HRESULT {.stdcall.} + IGCHostControl* {.pure.} = object lpVtbl*: ptr IGCHostControlVtbl + IGCHostControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RequestVirtualMemLimit*: proc(self: ptr IGCHostControl, sztMaxVirtualMemMB: SIZE_T, psztNewMaxVirtualMemMB: ptr SIZE_T): HRESULT {.stdcall.} + RequestVirtualMemLimit*: proc( + self: ptr IGCHostControl, + sztMaxVirtualMemMB: SIZE_T, + psztNewMaxVirtualMemMB: ptr SIZE_T, + ): HRESULT {.stdcall.} + ICorThreadpool* {.pure.} = object lpVtbl*: ptr ICorThreadpoolVtbl + ICorThreadpoolVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CorRegisterWaitForSingleObject*: proc(self: ptr ICorThreadpool, phNewWaitObject: ptr HANDLE, hWaitObject: HANDLE, Callback: WAITORTIMERCALLBACK, Context: PVOID, timeout: ULONG, executeOnlyOnce: BOOL, ret: ptr BOOL): HRESULT {.stdcall.} - CorUnregisterWait*: proc(self: ptr ICorThreadpool, hWaitObject: HANDLE, CompletionEvent: HANDLE, ret: ptr BOOL): HRESULT {.stdcall.} - CorQueueUserWorkItem*: proc(self: ptr ICorThreadpool, Function: LPTHREAD_START_ROUTINE, Context: PVOID, executeOnlyOnce: BOOL, ret: ptr BOOL): HRESULT {.stdcall.} - CorCreateTimer*: proc(self: ptr ICorThreadpool, phNewTimer: ptr HANDLE, Callback: WAITORTIMERCALLBACK, Parameter: PVOID, DueTime: DWORD, Period: DWORD, ret: ptr BOOL): HRESULT {.stdcall.} - CorChangeTimer*: proc(self: ptr ICorThreadpool, Timer: HANDLE, DueTime: ULONG, Period: ULONG, ret: ptr BOOL): HRESULT {.stdcall.} - CorDeleteTimer*: proc(self: ptr ICorThreadpool, Timer: HANDLE, CompletionEvent: HANDLE, ret: ptr BOOL): HRESULT {.stdcall.} - CorBindIoCompletionCallback*: proc(self: ptr ICorThreadpool, fileHandle: HANDLE, callback: LPOVERLAPPED_COMPLETION_ROUTINE): HRESULT {.stdcall.} - CorCallOrQueueUserWorkItem*: proc(self: ptr ICorThreadpool, Function: LPTHREAD_START_ROUTINE, Context: PVOID, ret: ptr BOOL): HRESULT {.stdcall.} - CorSetMaxThreads*: proc(self: ptr ICorThreadpool, MaxWorkerThreads: DWORD, MaxIOCompletionThreads: DWORD): HRESULT {.stdcall.} - CorGetMaxThreads*: proc(self: ptr ICorThreadpool, MaxWorkerThreads: ptr DWORD, MaxIOCompletionThreads: ptr DWORD): HRESULT {.stdcall.} - CorGetAvailableThreads*: proc(self: ptr ICorThreadpool, AvailableWorkerThreads: ptr DWORD, AvailableIOCompletionThreads: ptr DWORD): HRESULT {.stdcall.} + CorRegisterWaitForSingleObject*: proc( + self: ptr ICorThreadpool, + phNewWaitObject: ptr HANDLE, + hWaitObject: HANDLE, + Callback: WAITORTIMERCALLBACK, + Context: PVOID, + timeout: ULONG, + executeOnlyOnce: BOOL, + ret: ptr BOOL, + ): HRESULT {.stdcall.} + CorUnregisterWait*: proc( + self: ptr ICorThreadpool, + hWaitObject: HANDLE, + CompletionEvent: HANDLE, + ret: ptr BOOL, + ): HRESULT {.stdcall.} + CorQueueUserWorkItem*: proc( + self: ptr ICorThreadpool, + Function: LPTHREAD_START_ROUTINE, + Context: PVOID, + executeOnlyOnce: BOOL, + ret: ptr BOOL, + ): HRESULT {.stdcall.} + CorCreateTimer*: proc( + self: ptr ICorThreadpool, + phNewTimer: ptr HANDLE, + Callback: WAITORTIMERCALLBACK, + Parameter: PVOID, + DueTime: DWORD, + Period: DWORD, + ret: ptr BOOL, + ): HRESULT {.stdcall.} + CorChangeTimer*: proc( + self: ptr ICorThreadpool, + Timer: HANDLE, + DueTime: ULONG, + Period: ULONG, + ret: ptr BOOL, + ): HRESULT {.stdcall.} + CorDeleteTimer*: proc( + self: ptr ICorThreadpool, Timer: HANDLE, CompletionEvent: HANDLE, ret: ptr BOOL + ): HRESULT {.stdcall.} + CorBindIoCompletionCallback*: proc( + self: ptr ICorThreadpool, + fileHandle: HANDLE, + callback: LPOVERLAPPED_COMPLETION_ROUTINE, + ): HRESULT {.stdcall.} + CorCallOrQueueUserWorkItem*: proc( + self: ptr ICorThreadpool, + Function: LPTHREAD_START_ROUTINE, + Context: PVOID, + ret: ptr BOOL, + ): HRESULT {.stdcall.} + CorSetMaxThreads*: proc( + self: ptr ICorThreadpool, MaxWorkerThreads: DWORD, MaxIOCompletionThreads: DWORD + ): HRESULT {.stdcall.} + CorGetMaxThreads*: proc( + self: ptr ICorThreadpool, + MaxWorkerThreads: ptr DWORD, + MaxIOCompletionThreads: ptr DWORD, + ): HRESULT {.stdcall.} + CorGetAvailableThreads*: proc( + self: ptr ICorThreadpool, + AvailableWorkerThreads: ptr DWORD, + AvailableIOCompletionThreads: ptr DWORD, + ): HRESULT {.stdcall.} + IDebuggerThreadControl* {.pure.} = object lpVtbl*: ptr IDebuggerThreadControlVtbl + IDebuggerThreadControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ThreadIsBlockingForDebugger*: proc(self: ptr IDebuggerThreadControl): HRESULT {.stdcall.} - ReleaseAllRuntimeThreads*: proc(self: ptr IDebuggerThreadControl): HRESULT {.stdcall.} - StartBlockingForDebugger*: proc(self: ptr IDebuggerThreadControl, dwUnused: DWORD): HRESULT {.stdcall.} + ThreadIsBlockingForDebugger*: + proc(self: ptr IDebuggerThreadControl): HRESULT {.stdcall.} + ReleaseAllRuntimeThreads*: + proc(self: ptr IDebuggerThreadControl): HRESULT {.stdcall.} + StartBlockingForDebugger*: + proc(self: ptr IDebuggerThreadControl, dwUnused: DWORD): HRESULT {.stdcall.} + IDebuggerInfo* {.pure.} = object lpVtbl*: ptr IDebuggerInfoVtbl + IDebuggerInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IsDebuggerAttached*: proc(self: ptr IDebuggerInfo, pbAttached: ptr BOOL): HRESULT {.stdcall.} + IsDebuggerAttached*: + proc(self: ptr IDebuggerInfo, pbAttached: ptr BOOL): HRESULT {.stdcall.} + ICorConfiguration* {.pure.} = object lpVtbl*: ptr ICorConfigurationVtbl + ICorConfigurationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetGCThreadControl*: proc(self: ptr ICorConfiguration, pGCThreadControl: ptr IGCThreadControl): HRESULT {.stdcall.} - SetGCHostControl*: proc(self: ptr ICorConfiguration, pGCHostControl: ptr IGCHostControl): HRESULT {.stdcall.} - SetDebuggerThreadControl*: proc(self: ptr ICorConfiguration, pDebuggerThreadControl: ptr IDebuggerThreadControl): HRESULT {.stdcall.} - AddDebuggerSpecialThread*: proc(self: ptr ICorConfiguration, dwSpecialThreadId: DWORD): HRESULT {.stdcall.} + SetGCThreadControl*: proc( + self: ptr ICorConfiguration, pGCThreadControl: ptr IGCThreadControl + ): HRESULT {.stdcall.} + SetGCHostControl*: proc( + self: ptr ICorConfiguration, pGCHostControl: ptr IGCHostControl + ): HRESULT {.stdcall.} + SetDebuggerThreadControl*: proc( + self: ptr ICorConfiguration, pDebuggerThreadControl: ptr IDebuggerThreadControl + ): HRESULT {.stdcall.} + AddDebuggerSpecialThread*: + proc(self: ptr ICorConfiguration, dwSpecialThreadId: DWORD): HRESULT {.stdcall.} + ICorRuntimeHost* {.pure.} = object lpVtbl*: ptr ICorRuntimeHostVtbl + ICorRuntimeHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl CreateLogicalThreadState*: proc(self: ptr ICorRuntimeHost): HRESULT {.stdcall.} DeleteLogicalThreadState*: proc(self: ptr ICorRuntimeHost): HRESULT {.stdcall.} - SwitchInLogicalThreadState*: proc(self: ptr ICorRuntimeHost, pFiberCookie: ptr DWORD): HRESULT {.stdcall.} - SwitchOutLogicalThreadState*: proc(self: ptr ICorRuntimeHost, pFiberCookie: ptr ptr DWORD): HRESULT {.stdcall.} - LocksHeldByLogicalThread*: proc(self: ptr ICorRuntimeHost, pCount: ptr DWORD): HRESULT {.stdcall.} - MapFile*: proc(self: ptr ICorRuntimeHost, hFile: HANDLE, hMapAddress: ptr HMODULE): HRESULT {.stdcall.} - GetConfiguration*: proc(self: ptr ICorRuntimeHost, pConfiguration: ptr ptr ICorConfiguration): HRESULT {.stdcall.} + SwitchInLogicalThreadState*: + proc(self: ptr ICorRuntimeHost, pFiberCookie: ptr DWORD): HRESULT {.stdcall.} + SwitchOutLogicalThreadState*: + proc(self: ptr ICorRuntimeHost, pFiberCookie: ptr ptr DWORD): HRESULT {.stdcall.} + LocksHeldByLogicalThread*: + proc(self: ptr ICorRuntimeHost, pCount: ptr DWORD): HRESULT {.stdcall.} + MapFile*: proc( + self: ptr ICorRuntimeHost, hFile: HANDLE, hMapAddress: ptr HMODULE + ): HRESULT {.stdcall.} + GetConfiguration*: proc( + self: ptr ICorRuntimeHost, pConfiguration: ptr ptr ICorConfiguration + ): HRESULT {.stdcall.} Start*: proc(self: ptr ICorRuntimeHost): HRESULT {.stdcall.} Stop*: proc(self: ptr ICorRuntimeHost): HRESULT {.stdcall.} - CreateDomain*: proc(self: ptr ICorRuntimeHost, pwzFriendlyName: LPCWSTR, pIdentityArray: ptr IUnknown, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} - GetDefaultDomain*: proc(self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} - EnumDomains*: proc(self: ptr ICorRuntimeHost, hEnum: ptr HDOMAINENUM): HRESULT {.stdcall.} - NextDomain*: proc(self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} + CreateDomain*: proc( + self: ptr ICorRuntimeHost, + pwzFriendlyName: LPCWSTR, + pIdentityArray: ptr IUnknown, + pAppDomain: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + GetDefaultDomain*: + proc(self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} + EnumDomains*: + proc(self: ptr ICorRuntimeHost, hEnum: ptr HDOMAINENUM): HRESULT {.stdcall.} + NextDomain*: proc( + self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM, pAppDomain: ptr ptr IUnknown + ): HRESULT {.stdcall.} CloseEnum*: proc(self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM): HRESULT {.stdcall.} - CreateDomainEx*: proc(self: ptr ICorRuntimeHost, pwzFriendlyName: LPCWSTR, pSetup: ptr IUnknown, pEvidence: ptr IUnknown, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} - CreateDomainSetup*: proc(self: ptr ICorRuntimeHost, pAppDomainSetup: ptr ptr IUnknown): HRESULT {.stdcall.} - CreateEvidence*: proc(self: ptr ICorRuntimeHost, pEvidence: ptr ptr IUnknown): HRESULT {.stdcall.} - UnloadDomain*: proc(self: ptr ICorRuntimeHost, pAppDomain: ptr IUnknown): HRESULT {.stdcall.} - CurrentDomain*: proc(self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} + CreateDomainEx*: proc( + self: ptr ICorRuntimeHost, + pwzFriendlyName: LPCWSTR, + pSetup: ptr IUnknown, + pEvidence: ptr IUnknown, + pAppDomain: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + CreateDomainSetup*: proc( + self: ptr ICorRuntimeHost, pAppDomainSetup: ptr ptr IUnknown + ): HRESULT {.stdcall.} + CreateEvidence*: + proc(self: ptr ICorRuntimeHost, pEvidence: ptr ptr IUnknown): HRESULT {.stdcall.} + UnloadDomain*: + proc(self: ptr ICorRuntimeHost, pAppDomain: ptr IUnknown): HRESULT {.stdcall.} + CurrentDomain*: + proc(self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown): HRESULT {.stdcall.} + ICLRMemoryNotificationCallback* {.pure.} = object lpVtbl*: ptr ICLRMemoryNotificationCallbackVtbl + ICLRMemoryNotificationCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnMemoryNotification*: proc(self: ptr ICLRMemoryNotificationCallback, eMemoryAvailable: EMemoryAvailable): HRESULT {.stdcall.} + OnMemoryNotification*: proc( + self: ptr ICLRMemoryNotificationCallback, eMemoryAvailable: EMemoryAvailable + ): HRESULT {.stdcall.} + IHostMalloc* {.pure.} = object lpVtbl*: ptr IHostMallocVtbl + IHostMallocVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Alloc*: proc(self: ptr IHostMalloc, cbSize: SIZE_T, eCriticalLevel: EMemoryCriticalLevel, ppMem: ptr pointer): HRESULT {.stdcall.} - DebugAlloc*: proc(self: ptr IHostMalloc, cbSize: SIZE_T, eCriticalLevel: EMemoryCriticalLevel, pszFileName: ptr char, iLineNo: int32, ppMem: ptr pointer): HRESULT {.stdcall.} + Alloc*: proc( + self: ptr IHostMalloc, + cbSize: SIZE_T, + eCriticalLevel: EMemoryCriticalLevel, + ppMem: ptr pointer, + ): HRESULT {.stdcall.} + DebugAlloc*: proc( + self: ptr IHostMalloc, + cbSize: SIZE_T, + eCriticalLevel: EMemoryCriticalLevel, + pszFileName: ptr char, + iLineNo: int32, + ppMem: ptr pointer, + ): HRESULT {.stdcall.} Free*: proc(self: ptr IHostMalloc, pMem: pointer): HRESULT {.stdcall.} + IHostMemoryManager* {.pure.} = object lpVtbl*: ptr IHostMemoryManagerVtbl + IHostMemoryManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateMalloc*: proc(self: ptr IHostMemoryManager, dwMallocType: DWORD, ppMalloc: ptr ptr IHostMalloc): HRESULT {.stdcall.} - VirtualAlloc*: proc(self: ptr IHostMemoryManager, pAddress: pointer, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD, eCriticalLevel: EMemoryCriticalLevel, ppMem: ptr pointer): HRESULT {.stdcall.} - VirtualFree*: proc(self: ptr IHostMemoryManager, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD): HRESULT {.stdcall.} - VirtualQuery*: proc(self: ptr IHostMemoryManager, lpAddress: pointer, lpBuffer: pointer, dwLength: SIZE_T, pResult: ptr SIZE_T): HRESULT {.stdcall.} - VirtualProtect*: proc(self: ptr IHostMemoryManager, lpAddress: pointer, dwSize: SIZE_T, flNewProtect: DWORD, pflOldProtect: ptr DWORD): HRESULT {.stdcall.} - GetMemoryLoad*: proc(self: ptr IHostMemoryManager, pMemoryLoad: ptr DWORD, pAvailableBytes: ptr SIZE_T): HRESULT {.stdcall.} - RegisterMemoryNotificationCallback*: proc(self: ptr IHostMemoryManager, pCallback: ptr ICLRMemoryNotificationCallback): HRESULT {.stdcall.} - NeedsVirtualAddressSpace*: proc(self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T): HRESULT {.stdcall.} - AcquiredVirtualAddressSpace*: proc(self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T): HRESULT {.stdcall.} - ReleasedVirtualAddressSpace*: proc(self: ptr IHostMemoryManager, startAddress: LPVOID): HRESULT {.stdcall.} + CreateMalloc*: proc( + self: ptr IHostMemoryManager, dwMallocType: DWORD, ppMalloc: ptr ptr IHostMalloc + ): HRESULT {.stdcall.} + VirtualAlloc*: proc( + self: ptr IHostMemoryManager, + pAddress: pointer, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, + eCriticalLevel: EMemoryCriticalLevel, + ppMem: ptr pointer, + ): HRESULT {.stdcall.} + VirtualFree*: proc( + self: ptr IHostMemoryManager, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD + ): HRESULT {.stdcall.} + VirtualQuery*: proc( + self: ptr IHostMemoryManager, + lpAddress: pointer, + lpBuffer: pointer, + dwLength: SIZE_T, + pResult: ptr SIZE_T, + ): HRESULT {.stdcall.} + VirtualProtect*: proc( + self: ptr IHostMemoryManager, + lpAddress: pointer, + dwSize: SIZE_T, + flNewProtect: DWORD, + pflOldProtect: ptr DWORD, + ): HRESULT {.stdcall.} + GetMemoryLoad*: proc( + self: ptr IHostMemoryManager, pMemoryLoad: ptr DWORD, pAvailableBytes: ptr SIZE_T + ): HRESULT {.stdcall.} + RegisterMemoryNotificationCallback*: proc( + self: ptr IHostMemoryManager, pCallback: ptr ICLRMemoryNotificationCallback + ): HRESULT {.stdcall.} + NeedsVirtualAddressSpace*: proc( + self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T + ): HRESULT {.stdcall.} + AcquiredVirtualAddressSpace*: proc( + self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T + ): HRESULT {.stdcall.} + ReleasedVirtualAddressSpace*: + proc(self: ptr IHostMemoryManager, startAddress: LPVOID): HRESULT {.stdcall.} + ICLRTask* {.pure.} = object lpVtbl*: ptr ICLRTaskVtbl + ICLRTaskVtbl* {.pure, inheritable.} = object of IUnknownVtbl SwitchIn*: proc(self: ptr ICLRTask, threadHandle: HANDLE): HRESULT {.stdcall.} SwitchOut*: proc(self: ptr ICLRTask): HRESULT {.stdcall.} - GetMemStats*: proc(self: ptr ICLRTask, memUsage: ptr COR_GC_THREAD_STATS): HRESULT {.stdcall.} + GetMemStats*: + proc(self: ptr ICLRTask, memUsage: ptr COR_GC_THREAD_STATS): HRESULT {.stdcall.} Reset*: proc(self: ptr ICLRTask, fFull: BOOL): HRESULT {.stdcall.} ExitTask*: proc(self: ptr ICLRTask): HRESULT {.stdcall.} Abort*: proc(self: ptr ICLRTask): HRESULT {.stdcall.} RudeAbort*: proc(self: ptr ICLRTask): HRESULT {.stdcall.} - NeedsPriorityScheduling*: proc(self: ptr ICLRTask, pbNeedsPriorityScheduling: ptr BOOL): HRESULT {.stdcall.} + NeedsPriorityScheduling*: + proc(self: ptr ICLRTask, pbNeedsPriorityScheduling: ptr BOOL): HRESULT {.stdcall.} YieldTask*: proc(self: ptr ICLRTask): HRESULT {.stdcall.} LocksHeld*: proc(self: ptr ICLRTask, pLockCount: ptr SIZE_T): HRESULT {.stdcall.} SetTaskIdentifier*: proc(self: ptr ICLRTask, asked: TASKID): HRESULT {.stdcall.} + ICLRTask2* {.pure.} = object lpVtbl*: ptr ICLRTask2Vtbl + ICLRTask2Vtbl* {.pure, inheritable.} = object of ICLRTaskVtbl BeginPreventAsyncAbort*: proc(self: ptr ICLRTask2): HRESULT {.stdcall.} EndPreventAsyncAbort*: proc(self: ptr ICLRTask2): HRESULT {.stdcall.} + IHostTask* {.pure.} = object lpVtbl*: ptr IHostTaskVtbl + IHostTaskVtbl* {.pure, inheritable.} = object of IUnknownVtbl Start*: proc(self: ptr IHostTask): HRESULT {.stdcall.} Alert*: proc(self: ptr IHostTask): HRESULT {.stdcall.} - Join*: proc(self: ptr IHostTask, dwMilliseconds: DWORD, option: DWORD): HRESULT {.stdcall.} + Join*: proc(self: ptr IHostTask, dwMilliseconds: DWORD, option: DWORD): HRESULT {. + stdcall + .} SetPriority*: proc(self: ptr IHostTask, newPriority: int32): HRESULT {.stdcall.} GetPriority*: proc(self: ptr IHostTask, pPriority: ptr int32): HRESULT {.stdcall.} SetCLRTask*: proc(self: ptr IHostTask, pCLRTask: ptr ICLRTask): HRESULT {.stdcall.} + ICLRTaskManager* {.pure.} = object lpVtbl*: ptr ICLRTaskManagerVtbl + ICLRTaskManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateTask*: proc(self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask): HRESULT {.stdcall.} - GetCurrentTask*: proc(self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask): HRESULT {.stdcall.} + CreateTask*: + proc(self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask): HRESULT {.stdcall.} + GetCurrentTask*: + proc(self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask): HRESULT {.stdcall.} SetUILocale*: proc(self: ptr ICLRTaskManager, lcid: LCID): HRESULT {.stdcall.} SetLocale*: proc(self: ptr ICLRTaskManager, lcid: LCID): HRESULT {.stdcall.} - GetCurrentTaskType*: proc(self: ptr ICLRTaskManager, pTaskType: ptr ETaskType): HRESULT {.stdcall.} + GetCurrentTaskType*: + proc(self: ptr ICLRTaskManager, pTaskType: ptr ETaskType): HRESULT {.stdcall.} + IHostTaskManager* {.pure.} = object lpVtbl*: ptr IHostTaskManagerVtbl + IHostTaskManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentTask*: proc(self: ptr IHostTaskManager, pTask: ptr ptr IHostTask): HRESULT {.stdcall.} - CreateTask*: proc(self: ptr IHostTaskManager, dwStackSize: DWORD, pStartAddress: LPTHREAD_START_ROUTINE, pParameter: PVOID, ppTask: ptr ptr IHostTask): HRESULT {.stdcall.} - Sleep*: proc(self: ptr IHostTaskManager, dwMilliseconds: DWORD, option: DWORD): HRESULT {.stdcall.} + GetCurrentTask*: + proc(self: ptr IHostTaskManager, pTask: ptr ptr IHostTask): HRESULT {.stdcall.} + CreateTask*: proc( + self: ptr IHostTaskManager, + dwStackSize: DWORD, + pStartAddress: LPTHREAD_START_ROUTINE, + pParameter: PVOID, + ppTask: ptr ptr IHostTask, + ): HRESULT {.stdcall.} + Sleep*: proc( + self: ptr IHostTaskManager, dwMilliseconds: DWORD, option: DWORD + ): HRESULT {.stdcall.} SwitchToTask*: proc(self: ptr IHostTaskManager, option: DWORD): HRESULT {.stdcall.} SetUILocale*: proc(self: ptr IHostTaskManager, lcid: LCID): HRESULT {.stdcall.} SetLocale*: proc(self: ptr IHostTaskManager, lcid: LCID): HRESULT {.stdcall.} - CallNeedsHostHook*: proc(self: ptr IHostTaskManager, target: SIZE_T, pbCallNeedsHostHook: ptr BOOL): HRESULT {.stdcall.} + CallNeedsHostHook*: proc( + self: ptr IHostTaskManager, target: SIZE_T, pbCallNeedsHostHook: ptr BOOL + ): HRESULT {.stdcall.} LeaveRuntime*: proc(self: ptr IHostTaskManager, target: SIZE_T): HRESULT {.stdcall.} EnterRuntime*: proc(self: ptr IHostTaskManager): HRESULT {.stdcall.} ReverseLeaveRuntime*: proc(self: ptr IHostTaskManager): HRESULT {.stdcall.} @@ -652,216 +956,564 @@ EndDelayAbort*: proc(self: ptr IHostTaskManager): HRESULT {.stdcall.} BeginThreadAffinity*: proc(self: ptr IHostTaskManager): HRESULT {.stdcall.} EndThreadAffinity*: proc(self: ptr IHostTaskManager): HRESULT {.stdcall.} - SetStackGuarantee*: proc(self: ptr IHostTaskManager, guarantee: ULONG): HRESULT {.stdcall.} - GetStackGuarantee*: proc(self: ptr IHostTaskManager, pGuarantee: ptr ULONG): HRESULT {.stdcall.} - SetCLRTaskManager*: proc(self: ptr IHostTaskManager, ppManager: ptr ICLRTaskManager): HRESULT {.stdcall.} + SetStackGuarantee*: + proc(self: ptr IHostTaskManager, guarantee: ULONG): HRESULT {.stdcall.} + GetStackGuarantee*: + proc(self: ptr IHostTaskManager, pGuarantee: ptr ULONG): HRESULT {.stdcall.} + SetCLRTaskManager*: proc( + self: ptr IHostTaskManager, ppManager: ptr ICLRTaskManager + ): HRESULT {.stdcall.} + IHostThreadpoolManager* {.pure.} = object lpVtbl*: ptr IHostThreadpoolManagerVtbl + IHostThreadpoolManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueueUserWorkItem*: proc(self: ptr IHostThreadpoolManager, Function: LPTHREAD_START_ROUTINE, Context: PVOID, Flags: ULONG): HRESULT {.stdcall.} - SetMaxThreads*: proc(self: ptr IHostThreadpoolManager, dwMaxWorkerThreads: DWORD): HRESULT {.stdcall.} - GetMaxThreads*: proc(self: ptr IHostThreadpoolManager, pdwMaxWorkerThreads: ptr DWORD): HRESULT {.stdcall.} - GetAvailableThreads*: proc(self: ptr IHostThreadpoolManager, pdwAvailableWorkerThreads: ptr DWORD): HRESULT {.stdcall.} - SetMinThreads*: proc(self: ptr IHostThreadpoolManager, dwMinIOCompletionThreads: DWORD): HRESULT {.stdcall.} - GetMinThreads*: proc(self: ptr IHostThreadpoolManager, pdwMinIOCompletionThreads: ptr DWORD): HRESULT {.stdcall.} + QueueUserWorkItem*: proc( + self: ptr IHostThreadpoolManager, + Function: LPTHREAD_START_ROUTINE, + Context: PVOID, + Flags: ULONG, + ): HRESULT {.stdcall.} + SetMaxThreads*: proc( + self: ptr IHostThreadpoolManager, dwMaxWorkerThreads: DWORD + ): HRESULT {.stdcall.} + GetMaxThreads*: proc( + self: ptr IHostThreadpoolManager, pdwMaxWorkerThreads: ptr DWORD + ): HRESULT {.stdcall.} + GetAvailableThreads*: proc( + self: ptr IHostThreadpoolManager, pdwAvailableWorkerThreads: ptr DWORD + ): HRESULT {.stdcall.} + SetMinThreads*: proc( + self: ptr IHostThreadpoolManager, dwMinIOCompletionThreads: DWORD + ): HRESULT {.stdcall.} + GetMinThreads*: proc( + self: ptr IHostThreadpoolManager, pdwMinIOCompletionThreads: ptr DWORD + ): HRESULT {.stdcall.} + ICLRIoCompletionManager* {.pure.} = object lpVtbl*: ptr ICLRIoCompletionManagerVtbl + ICLRIoCompletionManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnComplete*: proc(self: ptr ICLRIoCompletionManager, dwErrorCode: DWORD, NumberOfBytesTransferred: DWORD, pvOverlapped: pointer): HRESULT {.stdcall.} + OnComplete*: proc( + self: ptr ICLRIoCompletionManager, + dwErrorCode: DWORD, + NumberOfBytesTransferred: DWORD, + pvOverlapped: pointer, + ): HRESULT {.stdcall.} + IHostIoCompletionManager* {.pure.} = object lpVtbl*: ptr IHostIoCompletionManagerVtbl + IHostIoCompletionManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateIoCompletionPort*: proc(self: ptr IHostIoCompletionManager, phPort: ptr HANDLE): HRESULT {.stdcall.} - CloseIoCompletionPort*: proc(self: ptr IHostIoCompletionManager, hPort: HANDLE): HRESULT {.stdcall.} - SetMaxThreads*: proc(self: ptr IHostIoCompletionManager, dwMaxIOCompletionThreads: DWORD): HRESULT {.stdcall.} - GetMaxThreads*: proc(self: ptr IHostIoCompletionManager, pdwMaxIOCompletionThreads: ptr DWORD): HRESULT {.stdcall.} - GetAvailableThreads*: proc(self: ptr IHostIoCompletionManager, pdwAvailableIOCompletionThreads: ptr DWORD): HRESULT {.stdcall.} - GetHostOverlappedSize*: proc(self: ptr IHostIoCompletionManager, pcbSize: ptr DWORD): HRESULT {.stdcall.} - SetCLRIoCompletionManager*: proc(self: ptr IHostIoCompletionManager, pManager: ptr ICLRIoCompletionManager): HRESULT {.stdcall.} - InitializeHostOverlapped*: proc(self: ptr IHostIoCompletionManager, pvOverlapped: pointer): HRESULT {.stdcall.} - Bind*: proc(self: ptr IHostIoCompletionManager, hPort: HANDLE, hHandle: HANDLE): HRESULT {.stdcall.} - SetMinThreads*: proc(self: ptr IHostIoCompletionManager, dwMinIOCompletionThreads: DWORD): HRESULT {.stdcall.} - GetMinThreads*: proc(self: ptr IHostIoCompletionManager, pdwMinIOCompletionThreads: ptr DWORD): HRESULT {.stdcall.} + CreateIoCompletionPort*: + proc(self: ptr IHostIoCompletionManager, phPort: ptr HANDLE): HRESULT {.stdcall.} + CloseIoCompletionPort*: + proc(self: ptr IHostIoCompletionManager, hPort: HANDLE): HRESULT {.stdcall.} + SetMaxThreads*: proc( + self: ptr IHostIoCompletionManager, dwMaxIOCompletionThreads: DWORD + ): HRESULT {.stdcall.} + GetMaxThreads*: proc( + self: ptr IHostIoCompletionManager, pdwMaxIOCompletionThreads: ptr DWORD + ): HRESULT {.stdcall.} + GetAvailableThreads*: proc( + self: ptr IHostIoCompletionManager, pdwAvailableIOCompletionThreads: ptr DWORD + ): HRESULT {.stdcall.} + GetHostOverlappedSize*: + proc(self: ptr IHostIoCompletionManager, pcbSize: ptr DWORD): HRESULT {.stdcall.} + SetCLRIoCompletionManager*: proc( + self: ptr IHostIoCompletionManager, pManager: ptr ICLRIoCompletionManager + ): HRESULT {.stdcall.} + InitializeHostOverlapped*: proc( + self: ptr IHostIoCompletionManager, pvOverlapped: pointer + ): HRESULT {.stdcall.} + Bind*: proc( + self: ptr IHostIoCompletionManager, hPort: HANDLE, hHandle: HANDLE + ): HRESULT {.stdcall.} + SetMinThreads*: proc( + self: ptr IHostIoCompletionManager, dwMinIOCompletionThreads: DWORD + ): HRESULT {.stdcall.} + GetMinThreads*: proc( + self: ptr IHostIoCompletionManager, pdwMinIOCompletionThreads: ptr DWORD + ): HRESULT {.stdcall.} + ICLRDebugManager* {.pure.} = object lpVtbl*: ptr ICLRDebugManagerVtbl + ICLRDebugManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - BeginConnection*: proc(self: ptr ICLRDebugManager, dwConnectionId: CONNID, szConnectionName: ptr uint16): HRESULT {.stdcall.} - SetConnectionTasks*: proc(self: ptr ICLRDebugManager, id: CONNID, dwCount: DWORD, ppCLRTask: ptr ptr ICLRTask): HRESULT {.stdcall.} - EndConnection*: proc(self: ptr ICLRDebugManager, dwConnectionId: CONNID): HRESULT {.stdcall.} + BeginConnection*: proc( + self: ptr ICLRDebugManager, dwConnectionId: CONNID, szConnectionName: ptr uint16 + ): HRESULT {.stdcall.} + SetConnectionTasks*: proc( + self: ptr ICLRDebugManager, + id: CONNID, + dwCount: DWORD, + ppCLRTask: ptr ptr ICLRTask, + ): HRESULT {.stdcall.} + EndConnection*: + proc(self: ptr ICLRDebugManager, dwConnectionId: CONNID): HRESULT {.stdcall.} SetDacl*: proc(self: ptr ICLRDebugManager, pacl: PACL): HRESULT {.stdcall.} GetDacl*: proc(self: ptr ICLRDebugManager, pacl: ptr PACL): HRESULT {.stdcall.} - IsDebuggerAttached*: proc(self: ptr ICLRDebugManager, pbAttached: ptr BOOL): HRESULT {.stdcall.} - SetSymbolReadingPolicy*: proc(self: ptr ICLRDebugManager, policy: ESymbolReadingPolicy): HRESULT {.stdcall.} + IsDebuggerAttached*: + proc(self: ptr ICLRDebugManager, pbAttached: ptr BOOL): HRESULT {.stdcall.} + SetSymbolReadingPolicy*: proc( + self: ptr ICLRDebugManager, policy: ESymbolReadingPolicy + ): HRESULT {.stdcall.} + ICLRErrorReportingManager* {.pure.} = object lpVtbl*: ptr ICLRErrorReportingManagerVtbl + ICLRErrorReportingManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetBucketParametersForCurrentException*: proc(self: ptr ICLRErrorReportingManager, pParams: ptr BucketParameters): HRESULT {.stdcall.} - BeginCustomDump*: proc(self: ptr ICLRErrorReportingManager, dwFlavor: ECustomDumpFlavor, dwNumItems: DWORD, items: ptr CustomDumpItem, dwReserved: DWORD): HRESULT {.stdcall.} + GetBucketParametersForCurrentException*: proc( + self: ptr ICLRErrorReportingManager, pParams: ptr BucketParameters + ): HRESULT {.stdcall.} + BeginCustomDump*: proc( + self: ptr ICLRErrorReportingManager, + dwFlavor: ECustomDumpFlavor, + dwNumItems: DWORD, + items: ptr CustomDumpItem, + dwReserved: DWORD, + ): HRESULT {.stdcall.} EndCustomDump*: proc(self: ptr ICLRErrorReportingManager): HRESULT {.stdcall.} + IHostCrst* {.pure.} = object lpVtbl*: ptr IHostCrstVtbl + IHostCrstVtbl* {.pure, inheritable.} = object of IUnknownVtbl Enter*: proc(self: ptr IHostCrst, option: DWORD): HRESULT {.stdcall.} Leave*: proc(self: ptr IHostCrst): HRESULT {.stdcall.} - TryEnter*: proc(self: ptr IHostCrst, option: DWORD, pbSucceeded: ptr BOOL): HRESULT {.stdcall.} + TryEnter*: proc(self: ptr IHostCrst, option: DWORD, pbSucceeded: ptr BOOL): HRESULT {. + stdcall + .} SetSpinCount*: proc(self: ptr IHostCrst, dwSpinCount: DWORD): HRESULT {.stdcall.} + IHostAutoEvent* {.pure.} = object lpVtbl*: ptr IHostAutoEventVtbl + IHostAutoEventVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Wait*: proc(self: ptr IHostAutoEvent, dwMilliseconds: DWORD, option: DWORD): HRESULT {.stdcall.} + Wait*: proc(self: ptr IHostAutoEvent, dwMilliseconds: DWORD, option: DWORD): HRESULT {. + stdcall + .} Set*: proc(self: ptr IHostAutoEvent): HRESULT {.stdcall.} + IHostManualEvent* {.pure.} = object lpVtbl*: ptr IHostManualEventVtbl + IHostManualEventVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Wait*: proc(self: ptr IHostManualEvent, dwMilliseconds: DWORD, option: DWORD): HRESULT {.stdcall.} + Wait*: proc( + self: ptr IHostManualEvent, dwMilliseconds: DWORD, option: DWORD + ): HRESULT {.stdcall.} Reset*: proc(self: ptr IHostManualEvent): HRESULT {.stdcall.} Set*: proc(self: ptr IHostManualEvent): HRESULT {.stdcall.} + IHostSemaphore* {.pure.} = object lpVtbl*: ptr IHostSemaphoreVtbl + IHostSemaphoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Wait*: proc(self: ptr IHostSemaphore, dwMilliseconds: DWORD, option: DWORD): HRESULT {.stdcall.} - ReleaseSemaphore*: proc(self: ptr IHostSemaphore, lReleaseCount: LONG, lpPreviousCount: ptr LONG): HRESULT {.stdcall.} + Wait*: proc(self: ptr IHostSemaphore, dwMilliseconds: DWORD, option: DWORD): HRESULT {. + stdcall + .} + ReleaseSemaphore*: proc( + self: ptr IHostSemaphore, lReleaseCount: LONG, lpPreviousCount: ptr LONG + ): HRESULT {.stdcall.} + ICLRSyncManager* {.pure.} = object lpVtbl*: ptr ICLRSyncManagerVtbl + ICLRSyncManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetMonitorOwner*: proc(self: ptr ICLRSyncManager, Cookie: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask): HRESULT {.stdcall.} - CreateRWLockOwnerIterator*: proc(self: ptr ICLRSyncManager, Cookie: SIZE_T, pIterator: ptr SIZE_T): HRESULT {.stdcall.} - GetRWLockOwnerNext*: proc(self: ptr ICLRSyncManager, Iterator: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask): HRESULT {.stdcall.} - DeleteRWLockOwnerIterator*: proc(self: ptr ICLRSyncManager, Iterator: SIZE_T): HRESULT {.stdcall.} + GetMonitorOwner*: proc( + self: ptr ICLRSyncManager, Cookie: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask + ): HRESULT {.stdcall.} + CreateRWLockOwnerIterator*: proc( + self: ptr ICLRSyncManager, Cookie: SIZE_T, pIterator: ptr SIZE_T + ): HRESULT {.stdcall.} + GetRWLockOwnerNext*: proc( + self: ptr ICLRSyncManager, Iterator: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask + ): HRESULT {.stdcall.} + DeleteRWLockOwnerIterator*: + proc(self: ptr ICLRSyncManager, Iterator: SIZE_T): HRESULT {.stdcall.} + IHostSyncManager* {.pure.} = object lpVtbl*: ptr IHostSyncManagerVtbl + IHostSyncManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetCLRSyncManager*: proc(self: ptr IHostSyncManager, pManager: ptr ICLRSyncManager): HRESULT {.stdcall.} - CreateCrst*: proc(self: ptr IHostSyncManager, ppCrst: ptr ptr IHostCrst): HRESULT {.stdcall.} - CreateCrstWithSpinCount*: proc(self: ptr IHostSyncManager, dwSpinCount: DWORD, ppCrst: ptr ptr IHostCrst): HRESULT {.stdcall.} - CreateAutoEvent*: proc(self: ptr IHostSyncManager, ppEvent: ptr ptr IHostAutoEvent): HRESULT {.stdcall.} - CreateManualEvent*: proc(self: ptr IHostSyncManager, bInitialState: BOOL, ppEvent: ptr ptr IHostManualEvent): HRESULT {.stdcall.} - CreateMonitorEvent*: proc(self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent): HRESULT {.stdcall.} - CreateRWLockWriterEvent*: proc(self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent): HRESULT {.stdcall.} - CreateRWLockReaderEvent*: proc(self: ptr IHostSyncManager, bInitialState: BOOL, Cookie: SIZE_T, ppEvent: ptr ptr IHostManualEvent): HRESULT {.stdcall.} - CreateSemaphore*: proc(self: ptr IHostSyncManager, dwInitial: DWORD, dwMax: DWORD, ppSemaphore: ptr ptr IHostSemaphore): HRESULT {.stdcall.} + SetCLRSyncManager*: proc( + self: ptr IHostSyncManager, pManager: ptr ICLRSyncManager + ): HRESULT {.stdcall.} + CreateCrst*: + proc(self: ptr IHostSyncManager, ppCrst: ptr ptr IHostCrst): HRESULT {.stdcall.} + CreateCrstWithSpinCount*: proc( + self: ptr IHostSyncManager, dwSpinCount: DWORD, ppCrst: ptr ptr IHostCrst + ): HRESULT {.stdcall.} + CreateAutoEvent*: proc( + self: ptr IHostSyncManager, ppEvent: ptr ptr IHostAutoEvent + ): HRESULT {.stdcall.} + CreateManualEvent*: proc( + self: ptr IHostSyncManager, bInitialState: BOOL, ppEvent: ptr ptr IHostManualEvent + ): HRESULT {.stdcall.} + CreateMonitorEvent*: proc( + self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent + ): HRESULT {.stdcall.} + CreateRWLockWriterEvent*: proc( + self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent + ): HRESULT {.stdcall.} + CreateRWLockReaderEvent*: proc( + self: ptr IHostSyncManager, + bInitialState: BOOL, + Cookie: SIZE_T, + ppEvent: ptr ptr IHostManualEvent, + ): HRESULT {.stdcall.} + CreateSemaphore*: proc( + self: ptr IHostSyncManager, + dwInitial: DWORD, + dwMax: DWORD, + ppSemaphore: ptr ptr IHostSemaphore, + ): HRESULT {.stdcall.} + ICLRPolicyManager* {.pure.} = object lpVtbl*: ptr ICLRPolicyManagerVtbl + ICLRPolicyManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetDefaultAction*: proc(self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.stdcall.} - SetTimeout*: proc(self: ptr ICLRPolicyManager, operation: EClrOperation, dwMilliseconds: DWORD): HRESULT {.stdcall.} - SetActionOnTimeout*: proc(self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.stdcall.} - SetTimeoutAndAction*: proc(self: ptr ICLRPolicyManager, operation: EClrOperation, dwMilliseconds: DWORD, action: EPolicyAction): HRESULT {.stdcall.} - SetActionOnFailure*: proc(self: ptr ICLRPolicyManager, failure: EClrFailure, action: EPolicyAction): HRESULT {.stdcall.} - SetUnhandledExceptionPolicy*: proc(self: ptr ICLRPolicyManager, policy: EClrUnhandledException): HRESULT {.stdcall.} + SetDefaultAction*: proc( + self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction + ): HRESULT {.stdcall.} + SetTimeout*: proc( + self: ptr ICLRPolicyManager, operation: EClrOperation, dwMilliseconds: DWORD + ): HRESULT {.stdcall.} + SetActionOnTimeout*: proc( + self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction + ): HRESULT {.stdcall.} + SetTimeoutAndAction*: proc( + self: ptr ICLRPolicyManager, + operation: EClrOperation, + dwMilliseconds: DWORD, + action: EPolicyAction, + ): HRESULT {.stdcall.} + SetActionOnFailure*: proc( + self: ptr ICLRPolicyManager, failure: EClrFailure, action: EPolicyAction + ): HRESULT {.stdcall.} + SetUnhandledExceptionPolicy*: proc( + self: ptr ICLRPolicyManager, policy: EClrUnhandledException + ): HRESULT {.stdcall.} + IHostPolicyManager* {.pure.} = object lpVtbl*: ptr IHostPolicyManagerVtbl + IHostPolicyManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnDefaultAction*: proc(self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.stdcall.} - OnTimeout*: proc(self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.stdcall.} - OnFailure*: proc(self: ptr IHostPolicyManager, failure: EClrFailure, action: EPolicyAction): HRESULT {.stdcall.} + OnDefaultAction*: proc( + self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction + ): HRESULT {.stdcall.} + OnTimeout*: proc( + self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction + ): HRESULT {.stdcall.} + OnFailure*: proc( + self: ptr IHostPolicyManager, failure: EClrFailure, action: EPolicyAction + ): HRESULT {.stdcall.} + IActionOnCLREvent* {.pure.} = object lpVtbl*: ptr IActionOnCLREventVtbl + IActionOnCLREventVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnEvent*: proc(self: ptr IActionOnCLREvent, event: EClrEvent, data: PVOID): HRESULT {.stdcall.} + OnEvent*: proc(self: ptr IActionOnCLREvent, event: EClrEvent, data: PVOID): HRESULT {. + stdcall + .} + ICLROnEventManager* {.pure.} = object lpVtbl*: ptr ICLROnEventManagerVtbl + ICLROnEventManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterActionOnEvent*: proc(self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent): HRESULT {.stdcall.} - UnregisterActionOnEvent*: proc(self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent): HRESULT {.stdcall.} + RegisterActionOnEvent*: proc( + self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent + ): HRESULT {.stdcall.} + UnregisterActionOnEvent*: proc( + self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent + ): HRESULT {.stdcall.} + IHostGCManager* {.pure.} = object lpVtbl*: ptr IHostGCManagerVtbl + IHostGCManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl ThreadIsBlockingForSuspension*: proc(self: ptr IHostGCManager): HRESULT {.stdcall.} SuspensionStarting*: proc(self: ptr IHostGCManager): HRESULT {.stdcall.} - SuspensionEnding*: proc(self: ptr IHostGCManager, Generation: DWORD): HRESULT {.stdcall.} + SuspensionEnding*: + proc(self: ptr IHostGCManager, Generation: DWORD): HRESULT {.stdcall.} + ICLRAssemblyReferenceList* {.pure.} = object lpVtbl*: ptr ICLRAssemblyReferenceListVtbl + ICLRAssemblyReferenceListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IsStringAssemblyReferenceInList*: proc(self: ptr ICLRAssemblyReferenceList, pwzAssemblyName: LPCWSTR): HRESULT {.stdcall.} - IsAssemblyReferenceInList*: proc(self: ptr ICLRAssemblyReferenceList, pName: ptr IUnknown): HRESULT {.stdcall.} + IsStringAssemblyReferenceInList*: proc( + self: ptr ICLRAssemblyReferenceList, pwzAssemblyName: LPCWSTR + ): HRESULT {.stdcall.} + IsAssemblyReferenceInList*: proc( + self: ptr ICLRAssemblyReferenceList, pName: ptr IUnknown + ): HRESULT {.stdcall.} + ICLRReferenceAssemblyEnum* {.pure.} = object lpVtbl*: ptr ICLRReferenceAssemblyEnumVtbl + ICLRReferenceAssemblyEnumVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Get*: proc(self: ptr ICLRReferenceAssemblyEnum, dwIndex: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.stdcall.} + Get*: proc( + self: ptr ICLRReferenceAssemblyEnum, + dwIndex: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, + ): HRESULT {.stdcall.} + ICLRProbingAssemblyEnum* {.pure.} = object lpVtbl*: ptr ICLRProbingAssemblyEnumVtbl + ICLRProbingAssemblyEnumVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Get*: proc(self: ptr ICLRProbingAssemblyEnum, dwIndex: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.stdcall.} + Get*: proc( + self: ptr ICLRProbingAssemblyEnum, + dwIndex: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, + ): HRESULT {.stdcall.} + ICLRAssemblyIdentityManager* {.pure.} = object lpVtbl*: ptr ICLRAssemblyIdentityManagerVtbl + ICLRAssemblyIdentityManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCLRAssemblyReferenceList*: proc(self: ptr ICLRAssemblyIdentityManager, ppwzAssemblyReferences: ptr LPCWSTR, dwNumOfReferences: DWORD, ppReferenceList: ptr ptr ICLRAssemblyReferenceList): HRESULT {.stdcall.} - GetBindingIdentityFromFile*: proc(self: ptr ICLRAssemblyIdentityManager, pwzFilePath: LPCWSTR, dwFlags: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.stdcall.} - GetBindingIdentityFromStream*: proc(self: ptr ICLRAssemblyIdentityManager, pStream: ptr IStream, dwFlags: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.stdcall.} - GetReferencedAssembliesFromFile*: proc(self: ptr ICLRAssemblyIdentityManager, pwzFilePath: LPCWSTR, dwFlags: DWORD, pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum): HRESULT {.stdcall.} - GetReferencedAssembliesFromStream*: proc(self: ptr ICLRAssemblyIdentityManager, pStream: ptr IStream, dwFlags: DWORD, pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum): HRESULT {.stdcall.} - GetProbingAssembliesFromReference*: proc(self: ptr ICLRAssemblyIdentityManager, dwMachineType: DWORD, dwFlags: DWORD, pwzReferenceIdentity: LPCWSTR, ppProbingAssemblyEnum: ptr ptr ICLRProbingAssemblyEnum): HRESULT {.stdcall.} - IsStronglyNamed*: proc(self: ptr ICLRAssemblyIdentityManager, pwzAssemblyIdentity: LPCWSTR, pbIsStronglyNamed: ptr BOOL): HRESULT {.stdcall.} + GetCLRAssemblyReferenceList*: proc( + self: ptr ICLRAssemblyIdentityManager, + ppwzAssemblyReferences: ptr LPCWSTR, + dwNumOfReferences: DWORD, + ppReferenceList: ptr ptr ICLRAssemblyReferenceList, + ): HRESULT {.stdcall.} + GetBindingIdentityFromFile*: proc( + self: ptr ICLRAssemblyIdentityManager, + pwzFilePath: LPCWSTR, + dwFlags: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, + ): HRESULT {.stdcall.} + GetBindingIdentityFromStream*: proc( + self: ptr ICLRAssemblyIdentityManager, + pStream: ptr IStream, + dwFlags: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, + ): HRESULT {.stdcall.} + GetReferencedAssembliesFromFile*: proc( + self: ptr ICLRAssemblyIdentityManager, + pwzFilePath: LPCWSTR, + dwFlags: DWORD, + pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, + ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum, + ): HRESULT {.stdcall.} + GetReferencedAssembliesFromStream*: proc( + self: ptr ICLRAssemblyIdentityManager, + pStream: ptr IStream, + dwFlags: DWORD, + pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, + ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum, + ): HRESULT {.stdcall.} + GetProbingAssembliesFromReference*: proc( + self: ptr ICLRAssemblyIdentityManager, + dwMachineType: DWORD, + dwFlags: DWORD, + pwzReferenceIdentity: LPCWSTR, + ppProbingAssemblyEnum: ptr ptr ICLRProbingAssemblyEnum, + ): HRESULT {.stdcall.} + IsStronglyNamed*: proc( + self: ptr ICLRAssemblyIdentityManager, + pwzAssemblyIdentity: LPCWSTR, + pbIsStronglyNamed: ptr BOOL, + ): HRESULT {.stdcall.} + ICLRHostBindingPolicyManager* {.pure.} = object lpVtbl*: ptr ICLRHostBindingPolicyManagerVtbl + ICLRHostBindingPolicyManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ModifyApplicationPolicy*: proc(self: ptr ICLRHostBindingPolicyManager, pwzSourceAssemblyIdentity: LPCWSTR, pwzTargetAssemblyIdentity: LPCWSTR, pbApplicationPolicy: ptr BYTE, cbAppPolicySize: DWORD, dwPolicyModifyFlags: DWORD, pbNewApplicationPolicy: ptr BYTE, pcbNewAppPolicySize: ptr DWORD): HRESULT {.stdcall.} - EvaluatePolicy*: proc(self: ptr ICLRHostBindingPolicyManager, pwzReferenceIdentity: LPCWSTR, pbApplicationPolicy: ptr BYTE, cbAppPolicySize: DWORD, pwzPostPolicyReferenceIdentity: LPWSTR, pcchPostPolicyReferenceIdentity: ptr DWORD, pdwPoliciesApplied: ptr DWORD): HRESULT {.stdcall.} + ModifyApplicationPolicy*: proc( + self: ptr ICLRHostBindingPolicyManager, + pwzSourceAssemblyIdentity: LPCWSTR, + pwzTargetAssemblyIdentity: LPCWSTR, + pbApplicationPolicy: ptr BYTE, + cbAppPolicySize: DWORD, + dwPolicyModifyFlags: DWORD, + pbNewApplicationPolicy: ptr BYTE, + pcbNewAppPolicySize: ptr DWORD, + ): HRESULT {.stdcall.} + EvaluatePolicy*: proc( + self: ptr ICLRHostBindingPolicyManager, + pwzReferenceIdentity: LPCWSTR, + pbApplicationPolicy: ptr BYTE, + cbAppPolicySize: DWORD, + pwzPostPolicyReferenceIdentity: LPWSTR, + pcchPostPolicyReferenceIdentity: ptr DWORD, + pdwPoliciesApplied: ptr DWORD, + ): HRESULT {.stdcall.} + ICLRGCManager* {.pure.} = object lpVtbl*: ptr ICLRGCManagerVtbl + ICLRGCManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl Collect*: proc(self: ptr ICLRGCManager, Generation: LONG): HRESULT {.stdcall.} - GetStats*: proc(self: ptr ICLRGCManager, pStats: ptr COR_GC_STATS): HRESULT {.stdcall.} - SetGCStartupLimits*: proc(self: ptr ICLRGCManager, SegmentSize: DWORD, MaxGen0Size: DWORD): HRESULT {.stdcall.} + GetStats*: + proc(self: ptr ICLRGCManager, pStats: ptr COR_GC_STATS): HRESULT {.stdcall.} + SetGCStartupLimits*: proc( + self: ptr ICLRGCManager, SegmentSize: DWORD, MaxGen0Size: DWORD + ): HRESULT {.stdcall.} + ICLRGCManager2* {.pure.} = object lpVtbl*: ptr ICLRGCManager2Vtbl + ICLRGCManager2Vtbl* {.pure, inheritable.} = object of ICLRGCManagerVtbl - SetGCStartupLimitsEx*: proc(self: ptr ICLRGCManager2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T): HRESULT {.stdcall.} + SetGCStartupLimitsEx*: proc( + self: ptr ICLRGCManager2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T + ): HRESULT {.stdcall.} + IHostAssemblyStore* {.pure.} = object lpVtbl*: ptr IHostAssemblyStoreVtbl + IHostAssemblyStoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ProvideAssembly*: proc(self: ptr IHostAssemblyStore, pBindInfo: ptr AssemblyBindInfo, pAssemblyId: ptr UINT64, pContext: ptr UINT64, ppStmAssemblyImage: ptr ptr IStream, ppStmPDB: ptr ptr IStream): HRESULT {.stdcall.} - ProvideModule*: proc(self: ptr IHostAssemblyStore, pBindInfo: ptr ModuleBindInfo, pdwModuleId: ptr DWORD, ppStmModuleImage: ptr ptr IStream, ppStmPDB: ptr ptr IStream): HRESULT {.stdcall.} + ProvideAssembly*: proc( + self: ptr IHostAssemblyStore, + pBindInfo: ptr AssemblyBindInfo, + pAssemblyId: ptr UINT64, + pContext: ptr UINT64, + ppStmAssemblyImage: ptr ptr IStream, + ppStmPDB: ptr ptr IStream, + ): HRESULT {.stdcall.} + ProvideModule*: proc( + self: ptr IHostAssemblyStore, + pBindInfo: ptr ModuleBindInfo, + pdwModuleId: ptr DWORD, + ppStmModuleImage: ptr ptr IStream, + ppStmPDB: ptr ptr IStream, + ): HRESULT {.stdcall.} + IHostAssemblyManager* {.pure.} = object lpVtbl*: ptr IHostAssemblyManagerVtbl + IHostAssemblyManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetNonHostStoreAssemblies*: proc(self: ptr IHostAssemblyManager, ppReferenceList: ptr ptr ICLRAssemblyReferenceList): HRESULT {.stdcall.} - GetAssemblyStore*: proc(self: ptr IHostAssemblyManager, ppAssemblyStore: ptr ptr IHostAssemblyStore): HRESULT {.stdcall.} + GetNonHostStoreAssemblies*: proc( + self: ptr IHostAssemblyManager, ppReferenceList: ptr ptr ICLRAssemblyReferenceList + ): HRESULT {.stdcall.} + GetAssemblyStore*: proc( + self: ptr IHostAssemblyManager, ppAssemblyStore: ptr ptr IHostAssemblyStore + ): HRESULT {.stdcall.} + IHostControl* {.pure.} = object lpVtbl*: ptr IHostControlVtbl + IHostControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetHostManager*: proc(self: ptr IHostControl, riid: REFIID, ppObject: ptr pointer): HRESULT {.stdcall.} - SetAppDomainManager*: proc(self: ptr IHostControl, dwAppDomainID: DWORD, pUnkAppDomainManager: ptr IUnknown): HRESULT {.stdcall.} + GetHostManager*: proc( + self: ptr IHostControl, riid: REFIID, ppObject: ptr pointer + ): HRESULT {.stdcall.} + SetAppDomainManager*: proc( + self: ptr IHostControl, dwAppDomainID: DWORD, pUnkAppDomainManager: ptr IUnknown + ): HRESULT {.stdcall.} + ICLRControl* {.pure.} = object lpVtbl*: ptr ICLRControlVtbl + ICLRControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCLRManager*: proc(self: ptr ICLRControl, riid: REFIID, ppObject: ptr pointer): HRESULT {.stdcall.} - SetAppDomainManagerType*: proc(self: ptr ICLRControl, pwzAppDomainManagerAssembly: LPCWSTR, pwzAppDomainManagerType: LPCWSTR): HRESULT {.stdcall.} + GetCLRManager*: proc( + self: ptr ICLRControl, riid: REFIID, ppObject: ptr pointer + ): HRESULT {.stdcall.} + SetAppDomainManagerType*: proc( + self: ptr ICLRControl, + pwzAppDomainManagerAssembly: LPCWSTR, + pwzAppDomainManagerType: LPCWSTR, + ): HRESULT {.stdcall.} + ICLRRuntimeHost* {.pure.} = object lpVtbl*: ptr ICLRRuntimeHostVtbl + ICLRRuntimeHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl Start*: proc(self: ptr ICLRRuntimeHost): HRESULT {.stdcall.} Stop*: proc(self: ptr ICLRRuntimeHost): HRESULT {.stdcall.} - SetHostControl*: proc(self: ptr ICLRRuntimeHost, pHostControl: ptr IHostControl): HRESULT {.stdcall.} - GetCLRControl*: proc(self: ptr ICLRRuntimeHost, pCLRControl: ptr ptr ICLRControl): HRESULT {.stdcall.} - UnloadAppDomain*: proc(self: ptr ICLRRuntimeHost, dwAppDomainId: DWORD, fWaitUntilDone: BOOL): HRESULT {.stdcall.} - ExecuteInAppDomain*: proc(self: ptr ICLRRuntimeHost, dwAppDomainId: DWORD, pCallback: FExecuteInAppDomainCallback, cookie: pointer): HRESULT {.stdcall.} - GetCurrentAppDomainId*: proc(self: ptr ICLRRuntimeHost, pdwAppDomainId: ptr DWORD): HRESULT {.stdcall.} - ExecuteApplication*: proc(self: ptr ICLRRuntimeHost, pwzAppFullName: LPCWSTR, dwManifestPaths: DWORD, ppwzManifestPaths: ptr LPCWSTR, dwActivationData: DWORD, ppwzActivationData: ptr LPCWSTR, pReturnValue: ptr int32): HRESULT {.stdcall.} - ExecuteInDefaultAppDomain*: proc(self: ptr ICLRRuntimeHost, pwzAssemblyPath: LPCWSTR, pwzTypeName: LPCWSTR, pwzMethodName: LPCWSTR, pwzArgument: LPCWSTR, pReturnValue: ptr DWORD): HRESULT {.stdcall.} + SetHostControl*: proc( + self: ptr ICLRRuntimeHost, pHostControl: ptr IHostControl + ): HRESULT {.stdcall.} + GetCLRControl*: proc( + self: ptr ICLRRuntimeHost, pCLRControl: ptr ptr ICLRControl + ): HRESULT {.stdcall.} + UnloadAppDomain*: proc( + self: ptr ICLRRuntimeHost, dwAppDomainId: DWORD, fWaitUntilDone: BOOL + ): HRESULT {.stdcall.} + ExecuteInAppDomain*: proc( + self: ptr ICLRRuntimeHost, + dwAppDomainId: DWORD, + pCallback: FExecuteInAppDomainCallback, + cookie: pointer, + ): HRESULT {.stdcall.} + GetCurrentAppDomainId*: + proc(self: ptr ICLRRuntimeHost, pdwAppDomainId: ptr DWORD): HRESULT {.stdcall.} + ExecuteApplication*: proc( + self: ptr ICLRRuntimeHost, + pwzAppFullName: LPCWSTR, + dwManifestPaths: DWORD, + ppwzManifestPaths: ptr LPCWSTR, + dwActivationData: DWORD, + ppwzActivationData: ptr LPCWSTR, + pReturnValue: ptr int32, + ): HRESULT {.stdcall.} + ExecuteInDefaultAppDomain*: proc( + self: ptr ICLRRuntimeHost, + pwzAssemblyPath: LPCWSTR, + pwzTypeName: LPCWSTR, + pwzMethodName: LPCWSTR, + pwzArgument: LPCWSTR, + pReturnValue: ptr DWORD, + ): HRESULT {.stdcall.} + ICLRHostProtectionManager* {.pure.} = object lpVtbl*: ptr ICLRHostProtectionManagerVtbl + ICLRHostProtectionManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetProtectedCategories*: proc(self: ptr ICLRHostProtectionManager, categories: EApiCategories): HRESULT {.stdcall.} - SetEagerSerializeGrantSets*: proc(self: ptr ICLRHostProtectionManager): HRESULT {.stdcall.} + SetProtectedCategories*: proc( + self: ptr ICLRHostProtectionManager, categories: EApiCategories + ): HRESULT {.stdcall.} + SetEagerSerializeGrantSets*: + proc(self: ptr ICLRHostProtectionManager): HRESULT {.stdcall.} + ICLRDomainManager* {.pure.} = object lpVtbl*: ptr ICLRDomainManagerVtbl + ICLRDomainManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAppDomainManagerType*: proc(self: ptr ICLRDomainManager, wszAppDomainManagerAssembly: LPCWSTR, wszAppDomainManagerType: LPCWSTR, dwInitializeDomainFlags: EInitializeNewDomainFlags): HRESULT {.stdcall.} - SetPropertiesForDefaultAppDomain*: proc(self: ptr ICLRDomainManager, nProperties: DWORD, pwszPropertyNames: ptr LPCWSTR, pwszPropertyValues: ptr LPCWSTR): HRESULT {.stdcall.} + SetAppDomainManagerType*: proc( + self: ptr ICLRDomainManager, + wszAppDomainManagerAssembly: LPCWSTR, + wszAppDomainManagerType: LPCWSTR, + dwInitializeDomainFlags: EInitializeNewDomainFlags, + ): HRESULT {.stdcall.} + SetPropertiesForDefaultAppDomain*: proc( + self: ptr ICLRDomainManager, + nProperties: DWORD, + pwszPropertyNames: ptr LPCWSTR, + pwszPropertyValues: ptr LPCWSTR, + ): HRESULT {.stdcall.} + ITypeName* {.pure.} = object lpVtbl*: ptr ITypeNameVtbl + ITypeNameVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetNameCount*: proc(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.stdcall.} - GetNames*: proc(self: ptr ITypeName, count: DWORD, rgbszNames: ptr BSTR, pCount: ptr DWORD): HRESULT {.stdcall.} - GetTypeArgumentCount*: proc(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.stdcall.} - GetTypeArguments*: proc(self: ptr ITypeName, count: DWORD, rgpArguments: ptr ptr ITypeName, pCount: ptr DWORD): HRESULT {.stdcall.} - GetModifierLength*: proc(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.stdcall.} - GetModifiers*: proc(self: ptr ITypeName, count: DWORD, rgModifiers: ptr DWORD, pCount: ptr DWORD): HRESULT {.stdcall.} - GetAssemblyName*: proc(self: ptr ITypeName, rgbszAssemblyNames: ptr BSTR): HRESULT {.stdcall.} + GetNames*: proc( + self: ptr ITypeName, count: DWORD, rgbszNames: ptr BSTR, pCount: ptr DWORD + ): HRESULT {.stdcall.} + GetTypeArgumentCount*: + proc(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.stdcall.} + GetTypeArguments*: proc( + self: ptr ITypeName, + count: DWORD, + rgpArguments: ptr ptr ITypeName, + pCount: ptr DWORD, + ): HRESULT {.stdcall.} + GetModifierLength*: + proc(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.stdcall.} + GetModifiers*: proc( + self: ptr ITypeName, count: DWORD, rgModifiers: ptr DWORD, pCount: ptr DWORD + ): HRESULT {.stdcall.} + GetAssemblyName*: + proc(self: ptr ITypeName, rgbszAssemblyNames: ptr BSTR): HRESULT {.stdcall.} + ITypeNameBuilder* {.pure.} = object lpVtbl*: ptr ITypeNameBuilderVtbl + ITypeNameBuilderVtbl* {.pure, inheritable.} = object of IUnknownVtbl OpenGenericArguments*: proc(self: ptr ITypeNameBuilder): HRESULT {.stdcall.} CloseGenericArguments*: proc(self: ptr ITypeNameBuilder): HRESULT {.stdcall.} @@ -872,366 +1524,1116 @@ AddByRef*: proc(self: ptr ITypeNameBuilder): HRESULT {.stdcall.} AddSzArray*: proc(self: ptr ITypeNameBuilder): HRESULT {.stdcall.} AddArray*: proc(self: ptr ITypeNameBuilder, rank: DWORD): HRESULT {.stdcall.} - AddAssemblySpec*: proc(self: ptr ITypeNameBuilder, szAssemblySpec: LPCWSTR): HRESULT {.stdcall.} - ToString*: proc(self: ptr ITypeNameBuilder, pszStringRepresentation: ptr BSTR): HRESULT {.stdcall.} + AddAssemblySpec*: + proc(self: ptr ITypeNameBuilder, szAssemblySpec: LPCWSTR): HRESULT {.stdcall.} + ToString*: proc( + self: ptr ITypeNameBuilder, pszStringRepresentation: ptr BSTR + ): HRESULT {.stdcall.} Clear*: proc(self: ptr ITypeNameBuilder): HRESULT {.stdcall.} + ITypeNameFactory* {.pure.} = object lpVtbl*: ptr ITypeNameFactoryVtbl + ITypeNameFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseTypeName*: proc(self: ptr ITypeNameFactory, szName: LPCWSTR, pError: ptr DWORD, ppTypeName: ptr ptr ITypeName): HRESULT {.stdcall.} - GetTypeNameBuilder*: proc(self: ptr ITypeNameFactory, ppTypeBuilder: ptr ptr ITypeNameBuilder): HRESULT {.stdcall.} + ParseTypeName*: proc( + self: ptr ITypeNameFactory, + szName: LPCWSTR, + pError: ptr DWORD, + ppTypeName: ptr ptr ITypeName, + ): HRESULT {.stdcall.} + GetTypeNameBuilder*: proc( + self: ptr ITypeNameFactory, ppTypeBuilder: ptr ptr ITypeNameBuilder + ): HRESULT {.stdcall.} + IApartmentCallback* {.pure.} = object lpVtbl*: ptr IApartmentCallbackVtbl + IApartmentCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - DoCallback*: proc(self: ptr IApartmentCallback, pFunc: SIZE_T, pData: SIZE_T): HRESULT {.stdcall.} + DoCallback*: proc( + self: ptr IApartmentCallback, pFunc: SIZE_T, pData: SIZE_T + ): HRESULT {.stdcall.} + IManagedObject* {.pure.} = object lpVtbl*: ptr IManagedObjectVtbl + IManagedObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSerializedBuffer*: proc(self: ptr IManagedObject, pBSTR: ptr BSTR): HRESULT {.stdcall.} - GetObjectIdentity*: proc(self: ptr IManagedObject, pBSTRGUID: ptr BSTR, AppDomainID: ptr int32, pCCW: ptr int32): HRESULT {.stdcall.} + GetSerializedBuffer*: + proc(self: ptr IManagedObject, pBSTR: ptr BSTR): HRESULT {.stdcall.} + GetObjectIdentity*: proc( + self: ptr IManagedObject, + pBSTRGUID: ptr BSTR, + AppDomainID: ptr int32, + pCCW: ptr int32, + ): HRESULT {.stdcall.} + ICatalogServices* {.pure.} = object lpVtbl*: ptr ICatalogServicesVtbl + ICatalogServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl Autodone*: proc(self: ptr ICatalogServices): HRESULT {.stdcall.} NotAutodone*: proc(self: ptr ICatalogServices): HRESULT {.stdcall.} + IHostSecurityContext* {.pure.} = object lpVtbl*: ptr IHostSecurityContextVtbl + IHostSecurityContextVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Capture*: proc(self: ptr IHostSecurityContext, ppClonedContext: ptr ptr IHostSecurityContext): HRESULT {.stdcall.} + Capture*: proc( + self: ptr IHostSecurityContext, ppClonedContext: ptr ptr IHostSecurityContext + ): HRESULT {.stdcall.} + IHostSecurityManager* {.pure.} = object lpVtbl*: ptr IHostSecurityManagerVtbl + IHostSecurityManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ImpersonateLoggedOnUser*: proc(self: ptr IHostSecurityManager, hToken: HANDLE): HRESULT {.stdcall.} + ImpersonateLoggedOnUser*: + proc(self: ptr IHostSecurityManager, hToken: HANDLE): HRESULT {.stdcall.} RevertToSelf*: proc(self: ptr IHostSecurityManager): HRESULT {.stdcall.} - OpenThreadToken*: proc(self: ptr IHostSecurityManager, dwDesiredAccess: DWORD, bOpenAsSelf: BOOL, phThreadToken: ptr HANDLE): HRESULT {.stdcall.} - SetThreadToken*: proc(self: ptr IHostSecurityManager, hToken: HANDLE): HRESULT {.stdcall.} - GetSecurityContext*: proc(self: ptr IHostSecurityManager, eContextType: EContextType, ppSecurityContext: ptr ptr IHostSecurityContext): HRESULT {.stdcall.} - SetSecurityContext*: proc(self: ptr IHostSecurityManager, eContextType: EContextType, pSecurityContext: ptr IHostSecurityContext): HRESULT {.stdcall.} + OpenThreadToken*: proc( + self: ptr IHostSecurityManager, + dwDesiredAccess: DWORD, + bOpenAsSelf: BOOL, + phThreadToken: ptr HANDLE, + ): HRESULT {.stdcall.} + SetThreadToken*: + proc(self: ptr IHostSecurityManager, hToken: HANDLE): HRESULT {.stdcall.} + GetSecurityContext*: proc( + self: ptr IHostSecurityManager, + eContextType: EContextType, + ppSecurityContext: ptr ptr IHostSecurityContext, + ): HRESULT {.stdcall.} + SetSecurityContext*: proc( + self: ptr IHostSecurityManager, + eContextType: EContextType, + pSecurityContext: ptr IHostSecurityContext, + ): HRESULT {.stdcall.} + ICLRAppDomainResourceMonitor* {.pure.} = object lpVtbl*: ptr ICLRAppDomainResourceMonitorVtbl + ICLRAppDomainResourceMonitorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentAllocated*: proc(self: ptr ICLRAppDomainResourceMonitor, dwAppDomainId: DWORD, pBytesAllocated: ptr ULONGLONG): HRESULT {.stdcall.} - GetCurrentSurvived*: proc(self: ptr ICLRAppDomainResourceMonitor, dwAppDomainId: DWORD, pAppDomainBytesSurvived: ptr ULONGLONG, pTotalBytesSurvived: ptr ULONGLONG): HRESULT {.stdcall.} - GetCurrentCpuTime*: proc(self: ptr ICLRAppDomainResourceMonitor, dwAppDomainId: DWORD, pMilliseconds: ptr ULONGLONG): HRESULT {.stdcall.} + GetCurrentAllocated*: proc( + self: ptr ICLRAppDomainResourceMonitor, + dwAppDomainId: DWORD, + pBytesAllocated: ptr ULONGLONG, + ): HRESULT {.stdcall.} + GetCurrentSurvived*: proc( + self: ptr ICLRAppDomainResourceMonitor, + dwAppDomainId: DWORD, + pAppDomainBytesSurvived: ptr ULONGLONG, + pTotalBytesSurvived: ptr ULONGLONG, + ): HRESULT {.stdcall.} + GetCurrentCpuTime*: proc( + self: ptr ICLRAppDomainResourceMonitor, + dwAppDomainId: DWORD, + pMilliseconds: ptr ULONGLONG, + ): HRESULT {.stdcall.} + ICLRMetaHost* {.pure.} = object lpVtbl*: ptr ICLRMetaHostVtbl + ICLRMetaHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRuntime*: proc(self: ptr ICLRMetaHost, pwzVersion: LPCWSTR, riid: REFIID, ppRuntime: ptr LPVOID): HRESULT {.stdcall.} - GetVersionFromFile*: proc(self: ptr ICLRMetaHost, pwzFilePath: LPCWSTR, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD): HRESULT {.stdcall.} - EnumerateInstalledRuntimes*: proc(self: ptr ICLRMetaHost, ppEnumerator: ptr ptr IEnumUnknown): HRESULT {.stdcall.} - EnumerateLoadedRuntimes*: proc(self: ptr ICLRMetaHost, hndProcess: HANDLE, ppEnumerator: ptr ptr IEnumUnknown): HRESULT {.stdcall.} - RequestRuntimeLoadedNotification*: proc(self: ptr ICLRMetaHost, pCallbackFunction: RuntimeLoadedCallbackFnPtr): HRESULT {.stdcall.} - QueryLegacyV2RuntimeBinding*: proc(self: ptr ICLRMetaHost, riid: REFIID, ppUnk: ptr LPVOID): HRESULT {.stdcall.} + GetRuntime*: proc( + self: ptr ICLRMetaHost, pwzVersion: LPCWSTR, riid: REFIID, ppRuntime: ptr LPVOID + ): HRESULT {.stdcall.} + GetVersionFromFile*: proc( + self: ptr ICLRMetaHost, + pwzFilePath: LPCWSTR, + pwzBuffer: LPWSTR, + pcchBuffer: ptr DWORD, + ): HRESULT {.stdcall.} + EnumerateInstalledRuntimes*: proc( + self: ptr ICLRMetaHost, ppEnumerator: ptr ptr IEnumUnknown + ): HRESULT {.stdcall.} + EnumerateLoadedRuntimes*: proc( + self: ptr ICLRMetaHost, hndProcess: HANDLE, ppEnumerator: ptr ptr IEnumUnknown + ): HRESULT {.stdcall.} + RequestRuntimeLoadedNotification*: proc( + self: ptr ICLRMetaHost, pCallbackFunction: RuntimeLoadedCallbackFnPtr + ): HRESULT {.stdcall.} + QueryLegacyV2RuntimeBinding*: + proc(self: ptr ICLRMetaHost, riid: REFIID, ppUnk: ptr LPVOID): HRESULT {.stdcall.} ExitProcess*: proc(self: ptr ICLRMetaHost, iExitCode: INT32): HRESULT {.stdcall.} + ICLRMetaHostPolicy* {.pure.} = object lpVtbl*: ptr ICLRMetaHostPolicyVtbl + ICLRMetaHostPolicyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRequestedRuntime*: proc(self: ptr ICLRMetaHostPolicy, dwPolicyFlags: METAHOST_POLICY_FLAGS, pwzBinary: LPCWSTR, pCfgStream: ptr IStream, pwzVersion: LPWSTR, pcchVersion: ptr DWORD, pwzImageVersion: LPWSTR, pcchImageVersion: ptr DWORD, pdwConfigFlags: ptr DWORD, riid: REFIID, ppRuntime: ptr LPVOID): HRESULT {.stdcall.} + GetRequestedRuntime*: proc( + self: ptr ICLRMetaHostPolicy, + dwPolicyFlags: METAHOST_POLICY_FLAGS, + pwzBinary: LPCWSTR, + pCfgStream: ptr IStream, + pwzVersion: LPWSTR, + pcchVersion: ptr DWORD, + pwzImageVersion: LPWSTR, + pcchImageVersion: ptr DWORD, + pdwConfigFlags: ptr DWORD, + riid: REFIID, + ppRuntime: ptr LPVOID, + ): HRESULT {.stdcall.} + ICLRProfiling* {.pure.} = object lpVtbl*: ptr ICLRProfilingVtbl + ICLRProfilingVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AttachProfiler*: proc(self: ptr ICLRProfiling, dwProfileeProcessID: DWORD, dwMillisecondsMax: DWORD, pClsidProfiler: ptr CLSID, wszProfilerPath: LPCWSTR, pvClientData: pointer, cbClientData: UINT): HRESULT {.stdcall.} + AttachProfiler*: proc( + self: ptr ICLRProfiling, + dwProfileeProcessID: DWORD, + dwMillisecondsMax: DWORD, + pClsidProfiler: ptr CLSID, + wszProfilerPath: LPCWSTR, + pvClientData: pointer, + cbClientData: UINT, + ): HRESULT {.stdcall.} + ICLRDebuggingLibraryProvider* {.pure.} = object lpVtbl*: ptr ICLRDebuggingLibraryProviderVtbl + ICLRDebuggingLibraryProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ProvideLibrary*: proc(self: ptr ICLRDebuggingLibraryProvider, pwszFileName: ptr WCHAR, dwTimestamp: DWORD, dwSizeOfImage: DWORD, phModule: ptr HMODULE): HRESULT {.stdcall.} + ProvideLibrary*: proc( + self: ptr ICLRDebuggingLibraryProvider, + pwszFileName: ptr WCHAR, + dwTimestamp: DWORD, + dwSizeOfImage: DWORD, + phModule: ptr HMODULE, + ): HRESULT {.stdcall.} + ICLRDebugging* {.pure.} = object lpVtbl*: ptr ICLRDebuggingVtbl + ICLRDebuggingVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OpenVirtualProcess*: proc(self: ptr ICLRDebugging, moduleBaseAddress: ULONG64, pDataTarget: ptr IUnknown, pLibraryProvider: ptr ICLRDebuggingLibraryProvider, pMaxDebuggerSupportedVersion: ptr CLR_DEBUGGING_VERSION, riidProcess: REFIID, ppProcess: ptr ptr IUnknown, pVersion: ptr CLR_DEBUGGING_VERSION, pdwFlags: ptr CLR_DEBUGGING_PROCESS_FLAGS): HRESULT {.stdcall.} + OpenVirtualProcess*: proc( + self: ptr ICLRDebugging, + moduleBaseAddress: ULONG64, + pDataTarget: ptr IUnknown, + pLibraryProvider: ptr ICLRDebuggingLibraryProvider, + pMaxDebuggerSupportedVersion: ptr CLR_DEBUGGING_VERSION, + riidProcess: REFIID, + ppProcess: ptr ptr IUnknown, + pVersion: ptr CLR_DEBUGGING_VERSION, + pdwFlags: ptr CLR_DEBUGGING_PROCESS_FLAGS, + ): HRESULT {.stdcall.} CanUnloadNow*: proc(self: ptr ICLRDebugging, hModule: HMODULE): HRESULT {.stdcall.} + ICLRStrongName* {.pure.} = object lpVtbl*: ptr ICLRStrongNameVtbl + ICLRStrongNameVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetHashFromAssemblyFile*: proc(self: ptr ICLRStrongName, pszFilePath: LPCSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.stdcall.} - GetHashFromAssemblyFileW*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.stdcall.} - GetHashFromBlob*: proc(self: ptr ICLRStrongName, pbBlob: ptr BYTE, cchBlob: DWORD, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.stdcall.} - GetHashFromFile*: proc(self: ptr ICLRStrongName, pszFilePath: LPCSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.stdcall.} - GetHashFromFileW*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.stdcall.} - GetHashFromHandle*: proc(self: ptr ICLRStrongName, hFile: HANDLE, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.stdcall.} - StrongNameCompareAssemblies*: proc(self: ptr ICLRStrongName, pwzAssembly1: LPCWSTR, pwzAssembly2: LPCWSTR, pdwResult: ptr DWORD): HRESULT {.stdcall.} - StrongNameFreeBuffer*: proc(self: ptr ICLRStrongName, pbMemory: ptr BYTE): HRESULT {.stdcall.} - StrongNameGetBlob*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, pbBlob: ptr BYTE, pcbBlob: ptr DWORD): HRESULT {.stdcall.} - StrongNameGetBlobFromImage*: proc(self: ptr ICLRStrongName, pbBase: ptr BYTE, dwLength: DWORD, pbBlob: ptr BYTE, pcbBlob: ptr DWORD): HRESULT {.stdcall.} - StrongNameGetPublicKey*: proc(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbPublicKeyBlob: ptr ptr BYTE, pcbPublicKeyBlob: ptr ULONG): HRESULT {.stdcall.} - StrongNameHashSize*: proc(self: ptr ICLRStrongName, ulHashAlg: ULONG, pcbSize: ptr DWORD): HRESULT {.stdcall.} - StrongNameKeyDelete*: proc(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR): HRESULT {.stdcall.} - StrongNameKeyGen*: proc(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, dwFlags: DWORD, ppbKeyBlob: ptr ptr BYTE, pcbKeyBlob: ptr ULONG): HRESULT {.stdcall.} - StrongNameKeyGenEx*: proc(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, dwFlags: DWORD, dwKeySize: DWORD, ppbKeyBlob: ptr ptr BYTE, pcbKeyBlob: ptr ULONG): HRESULT {.stdcall.} - StrongNameKeyInstall*: proc(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG): HRESULT {.stdcall.} - StrongNameSignatureGeneration*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbSignatureBlob: ptr ptr BYTE, pcbSignatureBlob: ptr ULONG): HRESULT {.stdcall.} - StrongNameSignatureGenerationEx*: proc(self: ptr ICLRStrongName, wszFilePath: LPCWSTR, wszKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbSignatureBlob: ptr ptr BYTE, pcbSignatureBlob: ptr ULONG, dwFlags: DWORD): HRESULT {.stdcall.} - StrongNameSignatureSize*: proc(self: ptr ICLRStrongName, pbPublicKeyBlob: ptr BYTE, cbPublicKeyBlob: ULONG, pcbSize: ptr DWORD): HRESULT {.stdcall.} - StrongNameSignatureVerification*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, dwInFlags: DWORD, pdwOutFlags: ptr DWORD): HRESULT {.stdcall.} - StrongNameSignatureVerificationEx*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, fForceVerification: BOOLEAN, pfWasVerified: ptr BOOLEAN): HRESULT {.stdcall.} - StrongNameSignatureVerificationFromImage*: proc(self: ptr ICLRStrongName, pbBase: ptr BYTE, dwLength: DWORD, dwInFlags: DWORD, pdwOutFlags: ptr DWORD): HRESULT {.stdcall.} - StrongNameTokenFromAssembly*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, ppbStrongNameToken: ptr ptr BYTE, pcbStrongNameToken: ptr ULONG): HRESULT {.stdcall.} - StrongNameTokenFromAssemblyEx*: proc(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, ppbStrongNameToken: ptr ptr BYTE, pcbStrongNameToken: ptr ULONG, ppbPublicKeyBlob: ptr ptr BYTE, pcbPublicKeyBlob: ptr ULONG): HRESULT {.stdcall.} - StrongNameTokenFromPublicKey*: proc(self: ptr ICLRStrongName, pbPublicKeyBlob: ptr BYTE, cbPublicKeyBlob: ULONG, ppbStrongNameToken: ptr ptr BYTE, pcbStrongNameToken: ptr ULONG): HRESULT {.stdcall.} + GetHashFromAssemblyFile*: proc( + self: ptr ICLRStrongName, + pszFilePath: LPCSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, + ): HRESULT {.stdcall.} + GetHashFromAssemblyFileW*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, + ): HRESULT {.stdcall.} + GetHashFromBlob*: proc( + self: ptr ICLRStrongName, + pbBlob: ptr BYTE, + cchBlob: DWORD, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, + ): HRESULT {.stdcall.} + GetHashFromFile*: proc( + self: ptr ICLRStrongName, + pszFilePath: LPCSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, + ): HRESULT {.stdcall.} + GetHashFromFileW*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, + ): HRESULT {.stdcall.} + GetHashFromHandle*: proc( + self: ptr ICLRStrongName, + hFile: HANDLE, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameCompareAssemblies*: proc( + self: ptr ICLRStrongName, + pwzAssembly1: LPCWSTR, + pwzAssembly2: LPCWSTR, + pdwResult: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameFreeBuffer*: + proc(self: ptr ICLRStrongName, pbMemory: ptr BYTE): HRESULT {.stdcall.} + StrongNameGetBlob*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + pbBlob: ptr BYTE, + pcbBlob: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameGetBlobFromImage*: proc( + self: ptr ICLRStrongName, + pbBase: ptr BYTE, + dwLength: DWORD, + pbBlob: ptr BYTE, + pcbBlob: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameGetPublicKey*: proc( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbPublicKeyBlob: ptr ptr BYTE, + pcbPublicKeyBlob: ptr ULONG, + ): HRESULT {.stdcall.} + StrongNameHashSize*: proc( + self: ptr ICLRStrongName, ulHashAlg: ULONG, pcbSize: ptr DWORD + ): HRESULT {.stdcall.} + StrongNameKeyDelete*: + proc(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR): HRESULT {.stdcall.} + StrongNameKeyGen*: proc( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + dwFlags: DWORD, + ppbKeyBlob: ptr ptr BYTE, + pcbKeyBlob: ptr ULONG, + ): HRESULT {.stdcall.} + StrongNameKeyGenEx*: proc( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + dwFlags: DWORD, + dwKeySize: DWORD, + ppbKeyBlob: ptr ptr BYTE, + pcbKeyBlob: ptr ULONG, + ): HRESULT {.stdcall.} + StrongNameKeyInstall*: proc( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ): HRESULT {.stdcall.} + StrongNameSignatureGeneration*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbSignatureBlob: ptr ptr BYTE, + pcbSignatureBlob: ptr ULONG, + ): HRESULT {.stdcall.} + StrongNameSignatureGenerationEx*: proc( + self: ptr ICLRStrongName, + wszFilePath: LPCWSTR, + wszKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbSignatureBlob: ptr ptr BYTE, + pcbSignatureBlob: ptr ULONG, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + StrongNameSignatureSize*: proc( + self: ptr ICLRStrongName, + pbPublicKeyBlob: ptr BYTE, + cbPublicKeyBlob: ULONG, + pcbSize: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameSignatureVerification*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + dwInFlags: DWORD, + pdwOutFlags: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameSignatureVerificationEx*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + fForceVerification: BOOLEAN, + pfWasVerified: ptr BOOLEAN, + ): HRESULT {.stdcall.} + StrongNameSignatureVerificationFromImage*: proc( + self: ptr ICLRStrongName, + pbBase: ptr BYTE, + dwLength: DWORD, + dwInFlags: DWORD, + pdwOutFlags: ptr DWORD, + ): HRESULT {.stdcall.} + StrongNameTokenFromAssembly*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + ppbStrongNameToken: ptr ptr BYTE, + pcbStrongNameToken: ptr ULONG, + ): HRESULT {.stdcall.} + StrongNameTokenFromAssemblyEx*: proc( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + ppbStrongNameToken: ptr ptr BYTE, + pcbStrongNameToken: ptr ULONG, + ppbPublicKeyBlob: ptr ptr BYTE, + pcbPublicKeyBlob: ptr ULONG, + ): HRESULT {.stdcall.} + StrongNameTokenFromPublicKey*: proc( + self: ptr ICLRStrongName, + pbPublicKeyBlob: ptr BYTE, + cbPublicKeyBlob: ULONG, + ppbStrongNameToken: ptr ptr BYTE, + pcbStrongNameToken: ptr ULONG, + ): HRESULT {.stdcall.} + ICLRStrongName2* {.pure.} = object lpVtbl*: ptr ICLRStrongName2Vtbl + ICLRStrongName2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - StrongNameGetPublicKeyEx*: proc(self: ptr ICLRStrongName2, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbPublicKeyBlob: ptr ptr BYTE, pcbPublicKeyBlob: ptr ULONG, uHashAlgId: ULONG, uReserved: ULONG): HRESULT {.stdcall.} - StrongNameSignatureVerificationEx2*: proc(self: ptr ICLRStrongName2, wszFilePath: LPCWSTR, fForceVerification: BOOLEAN, pbEcmaPublicKey: ptr BYTE, cbEcmaPublicKey: DWORD, pfWasVerified: ptr BOOLEAN): HRESULT {.stdcall.} + StrongNameGetPublicKeyEx*: proc( + self: ptr ICLRStrongName2, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbPublicKeyBlob: ptr ptr BYTE, + pcbPublicKeyBlob: ptr ULONG, + uHashAlgId: ULONG, + uReserved: ULONG, + ): HRESULT {.stdcall.} + StrongNameSignatureVerificationEx2*: proc( + self: ptr ICLRStrongName2, + wszFilePath: LPCWSTR, + fForceVerification: BOOLEAN, + pbEcmaPublicKey: ptr BYTE, + cbEcmaPublicKey: DWORD, + pfWasVerified: ptr BOOLEAN, + ): HRESULT {.stdcall.} + ICLRStrongName3* {.pure.} = object lpVtbl*: ptr ICLRStrongName3Vtbl + ICLRStrongName3Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - StrongNameDigestGenerate*: proc(self: ptr ICLRStrongName3, wszFilePath: LPCWSTR, ppbDigestBlob: ptr ptr BYTE, pcbDigestBlob: ptr ULONG, dwFlags: DWORD): HRESULT {.stdcall.} - StrongNameDigestSign*: proc(self: ptr ICLRStrongName3, wszKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, pbDigestBlob: ptr BYTE, cbDigestBlob: ULONG, hashAlgId: DWORD, ppbSignatureBlob: ptr ptr BYTE, pcbSignatureBlob: ptr ULONG, dwFlags: DWORD): HRESULT {.stdcall.} - StrongNameDigestEmbed*: proc(self: ptr ICLRStrongName3, wszFilePath: LPCWSTR, pbSignatureBlob: ptr BYTE, cbSignatureBlob: ULONG): HRESULT {.stdcall.} + StrongNameDigestGenerate*: proc( + self: ptr ICLRStrongName3, + wszFilePath: LPCWSTR, + ppbDigestBlob: ptr ptr BYTE, + pcbDigestBlob: ptr ULONG, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + StrongNameDigestSign*: proc( + self: ptr ICLRStrongName3, + wszKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + pbDigestBlob: ptr BYTE, + cbDigestBlob: ULONG, + hashAlgId: DWORD, + ppbSignatureBlob: ptr ptr BYTE, + pcbSignatureBlob: ptr ULONG, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + StrongNameDigestEmbed*: proc( + self: ptr ICLRStrongName3, + wszFilePath: LPCWSTR, + pbSignatureBlob: ptr BYTE, + cbSignatureBlob: ULONG, + ): HRESULT {.stdcall.} + IMethodInfo* {.pure.} = object lpVtbl*: ptr IMethodInfoVtbl + IMethodInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetTypeInfoCount*: proc(self: ptr IMethodInfo, pcTInfo: ptr int32): HRESULT {.stdcall.} - GetTypeInfo*: proc(self: ptr IMethodInfo, iTInfo: int32, lcid: int32, ppTInfo: int32): HRESULT {.stdcall.} - GetIDsOfNames*: proc(self: ptr IMethodInfo, riid: ptr GUID, rgszNames: int32, cNames: int32, lcid: int32, rgDispId: int32): HRESULT {.stdcall.} - Invoke*: proc(self: ptr IMethodInfo, dispIdMember: int32, riid: ptr GUID, lcid: int32, wFlags: int16, pDispParams: int32, pVarResult: int32, pExcepInfo: int32, puArgErr: int32): HRESULT {.stdcall.} + GetTypeInfoCount*: + proc(self: ptr IMethodInfo, pcTInfo: ptr int32): HRESULT {.stdcall.} + GetTypeInfo*: proc( + self: ptr IMethodInfo, iTInfo: int32, lcid: int32, ppTInfo: int32 + ): HRESULT {.stdcall.} + GetIDsOfNames*: proc( + self: ptr IMethodInfo, + riid: ptr GUID, + rgszNames: int32, + cNames: int32, + lcid: int32, + rgDispId: int32, + ): HRESULT {.stdcall.} + Invoke*: proc( + self: ptr IMethodInfo, + dispIdMember: int32, + riid: ptr GUID, + lcid: int32, + wFlags: int16, + pDispParams: int32, + pVarResult: int32, + pExcepInfo: int32, + puArgErr: int32, + ): HRESULT {.stdcall.} get_ToString*: proc(self: ptr IMethodInfo, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Equals*: proc(self: ptr IMethodInfo, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals*: proc( + self: ptr IMethodInfo, other: VARIANT, pRetVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} GetHashCode*: proc(self: ptr IMethodInfo, pRetVal: ptr int32): HRESULT {.stdcall.} GetType*: proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - get_MemberType*: proc(self: ptr IMethodInfo, pRetVal: ptr MemberTypes): HRESULT {.stdcall.} + get_MemberType*: + proc(self: ptr IMethodInfo, pRetVal: ptr MemberTypes): HRESULT {.stdcall.} get_name*: proc(self: ptr IMethodInfo, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_DeclaringType*: proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - get_ReflectedType*: proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetCustomAttributes*: proc(self: ptr IMethodInfo, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetCustomAttributes_2*: proc(self: ptr IMethodInfo, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - IsDefined*: proc(self: ptr IMethodInfo, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - GetParameters*: proc(self: ptr IMethodInfo, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetMethodImplementationFlags*: proc(self: ptr IMethodInfo, pRetVal: ptr MethodImplAttributes): HRESULT {.stdcall.} - get_MethodHandle*: proc(self: ptr IMethodInfo, pRetVal: POBJECT): HRESULT {.stdcall.} - get_Attributes*: proc(self: ptr IMethodInfo, pRetVal: ptr MethodAttributes): HRESULT {.stdcall.} - get_CallingConvention*: proc(self: ptr IMethodInfo, pRetVal: ptr CallingConventions): HRESULT {.stdcall.} - Invoke_2*: proc(self: ptr IMethodInfo, obj: VARIANT, invokeAttr: BindingFlags, Binder: POBJECT, parameters: ptr SAFEARRAY, culture: POBJECT, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - get_IsPublic*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsPrivate*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsFamily*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsAssembly*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsFamilyAndAssembly*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsFamilyOrAssembly*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsStatic*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsFinal*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsVirtual*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsHideBySig*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsAbstract*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsSpecialName*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsConstructor*: proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - Invoke_3*: proc(self: ptr IMethodInfo, obj: VARIANT, parameters: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - get_returnType*: proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - get_ReturnTypeCustomAttributes*: proc(self: ptr IMethodInfo, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetBaseDefinition*: proc(self: ptr IMethodInfo, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} + get_DeclaringType*: + proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + get_ReflectedType*: + proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + GetCustomAttributes*: proc( + self: ptr IMethodInfo, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + GetCustomAttributes_2*: proc( + self: ptr IMethodInfo, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IsDefined*: proc( + self: ptr IMethodInfo, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + GetParameters*: + proc(self: ptr IMethodInfo, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetMethodImplementationFlags*: proc( + self: ptr IMethodInfo, pRetVal: ptr MethodImplAttributes + ): HRESULT {.stdcall.} + get_MethodHandle*: + proc(self: ptr IMethodInfo, pRetVal: POBJECT): HRESULT {.stdcall.} + get_Attributes*: + proc(self: ptr IMethodInfo, pRetVal: ptr MethodAttributes): HRESULT {.stdcall.} + get_CallingConvention*: + proc(self: ptr IMethodInfo, pRetVal: ptr CallingConventions): HRESULT {.stdcall.} + Invoke_2*: proc( + self: ptr IMethodInfo, + obj: VARIANT, + invokeAttr: BindingFlags, + Binder: POBJECT, + parameters: ptr SAFEARRAY, + culture: POBJECT, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + get_IsPublic*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsPrivate*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsFamily*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsAssembly*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsFamilyAndAssembly*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsFamilyOrAssembly*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsStatic*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsFinal*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsVirtual*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsHideBySig*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsAbstract*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsSpecialName*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsConstructor*: + proc(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Invoke_3*: proc( + self: ptr IMethodInfo, + obj: VARIANT, + parameters: ptr SAFEARRAY, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + get_returnType*: + proc(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + get_ReturnTypeCustomAttributes*: + proc(self: ptr IMethodInfo, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetBaseDefinition*: + proc(self: ptr IMethodInfo, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} + IAssembly* {.pure.} = object lpVtbl*: ptr IAssemblyVtbl + IAssemblyVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_ToString*: proc(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Equals*: proc(self: ptr IAssembly, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals*: proc( + self: ptr IAssembly, other: VARIANT, pRetVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} GetHashCode*: proc(self: ptr IAssembly, pRetVal: ptr int32): HRESULT {.stdcall.} GetType*: proc(self: ptr IAssembly, pRetVal: ptr ptr IType): HRESULT {.stdcall.} get_CodeBase*: proc(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_EscapedCodeBase*: proc(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_EscapedCodeBase*: + proc(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.stdcall.} GetName*: proc(self: ptr IAssembly, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetName_2*: proc(self: ptr IAssembly, copiedName: VARIANT_BOOL, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetName_2*: proc( + self: ptr IAssembly, copiedName: VARIANT_BOOL, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} get_FullName*: proc(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_EntryPoint*: proc(self: ptr IAssembly, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetType_2*: proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetType_3*: proc(self: ptr IAssembly, name: BSTR, throwOnError: VARIANT_BOOL, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetExportedTypes*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetTypes*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetManifestResourceStream*: proc(self: ptr IAssembly, Type: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetManifestResourceStream_2*: proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetFile*: proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetFiles*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetFiles_2*: proc(self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetManifestResourceNames*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetManifestResourceInfo*: proc(self: ptr IAssembly, resourceName: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + get_EntryPoint*: + proc(self: ptr IAssembly, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} + GetType_2*: + proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + GetType_3*: proc( + self: ptr IAssembly, + name: BSTR, + throwOnError: VARIANT_BOOL, + pRetVal: ptr ptr IType, + ): HRESULT {.stdcall.} + GetExportedTypes*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetTypes*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetManifestResourceStream*: proc( + self: ptr IAssembly, Type: ptr IType, name: BSTR, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} + GetManifestResourceStream_2*: + proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetFile*: + proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetFiles*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetFiles_2*: proc( + self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetManifestResourceNames*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetManifestResourceInfo*: proc( + self: ptr IAssembly, resourceName: BSTR, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} get_Location*: proc(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.stdcall.} get_Evidence*: proc(self: ptr IAssembly, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetCustomAttributes*: proc(self: ptr IAssembly, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetCustomAttributes_2*: proc(self: ptr IAssembly, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - IsDefined*: proc(self: ptr IAssembly, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - GetObjectData*: proc(self: ptr IAssembly, info: POBJECT, Context: StreamingContext): HRESULT {.stdcall.} + GetCustomAttributes*: proc( + self: ptr IAssembly, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + GetCustomAttributes_2*: proc( + self: ptr IAssembly, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IsDefined*: proc( + self: ptr IAssembly, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + GetObjectData*: proc( + self: ptr IAssembly, info: POBJECT, Context: StreamingContext + ): HRESULT {.stdcall.} add_ModuleResolve*: proc(self: ptr IAssembly, value: POBJECT): HRESULT {.stdcall.} - remove_ModuleResolve*: proc(self: ptr IAssembly, value: POBJECT): HRESULT {.stdcall.} - GetType_4*: proc(self: ptr IAssembly, name: BSTR, throwOnError: VARIANT_BOOL, ignoreCase: VARIANT_BOOL, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetSatelliteAssembly*: proc(self: ptr IAssembly, culture: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - GetSatelliteAssembly_2*: proc(self: ptr IAssembly, culture: POBJECT, Version: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - LoadModule*: proc(self: ptr IAssembly, moduleName: BSTR, rawModule: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - LoadModule_2*: proc(self: ptr IAssembly, moduleName: BSTR, rawModule: ptr SAFEARRAY, rawSymbolStore: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - CreateInstance*: proc(self: ptr IAssembly, typeName: BSTR, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - CreateInstance_2*: proc(self: ptr IAssembly, typeName: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - CreateInstance_3*: proc(self: ptr IAssembly, typeName: BSTR, ignoreCase: VARIANT_BOOL, bindingAttr: BindingFlags, Binder: POBJECT, args: ptr SAFEARRAY, culture: POBJECT, activationAttributes: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - GetLoadedModules*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetLoadedModules_2*: proc(self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetModules*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetModules_2*: proc(self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetModule*: proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetReferencedAssemblies*: proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_GlobalAssemblyCache*: proc(self: ptr IAssembly, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + remove_ModuleResolve*: + proc(self: ptr IAssembly, value: POBJECT): HRESULT {.stdcall.} + GetType_4*: proc( + self: ptr IAssembly, + name: BSTR, + throwOnError: VARIANT_BOOL, + ignoreCase: VARIANT_BOOL, + pRetVal: ptr ptr IType, + ): HRESULT {.stdcall.} + GetSatelliteAssembly*: proc( + self: ptr IAssembly, culture: POBJECT, pRetVal: ptr ptr IAssembly + ): HRESULT {.stdcall.} + GetSatelliteAssembly_2*: proc( + self: ptr IAssembly, + culture: POBJECT, + Version: POBJECT, + pRetVal: ptr ptr IAssembly, + ): HRESULT {.stdcall.} + LoadModule*: proc( + self: ptr IAssembly, + moduleName: BSTR, + rawModule: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + LoadModule_2*: proc( + self: ptr IAssembly, + moduleName: BSTR, + rawModule: ptr SAFEARRAY, + rawSymbolStore: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr IAssembly, typeName: BSTR, pRetVal: ptr VARIANT + ): HRESULT {.stdcall.} + CreateInstance_2*: proc( + self: ptr IAssembly, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + CreateInstance_3*: proc( + self: ptr IAssembly, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + bindingAttr: BindingFlags, + Binder: POBJECT, + args: ptr SAFEARRAY, + culture: POBJECT, + activationAttributes: ptr SAFEARRAY, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + GetLoadedModules*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetLoadedModules_2*: proc( + self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetModules*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetModules_2*: proc( + self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetModule*: + proc(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetReferencedAssemblies*: + proc(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_GlobalAssemblyCache*: + proc(self: ptr IAssembly, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IType* {.pure.} = object lpVtbl*: ptr ITypeVtbl + ITypeVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetTypeInfoCount*: proc(self: ptr IType, pcTInfo: ptr int32): HRESULT {.stdcall.} - GetTypeInfo*: proc(self: ptr IType, iTInfo: int32, lcid: int32, ppTInfo: int32): HRESULT {.stdcall.} - GetIDsOfNames*: proc(self: ptr IType, riid: ptr GUID, rgszNames: int32, cNames: int32, lcid: int32, rgDispId: int32): HRESULT {.stdcall.} - Invoke*: proc(self: ptr IType, dispIdMember: int32, riid: ptr GUID, lcid: int32, wFlags: int16, pDispParams: int32, pVarResult: int32, pExcepInfo: int32, puArgErr: int32): HRESULT {.stdcall.} + GetTypeInfo*: proc( + self: ptr IType, iTInfo: int32, lcid: int32, ppTInfo: int32 + ): HRESULT {.stdcall.} + GetIDsOfNames*: proc( + self: ptr IType, + riid: ptr GUID, + rgszNames: int32, + cNames: int32, + lcid: int32, + rgDispId: int32, + ): HRESULT {.stdcall.} + Invoke*: proc( + self: ptr IType, + dispIdMember: int32, + riid: ptr GUID, + lcid: int32, + wFlags: int16, + pDispParams: int32, + pVarResult: int32, + pExcepInfo: int32, + puArgErr: int32, + ): HRESULT {.stdcall.} get_ToString*: proc(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Equals*: proc(self: ptr IType, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals*: proc(self: ptr IType, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {. + stdcall + .} GetHashCode*: proc(self: ptr IType, pRetVal: ptr int32): HRESULT {.stdcall.} GetType*: proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - get_MemberType*: proc(self: ptr IType, pRetVal: ptr MemberTypes): HRESULT {.stdcall.} + get_MemberType*: + proc(self: ptr IType, pRetVal: ptr MemberTypes): HRESULT {.stdcall.} get_name*: proc(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_DeclaringType*: proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - get_ReflectedType*: proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetCustomAttributes*: proc(self: ptr IType, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetCustomAttributes_2*: proc(self: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - IsDefined*: proc(self: ptr IType, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_DeclaringType*: + proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + get_ReflectedType*: + proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + GetCustomAttributes*: proc( + self: ptr IType, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + GetCustomAttributes_2*: proc( + self: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IsDefined*: proc( + self: ptr IType, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} get_Guid*: proc(self: ptr IType, pRetVal: ptr GUID): HRESULT {.stdcall.} get_Module*: proc(self: ptr IType, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - getIAssembly*: proc(self: ptr IType, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} + getIAssembly*: + proc(self: ptr IType, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} get_TypeHandle*: proc(self: ptr IType, pRetVal: POBJECT): HRESULT {.stdcall.} get_FullName*: proc(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.stdcall.} get_Namespace*: proc(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_AssemblyQualifiedName*: proc(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_AssemblyQualifiedName*: + proc(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.stdcall.} GetArrayRank*: proc(self: ptr IType, pRetVal: ptr int32): HRESULT {.stdcall.} get_BaseType*: proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetConstructors*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetInterface*: proc(self: ptr IType, name: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetInterfaces*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - FindInterfaces*: proc(self: ptr IType, filter: POBJECT, filterCriteria: VARIANT, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetEvent*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetConstructors*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetInterface*: proc( + self: ptr IType, name: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr ptr IType + ): HRESULT {.stdcall.} + GetInterfaces*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + FindInterfaces*: proc( + self: ptr IType, + filter: POBJECT, + filterCriteria: VARIANT, + pRetVal: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + GetEvent*: proc( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} GetEvents*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetEvents_2*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetNestedTypes*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetNestedType*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetMember*: proc(self: ptr IType, name: BSTR, Type: MemberTypes, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetDefaultMembers*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - FindMembers*: proc(self: ptr IType, MemberType: MemberTypes, bindingAttr: BindingFlags, filter: POBJECT, filterCriteria: VARIANT, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetEvents_2*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetNestedTypes*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetNestedType*: proc( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IType + ): HRESULT {.stdcall.} + GetMember*: proc( + self: ptr IType, + name: BSTR, + Type: MemberTypes, + bindingAttr: BindingFlags, + pRetVal: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + GetDefaultMembers*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + FindMembers*: proc( + self: ptr IType, + MemberType: MemberTypes, + bindingAttr: BindingFlags, + filter: POBJECT, + filterCriteria: VARIANT, + pRetVal: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} GetElementType*: proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - IsSubclassOf*: proc(self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - IsInstanceOfType*: proc(self: ptr IType, o: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - IsAssignableFrom*: proc(self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - GetInterfaceMap*: proc(self: ptr IType, interfaceType: ptr IType, pRetVal: POBJECT): HRESULT {.stdcall.} - GetMethod*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, Binder: POBJECT, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetMethod_2*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetMethods*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetField*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetFields*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperty_2*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, Binder: POBJECT, returnType: ptr IType, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperties*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetMember_2*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetMembers*: proc(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - InvokeMember*: proc(self: ptr IType, name: BSTR, invokeAttr: BindingFlags, Binder: POBJECT, Target: VARIANT, args: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, culture: POBJECT, namedParameters: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - get_UnderlyingSystemType*: proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - InvokeMember_2*: proc(self: ptr IType, name: BSTR, invokeAttr: BindingFlags, Binder: POBJECT, Target: VARIANT, args: ptr SAFEARRAY, culture: POBJECT, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - InvokeMember_3*: proc(self: ptr IType, name: BSTR, invokeAttr: BindingFlags, Binder: POBJECT, Target: VARIANT, args: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - GetConstructor*: proc(self: ptr IType, bindingAttr: BindingFlags, Binder: POBJECT, callConvention: CallingConventions, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetConstructor_2*: proc(self: ptr IType, bindingAttr: BindingFlags, Binder: POBJECT, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetConstructor_3*: proc(self: ptr IType, types: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetConstructors_2*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_TypeInitializer*: proc(self: ptr IType, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetMethod_3*: proc(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, Binder: POBJECT, callConvention: CallingConventions, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetMethod_4*: proc(self: ptr IType, name: BSTR, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetMethod_5*: proc(self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetMethod_6*: proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr IMethodInfo): HRESULT {.stdcall.} - GetMethods_2*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetField_2*: proc(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + IsSubclassOf*: proc( + self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + IsInstanceOfType*: + proc(self: ptr IType, o: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IsAssignableFrom*: proc( + self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + GetInterfaceMap*: proc( + self: ptr IType, interfaceType: ptr IType, pRetVal: POBJECT + ): HRESULT {.stdcall.} + GetMethod*: proc( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + Binder: POBJECT, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr ptr IMethodInfo, + ): HRESULT {.stdcall.} + GetMethod_2*: proc( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + pRetVal: ptr ptr IMethodInfo, + ): HRESULT {.stdcall.} + GetMethods*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetField*: proc( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} + GetFields*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} + GetProperty_2*: proc( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + Binder: POBJECT, + returnType: ptr IType, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + GetProperties*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetMember_2*: proc( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetMembers*: proc( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + InvokeMember*: proc( + self: ptr IType, + name: BSTR, + invokeAttr: BindingFlags, + Binder: POBJECT, + Target: VARIANT, + args: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + culture: POBJECT, + namedParameters: ptr SAFEARRAY, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + get_UnderlyingSystemType*: + proc(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + InvokeMember_2*: proc( + self: ptr IType, + name: BSTR, + invokeAttr: BindingFlags, + Binder: POBJECT, + Target: VARIANT, + args: ptr SAFEARRAY, + culture: POBJECT, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + InvokeMember_3*: proc( + self: ptr IType, + name: BSTR, + invokeAttr: BindingFlags, + Binder: POBJECT, + Target: VARIANT, + args: ptr SAFEARRAY, + pRetVal: ptr VARIANT, + ): HRESULT {.stdcall.} + GetConstructor*: proc( + self: ptr IType, + bindingAttr: BindingFlags, + Binder: POBJECT, + callConvention: CallingConventions, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + GetConstructor_2*: proc( + self: ptr IType, + bindingAttr: BindingFlags, + Binder: POBJECT, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + GetConstructor_3*: proc( + self: ptr IType, types: ptr SAFEARRAY, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} + GetConstructors_2*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_TypeInitializer*: + proc(self: ptr IType, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetMethod_3*: proc( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + Binder: POBJECT, + callConvention: CallingConventions, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr ptr IMethodInfo, + ): HRESULT {.stdcall.} + GetMethod_4*: proc( + self: ptr IType, + name: BSTR, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr ptr IMethodInfo, + ): HRESULT {.stdcall.} + GetMethod_5*: proc( + self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo + ): HRESULT {.stdcall.} + GetMethod_6*: proc( + self: ptr IType, name: BSTR, pRetVal: ptr ptr IMethodInfo + ): HRESULT {.stdcall.} + GetMethods_2*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetField_2*: + proc(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} GetFields_2*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetInterface_2*: proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetEvent_2*: proc(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperty_3*: proc(self: ptr IType, name: BSTR, returnType: ptr IType, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperty_4*: proc(self: ptr IType, name: BSTR, returnType: ptr IType, types: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperty_5*: proc(self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperty_6*: proc(self: ptr IType, name: BSTR, returnType: ptr IType, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperty_7*: proc(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} - GetProperties_2*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetNestedTypes_2*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetNestedType_2*: proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetMember_3*: proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetMembers_2*: proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_Attributes*: proc(self: ptr IType, pRetVal: ptr TypeAttributes): HRESULT {.stdcall.} - get_IsNotPublic*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + GetInterface_2*: + proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + GetEvent_2*: + proc(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetProperty_3*: proc( + self: ptr IType, + name: BSTR, + returnType: ptr IType, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + GetProperty_4*: proc( + self: ptr IType, + name: BSTR, + returnType: ptr IType, + types: ptr SAFEARRAY, + pRetVal: ptr POBJECT, + ): HRESULT {.stdcall.} + GetProperty_5*: proc( + self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} + GetProperty_6*: proc( + self: ptr IType, name: BSTR, returnType: ptr IType, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} + GetProperty_7*: + proc(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetProperties_2*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetNestedTypes_2*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetNestedType_2*: + proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + GetMember_3*: + proc(self: ptr IType, name: BSTR, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetMembers_2*: + proc(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_Attributes*: + proc(self: ptr IType, pRetVal: ptr TypeAttributes): HRESULT {.stdcall.} + get_IsNotPublic*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsPublic*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsNestedPublic*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsNestedPrivate*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsNestedFamily*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsNestedAssembly*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsNestedFamANDAssem*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsNestedFamORAssem*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsAutoLayout*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsLayoutSequential*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsExplicitLayout*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsNestedPublic*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsNestedPrivate*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsNestedFamily*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsNestedAssembly*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsNestedFamANDAssem*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsNestedFamORAssem*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsAutoLayout*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsLayoutSequential*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsExplicitLayout*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsClass*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsInterface*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsValueType*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsAbstract*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsInterface*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsValueType*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsAbstract*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsSealed*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsEnum*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsSpecialName*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsSpecialName*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsImport*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsSerializable*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsAnsiClass*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsUnicodeClass*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsAutoClass*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsSerializable*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsAnsiClass*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsUnicodeClass*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsAutoClass*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsArray*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsByRef*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsPointer*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsPrimitive*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsCOMObject*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_HasElementType*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsContextful*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsMarshalByRef*: proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - Equals_2*: proc(self: ptr IType, o: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsPointer*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsPrimitive*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsCOMObject*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_HasElementType*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsContextful*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsMarshalByRef*: + proc(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals_2*: proc(self: ptr IType, o: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {. + stdcall + .} + IObject* {.pure.} = object lpVtbl*: ptr IObjectVtbl + IObjectVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_ToString*: proc(self: ptr IObject, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Equals*: proc(self: ptr IObject, obj: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals*: proc(self: ptr IObject, obj: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {. + stdcall + .} GetHashCode*: proc(self: ptr IObject, pRetVal: ptr int32): HRESULT {.stdcall.} GetType*: proc(self: ptr IObject, pRetVal: ptr ptr IType): HRESULT {.stdcall.} + IAppDomainSetup* {.pure.} = object lpVtbl*: ptr IAppDomainSetupVtbl + IAppDomainSetupVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_ApplicationBase*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_ApplicationBase*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_ApplicationName*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_ApplicationName*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_CachePath*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_ApplicationBase*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_ApplicationBase*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_ApplicationName*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_ApplicationName*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_CachePath*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} put_CachePath*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_ConfigurationFile*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_ConfigurationFile*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_DynamicBase*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_DynamicBase*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_LicenseFile*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_LicenseFile*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_PrivateBinPath*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_PrivateBinPath*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_PrivateBinPathProbe*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_PrivateBinPathProbe*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_ShadowCopyDirectories*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_ShadowCopyDirectories*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} - get_ShadowCopyFiles*: proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} - put_ShadowCopyFiles*: proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_ConfigurationFile*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_ConfigurationFile*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_DynamicBase*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_DynamicBase*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_LicenseFile*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_LicenseFile*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_PrivateBinPath*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_PrivateBinPath*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_PrivateBinPathProbe*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_PrivateBinPathProbe*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_ShadowCopyDirectories*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_ShadowCopyDirectories*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + get_ShadowCopyFiles*: + proc(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.stdcall.} + put_ShadowCopyFiles*: + proc(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.stdcall.} + ObjectHandle* {.pure.} = object lpVtbl*: ptr ObjectHandleVtbl + ObjectHandleVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_ToString*: proc(self: ptr ObjectHandle, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Equals*: proc(self: ptr ObjectHandle, obj: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals*: proc( + self: ptr ObjectHandle, obj: VARIANT, pRetVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} GetHashCode*: proc(self: ptr ObjectHandle, pRetVal: ptr int32): HRESULT {.stdcall.} GetType*: proc(self: ptr ObjectHandle, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - GetLifetimeService*: proc(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - InitializeLifetimeService*: proc(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - CreateObjRef*: proc(self: ptr ObjectHandle, requestedType: ptr IType, pRetVal: ptr POBJECT): HRESULT {.stdcall.} + GetLifetimeService*: + proc(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.stdcall.} + InitializeLifetimeService*: + proc(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.stdcall.} + CreateObjRef*: proc( + self: ptr ObjectHandle, requestedType: ptr IType, pRetVal: ptr POBJECT + ): HRESULT {.stdcall.} Unwrap*: proc(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.stdcall.} + AppDomain* {.pure.} = object lpVtbl*: ptr AppDomainVtbl + AppDomainVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_ToString*: proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Equals*: proc(self: ptr AppDomain, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Equals*: proc( + self: ptr AppDomain, other: VARIANT, pRetVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} GetHashCode*: proc(self: ptr AppDomain, pRetVal: ptr int32): HRESULT {.stdcall.} GetType*: proc(self: ptr AppDomain, pRetVal: ptr ptr IType): HRESULT {.stdcall.} - InitializeLifetimeService*: proc(self: ptr AppDomain, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - GetLifetimeService*: proc(self: ptr AppDomain, pRetVal: ptr VARIANT): HRESULT {.stdcall.} + InitializeLifetimeService*: + proc(self: ptr AppDomain, pRetVal: ptr VARIANT): HRESULT {.stdcall.} + GetLifetimeService*: + proc(self: ptr AppDomain, pRetVal: ptr VARIANT): HRESULT {.stdcall.} get_Evidence*: proc(self: ptr AppDomain, pRetVal: ptr POBJECT): HRESULT {.stdcall.} add_DomainUnload*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} remove_DomainUnload*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} @@ -1242,756 +2644,4874 @@ add_TypeResolve*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} remove_TypeResolve*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} add_ResourceResolve*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} - remove_ResourceResolve*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} + remove_ResourceResolve*: + proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} add_AssemblyResolve*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} - remove_AssemblyResolve*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} - add_UnhandledException*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} - remove_UnhandledException*: proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} - DefineDynamicAssembly*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_2*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_3*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, Evidence: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_4*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_5*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, Evidence: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_6*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_7*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, Evidence: POBJECT, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_8*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, Evidence: POBJECT, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - DefineDynamicAssembly_9*: proc(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, Evidence: POBJECT, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, IsSynchronized: VARIANT_BOOL, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.stdcall.} - CreateInstance*: proc(self: ptr AppDomain, AssemblyName: BSTR, typeName: BSTR, pRetVal: ptr ptr ObjectHandle): HRESULT {.stdcall.} - CreateInstanceFrom*: proc(self: ptr AppDomain, assemblyFile: BSTR, typeName: BSTR, pRetVal: ptr ptr ObjectHandle): HRESULT {.stdcall.} - CreateInstance_2*: proc(self: ptr AppDomain, AssemblyName: BSTR, typeName: BSTR, activationAttributes: ptr SAFEARRAY, pRetVal: ptr ptr ObjectHandle): HRESULT {.stdcall.} - CreateInstanceFrom_2*: proc(self: ptr AppDomain, assemblyFile: BSTR, typeName: BSTR, activationAttributes: ptr SAFEARRAY, pRetVal: ptr ptr ObjectHandle): HRESULT {.stdcall.} - CreateInstance_3*: proc(self: ptr AppDomain, AssemblyName: BSTR, typeName: BSTR, ignoreCase: VARIANT_BOOL, bindingAttr: BindingFlags, Binder: POBJECT, args: ptr SAFEARRAY, culture: POBJECT, activationAttributes: ptr SAFEARRAY, securityAttributes: POBJECT, pRetVal: ptr ptr ObjectHandle): HRESULT {.stdcall.} - CreateInstanceFrom_3*: proc(self: ptr AppDomain, assemblyFile: BSTR, typeName: BSTR, ignoreCase: VARIANT_BOOL, bindingAttr: BindingFlags, Binder: POBJECT, args: ptr SAFEARRAY, culture: POBJECT, activationAttributes: ptr SAFEARRAY, securityAttributes: POBJECT, pRetVal: ptr ptr ObjectHandle): HRESULT {.stdcall.} - Load*: proc(self: ptr AppDomain, assemblyRef: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - Load_2*: proc(self: ptr AppDomain, assemblyString: BSTR, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - Load_3*: proc(self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - Load_4*: proc(self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, rawSymbolStore: ptr SAFEARRAY, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - Load_5*: proc(self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, rawSymbolStore: ptr SAFEARRAY, securityEvidence: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - Load_6*: proc(self: ptr AppDomain, assemblyRef: POBJECT, assemblySecurity: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - Load_7*: proc(self: ptr AppDomain, assemblyString: BSTR, assemblySecurity: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.stdcall.} - ExecuteAssembly*: proc(self: ptr AppDomain, assemblyFile: BSTR, assemblySecurity: POBJECT, pRetVal: ptr int32): HRESULT {.stdcall.} - ExecuteAssembly_2*: proc(self: ptr AppDomain, assemblyFile: BSTR, pRetVal: ptr int32): HRESULT {.stdcall.} - ExecuteAssembly_3*: proc(self: ptr AppDomain, assemblyFile: BSTR, assemblySecurity: POBJECT, args: ptr SAFEARRAY, pRetVal: ptr int32): HRESULT {.stdcall.} + remove_AssemblyResolve*: + proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} + add_UnhandledException*: + proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} + remove_UnhandledException*: + proc(self: ptr AppDomain, value: POBJECT): HRESULT {.stdcall.} + DefineDynamicAssembly*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_2*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_3*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + Evidence: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_4*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_5*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + Evidence: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_6*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_7*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + Evidence: POBJECT, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_8*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + Evidence: POBJECT, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + DefineDynamicAssembly_9*: proc( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + Evidence: POBJECT, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + IsSynchronized: VARIANT_BOOL, + pRetVal: ptr ptr AssemblyBuilder, + ): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr AppDomain, + AssemblyName: BSTR, + typeName: BSTR, + pRetVal: ptr ptr ObjectHandle, + ): HRESULT {.stdcall.} + CreateInstanceFrom*: proc( + self: ptr AppDomain, + assemblyFile: BSTR, + typeName: BSTR, + pRetVal: ptr ptr ObjectHandle, + ): HRESULT {.stdcall.} + CreateInstance_2*: proc( + self: ptr AppDomain, + AssemblyName: BSTR, + typeName: BSTR, + activationAttributes: ptr SAFEARRAY, + pRetVal: ptr ptr ObjectHandle, + ): HRESULT {.stdcall.} + CreateInstanceFrom_2*: proc( + self: ptr AppDomain, + assemblyFile: BSTR, + typeName: BSTR, + activationAttributes: ptr SAFEARRAY, + pRetVal: ptr ptr ObjectHandle, + ): HRESULT {.stdcall.} + CreateInstance_3*: proc( + self: ptr AppDomain, + AssemblyName: BSTR, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + bindingAttr: BindingFlags, + Binder: POBJECT, + args: ptr SAFEARRAY, + culture: POBJECT, + activationAttributes: ptr SAFEARRAY, + securityAttributes: POBJECT, + pRetVal: ptr ptr ObjectHandle, + ): HRESULT {.stdcall.} + CreateInstanceFrom_3*: proc( + self: ptr AppDomain, + assemblyFile: BSTR, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + bindingAttr: BindingFlags, + Binder: POBJECT, + args: ptr SAFEARRAY, + culture: POBJECT, + activationAttributes: ptr SAFEARRAY, + securityAttributes: POBJECT, + pRetVal: ptr ptr ObjectHandle, + ): HRESULT {.stdcall.} + Load*: proc( + self: ptr AppDomain, assemblyRef: POBJECT, pRetVal: ptr ptr IAssembly + ): HRESULT {.stdcall.} + Load_2*: proc( + self: ptr AppDomain, assemblyString: BSTR, pRetVal: ptr ptr IAssembly + ): HRESULT {.stdcall.} + Load_3*: proc( + self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, pRetVal: ptr ptr IAssembly + ): HRESULT {.stdcall.} + Load_4*: proc( + self: ptr AppDomain, + rawAssembly: ptr SAFEARRAY, + rawSymbolStore: ptr SAFEARRAY, + pRetVal: ptr ptr IAssembly, + ): HRESULT {.stdcall.} + Load_5*: proc( + self: ptr AppDomain, + rawAssembly: ptr SAFEARRAY, + rawSymbolStore: ptr SAFEARRAY, + securityEvidence: POBJECT, + pRetVal: ptr ptr IAssembly, + ): HRESULT {.stdcall.} + Load_6*: proc( + self: ptr AppDomain, + assemblyRef: POBJECT, + assemblySecurity: POBJECT, + pRetVal: ptr ptr IAssembly, + ): HRESULT {.stdcall.} + Load_7*: proc( + self: ptr AppDomain, + assemblyString: BSTR, + assemblySecurity: POBJECT, + pRetVal: ptr ptr IAssembly, + ): HRESULT {.stdcall.} + ExecuteAssembly*: proc( + self: ptr AppDomain, + assemblyFile: BSTR, + assemblySecurity: POBJECT, + pRetVal: ptr int32, + ): HRESULT {.stdcall.} + ExecuteAssembly_2*: proc( + self: ptr AppDomain, assemblyFile: BSTR, pRetVal: ptr int32 + ): HRESULT {.stdcall.} + ExecuteAssembly_3*: proc( + self: ptr AppDomain, + assemblyFile: BSTR, + assemblySecurity: POBJECT, + args: ptr SAFEARRAY, + pRetVal: ptr int32, + ): HRESULT {.stdcall.} get_FriendlyName*: proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_BaseDirectory*: proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_RelativeSearchPath*: proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_ShadowCopyFiles*: proc(self: ptr AppDomain, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - GetAssemblies*: proc(self: ptr AppDomain, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_BaseDirectory*: + proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_RelativeSearchPath*: + proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_ShadowCopyFiles*: + proc(self: ptr AppDomain, pRetVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + GetAssemblies*: + proc(self: ptr AppDomain, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} AppendPrivatePath*: proc(self: ptr AppDomain, Path: BSTR): HRESULT {.stdcall.} ClearPrivatePath*: proc(self: ptr AppDomain): HRESULT {.stdcall.} SetShadowCopyPath*: proc(self: ptr AppDomain, s: BSTR): HRESULT {.stdcall.} ClearShadowCopyPath*: proc(self: ptr AppDomain): HRESULT {.stdcall.} SetCachePath*: proc(self: ptr AppDomain, s: BSTR): HRESULT {.stdcall.} SetData*: proc(self: ptr AppDomain, name: BSTR, data: VARIANT): HRESULT {.stdcall.} - GetData*: proc(self: ptr AppDomain, name: BSTR, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - SetAppDomainPolicy*: proc(self: ptr AppDomain, domainPolicy: POBJECT): HRESULT {.stdcall.} - SetThreadPrincipal*: proc(self: ptr AppDomain, principal: POBJECT): HRESULT {.stdcall.} - SetPrincipalPolicy*: proc(self: ptr AppDomain, policy: PrincipalPolicy): HRESULT {.stdcall.} + GetData*: + proc(self: ptr AppDomain, name: BSTR, pRetVal: ptr VARIANT): HRESULT {.stdcall.} + SetAppDomainPolicy*: + proc(self: ptr AppDomain, domainPolicy: POBJECT): HRESULT {.stdcall.} + SetThreadPrincipal*: + proc(self: ptr AppDomain, principal: POBJECT): HRESULT {.stdcall.} + SetPrincipalPolicy*: + proc(self: ptr AppDomain, policy: PrincipalPolicy): HRESULT {.stdcall.} DoCallBack*: proc(self: ptr AppDomain, theDelegate: POBJECT): HRESULT {.stdcall.} - get_DynamicDirectory*: proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} -proc GetCORSystemDirectory*(pbuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetCORVersion*(pbBuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetFileVersion*(szFilename: LPCWSTR, szBuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetCORRequiredVersion*(pbuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetRequestedRuntimeInfo*(pExe: LPCWSTR, pwszVersion: LPCWSTR, pConfigurationFile: LPCWSTR, startupFlags: DWORD, runtimeInfoFlags: DWORD, pDirectory: LPWSTR, dwDirectory: DWORD, dwDirectoryLength: ptr DWORD, pVersion: LPWSTR, cchBuffer: DWORD, dwlength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetRequestedRuntimeVersion*(pExe: LPWSTR, pVersion: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CorBindToRuntimeHost*(pwszVersion: LPCWSTR, pwszBuildFlavor: LPCWSTR, pwszHostConfigFile: LPCWSTR, pReserved: pointer, startupFlags: DWORD, rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CorBindToRuntimeEx*(pwszVersion: LPCWSTR, pwszBuildFlavor: LPCWSTR, startupFlags: DWORD, rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CorBindToRuntimeByCfg*(pCfgStream: ptr IStream, reserved: DWORD, startupFlags: DWORD, rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CorBindToRuntime*(pwszVersion: LPCWSTR, pwszBuildFlavor: LPCWSTR, rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CorBindToCurrentRuntime*(pwszFileName: LPCWSTR, rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc ClrCreateManagedInstance*(pTypeName: LPCWSTR, riid: REFIID, ppObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc RunDll32ShimW*(hwnd: HWND, hinst: HINSTANCE, lpszCmdLine: LPCWSTR, nCmdShow: int32): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc LoadLibraryShim*(szDllName: LPCWSTR, szVersion: LPCWSTR, pvReserved: LPVOID, phModDll: ptr HMODULE): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CallFunctionShim*(szDllName: LPCWSTR, szFunctionName: LPCSTR, lpvArgument1: LPVOID, lpvArgument2: LPVOID, szVersion: LPCWSTR, pvReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetRealProcAddress*(pwszProcName: LPCSTR, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc LoadStringRC*(iResouceID: UINT, szBuffer: LPWSTR, iMax: int32, bQuiet: int32): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc LoadStringRCEx*(lcid: LCID, iResouceID: UINT, szBuffer: LPWSTR, iMax: int32, bQuiet: int32, pcwchUsed: ptr int32): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc LockClrVersion*(hostCallback: FLockClrVersionCallback, pBeginHostSetup: ptr FLockClrVersionCallback, pEndHostSetup: ptr FLockClrVersionCallback): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CreateDebuggingInterfaceFromVersion*(iDebuggerVersion: int32, szDebuggeeVersion: LPCWSTR, ppCordb: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetVersionFromProcess*(hProcess: HANDLE, pVersion: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc GetRequestedRuntimeVersionForCLSID*(rclsid: REFCLSID, pVersion: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD, dwResolutionFlags: CLSID_RESOLUTION_FLAGS): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc CLRCreateInstance*(clsid: REFCLSID, riid: REFIID, ppInterface: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} -proc `pReserved=`*(self: var CustomDumpItem, x: UINT_PTR) {.inline.} = self.union1.pReserved = x -proc pReserved*(self: CustomDumpItem): UINT_PTR {.inline.} = self.union1.pReserved -proc pReserved*(self: var CustomDumpItem): var UINT_PTR {.inline.} = self.union1.pReserved -proc SetGCStartupLimits*(self: ptr IGCHost, SegmentSize: DWORD, MaxGen0Size: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGCStartupLimits(self, SegmentSize, MaxGen0Size) -proc Collect*(self: ptr IGCHost, Generation: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Collect(self, Generation) -proc GetStats*(self: ptr IGCHost, pStats: ptr COR_GC_STATS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStats(self, pStats) -proc GetThreadStats*(self: ptr IGCHost, pFiberCookie: ptr DWORD, pStats: ptr COR_GC_THREAD_STATS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetThreadStats(self, pFiberCookie, pStats) -proc SetVirtualMemLimit*(self: ptr IGCHost, sztMaxVirtualMemMB: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVirtualMemLimit(self, sztMaxVirtualMemMB) -proc SetGCStartupLimitsEx*(self: ptr IGCHost2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGCStartupLimitsEx(self, SegmentSize, MaxGen0Size) -proc VEHandler*(self: ptr IVEHandler, VECode: HRESULT, Context: VEContext, psa: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.VEHandler(self, VECode, Context, psa) -proc SetReporterFtn*(self: ptr IVEHandler, lFnPtr: int64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetReporterFtn(self, lFnPtr) -proc Validate*(self: ptr IValidator, veh: ptr IVEHandler, pAppDomain: ptr IUnknown, ulFlags: int32, ulMaxError: int32, token: int32, fileName: LPWSTR, pe: ptr BYTE, ulSize: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Validate(self, veh, pAppDomain, ulFlags, ulMaxError, token, fileName, pe, ulSize) -proc FormatEventInfo*(self: ptr IValidator, hVECode: HRESULT, Context: VEContext, msg: LPWSTR, ulMaxLength: int32, psa: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FormatEventInfo(self, hVECode, Context, msg, ulMaxLength, psa) -proc Validate*(self: ptr ICLRValidator, veh: ptr IVEHandler, ulAppDomainId: int32, ulFlags: int32, ulMaxError: int32, token: int32, fileName: LPWSTR, pe: ptr BYTE, ulSize: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Validate(self, veh, ulAppDomainId, ulFlags, ulMaxError, token, fileName, pe, ulSize) -proc FormatEventInfo*(self: ptr ICLRValidator, hVECode: HRESULT, Context: VEContext, msg: LPWSTR, ulMaxLength: int32, psa: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FormatEventInfo(self, hVECode, Context, msg, ulMaxLength, psa) -proc Unwrap*(self: ptr IObjectHandle, ppv: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unwrap(self, ppv) -proc OnAppDomain*(self: ptr IAppDomainBinding, pAppdomain: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnAppDomain(self, pAppdomain) -proc ThreadIsBlockingForSuspension*(self: ptr IGCThreadControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThreadIsBlockingForSuspension(self) -proc SuspensionStarting*(self: ptr IGCThreadControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SuspensionStarting(self) -proc SuspensionEnding*(self: ptr IGCThreadControl, Generation: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SuspensionEnding(self, Generation) -proc RequestVirtualMemLimit*(self: ptr IGCHostControl, sztMaxVirtualMemMB: SIZE_T, psztNewMaxVirtualMemMB: ptr SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestVirtualMemLimit(self, sztMaxVirtualMemMB, psztNewMaxVirtualMemMB) -proc CorRegisterWaitForSingleObject*(self: ptr ICorThreadpool, phNewWaitObject: ptr HANDLE, hWaitObject: HANDLE, Callback: WAITORTIMERCALLBACK, Context: PVOID, timeout: ULONG, executeOnlyOnce: BOOL, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorRegisterWaitForSingleObject(self, phNewWaitObject, hWaitObject, Callback, Context, timeout, executeOnlyOnce, ret) -proc CorUnregisterWait*(self: ptr ICorThreadpool, hWaitObject: HANDLE, CompletionEvent: HANDLE, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorUnregisterWait(self, hWaitObject, CompletionEvent, ret) -proc CorQueueUserWorkItem*(self: ptr ICorThreadpool, Function: LPTHREAD_START_ROUTINE, Context: PVOID, executeOnlyOnce: BOOL, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorQueueUserWorkItem(self, Function, Context, executeOnlyOnce, ret) -proc CorCreateTimer*(self: ptr ICorThreadpool, phNewTimer: ptr HANDLE, Callback: WAITORTIMERCALLBACK, Parameter: PVOID, DueTime: DWORD, Period: DWORD, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorCreateTimer(self, phNewTimer, Callback, Parameter, DueTime, Period, ret) -proc CorChangeTimer*(self: ptr ICorThreadpool, Timer: HANDLE, DueTime: ULONG, Period: ULONG, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorChangeTimer(self, Timer, DueTime, Period, ret) -proc CorDeleteTimer*(self: ptr ICorThreadpool, Timer: HANDLE, CompletionEvent: HANDLE, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorDeleteTimer(self, Timer, CompletionEvent, ret) -proc CorBindIoCompletionCallback*(self: ptr ICorThreadpool, fileHandle: HANDLE, callback: LPOVERLAPPED_COMPLETION_ROUTINE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorBindIoCompletionCallback(self, fileHandle, callback) -proc CorCallOrQueueUserWorkItem*(self: ptr ICorThreadpool, Function: LPTHREAD_START_ROUTINE, Context: PVOID, ret: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorCallOrQueueUserWorkItem(self, Function, Context, ret) -proc CorSetMaxThreads*(self: ptr ICorThreadpool, MaxWorkerThreads: DWORD, MaxIOCompletionThreads: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorSetMaxThreads(self, MaxWorkerThreads, MaxIOCompletionThreads) -proc CorGetMaxThreads*(self: ptr ICorThreadpool, MaxWorkerThreads: ptr DWORD, MaxIOCompletionThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorGetMaxThreads(self, MaxWorkerThreads, MaxIOCompletionThreads) -proc CorGetAvailableThreads*(self: ptr ICorThreadpool, AvailableWorkerThreads: ptr DWORD, AvailableIOCompletionThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CorGetAvailableThreads(self, AvailableWorkerThreads, AvailableIOCompletionThreads) -proc ThreadIsBlockingForDebugger*(self: ptr IDebuggerThreadControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThreadIsBlockingForDebugger(self) -proc ReleaseAllRuntimeThreads*(self: ptr IDebuggerThreadControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseAllRuntimeThreads(self) -proc StartBlockingForDebugger*(self: ptr IDebuggerThreadControl, dwUnused: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartBlockingForDebugger(self, dwUnused) -proc IsDebuggerAttached*(self: ptr IDebuggerInfo, pbAttached: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDebuggerAttached(self, pbAttached) -proc SetGCThreadControl*(self: ptr ICorConfiguration, pGCThreadControl: ptr IGCThreadControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGCThreadControl(self, pGCThreadControl) -proc SetGCHostControl*(self: ptr ICorConfiguration, pGCHostControl: ptr IGCHostControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGCHostControl(self, pGCHostControl) -proc SetDebuggerThreadControl*(self: ptr ICorConfiguration, pDebuggerThreadControl: ptr IDebuggerThreadControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDebuggerThreadControl(self, pDebuggerThreadControl) -proc AddDebuggerSpecialThread*(self: ptr ICorConfiguration, dwSpecialThreadId: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddDebuggerSpecialThread(self, dwSpecialThreadId) -proc CreateLogicalThreadState*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateLogicalThreadState(self) -proc DeleteLogicalThreadState*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteLogicalThreadState(self) -proc SwitchInLogicalThreadState*(self: ptr ICorRuntimeHost, pFiberCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchInLogicalThreadState(self, pFiberCookie) -proc SwitchOutLogicalThreadState*(self: ptr ICorRuntimeHost, pFiberCookie: ptr ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchOutLogicalThreadState(self, pFiberCookie) -proc LocksHeldByLogicalThread*(self: ptr ICorRuntimeHost, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LocksHeldByLogicalThread(self, pCount) -proc MapFile*(self: ptr ICorRuntimeHost, hFile: HANDLE, hMapAddress: ptr HMODULE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapFile(self, hFile, hMapAddress) -proc GetConfiguration*(self: ptr ICorRuntimeHost, pConfiguration: ptr ptr ICorConfiguration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConfiguration(self, pConfiguration) -proc Start*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Start(self) -proc Stop*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stop(self) -proc CreateDomain*(self: ptr ICorRuntimeHost, pwzFriendlyName: LPCWSTR, pIdentityArray: ptr IUnknown, pAppDomain: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDomain(self, pwzFriendlyName, pIdentityArray, pAppDomain) -proc GetDefaultDomain*(self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultDomain(self, pAppDomain) -proc EnumDomains*(self: ptr ICorRuntimeHost, hEnum: ptr HDOMAINENUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumDomains(self, hEnum) -proc NextDomain*(self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM, pAppDomain: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NextDomain(self, hEnum, pAppDomain) -proc CloseEnum*(self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseEnum(self, hEnum) -proc CreateDomainEx*(self: ptr ICorRuntimeHost, pwzFriendlyName: LPCWSTR, pSetup: ptr IUnknown, pEvidence: ptr IUnknown, pAppDomain: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDomainEx(self, pwzFriendlyName, pSetup, pEvidence, pAppDomain) -proc CreateDomainSetup*(self: ptr ICorRuntimeHost, pAppDomainSetup: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDomainSetup(self, pAppDomainSetup) -proc CreateEvidence*(self: ptr ICorRuntimeHost, pEvidence: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateEvidence(self, pEvidence) -proc UnloadDomain*(self: ptr ICorRuntimeHost, pAppDomain: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnloadDomain(self, pAppDomain) -proc CurrentDomain*(self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CurrentDomain(self, pAppDomain) -proc OnMemoryNotification*(self: ptr ICLRMemoryNotificationCallback, eMemoryAvailable: EMemoryAvailable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnMemoryNotification(self, eMemoryAvailable) -proc Alloc*(self: ptr IHostMalloc, cbSize: SIZE_T, eCriticalLevel: EMemoryCriticalLevel, ppMem: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Alloc(self, cbSize, eCriticalLevel, ppMem) -proc DebugAlloc*(self: ptr IHostMalloc, cbSize: SIZE_T, eCriticalLevel: EMemoryCriticalLevel, pszFileName: ptr char, iLineNo: int32, ppMem: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DebugAlloc(self, cbSize, eCriticalLevel, pszFileName, iLineNo, ppMem) -proc Free*(self: ptr IHostMalloc, pMem: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Free(self, pMem) -proc CreateMalloc*(self: ptr IHostMemoryManager, dwMallocType: DWORD, ppMalloc: ptr ptr IHostMalloc): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateMalloc(self, dwMallocType, ppMalloc) -proc VirtualAlloc*(self: ptr IHostMemoryManager, pAddress: pointer, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD, eCriticalLevel: EMemoryCriticalLevel, ppMem: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.VirtualAlloc(self, pAddress, dwSize, flAllocationType, flProtect, eCriticalLevel, ppMem) -proc VirtualFree*(self: ptr IHostMemoryManager, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.VirtualFree(self, lpAddress, dwSize, dwFreeType) -proc VirtualQuery*(self: ptr IHostMemoryManager, lpAddress: pointer, lpBuffer: pointer, dwLength: SIZE_T, pResult: ptr SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.VirtualQuery(self, lpAddress, lpBuffer, dwLength, pResult) -proc VirtualProtect*(self: ptr IHostMemoryManager, lpAddress: pointer, dwSize: SIZE_T, flNewProtect: DWORD, pflOldProtect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.VirtualProtect(self, lpAddress, dwSize, flNewProtect, pflOldProtect) -proc GetMemoryLoad*(self: ptr IHostMemoryManager, pMemoryLoad: ptr DWORD, pAvailableBytes: ptr SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMemoryLoad(self, pMemoryLoad, pAvailableBytes) -proc RegisterMemoryNotificationCallback*(self: ptr IHostMemoryManager, pCallback: ptr ICLRMemoryNotificationCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterMemoryNotificationCallback(self, pCallback) -proc NeedsVirtualAddressSpace*(self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NeedsVirtualAddressSpace(self, startAddress, size) -proc AcquiredVirtualAddressSpace*(self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AcquiredVirtualAddressSpace(self, startAddress, size) -proc ReleasedVirtualAddressSpace*(self: ptr IHostMemoryManager, startAddress: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleasedVirtualAddressSpace(self, startAddress) -proc SwitchIn*(self: ptr ICLRTask, threadHandle: HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchIn(self, threadHandle) -proc SwitchOut*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchOut(self) -proc GetMemStats*(self: ptr ICLRTask, memUsage: ptr COR_GC_THREAD_STATS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMemStats(self, memUsage) -proc Reset*(self: ptr ICLRTask, fFull: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self, fFull) -proc ExitTask*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExitTask(self) -proc Abort*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Abort(self) -proc RudeAbort*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RudeAbort(self) -proc NeedsPriorityScheduling*(self: ptr ICLRTask, pbNeedsPriorityScheduling: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NeedsPriorityScheduling(self, pbNeedsPriorityScheduling) -proc YieldTask*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.YieldTask(self) -proc LocksHeld*(self: ptr ICLRTask, pLockCount: ptr SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LocksHeld(self, pLockCount) -proc SetTaskIdentifier*(self: ptr ICLRTask, asked: TASKID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTaskIdentifier(self, asked) -proc BeginPreventAsyncAbort*(self: ptr ICLRTask2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginPreventAsyncAbort(self) -proc EndPreventAsyncAbort*(self: ptr ICLRTask2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndPreventAsyncAbort(self) -proc Start*(self: ptr IHostTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Start(self) -proc Alert*(self: ptr IHostTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Alert(self) -proc Join*(self: ptr IHostTask, dwMilliseconds: DWORD, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Join(self, dwMilliseconds, option) -proc SetPriority*(self: ptr IHostTask, newPriority: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPriority(self, newPriority) -proc GetPriority*(self: ptr IHostTask, pPriority: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPriority(self, pPriority) -proc SetCLRTask*(self: ptr IHostTask, pCLRTask: ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCLRTask(self, pCLRTask) -proc CreateTask*(self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateTask(self, pTask) -proc GetCurrentTask*(self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentTask(self, pTask) -proc SetUILocale*(self: ptr ICLRTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetUILocale(self, lcid) -proc SetLocale*(self: ptr ICLRTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLocale(self, lcid) -proc GetCurrentTaskType*(self: ptr ICLRTaskManager, pTaskType: ptr ETaskType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentTaskType(self, pTaskType) -proc GetCurrentTask*(self: ptr IHostTaskManager, pTask: ptr ptr IHostTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentTask(self, pTask) -proc CreateTask*(self: ptr IHostTaskManager, dwStackSize: DWORD, pStartAddress: LPTHREAD_START_ROUTINE, pParameter: PVOID, ppTask: ptr ptr IHostTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateTask(self, dwStackSize, pStartAddress, pParameter, ppTask) -proc Sleep*(self: ptr IHostTaskManager, dwMilliseconds: DWORD, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Sleep(self, dwMilliseconds, option) -proc SwitchToTask*(self: ptr IHostTaskManager, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchToTask(self, option) -proc SetUILocale*(self: ptr IHostTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetUILocale(self, lcid) -proc SetLocale*(self: ptr IHostTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLocale(self, lcid) -proc CallNeedsHostHook*(self: ptr IHostTaskManager, target: SIZE_T, pbCallNeedsHostHook: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CallNeedsHostHook(self, target, pbCallNeedsHostHook) -proc LeaveRuntime*(self: ptr IHostTaskManager, target: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LeaveRuntime(self, target) -proc EnterRuntime*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnterRuntime(self) -proc ReverseLeaveRuntime*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReverseLeaveRuntime(self) -proc ReverseEnterRuntime*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReverseEnterRuntime(self) -proc BeginDelayAbort*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginDelayAbort(self) -proc EndDelayAbort*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndDelayAbort(self) -proc BeginThreadAffinity*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginThreadAffinity(self) -proc EndThreadAffinity*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndThreadAffinity(self) -proc SetStackGuarantee*(self: ptr IHostTaskManager, guarantee: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStackGuarantee(self, guarantee) -proc GetStackGuarantee*(self: ptr IHostTaskManager, pGuarantee: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStackGuarantee(self, pGuarantee) -proc SetCLRTaskManager*(self: ptr IHostTaskManager, ppManager: ptr ICLRTaskManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCLRTaskManager(self, ppManager) -proc QueueUserWorkItem*(self: ptr IHostThreadpoolManager, Function: LPTHREAD_START_ROUTINE, Context: PVOID, Flags: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueueUserWorkItem(self, Function, Context, Flags) -proc SetMaxThreads*(self: ptr IHostThreadpoolManager, dwMaxWorkerThreads: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMaxThreads(self, dwMaxWorkerThreads) -proc GetMaxThreads*(self: ptr IHostThreadpoolManager, pdwMaxWorkerThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMaxThreads(self, pdwMaxWorkerThreads) -proc GetAvailableThreads*(self: ptr IHostThreadpoolManager, pdwAvailableWorkerThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAvailableThreads(self, pdwAvailableWorkerThreads) -proc SetMinThreads*(self: ptr IHostThreadpoolManager, dwMinIOCompletionThreads: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMinThreads(self, dwMinIOCompletionThreads) -proc GetMinThreads*(self: ptr IHostThreadpoolManager, pdwMinIOCompletionThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMinThreads(self, pdwMinIOCompletionThreads) -proc OnComplete*(self: ptr ICLRIoCompletionManager, dwErrorCode: DWORD, NumberOfBytesTransferred: DWORD, pvOverlapped: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnComplete(self, dwErrorCode, NumberOfBytesTransferred, pvOverlapped) -proc CreateIoCompletionPort*(self: ptr IHostIoCompletionManager, phPort: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateIoCompletionPort(self, phPort) -proc CloseIoCompletionPort*(self: ptr IHostIoCompletionManager, hPort: HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseIoCompletionPort(self, hPort) -proc SetMaxThreads*(self: ptr IHostIoCompletionManager, dwMaxIOCompletionThreads: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMaxThreads(self, dwMaxIOCompletionThreads) -proc GetMaxThreads*(self: ptr IHostIoCompletionManager, pdwMaxIOCompletionThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMaxThreads(self, pdwMaxIOCompletionThreads) -proc GetAvailableThreads*(self: ptr IHostIoCompletionManager, pdwAvailableIOCompletionThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAvailableThreads(self, pdwAvailableIOCompletionThreads) -proc GetHostOverlappedSize*(self: ptr IHostIoCompletionManager, pcbSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHostOverlappedSize(self, pcbSize) -proc SetCLRIoCompletionManager*(self: ptr IHostIoCompletionManager, pManager: ptr ICLRIoCompletionManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCLRIoCompletionManager(self, pManager) -proc InitializeHostOverlapped*(self: ptr IHostIoCompletionManager, pvOverlapped: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeHostOverlapped(self, pvOverlapped) -proc Bind*(self: ptr IHostIoCompletionManager, hPort: HANDLE, hHandle: HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Bind(self, hPort, hHandle) -proc SetMinThreads*(self: ptr IHostIoCompletionManager, dwMinIOCompletionThreads: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMinThreads(self, dwMinIOCompletionThreads) -proc GetMinThreads*(self: ptr IHostIoCompletionManager, pdwMinIOCompletionThreads: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMinThreads(self, pdwMinIOCompletionThreads) -proc BeginConnection*(self: ptr ICLRDebugManager, dwConnectionId: CONNID, szConnectionName: ptr uint16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginConnection(self, dwConnectionId, szConnectionName) -proc SetConnectionTasks*(self: ptr ICLRDebugManager, id: CONNID, dwCount: DWORD, ppCLRTask: ptr ptr ICLRTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetConnectionTasks(self, id, dwCount, ppCLRTask) -proc EndConnection*(self: ptr ICLRDebugManager, dwConnectionId: CONNID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndConnection(self, dwConnectionId) -proc SetDacl*(self: ptr ICLRDebugManager, pacl: PACL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDacl(self, pacl) -proc GetDacl*(self: ptr ICLRDebugManager, pacl: ptr PACL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDacl(self, pacl) -proc IsDebuggerAttached*(self: ptr ICLRDebugManager, pbAttached: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDebuggerAttached(self, pbAttached) -proc SetSymbolReadingPolicy*(self: ptr ICLRDebugManager, policy: ESymbolReadingPolicy): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSymbolReadingPolicy(self, policy) -proc GetBucketParametersForCurrentException*(self: ptr ICLRErrorReportingManager, pParams: ptr BucketParameters): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBucketParametersForCurrentException(self, pParams) -proc BeginCustomDump*(self: ptr ICLRErrorReportingManager, dwFlavor: ECustomDumpFlavor, dwNumItems: DWORD, items: ptr CustomDumpItem, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginCustomDump(self, dwFlavor, dwNumItems, items, dwReserved) -proc EndCustomDump*(self: ptr ICLRErrorReportingManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndCustomDump(self) -proc Enter*(self: ptr IHostCrst, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enter(self, option) -proc Leave*(self: ptr IHostCrst): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Leave(self) -proc TryEnter*(self: ptr IHostCrst, option: DWORD, pbSucceeded: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TryEnter(self, option, pbSucceeded) -proc SetSpinCount*(self: ptr IHostCrst, dwSpinCount: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSpinCount(self, dwSpinCount) -proc Wait*(self: ptr IHostAutoEvent, dwMilliseconds: DWORD, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Wait(self, dwMilliseconds, option) -proc Set*(self: ptr IHostAutoEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Set(self) -proc Wait*(self: ptr IHostManualEvent, dwMilliseconds: DWORD, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Wait(self, dwMilliseconds, option) -proc Reset*(self: ptr IHostManualEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Set*(self: ptr IHostManualEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Set(self) -proc Wait*(self: ptr IHostSemaphore, dwMilliseconds: DWORD, option: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Wait(self, dwMilliseconds, option) -proc ReleaseSemaphore*(self: ptr IHostSemaphore, lReleaseCount: LONG, lpPreviousCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseSemaphore(self, lReleaseCount, lpPreviousCount) -proc GetMonitorOwner*(self: ptr ICLRSyncManager, Cookie: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMonitorOwner(self, Cookie, ppOwnerHostTask) -proc CreateRWLockOwnerIterator*(self: ptr ICLRSyncManager, Cookie: SIZE_T, pIterator: ptr SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateRWLockOwnerIterator(self, Cookie, pIterator) -proc GetRWLockOwnerNext*(self: ptr ICLRSyncManager, Iterator: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRWLockOwnerNext(self, Iterator, ppOwnerHostTask) -proc DeleteRWLockOwnerIterator*(self: ptr ICLRSyncManager, Iterator: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteRWLockOwnerIterator(self, Iterator) -proc SetCLRSyncManager*(self: ptr IHostSyncManager, pManager: ptr ICLRSyncManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCLRSyncManager(self, pManager) -proc CreateCrst*(self: ptr IHostSyncManager, ppCrst: ptr ptr IHostCrst): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateCrst(self, ppCrst) -proc CreateCrstWithSpinCount*(self: ptr IHostSyncManager, dwSpinCount: DWORD, ppCrst: ptr ptr IHostCrst): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateCrstWithSpinCount(self, dwSpinCount, ppCrst) -proc CreateAutoEvent*(self: ptr IHostSyncManager, ppEvent: ptr ptr IHostAutoEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateAutoEvent(self, ppEvent) -proc CreateManualEvent*(self: ptr IHostSyncManager, bInitialState: BOOL, ppEvent: ptr ptr IHostManualEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateManualEvent(self, bInitialState, ppEvent) -proc CreateMonitorEvent*(self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateMonitorEvent(self, Cookie, ppEvent) -proc CreateRWLockWriterEvent*(self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateRWLockWriterEvent(self, Cookie, ppEvent) -proc CreateRWLockReaderEvent*(self: ptr IHostSyncManager, bInitialState: BOOL, Cookie: SIZE_T, ppEvent: ptr ptr IHostManualEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateRWLockReaderEvent(self, bInitialState, Cookie, ppEvent) -proc CreateSemaphore*(self: ptr IHostSyncManager, dwInitial: DWORD, dwMax: DWORD, ppSemaphore: ptr ptr IHostSemaphore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateSemaphore(self, dwInitial, dwMax, ppSemaphore) -proc SetDefaultAction*(self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultAction(self, operation, action) -proc SetTimeout*(self: ptr ICLRPolicyManager, operation: EClrOperation, dwMilliseconds: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTimeout(self, operation, dwMilliseconds) -proc SetActionOnTimeout*(self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActionOnTimeout(self, operation, action) -proc SetTimeoutAndAction*(self: ptr ICLRPolicyManager, operation: EClrOperation, dwMilliseconds: DWORD, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTimeoutAndAction(self, operation, dwMilliseconds, action) -proc SetActionOnFailure*(self: ptr ICLRPolicyManager, failure: EClrFailure, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActionOnFailure(self, failure, action) -proc SetUnhandledExceptionPolicy*(self: ptr ICLRPolicyManager, policy: EClrUnhandledException): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetUnhandledExceptionPolicy(self, policy) -proc OnDefaultAction*(self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDefaultAction(self, operation, action) -proc OnTimeout*(self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnTimeout(self, operation, action) -proc OnFailure*(self: ptr IHostPolicyManager, failure: EClrFailure, action: EPolicyAction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFailure(self, failure, action) -proc OnEvent*(self: ptr IActionOnCLREvent, event: EClrEvent, data: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnEvent(self, event, data) -proc RegisterActionOnEvent*(self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterActionOnEvent(self, event, pAction) -proc UnregisterActionOnEvent*(self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterActionOnEvent(self, event, pAction) -proc ThreadIsBlockingForSuspension*(self: ptr IHostGCManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThreadIsBlockingForSuspension(self) -proc SuspensionStarting*(self: ptr IHostGCManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SuspensionStarting(self) -proc SuspensionEnding*(self: ptr IHostGCManager, Generation: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SuspensionEnding(self, Generation) -proc IsStringAssemblyReferenceInList*(self: ptr ICLRAssemblyReferenceList, pwzAssemblyName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsStringAssemblyReferenceInList(self, pwzAssemblyName) -proc IsAssemblyReferenceInList*(self: ptr ICLRAssemblyReferenceList, pName: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsAssemblyReferenceInList(self, pName) -proc Get*(self: ptr ICLRReferenceAssemblyEnum, dwIndex: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Get(self, dwIndex, pwzBuffer, pcchBufferSize) -proc Get*(self: ptr ICLRProbingAssemblyEnum, dwIndex: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Get(self, dwIndex, pwzBuffer, pcchBufferSize) -proc GetCLRAssemblyReferenceList*(self: ptr ICLRAssemblyIdentityManager, ppwzAssemblyReferences: ptr LPCWSTR, dwNumOfReferences: DWORD, ppReferenceList: ptr ptr ICLRAssemblyReferenceList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCLRAssemblyReferenceList(self, ppwzAssemblyReferences, dwNumOfReferences, ppReferenceList) -proc GetBindingIdentityFromFile*(self: ptr ICLRAssemblyIdentityManager, pwzFilePath: LPCWSTR, dwFlags: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindingIdentityFromFile(self, pwzFilePath, dwFlags, pwzBuffer, pcchBufferSize) -proc GetBindingIdentityFromStream*(self: ptr ICLRAssemblyIdentityManager, pStream: ptr IStream, dwFlags: DWORD, pwzBuffer: LPWSTR, pcchBufferSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindingIdentityFromStream(self, pStream, dwFlags, pwzBuffer, pcchBufferSize) -proc GetReferencedAssembliesFromFile*(self: ptr ICLRAssemblyIdentityManager, pwzFilePath: LPCWSTR, dwFlags: DWORD, pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetReferencedAssembliesFromFile(self, pwzFilePath, dwFlags, pExcludeAssembliesList, ppReferenceEnum) -proc GetReferencedAssembliesFromStream*(self: ptr ICLRAssemblyIdentityManager, pStream: ptr IStream, dwFlags: DWORD, pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetReferencedAssembliesFromStream(self, pStream, dwFlags, pExcludeAssembliesList, ppReferenceEnum) -proc GetProbingAssembliesFromReference*(self: ptr ICLRAssemblyIdentityManager, dwMachineType: DWORD, dwFlags: DWORD, pwzReferenceIdentity: LPCWSTR, ppProbingAssemblyEnum: ptr ptr ICLRProbingAssemblyEnum): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProbingAssembliesFromReference(self, dwMachineType, dwFlags, pwzReferenceIdentity, ppProbingAssemblyEnum) -proc IsStronglyNamed*(self: ptr ICLRAssemblyIdentityManager, pwzAssemblyIdentity: LPCWSTR, pbIsStronglyNamed: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsStronglyNamed(self, pwzAssemblyIdentity, pbIsStronglyNamed) -proc ModifyApplicationPolicy*(self: ptr ICLRHostBindingPolicyManager, pwzSourceAssemblyIdentity: LPCWSTR, pwzTargetAssemblyIdentity: LPCWSTR, pbApplicationPolicy: ptr BYTE, cbAppPolicySize: DWORD, dwPolicyModifyFlags: DWORD, pbNewApplicationPolicy: ptr BYTE, pcbNewAppPolicySize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ModifyApplicationPolicy(self, pwzSourceAssemblyIdentity, pwzTargetAssemblyIdentity, pbApplicationPolicy, cbAppPolicySize, dwPolicyModifyFlags, pbNewApplicationPolicy, pcbNewAppPolicySize) -proc EvaluatePolicy*(self: ptr ICLRHostBindingPolicyManager, pwzReferenceIdentity: LPCWSTR, pbApplicationPolicy: ptr BYTE, cbAppPolicySize: DWORD, pwzPostPolicyReferenceIdentity: LPWSTR, pcchPostPolicyReferenceIdentity: ptr DWORD, pdwPoliciesApplied: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EvaluatePolicy(self, pwzReferenceIdentity, pbApplicationPolicy, cbAppPolicySize, pwzPostPolicyReferenceIdentity, pcchPostPolicyReferenceIdentity, pdwPoliciesApplied) -proc Collect*(self: ptr ICLRGCManager, Generation: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Collect(self, Generation) -proc GetStats*(self: ptr ICLRGCManager, pStats: ptr COR_GC_STATS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStats(self, pStats) -proc SetGCStartupLimits*(self: ptr ICLRGCManager, SegmentSize: DWORD, MaxGen0Size: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGCStartupLimits(self, SegmentSize, MaxGen0Size) -proc SetGCStartupLimitsEx*(self: ptr ICLRGCManager2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGCStartupLimitsEx(self, SegmentSize, MaxGen0Size) -proc ProvideAssembly*(self: ptr IHostAssemblyStore, pBindInfo: ptr AssemblyBindInfo, pAssemblyId: ptr UINT64, pContext: ptr UINT64, ppStmAssemblyImage: ptr ptr IStream, ppStmPDB: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProvideAssembly(self, pBindInfo, pAssemblyId, pContext, ppStmAssemblyImage, ppStmPDB) -proc ProvideModule*(self: ptr IHostAssemblyStore, pBindInfo: ptr ModuleBindInfo, pdwModuleId: ptr DWORD, ppStmModuleImage: ptr ptr IStream, ppStmPDB: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProvideModule(self, pBindInfo, pdwModuleId, ppStmModuleImage, ppStmPDB) -proc GetNonHostStoreAssemblies*(self: ptr IHostAssemblyManager, ppReferenceList: ptr ptr ICLRAssemblyReferenceList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNonHostStoreAssemblies(self, ppReferenceList) -proc GetAssemblyStore*(self: ptr IHostAssemblyManager, ppAssemblyStore: ptr ptr IHostAssemblyStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAssemblyStore(self, ppAssemblyStore) -proc GetHostManager*(self: ptr IHostControl, riid: REFIID, ppObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHostManager(self, riid, ppObject) -proc SetAppDomainManager*(self: ptr IHostControl, dwAppDomainID: DWORD, pUnkAppDomainManager: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppDomainManager(self, dwAppDomainID, pUnkAppDomainManager) -proc GetCLRManager*(self: ptr ICLRControl, riid: REFIID, ppObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCLRManager(self, riid, ppObject) -proc SetAppDomainManagerType*(self: ptr ICLRControl, pwzAppDomainManagerAssembly: LPCWSTR, pwzAppDomainManagerType: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppDomainManagerType(self, pwzAppDomainManagerAssembly, pwzAppDomainManagerType) -proc Start*(self: ptr ICLRRuntimeHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Start(self) -proc Stop*(self: ptr ICLRRuntimeHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stop(self) -proc SetHostControl*(self: ptr ICLRRuntimeHost, pHostControl: ptr IHostControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHostControl(self, pHostControl) -proc GetCLRControl*(self: ptr ICLRRuntimeHost, pCLRControl: ptr ptr ICLRControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCLRControl(self, pCLRControl) -proc UnloadAppDomain*(self: ptr ICLRRuntimeHost, dwAppDomainId: DWORD, fWaitUntilDone: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnloadAppDomain(self, dwAppDomainId, fWaitUntilDone) -proc ExecuteInAppDomain*(self: ptr ICLRRuntimeHost, dwAppDomainId: DWORD, pCallback: FExecuteInAppDomainCallback, cookie: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecuteInAppDomain(self, dwAppDomainId, pCallback, cookie) -proc GetCurrentAppDomainId*(self: ptr ICLRRuntimeHost, pdwAppDomainId: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentAppDomainId(self, pdwAppDomainId) -proc ExecuteApplication*(self: ptr ICLRRuntimeHost, pwzAppFullName: LPCWSTR, dwManifestPaths: DWORD, ppwzManifestPaths: ptr LPCWSTR, dwActivationData: DWORD, ppwzActivationData: ptr LPCWSTR, pReturnValue: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecuteApplication(self, pwzAppFullName, dwManifestPaths, ppwzManifestPaths, dwActivationData, ppwzActivationData, pReturnValue) -proc ExecuteInDefaultAppDomain*(self: ptr ICLRRuntimeHost, pwzAssemblyPath: LPCWSTR, pwzTypeName: LPCWSTR, pwzMethodName: LPCWSTR, pwzArgument: LPCWSTR, pReturnValue: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecuteInDefaultAppDomain(self, pwzAssemblyPath, pwzTypeName, pwzMethodName, pwzArgument, pReturnValue) -proc SetProtectedCategories*(self: ptr ICLRHostProtectionManager, categories: EApiCategories): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProtectedCategories(self, categories) -proc SetEagerSerializeGrantSets*(self: ptr ICLRHostProtectionManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEagerSerializeGrantSets(self) -proc SetAppDomainManagerType*(self: ptr ICLRDomainManager, wszAppDomainManagerAssembly: LPCWSTR, wszAppDomainManagerType: LPCWSTR, dwInitializeDomainFlags: EInitializeNewDomainFlags): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppDomainManagerType(self, wszAppDomainManagerAssembly, wszAppDomainManagerType, dwInitializeDomainFlags) -proc SetPropertiesForDefaultAppDomain*(self: ptr ICLRDomainManager, nProperties: DWORD, pwszPropertyNames: ptr LPCWSTR, pwszPropertyValues: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPropertiesForDefaultAppDomain(self, nProperties, pwszPropertyNames, pwszPropertyValues) -proc GetNameCount*(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNameCount(self, pCount) -proc GetNames*(self: ptr ITypeName, count: DWORD, rgbszNames: ptr BSTR, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNames(self, count, rgbszNames, pCount) -proc GetTypeArgumentCount*(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeArgumentCount(self, pCount) -proc GetTypeArguments*(self: ptr ITypeName, count: DWORD, rgpArguments: ptr ptr ITypeName, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeArguments(self, count, rgpArguments, pCount) -proc GetModifierLength*(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetModifierLength(self, pCount) -proc GetModifiers*(self: ptr ITypeName, count: DWORD, rgModifiers: ptr DWORD, pCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetModifiers(self, count, rgModifiers, pCount) -proc GetAssemblyName*(self: ptr ITypeName, rgbszAssemblyNames: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAssemblyName(self, rgbszAssemblyNames) -proc OpenGenericArguments*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenGenericArguments(self) -proc CloseGenericArguments*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseGenericArguments(self) -proc OpenGenericArgument*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenGenericArgument(self) -proc CloseGenericArgument*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseGenericArgument(self) -proc AddName*(self: ptr ITypeNameBuilder, szName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddName(self, szName) -proc AddPointer*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPointer(self) -proc AddByRef*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddByRef(self) -proc AddSzArray*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSzArray(self) -proc AddArray*(self: ptr ITypeNameBuilder, rank: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddArray(self, rank) -proc AddAssemblySpec*(self: ptr ITypeNameBuilder, szAssemblySpec: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddAssemblySpec(self, szAssemblySpec) -proc ToString*(self: ptr ITypeNameBuilder, pszStringRepresentation: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ToString(self, pszStringRepresentation) -proc Clear*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clear(self) -proc ParseTypeName*(self: ptr ITypeNameFactory, szName: LPCWSTR, pError: ptr DWORD, ppTypeName: ptr ptr ITypeName): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseTypeName(self, szName, pError, ppTypeName) -proc GetTypeNameBuilder*(self: ptr ITypeNameFactory, ppTypeBuilder: ptr ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeNameBuilder(self, ppTypeBuilder) -proc DoCallback*(self: ptr IApartmentCallback, pFunc: SIZE_T, pData: SIZE_T): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoCallback(self, pFunc, pData) -proc GetSerializedBuffer*(self: ptr IManagedObject, pBSTR: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSerializedBuffer(self, pBSTR) -proc GetObjectIdentity*(self: ptr IManagedObject, pBSTRGUID: ptr BSTR, AppDomainID: ptr int32, pCCW: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectIdentity(self, pBSTRGUID, AppDomainID, pCCW) -proc Autodone*(self: ptr ICatalogServices): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Autodone(self) -proc NotAutodone*(self: ptr ICatalogServices): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NotAutodone(self) -proc Capture*(self: ptr IHostSecurityContext, ppClonedContext: ptr ptr IHostSecurityContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Capture(self, ppClonedContext) -proc ImpersonateLoggedOnUser*(self: ptr IHostSecurityManager, hToken: HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ImpersonateLoggedOnUser(self, hToken) -proc RevertToSelf*(self: ptr IHostSecurityManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevertToSelf(self) -proc OpenThreadToken*(self: ptr IHostSecurityManager, dwDesiredAccess: DWORD, bOpenAsSelf: BOOL, phThreadToken: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenThreadToken(self, dwDesiredAccess, bOpenAsSelf, phThreadToken) -proc SetThreadToken*(self: ptr IHostSecurityManager, hToken: HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThreadToken(self, hToken) -proc GetSecurityContext*(self: ptr IHostSecurityManager, eContextType: EContextType, ppSecurityContext: ptr ptr IHostSecurityContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecurityContext(self, eContextType, ppSecurityContext) -proc SetSecurityContext*(self: ptr IHostSecurityManager, eContextType: EContextType, pSecurityContext: ptr IHostSecurityContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSecurityContext(self, eContextType, pSecurityContext) -proc GetCurrentAllocated*(self: ptr ICLRAppDomainResourceMonitor, dwAppDomainId: DWORD, pBytesAllocated: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentAllocated(self, dwAppDomainId, pBytesAllocated) -proc GetCurrentSurvived*(self: ptr ICLRAppDomainResourceMonitor, dwAppDomainId: DWORD, pAppDomainBytesSurvived: ptr ULONGLONG, pTotalBytesSurvived: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSurvived(self, dwAppDomainId, pAppDomainBytesSurvived, pTotalBytesSurvived) -proc GetCurrentCpuTime*(self: ptr ICLRAppDomainResourceMonitor, dwAppDomainId: DWORD, pMilliseconds: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentCpuTime(self, dwAppDomainId, pMilliseconds) -proc GetRuntime*(self: ptr ICLRMetaHost, pwzVersion: LPCWSTR, riid: REFIID, ppRuntime: ptr LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRuntime(self, pwzVersion, riid, ppRuntime) -proc GetVersionFromFile*(self: ptr ICLRMetaHost, pwzFilePath: LPCWSTR, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVersionFromFile(self, pwzFilePath, pwzBuffer, pcchBuffer) -proc EnumerateInstalledRuntimes*(self: ptr ICLRMetaHost, ppEnumerator: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumerateInstalledRuntimes(self, ppEnumerator) -proc EnumerateLoadedRuntimes*(self: ptr ICLRMetaHost, hndProcess: HANDLE, ppEnumerator: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumerateLoadedRuntimes(self, hndProcess, ppEnumerator) -proc RequestRuntimeLoadedNotification*(self: ptr ICLRMetaHost, pCallbackFunction: RuntimeLoadedCallbackFnPtr): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestRuntimeLoadedNotification(self, pCallbackFunction) -proc QueryLegacyV2RuntimeBinding*(self: ptr ICLRMetaHost, riid: REFIID, ppUnk: ptr LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryLegacyV2RuntimeBinding(self, riid, ppUnk) -proc ExitProcess*(self: ptr ICLRMetaHost, iExitCode: INT32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExitProcess(self, iExitCode) -proc GetRequestedRuntime*(self: ptr ICLRMetaHostPolicy, dwPolicyFlags: METAHOST_POLICY_FLAGS, pwzBinary: LPCWSTR, pCfgStream: ptr IStream, pwzVersion: LPWSTR, pcchVersion: ptr DWORD, pwzImageVersion: LPWSTR, pcchImageVersion: ptr DWORD, pdwConfigFlags: ptr DWORD, riid: REFIID, ppRuntime: ptr LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRequestedRuntime(self, dwPolicyFlags, pwzBinary, pCfgStream, pwzVersion, pcchVersion, pwzImageVersion, pcchImageVersion, pdwConfigFlags, riid, ppRuntime) -proc AttachProfiler*(self: ptr ICLRProfiling, dwProfileeProcessID: DWORD, dwMillisecondsMax: DWORD, pClsidProfiler: ptr CLSID, wszProfilerPath: LPCWSTR, pvClientData: pointer, cbClientData: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AttachProfiler(self, dwProfileeProcessID, dwMillisecondsMax, pClsidProfiler, wszProfilerPath, pvClientData, cbClientData) -proc ProvideLibrary*(self: ptr ICLRDebuggingLibraryProvider, pwszFileName: ptr WCHAR, dwTimestamp: DWORD, dwSizeOfImage: DWORD, phModule: ptr HMODULE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProvideLibrary(self, pwszFileName, dwTimestamp, dwSizeOfImage, phModule) -proc OpenVirtualProcess*(self: ptr ICLRDebugging, moduleBaseAddress: ULONG64, pDataTarget: ptr IUnknown, pLibraryProvider: ptr ICLRDebuggingLibraryProvider, pMaxDebuggerSupportedVersion: ptr CLR_DEBUGGING_VERSION, riidProcess: REFIID, ppProcess: ptr ptr IUnknown, pVersion: ptr CLR_DEBUGGING_VERSION, pdwFlags: ptr CLR_DEBUGGING_PROCESS_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenVirtualProcess(self, moduleBaseAddress, pDataTarget, pLibraryProvider, pMaxDebuggerSupportedVersion, riidProcess, ppProcess, pVersion, pdwFlags) -proc CanUnloadNow*(self: ptr ICLRDebugging, hModule: HMODULE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanUnloadNow(self, hModule) -proc GetVersionString*(self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVersionString(self, pwzBuffer, pcchBuffer) -proc GetRuntimeDirectory*(self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRuntimeDirectory(self, pwzBuffer, pcchBuffer) -proc IsLoaded*(self: ptr ICLRRuntimeInfo, hndProcess: HANDLE, pbLoaded: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLoaded(self, hndProcess, pbLoaded) -proc LoadErrorString*(self: ptr ICLRRuntimeInfo, iResourceID: UINT, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD, iLocaleID: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadErrorString(self, iResourceID, pwzBuffer, pcchBuffer, iLocaleID) -proc LoadLibrary*(self: ptr ICLRRuntimeInfo, pwzDllName: LPCWSTR, phndModule: ptr HMODULE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadLibrary(self, pwzDllName, phndModule) -proc GetProcAddress*(self: ptr ICLRRuntimeInfo, pszProcName: LPCSTR, ppProc: ptr LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProcAddress(self, pszProcName, ppProc) -proc GetInterface*(self: ptr ICLRRuntimeInfo, rclsid: REFCLSID, riid: REFIID, ppUnk: ptr LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterface(self, rclsid, riid, ppUnk) -proc IsLoadable*(self: ptr ICLRRuntimeInfo, pbLoadable: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLoadable(self, pbLoadable) -proc SetDefaultStartupFlags*(self: ptr ICLRRuntimeInfo, dwStartupFlags: DWORD, pwzHostConfigFile: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultStartupFlags(self, dwStartupFlags, pwzHostConfigFile) -proc GetDefaultStartupFlags*(self: ptr ICLRRuntimeInfo, pdwStartupFlags: ptr DWORD, pwzHostConfigFile: LPWSTR, pcchHostConfigFile: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultStartupFlags(self, pdwStartupFlags, pwzHostConfigFile, pcchHostConfigFile) -proc BindAsLegacyV2Runtime*(self: ptr ICLRRuntimeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindAsLegacyV2Runtime(self) -proc IsStarted*(self: ptr ICLRRuntimeInfo, pbStarted: ptr BOOL, pdwStartupFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsStarted(self, pbStarted, pdwStartupFlags) -proc GetHashFromAssemblyFile*(self: ptr ICLRStrongName, pszFilePath: LPCSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashFromAssemblyFile(self, pszFilePath, piHashAlg, pbHash, cchHash, pchHash) -proc GetHashFromAssemblyFileW*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashFromAssemblyFileW(self, pwzFilePath, piHashAlg, pbHash, cchHash, pchHash) -proc GetHashFromBlob*(self: ptr ICLRStrongName, pbBlob: ptr BYTE, cchBlob: DWORD, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashFromBlob(self, pbBlob, cchBlob, piHashAlg, pbHash, cchHash, pchHash) -proc GetHashFromFile*(self: ptr ICLRStrongName, pszFilePath: LPCSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashFromFile(self, pszFilePath, piHashAlg, pbHash, cchHash, pchHash) -proc GetHashFromFileW*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashFromFileW(self, pwzFilePath, piHashAlg, pbHash, cchHash, pchHash) -proc GetHashFromHandle*(self: ptr ICLRStrongName, hFile: HANDLE, piHashAlg: ptr int32, pbHash: ptr BYTE, cchHash: DWORD, pchHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashFromHandle(self, hFile, piHashAlg, pbHash, cchHash, pchHash) -proc StrongNameCompareAssemblies*(self: ptr ICLRStrongName, pwzAssembly1: LPCWSTR, pwzAssembly2: LPCWSTR, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameCompareAssemblies(self, pwzAssembly1, pwzAssembly2, pdwResult) -proc StrongNameFreeBuffer*(self: ptr ICLRStrongName, pbMemory: ptr BYTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameFreeBuffer(self, pbMemory) -proc StrongNameGetBlob*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, pbBlob: ptr BYTE, pcbBlob: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameGetBlob(self, pwzFilePath, pbBlob, pcbBlob) -proc StrongNameGetBlobFromImage*(self: ptr ICLRStrongName, pbBase: ptr BYTE, dwLength: DWORD, pbBlob: ptr BYTE, pcbBlob: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameGetBlobFromImage(self, pbBase, dwLength, pbBlob, pcbBlob) -proc StrongNameGetPublicKey*(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbPublicKeyBlob: ptr ptr BYTE, pcbPublicKeyBlob: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameGetPublicKey(self, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbPublicKeyBlob, pcbPublicKeyBlob) -proc StrongNameHashSize*(self: ptr ICLRStrongName, ulHashAlg: ULONG, pcbSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameHashSize(self, ulHashAlg, pcbSize) -proc StrongNameKeyDelete*(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameKeyDelete(self, pwzKeyContainer) -proc StrongNameKeyGen*(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, dwFlags: DWORD, ppbKeyBlob: ptr ptr BYTE, pcbKeyBlob: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameKeyGen(self, pwzKeyContainer, dwFlags, ppbKeyBlob, pcbKeyBlob) -proc StrongNameKeyGenEx*(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, dwFlags: DWORD, dwKeySize: DWORD, ppbKeyBlob: ptr ptr BYTE, pcbKeyBlob: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameKeyGenEx(self, pwzKeyContainer, dwFlags, dwKeySize, ppbKeyBlob, pcbKeyBlob) -proc StrongNameKeyInstall*(self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameKeyInstall(self, pwzKeyContainer, pbKeyBlob, cbKeyBlob) -proc StrongNameSignatureGeneration*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbSignatureBlob: ptr ptr BYTE, pcbSignatureBlob: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureGeneration(self, pwzFilePath, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbSignatureBlob, pcbSignatureBlob) -proc StrongNameSignatureGenerationEx*(self: ptr ICLRStrongName, wszFilePath: LPCWSTR, wszKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbSignatureBlob: ptr ptr BYTE, pcbSignatureBlob: ptr ULONG, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureGenerationEx(self, wszFilePath, wszKeyContainer, pbKeyBlob, cbKeyBlob, ppbSignatureBlob, pcbSignatureBlob, dwFlags) -proc StrongNameSignatureSize*(self: ptr ICLRStrongName, pbPublicKeyBlob: ptr BYTE, cbPublicKeyBlob: ULONG, pcbSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureSize(self, pbPublicKeyBlob, cbPublicKeyBlob, pcbSize) -proc StrongNameSignatureVerification*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, dwInFlags: DWORD, pdwOutFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureVerification(self, pwzFilePath, dwInFlags, pdwOutFlags) -proc StrongNameSignatureVerificationEx*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, fForceVerification: BOOLEAN, pfWasVerified: ptr BOOLEAN): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureVerificationEx(self, pwzFilePath, fForceVerification, pfWasVerified) -proc StrongNameSignatureVerificationFromImage*(self: ptr ICLRStrongName, pbBase: ptr BYTE, dwLength: DWORD, dwInFlags: DWORD, pdwOutFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureVerificationFromImage(self, pbBase, dwLength, dwInFlags, pdwOutFlags) -proc StrongNameTokenFromAssembly*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, ppbStrongNameToken: ptr ptr BYTE, pcbStrongNameToken: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameTokenFromAssembly(self, pwzFilePath, ppbStrongNameToken, pcbStrongNameToken) -proc StrongNameTokenFromAssemblyEx*(self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, ppbStrongNameToken: ptr ptr BYTE, pcbStrongNameToken: ptr ULONG, ppbPublicKeyBlob: ptr ptr BYTE, pcbPublicKeyBlob: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameTokenFromAssemblyEx(self, pwzFilePath, ppbStrongNameToken, pcbStrongNameToken, ppbPublicKeyBlob, pcbPublicKeyBlob) -proc StrongNameTokenFromPublicKey*(self: ptr ICLRStrongName, pbPublicKeyBlob: ptr BYTE, cbPublicKeyBlob: ULONG, ppbStrongNameToken: ptr ptr BYTE, pcbStrongNameToken: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameTokenFromPublicKey(self, pbPublicKeyBlob, cbPublicKeyBlob, ppbStrongNameToken, pcbStrongNameToken) -proc StrongNameGetPublicKeyEx*(self: ptr ICLRStrongName2, pwzKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, ppbPublicKeyBlob: ptr ptr BYTE, pcbPublicKeyBlob: ptr ULONG, uHashAlgId: ULONG, uReserved: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameGetPublicKeyEx(self, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbPublicKeyBlob, pcbPublicKeyBlob, uHashAlgId, uReserved) -proc StrongNameSignatureVerificationEx2*(self: ptr ICLRStrongName2, wszFilePath: LPCWSTR, fForceVerification: BOOLEAN, pbEcmaPublicKey: ptr BYTE, cbEcmaPublicKey: DWORD, pfWasVerified: ptr BOOLEAN): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameSignatureVerificationEx2(self, wszFilePath, fForceVerification, pbEcmaPublicKey, cbEcmaPublicKey, pfWasVerified) -proc StrongNameDigestGenerate*(self: ptr ICLRStrongName3, wszFilePath: LPCWSTR, ppbDigestBlob: ptr ptr BYTE, pcbDigestBlob: ptr ULONG, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameDigestGenerate(self, wszFilePath, ppbDigestBlob, pcbDigestBlob, dwFlags) -proc StrongNameDigestSign*(self: ptr ICLRStrongName3, wszKeyContainer: LPCWSTR, pbKeyBlob: ptr BYTE, cbKeyBlob: ULONG, pbDigestBlob: ptr BYTE, cbDigestBlob: ULONG, hashAlgId: DWORD, ppbSignatureBlob: ptr ptr BYTE, pcbSignatureBlob: ptr ULONG, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameDigestSign(self, wszKeyContainer, pbKeyBlob, cbKeyBlob, pbDigestBlob, cbDigestBlob, hashAlgId, ppbSignatureBlob, pcbSignatureBlob, dwFlags) -proc StrongNameDigestEmbed*(self: ptr ICLRStrongName3, wszFilePath: LPCWSTR, pbSignatureBlob: ptr BYTE, cbSignatureBlob: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrongNameDigestEmbed(self, wszFilePath, pbSignatureBlob, cbSignatureBlob) -proc get_ToString*(self: ptr IObject, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToString(self, pRetVal) -proc Equals*(self: ptr IObject, obj: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals(self, obj, pRetVal) -proc GetHashCode*(self: ptr IObject, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashCode(self, pRetVal) -proc GetType*(self: ptr IObject, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pRetVal) -proc GetTypeInfoCount*(self: ptr IType, pcTInfo: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoCount(self, pcTInfo) -proc GetTypeInfo*(self: ptr IType, iTInfo: int32, lcid: int32, ppTInfo: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo) -proc GetIDsOfNames*(self: ptr IType, riid: ptr GUID, rgszNames: int32, cNames: int32, lcid: int32, rgDispId: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId) -proc Invoke*(self: ptr IType, dispIdMember: int32, riid: ptr GUID, lcid: int32, wFlags: int16, pDispParams: int32, pVarResult: int32, pExcepInfo: int32, puArgErr: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) -proc get_ToString*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToString(self, pRetVal) -proc Equals*(self: ptr IType, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals(self, other, pRetVal) -proc GetHashCode*(self: ptr IType, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashCode(self, pRetVal) -proc GetType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pRetVal) -proc get_MemberType*(self: ptr IType, pRetVal: ptr MemberTypes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_MemberType(self, pRetVal) -proc get_name*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, pRetVal) -proc get_DeclaringType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DeclaringType(self, pRetVal) -proc get_ReflectedType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReflectedType(self, pRetVal) -proc GetCustomAttributes*(self: ptr IType, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustomAttributes(self, attributeType, inherit, pRetVal) -proc GetCustomAttributes_2*(self: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustomAttributes_2(self, inherit, pRetVal) -proc IsDefined*(self: ptr IType, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDefined(self, attributeType, inherit, pRetVal) -proc get_Guid*(self: ptr IType, pRetVal: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Guid(self, pRetVal) -proc get_Module*(self: ptr IType, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Module(self, pRetVal) -proc getIAssembly*(self: ptr IType, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getIAssembly(self, pRetVal) -proc get_TypeHandle*(self: ptr IType, pRetVal: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TypeHandle(self, pRetVal) -proc get_FullName*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FullName(self, pRetVal) -proc get_Namespace*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Namespace(self, pRetVal) -proc get_AssemblyQualifiedName*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AssemblyQualifiedName(self, pRetVal) -proc GetArrayRank*(self: ptr IType, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetArrayRank(self, pRetVal) -proc get_BaseType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BaseType(self, pRetVal) -proc GetConstructors*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConstructors(self, bindingAttr, pRetVal) -proc GetInterface*(self: ptr IType, name: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterface(self, name, ignoreCase, pRetVal) -proc GetInterfaces*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterfaces(self, pRetVal) -proc FindInterfaces*(self: ptr IType, filter: POBJECT, filterCriteria: VARIANT, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindInterfaces(self, filter, filterCriteria, pRetVal) -proc GetEvent*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEvent(self, name, bindingAttr, pRetVal) -proc GetEvents*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEvents(self, pRetVal) -proc GetEvents_2*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEvents_2(self, bindingAttr, pRetVal) -proc GetNestedTypes*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNestedTypes(self, bindingAttr, pRetVal) -proc GetNestedType*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNestedType(self, name, bindingAttr, pRetVal) -proc GetMember*(self: ptr IType, name: BSTR, Type: MemberTypes, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMember(self, name, Type, bindingAttr, pRetVal) -proc GetDefaultMembers*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultMembers(self, pRetVal) -proc FindMembers*(self: ptr IType, MemberType: MemberTypes, bindingAttr: BindingFlags, filter: POBJECT, filterCriteria: VARIANT, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindMembers(self, MemberType, bindingAttr, filter, filterCriteria, pRetVal) -proc GetElementType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElementType(self, pRetVal) -proc IsSubclassOf*(self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSubclassOf(self, c, pRetVal) -proc IsInstanceOfType*(self: ptr IType, o: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsInstanceOfType(self, o, pRetVal) -proc IsAssignableFrom*(self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsAssignableFrom(self, c, pRetVal) -proc GetInterfaceMap*(self: ptr IType, interfaceType: ptr IType, pRetVal: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterfaceMap(self, interfaceType, pRetVal) -proc GetMethod*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, Binder: POBJECT, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethod(self, name, bindingAttr, Binder, types, modifiers, pRetVal) -proc GetMethod_2*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethod_2(self, name, bindingAttr, pRetVal) -proc GetMethods*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethods(self, bindingAttr, pRetVal) -proc GetField*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetField(self, name, bindingAttr, pRetVal) -proc GetFields*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFields(self, bindingAttr, pRetVal) -proc GetProperty*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, name, bindingAttr, pRetVal) -proc GetProperty_2*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, Binder: POBJECT, returnType: ptr IType, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty_2(self, name, bindingAttr, Binder, returnType, types, modifiers, pRetVal) -proc GetProperties*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperties(self, bindingAttr, pRetVal) -proc GetMember_2*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMember_2(self, name, bindingAttr, pRetVal) -proc GetMembers*(self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMembers(self, bindingAttr, pRetVal) -proc InvokeMember*(self: ptr IType, name: BSTR, invokeAttr: BindingFlags, Binder: POBJECT, Target: VARIANT, args: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, culture: POBJECT, namedParameters: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeMember(self, name, invokeAttr, Binder, Target, args, modifiers, culture, namedParameters, pRetVal) -proc get_UnderlyingSystemType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_UnderlyingSystemType(self, pRetVal) -proc InvokeMember_2*(self: ptr IType, name: BSTR, invokeAttr: BindingFlags, Binder: POBJECT, Target: VARIANT, args: ptr SAFEARRAY, culture: POBJECT, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeMember_2(self, name, invokeAttr, Binder, Target, args, culture, pRetVal) -proc InvokeMember_3*(self: ptr IType, name: BSTR, invokeAttr: BindingFlags, Binder: POBJECT, Target: VARIANT, args: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeMember_3(self, name, invokeAttr, Binder, Target, args, pRetVal) -proc GetConstructor*(self: ptr IType, bindingAttr: BindingFlags, Binder: POBJECT, callConvention: CallingConventions, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConstructor(self, bindingAttr, Binder, callConvention, types, modifiers, pRetVal) -proc GetConstructor_2*(self: ptr IType, bindingAttr: BindingFlags, Binder: POBJECT, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConstructor_2(self, bindingAttr, Binder, types, modifiers, pRetVal) -proc GetConstructor_3*(self: ptr IType, types: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConstructor_3(self, types, pRetVal) -proc GetConstructors_2*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConstructors_2(self, pRetVal) -proc get_TypeInitializer*(self: ptr IType, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TypeInitializer(self, pRetVal) -proc GetMethod_3*(self: ptr IType, name: BSTR, bindingAttr: BindingFlags, Binder: POBJECT, callConvention: CallingConventions, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethod_3(self, name, bindingAttr, Binder, callConvention, types, modifiers, pRetVal) -proc GetMethod_4*(self: ptr IType, name: BSTR, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethod_4(self, name, types, modifiers, pRetVal) -proc GetMethod_5*(self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethod_5(self, name, types, pRetVal) -proc GetMethod_6*(self: ptr IType, name: BSTR, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethod_6(self, name, pRetVal) -proc GetMethods_2*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethods_2(self, pRetVal) -proc GetField_2*(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetField_2(self, name, pRetVal) -proc GetFields_2*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFields_2(self, pRetVal) -proc GetInterface_2*(self: ptr IType, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterface_2(self, name, pRetVal) -proc GetEvent_2*(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEvent_2(self, name, pRetVal) -proc GetProperty_3*(self: ptr IType, name: BSTR, returnType: ptr IType, types: ptr SAFEARRAY, modifiers: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty_3(self, name, returnType, types, modifiers, pRetVal) -proc GetProperty_4*(self: ptr IType, name: BSTR, returnType: ptr IType, types: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty_4(self, name, returnType, types, pRetVal) -proc GetProperty_5*(self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty_5(self, name, types, pRetVal) -proc GetProperty_6*(self: ptr IType, name: BSTR, returnType: ptr IType, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty_6(self, name, returnType, pRetVal) -proc GetProperty_7*(self: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty_7(self, name, pRetVal) -proc GetProperties_2*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperties_2(self, pRetVal) -proc GetNestedTypes_2*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNestedTypes_2(self, pRetVal) -proc GetNestedType_2*(self: ptr IType, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNestedType_2(self, name, pRetVal) -proc GetMember_3*(self: ptr IType, name: BSTR, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMember_3(self, name, pRetVal) -proc GetMembers_2*(self: ptr IType, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMembers_2(self, pRetVal) -proc get_Attributes*(self: ptr IType, pRetVal: ptr TypeAttributes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Attributes(self, pRetVal) -proc get_IsNotPublic*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNotPublic(self, pRetVal) -proc get_IsPublic*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsPublic(self, pRetVal) -proc get_IsNestedPublic*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNestedPublic(self, pRetVal) -proc get_IsNestedPrivate*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNestedPrivate(self, pRetVal) -proc get_IsNestedFamily*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNestedFamily(self, pRetVal) -proc get_IsNestedAssembly*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNestedAssembly(self, pRetVal) -proc get_IsNestedFamANDAssem*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNestedFamANDAssem(self, pRetVal) -proc get_IsNestedFamORAssem*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsNestedFamORAssem(self, pRetVal) -proc get_IsAutoLayout*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsAutoLayout(self, pRetVal) -proc get_IsLayoutSequential*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsLayoutSequential(self, pRetVal) -proc get_IsExplicitLayout*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsExplicitLayout(self, pRetVal) -proc get_IsClass*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsClass(self, pRetVal) -proc get_IsInterface*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsInterface(self, pRetVal) -proc get_IsValueType*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsValueType(self, pRetVal) -proc get_IsAbstract*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsAbstract(self, pRetVal) -proc get_IsSealed*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsSealed(self, pRetVal) -proc get_IsEnum*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsEnum(self, pRetVal) -proc get_IsSpecialName*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsSpecialName(self, pRetVal) -proc get_IsImport*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsImport(self, pRetVal) -proc get_IsSerializable*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsSerializable(self, pRetVal) -proc get_IsAnsiClass*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsAnsiClass(self, pRetVal) -proc get_IsUnicodeClass*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsUnicodeClass(self, pRetVal) -proc get_IsAutoClass*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsAutoClass(self, pRetVal) -proc get_IsArray*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsArray(self, pRetVal) -proc get_IsByRef*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsByRef(self, pRetVal) -proc get_IsPointer*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsPointer(self, pRetVal) -proc get_IsPrimitive*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsPrimitive(self, pRetVal) -proc get_IsCOMObject*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsCOMObject(self, pRetVal) -proc get_HasElementType*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HasElementType(self, pRetVal) -proc get_IsContextful*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsContextful(self, pRetVal) -proc get_IsMarshalByRef*(self: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsMarshalByRef(self, pRetVal) -proc Equals_2*(self: ptr IType, o: ptr IType, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals_2(self, o, pRetVal) -proc get_ApplicationBase*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ApplicationBase(self, pRetVal) -proc put_ApplicationBase*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ApplicationBase(self, pRetVal) -proc get_ApplicationName*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ApplicationName(self, pRetVal) -proc put_ApplicationName*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ApplicationName(self, pRetVal) -proc get_CachePath*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachePath(self, pRetVal) -proc put_CachePath*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_CachePath(self, pRetVal) -proc get_ConfigurationFile*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ConfigurationFile(self, pRetVal) -proc put_ConfigurationFile*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ConfigurationFile(self, pRetVal) -proc get_DynamicBase*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DynamicBase(self, pRetVal) -proc put_DynamicBase*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_DynamicBase(self, pRetVal) -proc get_LicenseFile*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LicenseFile(self, pRetVal) -proc put_LicenseFile*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_LicenseFile(self, pRetVal) -proc get_PrivateBinPath*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_PrivateBinPath(self, pRetVal) -proc put_PrivateBinPath*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_PrivateBinPath(self, pRetVal) -proc get_PrivateBinPathProbe*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_PrivateBinPathProbe(self, pRetVal) -proc put_PrivateBinPathProbe*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_PrivateBinPathProbe(self, pRetVal) -proc get_ShadowCopyDirectories*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShadowCopyDirectories(self, pRetVal) -proc put_ShadowCopyDirectories*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ShadowCopyDirectories(self, pRetVal) -proc get_ShadowCopyFiles*(self: ptr IAppDomainSetup, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShadowCopyFiles(self, pRetVal) -proc put_ShadowCopyFiles*(self: ptr IAppDomainSetup, pRetVal: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ShadowCopyFiles(self, pRetVal) -proc get_ToString*(self: ptr ObjectHandle, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToString(self, pRetVal) -proc Equals*(self: ptr ObjectHandle, obj: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals(self, obj, pRetVal) -proc GetHashCode*(self: ptr ObjectHandle, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashCode(self, pRetVal) -proc GetType*(self: ptr ObjectHandle, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pRetVal) -proc GetLifetimeService*(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLifetimeService(self, pRetVal) -proc InitializeLifetimeService*(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeLifetimeService(self, pRetVal) -proc CreateObjRef*(self: ptr ObjectHandle, requestedType: ptr IType, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateObjRef(self, requestedType, pRetVal) -proc Unwrap*(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unwrap(self, pRetVal) -proc get_ToString*(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToString(self, pRetVal) -proc Equals*(self: ptr AppDomain, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals(self, other, pRetVal) -proc GetHashCode*(self: ptr AppDomain, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashCode(self, pRetVal) -proc GetType*(self: ptr AppDomain, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pRetVal) -proc InitializeLifetimeService*(self: ptr AppDomain, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeLifetimeService(self, pRetVal) -proc GetLifetimeService*(self: ptr AppDomain, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLifetimeService(self, pRetVal) -proc get_Evidence*(self: ptr AppDomain, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Evidence(self, pRetVal) -proc add_DomainUnload*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_DomainUnload(self, value) -proc remove_DomainUnload*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_DomainUnload(self, value) -proc add_AssemblyLoad*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_AssemblyLoad(self, value) -proc remove_AssemblyLoad*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_AssemblyLoad(self, value) -proc add_ProcessExit*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_ProcessExit(self, value) -proc remove_ProcessExit*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_ProcessExit(self, value) -proc add_TypeResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_TypeResolve(self, value) -proc remove_TypeResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_TypeResolve(self, value) -proc add_ResourceResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_ResourceResolve(self, value) -proc remove_ResourceResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_ResourceResolve(self, value) -proc add_AssemblyResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_AssemblyResolve(self, value) -proc remove_AssemblyResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_AssemblyResolve(self, value) -proc add_UnhandledException*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_UnhandledException(self, value) -proc remove_UnhandledException*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_UnhandledException(self, value) -proc DefineDynamicAssembly*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly(self, name, access, pRetVal) -proc DefineDynamicAssembly_2*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_2(self, name, access, dir, pRetVal) -proc DefineDynamicAssembly_3*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, Evidence: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_3(self, name, access, Evidence, pRetVal) -proc DefineDynamicAssembly_4*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_4(self, name, access, requiredPermissions, optionalPermissions, refusedPermissions, pRetVal) -proc DefineDynamicAssembly_5*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, Evidence: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_5(self, name, access, dir, Evidence, pRetVal) -proc DefineDynamicAssembly_6*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_6(self, name, access, dir, requiredPermissions, optionalPermissions, refusedPermissions, pRetVal) -proc DefineDynamicAssembly_7*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, Evidence: POBJECT, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_7(self, name, access, Evidence, requiredPermissions, optionalPermissions, refusedPermissions, pRetVal) -proc DefineDynamicAssembly_8*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, Evidence: POBJECT, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_8(self, name, access, dir, Evidence, requiredPermissions, optionalPermissions, refusedPermissions, pRetVal) -proc DefineDynamicAssembly_9*(self: ptr AppDomain, name: POBJECT, access: AssemblyBuilderAccess, dir: BSTR, Evidence: POBJECT, requiredPermissions: POBJECT, optionalPermissions: POBJECT, refusedPermissions: POBJECT, IsSynchronized: VARIANT_BOOL, pRetVal: ptr ptr AssemblyBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineDynamicAssembly_9(self, name, access, dir, Evidence, requiredPermissions, optionalPermissions, refusedPermissions, IsSynchronized, pRetVal) -proc CreateInstance*(self: ptr AppDomain, AssemblyName: BSTR, typeName: BSTR, pRetVal: ptr ptr ObjectHandle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, AssemblyName, typeName, pRetVal) -proc CreateInstanceFrom*(self: ptr AppDomain, assemblyFile: BSTR, typeName: BSTR, pRetVal: ptr ptr ObjectHandle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstanceFrom(self, assemblyFile, typeName, pRetVal) -proc CreateInstance_2*(self: ptr AppDomain, AssemblyName: BSTR, typeName: BSTR, activationAttributes: ptr SAFEARRAY, pRetVal: ptr ptr ObjectHandle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance_2(self, AssemblyName, typeName, activationAttributes, pRetVal) -proc CreateInstanceFrom_2*(self: ptr AppDomain, assemblyFile: BSTR, typeName: BSTR, activationAttributes: ptr SAFEARRAY, pRetVal: ptr ptr ObjectHandle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstanceFrom_2(self, assemblyFile, typeName, activationAttributes, pRetVal) -proc CreateInstance_3*(self: ptr AppDomain, AssemblyName: BSTR, typeName: BSTR, ignoreCase: VARIANT_BOOL, bindingAttr: BindingFlags, Binder: POBJECT, args: ptr SAFEARRAY, culture: POBJECT, activationAttributes: ptr SAFEARRAY, securityAttributes: POBJECT, pRetVal: ptr ptr ObjectHandle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance_3(self, AssemblyName, typeName, ignoreCase, bindingAttr, Binder, args, culture, activationAttributes, securityAttributes, pRetVal) -proc CreateInstanceFrom_3*(self: ptr AppDomain, assemblyFile: BSTR, typeName: BSTR, ignoreCase: VARIANT_BOOL, bindingAttr: BindingFlags, Binder: POBJECT, args: ptr SAFEARRAY, culture: POBJECT, activationAttributes: ptr SAFEARRAY, securityAttributes: POBJECT, pRetVal: ptr ptr ObjectHandle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstanceFrom_3(self, assemblyFile, typeName, ignoreCase, bindingAttr, Binder, args, culture, activationAttributes, securityAttributes, pRetVal) -proc Load*(self: ptr AppDomain, assemblyRef: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, assemblyRef, pRetVal) -proc Load_2*(self: ptr AppDomain, assemblyString: BSTR, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load_2(self, assemblyString, pRetVal) -proc Load_3*(self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load_3(self, rawAssembly, pRetVal) -proc Load_4*(self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, rawSymbolStore: ptr SAFEARRAY, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load_4(self, rawAssembly, rawSymbolStore, pRetVal) -proc Load_5*(self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, rawSymbolStore: ptr SAFEARRAY, securityEvidence: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load_5(self, rawAssembly, rawSymbolStore, securityEvidence, pRetVal) -proc Load_6*(self: ptr AppDomain, assemblyRef: POBJECT, assemblySecurity: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load_6(self, assemblyRef, assemblySecurity, pRetVal) -proc Load_7*(self: ptr AppDomain, assemblyString: BSTR, assemblySecurity: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load_7(self, assemblyString, assemblySecurity, pRetVal) -proc ExecuteAssembly*(self: ptr AppDomain, assemblyFile: BSTR, assemblySecurity: POBJECT, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecuteAssembly(self, assemblyFile, assemblySecurity, pRetVal) -proc ExecuteAssembly_2*(self: ptr AppDomain, assemblyFile: BSTR, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecuteAssembly_2(self, assemblyFile, pRetVal) -proc ExecuteAssembly_3*(self: ptr AppDomain, assemblyFile: BSTR, assemblySecurity: POBJECT, args: ptr SAFEARRAY, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecuteAssembly_3(self, assemblyFile, assemblySecurity, args, pRetVal) -proc get_FriendlyName*(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FriendlyName(self, pRetVal) -proc get_BaseDirectory*(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BaseDirectory(self, pRetVal) -proc get_RelativeSearchPath*(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RelativeSearchPath(self, pRetVal) -proc get_ShadowCopyFiles*(self: ptr AppDomain, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShadowCopyFiles(self, pRetVal) -proc GetAssemblies*(self: ptr AppDomain, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAssemblies(self, pRetVal) -proc AppendPrivatePath*(self: ptr AppDomain, Path: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AppendPrivatePath(self, Path) -proc ClearPrivatePath*(self: ptr AppDomain): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearPrivatePath(self) -proc SetShadowCopyPath*(self: ptr AppDomain, s: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetShadowCopyPath(self, s) -proc ClearShadowCopyPath*(self: ptr AppDomain): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearShadowCopyPath(self) -proc SetCachePath*(self: ptr AppDomain, s: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCachePath(self, s) -proc SetData*(self: ptr AppDomain, name: BSTR, data: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetData(self, name, data) -proc GetData*(self: ptr AppDomain, name: BSTR, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetData(self, name, pRetVal) -proc SetAppDomainPolicy*(self: ptr AppDomain, domainPolicy: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppDomainPolicy(self, domainPolicy) -proc SetThreadPrincipal*(self: ptr AppDomain, principal: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThreadPrincipal(self, principal) -proc SetPrincipalPolicy*(self: ptr AppDomain, policy: PrincipalPolicy): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPrincipalPolicy(self, policy) -proc DoCallBack*(self: ptr AppDomain, theDelegate: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoCallBack(self, theDelegate) -proc get_DynamicDirectory*(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DynamicDirectory(self, pRetVal) -proc get_ToString*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToString(self, pRetVal) -proc Equals*(self: ptr IAssembly, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals(self, other, pRetVal) -proc GetHashCode*(self: ptr IAssembly, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashCode(self, pRetVal) -proc GetType*(self: ptr IAssembly, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pRetVal) -proc get_CodeBase*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CodeBase(self, pRetVal) -proc get_EscapedCodeBase*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_EscapedCodeBase(self, pRetVal) -proc GetName*(self: ptr IAssembly, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName(self, pRetVal) -proc GetName_2*(self: ptr IAssembly, copiedName: VARIANT_BOOL, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName_2(self, copiedName, pRetVal) -proc get_FullName*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FullName(self, pRetVal) -proc get_EntryPoint*(self: ptr IAssembly, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_EntryPoint(self, pRetVal) -proc GetType_2*(self: ptr IAssembly, name: BSTR, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType_2(self, name, pRetVal) -proc GetType_3*(self: ptr IAssembly, name: BSTR, throwOnError: VARIANT_BOOL, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType_3(self, name, throwOnError, pRetVal) -proc GetExportedTypes*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExportedTypes(self, pRetVal) -proc GetTypes*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypes(self, pRetVal) -proc GetManifestResourceStream*(self: ptr IAssembly, Type: ptr IType, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetManifestResourceStream(self, Type, name, pRetVal) -proc GetManifestResourceStream_2*(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetManifestResourceStream_2(self, name, pRetVal) -proc GetFile*(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFile(self, name, pRetVal) -proc GetFiles*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFiles(self, pRetVal) -proc GetFiles_2*(self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFiles_2(self, getResourceModules, pRetVal) -proc GetManifestResourceNames*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetManifestResourceNames(self, pRetVal) -proc GetManifestResourceInfo*(self: ptr IAssembly, resourceName: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetManifestResourceInfo(self, resourceName, pRetVal) -proc get_Location*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Location(self, pRetVal) -proc get_Evidence*(self: ptr IAssembly, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Evidence(self, pRetVal) -proc GetCustomAttributes*(self: ptr IAssembly, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustomAttributes(self, attributeType, inherit, pRetVal) -proc GetCustomAttributes_2*(self: ptr IAssembly, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustomAttributes_2(self, inherit, pRetVal) -proc IsDefined*(self: ptr IAssembly, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDefined(self, attributeType, inherit, pRetVal) -proc GetObjectData*(self: ptr IAssembly, info: POBJECT, Context: StreamingContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectData(self, info, Context) -proc add_ModuleResolve*(self: ptr IAssembly, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add_ModuleResolve(self, value) -proc remove_ModuleResolve*(self: ptr IAssembly, value: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove_ModuleResolve(self, value) -proc GetType_4*(self: ptr IAssembly, name: BSTR, throwOnError: VARIANT_BOOL, ignoreCase: VARIANT_BOOL, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType_4(self, name, throwOnError, ignoreCase, pRetVal) -proc GetSatelliteAssembly*(self: ptr IAssembly, culture: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSatelliteAssembly(self, culture, pRetVal) -proc GetSatelliteAssembly_2*(self: ptr IAssembly, culture: POBJECT, Version: POBJECT, pRetVal: ptr ptr IAssembly): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSatelliteAssembly_2(self, culture, Version, pRetVal) -proc LoadModule*(self: ptr IAssembly, moduleName: BSTR, rawModule: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadModule(self, moduleName, rawModule, pRetVal) -proc LoadModule_2*(self: ptr IAssembly, moduleName: BSTR, rawModule: ptr SAFEARRAY, rawSymbolStore: ptr SAFEARRAY, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadModule_2(self, moduleName, rawModule, rawSymbolStore, pRetVal) -proc CreateInstance*(self: ptr IAssembly, typeName: BSTR, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, typeName, pRetVal) -proc CreateInstance_2*(self: ptr IAssembly, typeName: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance_2(self, typeName, ignoreCase, pRetVal) -proc CreateInstance_3*(self: ptr IAssembly, typeName: BSTR, ignoreCase: VARIANT_BOOL, bindingAttr: BindingFlags, Binder: POBJECT, args: ptr SAFEARRAY, culture: POBJECT, activationAttributes: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance_3(self, typeName, ignoreCase, bindingAttr, Binder, args, culture, activationAttributes, pRetVal) -proc GetLoadedModules*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLoadedModules(self, pRetVal) -proc GetLoadedModules_2*(self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLoadedModules_2(self, getResourceModules, pRetVal) -proc GetModules*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetModules(self, pRetVal) -proc GetModules_2*(self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetModules_2(self, getResourceModules, pRetVal) -proc GetModule*(self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetModule(self, name, pRetVal) -proc GetReferencedAssemblies*(self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetReferencedAssemblies(self, pRetVal) -proc get_GlobalAssemblyCache*(self: ptr IAssembly, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_GlobalAssemblyCache(self, pRetVal) -proc GetTypeInfoCount*(self: ptr IMethodInfo, pcTInfo: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoCount(self, pcTInfo) -proc GetTypeInfo*(self: ptr IMethodInfo, iTInfo: int32, lcid: int32, ppTInfo: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo) -proc GetIDsOfNames*(self: ptr IMethodInfo, riid: ptr GUID, rgszNames: int32, cNames: int32, lcid: int32, rgDispId: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId) -proc Invoke*(self: ptr IMethodInfo, dispIdMember: int32, riid: ptr GUID, lcid: int32, wFlags: int16, pDispParams: int32, pVarResult: int32, pExcepInfo: int32, puArgErr: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) -proc get_ToString*(self: ptr IMethodInfo, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToString(self, pRetVal) -proc Equals*(self: ptr IMethodInfo, other: VARIANT, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Equals(self, other, pRetVal) -proc GetHashCode*(self: ptr IMethodInfo, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHashCode(self, pRetVal) -proc GetType*(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pRetVal) -proc get_MemberType*(self: ptr IMethodInfo, pRetVal: ptr MemberTypes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_MemberType(self, pRetVal) -proc get_name*(self: ptr IMethodInfo, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, pRetVal) -proc get_DeclaringType*(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DeclaringType(self, pRetVal) -proc get_ReflectedType*(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReflectedType(self, pRetVal) -proc GetCustomAttributes*(self: ptr IMethodInfo, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustomAttributes(self, attributeType, inherit, pRetVal) -proc GetCustomAttributes_2*(self: ptr IMethodInfo, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustomAttributes_2(self, inherit, pRetVal) -proc IsDefined*(self: ptr IMethodInfo, attributeType: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDefined(self, attributeType, inherit, pRetVal) -proc GetParameters*(self: ptr IMethodInfo, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParameters(self, pRetVal) -proc GetMethodImplementationFlags*(self: ptr IMethodInfo, pRetVal: ptr MethodImplAttributes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMethodImplementationFlags(self, pRetVal) -proc get_MethodHandle*(self: ptr IMethodInfo, pRetVal: POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_MethodHandle(self, pRetVal) -proc get_Attributes*(self: ptr IMethodInfo, pRetVal: ptr MethodAttributes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Attributes(self, pRetVal) -proc get_CallingConvention*(self: ptr IMethodInfo, pRetVal: ptr CallingConventions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CallingConvention(self, pRetVal) -proc Invoke_2*(self: ptr IMethodInfo, obj: VARIANT, invokeAttr: BindingFlags, Binder: POBJECT, parameters: ptr SAFEARRAY, culture: POBJECT, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke_2(self, obj, invokeAttr, Binder, parameters, culture, pRetVal) -proc get_IsPublic*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsPublic(self, pRetVal) -proc get_IsPrivate*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsPrivate(self, pRetVal) -proc get_IsFamily*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsFamily(self, pRetVal) -proc get_IsAssembly*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsAssembly(self, pRetVal) -proc get_IsFamilyAndAssembly*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsFamilyAndAssembly(self, pRetVal) -proc get_IsFamilyOrAssembly*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsFamilyOrAssembly(self, pRetVal) -proc get_IsStatic*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsStatic(self, pRetVal) -proc get_IsFinal*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsFinal(self, pRetVal) -proc get_IsVirtual*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsVirtual(self, pRetVal) -proc get_IsHideBySig*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsHideBySig(self, pRetVal) -proc get_IsAbstract*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsAbstract(self, pRetVal) -proc get_IsSpecialName*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsSpecialName(self, pRetVal) -proc get_IsConstructor*(self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsConstructor(self, pRetVal) -proc Invoke_3*(self: ptr IMethodInfo, obj: VARIANT, parameters: ptr SAFEARRAY, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke_3(self, obj, parameters, pRetVal) -proc get_returnType*(self: ptr IMethodInfo, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_returnType(self, pRetVal) -proc get_ReturnTypeCustomAttributes*(self: ptr IMethodInfo, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReturnTypeCustomAttributes(self, pRetVal) -proc GetBaseDefinition*(self: ptr IMethodInfo, pRetVal: ptr ptr IMethodInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBaseDefinition(self, pRetVal) -converter winimConverterIGCHostToIUnknown*(x: ptr IGCHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGCHost2ToIGCHost*(x: ptr IGCHost2): ptr IGCHost = cast[ptr IGCHost](x) -converter winimConverterIGCHost2ToIUnknown*(x: ptr IGCHost2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIVEHandlerToIUnknown*(x: ptr IVEHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIValidatorToIUnknown*(x: ptr IValidator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRValidatorToIUnknown*(x: ptr ICLRValidator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectHandleToIUnknown*(x: ptr IObjectHandle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAppDomainBindingToIUnknown*(x: ptr IAppDomainBinding): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGCThreadControlToIUnknown*(x: ptr IGCThreadControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGCHostControlToIUnknown*(x: ptr IGCHostControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICorThreadpoolToIUnknown*(x: ptr ICorThreadpool): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDebuggerThreadControlToIUnknown*(x: ptr IDebuggerThreadControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDebuggerInfoToIUnknown*(x: ptr IDebuggerInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICorConfigurationToIUnknown*(x: ptr ICorConfiguration): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICorRuntimeHostToIUnknown*(x: ptr ICorRuntimeHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRMemoryNotificationCallbackToIUnknown*(x: ptr ICLRMemoryNotificationCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostMallocToIUnknown*(x: ptr IHostMalloc): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostMemoryManagerToIUnknown*(x: ptr IHostMemoryManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRTaskToIUnknown*(x: ptr ICLRTask): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRTask2ToICLRTask*(x: ptr ICLRTask2): ptr ICLRTask = cast[ptr ICLRTask](x) -converter winimConverterICLRTask2ToIUnknown*(x: ptr ICLRTask2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostTaskToIUnknown*(x: ptr IHostTask): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRTaskManagerToIUnknown*(x: ptr ICLRTaskManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostTaskManagerToIUnknown*(x: ptr IHostTaskManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostThreadpoolManagerToIUnknown*(x: ptr IHostThreadpoolManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRIoCompletionManagerToIUnknown*(x: ptr ICLRIoCompletionManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostIoCompletionManagerToIUnknown*(x: ptr IHostIoCompletionManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRDebugManagerToIUnknown*(x: ptr ICLRDebugManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRErrorReportingManagerToIUnknown*(x: ptr ICLRErrorReportingManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostCrstToIUnknown*(x: ptr IHostCrst): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostAutoEventToIUnknown*(x: ptr IHostAutoEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostManualEventToIUnknown*(x: ptr IHostManualEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostSemaphoreToIUnknown*(x: ptr IHostSemaphore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRSyncManagerToIUnknown*(x: ptr ICLRSyncManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostSyncManagerToIUnknown*(x: ptr IHostSyncManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRPolicyManagerToIUnknown*(x: ptr ICLRPolicyManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostPolicyManagerToIUnknown*(x: ptr IHostPolicyManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActionOnCLREventToIUnknown*(x: ptr IActionOnCLREvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLROnEventManagerToIUnknown*(x: ptr ICLROnEventManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostGCManagerToIUnknown*(x: ptr IHostGCManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRAssemblyReferenceListToIUnknown*(x: ptr ICLRAssemblyReferenceList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRReferenceAssemblyEnumToIUnknown*(x: ptr ICLRReferenceAssemblyEnum): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRProbingAssemblyEnumToIUnknown*(x: ptr ICLRProbingAssemblyEnum): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRAssemblyIdentityManagerToIUnknown*(x: ptr ICLRAssemblyIdentityManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRHostBindingPolicyManagerToIUnknown*(x: ptr ICLRHostBindingPolicyManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRGCManagerToIUnknown*(x: ptr ICLRGCManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRGCManager2ToICLRGCManager*(x: ptr ICLRGCManager2): ptr ICLRGCManager = cast[ptr ICLRGCManager](x) -converter winimConverterICLRGCManager2ToIUnknown*(x: ptr ICLRGCManager2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostAssemblyStoreToIUnknown*(x: ptr IHostAssemblyStore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostAssemblyManagerToIUnknown*(x: ptr IHostAssemblyManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostControlToIUnknown*(x: ptr IHostControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRControlToIUnknown*(x: ptr ICLRControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRRuntimeHostToIUnknown*(x: ptr ICLRRuntimeHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRHostProtectionManagerToIUnknown*(x: ptr ICLRHostProtectionManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRDomainManagerToIUnknown*(x: ptr ICLRDomainManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeNameToIUnknown*(x: ptr ITypeName): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeNameBuilderToIUnknown*(x: ptr ITypeNameBuilder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeNameFactoryToIUnknown*(x: ptr ITypeNameFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApartmentCallbackToIUnknown*(x: ptr IApartmentCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIManagedObjectToIUnknown*(x: ptr IManagedObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICatalogServicesToIUnknown*(x: ptr ICatalogServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostSecurityContextToIUnknown*(x: ptr IHostSecurityContext): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostSecurityManagerToIUnknown*(x: ptr IHostSecurityManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRAppDomainResourceMonitorToIUnknown*(x: ptr ICLRAppDomainResourceMonitor): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRMetaHostToIUnknown*(x: ptr ICLRMetaHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRMetaHostPolicyToIUnknown*(x: ptr ICLRMetaHostPolicy): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRProfilingToIUnknown*(x: ptr ICLRProfiling): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRDebuggingLibraryProviderToIUnknown*(x: ptr ICLRDebuggingLibraryProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRDebuggingToIUnknown*(x: ptr ICLRDebugging): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRRuntimeInfoToIUnknown*(x: ptr ICLRRuntimeInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRStrongNameToIUnknown*(x: ptr ICLRStrongName): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRStrongName2ToIUnknown*(x: ptr ICLRStrongName2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICLRStrongName3ToIUnknown*(x: ptr ICLRStrongName3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectToIDispatch*(x: ptr IObject): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIObjectToIUnknown*(x: ptr IObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeToIUnknown*(x: ptr IType): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAppDomainSetupToIUnknown*(x: ptr IAppDomainSetup): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterObjectHandleToIDispatch*(x: ptr ObjectHandle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterObjectHandleToIUnknown*(x: ptr ObjectHandle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterAppDomainToIDispatch*(x: ptr AppDomain): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterAppDomainToIUnknown*(x: ptr AppDomain): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAssemblyToIDispatch*(x: ptr IAssembly): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIAssemblyToIUnknown*(x: ptr IAssembly): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMethodInfoToIUnknown*(x: ptr IMethodInfo): ptr IUnknown = cast[ptr IUnknown](x) + get_DynamicDirectory*: + proc(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.stdcall.} + +proc GetCORSystemDirectory*( + pbuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetCORVersion*( + pbBuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetFileVersion*( + szFilename: LPCWSTR, szBuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetCORRequiredVersion*( + pbuffer: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetRequestedRuntimeInfo*( + pExe: LPCWSTR, + pwszVersion: LPCWSTR, + pConfigurationFile: LPCWSTR, + startupFlags: DWORD, + runtimeInfoFlags: DWORD, + pDirectory: LPWSTR, + dwDirectory: DWORD, + dwDirectoryLength: ptr DWORD, + pVersion: LPWSTR, + cchBuffer: DWORD, + dwlength: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetRequestedRuntimeVersion*( + pExe: LPWSTR, pVersion: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CorBindToRuntimeHost*( + pwszVersion: LPCWSTR, + pwszBuildFlavor: LPCWSTR, + pwszHostConfigFile: LPCWSTR, + pReserved: pointer, + startupFlags: DWORD, + rclsid: REFCLSID, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CorBindToRuntimeEx*( + pwszVersion: LPCWSTR, + pwszBuildFlavor: LPCWSTR, + startupFlags: DWORD, + rclsid: REFCLSID, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CorBindToRuntimeByCfg*( + pCfgStream: ptr IStream, + reserved: DWORD, + startupFlags: DWORD, + rclsid: REFCLSID, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CorBindToRuntime*( + pwszVersion: LPCWSTR, + pwszBuildFlavor: LPCWSTR, + rclsid: REFCLSID, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CorBindToCurrentRuntime*( + pwszFileName: LPCWSTR, rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc ClrCreateManagedInstance*( + pTypeName: LPCWSTR, riid: REFIID, ppObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc RunDll32ShimW*( + hwnd: HWND, hinst: HINSTANCE, lpszCmdLine: LPCWSTR, nCmdShow: int32 +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc LoadLibraryShim*( + szDllName: LPCWSTR, szVersion: LPCWSTR, pvReserved: LPVOID, phModDll: ptr HMODULE +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CallFunctionShim*( + szDllName: LPCWSTR, + szFunctionName: LPCSTR, + lpvArgument1: LPVOID, + lpvArgument2: LPVOID, + szVersion: LPCWSTR, + pvReserved: LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetRealProcAddress*( + pwszProcName: LPCSTR, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc LoadStringRC*( + iResouceID: UINT, szBuffer: LPWSTR, iMax: int32, bQuiet: int32 +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc LoadStringRCEx*( + lcid: LCID, + iResouceID: UINT, + szBuffer: LPWSTR, + iMax: int32, + bQuiet: int32, + pcwchUsed: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc LockClrVersion*( + hostCallback: FLockClrVersionCallback, + pBeginHostSetup: ptr FLockClrVersionCallback, + pEndHostSetup: ptr FLockClrVersionCallback, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CreateDebuggingInterfaceFromVersion*( + iDebuggerVersion: int32, szDebuggeeVersion: LPCWSTR, ppCordb: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetVersionFromProcess*( + hProcess: HANDLE, pVersion: LPWSTR, cchBuffer: DWORD, dwLength: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc GetRequestedRuntimeVersionForCLSID*( + rclsid: REFCLSID, + pVersion: LPWSTR, + cchBuffer: DWORD, + dwLength: ptr DWORD, + dwResolutionFlags: CLSID_RESOLUTION_FLAGS, +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc CLRCreateInstance*( + clsid: REFCLSID, riid: REFIID, ppInterface: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "mscoree", importc.} + +proc `pReserved=`*(self: var CustomDumpItem, x: UINT_PTR) {.inline.} = + self.union1.pReserved = x + +proc pReserved*(self: CustomDumpItem): UINT_PTR {.inline.} = + self.union1.pReserved + +proc pReserved*(self: var CustomDumpItem): var UINT_PTR {.inline.} = + self.union1.pReserved + +proc SetGCStartupLimits*( + self: ptr IGCHost, SegmentSize: DWORD, MaxGen0Size: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGCStartupLimits(self, SegmentSize, MaxGen0Size) + +proc Collect*(self: ptr IGCHost, Generation: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Collect(self, Generation) + +proc GetStats*( + self: ptr IGCHost, pStats: ptr COR_GC_STATS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStats(self, pStats) + +proc GetThreadStats*( + self: ptr IGCHost, pFiberCookie: ptr DWORD, pStats: ptr COR_GC_THREAD_STATS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetThreadStats(self, pFiberCookie, pStats) + +proc SetVirtualMemLimit*( + self: ptr IGCHost, sztMaxVirtualMemMB: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVirtualMemLimit(self, sztMaxVirtualMemMB) + +proc SetGCStartupLimitsEx*( + self: ptr IGCHost2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGCStartupLimitsEx(self, SegmentSize, MaxGen0Size) + +proc VEHandler*( + self: ptr IVEHandler, VECode: HRESULT, Context: VEContext, psa: ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.VEHandler(self, VECode, Context, psa) + +proc SetReporterFtn*(self: ptr IVEHandler, lFnPtr: int64): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetReporterFtn(self, lFnPtr) + +proc Validate*( + self: ptr IValidator, + veh: ptr IVEHandler, + pAppDomain: ptr IUnknown, + ulFlags: int32, + ulMaxError: int32, + token: int32, + fileName: LPWSTR, + pe: ptr BYTE, + ulSize: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Validate( + self, veh, pAppDomain, ulFlags, ulMaxError, token, fileName, pe, ulSize + ) + +proc FormatEventInfo*( + self: ptr IValidator, + hVECode: HRESULT, + Context: VEContext, + msg: LPWSTR, + ulMaxLength: int32, + psa: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FormatEventInfo(self, hVECode, Context, msg, ulMaxLength, psa) + +proc Validate*( + self: ptr ICLRValidator, + veh: ptr IVEHandler, + ulAppDomainId: int32, + ulFlags: int32, + ulMaxError: int32, + token: int32, + fileName: LPWSTR, + pe: ptr BYTE, + ulSize: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Validate( + self, veh, ulAppDomainId, ulFlags, ulMaxError, token, fileName, pe, ulSize + ) + +proc FormatEventInfo*( + self: ptr ICLRValidator, + hVECode: HRESULT, + Context: VEContext, + msg: LPWSTR, + ulMaxLength: int32, + psa: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FormatEventInfo(self, hVECode, Context, msg, ulMaxLength, psa) + +proc Unwrap*(self: ptr IObjectHandle, ppv: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unwrap(self, ppv) + +proc OnAppDomain*( + self: ptr IAppDomainBinding, pAppdomain: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnAppDomain(self, pAppdomain) + +proc ThreadIsBlockingForSuspension*( + self: ptr IGCThreadControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ThreadIsBlockingForSuspension(self) + +proc SuspensionStarting*(self: ptr IGCThreadControl): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SuspensionStarting(self) + +proc SuspensionEnding*( + self: ptr IGCThreadControl, Generation: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SuspensionEnding(self, Generation) + +proc RequestVirtualMemLimit*( + self: ptr IGCHostControl, + sztMaxVirtualMemMB: SIZE_T, + psztNewMaxVirtualMemMB: ptr SIZE_T, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestVirtualMemLimit(self, sztMaxVirtualMemMB, psztNewMaxVirtualMemMB) + +proc CorRegisterWaitForSingleObject*( + self: ptr ICorThreadpool, + phNewWaitObject: ptr HANDLE, + hWaitObject: HANDLE, + Callback: WAITORTIMERCALLBACK, + Context: PVOID, + timeout: ULONG, + executeOnlyOnce: BOOL, + ret: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorRegisterWaitForSingleObject( + self, phNewWaitObject, hWaitObject, Callback, Context, timeout, executeOnlyOnce, + ret, + ) + +proc CorUnregisterWait*( + self: ptr ICorThreadpool, + hWaitObject: HANDLE, + CompletionEvent: HANDLE, + ret: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorUnregisterWait(self, hWaitObject, CompletionEvent, ret) + +proc CorQueueUserWorkItem*( + self: ptr ICorThreadpool, + Function: LPTHREAD_START_ROUTINE, + Context: PVOID, + executeOnlyOnce: BOOL, + ret: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorQueueUserWorkItem(self, Function, Context, executeOnlyOnce, ret) + +proc CorCreateTimer*( + self: ptr ICorThreadpool, + phNewTimer: ptr HANDLE, + Callback: WAITORTIMERCALLBACK, + Parameter: PVOID, + DueTime: DWORD, + Period: DWORD, + ret: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorCreateTimer( + self, phNewTimer, Callback, Parameter, DueTime, Period, ret + ) + +proc CorChangeTimer*( + self: ptr ICorThreadpool, + Timer: HANDLE, + DueTime: ULONG, + Period: ULONG, + ret: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorChangeTimer(self, Timer, DueTime, Period, ret) + +proc CorDeleteTimer*( + self: ptr ICorThreadpool, Timer: HANDLE, CompletionEvent: HANDLE, ret: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorDeleteTimer(self, Timer, CompletionEvent, ret) + +proc CorBindIoCompletionCallback*( + self: ptr ICorThreadpool, + fileHandle: HANDLE, + callback: LPOVERLAPPED_COMPLETION_ROUTINE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorBindIoCompletionCallback(self, fileHandle, callback) + +proc CorCallOrQueueUserWorkItem*( + self: ptr ICorThreadpool, + Function: LPTHREAD_START_ROUTINE, + Context: PVOID, + ret: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorCallOrQueueUserWorkItem(self, Function, Context, ret) + +proc CorSetMaxThreads*( + self: ptr ICorThreadpool, MaxWorkerThreads: DWORD, MaxIOCompletionThreads: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorSetMaxThreads(self, MaxWorkerThreads, MaxIOCompletionThreads) + +proc CorGetMaxThreads*( + self: ptr ICorThreadpool, + MaxWorkerThreads: ptr DWORD, + MaxIOCompletionThreads: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorGetMaxThreads(self, MaxWorkerThreads, MaxIOCompletionThreads) + +proc CorGetAvailableThreads*( + self: ptr ICorThreadpool, + AvailableWorkerThreads: ptr DWORD, + AvailableIOCompletionThreads: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CorGetAvailableThreads( + self, AvailableWorkerThreads, AvailableIOCompletionThreads + ) + +proc ThreadIsBlockingForDebugger*( + self: ptr IDebuggerThreadControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ThreadIsBlockingForDebugger(self) + +proc ReleaseAllRuntimeThreads*( + self: ptr IDebuggerThreadControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseAllRuntimeThreads(self) + +proc StartBlockingForDebugger*( + self: ptr IDebuggerThreadControl, dwUnused: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartBlockingForDebugger(self, dwUnused) + +proc IsDebuggerAttached*( + self: ptr IDebuggerInfo, pbAttached: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDebuggerAttached(self, pbAttached) + +proc SetGCThreadControl*( + self: ptr ICorConfiguration, pGCThreadControl: ptr IGCThreadControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGCThreadControl(self, pGCThreadControl) + +proc SetGCHostControl*( + self: ptr ICorConfiguration, pGCHostControl: ptr IGCHostControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGCHostControl(self, pGCHostControl) + +proc SetDebuggerThreadControl*( + self: ptr ICorConfiguration, pDebuggerThreadControl: ptr IDebuggerThreadControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDebuggerThreadControl(self, pDebuggerThreadControl) + +proc AddDebuggerSpecialThread*( + self: ptr ICorConfiguration, dwSpecialThreadId: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddDebuggerSpecialThread(self, dwSpecialThreadId) + +proc CreateLogicalThreadState*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateLogicalThreadState(self) + +proc DeleteLogicalThreadState*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteLogicalThreadState(self) + +proc SwitchInLogicalThreadState*( + self: ptr ICorRuntimeHost, pFiberCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchInLogicalThreadState(self, pFiberCookie) + +proc SwitchOutLogicalThreadState*( + self: ptr ICorRuntimeHost, pFiberCookie: ptr ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchOutLogicalThreadState(self, pFiberCookie) + +proc LocksHeldByLogicalThread*( + self: ptr ICorRuntimeHost, pCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LocksHeldByLogicalThread(self, pCount) + +proc MapFile*( + self: ptr ICorRuntimeHost, hFile: HANDLE, hMapAddress: ptr HMODULE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapFile(self, hFile, hMapAddress) + +proc GetConfiguration*( + self: ptr ICorRuntimeHost, pConfiguration: ptr ptr ICorConfiguration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConfiguration(self, pConfiguration) + +proc Start*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Start(self) + +proc Stop*(self: ptr ICorRuntimeHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stop(self) + +proc CreateDomain*( + self: ptr ICorRuntimeHost, + pwzFriendlyName: LPCWSTR, + pIdentityArray: ptr IUnknown, + pAppDomain: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDomain(self, pwzFriendlyName, pIdentityArray, pAppDomain) + +proc GetDefaultDomain*( + self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultDomain(self, pAppDomain) + +proc EnumDomains*( + self: ptr ICorRuntimeHost, hEnum: ptr HDOMAINENUM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumDomains(self, hEnum) + +proc NextDomain*( + self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM, pAppDomain: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NextDomain(self, hEnum, pAppDomain) + +proc CloseEnum*( + self: ptr ICorRuntimeHost, hEnum: HDOMAINENUM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseEnum(self, hEnum) + +proc CreateDomainEx*( + self: ptr ICorRuntimeHost, + pwzFriendlyName: LPCWSTR, + pSetup: ptr IUnknown, + pEvidence: ptr IUnknown, + pAppDomain: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDomainEx(self, pwzFriendlyName, pSetup, pEvidence, pAppDomain) + +proc CreateDomainSetup*( + self: ptr ICorRuntimeHost, pAppDomainSetup: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDomainSetup(self, pAppDomainSetup) + +proc CreateEvidence*( + self: ptr ICorRuntimeHost, pEvidence: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateEvidence(self, pEvidence) + +proc UnloadDomain*( + self: ptr ICorRuntimeHost, pAppDomain: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnloadDomain(self, pAppDomain) + +proc CurrentDomain*( + self: ptr ICorRuntimeHost, pAppDomain: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CurrentDomain(self, pAppDomain) + +proc OnMemoryNotification*( + self: ptr ICLRMemoryNotificationCallback, eMemoryAvailable: EMemoryAvailable +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnMemoryNotification(self, eMemoryAvailable) + +proc Alloc*( + self: ptr IHostMalloc, + cbSize: SIZE_T, + eCriticalLevel: EMemoryCriticalLevel, + ppMem: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Alloc(self, cbSize, eCriticalLevel, ppMem) + +proc DebugAlloc*( + self: ptr IHostMalloc, + cbSize: SIZE_T, + eCriticalLevel: EMemoryCriticalLevel, + pszFileName: ptr char, + iLineNo: int32, + ppMem: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DebugAlloc(self, cbSize, eCriticalLevel, pszFileName, iLineNo, ppMem) + +proc Free*(self: ptr IHostMalloc, pMem: pointer): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Free(self, pMem) + +proc CreateMalloc*( + self: ptr IHostMemoryManager, dwMallocType: DWORD, ppMalloc: ptr ptr IHostMalloc +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateMalloc(self, dwMallocType, ppMalloc) + +proc VirtualAlloc*( + self: ptr IHostMemoryManager, + pAddress: pointer, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, + eCriticalLevel: EMemoryCriticalLevel, + ppMem: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.VirtualAlloc( + self, pAddress, dwSize, flAllocationType, flProtect, eCriticalLevel, ppMem + ) + +proc VirtualFree*( + self: ptr IHostMemoryManager, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.VirtualFree(self, lpAddress, dwSize, dwFreeType) + +proc VirtualQuery*( + self: ptr IHostMemoryManager, + lpAddress: pointer, + lpBuffer: pointer, + dwLength: SIZE_T, + pResult: ptr SIZE_T, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.VirtualQuery(self, lpAddress, lpBuffer, dwLength, pResult) + +proc VirtualProtect*( + self: ptr IHostMemoryManager, + lpAddress: pointer, + dwSize: SIZE_T, + flNewProtect: DWORD, + pflOldProtect: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.VirtualProtect(self, lpAddress, dwSize, flNewProtect, pflOldProtect) + +proc GetMemoryLoad*( + self: ptr IHostMemoryManager, pMemoryLoad: ptr DWORD, pAvailableBytes: ptr SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMemoryLoad(self, pMemoryLoad, pAvailableBytes) + +proc RegisterMemoryNotificationCallback*( + self: ptr IHostMemoryManager, pCallback: ptr ICLRMemoryNotificationCallback +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterMemoryNotificationCallback(self, pCallback) + +proc NeedsVirtualAddressSpace*( + self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NeedsVirtualAddressSpace(self, startAddress, size) + +proc AcquiredVirtualAddressSpace*( + self: ptr IHostMemoryManager, startAddress: LPVOID, size: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AcquiredVirtualAddressSpace(self, startAddress, size) + +proc ReleasedVirtualAddressSpace*( + self: ptr IHostMemoryManager, startAddress: LPVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleasedVirtualAddressSpace(self, startAddress) + +proc SwitchIn*(self: ptr ICLRTask, threadHandle: HANDLE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchIn(self, threadHandle) + +proc SwitchOut*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchOut(self) + +proc GetMemStats*( + self: ptr ICLRTask, memUsage: ptr COR_GC_THREAD_STATS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMemStats(self, memUsage) + +proc Reset*(self: ptr ICLRTask, fFull: BOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self, fFull) + +proc ExitTask*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExitTask(self) + +proc Abort*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Abort(self) + +proc RudeAbort*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RudeAbort(self) + +proc NeedsPriorityScheduling*( + self: ptr ICLRTask, pbNeedsPriorityScheduling: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NeedsPriorityScheduling(self, pbNeedsPriorityScheduling) + +proc YieldTask*(self: ptr ICLRTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.YieldTask(self) + +proc LocksHeld*( + self: ptr ICLRTask, pLockCount: ptr SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LocksHeld(self, pLockCount) + +proc SetTaskIdentifier*(self: ptr ICLRTask, asked: TASKID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTaskIdentifier(self, asked) + +proc BeginPreventAsyncAbort*(self: ptr ICLRTask2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginPreventAsyncAbort(self) + +proc EndPreventAsyncAbort*(self: ptr ICLRTask2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndPreventAsyncAbort(self) + +proc Start*(self: ptr IHostTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Start(self) + +proc Alert*(self: ptr IHostTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Alert(self) + +proc Join*( + self: ptr IHostTask, dwMilliseconds: DWORD, option: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Join(self, dwMilliseconds, option) + +proc SetPriority*(self: ptr IHostTask, newPriority: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPriority(self, newPriority) + +proc GetPriority*( + self: ptr IHostTask, pPriority: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPriority(self, pPriority) + +proc SetCLRTask*( + self: ptr IHostTask, pCLRTask: ptr ICLRTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCLRTask(self, pCLRTask) + +proc CreateTask*( + self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateTask(self, pTask) + +proc GetCurrentTask*( + self: ptr ICLRTaskManager, pTask: ptr ptr ICLRTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentTask(self, pTask) + +proc SetUILocale*(self: ptr ICLRTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetUILocale(self, lcid) + +proc SetLocale*(self: ptr ICLRTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLocale(self, lcid) + +proc GetCurrentTaskType*( + self: ptr ICLRTaskManager, pTaskType: ptr ETaskType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentTaskType(self, pTaskType) + +proc GetCurrentTask*( + self: ptr IHostTaskManager, pTask: ptr ptr IHostTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentTask(self, pTask) + +proc CreateTask*( + self: ptr IHostTaskManager, + dwStackSize: DWORD, + pStartAddress: LPTHREAD_START_ROUTINE, + pParameter: PVOID, + ppTask: ptr ptr IHostTask, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateTask(self, dwStackSize, pStartAddress, pParameter, ppTask) + +proc Sleep*( + self: ptr IHostTaskManager, dwMilliseconds: DWORD, option: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Sleep(self, dwMilliseconds, option) + +proc SwitchToTask*( + self: ptr IHostTaskManager, option: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchToTask(self, option) + +proc SetUILocale*(self: ptr IHostTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetUILocale(self, lcid) + +proc SetLocale*(self: ptr IHostTaskManager, lcid: LCID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLocale(self, lcid) + +proc CallNeedsHostHook*( + self: ptr IHostTaskManager, target: SIZE_T, pbCallNeedsHostHook: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CallNeedsHostHook(self, target, pbCallNeedsHostHook) + +proc LeaveRuntime*( + self: ptr IHostTaskManager, target: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LeaveRuntime(self, target) + +proc EnterRuntime*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnterRuntime(self) + +proc ReverseLeaveRuntime*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReverseLeaveRuntime(self) + +proc ReverseEnterRuntime*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReverseEnterRuntime(self) + +proc BeginDelayAbort*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginDelayAbort(self) + +proc EndDelayAbort*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndDelayAbort(self) + +proc BeginThreadAffinity*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginThreadAffinity(self) + +proc EndThreadAffinity*(self: ptr IHostTaskManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndThreadAffinity(self) + +proc SetStackGuarantee*( + self: ptr IHostTaskManager, guarantee: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStackGuarantee(self, guarantee) + +proc GetStackGuarantee*( + self: ptr IHostTaskManager, pGuarantee: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStackGuarantee(self, pGuarantee) + +proc SetCLRTaskManager*( + self: ptr IHostTaskManager, ppManager: ptr ICLRTaskManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCLRTaskManager(self, ppManager) + +proc QueueUserWorkItem*( + self: ptr IHostThreadpoolManager, + Function: LPTHREAD_START_ROUTINE, + Context: PVOID, + Flags: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueueUserWorkItem(self, Function, Context, Flags) + +proc SetMaxThreads*( + self: ptr IHostThreadpoolManager, dwMaxWorkerThreads: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMaxThreads(self, dwMaxWorkerThreads) + +proc GetMaxThreads*( + self: ptr IHostThreadpoolManager, pdwMaxWorkerThreads: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMaxThreads(self, pdwMaxWorkerThreads) + +proc GetAvailableThreads*( + self: ptr IHostThreadpoolManager, pdwAvailableWorkerThreads: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAvailableThreads(self, pdwAvailableWorkerThreads) + +proc SetMinThreads*( + self: ptr IHostThreadpoolManager, dwMinIOCompletionThreads: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMinThreads(self, dwMinIOCompletionThreads) + +proc GetMinThreads*( + self: ptr IHostThreadpoolManager, pdwMinIOCompletionThreads: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMinThreads(self, pdwMinIOCompletionThreads) + +proc OnComplete*( + self: ptr ICLRIoCompletionManager, + dwErrorCode: DWORD, + NumberOfBytesTransferred: DWORD, + pvOverlapped: pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnComplete(self, dwErrorCode, NumberOfBytesTransferred, pvOverlapped) + +proc CreateIoCompletionPort*( + self: ptr IHostIoCompletionManager, phPort: ptr HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateIoCompletionPort(self, phPort) + +proc CloseIoCompletionPort*( + self: ptr IHostIoCompletionManager, hPort: HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseIoCompletionPort(self, hPort) + +proc SetMaxThreads*( + self: ptr IHostIoCompletionManager, dwMaxIOCompletionThreads: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMaxThreads(self, dwMaxIOCompletionThreads) + +proc GetMaxThreads*( + self: ptr IHostIoCompletionManager, pdwMaxIOCompletionThreads: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMaxThreads(self, pdwMaxIOCompletionThreads) + +proc GetAvailableThreads*( + self: ptr IHostIoCompletionManager, pdwAvailableIOCompletionThreads: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAvailableThreads(self, pdwAvailableIOCompletionThreads) + +proc GetHostOverlappedSize*( + self: ptr IHostIoCompletionManager, pcbSize: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHostOverlappedSize(self, pcbSize) + +proc SetCLRIoCompletionManager*( + self: ptr IHostIoCompletionManager, pManager: ptr ICLRIoCompletionManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCLRIoCompletionManager(self, pManager) + +proc InitializeHostOverlapped*( + self: ptr IHostIoCompletionManager, pvOverlapped: pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeHostOverlapped(self, pvOverlapped) + +proc Bind*( + self: ptr IHostIoCompletionManager, hPort: HANDLE, hHandle: HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Bind(self, hPort, hHandle) + +proc SetMinThreads*( + self: ptr IHostIoCompletionManager, dwMinIOCompletionThreads: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMinThreads(self, dwMinIOCompletionThreads) + +proc GetMinThreads*( + self: ptr IHostIoCompletionManager, pdwMinIOCompletionThreads: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMinThreads(self, pdwMinIOCompletionThreads) + +proc BeginConnection*( + self: ptr ICLRDebugManager, dwConnectionId: CONNID, szConnectionName: ptr uint16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginConnection(self, dwConnectionId, szConnectionName) + +proc SetConnectionTasks*( + self: ptr ICLRDebugManager, id: CONNID, dwCount: DWORD, ppCLRTask: ptr ptr ICLRTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetConnectionTasks(self, id, dwCount, ppCLRTask) + +proc EndConnection*( + self: ptr ICLRDebugManager, dwConnectionId: CONNID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndConnection(self, dwConnectionId) + +proc SetDacl*(self: ptr ICLRDebugManager, pacl: PACL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDacl(self, pacl) + +proc GetDacl*(self: ptr ICLRDebugManager, pacl: ptr PACL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDacl(self, pacl) + +proc IsDebuggerAttached*( + self: ptr ICLRDebugManager, pbAttached: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDebuggerAttached(self, pbAttached) + +proc SetSymbolReadingPolicy*( + self: ptr ICLRDebugManager, policy: ESymbolReadingPolicy +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSymbolReadingPolicy(self, policy) + +proc GetBucketParametersForCurrentException*( + self: ptr ICLRErrorReportingManager, pParams: ptr BucketParameters +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBucketParametersForCurrentException(self, pParams) + +proc BeginCustomDump*( + self: ptr ICLRErrorReportingManager, + dwFlavor: ECustomDumpFlavor, + dwNumItems: DWORD, + items: ptr CustomDumpItem, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginCustomDump(self, dwFlavor, dwNumItems, items, dwReserved) + +proc EndCustomDump*(self: ptr ICLRErrorReportingManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndCustomDump(self) + +proc Enter*(self: ptr IHostCrst, option: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enter(self, option) + +proc Leave*(self: ptr IHostCrst): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Leave(self) + +proc TryEnter*( + self: ptr IHostCrst, option: DWORD, pbSucceeded: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TryEnter(self, option, pbSucceeded) + +proc SetSpinCount*( + self: ptr IHostCrst, dwSpinCount: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSpinCount(self, dwSpinCount) + +proc Wait*( + self: ptr IHostAutoEvent, dwMilliseconds: DWORD, option: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Wait(self, dwMilliseconds, option) + +proc Set*(self: ptr IHostAutoEvent): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Set(self) + +proc Wait*( + self: ptr IHostManualEvent, dwMilliseconds: DWORD, option: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Wait(self, dwMilliseconds, option) + +proc Reset*(self: ptr IHostManualEvent): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Set*(self: ptr IHostManualEvent): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Set(self) + +proc Wait*( + self: ptr IHostSemaphore, dwMilliseconds: DWORD, option: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Wait(self, dwMilliseconds, option) + +proc ReleaseSemaphore*( + self: ptr IHostSemaphore, lReleaseCount: LONG, lpPreviousCount: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseSemaphore(self, lReleaseCount, lpPreviousCount) + +proc GetMonitorOwner*( + self: ptr ICLRSyncManager, Cookie: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMonitorOwner(self, Cookie, ppOwnerHostTask) + +proc CreateRWLockOwnerIterator*( + self: ptr ICLRSyncManager, Cookie: SIZE_T, pIterator: ptr SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateRWLockOwnerIterator(self, Cookie, pIterator) + +proc GetRWLockOwnerNext*( + self: ptr ICLRSyncManager, Iterator: SIZE_T, ppOwnerHostTask: ptr ptr IHostTask +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRWLockOwnerNext(self, Iterator, ppOwnerHostTask) + +proc DeleteRWLockOwnerIterator*( + self: ptr ICLRSyncManager, Iterator: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteRWLockOwnerIterator(self, Iterator) + +proc SetCLRSyncManager*( + self: ptr IHostSyncManager, pManager: ptr ICLRSyncManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCLRSyncManager(self, pManager) + +proc CreateCrst*( + self: ptr IHostSyncManager, ppCrst: ptr ptr IHostCrst +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateCrst(self, ppCrst) + +proc CreateCrstWithSpinCount*( + self: ptr IHostSyncManager, dwSpinCount: DWORD, ppCrst: ptr ptr IHostCrst +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateCrstWithSpinCount(self, dwSpinCount, ppCrst) + +proc CreateAutoEvent*( + self: ptr IHostSyncManager, ppEvent: ptr ptr IHostAutoEvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateAutoEvent(self, ppEvent) + +proc CreateManualEvent*( + self: ptr IHostSyncManager, bInitialState: BOOL, ppEvent: ptr ptr IHostManualEvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateManualEvent(self, bInitialState, ppEvent) + +proc CreateMonitorEvent*( + self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateMonitorEvent(self, Cookie, ppEvent) + +proc CreateRWLockWriterEvent*( + self: ptr IHostSyncManager, Cookie: SIZE_T, ppEvent: ptr ptr IHostAutoEvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateRWLockWriterEvent(self, Cookie, ppEvent) + +proc CreateRWLockReaderEvent*( + self: ptr IHostSyncManager, + bInitialState: BOOL, + Cookie: SIZE_T, + ppEvent: ptr ptr IHostManualEvent, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateRWLockReaderEvent(self, bInitialState, Cookie, ppEvent) + +proc CreateSemaphore*( + self: ptr IHostSyncManager, + dwInitial: DWORD, + dwMax: DWORD, + ppSemaphore: ptr ptr IHostSemaphore, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateSemaphore(self, dwInitial, dwMax, ppSemaphore) + +proc SetDefaultAction*( + self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultAction(self, operation, action) + +proc SetTimeout*( + self: ptr ICLRPolicyManager, operation: EClrOperation, dwMilliseconds: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTimeout(self, operation, dwMilliseconds) + +proc SetActionOnTimeout*( + self: ptr ICLRPolicyManager, operation: EClrOperation, action: EPolicyAction +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetActionOnTimeout(self, operation, action) + +proc SetTimeoutAndAction*( + self: ptr ICLRPolicyManager, + operation: EClrOperation, + dwMilliseconds: DWORD, + action: EPolicyAction, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTimeoutAndAction(self, operation, dwMilliseconds, action) + +proc SetActionOnFailure*( + self: ptr ICLRPolicyManager, failure: EClrFailure, action: EPolicyAction +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetActionOnFailure(self, failure, action) + +proc SetUnhandledExceptionPolicy*( + self: ptr ICLRPolicyManager, policy: EClrUnhandledException +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetUnhandledExceptionPolicy(self, policy) + +proc OnDefaultAction*( + self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDefaultAction(self, operation, action) + +proc OnTimeout*( + self: ptr IHostPolicyManager, operation: EClrOperation, action: EPolicyAction +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnTimeout(self, operation, action) + +proc OnFailure*( + self: ptr IHostPolicyManager, failure: EClrFailure, action: EPolicyAction +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFailure(self, failure, action) + +proc OnEvent*( + self: ptr IActionOnCLREvent, event: EClrEvent, data: PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnEvent(self, event, data) + +proc RegisterActionOnEvent*( + self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterActionOnEvent(self, event, pAction) + +proc UnregisterActionOnEvent*( + self: ptr ICLROnEventManager, event: EClrEvent, pAction: ptr IActionOnCLREvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterActionOnEvent(self, event, pAction) + +proc ThreadIsBlockingForSuspension*( + self: ptr IHostGCManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ThreadIsBlockingForSuspension(self) + +proc SuspensionStarting*(self: ptr IHostGCManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SuspensionStarting(self) + +proc SuspensionEnding*( + self: ptr IHostGCManager, Generation: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SuspensionEnding(self, Generation) + +proc IsStringAssemblyReferenceInList*( + self: ptr ICLRAssemblyReferenceList, pwzAssemblyName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsStringAssemblyReferenceInList(self, pwzAssemblyName) + +proc IsAssemblyReferenceInList*( + self: ptr ICLRAssemblyReferenceList, pName: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsAssemblyReferenceInList(self, pName) + +proc Get*( + self: ptr ICLRReferenceAssemblyEnum, + dwIndex: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Get(self, dwIndex, pwzBuffer, pcchBufferSize) + +proc Get*( + self: ptr ICLRProbingAssemblyEnum, + dwIndex: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Get(self, dwIndex, pwzBuffer, pcchBufferSize) + +proc GetCLRAssemblyReferenceList*( + self: ptr ICLRAssemblyIdentityManager, + ppwzAssemblyReferences: ptr LPCWSTR, + dwNumOfReferences: DWORD, + ppReferenceList: ptr ptr ICLRAssemblyReferenceList, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCLRAssemblyReferenceList( + self, ppwzAssemblyReferences, dwNumOfReferences, ppReferenceList + ) + +proc GetBindingIdentityFromFile*( + self: ptr ICLRAssemblyIdentityManager, + pwzFilePath: LPCWSTR, + dwFlags: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindingIdentityFromFile( + self, pwzFilePath, dwFlags, pwzBuffer, pcchBufferSize + ) + +proc GetBindingIdentityFromStream*( + self: ptr ICLRAssemblyIdentityManager, + pStream: ptr IStream, + dwFlags: DWORD, + pwzBuffer: LPWSTR, + pcchBufferSize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindingIdentityFromStream( + self, pStream, dwFlags, pwzBuffer, pcchBufferSize + ) + +proc GetReferencedAssembliesFromFile*( + self: ptr ICLRAssemblyIdentityManager, + pwzFilePath: LPCWSTR, + dwFlags: DWORD, + pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, + ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetReferencedAssembliesFromFile( + self, pwzFilePath, dwFlags, pExcludeAssembliesList, ppReferenceEnum + ) + +proc GetReferencedAssembliesFromStream*( + self: ptr ICLRAssemblyIdentityManager, + pStream: ptr IStream, + dwFlags: DWORD, + pExcludeAssembliesList: ptr ICLRAssemblyReferenceList, + ppReferenceEnum: ptr ptr ICLRReferenceAssemblyEnum, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetReferencedAssembliesFromStream( + self, pStream, dwFlags, pExcludeAssembliesList, ppReferenceEnum + ) + +proc GetProbingAssembliesFromReference*( + self: ptr ICLRAssemblyIdentityManager, + dwMachineType: DWORD, + dwFlags: DWORD, + pwzReferenceIdentity: LPCWSTR, + ppProbingAssemblyEnum: ptr ptr ICLRProbingAssemblyEnum, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProbingAssembliesFromReference( + self, dwMachineType, dwFlags, pwzReferenceIdentity, ppProbingAssemblyEnum + ) + +proc IsStronglyNamed*( + self: ptr ICLRAssemblyIdentityManager, + pwzAssemblyIdentity: LPCWSTR, + pbIsStronglyNamed: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsStronglyNamed(self, pwzAssemblyIdentity, pbIsStronglyNamed) + +proc ModifyApplicationPolicy*( + self: ptr ICLRHostBindingPolicyManager, + pwzSourceAssemblyIdentity: LPCWSTR, + pwzTargetAssemblyIdentity: LPCWSTR, + pbApplicationPolicy: ptr BYTE, + cbAppPolicySize: DWORD, + dwPolicyModifyFlags: DWORD, + pbNewApplicationPolicy: ptr BYTE, + pcbNewAppPolicySize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ModifyApplicationPolicy( + self, pwzSourceAssemblyIdentity, pwzTargetAssemblyIdentity, pbApplicationPolicy, + cbAppPolicySize, dwPolicyModifyFlags, pbNewApplicationPolicy, pcbNewAppPolicySize, + ) + +proc EvaluatePolicy*( + self: ptr ICLRHostBindingPolicyManager, + pwzReferenceIdentity: LPCWSTR, + pbApplicationPolicy: ptr BYTE, + cbAppPolicySize: DWORD, + pwzPostPolicyReferenceIdentity: LPWSTR, + pcchPostPolicyReferenceIdentity: ptr DWORD, + pdwPoliciesApplied: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EvaluatePolicy( + self, pwzReferenceIdentity, pbApplicationPolicy, cbAppPolicySize, + pwzPostPolicyReferenceIdentity, pcchPostPolicyReferenceIdentity, + pdwPoliciesApplied, + ) + +proc Collect*(self: ptr ICLRGCManager, Generation: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Collect(self, Generation) + +proc GetStats*( + self: ptr ICLRGCManager, pStats: ptr COR_GC_STATS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStats(self, pStats) + +proc SetGCStartupLimits*( + self: ptr ICLRGCManager, SegmentSize: DWORD, MaxGen0Size: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGCStartupLimits(self, SegmentSize, MaxGen0Size) + +proc SetGCStartupLimitsEx*( + self: ptr ICLRGCManager2, SegmentSize: SIZE_T, MaxGen0Size: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGCStartupLimitsEx(self, SegmentSize, MaxGen0Size) + +proc ProvideAssembly*( + self: ptr IHostAssemblyStore, + pBindInfo: ptr AssemblyBindInfo, + pAssemblyId: ptr UINT64, + pContext: ptr UINT64, + ppStmAssemblyImage: ptr ptr IStream, + ppStmPDB: ptr ptr IStream, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProvideAssembly( + self, pBindInfo, pAssemblyId, pContext, ppStmAssemblyImage, ppStmPDB + ) + +proc ProvideModule*( + self: ptr IHostAssemblyStore, + pBindInfo: ptr ModuleBindInfo, + pdwModuleId: ptr DWORD, + ppStmModuleImage: ptr ptr IStream, + ppStmPDB: ptr ptr IStream, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProvideModule(self, pBindInfo, pdwModuleId, ppStmModuleImage, ppStmPDB) + +proc GetNonHostStoreAssemblies*( + self: ptr IHostAssemblyManager, ppReferenceList: ptr ptr ICLRAssemblyReferenceList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNonHostStoreAssemblies(self, ppReferenceList) + +proc GetAssemblyStore*( + self: ptr IHostAssemblyManager, ppAssemblyStore: ptr ptr IHostAssemblyStore +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAssemblyStore(self, ppAssemblyStore) + +proc GetHostManager*( + self: ptr IHostControl, riid: REFIID, ppObject: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHostManager(self, riid, ppObject) + +proc SetAppDomainManager*( + self: ptr IHostControl, dwAppDomainID: DWORD, pUnkAppDomainManager: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppDomainManager(self, dwAppDomainID, pUnkAppDomainManager) + +proc GetCLRManager*( + self: ptr ICLRControl, riid: REFIID, ppObject: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCLRManager(self, riid, ppObject) + +proc SetAppDomainManagerType*( + self: ptr ICLRControl, + pwzAppDomainManagerAssembly: LPCWSTR, + pwzAppDomainManagerType: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppDomainManagerType( + self, pwzAppDomainManagerAssembly, pwzAppDomainManagerType + ) + +proc Start*(self: ptr ICLRRuntimeHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Start(self) + +proc Stop*(self: ptr ICLRRuntimeHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stop(self) + +proc SetHostControl*( + self: ptr ICLRRuntimeHost, pHostControl: ptr IHostControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHostControl(self, pHostControl) + +proc GetCLRControl*( + self: ptr ICLRRuntimeHost, pCLRControl: ptr ptr ICLRControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCLRControl(self, pCLRControl) + +proc UnloadAppDomain*( + self: ptr ICLRRuntimeHost, dwAppDomainId: DWORD, fWaitUntilDone: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnloadAppDomain(self, dwAppDomainId, fWaitUntilDone) + +proc ExecuteInAppDomain*( + self: ptr ICLRRuntimeHost, + dwAppDomainId: DWORD, + pCallback: FExecuteInAppDomainCallback, + cookie: pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecuteInAppDomain(self, dwAppDomainId, pCallback, cookie) + +proc GetCurrentAppDomainId*( + self: ptr ICLRRuntimeHost, pdwAppDomainId: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentAppDomainId(self, pdwAppDomainId) + +proc ExecuteApplication*( + self: ptr ICLRRuntimeHost, + pwzAppFullName: LPCWSTR, + dwManifestPaths: DWORD, + ppwzManifestPaths: ptr LPCWSTR, + dwActivationData: DWORD, + ppwzActivationData: ptr LPCWSTR, + pReturnValue: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecuteApplication( + self, pwzAppFullName, dwManifestPaths, ppwzManifestPaths, dwActivationData, + ppwzActivationData, pReturnValue, + ) + +proc ExecuteInDefaultAppDomain*( + self: ptr ICLRRuntimeHost, + pwzAssemblyPath: LPCWSTR, + pwzTypeName: LPCWSTR, + pwzMethodName: LPCWSTR, + pwzArgument: LPCWSTR, + pReturnValue: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecuteInDefaultAppDomain( + self, pwzAssemblyPath, pwzTypeName, pwzMethodName, pwzArgument, pReturnValue + ) + +proc SetProtectedCategories*( + self: ptr ICLRHostProtectionManager, categories: EApiCategories +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProtectedCategories(self, categories) + +proc SetEagerSerializeGrantSets*( + self: ptr ICLRHostProtectionManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEagerSerializeGrantSets(self) + +proc SetAppDomainManagerType*( + self: ptr ICLRDomainManager, + wszAppDomainManagerAssembly: LPCWSTR, + wszAppDomainManagerType: LPCWSTR, + dwInitializeDomainFlags: EInitializeNewDomainFlags, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppDomainManagerType( + self, wszAppDomainManagerAssembly, wszAppDomainManagerType, + dwInitializeDomainFlags, + ) + +proc SetPropertiesForDefaultAppDomain*( + self: ptr ICLRDomainManager, + nProperties: DWORD, + pwszPropertyNames: ptr LPCWSTR, + pwszPropertyValues: ptr LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPropertiesForDefaultAppDomain( + self, nProperties, pwszPropertyNames, pwszPropertyValues + ) + +proc GetNameCount*(self: ptr ITypeName, pCount: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNameCount(self, pCount) + +proc GetNames*( + self: ptr ITypeName, count: DWORD, rgbszNames: ptr BSTR, pCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNames(self, count, rgbszNames, pCount) + +proc GetTypeArgumentCount*( + self: ptr ITypeName, pCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeArgumentCount(self, pCount) + +proc GetTypeArguments*( + self: ptr ITypeName, + count: DWORD, + rgpArguments: ptr ptr ITypeName, + pCount: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeArguments(self, count, rgpArguments, pCount) + +proc GetModifierLength*( + self: ptr ITypeName, pCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetModifierLength(self, pCount) + +proc GetModifiers*( + self: ptr ITypeName, count: DWORD, rgModifiers: ptr DWORD, pCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetModifiers(self, count, rgModifiers, pCount) + +proc GetAssemblyName*( + self: ptr ITypeName, rgbszAssemblyNames: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAssemblyName(self, rgbszAssemblyNames) + +proc OpenGenericArguments*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenGenericArguments(self) + +proc CloseGenericArguments*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseGenericArguments(self) + +proc OpenGenericArgument*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenGenericArgument(self) + +proc CloseGenericArgument*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseGenericArgument(self) + +proc AddName*(self: ptr ITypeNameBuilder, szName: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddName(self, szName) + +proc AddPointer*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPointer(self) + +proc AddByRef*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddByRef(self) + +proc AddSzArray*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSzArray(self) + +proc AddArray*(self: ptr ITypeNameBuilder, rank: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddArray(self, rank) + +proc AddAssemblySpec*( + self: ptr ITypeNameBuilder, szAssemblySpec: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddAssemblySpec(self, szAssemblySpec) + +proc ToString*( + self: ptr ITypeNameBuilder, pszStringRepresentation: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ToString(self, pszStringRepresentation) + +proc Clear*(self: ptr ITypeNameBuilder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clear(self) + +proc ParseTypeName*( + self: ptr ITypeNameFactory, + szName: LPCWSTR, + pError: ptr DWORD, + ppTypeName: ptr ptr ITypeName, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseTypeName(self, szName, pError, ppTypeName) + +proc GetTypeNameBuilder*( + self: ptr ITypeNameFactory, ppTypeBuilder: ptr ptr ITypeNameBuilder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeNameBuilder(self, ppTypeBuilder) + +proc DoCallback*( + self: ptr IApartmentCallback, pFunc: SIZE_T, pData: SIZE_T +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoCallback(self, pFunc, pData) + +proc GetSerializedBuffer*( + self: ptr IManagedObject, pBSTR: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSerializedBuffer(self, pBSTR) + +proc GetObjectIdentity*( + self: ptr IManagedObject, + pBSTRGUID: ptr BSTR, + AppDomainID: ptr int32, + pCCW: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectIdentity(self, pBSTRGUID, AppDomainID, pCCW) + +proc Autodone*(self: ptr ICatalogServices): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Autodone(self) + +proc NotAutodone*(self: ptr ICatalogServices): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NotAutodone(self) + +proc Capture*( + self: ptr IHostSecurityContext, ppClonedContext: ptr ptr IHostSecurityContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Capture(self, ppClonedContext) + +proc ImpersonateLoggedOnUser*( + self: ptr IHostSecurityManager, hToken: HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ImpersonateLoggedOnUser(self, hToken) + +proc RevertToSelf*(self: ptr IHostSecurityManager): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RevertToSelf(self) + +proc OpenThreadToken*( + self: ptr IHostSecurityManager, + dwDesiredAccess: DWORD, + bOpenAsSelf: BOOL, + phThreadToken: ptr HANDLE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenThreadToken(self, dwDesiredAccess, bOpenAsSelf, phThreadToken) + +proc SetThreadToken*( + self: ptr IHostSecurityManager, hToken: HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetThreadToken(self, hToken) + +proc GetSecurityContext*( + self: ptr IHostSecurityManager, + eContextType: EContextType, + ppSecurityContext: ptr ptr IHostSecurityContext, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecurityContext(self, eContextType, ppSecurityContext) + +proc SetSecurityContext*( + self: ptr IHostSecurityManager, + eContextType: EContextType, + pSecurityContext: ptr IHostSecurityContext, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSecurityContext(self, eContextType, pSecurityContext) + +proc GetCurrentAllocated*( + self: ptr ICLRAppDomainResourceMonitor, + dwAppDomainId: DWORD, + pBytesAllocated: ptr ULONGLONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentAllocated(self, dwAppDomainId, pBytesAllocated) + +proc GetCurrentSurvived*( + self: ptr ICLRAppDomainResourceMonitor, + dwAppDomainId: DWORD, + pAppDomainBytesSurvived: ptr ULONGLONG, + pTotalBytesSurvived: ptr ULONGLONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentSurvived( + self, dwAppDomainId, pAppDomainBytesSurvived, pTotalBytesSurvived + ) + +proc GetCurrentCpuTime*( + self: ptr ICLRAppDomainResourceMonitor, + dwAppDomainId: DWORD, + pMilliseconds: ptr ULONGLONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentCpuTime(self, dwAppDomainId, pMilliseconds) + +proc GetRuntime*( + self: ptr ICLRMetaHost, pwzVersion: LPCWSTR, riid: REFIID, ppRuntime: ptr LPVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRuntime(self, pwzVersion, riid, ppRuntime) + +proc GetVersionFromFile*( + self: ptr ICLRMetaHost, + pwzFilePath: LPCWSTR, + pwzBuffer: LPWSTR, + pcchBuffer: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVersionFromFile(self, pwzFilePath, pwzBuffer, pcchBuffer) + +proc EnumerateInstalledRuntimes*( + self: ptr ICLRMetaHost, ppEnumerator: ptr ptr IEnumUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumerateInstalledRuntimes(self, ppEnumerator) + +proc EnumerateLoadedRuntimes*( + self: ptr ICLRMetaHost, hndProcess: HANDLE, ppEnumerator: ptr ptr IEnumUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumerateLoadedRuntimes(self, hndProcess, ppEnumerator) + +proc RequestRuntimeLoadedNotification*( + self: ptr ICLRMetaHost, pCallbackFunction: RuntimeLoadedCallbackFnPtr +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestRuntimeLoadedNotification(self, pCallbackFunction) + +proc QueryLegacyV2RuntimeBinding*( + self: ptr ICLRMetaHost, riid: REFIID, ppUnk: ptr LPVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryLegacyV2RuntimeBinding(self, riid, ppUnk) + +proc ExitProcess*( + self: ptr ICLRMetaHost, iExitCode: INT32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExitProcess(self, iExitCode) + +proc GetRequestedRuntime*( + self: ptr ICLRMetaHostPolicy, + dwPolicyFlags: METAHOST_POLICY_FLAGS, + pwzBinary: LPCWSTR, + pCfgStream: ptr IStream, + pwzVersion: LPWSTR, + pcchVersion: ptr DWORD, + pwzImageVersion: LPWSTR, + pcchImageVersion: ptr DWORD, + pdwConfigFlags: ptr DWORD, + riid: REFIID, + ppRuntime: ptr LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRequestedRuntime( + self, dwPolicyFlags, pwzBinary, pCfgStream, pwzVersion, pcchVersion, + pwzImageVersion, pcchImageVersion, pdwConfigFlags, riid, ppRuntime, + ) + +proc AttachProfiler*( + self: ptr ICLRProfiling, + dwProfileeProcessID: DWORD, + dwMillisecondsMax: DWORD, + pClsidProfiler: ptr CLSID, + wszProfilerPath: LPCWSTR, + pvClientData: pointer, + cbClientData: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AttachProfiler( + self, dwProfileeProcessID, dwMillisecondsMax, pClsidProfiler, wszProfilerPath, + pvClientData, cbClientData, + ) + +proc ProvideLibrary*( + self: ptr ICLRDebuggingLibraryProvider, + pwszFileName: ptr WCHAR, + dwTimestamp: DWORD, + dwSizeOfImage: DWORD, + phModule: ptr HMODULE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProvideLibrary(self, pwszFileName, dwTimestamp, dwSizeOfImage, phModule) + +proc OpenVirtualProcess*( + self: ptr ICLRDebugging, + moduleBaseAddress: ULONG64, + pDataTarget: ptr IUnknown, + pLibraryProvider: ptr ICLRDebuggingLibraryProvider, + pMaxDebuggerSupportedVersion: ptr CLR_DEBUGGING_VERSION, + riidProcess: REFIID, + ppProcess: ptr ptr IUnknown, + pVersion: ptr CLR_DEBUGGING_VERSION, + pdwFlags: ptr CLR_DEBUGGING_PROCESS_FLAGS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenVirtualProcess( + self, moduleBaseAddress, pDataTarget, pLibraryProvider, + pMaxDebuggerSupportedVersion, riidProcess, ppProcess, pVersion, pdwFlags, + ) + +proc CanUnloadNow*( + self: ptr ICLRDebugging, hModule: HMODULE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanUnloadNow(self, hModule) + +proc GetVersionString*( + self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVersionString(self, pwzBuffer, pcchBuffer) + +proc GetRuntimeDirectory*( + self: ptr ICLRRuntimeInfo, pwzBuffer: LPWSTR, pcchBuffer: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRuntimeDirectory(self, pwzBuffer, pcchBuffer) + +proc IsLoaded*( + self: ptr ICLRRuntimeInfo, hndProcess: HANDLE, pbLoaded: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLoaded(self, hndProcess, pbLoaded) + +proc LoadErrorString*( + self: ptr ICLRRuntimeInfo, + iResourceID: UINT, + pwzBuffer: LPWSTR, + pcchBuffer: ptr DWORD, + iLocaleID: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadErrorString(self, iResourceID, pwzBuffer, pcchBuffer, iLocaleID) + +proc LoadLibrary*( + self: ptr ICLRRuntimeInfo, pwzDllName: LPCWSTR, phndModule: ptr HMODULE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadLibrary(self, pwzDllName, phndModule) + +proc GetProcAddress*( + self: ptr ICLRRuntimeInfo, pszProcName: LPCSTR, ppProc: ptr LPVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProcAddress(self, pszProcName, ppProc) + +proc GetInterface*( + self: ptr ICLRRuntimeInfo, rclsid: REFCLSID, riid: REFIID, ppUnk: ptr LPVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterface(self, rclsid, riid, ppUnk) + +proc IsLoadable*( + self: ptr ICLRRuntimeInfo, pbLoadable: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLoadable(self, pbLoadable) + +proc SetDefaultStartupFlags*( + self: ptr ICLRRuntimeInfo, dwStartupFlags: DWORD, pwzHostConfigFile: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultStartupFlags(self, dwStartupFlags, pwzHostConfigFile) + +proc GetDefaultStartupFlags*( + self: ptr ICLRRuntimeInfo, + pdwStartupFlags: ptr DWORD, + pwzHostConfigFile: LPWSTR, + pcchHostConfigFile: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultStartupFlags( + self, pdwStartupFlags, pwzHostConfigFile, pcchHostConfigFile + ) + +proc BindAsLegacyV2Runtime*(self: ptr ICLRRuntimeInfo): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindAsLegacyV2Runtime(self) + +proc IsStarted*( + self: ptr ICLRRuntimeInfo, pbStarted: ptr BOOL, pdwStartupFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsStarted(self, pbStarted, pdwStartupFlags) + +proc GetHashFromAssemblyFile*( + self: ptr ICLRStrongName, + pszFilePath: LPCSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashFromAssemblyFile( + self, pszFilePath, piHashAlg, pbHash, cchHash, pchHash + ) + +proc GetHashFromAssemblyFileW*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashFromAssemblyFileW( + self, pwzFilePath, piHashAlg, pbHash, cchHash, pchHash + ) + +proc GetHashFromBlob*( + self: ptr ICLRStrongName, + pbBlob: ptr BYTE, + cchBlob: DWORD, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashFromBlob( + self, pbBlob, cchBlob, piHashAlg, pbHash, cchHash, pchHash + ) + +proc GetHashFromFile*( + self: ptr ICLRStrongName, + pszFilePath: LPCSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashFromFile(self, pszFilePath, piHashAlg, pbHash, cchHash, pchHash) + +proc GetHashFromFileW*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashFromFileW(self, pwzFilePath, piHashAlg, pbHash, cchHash, pchHash) + +proc GetHashFromHandle*( + self: ptr ICLRStrongName, + hFile: HANDLE, + piHashAlg: ptr int32, + pbHash: ptr BYTE, + cchHash: DWORD, + pchHash: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashFromHandle(self, hFile, piHashAlg, pbHash, cchHash, pchHash) + +proc StrongNameCompareAssemblies*( + self: ptr ICLRStrongName, + pwzAssembly1: LPCWSTR, + pwzAssembly2: LPCWSTR, + pdwResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameCompareAssemblies(self, pwzAssembly1, pwzAssembly2, pdwResult) + +proc StrongNameFreeBuffer*( + self: ptr ICLRStrongName, pbMemory: ptr BYTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameFreeBuffer(self, pbMemory) + +proc StrongNameGetBlob*( + self: ptr ICLRStrongName, pwzFilePath: LPCWSTR, pbBlob: ptr BYTE, pcbBlob: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameGetBlob(self, pwzFilePath, pbBlob, pcbBlob) + +proc StrongNameGetBlobFromImage*( + self: ptr ICLRStrongName, + pbBase: ptr BYTE, + dwLength: DWORD, + pbBlob: ptr BYTE, + pcbBlob: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameGetBlobFromImage(self, pbBase, dwLength, pbBlob, pcbBlob) + +proc StrongNameGetPublicKey*( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbPublicKeyBlob: ptr ptr BYTE, + pcbPublicKeyBlob: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameGetPublicKey( + self, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbPublicKeyBlob, pcbPublicKeyBlob + ) + +proc StrongNameHashSize*( + self: ptr ICLRStrongName, ulHashAlg: ULONG, pcbSize: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameHashSize(self, ulHashAlg, pcbSize) + +proc StrongNameKeyDelete*( + self: ptr ICLRStrongName, pwzKeyContainer: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameKeyDelete(self, pwzKeyContainer) + +proc StrongNameKeyGen*( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + dwFlags: DWORD, + ppbKeyBlob: ptr ptr BYTE, + pcbKeyBlob: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameKeyGen(self, pwzKeyContainer, dwFlags, ppbKeyBlob, pcbKeyBlob) + +proc StrongNameKeyGenEx*( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + dwFlags: DWORD, + dwKeySize: DWORD, + ppbKeyBlob: ptr ptr BYTE, + pcbKeyBlob: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameKeyGenEx( + self, pwzKeyContainer, dwFlags, dwKeySize, ppbKeyBlob, pcbKeyBlob + ) + +proc StrongNameKeyInstall*( + self: ptr ICLRStrongName, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameKeyInstall(self, pwzKeyContainer, pbKeyBlob, cbKeyBlob) + +proc StrongNameSignatureGeneration*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbSignatureBlob: ptr ptr BYTE, + pcbSignatureBlob: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureGeneration( + self, pwzFilePath, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbSignatureBlob, + pcbSignatureBlob, + ) + +proc StrongNameSignatureGenerationEx*( + self: ptr ICLRStrongName, + wszFilePath: LPCWSTR, + wszKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbSignatureBlob: ptr ptr BYTE, + pcbSignatureBlob: ptr ULONG, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureGenerationEx( + self, wszFilePath, wszKeyContainer, pbKeyBlob, cbKeyBlob, ppbSignatureBlob, + pcbSignatureBlob, dwFlags, + ) + +proc StrongNameSignatureSize*( + self: ptr ICLRStrongName, + pbPublicKeyBlob: ptr BYTE, + cbPublicKeyBlob: ULONG, + pcbSize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureSize(self, pbPublicKeyBlob, cbPublicKeyBlob, pcbSize) + +proc StrongNameSignatureVerification*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + dwInFlags: DWORD, + pdwOutFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureVerification( + self, pwzFilePath, dwInFlags, pdwOutFlags + ) + +proc StrongNameSignatureVerificationEx*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + fForceVerification: BOOLEAN, + pfWasVerified: ptr BOOLEAN, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureVerificationEx( + self, pwzFilePath, fForceVerification, pfWasVerified + ) + +proc StrongNameSignatureVerificationFromImage*( + self: ptr ICLRStrongName, + pbBase: ptr BYTE, + dwLength: DWORD, + dwInFlags: DWORD, + pdwOutFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureVerificationFromImage( + self, pbBase, dwLength, dwInFlags, pdwOutFlags + ) + +proc StrongNameTokenFromAssembly*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + ppbStrongNameToken: ptr ptr BYTE, + pcbStrongNameToken: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameTokenFromAssembly( + self, pwzFilePath, ppbStrongNameToken, pcbStrongNameToken + ) + +proc StrongNameTokenFromAssemblyEx*( + self: ptr ICLRStrongName, + pwzFilePath: LPCWSTR, + ppbStrongNameToken: ptr ptr BYTE, + pcbStrongNameToken: ptr ULONG, + ppbPublicKeyBlob: ptr ptr BYTE, + pcbPublicKeyBlob: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameTokenFromAssemblyEx( + self, pwzFilePath, ppbStrongNameToken, pcbStrongNameToken, ppbPublicKeyBlob, + pcbPublicKeyBlob, + ) + +proc StrongNameTokenFromPublicKey*( + self: ptr ICLRStrongName, + pbPublicKeyBlob: ptr BYTE, + cbPublicKeyBlob: ULONG, + ppbStrongNameToken: ptr ptr BYTE, + pcbStrongNameToken: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameTokenFromPublicKey( + self, pbPublicKeyBlob, cbPublicKeyBlob, ppbStrongNameToken, pcbStrongNameToken + ) + +proc StrongNameGetPublicKeyEx*( + self: ptr ICLRStrongName2, + pwzKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + ppbPublicKeyBlob: ptr ptr BYTE, + pcbPublicKeyBlob: ptr ULONG, + uHashAlgId: ULONG, + uReserved: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameGetPublicKeyEx( + self, pwzKeyContainer, pbKeyBlob, cbKeyBlob, ppbPublicKeyBlob, pcbPublicKeyBlob, + uHashAlgId, uReserved, + ) + +proc StrongNameSignatureVerificationEx2*( + self: ptr ICLRStrongName2, + wszFilePath: LPCWSTR, + fForceVerification: BOOLEAN, + pbEcmaPublicKey: ptr BYTE, + cbEcmaPublicKey: DWORD, + pfWasVerified: ptr BOOLEAN, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameSignatureVerificationEx2( + self, wszFilePath, fForceVerification, pbEcmaPublicKey, cbEcmaPublicKey, + pfWasVerified, + ) + +proc StrongNameDigestGenerate*( + self: ptr ICLRStrongName3, + wszFilePath: LPCWSTR, + ppbDigestBlob: ptr ptr BYTE, + pcbDigestBlob: ptr ULONG, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameDigestGenerate( + self, wszFilePath, ppbDigestBlob, pcbDigestBlob, dwFlags + ) + +proc StrongNameDigestSign*( + self: ptr ICLRStrongName3, + wszKeyContainer: LPCWSTR, + pbKeyBlob: ptr BYTE, + cbKeyBlob: ULONG, + pbDigestBlob: ptr BYTE, + cbDigestBlob: ULONG, + hashAlgId: DWORD, + ppbSignatureBlob: ptr ptr BYTE, + pcbSignatureBlob: ptr ULONG, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameDigestSign( + self, wszKeyContainer, pbKeyBlob, cbKeyBlob, pbDigestBlob, cbDigestBlob, + hashAlgId, ppbSignatureBlob, pcbSignatureBlob, dwFlags, + ) + +proc StrongNameDigestEmbed*( + self: ptr ICLRStrongName3, + wszFilePath: LPCWSTR, + pbSignatureBlob: ptr BYTE, + cbSignatureBlob: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrongNameDigestEmbed( + self, wszFilePath, pbSignatureBlob, cbSignatureBlob + ) + +proc get_ToString*(self: ptr IObject, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToString(self, pRetVal) + +proc Equals*( + self: ptr IObject, obj: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals(self, obj, pRetVal) + +proc GetHashCode*(self: ptr IObject, pRetVal: ptr int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashCode(self, pRetVal) + +proc GetType*(self: ptr IObject, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pRetVal) + +proc GetTypeInfoCount*( + self: ptr IType, pcTInfo: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfoCount(self, pcTInfo) + +proc GetTypeInfo*( + self: ptr IType, iTInfo: int32, lcid: int32, ppTInfo: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo) + +proc GetIDsOfNames*( + self: ptr IType, + riid: ptr GUID, + rgszNames: int32, + cNames: int32, + lcid: int32, + rgDispId: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId) + +proc Invoke*( + self: ptr IType, + dispIdMember: int32, + riid: ptr GUID, + lcid: int32, + wFlags: int16, + pDispParams: int32, + pVarResult: int32, + pExcepInfo: int32, + puArgErr: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke( + self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, + puArgErr, + ) + +proc get_ToString*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToString(self, pRetVal) + +proc Equals*( + self: ptr IType, other: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals(self, other, pRetVal) + +proc GetHashCode*(self: ptr IType, pRetVal: ptr int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashCode(self, pRetVal) + +proc GetType*(self: ptr IType, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pRetVal) + +proc get_MemberType*( + self: ptr IType, pRetVal: ptr MemberTypes +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_MemberType(self, pRetVal) + +proc get_name*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, pRetVal) + +proc get_DeclaringType*( + self: ptr IType, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DeclaringType(self, pRetVal) + +proc get_ReflectedType*( + self: ptr IType, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ReflectedType(self, pRetVal) + +proc GetCustomAttributes*( + self: ptr IType, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustomAttributes(self, attributeType, inherit, pRetVal) + +proc GetCustomAttributes_2*( + self: ptr IType, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustomAttributes_2(self, inherit, pRetVal) + +proc IsDefined*( + self: ptr IType, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDefined(self, attributeType, inherit, pRetVal) + +proc get_Guid*(self: ptr IType, pRetVal: ptr GUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Guid(self, pRetVal) + +proc get_Module*(self: ptr IType, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Module(self, pRetVal) + +proc getIAssembly*( + self: ptr IType, pRetVal: ptr ptr IAssembly +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getIAssembly(self, pRetVal) + +proc get_TypeHandle*(self: ptr IType, pRetVal: POBJECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TypeHandle(self, pRetVal) + +proc get_FullName*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FullName(self, pRetVal) + +proc get_Namespace*(self: ptr IType, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Namespace(self, pRetVal) + +proc get_AssemblyQualifiedName*( + self: ptr IType, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AssemblyQualifiedName(self, pRetVal) + +proc GetArrayRank*(self: ptr IType, pRetVal: ptr int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetArrayRank(self, pRetVal) + +proc get_BaseType*( + self: ptr IType, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BaseType(self, pRetVal) + +proc GetConstructors*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConstructors(self, bindingAttr, pRetVal) + +proc GetInterface*( + self: ptr IType, name: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterface(self, name, ignoreCase, pRetVal) + +proc GetInterfaces*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterfaces(self, pRetVal) + +proc FindInterfaces*( + self: ptr IType, + filter: POBJECT, + filterCriteria: VARIANT, + pRetVal: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindInterfaces(self, filter, filterCriteria, pRetVal) + +proc GetEvent*( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEvent(self, name, bindingAttr, pRetVal) + +proc GetEvents*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEvents(self, pRetVal) + +proc GetEvents_2*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEvents_2(self, bindingAttr, pRetVal) + +proc GetNestedTypes*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNestedTypes(self, bindingAttr, pRetVal) + +proc GetNestedType*( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNestedType(self, name, bindingAttr, pRetVal) + +proc GetMember*( + self: ptr IType, + name: BSTR, + Type: MemberTypes, + bindingAttr: BindingFlags, + pRetVal: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMember(self, name, Type, bindingAttr, pRetVal) + +proc GetDefaultMembers*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultMembers(self, pRetVal) + +proc FindMembers*( + self: ptr IType, + MemberType: MemberTypes, + bindingAttr: BindingFlags, + filter: POBJECT, + filterCriteria: VARIANT, + pRetVal: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindMembers( + self, MemberType, bindingAttr, filter, filterCriteria, pRetVal + ) + +proc GetElementType*( + self: ptr IType, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElementType(self, pRetVal) + +proc IsSubclassOf*( + self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsSubclassOf(self, c, pRetVal) + +proc IsInstanceOfType*( + self: ptr IType, o: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsInstanceOfType(self, o, pRetVal) + +proc IsAssignableFrom*( + self: ptr IType, c: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsAssignableFrom(self, c, pRetVal) + +proc GetInterfaceMap*( + self: ptr IType, interfaceType: ptr IType, pRetVal: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterfaceMap(self, interfaceType, pRetVal) + +proc GetMethod*( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + Binder: POBJECT, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr ptr IMethodInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethod(self, name, bindingAttr, Binder, types, modifiers, pRetVal) + +proc GetMethod_2*( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr IMethodInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethod_2(self, name, bindingAttr, pRetVal) + +proc GetMethods*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethods(self, bindingAttr, pRetVal) + +proc GetField*( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetField(self, name, bindingAttr, pRetVal) + +proc GetFields*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFields(self, bindingAttr, pRetVal) + +proc GetProperty*( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, name, bindingAttr, pRetVal) + +proc GetProperty_2*( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + Binder: POBJECT, + returnType: ptr IType, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty_2( + self, name, bindingAttr, Binder, returnType, types, modifiers, pRetVal + ) + +proc GetProperties*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperties(self, bindingAttr, pRetVal) + +proc GetMember_2*( + self: ptr IType, name: BSTR, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMember_2(self, name, bindingAttr, pRetVal) + +proc GetMembers*( + self: ptr IType, bindingAttr: BindingFlags, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMembers(self, bindingAttr, pRetVal) + +proc InvokeMember*( + self: ptr IType, + name: BSTR, + invokeAttr: BindingFlags, + Binder: POBJECT, + Target: VARIANT, + args: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + culture: POBJECT, + namedParameters: ptr SAFEARRAY, + pRetVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeMember( + self, name, invokeAttr, Binder, Target, args, modifiers, culture, namedParameters, + pRetVal, + ) + +proc get_UnderlyingSystemType*( + self: ptr IType, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_UnderlyingSystemType(self, pRetVal) + +proc InvokeMember_2*( + self: ptr IType, + name: BSTR, + invokeAttr: BindingFlags, + Binder: POBJECT, + Target: VARIANT, + args: ptr SAFEARRAY, + culture: POBJECT, + pRetVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeMember_2( + self, name, invokeAttr, Binder, Target, args, culture, pRetVal + ) + +proc InvokeMember_3*( + self: ptr IType, + name: BSTR, + invokeAttr: BindingFlags, + Binder: POBJECT, + Target: VARIANT, + args: ptr SAFEARRAY, + pRetVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeMember_3(self, name, invokeAttr, Binder, Target, args, pRetVal) + +proc GetConstructor*( + self: ptr IType, + bindingAttr: BindingFlags, + Binder: POBJECT, + callConvention: CallingConventions, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConstructor( + self, bindingAttr, Binder, callConvention, types, modifiers, pRetVal + ) + +proc GetConstructor_2*( + self: ptr IType, + bindingAttr: BindingFlags, + Binder: POBJECT, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConstructor_2(self, bindingAttr, Binder, types, modifiers, pRetVal) + +proc GetConstructor_3*( + self: ptr IType, types: ptr SAFEARRAY, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConstructor_3(self, types, pRetVal) + +proc GetConstructors_2*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConstructors_2(self, pRetVal) + +proc get_TypeInitializer*( + self: ptr IType, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TypeInitializer(self, pRetVal) + +proc GetMethod_3*( + self: ptr IType, + name: BSTR, + bindingAttr: BindingFlags, + Binder: POBJECT, + callConvention: CallingConventions, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr ptr IMethodInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethod_3( + self, name, bindingAttr, Binder, callConvention, types, modifiers, pRetVal + ) + +proc GetMethod_4*( + self: ptr IType, + name: BSTR, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr ptr IMethodInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethod_4(self, name, types, modifiers, pRetVal) + +proc GetMethod_5*( + self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr ptr IMethodInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethod_5(self, name, types, pRetVal) + +proc GetMethod_6*( + self: ptr IType, name: BSTR, pRetVal: ptr ptr IMethodInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethod_6(self, name, pRetVal) + +proc GetMethods_2*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethods_2(self, pRetVal) + +proc GetField_2*( + self: ptr IType, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetField_2(self, name, pRetVal) + +proc GetFields_2*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFields_2(self, pRetVal) + +proc GetInterface_2*( + self: ptr IType, name: BSTR, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterface_2(self, name, pRetVal) + +proc GetEvent_2*( + self: ptr IType, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEvent_2(self, name, pRetVal) + +proc GetProperty_3*( + self: ptr IType, + name: BSTR, + returnType: ptr IType, + types: ptr SAFEARRAY, + modifiers: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty_3(self, name, returnType, types, modifiers, pRetVal) + +proc GetProperty_4*( + self: ptr IType, + name: BSTR, + returnType: ptr IType, + types: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty_4(self, name, returnType, types, pRetVal) + +proc GetProperty_5*( + self: ptr IType, name: BSTR, types: ptr SAFEARRAY, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty_5(self, name, types, pRetVal) + +proc GetProperty_6*( + self: ptr IType, name: BSTR, returnType: ptr IType, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty_6(self, name, returnType, pRetVal) + +proc GetProperty_7*( + self: ptr IType, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty_7(self, name, pRetVal) + +proc GetProperties_2*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperties_2(self, pRetVal) + +proc GetNestedTypes_2*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNestedTypes_2(self, pRetVal) + +proc GetNestedType_2*( + self: ptr IType, name: BSTR, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNestedType_2(self, name, pRetVal) + +proc GetMember_3*( + self: ptr IType, name: BSTR, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMember_3(self, name, pRetVal) + +proc GetMembers_2*( + self: ptr IType, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMembers_2(self, pRetVal) + +proc get_Attributes*( + self: ptr IType, pRetVal: ptr TypeAttributes +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Attributes(self, pRetVal) + +proc get_IsNotPublic*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNotPublic(self, pRetVal) + +proc get_IsPublic*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsPublic(self, pRetVal) + +proc get_IsNestedPublic*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNestedPublic(self, pRetVal) + +proc get_IsNestedPrivate*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNestedPrivate(self, pRetVal) + +proc get_IsNestedFamily*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNestedFamily(self, pRetVal) + +proc get_IsNestedAssembly*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNestedAssembly(self, pRetVal) + +proc get_IsNestedFamANDAssem*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNestedFamANDAssem(self, pRetVal) + +proc get_IsNestedFamORAssem*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsNestedFamORAssem(self, pRetVal) + +proc get_IsAutoLayout*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsAutoLayout(self, pRetVal) + +proc get_IsLayoutSequential*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsLayoutSequential(self, pRetVal) + +proc get_IsExplicitLayout*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsExplicitLayout(self, pRetVal) + +proc get_IsClass*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsClass(self, pRetVal) + +proc get_IsInterface*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsInterface(self, pRetVal) + +proc get_IsValueType*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsValueType(self, pRetVal) + +proc get_IsAbstract*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsAbstract(self, pRetVal) + +proc get_IsSealed*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsSealed(self, pRetVal) + +proc get_IsEnum*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsEnum(self, pRetVal) + +proc get_IsSpecialName*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsSpecialName(self, pRetVal) + +proc get_IsImport*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsImport(self, pRetVal) + +proc get_IsSerializable*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsSerializable(self, pRetVal) + +proc get_IsAnsiClass*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsAnsiClass(self, pRetVal) + +proc get_IsUnicodeClass*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsUnicodeClass(self, pRetVal) + +proc get_IsAutoClass*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsAutoClass(self, pRetVal) + +proc get_IsArray*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsArray(self, pRetVal) + +proc get_IsByRef*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsByRef(self, pRetVal) + +proc get_IsPointer*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsPointer(self, pRetVal) + +proc get_IsPrimitive*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsPrimitive(self, pRetVal) + +proc get_IsCOMObject*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsCOMObject(self, pRetVal) + +proc get_HasElementType*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HasElementType(self, pRetVal) + +proc get_IsContextful*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsContextful(self, pRetVal) + +proc get_IsMarshalByRef*( + self: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsMarshalByRef(self, pRetVal) + +proc Equals_2*( + self: ptr IType, o: ptr IType, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals_2(self, o, pRetVal) + +proc get_ApplicationBase*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ApplicationBase(self, pRetVal) + +proc put_ApplicationBase*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ApplicationBase(self, pRetVal) + +proc get_ApplicationName*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ApplicationName(self, pRetVal) + +proc put_ApplicationName*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ApplicationName(self, pRetVal) + +proc get_CachePath*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachePath(self, pRetVal) + +proc put_CachePath*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_CachePath(self, pRetVal) + +proc get_ConfigurationFile*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ConfigurationFile(self, pRetVal) + +proc put_ConfigurationFile*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ConfigurationFile(self, pRetVal) + +proc get_DynamicBase*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DynamicBase(self, pRetVal) + +proc put_DynamicBase*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_DynamicBase(self, pRetVal) + +proc get_LicenseFile*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_LicenseFile(self, pRetVal) + +proc put_LicenseFile*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_LicenseFile(self, pRetVal) + +proc get_PrivateBinPath*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_PrivateBinPath(self, pRetVal) + +proc put_PrivateBinPath*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_PrivateBinPath(self, pRetVal) + +proc get_PrivateBinPathProbe*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_PrivateBinPathProbe(self, pRetVal) + +proc put_PrivateBinPathProbe*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_PrivateBinPathProbe(self, pRetVal) + +proc get_ShadowCopyDirectories*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShadowCopyDirectories(self, pRetVal) + +proc put_ShadowCopyDirectories*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ShadowCopyDirectories(self, pRetVal) + +proc get_ShadowCopyFiles*( + self: ptr IAppDomainSetup, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShadowCopyFiles(self, pRetVal) + +proc put_ShadowCopyFiles*( + self: ptr IAppDomainSetup, pRetVal: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ShadowCopyFiles(self, pRetVal) + +proc get_ToString*( + self: ptr ObjectHandle, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToString(self, pRetVal) + +proc Equals*( + self: ptr ObjectHandle, obj: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals(self, obj, pRetVal) + +proc GetHashCode*( + self: ptr ObjectHandle, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashCode(self, pRetVal) + +proc GetType*( + self: ptr ObjectHandle, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pRetVal) + +proc GetLifetimeService*( + self: ptr ObjectHandle, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLifetimeService(self, pRetVal) + +proc InitializeLifetimeService*( + self: ptr ObjectHandle, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeLifetimeService(self, pRetVal) + +proc CreateObjRef*( + self: ptr ObjectHandle, requestedType: ptr IType, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateObjRef(self, requestedType, pRetVal) + +proc Unwrap*(self: ptr ObjectHandle, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unwrap(self, pRetVal) + +proc get_ToString*(self: ptr AppDomain, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToString(self, pRetVal) + +proc Equals*( + self: ptr AppDomain, other: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals(self, other, pRetVal) + +proc GetHashCode*(self: ptr AppDomain, pRetVal: ptr int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashCode(self, pRetVal) + +proc GetType*(self: ptr AppDomain, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pRetVal) + +proc InitializeLifetimeService*( + self: ptr AppDomain, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeLifetimeService(self, pRetVal) + +proc GetLifetimeService*( + self: ptr AppDomain, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLifetimeService(self, pRetVal) + +proc get_Evidence*( + self: ptr AppDomain, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Evidence(self, pRetVal) + +proc add_DomainUnload*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_DomainUnload(self, value) + +proc remove_DomainUnload*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_DomainUnload(self, value) + +proc add_AssemblyLoad*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_AssemblyLoad(self, value) + +proc remove_AssemblyLoad*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_AssemblyLoad(self, value) + +proc add_ProcessExit*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_ProcessExit(self, value) + +proc remove_ProcessExit*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_ProcessExit(self, value) + +proc add_TypeResolve*(self: ptr AppDomain, value: POBJECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_TypeResolve(self, value) + +proc remove_TypeResolve*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_TypeResolve(self, value) + +proc add_ResourceResolve*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_ResourceResolve(self, value) + +proc remove_ResourceResolve*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_ResourceResolve(self, value) + +proc add_AssemblyResolve*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_AssemblyResolve(self, value) + +proc remove_AssemblyResolve*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_AssemblyResolve(self, value) + +proc add_UnhandledException*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_UnhandledException(self, value) + +proc remove_UnhandledException*( + self: ptr AppDomain, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_UnhandledException(self, value) + +proc DefineDynamicAssembly*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly(self, name, access, pRetVal) + +proc DefineDynamicAssembly_2*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_2(self, name, access, dir, pRetVal) + +proc DefineDynamicAssembly_3*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + Evidence: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_3(self, name, access, Evidence, pRetVal) + +proc DefineDynamicAssembly_4*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_4( + self, name, access, requiredPermissions, optionalPermissions, refusedPermissions, + pRetVal, + ) + +proc DefineDynamicAssembly_5*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + Evidence: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_5(self, name, access, dir, Evidence, pRetVal) + +proc DefineDynamicAssembly_6*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_6( + self, name, access, dir, requiredPermissions, optionalPermissions, + refusedPermissions, pRetVal, + ) + +proc DefineDynamicAssembly_7*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + Evidence: POBJECT, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_7( + self, name, access, Evidence, requiredPermissions, optionalPermissions, + refusedPermissions, pRetVal, + ) + +proc DefineDynamicAssembly_8*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + Evidence: POBJECT, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_8( + self, name, access, dir, Evidence, requiredPermissions, optionalPermissions, + refusedPermissions, pRetVal, + ) + +proc DefineDynamicAssembly_9*( + self: ptr AppDomain, + name: POBJECT, + access: AssemblyBuilderAccess, + dir: BSTR, + Evidence: POBJECT, + requiredPermissions: POBJECT, + optionalPermissions: POBJECT, + refusedPermissions: POBJECT, + IsSynchronized: VARIANT_BOOL, + pRetVal: ptr ptr AssemblyBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineDynamicAssembly_9( + self, name, access, dir, Evidence, requiredPermissions, optionalPermissions, + refusedPermissions, IsSynchronized, pRetVal, + ) + +proc CreateInstance*( + self: ptr AppDomain, + AssemblyName: BSTR, + typeName: BSTR, + pRetVal: ptr ptr ObjectHandle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, AssemblyName, typeName, pRetVal) + +proc CreateInstanceFrom*( + self: ptr AppDomain, + assemblyFile: BSTR, + typeName: BSTR, + pRetVal: ptr ptr ObjectHandle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstanceFrom(self, assemblyFile, typeName, pRetVal) + +proc CreateInstance_2*( + self: ptr AppDomain, + AssemblyName: BSTR, + typeName: BSTR, + activationAttributes: ptr SAFEARRAY, + pRetVal: ptr ptr ObjectHandle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance_2( + self, AssemblyName, typeName, activationAttributes, pRetVal + ) + +proc CreateInstanceFrom_2*( + self: ptr AppDomain, + assemblyFile: BSTR, + typeName: BSTR, + activationAttributes: ptr SAFEARRAY, + pRetVal: ptr ptr ObjectHandle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstanceFrom_2( + self, assemblyFile, typeName, activationAttributes, pRetVal + ) + +proc CreateInstance_3*( + self: ptr AppDomain, + AssemblyName: BSTR, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + bindingAttr: BindingFlags, + Binder: POBJECT, + args: ptr SAFEARRAY, + culture: POBJECT, + activationAttributes: ptr SAFEARRAY, + securityAttributes: POBJECT, + pRetVal: ptr ptr ObjectHandle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance_3( + self, AssemblyName, typeName, ignoreCase, bindingAttr, Binder, args, culture, + activationAttributes, securityAttributes, pRetVal, + ) + +proc CreateInstanceFrom_3*( + self: ptr AppDomain, + assemblyFile: BSTR, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + bindingAttr: BindingFlags, + Binder: POBJECT, + args: ptr SAFEARRAY, + culture: POBJECT, + activationAttributes: ptr SAFEARRAY, + securityAttributes: POBJECT, + pRetVal: ptr ptr ObjectHandle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstanceFrom_3( + self, assemblyFile, typeName, ignoreCase, bindingAttr, Binder, args, culture, + activationAttributes, securityAttributes, pRetVal, + ) + +proc Load*( + self: ptr AppDomain, assemblyRef: POBJECT, pRetVal: ptr ptr IAssembly +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, assemblyRef, pRetVal) + +proc Load_2*( + self: ptr AppDomain, assemblyString: BSTR, pRetVal: ptr ptr IAssembly +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load_2(self, assemblyString, pRetVal) + +proc Load_3*( + self: ptr AppDomain, rawAssembly: ptr SAFEARRAY, pRetVal: ptr ptr IAssembly +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load_3(self, rawAssembly, pRetVal) + +proc Load_4*( + self: ptr AppDomain, + rawAssembly: ptr SAFEARRAY, + rawSymbolStore: ptr SAFEARRAY, + pRetVal: ptr ptr IAssembly, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load_4(self, rawAssembly, rawSymbolStore, pRetVal) + +proc Load_5*( + self: ptr AppDomain, + rawAssembly: ptr SAFEARRAY, + rawSymbolStore: ptr SAFEARRAY, + securityEvidence: POBJECT, + pRetVal: ptr ptr IAssembly, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load_5(self, rawAssembly, rawSymbolStore, securityEvidence, pRetVal) + +proc Load_6*( + self: ptr AppDomain, + assemblyRef: POBJECT, + assemblySecurity: POBJECT, + pRetVal: ptr ptr IAssembly, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load_6(self, assemblyRef, assemblySecurity, pRetVal) + +proc Load_7*( + self: ptr AppDomain, + assemblyString: BSTR, + assemblySecurity: POBJECT, + pRetVal: ptr ptr IAssembly, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load_7(self, assemblyString, assemblySecurity, pRetVal) + +proc ExecuteAssembly*( + self: ptr AppDomain, + assemblyFile: BSTR, + assemblySecurity: POBJECT, + pRetVal: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecuteAssembly(self, assemblyFile, assemblySecurity, pRetVal) + +proc ExecuteAssembly_2*( + self: ptr AppDomain, assemblyFile: BSTR, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecuteAssembly_2(self, assemblyFile, pRetVal) + +proc ExecuteAssembly_3*( + self: ptr AppDomain, + assemblyFile: BSTR, + assemblySecurity: POBJECT, + args: ptr SAFEARRAY, + pRetVal: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecuteAssembly_3(self, assemblyFile, assemblySecurity, args, pRetVal) + +proc get_FriendlyName*( + self: ptr AppDomain, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FriendlyName(self, pRetVal) + +proc get_BaseDirectory*( + self: ptr AppDomain, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BaseDirectory(self, pRetVal) + +proc get_RelativeSearchPath*( + self: ptr AppDomain, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RelativeSearchPath(self, pRetVal) + +proc get_ShadowCopyFiles*( + self: ptr AppDomain, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShadowCopyFiles(self, pRetVal) + +proc GetAssemblies*( + self: ptr AppDomain, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAssemblies(self, pRetVal) + +proc AppendPrivatePath*(self: ptr AppDomain, Path: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AppendPrivatePath(self, Path) + +proc ClearPrivatePath*(self: ptr AppDomain): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearPrivatePath(self) + +proc SetShadowCopyPath*(self: ptr AppDomain, s: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetShadowCopyPath(self, s) + +proc ClearShadowCopyPath*(self: ptr AppDomain): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearShadowCopyPath(self) + +proc SetCachePath*(self: ptr AppDomain, s: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCachePath(self, s) + +proc SetData*( + self: ptr AppDomain, name: BSTR, data: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetData(self, name, data) + +proc GetData*( + self: ptr AppDomain, name: BSTR, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetData(self, name, pRetVal) + +proc SetAppDomainPolicy*( + self: ptr AppDomain, domainPolicy: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppDomainPolicy(self, domainPolicy) + +proc SetThreadPrincipal*( + self: ptr AppDomain, principal: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetThreadPrincipal(self, principal) + +proc SetPrincipalPolicy*( + self: ptr AppDomain, policy: PrincipalPolicy +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPrincipalPolicy(self, policy) + +proc DoCallBack*( + self: ptr AppDomain, theDelegate: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoCallBack(self, theDelegate) + +proc get_DynamicDirectory*( + self: ptr AppDomain, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DynamicDirectory(self, pRetVal) + +proc get_ToString*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToString(self, pRetVal) + +proc Equals*( + self: ptr IAssembly, other: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals(self, other, pRetVal) + +proc GetHashCode*(self: ptr IAssembly, pRetVal: ptr int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashCode(self, pRetVal) + +proc GetType*(self: ptr IAssembly, pRetVal: ptr ptr IType): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pRetVal) + +proc get_CodeBase*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CodeBase(self, pRetVal) + +proc get_EscapedCodeBase*( + self: ptr IAssembly, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_EscapedCodeBase(self, pRetVal) + +proc GetName*(self: ptr IAssembly, pRetVal: ptr POBJECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetName(self, pRetVal) + +proc GetName_2*( + self: ptr IAssembly, copiedName: VARIANT_BOOL, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetName_2(self, copiedName, pRetVal) + +proc get_FullName*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FullName(self, pRetVal) + +proc get_EntryPoint*( + self: ptr IAssembly, pRetVal: ptr ptr IMethodInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_EntryPoint(self, pRetVal) + +proc GetType_2*( + self: ptr IAssembly, name: BSTR, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType_2(self, name, pRetVal) + +proc GetType_3*( + self: ptr IAssembly, name: BSTR, throwOnError: VARIANT_BOOL, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType_3(self, name, throwOnError, pRetVal) + +proc GetExportedTypes*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExportedTypes(self, pRetVal) + +proc GetTypes*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypes(self, pRetVal) + +proc GetManifestResourceStream*( + self: ptr IAssembly, Type: ptr IType, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetManifestResourceStream(self, Type, name, pRetVal) + +proc GetManifestResourceStream_2*( + self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetManifestResourceStream_2(self, name, pRetVal) + +proc GetFile*( + self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFile(self, name, pRetVal) + +proc GetFiles*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFiles(self, pRetVal) + +proc GetFiles_2*( + self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFiles_2(self, getResourceModules, pRetVal) + +proc GetManifestResourceNames*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetManifestResourceNames(self, pRetVal) + +proc GetManifestResourceInfo*( + self: ptr IAssembly, resourceName: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetManifestResourceInfo(self, resourceName, pRetVal) + +proc get_Location*(self: ptr IAssembly, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Location(self, pRetVal) + +proc get_Evidence*( + self: ptr IAssembly, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Evidence(self, pRetVal) + +proc GetCustomAttributes*( + self: ptr IAssembly, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustomAttributes(self, attributeType, inherit, pRetVal) + +proc GetCustomAttributes_2*( + self: ptr IAssembly, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustomAttributes_2(self, inherit, pRetVal) + +proc IsDefined*( + self: ptr IAssembly, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDefined(self, attributeType, inherit, pRetVal) + +proc GetObjectData*( + self: ptr IAssembly, info: POBJECT, Context: StreamingContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectData(self, info, Context) + +proc add_ModuleResolve*( + self: ptr IAssembly, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add_ModuleResolve(self, value) + +proc remove_ModuleResolve*( + self: ptr IAssembly, value: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove_ModuleResolve(self, value) + +proc GetType_4*( + self: ptr IAssembly, + name: BSTR, + throwOnError: VARIANT_BOOL, + ignoreCase: VARIANT_BOOL, + pRetVal: ptr ptr IType, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType_4(self, name, throwOnError, ignoreCase, pRetVal) + +proc GetSatelliteAssembly*( + self: ptr IAssembly, culture: POBJECT, pRetVal: ptr ptr IAssembly +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSatelliteAssembly(self, culture, pRetVal) + +proc GetSatelliteAssembly_2*( + self: ptr IAssembly, culture: POBJECT, Version: POBJECT, pRetVal: ptr ptr IAssembly +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSatelliteAssembly_2(self, culture, Version, pRetVal) + +proc LoadModule*( + self: ptr IAssembly, + moduleName: BSTR, + rawModule: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadModule(self, moduleName, rawModule, pRetVal) + +proc LoadModule_2*( + self: ptr IAssembly, + moduleName: BSTR, + rawModule: ptr SAFEARRAY, + rawSymbolStore: ptr SAFEARRAY, + pRetVal: ptr POBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadModule_2(self, moduleName, rawModule, rawSymbolStore, pRetVal) + +proc CreateInstance*( + self: ptr IAssembly, typeName: BSTR, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, typeName, pRetVal) + +proc CreateInstance_2*( + self: ptr IAssembly, typeName: BSTR, ignoreCase: VARIANT_BOOL, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance_2(self, typeName, ignoreCase, pRetVal) + +proc CreateInstance_3*( + self: ptr IAssembly, + typeName: BSTR, + ignoreCase: VARIANT_BOOL, + bindingAttr: BindingFlags, + Binder: POBJECT, + args: ptr SAFEARRAY, + culture: POBJECT, + activationAttributes: ptr SAFEARRAY, + pRetVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance_3( + self, typeName, ignoreCase, bindingAttr, Binder, args, culture, + activationAttributes, pRetVal, + ) + +proc GetLoadedModules*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLoadedModules(self, pRetVal) + +proc GetLoadedModules_2*( + self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLoadedModules_2(self, getResourceModules, pRetVal) + +proc GetModules*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetModules(self, pRetVal) + +proc GetModules_2*( + self: ptr IAssembly, getResourceModules: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetModules_2(self, getResourceModules, pRetVal) + +proc GetModule*( + self: ptr IAssembly, name: BSTR, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetModule(self, name, pRetVal) + +proc GetReferencedAssemblies*( + self: ptr IAssembly, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetReferencedAssemblies(self, pRetVal) + +proc get_GlobalAssemblyCache*( + self: ptr IAssembly, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_GlobalAssemblyCache(self, pRetVal) + +proc GetTypeInfoCount*( + self: ptr IMethodInfo, pcTInfo: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfoCount(self, pcTInfo) + +proc GetTypeInfo*( + self: ptr IMethodInfo, iTInfo: int32, lcid: int32, ppTInfo: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo) + +proc GetIDsOfNames*( + self: ptr IMethodInfo, + riid: ptr GUID, + rgszNames: int32, + cNames: int32, + lcid: int32, + rgDispId: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId) + +proc Invoke*( + self: ptr IMethodInfo, + dispIdMember: int32, + riid: ptr GUID, + lcid: int32, + wFlags: int16, + pDispParams: int32, + pVarResult: int32, + pExcepInfo: int32, + puArgErr: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke( + self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, + puArgErr, + ) + +proc get_ToString*( + self: ptr IMethodInfo, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToString(self, pRetVal) + +proc Equals*( + self: ptr IMethodInfo, other: VARIANT, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Equals(self, other, pRetVal) + +proc GetHashCode*( + self: ptr IMethodInfo, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHashCode(self, pRetVal) + +proc GetType*( + self: ptr IMethodInfo, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pRetVal) + +proc get_MemberType*( + self: ptr IMethodInfo, pRetVal: ptr MemberTypes +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_MemberType(self, pRetVal) + +proc get_name*(self: ptr IMethodInfo, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, pRetVal) + +proc get_DeclaringType*( + self: ptr IMethodInfo, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DeclaringType(self, pRetVal) + +proc get_ReflectedType*( + self: ptr IMethodInfo, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ReflectedType(self, pRetVal) + +proc GetCustomAttributes*( + self: ptr IMethodInfo, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustomAttributes(self, attributeType, inherit, pRetVal) + +proc GetCustomAttributes_2*( + self: ptr IMethodInfo, inherit: VARIANT_BOOL, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustomAttributes_2(self, inherit, pRetVal) + +proc IsDefined*( + self: ptr IMethodInfo, + attributeType: ptr IType, + inherit: VARIANT_BOOL, + pRetVal: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDefined(self, attributeType, inherit, pRetVal) + +proc GetParameters*( + self: ptr IMethodInfo, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParameters(self, pRetVal) + +proc GetMethodImplementationFlags*( + self: ptr IMethodInfo, pRetVal: ptr MethodImplAttributes +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMethodImplementationFlags(self, pRetVal) + +proc get_MethodHandle*( + self: ptr IMethodInfo, pRetVal: POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_MethodHandle(self, pRetVal) + +proc get_Attributes*( + self: ptr IMethodInfo, pRetVal: ptr MethodAttributes +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Attributes(self, pRetVal) + +proc get_CallingConvention*( + self: ptr IMethodInfo, pRetVal: ptr CallingConventions +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CallingConvention(self, pRetVal) + +proc Invoke_2*( + self: ptr IMethodInfo, + obj: VARIANT, + invokeAttr: BindingFlags, + Binder: POBJECT, + parameters: ptr SAFEARRAY, + culture: POBJECT, + pRetVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke_2(self, obj, invokeAttr, Binder, parameters, culture, pRetVal) + +proc get_IsPublic*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsPublic(self, pRetVal) + +proc get_IsPrivate*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsPrivate(self, pRetVal) + +proc get_IsFamily*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsFamily(self, pRetVal) + +proc get_IsAssembly*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsAssembly(self, pRetVal) + +proc get_IsFamilyAndAssembly*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsFamilyAndAssembly(self, pRetVal) + +proc get_IsFamilyOrAssembly*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsFamilyOrAssembly(self, pRetVal) + +proc get_IsStatic*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsStatic(self, pRetVal) + +proc get_IsFinal*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsFinal(self, pRetVal) + +proc get_IsVirtual*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsVirtual(self, pRetVal) + +proc get_IsHideBySig*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsHideBySig(self, pRetVal) + +proc get_IsAbstract*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsAbstract(self, pRetVal) + +proc get_IsSpecialName*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsSpecialName(self, pRetVal) + +proc get_IsConstructor*( + self: ptr IMethodInfo, pRetVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsConstructor(self, pRetVal) + +proc Invoke_3*( + self: ptr IMethodInfo, obj: VARIANT, parameters: ptr SAFEARRAY, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke_3(self, obj, parameters, pRetVal) + +proc get_returnType*( + self: ptr IMethodInfo, pRetVal: ptr ptr IType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_returnType(self, pRetVal) + +proc get_ReturnTypeCustomAttributes*( + self: ptr IMethodInfo, pRetVal: ptr POBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ReturnTypeCustomAttributes(self, pRetVal) + +proc GetBaseDefinition*( + self: ptr IMethodInfo, pRetVal: ptr ptr IMethodInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBaseDefinition(self, pRetVal) + +converter winimConverterIGCHostToIUnknown*(x: ptr IGCHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGCHost2ToIGCHost*(x: ptr IGCHost2): ptr IGCHost = + cast[ptr IGCHost](x) + +converter winimConverterIGCHost2ToIUnknown*(x: ptr IGCHost2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIVEHandlerToIUnknown*(x: ptr IVEHandler): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIValidatorToIUnknown*(x: ptr IValidator): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRValidatorToIUnknown*(x: ptr ICLRValidator): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectHandleToIUnknown*(x: ptr IObjectHandle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAppDomainBindingToIUnknown*( + x: ptr IAppDomainBinding +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGCThreadControlToIUnknown*( + x: ptr IGCThreadControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGCHostControlToIUnknown*(x: ptr IGCHostControl): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICorThreadpoolToIUnknown*(x: ptr ICorThreadpool): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDebuggerThreadControlToIUnknown*( + x: ptr IDebuggerThreadControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDebuggerInfoToIUnknown*(x: ptr IDebuggerInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICorConfigurationToIUnknown*( + x: ptr ICorConfiguration +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICorRuntimeHostToIUnknown*( + x: ptr ICorRuntimeHost +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRMemoryNotificationCallbackToIUnknown*( + x: ptr ICLRMemoryNotificationCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostMallocToIUnknown*(x: ptr IHostMalloc): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostMemoryManagerToIUnknown*( + x: ptr IHostMemoryManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRTaskToIUnknown*(x: ptr ICLRTask): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRTask2ToICLRTask*(x: ptr ICLRTask2): ptr ICLRTask = + cast[ptr ICLRTask](x) + +converter winimConverterICLRTask2ToIUnknown*(x: ptr ICLRTask2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostTaskToIUnknown*(x: ptr IHostTask): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRTaskManagerToIUnknown*( + x: ptr ICLRTaskManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostTaskManagerToIUnknown*( + x: ptr IHostTaskManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostThreadpoolManagerToIUnknown*( + x: ptr IHostThreadpoolManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRIoCompletionManagerToIUnknown*( + x: ptr ICLRIoCompletionManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostIoCompletionManagerToIUnknown*( + x: ptr IHostIoCompletionManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRDebugManagerToIUnknown*( + x: ptr ICLRDebugManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRErrorReportingManagerToIUnknown*( + x: ptr ICLRErrorReportingManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostCrstToIUnknown*(x: ptr IHostCrst): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostAutoEventToIUnknown*(x: ptr IHostAutoEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostManualEventToIUnknown*( + x: ptr IHostManualEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostSemaphoreToIUnknown*(x: ptr IHostSemaphore): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRSyncManagerToIUnknown*( + x: ptr ICLRSyncManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostSyncManagerToIUnknown*( + x: ptr IHostSyncManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRPolicyManagerToIUnknown*( + x: ptr ICLRPolicyManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostPolicyManagerToIUnknown*( + x: ptr IHostPolicyManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActionOnCLREventToIUnknown*( + x: ptr IActionOnCLREvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLROnEventManagerToIUnknown*( + x: ptr ICLROnEventManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostGCManagerToIUnknown*(x: ptr IHostGCManager): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRAssemblyReferenceListToIUnknown*( + x: ptr ICLRAssemblyReferenceList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRReferenceAssemblyEnumToIUnknown*( + x: ptr ICLRReferenceAssemblyEnum +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRProbingAssemblyEnumToIUnknown*( + x: ptr ICLRProbingAssemblyEnum +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRAssemblyIdentityManagerToIUnknown*( + x: ptr ICLRAssemblyIdentityManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRHostBindingPolicyManagerToIUnknown*( + x: ptr ICLRHostBindingPolicyManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRGCManagerToIUnknown*(x: ptr ICLRGCManager): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRGCManager2ToICLRGCManager*( + x: ptr ICLRGCManager2 +): ptr ICLRGCManager = + cast[ptr ICLRGCManager](x) + +converter winimConverterICLRGCManager2ToIUnknown*(x: ptr ICLRGCManager2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostAssemblyStoreToIUnknown*( + x: ptr IHostAssemblyStore +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostAssemblyManagerToIUnknown*( + x: ptr IHostAssemblyManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostControlToIUnknown*(x: ptr IHostControl): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRControlToIUnknown*(x: ptr ICLRControl): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRRuntimeHostToIUnknown*( + x: ptr ICLRRuntimeHost +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRHostProtectionManagerToIUnknown*( + x: ptr ICLRHostProtectionManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRDomainManagerToIUnknown*( + x: ptr ICLRDomainManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeNameToIUnknown*(x: ptr ITypeName): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeNameBuilderToIUnknown*( + x: ptr ITypeNameBuilder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeNameFactoryToIUnknown*( + x: ptr ITypeNameFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApartmentCallbackToIUnknown*( + x: ptr IApartmentCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIManagedObjectToIUnknown*(x: ptr IManagedObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICatalogServicesToIUnknown*( + x: ptr ICatalogServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostSecurityContextToIUnknown*( + x: ptr IHostSecurityContext +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostSecurityManagerToIUnknown*( + x: ptr IHostSecurityManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRAppDomainResourceMonitorToIUnknown*( + x: ptr ICLRAppDomainResourceMonitor +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRMetaHostToIUnknown*(x: ptr ICLRMetaHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRMetaHostPolicyToIUnknown*( + x: ptr ICLRMetaHostPolicy +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRProfilingToIUnknown*(x: ptr ICLRProfiling): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRDebuggingLibraryProviderToIUnknown*( + x: ptr ICLRDebuggingLibraryProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRDebuggingToIUnknown*(x: ptr ICLRDebugging): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRRuntimeInfoToIUnknown*( + x: ptr ICLRRuntimeInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRStrongNameToIUnknown*(x: ptr ICLRStrongName): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRStrongName2ToIUnknown*( + x: ptr ICLRStrongName2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICLRStrongName3ToIUnknown*( + x: ptr ICLRStrongName3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectToIDispatch*(x: ptr IObject): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIObjectToIUnknown*(x: ptr IObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeToIUnknown*(x: ptr IType): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAppDomainSetupToIUnknown*( + x: ptr IAppDomainSetup +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterObjectHandleToIDispatch*(x: ptr ObjectHandle): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterObjectHandleToIUnknown*(x: ptr ObjectHandle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterAppDomainToIDispatch*(x: ptr AppDomain): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterAppDomainToIUnknown*(x: ptr AppDomain): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAssemblyToIDispatch*(x: ptr IAssembly): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIAssemblyToIUnknown*(x: ptr IAssembly): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMethodInfoToIUnknown*(x: ptr IMethodInfo): ptr IUnknown = + cast[ptr IUnknown](x) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/mshtml.nim --- a/semicongine/thirdparty/winim/winim/inc/mshtml.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/mshtml.nim Thu Aug 22 18:32:21 2024 +0700 @@ -280,12 +280,22 @@ g*: float32 b*: float32 a*: float32 + DXGI_RGBA* = D3DCOLORVALUE IClassFactoryEx* {.pure.} = object lpVtbl*: ptr IClassFactoryExVtbl + IClassFactoryExVtbl* {.pure, inheritable.} = object of IClassFactoryVtbl - CreateInstanceWithContext*: proc(self: ptr IClassFactoryEx, punkContext: ptr IUnknown, punkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + CreateInstanceWithContext*: proc( + self: ptr IClassFactoryEx, + punkContext: ptr IUnknown, + punkOuter: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IClassFactory3* = IClassFactoryEx + const SID_VariantConversion* = DEFINE_GUID("1f101481-bccd-11d0-9336-00a0c90dcaa9") SID_GetCaller* = DEFINE_GUID("4717cc40-bcb9-11d0-9336-00a0c90dcaa9") @@ -311,8 +321,12 @@ fdexPropCannotConstruct* = 0x800 fdexPropCanSourceEvents* = 0x1000 fdexPropCannotSourceEvents* = 0x02000 - grfdexPropCanAll* = fdexPropCanGet or fdexPropCanPut or fdexPropCanPutRef or fdexPropCanCall or fdexPropCanConstruct or fdexPropCanSourceEvents - grfdexPropCannotAll* = fdexPropCannotGet or fdexPropCannotPut or fdexPropCannotPutRef or fdexPropCannotCall or fdexPropCannotConstruct or fdexPropCannotSourceEvents + grfdexPropCanAll* = + fdexPropCanGet or fdexPropCanPut or fdexPropCanPutRef or fdexPropCanCall or + fdexPropCanConstruct or fdexPropCanSourceEvents + grfdexPropCannotAll* = + fdexPropCannotGet or fdexPropCannotPut or fdexPropCannotPutRef or fdexPropCannotCall or + fdexPropCannotConstruct or fdexPropCannotSourceEvents grfdexPropExtraAll* = fdexPropNoSideEffects or fdexPropDynamicType grfdexPropAll* = grfdexPropCanAll or grfdexPropCannotAll or grfdexPropExtraAll fdexEnumDefault* = 0x1 @@ -1398,7 +1412,8 @@ IID_IHTMLCSSStyleDeclaration* = DEFINE_GUID("30510740-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLCSSStyleDeclaration2* = DEFINE_GUID("305107d1-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleEnabled* = DEFINE_GUID("305104c2-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLCSSStyleDeclaration* = DEFINE_GUID("3059009a-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLCSSStyleDeclaration* = + DEFINE_GUID("3059009a-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLCSSStyleDeclaration* = DEFINE_GUID("3059009a-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLCSSStyleDeclaration* = DEFINE_GUID("30510741-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyle* = DEFINE_GUID("3050f25e-98b5-11cf-bb82-00aa00bdce0b") @@ -1535,7 +1550,8 @@ IID_IHTMLAttributeCollection4* = DEFINE_GUID("305106fa-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLDOMChildrenCollection* = DEFINE_GUID("3050f5ab-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLDOMChildrenCollection2* = DEFINE_GUID("30510791-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLAttributeCollection* = DEFINE_GUID("3050f56c-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLAttributeCollection* = + DEFINE_GUID("3050f56c-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLAttributeCollection* = DEFINE_GUID("3050f56c-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLAttributeCollection* = DEFINE_GUID("3050f4cc-98b5-11cf-bb82-00aa00bdce0b") DIID_DispStaticNodeList* = DEFINE_GUID("3050f59b-98b5-11cf-bb82-00aa00bdce0b") @@ -1712,23 +1728,32 @@ IID_IHTMLStyleSheetRule* = DEFINE_GUID("3050f357-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheetRuleApplied* = DEFINE_GUID("305104c1-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheetRule2* = DEFINE_GUID("305106fd-98b5-11cf-bb82-00aa00bdce0b") - IID_IHTMLStyleSheetRulesCollection* = DEFINE_GUID("3050f2e5-98b5-11cf-bb82-00aa00bdce0b") - IID_IHTMLStyleSheetRulesCollection2* = DEFINE_GUID("305106e8-98b5-11cf-bb82-00aa00bdce0b") + IID_IHTMLStyleSheetRulesCollection* = + DEFINE_GUID("3050f2e5-98b5-11cf-bb82-00aa00bdce0b") + IID_IHTMLStyleSheetRulesCollection2* = + DEFINE_GUID("305106e8-98b5-11cf-bb82-00aa00bdce0b") DIID_DispHTMLStyleSheetRule* = DEFINE_GUID("3050f50e-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLStyleSheetRule* = DEFINE_GUID("3050f50e-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLStyleSheetRule* = DEFINE_GUID("3050f3ce-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLStyleSheetRulesCollection* = DEFINE_GUID("3050f52f-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLStyleSheetRulesCollection* = DEFINE_GUID("3050f52f-98b5-11cf-bb82-00aa00bdce0b") - CLSID_HTMLStyleSheetRulesCollection* = DEFINE_GUID("3050f3cd-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLStyleSheetRulesCollection* = + DEFINE_GUID("3050f52f-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLStyleSheetRulesCollection* = + DEFINE_GUID("3050f52f-98b5-11cf-bb82-00aa00bdce0b") + CLSID_HTMLStyleSheetRulesCollection* = + DEFINE_GUID("3050f3cd-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheetPage* = DEFINE_GUID("3050f7ee-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheetPage2* = DEFINE_GUID("305106ed-98b5-11cf-bb82-00aa00bdce0b") - IID_IHTMLStyleSheetPagesCollection* = DEFINE_GUID("3050f7f0-98b5-11cf-bb82-00aa00bdce0b") + IID_IHTMLStyleSheetPagesCollection* = + DEFINE_GUID("3050f7f0-98b5-11cf-bb82-00aa00bdce0b") DIID_DispHTMLStyleSheetPage* = DEFINE_GUID("3050f540-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLStyleSheetPage* = DEFINE_GUID("3050f540-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLStyleSheetPage* = DEFINE_GUID("3050f7ef-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLStyleSheetPagesCollection* = DEFINE_GUID("3050f543-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLStyleSheetPagesCollection* = DEFINE_GUID("3050f543-98b5-11cf-bb82-00aa00bdce0b") - CLSID_HTMLStyleSheetPagesCollection* = DEFINE_GUID("3050f7f1-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLStyleSheetPagesCollection* = + DEFINE_GUID("3050f543-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLStyleSheetPagesCollection* = + DEFINE_GUID("3050f543-98b5-11cf-bb82-00aa00bdce0b") + CLSID_HTMLStyleSheetPagesCollection* = + DEFINE_GUID("3050f7f1-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheet* = DEFINE_GUID("3050f2e3-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheet2* = DEFINE_GUID("3050f3d1-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheet3* = DEFINE_GUID("30510496-98b5-11cf-bb82-00aa00bdce0b") @@ -1738,8 +1763,10 @@ CLSID_HTMLStyleSheet* = DEFINE_GUID("3050f2e4-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheetsCollection* = DEFINE_GUID("3050f37e-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLStyleSheetsCollection2* = DEFINE_GUID("305106e7-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLStyleSheetsCollection* = DEFINE_GUID("3050f547-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLStyleSheetsCollection* = DEFINE_GUID("3050f547-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLStyleSheetsCollection* = + DEFINE_GUID("3050f547-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLStyleSheetsCollection* = + DEFINE_GUID("3050f547-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLStyleSheetsCollection* = DEFINE_GUID("3050f37f-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLLinkElementEvents2* = DEFINE_GUID("3050f61d-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLLinkElementEvents2* = DEFINE_GUID("3050f61d-98b5-11cf-bb82-00aa00bdce0b") @@ -1962,18 +1989,24 @@ IID_HTMLButtonElementEvents2* = DEFINE_GUID("3050f617-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLButtonElementEvents* = DEFINE_GUID("3050f2b3-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLButtonElementEvents* = DEFINE_GUID("3050f2b3-98b5-11cf-bb82-00aa00bdce0b") - DIID_HTMLInputTextElementEvents2* = DEFINE_GUID("3050f618-98b5-11cf-bb82-00aa00bdce0b") + DIID_HTMLInputTextElementEvents2* = + DEFINE_GUID("3050f618-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLInputTextElementEvents2* = DEFINE_GUID("3050f618-98b5-11cf-bb82-00aa00bdce0b") - DIID_HTMLOptionButtonElementEvents2* = DEFINE_GUID("3050f619-98b5-11cf-bb82-00aa00bdce0b") - IID_HTMLOptionButtonElementEvents2* = DEFINE_GUID("3050f619-98b5-11cf-bb82-00aa00bdce0b") - DIID_HTMLInputFileElementEvents2* = DEFINE_GUID("3050f61a-98b5-11cf-bb82-00aa00bdce0b") + DIID_HTMLOptionButtonElementEvents2* = + DEFINE_GUID("3050f619-98b5-11cf-bb82-00aa00bdce0b") + IID_HTMLOptionButtonElementEvents2* = + DEFINE_GUID("3050f619-98b5-11cf-bb82-00aa00bdce0b") + DIID_HTMLInputFileElementEvents2* = + DEFINE_GUID("3050f61a-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLInputFileElementEvents2* = DEFINE_GUID("3050f61a-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLInputImageEvents2* = DEFINE_GUID("3050f61b-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLInputImageEvents2* = DEFINE_GUID("3050f61b-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLInputTextElementEvents* = DEFINE_GUID("3050f2a7-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLInputTextElementEvents* = DEFINE_GUID("3050f2a7-98b5-11cf-bb82-00aa00bdce0b") - DIID_HTMLOptionButtonElementEvents* = DEFINE_GUID("3050f2bd-98b5-11cf-bb82-00aa00bdce0b") - IID_HTMLOptionButtonElementEvents* = DEFINE_GUID("3050f2bd-98b5-11cf-bb82-00aa00bdce0b") + DIID_HTMLOptionButtonElementEvents* = + DEFINE_GUID("3050f2bd-98b5-11cf-bb82-00aa00bdce0b") + IID_HTMLOptionButtonElementEvents* = + DEFINE_GUID("3050f2bd-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLInputFileElementEvents* = DEFINE_GUID("3050f2af-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLInputFileElementEvents* = DEFINE_GUID("3050f2af-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLInputImageEvents* = DEFINE_GUID("3050f2c3-98b5-11cf-bb82-00aa00bdce0b") @@ -2149,13 +2182,20 @@ IID_DispHTMLWindowProxy* = DEFINE_GUID("3050f55e-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLWindowProxy* = DEFINE_GUID("3050f391-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLDocumentCompatibleInfo* = DEFINE_GUID("3051041a-98b5-11cf-bb82-00aa00bdce0b") - IID_IHTMLDocumentCompatibleInfoCollection* = DEFINE_GUID("30510418-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLDocumentCompatibleInfo* = DEFINE_GUID("3050f53e-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLDocumentCompatibleInfo* = DEFINE_GUID("3050f53e-98b5-11cf-bb82-00aa00bdce0b") - CLSID_HTMLDocumentCompatibleInfo* = DEFINE_GUID("3051041b-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLDocumentCompatibleInfoCollection* = DEFINE_GUID("3050f53f-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLDocumentCompatibleInfoCollection* = DEFINE_GUID("3050f53f-98b5-11cf-bb82-00aa00bdce0b") - CLSID_HTMLDocumentCompatibleInfoCollection* = DEFINE_GUID("30510419-98b5-11cf-bb82-00aa00bdce0b") + IID_IHTMLDocumentCompatibleInfoCollection* = + DEFINE_GUID("30510418-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLDocumentCompatibleInfo* = + DEFINE_GUID("3050f53e-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLDocumentCompatibleInfo* = + DEFINE_GUID("3050f53e-98b5-11cf-bb82-00aa00bdce0b") + CLSID_HTMLDocumentCompatibleInfo* = + DEFINE_GUID("3051041b-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLDocumentCompatibleInfoCollection* = + DEFINE_GUID("3050f53f-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLDocumentCompatibleInfoCollection* = + DEFINE_GUID("3050f53f-98b5-11cf-bb82-00aa00bdce0b") + CLSID_HTMLDocumentCompatibleInfoCollection* = + DEFINE_GUID("30510419-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLDocumentEvents4* = DEFINE_GUID("30510737-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLDocumentEvents4* = DEFINE_GUID("30510737-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLDocumentEvents3* = DEFINE_GUID("3050f5a0-98b5-11cf-bb82-00aa00bdce0b") @@ -2510,8 +2550,10 @@ DIID_DispCanvasImageData* = DEFINE_GUID("3059008f-98b5-11cf-bb82-00aa00bdce0b") IID_DispCanvasImageData* = DEFINE_GUID("3059008f-98b5-11cf-bb82-00aa00bdce0b") CLSID_CanvasImageData* = DEFINE_GUID("3051071b-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispCanvasRenderingContext2D* = DEFINE_GUID("30590082-98b5-11cf-bb82-00aa00bdce0b") - IID_DispCanvasRenderingContext2D* = DEFINE_GUID("30590082-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispCanvasRenderingContext2D* = + DEFINE_GUID("30590082-98b5-11cf-bb82-00aa00bdce0b") + IID_DispCanvasRenderingContext2D* = + DEFINE_GUID("30590082-98b5-11cf-bb82-00aa00bdce0b") CLSID_CanvasRenderingContext2D* = DEFINE_GUID("30510700-98b5-11cf-bb82-00aa00bdce0b") DIID_DispHTMLCanvasElement* = DEFINE_GUID("3059007b-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLCanvasElement* = DEFINE_GUID("3059007b-98b5-11cf-bb82-00aa00bdce0b") @@ -2533,8 +2575,10 @@ IID_DispDOMStorageEvent* = DEFINE_GUID("30590093-98b5-11cf-bb82-00aa00bdce0b") CLSID_DOMStorageEvent* = DEFINE_GUID("30510723-98b5-11cf-bb82-00aa00bdce0b") IID_IXMLHttpRequestEventTarget* = DEFINE_GUID("30510830-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispXMLHttpRequestEventTarget* = DEFINE_GUID("305900e7-98b5-11cf-bb82-00aa00bdce0b") - IID_DispXMLHttpRequestEventTarget* = DEFINE_GUID("305900e7-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispXMLHttpRequestEventTarget* = + DEFINE_GUID("305900e7-98b5-11cf-bb82-00aa00bdce0b") + IID_DispXMLHttpRequestEventTarget* = + DEFINE_GUID("305900e7-98b5-11cf-bb82-00aa00bdce0b") CLSID_XMLHttpRequestEventTarget* = DEFINE_GUID("30510831-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLXMLHttpRequestEvents* = DEFINE_GUID("30510498-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLXMLHttpRequestEvents* = DEFINE_GUID("30510498-98b5-11cf-bb82-00aa00bdce0b") @@ -2561,7 +2605,8 @@ IID_ISVGTransformable* = DEFINE_GUID("305104dc-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGTests* = DEFINE_GUID("305104dd-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGLangSpace* = DEFINE_GUID("305104de-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGExternalResourcesRequired* = DEFINE_GUID("305104df-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGExternalResourcesRequired* = + DEFINE_GUID("305104df-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGFitToViewBox* = DEFINE_GUID("305104e0-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGZoomAndPan* = DEFINE_GUID("305104e1-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGURIReference* = DEFINE_GUID("305104e3-98b5-11cf-bb82-00aa00bdce0b") @@ -2661,16 +2706,26 @@ IID_ISVGPathSegLinetoRel* = DEFINE_GUID("30510501-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGPathSegCurvetoCubicAbs* = DEFINE_GUID("30510502-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGPathSegCurvetoCubicRel* = DEFINE_GUID("30510503-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegCurvetoCubicSmoothAbs* = DEFINE_GUID("3051050c-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegCurvetoCubicSmoothRel* = DEFINE_GUID("3051050d-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegCurvetoQuadraticAbs* = DEFINE_GUID("30510504-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegCurvetoQuadraticRel* = DEFINE_GUID("30510505-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegCurvetoQuadraticSmoothAbs* = DEFINE_GUID("3051050e-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegCurvetoQuadraticSmoothRel* = DEFINE_GUID("3051050f-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegLinetoHorizontalAbs* = DEFINE_GUID("30510508-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegLinetoHorizontalRel* = DEFINE_GUID("30510509-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegLinetoVerticalAbs* = DEFINE_GUID("3051050a-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGPathSegLinetoVerticalRel* = DEFINE_GUID("3051050b-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegCurvetoCubicSmoothAbs* = + DEFINE_GUID("3051050c-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegCurvetoCubicSmoothRel* = + DEFINE_GUID("3051050d-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegCurvetoQuadraticAbs* = + DEFINE_GUID("30510504-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegCurvetoQuadraticRel* = + DEFINE_GUID("30510505-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegCurvetoQuadraticSmoothAbs* = + DEFINE_GUID("3051050e-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegCurvetoQuadraticSmoothRel* = + DEFINE_GUID("3051050f-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegLinetoHorizontalAbs* = + DEFINE_GUID("30510508-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegLinetoHorizontalRel* = + DEFINE_GUID("30510509-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegLinetoVerticalAbs* = + DEFINE_GUID("3051050a-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGPathSegLinetoVerticalRel* = + DEFINE_GUID("3051050b-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGPathSeg* = DEFINE_GUID("305105b3-98b5-11cf-bb82-00aa00bdce0b") DIID_DispSVGPathSegArcAbs* = DEFINE_GUID("30590013-98b5-11cf-bb82-00aa00bdce0b") IID_DispSVGPathSegArcAbs* = DEFINE_GUID("30590013-98b5-11cf-bb82-00aa00bdce0b") @@ -2693,42 +2748,76 @@ DIID_DispSVGPathSegLinetoRel* = DEFINE_GUID("30590021-98b5-11cf-bb82-00aa00bdce0b") IID_DispSVGPathSegLinetoRel* = DEFINE_GUID("30590021-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGPathSegLinetoRel* = DEFINE_GUID("305105c9-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoCubicAbs* = DEFINE_GUID("30590016-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoCubicAbs* = DEFINE_GUID("30590016-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoCubicAbs* = + DEFINE_GUID("30590016-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoCubicAbs* = + DEFINE_GUID("30590016-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGPathSegCurvetoCubicAbs* = DEFINE_GUID("305105be-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoCubicRel* = DEFINE_GUID("30590017-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoCubicRel* = DEFINE_GUID("30590017-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoCubicRel* = + DEFINE_GUID("30590017-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoCubicRel* = + DEFINE_GUID("30590017-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGPathSegCurvetoCubicRel* = DEFINE_GUID("305105bf-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoCubicSmoothAbs* = DEFINE_GUID("30590018-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoCubicSmoothAbs* = DEFINE_GUID("30590018-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegCurvetoCubicSmoothAbs* = DEFINE_GUID("305105c0-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoCubicSmoothRel* = DEFINE_GUID("30590019-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoCubicSmoothRel* = DEFINE_GUID("30590019-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegCurvetoCubicSmoothRel* = DEFINE_GUID("305105c1-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoQuadraticAbs* = DEFINE_GUID("3059001a-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoQuadraticAbs* = DEFINE_GUID("3059001a-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegCurvetoQuadraticAbs* = DEFINE_GUID("305105c2-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoQuadraticRel* = DEFINE_GUID("3059001b-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoQuadraticRel* = DEFINE_GUID("3059001b-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegCurvetoQuadraticRel* = DEFINE_GUID("305105c3-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoQuadraticSmoothAbs* = DEFINE_GUID("3059001c-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoQuadraticSmoothAbs* = DEFINE_GUID("3059001c-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegCurvetoQuadraticSmoothAbs* = DEFINE_GUID("305105c4-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegCurvetoQuadraticSmoothRel* = DEFINE_GUID("3059001d-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegCurvetoQuadraticSmoothRel* = DEFINE_GUID("3059001d-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegCurvetoQuadraticSmoothRel* = DEFINE_GUID("305105c5-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegLinetoHorizontalAbs* = DEFINE_GUID("3059001f-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegLinetoHorizontalAbs* = DEFINE_GUID("3059001f-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegLinetoHorizontalAbs* = DEFINE_GUID("305105c7-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegLinetoHorizontalRel* = DEFINE_GUID("30590020-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegLinetoHorizontalRel* = DEFINE_GUID("30590020-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegLinetoHorizontalRel* = DEFINE_GUID("305105c8-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegLinetoVerticalAbs* = DEFINE_GUID("30590022-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegLinetoVerticalAbs* = DEFINE_GUID("30590022-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegLinetoVerticalAbs* = DEFINE_GUID("305105ca-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGPathSegLinetoVerticalRel* = DEFINE_GUID("30590023-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGPathSegLinetoVerticalRel* = DEFINE_GUID("30590023-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGPathSegLinetoVerticalRel* = DEFINE_GUID("305105cb-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoCubicSmoothAbs* = + DEFINE_GUID("30590018-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoCubicSmoothAbs* = + DEFINE_GUID("30590018-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegCurvetoCubicSmoothAbs* = + DEFINE_GUID("305105c0-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoCubicSmoothRel* = + DEFINE_GUID("30590019-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoCubicSmoothRel* = + DEFINE_GUID("30590019-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegCurvetoCubicSmoothRel* = + DEFINE_GUID("305105c1-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoQuadraticAbs* = + DEFINE_GUID("3059001a-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoQuadraticAbs* = + DEFINE_GUID("3059001a-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegCurvetoQuadraticAbs* = + DEFINE_GUID("305105c2-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoQuadraticRel* = + DEFINE_GUID("3059001b-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoQuadraticRel* = + DEFINE_GUID("3059001b-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegCurvetoQuadraticRel* = + DEFINE_GUID("305105c3-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoQuadraticSmoothAbs* = + DEFINE_GUID("3059001c-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoQuadraticSmoothAbs* = + DEFINE_GUID("3059001c-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegCurvetoQuadraticSmoothAbs* = + DEFINE_GUID("305105c4-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegCurvetoQuadraticSmoothRel* = + DEFINE_GUID("3059001d-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegCurvetoQuadraticSmoothRel* = + DEFINE_GUID("3059001d-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegCurvetoQuadraticSmoothRel* = + DEFINE_GUID("305105c5-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegLinetoHorizontalAbs* = + DEFINE_GUID("3059001f-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegLinetoHorizontalAbs* = + DEFINE_GUID("3059001f-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegLinetoHorizontalAbs* = + DEFINE_GUID("305105c7-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegLinetoHorizontalRel* = + DEFINE_GUID("30590020-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegLinetoHorizontalRel* = + DEFINE_GUID("30590020-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegLinetoHorizontalRel* = + DEFINE_GUID("305105c8-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegLinetoVerticalAbs* = + DEFINE_GUID("30590022-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegLinetoVerticalAbs* = + DEFINE_GUID("30590022-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegLinetoVerticalAbs* = + DEFINE_GUID("305105ca-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGPathSegLinetoVerticalRel* = + DEFINE_GUID("30590023-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGPathSegLinetoVerticalRel* = + DEFINE_GUID("30590023-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGPathSegLinetoVerticalRel* = + DEFINE_GUID("305105cb-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGPathSegList* = DEFINE_GUID("30510510-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGPathSegList* = DEFINE_GUID("305105b4-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGPoint* = DEFINE_GUID("305104f4-98b5-11cf-bb82-00aa00bdce0b") @@ -2758,12 +2847,16 @@ DIID_DispSVGUseElement* = DEFINE_GUID("30590010-98b5-11cf-bb82-00aa00bdce0b") IID_DispSVGUseElement* = DEFINE_GUID("30590010-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGUseElement* = DEFINE_GUID("30510590-98b5-11cf-bb82-00aa00bdce0b") - IID_IHTMLStyleSheetRulesAppliedCollection* = DEFINE_GUID("305104c0-98b5-11cf-bb82-00aa00bdce0b") + IID_IHTMLStyleSheetRulesAppliedCollection* = + DEFINE_GUID("305104c0-98b5-11cf-bb82-00aa00bdce0b") IID_IRulesApplied* = DEFINE_GUID("305104bf-98b5-11cf-bb82-00aa00bdce0b") IID_IRulesAppliedCollection* = DEFINE_GUID("305104be-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLStyleSheetRulesAppliedCollection* = DEFINE_GUID("3050f5a6-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLStyleSheetRulesAppliedCollection* = DEFINE_GUID("3050f5a6-98b5-11cf-bb82-00aa00bdce0b") - CLSID_HTMLStyleSheetRulesAppliedCollection* = DEFINE_GUID("eb36f845-2395-4719-b85c-d0d80e184bd9") + DIID_DispHTMLStyleSheetRulesAppliedCollection* = + DEFINE_GUID("3050f5a6-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLStyleSheetRulesAppliedCollection* = + DEFINE_GUID("3050f5a6-98b5-11cf-bb82-00aa00bdce0b") + CLSID_HTMLStyleSheetRulesAppliedCollection* = + DEFINE_GUID("eb36f845-2395-4719-b85c-d0d80e184bd9") DIID_DispRulesApplied* = DEFINE_GUID("3050f5a5-98b5-11cf-bb82-00aa00bdce0b") IID_DispRulesApplied* = DEFINE_GUID("3050f5a5-98b5-11cf-bb82-00aa00bdce0b") CLSID_RulesApplied* = DEFINE_GUID("7c803920-7a53-4d26-98ac-fdd23e6b9e01") @@ -2839,8 +2932,10 @@ DIID_DispSVGTextElement* = DEFINE_GUID("30590037-98b5-11cf-bb82-00aa00bdce0b") IID_DispSVGTextElement* = DEFINE_GUID("30590037-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGTextElement* = DEFINE_GUID("305105df-98b5-11cf-bb82-00aa00bdce0b") - IID_ISVGAnimatedPreserveAspectRatio* = DEFINE_GUID("305104fb-98b5-11cf-bb82-00aa00bdce0b") - CLSID_SVGAnimatedPreserveAspectRatio* = DEFINE_GUID("305105ce-98b5-11cf-bb82-00aa00bdce0b") + IID_ISVGAnimatedPreserveAspectRatio* = + DEFINE_GUID("305104fb-98b5-11cf-bb82-00aa00bdce0b") + CLSID_SVGAnimatedPreserveAspectRatio* = + DEFINE_GUID("305105ce-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGImageElement* = DEFINE_GUID("305104f0-98b5-11cf-bb82-00aa00bdce0b") DIID_DispSVGImageElement* = DEFINE_GUID("30590027-98b5-11cf-bb82-00aa00bdce0b") IID_DispSVGImageElement* = DEFINE_GUID("30590027-98b5-11cf-bb82-00aa00bdce0b") @@ -2863,12 +2958,16 @@ IID_DispSVGGradientElement* = DEFINE_GUID("3059002e-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGGradientElement* = DEFINE_GUID("305105d6-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGLinearGradientElement* = DEFINE_GUID("30510529-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGLinearGradientElement* = DEFINE_GUID("3059002a-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGLinearGradientElement* = DEFINE_GUID("3059002a-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGLinearGradientElement* = + DEFINE_GUID("3059002a-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGLinearGradientElement* = + DEFINE_GUID("3059002a-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGLinearGradientElement* = DEFINE_GUID("305105d2-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGRadialGradientElement* = DEFINE_GUID("3051052a-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGRadialGradientElement* = DEFINE_GUID("3059002b-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGRadialGradientElement* = DEFINE_GUID("3059002b-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGRadialGradientElement* = + DEFINE_GUID("3059002b-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGRadialGradientElement* = + DEFINE_GUID("3059002b-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGRadialGradientElement* = DEFINE_GUID("305105d3-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGMaskElement* = DEFINE_GUID("3051052e-98b5-11cf-bb82-00aa00bdce0b") DIID_DispSVGMaskElement* = DEFINE_GUID("3059003c-98b5-11cf-bb82-00aa00bdce0b") @@ -3056,8 +3155,10 @@ IID_DispSVGTextContentElement* = DEFINE_GUID("30590035-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGTextContentElement* = DEFINE_GUID("305105dd-98b5-11cf-bb82-00aa00bdce0b") IID_ISVGTextPositioningElement* = DEFINE_GUID("3051051b-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispSVGTextPositioningElement* = DEFINE_GUID("30590038-98b5-11cf-bb82-00aa00bdce0b") - IID_DispSVGTextPositioningElement* = DEFINE_GUID("30590038-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispSVGTextPositioningElement* = + DEFINE_GUID("30590038-98b5-11cf-bb82-00aa00bdce0b") + IID_DispSVGTextPositioningElement* = + DEFINE_GUID("30590038-98b5-11cf-bb82-00aa00bdce0b") CLSID_SVGTextPositioningElement* = DEFINE_GUID("305105e0-98b5-11cf-bb82-00aa00bdce0b") IID_IDOMDocumentType* = DEFINE_GUID("30510738-98b5-11cf-bb82-00aa00bdce0b") DIID_DispDOMDocumentType* = DEFINE_GUID("30590098-98b5-11cf-bb82-00aa00bdce0b") @@ -3072,8 +3173,10 @@ IID_DispTreeWalker* = DEFINE_GUID("3059009d-98b5-11cf-bb82-00aa00bdce0b") CLSID_TreeWalker* = DEFINE_GUID("30510747-98b5-11cf-bb82-00aa00bdce0b") IID_IDOMProcessingInstruction* = DEFINE_GUID("30510742-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispDOMProcessingInstruction* = DEFINE_GUID("3059009b-98b5-11cf-bb82-00aa00bdce0b") - IID_DispDOMProcessingInstruction* = DEFINE_GUID("3059009b-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispDOMProcessingInstruction* = + DEFINE_GUID("3059009b-98b5-11cf-bb82-00aa00bdce0b") + IID_DispDOMProcessingInstruction* = + DEFINE_GUID("3059009b-98b5-11cf-bb82-00aa00bdce0b") CLSID_DOMProcessingInstruction* = DEFINE_GUID("30510743-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLPerformance* = DEFINE_GUID("3051074e-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLPerformanceNavigation* = DEFINE_GUID("30510750-98b5-11cf-bb82-00aa00bdce0b") @@ -3081,8 +3184,10 @@ DIID_DispHTMLPerformance* = DEFINE_GUID("3059009f-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLPerformance* = DEFINE_GUID("3059009f-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLPerformance* = DEFINE_GUID("3051074f-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLPerformanceNavigation* = DEFINE_GUID("305900a0-98b5-11cf-bb82-00aa00bdce0b") - IID_DispHTMLPerformanceNavigation* = DEFINE_GUID("305900a0-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLPerformanceNavigation* = + DEFINE_GUID("305900a0-98b5-11cf-bb82-00aa00bdce0b") + IID_DispHTMLPerformanceNavigation* = + DEFINE_GUID("305900a0-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLPerformanceNavigation* = DEFINE_GUID("30510751-98b5-11cf-bb82-00aa00bdce0b") DIID_DispHTMLPerformanceTiming* = DEFINE_GUID("305900a1-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLPerformanceTiming* = DEFINE_GUID("305900a1-98b5-11cf-bb82-00aa00bdce0b") @@ -3094,11 +3199,15 @@ IID_ITemplatePrinter* = DEFINE_GUID("3050f6b4-98b5-11cf-bb82-00aa00bdce0b") IID_ITemplatePrinter2* = DEFINE_GUID("3050f83f-98b5-11cf-bb82-00aa00bdce0b") IID_ITemplatePrinter3* = DEFINE_GUID("305104a3-98b5-11cf-bb82-00aa00bdce0b") - IID_IPrintManagerTemplatePrinter* = DEFINE_GUID("f633be14-9eff-4c4d-929e-05717b21b3e6") + IID_IPrintManagerTemplatePrinter* = + DEFINE_GUID("f633be14-9eff-4c4d-929e-05717b21b3e6") CLSID_CTemplatePrinter* = DEFINE_GUID("3050f6b3-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispCPrintManagerTemplatePrinter* = DEFINE_GUID("305900e9-98b5-11cf-bb82-00aa00bdce0b") - IID_DispCPrintManagerTemplatePrinter* = DEFINE_GUID("305900e9-98b5-11cf-bb82-00aa00bdce0b") - CLSID_CPrintManagerTemplatePrinter* = DEFINE_GUID("63619f54-9d71-4c23-a08d-50d7f18db2e9") + DIID_DispCPrintManagerTemplatePrinter* = + DEFINE_GUID("305900e9-98b5-11cf-bb82-00aa00bdce0b") + IID_DispCPrintManagerTemplatePrinter* = + DEFINE_GUID("305900e9-98b5-11cf-bb82-00aa00bdce0b") + CLSID_CPrintManagerTemplatePrinter* = + DEFINE_GUID("63619f54-9d71-4c23-a08d-50d7f18db2e9") TEXTPATH_METHODTYPE_UNKNOWN* = 0 TEXTPATH_METHODTYPE_ALIGN* = 1 TEXTPATH_METHODTYPE_STRETCH* = 2 @@ -3118,7 +3227,8 @@ DIID_DispXMLSerializer* = DEFINE_GUID("305900ad-98b5-11cf-bb82-00aa00bdce0b") IID_DispXMLSerializer* = DEFINE_GUID("305900ad-98b5-11cf-bb82-00aa00bdce0b") CLSID_XMLSerializer* = DEFINE_GUID("3051077e-98b5-11cf-bb82-00aa00bdce0b") - CLSID_HTMLDOMXmlSerializerFactory* = DEFINE_GUID("30510780-98b5-11cf-bb82-00aa00bdce0b") + CLSID_HTMLDOMXmlSerializerFactory* = + DEFINE_GUID("30510780-98b5-11cf-bb82-00aa00bdce0b") DIID_DispDOMParser* = DEFINE_GUID("305900ae-98b5-11cf-bb82-00aa00bdce0b") IID_DispDOMParser* = DEFINE_GUID("305900ae-98b5-11cf-bb82-00aa00bdce0b") CLSID_DOMParser* = DEFINE_GUID("30510782-98b5-11cf-bb82-00aa00bdce0b") @@ -3697,11 +3807,15 @@ CLSID_HtmlDlgSafeHelper* = DEFINE_GUID("3050f819-98b5-11cf-bb82-00aa00bdce0b") CLSID_BlockFormats* = DEFINE_GUID("3050f831-98b5-11cf-bb82-00aa00bdce0b") CLSID_FontNames* = DEFINE_GUID("3050f83a-98b5-11cf-bb82-00aa00bdce0b") - IID_IDeveloperConsoleMessageReceiver* = DEFINE_GUID("30510808-98b5-11cf-bb82-00aa00bdce0b") - IID_IDebugCallbackNotificationHandler* = DEFINE_GUID("30510842-98b5-11cf-bb82-00aa00bdce0b") + IID_IDeveloperConsoleMessageReceiver* = + DEFINE_GUID("30510808-98b5-11cf-bb82-00aa00bdce0b") + IID_IDebugCallbackNotificationHandler* = + DEFINE_GUID("30510842-98b5-11cf-bb82-00aa00bdce0b") IID_IScriptEventHandler* = DEFINE_GUID("3051083a-98b5-11cf-bb82-00aa00bdce0b") - IID_IScriptEventHandlerSourceInfo* = DEFINE_GUID("30510841-98b5-11cf-bb82-00aa00bdce0b") - IID_IDOMEventRegistrationCallback* = DEFINE_GUID("3051083b-98b5-11cf-bb82-00aa00bdce0b") + IID_IScriptEventHandlerSourceInfo* = + DEFINE_GUID("30510841-98b5-11cf-bb82-00aa00bdce0b") + IID_IDOMEventRegistrationCallback* = + DEFINE_GUID("3051083b-98b5-11cf-bb82-00aa00bdce0b") IID_IEventTarget2* = DEFINE_GUID("30510839-98b5-11cf-bb82-00aa00bdce0b") DIID_HTMLNamespaceEvents* = DEFINE_GUID("3050f6bd-98b5-11cf-bb82-00aa00bdce0b") IID_HTMLNamespaceEvents* = DEFINE_GUID("3050f6bd-98b5-11cf-bb82-00aa00bdce0b") @@ -3710,7 +3824,8 @@ DIID_DispHTMLNamespace* = DEFINE_GUID("3050f54f-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLNamespace* = DEFINE_GUID("3050f54f-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLNamespace* = DEFINE_GUID("3050f6bc-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispHTMLNamespaceCollection* = DEFINE_GUID("3050f550-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispHTMLNamespaceCollection* = + DEFINE_GUID("3050f550-98b5-11cf-bb82-00aa00bdce0b") IID_DispHTMLNamespaceCollection* = DEFINE_GUID("3050f550-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLNamespaceCollection* = DEFINE_GUID("3050f6b9-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLPainter* = DEFINE_GUID("3050f6a6-98b5-11cf-bb82-00aa00bdce0b") @@ -3720,7 +3835,8 @@ IID_IHTMLIPrintCollection* = DEFINE_GUID("3050f6b5-98b5-11cf-bb82-00aa00bdce0b") IID_IEnumPrivacyRecords* = DEFINE_GUID("3050f844-98b5-11cf-bb82-00aa00bdce0b") IID_IWPCBlockedUrls* = DEFINE_GUID("30510413-98b5-11cf-bb82-00aa00bdce0b") - IID_IHTMLDOMConstructorCollection* = DEFINE_GUID("3051049c-98b5-11cf-bb82-00aa00bdce0b") + IID_IHTMLDOMConstructorCollection* = + DEFINE_GUID("3051049c-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLDialog* = DEFINE_GUID("3050f216-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLDialog2* = DEFINE_GUID("3050f5e0-98b5-11cf-bb82-00aa00bdce0b") IID_IHTMLDialog3* = DEFINE_GUID("3050f388-98b5-11cf-bb82-00aa00bdce0b") @@ -3739,7 +3855,8 @@ CLSID_HTMLAppBehavior* = DEFINE_GUID("3050f5cb-98b5-11cf-bb82-00aa00bdce0b") CLSID_OldHTMLDocument* = DEFINE_GUID("d48a6ec9-6a4a-11cf-94a7-444553540000") CLSID_OldHTMLFormElement* = DEFINE_GUID("0d04d285-6bec-11cf-8b97-00aa00476da6") - DIID_DispIHTMLInputButtonElement* = DEFINE_GUID("3050f51e-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispIHTMLInputButtonElement* = + DEFINE_GUID("3050f51e-98b5-11cf-bb82-00aa00bdce0b") IID_DispIHTMLInputButtonElement* = DEFINE_GUID("3050f51e-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLInputButtonElement* = DEFINE_GUID("3050f2b4-98b5-11cf-bb82-00aa00bdce0b") DIID_DispIHTMLInputTextElement* = DEFINE_GUID("3050f520-98b5-11cf-bb82-00aa00bdce0b") @@ -3748,8 +3865,10 @@ DIID_DispIHTMLInputFileElement* = DEFINE_GUID("3050f542-98b5-11cf-bb82-00aa00bdce0b") IID_DispIHTMLInputFileElement* = DEFINE_GUID("3050f542-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLInputFileElement* = DEFINE_GUID("3050f2ae-98b5-11cf-bb82-00aa00bdce0b") - DIID_DispIHTMLOptionButtonElement* = DEFINE_GUID("3050f509-98b5-11cf-bb82-00aa00bdce0b") - IID_DispIHTMLOptionButtonElement* = DEFINE_GUID("3050f509-98b5-11cf-bb82-00aa00bdce0b") + DIID_DispIHTMLOptionButtonElement* = + DEFINE_GUID("3050f509-98b5-11cf-bb82-00aa00bdce0b") + IID_DispIHTMLOptionButtonElement* = + DEFINE_GUID("3050f509-98b5-11cf-bb82-00aa00bdce0b") CLSID_HTMLOptionButtonElement* = DEFINE_GUID("3050f2be-98b5-11cf-bb82-00aa00bdce0b") DIID_DispIHTMLInputImage* = DEFINE_GUID("3050f51d-98b5-11cf-bb82-00aa00bdce0b") IID_DispIHTMLInputImage* = DEFINE_GUID("3050f51d-98b5-11cf-bb82-00aa00bdce0b") @@ -3758,7 +3877,8 @@ IID_IElementNamespaceTable* = DEFINE_GUID("3050f670-98b5-11cf-bb82-00aa00bdce0b") IID_IElementNamespaceFactory* = DEFINE_GUID("3050f672-98b5-11cf-bb82-00aa00bdce0b") IID_IElementNamespaceFactory2* = DEFINE_GUID("3050f805-98b5-11cf-bb82-00aa00bdce0b") - IID_IElementNamespaceFactoryCallback* = DEFINE_GUID("3050f7fd-98b5-11cf-bb82-00aa00bdce0b") + IID_IElementNamespaceFactoryCallback* = + DEFINE_GUID("3050f7fd-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehavior* = DEFINE_GUID("3050f425-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorSite* = DEFINE_GUID("3050f427-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorSiteOM* = DEFINE_GUID("3050f489-98b5-11cf-bb82-00aa00bdce0b") @@ -3766,7 +3886,8 @@ IID_IElementBehaviorRender* = DEFINE_GUID("3050f4aa-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorSiteRender* = DEFINE_GUID("3050f4a7-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorCategory* = DEFINE_GUID("3050f4ed-98b5-11cf-bb82-00aa00bdce0b") - IID_IElementBehaviorSiteCategory* = DEFINE_GUID("3050f4ee-98b5-11cf-bb82-00aa00bdce0b") + IID_IElementBehaviorSiteCategory* = + DEFINE_GUID("3050f4ee-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorSubmit* = DEFINE_GUID("3050f646-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorFocus* = DEFINE_GUID("3050f6b6-98b5-11cf-bb82-00aa00bdce0b") IID_IElementBehaviorLayout* = DEFINE_GUID("3050f6ba-98b5-11cf-bb82-00aa00bdce0b") @@ -3778,7 +3899,8 @@ IID_ISurfacePresenter* = DEFINE_GUID("305106e2-98b5-11cf-bb82-00aa00bdce0b") IID_ICanvasPixelArrayData* = DEFINE_GUID("305107f9-98b5-11cf-bb82-00aa00bdce0b") IID_IViewObjectPrint* = DEFINE_GUID("305106e3-98b5-11cf-bb82-00aa00bdce0b") - IID_IViewObjectPresentNotifySite* = DEFINE_GUID("305107fa-98b5-11cf-bb82-00aa00bdce0b") + IID_IViewObjectPresentNotifySite* = + DEFINE_GUID("305107fa-98b5-11cf-bb82-00aa00bdce0b") IID_IViewObjectPresentNotify* = DEFINE_GUID("305107f8-98b5-11cf-bb82-00aa00bdce0b") CONTEXT_MENU_DEFAULT* = 0 CONTEXT_MENU_IMAGE* = 1 @@ -3811,7 +3933,9 @@ HTMLDLG_ALLOW_UNKNOWN_THREAD* = 0x200 PRINT_DONTBOTHERUSER* = 0x1 PRINT_WAITFORCOMPLETION* = 0x2 - CGID_MSHTML* = DEFINE_GUID(0xde4ba900'i32, 0x59ca, 0x11cf, [0x95'u8, 0x92, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00]) + CGID_MSHTML* = DEFINE_GUID( + 0xde4ba900'i32, 0x59ca, 0x11cf, [0x95'u8, 0x92, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00] + ) CMDSETID_Forms3* = CGID_MSHTML SZ_HTML_CLIENTSITE_OBJECTPARAM* = "{d4db6850-5385-11d0-89e9-00a0c90a90ac}" CGID_DocHostCommandHandler* = DEFINE_GUID("f38bc242-b950-11d1-8918-00c04fc2c836") @@ -3848,7 +3972,8 @@ DOCHOSTUIFLAG_USE_WINDOWED_SELECTCONTROL* = 0x10000000 DOCHOSTUIFLAG_ENABLE_ACTIVEX_INACTIVATE_MODE* = 0x20000000 DOCHOSTUIFLAG_DPI_AWARE* = 0x40000000 - DOCHOSTUIFLAG_BROWSER* = DOCHOSTUIFLAG_DISABLE_HELP_MENU or DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE + DOCHOSTUIFLAG_BROWSER* = + DOCHOSTUIFLAG_DISABLE_HELP_MENU or DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE DOCHOSTUITYPE_BROWSE* = 0 DOCHOSTUITYPE_AUTHOR* = 1 IID_IHostDialogHelper* = DEFINE_GUID("53dec138-a51e-11d2-861e-00c04fa35c89") @@ -3862,25 +3987,48 @@ IID_IHTMLOMWindowServices* = DEFINE_GUID("3050f5fc-98b5-11cf-bb82-00aa00bdce0b") SID_SHTMLOMWindowServices* = IID_IHTMLOMWindowServices type - SHOWHTMLDIALOGFN* = proc (hwndParent: HWND, pmk: ptr IMoniker, pvarArgIn: ptr VARIANT, pchOptions: ptr WCHAR, pvArgOut: ptr VARIANT): HRESULT {.stdcall.} - SHOWHTMLDIALOGEXFN* = proc (hwndParent: HWND, pmk: ptr IMoniker, dwDialogFlags: DWORD, pvarArgIn: ptr VARIANT, pchOptions: ptr WCHAR, pvArgOut: ptr VARIANT): HRESULT {.stdcall.} + SHOWHTMLDIALOGFN* = proc( + hwndParent: HWND, + pmk: ptr IMoniker, + pvarArgIn: ptr VARIANT, + pchOptions: ptr WCHAR, + pvArgOut: ptr VARIANT, + ): HRESULT {.stdcall.} + SHOWHTMLDIALOGEXFN* = proc( + hwndParent: HWND, + pmk: ptr IMoniker, + dwDialogFlags: DWORD, + pvarArgIn: ptr VARIANT, + pchOptions: ptr WCHAR, + pvArgOut: ptr VARIANT, + ): HRESULT {.stdcall.} IHTMLFramesCollection2* {.pure.} = object lpVtbl*: ptr IHTMLFramesCollection2Vtbl + IHTMLFramesCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - item*: proc(self: ptr IHTMLFramesCollection2, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.} - get_length*: proc(self: ptr IHTMLFramesCollection2, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLFramesCollection2, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT + ): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLFramesCollection2, p: ptr LONG): HRESULT {.stdcall.} + IHTMLImgElement* {.pure.} = object lpVtbl*: ptr IHTMLImgElementVtbl + IHTMLImgElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_isMap*: proc(self: ptr IHTMLImgElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_isMap*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_isMap*: + proc(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_useMap*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.} get_useMap*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} get_mimeType*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} get_fileSize*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} - get_fileCreatedDate*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} - get_fileModifiedDate*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} - get_fileUpdatedDate*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} + get_fileCreatedDate*: + proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} + get_fileModifiedDate*: + proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} + get_fileUpdatedDate*: + proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} get_protocol*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} get_nameProp*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -3901,7 +4049,8 @@ put_dynsrc*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.} get_dynsrc*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} - get_complete*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_complete*: + proc(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_loop*: proc(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.stdcall.} get_loop*: proc(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.stdcall.} put_align*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.} @@ -3920,12 +4069,21 @@ get_height*: proc(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.stdcall.} put_start*: proc(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.stdcall.} get_start*: proc(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLImageElementFactory* {.pure.} = object lpVtbl*: ptr IHTMLImageElementFactoryVtbl + IHTMLImageElementFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IHTMLImageElementFactory, width: VARIANT, height: VARIANT, a: ptr ptr IHTMLImgElement): HRESULT {.stdcall.} + create*: proc( + self: ptr IHTMLImageElementFactory, + width: VARIANT, + height: VARIANT, + a: ptr ptr IHTMLImgElement, + ): HRESULT {.stdcall.} + IHTMLLocation* {.pure.} = object lpVtbl*: ptr IHTMLLocationVtbl + IHTMLLocationVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLLocation, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.stdcall.} @@ -3947,47 +4105,104 @@ replace*: proc(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.stdcall.} assign*: proc(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLLocation, string: ptr BSTR): HRESULT {.stdcall.} + IOmHistory* {.pure.} = object lpVtbl*: ptr IOmHistoryVtbl + IOmHistoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IOmHistory, p: ptr int16): HRESULT {.stdcall.} back*: proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.} - forward*: proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.} + forward*: + proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.} go*: proc(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.stdcall.} + IHTMLMimeTypesCollection* {.pure.} = object lpVtbl*: ptr IHTMLMimeTypesCollectionVtbl + IHTMLMimeTypesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLMimeTypesCollection, p: ptr LONG): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLMimeTypesCollection, p: ptr LONG): HRESULT {.stdcall.} + IHTMLPluginsCollection* {.pure.} = object lpVtbl*: ptr IHTMLPluginsCollectionVtbl + IHTMLPluginsCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLPluginsCollection, p: ptr LONG): HRESULT {.stdcall.} - refresh*: proc(self: ptr IHTMLPluginsCollection, reload: VARIANT_BOOL): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLPluginsCollection, p: ptr LONG): HRESULT {.stdcall.} + refresh*: + proc(self: ptr IHTMLPluginsCollection, reload: VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLOpsProfile* {.pure.} = object lpVtbl*: ptr IHTMLOpsProfileVtbl + IHTMLOpsProfileVtbl* {.pure, inheritable.} = object of IDispatchVtbl - addRequest*: proc(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} + addRequest*: proc( + self: ptr IHTMLOpsProfile, + name: BSTR, + reserved: VARIANT, + success: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} clearRequest*: proc(self: ptr IHTMLOpsProfile): HRESULT {.stdcall.} - doRequest*: proc(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLOpsProfile, name: BSTR, value: ptr BSTR): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IHTMLOpsProfile, name: BSTR, value: BSTR, prefs: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} - commitChanges*: proc(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} - addReadRequest*: proc(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} - doReadRequest*: proc(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.stdcall.} - doWriteRequest*: proc(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} + doRequest*: proc( + self: ptr IHTMLOpsProfile, + usage: VARIANT, + fname: VARIANT, + domain: VARIANT, + path: VARIANT, + expire: VARIANT, + reserved: VARIANT, + ): HRESULT {.stdcall.} + getAttribute*: + proc(self: ptr IHTMLOpsProfile, name: BSTR, value: ptr BSTR): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLOpsProfile, + name: BSTR, + value: BSTR, + prefs: VARIANT, + success: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + commitChanges*: + proc(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} + addReadRequest*: proc( + self: ptr IHTMLOpsProfile, + name: BSTR, + reserved: VARIANT, + success: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + doReadRequest*: proc( + self: ptr IHTMLOpsProfile, + usage: VARIANT, + fname: VARIANT, + domain: VARIANT, + path: VARIANT, + expire: VARIANT, + reserved: VARIANT, + ): HRESULT {.stdcall.} + doWriteRequest*: + proc(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IOmNavigator* {.pure.} = object lpVtbl*: ptr IOmNavigatorVtbl + IOmNavigatorVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_appCodeName*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} get_appName*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} get_appVersion*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} get_userAgent*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} - javaEnabled*: proc(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} - taintEnabled*: proc(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_mimeTypes*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLMimeTypesCollection): HRESULT {.stdcall.} - get_plugins*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLPluginsCollection): HRESULT {.stdcall.} - get_cookieEnabled*: proc(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_opsProfile*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.stdcall.} + javaEnabled*: + proc(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} + taintEnabled*: + proc(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_mimeTypes*: proc( + self: ptr IOmNavigator, p: ptr ptr IHTMLMimeTypesCollection + ): HRESULT {.stdcall.} + get_plugins*: proc( + self: ptr IOmNavigator, p: ptr ptr IHTMLPluginsCollection + ): HRESULT {.stdcall.} + get_cookieEnabled*: + proc(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_opsProfile*: + proc(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.stdcall.} toString*: proc(self: ptr IOmNavigator, string: ptr BSTR): HRESULT {.stdcall.} get_cpuClass*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} get_systemLanguage*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} @@ -3997,22 +4212,40 @@ get_appMinorVersion*: proc(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.stdcall.} get_connectionSpeed*: proc(self: ptr IOmNavigator, p: ptr LONG): HRESULT {.stdcall.} get_onLine*: proc(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_userProfile*: proc(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.stdcall.} + get_userProfile*: + proc(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.stdcall.} + IHTMLDocument* {.pure.} = object lpVtbl*: ptr IHTMLDocumentVtbl + IHTMLDocumentVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_Script*: proc(self: ptr IHTMLDocument, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Script*: + proc(self: ptr IHTMLDocument, p: ptr ptr IDispatch): HRESULT {.stdcall.} + IHTMLElementCollection* {.pure.} = object lpVtbl*: ptr IHTMLElementCollectionVtbl + IHTMLElementCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - toString*: proc(self: ptr IHTMLElementCollection, String: ptr BSTR): HRESULT {.stdcall.} + toString*: + proc(self: ptr IHTMLElementCollection, String: ptr BSTR): HRESULT {.stdcall.} put_length*: proc(self: ptr IHTMLElementCollection, v: LONG): HRESULT {.stdcall.} - get_length*: proc(self: ptr IHTMLElementCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLElementCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLElementCollection, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} - tags*: proc(self: ptr IHTMLElementCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLElementCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLElementCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLElementCollection, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + tags*: proc( + self: ptr IHTMLElementCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLStyle* {.pure.} = object lpVtbl*: ptr IHTMLStyleVtbl + IHTMLStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_fontFamily*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_fontFamily*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} @@ -4031,35 +4264,52 @@ put_background*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_background*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_backgroundColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_backgroundColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundColor*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_backgroundImage*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_backgroundImage*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_backgroundRepeat*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_backgroundRepeat*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_backgroundAttachment*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} - get_backgroundAttachment*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_backgroundAttachment*: + proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_backgroundPosition*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} - get_backgroundPosition*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundPositionX*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_backgroundPositionX*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_backgroundPositionY*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_backgroundPositionY*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundPosition*: + proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundPositionX*: + proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} + get_backgroundPositionX*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_backgroundPositionY*: + proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} + get_backgroundPositionY*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_wordSpacing*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} get_wordSpacing*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_letterSpacing*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} get_letterSpacing*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_textDecoration*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_textDecoration*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_textDecorationNone*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationNone*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationUnderline*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationUnderline*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationOverline*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationOverline*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationLineThrough*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationLineThrough*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationBlink*: proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationBlink*: proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationNone*: + proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationNone*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationUnderline*: + proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationUnderline*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationOverline*: + proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationOverline*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationLineThrough*: + proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationLineThrough*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationBlink*: + proc(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationBlink*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_verticalAlign*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} get_verticalAlign*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_textTransform*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} @@ -4105,21 +4355,27 @@ put_borderTopColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} get_borderTopColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderRightColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderRightColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderRightColor*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderBottomColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderBottomColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderBottomColor*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderLeftColor*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderLeftColor*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderLeftColor*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderWidth*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_borderWidth*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderTopWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} get_borderTopWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderRightWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderRightWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderRightWidth*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderBottomWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderBottomWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderBottomWidth*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderLeftWidth*: proc(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderLeftWidth*: proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderLeftWidth*: + proc(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_borderStyle*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderTopStyle*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} @@ -4189,28 +4445,67 @@ get_clip*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} put_filter*: proc(self: ptr IHTMLStyle, v: BSTR): HRESULT {.stdcall.} get_filter*: proc(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IHTMLStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLStyle, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLStyle, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + removeAttribute*: proc( + self: ptr IHTMLStyle, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLStyle, String: ptr BSTR): HRESULT {.stdcall.} + IHTMLFiltersCollection* {.pure.} = object lpVtbl*: ptr IHTMLFiltersCollectionVtbl + IHTMLFiltersCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLFiltersCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLFiltersCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLFiltersCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLFiltersCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLFiltersCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLFiltersCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT + ): HRESULT {.stdcall.} + IHTMLElement* {.pure.} = object lpVtbl*: ptr IHTMLElementVtbl + IHTMLElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - setAttribute*: proc(self: ptr IHTMLElement, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLElement, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLElement, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + removeAttribute*: proc( + self: ptr IHTMLElement, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} put_className*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} get_className*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_id*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} get_id*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} get_tagName*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} - get_parentElement*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_parentElement*: + proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} get_style*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} put_onhelp*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} get_onhelp*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} @@ -4234,15 +4529,20 @@ get_onmousedown*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onmouseup*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} get_onmouseup*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} - get_document*: proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_document*: + proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_title*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} get_title*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_language*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} get_language*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_onselectstart*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_onselectstart*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} - scrollIntoView*: proc(self: ptr IHTMLElement, varargStart: VARIANT): HRESULT {.stdcall.} - contains*: proc(self: ptr IHTMLElement, pChild: ptr IHTMLElement, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_onselectstart*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + scrollIntoView*: + proc(self: ptr IHTMLElement, varargStart: VARIANT): HRESULT {.stdcall.} + contains*: proc( + self: ptr IHTMLElement, pChild: ptr IHTMLElement, pfResult: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} get_sourceIndex*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.} get_recordNumber*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_lang*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} @@ -4251,7 +4551,8 @@ get_offsetTop*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.} get_offsetWidth*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.} get_offsetHeight*: proc(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.stdcall.} - get_offsetParent*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_offsetParent*: + proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} put_innerHTML*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} get_innerHTML*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_innerText*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} @@ -4260,50 +4561,80 @@ get_outerHTML*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_outerText*: proc(self: ptr IHTMLElement, v: BSTR): HRESULT {.stdcall.} get_outerText*: proc(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.stdcall.} - insertAdjacentHTML*: proc(self: ptr IHTMLElement, where: BSTR, html: BSTR): HRESULT {.stdcall.} - insertAdjacentText*: proc(self: ptr IHTMLElement, where: BSTR, text: BSTR): HRESULT {.stdcall.} - get_parentTextEdit*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_isTextEdit*: proc(self: ptr IHTMLElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + insertAdjacentHTML*: + proc(self: ptr IHTMLElement, where: BSTR, html: BSTR): HRESULT {.stdcall.} + insertAdjacentText*: + proc(self: ptr IHTMLElement, where: BSTR, text: BSTR): HRESULT {.stdcall.} + get_parentTextEdit*: + proc(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_isTextEdit*: + proc(self: ptr IHTMLElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} click*: proc(self: ptr IHTMLElement): HRESULT {.stdcall.} - get_filters*: proc(self: ptr IHTMLElement, p: ptr ptr IHTMLFiltersCollection): HRESULT {.stdcall.} + get_filters*: proc( + self: ptr IHTMLElement, p: ptr ptr IHTMLFiltersCollection + ): HRESULT {.stdcall.} put_ondragstart*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} get_ondragstart*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLElement, String: ptr BSTR): HRESULT {.stdcall.} put_onbeforeupdate*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeupdate*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbeforeupdate*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onafterupdate*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_onafterupdate*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onafterupdate*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onerrorupdate*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_onerrorupdate*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onerrorupdate*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowexit*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} get_onrowexit*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowenter*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} get_onrowenter*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_ondatasetchanged*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_ondatasetchanged*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondatasetchanged*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_ondataavailable*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_ondataavailable*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondatasetcomplete*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_ondatasetcomplete*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondataavailable*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondatasetcomplete*: + proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} + get_ondatasetcomplete*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onfilterchange*: proc(self: ptr IHTMLElement, v: VARIANT): HRESULT {.stdcall.} - get_onfilterchange*: proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} - get_children*: proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_onfilterchange*: + proc(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_children*: + proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_all*: proc(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + IHTMLSelectionObject* {.pure.} = object lpVtbl*: ptr IHTMLSelectionObjectVtbl + IHTMLSelectionObjectVtbl* {.pure, inheritable.} = object of IDispatchVtbl - createRange*: proc(self: ptr IHTMLSelectionObject, range: ptr ptr IDispatch): HRESULT {.stdcall.} + createRange*: proc( + self: ptr IHTMLSelectionObject, range: ptr ptr IDispatch + ): HRESULT {.stdcall.} empty*: proc(self: ptr IHTMLSelectionObject): HRESULT {.stdcall.} clear*: proc(self: ptr IHTMLSelectionObject): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLSelectionObject, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyleSheetsCollection* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetsCollectionVtbl + IHTMLStyleSheetsCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLStyleSheetsCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLStyleSheetsCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLStyleSheetsCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLStyleSheetsCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: proc( + self: ptr IHTMLStyleSheetsCollection, p: ptr ptr IUnknown + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLStyleSheetsCollection, + pvarIndex: ptr VARIANT, + pvarResult: ptr VARIANT, + ): HRESULT {.stdcall.} + IHTMLRuleStyle* {.pure.} = object lpVtbl*: ptr IHTMLRuleStyleVtbl + IHTMLRuleStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_fontFamily*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_fontFamily*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} @@ -4321,38 +4652,64 @@ get_color*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_background*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_background*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_backgroundColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_backgroundColor*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_backgroundColor*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_backgroundImage*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_backgroundImage*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_backgroundImage*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_backgroundRepeat*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_backgroundRepeat*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundAttachment*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_backgroundAttachment*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundPosition*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_backgroundPosition*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundPositionX*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_backgroundPositionX*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_backgroundPositionY*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_backgroundPositionY*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundRepeat*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundAttachment*: + proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} + get_backgroundAttachment*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundPosition*: + proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} + get_backgroundPosition*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundPositionX*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_backgroundPositionX*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_backgroundPositionY*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_backgroundPositionY*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_wordSpacing*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_wordSpacing*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_wordSpacing*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_letterSpacing*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_letterSpacing*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_letterSpacing*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_textDecoration*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_textDecoration*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_textDecorationNone*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationNone*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationUnderline*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationUnderline*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationOverline*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationOverline*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationLineThrough*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationLineThrough*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_textDecorationBlink*: proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_textDecorationBlink*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecoration*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_textDecorationNone*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationNone*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationUnderline*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationUnderline*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationOverline*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationOverline*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationLineThrough*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationLineThrough*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_textDecorationBlink*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_textDecorationBlink*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_verticalAlign*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_verticalAlign*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_verticalAlign*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_textTransform*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_textTransform*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_textAlign*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} @@ -4364,9 +4721,11 @@ put_marginTop*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} get_marginTop*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_marginRight*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_marginRight*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginRight*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_marginBottom*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_marginBottom*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginBottom*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_marginLeft*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} get_marginLeft*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_margin*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} @@ -4374,11 +4733,14 @@ put_paddingTop*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} get_paddingTop*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_paddingRight*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_paddingRight*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingRight*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_paddingBottom*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_paddingBottom*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingBottom*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_paddingLeft*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_paddingLeft*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingLeft*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_padding*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_padding*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} @@ -4394,33 +4756,51 @@ put_borderColor*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_borderColor*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderTopColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderTopColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderRightColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderRightColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderBottomColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderBottomColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderLeftColor*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderLeftColor*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderTopColor*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderRightColor*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_borderRightColor*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderBottomColor*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_borderBottomColor*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderLeftColor*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_borderLeftColor*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderWidth*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_borderWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderTopWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderTopWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderRightWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderRightWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderBottomWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderBottomWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderLeftWidth*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} - get_borderLeftWidth*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderTopWidth*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderRightWidth*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_borderRightWidth*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderBottomWidth*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_borderBottomWidth*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderLeftWidth*: + proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} + get_borderLeftWidth*: + proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_borderStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_borderStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderTopStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_borderTopStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderTopStyle*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderRightStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_borderRightStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderRightStyle*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderBottomStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_borderBottomStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderBottomStyle*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_borderLeftStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_borderLeftStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderLeftStyle*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.stdcall.} @@ -4436,9 +4816,11 @@ put_listStyleType*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_listStyleType*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_listStylePosition*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_listStylePosition*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_listStylePosition*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_listStyleImage*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_listStyleImage*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_listStyleImage*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_listStyle*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_listStyle*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_whiteSpace*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} @@ -4453,9 +4835,11 @@ put_overflow*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_overflow*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_pageBreakBefore*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_pageBreakBefore*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_pageBreakBefore*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_pageBreakAfter*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} - get_pageBreakAfter*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_pageBreakAfter*: + proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_cssText*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_cssText*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_cursor*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} @@ -4464,66 +4848,138 @@ get_clip*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} put_filter*: proc(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.stdcall.} get_filter*: proc(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLRuleStyle, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLRuleStyle, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + removeAttribute*: proc( + self: ptr IHTMLRuleStyle, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IHTMLStyleSheetRule* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetRuleVtbl + IHTMLStyleSheetRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_selectorText*: proc(self: ptr IHTMLStyleSheetRule, v: BSTR): HRESULT {.stdcall.} - get_selectorText*: proc(self: ptr IHTMLStyleSheetRule, p: ptr BSTR): HRESULT {.stdcall.} - get_style*: proc(self: ptr IHTMLStyleSheetRule, p: ptr ptr IHTMLRuleStyle): HRESULT {.stdcall.} - get_readOnly*: proc(self: ptr IHTMLStyleSheetRule, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_selectorText*: + proc(self: ptr IHTMLStyleSheetRule, p: ptr BSTR): HRESULT {.stdcall.} + get_style*: proc(self: ptr IHTMLStyleSheetRule, p: ptr ptr IHTMLRuleStyle): HRESULT {. + stdcall + .} + get_readOnly*: + proc(self: ptr IHTMLStyleSheetRule, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLStyleSheetRulesCollection* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetRulesCollectionVtbl + IHTMLStyleSheetRulesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLStyleSheetRulesCollection, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLStyleSheetRulesCollection, index: LONG, ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLStyleSheetRulesCollection, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLStyleSheetRulesCollection, + index: LONG, + ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule, + ): HRESULT {.stdcall.} + IHTMLStyleSheet* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetVtbl + IHTMLStyleSheetVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_title*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.} get_title*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.} - get_parentStyleSheet*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} - get_owningElement*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_parentStyleSheet*: + proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + get_owningElement*: + proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} put_disabled*: proc(self: ptr IHTMLStyleSheet, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_readOnly*: proc(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_imports*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_readOnly*: + proc(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_imports*: proc( + self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetsCollection + ): HRESULT {.stdcall.} put_href*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.} get_id*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.} - addImport*: proc(self: ptr IHTMLStyleSheet, bstrURL: BSTR, lIndex: LONG, plIndex: ptr LONG): HRESULT {.stdcall.} - addRule*: proc(self: ptr IHTMLStyleSheet, bstrSelector: BSTR, bstrStyle: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.stdcall.} + addImport*: proc( + self: ptr IHTMLStyleSheet, bstrURL: BSTR, lIndex: LONG, plIndex: ptr LONG + ): HRESULT {.stdcall.} + addRule*: proc( + self: ptr IHTMLStyleSheet, + bstrSelector: BSTR, + bstrStyle: BSTR, + lIndex: LONG, + plNewIndex: ptr LONG, + ): HRESULT {.stdcall.} removeImport*: proc(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.stdcall.} removeRule*: proc(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.stdcall.} put_media*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.} put_cssText*: proc(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.stdcall.} get_cssText*: proc(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.stdcall.} - get_rules*: proc(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.stdcall.} + get_rules*: proc( + self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetRulesCollection + ): HRESULT {.stdcall.} + IHTMLDocument2* {.pure.} = object lpVtbl*: ptr IHTMLDocument2Vtbl + IHTMLDocument2Vtbl* {.pure, inheritable.} = object of IHTMLDocumentVtbl - get_all*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_body*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_activeElement*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_images*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_applets*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_links*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_forms*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_anchors*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_all*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {. + stdcall + .} + get_body*: + proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_activeElement*: + proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_images*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + get_applets*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + get_links*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + get_forms*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + get_anchors*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} put_title*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.} get_title*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_scripts*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_scripts*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} put_designMode*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.} get_designMode*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_selection*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLSelectionObject): HRESULT {.stdcall.} + get_selection*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLSelectionObject + ): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_frames*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.stdcall.} - get_embeds*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_plugins*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_frames*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLFramesCollection2 + ): HRESULT {.stdcall.} + get_embeds*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + get_plugins*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} put_alinkColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_alinkColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_bgColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} @@ -4535,7 +4991,8 @@ put_vlinkColor*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_vlinkColor*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} get_referrer*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_location*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLLocation): HRESULT {.stdcall.} + get_location*: + proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLLocation): HRESULT {.stdcall.} get_lastModified*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} put_URL*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.} get_URL*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} @@ -4544,33 +5001,68 @@ put_cookie*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.} get_cookie*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} put_expando*: proc(self: ptr IHTMLDocument2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_expando*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_expando*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_charset*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.} get_charset*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} put_defaultCharset*: proc(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.stdcall.} - get_defaultCharset*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} + get_defaultCharset*: + proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_mimeType*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_fileSize*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_fileCreatedDate*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_fileModifiedDate*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_fileUpdatedDate*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} + get_fileCreatedDate*: + proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} + get_fileModifiedDate*: + proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} + get_fileUpdatedDate*: + proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_security*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_protocol*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_nameProp*: proc(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} write*: proc(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.stdcall.} - writeln*: proc(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.stdcall.} - open*: proc(self: ptr IHTMLDocument2, url: BSTR, name: VARIANT, features: VARIANT, replace: VARIANT, pomWindowResult: ptr ptr IDispatch): HRESULT {.stdcall.} + writeln*: + proc(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.stdcall.} + open*: proc( + self: ptr IHTMLDocument2, + url: BSTR, + name: VARIANT, + features: VARIANT, + replace: VARIANT, + pomWindowResult: ptr ptr IDispatch, + ): HRESULT {.stdcall.} close*: proc(self: ptr IHTMLDocument2): HRESULT {.stdcall.} clear*: proc(self: ptr IHTMLDocument2): HRESULT {.stdcall.} - queryCommandSupported*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandEnabled*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandState*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandIndeterm*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandText*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.stdcall.} - queryCommandValue*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.stdcall.} - execCommand*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - execCommandShowHelp*: proc(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - createElement*: proc(self: ptr IHTMLDocument2, eTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.stdcall.} + queryCommandSupported*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandEnabled*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandState*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandIndeterm*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandText*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pcmdText: ptr BSTR + ): HRESULT {.stdcall.} + queryCommandValue*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pcmdValue: ptr VARIANT + ): HRESULT {.stdcall.} + execCommand*: proc( + self: ptr IHTMLDocument2, + cmdID: BSTR, + showUI: VARIANT_BOOL, + value: VARIANT, + pfRet: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + execCommandShowHelp*: proc( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + createElement*: proc( + self: ptr IHTMLDocument2, eTag: BSTR, newElem: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} put_onhelp*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_onhelp*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onclick*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} @@ -4586,47 +5078,76 @@ put_onmouseup*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_onmouseup*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onmousedown*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onmousedown*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmousedown*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onmousemove*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onmousemove*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmousemove*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onmouseout*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_onmouseout*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onmouseover*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onmouseover*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmouseover*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onafterupdate*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onafterupdate*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onafterupdate*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowexit*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_onrowexit*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowenter*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} get_onrowenter*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_ondragstart*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_ondragstart*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondragstart*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onselectstart*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onselectstart*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} - elementFromPoint*: proc(self: ptr IHTMLDocument2, x: LONG, y: LONG, elementHit: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_parentWindow*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - get_styleSheets*: proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.stdcall.} + get_onselectstart*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + elementFromPoint*: proc( + self: ptr IHTMLDocument2, x: LONG, y: LONG, elementHit: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + get_parentWindow*: + proc(self: ptr IHTMLDocument2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + get_styleSheets*: proc( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLStyleSheetsCollection + ): HRESULT {.stdcall.} put_onbeforeupdate*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeupdate*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbeforeupdate*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} put_onerrorupdate*: proc(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.stdcall.} - get_onerrorupdate*: proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onerrorupdate*: + proc(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLDocument2, String: ptr BSTR): HRESULT {.stdcall.} - createStyleSheet*: proc(self: ptr IHTMLDocument2, bstrHref: BSTR, lIndex: LONG, ppnewStyleSheet: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + createStyleSheet*: proc( + self: ptr IHTMLDocument2, + bstrHref: BSTR, + lIndex: LONG, + ppnewStyleSheet: ptr ptr IHTMLStyleSheet, + ): HRESULT {.stdcall.} + IHTMLEventObj* {.pure.} = object lpVtbl*: ptr IHTMLEventObjVtbl + IHTMLEventObjVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_srcElement*: proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_srcElement*: + proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} get_altKey*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_ctrlKey*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_shiftKey*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ctrlKey*: + proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_shiftKey*: + proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_returnValue*: proc(self: ptr IHTMLEventObj, v: VARIANT): HRESULT {.stdcall.} get_returnValue*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT): HRESULT {.stdcall.} - put_cancelBubble*: proc(self: ptr IHTMLEventObj, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_cancelBubble*: proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_fromElement*: proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_toElement*: proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + put_cancelBubble*: + proc(self: ptr IHTMLEventObj, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_cancelBubble*: + proc(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_fromElement*: + proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_toElement*: + proc(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} put_keyCode*: proc(self: ptr IHTMLEventObj, v: LONG): HRESULT {.stdcall.} get_keyCode*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.} get_button*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.} @@ -4641,9 +5162,12 @@ get_offsetY*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.} get_screenX*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.} get_screenY*: proc(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.stdcall.} - get_srcFilter*: proc(self: ptr IHTMLEventObj, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_srcFilter*: + proc(self: ptr IHTMLEventObj, p: ptr ptr IDispatch): HRESULT {.stdcall.} + IHTMLScreen* {.pure.} = object lpVtbl*: ptr IHTMLScreenVtbl + IHTMLScreenVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_colorDepth*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.} put_bufferDepth*: proc(self: ptr IHTMLScreen, v: LONG): HRESULT {.stdcall.} @@ -4654,9 +5178,12 @@ get_updateInterval*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.} get_availHeight*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.} get_availWidth*: proc(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.stdcall.} - get_fontSmoothingEnabled*: proc(self: ptr IHTMLScreen, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_fontSmoothingEnabled*: + proc(self: ptr IHTMLScreen, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLFormElement* {.pure.} = object lpVtbl*: ptr IHTMLFormElementVtbl + IHTMLFormElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_action*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.} get_action*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -4666,7 +5193,8 @@ get_encoding*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.} put_method*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.} get_method*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.} - get_elements*: proc(self: ptr IHTMLFormElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_elements*: + proc(self: ptr IHTMLFormElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_target*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.} get_target*: proc(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.stdcall.} @@ -4679,54 +5207,108 @@ reset*: proc(self: ptr IHTMLFormElement): HRESULT {.stdcall.} put_length*: proc(self: ptr IHTMLFormElement, v: LONG): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLFormElement, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLFormElement, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLFormElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} - tags*: proc(self: ptr IHTMLFormElement, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLFormElement, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLFormElement, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + tags*: proc( + self: ptr IHTMLFormElement, tagName: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLOptionElement* {.pure.} = object lpVtbl*: ptr IHTMLOptionElementVtbl + IHTMLOptionElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_selected*: proc(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_selected*: proc(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_selected*: + proc(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_selected*: + proc(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.stdcall.} - put_defaultSelected*: proc(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_defaultSelected*: proc(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_defaultSelected*: + proc(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_defaultSelected*: + proc(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_index*: proc(self: ptr IHTMLOptionElement, v: LONG): HRESULT {.stdcall.} get_index*: proc(self: ptr IHTMLOptionElement, p: ptr LONG): HRESULT {.stdcall.} put_text*: proc(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.stdcall.} get_text*: proc(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLOptionElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLOptionElement, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} + IHTMLOptionElementFactory* {.pure.} = object lpVtbl*: ptr IHTMLOptionElementFactoryVtbl + IHTMLOptionElementFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IHTMLOptionElementFactory, text: VARIANT, value: VARIANT, defaultselected: VARIANT, selected: VARIANT, a: ptr ptr IHTMLOptionElement): HRESULT {.stdcall.} + create*: proc( + self: ptr IHTMLOptionElementFactory, + text: VARIANT, + value: VARIANT, + defaultselected: VARIANT, + selected: VARIANT, + a: ptr ptr IHTMLOptionElement, + ): HRESULT {.stdcall.} + IHTMLWindow2* {.pure.} = object lpVtbl*: ptr IHTMLWindow2Vtbl + IHTMLWindow2Vtbl* {.pure, inheritable.} = object of IHTMLFramesCollection2Vtbl - get_frames*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.stdcall.} + get_frames*: proc( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLFramesCollection2 + ): HRESULT {.stdcall.} put_defaultStatus*: proc(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.stdcall.} get_defaultStatus*: proc(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.stdcall.} put_status*: proc(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.stdcall.} get_status*: proc(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.stdcall.} - setTimeout*: proc(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.stdcall.} + setTimeout*: proc( + self: ptr IHTMLWindow2, + expression: BSTR, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, + ): HRESULT {.stdcall.} clearTimeout*: proc(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.stdcall.} alert*: proc(self: ptr IHTMLWindow2, message: BSTR): HRESULT {.stdcall.} - confirm*: proc(self: ptr IHTMLWindow2, message: BSTR, confirmed: ptr VARIANT_BOOL): HRESULT {.stdcall.} - prompt*: proc(self: ptr IHTMLWindow2, message: BSTR, defstr: BSTR, textdata: ptr VARIANT): HRESULT {.stdcall.} - get_Image*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLImageElementFactory): HRESULT {.stdcall.} - get_location*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLLocation): HRESULT {.stdcall.} - get_history*: proc(self: ptr IHTMLWindow2, p: ptr ptr IOmHistory): HRESULT {.stdcall.} + confirm*: proc( + self: ptr IHTMLWindow2, message: BSTR, confirmed: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + prompt*: proc( + self: ptr IHTMLWindow2, message: BSTR, defstr: BSTR, textdata: ptr VARIANT + ): HRESULT {.stdcall.} + get_Image*: proc( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLImageElementFactory + ): HRESULT {.stdcall.} + get_location*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLLocation): HRESULT {.stdcall.} + get_history*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IOmHistory): HRESULT {.stdcall.} close*: proc(self: ptr IHTMLWindow2): HRESULT {.stdcall.} put_opener*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} get_opener*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} - get_navigator*: proc(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.stdcall.} + get_navigator*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.stdcall.} - get_parent*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - open*: proc(self: ptr IHTMLWindow2, url: BSTR, name: BSTR, features: BSTR, replace: VARIANT_BOOL, pomWindowResult: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - get_self*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + get_parent*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + open*: proc( + self: ptr IHTMLWindow2, + url: BSTR, + name: BSTR, + features: BSTR, + replace: VARIANT_BOOL, + pomWindowResult: ptr ptr IHTMLWindow2, + ): HRESULT {.stdcall.} + get_self*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} get_top*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - get_window*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + get_window*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} navigate*: proc(self: ptr IHTMLWindow2, url: BSTR): HRESULT {.stdcall.} put_onfocus*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} get_onfocus*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} @@ -4735,7 +5317,8 @@ put_onload*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} get_onload*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} put_onbeforeunload*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeunload*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbeforeunload*: + proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} put_onunload*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} get_onunload*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} put_onhelp*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} @@ -4746,23 +5329,47 @@ get_onresize*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} put_onscroll*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} get_onscroll*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} - get_document*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} - get_event*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLEventObj): HRESULT {.stdcall.} + get_document*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + get_event*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLEventObj): HRESULT {.stdcall.} get_newEnum*: proc(self: ptr IHTMLWindow2, p: ptr ptr IUnknown): HRESULT {.stdcall.} - showModalDialog*: proc(self: ptr IHTMLWindow2, dialog: BSTR, varArgIn: ptr VARIANT, varOptions: ptr VARIANT, varArgOut: ptr VARIANT): HRESULT {.stdcall.} - showHelp*: proc(self: ptr IHTMLWindow2, helpURL: BSTR, helpArg: VARIANT, features: BSTR): HRESULT {.stdcall.} - get_screen*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLScreen): HRESULT {.stdcall.} - get_Option*: proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLOptionElementFactory): HRESULT {.stdcall.} + showModalDialog*: proc( + self: ptr IHTMLWindow2, + dialog: BSTR, + varArgIn: ptr VARIANT, + varOptions: ptr VARIANT, + varArgOut: ptr VARIANT, + ): HRESULT {.stdcall.} + showHelp*: proc( + self: ptr IHTMLWindow2, helpURL: BSTR, helpArg: VARIANT, features: BSTR + ): HRESULT {.stdcall.} + get_screen*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IHTMLScreen): HRESULT {.stdcall.} + get_Option*: proc( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLOptionElementFactory + ): HRESULT {.stdcall.} focus*: proc(self: ptr IHTMLWindow2): HRESULT {.stdcall.} get_closed*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} blur*: proc(self: ptr IHTMLWindow2): HRESULT {.stdcall.} scroll*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.} - get_clientInformation*: proc(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.stdcall.} - setInterval*: proc(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.stdcall.} + get_clientInformation*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.stdcall.} + setInterval*: proc( + self: ptr IHTMLWindow2, + expression: BSTR, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, + ): HRESULT {.stdcall.} clearInterval*: proc(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.stdcall.} - put_offscreenBuffering*: proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} - get_offscreenBuffering*: proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} - execScript*: proc(self: ptr IHTMLWindow2, code: BSTR, language: BSTR, pvarRet: ptr VARIANT): HRESULT {.stdcall.} + put_offscreenBuffering*: + proc(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.stdcall.} + get_offscreenBuffering*: + proc(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.stdcall.} + execScript*: proc( + self: ptr IHTMLWindow2, code: BSTR, language: BSTR, pvarRet: ptr VARIANT + ): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLWindow2, String: ptr BSTR): HRESULT {.stdcall.} scrollBy*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.} scrollTo*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.} @@ -4770,16 +5377,27 @@ moveBy*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.} resizeTo*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.} resizeBy*: proc(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.stdcall.} - get_external*: proc(self: ptr IHTMLWindow2, p: ptr ptr IDispatch): HRESULT {.stdcall.} - SHOWMODELESSHTMLDIALOGFN* = proc (hwndParent: HWND, pmk: ptr IMoniker, pvarArgIn: ptr VARIANT, pvarOptions: ptr VARIANT, ppWindow: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - IEREGISTERXMLNSFN* = proc (lpszURI: LPCWSTR, clsid: GUID, fMachine: BOOL): HRESULT {.stdcall.} - IEISXMLNSREGISTEREDFN* = proc (lpszURI: LPCWSTR, pCLSID: ptr GUID): HRESULT {.stdcall.} + get_external*: + proc(self: ptr IHTMLWindow2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + + SHOWMODELESSHTMLDIALOGFN* = proc( + hwndParent: HWND, + pmk: ptr IMoniker, + pvarArgIn: ptr VARIANT, + pvarOptions: ptr VARIANT, + ppWindow: ptr ptr IHTMLWindow2, + ): HRESULT {.stdcall.} + IEREGISTERXMLNSFN* = + proc(lpszURI: LPCWSTR, clsid: GUID, fMachine: BOOL): HRESULT {.stdcall.} + IEISXMLNSREGISTEREDFN* = proc(lpszURI: LPCWSTR, pCLSID: ptr GUID): HRESULT {.stdcall.} DXGI_SAMPLE_DESC* {.pure.} = object Count*: UINT Quality*: UINT + DXGI_RATIONAL* {.pure.} = object Numerator*: UINT Denominator*: UINT + DXGI_MODE_DESC* {.pure.} = object Width*: UINT Height*: UINT @@ -4787,25 +5405,30 @@ Format*: DXGI_FORMAT ScanlineOrdering*: DXGI_MODE_SCANLINE_ORDER Scaling*: DXGI_MODE_SCALING + DXGI_GAMMA_CONTROL_CAPABILITIES* {.pure.} = object ScaleAndOffsetSupported*: WINBOOL MaxConvertedValue*: float32 MinConvertedValue*: float32 NumGammaControlPoints*: UINT ControlPointPositions*: array[1025, float32] + DXGI_RGB* {.pure.} = object Red*: float32 Green*: float32 Blue*: float32 + DXGI_GAMMA_CONTROL* {.pure.} = object Scale*: DXGI_RGB Offset*: DXGI_RGB GammaCurve*: array[1025, DXGI_RGB] + HTML_PAINTER_INFO* {.pure.} = object lFlags*: LONG lZOrder*: LONG iidDrawObject*: IID rcExpand*: RECT + HTML_PAINT_XFORM* {.pure.} = object eM11*: FLOAT eM12*: FLOAT @@ -4813,684 +5436,1354 @@ eM22*: FLOAT eDx*: FLOAT eDy*: FLOAT + HTML_PAINT_DRAW_INFO* {.pure.} = object rcViewport*: RECT hrgnUpdate*: HRGN xform*: HTML_PAINT_XFORM + DOCHOSTUIINFO* {.pure.} = object cbSize*: ULONG dwFlags*: DWORD dwDoubleClick*: DWORD pchHostCss*: ptr OLECHAR pchHostNS*: ptr OLECHAR + IDispatchEx* {.pure.} = object lpVtbl*: ptr IDispatchExVtbl + IDispatchExVtbl* {.pure, inheritable.} = object of IDispatchVtbl - GetDispID*: proc(self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD, pid: ptr DISPID): HRESULT {.stdcall.} - InvokeEx*: proc(self: ptr IDispatchEx, id: DISPID, lcid: LCID, wFlags: WORD, pdp: ptr DISPPARAMS, pvarRes: ptr VARIANT, pei: ptr EXCEPINFO, pspCaller: ptr IServiceProvider): HRESULT {.stdcall.} - DeleteMemberByName*: proc(self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD): HRESULT {.stdcall.} + GetDispID*: proc( + self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD, pid: ptr DISPID + ): HRESULT {.stdcall.} + InvokeEx*: proc( + self: ptr IDispatchEx, + id: DISPID, + lcid: LCID, + wFlags: WORD, + pdp: ptr DISPPARAMS, + pvarRes: ptr VARIANT, + pei: ptr EXCEPINFO, + pspCaller: ptr IServiceProvider, + ): HRESULT {.stdcall.} + DeleteMemberByName*: + proc(self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD): HRESULT {.stdcall.} DeleteMemberByDispID*: proc(self: ptr IDispatchEx, id: DISPID): HRESULT {.stdcall.} - GetMemberProperties*: proc(self: ptr IDispatchEx, id: DISPID, grfdexFetch: DWORD, pgrfdex: ptr DWORD): HRESULT {.stdcall.} - GetMemberName*: proc(self: ptr IDispatchEx, id: DISPID, pbstrName: ptr BSTR): HRESULT {.stdcall.} - GetNextDispID*: proc(self: ptr IDispatchEx, grfdex: DWORD, id: DISPID, pid: ptr DISPID): HRESULT {.stdcall.} - GetNameSpaceParent*: proc(self: ptr IDispatchEx, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + GetMemberProperties*: proc( + self: ptr IDispatchEx, id: DISPID, grfdexFetch: DWORD, pgrfdex: ptr DWORD + ): HRESULT {.stdcall.} + GetMemberName*: + proc(self: ptr IDispatchEx, id: DISPID, pbstrName: ptr BSTR): HRESULT {.stdcall.} + GetNextDispID*: proc( + self: ptr IDispatchEx, grfdex: DWORD, id: DISPID, pid: ptr DISPID + ): HRESULT {.stdcall.} + GetNameSpaceParent*: + proc(self: ptr IDispatchEx, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + IDispError* {.pure.} = object lpVtbl*: ptr IDispErrorVtbl + IDispErrorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryErrorInfo*: proc(self: ptr IDispError, guidErrorType: GUID, ppde: ptr ptr IDispError): HRESULT {.stdcall.} + QueryErrorInfo*: proc( + self: ptr IDispError, guidErrorType: GUID, ppde: ptr ptr IDispError + ): HRESULT {.stdcall.} GetNext*: proc(self: ptr IDispError, ppde: ptr ptr IDispError): HRESULT {.stdcall.} GetHresult*: proc(self: ptr IDispError, phr: ptr HRESULT): HRESULT {.stdcall.} GetSource*: proc(self: ptr IDispError, pbstrSource: ptr BSTR): HRESULT {.stdcall.} - GetHelpInfo*: proc(self: ptr IDispError, pbstrFileName: ptr BSTR, pdwContext: ptr DWORD): HRESULT {.stdcall.} - GetDescription*: proc(self: ptr IDispError, pbstrDescription: ptr BSTR): HRESULT {.stdcall.} + GetHelpInfo*: proc( + self: ptr IDispError, pbstrFileName: ptr BSTR, pdwContext: ptr DWORD + ): HRESULT {.stdcall.} + GetDescription*: + proc(self: ptr IDispError, pbstrDescription: ptr BSTR): HRESULT {.stdcall.} + IVariantChangeType* {.pure.} = object lpVtbl*: ptr IVariantChangeTypeVtbl + IVariantChangeTypeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ChangeType*: proc(self: ptr IVariantChangeType, pvarDst: ptr VARIANT, pvarSrc: ptr VARIANT, lcid: LCID, vtNew: VARTYPE): HRESULT {.stdcall.} + ChangeType*: proc( + self: ptr IVariantChangeType, + pvarDst: ptr VARIANT, + pvarSrc: ptr VARIANT, + lcid: LCID, + vtNew: VARTYPE, + ): HRESULT {.stdcall.} + IObjectIdentity* {.pure.} = object lpVtbl*: ptr IObjectIdentityVtbl + IObjectIdentityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IsEqualObject*: proc(self: ptr IObjectIdentity, punk: ptr IUnknown): HRESULT {.stdcall.} + IsEqualObject*: + proc(self: ptr IObjectIdentity, punk: ptr IUnknown): HRESULT {.stdcall.} + ICanHandleException* {.pure.} = object lpVtbl*: ptr ICanHandleExceptionVtbl + ICanHandleExceptionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CanHandleException*: proc(self: ptr ICanHandleException, pExcepInfo: ptr EXCEPINFO, pvar: ptr VARIANT): HRESULT {.stdcall.} + CanHandleException*: proc( + self: ptr ICanHandleException, pExcepInfo: ptr EXCEPINFO, pvar: ptr VARIANT + ): HRESULT {.stdcall.} + IProvideRuntimeContext* {.pure.} = object lpVtbl*: ptr IProvideRuntimeContextVtbl + IProvideRuntimeContextVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentSourceContext*: proc(self: ptr IProvideRuntimeContext, pdwContext: ptr DWORD_PTR, pfExecutingGlobalCode: ptr VARIANT_BOOL): HRESULT {.stdcall.} + GetCurrentSourceContext*: proc( + self: ptr IProvideRuntimeContext, + pdwContext: ptr DWORD_PTR, + pfExecutingGlobalCode: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IIE70DispatchEx* {.pure.} = object lpVtbl*: ptr IIE70DispatchExVtbl + IIE70DispatchExVtbl* {.pure, inheritable.} = object of IDispatchExVtbl IIE80DispatchEx* {.pure.} = object lpVtbl*: ptr IIE80DispatchExVtbl + IIE80DispatchExVtbl* {.pure, inheritable.} = object of IDispatchExVtbl IHTMLDOMConstructor* {.pure.} = object lpVtbl*: ptr IHTMLDOMConstructorVtbl + IHTMLDOMConstructorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_constructor*: proc(self: ptr IHTMLDOMConstructor, p: ptr ptr IDispatch): HRESULT {.stdcall.} - LookupGetter*: proc(self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT): HRESULT {.stdcall.} - LookupSetter*: proc(self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT): HRESULT {.stdcall.} - DefineGetter*: proc(self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT): HRESULT {.stdcall.} - DefineSetter*: proc(self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT): HRESULT {.stdcall.} + get_constructor*: + proc(self: ptr IHTMLDOMConstructor, p: ptr ptr IDispatch): HRESULT {.stdcall.} + LookupGetter*: proc( + self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT + ): HRESULT {.stdcall.} + LookupSetter*: proc( + self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT + ): HRESULT {.stdcall.} + DefineGetter*: proc( + self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT + ): HRESULT {.stdcall.} + DefineSetter*: proc( + self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT + ): HRESULT {.stdcall.} + IHTMLCSSStyleDeclaration* {.pure.} = object lpVtbl*: ptr IHTMLCSSStyleDeclarationVtbl + IHTMLCSSStyleDeclarationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr LONG): HRESULT {.stdcall.} - get_parentRule*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - getPropertyValue*: proc(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pbstrPropertyValue: ptr BSTR): HRESULT {.stdcall.} - getPropertyPriority*: proc(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pbstrPropertyPriority: ptr BSTR): HRESULT {.stdcall.} - removeProperty*: proc(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pbstrPropertyValue: ptr BSTR): HRESULT {.stdcall.} - setProperty*: proc(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pvarPropertyValue: ptr VARIANT, pvarPropertyPriority: ptr VARIANT): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLCSSStyleDeclaration, index: LONG, pbstrPropertyName: ptr BSTR): HRESULT {.stdcall.} - put_fontFamily*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fontFamily*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_fontStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fontStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_fontVariant*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fontVariant*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_fontWeight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fontWeight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_fontSize*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_fontSize*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr LONG): HRESULT {.stdcall.} + get_parentRule*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + getPropertyValue*: proc( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pbstrPropertyValue: ptr BSTR, + ): HRESULT {.stdcall.} + getPropertyPriority*: proc( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pbstrPropertyPriority: ptr BSTR, + ): HRESULT {.stdcall.} + removeProperty*: proc( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pbstrPropertyValue: ptr BSTR, + ): HRESULT {.stdcall.} + setProperty*: proc( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pvarPropertyValue: ptr VARIANT, + pvarPropertyPriority: ptr VARIANT, + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLCSSStyleDeclaration, index: LONG, pbstrPropertyName: ptr BSTR + ): HRESULT {.stdcall.} + put_fontFamily*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_fontFamily*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_fontStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_fontStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_fontVariant*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_fontVariant*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_fontWeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_fontWeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_fontSize*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_fontSize*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_font*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_font*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_color*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_color*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_background*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_background*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_backgroundColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_backgroundImage*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundImage*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundRepeat*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundRepeat*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundAttachment*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundAttachment*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundPosition*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundPosition*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundPositionX*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_backgroundPositionX*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_backgroundPositionY*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_backgroundPositionY*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_wordSpacing*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_wordSpacing*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_letterSpacing*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_letterSpacing*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_textDecoration*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textDecoration*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_verticalAlign*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_verticalAlign*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_textTransform*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textTransform*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textAlign*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textAlign*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textIndent*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_textIndent*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_lineHeight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_lineHeight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_marginTop*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_marginTop*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_marginRight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_marginRight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_marginBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_marginBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_marginLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_marginLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_font*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_color*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_color*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_background*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_background*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_backgroundColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_backgroundImage*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundImage*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundRepeat*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundRepeat*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundAttachment*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundAttachment*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundPosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundPosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundPositionX*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_backgroundPositionX*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_backgroundPositionY*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_backgroundPositionY*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_wordSpacing*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_wordSpacing*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_letterSpacing*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_letterSpacing*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_textDecoration*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textDecoration*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_verticalAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_verticalAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_textTransform*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textTransform*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textIndent*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_textIndent*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_lineHeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_lineHeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_marginTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_marginTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_marginRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_marginRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_marginBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_marginBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_marginLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_marginLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_margin*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_margin*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_paddingTop*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_paddingTop*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_paddingRight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_paddingRight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_paddingBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_paddingBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_paddingLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_paddingLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_margin*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_paddingTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_paddingTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_paddingRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_paddingRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_paddingBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_paddingBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_paddingLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_paddingLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_padding*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_padding*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_padding*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_border*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderTop*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderTop*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderRight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderRight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderTopColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderTopColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderRightColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderRightColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderBottomColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderBottomColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderLeftColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderLeftColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderTopWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderTopWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderRightWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderRightWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderBottomWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderBottomWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderLeftWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_borderLeftWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderTopStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderTopStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderRightStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderRightStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderBottomStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderBottomStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderLeftStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderLeftStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_width*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_width*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_height*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_height*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_styleFloat*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_styleFloat*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_border*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderTopColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderTopColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderRightColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderRightColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderBottomColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderBottomColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderLeftColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderLeftColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderTopWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderTopWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderRightWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderRightWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderBottomWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderBottomWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderLeftWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_borderLeftWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderTopStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderTopStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderRightStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderRightStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderBottomStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderBottomStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderLeftStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderLeftStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_width*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_width*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_height*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_height*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_styleFloat*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_styleFloat*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_clear*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_clear*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_clear*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_display*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_display*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_visibility*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_visibility*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_listStyleType*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_listStyleType*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_listStylePosition*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_listStylePosition*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_listStyleImage*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_listStyleImage*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_listStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_listStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_whiteSpace*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_whiteSpace*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_display*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_visibility*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_visibility*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_listStyleType*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_listStyleType*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_listStylePosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_listStylePosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_listStyleImage*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_listStyleImage*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_listStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_listStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_whiteSpace*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_whiteSpace*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_top*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_top*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_top*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_left*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_left*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_zIndex*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_zIndex*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_overflow*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_overflow*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_pageBreakBefore*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_pageBreakBefore*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_pageBreakAfter*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_pageBreakAfter*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_left*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_zIndex*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_zIndex*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_overflow*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_overflow*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_pageBreakBefore*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_pageBreakBefore*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_pageBreakAfter*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_pageBreakAfter*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_cssText*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_cssText*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_cssText*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_cursor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_cursor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_cursor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_clip*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_clip*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_clip*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_filter*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_filter*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_tableLayout*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_tableLayout*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderCollapse*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderCollapse*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_direction*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_direction*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_behavior*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_behavior*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_position*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_position*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_unicodeBidi*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_unicodeBidi*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_bottom*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_bottom*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_right*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_right*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_filter*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_tableLayout*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_tableLayout*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderCollapse*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderCollapse*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_direction*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_direction*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_behavior*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_behavior*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_position*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_position*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_unicodeBidi*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_unicodeBidi*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_bottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_bottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_right*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_right*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_imeMode*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_imeMode*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_rubyAlign*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_rubyAlign*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_rubyPosition*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_rubyPosition*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_rubyOverhang*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_rubyOverhang*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_layoutGridChar*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_layoutGridChar*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_layoutGridLine*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_layoutGridLine*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_layoutGridMode*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_layoutGridMode*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_layoutGridType*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_layoutGridType*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_layoutGrid*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_layoutGrid*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textAutospace*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textAutospace*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_wordBreak*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_wordBreak*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_lineBreak*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_lineBreak*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textJustify*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textJustify*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textJustifyTrim*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textJustifyTrim*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textKashida*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_textKashida*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_overflowX*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_overflowX*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_overflowY*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_overflowY*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_accelerator*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_accelerator*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_layoutFlow*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_layoutFlow*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_imeMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_rubyAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_rubyAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_rubyPosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_rubyPosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_rubyOverhang*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_rubyOverhang*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_layoutGridChar*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_layoutGridChar*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_layoutGridLine*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_layoutGridLine*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_layoutGridMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_layoutGridMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_layoutGridType*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_layoutGridType*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_layoutGrid*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_layoutGrid*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textAutospace*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textAutospace*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_wordBreak*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_wordBreak*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_lineBreak*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_lineBreak*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textJustify*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textJustify*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textJustifyTrim*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textJustifyTrim*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textKashida*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_textKashida*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_overflowX*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_overflowX*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_overflowY*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_overflowY*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_accelerator*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_accelerator*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_layoutFlow*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_layoutFlow*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_zoom*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_zoom*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_wordWrap*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_wordWrap*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textUnderlinePosition*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textUnderlinePosition*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_scrollbarBaseColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarBaseColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarFaceColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarFaceColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbar3dLightColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbar3dLightColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarShadowColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarShadowColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarHighlightColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarHighlightColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarDarkShadowColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarDarkShadowColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarArrowColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarArrowColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarTrackColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarTrackColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_writingMode*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_writingMode*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textAlignLast*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textAlignLast*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_textKashidaSpace*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_textKashidaSpace*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_textOverflow*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textOverflow*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_minHeight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_minHeight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_msInterpolationMode*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_msInterpolationMode*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_maxHeight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_maxHeight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_minWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_minWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_maxWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_maxWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_zoom*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_wordWrap*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_wordWrap*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textUnderlinePosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textUnderlinePosition*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_scrollbarBaseColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarBaseColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarFaceColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarFaceColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbar3dLightColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbar3dLightColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarShadowColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarShadowColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarHighlightColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarHighlightColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarArrowColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarArrowColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarTrackColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarTrackColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_writingMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_writingMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textAlignLast*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textAlignLast*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_textKashidaSpace*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_textKashidaSpace*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_textOverflow*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textOverflow*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_minHeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_minHeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_msInterpolationMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_msInterpolationMode*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_maxHeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_maxHeight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_minWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_minWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_maxWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_maxWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_content*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_content*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_captionSide*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_captionSide*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_counterIncrement*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_counterIncrement*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_counterReset*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_counterReset*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_content*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_captionSide*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_captionSide*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_counterIncrement*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_counterIncrement*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_counterReset*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_counterReset*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_outline*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_outline*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_outlineWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_outlineWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_outlineStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_outlineStyle*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_outlineColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_outlineColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_boxSizing*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_boxSizing*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderSpacing*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderSpacing*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_orphans*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_orphans*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_widows*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_widows*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_pageBreakInside*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_pageBreakInside*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_emptyCells*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_emptyCells*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_msBlockProgression*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_msBlockProgression*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_outline*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_outlineWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_outlineWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_outlineStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_outlineStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_outlineColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_outlineColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_boxSizing*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_boxSizing*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderSpacing*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderSpacing*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_orphans*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_orphans*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_widows*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_widows*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_pageBreakInside*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_pageBreakInside*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_emptyCells*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_emptyCells*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_msBlockProgression*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_msBlockProgression*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_quotes*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_quotes*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_alignmentBaseline*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_alignmentBaseline*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_baselineShift*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_baselineShift*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_dominantBaseline*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_dominantBaseline*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_fontSizeAdjust*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_fontSizeAdjust*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_fontStretch*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fontStretch*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_opacity*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_opacity*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_clipPath*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_clipPath*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_clipRule*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_clipRule*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_quotes*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_alignmentBaseline*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_alignmentBaseline*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_baselineShift*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_baselineShift*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_dominantBaseline*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_dominantBaseline*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_fontSizeAdjust*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_fontSizeAdjust*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_fontStretch*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_fontStretch*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_opacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_opacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_clipPath*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_clipPath*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_clipRule*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_clipRule*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_fill*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fill*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_fillOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_fillOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_fillRule*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_fillRule*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_kerning*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_kerning*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_fill*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_fillOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_fillOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_fillRule*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_fillRule*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_kerning*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_kerning*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_marker*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_marker*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_markerEnd*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_markerEnd*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_markerMid*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_markerMid*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_markerStart*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_markerStart*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_marker*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_markerEnd*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_markerEnd*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_markerMid*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_markerMid*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_markerStart*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_markerStart*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} put_mask*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_mask*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_pointerEvents*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_pointerEvents*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_stopColor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_stopColor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_stopOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_stopOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_mask*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_pointerEvents*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_pointerEvents*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_stopColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_stopColor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_stopOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_stopOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} put_stroke*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_stroke*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_strokeDasharray*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_strokeDasharray*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_strokeDashoffset*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_strokeDashoffset*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_strokeLinecap*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_strokeLinecap*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_strokeLinejoin*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_strokeLinejoin*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_strokeMiterlimit*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_strokeMiterlimit*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_strokeOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_strokeOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_strokeWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_strokeWidth*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_textAnchor*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_textAnchor*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_glyphOrientationHorizontal*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_glyphOrientationHorizontal*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_glyphOrientationVertical*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_glyphOrientationVertical*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderTopLeftRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderTopLeftRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderTopRightRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderTopRightRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderBottomRightRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderBottomRightRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_borderBottomLeftRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_borderBottomLeftRadius*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_clipTop*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_clipTop*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_clipRight*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_clipRight*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - get_clipBottom*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_clipLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} - get_clipLeft*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} - put_cssFloat*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_cssFloat*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundClip*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundClip*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_backgroundSize*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_backgroundSize*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_boxShadow*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_boxShadow*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransform*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_msTransform*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransformOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} - get_msTransformOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + get_stroke*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_strokeDasharray*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_strokeDasharray*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_strokeDashoffset*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_strokeDashoffset*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_strokeLinecap*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_strokeLinecap*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_strokeLinejoin*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_strokeLinejoin*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_strokeMiterlimit*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_strokeMiterlimit*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_strokeOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_strokeOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_strokeWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_strokeWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_textAnchor*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_textAnchor*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_glyphOrientationHorizontal*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_glyphOrientationHorizontal*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_glyphOrientationVertical*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_glyphOrientationVertical*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderTopLeftRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderTopLeftRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderTopRightRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderTopRightRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderBottomRightRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderBottomRightRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_borderBottomLeftRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_borderBottomLeftRadius*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_clipTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_clipTop*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_clipRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_clipRight*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + get_clipBottom*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_clipLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.stdcall.} + get_clipLeft*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.stdcall.} + put_cssFloat*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_cssFloat*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundClip*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundClip*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_backgroundSize*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_backgroundSize*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_boxShadow*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_boxShadow*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransform*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_msTransform*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransformOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.stdcall.} + get_msTransformOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLCSSStyleDeclaration2* {.pure.} = object lpVtbl*: ptr IHTMLCSSStyleDeclaration2Vtbl + IHTMLCSSStyleDeclaration2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_msScrollChaining*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollChaining*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZooming*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msContentZooming*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZoomSnapType*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msContentZoomSnapType*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msScrollRails*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollRails*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZoomChaining*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msContentZoomChaining*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msScrollSnapType*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollSnapType*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZoomLimit*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msContentZoomLimit*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZoomSnap*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msContentZoomSnap*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZoomSnapPoints*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msContentZoomSnapPoints*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msContentZoomLimitMin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msContentZoomLimitMin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msContentZoomLimitMax*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msContentZoomLimitMax*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msScrollSnapX*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollSnapX*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msScrollSnapY*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollSnapY*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msScrollSnapPointsX*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollSnapPointsX*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msScrollSnapPointsY*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollSnapPointsY*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msGridColumn*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msGridColumn*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msGridColumnAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msGridColumnAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msGridColumns*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msGridColumns*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msGridColumnSpan*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msGridColumnSpan*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msGridRow*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msGridRow*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msGridRowAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msGridRowAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msGridRows*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msGridRows*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msGridRowSpan*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msGridRowSpan*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msWrapThrough*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msWrapThrough*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msWrapMargin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msWrapMargin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msWrapFlow*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msWrapFlow*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationName*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationName*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationDirection*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationDirection*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationPlayState*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationPlayState*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationIterationCount*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationIterationCount*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimation*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimation*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msAnimationFillMode*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msAnimationFillMode*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_colorInterpolationFilters*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_colorInterpolationFilters*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_columnCount*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_columnCount*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_columnWidth*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_columnWidth*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_columnGap*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_columnGap*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_columnFill*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_columnFill*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_columnSpan*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_columnSpan*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_columns*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_columns*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_columnRule*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_columnRule*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_columnRuleColor*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_columnRuleColor*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_columnRuleStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_columnRuleStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_columnRuleWidth*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_columnRuleWidth*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_breakBefore*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_breakBefore*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_breakAfter*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_breakAfter*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_breakInside*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_breakInside*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_floodColor*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_floodColor*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_floodOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_floodOpacity*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_lightingColor*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_lightingColor*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msScrollLimitXMin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msScrollLimitXMin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msScrollLimitYMin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msScrollLimitYMin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msScrollLimitXMax*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msScrollLimitXMax*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msScrollLimitYMax*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msScrollLimitYMax*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msScrollLimit*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollLimit*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_textShadow*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_textShadow*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlowFrom*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlowFrom*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlowInto*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlowInto*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msHyphens*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msHyphens*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msHyphenateLimitZone*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msHyphenateLimitZone*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msHyphenateLimitChars*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msHyphenateLimitChars*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msHyphenateLimitLines*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msHyphenateLimitLines*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msHighContrastAdjust*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msHighContrastAdjust*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_enableBackground*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_enableBackground*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFontFeatureSettings*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFontFeatureSettings*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msUserSelect*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msUserSelect*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msOverflowStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msOverflowStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransformStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTransformStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msBackfaceVisibility*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msBackfaceVisibility*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msPerspective*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msPerspective*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msPerspectiveOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msPerspectiveOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransitionProperty*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTransitionProperty*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransitionDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTransitionDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransitionTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTransitionTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransitionDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTransitionDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTransition*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTransition*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msTouchAction*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTouchAction*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msScrollTranslation*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msScrollTranslation*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollChaining*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollChaining*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZooming*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msContentZooming*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZoomSnapType*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msContentZoomSnapType*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollRails*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollRails*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZoomChaining*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msContentZoomChaining*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollSnapType*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollSnapType*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZoomLimit*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msContentZoomLimit*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZoomSnap*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msContentZoomSnap*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZoomSnapPoints*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msContentZoomSnapPoints*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msContentZoomLimitMin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msContentZoomLimitMin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msContentZoomLimitMax*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msContentZoomLimitMax*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msScrollSnapX*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollSnapX*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollSnapY*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollSnapY*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollSnapPointsX*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollSnapPointsX*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollSnapPointsY*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollSnapPointsY*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msGridColumn*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msGridColumn*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msGridColumnAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msGridColumnAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msGridColumns*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msGridColumns*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msGridColumnSpan*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msGridColumnSpan*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msGridRow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msGridRow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msGridRowAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msGridRowAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msGridRows*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msGridRows*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msGridRowSpan*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msGridRowSpan*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msWrapThrough*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msWrapThrough*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msWrapMargin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msWrapMargin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msWrapFlow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msWrapFlow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationName*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationName*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationDirection*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationDirection*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationPlayState*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationPlayState*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationIterationCount*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationIterationCount*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimation*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimation*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msAnimationFillMode*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msAnimationFillMode*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_colorInterpolationFilters*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_colorInterpolationFilters*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_columnCount*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_columnCount*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_columnWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_columnWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_columnGap*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_columnGap*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_columnFill*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_columnFill*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_columnSpan*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_columnSpan*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_columns*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_columns*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_columnRule*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_columnRule*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_columnRuleColor*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_columnRuleColor*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_columnRuleStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_columnRuleStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_columnRuleWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_columnRuleWidth*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_breakBefore*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_breakBefore*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_breakAfter*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_breakAfter*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_breakInside*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_breakInside*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_floodColor*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_floodColor*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_floodOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_floodOpacity*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_lightingColor*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_lightingColor*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msScrollLimitXMin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msScrollLimitXMin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msScrollLimitYMin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msScrollLimitYMin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msScrollLimitXMax*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msScrollLimitXMax*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msScrollLimitYMax*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msScrollLimitYMax*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msScrollLimit*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollLimit*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_textShadow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_textShadow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlowFrom*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlowFrom*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlowInto*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlowInto*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msHyphens*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msHyphens*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msHyphenateLimitZone*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msHyphenateLimitZone*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msHyphenateLimitChars*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msHyphenateLimitChars*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msHyphenateLimitLines*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msHyphenateLimitLines*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msHighContrastAdjust*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msHighContrastAdjust*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_enableBackground*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_enableBackground*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFontFeatureSettings*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFontFeatureSettings*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msUserSelect*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msUserSelect*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msOverflowStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msOverflowStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransformStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTransformStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msBackfaceVisibility*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msBackfaceVisibility*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msPerspective*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msPerspective*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msPerspectiveOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msPerspectiveOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransitionProperty*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTransitionProperty*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransitionDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTransitionDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransitionTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTransitionTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransitionDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTransitionDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTransition*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTransition*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msTouchAction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTouchAction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msScrollTranslation*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msScrollTranslation*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} put_msFlex*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlex*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexPositive*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msFlexPositive*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msFlexNegative*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msFlexNegative*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msFlexPreferredSize*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msFlexPreferredSize*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msFlexFlow*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexFlow*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexDirection*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexDirection*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexWrap*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexWrap*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexItemAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexItemAlign*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexPack*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexPack*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexLinePack*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msFlexLinePack*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_msFlexOrder*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_msFlexOrder*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_msTouchSelect*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_msTouchSelect*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transform*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transform*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transformOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transformOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transformStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transformStyle*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_backfaceVisibility*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_backfaceVisibility*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_perspective*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} - get_perspective*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} - put_perspectiveOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_perspectiveOrigin*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transitionProperty*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transitionProperty*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transitionDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transitionDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transitionTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transitionTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transitionDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transitionDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_transition*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_transition*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_fontFeatureSettings*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_fontFeatureSettings*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationName*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationName*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationDuration*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationTimingFunction*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationDelay*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationDirection*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationDirection*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationPlayState*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationPlayState*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationIterationCount*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationIterationCount*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animation*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animation*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} - put_animationFillMode*: proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} - get_animationFillMode*: proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + get_msFlex*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexPositive*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msFlexPositive*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msFlexNegative*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msFlexNegative*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msFlexPreferredSize*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msFlexPreferredSize*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msFlexFlow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexFlow*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexDirection*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexDirection*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexWrap*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexWrap*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexItemAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexItemAlign*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexPack*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexPack*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexLinePack*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msFlexLinePack*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_msFlexOrder*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_msFlexOrder*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_msTouchSelect*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_msTouchSelect*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transform*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transform*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transformOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transformOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transformStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transformStyle*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_backfaceVisibility*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_backfaceVisibility*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_perspective*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.stdcall.} + get_perspective*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.stdcall.} + put_perspectiveOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_perspectiveOrigin*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transitionProperty*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transitionProperty*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transitionDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transitionDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transitionTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transitionTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transitionDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transitionDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_transition*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_transition*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_fontFeatureSettings*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_fontFeatureSettings*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationName*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationName*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationDuration*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationTimingFunction*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationDelay*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationDirection*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationDirection*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationPlayState*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationPlayState*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationIterationCount*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationIterationCount*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animation*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animation*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + put_animationFillMode*: + proc(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.stdcall.} + get_animationFillMode*: + proc(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyleEnabled* {.pure.} = object lpVtbl*: ptr IHTMLStyleEnabledVtbl + IHTMLStyleEnabledVtbl* {.pure, inheritable.} = object of IDispatchVtbl - msGetPropertyEnabled*: proc(self: ptr IHTMLStyleEnabled, name: BSTR, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - msPutPropertyEnabled*: proc(self: ptr IHTMLStyleEnabled, name: BSTR, b: VARIANT_BOOL): HRESULT {.stdcall.} + msGetPropertyEnabled*: proc( + self: ptr IHTMLStyleEnabled, name: BSTR, p: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + msPutPropertyEnabled*: proc( + self: ptr IHTMLStyleEnabled, name: BSTR, b: VARIANT_BOOL + ): HRESULT {.stdcall.} + DispHTMLCSSStyleDeclaration* {.pure.} = object lpVtbl*: ptr DispHTMLCSSStyleDeclarationVtbl + DispHTMLCSSStyleDeclarationVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyle2* {.pure.} = object lpVtbl*: ptr IHTMLStyle2Vtbl + IHTMLStyle2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_tableLayout*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} get_tableLayout*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} @@ -5500,9 +6793,15 @@ get_direction*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_behavior*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} get_behavior*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} - setExpression*: proc(self: ptr IHTMLStyle2, propname: BSTR, expression: BSTR, language: BSTR): HRESULT {.stdcall.} - getExpression*: proc(self: ptr IHTMLStyle2, propname: BSTR, expression: ptr VARIANT): HRESULT {.stdcall.} - removeExpression*: proc(self: ptr IHTMLStyle2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setExpression*: proc( + self: ptr IHTMLStyle2, propname: BSTR, expression: BSTR, language: BSTR + ): HRESULT {.stdcall.} + getExpression*: proc( + self: ptr IHTMLStyle2, propname: BSTR, expression: ptr VARIANT + ): HRESULT {.stdcall.} + removeExpression*: proc( + self: ptr IHTMLStyle2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_position*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} get_position*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_unicodeBidi*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} @@ -5528,9 +6827,11 @@ put_rubyOverhang*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} get_rubyOverhang*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_layoutGridChar*: proc(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.stdcall.} - get_layoutGridChar*: proc(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_layoutGridChar*: + proc(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.stdcall.} put_layoutGridLine*: proc(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.stdcall.} - get_layoutGridLine*: proc(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_layoutGridLine*: + proc(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.stdcall.} put_layoutGridMode*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} get_layoutGridMode*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_layoutGridType*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} @@ -5555,8 +6856,10 @@ get_overflowY*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_accelerator*: proc(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.stdcall.} get_accelerator*: proc(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyle3* {.pure.} = object lpVtbl*: ptr IHTMLStyle3Vtbl + IHTMLStyle3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_layoutFlow*: proc(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.stdcall.} get_layoutFlow*: proc(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.stdcall.} @@ -5564,50 +6867,76 @@ get_zoom*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} put_wordWrap*: proc(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.stdcall.} get_wordWrap*: proc(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.stdcall.} - put_textUnderlinePosition*: proc(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.stdcall.} - get_textUnderlinePosition*: proc(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.stdcall.} - put_scrollbarBaseColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarBaseColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarFaceColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarFaceColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbar3dLightColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbar3dLightColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarShadowColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarShadowColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarHighlightColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarHighlightColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarDarkShadowColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarDarkShadowColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarArrowColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarArrowColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarTrackColor*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarTrackColor*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_textUnderlinePosition*: + proc(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.stdcall.} + get_textUnderlinePosition*: + proc(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.stdcall.} + put_scrollbarBaseColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarBaseColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarFaceColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarFaceColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbar3dLightColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbar3dLightColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarShadowColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarShadowColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarHighlightColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarHighlightColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarArrowColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarArrowColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarTrackColor*: + proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarTrackColor*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} put_writingMode*: proc(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.stdcall.} get_writingMode*: proc(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.stdcall.} put_textAlignLast*: proc(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.stdcall.} get_textAlignLast*: proc(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.stdcall.} put_textKashidaSpace*: proc(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.stdcall.} - get_textKashidaSpace*: proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + get_textKashidaSpace*: + proc(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLStyle4* {.pure.} = object lpVtbl*: ptr IHTMLStyle4Vtbl + IHTMLStyle4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_textOverflow*: proc(self: ptr IHTMLStyle4, v: BSTR): HRESULT {.stdcall.} get_textOverflow*: proc(self: ptr IHTMLStyle4, p: ptr BSTR): HRESULT {.stdcall.} put_minHeight*: proc(self: ptr IHTMLStyle4, v: VARIANT): HRESULT {.stdcall.} get_minHeight*: proc(self: ptr IHTMLStyle4, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLStyle5* {.pure.} = object lpVtbl*: ptr IHTMLStyle5Vtbl + IHTMLStyle5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_msInterpolationMode*: proc(self: ptr IHTMLStyle5, v: BSTR): HRESULT {.stdcall.} - get_msInterpolationMode*: proc(self: ptr IHTMLStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_msInterpolationMode*: + proc(self: ptr IHTMLStyle5, p: ptr BSTR): HRESULT {.stdcall.} put_maxHeight*: proc(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.stdcall.} get_maxHeight*: proc(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.stdcall.} put_minWidth*: proc(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.stdcall.} get_minWidth*: proc(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.stdcall.} put_maxWidth*: proc(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.stdcall.} get_maxWidth*: proc(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLStyle6* {.pure.} = object lpVtbl*: ptr IHTMLStyle6Vtbl + IHTMLStyle6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_content*: proc(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.stdcall.} get_content*: proc(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.stdcall.} @@ -5638,16 +6967,20 @@ put_emptyCells*: proc(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.stdcall.} get_emptyCells*: proc(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_msBlockProgression*: proc(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.stdcall.} - get_msBlockProgression*: proc(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.stdcall.} + get_msBlockProgression*: + proc(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_quotes*: proc(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.stdcall.} get_quotes*: proc(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLRuleStyle2* {.pure.} = object lpVtbl*: ptr IHTMLRuleStyle2Vtbl + IHTMLRuleStyle2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_tableLayout*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_tableLayout*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_borderCollapse*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} - get_borderCollapse*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_borderCollapse*: + proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_direction*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_direction*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_behavior*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} @@ -5676,18 +7009,25 @@ get_rubyPosition*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_rubyOverhang*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_rubyOverhang*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} - put_layoutGridChar*: proc(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.stdcall.} - get_layoutGridChar*: proc(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - put_layoutGridLine*: proc(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.stdcall.} - get_layoutGridLine*: proc(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + put_layoutGridChar*: + proc(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.stdcall.} + get_layoutGridChar*: + proc(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + put_layoutGridLine*: + proc(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.stdcall.} + get_layoutGridLine*: + proc(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.stdcall.} put_layoutGridMode*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} - get_layoutGridMode*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_layoutGridMode*: + proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_layoutGridType*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} - get_layoutGridType*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_layoutGridType*: + proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_layoutGrid*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_layoutGrid*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_textAutospace*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} - get_textAutospace*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_textAutospace*: + proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_wordBreak*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_wordBreak*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_lineBreak*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} @@ -5695,17 +7035,21 @@ put_textJustify*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_textJustify*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_textJustifyTrim*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} - get_textJustifyTrim*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_textJustifyTrim*: + proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_textKashida*: proc(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.stdcall.} - get_textKashida*: proc(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_textKashida*: + proc(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.stdcall.} put_overflowX*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_overflowX*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_overflowY*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_overflowY*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} put_accelerator*: proc(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.stdcall.} get_accelerator*: proc(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLRuleStyle3* {.pure.} = object lpVtbl*: ptr IHTMLRuleStyle3Vtbl + IHTMLRuleStyle3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_layoutFlow*: proc(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.stdcall.} get_layoutFlow*: proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} @@ -5713,336 +7057,547 @@ get_zoom*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} put_wordWrap*: proc(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.stdcall.} get_wordWrap*: proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} - put_textUnderlinePosition*: proc(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.stdcall.} - get_textUnderlinePosition*: proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} - put_scrollbarBaseColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarBaseColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarFaceColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarFaceColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbar3dLightColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbar3dLightColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarShadowColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarShadowColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarHighlightColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarHighlightColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarDarkShadowColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarDarkShadowColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarArrowColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarArrowColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - put_scrollbarTrackColor*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_scrollbarTrackColor*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_textUnderlinePosition*: + proc(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.stdcall.} + get_textUnderlinePosition*: + proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} + put_scrollbarBaseColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarBaseColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarFaceColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarFaceColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbar3dLightColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbar3dLightColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarShadowColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarShadowColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarHighlightColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarHighlightColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarArrowColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarArrowColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + put_scrollbarTrackColor*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_scrollbarTrackColor*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} put_writingMode*: proc(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.stdcall.} get_writingMode*: proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} put_textAlignLast*: proc(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.stdcall.} - get_textAlignLast*: proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} - put_textKashidaSpace*: proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} - get_textKashidaSpace*: proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + get_textAlignLast*: + proc(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.stdcall.} + put_textKashidaSpace*: + proc(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.stdcall.} + get_textKashidaSpace*: + proc(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLRuleStyle4* {.pure.} = object lpVtbl*: ptr IHTMLRuleStyle4Vtbl + IHTMLRuleStyle4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_textOverflow*: proc(self: ptr IHTMLRuleStyle4, v: BSTR): HRESULT {.stdcall.} get_textOverflow*: proc(self: ptr IHTMLRuleStyle4, p: ptr BSTR): HRESULT {.stdcall.} put_minHeight*: proc(self: ptr IHTMLRuleStyle4, v: VARIANT): HRESULT {.stdcall.} get_minHeight*: proc(self: ptr IHTMLRuleStyle4, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLRuleStyle5* {.pure.} = object lpVtbl*: ptr IHTMLRuleStyle5Vtbl + IHTMLRuleStyle5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_msInterpolationMode*: proc(self: ptr IHTMLRuleStyle5, v: BSTR): HRESULT {.stdcall.} - get_msInterpolationMode*: proc(self: ptr IHTMLRuleStyle5, p: ptr BSTR): HRESULT {.stdcall.} + put_msInterpolationMode*: + proc(self: ptr IHTMLRuleStyle5, v: BSTR): HRESULT {.stdcall.} + get_msInterpolationMode*: + proc(self: ptr IHTMLRuleStyle5, p: ptr BSTR): HRESULT {.stdcall.} put_maxHeight*: proc(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.stdcall.} get_maxHeight*: proc(self: ptr IHTMLRuleStyle5, p: ptr VARIANT): HRESULT {.stdcall.} put_minWidth*: proc(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.stdcall.} get_minWidth*: proc(self: ptr IHTMLRuleStyle5, p: ptr VARIANT): HRESULT {.stdcall.} put_maxWidth*: proc(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.stdcall.} get_maxWidth*: proc(self: ptr IHTMLRuleStyle5, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLRuleStyle6* {.pure.} = object lpVtbl*: ptr IHTMLRuleStyle6Vtbl + IHTMLRuleStyle6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_content*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_content*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_captionSide*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_captionSide*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_counterIncrement*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} - get_counterIncrement*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} + get_counterIncrement*: + proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_counterReset*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_counterReset*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_outline*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_outline*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_outlineWidth*: proc(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.stdcall.} - get_outlineWidth*: proc(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.stdcall.} + get_outlineWidth*: + proc(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.stdcall.} put_outlineStyle*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_outlineStyle*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_outlineColor*: proc(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.stdcall.} - get_outlineColor*: proc(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.stdcall.} + get_outlineColor*: + proc(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.stdcall.} put_boxSizing*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_boxSizing*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_borderSpacing*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} - get_borderSpacing*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} + get_borderSpacing*: + proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_orphans*: proc(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.stdcall.} get_orphans*: proc(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.stdcall.} put_widows*: proc(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.stdcall.} get_widows*: proc(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.stdcall.} put_pageBreakInside*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} - get_pageBreakInside*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} + get_pageBreakInside*: + proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_emptyCells*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_emptyCells*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} - put_msBlockProgression*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} - get_msBlockProgression*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} + put_msBlockProgression*: + proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} + get_msBlockProgression*: + proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} put_quotes*: proc(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.stdcall.} get_quotes*: proc(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLStyle* {.pure.} = object lpVtbl*: ptr DispHTMLStyleVtbl + DispHTMLStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLRuleStyle* {.pure.} = object lpVtbl*: ptr DispHTMLRuleStyleVtbl + DispHTMLRuleStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLCSSRule* {.pure.} = object lpVtbl*: ptr IHTMLCSSRuleVtbl + IHTMLCSSRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLCSSRule, p: ptr USHORT): HRESULT {.stdcall.} put_cssText*: proc(self: ptr IHTMLCSSRule, v: BSTR): HRESULT {.stdcall.} get_cssText*: proc(self: ptr IHTMLCSSRule, p: ptr BSTR): HRESULT {.stdcall.} - get_parentRule*: proc(self: ptr IHTMLCSSRule, p: ptr ptr IHTMLCSSRule): HRESULT {.stdcall.} - get_parentStyleSheet*: proc(self: ptr IHTMLCSSRule, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + get_parentRule*: + proc(self: ptr IHTMLCSSRule, p: ptr ptr IHTMLCSSRule): HRESULT {.stdcall.} + get_parentStyleSheet*: + proc(self: ptr IHTMLCSSRule, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + IHTMLCSSImportRule* {.pure.} = object lpVtbl*: ptr IHTMLCSSImportRuleVtbl + IHTMLCSSImportRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_href*: proc(self: ptr IHTMLCSSImportRule, p: ptr BSTR): HRESULT {.stdcall.} put_media*: proc(self: ptr IHTMLCSSImportRule, v: VARIANT): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLCSSImportRule, p: ptr VARIANT): HRESULT {.stdcall.} - get_styleSheet*: proc(self: ptr IHTMLCSSImportRule, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + get_styleSheet*: proc( + self: ptr IHTMLCSSImportRule, p: ptr ptr IHTMLStyleSheet + ): HRESULT {.stdcall.} + IHTMLCSSMediaRule* {.pure.} = object lpVtbl*: ptr IHTMLCSSMediaRuleVtbl + IHTMLCSSMediaRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_media*: proc(self: ptr IHTMLCSSMediaRule, v: VARIANT): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLCSSMediaRule, p: ptr VARIANT): HRESULT {.stdcall.} - get_cssRules*: proc(self: ptr IHTMLCSSMediaRule, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.stdcall.} - insertRule*: proc(self: ptr IHTMLCSSMediaRule, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.stdcall.} + get_cssRules*: proc( + self: ptr IHTMLCSSMediaRule, p: ptr ptr IHTMLStyleSheetRulesCollection + ): HRESULT {.stdcall.} + insertRule*: proc( + self: ptr IHTMLCSSMediaRule, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG + ): HRESULT {.stdcall.} deleteRule*: proc(self: ptr IHTMLCSSMediaRule, lIndex: LONG): HRESULT {.stdcall.} + IHTMLCSSMediaList* {.pure.} = object lpVtbl*: ptr IHTMLCSSMediaListVtbl + IHTMLCSSMediaListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_mediaText*: proc(self: ptr IHTMLCSSMediaList, v: BSTR): HRESULT {.stdcall.} get_mediaText*: proc(self: ptr IHTMLCSSMediaList, p: ptr BSTR): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLCSSMediaList, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLCSSMediaList, index: LONG, pbstrMedium: ptr BSTR): HRESULT {.stdcall.} - appendMedium*: proc(self: ptr IHTMLCSSMediaList, bstrMedium: BSTR): HRESULT {.stdcall.} - deleteMedium*: proc(self: ptr IHTMLCSSMediaList, bstrMedium: BSTR): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLCSSMediaList, index: LONG, pbstrMedium: ptr BSTR + ): HRESULT {.stdcall.} + appendMedium*: + proc(self: ptr IHTMLCSSMediaList, bstrMedium: BSTR): HRESULT {.stdcall.} + deleteMedium*: + proc(self: ptr IHTMLCSSMediaList, bstrMedium: BSTR): HRESULT {.stdcall.} + IHTMLCSSNamespaceRule* {.pure.} = object lpVtbl*: ptr IHTMLCSSNamespaceRuleVtbl + IHTMLCSSNamespaceRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_namespaceURI*: proc(self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR): HRESULT {.stdcall.} + get_namespaceURI*: + proc(self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR): HRESULT {.stdcall.} get_prefix*: proc(self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLMSCSSKeyframeRule* {.pure.} = object lpVtbl*: ptr IHTMLMSCSSKeyframeRuleVtbl + IHTMLMSCSSKeyframeRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_keyText*: proc(self: ptr IHTMLMSCSSKeyframeRule, v: BSTR): HRESULT {.stdcall.} - get_keyText*: proc(self: ptr IHTMLMSCSSKeyframeRule, p: ptr BSTR): HRESULT {.stdcall.} - get_style*: proc(self: ptr IHTMLMSCSSKeyframeRule, p: ptr ptr IHTMLRuleStyle): HRESULT {.stdcall.} + get_keyText*: + proc(self: ptr IHTMLMSCSSKeyframeRule, p: ptr BSTR): HRESULT {.stdcall.} + get_style*: proc( + self: ptr IHTMLMSCSSKeyframeRule, p: ptr ptr IHTMLRuleStyle + ): HRESULT {.stdcall.} + IHTMLMSCSSKeyframesRule* {.pure.} = object lpVtbl*: ptr IHTMLMSCSSKeyframesRuleVtbl + IHTMLMSCSSKeyframesRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_name*: proc(self: ptr IHTMLMSCSSKeyframesRule, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLMSCSSKeyframesRule, p: ptr BSTR): HRESULT {.stdcall.} - get_cssRules*: proc(self: ptr IHTMLMSCSSKeyframesRule, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.stdcall.} - appendRule*: proc(self: ptr IHTMLMSCSSKeyframesRule, bstrRule: BSTR): HRESULT {.stdcall.} - deleteRule*: proc(self: ptr IHTMLMSCSSKeyframesRule, bstrKey: BSTR): HRESULT {.stdcall.} - findRule*: proc(self: ptr IHTMLMSCSSKeyframesRule, bstrKey: BSTR, ppMSKeyframeRule: ptr ptr IHTMLMSCSSKeyframeRule): HRESULT {.stdcall.} + get_cssRules*: proc( + self: ptr IHTMLMSCSSKeyframesRule, p: ptr ptr IHTMLStyleSheetRulesCollection + ): HRESULT {.stdcall.} + appendRule*: + proc(self: ptr IHTMLMSCSSKeyframesRule, bstrRule: BSTR): HRESULT {.stdcall.} + deleteRule*: + proc(self: ptr IHTMLMSCSSKeyframesRule, bstrKey: BSTR): HRESULT {.stdcall.} + findRule*: proc( + self: ptr IHTMLMSCSSKeyframesRule, + bstrKey: BSTR, + ppMSKeyframeRule: ptr ptr IHTMLMSCSSKeyframeRule, + ): HRESULT {.stdcall.} + DispHTMLCSSRule* {.pure.} = object lpVtbl*: ptr DispHTMLCSSRuleVtbl + DispHTMLCSSRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLCSSImportRule* {.pure.} = object lpVtbl*: ptr DispHTMLCSSImportRuleVtbl + DispHTMLCSSImportRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLCSSMediaRule* {.pure.} = object lpVtbl*: ptr DispHTMLCSSMediaRuleVtbl + DispHTMLCSSMediaRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLCSSMediaList* {.pure.} = object lpVtbl*: ptr DispHTMLCSSMediaListVtbl + DispHTMLCSSMediaListVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLCSSNamespaceRule* {.pure.} = object lpVtbl*: ptr DispHTMLCSSNamespaceRuleVtbl + DispHTMLCSSNamespaceRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLMSCSSKeyframeRule* {.pure.} = object lpVtbl*: ptr DispHTMLMSCSSKeyframeRuleVtbl + DispHTMLMSCSSKeyframeRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLMSCSSKeyframesRule* {.pure.} = object lpVtbl*: ptr DispHTMLMSCSSKeyframesRuleVtbl + DispHTMLMSCSSKeyframesRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLRenderStyle* {.pure.} = object lpVtbl*: ptr IHTMLRenderStyleVtbl + IHTMLRenderStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_textLineThroughStyle*: proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} - get_textLineThroughStyle*: proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} - put_textUnderlineStyle*: proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} - get_textUnderlineStyle*: proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_textLineThroughStyle*: + proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} + get_textLineThroughStyle*: + proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} + put_textUnderlineStyle*: + proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} + get_textUnderlineStyle*: + proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} put_textEffect*: proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} get_textEffect*: proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} put_textColor*: proc(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.stdcall.} - get_textColor*: proc(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_textBackgroundColor*: proc(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.stdcall.} - get_textBackgroundColor*: proc(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_textDecorationColor*: proc(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.stdcall.} - get_textDecorationColor*: proc(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.stdcall.} - put_renderingPriority*: proc(self: ptr IHTMLRenderStyle, v: LONG): HRESULT {.stdcall.} - get_renderingPriority*: proc(self: ptr IHTMLRenderStyle, p: ptr LONG): HRESULT {.stdcall.} - put_defaultTextSelection*: proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} - get_defaultTextSelection*: proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textColor*: + proc(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_textBackgroundColor*: + proc(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.stdcall.} + get_textBackgroundColor*: + proc(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_textDecorationColor*: + proc(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.stdcall.} + get_textDecorationColor*: + proc(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.stdcall.} + put_renderingPriority*: + proc(self: ptr IHTMLRenderStyle, v: LONG): HRESULT {.stdcall.} + get_renderingPriority*: + proc(self: ptr IHTMLRenderStyle, p: ptr LONG): HRESULT {.stdcall.} + put_defaultTextSelection*: + proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} + get_defaultTextSelection*: + proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} put_textDecoration*: proc(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.stdcall.} - get_textDecoration*: proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textDecoration*: + proc(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLRenderStyle* {.pure.} = object lpVtbl*: ptr DispHTMLRenderStyleVtbl + DispHTMLRenderStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLCurrentStyle* {.pure.} = object lpVtbl*: ptr IHTMLCurrentStyleVtbl + IHTMLCurrentStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_position*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_styleFloat*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_color*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_backgroundColor*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundColor*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_fontFamily*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_fontStyle*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_fontVariant*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_fontWeight*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_fontSize*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_backgroundImage*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_backgroundPositionX*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_backgroundPositionY*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_backgroundRepeat*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderLeftColor*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderTopColor*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderRightColor*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderBottomColor*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderTopStyle*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderRightStyle*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderBottomStyle*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderLeftStyle*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderTopWidth*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderRightWidth*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderBottomWidth*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_borderLeftWidth*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_fontVariant*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_fontWeight*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_fontSize*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundImage*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_backgroundPositionX*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundPositionY*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundRepeat*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderLeftColor*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderTopColor*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderRightColor*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderBottomColor*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderTopStyle*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderRightStyle*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderBottomStyle*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderLeftStyle*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderTopWidth*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderRightWidth*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderBottomWidth*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderLeftWidth*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_left*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_top*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_paddingLeft*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_paddingTop*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_paddingRight*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_paddingBottom*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingLeft*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingTop*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingRight*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_paddingBottom*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_textAlign*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_textDecoration*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textDecoration*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_display*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_visibility*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_zIndex*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_letterSpacing*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_lineHeight*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_textIndent*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_verticalAlign*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_backgroundAttachment*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_marginTop*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_marginRight*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_marginBottom*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_marginLeft*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_letterSpacing*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_lineHeight*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_textIndent*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_verticalAlign*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_backgroundAttachment*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_marginTop*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginRight*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginBottom*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginLeft*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_clear*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_listStyleType*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_listStylePosition*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_listStyleImage*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_listStyleType*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_listStylePosition*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_listStyleImage*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_clipTop*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_clipRight*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_clipBottom*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_clipLeft*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_clipRight*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_clipBottom*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_clipLeft*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_overflow*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_pageBreakBefore*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_pageBreakAfter*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_pageBreakBefore*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_pageBreakAfter*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_cursor*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_tableLayout*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderCollapse*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_tableLayout*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderCollapse*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_direction*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_behavior*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLCurrentStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - get_unicodeBidi*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLCurrentStyle, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + get_unicodeBidi*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_right*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_bottom*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} get_imeMode*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_rubyAlign*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_rubyPosition*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_rubyOverhang*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_textAutospace*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_rubyPosition*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_rubyOverhang*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textAutospace*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_lineBreak*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_wordBreak*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_textJustify*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_textJustifyTrim*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_textKashida*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_blockDirection*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_layoutGridChar*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_layoutGridLine*: proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} - get_layoutGridMode*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_layoutGridType*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderStyle*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderColor*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_borderWidth*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textJustify*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textJustifyTrim*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textKashida*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_blockDirection*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_layoutGridChar*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_layoutGridLine*: + proc(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.stdcall.} + get_layoutGridMode*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_layoutGridType*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderStyle*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderColor*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_borderWidth*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_padding*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_margin*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_accelerator*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_accelerator*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_overflowX*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} get_overflowY*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} - get_textTransform*: proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + get_textTransform*: + proc(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLCurrentStyle2* {.pure.} = object lpVtbl*: ptr IHTMLCurrentStyle2Vtbl + IHTMLCurrentStyle2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_layoutFlow*: proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_layoutFlow*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} get_wordWrap*: proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} - get_textUnderlinePosition*: proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} - get_hasLayout*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_scrollbarBaseColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbarFaceColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbar3dLightColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbarShadowColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbarHighlightColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbarDarkShadowColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbarArrowColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_scrollbarTrackColor*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_writingMode*: proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_textUnderlinePosition*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_hasLayout*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_scrollbarBaseColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbarFaceColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbar3dLightColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbarShadowColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbarHighlightColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbarDarkShadowColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbarArrowColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_scrollbarTrackColor*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_writingMode*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} get_zoom*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} get_filter*: proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} - get_textAlignLast*: proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} - get_textKashidaSpace*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} - get_isBlock*: proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_textAlignLast*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.stdcall.} + get_textKashidaSpace*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.stdcall.} + get_isBlock*: + proc(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLCurrentStyle3* {.pure.} = object lpVtbl*: ptr IHTMLCurrentStyle3Vtbl + IHTMLCurrentStyle3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_textOverflow*: proc(self: ptr IHTMLCurrentStyle3, p: ptr BSTR): HRESULT {.stdcall.} - get_minHeight*: proc(self: ptr IHTMLCurrentStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - get_wordSpacing*: proc(self: ptr IHTMLCurrentStyle3, p: ptr VARIANT): HRESULT {.stdcall.} - get_whiteSpace*: proc(self: ptr IHTMLCurrentStyle3, p: ptr BSTR): HRESULT {.stdcall.} + get_textOverflow*: + proc(self: ptr IHTMLCurrentStyle3, p: ptr BSTR): HRESULT {.stdcall.} + get_minHeight*: + proc(self: ptr IHTMLCurrentStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + get_wordSpacing*: + proc(self: ptr IHTMLCurrentStyle3, p: ptr VARIANT): HRESULT {.stdcall.} + get_whiteSpace*: + proc(self: ptr IHTMLCurrentStyle3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLCurrentStyle4* {.pure.} = object lpVtbl*: ptr IHTMLCurrentStyle4Vtbl + IHTMLCurrentStyle4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_msInterpolationMode*: proc(self: ptr IHTMLCurrentStyle4, p: ptr BSTR): HRESULT {.stdcall.} - get_maxHeight*: proc(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.stdcall.} - get_minWidth*: proc(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.stdcall.} - get_maxWidth*: proc(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.stdcall.} + get_msInterpolationMode*: + proc(self: ptr IHTMLCurrentStyle4, p: ptr BSTR): HRESULT {.stdcall.} + get_maxHeight*: + proc(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.stdcall.} + get_minWidth*: + proc(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.stdcall.} + get_maxWidth*: + proc(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLCurrentStyle5* {.pure.} = object lpVtbl*: ptr IHTMLCurrentStyle5Vtbl + IHTMLCurrentStyle5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_captionSide*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_captionSide*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} get_outline*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} - get_outlineWidth*: proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} - get_outlineStyle*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} - get_outlineColor*: proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} + get_outlineWidth*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} + get_outlineStyle*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_outlineColor*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} get_boxSizing*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} - get_borderSpacing*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} - get_orphans*: proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderSpacing*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_orphans*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} get_widows*: proc(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.stdcall.} - get_pageBreakInside*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} - get_emptyCells*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} - get_msBlockProgression*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_pageBreakInside*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_emptyCells*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + get_msBlockProgression*: + proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} get_quotes*: proc(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLCurrentStyle* {.pure.} = object lpVtbl*: ptr DispHTMLCurrentStyleVtbl + DispHTMLCurrentStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLRect* {.pure.} = object lpVtbl*: ptr IHTMLRectVtbl + IHTMLRectVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_left*: proc(self: ptr IHTMLRect, v: LONG): HRESULT {.stdcall.} get_left*: proc(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.stdcall.} @@ -6052,102 +7607,229 @@ get_right*: proc(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.stdcall.} put_bottom*: proc(self: ptr IHTMLRect, v: LONG): HRESULT {.stdcall.} get_bottom*: proc(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.stdcall.} + IHTMLRect2* {.pure.} = object lpVtbl*: ptr IHTMLRect2Vtbl + IHTMLRect2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_width*: proc(self: ptr IHTMLRect2, p: ptr float32): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLRect2, p: ptr float32): HRESULT {.stdcall.} + IHTMLRectCollection* {.pure.} = object lpVtbl*: ptr IHTMLRectCollectionVtbl + IHTMLRectCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IHTMLRectCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLRectCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLRectCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLRectCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLRectCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT + ): HRESULT {.stdcall.} + IHTMLDOMNode* {.pure.} = object lpVtbl*: ptr IHTMLDOMNodeVtbl + IHTMLDOMNodeVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_nodeType*: proc(self: ptr IHTMLDOMNode, p: ptr LONG): HRESULT {.stdcall.} - get_parentNode*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - hasChildNodes*: proc(self: ptr IHTMLDOMNode, fChildren: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_childNodes*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_attributes*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IDispatch): HRESULT {.stdcall.} - insertBefore*: proc(self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, refChild: VARIANT, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - removeChild*: proc(self: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - replaceChild*: proc(self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - cloneNode*: proc(self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, clonedNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - removeNode*: proc(self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, removed: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - swapNode*: proc(self: ptr IHTMLDOMNode, otherNode: ptr IHTMLDOMNode, swappedNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - replaceNode*: proc(self: ptr IHTMLDOMNode, replacement: ptr IHTMLDOMNode, replaced: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - appendChild*: proc(self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_parentNode*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + hasChildNodes*: + proc(self: ptr IHTMLDOMNode, fChildren: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_childNodes*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_attributes*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IDispatch): HRESULT {.stdcall.} + insertBefore*: proc( + self: ptr IHTMLDOMNode, + newChild: ptr IHTMLDOMNode, + refChild: VARIANT, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + removeChild*: proc( + self: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + replaceChild*: proc( + self: ptr IHTMLDOMNode, + newChild: ptr IHTMLDOMNode, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + cloneNode*: proc( + self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, clonedNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + removeNode*: proc( + self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, removed: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + swapNode*: proc( + self: ptr IHTMLDOMNode, + otherNode: ptr IHTMLDOMNode, + swappedNode: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + replaceNode*: proc( + self: ptr IHTMLDOMNode, + replacement: ptr IHTMLDOMNode, + replaced: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + appendChild*: proc( + self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} get_nodeName*: proc(self: ptr IHTMLDOMNode, p: ptr BSTR): HRESULT {.stdcall.} put_nodeValue*: proc(self: ptr IHTMLDOMNode, v: VARIANT): HRESULT {.stdcall.} get_nodeValue*: proc(self: ptr IHTMLDOMNode, p: ptr VARIANT): HRESULT {.stdcall.} - get_firstChild*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_lastChild*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_previousSibling*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_nextSibling*: proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_firstChild*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_lastChild*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_previousSibling*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_nextSibling*: + proc(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + IHTMLDOMNode2* {.pure.} = object lpVtbl*: ptr IHTMLDOMNode2Vtbl + IHTMLDOMNode2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_ownerDocument*: proc(self: ptr IHTMLDOMNode2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_ownerDocument*: + proc(self: ptr IHTMLDOMNode2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + IHTMLDOMNode3* {.pure.} = object lpVtbl*: ptr IHTMLDOMNode3Vtbl + IHTMLDOMNode3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_prefix*: proc(self: ptr IHTMLDOMNode3, v: VARIANT): HRESULT {.stdcall.} get_prefix*: proc(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.stdcall.} get_localName*: proc(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.stdcall.} - get_namespaceURI*: proc(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.stdcall.} + get_namespaceURI*: + proc(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.stdcall.} put_textContent*: proc(self: ptr IHTMLDOMNode3, v: VARIANT): HRESULT {.stdcall.} get_textContent*: proc(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.stdcall.} - isEqualNode*: proc(self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isEqual: ptr VARIANT_BOOL): HRESULT {.stdcall.} - lookupNamespaceURI*: proc(self: ptr IHTMLDOMNode3, pvarPrefix: ptr VARIANT, pvarNamespaceURI: ptr VARIANT): HRESULT {.stdcall.} - lookupPrefix*: proc(self: ptr IHTMLDOMNode3, pvarNamespaceURI: ptr VARIANT, pvarPrefix: ptr VARIANT): HRESULT {.stdcall.} - isDefaultNamespace*: proc(self: ptr IHTMLDOMNode3, pvarNamespace: ptr VARIANT, pfDefaultNamespace: ptr VARIANT_BOOL): HRESULT {.stdcall.} - appendChild*: proc(self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - insertBefore*: proc(self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, refChild: VARIANT, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - removeChild*: proc(self: ptr IHTMLDOMNode3, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - replaceChild*: proc(self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - isSameNode*: proc(self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isSame: ptr VARIANT_BOOL): HRESULT {.stdcall.} - compareDocumentPosition*: proc(self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode, flags: ptr USHORT): HRESULT {.stdcall.} - isSupported*: proc(self: ptr IHTMLDOMNode3, feature: BSTR, version: VARIANT, pfisSupported: ptr VARIANT_BOOL): HRESULT {.stdcall.} + isEqualNode*: proc( + self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isEqual: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + lookupNamespaceURI*: proc( + self: ptr IHTMLDOMNode3, pvarPrefix: ptr VARIANT, pvarNamespaceURI: ptr VARIANT + ): HRESULT {.stdcall.} + lookupPrefix*: proc( + self: ptr IHTMLDOMNode3, pvarNamespaceURI: ptr VARIANT, pvarPrefix: ptr VARIANT + ): HRESULT {.stdcall.} + isDefaultNamespace*: proc( + self: ptr IHTMLDOMNode3, + pvarNamespace: ptr VARIANT, + pfDefaultNamespace: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + appendChild*: proc( + self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + insertBefore*: proc( + self: ptr IHTMLDOMNode3, + newChild: ptr IHTMLDOMNode, + refChild: VARIANT, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + removeChild*: proc( + self: ptr IHTMLDOMNode3, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + replaceChild*: proc( + self: ptr IHTMLDOMNode3, + newChild: ptr IHTMLDOMNode, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + isSameNode*: proc( + self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isSame: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + compareDocumentPosition*: proc( + self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode, flags: ptr USHORT + ): HRESULT {.stdcall.} + isSupported*: proc( + self: ptr IHTMLDOMNode3, + feature: BSTR, + version: VARIANT, + pfisSupported: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IHTMLDOMAttribute* {.pure.} = object lpVtbl*: ptr IHTMLDOMAttributeVtbl + IHTMLDOMAttributeVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_nodeName*: proc(self: ptr IHTMLDOMAttribute, p: ptr BSTR): HRESULT {.stdcall.} put_nodeValue*: proc(self: ptr IHTMLDOMAttribute, v: VARIANT): HRESULT {.stdcall.} - get_nodeValue*: proc(self: ptr IHTMLDOMAttribute, p: ptr VARIANT): HRESULT {.stdcall.} - get_specified*: proc(self: ptr IHTMLDOMAttribute, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_nodeValue*: + proc(self: ptr IHTMLDOMAttribute, p: ptr VARIANT): HRESULT {.stdcall.} + get_specified*: + proc(self: ptr IHTMLDOMAttribute, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLDOMAttribute2* {.pure.} = object lpVtbl*: ptr IHTMLDOMAttribute2Vtbl + IHTMLDOMAttribute2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_name*: proc(self: ptr IHTMLDOMAttribute2, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLDOMAttribute2, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLDOMAttribute2, p: ptr BSTR): HRESULT {.stdcall.} - get_expando*: proc(self: ptr IHTMLDOMAttribute2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_expando*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_nodeType*: proc(self: ptr IHTMLDOMAttribute2, p: ptr LONG): HRESULT {.stdcall.} - get_parentNode*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_childNodes*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_firstChild*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_lastChild*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_previousSibling*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_nextSibling*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_attributes*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_ownerDocument*: proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.stdcall.} - insertBefore*: proc(self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, refChild: VARIANT, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - replaceChild*: proc(self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - removeChild*: proc(self: ptr IHTMLDOMAttribute2, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - appendChild*: proc(self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - hasChildNodes*: proc(self: ptr IHTMLDOMAttribute2, fChildren: ptr VARIANT_BOOL): HRESULT {.stdcall.} - cloneNode*: proc(self: ptr IHTMLDOMAttribute2, fDeep: VARIANT_BOOL, clonedNode: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} + get_parentNode*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_childNodes*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_firstChild*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_lastChild*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_previousSibling*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_nextSibling*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_attributes*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_ownerDocument*: + proc(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + insertBefore*: proc( + self: ptr IHTMLDOMAttribute2, + newChild: ptr IHTMLDOMNode, + refChild: VARIANT, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + replaceChild*: proc( + self: ptr IHTMLDOMAttribute2, + newChild: ptr IHTMLDOMNode, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + removeChild*: proc( + self: ptr IHTMLDOMAttribute2, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + appendChild*: proc( + self: ptr IHTMLDOMAttribute2, + newChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, + ): HRESULT {.stdcall.} + hasChildNodes*: proc( + self: ptr IHTMLDOMAttribute2, fChildren: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + cloneNode*: proc( + self: ptr IHTMLDOMAttribute2, + fDeep: VARIANT_BOOL, + clonedNode: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + IHTMLElement2* {.pure.} = object lpVtbl*: ptr IHTMLElement2Vtbl + IHTMLElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_scopeName*: proc(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.stdcall.} - setCapture*: proc(self: ptr IHTMLElement2, containerCapture: VARIANT_BOOL): HRESULT {.stdcall.} + setCapture*: + proc(self: ptr IHTMLElement2, containerCapture: VARIANT_BOOL): HRESULT {.stdcall.} releaseCapture*: proc(self: ptr IHTMLElement2): HRESULT {.stdcall.} put_onlosecapture*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onlosecapture*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} - componentFromPoint*: proc(self: ptr IHTMLElement2, x: LONG, y: LONG, component: ptr BSTR): HRESULT {.stdcall.} + get_onlosecapture*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + componentFromPoint*: proc( + self: ptr IHTMLElement2, x: LONG, y: LONG, component: ptr BSTR + ): HRESULT {.stdcall.} doScroll*: proc(self: ptr IHTMLElement2, component: VARIANT): HRESULT {.stdcall.} put_onscroll*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} get_onscroll*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} @@ -6168,21 +7850,35 @@ put_oncut*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} get_oncut*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_onbeforecopy*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforecopy*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbeforecopy*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_oncopy*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} get_oncopy*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_onbeforepaste*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforepaste*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbeforepaste*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_onpaste*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} get_onpaste*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} - get_currentStyle*: proc(self: ptr IHTMLElement2, p: ptr ptr IHTMLCurrentStyle): HRESULT {.stdcall.} - put_onpropertychange*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onpropertychange*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} - getClientRects*: proc(self: ptr IHTMLElement2, pRectCol: ptr ptr IHTMLRectCollection): HRESULT {.stdcall.} - getBoundingClientRect*: proc(self: ptr IHTMLElement2, pRect: ptr ptr IHTMLRect): HRESULT {.stdcall.} - setExpression*: proc(self: ptr IHTMLElement2, propname: BSTR, expression: BSTR, language: BSTR): HRESULT {.stdcall.} - getExpression*: proc(self: ptr IHTMLElement2, propname: BSTR, expression: ptr VARIANT): HRESULT {.stdcall.} - removeExpression*: proc(self: ptr IHTMLElement2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_currentStyle*: + proc(self: ptr IHTMLElement2, p: ptr ptr IHTMLCurrentStyle): HRESULT {.stdcall.} + put_onpropertychange*: + proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} + get_onpropertychange*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + getClientRects*: proc( + self: ptr IHTMLElement2, pRectCol: ptr ptr IHTMLRectCollection + ): HRESULT {.stdcall.} + getBoundingClientRect*: + proc(self: ptr IHTMLElement2, pRect: ptr ptr IHTMLRect): HRESULT {.stdcall.} + setExpression*: proc( + self: ptr IHTMLElement2, propname: BSTR, expression: BSTR, language: BSTR + ): HRESULT {.stdcall.} + getExpression*: proc( + self: ptr IHTMLElement2, propname: BSTR, expression: ptr VARIANT + ): HRESULT {.stdcall.} + removeExpression*: proc( + self: ptr IHTMLElement2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_tabIndex*: proc(self: ptr IHTMLElement2, v: int16): HRESULT {.stdcall.} get_tabIndex*: proc(self: ptr IHTMLElement2, p: ptr int16): HRESULT {.stdcall.} focus*: proc(self: ptr IHTMLElement2): HRESULT {.stdcall.} @@ -6196,25 +7892,39 @@ get_onresize*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} blur*: proc(self: ptr IHTMLElement2): HRESULT {.stdcall.} addFilter*: proc(self: ptr IHTMLElement2, pUnk: ptr IUnknown): HRESULT {.stdcall.} - removeFilter*: proc(self: ptr IHTMLElement2, pUnk: ptr IUnknown): HRESULT {.stdcall.} + removeFilter*: + proc(self: ptr IHTMLElement2, pUnk: ptr IUnknown): HRESULT {.stdcall.} get_clientHeight*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} get_clientWidth*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} get_clientTop*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} get_clientLeft*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} - attachEvent*: proc(self: ptr IHTMLElement2, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - detachEvent*: proc(self: ptr IHTMLElement2, event: BSTR, pDisp: ptr IDispatch): HRESULT {.stdcall.} + attachEvent*: proc( + self: ptr IHTMLElement2, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + detachEvent*: proc( + self: ptr IHTMLElement2, event: BSTR, pDisp: ptr IDispatch + ): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowsdelete*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onrowsdelete*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onrowsdelete*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowsinserted*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onrowsinserted*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_onrowsinserted*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_oncellchange*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_oncellchange*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_oncellchange*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_dir*: proc(self: ptr IHTMLElement2, v: BSTR): HRESULT {.stdcall.} get_dir*: proc(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.stdcall.} - createControlRange*: proc(self: ptr IHTMLElement2, range: ptr ptr IDispatch): HRESULT {.stdcall.} + createControlRange*: + proc(self: ptr IHTMLElement2, range: ptr ptr IDispatch): HRESULT {.stdcall.} get_scrollHeight*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} get_scrollWidth*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} put_scrollTop*: proc(self: ptr IHTMLElement2, v: LONG): HRESULT {.stdcall.} @@ -6222,179 +7932,366 @@ put_scrollLeft*: proc(self: ptr IHTMLElement2, v: LONG): HRESULT {.stdcall.} get_scrollLeft*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} clearAttributes*: proc(self: ptr IHTMLElement2): HRESULT {.stdcall.} - mergeAttributes*: proc(self: ptr IHTMLElement2, mergeThis: ptr IHTMLElement): HRESULT {.stdcall.} + mergeAttributes*: + proc(self: ptr IHTMLElement2, mergeThis: ptr IHTMLElement): HRESULT {.stdcall.} put_oncontextmenu*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_oncontextmenu*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} - insertAdjacentElement*: proc(self: ptr IHTMLElement2, where: BSTR, insertedElement: ptr IHTMLElement, inserted: ptr ptr IHTMLElement): HRESULT {.stdcall.} - applyElement*: proc(self: ptr IHTMLElement2, apply: ptr IHTMLElement, where: BSTR, applied: ptr ptr IHTMLElement): HRESULT {.stdcall.} - getAdjacentText*: proc(self: ptr IHTMLElement2, where: BSTR, text: ptr BSTR): HRESULT {.stdcall.} - replaceAdjacentText*: proc(self: ptr IHTMLElement2, where: BSTR, newText: BSTR, oldText: ptr BSTR): HRESULT {.stdcall.} - get_canHaveChildren*: proc(self: ptr IHTMLElement2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - addBehavior*: proc(self: ptr IHTMLElement2, bstrUrl: BSTR, pvarFactory: ptr VARIANT, pCookie: ptr LONG): HRESULT {.stdcall.} - removeBehavior*: proc(self: ptr IHTMLElement2, cookie: LONG, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_runtimeStyle*: proc(self: ptr IHTMLElement2, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} - get_behaviorUrns*: proc(self: ptr IHTMLElement2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_oncontextmenu*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + insertAdjacentElement*: proc( + self: ptr IHTMLElement2, + where: BSTR, + insertedElement: ptr IHTMLElement, + inserted: ptr ptr IHTMLElement, + ): HRESULT {.stdcall.} + applyElement*: proc( + self: ptr IHTMLElement2, + apply: ptr IHTMLElement, + where: BSTR, + applied: ptr ptr IHTMLElement, + ): HRESULT {.stdcall.} + getAdjacentText*: + proc(self: ptr IHTMLElement2, where: BSTR, text: ptr BSTR): HRESULT {.stdcall.} + replaceAdjacentText*: proc( + self: ptr IHTMLElement2, where: BSTR, newText: BSTR, oldText: ptr BSTR + ): HRESULT {.stdcall.} + get_canHaveChildren*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + addBehavior*: proc( + self: ptr IHTMLElement2, + bstrUrl: BSTR, + pvarFactory: ptr VARIANT, + pCookie: ptr LONG, + ): HRESULT {.stdcall.} + removeBehavior*: proc( + self: ptr IHTMLElement2, cookie: LONG, pfResult: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + get_runtimeStyle*: + proc(self: ptr IHTMLElement2, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} + get_behaviorUrns*: + proc(self: ptr IHTMLElement2, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_tagUrn*: proc(self: ptr IHTMLElement2, v: BSTR): HRESULT {.stdcall.} get_tagUrn*: proc(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.stdcall.} - put_onbeforeeditfocus*: proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeeditfocus*: proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} - get_readyStateValue*: proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} - getElementsByTagName*: proc(self: ptr IHTMLElement2, v: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + put_onbeforeeditfocus*: + proc(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeeditfocus*: + proc(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_readyStateValue*: + proc(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.stdcall.} + getElementsByTagName*: proc( + self: ptr IHTMLElement2, v: BSTR, pelColl: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + IHTMLDOMAttribute3* {.pure.} = object lpVtbl*: ptr IHTMLDOMAttribute3Vtbl + IHTMLDOMAttribute3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_nodeValue*: proc(self: ptr IHTMLDOMAttribute3, v: VARIANT): HRESULT {.stdcall.} - get_nodeValue*: proc(self: ptr IHTMLDOMAttribute3, p: ptr VARIANT): HRESULT {.stdcall.} + get_nodeValue*: + proc(self: ptr IHTMLDOMAttribute3, p: ptr VARIANT): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLDOMAttribute3, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLDOMAttribute3, p: ptr BSTR): HRESULT {.stdcall.} - get_specified*: proc(self: ptr IHTMLDOMAttribute3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_ownerElement*: proc(self: ptr IHTMLDOMAttribute3, p: ptr ptr IHTMLElement2): HRESULT {.stdcall.} + get_specified*: + proc(self: ptr IHTMLDOMAttribute3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ownerElement*: + proc(self: ptr IHTMLDOMAttribute3, p: ptr ptr IHTMLElement2): HRESULT {.stdcall.} + IHTMLDOMAttribute4* {.pure.} = object lpVtbl*: ptr IHTMLDOMAttribute4Vtbl + IHTMLDOMAttribute4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_nodeValue*: proc(self: ptr IHTMLDOMAttribute4, v: VARIANT): HRESULT {.stdcall.} - get_nodeValue*: proc(self: ptr IHTMLDOMAttribute4, p: ptr VARIANT): HRESULT {.stdcall.} + get_nodeValue*: + proc(self: ptr IHTMLDOMAttribute4, p: ptr VARIANT): HRESULT {.stdcall.} get_nodeName*: proc(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLDOMAttribute4, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.stdcall.} - get_firstChild*: proc(self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_lastChild*: proc(self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_childNodes*: proc(self: ptr IHTMLDOMAttribute4, p: ptr ptr IDispatch): HRESULT {.stdcall.} - hasAttributes*: proc(self: ptr IHTMLDOMAttribute4, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.stdcall.} - hasChildNodes*: proc(self: ptr IHTMLDOMAttribute4, fChildren: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_firstChild*: + proc(self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_lastChild*: + proc(self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_childNodes*: + proc(self: ptr IHTMLDOMAttribute4, p: ptr ptr IDispatch): HRESULT {.stdcall.} + hasAttributes*: proc( + self: ptr IHTMLDOMAttribute4, pfHasAttributes: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + hasChildNodes*: proc( + self: ptr IHTMLDOMAttribute4, fChildren: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} normalize*: proc(self: ptr IHTMLDOMAttribute4): HRESULT {.stdcall.} - get_specified*: proc(self: ptr IHTMLDOMAttribute4, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_specified*: + proc(self: ptr IHTMLDOMAttribute4, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLDOMTextNode* {.pure.} = object lpVtbl*: ptr IHTMLDOMTextNodeVtbl + IHTMLDOMTextNodeVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_data*: proc(self: ptr IHTMLDOMTextNode, v: BSTR): HRESULT {.stdcall.} get_data*: proc(self: ptr IHTMLDOMTextNode, p: ptr BSTR): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLDOMTextNode, String: ptr BSTR): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLDOMTextNode, p: ptr LONG): HRESULT {.stdcall.} - splitText*: proc(self: ptr IHTMLDOMTextNode, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + splitText*: proc( + self: ptr IHTMLDOMTextNode, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + IHTMLDOMTextNode2* {.pure.} = object lpVtbl*: ptr IHTMLDOMTextNode2Vtbl + IHTMLDOMTextNode2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - substringData*: proc(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.stdcall.} - appendData*: proc(self: ptr IHTMLDOMTextNode2, bstrstring: BSTR): HRESULT {.stdcall.} - insertData*: proc(self: ptr IHTMLDOMTextNode2, offset: LONG, bstrstring: BSTR): HRESULT {.stdcall.} - deleteData*: proc(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG): HRESULT {.stdcall.} - replaceData*: proc(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.stdcall.} + substringData*: proc( + self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR + ): HRESULT {.stdcall.} + appendData*: + proc(self: ptr IHTMLDOMTextNode2, bstrstring: BSTR): HRESULT {.stdcall.} + insertData*: proc( + self: ptr IHTMLDOMTextNode2, offset: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + deleteData*: + proc(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG): HRESULT {.stdcall.} + replaceData*: proc( + self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + IHTMLDOMTextNode3* {.pure.} = object lpVtbl*: ptr IHTMLDOMTextNode3Vtbl + IHTMLDOMTextNode3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - substringData*: proc(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.stdcall.} - insertData*: proc(self: ptr IHTMLDOMTextNode3, offset: LONG, bstrstring: BSTR): HRESULT {.stdcall.} - deleteData*: proc(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG): HRESULT {.stdcall.} - replaceData*: proc(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.stdcall.} - splitText*: proc(self: ptr IHTMLDOMTextNode3, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + substringData*: proc( + self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR + ): HRESULT {.stdcall.} + insertData*: proc( + self: ptr IHTMLDOMTextNode3, offset: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + deleteData*: + proc(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG): HRESULT {.stdcall.} + replaceData*: proc( + self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + splitText*: proc( + self: ptr IHTMLDOMTextNode3, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} get_wholeText*: proc(self: ptr IHTMLDOMTextNode3, p: ptr BSTR): HRESULT {.stdcall.} - replaceWholeText*: proc(self: ptr IHTMLDOMTextNode3, bstrText: BSTR, ppRetNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - hasAttributes*: proc(self: ptr IHTMLDOMTextNode3, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.stdcall.} + replaceWholeText*: proc( + self: ptr IHTMLDOMTextNode3, bstrText: BSTR, ppRetNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + hasAttributes*: proc( + self: ptr IHTMLDOMTextNode3, pfHasAttributes: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} normalize*: proc(self: ptr IHTMLDOMTextNode3): HRESULT {.stdcall.} + IHTMLDOMImplementation* {.pure.} = object lpVtbl*: ptr IHTMLDOMImplementationVtbl + IHTMLDOMImplementationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - hasFeature*: proc(self: ptr IHTMLDOMImplementation, bstrfeature: BSTR, version: VARIANT, pfHasFeature: ptr VARIANT_BOOL): HRESULT {.stdcall.} + hasFeature*: proc( + self: ptr IHTMLDOMImplementation, + bstrfeature: BSTR, + version: VARIANT, + pfHasFeature: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IDOMDocumentType* {.pure.} = object lpVtbl*: ptr IDOMDocumentTypeVtbl + IDOMDocumentTypeVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_name*: proc(self: ptr IDOMDocumentType, p: ptr BSTR): HRESULT {.stdcall.} - get_entities*: proc(self: ptr IDOMDocumentType, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_notations*: proc(self: ptr IDOMDocumentType, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_entities*: + proc(self: ptr IDOMDocumentType, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_notations*: + proc(self: ptr IDOMDocumentType, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_publicId*: proc(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.stdcall.} get_systemId*: proc(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.stdcall.} - get_internalSubset*: proc(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.stdcall.} + get_internalSubset*: + proc(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLDOMRange* {.pure.} = object lpVtbl*: ptr IHTMLDOMRangeVtbl + IHTMLDOMRangeVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_startContainer*: proc(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_startContainer*: + proc(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} get_startOffset*: proc(self: ptr IHTMLDOMRange, p: ptr LONG): HRESULT {.stdcall.} - get_endContainer*: proc(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_endContainer*: + proc(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} get_endOffset*: proc(self: ptr IHTMLDOMRange, p: ptr LONG): HRESULT {.stdcall.} - get_collapsed*: proc(self: ptr IHTMLDOMRange, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_commonAncestorContainer*: proc(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - setStart*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG): HRESULT {.stdcall.} - setEnd*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG): HRESULT {.stdcall.} - setStartBefore*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} - setStartAfter*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} - setEndBefore*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} - setEndAfter*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} + get_collapsed*: + proc(self: ptr IHTMLDOMRange, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_commonAncestorContainer*: + proc(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + setStart*: proc( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG + ): HRESULT {.stdcall.} + setEnd*: proc( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG + ): HRESULT {.stdcall.} + setStartBefore*: + proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} + setStartAfter*: + proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} + setEndBefore*: + proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} + setEndAfter*: + proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} collapse*: proc(self: ptr IHTMLDOMRange, toStart: VARIANT_BOOL): HRESULT {.stdcall.} - selectNode*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} - selectNodeContents*: proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} - compareBoundaryPoints*: proc(self: ptr IHTMLDOMRange, how: int16, sourceRange: ptr IDispatch, compareResult: ptr LONG): HRESULT {.stdcall.} + selectNode*: + proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} + selectNodeContents*: + proc(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.stdcall.} + compareBoundaryPoints*: proc( + self: ptr IHTMLDOMRange, + how: int16, + sourceRange: ptr IDispatch, + compareResult: ptr LONG, + ): HRESULT {.stdcall.} deleteContents*: proc(self: ptr IHTMLDOMRange): HRESULT {.stdcall.} - extractContents*: proc(self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch): HRESULT {.stdcall.} - cloneContents*: proc(self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch): HRESULT {.stdcall.} - insertNode*: proc(self: ptr IHTMLDOMRange, newNode: ptr IDispatch): HRESULT {.stdcall.} - surroundContents*: proc(self: ptr IHTMLDOMRange, newParent: ptr IDispatch): HRESULT {.stdcall.} - cloneRange*: proc(self: ptr IHTMLDOMRange, ppClonedRange: ptr ptr IHTMLDOMRange): HRESULT {.stdcall.} - toString*: proc(self: ptr IHTMLDOMRange, pRangeString: ptr BSTR): HRESULT {.stdcall.} + extractContents*: proc( + self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch + ): HRESULT {.stdcall.} + cloneContents*: proc( + self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch + ): HRESULT {.stdcall.} + insertNode*: + proc(self: ptr IHTMLDOMRange, newNode: ptr IDispatch): HRESULT {.stdcall.} + surroundContents*: + proc(self: ptr IHTMLDOMRange, newParent: ptr IDispatch): HRESULT {.stdcall.} + cloneRange*: proc( + self: ptr IHTMLDOMRange, ppClonedRange: ptr ptr IHTMLDOMRange + ): HRESULT {.stdcall.} + toString*: + proc(self: ptr IHTMLDOMRange, pRangeString: ptr BSTR): HRESULT {.stdcall.} detach*: proc(self: ptr IHTMLDOMRange): HRESULT {.stdcall.} - getClientRects*: proc(self: ptr IHTMLDOMRange, ppRectCol: ptr ptr IHTMLRectCollection): HRESULT {.stdcall.} - getBoundingClientRect*: proc(self: ptr IHTMLDOMRange, ppRect: ptr ptr IHTMLRect): HRESULT {.stdcall.} + getClientRects*: proc( + self: ptr IHTMLDOMRange, ppRectCol: ptr ptr IHTMLRectCollection + ): HRESULT {.stdcall.} + getBoundingClientRect*: + proc(self: ptr IHTMLDOMRange, ppRect: ptr ptr IHTMLRect): HRESULT {.stdcall.} + IHTMLSelection* {.pure.} = object lpVtbl*: ptr IHTMLSelectionVtbl + IHTMLSelectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_anchorNode*: proc(self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_anchorNode*: + proc(self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} get_anchorOffset*: proc(self: ptr IHTMLSelection, p: ptr LONG): HRESULT {.stdcall.} - get_focusNode*: proc(self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_focusNode*: + proc(self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} get_focusOffset*: proc(self: ptr IHTMLSelection, p: ptr LONG): HRESULT {.stdcall.} - get_isCollapsed*: proc(self: ptr IHTMLSelection, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - collapse*: proc(self: ptr IHTMLSelection, parentNode: ptr IDispatch, offfset: LONG): HRESULT {.stdcall.} + get_isCollapsed*: + proc(self: ptr IHTMLSelection, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + collapse*: proc( + self: ptr IHTMLSelection, parentNode: ptr IDispatch, offfset: LONG + ): HRESULT {.stdcall.} collapseToStart*: proc(self: ptr IHTMLSelection): HRESULT {.stdcall.} collapseToEnd*: proc(self: ptr IHTMLSelection): HRESULT {.stdcall.} - selectAllChildren*: proc(self: ptr IHTMLSelection, parentNode: ptr IDispatch): HRESULT {.stdcall.} + selectAllChildren*: + proc(self: ptr IHTMLSelection, parentNode: ptr IDispatch): HRESULT {.stdcall.} deleteFromDocument*: proc(self: ptr IHTMLSelection): HRESULT {.stdcall.} get_rangeCount*: proc(self: ptr IHTMLSelection, p: ptr LONG): HRESULT {.stdcall.} - getRangeAt*: proc(self: ptr IHTMLSelection, index: LONG, ppRange: ptr ptr IHTMLDOMRange): HRESULT {.stdcall.} + getRangeAt*: proc( + self: ptr IHTMLSelection, index: LONG, ppRange: ptr ptr IHTMLDOMRange + ): HRESULT {.stdcall.} addRange*: proc(self: ptr IHTMLSelection, range: ptr IDispatch): HRESULT {.stdcall.} - removeRange*: proc(self: ptr IHTMLSelection, range: ptr IDispatch): HRESULT {.stdcall.} + removeRange*: + proc(self: ptr IHTMLSelection, range: ptr IDispatch): HRESULT {.stdcall.} removeAllRanges*: proc(self: ptr IHTMLSelection): HRESULT {.stdcall.} - toString*: proc(self: ptr IHTMLSelection, pSelectionString: ptr BSTR): HRESULT {.stdcall.} + toString*: + proc(self: ptr IHTMLSelection, pSelectionString: ptr BSTR): HRESULT {.stdcall.} + IDOMProcessingInstruction* {.pure.} = object lpVtbl*: ptr IDOMProcessingInstructionVtbl + IDOMProcessingInstructionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_target*: proc(self: ptr IDOMProcessingInstruction, p: ptr BSTR): HRESULT {.stdcall.} + get_target*: + proc(self: ptr IDOMProcessingInstruction, p: ptr BSTR): HRESULT {.stdcall.} put_data*: proc(self: ptr IDOMProcessingInstruction, v: BSTR): HRESULT {.stdcall.} - get_data*: proc(self: ptr IDOMProcessingInstruction, p: ptr BSTR): HRESULT {.stdcall.} + get_data*: + proc(self: ptr IDOMProcessingInstruction, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLDocument7* {.pure.} = object lpVtbl*: ptr IHTMLDocument7Vtbl + IHTMLDocument7Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_defaultView*: proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - createCDATASection*: proc(self: ptr IHTMLDocument7, text: BSTR, newCDATASectionNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - getSelection*: proc(self: ptr IHTMLDocument7, ppIHTMLSelection: ptr ptr IHTMLSelection): HRESULT {.stdcall.} - getElementsByTagNameNS*: proc(self: ptr IHTMLDocument7, pvarNS: ptr VARIANT, bstrLocalName: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - createElementNS*: proc(self: ptr IHTMLDocument7, pvarNS: ptr VARIANT, bstrTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.stdcall.} - createAttributeNS*: proc(self: ptr IHTMLDocument7, pvarNS: ptr VARIANT, bstrAttrName: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - put_onmsthumbnailclick*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onmsthumbnailclick*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_defaultView*: + proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + createCDATASection*: proc( + self: ptr IHTMLDocument7, text: BSTR, newCDATASectionNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + getSelection*: proc( + self: ptr IHTMLDocument7, ppIHTMLSelection: ptr ptr IHTMLSelection + ): HRESULT {.stdcall.} + getElementsByTagNameNS*: proc( + self: ptr IHTMLDocument7, + pvarNS: ptr VARIANT, + bstrLocalName: BSTR, + pelColl: ptr ptr IHTMLElementCollection, + ): HRESULT {.stdcall.} + createElementNS*: proc( + self: ptr IHTMLDocument7, + pvarNS: ptr VARIANT, + bstrTag: BSTR, + newElem: ptr ptr IHTMLElement, + ): HRESULT {.stdcall.} + createAttributeNS*: proc( + self: ptr IHTMLDocument7, + pvarNS: ptr VARIANT, + bstrAttrName: BSTR, + ppAttribute: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + put_onmsthumbnailclick*: + proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} + get_onmsthumbnailclick*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} get_characterSet*: proc(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.stdcall.} - createElement*: proc(self: ptr IHTMLDocument7, bstrTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.stdcall.} - createAttribute*: proc(self: ptr IHTMLDocument7, bstrAttrName: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - getElementsByClassName*: proc(self: ptr IHTMLDocument7, v: BSTR, pel: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - createProcessingInstruction*: proc(self: ptr IHTMLDocument7, bstrTarget: BSTR, bstrData: BSTR, newProcessingInstruction: ptr ptr IDOMProcessingInstruction): HRESULT {.stdcall.} - adoptNode*: proc(self: ptr IHTMLDocument7, pNodeSource: ptr IHTMLDOMNode, ppNodeDest: ptr ptr IHTMLDOMNode3): HRESULT {.stdcall.} - put_onmssitemodejumplistitemremoved*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onmssitemodejumplistitemremoved*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} - get_all*: proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + createElement*: proc( + self: ptr IHTMLDocument7, bstrTag: BSTR, newElem: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + createAttribute*: proc( + self: ptr IHTMLDocument7, + bstrAttrName: BSTR, + ppAttribute: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + getElementsByClassName*: proc( + self: ptr IHTMLDocument7, v: BSTR, pel: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + createProcessingInstruction*: proc( + self: ptr IHTMLDocument7, + bstrTarget: BSTR, + bstrData: BSTR, + newProcessingInstruction: ptr ptr IDOMProcessingInstruction, + ): HRESULT {.stdcall.} + adoptNode*: proc( + self: ptr IHTMLDocument7, + pNodeSource: ptr IHTMLDOMNode, + ppNodeDest: ptr ptr IHTMLDOMNode3, + ): HRESULT {.stdcall.} + put_onmssitemodejumplistitemremoved*: + proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} + get_onmssitemodejumplistitemremoved*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_all*: proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElementCollection): HRESULT {. + stdcall + .} get_inputEncoding*: proc(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.stdcall.} get_xmlEncoding*: proc(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.stdcall.} - put_xmlStandalone*: proc(self: ptr IHTMLDocument7, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_xmlStandalone*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_xmlStandalone*: + proc(self: ptr IHTMLDocument7, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_xmlStandalone*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_xmlVersion*: proc(self: ptr IHTMLDocument7, v: BSTR): HRESULT {.stdcall.} get_xmlVersion*: proc(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.stdcall.} - hasAttributes*: proc(self: ptr IHTMLDocument7, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.stdcall.} + hasAttributes*: proc( + self: ptr IHTMLDocument7, pfHasAttributes: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_onabort*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onabort*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onblur*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onblur*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_oncanplay*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_oncanplay*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} - put_oncanplaythrough*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_oncanplaythrough*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + put_oncanplaythrough*: + proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} + get_oncanplaythrough*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onchange*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onchange*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondrag*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} @@ -6402,15 +8299,19 @@ put_ondragend*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_ondragend*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondragenter*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_ondragenter*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondragenter*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondragleave*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_ondragleave*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondragleave*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondragover*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_ondragover*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondrop*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_ondrop*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondurationchange*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_ondurationchange*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondurationchange*: + proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} + get_ondurationchange*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onemptied*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onemptied*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onended*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} @@ -6424,11 +8325,15 @@ put_onload*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onload*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onloadeddata*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onloadeddata*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onloadedmetadata*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onloadedmetadata*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onloadeddata*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onloadedmetadata*: + proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} + get_onloadedmetadata*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onloadstart*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onloadstart*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onloadstart*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onpause*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onpause*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onplay*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} @@ -6438,7 +8343,8 @@ put_onprogress*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onprogress*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onratechange*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onratechange*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onratechange*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onreset*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onreset*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onscroll*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} @@ -6456,125 +8362,276 @@ put_onsuspend*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onsuspend*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_ontimeupdate*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_ontimeupdate*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_ontimeupdate*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onvolumechange*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} - get_onvolumechange*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onvolumechange*: + proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} put_onwaiting*: proc(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.stdcall.} get_onwaiting*: proc(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.stdcall.} normalize*: proc(self: ptr IHTMLDocument7): HRESULT {.stdcall.} - importNode*: proc(self: ptr IHTMLDocument7, pNodeSource: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, ppNodeDest: ptr ptr IHTMLDOMNode3): HRESULT {.stdcall.} - get_parentWindow*: proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - putref_body*: proc(self: ptr IHTMLDocument7, v: ptr IHTMLElement): HRESULT {.stdcall.} - get_body*: proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_head*: proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + importNode*: proc( + self: ptr IHTMLDocument7, + pNodeSource: ptr IHTMLDOMNode, + fDeep: VARIANT_BOOL, + ppNodeDest: ptr ptr IHTMLDOMNode3, + ): HRESULT {.stdcall.} + get_parentWindow*: + proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + putref_body*: + proc(self: ptr IHTMLDocument7, v: ptr IHTMLElement): HRESULT {.stdcall.} + get_body*: + proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_head*: + proc(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + IHTMLDOMImplementation2* {.pure.} = object lpVtbl*: ptr IHTMLDOMImplementation2Vtbl + IHTMLDOMImplementation2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - createDocumentType*: proc(self: ptr IHTMLDOMImplementation2, bstrQualifiedName: BSTR, pvarPublicId: ptr VARIANT, pvarSystemId: ptr VARIANT, newDocumentType: ptr ptr IDOMDocumentType): HRESULT {.stdcall.} - createDocument*: proc(self: ptr IHTMLDOMImplementation2, pvarNS: ptr VARIANT, pvarTagName: ptr VARIANT, pDocumentType: ptr IDOMDocumentType, ppnewDocument: ptr ptr IHTMLDocument7): HRESULT {.stdcall.} - createHTMLDocument*: proc(self: ptr IHTMLDOMImplementation2, bstrTitle: BSTR, ppnewDocument: ptr ptr IHTMLDocument7): HRESULT {.stdcall.} - hasFeature*: proc(self: ptr IHTMLDOMImplementation2, bstrfeature: BSTR, version: VARIANT, pfHasFeature: ptr VARIANT_BOOL): HRESULT {.stdcall.} + createDocumentType*: proc( + self: ptr IHTMLDOMImplementation2, + bstrQualifiedName: BSTR, + pvarPublicId: ptr VARIANT, + pvarSystemId: ptr VARIANT, + newDocumentType: ptr ptr IDOMDocumentType, + ): HRESULT {.stdcall.} + createDocument*: proc( + self: ptr IHTMLDOMImplementation2, + pvarNS: ptr VARIANT, + pvarTagName: ptr VARIANT, + pDocumentType: ptr IDOMDocumentType, + ppnewDocument: ptr ptr IHTMLDocument7, + ): HRESULT {.stdcall.} + createHTMLDocument*: proc( + self: ptr IHTMLDOMImplementation2, + bstrTitle: BSTR, + ppnewDocument: ptr ptr IHTMLDocument7, + ): HRESULT {.stdcall.} + hasFeature*: proc( + self: ptr IHTMLDOMImplementation2, + bstrfeature: BSTR, + version: VARIANT, + pfHasFeature: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + DispHTMLDOMAttribute* {.pure.} = object lpVtbl*: ptr DispHTMLDOMAttributeVtbl + DispHTMLDOMAttributeVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLDOMTextNode* {.pure.} = object lpVtbl*: ptr DispHTMLDOMTextNodeVtbl + DispHTMLDOMTextNodeVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLDOMImplementation* {.pure.} = object lpVtbl*: ptr DispHTMLDOMImplementationVtbl + DispHTMLDOMImplementationVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLAttributeCollection* {.pure.} = object lpVtbl*: ptr IHTMLAttributeCollectionVtbl + IHTMLAttributeCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLAttributeCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLAttributeCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLAttributeCollection, name: ptr VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLAttributeCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLAttributeCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLAttributeCollection, name: ptr VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLAttributeCollection2* {.pure.} = object lpVtbl*: ptr IHTMLAttributeCollection2Vtbl + IHTMLAttributeCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getNamedItem*: proc(self: ptr IHTMLAttributeCollection2, bstrName: BSTR, newretNode: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - setNamedItem*: proc(self: ptr IHTMLAttributeCollection2, ppNode: ptr IHTMLDOMAttribute, newretNode: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - removeNamedItem*: proc(self: ptr IHTMLAttributeCollection2, bstrName: BSTR, newretNode: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} + getNamedItem*: proc( + self: ptr IHTMLAttributeCollection2, + bstrName: BSTR, + newretNode: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + setNamedItem*: proc( + self: ptr IHTMLAttributeCollection2, + ppNode: ptr IHTMLDOMAttribute, + newretNode: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + removeNamedItem*: proc( + self: ptr IHTMLAttributeCollection2, + bstrName: BSTR, + newretNode: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + IHTMLAttributeCollection3* {.pure.} = object lpVtbl*: ptr IHTMLAttributeCollection3Vtbl + IHTMLAttributeCollection3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getNamedItem*: proc(self: ptr IHTMLAttributeCollection3, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - setNamedItem*: proc(self: ptr IHTMLAttributeCollection3, pNodeIn: ptr IHTMLDOMAttribute, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - removeNamedItem*: proc(self: ptr IHTMLAttributeCollection3, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLAttributeCollection3, index: LONG, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - get_length*: proc(self: ptr IHTMLAttributeCollection3, p: ptr LONG): HRESULT {.stdcall.} + getNamedItem*: proc( + self: ptr IHTMLAttributeCollection3, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + setNamedItem*: proc( + self: ptr IHTMLAttributeCollection3, + pNodeIn: ptr IHTMLDOMAttribute, + ppNodeOut: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + removeNamedItem*: proc( + self: ptr IHTMLAttributeCollection3, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLAttributeCollection3, + index: LONG, + ppNodeOut: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLAttributeCollection3, p: ptr LONG): HRESULT {.stdcall.} + IHTMLAttributeCollection4* {.pure.} = object lpVtbl*: ptr IHTMLAttributeCollection4Vtbl + IHTMLAttributeCollection4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getNamedItemNS*: proc(self: ptr IHTMLAttributeCollection4, pvarNS: ptr VARIANT, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - setNamedItemNS*: proc(self: ptr IHTMLAttributeCollection4, pNodeIn: ptr IHTMLDOMAttribute2, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - removeNamedItemNS*: proc(self: ptr IHTMLAttributeCollection4, pvarNS: ptr VARIANT, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - getNamedItem*: proc(self: ptr IHTMLAttributeCollection4, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - setNamedItem*: proc(self: ptr IHTMLAttributeCollection4, pNodeIn: ptr IHTMLDOMAttribute2, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - removeNamedItem*: proc(self: ptr IHTMLAttributeCollection4, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLAttributeCollection4, index: LONG, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - get_length*: proc(self: ptr IHTMLAttributeCollection4, p: ptr LONG): HRESULT {.stdcall.} + getNamedItemNS*: proc( + self: ptr IHTMLAttributeCollection4, + pvarNS: ptr VARIANT, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + setNamedItemNS*: proc( + self: ptr IHTMLAttributeCollection4, + pNodeIn: ptr IHTMLDOMAttribute2, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + removeNamedItemNS*: proc( + self: ptr IHTMLAttributeCollection4, + pvarNS: ptr VARIANT, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + getNamedItem*: proc( + self: ptr IHTMLAttributeCollection4, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + setNamedItem*: proc( + self: ptr IHTMLAttributeCollection4, + pNodeIn: ptr IHTMLDOMAttribute2, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + removeNamedItem*: proc( + self: ptr IHTMLAttributeCollection4, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLAttributeCollection4, + index: LONG, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLAttributeCollection4, p: ptr LONG): HRESULT {.stdcall.} + IHTMLDOMChildrenCollection* {.pure.} = object lpVtbl*: ptr IHTMLDOMChildrenCollectionVtbl + IHTMLDOMChildrenCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLDOMChildrenCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLDOMChildrenCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLDOMChildrenCollection, index: LONG, ppItem: ptr ptr IDispatch): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLDOMChildrenCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: proc( + self: ptr IHTMLDOMChildrenCollection, p: ptr ptr IUnknown + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLDOMChildrenCollection, index: LONG, ppItem: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLDOMChildrenCollection2* {.pure.} = object lpVtbl*: ptr IHTMLDOMChildrenCollection2Vtbl + IHTMLDOMChildrenCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - item*: proc(self: ptr IHTMLDOMChildrenCollection2, index: LONG, ppItem: ptr ptr IDispatch): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLDOMChildrenCollection2, index: LONG, ppItem: ptr ptr IDispatch + ): HRESULT {.stdcall.} + DispHTMLAttributeCollection* {.pure.} = object lpVtbl*: ptr DispHTMLAttributeCollectionVtbl + DispHTMLAttributeCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispStaticNodeList* {.pure.} = object lpVtbl*: ptr DispStaticNodeListVtbl + DispStaticNodeListVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispDOMChildrenCollection* {.pure.} = object lpVtbl*: ptr DispDOMChildrenCollectionVtbl + DispDOMChildrenCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLElementEvents4* {.pure.} = object lpVtbl*: ptr HTMLElementEvents4Vtbl + HTMLElementEvents4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLElementEvents3* {.pure.} = object lpVtbl*: ptr HTMLElementEvents3Vtbl + HTMLElementEvents3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLElementEvents2Vtbl + HTMLElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLElementEvents* {.pure.} = object lpVtbl*: ptr HTMLElementEventsVtbl + HTMLElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLElement3* {.pure.} = object lpVtbl*: ptr IHTMLElement3Vtbl + IHTMLElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - mergeAttributes*: proc(self: ptr IHTMLElement3, mergeThis: ptr IHTMLElement, pvarFlags: ptr VARIANT): HRESULT {.stdcall.} - get_isMultiLine*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_canHaveHTML*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_onlayoutcomplete*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_onlayoutcomplete*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + mergeAttributes*: proc( + self: ptr IHTMLElement3, mergeThis: ptr IHTMLElement, pvarFlags: ptr VARIANT + ): HRESULT {.stdcall.} + get_isMultiLine*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_canHaveHTML*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_onlayoutcomplete*: + proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} + get_onlayoutcomplete*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onpage*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} get_onpage*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} - put_inflateBlock*: proc(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_inflateBlock*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_onbeforedeactivate*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_onbeforedeactivate*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_inflateBlock*: + proc(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_inflateBlock*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_onbeforedeactivate*: + proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} + get_onbeforedeactivate*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} setActive*: proc(self: ptr IHTMLElement3): HRESULT {.stdcall.} put_contentEditable*: proc(self: ptr IHTMLElement3, v: BSTR): HRESULT {.stdcall.} - get_contentEditable*: proc(self: ptr IHTMLElement3, p: ptr BSTR): HRESULT {.stdcall.} - get_isContentEditable*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_contentEditable*: + proc(self: ptr IHTMLElement3, p: ptr BSTR): HRESULT {.stdcall.} + get_isContentEditable*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_hideFocus*: proc(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_hideFocus*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_hideFocus*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_disabled*: proc(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_isDisabled*: proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_isDisabled*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_onmove*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} get_onmove*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_oncontrolselect*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_oncontrolselect*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} - fireEvent*: proc(self: ptr IHTMLElement3, bstrEventName: BSTR, pvarEventObject: ptr VARIANT, pfCancelled: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_oncontrolselect*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + fireEvent*: proc( + self: ptr IHTMLElement3, + bstrEventName: BSTR, + pvarEventObject: ptr VARIANT, + pfCancelled: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} put_onresizestart*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_onresizestart*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onresizestart*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onresizeend*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} get_onresizeend*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onmovestart*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} @@ -6582,52 +8639,99 @@ put_onmoveend*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} get_onmoveend*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onmouseenter*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_onmouseenter*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmouseenter*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onmouseleave*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_onmouseleave*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmouseleave*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onactivate*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} get_onactivate*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_ondeactivate*: proc(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.stdcall.} - get_ondeactivate*: proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} - dragDrop*: proc(self: ptr IHTMLElement3, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ondeactivate*: + proc(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.stdcall.} + dragDrop*: + proc(self: ptr IHTMLElement3, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_glyphMode*: proc(self: ptr IHTMLElement3, p: ptr LONG): HRESULT {.stdcall.} + IHTMLElement4* {.pure.} = object lpVtbl*: ptr IHTMLElement4Vtbl + IHTMLElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_onmousewheel*: proc(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.stdcall.} - get_onmousewheel*: proc(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmousewheel*: + proc(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.stdcall.} normalize*: proc(self: ptr IHTMLElement4): HRESULT {.stdcall.} - getAttributeNode*: proc(self: ptr IHTMLElement4, bstrname: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - setAttributeNode*: proc(self: ptr IHTMLElement4, pattr: ptr IHTMLDOMAttribute, ppretAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - removeAttributeNode*: proc(self: ptr IHTMLElement4, pattr: ptr IHTMLDOMAttribute, ppretAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - put_onbeforeactivate*: proc(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeactivate*: proc(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.stdcall.} + getAttributeNode*: proc( + self: ptr IHTMLElement4, bstrname: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute + ): HRESULT {.stdcall.} + setAttributeNode*: proc( + self: ptr IHTMLElement4, + pattr: ptr IHTMLDOMAttribute, + ppretAttribute: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + removeAttributeNode*: proc( + self: ptr IHTMLElement4, + pattr: ptr IHTMLDOMAttribute, + ppretAttribute: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + put_onbeforeactivate*: + proc(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeactivate*: + proc(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocusin*: proc(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.stdcall.} get_onfocusin*: proc(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocusout*: proc(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.stdcall.} get_onfocusout*: proc(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.stdcall.} + IElementSelector* {.pure.} = object lpVtbl*: ptr IElementSelectorVtbl + IElementSelectorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - querySelector*: proc(self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLElement): HRESULT {.stdcall.} - querySelectorAll*: proc(self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.stdcall.} + querySelector*: proc( + self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + querySelectorAll*: proc( + self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection + ): HRESULT {.stdcall.} + IHTMLElementRender* {.pure.} = object lpVtbl*: ptr IHTMLElementRenderVtbl + IHTMLElementRenderVtbl* {.pure, inheritable.} = object of IUnknownVtbl DrawToDC*: proc(self: ptr IHTMLElementRender, hDC: HDC): HRESULT {.stdcall.} - SetDocumentPrinter*: proc(self: ptr IHTMLElementRender, bstrPrinterName: BSTR, hDC: HDC): HRESULT {.stdcall.} + SetDocumentPrinter*: proc( + self: ptr IHTMLElementRender, bstrPrinterName: BSTR, hDC: HDC + ): HRESULT {.stdcall.} + IHTMLUniqueName* {.pure.} = object lpVtbl*: ptr IHTMLUniqueNameVtbl + IHTMLUniqueNameVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_uniqueNumber*: proc(self: ptr IHTMLUniqueName, p: ptr LONG): HRESULT {.stdcall.} get_uniqueID*: proc(self: ptr IHTMLUniqueName, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLElement5* {.pure.} = object lpVtbl*: ptr IHTMLElement5Vtbl + IHTMLElement5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getAttributeNode*: proc(self: ptr IHTMLElement5, bstrname: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - setAttributeNode*: proc(self: ptr IHTMLElement5, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - removeAttributeNode*: proc(self: ptr IHTMLElement5, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - hasAttribute*: proc(self: ptr IHTMLElement5, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL): HRESULT {.stdcall.} + getAttributeNode*: proc( + self: ptr IHTMLElement5, + bstrname: BSTR, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + setAttributeNode*: proc( + self: ptr IHTMLElement5, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + removeAttributeNode*: proc( + self: ptr IHTMLElement5, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + hasAttribute*: proc( + self: ptr IHTMLElement5, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_role*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_role*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaBusy*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} @@ -6644,8 +8748,10 @@ get_ariaHidden*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaInvalid*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaInvalid*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} - put_ariaMultiselectable*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} - get_ariaMultiselectable*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} + put_ariaMultiselectable*: + proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} + get_ariaMultiselectable*: + proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaPressed*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaPressed*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaReadonly*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} @@ -6656,10 +8762,18 @@ get_ariaSecret*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaSelected*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaSelected*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IHTMLElement5, strAttributeName: BSTR, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_attributes*: proc(self: ptr IHTMLElement5, p: ptr ptr IHTMLAttributeCollection3): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: ptr VARIANT + ): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: VARIANT + ): HRESULT {.stdcall.} + removeAttribute*: proc( + self: ptr IHTMLElement5, strAttributeName: BSTR, pfSuccess: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + get_attributes*: proc( + self: ptr IHTMLElement5, p: ptr ptr IHTMLAttributeCollection3 + ): HRESULT {.stdcall.} put_ariaValuenow*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaValuenow*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaPosinset*: proc(self: ptr IHTMLElement5, v: int16): HRESULT {.stdcall.} @@ -6675,51 +8789,116 @@ put_ariaControls*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaControls*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaDescribedby*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} - get_ariaDescribedby*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} + get_ariaDescribedby*: + proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaFlowto*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaFlowto*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaLabelledby*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaLabelledby*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} - put_ariaActivedescendant*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} - get_ariaActivedescendant*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} + put_ariaActivedescendant*: + proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} + get_ariaActivedescendant*: + proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaOwns*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaOwns*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} - hasAttributes*: proc(self: ptr IHTMLElement5, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.stdcall.} + hasAttributes*: proc( + self: ptr IHTMLElement5, pfHasAttributes: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_ariaLive*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaLive*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} put_ariaRelevant*: proc(self: ptr IHTMLElement5, v: BSTR): HRESULT {.stdcall.} get_ariaRelevant*: proc(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLElement6* {.pure.} = object lpVtbl*: ptr IHTMLElement6Vtbl + IHTMLElement6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getAttributeNS*: proc(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - setAttributeNS*: proc(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR, pvarAttributeValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttributeNS*: proc(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR): HRESULT {.stdcall.} - getAttributeNodeNS*: proc(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, bstrname: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - setAttributeNodeNS*: proc(self: ptr IHTMLElement6, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - hasAttributeNS*: proc(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLElement6, strAttributeName: BSTR, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IHTMLElement6, strAttributeName: BSTR, pvarAttributeValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IHTMLElement6, strAttributeName: BSTR): HRESULT {.stdcall.} - getAttributeNode*: proc(self: ptr IHTMLElement6, strAttributeName: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - setAttributeNode*: proc(self: ptr IHTMLElement6, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - removeAttributeNode*: proc(self: ptr IHTMLElement6, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.stdcall.} - hasAttribute*: proc(self: ptr IHTMLElement6, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getElementsByTagNameNS*: proc(self: ptr IHTMLElement6, varNS: ptr VARIANT, bstrLocalName: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + getAttributeNS*: proc( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + strAttributeName: BSTR, + AttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + setAttributeNS*: proc( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + strAttributeName: BSTR, + pvarAttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + removeAttributeNS*: proc( + self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR + ): HRESULT {.stdcall.} + getAttributeNodeNS*: proc( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + bstrname: BSTR, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + setAttributeNodeNS*: proc( + self: ptr IHTMLElement6, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + hasAttributeNS*: proc( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + name: BSTR, + pfHasAttribute: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLElement6, strAttributeName: BSTR, AttributeValue: ptr VARIANT + ): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLElement6, strAttributeName: BSTR, pvarAttributeValue: ptr VARIANT + ): HRESULT {.stdcall.} + removeAttribute*: + proc(self: ptr IHTMLElement6, strAttributeName: BSTR): HRESULT {.stdcall.} + getAttributeNode*: proc( + self: ptr IHTMLElement6, + strAttributeName: BSTR, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + setAttributeNode*: proc( + self: ptr IHTMLElement6, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + removeAttributeNode*: proc( + self: ptr IHTMLElement6, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, + ): HRESULT {.stdcall.} + hasAttribute*: proc( + self: ptr IHTMLElement6, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + getElementsByTagNameNS*: proc( + self: ptr IHTMLElement6, + varNS: ptr VARIANT, + bstrLocalName: BSTR, + pelColl: ptr ptr IHTMLElementCollection, + ): HRESULT {.stdcall.} get_tagName*: proc(self: ptr IHTMLElement6, p: ptr BSTR): HRESULT {.stdcall.} get_nodeName*: proc(self: ptr IHTMLElement6, p: ptr BSTR): HRESULT {.stdcall.} - getElementsByClassName*: proc(self: ptr IHTMLElement6, v: BSTR, pel: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - msMatchesSelector*: proc(self: ptr IHTMLElement6, v: BSTR, pfMatches: ptr VARIANT_BOOL): HRESULT {.stdcall.} + getElementsByClassName*: proc( + self: ptr IHTMLElement6, v: BSTR, pel: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + msMatchesSelector*: proc( + self: ptr IHTMLElement6, v: BSTR, pfMatches: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_onabort*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onabort*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_oncanplay*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_oncanplay*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} - put_oncanplaythrough*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_oncanplaythrough*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + put_oncanplaythrough*: + proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} + get_oncanplaythrough*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onchange*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onchange*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondurationchange*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_ondurationchange*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondurationchange*: + proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} + get_ondurationchange*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onemptied*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onemptied*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onended*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} @@ -6731,9 +8910,12 @@ put_onload*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onload*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onloadeddata*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_onloadeddata*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} - put_onloadedmetadata*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_onloadedmetadata*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + get_onloadeddata*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + put_onloadedmetadata*: + proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} + get_onloadedmetadata*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onloadstart*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onloadstart*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onpause*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} @@ -6745,7 +8927,8 @@ put_onprogress*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onprogress*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onratechange*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_onratechange*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + get_onratechange*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onreset*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onreset*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onseeked*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} @@ -6761,299 +8944,550 @@ put_onsuspend*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onsuspend*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_ontimeupdate*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_ontimeupdate*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + get_ontimeupdate*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onvolumechange*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} - get_onvolumechange*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} + get_onvolumechange*: + proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} put_onwaiting*: proc(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.stdcall.} get_onwaiting*: proc(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.stdcall.} - hasAttributes*: proc(self: ptr IHTMLElement6, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.stdcall.} + hasAttributes*: proc( + self: ptr IHTMLElement6, pfHasAttributes: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + IHTMLElement7* {.pure.} = object lpVtbl*: ptr IHTMLElement7Vtbl + IHTMLElement7Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_onmspointerdown*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerdown*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerdown*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointermove*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointermove*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointermove*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerup*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerup*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerup*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerover*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerover*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerover*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerout*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerout*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointercancel*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointercancel*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointerhover*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerhover*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmslostpointercapture*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmslostpointercapture*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgotpointercapture*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgotpointercapture*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturestart*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturestart*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturechange*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturechange*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerout*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointercancel*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmspointercancel*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointerhover*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmspointerhover*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmslostpointercapture*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmslostpointercapture*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgotpointercapture*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsgotpointercapture*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturestart*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturestart*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturechange*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturechange*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgestureend*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgestureend*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgestureend*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgesturehold*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturehold*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgesturehold*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgesturetap*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturetap*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturedoubletap*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturedoubletap*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsinertiastart*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsinertiastart*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - msSetPointerCapture*: proc(self: ptr IHTMLElement7, pointerId: LONG): HRESULT {.stdcall.} - msReleasePointerCapture*: proc(self: ptr IHTMLElement7, pointerId: LONG): HRESULT {.stdcall.} - put_onmstransitionstart*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmstransitionstart*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmstransitionend*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmstransitionend*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsanimationstart*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsanimationstart*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsanimationend*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsanimationend*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsanimationiteration*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsanimationiteration*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgesturetap*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturedoubletap*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturedoubletap*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsinertiastart*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsinertiastart*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + msSetPointerCapture*: + proc(self: ptr IHTMLElement7, pointerId: LONG): HRESULT {.stdcall.} + msReleasePointerCapture*: + proc(self: ptr IHTMLElement7, pointerId: LONG): HRESULT {.stdcall.} + put_onmstransitionstart*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmstransitionstart*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmstransitionend*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmstransitionend*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsanimationstart*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsanimationstart*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsanimationend*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsanimationend*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsanimationiteration*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsanimationiteration*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_oninvalid*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} get_oninvalid*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_xmsAcceleratorKey*: proc(self: ptr IHTMLElement7, v: BSTR): HRESULT {.stdcall.} - get_xmsAcceleratorKey*: proc(self: ptr IHTMLElement7, p: ptr BSTR): HRESULT {.stdcall.} + get_xmsAcceleratorKey*: + proc(self: ptr IHTMLElement7, p: ptr BSTR): HRESULT {.stdcall.} put_spellcheck*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} get_spellcheck*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsmanipulationstatechanged*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} - get_onmsmanipulationstatechanged*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsmanipulationstatechanged*: + proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} + get_onmsmanipulationstatechanged*: + proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} put_oncuechange*: proc(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.stdcall.} get_oncuechange*: proc(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLStyleSheetRulesAppliedCollection* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetRulesAppliedCollectionVtbl + IHTMLStyleSheetRulesAppliedCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - item*: proc(self: ptr IHTMLStyleSheetRulesAppliedCollection, index: LONG, ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.stdcall.} - get_length*: proc(self: ptr IHTMLStyleSheetRulesAppliedCollection, p: ptr LONG): HRESULT {.stdcall.} - propertyAppliedBy*: proc(self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, ppRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.stdcall.} - propertyAppliedTrace*: proc(self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, index: LONG, ppRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.stdcall.} - propertyAppliedTraceLength*: proc(self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, pLength: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLStyleSheetRulesAppliedCollection, + index: LONG, + ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule, + ): HRESULT {.stdcall.} + get_length*: proc( + self: ptr IHTMLStyleSheetRulesAppliedCollection, p: ptr LONG + ): HRESULT {.stdcall.} + propertyAppliedBy*: proc( + self: ptr IHTMLStyleSheetRulesAppliedCollection, + name: BSTR, + ppRule: ptr ptr IHTMLStyleSheetRule, + ): HRESULT {.stdcall.} + propertyAppliedTrace*: proc( + self: ptr IHTMLStyleSheetRulesAppliedCollection, + name: BSTR, + index: LONG, + ppRule: ptr ptr IHTMLStyleSheetRule, + ): HRESULT {.stdcall.} + propertyAppliedTraceLength*: proc( + self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, pLength: ptr LONG + ): HRESULT {.stdcall.} + IRulesApplied* {.pure.} = object lpVtbl*: ptr IRulesAppliedVtbl + IRulesAppliedVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_element*: proc(self: ptr IRulesApplied, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_inlineStyles*: proc(self: ptr IRulesApplied, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} - get_appliedRules*: proc(self: ptr IRulesApplied, p: ptr ptr IHTMLStyleSheetRulesAppliedCollection): HRESULT {.stdcall.} - propertyIsInline*: proc(self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - propertyIsInheritable*: proc(self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - hasInheritableProperty*: proc(self: ptr IRulesApplied, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_element*: + proc(self: ptr IRulesApplied, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_inlineStyles*: + proc(self: ptr IRulesApplied, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} + get_appliedRules*: proc( + self: ptr IRulesApplied, p: ptr ptr IHTMLStyleSheetRulesAppliedCollection + ): HRESULT {.stdcall.} + propertyIsInline*: proc( + self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + propertyIsInheritable*: proc( + self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + hasInheritableProperty*: + proc(self: ptr IRulesApplied, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IRulesAppliedCollection* {.pure.} = object lpVtbl*: ptr IRulesAppliedCollectionVtbl + IRulesAppliedCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - item*: proc(self: ptr IRulesAppliedCollection, index: LONG, ppRulesApplied: ptr ptr IRulesApplied): HRESULT {.stdcall.} - get_length*: proc(self: ptr IRulesAppliedCollection, p: ptr LONG): HRESULT {.stdcall.} - get_element*: proc(self: ptr IRulesAppliedCollection, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - propertyInheritedFrom*: proc(self: ptr IRulesAppliedCollection, name: BSTR, ppRulesApplied: ptr ptr IRulesApplied): HRESULT {.stdcall.} - get_propertyCount*: proc(self: ptr IRulesAppliedCollection, p: ptr LONG): HRESULT {.stdcall.} - property*: proc(self: ptr IRulesAppliedCollection, index: LONG, pbstrProperty: ptr BSTR): HRESULT {.stdcall.} - propertyInheritedTrace*: proc(self: ptr IRulesAppliedCollection, name: BSTR, index: LONG, ppRulesApplied: ptr ptr IRulesApplied): HRESULT {.stdcall.} - propertyInheritedTraceLength*: proc(self: ptr IRulesAppliedCollection, name: BSTR, pLength: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IRulesAppliedCollection, + index: LONG, + ppRulesApplied: ptr ptr IRulesApplied, + ): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IRulesAppliedCollection, p: ptr LONG): HRESULT {.stdcall.} + get_element*: proc( + self: ptr IRulesAppliedCollection, p: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + propertyInheritedFrom*: proc( + self: ptr IRulesAppliedCollection, + name: BSTR, + ppRulesApplied: ptr ptr IRulesApplied, + ): HRESULT {.stdcall.} + get_propertyCount*: + proc(self: ptr IRulesAppliedCollection, p: ptr LONG): HRESULT {.stdcall.} + property*: proc( + self: ptr IRulesAppliedCollection, index: LONG, pbstrProperty: ptr BSTR + ): HRESULT {.stdcall.} + propertyInheritedTrace*: proc( + self: ptr IRulesAppliedCollection, + name: BSTR, + index: LONG, + ppRulesApplied: ptr ptr IRulesApplied, + ): HRESULT {.stdcall.} + propertyInheritedTraceLength*: proc( + self: ptr IRulesAppliedCollection, name: BSTR, pLength: ptr LONG + ): HRESULT {.stdcall.} + IHTMLElementAppliedStyles* {.pure.} = object lpVtbl*: ptr IHTMLElementAppliedStylesVtbl + IHTMLElementAppliedStylesVtbl* {.pure, inheritable.} = object of IDispatchVtbl - msGetRulesApplied*: proc(self: ptr IHTMLElementAppliedStyles, ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection): HRESULT {.stdcall.} - msGetRulesAppliedWithAncestor*: proc(self: ptr IHTMLElementAppliedStyles, varContext: VARIANT, ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection): HRESULT {.stdcall.} + msGetRulesApplied*: proc( + self: ptr IHTMLElementAppliedStyles, + ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection, + ): HRESULT {.stdcall.} + msGetRulesAppliedWithAncestor*: proc( + self: ptr IHTMLElementAppliedStyles, + varContext: VARIANT, + ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection, + ): HRESULT {.stdcall.} + IElementTraversal* {.pure.} = object lpVtbl*: ptr IElementTraversalVtbl + IElementTraversalVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_firstElementChild*: proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_lastElementChild*: proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_previousElementSibling*: proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_nextElementSibling*: proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_childElementCount*: proc(self: ptr IElementTraversal, p: ptr LONG): HRESULT {.stdcall.} + get_firstElementChild*: + proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_lastElementChild*: + proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_previousElementSibling*: + proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_nextElementSibling*: + proc(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_childElementCount*: + proc(self: ptr IElementTraversal, p: ptr LONG): HRESULT {.stdcall.} + IHTMLDatabinding* {.pure.} = object lpVtbl*: ptr IHTMLDatabindingVtbl + IHTMLDatabindingVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_dataFld*: proc(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.stdcall.} get_dataFld*: proc(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.stdcall.} put_dataSrc*: proc(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.stdcall.} get_dataSrc*: proc(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.stdcall.} put_dataFormatAs*: proc(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.stdcall.} - get_dataFormatAs*: proc(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.stdcall.} + get_dataFormatAs*: + proc(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLElementDefaults* {.pure.} = object lpVtbl*: ptr IHTMLElementDefaultsVtbl + IHTMLElementDefaultsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_style*: proc(self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} - put_tabStop*: proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_tabStop*: proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_viewInheritStyle*: proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_viewInheritStyle*: proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_viewMasterTab*: proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_viewMasterTab*: proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_scrollSegmentX*: proc(self: ptr IHTMLElementDefaults, v: LONG): HRESULT {.stdcall.} - get_scrollSegmentX*: proc(self: ptr IHTMLElementDefaults, p: ptr LONG): HRESULT {.stdcall.} - put_scrollSegmentY*: proc(self: ptr IHTMLElementDefaults, v: LONG): HRESULT {.stdcall.} - get_scrollSegmentY*: proc(self: ptr IHTMLElementDefaults, p: ptr LONG): HRESULT {.stdcall.} - put_isMultiLine*: proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_isMultiLine*: proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_contentEditable*: proc(self: ptr IHTMLElementDefaults, v: BSTR): HRESULT {.stdcall.} - get_contentEditable*: proc(self: ptr IHTMLElementDefaults, p: ptr BSTR): HRESULT {.stdcall.} - put_canHaveHTML*: proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_canHaveHTML*: proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - putref_viewLink*: proc(self: ptr IHTMLElementDefaults, v: ptr IHTMLDocument): HRESULT {.stdcall.} - get_viewLink*: proc(self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLDocument): HRESULT {.stdcall.} - put_frozen*: proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_frozen*: proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_style*: + proc(self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLStyle): HRESULT {.stdcall.} + put_tabStop*: + proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_tabStop*: + proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_viewInheritStyle*: + proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_viewInheritStyle*: + proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_viewMasterTab*: + proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_viewMasterTab*: + proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_scrollSegmentX*: + proc(self: ptr IHTMLElementDefaults, v: LONG): HRESULT {.stdcall.} + get_scrollSegmentX*: + proc(self: ptr IHTMLElementDefaults, p: ptr LONG): HRESULT {.stdcall.} + put_scrollSegmentY*: + proc(self: ptr IHTMLElementDefaults, v: LONG): HRESULT {.stdcall.} + get_scrollSegmentY*: + proc(self: ptr IHTMLElementDefaults, p: ptr LONG): HRESULT {.stdcall.} + put_isMultiLine*: + proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_isMultiLine*: + proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_contentEditable*: + proc(self: ptr IHTMLElementDefaults, v: BSTR): HRESULT {.stdcall.} + get_contentEditable*: + proc(self: ptr IHTMLElementDefaults, p: ptr BSTR): HRESULT {.stdcall.} + put_canHaveHTML*: + proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_canHaveHTML*: + proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + putref_viewLink*: + proc(self: ptr IHTMLElementDefaults, v: ptr IHTMLDocument): HRESULT {.stdcall.} + get_viewLink*: proc( + self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLDocument + ): HRESULT {.stdcall.} + put_frozen*: + proc(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_frozen*: + proc(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLDefaults* {.pure.} = object lpVtbl*: ptr DispHTMLDefaultsVtbl + DispHTMLDefaultsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTCDefaultDispatch* {.pure.} = object lpVtbl*: ptr IHTCDefaultDispatchVtbl + IHTCDefaultDispatchVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_element*: proc(self: ptr IHTCDefaultDispatch, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - createEventObject*: proc(self: ptr IHTCDefaultDispatch, eventObj: ptr ptr IHTMLEventObj): HRESULT {.stdcall.} - get_defaults*: proc(self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_document*: proc(self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_element*: + proc(self: ptr IHTCDefaultDispatch, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + createEventObject*: proc( + self: ptr IHTCDefaultDispatch, eventObj: ptr ptr IHTMLEventObj + ): HRESULT {.stdcall.} + get_defaults*: + proc(self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_document*: + proc(self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch): HRESULT {.stdcall.} + IHTCPropertyBehavior* {.pure.} = object lpVtbl*: ptr IHTCPropertyBehaviorVtbl + IHTCPropertyBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl fireChange*: proc(self: ptr IHTCPropertyBehavior): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTCPropertyBehavior, v: VARIANT): HRESULT {.stdcall.} - get_value*: proc(self: ptr IHTCPropertyBehavior, p: ptr VARIANT): HRESULT {.stdcall.} + get_value*: + proc(self: ptr IHTCPropertyBehavior, p: ptr VARIANT): HRESULT {.stdcall.} + IHTCMethodBehavior* {.pure.} = object lpVtbl*: ptr IHTCMethodBehaviorVtbl + IHTCMethodBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTCEventBehavior* {.pure.} = object lpVtbl*: ptr IHTCEventBehaviorVtbl + IHTCEventBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - fire*: proc(self: ptr IHTCEventBehavior, pvar: ptr IHTMLEventObj): HRESULT {.stdcall.} + fire*: + proc(self: ptr IHTCEventBehavior, pvar: ptr IHTMLEventObj): HRESULT {.stdcall.} + IHTCAttachBehavior* {.pure.} = object lpVtbl*: ptr IHTCAttachBehaviorVtbl + IHTCAttachBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - fireEvent*: proc(self: ptr IHTCAttachBehavior, evt: ptr IDispatch): HRESULT {.stdcall.} + fireEvent*: + proc(self: ptr IHTCAttachBehavior, evt: ptr IDispatch): HRESULT {.stdcall.} detachEvent*: proc(self: ptr IHTCAttachBehavior): HRESULT {.stdcall.} + IHTCAttachBehavior2* {.pure.} = object lpVtbl*: ptr IHTCAttachBehavior2Vtbl + IHTCAttachBehavior2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl fireEvent*: proc(self: ptr IHTCAttachBehavior2, evt: VARIANT): HRESULT {.stdcall.} + IHTCDescBehavior* {.pure.} = object lpVtbl*: ptr IHTCDescBehaviorVtbl + IHTCDescBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_urn*: proc(self: ptr IHTCDescBehavior, p: ptr BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTCDescBehavior, p: ptr BSTR): HRESULT {.stdcall.} + DispHTCDefaultDispatch* {.pure.} = object lpVtbl*: ptr DispHTCDefaultDispatchVtbl + DispHTCDefaultDispatchVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTCPropertyBehavior* {.pure.} = object lpVtbl*: ptr DispHTCPropertyBehaviorVtbl + DispHTCPropertyBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTCMethodBehavior* {.pure.} = object lpVtbl*: ptr DispHTCMethodBehaviorVtbl + DispHTCMethodBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTCEventBehavior* {.pure.} = object lpVtbl*: ptr DispHTCEventBehaviorVtbl + DispHTCEventBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTCAttachBehavior* {.pure.} = object lpVtbl*: ptr DispHTCAttachBehaviorVtbl + DispHTCAttachBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTCDescBehavior* {.pure.} = object lpVtbl*: ptr DispHTCDescBehaviorVtbl + DispHTCDescBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLUrnCollection* {.pure.} = object lpVtbl*: ptr IHTMLUrnCollectionVtbl + IHTMLUrnCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IHTMLUrnCollection, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLUrnCollection, index: LONG, ppUrn: ptr BSTR): HRESULT {.stdcall.} + item*: proc(self: ptr IHTMLUrnCollection, index: LONG, ppUrn: ptr BSTR): HRESULT {. + stdcall + .} + DispHTMLUrnCollection* {.pure.} = object lpVtbl*: ptr DispHTMLUrnCollectionVtbl + DispHTMLUrnCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLGenericElement* {.pure.} = object lpVtbl*: ptr IHTMLGenericElementVtbl + IHTMLGenericElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_recordset*: proc(self: ptr IHTMLGenericElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} - namedRecordset*: proc(self: ptr IHTMLGenericElement, dataMember: BSTR, hierarchy: ptr VARIANT, ppRecordset: ptr ptr IDispatch): HRESULT {.stdcall.} + get_recordset*: + proc(self: ptr IHTMLGenericElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + namedRecordset*: proc( + self: ptr IHTMLGenericElement, + dataMember: BSTR, + hierarchy: ptr VARIANT, + ppRecordset: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + DispHTMLGenericElement* {.pure.} = object lpVtbl*: ptr DispHTMLGenericElementVtbl + DispHTMLGenericElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleSheetRuleApplied* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetRuleAppliedVtbl + IHTMLStyleSheetRuleAppliedVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_msSpecificity*: proc(self: ptr IHTMLStyleSheetRuleApplied, p: ptr LONG): HRESULT {.stdcall.} - msGetSpecificity*: proc(self: ptr IHTMLStyleSheetRuleApplied, index: LONG, p: ptr LONG): HRESULT {.stdcall.} + get_msSpecificity*: + proc(self: ptr IHTMLStyleSheetRuleApplied, p: ptr LONG): HRESULT {.stdcall.} + msGetSpecificity*: proc( + self: ptr IHTMLStyleSheetRuleApplied, index: LONG, p: ptr LONG + ): HRESULT {.stdcall.} + IHTMLStyleSheetRule2* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetRule2Vtbl + IHTMLStyleSheetRule2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_selectorText*: proc(self: ptr IHTMLStyleSheetRule2, v: BSTR): HRESULT {.stdcall.} - get_selectorText*: proc(self: ptr IHTMLStyleSheetRule2, p: ptr BSTR): HRESULT {.stdcall.} + put_selectorText*: + proc(self: ptr IHTMLStyleSheetRule2, v: BSTR): HRESULT {.stdcall.} + get_selectorText*: + proc(self: ptr IHTMLStyleSheetRule2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyleSheetRulesCollection2* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetRulesCollection2Vtbl + IHTMLStyleSheetRulesCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLStyleSheetRulesCollection2, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLStyleSheetRulesCollection2, index: LONG, ppHTMLCSSRule: ptr ptr IHTMLCSSRule): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLStyleSheetRulesCollection2, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLStyleSheetRulesCollection2, + index: LONG, + ppHTMLCSSRule: ptr ptr IHTMLCSSRule, + ): HRESULT {.stdcall.} + DispHTMLStyleSheetRule* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetRuleVtbl + DispHTMLStyleSheetRuleVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLStyleSheetRulesCollection* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetRulesCollectionVtbl + DispHTMLStyleSheetRulesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleSheetPage* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetPageVtbl + IHTMLStyleSheetPageVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_selector*: proc(self: ptr IHTMLStyleSheetPage, p: ptr BSTR): HRESULT {.stdcall.} - get_pseudoClass*: proc(self: ptr IHTMLStyleSheetPage, p: ptr BSTR): HRESULT {.stdcall.} + get_pseudoClass*: + proc(self: ptr IHTMLStyleSheetPage, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyleSheetPage2* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetPage2Vtbl + IHTMLStyleSheetPage2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_selectorText*: proc(self: ptr IHTMLStyleSheetPage2, v: BSTR): HRESULT {.stdcall.} - get_selectorText*: proc(self: ptr IHTMLStyleSheetPage2, p: ptr BSTR): HRESULT {.stdcall.} - get_style*: proc(self: ptr IHTMLStyleSheetPage2, p: ptr ptr IHTMLRuleStyle): HRESULT {.stdcall.} + put_selectorText*: + proc(self: ptr IHTMLStyleSheetPage2, v: BSTR): HRESULT {.stdcall.} + get_selectorText*: + proc(self: ptr IHTMLStyleSheetPage2, p: ptr BSTR): HRESULT {.stdcall.} + get_style*: proc(self: ptr IHTMLStyleSheetPage2, p: ptr ptr IHTMLRuleStyle): HRESULT {. + stdcall + .} + IHTMLStyleSheetPagesCollection* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetPagesCollectionVtbl + IHTMLStyleSheetPagesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLStyleSheetPagesCollection, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLStyleSheetPagesCollection, index: LONG, ppHTMLStyleSheetPage: ptr ptr IHTMLStyleSheetPage): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLStyleSheetPagesCollection, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLStyleSheetPagesCollection, + index: LONG, + ppHTMLStyleSheetPage: ptr ptr IHTMLStyleSheetPage, + ): HRESULT {.stdcall.} + DispHTMLStyleSheetPage* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetPageVtbl + DispHTMLStyleSheetPageVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLStyleSheetPagesCollection* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetPagesCollectionVtbl + DispHTMLStyleSheetPagesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleSheet2* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheet2Vtbl + IHTMLStyleSheet2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_pages*: proc(self: ptr IHTMLStyleSheet2, p: ptr ptr IHTMLStyleSheetPagesCollection): HRESULT {.stdcall.} - addPageRule*: proc(self: ptr IHTMLStyleSheet2, bstrSelector: BSTR, bstrStyle: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.stdcall.} + get_pages*: proc( + self: ptr IHTMLStyleSheet2, p: ptr ptr IHTMLStyleSheetPagesCollection + ): HRESULT {.stdcall.} + addPageRule*: proc( + self: ptr IHTMLStyleSheet2, + bstrSelector: BSTR, + bstrStyle: BSTR, + lIndex: LONG, + plNewIndex: ptr LONG, + ): HRESULT {.stdcall.} + IHTMLStyleSheet3* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheet3Vtbl + IHTMLStyleSheet3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLStyleSheet3, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLStyleSheet3, p: ptr BSTR): HRESULT {.stdcall.} - get_isAlternate*: proc(self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_isPrefAlternate*: proc(self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_isAlternate*: + proc(self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_isPrefAlternate*: + proc(self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLStyleSheet4* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheet4Vtbl + IHTMLStyleSheet4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLStyleSheet4, p: ptr BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLStyleSheet4, p: ptr VARIANT): HRESULT {.stdcall.} get_title*: proc(self: ptr IHTMLStyleSheet4, p: ptr BSTR): HRESULT {.stdcall.} - get_ownerNode*: proc(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_ownerRule*: proc(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLCSSRule): HRESULT {.stdcall.} - get_cssRules*: proc(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.stdcall.} + get_ownerNode*: + proc(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_ownerRule*: + proc(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLCSSRule): HRESULT {.stdcall.} + get_cssRules*: proc( + self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLStyleSheetRulesCollection + ): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLStyleSheet4, p: ptr VARIANT): HRESULT {.stdcall.} - insertRule*: proc(self: ptr IHTMLStyleSheet4, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.stdcall.} + insertRule*: proc( + self: ptr IHTMLStyleSheet4, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG + ): HRESULT {.stdcall.} deleteRule*: proc(self: ptr IHTMLStyleSheet4, lIndex: LONG): HRESULT {.stdcall.} + DispHTMLStyleSheet* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetVtbl + DispHTMLStyleSheetVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleSheetsCollection2* {.pure.} = object lpVtbl*: ptr IHTMLStyleSheetsCollection2Vtbl + IHTMLStyleSheetsCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - item*: proc(self: ptr IHTMLStyleSheetsCollection2, index: LONG, pvarResult: ptr VARIANT): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLStyleSheetsCollection2, index: LONG, pvarResult: ptr VARIANT + ): HRESULT {.stdcall.} + DispHTMLStyleSheetsCollection* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetsCollectionVtbl + DispHTMLStyleSheetsCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLLinkElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLLinkElementEvents2Vtbl + HTMLLinkElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLLinkElementEvents* {.pure.} = object lpVtbl*: ptr HTMLLinkElementEventsVtbl + HTMLLinkElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLLinkElement* {.pure.} = object lpVtbl*: ptr IHTMLLinkElementVtbl + IHTMLLinkElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -7064,213 +9498,382 @@ put_type*: proc(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onload*: proc(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.stdcall.} get_onload*: proc(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onerror*: proc(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.stdcall.} get_onerror*: proc(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.stdcall.} - get_styleSheet*: proc(self: ptr IHTMLLinkElement, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLLinkElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLLinkElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_styleSheet*: + proc(self: ptr IHTMLLinkElement, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLLinkElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLLinkElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_media*: proc(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLLinkElement2* {.pure.} = object lpVtbl*: ptr IHTMLLinkElement2Vtbl + IHTMLLinkElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_target*: proc(self: ptr IHTMLLinkElement2, v: BSTR): HRESULT {.stdcall.} get_target*: proc(self: ptr IHTMLLinkElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLLinkElement3* {.pure.} = object lpVtbl*: ptr IHTMLLinkElement3Vtbl + IHTMLLinkElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_charset*: proc(self: ptr IHTMLLinkElement3, v: BSTR): HRESULT {.stdcall.} get_charset*: proc(self: ptr IHTMLLinkElement3, p: ptr BSTR): HRESULT {.stdcall.} put_hreflang*: proc(self: ptr IHTMLLinkElement3, v: BSTR): HRESULT {.stdcall.} get_hreflang*: proc(self: ptr IHTMLLinkElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLLinkElement4* {.pure.} = object lpVtbl*: ptr IHTMLLinkElement4Vtbl + IHTMLLinkElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLLinkElement4, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLLinkElement4, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLLinkElement5* {.pure.} = object lpVtbl*: ptr IHTMLLinkElement5Vtbl + IHTMLLinkElement5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_sheet*: proc(self: ptr IHTMLLinkElement5, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + get_sheet*: + proc(self: ptr IHTMLLinkElement5, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + DispHTMLLinkElement* {.pure.} = object lpVtbl*: ptr DispHTMLLinkElementVtbl + DispHTMLLinkElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLTxtRange* {.pure.} = object lpVtbl*: ptr IHTMLTxtRangeVtbl + IHTMLTxtRangeVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_htmlText*: proc(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.stdcall.} put_text*: proc(self: ptr IHTMLTxtRange, v: BSTR): HRESULT {.stdcall.} get_text*: proc(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.stdcall.} - parentElement*: proc(self: ptr IHTMLTxtRange, parent: ptr ptr IHTMLElement): HRESULT {.stdcall.} - duplicate*: proc(self: ptr IHTMLTxtRange, Duplicate: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} - inRange*: proc(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, InRange: ptr VARIANT_BOOL): HRESULT {.stdcall.} - isEqual*: proc(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, IsEqual: ptr VARIANT_BOOL): HRESULT {.stdcall.} - scrollIntoView*: proc(self: ptr IHTMLTxtRange, fStart: VARIANT_BOOL): HRESULT {.stdcall.} + parentElement*: + proc(self: ptr IHTMLTxtRange, parent: ptr ptr IHTMLElement): HRESULT {.stdcall.} + duplicate*: proc(self: ptr IHTMLTxtRange, Duplicate: ptr ptr IHTMLTxtRange): HRESULT {. + stdcall + .} + inRange*: proc( + self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, InRange: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + isEqual*: proc( + self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, IsEqual: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + scrollIntoView*: + proc(self: ptr IHTMLTxtRange, fStart: VARIANT_BOOL): HRESULT {.stdcall.} collapse*: proc(self: ptr IHTMLTxtRange, Start: VARIANT_BOOL): HRESULT {.stdcall.} - expand*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.stdcall.} - move*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.stdcall.} - moveStart*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.stdcall.} - moveEnd*: proc(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.stdcall.} + expand*: proc( + self: ptr IHTMLTxtRange, Unit: BSTR, Success: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + move*: proc( + self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG + ): HRESULT {.stdcall.} + moveStart*: proc( + self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG + ): HRESULT {.stdcall.} + moveEnd*: proc( + self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG + ): HRESULT {.stdcall.} select*: proc(self: ptr IHTMLTxtRange): HRESULT {.stdcall.} pasteHTML*: proc(self: ptr IHTMLTxtRange, html: BSTR): HRESULT {.stdcall.} - moveToElementText*: proc(self: ptr IHTMLTxtRange, element: ptr IHTMLElement): HRESULT {.stdcall.} - setEndPoint*: proc(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange): HRESULT {.stdcall.} - compareEndPoints*: proc(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange, ret: ptr LONG): HRESULT {.stdcall.} - findText*: proc(self: ptr IHTMLTxtRange, String: BSTR, count: LONG, Flags: LONG, Success: ptr VARIANT_BOOL): HRESULT {.stdcall.} + moveToElementText*: + proc(self: ptr IHTMLTxtRange, element: ptr IHTMLElement): HRESULT {.stdcall.} + setEndPoint*: proc( + self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + compareEndPoints*: proc( + self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange, ret: ptr LONG + ): HRESULT {.stdcall.} + findText*: proc( + self: ptr IHTMLTxtRange, + String: BSTR, + count: LONG, + Flags: LONG, + Success: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} moveToPoint*: proc(self: ptr IHTMLTxtRange, x: LONG, y: LONG): HRESULT {.stdcall.} getBookmark*: proc(self: ptr IHTMLTxtRange, Boolmark: ptr BSTR): HRESULT {.stdcall.} - moveToBookmark*: proc(self: ptr IHTMLTxtRange, Bookmark: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandSupported*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandEnabled*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandState*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandIndeterm*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandText*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.stdcall.} - queryCommandValue*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.stdcall.} - execCommand*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - execCommandShowHelp*: proc(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} + moveToBookmark*: proc( + self: ptr IHTMLTxtRange, Bookmark: BSTR, Success: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandSupported*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandEnabled*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandState*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandIndeterm*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandText*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdText: ptr BSTR + ): HRESULT {.stdcall.} + queryCommandValue*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdValue: ptr VARIANT + ): HRESULT {.stdcall.} + execCommand*: proc( + self: ptr IHTMLTxtRange, + cmdID: BSTR, + showUI: VARIANT_BOOL, + value: VARIANT, + pfRet: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + execCommandShowHelp*: proc( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + IHTMLTextRangeMetrics* {.pure.} = object lpVtbl*: ptr IHTMLTextRangeMetricsVtbl + IHTMLTextRangeMetricsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_offsetTop*: proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_offsetLeft*: proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_boundingTop*: proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_boundingLeft*: proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_boundingWidth*: proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_boundingHeight*: proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_offsetTop*: + proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_offsetLeft*: + proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_boundingTop*: + proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_boundingLeft*: + proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_boundingWidth*: + proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_boundingHeight*: + proc(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.stdcall.} + IHTMLTextRangeMetrics2* {.pure.} = object lpVtbl*: ptr IHTMLTextRangeMetrics2Vtbl + IHTMLTextRangeMetrics2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getClientRects*: proc(self: ptr IHTMLTextRangeMetrics2, pRectCol: ptr ptr IHTMLRectCollection): HRESULT {.stdcall.} - getBoundingClientRect*: proc(self: ptr IHTMLTextRangeMetrics2, pRect: ptr ptr IHTMLRect): HRESULT {.stdcall.} + getClientRects*: proc( + self: ptr IHTMLTextRangeMetrics2, pRectCol: ptr ptr IHTMLRectCollection + ): HRESULT {.stdcall.} + getBoundingClientRect*: proc( + self: ptr IHTMLTextRangeMetrics2, pRect: ptr ptr IHTMLRect + ): HRESULT {.stdcall.} + IHTMLTxtRangeCollection* {.pure.} = object lpVtbl*: ptr IHTMLTxtRangeCollectionVtbl + IHTMLTxtRangeCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLTxtRangeCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLTxtRangeCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLTxtRangeCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLTxtRangeCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLTxtRangeCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLTxtRangeCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT + ): HRESULT {.stdcall.} + DispHTMLDOMRange* {.pure.} = object lpVtbl*: ptr DispHTMLDOMRangeVtbl + DispHTMLDOMRangeVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLFormElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLFormElementEvents2Vtbl + HTMLFormElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLFormElementEvents* {.pure.} = object lpVtbl*: ptr HTMLFormElementEventsVtbl + HTMLFormElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLFormElement2* {.pure.} = object lpVtbl*: ptr IHTMLFormElement2Vtbl + IHTMLFormElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_acceptCharset*: proc(self: ptr IHTMLFormElement2, v: BSTR): HRESULT {.stdcall.} - get_acceptCharset*: proc(self: ptr IHTMLFormElement2, p: ptr BSTR): HRESULT {.stdcall.} - urns*: proc(self: ptr IHTMLFormElement2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_acceptCharset*: + proc(self: ptr IHTMLFormElement2, p: ptr BSTR): HRESULT {.stdcall.} + urns*: proc( + self: ptr IHTMLFormElement2, urn: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLFormElement3* {.pure.} = object lpVtbl*: ptr IHTMLFormElement3Vtbl + IHTMLFormElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - namedItem*: proc(self: ptr IHTMLFormElement3, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + namedItem*: proc( + self: ptr IHTMLFormElement3, name: BSTR, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLSubmitData* {.pure.} = object lpVtbl*: ptr IHTMLSubmitDataVtbl + IHTMLSubmitDataVtbl* {.pure, inheritable.} = object of IDispatchVtbl - appendNameValuePair*: proc(self: ptr IHTMLSubmitData, name: BSTR, value: BSTR): HRESULT {.stdcall.} - appendNameFilePair*: proc(self: ptr IHTMLSubmitData, name: BSTR, filename: BSTR): HRESULT {.stdcall.} + appendNameValuePair*: + proc(self: ptr IHTMLSubmitData, name: BSTR, value: BSTR): HRESULT {.stdcall.} + appendNameFilePair*: + proc(self: ptr IHTMLSubmitData, name: BSTR, filename: BSTR): HRESULT {.stdcall.} appendItemSeparator*: proc(self: ptr IHTMLSubmitData): HRESULT {.stdcall.} + IHTMLFormElement4* {.pure.} = object lpVtbl*: ptr IHTMLFormElement4Vtbl + IHTMLFormElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_action*: proc(self: ptr IHTMLFormElement4, v: BSTR): HRESULT {.stdcall.} get_action*: proc(self: ptr IHTMLFormElement4, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLFormElement* {.pure.} = object lpVtbl*: ptr DispHTMLFormElementVtbl + DispHTMLFormElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLControlElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLControlElementEvents2Vtbl + HTMLControlElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLControlElementEvents* {.pure.} = object lpVtbl*: ptr HTMLControlElementEventsVtbl + HTMLControlElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLControlElement* {.pure.} = object lpVtbl*: ptr IHTMLControlElementVtbl + IHTMLControlElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_tabIndex*: proc(self: ptr IHTMLControlElement, v: int16): HRESULT {.stdcall.} - get_tabIndex*: proc(self: ptr IHTMLControlElement, p: ptr int16): HRESULT {.stdcall.} + get_tabIndex*: + proc(self: ptr IHTMLControlElement, p: ptr int16): HRESULT {.stdcall.} focus*: proc(self: ptr IHTMLControlElement): HRESULT {.stdcall.} put_accessKey*: proc(self: ptr IHTMLControlElement, v: BSTR): HRESULT {.stdcall.} - get_accessKey*: proc(self: ptr IHTMLControlElement, p: ptr BSTR): HRESULT {.stdcall.} + get_accessKey*: + proc(self: ptr IHTMLControlElement, p: ptr BSTR): HRESULT {.stdcall.} put_onblur*: proc(self: ptr IHTMLControlElement, v: VARIANT): HRESULT {.stdcall.} - get_onblur*: proc(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onblur*: + proc(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocus*: proc(self: ptr IHTMLControlElement, v: VARIANT): HRESULT {.stdcall.} - get_onfocus*: proc(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onfocus*: + proc(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onresize*: proc(self: ptr IHTMLControlElement, v: VARIANT): HRESULT {.stdcall.} - get_onresize*: proc(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onresize*: + proc(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.stdcall.} blur*: proc(self: ptr IHTMLControlElement): HRESULT {.stdcall.} - addFilter*: proc(self: ptr IHTMLControlElement, pUnk: ptr IUnknown): HRESULT {.stdcall.} - removeFilter*: proc(self: ptr IHTMLControlElement, pUnk: ptr IUnknown): HRESULT {.stdcall.} - get_clientHeight*: proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} - get_clientWidth*: proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} - get_clientTop*: proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} - get_clientLeft*: proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} + addFilter*: + proc(self: ptr IHTMLControlElement, pUnk: ptr IUnknown): HRESULT {.stdcall.} + removeFilter*: + proc(self: ptr IHTMLControlElement, pUnk: ptr IUnknown): HRESULT {.stdcall.} + get_clientHeight*: + proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} + get_clientWidth*: + proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} + get_clientTop*: + proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} + get_clientLeft*: + proc(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.stdcall.} + IHTMLTextElement* {.pure.} = object lpVtbl*: ptr IHTMLTextElementVtbl + IHTMLTextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTextElement* {.pure.} = object lpVtbl*: ptr DispHTMLTextElementVtbl + DispHTMLTextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLTextContainerEvents2* {.pure.} = object lpVtbl*: ptr HTMLTextContainerEvents2Vtbl + HTMLTextContainerEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLTextContainerEvents* {.pure.} = object lpVtbl*: ptr HTMLTextContainerEventsVtbl + HTMLTextContainerEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLTextContainer* {.pure.} = object lpVtbl*: ptr IHTMLTextContainerVtbl + IHTMLTextContainerVtbl* {.pure, inheritable.} = object of IDispatchVtbl - createControlRange*: proc(self: ptr IHTMLTextContainer, range: ptr ptr IDispatch): HRESULT {.stdcall.} - get_scrollHeight*: proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} - get_scrollWidth*: proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} + createControlRange*: + proc(self: ptr IHTMLTextContainer, range: ptr ptr IDispatch): HRESULT {.stdcall.} + get_scrollHeight*: + proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} + get_scrollWidth*: + proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} put_scrollTop*: proc(self: ptr IHTMLTextContainer, v: LONG): HRESULT {.stdcall.} get_scrollTop*: proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} put_scrollLeft*: proc(self: ptr IHTMLTextContainer, v: LONG): HRESULT {.stdcall.} - get_scrollLeft*: proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} + get_scrollLeft*: + proc(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.stdcall.} put_onscroll*: proc(self: ptr IHTMLTextContainer, v: VARIANT): HRESULT {.stdcall.} - get_onscroll*: proc(self: ptr IHTMLTextContainer, p: ptr VARIANT): HRESULT {.stdcall.} + get_onscroll*: + proc(self: ptr IHTMLTextContainer, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLControlRange* {.pure.} = object lpVtbl*: ptr IHTMLControlRangeVtbl + IHTMLControlRangeVtbl* {.pure, inheritable.} = object of IDispatchVtbl select*: proc(self: ptr IHTMLControlRange): HRESULT {.stdcall.} - add*: proc(self: ptr IHTMLControlRange, item: ptr IHTMLControlElement): HRESULT {.stdcall.} + add*: proc(self: ptr IHTMLControlRange, item: ptr IHTMLControlElement): HRESULT {. + stdcall + .} remove*: proc(self: ptr IHTMLControlRange, index: LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLControlRange, index: LONG, pdisp: ptr ptr IHTMLElement): HRESULT {.stdcall.} - scrollIntoView*: proc(self: ptr IHTMLControlRange, varargStart: VARIANT): HRESULT {.stdcall.} - queryCommandSupported*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandEnabled*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandState*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandIndeterm*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - queryCommandText*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.stdcall.} - queryCommandValue*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.stdcall.} - execCommand*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - execCommandShowHelp*: proc(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.stdcall.} - commonParentElement*: proc(self: ptr IHTMLControlRange, parent: ptr ptr IHTMLElement): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLControlRange, index: LONG, pdisp: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + scrollIntoView*: + proc(self: ptr IHTMLControlRange, varargStart: VARIANT): HRESULT {.stdcall.} + queryCommandSupported*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandEnabled*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandState*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandIndeterm*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + queryCommandText*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pcmdText: ptr BSTR + ): HRESULT {.stdcall.} + queryCommandValue*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pcmdValue: ptr VARIANT + ): HRESULT {.stdcall.} + execCommand*: proc( + self: ptr IHTMLControlRange, + cmdID: BSTR, + showUI: VARIANT_BOOL, + value: VARIANT, + pfRet: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + execCommandShowHelp*: proc( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + commonParentElement*: proc( + self: ptr IHTMLControlRange, parent: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLControlRange, p: ptr LONG): HRESULT {.stdcall.} + IHTMLControlRange2* {.pure.} = object lpVtbl*: ptr IHTMLControlRange2Vtbl + IHTMLControlRange2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - addElement*: proc(self: ptr IHTMLControlRange2, item: ptr IHTMLElement): HRESULT {.stdcall.} + addElement*: + proc(self: ptr IHTMLControlRange2, item: ptr IHTMLElement): HRESULT {.stdcall.} + HTMLImgEvents2* {.pure.} = object lpVtbl*: ptr HTMLImgEvents2Vtbl + HTMLImgEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLImgEvents* {.pure.} = object lpVtbl*: ptr HTMLImgEventsVtbl + HTMLImgEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLImgElement2* {.pure.} = object lpVtbl*: ptr IHTMLImgElement2Vtbl + IHTMLImgElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_longDesc*: proc(self: ptr IHTMLImgElement2, v: BSTR): HRESULT {.stdcall.} get_longDesc*: proc(self: ptr IHTMLImgElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLImgElement3* {.pure.} = object lpVtbl*: ptr IHTMLImgElement3Vtbl + IHTMLImgElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_longDesc*: proc(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.stdcall.} get_longDesc*: proc(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.stdcall.} @@ -7280,38 +9883,57 @@ get_lowsrc*: proc(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.stdcall.} put_dynsrc*: proc(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.stdcall.} get_dynsrc*: proc(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLImgElement4* {.pure.} = object lpVtbl*: ptr IHTMLImgElement4Vtbl + IHTMLImgElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_naturalWidth*: proc(self: ptr IHTMLImgElement4, p: ptr LONG): HRESULT {.stdcall.} - get_naturalHeight*: proc(self: ptr IHTMLImgElement4, p: ptr LONG): HRESULT {.stdcall.} + get_naturalWidth*: + proc(self: ptr IHTMLImgElement4, p: ptr LONG): HRESULT {.stdcall.} + get_naturalHeight*: + proc(self: ptr IHTMLImgElement4, p: ptr LONG): HRESULT {.stdcall.} + IHTMLMSImgElement* {.pure.} = object lpVtbl*: ptr IHTMLMSImgElementVtbl + IHTMLMSImgElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_msPlayToDisabled*: proc(self: ptr IHTMLMSImgElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_msPlayToDisabled*: proc(self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_msPlayToPrimary*: proc(self: ptr IHTMLMSImgElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_msPlayToPrimary*: proc(self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_msPlayToDisabled*: + proc(self: ptr IHTMLMSImgElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_msPlayToDisabled*: + proc(self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_msPlayToPrimary*: + proc(self: ptr IHTMLMSImgElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_msPlayToPrimary*: + proc(self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLImg* {.pure.} = object lpVtbl*: ptr DispHTMLImgVtbl + DispHTMLImgVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLBodyElement* {.pure.} = object lpVtbl*: ptr IHTMLBodyElementVtbl + IHTMLBodyElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_background*: proc(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.stdcall.} get_background*: proc(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.stdcall.} put_bgProperties*: proc(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.stdcall.} - get_bgProperties*: proc(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.stdcall.} + get_bgProperties*: + proc(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.stdcall.} put_leftMargin*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} - get_leftMargin*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_leftMargin*: + proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} put_topMargin*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} - get_topMargin*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_topMargin*: + proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} put_rightMargin*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} - get_rightMargin*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_rightMargin*: + proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} put_bottomMargin*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} - get_bottomMargin*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_bottomMargin*: + proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} put_noWrap*: proc(self: ptr IHTMLBodyElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noWrap*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noWrap*: + proc(self: ptr IHTMLBodyElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_bgColor*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} get_bgColor*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} put_text*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} @@ -7330,44 +9952,70 @@ get_scroll*: proc(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.stdcall.} put_onselect*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} get_onselect*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_onbeforeunload*: proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeunload*: proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLBodyElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} + put_onbeforeunload*: + proc(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeunload*: + proc(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.stdcall.} + createTextRange*: proc( + self: ptr IHTMLBodyElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + IHTMLBodyElement2* {.pure.} = object lpVtbl*: ptr IHTMLBodyElement2Vtbl + IHTMLBodyElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_onbeforeprint*: proc(self: ptr IHTMLBodyElement2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeprint*: proc(self: ptr IHTMLBodyElement2, p: ptr VARIANT): HRESULT {.stdcall.} - put_onafterprint*: proc(self: ptr IHTMLBodyElement2, v: VARIANT): HRESULT {.stdcall.} - get_onafterprint*: proc(self: ptr IHTMLBodyElement2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onbeforeprint*: + proc(self: ptr IHTMLBodyElement2, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeprint*: + proc(self: ptr IHTMLBodyElement2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onafterprint*: + proc(self: ptr IHTMLBodyElement2, v: VARIANT): HRESULT {.stdcall.} + get_onafterprint*: + proc(self: ptr IHTMLBodyElement2, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLBodyElement3* {.pure.} = object lpVtbl*: ptr IHTMLBodyElement3Vtbl + IHTMLBodyElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_background*: proc(self: ptr IHTMLBodyElement3, v: BSTR): HRESULT {.stdcall.} get_background*: proc(self: ptr IHTMLBodyElement3, p: ptr BSTR): HRESULT {.stdcall.} put_ononline*: proc(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.stdcall.} - get_ononline*: proc(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.stdcall.} + get_ononline*: + proc(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_onoffline*: proc(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.stdcall.} - get_onoffline*: proc(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.stdcall.} - put_onhashchange*: proc(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.stdcall.} - get_onhashchange*: proc(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onoffline*: + proc(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_onhashchange*: + proc(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.stdcall.} + get_onhashchange*: + proc(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLBodyElement4* {.pure.} = object lpVtbl*: ptr IHTMLBodyElement4Vtbl + IHTMLBodyElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_onmessage*: proc(self: ptr IHTMLBodyElement4, v: VARIANT): HRESULT {.stdcall.} - get_onmessage*: proc(self: ptr IHTMLBodyElement4, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmessage*: + proc(self: ptr IHTMLBodyElement4, p: ptr VARIANT): HRESULT {.stdcall.} put_onstorage*: proc(self: ptr IHTMLBodyElement4, v: VARIANT): HRESULT {.stdcall.} - get_onstorage*: proc(self: ptr IHTMLBodyElement4, p: ptr VARIANT): HRESULT {.stdcall.} + get_onstorage*: + proc(self: ptr IHTMLBodyElement4, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLBodyElement5* {.pure.} = object lpVtbl*: ptr IHTMLBodyElement5Vtbl + IHTMLBodyElement5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_onpopstate*: proc(self: ptr IHTMLBodyElement5, v: VARIANT): HRESULT {.stdcall.} - get_onpopstate*: proc(self: ptr IHTMLBodyElement5, p: ptr VARIANT): HRESULT {.stdcall.} + get_onpopstate*: + proc(self: ptr IHTMLBodyElement5, p: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLBody* {.pure.} = object lpVtbl*: ptr DispHTMLBodyVtbl + DispHTMLBodyVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLFontElement* {.pure.} = object lpVtbl*: ptr IHTMLFontElementVtbl + IHTMLFontElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_color*: proc(self: ptr IHTMLFontElement, v: VARIANT): HRESULT {.stdcall.} get_color*: proc(self: ptr IHTMLFontElement, p: ptr VARIANT): HRESULT {.stdcall.} @@ -7375,17 +10023,22 @@ get_face*: proc(self: ptr IHTMLFontElement, p: ptr BSTR): HRESULT {.stdcall.} put_size*: proc(self: ptr IHTMLFontElement, v: VARIANT): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLFontElement, p: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLFontElement* {.pure.} = object lpVtbl*: ptr DispHTMLFontElementVtbl + DispHTMLFontElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLAnchorEvents2* {.pure.} = object lpVtbl*: ptr HTMLAnchorEvents2Vtbl + HTMLAnchorEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLAnchorEvents* {.pure.} = object lpVtbl*: ptr HTMLAnchorEventsVtbl + HTMLAnchorEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLAnchorElement* {.pure.} = object lpVtbl*: ptr IHTMLAnchorElementVtbl + IHTMLAnchorElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -7418,18 +10071,22 @@ put_onblur*: proc(self: ptr IHTMLAnchorElement, v: VARIANT): HRESULT {.stdcall.} get_onblur*: proc(self: ptr IHTMLAnchorElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocus*: proc(self: ptr IHTMLAnchorElement, v: VARIANT): HRESULT {.stdcall.} - get_onfocus*: proc(self: ptr IHTMLAnchorElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onfocus*: + proc(self: ptr IHTMLAnchorElement, p: ptr VARIANT): HRESULT {.stdcall.} put_accessKey*: proc(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.stdcall.} get_accessKey*: proc(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.stdcall.} - get_protocolLong*: proc(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.stdcall.} + get_protocolLong*: + proc(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.stdcall.} get_mimeType*: proc(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.stdcall.} get_nameProp*: proc(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.stdcall.} put_tabIndex*: proc(self: ptr IHTMLAnchorElement, v: int16): HRESULT {.stdcall.} get_tabIndex*: proc(self: ptr IHTMLAnchorElement, p: ptr int16): HRESULT {.stdcall.} focus*: proc(self: ptr IHTMLAnchorElement): HRESULT {.stdcall.} blur*: proc(self: ptr IHTMLAnchorElement): HRESULT {.stdcall.} + IHTMLAnchorElement2* {.pure.} = object lpVtbl*: ptr IHTMLAnchorElement2Vtbl + IHTMLAnchorElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_charset*: proc(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.stdcall.} get_charset*: proc(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.stdcall.} @@ -7441,8 +10098,10 @@ get_shape*: proc(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.stdcall.} put_type*: proc(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLAnchorElement3* {.pure.} = object lpVtbl*: ptr IHTMLAnchorElement3Vtbl + IHTMLAnchorElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_shape*: proc(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.stdcall.} get_shape*: proc(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.stdcall.} @@ -7450,300 +10109,456 @@ get_coords*: proc(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.stdcall.} put_href*: proc(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLAnchorElement* {.pure.} = object lpVtbl*: ptr DispHTMLAnchorElementVtbl + DispHTMLAnchorElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLLabelEvents2* {.pure.} = object lpVtbl*: ptr HTMLLabelEvents2Vtbl + HTMLLabelEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLLabelEvents* {.pure.} = object lpVtbl*: ptr HTMLLabelEventsVtbl + HTMLLabelEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLLabelElement* {.pure.} = object lpVtbl*: ptr IHTMLLabelElementVtbl + IHTMLLabelElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_htmlFor*: proc(self: ptr IHTMLLabelElement, v: BSTR): HRESULT {.stdcall.} get_htmlFor*: proc(self: ptr IHTMLLabelElement, p: ptr BSTR): HRESULT {.stdcall.} put_accessKey*: proc(self: ptr IHTMLLabelElement, v: BSTR): HRESULT {.stdcall.} get_accessKey*: proc(self: ptr IHTMLLabelElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLLabelElement2* {.pure.} = object lpVtbl*: ptr IHTMLLabelElement2Vtbl + IHTMLLabelElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_form*: proc(self: ptr IHTMLLabelElement2, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLLabelElement2, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} + DispHTMLLabelElement* {.pure.} = object lpVtbl*: ptr DispHTMLLabelElementVtbl + DispHTMLLabelElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLListElement* {.pure.} = object lpVtbl*: ptr IHTMLListElementVtbl + IHTMLListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLListElement2* {.pure.} = object lpVtbl*: ptr IHTMLListElement2Vtbl + IHTMLListElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_compact*: proc(self: ptr IHTMLListElement2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_compact*: proc(self: ptr IHTMLListElement2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_compact*: + proc(self: ptr IHTMLListElement2, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_compact*: + proc(self: ptr IHTMLListElement2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLListElement* {.pure.} = object lpVtbl*: ptr DispHTMLListElementVtbl + DispHTMLListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLUListElement* {.pure.} = object lpVtbl*: ptr IHTMLUListElementVtbl + IHTMLUListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_compact*: proc(self: ptr IHTMLUListElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_compact*: proc(self: ptr IHTMLUListElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_compact*: + proc(self: ptr IHTMLUListElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_compact*: + proc(self: ptr IHTMLUListElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_type*: proc(self: ptr IHTMLUListElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLUListElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLUListElement* {.pure.} = object lpVtbl*: ptr DispHTMLUListElementVtbl + DispHTMLUListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLOListElement* {.pure.} = object lpVtbl*: ptr IHTMLOListElementVtbl + IHTMLOListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_compact*: proc(self: ptr IHTMLOListElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_compact*: proc(self: ptr IHTMLOListElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_compact*: + proc(self: ptr IHTMLOListElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_compact*: + proc(self: ptr IHTMLOListElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_start*: proc(self: ptr IHTMLOListElement, v: LONG): HRESULT {.stdcall.} get_start*: proc(self: ptr IHTMLOListElement, p: ptr LONG): HRESULT {.stdcall.} put_type*: proc(self: ptr IHTMLOListElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLOListElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLOListElement* {.pure.} = object lpVtbl*: ptr DispHTMLOListElementVtbl + DispHTMLOListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLLIElement* {.pure.} = object lpVtbl*: ptr IHTMLLIElementVtbl + IHTMLLIElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr IHTMLLIElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLLIElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLLIElement, v: LONG): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLLIElement, p: ptr LONG): HRESULT {.stdcall.} + DispHTMLLIElement* {.pure.} = object lpVtbl*: ptr DispHTMLLIElementVtbl + DispHTMLLIElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLBlockElement* {.pure.} = object lpVtbl*: ptr IHTMLBlockElementVtbl + IHTMLBlockElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_clear*: proc(self: ptr IHTMLBlockElement, v: BSTR): HRESULT {.stdcall.} get_clear*: proc(self: ptr IHTMLBlockElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLBlockElement2* {.pure.} = object lpVtbl*: ptr IHTMLBlockElement2Vtbl + IHTMLBlockElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_cite*: proc(self: ptr IHTMLBlockElement2, v: BSTR): HRESULT {.stdcall.} get_cite*: proc(self: ptr IHTMLBlockElement2, p: ptr BSTR): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLBlockElement2, v: BSTR): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLBlockElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLBlockElement3* {.pure.} = object lpVtbl*: ptr IHTMLBlockElement3Vtbl + IHTMLBlockElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_cite*: proc(self: ptr IHTMLBlockElement3, v: BSTR): HRESULT {.stdcall.} get_cite*: proc(self: ptr IHTMLBlockElement3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLBlockElement* {.pure.} = object lpVtbl*: ptr DispHTMLBlockElementVtbl + DispHTMLBlockElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDivElement* {.pure.} = object lpVtbl*: ptr IHTMLDivElementVtbl + IHTMLDivElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLDivElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLDivElement, p: ptr BSTR): HRESULT {.stdcall.} put_noWrap*: proc(self: ptr IHTMLDivElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noWrap*: proc(self: ptr IHTMLDivElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noWrap*: + proc(self: ptr IHTMLDivElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLDivElement* {.pure.} = object lpVtbl*: ptr DispHTMLDivElementVtbl + DispHTMLDivElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDDElement* {.pure.} = object lpVtbl*: ptr IHTMLDDElementVtbl + IHTMLDDElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_noWrap*: proc(self: ptr IHTMLDDElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noWrap*: proc(self: ptr IHTMLDDElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noWrap*: + proc(self: ptr IHTMLDDElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLDDElement* {.pure.} = object lpVtbl*: ptr DispHTMLDDElementVtbl + DispHTMLDDElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDTElement* {.pure.} = object lpVtbl*: ptr IHTMLDTElementVtbl + IHTMLDTElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_noWrap*: proc(self: ptr IHTMLDTElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noWrap*: proc(self: ptr IHTMLDTElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noWrap*: + proc(self: ptr IHTMLDTElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLDTElement* {.pure.} = object lpVtbl*: ptr DispHTMLDTElementVtbl + DispHTMLDTElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLBRElement* {.pure.} = object lpVtbl*: ptr IHTMLBRElementVtbl + IHTMLBRElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_clear*: proc(self: ptr IHTMLBRElement, v: BSTR): HRESULT {.stdcall.} get_clear*: proc(self: ptr IHTMLBRElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLBRElement* {.pure.} = object lpVtbl*: ptr DispHTMLBRElementVtbl + DispHTMLBRElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDListElement* {.pure.} = object lpVtbl*: ptr IHTMLDListElementVtbl + IHTMLDListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_compact*: proc(self: ptr IHTMLDListElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_compact*: proc(self: ptr IHTMLDListElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_compact*: + proc(self: ptr IHTMLDListElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_compact*: + proc(self: ptr IHTMLDListElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLDListElement* {.pure.} = object lpVtbl*: ptr DispHTMLDListElementVtbl + DispHTMLDListElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLHRElement* {.pure.} = object lpVtbl*: ptr IHTMLHRElementVtbl + IHTMLHRElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLHRElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLHRElement, p: ptr BSTR): HRESULT {.stdcall.} put_color*: proc(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.stdcall.} get_color*: proc(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.stdcall.} put_noShade*: proc(self: ptr IHTMLHRElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noShade*: proc(self: ptr IHTMLHRElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noShade*: + proc(self: ptr IHTMLHRElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.stdcall.} put_size*: proc(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLHRElement* {.pure.} = object lpVtbl*: ptr DispHTMLHRElementVtbl + DispHTMLHRElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLParaElement* {.pure.} = object lpVtbl*: ptr IHTMLParaElementVtbl + IHTMLParaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLParaElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLParaElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLParaElement* {.pure.} = object lpVtbl*: ptr DispHTMLParaElementVtbl + DispHTMLParaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLElementCollection2* {.pure.} = object lpVtbl*: ptr IHTMLElementCollection2Vtbl + IHTMLElementCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - urns*: proc(self: ptr IHTMLElementCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + urns*: proc( + self: ptr IHTMLElementCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLElementCollection3* {.pure.} = object lpVtbl*: ptr IHTMLElementCollection3Vtbl + IHTMLElementCollection3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - namedItem*: proc(self: ptr IHTMLElementCollection3, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + namedItem*: proc( + self: ptr IHTMLElementCollection3, name: BSTR, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLElementCollection4* {.pure.} = object lpVtbl*: ptr IHTMLElementCollection4Vtbl + IHTMLElementCollection4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLElementCollection4, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLElementCollection4, index: LONG, pNode: ptr ptr IHTMLElement2): HRESULT {.stdcall.} - namedItem*: proc(self: ptr IHTMLElementCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLElementCollection4, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLElementCollection4, index: LONG, pNode: ptr ptr IHTMLElement2 + ): HRESULT {.stdcall.} + namedItem*: proc( + self: ptr IHTMLElementCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2 + ): HRESULT {.stdcall.} + DispHTMLElementCollection* {.pure.} = object lpVtbl*: ptr DispHTMLElementCollectionVtbl + DispHTMLElementCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLHeaderElement* {.pure.} = object lpVtbl*: ptr IHTMLHeaderElementVtbl + IHTMLHeaderElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLHeaderElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLHeaderElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLHeaderElement* {.pure.} = object lpVtbl*: ptr DispHTMLHeaderElementVtbl + DispHTMLHeaderElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLSelectElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLSelectElementEvents2Vtbl + HTMLSelectElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLSelectElementEvents* {.pure.} = object lpVtbl*: ptr HTMLSelectElementEventsVtbl + HTMLSelectElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLSelectElementEx* {.pure.} = object lpVtbl*: ptr IHTMLSelectElementExVtbl + IHTMLSelectElementExVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShowDropdown*: proc(self: ptr IHTMLSelectElementEx, fShow: WINBOOL): HRESULT {.stdcall.} - SetSelectExFlags*: proc(self: ptr IHTMLSelectElementEx, lFlags: DWORD): HRESULT {.stdcall.} - GetSelectExFlags*: proc(self: ptr IHTMLSelectElementEx, pFlags: ptr DWORD): HRESULT {.stdcall.} - GetDropdownOpen*: proc(self: ptr IHTMLSelectElementEx, pfOpen: ptr WINBOOL): HRESULT {.stdcall.} + ShowDropdown*: + proc(self: ptr IHTMLSelectElementEx, fShow: WINBOOL): HRESULT {.stdcall.} + SetSelectExFlags*: + proc(self: ptr IHTMLSelectElementEx, lFlags: DWORD): HRESULT {.stdcall.} + GetSelectExFlags*: + proc(self: ptr IHTMLSelectElementEx, pFlags: ptr DWORD): HRESULT {.stdcall.} + GetDropdownOpen*: + proc(self: ptr IHTMLSelectElementEx, pfOpen: ptr WINBOOL): HRESULT {.stdcall.} + IHTMLSelectElement* {.pure.} = object lpVtbl*: ptr IHTMLSelectElementVtbl + IHTMLSelectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_size*: proc(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.stdcall.} - put_multiple*: proc(self: ptr IHTMLSelectElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_multiple*: proc(self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_multiple*: + proc(self: ptr IHTMLSelectElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_multiple*: + proc(self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLSelectElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.stdcall.} - get_options*: proc(self: ptr IHTMLSelectElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_options*: + proc(self: ptr IHTMLSelectElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_onchange*: proc(self: ptr IHTMLSelectElement, v: VARIANT): HRESULT {.stdcall.} - get_onchange*: proc(self: ptr IHTMLSelectElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onchange*: + proc(self: ptr IHTMLSelectElement, p: ptr VARIANT): HRESULT {.stdcall.} put_selectedIndex*: proc(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.stdcall.} - get_selectedIndex*: proc(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.stdcall.} + get_selectedIndex*: + proc(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLSelectElement, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLSelectElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLSelectElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} - add*: proc(self: ptr IHTMLSelectElement, element: ptr IHTMLElement, before: VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLSelectElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLSelectElement, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} + add*: proc( + self: ptr IHTMLSelectElement, element: ptr IHTMLElement, before: VARIANT + ): HRESULT {.stdcall.} remove*: proc(self: ptr IHTMLSelectElement, index: LONG): HRESULT {.stdcall.} put_length*: proc(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLSelectElement, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLSelectElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} - tags*: proc(self: ptr IHTMLSelectElement, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLSelectElement, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLSelectElement, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + tags*: proc( + self: ptr IHTMLSelectElement, tagName: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLSelectElement2* {.pure.} = object lpVtbl*: ptr IHTMLSelectElement2Vtbl + IHTMLSelectElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - urns*: proc(self: ptr IHTMLSelectElement2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + urns*: proc( + self: ptr IHTMLSelectElement2, urn: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLSelectElement4* {.pure.} = object lpVtbl*: ptr IHTMLSelectElement4Vtbl + IHTMLSelectElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - namedItem*: proc(self: ptr IHTMLSelectElement4, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + namedItem*: proc( + self: ptr IHTMLSelectElement4, name: BSTR, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLSelectElement5* {.pure.} = object lpVtbl*: ptr IHTMLSelectElement5Vtbl + IHTMLSelectElement5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - add*: proc(self: ptr IHTMLSelectElement5, pElem: ptr IHTMLOptionElement, pvarBefore: ptr VARIANT): HRESULT {.stdcall.} + add*: proc( + self: ptr IHTMLSelectElement5, + pElem: ptr IHTMLOptionElement, + pvarBefore: ptr VARIANT, + ): HRESULT {.stdcall.} + IHTMLSelectElement6* {.pure.} = object lpVtbl*: ptr IHTMLSelectElement6Vtbl + IHTMLSelectElement6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - add*: proc(self: ptr IHTMLSelectElement6, pElem: ptr IHTMLOptionElement, pvarBefore: ptr VARIANT): HRESULT {.stdcall.} + add*: proc( + self: ptr IHTMLSelectElement6, + pElem: ptr IHTMLOptionElement, + pvarBefore: ptr VARIANT, + ): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLSelectElement6, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLSelectElement6, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLSelectElement* {.pure.} = object lpVtbl*: ptr DispHTMLSelectElementVtbl + DispHTMLSelectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLWndSelectElement* {.pure.} = object lpVtbl*: ptr DispHTMLWndSelectElementVtbl + DispHTMLWndSelectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLSelectionObject2* {.pure.} = object lpVtbl*: ptr IHTMLSelectionObject2Vtbl + IHTMLSelectionObject2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - createRangeCollection*: proc(self: ptr IHTMLSelectionObject2, rangeCollection: ptr ptr IDispatch): HRESULT {.stdcall.} - get_typeDetail*: proc(self: ptr IHTMLSelectionObject2, p: ptr BSTR): HRESULT {.stdcall.} + createRangeCollection*: proc( + self: ptr IHTMLSelectionObject2, rangeCollection: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_typeDetail*: + proc(self: ptr IHTMLSelectionObject2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLOptionElement3* {.pure.} = object lpVtbl*: ptr IHTMLOptionElement3Vtbl + IHTMLOptionElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_label*: proc(self: ptr IHTMLOptionElement3, v: BSTR): HRESULT {.stdcall.} get_label*: proc(self: ptr IHTMLOptionElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLOptionElement4* {.pure.} = object lpVtbl*: ptr IHTMLOptionElement4Vtbl + IHTMLOptionElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_value*: proc(self: ptr IHTMLOptionElement4, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLOptionElement4, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLOptionElement* {.pure.} = object lpVtbl*: ptr DispHTMLOptionElementVtbl + DispHTMLOptionElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLWndOptionElement* {.pure.} = object lpVtbl*: ptr DispHTMLWndOptionElementVtbl + DispHTMLWndOptionElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLButtonElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLButtonElementEvents2Vtbl + HTMLButtonElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLButtonElementEvents* {.pure.} = object lpVtbl*: ptr HTMLButtonElementEventsVtbl + HTMLButtonElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLInputTextElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLInputTextElementEvents2Vtbl + HTMLInputTextElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLOptionButtonElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLOptionButtonElementEvents2Vtbl + HTMLOptionButtonElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLInputFileElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLInputFileElementEvents2Vtbl + HTMLInputFileElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLInputImageEvents2* {.pure.} = object lpVtbl*: ptr HTMLInputImageEvents2Vtbl + HTMLInputImageEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLInputTextElementEvents* {.pure.} = object lpVtbl*: ptr HTMLInputTextElementEventsVtbl + HTMLInputTextElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLOptionButtonElementEvents* {.pure.} = object lpVtbl*: ptr HTMLOptionButtonElementEventsVtbl + HTMLOptionButtonElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLInputFileElementEvents* {.pure.} = object lpVtbl*: ptr HTMLInputFileElementEventsVtbl + HTMLInputFileElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLInputImageEvents* {.pure.} = object lpVtbl*: ptr HTMLInputImageEventsVtbl + HTMLInputImageEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLInputElement* {.pure.} = object lpVtbl*: ptr IHTMLInputElementVtbl + IHTMLInputElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -7752,30 +10567,48 @@ put_name*: proc(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} put_status*: proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLInputElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLInputElement, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} put_size*: proc(self: ptr IHTMLInputElement, v: LONG): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.stdcall.} put_maxLength*: proc(self: ptr IHTMLInputElement, v: LONG): HRESULT {.stdcall.} get_maxLength*: proc(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.stdcall.} select*: proc(self: ptr IHTMLInputElement): HRESULT {.stdcall.} put_onchange*: proc(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.stdcall.} - get_onchange*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onchange*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onselect*: proc(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.stdcall.} - get_onselect*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onselect*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.stdcall.} put_defaultValue*: proc(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.stdcall.} - get_defaultValue*: proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} - put_readOnly*: proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_readOnly*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLInputElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} - put_indeterminate*: proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_indeterminate*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_defaultChecked*: proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_defaultChecked*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_checked*: proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_checked*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_defaultValue*: + proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} + put_readOnly*: + proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_readOnly*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + createTextRange*: proc( + self: ptr IHTMLInputElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + put_indeterminate*: + proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_indeterminate*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_defaultChecked*: + proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_defaultChecked*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_checked*: + proc(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_checked*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.stdcall.} get_border*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.stdcall.} put_vspace*: proc(self: ptr IHTMLInputElement, v: LONG): HRESULT {.stdcall.} @@ -7793,7 +10626,8 @@ put_dynsrc*: proc(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.stdcall.} get_dynsrc*: proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} - get_complete*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_complete*: + proc(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_loop*: proc(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.stdcall.} get_loop*: proc(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.stdcall.} put_align*: proc(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.stdcall.} @@ -7810,15 +10644,19 @@ get_height*: proc(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.stdcall.} put_start*: proc(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.stdcall.} get_start*: proc(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLInputElement2* {.pure.} = object lpVtbl*: ptr IHTMLInputElement2Vtbl + IHTMLInputElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_accept*: proc(self: ptr IHTMLInputElement2, v: BSTR): HRESULT {.stdcall.} get_accept*: proc(self: ptr IHTMLInputElement2, p: ptr BSTR): HRESULT {.stdcall.} put_useMap*: proc(self: ptr IHTMLInputElement2, v: BSTR): HRESULT {.stdcall.} get_useMap*: proc(self: ptr IHTMLInputElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLInputElement3* {.pure.} = object lpVtbl*: ptr IHTMLInputElement3Vtbl + IHTMLInputElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.stdcall.} @@ -7828,36 +10666,60 @@ get_vrml*: proc(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.stdcall.} put_dynsrc*: proc(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.stdcall.} get_dynsrc*: proc(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLInputButtonElement* {.pure.} = object lpVtbl*: ptr IHTMLInputButtonElementVtbl + IHTMLInputButtonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLInputButtonElement, v: BSTR): HRESULT {.stdcall.} - get_value*: proc(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.stdcall.} + get_value*: + proc(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLInputButtonElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.stdcall.} - put_status*: proc(self: ptr IHTMLInputButtonElement, v: VARIANT): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLInputButtonElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLInputButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLInputButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLInputButtonElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} + put_status*: + proc(self: ptr IHTMLInputButtonElement, v: VARIANT): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLInputButtonElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLInputButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLInputButtonElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + createTextRange*: proc( + self: ptr IHTMLInputButtonElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + IHTMLInputHiddenElement* {.pure.} = object lpVtbl*: ptr IHTMLInputHiddenElementVtbl + IHTMLInputHiddenElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLInputHiddenElement, v: BSTR): HRESULT {.stdcall.} - get_value*: proc(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.stdcall.} + get_value*: + proc(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLInputHiddenElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.stdcall.} - put_status*: proc(self: ptr IHTMLInputHiddenElement, v: VARIANT): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLInputHiddenElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLInputHiddenElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputHiddenElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLInputHiddenElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLInputHiddenElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} + put_status*: + proc(self: ptr IHTMLInputHiddenElement, v: VARIANT): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLInputHiddenElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLInputHiddenElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputHiddenElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLInputHiddenElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + createTextRange*: proc( + self: ptr IHTMLInputHiddenElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + IHTMLInputTextElement* {.pure.} = object lpVtbl*: ptr IHTMLInputTextElementVtbl + IHTMLInputTextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.stdcall.} @@ -7865,81 +10727,139 @@ put_name*: proc(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.stdcall.} put_status*: proc(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLInputTextElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLInputTextElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} - put_defaultValue*: proc(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.stdcall.} - get_defaultValue*: proc(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLInputTextElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLInputTextElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + put_defaultValue*: + proc(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.stdcall.} + get_defaultValue*: + proc(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.stdcall.} put_size*: proc(self: ptr IHTMLInputTextElement, v: LONG): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLInputTextElement, p: ptr LONG): HRESULT {.stdcall.} put_maxLength*: proc(self: ptr IHTMLInputTextElement, v: LONG): HRESULT {.stdcall.} - get_maxLength*: proc(self: ptr IHTMLInputTextElement, p: ptr LONG): HRESULT {.stdcall.} + get_maxLength*: + proc(self: ptr IHTMLInputTextElement, p: ptr LONG): HRESULT {.stdcall.} select*: proc(self: ptr IHTMLInputTextElement): HRESULT {.stdcall.} - put_onchange*: proc(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.stdcall.} - get_onchange*: proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_onselect*: proc(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.stdcall.} - get_onselect*: proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_readOnly*: proc(self: ptr IHTMLInputTextElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_readOnly*: proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLInputTextElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} + put_onchange*: + proc(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.stdcall.} + get_onchange*: + proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_onselect*: + proc(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.stdcall.} + get_onselect*: + proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_readOnly*: + proc(self: ptr IHTMLInputTextElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_readOnly*: + proc(self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + createTextRange*: proc( + self: ptr IHTMLInputTextElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + IHTMLInputTextElement2* {.pure.} = object lpVtbl*: ptr IHTMLInputTextElement2Vtbl + IHTMLInputTextElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_selectionStart*: proc(self: ptr IHTMLInputTextElement2, v: LONG): HRESULT {.stdcall.} - get_selectionStart*: proc(self: ptr IHTMLInputTextElement2, p: ptr LONG): HRESULT {.stdcall.} - put_selectionEnd*: proc(self: ptr IHTMLInputTextElement2, v: LONG): HRESULT {.stdcall.} - get_selectionEnd*: proc(self: ptr IHTMLInputTextElement2, p: ptr LONG): HRESULT {.stdcall.} - setSelectionRange*: proc(self: ptr IHTMLInputTextElement2, start: LONG, `end`: LONG): HRESULT {.stdcall.} + put_selectionStart*: + proc(self: ptr IHTMLInputTextElement2, v: LONG): HRESULT {.stdcall.} + get_selectionStart*: + proc(self: ptr IHTMLInputTextElement2, p: ptr LONG): HRESULT {.stdcall.} + put_selectionEnd*: + proc(self: ptr IHTMLInputTextElement2, v: LONG): HRESULT {.stdcall.} + get_selectionEnd*: + proc(self: ptr IHTMLInputTextElement2, p: ptr LONG): HRESULT {.stdcall.} + setSelectionRange*: proc( + self: ptr IHTMLInputTextElement2, start: LONG, `end`: LONG + ): HRESULT {.stdcall.} + IHTMLInputFileElement* {.pure.} = object lpVtbl*: ptr IHTMLInputFileElementVtbl + IHTMLInputFileElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLInputFileElement, p: ptr BSTR): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLInputFileElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLInputFileElement, p: ptr BSTR): HRESULT {.stdcall.} put_status*: proc(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLInputFileElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLInputFileElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLInputFileElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLInputFileElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} put_size*: proc(self: ptr IHTMLInputFileElement, v: LONG): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLInputFileElement, p: ptr LONG): HRESULT {.stdcall.} put_maxLength*: proc(self: ptr IHTMLInputFileElement, v: LONG): HRESULT {.stdcall.} - get_maxLength*: proc(self: ptr IHTMLInputFileElement, p: ptr LONG): HRESULT {.stdcall.} + get_maxLength*: + proc(self: ptr IHTMLInputFileElement, p: ptr LONG): HRESULT {.stdcall.} select*: proc(self: ptr IHTMLInputFileElement): HRESULT {.stdcall.} - put_onchange*: proc(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.stdcall.} - get_onchange*: proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_onselect*: proc(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.stdcall.} - get_onselect*: proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_onchange*: + proc(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.stdcall.} + get_onchange*: + proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_onselect*: + proc(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.stdcall.} + get_onselect*: + proc(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLInputFileElement, v: BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IHTMLInputFileElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLOptionButtonElement* {.pure.} = object lpVtbl*: ptr IHTMLOptionButtonElementVtbl + IHTMLOptionButtonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_value*: proc(self: ptr IHTMLOptionButtonElement, v: BSTR): HRESULT {.stdcall.} - get_value*: proc(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.stdcall.} - get_type*: proc(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.stdcall.} + get_value*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.stdcall.} + get_type*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLOptionButtonElement, v: BSTR): HRESULT {.stdcall.} - get_name*: proc(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.stdcall.} - put_checked*: proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_checked*: proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_defaultChecked*: proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_defaultChecked*: proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_onchange*: proc(self: ptr IHTMLOptionButtonElement, v: VARIANT): HRESULT {.stdcall.} - get_onchange*: proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_status*: proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_indeterminate*: proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_indeterminate*: proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLOptionButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_name*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.stdcall.} + put_checked*: + proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_checked*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_defaultChecked*: + proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_defaultChecked*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_onchange*: + proc(self: ptr IHTMLOptionButtonElement, v: VARIANT): HRESULT {.stdcall.} + get_onchange*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_status*: + proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_indeterminate*: + proc(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_indeterminate*: + proc(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLOptionButtonElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + IHTMLInputImage* {.pure.} = object lpVtbl*: ptr IHTMLInputImageVtbl + IHTMLInputImageVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.stdcall.} put_disabled*: proc(self: ptr IHTMLInputImage, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.stdcall.} get_border*: proc(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.stdcall.} put_vspace*: proc(self: ptr IHTMLInputImage, v: LONG): HRESULT {.stdcall.} @@ -7957,7 +10877,8 @@ put_dynsrc*: proc(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.stdcall.} get_dynsrc*: proc(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.stdcall.} - get_complete*: proc(self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_complete*: + proc(self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_loop*: proc(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.stdcall.} get_loop*: proc(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.stdcall.} put_align*: proc(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.stdcall.} @@ -7976,11 +10897,15 @@ get_height*: proc(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.stdcall.} put_start*: proc(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.stdcall.} get_start*: proc(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLInputRangeElement* {.pure.} = object lpVtbl*: ptr IHTMLInputRangeElementVtbl + IHTMLInputRangeElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_disabled*: proc(self: ptr IHTMLInputRangeElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLInputRangeElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLInputRangeElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLInputRangeElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.stdcall.} put_alt*: proc(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.stdcall.} get_alt*: proc(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -7994,15 +10919,20 @@ get_max*: proc(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.stdcall.} put_step*: proc(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.stdcall.} get_step*: proc(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.stdcall.} - put_valueAsNumber*: proc(self: ptr IHTMLInputRangeElement, v: float64): HRESULT {.stdcall.} - get_valueAsNumber*: proc(self: ptr IHTMLInputRangeElement, p: ptr float64): HRESULT {.stdcall.} + put_valueAsNumber*: + proc(self: ptr IHTMLInputRangeElement, v: float64): HRESULT {.stdcall.} + get_valueAsNumber*: + proc(self: ptr IHTMLInputRangeElement, p: ptr float64): HRESULT {.stdcall.} stepUp*: proc(self: ptr IHTMLInputRangeElement, n: LONG): HRESULT {.stdcall.} stepDown*: proc(self: ptr IHTMLInputRangeElement, n: LONG): HRESULT {.stdcall.} + DispHTMLInputElement* {.pure.} = object lpVtbl*: ptr DispHTMLInputElementVtbl + DispHTMLInputElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLTextAreaElement* {.pure.} = object lpVtbl*: ptr IHTMLTextAreaElementVtbl + IHTMLTextAreaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.stdcall.} @@ -8010,42 +10940,67 @@ put_name*: proc(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.stdcall.} put_status*: proc(self: ptr IHTMLTextAreaElement, v: VARIANT): HRESULT {.stdcall.} - get_status*: proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLTextAreaElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} - put_defaultValue*: proc(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.stdcall.} - get_defaultValue*: proc(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLTextAreaElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + put_defaultValue*: + proc(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.stdcall.} + get_defaultValue*: + proc(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.stdcall.} select*: proc(self: ptr IHTMLTextAreaElement): HRESULT {.stdcall.} put_onchange*: proc(self: ptr IHTMLTextAreaElement, v: VARIANT): HRESULT {.stdcall.} - get_onchange*: proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onchange*: + proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onselect*: proc(self: ptr IHTMLTextAreaElement, v: VARIANT): HRESULT {.stdcall.} - get_onselect*: proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_readOnly*: proc(self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_readOnly*: proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_onselect*: + proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_readOnly*: + proc(self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_readOnly*: + proc(self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_rows*: proc(self: ptr IHTMLTextAreaElement, v: LONG): HRESULT {.stdcall.} get_rows*: proc(self: ptr IHTMLTextAreaElement, p: ptr LONG): HRESULT {.stdcall.} put_cols*: proc(self: ptr IHTMLTextAreaElement, v: LONG): HRESULT {.stdcall.} get_cols*: proc(self: ptr IHTMLTextAreaElement, p: ptr LONG): HRESULT {.stdcall.} put_wrap*: proc(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.stdcall.} get_wrap*: proc(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLTextAreaElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} + createTextRange*: proc( + self: ptr IHTMLTextAreaElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + IHTMLTextAreaElement2* {.pure.} = object lpVtbl*: ptr IHTMLTextAreaElement2Vtbl + IHTMLTextAreaElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_selectionStart*: proc(self: ptr IHTMLTextAreaElement2, v: LONG): HRESULT {.stdcall.} - get_selectionStart*: proc(self: ptr IHTMLTextAreaElement2, p: ptr LONG): HRESULT {.stdcall.} - put_selectionEnd*: proc(self: ptr IHTMLTextAreaElement2, v: LONG): HRESULT {.stdcall.} - get_selectionEnd*: proc(self: ptr IHTMLTextAreaElement2, p: ptr LONG): HRESULT {.stdcall.} - setSelectionRange*: proc(self: ptr IHTMLTextAreaElement2, start: LONG, `end`: LONG): HRESULT {.stdcall.} + put_selectionStart*: + proc(self: ptr IHTMLTextAreaElement2, v: LONG): HRESULT {.stdcall.} + get_selectionStart*: + proc(self: ptr IHTMLTextAreaElement2, p: ptr LONG): HRESULT {.stdcall.} + put_selectionEnd*: + proc(self: ptr IHTMLTextAreaElement2, v: LONG): HRESULT {.stdcall.} + get_selectionEnd*: + proc(self: ptr IHTMLTextAreaElement2, p: ptr LONG): HRESULT {.stdcall.} + setSelectionRange*: proc( + self: ptr IHTMLTextAreaElement2, start: LONG, `end`: LONG + ): HRESULT {.stdcall.} + DispHTMLTextAreaElement* {.pure.} = object lpVtbl*: ptr DispHTMLTextAreaElementVtbl + DispHTMLTextAreaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLRichtextElement* {.pure.} = object lpVtbl*: ptr DispHTMLRichtextElementVtbl + DispHTMLRichtextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLButtonElement* {.pure.} = object lpVtbl*: ptr IHTMLButtonElementVtbl + IHTMLButtonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.stdcall.} put_value*: proc(self: ptr IHTMLButtonElement, v: BSTR): HRESULT {.stdcall.} @@ -8054,37 +11009,54 @@ get_name*: proc(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.stdcall.} put_status*: proc(self: ptr IHTMLButtonElement, v: VARIANT): HRESULT {.stdcall.} get_status*: proc(self: ptr IHTMLButtonElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} - createTextRange*: proc(self: ptr IHTMLButtonElement, range: ptr ptr IHTMLTxtRange): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLButtonElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLButtonElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} + createTextRange*: proc( + self: ptr IHTMLButtonElement, range: ptr ptr IHTMLTxtRange + ): HRESULT {.stdcall.} + IHTMLButtonElement2* {.pure.} = object lpVtbl*: ptr IHTMLButtonElement2Vtbl + IHTMLButtonElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr IHTMLButtonElement2, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLButtonElement2, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLButtonElement* {.pure.} = object lpVtbl*: ptr DispHTMLButtonElementVtbl + DispHTMLButtonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLMarqueeElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLMarqueeElementEvents2Vtbl + HTMLMarqueeElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLMarqueeElementEvents* {.pure.} = object lpVtbl*: ptr HTMLMarqueeElementEventsVtbl + HTMLMarqueeElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLMarqueeElement* {.pure.} = object lpVtbl*: ptr IHTMLMarqueeElementVtbl + IHTMLMarqueeElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_bgColor*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.stdcall.} - get_bgColor*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_bgColor*: + proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} put_scrollDelay*: proc(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.stdcall.} - get_scrollDelay*: proc(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.stdcall.} + get_scrollDelay*: + proc(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.stdcall.} put_direction*: proc(self: ptr IHTMLMarqueeElement, v: BSTR): HRESULT {.stdcall.} - get_direction*: proc(self: ptr IHTMLMarqueeElement, p: ptr BSTR): HRESULT {.stdcall.} + get_direction*: + proc(self: ptr IHTMLMarqueeElement, p: ptr BSTR): HRESULT {.stdcall.} put_behavior*: proc(self: ptr IHTMLMarqueeElement, v: BSTR): HRESULT {.stdcall.} get_behavior*: proc(self: ptr IHTMLMarqueeElement, p: ptr BSTR): HRESULT {.stdcall.} put_scrollAmount*: proc(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.stdcall.} - get_scrollAmount*: proc(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.stdcall.} + get_scrollAmount*: + proc(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.stdcall.} put_loop*: proc(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.stdcall.} get_loop*: proc(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.stdcall.} put_vspace*: proc(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.stdcall.} @@ -8092,44 +11064,61 @@ put_hspace*: proc(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.stdcall.} get_hspace*: proc(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.stdcall.} put_onfinish*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.stdcall.} - get_onfinish*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onfinish*: + proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onstart*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.stdcall.} - get_onstart*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onstart*: + proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onbounce*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.stdcall.} - get_onbounce*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbounce*: + proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.stdcall.} - get_height*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_trueSpeed*: proc(self: ptr IHTMLMarqueeElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_trueSpeed*: proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_height*: + proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_trueSpeed*: + proc(self: ptr IHTMLMarqueeElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_trueSpeed*: + proc(self: ptr IHTMLMarqueeElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} start*: proc(self: ptr IHTMLMarqueeElement): HRESULT {.stdcall.} stop*: proc(self: ptr IHTMLMarqueeElement): HRESULT {.stdcall.} + DispHTMLMarqueeElement* {.pure.} = object lpVtbl*: ptr DispHTMLMarqueeElementVtbl + DispHTMLMarqueeElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLHtmlElement* {.pure.} = object lpVtbl*: ptr IHTMLHtmlElementVtbl + IHTMLHtmlElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_version*: proc(self: ptr IHTMLHtmlElement, v: BSTR): HRESULT {.stdcall.} get_version*: proc(self: ptr IHTMLHtmlElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLHeadElement* {.pure.} = object lpVtbl*: ptr IHTMLHeadElementVtbl + IHTMLHeadElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_profile*: proc(self: ptr IHTMLHeadElement, v: BSTR): HRESULT {.stdcall.} get_profile*: proc(self: ptr IHTMLHeadElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLHeadElement2* {.pure.} = object lpVtbl*: ptr IHTMLHeadElement2Vtbl + IHTMLHeadElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_profile*: proc(self: ptr IHTMLHeadElement2, v: BSTR): HRESULT {.stdcall.} get_profile*: proc(self: ptr IHTMLHeadElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTitleElement* {.pure.} = object lpVtbl*: ptr IHTMLTitleElementVtbl + IHTMLTitleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_text*: proc(self: ptr IHTMLTitleElement, v: BSTR): HRESULT {.stdcall.} get_text*: proc(self: ptr IHTMLTitleElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLMetaElement* {.pure.} = object lpVtbl*: ptr IHTMLMetaElementVtbl + IHTMLMetaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_httpEquiv*: proc(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.stdcall.} get_httpEquiv*: proc(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -8141,157 +11130,264 @@ get_url*: proc(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.stdcall.} put_charset*: proc(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.stdcall.} get_charset*: proc(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLMetaElement2* {.pure.} = object lpVtbl*: ptr IHTMLMetaElement2Vtbl + IHTMLMetaElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_scheme*: proc(self: ptr IHTMLMetaElement2, v: BSTR): HRESULT {.stdcall.} get_scheme*: proc(self: ptr IHTMLMetaElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLMetaElement3* {.pure.} = object lpVtbl*: ptr IHTMLMetaElement3Vtbl + IHTMLMetaElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_url*: proc(self: ptr IHTMLMetaElement3, v: BSTR): HRESULT {.stdcall.} get_url*: proc(self: ptr IHTMLMetaElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLBaseElement* {.pure.} = object lpVtbl*: ptr IHTMLBaseElementVtbl + IHTMLBaseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLBaseElement, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLBaseElement, p: ptr BSTR): HRESULT {.stdcall.} put_target*: proc(self: ptr IHTMLBaseElement, v: BSTR): HRESULT {.stdcall.} get_target*: proc(self: ptr IHTMLBaseElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLBaseElement2* {.pure.} = object lpVtbl*: ptr IHTMLBaseElement2Vtbl + IHTMLBaseElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_href*: proc(self: ptr IHTMLBaseElement2, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLBaseElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLIsIndexElement* {.pure.} = object lpVtbl*: ptr IHTMLIsIndexElementVtbl + IHTMLIsIndexElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_prompt*: proc(self: ptr IHTMLIsIndexElement, v: BSTR): HRESULT {.stdcall.} get_prompt*: proc(self: ptr IHTMLIsIndexElement, p: ptr BSTR): HRESULT {.stdcall.} put_action*: proc(self: ptr IHTMLIsIndexElement, v: BSTR): HRESULT {.stdcall.} get_action*: proc(self: ptr IHTMLIsIndexElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLIsIndexElement2* {.pure.} = object lpVtbl*: ptr IHTMLIsIndexElement2Vtbl + IHTMLIsIndexElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_form*: proc(self: ptr IHTMLIsIndexElement2, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLIsIndexElement2, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + IHTMLNextIdElement* {.pure.} = object lpVtbl*: ptr IHTMLNextIdElementVtbl + IHTMLNextIdElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_n*: proc(self: ptr IHTMLNextIdElement, v: BSTR): HRESULT {.stdcall.} get_n*: proc(self: ptr IHTMLNextIdElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLHtmlElement* {.pure.} = object lpVtbl*: ptr DispHTMLHtmlElementVtbl + DispHTMLHtmlElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLHeadElement* {.pure.} = object lpVtbl*: ptr DispHTMLHeadElementVtbl + DispHTMLHeadElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTitleElement* {.pure.} = object lpVtbl*: ptr DispHTMLTitleElementVtbl + DispHTMLTitleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLMetaElement* {.pure.} = object lpVtbl*: ptr DispHTMLMetaElementVtbl + DispHTMLMetaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLBaseElement* {.pure.} = object lpVtbl*: ptr DispHTMLBaseElementVtbl + DispHTMLBaseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLIsIndexElement* {.pure.} = object lpVtbl*: ptr DispHTMLIsIndexElementVtbl + DispHTMLIsIndexElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLNextIdElement* {.pure.} = object lpVtbl*: ptr DispHTMLNextIdElementVtbl + DispHTMLNextIdElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLBaseFontElement* {.pure.} = object lpVtbl*: ptr IHTMLBaseFontElementVtbl + IHTMLBaseFontElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_color*: proc(self: ptr IHTMLBaseFontElement, v: VARIANT): HRESULT {.stdcall.} - get_color*: proc(self: ptr IHTMLBaseFontElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_color*: + proc(self: ptr IHTMLBaseFontElement, p: ptr VARIANT): HRESULT {.stdcall.} put_face*: proc(self: ptr IHTMLBaseFontElement, v: BSTR): HRESULT {.stdcall.} get_face*: proc(self: ptr IHTMLBaseFontElement, p: ptr BSTR): HRESULT {.stdcall.} put_size*: proc(self: ptr IHTMLBaseFontElement, v: LONG): HRESULT {.stdcall.} get_size*: proc(self: ptr IHTMLBaseFontElement, p: ptr LONG): HRESULT {.stdcall.} + DispHTMLBaseFontElement* {.pure.} = object lpVtbl*: ptr DispHTMLBaseFontElementVtbl + DispHTMLBaseFontElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLUnknownElement* {.pure.} = object lpVtbl*: ptr IHTMLUnknownElementVtbl + IHTMLUnknownElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLUnknownElement* {.pure.} = object lpVtbl*: ptr DispHTMLUnknownElementVtbl + DispHTMLUnknownElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IWebGeolocation* {.pure.} = object lpVtbl*: ptr IWebGeolocationVtbl + IWebGeolocationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - getCurrentPosition*: proc(self: ptr IWebGeolocation, successCallback: ptr IDispatch, errorCallback: ptr IDispatch, options: ptr IDispatch): HRESULT {.stdcall.} - watchPosition*: proc(self: ptr IWebGeolocation, successCallback: ptr IDispatch, errorCallback: ptr IDispatch, options: ptr IDispatch, watchId: ptr LONG): HRESULT {.stdcall.} + getCurrentPosition*: proc( + self: ptr IWebGeolocation, + successCallback: ptr IDispatch, + errorCallback: ptr IDispatch, + options: ptr IDispatch, + ): HRESULT {.stdcall.} + watchPosition*: proc( + self: ptr IWebGeolocation, + successCallback: ptr IDispatch, + errorCallback: ptr IDispatch, + options: ptr IDispatch, + watchId: ptr LONG, + ): HRESULT {.stdcall.} clearWatch*: proc(self: ptr IWebGeolocation, watchId: LONG): HRESULT {.stdcall.} + INavigatorGeolocation* {.pure.} = object lpVtbl*: ptr INavigatorGeolocationVtbl + INavigatorGeolocationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_geolocation*: proc(self: ptr INavigatorGeolocation, p: ptr ptr IWebGeolocation): HRESULT {.stdcall.} + get_geolocation*: proc( + self: ptr INavigatorGeolocation, p: ptr ptr IWebGeolocation + ): HRESULT {.stdcall.} + INavigatorDoNotTrack* {.pure.} = object lpVtbl*: ptr INavigatorDoNotTrackVtbl + INavigatorDoNotTrackVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_msDoNotTrack*: proc(self: ptr INavigatorDoNotTrack, p: ptr BSTR): HRESULT {.stdcall.} + get_msDoNotTrack*: + proc(self: ptr INavigatorDoNotTrack, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLHistory* {.pure.} = object lpVtbl*: ptr DispHTMLHistoryVtbl + DispHTMLHistoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispCPlugins* {.pure.} = object lpVtbl*: ptr DispCPluginsVtbl + DispCPluginsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLNavigator* {.pure.} = object lpVtbl*: ptr DispHTMLNavigatorVtbl + DispHTMLNavigatorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLLocation* {.pure.} = object lpVtbl*: ptr DispHTMLLocationVtbl + DispHTMLLocationVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLBookmarkCollection* {.pure.} = object lpVtbl*: ptr IHTMLBookmarkCollectionVtbl + IHTMLBookmarkCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLBookmarkCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLBookmarkCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLBookmarkCollection, index: LONG, pVarBookmark: ptr VARIANT): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLBookmarkCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLBookmarkCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLBookmarkCollection, index: LONG, pVarBookmark: ptr VARIANT + ): HRESULT {.stdcall.} + IHTMLDataTransfer* {.pure.} = object lpVtbl*: ptr IHTMLDataTransferVtbl + IHTMLDataTransferVtbl* {.pure, inheritable.} = object of IDispatchVtbl - setData*: proc(self: ptr IHTMLDataTransfer, format: BSTR, data: ptr VARIANT, pret: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getData*: proc(self: ptr IHTMLDataTransfer, format: BSTR, pvarRet: ptr VARIANT): HRESULT {.stdcall.} - clearData*: proc(self: ptr IHTMLDataTransfer, format: BSTR, pret: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setData*: proc( + self: ptr IHTMLDataTransfer, + format: BSTR, + data: ptr VARIANT, + pret: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getData*: proc( + self: ptr IHTMLDataTransfer, format: BSTR, pvarRet: ptr VARIANT + ): HRESULT {.stdcall.} + clearData*: proc( + self: ptr IHTMLDataTransfer, format: BSTR, pret: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} put_dropEffect*: proc(self: ptr IHTMLDataTransfer, v: BSTR): HRESULT {.stdcall.} get_dropEffect*: proc(self: ptr IHTMLDataTransfer, p: ptr BSTR): HRESULT {.stdcall.} put_effectAllowed*: proc(self: ptr IHTMLDataTransfer, v: BSTR): HRESULT {.stdcall.} - get_effectAllowed*: proc(self: ptr IHTMLDataTransfer, p: ptr BSTR): HRESULT {.stdcall.} + get_effectAllowed*: + proc(self: ptr IHTMLDataTransfer, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLEventObj2* {.pure.} = object lpVtbl*: ptr IHTMLEventObj2Vtbl + IHTMLEventObj2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - setAttribute*: proc(self: ptr IHTMLEventObj2, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IHTMLEventObj2, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IHTMLEventObj2, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IHTMLEventObj2, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IHTMLEventObj2, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, + ): HRESULT {.stdcall.} + removeAttribute*: proc( + self: ptr IHTMLEventObj2, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} put_propertyName*: proc(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.stdcall.} get_propertyName*: proc(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.stdcall.} - putref_bookmarks*: proc(self: ptr IHTMLEventObj2, v: ptr IHTMLBookmarkCollection): HRESULT {.stdcall.} - get_bookmarks*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLBookmarkCollection): HRESULT {.stdcall.} - putref_recordset*: proc(self: ptr IHTMLEventObj2, v: ptr IDispatch): HRESULT {.stdcall.} - get_recordset*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + putref_bookmarks*: proc( + self: ptr IHTMLEventObj2, v: ptr IHTMLBookmarkCollection + ): HRESULT {.stdcall.} + get_bookmarks*: proc( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLBookmarkCollection + ): HRESULT {.stdcall.} + putref_recordset*: + proc(self: ptr IHTMLEventObj2, v: ptr IDispatch): HRESULT {.stdcall.} + get_recordset*: + proc(self: ptr IHTMLEventObj2, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_dataFld*: proc(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.stdcall.} get_dataFld*: proc(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.stdcall.} - putref_boundElements*: proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_boundElements*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + putref_boundElements*: + proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_boundElements*: proc( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} put_repeat*: proc(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_repeat*: proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_repeat*: + proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_srcUrn*: proc(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.stdcall.} get_srcUrn*: proc(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.stdcall.} - putref_srcElement*: proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.stdcall.} - get_srcElement*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + putref_srcElement*: + proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.stdcall.} + get_srcElement*: + proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} put_altKey*: proc(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_altKey*: proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_altKey*: + proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_ctrlKey*: proc(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_ctrlKey*: proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ctrlKey*: + proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_shiftKey*: proc(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_shiftKey*: proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - putref_fromElement*: proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.stdcall.} - get_fromElement*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - putref_toElement*: proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.stdcall.} - get_toElement*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_shiftKey*: + proc(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + putref_fromElement*: + proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.stdcall.} + get_fromElement*: + proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + putref_toElement*: + proc(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.stdcall.} + get_toElement*: + proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} put_button*: proc(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.stdcall.} get_button*: proc(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.stdcall.} put_type*: proc(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.stdcall.} @@ -8316,103 +11412,173 @@ get_screenX*: proc(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.stdcall.} put_screenY*: proc(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.stdcall.} get_screenY*: proc(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.stdcall.} - putref_srcFilter*: proc(self: ptr IHTMLEventObj2, v: ptr IDispatch): HRESULT {.stdcall.} - get_srcFilter*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_dataTransfer*: proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLDataTransfer): HRESULT {.stdcall.} + putref_srcFilter*: + proc(self: ptr IHTMLEventObj2, v: ptr IDispatch): HRESULT {.stdcall.} + get_srcFilter*: + proc(self: ptr IHTMLEventObj2, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_dataTransfer*: + proc(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLDataTransfer): HRESULT {.stdcall.} + IHTMLEventObj3* {.pure.} = object lpVtbl*: ptr IHTMLEventObj3Vtbl + IHTMLEventObj3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_contentOverflow*: proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_contentOverflow*: + proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_shiftLeft*: proc(self: ptr IHTMLEventObj3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_shiftLeft*: proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_shiftLeft*: + proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_altLeft*: proc(self: ptr IHTMLEventObj3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_altLeft*: proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_altLeft*: + proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_ctrlLeft*: proc(self: ptr IHTMLEventObj3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_ctrlLeft*: proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_imeCompositionChange*: proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} - get_imeNotifyCommand*: proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} - get_imeNotifyData*: proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} - get_imeRequest*: proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} - get_imeRequestData*: proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} - get_keyboardLayout*: proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} - get_behaviorCookie*: proc(self: ptr IHTMLEventObj3, p: ptr LONG): HRESULT {.stdcall.} + get_ctrlLeft*: + proc(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_imeCompositionChange*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} + get_imeNotifyCommand*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} + get_imeNotifyData*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} + get_imeRequest*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} + get_imeRequestData*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} + get_keyboardLayout*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.stdcall.} + get_behaviorCookie*: + proc(self: ptr IHTMLEventObj3, p: ptr LONG): HRESULT {.stdcall.} get_behaviorPart*: proc(self: ptr IHTMLEventObj3, p: ptr LONG): HRESULT {.stdcall.} get_nextPage*: proc(self: ptr IHTMLEventObj3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLEventObj4* {.pure.} = object lpVtbl*: ptr IHTMLEventObj4Vtbl + IHTMLEventObj4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_wheelDelta*: proc(self: ptr IHTMLEventObj4, p: ptr LONG): HRESULT {.stdcall.} + IHTMLEventObj5* {.pure.} = object lpVtbl*: ptr IHTMLEventObj5Vtbl + IHTMLEventObj5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_url*: proc(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.stdcall.} get_url*: proc(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.stdcall.} put_data*: proc(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.stdcall.} get_data*: proc(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.stdcall.} - get_source*: proc(self: ptr IHTMLEventObj5, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_source*: + proc(self: ptr IHTMLEventObj5, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_origin*: proc(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.stdcall.} get_origin*: proc(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.stdcall.} put_issession*: proc(self: ptr IHTMLEventObj5, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_issession*: proc(self: ptr IHTMLEventObj5, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_issession*: + proc(self: ptr IHTMLEventObj5, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLEventObj6* {.pure.} = object lpVtbl*: ptr IHTMLEventObj6Vtbl + IHTMLEventObj6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_actionURL*: proc(self: ptr IHTMLEventObj6, p: ptr BSTR): HRESULT {.stdcall.} get_buttonID*: proc(self: ptr IHTMLEventObj6, p: ptr LONG): HRESULT {.stdcall.} + DispCEventObj* {.pure.} = object lpVtbl*: ptr DispCEventObjVtbl + DispCEventObjVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleMedia* {.pure.} = object lpVtbl*: ptr IHTMLStyleMediaVtbl + IHTMLStyleMediaVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_type*: proc(self: ptr IHTMLStyleMedia, p: ptr BSTR): HRESULT {.stdcall.} - matchMedium*: proc(self: ptr IHTMLStyleMedia, mediaQuery: BSTR, matches: ptr VARIANT_BOOL): HRESULT {.stdcall.} + matchMedium*: proc( + self: ptr IHTMLStyleMedia, mediaQuery: BSTR, matches: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + DispHTMLStyleMedia* {.pure.} = object lpVtbl*: ptr DispHTMLStyleMediaVtbl + DispHTMLStyleMediaVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLWindowEvents3* {.pure.} = object lpVtbl*: ptr HTMLWindowEvents3Vtbl + HTMLWindowEvents3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLWindowEvents2* {.pure.} = object lpVtbl*: ptr HTMLWindowEvents2Vtbl + HTMLWindowEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLWindowEvents* {.pure.} = object lpVtbl*: ptr HTMLWindowEventsVtbl + HTMLWindowEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLScreen2* {.pure.} = object lpVtbl*: ptr IHTMLScreen2Vtbl + IHTMLScreen2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_logicalXDPI*: proc(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.stdcall.} get_logicalYDPI*: proc(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.stdcall.} get_deviceXDPI*: proc(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.stdcall.} get_deviceYDPI*: proc(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.stdcall.} + IHTMLScreen3* {.pure.} = object lpVtbl*: ptr IHTMLScreen3Vtbl + IHTMLScreen3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_systemXDPI*: proc(self: ptr IHTMLScreen3, p: ptr LONG): HRESULT {.stdcall.} get_systemYDPI*: proc(self: ptr IHTMLScreen3, p: ptr LONG): HRESULT {.stdcall.} + IHTMLScreen4* {.pure.} = object lpVtbl*: ptr IHTMLScreen4Vtbl + IHTMLScreen4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_pixelDepth*: proc(self: ptr IHTMLScreen4, p: ptr LONG): HRESULT {.stdcall.} + IHTMLWindow3* {.pure.} = object lpVtbl*: ptr IHTMLWindow3Vtbl + IHTMLWindow3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_screenLeft*: proc(self: ptr IHTMLWindow3, p: ptr LONG): HRESULT {.stdcall.} get_screenTop*: proc(self: ptr IHTMLWindow3, p: ptr LONG): HRESULT {.stdcall.} - attachEvent*: proc(self: ptr IHTMLWindow3, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - detachEvent*: proc(self: ptr IHTMLWindow3, event: BSTR, pDisp: ptr IDispatch): HRESULT {.stdcall.} - setTimeout*: proc(self: ptr IHTMLWindow3, expression: ptr VARIANT, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.stdcall.} - setInterval*: proc(self: ptr IHTMLWindow3, expression: ptr VARIANT, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.stdcall.} + attachEvent*: proc( + self: ptr IHTMLWindow3, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + detachEvent*: proc( + self: ptr IHTMLWindow3, event: BSTR, pDisp: ptr IDispatch + ): HRESULT {.stdcall.} + setTimeout*: proc( + self: ptr IHTMLWindow3, + expression: ptr VARIANT, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, + ): HRESULT {.stdcall.} + setInterval*: proc( + self: ptr IHTMLWindow3, + expression: ptr VARIANT, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, + ): HRESULT {.stdcall.} print*: proc(self: ptr IHTMLWindow3): HRESULT {.stdcall.} put_onbeforeprint*: proc(self: ptr IHTMLWindow3, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeprint*: proc(self: ptr IHTMLWindow3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onbeforeprint*: + proc(self: ptr IHTMLWindow3, p: ptr VARIANT): HRESULT {.stdcall.} put_onafterprint*: proc(self: ptr IHTMLWindow3, v: VARIANT): HRESULT {.stdcall.} get_onafterprint*: proc(self: ptr IHTMLWindow3, p: ptr VARIANT): HRESULT {.stdcall.} - get_clipboardData*: proc(self: ptr IHTMLWindow3, p: ptr ptr IHTMLDataTransfer): HRESULT {.stdcall.} - showModelessDialog*: proc(self: ptr IHTMLWindow3, url: BSTR, varArgIn: ptr VARIANT, options: ptr VARIANT, pDialog: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + get_clipboardData*: + proc(self: ptr IHTMLWindow3, p: ptr ptr IHTMLDataTransfer): HRESULT {.stdcall.} + showModelessDialog*: proc( + self: ptr IHTMLWindow3, + url: BSTR, + varArgIn: ptr VARIANT, + options: ptr VARIANT, + pDialog: ptr ptr IHTMLWindow2, + ): HRESULT {.stdcall.} + IHTMLFrameBase* {.pure.} = object lpVtbl*: ptr IHTMLFrameBaseVtbl + IHTMLFrameBaseVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.stdcall.} @@ -8423,56 +11589,93 @@ put_frameBorder*: proc(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.stdcall.} get_frameBorder*: proc(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.stdcall.} put_frameSpacing*: proc(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.stdcall.} - get_frameSpacing*: proc(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.stdcall.} + get_frameSpacing*: + proc(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.stdcall.} put_marginWidth*: proc(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.stdcall.} - get_marginWidth*: proc(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginWidth*: + proc(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.stdcall.} put_marginHeight*: proc(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.stdcall.} - get_marginHeight*: proc(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.stdcall.} + get_marginHeight*: + proc(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.stdcall.} put_noResize*: proc(self: ptr IHTMLFrameBase, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noResize*: proc(self: ptr IHTMLFrameBase, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noResize*: + proc(self: ptr IHTMLFrameBase, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_scrolling*: proc(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.stdcall.} get_scrolling*: proc(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLWindow4* {.pure.} = object lpVtbl*: ptr IHTMLWindow4Vtbl + IHTMLWindow4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - createPopup*: proc(self: ptr IHTMLWindow4, varArgIn: ptr VARIANT, ppPopup: ptr ptr IDispatch): HRESULT {.stdcall.} - get_frameElement*: proc(self: ptr IHTMLWindow4, p: ptr ptr IHTMLFrameBase): HRESULT {.stdcall.} + createPopup*: proc( + self: ptr IHTMLWindow4, varArgIn: ptr VARIANT, ppPopup: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_frameElement*: + proc(self: ptr IHTMLWindow4, p: ptr ptr IHTMLFrameBase): HRESULT {.stdcall.} + IHTMLWindow5* {.pure.} = object lpVtbl*: ptr IHTMLWindow5Vtbl + IHTMLWindow5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_XMLHttpRequest*: proc(self: ptr IHTMLWindow5, v: VARIANT): HRESULT {.stdcall.} - get_XMLHttpRequest*: proc(self: ptr IHTMLWindow5, p: ptr VARIANT): HRESULT {.stdcall.} + get_XMLHttpRequest*: + proc(self: ptr IHTMLWindow5, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLStorage* {.pure.} = object lpVtbl*: ptr IHTMLStorageVtbl + IHTMLStorageVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IHTMLStorage, p: ptr LONG): HRESULT {.stdcall.} get_remainingSpace*: proc(self: ptr IHTMLStorage, p: ptr LONG): HRESULT {.stdcall.} key*: proc(self: ptr IHTMLStorage, lIndex: LONG, a: ptr BSTR): HRESULT {.stdcall.} - getItem*: proc(self: ptr IHTMLStorage, bstrKey: BSTR, a: ptr VARIANT): HRESULT {.stdcall.} - setItem*: proc(self: ptr IHTMLStorage, bstrKey: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} + getItem*: + proc(self: ptr IHTMLStorage, bstrKey: BSTR, a: ptr VARIANT): HRESULT {.stdcall.} + setItem*: + proc(self: ptr IHTMLStorage, bstrKey: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} removeItem*: proc(self: ptr IHTMLStorage, bstrKey: BSTR): HRESULT {.stdcall.} clear*: proc(self: ptr IHTMLStorage): HRESULT {.stdcall.} + IHTMLWindow6* {.pure.} = object lpVtbl*: ptr IHTMLWindow6Vtbl + IHTMLWindow6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_XDomainRequest*: proc(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.stdcall.} - get_XDomainRequest*: proc(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.stdcall.} - get_sessionStorage*: proc(self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage): HRESULT {.stdcall.} - get_localStorage*: proc(self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage): HRESULT {.stdcall.} + get_XDomainRequest*: + proc(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.stdcall.} + get_sessionStorage*: + proc(self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage): HRESULT {.stdcall.} + get_localStorage*: + proc(self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage): HRESULT {.stdcall.} put_onhashchange*: proc(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.stdcall.} get_onhashchange*: proc(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.stdcall.} - get_maxConnectionsPerServer*: proc(self: ptr IHTMLWindow6, p: ptr LONG): HRESULT {.stdcall.} - postMessage*: proc(self: ptr IHTMLWindow6, msg: BSTR, targetOrigin: VARIANT): HRESULT {.stdcall.} - toStaticHTML*: proc(self: ptr IHTMLWindow6, bstrHTML: BSTR, pbstrStaticHTML: ptr BSTR): HRESULT {.stdcall.} + get_maxConnectionsPerServer*: + proc(self: ptr IHTMLWindow6, p: ptr LONG): HRESULT {.stdcall.} + postMessage*: proc( + self: ptr IHTMLWindow6, msg: BSTR, targetOrigin: VARIANT + ): HRESULT {.stdcall.} + toStaticHTML*: proc( + self: ptr IHTMLWindow6, bstrHTML: BSTR, pbstrStaticHTML: ptr BSTR + ): HRESULT {.stdcall.} put_onmessage*: proc(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.stdcall.} get_onmessage*: proc(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.stdcall.} - msWriteProfilerMark*: proc(self: ptr IHTMLWindow6, bstrProfilerMarkName: BSTR): HRESULT {.stdcall.} + msWriteProfilerMark*: + proc(self: ptr IHTMLWindow6, bstrProfilerMarkName: BSTR): HRESULT {.stdcall.} + IHTMLWindow7* {.pure.} = object lpVtbl*: ptr IHTMLWindow7Vtbl + IHTMLWindow7Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - getSelection*: proc(self: ptr IHTMLWindow7, ppIHTMLSelection: ptr ptr IHTMLSelection): HRESULT {.stdcall.} - getComputedStyle*: proc(self: ptr IHTMLWindow7, varArgIn: ptr IHTMLDOMNode, bstrPseudoElt: BSTR, ppComputedStyle: ptr ptr IHTMLCSSStyleDeclaration): HRESULT {.stdcall.} - get_styleMedia*: proc(self: ptr IHTMLWindow7, p: ptr ptr IHTMLStyleMedia): HRESULT {.stdcall.} + getSelection*: proc( + self: ptr IHTMLWindow7, ppIHTMLSelection: ptr ptr IHTMLSelection + ): HRESULT {.stdcall.} + getComputedStyle*: proc( + self: ptr IHTMLWindow7, + varArgIn: ptr IHTMLDOMNode, + bstrPseudoElt: BSTR, + ppComputedStyle: ptr ptr IHTMLCSSStyleDeclaration, + ): HRESULT {.stdcall.} + get_styleMedia*: + proc(self: ptr IHTMLWindow7, p: ptr ptr IHTMLStyleMedia): HRESULT {.stdcall.} put_performance*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_performance*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} get_innerWidth*: proc(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.stdcall.} @@ -8488,13 +11691,15 @@ put_oncanplay*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_oncanplay*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_oncanplaythrough*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} - get_oncanplaythrough*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + get_oncanplaythrough*: + proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onchange*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onchange*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onclick*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onclick*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_oncontextmenu*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} - get_oncontextmenu*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + get_oncontextmenu*: + proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondblclick*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_ondblclick*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondrag*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} @@ -8512,7 +11717,8 @@ put_ondrop*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_ondrop*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_ondurationchange*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} - get_ondurationchange*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondurationchange*: + proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocusin*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onfocusin*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocusout*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} @@ -8532,7 +11738,8 @@ put_onloadeddata*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onloadeddata*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onloadedmetadata*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} - get_onloadedmetadata*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onloadedmetadata*: + proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onloadstart*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onloadstart*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onmousedown*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} @@ -8559,8 +11766,10 @@ get_onprogress*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onratechange*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onratechange*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onreset*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onreset*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onseeked*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} @@ -8586,173 +11795,309 @@ put_onplaying*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onplaying*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onvolumechange*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} - get_onvolumechange*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + get_onvolumechange*: + proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} put_onwaiting*: proc(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.stdcall.} get_onwaiting*: proc(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLApplicationCache* {.pure.} = object lpVtbl*: ptr IHTMLApplicationCacheVtbl + IHTMLApplicationCacheVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_status*: proc(self: ptr IHTMLApplicationCache, p: ptr LONG): HRESULT {.stdcall.} - put_onchecking*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_onchecking*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_onchecking*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_onchecking*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} put_onerror*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_onerror*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} - put_onnoupdate*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_onnoupdate*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondownloading*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_ondownloading*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} - put_onprogress*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_onprogress*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} - put_onupdateready*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_onupdateready*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} - put_oncached*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_oncached*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} - put_onobsolete*: proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} - get_onobsolete*: proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + get_onerror*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_onnoupdate*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_onnoupdate*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondownloading*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_ondownloading*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_onprogress*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_onprogress*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_onupdateready*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_onupdateready*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_oncached*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_oncached*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} + put_onobsolete*: + proc(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.stdcall.} + get_onobsolete*: + proc(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.stdcall.} update*: proc(self: ptr IHTMLApplicationCache): HRESULT {.stdcall.} swapCache*: proc(self: ptr IHTMLApplicationCache): HRESULT {.stdcall.} abort*: proc(self: ptr IHTMLApplicationCache): HRESULT {.stdcall.} + IHTMLWindow8* {.pure.} = object lpVtbl*: ptr IHTMLWindow8Vtbl + IHTMLWindow8Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_onmspointerdown*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerdown*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerdown*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointermove*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointermove*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointermove*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerup*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerup*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerup*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerover*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerover*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerover*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerout*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerout*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointercancel*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointercancel*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerout*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointercancel*: + proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} + get_onmspointercancel*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerhover*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerhover*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerhover*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgesturestart*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturestart*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturechange*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturechange*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgesturestart*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturechange*: + proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturechange*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgestureend*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgestureend*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgestureend*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgesturehold*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturehold*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgesturehold*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgesturetap*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturetap*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturedoubletap*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturedoubletap*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgesturetap*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturedoubletap*: + proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturedoubletap*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsinertiastart*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} - get_onmsinertiastart*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} - get_applicationCache*: proc(self: ptr IHTMLWindow8, p: ptr ptr IHTMLApplicationCache): HRESULT {.stdcall.} + get_onmsinertiastart*: + proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + get_applicationCache*: proc( + self: ptr IHTMLWindow8, p: ptr ptr IHTMLApplicationCache + ): HRESULT {.stdcall.} put_onpopstate*: proc(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.stdcall.} get_onpopstate*: proc(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLScreen* {.pure.} = object lpVtbl*: ptr DispHTMLScreenVtbl + DispHTMLScreenVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLWindow2* {.pure.} = object lpVtbl*: ptr DispHTMLWindow2Vtbl + DispHTMLWindow2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLWindowProxy* {.pure.} = object lpVtbl*: ptr DispHTMLWindowProxyVtbl + DispHTMLWindowProxyVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDocumentCompatibleInfo* {.pure.} = object lpVtbl*: ptr IHTMLDocumentCompatibleInfoVtbl + IHTMLDocumentCompatibleInfoVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_userAgent*: proc(self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR): HRESULT {.stdcall.} - get_version*: proc(self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR): HRESULT {.stdcall.} + get_userAgent*: + proc(self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR): HRESULT {.stdcall.} + get_version*: + proc(self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLDocumentCompatibleInfoCollection* {.pure.} = object lpVtbl*: ptr IHTMLDocumentCompatibleInfoCollectionVtbl + IHTMLDocumentCompatibleInfoCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLDocumentCompatibleInfoCollection, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLDocumentCompatibleInfoCollection, index: LONG, compatibleInfo: ptr ptr IHTMLDocumentCompatibleInfo): HRESULT {.stdcall.} + get_length*: proc( + self: ptr IHTMLDocumentCompatibleInfoCollection, p: ptr LONG + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLDocumentCompatibleInfoCollection, + index: LONG, + compatibleInfo: ptr ptr IHTMLDocumentCompatibleInfo, + ): HRESULT {.stdcall.} + DispHTMLDocumentCompatibleInfo* {.pure.} = object lpVtbl*: ptr DispHTMLDocumentCompatibleInfoVtbl + DispHTMLDocumentCompatibleInfoVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLDocumentCompatibleInfoCollection* {.pure.} = object lpVtbl*: ptr DispHTMLDocumentCompatibleInfoCollectionVtbl + DispHTMLDocumentCompatibleInfoCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLDocumentEvents4* {.pure.} = object lpVtbl*: ptr HTMLDocumentEvents4Vtbl + HTMLDocumentEvents4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLDocumentEvents3* {.pure.} = object lpVtbl*: ptr HTMLDocumentEvents3Vtbl + HTMLDocumentEvents3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLDocumentEvents2* {.pure.} = object lpVtbl*: ptr HTMLDocumentEvents2Vtbl + HTMLDocumentEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLDocumentEvents* {.pure.} = object lpVtbl*: ptr HTMLDocumentEventsVtbl + HTMLDocumentEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDocument3* {.pure.} = object lpVtbl*: ptr IHTMLDocument3Vtbl + IHTMLDocument3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl releaseCapture*: proc(self: ptr IHTMLDocument3): HRESULT {.stdcall.} recalc*: proc(self: ptr IHTMLDocument3, fForce: VARIANT_BOOL): HRESULT {.stdcall.} - createTextNode*: proc(self: ptr IHTMLDocument3, text: BSTR, newTextNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_documentElement*: proc(self: ptr IHTMLDocument3, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + createTextNode*: proc( + self: ptr IHTMLDocument3, text: BSTR, newTextNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} + get_documentElement*: + proc(self: ptr IHTMLDocument3, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} get_uniqueID*: proc(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.stdcall.} - attachEvent*: proc(self: ptr IHTMLDocument3, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - detachEvent*: proc(self: ptr IHTMLDocument3, event: BSTR, pDisp: ptr IDispatch): HRESULT {.stdcall.} + attachEvent*: proc( + self: ptr IHTMLDocument3, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + detachEvent*: proc( + self: ptr IHTMLDocument3, event: BSTR, pDisp: ptr IDispatch + ): HRESULT {.stdcall.} put_onrowsdelete*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_onrowsdelete*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onrowsdelete*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} put_onrowsinserted*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_onrowsinserted*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + get_onrowsinserted*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} put_oncellchange*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_oncellchange*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondatasetchanged*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_ondatasetchanged*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondataavailable*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_ondataavailable*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} - put_ondatasetcomplete*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_ondatasetcomplete*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} - put_onpropertychange*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_onpropertychange*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + get_oncellchange*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondatasetchanged*: + proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} + get_ondatasetchanged*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondataavailable*: + proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} + get_ondataavailable*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + put_ondatasetcomplete*: + proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} + get_ondatasetcomplete*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + put_onpropertychange*: + proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} + get_onpropertychange*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} put_dir*: proc(self: ptr IHTMLDocument3, v: BSTR): HRESULT {.stdcall.} get_dir*: proc(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.stdcall.} put_oncontextmenu*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_oncontextmenu*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + get_oncontextmenu*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} put_onstop*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} get_onstop*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} - createDocumentFragment*: proc(self: ptr IHTMLDocument3, pNewDoc: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} - get_parentDocument*: proc(self: ptr IHTMLDocument3, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} - put_enableDownload*: proc(self: ptr IHTMLDocument3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_enableDownload*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + createDocumentFragment*: proc( + self: ptr IHTMLDocument3, pNewDoc: ptr ptr IHTMLDocument2 + ): HRESULT {.stdcall.} + get_parentDocument*: + proc(self: ptr IHTMLDocument3, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + put_enableDownload*: + proc(self: ptr IHTMLDocument3, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_enableDownload*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_baseUrl*: proc(self: ptr IHTMLDocument3, v: BSTR): HRESULT {.stdcall.} get_baseUrl*: proc(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.stdcall.} - get_childNodes*: proc(self: ptr IHTMLDocument3, p: ptr ptr IDispatch): HRESULT {.stdcall.} - put_inheritStyleSheets*: proc(self: ptr IHTMLDocument3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_inheritStyleSheets*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_onbeforeeditfocus*: proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeeditfocus*: proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} - getElementsByName*: proc(self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - getElementById*: proc(self: ptr IHTMLDocument3, v: BSTR, pel: ptr ptr IHTMLElement): HRESULT {.stdcall.} - getElementsByTagName*: proc(self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_childNodes*: + proc(self: ptr IHTMLDocument3, p: ptr ptr IDispatch): HRESULT {.stdcall.} + put_inheritStyleSheets*: + proc(self: ptr IHTMLDocument3, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_inheritStyleSheets*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_onbeforeeditfocus*: + proc(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeeditfocus*: + proc(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.stdcall.} + getElementsByName*: proc( + self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + getElementById*: proc( + self: ptr IHTMLDocument3, v: BSTR, pel: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + getElementsByTagName*: proc( + self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + IHTMLDocument4* {.pure.} = object lpVtbl*: ptr IHTMLDocument4Vtbl + IHTMLDocument4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl focus*: proc(self: ptr IHTMLDocument4): HRESULT {.stdcall.} - hasFocus*: proc(self: ptr IHTMLDocument4, pfFocus: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_onselectionchange*: proc(self: ptr IHTMLDocument4, v: VARIANT): HRESULT {.stdcall.} - get_onselectionchange*: proc(self: ptr IHTMLDocument4, p: ptr VARIANT): HRESULT {.stdcall.} - get_namespaces*: proc(self: ptr IHTMLDocument4, p: ptr ptr IDispatch): HRESULT {.stdcall.} - createDocumentFromUrl*: proc(self: ptr IHTMLDocument4, bstrUrl: BSTR, bstrOptions: BSTR, newDoc: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + hasFocus*: + proc(self: ptr IHTMLDocument4, pfFocus: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_onselectionchange*: + proc(self: ptr IHTMLDocument4, v: VARIANT): HRESULT {.stdcall.} + get_onselectionchange*: + proc(self: ptr IHTMLDocument4, p: ptr VARIANT): HRESULT {.stdcall.} + get_namespaces*: + proc(self: ptr IHTMLDocument4, p: ptr ptr IDispatch): HRESULT {.stdcall.} + createDocumentFromUrl*: proc( + self: ptr IHTMLDocument4, + bstrUrl: BSTR, + bstrOptions: BSTR, + newDoc: ptr ptr IHTMLDocument2, + ): HRESULT {.stdcall.} put_media*: proc(self: ptr IHTMLDocument4, v: BSTR): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLDocument4, p: ptr BSTR): HRESULT {.stdcall.} - createEventObject*: proc(self: ptr IHTMLDocument4, pvarEventObject: ptr VARIANT, ppEventObj: ptr ptr IHTMLEventObj): HRESULT {.stdcall.} - fireEvent*: proc(self: ptr IHTMLDocument4, bstrEventName: BSTR, pvarEventObject: ptr VARIANT, pfCancelled: ptr VARIANT_BOOL): HRESULT {.stdcall.} - createRenderStyle*: proc(self: ptr IHTMLDocument4, v: BSTR, ppIHTMLRenderStyle: ptr ptr IHTMLRenderStyle): HRESULT {.stdcall.} - put_oncontrolselect*: proc(self: ptr IHTMLDocument4, v: VARIANT): HRESULT {.stdcall.} - get_oncontrolselect*: proc(self: ptr IHTMLDocument4, p: ptr VARIANT): HRESULT {.stdcall.} + createEventObject*: proc( + self: ptr IHTMLDocument4, + pvarEventObject: ptr VARIANT, + ppEventObj: ptr ptr IHTMLEventObj, + ): HRESULT {.stdcall.} + fireEvent*: proc( + self: ptr IHTMLDocument4, + bstrEventName: BSTR, + pvarEventObject: ptr VARIANT, + pfCancelled: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + createRenderStyle*: proc( + self: ptr IHTMLDocument4, v: BSTR, ppIHTMLRenderStyle: ptr ptr IHTMLRenderStyle + ): HRESULT {.stdcall.} + put_oncontrolselect*: + proc(self: ptr IHTMLDocument4, v: VARIANT): HRESULT {.stdcall.} + get_oncontrolselect*: + proc(self: ptr IHTMLDocument4, p: ptr VARIANT): HRESULT {.stdcall.} get_URLUnencoded*: proc(self: ptr IHTMLDocument4, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLDocument5* {.pure.} = object lpVtbl*: ptr IHTMLDocument5Vtbl + IHTMLDocument5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_onmousewheel*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} - get_onmousewheel*: proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} - get_doctype*: proc(self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} - get_implementation*: proc(self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMImplementation): HRESULT {.stdcall.} - createAttribute*: proc(self: ptr IHTMLDocument5, bstrattrName: BSTR, ppattribute: ptr ptr IHTMLDOMAttribute): HRESULT {.stdcall.} - createComment*: proc(self: ptr IHTMLDocument5, bstrdata: BSTR, ppRetNode: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_onmousewheel*: + proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} + get_doctype*: + proc(self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMNode): HRESULT {.stdcall.} + get_implementation*: proc( + self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMImplementation + ): HRESULT {.stdcall.} + createAttribute*: proc( + self: ptr IHTMLDocument5, + bstrattrName: BSTR, + ppattribute: ptr ptr IHTMLDOMAttribute, + ): HRESULT {.stdcall.} + createComment*: proc( + self: ptr IHTMLDocument5, bstrdata: BSTR, ppRetNode: ptr ptr IHTMLDOMNode + ): HRESULT {.stdcall.} put_onfocusin*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} get_onfocusin*: proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} put_onfocusout*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} @@ -8760,139 +12105,278 @@ put_onactivate*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} get_onactivate*: proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} put_ondeactivate*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} - get_ondeactivate*: proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} - put_onbeforeactivate*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeactivate*: proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} - put_onbeforedeactivate*: proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} - get_onbeforedeactivate*: proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} + get_ondeactivate*: + proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} + put_onbeforeactivate*: + proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeactivate*: + proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} + put_onbeforedeactivate*: + proc(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.stdcall.} + get_onbeforedeactivate*: + proc(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.stdcall.} get_compatMode*: proc(self: ptr IHTMLDocument5, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLDocument6* {.pure.} = object lpVtbl*: ptr IHTMLDocument6Vtbl + IHTMLDocument6Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_compatible*: proc(self: ptr IHTMLDocument6, p: ptr ptr IHTMLDocumentCompatibleInfoCollection): HRESULT {.stdcall.} - get_documentMode*: proc(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.stdcall.} + get_compatible*: proc( + self: ptr IHTMLDocument6, p: ptr ptr IHTMLDocumentCompatibleInfoCollection + ): HRESULT {.stdcall.} + get_documentMode*: + proc(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.stdcall.} put_onstorage*: proc(self: ptr IHTMLDocument6, v: VARIANT): HRESULT {.stdcall.} get_onstorage*: proc(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.stdcall.} - put_onstoragecommit*: proc(self: ptr IHTMLDocument6, v: VARIANT): HRESULT {.stdcall.} - get_onstoragecommit*: proc(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.stdcall.} - getElementById*: proc(self: ptr IHTMLDocument6, bstrId: BSTR, ppRetElement: ptr ptr IHTMLElement2): HRESULT {.stdcall.} + put_onstoragecommit*: + proc(self: ptr IHTMLDocument6, v: VARIANT): HRESULT {.stdcall.} + get_onstoragecommit*: + proc(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.stdcall.} + getElementById*: proc( + self: ptr IHTMLDocument6, bstrId: BSTR, ppRetElement: ptr ptr IHTMLElement2 + ): HRESULT {.stdcall.} updateSettings*: proc(self: ptr IHTMLDocument6): HRESULT {.stdcall.} + IHTMLDocument8* {.pure.} = object lpVtbl*: ptr IHTMLDocument8Vtbl + IHTMLDocument8Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_onmscontentzoom*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmscontentzoom*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointerdown*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerdown*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointermove*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointermove*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmscontentzoom*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmscontentzoom*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointerdown*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmspointerdown*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointermove*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmspointermove*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerup*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerup*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointerover*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerover*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerup*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointerover*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmspointerover*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmspointerout*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerout*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointercancel*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointercancel*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmspointerhover*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmspointerhover*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturestart*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturestart*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturechange*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturechange*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmspointerout*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointercancel*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmspointercancel*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmspointerhover*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmspointerhover*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturestart*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturestart*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturechange*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturechange*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgestureend*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgestureend*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturehold*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturehold*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + get_onmsgestureend*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturehold*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturehold*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} put_onmsgesturetap*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturetap*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsgesturedoubletap*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsgesturedoubletap*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmsinertiastart*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsinertiastart*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - elementsFromPoint*: proc(self: ptr IHTMLDocument8, x: float32, y: float32, elementsHit: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.stdcall.} - elementsFromRect*: proc(self: ptr IHTMLDocument8, left: float32, top: float32, width: float32, height: float32, elementsHit: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.stdcall.} - put_onmsmanipulationstatechanged*: proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} - get_onmsmanipulationstatechanged*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} - put_msCapsLockWarningOff*: proc(self: ptr IHTMLDocument8, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_msCapsLockWarningOff*: proc(self: ptr IHTMLDocument8, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_onmsgesturetap*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsgesturedoubletap*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmsgesturedoubletap*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmsinertiastart*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmsinertiastart*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + elementsFromPoint*: proc( + self: ptr IHTMLDocument8, + x: float32, + y: float32, + elementsHit: ptr ptr IHTMLDOMChildrenCollection, + ): HRESULT {.stdcall.} + elementsFromRect*: proc( + self: ptr IHTMLDocument8, + left: float32, + top: float32, + width: float32, + height: float32, + elementsHit: ptr ptr IHTMLDOMChildrenCollection, + ): HRESULT {.stdcall.} + put_onmsmanipulationstatechanged*: + proc(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.stdcall.} + get_onmsmanipulationstatechanged*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.stdcall.} + put_msCapsLockWarningOff*: + proc(self: ptr IHTMLDocument8, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_msCapsLockWarningOff*: + proc(self: ptr IHTMLDocument8, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IEventTarget* {.pure.} = object lpVtbl*: ptr IEventTargetVtbl + IEventTargetVtbl* {.pure, inheritable.} = object of IDispatchVtbl - addEventListener*: proc(self: ptr IEventTarget, `type`: BSTR, listener: ptr IDispatch, useCapture: VARIANT_BOOL): HRESULT {.stdcall.} - removeEventListener*: proc(self: ptr IEventTarget, `type`: BSTR, listener: ptr IDispatch, useCapture: VARIANT_BOOL): HRESULT {.stdcall.} - dispatchEvent*: proc(self: ptr IEventTarget, evt: ptr IDOMEvent, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + addEventListener*: proc( + self: ptr IEventTarget, + `type`: BSTR, + listener: ptr IDispatch, + useCapture: VARIANT_BOOL, + ): HRESULT {.stdcall.} + removeEventListener*: proc( + self: ptr IEventTarget, + `type`: BSTR, + listener: ptr IDispatch, + useCapture: VARIANT_BOOL, + ): HRESULT {.stdcall.} + dispatchEvent*: proc( + self: ptr IEventTarget, evt: ptr IDOMEvent, pfResult: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + IDOMEvent* {.pure.} = object lpVtbl*: ptr IDOMEventVtbl + IDOMEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_bubbles*: proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_cancelable*: proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_currentTarget*: proc(self: ptr IDOMEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} - get_defaultPrevented*: proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_currentTarget*: + proc(self: ptr IDOMEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} + get_defaultPrevented*: + proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_eventPhase*: proc(self: ptr IDOMEvent, p: ptr USHORT): HRESULT {.stdcall.} get_target*: proc(self: ptr IDOMEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} get_timeStamp*: proc(self: ptr IDOMEvent, p: ptr ULONGLONG): HRESULT {.stdcall.} get_type*: proc(self: ptr IDOMEvent, p: ptr BSTR): HRESULT {.stdcall.} - initEvent*: proc(self: ptr IDOMEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL): HRESULT {.stdcall.} + initEvent*: proc( + self: ptr IDOMEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + ): HRESULT {.stdcall.} preventDefault*: proc(self: ptr IDOMEvent): HRESULT {.stdcall.} stopPropagation*: proc(self: ptr IDOMEvent): HRESULT {.stdcall.} stopImmediatePropagation*: proc(self: ptr IDOMEvent): HRESULT {.stdcall.} get_isTrusted*: proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_cancelBubble*: proc(self: ptr IDOMEvent, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_cancelBubble*: proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_srcElement*: proc(self: ptr IDOMEvent, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_cancelBubble*: + proc(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_srcElement*: + proc(self: ptr IDOMEvent, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + IDocumentEvent* {.pure.} = object lpVtbl*: ptr IDocumentEventVtbl + IDocumentEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - createEvent*: proc(self: ptr IDocumentEvent, eventType: BSTR, ppEvent: ptr ptr IDOMEvent): HRESULT {.stdcall.} + createEvent*: proc( + self: ptr IDocumentEvent, eventType: BSTR, ppEvent: ptr ptr IDOMEvent + ): HRESULT {.stdcall.} + IDocumentRange* {.pure.} = object lpVtbl*: ptr IDocumentRangeVtbl + IDocumentRangeVtbl* {.pure, inheritable.} = object of IDispatchVtbl - createRange*: proc(self: ptr IDocumentRange, ppIHTMLDOMRange: ptr ptr IHTMLDOMRange): HRESULT {.stdcall.} + createRange*: proc( + self: ptr IDocumentRange, ppIHTMLDOMRange: ptr ptr IHTMLDOMRange + ): HRESULT {.stdcall.} + IDocumentSelector* {.pure.} = object lpVtbl*: ptr IDocumentSelectorVtbl + IDocumentSelectorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - querySelector*: proc(self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLElement): HRESULT {.stdcall.} - querySelectorAll*: proc(self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.stdcall.} + querySelector*: proc( + self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + querySelectorAll*: proc( + self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection + ): HRESULT {.stdcall.} + IDOMNodeIterator* {.pure.} = object lpVtbl*: ptr IDOMNodeIteratorVtbl + IDOMNodeIteratorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_root*: proc(self: ptr IDOMNodeIterator, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_root*: + proc(self: ptr IDOMNodeIterator, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_whatToShow*: proc(self: ptr IDOMNodeIterator, p: ptr ULONG): HRESULT {.stdcall.} - get_filter*: proc(self: ptr IDOMNodeIterator, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_expandEntityReferences*: proc(self: ptr IDOMNodeIterator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - nextNode*: proc(self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - previousNode*: proc(self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + get_filter*: + proc(self: ptr IDOMNodeIterator, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_expandEntityReferences*: + proc(self: ptr IDOMNodeIterator, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + nextNode*: proc(self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch): HRESULT {. + stdcall + .} + previousNode*: proc( + self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch + ): HRESULT {.stdcall.} detach*: proc(self: ptr IDOMNodeIterator): HRESULT {.stdcall.} + IDOMTreeWalker* {.pure.} = object lpVtbl*: ptr IDOMTreeWalkerVtbl + IDOMTreeWalkerVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_root*: proc(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_whatToShow*: proc(self: ptr IDOMTreeWalker, p: ptr ULONG): HRESULT {.stdcall.} - get_filter*: proc(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_expandEntityReferences*: proc(self: ptr IDOMTreeWalker, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - putref_currentNode*: proc(self: ptr IDOMTreeWalker, v: ptr IDispatch): HRESULT {.stdcall.} - get_currentNode*: proc(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.stdcall.} - parentNode*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - firstChild*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - lastChild*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - previousSibling*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - nextSibling*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - previousNode*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} - nextNode*: proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + get_filter*: + proc(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_expandEntityReferences*: + proc(self: ptr IDOMTreeWalker, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + putref_currentNode*: + proc(self: ptr IDOMTreeWalker, v: ptr IDispatch): HRESULT {.stdcall.} + get_currentNode*: + proc(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.stdcall.} + parentNode*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + firstChild*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + lastChild*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + previousSibling*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + nextSibling*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + previousNode*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + nextNode*: + proc(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.stdcall.} + IDocumentTraversal* {.pure.} = object lpVtbl*: ptr IDocumentTraversalVtbl + IDocumentTraversalVtbl* {.pure, inheritable.} = object of IDispatchVtbl - createNodeIterator*: proc(self: ptr IDocumentTraversal, pRootNode: ptr IDispatch, ulWhatToShow: LONG, pFilter: ptr VARIANT, fEntityReferenceExpansion: VARIANT_BOOL, ppNodeIterator: ptr ptr IDOMNodeIterator): HRESULT {.stdcall.} - createTreeWalker*: proc(self: ptr IDocumentTraversal, pRootNode: ptr IDispatch, ulWhatToShow: LONG, pFilter: ptr VARIANT, fEntityReferenceExpansion: VARIANT_BOOL, ppTreeWalker: ptr ptr IDOMTreeWalker): HRESULT {.stdcall.} + createNodeIterator*: proc( + self: ptr IDocumentTraversal, + pRootNode: ptr IDispatch, + ulWhatToShow: LONG, + pFilter: ptr VARIANT, + fEntityReferenceExpansion: VARIANT_BOOL, + ppNodeIterator: ptr ptr IDOMNodeIterator, + ): HRESULT {.stdcall.} + createTreeWalker*: proc( + self: ptr IDocumentTraversal, + pRootNode: ptr IDispatch, + ulWhatToShow: LONG, + pFilter: ptr VARIANT, + fEntityReferenceExpansion: VARIANT_BOOL, + ppTreeWalker: ptr ptr IDOMTreeWalker, + ): HRESULT {.stdcall.} + DispHTMLDocument* {.pure.} = object lpVtbl*: ptr DispHTMLDocumentVtbl + DispHTMLDocumentVtbl* {.pure, inheritable.} = object of IDispatchVtbl DWebBridgeEvents* {.pure.} = object lpVtbl*: ptr DWebBridgeEventsVtbl + DWebBridgeEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IWebBridge* {.pure.} = object lpVtbl*: ptr IWebBridgeVtbl + IWebBridgeVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_URL*: proc(self: ptr IWebBridge, v: BSTR): HRESULT {.stdcall.} get_URL*: proc(self: ptr IWebBridge, p: ptr BSTR): HRESULT {.stdcall.} @@ -8903,28 +12387,44 @@ get_event*: proc(self: ptr IWebBridge, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IWebBridge, p: ptr LONG): HRESULT {.stdcall.} AboutBox*: proc(self: ptr IWebBridge): HRESULT {.stdcall.} + IWBScriptControl* {.pure.} = object lpVtbl*: ptr IWBScriptControlVtbl + IWBScriptControlVtbl* {.pure, inheritable.} = object of IDispatchVtbl - raiseEvent*: proc(self: ptr IWBScriptControl, name: BSTR, eventData: VARIANT): HRESULT {.stdcall.} + raiseEvent*: proc( + self: ptr IWBScriptControl, name: BSTR, eventData: VARIANT + ): HRESULT {.stdcall.} bubbleEvent*: proc(self: ptr IWBScriptControl): HRESULT {.stdcall.} - setContextMenu*: proc(self: ptr IWBScriptControl, menuItemPairs: VARIANT): HRESULT {.stdcall.} - put_selectableContent*: proc(self: ptr IWBScriptControl, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_selectableContent*: proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_frozen*: proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_scrollbar*: proc(self: ptr IWBScriptControl, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_scrollbar*: proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + setContextMenu*: + proc(self: ptr IWBScriptControl, menuItemPairs: VARIANT): HRESULT {.stdcall.} + put_selectableContent*: + proc(self: ptr IWBScriptControl, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_selectableContent*: + proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_frozen*: + proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_scrollbar*: + proc(self: ptr IWBScriptControl, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_scrollbar*: + proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_version*: proc(self: ptr IWBScriptControl, p: ptr BSTR): HRESULT {.stdcall.} - get_visibility*: proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_onvisibilitychange*: proc(self: ptr IWBScriptControl, v: VARIANT): HRESULT {.stdcall.} - get_onvisibilitychange*: proc(self: ptr IWBScriptControl, p: ptr VARIANT): HRESULT {.stdcall.} + get_visibility*: + proc(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_onvisibilitychange*: + proc(self: ptr IWBScriptControl, v: VARIANT): HRESULT {.stdcall.} + get_onvisibilitychange*: + proc(self: ptr IWBScriptControl, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLEmbedElement* {.pure.} = object lpVtbl*: ptr IHTMLEmbedElementVtbl + IHTMLEmbedElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_hidden*: proc(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.stdcall.} get_hidden*: proc(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.stdcall.} get_palette*: proc(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.stdcall.} - get_pluginspage*: proc(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.stdcall.} + get_pluginspage*: + proc(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.stdcall.} put_src*: proc(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.stdcall.} put_units*: proc(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.stdcall.} @@ -8935,65 +12435,107 @@ get_width*: proc(self: ptr IHTMLEmbedElement, p: ptr VARIANT): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLEmbedElement, v: VARIANT): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLEmbedElement, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLEmbedElement2* {.pure.} = object lpVtbl*: ptr IHTMLEmbedElement2Vtbl + IHTMLEmbedElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLEmbedElement2, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLEmbedElement2, p: ptr BSTR): HRESULT {.stdcall.} - get_pluginspage*: proc(self: ptr IHTMLEmbedElement2, p: ptr BSTR): HRESULT {.stdcall.} + get_pluginspage*: + proc(self: ptr IHTMLEmbedElement2, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLEmbed* {.pure.} = object lpVtbl*: ptr DispHTMLEmbedVtbl + DispHTMLEmbedVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLMapEvents2* {.pure.} = object lpVtbl*: ptr HTMLMapEvents2Vtbl + HTMLMapEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLMapEvents* {.pure.} = object lpVtbl*: ptr HTMLMapEventsVtbl + HTMLMapEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLAreasCollection* {.pure.} = object lpVtbl*: ptr IHTMLAreasCollectionVtbl + IHTMLAreasCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_length*: proc(self: ptr IHTMLAreasCollection, v: LONG): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLAreasCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLAreasCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLAreasCollection, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} - tags*: proc(self: ptr IHTMLAreasCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} - add*: proc(self: ptr IHTMLAreasCollection, element: ptr IHTMLElement, before: VARIANT): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLAreasCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLAreasCollection, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + tags*: proc( + self: ptr IHTMLAreasCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + add*: proc( + self: ptr IHTMLAreasCollection, element: ptr IHTMLElement, before: VARIANT + ): HRESULT {.stdcall.} remove*: proc(self: ptr IHTMLAreasCollection, index: LONG): HRESULT {.stdcall.} + IHTMLAreasCollection2* {.pure.} = object lpVtbl*: ptr IHTMLAreasCollection2Vtbl + IHTMLAreasCollection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - urns*: proc(self: ptr IHTMLAreasCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + urns*: proc( + self: ptr IHTMLAreasCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLAreasCollection3* {.pure.} = object lpVtbl*: ptr IHTMLAreasCollection3Vtbl + IHTMLAreasCollection3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - namedItem*: proc(self: ptr IHTMLAreasCollection3, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + namedItem*: proc( + self: ptr IHTMLAreasCollection3, name: BSTR, pdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLAreasCollection4* {.pure.} = object lpVtbl*: ptr IHTMLAreasCollection4Vtbl + IHTMLAreasCollection4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IHTMLAreasCollection4, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLAreasCollection4, index: LONG, pNode: ptr ptr IHTMLElement2): HRESULT {.stdcall.} - namedItem*: proc(self: ptr IHTMLAreasCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLAreasCollection4, index: LONG, pNode: ptr ptr IHTMLElement2 + ): HRESULT {.stdcall.} + namedItem*: proc( + self: ptr IHTMLAreasCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2 + ): HRESULT {.stdcall.} + IHTMLMapElement* {.pure.} = object lpVtbl*: ptr IHTMLMapElementVtbl + IHTMLMapElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_areas*: proc(self: ptr IHTMLMapElement, p: ptr ptr IHTMLAreasCollection): HRESULT {.stdcall.} + get_areas*: proc( + self: ptr IHTMLMapElement, p: ptr ptr IHTMLAreasCollection + ): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLMapElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLMapElement, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLAreasCollection* {.pure.} = object lpVtbl*: ptr DispHTMLAreasCollectionVtbl + DispHTMLAreasCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLMapElement* {.pure.} = object lpVtbl*: ptr DispHTMLMapElementVtbl + DispHTMLMapElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLAreaEvents2* {.pure.} = object lpVtbl*: ptr HTMLAreaEvents2Vtbl + HTMLAreaEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLAreaEvents* {.pure.} = object lpVtbl*: ptr HTMLAreaEventsVtbl + HTMLAreaEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLAreaElement* {.pure.} = object lpVtbl*: ptr IHTMLAreaElementVtbl + IHTMLAreaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_shape*: proc(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.stdcall.} get_shape*: proc(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -9006,7 +12548,8 @@ put_alt*: proc(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.stdcall.} get_alt*: proc(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.stdcall.} put_noHref*: proc(self: ptr IHTMLAreaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noHref*: proc(self: ptr IHTMLAreaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noHref*: + proc(self: ptr IHTMLAreaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_host*: proc(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.stdcall.} get_host*: proc(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.stdcall.} put_hostname*: proc(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.stdcall.} @@ -9029,8 +12572,10 @@ get_tabIndex*: proc(self: ptr IHTMLAreaElement, p: ptr int16): HRESULT {.stdcall.} focus*: proc(self: ptr IHTMLAreaElement): HRESULT {.stdcall.} blur*: proc(self: ptr IHTMLAreaElement): HRESULT {.stdcall.} + IHTMLAreaElement2* {.pure.} = object lpVtbl*: ptr IHTMLAreaElement2Vtbl + IHTMLAreaElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_shape*: proc(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.stdcall.} get_shape*: proc(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.stdcall.} @@ -9038,79 +12583,125 @@ get_coords*: proc(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.stdcall.} put_href*: proc(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.stdcall.} get_href*: proc(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLAreaElement* {.pure.} = object lpVtbl*: ptr DispHTMLAreaElementVtbl + DispHTMLAreaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLTableCaption* {.pure.} = object lpVtbl*: ptr IHTMLTableCaptionVtbl + IHTMLTableCaptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLTableCaption, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLTableCaption, p: ptr BSTR): HRESULT {.stdcall.} put_vAlign*: proc(self: ptr IHTMLTableCaption, v: BSTR): HRESULT {.stdcall.} get_vAlign*: proc(self: ptr IHTMLTableCaption, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLTableCaption* {.pure.} = object lpVtbl*: ptr DispHTMLTableCaptionVtbl + DispHTMLTableCaptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLCommentElement* {.pure.} = object lpVtbl*: ptr IHTMLCommentElementVtbl + IHTMLCommentElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_text*: proc(self: ptr IHTMLCommentElement, v: BSTR): HRESULT {.stdcall.} get_text*: proc(self: ptr IHTMLCommentElement, p: ptr BSTR): HRESULT {.stdcall.} put_atomic*: proc(self: ptr IHTMLCommentElement, v: LONG): HRESULT {.stdcall.} get_atomic*: proc(self: ptr IHTMLCommentElement, p: ptr LONG): HRESULT {.stdcall.} + IHTMLCommentElement2* {.pure.} = object lpVtbl*: ptr IHTMLCommentElement2Vtbl + IHTMLCommentElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_data*: proc(self: ptr IHTMLCommentElement2, v: BSTR): HRESULT {.stdcall.} get_data*: proc(self: ptr IHTMLCommentElement2, p: ptr BSTR): HRESULT {.stdcall.} get_length*: proc(self: ptr IHTMLCommentElement2, p: ptr LONG): HRESULT {.stdcall.} - substringData*: proc(self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.stdcall.} - appendData*: proc(self: ptr IHTMLCommentElement2, bstrstring: BSTR): HRESULT {.stdcall.} - insertData*: proc(self: ptr IHTMLCommentElement2, offset: LONG, bstrstring: BSTR): HRESULT {.stdcall.} - deleteData*: proc(self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG): HRESULT {.stdcall.} - replaceData*: proc(self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.stdcall.} + substringData*: proc( + self: ptr IHTMLCommentElement2, + offset: LONG, + Count: LONG, + pbstrsubString: ptr BSTR, + ): HRESULT {.stdcall.} + appendData*: + proc(self: ptr IHTMLCommentElement2, bstrstring: BSTR): HRESULT {.stdcall.} + insertData*: proc( + self: ptr IHTMLCommentElement2, offset: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + deleteData*: proc( + self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG + ): HRESULT {.stdcall.} + replaceData*: proc( + self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + IHTMLCommentElement3* {.pure.} = object lpVtbl*: ptr IHTMLCommentElement3Vtbl + IHTMLCommentElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - substringData*: proc(self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.stdcall.} - insertData*: proc(self: ptr IHTMLCommentElement3, offset: LONG, bstrstring: BSTR): HRESULT {.stdcall.} - deleteData*: proc(self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG): HRESULT {.stdcall.} - replaceData*: proc(self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.stdcall.} + substringData*: proc( + self: ptr IHTMLCommentElement3, + offset: LONG, + Count: LONG, + pbstrsubString: ptr BSTR, + ): HRESULT {.stdcall.} + insertData*: proc( + self: ptr IHTMLCommentElement3, offset: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + deleteData*: proc( + self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG + ): HRESULT {.stdcall.} + replaceData*: proc( + self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, bstrstring: BSTR + ): HRESULT {.stdcall.} + DispHTMLCommentElement* {.pure.} = object lpVtbl*: ptr DispHTMLCommentElementVtbl + DispHTMLCommentElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLPhraseElement* {.pure.} = object lpVtbl*: ptr IHTMLPhraseElementVtbl + IHTMLPhraseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLPhraseElement2* {.pure.} = object lpVtbl*: ptr IHTMLPhraseElement2Vtbl + IHTMLPhraseElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_cite*: proc(self: ptr IHTMLPhraseElement2, v: BSTR): HRESULT {.stdcall.} get_cite*: proc(self: ptr IHTMLPhraseElement2, p: ptr BSTR): HRESULT {.stdcall.} put_dateTime*: proc(self: ptr IHTMLPhraseElement2, v: BSTR): HRESULT {.stdcall.} get_dateTime*: proc(self: ptr IHTMLPhraseElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLPhraseElement3* {.pure.} = object lpVtbl*: ptr IHTMLPhraseElement3Vtbl + IHTMLPhraseElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_cite*: proc(self: ptr IHTMLPhraseElement3, v: BSTR): HRESULT {.stdcall.} get_cite*: proc(self: ptr IHTMLPhraseElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLSpanElement* {.pure.} = object lpVtbl*: ptr IHTMLSpanElementVtbl + IHTMLSpanElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLPhraseElement* {.pure.} = object lpVtbl*: ptr DispHTMLPhraseElementVtbl + DispHTMLPhraseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLSpanElement* {.pure.} = object lpVtbl*: ptr DispHTMLSpanElementVtbl + DispHTMLSpanElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLTableEvents2* {.pure.} = object lpVtbl*: ptr HTMLTableEvents2Vtbl + HTMLTableEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLTableEvents* {.pure.} = object lpVtbl*: ptr HTMLTableEventsVtbl + HTMLTableEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLTableSection* {.pure.} = object lpVtbl*: ptr IHTMLTableSectionVtbl + IHTMLTableSectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLTableSection, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLTableSection, p: ptr BSTR): HRESULT {.stdcall.} @@ -9118,11 +12709,17 @@ get_vAlign*: proc(self: ptr IHTMLTableSection, p: ptr BSTR): HRESULT {.stdcall.} put_bgColor*: proc(self: ptr IHTMLTableSection, v: VARIANT): HRESULT {.stdcall.} get_bgColor*: proc(self: ptr IHTMLTableSection, p: ptr VARIANT): HRESULT {.stdcall.} - get_rows*: proc(self: ptr IHTMLTableSection, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - insertRow*: proc(self: ptr IHTMLTableSection, index: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + get_rows*: proc( + self: ptr IHTMLTableSection, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + insertRow*: proc( + self: ptr IHTMLTableSection, index: LONG, row: ptr ptr IDispatch + ): HRESULT {.stdcall.} deleteRow*: proc(self: ptr IHTMLTableSection, index: LONG): HRESULT {.stdcall.} + IHTMLTable* {.pure.} = object lpVtbl*: ptr IHTMLTableVtbl + IHTMLTableVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_cols*: proc(self: ptr IHTMLTable, v: LONG): HRESULT {.stdcall.} get_cols*: proc(self: ptr IHTMLTable, p: ptr LONG): HRESULT {.stdcall.} @@ -9143,13 +12740,16 @@ put_borderColor*: proc(self: ptr IHTMLTable, v: VARIANT): HRESULT {.stdcall.} get_borderColor*: proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} put_borderColorLight*: proc(self: ptr IHTMLTable, v: VARIANT): HRESULT {.stdcall.} - get_borderColorLight*: proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderColorLight*: + proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} put_borderColorDark*: proc(self: ptr IHTMLTable, v: VARIANT): HRESULT {.stdcall.} - get_borderColorDark*: proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderColorDark*: + proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} put_align*: proc(self: ptr IHTMLTable, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.stdcall.} refresh*: proc(self: ptr IHTMLTable): HRESULT {.stdcall.} - get_rows*: proc(self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_rows*: + proc(self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLTable, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLTable, v: VARIANT): HRESULT {.stdcall.} @@ -9158,47 +12758,79 @@ get_dataPageSize*: proc(self: ptr IHTMLTable, p: ptr LONG): HRESULT {.stdcall.} nextPage*: proc(self: ptr IHTMLTable): HRESULT {.stdcall.} previousPage*: proc(self: ptr IHTMLTable): HRESULT {.stdcall.} - get_tHead*: proc(self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} - get_tFoot*: proc(self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} - get_tBodies*: proc(self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - get_caption*: proc(self: ptr IHTMLTable, p: ptr ptr IHTMLTableCaption): HRESULT {.stdcall.} - createTHead*: proc(self: ptr IHTMLTable, head: ptr ptr IDispatch): HRESULT {.stdcall.} + get_tHead*: + proc(self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} + get_tFoot*: + proc(self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} + get_tBodies*: + proc(self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} + get_caption*: + proc(self: ptr IHTMLTable, p: ptr ptr IHTMLTableCaption): HRESULT {.stdcall.} + createTHead*: + proc(self: ptr IHTMLTable, head: ptr ptr IDispatch): HRESULT {.stdcall.} deleteTHead*: proc(self: ptr IHTMLTable): HRESULT {.stdcall.} - createTFoot*: proc(self: ptr IHTMLTable, foot: ptr ptr IDispatch): HRESULT {.stdcall.} + createTFoot*: + proc(self: ptr IHTMLTable, foot: ptr ptr IDispatch): HRESULT {.stdcall.} deleteTFoot*: proc(self: ptr IHTMLTable): HRESULT {.stdcall.} - createCaption*: proc(self: ptr IHTMLTable, caption: ptr ptr IHTMLTableCaption): HRESULT {.stdcall.} + createCaption*: proc( + self: ptr IHTMLTable, caption: ptr ptr IHTMLTableCaption + ): HRESULT {.stdcall.} deleteCaption*: proc(self: ptr IHTMLTable): HRESULT {.stdcall.} - insertRow*: proc(self: ptr IHTMLTable, index: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + insertRow*: proc(self: ptr IHTMLTable, index: LONG, row: ptr ptr IDispatch): HRESULT {. + stdcall + .} deleteRow*: proc(self: ptr IHTMLTable, index: LONG): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.stdcall.} put_onreadystatechange*: proc(self: ptr IHTMLTable, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLTable2* {.pure.} = object lpVtbl*: ptr IHTMLTable2Vtbl + IHTMLTable2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl firstPage*: proc(self: ptr IHTMLTable2): HRESULT {.stdcall.} lastPage*: proc(self: ptr IHTMLTable2): HRESULT {.stdcall.} - get_cells*: proc(self: ptr IHTMLTable2, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - moveRow*: proc(self: ptr IHTMLTable2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + get_cells*: proc(self: ptr IHTMLTable2, p: ptr ptr IHTMLElementCollection): HRESULT {. + stdcall + .} + moveRow*: proc( + self: ptr IHTMLTable2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLTable3* {.pure.} = object lpVtbl*: ptr IHTMLTable3Vtbl + IHTMLTable3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_summary*: proc(self: ptr IHTMLTable3, v: BSTR): HRESULT {.stdcall.} get_summary*: proc(self: ptr IHTMLTable3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTable4* {.pure.} = object lpVtbl*: ptr IHTMLTable4Vtbl + IHTMLTable4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_tHead*: proc(self: ptr IHTMLTable4, v: ptr IHTMLTableSection): HRESULT {.stdcall.} - get_tHead*: proc(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} - putref_tFoot*: proc(self: ptr IHTMLTable4, v: ptr IHTMLTableSection): HRESULT {.stdcall.} - get_tFoot*: proc(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} - putref_caption*: proc(self: ptr IHTMLTable4, v: ptr IHTMLTableCaption): HRESULT {.stdcall.} - get_caption*: proc(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableCaption): HRESULT {.stdcall.} - insertRow*: proc(self: ptr IHTMLTable4, index: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + putref_tHead*: + proc(self: ptr IHTMLTable4, v: ptr IHTMLTableSection): HRESULT {.stdcall.} + get_tHead*: + proc(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} + putref_tFoot*: + proc(self: ptr IHTMLTable4, v: ptr IHTMLTableSection): HRESULT {.stdcall.} + get_tFoot*: + proc(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} + putref_caption*: + proc(self: ptr IHTMLTable4, v: ptr IHTMLTableCaption): HRESULT {.stdcall.} + get_caption*: + proc(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableCaption): HRESULT {.stdcall.} + insertRow*: proc( + self: ptr IHTMLTable4, index: LONG, row: ptr ptr IDispatch + ): HRESULT {.stdcall.} deleteRow*: proc(self: ptr IHTMLTable4, index: LONG): HRESULT {.stdcall.} - createTBody*: proc(self: ptr IHTMLTable4, tbody: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} + createTBody*: + proc(self: ptr IHTMLTable4, tbody: ptr ptr IHTMLTableSection): HRESULT {.stdcall.} + IHTMLTableCol* {.pure.} = object lpVtbl*: ptr IHTMLTableColVtbl + IHTMLTableColVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_span*: proc(self: ptr IHTMLTableCol, v: LONG): HRESULT {.stdcall.} get_span*: proc(self: ptr IHTMLTableCol, p: ptr LONG): HRESULT {.stdcall.} @@ -9208,42 +12840,61 @@ get_align*: proc(self: ptr IHTMLTableCol, p: ptr BSTR): HRESULT {.stdcall.} put_vAlign*: proc(self: ptr IHTMLTableCol, v: BSTR): HRESULT {.stdcall.} get_vAlign*: proc(self: ptr IHTMLTableCol, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTableCol2* {.pure.} = object lpVtbl*: ptr IHTMLTableCol2Vtbl + IHTMLTableCol2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableCol2, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableCol2, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableCol2, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableCol2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTableCol3* {.pure.} = object lpVtbl*: ptr IHTMLTableCol3Vtbl + IHTMLTableCol3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableCol3, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableCol3, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableCol3, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableCol3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTableSection2* {.pure.} = object lpVtbl*: ptr IHTMLTableSection2Vtbl + IHTMLTableSection2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - moveRow*: proc(self: ptr IHTMLTableSection2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + moveRow*: proc( + self: ptr IHTMLTableSection2, + indexFrom: LONG, + indexTo: LONG, + row: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + IHTMLTableSection3* {.pure.} = object lpVtbl*: ptr IHTMLTableSection3Vtbl + IHTMLTableSection3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableSection3, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableSection3, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableSection3, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableSection3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTableSection4* {.pure.} = object lpVtbl*: ptr IHTMLTableSection4Vtbl + IHTMLTableSection4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableSection4, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableSection4, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableSection4, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableSection4, p: ptr BSTR): HRESULT {.stdcall.} - insertRow*: proc(self: ptr IHTMLTableSection4, index: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + insertRow*: proc( + self: ptr IHTMLTableSection4, index: LONG, row: ptr ptr IDispatch + ): HRESULT {.stdcall.} deleteRow*: proc(self: ptr IHTMLTableSection4, index: LONG): HRESULT {.stdcall.} + IHTMLTableRow* {.pure.} = object lpVtbl*: ptr IHTMLTableRowVtbl + IHTMLTableRowVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLTableRow, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLTableRow, p: ptr BSTR): HRESULT {.stdcall.} @@ -9253,45 +12904,69 @@ get_bgColor*: proc(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.stdcall.} put_borderColor*: proc(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.stdcall.} get_borderColor*: proc(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderColorLight*: proc(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.stdcall.} - get_borderColorLight*: proc(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderColorLight*: + proc(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.stdcall.} + get_borderColorLight*: + proc(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.stdcall.} put_borderColorDark*: proc(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.stdcall.} - get_borderColorDark*: proc(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderColorDark*: + proc(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.stdcall.} get_rowIndex*: proc(self: ptr IHTMLTableRow, p: ptr LONG): HRESULT {.stdcall.} - get_sectionRowIndex*: proc(self: ptr IHTMLTableRow, p: ptr LONG): HRESULT {.stdcall.} - get_cells*: proc(self: ptr IHTMLTableRow, p: ptr ptr IHTMLElementCollection): HRESULT {.stdcall.} - insertCell*: proc(self: ptr IHTMLTableRow, index: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + get_sectionRowIndex*: + proc(self: ptr IHTMLTableRow, p: ptr LONG): HRESULT {.stdcall.} + get_cells*: proc( + self: ptr IHTMLTableRow, p: ptr ptr IHTMLElementCollection + ): HRESULT {.stdcall.} + insertCell*: proc( + self: ptr IHTMLTableRow, index: LONG, row: ptr ptr IDispatch + ): HRESULT {.stdcall.} deleteCell*: proc(self: ptr IHTMLTableRow, index: LONG): HRESULT {.stdcall.} + IHTMLTableRow2* {.pure.} = object lpVtbl*: ptr IHTMLTableRow2Vtbl + IHTMLTableRow2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_height*: proc(self: ptr IHTMLTableRow2, v: VARIANT): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLTableRow2, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLTableRow3* {.pure.} = object lpVtbl*: ptr IHTMLTableRow3Vtbl + IHTMLTableRow3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableRow3, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableRow3, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableRow3, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableRow3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTableRow4* {.pure.} = object lpVtbl*: ptr IHTMLTableRow4Vtbl + IHTMLTableRow4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableRow4, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableRow4, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableRow4, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableRow4, p: ptr BSTR): HRESULT {.stdcall.} - insertCell*: proc(self: ptr IHTMLTableRow4, index: LONG, row: ptr ptr IDispatch): HRESULT {.stdcall.} + insertCell*: proc( + self: ptr IHTMLTableRow4, index: LONG, row: ptr ptr IDispatch + ): HRESULT {.stdcall.} deleteCell*: proc(self: ptr IHTMLTableRow4, index: LONG): HRESULT {.stdcall.} + IHTMLTableRowMetrics* {.pure.} = object lpVtbl*: ptr IHTMLTableRowMetricsVtbl + IHTMLTableRowMetricsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_clientHeight*: proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_clientWidth*: proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_clientTop*: proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} - get_clientLeft*: proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_clientHeight*: + proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_clientWidth*: + proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_clientTop*: + proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} + get_clientLeft*: + proc(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.stdcall.} + IHTMLTableCell* {.pure.} = object lpVtbl*: ptr IHTMLTableCellVtbl + IHTMLTableCellVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_rowSpan*: proc(self: ptr IHTMLTableCell, v: LONG): HRESULT {.stdcall.} get_rowSpan*: proc(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.stdcall.} @@ -9304,22 +12979,30 @@ put_bgColor*: proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} get_bgColor*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} put_noWrap*: proc(self: ptr IHTMLTableCell, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_noWrap*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_noWrap*: + proc(self: ptr IHTMLTableCell, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_background*: proc(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.stdcall.} get_background*: proc(self: ptr IHTMLTableCell, p: ptr BSTR): HRESULT {.stdcall.} put_borderColor*: proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} - get_borderColor*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderColorLight*: proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} - get_borderColorLight*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderColorDark*: proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} - get_borderColorDark*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderColor*: + proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderColorLight*: + proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} + get_borderColorLight*: + proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderColorDark*: + proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} + get_borderColorDark*: + proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.stdcall.} get_cellIndex*: proc(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.stdcall.} + IHTMLTableCell2* {.pure.} = object lpVtbl*: ptr IHTMLTableCell2Vtbl + IHTMLTableCell2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_abbr*: proc(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.stdcall.} get_abbr*: proc(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.stdcall.} @@ -9333,36 +13016,47 @@ get_headers*: proc(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.stdcall.} put_scope*: proc(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.stdcall.} get_scope*: proc(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLTableCell3* {.pure.} = object lpVtbl*: ptr IHTMLTableCell3Vtbl + IHTMLTableCell3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_ch*: proc(self: ptr IHTMLTableCell3, v: BSTR): HRESULT {.stdcall.} get_ch*: proc(self: ptr IHTMLTableCell3, p: ptr BSTR): HRESULT {.stdcall.} put_chOff*: proc(self: ptr IHTMLTableCell3, v: BSTR): HRESULT {.stdcall.} get_chOff*: proc(self: ptr IHTMLTableCell3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLTable* {.pure.} = object lpVtbl*: ptr DispHTMLTableVtbl + DispHTMLTableVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTableCol* {.pure.} = object lpVtbl*: ptr DispHTMLTableColVtbl + DispHTMLTableColVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTableSection* {.pure.} = object lpVtbl*: ptr DispHTMLTableSectionVtbl + DispHTMLTableSectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTableRow* {.pure.} = object lpVtbl*: ptr DispHTMLTableRowVtbl + DispHTMLTableRowVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTableCell* {.pure.} = object lpVtbl*: ptr DispHTMLTableCellVtbl + DispHTMLTableCellVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLScriptEvents2* {.pure.} = object lpVtbl*: ptr HTMLScriptEvents2Vtbl + HTMLScriptEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLScriptEvents* {.pure.} = object lpVtbl*: ptr HTMLScriptEventsVtbl + HTMLScriptEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLScriptElement* {.pure.} = object lpVtbl*: ptr IHTMLScriptElementVtbl + IHTMLScriptElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -9373,49 +13067,69 @@ put_text*: proc(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.stdcall.} get_text*: proc(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.stdcall.} put_defer*: proc(self: ptr IHTMLScriptElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_defer*: proc(self: ptr IHTMLScriptElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_readyState*: proc(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.stdcall.} + get_defer*: + proc(self: ptr IHTMLScriptElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_readyState*: + proc(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.stdcall.} put_onerror*: proc(self: ptr IHTMLScriptElement, v: VARIANT): HRESULT {.stdcall.} - get_onerror*: proc(self: ptr IHTMLScriptElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onerror*: + proc(self: ptr IHTMLScriptElement, p: ptr VARIANT): HRESULT {.stdcall.} put_type*: proc(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLScriptElement2* {.pure.} = object lpVtbl*: ptr IHTMLScriptElement2Vtbl + IHTMLScriptElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_charset*: proc(self: ptr IHTMLScriptElement2, v: BSTR): HRESULT {.stdcall.} get_charset*: proc(self: ptr IHTMLScriptElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLScriptElement3* {.pure.} = object lpVtbl*: ptr IHTMLScriptElement3Vtbl + IHTMLScriptElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLScriptElement3, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLScriptElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLScriptElement4* {.pure.} = object lpVtbl*: ptr IHTMLScriptElement4Vtbl + IHTMLScriptElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_usedCharset*: proc(self: ptr IHTMLScriptElement4, p: ptr BSTR): HRESULT {.stdcall.} + get_usedCharset*: + proc(self: ptr IHTMLScriptElement4, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLScriptElement* {.pure.} = object lpVtbl*: ptr DispHTMLScriptElementVtbl + DispHTMLScriptElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLNoShowElement* {.pure.} = object lpVtbl*: ptr IHTMLNoShowElementVtbl + IHTMLNoShowElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLNoShowElement* {.pure.} = object lpVtbl*: ptr DispHTMLNoShowElementVtbl + DispHTMLNoShowElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLObjectElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLObjectElementEvents2Vtbl + HTMLObjectElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLObjectElementEvents* {.pure.} = object lpVtbl*: ptr HTMLObjectElementEventsVtbl + HTMLObjectElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLObjectElement* {.pure.} = object lpVtbl*: ptr IHTMLObjectElementVtbl + IHTMLObjectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_object*: proc(self: ptr IHTMLObjectElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_object*: + proc(self: ptr IHTMLObjectElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_classid*: proc(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.stdcall.} get_data*: proc(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.stdcall.} - putref_recordset*: proc(self: ptr IHTMLObjectElement, v: ptr IDispatch): HRESULT {.stdcall.} - get_recordset*: proc(self: ptr IHTMLObjectElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} + putref_recordset*: + proc(self: ptr IHTMLObjectElement, v: ptr IDispatch): HRESULT {.stdcall.} + get_recordset*: + proc(self: ptr IHTMLObjectElement, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_align*: proc(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.stdcall.} @@ -9429,60 +13143,85 @@ get_BaseHref*: proc(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.stdcall.} put_type*: proc(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLObjectElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLObjectElement, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} put_width*: proc(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.stdcall.} - get_readyState*: proc(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_readyState*: + proc(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onerror*: proc(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.stdcall.} - get_onerror*: proc(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onerror*: + proc(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.stdcall.} put_altHtml*: proc(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.stdcall.} get_altHtml*: proc(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.stdcall.} put_vspace*: proc(self: ptr IHTMLObjectElement, v: LONG): HRESULT {.stdcall.} get_vspace*: proc(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.stdcall.} put_hspace*: proc(self: ptr IHTMLObjectElement, v: LONG): HRESULT {.stdcall.} get_hspace*: proc(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.stdcall.} + IHTMLObjectElement2* {.pure.} = object lpVtbl*: ptr IHTMLObjectElement2Vtbl + IHTMLObjectElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - namedRecordset*: proc(self: ptr IHTMLObjectElement2, dataMember: BSTR, hierarchy: ptr VARIANT, ppRecordset: ptr ptr IDispatch): HRESULT {.stdcall.} + namedRecordset*: proc( + self: ptr IHTMLObjectElement2, + dataMember: BSTR, + hierarchy: ptr VARIANT, + ppRecordset: ptr ptr IDispatch, + ): HRESULT {.stdcall.} put_classid*: proc(self: ptr IHTMLObjectElement2, v: BSTR): HRESULT {.stdcall.} get_classid*: proc(self: ptr IHTMLObjectElement2, p: ptr BSTR): HRESULT {.stdcall.} put_data*: proc(self: ptr IHTMLObjectElement2, v: BSTR): HRESULT {.stdcall.} get_data*: proc(self: ptr IHTMLObjectElement2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLObjectElement3* {.pure.} = object lpVtbl*: ptr IHTMLObjectElement3Vtbl + IHTMLObjectElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_archive*: proc(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.stdcall.} get_archive*: proc(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.stdcall.} put_alt*: proc(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.stdcall.} get_alt*: proc(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.stdcall.} - put_declare*: proc(self: ptr IHTMLObjectElement3, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_declare*: proc(self: ptr IHTMLObjectElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_declare*: + proc(self: ptr IHTMLObjectElement3, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_declare*: + proc(self: ptr IHTMLObjectElement3, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_standby*: proc(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.stdcall.} get_standby*: proc(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLObjectElement3, v: VARIANT): HRESULT {.stdcall.} - get_border*: proc(self: ptr IHTMLObjectElement3, p: ptr VARIANT): HRESULT {.stdcall.} + get_border*: + proc(self: ptr IHTMLObjectElement3, p: ptr VARIANT): HRESULT {.stdcall.} put_useMap*: proc(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.stdcall.} get_useMap*: proc(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLObjectElement4* {.pure.} = object lpVtbl*: ptr IHTMLObjectElement4Vtbl + IHTMLObjectElement4Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_contentDocument*: proc(self: ptr IHTMLObjectElement4, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_contentDocument*: + proc(self: ptr IHTMLObjectElement4, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_codeBase*: proc(self: ptr IHTMLObjectElement4, v: BSTR): HRESULT {.stdcall.} get_codeBase*: proc(self: ptr IHTMLObjectElement4, p: ptr BSTR): HRESULT {.stdcall.} put_data*: proc(self: ptr IHTMLObjectElement4, v: BSTR): HRESULT {.stdcall.} get_data*: proc(self: ptr IHTMLObjectElement4, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLObjectElement5* {.pure.} = object lpVtbl*: ptr IHTMLObjectElement5Vtbl + IHTMLObjectElement5Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_object*: proc(self: ptr IHTMLObjectElement5, v: BSTR): HRESULT {.stdcall.} get_object*: proc(self: ptr IHTMLObjectElement5, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLParamElement* {.pure.} = object lpVtbl*: ptr IHTMLParamElementVtbl + IHTMLParamElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_name*: proc(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -9492,8 +13231,10 @@ get_type*: proc(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.stdcall.} put_valueType*: proc(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.stdcall.} get_valueType*: proc(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLParamElement2* {.pure.} = object lpVtbl*: ptr IHTMLParamElement2Vtbl + IHTMLParamElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_name*: proc(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.stdcall.} @@ -9503,64 +13244,90 @@ get_value*: proc(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.stdcall.} put_valueType*: proc(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.stdcall.} get_valueType*: proc(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLObjectElement* {.pure.} = object lpVtbl*: ptr DispHTMLObjectElementVtbl + DispHTMLObjectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLParamElement* {.pure.} = object lpVtbl*: ptr DispHTMLParamElementVtbl + DispHTMLParamElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLFrameSiteEvents2* {.pure.} = object lpVtbl*: ptr HTMLFrameSiteEvents2Vtbl + HTMLFrameSiteEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLFrameSiteEvents* {.pure.} = object lpVtbl*: ptr HTMLFrameSiteEventsVtbl + HTMLFrameSiteEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLFrameBase2* {.pure.} = object lpVtbl*: ptr IHTMLFrameBase2Vtbl + IHTMLFrameBase2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_contentWindow*: proc(self: ptr IHTMLFrameBase2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + get_contentWindow*: + proc(self: ptr IHTMLFrameBase2, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} put_onload*: proc(self: ptr IHTMLFrameBase2, v: VARIANT): HRESULT {.stdcall.} get_onload*: proc(self: ptr IHTMLFrameBase2, p: ptr VARIANT): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLFrameBase2, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLFrameBase2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLFrameBase2, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLFrameBase2, p: ptr VARIANT): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLFrameBase2, p: ptr BSTR): HRESULT {.stdcall.} - put_allowTransparency*: proc(self: ptr IHTMLFrameBase2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_allowTransparency*: proc(self: ptr IHTMLFrameBase2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_allowTransparency*: + proc(self: ptr IHTMLFrameBase2, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_allowTransparency*: + proc(self: ptr IHTMLFrameBase2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLFrameBase3* {.pure.} = object lpVtbl*: ptr IHTMLFrameBase3Vtbl + IHTMLFrameBase3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_longDesc*: proc(self: ptr IHTMLFrameBase3, v: BSTR): HRESULT {.stdcall.} get_longDesc*: proc(self: ptr IHTMLFrameBase3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLFrameBase* {.pure.} = object lpVtbl*: ptr DispHTMLFrameBaseVtbl + DispHTMLFrameBaseVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLFrameElement* {.pure.} = object lpVtbl*: ptr IHTMLFrameElementVtbl + IHTMLFrameElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_borderColor*: proc(self: ptr IHTMLFrameElement, v: VARIANT): HRESULT {.stdcall.} - get_borderColor*: proc(self: ptr IHTMLFrameElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_borderColor*: + proc(self: ptr IHTMLFrameElement, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLFrameElement2* {.pure.} = object lpVtbl*: ptr IHTMLFrameElement2Vtbl + IHTMLFrameElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_height*: proc(self: ptr IHTMLFrameElement2, v: VARIANT): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLFrameElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLFrameElement2, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLFrameElement2, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLFrameElement3* {.pure.} = object lpVtbl*: ptr IHTMLFrameElement3Vtbl + IHTMLFrameElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_contentDocument*: proc(self: ptr IHTMLFrameElement3, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_contentDocument*: + proc(self: ptr IHTMLFrameElement3, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_src*: proc(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} put_longDesc*: proc(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.stdcall.} get_longDesc*: proc(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} put_frameBorder*: proc(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.stdcall.} - get_frameBorder*: proc(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} + get_frameBorder*: + proc(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLFrameElement* {.pure.} = object lpVtbl*: ptr DispHTMLFrameElementVtbl + DispHTMLFrameElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLIFrameElement* {.pure.} = object lpVtbl*: ptr IHTMLIFrameElementVtbl + IHTMLIFrameElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_vspace*: proc(self: ptr IHTMLIFrameElement, v: LONG): HRESULT {.stdcall.} get_vspace*: proc(self: ptr IHTMLIFrameElement, p: ptr LONG): HRESULT {.stdcall.} @@ -9568,114 +13335,175 @@ get_hspace*: proc(self: ptr IHTMLIFrameElement, p: ptr LONG): HRESULT {.stdcall.} put_align*: proc(self: ptr IHTMLIFrameElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLIFrameElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLIFrameElement2* {.pure.} = object lpVtbl*: ptr IHTMLIFrameElement2Vtbl + IHTMLIFrameElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_height*: proc(self: ptr IHTMLIFrameElement2, v: VARIANT): HRESULT {.stdcall.} - get_height*: proc(self: ptr IHTMLIFrameElement2, p: ptr VARIANT): HRESULT {.stdcall.} + get_height*: + proc(self: ptr IHTMLIFrameElement2, p: ptr VARIANT): HRESULT {.stdcall.} put_width*: proc(self: ptr IHTMLIFrameElement2, v: VARIANT): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLIFrameElement2, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLIFrameElement3* {.pure.} = object lpVtbl*: ptr IHTMLIFrameElement3Vtbl + IHTMLIFrameElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_contentDocument*: proc(self: ptr IHTMLIFrameElement3, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_contentDocument*: + proc(self: ptr IHTMLIFrameElement3, p: ptr ptr IDispatch): HRESULT {.stdcall.} put_src*: proc(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} put_longDesc*: proc(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.stdcall.} get_longDesc*: proc(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} put_frameBorder*: proc(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.stdcall.} - get_frameBorder*: proc(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} + get_frameBorder*: + proc(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLIFrame* {.pure.} = object lpVtbl*: ptr DispHTMLIFrameVtbl + DispHTMLIFrameVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLDivPosition* {.pure.} = object lpVtbl*: ptr IHTMLDivPositionVtbl + IHTMLDivPositionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLDivPosition, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLDivPosition, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLFieldSetElement* {.pure.} = object lpVtbl*: ptr IHTMLFieldSetElementVtbl + IHTMLFieldSetElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLFieldSetElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLFieldSetElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLFieldSetElement2* {.pure.} = object lpVtbl*: ptr IHTMLFieldSetElement2Vtbl + IHTMLFieldSetElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_form*: proc(self: ptr IHTMLFieldSetElement2, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLFieldSetElement2, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + IHTMLLegendElement* {.pure.} = object lpVtbl*: ptr IHTMLLegendElementVtbl + IHTMLLegendElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLLegendElement, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLLegendElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLLegendElement2* {.pure.} = object lpVtbl*: ptr IHTMLLegendElement2Vtbl + IHTMLLegendElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_form*: proc(self: ptr IHTMLLegendElement2, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_form*: proc(self: ptr IHTMLLegendElement2, p: ptr ptr IHTMLFormElement): HRESULT {. + stdcall + .} + DispHTMLDivPosition* {.pure.} = object lpVtbl*: ptr DispHTMLDivPositionVtbl + DispHTMLDivPositionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLFieldSetElement* {.pure.} = object lpVtbl*: ptr DispHTMLFieldSetElementVtbl + DispHTMLFieldSetElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLLegendElement* {.pure.} = object lpVtbl*: ptr DispHTMLLegendElementVtbl + DispHTMLLegendElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLSpanFlow* {.pure.} = object lpVtbl*: ptr IHTMLSpanFlowVtbl + IHTMLSpanFlowVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr IHTMLSpanFlow, v: BSTR): HRESULT {.stdcall.} get_align*: proc(self: ptr IHTMLSpanFlow, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLSpanFlow* {.pure.} = object lpVtbl*: ptr DispHTMLSpanFlowVtbl + DispHTMLSpanFlowVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLFrameSetElement* {.pure.} = object lpVtbl*: ptr IHTMLFrameSetElementVtbl + IHTMLFrameSetElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_rows*: proc(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.stdcall.} get_rows*: proc(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.stdcall.} put_cols*: proc(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.stdcall.} get_cols*: proc(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} - get_border*: proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_borderColor*: proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} - get_borderColor*: proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_border*: + proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_borderColor*: + proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} + get_borderColor*: + proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} put_frameBorder*: proc(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.stdcall.} - get_frameBorder*: proc(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.stdcall.} - put_frameSpacing*: proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} - get_frameSpacing*: proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_frameBorder*: + proc(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.stdcall.} + put_frameSpacing*: + proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} + get_frameSpacing*: + proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} put_name*: proc(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.stdcall.} get_name*: proc(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.stdcall.} put_onload*: proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} - get_onload*: proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onload*: + proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onunload*: proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} - get_onunload*: proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} - put_onbeforeunload*: proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeunload*: proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + get_onunload*: + proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_onbeforeunload*: + proc(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeunload*: + proc(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLFrameSetElement2* {.pure.} = object lpVtbl*: ptr IHTMLFrameSetElement2Vtbl + IHTMLFrameSetElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_onbeforeprint*: proc(self: ptr IHTMLFrameSetElement2, v: VARIANT): HRESULT {.stdcall.} - get_onbeforeprint*: proc(self: ptr IHTMLFrameSetElement2, p: ptr VARIANT): HRESULT {.stdcall.} - put_onafterprint*: proc(self: ptr IHTMLFrameSetElement2, v: VARIANT): HRESULT {.stdcall.} - get_onafterprint*: proc(self: ptr IHTMLFrameSetElement2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onbeforeprint*: + proc(self: ptr IHTMLFrameSetElement2, v: VARIANT): HRESULT {.stdcall.} + get_onbeforeprint*: + proc(self: ptr IHTMLFrameSetElement2, p: ptr VARIANT): HRESULT {.stdcall.} + put_onafterprint*: + proc(self: ptr IHTMLFrameSetElement2, v: VARIANT): HRESULT {.stdcall.} + get_onafterprint*: + proc(self: ptr IHTMLFrameSetElement2, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLFrameSetElement3* {.pure.} = object lpVtbl*: ptr IHTMLFrameSetElement3Vtbl + IHTMLFrameSetElement3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_onhashchange*: proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} - get_onhashchange*: proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} - put_onmessage*: proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} - get_onmessage*: proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} - put_onoffline*: proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} - get_onoffline*: proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} - put_ononline*: proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} - get_ononline*: proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} - put_onstorage*: proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} - get_onstorage*: proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_onhashchange*: + proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} + get_onhashchange*: + proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_onmessage*: + proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} + get_onmessage*: + proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_onoffline*: + proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} + get_onoffline*: + proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_ononline*: + proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} + get_ononline*: + proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} + put_onstorage*: + proc(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.stdcall.} + get_onstorage*: + proc(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLFrameSetSite* {.pure.} = object lpVtbl*: ptr DispHTMLFrameSetSiteVtbl + DispHTMLFrameSetSiteVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLBGsound* {.pure.} = object lpVtbl*: ptr IHTMLBGsoundVtbl + IHTMLBGsoundVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLBGsound, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLBGsound, p: ptr BSTR): HRESULT {.stdcall.} @@ -9685,156 +13513,291 @@ get_volume*: proc(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.stdcall.} put_balance*: proc(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.stdcall.} get_balance*: proc(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLBGsound* {.pure.} = object lpVtbl*: ptr DispHTMLBGsoundVtbl + DispHTMLBGsoundVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLFontNamesCollection* {.pure.} = object lpVtbl*: ptr IHTMLFontNamesCollectionVtbl + IHTMLFontNamesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLFontNamesCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLFontNamesCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLFontNamesCollection, index: LONG, pBstr: ptr BSTR): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLFontNamesCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLFontNamesCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLFontNamesCollection, index: LONG, pBstr: ptr BSTR + ): HRESULT {.stdcall.} + IHTMLFontSizesCollection* {.pure.} = object lpVtbl*: ptr IHTMLFontSizesCollectionVtbl + IHTMLFontSizesCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLFontSizesCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLFontSizesCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - get_forFont*: proc(self: ptr IHTMLFontSizesCollection, p: ptr BSTR): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLFontSizesCollection, index: LONG, plSize: ptr LONG): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLFontSizesCollection, p: ptr LONG): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLFontSizesCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + get_forFont*: + proc(self: ptr IHTMLFontSizesCollection, p: ptr BSTR): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLFontSizesCollection, index: LONG, plSize: ptr LONG + ): HRESULT {.stdcall.} + IHTMLOptionsHolder* {.pure.} = object lpVtbl*: ptr IHTMLOptionsHolderVtbl + IHTMLOptionsHolderVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_document*: proc(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} - get_fonts*: proc(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLFontNamesCollection): HRESULT {.stdcall.} + get_document*: + proc(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + get_fonts*: proc( + self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLFontNamesCollection + ): HRESULT {.stdcall.} put_execArg*: proc(self: ptr IHTMLOptionsHolder, v: VARIANT): HRESULT {.stdcall.} - get_execArg*: proc(self: ptr IHTMLOptionsHolder, p: ptr VARIANT): HRESULT {.stdcall.} + get_execArg*: + proc(self: ptr IHTMLOptionsHolder, p: ptr VARIANT): HRESULT {.stdcall.} put_errorLine*: proc(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.stdcall.} get_errorLine*: proc(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.stdcall.} - put_errorCharacter*: proc(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.stdcall.} - get_errorCharacter*: proc(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.stdcall.} + put_errorCharacter*: + proc(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.stdcall.} + get_errorCharacter*: + proc(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.stdcall.} put_errorCode*: proc(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.stdcall.} get_errorCode*: proc(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.stdcall.} put_errorMessage*: proc(self: ptr IHTMLOptionsHolder, v: BSTR): HRESULT {.stdcall.} - get_errorMessage*: proc(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.stdcall.} - put_errorDebug*: proc(self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_errorDebug*: proc(self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_unsecuredWindowOfDocument*: proc(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + get_errorMessage*: + proc(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.stdcall.} + put_errorDebug*: + proc(self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_errorDebug*: + proc(self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_unsecuredWindowOfDocument*: + proc(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} put_findText*: proc(self: ptr IHTMLOptionsHolder, v: BSTR): HRESULT {.stdcall.} get_findText*: proc(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.stdcall.} - put_anythingAfterFrameset*: proc(self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_anythingAfterFrameset*: proc(self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - sizes*: proc(self: ptr IHTMLOptionsHolder, fontName: BSTR, pSizesCollection: ptr ptr IHTMLFontSizesCollection): HRESULT {.stdcall.} - openfiledlg*: proc(self: ptr IHTMLOptionsHolder, initFile: VARIANT, initDir: VARIANT, filter: VARIANT, title: VARIANT, pathName: ptr BSTR): HRESULT {.stdcall.} - savefiledlg*: proc(self: ptr IHTMLOptionsHolder, initFile: VARIANT, initDir: VARIANT, filter: VARIANT, title: VARIANT, pathName: ptr BSTR): HRESULT {.stdcall.} - choosecolordlg*: proc(self: ptr IHTMLOptionsHolder, initColor: VARIANT, rgbColor: ptr LONG): HRESULT {.stdcall.} + put_anythingAfterFrameset*: + proc(self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_anythingAfterFrameset*: + proc(self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + sizes*: proc( + self: ptr IHTMLOptionsHolder, + fontName: BSTR, + pSizesCollection: ptr ptr IHTMLFontSizesCollection, + ): HRESULT {.stdcall.} + openfiledlg*: proc( + self: ptr IHTMLOptionsHolder, + initFile: VARIANT, + initDir: VARIANT, + filter: VARIANT, + title: VARIANT, + pathName: ptr BSTR, + ): HRESULT {.stdcall.} + savefiledlg*: proc( + self: ptr IHTMLOptionsHolder, + initFile: VARIANT, + initDir: VARIANT, + filter: VARIANT, + title: VARIANT, + pathName: ptr BSTR, + ): HRESULT {.stdcall.} + choosecolordlg*: proc( + self: ptr IHTMLOptionsHolder, initColor: VARIANT, rgbColor: ptr LONG + ): HRESULT {.stdcall.} showSecurityInfo*: proc(self: ptr IHTMLOptionsHolder): HRESULT {.stdcall.} - isApartmentModel*: proc(self: ptr IHTMLOptionsHolder, `object`: ptr IHTMLObjectElement, fApartment: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getCharset*: proc(self: ptr IHTMLOptionsHolder, fontName: BSTR, charset: ptr LONG): HRESULT {.stdcall.} - get_secureConnectionInfo*: proc(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.stdcall.} + isApartmentModel*: proc( + self: ptr IHTMLOptionsHolder, + `object`: ptr IHTMLObjectElement, + fApartment: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getCharset*: proc( + self: ptr IHTMLOptionsHolder, fontName: BSTR, charset: ptr LONG + ): HRESULT {.stdcall.} + get_secureConnectionInfo*: + proc(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.stdcall.} + HTMLStyleElementEvents2* {.pure.} = object lpVtbl*: ptr HTMLStyleElementEvents2Vtbl + HTMLStyleElementEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLStyleElementEvents* {.pure.} = object lpVtbl*: ptr HTMLStyleElementEventsVtbl + HTMLStyleElementEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleElement* {.pure.} = object lpVtbl*: ptr IHTMLStyleElementVtbl + IHTMLStyleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr IHTMLStyleElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onload*: proc(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.stdcall.} get_onload*: proc(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.stdcall.} put_onerror*: proc(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.stdcall.} get_onerror*: proc(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.stdcall.} - get_styleSheet*: proc(self: ptr IHTMLStyleElement, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} - put_disabled*: proc(self: ptr IHTMLStyleElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_disabled*: proc(self: ptr IHTMLStyleElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_styleSheet*: + proc(self: ptr IHTMLStyleElement, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + put_disabled*: + proc(self: ptr IHTMLStyleElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_disabled*: + proc(self: ptr IHTMLStyleElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_media*: proc(self: ptr IHTMLStyleElement, v: BSTR): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyleElement2* {.pure.} = object lpVtbl*: ptr IHTMLStyleElement2Vtbl + IHTMLStyleElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_sheet*: proc(self: ptr IHTMLStyleElement2, p: ptr ptr IHTMLStyleSheet): HRESULT {.stdcall.} + get_sheet*: proc(self: ptr IHTMLStyleElement2, p: ptr ptr IHTMLStyleSheet): HRESULT {. + stdcall + .} + DispHTMLStyleElement* {.pure.} = object lpVtbl*: ptr DispHTMLStyleElementVtbl + DispHTMLStyleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStyleFontFace* {.pure.} = object lpVtbl*: ptr IHTMLStyleFontFaceVtbl + IHTMLStyleFontFaceVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_fontsrc*: proc(self: ptr IHTMLStyleFontFace, v: BSTR): HRESULT {.stdcall.} get_fontsrc*: proc(self: ptr IHTMLStyleFontFace, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLStyleFontFace2* {.pure.} = object lpVtbl*: ptr IHTMLStyleFontFace2Vtbl + IHTMLStyleFontFace2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_style*: proc(self: ptr IHTMLStyleFontFace2, p: ptr ptr IHTMLRuleStyle): HRESULT {.stdcall.} + get_style*: proc(self: ptr IHTMLStyleFontFace2, p: ptr ptr IHTMLRuleStyle): HRESULT {. + stdcall + .} + DispHTMLStyleFontFace* {.pure.} = object lpVtbl*: ptr DispHTMLStyleFontFaceVtbl + DispHTMLStyleFontFaceVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLXDomainRequest* {.pure.} = object lpVtbl*: ptr IHTMLXDomainRequestVtbl + IHTMLXDomainRequestVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_responseText*: proc(self: ptr IHTMLXDomainRequest, p: ptr BSTR): HRESULT {.stdcall.} + get_responseText*: + proc(self: ptr IHTMLXDomainRequest, p: ptr BSTR): HRESULT {.stdcall.} put_timeout*: proc(self: ptr IHTMLXDomainRequest, v: LONG): HRESULT {.stdcall.} get_timeout*: proc(self: ptr IHTMLXDomainRequest, p: ptr LONG): HRESULT {.stdcall.} - get_contentType*: proc(self: ptr IHTMLXDomainRequest, p: ptr BSTR): HRESULT {.stdcall.} - put_onprogress*: proc(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.stdcall.} - get_onprogress*: proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} + get_contentType*: + proc(self: ptr IHTMLXDomainRequest, p: ptr BSTR): HRESULT {.stdcall.} + put_onprogress*: + proc(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.stdcall.} + get_onprogress*: + proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} put_onerror*: proc(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.stdcall.} - get_onerror*: proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} + get_onerror*: + proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} put_ontimeout*: proc(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.stdcall.} - get_ontimeout*: proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} + get_ontimeout*: + proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} put_onload*: proc(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.stdcall.} - get_onload*: proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} + get_onload*: + proc(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.stdcall.} abort*: proc(self: ptr IHTMLXDomainRequest): HRESULT {.stdcall.} - open*: proc(self: ptr IHTMLXDomainRequest, bstrMethod: BSTR, bstrUrl: BSTR): HRESULT {.stdcall.} + open*: proc(self: ptr IHTMLXDomainRequest, bstrMethod: BSTR, bstrUrl: BSTR): HRESULT {. + stdcall + .} send*: proc(self: ptr IHTMLXDomainRequest, varBody: VARIANT): HRESULT {.stdcall.} + IHTMLXDomainRequestFactory* {.pure.} = object lpVtbl*: ptr IHTMLXDomainRequestFactoryVtbl + IHTMLXDomainRequestFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IHTMLXDomainRequestFactory, a: ptr ptr IHTMLXDomainRequest): HRESULT {.stdcall.} + create*: proc( + self: ptr IHTMLXDomainRequestFactory, a: ptr ptr IHTMLXDomainRequest + ): HRESULT {.stdcall.} + DispXDomainRequest* {.pure.} = object lpVtbl*: ptr DispXDomainRequestVtbl + DispXDomainRequestVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLStorage2* {.pure.} = object lpVtbl*: ptr IHTMLStorage2Vtbl + IHTMLStorage2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - setItem*: proc(self: ptr IHTMLStorage2, bstrKey: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} + setItem*: + proc(self: ptr IHTMLStorage2, bstrKey: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} + DispHTMLStorage* {.pure.} = object lpVtbl*: ptr DispHTMLStorageVtbl + DispHTMLStorageVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispDOMEvent* {.pure.} = object lpVtbl*: ptr DispDOMEventVtbl + DispDOMEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMUIEvent* {.pure.} = object lpVtbl*: ptr IDOMUIEventVtbl + IDOMUIEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_view*: proc(self: ptr IDOMUIEvent, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} get_detail*: proc(self: ptr IDOMUIEvent, p: ptr LONG): HRESULT {.stdcall.} - initUIEvent*: proc(self: ptr IDOMUIEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, view: ptr IHTMLWindow2, detail: LONG): HRESULT {.stdcall.} + initUIEvent*: proc( + self: ptr IDOMUIEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + view: ptr IHTMLWindow2, + detail: LONG, + ): HRESULT {.stdcall.} + DispDOMUIEvent* {.pure.} = object lpVtbl*: ptr DispDOMUIEventVtbl + DispDOMUIEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMMouseEvent* {.pure.} = object lpVtbl*: ptr IDOMMouseEventVtbl + IDOMMouseEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_screenX*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_screenY*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_clientX*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_clientY*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} - get_ctrlKey*: proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_shiftKey*: proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_altKey*: proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_metaKey*: proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ctrlKey*: + proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_shiftKey*: + proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_altKey*: + proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_metaKey*: + proc(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_button*: proc(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.stdcall.} - get_relatedTarget*: proc(self: ptr IDOMMouseEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} - initMouseEvent*: proc(self: ptr IDOMMouseEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, ctrlKeyArg: VARIANT_BOOL, altKeyArg: VARIANT_BOOL, shiftKeyArg: VARIANT_BOOL, metaKeyArg: VARIANT_BOOL, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget): HRESULT {.stdcall.} - getModifierState*: proc(self: ptr IDOMMouseEvent, keyArg: BSTR, activated: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_relatedTarget*: + proc(self: ptr IDOMMouseEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} + initMouseEvent*: proc( + self: ptr IDOMMouseEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + ctrlKeyArg: VARIANT_BOOL, + altKeyArg: VARIANT_BOOL, + shiftKeyArg: VARIANT_BOOL, + metaKeyArg: VARIANT_BOOL, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + ): HRESULT {.stdcall.} + getModifierState*: proc( + self: ptr IDOMMouseEvent, keyArg: BSTR, activated: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} get_buttons*: proc(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.stdcall.} - get_fromElement*: proc(self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} - get_toElement*: proc(self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_fromElement*: + proc(self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} + get_toElement*: + proc(self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement): HRESULT {.stdcall.} get_x*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_y*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_offsetX*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} @@ -9844,351 +13807,812 @@ get_layerX*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_layerY*: proc(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.stdcall.} get_which*: proc(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.stdcall.} + DispDOMMouseEvent* {.pure.} = object lpVtbl*: ptr DispDOMMouseEventVtbl + DispDOMMouseEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMDragEvent* {.pure.} = object lpVtbl*: ptr IDOMDragEventVtbl + IDOMDragEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_dataTransfer*: proc(self: ptr IDOMDragEvent, p: ptr ptr IHTMLDataTransfer): HRESULT {.stdcall.} - initDragEvent*: proc(self: ptr IDOMDragEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, ctrlKeyArg: VARIANT_BOOL, altKeyArg: VARIANT_BOOL, shiftKeyArg: VARIANT_BOOL, metaKeyArg: VARIANT_BOOL, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget, dataTransferArg: ptr IHTMLDataTransfer): HRESULT {.stdcall.} + get_dataTransfer*: + proc(self: ptr IDOMDragEvent, p: ptr ptr IHTMLDataTransfer): HRESULT {.stdcall.} + initDragEvent*: proc( + self: ptr IDOMDragEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + ctrlKeyArg: VARIANT_BOOL, + altKeyArg: VARIANT_BOOL, + shiftKeyArg: VARIANT_BOOL, + metaKeyArg: VARIANT_BOOL, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + dataTransferArg: ptr IHTMLDataTransfer, + ): HRESULT {.stdcall.} + DispDOMDragEvent* {.pure.} = object lpVtbl*: ptr DispDOMDragEventVtbl + DispDOMDragEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMMouseWheelEvent* {.pure.} = object lpVtbl*: ptr IDOMMouseWheelEventVtbl + IDOMMouseWheelEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_wheelDelta*: proc(self: ptr IDOMMouseWheelEvent, p: ptr LONG): HRESULT {.stdcall.} - initMouseWheelEvent*: proc(self: ptr IDOMMouseWheelEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget, modifiersListArg: BSTR, wheelDeltaArg: LONG): HRESULT {.stdcall.} + get_wheelDelta*: + proc(self: ptr IDOMMouseWheelEvent, p: ptr LONG): HRESULT {.stdcall.} + initMouseWheelEvent*: proc( + self: ptr IDOMMouseWheelEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + modifiersListArg: BSTR, + wheelDeltaArg: LONG, + ): HRESULT {.stdcall.} + DispDOMMouseWheelEvent* {.pure.} = object lpVtbl*: ptr DispDOMMouseWheelEventVtbl + DispDOMMouseWheelEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMWheelEvent* {.pure.} = object lpVtbl*: ptr IDOMWheelEventVtbl + IDOMWheelEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_deltaX*: proc(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.stdcall.} get_deltaY*: proc(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.stdcall.} get_deltaZ*: proc(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.stdcall.} get_deltaMode*: proc(self: ptr IDOMWheelEvent, p: ptr ULONG): HRESULT {.stdcall.} - initWheelEvent*: proc(self: ptr IDOMWheelEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget, modifiersListArg: BSTR, deltaX: LONG, deltaY: LONG, deltaZ: LONG, deltaMode: ULONG): HRESULT {.stdcall.} + initWheelEvent*: proc( + self: ptr IDOMWheelEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + modifiersListArg: BSTR, + deltaX: LONG, + deltaY: LONG, + deltaZ: LONG, + deltaMode: ULONG, + ): HRESULT {.stdcall.} + DispDOMWheelEvent* {.pure.} = object lpVtbl*: ptr DispDOMWheelEventVtbl + DispDOMWheelEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMTextEvent* {.pure.} = object lpVtbl*: ptr IDOMTextEventVtbl + IDOMTextEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_data*: proc(self: ptr IDOMTextEvent, p: ptr BSTR): HRESULT {.stdcall.} get_inputMethod*: proc(self: ptr IDOMTextEvent, p: ptr ULONG): HRESULT {.stdcall.} - initTextEvent*: proc(self: ptr IDOMTextEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, dataArg: BSTR, inputMethod: ULONG, locale: BSTR): HRESULT {.stdcall.} + initTextEvent*: proc( + self: ptr IDOMTextEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + dataArg: BSTR, + inputMethod: ULONG, + locale: BSTR, + ): HRESULT {.stdcall.} get_locale*: proc(self: ptr IDOMTextEvent, p: ptr BSTR): HRESULT {.stdcall.} + DispDOMTextEvent* {.pure.} = object lpVtbl*: ptr DispDOMTextEventVtbl + DispDOMTextEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMKeyboardEvent* {.pure.} = object lpVtbl*: ptr IDOMKeyboardEventVtbl + IDOMKeyboardEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_key*: proc(self: ptr IDOMKeyboardEvent, p: ptr BSTR): HRESULT {.stdcall.} get_location*: proc(self: ptr IDOMKeyboardEvent, p: ptr ULONG): HRESULT {.stdcall.} - get_ctrlKey*: proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_shiftKey*: proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_altKey*: proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_metaKey*: proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_repeat*: proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getModifierState*: proc(self: ptr IDOMKeyboardEvent, keyArg: BSTR, state: ptr VARIANT_BOOL): HRESULT {.stdcall.} - initKeyboardEvent*: proc(self: ptr IDOMKeyboardEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, keyArg: BSTR, locationArg: ULONG, modifiersListArg: BSTR, repeat: VARIANT_BOOL, locale: BSTR): HRESULT {.stdcall.} + get_ctrlKey*: + proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_shiftKey*: + proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_altKey*: + proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_metaKey*: + proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_repeat*: + proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + getModifierState*: proc( + self: ptr IDOMKeyboardEvent, keyArg: BSTR, state: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + initKeyboardEvent*: proc( + self: ptr IDOMKeyboardEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + keyArg: BSTR, + locationArg: ULONG, + modifiersListArg: BSTR, + repeat: VARIANT_BOOL, + locale: BSTR, + ): HRESULT {.stdcall.} get_keyCode*: proc(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.stdcall.} get_charCode*: proc(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.stdcall.} get_which*: proc(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.stdcall.} - get_ie9_char*: proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT): HRESULT {.stdcall.} + get_ie9_char*: + proc(self: ptr IDOMKeyboardEvent, p: ptr VARIANT): HRESULT {.stdcall.} get_locale*: proc(self: ptr IDOMKeyboardEvent, p: ptr BSTR): HRESULT {.stdcall.} + DispDOMKeyboardEvent* {.pure.} = object lpVtbl*: ptr DispDOMKeyboardEventVtbl + DispDOMKeyboardEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMCompositionEvent* {.pure.} = object lpVtbl*: ptr IDOMCompositionEventVtbl + IDOMCompositionEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_data*: proc(self: ptr IDOMCompositionEvent, p: ptr BSTR): HRESULT {.stdcall.} - initCompositionEvent*: proc(self: ptr IDOMCompositionEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, data: BSTR, locale: BSTR): HRESULT {.stdcall.} + initCompositionEvent*: proc( + self: ptr IDOMCompositionEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + data: BSTR, + locale: BSTR, + ): HRESULT {.stdcall.} get_locale*: proc(self: ptr IDOMCompositionEvent, p: ptr BSTR): HRESULT {.stdcall.} + DispDOMCompositionEvent* {.pure.} = object lpVtbl*: ptr DispDOMCompositionEventVtbl + DispDOMCompositionEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMMutationEvent* {.pure.} = object lpVtbl*: ptr IDOMMutationEventVtbl + IDOMMutationEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_relatedNode*: proc(self: ptr IDOMMutationEvent, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_relatedNode*: + proc(self: ptr IDOMMutationEvent, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_prevValue*: proc(self: ptr IDOMMutationEvent, p: ptr BSTR): HRESULT {.stdcall.} get_newValue*: proc(self: ptr IDOMMutationEvent, p: ptr BSTR): HRESULT {.stdcall.} get_attrName*: proc(self: ptr IDOMMutationEvent, p: ptr BSTR): HRESULT {.stdcall.} - get_attrChange*: proc(self: ptr IDOMMutationEvent, p: ptr USHORT): HRESULT {.stdcall.} - initMutationEvent*: proc(self: ptr IDOMMutationEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, relatedNodeArg: ptr IDispatch, prevValueArg: BSTR, newValueArg: BSTR, attrNameArg: BSTR, attrChangeArg: USHORT): HRESULT {.stdcall.} + get_attrChange*: + proc(self: ptr IDOMMutationEvent, p: ptr USHORT): HRESULT {.stdcall.} + initMutationEvent*: proc( + self: ptr IDOMMutationEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + relatedNodeArg: ptr IDispatch, + prevValueArg: BSTR, + newValueArg: BSTR, + attrNameArg: BSTR, + attrChangeArg: USHORT, + ): HRESULT {.stdcall.} + DispDOMMutationEvent* {.pure.} = object lpVtbl*: ptr DispDOMMutationEventVtbl + DispDOMMutationEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMBeforeUnloadEvent* {.pure.} = object lpVtbl*: ptr IDOMBeforeUnloadEventVtbl + IDOMBeforeUnloadEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_returnValue*: proc(self: ptr IDOMBeforeUnloadEvent, v: VARIANT): HRESULT {.stdcall.} - get_returnValue*: proc(self: ptr IDOMBeforeUnloadEvent, p: ptr VARIANT): HRESULT {.stdcall.} + put_returnValue*: + proc(self: ptr IDOMBeforeUnloadEvent, v: VARIANT): HRESULT {.stdcall.} + get_returnValue*: + proc(self: ptr IDOMBeforeUnloadEvent, p: ptr VARIANT): HRESULT {.stdcall.} + DispDOMBeforeUnloadEvent* {.pure.} = object lpVtbl*: ptr DispDOMBeforeUnloadEventVtbl + DispDOMBeforeUnloadEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMFocusEvent* {.pure.} = object lpVtbl*: ptr IDOMFocusEventVtbl + IDOMFocusEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_relatedTarget*: proc(self: ptr IDOMFocusEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} - initFocusEvent*: proc(self: ptr IDOMFocusEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, view: ptr IHTMLWindow2, detail: LONG, relatedTargetArg: ptr IEventTarget): HRESULT {.stdcall.} + get_relatedTarget*: + proc(self: ptr IDOMFocusEvent, p: ptr ptr IEventTarget): HRESULT {.stdcall.} + initFocusEvent*: proc( + self: ptr IDOMFocusEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + view: ptr IHTMLWindow2, + detail: LONG, + relatedTargetArg: ptr IEventTarget, + ): HRESULT {.stdcall.} + DispDOMFocusEvent* {.pure.} = object lpVtbl*: ptr DispDOMFocusEventVtbl + DispDOMFocusEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMCustomEvent* {.pure.} = object lpVtbl*: ptr IDOMCustomEventVtbl + IDOMCustomEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_detail*: proc(self: ptr IDOMCustomEvent, p: ptr VARIANT): HRESULT {.stdcall.} - initCustomEvent*: proc(self: ptr IDOMCustomEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, detail: ptr VARIANT): HRESULT {.stdcall.} + initCustomEvent*: proc( + self: ptr IDOMCustomEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + detail: ptr VARIANT, + ): HRESULT {.stdcall.} + DispDOMCustomEvent* {.pure.} = object lpVtbl*: ptr DispDOMCustomEventVtbl + DispDOMCustomEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl ICanvasGradient* {.pure.} = object lpVtbl*: ptr ICanvasGradientVtbl + ICanvasGradientVtbl* {.pure, inheritable.} = object of IDispatchVtbl - addColorStop*: proc(self: ptr ICanvasGradient, offset: float32, color: BSTR): HRESULT {.stdcall.} + addColorStop*: + proc(self: ptr ICanvasGradient, offset: float32, color: BSTR): HRESULT {.stdcall.} + ICanvasPattern* {.pure.} = object lpVtbl*: ptr ICanvasPatternVtbl + ICanvasPatternVtbl* {.pure, inheritable.} = object of IDispatchVtbl ICanvasTextMetrics* {.pure.} = object lpVtbl*: ptr ICanvasTextMetricsVtbl + ICanvasTextMetricsVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_width*: proc(self: ptr ICanvasTextMetrics, p: ptr float32): HRESULT {.stdcall.} + ICanvasImageData* {.pure.} = object lpVtbl*: ptr ICanvasImageDataVtbl + ICanvasImageDataVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_width*: proc(self: ptr ICanvasImageData, p: ptr ULONG): HRESULT {.stdcall.} get_height*: proc(self: ptr ICanvasImageData, p: ptr ULONG): HRESULT {.stdcall.} get_data*: proc(self: ptr ICanvasImageData, p: ptr VARIANT): HRESULT {.stdcall.} + ICanvasPixelArray* {.pure.} = object lpVtbl*: ptr ICanvasPixelArrayVtbl + ICanvasPixelArrayVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr ICanvasPixelArray, p: ptr ULONG): HRESULT {.stdcall.} + IHTMLCanvasElement* {.pure.} = object lpVtbl*: ptr IHTMLCanvasElementVtbl + IHTMLCanvasElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_width*: proc(self: ptr IHTMLCanvasElement, v: LONG): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLCanvasElement, p: ptr LONG): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLCanvasElement, v: LONG): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLCanvasElement, p: ptr LONG): HRESULT {.stdcall.} - getContext*: proc(self: ptr IHTMLCanvasElement, contextId: BSTR, ppContext: ptr ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} - toDataURL*: proc(self: ptr IHTMLCanvasElement, `type`: BSTR, jpegquality: VARIANT, pUrl: ptr BSTR): HRESULT {.stdcall.} + getContext*: proc( + self: ptr IHTMLCanvasElement, + contextId: BSTR, + ppContext: ptr ptr ICanvasRenderingContext2D, + ): HRESULT {.stdcall.} + toDataURL*: proc( + self: ptr IHTMLCanvasElement, `type`: BSTR, jpegquality: VARIANT, pUrl: ptr BSTR + ): HRESULT {.stdcall.} + ICanvasRenderingContext2D* {.pure.} = object lpVtbl*: ptr ICanvasRenderingContext2DVtbl + ICanvasRenderingContext2DVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_canvas*: proc(self: ptr ICanvasRenderingContext2D, p: ptr ptr IHTMLCanvasElement): HRESULT {.stdcall.} + get_canvas*: proc( + self: ptr ICanvasRenderingContext2D, p: ptr ptr IHTMLCanvasElement + ): HRESULT {.stdcall.} restore*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} save*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} - rotate*: proc(self: ptr ICanvasRenderingContext2D, angle: float32): HRESULT {.stdcall.} - scale*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.stdcall.} - setTransform*: proc(self: ptr ICanvasRenderingContext2D, m11: float32, m12: float32, m21: float32, m22: float32, dx: float32, dy: float32): HRESULT {.stdcall.} - transform*: proc(self: ptr ICanvasRenderingContext2D, m11: float32, m12: float32, m21: float32, m22: float32, dx: float32, dy: float32): HRESULT {.stdcall.} - translate*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.stdcall.} - put_globalAlpha*: proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} - get_globalAlpha*: proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} - put_globalCompositeOperation*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_globalCompositeOperation*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - put_fillStyle*: proc(self: ptr ICanvasRenderingContext2D, v: VARIANT): HRESULT {.stdcall.} - get_fillStyle*: proc(self: ptr ICanvasRenderingContext2D, p: ptr VARIANT): HRESULT {.stdcall.} - put_strokeStyle*: proc(self: ptr ICanvasRenderingContext2D, v: VARIANT): HRESULT {.stdcall.} - get_strokeStyle*: proc(self: ptr ICanvasRenderingContext2D, p: ptr VARIANT): HRESULT {.stdcall.} - createLinearGradient*: proc(self: ptr ICanvasRenderingContext2D, x0: float32, y0: float32, x1: float32, y1: float32, ppCanvasGradient: ptr ptr ICanvasGradient): HRESULT {.stdcall.} - createRadialGradient*: proc(self: ptr ICanvasRenderingContext2D, x0: float32, y0: float32, r0: float32, x1: float32, y1: float32, r1: float32, ppCanvasGradient: ptr ptr ICanvasGradient): HRESULT {.stdcall.} - createPattern*: proc(self: ptr ICanvasRenderingContext2D, image: ptr IDispatch, repetition: VARIANT, ppCanvasPattern: ptr ptr ICanvasPattern): HRESULT {.stdcall.} - put_lineCap*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_lineCap*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - put_lineJoin*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_lineJoin*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - put_lineWidth*: proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} - get_lineWidth*: proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} - put_miterLimit*: proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} - get_miterLimit*: proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} - put_shadowBlur*: proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} - get_shadowBlur*: proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} - put_shadowColor*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_shadowColor*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - put_shadowOffsetX*: proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} - get_shadowOffsetX*: proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} - put_shadowOffsetY*: proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} - get_shadowOffsetY*: proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} - clearRect*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.stdcall.} - fillRect*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.stdcall.} - strokeRect*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.stdcall.} - arc*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, radius: float32, startAngle: float32, endAngle: float32, anticlockwise: WINBOOL): HRESULT {.stdcall.} - arcTo*: proc(self: ptr ICanvasRenderingContext2D, x1: float32, y1: float32, x2: float32, y2: float32, radius: float32): HRESULT {.stdcall.} + rotate*: + proc(self: ptr ICanvasRenderingContext2D, angle: float32): HRESULT {.stdcall.} + scale*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {. + stdcall + .} + setTransform*: proc( + self: ptr ICanvasRenderingContext2D, + m11: float32, + m12: float32, + m21: float32, + m22: float32, + dx: float32, + dy: float32, + ): HRESULT {.stdcall.} + transform*: proc( + self: ptr ICanvasRenderingContext2D, + m11: float32, + m12: float32, + m21: float32, + m22: float32, + dx: float32, + dy: float32, + ): HRESULT {.stdcall.} + translate*: proc( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32 + ): HRESULT {.stdcall.} + put_globalAlpha*: + proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} + get_globalAlpha*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} + put_globalCompositeOperation*: + proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} + get_globalCompositeOperation*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + put_fillStyle*: + proc(self: ptr ICanvasRenderingContext2D, v: VARIANT): HRESULT {.stdcall.} + get_fillStyle*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr VARIANT): HRESULT {.stdcall.} + put_strokeStyle*: + proc(self: ptr ICanvasRenderingContext2D, v: VARIANT): HRESULT {.stdcall.} + get_strokeStyle*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr VARIANT): HRESULT {.stdcall.} + createLinearGradient*: proc( + self: ptr ICanvasRenderingContext2D, + x0: float32, + y0: float32, + x1: float32, + y1: float32, + ppCanvasGradient: ptr ptr ICanvasGradient, + ): HRESULT {.stdcall.} + createRadialGradient*: proc( + self: ptr ICanvasRenderingContext2D, + x0: float32, + y0: float32, + r0: float32, + x1: float32, + y1: float32, + r1: float32, + ppCanvasGradient: ptr ptr ICanvasGradient, + ): HRESULT {.stdcall.} + createPattern*: proc( + self: ptr ICanvasRenderingContext2D, + image: ptr IDispatch, + repetition: VARIANT, + ppCanvasPattern: ptr ptr ICanvasPattern, + ): HRESULT {.stdcall.} + put_lineCap*: + proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} + get_lineCap*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + put_lineJoin*: + proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} + get_lineJoin*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + put_lineWidth*: + proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} + get_lineWidth*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} + put_miterLimit*: + proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} + get_miterLimit*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} + put_shadowBlur*: + proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} + get_shadowBlur*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} + put_shadowColor*: + proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} + get_shadowColor*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + put_shadowOffsetX*: + proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} + get_shadowOffsetX*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} + put_shadowOffsetY*: + proc(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.stdcall.} + get_shadowOffsetY*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.stdcall.} + clearRect*: proc( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + w: float32, + h: float32, + ): HRESULT {.stdcall.} + fillRect*: proc( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + w: float32, + h: float32, + ): HRESULT {.stdcall.} + strokeRect*: proc( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + w: float32, + h: float32, + ): HRESULT {.stdcall.} + arc*: proc( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + radius: float32, + startAngle: float32, + endAngle: float32, + anticlockwise: WINBOOL, + ): HRESULT {.stdcall.} + arcTo*: proc( + self: ptr ICanvasRenderingContext2D, + x1: float32, + y1: float32, + x2: float32, + y2: float32, + radius: float32, + ): HRESULT {.stdcall.} beginPath*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} - bezierCurveTo*: proc(self: ptr ICanvasRenderingContext2D, cp1x: float32, cp1y: float32, cp2x: float32, cp2y: float32, x: float32, y: float32): HRESULT {.stdcall.} + bezierCurveTo*: proc( + self: ptr ICanvasRenderingContext2D, + cp1x: float32, + cp1y: float32, + cp2x: float32, + cp2y: float32, + x: float32, + y: float32, + ): HRESULT {.stdcall.} clip*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} closePath*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} fill*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} - lineTo*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.stdcall.} - moveTo*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.stdcall.} - quadraticCurveTo*: proc(self: ptr ICanvasRenderingContext2D, cpx: float32, cpy: float32, x: float32, y: float32): HRESULT {.stdcall.} - rect*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.stdcall.} + lineTo*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {. + stdcall + .} + moveTo*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {. + stdcall + .} + quadraticCurveTo*: proc( + self: ptr ICanvasRenderingContext2D, + cpx: float32, + cpy: float32, + x: float32, + y: float32, + ): HRESULT {.stdcall.} + rect*: proc( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + w: float32, + h: float32, + ): HRESULT {.stdcall.} stroke*: proc(self: ptr ICanvasRenderingContext2D): HRESULT {.stdcall.} - isPointInPath*: proc(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + isPointInPath*: proc( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + pResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} put_font*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_font*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - put_textAlign*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_textAlign*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - put_textBaseline*: proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} - get_textBaseline*: proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} - fillText*: proc(self: ptr ICanvasRenderingContext2D, text: BSTR, x: float32, y: float32, maxWidth: VARIANT): HRESULT {.stdcall.} - measureText*: proc(self: ptr ICanvasRenderingContext2D, text: BSTR, ppCanvasTextMetrics: ptr ptr ICanvasTextMetrics): HRESULT {.stdcall.} - strokeText*: proc(self: ptr ICanvasRenderingContext2D, text: BSTR, x: float32, y: float32, maxWidth: VARIANT): HRESULT {.stdcall.} - drawImage*: proc(self: ptr ICanvasRenderingContext2D, pSrc: ptr IDispatch, a1: VARIANT, a2: VARIANT, a3: VARIANT, a4: VARIANT, a5: VARIANT, a6: VARIANT, a7: VARIANT, a8: VARIANT): HRESULT {.stdcall.} - createImageData*: proc(self: ptr ICanvasRenderingContext2D, a1: VARIANT, a2: VARIANT, ppCanvasImageData: ptr ptr ICanvasImageData): HRESULT {.stdcall.} - getImageData*: proc(self: ptr ICanvasRenderingContext2D, sx: float32, sy: float32, sw: float32, sh: float32, ppCanvasImageData: ptr ptr ICanvasImageData): HRESULT {.stdcall.} - putImageData*: proc(self: ptr ICanvasRenderingContext2D, imagedata: ptr ICanvasImageData, dx: float32, dy: float32, dirtyX: VARIANT, dirtyY: VARIANT, dirtyWidth: VARIANT, dirtyHeight: VARIANT): HRESULT {.stdcall.} + get_font*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + put_textAlign*: + proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} + get_textAlign*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + put_textBaseline*: + proc(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.stdcall.} + get_textBaseline*: + proc(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.stdcall.} + fillText*: proc( + self: ptr ICanvasRenderingContext2D, + text: BSTR, + x: float32, + y: float32, + maxWidth: VARIANT, + ): HRESULT {.stdcall.} + measureText*: proc( + self: ptr ICanvasRenderingContext2D, + text: BSTR, + ppCanvasTextMetrics: ptr ptr ICanvasTextMetrics, + ): HRESULT {.stdcall.} + strokeText*: proc( + self: ptr ICanvasRenderingContext2D, + text: BSTR, + x: float32, + y: float32, + maxWidth: VARIANT, + ): HRESULT {.stdcall.} + drawImage*: proc( + self: ptr ICanvasRenderingContext2D, + pSrc: ptr IDispatch, + a1: VARIANT, + a2: VARIANT, + a3: VARIANT, + a4: VARIANT, + a5: VARIANT, + a6: VARIANT, + a7: VARIANT, + a8: VARIANT, + ): HRESULT {.stdcall.} + createImageData*: proc( + self: ptr ICanvasRenderingContext2D, + a1: VARIANT, + a2: VARIANT, + ppCanvasImageData: ptr ptr ICanvasImageData, + ): HRESULT {.stdcall.} + getImageData*: proc( + self: ptr ICanvasRenderingContext2D, + sx: float32, + sy: float32, + sw: float32, + sh: float32, + ppCanvasImageData: ptr ptr ICanvasImageData, + ): HRESULT {.stdcall.} + putImageData*: proc( + self: ptr ICanvasRenderingContext2D, + imagedata: ptr ICanvasImageData, + dx: float32, + dy: float32, + dirtyX: VARIANT, + dirtyY: VARIANT, + dirtyWidth: VARIANT, + dirtyHeight: VARIANT, + ): HRESULT {.stdcall.} + DispCanvasGradient* {.pure.} = object lpVtbl*: ptr DispCanvasGradientVtbl + DispCanvasGradientVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispCanvasPattern* {.pure.} = object lpVtbl*: ptr DispCanvasPatternVtbl + DispCanvasPatternVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispCanvasTextMetrics* {.pure.} = object lpVtbl*: ptr DispCanvasTextMetricsVtbl + DispCanvasTextMetricsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispCanvasImageData* {.pure.} = object lpVtbl*: ptr DispCanvasImageDataVtbl + DispCanvasImageDataVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispCanvasRenderingContext2D* {.pure.} = object lpVtbl*: ptr DispCanvasRenderingContext2DVtbl + DispCanvasRenderingContext2DVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLCanvasElement* {.pure.} = object lpVtbl*: ptr DispHTMLCanvasElementVtbl + DispHTMLCanvasElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMProgressEvent* {.pure.} = object lpVtbl*: ptr IDOMProgressEventVtbl + IDOMProgressEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_lengthComputable*: proc(self: ptr IDOMProgressEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_loaded*: proc(self: ptr IDOMProgressEvent, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_lengthComputable*: + proc(self: ptr IDOMProgressEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_loaded*: + proc(self: ptr IDOMProgressEvent, p: ptr ULONGLONG): HRESULT {.stdcall.} get_total*: proc(self: ptr IDOMProgressEvent, p: ptr ULONGLONG): HRESULT {.stdcall.} - initProgressEvent*: proc(self: ptr IDOMProgressEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, lengthComputableArg: VARIANT_BOOL, loadedArg: ULONGLONG, totalArg: ULONGLONG): HRESULT {.stdcall.} + initProgressEvent*: proc( + self: ptr IDOMProgressEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + lengthComputableArg: VARIANT_BOOL, + loadedArg: ULONGLONG, + totalArg: ULONGLONG, + ): HRESULT {.stdcall.} + DispDOMProgressEvent* {.pure.} = object lpVtbl*: ptr DispDOMProgressEventVtbl + DispDOMProgressEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMMessageEvent* {.pure.} = object lpVtbl*: ptr IDOMMessageEventVtbl + IDOMMessageEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_data*: proc(self: ptr IDOMMessageEvent, p: ptr BSTR): HRESULT {.stdcall.} get_origin*: proc(self: ptr IDOMMessageEvent, p: ptr BSTR): HRESULT {.stdcall.} - get_source*: proc(self: ptr IDOMMessageEvent, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} - initMessageEvent*: proc(self: ptr IDOMMessageEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, data: BSTR, origin: BSTR, lastEventId: BSTR, source: ptr IHTMLWindow2): HRESULT {.stdcall.} + get_source*: + proc(self: ptr IDOMMessageEvent, p: ptr ptr IHTMLWindow2): HRESULT {.stdcall.} + initMessageEvent*: proc( + self: ptr IDOMMessageEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + data: BSTR, + origin: BSTR, + lastEventId: BSTR, + source: ptr IHTMLWindow2, + ): HRESULT {.stdcall.} + DispDOMMessageEvent* {.pure.} = object lpVtbl*: ptr DispDOMMessageEventVtbl + DispDOMMessageEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMSiteModeEvent* {.pure.} = object lpVtbl*: ptr IDOMSiteModeEventVtbl + IDOMSiteModeEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_buttonID*: proc(self: ptr IDOMSiteModeEvent, p: ptr LONG): HRESULT {.stdcall.} get_actionURL*: proc(self: ptr IDOMSiteModeEvent, p: ptr BSTR): HRESULT {.stdcall.} + DispDOMSiteModeEvent* {.pure.} = object lpVtbl*: ptr DispDOMSiteModeEventVtbl + DispDOMSiteModeEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMStorageEvent* {.pure.} = object lpVtbl*: ptr IDOMStorageEventVtbl + IDOMStorageEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_key*: proc(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.stdcall.} get_oldValue*: proc(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.stdcall.} get_newValue*: proc(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.stdcall.} get_url*: proc(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.stdcall.} - get_storageArea*: proc(self: ptr IDOMStorageEvent, p: ptr ptr IHTMLStorage): HRESULT {.stdcall.} - initStorageEvent*: proc(self: ptr IDOMStorageEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, keyArg: BSTR, oldValueArg: BSTR, newValueArg: BSTR, urlArg: BSTR, storageAreaArg: ptr IHTMLStorage): HRESULT {.stdcall.} + get_storageArea*: + proc(self: ptr IDOMStorageEvent, p: ptr ptr IHTMLStorage): HRESULT {.stdcall.} + initStorageEvent*: proc( + self: ptr IDOMStorageEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + keyArg: BSTR, + oldValueArg: BSTR, + newValueArg: BSTR, + urlArg: BSTR, + storageAreaArg: ptr IHTMLStorage, + ): HRESULT {.stdcall.} + DispDOMStorageEvent* {.pure.} = object lpVtbl*: ptr DispDOMStorageEventVtbl + DispDOMStorageEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IXMLHttpRequestEventTarget* {.pure.} = object lpVtbl*: ptr IXMLHttpRequestEventTargetVtbl + IXMLHttpRequestEventTargetVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispXMLHttpRequestEventTarget* {.pure.} = object lpVtbl*: ptr DispXMLHttpRequestEventTargetVtbl + DispXMLHttpRequestEventTargetVtbl* {.pure, inheritable.} = object of IDispatchVtbl HTMLXMLHttpRequestEvents* {.pure.} = object lpVtbl*: ptr HTMLXMLHttpRequestEventsVtbl + HTMLXMLHttpRequestEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLXMLHttpRequest* {.pure.} = object lpVtbl*: ptr IHTMLXMLHttpRequestVtbl + IHTMLXMLHttpRequestVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_readyState*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr LONG): HRESULT {.stdcall.} - get_responseBody*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT): HRESULT {.stdcall.} - get_responseText*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr BSTR): HRESULT {.stdcall.} - get_responseXML*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_readyState*: + proc(self: ptr IHTMLXMLHttpRequest, p: ptr LONG): HRESULT {.stdcall.} + get_responseBody*: + proc(self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT): HRESULT {.stdcall.} + get_responseText*: + proc(self: ptr IHTMLXMLHttpRequest, p: ptr BSTR): HRESULT {.stdcall.} + get_responseXML*: + proc(self: ptr IHTMLXMLHttpRequest, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_status*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr LONG): HRESULT {.stdcall.} - get_statusText*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr BSTR): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLXMLHttpRequest, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT): HRESULT {.stdcall.} + get_statusText*: + proc(self: ptr IHTMLXMLHttpRequest, p: ptr BSTR): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLXMLHttpRequest, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT): HRESULT {.stdcall.} abort*: proc(self: ptr IHTMLXMLHttpRequest): HRESULT {.stdcall.} - open*: proc(self: ptr IHTMLXMLHttpRequest, bstrMethod: BSTR, bstrUrl: BSTR, varAsync: VARIANT, varUser: VARIANT, varPassword: VARIANT): HRESULT {.stdcall.} + open*: proc( + self: ptr IHTMLXMLHttpRequest, + bstrMethod: BSTR, + bstrUrl: BSTR, + varAsync: VARIANT, + varUser: VARIANT, + varPassword: VARIANT, + ): HRESULT {.stdcall.} send*: proc(self: ptr IHTMLXMLHttpRequest, varBody: VARIANT): HRESULT {.stdcall.} - getAllResponseHeaders*: proc(self: ptr IHTMLXMLHttpRequest, a: ptr BSTR): HRESULT {.stdcall.} - getResponseHeader*: proc(self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, a: ptr BSTR): HRESULT {.stdcall.} - setRequestHeader*: proc(self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} + getAllResponseHeaders*: + proc(self: ptr IHTMLXMLHttpRequest, a: ptr BSTR): HRESULT {.stdcall.} + getResponseHeader*: proc( + self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, a: ptr BSTR + ): HRESULT {.stdcall.} + setRequestHeader*: proc( + self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR + ): HRESULT {.stdcall.} + IHTMLXMLHttpRequest2* {.pure.} = object lpVtbl*: ptr IHTMLXMLHttpRequest2Vtbl + IHTMLXMLHttpRequest2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_timeout*: proc(self: ptr IHTMLXMLHttpRequest2, v: LONG): HRESULT {.stdcall.} get_timeout*: proc(self: ptr IHTMLXMLHttpRequest2, p: ptr LONG): HRESULT {.stdcall.} - put_ontimeout*: proc(self: ptr IHTMLXMLHttpRequest2, v: VARIANT): HRESULT {.stdcall.} - get_ontimeout*: proc(self: ptr IHTMLXMLHttpRequest2, p: ptr VARIANT): HRESULT {.stdcall.} + put_ontimeout*: + proc(self: ptr IHTMLXMLHttpRequest2, v: VARIANT): HRESULT {.stdcall.} + get_ontimeout*: + proc(self: ptr IHTMLXMLHttpRequest2, p: ptr VARIANT): HRESULT {.stdcall.} + IHTMLXMLHttpRequestFactory* {.pure.} = object lpVtbl*: ptr IHTMLXMLHttpRequestFactoryVtbl + IHTMLXMLHttpRequestFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IHTMLXMLHttpRequestFactory, a: ptr ptr IHTMLXMLHttpRequest): HRESULT {.stdcall.} + create*: proc( + self: ptr IHTMLXMLHttpRequestFactory, a: ptr ptr IHTMLXMLHttpRequest + ): HRESULT {.stdcall.} + DispHTMLXMLHttpRequest* {.pure.} = object lpVtbl*: ptr DispHTMLXMLHttpRequestVtbl + DispHTMLXMLHttpRequestVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGAngle* {.pure.} = object lpVtbl*: ptr ISVGAngleVtbl + ISVGAngleVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_unitType*: proc(self: ptr ISVGAngle, v: int16): HRESULT {.stdcall.} get_unitType*: proc(self: ptr ISVGAngle, p: ptr int16): HRESULT {.stdcall.} put_value*: proc(self: ptr ISVGAngle, v: float32): HRESULT {.stdcall.} get_value*: proc(self: ptr ISVGAngle, p: ptr float32): HRESULT {.stdcall.} - put_valueInSpecifiedUnits*: proc(self: ptr ISVGAngle, v: float32): HRESULT {.stdcall.} - get_valueInSpecifiedUnits*: proc(self: ptr ISVGAngle, p: ptr float32): HRESULT {.stdcall.} + put_valueInSpecifiedUnits*: + proc(self: ptr ISVGAngle, v: float32): HRESULT {.stdcall.} + get_valueInSpecifiedUnits*: + proc(self: ptr ISVGAngle, p: ptr float32): HRESULT {.stdcall.} put_valueAsString*: proc(self: ptr ISVGAngle, v: BSTR): HRESULT {.stdcall.} get_valueAsString*: proc(self: ptr ISVGAngle, p: ptr BSTR): HRESULT {.stdcall.} - newValueSpecifiedUnits*: proc(self: ptr ISVGAngle, unitType: int16, valueInSpecifiedUnits: float32): HRESULT {.stdcall.} - convertToSpecifiedUnits*: proc(self: ptr ISVGAngle, unitType: int16): HRESULT {.stdcall.} + newValueSpecifiedUnits*: proc( + self: ptr ISVGAngle, unitType: int16, valueInSpecifiedUnits: float32 + ): HRESULT {.stdcall.} + convertToSpecifiedUnits*: + proc(self: ptr ISVGAngle, unitType: int16): HRESULT {.stdcall.} + ISVGAnimatedString* {.pure.} = object lpVtbl*: ptr ISVGAnimatedStringVtbl + ISVGAnimatedStringVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_baseVal*: proc(self: ptr ISVGAnimatedString, v: BSTR): HRESULT {.stdcall.} get_baseVal*: proc(self: ptr ISVGAnimatedString, p: ptr BSTR): HRESULT {.stdcall.} get_animVal*: proc(self: ptr ISVGAnimatedString, p: ptr BSTR): HRESULT {.stdcall.} + ISVGStylable* {.pure.} = object lpVtbl*: ptr ISVGStylableVtbl + ISVGStylableVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_className*: proc(self: ptr ISVGStylable, p: ptr ptr ISVGAnimatedString): HRESULT {.stdcall.} + get_className*: + proc(self: ptr ISVGStylable, p: ptr ptr ISVGAnimatedString): HRESULT {.stdcall.} + ISVGLength* {.pure.} = object lpVtbl*: ptr ISVGLengthVtbl + ISVGLengthVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_unitType*: proc(self: ptr ISVGLength, v: int16): HRESULT {.stdcall.} get_unitType*: proc(self: ptr ISVGLength, p: ptr int16): HRESULT {.stdcall.} put_value*: proc(self: ptr ISVGLength, v: float32): HRESULT {.stdcall.} get_value*: proc(self: ptr ISVGLength, p: ptr float32): HRESULT {.stdcall.} - put_valueInSpecifiedUnits*: proc(self: ptr ISVGLength, v: float32): HRESULT {.stdcall.} - get_valueInSpecifiedUnits*: proc(self: ptr ISVGLength, p: ptr float32): HRESULT {.stdcall.} + put_valueInSpecifiedUnits*: + proc(self: ptr ISVGLength, v: float32): HRESULT {.stdcall.} + get_valueInSpecifiedUnits*: + proc(self: ptr ISVGLength, p: ptr float32): HRESULT {.stdcall.} put_valueAsString*: proc(self: ptr ISVGLength, v: BSTR): HRESULT {.stdcall.} get_valueAsString*: proc(self: ptr ISVGLength, p: ptr BSTR): HRESULT {.stdcall.} - newValueSpecifiedUnits*: proc(self: ptr ISVGLength, unitType: int16, valueInSpecifiedUnits: float32): HRESULT {.stdcall.} - convertToSpecifiedUnits*: proc(self: ptr ISVGLength, unitType: int16): HRESULT {.stdcall.} + newValueSpecifiedUnits*: proc( + self: ptr ISVGLength, unitType: int16, valueInSpecifiedUnits: float32 + ): HRESULT {.stdcall.} + convertToSpecifiedUnits*: + proc(self: ptr ISVGLength, unitType: int16): HRESULT {.stdcall.} + ISVGAnimatedLength* {.pure.} = object lpVtbl*: ptr ISVGAnimatedLengthVtbl + ISVGAnimatedLengthVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedLength, v: ptr ISVGLength): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedLength, v: ptr ISVGLength): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength): HRESULT {.stdcall.} + putref_baseVal*: + proc(self: ptr ISVGAnimatedLength, v: ptr ISVGLength): HRESULT {.stdcall.} + get_baseVal*: + proc(self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength): HRESULT {.stdcall.} + putref_animVal*: + proc(self: ptr ISVGAnimatedLength, v: ptr ISVGLength): HRESULT {.stdcall.} + get_animVal*: + proc(self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength): HRESULT {.stdcall.} + ISVGRect* {.pure.} = object lpVtbl*: ptr ISVGRectVtbl + ISVGRectVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGRect, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGRect, p: ptr float32): HRESULT {.stdcall.} @@ -10198,11 +14622,14 @@ get_width*: proc(self: ptr ISVGRect, p: ptr float32): HRESULT {.stdcall.} put_height*: proc(self: ptr ISVGRect, v: float32): HRESULT {.stdcall.} get_height*: proc(self: ptr ISVGRect, p: ptr float32): HRESULT {.stdcall.} + ISVGViewSpec* {.pure.} = object lpVtbl*: ptr ISVGViewSpecVtbl + ISVGViewSpecVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGMatrix* {.pure.} = object lpVtbl*: ptr ISVGMatrixVtbl + ISVGMatrixVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_a*: proc(self: ptr ISVGMatrix, v: float32): HRESULT {.stdcall.} get_a*: proc(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.stdcall.} @@ -10216,337 +14643,694 @@ get_e*: proc(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.stdcall.} put_f*: proc(self: ptr ISVGMatrix, v: float32): HRESULT {.stdcall.} get_f*: proc(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.stdcall.} - multiply*: proc(self: ptr ISVGMatrix, secondMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - inverse*: proc(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - translate*: proc(self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - scale*: proc(self: ptr ISVGMatrix, scaleFactor: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - scaleNonUniform*: proc(self: ptr ISVGMatrix, scaleFactorX: float32, scaleFactorY: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - rotate*: proc(self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - rotateFromVector*: proc(self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - flipX*: proc(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - flipY*: proc(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - skewX*: proc(self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - skewY*: proc(self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + multiply*: proc( + self: ptr ISVGMatrix, secondMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + inverse*: + proc(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + translate*: proc( + self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + scale*: proc( + self: ptr ISVGMatrix, scaleFactor: float32, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + scaleNonUniform*: proc( + self: ptr ISVGMatrix, + scaleFactorX: float32, + scaleFactorY: float32, + ppResult: ptr ptr ISVGMatrix, + ): HRESULT {.stdcall.} + rotate*: proc( + self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + rotateFromVector*: proc( + self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + flipX*: + proc(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + flipY*: + proc(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + skewX*: proc( + self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + skewY*: proc( + self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + ISVGPoint* {.pure.} = object lpVtbl*: ptr ISVGPointVtbl + ISVGPointVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPoint, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPoint, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPoint, v: float32): HRESULT {.stdcall.} get_y*: proc(self: ptr ISVGPoint, p: ptr float32): HRESULT {.stdcall.} - matrixTransform*: proc(self: ptr ISVGPoint, pMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} + matrixTransform*: proc( + self: ptr ISVGPoint, pMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + ISVGNumber* {.pure.} = object lpVtbl*: ptr ISVGNumberVtbl + ISVGNumberVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_value*: proc(self: ptr ISVGNumber, v: float32): HRESULT {.stdcall.} get_value*: proc(self: ptr ISVGNumber, p: ptr float32): HRESULT {.stdcall.} + ISVGTransform* {.pure.} = object lpVtbl*: ptr ISVGTransformVtbl + ISVGTransformVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr ISVGTransform, v: int16): HRESULT {.stdcall.} get_type*: proc(self: ptr ISVGTransform, p: ptr int16): HRESULT {.stdcall.} - putref_matrix*: proc(self: ptr ISVGTransform, v: ptr ISVGMatrix): HRESULT {.stdcall.} - get_matrix*: proc(self: ptr ISVGTransform, p: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + putref_matrix*: + proc(self: ptr ISVGTransform, v: ptr ISVGMatrix): HRESULT {.stdcall.} + get_matrix*: + proc(self: ptr ISVGTransform, p: ptr ptr ISVGMatrix): HRESULT {.stdcall.} put_angle*: proc(self: ptr ISVGTransform, v: float32): HRESULT {.stdcall.} get_angle*: proc(self: ptr ISVGTransform, p: ptr float32): HRESULT {.stdcall.} - setMatrix*: proc(self: ptr ISVGTransform, matrix: ptr ISVGMatrix): HRESULT {.stdcall.} - setTranslate*: proc(self: ptr ISVGTransform, tx: float32, ty: float32): HRESULT {.stdcall.} - setScale*: proc(self: ptr ISVGTransform, sx: float32, sy: float32): HRESULT {.stdcall.} - setRotate*: proc(self: ptr ISVGTransform, angle: float32, cx: float32, cy: float32): HRESULT {.stdcall.} + setMatrix*: + proc(self: ptr ISVGTransform, matrix: ptr ISVGMatrix): HRESULT {.stdcall.} + setTranslate*: + proc(self: ptr ISVGTransform, tx: float32, ty: float32): HRESULT {.stdcall.} + setScale*: + proc(self: ptr ISVGTransform, sx: float32, sy: float32): HRESULT {.stdcall.} + setRotate*: proc( + self: ptr ISVGTransform, angle: float32, cx: float32, cy: float32 + ): HRESULT {.stdcall.} setSkewX*: proc(self: ptr ISVGTransform, angle: float32): HRESULT {.stdcall.} setSkewY*: proc(self: ptr ISVGTransform, angle: float32): HRESULT {.stdcall.} + ISVGSVGElement* {.pure.} = object lpVtbl*: ptr ISVGSVGElementVtbl + ISVGSVGElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x*: proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_width*: proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_width*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_height*: proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_height*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_x*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_y*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_width*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_width*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_height*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_height*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} put_contentScriptType*: proc(self: ptr ISVGSVGElement, v: BSTR): HRESULT {.stdcall.} - get_contentScriptType*: proc(self: ptr ISVGSVGElement, p: ptr BSTR): HRESULT {.stdcall.} + get_contentScriptType*: + proc(self: ptr ISVGSVGElement, p: ptr BSTR): HRESULT {.stdcall.} put_contentStyleType*: proc(self: ptr ISVGSVGElement, v: BSTR): HRESULT {.stdcall.} - get_contentStyleType*: proc(self: ptr ISVGSVGElement, p: ptr BSTR): HRESULT {.stdcall.} - putref_viewport*: proc(self: ptr ISVGSVGElement, v: ptr ISVGRect): HRESULT {.stdcall.} - get_viewport*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGRect): HRESULT {.stdcall.} - put_pixelUnitToMillimeterX*: proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} - get_pixelUnitToMillimeterX*: proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} - put_pixelUnitToMillimeterY*: proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} - get_pixelUnitToMillimeterY*: proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} - put_screenPixelToMillimeterX*: proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} - get_screenPixelToMillimeterX*: proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} - put_screenPixelToMillimeterY*: proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} - get_screenPixelToMillimeterY*: proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} - put_useCurrentView*: proc(self: ptr ISVGSVGElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_useCurrentView*: proc(self: ptr ISVGSVGElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - putref_currentView*: proc(self: ptr ISVGSVGElement, v: ptr ISVGViewSpec): HRESULT {.stdcall.} - get_currentView*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGViewSpec): HRESULT {.stdcall.} + get_contentStyleType*: + proc(self: ptr ISVGSVGElement, p: ptr BSTR): HRESULT {.stdcall.} + putref_viewport*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGRect): HRESULT {.stdcall.} + get_viewport*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGRect): HRESULT {.stdcall.} + put_pixelUnitToMillimeterX*: + proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} + get_pixelUnitToMillimeterX*: + proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} + put_pixelUnitToMillimeterY*: + proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} + get_pixelUnitToMillimeterY*: + proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} + put_screenPixelToMillimeterX*: + proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} + get_screenPixelToMillimeterX*: + proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} + put_screenPixelToMillimeterY*: + proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} + get_screenPixelToMillimeterY*: + proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} + put_useCurrentView*: + proc(self: ptr ISVGSVGElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_useCurrentView*: + proc(self: ptr ISVGSVGElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + putref_currentView*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGViewSpec): HRESULT {.stdcall.} + get_currentView*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGViewSpec): HRESULT {.stdcall.} put_currentScale*: proc(self: ptr ISVGSVGElement, v: float32): HRESULT {.stdcall.} - get_currentScale*: proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} - putref_currentTranslate*: proc(self: ptr ISVGSVGElement, v: ptr ISVGPoint): HRESULT {.stdcall.} - get_currentTranslate*: proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGPoint): HRESULT {.stdcall.} - suspendRedraw*: proc(self: ptr ISVGSVGElement, maxWaitMilliseconds: ULONG, pResult: ptr ULONG): HRESULT {.stdcall.} - unsuspendRedraw*: proc(self: ptr ISVGSVGElement, suspendHandeID: ULONG): HRESULT {.stdcall.} + get_currentScale*: + proc(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.stdcall.} + putref_currentTranslate*: + proc(self: ptr ISVGSVGElement, v: ptr ISVGPoint): HRESULT {.stdcall.} + get_currentTranslate*: + proc(self: ptr ISVGSVGElement, p: ptr ptr ISVGPoint): HRESULT {.stdcall.} + suspendRedraw*: proc( + self: ptr ISVGSVGElement, maxWaitMilliseconds: ULONG, pResult: ptr ULONG + ): HRESULT {.stdcall.} + unsuspendRedraw*: + proc(self: ptr ISVGSVGElement, suspendHandeID: ULONG): HRESULT {.stdcall.} unsuspendRedrawAll*: proc(self: ptr ISVGSVGElement): HRESULT {.stdcall.} forceRedraw*: proc(self: ptr ISVGSVGElement): HRESULT {.stdcall.} pauseAnimations*: proc(self: ptr ISVGSVGElement): HRESULT {.stdcall.} unpauseAnimations*: proc(self: ptr ISVGSVGElement): HRESULT {.stdcall.} - animationsPaused*: proc(self: ptr ISVGSVGElement, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getCurrentTime*: proc(self: ptr ISVGSVGElement, pResult: ptr float32): HRESULT {.stdcall.} - setCurrentTime*: proc(self: ptr ISVGSVGElement, seconds: float32): HRESULT {.stdcall.} - getIntersectionList*: proc(self: ptr ISVGSVGElement, rect: ptr ISVGRect, referenceElement: ptr ISVGElement, pResult: ptr VARIANT): HRESULT {.stdcall.} - getEnclosureList*: proc(self: ptr ISVGSVGElement, rect: ptr ISVGRect, referenceElement: ptr ISVGElement, pResult: ptr VARIANT): HRESULT {.stdcall.} - checkIntersection*: proc(self: ptr ISVGSVGElement, element: ptr ISVGElement, rect: ptr ISVGRect, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - checkEnclosure*: proc(self: ptr ISVGSVGElement, element: ptr ISVGElement, rect: ptr ISVGRect, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + animationsPaused*: + proc(self: ptr ISVGSVGElement, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + getCurrentTime*: + proc(self: ptr ISVGSVGElement, pResult: ptr float32): HRESULT {.stdcall.} + setCurrentTime*: + proc(self: ptr ISVGSVGElement, seconds: float32): HRESULT {.stdcall.} + getIntersectionList*: proc( + self: ptr ISVGSVGElement, + rect: ptr ISVGRect, + referenceElement: ptr ISVGElement, + pResult: ptr VARIANT, + ): HRESULT {.stdcall.} + getEnclosureList*: proc( + self: ptr ISVGSVGElement, + rect: ptr ISVGRect, + referenceElement: ptr ISVGElement, + pResult: ptr VARIANT, + ): HRESULT {.stdcall.} + checkIntersection*: proc( + self: ptr ISVGSVGElement, + element: ptr ISVGElement, + rect: ptr ISVGRect, + pResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + checkEnclosure*: proc( + self: ptr ISVGSVGElement, + element: ptr ISVGElement, + rect: ptr ISVGRect, + pResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} deselectAll*: proc(self: ptr ISVGSVGElement): HRESULT {.stdcall.} - createSVGNumber*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} - createSVGLength*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGLength): HRESULT {.stdcall.} - createSVGAngle*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGAngle): HRESULT {.stdcall.} - createSVGPoint*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - createSVGMatrix*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - createSVGRect*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGRect): HRESULT {.stdcall.} - createSVGTransform*: proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - createSVGTransformFromMatrix*: proc(self: ptr ISVGSVGElement, matrix: ptr ISVGMatrix, pResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - getElementById*: proc(self: ptr ISVGSVGElement, elementId: BSTR, pResult: ptr ptr IHTMLElement): HRESULT {.stdcall.} + createSVGNumber*: + proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} + createSVGLength*: + proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGLength): HRESULT {.stdcall.} + createSVGAngle*: + proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGAngle): HRESULT {.stdcall.} + createSVGPoint*: + proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} + createSVGMatrix*: + proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + createSVGRect*: + proc(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGRect): HRESULT {.stdcall.} + createSVGTransform*: proc( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGTransform + ): HRESULT {.stdcall.} + createSVGTransformFromMatrix*: proc( + self: ptr ISVGSVGElement, matrix: ptr ISVGMatrix, pResult: ptr ptr ISVGTransform + ): HRESULT {.stdcall.} + getElementById*: proc( + self: ptr ISVGSVGElement, elementId: BSTR, pResult: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + ISVGAnimatedEnumeration* {.pure.} = object lpVtbl*: ptr ISVGAnimatedEnumerationVtbl + ISVGAnimatedEnumerationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_baseVal*: proc(self: ptr ISVGAnimatedEnumeration, v: USHORT): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedEnumeration, p: ptr USHORT): HRESULT {.stdcall.} - put_animVal*: proc(self: ptr ISVGAnimatedEnumeration, v: USHORT): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedEnumeration, p: ptr USHORT): HRESULT {.stdcall.} + put_baseVal*: + proc(self: ptr ISVGAnimatedEnumeration, v: USHORT): HRESULT {.stdcall.} + get_baseVal*: + proc(self: ptr ISVGAnimatedEnumeration, p: ptr USHORT): HRESULT {.stdcall.} + put_animVal*: + proc(self: ptr ISVGAnimatedEnumeration, v: USHORT): HRESULT {.stdcall.} + get_animVal*: + proc(self: ptr ISVGAnimatedEnumeration, p: ptr USHORT): HRESULT {.stdcall.} + ISVGElement* {.pure.} = object lpVtbl*: ptr ISVGElementVtbl + ISVGElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_xmlbase*: proc(self: ptr ISVGElement, v: BSTR): HRESULT {.stdcall.} get_xmlbase*: proc(self: ptr ISVGElement, p: ptr BSTR): HRESULT {.stdcall.} - putref_ownerSVGElement*: proc(self: ptr ISVGElement, v: ptr ISVGSVGElement): HRESULT {.stdcall.} - get_ownerSVGElement*: proc(self: ptr ISVGElement, p: ptr ptr ISVGSVGElement): HRESULT {.stdcall.} - putref_viewportElement*: proc(self: ptr ISVGElement, v: ptr ISVGElement): HRESULT {.stdcall.} - get_viewportElement*: proc(self: ptr ISVGElement, p: ptr ptr ISVGElement): HRESULT {.stdcall.} - putref_focusable*: proc(self: ptr ISVGElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_focusable*: proc(self: ptr ISVGElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} + putref_ownerSVGElement*: + proc(self: ptr ISVGElement, v: ptr ISVGSVGElement): HRESULT {.stdcall.} + get_ownerSVGElement*: + proc(self: ptr ISVGElement, p: ptr ptr ISVGSVGElement): HRESULT {.stdcall.} + putref_viewportElement*: + proc(self: ptr ISVGElement, v: ptr ISVGElement): HRESULT {.stdcall.} + get_viewportElement*: + proc(self: ptr ISVGElement, p: ptr ptr ISVGElement): HRESULT {.stdcall.} + putref_focusable*: + proc(self: ptr ISVGElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} + get_focusable*: proc( + self: ptr ISVGElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + ISVGLocatable* {.pure.} = object lpVtbl*: ptr ISVGLocatableVtbl + ISVGLocatableVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_nearestViewportElement*: proc(self: ptr ISVGLocatable, p: ptr ptr ISVGElement): HRESULT {.stdcall.} - get_farthestViewportElement*: proc(self: ptr ISVGLocatable, p: ptr ptr ISVGElement): HRESULT {.stdcall.} - getBBox*: proc(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGRect): HRESULT {.stdcall.} - getCTM*: proc(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - getScreenCTM*: proc(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} - getTransformToElement*: proc(self: ptr ISVGLocatable, pElement: ptr ISVGElement, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + get_nearestViewportElement*: + proc(self: ptr ISVGLocatable, p: ptr ptr ISVGElement): HRESULT {.stdcall.} + get_farthestViewportElement*: + proc(self: ptr ISVGLocatable, p: ptr ptr ISVGElement): HRESULT {.stdcall.} + getBBox*: + proc(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGRect): HRESULT {.stdcall.} + getCTM*: + proc(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + getScreenCTM*: + proc(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix): HRESULT {.stdcall.} + getTransformToElement*: proc( + self: ptr ISVGLocatable, pElement: ptr ISVGElement, ppResult: ptr ptr ISVGMatrix + ): HRESULT {.stdcall.} + ISVGTransformList* {.pure.} = object lpVtbl*: ptr ISVGTransformListVtbl + ISVGTransformListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_numberOfItems*: proc(self: ptr ISVGTransformList, v: LONG): HRESULT {.stdcall.} - get_numberOfItems*: proc(self: ptr ISVGTransformList, p: ptr LONG): HRESULT {.stdcall.} + get_numberOfItems*: + proc(self: ptr ISVGTransformList, p: ptr LONG): HRESULT {.stdcall.} clear*: proc(self: ptr ISVGTransformList): HRESULT {.stdcall.} - initialize*: proc(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - getItem*: proc(self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - insertItemBefore*: proc(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - replaceItem*: proc(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - removeItem*: proc(self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - appendItem*: proc(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - createSVGTransformFromMatrix*: proc(self: ptr ISVGTransformList, newItem: ptr ISVGMatrix, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} - consolidate*: proc(self: ptr ISVGTransformList, ppResult: ptr ptr ISVGTransform): HRESULT {.stdcall.} + initialize*: proc( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + ppResult: ptr ptr ISVGTransform, + ): HRESULT {.stdcall.} + getItem*: proc( + self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform + ): HRESULT {.stdcall.} + insertItemBefore*: proc( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + index: LONG, + ppResult: ptr ptr ISVGTransform, + ): HRESULT {.stdcall.} + replaceItem*: proc( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + index: LONG, + ppResult: ptr ptr ISVGTransform, + ): HRESULT {.stdcall.} + removeItem*: proc( + self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform + ): HRESULT {.stdcall.} + appendItem*: proc( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + ppResult: ptr ptr ISVGTransform, + ): HRESULT {.stdcall.} + createSVGTransformFromMatrix*: proc( + self: ptr ISVGTransformList, + newItem: ptr ISVGMatrix, + ppResult: ptr ptr ISVGTransform, + ): HRESULT {.stdcall.} + consolidate*: proc( + self: ptr ISVGTransformList, ppResult: ptr ptr ISVGTransform + ): HRESULT {.stdcall.} + ISVGAnimatedTransformList* {.pure.} = object lpVtbl*: ptr ISVGAnimatedTransformListVtbl + ISVGAnimatedTransformListVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList): HRESULT {.stdcall.} + putref_baseVal*: proc( + self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList + ): HRESULT {.stdcall.} + get_baseVal*: proc( + self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList + ): HRESULT {.stdcall.} + putref_animVal*: proc( + self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList + ): HRESULT {.stdcall.} + get_animVal*: proc( + self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList + ): HRESULT {.stdcall.} + ISVGTransformable* {.pure.} = object lpVtbl*: ptr ISVGTransformableVtbl + ISVGTransformableVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_transform*: proc(self: ptr ISVGTransformable, p: ptr ptr ISVGAnimatedTransformList): HRESULT {.stdcall.} + get_transform*: proc( + self: ptr ISVGTransformable, p: ptr ptr ISVGAnimatedTransformList + ): HRESULT {.stdcall.} + ISVGStringList* {.pure.} = object lpVtbl*: ptr ISVGStringListVtbl + ISVGStringListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_numberOfItems*: proc(self: ptr ISVGStringList, v: LONG): HRESULT {.stdcall.} get_numberOfItems*: proc(self: ptr ISVGStringList, p: ptr LONG): HRESULT {.stdcall.} clear*: proc(self: ptr ISVGStringList): HRESULT {.stdcall.} - initialize*: proc(self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR): HRESULT {.stdcall.} - getItem*: proc(self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR): HRESULT {.stdcall.} - insertItemBefore*: proc(self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR): HRESULT {.stdcall.} - replaceItem*: proc(self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR): HRESULT {.stdcall.} - removeItem*: proc(self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR): HRESULT {.stdcall.} - appendItem*: proc(self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR): HRESULT {.stdcall.} + initialize*: proc( + self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR + ): HRESULT {.stdcall.} + getItem*: proc(self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR): HRESULT {. + stdcall + .} + insertItemBefore*: proc( + self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR + ): HRESULT {.stdcall.} + replaceItem*: proc( + self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR + ): HRESULT {.stdcall.} + removeItem*: proc( + self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR + ): HRESULT {.stdcall.} + appendItem*: proc( + self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR + ): HRESULT {.stdcall.} + ISVGTests* {.pure.} = object lpVtbl*: ptr ISVGTestsVtbl + ISVGTestsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_requiredFeatures*: proc(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} - get_requiredExtensions*: proc(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} - get_systemLanguage*: proc(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} - hasExtension*: proc(self: ptr ISVGTests, extension: BSTR, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_requiredFeatures*: + proc(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} + get_requiredExtensions*: + proc(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} + get_systemLanguage*: + proc(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} + hasExtension*: proc( + self: ptr ISVGTests, extension: BSTR, pResult: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + ISVGLangSpace* {.pure.} = object lpVtbl*: ptr ISVGLangSpaceVtbl + ISVGLangSpaceVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_xmllang*: proc(self: ptr ISVGLangSpace, v: BSTR): HRESULT {.stdcall.} get_xmllang*: proc(self: ptr ISVGLangSpace, p: ptr BSTR): HRESULT {.stdcall.} put_xmlspace*: proc(self: ptr ISVGLangSpace, v: BSTR): HRESULT {.stdcall.} get_xmlspace*: proc(self: ptr ISVGLangSpace, p: ptr BSTR): HRESULT {.stdcall.} + ISVGAnimatedBoolean* {.pure.} = object lpVtbl*: ptr ISVGAnimatedBooleanVtbl + ISVGAnimatedBooleanVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_baseVal*: proc(self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_animVal*: proc(self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_baseVal*: + proc(self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_baseVal*: + proc(self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_animVal*: + proc(self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_animVal*: + proc(self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + ISVGExternalResourcesRequired* {.pure.} = object lpVtbl*: ptr ISVGExternalResourcesRequiredVtbl + ISVGExternalResourcesRequiredVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_externalResourcesRequired*: proc(self: ptr ISVGExternalResourcesRequired, p: ptr ptr ISVGAnimatedBoolean): HRESULT {.stdcall.} + get_externalResourcesRequired*: proc( + self: ptr ISVGExternalResourcesRequired, p: ptr ptr ISVGAnimatedBoolean + ): HRESULT {.stdcall.} + ISVGAnimatedRect* {.pure.} = object lpVtbl*: ptr ISVGAnimatedRectVtbl + ISVGAnimatedRectVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedRect, v: ptr ISVGRect): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedRect, v: ptr ISVGRect): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect): HRESULT {.stdcall.} + putref_baseVal*: + proc(self: ptr ISVGAnimatedRect, v: ptr ISVGRect): HRESULT {.stdcall.} + get_baseVal*: + proc(self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect): HRESULT {.stdcall.} + putref_animVal*: + proc(self: ptr ISVGAnimatedRect, v: ptr ISVGRect): HRESULT {.stdcall.} + get_animVal*: + proc(self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect): HRESULT {.stdcall.} + ISVGPreserveAspectRatio* {.pure.} = object lpVtbl*: ptr ISVGPreserveAspectRatioVtbl + ISVGPreserveAspectRatioVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_align*: proc(self: ptr ISVGPreserveAspectRatio, v: int16): HRESULT {.stdcall.} - get_align*: proc(self: ptr ISVGPreserveAspectRatio, p: ptr int16): HRESULT {.stdcall.} - put_meetOrSlice*: proc(self: ptr ISVGPreserveAspectRatio, v: int16): HRESULT {.stdcall.} - get_meetOrSlice*: proc(self: ptr ISVGPreserveAspectRatio, p: ptr int16): HRESULT {.stdcall.} + get_align*: + proc(self: ptr ISVGPreserveAspectRatio, p: ptr int16): HRESULT {.stdcall.} + put_meetOrSlice*: + proc(self: ptr ISVGPreserveAspectRatio, v: int16): HRESULT {.stdcall.} + get_meetOrSlice*: + proc(self: ptr ISVGPreserveAspectRatio, p: ptr int16): HRESULT {.stdcall.} + ISVGAnimatedPreserveAspectRatio* {.pure.} = object lpVtbl*: ptr ISVGAnimatedPreserveAspectRatioVtbl + ISVGAnimatedPreserveAspectRatioVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio): HRESULT {.stdcall.} + putref_baseVal*: proc( + self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio + ): HRESULT {.stdcall.} + get_baseVal*: proc( + self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio + ): HRESULT {.stdcall.} + putref_animVal*: proc( + self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio + ): HRESULT {.stdcall.} + get_animVal*: proc( + self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio + ): HRESULT {.stdcall.} + ISVGFitToViewBox* {.pure.} = object lpVtbl*: ptr ISVGFitToViewBoxVtbl + ISVGFitToViewBoxVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_viewBox*: proc(self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedRect): HRESULT {.stdcall.} - putref_preserveAspectRatio*: proc(self: ptr ISVGFitToViewBox, v: ptr ISVGAnimatedPreserveAspectRatio): HRESULT {.stdcall.} - get_preserveAspectRatio*: proc(self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedPreserveAspectRatio): HRESULT {.stdcall.} + get_viewBox*: + proc(self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedRect): HRESULT {.stdcall.} + putref_preserveAspectRatio*: proc( + self: ptr ISVGFitToViewBox, v: ptr ISVGAnimatedPreserveAspectRatio + ): HRESULT {.stdcall.} + get_preserveAspectRatio*: proc( + self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedPreserveAspectRatio + ): HRESULT {.stdcall.} + ISVGZoomAndPan* {.pure.} = object lpVtbl*: ptr ISVGZoomAndPanVtbl + ISVGZoomAndPanVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_zoomAndPan*: proc(self: ptr ISVGZoomAndPan, p: ptr int16): HRESULT {.stdcall.} + ISVGURIReference* {.pure.} = object lpVtbl*: ptr ISVGURIReferenceVtbl + ISVGURIReferenceVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_href*: proc(self: ptr ISVGURIReference, p: ptr ptr ISVGAnimatedString): HRESULT {.stdcall.} + get_href*: proc(self: ptr ISVGURIReference, p: ptr ptr ISVGAnimatedString): HRESULT {. + stdcall + .} + ISVGAnimatedAngle* {.pure.} = object lpVtbl*: ptr ISVGAnimatedAngleVtbl + ISVGAnimatedAngleVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle): HRESULT {.stdcall.} + putref_baseVal*: + proc(self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle): HRESULT {.stdcall.} + get_baseVal*: + proc(self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle): HRESULT {.stdcall.} + putref_animVal*: + proc(self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle): HRESULT {.stdcall.} + get_animVal*: + proc(self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle): HRESULT {.stdcall.} + ISVGAnimatedInteger* {.pure.} = object lpVtbl*: ptr ISVGAnimatedIntegerVtbl + ISVGAnimatedIntegerVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_baseVal*: proc(self: ptr ISVGAnimatedInteger, v: LONG): HRESULT {.stdcall.} get_baseVal*: proc(self: ptr ISVGAnimatedInteger, p: ptr LONG): HRESULT {.stdcall.} put_animVal*: proc(self: ptr ISVGAnimatedInteger, v: LONG): HRESULT {.stdcall.} get_animVal*: proc(self: ptr ISVGAnimatedInteger, p: ptr LONG): HRESULT {.stdcall.} + ISVGLengthList* {.pure.} = object lpVtbl*: ptr ISVGLengthListVtbl + ISVGLengthListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_numberOfItems*: proc(self: ptr ISVGLengthList, v: LONG): HRESULT {.stdcall.} get_numberOfItems*: proc(self: ptr ISVGLengthList, p: ptr LONG): HRESULT {.stdcall.} clear*: proc(self: ptr ISVGLengthList): HRESULT {.stdcall.} - initialize*: proc(self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength): HRESULT {.stdcall.} - getItem*: proc(self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.stdcall.} - insertItemBefore*: proc(self: ptr ISVGLengthList, newItem: ptr ISVGLength, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.stdcall.} - replaceItem*: proc(self: ptr ISVGLengthList, newItem: ptr ISVGLength, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.stdcall.} - removeItem*: proc(self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.stdcall.} - appendItem*: proc(self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength): HRESULT {.stdcall.} + initialize*: proc( + self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength + ): HRESULT {.stdcall.} + getItem*: proc( + self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength + ): HRESULT {.stdcall.} + insertItemBefore*: proc( + self: ptr ISVGLengthList, + newItem: ptr ISVGLength, + index: LONG, + ppResult: ptr ptr ISVGLength, + ): HRESULT {.stdcall.} + replaceItem*: proc( + self: ptr ISVGLengthList, + newItem: ptr ISVGLength, + index: LONG, + ppResult: ptr ptr ISVGLength, + ): HRESULT {.stdcall.} + removeItem*: proc( + self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength + ): HRESULT {.stdcall.} + appendItem*: proc( + self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength + ): HRESULT {.stdcall.} + ISVGAnimatedLengthList* {.pure.} = object lpVtbl*: ptr ISVGAnimatedLengthListVtbl + ISVGAnimatedLengthListVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList): HRESULT {.stdcall.} + putref_baseVal*: + proc(self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList): HRESULT {.stdcall.} + get_baseVal*: proc( + self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList + ): HRESULT {.stdcall.} + putref_animVal*: + proc(self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList): HRESULT {.stdcall.} + get_animVal*: proc( + self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList + ): HRESULT {.stdcall.} + ISVGAnimatedNumber* {.pure.} = object lpVtbl*: ptr ISVGAnimatedNumberVtbl + ISVGAnimatedNumberVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_baseVal*: proc(self: ptr ISVGAnimatedNumber, v: float32): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedNumber, p: ptr float32): HRESULT {.stdcall.} + get_baseVal*: + proc(self: ptr ISVGAnimatedNumber, p: ptr float32): HRESULT {.stdcall.} put_animVal*: proc(self: ptr ISVGAnimatedNumber, v: float32): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedNumber, p: ptr float32): HRESULT {.stdcall.} + get_animVal*: + proc(self: ptr ISVGAnimatedNumber, p: ptr float32): HRESULT {.stdcall.} + ISVGNumberList* {.pure.} = object lpVtbl*: ptr ISVGNumberListVtbl + ISVGNumberListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_numberOfItems*: proc(self: ptr ISVGNumberList, v: LONG): HRESULT {.stdcall.} get_numberOfItems*: proc(self: ptr ISVGNumberList, p: ptr LONG): HRESULT {.stdcall.} clear*: proc(self: ptr ISVGNumberList): HRESULT {.stdcall.} - initialize*: proc(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} - getItem*: proc(self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} - insertItemBefore*: proc(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} - replaceItem*: proc(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} - removeItem*: proc(self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} - appendItem*: proc(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber): HRESULT {.stdcall.} + initialize*: proc( + self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber + ): HRESULT {.stdcall.} + getItem*: proc( + self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber + ): HRESULT {.stdcall.} + insertItemBefore*: proc( + self: ptr ISVGNumberList, + newItem: ptr ISVGNumber, + index: LONG, + ppResult: ptr ptr ISVGNumber, + ): HRESULT {.stdcall.} + replaceItem*: proc( + self: ptr ISVGNumberList, + newItem: ptr ISVGNumber, + index: LONG, + ppResult: ptr ptr ISVGNumber, + ): HRESULT {.stdcall.} + removeItem*: proc( + self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber + ): HRESULT {.stdcall.} + appendItem*: proc( + self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber + ): HRESULT {.stdcall.} + ISVGAnimatedNumberList* {.pure.} = object lpVtbl*: ptr ISVGAnimatedNumberListVtbl + ISVGAnimatedNumberListVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_baseVal*: proc(self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList): HRESULT {.stdcall.} - get_baseVal*: proc(self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList): HRESULT {.stdcall.} - putref_animVal*: proc(self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList): HRESULT {.stdcall.} - get_animVal*: proc(self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList): HRESULT {.stdcall.} + putref_baseVal*: + proc(self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList): HRESULT {.stdcall.} + get_baseVal*: proc( + self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList + ): HRESULT {.stdcall.} + putref_animVal*: + proc(self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList): HRESULT {.stdcall.} + get_animVal*: proc( + self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList + ): HRESULT {.stdcall.} + ISVGClipPathElement* {.pure.} = object lpVtbl*: ptr ISVGClipPathElementVtbl + ISVGClipPathElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_clipPathUnits*: proc(self: ptr ISVGClipPathElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_clipPathUnits*: proc(self: ptr ISVGClipPathElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} + putref_clipPathUnits*: proc( + self: ptr ISVGClipPathElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_clipPathUnits*: proc( + self: ptr ISVGClipPathElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + DispSVGClipPathElement* {.pure.} = object lpVtbl*: ptr DispSVGClipPathElementVtbl + DispSVGClipPathElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGDocument* {.pure.} = object lpVtbl*: ptr ISVGDocumentVtbl + ISVGDocumentVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_rootElement*: proc(self: ptr ISVGDocument, p: ptr ptr ISVGSVGElement): HRESULT {.stdcall.} + get_rootElement*: + proc(self: ptr ISVGDocument, p: ptr ptr ISVGSVGElement): HRESULT {.stdcall.} + IGetSVGDocument* {.pure.} = object lpVtbl*: ptr IGetSVGDocumentVtbl + IGetSVGDocumentVtbl* {.pure, inheritable.} = object of IDispatchVtbl - getSVGDocument*: proc(self: ptr IGetSVGDocument, ppSVGDocument: ptr ptr IDispatch): HRESULT {.stdcall.} + getSVGDocument*: proc( + self: ptr IGetSVGDocument, ppSVGDocument: ptr ptr IDispatch + ): HRESULT {.stdcall.} + DispSVGElement* {.pure.} = object lpVtbl*: ptr DispSVGElementVtbl + DispSVGElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IICCSVGColor* {.pure.} = object lpVtbl*: ptr IICCSVGColorVtbl + IICCSVGColorVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGPaint* {.pure.} = object lpVtbl*: ptr ISVGPaintVtbl + ISVGPaintVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGPatternElement* {.pure.} = object lpVtbl*: ptr ISVGPatternElementVtbl + ISVGPatternElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_patternUnits*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_patternUnits*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_patternContentUnits*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_patternContentUnits*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_patternTransform*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedTransformList): HRESULT {.stdcall.} - get_patternTransform*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedTransformList): HRESULT {.stdcall.} - putref_x*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_width*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_width*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_height*: proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_height*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_patternUnits*: proc( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_patternUnits*: proc( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_patternContentUnits*: proc( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_patternContentUnits*: proc( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_patternTransform*: proc( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedTransformList + ): HRESULT {.stdcall.} + get_patternTransform*: proc( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedTransformList + ): HRESULT {.stdcall.} + putref_x*: + proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_y*: + proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_width*: + proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_width*: proc( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_height*: + proc(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_height*: proc( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + DispSVGPatternElement* {.pure.} = object lpVtbl*: ptr DispSVGPatternElementVtbl + DispSVGPatternElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGPathSeg* {.pure.} = object lpVtbl*: ptr ISVGPathSegVtbl + ISVGPathSegVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_pathSegType*: proc(self: ptr ISVGPathSeg, v: int16): HRESULT {.stdcall.} get_pathSegType*: proc(self: ptr ISVGPathSeg, p: ptr int16): HRESULT {.stdcall.} - get_pathSegTypeAsLetter*: proc(self: ptr ISVGPathSeg, p: ptr BSTR): HRESULT {.stdcall.} + get_pathSegTypeAsLetter*: + proc(self: ptr ISVGPathSeg, p: ptr BSTR): HRESULT {.stdcall.} + ISVGPathSegArcAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegArcAbsVtbl + ISVGPathSegArcAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.stdcall.} @@ -10558,12 +15342,18 @@ get_r2*: proc(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.stdcall.} put_angle*: proc(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.stdcall.} get_angle*: proc(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.stdcall.} - put_largeArcFlag*: proc(self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_largeArcFlag*: proc(self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_sweepFlag*: proc(self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_sweepFlag*: proc(self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_largeArcFlag*: + proc(self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_largeArcFlag*: + proc(self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_sweepFlag*: + proc(self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_sweepFlag*: + proc(self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + ISVGPathSegArcRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegArcRelVtbl + ISVGPathSegArcRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.stdcall.} @@ -10575,629 +15365,1284 @@ get_r2*: proc(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.stdcall.} put_angle*: proc(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.stdcall.} get_angle*: proc(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.stdcall.} - put_largeArcFlag*: proc(self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_largeArcFlag*: proc(self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_sweepFlag*: proc(self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_sweepFlag*: proc(self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_largeArcFlag*: + proc(self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_largeArcFlag*: + proc(self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_sweepFlag*: + proc(self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_sweepFlag*: + proc(self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + ISVGPathSegClosePath* {.pure.} = object lpVtbl*: ptr ISVGPathSegClosePathVtbl + ISVGPathSegClosePathVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGPathSegMovetoAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegMovetoAbsVtbl + ISVGPathSegMovetoAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegMovetoAbs, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPathSegMovetoAbs, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPathSegMovetoAbs, v: float32): HRESULT {.stdcall.} get_y*: proc(self: ptr ISVGPathSegMovetoAbs, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegMovetoRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegMovetoRelVtbl + ISVGPathSegMovetoRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegMovetoRel, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPathSegMovetoRel, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPathSegMovetoRel, v: float32): HRESULT {.stdcall.} get_y*: proc(self: ptr ISVGPathSegMovetoRel, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegLinetoAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegLinetoAbsVtbl + ISVGPathSegLinetoAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegLinetoAbs, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPathSegLinetoAbs, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPathSegLinetoAbs, v: float32): HRESULT {.stdcall.} get_y*: proc(self: ptr ISVGPathSegLinetoAbs, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegLinetoRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegLinetoRelVtbl + ISVGPathSegLinetoRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegLinetoRel, v: float32): HRESULT {.stdcall.} get_x*: proc(self: ptr ISVGPathSegLinetoRel, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPathSegLinetoRel, v: float32): HRESULT {.stdcall.} get_y*: proc(self: ptr ISVGPathSegLinetoRel, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegCurvetoCubicAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoCubicAbsVtbl + ISVGPathSegCurvetoCubicAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + get_x*: + proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + get_y*: + proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} put_x1*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.stdcall.} - get_x1*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + get_x1*: + proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} put_y1*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.stdcall.} - get_y1*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + get_y1*: + proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} put_x2*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.stdcall.} - get_x2*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + get_x2*: + proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} put_y2*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.stdcall.} - get_y2*: proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + get_y2*: + proc(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegCurvetoCubicRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoCubicRelVtbl + ISVGPathSegCurvetoCubicRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_x*: proc(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + get_x*: + proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} put_y*: proc(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + get_y*: + proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} put_x1*: proc(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.stdcall.} - get_x1*: proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + get_x1*: + proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} put_y1*: proc(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.stdcall.} - get_y1*: proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + get_y1*: + proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} put_x2*: proc(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.stdcall.} - get_x2*: proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + get_x2*: + proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} put_y2*: proc(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.stdcall.} - get_y2*: proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + get_y2*: + proc(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegCurvetoCubicSmoothAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoCubicSmoothAbsVtbl + ISVGPathSegCurvetoCubicSmoothAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.stdcall.} - put_y*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.stdcall.} - put_x2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} - get_x2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.stdcall.} - put_y2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} - get_y2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.stdcall.} + put_x*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {. + stdcall + .} + put_y*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {. + stdcall + .} + put_x2*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} + get_x2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {. + stdcall + .} + put_y2*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.stdcall.} + get_y2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {. + stdcall + .} + ISVGPathSegCurvetoCubicSmoothRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoCubicSmoothRelVtbl + ISVGPathSegCurvetoCubicSmoothRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.stdcall.} - put_y*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.stdcall.} - put_x2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} - get_x2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.stdcall.} - put_y2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} - get_y2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.stdcall.} + put_x*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {. + stdcall + .} + put_y*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {. + stdcall + .} + put_x2*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} + get_x2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {. + stdcall + .} + put_y2*: + proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.stdcall.} + get_y2*: proc(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {. + stdcall + .} + ISVGPathSegCurvetoQuadraticAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoQuadraticAbsVtbl + ISVGPathSegCurvetoQuadraticAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.stdcall.} - put_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.stdcall.} - put_x1*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} - get_x1*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.stdcall.} - put_y1*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} - get_y1*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.stdcall.} + put_x*: + proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {. + stdcall + .} + put_y*: + proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {. + stdcall + .} + put_x1*: + proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} + get_x1*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {. + stdcall + .} + put_y1*: + proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.stdcall.} + get_y1*: proc(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {. + stdcall + .} + ISVGPathSegCurvetoQuadraticRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoQuadraticRelVtbl + ISVGPathSegCurvetoQuadraticRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.stdcall.} - put_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.stdcall.} - put_x1*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} - get_x1*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.stdcall.} - put_y1*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} - get_y1*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.stdcall.} + put_x*: + proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {. + stdcall + .} + put_y*: + proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {. + stdcall + .} + put_x1*: + proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} + get_x1*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {. + stdcall + .} + put_y1*: + proc(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.stdcall.} + get_y1*: proc(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {. + stdcall + .} + ISVGPathSegCurvetoQuadraticSmoothAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoQuadraticSmoothAbsVtbl + ISVGPathSegCurvetoQuadraticSmoothAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32): HRESULT {.stdcall.} - put_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32): HRESULT {.stdcall.} + put_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32): HRESULT {. + stdcall + .} + get_x*: proc( + self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32 + ): HRESULT {.stdcall.} + put_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32): HRESULT {. + stdcall + .} + get_y*: proc( + self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32 + ): HRESULT {.stdcall.} + ISVGPathSegCurvetoQuadraticSmoothRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegCurvetoQuadraticSmoothRelVtbl + ISVGPathSegCurvetoQuadraticSmoothRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32): HRESULT {.stdcall.} - put_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32): HRESULT {.stdcall.} + put_x*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32): HRESULT {. + stdcall + .} + get_x*: proc( + self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32 + ): HRESULT {.stdcall.} + put_y*: proc(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32): HRESULT {. + stdcall + .} + get_y*: proc( + self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32 + ): HRESULT {.stdcall.} + ISVGPathSegLinetoHorizontalAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegLinetoHorizontalAbsVtbl + ISVGPathSegLinetoHorizontalAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegLinetoHorizontalAbs, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegLinetoHorizontalAbs, p: ptr float32): HRESULT {.stdcall.} + put_x*: + proc(self: ptr ISVGPathSegLinetoHorizontalAbs, v: float32): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPathSegLinetoHorizontalAbs, p: ptr float32): HRESULT {. + stdcall + .} + ISVGPathSegLinetoHorizontalRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegLinetoHorizontalRelVtbl + ISVGPathSegLinetoHorizontalRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_x*: proc(self: ptr ISVGPathSegLinetoHorizontalRel, v: float32): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGPathSegLinetoHorizontalRel, p: ptr float32): HRESULT {.stdcall.} + put_x*: + proc(self: ptr ISVGPathSegLinetoHorizontalRel, v: float32): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGPathSegLinetoHorizontalRel, p: ptr float32): HRESULT {. + stdcall + .} + ISVGPathSegLinetoVerticalAbs* {.pure.} = object lpVtbl*: ptr ISVGPathSegLinetoVerticalAbsVtbl + ISVGPathSegLinetoVerticalAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_y*: proc(self: ptr ISVGPathSegLinetoVerticalAbs, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegLinetoVerticalAbs, p: ptr float32): HRESULT {.stdcall.} + put_y*: + proc(self: ptr ISVGPathSegLinetoVerticalAbs, v: float32): HRESULT {.stdcall.} + get_y*: + proc(self: ptr ISVGPathSegLinetoVerticalAbs, p: ptr float32): HRESULT {.stdcall.} + ISVGPathSegLinetoVerticalRel* {.pure.} = object lpVtbl*: ptr ISVGPathSegLinetoVerticalRelVtbl + ISVGPathSegLinetoVerticalRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_y*: proc(self: ptr ISVGPathSegLinetoVerticalRel, v: float32): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGPathSegLinetoVerticalRel, p: ptr float32): HRESULT {.stdcall.} + put_y*: + proc(self: ptr ISVGPathSegLinetoVerticalRel, v: float32): HRESULT {.stdcall.} + get_y*: + proc(self: ptr ISVGPathSegLinetoVerticalRel, p: ptr float32): HRESULT {.stdcall.} + DispSVGPathSegArcAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegArcAbsVtbl + DispSVGPathSegArcAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegArcRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegArcRelVtbl + DispSVGPathSegArcRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegClosePath* {.pure.} = object lpVtbl*: ptr DispSVGPathSegClosePathVtbl + DispSVGPathSegClosePathVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegMovetoAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegMovetoAbsVtbl + DispSVGPathSegMovetoAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegMovetoRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegMovetoRelVtbl + DispSVGPathSegMovetoRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegLinetoAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegLinetoAbsVtbl + DispSVGPathSegLinetoAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegLinetoRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegLinetoRelVtbl + DispSVGPathSegLinetoRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoCubicAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoCubicAbsVtbl + DispSVGPathSegCurvetoCubicAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoCubicRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoCubicRelVtbl + DispSVGPathSegCurvetoCubicRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoCubicSmoothAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoCubicSmoothAbsVtbl + DispSVGPathSegCurvetoCubicSmoothAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoCubicSmoothRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoCubicSmoothRelVtbl + DispSVGPathSegCurvetoCubicSmoothRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoQuadraticAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoQuadraticAbsVtbl + DispSVGPathSegCurvetoQuadraticAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoQuadraticRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoQuadraticRelVtbl + DispSVGPathSegCurvetoQuadraticRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoQuadraticSmoothAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoQuadraticSmoothAbsVtbl + DispSVGPathSegCurvetoQuadraticSmoothAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegCurvetoQuadraticSmoothRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegCurvetoQuadraticSmoothRelVtbl + DispSVGPathSegCurvetoQuadraticSmoothRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegLinetoHorizontalAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegLinetoHorizontalAbsVtbl + DispSVGPathSegLinetoHorizontalAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegLinetoHorizontalRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegLinetoHorizontalRelVtbl + DispSVGPathSegLinetoHorizontalRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegLinetoVerticalAbs* {.pure.} = object lpVtbl*: ptr DispSVGPathSegLinetoVerticalAbsVtbl + DispSVGPathSegLinetoVerticalAbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPathSegLinetoVerticalRel* {.pure.} = object lpVtbl*: ptr DispSVGPathSegLinetoVerticalRelVtbl + DispSVGPathSegLinetoVerticalRelVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGPathSegList* {.pure.} = object lpVtbl*: ptr ISVGPathSegListVtbl + ISVGPathSegListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_numberOfItems*: proc(self: ptr ISVGPathSegList, v: LONG): HRESULT {.stdcall.} - get_numberOfItems*: proc(self: ptr ISVGPathSegList, p: ptr LONG): HRESULT {.stdcall.} + get_numberOfItems*: + proc(self: ptr ISVGPathSegList, p: ptr LONG): HRESULT {.stdcall.} clear*: proc(self: ptr ISVGPathSegList): HRESULT {.stdcall.} - initialize*: proc(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg): HRESULT {.stdcall.} - getItem*: proc(self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.stdcall.} - insertItemBefore*: proc(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.stdcall.} - replaceItem*: proc(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.stdcall.} - removeItem*: proc(self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.stdcall.} - appendItem*: proc(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg): HRESULT {.stdcall.} + initialize*: proc( + self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg + ): HRESULT {.stdcall.} + getItem*: proc( + self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg + ): HRESULT {.stdcall.} + insertItemBefore*: proc( + self: ptr ISVGPathSegList, + newItem: ptr ISVGPathSeg, + index: LONG, + ppResult: ptr ptr ISVGPathSeg, + ): HRESULT {.stdcall.} + replaceItem*: proc( + self: ptr ISVGPathSegList, + newItem: ptr ISVGPathSeg, + index: LONG, + ppResult: ptr ptr ISVGPathSeg, + ): HRESULT {.stdcall.} + removeItem*: proc( + self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg + ): HRESULT {.stdcall.} + appendItem*: proc( + self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg + ): HRESULT {.stdcall.} + ISVGPointList* {.pure.} = object lpVtbl*: ptr ISVGPointListVtbl + ISVGPointListVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_numberOfItems*: proc(self: ptr ISVGPointList, v: LONG): HRESULT {.stdcall.} get_numberOfItems*: proc(self: ptr ISVGPointList, p: ptr LONG): HRESULT {.stdcall.} clear*: proc(self: ptr ISVGPointList): HRESULT {.stdcall.} - initialize*: proc(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - getItem*: proc(self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - insertItemBefore*: proc(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - replaceItem*: proc(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - removeItem*: proc(self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - appendItem*: proc(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} + initialize*: proc( + self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + getItem*: proc( + self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + insertItemBefore*: proc( + self: ptr ISVGPointList, + pNewItem: ptr ISVGPoint, + index: LONG, + ppResult: ptr ptr ISVGPoint, + ): HRESULT {.stdcall.} + replaceItem*: proc( + self: ptr ISVGPointList, + pNewItem: ptr ISVGPoint, + index: LONG, + ppResult: ptr ptr ISVGPoint, + ): HRESULT {.stdcall.} + removeItem*: proc( + self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + appendItem*: proc( + self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + DispSVGSVGElement* {.pure.} = object lpVtbl*: ptr DispSVGSVGElementVtbl + DispSVGSVGElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGElementInstanceList* {.pure.} = object lpVtbl*: ptr ISVGElementInstanceListVtbl + ISVGElementInstanceListVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr ISVGElementInstanceList, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr ISVGElementInstanceList, index: LONG, ppResult: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} + get_length*: + proc(self: ptr ISVGElementInstanceList, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr ISVGElementInstanceList, + index: LONG, + ppResult: ptr ptr ISVGElementInstance, + ): HRESULT {.stdcall.} + ISVGElementInstance* {.pure.} = object lpVtbl*: ptr ISVGElementInstanceVtbl + ISVGElementInstanceVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_correspondingElement*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElement): HRESULT {.stdcall.} - get_correspondingUseElement*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGUseElement): HRESULT {.stdcall.} - get_parentNode*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} - get_childNodes*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstanceList): HRESULT {.stdcall.} - get_firstChild*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} - get_lastChild*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} - get_previousSibling*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} - get_nextSibling*: proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} + get_correspondingElement*: + proc(self: ptr ISVGElementInstance, p: ptr ptr ISVGElement): HRESULT {.stdcall.} + get_correspondingUseElement*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGUseElement + ): HRESULT {.stdcall.} + get_parentNode*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + get_childNodes*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstanceList + ): HRESULT {.stdcall.} + get_firstChild*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + get_lastChild*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + get_previousSibling*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + get_nextSibling*: proc( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + ISVGUseElement* {.pure.} = object lpVtbl*: ptr ISVGUseElementVtbl + ISVGUseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x*: proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_width*: proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_width*: proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_height*: proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_height*: proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_instanceRoot*: proc(self: ptr ISVGUseElement, v: ptr ISVGElementInstance): HRESULT {.stdcall.} - get_instanceRoot*: proc(self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} - putref_animatedInstanceRoot*: proc(self: ptr ISVGUseElement, v: ptr ISVGElementInstance): HRESULT {.stdcall.} - get_animatedInstanceRoot*: proc(self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance): HRESULT {.stdcall.} + putref_x*: + proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x*: + proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_y*: + proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y*: + proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_width*: + proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_width*: + proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_height*: + proc(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_height*: + proc(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_instanceRoot*: + proc(self: ptr ISVGUseElement, v: ptr ISVGElementInstance): HRESULT {.stdcall.} + get_instanceRoot*: proc( + self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + putref_animatedInstanceRoot*: + proc(self: ptr ISVGUseElement, v: ptr ISVGElementInstance): HRESULT {.stdcall.} + get_animatedInstanceRoot*: proc( + self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance + ): HRESULT {.stdcall.} + DispSVGUseElement* {.pure.} = object lpVtbl*: ptr DispSVGUseElementVtbl + DispSVGUseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLStyleSheetRulesAppliedCollection* {.pure.} = object lpVtbl*: ptr DispHTMLStyleSheetRulesAppliedCollectionVtbl + DispHTMLStyleSheetRulesAppliedCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispRulesApplied* {.pure.} = object lpVtbl*: ptr DispRulesAppliedVtbl + DispRulesAppliedVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispRulesAppliedCollection* {.pure.} = object lpVtbl*: ptr DispRulesAppliedCollectionVtbl + DispRulesAppliedCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLW3CComputedStyle* {.pure.} = object lpVtbl*: ptr DispHTMLW3CComputedStyleVtbl + DispHTMLW3CComputedStyleVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGAnimatedPoints* {.pure.} = object lpVtbl*: ptr ISVGAnimatedPointsVtbl + ISVGAnimatedPointsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_points*: proc(self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList): HRESULT {.stdcall.} - get_points*: proc(self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList): HRESULT {.stdcall.} - putref_animatedPoints*: proc(self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList): HRESULT {.stdcall.} - get_animatedPoints*: proc(self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList): HRESULT {.stdcall.} + putref_points*: + proc(self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList): HRESULT {.stdcall.} + get_points*: + proc(self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList): HRESULT {.stdcall.} + putref_animatedPoints*: + proc(self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList): HRESULT {.stdcall.} + get_animatedPoints*: + proc(self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList): HRESULT {.stdcall.} + ISVGCircleElement* {.pure.} = object lpVtbl*: ptr ISVGCircleElementVtbl + ISVGCircleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_cx*: proc(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_cx*: proc(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_cy*: proc(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_cy*: proc(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_r*: proc(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_r*: proc(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_cx*: + proc(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_cx*: proc(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_cy*: + proc(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_cy*: proc(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_r*: + proc(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_r*: proc(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + ISVGEllipseElement* {.pure.} = object lpVtbl*: ptr ISVGEllipseElementVtbl + ISVGEllipseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_cx*: proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_cx*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_cy*: proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_cy*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_rx*: proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_rx*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_ry*: proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_ry*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_cx*: + proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_cx*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_cy*: + proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_cy*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_rx*: + proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_rx*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_ry*: + proc(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_ry*: proc(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + ISVGLineElement* {.pure.} = object lpVtbl*: ptr ISVGLineElementVtbl + ISVGLineElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x1*: proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x1*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y1*: proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y1*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_x2*: proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x2*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y2*: proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y2*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_x1*: + proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x1*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_y1*: + proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y1*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_x2*: + proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x2*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_y2*: + proc(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y2*: proc(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + ISVGRectElement* {.pure.} = object lpVtbl*: ptr ISVGRectElementVtbl + ISVGRectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x*: proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_width*: proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_width*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_height*: proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_height*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_rx*: proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_rx*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_ry*: proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_ry*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_x*: + proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_y*: + proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_width*: + proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_width*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_height*: + proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_height*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_rx*: + proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_rx*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_ry*: + proc(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_ry*: proc(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + ISVGPolygonElement* {.pure.} = object lpVtbl*: ptr ISVGPolygonElementVtbl + ISVGPolygonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGPolylineElement* {.pure.} = object lpVtbl*: ptr ISVGPolylineElementVtbl + ISVGPolylineElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGCircleElement* {.pure.} = object lpVtbl*: ptr DispSVGCircleElementVtbl + DispSVGCircleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGEllipseElement* {.pure.} = object lpVtbl*: ptr DispSVGEllipseElementVtbl + DispSVGEllipseElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGLineElement* {.pure.} = object lpVtbl*: ptr DispSVGLineElementVtbl + DispSVGLineElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGRectElement* {.pure.} = object lpVtbl*: ptr DispSVGRectElementVtbl + DispSVGRectElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPolygonElement* {.pure.} = object lpVtbl*: ptr DispSVGPolygonElementVtbl + DispSVGPolygonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGPolylineElement* {.pure.} = object lpVtbl*: ptr DispSVGPolylineElementVtbl + DispSVGPolylineElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGGElement* {.pure.} = object lpVtbl*: ptr ISVGGElementVtbl + ISVGGElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGGElement* {.pure.} = object lpVtbl*: ptr DispSVGGElementVtbl + DispSVGGElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGSymbolElement* {.pure.} = object lpVtbl*: ptr ISVGSymbolElementVtbl + ISVGSymbolElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGSymbolElement* {.pure.} = object lpVtbl*: ptr DispSVGSymbolElementVtbl + DispSVGSymbolElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGDefsElement* {.pure.} = object lpVtbl*: ptr ISVGDefsElementVtbl + ISVGDefsElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGDefsElement* {.pure.} = object lpVtbl*: ptr DispSVGDefsElementVtbl + DispSVGDefsElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGAnimatedPathData* {.pure.} = object lpVtbl*: ptr ISVGAnimatedPathDataVtbl + ISVGAnimatedPathDataVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_pathSegList*: proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} - get_pathSegList*: proc(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.stdcall.} - putref_normalizedPathSegList*: proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} - get_normalizedPathSegList*: proc(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.stdcall.} - putref_animatedPathSegList*: proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} - get_animatedPathSegList*: proc(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.stdcall.} - putref_animatedNormalizedPathSegList*: proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} - get_animatedNormalizedPathSegList*: proc(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.stdcall.} + putref_pathSegList*: + proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} + get_pathSegList*: proc( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList + ): HRESULT {.stdcall.} + putref_normalizedPathSegList*: + proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} + get_normalizedPathSegList*: proc( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList + ): HRESULT {.stdcall.} + putref_animatedPathSegList*: + proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} + get_animatedPathSegList*: proc( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList + ): HRESULT {.stdcall.} + putref_animatedNormalizedPathSegList*: + proc(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.stdcall.} + get_animatedNormalizedPathSegList*: proc( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList + ): HRESULT {.stdcall.} + ISVGPathElement* {.pure.} = object lpVtbl*: ptr ISVGPathElementVtbl + ISVGPathElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_pathLength*: proc(self: ptr ISVGPathElement, v: ptr ISVGAnimatedNumber): HRESULT {.stdcall.} - get_pathLength*: proc(self: ptr ISVGPathElement, p: ptr ptr ISVGAnimatedNumber): HRESULT {.stdcall.} - getTotalLength*: proc(self: ptr ISVGPathElement, pfltResult: ptr float32): HRESULT {.stdcall.} - getPointAtLength*: proc(self: ptr ISVGPathElement, fltdistance: float32, ppPointResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - getPathSegAtLength*: proc(self: ptr ISVGPathElement, fltdistance: float32, plResult: ptr LONG): HRESULT {.stdcall.} - createSVGPathSegClosePath*: proc(self: ptr ISVGPathElement, ppResult: ptr ptr ISVGPathSegClosePath): HRESULT {.stdcall.} - createSVGPathSegMovetoAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegMovetoAbs): HRESULT {.stdcall.} - createSVGPathSegMovetoRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegMovetoRel): HRESULT {.stdcall.} - createSVGPathSegLinetoAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegLinetoAbs): HRESULT {.stdcall.} - createSVGPathSegLinetoRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegLinetoRel): HRESULT {.stdcall.} - createSVGPathSegCurvetoCubicAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicAbs): HRESULT {.stdcall.} - createSVGPathSegCurvetoCubicRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicRel): HRESULT {.stdcall.} - createSVGPathSegCurvetoQuadraticAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticAbs): HRESULT {.stdcall.} - createSVGPathSegCurvetoQuadraticRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticRel): HRESULT {.stdcall.} - createSVGPathSegArcAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, r1: float32, r2: float32, angle: float32, largeArcFlag: VARIANT_BOOL, sweepFlag: VARIANT_BOOL, ppResult: ptr ptr ISVGPathSegArcAbs): HRESULT {.stdcall.} - createSVGPathSegArcRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, r1: float32, r2: float32, angle: float32, largeArcFlag: VARIANT_BOOL, sweepFlag: VARIANT_BOOL, ppResult: ptr ptr ISVGPathSegArcRel): HRESULT {.stdcall.} - createSVGPathSegLinetoHorizontalAbs*: proc(self: ptr ISVGPathElement, x: float32, ppResult: ptr ptr ISVGPathSegLinetoHorizontalAbs): HRESULT {.stdcall.} - createSVGPathSegLinetoHorizontalRel*: proc(self: ptr ISVGPathElement, x: float32, ppResult: ptr ptr ISVGPathSegLinetoHorizontalRel): HRESULT {.stdcall.} - createSVGPathSegLinetoVerticalAbs*: proc(self: ptr ISVGPathElement, y: float32, ppResult: ptr ptr ISVGPathSegLinetoVerticalAbs): HRESULT {.stdcall.} - createSVGPathSegLinetoVerticalRel*: proc(self: ptr ISVGPathElement, y: float32, ppResult: ptr ptr ISVGPathSegLinetoVerticalRel): HRESULT {.stdcall.} - createSVGPathSegCurvetoCubicSmoothAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothAbs): HRESULT {.stdcall.} - createSVGPathSegCurvetoCubicSmoothRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothRel): HRESULT {.stdcall.} - createSVGPathSegCurvetoQuadraticSmoothAbs*: proc(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothAbs): HRESULT {.stdcall.} - createSVGPathSegCurvetoQuadraticSmoothRel*: proc(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothRel): HRESULT {.stdcall.} + putref_pathLength*: + proc(self: ptr ISVGPathElement, v: ptr ISVGAnimatedNumber): HRESULT {.stdcall.} + get_pathLength*: proc( + self: ptr ISVGPathElement, p: ptr ptr ISVGAnimatedNumber + ): HRESULT {.stdcall.} + getTotalLength*: + proc(self: ptr ISVGPathElement, pfltResult: ptr float32): HRESULT {.stdcall.} + getPointAtLength*: proc( + self: ptr ISVGPathElement, fltdistance: float32, ppPointResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + getPathSegAtLength*: proc( + self: ptr ISVGPathElement, fltdistance: float32, plResult: ptr LONG + ): HRESULT {.stdcall.} + createSVGPathSegClosePath*: proc( + self: ptr ISVGPathElement, ppResult: ptr ptr ISVGPathSegClosePath + ): HRESULT {.stdcall.} + createSVGPathSegMovetoAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegMovetoAbs, + ): HRESULT {.stdcall.} + createSVGPathSegMovetoRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegMovetoRel, + ): HRESULT {.stdcall.} + createSVGPathSegLinetoAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoAbs, + ): HRESULT {.stdcall.} + createSVGPathSegLinetoRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoRel, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoCubicAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicAbs, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoCubicRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicRel, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoQuadraticAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticAbs, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoQuadraticRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticRel, + ): HRESULT {.stdcall.} + createSVGPathSegArcAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + r1: float32, + r2: float32, + angle: float32, + largeArcFlag: VARIANT_BOOL, + sweepFlag: VARIANT_BOOL, + ppResult: ptr ptr ISVGPathSegArcAbs, + ): HRESULT {.stdcall.} + createSVGPathSegArcRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + r1: float32, + r2: float32, + angle: float32, + largeArcFlag: VARIANT_BOOL, + sweepFlag: VARIANT_BOOL, + ppResult: ptr ptr ISVGPathSegArcRel, + ): HRESULT {.stdcall.} + createSVGPathSegLinetoHorizontalAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + ppResult: ptr ptr ISVGPathSegLinetoHorizontalAbs, + ): HRESULT {.stdcall.} + createSVGPathSegLinetoHorizontalRel*: proc( + self: ptr ISVGPathElement, + x: float32, + ppResult: ptr ptr ISVGPathSegLinetoHorizontalRel, + ): HRESULT {.stdcall.} + createSVGPathSegLinetoVerticalAbs*: proc( + self: ptr ISVGPathElement, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoVerticalAbs, + ): HRESULT {.stdcall.} + createSVGPathSegLinetoVerticalRel*: proc( + self: ptr ISVGPathElement, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoVerticalRel, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoCubicSmoothAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothAbs, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoCubicSmoothRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothRel, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoQuadraticSmoothAbs*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothAbs, + ): HRESULT {.stdcall.} + createSVGPathSegCurvetoQuadraticSmoothRel*: proc( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothRel, + ): HRESULT {.stdcall.} + DispSVGPathElement* {.pure.} = object lpVtbl*: ptr DispSVGPathElementVtbl + DispSVGPathElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGTextElement* {.pure.} = object lpVtbl*: ptr ISVGTextElementVtbl + ISVGTextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGTextElement* {.pure.} = object lpVtbl*: ptr DispSVGTextElementVtbl + DispSVGTextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGImageElement* {.pure.} = object lpVtbl*: ptr ISVGImageElementVtbl + ISVGImageElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x*: proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_width*: proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_width*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_height*: proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_height*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_x*: + proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_y*: + proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_width*: + proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_width*: proc(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_height*: + proc(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_height*: proc( + self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + DispSVGImageElement* {.pure.} = object lpVtbl*: ptr DispSVGImageElementVtbl + DispSVGImageElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGStopElement* {.pure.} = object lpVtbl*: ptr ISVGStopElementVtbl + ISVGStopElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_offset*: proc(self: ptr ISVGStopElement, v: ptr ISVGAnimatedNumber): HRESULT {.stdcall.} - get_offset*: proc(self: ptr ISVGStopElement, p: ptr ptr ISVGAnimatedNumber): HRESULT {.stdcall.} + putref_offset*: + proc(self: ptr ISVGStopElement, v: ptr ISVGAnimatedNumber): HRESULT {.stdcall.} + get_offset*: proc(self: ptr ISVGStopElement, p: ptr ptr ISVGAnimatedNumber): HRESULT {. + stdcall + .} + DispSVGStopElement* {.pure.} = object lpVtbl*: ptr DispSVGStopElementVtbl + DispSVGStopElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGGradientElement* {.pure.} = object lpVtbl*: ptr ISVGGradientElementVtbl + ISVGGradientElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_gradientUnits*: proc(self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_gradientUnits*: proc(self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_gradientTransform*: proc(self: ptr ISVGGradientElement, v: ptr ISVGAnimatedTransformList): HRESULT {.stdcall.} - get_gradientTransform*: proc(self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedTransformList): HRESULT {.stdcall.} - putref_spreadMethod*: proc(self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_spreadMethod*: proc(self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} + putref_gradientUnits*: proc( + self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_gradientUnits*: proc( + self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_gradientTransform*: proc( + self: ptr ISVGGradientElement, v: ptr ISVGAnimatedTransformList + ): HRESULT {.stdcall.} + get_gradientTransform*: proc( + self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedTransformList + ): HRESULT {.stdcall.} + putref_spreadMethod*: proc( + self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_spreadMethod*: proc( + self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + DispSVGGradientElement* {.pure.} = object lpVtbl*: ptr DispSVGGradientElementVtbl + DispSVGGradientElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGLinearGradientElement* {.pure.} = object lpVtbl*: ptr ISVGLinearGradientElementVtbl + ISVGLinearGradientElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x1*: proc(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x1*: proc(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y1*: proc(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y1*: proc(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_x2*: proc(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x2*: proc(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y2*: proc(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y2*: proc(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_x1*: proc( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_x1*: proc( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_y1*: proc( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_y1*: proc( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_x2*: proc( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_x2*: proc( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_y2*: proc( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_y2*: proc( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + DispSVGLinearGradientElement* {.pure.} = object lpVtbl*: ptr DispSVGLinearGradientElementVtbl + DispSVGLinearGradientElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGRadialGradientElement* {.pure.} = object lpVtbl*: ptr ISVGRadialGradientElementVtbl + ISVGRadialGradientElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_cx*: proc(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_cx*: proc(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_cy*: proc(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_cy*: proc(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_r*: proc(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_r*: proc(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_fx*: proc(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_fx*: proc(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_fy*: proc(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_fy*: proc(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_cx*: proc( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_cx*: proc( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_cy*: proc( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_cy*: proc( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_r*: proc( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_r*: proc( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_fx*: proc( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_fx*: proc( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_fy*: proc( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_fy*: proc( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + DispSVGRadialGradientElement* {.pure.} = object lpVtbl*: ptr DispSVGRadialGradientElementVtbl + DispSVGRadialGradientElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGMaskElement* {.pure.} = object lpVtbl*: ptr ISVGMaskElementVtbl + ISVGMaskElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_maskUnits*: proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_maskUnits*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_maskContentUnits*: proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_maskContentUnits*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_x*: proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_width*: proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_width*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_height*: proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_height*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} + putref_maskUnits*: proc( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_maskUnits*: proc( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_maskContentUnits*: proc( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_maskContentUnits*: proc( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_x*: + proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_x*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_y*: + proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_y*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_width*: + proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_width*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_height*: + proc(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_height*: proc(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + DispSVGMaskElement* {.pure.} = object lpVtbl*: ptr DispSVGMaskElementVtbl + DispSVGMaskElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGMarkerElement* {.pure.} = object lpVtbl*: ptr ISVGMarkerElementVtbl + ISVGMarkerElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_refX*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_refX*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_refY*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_refY*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_markerUnits*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_markerUnits*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_markerWidth*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_markerWidth*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_markerHeight*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_markerHeight*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_orientType*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_orientType*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_orientAngle*: proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedAngle): HRESULT {.stdcall.} - get_orientAngle*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedAngle): HRESULT {.stdcall.} + putref_refX*: + proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_refX*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_refY*: + proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_refY*: proc(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {. + stdcall + .} + putref_markerUnits*: proc( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_markerUnits*: proc( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_markerWidth*: + proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_markerWidth*: proc( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_markerHeight*: + proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} + get_markerHeight*: proc( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_orientType*: proc( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_orientType*: proc( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_orientAngle*: + proc(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedAngle): HRESULT {.stdcall.} + get_orientAngle*: proc( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedAngle + ): HRESULT {.stdcall.} setOrientToAuto*: proc(self: ptr ISVGMarkerElement): HRESULT {.stdcall.} - setOrientToAngle*: proc(self: ptr ISVGMarkerElement, pSVGAngle: ptr ISVGAngle): HRESULT {.stdcall.} + setOrientToAngle*: + proc(self: ptr ISVGMarkerElement, pSVGAngle: ptr ISVGAngle): HRESULT {.stdcall.} + DispSVGMarkerElement* {.pure.} = object lpVtbl*: ptr DispSVGMarkerElementVtbl + DispSVGMarkerElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGZoomEvent* {.pure.} = object lpVtbl*: ptr ISVGZoomEventVtbl + ISVGZoomEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_zoomRectScreen*: proc(self: ptr ISVGZoomEvent, p: ptr ptr ISVGRect): HRESULT {.stdcall.} - get_previousScale*: proc(self: ptr ISVGZoomEvent, p: ptr float32): HRESULT {.stdcall.} - get_previousTranslate*: proc(self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint): HRESULT {.stdcall.} + get_zoomRectScreen*: + proc(self: ptr ISVGZoomEvent, p: ptr ptr ISVGRect): HRESULT {.stdcall.} + get_previousScale*: + proc(self: ptr ISVGZoomEvent, p: ptr float32): HRESULT {.stdcall.} + get_previousTranslate*: + proc(self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint): HRESULT {.stdcall.} get_newScale*: proc(self: ptr ISVGZoomEvent, p: ptr float32): HRESULT {.stdcall.} - get_newTranslate*: proc(self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint): HRESULT {.stdcall.} + get_newTranslate*: + proc(self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint): HRESULT {.stdcall.} + DispSVGZoomEvent* {.pure.} = object lpVtbl*: ptr DispSVGZoomEventVtbl + DispSVGZoomEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGAElement* {.pure.} = object lpVtbl*: ptr ISVGAElementVtbl + ISVGAElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_target*: proc(self: ptr ISVGAElement, v: ptr ISVGAnimatedString): HRESULT {.stdcall.} - get_target*: proc(self: ptr ISVGAElement, p: ptr ptr ISVGAnimatedString): HRESULT {.stdcall.} + putref_target*: + proc(self: ptr ISVGAElement, v: ptr ISVGAnimatedString): HRESULT {.stdcall.} + get_target*: + proc(self: ptr ISVGAElement, p: ptr ptr ISVGAnimatedString): HRESULT {.stdcall.} + DispSVGAElement* {.pure.} = object lpVtbl*: ptr DispSVGAElementVtbl + DispSVGAElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGViewElement* {.pure.} = object lpVtbl*: ptr ISVGViewElementVtbl + ISVGViewElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_viewTarget*: proc(self: ptr ISVGViewElement, v: ptr ISVGStringList): HRESULT {.stdcall.} - get_viewTarget*: proc(self: ptr ISVGViewElement, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} + putref_viewTarget*: + proc(self: ptr ISVGViewElement, v: ptr ISVGStringList): HRESULT {.stdcall.} + get_viewTarget*: + proc(self: ptr ISVGViewElement, p: ptr ptr ISVGStringList): HRESULT {.stdcall.} + DispSVGViewElement* {.pure.} = object lpVtbl*: ptr DispSVGViewElementVtbl + DispSVGViewElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLMediaError* {.pure.} = object lpVtbl*: ptr IHTMLMediaErrorVtbl + IHTMLMediaErrorVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_code*: proc(self: ptr IHTMLMediaError, p: ptr int16): HRESULT {.stdcall.} + IHTMLTimeRanges* {.pure.} = object lpVtbl*: ptr IHTMLTimeRangesVtbl + IHTMLTimeRangesVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IHTMLTimeRanges, p: ptr LONG): HRESULT {.stdcall.} - start*: proc(self: ptr IHTMLTimeRanges, index: LONG, startTime: ptr float32): HRESULT {.stdcall.} - `end`*: proc(self: ptr IHTMLTimeRanges, index: LONG, endTime: ptr float32): HRESULT {.stdcall.} + start*: proc( + self: ptr IHTMLTimeRanges, index: LONG, startTime: ptr float32 + ): HRESULT {.stdcall.} + `end`*: proc(self: ptr IHTMLTimeRanges, index: LONG, endTime: ptr float32): HRESULT {. + stdcall + .} + IHTMLTimeRanges2* {.pure.} = object lpVtbl*: ptr IHTMLTimeRanges2Vtbl + IHTMLTimeRanges2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - startDouble*: proc(self: ptr IHTMLTimeRanges2, index: LONG, startTime: ptr float64): HRESULT {.stdcall.} - endDouble*: proc(self: ptr IHTMLTimeRanges2, index: LONG, endTime: ptr float64): HRESULT {.stdcall.} + startDouble*: proc( + self: ptr IHTMLTimeRanges2, index: LONG, startTime: ptr float64 + ): HRESULT {.stdcall.} + endDouble*: proc( + self: ptr IHTMLTimeRanges2, index: LONG, endTime: ptr float64 + ): HRESULT {.stdcall.} + IHTMLMediaElement* {.pure.} = object lpVtbl*: ptr IHTMLMediaElementVtbl + IHTMLMediaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_error*: proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLMediaError): HRESULT {.stdcall.} + get_error*: + proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLMediaError): HRESULT {.stdcall.} put_src*: proc(self: ptr IHTMLMediaElement, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.stdcall.} get_currentSrc*: proc(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.stdcall.} - get_networkState*: proc(self: ptr IHTMLMediaElement, p: ptr USHORT): HRESULT {.stdcall.} + get_networkState*: + proc(self: ptr IHTMLMediaElement, p: ptr USHORT): HRESULT {.stdcall.} put_preload*: proc(self: ptr IHTMLMediaElement, v: BSTR): HRESULT {.stdcall.} get_preload*: proc(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.stdcall.} - get_buffered*: proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.stdcall.} + get_buffered*: + proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.stdcall.} load*: proc(self: ptr IHTMLMediaElement): HRESULT {.stdcall.} - canPlayType*: proc(self: ptr IHTMLMediaElement, `type`: BSTR, canPlay: ptr BSTR): HRESULT {.stdcall.} - get_seeking*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + canPlayType*: proc( + self: ptr IHTMLMediaElement, `type`: BSTR, canPlay: ptr BSTR + ): HRESULT {.stdcall.} + get_seeking*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_currentTime*: proc(self: ptr IHTMLMediaElement, v: float32): HRESULT {.stdcall.} - get_currentTime*: proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} - get_initialTime*: proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} - get_duration*: proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} - get_paused*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_defaultPlaybackRate*: proc(self: ptr IHTMLMediaElement, v: float32): HRESULT {.stdcall.} - get_defaultPlaybackRate*: proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} - put_playbackRate*: proc(self: ptr IHTMLMediaElement, v: float32): HRESULT {.stdcall.} - get_playbackRate*: proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} - get_played*: proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.stdcall.} - get_seekable*: proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.stdcall.} - get_ended*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_autoplay*: proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_autoplay*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_currentTime*: + proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} + get_initialTime*: + proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} + get_duration*: + proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} + get_paused*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_defaultPlaybackRate*: + proc(self: ptr IHTMLMediaElement, v: float32): HRESULT {.stdcall.} + get_defaultPlaybackRate*: + proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} + put_playbackRate*: + proc(self: ptr IHTMLMediaElement, v: float32): HRESULT {.stdcall.} + get_playbackRate*: + proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} + get_played*: + proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.stdcall.} + get_seekable*: + proc(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.stdcall.} + get_ended*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_autoplay*: + proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_autoplay*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_loop*: proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_loop*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_loop*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} play*: proc(self: ptr IHTMLMediaElement): HRESULT {.stdcall.} pause*: proc(self: ptr IHTMLMediaElement): HRESULT {.stdcall.} - put_controls*: proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_controls*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_controls*: + proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_controls*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_volume*: proc(self: ptr IHTMLMediaElement, v: float32): HRESULT {.stdcall.} get_volume*: proc(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.stdcall.} put_muted*: proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_muted*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_autobuffer*: proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_autobuffer*: proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_muted*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_autobuffer*: + proc(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_autobuffer*: + proc(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLMediaElement2* {.pure.} = object lpVtbl*: ptr IHTMLMediaElement2Vtbl + IHTMLMediaElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_currentTimeDouble*: proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} - get_currentTimeDouble*: proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} - get_initialTimeDouble*: proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} - get_durationDouble*: proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} - put_defaultPlaybackRateDouble*: proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} - get_defaultPlaybackRateDouble*: proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} - put_playbackRateDouble*: proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} - get_playbackRateDouble*: proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} - put_volumeDouble*: proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} - get_volumeDouble*: proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + put_currentTimeDouble*: + proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} + get_currentTimeDouble*: + proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + get_initialTimeDouble*: + proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + get_durationDouble*: + proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + put_defaultPlaybackRateDouble*: + proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} + get_defaultPlaybackRateDouble*: + proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + put_playbackRateDouble*: + proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} + get_playbackRateDouble*: + proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + put_volumeDouble*: + proc(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.stdcall.} + get_volumeDouble*: + proc(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.stdcall.} + IHTMLMSMediaElement* {.pure.} = object lpVtbl*: ptr IHTMLMSMediaElementVtbl + IHTMLMSMediaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - put_msPlayToDisabled*: proc(self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_msPlayToDisabled*: proc(self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_msPlayToPrimary*: proc(self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_msPlayToPrimary*: proc(self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_msPlayToDisabled*: + proc(self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_msPlayToDisabled*: + proc(self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_msPlayToPrimary*: + proc(self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_msPlayToPrimary*: + proc(self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLSourceElement* {.pure.} = object lpVtbl*: ptr IHTMLSourceElementVtbl + IHTMLSourceElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_src*: proc(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.stdcall.} get_src*: proc(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.stdcall.} @@ -11205,267 +16650,441 @@ get_type*: proc(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.stdcall.} put_media*: proc(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.stdcall.} get_media*: proc(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLAudioElement* {.pure.} = object lpVtbl*: ptr IHTMLAudioElementVtbl + IHTMLAudioElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLVideoElement* {.pure.} = object lpVtbl*: ptr IHTMLVideoElementVtbl + IHTMLVideoElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_width*: proc(self: ptr IHTMLVideoElement, v: LONG): HRESULT {.stdcall.} get_width*: proc(self: ptr IHTMLVideoElement, p: ptr LONG): HRESULT {.stdcall.} put_height*: proc(self: ptr IHTMLVideoElement, v: LONG): HRESULT {.stdcall.} get_height*: proc(self: ptr IHTMLVideoElement, p: ptr LONG): HRESULT {.stdcall.} - get_videoWidth*: proc(self: ptr IHTMLVideoElement, p: ptr ULONG): HRESULT {.stdcall.} - get_videoHeight*: proc(self: ptr IHTMLVideoElement, p: ptr ULONG): HRESULT {.stdcall.} + get_videoWidth*: + proc(self: ptr IHTMLVideoElement, p: ptr ULONG): HRESULT {.stdcall.} + get_videoHeight*: + proc(self: ptr IHTMLVideoElement, p: ptr ULONG): HRESULT {.stdcall.} put_poster*: proc(self: ptr IHTMLVideoElement, v: BSTR): HRESULT {.stdcall.} get_poster*: proc(self: ptr IHTMLVideoElement, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLAudioElementFactory* {.pure.} = object lpVtbl*: ptr IHTMLAudioElementFactoryVtbl + IHTMLAudioElementFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IHTMLAudioElementFactory, src: VARIANT, a: ptr ptr IHTMLAudioElement): HRESULT {.stdcall.} + create*: proc( + self: ptr IHTMLAudioElementFactory, src: VARIANT, a: ptr ptr IHTMLAudioElement + ): HRESULT {.stdcall.} + DispHTMLMediaError* {.pure.} = object lpVtbl*: ptr DispHTMLMediaErrorVtbl + DispHTMLMediaErrorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLTimeRanges* {.pure.} = object lpVtbl*: ptr DispHTMLTimeRangesVtbl + DispHTMLTimeRangesVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLMediaElement* {.pure.} = object lpVtbl*: ptr DispHTMLMediaElementVtbl + DispHTMLMediaElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLSourceElement* {.pure.} = object lpVtbl*: ptr DispHTMLSourceElementVtbl + DispHTMLSourceElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLAudioElement* {.pure.} = object lpVtbl*: ptr DispHTMLAudioElementVtbl + DispHTMLAudioElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLVideoElement* {.pure.} = object lpVtbl*: ptr DispHTMLVideoElementVtbl + DispHTMLVideoElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGSwitchElement* {.pure.} = object lpVtbl*: ptr ISVGSwitchElementVtbl + ISVGSwitchElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGSwitchElement* {.pure.} = object lpVtbl*: ptr DispSVGSwitchElementVtbl + DispSVGSwitchElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGDescElement* {.pure.} = object lpVtbl*: ptr ISVGDescElementVtbl + ISVGDescElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGDescElement* {.pure.} = object lpVtbl*: ptr DispSVGDescElementVtbl + DispSVGDescElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGTitleElement* {.pure.} = object lpVtbl*: ptr ISVGTitleElementVtbl + ISVGTitleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGTitleElement* {.pure.} = object lpVtbl*: ptr DispSVGTitleElementVtbl + DispSVGTitleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGMetadataElement* {.pure.} = object lpVtbl*: ptr ISVGMetadataElementVtbl + ISVGMetadataElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGMetadataElement* {.pure.} = object lpVtbl*: ptr DispSVGMetadataElementVtbl + DispSVGMetadataElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGElementInstance* {.pure.} = object lpVtbl*: ptr DispSVGElementInstanceVtbl + DispSVGElementInstanceVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGElementInstanceList* {.pure.} = object lpVtbl*: ptr DispSVGElementInstanceListVtbl + DispSVGElementInstanceListVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMException* {.pure.} = object lpVtbl*: ptr IDOMExceptionVtbl + IDOMExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_code*: proc(self: ptr IDOMException, v: LONG): HRESULT {.stdcall.} get_code*: proc(self: ptr IDOMException, p: ptr LONG): HRESULT {.stdcall.} get_message*: proc(self: ptr IDOMException, p: ptr BSTR): HRESULT {.stdcall.} + IRangeException* {.pure.} = object lpVtbl*: ptr IRangeExceptionVtbl + IRangeExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_code*: proc(self: ptr IRangeException, v: LONG): HRESULT {.stdcall.} get_code*: proc(self: ptr IRangeException, p: ptr LONG): HRESULT {.stdcall.} get_message*: proc(self: ptr IRangeException, p: ptr BSTR): HRESULT {.stdcall.} + ISVGException* {.pure.} = object lpVtbl*: ptr ISVGExceptionVtbl + ISVGExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_code*: proc(self: ptr ISVGException, v: LONG): HRESULT {.stdcall.} get_code*: proc(self: ptr ISVGException, p: ptr LONG): HRESULT {.stdcall.} get_message*: proc(self: ptr ISVGException, p: ptr BSTR): HRESULT {.stdcall.} + IEventException* {.pure.} = object lpVtbl*: ptr IEventExceptionVtbl + IEventExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_code*: proc(self: ptr IEventException, v: LONG): HRESULT {.stdcall.} get_code*: proc(self: ptr IEventException, p: ptr LONG): HRESULT {.stdcall.} get_message*: proc(self: ptr IEventException, p: ptr BSTR): HRESULT {.stdcall.} + DispDOMException* {.pure.} = object lpVtbl*: ptr DispDOMExceptionVtbl + DispDOMExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispRangeException* {.pure.} = object lpVtbl*: ptr DispRangeExceptionVtbl + DispRangeExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGException* {.pure.} = object lpVtbl*: ptr DispSVGExceptionVtbl + DispSVGExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispEventException* {.pure.} = object lpVtbl*: ptr DispEventExceptionVtbl + DispEventExceptionVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGScriptElement* {.pure.} = object lpVtbl*: ptr ISVGScriptElementVtbl + ISVGScriptElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr ISVGScriptElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr ISVGScriptElement, p: ptr BSTR): HRESULT {.stdcall.} + DispSVGScriptElement* {.pure.} = object lpVtbl*: ptr DispSVGScriptElementVtbl + DispSVGScriptElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGStyleElement* {.pure.} = object lpVtbl*: ptr ISVGStyleElementVtbl + ISVGStyleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_type*: proc(self: ptr ISVGStyleElement, v: BSTR): HRESULT {.stdcall.} get_type*: proc(self: ptr ISVGStyleElement, p: ptr BSTR): HRESULT {.stdcall.} put_media*: proc(self: ptr ISVGStyleElement, v: BSTR): HRESULT {.stdcall.} get_media*: proc(self: ptr ISVGStyleElement, p: ptr BSTR): HRESULT {.stdcall.} + DispSVGStyleElement* {.pure.} = object lpVtbl*: ptr DispSVGStyleElementVtbl + DispSVGStyleElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGTextContentElement* {.pure.} = object lpVtbl*: ptr ISVGTextContentElementVtbl + ISVGTextContentElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_textLength*: proc(self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_textLength*: proc(self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_lengthAdjust*: proc(self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_lengthAdjust*: proc(self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - getNumberOfChars*: proc(self: ptr ISVGTextContentElement, pResult: ptr LONG): HRESULT {.stdcall.} - getComputedTextLength*: proc(self: ptr ISVGTextContentElement, pResult: ptr float32): HRESULT {.stdcall.} - getSubStringLength*: proc(self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG, pResult: ptr float32): HRESULT {.stdcall.} - getStartPositionOfChar*: proc(self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - getEndPositionOfChar*: proc(self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.stdcall.} - getExtentOfChar*: proc(self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGRect): HRESULT {.stdcall.} - getRotationOfChar*: proc(self: ptr ISVGTextContentElement, charnum: LONG, pResult: ptr float32): HRESULT {.stdcall.} - getCharNumAtPosition*: proc(self: ptr ISVGTextContentElement, point: ptr ISVGPoint, pResult: ptr LONG): HRESULT {.stdcall.} - selectSubString*: proc(self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG): HRESULT {.stdcall.} + putref_textLength*: proc( + self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_textLength*: proc( + self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_lengthAdjust*: proc( + self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_lengthAdjust*: proc( + self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + getNumberOfChars*: + proc(self: ptr ISVGTextContentElement, pResult: ptr LONG): HRESULT {.stdcall.} + getComputedTextLength*: + proc(self: ptr ISVGTextContentElement, pResult: ptr float32): HRESULT {.stdcall.} + getSubStringLength*: proc( + self: ptr ISVGTextContentElement, + charnum: LONG, + nchars: LONG, + pResult: ptr float32, + ): HRESULT {.stdcall.} + getStartPositionOfChar*: proc( + self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + getEndPositionOfChar*: proc( + self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint + ): HRESULT {.stdcall.} + getExtentOfChar*: proc( + self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGRect + ): HRESULT {.stdcall.} + getRotationOfChar*: proc( + self: ptr ISVGTextContentElement, charnum: LONG, pResult: ptr float32 + ): HRESULT {.stdcall.} + getCharNumAtPosition*: proc( + self: ptr ISVGTextContentElement, point: ptr ISVGPoint, pResult: ptr LONG + ): HRESULT {.stdcall.} + selectSubString*: proc( + self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG + ): HRESULT {.stdcall.} + DispSVGTextContentElement* {.pure.} = object lpVtbl*: ptr DispSVGTextContentElementVtbl + DispSVGTextContentElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGTextPositioningElement* {.pure.} = object lpVtbl*: ptr ISVGTextPositioningElementVtbl + ISVGTextPositioningElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_x*: proc(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - get_x*: proc(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - putref_y*: proc(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - get_y*: proc(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - putref_dx*: proc(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - get_dx*: proc(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - putref_dy*: proc(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - get_dy*: proc(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.stdcall.} - putref_rotate*: proc(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedNumberList): HRESULT {.stdcall.} - get_rotate*: proc(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedNumberList): HRESULT {.stdcall.} + putref_x*: proc( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + get_x*: proc( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + putref_y*: proc( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + get_y*: proc( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + putref_dx*: proc( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + get_dx*: proc( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + putref_dy*: proc( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + get_dy*: proc( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList + ): HRESULT {.stdcall.} + putref_rotate*: proc( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedNumberList + ): HRESULT {.stdcall.} + get_rotate*: proc( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedNumberList + ): HRESULT {.stdcall.} + DispSVGTextPositioningElement* {.pure.} = object lpVtbl*: ptr DispSVGTextPositioningElementVtbl + DispSVGTextPositioningElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispDOMDocumentType* {.pure.} = object lpVtbl*: ptr DispDOMDocumentTypeVtbl + DispDOMDocumentTypeVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispNodeIterator* {.pure.} = object lpVtbl*: ptr DispNodeIteratorVtbl + DispNodeIteratorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispTreeWalker* {.pure.} = object lpVtbl*: ptr DispTreeWalkerVtbl + DispTreeWalkerVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispDOMProcessingInstruction* {.pure.} = object lpVtbl*: ptr DispDOMProcessingInstructionVtbl + DispDOMProcessingInstructionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLPerformanceNavigation* {.pure.} = object lpVtbl*: ptr IHTMLPerformanceNavigationVtbl + IHTMLPerformanceNavigationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_type*: proc(self: ptr IHTMLPerformanceNavigation, p: ptr ULONG): HRESULT {.stdcall.} - get_redirectCount*: proc(self: ptr IHTMLPerformanceNavigation, p: ptr ULONG): HRESULT {.stdcall.} - toString*: proc(self: ptr IHTMLPerformanceNavigation, string: ptr BSTR): HRESULT {.stdcall.} - toJSON*: proc(self: ptr IHTMLPerformanceNavigation, pVar: ptr VARIANT): HRESULT {.stdcall.} + get_type*: + proc(self: ptr IHTMLPerformanceNavigation, p: ptr ULONG): HRESULT {.stdcall.} + get_redirectCount*: + proc(self: ptr IHTMLPerformanceNavigation, p: ptr ULONG): HRESULT {.stdcall.} + toString*: + proc(self: ptr IHTMLPerformanceNavigation, string: ptr BSTR): HRESULT {.stdcall.} + toJSON*: + proc(self: ptr IHTMLPerformanceNavigation, pVar: ptr VARIANT): HRESULT {.stdcall.} + IHTMLPerformanceTiming* {.pure.} = object lpVtbl*: ptr IHTMLPerformanceTimingVtbl + IHTMLPerformanceTimingVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_navigationStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_unloadEventStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_unloadEventEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_redirectStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_redirectEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_fetchStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domainLookupStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domainLookupEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_connectStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_connectEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_requestStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_responseStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_responseEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domLoading*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domInteractive*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domContentLoadedEventStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domContentLoadedEventEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_domComplete*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_loadEventStart*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_loadEventEnd*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - get_msFirstPaint*: proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} - toString*: proc(self: ptr IHTMLPerformanceTiming, string: ptr BSTR): HRESULT {.stdcall.} - toJSON*: proc(self: ptr IHTMLPerformanceTiming, pVar: ptr VARIANT): HRESULT {.stdcall.} + get_navigationStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_unloadEventStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_unloadEventEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_redirectStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_redirectEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_fetchStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domainLookupStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domainLookupEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_connectStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_connectEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_requestStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_responseStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_responseEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domLoading*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domInteractive*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domContentLoadedEventStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domContentLoadedEventEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_domComplete*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_loadEventStart*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_loadEventEnd*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_msFirstPaint*: + proc(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.stdcall.} + toString*: + proc(self: ptr IHTMLPerformanceTiming, string: ptr BSTR): HRESULT {.stdcall.} + toJSON*: + proc(self: ptr IHTMLPerformanceTiming, pVar: ptr VARIANT): HRESULT {.stdcall.} + IHTMLPerformance* {.pure.} = object lpVtbl*: ptr IHTMLPerformanceVtbl + IHTMLPerformanceVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_navigation*: proc(self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceNavigation): HRESULT {.stdcall.} - get_timing*: proc(self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceTiming): HRESULT {.stdcall.} + get_navigation*: proc( + self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceNavigation + ): HRESULT {.stdcall.} + get_timing*: proc( + self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceTiming + ): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLPerformance, string: ptr BSTR): HRESULT {.stdcall.} toJSON*: proc(self: ptr IHTMLPerformance, pVar: ptr VARIANT): HRESULT {.stdcall.} + DispHTMLPerformance* {.pure.} = object lpVtbl*: ptr DispHTMLPerformanceVtbl + DispHTMLPerformanceVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLPerformanceNavigation* {.pure.} = object lpVtbl*: ptr DispHTMLPerformanceNavigationVtbl + DispHTMLPerformanceNavigationVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLPerformanceTiming* {.pure.} = object lpVtbl*: ptr DispHTMLPerformanceTimingVtbl + DispHTMLPerformanceTimingVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGTSpanElement* {.pure.} = object lpVtbl*: ptr ISVGTSpanElementVtbl + ISVGTSpanElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispSVGTSpanElement* {.pure.} = object lpVtbl*: ptr DispSVGTSpanElementVtbl + DispSVGTSpanElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl ITemplatePrinter* {.pure.} = object lpVtbl*: ptr ITemplatePrinterVtbl + ITemplatePrinterVtbl* {.pure, inheritable.} = object of IDispatchVtbl - startDoc*: proc(self: ptr ITemplatePrinter, bstrTitle: BSTR, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + startDoc*: proc( + self: ptr ITemplatePrinter, bstrTitle: BSTR, p: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} stopDoc*: proc(self: ptr ITemplatePrinter): HRESULT {.stdcall.} printBlankPage*: proc(self: ptr ITemplatePrinter): HRESULT {.stdcall.} - printPage*: proc(self: ptr ITemplatePrinter, pElemDisp: ptr IDispatch): HRESULT {.stdcall.} - ensurePrintDialogDefaults*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - showPrintDialog*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - showPageSetupDialog*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - printNonNative*: proc(self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - printNonNativeFrames*: proc(self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, fActiveFrame: VARIANT_BOOL): HRESULT {.stdcall.} - put_framesetDocument*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_framesetDocument*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_frameActive*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_frameActive*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_frameAsShown*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_frameAsShown*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_selection*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_selection*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_selectedPages*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_selectedPages*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_currentPage*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_currentPage*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_currentPageAvail*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_currentPageAvail*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + printPage*: + proc(self: ptr ITemplatePrinter, pElemDisp: ptr IDispatch): HRESULT {.stdcall.} + ensurePrintDialogDefaults*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + showPrintDialog*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + showPageSetupDialog*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + printNonNative*: proc( + self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, p: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + printNonNativeFrames*: proc( + self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, fActiveFrame: VARIANT_BOOL + ): HRESULT {.stdcall.} + put_framesetDocument*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_framesetDocument*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_frameActive*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_frameActive*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_frameAsShown*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_frameAsShown*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_selection*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_selection*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_selectedPages*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_selectedPages*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_currentPage*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_currentPage*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_currentPageAvail*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_currentPageAvail*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_collate*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_collate*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_duplex*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_collate*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_duplex*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_copies*: proc(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.stdcall.} get_copies*: proc(self: ptr ITemplatePrinter, p: ptr USHORT): HRESULT {.stdcall.} put_pageFrom*: proc(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.stdcall.} get_pageFrom*: proc(self: ptr ITemplatePrinter, p: ptr USHORT): HRESULT {.stdcall.} put_pageTo*: proc(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.stdcall.} get_pageTo*: proc(self: ptr ITemplatePrinter, p: ptr USHORT): HRESULT {.stdcall.} - put_tableOfLinks*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_tableOfLinks*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_allLinkedDocuments*: proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_allLinkedDocuments*: proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_tableOfLinks*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_tableOfLinks*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_allLinkedDocuments*: + proc(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_allLinkedDocuments*: + proc(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_header*: proc(self: ptr ITemplatePrinter, v: BSTR): HRESULT {.stdcall.} get_header*: proc(self: ptr ITemplatePrinter, p: ptr BSTR): HRESULT {.stdcall.} put_footer*: proc(self: ptr ITemplatePrinter, v: BSTR): HRESULT {.stdcall.} @@ -11477,155 +17096,315 @@ put_marginTop*: proc(self: ptr ITemplatePrinter, v: LONG): HRESULT {.stdcall.} get_marginTop*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} put_marginBottom*: proc(self: ptr ITemplatePrinter, v: LONG): HRESULT {.stdcall.} - get_marginBottom*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + get_marginBottom*: + proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} get_pageWidth*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} get_pageHeight*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} - get_unprintableLeft*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} - get_unprintableTop*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} - get_unprintableRight*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} - get_unprintableBottom*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} - updatePageStatus*: proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + get_unprintableLeft*: + proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + get_unprintableTop*: + proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + get_unprintableRight*: + proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + get_unprintableBottom*: + proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + updatePageStatus*: + proc(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.stdcall.} + ITemplatePrinter2* {.pure.} = object lpVtbl*: ptr ITemplatePrinter2Vtbl + ITemplatePrinter2Vtbl* {.pure, inheritable.} = object of ITemplatePrinterVtbl - put_selectionEnabled*: proc(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_selectionEnabled*: proc(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_frameActiveEnabled*: proc(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_frameActiveEnabled*: proc(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_selectionEnabled*: + proc(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_selectionEnabled*: + proc(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_frameActiveEnabled*: + proc(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_frameActiveEnabled*: + proc(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_orientation*: proc(self: ptr ITemplatePrinter2, v: BSTR): HRESULT {.stdcall.} - get_orientation*: proc(self: ptr ITemplatePrinter2, p: ptr BSTR): HRESULT {.stdcall.} - put_usePrinterCopyCollate*: proc(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.stdcall.} - get_usePrinterCopyCollate*: proc(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - deviceSupports*: proc(self: ptr ITemplatePrinter2, bstrProperty: BSTR, pvar: ptr VARIANT): HRESULT {.stdcall.} + get_orientation*: + proc(self: ptr ITemplatePrinter2, p: ptr BSTR): HRESULT {.stdcall.} + put_usePrinterCopyCollate*: + proc(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.stdcall.} + get_usePrinterCopyCollate*: + proc(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + deviceSupports*: proc( + self: ptr ITemplatePrinter2, bstrProperty: BSTR, pvar: ptr VARIANT + ): HRESULT {.stdcall.} + ITemplatePrinter3* {.pure.} = object lpVtbl*: ptr ITemplatePrinter3Vtbl + ITemplatePrinter3Vtbl* {.pure, inheritable.} = object of ITemplatePrinter2Vtbl - put_headerFooterFont*: proc(self: ptr ITemplatePrinter3, v: BSTR): HRESULT {.stdcall.} - get_headerFooterFont*: proc(self: ptr ITemplatePrinter3, p: ptr BSTR): HRESULT {.stdcall.} - getPageMarginTop*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.stdcall.} - getPageMarginRight*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.stdcall.} - getPageMarginBottom*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.stdcall.} - getPageMarginLeft*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.stdcall.} - getPageMarginTopImportant*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getPageMarginRightImportant*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getPageMarginBottomImportant*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getPageMarginLeftImportant*: proc(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_headerFooterFont*: + proc(self: ptr ITemplatePrinter3, v: BSTR): HRESULT {.stdcall.} + get_headerFooterFont*: + proc(self: ptr ITemplatePrinter3, p: ptr BSTR): HRESULT {.stdcall.} + getPageMarginTop*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, + ): HRESULT {.stdcall.} + getPageMarginRight*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, + ): HRESULT {.stdcall.} + getPageMarginBottom*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, + ): HRESULT {.stdcall.} + getPageMarginLeft*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, + ): HRESULT {.stdcall.} + getPageMarginTopImportant*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pbImportant: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getPageMarginRightImportant*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pbImportant: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getPageMarginBottomImportant*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pbImportant: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getPageMarginLeftImportant*: proc( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pbImportant: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IPrintManagerTemplatePrinter* {.pure.} = object lpVtbl*: ptr IPrintManagerTemplatePrinterVtbl + IPrintManagerTemplatePrinterVtbl* {.pure, inheritable.} = object of IDispatchVtbl startPrint*: proc(self: ptr IPrintManagerTemplatePrinter): HRESULT {.stdcall.} - drawPreviewPage*: proc(self: ptr IPrintManagerTemplatePrinter, pElemDisp: ptr IDispatch, nPage: LONG): HRESULT {.stdcall.} - setPageCount*: proc(self: ptr IPrintManagerTemplatePrinter, nPage: LONG): HRESULT {.stdcall.} - invalidatePreview*: proc(self: ptr IPrintManagerTemplatePrinter): HRESULT {.stdcall.} - getPrintTaskOptionValue*: proc(self: ptr IPrintManagerTemplatePrinter, bstrKey: BSTR, pvarin: ptr VARIANT): HRESULT {.stdcall.} + drawPreviewPage*: proc( + self: ptr IPrintManagerTemplatePrinter, pElemDisp: ptr IDispatch, nPage: LONG + ): HRESULT {.stdcall.} + setPageCount*: + proc(self: ptr IPrintManagerTemplatePrinter, nPage: LONG): HRESULT {.stdcall.} + invalidatePreview*: + proc(self: ptr IPrintManagerTemplatePrinter): HRESULT {.stdcall.} + getPrintTaskOptionValue*: proc( + self: ptr IPrintManagerTemplatePrinter, bstrKey: BSTR, pvarin: ptr VARIANT + ): HRESULT {.stdcall.} endPrint*: proc(self: ptr IPrintManagerTemplatePrinter): HRESULT {.stdcall.} + DispCPrintManagerTemplatePrinter* {.pure.} = object lpVtbl*: ptr DispCPrintManagerTemplatePrinterVtbl + DispCPrintManagerTemplatePrinterVtbl* {.pure, inheritable.} = object of IDispatchVtbl ISVGTextPathElement* {.pure.} = object lpVtbl*: ptr ISVGTextPathElementVtbl + ISVGTextPathElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl - putref_startOffset*: proc(self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedLength): HRESULT {.stdcall.} - get_startOffset*: proc(self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.stdcall.} - putref_method*: proc(self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_method*: proc(self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - putref_spacing*: proc(self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} - get_spacing*: proc(self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.stdcall.} + putref_startOffset*: proc( + self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + get_startOffset*: proc( + self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedLength + ): HRESULT {.stdcall.} + putref_method*: proc( + self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_method*: proc( + self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + putref_spacing*: proc( + self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + get_spacing*: proc( + self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration + ): HRESULT {.stdcall.} + DispSVGTextPathElement* {.pure.} = object lpVtbl*: ptr DispSVGTextPathElementVtbl + DispSVGTextPathElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMXmlSerializer* {.pure.} = object lpVtbl*: ptr IDOMXmlSerializerVtbl + IDOMXmlSerializerVtbl* {.pure, inheritable.} = object of IDispatchVtbl - serializeToString*: proc(self: ptr IDOMXmlSerializer, pNode: ptr IHTMLDOMNode, pString: ptr BSTR): HRESULT {.stdcall.} + serializeToString*: proc( + self: ptr IDOMXmlSerializer, pNode: ptr IHTMLDOMNode, pString: ptr BSTR + ): HRESULT {.stdcall.} + IDOMXmlSerializerFactory* {.pure.} = object lpVtbl*: ptr IDOMXmlSerializerFactoryVtbl + IDOMXmlSerializerFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IDOMXmlSerializerFactory, a: ptr ptr IDOMXmlSerializer): HRESULT {.stdcall.} + create*: proc( + self: ptr IDOMXmlSerializerFactory, a: ptr ptr IDOMXmlSerializer + ): HRESULT {.stdcall.} + IDOMParser* {.pure.} = object lpVtbl*: ptr IDOMParserVtbl + IDOMParserVtbl* {.pure, inheritable.} = object of IDispatchVtbl - parseFromString*: proc(self: ptr IDOMParser, xmlSource: BSTR, mimeType: BSTR, ppNode: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + parseFromString*: proc( + self: ptr IDOMParser, + xmlSource: BSTR, + mimeType: BSTR, + ppNode: ptr ptr IHTMLDocument2, + ): HRESULT {.stdcall.} + IDOMParserFactory* {.pure.} = object lpVtbl*: ptr IDOMParserFactoryVtbl + IDOMParserFactoryVtbl* {.pure, inheritable.} = object of IDispatchVtbl - create*: proc(self: ptr IDOMParserFactory, a: ptr ptr IDOMParser): HRESULT {.stdcall.} + create*: + proc(self: ptr IDOMParserFactory, a: ptr ptr IDOMParser): HRESULT {.stdcall.} + DispXMLSerializer* {.pure.} = object lpVtbl*: ptr DispXMLSerializerVtbl + DispXMLSerializerVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispDOMParser* {.pure.} = object lpVtbl*: ptr DispDOMParserVtbl + DispDOMParserVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLSemanticElement* {.pure.} = object lpVtbl*: ptr DispHTMLSemanticElementVtbl + DispHTMLSemanticElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLProgressElement* {.pure.} = object lpVtbl*: ptr IHTMLProgressElementVtbl + IHTMLProgressElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_value*: proc(self: ptr IHTMLProgressElement, v: float32): HRESULT {.stdcall.} - get_value*: proc(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.stdcall.} + get_value*: + proc(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.stdcall.} put_max*: proc(self: ptr IHTMLProgressElement, v: float32): HRESULT {.stdcall.} get_max*: proc(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.stdcall.} - get_position*: proc(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.stdcall.} - get_form*: proc(self: ptr IHTMLProgressElement, p: ptr ptr IHTMLFormElement): HRESULT {.stdcall.} + get_position*: + proc(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.stdcall.} + get_form*: proc( + self: ptr IHTMLProgressElement, p: ptr ptr IHTMLFormElement + ): HRESULT {.stdcall.} + DispHTMLProgressElement* {.pure.} = object lpVtbl*: ptr DispHTMLProgressElementVtbl + DispHTMLProgressElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMMSTransitionEvent* {.pure.} = object lpVtbl*: ptr IDOMMSTransitionEventVtbl + IDOMMSTransitionEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_propertyName*: proc(self: ptr IDOMMSTransitionEvent, p: ptr BSTR): HRESULT {.stdcall.} - get_elapsedTime*: proc(self: ptr IDOMMSTransitionEvent, p: ptr float32): HRESULT {.stdcall.} - initMSTransitionEvent*: proc(self: ptr IDOMMSTransitionEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, propertyName: BSTR, elapsedTime: float32): HRESULT {.stdcall.} + get_propertyName*: + proc(self: ptr IDOMMSTransitionEvent, p: ptr BSTR): HRESULT {.stdcall.} + get_elapsedTime*: + proc(self: ptr IDOMMSTransitionEvent, p: ptr float32): HRESULT {.stdcall.} + initMSTransitionEvent*: proc( + self: ptr IDOMMSTransitionEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + propertyName: BSTR, + elapsedTime: float32, + ): HRESULT {.stdcall.} + DispDOMMSTransitionEvent* {.pure.} = object lpVtbl*: ptr DispDOMMSTransitionEventVtbl + DispDOMMSTransitionEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMMSAnimationEvent* {.pure.} = object lpVtbl*: ptr IDOMMSAnimationEventVtbl + IDOMMSAnimationEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_animationName*: proc(self: ptr IDOMMSAnimationEvent, p: ptr BSTR): HRESULT {.stdcall.} - get_elapsedTime*: proc(self: ptr IDOMMSAnimationEvent, p: ptr float32): HRESULT {.stdcall.} - initMSAnimationEvent*: proc(self: ptr IDOMMSAnimationEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, animationName: BSTR, elapsedTime: float32): HRESULT {.stdcall.} + get_animationName*: + proc(self: ptr IDOMMSAnimationEvent, p: ptr BSTR): HRESULT {.stdcall.} + get_elapsedTime*: + proc(self: ptr IDOMMSAnimationEvent, p: ptr float32): HRESULT {.stdcall.} + initMSAnimationEvent*: proc( + self: ptr IDOMMSAnimationEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + animationName: BSTR, + elapsedTime: float32, + ): HRESULT {.stdcall.} + DispDOMMSAnimationEvent* {.pure.} = object lpVtbl*: ptr DispDOMMSAnimationEventVtbl + DispDOMMSAnimationEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IWebGeocoordinates* {.pure.} = object lpVtbl*: ptr IWebGeocoordinatesVtbl + IWebGeocoordinatesVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_latitude*: proc(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.stdcall.} - get_longitude*: proc(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.stdcall.} - get_altitude*: proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} - get_accuracy*: proc(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.stdcall.} - get_altitudeAccuracy*: proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} - get_heading*: proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} + get_latitude*: + proc(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.stdcall.} + get_longitude*: + proc(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.stdcall.} + get_altitude*: + proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} + get_accuracy*: + proc(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.stdcall.} + get_altitudeAccuracy*: + proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} + get_heading*: + proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} get_speed*: proc(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.stdcall.} + IWebGeopositionError* {.pure.} = object lpVtbl*: ptr IWebGeopositionErrorVtbl + IWebGeopositionErrorVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_code*: proc(self: ptr IWebGeopositionError, p: ptr LONG): HRESULT {.stdcall.} get_message*: proc(self: ptr IWebGeopositionError, p: ptr BSTR): HRESULT {.stdcall.} + IWebGeoposition* {.pure.} = object lpVtbl*: ptr IWebGeopositionVtbl + IWebGeopositionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_coords*: proc(self: ptr IWebGeoposition, p: ptr ptr IWebGeocoordinates): HRESULT {.stdcall.} - get_timestamp*: proc(self: ptr IWebGeoposition, p: ptr ULONGLONG): HRESULT {.stdcall.} + get_coords*: proc(self: ptr IWebGeoposition, p: ptr ptr IWebGeocoordinates): HRESULT {. + stdcall + .} + get_timestamp*: + proc(self: ptr IWebGeoposition, p: ptr ULONGLONG): HRESULT {.stdcall.} + DispWebGeolocation* {.pure.} = object lpVtbl*: ptr DispWebGeolocationVtbl + DispWebGeolocationVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispWebGeocoordinates* {.pure.} = object lpVtbl*: ptr DispWebGeocoordinatesVtbl + DispWebGeocoordinatesVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispWebGeopositionError* {.pure.} = object lpVtbl*: ptr DispWebGeopositionErrorVtbl + DispWebGeopositionErrorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispWebGeoposition* {.pure.} = object lpVtbl*: ptr DispWebGeopositionVtbl + DispWebGeopositionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IClientCaps* {.pure.} = object lpVtbl*: ptr IClientCapsVtbl + IClientCapsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_javaEnabled*: proc(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_cookieEnabled*: proc(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_javaEnabled*: + proc(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_cookieEnabled*: + proc(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_cpuClass*: proc(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.stdcall.} get_systemLanguage*: proc(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.stdcall.} get_userLanguage*: proc(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.stdcall.} @@ -11639,554 +17418,1487 @@ get_availHeight*: proc(self: ptr IClientCaps, p: ptr LONG): HRESULT {.stdcall.} get_availWidth*: proc(self: ptr IClientCaps, p: ptr LONG): HRESULT {.stdcall.} get_connectionType*: proc(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.stdcall.} - isComponentInstalled*: proc(self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, bStrVer: BSTR, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - getComponentVersion*: proc(self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, pbstrVer: ptr BSTR): HRESULT {.stdcall.} - compareVersions*: proc(self: ptr IClientCaps, bstrVer1: BSTR, bstrVer2: BSTR, p: ptr LONG): HRESULT {.stdcall.} - addComponentRequest*: proc(self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, bStrVer: BSTR): HRESULT {.stdcall.} - doComponentRequest*: proc(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + isComponentInstalled*: proc( + self: ptr IClientCaps, + bstrName: BSTR, + bstrUrl: BSTR, + bStrVer: BSTR, + p: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + getComponentVersion*: proc( + self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, pbstrVer: ptr BSTR + ): HRESULT {.stdcall.} + compareVersions*: proc( + self: ptr IClientCaps, bstrVer1: BSTR, bstrVer2: BSTR, p: ptr LONG + ): HRESULT {.stdcall.} + addComponentRequest*: proc( + self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, bStrVer: BSTR + ): HRESULT {.stdcall.} + doComponentRequest*: + proc(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} clearComponentRequest*: proc(self: ptr IClientCaps): HRESULT {.stdcall.} + IDOMMSManipulationEvent* {.pure.} = object lpVtbl*: ptr IDOMMSManipulationEventVtbl + IDOMMSManipulationEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_lastState*: proc(self: ptr IDOMMSManipulationEvent, p: ptr LONG): HRESULT {.stdcall.} - get_currentState*: proc(self: ptr IDOMMSManipulationEvent, p: ptr LONG): HRESULT {.stdcall.} - initMSManipulationEvent*: proc(self: ptr IDOMMSManipulationEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, lastState: LONG, currentState: LONG): HRESULT {.stdcall.} + get_lastState*: + proc(self: ptr IDOMMSManipulationEvent, p: ptr LONG): HRESULT {.stdcall.} + get_currentState*: + proc(self: ptr IDOMMSManipulationEvent, p: ptr LONG): HRESULT {.stdcall.} + initMSManipulationEvent*: proc( + self: ptr IDOMMSManipulationEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + lastState: LONG, + currentState: LONG, + ): HRESULT {.stdcall.} + DispDOMMSManipulationEvent* {.pure.} = object lpVtbl*: ptr DispDOMMSManipulationEventVtbl + DispDOMMSManipulationEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl IDOMCloseEvent* {.pure.} = object lpVtbl*: ptr IDOMCloseEventVtbl + IDOMCloseEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_wasClean*: proc(self: ptr IDOMCloseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - initCloseEvent*: proc(self: ptr IDOMCloseEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, wasClean: VARIANT_BOOL, code: LONG, reason: BSTR): HRESULT {.stdcall.} + get_wasClean*: + proc(self: ptr IDOMCloseEvent, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + initCloseEvent*: proc( + self: ptr IDOMCloseEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + wasClean: VARIANT_BOOL, + code: LONG, + reason: BSTR, + ): HRESULT {.stdcall.} + DispDOMCloseEvent* {.pure.} = object lpVtbl*: ptr DispDOMCloseEventVtbl + DispDOMCloseEventVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispApplicationCache* {.pure.} = object lpVtbl*: ptr DispApplicationCacheVtbl + DispApplicationCacheVtbl* {.pure, inheritable.} = object of IDispatchVtbl ICSSFilterSite* {.pure.} = object lpVtbl*: ptr ICSSFilterSiteVtbl + ICSSFilterSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetElement*: proc(self: ptr ICSSFilterSite, Element: ptr ptr IHTMLElement): HRESULT {.stdcall.} + GetElement*: + proc(self: ptr ICSSFilterSite, Element: ptr ptr IHTMLElement): HRESULT {.stdcall.} FireOnFilterChangeEvent*: proc(self: ptr ICSSFilterSite): HRESULT {.stdcall.} + ICSSFilter* {.pure.} = object lpVtbl*: ptr ICSSFilterVtbl + ICSSFilterVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetSite*: proc(self: ptr ICSSFilter, pSink: ptr ICSSFilterSite): HRESULT {.stdcall.} - OnAmbientPropertyChange*: proc(self: ptr ICSSFilter, dispid: LONG): HRESULT {.stdcall.} + OnAmbientPropertyChange*: + proc(self: ptr ICSSFilter, dispid: LONG): HRESULT {.stdcall.} + ISecureUrlHost* {.pure.} = object lpVtbl*: ptr ISecureUrlHostVtbl + ISecureUrlHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ValidateSecureUrl*: proc(self: ptr ISecureUrlHost, pfAllow: ptr WINBOOL, pchUrlInQuestion: ptr OLECHAR, dwFlags: DWORD): HRESULT {.stdcall.} + ValidateSecureUrl*: proc( + self: ptr ISecureUrlHost, + pfAllow: ptr WINBOOL, + pchUrlInQuestion: ptr OLECHAR, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + IMarkupContainer* {.pure.} = object lpVtbl*: ptr IMarkupContainerVtbl + IMarkupContainerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OwningDoc*: proc(self: ptr IMarkupContainer, ppDoc: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + OwningDoc*: proc(self: ptr IMarkupContainer, ppDoc: ptr ptr IHTMLDocument2): HRESULT {. + stdcall + .} + IMarkupPointer* {.pure.} = object lpVtbl*: ptr IMarkupPointerVtbl + IMarkupPointerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OwningDoc*: proc(self: ptr IMarkupPointer, ppDoc: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} - Gravity*: proc(self: ptr IMarkupPointer, pGravity: ptr POINTER_GRAVITY): HRESULT {.stdcall.} - SetGravity*: proc(self: ptr IMarkupPointer, Gravity: POINTER_GRAVITY): HRESULT {.stdcall.} + OwningDoc*: + proc(self: ptr IMarkupPointer, ppDoc: ptr ptr IHTMLDocument2): HRESULT {.stdcall.} + Gravity*: + proc(self: ptr IMarkupPointer, pGravity: ptr POINTER_GRAVITY): HRESULT {.stdcall.} + SetGravity*: + proc(self: ptr IMarkupPointer, Gravity: POINTER_GRAVITY): HRESULT {.stdcall.} Cling*: proc(self: ptr IMarkupPointer, pfCling: ptr WINBOOL): HRESULT {.stdcall.} SetCling*: proc(self: ptr IMarkupPointer, fCLing: WINBOOL): HRESULT {.stdcall.} Unposition*: proc(self: ptr IMarkupPointer): HRESULT {.stdcall.} - IsPositioned*: proc(self: ptr IMarkupPointer, pfPositioned: ptr WINBOOL): HRESULT {.stdcall.} - GetContainer*: proc(self: ptr IMarkupPointer, ppContainer: ptr ptr IMarkupContainer): HRESULT {.stdcall.} - MoveAdjacentToElement*: proc(self: ptr IMarkupPointer, pElement: ptr IHTMLElement, eAdj: ELEMENT_ADJACENCY): HRESULT {.stdcall.} - MoveToPointer*: proc(self: ptr IMarkupPointer, pPointer: ptr IMarkupPointer): HRESULT {.stdcall.} - MoveToContainer*: proc(self: ptr IMarkupPointer, pContainer: ptr IMarkupContainer, fAtStart: WINBOOL): HRESULT {.stdcall.} - Left*: proc(self: ptr IMarkupPointer, fMove: WINBOOL, pContext: ptr MARKUP_CONTEXT_TYPE, ppElement: ptr ptr IHTMLElement, pcch: ptr LONG, pchText: ptr OLECHAR): HRESULT {.stdcall.} - Right*: proc(self: ptr IMarkupPointer, fMove: WINBOOL, pContext: ptr MARKUP_CONTEXT_TYPE, ppElement: ptr ptr IHTMLElement, pcch: ptr LONG, pchText: ptr OLECHAR): HRESULT {.stdcall.} - CurrentScope*: proc(self: ptr IMarkupPointer, ppElemCurrent: ptr ptr IHTMLElement): HRESULT {.stdcall.} - IsLeftOf*: proc(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.stdcall.} - IsLeftOfOrEqualTo*: proc(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.stdcall.} - IsRightOf*: proc(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.stdcall.} - IsRightOfOrEqualTo*: proc(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.stdcall.} - IsEqualTo*: proc(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfAreEqual: ptr WINBOOL): HRESULT {.stdcall.} - MoveUnit*: proc(self: ptr IMarkupPointer, muAction: MOVEUNIT_ACTION): HRESULT {.stdcall.} - FindText*: proc(self: ptr IMarkupPointer, pchFindText: ptr OLECHAR, dwFlags: DWORD, pIEndMatch: ptr IMarkupPointer, pIEndSearch: ptr IMarkupPointer): HRESULT {.stdcall.} + IsPositioned*: + proc(self: ptr IMarkupPointer, pfPositioned: ptr WINBOOL): HRESULT {.stdcall.} + GetContainer*: proc( + self: ptr IMarkupPointer, ppContainer: ptr ptr IMarkupContainer + ): HRESULT {.stdcall.} + MoveAdjacentToElement*: proc( + self: ptr IMarkupPointer, pElement: ptr IHTMLElement, eAdj: ELEMENT_ADJACENCY + ): HRESULT {.stdcall.} + MoveToPointer*: + proc(self: ptr IMarkupPointer, pPointer: ptr IMarkupPointer): HRESULT {.stdcall.} + MoveToContainer*: proc( + self: ptr IMarkupPointer, pContainer: ptr IMarkupContainer, fAtStart: WINBOOL + ): HRESULT {.stdcall.} + Left*: proc( + self: ptr IMarkupPointer, + fMove: WINBOOL, + pContext: ptr MARKUP_CONTEXT_TYPE, + ppElement: ptr ptr IHTMLElement, + pcch: ptr LONG, + pchText: ptr OLECHAR, + ): HRESULT {.stdcall.} + Right*: proc( + self: ptr IMarkupPointer, + fMove: WINBOOL, + pContext: ptr MARKUP_CONTEXT_TYPE, + ppElement: ptr ptr IHTMLElement, + pcch: ptr LONG, + pchText: ptr OLECHAR, + ): HRESULT {.stdcall.} + CurrentScope*: proc( + self: ptr IMarkupPointer, ppElemCurrent: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + IsLeftOf*: proc( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL + ): HRESULT {.stdcall.} + IsLeftOfOrEqualTo*: proc( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL + ): HRESULT {.stdcall.} + IsRightOf*: proc( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL + ): HRESULT {.stdcall.} + IsRightOfOrEqualTo*: proc( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL + ): HRESULT {.stdcall.} + IsEqualTo*: proc( + self: ptr IMarkupPointer, + pPointerThat: ptr IMarkupPointer, + pfAreEqual: ptr WINBOOL, + ): HRESULT {.stdcall.} + MoveUnit*: + proc(self: ptr IMarkupPointer, muAction: MOVEUNIT_ACTION): HRESULT {.stdcall.} + FindText*: proc( + self: ptr IMarkupPointer, + pchFindText: ptr OLECHAR, + dwFlags: DWORD, + pIEndMatch: ptr IMarkupPointer, + pIEndSearch: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + IMarkupServices* {.pure.} = object lpVtbl*: ptr IMarkupServicesVtbl + IMarkupServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateMarkupPointer*: proc(self: ptr IMarkupServices, ppPointer: ptr ptr IMarkupPointer): HRESULT {.stdcall.} - CreateMarkupContainer*: proc(self: ptr IMarkupServices, ppMarkupContainer: ptr ptr IMarkupContainer): HRESULT {.stdcall.} - CreateElement*: proc(self: ptr IMarkupServices, tagID: ELEMENT_TAG_ID, pchAttributes: ptr OLECHAR, ppElement: ptr ptr IHTMLElement): HRESULT {.stdcall.} - CloneElement*: proc(self: ptr IMarkupServices, pElemCloneThis: ptr IHTMLElement, ppElementTheClone: ptr ptr IHTMLElement): HRESULT {.stdcall.} - InsertElement*: proc(self: ptr IMarkupServices, pElementInsert: ptr IHTMLElement, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.stdcall.} - RemoveElement*: proc(self: ptr IMarkupServices, pElementRemove: ptr IHTMLElement): HRESULT {.stdcall.} - Remove*: proc(self: ptr IMarkupServices, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.stdcall.} - Copy*: proc(self: ptr IMarkupServices, pPointerSourceStart: ptr IMarkupPointer, pPointerSourceFinish: ptr IMarkupPointer, pPointerTarget: ptr IMarkupPointer): HRESULT {.stdcall.} - Move*: proc(self: ptr IMarkupServices, pPointerSourceStart: ptr IMarkupPointer, pPointerSourceFinish: ptr IMarkupPointer, pPointerTarget: ptr IMarkupPointer): HRESULT {.stdcall.} - InsertText*: proc(self: ptr IMarkupServices, pchText: ptr OLECHAR, cch: LONG, pPointerTarget: ptr IMarkupPointer): HRESULT {.stdcall.} - ParseString*: proc(self: ptr IMarkupServices, pchHTML: ptr OLECHAR, dwFlags: DWORD, ppContainerResult: ptr ptr IMarkupContainer, ppPointerStart: ptr IMarkupPointer, ppPointerFinish: ptr IMarkupPointer): HRESULT {.stdcall.} - ParseGlobal*: proc(self: ptr IMarkupServices, hglobalHTML: HGLOBAL, dwFlags: DWORD, ppContainerResult: ptr ptr IMarkupContainer, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.stdcall.} - IsScopedElement*: proc(self: ptr IMarkupServices, pElement: ptr IHTMLElement, pfScoped: ptr WINBOOL): HRESULT {.stdcall.} - GetElementTagId*: proc(self: ptr IMarkupServices, pElement: ptr IHTMLElement, ptagId: ptr ELEMENT_TAG_ID): HRESULT {.stdcall.} - GetTagIDForName*: proc(self: ptr IMarkupServices, bstrName: BSTR, ptagId: ptr ELEMENT_TAG_ID): HRESULT {.stdcall.} - GetNameForTagID*: proc(self: ptr IMarkupServices, tagId: ELEMENT_TAG_ID, pbstrName: ptr BSTR): HRESULT {.stdcall.} - MovePointersToRange*: proc(self: ptr IMarkupServices, pIRange: ptr IHTMLTxtRange, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.stdcall.} - MoveRangeToPointers*: proc(self: ptr IMarkupServices, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer, pIRange: ptr IHTMLTxtRange): HRESULT {.stdcall.} - BeginUndoUnit*: proc(self: ptr IMarkupServices, pchTitle: ptr OLECHAR): HRESULT {.stdcall.} + CreateMarkupPointer*: proc( + self: ptr IMarkupServices, ppPointer: ptr ptr IMarkupPointer + ): HRESULT {.stdcall.} + CreateMarkupContainer*: proc( + self: ptr IMarkupServices, ppMarkupContainer: ptr ptr IMarkupContainer + ): HRESULT {.stdcall.} + CreateElement*: proc( + self: ptr IMarkupServices, + tagID: ELEMENT_TAG_ID, + pchAttributes: ptr OLECHAR, + ppElement: ptr ptr IHTMLElement, + ): HRESULT {.stdcall.} + CloneElement*: proc( + self: ptr IMarkupServices, + pElemCloneThis: ptr IHTMLElement, + ppElementTheClone: ptr ptr IHTMLElement, + ): HRESULT {.stdcall.} + InsertElement*: proc( + self: ptr IMarkupServices, + pElementInsert: ptr IHTMLElement, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + RemoveElement*: proc( + self: ptr IMarkupServices, pElementRemove: ptr IHTMLElement + ): HRESULT {.stdcall.} + Remove*: proc( + self: ptr IMarkupServices, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + Copy*: proc( + self: ptr IMarkupServices, + pPointerSourceStart: ptr IMarkupPointer, + pPointerSourceFinish: ptr IMarkupPointer, + pPointerTarget: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + Move*: proc( + self: ptr IMarkupServices, + pPointerSourceStart: ptr IMarkupPointer, + pPointerSourceFinish: ptr IMarkupPointer, + pPointerTarget: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + InsertText*: proc( + self: ptr IMarkupServices, + pchText: ptr OLECHAR, + cch: LONG, + pPointerTarget: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + ParseString*: proc( + self: ptr IMarkupServices, + pchHTML: ptr OLECHAR, + dwFlags: DWORD, + ppContainerResult: ptr ptr IMarkupContainer, + ppPointerStart: ptr IMarkupPointer, + ppPointerFinish: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + ParseGlobal*: proc( + self: ptr IMarkupServices, + hglobalHTML: HGLOBAL, + dwFlags: DWORD, + ppContainerResult: ptr ptr IMarkupContainer, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + IsScopedElement*: proc( + self: ptr IMarkupServices, pElement: ptr IHTMLElement, pfScoped: ptr WINBOOL + ): HRESULT {.stdcall.} + GetElementTagId*: proc( + self: ptr IMarkupServices, pElement: ptr IHTMLElement, ptagId: ptr ELEMENT_TAG_ID + ): HRESULT {.stdcall.} + GetTagIDForName*: proc( + self: ptr IMarkupServices, bstrName: BSTR, ptagId: ptr ELEMENT_TAG_ID + ): HRESULT {.stdcall.} + GetNameForTagID*: proc( + self: ptr IMarkupServices, tagId: ELEMENT_TAG_ID, pbstrName: ptr BSTR + ): HRESULT {.stdcall.} + MovePointersToRange*: proc( + self: ptr IMarkupServices, + pIRange: ptr IHTMLTxtRange, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + MoveRangeToPointers*: proc( + self: ptr IMarkupServices, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + pIRange: ptr IHTMLTxtRange, + ): HRESULT {.stdcall.} + BeginUndoUnit*: + proc(self: ptr IMarkupServices, pchTitle: ptr OLECHAR): HRESULT {.stdcall.} EndUndoUnit*: proc(self: ptr IMarkupServices): HRESULT {.stdcall.} + ISegment* {.pure.} = object lpVtbl*: ptr ISegmentVtbl + ISegmentVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPointers*: proc(self: ptr ISegment, pIStart: ptr IMarkupPointer, pIEnd: ptr IMarkupPointer): HRESULT {.stdcall.} + GetPointers*: proc( + self: ptr ISegment, pIStart: ptr IMarkupPointer, pIEnd: ptr IMarkupPointer + ): HRESULT {.stdcall.} + ISegmentListIterator* {.pure.} = object lpVtbl*: ptr ISegmentListIteratorVtbl + ISegmentListIteratorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Current*: proc(self: ptr ISegmentListIterator, ppISegment: ptr ptr ISegment): HRESULT {.stdcall.} + Current*: proc( + self: ptr ISegmentListIterator, ppISegment: ptr ptr ISegment + ): HRESULT {.stdcall.} First*: proc(self: ptr ISegmentListIterator): HRESULT {.stdcall.} IsDone*: proc(self: ptr ISegmentListIterator): HRESULT {.stdcall.} Advance*: proc(self: ptr ISegmentListIterator): HRESULT {.stdcall.} + ISegmentList* {.pure.} = object lpVtbl*: ptr ISegmentListVtbl + ISegmentListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateIterator*: proc(self: ptr ISegmentList, ppIIter: ptr ptr ISegmentListIterator): HRESULT {.stdcall.} - GetType*: proc(self: ptr ISegmentList, peType: ptr SELECTION_TYPE): HRESULT {.stdcall.} + CreateIterator*: proc( + self: ptr ISegmentList, ppIIter: ptr ptr ISegmentListIterator + ): HRESULT {.stdcall.} + GetType*: + proc(self: ptr ISegmentList, peType: ptr SELECTION_TYPE): HRESULT {.stdcall.} IsEmpty*: proc(self: ptr ISegmentList, pfEmpty: ptr WINBOOL): HRESULT {.stdcall.} + IMarkupServices2* {.pure.} = object lpVtbl*: ptr IMarkupServices2Vtbl + IMarkupServices2Vtbl* {.pure, inheritable.} = object of IMarkupServicesVtbl - ParseGlobalEx*: proc(self: ptr IMarkupServices2, hglobalHTML: HGLOBAL, dwFlags: DWORD, pContext: ptr IMarkupContainer, ppContainerResult: ptr ptr IMarkupContainer, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.stdcall.} - ValidateElements*: proc(self: ptr IMarkupServices2, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer, pPointerTarget: ptr IMarkupPointer, pPointerStatus: ptr IMarkupPointer, ppElemFailBottom: ptr ptr IHTMLElement, ppElemFailTop: ptr ptr IHTMLElement): HRESULT {.stdcall.} - SaveSegmentsToClipboard*: proc(self: ptr IMarkupServices2, pSegmentList: ptr ISegmentList, dwFlags: DWORD): HRESULT {.stdcall.} + ParseGlobalEx*: proc( + self: ptr IMarkupServices2, + hglobalHTML: HGLOBAL, + dwFlags: DWORD, + pContext: ptr IMarkupContainer, + ppContainerResult: ptr ptr IMarkupContainer, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + ValidateElements*: proc( + self: ptr IMarkupServices2, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + pPointerTarget: ptr IMarkupPointer, + pPointerStatus: ptr IMarkupPointer, + ppElemFailBottom: ptr ptr IHTMLElement, + ppElemFailTop: ptr ptr IHTMLElement, + ): HRESULT {.stdcall.} + SaveSegmentsToClipboard*: proc( + self: ptr IMarkupServices2, pSegmentList: ptr ISegmentList, dwFlags: DWORD + ): HRESULT {.stdcall.} + IHTMLChangeSink* {.pure.} = object lpVtbl*: ptr IHTMLChangeSinkVtbl + IHTMLChangeSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl Notify*: proc(self: ptr IHTMLChangeSink): HRESULT {.stdcall.} + IHTMLChangeLog* {.pure.} = object lpVtbl*: ptr IHTMLChangeLogVtbl + IHTMLChangeLogVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetNextChange*: proc(self: ptr IHTMLChangeLog, pbBuffer: ptr BYTE, nBufferSize: LONG, pnRecordLength: ptr LONG): HRESULT {.stdcall.} + GetNextChange*: proc( + self: ptr IHTMLChangeLog, + pbBuffer: ptr BYTE, + nBufferSize: LONG, + pnRecordLength: ptr LONG, + ): HRESULT {.stdcall.} + IMarkupContainer2* {.pure.} = object lpVtbl*: ptr IMarkupContainer2Vtbl + IMarkupContainer2Vtbl* {.pure, inheritable.} = object of IMarkupContainerVtbl - CreateChangeLog*: proc(self: ptr IMarkupContainer2, pChangeSink: ptr IHTMLChangeSink, ppChangeLog: ptr ptr IHTMLChangeLog, fForward: WINBOOL, fBackward: WINBOOL): HRESULT {.stdcall.} - RegisterForDirtyRange*: proc(self: ptr IMarkupContainer2, pChangeSink: ptr IHTMLChangeSink, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - UnRegisterForDirtyRange*: proc(self: ptr IMarkupContainer2, dwCookie: DWORD): HRESULT {.stdcall.} - GetAndClearDirtyRange*: proc(self: ptr IMarkupContainer2, dwCookie: DWORD, pIPointerBegin: ptr IMarkupPointer, pIPointerEnd: ptr IMarkupPointer): HRESULT {.stdcall.} + CreateChangeLog*: proc( + self: ptr IMarkupContainer2, + pChangeSink: ptr IHTMLChangeSink, + ppChangeLog: ptr ptr IHTMLChangeLog, + fForward: WINBOOL, + fBackward: WINBOOL, + ): HRESULT {.stdcall.} + RegisterForDirtyRange*: proc( + self: ptr IMarkupContainer2, + pChangeSink: ptr IHTMLChangeSink, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + UnRegisterForDirtyRange*: + proc(self: ptr IMarkupContainer2, dwCookie: DWORD): HRESULT {.stdcall.} + GetAndClearDirtyRange*: proc( + self: ptr IMarkupContainer2, + dwCookie: DWORD, + pIPointerBegin: ptr IMarkupPointer, + pIPointerEnd: ptr IMarkupPointer, + ): HRESULT {.stdcall.} GetVersionNumber*: proc(self: ptr IMarkupContainer2): LONG {.stdcall.} - GetMasterElement*: proc(self: ptr IMarkupContainer2, ppElementMaster: ptr ptr IHTMLElement): HRESULT {.stdcall.} + GetMasterElement*: proc( + self: ptr IMarkupContainer2, ppElementMaster: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + IHTMLChangePlayback* {.pure.} = object lpVtbl*: ptr IHTMLChangePlaybackVtbl + IHTMLChangePlaybackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ExecChange*: proc(self: ptr IHTMLChangePlayback, pbRecord: ptr BYTE, fForward: WINBOOL): HRESULT {.stdcall.} + ExecChange*: proc( + self: ptr IHTMLChangePlayback, pbRecord: ptr BYTE, fForward: WINBOOL + ): HRESULT {.stdcall.} + IMarkupPointer2* {.pure.} = object lpVtbl*: ptr IMarkupPointer2Vtbl + IMarkupPointer2Vtbl* {.pure, inheritable.} = object of IMarkupPointerVtbl - IsAtWordBreak*: proc(self: ptr IMarkupPointer2, pfAtBreak: ptr WINBOOL): HRESULT {.stdcall.} - GetMarkupPosition*: proc(self: ptr IMarkupPointer2, plMP: ptr LONG): HRESULT {.stdcall.} - MoveToMarkupPosition*: proc(self: ptr IMarkupPointer2, pContainer: ptr IMarkupContainer, lMP: LONG): HRESULT {.stdcall.} - MoveUnitBounded*: proc(self: ptr IMarkupPointer2, muAction: MOVEUNIT_ACTION, pIBoundary: ptr IMarkupPointer): HRESULT {.stdcall.} - IsInsideURL*: proc(self: ptr IMarkupPointer2, pRight: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.stdcall.} - MoveToContent*: proc(self: ptr IMarkupPointer2, pIElement: ptr IHTMLElement, fAtStart: WINBOOL): HRESULT {.stdcall.} + IsAtWordBreak*: + proc(self: ptr IMarkupPointer2, pfAtBreak: ptr WINBOOL): HRESULT {.stdcall.} + GetMarkupPosition*: + proc(self: ptr IMarkupPointer2, plMP: ptr LONG): HRESULT {.stdcall.} + MoveToMarkupPosition*: proc( + self: ptr IMarkupPointer2, pContainer: ptr IMarkupContainer, lMP: LONG + ): HRESULT {.stdcall.} + MoveUnitBounded*: proc( + self: ptr IMarkupPointer2, + muAction: MOVEUNIT_ACTION, + pIBoundary: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + IsInsideURL*: proc( + self: ptr IMarkupPointer2, pRight: ptr IMarkupPointer, pfResult: ptr WINBOOL + ): HRESULT {.stdcall.} + MoveToContent*: proc( + self: ptr IMarkupPointer2, pIElement: ptr IHTMLElement, fAtStart: WINBOOL + ): HRESULT {.stdcall.} + IMarkupTextFrags* {.pure.} = object lpVtbl*: ptr IMarkupTextFragsVtbl + IMarkupTextFragsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetTextFragCount*: proc(self: ptr IMarkupTextFrags, pcFrags: ptr LONG): HRESULT {.stdcall.} - GetTextFrag*: proc(self: ptr IMarkupTextFrags, iFrag: LONG, pbstrFrag: ptr BSTR, pPointerFrag: ptr IMarkupPointer): HRESULT {.stdcall.} + GetTextFragCount*: + proc(self: ptr IMarkupTextFrags, pcFrags: ptr LONG): HRESULT {.stdcall.} + GetTextFrag*: proc( + self: ptr IMarkupTextFrags, + iFrag: LONG, + pbstrFrag: ptr BSTR, + pPointerFrag: ptr IMarkupPointer, + ): HRESULT {.stdcall.} RemoveTextFrag*: proc(self: ptr IMarkupTextFrags, iFrag: LONG): HRESULT {.stdcall.} - InsertTextFrag*: proc(self: ptr IMarkupTextFrags, iFrag: LONG, bstrInsert: BSTR, pPointerInsert: ptr IMarkupPointer): HRESULT {.stdcall.} - FindTextFragFromMarkupPointer*: proc(self: ptr IMarkupTextFrags, pPointerFind: ptr IMarkupPointer, piFrag: ptr LONG, pfFragFound: ptr WINBOOL): HRESULT {.stdcall.} + InsertTextFrag*: proc( + self: ptr IMarkupTextFrags, + iFrag: LONG, + bstrInsert: BSTR, + pPointerInsert: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + FindTextFragFromMarkupPointer*: proc( + self: ptr IMarkupTextFrags, + pPointerFind: ptr IMarkupPointer, + piFrag: ptr LONG, + pfFragFound: ptr WINBOOL, + ): HRESULT {.stdcall.} + IXMLGenericParse* {.pure.} = object lpVtbl*: ptr IXMLGenericParseVtbl + IXMLGenericParseVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetGenericParse*: proc(self: ptr IXMLGenericParse, fDoGeneric: VARIANT_BOOL): HRESULT {.stdcall.} + SetGenericParse*: + proc(self: ptr IXMLGenericParse, fDoGeneric: VARIANT_BOOL): HRESULT {.stdcall.} + IHTMLEditHost* {.pure.} = object lpVtbl*: ptr IHTMLEditHostVtbl + IHTMLEditHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SnapRect*: proc(self: ptr IHTMLEditHost, pIElement: ptr IHTMLElement, prcNew: ptr RECT, eHandle: ELEMENT_CORNER): HRESULT {.stdcall.} + SnapRect*: proc( + self: ptr IHTMLEditHost, + pIElement: ptr IHTMLElement, + prcNew: ptr RECT, + eHandle: ELEMENT_CORNER, + ): HRESULT {.stdcall.} + IHTMLEditHost2* {.pure.} = object lpVtbl*: ptr IHTMLEditHost2Vtbl + IHTMLEditHost2Vtbl* {.pure, inheritable.} = object of IHTMLEditHostVtbl PreDrag*: proc(self: ptr IHTMLEditHost2): HRESULT {.stdcall.} + ISequenceNumber* {.pure.} = object lpVtbl*: ptr ISequenceNumberVtbl + ISequenceNumberVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSequenceNumber*: proc(self: ptr ISequenceNumber, nCurrent: LONG, pnNew: ptr LONG): HRESULT {.stdcall.} + GetSequenceNumber*: proc( + self: ptr ISequenceNumber, nCurrent: LONG, pnNew: ptr LONG + ): HRESULT {.stdcall.} + IIMEServices* {.pure.} = object lpVtbl*: ptr IIMEServicesVtbl + IIMEServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetActiveIMM*: proc(self: ptr IIMEServices, ppActiveIMM: ptr ptr IActiveIMMApp): HRESULT {.stdcall.} + GetActiveIMM*: proc( + self: ptr IIMEServices, ppActiveIMM: ptr ptr IActiveIMMApp + ): HRESULT {.stdcall.} + ILineInfo* {.pure.} = object lpVtbl*: ptr ILineInfoVtbl + ILineInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl get_x*: proc(self: ptr ILineInfo, p: ptr LONG): HRESULT {.stdcall.} get_baseLine*: proc(self: ptr ILineInfo, p: ptr LONG): HRESULT {.stdcall.} get_textDescent*: proc(self: ptr ILineInfo, p: ptr LONG): HRESULT {.stdcall.} get_textHeight*: proc(self: ptr ILineInfo, p: ptr LONG): HRESULT {.stdcall.} get_lineDirection*: proc(self: ptr ILineInfo, p: ptr LONG): HRESULT {.stdcall.} + IDisplayPointer* {.pure.} = object lpVtbl*: ptr IDisplayPointerVtbl + IDisplayPointerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - MoveToPoint*: proc(self: ptr IDisplayPointer, ptPoint: POINT, eCoordSystem: COORD_SYSTEM, pElementContext: ptr IHTMLElement, dwHitTestOptions: DWORD, pdwHitTestResults: ptr DWORD): HRESULT {.stdcall.} - MoveUnit*: proc(self: ptr IDisplayPointer, eMoveUnit: DISPLAY_MOVEUNIT, lXPos: LONG): HRESULT {.stdcall.} - PositionMarkupPointer*: proc(self: ptr IDisplayPointer, pMarkupPointer: ptr IMarkupPointer): HRESULT {.stdcall.} - MoveToPointer*: proc(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer): HRESULT {.stdcall.} - SetPointerGravity*: proc(self: ptr IDisplayPointer, eGravity: POINTER_GRAVITY): HRESULT {.stdcall.} - GetPointerGravity*: proc(self: ptr IDisplayPointer, peGravity: ptr POINTER_GRAVITY): HRESULT {.stdcall.} - SetDisplayGravity*: proc(self: ptr IDisplayPointer, eGravity: DISPLAY_GRAVITY): HRESULT {.stdcall.} - GetDisplayGravity*: proc(self: ptr IDisplayPointer, peGravity: ptr DISPLAY_GRAVITY): HRESULT {.stdcall.} - IsPositioned*: proc(self: ptr IDisplayPointer, pfPositioned: ptr WINBOOL): HRESULT {.stdcall.} + MoveToPoint*: proc( + self: ptr IDisplayPointer, + ptPoint: POINT, + eCoordSystem: COORD_SYSTEM, + pElementContext: ptr IHTMLElement, + dwHitTestOptions: DWORD, + pdwHitTestResults: ptr DWORD, + ): HRESULT {.stdcall.} + MoveUnit*: proc( + self: ptr IDisplayPointer, eMoveUnit: DISPLAY_MOVEUNIT, lXPos: LONG + ): HRESULT {.stdcall.} + PositionMarkupPointer*: proc( + self: ptr IDisplayPointer, pMarkupPointer: ptr IMarkupPointer + ): HRESULT {.stdcall.} + MoveToPointer*: proc( + self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer + ): HRESULT {.stdcall.} + SetPointerGravity*: + proc(self: ptr IDisplayPointer, eGravity: POINTER_GRAVITY): HRESULT {.stdcall.} + GetPointerGravity*: proc( + self: ptr IDisplayPointer, peGravity: ptr POINTER_GRAVITY + ): HRESULT {.stdcall.} + SetDisplayGravity*: + proc(self: ptr IDisplayPointer, eGravity: DISPLAY_GRAVITY): HRESULT {.stdcall.} + GetDisplayGravity*: proc( + self: ptr IDisplayPointer, peGravity: ptr DISPLAY_GRAVITY + ): HRESULT {.stdcall.} + IsPositioned*: + proc(self: ptr IDisplayPointer, pfPositioned: ptr WINBOOL): HRESULT {.stdcall.} Unposition*: proc(self: ptr IDisplayPointer): HRESULT {.stdcall.} - IsEqualTo*: proc(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsEqual: ptr WINBOOL): HRESULT {.stdcall.} - IsLeftOf*: proc(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsLeftOf: ptr WINBOOL): HRESULT {.stdcall.} - IsRightOf*: proc(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsRightOf: ptr WINBOOL): HRESULT {.stdcall.} + IsEqualTo*: proc( + self: ptr IDisplayPointer, + pDispPointer: ptr IDisplayPointer, + pfIsEqual: ptr WINBOOL, + ): HRESULT {.stdcall.} + IsLeftOf*: proc( + self: ptr IDisplayPointer, + pDispPointer: ptr IDisplayPointer, + pfIsLeftOf: ptr WINBOOL, + ): HRESULT {.stdcall.} + IsRightOf*: proc( + self: ptr IDisplayPointer, + pDispPointer: ptr IDisplayPointer, + pfIsRightOf: ptr WINBOOL, + ): HRESULT {.stdcall.} IsAtBOL*: proc(self: ptr IDisplayPointer, pfBOL: ptr WINBOOL): HRESULT {.stdcall.} - MoveToMarkupPointer*: proc(self: ptr IDisplayPointer, pPointer: ptr IMarkupPointer, pDispLineContext: ptr IDisplayPointer): HRESULT {.stdcall.} + MoveToMarkupPointer*: proc( + self: ptr IDisplayPointer, + pPointer: ptr IMarkupPointer, + pDispLineContext: ptr IDisplayPointer, + ): HRESULT {.stdcall.} ScrollIntoView*: proc(self: ptr IDisplayPointer): HRESULT {.stdcall.} - GetLineInfo*: proc(self: ptr IDisplayPointer, ppLineInfo: ptr ptr ILineInfo): HRESULT {.stdcall.} - GetFlowElement*: proc(self: ptr IDisplayPointer, ppLayoutElement: ptr ptr IHTMLElement): HRESULT {.stdcall.} - QueryBreaks*: proc(self: ptr IDisplayPointer, pdwBreaks: ptr DWORD): HRESULT {.stdcall.} + GetLineInfo*: proc( + self: ptr IDisplayPointer, ppLineInfo: ptr ptr ILineInfo + ): HRESULT {.stdcall.} + GetFlowElement*: proc( + self: ptr IDisplayPointer, ppLayoutElement: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + QueryBreaks*: + proc(self: ptr IDisplayPointer, pdwBreaks: ptr DWORD): HRESULT {.stdcall.} + IHTMLCaret* {.pure.} = object lpVtbl*: ptr IHTMLCaretVtbl + IHTMLCaretVtbl* {.pure, inheritable.} = object of IUnknownVtbl - MoveCaretToPointer*: proc(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer, fScrollIntoView: WINBOOL, eDir: CARET_DIRECTION): HRESULT {.stdcall.} - MoveCaretToPointerEx*: proc(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer, fVisible: WINBOOL, fScrollIntoView: WINBOOL, eDir: CARET_DIRECTION): HRESULT {.stdcall.} - MoveMarkupPointerToCaret*: proc(self: ptr IHTMLCaret, pIMarkupPointer: ptr IMarkupPointer): HRESULT {.stdcall.} - MoveDisplayPointerToCaret*: proc(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer): HRESULT {.stdcall.} + MoveCaretToPointer*: proc( + self: ptr IHTMLCaret, + pDispPointer: ptr IDisplayPointer, + fScrollIntoView: WINBOOL, + eDir: CARET_DIRECTION, + ): HRESULT {.stdcall.} + MoveCaretToPointerEx*: proc( + self: ptr IHTMLCaret, + pDispPointer: ptr IDisplayPointer, + fVisible: WINBOOL, + fScrollIntoView: WINBOOL, + eDir: CARET_DIRECTION, + ): HRESULT {.stdcall.} + MoveMarkupPointerToCaret*: proc( + self: ptr IHTMLCaret, pIMarkupPointer: ptr IMarkupPointer + ): HRESULT {.stdcall.} + MoveDisplayPointerToCaret*: + proc(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer): HRESULT {.stdcall.} IsVisible*: proc(self: ptr IHTMLCaret, pIsVisible: ptr WINBOOL): HRESULT {.stdcall.} Show*: proc(self: ptr IHTMLCaret, fScrollIntoView: WINBOOL): HRESULT {.stdcall.} Hide*: proc(self: ptr IHTMLCaret): HRESULT {.stdcall.} - InsertText*: proc(self: ptr IHTMLCaret, pText: ptr OLECHAR, lLen: LONG): HRESULT {.stdcall.} + InsertText*: + proc(self: ptr IHTMLCaret, pText: ptr OLECHAR, lLen: LONG): HRESULT {.stdcall.} ScrollIntoView*: proc(self: ptr IHTMLCaret): HRESULT {.stdcall.} - GetLocation*: proc(self: ptr IHTMLCaret, pPoint: ptr POINT, fTranslate: WINBOOL): HRESULT {.stdcall.} - GetCaretDirection*: proc(self: ptr IHTMLCaret, peDir: ptr CARET_DIRECTION): HRESULT {.stdcall.} - SetCaretDirection*: proc(self: ptr IHTMLCaret, eDir: CARET_DIRECTION): HRESULT {.stdcall.} + GetLocation*: proc( + self: ptr IHTMLCaret, pPoint: ptr POINT, fTranslate: WINBOOL + ): HRESULT {.stdcall.} + GetCaretDirection*: + proc(self: ptr IHTMLCaret, peDir: ptr CARET_DIRECTION): HRESULT {.stdcall.} + SetCaretDirection*: + proc(self: ptr IHTMLCaret, eDir: CARET_DIRECTION): HRESULT {.stdcall.} + IHighlightSegment* {.pure.} = object lpVtbl*: ptr IHighlightSegmentVtbl + IHighlightSegmentVtbl* {.pure, inheritable.} = object of ISegmentVtbl IHighlightRenderingServices* {.pure.} = object lpVtbl*: ptr IHighlightRenderingServicesVtbl + IHighlightRenderingServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddSegment*: proc(self: ptr IHighlightRenderingServices, pDispPointerStart: ptr IDisplayPointer, pDispPointerEnd: ptr IDisplayPointer, pIRenderStyle: ptr IHTMLRenderStyle, ppISegment: ptr ptr IHighlightSegment): HRESULT {.stdcall.} - MoveSegmentToPointers*: proc(self: ptr IHighlightRenderingServices, pISegment: ptr IHighlightSegment, pDispPointerStart: ptr IDisplayPointer, pDispPointerEnd: ptr IDisplayPointer): HRESULT {.stdcall.} - RemoveSegment*: proc(self: ptr IHighlightRenderingServices, pISegment: ptr IHighlightSegment): HRESULT {.stdcall.} + AddSegment*: proc( + self: ptr IHighlightRenderingServices, + pDispPointerStart: ptr IDisplayPointer, + pDispPointerEnd: ptr IDisplayPointer, + pIRenderStyle: ptr IHTMLRenderStyle, + ppISegment: ptr ptr IHighlightSegment, + ): HRESULT {.stdcall.} + MoveSegmentToPointers*: proc( + self: ptr IHighlightRenderingServices, + pISegment: ptr IHighlightSegment, + pDispPointerStart: ptr IDisplayPointer, + pDispPointerEnd: ptr IDisplayPointer, + ): HRESULT {.stdcall.} + RemoveSegment*: proc( + self: ptr IHighlightRenderingServices, pISegment: ptr IHighlightSegment + ): HRESULT {.stdcall.} + ISelectionServicesListener* {.pure.} = object lpVtbl*: ptr ISelectionServicesListenerVtbl + ISelectionServicesListenerVtbl* {.pure, inheritable.} = object of IUnknownVtbl BeginSelectionUndo*: proc(self: ptr ISelectionServicesListener): HRESULT {.stdcall.} EndSelectionUndo*: proc(self: ptr ISelectionServicesListener): HRESULT {.stdcall.} - OnSelectedElementExit*: proc(self: ptr ISelectionServicesListener, pIElementStart: ptr IMarkupPointer, pIElementEnd: ptr IMarkupPointer, pIElementContentStart: ptr IMarkupPointer, pIElementContentEnd: ptr IMarkupPointer): HRESULT {.stdcall.} - OnChangeType*: proc(self: ptr ISelectionServicesListener, eType: SELECTION_TYPE, pIListener: ptr ISelectionServicesListener): HRESULT {.stdcall.} - GetTypeDetail*: proc(self: ptr ISelectionServicesListener, pTypeDetail: ptr BSTR): HRESULT {.stdcall.} + OnSelectedElementExit*: proc( + self: ptr ISelectionServicesListener, + pIElementStart: ptr IMarkupPointer, + pIElementEnd: ptr IMarkupPointer, + pIElementContentStart: ptr IMarkupPointer, + pIElementContentEnd: ptr IMarkupPointer, + ): HRESULT {.stdcall.} + OnChangeType*: proc( + self: ptr ISelectionServicesListener, + eType: SELECTION_TYPE, + pIListener: ptr ISelectionServicesListener, + ): HRESULT {.stdcall.} + GetTypeDetail*: proc( + self: ptr ISelectionServicesListener, pTypeDetail: ptr BSTR + ): HRESULT {.stdcall.} + IElementSegment* {.pure.} = object lpVtbl*: ptr IElementSegmentVtbl + IElementSegmentVtbl* {.pure, inheritable.} = object of ISegmentVtbl - GetElement*: proc(self: ptr IElementSegment, ppIElement: ptr ptr IHTMLElement): HRESULT {.stdcall.} + GetElement*: proc( + self: ptr IElementSegment, ppIElement: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} SetPrimary*: proc(self: ptr IElementSegment, fPrimary: WINBOOL): HRESULT {.stdcall.} - IsPrimary*: proc(self: ptr IElementSegment, pfPrimary: ptr WINBOOL): HRESULT {.stdcall.} + IsPrimary*: + proc(self: ptr IElementSegment, pfPrimary: ptr WINBOOL): HRESULT {.stdcall.} + ISelectionServices* {.pure.} = object lpVtbl*: ptr ISelectionServicesVtbl + ISelectionServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetSelectionType*: proc(self: ptr ISelectionServices, eType: SELECTION_TYPE, pIListener: ptr ISelectionServicesListener): HRESULT {.stdcall.} - GetMarkupContainer*: proc(self: ptr ISelectionServices, ppIContainer: ptr ptr IMarkupContainer): HRESULT {.stdcall.} - AddSegment*: proc(self: ptr ISelectionServices, pIStart: ptr IMarkupPointer, pIEnd: ptr IMarkupPointer, ppISegmentAdded: ptr ptr ISegment): HRESULT {.stdcall.} - AddElementSegment*: proc(self: ptr ISelectionServices, pIElement: ptr IHTMLElement, ppISegmentAdded: ptr ptr IElementSegment): HRESULT {.stdcall.} - RemoveSegment*: proc(self: ptr ISelectionServices, pISegment: ptr ISegment): HRESULT {.stdcall.} - GetSelectionServicesListener*: proc(self: ptr ISelectionServices, ppISelectionServicesListener: ptr ptr ISelectionServicesListener): HRESULT {.stdcall.} + SetSelectionType*: proc( + self: ptr ISelectionServices, + eType: SELECTION_TYPE, + pIListener: ptr ISelectionServicesListener, + ): HRESULT {.stdcall.} + GetMarkupContainer*: proc( + self: ptr ISelectionServices, ppIContainer: ptr ptr IMarkupContainer + ): HRESULT {.stdcall.} + AddSegment*: proc( + self: ptr ISelectionServices, + pIStart: ptr IMarkupPointer, + pIEnd: ptr IMarkupPointer, + ppISegmentAdded: ptr ptr ISegment, + ): HRESULT {.stdcall.} + AddElementSegment*: proc( + self: ptr ISelectionServices, + pIElement: ptr IHTMLElement, + ppISegmentAdded: ptr ptr IElementSegment, + ): HRESULT {.stdcall.} + RemoveSegment*: + proc(self: ptr ISelectionServices, pISegment: ptr ISegment): HRESULT {.stdcall.} + GetSelectionServicesListener*: proc( + self: ptr ISelectionServices, + ppISelectionServicesListener: ptr ptr ISelectionServicesListener, + ): HRESULT {.stdcall.} + IHTMLEditDesigner* {.pure.} = object lpVtbl*: ptr IHTMLEditDesignerVtbl + IHTMLEditDesignerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - PreHandleEvent*: proc(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.stdcall.} - PostHandleEvent*: proc(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.stdcall.} - PostEditorEventNotify*: proc(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.stdcall.} + PreHandleEvent*: proc( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj + ): HRESULT {.stdcall.} + PostHandleEvent*: proc( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj + ): HRESULT {.stdcall.} + TranslateAccelerator*: proc( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj + ): HRESULT {.stdcall.} + PostEditorEventNotify*: proc( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj + ): HRESULT {.stdcall.} + IHTMLEditServices* {.pure.} = object lpVtbl*: ptr IHTMLEditServicesVtbl + IHTMLEditServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddDesigner*: proc(self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner): HRESULT {.stdcall.} - RemoveDesigner*: proc(self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner): HRESULT {.stdcall.} - GetSelectionServices*: proc(self: ptr IHTMLEditServices, pIContainer: ptr IMarkupContainer, ppSelSvc: ptr ptr ISelectionServices): HRESULT {.stdcall.} - MoveToSelectionAnchor*: proc(self: ptr IHTMLEditServices, pIStartAnchor: ptr IMarkupPointer): HRESULT {.stdcall.} - MoveToSelectionEnd*: proc(self: ptr IHTMLEditServices, pIEndAnchor: ptr IMarkupPointer): HRESULT {.stdcall.} - SelectRange*: proc(self: ptr IHTMLEditServices, pStart: ptr IMarkupPointer, pEnd: ptr IMarkupPointer, eType: SELECTION_TYPE): HRESULT {.stdcall.} + AddDesigner*: proc( + self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner + ): HRESULT {.stdcall.} + RemoveDesigner*: proc( + self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner + ): HRESULT {.stdcall.} + GetSelectionServices*: proc( + self: ptr IHTMLEditServices, + pIContainer: ptr IMarkupContainer, + ppSelSvc: ptr ptr ISelectionServices, + ): HRESULT {.stdcall.} + MoveToSelectionAnchor*: proc( + self: ptr IHTMLEditServices, pIStartAnchor: ptr IMarkupPointer + ): HRESULT {.stdcall.} + MoveToSelectionEnd*: proc( + self: ptr IHTMLEditServices, pIEndAnchor: ptr IMarkupPointer + ): HRESULT {.stdcall.} + SelectRange*: proc( + self: ptr IHTMLEditServices, + pStart: ptr IMarkupPointer, + pEnd: ptr IMarkupPointer, + eType: SELECTION_TYPE, + ): HRESULT {.stdcall.} + IHTMLEditServices2* {.pure.} = object lpVtbl*: ptr IHTMLEditServices2Vtbl + IHTMLEditServices2Vtbl* {.pure, inheritable.} = object of IHTMLEditServicesVtbl - MoveToSelectionAnchorEx*: proc(self: ptr IHTMLEditServices2, pIStartAnchor: ptr IDisplayPointer): HRESULT {.stdcall.} - MoveToSelectionEndEx*: proc(self: ptr IHTMLEditServices2, pIEndAnchor: ptr IDisplayPointer): HRESULT {.stdcall.} - FreezeVirtualCaretPos*: proc(self: ptr IHTMLEditServices2, fReCompute: WINBOOL): HRESULT {.stdcall.} - UnFreezeVirtualCaretPos*: proc(self: ptr IHTMLEditServices2, fReset: WINBOOL): HRESULT {.stdcall.} + MoveToSelectionAnchorEx*: proc( + self: ptr IHTMLEditServices2, pIStartAnchor: ptr IDisplayPointer + ): HRESULT {.stdcall.} + MoveToSelectionEndEx*: proc( + self: ptr IHTMLEditServices2, pIEndAnchor: ptr IDisplayPointer + ): HRESULT {.stdcall.} + FreezeVirtualCaretPos*: + proc(self: ptr IHTMLEditServices2, fReCompute: WINBOOL): HRESULT {.stdcall.} + UnFreezeVirtualCaretPos*: + proc(self: ptr IHTMLEditServices2, fReset: WINBOOL): HRESULT {.stdcall.} + IHTMLComputedStyle* {.pure.} = object lpVtbl*: ptr IHTMLComputedStyleVtbl + IHTMLComputedStyleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_bold*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_italic*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_underline*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_overline*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_strikeOut*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_subScript*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_superScript*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_explicitFace*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_fontWeight*: proc(self: ptr IHTMLComputedStyle, p: ptr LONG): HRESULT {.stdcall.} + get_bold*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_italic*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_underline*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_overline*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_strikeOut*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_subScript*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_superScript*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_explicitFace*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_fontWeight*: + proc(self: ptr IHTMLComputedStyle, p: ptr LONG): HRESULT {.stdcall.} get_fontSize*: proc(self: ptr IHTMLComputedStyle, p: ptr LONG): HRESULT {.stdcall.} get_fontName*: proc(self: ptr IHTMLComputedStyle, p: ptr TCHAR): HRESULT {.stdcall.} - get_hasBgColor*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_textColor*: proc(self: ptr IHTMLComputedStyle, p: ptr DWORD): HRESULT {.stdcall.} - get_backgroundColor*: proc(self: ptr IHTMLComputedStyle, p: ptr DWORD): HRESULT {.stdcall.} - get_preFormatted*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_direction*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_blockDirection*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_OL*: proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} - IsEqual*: proc(self: ptr IHTMLComputedStyle, pComputedStyle: ptr IHTMLComputedStyle, pfEqual: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_hasBgColor*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_textColor*: + proc(self: ptr IHTMLComputedStyle, p: ptr DWORD): HRESULT {.stdcall.} + get_backgroundColor*: + proc(self: ptr IHTMLComputedStyle, p: ptr DWORD): HRESULT {.stdcall.} + get_preFormatted*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_direction*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_blockDirection*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_OL*: + proc(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + IsEqual*: proc( + self: ptr IHTMLComputedStyle, + pComputedStyle: ptr IHTMLComputedStyle, + pfEqual: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IDisplayServices* {.pure.} = object lpVtbl*: ptr IDisplayServicesVtbl + IDisplayServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateDisplayPointer*: proc(self: ptr IDisplayServices, ppDispPointer: ptr ptr IDisplayPointer): HRESULT {.stdcall.} - TransformRect*: proc(self: ptr IDisplayServices, pRect: ptr RECT, eSource: COORD_SYSTEM, eDestination: COORD_SYSTEM, pIElement: ptr IHTMLElement): HRESULT {.stdcall.} - TransformPoint*: proc(self: ptr IDisplayServices, pPoint: ptr POINT, eSource: COORD_SYSTEM, eDestination: COORD_SYSTEM, pIElement: ptr IHTMLElement): HRESULT {.stdcall.} - GetCaret*: proc(self: ptr IDisplayServices, ppCaret: ptr ptr IHTMLCaret): HRESULT {.stdcall.} - GetComputedStyle*: proc(self: ptr IDisplayServices, pPointer: ptr IMarkupPointer, ppComputedStyle: ptr ptr IHTMLComputedStyle): HRESULT {.stdcall.} - ScrollRectIntoView*: proc(self: ptr IDisplayServices, pIElement: ptr IHTMLElement, rect: RECT): HRESULT {.stdcall.} - HasFlowLayout*: proc(self: ptr IDisplayServices, pIElement: ptr IHTMLElement, pfHasFlowLayout: ptr WINBOOL): HRESULT {.stdcall.} + CreateDisplayPointer*: proc( + self: ptr IDisplayServices, ppDispPointer: ptr ptr IDisplayPointer + ): HRESULT {.stdcall.} + TransformRect*: proc( + self: ptr IDisplayServices, + pRect: ptr RECT, + eSource: COORD_SYSTEM, + eDestination: COORD_SYSTEM, + pIElement: ptr IHTMLElement, + ): HRESULT {.stdcall.} + TransformPoint*: proc( + self: ptr IDisplayServices, + pPoint: ptr POINT, + eSource: COORD_SYSTEM, + eDestination: COORD_SYSTEM, + pIElement: ptr IHTMLElement, + ): HRESULT {.stdcall.} + GetCaret*: + proc(self: ptr IDisplayServices, ppCaret: ptr ptr IHTMLCaret): HRESULT {.stdcall.} + GetComputedStyle*: proc( + self: ptr IDisplayServices, + pPointer: ptr IMarkupPointer, + ppComputedStyle: ptr ptr IHTMLComputedStyle, + ): HRESULT {.stdcall.} + ScrollRectIntoView*: proc( + self: ptr IDisplayServices, pIElement: ptr IHTMLElement, rect: RECT + ): HRESULT {.stdcall.} + HasFlowLayout*: proc( + self: ptr IDisplayServices, + pIElement: ptr IHTMLElement, + pfHasFlowLayout: ptr WINBOOL, + ): HRESULT {.stdcall.} + IHtmlDlgSafeHelper* {.pure.} = object lpVtbl*: ptr IHtmlDlgSafeHelperVtbl + IHtmlDlgSafeHelperVtbl* {.pure, inheritable.} = object of IDispatchVtbl - choosecolordlg*: proc(self: ptr IHtmlDlgSafeHelper, initColor: VARIANT, rgbColor: ptr VARIANT): HRESULT {.stdcall.} - getCharset*: proc(self: ptr IHtmlDlgSafeHelper, fontName: BSTR, charset: ptr VARIANT): HRESULT {.stdcall.} - get_Fonts*: proc(self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_BlockFormats*: proc(self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch): HRESULT {.stdcall.} + choosecolordlg*: proc( + self: ptr IHtmlDlgSafeHelper, initColor: VARIANT, rgbColor: ptr VARIANT + ): HRESULT {.stdcall.} + getCharset*: proc( + self: ptr IHtmlDlgSafeHelper, fontName: BSTR, charset: ptr VARIANT + ): HRESULT {.stdcall.} + get_Fonts*: + proc(self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_BlockFormats*: + proc(self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch): HRESULT {.stdcall.} + IBlockFormats* {.pure.} = object lpVtbl*: ptr IBlockFormatsVtbl + IBlockFormatsVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_NewEnum*: proc(self: ptr IBlockFormats, p: ptr ptr IUnknown): HRESULT {.stdcall.} + get_NewEnum*: + proc(self: ptr IBlockFormats, p: ptr ptr IUnknown): HRESULT {.stdcall.} get_Count*: proc(self: ptr IBlockFormats, p: ptr LONG): HRESULT {.stdcall.} - Item*: proc(self: ptr IBlockFormats, pvarIndex: ptr VARIANT, pbstrBlockFormat: ptr BSTR): HRESULT {.stdcall.} + Item*: proc( + self: ptr IBlockFormats, pvarIndex: ptr VARIANT, pbstrBlockFormat: ptr BSTR + ): HRESULT {.stdcall.} + IFontNames* {.pure.} = object lpVtbl*: ptr IFontNamesVtbl + IFontNamesVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_NewEnum*: proc(self: ptr IFontNames, p: ptr ptr IUnknown): HRESULT {.stdcall.} get_Count*: proc(self: ptr IFontNames, p: ptr LONG): HRESULT {.stdcall.} - Item*: proc(self: ptr IFontNames, pvarIndex: ptr VARIANT, pbstrFontName: ptr BSTR): HRESULT {.stdcall.} + Item*: proc( + self: ptr IFontNames, pvarIndex: ptr VARIANT, pbstrFontName: ptr BSTR + ): HRESULT {.stdcall.} + IDeveloperConsoleMessageReceiver* {.pure.} = object lpVtbl*: ptr IDeveloperConsoleMessageReceiverVtbl + IDeveloperConsoleMessageReceiverVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Write*: proc(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR): HRESULT {.stdcall.} - WriteWithUrl*: proc(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR, fileUrl: LPCWSTR): HRESULT {.stdcall.} - WriteWithUrlAndLine*: proc(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR, fileUrl: LPCWSTR, line: ULONG): HRESULT {.stdcall.} - WriteWithUrlLineAndColumn*: proc(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR, fileUrl: LPCWSTR, line: ULONG, column: ULONG): HRESULT {.stdcall.} + Write*: proc( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + ): HRESULT {.stdcall.} + WriteWithUrl*: proc( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + fileUrl: LPCWSTR, + ): HRESULT {.stdcall.} + WriteWithUrlAndLine*: proc( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + fileUrl: LPCWSTR, + line: ULONG, + ): HRESULT {.stdcall.} + WriteWithUrlLineAndColumn*: proc( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + fileUrl: LPCWSTR, + line: ULONG, + column: ULONG, + ): HRESULT {.stdcall.} + IScriptEventHandler* {.pure.} = object lpVtbl*: ptr IScriptEventHandlerVtbl + IScriptEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FunctionName*: proc(self: ptr IScriptEventHandler, pbstrFunctionName: ptr BSTR): HRESULT {.stdcall.} - DebugDocumentContext*: proc(self: ptr IScriptEventHandler, ppDebugDocumentContext: ptr ptr IUnknown): HRESULT {.stdcall.} - EventHandlerDispatch*: proc(self: ptr IScriptEventHandler, ppDispHandler: ptr ptr IDispatch): HRESULT {.stdcall.} - UsesCapture*: proc(self: ptr IScriptEventHandler, pfUsesCapture: ptr WINBOOL): HRESULT {.stdcall.} - Cookie*: proc(self: ptr IScriptEventHandler, pullCookie: ptr ULONGLONG): HRESULT {.stdcall.} + FunctionName*: proc( + self: ptr IScriptEventHandler, pbstrFunctionName: ptr BSTR + ): HRESULT {.stdcall.} + DebugDocumentContext*: proc( + self: ptr IScriptEventHandler, ppDebugDocumentContext: ptr ptr IUnknown + ): HRESULT {.stdcall.} + EventHandlerDispatch*: proc( + self: ptr IScriptEventHandler, ppDispHandler: ptr ptr IDispatch + ): HRESULT {.stdcall.} + UsesCapture*: proc( + self: ptr IScriptEventHandler, pfUsesCapture: ptr WINBOOL + ): HRESULT {.stdcall.} + Cookie*: proc(self: ptr IScriptEventHandler, pullCookie: ptr ULONGLONG): HRESULT {. + stdcall + .} + IDebugCallbackNotificationHandler* {.pure.} = object lpVtbl*: ptr IDebugCallbackNotificationHandlerVtbl + IDebugCallbackNotificationHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RequestedCallbackTypes*: proc(self: ptr IDebugCallbackNotificationHandler, pCallbackMask: ptr DWORD): HRESULT {.stdcall.} - BeforeDispatchEvent*: proc(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown): HRESULT {.stdcall.} - DispatchEventComplete*: proc(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown, propagationStatus: DWORD): HRESULT {.stdcall.} - BeforeInvokeDomCallback*: proc(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown, pCallback: ptr IScriptEventHandler, eStage: DOM_EVENT_PHASE, propagationStatus: DWORD): HRESULT {.stdcall.} - InvokeDomCallbackComplete*: proc(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown, pCallback: ptr IScriptEventHandler, eStage: DOM_EVENT_PHASE, propagationStatus: DWORD): HRESULT {.stdcall.} - BeforeInvokeCallback*: proc(self: ptr IDebugCallbackNotificationHandler, eCallbackType: SCRIPT_TIMER_TYPE, callbackCookie: DWORD, pDispHandler: ptr IDispatch, ullHandlerCookie: ULONGLONG, functionName: BSTR, line: UINT32, column: UINT32, cchLength: UINT32, pDebugDocumentContext: ptr IUnknown): HRESULT {.stdcall.} - InvokeCallbackComplete*: proc(self: ptr IDebugCallbackNotificationHandler, eCallbackType: SCRIPT_TIMER_TYPE, callbackCookie: DWORD, pDispHandler: ptr IDispatch, ullHandlerCookie: ULONGLONG, functionName: BSTR, line: UINT32, column: UINT32, cchLength: UINT32, pDebugDocumentContext: ptr IUnknown): HRESULT {.stdcall.} + RequestedCallbackTypes*: proc( + self: ptr IDebugCallbackNotificationHandler, pCallbackMask: ptr DWORD + ): HRESULT {.stdcall.} + BeforeDispatchEvent*: proc( + self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown + ): HRESULT {.stdcall.} + DispatchEventComplete*: proc( + self: ptr IDebugCallbackNotificationHandler, + pEvent: ptr IUnknown, + propagationStatus: DWORD, + ): HRESULT {.stdcall.} + BeforeInvokeDomCallback*: proc( + self: ptr IDebugCallbackNotificationHandler, + pEvent: ptr IUnknown, + pCallback: ptr IScriptEventHandler, + eStage: DOM_EVENT_PHASE, + propagationStatus: DWORD, + ): HRESULT {.stdcall.} + InvokeDomCallbackComplete*: proc( + self: ptr IDebugCallbackNotificationHandler, + pEvent: ptr IUnknown, + pCallback: ptr IScriptEventHandler, + eStage: DOM_EVENT_PHASE, + propagationStatus: DWORD, + ): HRESULT {.stdcall.} + BeforeInvokeCallback*: proc( + self: ptr IDebugCallbackNotificationHandler, + eCallbackType: SCRIPT_TIMER_TYPE, + callbackCookie: DWORD, + pDispHandler: ptr IDispatch, + ullHandlerCookie: ULONGLONG, + functionName: BSTR, + line: UINT32, + column: UINT32, + cchLength: UINT32, + pDebugDocumentContext: ptr IUnknown, + ): HRESULT {.stdcall.} + InvokeCallbackComplete*: proc( + self: ptr IDebugCallbackNotificationHandler, + eCallbackType: SCRIPT_TIMER_TYPE, + callbackCookie: DWORD, + pDispHandler: ptr IDispatch, + ullHandlerCookie: ULONGLONG, + functionName: BSTR, + line: UINT32, + column: UINT32, + cchLength: UINT32, + pDebugDocumentContext: ptr IUnknown, + ): HRESULT {.stdcall.} + IScriptEventHandlerSourceInfo* {.pure.} = object lpVtbl*: ptr IScriptEventHandlerSourceInfoVtbl + IScriptEventHandlerSourceInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSourceInfo*: proc(self: ptr IScriptEventHandlerSourceInfo, pbstrFunctionName: ptr BSTR, line: ptr UINT32, column: ptr UINT32, cchLength: ptr UINT32): HRESULT {.stdcall.} + GetSourceInfo*: proc( + self: ptr IScriptEventHandlerSourceInfo, + pbstrFunctionName: ptr BSTR, + line: ptr UINT32, + column: ptr UINT32, + cchLength: ptr UINT32, + ): HRESULT {.stdcall.} + IDOMEventRegistrationCallback* {.pure.} = object lpVtbl*: ptr IDOMEventRegistrationCallbackVtbl + IDOMEventRegistrationCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnDOMEventListenerAdded*: proc(self: ptr IDOMEventRegistrationCallback, pszEventType: LPCWSTR, pHandler: ptr IScriptEventHandler): HRESULT {.stdcall.} - OnDOMEventListenerRemoved*: proc(self: ptr IDOMEventRegistrationCallback, ullCookie: ULONGLONG): HRESULT {.stdcall.} + OnDOMEventListenerAdded*: proc( + self: ptr IDOMEventRegistrationCallback, + pszEventType: LPCWSTR, + pHandler: ptr IScriptEventHandler, + ): HRESULT {.stdcall.} + OnDOMEventListenerRemoved*: proc( + self: ptr IDOMEventRegistrationCallback, ullCookie: ULONGLONG + ): HRESULT {.stdcall.} + IEventTarget2* {.pure.} = object lpVtbl*: ptr IEventTarget2Vtbl + IEventTarget2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRegisteredEventTypes*: proc(self: ptr IEventTarget2, ppEventTypeArray: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetListenersForType*: proc(self: ptr IEventTarget2, pszEventType: LPCWSTR, ppEventHandlerArray: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - RegisterForDOMEventListeners*: proc(self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback): HRESULT {.stdcall.} - UnregisterForDOMEventListeners*: proc(self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback): HRESULT {.stdcall.} + GetRegisteredEventTypes*: proc( + self: ptr IEventTarget2, ppEventTypeArray: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetListenersForType*: proc( + self: ptr IEventTarget2, + pszEventType: LPCWSTR, + ppEventHandlerArray: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + RegisterForDOMEventListeners*: proc( + self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback + ): HRESULT {.stdcall.} + UnregisterForDOMEventListeners*: proc( + self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback + ): HRESULT {.stdcall.} + HTMLNamespaceEvents* {.pure.} = object lpVtbl*: ptr HTMLNamespaceEventsVtbl + HTMLNamespaceEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLNamespace* {.pure.} = object lpVtbl*: ptr IHTMLNamespaceVtbl + IHTMLNamespaceVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_name*: proc(self: ptr IHTMLNamespace, p: ptr BSTR): HRESULT {.stdcall.} get_urn*: proc(self: ptr IHTMLNamespace, p: ptr BSTR): HRESULT {.stdcall.} - get_tagNames*: proc(self: ptr IHTMLNamespace, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_tagNames*: + proc(self: ptr IHTMLNamespace, p: ptr ptr IDispatch): HRESULT {.stdcall.} get_readyState*: proc(self: ptr IHTMLNamespace, p: ptr VARIANT): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IHTMLNamespace, v: VARIANT): HRESULT {.stdcall.} - get_onreadystatechange*: proc(self: ptr IHTMLNamespace, p: ptr VARIANT): HRESULT {.stdcall.} - doImport*: proc(self: ptr IHTMLNamespace, bstrImplementationUrl: BSTR): HRESULT {.stdcall.} - attachEvent*: proc(self: ptr IHTMLNamespace, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} - detachEvent*: proc(self: ptr IHTMLNamespace, event: BSTR, pDisp: ptr IDispatch): HRESULT {.stdcall.} + put_onreadystatechange*: + proc(self: ptr IHTMLNamespace, v: VARIANT): HRESULT {.stdcall.} + get_onreadystatechange*: + proc(self: ptr IHTMLNamespace, p: ptr VARIANT): HRESULT {.stdcall.} + doImport*: + proc(self: ptr IHTMLNamespace, bstrImplementationUrl: BSTR): HRESULT {.stdcall.} + attachEvent*: proc( + self: ptr IHTMLNamespace, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + detachEvent*: proc( + self: ptr IHTMLNamespace, event: BSTR, pDisp: ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLNamespaceCollection* {.pure.} = object lpVtbl*: ptr IHTMLNamespaceCollectionVtbl + IHTMLNamespaceCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_length*: proc(self: ptr IHTMLNamespaceCollection, p: ptr LONG): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLNamespaceCollection, index: VARIANT, ppNamespace: ptr ptr IDispatch): HRESULT {.stdcall.} - add*: proc(self: ptr IHTMLNamespaceCollection, bstrNamespace: BSTR, bstrUrn: BSTR, implementationUrl: VARIANT, ppNamespace: ptr ptr IDispatch): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IHTMLNamespaceCollection, p: ptr LONG): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLNamespaceCollection, index: VARIANT, ppNamespace: ptr ptr IDispatch + ): HRESULT {.stdcall.} + add*: proc( + self: ptr IHTMLNamespaceCollection, + bstrNamespace: BSTR, + bstrUrn: BSTR, + implementationUrl: VARIANT, + ppNamespace: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + DispHTMLNamespace* {.pure.} = object lpVtbl*: ptr DispHTMLNamespaceVtbl + DispHTMLNamespaceVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispHTMLNamespaceCollection* {.pure.} = object lpVtbl*: ptr DispHTMLNamespaceCollectionVtbl + DispHTMLNamespaceCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLPainter* {.pure.} = object lpVtbl*: ptr IHTMLPainterVtbl + IHTMLPainterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Draw*: proc(self: ptr IHTMLPainter, rcBounds: RECT, rcUpdate: RECT, lDrawFlags: LONG, hdc: HDC, pvDrawObject: LPVOID): HRESULT {.stdcall.} + Draw*: proc( + self: ptr IHTMLPainter, + rcBounds: RECT, + rcUpdate: RECT, + lDrawFlags: LONG, + hdc: HDC, + pvDrawObject: LPVOID, + ): HRESULT {.stdcall.} OnResize*: proc(self: ptr IHTMLPainter, size: SIZE): HRESULT {.stdcall.} - GetPainterInfo*: proc(self: ptr IHTMLPainter, pInfo: ptr HTML_PAINTER_INFO): HRESULT {.stdcall.} - HitTestPoint*: proc(self: ptr IHTMLPainter, pt: POINT, pbHit: ptr WINBOOL, plPartID: ptr LONG): HRESULT {.stdcall.} + GetPainterInfo*: + proc(self: ptr IHTMLPainter, pInfo: ptr HTML_PAINTER_INFO): HRESULT {.stdcall.} + HitTestPoint*: proc( + self: ptr IHTMLPainter, pt: POINT, pbHit: ptr WINBOOL, plPartID: ptr LONG + ): HRESULT {.stdcall.} + IHTMLPainterEventInfo* {.pure.} = object lpVtbl*: ptr IHTMLPainterEventInfoVtbl + IHTMLPainterEventInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetEventInfoFlags*: proc(self: ptr IHTMLPainterEventInfo, plEventInfoFlags: ptr LONG): HRESULT {.stdcall.} - GetEventTarget*: proc(self: ptr IHTMLPainterEventInfo, ppElement: ptr ptr IHTMLElement): HRESULT {.stdcall.} - SetCursor*: proc(self: ptr IHTMLPainterEventInfo, lPartID: LONG): HRESULT {.stdcall.} - StringFromPartID*: proc(self: ptr IHTMLPainterEventInfo, lPartID: LONG, pbstrPart: ptr BSTR): HRESULT {.stdcall.} + GetEventInfoFlags*: proc( + self: ptr IHTMLPainterEventInfo, plEventInfoFlags: ptr LONG + ): HRESULT {.stdcall.} + GetEventTarget*: proc( + self: ptr IHTMLPainterEventInfo, ppElement: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + SetCursor*: + proc(self: ptr IHTMLPainterEventInfo, lPartID: LONG): HRESULT {.stdcall.} + StringFromPartID*: proc( + self: ptr IHTMLPainterEventInfo, lPartID: LONG, pbstrPart: ptr BSTR + ): HRESULT {.stdcall.} + IHTMLPainterOverlay* {.pure.} = object lpVtbl*: ptr IHTMLPainterOverlayVtbl + IHTMLPainterOverlayVtbl* {.pure, inheritable.} = object of IUnknownVtbl OnMove*: proc(self: ptr IHTMLPainterOverlay, rcDevice: RECT): HRESULT {.stdcall.} + IHTMLPaintSite* {.pure.} = object lpVtbl*: ptr IHTMLPaintSiteVtbl + IHTMLPaintSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl InvalidatePainterInfo*: proc(self: ptr IHTMLPaintSite): HRESULT {.stdcall.} - InvalidateRect*: proc(self: ptr IHTMLPaintSite, prcInvalid: ptr RECT): HRESULT {.stdcall.} - InvalidateRegion*: proc(self: ptr IHTMLPaintSite, rgnInvalid: HRGN): HRESULT {.stdcall.} - GetDrawInfo*: proc(self: ptr IHTMLPaintSite, lFlags: LONG, pDrawInfo: ptr HTML_PAINT_DRAW_INFO): HRESULT {.stdcall.} - TransformGlobalToLocal*: proc(self: ptr IHTMLPaintSite, ptGlobal: POINT, pptLocal: ptr POINT): HRESULT {.stdcall.} - TransformLocalToGlobal*: proc(self: ptr IHTMLPaintSite, ptLocal: POINT, pptGlobal: ptr POINT): HRESULT {.stdcall.} - GetHitTestCookie*: proc(self: ptr IHTMLPaintSite, plCookie: ptr LONG): HRESULT {.stdcall.} + InvalidateRect*: + proc(self: ptr IHTMLPaintSite, prcInvalid: ptr RECT): HRESULT {.stdcall.} + InvalidateRegion*: + proc(self: ptr IHTMLPaintSite, rgnInvalid: HRGN): HRESULT {.stdcall.} + GetDrawInfo*: proc( + self: ptr IHTMLPaintSite, lFlags: LONG, pDrawInfo: ptr HTML_PAINT_DRAW_INFO + ): HRESULT {.stdcall.} + TransformGlobalToLocal*: proc( + self: ptr IHTMLPaintSite, ptGlobal: POINT, pptLocal: ptr POINT + ): HRESULT {.stdcall.} + TransformLocalToGlobal*: proc( + self: ptr IHTMLPaintSite, ptLocal: POINT, pptGlobal: ptr POINT + ): HRESULT {.stdcall.} + GetHitTestCookie*: + proc(self: ptr IHTMLPaintSite, plCookie: ptr LONG): HRESULT {.stdcall.} + IHTMLIPrintCollection* {.pure.} = object lpVtbl*: ptr IHTMLIPrintCollectionVtbl + IHTMLIPrintCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_length*: proc(self: ptr IHTMLIPrintCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IHTMLIPrintCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IHTMLIPrintCollection, index: LONG, ppIPrint: ptr ptr IUnknown): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IHTMLIPrintCollection, p: ptr ptr IUnknown): HRESULT {.stdcall.} + item*: proc( + self: ptr IHTMLIPrintCollection, index: LONG, ppIPrint: ptr ptr IUnknown + ): HRESULT {.stdcall.} + IEnumPrivacyRecords* {.pure.} = object lpVtbl*: ptr IEnumPrivacyRecordsVtbl + IEnumPrivacyRecordsVtbl* {.pure, inheritable.} = object of IUnknownVtbl Reset*: proc(self: ptr IEnumPrivacyRecords): HRESULT {.stdcall.} GetSize*: proc(self: ptr IEnumPrivacyRecords, pSize: ptr ULONG): HRESULT {.stdcall.} - GetPrivacyImpacted*: proc(self: ptr IEnumPrivacyRecords, pState: ptr WINBOOL): HRESULT {.stdcall.} - Next*: proc(self: ptr IEnumPrivacyRecords, pbstrUrl: ptr BSTR, pbstrPolicyRef: ptr BSTR, pdwReserved: ptr LONG, pdwPrivacyFlags: ptr DWORD): HRESULT {.stdcall.} + GetPrivacyImpacted*: + proc(self: ptr IEnumPrivacyRecords, pState: ptr WINBOOL): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumPrivacyRecords, + pbstrUrl: ptr BSTR, + pbstrPolicyRef: ptr BSTR, + pdwReserved: ptr LONG, + pdwPrivacyFlags: ptr DWORD, + ): HRESULT {.stdcall.} + IWPCBlockedUrls* {.pure.} = object lpVtbl*: ptr IWPCBlockedUrlsVtbl + IWPCBlockedUrlsVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetCount*: proc(self: ptr IWPCBlockedUrls, pdwCount: ptr DWORD): HRESULT {.stdcall.} - GetUrl*: proc(self: ptr IWPCBlockedUrls, dwIdx: DWORD, pbstrUrl: ptr BSTR): HRESULT {.stdcall.} + GetUrl*: proc(self: ptr IWPCBlockedUrls, dwIdx: DWORD, pbstrUrl: ptr BSTR): HRESULT {. + stdcall + .} + IHTMLDOMConstructorCollection* {.pure.} = object lpVtbl*: ptr IHTMLDOMConstructorCollectionVtbl + IHTMLDOMConstructorCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_Attr*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_BehaviorUrnsCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_BookmarkCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CompatibleInfo*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CompatibleInfoCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_ControlRangeCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CSSCurrentStyleDeclaration*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CSSRuleList*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CSSRuleStyleDeclaration*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CSSStyleDeclaration*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CSSStyleRule*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_CSSStyleSheet*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_DataTransfer*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_DOMImplementation*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Element*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Event*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_History*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTCElementBehaviorDefaults*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLAnchorElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLAreaElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLAreasCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLBaseElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLBaseFontElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLBGSoundElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLBlockElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLBodyElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLBRElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLButtonElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLCommentElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLDDElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLDivElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLDocument*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLDListElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLDTElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLEmbedElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLFieldSetElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLFontElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLFormElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLFrameElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLFrameSetElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLGenericElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLHeadElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLHeadingElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLHRElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLHtmlElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLIFrameElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLImageElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLInputElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLIsIndexElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLLabelElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLLegendElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLLIElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLLinkElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLMapElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLMarqueeElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLMetaElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLModelessDialog*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLNamespaceInfo*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLNamespaceInfoCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLNextIdElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLNoShowElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLObjectElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLOListElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLOptionElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLParagraphElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLParamElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLPhraseElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLPluginsCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLPopup*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLScriptElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLSelectElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLSpanElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLStyleElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTableCaptionElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTableCellElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTableColElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTableElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTableRowElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTableSectionElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTextAreaElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTextElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLTitleElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLUListElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_HTMLUnknownElement*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Image*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Location*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_NamedNodeMap*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Navigator*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_NodeList*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Option*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Screen*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Selection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_StaticNodeList*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Storage*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_StyleSheetList*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_StyleSheetPage*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_StyleSheetPageList*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Text*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_TextRange*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_TextRangeCollection*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_TextRectangle*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_TextRectangleList*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Window*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_XDomainRequest*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} - get_XMLHttpRequest*: proc(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Attr*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_BehaviorUrnsCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_BookmarkCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CompatibleInfo*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CompatibleInfoCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_ControlRangeCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CSSCurrentStyleDeclaration*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CSSRuleList*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CSSRuleStyleDeclaration*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CSSStyleDeclaration*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CSSStyleRule*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_CSSStyleSheet*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_DataTransfer*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_DOMImplementation*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Element*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Event*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_History*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTCElementBehaviorDefaults*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLAnchorElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLAreaElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLAreasCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLBaseElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLBaseFontElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLBGSoundElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLBlockElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLBodyElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLBRElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLButtonElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLCommentElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLDDElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLDivElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLDocument*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLDListElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLDTElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLEmbedElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLFieldSetElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLFontElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLFormElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLFrameElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLFrameSetElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLGenericElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLHeadElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLHeadingElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLHRElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLHtmlElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLIFrameElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLImageElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLInputElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLIsIndexElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLLabelElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLLegendElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLLIElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLLinkElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLMapElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLMarqueeElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLMetaElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLModelessDialog*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLNamespaceInfo*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLNamespaceInfoCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLNextIdElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLNoShowElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLObjectElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLOListElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLOptionElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLParagraphElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLParamElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLPhraseElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLPluginsCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLPopup*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLScriptElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLSelectElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLSpanElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLStyleElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTableCaptionElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTableCellElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTableColElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTableElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTableRowElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTableSectionElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTextAreaElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTextElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLTitleElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLUListElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_HTMLUnknownElement*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Image*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Location*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_NamedNodeMap*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Navigator*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_NodeList*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Option*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Screen*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Selection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_StaticNodeList*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Storage*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_StyleSheetList*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_StyleSheetPage*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_StyleSheetPageList*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Text*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_TextRange*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_TextRangeCollection*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_TextRectangle*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_TextRectangleList*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_Window*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_XDomainRequest*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_XMLHttpRequest*: proc( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch + ): HRESULT {.stdcall.} + IHTMLDialog* {.pure.} = object lpVtbl*: ptr IHTMLDialogVtbl + IHTMLDialogVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_dialogTop*: proc(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.stdcall.} get_dialogTop*: proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} @@ -12196,58 +18908,81 @@ get_dialogWidth*: proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} put_dialogHeight*: proc(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.stdcall.} get_dialogHeight*: proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} - get_dialogArguments*: proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} + get_dialogArguments*: + proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} get_menuArguments*: proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} put_returnValue*: proc(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.stdcall.} get_returnValue*: proc(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.stdcall.} close*: proc(self: ptr IHTMLDialog): HRESULT {.stdcall.} toString*: proc(self: ptr IHTMLDialog, String: ptr BSTR): HRESULT {.stdcall.} + IHTMLDialog2* {.pure.} = object lpVtbl*: ptr IHTMLDialog2Vtbl + IHTMLDialog2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_status*: proc(self: ptr IHTMLDialog2, v: BSTR): HRESULT {.stdcall.} get_status*: proc(self: ptr IHTMLDialog2, p: ptr BSTR): HRESULT {.stdcall.} put_resizable*: proc(self: ptr IHTMLDialog2, v: BSTR): HRESULT {.stdcall.} get_resizable*: proc(self: ptr IHTMLDialog2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLDialog3* {.pure.} = object lpVtbl*: ptr IHTMLDialog3Vtbl + IHTMLDialog3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_unadorned*: proc(self: ptr IHTMLDialog3, v: BSTR): HRESULT {.stdcall.} get_unadorned*: proc(self: ptr IHTMLDialog3, p: ptr BSTR): HRESULT {.stdcall.} put_dialogHide*: proc(self: ptr IHTMLDialog3, v: BSTR): HRESULT {.stdcall.} get_dialogHide*: proc(self: ptr IHTMLDialog3, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLModelessInit* {.pure.} = object lpVtbl*: ptr IHTMLModelessInitVtbl + IHTMLModelessInitVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_parameters*: proc(self: ptr IHTMLModelessInit, p: ptr VARIANT): HRESULT {.stdcall.} - get_optionString*: proc(self: ptr IHTMLModelessInit, p: ptr VARIANT): HRESULT {.stdcall.} - get_moniker*: proc(self: ptr IHTMLModelessInit, p: ptr ptr IUnknown): HRESULT {.stdcall.} - get_document*: proc(self: ptr IHTMLModelessInit, p: ptr ptr IUnknown): HRESULT {.stdcall.} + get_parameters*: + proc(self: ptr IHTMLModelessInit, p: ptr VARIANT): HRESULT {.stdcall.} + get_optionString*: + proc(self: ptr IHTMLModelessInit, p: ptr VARIANT): HRESULT {.stdcall.} + get_moniker*: + proc(self: ptr IHTMLModelessInit, p: ptr ptr IUnknown): HRESULT {.stdcall.} + get_document*: + proc(self: ptr IHTMLModelessInit, p: ptr ptr IUnknown): HRESULT {.stdcall.} + IHTMLPopup* {.pure.} = object lpVtbl*: ptr IHTMLPopupVtbl + IHTMLPopupVtbl* {.pure, inheritable.} = object of IDispatchVtbl - show*: proc(self: ptr IHTMLPopup, x: LONG, y: LONG, w: LONG, h: LONG, pElement: ptr VARIANT): HRESULT {.stdcall.} + show*: proc( + self: ptr IHTMLPopup, x: LONG, y: LONG, w: LONG, h: LONG, pElement: ptr VARIANT + ): HRESULT {.stdcall.} hide*: proc(self: ptr IHTMLPopup): HRESULT {.stdcall.} - get_document*: proc(self: ptr IHTMLPopup, p: ptr ptr IHTMLDocument): HRESULT {.stdcall.} + get_document*: + proc(self: ptr IHTMLPopup, p: ptr ptr IHTMLDocument): HRESULT {.stdcall.} get_isOpen*: proc(self: ptr IHTMLPopup, p: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DispHTMLPopup* {.pure.} = object lpVtbl*: ptr DispHTMLPopupVtbl + DispHTMLPopupVtbl* {.pure, inheritable.} = object of IDispatchVtbl IHTMLAppBehavior* {.pure.} = object lpVtbl*: ptr IHTMLAppBehaviorVtbl + IHTMLAppBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_applicationName*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} - get_applicationName*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} + get_applicationName*: + proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_version*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} get_version*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_icon*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} get_icon*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_singleInstance*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} - get_singleInstance*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} + get_singleInstance*: + proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_minimizeButton*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} - get_minimizeButton*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} + get_minimizeButton*: + proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_maximizeButton*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} - get_maximizeButton*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} + get_maximizeButton*: + proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_border*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} get_border*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_borderStyle*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} @@ -12259,7826 +18994,41477 @@ put_windowState*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} get_windowState*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} put_showInTaskBar*: proc(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.stdcall.} - get_showInTaskBar*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} + get_showInTaskBar*: + proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} get_commandLine*: proc(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLAppBehavior2* {.pure.} = object lpVtbl*: ptr IHTMLAppBehavior2Vtbl + IHTMLAppBehavior2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_contextMenu*: proc(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.stdcall.} - get_contextMenu*: proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} + get_contextMenu*: + proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} put_innerBorder*: proc(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.stdcall.} - get_innerBorder*: proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} + get_innerBorder*: + proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} put_scroll*: proc(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.stdcall.} get_scroll*: proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} put_scrollFlat*: proc(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.stdcall.} get_scrollFlat*: proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} put_selection*: proc(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.stdcall.} get_selection*: proc(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.stdcall.} + IHTMLAppBehavior3* {.pure.} = object lpVtbl*: ptr IHTMLAppBehavior3Vtbl + IHTMLAppBehavior3Vtbl* {.pure, inheritable.} = object of IDispatchVtbl put_navigable*: proc(self: ptr IHTMLAppBehavior3, v: BSTR): HRESULT {.stdcall.} get_navigable*: proc(self: ptr IHTMLAppBehavior3, p: ptr BSTR): HRESULT {.stdcall.} + DispHTMLAppBehavior* {.pure.} = object lpVtbl*: ptr DispHTMLAppBehaviorVtbl + DispHTMLAppBehaviorVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispIHTMLInputButtonElement* {.pure.} = object lpVtbl*: ptr DispIHTMLInputButtonElementVtbl + DispIHTMLInputButtonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispIHTMLInputTextElement* {.pure.} = object lpVtbl*: ptr DispIHTMLInputTextElementVtbl + DispIHTMLInputTextElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispIHTMLInputFileElement* {.pure.} = object lpVtbl*: ptr DispIHTMLInputFileElementVtbl + DispIHTMLInputFileElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispIHTMLOptionButtonElement* {.pure.} = object lpVtbl*: ptr DispIHTMLOptionButtonElementVtbl + DispIHTMLOptionButtonElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl DispIHTMLInputImage* {.pure.} = object lpVtbl*: ptr DispIHTMLInputImageVtbl + DispIHTMLInputImageVtbl* {.pure, inheritable.} = object of IDispatchVtbl IElementBehaviorSite* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteVtbl + IElementBehaviorSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetElement*: proc(self: ptr IElementBehaviorSite, ppElement: ptr ptr IHTMLElement): HRESULT {.stdcall.} - RegisterNotification*: proc(self: ptr IElementBehaviorSite, lEvent: LONG): HRESULT {.stdcall.} + GetElement*: proc( + self: ptr IElementBehaviorSite, ppElement: ptr ptr IHTMLElement + ): HRESULT {.stdcall.} + RegisterNotification*: + proc(self: ptr IElementBehaviorSite, lEvent: LONG): HRESULT {.stdcall.} + IElementBehavior* {.pure.} = object lpVtbl*: ptr IElementBehaviorVtbl + IElementBehaviorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Init*: proc(self: ptr IElementBehavior, pBehaviorSite: ptr IElementBehaviorSite): HRESULT {.stdcall.} - Notify*: proc(self: ptr IElementBehavior, lEvent: LONG, pVar: ptr VARIANT): HRESULT {.stdcall.} + Init*: proc( + self: ptr IElementBehavior, pBehaviorSite: ptr IElementBehaviorSite + ): HRESULT {.stdcall.} + Notify*: proc(self: ptr IElementBehavior, lEvent: LONG, pVar: ptr VARIANT): HRESULT {. + stdcall + .} Detach*: proc(self: ptr IElementBehavior): HRESULT {.stdcall.} + IElementBehaviorFactory* {.pure.} = object lpVtbl*: ptr IElementBehaviorFactoryVtbl + IElementBehaviorFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FindBehavior*: proc(self: ptr IElementBehaviorFactory, bstrBehavior: BSTR, bstrBehaviorUrl: BSTR, pSite: ptr IElementBehaviorSite, ppBehavior: ptr ptr IElementBehavior): HRESULT {.stdcall.} + FindBehavior*: proc( + self: ptr IElementBehaviorFactory, + bstrBehavior: BSTR, + bstrBehaviorUrl: BSTR, + pSite: ptr IElementBehaviorSite, + ppBehavior: ptr ptr IElementBehavior, + ): HRESULT {.stdcall.} + IElementNamespace* {.pure.} = object lpVtbl*: ptr IElementNamespaceVtbl + IElementNamespaceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddTag*: proc(self: ptr IElementNamespace, bstrTagName: BSTR, lFlags: LONG): HRESULT {.stdcall.} + AddTag*: proc(self: ptr IElementNamespace, bstrTagName: BSTR, lFlags: LONG): HRESULT {. + stdcall + .} + IElementNamespaceTable* {.pure.} = object lpVtbl*: ptr IElementNamespaceTableVtbl + IElementNamespaceTableVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddNamespace*: proc(self: ptr IElementNamespaceTable, bstrNamespace: BSTR, bstrUrn: BSTR, lFlags: LONG, pvarFactory: ptr VARIANT): HRESULT {.stdcall.} + AddNamespace*: proc( + self: ptr IElementNamespaceTable, + bstrNamespace: BSTR, + bstrUrn: BSTR, + lFlags: LONG, + pvarFactory: ptr VARIANT, + ): HRESULT {.stdcall.} + IElementNamespaceFactory* {.pure.} = object lpVtbl*: ptr IElementNamespaceFactoryVtbl + IElementNamespaceFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Create*: proc(self: ptr IElementNamespaceFactory, pNamespace: ptr IElementNamespace): HRESULT {.stdcall.} + Create*: proc( + self: ptr IElementNamespaceFactory, pNamespace: ptr IElementNamespace + ): HRESULT {.stdcall.} + IElementNamespaceFactory2* {.pure.} = object lpVtbl*: ptr IElementNamespaceFactory2Vtbl + IElementNamespaceFactory2Vtbl* {.pure, inheritable.} = object of IElementNamespaceFactoryVtbl - CreateWithImplementation*: proc(self: ptr IElementNamespaceFactory2, pNamespace: ptr IElementNamespace, bstrImplementation: BSTR): HRESULT {.stdcall.} + CreateWithImplementation*: proc( + self: ptr IElementNamespaceFactory2, + pNamespace: ptr IElementNamespace, + bstrImplementation: BSTR, + ): HRESULT {.stdcall.} + IElementNamespaceFactoryCallback* {.pure.} = object lpVtbl*: ptr IElementNamespaceFactoryCallbackVtbl + IElementNamespaceFactoryCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Resolve*: proc(self: ptr IElementNamespaceFactoryCallback, bstrNamespace: BSTR, bstrTagName: BSTR, bstrAttrs: BSTR, pNamespace: ptr IElementNamespace): HRESULT {.stdcall.} + Resolve*: proc( + self: ptr IElementNamespaceFactoryCallback, + bstrNamespace: BSTR, + bstrTagName: BSTR, + bstrAttrs: BSTR, + pNamespace: ptr IElementNamespace, + ): HRESULT {.stdcall.} + IElementBehaviorSiteOM* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteOMVtbl + IElementBehaviorSiteOMVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterEvent*: proc(self: ptr IElementBehaviorSiteOM, pchEvent: LPOLESTR, lFlags: LONG, plCookie: ptr LONG): HRESULT {.stdcall.} - GetEventCookie*: proc(self: ptr IElementBehaviorSiteOM, pchEvent: LPOLESTR, plCookie: ptr LONG): HRESULT {.stdcall.} - FireEvent*: proc(self: ptr IElementBehaviorSiteOM, lCookie: LONG, pEventObject: ptr IHTMLEventObj): HRESULT {.stdcall.} - CreateEventObject*: proc(self: ptr IElementBehaviorSiteOM, ppEventObject: ptr ptr IHTMLEventObj): HRESULT {.stdcall.} - RegisterName*: proc(self: ptr IElementBehaviorSiteOM, pchName: LPOLESTR): HRESULT {.stdcall.} - RegisterUrn*: proc(self: ptr IElementBehaviorSiteOM, pchUrn: LPOLESTR): HRESULT {.stdcall.} + RegisterEvent*: proc( + self: ptr IElementBehaviorSiteOM, + pchEvent: LPOLESTR, + lFlags: LONG, + plCookie: ptr LONG, + ): HRESULT {.stdcall.} + GetEventCookie*: proc( + self: ptr IElementBehaviorSiteOM, pchEvent: LPOLESTR, plCookie: ptr LONG + ): HRESULT {.stdcall.} + FireEvent*: proc( + self: ptr IElementBehaviorSiteOM, lCookie: LONG, pEventObject: ptr IHTMLEventObj + ): HRESULT {.stdcall.} + CreateEventObject*: proc( + self: ptr IElementBehaviorSiteOM, ppEventObject: ptr ptr IHTMLEventObj + ): HRESULT {.stdcall.} + RegisterName*: + proc(self: ptr IElementBehaviorSiteOM, pchName: LPOLESTR): HRESULT {.stdcall.} + RegisterUrn*: + proc(self: ptr IElementBehaviorSiteOM, pchUrn: LPOLESTR): HRESULT {.stdcall.} + IElementBehaviorSiteOM2* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteOM2Vtbl + IElementBehaviorSiteOM2Vtbl* {.pure, inheritable.} = object of IElementBehaviorSiteOMVtbl - GetDefaults*: proc(self: ptr IElementBehaviorSiteOM2, ppDefaults: ptr ptr IHTMLElementDefaults): HRESULT {.stdcall.} + GetDefaults*: proc( + self: ptr IElementBehaviorSiteOM2, ppDefaults: ptr ptr IHTMLElementDefaults + ): HRESULT {.stdcall.} + IElementBehaviorRender* {.pure.} = object lpVtbl*: ptr IElementBehaviorRenderVtbl + IElementBehaviorRenderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Draw*: proc(self: ptr IElementBehaviorRender, hdc: HDC, lLayer: LONG, pRect: ptr RECT, pReserved: ptr IUnknown): HRESULT {.stdcall.} - GetRenderInfo*: proc(self: ptr IElementBehaviorRender, plRenderInfo: ptr LONG): HRESULT {.stdcall.} - HitTestPoint*: proc(self: ptr IElementBehaviorRender, pPoint: ptr POINT, pReserved: ptr IUnknown, pbHit: ptr WINBOOL): HRESULT {.stdcall.} + Draw*: proc( + self: ptr IElementBehaviorRender, + hdc: HDC, + lLayer: LONG, + pRect: ptr RECT, + pReserved: ptr IUnknown, + ): HRESULT {.stdcall.} + GetRenderInfo*: proc( + self: ptr IElementBehaviorRender, plRenderInfo: ptr LONG + ): HRESULT {.stdcall.} + HitTestPoint*: proc( + self: ptr IElementBehaviorRender, + pPoint: ptr POINT, + pReserved: ptr IUnknown, + pbHit: ptr WINBOOL, + ): HRESULT {.stdcall.} + IElementBehaviorSiteRender* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteRenderVtbl + IElementBehaviorSiteRenderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Invalidate*: proc(self: ptr IElementBehaviorSiteRender, pRect: ptr RECT): HRESULT {.stdcall.} - InvalidateRenderInfo*: proc(self: ptr IElementBehaviorSiteRender): HRESULT {.stdcall.} + Invalidate*: + proc(self: ptr IElementBehaviorSiteRender, pRect: ptr RECT): HRESULT {.stdcall.} + InvalidateRenderInfo*: + proc(self: ptr IElementBehaviorSiteRender): HRESULT {.stdcall.} InvalidateStyle*: proc(self: ptr IElementBehaviorSiteRender): HRESULT {.stdcall.} + IElementBehaviorCategory* {.pure.} = object lpVtbl*: ptr IElementBehaviorCategoryVtbl + IElementBehaviorCategoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCategory*: proc(self: ptr IElementBehaviorCategory, ppchCategory: ptr LPOLESTR): HRESULT {.stdcall.} + GetCategory*: proc( + self: ptr IElementBehaviorCategory, ppchCategory: ptr LPOLESTR + ): HRESULT {.stdcall.} + IElementBehaviorSiteCategory* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteCategoryVtbl + IElementBehaviorSiteCategoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRelatedBehaviors*: proc(self: ptr IElementBehaviorSiteCategory, lDirection: LONG, pchCategory: LPOLESTR, ppEnumerator: ptr ptr IEnumUnknown): HRESULT {.stdcall.} + GetRelatedBehaviors*: proc( + self: ptr IElementBehaviorSiteCategory, + lDirection: LONG, + pchCategory: LPOLESTR, + ppEnumerator: ptr ptr IEnumUnknown, + ): HRESULT {.stdcall.} + IElementBehaviorSubmit* {.pure.} = object lpVtbl*: ptr IElementBehaviorSubmitVtbl + IElementBehaviorSubmitVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSubmitInfo*: proc(self: ptr IElementBehaviorSubmit, pSubmitData: ptr IHTMLSubmitData): HRESULT {.stdcall.} + GetSubmitInfo*: proc( + self: ptr IElementBehaviorSubmit, pSubmitData: ptr IHTMLSubmitData + ): HRESULT {.stdcall.} Reset*: proc(self: ptr IElementBehaviorSubmit): HRESULT {.stdcall.} + IElementBehaviorFocus* {.pure.} = object lpVtbl*: ptr IElementBehaviorFocusVtbl + IElementBehaviorFocusVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetFocusRect*: proc(self: ptr IElementBehaviorFocus, pRect: ptr RECT): HRESULT {.stdcall.} + GetFocusRect*: + proc(self: ptr IElementBehaviorFocus, pRect: ptr RECT): HRESULT {.stdcall.} + IElementBehaviorLayout* {.pure.} = object lpVtbl*: ptr IElementBehaviorLayoutVtbl + IElementBehaviorLayoutVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSize*: proc(self: ptr IElementBehaviorLayout, dwFlags: LONG, sizeContent: SIZE, pptTranslateBy: ptr POINT, pptTopLeft: ptr POINT, psizeProposed: ptr SIZE): HRESULT {.stdcall.} - GetLayoutInfo*: proc(self: ptr IElementBehaviorLayout, plLayoutInfo: ptr LONG): HRESULT {.stdcall.} - GetPosition*: proc(self: ptr IElementBehaviorLayout, lFlags: LONG, pptTopLeft: ptr POINT): HRESULT {.stdcall.} - MapSize*: proc(self: ptr IElementBehaviorLayout, psizeIn: ptr SIZE, prcOut: ptr RECT): HRESULT {.stdcall.} + GetSize*: proc( + self: ptr IElementBehaviorLayout, + dwFlags: LONG, + sizeContent: SIZE, + pptTranslateBy: ptr POINT, + pptTopLeft: ptr POINT, + psizeProposed: ptr SIZE, + ): HRESULT {.stdcall.} + GetLayoutInfo*: proc( + self: ptr IElementBehaviorLayout, plLayoutInfo: ptr LONG + ): HRESULT {.stdcall.} + GetPosition*: proc( + self: ptr IElementBehaviorLayout, lFlags: LONG, pptTopLeft: ptr POINT + ): HRESULT {.stdcall.} + MapSize*: proc( + self: ptr IElementBehaviorLayout, psizeIn: ptr SIZE, prcOut: ptr RECT + ): HRESULT {.stdcall.} + IElementBehaviorLayout2* {.pure.} = object lpVtbl*: ptr IElementBehaviorLayout2Vtbl + IElementBehaviorLayout2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetTextDescent*: proc(self: ptr IElementBehaviorLayout2, plDescent: ptr LONG): HRESULT {.stdcall.} + GetTextDescent*: + proc(self: ptr IElementBehaviorLayout2, plDescent: ptr LONG): HRESULT {.stdcall.} + IElementBehaviorSiteLayout* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteLayoutVtbl + IElementBehaviorSiteLayoutVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InvalidateLayoutInfo*: proc(self: ptr IElementBehaviorSiteLayout): HRESULT {.stdcall.} + InvalidateLayoutInfo*: + proc(self: ptr IElementBehaviorSiteLayout): HRESULT {.stdcall.} InvalidateSize*: proc(self: ptr IElementBehaviorSiteLayout): HRESULT {.stdcall.} - GetMediaResolution*: proc(self: ptr IElementBehaviorSiteLayout, psizeResolution: ptr SIZE): HRESULT {.stdcall.} + GetMediaResolution*: proc( + self: ptr IElementBehaviorSiteLayout, psizeResolution: ptr SIZE + ): HRESULT {.stdcall.} + IElementBehaviorSiteLayout2* {.pure.} = object lpVtbl*: ptr IElementBehaviorSiteLayout2Vtbl + IElementBehaviorSiteLayout2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetFontInfo*: proc(self: ptr IElementBehaviorSiteLayout2, plf: ptr LOGFONTW): HRESULT {.stdcall.} + GetFontInfo*: proc( + self: ptr IElementBehaviorSiteLayout2, plf: ptr LOGFONTW + ): HRESULT {.stdcall.} + IHostBehaviorInit* {.pure.} = object lpVtbl*: ptr IHostBehaviorInitVtbl + IHostBehaviorInitVtbl* {.pure, inheritable.} = object of IUnknownVtbl PopulateNamespaceTable*: proc(self: ptr IHostBehaviorInit): HRESULT {.stdcall.} + ISurfacePresenter* {.pure.} = object lpVtbl*: ptr ISurfacePresenterVtbl + ISurfacePresenterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Present*: proc(self: ptr ISurfacePresenter, uBuffer: UINT, pDirty: ptr RECT): HRESULT {.stdcall.} - GetBuffer*: proc(self: ptr ISurfacePresenter, backBufferIndex: UINT, riid: REFIID, ppBuffer: ptr pointer): HRESULT {.stdcall.} - IsCurrent*: proc(self: ptr ISurfacePresenter, pIsCurrent: ptr WINBOOL): HRESULT {.stdcall.} + Present*: proc( + self: ptr ISurfacePresenter, uBuffer: UINT, pDirty: ptr RECT + ): HRESULT {.stdcall.} + GetBuffer*: proc( + self: ptr ISurfacePresenter, + backBufferIndex: UINT, + riid: REFIID, + ppBuffer: ptr pointer, + ): HRESULT {.stdcall.} + IsCurrent*: + proc(self: ptr ISurfacePresenter, pIsCurrent: ptr WINBOOL): HRESULT {.stdcall.} + IViewObjectPresentSite* {.pure.} = object lpVtbl*: ptr IViewObjectPresentSiteVtbl + IViewObjectPresentSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateSurfacePresenter*: proc(self: ptr IViewObjectPresentSite, pDevice: ptr IUnknown, width: UINT, height: UINT, backBufferCount: UINT, format: DXGI_FORMAT, mode: VIEW_OBJECT_ALPHA_MODE, ppQueue: ptr ptr ISurfacePresenter): HRESULT {.stdcall.} - IsHardwareComposition*: proc(self: ptr IViewObjectPresentSite, pIsHardwareComposition: ptr WINBOOL): HRESULT {.stdcall.} - SetCompositionMode*: proc(self: ptr IViewObjectPresentSite, mode: VIEW_OBJECT_COMPOSITION_MODE): HRESULT {.stdcall.} + CreateSurfacePresenter*: proc( + self: ptr IViewObjectPresentSite, + pDevice: ptr IUnknown, + width: UINT, + height: UINT, + backBufferCount: UINT, + format: DXGI_FORMAT, + mode: VIEW_OBJECT_ALPHA_MODE, + ppQueue: ptr ptr ISurfacePresenter, + ): HRESULT {.stdcall.} + IsHardwareComposition*: proc( + self: ptr IViewObjectPresentSite, pIsHardwareComposition: ptr WINBOOL + ): HRESULT {.stdcall.} + SetCompositionMode*: proc( + self: ptr IViewObjectPresentSite, mode: VIEW_OBJECT_COMPOSITION_MODE + ): HRESULT {.stdcall.} + ICanvasPixelArrayData* {.pure.} = object lpVtbl*: ptr ICanvasPixelArrayDataVtbl + ICanvasPixelArrayDataVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetBufferPointer*: proc(self: ptr ICanvasPixelArrayData, ppBuffer: ptr ptr BYTE, pBufferLength: ptr ULONG): HRESULT {.stdcall.} + GetBufferPointer*: proc( + self: ptr ICanvasPixelArrayData, ppBuffer: ptr ptr BYTE, pBufferLength: ptr ULONG + ): HRESULT {.stdcall.} + IViewObjectPrint* {.pure.} = object lpVtbl*: ptr IViewObjectPrintVtbl + IViewObjectPrintVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPrintBitmap*: proc(self: ptr IViewObjectPrint, ppPrintBitmap: ptr ptr IUnknown): HRESULT {.stdcall.} + GetPrintBitmap*: proc( + self: ptr IViewObjectPrint, ppPrintBitmap: ptr ptr IUnknown + ): HRESULT {.stdcall.} + IViewObjectPresentNotifySite* {.pure.} = object lpVtbl*: ptr IViewObjectPresentNotifySiteVtbl + IViewObjectPresentNotifySiteVtbl* {.pure, inheritable.} = object of IViewObjectPresentSiteVtbl RequestFrame*: proc(self: ptr IViewObjectPresentNotifySite): HRESULT {.stdcall.} + IViewObjectPresentNotify* {.pure.} = object lpVtbl*: ptr IViewObjectPresentNotifyVtbl + IViewObjectPresentNotifyVtbl* {.pure, inheritable.} = object of IUnknownVtbl OnPreRender*: proc(self: ptr IViewObjectPresentNotify): HRESULT {.stdcall.} + ITrackingProtection* {.pure.} = object lpVtbl*: ptr ITrackingProtectionVtbl + ITrackingProtectionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EvaluateUrl*: proc(self: ptr ITrackingProtection, bstrUrl: BSTR, pfAllowed: ptr WINBOOL): HRESULT {.stdcall.} - GetEnabled*: proc(self: ptr ITrackingProtection, pfEnabled: ptr WINBOOL): HRESULT {.stdcall.} + EvaluateUrl*: proc( + self: ptr ITrackingProtection, bstrUrl: BSTR, pfAllowed: ptr WINBOOL + ): HRESULT {.stdcall.} + GetEnabled*: + proc(self: ptr ITrackingProtection, pfEnabled: ptr WINBOOL): HRESULT {.stdcall.} + IHostDialogHelper* {.pure.} = object lpVtbl*: ptr IHostDialogHelperVtbl + IHostDialogHelperVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShowHTMLDialog*: proc(self: ptr IHostDialogHelper, hwndParent: HWND, pMk: ptr IMoniker, pvarArgIn: ptr VARIANT, pchOptions: ptr WCHAR, pvarArgOut: ptr VARIANT, punkHost: ptr IUnknown): HRESULT {.stdcall.} + ShowHTMLDialog*: proc( + self: ptr IHostDialogHelper, + hwndParent: HWND, + pMk: ptr IMoniker, + pvarArgIn: ptr VARIANT, + pchOptions: ptr WCHAR, + pvarArgOut: ptr VARIANT, + punkHost: ptr IUnknown, + ): HRESULT {.stdcall.} + IDocHostUIHandler* {.pure.} = object lpVtbl*: ptr IDocHostUIHandlerVtbl + IDocHostUIHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShowContextMenu*: proc(self: ptr IDocHostUIHandler, dwID: DWORD, ppt: ptr POINT, pcmdtReserved: ptr IUnknown, pdispReserved: ptr IDispatch): HRESULT {.stdcall.} - GetHostInfo*: proc(self: ptr IDocHostUIHandler, pInfo: ptr DOCHOSTUIINFO): HRESULT {.stdcall.} - ShowUI*: proc(self: ptr IDocHostUIHandler, dwID: DWORD, pActiveObject: ptr IOleInPlaceActiveObject, pCommandTarget: ptr IOleCommandTarget, pFrame: ptr IOleInPlaceFrame, pDoc: ptr IOleInPlaceUIWindow): HRESULT {.stdcall.} + ShowContextMenu*: proc( + self: ptr IDocHostUIHandler, + dwID: DWORD, + ppt: ptr POINT, + pcmdtReserved: ptr IUnknown, + pdispReserved: ptr IDispatch, + ): HRESULT {.stdcall.} + GetHostInfo*: + proc(self: ptr IDocHostUIHandler, pInfo: ptr DOCHOSTUIINFO): HRESULT {.stdcall.} + ShowUI*: proc( + self: ptr IDocHostUIHandler, + dwID: DWORD, + pActiveObject: ptr IOleInPlaceActiveObject, + pCommandTarget: ptr IOleCommandTarget, + pFrame: ptr IOleInPlaceFrame, + pDoc: ptr IOleInPlaceUIWindow, + ): HRESULT {.stdcall.} HideUI*: proc(self: ptr IDocHostUIHandler): HRESULT {.stdcall.} UpdateUI*: proc(self: ptr IDocHostUIHandler): HRESULT {.stdcall.} - EnableModeless*: proc(self: ptr IDocHostUIHandler, fEnable: WINBOOL): HRESULT {.stdcall.} - OnDocWindowActivate*: proc(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.stdcall.} - OnFrameWindowActivate*: proc(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.stdcall.} - ResizeBorder*: proc(self: ptr IDocHostUIHandler, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fRameWindow: WINBOOL): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IDocHostUIHandler, lpMsg: LPMSG, pguidCmdGroup: ptr GUID, nCmdID: DWORD): HRESULT {.stdcall.} - GetOptionKeyPath*: proc(self: ptr IDocHostUIHandler, pchKey: ptr LPOLESTR, dw: DWORD): HRESULT {.stdcall.} - GetDropTarget*: proc(self: ptr IDocHostUIHandler, pDropTarget: ptr IDropTarget, ppDropTarget: ptr ptr IDropTarget): HRESULT {.stdcall.} - GetExternal*: proc(self: ptr IDocHostUIHandler, ppDispatch: ptr ptr IDispatch): HRESULT {.stdcall.} - TranslateUrl*: proc(self: ptr IDocHostUIHandler, dwTranslate: DWORD, pchURLIn: LPWSTR, ppchURLOut: ptr LPWSTR): HRESULT {.stdcall.} - FilterDataObject*: proc(self: ptr IDocHostUIHandler, pDO: ptr IDataObject, ppDORet: ptr ptr IDataObject): HRESULT {.stdcall.} + EnableModeless*: + proc(self: ptr IDocHostUIHandler, fEnable: WINBOOL): HRESULT {.stdcall.} + OnDocWindowActivate*: + proc(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.stdcall.} + OnFrameWindowActivate*: + proc(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.stdcall.} + ResizeBorder*: proc( + self: ptr IDocHostUIHandler, + prcBorder: LPCRECT, + pUIWindow: ptr IOleInPlaceUIWindow, + fRameWindow: WINBOOL, + ): HRESULT {.stdcall.} + TranslateAccelerator*: proc( + self: ptr IDocHostUIHandler, lpMsg: LPMSG, pguidCmdGroup: ptr GUID, nCmdID: DWORD + ): HRESULT {.stdcall.} + GetOptionKeyPath*: proc( + self: ptr IDocHostUIHandler, pchKey: ptr LPOLESTR, dw: DWORD + ): HRESULT {.stdcall.} + GetDropTarget*: proc( + self: ptr IDocHostUIHandler, + pDropTarget: ptr IDropTarget, + ppDropTarget: ptr ptr IDropTarget, + ): HRESULT {.stdcall.} + GetExternal*: proc( + self: ptr IDocHostUIHandler, ppDispatch: ptr ptr IDispatch + ): HRESULT {.stdcall.} + TranslateUrl*: proc( + self: ptr IDocHostUIHandler, + dwTranslate: DWORD, + pchURLIn: LPWSTR, + ppchURLOut: ptr LPWSTR, + ): HRESULT {.stdcall.} + FilterDataObject*: proc( + self: ptr IDocHostUIHandler, pDO: ptr IDataObject, ppDORet: ptr ptr IDataObject + ): HRESULT {.stdcall.} + IDocHostUIHandler2* {.pure.} = object lpVtbl*: ptr IDocHostUIHandler2Vtbl + IDocHostUIHandler2Vtbl* {.pure, inheritable.} = object of IDocHostUIHandlerVtbl - GetOverrideKeyPath*: proc(self: ptr IDocHostUIHandler2, pchKey: ptr LPOLESTR, dw: DWORD): HRESULT {.stdcall.} + GetOverrideKeyPath*: proc( + self: ptr IDocHostUIHandler2, pchKey: ptr LPOLESTR, dw: DWORD + ): HRESULT {.stdcall.} + ICustomDoc* {.pure.} = object lpVtbl*: ptr ICustomDocVtbl + ICustomDocVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetUIHandler*: proc(self: ptr ICustomDoc, pUIHandler: ptr IDocHostUIHandler): HRESULT {.stdcall.} + SetUIHandler*: + proc(self: ptr ICustomDoc, pUIHandler: ptr IDocHostUIHandler): HRESULT {.stdcall.} + IDocHostShowUI* {.pure.} = object lpVtbl*: ptr IDocHostShowUIVtbl + IDocHostShowUIVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShowMessage*: proc(self: ptr IDocHostShowUI, hwnd: HWND, lpstrText: LPOLESTR, lpstrCaption: LPOLESTR, dwType: DWORD, lpstrHelpFile: LPOLESTR, dwHelpContext: DWORD, plResult: ptr LRESULT): HRESULT {.stdcall.} - ShowHelp*: proc(self: ptr IDocHostShowUI, hwnd: HWND, pszHelpFile: LPOLESTR, uCommand: UINT, dwData: DWORD, ptMouse: POINT, pDispatchObjectHit: ptr IDispatch): HRESULT {.stdcall.} + ShowMessage*: proc( + self: ptr IDocHostShowUI, + hwnd: HWND, + lpstrText: LPOLESTR, + lpstrCaption: LPOLESTR, + dwType: DWORD, + lpstrHelpFile: LPOLESTR, + dwHelpContext: DWORD, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + ShowHelp*: proc( + self: ptr IDocHostShowUI, + hwnd: HWND, + pszHelpFile: LPOLESTR, + uCommand: UINT, + dwData: DWORD, + ptMouse: POINT, + pDispatchObjectHit: ptr IDispatch, + ): HRESULT {.stdcall.} + IHTMLOMWindowServices* {.pure.} = object lpVtbl*: ptr IHTMLOMWindowServicesVtbl + IHTMLOMWindowServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - moveTo*: proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} - moveBy*: proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} - resizeTo*: proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} - resizeBy*: proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} -proc GetDispID*(self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD, pid: ptr DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDispID(self, bstrName, grfdex, pid) -proc InvokeEx*(self: ptr IDispatchEx, id: DISPID, lcid: LCID, wFlags: WORD, pdp: ptr DISPPARAMS, pvarRes: ptr VARIANT, pei: ptr EXCEPINFO, pspCaller: ptr IServiceProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeEx(self, id, lcid, wFlags, pdp, pvarRes, pei, pspCaller) -proc DeleteMemberByName*(self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteMemberByName(self, bstrName, grfdex) -proc DeleteMemberByDispID*(self: ptr IDispatchEx, id: DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteMemberByDispID(self, id) -proc GetMemberProperties*(self: ptr IDispatchEx, id: DISPID, grfdexFetch: DWORD, pgrfdex: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMemberProperties(self, id, grfdexFetch, pgrfdex) -proc GetMemberName*(self: ptr IDispatchEx, id: DISPID, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMemberName(self, id, pbstrName) -proc GetNextDispID*(self: ptr IDispatchEx, grfdex: DWORD, id: DISPID, pid: ptr DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextDispID(self, grfdex, id, pid) -proc GetNameSpaceParent*(self: ptr IDispatchEx, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNameSpaceParent(self, ppunk) -proc QueryErrorInfo*(self: ptr IDispError, guidErrorType: GUID, ppde: ptr ptr IDispError): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryErrorInfo(self, guidErrorType, ppde) -proc GetNext*(self: ptr IDispError, ppde: ptr ptr IDispError): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNext(self, ppde) -proc GetHresult*(self: ptr IDispError, phr: ptr HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHresult(self, phr) -proc GetSource*(self: ptr IDispError, pbstrSource: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSource(self, pbstrSource) -proc GetHelpInfo*(self: ptr IDispError, pbstrFileName: ptr BSTR, pdwContext: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHelpInfo(self, pbstrFileName, pdwContext) -proc GetDescription*(self: ptr IDispError, pbstrDescription: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescription(self, pbstrDescription) -proc ChangeType*(self: ptr IVariantChangeType, pvarDst: ptr VARIANT, pvarSrc: ptr VARIANT, lcid: LCID, vtNew: VARTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ChangeType(self, pvarDst, pvarSrc, lcid, vtNew) -proc IsEqualObject*(self: ptr IObjectIdentity, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqualObject(self, punk) -proc CanHandleException*(self: ptr ICanHandleException, pExcepInfo: ptr EXCEPINFO, pvar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanHandleException(self, pExcepInfo, pvar) -proc GetCurrentSourceContext*(self: ptr IProvideRuntimeContext, pdwContext: ptr DWORD_PTR, pfExecutingGlobalCode: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSourceContext(self, pdwContext, pfExecutingGlobalCode) -proc get_length*(self: ptr IHTMLFiltersCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLFiltersCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLFiltersCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult) -proc get_constructor*(self: ptr IHTMLDOMConstructor, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_constructor(self, p) -proc LookupGetter*(self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LookupGetter(self, propname, ppDispHandler) -proc LookupSetter*(self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LookupSetter(self, propname, ppDispHandler) -proc DefineGetter*(self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineGetter(self, propname, pdispHandler) -proc DefineSetter*(self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineSetter(self, propname, pdispHandler) -proc get_length*(self: ptr IHTMLCSSStyleDeclaration, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_parentRule*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentRule(self, p) -proc getPropertyValue*(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pbstrPropertyValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPropertyValue(self, bstrPropertyName, pbstrPropertyValue) -proc getPropertyPriority*(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pbstrPropertyPriority: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPropertyPriority(self, bstrPropertyName, pbstrPropertyPriority) -proc removeProperty*(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pbstrPropertyValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeProperty(self, bstrPropertyName, pbstrPropertyValue) -proc setProperty*(self: ptr IHTMLCSSStyleDeclaration, bstrPropertyName: BSTR, pvarPropertyValue: ptr VARIANT, pvarPropertyPriority: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setProperty(self, bstrPropertyName, pvarPropertyValue, pvarPropertyPriority) -proc item*(self: ptr IHTMLCSSStyleDeclaration, index: LONG, pbstrPropertyName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pbstrPropertyName) -proc put_fontFamily*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontFamily(self, v) -proc get_fontFamily*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFamily(self, p) -proc put_fontStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontStyle(self, v) -proc get_fontStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStyle(self, p) -proc put_fontVariant*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontVariant(self, v) -proc get_fontVariant*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontVariant(self, p) -proc put_fontWeight*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontWeight(self, v) -proc get_fontWeight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p) -proc put_fontSize*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontSize(self, v) -proc get_fontSize*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p) -proc put_font*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_font(self, v) -proc get_font*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_font(self, p) -proc put_color*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v) -proc get_color*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc put_background*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_backgroundColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundColor(self, v) -proc get_backgroundColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p) -proc put_backgroundImage*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundImage(self, v) -proc get_backgroundImage*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundImage(self, p) -proc put_backgroundRepeat*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundRepeat(self, v) -proc get_backgroundRepeat*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundRepeat(self, p) -proc put_backgroundAttachment*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundAttachment(self, v) -proc get_backgroundAttachment*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundAttachment(self, p) -proc put_backgroundPosition*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPosition(self, v) -proc get_backgroundPosition*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPosition(self, p) -proc put_backgroundPositionX*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionX(self, v) -proc get_backgroundPositionX*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionX(self, p) -proc put_backgroundPositionY*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionY(self, v) -proc get_backgroundPositionY*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionY(self, p) -proc put_wordSpacing*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordSpacing(self, v) -proc get_wordSpacing*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordSpacing(self, p) -proc put_letterSpacing*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_letterSpacing(self, v) -proc get_letterSpacing*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_letterSpacing(self, p) -proc put_textDecoration*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecoration(self, v) -proc get_textDecoration*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p) -proc put_verticalAlign*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_verticalAlign(self, v) -proc get_verticalAlign*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_verticalAlign(self, p) -proc put_textTransform*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textTransform(self, v) -proc get_textTransform*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textTransform(self, p) -proc put_textAlign*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlign(self, v) -proc get_textAlign*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p) -proc put_textIndent*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textIndent(self, v) -proc get_textIndent*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textIndent(self, p) -proc put_lineHeight*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineHeight(self, v) -proc get_lineHeight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineHeight(self, p) -proc put_marginTop*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginTop(self, v) -proc get_marginTop*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p) -proc put_marginRight*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginRight(self, v) -proc get_marginRight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p) -proc put_marginBottom*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginBottom(self, v) -proc get_marginBottom*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p) -proc put_marginLeft*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginLeft(self, v) -proc get_marginLeft*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p) -proc put_margin*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_margin(self, v) -proc get_margin*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_margin(self, p) -proc put_paddingTop*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingTop(self, v) -proc get_paddingTop*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingTop(self, p) -proc put_paddingRight*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingRight(self, v) -proc get_paddingRight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingRight(self, p) -proc put_paddingBottom*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingBottom(self, v) -proc get_paddingBottom*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingBottom(self, p) -proc put_paddingLeft*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingLeft(self, v) -proc get_paddingLeft*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingLeft(self, p) -proc put_padding*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_padding(self, v) -proc get_padding*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_padding(self, p) -proc put_border*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_borderTop*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTop(self, v) -proc get_borderTop*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTop(self, p) -proc put_borderRight*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRight(self, v) -proc get_borderRight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRight(self, p) -proc put_borderBottom*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottom(self, v) -proc get_borderBottom*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottom(self, p) -proc put_borderLeft*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeft(self, v) -proc get_borderLeft*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeft(self, p) -proc put_borderColor*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_borderTopColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopColor(self, v) -proc get_borderTopColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopColor(self, p) -proc put_borderRightColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightColor(self, v) -proc get_borderRightColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightColor(self, p) -proc put_borderBottomColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomColor(self, v) -proc get_borderBottomColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomColor(self, p) -proc put_borderLeftColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftColor(self, v) -proc get_borderLeftColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftColor(self, p) -proc put_borderWidth*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderWidth(self, v) -proc get_borderWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderWidth(self, p) -proc put_borderTopWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopWidth(self, v) -proc get_borderTopWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopWidth(self, p) -proc put_borderRightWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightWidth(self, v) -proc get_borderRightWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightWidth(self, p) -proc put_borderBottomWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomWidth(self, v) -proc get_borderBottomWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomWidth(self, p) -proc put_borderLeftWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftWidth(self, v) -proc get_borderLeftWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftWidth(self, p) -proc put_borderStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderStyle(self, v) -proc get_borderStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p) -proc put_borderTopStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopStyle(self, v) -proc get_borderTopStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopStyle(self, p) -proc put_borderRightStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightStyle(self, v) -proc get_borderRightStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightStyle(self, p) -proc put_borderBottomStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomStyle(self, v) -proc get_borderBottomStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomStyle(self, p) -proc put_borderLeftStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftStyle(self, v) -proc get_borderLeftStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftStyle(self, p) -proc put_width*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_styleFloat*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_styleFloat(self, v) -proc get_styleFloat*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleFloat(self, p) -proc put_clear*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v) -proc get_clear*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p) -proc put_display*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_display(self, v) -proc get_display*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_display(self, p) -proc put_visibility*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_visibility(self, v) -proc get_visibility*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p) -proc put_listStyleType*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleType(self, v) -proc get_listStyleType*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleType(self, p) -proc put_listStylePosition*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStylePosition(self, v) -proc get_listStylePosition*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStylePosition(self, p) -proc put_listStyleImage*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleImage(self, v) -proc get_listStyleImage*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleImage(self, p) -proc put_listStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyle(self, v) -proc get_listStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyle(self, p) -proc put_whiteSpace*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_whiteSpace(self, v) -proc get_whiteSpace*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whiteSpace(self, p) -proc put_top*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_top(self, v) -proc get_top*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p) -proc put_left*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_left(self, v) -proc get_left*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p) -proc put_zIndex*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zIndex(self, v) -proc get_zIndex*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zIndex(self, p) -proc put_overflow*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflow(self, v) -proc get_overflow*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflow(self, p) -proc put_pageBreakBefore*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakBefore(self, v) -proc get_pageBreakBefore*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakBefore(self, p) -proc put_pageBreakAfter*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakAfter(self, v) -proc get_pageBreakAfter*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakAfter(self, p) -proc put_cssText*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v) -proc get_cssText*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p) -proc put_cursor*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cursor(self, v) -proc get_cursor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cursor(self, p) -proc put_clip*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clip(self, v) -proc get_clip*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clip(self, p) -proc put_filter*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_filter(self, v) -proc get_filter*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p) -proc put_tableLayout*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tableLayout(self, v) -proc get_tableLayout*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tableLayout(self, p) -proc put_borderCollapse*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderCollapse(self, v) -proc get_borderCollapse*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderCollapse(self, p) -proc put_direction*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_direction(self, v) -proc get_direction*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_direction(self, p) -proc put_behavior*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_behavior(self, v) -proc get_behavior*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behavior(self, p) -proc put_position*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_position(self, v) -proc get_position*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc put_unicodeBidi*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_unicodeBidi(self, v) -proc get_unicodeBidi*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unicodeBidi(self, p) -proc put_bottom*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bottom(self, v) -proc get_bottom*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bottom(self, p) -proc put_right*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_right(self, v) -proc get_right*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_right(self, p) -proc put_imeMode*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_imeMode(self, v) -proc get_imeMode*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeMode(self, p) -proc put_rubyAlign*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyAlign(self, v) -proc get_rubyAlign*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyAlign(self, p) -proc put_rubyPosition*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyPosition(self, v) -proc get_rubyPosition*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyPosition(self, p) -proc put_rubyOverhang*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyOverhang(self, v) -proc get_rubyOverhang*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyOverhang(self, p) -proc put_layoutGridChar*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridChar(self, v) -proc get_layoutGridChar*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridChar(self, p) -proc put_layoutGridLine*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridLine(self, v) -proc get_layoutGridLine*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridLine(self, p) -proc put_layoutGridMode*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridMode(self, v) -proc get_layoutGridMode*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridMode(self, p) -proc put_layoutGridType*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridType(self, v) -proc get_layoutGridType*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridType(self, p) -proc put_layoutGrid*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGrid(self, v) -proc get_layoutGrid*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGrid(self, p) -proc put_textAutospace*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAutospace(self, v) -proc get_textAutospace*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAutospace(self, p) -proc put_wordBreak*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordBreak(self, v) -proc get_wordBreak*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordBreak(self, p) -proc put_lineBreak*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineBreak(self, v) -proc get_lineBreak*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineBreak(self, p) -proc put_textJustify*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textJustify(self, v) -proc get_textJustify*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustify(self, p) -proc put_textJustifyTrim*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textJustifyTrim(self, v) -proc get_textJustifyTrim*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustifyTrim(self, p) -proc put_textKashida*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textKashida(self, v) -proc get_textKashida*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashida(self, p) -proc put_overflowX*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflowX(self, v) -proc get_overflowX*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowX(self, p) -proc put_overflowY*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflowY(self, v) -proc get_overflowY*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowY(self, p) -proc put_accelerator*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accelerator(self, v) -proc get_accelerator*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accelerator(self, p) -proc put_layoutFlow*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutFlow(self, v) -proc get_layoutFlow*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutFlow(self, p) -proc put_zoom*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zoom(self, v) -proc get_zoom*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zoom(self, p) -proc put_wordWrap*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordWrap(self, v) -proc get_wordWrap*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordWrap(self, p) -proc put_textUnderlinePosition*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textUnderlinePosition(self, v) -proc get_textUnderlinePosition*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textUnderlinePosition(self, p) -proc put_scrollbarBaseColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarBaseColor(self, v) -proc get_scrollbarBaseColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarBaseColor(self, p) -proc put_scrollbarFaceColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarFaceColor(self, v) -proc get_scrollbarFaceColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarFaceColor(self, p) -proc put_scrollbar3dLightColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbar3dLightColor(self, v) -proc get_scrollbar3dLightColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbar3dLightColor(self, p) -proc put_scrollbarShadowColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarShadowColor(self, v) -proc get_scrollbarShadowColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarShadowColor(self, p) -proc put_scrollbarHighlightColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarHighlightColor(self, v) -proc get_scrollbarHighlightColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarHighlightColor(self, p) -proc put_scrollbarDarkShadowColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarDarkShadowColor(self, v) -proc get_scrollbarDarkShadowColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarDarkShadowColor(self, p) -proc put_scrollbarArrowColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarArrowColor(self, v) -proc get_scrollbarArrowColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarArrowColor(self, p) -proc put_scrollbarTrackColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarTrackColor(self, v) -proc get_scrollbarTrackColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarTrackColor(self, p) -proc put_writingMode*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_writingMode(self, v) -proc get_writingMode*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_writingMode(self, p) -proc put_textAlignLast*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlignLast(self, v) -proc get_textAlignLast*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlignLast(self, p) -proc put_textKashidaSpace*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textKashidaSpace(self, v) -proc get_textKashidaSpace*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashidaSpace(self, p) -proc put_textOverflow*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textOverflow(self, v) -proc get_textOverflow*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textOverflow(self, p) -proc put_minHeight*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minHeight(self, v) -proc get_minHeight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minHeight(self, p) -proc put_msInterpolationMode*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msInterpolationMode(self, v) -proc get_msInterpolationMode*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msInterpolationMode(self, p) -proc put_maxHeight*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxHeight(self, v) -proc get_maxHeight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxHeight(self, p) -proc put_minWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minWidth(self, v) -proc get_minWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minWidth(self, p) -proc put_maxWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxWidth(self, v) -proc get_maxWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxWidth(self, p) -proc put_content*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_content(self, v) -proc get_content*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_content(self, p) -proc put_captionSide*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_captionSide(self, v) -proc get_captionSide*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_captionSide(self, p) -proc put_counterIncrement*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_counterIncrement(self, v) -proc get_counterIncrement*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_counterIncrement(self, p) -proc put_counterReset*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_counterReset(self, v) -proc get_counterReset*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_counterReset(self, p) -proc put_outline*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outline(self, v) -proc get_outline*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outline(self, p) -proc put_outlineWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineWidth(self, v) -proc get_outlineWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineWidth(self, p) -proc put_outlineStyle*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineStyle(self, v) -proc get_outlineStyle*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineStyle(self, p) -proc put_outlineColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineColor(self, v) -proc get_outlineColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineColor(self, p) -proc put_boxSizing*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_boxSizing(self, v) -proc get_boxSizing*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boxSizing(self, p) -proc put_borderSpacing*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderSpacing(self, v) -proc get_borderSpacing*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderSpacing(self, p) -proc put_orphans*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_orphans(self, v) -proc get_orphans*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orphans(self, p) -proc put_widows*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_widows(self, v) -proc get_widows*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_widows(self, p) -proc put_pageBreakInside*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakInside(self, v) -proc get_pageBreakInside*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakInside(self, p) -proc put_emptyCells*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_emptyCells(self, v) -proc get_emptyCells*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_emptyCells(self, p) -proc put_msBlockProgression*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msBlockProgression(self, v) -proc get_msBlockProgression*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msBlockProgression(self, p) -proc put_quotes*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_quotes(self, v) -proc get_quotes*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_quotes(self, p) -proc put_alignmentBaseline*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alignmentBaseline(self, v) -proc get_alignmentBaseline*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alignmentBaseline(self, p) -proc put_baselineShift*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baselineShift(self, v) -proc get_baselineShift*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baselineShift(self, p) -proc put_dominantBaseline*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dominantBaseline(self, v) -proc get_dominantBaseline*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dominantBaseline(self, p) -proc put_fontSizeAdjust*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontSizeAdjust(self, v) -proc get_fontSizeAdjust*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSizeAdjust(self, p) -proc put_fontStretch*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontStretch(self, v) -proc get_fontStretch*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStretch(self, p) -proc put_opacity*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_opacity(self, v) -proc get_opacity*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_opacity(self, p) -proc put_clipPath*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clipPath(self, v) -proc get_clipPath*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipPath(self, p) -proc put_clipRule*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clipRule(self, v) -proc get_clipRule*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipRule(self, p) -proc put_fill*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fill(self, v) -proc get_fill*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fill(self, p) -proc put_fillOpacity*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fillOpacity(self, v) -proc get_fillOpacity*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fillOpacity(self, p) -proc put_fillRule*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fillRule(self, v) -proc get_fillRule*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fillRule(self, p) -proc put_kerning*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_kerning(self, v) -proc get_kerning*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_kerning(self, p) -proc put_marker*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marker(self, v) -proc get_marker*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marker(self, p) -proc put_markerEnd*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_markerEnd(self, v) -proc get_markerEnd*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_markerEnd(self, p) -proc put_markerMid*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_markerMid(self, v) -proc get_markerMid*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_markerMid(self, p) -proc put_markerStart*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_markerStart(self, v) -proc get_markerStart*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_markerStart(self, p) -proc put_mask*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_mask(self, v) -proc get_mask*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mask(self, p) -proc put_pointerEvents*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pointerEvents(self, v) -proc get_pointerEvents*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pointerEvents(self, p) -proc put_stopColor*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_stopColor(self, v) -proc get_stopColor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_stopColor(self, p) -proc put_stopOpacity*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_stopOpacity(self, v) -proc get_stopOpacity*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_stopOpacity(self, p) -proc put_stroke*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_stroke(self, v) -proc get_stroke*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_stroke(self, p) -proc put_strokeDasharray*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeDasharray(self, v) -proc get_strokeDasharray*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeDasharray(self, p) -proc put_strokeDashoffset*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeDashoffset(self, v) -proc get_strokeDashoffset*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeDashoffset(self, p) -proc put_strokeLinecap*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeLinecap(self, v) -proc get_strokeLinecap*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeLinecap(self, p) -proc put_strokeLinejoin*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeLinejoin(self, v) -proc get_strokeLinejoin*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeLinejoin(self, p) -proc put_strokeMiterlimit*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeMiterlimit(self, v) -proc get_strokeMiterlimit*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeMiterlimit(self, p) -proc put_strokeOpacity*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeOpacity(self, v) -proc get_strokeOpacity*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeOpacity(self, p) -proc put_strokeWidth*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeWidth(self, v) -proc get_strokeWidth*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeWidth(self, p) -proc put_textAnchor*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAnchor(self, v) -proc get_textAnchor*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAnchor(self, p) -proc put_glyphOrientationHorizontal*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_glyphOrientationHorizontal(self, v) -proc get_glyphOrientationHorizontal*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_glyphOrientationHorizontal(self, p) -proc put_glyphOrientationVertical*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_glyphOrientationVertical(self, v) -proc get_glyphOrientationVertical*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_glyphOrientationVertical(self, p) -proc put_borderRadius*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRadius(self, v) -proc get_borderRadius*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRadius(self, p) -proc put_borderTopLeftRadius*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopLeftRadius(self, v) -proc get_borderTopLeftRadius*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopLeftRadius(self, p) -proc put_borderTopRightRadius*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopRightRadius(self, v) -proc get_borderTopRightRadius*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopRightRadius(self, p) -proc put_borderBottomRightRadius*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomRightRadius(self, v) -proc get_borderBottomRightRadius*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomRightRadius(self, p) -proc put_borderBottomLeftRadius*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomLeftRadius(self, v) -proc get_borderBottomLeftRadius*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomLeftRadius(self, p) -proc put_clipTop*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clipTop(self, v) -proc get_clipTop*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipTop(self, p) -proc put_clipRight*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clipRight(self, v) -proc get_clipRight*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipRight(self, p) -proc get_clipBottom*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipBottom(self, p) -proc put_clipLeft*(self: ptr IHTMLCSSStyleDeclaration, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clipLeft(self, v) -proc get_clipLeft*(self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipLeft(self, p) -proc put_cssFloat*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssFloat(self, v) -proc get_cssFloat*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssFloat(self, p) -proc put_backgroundClip*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundClip(self, v) -proc get_backgroundClip*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundClip(self, p) -proc put_backgroundOrigin*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundOrigin(self, v) -proc get_backgroundOrigin*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundOrigin(self, p) -proc put_backgroundSize*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundSize(self, v) -proc get_backgroundSize*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundSize(self, p) -proc put_boxShadow*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_boxShadow(self, v) -proc get_boxShadow*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boxShadow(self, p) -proc put_msTransform*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransform(self, v) -proc get_msTransform*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransform(self, p) -proc put_msTransformOrigin*(self: ptr IHTMLCSSStyleDeclaration, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransformOrigin(self, v) -proc get_msTransformOrigin*(self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransformOrigin(self, p) -proc put_msScrollChaining*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollChaining(self, v) -proc get_msScrollChaining*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollChaining(self, p) -proc put_msContentZooming*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZooming(self, v) -proc get_msContentZooming*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZooming(self, p) -proc put_msContentZoomSnapType*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomSnapType(self, v) -proc get_msContentZoomSnapType*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomSnapType(self, p) -proc put_msScrollRails*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollRails(self, v) -proc get_msScrollRails*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollRails(self, p) -proc put_msContentZoomChaining*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomChaining(self, v) -proc get_msContentZoomChaining*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomChaining(self, p) -proc put_msScrollSnapType*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollSnapType(self, v) -proc get_msScrollSnapType*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollSnapType(self, p) -proc put_msContentZoomLimit*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomLimit(self, v) -proc get_msContentZoomLimit*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomLimit(self, p) -proc put_msContentZoomSnap*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomSnap(self, v) -proc get_msContentZoomSnap*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomSnap(self, p) -proc put_msContentZoomSnapPoints*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomSnapPoints(self, v) -proc get_msContentZoomSnapPoints*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomSnapPoints(self, p) -proc put_msContentZoomLimitMin*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomLimitMin(self, v) -proc get_msContentZoomLimitMin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomLimitMin(self, p) -proc put_msContentZoomLimitMax*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msContentZoomLimitMax(self, v) -proc get_msContentZoomLimitMax*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msContentZoomLimitMax(self, p) -proc put_msScrollSnapX*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollSnapX(self, v) -proc get_msScrollSnapX*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollSnapX(self, p) -proc put_msScrollSnapY*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollSnapY(self, v) -proc get_msScrollSnapY*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollSnapY(self, p) -proc put_msScrollSnapPointsX*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollSnapPointsX(self, v) -proc get_msScrollSnapPointsX*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollSnapPointsX(self, p) -proc put_msScrollSnapPointsY*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollSnapPointsY(self, v) -proc get_msScrollSnapPointsY*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollSnapPointsY(self, p) -proc put_msGridColumn*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridColumn(self, v) -proc get_msGridColumn*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridColumn(self, p) -proc put_msGridColumnAlign*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridColumnAlign(self, v) -proc get_msGridColumnAlign*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridColumnAlign(self, p) -proc put_msGridColumns*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridColumns(self, v) -proc get_msGridColumns*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridColumns(self, p) -proc put_msGridColumnSpan*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridColumnSpan(self, v) -proc get_msGridColumnSpan*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridColumnSpan(self, p) -proc put_msGridRow*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridRow(self, v) -proc get_msGridRow*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridRow(self, p) -proc put_msGridRowAlign*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridRowAlign(self, v) -proc get_msGridRowAlign*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridRowAlign(self, p) -proc put_msGridRows*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridRows(self, v) -proc get_msGridRows*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridRows(self, p) -proc put_msGridRowSpan*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msGridRowSpan(self, v) -proc get_msGridRowSpan*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msGridRowSpan(self, p) -proc put_msWrapThrough*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msWrapThrough(self, v) -proc get_msWrapThrough*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msWrapThrough(self, p) -proc put_msWrapMargin*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msWrapMargin(self, v) -proc get_msWrapMargin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msWrapMargin(self, p) -proc put_msWrapFlow*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msWrapFlow(self, v) -proc get_msWrapFlow*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msWrapFlow(self, p) -proc put_msAnimationName*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationName(self, v) -proc get_msAnimationName*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationName(self, p) -proc put_msAnimationDuration*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationDuration(self, v) -proc get_msAnimationDuration*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationDuration(self, p) -proc put_msAnimationTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationTimingFunction(self, v) -proc get_msAnimationTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationTimingFunction(self, p) -proc put_msAnimationDelay*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationDelay(self, v) -proc get_msAnimationDelay*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationDelay(self, p) -proc put_msAnimationDirection*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationDirection(self, v) -proc get_msAnimationDirection*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationDirection(self, p) -proc put_msAnimationPlayState*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationPlayState(self, v) -proc get_msAnimationPlayState*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationPlayState(self, p) -proc put_msAnimationIterationCount*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationIterationCount(self, v) -proc get_msAnimationIterationCount*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationIterationCount(self, p) -proc put_msAnimation*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimation(self, v) -proc get_msAnimation*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimation(self, p) -proc put_msAnimationFillMode*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msAnimationFillMode(self, v) -proc get_msAnimationFillMode*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msAnimationFillMode(self, p) -proc put_colorInterpolationFilters*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_colorInterpolationFilters(self, v) -proc get_colorInterpolationFilters*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_colorInterpolationFilters(self, p) -proc put_columnCount*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnCount(self, v) -proc get_columnCount*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnCount(self, p) -proc put_columnWidth*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnWidth(self, v) -proc get_columnWidth*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnWidth(self, p) -proc put_columnGap*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnGap(self, v) -proc get_columnGap*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnGap(self, p) -proc put_columnFill*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnFill(self, v) -proc get_columnFill*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnFill(self, p) -proc put_columnSpan*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnSpan(self, v) -proc get_columnSpan*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnSpan(self, p) -proc put_columns*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columns(self, v) -proc get_columns*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columns(self, p) -proc put_columnRule*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnRule(self, v) -proc get_columnRule*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnRule(self, p) -proc put_columnRuleColor*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnRuleColor(self, v) -proc get_columnRuleColor*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnRuleColor(self, p) -proc put_columnRuleStyle*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnRuleStyle(self, v) -proc get_columnRuleStyle*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnRuleStyle(self, p) -proc put_columnRuleWidth*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_columnRuleWidth(self, v) -proc get_columnRuleWidth*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_columnRuleWidth(self, p) -proc put_breakBefore*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_breakBefore(self, v) -proc get_breakBefore*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_breakBefore(self, p) -proc put_breakAfter*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_breakAfter(self, v) -proc get_breakAfter*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_breakAfter(self, p) -proc put_breakInside*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_breakInside(self, v) -proc get_breakInside*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_breakInside(self, p) -proc put_floodColor*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_floodColor(self, v) -proc get_floodColor*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_floodColor(self, p) -proc put_floodOpacity*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_floodOpacity(self, v) -proc get_floodOpacity*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_floodOpacity(self, p) -proc put_lightingColor*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lightingColor(self, v) -proc get_lightingColor*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lightingColor(self, p) -proc put_msScrollLimitXMin*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollLimitXMin(self, v) -proc get_msScrollLimitXMin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollLimitXMin(self, p) -proc put_msScrollLimitYMin*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollLimitYMin(self, v) -proc get_msScrollLimitYMin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollLimitYMin(self, p) -proc put_msScrollLimitXMax*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollLimitXMax(self, v) -proc get_msScrollLimitXMax*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollLimitXMax(self, p) -proc put_msScrollLimitYMax*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollLimitYMax(self, v) -proc get_msScrollLimitYMax*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollLimitYMax(self, p) -proc put_msScrollLimit*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollLimit(self, v) -proc get_msScrollLimit*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollLimit(self, p) -proc put_textShadow*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textShadow(self, v) -proc get_textShadow*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textShadow(self, p) -proc put_msFlowFrom*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlowFrom(self, v) -proc get_msFlowFrom*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlowFrom(self, p) -proc put_msFlowInto*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlowInto(self, v) -proc get_msFlowInto*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlowInto(self, p) -proc put_msHyphens*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msHyphens(self, v) -proc get_msHyphens*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msHyphens(self, p) -proc put_msHyphenateLimitZone*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msHyphenateLimitZone(self, v) -proc get_msHyphenateLimitZone*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msHyphenateLimitZone(self, p) -proc put_msHyphenateLimitChars*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msHyphenateLimitChars(self, v) -proc get_msHyphenateLimitChars*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msHyphenateLimitChars(self, p) -proc put_msHyphenateLimitLines*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msHyphenateLimitLines(self, v) -proc get_msHyphenateLimitLines*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msHyphenateLimitLines(self, p) -proc put_msHighContrastAdjust*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msHighContrastAdjust(self, v) -proc get_msHighContrastAdjust*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msHighContrastAdjust(self, p) -proc put_enableBackground*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_enableBackground(self, v) -proc get_enableBackground*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_enableBackground(self, p) -proc put_msFontFeatureSettings*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFontFeatureSettings(self, v) -proc get_msFontFeatureSettings*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFontFeatureSettings(self, p) -proc put_msUserSelect*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msUserSelect(self, v) -proc get_msUserSelect*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msUserSelect(self, p) -proc put_msOverflowStyle*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msOverflowStyle(self, v) -proc get_msOverflowStyle*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msOverflowStyle(self, p) -proc put_msTransformStyle*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransformStyle(self, v) -proc get_msTransformStyle*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransformStyle(self, p) -proc put_msBackfaceVisibility*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msBackfaceVisibility(self, v) -proc get_msBackfaceVisibility*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msBackfaceVisibility(self, p) -proc put_msPerspective*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msPerspective(self, v) -proc get_msPerspective*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msPerspective(self, p) -proc put_msPerspectiveOrigin*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msPerspectiveOrigin(self, v) -proc get_msPerspectiveOrigin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msPerspectiveOrigin(self, p) -proc put_msTransitionProperty*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransitionProperty(self, v) -proc get_msTransitionProperty*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransitionProperty(self, p) -proc put_msTransitionDuration*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransitionDuration(self, v) -proc get_msTransitionDuration*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransitionDuration(self, p) -proc put_msTransitionTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransitionTimingFunction(self, v) -proc get_msTransitionTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransitionTimingFunction(self, p) -proc put_msTransitionDelay*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransitionDelay(self, v) -proc get_msTransitionDelay*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransitionDelay(self, p) -proc put_msTransition*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTransition(self, v) -proc get_msTransition*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTransition(self, p) -proc put_msTouchAction*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTouchAction(self, v) -proc get_msTouchAction*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTouchAction(self, p) -proc put_msScrollTranslation*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msScrollTranslation(self, v) -proc get_msScrollTranslation*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msScrollTranslation(self, p) -proc put_msFlex*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlex(self, v) -proc get_msFlex*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlex(self, p) -proc put_msFlexPositive*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexPositive(self, v) -proc get_msFlexPositive*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexPositive(self, p) -proc put_msFlexNegative*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexNegative(self, v) -proc get_msFlexNegative*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexNegative(self, p) -proc put_msFlexPreferredSize*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexPreferredSize(self, v) -proc get_msFlexPreferredSize*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexPreferredSize(self, p) -proc put_msFlexFlow*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexFlow(self, v) -proc get_msFlexFlow*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexFlow(self, p) -proc put_msFlexDirection*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexDirection(self, v) -proc get_msFlexDirection*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexDirection(self, p) -proc put_msFlexWrap*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexWrap(self, v) -proc get_msFlexWrap*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexWrap(self, p) -proc put_msFlexAlign*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexAlign(self, v) -proc get_msFlexAlign*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexAlign(self, p) -proc put_msFlexItemAlign*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexItemAlign(self, v) -proc get_msFlexItemAlign*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexItemAlign(self, p) -proc put_msFlexPack*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexPack(self, v) -proc get_msFlexPack*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexPack(self, p) -proc put_msFlexLinePack*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexLinePack(self, v) -proc get_msFlexLinePack*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexLinePack(self, p) -proc put_msFlexOrder*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msFlexOrder(self, v) -proc get_msFlexOrder*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFlexOrder(self, p) -proc put_msTouchSelect*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msTouchSelect(self, v) -proc get_msTouchSelect*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msTouchSelect(self, p) -proc put_transform*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transform(self, v) -proc get_transform*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transform(self, p) -proc put_transformOrigin*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transformOrigin(self, v) -proc get_transformOrigin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transformOrigin(self, p) -proc put_transformStyle*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transformStyle(self, v) -proc get_transformStyle*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transformStyle(self, p) -proc put_backfaceVisibility*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backfaceVisibility(self, v) -proc get_backfaceVisibility*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backfaceVisibility(self, p) -proc put_perspective*(self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_perspective(self, v) -proc get_perspective*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_perspective(self, p) -proc put_perspectiveOrigin*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_perspectiveOrigin(self, v) -proc get_perspectiveOrigin*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_perspectiveOrigin(self, p) -proc put_transitionProperty*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transitionProperty(self, v) -proc get_transitionProperty*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transitionProperty(self, p) -proc put_transitionDuration*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transitionDuration(self, v) -proc get_transitionDuration*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transitionDuration(self, p) -proc put_transitionTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transitionTimingFunction(self, v) -proc get_transitionTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transitionTimingFunction(self, p) -proc put_transitionDelay*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transitionDelay(self, v) -proc get_transitionDelay*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transitionDelay(self, p) -proc put_transition*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_transition(self, v) -proc get_transition*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transition(self, p) -proc put_fontFeatureSettings*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontFeatureSettings(self, v) -proc get_fontFeatureSettings*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFeatureSettings(self, p) -proc put_animationName*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationName(self, v) -proc get_animationName*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationName(self, p) -proc put_animationDuration*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationDuration(self, v) -proc get_animationDuration*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationDuration(self, p) -proc put_animationTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationTimingFunction(self, v) -proc get_animationTimingFunction*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationTimingFunction(self, p) -proc put_animationDelay*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationDelay(self, v) -proc get_animationDelay*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationDelay(self, p) -proc put_animationDirection*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationDirection(self, v) -proc get_animationDirection*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationDirection(self, p) -proc put_animationPlayState*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationPlayState(self, v) -proc get_animationPlayState*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationPlayState(self, p) -proc put_animationIterationCount*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationIterationCount(self, v) -proc get_animationIterationCount*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationIterationCount(self, p) -proc put_animation*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animation(self, v) -proc get_animation*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animation(self, p) -proc put_animationFillMode*(self: ptr IHTMLCSSStyleDeclaration2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animationFillMode(self, v) -proc get_animationFillMode*(self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationFillMode(self, p) -proc msGetPropertyEnabled*(self: ptr IHTMLStyleEnabled, name: BSTR, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msGetPropertyEnabled(self, name, p) -proc msPutPropertyEnabled*(self: ptr IHTMLStyleEnabled, name: BSTR, b: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msPutPropertyEnabled(self, name, b) -proc put_fontFamily*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontFamily(self, v) -proc get_fontFamily*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFamily(self, p) -proc put_fontStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontStyle(self, v) -proc get_fontStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStyle(self, p) -proc put_fontVariant*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontVariant(self, v) -proc get_fontVariant*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontVariant(self, p) -proc put_fontWeight*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontWeight(self, v) -proc get_fontWeight*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p) -proc put_fontSize*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontSize(self, v) -proc get_fontSize*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p) -proc put_font*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_font(self, v) -proc get_font*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_font(self, p) -proc put_color*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v) -proc get_color*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc put_background*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_backgroundColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundColor(self, v) -proc get_backgroundColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p) -proc put_backgroundImage*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundImage(self, v) -proc get_backgroundImage*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundImage(self, p) -proc put_backgroundRepeat*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundRepeat(self, v) -proc get_backgroundRepeat*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundRepeat(self, p) -proc put_backgroundAttachment*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundAttachment(self, v) -proc get_backgroundAttachment*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundAttachment(self, p) -proc put_backgroundPosition*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPosition(self, v) -proc get_backgroundPosition*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPosition(self, p) -proc put_backgroundPositionX*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionX(self, v) -proc get_backgroundPositionX*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionX(self, p) -proc put_backgroundPositionY*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionY(self, v) -proc get_backgroundPositionY*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionY(self, p) -proc put_wordSpacing*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordSpacing(self, v) -proc get_wordSpacing*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordSpacing(self, p) -proc put_letterSpacing*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_letterSpacing(self, v) -proc get_letterSpacing*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_letterSpacing(self, p) -proc put_textDecoration*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecoration(self, v) -proc get_textDecoration*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p) -proc put_textDecorationNone*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationNone(self, v) -proc get_textDecorationNone*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationNone(self, p) -proc put_textDecorationUnderline*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationUnderline(self, v) -proc get_textDecorationUnderline*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationUnderline(self, p) -proc put_textDecorationOverline*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationOverline(self, v) -proc get_textDecorationOverline*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationOverline(self, p) -proc put_textDecorationLineThrough*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationLineThrough(self, v) -proc get_textDecorationLineThrough*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationLineThrough(self, p) -proc put_textDecorationBlink*(self: ptr IHTMLStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationBlink(self, v) -proc get_textDecorationBlink*(self: ptr IHTMLStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationBlink(self, p) -proc put_verticalAlign*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_verticalAlign(self, v) -proc get_verticalAlign*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_verticalAlign(self, p) -proc put_textTransform*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textTransform(self, v) -proc get_textTransform*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textTransform(self, p) -proc put_textAlign*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlign(self, v) -proc get_textAlign*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p) -proc put_textIndent*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textIndent(self, v) -proc get_textIndent*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textIndent(self, p) -proc put_lineHeight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineHeight(self, v) -proc get_lineHeight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineHeight(self, p) -proc put_marginTop*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginTop(self, v) -proc get_marginTop*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p) -proc put_marginRight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginRight(self, v) -proc get_marginRight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p) -proc put_marginBottom*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginBottom(self, v) -proc get_marginBottom*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p) -proc put_marginLeft*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginLeft(self, v) -proc get_marginLeft*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p) -proc put_margin*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_margin(self, v) -proc get_margin*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_margin(self, p) -proc put_paddingTop*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingTop(self, v) -proc get_paddingTop*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingTop(self, p) -proc put_paddingRight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingRight(self, v) -proc get_paddingRight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingRight(self, p) -proc put_paddingBottom*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingBottom(self, v) -proc get_paddingBottom*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingBottom(self, p) -proc put_paddingLeft*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingLeft(self, v) -proc get_paddingLeft*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingLeft(self, p) -proc put_padding*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_padding(self, v) -proc get_padding*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_padding(self, p) -proc put_border*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_borderTop*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTop(self, v) -proc get_borderTop*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTop(self, p) -proc put_borderRight*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRight(self, v) -proc get_borderRight*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRight(self, p) -proc put_borderBottom*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottom(self, v) -proc get_borderBottom*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottom(self, p) -proc put_borderLeft*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeft(self, v) -proc get_borderLeft*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeft(self, p) -proc put_borderColor*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_borderTopColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopColor(self, v) -proc get_borderTopColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopColor(self, p) -proc put_borderRightColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightColor(self, v) -proc get_borderRightColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightColor(self, p) -proc put_borderBottomColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomColor(self, v) -proc get_borderBottomColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomColor(self, p) -proc put_borderLeftColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftColor(self, v) -proc get_borderLeftColor*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftColor(self, p) -proc put_borderWidth*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderWidth(self, v) -proc get_borderWidth*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderWidth(self, p) -proc put_borderTopWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopWidth(self, v) -proc get_borderTopWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopWidth(self, p) -proc put_borderRightWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightWidth(self, v) -proc get_borderRightWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightWidth(self, p) -proc put_borderBottomWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomWidth(self, v) -proc get_borderBottomWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomWidth(self, p) -proc put_borderLeftWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftWidth(self, v) -proc get_borderLeftWidth*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftWidth(self, p) -proc put_borderStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderStyle(self, v) -proc get_borderStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p) -proc put_borderTopStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopStyle(self, v) -proc get_borderTopStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopStyle(self, p) -proc put_borderRightStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightStyle(self, v) -proc get_borderRightStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightStyle(self, p) -proc put_borderBottomStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomStyle(self, v) -proc get_borderBottomStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomStyle(self, p) -proc put_borderLeftStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftStyle(self, v) -proc get_borderLeftStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftStyle(self, p) -proc put_width*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_styleFloat*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_styleFloat(self, v) -proc get_styleFloat*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleFloat(self, p) -proc put_clear*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v) -proc get_clear*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p) -proc put_display*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_display(self, v) -proc get_display*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_display(self, p) -proc put_visibility*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_visibility(self, v) -proc get_visibility*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p) -proc put_listStyleType*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleType(self, v) -proc get_listStyleType*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleType(self, p) -proc put_listStylePosition*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStylePosition(self, v) -proc get_listStylePosition*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStylePosition(self, p) -proc put_listStyleImage*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleImage(self, v) -proc get_listStyleImage*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleImage(self, p) -proc put_listStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyle(self, v) -proc get_listStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyle(self, p) -proc put_whiteSpace*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_whiteSpace(self, v) -proc get_whiteSpace*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whiteSpace(self, p) -proc put_top*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_top(self, v) -proc get_top*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p) -proc put_left*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_left(self, v) -proc get_left*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p) -proc get_position*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc put_zIndex*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zIndex(self, v) -proc get_zIndex*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zIndex(self, p) -proc put_overflow*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflow(self, v) -proc get_overflow*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflow(self, p) -proc put_pageBreakBefore*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakBefore(self, v) -proc get_pageBreakBefore*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakBefore(self, p) -proc put_pageBreakAfter*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakAfter(self, v) -proc get_pageBreakAfter*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakAfter(self, p) -proc put_cssText*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v) -proc get_cssText*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p) -proc put_pixelTop*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelTop(self, v) -proc get_pixelTop*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelTop(self, p) -proc put_pixelLeft*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelLeft(self, v) -proc get_pixelLeft*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelLeft(self, p) -proc put_pixelWidth*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelWidth(self, v) -proc get_pixelWidth*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelWidth(self, p) -proc put_pixelHeight*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelHeight(self, v) -proc get_pixelHeight*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelHeight(self, p) -proc put_posTop*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posTop(self, v) -proc get_posTop*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posTop(self, p) -proc put_posLeft*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posLeft(self, v) -proc get_posLeft*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posLeft(self, p) -proc put_posWidth*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posWidth(self, v) -proc get_posWidth*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posWidth(self, p) -proc put_posHeight*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posHeight(self, v) -proc get_posHeight*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posHeight(self, p) -proc put_cursor*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cursor(self, v) -proc get_cursor*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cursor(self, p) -proc put_clip*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clip(self, v) -proc get_clip*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clip(self, p) -proc put_filter*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_filter(self, v) -proc get_filter*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p) -proc setAttribute*(self: ptr IHTMLStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) -proc getAttribute*(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) -proc removeAttribute*(self: ptr IHTMLStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) -proc toString*(self: ptr IHTMLStyle, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc put_tableLayout*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tableLayout(self, v) -proc get_tableLayout*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tableLayout(self, p) -proc put_borderCollapse*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderCollapse(self, v) -proc get_borderCollapse*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderCollapse(self, p) -proc put_direction*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_direction(self, v) -proc get_direction*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_direction(self, p) -proc put_behavior*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_behavior(self, v) -proc get_behavior*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behavior(self, p) -proc setExpression*(self: ptr IHTMLStyle2, propname: BSTR, expression: BSTR, language: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setExpression(self, propname, expression, language) -proc getExpression*(self: ptr IHTMLStyle2, propname: BSTR, expression: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getExpression(self, propname, expression) -proc removeExpression*(self: ptr IHTMLStyle2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeExpression(self, propname, pfSuccess) -proc put_position*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_position(self, v) -proc get_position*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc put_unicodeBidi*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_unicodeBidi(self, v) -proc get_unicodeBidi*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unicodeBidi(self, p) -proc put_bottom*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bottom(self, v) -proc get_bottom*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bottom(self, p) -proc put_right*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_right(self, v) -proc get_right*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_right(self, p) -proc put_pixelBottom*(self: ptr IHTMLStyle2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelBottom(self, v) -proc get_pixelBottom*(self: ptr IHTMLStyle2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelBottom(self, p) -proc put_pixelRight*(self: ptr IHTMLStyle2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelRight(self, v) -proc get_pixelRight*(self: ptr IHTMLStyle2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelRight(self, p) -proc put_posBottom*(self: ptr IHTMLStyle2, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posBottom(self, v) -proc get_posBottom*(self: ptr IHTMLStyle2, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posBottom(self, p) -proc put_posRight*(self: ptr IHTMLStyle2, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posRight(self, v) -proc get_posRight*(self: ptr IHTMLStyle2, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posRight(self, p) -proc put_imeMode*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_imeMode(self, v) -proc get_imeMode*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeMode(self, p) -proc put_rubyAlign*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyAlign(self, v) -proc get_rubyAlign*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyAlign(self, p) -proc put_rubyPosition*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyPosition(self, v) -proc get_rubyPosition*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyPosition(self, p) -proc put_rubyOverhang*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyOverhang(self, v) -proc get_rubyOverhang*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyOverhang(self, p) -proc put_layoutGridChar*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridChar(self, v) -proc get_layoutGridChar*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridChar(self, p) -proc put_layoutGridLine*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridLine(self, v) -proc get_layoutGridLine*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridLine(self, p) -proc put_layoutGridMode*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridMode(self, v) -proc get_layoutGridMode*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridMode(self, p) -proc put_layoutGridType*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridType(self, v) -proc get_layoutGridType*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridType(self, p) -proc put_layoutGrid*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGrid(self, v) -proc get_layoutGrid*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGrid(self, p) -proc put_wordBreak*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordBreak(self, v) -proc get_wordBreak*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordBreak(self, p) -proc put_lineBreak*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineBreak(self, v) -proc get_lineBreak*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineBreak(self, p) -proc put_textJustify*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textJustify(self, v) -proc get_textJustify*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustify(self, p) -proc put_textJustifyTrim*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textJustifyTrim(self, v) -proc get_textJustifyTrim*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustifyTrim(self, p) -proc put_textKashida*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textKashida(self, v) -proc get_textKashida*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashida(self, p) -proc put_textAutospace*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAutospace(self, v) -proc get_textAutospace*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAutospace(self, p) -proc put_overflowX*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflowX(self, v) -proc get_overflowX*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowX(self, p) -proc put_overflowY*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflowY(self, v) -proc get_overflowY*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowY(self, p) -proc put_accelerator*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accelerator(self, v) -proc get_accelerator*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accelerator(self, p) -proc put_layoutFlow*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutFlow(self, v) -proc get_layoutFlow*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutFlow(self, p) -proc put_zoom*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zoom(self, v) -proc get_zoom*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zoom(self, p) -proc put_wordWrap*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordWrap(self, v) -proc get_wordWrap*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordWrap(self, p) -proc put_textUnderlinePosition*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textUnderlinePosition(self, v) -proc get_textUnderlinePosition*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textUnderlinePosition(self, p) -proc put_scrollbarBaseColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarBaseColor(self, v) -proc get_scrollbarBaseColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarBaseColor(self, p) -proc put_scrollbarFaceColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarFaceColor(self, v) -proc get_scrollbarFaceColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarFaceColor(self, p) -proc put_scrollbar3dLightColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbar3dLightColor(self, v) -proc get_scrollbar3dLightColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbar3dLightColor(self, p) -proc put_scrollbarShadowColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarShadowColor(self, v) -proc get_scrollbarShadowColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarShadowColor(self, p) -proc put_scrollbarHighlightColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarHighlightColor(self, v) -proc get_scrollbarHighlightColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarHighlightColor(self, p) -proc put_scrollbarDarkShadowColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarDarkShadowColor(self, v) -proc get_scrollbarDarkShadowColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarDarkShadowColor(self, p) -proc put_scrollbarArrowColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarArrowColor(self, v) -proc get_scrollbarArrowColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarArrowColor(self, p) -proc put_scrollbarTrackColor*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarTrackColor(self, v) -proc get_scrollbarTrackColor*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarTrackColor(self, p) -proc put_writingMode*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_writingMode(self, v) -proc get_writingMode*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_writingMode(self, p) -proc put_textAlignLast*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlignLast(self, v) -proc get_textAlignLast*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlignLast(self, p) -proc put_textKashidaSpace*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textKashidaSpace(self, v) -proc get_textKashidaSpace*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashidaSpace(self, p) -proc put_textOverflow*(self: ptr IHTMLStyle4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textOverflow(self, v) -proc get_textOverflow*(self: ptr IHTMLStyle4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textOverflow(self, p) -proc put_minHeight*(self: ptr IHTMLStyle4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minHeight(self, v) -proc get_minHeight*(self: ptr IHTMLStyle4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minHeight(self, p) -proc put_msInterpolationMode*(self: ptr IHTMLStyle5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msInterpolationMode(self, v) -proc get_msInterpolationMode*(self: ptr IHTMLStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msInterpolationMode(self, p) -proc put_maxHeight*(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxHeight(self, v) -proc get_maxHeight*(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxHeight(self, p) -proc put_minWidth*(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minWidth(self, v) -proc get_minWidth*(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minWidth(self, p) -proc put_maxWidth*(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxWidth(self, v) -proc get_maxWidth*(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxWidth(self, p) -proc put_content*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_content(self, v) -proc get_content*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_content(self, p) -proc put_captionSide*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_captionSide(self, v) -proc get_captionSide*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_captionSide(self, p) -proc put_counterIncrement*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_counterIncrement(self, v) -proc get_counterIncrement*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_counterIncrement(self, p) -proc put_counterReset*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_counterReset(self, v) -proc get_counterReset*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_counterReset(self, p) -proc put_outline*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outline(self, v) -proc get_outline*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outline(self, p) -proc put_outlineWidth*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineWidth(self, v) -proc get_outlineWidth*(self: ptr IHTMLStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineWidth(self, p) -proc put_outlineStyle*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineStyle(self, v) -proc get_outlineStyle*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineStyle(self, p) -proc put_outlineColor*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineColor(self, v) -proc get_outlineColor*(self: ptr IHTMLStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineColor(self, p) -proc put_boxSizing*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_boxSizing(self, v) -proc get_boxSizing*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boxSizing(self, p) -proc put_borderSpacing*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderSpacing(self, v) -proc get_borderSpacing*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderSpacing(self, p) -proc put_orphans*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_orphans(self, v) -proc get_orphans*(self: ptr IHTMLStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orphans(self, p) -proc put_widows*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_widows(self, v) -proc get_widows*(self: ptr IHTMLStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_widows(self, p) -proc put_pageBreakInside*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakInside(self, v) -proc get_pageBreakInside*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakInside(self, p) -proc put_emptyCells*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_emptyCells(self, v) -proc get_emptyCells*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_emptyCells(self, p) -proc put_msBlockProgression*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msBlockProgression(self, v) -proc get_msBlockProgression*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msBlockProgression(self, p) -proc put_quotes*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_quotes(self, v) -proc get_quotes*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_quotes(self, p) -proc put_fontFamily*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontFamily(self, v) -proc get_fontFamily*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFamily(self, p) -proc put_fontStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontStyle(self, v) -proc get_fontStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStyle(self, p) -proc put_fontVariant*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontVariant(self, v) -proc get_fontVariant*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontVariant(self, p) -proc put_fontWeight*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontWeight(self, v) -proc get_fontWeight*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p) -proc put_fontSize*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontSize(self, v) -proc get_fontSize*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p) -proc put_font*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_font(self, v) -proc get_font*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_font(self, p) -proc put_color*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v) -proc get_color*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc put_background*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_backgroundColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundColor(self, v) -proc get_backgroundColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p) -proc put_backgroundImage*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundImage(self, v) -proc get_backgroundImage*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundImage(self, p) -proc put_backgroundRepeat*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundRepeat(self, v) -proc get_backgroundRepeat*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundRepeat(self, p) -proc put_backgroundAttachment*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundAttachment(self, v) -proc get_backgroundAttachment*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundAttachment(self, p) -proc put_backgroundPosition*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPosition(self, v) -proc get_backgroundPosition*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPosition(self, p) -proc put_backgroundPositionX*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionX(self, v) -proc get_backgroundPositionX*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionX(self, p) -proc put_backgroundPositionY*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_backgroundPositionY(self, v) -proc get_backgroundPositionY*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionY(self, p) -proc put_wordSpacing*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordSpacing(self, v) -proc get_wordSpacing*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordSpacing(self, p) -proc put_letterSpacing*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_letterSpacing(self, v) -proc get_letterSpacing*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_letterSpacing(self, p) -proc put_textDecoration*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecoration(self, v) -proc get_textDecoration*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p) -proc put_textDecorationNone*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationNone(self, v) -proc get_textDecorationNone*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationNone(self, p) -proc put_textDecorationUnderline*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationUnderline(self, v) -proc get_textDecorationUnderline*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationUnderline(self, p) -proc put_textDecorationOverline*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationOverline(self, v) -proc get_textDecorationOverline*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationOverline(self, p) -proc put_textDecorationLineThrough*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationLineThrough(self, v) -proc get_textDecorationLineThrough*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationLineThrough(self, p) -proc put_textDecorationBlink*(self: ptr IHTMLRuleStyle, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationBlink(self, v) -proc get_textDecorationBlink*(self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationBlink(self, p) -proc put_verticalAlign*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_verticalAlign(self, v) -proc get_verticalAlign*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_verticalAlign(self, p) -proc put_textTransform*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textTransform(self, v) -proc get_textTransform*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textTransform(self, p) -proc put_textAlign*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlign(self, v) -proc get_textAlign*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p) -proc put_textIndent*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textIndent(self, v) -proc get_textIndent*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textIndent(self, p) -proc put_lineHeight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineHeight(self, v) -proc get_lineHeight*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineHeight(self, p) -proc put_marginTop*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginTop(self, v) -proc get_marginTop*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p) -proc put_marginRight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginRight(self, v) -proc get_marginRight*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p) -proc put_marginBottom*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginBottom(self, v) -proc get_marginBottom*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p) -proc put_marginLeft*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginLeft(self, v) -proc get_marginLeft*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p) -proc put_margin*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_margin(self, v) -proc get_margin*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_margin(self, p) -proc put_paddingTop*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingTop(self, v) -proc get_paddingTop*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingTop(self, p) -proc put_paddingRight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingRight(self, v) -proc get_paddingRight*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingRight(self, p) -proc put_paddingBottom*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingBottom(self, v) -proc get_paddingBottom*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingBottom(self, p) -proc put_paddingLeft*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_paddingLeft(self, v) -proc get_paddingLeft*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingLeft(self, p) -proc put_padding*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_padding(self, v) -proc get_padding*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_padding(self, p) -proc put_border*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_borderTop*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTop(self, v) -proc get_borderTop*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTop(self, p) -proc put_borderRight*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRight(self, v) -proc get_borderRight*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRight(self, p) -proc put_borderBottom*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottom(self, v) -proc get_borderBottom*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottom(self, p) -proc put_borderLeft*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeft(self, v) -proc get_borderLeft*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeft(self, p) -proc put_borderColor*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_borderTopColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopColor(self, v) -proc get_borderTopColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopColor(self, p) -proc put_borderRightColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightColor(self, v) -proc get_borderRightColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightColor(self, p) -proc put_borderBottomColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomColor(self, v) -proc get_borderBottomColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomColor(self, p) -proc put_borderLeftColor*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftColor(self, v) -proc get_borderLeftColor*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftColor(self, p) -proc put_borderWidth*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderWidth(self, v) -proc get_borderWidth*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderWidth(self, p) -proc put_borderTopWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopWidth(self, v) -proc get_borderTopWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopWidth(self, p) -proc put_borderRightWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightWidth(self, v) -proc get_borderRightWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightWidth(self, p) -proc put_borderBottomWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomWidth(self, v) -proc get_borderBottomWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomWidth(self, p) -proc put_borderLeftWidth*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftWidth(self, v) -proc get_borderLeftWidth*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftWidth(self, p) -proc put_borderStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderStyle(self, v) -proc get_borderStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p) -proc put_borderTopStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderTopStyle(self, v) -proc get_borderTopStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopStyle(self, p) -proc put_borderRightStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderRightStyle(self, v) -proc get_borderRightStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightStyle(self, p) -proc put_borderBottomStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderBottomStyle(self, v) -proc get_borderBottomStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomStyle(self, p) -proc put_borderLeftStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderLeftStyle(self, v) -proc get_borderLeftStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftStyle(self, p) -proc put_width*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_styleFloat*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_styleFloat(self, v) -proc get_styleFloat*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleFloat(self, p) -proc put_clear*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v) -proc get_clear*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p) -proc put_display*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_display(self, v) -proc get_display*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_display(self, p) -proc put_visibility*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_visibility(self, v) -proc get_visibility*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p) -proc put_listStyleType*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleType(self, v) -proc get_listStyleType*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleType(self, p) -proc put_listStylePosition*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStylePosition(self, v) -proc get_listStylePosition*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStylePosition(self, p) -proc put_listStyleImage*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyleImage(self, v) -proc get_listStyleImage*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleImage(self, p) -proc put_listStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_listStyle(self, v) -proc get_listStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyle(self, p) -proc put_whiteSpace*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_whiteSpace(self, v) -proc get_whiteSpace*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whiteSpace(self, p) -proc put_top*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_top(self, v) -proc get_top*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p) -proc put_left*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_left(self, v) -proc get_left*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p) -proc get_position*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc put_zIndex*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zIndex(self, v) -proc get_zIndex*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zIndex(self, p) -proc put_overflow*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflow(self, v) -proc get_overflow*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflow(self, p) -proc put_pageBreakBefore*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakBefore(self, v) -proc get_pageBreakBefore*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakBefore(self, p) -proc put_pageBreakAfter*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakAfter(self, v) -proc get_pageBreakAfter*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakAfter(self, p) -proc put_cssText*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v) -proc get_cssText*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p) -proc put_cursor*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cursor(self, v) -proc get_cursor*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cursor(self, p) -proc put_clip*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clip(self, v) -proc get_clip*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clip(self, p) -proc put_filter*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_filter(self, v) -proc get_filter*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p) -proc setAttribute*(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) -proc getAttribute*(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) -proc removeAttribute*(self: ptr IHTMLRuleStyle, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) -proc put_tableLayout*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tableLayout(self, v) -proc get_tableLayout*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tableLayout(self, p) -proc put_borderCollapse*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderCollapse(self, v) -proc get_borderCollapse*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderCollapse(self, p) -proc put_direction*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_direction(self, v) -proc get_direction*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_direction(self, p) -proc put_behavior*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_behavior(self, v) -proc get_behavior*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behavior(self, p) -proc put_position*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_position(self, v) -proc get_position*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc put_unicodeBidi*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_unicodeBidi(self, v) -proc get_unicodeBidi*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unicodeBidi(self, p) -proc put_bottom*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bottom(self, v) -proc get_bottom*(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bottom(self, p) -proc put_right*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_right(self, v) -proc get_right*(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_right(self, p) -proc put_pixelBottom*(self: ptr IHTMLRuleStyle2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelBottom(self, v) -proc get_pixelBottom*(self: ptr IHTMLRuleStyle2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelBottom(self, p) -proc put_pixelRight*(self: ptr IHTMLRuleStyle2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelRight(self, v) -proc get_pixelRight*(self: ptr IHTMLRuleStyle2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelRight(self, p) -proc put_posBottom*(self: ptr IHTMLRuleStyle2, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posBottom(self, v) -proc get_posBottom*(self: ptr IHTMLRuleStyle2, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posBottom(self, p) -proc put_posRight*(self: ptr IHTMLRuleStyle2, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_posRight(self, v) -proc get_posRight*(self: ptr IHTMLRuleStyle2, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_posRight(self, p) -proc put_imeMode*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_imeMode(self, v) -proc get_imeMode*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeMode(self, p) -proc put_rubyAlign*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyAlign(self, v) -proc get_rubyAlign*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyAlign(self, p) -proc put_rubyPosition*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyPosition(self, v) -proc get_rubyPosition*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyPosition(self, p) -proc put_rubyOverhang*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rubyOverhang(self, v) -proc get_rubyOverhang*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyOverhang(self, p) -proc put_layoutGridChar*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridChar(self, v) -proc get_layoutGridChar*(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridChar(self, p) -proc put_layoutGridLine*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridLine(self, v) -proc get_layoutGridLine*(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridLine(self, p) -proc put_layoutGridMode*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridMode(self, v) -proc get_layoutGridMode*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridMode(self, p) -proc put_layoutGridType*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGridType(self, v) -proc get_layoutGridType*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridType(self, p) -proc put_layoutGrid*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutGrid(self, v) -proc get_layoutGrid*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGrid(self, p) -proc put_textAutospace*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAutospace(self, v) -proc get_textAutospace*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAutospace(self, p) -proc put_wordBreak*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordBreak(self, v) -proc get_wordBreak*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordBreak(self, p) -proc put_lineBreak*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineBreak(self, v) -proc get_lineBreak*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineBreak(self, p) -proc put_textJustify*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textJustify(self, v) -proc get_textJustify*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustify(self, p) -proc put_textJustifyTrim*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textJustifyTrim(self, v) -proc get_textJustifyTrim*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustifyTrim(self, p) -proc put_textKashida*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textKashida(self, v) -proc get_textKashida*(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashida(self, p) -proc put_overflowX*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflowX(self, v) -proc get_overflowX*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowX(self, p) -proc put_overflowY*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_overflowY(self, v) -proc get_overflowY*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowY(self, p) -proc put_accelerator*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accelerator(self, v) -proc get_accelerator*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accelerator(self, p) -proc put_layoutFlow*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_layoutFlow(self, v) -proc get_layoutFlow*(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutFlow(self, p) -proc put_zoom*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_zoom(self, v) -proc get_zoom*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zoom(self, p) -proc put_wordWrap*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wordWrap(self, v) -proc get_wordWrap*(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordWrap(self, p) -proc put_textUnderlinePosition*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textUnderlinePosition(self, v) -proc get_textUnderlinePosition*(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textUnderlinePosition(self, p) -proc put_scrollbarBaseColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarBaseColor(self, v) -proc get_scrollbarBaseColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarBaseColor(self, p) -proc put_scrollbarFaceColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarFaceColor(self, v) -proc get_scrollbarFaceColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarFaceColor(self, p) -proc put_scrollbar3dLightColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbar3dLightColor(self, v) -proc get_scrollbar3dLightColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbar3dLightColor(self, p) -proc put_scrollbarShadowColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarShadowColor(self, v) -proc get_scrollbarShadowColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarShadowColor(self, p) -proc put_scrollbarHighlightColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarHighlightColor(self, v) -proc get_scrollbarHighlightColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarHighlightColor(self, p) -proc put_scrollbarDarkShadowColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarDarkShadowColor(self, v) -proc get_scrollbarDarkShadowColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarDarkShadowColor(self, p) -proc put_scrollbarArrowColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarArrowColor(self, v) -proc get_scrollbarArrowColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarArrowColor(self, p) -proc put_scrollbarTrackColor*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbarTrackColor(self, v) -proc get_scrollbarTrackColor*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarTrackColor(self, p) -proc put_writingMode*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_writingMode(self, v) -proc get_writingMode*(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_writingMode(self, p) -proc put_textAlignLast*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlignLast(self, v) -proc get_textAlignLast*(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlignLast(self, p) -proc put_textKashidaSpace*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textKashidaSpace(self, v) -proc get_textKashidaSpace*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashidaSpace(self, p) -proc put_textOverflow*(self: ptr IHTMLRuleStyle4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textOverflow(self, v) -proc get_textOverflow*(self: ptr IHTMLRuleStyle4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textOverflow(self, p) -proc put_minHeight*(self: ptr IHTMLRuleStyle4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minHeight(self, v) -proc get_minHeight*(self: ptr IHTMLRuleStyle4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minHeight(self, p) -proc put_msInterpolationMode*(self: ptr IHTMLRuleStyle5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msInterpolationMode(self, v) -proc get_msInterpolationMode*(self: ptr IHTMLRuleStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msInterpolationMode(self, p) -proc put_maxHeight*(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxHeight(self, v) -proc get_maxHeight*(self: ptr IHTMLRuleStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxHeight(self, p) -proc put_minWidth*(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minWidth(self, v) -proc get_minWidth*(self: ptr IHTMLRuleStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minWidth(self, p) -proc put_maxWidth*(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxWidth(self, v) -proc get_maxWidth*(self: ptr IHTMLRuleStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxWidth(self, p) -proc put_content*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_content(self, v) -proc get_content*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_content(self, p) -proc put_captionSide*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_captionSide(self, v) -proc get_captionSide*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_captionSide(self, p) -proc put_counterIncrement*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_counterIncrement(self, v) -proc get_counterIncrement*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_counterIncrement(self, p) -proc put_counterReset*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_counterReset(self, v) -proc get_counterReset*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_counterReset(self, p) -proc put_outline*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outline(self, v) -proc get_outline*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outline(self, p) -proc put_outlineWidth*(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineWidth(self, v) -proc get_outlineWidth*(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineWidth(self, p) -proc put_outlineStyle*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineStyle(self, v) -proc get_outlineStyle*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineStyle(self, p) -proc put_outlineColor*(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outlineColor(self, v) -proc get_outlineColor*(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineColor(self, p) -proc put_boxSizing*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_boxSizing(self, v) -proc get_boxSizing*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boxSizing(self, p) -proc put_borderSpacing*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderSpacing(self, v) -proc get_borderSpacing*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderSpacing(self, p) -proc put_orphans*(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_orphans(self, v) -proc get_orphans*(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orphans(self, p) -proc put_widows*(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_widows(self, v) -proc get_widows*(self: ptr IHTMLRuleStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_widows(self, p) -proc put_pageBreakInside*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageBreakInside(self, v) -proc get_pageBreakInside*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakInside(self, p) -proc put_emptyCells*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_emptyCells(self, v) -proc get_emptyCells*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_emptyCells(self, p) -proc put_msBlockProgression*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msBlockProgression(self, v) -proc get_msBlockProgression*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msBlockProgression(self, p) -proc put_quotes*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_quotes(self, v) -proc get_quotes*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_quotes(self, p) -proc get_type*(self: ptr IHTMLCSSRule, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_cssText*(self: ptr IHTMLCSSRule, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v) -proc get_cssText*(self: ptr IHTMLCSSRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p) -proc get_parentRule*(self: ptr IHTMLCSSRule, p: ptr ptr IHTMLCSSRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentRule(self, p) -proc get_parentStyleSheet*(self: ptr IHTMLCSSRule, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentStyleSheet(self, p) -proc get_href*(self: ptr IHTMLCSSImportRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_media*(self: ptr IHTMLCSSImportRule, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLCSSImportRule, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc get_styleSheet*(self: ptr IHTMLCSSImportRule, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleSheet(self, p) -proc put_media*(self: ptr IHTMLCSSMediaRule, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLCSSMediaRule, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc get_cssRules*(self: ptr IHTMLCSSMediaRule, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssRules(self, p) -proc insertRule*(self: ptr IHTMLCSSMediaRule, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertRule(self, bstrRule, lIndex, plNewIndex) -proc deleteRule*(self: ptr IHTMLCSSMediaRule, lIndex: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRule(self, lIndex) -proc put_mediaText*(self: ptr IHTMLCSSMediaList, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_mediaText(self, v) -proc get_mediaText*(self: ptr IHTMLCSSMediaList, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mediaText(self, p) -proc get_length*(self: ptr IHTMLCSSMediaList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLCSSMediaList, index: LONG, pbstrMedium: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pbstrMedium) -proc appendMedium*(self: ptr IHTMLCSSMediaList, bstrMedium: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendMedium(self, bstrMedium) -proc deleteMedium*(self: ptr IHTMLCSSMediaList, bstrMedium: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteMedium(self, bstrMedium) -proc get_namespaceURI*(self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_namespaceURI(self, p) -proc get_prefix*(self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_prefix(self, p) -proc put_keyText*(self: ptr IHTMLMSCSSKeyframeRule, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_keyText(self, v) -proc get_keyText*(self: ptr IHTMLMSCSSKeyframeRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_keyText(self, p) -proc get_style*(self: ptr IHTMLMSCSSKeyframeRule, p: ptr ptr IHTMLRuleStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p) -proc put_name*(self: ptr IHTMLMSCSSKeyframesRule, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLMSCSSKeyframesRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc get_cssRules*(self: ptr IHTMLMSCSSKeyframesRule, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssRules(self, p) -proc appendRule*(self: ptr IHTMLMSCSSKeyframesRule, bstrRule: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendRule(self, bstrRule) -proc deleteRule*(self: ptr IHTMLMSCSSKeyframesRule, bstrKey: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRule(self, bstrKey) -proc findRule*(self: ptr IHTMLMSCSSKeyframesRule, bstrKey: BSTR, ppMSKeyframeRule: ptr ptr IHTMLMSCSSKeyframeRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.findRule(self, bstrKey, ppMSKeyframeRule) -proc put_textLineThroughStyle*(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textLineThroughStyle(self, v) -proc get_textLineThroughStyle*(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textLineThroughStyle(self, p) -proc put_textUnderlineStyle*(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textUnderlineStyle(self, v) -proc get_textUnderlineStyle*(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textUnderlineStyle(self, p) -proc put_textEffect*(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textEffect(self, v) -proc get_textEffect*(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textEffect(self, p) -proc put_textColor*(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textColor(self, v) -proc get_textColor*(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textColor(self, p) -proc put_textBackgroundColor*(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textBackgroundColor(self, v) -proc get_textBackgroundColor*(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textBackgroundColor(self, p) -proc put_textDecorationColor*(self: ptr IHTMLRenderStyle, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecorationColor(self, v) -proc get_textDecorationColor*(self: ptr IHTMLRenderStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecorationColor(self, p) -proc put_renderingPriority*(self: ptr IHTMLRenderStyle, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_renderingPriority(self, v) -proc get_renderingPriority*(self: ptr IHTMLRenderStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_renderingPriority(self, p) -proc put_defaultTextSelection*(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultTextSelection(self, v) -proc get_defaultTextSelection*(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultTextSelection(self, p) -proc put_textDecoration*(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textDecoration(self, v) -proc get_textDecoration*(self: ptr IHTMLRenderStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p) -proc get_position*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc get_styleFloat*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleFloat(self, p) -proc get_color*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc get_backgroundColor*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p) -proc get_fontFamily*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontFamily(self, p) -proc get_fontStyle*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontStyle(self, p) -proc get_fontVariant*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontVariant(self, p) -proc get_fontWeight*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p) -proc get_fontSize*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p) -proc get_backgroundImage*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundImage(self, p) -proc get_backgroundPositionX*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionX(self, p) -proc get_backgroundPositionY*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundPositionY(self, p) -proc get_backgroundRepeat*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundRepeat(self, p) -proc get_borderLeftColor*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftColor(self, p) -proc get_borderTopColor*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopColor(self, p) -proc get_borderRightColor*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightColor(self, p) -proc get_borderBottomColor*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomColor(self, p) -proc get_borderTopStyle*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopStyle(self, p) -proc get_borderRightStyle*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightStyle(self, p) -proc get_borderBottomStyle*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomStyle(self, p) -proc get_borderLeftStyle*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftStyle(self, p) -proc get_borderTopWidth*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderTopWidth(self, p) -proc get_borderRightWidth*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderRightWidth(self, p) -proc get_borderBottomWidth*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderBottomWidth(self, p) -proc get_borderLeftWidth*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderLeftWidth(self, p) -proc get_left*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p) -proc get_top*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p) -proc get_width*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_height*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_paddingLeft*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingLeft(self, p) -proc get_paddingTop*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingTop(self, p) -proc get_paddingRight*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingRight(self, p) -proc get_paddingBottom*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paddingBottom(self, p) -proc get_textAlign*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p) -proc get_textDecoration*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDecoration(self, p) -proc get_display*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_display(self, p) -proc get_visibility*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p) -proc get_zIndex*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zIndex(self, p) -proc get_letterSpacing*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_letterSpacing(self, p) -proc get_lineHeight*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineHeight(self, p) -proc get_textIndent*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textIndent(self, p) -proc get_verticalAlign*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_verticalAlign(self, p) -proc get_backgroundAttachment*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundAttachment(self, p) -proc get_marginTop*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p) -proc get_marginRight*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p) -proc get_marginBottom*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p) -proc get_marginLeft*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p) -proc get_clear*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p) -proc get_listStyleType*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleType(self, p) -proc get_listStylePosition*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStylePosition(self, p) -proc get_listStyleImage*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_listStyleImage(self, p) -proc get_clipTop*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipTop(self, p) -proc get_clipRight*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipRight(self, p) -proc get_clipBottom*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipBottom(self, p) -proc get_clipLeft*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipLeft(self, p) -proc get_overflow*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflow(self, p) -proc get_pageBreakBefore*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakBefore(self, p) -proc get_pageBreakAfter*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakAfter(self, p) -proc get_cursor*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cursor(self, p) -proc get_tableLayout*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tableLayout(self, p) -proc get_borderCollapse*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderCollapse(self, p) -proc get_direction*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_direction(self, p) -proc get_behavior*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behavior(self, p) -proc getAttribute*(self: ptr IHTMLCurrentStyle, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) -proc get_unicodeBidi*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unicodeBidi(self, p) -proc get_right*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_right(self, p) -proc get_bottom*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bottom(self, p) -proc get_imeMode*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeMode(self, p) -proc get_rubyAlign*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyAlign(self, p) -proc get_rubyPosition*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyPosition(self, p) -proc get_rubyOverhang*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rubyOverhang(self, p) -proc get_textAutospace*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAutospace(self, p) -proc get_lineBreak*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineBreak(self, p) -proc get_wordBreak*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordBreak(self, p) -proc get_textJustify*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustify(self, p) -proc get_textJustifyTrim*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textJustifyTrim(self, p) -proc get_textKashida*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashida(self, p) -proc get_blockDirection*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_blockDirection(self, p) -proc get_layoutGridChar*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridChar(self, p) -proc get_layoutGridLine*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridLine(self, p) -proc get_layoutGridMode*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridMode(self, p) -proc get_layoutGridType*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutGridType(self, p) -proc get_borderStyle*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p) -proc get_borderColor*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc get_borderWidth*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderWidth(self, p) -proc get_padding*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_padding(self, p) -proc get_margin*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_margin(self, p) -proc get_accelerator*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accelerator(self, p) -proc get_overflowX*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowX(self, p) -proc get_overflowY*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overflowY(self, p) -proc get_textTransform*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textTransform(self, p) -proc get_layoutFlow*(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layoutFlow(self, p) -proc get_wordWrap*(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordWrap(self, p) -proc get_textUnderlinePosition*(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textUnderlinePosition(self, p) -proc get_hasLayout*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hasLayout(self, p) -proc get_scrollbarBaseColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarBaseColor(self, p) -proc get_scrollbarFaceColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarFaceColor(self, p) -proc get_scrollbar3dLightColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbar3dLightColor(self, p) -proc get_scrollbarShadowColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarShadowColor(self, p) -proc get_scrollbarHighlightColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarHighlightColor(self, p) -proc get_scrollbarDarkShadowColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarDarkShadowColor(self, p) -proc get_scrollbarArrowColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarArrowColor(self, p) -proc get_scrollbarTrackColor*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbarTrackColor(self, p) -proc get_writingMode*(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_writingMode(self, p) -proc get_zoom*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zoom(self, p) -proc get_filter*(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p) -proc get_textAlignLast*(self: ptr IHTMLCurrentStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlignLast(self, p) -proc get_textKashidaSpace*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textKashidaSpace(self, p) -proc get_isBlock*(self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isBlock(self, p) -proc get_textOverflow*(self: ptr IHTMLCurrentStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textOverflow(self, p) -proc get_minHeight*(self: ptr IHTMLCurrentStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minHeight(self, p) -proc get_wordSpacing*(self: ptr IHTMLCurrentStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wordSpacing(self, p) -proc get_whiteSpace*(self: ptr IHTMLCurrentStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whiteSpace(self, p) -proc get_msInterpolationMode*(self: ptr IHTMLCurrentStyle4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msInterpolationMode(self, p) -proc get_maxHeight*(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxHeight(self, p) -proc get_minWidth*(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minWidth(self, p) -proc get_maxWidth*(self: ptr IHTMLCurrentStyle4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxWidth(self, p) -proc get_captionSide*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_captionSide(self, p) -proc get_outline*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outline(self, p) -proc get_outlineWidth*(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineWidth(self, p) -proc get_outlineStyle*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineStyle(self, p) -proc get_outlineColor*(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outlineColor(self, p) -proc get_boxSizing*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boxSizing(self, p) -proc get_borderSpacing*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderSpacing(self, p) -proc get_orphans*(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orphans(self, p) -proc get_widows*(self: ptr IHTMLCurrentStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_widows(self, p) -proc get_pageBreakInside*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageBreakInside(self, p) -proc get_emptyCells*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_emptyCells(self, p) -proc get_msBlockProgression*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msBlockProgression(self, p) -proc get_quotes*(self: ptr IHTMLCurrentStyle5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_quotes(self, p) -proc put_left*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_left(self, v) -proc get_left*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_left(self, p) -proc put_top*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_top(self, v) -proc get_top*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p) -proc put_right*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_right(self, v) -proc get_right*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_right(self, p) -proc put_bottom*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bottom(self, v) -proc get_bottom*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bottom(self, p) -proc get_width*(self: ptr IHTMLRect2, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_height*(self: ptr IHTMLRect2, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_length*(self: ptr IHTMLRectCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLRectCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLRectCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult) -proc get_nodeType*(self: ptr IHTMLDOMNode, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeType(self, p) -proc get_parentNode*(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentNode(self, p) -proc hasChildNodes*(self: ptr IHTMLDOMNode, fChildren: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasChildNodes(self, fChildren) -proc get_childNodes*(self: ptr IHTMLDOMNode, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childNodes(self, p) -proc get_attributes*(self: ptr IHTMLDOMNode, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attributes(self, p) -proc insertBefore*(self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, refChild: VARIANT, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertBefore(self, newChild, refChild, node) -proc removeChild*(self: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeChild(self, oldChild, node) -proc replaceChild*(self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceChild(self, newChild, oldChild, node) -proc cloneNode*(self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, clonedNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.cloneNode(self, fDeep, clonedNode) -proc removeNode*(self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, removed: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeNode(self, fDeep, removed) -proc swapNode*(self: ptr IHTMLDOMNode, otherNode: ptr IHTMLDOMNode, swappedNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.swapNode(self, otherNode, swappedNode) -proc replaceNode*(self: ptr IHTMLDOMNode, replacement: ptr IHTMLDOMNode, replaced: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceNode(self, replacement, replaced) -proc appendChild*(self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendChild(self, newChild, node) -proc get_nodeName*(self: ptr IHTMLDOMNode, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeName(self, p) -proc put_nodeValue*(self: ptr IHTMLDOMNode, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_nodeValue(self, v) -proc get_nodeValue*(self: ptr IHTMLDOMNode, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeValue(self, p) -proc get_firstChild*(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_firstChild(self, p) -proc get_lastChild*(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastChild(self, p) -proc get_previousSibling*(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousSibling(self, p) -proc get_nextSibling*(self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nextSibling(self, p) -proc get_ownerDocument*(self: ptr IHTMLDOMNode2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerDocument(self, p) -proc put_prefix*(self: ptr IHTMLDOMNode3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_prefix(self, v) -proc get_prefix*(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_prefix(self, p) -proc get_localName*(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_localName(self, p) -proc get_namespaceURI*(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_namespaceURI(self, p) -proc put_textContent*(self: ptr IHTMLDOMNode3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textContent(self, v) -proc get_textContent*(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textContent(self, p) -proc isEqualNode*(self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isEqual: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isEqualNode(self, otherNode, isEqual) -proc lookupNamespaceURI*(self: ptr IHTMLDOMNode3, pvarPrefix: ptr VARIANT, pvarNamespaceURI: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.lookupNamespaceURI(self, pvarPrefix, pvarNamespaceURI) -proc lookupPrefix*(self: ptr IHTMLDOMNode3, pvarNamespaceURI: ptr VARIANT, pvarPrefix: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.lookupPrefix(self, pvarNamespaceURI, pvarPrefix) -proc isDefaultNamespace*(self: ptr IHTMLDOMNode3, pvarNamespace: ptr VARIANT, pfDefaultNamespace: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isDefaultNamespace(self, pvarNamespace, pfDefaultNamespace) -proc appendChild*(self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendChild(self, newChild, node) -proc insertBefore*(self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, refChild: VARIANT, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertBefore(self, newChild, refChild, node) -proc removeChild*(self: ptr IHTMLDOMNode3, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeChild(self, oldChild, node) -proc replaceChild*(self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceChild(self, newChild, oldChild, node) -proc isSameNode*(self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isSame: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isSameNode(self, otherNode, isSame) -proc compareDocumentPosition*(self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode, flags: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.compareDocumentPosition(self, otherNode, flags) -proc isSupported*(self: ptr IHTMLDOMNode3, feature: BSTR, version: VARIANT, pfisSupported: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isSupported(self, feature, version, pfisSupported) -proc get_nodeName*(self: ptr IHTMLDOMAttribute, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeName(self, p) -proc put_nodeValue*(self: ptr IHTMLDOMAttribute, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_nodeValue(self, v) -proc get_nodeValue*(self: ptr IHTMLDOMAttribute, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeValue(self, p) -proc get_specified*(self: ptr IHTMLDOMAttribute, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_specified(self, p) -proc get_name*(self: ptr IHTMLDOMAttribute2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_value*(self: ptr IHTMLDOMAttribute2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLDOMAttribute2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc get_expando*(self: ptr IHTMLDOMAttribute2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_expando(self, p) -proc get_nodeType*(self: ptr IHTMLDOMAttribute2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeType(self, p) -proc get_parentNode*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentNode(self, p) -proc get_childNodes*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childNodes(self, p) -proc get_firstChild*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_firstChild(self, p) -proc get_lastChild*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastChild(self, p) -proc get_previousSibling*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousSibling(self, p) -proc get_nextSibling*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nextSibling(self, p) -proc get_attributes*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attributes(self, p) -proc get_ownerDocument*(self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerDocument(self, p) -proc insertBefore*(self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, refChild: VARIANT, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertBefore(self, newChild, refChild, node) -proc replaceChild*(self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceChild(self, newChild, oldChild, node) -proc removeChild*(self: ptr IHTMLDOMAttribute2, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeChild(self, oldChild, node) -proc appendChild*(self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendChild(self, newChild, node) -proc hasChildNodes*(self: ptr IHTMLDOMAttribute2, fChildren: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasChildNodes(self, fChildren) -proc cloneNode*(self: ptr IHTMLDOMAttribute2, fDeep: VARIANT_BOOL, clonedNode: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.cloneNode(self, fDeep, clonedNode) -proc put_nodeValue*(self: ptr IHTMLDOMAttribute3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_nodeValue(self, v) -proc get_nodeValue*(self: ptr IHTMLDOMAttribute3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeValue(self, p) -proc put_value*(self: ptr IHTMLDOMAttribute3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLDOMAttribute3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc get_specified*(self: ptr IHTMLDOMAttribute3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_specified(self, p) -proc get_ownerElement*(self: ptr IHTMLDOMAttribute3, p: ptr ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerElement(self, p) -proc put_nodeValue*(self: ptr IHTMLDOMAttribute4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_nodeValue(self, v) -proc get_nodeValue*(self: ptr IHTMLDOMAttribute4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeValue(self, p) -proc get_nodeName*(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeName(self, p) -proc get_name*(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_value*(self: ptr IHTMLDOMAttribute4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc get_firstChild*(self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_firstChild(self, p) -proc get_lastChild*(self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastChild(self, p) -proc get_childNodes*(self: ptr IHTMLDOMAttribute4, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childNodes(self, p) -proc hasAttributes*(self: ptr IHTMLDOMAttribute4, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttributes(self, pfHasAttributes) -proc hasChildNodes*(self: ptr IHTMLDOMAttribute4, fChildren: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasChildNodes(self, fChildren) -proc normalize*(self: ptr IHTMLDOMAttribute4): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.normalize(self) -proc get_specified*(self: ptr IHTMLDOMAttribute4, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_specified(self, p) -proc put_data*(self: ptr IHTMLDOMTextNode, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, v) -proc get_data*(self: ptr IHTMLDOMTextNode, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc toString*(self: ptr IHTMLDOMTextNode, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc get_length*(self: ptr IHTMLDOMTextNode, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc splitText*(self: ptr IHTMLDOMTextNode, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.splitText(self, offset, pRetNode) -proc substringData*(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.substringData(self, offset, Count, pbstrsubString) -proc appendData*(self: ptr IHTMLDOMTextNode2, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendData(self, bstrstring) -proc insertData*(self: ptr IHTMLDOMTextNode2, offset: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertData(self, offset, bstrstring) -proc deleteData*(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteData(self, offset, Count) -proc replaceData*(self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceData(self, offset, Count, bstrstring) -proc substringData*(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.substringData(self, offset, Count, pbstrsubString) -proc insertData*(self: ptr IHTMLDOMTextNode3, offset: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertData(self, offset, bstrstring) -proc deleteData*(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteData(self, offset, Count) -proc replaceData*(self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceData(self, offset, Count, bstrstring) -proc splitText*(self: ptr IHTMLDOMTextNode3, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.splitText(self, offset, pRetNode) -proc get_wholeText*(self: ptr IHTMLDOMTextNode3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wholeText(self, p) -proc replaceWholeText*(self: ptr IHTMLDOMTextNode3, bstrText: BSTR, ppRetNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceWholeText(self, bstrText, ppRetNode) -proc hasAttributes*(self: ptr IHTMLDOMTextNode3, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttributes(self, pfHasAttributes) -proc normalize*(self: ptr IHTMLDOMTextNode3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.normalize(self) -proc hasFeature*(self: ptr IHTMLDOMImplementation, bstrfeature: BSTR, version: VARIANT, pfHasFeature: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasFeature(self, bstrfeature, version, pfHasFeature) -proc createDocumentType*(self: ptr IHTMLDOMImplementation2, bstrQualifiedName: BSTR, pvarPublicId: ptr VARIANT, pvarSystemId: ptr VARIANT, newDocumentType: ptr ptr IDOMDocumentType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createDocumentType(self, bstrQualifiedName, pvarPublicId, pvarSystemId, newDocumentType) -proc createDocument*(self: ptr IHTMLDOMImplementation2, pvarNS: ptr VARIANT, pvarTagName: ptr VARIANT, pDocumentType: ptr IDOMDocumentType, ppnewDocument: ptr ptr IHTMLDocument7): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createDocument(self, pvarNS, pvarTagName, pDocumentType, ppnewDocument) -proc createHTMLDocument*(self: ptr IHTMLDOMImplementation2, bstrTitle: BSTR, ppnewDocument: ptr ptr IHTMLDocument7): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createHTMLDocument(self, bstrTitle, ppnewDocument) -proc hasFeature*(self: ptr IHTMLDOMImplementation2, bstrfeature: BSTR, version: VARIANT, pfHasFeature: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasFeature(self, bstrfeature, version, pfHasFeature) -proc get_length*(self: ptr IHTMLAttributeCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLAttributeCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLAttributeCollection, name: ptr VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, pdisp) -proc getNamedItem*(self: ptr IHTMLAttributeCollection2, bstrName: BSTR, newretNode: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getNamedItem(self, bstrName, newretNode) -proc setNamedItem*(self: ptr IHTMLAttributeCollection2, ppNode: ptr IHTMLDOMAttribute, newretNode: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setNamedItem(self, ppNode, newretNode) -proc removeNamedItem*(self: ptr IHTMLAttributeCollection2, bstrName: BSTR, newretNode: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeNamedItem(self, bstrName, newretNode) -proc getNamedItem*(self: ptr IHTMLAttributeCollection3, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getNamedItem(self, bstrName, ppNodeOut) -proc setNamedItem*(self: ptr IHTMLAttributeCollection3, pNodeIn: ptr IHTMLDOMAttribute, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setNamedItem(self, pNodeIn, ppNodeOut) -proc removeNamedItem*(self: ptr IHTMLAttributeCollection3, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeNamedItem(self, bstrName, ppNodeOut) -proc item*(self: ptr IHTMLAttributeCollection3, index: LONG, ppNodeOut: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppNodeOut) -proc get_length*(self: ptr IHTMLAttributeCollection3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc getNamedItemNS*(self: ptr IHTMLAttributeCollection4, pvarNS: ptr VARIANT, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getNamedItemNS(self, pvarNS, bstrName, ppNodeOut) -proc setNamedItemNS*(self: ptr IHTMLAttributeCollection4, pNodeIn: ptr IHTMLDOMAttribute2, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setNamedItemNS(self, pNodeIn, ppNodeOut) -proc removeNamedItemNS*(self: ptr IHTMLAttributeCollection4, pvarNS: ptr VARIANT, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeNamedItemNS(self, pvarNS, bstrName, ppNodeOut) -proc getNamedItem*(self: ptr IHTMLAttributeCollection4, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getNamedItem(self, bstrName, ppNodeOut) -proc setNamedItem*(self: ptr IHTMLAttributeCollection4, pNodeIn: ptr IHTMLDOMAttribute2, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setNamedItem(self, pNodeIn, ppNodeOut) -proc removeNamedItem*(self: ptr IHTMLAttributeCollection4, bstrName: BSTR, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeNamedItem(self, bstrName, ppNodeOut) -proc item*(self: ptr IHTMLAttributeCollection4, index: LONG, ppNodeOut: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppNodeOut) -proc get_length*(self: ptr IHTMLAttributeCollection4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_length*(self: ptr IHTMLDOMChildrenCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLDOMChildrenCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLDOMChildrenCollection, index: LONG, ppItem: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppItem) -proc item*(self: ptr IHTMLDOMChildrenCollection2, index: LONG, ppItem: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppItem) -proc setAttribute*(self: ptr IHTMLElement, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) -proc getAttribute*(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) -proc removeAttribute*(self: ptr IHTMLElement, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) -proc put_className*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_className(self, v) -proc get_className*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_className(self, p) -proc put_id*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_id(self, v) -proc get_id*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_id(self, p) -proc get_tagName*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagName(self, p) -proc get_parentElement*(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentElement(self, p) -proc get_style*(self: ptr IHTMLElement, p: ptr ptr IHTMLStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p) -proc put_onhelp*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhelp(self, v) -proc get_onhelp*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhelp(self, p) -proc put_onclick*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onclick(self, v) -proc get_onclick*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onclick(self, p) -proc put_ondblclick*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondblclick(self, v) -proc get_ondblclick*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondblclick(self, p) -proc put_onkeydown*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeydown(self, v) -proc get_onkeydown*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeydown(self, p) -proc put_onkeyup*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeyup(self, v) -proc get_onkeyup*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeyup(self, p) -proc put_onkeypress*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeypress(self, v) -proc get_onkeypress*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeypress(self, p) -proc put_onmouseout*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseout(self, v) -proc get_onmouseout*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseout(self, p) -proc put_onmouseover*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseover(self, v) -proc get_onmouseover*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseover(self, p) -proc put_onmousemove*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousemove(self, v) -proc get_onmousemove*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousemove(self, p) -proc put_onmousedown*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousedown(self, v) -proc get_onmousedown*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousedown(self, p) -proc put_onmouseup*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseup(self, v) -proc get_onmouseup*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseup(self, p) -proc get_document*(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p) -proc put_title*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_title(self, v) -proc get_title*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p) -proc put_language*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_language(self, v) -proc get_language*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_language(self, p) -proc put_onselectstart*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselectstart(self, v) -proc get_onselectstart*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselectstart(self, p) -proc scrollIntoView*(self: ptr IHTMLElement, varargStart: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollIntoView(self, varargStart) -proc contains*(self: ptr IHTMLElement, pChild: ptr IHTMLElement, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.contains(self, pChild, pfResult) -proc get_sourceIndex*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sourceIndex(self, p) -proc get_recordNumber*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_recordNumber(self, p) -proc put_lang*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lang(self, v) -proc get_lang*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lang(self, p) -proc get_offsetLeft*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetLeft(self, p) -proc get_offsetTop*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetTop(self, p) -proc get_offsetWidth*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetWidth(self, p) -proc get_offsetHeight*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetHeight(self, p) -proc get_offsetParent*(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetParent(self, p) -proc put_innerHTML*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_innerHTML(self, v) -proc get_innerHTML*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerHTML(self, p) -proc put_innerText*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_innerText(self, v) -proc get_innerText*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerText(self, p) -proc put_outerHTML*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outerHTML(self, v) -proc get_outerHTML*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outerHTML(self, p) -proc put_outerText*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_outerText(self, v) -proc get_outerText*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outerText(self, p) -proc insertAdjacentHTML*(self: ptr IHTMLElement, where: BSTR, html: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertAdjacentHTML(self, where, html) -proc insertAdjacentText*(self: ptr IHTMLElement, where: BSTR, text: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertAdjacentText(self, where, text) -proc get_parentTextEdit*(self: ptr IHTMLElement, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentTextEdit(self, p) -proc get_isTextEdit*(self: ptr IHTMLElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isTextEdit(self, p) -proc click*(self: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.click(self) -proc get_filters*(self: ptr IHTMLElement, p: ptr ptr IHTMLFiltersCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filters(self, p) -proc put_ondragstart*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragstart(self, v) -proc get_ondragstart*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragstart(self, p) -proc toString*(self: ptr IHTMLElement, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc put_onbeforeupdate*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeupdate(self, v) -proc get_onbeforeupdate*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeupdate(self, p) -proc put_onafterupdate*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterupdate(self, v) -proc get_onafterupdate*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterupdate(self, p) -proc put_onerrorupdate*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerrorupdate(self, v) -proc get_onerrorupdate*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerrorupdate(self, p) -proc put_onrowexit*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowexit(self, v) -proc get_onrowexit*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowexit(self, p) -proc put_onrowenter*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowenter(self, v) -proc get_onrowenter*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowenter(self, p) -proc put_ondatasetchanged*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondatasetchanged(self, v) -proc get_ondatasetchanged*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondatasetchanged(self, p) -proc put_ondataavailable*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondataavailable(self, v) -proc get_ondataavailable*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondataavailable(self, p) -proc put_ondatasetcomplete*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondatasetcomplete(self, v) -proc get_ondatasetcomplete*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondatasetcomplete(self, p) -proc put_onfilterchange*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfilterchange(self, v) -proc get_onfilterchange*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfilterchange(self, p) -proc get_children*(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_children(self, p) -proc get_all*(self: ptr IHTMLElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_all(self, p) -proc get_scopeName*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scopeName(self, p) -proc setCapture*(self: ptr IHTMLElement2, containerCapture: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setCapture(self, containerCapture) -proc releaseCapture*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.releaseCapture(self) -proc put_onlosecapture*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onlosecapture(self, v) -proc get_onlosecapture*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onlosecapture(self, p) -proc componentFromPoint*(self: ptr IHTMLElement2, x: LONG, y: LONG, component: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.componentFromPoint(self, x, y, component) -proc doScroll*(self: ptr IHTMLElement2, component: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doScroll(self, component) -proc put_onscroll*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onscroll(self, v) -proc get_onscroll*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onscroll(self, p) -proc put_ondrag*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondrag(self, v) -proc get_ondrag*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondrag(self, p) -proc put_ondragend*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragend(self, v) -proc get_ondragend*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragend(self, p) -proc put_ondragenter*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragenter(self, v) -proc get_ondragenter*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragenter(self, p) -proc put_ondragover*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragover(self, v) -proc get_ondragover*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragover(self, p) -proc put_ondragleave*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragleave(self, v) -proc get_ondragleave*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragleave(self, p) -proc put_ondrop*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondrop(self, v) -proc get_ondrop*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondrop(self, p) -proc put_onbeforecut*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforecut(self, v) -proc get_onbeforecut*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforecut(self, p) -proc put_oncut*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncut(self, v) -proc get_oncut*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncut(self, p) -proc put_onbeforecopy*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforecopy(self, v) -proc get_onbeforecopy*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforecopy(self, p) -proc put_oncopy*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncopy(self, v) -proc get_oncopy*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncopy(self, p) -proc put_onbeforepaste*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforepaste(self, v) -proc get_onbeforepaste*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforepaste(self, p) -proc put_onpaste*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpaste(self, v) -proc get_onpaste*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpaste(self, p) -proc get_currentStyle*(self: ptr IHTMLElement2, p: ptr ptr IHTMLCurrentStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentStyle(self, p) -proc put_onpropertychange*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpropertychange(self, v) -proc get_onpropertychange*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpropertychange(self, p) -proc getClientRects*(self: ptr IHTMLElement2, pRectCol: ptr ptr IHTMLRectCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getClientRects(self, pRectCol) -proc getBoundingClientRect*(self: ptr IHTMLElement2, pRect: ptr ptr IHTMLRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getBoundingClientRect(self, pRect) -proc setExpression*(self: ptr IHTMLElement2, propname: BSTR, expression: BSTR, language: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setExpression(self, propname, expression, language) -proc getExpression*(self: ptr IHTMLElement2, propname: BSTR, expression: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getExpression(self, propname, expression) -proc removeExpression*(self: ptr IHTMLElement2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeExpression(self, propname, pfSuccess) -proc put_tabIndex*(self: ptr IHTMLElement2, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tabIndex(self, v) -proc get_tabIndex*(self: ptr IHTMLElement2, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tabIndex(self, p) -proc focus*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self) -proc put_accessKey*(self: ptr IHTMLElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accessKey(self, v) -proc get_accessKey*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accessKey(self, p) -proc put_onblur*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v) -proc get_onblur*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p) -proc put_onfocus*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v) -proc get_onfocus*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p) -proc put_onresize*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onresize(self, v) -proc get_onresize*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onresize(self, p) -proc blur*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.blur(self) -proc addFilter*(self: ptr IHTMLElement2, pUnk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addFilter(self, pUnk) -proc removeFilter*(self: ptr IHTMLElement2, pUnk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeFilter(self, pUnk) -proc get_clientHeight*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientHeight(self, p) -proc get_clientWidth*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientWidth(self, p) -proc get_clientTop*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientTop(self, p) -proc get_clientLeft*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientLeft(self, p) -proc attachEvent*(self: ptr IHTMLElement2, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.attachEvent(self, event, pDisp, pfResult) -proc detachEvent*(self: ptr IHTMLElement2, event: BSTR, pDisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detachEvent(self, event, pDisp) -proc get_readyState*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onreadystatechange*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc put_onrowsdelete*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowsdelete(self, v) -proc get_onrowsdelete*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowsdelete(self, p) -proc put_onrowsinserted*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowsinserted(self, v) -proc get_onrowsinserted*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowsinserted(self, p) -proc put_oncellchange*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncellchange(self, v) -proc get_oncellchange*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncellchange(self, p) -proc put_dir*(self: ptr IHTMLElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dir(self, v) -proc get_dir*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dir(self, p) -proc createControlRange*(self: ptr IHTMLElement2, range: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createControlRange(self, range) -proc get_scrollHeight*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollHeight(self, p) -proc get_scrollWidth*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollWidth(self, p) -proc put_scrollTop*(self: ptr IHTMLElement2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollTop(self, v) -proc get_scrollTop*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollTop(self, p) -proc put_scrollLeft*(self: ptr IHTMLElement2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollLeft(self, v) -proc get_scrollLeft*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollLeft(self, p) -proc clearAttributes*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearAttributes(self) -proc mergeAttributes*(self: ptr IHTMLElement2, mergeThis: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.mergeAttributes(self, mergeThis) -proc put_oncontextmenu*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncontextmenu(self, v) -proc get_oncontextmenu*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncontextmenu(self, p) -proc insertAdjacentElement*(self: ptr IHTMLElement2, where: BSTR, insertedElement: ptr IHTMLElement, inserted: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertAdjacentElement(self, where, insertedElement, inserted) -proc applyElement*(self: ptr IHTMLElement2, apply: ptr IHTMLElement, where: BSTR, applied: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.applyElement(self, apply, where, applied) -proc getAdjacentText*(self: ptr IHTMLElement2, where: BSTR, text: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAdjacentText(self, where, text) -proc replaceAdjacentText*(self: ptr IHTMLElement2, where: BSTR, newText: BSTR, oldText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceAdjacentText(self, where, newText, oldText) -proc get_canHaveChildren*(self: ptr IHTMLElement2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_canHaveChildren(self, p) -proc addBehavior*(self: ptr IHTMLElement2, bstrUrl: BSTR, pvarFactory: ptr VARIANT, pCookie: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addBehavior(self, bstrUrl, pvarFactory, pCookie) -proc removeBehavior*(self: ptr IHTMLElement2, cookie: LONG, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeBehavior(self, cookie, pfResult) -proc get_runtimeStyle*(self: ptr IHTMLElement2, p: ptr ptr IHTMLStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_runtimeStyle(self, p) -proc get_behaviorUrns*(self: ptr IHTMLElement2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behaviorUrns(self, p) -proc put_tagUrn*(self: ptr IHTMLElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tagUrn(self, v) -proc get_tagUrn*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagUrn(self, p) -proc put_onbeforeeditfocus*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeeditfocus(self, v) -proc get_onbeforeeditfocus*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeeditfocus(self, p) -proc get_readyStateValue*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyStateValue(self, p) -proc getElementsByTagName*(self: ptr IHTMLElement2, v: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByTagName(self, v, pelColl) -proc mergeAttributes*(self: ptr IHTMLElement3, mergeThis: ptr IHTMLElement, pvarFlags: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.mergeAttributes(self, mergeThis, pvarFlags) -proc get_isMultiLine*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isMultiLine(self, p) -proc get_canHaveHTML*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_canHaveHTML(self, p) -proc put_onlayoutcomplete*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onlayoutcomplete(self, v) -proc get_onlayoutcomplete*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onlayoutcomplete(self, p) -proc put_onpage*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpage(self, v) -proc get_onpage*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpage(self, p) -proc put_inflateBlock*(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_inflateBlock(self, v) -proc get_inflateBlock*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_inflateBlock(self, p) -proc put_onbeforedeactivate*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforedeactivate(self, v) -proc get_onbeforedeactivate*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforedeactivate(self, p) -proc setActive*(self: ptr IHTMLElement3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setActive(self) -proc put_contentEditable*(self: ptr IHTMLElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_contentEditable(self, v) -proc get_contentEditable*(self: ptr IHTMLElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentEditable(self, p) -proc get_isContentEditable*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isContentEditable(self, p) -proc put_hideFocus*(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hideFocus(self, v) -proc get_hideFocus*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hideFocus(self, p) -proc put_disabled*(self: ptr IHTMLElement3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_isDisabled*(self: ptr IHTMLElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isDisabled(self, p) -proc put_onmove*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmove(self, v) -proc get_onmove*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmove(self, p) -proc put_oncontrolselect*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncontrolselect(self, v) -proc get_oncontrolselect*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncontrolselect(self, p) -proc fireEvent*(self: ptr IHTMLElement3, bstrEventName: BSTR, pvarEventObject: ptr VARIANT, pfCancelled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fireEvent(self, bstrEventName, pvarEventObject, pfCancelled) -proc put_onresizestart*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onresizestart(self, v) -proc get_onresizestart*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onresizestart(self, p) -proc put_onresizeend*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onresizeend(self, v) -proc get_onresizeend*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onresizeend(self, p) -proc put_onmovestart*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmovestart(self, v) -proc get_onmovestart*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmovestart(self, p) -proc put_onmoveend*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmoveend(self, v) -proc get_onmoveend*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmoveend(self, p) -proc put_onmouseenter*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseenter(self, v) -proc get_onmouseenter*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseenter(self, p) -proc put_onmouseleave*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseleave(self, v) -proc get_onmouseleave*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseleave(self, p) -proc put_onactivate*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onactivate(self, v) -proc get_onactivate*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onactivate(self, p) -proc put_ondeactivate*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondeactivate(self, v) -proc get_ondeactivate*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondeactivate(self, p) -proc dragDrop*(self: ptr IHTMLElement3, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.dragDrop(self, pfRet) -proc get_glyphMode*(self: ptr IHTMLElement3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_glyphMode(self, p) -proc put_onmousewheel*(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousewheel(self, v) -proc get_onmousewheel*(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousewheel(self, p) -proc normalize*(self: ptr IHTMLElement4): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.normalize(self) -proc getAttributeNode*(self: ptr IHTMLElement4, bstrname: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttributeNode(self, bstrname, ppAttribute) -proc setAttributeNode*(self: ptr IHTMLElement4, pattr: ptr IHTMLDOMAttribute, ppretAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttributeNode(self, pattr, ppretAttribute) -proc removeAttributeNode*(self: ptr IHTMLElement4, pattr: ptr IHTMLDOMAttribute, ppretAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttributeNode(self, pattr, ppretAttribute) -proc put_onbeforeactivate*(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeactivate(self, v) -proc get_onbeforeactivate*(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeactivate(self, p) -proc put_onfocusin*(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocusin(self, v) -proc get_onfocusin*(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocusin(self, p) -proc put_onfocusout*(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocusout(self, v) -proc get_onfocusout*(self: ptr IHTMLElement4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocusout(self, p) -proc querySelector*(self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.querySelector(self, v, pel) -proc querySelectorAll*(self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.querySelectorAll(self, v, pel) -proc DrawToDC*(self: ptr IHTMLElementRender, hDC: HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DrawToDC(self, hDC) -proc SetDocumentPrinter*(self: ptr IHTMLElementRender, bstrPrinterName: BSTR, hDC: HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDocumentPrinter(self, bstrPrinterName, hDC) -proc get_uniqueNumber*(self: ptr IHTMLUniqueName, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_uniqueNumber(self, p) -proc get_uniqueID*(self: ptr IHTMLUniqueName, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_uniqueID(self, p) -proc getAttributeNode*(self: ptr IHTMLElement5, bstrname: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttributeNode(self, bstrname, ppretAttribute) -proc setAttributeNode*(self: ptr IHTMLElement5, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttributeNode(self, pattr, ppretAttribute) -proc removeAttributeNode*(self: ptr IHTMLElement5, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttributeNode(self, pattr, ppretAttribute) -proc hasAttribute*(self: ptr IHTMLElement5, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttribute(self, name, pfHasAttribute) -proc put_role*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_role(self, v) -proc get_role*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_role(self, p) -proc put_ariaBusy*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaBusy(self, v) -proc get_ariaBusy*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaBusy(self, p) -proc put_ariaChecked*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaChecked(self, v) -proc get_ariaChecked*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaChecked(self, p) -proc put_ariaDisabled*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaDisabled(self, v) -proc get_ariaDisabled*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaDisabled(self, p) -proc put_ariaExpanded*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaExpanded(self, v) -proc get_ariaExpanded*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaExpanded(self, p) -proc put_ariaHaspopup*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaHaspopup(self, v) -proc get_ariaHaspopup*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaHaspopup(self, p) -proc put_ariaHidden*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaHidden(self, v) -proc get_ariaHidden*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaHidden(self, p) -proc put_ariaInvalid*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaInvalid(self, v) -proc get_ariaInvalid*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaInvalid(self, p) -proc put_ariaMultiselectable*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaMultiselectable(self, v) -proc get_ariaMultiselectable*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaMultiselectable(self, p) -proc put_ariaPressed*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaPressed(self, v) -proc get_ariaPressed*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaPressed(self, p) -proc put_ariaReadonly*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaReadonly(self, v) -proc get_ariaReadonly*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaReadonly(self, p) -proc put_ariaRequired*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaRequired(self, v) -proc get_ariaRequired*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaRequired(self, p) -proc put_ariaSecret*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaSecret(self, v) -proc get_ariaSecret*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaSecret(self, p) -proc put_ariaSelected*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaSelected(self, v) -proc get_ariaSelected*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaSelected(self, p) -proc getAttribute*(self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, AttributeValue) -proc setAttribute*(self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue) -proc removeAttribute*(self: ptr IHTMLElement5, strAttributeName: BSTR, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, pfSuccess) -proc get_attributes*(self: ptr IHTMLElement5, p: ptr ptr IHTMLAttributeCollection3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attributes(self, p) -proc put_ariaValuenow*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaValuenow(self, v) -proc get_ariaValuenow*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaValuenow(self, p) -proc put_ariaPosinset*(self: ptr IHTMLElement5, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaPosinset(self, v) -proc get_ariaPosinset*(self: ptr IHTMLElement5, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaPosinset(self, p) -proc put_ariaSetsize*(self: ptr IHTMLElement5, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaSetsize(self, v) -proc get_ariaSetsize*(self: ptr IHTMLElement5, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaSetsize(self, p) -proc put_ariaLevel*(self: ptr IHTMLElement5, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaLevel(self, v) -proc get_ariaLevel*(self: ptr IHTMLElement5, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaLevel(self, p) -proc put_ariaValuemin*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaValuemin(self, v) -proc get_ariaValuemin*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaValuemin(self, p) -proc put_ariaValuemax*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaValuemax(self, v) -proc get_ariaValuemax*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaValuemax(self, p) -proc put_ariaControls*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaControls(self, v) -proc get_ariaControls*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaControls(self, p) -proc put_ariaDescribedby*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaDescribedby(self, v) -proc get_ariaDescribedby*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaDescribedby(self, p) -proc put_ariaFlowto*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaFlowto(self, v) -proc get_ariaFlowto*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaFlowto(self, p) -proc put_ariaLabelledby*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaLabelledby(self, v) -proc get_ariaLabelledby*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaLabelledby(self, p) -proc put_ariaActivedescendant*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaActivedescendant(self, v) -proc get_ariaActivedescendant*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaActivedescendant(self, p) -proc put_ariaOwns*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaOwns(self, v) -proc get_ariaOwns*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaOwns(self, p) -proc hasAttributes*(self: ptr IHTMLElement5, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttributes(self, pfHasAttributes) -proc put_ariaLive*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaLive(self, v) -proc get_ariaLive*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaLive(self, p) -proc put_ariaRelevant*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ariaRelevant(self, v) -proc get_ariaRelevant*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ariaRelevant(self, p) -proc getAttributeNS*(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttributeNS(self, pvarNS, strAttributeName, AttributeValue) -proc setAttributeNS*(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR, pvarAttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttributeNS(self, pvarNS, strAttributeName, pvarAttributeValue) -proc removeAttributeNS*(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttributeNS(self, pvarNS, strAttributeName) -proc getAttributeNodeNS*(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, bstrname: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttributeNodeNS(self, pvarNS, bstrname, ppretAttribute) -proc setAttributeNodeNS*(self: ptr IHTMLElement6, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttributeNodeNS(self, pattr, ppretAttribute) -proc hasAttributeNS*(self: ptr IHTMLElement6, pvarNS: ptr VARIANT, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttributeNS(self, pvarNS, name, pfHasAttribute) -proc getAttribute*(self: ptr IHTMLElement6, strAttributeName: BSTR, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, AttributeValue) -proc setAttribute*(self: ptr IHTMLElement6, strAttributeName: BSTR, pvarAttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, pvarAttributeValue) -proc removeAttribute*(self: ptr IHTMLElement6, strAttributeName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName) -proc getAttributeNode*(self: ptr IHTMLElement6, strAttributeName: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttributeNode(self, strAttributeName, ppretAttribute) -proc setAttributeNode*(self: ptr IHTMLElement6, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttributeNode(self, pattr, ppretAttribute) -proc removeAttributeNode*(self: ptr IHTMLElement6, pattr: ptr IHTMLDOMAttribute2, ppretAttribute: ptr ptr IHTMLDOMAttribute2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttributeNode(self, pattr, ppretAttribute) -proc hasAttribute*(self: ptr IHTMLElement6, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttribute(self, name, pfHasAttribute) -proc getElementsByTagNameNS*(self: ptr IHTMLElement6, varNS: ptr VARIANT, bstrLocalName: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByTagNameNS(self, varNS, bstrLocalName, pelColl) -proc get_tagName*(self: ptr IHTMLElement6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagName(self, p) -proc get_nodeName*(self: ptr IHTMLElement6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeName(self, p) -proc getElementsByClassName*(self: ptr IHTMLElement6, v: BSTR, pel: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByClassName(self, v, pel) -proc msMatchesSelector*(self: ptr IHTMLElement6, v: BSTR, pfMatches: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msMatchesSelector(self, v, pfMatches) -proc put_onabort*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v) -proc get_onabort*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p) -proc put_oncanplay*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncanplay(self, v) -proc get_oncanplay*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncanplay(self, p) -proc put_oncanplaythrough*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncanplaythrough(self, v) -proc get_oncanplaythrough*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncanplaythrough(self, p) -proc put_onchange*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_ondurationchange*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondurationchange(self, v) -proc get_ondurationchange*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondurationchange(self, p) -proc put_onemptied*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onemptied(self, v) -proc get_onemptied*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onemptied(self, p) -proc put_onended*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onended(self, v) -proc get_onended*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onended(self, p) -proc put_onerror*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_oninput*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oninput(self, v) -proc get_oninput*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oninput(self, p) -proc put_onload*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onloadeddata*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadeddata(self, v) -proc get_onloadeddata*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadeddata(self, p) -proc put_onloadedmetadata*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadedmetadata(self, v) -proc get_onloadedmetadata*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadedmetadata(self, p) -proc put_onloadstart*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadstart(self, v) -proc get_onloadstart*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadstart(self, p) -proc put_onpause*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpause(self, v) -proc get_onpause*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpause(self, p) -proc put_onplay*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onplay(self, v) -proc get_onplay*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onplay(self, p) -proc put_onplaying*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onplaying(self, v) -proc get_onplaying*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onplaying(self, p) -proc put_onprogress*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onprogress(self, v) -proc get_onprogress*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onprogress(self, p) -proc put_onratechange*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onratechange(self, v) -proc get_onratechange*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onratechange(self, p) -proc put_onreset*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreset(self, v) -proc get_onreset*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreset(self, p) -proc put_onseeked*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onseeked(self, v) -proc get_onseeked*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onseeked(self, p) -proc put_onseeking*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onseeking(self, v) -proc get_onseeking*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onseeking(self, p) -proc put_onselect*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_onstalled*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstalled(self, v) -proc get_onstalled*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstalled(self, p) -proc put_onsubmit*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsubmit(self, v) -proc get_onsubmit*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsubmit(self, p) -proc put_onsuspend*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsuspend(self, v) -proc get_onsuspend*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsuspend(self, p) -proc put_ontimeupdate*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ontimeupdate(self, v) -proc get_ontimeupdate*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ontimeupdate(self, p) -proc put_onvolumechange*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onvolumechange(self, v) -proc get_onvolumechange*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onvolumechange(self, p) -proc put_onwaiting*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onwaiting(self, v) -proc get_onwaiting*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onwaiting(self, p) -proc hasAttributes*(self: ptr IHTMLElement6, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttributes(self, pfHasAttributes) -proc put_onmspointerdown*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerdown(self, v) -proc get_onmspointerdown*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerdown(self, p) -proc put_onmspointermove*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointermove(self, v) -proc get_onmspointermove*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointermove(self, p) -proc put_onmspointerup*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerup(self, v) -proc get_onmspointerup*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerup(self, p) -proc put_onmspointerover*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerover(self, v) -proc get_onmspointerover*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerover(self, p) -proc put_onmspointerout*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerout(self, v) -proc get_onmspointerout*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerout(self, p) -proc put_onmspointercancel*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointercancel(self, v) -proc get_onmspointercancel*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointercancel(self, p) -proc put_onmspointerhover*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerhover(self, v) -proc get_onmspointerhover*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerhover(self, p) -proc put_onmslostpointercapture*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmslostpointercapture(self, v) -proc get_onmslostpointercapture*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmslostpointercapture(self, p) -proc put_onmsgotpointercapture*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgotpointercapture(self, v) -proc get_onmsgotpointercapture*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgotpointercapture(self, p) -proc put_onmsgesturestart*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturestart(self, v) -proc get_onmsgesturestart*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturestart(self, p) -proc put_onmsgesturechange*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturechange(self, v) -proc get_onmsgesturechange*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturechange(self, p) -proc put_onmsgestureend*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgestureend(self, v) -proc get_onmsgestureend*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgestureend(self, p) -proc put_onmsgesturehold*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturehold(self, v) -proc get_onmsgesturehold*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturehold(self, p) -proc put_onmsgesturetap*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturetap(self, v) -proc get_onmsgesturetap*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturetap(self, p) -proc put_onmsgesturedoubletap*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturedoubletap(self, v) -proc get_onmsgesturedoubletap*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturedoubletap(self, p) -proc put_onmsinertiastart*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsinertiastart(self, v) -proc get_onmsinertiastart*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsinertiastart(self, p) -proc msSetPointerCapture*(self: ptr IHTMLElement7, pointerId: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msSetPointerCapture(self, pointerId) -proc msReleasePointerCapture*(self: ptr IHTMLElement7, pointerId: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msReleasePointerCapture(self, pointerId) -proc put_onmstransitionstart*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmstransitionstart(self, v) -proc get_onmstransitionstart*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmstransitionstart(self, p) -proc put_onmstransitionend*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmstransitionend(self, v) -proc get_onmstransitionend*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmstransitionend(self, p) -proc put_onmsanimationstart*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsanimationstart(self, v) -proc get_onmsanimationstart*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsanimationstart(self, p) -proc put_onmsanimationend*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsanimationend(self, v) -proc get_onmsanimationend*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsanimationend(self, p) -proc put_onmsanimationiteration*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsanimationiteration(self, v) -proc get_onmsanimationiteration*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsanimationiteration(self, p) -proc put_oninvalid*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oninvalid(self, v) -proc get_oninvalid*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oninvalid(self, p) -proc put_xmsAcceleratorKey*(self: ptr IHTMLElement7, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_xmsAcceleratorKey(self, v) -proc get_xmsAcceleratorKey*(self: ptr IHTMLElement7, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmsAcceleratorKey(self, p) -proc put_spellcheck*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_spellcheck(self, v) -proc get_spellcheck*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_spellcheck(self, p) -proc put_onmsmanipulationstatechanged*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsmanipulationstatechanged(self, v) -proc get_onmsmanipulationstatechanged*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsmanipulationstatechanged(self, p) -proc put_oncuechange*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncuechange(self, v) -proc get_oncuechange*(self: ptr IHTMLElement7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncuechange(self, p) -proc msGetRulesApplied*(self: ptr IHTMLElementAppliedStyles, ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msGetRulesApplied(self, ppRulesAppliedCollection) -proc msGetRulesAppliedWithAncestor*(self: ptr IHTMLElementAppliedStyles, varContext: VARIANT, ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msGetRulesAppliedWithAncestor(self, varContext, ppRulesAppliedCollection) -proc get_firstElementChild*(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_firstElementChild(self, p) -proc get_lastElementChild*(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastElementChild(self, p) -proc get_previousElementSibling*(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousElementSibling(self, p) -proc get_nextElementSibling*(self: ptr IElementTraversal, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nextElementSibling(self, p) -proc get_childElementCount*(self: ptr IElementTraversal, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childElementCount(self, p) -proc put_dataFld*(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dataFld(self, v) -proc get_dataFld*(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataFld(self, p) -proc put_dataSrc*(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dataSrc(self, v) -proc get_dataSrc*(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataSrc(self, p) -proc put_dataFormatAs*(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dataFormatAs(self, v) -proc get_dataFormatAs*(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataFormatAs(self, p) -proc get_style*(self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p) -proc put_tabStop*(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tabStop(self, v) -proc get_tabStop*(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tabStop(self, p) -proc put_viewInheritStyle*(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_viewInheritStyle(self, v) -proc get_viewInheritStyle*(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewInheritStyle(self, p) -proc put_viewMasterTab*(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_viewMasterTab(self, v) -proc get_viewMasterTab*(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewMasterTab(self, p) -proc put_scrollSegmentX*(self: ptr IHTMLElementDefaults, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollSegmentX(self, v) -proc get_scrollSegmentX*(self: ptr IHTMLElementDefaults, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollSegmentX(self, p) -proc put_scrollSegmentY*(self: ptr IHTMLElementDefaults, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollSegmentY(self, v) -proc get_scrollSegmentY*(self: ptr IHTMLElementDefaults, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollSegmentY(self, p) -proc put_isMultiLine*(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_isMultiLine(self, v) -proc get_isMultiLine*(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isMultiLine(self, p) -proc put_contentEditable*(self: ptr IHTMLElementDefaults, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_contentEditable(self, v) -proc get_contentEditable*(self: ptr IHTMLElementDefaults, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentEditable(self, p) -proc put_canHaveHTML*(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_canHaveHTML(self, v) -proc get_canHaveHTML*(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_canHaveHTML(self, p) -proc putref_viewLink*(self: ptr IHTMLElementDefaults, v: ptr IHTMLDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_viewLink(self, v) -proc get_viewLink*(self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewLink(self, p) -proc put_frozen*(self: ptr IHTMLElementDefaults, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frozen(self, v) -proc get_frozen*(self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frozen(self, p) -proc get_element*(self: ptr IHTCDefaultDispatch, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_element(self, p) -proc createEventObject*(self: ptr IHTCDefaultDispatch, eventObj: ptr ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createEventObject(self, eventObj) -proc get_defaults*(self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaults(self, p) -proc get_document*(self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p) -proc fireChange*(self: ptr IHTCPropertyBehavior): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fireChange(self) -proc put_value*(self: ptr IHTCPropertyBehavior, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTCPropertyBehavior, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc fire*(self: ptr IHTCEventBehavior, pvar: ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fire(self, pvar) -proc fireEvent*(self: ptr IHTCAttachBehavior, evt: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fireEvent(self, evt) -proc detachEvent*(self: ptr IHTCAttachBehavior): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detachEvent(self) -proc fireEvent*(self: ptr IHTCAttachBehavior2, evt: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fireEvent(self, evt) -proc get_urn*(self: ptr IHTCDescBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_urn(self, p) -proc get_name*(self: ptr IHTCDescBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc get_length*(self: ptr IHTMLUrnCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLUrnCollection, index: LONG, ppUrn: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppUrn) -proc get_recordset*(self: ptr IHTMLGenericElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_recordset(self, p) -proc namedRecordset*(self: ptr IHTMLGenericElement, dataMember: BSTR, hierarchy: ptr VARIANT, ppRecordset: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedRecordset(self, dataMember, hierarchy, ppRecordset) -proc put_selectorText*(self: ptr IHTMLStyleSheetRule, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectorText(self, v) -proc get_selectorText*(self: ptr IHTMLStyleSheetRule, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectorText(self, p) -proc get_style*(self: ptr IHTMLStyleSheetRule, p: ptr ptr IHTMLRuleStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p) -proc get_readOnly*(self: ptr IHTMLStyleSheetRule, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p) -proc get_msSpecificity*(self: ptr IHTMLStyleSheetRuleApplied, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msSpecificity(self, p) -proc msGetSpecificity*(self: ptr IHTMLStyleSheetRuleApplied, index: LONG, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msGetSpecificity(self, index, p) -proc put_selectorText*(self: ptr IHTMLStyleSheetRule2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectorText(self, v) -proc get_selectorText*(self: ptr IHTMLStyleSheetRule2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectorText(self, p) -proc get_length*(self: ptr IHTMLStyleSheetRulesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLStyleSheetRulesCollection, index: LONG, ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppHTMLStyleSheetRule) -proc get_length*(self: ptr IHTMLStyleSheetRulesCollection2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLStyleSheetRulesCollection2, index: LONG, ppHTMLCSSRule: ptr ptr IHTMLCSSRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppHTMLCSSRule) -proc get_selector*(self: ptr IHTMLStyleSheetPage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selector(self, p) -proc get_pseudoClass*(self: ptr IHTMLStyleSheetPage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pseudoClass(self, p) -proc put_selectorText*(self: ptr IHTMLStyleSheetPage2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectorText(self, v) -proc get_selectorText*(self: ptr IHTMLStyleSheetPage2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectorText(self, p) -proc get_style*(self: ptr IHTMLStyleSheetPage2, p: ptr ptr IHTMLRuleStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p) -proc get_length*(self: ptr IHTMLStyleSheetPagesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLStyleSheetPagesCollection, index: LONG, ppHTMLStyleSheetPage: ptr ptr IHTMLStyleSheetPage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppHTMLStyleSheetPage) -proc put_title*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_title(self, v) -proc get_title*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p) -proc get_parentStyleSheet*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentStyleSheet(self, p) -proc get_owningElement*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_owningElement(self, p) -proc put_disabled*(self: ptr IHTMLStyleSheet, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_readOnly*(self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p) -proc get_imports*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imports(self, p) -proc put_href*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc get_type*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_id*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_id(self, p) -proc addImport*(self: ptr IHTMLStyleSheet, bstrURL: BSTR, lIndex: LONG, plIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addImport(self, bstrURL, lIndex, plIndex) -proc addRule*(self: ptr IHTMLStyleSheet, bstrSelector: BSTR, bstrStyle: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addRule(self, bstrSelector, bstrStyle, lIndex, plNewIndex) -proc removeImport*(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeImport(self, lIndex) -proc removeRule*(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeRule(self, lIndex) -proc put_media*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc put_cssText*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cssText(self, v) -proc get_cssText*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssText(self, p) -proc get_rules*(self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rules(self, p) -proc get_pages*(self: ptr IHTMLStyleSheet2, p: ptr ptr IHTMLStyleSheetPagesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pages(self, p) -proc addPageRule*(self: ptr IHTMLStyleSheet2, bstrSelector: BSTR, bstrStyle: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addPageRule(self, bstrSelector, bstrStyle, lIndex, plNewIndex) -proc put_href*(self: ptr IHTMLStyleSheet3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLStyleSheet3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc get_isAlternate*(self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isAlternate(self, p) -proc get_isPrefAlternate*(self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isPrefAlternate(self, p) -proc get_type*(self: ptr IHTMLStyleSheet4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_href*(self: ptr IHTMLStyleSheet4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc get_title*(self: ptr IHTMLStyleSheet4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p) -proc get_ownerNode*(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerNode(self, p) -proc get_ownerRule*(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLCSSRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerRule(self, p) -proc get_cssRules*(self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLStyleSheetRulesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cssRules(self, p) -proc get_media*(self: ptr IHTMLStyleSheet4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc insertRule*(self: ptr IHTMLStyleSheet4, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertRule(self, bstrRule, lIndex, plNewIndex) -proc deleteRule*(self: ptr IHTMLStyleSheet4, lIndex: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRule(self, lIndex) -proc get_length*(self: ptr IHTMLStyleSheetsCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLStyleSheetsCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLStyleSheetsCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult) -proc item*(self: ptr IHTMLStyleSheetsCollection2, index: LONG, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pvarResult) -proc put_href*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_rel*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rel(self, v) -proc get_rel*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rel(self, p) -proc put_rev*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rev(self, v) -proc get_rev*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rev(self, p) -proc put_type*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_readyState*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onreadystatechange*(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc put_onload*(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onerror*(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLLinkElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc get_styleSheet*(self: ptr IHTMLLinkElement, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleSheet(self, p) -proc put_disabled*(self: ptr IHTMLLinkElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLLinkElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc put_media*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc put_target*(self: ptr IHTMLLinkElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_target(self, v) -proc get_target*(self: ptr IHTMLLinkElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc put_charset*(self: ptr IHTMLLinkElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, v) -proc get_charset*(self: ptr IHTMLLinkElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_hreflang*(self: ptr IHTMLLinkElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hreflang(self, v) -proc get_hreflang*(self: ptr IHTMLLinkElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hreflang(self, p) -proc put_href*(self: ptr IHTMLLinkElement4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLLinkElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc get_sheet*(self: ptr IHTMLLinkElement5, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sheet(self, p) -proc get_htmlText*(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_htmlText(self, p) -proc put_text*(self: ptr IHTMLTxtRange, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v) -proc get_text*(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc parentElement*(self: ptr IHTMLTxtRange, parent: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.parentElement(self, parent) -proc duplicate*(self: ptr IHTMLTxtRange, Duplicate: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.duplicate(self, Duplicate) -proc inRange*(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, InRange: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.inRange(self, Range, InRange) -proc isEqual*(self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, IsEqual: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isEqual(self, Range, IsEqual) -proc scrollIntoView*(self: ptr IHTMLTxtRange, fStart: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollIntoView(self, fStart) -proc collapse*(self: ptr IHTMLTxtRange, Start: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.collapse(self, Start) -proc expand*(self: ptr IHTMLTxtRange, Unit: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.expand(self, Unit, Success) -proc move*(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.move(self, Unit, Count, ActualCount) -proc moveStart*(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveStart(self, Unit, Count, ActualCount) -proc moveEnd*(self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveEnd(self, Unit, Count, ActualCount) -proc select*(self: ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self) -proc pasteHTML*(self: ptr IHTMLTxtRange, html: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.pasteHTML(self, html) -proc moveToElementText*(self: ptr IHTMLTxtRange, element: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveToElementText(self, element) -proc setEndPoint*(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setEndPoint(self, how, SourceRange) -proc compareEndPoints*(self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange, ret: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.compareEndPoints(self, how, SourceRange, ret) -proc findText*(self: ptr IHTMLTxtRange, String: BSTR, count: LONG, Flags: LONG, Success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.findText(self, String, count, Flags, Success) -proc moveToPoint*(self: ptr IHTMLTxtRange, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveToPoint(self, x, y) -proc getBookmark*(self: ptr IHTMLTxtRange, Boolmark: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getBookmark(self, Boolmark) -proc moveToBookmark*(self: ptr IHTMLTxtRange, Bookmark: BSTR, Success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveToBookmark(self, Bookmark, Success) -proc queryCommandSupported*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandSupported(self, cmdID, pfRet) -proc queryCommandEnabled*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet) -proc queryCommandState*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandState(self, cmdID, pfRet) -proc queryCommandIndeterm*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet) -proc queryCommandText*(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandText(self, cmdID, pcmdText) -proc queryCommandValue*(self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue) -proc execCommand*(self: ptr IHTMLTxtRange, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet) -proc execCommandShowHelp*(self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet) -proc get_offsetTop*(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetTop(self, p) -proc get_offsetLeft*(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetLeft(self, p) -proc get_boundingTop*(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boundingTop(self, p) -proc get_boundingLeft*(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boundingLeft(self, p) -proc get_boundingWidth*(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boundingWidth(self, p) -proc get_boundingHeight*(self: ptr IHTMLTextRangeMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boundingHeight(self, p) -proc getClientRects*(self: ptr IHTMLTextRangeMetrics2, pRectCol: ptr ptr IHTMLRectCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getClientRects(self, pRectCol) -proc getBoundingClientRect*(self: ptr IHTMLTextRangeMetrics2, pRect: ptr ptr IHTMLRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getBoundingClientRect(self, pRect) -proc get_length*(self: ptr IHTMLTxtRangeCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLTxtRangeCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLTxtRangeCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult) -proc get_startContainer*(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_startContainer(self, p) -proc get_startOffset*(self: ptr IHTMLDOMRange, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_startOffset(self, p) -proc get_endContainer*(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_endContainer(self, p) -proc get_endOffset*(self: ptr IHTMLDOMRange, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_endOffset(self, p) -proc get_collapsed*(self: ptr IHTMLDOMRange, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_collapsed(self, p) -proc get_commonAncestorContainer*(self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_commonAncestorContainer(self, p) -proc setStart*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setStart(self, refNode, offset) -proc setEnd*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setEnd(self, refNode, offset) -proc setStartBefore*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setStartBefore(self, refNode) -proc setStartAfter*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setStartAfter(self, refNode) -proc setEndBefore*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setEndBefore(self, refNode) -proc setEndAfter*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setEndAfter(self, refNode) -proc collapse*(self: ptr IHTMLDOMRange, toStart: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.collapse(self, toStart) -proc selectNode*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.selectNode(self, refNode) -proc selectNodeContents*(self: ptr IHTMLDOMRange, refNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.selectNodeContents(self, refNode) -proc compareBoundaryPoints*(self: ptr IHTMLDOMRange, how: int16, sourceRange: ptr IDispatch, compareResult: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.compareBoundaryPoints(self, how, sourceRange, compareResult) -proc deleteContents*(self: ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteContents(self) -proc extractContents*(self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.extractContents(self, ppDocumentFragment) -proc cloneContents*(self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.cloneContents(self, ppDocumentFragment) -proc insertNode*(self: ptr IHTMLDOMRange, newNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertNode(self, newNode) -proc surroundContents*(self: ptr IHTMLDOMRange, newParent: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.surroundContents(self, newParent) -proc cloneRange*(self: ptr IHTMLDOMRange, ppClonedRange: ptr ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.cloneRange(self, ppClonedRange) -proc toString*(self: ptr IHTMLDOMRange, pRangeString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, pRangeString) -proc detach*(self: ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detach(self) -proc getClientRects*(self: ptr IHTMLDOMRange, ppRectCol: ptr ptr IHTMLRectCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getClientRects(self, ppRectCol) -proc getBoundingClientRect*(self: ptr IHTMLDOMRange, ppRect: ptr ptr IHTMLRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getBoundingClientRect(self, ppRect) -proc put_action*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_action(self, v) -proc get_action*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_action(self, p) -proc put_dir*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dir(self, v) -proc get_dir*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dir(self, p) -proc put_encoding*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_encoding(self, v) -proc get_encoding*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_encoding(self, p) -proc put_method*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_method(self, v) -proc get_method*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_method(self, p) -proc get_elements*(self: ptr IHTMLFormElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_elements(self, p) -proc put_target*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_target(self, v) -proc get_target*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc put_name*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_onsubmit*(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsubmit(self, v) -proc get_onsubmit*(self: ptr IHTMLFormElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsubmit(self, p) -proc put_onreset*(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreset(self, v) -proc get_onreset*(self: ptr IHTMLFormElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreset(self, p) -proc submit*(self: ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.submit(self) -proc reset*(self: ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.reset(self) -proc put_length*(self: ptr IHTMLFormElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v) -proc get_length*(self: ptr IHTMLFormElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLFormElement, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLFormElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, index, pdisp) -proc tags*(self: ptr IHTMLFormElement, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.tags(self, tagName, pdisp) -proc put_acceptCharset*(self: ptr IHTMLFormElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_acceptCharset(self, v) -proc get_acceptCharset*(self: ptr IHTMLFormElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_acceptCharset(self, p) -proc urns*(self: ptr IHTMLFormElement2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.urns(self, urn, pdisp) -proc namedItem*(self: ptr IHTMLFormElement3, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedItem(self, name, pdisp) -proc appendNameValuePair*(self: ptr IHTMLSubmitData, name: BSTR, value: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendNameValuePair(self, name, value) -proc appendNameFilePair*(self: ptr IHTMLSubmitData, name: BSTR, filename: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendNameFilePair(self, name, filename) -proc appendItemSeparator*(self: ptr IHTMLSubmitData): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItemSeparator(self) -proc put_action*(self: ptr IHTMLFormElement4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_action(self, v) -proc get_action*(self: ptr IHTMLFormElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_action(self, p) -proc put_tabIndex*(self: ptr IHTMLControlElement, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tabIndex(self, v) -proc get_tabIndex*(self: ptr IHTMLControlElement, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tabIndex(self, p) -proc focus*(self: ptr IHTMLControlElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self) -proc put_accessKey*(self: ptr IHTMLControlElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accessKey(self, v) -proc get_accessKey*(self: ptr IHTMLControlElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accessKey(self, p) -proc put_onblur*(self: ptr IHTMLControlElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v) -proc get_onblur*(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p) -proc put_onfocus*(self: ptr IHTMLControlElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v) -proc get_onfocus*(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p) -proc put_onresize*(self: ptr IHTMLControlElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onresize(self, v) -proc get_onresize*(self: ptr IHTMLControlElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onresize(self, p) -proc blur*(self: ptr IHTMLControlElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.blur(self) -proc addFilter*(self: ptr IHTMLControlElement, pUnk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addFilter(self, pUnk) -proc removeFilter*(self: ptr IHTMLControlElement, pUnk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeFilter(self, pUnk) -proc get_clientHeight*(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientHeight(self, p) -proc get_clientWidth*(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientWidth(self, p) -proc get_clientTop*(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientTop(self, p) -proc get_clientLeft*(self: ptr IHTMLControlElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientLeft(self, p) -proc createControlRange*(self: ptr IHTMLTextContainer, range: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createControlRange(self, range) -proc get_scrollHeight*(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollHeight(self, p) -proc get_scrollWidth*(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollWidth(self, p) -proc put_scrollTop*(self: ptr IHTMLTextContainer, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollTop(self, v) -proc get_scrollTop*(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollTop(self, p) -proc put_scrollLeft*(self: ptr IHTMLTextContainer, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollLeft(self, v) -proc get_scrollLeft*(self: ptr IHTMLTextContainer, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollLeft(self, p) -proc put_onscroll*(self: ptr IHTMLTextContainer, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onscroll(self, v) -proc get_onscroll*(self: ptr IHTMLTextContainer, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onscroll(self, p) -proc select*(self: ptr IHTMLControlRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self) -proc add*(self: ptr IHTMLControlRange, item: ptr IHTMLControlElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add(self, item) -proc remove*(self: ptr IHTMLControlRange, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove(self, index) -proc item*(self: ptr IHTMLControlRange, index: LONG, pdisp: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pdisp) -proc scrollIntoView*(self: ptr IHTMLControlRange, varargStart: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollIntoView(self, varargStart) -proc queryCommandSupported*(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandSupported(self, cmdID, pfRet) -proc queryCommandEnabled*(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet) -proc queryCommandState*(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandState(self, cmdID, pfRet) -proc queryCommandIndeterm*(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet) -proc queryCommandText*(self: ptr IHTMLControlRange, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandText(self, cmdID, pcmdText) -proc queryCommandValue*(self: ptr IHTMLControlRange, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue) -proc execCommand*(self: ptr IHTMLControlRange, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet) -proc execCommandShowHelp*(self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet) -proc commonParentElement*(self: ptr IHTMLControlRange, parent: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.commonParentElement(self, parent) -proc get_length*(self: ptr IHTMLControlRange, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc addElement*(self: ptr IHTMLControlRange2, item: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addElement(self, item) -proc put_isMap*(self: ptr IHTMLImgElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_isMap(self, v) -proc get_isMap*(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isMap(self, p) -proc put_useMap*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_useMap(self, v) -proc get_useMap*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_useMap(self, p) -proc get_mimeType*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p) -proc get_fileSize*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileSize(self, p) -proc get_fileCreatedDate*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileCreatedDate(self, p) -proc get_fileModifiedDate*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileModifiedDate(self, p) -proc get_fileUpdatedDate*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileUpdatedDate(self, p) -proc get_protocol*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p) -proc get_href*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc get_nameProp*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nameProp(self, p) -proc put_border*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_vspace*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v) -proc get_vspace*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p) -proc put_hspace*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v) -proc get_hspace*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p) -proc put_alt*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v) -proc get_alt*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p) -proc put_src*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_lowsrc*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lowsrc(self, v) -proc get_lowsrc*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lowsrc(self, p) -proc put_vrml*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vrml(self, v) -proc get_vrml*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vrml(self, p) -proc put_dynsrc*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dynsrc(self, v) -proc get_dynsrc*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dynsrc(self, p) -proc get_readyState*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc get_complete*(self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_complete(self, p) -proc put_loop*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v) -proc get_loop*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p) -proc put_align*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_onload*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onerror*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_onabort*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v) -proc get_onabort*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p) -proc put_name*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_width*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_start*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_start(self, v) -proc get_start*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_start(self, p) -proc put_longDesc*(self: ptr IHTMLImgElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_longDesc(self, v) -proc get_longDesc*(self: ptr IHTMLImgElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_longDesc(self, p) -proc put_longDesc*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_longDesc(self, v) -proc get_longDesc*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_longDesc(self, p) -proc put_vrml*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vrml(self, v) -proc get_vrml*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vrml(self, p) -proc put_lowsrc*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lowsrc(self, v) -proc get_lowsrc*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lowsrc(self, p) -proc put_dynsrc*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dynsrc(self, v) -proc get_dynsrc*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dynsrc(self, p) -proc get_naturalWidth*(self: ptr IHTMLImgElement4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_naturalWidth(self, p) -proc get_naturalHeight*(self: ptr IHTMLImgElement4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_naturalHeight(self, p) -proc put_msPlayToDisabled*(self: ptr IHTMLMSImgElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msPlayToDisabled(self, v) -proc get_msPlayToDisabled*(self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msPlayToDisabled(self, p) -proc put_msPlayToPrimary*(self: ptr IHTMLMSImgElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msPlayToPrimary(self, v) -proc get_msPlayToPrimary*(self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msPlayToPrimary(self, p) -proc create*(self: ptr IHTMLImageElementFactory, width: VARIANT, height: VARIANT, a: ptr ptr IHTMLImgElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, width, height, a) -proc put_background*(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_bgProperties*(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgProperties(self, v) -proc get_bgProperties*(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgProperties(self, p) -proc put_leftMargin*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_leftMargin(self, v) -proc get_leftMargin*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_leftMargin(self, p) -proc put_topMargin*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_topMargin(self, v) -proc get_topMargin*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_topMargin(self, p) -proc put_rightMargin*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rightMargin(self, v) -proc get_rightMargin*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rightMargin(self, p) -proc put_bottomMargin*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bottomMargin(self, v) -proc get_bottomMargin*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bottomMargin(self, p) -proc put_noWrap*(self: ptr IHTMLBodyElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noWrap(self, v) -proc get_noWrap*(self: ptr IHTMLBodyElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noWrap(self, p) -proc put_bgColor*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc put_text*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v) -proc get_text*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc put_link*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_link(self, v) -proc get_link*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_link(self, p) -proc put_vLink*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vLink(self, v) -proc get_vLink*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vLink(self, p) -proc put_aLink*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_aLink(self, v) -proc get_aLink*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_aLink(self, p) -proc put_onload*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onunload*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onunload(self, v) -proc get_onunload*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onunload(self, p) -proc put_scroll*(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scroll(self, v) -proc get_scroll*(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scroll(self, p) -proc put_onselect*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_onbeforeunload*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeunload(self, v) -proc get_onbeforeunload*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeunload(self, p) -proc createTextRange*(self: ptr IHTMLBodyElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc put_onbeforeprint*(self: ptr IHTMLBodyElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeprint(self, v) -proc get_onbeforeprint*(self: ptr IHTMLBodyElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeprint(self, p) -proc put_onafterprint*(self: ptr IHTMLBodyElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterprint(self, v) -proc get_onafterprint*(self: ptr IHTMLBodyElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterprint(self, p) -proc put_background*(self: ptr IHTMLBodyElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLBodyElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_ononline*(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ononline(self, v) -proc get_ononline*(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ononline(self, p) -proc put_onoffline*(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onoffline(self, v) -proc get_onoffline*(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onoffline(self, p) -proc put_onhashchange*(self: ptr IHTMLBodyElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhashchange(self, v) -proc get_onhashchange*(self: ptr IHTMLBodyElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhashchange(self, p) -proc put_onmessage*(self: ptr IHTMLBodyElement4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmessage(self, v) -proc get_onmessage*(self: ptr IHTMLBodyElement4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmessage(self, p) -proc put_onstorage*(self: ptr IHTMLBodyElement4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstorage(self, v) -proc get_onstorage*(self: ptr IHTMLBodyElement4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstorage(self, p) -proc put_onpopstate*(self: ptr IHTMLBodyElement5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpopstate(self, v) -proc get_onpopstate*(self: ptr IHTMLBodyElement5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpopstate(self, p) -proc put_color*(self: ptr IHTMLFontElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v) -proc get_color*(self: ptr IHTMLFontElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc put_face*(self: ptr IHTMLFontElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_face(self, v) -proc get_face*(self: ptr IHTMLFontElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_face(self, p) -proc put_size*(self: ptr IHTMLFontElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLFontElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc put_href*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_target*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_target(self, v) -proc get_target*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc put_rel*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rel(self, v) -proc get_rel*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rel(self, p) -proc put_rev*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rev(self, v) -proc get_rev*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rev(self, p) -proc put_urn*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_urn(self, v) -proc get_urn*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_urn(self, p) -proc put_Methods*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Methods(self, v) -proc get_Methods*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Methods(self, p) -proc put_name*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_host*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_host(self, v) -proc get_host*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_host(self, p) -proc put_hostname*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hostname(self, v) -proc get_hostname*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hostname(self, p) -proc put_pathname*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pathname(self, v) -proc get_pathname*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathname(self, p) -proc put_port*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_port(self, v) -proc get_port*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_port(self, p) -proc put_protocol*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_protocol(self, v) -proc get_protocol*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p) -proc put_search*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_search(self, v) -proc get_search*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_search(self, p) -proc put_hash*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hash(self, v) -proc get_hash*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hash(self, p) -proc put_onblur*(self: ptr IHTMLAnchorElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v) -proc get_onblur*(self: ptr IHTMLAnchorElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p) -proc put_onfocus*(self: ptr IHTMLAnchorElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v) -proc get_onfocus*(self: ptr IHTMLAnchorElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p) -proc put_accessKey*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accessKey(self, v) -proc get_accessKey*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accessKey(self, p) -proc get_protocolLong*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocolLong(self, p) -proc get_mimeType*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p) -proc get_nameProp*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nameProp(self, p) -proc put_tabIndex*(self: ptr IHTMLAnchorElement, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tabIndex(self, v) -proc get_tabIndex*(self: ptr IHTMLAnchorElement, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tabIndex(self, p) -proc focus*(self: ptr IHTMLAnchorElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self) -proc blur*(self: ptr IHTMLAnchorElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.blur(self) -proc put_charset*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, v) -proc get_charset*(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_coords*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_coords(self, v) -proc get_coords*(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_coords(self, p) -proc put_hreflang*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hreflang(self, v) -proc get_hreflang*(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hreflang(self, p) -proc put_shape*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shape(self, v) -proc get_shape*(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shape(self, p) -proc put_type*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_shape*(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shape(self, v) -proc get_shape*(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shape(self, p) -proc put_coords*(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_coords(self, v) -proc get_coords*(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_coords(self, p) -proc put_href*(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_htmlFor*(self: ptr IHTMLLabelElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_htmlFor(self, v) -proc get_htmlFor*(self: ptr IHTMLLabelElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_htmlFor(self, p) -proc put_accessKey*(self: ptr IHTMLLabelElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accessKey(self, v) -proc get_accessKey*(self: ptr IHTMLLabelElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accessKey(self, p) -proc get_form*(self: ptr IHTMLLabelElement2, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_compact*(self: ptr IHTMLListElement2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_compact(self, v) -proc get_compact*(self: ptr IHTMLListElement2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_compact(self, p) -proc put_compact*(self: ptr IHTMLUListElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_compact(self, v) -proc get_compact*(self: ptr IHTMLUListElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_compact(self, p) -proc put_type*(self: ptr IHTMLUListElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLUListElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_compact*(self: ptr IHTMLOListElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_compact(self, v) -proc get_compact*(self: ptr IHTMLOListElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_compact(self, p) -proc put_start*(self: ptr IHTMLOListElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_start(self, v) -proc get_start*(self: ptr IHTMLOListElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_start(self, p) -proc put_type*(self: ptr IHTMLOListElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLOListElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_type*(self: ptr IHTMLLIElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLLIElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLLIElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLLIElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_clear*(self: ptr IHTMLBlockElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v) -proc get_clear*(self: ptr IHTMLBlockElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p) -proc put_cite*(self: ptr IHTMLBlockElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cite(self, v) -proc get_cite*(self: ptr IHTMLBlockElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cite(self, p) -proc put_width*(self: ptr IHTMLBlockElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLBlockElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_cite*(self: ptr IHTMLBlockElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cite(self, v) -proc get_cite*(self: ptr IHTMLBlockElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cite(self, p) -proc put_align*(self: ptr IHTMLDivElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLDivElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_noWrap*(self: ptr IHTMLDivElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noWrap(self, v) -proc get_noWrap*(self: ptr IHTMLDivElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noWrap(self, p) -proc put_noWrap*(self: ptr IHTMLDDElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noWrap(self, v) -proc get_noWrap*(self: ptr IHTMLDDElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noWrap(self, p) -proc put_noWrap*(self: ptr IHTMLDTElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noWrap(self, v) -proc get_noWrap*(self: ptr IHTMLDTElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noWrap(self, p) -proc put_clear*(self: ptr IHTMLBRElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clear(self, v) -proc get_clear*(self: ptr IHTMLBRElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clear(self, p) -proc put_compact*(self: ptr IHTMLDListElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_compact(self, v) -proc get_compact*(self: ptr IHTMLDListElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_compact(self, p) -proc put_align*(self: ptr IHTMLHRElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLHRElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_color*(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v) -proc get_color*(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc put_noShade*(self: ptr IHTMLHRElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noShade(self, v) -proc get_noShade*(self: ptr IHTMLHRElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noShade(self, p) -proc put_width*(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_size*(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc put_align*(self: ptr IHTMLParaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLParaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc toString*(self: ptr IHTMLElementCollection, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc put_length*(self: ptr IHTMLElementCollection, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v) -proc get_length*(self: ptr IHTMLElementCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLElementCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLElementCollection, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, index, pdisp) -proc tags*(self: ptr IHTMLElementCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.tags(self, tagName, pdisp) -proc urns*(self: ptr IHTMLElementCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.urns(self, urn, pdisp) -proc namedItem*(self: ptr IHTMLElementCollection3, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedItem(self, name, pdisp) -proc get_length*(self: ptr IHTMLElementCollection4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLElementCollection4, index: LONG, pNode: ptr ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pNode) -proc namedItem*(self: ptr IHTMLElementCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedItem(self, name, pNode) -proc put_align*(self: ptr IHTMLHeaderElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLHeaderElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc ShowDropdown*(self: ptr IHTMLSelectElementEx, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowDropdown(self, fShow) -proc SetSelectExFlags*(self: ptr IHTMLSelectElementEx, lFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSelectExFlags(self, lFlags) -proc GetSelectExFlags*(self: ptr IHTMLSelectElementEx, pFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectExFlags(self, pFlags) -proc GetDropdownOpen*(self: ptr IHTMLSelectElementEx, pfOpen: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDropdownOpen(self, pfOpen) -proc put_size*(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc put_multiple*(self: ptr IHTMLSelectElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_multiple(self, v) -proc get_multiple*(self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_multiple(self, p) -proc put_name*(self: ptr IHTMLSelectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc get_options*(self: ptr IHTMLSelectElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_options(self, p) -proc put_onchange*(self: ptr IHTMLSelectElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLSelectElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_selectedIndex*(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectedIndex(self, v) -proc get_selectedIndex*(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectedIndex(self, p) -proc get_type*(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLSelectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_disabled*(self: ptr IHTMLSelectElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLSelectElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc add*(self: ptr IHTMLSelectElement, element: ptr IHTMLElement, before: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add(self, element, before) -proc remove*(self: ptr IHTMLSelectElement, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove(self, index) -proc put_length*(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v) -proc get_length*(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLSelectElement, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLSelectElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, index, pdisp) -proc tags*(self: ptr IHTMLSelectElement, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.tags(self, tagName, pdisp) -proc urns*(self: ptr IHTMLSelectElement2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.urns(self, urn, pdisp) -proc namedItem*(self: ptr IHTMLSelectElement4, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedItem(self, name, pdisp) -proc add*(self: ptr IHTMLSelectElement5, pElem: ptr IHTMLOptionElement, pvarBefore: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add(self, pElem, pvarBefore) -proc add*(self: ptr IHTMLSelectElement6, pElem: ptr IHTMLOptionElement, pvarBefore: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add(self, pElem, pvarBefore) -proc put_value*(self: ptr IHTMLSelectElement6, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLSelectElement6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc createRange*(self: ptr IHTMLSelectionObject, range: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createRange(self, range) -proc empty*(self: ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.empty(self) -proc clear*(self: ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc get_type*(self: ptr IHTMLSelectionObject, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc createRangeCollection*(self: ptr IHTMLSelectionObject2, rangeCollection: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createRangeCollection(self, rangeCollection) -proc get_typeDetail*(self: ptr IHTMLSelectionObject2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_typeDetail(self, p) -proc get_anchorNode*(self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_anchorNode(self, p) -proc get_anchorOffset*(self: ptr IHTMLSelection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_anchorOffset(self, p) -proc get_focusNode*(self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_focusNode(self, p) -proc get_focusOffset*(self: ptr IHTMLSelection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_focusOffset(self, p) -proc get_isCollapsed*(self: ptr IHTMLSelection, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isCollapsed(self, p) -proc collapse*(self: ptr IHTMLSelection, parentNode: ptr IDispatch, offfset: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.collapse(self, parentNode, offfset) -proc collapseToStart*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.collapseToStart(self) -proc collapseToEnd*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.collapseToEnd(self) -proc selectAllChildren*(self: ptr IHTMLSelection, parentNode: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.selectAllChildren(self, parentNode) -proc deleteFromDocument*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteFromDocument(self) -proc get_rangeCount*(self: ptr IHTMLSelection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rangeCount(self, p) -proc getRangeAt*(self: ptr IHTMLSelection, index: LONG, ppRange: ptr ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getRangeAt(self, index, ppRange) -proc addRange*(self: ptr IHTMLSelection, range: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addRange(self, range) -proc removeRange*(self: ptr IHTMLSelection, range: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeRange(self, range) -proc removeAllRanges*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAllRanges(self) -proc toString*(self: ptr IHTMLSelection, pSelectionString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, pSelectionString) -proc put_selected*(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selected(self, v) -proc get_selected*(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selected(self, p) -proc put_value*(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_defaultSelected*(self: ptr IHTMLOptionElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultSelected(self, v) -proc get_defaultSelected*(self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultSelected(self, p) -proc put_index*(self: ptr IHTMLOptionElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_index(self, v) -proc get_index*(self: ptr IHTMLOptionElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_index(self, p) -proc put_text*(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v) -proc get_text*(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc get_form*(self: ptr IHTMLOptionElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_label*(self: ptr IHTMLOptionElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_label(self, v) -proc get_label*(self: ptr IHTMLOptionElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_label(self, p) -proc put_value*(self: ptr IHTMLOptionElement4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLOptionElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc create*(self: ptr IHTMLOptionElementFactory, text: VARIANT, value: VARIANT, defaultselected: VARIANT, selected: VARIANT, a: ptr ptr IHTMLOptionElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, text, value, defaultselected, selected, a) -proc put_type*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_name*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLInputElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_size*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc put_maxLength*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxLength(self, v) -proc get_maxLength*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxLength(self, p) -proc select*(self: ptr IHTMLInputElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self) -proc put_onchange*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_onselect*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_defaultValue*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultValue(self, v) -proc get_defaultValue*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultValue(self, p) -proc put_readOnly*(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_readOnly(self, v) -proc get_readOnly*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p) -proc createTextRange*(self: ptr IHTMLInputElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc put_indeterminate*(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_indeterminate(self, v) -proc get_indeterminate*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_indeterminate(self, p) -proc put_defaultChecked*(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultChecked(self, v) -proc get_defaultChecked*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultChecked(self, p) -proc put_checked*(self: ptr IHTMLInputElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_checked(self, v) -proc get_checked*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_checked(self, p) -proc put_border*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_vspace*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v) -proc get_vspace*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p) -proc put_hspace*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v) -proc get_hspace*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p) -proc put_alt*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v) -proc get_alt*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p) -proc put_src*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_lowsrc*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lowsrc(self, v) -proc get_lowsrc*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lowsrc(self, p) -proc put_vrml*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vrml(self, v) -proc get_vrml*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vrml(self, p) -proc put_dynsrc*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dynsrc(self, v) -proc get_dynsrc*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dynsrc(self, p) -proc get_readyState*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc get_complete*(self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_complete(self, p) -proc put_loop*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v) -proc get_loop*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p) -proc put_align*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_onload*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onerror*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_onabort*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v) -proc get_onabort*(self: ptr IHTMLInputElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p) -proc put_width*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_start*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_start(self, v) -proc get_start*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_start(self, p) -proc put_accept*(self: ptr IHTMLInputElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accept(self, v) -proc get_accept*(self: ptr IHTMLInputElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accept(self, p) -proc put_useMap*(self: ptr IHTMLInputElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_useMap(self, v) -proc get_useMap*(self: ptr IHTMLInputElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_useMap(self, p) -proc put_src*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_lowsrc*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lowsrc(self, v) -proc get_lowsrc*(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lowsrc(self, p) -proc put_vrml*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vrml(self, v) -proc get_vrml*(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vrml(self, p) -proc put_dynsrc*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dynsrc(self, v) -proc get_dynsrc*(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dynsrc(self, p) -proc get_type*(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLInputButtonElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_name*(self: ptr IHTMLInputButtonElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLInputButtonElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLInputButtonElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLInputButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLInputButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc createTextRange*(self: ptr IHTMLInputButtonElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc get_type*(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLInputHiddenElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_name*(self: ptr IHTMLInputHiddenElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputHiddenElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLInputHiddenElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLInputHiddenElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLInputHiddenElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputHiddenElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLInputHiddenElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc createTextRange*(self: ptr IHTMLInputHiddenElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc get_type*(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_name*(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLInputTextElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLInputTextElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_defaultValue*(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultValue(self, v) -proc get_defaultValue*(self: ptr IHTMLInputTextElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultValue(self, p) -proc put_size*(self: ptr IHTMLInputTextElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLInputTextElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc put_maxLength*(self: ptr IHTMLInputTextElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxLength(self, v) -proc get_maxLength*(self: ptr IHTMLInputTextElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxLength(self, p) -proc select*(self: ptr IHTMLInputTextElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self) -proc put_onchange*(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_onselect*(self: ptr IHTMLInputTextElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLInputTextElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_readOnly*(self: ptr IHTMLInputTextElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_readOnly(self, v) -proc get_readOnly*(self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p) -proc createTextRange*(self: ptr IHTMLInputTextElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc put_selectionStart*(self: ptr IHTMLInputTextElement2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectionStart(self, v) -proc get_selectionStart*(self: ptr IHTMLInputTextElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectionStart(self, p) -proc put_selectionEnd*(self: ptr IHTMLInputTextElement2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectionEnd(self, v) -proc get_selectionEnd*(self: ptr IHTMLInputTextElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectionEnd(self, p) -proc setSelectionRange*(self: ptr IHTMLInputTextElement2, start: LONG, `end`: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setSelectionRange(self, start, `end`) -proc get_type*(self: ptr IHTMLInputFileElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_name*(self: ptr IHTMLInputFileElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputFileElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLInputFileElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputFileElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLInputFileElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_size*(self: ptr IHTMLInputFileElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLInputFileElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc put_maxLength*(self: ptr IHTMLInputFileElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maxLength(self, v) -proc get_maxLength*(self: ptr IHTMLInputFileElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxLength(self, p) -proc select*(self: ptr IHTMLInputFileElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self) -proc put_onchange*(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_onselect*(self: ptr IHTMLInputFileElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLInputFileElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_value*(self: ptr IHTMLInputFileElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLInputFileElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_value*(self: ptr IHTMLOptionButtonElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc get_type*(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_name*(self: ptr IHTMLOptionButtonElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLOptionButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_checked*(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_checked(self, v) -proc get_checked*(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_checked(self, p) -proc put_defaultChecked*(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultChecked(self, v) -proc get_defaultChecked*(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultChecked(self, p) -proc put_onchange*(self: ptr IHTMLOptionButtonElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_disabled*(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc put_status*(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_indeterminate*(self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_indeterminate(self, v) -proc get_indeterminate*(self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_indeterminate(self, p) -proc get_form*(self: ptr IHTMLOptionButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc get_type*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_disabled*(self: ptr IHTMLInputImage, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc put_border*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_vspace*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v) -proc get_vspace*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p) -proc put_hspace*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v) -proc get_hspace*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p) -proc put_alt*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v) -proc get_alt*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p) -proc put_src*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_lowsrc*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lowsrc(self, v) -proc get_lowsrc*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lowsrc(self, p) -proc put_vrml*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vrml(self, v) -proc get_vrml*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vrml(self, p) -proc put_dynsrc*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dynsrc(self, v) -proc get_dynsrc*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dynsrc(self, p) -proc get_readyState*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc get_complete*(self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_complete(self, p) -proc put_loop*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v) -proc get_loop*(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p) -proc put_align*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_onload*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onerror*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_onabort*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v) -proc get_onabort*(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p) -proc put_name*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_width*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_start*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_start(self, v) -proc get_start*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_start(self, p) -proc put_disabled*(self: ptr IHTMLInputRangeElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLInputRangeElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_type*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_alt*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v) -proc get_alt*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p) -proc put_name*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_value*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_min*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_min(self, v) -proc get_min*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_min(self, p) -proc put_max*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_max(self, v) -proc get_max*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_max(self, p) -proc put_step*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_step(self, v) -proc get_step*(self: ptr IHTMLInputRangeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_step(self, p) -proc put_valueAsNumber*(self: ptr IHTMLInputRangeElement, v: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueAsNumber(self, v) -proc get_valueAsNumber*(self: ptr IHTMLInputRangeElement, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueAsNumber(self, p) -proc stepUp*(self: ptr IHTMLInputRangeElement, n: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stepUp(self, n) -proc stepDown*(self: ptr IHTMLInputRangeElement, n: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stepDown(self, n) -proc get_type*(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_name*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLTextAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLTextAreaElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_defaultValue*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultValue(self, v) -proc get_defaultValue*(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultValue(self, p) -proc select*(self: ptr IHTMLTextAreaElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.select(self) -proc put_onchange*(self: ptr IHTMLTextAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_onselect*(self: ptr IHTMLTextAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLTextAreaElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_readOnly*(self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_readOnly(self, v) -proc get_readOnly*(self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readOnly(self, p) -proc put_rows*(self: ptr IHTMLTextAreaElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rows(self, v) -proc get_rows*(self: ptr IHTMLTextAreaElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rows(self, p) -proc put_cols*(self: ptr IHTMLTextAreaElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cols(self, v) -proc get_cols*(self: ptr IHTMLTextAreaElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cols(self, p) -proc put_wrap*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_wrap(self, v) -proc get_wrap*(self: ptr IHTMLTextAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wrap(self, p) -proc createTextRange*(self: ptr IHTMLTextAreaElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc put_selectionStart*(self: ptr IHTMLTextAreaElement2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectionStart(self, v) -proc get_selectionStart*(self: ptr IHTMLTextAreaElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectionStart(self, p) -proc put_selectionEnd*(self: ptr IHTMLTextAreaElement2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectionEnd(self, v) -proc get_selectionEnd*(self: ptr IHTMLTextAreaElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectionEnd(self, p) -proc setSelectionRange*(self: ptr IHTMLTextAreaElement2, start: LONG, `end`: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setSelectionRange(self, start, `end`) -proc get_type*(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLButtonElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_name*(self: ptr IHTMLButtonElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_status*(self: ptr IHTMLButtonElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLButtonElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_disabled*(self: ptr IHTMLButtonElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLButtonElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc get_form*(self: ptr IHTMLButtonElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc createTextRange*(self: ptr IHTMLButtonElement, range: ptr ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextRange(self, range) -proc put_type*(self: ptr IHTMLButtonElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLButtonElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_bgColor*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc put_scrollDelay*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollDelay(self, v) -proc get_scrollDelay*(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollDelay(self, p) -proc put_direction*(self: ptr IHTMLMarqueeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_direction(self, v) -proc get_direction*(self: ptr IHTMLMarqueeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_direction(self, p) -proc put_behavior*(self: ptr IHTMLMarqueeElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_behavior(self, v) -proc get_behavior*(self: ptr IHTMLMarqueeElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behavior(self, p) -proc put_scrollAmount*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollAmount(self, v) -proc get_scrollAmount*(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollAmount(self, p) -proc put_loop*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v) -proc get_loop*(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p) -proc put_vspace*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v) -proc get_vspace*(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p) -proc put_hspace*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v) -proc get_hspace*(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p) -proc put_onfinish*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfinish(self, v) -proc get_onfinish*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfinish(self, p) -proc put_onstart*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstart(self, v) -proc get_onstart*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstart(self, p) -proc put_onbounce*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbounce(self, v) -proc get_onbounce*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbounce(self, p) -proc put_width*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_trueSpeed*(self: ptr IHTMLMarqueeElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_trueSpeed(self, v) -proc get_trueSpeed*(self: ptr IHTMLMarqueeElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_trueSpeed(self, p) -proc start*(self: ptr IHTMLMarqueeElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.start(self) -proc stop*(self: ptr IHTMLMarqueeElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stop(self) -proc put_version*(self: ptr IHTMLHtmlElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_version(self, v) -proc get_version*(self: ptr IHTMLHtmlElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_version(self, p) -proc put_profile*(self: ptr IHTMLHeadElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_profile(self, v) -proc get_profile*(self: ptr IHTMLHeadElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_profile(self, p) -proc put_profile*(self: ptr IHTMLHeadElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_profile(self, v) -proc get_profile*(self: ptr IHTMLHeadElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_profile(self, p) -proc put_text*(self: ptr IHTMLTitleElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v) -proc get_text*(self: ptr IHTMLTitleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc put_httpEquiv*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_httpEquiv(self, v) -proc get_httpEquiv*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_httpEquiv(self, p) -proc put_content*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_content(self, v) -proc get_content*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_content(self, p) -proc put_name*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_url*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_url(self, v) -proc get_url*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_url(self, p) -proc put_charset*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, v) -proc get_charset*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_scheme*(self: ptr IHTMLMetaElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scheme(self, v) -proc get_scheme*(self: ptr IHTMLMetaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scheme(self, p) -proc put_url*(self: ptr IHTMLMetaElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_url(self, v) -proc get_url*(self: ptr IHTMLMetaElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_url(self, p) -proc put_href*(self: ptr IHTMLBaseElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLBaseElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_target*(self: ptr IHTMLBaseElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_target(self, v) -proc get_target*(self: ptr IHTMLBaseElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc put_href*(self: ptr IHTMLBaseElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLBaseElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_prompt*(self: ptr IHTMLIsIndexElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_prompt(self, v) -proc get_prompt*(self: ptr IHTMLIsIndexElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_prompt(self, p) -proc put_action*(self: ptr IHTMLIsIndexElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_action(self, v) -proc get_action*(self: ptr IHTMLIsIndexElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_action(self, p) -proc get_form*(self: ptr IHTMLIsIndexElement2, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_n*(self: ptr IHTMLNextIdElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_n(self, v) -proc get_n*(self: ptr IHTMLNextIdElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_n(self, p) -proc put_color*(self: ptr IHTMLBaseFontElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_color(self, v) -proc get_color*(self: ptr IHTMLBaseFontElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_color(self, p) -proc put_face*(self: ptr IHTMLBaseFontElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_face(self, v) -proc get_face*(self: ptr IHTMLBaseFontElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_face(self, p) -proc put_size*(self: ptr IHTMLBaseFontElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_size(self, v) -proc get_size*(self: ptr IHTMLBaseFontElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_size(self, p) -proc get_length*(self: ptr IOmHistory, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc back*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.back(self, pvargdistance) -proc forward*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.forward(self, pvargdistance) -proc go*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.go(self, pvargdistance) -proc get_length*(self: ptr IHTMLMimeTypesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_length*(self: ptr IHTMLPluginsCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc refresh*(self: ptr IHTMLPluginsCollection, reload: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.refresh(self, reload) -proc addRequest*(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addRequest(self, name, reserved, success) -proc clearRequest*(self: ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearRequest(self) -proc doRequest*(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doRequest(self, usage, fname, domain, path, expire, reserved) -proc getAttribute*(self: ptr IHTMLOpsProfile, name: BSTR, value: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, name, value) -proc setAttribute*(self: ptr IHTMLOpsProfile, name: BSTR, value: BSTR, prefs: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, name, value, prefs, success) -proc commitChanges*(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.commitChanges(self, success) -proc addReadRequest*(self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addReadRequest(self, name, reserved, success) -proc doReadRequest*(self: ptr IHTMLOpsProfile, usage: VARIANT, fname: VARIANT, domain: VARIANT, path: VARIANT, expire: VARIANT, reserved: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doReadRequest(self, usage, fname, domain, path, expire, reserved) -proc doWriteRequest*(self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doWriteRequest(self, success) -proc get_appCodeName*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appCodeName(self, p) -proc get_appName*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appName(self, p) -proc get_appVersion*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appVersion(self, p) -proc get_userAgent*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userAgent(self, p) -proc javaEnabled*(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.javaEnabled(self, enabled) -proc taintEnabled*(self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.taintEnabled(self, enabled) -proc get_mimeTypes*(self: ptr IOmNavigator, p: ptr ptr IHTMLMimeTypesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeTypes(self, p) -proc get_plugins*(self: ptr IOmNavigator, p: ptr ptr IHTMLPluginsCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_plugins(self, p) -proc get_cookieEnabled*(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cookieEnabled(self, p) -proc get_opsProfile*(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_opsProfile(self, p) -proc toString*(self: ptr IOmNavigator, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string) -proc get_cpuClass*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cpuClass(self, p) -proc get_systemLanguage*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemLanguage(self, p) -proc get_browserLanguage*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_browserLanguage(self, p) -proc get_userLanguage*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userLanguage(self, p) -proc get_platform*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_platform(self, p) -proc get_appMinorVersion*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appMinorVersion(self, p) -proc get_connectionSpeed*(self: ptr IOmNavigator, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_connectionSpeed(self, p) -proc get_onLine*(self: ptr IOmNavigator, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onLine(self, p) -proc get_userProfile*(self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userProfile(self, p) -proc get_geolocation*(self: ptr INavigatorGeolocation, p: ptr ptr IWebGeolocation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_geolocation(self, p) -proc get_msDoNotTrack*(self: ptr INavigatorDoNotTrack, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msDoNotTrack(self, p) -proc put_href*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_protocol*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_protocol(self, v) -proc get_protocol*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p) -proc put_host*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_host(self, v) -proc get_host*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_host(self, p) -proc put_hostname*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hostname(self, v) -proc get_hostname*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hostname(self, p) -proc put_port*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_port(self, v) -proc get_port*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_port(self, p) -proc put_pathname*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pathname(self, v) -proc get_pathname*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathname(self, p) -proc put_search*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_search(self, v) -proc get_search*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_search(self, p) -proc put_hash*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hash(self, v) -proc get_hash*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hash(self, p) -proc reload*(self: ptr IHTMLLocation, flag: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.reload(self, flag) -proc replace*(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replace(self, bstr) -proc assign*(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.assign(self, bstr) -proc toString*(self: ptr IHTMLLocation, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string) -proc get_length*(self: ptr IHTMLBookmarkCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLBookmarkCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLBookmarkCollection, index: LONG, pVarBookmark: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pVarBookmark) -proc setData*(self: ptr IHTMLDataTransfer, format: BSTR, data: ptr VARIANT, pret: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setData(self, format, data, pret) -proc getData*(self: ptr IHTMLDataTransfer, format: BSTR, pvarRet: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getData(self, format, pvarRet) -proc clearData*(self: ptr IHTMLDataTransfer, format: BSTR, pret: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearData(self, format, pret) -proc put_dropEffect*(self: ptr IHTMLDataTransfer, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dropEffect(self, v) -proc get_dropEffect*(self: ptr IHTMLDataTransfer, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dropEffect(self, p) -proc put_effectAllowed*(self: ptr IHTMLDataTransfer, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_effectAllowed(self, v) -proc get_effectAllowed*(self: ptr IHTMLDataTransfer, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_effectAllowed(self, p) -proc get_srcElement*(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcElement(self, p) -proc get_altKey*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altKey(self, p) -proc get_ctrlKey*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ctrlKey(self, p) -proc get_shiftKey*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shiftKey(self, p) -proc put_returnValue*(self: ptr IHTMLEventObj, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_returnValue(self, v) -proc get_returnValue*(self: ptr IHTMLEventObj, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_returnValue(self, p) -proc put_cancelBubble*(self: ptr IHTMLEventObj, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cancelBubble(self, v) -proc get_cancelBubble*(self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cancelBubble(self, p) -proc get_fromElement*(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fromElement(self, p) -proc get_toElement*(self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_toElement(self, p) -proc put_keyCode*(self: ptr IHTMLEventObj, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_keyCode(self, v) -proc get_keyCode*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_keyCode(self, p) -proc get_button*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_button(self, p) -proc get_type*(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_qualifier*(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_qualifier(self, p) -proc get_reason*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_reason(self, p) -proc get_x*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc get_y*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc get_clientX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientX(self, p) -proc get_clientY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientY(self, p) -proc get_offsetX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetX(self, p) -proc get_offsetY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetY(self, p) -proc get_screenX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenX(self, p) -proc get_screenY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenY(self, p) -proc get_srcFilter*(self: ptr IHTMLEventObj, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcFilter(self, p) -proc setAttribute*(self: ptr IHTMLEventObj2, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) -proc getAttribute*(self: ptr IHTMLEventObj2, strAttributeName: BSTR, lFlags: LONG, AttributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) -proc removeAttribute*(self: ptr IHTMLEventObj2, strAttributeName: BSTR, lFlags: LONG, pfSuccess: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) -proc put_propertyName*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_propertyName(self, v) -proc get_propertyName*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_propertyName(self, p) -proc putref_bookmarks*(self: ptr IHTMLEventObj2, v: ptr IHTMLBookmarkCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_bookmarks(self, v) -proc get_bookmarks*(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLBookmarkCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bookmarks(self, p) -proc putref_recordset*(self: ptr IHTMLEventObj2, v: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_recordset(self, v) -proc get_recordset*(self: ptr IHTMLEventObj2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_recordset(self, p) -proc put_dataFld*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dataFld(self, v) -proc get_dataFld*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataFld(self, p) -proc putref_boundElements*(self: ptr IHTMLEventObj2, v: ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_boundElements(self, v) -proc get_boundElements*(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_boundElements(self, p) -proc put_repeat*(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_repeat(self, v) -proc get_repeat*(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_repeat(self, p) -proc put_srcUrn*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_srcUrn(self, v) -proc get_srcUrn*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcUrn(self, p) -proc putref_srcElement*(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_srcElement(self, v) -proc get_srcElement*(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcElement(self, p) -proc put_altKey*(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_altKey(self, v) -proc get_altKey*(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altKey(self, p) -proc put_ctrlKey*(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ctrlKey(self, v) -proc get_ctrlKey*(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ctrlKey(self, p) -proc put_shiftKey*(self: ptr IHTMLEventObj2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shiftKey(self, v) -proc get_shiftKey*(self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shiftKey(self, p) -proc putref_fromElement*(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_fromElement(self, v) -proc get_fromElement*(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fromElement(self, p) -proc putref_toElement*(self: ptr IHTMLEventObj2, v: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_toElement(self, v) -proc get_toElement*(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_toElement(self, p) -proc put_button*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_button(self, v) -proc get_button*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_button(self, p) -proc put_type*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_qualifier*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_qualifier(self, v) -proc get_qualifier*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_qualifier(self, p) -proc put_reason*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_reason(self, v) -proc get_reason*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_reason(self, p) -proc put_x*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_clientX*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clientX(self, v) -proc get_clientX*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientX(self, p) -proc put_clientY*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_clientY(self, v) -proc get_clientY*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientY(self, p) -proc put_offsetX*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_offsetX(self, v) -proc get_offsetX*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetX(self, p) -proc put_offsetY*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_offsetY(self, v) -proc get_offsetY*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetY(self, p) -proc put_screenX*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_screenX(self, v) -proc get_screenX*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenX(self, p) -proc put_screenY*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_screenY(self, v) -proc get_screenY*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenY(self, p) -proc putref_srcFilter*(self: ptr IHTMLEventObj2, v: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_srcFilter(self, v) -proc get_srcFilter*(self: ptr IHTMLEventObj2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcFilter(self, p) -proc get_dataTransfer*(self: ptr IHTMLEventObj2, p: ptr ptr IHTMLDataTransfer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataTransfer(self, p) -proc get_contentOverflow*(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentOverflow(self, p) -proc put_shiftLeft*(self: ptr IHTMLEventObj3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shiftLeft(self, v) -proc get_shiftLeft*(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shiftLeft(self, p) -proc put_altLeft*(self: ptr IHTMLEventObj3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_altLeft(self, v) -proc get_altLeft*(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altLeft(self, p) -proc put_ctrlLeft*(self: ptr IHTMLEventObj3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ctrlLeft(self, v) -proc get_ctrlLeft*(self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ctrlLeft(self, p) -proc get_imeCompositionChange*(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeCompositionChange(self, p) -proc get_imeNotifyCommand*(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeNotifyCommand(self, p) -proc get_imeNotifyData*(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeNotifyData(self, p) -proc get_imeRequest*(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeRequest(self, p) -proc get_imeRequestData*(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_imeRequestData(self, p) -proc get_keyboardLayout*(self: ptr IHTMLEventObj3, p: ptr LONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_keyboardLayout(self, p) -proc get_behaviorCookie*(self: ptr IHTMLEventObj3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behaviorCookie(self, p) -proc get_behaviorPart*(self: ptr IHTMLEventObj3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_behaviorPart(self, p) -proc get_nextPage*(self: ptr IHTMLEventObj3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nextPage(self, p) -proc get_wheelDelta*(self: ptr IHTMLEventObj4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wheelDelta(self, p) -proc put_url*(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_url(self, v) -proc get_url*(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_url(self, p) -proc put_data*(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, v) -proc get_data*(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc get_source*(self: ptr IHTMLEventObj5, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_source(self, p) -proc put_origin*(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_origin(self, v) -proc get_origin*(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_origin(self, p) -proc put_issession*(self: ptr IHTMLEventObj5, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_issession(self, v) -proc get_issession*(self: ptr IHTMLEventObj5, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_issession(self, p) -proc get_actionURL*(self: ptr IHTMLEventObj6, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_actionURL(self, p) -proc get_buttonID*(self: ptr IHTMLEventObj6, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_buttonID(self, p) -proc get_type*(self: ptr IHTMLStyleMedia, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc matchMedium*(self: ptr IHTMLStyleMedia, mediaQuery: BSTR, matches: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.matchMedium(self, mediaQuery, matches) -proc item*(self: ptr IHTMLFramesCollection2, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, pvarIndex, pvarResult) -proc get_length*(self: ptr IHTMLFramesCollection2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_colorDepth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_colorDepth(self, p) -proc put_bufferDepth*(self: ptr IHTMLScreen, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bufferDepth(self, v) -proc get_bufferDepth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bufferDepth(self, p) -proc get_width*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_height*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_updateInterval*(self: ptr IHTMLScreen, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_updateInterval(self, v) -proc get_updateInterval*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_updateInterval(self, p) -proc get_availHeight*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_availHeight(self, p) -proc get_availWidth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_availWidth(self, p) -proc get_fontSmoothingEnabled*(self: ptr IHTMLScreen, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSmoothingEnabled(self, p) -proc get_logicalXDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_logicalXDPI(self, p) -proc get_logicalYDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_logicalYDPI(self, p) -proc get_deviceXDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_deviceXDPI(self, p) -proc get_deviceYDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_deviceYDPI(self, p) -proc get_systemXDPI*(self: ptr IHTMLScreen3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemXDPI(self, p) -proc get_systemYDPI*(self: ptr IHTMLScreen3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemYDPI(self, p) -proc get_pixelDepth*(self: ptr IHTMLScreen4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelDepth(self, p) -proc get_frames*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frames(self, p) -proc put_defaultStatus*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultStatus(self, v) -proc get_defaultStatus*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultStatus(self, p) -proc put_status*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc setTimeout*(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setTimeout(self, expression, msec, language, timerID) -proc clearTimeout*(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearTimeout(self, timerID) -proc alert*(self: ptr IHTMLWindow2, message: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.alert(self, message) -proc confirm*(self: ptr IHTMLWindow2, message: BSTR, confirmed: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.confirm(self, message, confirmed) -proc prompt*(self: ptr IHTMLWindow2, message: BSTR, defstr: BSTR, textdata: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.prompt(self, message, defstr, textdata) -proc get_Image*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLImageElementFactory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Image(self, p) -proc get_location*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLLocation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_location(self, p) -proc get_history*(self: ptr IHTMLWindow2, p: ptr ptr IOmHistory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_history(self, p) -proc close*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.close(self) -proc put_opener*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_opener(self, v) -proc get_opener*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_opener(self, p) -proc get_navigator*(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_navigator(self, p) -proc put_name*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc get_parent*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parent(self, p) -proc open*(self: ptr IHTMLWindow2, url: BSTR, name: BSTR, features: BSTR, replace: VARIANT_BOOL, pomWindowResult: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, url, name, features, replace, pomWindowResult) -proc get_self*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_self(self, p) -proc get_top*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_top(self, p) -proc get_window*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_window(self, p) -proc navigate*(self: ptr IHTMLWindow2, url: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.navigate(self, url) -proc put_onfocus*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v) -proc get_onfocus*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p) -proc put_onblur*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v) -proc get_onblur*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p) -proc put_onload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onbeforeunload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeunload(self, v) -proc get_onbeforeunload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeunload(self, p) -proc put_onunload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onunload(self, v) -proc get_onunload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onunload(self, p) -proc put_onhelp*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhelp(self, v) -proc get_onhelp*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhelp(self, p) -proc put_onerror*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_onresize*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onresize(self, v) -proc get_onresize*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onresize(self, p) -proc put_onscroll*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onscroll(self, v) -proc get_onscroll*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onscroll(self, p) -proc get_document*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p) -proc get_event*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_event(self, p) -proc get_newEnum*(self: ptr IHTMLWindow2, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc showModalDialog*(self: ptr IHTMLWindow2, dialog: BSTR, varArgIn: ptr VARIANT, varOptions: ptr VARIANT, varArgOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showModalDialog(self, dialog, varArgIn, varOptions, varArgOut) -proc showHelp*(self: ptr IHTMLWindow2, helpURL: BSTR, helpArg: VARIANT, features: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showHelp(self, helpURL, helpArg, features) -proc get_screen*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLScreen): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screen(self, p) -proc get_Option*(self: ptr IHTMLWindow2, p: ptr ptr IHTMLOptionElementFactory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Option(self, p) -proc focus*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self) -proc get_closed*(self: ptr IHTMLWindow2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_closed(self, p) -proc blur*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.blur(self) -proc scroll*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scroll(self, x, y) -proc get_clientInformation*(self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientInformation(self, p) -proc setInterval*(self: ptr IHTMLWindow2, expression: BSTR, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setInterval(self, expression, msec, language, timerID) -proc clearInterval*(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearInterval(self, timerID) -proc put_offscreenBuffering*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_offscreenBuffering(self, v) -proc get_offscreenBuffering*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offscreenBuffering(self, p) -proc execScript*(self: ptr IHTMLWindow2, code: BSTR, language: BSTR, pvarRet: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execScript(self, code, language, pvarRet) -proc toString*(self: ptr IHTMLWindow2, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc scrollBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollBy(self, x, y) -proc scrollTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scrollTo(self, x, y) -proc moveTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveTo(self, x, y) -proc moveBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveBy(self, x, y) -proc resizeTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.resizeTo(self, x, y) -proc resizeBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.resizeBy(self, x, y) -proc get_external*(self: ptr IHTMLWindow2, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_external(self, p) -proc get_screenLeft*(self: ptr IHTMLWindow3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenLeft(self, p) -proc get_screenTop*(self: ptr IHTMLWindow3, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenTop(self, p) -proc attachEvent*(self: ptr IHTMLWindow3, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.attachEvent(self, event, pDisp, pfResult) -proc detachEvent*(self: ptr IHTMLWindow3, event: BSTR, pDisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detachEvent(self, event, pDisp) -proc setTimeout*(self: ptr IHTMLWindow3, expression: ptr VARIANT, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setTimeout(self, expression, msec, language, timerID) -proc setInterval*(self: ptr IHTMLWindow3, expression: ptr VARIANT, msec: LONG, language: ptr VARIANT, timerID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setInterval(self, expression, msec, language, timerID) -proc print*(self: ptr IHTMLWindow3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.print(self) -proc put_onbeforeprint*(self: ptr IHTMLWindow3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeprint(self, v) -proc get_onbeforeprint*(self: ptr IHTMLWindow3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeprint(self, p) -proc put_onafterprint*(self: ptr IHTMLWindow3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterprint(self, v) -proc get_onafterprint*(self: ptr IHTMLWindow3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterprint(self, p) -proc get_clipboardData*(self: ptr IHTMLWindow3, p: ptr ptr IHTMLDataTransfer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipboardData(self, p) -proc showModelessDialog*(self: ptr IHTMLWindow3, url: BSTR, varArgIn: ptr VARIANT, options: ptr VARIANT, pDialog: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showModelessDialog(self, url, varArgIn, options, pDialog) -proc createPopup*(self: ptr IHTMLWindow4, varArgIn: ptr VARIANT, ppPopup: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createPopup(self, varArgIn, ppPopup) -proc get_frameElement*(self: ptr IHTMLWindow4, p: ptr ptr IHTMLFrameBase): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameElement(self, p) -proc put_XMLHttpRequest*(self: ptr IHTMLWindow5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_XMLHttpRequest(self, v) -proc get_XMLHttpRequest*(self: ptr IHTMLWindow5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_XMLHttpRequest(self, p) -proc put_XDomainRequest*(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_XDomainRequest(self, v) -proc get_XDomainRequest*(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_XDomainRequest(self, p) -proc get_sessionStorage*(self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sessionStorage(self, p) -proc get_localStorage*(self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_localStorage(self, p) -proc put_onhashchange*(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhashchange(self, v) -proc get_onhashchange*(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhashchange(self, p) -proc get_maxConnectionsPerServer*(self: ptr IHTMLWindow6, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maxConnectionsPerServer(self, p) -proc postMessage*(self: ptr IHTMLWindow6, msg: BSTR, targetOrigin: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.postMessage(self, msg, targetOrigin) -proc toStaticHTML*(self: ptr IHTMLWindow6, bstrHTML: BSTR, pbstrStaticHTML: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toStaticHTML(self, bstrHTML, pbstrStaticHTML) -proc put_onmessage*(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmessage(self, v) -proc get_onmessage*(self: ptr IHTMLWindow6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmessage(self, p) -proc msWriteProfilerMark*(self: ptr IHTMLWindow6, bstrProfilerMarkName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.msWriteProfilerMark(self, bstrProfilerMarkName) -proc getSelection*(self: ptr IHTMLWindow7, ppIHTMLSelection: ptr ptr IHTMLSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getSelection(self, ppIHTMLSelection) -proc getComputedStyle*(self: ptr IHTMLWindow7, varArgIn: ptr IHTMLDOMNode, bstrPseudoElt: BSTR, ppComputedStyle: ptr ptr IHTMLCSSStyleDeclaration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getComputedStyle(self, varArgIn, bstrPseudoElt, ppComputedStyle) -proc get_styleMedia*(self: ptr IHTMLWindow7, p: ptr ptr IHTMLStyleMedia): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleMedia(self, p) -proc put_performance*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_performance(self, v) -proc get_performance*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_performance(self, p) -proc get_innerWidth*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerWidth(self, p) -proc get_innerHeight*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerHeight(self, p) -proc get_pageXOffset*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageXOffset(self, p) -proc get_pageYOffset*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageYOffset(self, p) -proc get_screenX*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenX(self, p) -proc get_screenY*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenY(self, p) -proc get_outerWidth*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outerWidth(self, p) -proc get_outerHeight*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_outerHeight(self, p) -proc put_onabort*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v) -proc get_onabort*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p) -proc put_oncanplay*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncanplay(self, v) -proc get_oncanplay*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncanplay(self, p) -proc put_oncanplaythrough*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncanplaythrough(self, v) -proc get_oncanplaythrough*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncanplaythrough(self, p) -proc put_onchange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_onclick*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onclick(self, v) -proc get_onclick*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onclick(self, p) -proc put_oncontextmenu*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncontextmenu(self, v) -proc get_oncontextmenu*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncontextmenu(self, p) -proc put_ondblclick*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondblclick(self, v) -proc get_ondblclick*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondblclick(self, p) -proc put_ondrag*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondrag(self, v) -proc get_ondrag*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondrag(self, p) -proc put_ondragend*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragend(self, v) -proc get_ondragend*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragend(self, p) -proc put_ondragenter*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragenter(self, v) -proc get_ondragenter*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragenter(self, p) -proc put_ondragleave*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragleave(self, v) -proc get_ondragleave*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragleave(self, p) -proc put_ondragover*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragover(self, v) -proc get_ondragover*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragover(self, p) -proc put_ondragstart*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragstart(self, v) -proc get_ondragstart*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragstart(self, p) -proc put_ondrop*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondrop(self, v) -proc get_ondrop*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondrop(self, p) -proc put_ondurationchange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondurationchange(self, v) -proc get_ondurationchange*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondurationchange(self, p) -proc put_onfocusin*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocusin(self, v) -proc get_onfocusin*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocusin(self, p) -proc put_onfocusout*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocusout(self, v) -proc get_onfocusout*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocusout(self, p) -proc put_oninput*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oninput(self, v) -proc get_oninput*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oninput(self, p) -proc put_onemptied*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onemptied(self, v) -proc get_onemptied*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onemptied(self, p) -proc put_onended*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onended(self, v) -proc get_onended*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onended(self, p) -proc put_onkeydown*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeydown(self, v) -proc get_onkeydown*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeydown(self, p) -proc put_onkeypress*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeypress(self, v) -proc get_onkeypress*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeypress(self, p) -proc put_onkeyup*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeyup(self, v) -proc get_onkeyup*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeyup(self, p) -proc put_onloadeddata*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadeddata(self, v) -proc get_onloadeddata*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadeddata(self, p) -proc put_onloadedmetadata*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadedmetadata(self, v) -proc get_onloadedmetadata*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadedmetadata(self, p) -proc put_onloadstart*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadstart(self, v) -proc get_onloadstart*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadstart(self, p) -proc put_onmousedown*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousedown(self, v) -proc get_onmousedown*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousedown(self, p) -proc put_onmouseenter*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseenter(self, v) -proc get_onmouseenter*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseenter(self, p) -proc put_onmouseleave*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseleave(self, v) -proc get_onmouseleave*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseleave(self, p) -proc put_onmousemove*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousemove(self, v) -proc get_onmousemove*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousemove(self, p) -proc put_onmouseout*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseout(self, v) -proc get_onmouseout*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseout(self, p) -proc put_onmouseover*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseover(self, v) -proc get_onmouseover*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseover(self, p) -proc put_onmouseup*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseup(self, v) -proc get_onmouseup*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseup(self, p) -proc put_onmousewheel*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousewheel(self, v) -proc get_onmousewheel*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousewheel(self, p) -proc put_onoffline*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onoffline(self, v) -proc get_onoffline*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onoffline(self, p) -proc put_ononline*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ononline(self, v) -proc get_ononline*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ononline(self, p) -proc put_onprogress*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onprogress(self, v) -proc get_onprogress*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onprogress(self, p) -proc put_onratechange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onratechange(self, v) -proc get_onratechange*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onratechange(self, p) -proc put_onreadystatechange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc put_onreset*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreset(self, v) -proc get_onreset*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreset(self, p) -proc put_onseeked*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onseeked(self, v) -proc get_onseeked*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onseeked(self, p) -proc put_onseeking*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onseeking(self, v) -proc get_onseeking*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onseeking(self, p) -proc put_onselect*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_onstalled*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstalled(self, v) -proc get_onstalled*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstalled(self, p) -proc put_onstorage*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstorage(self, v) -proc get_onstorage*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstorage(self, p) -proc put_onsubmit*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsubmit(self, v) -proc get_onsubmit*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsubmit(self, p) -proc put_onsuspend*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsuspend(self, v) -proc get_onsuspend*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsuspend(self, p) -proc put_ontimeupdate*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ontimeupdate(self, v) -proc get_ontimeupdate*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ontimeupdate(self, p) -proc put_onpause*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpause(self, v) -proc get_onpause*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpause(self, p) -proc put_onplay*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onplay(self, v) -proc get_onplay*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onplay(self, p) -proc put_onplaying*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onplaying(self, v) -proc get_onplaying*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onplaying(self, p) -proc put_onvolumechange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onvolumechange(self, v) -proc get_onvolumechange*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onvolumechange(self, p) -proc put_onwaiting*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onwaiting(self, v) -proc get_onwaiting*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onwaiting(self, p) -proc put_onmspointerdown*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerdown(self, v) -proc get_onmspointerdown*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerdown(self, p) -proc put_onmspointermove*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointermove(self, v) -proc get_onmspointermove*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointermove(self, p) -proc put_onmspointerup*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerup(self, v) -proc get_onmspointerup*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerup(self, p) -proc put_onmspointerover*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerover(self, v) -proc get_onmspointerover*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerover(self, p) -proc put_onmspointerout*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerout(self, v) -proc get_onmspointerout*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerout(self, p) -proc put_onmspointercancel*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointercancel(self, v) -proc get_onmspointercancel*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointercancel(self, p) -proc put_onmspointerhover*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerhover(self, v) -proc get_onmspointerhover*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerhover(self, p) -proc put_onmsgesturestart*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturestart(self, v) -proc get_onmsgesturestart*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturestart(self, p) -proc put_onmsgesturechange*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturechange(self, v) -proc get_onmsgesturechange*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturechange(self, p) -proc put_onmsgestureend*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgestureend(self, v) -proc get_onmsgestureend*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgestureend(self, p) -proc put_onmsgesturehold*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturehold(self, v) -proc get_onmsgesturehold*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturehold(self, p) -proc put_onmsgesturetap*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturetap(self, v) -proc get_onmsgesturetap*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturetap(self, p) -proc put_onmsgesturedoubletap*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturedoubletap(self, v) -proc get_onmsgesturedoubletap*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturedoubletap(self, p) -proc put_onmsinertiastart*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsinertiastart(self, v) -proc get_onmsinertiastart*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsinertiastart(self, p) -proc get_applicationCache*(self: ptr IHTMLWindow8, p: ptr ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_applicationCache(self, p) -proc put_onpopstate*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpopstate(self, v) -proc get_onpopstate*(self: ptr IHTMLWindow8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpopstate(self, p) -proc get_userAgent*(self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userAgent(self, p) -proc get_version*(self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_version(self, p) -proc get_length*(self: ptr IHTMLDocumentCompatibleInfoCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLDocumentCompatibleInfoCollection, index: LONG, compatibleInfo: ptr ptr IHTMLDocumentCompatibleInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, compatibleInfo) -proc get_Script*(self: ptr IHTMLDocument, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Script(self, p) -proc get_all*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_all(self, p) -proc get_body*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_body(self, p) -proc get_activeElement*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_activeElement(self, p) -proc get_images*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_images(self, p) -proc get_applets*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_applets(self, p) -proc get_links*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_links(self, p) -proc get_forms*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_forms(self, p) -proc get_anchors*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_anchors(self, p) -proc put_title*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_title(self, v) -proc get_title*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_title(self, p) -proc get_scripts*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scripts(self, p) -proc put_designMode*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_designMode(self, v) -proc get_designMode*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_designMode(self, p) -proc get_selection*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selection(self, p) -proc get_readyState*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc get_frames*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLFramesCollection2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frames(self, p) -proc get_embeds*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_embeds(self, p) -proc get_plugins*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_plugins(self, p) -proc put_alinkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alinkColor(self, v) -proc get_alinkColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alinkColor(self, p) -proc put_bgColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc put_fgColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fgColor(self, v) -proc get_fgColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fgColor(self, p) -proc put_linkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_linkColor(self, v) -proc get_linkColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_linkColor(self, p) -proc put_vlinkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vlinkColor(self, v) -proc get_vlinkColor*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vlinkColor(self, p) -proc get_referrer*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_referrer(self, p) -proc get_location*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLLocation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_location(self, p) -proc get_lastModified*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastModified(self, p) -proc put_URL*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_URL(self, v) -proc get_URL*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URL(self, p) -proc put_domain*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_domain(self, v) -proc get_domain*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domain(self, p) -proc put_cookie*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cookie(self, v) -proc get_cookie*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cookie(self, p) -proc put_expando*(self: ptr IHTMLDocument2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_expando(self, v) -proc get_expando*(self: ptr IHTMLDocument2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_expando(self, p) -proc put_charset*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, v) -proc get_charset*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_defaultCharset*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultCharset(self, v) -proc get_defaultCharset*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultCharset(self, p) -proc get_mimeType*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p) -proc get_fileSize*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileSize(self, p) -proc get_fileCreatedDate*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileCreatedDate(self, p) -proc get_fileModifiedDate*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileModifiedDate(self, p) -proc get_fileUpdatedDate*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileUpdatedDate(self, p) -proc get_security*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_security(self, p) -proc get_protocol*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p) -proc get_nameProp*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nameProp(self, p) -proc write*(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.write(self, psarray) -proc writeln*(self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.writeln(self, psarray) -proc open*(self: ptr IHTMLDocument2, url: BSTR, name: VARIANT, features: VARIANT, replace: VARIANT, pomWindowResult: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, url, name, features, replace, pomWindowResult) -proc close*(self: ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.close(self) -proc clear*(self: ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc queryCommandSupported*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandSupported(self, cmdID, pfRet) -proc queryCommandEnabled*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet) -proc queryCommandState*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandState(self, cmdID, pfRet) -proc queryCommandIndeterm*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet) -proc queryCommandText*(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandText(self, cmdID, pcmdText) -proc queryCommandValue*(self: ptr IHTMLDocument2, cmdID: BSTR, pcmdValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue) -proc execCommand*(self: ptr IHTMLDocument2, cmdID: BSTR, showUI: VARIANT_BOOL, value: VARIANT, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet) -proc execCommandShowHelp*(self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet) -proc createElement*(self: ptr IHTMLDocument2, eTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElement(self, eTag, newElem) -proc put_onhelp*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhelp(self, v) -proc get_onhelp*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhelp(self, p) -proc put_onclick*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onclick(self, v) -proc get_onclick*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onclick(self, p) -proc put_ondblclick*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondblclick(self, v) -proc get_ondblclick*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondblclick(self, p) -proc put_onkeyup*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeyup(self, v) -proc get_onkeyup*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeyup(self, p) -proc put_onkeydown*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeydown(self, v) -proc get_onkeydown*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeydown(self, p) -proc put_onkeypress*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onkeypress(self, v) -proc get_onkeypress*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onkeypress(self, p) -proc put_onmouseup*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseup(self, v) -proc get_onmouseup*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseup(self, p) -proc put_onmousedown*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousedown(self, v) -proc get_onmousedown*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousedown(self, p) -proc put_onmousemove*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousemove(self, v) -proc get_onmousemove*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousemove(self, p) -proc put_onmouseout*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseout(self, v) -proc get_onmouseout*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseout(self, p) -proc put_onmouseover*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmouseover(self, v) -proc get_onmouseover*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmouseover(self, p) -proc put_onreadystatechange*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc put_onafterupdate*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterupdate(self, v) -proc get_onafterupdate*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterupdate(self, p) -proc put_onrowexit*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowexit(self, v) -proc get_onrowexit*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowexit(self, p) -proc put_onrowenter*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowenter(self, v) -proc get_onrowenter*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowenter(self, p) -proc put_ondragstart*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragstart(self, v) -proc get_ondragstart*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragstart(self, p) -proc put_onselectstart*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselectstart(self, v) -proc get_onselectstart*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselectstart(self, p) -proc elementFromPoint*(self: ptr IHTMLDocument2, x: LONG, y: LONG, elementHit: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.elementFromPoint(self, x, y, elementHit) -proc get_parentWindow*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentWindow(self, p) -proc get_styleSheets*(self: ptr IHTMLDocument2, p: ptr ptr IHTMLStyleSheetsCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleSheets(self, p) -proc put_onbeforeupdate*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeupdate(self, v) -proc get_onbeforeupdate*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeupdate(self, p) -proc put_onerrorupdate*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerrorupdate(self, v) -proc get_onerrorupdate*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerrorupdate(self, p) -proc toString*(self: ptr IHTMLDocument2, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc createStyleSheet*(self: ptr IHTMLDocument2, bstrHref: BSTR, lIndex: LONG, ppnewStyleSheet: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createStyleSheet(self, bstrHref, lIndex, ppnewStyleSheet) -proc releaseCapture*(self: ptr IHTMLDocument3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.releaseCapture(self) -proc recalc*(self: ptr IHTMLDocument3, fForce: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.recalc(self, fForce) -proc createTextNode*(self: ptr IHTMLDocument3, text: BSTR, newTextNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextNode(self, text, newTextNode) -proc get_documentElement*(self: ptr IHTMLDocument3, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_documentElement(self, p) -proc get_uniqueID*(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_uniqueID(self, p) -proc attachEvent*(self: ptr IHTMLDocument3, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.attachEvent(self, event, pDisp, pfResult) -proc detachEvent*(self: ptr IHTMLDocument3, event: BSTR, pDisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detachEvent(self, event, pDisp) -proc put_onrowsdelete*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowsdelete(self, v) -proc get_onrowsdelete*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowsdelete(self, p) -proc put_onrowsinserted*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onrowsinserted(self, v) -proc get_onrowsinserted*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onrowsinserted(self, p) -proc put_oncellchange*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncellchange(self, v) -proc get_oncellchange*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncellchange(self, p) -proc put_ondatasetchanged*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondatasetchanged(self, v) -proc get_ondatasetchanged*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondatasetchanged(self, p) -proc put_ondataavailable*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondataavailable(self, v) -proc get_ondataavailable*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondataavailable(self, p) -proc put_ondatasetcomplete*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondatasetcomplete(self, v) -proc get_ondatasetcomplete*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondatasetcomplete(self, p) -proc put_onpropertychange*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpropertychange(self, v) -proc get_onpropertychange*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpropertychange(self, p) -proc put_dir*(self: ptr IHTMLDocument3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dir(self, v) -proc get_dir*(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dir(self, p) -proc put_oncontextmenu*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncontextmenu(self, v) -proc get_oncontextmenu*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncontextmenu(self, p) -proc put_onstop*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstop(self, v) -proc get_onstop*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstop(self, p) -proc createDocumentFragment*(self: ptr IHTMLDocument3, pNewDoc: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createDocumentFragment(self, pNewDoc) -proc get_parentDocument*(self: ptr IHTMLDocument3, p: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentDocument(self, p) -proc put_enableDownload*(self: ptr IHTMLDocument3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_enableDownload(self, v) -proc get_enableDownload*(self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_enableDownload(self, p) -proc put_baseUrl*(self: ptr IHTMLDocument3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baseUrl(self, v) -proc get_baseUrl*(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseUrl(self, p) -proc get_childNodes*(self: ptr IHTMLDocument3, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childNodes(self, p) -proc put_inheritStyleSheets*(self: ptr IHTMLDocument3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_inheritStyleSheets(self, v) -proc get_inheritStyleSheets*(self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_inheritStyleSheets(self, p) -proc put_onbeforeeditfocus*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeeditfocus(self, v) -proc get_onbeforeeditfocus*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeeditfocus(self, p) -proc getElementsByName*(self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByName(self, v, pelColl) -proc getElementById*(self: ptr IHTMLDocument3, v: BSTR, pel: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementById(self, v, pel) -proc getElementsByTagName*(self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByTagName(self, v, pelColl) -proc focus*(self: ptr IHTMLDocument4): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self) -proc hasFocus*(self: ptr IHTMLDocument4, pfFocus: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasFocus(self, pfFocus) -proc put_onselectionchange*(self: ptr IHTMLDocument4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselectionchange(self, v) -proc get_onselectionchange*(self: ptr IHTMLDocument4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselectionchange(self, p) -proc get_namespaces*(self: ptr IHTMLDocument4, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_namespaces(self, p) -proc createDocumentFromUrl*(self: ptr IHTMLDocument4, bstrUrl: BSTR, bstrOptions: BSTR, newDoc: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createDocumentFromUrl(self, bstrUrl, bstrOptions, newDoc) -proc put_media*(self: ptr IHTMLDocument4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLDocument4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc createEventObject*(self: ptr IHTMLDocument4, pvarEventObject: ptr VARIANT, ppEventObj: ptr ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createEventObject(self, pvarEventObject, ppEventObj) -proc fireEvent*(self: ptr IHTMLDocument4, bstrEventName: BSTR, pvarEventObject: ptr VARIANT, pfCancelled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fireEvent(self, bstrEventName, pvarEventObject, pfCancelled) -proc createRenderStyle*(self: ptr IHTMLDocument4, v: BSTR, ppIHTMLRenderStyle: ptr ptr IHTMLRenderStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createRenderStyle(self, v, ppIHTMLRenderStyle) -proc put_oncontrolselect*(self: ptr IHTMLDocument4, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncontrolselect(self, v) -proc get_oncontrolselect*(self: ptr IHTMLDocument4, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncontrolselect(self, p) -proc get_URLUnencoded*(self: ptr IHTMLDocument4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URLUnencoded(self, p) -proc put_onmousewheel*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmousewheel(self, v) -proc get_onmousewheel*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmousewheel(self, p) -proc get_doctype*(self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_doctype(self, p) -proc get_implementation*(self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMImplementation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_implementation(self, p) -proc createAttribute*(self: ptr IHTMLDocument5, bstrattrName: BSTR, ppattribute: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createAttribute(self, bstrattrName, ppattribute) -proc createComment*(self: ptr IHTMLDocument5, bstrdata: BSTR, ppRetNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createComment(self, bstrdata, ppRetNode) -proc put_onfocusin*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocusin(self, v) -proc get_onfocusin*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocusin(self, p) -proc put_onfocusout*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocusout(self, v) -proc get_onfocusout*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocusout(self, p) -proc put_onactivate*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onactivate(self, v) -proc get_onactivate*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onactivate(self, p) -proc put_ondeactivate*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondeactivate(self, v) -proc get_ondeactivate*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondeactivate(self, p) -proc put_onbeforeactivate*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeactivate(self, v) -proc get_onbeforeactivate*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeactivate(self, p) -proc put_onbeforedeactivate*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforedeactivate(self, v) -proc get_onbeforedeactivate*(self: ptr IHTMLDocument5, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforedeactivate(self, p) -proc get_compatMode*(self: ptr IHTMLDocument5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_compatMode(self, p) -proc get_compatible*(self: ptr IHTMLDocument6, p: ptr ptr IHTMLDocumentCompatibleInfoCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_compatible(self, p) -proc get_documentMode*(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_documentMode(self, p) -proc put_onstorage*(self: ptr IHTMLDocument6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstorage(self, v) -proc get_onstorage*(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstorage(self, p) -proc put_onstoragecommit*(self: ptr IHTMLDocument6, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstoragecommit(self, v) -proc get_onstoragecommit*(self: ptr IHTMLDocument6, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstoragecommit(self, p) -proc getElementById*(self: ptr IHTMLDocument6, bstrId: BSTR, ppRetElement: ptr ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementById(self, bstrId, ppRetElement) -proc updateSettings*(self: ptr IHTMLDocument6): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.updateSettings(self) -proc get_defaultView*(self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultView(self, p) -proc createCDATASection*(self: ptr IHTMLDocument7, text: BSTR, newCDATASectionNode: ptr ptr IHTMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createCDATASection(self, text, newCDATASectionNode) -proc getSelection*(self: ptr IHTMLDocument7, ppIHTMLSelection: ptr ptr IHTMLSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getSelection(self, ppIHTMLSelection) -proc getElementsByTagNameNS*(self: ptr IHTMLDocument7, pvarNS: ptr VARIANT, bstrLocalName: BSTR, pelColl: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByTagNameNS(self, pvarNS, bstrLocalName, pelColl) -proc createElementNS*(self: ptr IHTMLDocument7, pvarNS: ptr VARIANT, bstrTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElementNS(self, pvarNS, bstrTag, newElem) -proc createAttributeNS*(self: ptr IHTMLDocument7, pvarNS: ptr VARIANT, bstrAttrName: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createAttributeNS(self, pvarNS, bstrAttrName, ppAttribute) -proc put_onmsthumbnailclick*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsthumbnailclick(self, v) -proc get_onmsthumbnailclick*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsthumbnailclick(self, p) -proc get_characterSet*(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_characterSet(self, p) -proc createElement*(self: ptr IHTMLDocument7, bstrTag: BSTR, newElem: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElement(self, bstrTag, newElem) -proc createAttribute*(self: ptr IHTMLDocument7, bstrAttrName: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createAttribute(self, bstrAttrName, ppAttribute) -proc getElementsByClassName*(self: ptr IHTMLDocument7, v: BSTR, pel: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByClassName(self, v, pel) -proc createProcessingInstruction*(self: ptr IHTMLDocument7, bstrTarget: BSTR, bstrData: BSTR, newProcessingInstruction: ptr ptr IDOMProcessingInstruction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createProcessingInstruction(self, bstrTarget, bstrData, newProcessingInstruction) -proc adoptNode*(self: ptr IHTMLDocument7, pNodeSource: ptr IHTMLDOMNode, ppNodeDest: ptr ptr IHTMLDOMNode3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.adoptNode(self, pNodeSource, ppNodeDest) -proc put_onmssitemodejumplistitemremoved*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmssitemodejumplistitemremoved(self, v) -proc get_onmssitemodejumplistitemremoved*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmssitemodejumplistitemremoved(self, p) -proc get_all*(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_all(self, p) -proc get_inputEncoding*(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_inputEncoding(self, p) -proc get_xmlEncoding*(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmlEncoding(self, p) -proc put_xmlStandalone*(self: ptr IHTMLDocument7, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_xmlStandalone(self, v) -proc get_xmlStandalone*(self: ptr IHTMLDocument7, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmlStandalone(self, p) -proc put_xmlVersion*(self: ptr IHTMLDocument7, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_xmlVersion(self, v) -proc get_xmlVersion*(self: ptr IHTMLDocument7, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmlVersion(self, p) -proc hasAttributes*(self: ptr IHTMLDocument7, pfHasAttributes: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasAttributes(self, pfHasAttributes) -proc put_onabort*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onabort(self, v) -proc get_onabort*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onabort(self, p) -proc put_onblur*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v) -proc get_onblur*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p) -proc put_oncanplay*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncanplay(self, v) -proc get_oncanplay*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncanplay(self, p) -proc put_oncanplaythrough*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncanplaythrough(self, v) -proc get_oncanplaythrough*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncanplaythrough(self, p) -proc put_onchange*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchange(self, v) -proc get_onchange*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchange(self, p) -proc put_ondrag*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondrag(self, v) -proc get_ondrag*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondrag(self, p) -proc put_ondragend*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragend(self, v) -proc get_ondragend*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragend(self, p) -proc put_ondragenter*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragenter(self, v) -proc get_ondragenter*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragenter(self, p) -proc put_ondragleave*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragleave(self, v) -proc get_ondragleave*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragleave(self, p) -proc put_ondragover*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondragover(self, v) -proc get_ondragover*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondragover(self, p) -proc put_ondrop*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondrop(self, v) -proc get_ondrop*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondrop(self, p) -proc put_ondurationchange*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondurationchange(self, v) -proc get_ondurationchange*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondurationchange(self, p) -proc put_onemptied*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onemptied(self, v) -proc get_onemptied*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onemptied(self, p) -proc put_onended*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onended(self, v) -proc get_onended*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onended(self, p) -proc put_onerror*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_onfocus*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v) -proc get_onfocus*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p) -proc put_oninput*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oninput(self, v) -proc get_oninput*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oninput(self, p) -proc put_onload*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onloadeddata*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadeddata(self, v) -proc get_onloadeddata*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadeddata(self, p) -proc put_onloadedmetadata*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadedmetadata(self, v) -proc get_onloadedmetadata*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadedmetadata(self, p) -proc put_onloadstart*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onloadstart(self, v) -proc get_onloadstart*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onloadstart(self, p) -proc put_onpause*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onpause(self, v) -proc get_onpause*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onpause(self, p) -proc put_onplay*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onplay(self, v) -proc get_onplay*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onplay(self, p) -proc put_onplaying*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onplaying(self, v) -proc get_onplaying*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onplaying(self, p) -proc put_onprogress*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onprogress(self, v) -proc get_onprogress*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onprogress(self, p) -proc put_onratechange*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onratechange(self, v) -proc get_onratechange*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onratechange(self, p) -proc put_onreset*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreset(self, v) -proc get_onreset*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreset(self, p) -proc put_onscroll*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onscroll(self, v) -proc get_onscroll*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onscroll(self, p) -proc put_onseeked*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onseeked(self, v) -proc get_onseeked*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onseeked(self, p) -proc put_onseeking*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onseeking(self, v) -proc get_onseeking*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onseeking(self, p) -proc put_onselect*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onselect(self, v) -proc get_onselect*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onselect(self, p) -proc put_onstalled*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstalled(self, v) -proc get_onstalled*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstalled(self, p) -proc put_onsubmit*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsubmit(self, v) -proc get_onsubmit*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsubmit(self, p) -proc put_onsuspend*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onsuspend(self, v) -proc get_onsuspend*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onsuspend(self, p) -proc put_ontimeupdate*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ontimeupdate(self, v) -proc get_ontimeupdate*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ontimeupdate(self, p) -proc put_onvolumechange*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onvolumechange(self, v) -proc get_onvolumechange*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onvolumechange(self, p) -proc put_onwaiting*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onwaiting(self, v) -proc get_onwaiting*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onwaiting(self, p) -proc normalize*(self: ptr IHTMLDocument7): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.normalize(self) -proc importNode*(self: ptr IHTMLDocument7, pNodeSource: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, ppNodeDest: ptr ptr IHTMLDOMNode3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.importNode(self, pNodeSource, fDeep, ppNodeDest) -proc get_parentWindow*(self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentWindow(self, p) -proc putref_body*(self: ptr IHTMLDocument7, v: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_body(self, v) -proc get_body*(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_body(self, p) -proc get_head*(self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_head(self, p) -proc put_onmscontentzoom*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmscontentzoom(self, v) -proc get_onmscontentzoom*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmscontentzoom(self, p) -proc put_onmspointerdown*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerdown(self, v) -proc get_onmspointerdown*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerdown(self, p) -proc put_onmspointermove*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointermove(self, v) -proc get_onmspointermove*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointermove(self, p) -proc put_onmspointerup*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerup(self, v) -proc get_onmspointerup*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerup(self, p) -proc put_onmspointerover*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerover(self, v) -proc get_onmspointerover*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerover(self, p) -proc put_onmspointerout*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerout(self, v) -proc get_onmspointerout*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerout(self, p) -proc put_onmspointercancel*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointercancel(self, v) -proc get_onmspointercancel*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointercancel(self, p) -proc put_onmspointerhover*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmspointerhover(self, v) -proc get_onmspointerhover*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmspointerhover(self, p) -proc put_onmsgesturestart*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturestart(self, v) -proc get_onmsgesturestart*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturestart(self, p) -proc put_onmsgesturechange*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturechange(self, v) -proc get_onmsgesturechange*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturechange(self, p) -proc put_onmsgestureend*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgestureend(self, v) -proc get_onmsgestureend*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgestureend(self, p) -proc put_onmsgesturehold*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturehold(self, v) -proc get_onmsgesturehold*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturehold(self, p) -proc put_onmsgesturetap*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturetap(self, v) -proc get_onmsgesturetap*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturetap(self, p) -proc put_onmsgesturedoubletap*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsgesturedoubletap(self, v) -proc get_onmsgesturedoubletap*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsgesturedoubletap(self, p) -proc put_onmsinertiastart*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsinertiastart(self, v) -proc get_onmsinertiastart*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsinertiastart(self, p) -proc elementsFromPoint*(self: ptr IHTMLDocument8, x: float32, y: float32, elementsHit: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.elementsFromPoint(self, x, y, elementsHit) -proc elementsFromRect*(self: ptr IHTMLDocument8, left: float32, top: float32, width: float32, height: float32, elementsHit: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.elementsFromRect(self, left, top, width, height, elementsHit) -proc put_onmsmanipulationstatechanged*(self: ptr IHTMLDocument8, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmsmanipulationstatechanged(self, v) -proc get_onmsmanipulationstatechanged*(self: ptr IHTMLDocument8, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmsmanipulationstatechanged(self, p) -proc put_msCapsLockWarningOff*(self: ptr IHTMLDocument8, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msCapsLockWarningOff(self, v) -proc get_msCapsLockWarningOff*(self: ptr IHTMLDocument8, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msCapsLockWarningOff(self, p) -proc createEvent*(self: ptr IDocumentEvent, eventType: BSTR, ppEvent: ptr ptr IDOMEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createEvent(self, eventType, ppEvent) -proc createRange*(self: ptr IDocumentRange, ppIHTMLDOMRange: ptr ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createRange(self, ppIHTMLDOMRange) -proc querySelector*(self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.querySelector(self, v, pel) -proc querySelectorAll*(self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.querySelectorAll(self, v, pel) -proc createNodeIterator*(self: ptr IDocumentTraversal, pRootNode: ptr IDispatch, ulWhatToShow: LONG, pFilter: ptr VARIANT, fEntityReferenceExpansion: VARIANT_BOOL, ppNodeIterator: ptr ptr IDOMNodeIterator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createNodeIterator(self, pRootNode, ulWhatToShow, pFilter, fEntityReferenceExpansion, ppNodeIterator) -proc createTreeWalker*(self: ptr IDocumentTraversal, pRootNode: ptr IDispatch, ulWhatToShow: LONG, pFilter: ptr VARIANT, fEntityReferenceExpansion: VARIANT_BOOL, ppTreeWalker: ptr ptr IDOMTreeWalker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTreeWalker(self, pRootNode, ulWhatToShow, pFilter, fEntityReferenceExpansion, ppTreeWalker) -proc put_URL*(self: ptr IWebBridge, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_URL(self, v) -proc get_URL*(self: ptr IWebBridge, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URL(self, p) -proc put_Scrollbar*(self: ptr IWebBridge, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Scrollbar(self, v) -proc get_Scrollbar*(self: ptr IWebBridge, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Scrollbar(self, p) -proc put_embed*(self: ptr IWebBridge, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_embed(self, v) -proc get_embed*(self: ptr IWebBridge, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_embed(self, p) -proc get_event*(self: ptr IWebBridge, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_event(self, p) -proc get_readyState*(self: ptr IWebBridge, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc AboutBox*(self: ptr IWebBridge): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AboutBox(self) -proc raiseEvent*(self: ptr IWBScriptControl, name: BSTR, eventData: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.raiseEvent(self, name, eventData) -proc bubbleEvent*(self: ptr IWBScriptControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.bubbleEvent(self) -proc setContextMenu*(self: ptr IWBScriptControl, menuItemPairs: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setContextMenu(self, menuItemPairs) -proc put_selectableContent*(self: ptr IWBScriptControl, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectableContent(self, v) -proc get_selectableContent*(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectableContent(self, p) -proc get_frozen*(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frozen(self, p) -proc put_scrollbar*(self: ptr IWBScriptControl, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollbar(self, v) -proc get_scrollbar*(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollbar(self, p) -proc get_version*(self: ptr IWBScriptControl, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_version(self, p) -proc get_visibility*(self: ptr IWBScriptControl, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_visibility(self, p) -proc put_onvisibilitychange*(self: ptr IWBScriptControl, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onvisibilitychange(self, v) -proc get_onvisibilitychange*(self: ptr IWBScriptControl, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onvisibilitychange(self, p) -proc put_hidden*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hidden(self, v) -proc get_hidden*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hidden(self, p) -proc get_palette*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_palette(self, p) -proc get_pluginspage*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pluginspage(self, p) -proc put_src*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_units*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_units(self, v) -proc get_units*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_units(self, p) -proc put_name*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_width*(self: ptr IHTMLEmbedElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLEmbedElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLEmbedElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLEmbedElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_src*(self: ptr IHTMLEmbedElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLEmbedElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc get_pluginspage*(self: ptr IHTMLEmbedElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pluginspage(self, p) -proc put_length*(self: ptr IHTMLAreasCollection, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v) -proc get_length*(self: ptr IHTMLAreasCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLAreasCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLAreasCollection, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, name, index, pdisp) -proc tags*(self: ptr IHTMLAreasCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.tags(self, tagName, pdisp) -proc add*(self: ptr IHTMLAreasCollection, element: ptr IHTMLElement, before: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add(self, element, before) -proc remove*(self: ptr IHTMLAreasCollection, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.remove(self, index) -proc urns*(self: ptr IHTMLAreasCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.urns(self, urn, pdisp) -proc namedItem*(self: ptr IHTMLAreasCollection3, name: BSTR, pdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedItem(self, name, pdisp) -proc get_length*(self: ptr IHTMLAreasCollection4, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLAreasCollection4, index: LONG, pNode: ptr ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pNode) -proc namedItem*(self: ptr IHTMLAreasCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedItem(self, name, pNode) -proc get_areas*(self: ptr IHTMLMapElement, p: ptr ptr IHTMLAreasCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_areas(self, p) -proc put_name*(self: ptr IHTMLMapElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLMapElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_shape*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shape(self, v) -proc get_shape*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shape(self, p) -proc put_coords*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_coords(self, v) -proc get_coords*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_coords(self, p) -proc put_href*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_target*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_target(self, v) -proc get_target*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc put_alt*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v) -proc get_alt*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p) -proc put_noHref*(self: ptr IHTMLAreaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noHref(self, v) -proc get_noHref*(self: ptr IHTMLAreaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noHref(self, p) -proc put_host*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_host(self, v) -proc get_host*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_host(self, p) -proc put_hostname*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hostname(self, v) -proc get_hostname*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hostname(self, p) -proc put_pathname*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pathname(self, v) -proc get_pathname*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathname(self, p) -proc put_port*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_port(self, v) -proc get_port*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_port(self, p) -proc put_protocol*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_protocol(self, v) -proc get_protocol*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_protocol(self, p) -proc put_search*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_search(self, v) -proc get_search*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_search(self, p) -proc put_hash*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hash(self, v) -proc get_hash*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hash(self, p) -proc put_onblur*(self: ptr IHTMLAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onblur(self, v) -proc get_onblur*(self: ptr IHTMLAreaElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onblur(self, p) -proc put_onfocus*(self: ptr IHTMLAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onfocus(self, v) -proc get_onfocus*(self: ptr IHTMLAreaElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onfocus(self, p) -proc put_tabIndex*(self: ptr IHTMLAreaElement, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tabIndex(self, v) -proc get_tabIndex*(self: ptr IHTMLAreaElement, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tabIndex(self, p) -proc focus*(self: ptr IHTMLAreaElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.focus(self) -proc blur*(self: ptr IHTMLAreaElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.blur(self) -proc put_shape*(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shape(self, v) -proc get_shape*(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shape(self, p) -proc put_coords*(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_coords(self, v) -proc get_coords*(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_coords(self, p) -proc put_href*(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_href(self, v) -proc get_href*(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc put_align*(self: ptr IHTMLTableCaption, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLTableCaption, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_vAlign*(self: ptr IHTMLTableCaption, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vAlign(self, v) -proc get_vAlign*(self: ptr IHTMLTableCaption, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vAlign(self, p) -proc put_text*(self: ptr IHTMLCommentElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v) -proc get_text*(self: ptr IHTMLCommentElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc put_atomic*(self: ptr IHTMLCommentElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_atomic(self, v) -proc get_atomic*(self: ptr IHTMLCommentElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_atomic(self, p) -proc put_data*(self: ptr IHTMLCommentElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, v) -proc get_data*(self: ptr IHTMLCommentElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc get_length*(self: ptr IHTMLCommentElement2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc substringData*(self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.substringData(self, offset, Count, pbstrsubString) -proc appendData*(self: ptr IHTMLCommentElement2, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendData(self, bstrstring) -proc insertData*(self: ptr IHTMLCommentElement2, offset: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertData(self, offset, bstrstring) -proc deleteData*(self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteData(self, offset, Count) -proc replaceData*(self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceData(self, offset, Count, bstrstring) -proc substringData*(self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.substringData(self, offset, Count, pbstrsubString) -proc insertData*(self: ptr IHTMLCommentElement3, offset: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertData(self, offset, bstrstring) -proc deleteData*(self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteData(self, offset, Count) -proc replaceData*(self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, bstrstring: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceData(self, offset, Count, bstrstring) -proc put_cite*(self: ptr IHTMLPhraseElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cite(self, v) -proc get_cite*(self: ptr IHTMLPhraseElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cite(self, p) -proc put_dateTime*(self: ptr IHTMLPhraseElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dateTime(self, v) -proc get_dateTime*(self: ptr IHTMLPhraseElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dateTime(self, p) -proc put_cite*(self: ptr IHTMLPhraseElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cite(self, v) -proc get_cite*(self: ptr IHTMLPhraseElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cite(self, p) -proc put_cols*(self: ptr IHTMLTable, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cols(self, v) -proc get_cols*(self: ptr IHTMLTable, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cols(self, p) -proc put_border*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_frame*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frame(self, v) -proc get_frame*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frame(self, p) -proc put_rules*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rules(self, v) -proc get_rules*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rules(self, p) -proc put_cellSpacing*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cellSpacing(self, v) -proc get_cellSpacing*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cellSpacing(self, p) -proc put_cellPadding*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cellPadding(self, v) -proc get_cellPadding*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cellPadding(self, p) -proc put_background*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_bgColor*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc put_borderColor*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_borderColorLight*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColorLight(self, v) -proc get_borderColorLight*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColorLight(self, p) -proc put_borderColorDark*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColorDark(self, v) -proc get_borderColorDark*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColorDark(self, p) -proc put_align*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc refresh*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.refresh(self) -proc get_rows*(self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rows(self, p) -proc put_width*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_dataPageSize*(self: ptr IHTMLTable, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dataPageSize(self, v) -proc get_dataPageSize*(self: ptr IHTMLTable, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataPageSize(self, p) -proc nextPage*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nextPage(self) -proc previousPage*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.previousPage(self) -proc get_tHead*(self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tHead(self, p) -proc get_tFoot*(self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tFoot(self, p) -proc get_tBodies*(self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tBodies(self, p) -proc get_caption*(self: ptr IHTMLTable, p: ptr ptr IHTMLTableCaption): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_caption(self, p) -proc createTHead*(self: ptr IHTMLTable, head: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTHead(self, head) -proc deleteTHead*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteTHead(self) -proc createTFoot*(self: ptr IHTMLTable, foot: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTFoot(self, foot) -proc deleteTFoot*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteTFoot(self) -proc createCaption*(self: ptr IHTMLTable, caption: ptr ptr IHTMLTableCaption): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createCaption(self, caption) -proc deleteCaption*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteCaption(self) -proc insertRow*(self: ptr IHTMLTable, index: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertRow(self, index, row) -proc deleteRow*(self: ptr IHTMLTable, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRow(self, index) -proc get_readyState*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onreadystatechange*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc firstPage*(self: ptr IHTMLTable2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.firstPage(self) -proc lastPage*(self: ptr IHTMLTable2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.lastPage(self) -proc get_cells*(self: ptr IHTMLTable2, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cells(self, p) -proc moveRow*(self: ptr IHTMLTable2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveRow(self, indexFrom, indexTo, row) -proc put_summary*(self: ptr IHTMLTable3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_summary(self, v) -proc get_summary*(self: ptr IHTMLTable3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_summary(self, p) -proc putref_tHead*(self: ptr IHTMLTable4, v: ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_tHead(self, v) -proc get_tHead*(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tHead(self, p) -proc putref_tFoot*(self: ptr IHTMLTable4, v: ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_tFoot(self, v) -proc get_tFoot*(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tFoot(self, p) -proc putref_caption*(self: ptr IHTMLTable4, v: ptr IHTMLTableCaption): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_caption(self, v) -proc get_caption*(self: ptr IHTMLTable4, p: ptr ptr IHTMLTableCaption): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_caption(self, p) -proc insertRow*(self: ptr IHTMLTable4, index: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertRow(self, index, row) -proc deleteRow*(self: ptr IHTMLTable4, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRow(self, index) -proc createTBody*(self: ptr IHTMLTable4, tbody: ptr ptr IHTMLTableSection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTBody(self, tbody) -proc put_span*(self: ptr IHTMLTableCol, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_span(self, v) -proc get_span*(self: ptr IHTMLTableCol, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_span(self, p) -proc put_width*(self: ptr IHTMLTableCol, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLTableCol, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_align*(self: ptr IHTMLTableCol, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLTableCol, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_vAlign*(self: ptr IHTMLTableCol, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vAlign(self, v) -proc get_vAlign*(self: ptr IHTMLTableCol, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vAlign(self, p) -proc put_ch*(self: ptr IHTMLTableCol2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableCol2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableCol2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableCol2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc put_ch*(self: ptr IHTMLTableCol3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableCol3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableCol3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableCol3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc put_align*(self: ptr IHTMLTableSection, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLTableSection, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_vAlign*(self: ptr IHTMLTableSection, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vAlign(self, v) -proc get_vAlign*(self: ptr IHTMLTableSection, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vAlign(self, p) -proc put_bgColor*(self: ptr IHTMLTableSection, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLTableSection, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc get_rows*(self: ptr IHTMLTableSection, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rows(self, p) -proc insertRow*(self: ptr IHTMLTableSection, index: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertRow(self, index, row) -proc deleteRow*(self: ptr IHTMLTableSection, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRow(self, index) -proc moveRow*(self: ptr IHTMLTableSection2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveRow(self, indexFrom, indexTo, row) -proc put_ch*(self: ptr IHTMLTableSection3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableSection3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableSection3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableSection3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc put_ch*(self: ptr IHTMLTableSection4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableSection4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableSection4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableSection4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc insertRow*(self: ptr IHTMLTableSection4, index: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertRow(self, index, row) -proc deleteRow*(self: ptr IHTMLTableSection4, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteRow(self, index) -proc put_align*(self: ptr IHTMLTableRow, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLTableRow, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_vAlign*(self: ptr IHTMLTableRow, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vAlign(self, v) -proc get_vAlign*(self: ptr IHTMLTableRow, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vAlign(self, p) -proc put_bgColor*(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc put_borderColor*(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_borderColorLight*(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColorLight(self, v) -proc get_borderColorLight*(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColorLight(self, p) -proc put_borderColorDark*(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColorDark(self, v) -proc get_borderColorDark*(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColorDark(self, p) -proc get_rowIndex*(self: ptr IHTMLTableRow, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rowIndex(self, p) -proc get_sectionRowIndex*(self: ptr IHTMLTableRow, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sectionRowIndex(self, p) -proc get_cells*(self: ptr IHTMLTableRow, p: ptr ptr IHTMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cells(self, p) -proc insertCell*(self: ptr IHTMLTableRow, index: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertCell(self, index, row) -proc deleteCell*(self: ptr IHTMLTableRow, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteCell(self, index) -proc put_height*(self: ptr IHTMLTableRow2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLTableRow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_ch*(self: ptr IHTMLTableRow3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableRow3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableRow3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableRow3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc put_ch*(self: ptr IHTMLTableRow4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableRow4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableRow4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableRow4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc insertCell*(self: ptr IHTMLTableRow4, index: LONG, row: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertCell(self, index, row) -proc deleteCell*(self: ptr IHTMLTableRow4, index: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteCell(self, index) -proc get_clientHeight*(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientHeight(self, p) -proc get_clientWidth*(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientWidth(self, p) -proc get_clientTop*(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientTop(self, p) -proc get_clientLeft*(self: ptr IHTMLTableRowMetrics, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientLeft(self, p) -proc put_rowSpan*(self: ptr IHTMLTableCell, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rowSpan(self, v) -proc get_rowSpan*(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rowSpan(self, p) -proc put_colSpan*(self: ptr IHTMLTableCell, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_colSpan(self, v) -proc get_colSpan*(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_colSpan(self, p) -proc put_align*(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLTableCell, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_vAlign*(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vAlign(self, v) -proc get_vAlign*(self: ptr IHTMLTableCell, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vAlign(self, p) -proc put_bgColor*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_bgColor(self, v) -proc get_bgColor*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bgColor(self, p) -proc put_noWrap*(self: ptr IHTMLTableCell, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noWrap(self, v) -proc get_noWrap*(self: ptr IHTMLTableCell, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noWrap(self, p) -proc put_background*(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_background(self, v) -proc get_background*(self: ptr IHTMLTableCell, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_background(self, p) -proc put_borderColor*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_borderColorLight*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColorLight(self, v) -proc get_borderColorLight*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColorLight(self, p) -proc put_borderColorDark*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColorDark(self, v) -proc get_borderColorDark*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColorDark(self, p) -proc put_width*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_cellIndex*(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cellIndex(self, p) -proc put_abbr*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_abbr(self, v) -proc get_abbr*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_abbr(self, p) -proc put_axis*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_axis(self, v) -proc get_axis*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_axis(self, p) -proc put_ch*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc put_headers*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_headers(self, v) -proc get_headers*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_headers(self, p) -proc put_scope*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scope(self, v) -proc get_scope*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scope(self, p) -proc put_ch*(self: ptr IHTMLTableCell3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ch(self, v) -proc get_ch*(self: ptr IHTMLTableCell3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ch(self, p) -proc put_chOff*(self: ptr IHTMLTableCell3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_chOff(self, v) -proc get_chOff*(self: ptr IHTMLTableCell3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_chOff(self, p) -proc put_src*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_htmlFor*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_htmlFor(self, v) -proc get_htmlFor*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_htmlFor(self, p) -proc put_event*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_event(self, v) -proc get_event*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_event(self, p) -proc put_text*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, v) -proc get_text*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc put_defer*(self: ptr IHTMLScriptElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defer(self, v) -proc get_defer*(self: ptr IHTMLScriptElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defer(self, p) -proc get_readyState*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onerror*(self: ptr IHTMLScriptElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLScriptElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_type*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_charset*(self: ptr IHTMLScriptElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, v) -proc get_charset*(self: ptr IHTMLScriptElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_src*(self: ptr IHTMLScriptElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLScriptElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc get_usedCharset*(self: ptr IHTMLScriptElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_usedCharset(self, p) -proc get_object*(self: ptr IHTMLObjectElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_object(self, p) -proc get_classid*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_classid(self, p) -proc get_data*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc putref_recordset*(self: ptr IHTMLObjectElement, v: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_recordset(self, v) -proc get_recordset*(self: ptr IHTMLObjectElement, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_recordset(self, p) -proc put_align*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_name*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_codeBase*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_codeBase(self, v) -proc get_codeBase*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_codeBase(self, p) -proc put_codeType*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_codeType(self, v) -proc get_codeType*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_codeType(self, p) -proc put_code*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_code(self, v) -proc get_code*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_BaseHref*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BaseHref(self, p) -proc put_type*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_form*(self: ptr IHTMLObjectElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_width*(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_readyState*(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onreadystatechange*(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc put_onerror*(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLObjectElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_altHtml*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_altHtml(self, v) -proc get_altHtml*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altHtml(self, p) -proc put_vspace*(self: ptr IHTMLObjectElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v) -proc get_vspace*(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p) -proc put_hspace*(self: ptr IHTMLObjectElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v) -proc get_hspace*(self: ptr IHTMLObjectElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p) -proc namedRecordset*(self: ptr IHTMLObjectElement2, dataMember: BSTR, hierarchy: ptr VARIANT, ppRecordset: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.namedRecordset(self, dataMember, hierarchy, ppRecordset) -proc put_classid*(self: ptr IHTMLObjectElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_classid(self, v) -proc get_classid*(self: ptr IHTMLObjectElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_classid(self, p) -proc put_data*(self: ptr IHTMLObjectElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, v) -proc get_data*(self: ptr IHTMLObjectElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc put_archive*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_archive(self, v) -proc get_archive*(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_archive(self, p) -proc put_alt*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_alt(self, v) -proc get_alt*(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_alt(self, p) -proc put_declare*(self: ptr IHTMLObjectElement3, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_declare(self, v) -proc get_declare*(self: ptr IHTMLObjectElement3, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_declare(self, p) -proc put_standby*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_standby(self, v) -proc get_standby*(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_standby(self, p) -proc put_border*(self: ptr IHTMLObjectElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLObjectElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_useMap*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_useMap(self, v) -proc get_useMap*(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_useMap(self, p) -proc get_contentDocument*(self: ptr IHTMLObjectElement4, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentDocument(self, p) -proc put_codeBase*(self: ptr IHTMLObjectElement4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_codeBase(self, v) -proc get_codeBase*(self: ptr IHTMLObjectElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_codeBase(self, p) -proc put_data*(self: ptr IHTMLObjectElement4, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, v) -proc get_data*(self: ptr IHTMLObjectElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc put_object*(self: ptr IHTMLObjectElement5, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_object(self, v) -proc get_object*(self: ptr IHTMLObjectElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_object(self, p) -proc put_name*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_value*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_type*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_valueType*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueType(self, v) -proc get_valueType*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueType(self, p) -proc put_name*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_type*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_value*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_valueType*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueType(self, v) -proc get_valueType*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueType(self, p) -proc put_src*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_name*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_border*(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_frameBorder*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameBorder(self, v) -proc get_frameBorder*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameBorder(self, p) -proc put_frameSpacing*(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameSpacing(self, v) -proc get_frameSpacing*(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameSpacing(self, p) -proc put_marginWidth*(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginWidth(self, v) -proc get_marginWidth*(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginWidth(self, p) -proc put_marginHeight*(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginHeight(self, v) -proc get_marginHeight*(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginHeight(self, p) -proc put_noResize*(self: ptr IHTMLFrameBase, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_noResize(self, v) -proc get_noResize*(self: ptr IHTMLFrameBase, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_noResize(self, p) -proc put_scrolling*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrolling(self, v) -proc get_scrolling*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrolling(self, p) -proc get_contentWindow*(self: ptr IHTMLFrameBase2, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentWindow(self, p) -proc put_onload*(self: ptr IHTMLFrameBase2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLFrameBase2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onreadystatechange*(self: ptr IHTMLFrameBase2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLFrameBase2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc get_readyState*(self: ptr IHTMLFrameBase2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_allowTransparency*(self: ptr IHTMLFrameBase2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_allowTransparency(self, v) -proc get_allowTransparency*(self: ptr IHTMLFrameBase2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_allowTransparency(self, p) -proc put_longDesc*(self: ptr IHTMLFrameBase3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_longDesc(self, v) -proc get_longDesc*(self: ptr IHTMLFrameBase3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_longDesc(self, p) -proc put_borderColor*(self: ptr IHTMLFrameElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLFrameElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_height*(self: ptr IHTMLFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLFrameElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_width*(self: ptr IHTMLFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLFrameElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_contentDocument*(self: ptr IHTMLFrameElement3, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentDocument(self, p) -proc put_src*(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_longDesc*(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_longDesc(self, v) -proc get_longDesc*(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_longDesc(self, p) -proc put_frameBorder*(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameBorder(self, v) -proc get_frameBorder*(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameBorder(self, p) -proc put_vspace*(self: ptr IHTMLIFrameElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_vspace(self, v) -proc get_vspace*(self: ptr IHTMLIFrameElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_vspace(self, p) -proc put_hspace*(self: ptr IHTMLIFrameElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_hspace(self, v) -proc get_hspace*(self: ptr IHTMLIFrameElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hspace(self, p) -proc put_align*(self: ptr IHTMLIFrameElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLIFrameElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_height*(self: ptr IHTMLIFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLIFrameElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_width*(self: ptr IHTMLIFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLIFrameElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_contentDocument*(self: ptr IHTMLIFrameElement3, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentDocument(self, p) -proc put_src*(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_longDesc*(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_longDesc(self, v) -proc get_longDesc*(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_longDesc(self, p) -proc put_frameBorder*(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameBorder(self, v) -proc get_frameBorder*(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameBorder(self, p) -proc put_align*(self: ptr IHTMLDivPosition, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLDivPosition, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_align*(self: ptr IHTMLFieldSetElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLFieldSetElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc get_form*(self: ptr IHTMLFieldSetElement2, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_align*(self: ptr IHTMLLegendElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLLegendElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc get_form*(self: ptr IHTMLLegendElement2, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc put_align*(self: ptr IHTMLSpanFlow, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr IHTMLSpanFlow, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_rows*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_rows(self, v) -proc get_rows*(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rows(self, p) -proc put_cols*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cols(self, v) -proc get_cols*(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cols(self, p) -proc put_border*(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_borderColor*(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderColor(self, v) -proc get_borderColor*(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderColor(self, p) -proc put_frameBorder*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameBorder(self, v) -proc get_frameBorder*(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameBorder(self, p) -proc put_frameSpacing*(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameSpacing(self, v) -proc get_frameSpacing*(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameSpacing(self, p) -proc put_name*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_name(self, v) -proc get_name*(self: ptr IHTMLFrameSetElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc put_onload*(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onunload*(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onunload(self, v) -proc get_onunload*(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onunload(self, p) -proc put_onbeforeunload*(self: ptr IHTMLFrameSetElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeunload(self, v) -proc get_onbeforeunload*(self: ptr IHTMLFrameSetElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeunload(self, p) -proc put_onbeforeprint*(self: ptr IHTMLFrameSetElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onbeforeprint(self, v) -proc get_onbeforeprint*(self: ptr IHTMLFrameSetElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onbeforeprint(self, p) -proc put_onafterprint*(self: ptr IHTMLFrameSetElement2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onafterprint(self, v) -proc get_onafterprint*(self: ptr IHTMLFrameSetElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onafterprint(self, p) -proc put_onhashchange*(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onhashchange(self, v) -proc get_onhashchange*(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onhashchange(self, p) -proc put_onmessage*(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onmessage(self, v) -proc get_onmessage*(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onmessage(self, p) -proc put_onoffline*(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onoffline(self, v) -proc get_onoffline*(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onoffline(self, p) -proc put_ononline*(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ononline(self, v) -proc get_ononline*(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ononline(self, p) -proc put_onstorage*(self: ptr IHTMLFrameSetElement3, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onstorage(self, v) -proc get_onstorage*(self: ptr IHTMLFrameSetElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onstorage(self, p) -proc put_src*(self: ptr IHTMLBGsound, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLBGsound, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_loop*(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v) -proc get_loop*(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p) -proc put_volume*(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_volume(self, v) -proc get_volume*(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_volume(self, p) -proc put_balance*(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_balance(self, v) -proc get_balance*(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_balance(self, p) -proc get_length*(self: ptr IHTMLFontNamesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLFontNamesCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLFontNamesCollection, index: LONG, pBstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, pBstr) -proc get_length*(self: ptr IHTMLFontSizesCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLFontSizesCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc get_forFont*(self: ptr IHTMLFontSizesCollection, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_forFont(self, p) -proc item*(self: ptr IHTMLFontSizesCollection, index: LONG, plSize: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, plSize) -proc get_document*(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p) -proc get_fonts*(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLFontNamesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fonts(self, p) -proc put_execArg*(self: ptr IHTMLOptionsHolder, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_execArg(self, v) -proc get_execArg*(self: ptr IHTMLOptionsHolder, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_execArg(self, p) -proc put_errorLine*(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_errorLine(self, v) -proc get_errorLine*(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_errorLine(self, p) -proc put_errorCharacter*(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_errorCharacter(self, v) -proc get_errorCharacter*(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_errorCharacter(self, p) -proc put_errorCode*(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_errorCode(self, v) -proc get_errorCode*(self: ptr IHTMLOptionsHolder, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_errorCode(self, p) -proc put_errorMessage*(self: ptr IHTMLOptionsHolder, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_errorMessage(self, v) -proc get_errorMessage*(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_errorMessage(self, p) -proc put_errorDebug*(self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_errorDebug(self, v) -proc get_errorDebug*(self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_errorDebug(self, p) -proc get_unsecuredWindowOfDocument*(self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unsecuredWindowOfDocument(self, p) -proc put_findText*(self: ptr IHTMLOptionsHolder, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_findText(self, v) -proc get_findText*(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_findText(self, p) -proc put_anythingAfterFrameset*(self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_anythingAfterFrameset(self, v) -proc get_anythingAfterFrameset*(self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_anythingAfterFrameset(self, p) -proc sizes*(self: ptr IHTMLOptionsHolder, fontName: BSTR, pSizesCollection: ptr ptr IHTMLFontSizesCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.sizes(self, fontName, pSizesCollection) -proc openfiledlg*(self: ptr IHTMLOptionsHolder, initFile: VARIANT, initDir: VARIANT, filter: VARIANT, title: VARIANT, pathName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.openfiledlg(self, initFile, initDir, filter, title, pathName) -proc savefiledlg*(self: ptr IHTMLOptionsHolder, initFile: VARIANT, initDir: VARIANT, filter: VARIANT, title: VARIANT, pathName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.savefiledlg(self, initFile, initDir, filter, title, pathName) -proc choosecolordlg*(self: ptr IHTMLOptionsHolder, initColor: VARIANT, rgbColor: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.choosecolordlg(self, initColor, rgbColor) -proc showSecurityInfo*(self: ptr IHTMLOptionsHolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showSecurityInfo(self) -proc isApartmentModel*(self: ptr IHTMLOptionsHolder, `object`: ptr IHTMLObjectElement, fApartment: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isApartmentModel(self, `object`, fApartment) -proc getCharset*(self: ptr IHTMLOptionsHolder, fontName: BSTR, charset: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getCharset(self, fontName, charset) -proc get_secureConnectionInfo*(self: ptr IHTMLOptionsHolder, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_secureConnectionInfo(self, p) -proc put_type*(self: ptr IHTMLStyleElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_readyState*(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onreadystatechange*(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc put_onload*(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc put_onerror*(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLStyleElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc get_styleSheet*(self: ptr IHTMLStyleElement, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_styleSheet(self, p) -proc put_disabled*(self: ptr IHTMLStyleElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_disabled(self, v) -proc get_disabled*(self: ptr IHTMLStyleElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_disabled(self, p) -proc put_media*(self: ptr IHTMLStyleElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc get_sheet*(self: ptr IHTMLStyleElement2, p: ptr ptr IHTMLStyleSheet): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sheet(self, p) -proc put_fontsrc*(self: ptr IHTMLStyleFontFace, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fontsrc(self, v) -proc get_fontsrc*(self: ptr IHTMLStyleFontFace, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontsrc(self, p) -proc get_style*(self: ptr IHTMLStyleFontFace2, p: ptr ptr IHTMLRuleStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_style(self, p) -proc get_responseText*(self: ptr IHTMLXDomainRequest, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseText(self, p) -proc put_timeout*(self: ptr IHTMLXDomainRequest, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_timeout(self, v) -proc get_timeout*(self: ptr IHTMLXDomainRequest, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_timeout(self, p) -proc get_contentType*(self: ptr IHTMLXDomainRequest, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentType(self, p) -proc put_onprogress*(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onprogress(self, v) -proc get_onprogress*(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onprogress(self, p) -proc put_onerror*(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_ontimeout*(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ontimeout(self, v) -proc get_ontimeout*(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ontimeout(self, p) -proc put_onload*(self: ptr IHTMLXDomainRequest, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onload(self, v) -proc get_onload*(self: ptr IHTMLXDomainRequest, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onload(self, p) -proc abort*(self: ptr IHTMLXDomainRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.abort(self) -proc open*(self: ptr IHTMLXDomainRequest, bstrMethod: BSTR, bstrUrl: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, bstrMethod, bstrUrl) -proc send*(self: ptr IHTMLXDomainRequest, varBody: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.send(self, varBody) -proc create*(self: ptr IHTMLXDomainRequestFactory, a: ptr ptr IHTMLXDomainRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, a) -proc get_length*(self: ptr IHTMLStorage, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_remainingSpace*(self: ptr IHTMLStorage, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_remainingSpace(self, p) -proc key*(self: ptr IHTMLStorage, lIndex: LONG, a: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.key(self, lIndex, a) -proc getItem*(self: ptr IHTMLStorage, bstrKey: BSTR, a: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, bstrKey, a) -proc setItem*(self: ptr IHTMLStorage, bstrKey: BSTR, bstrValue: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setItem(self, bstrKey, bstrValue) -proc removeItem*(self: ptr IHTMLStorage, bstrKey: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, bstrKey) -proc clear*(self: ptr IHTMLStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc setItem*(self: ptr IHTMLStorage2, bstrKey: BSTR, bstrValue: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setItem(self, bstrKey, bstrValue) -proc addEventListener*(self: ptr IEventTarget, `type`: BSTR, listener: ptr IDispatch, useCapture: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addEventListener(self, `type`, listener, useCapture) -proc removeEventListener*(self: ptr IEventTarget, `type`: BSTR, listener: ptr IDispatch, useCapture: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeEventListener(self, `type`, listener, useCapture) -proc dispatchEvent*(self: ptr IEventTarget, evt: ptr IDOMEvent, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.dispatchEvent(self, evt, pfResult) -proc get_bubbles*(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bubbles(self, p) -proc get_cancelable*(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cancelable(self, p) -proc get_currentTarget*(self: ptr IDOMEvent, p: ptr ptr IEventTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentTarget(self, p) -proc get_defaultPrevented*(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultPrevented(self, p) -proc get_eventPhase*(self: ptr IDOMEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_eventPhase(self, p) -proc get_target*(self: ptr IDOMEvent, p: ptr ptr IEventTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc get_timeStamp*(self: ptr IDOMEvent, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_timeStamp(self, p) -proc get_type*(self: ptr IDOMEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc initEvent*(self: ptr IDOMEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initEvent(self, eventType, canBubble, cancelable) -proc preventDefault*(self: ptr IDOMEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.preventDefault(self) -proc stopPropagation*(self: ptr IDOMEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stopPropagation(self) -proc stopImmediatePropagation*(self: ptr IDOMEvent): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stopImmediatePropagation(self) -proc get_isTrusted*(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isTrusted(self, p) -proc put_cancelBubble*(self: ptr IDOMEvent, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_cancelBubble(self, v) -proc get_cancelBubble*(self: ptr IDOMEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cancelBubble(self, p) -proc get_srcElement*(self: ptr IDOMEvent, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcElement(self, p) -proc get_view*(self: ptr IDOMUIEvent, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_view(self, p) -proc get_detail*(self: ptr IDOMUIEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_detail(self, p) -proc initUIEvent*(self: ptr IDOMUIEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, view: ptr IHTMLWindow2, detail: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initUIEvent(self, eventType, canBubble, cancelable, view, detail) -proc get_screenX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenX(self, p) -proc get_screenY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenY(self, p) -proc get_clientX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientX(self, p) -proc get_clientY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clientY(self, p) -proc get_ctrlKey*(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ctrlKey(self, p) -proc get_shiftKey*(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shiftKey(self, p) -proc get_altKey*(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altKey(self, p) -proc get_metaKey*(self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_metaKey(self, p) -proc get_button*(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_button(self, p) -proc get_relatedTarget*(self: ptr IDOMMouseEvent, p: ptr ptr IEventTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_relatedTarget(self, p) -proc initMouseEvent*(self: ptr IDOMMouseEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, ctrlKeyArg: VARIANT_BOOL, altKeyArg: VARIANT_BOOL, shiftKeyArg: VARIANT_BOOL, metaKeyArg: VARIANT_BOOL, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMouseEvent(self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg, relatedTargetArg) -proc getModifierState*(self: ptr IDOMMouseEvent, keyArg: BSTR, activated: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getModifierState(self, keyArg, activated) -proc get_buttons*(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_buttons(self, p) -proc get_fromElement*(self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fromElement(self, p) -proc get_toElement*(self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_toElement(self, p) -proc get_x*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc get_y*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc get_offsetX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetX(self, p) -proc get_offsetY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offsetY(self, p) -proc get_pageX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageX(self, p) -proc get_pageY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageY(self, p) -proc get_layerX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layerX(self, p) -proc get_layerY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_layerY(self, p) -proc get_which*(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_which(self, p) -proc get_dataTransfer*(self: ptr IDOMDragEvent, p: ptr ptr IHTMLDataTransfer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataTransfer(self, p) -proc initDragEvent*(self: ptr IDOMDragEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, ctrlKeyArg: VARIANT_BOOL, altKeyArg: VARIANT_BOOL, shiftKeyArg: VARIANT_BOOL, metaKeyArg: VARIANT_BOOL, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget, dataTransferArg: ptr IHTMLDataTransfer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initDragEvent(self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, metaKeyArg, buttonArg, relatedTargetArg, dataTransferArg) -proc get_wheelDelta*(self: ptr IDOMMouseWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wheelDelta(self, p) -proc initMouseWheelEvent*(self: ptr IDOMMouseWheelEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget, modifiersListArg: BSTR, wheelDeltaArg: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMouseWheelEvent(self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg, wheelDeltaArg) -proc get_deltaX*(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_deltaX(self, p) -proc get_deltaY*(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_deltaY(self, p) -proc get_deltaZ*(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_deltaZ(self, p) -proc get_deltaMode*(self: ptr IDOMWheelEvent, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_deltaMode(self, p) -proc initWheelEvent*(self: ptr IDOMWheelEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, screenXArg: LONG, screenYArg: LONG, clientXArg: LONG, clientYArg: LONG, buttonArg: USHORT, relatedTargetArg: ptr IEventTarget, modifiersListArg: BSTR, deltaX: LONG, deltaY: LONG, deltaZ: LONG, deltaMode: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initWheelEvent(self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg, deltaX, deltaY, deltaZ, deltaMode) -proc get_data*(self: ptr IDOMTextEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc get_inputMethod*(self: ptr IDOMTextEvent, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_inputMethod(self, p) -proc initTextEvent*(self: ptr IDOMTextEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, dataArg: BSTR, inputMethod: ULONG, locale: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initTextEvent(self, eventType, canBubble, cancelable, viewArg, dataArg, inputMethod, locale) -proc get_locale*(self: ptr IDOMTextEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_locale(self, p) -proc get_key*(self: ptr IDOMKeyboardEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_key(self, p) -proc get_location*(self: ptr IDOMKeyboardEvent, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_location(self, p) -proc get_ctrlKey*(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ctrlKey(self, p) -proc get_shiftKey*(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shiftKey(self, p) -proc get_altKey*(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altKey(self, p) -proc get_metaKey*(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_metaKey(self, p) -proc get_repeat*(self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_repeat(self, p) -proc getModifierState*(self: ptr IDOMKeyboardEvent, keyArg: BSTR, state: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getModifierState(self, keyArg, state) -proc initKeyboardEvent*(self: ptr IDOMKeyboardEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, keyArg: BSTR, locationArg: ULONG, modifiersListArg: BSTR, repeat: VARIANT_BOOL, locale: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initKeyboardEvent(self, eventType, canBubble, cancelable, viewArg, keyArg, locationArg, modifiersListArg, repeat, locale) -proc get_keyCode*(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_keyCode(self, p) -proc get_charCode*(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charCode(self, p) -proc get_which*(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_which(self, p) -proc get_ie9_char*(self: ptr IDOMKeyboardEvent, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ie9_char(self, p) -proc get_locale*(self: ptr IDOMKeyboardEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_locale(self, p) -proc get_data*(self: ptr IDOMCompositionEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc initCompositionEvent*(self: ptr IDOMCompositionEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, data: BSTR, locale: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initCompositionEvent(self, eventType, canBubble, cancelable, viewArg, data, locale) -proc get_locale*(self: ptr IDOMCompositionEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_locale(self, p) -proc get_relatedNode*(self: ptr IDOMMutationEvent, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_relatedNode(self, p) -proc get_prevValue*(self: ptr IDOMMutationEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_prevValue(self, p) -proc get_newValue*(self: ptr IDOMMutationEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newValue(self, p) -proc get_attrName*(self: ptr IDOMMutationEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attrName(self, p) -proc get_attrChange*(self: ptr IDOMMutationEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attrChange(self, p) -proc initMutationEvent*(self: ptr IDOMMutationEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, relatedNodeArg: ptr IDispatch, prevValueArg: BSTR, newValueArg: BSTR, attrNameArg: BSTR, attrChangeArg: USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMutationEvent(self, eventType, canBubble, cancelable, relatedNodeArg, prevValueArg, newValueArg, attrNameArg, attrChangeArg) -proc put_returnValue*(self: ptr IDOMBeforeUnloadEvent, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_returnValue(self, v) -proc get_returnValue*(self: ptr IDOMBeforeUnloadEvent, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_returnValue(self, p) -proc get_relatedTarget*(self: ptr IDOMFocusEvent, p: ptr ptr IEventTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_relatedTarget(self, p) -proc initFocusEvent*(self: ptr IDOMFocusEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, view: ptr IHTMLWindow2, detail: LONG, relatedTargetArg: ptr IEventTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initFocusEvent(self, eventType, canBubble, cancelable, view, detail, relatedTargetArg) -proc get_detail*(self: ptr IDOMCustomEvent, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_detail(self, p) -proc initCustomEvent*(self: ptr IDOMCustomEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, detail: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initCustomEvent(self, eventType, canBubble, cancelable, detail) -proc addColorStop*(self: ptr ICanvasGradient, offset: float32, color: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addColorStop(self, offset, color) -proc get_width*(self: ptr ICanvasTextMetrics, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_width*(self: ptr ICanvasImageData, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_height*(self: ptr ICanvasImageData, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_data*(self: ptr ICanvasImageData, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc get_length*(self: ptr ICanvasPixelArray, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_canvas*(self: ptr ICanvasRenderingContext2D, p: ptr ptr IHTMLCanvasElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_canvas(self, p) -proc restore*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.restore(self) -proc save*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.save(self) -proc rotate*(self: ptr ICanvasRenderingContext2D, angle: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.rotate(self, angle) -proc scale*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scale(self, x, y) -proc setTransform*(self: ptr ICanvasRenderingContext2D, m11: float32, m12: float32, m21: float32, m22: float32, dx: float32, dy: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setTransform(self, m11, m12, m21, m22, dx, dy) -proc transform*(self: ptr ICanvasRenderingContext2D, m11: float32, m12: float32, m21: float32, m22: float32, dx: float32, dy: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.transform(self, m11, m12, m21, m22, dx, dy) -proc translate*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.translate(self, x, y) -proc put_globalAlpha*(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_globalAlpha(self, v) -proc get_globalAlpha*(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_globalAlpha(self, p) -proc put_globalCompositeOperation*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_globalCompositeOperation(self, v) -proc get_globalCompositeOperation*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_globalCompositeOperation(self, p) -proc put_fillStyle*(self: ptr ICanvasRenderingContext2D, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_fillStyle(self, v) -proc get_fillStyle*(self: ptr ICanvasRenderingContext2D, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fillStyle(self, p) -proc put_strokeStyle*(self: ptr ICanvasRenderingContext2D, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_strokeStyle(self, v) -proc get_strokeStyle*(self: ptr ICanvasRenderingContext2D, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strokeStyle(self, p) -proc createLinearGradient*(self: ptr ICanvasRenderingContext2D, x0: float32, y0: float32, x1: float32, y1: float32, ppCanvasGradient: ptr ptr ICanvasGradient): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createLinearGradient(self, x0, y0, x1, y1, ppCanvasGradient) -proc createRadialGradient*(self: ptr ICanvasRenderingContext2D, x0: float32, y0: float32, r0: float32, x1: float32, y1: float32, r1: float32, ppCanvasGradient: ptr ptr ICanvasGradient): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createRadialGradient(self, x0, y0, r0, x1, y1, r1, ppCanvasGradient) -proc createPattern*(self: ptr ICanvasRenderingContext2D, image: ptr IDispatch, repetition: VARIANT, ppCanvasPattern: ptr ptr ICanvasPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createPattern(self, image, repetition, ppCanvasPattern) -proc put_lineCap*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineCap(self, v) -proc get_lineCap*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineCap(self, p) -proc put_lineJoin*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineJoin(self, v) -proc get_lineJoin*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineJoin(self, p) -proc put_lineWidth*(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_lineWidth(self, v) -proc get_lineWidth*(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineWidth(self, p) -proc put_miterLimit*(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_miterLimit(self, v) -proc get_miterLimit*(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_miterLimit(self, p) -proc put_shadowBlur*(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shadowBlur(self, v) -proc get_shadowBlur*(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shadowBlur(self, p) -proc put_shadowColor*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shadowColor(self, v) -proc get_shadowColor*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shadowColor(self, p) -proc put_shadowOffsetX*(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shadowOffsetX(self, v) -proc get_shadowOffsetX*(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shadowOffsetX(self, p) -proc put_shadowOffsetY*(self: ptr ICanvasRenderingContext2D, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_shadowOffsetY(self, v) -proc get_shadowOffsetY*(self: ptr ICanvasRenderingContext2D, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_shadowOffsetY(self, p) -proc clearRect*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearRect(self, x, y, w, h) -proc fillRect*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fillRect(self, x, y, w, h) -proc strokeRect*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.strokeRect(self, x, y, w, h) -proc arc*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, radius: float32, startAngle: float32, endAngle: float32, anticlockwise: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.arc(self, x, y, radius, startAngle, endAngle, anticlockwise) -proc arcTo*(self: ptr ICanvasRenderingContext2D, x1: float32, y1: float32, x2: float32, y2: float32, radius: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.arcTo(self, x1, y1, x2, y2, radius) -proc mBeginPath*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.beginPath(self) -proc bezierCurveTo*(self: ptr ICanvasRenderingContext2D, cp1x: float32, cp1y: float32, cp2x: float32, cp2y: float32, x: float32, y: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.bezierCurveTo(self, cp1x, cp1y, cp2x, cp2y, x, y) -proc clip*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clip(self) -proc closePath*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.closePath(self) -proc fill*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fill(self) -proc lineTo*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.lineTo(self, x, y) -proc moveTo*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveTo(self, x, y) -proc quadraticCurveTo*(self: ptr ICanvasRenderingContext2D, cpx: float32, cpy: float32, x: float32, y: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.quadraticCurveTo(self, cpx, cpy, x, y) -proc rect*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.rect(self, x, y, w, h) -proc stroke*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stroke(self) -proc isPointInPath*(self: ptr ICanvasRenderingContext2D, x: float32, y: float32, pResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isPointInPath(self, x, y, pResult) -proc put_font*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_font(self, v) -proc get_font*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_font(self, p) -proc put_textAlign*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textAlign(self, v) -proc get_textAlign*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textAlign(self, p) -proc put_textBaseline*(self: ptr ICanvasRenderingContext2D, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_textBaseline(self, v) -proc get_textBaseline*(self: ptr ICanvasRenderingContext2D, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textBaseline(self, p) -proc fillText*(self: ptr ICanvasRenderingContext2D, text: BSTR, x: float32, y: float32, maxWidth: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.fillText(self, text, x, y, maxWidth) -proc measureText*(self: ptr ICanvasRenderingContext2D, text: BSTR, ppCanvasTextMetrics: ptr ptr ICanvasTextMetrics): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.measureText(self, text, ppCanvasTextMetrics) -proc strokeText*(self: ptr ICanvasRenderingContext2D, text: BSTR, x: float32, y: float32, maxWidth: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.strokeText(self, text, x, y, maxWidth) -proc drawImage*(self: ptr ICanvasRenderingContext2D, pSrc: ptr IDispatch, a1: VARIANT, a2: VARIANT, a3: VARIANT, a4: VARIANT, a5: VARIANT, a6: VARIANT, a7: VARIANT, a8: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.drawImage(self, pSrc, a1, a2, a3, a4, a5, a6, a7, a8) -proc createImageData*(self: ptr ICanvasRenderingContext2D, a1: VARIANT, a2: VARIANT, ppCanvasImageData: ptr ptr ICanvasImageData): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createImageData(self, a1, a2, ppCanvasImageData) -proc getImageData*(self: ptr ICanvasRenderingContext2D, sx: float32, sy: float32, sw: float32, sh: float32, ppCanvasImageData: ptr ptr ICanvasImageData): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getImageData(self, sx, sy, sw, sh, ppCanvasImageData) -proc putImageData*(self: ptr ICanvasRenderingContext2D, imagedata: ptr ICanvasImageData, dx: float32, dy: float32, dirtyX: VARIANT, dirtyY: VARIANT, dirtyWidth: VARIANT, dirtyHeight: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putImageData(self, imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight) -proc put_width*(self: ptr IHTMLCanvasElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLCanvasElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLCanvasElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLCanvasElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc getContext*(self: ptr IHTMLCanvasElement, contextId: BSTR, ppContext: ptr ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getContext(self, contextId, ppContext) -proc toDataURL*(self: ptr IHTMLCanvasElement, `type`: BSTR, jpegquality: VARIANT, pUrl: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toDataURL(self, `type`, jpegquality, pUrl) -proc get_lengthComputable*(self: ptr IDOMProgressEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lengthComputable(self, p) -proc get_loaded*(self: ptr IDOMProgressEvent, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loaded(self, p) -proc get_total*(self: ptr IDOMProgressEvent, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_total(self, p) -proc initProgressEvent*(self: ptr IDOMProgressEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, lengthComputableArg: VARIANT_BOOL, loadedArg: ULONGLONG, totalArg: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initProgressEvent(self, eventType, canBubble, cancelable, lengthComputableArg, loadedArg, totalArg) -proc get_data*(self: ptr IDOMMessageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc get_origin*(self: ptr IDOMMessageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_origin(self, p) -proc get_source*(self: ptr IDOMMessageEvent, p: ptr ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_source(self, p) -proc initMessageEvent*(self: ptr IDOMMessageEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, data: BSTR, origin: BSTR, lastEventId: BSTR, source: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMessageEvent(self, eventType, canBubble, cancelable, data, origin, lastEventId, source) -proc get_buttonID*(self: ptr IDOMSiteModeEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_buttonID(self, p) -proc get_actionURL*(self: ptr IDOMSiteModeEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_actionURL(self, p) -proc get_key*(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_key(self, p) -proc get_oldValue*(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oldValue(self, p) -proc get_newValue*(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newValue(self, p) -proc get_url*(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_url(self, p) -proc get_storageArea*(self: ptr IDOMStorageEvent, p: ptr ptr IHTMLStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_storageArea(self, p) -proc initStorageEvent*(self: ptr IDOMStorageEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, keyArg: BSTR, oldValueArg: BSTR, newValueArg: BSTR, urlArg: BSTR, storageAreaArg: ptr IHTMLStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initStorageEvent(self, eventType, canBubble, cancelable, keyArg, oldValueArg, newValueArg, urlArg, storageAreaArg) -proc get_readyState*(self: ptr IHTMLXMLHttpRequest, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc get_responseBody*(self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseBody(self, p) -proc get_responseText*(self: ptr IHTMLXMLHttpRequest, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseText(self, p) -proc get_responseXML*(self: ptr IHTMLXMLHttpRequest, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseXML(self, p) -proc get_status*(self: ptr IHTMLXMLHttpRequest, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc get_statusText*(self: ptr IHTMLXMLHttpRequest, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_statusText(self, p) -proc put_onreadystatechange*(self: ptr IHTMLXMLHttpRequest, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc abort*(self: ptr IHTMLXMLHttpRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.abort(self) -proc open*(self: ptr IHTMLXMLHttpRequest, bstrMethod: BSTR, bstrUrl: BSTR, varAsync: VARIANT, varUser: VARIANT, varPassword: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, bstrMethod, bstrUrl, varAsync, varUser, varPassword) -proc send*(self: ptr IHTMLXMLHttpRequest, varBody: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.send(self, varBody) -proc getAllResponseHeaders*(self: ptr IHTMLXMLHttpRequest, a: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAllResponseHeaders(self, a) -proc getResponseHeader*(self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, a: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getResponseHeader(self, bstrHeader, a) -proc setRequestHeader*(self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setRequestHeader(self, bstrHeader, bstrValue) -proc put_timeout*(self: ptr IHTMLXMLHttpRequest2, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_timeout(self, v) -proc get_timeout*(self: ptr IHTMLXMLHttpRequest2, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_timeout(self, p) -proc put_ontimeout*(self: ptr IHTMLXMLHttpRequest2, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ontimeout(self, v) -proc get_ontimeout*(self: ptr IHTMLXMLHttpRequest2, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ontimeout(self, p) -proc create*(self: ptr IHTMLXMLHttpRequestFactory, a: ptr ptr IHTMLXMLHttpRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, a) -proc put_unitType*(self: ptr ISVGAngle, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_unitType(self, v) -proc get_unitType*(self: ptr ISVGAngle, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unitType(self, p) -proc put_value*(self: ptr ISVGAngle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr ISVGAngle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_valueInSpecifiedUnits*(self: ptr ISVGAngle, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueInSpecifiedUnits(self, v) -proc get_valueInSpecifiedUnits*(self: ptr ISVGAngle, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueInSpecifiedUnits(self, p) -proc put_valueAsString*(self: ptr ISVGAngle, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueAsString(self, v) -proc get_valueAsString*(self: ptr ISVGAngle, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueAsString(self, p) -proc newValueSpecifiedUnits*(self: ptr ISVGAngle, unitType: int16, valueInSpecifiedUnits: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.newValueSpecifiedUnits(self, unitType, valueInSpecifiedUnits) -proc convertToSpecifiedUnits*(self: ptr ISVGAngle, unitType: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.convertToSpecifiedUnits(self, unitType) -proc get_className*(self: ptr ISVGStylable, p: ptr ptr ISVGAnimatedString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_className(self, p) -proc get_nearestViewportElement*(self: ptr ISVGLocatable, p: ptr ptr ISVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nearestViewportElement(self, p) -proc get_farthestViewportElement*(self: ptr ISVGLocatable, p: ptr ptr ISVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_farthestViewportElement(self, p) -proc getBBox*(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getBBox(self, ppResult) -proc getCTM*(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getCTM(self, ppResult) -proc getScreenCTM*(self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getScreenCTM(self, ppResult) -proc getTransformToElement*(self: ptr ISVGLocatable, pElement: ptr ISVGElement, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getTransformToElement(self, pElement, ppResult) -proc get_transform*(self: ptr ISVGTransformable, p: ptr ptr ISVGAnimatedTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_transform(self, p) -proc get_requiredFeatures*(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_requiredFeatures(self, p) -proc get_requiredExtensions*(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_requiredExtensions(self, p) -proc get_systemLanguage*(self: ptr ISVGTests, p: ptr ptr ISVGStringList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemLanguage(self, p) -proc hasExtension*(self: ptr ISVGTests, extension: BSTR, pResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasExtension(self, extension, pResult) -proc put_xmllang*(self: ptr ISVGLangSpace, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_xmllang(self, v) -proc get_xmllang*(self: ptr ISVGLangSpace, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmllang(self, p) -proc put_xmlspace*(self: ptr ISVGLangSpace, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_xmlspace(self, v) -proc get_xmlspace*(self: ptr ISVGLangSpace, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmlspace(self, p) -proc get_externalResourcesRequired*(self: ptr ISVGExternalResourcesRequired, p: ptr ptr ISVGAnimatedBoolean): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_externalResourcesRequired(self, p) -proc get_viewBox*(self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewBox(self, p) -proc putref_preserveAspectRatio*(self: ptr ISVGFitToViewBox, v: ptr ISVGAnimatedPreserveAspectRatio): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_preserveAspectRatio(self, v) -proc get_preserveAspectRatio*(self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedPreserveAspectRatio): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_preserveAspectRatio(self, p) -proc get_zoomAndPan*(self: ptr ISVGZoomAndPan, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zoomAndPan(self, p) -proc get_href*(self: ptr ISVGURIReference, p: ptr ptr ISVGAnimatedString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_href(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc put_baseVal*(self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc put_animVal*(self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc put_baseVal*(self: ptr ISVGAnimatedEnumeration, v: USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedEnumeration, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc put_animVal*(self: ptr ISVGAnimatedEnumeration, v: USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedEnumeration, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc put_baseVal*(self: ptr ISVGAnimatedInteger, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedInteger, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc put_animVal*(self: ptr ISVGAnimatedInteger, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedInteger, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedLength, v: ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedLength, v: ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc put_baseVal*(self: ptr ISVGAnimatedNumber, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedNumber, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc put_animVal*(self: ptr ISVGAnimatedNumber, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedNumber, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedRect, v: ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedRect, v: ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc put_baseVal*(self: ptr ISVGAnimatedString, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedString, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc get_animVal*(self: ptr ISVGAnimatedString, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_clipPathUnits*(self: ptr ISVGClipPathElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_clipPathUnits(self, v) -proc get_clipPathUnits*(self: ptr ISVGClipPathElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_clipPathUnits(self, p) -proc get_rootElement*(self: ptr ISVGDocument, p: ptr ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rootElement(self, p) -proc getSVGDocument*(self: ptr IGetSVGDocument, ppSVGDocument: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getSVGDocument(self, ppSVGDocument) -proc put_xmlbase*(self: ptr ISVGElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_xmlbase(self, v) -proc get_xmlbase*(self: ptr ISVGElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xmlbase(self, p) -proc putref_ownerSVGElement*(self: ptr ISVGElement, v: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_ownerSVGElement(self, v) -proc get_ownerSVGElement*(self: ptr ISVGElement, p: ptr ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerSVGElement(self, p) -proc putref_viewportElement*(self: ptr ISVGElement, v: ptr ISVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_viewportElement(self, v) -proc get_viewportElement*(self: ptr ISVGElement, p: ptr ptr ISVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewportElement(self, p) -proc putref_focusable*(self: ptr ISVGElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_focusable(self, v) -proc get_focusable*(self: ptr ISVGElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_focusable(self, p) -proc put_unitType*(self: ptr ISVGLength, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_unitType(self, v) -proc get_unitType*(self: ptr ISVGLength, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unitType(self, p) -proc put_value*(self: ptr ISVGLength, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr ISVGLength, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_valueInSpecifiedUnits*(self: ptr ISVGLength, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueInSpecifiedUnits(self, v) -proc get_valueInSpecifiedUnits*(self: ptr ISVGLength, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueInSpecifiedUnits(self, p) -proc put_valueAsString*(self: ptr ISVGLength, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_valueAsString(self, v) -proc get_valueAsString*(self: ptr ISVGLength, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_valueAsString(self, p) -proc newValueSpecifiedUnits*(self: ptr ISVGLength, unitType: int16, valueInSpecifiedUnits: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.newValueSpecifiedUnits(self, unitType, valueInSpecifiedUnits) -proc convertToSpecifiedUnits*(self: ptr ISVGLength, unitType: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.convertToSpecifiedUnits(self, unitType) -proc put_numberOfItems*(self: ptr ISVGLengthList, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_numberOfItems(self, v) -proc get_numberOfItems*(self: ptr ISVGLengthList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_numberOfItems(self, p) -proc clear*(self: ptr ISVGLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc initialize*(self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initialize(self, newItem, ppResult) -proc getItem*(self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, index, ppResult) -proc insertItemBefore*(self: ptr ISVGLengthList, newItem: ptr ISVGLength, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) -proc replaceItem*(self: ptr ISVGLengthList, newItem: ptr ISVGLength, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceItem(self, newItem, index, ppResult) -proc removeItem*(self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, index, ppResult) -proc appendItem*(self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItem(self, newItem, ppResult) -proc put_a*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_a(self, v) -proc get_a*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_a(self, p) -proc put_b*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_b(self, v) -proc get_b*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_b(self, p) -proc put_c*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_c(self, v) -proc get_c*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_c(self, p) -proc put_d*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_d(self, v) -proc get_d*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_d(self, p) -proc put_e*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_e(self, v) -proc get_e*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_e(self, p) -proc put_f*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_f(self, v) -proc get_f*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_f(self, p) -proc multiply*(self: ptr ISVGMatrix, secondMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.multiply(self, secondMatrix, ppResult) -proc inverse*(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.inverse(self, ppResult) -proc translate*(self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.translate(self, x, y, ppResult) -proc scale*(self: ptr ISVGMatrix, scaleFactor: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scale(self, scaleFactor, ppResult) -proc scaleNonUniform*(self: ptr ISVGMatrix, scaleFactorX: float32, scaleFactorY: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.scaleNonUniform(self, scaleFactorX, scaleFactorY, ppResult) -proc rotate*(self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.rotate(self, angle, ppResult) -proc rotateFromVector*(self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.rotateFromVector(self, x, y, ppResult) -proc flipX*(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.flipX(self, ppResult) -proc flipY*(self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.flipY(self, ppResult) -proc skewX*(self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.skewX(self, angle, ppResult) -proc skewY*(self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.skewY(self, angle, ppResult) -proc put_value*(self: ptr ISVGNumber, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr ISVGNumber, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_numberOfItems*(self: ptr ISVGNumberList, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_numberOfItems(self, v) -proc get_numberOfItems*(self: ptr ISVGNumberList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_numberOfItems(self, p) -proc clear*(self: ptr ISVGNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc initialize*(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initialize(self, newItem, ppResult) -proc getItem*(self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, index, ppResult) -proc insertItemBefore*(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) -proc replaceItem*(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceItem(self, newItem, index, ppResult) -proc removeItem*(self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, index, ppResult) -proc appendItem*(self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItem(self, newItem, ppResult) -proc putref_patternUnits*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_patternUnits(self, v) -proc get_patternUnits*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_patternUnits(self, p) -proc putref_patternContentUnits*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_patternContentUnits(self, v) -proc get_patternContentUnits*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_patternContentUnits(self, p) -proc putref_patternTransform*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_patternTransform(self, v) -proc get_patternTransform*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_patternTransform(self, p) -proc putref_x*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_width*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_width(self, v) -proc get_width*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc putref_height*(self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_height(self, v) -proc get_height*(self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_pathSegType*(self: ptr ISVGPathSeg, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pathSegType(self, v) -proc get_pathSegType*(self: ptr ISVGPathSeg, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathSegType(self, p) -proc get_pathSegTypeAsLetter*(self: ptr ISVGPathSeg, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathSegTypeAsLetter(self, p) -proc put_x*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_r1*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_r1(self, v) -proc get_r1*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_r1(self, p) -proc put_r2*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_r2(self, v) -proc get_r2*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_r2(self, p) -proc put_angle*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_angle(self, v) -proc get_angle*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_angle(self, p) -proc put_largeArcFlag*(self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_largeArcFlag(self, v) -proc get_largeArcFlag*(self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_largeArcFlag(self, p) -proc put_sweepFlag*(self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_sweepFlag(self, v) -proc get_sweepFlag*(self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sweepFlag(self, p) -proc put_x*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_r1*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_r1(self, v) -proc get_r1*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_r1(self, p) -proc put_r2*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_r2(self, v) -proc get_r2*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_r2(self, p) -proc put_angle*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_angle(self, v) -proc get_angle*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_angle(self, p) -proc put_largeArcFlag*(self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_largeArcFlag(self, v) -proc get_largeArcFlag*(self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_largeArcFlag(self, p) -proc put_sweepFlag*(self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_sweepFlag(self, v) -proc get_sweepFlag*(self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sweepFlag(self, p) -proc put_x*(self: ptr ISVGPathSegMovetoAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegMovetoAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegMovetoAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegMovetoAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x*(self: ptr ISVGPathSegMovetoRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegMovetoRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegMovetoRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegMovetoRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x*(self: ptr ISVGPathSegLinetoAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegLinetoAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegLinetoAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegLinetoAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x*(self: ptr ISVGPathSegLinetoRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegLinetoRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegLinetoRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegLinetoRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x1*(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x1(self, v) -proc get_x1*(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x1(self, p) -proc put_y1*(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y1(self, v) -proc get_y1*(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y1(self, p) -proc put_x2*(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x2(self, v) -proc get_x2*(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x2(self, p) -proc put_y2*(self: ptr ISVGPathSegCurvetoCubicAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y2(self, v) -proc get_y2*(self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y2(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x1*(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x1(self, v) -proc get_x1*(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x1(self, p) -proc put_y1*(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y1(self, v) -proc get_y1*(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y1(self, p) -proc put_x2*(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x2(self, v) -proc get_x2*(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x2(self, p) -proc put_y2*(self: ptr ISVGPathSegCurvetoCubicRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y2(self, v) -proc get_y2*(self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y2(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x2*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x2(self, v) -proc get_x2*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x2(self, p) -proc put_y2*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y2(self, v) -proc get_y2*(self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y2(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x2*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x2(self, v) -proc get_x2*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x2(self, p) -proc put_y2*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y2(self, v) -proc get_y2*(self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y2(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x1*(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x1(self, v) -proc get_x1*(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x1(self, p) -proc put_y1*(self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y1(self, v) -proc get_y1*(self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y1(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x1*(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x1(self, v) -proc get_x1*(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x1(self, p) -proc put_y1*(self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y1(self, v) -proc get_y1*(self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y1(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x*(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_x*(self: ptr ISVGPathSegLinetoHorizontalAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegLinetoHorizontalAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_x*(self: ptr ISVGPathSegLinetoHorizontalRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPathSegLinetoHorizontalRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPathSegLinetoVerticalAbs, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegLinetoVerticalAbs, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_y*(self: ptr ISVGPathSegLinetoVerticalRel, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPathSegLinetoVerticalRel, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_numberOfItems*(self: ptr ISVGPathSegList, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_numberOfItems(self, v) -proc get_numberOfItems*(self: ptr ISVGPathSegList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_numberOfItems(self, p) -proc clear*(self: ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc initialize*(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initialize(self, newItem, ppResult) -proc getItem*(self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, index, ppResult) -proc insertItemBefore*(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) -proc replaceItem*(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceItem(self, newItem, index, ppResult) -proc removeItem*(self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, index, ppResult) -proc appendItem*(self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItem(self, newItem, ppResult) -proc put_x*(self: ptr ISVGPoint, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGPoint, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGPoint, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGPoint, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc matrixTransform*(self: ptr ISVGPoint, pMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.matrixTransform(self, pMatrix, ppResult) -proc put_numberOfItems*(self: ptr ISVGPointList, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_numberOfItems(self, v) -proc get_numberOfItems*(self: ptr ISVGPointList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_numberOfItems(self, p) -proc clear*(self: ptr ISVGPointList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc initialize*(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initialize(self, pNewItem, ppResult) -proc getItem*(self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, index, ppResult) -proc insertItemBefore*(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertItemBefore(self, pNewItem, index, ppResult) -proc replaceItem*(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceItem(self, pNewItem, index, ppResult) -proc removeItem*(self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, index, ppResult) -proc appendItem*(self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItem(self, pNewItem, ppResult) -proc put_x*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_x(self, v) -proc get_x*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc put_y*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_y(self, v) -proc get_y*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc put_width*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_numberOfItems*(self: ptr ISVGStringList, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_numberOfItems(self, v) -proc get_numberOfItems*(self: ptr ISVGStringList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_numberOfItems(self, p) -proc clear*(self: ptr ISVGStringList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc initialize*(self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initialize(self, newItem, ppResult) -proc getItem*(self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, index, ppResult) -proc insertItemBefore*(self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) -proc replaceItem*(self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceItem(self, newItem, index, ppResult) -proc removeItem*(self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, index, ppResult) -proc appendItem*(self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItem(self, newItem, ppResult) -proc put_type*(self: ptr ISVGTransform, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr ISVGTransform, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc putref_matrix*(self: ptr ISVGTransform, v: ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_matrix(self, v) -proc get_matrix*(self: ptr ISVGTransform, p: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_matrix(self, p) -proc put_angle*(self: ptr ISVGTransform, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_angle(self, v) -proc get_angle*(self: ptr ISVGTransform, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_angle(self, p) -proc setMatrix*(self: ptr ISVGTransform, matrix: ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setMatrix(self, matrix) -proc setTranslate*(self: ptr ISVGTransform, tx: float32, ty: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setTranslate(self, tx, ty) -proc setScale*(self: ptr ISVGTransform, sx: float32, sy: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setScale(self, sx, sy) -proc setRotate*(self: ptr ISVGTransform, angle: float32, cx: float32, cy: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setRotate(self, angle, cx, cy) -proc setSkewX*(self: ptr ISVGTransform, angle: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setSkewX(self, angle) -proc setSkewY*(self: ptr ISVGTransform, angle: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setSkewY(self, angle) -proc putref_x*(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_width*(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_width(self, v) -proc get_width*(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc putref_height*(self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_height(self, v) -proc get_height*(self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc put_contentScriptType*(self: ptr ISVGSVGElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_contentScriptType(self, v) -proc get_contentScriptType*(self: ptr ISVGSVGElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentScriptType(self, p) -proc put_contentStyleType*(self: ptr ISVGSVGElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_contentStyleType(self, v) -proc get_contentStyleType*(self: ptr ISVGSVGElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contentStyleType(self, p) -proc putref_viewport*(self: ptr ISVGSVGElement, v: ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_viewport(self, v) -proc get_viewport*(self: ptr ISVGSVGElement, p: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewport(self, p) -proc put_pixelUnitToMillimeterX*(self: ptr ISVGSVGElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelUnitToMillimeterX(self, v) -proc get_pixelUnitToMillimeterX*(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelUnitToMillimeterX(self, p) -proc put_pixelUnitToMillimeterY*(self: ptr ISVGSVGElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pixelUnitToMillimeterY(self, v) -proc get_pixelUnitToMillimeterY*(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pixelUnitToMillimeterY(self, p) -proc put_screenPixelToMillimeterX*(self: ptr ISVGSVGElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_screenPixelToMillimeterX(self, v) -proc get_screenPixelToMillimeterX*(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenPixelToMillimeterX(self, p) -proc put_screenPixelToMillimeterY*(self: ptr ISVGSVGElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_screenPixelToMillimeterY(self, v) -proc get_screenPixelToMillimeterY*(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_screenPixelToMillimeterY(self, p) -proc put_useCurrentView*(self: ptr ISVGSVGElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_useCurrentView(self, v) -proc get_useCurrentView*(self: ptr ISVGSVGElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_useCurrentView(self, p) -proc putref_currentView*(self: ptr ISVGSVGElement, v: ptr ISVGViewSpec): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_currentView(self, v) -proc get_currentView*(self: ptr ISVGSVGElement, p: ptr ptr ISVGViewSpec): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentView(self, p) -proc put_currentScale*(self: ptr ISVGSVGElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_currentScale(self, v) -proc get_currentScale*(self: ptr ISVGSVGElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentScale(self, p) -proc putref_currentTranslate*(self: ptr ISVGSVGElement, v: ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_currentTranslate(self, v) -proc get_currentTranslate*(self: ptr ISVGSVGElement, p: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentTranslate(self, p) -proc suspendRedraw*(self: ptr ISVGSVGElement, maxWaitMilliseconds: ULONG, pResult: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.suspendRedraw(self, maxWaitMilliseconds, pResult) -proc unsuspendRedraw*(self: ptr ISVGSVGElement, suspendHandeID: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.unsuspendRedraw(self, suspendHandeID) -proc unsuspendRedrawAll*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.unsuspendRedrawAll(self) -proc forceRedraw*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.forceRedraw(self) -proc pauseAnimations*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.pauseAnimations(self) -proc unpauseAnimations*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.unpauseAnimations(self) -proc animationsPaused*(self: ptr ISVGSVGElement, pResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.animationsPaused(self, pResult) -proc getCurrentTime*(self: ptr ISVGSVGElement, pResult: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getCurrentTime(self, pResult) -proc setCurrentTime*(self: ptr ISVGSVGElement, seconds: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setCurrentTime(self, seconds) -proc getIntersectionList*(self: ptr ISVGSVGElement, rect: ptr ISVGRect, referenceElement: ptr ISVGElement, pResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getIntersectionList(self, rect, referenceElement, pResult) -proc getEnclosureList*(self: ptr ISVGSVGElement, rect: ptr ISVGRect, referenceElement: ptr ISVGElement, pResult: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getEnclosureList(self, rect, referenceElement, pResult) -proc checkIntersection*(self: ptr ISVGSVGElement, element: ptr ISVGElement, rect: ptr ISVGRect, pResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.checkIntersection(self, element, rect, pResult) -proc checkEnclosure*(self: ptr ISVGSVGElement, element: ptr ISVGElement, rect: ptr ISVGRect, pResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.checkEnclosure(self, element, rect, pResult) -proc deselectAll*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deselectAll(self) -proc createSVGNumber*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGNumber(self, pResult) -proc createSVGLength*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGLength(self, pResult) -proc createSVGAngle*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGAngle(self, pResult) -proc createSVGPoint*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPoint(self, pResult) -proc createSVGMatrix*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGMatrix): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGMatrix(self, pResult) -proc createSVGRect*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGRect(self, pResult) -proc createSVGTransform*(self: ptr ISVGSVGElement, pResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGTransform(self, pResult) -proc createSVGTransformFromMatrix*(self: ptr ISVGSVGElement, matrix: ptr ISVGMatrix, pResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGTransformFromMatrix(self, matrix, pResult) -proc getElementById*(self: ptr ISVGSVGElement, elementId: BSTR, pResult: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementById(self, elementId, pResult) -proc putref_x*(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_width*(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_width(self, v) -proc get_width*(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc putref_height*(self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_height(self, v) -proc get_height*(self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc putref_instanceRoot*(self: ptr ISVGUseElement, v: ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_instanceRoot(self, v) -proc get_instanceRoot*(self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_instanceRoot(self, p) -proc putref_animatedInstanceRoot*(self: ptr ISVGUseElement, v: ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animatedInstanceRoot(self, v) -proc get_animatedInstanceRoot*(self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animatedInstanceRoot(self, p) -proc item*(self: ptr IHTMLStyleSheetRulesAppliedCollection, index: LONG, ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppHTMLStyleSheetRule) -proc get_length*(self: ptr IHTMLStyleSheetRulesAppliedCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc propertyAppliedBy*(self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, ppRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyAppliedBy(self, name, ppRule) -proc propertyAppliedTrace*(self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, index: LONG, ppRule: ptr ptr IHTMLStyleSheetRule): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyAppliedTrace(self, name, index, ppRule) -proc propertyAppliedTraceLength*(self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, pLength: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyAppliedTraceLength(self, name, pLength) -proc get_element*(self: ptr IRulesApplied, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_element(self, p) -proc get_inlineStyles*(self: ptr IRulesApplied, p: ptr ptr IHTMLStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_inlineStyles(self, p) -proc get_appliedRules*(self: ptr IRulesApplied, p: ptr ptr IHTMLStyleSheetRulesAppliedCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_appliedRules(self, p) -proc propertyIsInline*(self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyIsInline(self, name, p) -proc propertyIsInheritable*(self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyIsInheritable(self, name, p) -proc hasInheritableProperty*(self: ptr IRulesApplied, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasInheritableProperty(self, p) -proc item*(self: ptr IRulesAppliedCollection, index: LONG, ppRulesApplied: ptr ptr IRulesApplied): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppRulesApplied) -proc get_length*(self: ptr IRulesAppliedCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_element*(self: ptr IRulesAppliedCollection, p: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_element(self, p) -proc propertyInheritedFrom*(self: ptr IRulesAppliedCollection, name: BSTR, ppRulesApplied: ptr ptr IRulesApplied): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyInheritedFrom(self, name, ppRulesApplied) -proc get_propertyCount*(self: ptr IRulesAppliedCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_propertyCount(self, p) -proc property*(self: ptr IRulesAppliedCollection, index: LONG, pbstrProperty: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.property(self, index, pbstrProperty) -proc propertyInheritedTrace*(self: ptr IRulesAppliedCollection, name: BSTR, index: LONG, ppRulesApplied: ptr ptr IRulesApplied): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyInheritedTrace(self, name, index, ppRulesApplied) -proc propertyInheritedTraceLength*(self: ptr IRulesAppliedCollection, name: BSTR, pLength: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.propertyInheritedTraceLength(self, name, pLength) -proc put_numberOfItems*(self: ptr ISVGTransformList, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_numberOfItems(self, v) -proc get_numberOfItems*(self: ptr ISVGTransformList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_numberOfItems(self, p) -proc clear*(self: ptr ISVGTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clear(self) -proc initialize*(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initialize(self, newItem, ppResult) -proc getItem*(self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getItem(self, index, ppResult) -proc insertItemBefore*(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) -proc replaceItem*(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceItem(self, newItem, index, ppResult) -proc removeItem*(self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeItem(self, index, ppResult) -proc appendItem*(self: ptr ISVGTransformList, newItem: ptr ISVGTransform, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendItem(self, newItem, ppResult) -proc createSVGTransformFromMatrix*(self: ptr ISVGTransformList, newItem: ptr ISVGMatrix, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGTransformFromMatrix(self, newItem, ppResult) -proc consolidate*(self: ptr ISVGTransformList, ppResult: ptr ptr ISVGTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.consolidate(self, ppResult) -proc putref_points*(self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_points(self, v) -proc get_points*(self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_points(self, p) -proc putref_animatedPoints*(self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animatedPoints(self, v) -proc get_animatedPoints*(self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animatedPoints(self, p) -proc putref_cx*(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_cx(self, v) -proc get_cx*(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cx(self, p) -proc putref_cy*(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_cy(self, v) -proc get_cy*(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cy(self, p) -proc putref_r*(self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_r(self, v) -proc get_r*(self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_r(self, p) -proc putref_cx*(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_cx(self, v) -proc get_cx*(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cx(self, p) -proc putref_cy*(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_cy(self, v) -proc get_cy*(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cy(self, p) -proc putref_rx*(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_rx(self, v) -proc get_rx*(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rx(self, p) -proc putref_ry*(self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_ry(self, v) -proc get_ry*(self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ry(self, p) -proc putref_x1*(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x1(self, v) -proc get_x1*(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x1(self, p) -proc putref_y1*(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y1(self, v) -proc get_y1*(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y1(self, p) -proc putref_x2*(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x2(self, v) -proc get_x2*(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x2(self, p) -proc putref_y2*(self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y2(self, v) -proc get_y2*(self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y2(self, p) -proc putref_x*(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_width*(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_width(self, v) -proc get_width*(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc putref_height*(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_height(self, v) -proc get_height*(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc putref_rx*(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_rx(self, v) -proc get_rx*(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rx(self, p) -proc putref_ry*(self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_ry(self, v) -proc get_ry*(self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ry(self, p) -proc putref_pathSegList*(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_pathSegList(self, v) -proc get_pathSegList*(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathSegList(self, p) -proc putref_normalizedPathSegList*(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_normalizedPathSegList(self, v) -proc get_normalizedPathSegList*(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_normalizedPathSegList(self, p) -proc putref_animatedPathSegList*(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animatedPathSegList(self, v) -proc get_animatedPathSegList*(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animatedPathSegList(self, p) -proc putref_animatedNormalizedPathSegList*(self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animatedNormalizedPathSegList(self, v) -proc get_animatedNormalizedPathSegList*(self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animatedNormalizedPathSegList(self, p) -proc putref_pathLength*(self: ptr ISVGPathElement, v: ptr ISVGAnimatedNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_pathLength(self, v) -proc get_pathLength*(self: ptr ISVGPathElement, p: ptr ptr ISVGAnimatedNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pathLength(self, p) -proc getTotalLength*(self: ptr ISVGPathElement, pfltResult: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getTotalLength(self, pfltResult) -proc getPointAtLength*(self: ptr ISVGPathElement, fltdistance: float32, ppPointResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPointAtLength(self, fltdistance, ppPointResult) -proc getPathSegAtLength*(self: ptr ISVGPathElement, fltdistance: float32, plResult: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPathSegAtLength(self, fltdistance, plResult) -proc createSVGPathSegClosePath*(self: ptr ISVGPathElement, ppResult: ptr ptr ISVGPathSegClosePath): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegClosePath(self, ppResult) -proc createSVGPathSegMovetoAbs*(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegMovetoAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegMovetoAbs(self, x, y, ppResult) -proc createSVGPathSegMovetoRel*(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegMovetoRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegMovetoRel(self, x, y, ppResult) -proc createSVGPathSegLinetoAbs*(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegLinetoAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegLinetoAbs(self, x, y, ppResult) -proc createSVGPathSegLinetoRel*(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegLinetoRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegLinetoRel(self, x, y, ppResult) -proc createSVGPathSegCurvetoCubicAbs*(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoCubicAbs(self, x, y, x1, y1, x2, y2, ppResult) -proc createSVGPathSegCurvetoCubicRel*(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoCubicRel(self, x, y, x1, y1, x2, y2, ppResult) -proc createSVGPathSegCurvetoQuadraticAbs*(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoQuadraticAbs(self, x, y, x1, y1, ppResult) -proc createSVGPathSegCurvetoQuadraticRel*(self: ptr ISVGPathElement, x: float32, y: float32, x1: float32, y1: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoQuadraticRel(self, x, y, x1, y1, ppResult) -proc createSVGPathSegArcAbs*(self: ptr ISVGPathElement, x: float32, y: float32, r1: float32, r2: float32, angle: float32, largeArcFlag: VARIANT_BOOL, sweepFlag: VARIANT_BOOL, ppResult: ptr ptr ISVGPathSegArcAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegArcAbs(self, x, y, r1, r2, angle, largeArcFlag, sweepFlag, ppResult) -proc createSVGPathSegArcRel*(self: ptr ISVGPathElement, x: float32, y: float32, r1: float32, r2: float32, angle: float32, largeArcFlag: VARIANT_BOOL, sweepFlag: VARIANT_BOOL, ppResult: ptr ptr ISVGPathSegArcRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegArcRel(self, x, y, r1, r2, angle, largeArcFlag, sweepFlag, ppResult) -proc createSVGPathSegLinetoHorizontalAbs*(self: ptr ISVGPathElement, x: float32, ppResult: ptr ptr ISVGPathSegLinetoHorizontalAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegLinetoHorizontalAbs(self, x, ppResult) -proc createSVGPathSegLinetoHorizontalRel*(self: ptr ISVGPathElement, x: float32, ppResult: ptr ptr ISVGPathSegLinetoHorizontalRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegLinetoHorizontalRel(self, x, ppResult) -proc createSVGPathSegLinetoVerticalAbs*(self: ptr ISVGPathElement, y: float32, ppResult: ptr ptr ISVGPathSegLinetoVerticalAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegLinetoVerticalAbs(self, y, ppResult) -proc createSVGPathSegLinetoVerticalRel*(self: ptr ISVGPathElement, y: float32, ppResult: ptr ptr ISVGPathSegLinetoVerticalRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegLinetoVerticalRel(self, y, ppResult) -proc createSVGPathSegCurvetoCubicSmoothAbs*(self: ptr ISVGPathElement, x: float32, y: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoCubicSmoothAbs(self, x, y, x2, y2, ppResult) -proc createSVGPathSegCurvetoCubicSmoothRel*(self: ptr ISVGPathElement, x: float32, y: float32, x2: float32, y2: float32, ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoCubicSmoothRel(self, x, y, x2, y2, ppResult) -proc createSVGPathSegCurvetoQuadraticSmoothAbs*(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothAbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoQuadraticSmoothAbs(self, x, y, ppResult) -proc createSVGPathSegCurvetoQuadraticSmoothRel*(self: ptr ISVGPathElement, x: float32, y: float32, ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothRel): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createSVGPathSegCurvetoQuadraticSmoothRel(self, x, y, ppResult) -proc put_align*(self: ptr ISVGPreserveAspectRatio, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_align(self, v) -proc get_align*(self: ptr ISVGPreserveAspectRatio, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_align(self, p) -proc put_meetOrSlice*(self: ptr ISVGPreserveAspectRatio, v: int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_meetOrSlice(self, v) -proc get_meetOrSlice*(self: ptr ISVGPreserveAspectRatio, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_meetOrSlice(self, p) -proc putref_baseVal*(self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_baseVal(self, v) -proc get_baseVal*(self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseVal(self, p) -proc putref_animVal*(self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_animVal(self, v) -proc get_animVal*(self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animVal(self, p) -proc putref_x*(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_width*(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_width(self, v) -proc get_width*(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc putref_height*(self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_height(self, v) -proc get_height*(self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc putref_offset*(self: ptr ISVGStopElement, v: ptr ISVGAnimatedNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_offset(self, v) -proc get_offset*(self: ptr ISVGStopElement, p: ptr ptr ISVGAnimatedNumber): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_offset(self, p) -proc putref_gradientUnits*(self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_gradientUnits(self, v) -proc get_gradientUnits*(self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_gradientUnits(self, p) -proc putref_gradientTransform*(self: ptr ISVGGradientElement, v: ptr ISVGAnimatedTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_gradientTransform(self, v) -proc get_gradientTransform*(self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedTransformList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_gradientTransform(self, p) -proc putref_spreadMethod*(self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_spreadMethod(self, v) -proc get_spreadMethod*(self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_spreadMethod(self, p) -proc putref_x1*(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x1(self, v) -proc get_x1*(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x1(self, p) -proc putref_y1*(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y1(self, v) -proc get_y1*(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y1(self, p) -proc putref_x2*(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x2(self, v) -proc get_x2*(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x2(self, p) -proc putref_y2*(self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y2(self, v) -proc get_y2*(self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y2(self, p) -proc putref_cx*(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_cx(self, v) -proc get_cx*(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cx(self, p) -proc putref_cy*(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_cy(self, v) -proc get_cy*(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cy(self, p) -proc putref_r*(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_r(self, v) -proc get_r*(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_r(self, p) -proc putref_fx*(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_fx(self, v) -proc get_fx*(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fx(self, p) -proc putref_fy*(self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_fy(self, v) -proc get_fy*(self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fy(self, p) -proc putref_maskUnits*(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_maskUnits(self, v) -proc get_maskUnits*(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maskUnits(self, p) -proc putref_maskContentUnits*(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_maskContentUnits(self, v) -proc get_maskContentUnits*(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maskContentUnits(self, p) -proc putref_x*(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_width*(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_width(self, v) -proc get_width*(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc putref_height*(self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_height(self, v) -proc get_height*(self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc putref_refX*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_refX(self, v) -proc get_refX*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_refX(self, p) -proc putref_refY*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_refY(self, v) -proc get_refY*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_refY(self, p) -proc putref_markerUnits*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_markerUnits(self, v) -proc get_markerUnits*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_markerUnits(self, p) -proc putref_markerWidth*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_markerWidth(self, v) -proc get_markerWidth*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_markerWidth(self, p) -proc putref_markerHeight*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_markerHeight(self, v) -proc get_markerHeight*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_markerHeight(self, p) -proc putref_orientType*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_orientType(self, v) -proc get_orientType*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orientType(self, p) -proc putref_orientAngle*(self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_orientAngle(self, v) -proc get_orientAngle*(self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orientAngle(self, p) -proc setOrientToAuto*(self: ptr ISVGMarkerElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setOrientToAuto(self) -proc setOrientToAngle*(self: ptr ISVGMarkerElement, pSVGAngle: ptr ISVGAngle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setOrientToAngle(self, pSVGAngle) -proc get_zoomRectScreen*(self: ptr ISVGZoomEvent, p: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_zoomRectScreen(self, p) -proc get_previousScale*(self: ptr ISVGZoomEvent, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousScale(self, p) -proc get_previousTranslate*(self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousTranslate(self, p) -proc get_newScale*(self: ptr ISVGZoomEvent, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newScale(self, p) -proc get_newTranslate*(self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newTranslate(self, p) -proc putref_target*(self: ptr ISVGAElement, v: ptr ISVGAnimatedString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_target(self, v) -proc get_target*(self: ptr ISVGAElement, p: ptr ptr ISVGAnimatedString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc putref_viewTarget*(self: ptr ISVGViewElement, v: ptr ISVGStringList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_viewTarget(self, v) -proc get_viewTarget*(self: ptr ISVGViewElement, p: ptr ptr ISVGStringList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_viewTarget(self, p) -proc get_code*(self: ptr IHTMLMediaError, p: ptr int16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_length*(self: ptr IHTMLTimeRanges, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc start*(self: ptr IHTMLTimeRanges, index: LONG, startTime: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.start(self, index, startTime) -proc `end`*(self: ptr IHTMLTimeRanges, index: LONG, endTime: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.`end`(self, index, endTime) -proc startDouble*(self: ptr IHTMLTimeRanges2, index: LONG, startTime: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.startDouble(self, index, startTime) -proc endDouble*(self: ptr IHTMLTimeRanges2, index: LONG, endTime: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.endDouble(self, index, endTime) -proc get_error*(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLMediaError): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_error(self, p) -proc put_src*(self: ptr IHTMLMediaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc get_currentSrc*(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentSrc(self, p) -proc get_networkState*(self: ptr IHTMLMediaElement, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_networkState(self, p) -proc put_preload*(self: ptr IHTMLMediaElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_preload(self, v) -proc get_preload*(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_preload(self, p) -proc get_buffered*(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_buffered(self, p) -proc load*(self: ptr IHTMLMediaElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.load(self) -proc canPlayType*(self: ptr IHTMLMediaElement, `type`: BSTR, canPlay: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.canPlayType(self, `type`, canPlay) -proc get_seeking*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_seeking(self, p) -proc put_currentTime*(self: ptr IHTMLMediaElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_currentTime(self, v) -proc get_currentTime*(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentTime(self, p) -proc get_initialTime*(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_initialTime(self, p) -proc get_duration*(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_duration(self, p) -proc get_paused*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_paused(self, p) -proc put_defaultPlaybackRate*(self: ptr IHTMLMediaElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultPlaybackRate(self, v) -proc get_defaultPlaybackRate*(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultPlaybackRate(self, p) -proc put_playbackRate*(self: ptr IHTMLMediaElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_playbackRate(self, v) -proc get_playbackRate*(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_playbackRate(self, p) -proc get_played*(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_played(self, p) -proc get_seekable*(self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_seekable(self, p) -proc get_ended*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ended(self, p) -proc put_autoplay*(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_autoplay(self, v) -proc get_autoplay*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_autoplay(self, p) -proc put_loop*(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_loop(self, v) -proc get_loop*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loop(self, p) -proc play*(self: ptr IHTMLMediaElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.play(self) -proc pause*(self: ptr IHTMLMediaElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.pause(self) -proc put_controls*(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_controls(self, v) -proc get_controls*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_controls(self, p) -proc put_volume*(self: ptr IHTMLMediaElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_volume(self, v) -proc get_volume*(self: ptr IHTMLMediaElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_volume(self, p) -proc put_muted*(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_muted(self, v) -proc get_muted*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_muted(self, p) -proc put_autobuffer*(self: ptr IHTMLMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_autobuffer(self, v) -proc get_autobuffer*(self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_autobuffer(self, p) -proc put_currentTimeDouble*(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_currentTimeDouble(self, v) -proc get_currentTimeDouble*(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentTimeDouble(self, p) -proc get_initialTimeDouble*(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_initialTimeDouble(self, p) -proc get_durationDouble*(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_durationDouble(self, p) -proc put_defaultPlaybackRateDouble*(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_defaultPlaybackRateDouble(self, v) -proc get_defaultPlaybackRateDouble*(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_defaultPlaybackRateDouble(self, p) -proc put_playbackRateDouble*(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_playbackRateDouble(self, v) -proc get_playbackRateDouble*(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_playbackRateDouble(self, p) -proc put_volumeDouble*(self: ptr IHTMLMediaElement2, v: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_volumeDouble(self, v) -proc get_volumeDouble*(self: ptr IHTMLMediaElement2, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_volumeDouble(self, p) -proc put_msPlayToDisabled*(self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msPlayToDisabled(self, v) -proc get_msPlayToDisabled*(self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msPlayToDisabled(self, p) -proc put_msPlayToPrimary*(self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_msPlayToPrimary(self, v) -proc get_msPlayToPrimary*(self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msPlayToPrimary(self, p) -proc put_src*(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_src(self, v) -proc get_src*(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_src(self, p) -proc put_type*(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_media*(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc put_width*(self: ptr IHTMLVideoElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_width(self, v) -proc get_width*(self: ptr IHTMLVideoElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc put_height*(self: ptr IHTMLVideoElement, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_height(self, v) -proc get_height*(self: ptr IHTMLVideoElement, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_videoWidth*(self: ptr IHTMLVideoElement, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_videoWidth(self, p) -proc get_videoHeight*(self: ptr IHTMLVideoElement, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_videoHeight(self, p) -proc put_poster*(self: ptr IHTMLVideoElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_poster(self, v) -proc get_poster*(self: ptr IHTMLVideoElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_poster(self, p) -proc create*(self: ptr IHTMLAudioElementFactory, src: VARIANT, a: ptr ptr IHTMLAudioElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, src, a) -proc get_correspondingElement*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_correspondingElement(self, p) -proc get_correspondingUseElement*(self: ptr ISVGElementInstance, p: ptr ptr ISVGUseElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_correspondingUseElement(self, p) -proc get_parentNode*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentNode(self, p) -proc get_childNodes*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstanceList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childNodes(self, p) -proc get_firstChild*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_firstChild(self, p) -proc get_lastChild*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastChild(self, p) -proc get_previousSibling*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousSibling(self, p) -proc get_nextSibling*(self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nextSibling(self, p) -proc get_length*(self: ptr ISVGElementInstanceList, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr ISVGElementInstanceList, index: LONG, ppResult: ptr ptr ISVGElementInstance): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppResult) -proc put_code*(self: ptr IDOMException, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_code(self, v) -proc get_code*(self: ptr IDOMException, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_message*(self: ptr IDOMException, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_message(self, p) -proc put_code*(self: ptr IRangeException, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_code(self, v) -proc get_code*(self: ptr IRangeException, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_message*(self: ptr IRangeException, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_message(self, p) -proc put_code*(self: ptr ISVGException, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_code(self, v) -proc get_code*(self: ptr ISVGException, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_message*(self: ptr ISVGException, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_message(self, p) -proc put_code*(self: ptr IEventException, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_code(self, v) -proc get_code*(self: ptr IEventException, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_message*(self: ptr IEventException, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_message(self, p) -proc put_type*(self: ptr ISVGScriptElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr ISVGScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_type*(self: ptr ISVGStyleElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_type(self, v) -proc get_type*(self: ptr ISVGStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc put_media*(self: ptr ISVGStyleElement, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_media(self, v) -proc get_media*(self: ptr ISVGStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_media(self, p) -proc putref_textLength*(self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_textLength(self, v) -proc get_textLength*(self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textLength(self, p) -proc putref_lengthAdjust*(self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_lengthAdjust(self, v) -proc get_lengthAdjust*(self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lengthAdjust(self, p) -proc getNumberOfChars*(self: ptr ISVGTextContentElement, pResult: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getNumberOfChars(self, pResult) -proc getComputedTextLength*(self: ptr ISVGTextContentElement, pResult: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getComputedTextLength(self, pResult) -proc getSubStringLength*(self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG, pResult: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getSubStringLength(self, charnum, nchars, pResult) -proc getStartPositionOfChar*(self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getStartPositionOfChar(self, charnum, ppResult) -proc getEndPositionOfChar*(self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getEndPositionOfChar(self, charnum, ppResult) -proc getExtentOfChar*(self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getExtentOfChar(self, charnum, ppResult) -proc getRotationOfChar*(self: ptr ISVGTextContentElement, charnum: LONG, pResult: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getRotationOfChar(self, charnum, pResult) -proc getCharNumAtPosition*(self: ptr ISVGTextContentElement, point: ptr ISVGPoint, pResult: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getCharNumAtPosition(self, point, pResult) -proc selectSubString*(self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.selectSubString(self, charnum, nchars) -proc putref_x*(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_x(self, v) -proc get_x*(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc putref_y*(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_y(self, v) -proc get_y*(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_y(self, p) -proc putref_dx*(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_dx(self, v) -proc get_dx*(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dx(self, p) -proc putref_dy*(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_dy(self, v) -proc get_dy*(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dy(self, p) -proc putref_rotate*(self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_rotate(self, v) -proc get_rotate*(self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedNumberList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_rotate(self, p) -proc get_name*(self: ptr IDOMDocumentType, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc get_entities*(self: ptr IDOMDocumentType, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_entities(self, p) -proc get_notations*(self: ptr IDOMDocumentType, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_notations(self, p) -proc get_publicId*(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_publicId(self, p) -proc get_systemId*(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemId(self, p) -proc get_internalSubset*(self: ptr IDOMDocumentType, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_internalSubset(self, p) -proc get_root*(self: ptr IDOMNodeIterator, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_root(self, p) -proc get_whatToShow*(self: ptr IDOMNodeIterator, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whatToShow(self, p) -proc get_filter*(self: ptr IDOMNodeIterator, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p) -proc get_expandEntityReferences*(self: ptr IDOMNodeIterator, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_expandEntityReferences(self, p) -proc nextNode*(self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nextNode(self, ppRetNode) -proc previousNode*(self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.previousNode(self, ppRetNode) -proc detach*(self: ptr IDOMNodeIterator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detach(self) -proc get_root*(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_root(self, p) -proc get_whatToShow*(self: ptr IDOMTreeWalker, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_whatToShow(self, p) -proc get_filter*(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filter(self, p) -proc get_expandEntityReferences*(self: ptr IDOMTreeWalker, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_expandEntityReferences(self, p) -proc putref_currentNode*(self: ptr IDOMTreeWalker, v: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_currentNode(self, v) -proc get_currentNode*(self: ptr IDOMTreeWalker, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentNode(self, p) -proc parentNode*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.parentNode(self, ppRetNode) -proc firstChild*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.firstChild(self, ppRetNode) -proc lastChild*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.lastChild(self, ppRetNode) -proc previousSibling*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.previousSibling(self, ppRetNode) -proc nextSibling*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nextSibling(self, ppRetNode) -proc previousNode*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.previousNode(self, ppRetNode) -proc nextNode*(self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nextNode(self, ppRetNode) -proc get_target*(self: ptr IDOMProcessingInstruction, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, p) -proc put_data*(self: ptr IDOMProcessingInstruction, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, v) -proc get_data*(self: ptr IDOMProcessingInstruction, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, p) -proc get_navigation*(self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceNavigation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_navigation(self, p) -proc get_timing*(self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceTiming): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_timing(self, p) -proc toString*(self: ptr IHTMLPerformance, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string) -proc toJSON*(self: ptr IHTMLPerformance, pVar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toJSON(self, pVar) -proc get_type*(self: ptr IHTMLPerformanceNavigation, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, p) -proc get_redirectCount*(self: ptr IHTMLPerformanceNavigation, p: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_redirectCount(self, p) -proc toString*(self: ptr IHTMLPerformanceNavigation, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string) -proc toJSON*(self: ptr IHTMLPerformanceNavigation, pVar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toJSON(self, pVar) -proc get_navigationStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_navigationStart(self, p) -proc get_unloadEventStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unloadEventStart(self, p) -proc get_unloadEventEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unloadEventEnd(self, p) -proc get_redirectStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_redirectStart(self, p) -proc get_redirectEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_redirectEnd(self, p) -proc get_fetchStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fetchStart(self, p) -proc get_domainLookupStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domainLookupStart(self, p) -proc get_domainLookupEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domainLookupEnd(self, p) -proc get_connectStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_connectStart(self, p) -proc get_connectEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_connectEnd(self, p) -proc get_requestStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_requestStart(self, p) -proc get_responseStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseStart(self, p) -proc get_responseEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseEnd(self, p) -proc get_domLoading*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domLoading(self, p) -proc get_domInteractive*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domInteractive(self, p) -proc get_domContentLoadedEventStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domContentLoadedEventStart(self, p) -proc get_domContentLoadedEventEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domContentLoadedEventEnd(self, p) -proc get_domComplete*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_domComplete(self, p) -proc get_loadEventStart*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loadEventStart(self, p) -proc get_loadEventEnd*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_loadEventEnd(self, p) -proc get_msFirstPaint*(self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_msFirstPaint(self, p) -proc toString*(self: ptr IHTMLPerformanceTiming, string: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, string) -proc toJSON*(self: ptr IHTMLPerformanceTiming, pVar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toJSON(self, pVar) -proc mStartDoc*(self: ptr ITemplatePrinter, bstrTitle: BSTR, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.startDoc(self, bstrTitle, p) -proc stopDoc*(self: ptr ITemplatePrinter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.stopDoc(self) -proc printBlankPage*(self: ptr ITemplatePrinter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.printBlankPage(self) -proc printPage*(self: ptr ITemplatePrinter, pElemDisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.printPage(self, pElemDisp) -proc ensurePrintDialogDefaults*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ensurePrintDialogDefaults(self, p) -proc showPrintDialog*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showPrintDialog(self, p) -proc showPageSetupDialog*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.showPageSetupDialog(self, p) -proc printNonNative*(self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.printNonNative(self, pMarkup, p) -proc printNonNativeFrames*(self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, fActiveFrame: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.printNonNativeFrames(self, pMarkup, fActiveFrame) -proc put_framesetDocument*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_framesetDocument(self, v) -proc get_framesetDocument*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_framesetDocument(self, p) -proc put_frameActive*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameActive(self, v) -proc get_frameActive*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameActive(self, p) -proc put_frameAsShown*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameAsShown(self, v) -proc get_frameAsShown*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameAsShown(self, p) -proc put_selection*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selection(self, v) -proc get_selection*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selection(self, p) -proc put_selectedPages*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectedPages(self, v) -proc get_selectedPages*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectedPages(self, p) -proc put_currentPage*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_currentPage(self, v) -proc get_currentPage*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentPage(self, p) -proc put_currentPageAvail*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_currentPageAvail(self, v) -proc get_currentPageAvail*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentPageAvail(self, p) -proc put_collate*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_collate(self, v) -proc get_collate*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_collate(self, p) -proc get_duplex*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_duplex(self, p) -proc put_copies*(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_copies(self, v) -proc get_copies*(self: ptr ITemplatePrinter, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_copies(self, p) -proc put_pageFrom*(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageFrom(self, v) -proc get_pageFrom*(self: ptr ITemplatePrinter, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageFrom(self, p) -proc put_pageTo*(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_pageTo(self, v) -proc get_pageTo*(self: ptr ITemplatePrinter, p: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageTo(self, p) -proc put_tableOfLinks*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tableOfLinks(self, v) -proc get_tableOfLinks*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tableOfLinks(self, p) -proc put_allLinkedDocuments*(self: ptr ITemplatePrinter, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_allLinkedDocuments(self, v) -proc get_allLinkedDocuments*(self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_allLinkedDocuments(self, p) -proc put_header*(self: ptr ITemplatePrinter, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_header(self, v) -proc get_header*(self: ptr ITemplatePrinter, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_header(self, p) -proc put_footer*(self: ptr ITemplatePrinter, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_footer(self, v) -proc get_footer*(self: ptr ITemplatePrinter, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_footer(self, p) -proc put_marginLeft*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginLeft(self, v) -proc get_marginLeft*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginLeft(self, p) -proc put_marginRight*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginRight(self, v) -proc get_marginRight*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginRight(self, p) -proc put_marginTop*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginTop(self, v) -proc get_marginTop*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginTop(self, p) -proc put_marginBottom*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_marginBottom(self, v) -proc get_marginBottom*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_marginBottom(self, p) -proc get_pageWidth*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageWidth(self, p) -proc get_pageHeight*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_pageHeight(self, p) -proc get_unprintableLeft*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unprintableLeft(self, p) -proc get_unprintableTop*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unprintableTop(self, p) -proc get_unprintableRight*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unprintableRight(self, p) -proc get_unprintableBottom*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unprintableBottom(self, p) -proc updatePageStatus*(self: ptr ITemplatePrinter, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.updatePageStatus(self, p) -proc put_selectionEnabled*(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selectionEnabled(self, v) -proc get_selectionEnabled*(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selectionEnabled(self, p) -proc put_frameActiveEnabled*(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_frameActiveEnabled(self, v) -proc get_frameActiveEnabled*(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_frameActiveEnabled(self, p) -proc put_orientation*(self: ptr ITemplatePrinter2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_orientation(self, v) -proc get_orientation*(self: ptr ITemplatePrinter2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_orientation(self, p) -proc put_usePrinterCopyCollate*(self: ptr ITemplatePrinter2, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_usePrinterCopyCollate(self, v) -proc get_usePrinterCopyCollate*(self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_usePrinterCopyCollate(self, p) -proc deviceSupports*(self: ptr ITemplatePrinter2, bstrProperty: BSTR, pvar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deviceSupports(self, bstrProperty, pvar) -proc put_headerFooterFont*(self: ptr ITemplatePrinter3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_headerFooterFont(self, v) -proc get_headerFooterFont*(self: ptr ITemplatePrinter3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_headerFooterFont(self, p) -proc getPageMarginTop*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginTop(self, pageRule, pageWidth, pageHeight, pMargin) -proc getPageMarginRight*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginRight(self, pageRule, pageWidth, pageHeight, pMargin) -proc getPageMarginBottom*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginBottom(self, pageRule, pageWidth, pageHeight, pMargin) -proc getPageMarginLeft*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pageWidth: LONG, pageHeight: LONG, pMargin: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginLeft(self, pageRule, pageWidth, pageHeight, pMargin) -proc getPageMarginTopImportant*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginTopImportant(self, pageRule, pbImportant) -proc getPageMarginRightImportant*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginRightImportant(self, pageRule, pbImportant) -proc getPageMarginBottomImportant*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginBottomImportant(self, pageRule, pbImportant) -proc getPageMarginLeftImportant*(self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPageMarginLeftImportant(self, pageRule, pbImportant) -proc startPrint*(self: ptr IPrintManagerTemplatePrinter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.startPrint(self) -proc drawPreviewPage*(self: ptr IPrintManagerTemplatePrinter, pElemDisp: ptr IDispatch, nPage: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.drawPreviewPage(self, pElemDisp, nPage) -proc setPageCount*(self: ptr IPrintManagerTemplatePrinter, nPage: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setPageCount(self, nPage) -proc invalidatePreview*(self: ptr IPrintManagerTemplatePrinter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.invalidatePreview(self) -proc getPrintTaskOptionValue*(self: ptr IPrintManagerTemplatePrinter, bstrKey: BSTR, pvarin: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPrintTaskOptionValue(self, bstrKey, pvarin) -proc endPrint*(self: ptr IPrintManagerTemplatePrinter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.endPrint(self) -proc putref_startOffset*(self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_startOffset(self, v) -proc get_startOffset*(self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedLength): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_startOffset(self, p) -proc putref_method*(self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_method(self, v) -proc get_method*(self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_method(self, p) -proc putref_spacing*(self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_spacing(self, v) -proc get_spacing*(self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_spacing(self, p) -proc serializeToString*(self: ptr IDOMXmlSerializer, pNode: ptr IHTMLDOMNode, pString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.serializeToString(self, pNode, pString) -proc create*(self: ptr IDOMXmlSerializerFactory, a: ptr ptr IDOMXmlSerializer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, a) -proc parseFromString*(self: ptr IDOMParser, xmlSource: BSTR, mimeType: BSTR, ppNode: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.parseFromString(self, xmlSource, mimeType, ppNode) -proc create*(self: ptr IDOMParserFactory, a: ptr ptr IDOMParser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.create(self, a) -proc put_value*(self: ptr IHTMLProgressElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, v) -proc get_value*(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, p) -proc put_max*(self: ptr IHTMLProgressElement, v: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_max(self, v) -proc get_max*(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_max(self, p) -proc get_position*(self: ptr IHTMLProgressElement, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_position(self, p) -proc get_form*(self: ptr IHTMLProgressElement, p: ptr ptr IHTMLFormElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_form(self, p) -proc get_propertyName*(self: ptr IDOMMSTransitionEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_propertyName(self, p) -proc get_elapsedTime*(self: ptr IDOMMSTransitionEvent, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_elapsedTime(self, p) -proc initMSTransitionEvent*(self: ptr IDOMMSTransitionEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, propertyName: BSTR, elapsedTime: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMSTransitionEvent(self, eventType, canBubble, cancelable, propertyName, elapsedTime) -proc get_animationName*(self: ptr IDOMMSAnimationEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_animationName(self, p) -proc get_elapsedTime*(self: ptr IDOMMSAnimationEvent, p: ptr float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_elapsedTime(self, p) -proc initMSAnimationEvent*(self: ptr IDOMMSAnimationEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, animationName: BSTR, elapsedTime: float32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMSAnimationEvent(self, eventType, canBubble, cancelable, animationName, elapsedTime) -proc getCurrentPosition*(self: ptr IWebGeolocation, successCallback: ptr IDispatch, errorCallback: ptr IDispatch, options: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getCurrentPosition(self, successCallback, errorCallback, options) -proc watchPosition*(self: ptr IWebGeolocation, successCallback: ptr IDispatch, errorCallback: ptr IDispatch, options: ptr IDispatch, watchId: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.watchPosition(self, successCallback, errorCallback, options, watchId) -proc clearWatch*(self: ptr IWebGeolocation, watchId: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearWatch(self, watchId) -proc get_latitude*(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_latitude(self, p) -proc get_longitude*(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_longitude(self, p) -proc get_altitude*(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altitude(self, p) -proc get_accuracy*(self: ptr IWebGeocoordinates, p: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accuracy(self, p) -proc get_altitudeAccuracy*(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_altitudeAccuracy(self, p) -proc get_heading*(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_heading(self, p) -proc get_speed*(self: ptr IWebGeocoordinates, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_speed(self, p) -proc get_code*(self: ptr IWebGeopositionError, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_code(self, p) -proc get_message*(self: ptr IWebGeopositionError, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_message(self, p) -proc get_coords*(self: ptr IWebGeoposition, p: ptr ptr IWebGeocoordinates): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_coords(self, p) -proc get_timestamp*(self: ptr IWebGeoposition, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_timestamp(self, p) -proc get_javaEnabled*(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_javaEnabled(self, p) -proc get_cookieEnabled*(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cookieEnabled(self, p) -proc get_cpuClass*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_cpuClass(self, p) -proc get_systemLanguage*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemLanguage(self, p) -proc get_userLanguage*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_userLanguage(self, p) -proc get_platform*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_platform(self, p) -proc get_connectionSpeed*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_connectionSpeed(self, p) -proc get_onLine*(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onLine(self, p) -proc get_colorDepth*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_colorDepth(self, p) -proc get_bufferDepth*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bufferDepth(self, p) -proc get_width*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_width(self, p) -proc get_height*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_height(self, p) -proc get_availHeight*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_availHeight(self, p) -proc get_availWidth*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_availWidth(self, p) -proc get_connectionType*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_connectionType(self, p) -proc isComponentInstalled*(self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, bStrVer: BSTR, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.isComponentInstalled(self, bstrName, bstrUrl, bStrVer, p) -proc getComponentVersion*(self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, pbstrVer: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getComponentVersion(self, bstrName, bstrUrl, pbstrVer) -proc compareVersions*(self: ptr IClientCaps, bstrVer1: BSTR, bstrVer2: BSTR, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.compareVersions(self, bstrVer1, bstrVer2, p) -proc addComponentRequest*(self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, bStrVer: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addComponentRequest(self, bstrName, bstrUrl, bStrVer) -proc doComponentRequest*(self: ptr IClientCaps, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doComponentRequest(self, p) -proc clearComponentRequest*(self: ptr IClientCaps): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.clearComponentRequest(self) -proc get_lastState*(self: ptr IDOMMSManipulationEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastState(self, p) -proc get_currentState*(self: ptr IDOMMSManipulationEvent, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_currentState(self, p) -proc initMSManipulationEvent*(self: ptr IDOMMSManipulationEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, viewArg: ptr IHTMLWindow2, detailArg: LONG, lastState: LONG, currentState: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initMSManipulationEvent(self, eventType, canBubble, cancelable, viewArg, detailArg, lastState, currentState) -proc get_wasClean*(self: ptr IDOMCloseEvent, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_wasClean(self, p) -proc initCloseEvent*(self: ptr IDOMCloseEvent, eventType: BSTR, canBubble: VARIANT_BOOL, cancelable: VARIANT_BOOL, wasClean: VARIANT_BOOL, code: LONG, reason: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.initCloseEvent(self, eventType, canBubble, cancelable, wasClean, code, reason) -proc get_status*(self: ptr IHTMLApplicationCache, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_onchecking*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onchecking(self, v) -proc get_onchecking*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onchecking(self, p) -proc put_onerror*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onerror(self, v) -proc get_onerror*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onerror(self, p) -proc put_onnoupdate*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onnoupdate(self, v) -proc get_onnoupdate*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onnoupdate(self, p) -proc put_ondownloading*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondownloading(self, v) -proc get_ondownloading*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ondownloading(self, p) -proc put_onprogress*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onprogress(self, v) -proc get_onprogress*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onprogress(self, p) -proc put_onupdateready*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onupdateready(self, v) -proc get_onupdateready*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onupdateready(self, p) -proc put_oncached*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_oncached(self, v) -proc get_oncached*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_oncached(self, p) -proc put_onobsolete*(self: ptr IHTMLApplicationCache, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onobsolete(self, v) -proc get_onobsolete*(self: ptr IHTMLApplicationCache, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onobsolete(self, p) -proc update*(self: ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.update(self) -proc swapCache*(self: ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.swapCache(self) -proc abort*(self: ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.abort(self) -proc GetElement*(self: ptr ICSSFilterSite, Element: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElement(self, Element) -proc FireOnFilterChangeEvent*(self: ptr ICSSFilterSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FireOnFilterChangeEvent(self) -proc SetSite*(self: ptr ICSSFilter, pSink: ptr ICSSFilterSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSite(self, pSink) -proc OnAmbientPropertyChange*(self: ptr ICSSFilter, dispid: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnAmbientPropertyChange(self, dispid) -proc ValidateSecureUrl*(self: ptr ISecureUrlHost, pfAllow: ptr WINBOOL, pchUrlInQuestion: ptr OLECHAR, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ValidateSecureUrl(self, pfAllow, pchUrlInQuestion, dwFlags) -proc CreateMarkupPointer*(self: ptr IMarkupServices, ppPointer: ptr ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateMarkupPointer(self, ppPointer) -proc CreateMarkupContainer*(self: ptr IMarkupServices, ppMarkupContainer: ptr ptr IMarkupContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateMarkupContainer(self, ppMarkupContainer) -proc CreateElement*(self: ptr IMarkupServices, tagID: ELEMENT_TAG_ID, pchAttributes: ptr OLECHAR, ppElement: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateElement(self, tagID, pchAttributes, ppElement) -proc CloneElement*(self: ptr IMarkupServices, pElemCloneThis: ptr IHTMLElement, ppElementTheClone: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloneElement(self, pElemCloneThis, ppElementTheClone) -proc InsertElement*(self: ptr IMarkupServices, pElementInsert: ptr IHTMLElement, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertElement(self, pElementInsert, pPointerStart, pPointerFinish) -proc RemoveElement*(self: ptr IMarkupServices, pElementRemove: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveElement(self, pElementRemove) -proc Remove*(self: ptr IMarkupServices, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Remove(self, pPointerStart, pPointerFinish) -proc Copy*(self: ptr IMarkupServices, pPointerSourceStart: ptr IMarkupPointer, pPointerSourceFinish: ptr IMarkupPointer, pPointerTarget: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Copy(self, pPointerSourceStart, pPointerSourceFinish, pPointerTarget) -proc Move*(self: ptr IMarkupServices, pPointerSourceStart: ptr IMarkupPointer, pPointerSourceFinish: ptr IMarkupPointer, pPointerTarget: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Move(self, pPointerSourceStart, pPointerSourceFinish, pPointerTarget) -proc InsertText*(self: ptr IMarkupServices, pchText: ptr OLECHAR, cch: LONG, pPointerTarget: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertText(self, pchText, cch, pPointerTarget) -proc ParseString*(self: ptr IMarkupServices, pchHTML: ptr OLECHAR, dwFlags: DWORD, ppContainerResult: ptr ptr IMarkupContainer, ppPointerStart: ptr IMarkupPointer, ppPointerFinish: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseString(self, pchHTML, dwFlags, ppContainerResult, ppPointerStart, ppPointerFinish) -proc ParseGlobal*(self: ptr IMarkupServices, hglobalHTML: HGLOBAL, dwFlags: DWORD, ppContainerResult: ptr ptr IMarkupContainer, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseGlobal(self, hglobalHTML, dwFlags, ppContainerResult, pPointerStart, pPointerFinish) -proc IsScopedElement*(self: ptr IMarkupServices, pElement: ptr IHTMLElement, pfScoped: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsScopedElement(self, pElement, pfScoped) -proc GetElementTagId*(self: ptr IMarkupServices, pElement: ptr IHTMLElement, ptagId: ptr ELEMENT_TAG_ID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElementTagId(self, pElement, ptagId) -proc GetTagIDForName*(self: ptr IMarkupServices, bstrName: BSTR, ptagId: ptr ELEMENT_TAG_ID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTagIDForName(self, bstrName, ptagId) -proc GetNameForTagID*(self: ptr IMarkupServices, tagId: ELEMENT_TAG_ID, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNameForTagID(self, tagId, pbstrName) -proc MovePointersToRange*(self: ptr IMarkupServices, pIRange: ptr IHTMLTxtRange, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MovePointersToRange(self, pIRange, pPointerStart, pPointerFinish) -proc MoveRangeToPointers*(self: ptr IMarkupServices, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer, pIRange: ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveRangeToPointers(self, pPointerStart, pPointerFinish, pIRange) -proc BeginUndoUnit*(self: ptr IMarkupServices, pchTitle: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginUndoUnit(self, pchTitle) -proc EndUndoUnit*(self: ptr IMarkupServices): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndUndoUnit(self) -proc ParseGlobalEx*(self: ptr IMarkupServices2, hglobalHTML: HGLOBAL, dwFlags: DWORD, pContext: ptr IMarkupContainer, ppContainerResult: ptr ptr IMarkupContainer, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseGlobalEx(self, hglobalHTML, dwFlags, pContext, ppContainerResult, pPointerStart, pPointerFinish) -proc ValidateElements*(self: ptr IMarkupServices2, pPointerStart: ptr IMarkupPointer, pPointerFinish: ptr IMarkupPointer, pPointerTarget: ptr IMarkupPointer, pPointerStatus: ptr IMarkupPointer, ppElemFailBottom: ptr ptr IHTMLElement, ppElemFailTop: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ValidateElements(self, pPointerStart, pPointerFinish, pPointerTarget, pPointerStatus, ppElemFailBottom, ppElemFailTop) -proc SaveSegmentsToClipboard*(self: ptr IMarkupServices2, pSegmentList: ptr ISegmentList, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveSegmentsToClipboard(self, pSegmentList, dwFlags) -proc OwningDoc*(self: ptr IMarkupContainer, ppDoc: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OwningDoc(self, ppDoc) -proc CreateChangeLog*(self: ptr IMarkupContainer2, pChangeSink: ptr IHTMLChangeSink, ppChangeLog: ptr ptr IHTMLChangeLog, fForward: WINBOOL, fBackward: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateChangeLog(self, pChangeSink, ppChangeLog, fForward, fBackward) -proc RegisterForDirtyRange*(self: ptr IMarkupContainer2, pChangeSink: ptr IHTMLChangeSink, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterForDirtyRange(self, pChangeSink, pdwCookie) -proc UnRegisterForDirtyRange*(self: ptr IMarkupContainer2, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnRegisterForDirtyRange(self, dwCookie) -proc GetAndClearDirtyRange*(self: ptr IMarkupContainer2, dwCookie: DWORD, pIPointerBegin: ptr IMarkupPointer, pIPointerEnd: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAndClearDirtyRange(self, dwCookie, pIPointerBegin, pIPointerEnd) -proc GetVersionNumber*(self: ptr IMarkupContainer2): LONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVersionNumber(self) -proc GetMasterElement*(self: ptr IMarkupContainer2, ppElementMaster: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMasterElement(self, ppElementMaster) -proc ExecChange*(self: ptr IHTMLChangePlayback, pbRecord: ptr BYTE, fForward: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecChange(self, pbRecord, fForward) -proc OwningDoc*(self: ptr IMarkupPointer, ppDoc: ptr ptr IHTMLDocument2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OwningDoc(self, ppDoc) -proc Gravity*(self: ptr IMarkupPointer, pGravity: ptr POINTER_GRAVITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Gravity(self, pGravity) -proc SetGravity*(self: ptr IMarkupPointer, Gravity: POINTER_GRAVITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGravity(self, Gravity) -proc Cling*(self: ptr IMarkupPointer, pfCling: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cling(self, pfCling) -proc SetCling*(self: ptr IMarkupPointer, fCLing: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCling(self, fCLing) -proc Unposition*(self: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unposition(self) -proc IsPositioned*(self: ptr IMarkupPointer, pfPositioned: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsPositioned(self, pfPositioned) -proc GetContainer*(self: ptr IMarkupPointer, ppContainer: ptr ptr IMarkupContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainer(self, ppContainer) -proc MoveAdjacentToElement*(self: ptr IMarkupPointer, pElement: ptr IHTMLElement, eAdj: ELEMENT_ADJACENCY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveAdjacentToElement(self, pElement, eAdj) -proc MoveToPointer*(self: ptr IMarkupPointer, pPointer: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToPointer(self, pPointer) -proc MoveToContainer*(self: ptr IMarkupPointer, pContainer: ptr IMarkupContainer, fAtStart: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToContainer(self, pContainer, fAtStart) -proc Left*(self: ptr IMarkupPointer, fMove: WINBOOL, pContext: ptr MARKUP_CONTEXT_TYPE, ppElement: ptr ptr IHTMLElement, pcch: ptr LONG, pchText: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Left(self, fMove, pContext, ppElement, pcch, pchText) -proc Right*(self: ptr IMarkupPointer, fMove: WINBOOL, pContext: ptr MARKUP_CONTEXT_TYPE, ppElement: ptr ptr IHTMLElement, pcch: ptr LONG, pchText: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Right(self, fMove, pContext, ppElement, pcch, pchText) -proc CurrentScope*(self: ptr IMarkupPointer, ppElemCurrent: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CurrentScope(self, ppElemCurrent) -proc IsLeftOf*(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLeftOf(self, pPointerThat, pfResult) -proc IsLeftOfOrEqualTo*(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLeftOfOrEqualTo(self, pPointerThat, pfResult) -proc IsRightOf*(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRightOf(self, pPointerThat, pfResult) -proc IsRightOfOrEqualTo*(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRightOfOrEqualTo(self, pPointerThat, pfResult) -proc IsEqualTo*(self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfAreEqual: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqualTo(self, pPointerThat, pfAreEqual) -proc MoveUnit*(self: ptr IMarkupPointer, muAction: MOVEUNIT_ACTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveUnit(self, muAction) -proc FindText*(self: ptr IMarkupPointer, pchFindText: ptr OLECHAR, dwFlags: DWORD, pIEndMatch: ptr IMarkupPointer, pIEndSearch: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindText(self, pchFindText, dwFlags, pIEndMatch, pIEndSearch) -proc IsAtWordBreak*(self: ptr IMarkupPointer2, pfAtBreak: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsAtWordBreak(self, pfAtBreak) -proc GetMarkupPosition*(self: ptr IMarkupPointer2, plMP: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMarkupPosition(self, plMP) -proc MoveToMarkupPosition*(self: ptr IMarkupPointer2, pContainer: ptr IMarkupContainer, lMP: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToMarkupPosition(self, pContainer, lMP) -proc MoveUnitBounded*(self: ptr IMarkupPointer2, muAction: MOVEUNIT_ACTION, pIBoundary: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveUnitBounded(self, muAction, pIBoundary) -proc IsInsideURL*(self: ptr IMarkupPointer2, pRight: ptr IMarkupPointer, pfResult: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsInsideURL(self, pRight, pfResult) -proc MoveToContent*(self: ptr IMarkupPointer2, pIElement: ptr IHTMLElement, fAtStart: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToContent(self, pIElement, fAtStart) -proc GetTextFragCount*(self: ptr IMarkupTextFrags, pcFrags: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTextFragCount(self, pcFrags) -proc GetTextFrag*(self: ptr IMarkupTextFrags, iFrag: LONG, pbstrFrag: ptr BSTR, pPointerFrag: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTextFrag(self, iFrag, pbstrFrag, pPointerFrag) -proc RemoveTextFrag*(self: ptr IMarkupTextFrags, iFrag: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveTextFrag(self, iFrag) -proc InsertTextFrag*(self: ptr IMarkupTextFrags, iFrag: LONG, bstrInsert: BSTR, pPointerInsert: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertTextFrag(self, iFrag, bstrInsert, pPointerInsert) -proc FindTextFragFromMarkupPointer*(self: ptr IMarkupTextFrags, pPointerFind: ptr IMarkupPointer, piFrag: ptr LONG, pfFragFound: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindTextFragFromMarkupPointer(self, pPointerFind, piFrag, pfFragFound) -proc GetNextChange*(self: ptr IHTMLChangeLog, pbBuffer: ptr BYTE, nBufferSize: LONG, pnRecordLength: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextChange(self, pbBuffer, nBufferSize, pnRecordLength) -proc Notify*(self: ptr IHTMLChangeSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Notify(self) -proc SetGenericParse*(self: ptr IXMLGenericParse, fDoGeneric: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGenericParse(self, fDoGeneric) -proc SnapRect*(self: ptr IHTMLEditHost, pIElement: ptr IHTMLElement, prcNew: ptr RECT, eHandle: ELEMENT_CORNER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SnapRect(self, pIElement, prcNew, eHandle) -proc PreDrag*(self: ptr IHTMLEditHost2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreDrag(self) -proc GetPointers*(self: ptr ISegment, pIStart: ptr IMarkupPointer, pIEnd: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPointers(self, pIStart, pIEnd) -proc Current*(self: ptr ISegmentListIterator, ppISegment: ptr ptr ISegment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Current(self, ppISegment) -proc First*(self: ptr ISegmentListIterator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.First(self) -proc IsDone*(self: ptr ISegmentListIterator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDone(self) -proc Advance*(self: ptr ISegmentListIterator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advance(self) -proc CreateIterator*(self: ptr ISegmentList, ppIIter: ptr ptr ISegmentListIterator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateIterator(self, ppIIter) -proc GetType*(self: ptr ISegmentList, peType: ptr SELECTION_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, peType) -proc IsEmpty*(self: ptr ISegmentList, pfEmpty: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEmpty(self, pfEmpty) -proc GetSequenceNumber*(self: ptr ISequenceNumber, nCurrent: LONG, pnNew: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSequenceNumber(self, nCurrent, pnNew) -proc GetActiveIMM*(self: ptr IIMEServices, ppActiveIMM: ptr ptr IActiveIMMApp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetActiveIMM(self, ppActiveIMM) -proc MoveCaretToPointer*(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer, fScrollIntoView: WINBOOL, eDir: CARET_DIRECTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveCaretToPointer(self, pDispPointer, fScrollIntoView, eDir) -proc MoveCaretToPointerEx*(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer, fVisible: WINBOOL, fScrollIntoView: WINBOOL, eDir: CARET_DIRECTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveCaretToPointerEx(self, pDispPointer, fVisible, fScrollIntoView, eDir) -proc MoveMarkupPointerToCaret*(self: ptr IHTMLCaret, pIMarkupPointer: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveMarkupPointerToCaret(self, pIMarkupPointer) -proc MoveDisplayPointerToCaret*(self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveDisplayPointerToCaret(self, pDispPointer) -proc IsVisible*(self: ptr IHTMLCaret, pIsVisible: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsVisible(self, pIsVisible) -proc Show*(self: ptr IHTMLCaret, fScrollIntoView: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, fScrollIntoView) -proc Hide*(self: ptr IHTMLCaret): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Hide(self) -proc InsertText*(self: ptr IHTMLCaret, pText: ptr OLECHAR, lLen: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertText(self, pText, lLen) -proc ScrollIntoView*(self: ptr IHTMLCaret): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollIntoView(self) -proc GetLocation*(self: ptr IHTMLCaret, pPoint: ptr POINT, fTranslate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLocation(self, pPoint, fTranslate) -proc GetCaretDirection*(self: ptr IHTMLCaret, peDir: ptr CARET_DIRECTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCaretDirection(self, peDir) -proc SetCaretDirection*(self: ptr IHTMLCaret, eDir: CARET_DIRECTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCaretDirection(self, eDir) -proc AddSegment*(self: ptr IHighlightRenderingServices, pDispPointerStart: ptr IDisplayPointer, pDispPointerEnd: ptr IDisplayPointer, pIRenderStyle: ptr IHTMLRenderStyle, ppISegment: ptr ptr IHighlightSegment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSegment(self, pDispPointerStart, pDispPointerEnd, pIRenderStyle, ppISegment) -proc MoveSegmentToPointers*(self: ptr IHighlightRenderingServices, pISegment: ptr IHighlightSegment, pDispPointerStart: ptr IDisplayPointer, pDispPointerEnd: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveSegmentToPointers(self, pISegment, pDispPointerStart, pDispPointerEnd) -proc RemoveSegment*(self: ptr IHighlightRenderingServices, pISegment: ptr IHighlightSegment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveSegment(self, pISegment) -proc BeginSelectionUndo*(self: ptr ISelectionServicesListener): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginSelectionUndo(self) -proc EndSelectionUndo*(self: ptr ISelectionServicesListener): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndSelectionUndo(self) -proc OnSelectedElementExit*(self: ptr ISelectionServicesListener, pIElementStart: ptr IMarkupPointer, pIElementEnd: ptr IMarkupPointer, pIElementContentStart: ptr IMarkupPointer, pIElementContentEnd: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSelectedElementExit(self, pIElementStart, pIElementEnd, pIElementContentStart, pIElementContentEnd) -proc OnChangeType*(self: ptr ISelectionServicesListener, eType: SELECTION_TYPE, pIListener: ptr ISelectionServicesListener): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnChangeType(self, eType, pIListener) -proc GetTypeDetail*(self: ptr ISelectionServicesListener, pTypeDetail: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeDetail(self, pTypeDetail) -proc SetSelectionType*(self: ptr ISelectionServices, eType: SELECTION_TYPE, pIListener: ptr ISelectionServicesListener): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSelectionType(self, eType, pIListener) -proc GetMarkupContainer*(self: ptr ISelectionServices, ppIContainer: ptr ptr IMarkupContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMarkupContainer(self, ppIContainer) -proc AddSegment*(self: ptr ISelectionServices, pIStart: ptr IMarkupPointer, pIEnd: ptr IMarkupPointer, ppISegmentAdded: ptr ptr ISegment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSegment(self, pIStart, pIEnd, ppISegmentAdded) -proc AddElementSegment*(self: ptr ISelectionServices, pIElement: ptr IHTMLElement, ppISegmentAdded: ptr ptr IElementSegment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddElementSegment(self, pIElement, ppISegmentAdded) -proc RemoveSegment*(self: ptr ISelectionServices, pISegment: ptr ISegment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveSegment(self, pISegment) -proc GetSelectionServicesListener*(self: ptr ISelectionServices, ppISelectionServicesListener: ptr ptr ISelectionServicesListener): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectionServicesListener(self, ppISelectionServicesListener) -proc GetElement*(self: ptr IElementSegment, ppIElement: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElement(self, ppIElement) -proc SetPrimary*(self: ptr IElementSegment, fPrimary: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPrimary(self, fPrimary) -proc IsPrimary*(self: ptr IElementSegment, pfPrimary: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsPrimary(self, pfPrimary) -proc PreHandleEvent*(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreHandleEvent(self, inEvtDispId, pIEventObj) -proc PostHandleEvent*(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostHandleEvent(self, inEvtDispId, pIEventObj) -proc TranslateAccelerator*(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, inEvtDispId, pIEventObj) -proc PostEditorEventNotify*(self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostEditorEventNotify(self, inEvtDispId, pIEventObj) -proc AddDesigner*(self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddDesigner(self, pIDesigner) -proc RemoveDesigner*(self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveDesigner(self, pIDesigner) -proc GetSelectionServices*(self: ptr IHTMLEditServices, pIContainer: ptr IMarkupContainer, ppSelSvc: ptr ptr ISelectionServices): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectionServices(self, pIContainer, ppSelSvc) -proc MoveToSelectionAnchor*(self: ptr IHTMLEditServices, pIStartAnchor: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToSelectionAnchor(self, pIStartAnchor) -proc MoveToSelectionEnd*(self: ptr IHTMLEditServices, pIEndAnchor: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToSelectionEnd(self, pIEndAnchor) -proc SelectRange*(self: ptr IHTMLEditServices, pStart: ptr IMarkupPointer, pEnd: ptr IMarkupPointer, eType: SELECTION_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectRange(self, pStart, pEnd, eType) -proc MoveToSelectionAnchorEx*(self: ptr IHTMLEditServices2, pIStartAnchor: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToSelectionAnchorEx(self, pIStartAnchor) -proc MoveToSelectionEndEx*(self: ptr IHTMLEditServices2, pIEndAnchor: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToSelectionEndEx(self, pIEndAnchor) -proc FreezeVirtualCaretPos*(self: ptr IHTMLEditServices2, fReCompute: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FreezeVirtualCaretPos(self, fReCompute) -proc UnFreezeVirtualCaretPos*(self: ptr IHTMLEditServices2, fReset: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnFreezeVirtualCaretPos(self, fReset) -proc get_x*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_x(self, p) -proc get_baseLine*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseLine(self, p) -proc get_textDescent*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textDescent(self, p) -proc get_textHeight*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textHeight(self, p) -proc get_lineDirection*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lineDirection(self, p) -proc get_bold*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_bold(self, p) -proc get_italic*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_italic(self, p) -proc get_underline*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_underline(self, p) -proc get_overline*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_overline(self, p) -proc get_strikeOut*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_strikeOut(self, p) -proc get_subScript*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_subScript(self, p) -proc get_superScript*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_superScript(self, p) -proc get_explicitFace*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_explicitFace(self, p) -proc get_fontWeight*(self: ptr IHTMLComputedStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontWeight(self, p) -proc get_fontSize*(self: ptr IHTMLComputedStyle, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontSize(self, p) -proc get_fontName*(self: ptr IHTMLComputedStyle, p: ptr TCHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fontName(self, p) -proc get_hasBgColor*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hasBgColor(self, p) -proc get_textColor*(self: ptr IHTMLComputedStyle, p: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_textColor(self, p) -proc get_backgroundColor*(self: ptr IHTMLComputedStyle, p: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_backgroundColor(self, p) -proc get_preFormatted*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_preFormatted(self, p) -proc get_direction*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_direction(self, p) -proc get_blockDirection*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_blockDirection(self, p) -proc get_OL*(self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_OL(self, p) -proc IsEqual*(self: ptr IHTMLComputedStyle, pComputedStyle: ptr IHTMLComputedStyle, pfEqual: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqual(self, pComputedStyle, pfEqual) -proc MoveToPoint*(self: ptr IDisplayPointer, ptPoint: POINT, eCoordSystem: COORD_SYSTEM, pElementContext: ptr IHTMLElement, dwHitTestOptions: DWORD, pdwHitTestResults: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToPoint(self, ptPoint, eCoordSystem, pElementContext, dwHitTestOptions, pdwHitTestResults) -proc MoveUnit*(self: ptr IDisplayPointer, eMoveUnit: DISPLAY_MOVEUNIT, lXPos: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveUnit(self, eMoveUnit, lXPos) -proc PositionMarkupPointer*(self: ptr IDisplayPointer, pMarkupPointer: ptr IMarkupPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PositionMarkupPointer(self, pMarkupPointer) -proc MoveToPointer*(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToPointer(self, pDispPointer) -proc SetPointerGravity*(self: ptr IDisplayPointer, eGravity: POINTER_GRAVITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPointerGravity(self, eGravity) -proc GetPointerGravity*(self: ptr IDisplayPointer, peGravity: ptr POINTER_GRAVITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPointerGravity(self, peGravity) -proc SetDisplayGravity*(self: ptr IDisplayPointer, eGravity: DISPLAY_GRAVITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDisplayGravity(self, eGravity) -proc GetDisplayGravity*(self: ptr IDisplayPointer, peGravity: ptr DISPLAY_GRAVITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayGravity(self, peGravity) -proc IsPositioned*(self: ptr IDisplayPointer, pfPositioned: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsPositioned(self, pfPositioned) -proc Unposition*(self: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unposition(self) -proc IsEqualTo*(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsEqual: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqualTo(self, pDispPointer, pfIsEqual) -proc IsLeftOf*(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsLeftOf: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLeftOf(self, pDispPointer, pfIsLeftOf) -proc IsRightOf*(self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsRightOf: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRightOf(self, pDispPointer, pfIsRightOf) -proc IsAtBOL*(self: ptr IDisplayPointer, pfBOL: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsAtBOL(self, pfBOL) -proc MoveToMarkupPointer*(self: ptr IDisplayPointer, pPointer: ptr IMarkupPointer, pDispLineContext: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveToMarkupPointer(self, pPointer, pDispLineContext) -proc ScrollIntoView*(self: ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollIntoView(self) -proc GetLineInfo*(self: ptr IDisplayPointer, ppLineInfo: ptr ptr ILineInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLineInfo(self, ppLineInfo) -proc GetFlowElement*(self: ptr IDisplayPointer, ppLayoutElement: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFlowElement(self, ppLayoutElement) -proc QueryBreaks*(self: ptr IDisplayPointer, pdwBreaks: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryBreaks(self, pdwBreaks) -proc CreateDisplayPointer*(self: ptr IDisplayServices, ppDispPointer: ptr ptr IDisplayPointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDisplayPointer(self, ppDispPointer) -proc TransformRect*(self: ptr IDisplayServices, pRect: ptr RECT, eSource: COORD_SYSTEM, eDestination: COORD_SYSTEM, pIElement: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TransformRect(self, pRect, eSource, eDestination, pIElement) -proc TransformPoint*(self: ptr IDisplayServices, pPoint: ptr POINT, eSource: COORD_SYSTEM, eDestination: COORD_SYSTEM, pIElement: ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TransformPoint(self, pPoint, eSource, eDestination, pIElement) -proc GetCaret*(self: ptr IDisplayServices, ppCaret: ptr ptr IHTMLCaret): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCaret(self, ppCaret) -proc GetComputedStyle*(self: ptr IDisplayServices, pPointer: ptr IMarkupPointer, ppComputedStyle: ptr ptr IHTMLComputedStyle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetComputedStyle(self, pPointer, ppComputedStyle) -proc ScrollRectIntoView*(self: ptr IDisplayServices, pIElement: ptr IHTMLElement, rect: RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollRectIntoView(self, pIElement, rect) -proc HasFlowLayout*(self: ptr IDisplayServices, pIElement: ptr IHTMLElement, pfHasFlowLayout: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasFlowLayout(self, pIElement, pfHasFlowLayout) -proc choosecolordlg*(self: ptr IHtmlDlgSafeHelper, initColor: VARIANT, rgbColor: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.choosecolordlg(self, initColor, rgbColor) -proc getCharset*(self: ptr IHtmlDlgSafeHelper, fontName: BSTR, charset: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getCharset(self, fontName, charset) -proc get_Fonts*(self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Fonts(self, p) -proc get_BlockFormats*(self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BlockFormats(self, p) -proc get_NewEnum*(self: ptr IBlockFormats, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_NewEnum(self, p) -proc get_Count*(self: ptr IBlockFormats, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, p) -proc Item*(self: ptr IBlockFormats, pvarIndex: ptr VARIANT, pbstrBlockFormat: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, pvarIndex, pbstrBlockFormat) -proc get_NewEnum*(self: ptr IFontNames, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_NewEnum(self, p) -proc get_Count*(self: ptr IFontNames, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, p) -proc Item*(self: ptr IFontNames, pvarIndex: ptr VARIANT, pbstrFontName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, pvarIndex, pbstrFontName) -proc Write*(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Write(self, source, level, messageId, messageText) -proc WriteWithUrl*(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR, fileUrl: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteWithUrl(self, source, level, messageId, messageText, fileUrl) -proc WriteWithUrlAndLine*(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR, fileUrl: LPCWSTR, line: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteWithUrlAndLine(self, source, level, messageId, messageText, fileUrl, line) -proc WriteWithUrlLineAndColumn*(self: ptr IDeveloperConsoleMessageReceiver, source: LPCWSTR, level: DEV_CONSOLE_MESSAGE_LEVEL, messageId: int32, messageText: LPCWSTR, fileUrl: LPCWSTR, line: ULONG, column: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteWithUrlLineAndColumn(self, source, level, messageId, messageText, fileUrl, line, column) -proc RequestedCallbackTypes*(self: ptr IDebugCallbackNotificationHandler, pCallbackMask: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestedCallbackTypes(self, pCallbackMask) -proc BeforeDispatchEvent*(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeforeDispatchEvent(self, pEvent) -proc DispatchEventComplete*(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown, propagationStatus: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DispatchEventComplete(self, pEvent, propagationStatus) -proc BeforeInvokeDomCallback*(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown, pCallback: ptr IScriptEventHandler, eStage: DOM_EVENT_PHASE, propagationStatus: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeforeInvokeDomCallback(self, pEvent, pCallback, eStage, propagationStatus) -proc InvokeDomCallbackComplete*(self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown, pCallback: ptr IScriptEventHandler, eStage: DOM_EVENT_PHASE, propagationStatus: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeDomCallbackComplete(self, pEvent, pCallback, eStage, propagationStatus) -proc BeforeInvokeCallback*(self: ptr IDebugCallbackNotificationHandler, eCallbackType: SCRIPT_TIMER_TYPE, callbackCookie: DWORD, pDispHandler: ptr IDispatch, ullHandlerCookie: ULONGLONG, functionName: BSTR, line: UINT32, column: UINT32, cchLength: UINT32, pDebugDocumentContext: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeforeInvokeCallback(self, eCallbackType, callbackCookie, pDispHandler, ullHandlerCookie, functionName, line, column, cchLength, pDebugDocumentContext) -proc InvokeCallbackComplete*(self: ptr IDebugCallbackNotificationHandler, eCallbackType: SCRIPT_TIMER_TYPE, callbackCookie: DWORD, pDispHandler: ptr IDispatch, ullHandlerCookie: ULONGLONG, functionName: BSTR, line: UINT32, column: UINT32, cchLength: UINT32, pDebugDocumentContext: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeCallbackComplete(self, eCallbackType, callbackCookie, pDispHandler, ullHandlerCookie, functionName, line, column, cchLength, pDebugDocumentContext) -proc FunctionName*(self: ptr IScriptEventHandler, pbstrFunctionName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FunctionName(self, pbstrFunctionName) -proc DebugDocumentContext*(self: ptr IScriptEventHandler, ppDebugDocumentContext: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DebugDocumentContext(self, ppDebugDocumentContext) -proc EventHandlerDispatch*(self: ptr IScriptEventHandler, ppDispHandler: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EventHandlerDispatch(self, ppDispHandler) -proc UsesCapture*(self: ptr IScriptEventHandler, pfUsesCapture: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UsesCapture(self, pfUsesCapture) -proc Cookie*(self: ptr IScriptEventHandler, pullCookie: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cookie(self, pullCookie) -proc GetSourceInfo*(self: ptr IScriptEventHandlerSourceInfo, pbstrFunctionName: ptr BSTR, line: ptr UINT32, column: ptr UINT32, cchLength: ptr UINT32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSourceInfo(self, pbstrFunctionName, line, column, cchLength) -proc OnDOMEventListenerAdded*(self: ptr IDOMEventRegistrationCallback, pszEventType: LPCWSTR, pHandler: ptr IScriptEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDOMEventListenerAdded(self, pszEventType, pHandler) -proc OnDOMEventListenerRemoved*(self: ptr IDOMEventRegistrationCallback, ullCookie: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDOMEventListenerRemoved(self, ullCookie) -proc GetRegisteredEventTypes*(self: ptr IEventTarget2, ppEventTypeArray: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRegisteredEventTypes(self, ppEventTypeArray) -proc GetListenersForType*(self: ptr IEventTarget2, pszEventType: LPCWSTR, ppEventHandlerArray: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetListenersForType(self, pszEventType, ppEventHandlerArray) -proc RegisterForDOMEventListeners*(self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterForDOMEventListeners(self, pCallback) -proc UnregisterForDOMEventListeners*(self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterForDOMEventListeners(self, pCallback) -proc get_name*(self: ptr IHTMLNamespace, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, p) -proc get_urn*(self: ptr IHTMLNamespace, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_urn(self, p) -proc get_tagNames*(self: ptr IHTMLNamespace, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagNames(self, p) -proc get_readyState*(self: ptr IHTMLNamespace, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, p) -proc put_onreadystatechange*(self: ptr IHTMLNamespace, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, v) -proc get_onreadystatechange*(self: ptr IHTMLNamespace, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_onreadystatechange(self, p) -proc doImport*(self: ptr IHTMLNamespace, bstrImplementationUrl: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.doImport(self, bstrImplementationUrl) -proc attachEvent*(self: ptr IHTMLNamespace, event: BSTR, pDisp: ptr IDispatch, pfResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.attachEvent(self, event, pDisp, pfResult) -proc detachEvent*(self: ptr IHTMLNamespace, event: BSTR, pDisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.detachEvent(self, event, pDisp) -proc get_length*(self: ptr IHTMLNamespaceCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc item*(self: ptr IHTMLNamespaceCollection, index: VARIANT, ppNamespace: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppNamespace) -proc add*(self: ptr IHTMLNamespaceCollection, bstrNamespace: BSTR, bstrUrn: BSTR, implementationUrl: VARIANT, ppNamespace: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.add(self, bstrNamespace, bstrUrn, implementationUrl, ppNamespace) -proc Draw*(self: ptr IHTMLPainter, rcBounds: RECT, rcUpdate: RECT, lDrawFlags: LONG, hdc: HDC, pvDrawObject: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Draw(self, rcBounds, rcUpdate, lDrawFlags, hdc, pvDrawObject) -proc OnResize*(self: ptr IHTMLPainter, size: SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnResize(self, size) -proc GetPainterInfo*(self: ptr IHTMLPainter, pInfo: ptr HTML_PAINTER_INFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPainterInfo(self, pInfo) -proc HitTestPoint*(self: ptr IHTMLPainter, pt: POINT, pbHit: ptr WINBOOL, plPartID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HitTestPoint(self, pt, pbHit, plPartID) -proc GetEventInfoFlags*(self: ptr IHTMLPainterEventInfo, plEventInfoFlags: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEventInfoFlags(self, plEventInfoFlags) -proc GetEventTarget*(self: ptr IHTMLPainterEventInfo, ppElement: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEventTarget(self, ppElement) -proc SetCursor*(self: ptr IHTMLPainterEventInfo, lPartID: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCursor(self, lPartID) -proc StringFromPartID*(self: ptr IHTMLPainterEventInfo, lPartID: LONG, pbstrPart: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StringFromPartID(self, lPartID, pbstrPart) -proc OnMove*(self: ptr IHTMLPainterOverlay, rcDevice: RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnMove(self, rcDevice) -proc InvalidatePainterInfo*(self: ptr IHTMLPaintSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidatePainterInfo(self) -proc InvalidateRect*(self: ptr IHTMLPaintSite, prcInvalid: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateRect(self, prcInvalid) -proc InvalidateRegion*(self: ptr IHTMLPaintSite, rgnInvalid: HRGN): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateRegion(self, rgnInvalid) -proc GetDrawInfo*(self: ptr IHTMLPaintSite, lFlags: LONG, pDrawInfo: ptr HTML_PAINT_DRAW_INFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDrawInfo(self, lFlags, pDrawInfo) -proc TransformGlobalToLocal*(self: ptr IHTMLPaintSite, ptGlobal: POINT, pptLocal: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TransformGlobalToLocal(self, ptGlobal, pptLocal) -proc TransformLocalToGlobal*(self: ptr IHTMLPaintSite, ptLocal: POINT, pptGlobal: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TransformLocalToGlobal(self, ptLocal, pptGlobal) -proc GetHitTestCookie*(self: ptr IHTMLPaintSite, plCookie: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHitTestCookie(self, plCookie) -proc get_length*(self: ptr IHTMLIPrintCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IHTMLIPrintCollection, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, p) -proc item*(self: ptr IHTMLIPrintCollection, index: LONG, ppIPrint: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, index, ppIPrint) -proc Reset*(self: ptr IEnumPrivacyRecords): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc GetSize*(self: ptr IEnumPrivacyRecords, pSize: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, pSize) -proc GetPrivacyImpacted*(self: ptr IEnumPrivacyRecords, pState: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPrivacyImpacted(self, pState) -proc Next*(self: ptr IEnumPrivacyRecords, pbstrUrl: ptr BSTR, pbstrPolicyRef: ptr BSTR, pdwReserved: ptr LONG, pdwPrivacyFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, pbstrUrl, pbstrPolicyRef, pdwReserved, pdwPrivacyFlags) -proc GetCount*(self: ptr IWPCBlockedUrls, pdwCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pdwCount) -proc GetUrl*(self: ptr IWPCBlockedUrls, dwIdx: DWORD, pbstrUrl: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUrl(self, dwIdx, pbstrUrl) -proc get_Attr*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Attr(self, p) -proc get_BehaviorUrnsCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BehaviorUrnsCollection(self, p) -proc get_BookmarkCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BookmarkCollection(self, p) -proc get_CompatibleInfo*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CompatibleInfo(self, p) -proc get_CompatibleInfoCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CompatibleInfoCollection(self, p) -proc get_ControlRangeCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ControlRangeCollection(self, p) -proc get_CSSCurrentStyleDeclaration*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CSSCurrentStyleDeclaration(self, p) -proc get_CSSRuleList*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CSSRuleList(self, p) -proc get_CSSRuleStyleDeclaration*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CSSRuleStyleDeclaration(self, p) -proc get_CSSStyleDeclaration*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CSSStyleDeclaration(self, p) -proc get_CSSStyleRule*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CSSStyleRule(self, p) -proc get_CSSStyleSheet*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CSSStyleSheet(self, p) -proc get_DataTransfer*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DataTransfer(self, p) -proc get_DOMImplementation*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DOMImplementation(self, p) -proc get_Element*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Element(self, p) -proc get_Event*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Event(self, p) -proc get_History*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_History(self, p) -proc get_HTCElementBehaviorDefaults*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTCElementBehaviorDefaults(self, p) -proc get_HTMLAnchorElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLAnchorElement(self, p) -proc get_HTMLAreaElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLAreaElement(self, p) -proc get_HTMLAreasCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLAreasCollection(self, p) -proc get_HTMLBaseElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLBaseElement(self, p) -proc get_HTMLBaseFontElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLBaseFontElement(self, p) -proc get_HTMLBGSoundElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLBGSoundElement(self, p) -proc get_HTMLBlockElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLBlockElement(self, p) -proc get_HTMLBodyElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLBodyElement(self, p) -proc get_HTMLBRElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLBRElement(self, p) -proc get_HTMLButtonElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLButtonElement(self, p) -proc get_HTMLCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLCollection(self, p) -proc get_HTMLCommentElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLCommentElement(self, p) -proc get_HTMLDDElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLDDElement(self, p) -proc get_HTMLDivElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLDivElement(self, p) -proc get_HTMLDocument*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLDocument(self, p) -proc get_HTMLDListElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLDListElement(self, p) -proc get_HTMLDTElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLDTElement(self, p) -proc get_HTMLEmbedElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLEmbedElement(self, p) -proc get_HTMLFieldSetElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLFieldSetElement(self, p) -proc get_HTMLFontElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLFontElement(self, p) -proc get_HTMLFormElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLFormElement(self, p) -proc get_HTMLFrameElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLFrameElement(self, p) -proc get_HTMLFrameSetElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLFrameSetElement(self, p) -proc get_HTMLGenericElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLGenericElement(self, p) -proc get_HTMLHeadElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLHeadElement(self, p) -proc get_HTMLHeadingElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLHeadingElement(self, p) -proc get_HTMLHRElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLHRElement(self, p) -proc get_HTMLHtmlElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLHtmlElement(self, p) -proc get_HTMLIFrameElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLIFrameElement(self, p) -proc get_HTMLImageElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLImageElement(self, p) -proc get_HTMLInputElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLInputElement(self, p) -proc get_HTMLIsIndexElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLIsIndexElement(self, p) -proc get_HTMLLabelElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLLabelElement(self, p) -proc get_HTMLLegendElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLLegendElement(self, p) -proc get_HTMLLIElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLLIElement(self, p) -proc get_HTMLLinkElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLLinkElement(self, p) -proc get_HTMLMapElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLMapElement(self, p) -proc get_HTMLMarqueeElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLMarqueeElement(self, p) -proc get_HTMLMetaElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLMetaElement(self, p) -proc get_HTMLModelessDialog*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLModelessDialog(self, p) -proc get_HTMLNamespaceInfo*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLNamespaceInfo(self, p) -proc get_HTMLNamespaceInfoCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLNamespaceInfoCollection(self, p) -proc get_HTMLNextIdElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLNextIdElement(self, p) -proc get_HTMLNoShowElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLNoShowElement(self, p) -proc get_HTMLObjectElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLObjectElement(self, p) -proc get_HTMLOListElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLOListElement(self, p) -proc get_HTMLOptionElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLOptionElement(self, p) -proc get_HTMLParagraphElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLParagraphElement(self, p) -proc get_HTMLParamElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLParamElement(self, p) -proc get_HTMLPhraseElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLPhraseElement(self, p) -proc get_HTMLPluginsCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLPluginsCollection(self, p) -proc get_HTMLPopup*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLPopup(self, p) -proc get_HTMLScriptElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLScriptElement(self, p) -proc get_HTMLSelectElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLSelectElement(self, p) -proc get_HTMLSpanElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLSpanElement(self, p) -proc get_HTMLStyleElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLStyleElement(self, p) -proc get_HTMLTableCaptionElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTableCaptionElement(self, p) -proc get_HTMLTableCellElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTableCellElement(self, p) -proc get_HTMLTableColElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTableColElement(self, p) -proc get_HTMLTableElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTableElement(self, p) -proc get_HTMLTableRowElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTableRowElement(self, p) -proc get_HTMLTableSectionElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTableSectionElement(self, p) -proc get_HTMLTextAreaElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTextAreaElement(self, p) -proc get_HTMLTextElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTextElement(self, p) -proc get_HTMLTitleElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLTitleElement(self, p) -proc get_HTMLUListElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLUListElement(self, p) -proc get_HTMLUnknownElement*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HTMLUnknownElement(self, p) -proc get_Image*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Image(self, p) -proc get_Location*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Location(self, p) -proc get_NamedNodeMap*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_NamedNodeMap(self, p) -proc get_Navigator*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Navigator(self, p) -proc get_NodeList*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_NodeList(self, p) -proc get_Option*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Option(self, p) -proc get_Screen*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Screen(self, p) -proc get_Selection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Selection(self, p) -proc get_StaticNodeList*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StaticNodeList(self, p) -proc get_Storage*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Storage(self, p) -proc get_StyleSheetList*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StyleSheetList(self, p) -proc get_StyleSheetPage*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StyleSheetPage(self, p) -proc get_StyleSheetPageList*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StyleSheetPageList(self, p) -proc get_Text*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Text(self, p) -proc get_TextRange*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextRange(self, p) -proc get_TextRangeCollection*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextRangeCollection(self, p) -proc get_TextRectangle*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextRectangle(self, p) -proc get_TextRectangleList*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextRectangleList(self, p) -proc get_Window*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Window(self, p) -proc get_XDomainRequest*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_XDomainRequest(self, p) -proc get_XMLHttpRequest*(self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_XMLHttpRequest(self, p) -proc put_dialogTop*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dialogTop(self, v) -proc get_dialogTop*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dialogTop(self, p) -proc put_dialogLeft*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dialogLeft(self, v) -proc get_dialogLeft*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dialogLeft(self, p) -proc put_dialogWidth*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dialogWidth(self, v) -proc get_dialogWidth*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dialogWidth(self, p) -proc put_dialogHeight*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dialogHeight(self, v) -proc get_dialogHeight*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dialogHeight(self, p) -proc get_dialogArguments*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dialogArguments(self, p) -proc get_menuArguments*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_menuArguments(self, p) -proc put_returnValue*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_returnValue(self, v) -proc get_returnValue*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_returnValue(self, p) -proc close*(self: ptr IHTMLDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.close(self) -proc toString*(self: ptr IHTMLDialog, String: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.toString(self, String) -proc put_status*(self: ptr IHTMLDialog2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_status(self, v) -proc get_status*(self: ptr IHTMLDialog2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, p) -proc put_resizable*(self: ptr IHTMLDialog2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_resizable(self, v) -proc get_resizable*(self: ptr IHTMLDialog2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_resizable(self, p) -proc put_unadorned*(self: ptr IHTMLDialog3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_unadorned(self, v) -proc get_unadorned*(self: ptr IHTMLDialog3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_unadorned(self, p) -proc put_dialogHide*(self: ptr IHTMLDialog3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dialogHide(self, v) -proc get_dialogHide*(self: ptr IHTMLDialog3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dialogHide(self, p) -proc get_parameters*(self: ptr IHTMLModelessInit, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parameters(self, p) -proc get_optionString*(self: ptr IHTMLModelessInit, p: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_optionString(self, p) -proc get_moniker*(self: ptr IHTMLModelessInit, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_moniker(self, p) -proc get_document*(self: ptr IHTMLModelessInit, p: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p) -proc show*(self: ptr IHTMLPopup, x: LONG, y: LONG, w: LONG, h: LONG, pElement: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.show(self, x, y, w, h, pElement) -proc hide*(self: ptr IHTMLPopup): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hide(self) -proc get_document*(self: ptr IHTMLPopup, p: ptr ptr IHTMLDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_document(self, p) -proc get_isOpen*(self: ptr IHTMLPopup, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_isOpen(self, p) -proc put_applicationName*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_applicationName(self, v) -proc get_applicationName*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_applicationName(self, p) -proc put_version*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_version(self, v) -proc get_version*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_version(self, p) -proc put_icon*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_icon(self, v) -proc get_icon*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_icon(self, p) -proc put_singleInstance*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_singleInstance(self, v) -proc get_singleInstance*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_singleInstance(self, p) -proc put_minimizeButton*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_minimizeButton(self, v) -proc get_minimizeButton*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_minimizeButton(self, p) -proc put_maximizeButton*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_maximizeButton(self, v) -proc get_maximizeButton*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_maximizeButton(self, p) -proc put_border*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_border(self, v) -proc get_border*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_border(self, p) -proc put_borderStyle*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_borderStyle(self, v) -proc get_borderStyle*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_borderStyle(self, p) -proc put_sysMenu*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_sysMenu(self, v) -proc get_sysMenu*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_sysMenu(self, p) -proc put_caption*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_caption(self, v) -proc get_caption*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_caption(self, p) -proc put_windowState*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_windowState(self, v) -proc get_windowState*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_windowState(self, p) -proc put_showInTaskBar*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_showInTaskBar(self, v) -proc get_showInTaskBar*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_showInTaskBar(self, p) -proc get_commandLine*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_commandLine(self, p) -proc put_contextMenu*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_contextMenu(self, v) -proc get_contextMenu*(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_contextMenu(self, p) -proc put_innerBorder*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_innerBorder(self, v) -proc get_innerBorder*(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_innerBorder(self, p) -proc put_scroll*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scroll(self, v) -proc get_scroll*(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scroll(self, p) -proc put_scrollFlat*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_scrollFlat(self, v) -proc get_scrollFlat*(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_scrollFlat(self, p) -proc put_selection*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_selection(self, v) -proc get_selection*(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_selection(self, p) -proc put_navigable*(self: ptr IHTMLAppBehavior3, v: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_navigable(self, v) -proc get_navigable*(self: ptr IHTMLAppBehavior3, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_navigable(self, p) -proc FindBehavior*(self: ptr IElementBehaviorFactory, bstrBehavior: BSTR, bstrBehaviorUrl: BSTR, pSite: ptr IElementBehaviorSite, ppBehavior: ptr ptr IElementBehavior): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindBehavior(self, bstrBehavior, bstrBehaviorUrl, pSite, ppBehavior) -proc AddTag*(self: ptr IElementNamespace, bstrTagName: BSTR, lFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTag(self, bstrTagName, lFlags) -proc AddNamespace*(self: ptr IElementNamespaceTable, bstrNamespace: BSTR, bstrUrn: BSTR, lFlags: LONG, pvarFactory: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddNamespace(self, bstrNamespace, bstrUrn, lFlags, pvarFactory) -proc Create*(self: ptr IElementNamespaceFactory, pNamespace: ptr IElementNamespace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Create(self, pNamespace) -proc CreateWithImplementation*(self: ptr IElementNamespaceFactory2, pNamespace: ptr IElementNamespace, bstrImplementation: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateWithImplementation(self, pNamespace, bstrImplementation) -proc Resolve*(self: ptr IElementNamespaceFactoryCallback, bstrNamespace: BSTR, bstrTagName: BSTR, bstrAttrs: BSTR, pNamespace: ptr IElementNamespace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resolve(self, bstrNamespace, bstrTagName, bstrAttrs, pNamespace) -proc Init*(self: ptr IElementBehavior, pBehaviorSite: ptr IElementBehaviorSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Init(self, pBehaviorSite) -proc Notify*(self: ptr IElementBehavior, lEvent: LONG, pVar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Notify(self, lEvent, pVar) -proc Detach*(self: ptr IElementBehavior): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Detach(self) -proc GetElement*(self: ptr IElementBehaviorSite, ppElement: ptr ptr IHTMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElement(self, ppElement) -proc RegisterNotification*(self: ptr IElementBehaviorSite, lEvent: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterNotification(self, lEvent) -proc RegisterEvent*(self: ptr IElementBehaviorSiteOM, pchEvent: LPOLESTR, lFlags: LONG, plCookie: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterEvent(self, pchEvent, lFlags, plCookie) -proc GetEventCookie*(self: ptr IElementBehaviorSiteOM, pchEvent: LPOLESTR, plCookie: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEventCookie(self, pchEvent, plCookie) -proc FireEvent*(self: ptr IElementBehaviorSiteOM, lCookie: LONG, pEventObject: ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FireEvent(self, lCookie, pEventObject) -proc CreateEventObject*(self: ptr IElementBehaviorSiteOM, ppEventObject: ptr ptr IHTMLEventObj): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateEventObject(self, ppEventObject) -proc RegisterName*(self: ptr IElementBehaviorSiteOM, pchName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterName(self, pchName) -proc RegisterUrn*(self: ptr IElementBehaviorSiteOM, pchUrn: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterUrn(self, pchUrn) -proc GetDefaults*(self: ptr IElementBehaviorSiteOM2, ppDefaults: ptr ptr IHTMLElementDefaults): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaults(self, ppDefaults) -proc Draw*(self: ptr IElementBehaviorRender, hdc: HDC, lLayer: LONG, pRect: ptr RECT, pReserved: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Draw(self, hdc, lLayer, pRect, pReserved) -proc GetRenderInfo*(self: ptr IElementBehaviorRender, plRenderInfo: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRenderInfo(self, plRenderInfo) -proc HitTestPoint*(self: ptr IElementBehaviorRender, pPoint: ptr POINT, pReserved: ptr IUnknown, pbHit: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HitTestPoint(self, pPoint, pReserved, pbHit) -proc Invalidate*(self: ptr IElementBehaviorSiteRender, pRect: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invalidate(self, pRect) -proc InvalidateRenderInfo*(self: ptr IElementBehaviorSiteRender): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateRenderInfo(self) -proc InvalidateStyle*(self: ptr IElementBehaviorSiteRender): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateStyle(self) -proc GetCategory*(self: ptr IElementBehaviorCategory, ppchCategory: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategory(self, ppchCategory) -proc GetRelatedBehaviors*(self: ptr IElementBehaviorSiteCategory, lDirection: LONG, pchCategory: LPOLESTR, ppEnumerator: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRelatedBehaviors(self, lDirection, pchCategory, ppEnumerator) -proc GetSubmitInfo*(self: ptr IElementBehaviorSubmit, pSubmitData: ptr IHTMLSubmitData): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSubmitInfo(self, pSubmitData) -proc Reset*(self: ptr IElementBehaviorSubmit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc GetFocusRect*(self: ptr IElementBehaviorFocus, pRect: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFocusRect(self, pRect) -proc GetSize*(self: ptr IElementBehaviorLayout, dwFlags: LONG, sizeContent: SIZE, pptTranslateBy: ptr POINT, pptTopLeft: ptr POINT, psizeProposed: ptr SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, dwFlags, sizeContent, pptTranslateBy, pptTopLeft, psizeProposed) -proc GetLayoutInfo*(self: ptr IElementBehaviorLayout, plLayoutInfo: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLayoutInfo(self, plLayoutInfo) -proc GetPosition*(self: ptr IElementBehaviorLayout, lFlags: LONG, pptTopLeft: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPosition(self, lFlags, pptTopLeft) -proc MapSize*(self: ptr IElementBehaviorLayout, psizeIn: ptr SIZE, prcOut: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapSize(self, psizeIn, prcOut) -proc GetTextDescent*(self: ptr IElementBehaviorLayout2, plDescent: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTextDescent(self, plDescent) -proc InvalidateLayoutInfo*(self: ptr IElementBehaviorSiteLayout): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateLayoutInfo(self) -proc InvalidateSize*(self: ptr IElementBehaviorSiteLayout): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateSize(self) -proc GetMediaResolution*(self: ptr IElementBehaviorSiteLayout, psizeResolution: ptr SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMediaResolution(self, psizeResolution) -proc GetFontInfo*(self: ptr IElementBehaviorSiteLayout2, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFontInfo(self, plf) -proc PopulateNamespaceTable*(self: ptr IHostBehaviorInit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PopulateNamespaceTable(self) -proc CreateSurfacePresenter*(self: ptr IViewObjectPresentSite, pDevice: ptr IUnknown, width: UINT, height: UINT, backBufferCount: UINT, format: DXGI_FORMAT, mode: VIEW_OBJECT_ALPHA_MODE, ppQueue: ptr ptr ISurfacePresenter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateSurfacePresenter(self, pDevice, width, height, backBufferCount, format, mode, ppQueue) -proc IsHardwareComposition*(self: ptr IViewObjectPresentSite, pIsHardwareComposition: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsHardwareComposition(self, pIsHardwareComposition) -proc SetCompositionMode*(self: ptr IViewObjectPresentSite, mode: VIEW_OBJECT_COMPOSITION_MODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionMode(self, mode) -proc Present*(self: ptr ISurfacePresenter, uBuffer: UINT, pDirty: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Present(self, uBuffer, pDirty) -proc GetBuffer*(self: ptr ISurfacePresenter, backBufferIndex: UINT, riid: REFIID, ppBuffer: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBuffer(self, backBufferIndex, riid, ppBuffer) -proc IsCurrent*(self: ptr ISurfacePresenter, pIsCurrent: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsCurrent(self, pIsCurrent) -proc GetBufferPointer*(self: ptr ICanvasPixelArrayData, ppBuffer: ptr ptr BYTE, pBufferLength: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBufferPointer(self, ppBuffer, pBufferLength) -proc GetPrintBitmap*(self: ptr IViewObjectPrint, ppPrintBitmap: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPrintBitmap(self, ppPrintBitmap) -proc RequestFrame*(self: ptr IViewObjectPresentNotifySite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestFrame(self) -proc OnPreRender*(self: ptr IViewObjectPresentNotify): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPreRender(self) -proc EvaluateUrl*(self: ptr ITrackingProtection, bstrUrl: BSTR, pfAllowed: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EvaluateUrl(self, bstrUrl, pfAllowed) -proc GetEnabled*(self: ptr ITrackingProtection, pfEnabled: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnabled(self, pfEnabled) -proc ShowHTMLDialog*(self: ptr IHostDialogHelper, hwndParent: HWND, pMk: ptr IMoniker, pvarArgIn: ptr VARIANT, pchOptions: ptr WCHAR, pvarArgOut: ptr VARIANT, punkHost: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowHTMLDialog(self, hwndParent, pMk, pvarArgIn, pchOptions, pvarArgOut, punkHost) -proc ShowContextMenu*(self: ptr IDocHostUIHandler, dwID: DWORD, ppt: ptr POINT, pcmdtReserved: ptr IUnknown, pdispReserved: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContextMenu(self, dwID, ppt, pcmdtReserved, pdispReserved) -proc GetHostInfo*(self: ptr IDocHostUIHandler, pInfo: ptr DOCHOSTUIINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHostInfo(self, pInfo) -proc ShowUI*(self: ptr IDocHostUIHandler, dwID: DWORD, pActiveObject: ptr IOleInPlaceActiveObject, pCommandTarget: ptr IOleCommandTarget, pFrame: ptr IOleInPlaceFrame, pDoc: ptr IOleInPlaceUIWindow): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowUI(self, dwID, pActiveObject, pCommandTarget, pFrame, pDoc) -proc HideUI*(self: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HideUI(self) -proc UpdateUI*(self: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateUI(self) -proc EnableModeless*(self: ptr IDocHostUIHandler, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable) -proc OnDocWindowActivate*(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDocWindowActivate(self, fActivate) -proc OnFrameWindowActivate*(self: ptr IDocHostUIHandler, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFrameWindowActivate(self, fActivate) -proc ResizeBorder*(self: ptr IDocHostUIHandler, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fRameWindow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResizeBorder(self, prcBorder, pUIWindow, fRameWindow) -proc TranslateAccelerator*(self: ptr IDocHostUIHandler, lpMsg: LPMSG, pguidCmdGroup: ptr GUID, nCmdID: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, lpMsg, pguidCmdGroup, nCmdID) -proc GetOptionKeyPath*(self: ptr IDocHostUIHandler, pchKey: ptr LPOLESTR, dw: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptionKeyPath(self, pchKey, dw) -proc GetDropTarget*(self: ptr IDocHostUIHandler, pDropTarget: ptr IDropTarget, ppDropTarget: ptr ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDropTarget(self, pDropTarget, ppDropTarget) -proc GetExternal*(self: ptr IDocHostUIHandler, ppDispatch: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExternal(self, ppDispatch) -proc TranslateUrl*(self: ptr IDocHostUIHandler, dwTranslate: DWORD, pchURLIn: LPWSTR, ppchURLOut: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateUrl(self, dwTranslate, pchURLIn, ppchURLOut) -proc FilterDataObject*(self: ptr IDocHostUIHandler, pDO: ptr IDataObject, ppDORet: ptr ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FilterDataObject(self, pDO, ppDORet) -proc GetOverrideKeyPath*(self: ptr IDocHostUIHandler2, pchKey: ptr LPOLESTR, dw: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOverrideKeyPath(self, pchKey, dw) -proc SetUIHandler*(self: ptr ICustomDoc, pUIHandler: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetUIHandler(self, pUIHandler) -proc ShowMessage*(self: ptr IDocHostShowUI, hwnd: HWND, lpstrText: LPOLESTR, lpstrCaption: LPOLESTR, dwType: DWORD, lpstrHelpFile: LPOLESTR, dwHelpContext: DWORD, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowMessage(self, hwnd, lpstrText, lpstrCaption, dwType, lpstrHelpFile, dwHelpContext, plResult) -proc ShowHelp*(self: ptr IDocHostShowUI, hwnd: HWND, pszHelpFile: LPOLESTR, uCommand: UINT, dwData: DWORD, ptMouse: POINT, pDispatchObjectHit: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowHelp(self, hwnd, pszHelpFile, uCommand, dwData, ptMouse, pDispatchObjectHit) -proc CreateInstanceWithContext*(self: ptr IClassFactoryEx, punkContext: ptr IUnknown, punkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstanceWithContext(self, punkContext, punkOuter, riid, ppv) -proc moveTo*(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveTo(self, x, y) -proc moveBy*(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.moveBy(self, x, y) -proc resizeTo*(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.resizeTo(self, x, y) -proc resizeBy*(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.resizeBy(self, x, y) -converter winimConverterIDispatchExToIDispatch*(x: ptr IDispatchEx): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDispatchExToIUnknown*(x: ptr IDispatchEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDispErrorToIUnknown*(x: ptr IDispError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIVariantChangeTypeToIUnknown*(x: ptr IVariantChangeType): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectIdentityToIUnknown*(x: ptr IObjectIdentity): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanHandleExceptionToIUnknown*(x: ptr ICanHandleException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProvideRuntimeContextToIUnknown*(x: ptr IProvideRuntimeContext): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFiltersCollectionToIDispatch*(x: ptr IHTMLFiltersCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFiltersCollectionToIUnknown*(x: ptr IHTMLFiltersCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIIE70DispatchExToIDispatchEx*(x: ptr IIE70DispatchEx): ptr IDispatchEx = cast[ptr IDispatchEx](x) -converter winimConverterIIE70DispatchExToIDispatch*(x: ptr IIE70DispatchEx): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIIE70DispatchExToIUnknown*(x: ptr IIE70DispatchEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIIE80DispatchExToIDispatchEx*(x: ptr IIE80DispatchEx): ptr IDispatchEx = cast[ptr IDispatchEx](x) -converter winimConverterIIE80DispatchExToIDispatch*(x: ptr IIE80DispatchEx): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIIE80DispatchExToIUnknown*(x: ptr IIE80DispatchEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMConstructorToIDispatch*(x: ptr IHTMLDOMConstructor): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMConstructorToIUnknown*(x: ptr IHTMLDOMConstructor): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSStyleDeclarationToIDispatch*(x: ptr IHTMLCSSStyleDeclaration): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSStyleDeclarationToIUnknown*(x: ptr IHTMLCSSStyleDeclaration): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSStyleDeclaration2ToIDispatch*(x: ptr IHTMLCSSStyleDeclaration2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSStyleDeclaration2ToIUnknown*(x: ptr IHTMLCSSStyleDeclaration2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleEnabledToIDispatch*(x: ptr IHTMLStyleEnabled): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleEnabledToIUnknown*(x: ptr IHTMLStyleEnabled): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCSSStyleDeclarationToIDispatch*(x: ptr DispHTMLCSSStyleDeclaration): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCSSStyleDeclarationToIUnknown*(x: ptr DispHTMLCSSStyleDeclaration): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleToIDispatch*(x: ptr IHTMLStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleToIUnknown*(x: ptr IHTMLStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyle2ToIDispatch*(x: ptr IHTMLStyle2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyle2ToIUnknown*(x: ptr IHTMLStyle2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyle3ToIDispatch*(x: ptr IHTMLStyle3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyle3ToIUnknown*(x: ptr IHTMLStyle3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyle4ToIDispatch*(x: ptr IHTMLStyle4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyle4ToIUnknown*(x: ptr IHTMLStyle4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyle5ToIDispatch*(x: ptr IHTMLStyle5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyle5ToIUnknown*(x: ptr IHTMLStyle5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyle6ToIDispatch*(x: ptr IHTMLStyle6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyle6ToIUnknown*(x: ptr IHTMLStyle6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRuleStyleToIDispatch*(x: ptr IHTMLRuleStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRuleStyleToIUnknown*(x: ptr IHTMLRuleStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRuleStyle2ToIDispatch*(x: ptr IHTMLRuleStyle2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRuleStyle2ToIUnknown*(x: ptr IHTMLRuleStyle2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRuleStyle3ToIDispatch*(x: ptr IHTMLRuleStyle3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRuleStyle3ToIUnknown*(x: ptr IHTMLRuleStyle3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRuleStyle4ToIDispatch*(x: ptr IHTMLRuleStyle4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRuleStyle4ToIUnknown*(x: ptr IHTMLRuleStyle4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRuleStyle5ToIDispatch*(x: ptr IHTMLRuleStyle5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRuleStyle5ToIUnknown*(x: ptr IHTMLRuleStyle5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRuleStyle6ToIDispatch*(x: ptr IHTMLRuleStyle6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRuleStyle6ToIUnknown*(x: ptr IHTMLRuleStyle6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleToIDispatch*(x: ptr DispHTMLStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleToIUnknown*(x: ptr DispHTMLStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLRuleStyleToIDispatch*(x: ptr DispHTMLRuleStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLRuleStyleToIUnknown*(x: ptr DispHTMLRuleStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSRuleToIDispatch*(x: ptr IHTMLCSSRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSRuleToIUnknown*(x: ptr IHTMLCSSRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSImportRuleToIDispatch*(x: ptr IHTMLCSSImportRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSImportRuleToIUnknown*(x: ptr IHTMLCSSImportRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSMediaRuleToIDispatch*(x: ptr IHTMLCSSMediaRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSMediaRuleToIUnknown*(x: ptr IHTMLCSSMediaRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSMediaListToIDispatch*(x: ptr IHTMLCSSMediaList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSMediaListToIUnknown*(x: ptr IHTMLCSSMediaList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCSSNamespaceRuleToIDispatch*(x: ptr IHTMLCSSNamespaceRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCSSNamespaceRuleToIUnknown*(x: ptr IHTMLCSSNamespaceRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMSCSSKeyframeRuleToIDispatch*(x: ptr IHTMLMSCSSKeyframeRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMSCSSKeyframeRuleToIUnknown*(x: ptr IHTMLMSCSSKeyframeRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMSCSSKeyframesRuleToIDispatch*(x: ptr IHTMLMSCSSKeyframesRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMSCSSKeyframesRuleToIUnknown*(x: ptr IHTMLMSCSSKeyframesRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCSSRuleToIDispatch*(x: ptr DispHTMLCSSRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCSSRuleToIUnknown*(x: ptr DispHTMLCSSRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCSSImportRuleToIDispatch*(x: ptr DispHTMLCSSImportRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCSSImportRuleToIUnknown*(x: ptr DispHTMLCSSImportRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCSSMediaRuleToIDispatch*(x: ptr DispHTMLCSSMediaRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCSSMediaRuleToIUnknown*(x: ptr DispHTMLCSSMediaRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCSSMediaListToIDispatch*(x: ptr DispHTMLCSSMediaList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCSSMediaListToIUnknown*(x: ptr DispHTMLCSSMediaList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCSSNamespaceRuleToIDispatch*(x: ptr DispHTMLCSSNamespaceRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCSSNamespaceRuleToIUnknown*(x: ptr DispHTMLCSSNamespaceRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMSCSSKeyframeRuleToIDispatch*(x: ptr DispHTMLMSCSSKeyframeRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMSCSSKeyframeRuleToIUnknown*(x: ptr DispHTMLMSCSSKeyframeRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMSCSSKeyframesRuleToIDispatch*(x: ptr DispHTMLMSCSSKeyframesRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMSCSSKeyframesRuleToIUnknown*(x: ptr DispHTMLMSCSSKeyframesRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRenderStyleToIDispatch*(x: ptr IHTMLRenderStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRenderStyleToIUnknown*(x: ptr IHTMLRenderStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLRenderStyleToIDispatch*(x: ptr DispHTMLRenderStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLRenderStyleToIUnknown*(x: ptr DispHTMLRenderStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCurrentStyleToIDispatch*(x: ptr IHTMLCurrentStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCurrentStyleToIUnknown*(x: ptr IHTMLCurrentStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCurrentStyle2ToIDispatch*(x: ptr IHTMLCurrentStyle2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCurrentStyle2ToIUnknown*(x: ptr IHTMLCurrentStyle2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCurrentStyle3ToIDispatch*(x: ptr IHTMLCurrentStyle3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCurrentStyle3ToIUnknown*(x: ptr IHTMLCurrentStyle3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCurrentStyle4ToIDispatch*(x: ptr IHTMLCurrentStyle4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCurrentStyle4ToIUnknown*(x: ptr IHTMLCurrentStyle4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCurrentStyle5ToIDispatch*(x: ptr IHTMLCurrentStyle5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCurrentStyle5ToIUnknown*(x: ptr IHTMLCurrentStyle5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCurrentStyleToIDispatch*(x: ptr DispHTMLCurrentStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCurrentStyleToIUnknown*(x: ptr DispHTMLCurrentStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRectToIDispatch*(x: ptr IHTMLRect): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRectToIUnknown*(x: ptr IHTMLRect): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRect2ToIDispatch*(x: ptr IHTMLRect2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRect2ToIUnknown*(x: ptr IHTMLRect2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLRectCollectionToIDispatch*(x: ptr IHTMLRectCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLRectCollectionToIUnknown*(x: ptr IHTMLRectCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMNodeToIDispatch*(x: ptr IHTMLDOMNode): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMNodeToIUnknown*(x: ptr IHTMLDOMNode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMNode2ToIDispatch*(x: ptr IHTMLDOMNode2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMNode2ToIUnknown*(x: ptr IHTMLDOMNode2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMNode3ToIDispatch*(x: ptr IHTMLDOMNode3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMNode3ToIUnknown*(x: ptr IHTMLDOMNode3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMAttributeToIDispatch*(x: ptr IHTMLDOMAttribute): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMAttributeToIUnknown*(x: ptr IHTMLDOMAttribute): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMAttribute2ToIDispatch*(x: ptr IHTMLDOMAttribute2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMAttribute2ToIUnknown*(x: ptr IHTMLDOMAttribute2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMAttribute3ToIDispatch*(x: ptr IHTMLDOMAttribute3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMAttribute3ToIUnknown*(x: ptr IHTMLDOMAttribute3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMAttribute4ToIDispatch*(x: ptr IHTMLDOMAttribute4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMAttribute4ToIUnknown*(x: ptr IHTMLDOMAttribute4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMTextNodeToIDispatch*(x: ptr IHTMLDOMTextNode): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMTextNodeToIUnknown*(x: ptr IHTMLDOMTextNode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMTextNode2ToIDispatch*(x: ptr IHTMLDOMTextNode2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMTextNode2ToIUnknown*(x: ptr IHTMLDOMTextNode2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMTextNode3ToIDispatch*(x: ptr IHTMLDOMTextNode3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMTextNode3ToIUnknown*(x: ptr IHTMLDOMTextNode3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMImplementationToIDispatch*(x: ptr IHTMLDOMImplementation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMImplementationToIUnknown*(x: ptr IHTMLDOMImplementation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMImplementation2ToIDispatch*(x: ptr IHTMLDOMImplementation2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMImplementation2ToIUnknown*(x: ptr IHTMLDOMImplementation2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDOMAttributeToIDispatch*(x: ptr DispHTMLDOMAttribute): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDOMAttributeToIUnknown*(x: ptr DispHTMLDOMAttribute): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDOMTextNodeToIDispatch*(x: ptr DispHTMLDOMTextNode): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDOMTextNodeToIUnknown*(x: ptr DispHTMLDOMTextNode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDOMImplementationToIDispatch*(x: ptr DispHTMLDOMImplementation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDOMImplementationToIUnknown*(x: ptr DispHTMLDOMImplementation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAttributeCollectionToIDispatch*(x: ptr IHTMLAttributeCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAttributeCollectionToIUnknown*(x: ptr IHTMLAttributeCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAttributeCollection2ToIDispatch*(x: ptr IHTMLAttributeCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAttributeCollection2ToIUnknown*(x: ptr IHTMLAttributeCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAttributeCollection3ToIDispatch*(x: ptr IHTMLAttributeCollection3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAttributeCollection3ToIUnknown*(x: ptr IHTMLAttributeCollection3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAttributeCollection4ToIDispatch*(x: ptr IHTMLAttributeCollection4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAttributeCollection4ToIUnknown*(x: ptr IHTMLAttributeCollection4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMChildrenCollectionToIDispatch*(x: ptr IHTMLDOMChildrenCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMChildrenCollectionToIUnknown*(x: ptr IHTMLDOMChildrenCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMChildrenCollection2ToIDispatch*(x: ptr IHTMLDOMChildrenCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMChildrenCollection2ToIUnknown*(x: ptr IHTMLDOMChildrenCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLAttributeCollectionToIDispatch*(x: ptr DispHTMLAttributeCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLAttributeCollectionToIUnknown*(x: ptr DispHTMLAttributeCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispStaticNodeListToIDispatch*(x: ptr DispStaticNodeList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispStaticNodeListToIUnknown*(x: ptr DispStaticNodeList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMChildrenCollectionToIDispatch*(x: ptr DispDOMChildrenCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMChildrenCollectionToIUnknown*(x: ptr DispDOMChildrenCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLElementEvents4ToIDispatch*(x: ptr HTMLElementEvents4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLElementEvents4ToIUnknown*(x: ptr HTMLElementEvents4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLElementEvents3ToIDispatch*(x: ptr HTMLElementEvents3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLElementEvents3ToIUnknown*(x: ptr HTMLElementEvents3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLElementEvents2ToIDispatch*(x: ptr HTMLElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLElementEvents2ToIUnknown*(x: ptr HTMLElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLElementEventsToIDispatch*(x: ptr HTMLElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLElementEventsToIUnknown*(x: ptr HTMLElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementToIDispatch*(x: ptr IHTMLElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementToIUnknown*(x: ptr IHTMLElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElement2ToIDispatch*(x: ptr IHTMLElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElement2ToIUnknown*(x: ptr IHTMLElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElement3ToIDispatch*(x: ptr IHTMLElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElement3ToIUnknown*(x: ptr IHTMLElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElement4ToIDispatch*(x: ptr IHTMLElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElement4ToIUnknown*(x: ptr IHTMLElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementSelectorToIDispatch*(x: ptr IElementSelector): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIElementSelectorToIUnknown*(x: ptr IElementSelector): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementRenderToIUnknown*(x: ptr IHTMLElementRender): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLUniqueNameToIDispatch*(x: ptr IHTMLUniqueName): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLUniqueNameToIUnknown*(x: ptr IHTMLUniqueName): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElement5ToIDispatch*(x: ptr IHTMLElement5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElement5ToIUnknown*(x: ptr IHTMLElement5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElement6ToIDispatch*(x: ptr IHTMLElement6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElement6ToIUnknown*(x: ptr IHTMLElement6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElement7ToIDispatch*(x: ptr IHTMLElement7): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElement7ToIUnknown*(x: ptr IHTMLElement7): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementAppliedStylesToIDispatch*(x: ptr IHTMLElementAppliedStyles): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementAppliedStylesToIUnknown*(x: ptr IHTMLElementAppliedStyles): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementTraversalToIDispatch*(x: ptr IElementTraversal): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIElementTraversalToIUnknown*(x: ptr IElementTraversal): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDatabindingToIDispatch*(x: ptr IHTMLDatabinding): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDatabindingToIUnknown*(x: ptr IHTMLDatabinding): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementDefaultsToIDispatch*(x: ptr IHTMLElementDefaults): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementDefaultsToIUnknown*(x: ptr IHTMLElementDefaults): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDefaultsToIDispatch*(x: ptr DispHTMLDefaults): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDefaultsToIUnknown*(x: ptr DispHTMLDefaults): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCDefaultDispatchToIDispatch*(x: ptr IHTCDefaultDispatch): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCDefaultDispatchToIUnknown*(x: ptr IHTCDefaultDispatch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCPropertyBehaviorToIDispatch*(x: ptr IHTCPropertyBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCPropertyBehaviorToIUnknown*(x: ptr IHTCPropertyBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCMethodBehaviorToIDispatch*(x: ptr IHTCMethodBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCMethodBehaviorToIUnknown*(x: ptr IHTCMethodBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCEventBehaviorToIDispatch*(x: ptr IHTCEventBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCEventBehaviorToIUnknown*(x: ptr IHTCEventBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCAttachBehaviorToIDispatch*(x: ptr IHTCAttachBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCAttachBehaviorToIUnknown*(x: ptr IHTCAttachBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCAttachBehavior2ToIDispatch*(x: ptr IHTCAttachBehavior2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCAttachBehavior2ToIUnknown*(x: ptr IHTCAttachBehavior2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTCDescBehaviorToIDispatch*(x: ptr IHTCDescBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTCDescBehaviorToIUnknown*(x: ptr IHTCDescBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTCDefaultDispatchToIDispatch*(x: ptr DispHTCDefaultDispatch): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTCDefaultDispatchToIUnknown*(x: ptr DispHTCDefaultDispatch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTCPropertyBehaviorToIDispatch*(x: ptr DispHTCPropertyBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTCPropertyBehaviorToIUnknown*(x: ptr DispHTCPropertyBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTCMethodBehaviorToIDispatch*(x: ptr DispHTCMethodBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTCMethodBehaviorToIUnknown*(x: ptr DispHTCMethodBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTCEventBehaviorToIDispatch*(x: ptr DispHTCEventBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTCEventBehaviorToIUnknown*(x: ptr DispHTCEventBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTCAttachBehaviorToIDispatch*(x: ptr DispHTCAttachBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTCAttachBehaviorToIUnknown*(x: ptr DispHTCAttachBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTCDescBehaviorToIDispatch*(x: ptr DispHTCDescBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTCDescBehaviorToIUnknown*(x: ptr DispHTCDescBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLUrnCollectionToIDispatch*(x: ptr IHTMLUrnCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLUrnCollectionToIUnknown*(x: ptr IHTMLUrnCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLUrnCollectionToIDispatch*(x: ptr DispHTMLUrnCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLUrnCollectionToIUnknown*(x: ptr DispHTMLUrnCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLGenericElementToIDispatch*(x: ptr IHTMLGenericElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLGenericElementToIUnknown*(x: ptr IHTMLGenericElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLGenericElementToIDispatch*(x: ptr DispHTMLGenericElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLGenericElementToIUnknown*(x: ptr DispHTMLGenericElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetRuleToIDispatch*(x: ptr IHTMLStyleSheetRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetRuleToIUnknown*(x: ptr IHTMLStyleSheetRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetRuleAppliedToIDispatch*(x: ptr IHTMLStyleSheetRuleApplied): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetRuleAppliedToIUnknown*(x: ptr IHTMLStyleSheetRuleApplied): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetRule2ToIDispatch*(x: ptr IHTMLStyleSheetRule2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetRule2ToIUnknown*(x: ptr IHTMLStyleSheetRule2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetRulesCollectionToIDispatch*(x: ptr IHTMLStyleSheetRulesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetRulesCollectionToIUnknown*(x: ptr IHTMLStyleSheetRulesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetRulesCollection2ToIDispatch*(x: ptr IHTMLStyleSheetRulesCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetRulesCollection2ToIUnknown*(x: ptr IHTMLStyleSheetRulesCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetRuleToIDispatch*(x: ptr DispHTMLStyleSheetRule): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetRuleToIUnknown*(x: ptr DispHTMLStyleSheetRule): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetRulesCollectionToIDispatch*(x: ptr DispHTMLStyleSheetRulesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetRulesCollectionToIUnknown*(x: ptr DispHTMLStyleSheetRulesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetPageToIDispatch*(x: ptr IHTMLStyleSheetPage): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetPageToIUnknown*(x: ptr IHTMLStyleSheetPage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetPage2ToIDispatch*(x: ptr IHTMLStyleSheetPage2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetPage2ToIUnknown*(x: ptr IHTMLStyleSheetPage2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetPagesCollectionToIDispatch*(x: ptr IHTMLStyleSheetPagesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetPagesCollectionToIUnknown*(x: ptr IHTMLStyleSheetPagesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetPageToIDispatch*(x: ptr DispHTMLStyleSheetPage): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetPageToIUnknown*(x: ptr DispHTMLStyleSheetPage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetPagesCollectionToIDispatch*(x: ptr DispHTMLStyleSheetPagesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetPagesCollectionToIUnknown*(x: ptr DispHTMLStyleSheetPagesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetToIDispatch*(x: ptr IHTMLStyleSheet): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetToIUnknown*(x: ptr IHTMLStyleSheet): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheet2ToIDispatch*(x: ptr IHTMLStyleSheet2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheet2ToIUnknown*(x: ptr IHTMLStyleSheet2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheet3ToIDispatch*(x: ptr IHTMLStyleSheet3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheet3ToIUnknown*(x: ptr IHTMLStyleSheet3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheet4ToIDispatch*(x: ptr IHTMLStyleSheet4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheet4ToIUnknown*(x: ptr IHTMLStyleSheet4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetToIDispatch*(x: ptr DispHTMLStyleSheet): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetToIUnknown*(x: ptr DispHTMLStyleSheet): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetsCollectionToIDispatch*(x: ptr IHTMLStyleSheetsCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetsCollectionToIUnknown*(x: ptr IHTMLStyleSheetsCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetsCollection2ToIDispatch*(x: ptr IHTMLStyleSheetsCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetsCollection2ToIUnknown*(x: ptr IHTMLStyleSheetsCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetsCollectionToIDispatch*(x: ptr DispHTMLStyleSheetsCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetsCollectionToIUnknown*(x: ptr DispHTMLStyleSheetsCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLLinkElementEvents2ToIDispatch*(x: ptr HTMLLinkElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLLinkElementEvents2ToIUnknown*(x: ptr HTMLLinkElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLLinkElementEventsToIDispatch*(x: ptr HTMLLinkElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLLinkElementEventsToIUnknown*(x: ptr HTMLLinkElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLinkElementToIDispatch*(x: ptr IHTMLLinkElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLinkElementToIUnknown*(x: ptr IHTMLLinkElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLinkElement2ToIDispatch*(x: ptr IHTMLLinkElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLinkElement2ToIUnknown*(x: ptr IHTMLLinkElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLinkElement3ToIDispatch*(x: ptr IHTMLLinkElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLinkElement3ToIUnknown*(x: ptr IHTMLLinkElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLinkElement4ToIDispatch*(x: ptr IHTMLLinkElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLinkElement4ToIUnknown*(x: ptr IHTMLLinkElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLinkElement5ToIDispatch*(x: ptr IHTMLLinkElement5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLinkElement5ToIUnknown*(x: ptr IHTMLLinkElement5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLLinkElementToIDispatch*(x: ptr DispHTMLLinkElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLLinkElementToIUnknown*(x: ptr DispHTMLLinkElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTxtRangeToIDispatch*(x: ptr IHTMLTxtRange): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTxtRangeToIUnknown*(x: ptr IHTMLTxtRange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTextRangeMetricsToIDispatch*(x: ptr IHTMLTextRangeMetrics): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTextRangeMetricsToIUnknown*(x: ptr IHTMLTextRangeMetrics): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTextRangeMetrics2ToIDispatch*(x: ptr IHTMLTextRangeMetrics2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTextRangeMetrics2ToIUnknown*(x: ptr IHTMLTextRangeMetrics2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTxtRangeCollectionToIDispatch*(x: ptr IHTMLTxtRangeCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTxtRangeCollectionToIUnknown*(x: ptr IHTMLTxtRangeCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMRangeToIDispatch*(x: ptr IHTMLDOMRange): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMRangeToIUnknown*(x: ptr IHTMLDOMRange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDOMRangeToIDispatch*(x: ptr DispHTMLDOMRange): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDOMRangeToIUnknown*(x: ptr DispHTMLDOMRange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLFormElementEvents2ToIDispatch*(x: ptr HTMLFormElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLFormElementEvents2ToIUnknown*(x: ptr HTMLFormElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLFormElementEventsToIDispatch*(x: ptr HTMLFormElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLFormElementEventsToIUnknown*(x: ptr HTMLFormElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFormElementToIDispatch*(x: ptr IHTMLFormElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFormElementToIUnknown*(x: ptr IHTMLFormElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFormElement2ToIDispatch*(x: ptr IHTMLFormElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFormElement2ToIUnknown*(x: ptr IHTMLFormElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFormElement3ToIDispatch*(x: ptr IHTMLFormElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFormElement3ToIUnknown*(x: ptr IHTMLFormElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSubmitDataToIDispatch*(x: ptr IHTMLSubmitData): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSubmitDataToIUnknown*(x: ptr IHTMLSubmitData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFormElement4ToIDispatch*(x: ptr IHTMLFormElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFormElement4ToIUnknown*(x: ptr IHTMLFormElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLFormElementToIDispatch*(x: ptr DispHTMLFormElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLFormElementToIUnknown*(x: ptr DispHTMLFormElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLControlElementEvents2ToIDispatch*(x: ptr HTMLControlElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLControlElementEvents2ToIUnknown*(x: ptr HTMLControlElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLControlElementEventsToIDispatch*(x: ptr HTMLControlElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLControlElementEventsToIUnknown*(x: ptr HTMLControlElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLControlElementToIDispatch*(x: ptr IHTMLControlElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLControlElementToIUnknown*(x: ptr IHTMLControlElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTextElementToIDispatch*(x: ptr IHTMLTextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTextElementToIUnknown*(x: ptr IHTMLTextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTextElementToIDispatch*(x: ptr DispHTMLTextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTextElementToIUnknown*(x: ptr DispHTMLTextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLTextContainerEvents2ToIDispatch*(x: ptr HTMLTextContainerEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLTextContainerEvents2ToIUnknown*(x: ptr HTMLTextContainerEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLTextContainerEventsToIDispatch*(x: ptr HTMLTextContainerEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLTextContainerEventsToIUnknown*(x: ptr HTMLTextContainerEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTextContainerToIDispatch*(x: ptr IHTMLTextContainer): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTextContainerToIUnknown*(x: ptr IHTMLTextContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLControlRangeToIDispatch*(x: ptr IHTMLControlRange): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLControlRangeToIUnknown*(x: ptr IHTMLControlRange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLControlRange2ToIDispatch*(x: ptr IHTMLControlRange2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLControlRange2ToIUnknown*(x: ptr IHTMLControlRange2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLImgEvents2ToIDispatch*(x: ptr HTMLImgEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLImgEvents2ToIUnknown*(x: ptr HTMLImgEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLImgEventsToIDispatch*(x: ptr HTMLImgEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLImgEventsToIUnknown*(x: ptr HTMLImgEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLImgElementToIDispatch*(x: ptr IHTMLImgElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLImgElementToIUnknown*(x: ptr IHTMLImgElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLImgElement2ToIDispatch*(x: ptr IHTMLImgElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLImgElement2ToIUnknown*(x: ptr IHTMLImgElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLImgElement3ToIDispatch*(x: ptr IHTMLImgElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLImgElement3ToIUnknown*(x: ptr IHTMLImgElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLImgElement4ToIDispatch*(x: ptr IHTMLImgElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLImgElement4ToIUnknown*(x: ptr IHTMLImgElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMSImgElementToIDispatch*(x: ptr IHTMLMSImgElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMSImgElementToIUnknown*(x: ptr IHTMLMSImgElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLImageElementFactoryToIDispatch*(x: ptr IHTMLImageElementFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLImageElementFactoryToIUnknown*(x: ptr IHTMLImageElementFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLImgToIDispatch*(x: ptr DispHTMLImg): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLImgToIUnknown*(x: ptr DispHTMLImg): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBodyElementToIDispatch*(x: ptr IHTMLBodyElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBodyElementToIUnknown*(x: ptr IHTMLBodyElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBodyElement2ToIDispatch*(x: ptr IHTMLBodyElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBodyElement2ToIUnknown*(x: ptr IHTMLBodyElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBodyElement3ToIDispatch*(x: ptr IHTMLBodyElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBodyElement3ToIUnknown*(x: ptr IHTMLBodyElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBodyElement4ToIDispatch*(x: ptr IHTMLBodyElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBodyElement4ToIUnknown*(x: ptr IHTMLBodyElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBodyElement5ToIDispatch*(x: ptr IHTMLBodyElement5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBodyElement5ToIUnknown*(x: ptr IHTMLBodyElement5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLBodyToIDispatch*(x: ptr DispHTMLBody): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLBodyToIUnknown*(x: ptr DispHTMLBody): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFontElementToIDispatch*(x: ptr IHTMLFontElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFontElementToIUnknown*(x: ptr IHTMLFontElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLFontElementToIDispatch*(x: ptr DispHTMLFontElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLFontElementToIUnknown*(x: ptr DispHTMLFontElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLAnchorEvents2ToIDispatch*(x: ptr HTMLAnchorEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLAnchorEvents2ToIUnknown*(x: ptr HTMLAnchorEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLAnchorEventsToIDispatch*(x: ptr HTMLAnchorEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLAnchorEventsToIUnknown*(x: ptr HTMLAnchorEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAnchorElementToIDispatch*(x: ptr IHTMLAnchorElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAnchorElementToIUnknown*(x: ptr IHTMLAnchorElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAnchorElement2ToIDispatch*(x: ptr IHTMLAnchorElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAnchorElement2ToIUnknown*(x: ptr IHTMLAnchorElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAnchorElement3ToIDispatch*(x: ptr IHTMLAnchorElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAnchorElement3ToIUnknown*(x: ptr IHTMLAnchorElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLAnchorElementToIDispatch*(x: ptr DispHTMLAnchorElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLAnchorElementToIUnknown*(x: ptr DispHTMLAnchorElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLLabelEvents2ToIDispatch*(x: ptr HTMLLabelEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLLabelEvents2ToIUnknown*(x: ptr HTMLLabelEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLLabelEventsToIDispatch*(x: ptr HTMLLabelEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLLabelEventsToIUnknown*(x: ptr HTMLLabelEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLabelElementToIDispatch*(x: ptr IHTMLLabelElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLabelElementToIUnknown*(x: ptr IHTMLLabelElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLabelElement2ToIDispatch*(x: ptr IHTMLLabelElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLabelElement2ToIUnknown*(x: ptr IHTMLLabelElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLLabelElementToIDispatch*(x: ptr DispHTMLLabelElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLLabelElementToIUnknown*(x: ptr DispHTMLLabelElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLListElementToIDispatch*(x: ptr IHTMLListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLListElementToIUnknown*(x: ptr IHTMLListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLListElement2ToIDispatch*(x: ptr IHTMLListElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLListElement2ToIUnknown*(x: ptr IHTMLListElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLListElementToIDispatch*(x: ptr DispHTMLListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLListElementToIUnknown*(x: ptr DispHTMLListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLUListElementToIDispatch*(x: ptr IHTMLUListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLUListElementToIUnknown*(x: ptr IHTMLUListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLUListElementToIDispatch*(x: ptr DispHTMLUListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLUListElementToIUnknown*(x: ptr DispHTMLUListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOListElementToIDispatch*(x: ptr IHTMLOListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOListElementToIUnknown*(x: ptr IHTMLOListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLOListElementToIDispatch*(x: ptr DispHTMLOListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLOListElementToIUnknown*(x: ptr DispHTMLOListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLIElementToIDispatch*(x: ptr IHTMLLIElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLIElementToIUnknown*(x: ptr IHTMLLIElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLLIElementToIDispatch*(x: ptr DispHTMLLIElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLLIElementToIUnknown*(x: ptr DispHTMLLIElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBlockElementToIDispatch*(x: ptr IHTMLBlockElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBlockElementToIUnknown*(x: ptr IHTMLBlockElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBlockElement2ToIDispatch*(x: ptr IHTMLBlockElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBlockElement2ToIUnknown*(x: ptr IHTMLBlockElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBlockElement3ToIDispatch*(x: ptr IHTMLBlockElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBlockElement3ToIUnknown*(x: ptr IHTMLBlockElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLBlockElementToIDispatch*(x: ptr DispHTMLBlockElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLBlockElementToIUnknown*(x: ptr DispHTMLBlockElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDivElementToIDispatch*(x: ptr IHTMLDivElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDivElementToIUnknown*(x: ptr IHTMLDivElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDivElementToIDispatch*(x: ptr DispHTMLDivElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDivElementToIUnknown*(x: ptr DispHTMLDivElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDDElementToIDispatch*(x: ptr IHTMLDDElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDDElementToIUnknown*(x: ptr IHTMLDDElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDDElementToIDispatch*(x: ptr DispHTMLDDElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDDElementToIUnknown*(x: ptr DispHTMLDDElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDTElementToIDispatch*(x: ptr IHTMLDTElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDTElementToIUnknown*(x: ptr IHTMLDTElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDTElementToIDispatch*(x: ptr DispHTMLDTElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDTElementToIUnknown*(x: ptr DispHTMLDTElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBRElementToIDispatch*(x: ptr IHTMLBRElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBRElementToIUnknown*(x: ptr IHTMLBRElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLBRElementToIDispatch*(x: ptr DispHTMLBRElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLBRElementToIUnknown*(x: ptr DispHTMLBRElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDListElementToIDispatch*(x: ptr IHTMLDListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDListElementToIUnknown*(x: ptr IHTMLDListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDListElementToIDispatch*(x: ptr DispHTMLDListElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDListElementToIUnknown*(x: ptr DispHTMLDListElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLHRElementToIDispatch*(x: ptr IHTMLHRElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLHRElementToIUnknown*(x: ptr IHTMLHRElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLHRElementToIDispatch*(x: ptr DispHTMLHRElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLHRElementToIUnknown*(x: ptr DispHTMLHRElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLParaElementToIDispatch*(x: ptr IHTMLParaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLParaElementToIUnknown*(x: ptr IHTMLParaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLParaElementToIDispatch*(x: ptr DispHTMLParaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLParaElementToIUnknown*(x: ptr DispHTMLParaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementCollectionToIDispatch*(x: ptr IHTMLElementCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementCollectionToIUnknown*(x: ptr IHTMLElementCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementCollection2ToIDispatch*(x: ptr IHTMLElementCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementCollection2ToIUnknown*(x: ptr IHTMLElementCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementCollection3ToIDispatch*(x: ptr IHTMLElementCollection3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementCollection3ToIUnknown*(x: ptr IHTMLElementCollection3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLElementCollection4ToIDispatch*(x: ptr IHTMLElementCollection4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLElementCollection4ToIUnknown*(x: ptr IHTMLElementCollection4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLElementCollectionToIDispatch*(x: ptr DispHTMLElementCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLElementCollectionToIUnknown*(x: ptr DispHTMLElementCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLHeaderElementToIDispatch*(x: ptr IHTMLHeaderElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLHeaderElementToIUnknown*(x: ptr IHTMLHeaderElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLHeaderElementToIDispatch*(x: ptr DispHTMLHeaderElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLHeaderElementToIUnknown*(x: ptr DispHTMLHeaderElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLSelectElementEvents2ToIDispatch*(x: ptr HTMLSelectElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLSelectElementEvents2ToIUnknown*(x: ptr HTMLSelectElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLSelectElementEventsToIDispatch*(x: ptr HTMLSelectElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLSelectElementEventsToIUnknown*(x: ptr HTMLSelectElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectElementExToIUnknown*(x: ptr IHTMLSelectElementEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectElementToIDispatch*(x: ptr IHTMLSelectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectElementToIUnknown*(x: ptr IHTMLSelectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectElement2ToIDispatch*(x: ptr IHTMLSelectElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectElement2ToIUnknown*(x: ptr IHTMLSelectElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectElement4ToIDispatch*(x: ptr IHTMLSelectElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectElement4ToIUnknown*(x: ptr IHTMLSelectElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectElement5ToIDispatch*(x: ptr IHTMLSelectElement5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectElement5ToIUnknown*(x: ptr IHTMLSelectElement5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectElement6ToIDispatch*(x: ptr IHTMLSelectElement6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectElement6ToIUnknown*(x: ptr IHTMLSelectElement6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLSelectElementToIDispatch*(x: ptr DispHTMLSelectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLSelectElementToIUnknown*(x: ptr DispHTMLSelectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLWndSelectElementToIDispatch*(x: ptr DispHTMLWndSelectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLWndSelectElementToIUnknown*(x: ptr DispHTMLWndSelectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectionObjectToIDispatch*(x: ptr IHTMLSelectionObject): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectionObjectToIUnknown*(x: ptr IHTMLSelectionObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectionObject2ToIDispatch*(x: ptr IHTMLSelectionObject2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectionObject2ToIUnknown*(x: ptr IHTMLSelectionObject2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSelectionToIDispatch*(x: ptr IHTMLSelection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSelectionToIUnknown*(x: ptr IHTMLSelection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOptionElementToIDispatch*(x: ptr IHTMLOptionElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOptionElementToIUnknown*(x: ptr IHTMLOptionElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOptionElement3ToIDispatch*(x: ptr IHTMLOptionElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOptionElement3ToIUnknown*(x: ptr IHTMLOptionElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOptionElement4ToIDispatch*(x: ptr IHTMLOptionElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOptionElement4ToIUnknown*(x: ptr IHTMLOptionElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOptionElementFactoryToIDispatch*(x: ptr IHTMLOptionElementFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOptionElementFactoryToIUnknown*(x: ptr IHTMLOptionElementFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLOptionElementToIDispatch*(x: ptr DispHTMLOptionElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLOptionElementToIUnknown*(x: ptr DispHTMLOptionElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLWndOptionElementToIDispatch*(x: ptr DispHTMLWndOptionElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLWndOptionElementToIUnknown*(x: ptr DispHTMLWndOptionElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLButtonElementEvents2ToIDispatch*(x: ptr HTMLButtonElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLButtonElementEvents2ToIUnknown*(x: ptr HTMLButtonElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLButtonElementEventsToIDispatch*(x: ptr HTMLButtonElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLButtonElementEventsToIUnknown*(x: ptr HTMLButtonElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLInputTextElementEvents2ToIDispatch*(x: ptr HTMLInputTextElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLInputTextElementEvents2ToIUnknown*(x: ptr HTMLInputTextElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLOptionButtonElementEvents2ToIDispatch*(x: ptr HTMLOptionButtonElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLOptionButtonElementEvents2ToIUnknown*(x: ptr HTMLOptionButtonElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLInputFileElementEvents2ToIDispatch*(x: ptr HTMLInputFileElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLInputFileElementEvents2ToIUnknown*(x: ptr HTMLInputFileElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLInputImageEvents2ToIDispatch*(x: ptr HTMLInputImageEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLInputImageEvents2ToIUnknown*(x: ptr HTMLInputImageEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLInputTextElementEventsToIDispatch*(x: ptr HTMLInputTextElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLInputTextElementEventsToIUnknown*(x: ptr HTMLInputTextElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLOptionButtonElementEventsToIDispatch*(x: ptr HTMLOptionButtonElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLOptionButtonElementEventsToIUnknown*(x: ptr HTMLOptionButtonElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLInputFileElementEventsToIDispatch*(x: ptr HTMLInputFileElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLInputFileElementEventsToIUnknown*(x: ptr HTMLInputFileElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLInputImageEventsToIDispatch*(x: ptr HTMLInputImageEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLInputImageEventsToIUnknown*(x: ptr HTMLInputImageEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputElementToIDispatch*(x: ptr IHTMLInputElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputElementToIUnknown*(x: ptr IHTMLInputElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputElement2ToIDispatch*(x: ptr IHTMLInputElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputElement2ToIUnknown*(x: ptr IHTMLInputElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputElement3ToIDispatch*(x: ptr IHTMLInputElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputElement3ToIUnknown*(x: ptr IHTMLInputElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputButtonElementToIDispatch*(x: ptr IHTMLInputButtonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputButtonElementToIUnknown*(x: ptr IHTMLInputButtonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputHiddenElementToIDispatch*(x: ptr IHTMLInputHiddenElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputHiddenElementToIUnknown*(x: ptr IHTMLInputHiddenElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputTextElementToIDispatch*(x: ptr IHTMLInputTextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputTextElementToIUnknown*(x: ptr IHTMLInputTextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputTextElement2ToIDispatch*(x: ptr IHTMLInputTextElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputTextElement2ToIUnknown*(x: ptr IHTMLInputTextElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputFileElementToIDispatch*(x: ptr IHTMLInputFileElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputFileElementToIUnknown*(x: ptr IHTMLInputFileElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOptionButtonElementToIDispatch*(x: ptr IHTMLOptionButtonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOptionButtonElementToIUnknown*(x: ptr IHTMLOptionButtonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputImageToIDispatch*(x: ptr IHTMLInputImage): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputImageToIUnknown*(x: ptr IHTMLInputImage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLInputRangeElementToIDispatch*(x: ptr IHTMLInputRangeElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLInputRangeElementToIUnknown*(x: ptr IHTMLInputRangeElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLInputElementToIDispatch*(x: ptr DispHTMLInputElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLInputElementToIUnknown*(x: ptr DispHTMLInputElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTextAreaElementToIDispatch*(x: ptr IHTMLTextAreaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTextAreaElementToIUnknown*(x: ptr IHTMLTextAreaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTextAreaElement2ToIDispatch*(x: ptr IHTMLTextAreaElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTextAreaElement2ToIUnknown*(x: ptr IHTMLTextAreaElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTextAreaElementToIDispatch*(x: ptr DispHTMLTextAreaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTextAreaElementToIUnknown*(x: ptr DispHTMLTextAreaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLRichtextElementToIDispatch*(x: ptr DispHTMLRichtextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLRichtextElementToIUnknown*(x: ptr DispHTMLRichtextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLButtonElementToIDispatch*(x: ptr IHTMLButtonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLButtonElementToIUnknown*(x: ptr IHTMLButtonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLButtonElement2ToIDispatch*(x: ptr IHTMLButtonElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLButtonElement2ToIUnknown*(x: ptr IHTMLButtonElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLButtonElementToIDispatch*(x: ptr DispHTMLButtonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLButtonElementToIUnknown*(x: ptr DispHTMLButtonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLMarqueeElementEvents2ToIDispatch*(x: ptr HTMLMarqueeElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLMarqueeElementEvents2ToIUnknown*(x: ptr HTMLMarqueeElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLMarqueeElementEventsToIDispatch*(x: ptr HTMLMarqueeElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLMarqueeElementEventsToIUnknown*(x: ptr HTMLMarqueeElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMarqueeElementToIDispatch*(x: ptr IHTMLMarqueeElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMarqueeElementToIUnknown*(x: ptr IHTMLMarqueeElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMarqueeElementToIDispatch*(x: ptr DispHTMLMarqueeElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMarqueeElementToIUnknown*(x: ptr DispHTMLMarqueeElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLHtmlElementToIDispatch*(x: ptr IHTMLHtmlElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLHtmlElementToIUnknown*(x: ptr IHTMLHtmlElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLHeadElementToIDispatch*(x: ptr IHTMLHeadElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLHeadElementToIUnknown*(x: ptr IHTMLHeadElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLHeadElement2ToIDispatch*(x: ptr IHTMLHeadElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLHeadElement2ToIUnknown*(x: ptr IHTMLHeadElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTitleElementToIDispatch*(x: ptr IHTMLTitleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTitleElementToIUnknown*(x: ptr IHTMLTitleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMetaElementToIDispatch*(x: ptr IHTMLMetaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMetaElementToIUnknown*(x: ptr IHTMLMetaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMetaElement2ToIDispatch*(x: ptr IHTMLMetaElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMetaElement2ToIUnknown*(x: ptr IHTMLMetaElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMetaElement3ToIDispatch*(x: ptr IHTMLMetaElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMetaElement3ToIUnknown*(x: ptr IHTMLMetaElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBaseElementToIDispatch*(x: ptr IHTMLBaseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBaseElementToIUnknown*(x: ptr IHTMLBaseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBaseElement2ToIDispatch*(x: ptr IHTMLBaseElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBaseElement2ToIUnknown*(x: ptr IHTMLBaseElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLIsIndexElementToIDispatch*(x: ptr IHTMLIsIndexElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLIsIndexElementToIUnknown*(x: ptr IHTMLIsIndexElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLIsIndexElement2ToIDispatch*(x: ptr IHTMLIsIndexElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLIsIndexElement2ToIUnknown*(x: ptr IHTMLIsIndexElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLNextIdElementToIDispatch*(x: ptr IHTMLNextIdElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLNextIdElementToIUnknown*(x: ptr IHTMLNextIdElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLHtmlElementToIDispatch*(x: ptr DispHTMLHtmlElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLHtmlElementToIUnknown*(x: ptr DispHTMLHtmlElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLHeadElementToIDispatch*(x: ptr DispHTMLHeadElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLHeadElementToIUnknown*(x: ptr DispHTMLHeadElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTitleElementToIDispatch*(x: ptr DispHTMLTitleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTitleElementToIUnknown*(x: ptr DispHTMLTitleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMetaElementToIDispatch*(x: ptr DispHTMLMetaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMetaElementToIUnknown*(x: ptr DispHTMLMetaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLBaseElementToIDispatch*(x: ptr DispHTMLBaseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLBaseElementToIUnknown*(x: ptr DispHTMLBaseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLIsIndexElementToIDispatch*(x: ptr DispHTMLIsIndexElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLIsIndexElementToIUnknown*(x: ptr DispHTMLIsIndexElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLNextIdElementToIDispatch*(x: ptr DispHTMLNextIdElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLNextIdElementToIUnknown*(x: ptr DispHTMLNextIdElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBaseFontElementToIDispatch*(x: ptr IHTMLBaseFontElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBaseFontElementToIUnknown*(x: ptr IHTMLBaseFontElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLBaseFontElementToIDispatch*(x: ptr DispHTMLBaseFontElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLBaseFontElementToIUnknown*(x: ptr DispHTMLBaseFontElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLUnknownElementToIDispatch*(x: ptr IHTMLUnknownElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLUnknownElementToIUnknown*(x: ptr IHTMLUnknownElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLUnknownElementToIDispatch*(x: ptr DispHTMLUnknownElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLUnknownElementToIUnknown*(x: ptr DispHTMLUnknownElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOmHistoryToIDispatch*(x: ptr IOmHistory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIOmHistoryToIUnknown*(x: ptr IOmHistory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMimeTypesCollectionToIDispatch*(x: ptr IHTMLMimeTypesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMimeTypesCollectionToIUnknown*(x: ptr IHTMLMimeTypesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPluginsCollectionToIDispatch*(x: ptr IHTMLPluginsCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPluginsCollectionToIUnknown*(x: ptr IHTMLPluginsCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOpsProfileToIDispatch*(x: ptr IHTMLOpsProfile): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOpsProfileToIUnknown*(x: ptr IHTMLOpsProfile): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOmNavigatorToIDispatch*(x: ptr IOmNavigator): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIOmNavigatorToIUnknown*(x: ptr IOmNavigator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINavigatorGeolocationToIDispatch*(x: ptr INavigatorGeolocation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterINavigatorGeolocationToIUnknown*(x: ptr INavigatorGeolocation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINavigatorDoNotTrackToIDispatch*(x: ptr INavigatorDoNotTrack): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterINavigatorDoNotTrackToIUnknown*(x: ptr INavigatorDoNotTrack): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLocationToIDispatch*(x: ptr IHTMLLocation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLocationToIUnknown*(x: ptr IHTMLLocation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLHistoryToIDispatch*(x: ptr DispHTMLHistory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLHistoryToIUnknown*(x: ptr DispHTMLHistory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCPluginsToIDispatch*(x: ptr DispCPlugins): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCPluginsToIUnknown*(x: ptr DispCPlugins): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLNavigatorToIDispatch*(x: ptr DispHTMLNavigator): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLNavigatorToIUnknown*(x: ptr DispHTMLNavigator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLLocationToIDispatch*(x: ptr DispHTMLLocation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLLocationToIUnknown*(x: ptr DispHTMLLocation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBookmarkCollectionToIDispatch*(x: ptr IHTMLBookmarkCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBookmarkCollectionToIUnknown*(x: ptr IHTMLBookmarkCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDataTransferToIDispatch*(x: ptr IHTMLDataTransfer): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDataTransferToIUnknown*(x: ptr IHTMLDataTransfer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEventObjToIDispatch*(x: ptr IHTMLEventObj): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEventObjToIUnknown*(x: ptr IHTMLEventObj): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEventObj2ToIDispatch*(x: ptr IHTMLEventObj2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEventObj2ToIUnknown*(x: ptr IHTMLEventObj2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEventObj3ToIDispatch*(x: ptr IHTMLEventObj3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEventObj3ToIUnknown*(x: ptr IHTMLEventObj3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEventObj4ToIDispatch*(x: ptr IHTMLEventObj4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEventObj4ToIUnknown*(x: ptr IHTMLEventObj4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEventObj5ToIDispatch*(x: ptr IHTMLEventObj5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEventObj5ToIUnknown*(x: ptr IHTMLEventObj5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEventObj6ToIDispatch*(x: ptr IHTMLEventObj6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEventObj6ToIUnknown*(x: ptr IHTMLEventObj6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCEventObjToIDispatch*(x: ptr DispCEventObj): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCEventObjToIUnknown*(x: ptr DispCEventObj): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleMediaToIDispatch*(x: ptr IHTMLStyleMedia): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleMediaToIUnknown*(x: ptr IHTMLStyleMedia): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleMediaToIDispatch*(x: ptr DispHTMLStyleMedia): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleMediaToIUnknown*(x: ptr DispHTMLStyleMedia): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLWindowEvents3ToIDispatch*(x: ptr HTMLWindowEvents3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLWindowEvents3ToIUnknown*(x: ptr HTMLWindowEvents3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLWindowEvents2ToIDispatch*(x: ptr HTMLWindowEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLWindowEvents2ToIUnknown*(x: ptr HTMLWindowEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLWindowEventsToIDispatch*(x: ptr HTMLWindowEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLWindowEventsToIUnknown*(x: ptr HTMLWindowEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFramesCollection2ToIDispatch*(x: ptr IHTMLFramesCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFramesCollection2ToIUnknown*(x: ptr IHTMLFramesCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScreenToIDispatch*(x: ptr IHTMLScreen): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScreenToIUnknown*(x: ptr IHTMLScreen): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScreen2ToIDispatch*(x: ptr IHTMLScreen2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScreen2ToIUnknown*(x: ptr IHTMLScreen2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScreen3ToIDispatch*(x: ptr IHTMLScreen3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScreen3ToIUnknown*(x: ptr IHTMLScreen3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScreen4ToIDispatch*(x: ptr IHTMLScreen4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScreen4ToIUnknown*(x: ptr IHTMLScreen4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow2ToIHTMLFramesCollection2*(x: ptr IHTMLWindow2): ptr IHTMLFramesCollection2 = cast[ptr IHTMLFramesCollection2](x) -converter winimConverterIHTMLWindow2ToIDispatch*(x: ptr IHTMLWindow2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow2ToIUnknown*(x: ptr IHTMLWindow2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow3ToIDispatch*(x: ptr IHTMLWindow3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow3ToIUnknown*(x: ptr IHTMLWindow3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow4ToIDispatch*(x: ptr IHTMLWindow4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow4ToIUnknown*(x: ptr IHTMLWindow4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow5ToIDispatch*(x: ptr IHTMLWindow5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow5ToIUnknown*(x: ptr IHTMLWindow5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow6ToIDispatch*(x: ptr IHTMLWindow6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow6ToIUnknown*(x: ptr IHTMLWindow6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow7ToIDispatch*(x: ptr IHTMLWindow7): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow7ToIUnknown*(x: ptr IHTMLWindow7): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLWindow8ToIDispatch*(x: ptr IHTMLWindow8): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLWindow8ToIUnknown*(x: ptr IHTMLWindow8): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLScreenToIDispatch*(x: ptr DispHTMLScreen): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLScreenToIUnknown*(x: ptr DispHTMLScreen): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLWindow2ToIDispatch*(x: ptr DispHTMLWindow2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLWindow2ToIUnknown*(x: ptr DispHTMLWindow2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLWindowProxyToIDispatch*(x: ptr DispHTMLWindowProxy): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLWindowProxyToIUnknown*(x: ptr DispHTMLWindowProxy): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocumentCompatibleInfoToIDispatch*(x: ptr IHTMLDocumentCompatibleInfo): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocumentCompatibleInfoToIUnknown*(x: ptr IHTMLDocumentCompatibleInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocumentCompatibleInfoCollectionToIDispatch*(x: ptr IHTMLDocumentCompatibleInfoCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocumentCompatibleInfoCollectionToIUnknown*(x: ptr IHTMLDocumentCompatibleInfoCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDocumentCompatibleInfoToIDispatch*(x: ptr DispHTMLDocumentCompatibleInfo): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDocumentCompatibleInfoToIUnknown*(x: ptr DispHTMLDocumentCompatibleInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDocumentCompatibleInfoCollectionToIDispatch*(x: ptr DispHTMLDocumentCompatibleInfoCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDocumentCompatibleInfoCollectionToIUnknown*(x: ptr DispHTMLDocumentCompatibleInfoCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLDocumentEvents4ToIDispatch*(x: ptr HTMLDocumentEvents4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLDocumentEvents4ToIUnknown*(x: ptr HTMLDocumentEvents4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLDocumentEvents3ToIDispatch*(x: ptr HTMLDocumentEvents3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLDocumentEvents3ToIUnknown*(x: ptr HTMLDocumentEvents3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLDocumentEvents2ToIDispatch*(x: ptr HTMLDocumentEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLDocumentEvents2ToIUnknown*(x: ptr HTMLDocumentEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLDocumentEventsToIDispatch*(x: ptr HTMLDocumentEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLDocumentEventsToIUnknown*(x: ptr HTMLDocumentEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocumentToIDispatch*(x: ptr IHTMLDocument): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocumentToIUnknown*(x: ptr IHTMLDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument2ToIHTMLDocument*(x: ptr IHTMLDocument2): ptr IHTMLDocument = cast[ptr IHTMLDocument](x) -converter winimConverterIHTMLDocument2ToIDispatch*(x: ptr IHTMLDocument2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument2ToIUnknown*(x: ptr IHTMLDocument2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument3ToIDispatch*(x: ptr IHTMLDocument3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument3ToIUnknown*(x: ptr IHTMLDocument3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument4ToIDispatch*(x: ptr IHTMLDocument4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument4ToIUnknown*(x: ptr IHTMLDocument4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument5ToIDispatch*(x: ptr IHTMLDocument5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument5ToIUnknown*(x: ptr IHTMLDocument5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument6ToIDispatch*(x: ptr IHTMLDocument6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument6ToIUnknown*(x: ptr IHTMLDocument6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument7ToIDispatch*(x: ptr IHTMLDocument7): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument7ToIUnknown*(x: ptr IHTMLDocument7): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDocument8ToIDispatch*(x: ptr IHTMLDocument8): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDocument8ToIUnknown*(x: ptr IHTMLDocument8): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocumentEventToIDispatch*(x: ptr IDocumentEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDocumentEventToIUnknown*(x: ptr IDocumentEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocumentRangeToIDispatch*(x: ptr IDocumentRange): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDocumentRangeToIUnknown*(x: ptr IDocumentRange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocumentSelectorToIDispatch*(x: ptr IDocumentSelector): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDocumentSelectorToIUnknown*(x: ptr IDocumentSelector): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocumentTraversalToIDispatch*(x: ptr IDocumentTraversal): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDocumentTraversalToIUnknown*(x: ptr IDocumentTraversal): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDocumentToIDispatch*(x: ptr DispHTMLDocument): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDocumentToIUnknown*(x: ptr DispHTMLDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDWebBridgeEventsToIDispatch*(x: ptr DWebBridgeEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDWebBridgeEventsToIUnknown*(x: ptr DWebBridgeEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebBridgeToIDispatch*(x: ptr IWebBridge): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebBridgeToIUnknown*(x: ptr IWebBridge): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWBScriptControlToIDispatch*(x: ptr IWBScriptControl): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWBScriptControlToIUnknown*(x: ptr IWBScriptControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEmbedElementToIDispatch*(x: ptr IHTMLEmbedElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEmbedElementToIUnknown*(x: ptr IHTMLEmbedElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEmbedElement2ToIDispatch*(x: ptr IHTMLEmbedElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLEmbedElement2ToIUnknown*(x: ptr IHTMLEmbedElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLEmbedToIDispatch*(x: ptr DispHTMLEmbed): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLEmbedToIUnknown*(x: ptr DispHTMLEmbed): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLMapEvents2ToIDispatch*(x: ptr HTMLMapEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLMapEvents2ToIUnknown*(x: ptr HTMLMapEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLMapEventsToIDispatch*(x: ptr HTMLMapEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLMapEventsToIUnknown*(x: ptr HTMLMapEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAreasCollectionToIDispatch*(x: ptr IHTMLAreasCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAreasCollectionToIUnknown*(x: ptr IHTMLAreasCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAreasCollection2ToIDispatch*(x: ptr IHTMLAreasCollection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAreasCollection2ToIUnknown*(x: ptr IHTMLAreasCollection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAreasCollection3ToIDispatch*(x: ptr IHTMLAreasCollection3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAreasCollection3ToIUnknown*(x: ptr IHTMLAreasCollection3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAreasCollection4ToIDispatch*(x: ptr IHTMLAreasCollection4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAreasCollection4ToIUnknown*(x: ptr IHTMLAreasCollection4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMapElementToIDispatch*(x: ptr IHTMLMapElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMapElementToIUnknown*(x: ptr IHTMLMapElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLAreasCollectionToIDispatch*(x: ptr DispHTMLAreasCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLAreasCollectionToIUnknown*(x: ptr DispHTMLAreasCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMapElementToIDispatch*(x: ptr DispHTMLMapElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMapElementToIUnknown*(x: ptr DispHTMLMapElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLAreaEvents2ToIDispatch*(x: ptr HTMLAreaEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLAreaEvents2ToIUnknown*(x: ptr HTMLAreaEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLAreaEventsToIDispatch*(x: ptr HTMLAreaEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLAreaEventsToIUnknown*(x: ptr HTMLAreaEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAreaElementToIDispatch*(x: ptr IHTMLAreaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAreaElementToIUnknown*(x: ptr IHTMLAreaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAreaElement2ToIDispatch*(x: ptr IHTMLAreaElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAreaElement2ToIUnknown*(x: ptr IHTMLAreaElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLAreaElementToIDispatch*(x: ptr DispHTMLAreaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLAreaElementToIUnknown*(x: ptr DispHTMLAreaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableCaptionToIDispatch*(x: ptr IHTMLTableCaption): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableCaptionToIUnknown*(x: ptr IHTMLTableCaption): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTableCaptionToIDispatch*(x: ptr DispHTMLTableCaption): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTableCaptionToIUnknown*(x: ptr DispHTMLTableCaption): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCommentElementToIDispatch*(x: ptr IHTMLCommentElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCommentElementToIUnknown*(x: ptr IHTMLCommentElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCommentElement2ToIDispatch*(x: ptr IHTMLCommentElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCommentElement2ToIUnknown*(x: ptr IHTMLCommentElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCommentElement3ToIDispatch*(x: ptr IHTMLCommentElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCommentElement3ToIUnknown*(x: ptr IHTMLCommentElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCommentElementToIDispatch*(x: ptr DispHTMLCommentElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCommentElementToIUnknown*(x: ptr DispHTMLCommentElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPhraseElementToIDispatch*(x: ptr IHTMLPhraseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPhraseElementToIUnknown*(x: ptr IHTMLPhraseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPhraseElement2ToIDispatch*(x: ptr IHTMLPhraseElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPhraseElement2ToIUnknown*(x: ptr IHTMLPhraseElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPhraseElement3ToIDispatch*(x: ptr IHTMLPhraseElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPhraseElement3ToIUnknown*(x: ptr IHTMLPhraseElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSpanElementToIDispatch*(x: ptr IHTMLSpanElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSpanElementToIUnknown*(x: ptr IHTMLSpanElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLPhraseElementToIDispatch*(x: ptr DispHTMLPhraseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLPhraseElementToIUnknown*(x: ptr DispHTMLPhraseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLSpanElementToIDispatch*(x: ptr DispHTMLSpanElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLSpanElementToIUnknown*(x: ptr DispHTMLSpanElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLTableEvents2ToIDispatch*(x: ptr HTMLTableEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLTableEvents2ToIUnknown*(x: ptr HTMLTableEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLTableEventsToIDispatch*(x: ptr HTMLTableEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLTableEventsToIUnknown*(x: ptr HTMLTableEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableToIDispatch*(x: ptr IHTMLTable): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableToIUnknown*(x: ptr IHTMLTable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTable2ToIDispatch*(x: ptr IHTMLTable2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTable2ToIUnknown*(x: ptr IHTMLTable2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTable3ToIDispatch*(x: ptr IHTMLTable3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTable3ToIUnknown*(x: ptr IHTMLTable3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTable4ToIDispatch*(x: ptr IHTMLTable4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTable4ToIUnknown*(x: ptr IHTMLTable4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableColToIDispatch*(x: ptr IHTMLTableCol): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableColToIUnknown*(x: ptr IHTMLTableCol): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableCol2ToIDispatch*(x: ptr IHTMLTableCol2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableCol2ToIUnknown*(x: ptr IHTMLTableCol2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableCol3ToIDispatch*(x: ptr IHTMLTableCol3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableCol3ToIUnknown*(x: ptr IHTMLTableCol3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableSectionToIDispatch*(x: ptr IHTMLTableSection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableSectionToIUnknown*(x: ptr IHTMLTableSection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableSection2ToIDispatch*(x: ptr IHTMLTableSection2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableSection2ToIUnknown*(x: ptr IHTMLTableSection2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableSection3ToIDispatch*(x: ptr IHTMLTableSection3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableSection3ToIUnknown*(x: ptr IHTMLTableSection3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableSection4ToIDispatch*(x: ptr IHTMLTableSection4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableSection4ToIUnknown*(x: ptr IHTMLTableSection4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableRowToIDispatch*(x: ptr IHTMLTableRow): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableRowToIUnknown*(x: ptr IHTMLTableRow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableRow2ToIDispatch*(x: ptr IHTMLTableRow2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableRow2ToIUnknown*(x: ptr IHTMLTableRow2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableRow3ToIDispatch*(x: ptr IHTMLTableRow3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableRow3ToIUnknown*(x: ptr IHTMLTableRow3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableRow4ToIDispatch*(x: ptr IHTMLTableRow4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableRow4ToIUnknown*(x: ptr IHTMLTableRow4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableRowMetricsToIDispatch*(x: ptr IHTMLTableRowMetrics): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableRowMetricsToIUnknown*(x: ptr IHTMLTableRowMetrics): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableCellToIDispatch*(x: ptr IHTMLTableCell): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableCellToIUnknown*(x: ptr IHTMLTableCell): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableCell2ToIDispatch*(x: ptr IHTMLTableCell2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableCell2ToIUnknown*(x: ptr IHTMLTableCell2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTableCell3ToIDispatch*(x: ptr IHTMLTableCell3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTableCell3ToIUnknown*(x: ptr IHTMLTableCell3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTableToIDispatch*(x: ptr DispHTMLTable): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTableToIUnknown*(x: ptr DispHTMLTable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTableColToIDispatch*(x: ptr DispHTMLTableCol): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTableColToIUnknown*(x: ptr DispHTMLTableCol): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTableSectionToIDispatch*(x: ptr DispHTMLTableSection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTableSectionToIUnknown*(x: ptr DispHTMLTableSection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTableRowToIDispatch*(x: ptr DispHTMLTableRow): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTableRowToIUnknown*(x: ptr DispHTMLTableRow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTableCellToIDispatch*(x: ptr DispHTMLTableCell): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTableCellToIUnknown*(x: ptr DispHTMLTableCell): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLScriptEvents2ToIDispatch*(x: ptr HTMLScriptEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLScriptEvents2ToIUnknown*(x: ptr HTMLScriptEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLScriptEventsToIDispatch*(x: ptr HTMLScriptEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLScriptEventsToIUnknown*(x: ptr HTMLScriptEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScriptElementToIDispatch*(x: ptr IHTMLScriptElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScriptElementToIUnknown*(x: ptr IHTMLScriptElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScriptElement2ToIDispatch*(x: ptr IHTMLScriptElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScriptElement2ToIUnknown*(x: ptr IHTMLScriptElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScriptElement3ToIDispatch*(x: ptr IHTMLScriptElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScriptElement3ToIUnknown*(x: ptr IHTMLScriptElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLScriptElement4ToIDispatch*(x: ptr IHTMLScriptElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLScriptElement4ToIUnknown*(x: ptr IHTMLScriptElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLScriptElementToIDispatch*(x: ptr DispHTMLScriptElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLScriptElementToIUnknown*(x: ptr DispHTMLScriptElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLNoShowElementToIDispatch*(x: ptr IHTMLNoShowElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLNoShowElementToIUnknown*(x: ptr IHTMLNoShowElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLNoShowElementToIDispatch*(x: ptr DispHTMLNoShowElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLNoShowElementToIUnknown*(x: ptr DispHTMLNoShowElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLObjectElementEvents2ToIDispatch*(x: ptr HTMLObjectElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLObjectElementEvents2ToIUnknown*(x: ptr HTMLObjectElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLObjectElementEventsToIDispatch*(x: ptr HTMLObjectElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLObjectElementEventsToIUnknown*(x: ptr HTMLObjectElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLObjectElementToIDispatch*(x: ptr IHTMLObjectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLObjectElementToIUnknown*(x: ptr IHTMLObjectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLObjectElement2ToIDispatch*(x: ptr IHTMLObjectElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLObjectElement2ToIUnknown*(x: ptr IHTMLObjectElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLObjectElement3ToIDispatch*(x: ptr IHTMLObjectElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLObjectElement3ToIUnknown*(x: ptr IHTMLObjectElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLObjectElement4ToIDispatch*(x: ptr IHTMLObjectElement4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLObjectElement4ToIUnknown*(x: ptr IHTMLObjectElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLObjectElement5ToIDispatch*(x: ptr IHTMLObjectElement5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLObjectElement5ToIUnknown*(x: ptr IHTMLObjectElement5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLParamElementToIDispatch*(x: ptr IHTMLParamElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLParamElementToIUnknown*(x: ptr IHTMLParamElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLParamElement2ToIDispatch*(x: ptr IHTMLParamElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLParamElement2ToIUnknown*(x: ptr IHTMLParamElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLObjectElementToIDispatch*(x: ptr DispHTMLObjectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLObjectElementToIUnknown*(x: ptr DispHTMLObjectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLParamElementToIDispatch*(x: ptr DispHTMLParamElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLParamElementToIUnknown*(x: ptr DispHTMLParamElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLFrameSiteEvents2ToIDispatch*(x: ptr HTMLFrameSiteEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLFrameSiteEvents2ToIUnknown*(x: ptr HTMLFrameSiteEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLFrameSiteEventsToIDispatch*(x: ptr HTMLFrameSiteEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLFrameSiteEventsToIUnknown*(x: ptr HTMLFrameSiteEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameBaseToIDispatch*(x: ptr IHTMLFrameBase): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameBaseToIUnknown*(x: ptr IHTMLFrameBase): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameBase2ToIDispatch*(x: ptr IHTMLFrameBase2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameBase2ToIUnknown*(x: ptr IHTMLFrameBase2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameBase3ToIDispatch*(x: ptr IHTMLFrameBase3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameBase3ToIUnknown*(x: ptr IHTMLFrameBase3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLFrameBaseToIDispatch*(x: ptr DispHTMLFrameBase): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLFrameBaseToIUnknown*(x: ptr DispHTMLFrameBase): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameElementToIDispatch*(x: ptr IHTMLFrameElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameElementToIUnknown*(x: ptr IHTMLFrameElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameElement2ToIDispatch*(x: ptr IHTMLFrameElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameElement2ToIUnknown*(x: ptr IHTMLFrameElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameElement3ToIDispatch*(x: ptr IHTMLFrameElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameElement3ToIUnknown*(x: ptr IHTMLFrameElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLFrameElementToIDispatch*(x: ptr DispHTMLFrameElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLFrameElementToIUnknown*(x: ptr DispHTMLFrameElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLIFrameElementToIDispatch*(x: ptr IHTMLIFrameElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLIFrameElementToIUnknown*(x: ptr IHTMLIFrameElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLIFrameElement2ToIDispatch*(x: ptr IHTMLIFrameElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLIFrameElement2ToIUnknown*(x: ptr IHTMLIFrameElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLIFrameElement3ToIDispatch*(x: ptr IHTMLIFrameElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLIFrameElement3ToIUnknown*(x: ptr IHTMLIFrameElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLIFrameToIDispatch*(x: ptr DispHTMLIFrame): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLIFrameToIUnknown*(x: ptr DispHTMLIFrame): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDivPositionToIDispatch*(x: ptr IHTMLDivPosition): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDivPositionToIUnknown*(x: ptr IHTMLDivPosition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFieldSetElementToIDispatch*(x: ptr IHTMLFieldSetElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFieldSetElementToIUnknown*(x: ptr IHTMLFieldSetElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFieldSetElement2ToIDispatch*(x: ptr IHTMLFieldSetElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFieldSetElement2ToIUnknown*(x: ptr IHTMLFieldSetElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLegendElementToIDispatch*(x: ptr IHTMLLegendElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLegendElementToIUnknown*(x: ptr IHTMLLegendElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLLegendElement2ToIDispatch*(x: ptr IHTMLLegendElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLLegendElement2ToIUnknown*(x: ptr IHTMLLegendElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLDivPositionToIDispatch*(x: ptr DispHTMLDivPosition): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLDivPositionToIUnknown*(x: ptr DispHTMLDivPosition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLFieldSetElementToIDispatch*(x: ptr DispHTMLFieldSetElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLFieldSetElementToIUnknown*(x: ptr DispHTMLFieldSetElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLLegendElementToIDispatch*(x: ptr DispHTMLLegendElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLLegendElementToIUnknown*(x: ptr DispHTMLLegendElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSpanFlowToIDispatch*(x: ptr IHTMLSpanFlow): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSpanFlowToIUnknown*(x: ptr IHTMLSpanFlow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLSpanFlowToIDispatch*(x: ptr DispHTMLSpanFlow): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLSpanFlowToIUnknown*(x: ptr DispHTMLSpanFlow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameSetElementToIDispatch*(x: ptr IHTMLFrameSetElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameSetElementToIUnknown*(x: ptr IHTMLFrameSetElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameSetElement2ToIDispatch*(x: ptr IHTMLFrameSetElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameSetElement2ToIUnknown*(x: ptr IHTMLFrameSetElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFrameSetElement3ToIDispatch*(x: ptr IHTMLFrameSetElement3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFrameSetElement3ToIUnknown*(x: ptr IHTMLFrameSetElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLFrameSetSiteToIDispatch*(x: ptr DispHTMLFrameSetSite): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLFrameSetSiteToIUnknown*(x: ptr DispHTMLFrameSetSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLBGsoundToIDispatch*(x: ptr IHTMLBGsound): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLBGsoundToIUnknown*(x: ptr IHTMLBGsound): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLBGsoundToIDispatch*(x: ptr DispHTMLBGsound): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLBGsoundToIUnknown*(x: ptr DispHTMLBGsound): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFontNamesCollectionToIDispatch*(x: ptr IHTMLFontNamesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFontNamesCollectionToIUnknown*(x: ptr IHTMLFontNamesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLFontSizesCollectionToIDispatch*(x: ptr IHTMLFontSizesCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLFontSizesCollectionToIUnknown*(x: ptr IHTMLFontSizesCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOptionsHolderToIDispatch*(x: ptr IHTMLOptionsHolder): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLOptionsHolderToIUnknown*(x: ptr IHTMLOptionsHolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLStyleElementEvents2ToIDispatch*(x: ptr HTMLStyleElementEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLStyleElementEvents2ToIUnknown*(x: ptr HTMLStyleElementEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLStyleElementEventsToIDispatch*(x: ptr HTMLStyleElementEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLStyleElementEventsToIUnknown*(x: ptr HTMLStyleElementEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleElementToIDispatch*(x: ptr IHTMLStyleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleElementToIUnknown*(x: ptr IHTMLStyleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleElement2ToIDispatch*(x: ptr IHTMLStyleElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleElement2ToIUnknown*(x: ptr IHTMLStyleElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleElementToIDispatch*(x: ptr DispHTMLStyleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleElementToIUnknown*(x: ptr DispHTMLStyleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleFontFaceToIDispatch*(x: ptr IHTMLStyleFontFace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleFontFaceToIUnknown*(x: ptr IHTMLStyleFontFace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleFontFace2ToIDispatch*(x: ptr IHTMLStyleFontFace2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleFontFace2ToIUnknown*(x: ptr IHTMLStyleFontFace2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleFontFaceToIDispatch*(x: ptr DispHTMLStyleFontFace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleFontFaceToIUnknown*(x: ptr DispHTMLStyleFontFace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLXDomainRequestToIDispatch*(x: ptr IHTMLXDomainRequest): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLXDomainRequestToIUnknown*(x: ptr IHTMLXDomainRequest): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLXDomainRequestFactoryToIDispatch*(x: ptr IHTMLXDomainRequestFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLXDomainRequestFactoryToIUnknown*(x: ptr IHTMLXDomainRequestFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispXDomainRequestToIDispatch*(x: ptr DispXDomainRequest): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispXDomainRequestToIUnknown*(x: ptr DispXDomainRequest): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStorageToIDispatch*(x: ptr IHTMLStorage): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStorageToIUnknown*(x: ptr IHTMLStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStorage2ToIDispatch*(x: ptr IHTMLStorage2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStorage2ToIUnknown*(x: ptr IHTMLStorage2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStorageToIDispatch*(x: ptr DispHTMLStorage): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStorageToIUnknown*(x: ptr DispHTMLStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEventTargetToIDispatch*(x: ptr IEventTarget): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIEventTargetToIUnknown*(x: ptr IEventTarget): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMEventToIDispatch*(x: ptr IDOMEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMEventToIUnknown*(x: ptr IDOMEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMEventToIDispatch*(x: ptr DispDOMEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMEventToIUnknown*(x: ptr DispDOMEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMUIEventToIDispatch*(x: ptr IDOMUIEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMUIEventToIUnknown*(x: ptr IDOMUIEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMUIEventToIDispatch*(x: ptr DispDOMUIEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMUIEventToIUnknown*(x: ptr DispDOMUIEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMouseEventToIDispatch*(x: ptr IDOMMouseEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMouseEventToIUnknown*(x: ptr IDOMMouseEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMouseEventToIDispatch*(x: ptr DispDOMMouseEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMouseEventToIUnknown*(x: ptr DispDOMMouseEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMDragEventToIDispatch*(x: ptr IDOMDragEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMDragEventToIUnknown*(x: ptr IDOMDragEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMDragEventToIDispatch*(x: ptr DispDOMDragEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMDragEventToIUnknown*(x: ptr DispDOMDragEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMouseWheelEventToIDispatch*(x: ptr IDOMMouseWheelEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMouseWheelEventToIUnknown*(x: ptr IDOMMouseWheelEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMouseWheelEventToIDispatch*(x: ptr DispDOMMouseWheelEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMouseWheelEventToIUnknown*(x: ptr DispDOMMouseWheelEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMWheelEventToIDispatch*(x: ptr IDOMWheelEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMWheelEventToIUnknown*(x: ptr IDOMWheelEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMWheelEventToIDispatch*(x: ptr DispDOMWheelEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMWheelEventToIUnknown*(x: ptr DispDOMWheelEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMTextEventToIDispatch*(x: ptr IDOMTextEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMTextEventToIUnknown*(x: ptr IDOMTextEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMTextEventToIDispatch*(x: ptr DispDOMTextEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMTextEventToIUnknown*(x: ptr DispDOMTextEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMKeyboardEventToIDispatch*(x: ptr IDOMKeyboardEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMKeyboardEventToIUnknown*(x: ptr IDOMKeyboardEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMKeyboardEventToIDispatch*(x: ptr DispDOMKeyboardEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMKeyboardEventToIUnknown*(x: ptr DispDOMKeyboardEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMCompositionEventToIDispatch*(x: ptr IDOMCompositionEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMCompositionEventToIUnknown*(x: ptr IDOMCompositionEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMCompositionEventToIDispatch*(x: ptr DispDOMCompositionEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMCompositionEventToIUnknown*(x: ptr DispDOMCompositionEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMutationEventToIDispatch*(x: ptr IDOMMutationEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMutationEventToIUnknown*(x: ptr IDOMMutationEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMutationEventToIDispatch*(x: ptr DispDOMMutationEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMutationEventToIUnknown*(x: ptr DispDOMMutationEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMBeforeUnloadEventToIDispatch*(x: ptr IDOMBeforeUnloadEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMBeforeUnloadEventToIUnknown*(x: ptr IDOMBeforeUnloadEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMBeforeUnloadEventToIDispatch*(x: ptr DispDOMBeforeUnloadEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMBeforeUnloadEventToIUnknown*(x: ptr DispDOMBeforeUnloadEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMFocusEventToIDispatch*(x: ptr IDOMFocusEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMFocusEventToIUnknown*(x: ptr IDOMFocusEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMFocusEventToIDispatch*(x: ptr DispDOMFocusEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMFocusEventToIUnknown*(x: ptr DispDOMFocusEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMCustomEventToIDispatch*(x: ptr IDOMCustomEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMCustomEventToIUnknown*(x: ptr IDOMCustomEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMCustomEventToIDispatch*(x: ptr DispDOMCustomEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMCustomEventToIUnknown*(x: ptr DispDOMCustomEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasGradientToIDispatch*(x: ptr ICanvasGradient): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterICanvasGradientToIUnknown*(x: ptr ICanvasGradient): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasPatternToIDispatch*(x: ptr ICanvasPattern): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterICanvasPatternToIUnknown*(x: ptr ICanvasPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasTextMetricsToIDispatch*(x: ptr ICanvasTextMetrics): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterICanvasTextMetricsToIUnknown*(x: ptr ICanvasTextMetrics): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasImageDataToIDispatch*(x: ptr ICanvasImageData): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterICanvasImageDataToIUnknown*(x: ptr ICanvasImageData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasPixelArrayToIDispatch*(x: ptr ICanvasPixelArray): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterICanvasPixelArrayToIUnknown*(x: ptr ICanvasPixelArray): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasRenderingContext2DToIDispatch*(x: ptr ICanvasRenderingContext2D): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterICanvasRenderingContext2DToIUnknown*(x: ptr ICanvasRenderingContext2D): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCanvasElementToIDispatch*(x: ptr IHTMLCanvasElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLCanvasElementToIUnknown*(x: ptr IHTMLCanvasElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCanvasGradientToIDispatch*(x: ptr DispCanvasGradient): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCanvasGradientToIUnknown*(x: ptr DispCanvasGradient): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCanvasPatternToIDispatch*(x: ptr DispCanvasPattern): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCanvasPatternToIUnknown*(x: ptr DispCanvasPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCanvasTextMetricsToIDispatch*(x: ptr DispCanvasTextMetrics): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCanvasTextMetricsToIUnknown*(x: ptr DispCanvasTextMetrics): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCanvasImageDataToIDispatch*(x: ptr DispCanvasImageData): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCanvasImageDataToIUnknown*(x: ptr DispCanvasImageData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCanvasRenderingContext2DToIDispatch*(x: ptr DispCanvasRenderingContext2D): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCanvasRenderingContext2DToIUnknown*(x: ptr DispCanvasRenderingContext2D): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLCanvasElementToIDispatch*(x: ptr DispHTMLCanvasElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLCanvasElementToIUnknown*(x: ptr DispHTMLCanvasElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMProgressEventToIDispatch*(x: ptr IDOMProgressEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMProgressEventToIUnknown*(x: ptr IDOMProgressEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMProgressEventToIDispatch*(x: ptr DispDOMProgressEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMProgressEventToIUnknown*(x: ptr DispDOMProgressEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMessageEventToIDispatch*(x: ptr IDOMMessageEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMessageEventToIUnknown*(x: ptr IDOMMessageEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMessageEventToIDispatch*(x: ptr DispDOMMessageEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMessageEventToIUnknown*(x: ptr DispDOMMessageEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMSiteModeEventToIDispatch*(x: ptr IDOMSiteModeEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMSiteModeEventToIUnknown*(x: ptr IDOMSiteModeEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMSiteModeEventToIDispatch*(x: ptr DispDOMSiteModeEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMSiteModeEventToIUnknown*(x: ptr DispDOMSiteModeEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMStorageEventToIDispatch*(x: ptr IDOMStorageEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMStorageEventToIUnknown*(x: ptr IDOMStorageEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMStorageEventToIDispatch*(x: ptr DispDOMStorageEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMStorageEventToIUnknown*(x: ptr DispDOMStorageEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLHttpRequestEventTargetToIDispatch*(x: ptr IXMLHttpRequestEventTarget): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLHttpRequestEventTargetToIUnknown*(x: ptr IXMLHttpRequestEventTarget): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispXMLHttpRequestEventTargetToIDispatch*(x: ptr DispXMLHttpRequestEventTarget): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispXMLHttpRequestEventTargetToIUnknown*(x: ptr DispXMLHttpRequestEventTarget): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLXMLHttpRequestEventsToIDispatch*(x: ptr HTMLXMLHttpRequestEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLXMLHttpRequestEventsToIUnknown*(x: ptr HTMLXMLHttpRequestEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLXMLHttpRequestToIDispatch*(x: ptr IHTMLXMLHttpRequest): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLXMLHttpRequestToIUnknown*(x: ptr IHTMLXMLHttpRequest): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLXMLHttpRequest2ToIDispatch*(x: ptr IHTMLXMLHttpRequest2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLXMLHttpRequest2ToIUnknown*(x: ptr IHTMLXMLHttpRequest2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLXMLHttpRequestFactoryToIDispatch*(x: ptr IHTMLXMLHttpRequestFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLXMLHttpRequestFactoryToIUnknown*(x: ptr IHTMLXMLHttpRequestFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLXMLHttpRequestToIDispatch*(x: ptr DispHTMLXMLHttpRequest): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLXMLHttpRequestToIUnknown*(x: ptr DispHTMLXMLHttpRequest): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAngleToIDispatch*(x: ptr ISVGAngle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAngleToIUnknown*(x: ptr ISVGAngle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGStylableToIDispatch*(x: ptr ISVGStylable): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGStylableToIUnknown*(x: ptr ISVGStylable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGLocatableToIDispatch*(x: ptr ISVGLocatable): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGLocatableToIUnknown*(x: ptr ISVGLocatable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTransformableToIDispatch*(x: ptr ISVGTransformable): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTransformableToIUnknown*(x: ptr ISVGTransformable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTestsToIDispatch*(x: ptr ISVGTests): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTestsToIUnknown*(x: ptr ISVGTests): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGLangSpaceToIDispatch*(x: ptr ISVGLangSpace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGLangSpaceToIUnknown*(x: ptr ISVGLangSpace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGExternalResourcesRequiredToIDispatch*(x: ptr ISVGExternalResourcesRequired): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGExternalResourcesRequiredToIUnknown*(x: ptr ISVGExternalResourcesRequired): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGFitToViewBoxToIDispatch*(x: ptr ISVGFitToViewBox): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGFitToViewBoxToIUnknown*(x: ptr ISVGFitToViewBox): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGZoomAndPanToIDispatch*(x: ptr ISVGZoomAndPan): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGZoomAndPanToIUnknown*(x: ptr ISVGZoomAndPan): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGURIReferenceToIDispatch*(x: ptr ISVGURIReference): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGURIReferenceToIUnknown*(x: ptr ISVGURIReference): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedAngleToIDispatch*(x: ptr ISVGAnimatedAngle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedAngleToIUnknown*(x: ptr ISVGAnimatedAngle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedTransformListToIDispatch*(x: ptr ISVGAnimatedTransformList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedTransformListToIUnknown*(x: ptr ISVGAnimatedTransformList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedBooleanToIDispatch*(x: ptr ISVGAnimatedBoolean): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedBooleanToIUnknown*(x: ptr ISVGAnimatedBoolean): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedEnumerationToIDispatch*(x: ptr ISVGAnimatedEnumeration): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedEnumerationToIUnknown*(x: ptr ISVGAnimatedEnumeration): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedIntegerToIDispatch*(x: ptr ISVGAnimatedInteger): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedIntegerToIUnknown*(x: ptr ISVGAnimatedInteger): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedLengthToIDispatch*(x: ptr ISVGAnimatedLength): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedLengthToIUnknown*(x: ptr ISVGAnimatedLength): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedLengthListToIDispatch*(x: ptr ISVGAnimatedLengthList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedLengthListToIUnknown*(x: ptr ISVGAnimatedLengthList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedNumberToIDispatch*(x: ptr ISVGAnimatedNumber): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedNumberToIUnknown*(x: ptr ISVGAnimatedNumber): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedNumberListToIDispatch*(x: ptr ISVGAnimatedNumberList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedNumberListToIUnknown*(x: ptr ISVGAnimatedNumberList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedRectToIDispatch*(x: ptr ISVGAnimatedRect): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedRectToIUnknown*(x: ptr ISVGAnimatedRect): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedStringToIDispatch*(x: ptr ISVGAnimatedString): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedStringToIUnknown*(x: ptr ISVGAnimatedString): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGClipPathElementToIDispatch*(x: ptr ISVGClipPathElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGClipPathElementToIUnknown*(x: ptr ISVGClipPathElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGClipPathElementToIDispatch*(x: ptr DispSVGClipPathElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGClipPathElementToIUnknown*(x: ptr DispSVGClipPathElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGDocumentToIDispatch*(x: ptr ISVGDocument): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGDocumentToIUnknown*(x: ptr ISVGDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGetSVGDocumentToIDispatch*(x: ptr IGetSVGDocument): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIGetSVGDocumentToIUnknown*(x: ptr IGetSVGDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGElementToIDispatch*(x: ptr ISVGElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGElementToIUnknown*(x: ptr ISVGElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGElementToIDispatch*(x: ptr DispSVGElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGElementToIUnknown*(x: ptr DispSVGElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIICCSVGColorToIDispatch*(x: ptr IICCSVGColor): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIICCSVGColorToIUnknown*(x: ptr IICCSVGColor): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGLengthToIDispatch*(x: ptr ISVGLength): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGLengthToIUnknown*(x: ptr ISVGLength): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGLengthListToIDispatch*(x: ptr ISVGLengthList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGLengthListToIUnknown*(x: ptr ISVGLengthList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGMatrixToIDispatch*(x: ptr ISVGMatrix): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGMatrixToIUnknown*(x: ptr ISVGMatrix): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGNumberToIDispatch*(x: ptr ISVGNumber): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGNumberToIUnknown*(x: ptr ISVGNumber): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGNumberListToIDispatch*(x: ptr ISVGNumberList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGNumberListToIUnknown*(x: ptr ISVGNumberList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPaintToIDispatch*(x: ptr ISVGPaint): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPaintToIUnknown*(x: ptr ISVGPaint): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPatternElementToIDispatch*(x: ptr ISVGPatternElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPatternElementToIUnknown*(x: ptr ISVGPatternElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPatternElementToIDispatch*(x: ptr DispSVGPatternElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPatternElementToIUnknown*(x: ptr DispSVGPatternElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegToIDispatch*(x: ptr ISVGPathSeg): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegToIUnknown*(x: ptr ISVGPathSeg): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegArcAbsToIDispatch*(x: ptr ISVGPathSegArcAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegArcAbsToIUnknown*(x: ptr ISVGPathSegArcAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegArcRelToIDispatch*(x: ptr ISVGPathSegArcRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegArcRelToIUnknown*(x: ptr ISVGPathSegArcRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegClosePathToIDispatch*(x: ptr ISVGPathSegClosePath): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegClosePathToIUnknown*(x: ptr ISVGPathSegClosePath): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegMovetoAbsToIDispatch*(x: ptr ISVGPathSegMovetoAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegMovetoAbsToIUnknown*(x: ptr ISVGPathSegMovetoAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegMovetoRelToIDispatch*(x: ptr ISVGPathSegMovetoRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegMovetoRelToIUnknown*(x: ptr ISVGPathSegMovetoRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegLinetoAbsToIDispatch*(x: ptr ISVGPathSegLinetoAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegLinetoAbsToIUnknown*(x: ptr ISVGPathSegLinetoAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegLinetoRelToIDispatch*(x: ptr ISVGPathSegLinetoRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegLinetoRelToIUnknown*(x: ptr ISVGPathSegLinetoRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoCubicAbsToIDispatch*(x: ptr ISVGPathSegCurvetoCubicAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoCubicAbsToIUnknown*(x: ptr ISVGPathSegCurvetoCubicAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoCubicRelToIDispatch*(x: ptr ISVGPathSegCurvetoCubicRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoCubicRelToIUnknown*(x: ptr ISVGPathSegCurvetoCubicRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoCubicSmoothAbsToIDispatch*(x: ptr ISVGPathSegCurvetoCubicSmoothAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoCubicSmoothAbsToIUnknown*(x: ptr ISVGPathSegCurvetoCubicSmoothAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoCubicSmoothRelToIDispatch*(x: ptr ISVGPathSegCurvetoCubicSmoothRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoCubicSmoothRelToIUnknown*(x: ptr ISVGPathSegCurvetoCubicSmoothRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoQuadraticAbsToIDispatch*(x: ptr ISVGPathSegCurvetoQuadraticAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoQuadraticAbsToIUnknown*(x: ptr ISVGPathSegCurvetoQuadraticAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoQuadraticRelToIDispatch*(x: ptr ISVGPathSegCurvetoQuadraticRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoQuadraticRelToIUnknown*(x: ptr ISVGPathSegCurvetoQuadraticRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoQuadraticSmoothAbsToIDispatch*(x: ptr ISVGPathSegCurvetoQuadraticSmoothAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoQuadraticSmoothAbsToIUnknown*(x: ptr ISVGPathSegCurvetoQuadraticSmoothAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegCurvetoQuadraticSmoothRelToIDispatch*(x: ptr ISVGPathSegCurvetoQuadraticSmoothRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegCurvetoQuadraticSmoothRelToIUnknown*(x: ptr ISVGPathSegCurvetoQuadraticSmoothRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegLinetoHorizontalAbsToIDispatch*(x: ptr ISVGPathSegLinetoHorizontalAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegLinetoHorizontalAbsToIUnknown*(x: ptr ISVGPathSegLinetoHorizontalAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegLinetoHorizontalRelToIDispatch*(x: ptr ISVGPathSegLinetoHorizontalRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegLinetoHorizontalRelToIUnknown*(x: ptr ISVGPathSegLinetoHorizontalRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegLinetoVerticalAbsToIDispatch*(x: ptr ISVGPathSegLinetoVerticalAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegLinetoVerticalAbsToIUnknown*(x: ptr ISVGPathSegLinetoVerticalAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegLinetoVerticalRelToIDispatch*(x: ptr ISVGPathSegLinetoVerticalRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegLinetoVerticalRelToIUnknown*(x: ptr ISVGPathSegLinetoVerticalRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegArcAbsToIDispatch*(x: ptr DispSVGPathSegArcAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegArcAbsToIUnknown*(x: ptr DispSVGPathSegArcAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegArcRelToIDispatch*(x: ptr DispSVGPathSegArcRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegArcRelToIUnknown*(x: ptr DispSVGPathSegArcRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegClosePathToIDispatch*(x: ptr DispSVGPathSegClosePath): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegClosePathToIUnknown*(x: ptr DispSVGPathSegClosePath): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegMovetoAbsToIDispatch*(x: ptr DispSVGPathSegMovetoAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegMovetoAbsToIUnknown*(x: ptr DispSVGPathSegMovetoAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegMovetoRelToIDispatch*(x: ptr DispSVGPathSegMovetoRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegMovetoRelToIUnknown*(x: ptr DispSVGPathSegMovetoRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegLinetoAbsToIDispatch*(x: ptr DispSVGPathSegLinetoAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegLinetoAbsToIUnknown*(x: ptr DispSVGPathSegLinetoAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegLinetoRelToIDispatch*(x: ptr DispSVGPathSegLinetoRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegLinetoRelToIUnknown*(x: ptr DispSVGPathSegLinetoRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoCubicAbsToIDispatch*(x: ptr DispSVGPathSegCurvetoCubicAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoCubicAbsToIUnknown*(x: ptr DispSVGPathSegCurvetoCubicAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoCubicRelToIDispatch*(x: ptr DispSVGPathSegCurvetoCubicRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoCubicRelToIUnknown*(x: ptr DispSVGPathSegCurvetoCubicRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoCubicSmoothAbsToIDispatch*(x: ptr DispSVGPathSegCurvetoCubicSmoothAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoCubicSmoothAbsToIUnknown*(x: ptr DispSVGPathSegCurvetoCubicSmoothAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoCubicSmoothRelToIDispatch*(x: ptr DispSVGPathSegCurvetoCubicSmoothRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoCubicSmoothRelToIUnknown*(x: ptr DispSVGPathSegCurvetoCubicSmoothRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticAbsToIDispatch*(x: ptr DispSVGPathSegCurvetoQuadraticAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticAbsToIUnknown*(x: ptr DispSVGPathSegCurvetoQuadraticAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticRelToIDispatch*(x: ptr DispSVGPathSegCurvetoQuadraticRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticRelToIUnknown*(x: ptr DispSVGPathSegCurvetoQuadraticRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothAbsToIDispatch*(x: ptr DispSVGPathSegCurvetoQuadraticSmoothAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothAbsToIUnknown*(x: ptr DispSVGPathSegCurvetoQuadraticSmoothAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothRelToIDispatch*(x: ptr DispSVGPathSegCurvetoQuadraticSmoothRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothRelToIUnknown*(x: ptr DispSVGPathSegCurvetoQuadraticSmoothRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegLinetoHorizontalAbsToIDispatch*(x: ptr DispSVGPathSegLinetoHorizontalAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegLinetoHorizontalAbsToIUnknown*(x: ptr DispSVGPathSegLinetoHorizontalAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegLinetoHorizontalRelToIDispatch*(x: ptr DispSVGPathSegLinetoHorizontalRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegLinetoHorizontalRelToIUnknown*(x: ptr DispSVGPathSegLinetoHorizontalRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegLinetoVerticalAbsToIDispatch*(x: ptr DispSVGPathSegLinetoVerticalAbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegLinetoVerticalAbsToIUnknown*(x: ptr DispSVGPathSegLinetoVerticalAbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathSegLinetoVerticalRelToIDispatch*(x: ptr DispSVGPathSegLinetoVerticalRel): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathSegLinetoVerticalRelToIUnknown*(x: ptr DispSVGPathSegLinetoVerticalRel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathSegListToIDispatch*(x: ptr ISVGPathSegList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathSegListToIUnknown*(x: ptr ISVGPathSegList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPointToIDispatch*(x: ptr ISVGPoint): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPointToIUnknown*(x: ptr ISVGPoint): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPointListToIDispatch*(x: ptr ISVGPointList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPointListToIUnknown*(x: ptr ISVGPointList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGRectToIDispatch*(x: ptr ISVGRect): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGRectToIUnknown*(x: ptr ISVGRect): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGStringListToIDispatch*(x: ptr ISVGStringList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGStringListToIUnknown*(x: ptr ISVGStringList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGViewSpecToIDispatch*(x: ptr ISVGViewSpec): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGViewSpecToIUnknown*(x: ptr ISVGViewSpec): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTransformToIDispatch*(x: ptr ISVGTransform): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTransformToIUnknown*(x: ptr ISVGTransform): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGSVGElementToIDispatch*(x: ptr ISVGSVGElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGSVGElementToIUnknown*(x: ptr ISVGSVGElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGSVGElementToIDispatch*(x: ptr DispSVGSVGElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGSVGElementToIUnknown*(x: ptr DispSVGSVGElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGUseElementToIDispatch*(x: ptr ISVGUseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGUseElementToIUnknown*(x: ptr ISVGUseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGUseElementToIDispatch*(x: ptr DispSVGUseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGUseElementToIUnknown*(x: ptr DispSVGUseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLStyleSheetRulesAppliedCollectionToIDispatch*(x: ptr IHTMLStyleSheetRulesAppliedCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLStyleSheetRulesAppliedCollectionToIUnknown*(x: ptr IHTMLStyleSheetRulesAppliedCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRulesAppliedToIDispatch*(x: ptr IRulesApplied): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIRulesAppliedToIUnknown*(x: ptr IRulesApplied): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRulesAppliedCollectionToIDispatch*(x: ptr IRulesAppliedCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIRulesAppliedCollectionToIUnknown*(x: ptr IRulesAppliedCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLStyleSheetRulesAppliedCollectionToIDispatch*(x: ptr DispHTMLStyleSheetRulesAppliedCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLStyleSheetRulesAppliedCollectionToIUnknown*(x: ptr DispHTMLStyleSheetRulesAppliedCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispRulesAppliedToIDispatch*(x: ptr DispRulesApplied): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispRulesAppliedToIUnknown*(x: ptr DispRulesApplied): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispRulesAppliedCollectionToIDispatch*(x: ptr DispRulesAppliedCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispRulesAppliedCollectionToIUnknown*(x: ptr DispRulesAppliedCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLW3CComputedStyleToIDispatch*(x: ptr DispHTMLW3CComputedStyle): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLW3CComputedStyleToIUnknown*(x: ptr DispHTMLW3CComputedStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTransformListToIDispatch*(x: ptr ISVGTransformList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTransformListToIUnknown*(x: ptr ISVGTransformList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedPointsToIDispatch*(x: ptr ISVGAnimatedPoints): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedPointsToIUnknown*(x: ptr ISVGAnimatedPoints): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGCircleElementToIDispatch*(x: ptr ISVGCircleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGCircleElementToIUnknown*(x: ptr ISVGCircleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGEllipseElementToIDispatch*(x: ptr ISVGEllipseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGEllipseElementToIUnknown*(x: ptr ISVGEllipseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGLineElementToIDispatch*(x: ptr ISVGLineElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGLineElementToIUnknown*(x: ptr ISVGLineElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGRectElementToIDispatch*(x: ptr ISVGRectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGRectElementToIUnknown*(x: ptr ISVGRectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPolygonElementToIDispatch*(x: ptr ISVGPolygonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPolygonElementToIUnknown*(x: ptr ISVGPolygonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPolylineElementToIDispatch*(x: ptr ISVGPolylineElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPolylineElementToIUnknown*(x: ptr ISVGPolylineElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGCircleElementToIDispatch*(x: ptr DispSVGCircleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGCircleElementToIUnknown*(x: ptr DispSVGCircleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGEllipseElementToIDispatch*(x: ptr DispSVGEllipseElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGEllipseElementToIUnknown*(x: ptr DispSVGEllipseElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGLineElementToIDispatch*(x: ptr DispSVGLineElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGLineElementToIUnknown*(x: ptr DispSVGLineElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGRectElementToIDispatch*(x: ptr DispSVGRectElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGRectElementToIUnknown*(x: ptr DispSVGRectElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPolygonElementToIDispatch*(x: ptr DispSVGPolygonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPolygonElementToIUnknown*(x: ptr DispSVGPolygonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPolylineElementToIDispatch*(x: ptr DispSVGPolylineElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPolylineElementToIUnknown*(x: ptr DispSVGPolylineElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGGElementToIDispatch*(x: ptr ISVGGElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGGElementToIUnknown*(x: ptr ISVGGElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGGElementToIDispatch*(x: ptr DispSVGGElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGGElementToIUnknown*(x: ptr DispSVGGElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGSymbolElementToIDispatch*(x: ptr ISVGSymbolElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGSymbolElementToIUnknown*(x: ptr ISVGSymbolElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGSymbolElementToIDispatch*(x: ptr DispSVGSymbolElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGSymbolElementToIUnknown*(x: ptr DispSVGSymbolElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGDefsElementToIDispatch*(x: ptr ISVGDefsElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGDefsElementToIUnknown*(x: ptr ISVGDefsElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGDefsElementToIDispatch*(x: ptr DispSVGDefsElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGDefsElementToIUnknown*(x: ptr DispSVGDefsElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedPathDataToIDispatch*(x: ptr ISVGAnimatedPathData): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedPathDataToIUnknown*(x: ptr ISVGAnimatedPathData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPathElementToIDispatch*(x: ptr ISVGPathElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPathElementToIUnknown*(x: ptr ISVGPathElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGPathElementToIDispatch*(x: ptr DispSVGPathElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGPathElementToIUnknown*(x: ptr DispSVGPathElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGPreserveAspectRatioToIDispatch*(x: ptr ISVGPreserveAspectRatio): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGPreserveAspectRatioToIUnknown*(x: ptr ISVGPreserveAspectRatio): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTextElementToIDispatch*(x: ptr ISVGTextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTextElementToIUnknown*(x: ptr ISVGTextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGTextElementToIDispatch*(x: ptr DispSVGTextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGTextElementToIUnknown*(x: ptr DispSVGTextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAnimatedPreserveAspectRatioToIDispatch*(x: ptr ISVGAnimatedPreserveAspectRatio): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAnimatedPreserveAspectRatioToIUnknown*(x: ptr ISVGAnimatedPreserveAspectRatio): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGImageElementToIDispatch*(x: ptr ISVGImageElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGImageElementToIUnknown*(x: ptr ISVGImageElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGImageElementToIDispatch*(x: ptr DispSVGImageElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGImageElementToIUnknown*(x: ptr DispSVGImageElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGStopElementToIDispatch*(x: ptr ISVGStopElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGStopElementToIUnknown*(x: ptr ISVGStopElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGStopElementToIDispatch*(x: ptr DispSVGStopElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGStopElementToIUnknown*(x: ptr DispSVGStopElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGGradientElementToIDispatch*(x: ptr ISVGGradientElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGGradientElementToIUnknown*(x: ptr ISVGGradientElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGGradientElementToIDispatch*(x: ptr DispSVGGradientElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGGradientElementToIUnknown*(x: ptr DispSVGGradientElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGLinearGradientElementToIDispatch*(x: ptr ISVGLinearGradientElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGLinearGradientElementToIUnknown*(x: ptr ISVGLinearGradientElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGLinearGradientElementToIDispatch*(x: ptr DispSVGLinearGradientElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGLinearGradientElementToIUnknown*(x: ptr DispSVGLinearGradientElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGRadialGradientElementToIDispatch*(x: ptr ISVGRadialGradientElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGRadialGradientElementToIUnknown*(x: ptr ISVGRadialGradientElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGRadialGradientElementToIDispatch*(x: ptr DispSVGRadialGradientElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGRadialGradientElementToIUnknown*(x: ptr DispSVGRadialGradientElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGMaskElementToIDispatch*(x: ptr ISVGMaskElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGMaskElementToIUnknown*(x: ptr ISVGMaskElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGMaskElementToIDispatch*(x: ptr DispSVGMaskElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGMaskElementToIUnknown*(x: ptr DispSVGMaskElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGMarkerElementToIDispatch*(x: ptr ISVGMarkerElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGMarkerElementToIUnknown*(x: ptr ISVGMarkerElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGMarkerElementToIDispatch*(x: ptr DispSVGMarkerElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGMarkerElementToIUnknown*(x: ptr DispSVGMarkerElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGZoomEventToIDispatch*(x: ptr ISVGZoomEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGZoomEventToIUnknown*(x: ptr ISVGZoomEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGZoomEventToIDispatch*(x: ptr DispSVGZoomEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGZoomEventToIUnknown*(x: ptr DispSVGZoomEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGAElementToIDispatch*(x: ptr ISVGAElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGAElementToIUnknown*(x: ptr ISVGAElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGAElementToIDispatch*(x: ptr DispSVGAElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGAElementToIUnknown*(x: ptr DispSVGAElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGViewElementToIDispatch*(x: ptr ISVGViewElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGViewElementToIUnknown*(x: ptr ISVGViewElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGViewElementToIDispatch*(x: ptr DispSVGViewElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGViewElementToIUnknown*(x: ptr DispSVGViewElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMediaErrorToIDispatch*(x: ptr IHTMLMediaError): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMediaErrorToIUnknown*(x: ptr IHTMLMediaError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTimeRangesToIDispatch*(x: ptr IHTMLTimeRanges): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTimeRangesToIUnknown*(x: ptr IHTMLTimeRanges): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLTimeRanges2ToIDispatch*(x: ptr IHTMLTimeRanges2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLTimeRanges2ToIUnknown*(x: ptr IHTMLTimeRanges2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMediaElementToIDispatch*(x: ptr IHTMLMediaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMediaElementToIUnknown*(x: ptr IHTMLMediaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMediaElement2ToIDispatch*(x: ptr IHTMLMediaElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMediaElement2ToIUnknown*(x: ptr IHTMLMediaElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLMSMediaElementToIDispatch*(x: ptr IHTMLMSMediaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLMSMediaElementToIUnknown*(x: ptr IHTMLMSMediaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLSourceElementToIDispatch*(x: ptr IHTMLSourceElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLSourceElementToIUnknown*(x: ptr IHTMLSourceElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAudioElementToIDispatch*(x: ptr IHTMLAudioElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAudioElementToIUnknown*(x: ptr IHTMLAudioElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLVideoElementToIDispatch*(x: ptr IHTMLVideoElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLVideoElementToIUnknown*(x: ptr IHTMLVideoElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAudioElementFactoryToIDispatch*(x: ptr IHTMLAudioElementFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAudioElementFactoryToIUnknown*(x: ptr IHTMLAudioElementFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMediaErrorToIDispatch*(x: ptr DispHTMLMediaError): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMediaErrorToIUnknown*(x: ptr DispHTMLMediaError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLTimeRangesToIDispatch*(x: ptr DispHTMLTimeRanges): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLTimeRangesToIUnknown*(x: ptr DispHTMLTimeRanges): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLMediaElementToIDispatch*(x: ptr DispHTMLMediaElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLMediaElementToIUnknown*(x: ptr DispHTMLMediaElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLSourceElementToIDispatch*(x: ptr DispHTMLSourceElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLSourceElementToIUnknown*(x: ptr DispHTMLSourceElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLAudioElementToIDispatch*(x: ptr DispHTMLAudioElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLAudioElementToIUnknown*(x: ptr DispHTMLAudioElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLVideoElementToIDispatch*(x: ptr DispHTMLVideoElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLVideoElementToIUnknown*(x: ptr DispHTMLVideoElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGSwitchElementToIDispatch*(x: ptr ISVGSwitchElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGSwitchElementToIUnknown*(x: ptr ISVGSwitchElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGSwitchElementToIDispatch*(x: ptr DispSVGSwitchElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGSwitchElementToIUnknown*(x: ptr DispSVGSwitchElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGDescElementToIDispatch*(x: ptr ISVGDescElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGDescElementToIUnknown*(x: ptr ISVGDescElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGDescElementToIDispatch*(x: ptr DispSVGDescElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGDescElementToIUnknown*(x: ptr DispSVGDescElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTitleElementToIDispatch*(x: ptr ISVGTitleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTitleElementToIUnknown*(x: ptr ISVGTitleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGTitleElementToIDispatch*(x: ptr DispSVGTitleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGTitleElementToIUnknown*(x: ptr DispSVGTitleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGMetadataElementToIDispatch*(x: ptr ISVGMetadataElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGMetadataElementToIUnknown*(x: ptr ISVGMetadataElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGMetadataElementToIDispatch*(x: ptr DispSVGMetadataElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGMetadataElementToIUnknown*(x: ptr DispSVGMetadataElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGElementInstanceToIDispatch*(x: ptr ISVGElementInstance): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGElementInstanceToIUnknown*(x: ptr ISVGElementInstance): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGElementInstanceToIDispatch*(x: ptr DispSVGElementInstance): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGElementInstanceToIUnknown*(x: ptr DispSVGElementInstance): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGElementInstanceListToIDispatch*(x: ptr ISVGElementInstanceList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGElementInstanceListToIUnknown*(x: ptr ISVGElementInstanceList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGElementInstanceListToIDispatch*(x: ptr DispSVGElementInstanceList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGElementInstanceListToIUnknown*(x: ptr DispSVGElementInstanceList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMExceptionToIDispatch*(x: ptr IDOMException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMExceptionToIUnknown*(x: ptr IDOMException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRangeExceptionToIDispatch*(x: ptr IRangeException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIRangeExceptionToIUnknown*(x: ptr IRangeException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGExceptionToIDispatch*(x: ptr ISVGException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGExceptionToIUnknown*(x: ptr ISVGException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEventExceptionToIDispatch*(x: ptr IEventException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIEventExceptionToIUnknown*(x: ptr IEventException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMExceptionToIDispatch*(x: ptr DispDOMException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMExceptionToIUnknown*(x: ptr DispDOMException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispRangeExceptionToIDispatch*(x: ptr DispRangeException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispRangeExceptionToIUnknown*(x: ptr DispRangeException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGExceptionToIDispatch*(x: ptr DispSVGException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGExceptionToIUnknown*(x: ptr DispSVGException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispEventExceptionToIDispatch*(x: ptr DispEventException): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispEventExceptionToIUnknown*(x: ptr DispEventException): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGScriptElementToIDispatch*(x: ptr ISVGScriptElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGScriptElementToIUnknown*(x: ptr ISVGScriptElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGScriptElementToIDispatch*(x: ptr DispSVGScriptElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGScriptElementToIUnknown*(x: ptr DispSVGScriptElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGStyleElementToIDispatch*(x: ptr ISVGStyleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGStyleElementToIUnknown*(x: ptr ISVGStyleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGStyleElementToIDispatch*(x: ptr DispSVGStyleElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGStyleElementToIUnknown*(x: ptr DispSVGStyleElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTextContentElementToIDispatch*(x: ptr ISVGTextContentElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTextContentElementToIUnknown*(x: ptr ISVGTextContentElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGTextContentElementToIDispatch*(x: ptr DispSVGTextContentElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGTextContentElementToIUnknown*(x: ptr DispSVGTextContentElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTextPositioningElementToIDispatch*(x: ptr ISVGTextPositioningElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTextPositioningElementToIUnknown*(x: ptr ISVGTextPositioningElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGTextPositioningElementToIDispatch*(x: ptr DispSVGTextPositioningElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGTextPositioningElementToIUnknown*(x: ptr DispSVGTextPositioningElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMDocumentTypeToIDispatch*(x: ptr IDOMDocumentType): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMDocumentTypeToIUnknown*(x: ptr IDOMDocumentType): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMDocumentTypeToIDispatch*(x: ptr DispDOMDocumentType): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMDocumentTypeToIUnknown*(x: ptr DispDOMDocumentType): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMNodeIteratorToIDispatch*(x: ptr IDOMNodeIterator): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMNodeIteratorToIUnknown*(x: ptr IDOMNodeIterator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMTreeWalkerToIDispatch*(x: ptr IDOMTreeWalker): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMTreeWalkerToIUnknown*(x: ptr IDOMTreeWalker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispNodeIteratorToIDispatch*(x: ptr DispNodeIterator): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispNodeIteratorToIUnknown*(x: ptr DispNodeIterator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispTreeWalkerToIDispatch*(x: ptr DispTreeWalker): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispTreeWalkerToIUnknown*(x: ptr DispTreeWalker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMProcessingInstructionToIDispatch*(x: ptr IDOMProcessingInstruction): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMProcessingInstructionToIUnknown*(x: ptr IDOMProcessingInstruction): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMProcessingInstructionToIDispatch*(x: ptr DispDOMProcessingInstruction): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMProcessingInstructionToIUnknown*(x: ptr DispDOMProcessingInstruction): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPerformanceToIDispatch*(x: ptr IHTMLPerformance): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPerformanceToIUnknown*(x: ptr IHTMLPerformance): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPerformanceNavigationToIDispatch*(x: ptr IHTMLPerformanceNavigation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPerformanceNavigationToIUnknown*(x: ptr IHTMLPerformanceNavigation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPerformanceTimingToIDispatch*(x: ptr IHTMLPerformanceTiming): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPerformanceTimingToIUnknown*(x: ptr IHTMLPerformanceTiming): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLPerformanceToIDispatch*(x: ptr DispHTMLPerformance): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLPerformanceToIUnknown*(x: ptr DispHTMLPerformance): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLPerformanceNavigationToIDispatch*(x: ptr DispHTMLPerformanceNavigation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLPerformanceNavigationToIUnknown*(x: ptr DispHTMLPerformanceNavigation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLPerformanceTimingToIDispatch*(x: ptr DispHTMLPerformanceTiming): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLPerformanceTimingToIUnknown*(x: ptr DispHTMLPerformanceTiming): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTSpanElementToIDispatch*(x: ptr ISVGTSpanElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTSpanElementToIUnknown*(x: ptr ISVGTSpanElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGTSpanElementToIDispatch*(x: ptr DispSVGTSpanElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGTSpanElementToIUnknown*(x: ptr DispSVGTSpanElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITemplatePrinterToIDispatch*(x: ptr ITemplatePrinter): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterITemplatePrinterToIUnknown*(x: ptr ITemplatePrinter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITemplatePrinter2ToITemplatePrinter*(x: ptr ITemplatePrinter2): ptr ITemplatePrinter = cast[ptr ITemplatePrinter](x) -converter winimConverterITemplatePrinter2ToIDispatch*(x: ptr ITemplatePrinter2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterITemplatePrinter2ToIUnknown*(x: ptr ITemplatePrinter2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITemplatePrinter3ToITemplatePrinter2*(x: ptr ITemplatePrinter3): ptr ITemplatePrinter2 = cast[ptr ITemplatePrinter2](x) -converter winimConverterITemplatePrinter3ToITemplatePrinter*(x: ptr ITemplatePrinter3): ptr ITemplatePrinter = cast[ptr ITemplatePrinter](x) -converter winimConverterITemplatePrinter3ToIDispatch*(x: ptr ITemplatePrinter3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterITemplatePrinter3ToIUnknown*(x: ptr ITemplatePrinter3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPrintManagerTemplatePrinterToIDispatch*(x: ptr IPrintManagerTemplatePrinter): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIPrintManagerTemplatePrinterToIUnknown*(x: ptr IPrintManagerTemplatePrinter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispCPrintManagerTemplatePrinterToIDispatch*(x: ptr DispCPrintManagerTemplatePrinter): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispCPrintManagerTemplatePrinterToIUnknown*(x: ptr DispCPrintManagerTemplatePrinter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISVGTextPathElementToIDispatch*(x: ptr ISVGTextPathElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISVGTextPathElementToIUnknown*(x: ptr ISVGTextPathElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispSVGTextPathElementToIDispatch*(x: ptr DispSVGTextPathElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispSVGTextPathElementToIUnknown*(x: ptr DispSVGTextPathElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMXmlSerializerToIDispatch*(x: ptr IDOMXmlSerializer): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMXmlSerializerToIUnknown*(x: ptr IDOMXmlSerializer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMXmlSerializerFactoryToIDispatch*(x: ptr IDOMXmlSerializerFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMXmlSerializerFactoryToIUnknown*(x: ptr IDOMXmlSerializerFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMParserToIDispatch*(x: ptr IDOMParser): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMParserToIUnknown*(x: ptr IDOMParser): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMParserFactoryToIDispatch*(x: ptr IDOMParserFactory): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMParserFactoryToIUnknown*(x: ptr IDOMParserFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispXMLSerializerToIDispatch*(x: ptr DispXMLSerializer): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispXMLSerializerToIUnknown*(x: ptr DispXMLSerializer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMParserToIDispatch*(x: ptr DispDOMParser): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMParserToIUnknown*(x: ptr DispDOMParser): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLSemanticElementToIDispatch*(x: ptr DispHTMLSemanticElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLSemanticElementToIUnknown*(x: ptr DispHTMLSemanticElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLProgressElementToIDispatch*(x: ptr IHTMLProgressElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLProgressElementToIUnknown*(x: ptr IHTMLProgressElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLProgressElementToIDispatch*(x: ptr DispHTMLProgressElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLProgressElementToIUnknown*(x: ptr DispHTMLProgressElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMSTransitionEventToIDispatch*(x: ptr IDOMMSTransitionEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMSTransitionEventToIUnknown*(x: ptr IDOMMSTransitionEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMSTransitionEventToIDispatch*(x: ptr DispDOMMSTransitionEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMSTransitionEventToIUnknown*(x: ptr DispDOMMSTransitionEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMSAnimationEventToIDispatch*(x: ptr IDOMMSAnimationEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMSAnimationEventToIUnknown*(x: ptr IDOMMSAnimationEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMSAnimationEventToIDispatch*(x: ptr DispDOMMSAnimationEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMSAnimationEventToIUnknown*(x: ptr DispDOMMSAnimationEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebGeolocationToIDispatch*(x: ptr IWebGeolocation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebGeolocationToIUnknown*(x: ptr IWebGeolocation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebGeocoordinatesToIDispatch*(x: ptr IWebGeocoordinates): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebGeocoordinatesToIUnknown*(x: ptr IWebGeocoordinates): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebGeopositionErrorToIDispatch*(x: ptr IWebGeopositionError): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebGeopositionErrorToIUnknown*(x: ptr IWebGeopositionError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebGeopositionToIDispatch*(x: ptr IWebGeoposition): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebGeopositionToIUnknown*(x: ptr IWebGeoposition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispWebGeolocationToIDispatch*(x: ptr DispWebGeolocation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispWebGeolocationToIUnknown*(x: ptr DispWebGeolocation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispWebGeocoordinatesToIDispatch*(x: ptr DispWebGeocoordinates): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispWebGeocoordinatesToIUnknown*(x: ptr DispWebGeocoordinates): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispWebGeopositionErrorToIDispatch*(x: ptr DispWebGeopositionError): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispWebGeopositionErrorToIUnknown*(x: ptr DispWebGeopositionError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispWebGeopositionToIDispatch*(x: ptr DispWebGeoposition): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispWebGeopositionToIUnknown*(x: ptr DispWebGeoposition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIClientCapsToIDispatch*(x: ptr IClientCaps): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIClientCapsToIUnknown*(x: ptr IClientCaps): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMMSManipulationEventToIDispatch*(x: ptr IDOMMSManipulationEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMMSManipulationEventToIUnknown*(x: ptr IDOMMSManipulationEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMMSManipulationEventToIDispatch*(x: ptr DispDOMMSManipulationEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMMSManipulationEventToIUnknown*(x: ptr DispDOMMSManipulationEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMCloseEventToIDispatch*(x: ptr IDOMCloseEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIDOMCloseEventToIUnknown*(x: ptr IDOMCloseEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispDOMCloseEventToIDispatch*(x: ptr DispDOMCloseEvent): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispDOMCloseEventToIUnknown*(x: ptr DispDOMCloseEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLApplicationCacheToIDispatch*(x: ptr IHTMLApplicationCache): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLApplicationCacheToIUnknown*(x: ptr IHTMLApplicationCache): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispApplicationCacheToIDispatch*(x: ptr DispApplicationCache): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispApplicationCacheToIUnknown*(x: ptr DispApplicationCache): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICSSFilterSiteToIUnknown*(x: ptr ICSSFilterSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICSSFilterToIUnknown*(x: ptr ICSSFilter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISecureUrlHostToIUnknown*(x: ptr ISecureUrlHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupServicesToIUnknown*(x: ptr IMarkupServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupServices2ToIMarkupServices*(x: ptr IMarkupServices2): ptr IMarkupServices = cast[ptr IMarkupServices](x) -converter winimConverterIMarkupServices2ToIUnknown*(x: ptr IMarkupServices2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupContainerToIUnknown*(x: ptr IMarkupContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupContainer2ToIMarkupContainer*(x: ptr IMarkupContainer2): ptr IMarkupContainer = cast[ptr IMarkupContainer](x) -converter winimConverterIMarkupContainer2ToIUnknown*(x: ptr IMarkupContainer2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLChangePlaybackToIUnknown*(x: ptr IHTMLChangePlayback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupPointerToIUnknown*(x: ptr IMarkupPointer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupPointer2ToIMarkupPointer*(x: ptr IMarkupPointer2): ptr IMarkupPointer = cast[ptr IMarkupPointer](x) -converter winimConverterIMarkupPointer2ToIUnknown*(x: ptr IMarkupPointer2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarkupTextFragsToIUnknown*(x: ptr IMarkupTextFrags): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLChangeLogToIUnknown*(x: ptr IHTMLChangeLog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLChangeSinkToIUnknown*(x: ptr IHTMLChangeSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLGenericParseToIUnknown*(x: ptr IXMLGenericParse): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEditHostToIUnknown*(x: ptr IHTMLEditHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEditHost2ToIHTMLEditHost*(x: ptr IHTMLEditHost2): ptr IHTMLEditHost = cast[ptr IHTMLEditHost](x) -converter winimConverterIHTMLEditHost2ToIUnknown*(x: ptr IHTMLEditHost2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISegmentToIUnknown*(x: ptr ISegment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISegmentListIteratorToIUnknown*(x: ptr ISegmentListIterator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISegmentListToIUnknown*(x: ptr ISegmentList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISequenceNumberToIUnknown*(x: ptr ISequenceNumber): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIIMEServicesToIUnknown*(x: ptr IIMEServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLCaretToIUnknown*(x: ptr IHTMLCaret): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHighlightRenderingServicesToIUnknown*(x: ptr IHighlightRenderingServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISelectionServicesListenerToIUnknown*(x: ptr ISelectionServicesListener): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISelectionServicesToIUnknown*(x: ptr ISelectionServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementSegmentToISegment*(x: ptr IElementSegment): ptr ISegment = cast[ptr ISegment](x) -converter winimConverterIElementSegmentToIUnknown*(x: ptr IElementSegment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHighlightSegmentToISegment*(x: ptr IHighlightSegment): ptr ISegment = cast[ptr ISegment](x) -converter winimConverterIHighlightSegmentToIUnknown*(x: ptr IHighlightSegment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEditDesignerToIUnknown*(x: ptr IHTMLEditDesigner): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEditServicesToIUnknown*(x: ptr IHTMLEditServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLEditServices2ToIHTMLEditServices*(x: ptr IHTMLEditServices2): ptr IHTMLEditServices = cast[ptr IHTMLEditServices](x) -converter winimConverterIHTMLEditServices2ToIUnknown*(x: ptr IHTMLEditServices2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterILineInfoToIUnknown*(x: ptr ILineInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLComputedStyleToIUnknown*(x: ptr IHTMLComputedStyle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDisplayPointerToIUnknown*(x: ptr IDisplayPointer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDisplayServicesToIUnknown*(x: ptr IDisplayServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHtmlDlgSafeHelperToIDispatch*(x: ptr IHtmlDlgSafeHelper): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHtmlDlgSafeHelperToIUnknown*(x: ptr IHtmlDlgSafeHelper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBlockFormatsToIDispatch*(x: ptr IBlockFormats): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIBlockFormatsToIUnknown*(x: ptr IBlockFormats): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFontNamesToIDispatch*(x: ptr IFontNames): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIFontNamesToIUnknown*(x: ptr IFontNames): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDeveloperConsoleMessageReceiverToIUnknown*(x: ptr IDeveloperConsoleMessageReceiver): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDebugCallbackNotificationHandlerToIUnknown*(x: ptr IDebugCallbackNotificationHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIScriptEventHandlerToIUnknown*(x: ptr IScriptEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIScriptEventHandlerSourceInfoToIUnknown*(x: ptr IScriptEventHandlerSourceInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDOMEventRegistrationCallbackToIUnknown*(x: ptr IDOMEventRegistrationCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEventTarget2ToIUnknown*(x: ptr IEventTarget2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterHTMLNamespaceEventsToIDispatch*(x: ptr HTMLNamespaceEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterHTMLNamespaceEventsToIUnknown*(x: ptr HTMLNamespaceEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLNamespaceToIDispatch*(x: ptr IHTMLNamespace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLNamespaceToIUnknown*(x: ptr IHTMLNamespace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLNamespaceCollectionToIDispatch*(x: ptr IHTMLNamespaceCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLNamespaceCollectionToIUnknown*(x: ptr IHTMLNamespaceCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLNamespaceToIDispatch*(x: ptr DispHTMLNamespace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLNamespaceToIUnknown*(x: ptr DispHTMLNamespace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLNamespaceCollectionToIDispatch*(x: ptr DispHTMLNamespaceCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLNamespaceCollectionToIUnknown*(x: ptr DispHTMLNamespaceCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPainterToIUnknown*(x: ptr IHTMLPainter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPainterEventInfoToIUnknown*(x: ptr IHTMLPainterEventInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPainterOverlayToIUnknown*(x: ptr IHTMLPainterOverlay): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPaintSiteToIUnknown*(x: ptr IHTMLPaintSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLIPrintCollectionToIDispatch*(x: ptr IHTMLIPrintCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLIPrintCollectionToIUnknown*(x: ptr IHTMLIPrintCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumPrivacyRecordsToIUnknown*(x: ptr IEnumPrivacyRecords): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWPCBlockedUrlsToIUnknown*(x: ptr IWPCBlockedUrls): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDOMConstructorCollectionToIDispatch*(x: ptr IHTMLDOMConstructorCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDOMConstructorCollectionToIUnknown*(x: ptr IHTMLDOMConstructorCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDialogToIDispatch*(x: ptr IHTMLDialog): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDialogToIUnknown*(x: ptr IHTMLDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDialog2ToIDispatch*(x: ptr IHTMLDialog2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDialog2ToIUnknown*(x: ptr IHTMLDialog2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLDialog3ToIDispatch*(x: ptr IHTMLDialog3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLDialog3ToIUnknown*(x: ptr IHTMLDialog3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLModelessInitToIDispatch*(x: ptr IHTMLModelessInit): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLModelessInitToIUnknown*(x: ptr IHTMLModelessInit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLPopupToIDispatch*(x: ptr IHTMLPopup): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLPopupToIUnknown*(x: ptr IHTMLPopup): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLPopupToIDispatch*(x: ptr DispHTMLPopup): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLPopupToIUnknown*(x: ptr DispHTMLPopup): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAppBehaviorToIDispatch*(x: ptr IHTMLAppBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAppBehaviorToIUnknown*(x: ptr IHTMLAppBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAppBehavior2ToIDispatch*(x: ptr IHTMLAppBehavior2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAppBehavior2ToIUnknown*(x: ptr IHTMLAppBehavior2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLAppBehavior3ToIDispatch*(x: ptr IHTMLAppBehavior3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIHTMLAppBehavior3ToIUnknown*(x: ptr IHTMLAppBehavior3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispHTMLAppBehaviorToIDispatch*(x: ptr DispHTMLAppBehavior): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispHTMLAppBehaviorToIUnknown*(x: ptr DispHTMLAppBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispIHTMLInputButtonElementToIDispatch*(x: ptr DispIHTMLInputButtonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispIHTMLInputButtonElementToIUnknown*(x: ptr DispIHTMLInputButtonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispIHTMLInputTextElementToIDispatch*(x: ptr DispIHTMLInputTextElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispIHTMLInputTextElementToIUnknown*(x: ptr DispIHTMLInputTextElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispIHTMLInputFileElementToIDispatch*(x: ptr DispIHTMLInputFileElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispIHTMLInputFileElementToIUnknown*(x: ptr DispIHTMLInputFileElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispIHTMLOptionButtonElementToIDispatch*(x: ptr DispIHTMLOptionButtonElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispIHTMLOptionButtonElementToIUnknown*(x: ptr DispIHTMLOptionButtonElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDispIHTMLInputImageToIDispatch*(x: ptr DispIHTMLInputImage): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDispIHTMLInputImageToIUnknown*(x: ptr DispIHTMLInputImage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorFactoryToIUnknown*(x: ptr IElementBehaviorFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementNamespaceToIUnknown*(x: ptr IElementNamespace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementNamespaceTableToIUnknown*(x: ptr IElementNamespaceTable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementNamespaceFactoryToIUnknown*(x: ptr IElementNamespaceFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementNamespaceFactory2ToIElementNamespaceFactory*(x: ptr IElementNamespaceFactory2): ptr IElementNamespaceFactory = cast[ptr IElementNamespaceFactory](x) -converter winimConverterIElementNamespaceFactory2ToIUnknown*(x: ptr IElementNamespaceFactory2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementNamespaceFactoryCallbackToIUnknown*(x: ptr IElementNamespaceFactoryCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorToIUnknown*(x: ptr IElementBehavior): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteToIUnknown*(x: ptr IElementBehaviorSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteOMToIUnknown*(x: ptr IElementBehaviorSiteOM): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteOM2ToIElementBehaviorSiteOM*(x: ptr IElementBehaviorSiteOM2): ptr IElementBehaviorSiteOM = cast[ptr IElementBehaviorSiteOM](x) -converter winimConverterIElementBehaviorSiteOM2ToIUnknown*(x: ptr IElementBehaviorSiteOM2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorRenderToIUnknown*(x: ptr IElementBehaviorRender): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteRenderToIUnknown*(x: ptr IElementBehaviorSiteRender): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorCategoryToIUnknown*(x: ptr IElementBehaviorCategory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteCategoryToIUnknown*(x: ptr IElementBehaviorSiteCategory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSubmitToIUnknown*(x: ptr IElementBehaviorSubmit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorFocusToIUnknown*(x: ptr IElementBehaviorFocus): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorLayoutToIUnknown*(x: ptr IElementBehaviorLayout): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorLayout2ToIUnknown*(x: ptr IElementBehaviorLayout2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteLayoutToIUnknown*(x: ptr IElementBehaviorSiteLayout): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIElementBehaviorSiteLayout2ToIUnknown*(x: ptr IElementBehaviorSiteLayout2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostBehaviorInitToIUnknown*(x: ptr IHostBehaviorInit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObjectPresentSiteToIUnknown*(x: ptr IViewObjectPresentSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISurfacePresenterToIUnknown*(x: ptr ISurfacePresenter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICanvasPixelArrayDataToIUnknown*(x: ptr ICanvasPixelArrayData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObjectPrintToIUnknown*(x: ptr IViewObjectPrint): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObjectPresentNotifySiteToIViewObjectPresentSite*(x: ptr IViewObjectPresentNotifySite): ptr IViewObjectPresentSite = cast[ptr IViewObjectPresentSite](x) -converter winimConverterIViewObjectPresentNotifySiteToIUnknown*(x: ptr IViewObjectPresentNotifySite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObjectPresentNotifyToIUnknown*(x: ptr IViewObjectPresentNotify): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITrackingProtectionToIUnknown*(x: ptr ITrackingProtection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHostDialogHelperToIUnknown*(x: ptr IHostDialogHelper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocHostUIHandlerToIUnknown*(x: ptr IDocHostUIHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocHostUIHandler2ToIDocHostUIHandler*(x: ptr IDocHostUIHandler2): ptr IDocHostUIHandler = cast[ptr IDocHostUIHandler](x) -converter winimConverterIDocHostUIHandler2ToIUnknown*(x: ptr IDocHostUIHandler2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICustomDocToIUnknown*(x: ptr ICustomDoc): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocHostShowUIToIUnknown*(x: ptr IDocHostShowUI): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIClassFactoryExToIClassFactory*(x: ptr IClassFactoryEx): ptr IClassFactory = cast[ptr IClassFactory](x) -converter winimConverterIClassFactoryExToIUnknown*(x: ptr IClassFactoryEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHTMLOMWindowServicesToIUnknown*(x: ptr IHTMLOMWindowServices): ptr IUnknown = cast[ptr IUnknown](x) + moveTo*: + proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} + moveBy*: + proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} + resizeTo*: + proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} + resizeBy*: + proc(self: ptr IHTMLOMWindowServices, x: LONG, y: LONG): HRESULT {.stdcall.} + +proc GetDispID*( + self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD, pid: ptr DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDispID(self, bstrName, grfdex, pid) + +proc InvokeEx*( + self: ptr IDispatchEx, + id: DISPID, + lcid: LCID, + wFlags: WORD, + pdp: ptr DISPPARAMS, + pvarRes: ptr VARIANT, + pei: ptr EXCEPINFO, + pspCaller: ptr IServiceProvider, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeEx(self, id, lcid, wFlags, pdp, pvarRes, pei, pspCaller) + +proc DeleteMemberByName*( + self: ptr IDispatchEx, bstrName: BSTR, grfdex: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteMemberByName(self, bstrName, grfdex) + +proc DeleteMemberByDispID*( + self: ptr IDispatchEx, id: DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteMemberByDispID(self, id) + +proc GetMemberProperties*( + self: ptr IDispatchEx, id: DISPID, grfdexFetch: DWORD, pgrfdex: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMemberProperties(self, id, grfdexFetch, pgrfdex) + +proc GetMemberName*( + self: ptr IDispatchEx, id: DISPID, pbstrName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMemberName(self, id, pbstrName) + +proc GetNextDispID*( + self: ptr IDispatchEx, grfdex: DWORD, id: DISPID, pid: ptr DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextDispID(self, grfdex, id, pid) + +proc GetNameSpaceParent*( + self: ptr IDispatchEx, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNameSpaceParent(self, ppunk) + +proc QueryErrorInfo*( + self: ptr IDispError, guidErrorType: GUID, ppde: ptr ptr IDispError +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryErrorInfo(self, guidErrorType, ppde) + +proc GetNext*( + self: ptr IDispError, ppde: ptr ptr IDispError +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNext(self, ppde) + +proc GetHresult*(self: ptr IDispError, phr: ptr HRESULT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHresult(self, phr) + +proc GetSource*( + self: ptr IDispError, pbstrSource: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSource(self, pbstrSource) + +proc GetHelpInfo*( + self: ptr IDispError, pbstrFileName: ptr BSTR, pdwContext: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHelpInfo(self, pbstrFileName, pdwContext) + +proc GetDescription*( + self: ptr IDispError, pbstrDescription: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescription(self, pbstrDescription) + +proc ChangeType*( + self: ptr IVariantChangeType, + pvarDst: ptr VARIANT, + pvarSrc: ptr VARIANT, + lcid: LCID, + vtNew: VARTYPE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ChangeType(self, pvarDst, pvarSrc, lcid, vtNew) + +proc IsEqualObject*( + self: ptr IObjectIdentity, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqualObject(self, punk) + +proc CanHandleException*( + self: ptr ICanHandleException, pExcepInfo: ptr EXCEPINFO, pvar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanHandleException(self, pExcepInfo, pvar) + +proc GetCurrentSourceContext*( + self: ptr IProvideRuntimeContext, + pdwContext: ptr DWORD_PTR, + pfExecutingGlobalCode: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentSourceContext(self, pdwContext, pfExecutingGlobalCode) + +proc get_length*( + self: ptr IHTMLFiltersCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLFiltersCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLFiltersCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, pvarIndex, pvarResult) + +proc get_constructor*( + self: ptr IHTMLDOMConstructor, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_constructor(self, p) + +proc LookupGetter*( + self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LookupGetter(self, propname, ppDispHandler) + +proc LookupSetter*( + self: ptr IHTMLDOMConstructor, propname: BSTR, ppDispHandler: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LookupSetter(self, propname, ppDispHandler) + +proc DefineGetter*( + self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineGetter(self, propname, pdispHandler) + +proc DefineSetter*( + self: ptr IHTMLDOMConstructor, propname: BSTR, pdispHandler: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineSetter(self, propname, pdispHandler) + +proc get_length*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_parentRule*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentRule(self, p) + +proc getPropertyValue*( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pbstrPropertyValue: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPropertyValue(self, bstrPropertyName, pbstrPropertyValue) + +proc getPropertyPriority*( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pbstrPropertyPriority: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPropertyPriority(self, bstrPropertyName, pbstrPropertyPriority) + +proc removeProperty*( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pbstrPropertyValue: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeProperty(self, bstrPropertyName, pbstrPropertyValue) + +proc setProperty*( + self: ptr IHTMLCSSStyleDeclaration, + bstrPropertyName: BSTR, + pvarPropertyValue: ptr VARIANT, + pvarPropertyPriority: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setProperty( + self, bstrPropertyName, pvarPropertyValue, pvarPropertyPriority + ) + +proc item*( + self: ptr IHTMLCSSStyleDeclaration, index: LONG, pbstrPropertyName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pbstrPropertyName) + +proc put_fontFamily*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontFamily(self, v) + +proc get_fontFamily*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontFamily(self, p) + +proc put_fontStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontStyle(self, v) + +proc get_fontStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontStyle(self, p) + +proc put_fontVariant*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontVariant(self, v) + +proc get_fontVariant*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontVariant(self, p) + +proc put_fontWeight*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontWeight(self, v) + +proc get_fontWeight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontWeight(self, p) + +proc put_fontSize*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontSize(self, v) + +proc get_fontSize*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSize(self, p) + +proc put_font*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_font(self, v) + +proc get_font*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_font(self, p) + +proc put_color*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_color(self, v) + +proc get_color*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc put_background*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_backgroundColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundColor(self, v) + +proc get_backgroundColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundColor(self, p) + +proc put_backgroundImage*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundImage(self, v) + +proc get_backgroundImage*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundImage(self, p) + +proc put_backgroundRepeat*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundRepeat(self, v) + +proc get_backgroundRepeat*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundRepeat(self, p) + +proc put_backgroundAttachment*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundAttachment(self, v) + +proc get_backgroundAttachment*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundAttachment(self, p) + +proc put_backgroundPosition*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPosition(self, v) + +proc get_backgroundPosition*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPosition(self, p) + +proc put_backgroundPositionX*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPositionX(self, v) + +proc get_backgroundPositionX*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionX(self, p) + +proc put_backgroundPositionY*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPositionY(self, v) + +proc get_backgroundPositionY*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionY(self, p) + +proc put_wordSpacing*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordSpacing(self, v) + +proc get_wordSpacing*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordSpacing(self, p) + +proc put_letterSpacing*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_letterSpacing(self, v) + +proc get_letterSpacing*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_letterSpacing(self, p) + +proc put_textDecoration*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecoration(self, v) + +proc get_textDecoration*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecoration(self, p) + +proc put_verticalAlign*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_verticalAlign(self, v) + +proc get_verticalAlign*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_verticalAlign(self, p) + +proc put_textTransform*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textTransform(self, v) + +proc get_textTransform*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textTransform(self, p) + +proc put_textAlign*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlign(self, v) + +proc get_textAlign*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlign(self, p) + +proc put_textIndent*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textIndent(self, v) + +proc get_textIndent*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textIndent(self, p) + +proc put_lineHeight*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineHeight(self, v) + +proc get_lineHeight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineHeight(self, p) + +proc put_marginTop*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginTop(self, v) + +proc get_marginTop*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginTop(self, p) + +proc put_marginRight*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginRight(self, v) + +proc get_marginRight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginRight(self, p) + +proc put_marginBottom*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginBottom(self, v) + +proc get_marginBottom*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginBottom(self, p) + +proc put_marginLeft*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginLeft(self, v) + +proc get_marginLeft*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginLeft(self, p) + +proc put_margin*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_margin(self, v) + +proc get_margin*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_margin(self, p) + +proc put_paddingTop*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingTop(self, v) + +proc get_paddingTop*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingTop(self, p) + +proc put_paddingRight*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingRight(self, v) + +proc get_paddingRight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingRight(self, p) + +proc put_paddingBottom*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingBottom(self, v) + +proc get_paddingBottom*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingBottom(self, p) + +proc put_paddingLeft*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingLeft(self, v) + +proc get_paddingLeft*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingLeft(self, p) + +proc put_padding*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_padding(self, v) + +proc get_padding*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_padding(self, p) + +proc put_border*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_borderTop*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTop(self, v) + +proc get_borderTop*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTop(self, p) + +proc put_borderRight*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRight(self, v) + +proc get_borderRight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRight(self, p) + +proc put_borderBottom*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottom(self, v) + +proc get_borderBottom*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottom(self, p) + +proc put_borderLeft*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeft(self, v) + +proc get_borderLeft*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeft(self, p) + +proc put_borderColor*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_borderTopColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopColor(self, v) + +proc get_borderTopColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopColor(self, p) + +proc put_borderRightColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightColor(self, v) + +proc get_borderRightColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightColor(self, p) + +proc put_borderBottomColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomColor(self, v) + +proc get_borderBottomColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomColor(self, p) + +proc put_borderLeftColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftColor(self, v) + +proc get_borderLeftColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftColor(self, p) + +proc put_borderWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderWidth(self, v) + +proc get_borderWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderWidth(self, p) + +proc put_borderTopWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopWidth(self, v) + +proc get_borderTopWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopWidth(self, p) + +proc put_borderRightWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightWidth(self, v) + +proc get_borderRightWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightWidth(self, p) + +proc put_borderBottomWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomWidth(self, v) + +proc get_borderBottomWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomWidth(self, p) + +proc put_borderLeftWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftWidth(self, v) + +proc get_borderLeftWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftWidth(self, p) + +proc put_borderStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderStyle(self, v) + +proc get_borderStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderStyle(self, p) + +proc put_borderTopStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopStyle(self, v) + +proc get_borderTopStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopStyle(self, p) + +proc put_borderRightStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightStyle(self, v) + +proc get_borderRightStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightStyle(self, p) + +proc put_borderBottomStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomStyle(self, v) + +proc get_borderBottomStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomStyle(self, p) + +proc put_borderLeftStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftStyle(self, v) + +proc get_borderLeftStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftStyle(self, p) + +proc put_width*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_styleFloat*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_styleFloat(self, v) + +proc get_styleFloat*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleFloat(self, p) + +proc put_clear*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clear(self, v) + +proc get_clear*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clear(self, p) + +proc put_display*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_display(self, v) + +proc get_display*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_display(self, p) + +proc put_visibility*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_visibility(self, v) + +proc get_visibility*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_visibility(self, p) + +proc put_listStyleType*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyleType(self, v) + +proc get_listStyleType*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleType(self, p) + +proc put_listStylePosition*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStylePosition(self, v) + +proc get_listStylePosition*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStylePosition(self, p) + +proc put_listStyleImage*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyleImage(self, v) + +proc get_listStyleImage*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleImage(self, p) + +proc put_listStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyle(self, v) + +proc get_listStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyle(self, p) + +proc put_whiteSpace*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_whiteSpace(self, v) + +proc get_whiteSpace*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_whiteSpace(self, p) + +proc put_top*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_top(self, v) + +proc get_top*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_top(self, p) + +proc put_left*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_left(self, v) + +proc get_left*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_left(self, p) + +proc put_zIndex*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_zIndex(self, v) + +proc get_zIndex*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zIndex(self, p) + +proc put_overflow*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflow(self, v) + +proc get_overflow*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflow(self, p) + +proc put_pageBreakBefore*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakBefore(self, v) + +proc get_pageBreakBefore*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakBefore(self, p) + +proc put_pageBreakAfter*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakAfter(self, v) + +proc get_pageBreakAfter*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakAfter(self, p) + +proc put_cssText*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cssText(self, v) + +proc get_cssText*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssText(self, p) + +proc put_cursor*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cursor(self, v) + +proc get_cursor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cursor(self, p) + +proc put_clip*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clip(self, v) + +proc get_clip*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clip(self, p) + +proc put_filter*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_filter(self, v) + +proc get_filter*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filter(self, p) + +proc put_tableLayout*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tableLayout(self, v) + +proc get_tableLayout*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tableLayout(self, p) + +proc put_borderCollapse*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderCollapse(self, v) + +proc get_borderCollapse*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderCollapse(self, p) + +proc put_direction*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_direction(self, v) + +proc get_direction*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_direction(self, p) + +proc put_behavior*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_behavior(self, v) + +proc get_behavior*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behavior(self, p) + +proc put_position*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_position(self, v) + +proc get_position*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc put_unicodeBidi*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_unicodeBidi(self, v) + +proc get_unicodeBidi*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unicodeBidi(self, p) + +proc put_bottom*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bottom(self, v) + +proc get_bottom*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bottom(self, p) + +proc put_right*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_right(self, v) + +proc get_right*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_right(self, p) + +proc put_imeMode*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_imeMode(self, v) + +proc get_imeMode*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeMode(self, p) + +proc put_rubyAlign*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyAlign(self, v) + +proc get_rubyAlign*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyAlign(self, p) + +proc put_rubyPosition*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyPosition(self, v) + +proc get_rubyPosition*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyPosition(self, p) + +proc put_rubyOverhang*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyOverhang(self, v) + +proc get_rubyOverhang*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyOverhang(self, p) + +proc put_layoutGridChar*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridChar(self, v) + +proc get_layoutGridChar*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridChar(self, p) + +proc put_layoutGridLine*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridLine(self, v) + +proc get_layoutGridLine*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridLine(self, p) + +proc put_layoutGridMode*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridMode(self, v) + +proc get_layoutGridMode*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridMode(self, p) + +proc put_layoutGridType*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridType(self, v) + +proc get_layoutGridType*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridType(self, p) + +proc put_layoutGrid*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGrid(self, v) + +proc get_layoutGrid*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGrid(self, p) + +proc put_textAutospace*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAutospace(self, v) + +proc get_textAutospace*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAutospace(self, p) + +proc put_wordBreak*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordBreak(self, v) + +proc get_wordBreak*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordBreak(self, p) + +proc put_lineBreak*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineBreak(self, v) + +proc get_lineBreak*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineBreak(self, p) + +proc put_textJustify*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textJustify(self, v) + +proc get_textJustify*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustify(self, p) + +proc put_textJustifyTrim*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textJustifyTrim(self, v) + +proc get_textJustifyTrim*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustifyTrim(self, p) + +proc put_textKashida*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textKashida(self, v) + +proc get_textKashida*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashida(self, p) + +proc put_overflowX*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflowX(self, v) + +proc get_overflowX*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowX(self, p) + +proc put_overflowY*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflowY(self, v) + +proc get_overflowY*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowY(self, p) + +proc put_accelerator*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accelerator(self, v) + +proc get_accelerator*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accelerator(self, p) + +proc put_layoutFlow*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutFlow(self, v) + +proc get_layoutFlow*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutFlow(self, p) + +proc put_zoom*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_zoom(self, v) + +proc get_zoom*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zoom(self, p) + +proc put_wordWrap*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordWrap(self, v) + +proc get_wordWrap*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordWrap(self, p) + +proc put_textUnderlinePosition*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textUnderlinePosition(self, v) + +proc get_textUnderlinePosition*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textUnderlinePosition(self, p) + +proc put_scrollbarBaseColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarBaseColor(self, v) + +proc get_scrollbarBaseColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarBaseColor(self, p) + +proc put_scrollbarFaceColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarFaceColor(self, v) + +proc get_scrollbarFaceColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarFaceColor(self, p) + +proc put_scrollbar3dLightColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbar3dLightColor(self, v) + +proc get_scrollbar3dLightColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbar3dLightColor(self, p) + +proc put_scrollbarShadowColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarShadowColor(self, v) + +proc get_scrollbarShadowColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarShadowColor(self, p) + +proc put_scrollbarHighlightColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarHighlightColor(self, v) + +proc get_scrollbarHighlightColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarHighlightColor(self, p) + +proc put_scrollbarDarkShadowColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarDarkShadowColor(self, v) + +proc get_scrollbarDarkShadowColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarDarkShadowColor(self, p) + +proc put_scrollbarArrowColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarArrowColor(self, v) + +proc get_scrollbarArrowColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarArrowColor(self, p) + +proc put_scrollbarTrackColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarTrackColor(self, v) + +proc get_scrollbarTrackColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarTrackColor(self, p) + +proc put_writingMode*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_writingMode(self, v) + +proc get_writingMode*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_writingMode(self, p) + +proc put_textAlignLast*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlignLast(self, v) + +proc get_textAlignLast*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlignLast(self, p) + +proc put_textKashidaSpace*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textKashidaSpace(self, v) + +proc get_textKashidaSpace*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashidaSpace(self, p) + +proc put_textOverflow*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textOverflow(self, v) + +proc get_textOverflow*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textOverflow(self, p) + +proc put_minHeight*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minHeight(self, v) + +proc get_minHeight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minHeight(self, p) + +proc put_msInterpolationMode*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msInterpolationMode(self, v) + +proc get_msInterpolationMode*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msInterpolationMode(self, p) + +proc put_maxHeight*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxHeight(self, v) + +proc get_maxHeight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxHeight(self, p) + +proc put_minWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minWidth(self, v) + +proc get_minWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minWidth(self, p) + +proc put_maxWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxWidth(self, v) + +proc get_maxWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxWidth(self, p) + +proc put_content*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_content(self, v) + +proc get_content*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_content(self, p) + +proc put_captionSide*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_captionSide(self, v) + +proc get_captionSide*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_captionSide(self, p) + +proc put_counterIncrement*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_counterIncrement(self, v) + +proc get_counterIncrement*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_counterIncrement(self, p) + +proc put_counterReset*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_counterReset(self, v) + +proc get_counterReset*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_counterReset(self, p) + +proc put_outline*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outline(self, v) + +proc get_outline*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outline(self, p) + +proc put_outlineWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineWidth(self, v) + +proc get_outlineWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineWidth(self, p) + +proc put_outlineStyle*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineStyle(self, v) + +proc get_outlineStyle*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineStyle(self, p) + +proc put_outlineColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineColor(self, v) + +proc get_outlineColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineColor(self, p) + +proc put_boxSizing*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_boxSizing(self, v) + +proc get_boxSizing*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boxSizing(self, p) + +proc put_borderSpacing*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderSpacing(self, v) + +proc get_borderSpacing*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderSpacing(self, p) + +proc put_orphans*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_orphans(self, v) + +proc get_orphans*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orphans(self, p) + +proc put_widows*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_widows(self, v) + +proc get_widows*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_widows(self, p) + +proc put_pageBreakInside*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakInside(self, v) + +proc get_pageBreakInside*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakInside(self, p) + +proc put_emptyCells*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_emptyCells(self, v) + +proc get_emptyCells*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_emptyCells(self, p) + +proc put_msBlockProgression*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msBlockProgression(self, v) + +proc get_msBlockProgression*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msBlockProgression(self, p) + +proc put_quotes*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_quotes(self, v) + +proc get_quotes*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_quotes(self, p) + +proc put_alignmentBaseline*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alignmentBaseline(self, v) + +proc get_alignmentBaseline*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alignmentBaseline(self, p) + +proc put_baselineShift*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baselineShift(self, v) + +proc get_baselineShift*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baselineShift(self, p) + +proc put_dominantBaseline*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dominantBaseline(self, v) + +proc get_dominantBaseline*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dominantBaseline(self, p) + +proc put_fontSizeAdjust*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontSizeAdjust(self, v) + +proc get_fontSizeAdjust*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSizeAdjust(self, p) + +proc put_fontStretch*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontStretch(self, v) + +proc get_fontStretch*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontStretch(self, p) + +proc put_opacity*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_opacity(self, v) + +proc get_opacity*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_opacity(self, p) + +proc put_clipPath*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clipPath(self, v) + +proc get_clipPath*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipPath(self, p) + +proc put_clipRule*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clipRule(self, v) + +proc get_clipRule*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipRule(self, p) + +proc put_fill*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fill(self, v) + +proc get_fill*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fill(self, p) + +proc put_fillOpacity*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fillOpacity(self, v) + +proc get_fillOpacity*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fillOpacity(self, p) + +proc put_fillRule*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fillRule(self, v) + +proc get_fillRule*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fillRule(self, p) + +proc put_kerning*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_kerning(self, v) + +proc get_kerning*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_kerning(self, p) + +proc put_marker*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marker(self, v) + +proc get_marker*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marker(self, p) + +proc put_markerEnd*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_markerEnd(self, v) + +proc get_markerEnd*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_markerEnd(self, p) + +proc put_markerMid*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_markerMid(self, v) + +proc get_markerMid*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_markerMid(self, p) + +proc put_markerStart*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_markerStart(self, v) + +proc get_markerStart*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_markerStart(self, p) + +proc put_mask*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_mask(self, v) + +proc get_mask*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mask(self, p) + +proc put_pointerEvents*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pointerEvents(self, v) + +proc get_pointerEvents*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pointerEvents(self, p) + +proc put_stopColor*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_stopColor(self, v) + +proc get_stopColor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_stopColor(self, p) + +proc put_stopOpacity*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_stopOpacity(self, v) + +proc get_stopOpacity*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_stopOpacity(self, p) + +proc put_stroke*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_stroke(self, v) + +proc get_stroke*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_stroke(self, p) + +proc put_strokeDasharray*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeDasharray(self, v) + +proc get_strokeDasharray*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeDasharray(self, p) + +proc put_strokeDashoffset*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeDashoffset(self, v) + +proc get_strokeDashoffset*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeDashoffset(self, p) + +proc put_strokeLinecap*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeLinecap(self, v) + +proc get_strokeLinecap*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeLinecap(self, p) + +proc put_strokeLinejoin*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeLinejoin(self, v) + +proc get_strokeLinejoin*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeLinejoin(self, p) + +proc put_strokeMiterlimit*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeMiterlimit(self, v) + +proc get_strokeMiterlimit*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeMiterlimit(self, p) + +proc put_strokeOpacity*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeOpacity(self, v) + +proc get_strokeOpacity*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeOpacity(self, p) + +proc put_strokeWidth*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeWidth(self, v) + +proc get_strokeWidth*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeWidth(self, p) + +proc put_textAnchor*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAnchor(self, v) + +proc get_textAnchor*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAnchor(self, p) + +proc put_glyphOrientationHorizontal*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_glyphOrientationHorizontal(self, v) + +proc get_glyphOrientationHorizontal*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_glyphOrientationHorizontal(self, p) + +proc put_glyphOrientationVertical*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_glyphOrientationVertical(self, v) + +proc get_glyphOrientationVertical*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_glyphOrientationVertical(self, p) + +proc put_borderRadius*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRadius(self, v) + +proc get_borderRadius*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRadius(self, p) + +proc put_borderTopLeftRadius*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopLeftRadius(self, v) + +proc get_borderTopLeftRadius*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopLeftRadius(self, p) + +proc put_borderTopRightRadius*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopRightRadius(self, v) + +proc get_borderTopRightRadius*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopRightRadius(self, p) + +proc put_borderBottomRightRadius*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomRightRadius(self, v) + +proc get_borderBottomRightRadius*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomRightRadius(self, p) + +proc put_borderBottomLeftRadius*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomLeftRadius(self, v) + +proc get_borderBottomLeftRadius*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomLeftRadius(self, p) + +proc put_clipTop*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clipTop(self, v) + +proc get_clipTop*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipTop(self, p) + +proc put_clipRight*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clipRight(self, v) + +proc get_clipRight*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipRight(self, p) + +proc get_clipBottom*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipBottom(self, p) + +proc put_clipLeft*( + self: ptr IHTMLCSSStyleDeclaration, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clipLeft(self, v) + +proc get_clipLeft*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipLeft(self, p) + +proc put_cssFloat*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cssFloat(self, v) + +proc get_cssFloat*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssFloat(self, p) + +proc put_backgroundClip*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundClip(self, v) + +proc get_backgroundClip*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundClip(self, p) + +proc put_backgroundOrigin*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundOrigin(self, v) + +proc get_backgroundOrigin*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundOrigin(self, p) + +proc put_backgroundSize*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundSize(self, v) + +proc get_backgroundSize*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundSize(self, p) + +proc put_boxShadow*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_boxShadow(self, v) + +proc get_boxShadow*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boxShadow(self, p) + +proc put_msTransform*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransform(self, v) + +proc get_msTransform*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransform(self, p) + +proc put_msTransformOrigin*( + self: ptr IHTMLCSSStyleDeclaration, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransformOrigin(self, v) + +proc get_msTransformOrigin*( + self: ptr IHTMLCSSStyleDeclaration, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransformOrigin(self, p) + +proc put_msScrollChaining*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollChaining(self, v) + +proc get_msScrollChaining*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollChaining(self, p) + +proc put_msContentZooming*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZooming(self, v) + +proc get_msContentZooming*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZooming(self, p) + +proc put_msContentZoomSnapType*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomSnapType(self, v) + +proc get_msContentZoomSnapType*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomSnapType(self, p) + +proc put_msScrollRails*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollRails(self, v) + +proc get_msScrollRails*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollRails(self, p) + +proc put_msContentZoomChaining*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomChaining(self, v) + +proc get_msContentZoomChaining*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomChaining(self, p) + +proc put_msScrollSnapType*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollSnapType(self, v) + +proc get_msScrollSnapType*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollSnapType(self, p) + +proc put_msContentZoomLimit*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomLimit(self, v) + +proc get_msContentZoomLimit*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomLimit(self, p) + +proc put_msContentZoomSnap*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomSnap(self, v) + +proc get_msContentZoomSnap*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomSnap(self, p) + +proc put_msContentZoomSnapPoints*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomSnapPoints(self, v) + +proc get_msContentZoomSnapPoints*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomSnapPoints(self, p) + +proc put_msContentZoomLimitMin*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomLimitMin(self, v) + +proc get_msContentZoomLimitMin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomLimitMin(self, p) + +proc put_msContentZoomLimitMax*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msContentZoomLimitMax(self, v) + +proc get_msContentZoomLimitMax*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msContentZoomLimitMax(self, p) + +proc put_msScrollSnapX*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollSnapX(self, v) + +proc get_msScrollSnapX*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollSnapX(self, p) + +proc put_msScrollSnapY*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollSnapY(self, v) + +proc get_msScrollSnapY*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollSnapY(self, p) + +proc put_msScrollSnapPointsX*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollSnapPointsX(self, v) + +proc get_msScrollSnapPointsX*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollSnapPointsX(self, p) + +proc put_msScrollSnapPointsY*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollSnapPointsY(self, v) + +proc get_msScrollSnapPointsY*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollSnapPointsY(self, p) + +proc put_msGridColumn*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridColumn(self, v) + +proc get_msGridColumn*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridColumn(self, p) + +proc put_msGridColumnAlign*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridColumnAlign(self, v) + +proc get_msGridColumnAlign*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridColumnAlign(self, p) + +proc put_msGridColumns*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridColumns(self, v) + +proc get_msGridColumns*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridColumns(self, p) + +proc put_msGridColumnSpan*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridColumnSpan(self, v) + +proc get_msGridColumnSpan*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridColumnSpan(self, p) + +proc put_msGridRow*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridRow(self, v) + +proc get_msGridRow*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridRow(self, p) + +proc put_msGridRowAlign*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridRowAlign(self, v) + +proc get_msGridRowAlign*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridRowAlign(self, p) + +proc put_msGridRows*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridRows(self, v) + +proc get_msGridRows*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridRows(self, p) + +proc put_msGridRowSpan*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msGridRowSpan(self, v) + +proc get_msGridRowSpan*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msGridRowSpan(self, p) + +proc put_msWrapThrough*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msWrapThrough(self, v) + +proc get_msWrapThrough*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msWrapThrough(self, p) + +proc put_msWrapMargin*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msWrapMargin(self, v) + +proc get_msWrapMargin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msWrapMargin(self, p) + +proc put_msWrapFlow*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msWrapFlow(self, v) + +proc get_msWrapFlow*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msWrapFlow(self, p) + +proc put_msAnimationName*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationName(self, v) + +proc get_msAnimationName*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationName(self, p) + +proc put_msAnimationDuration*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationDuration(self, v) + +proc get_msAnimationDuration*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationDuration(self, p) + +proc put_msAnimationTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationTimingFunction(self, v) + +proc get_msAnimationTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationTimingFunction(self, p) + +proc put_msAnimationDelay*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationDelay(self, v) + +proc get_msAnimationDelay*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationDelay(self, p) + +proc put_msAnimationDirection*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationDirection(self, v) + +proc get_msAnimationDirection*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationDirection(self, p) + +proc put_msAnimationPlayState*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationPlayState(self, v) + +proc get_msAnimationPlayState*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationPlayState(self, p) + +proc put_msAnimationIterationCount*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationIterationCount(self, v) + +proc get_msAnimationIterationCount*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationIterationCount(self, p) + +proc put_msAnimation*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimation(self, v) + +proc get_msAnimation*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimation(self, p) + +proc put_msAnimationFillMode*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msAnimationFillMode(self, v) + +proc get_msAnimationFillMode*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msAnimationFillMode(self, p) + +proc put_colorInterpolationFilters*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_colorInterpolationFilters(self, v) + +proc get_colorInterpolationFilters*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_colorInterpolationFilters(self, p) + +proc put_columnCount*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnCount(self, v) + +proc get_columnCount*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnCount(self, p) + +proc put_columnWidth*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnWidth(self, v) + +proc get_columnWidth*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnWidth(self, p) + +proc put_columnGap*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnGap(self, v) + +proc get_columnGap*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnGap(self, p) + +proc put_columnFill*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnFill(self, v) + +proc get_columnFill*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnFill(self, p) + +proc put_columnSpan*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnSpan(self, v) + +proc get_columnSpan*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnSpan(self, p) + +proc put_columns*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columns(self, v) + +proc get_columns*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columns(self, p) + +proc put_columnRule*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnRule(self, v) + +proc get_columnRule*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnRule(self, p) + +proc put_columnRuleColor*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnRuleColor(self, v) + +proc get_columnRuleColor*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnRuleColor(self, p) + +proc put_columnRuleStyle*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnRuleStyle(self, v) + +proc get_columnRuleStyle*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnRuleStyle(self, p) + +proc put_columnRuleWidth*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_columnRuleWidth(self, v) + +proc get_columnRuleWidth*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_columnRuleWidth(self, p) + +proc put_breakBefore*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_breakBefore(self, v) + +proc get_breakBefore*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_breakBefore(self, p) + +proc put_breakAfter*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_breakAfter(self, v) + +proc get_breakAfter*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_breakAfter(self, p) + +proc put_breakInside*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_breakInside(self, v) + +proc get_breakInside*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_breakInside(self, p) + +proc put_floodColor*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_floodColor(self, v) + +proc get_floodColor*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_floodColor(self, p) + +proc put_floodOpacity*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_floodOpacity(self, v) + +proc get_floodOpacity*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_floodOpacity(self, p) + +proc put_lightingColor*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lightingColor(self, v) + +proc get_lightingColor*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lightingColor(self, p) + +proc put_msScrollLimitXMin*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollLimitXMin(self, v) + +proc get_msScrollLimitXMin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollLimitXMin(self, p) + +proc put_msScrollLimitYMin*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollLimitYMin(self, v) + +proc get_msScrollLimitYMin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollLimitYMin(self, p) + +proc put_msScrollLimitXMax*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollLimitXMax(self, v) + +proc get_msScrollLimitXMax*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollLimitXMax(self, p) + +proc put_msScrollLimitYMax*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollLimitYMax(self, v) + +proc get_msScrollLimitYMax*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollLimitYMax(self, p) + +proc put_msScrollLimit*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollLimit(self, v) + +proc get_msScrollLimit*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollLimit(self, p) + +proc put_textShadow*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textShadow(self, v) + +proc get_textShadow*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textShadow(self, p) + +proc put_msFlowFrom*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlowFrom(self, v) + +proc get_msFlowFrom*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlowFrom(self, p) + +proc put_msFlowInto*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlowInto(self, v) + +proc get_msFlowInto*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlowInto(self, p) + +proc put_msHyphens*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msHyphens(self, v) + +proc get_msHyphens*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msHyphens(self, p) + +proc put_msHyphenateLimitZone*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msHyphenateLimitZone(self, v) + +proc get_msHyphenateLimitZone*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msHyphenateLimitZone(self, p) + +proc put_msHyphenateLimitChars*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msHyphenateLimitChars(self, v) + +proc get_msHyphenateLimitChars*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msHyphenateLimitChars(self, p) + +proc put_msHyphenateLimitLines*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msHyphenateLimitLines(self, v) + +proc get_msHyphenateLimitLines*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msHyphenateLimitLines(self, p) + +proc put_msHighContrastAdjust*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msHighContrastAdjust(self, v) + +proc get_msHighContrastAdjust*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msHighContrastAdjust(self, p) + +proc put_enableBackground*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_enableBackground(self, v) + +proc get_enableBackground*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_enableBackground(self, p) + +proc put_msFontFeatureSettings*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFontFeatureSettings(self, v) + +proc get_msFontFeatureSettings*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFontFeatureSettings(self, p) + +proc put_msUserSelect*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msUserSelect(self, v) + +proc get_msUserSelect*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msUserSelect(self, p) + +proc put_msOverflowStyle*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msOverflowStyle(self, v) + +proc get_msOverflowStyle*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msOverflowStyle(self, p) + +proc put_msTransformStyle*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransformStyle(self, v) + +proc get_msTransformStyle*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransformStyle(self, p) + +proc put_msBackfaceVisibility*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msBackfaceVisibility(self, v) + +proc get_msBackfaceVisibility*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msBackfaceVisibility(self, p) + +proc put_msPerspective*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msPerspective(self, v) + +proc get_msPerspective*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msPerspective(self, p) + +proc put_msPerspectiveOrigin*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msPerspectiveOrigin(self, v) + +proc get_msPerspectiveOrigin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msPerspectiveOrigin(self, p) + +proc put_msTransitionProperty*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransitionProperty(self, v) + +proc get_msTransitionProperty*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransitionProperty(self, p) + +proc put_msTransitionDuration*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransitionDuration(self, v) + +proc get_msTransitionDuration*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransitionDuration(self, p) + +proc put_msTransitionTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransitionTimingFunction(self, v) + +proc get_msTransitionTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransitionTimingFunction(self, p) + +proc put_msTransitionDelay*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransitionDelay(self, v) + +proc get_msTransitionDelay*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransitionDelay(self, p) + +proc put_msTransition*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTransition(self, v) + +proc get_msTransition*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTransition(self, p) + +proc put_msTouchAction*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTouchAction(self, v) + +proc get_msTouchAction*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTouchAction(self, p) + +proc put_msScrollTranslation*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msScrollTranslation(self, v) + +proc get_msScrollTranslation*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msScrollTranslation(self, p) + +proc put_msFlex*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlex(self, v) + +proc get_msFlex*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlex(self, p) + +proc put_msFlexPositive*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexPositive(self, v) + +proc get_msFlexPositive*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexPositive(self, p) + +proc put_msFlexNegative*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexNegative(self, v) + +proc get_msFlexNegative*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexNegative(self, p) + +proc put_msFlexPreferredSize*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexPreferredSize(self, v) + +proc get_msFlexPreferredSize*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexPreferredSize(self, p) + +proc put_msFlexFlow*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexFlow(self, v) + +proc get_msFlexFlow*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexFlow(self, p) + +proc put_msFlexDirection*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexDirection(self, v) + +proc get_msFlexDirection*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexDirection(self, p) + +proc put_msFlexWrap*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexWrap(self, v) + +proc get_msFlexWrap*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexWrap(self, p) + +proc put_msFlexAlign*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexAlign(self, v) + +proc get_msFlexAlign*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexAlign(self, p) + +proc put_msFlexItemAlign*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexItemAlign(self, v) + +proc get_msFlexItemAlign*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexItemAlign(self, p) + +proc put_msFlexPack*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexPack(self, v) + +proc get_msFlexPack*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexPack(self, p) + +proc put_msFlexLinePack*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexLinePack(self, v) + +proc get_msFlexLinePack*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexLinePack(self, p) + +proc put_msFlexOrder*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msFlexOrder(self, v) + +proc get_msFlexOrder*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFlexOrder(self, p) + +proc put_msTouchSelect*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msTouchSelect(self, v) + +proc get_msTouchSelect*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msTouchSelect(self, p) + +proc put_transform*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transform(self, v) + +proc get_transform*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transform(self, p) + +proc put_transformOrigin*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transformOrigin(self, v) + +proc get_transformOrigin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transformOrigin(self, p) + +proc put_transformStyle*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transformStyle(self, v) + +proc get_transformStyle*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transformStyle(self, p) + +proc put_backfaceVisibility*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backfaceVisibility(self, v) + +proc get_backfaceVisibility*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backfaceVisibility(self, p) + +proc put_perspective*( + self: ptr IHTMLCSSStyleDeclaration2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_perspective(self, v) + +proc get_perspective*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_perspective(self, p) + +proc put_perspectiveOrigin*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_perspectiveOrigin(self, v) + +proc get_perspectiveOrigin*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_perspectiveOrigin(self, p) + +proc put_transitionProperty*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transitionProperty(self, v) + +proc get_transitionProperty*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transitionProperty(self, p) + +proc put_transitionDuration*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transitionDuration(self, v) + +proc get_transitionDuration*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transitionDuration(self, p) + +proc put_transitionTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transitionTimingFunction(self, v) + +proc get_transitionTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transitionTimingFunction(self, p) + +proc put_transitionDelay*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transitionDelay(self, v) + +proc get_transitionDelay*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transitionDelay(self, p) + +proc put_transition*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_transition(self, v) + +proc get_transition*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transition(self, p) + +proc put_fontFeatureSettings*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontFeatureSettings(self, v) + +proc get_fontFeatureSettings*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontFeatureSettings(self, p) + +proc put_animationName*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationName(self, v) + +proc get_animationName*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationName(self, p) + +proc put_animationDuration*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationDuration(self, v) + +proc get_animationDuration*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationDuration(self, p) + +proc put_animationTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationTimingFunction(self, v) + +proc get_animationTimingFunction*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationTimingFunction(self, p) + +proc put_animationDelay*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationDelay(self, v) + +proc get_animationDelay*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationDelay(self, p) + +proc put_animationDirection*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationDirection(self, v) + +proc get_animationDirection*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationDirection(self, p) + +proc put_animationPlayState*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationPlayState(self, v) + +proc get_animationPlayState*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationPlayState(self, p) + +proc put_animationIterationCount*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationIterationCount(self, v) + +proc get_animationIterationCount*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationIterationCount(self, p) + +proc put_animation*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animation(self, v) + +proc get_animation*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animation(self, p) + +proc put_animationFillMode*( + self: ptr IHTMLCSSStyleDeclaration2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animationFillMode(self, v) + +proc get_animationFillMode*( + self: ptr IHTMLCSSStyleDeclaration2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationFillMode(self, p) + +proc msGetPropertyEnabled*( + self: ptr IHTMLStyleEnabled, name: BSTR, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msGetPropertyEnabled(self, name, p) + +proc msPutPropertyEnabled*( + self: ptr IHTMLStyleEnabled, name: BSTR, b: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msPutPropertyEnabled(self, name, b) + +proc put_fontFamily*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontFamily(self, v) + +proc get_fontFamily*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontFamily(self, p) + +proc put_fontStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontStyle(self, v) + +proc get_fontStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontStyle(self, p) + +proc put_fontVariant*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontVariant(self, v) + +proc get_fontVariant*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontVariant(self, p) + +proc put_fontWeight*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontWeight(self, v) + +proc get_fontWeight*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontWeight(self, p) + +proc put_fontSize*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontSize(self, v) + +proc get_fontSize*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSize(self, p) + +proc put_font*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_font(self, v) + +proc get_font*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_font(self, p) + +proc put_color*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_color(self, v) + +proc get_color*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc put_background*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_backgroundColor*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundColor(self, v) + +proc get_backgroundColor*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundColor(self, p) + +proc put_backgroundImage*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundImage(self, v) + +proc get_backgroundImage*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundImage(self, p) + +proc put_backgroundRepeat*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundRepeat(self, v) + +proc get_backgroundRepeat*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundRepeat(self, p) + +proc put_backgroundAttachment*( + self: ptr IHTMLStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundAttachment(self, v) + +proc get_backgroundAttachment*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundAttachment(self, p) + +proc put_backgroundPosition*( + self: ptr IHTMLStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPosition(self, v) + +proc get_backgroundPosition*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPosition(self, p) + +proc put_backgroundPositionX*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPositionX(self, v) + +proc get_backgroundPositionX*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionX(self, p) + +proc put_backgroundPositionY*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPositionY(self, v) + +proc get_backgroundPositionY*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionY(self, p) + +proc put_wordSpacing*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordSpacing(self, v) + +proc get_wordSpacing*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordSpacing(self, p) + +proc put_letterSpacing*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_letterSpacing(self, v) + +proc get_letterSpacing*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_letterSpacing(self, p) + +proc put_textDecoration*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecoration(self, v) + +proc get_textDecoration*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecoration(self, p) + +proc put_textDecorationNone*( + self: ptr IHTMLStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationNone(self, v) + +proc get_textDecorationNone*( + self: ptr IHTMLStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationNone(self, p) + +proc put_textDecorationUnderline*( + self: ptr IHTMLStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationUnderline(self, v) + +proc get_textDecorationUnderline*( + self: ptr IHTMLStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationUnderline(self, p) + +proc put_textDecorationOverline*( + self: ptr IHTMLStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationOverline(self, v) + +proc get_textDecorationOverline*( + self: ptr IHTMLStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationOverline(self, p) + +proc put_textDecorationLineThrough*( + self: ptr IHTMLStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationLineThrough(self, v) + +proc get_textDecorationLineThrough*( + self: ptr IHTMLStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationLineThrough(self, p) + +proc put_textDecorationBlink*( + self: ptr IHTMLStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationBlink(self, v) + +proc get_textDecorationBlink*( + self: ptr IHTMLStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationBlink(self, p) + +proc put_verticalAlign*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_verticalAlign(self, v) + +proc get_verticalAlign*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_verticalAlign(self, p) + +proc put_textTransform*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textTransform(self, v) + +proc get_textTransform*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textTransform(self, p) + +proc put_textAlign*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlign(self, v) + +proc get_textAlign*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlign(self, p) + +proc put_textIndent*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textIndent(self, v) + +proc get_textIndent*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textIndent(self, p) + +proc put_lineHeight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineHeight(self, v) + +proc get_lineHeight*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineHeight(self, p) + +proc put_marginTop*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginTop(self, v) + +proc get_marginTop*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginTop(self, p) + +proc put_marginRight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginRight(self, v) + +proc get_marginRight*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginRight(self, p) + +proc put_marginBottom*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginBottom(self, v) + +proc get_marginBottom*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginBottom(self, p) + +proc put_marginLeft*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginLeft(self, v) + +proc get_marginLeft*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginLeft(self, p) + +proc put_margin*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_margin(self, v) + +proc get_margin*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_margin(self, p) + +proc put_paddingTop*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingTop(self, v) + +proc get_paddingTop*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingTop(self, p) + +proc put_paddingRight*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingRight(self, v) + +proc get_paddingRight*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingRight(self, p) + +proc put_paddingBottom*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingBottom(self, v) + +proc get_paddingBottom*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingBottom(self, p) + +proc put_paddingLeft*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingLeft(self, v) + +proc get_paddingLeft*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingLeft(self, p) + +proc put_padding*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_padding(self, v) + +proc get_padding*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_padding(self, p) + +proc put_border*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_borderTop*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTop(self, v) + +proc get_borderTop*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTop(self, p) + +proc put_borderRight*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRight(self, v) + +proc get_borderRight*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRight(self, p) + +proc put_borderBottom*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottom(self, v) + +proc get_borderBottom*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottom(self, p) + +proc put_borderLeft*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeft(self, v) + +proc get_borderLeft*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeft(self, p) + +proc put_borderColor*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_borderTopColor*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopColor(self, v) + +proc get_borderTopColor*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopColor(self, p) + +proc put_borderRightColor*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightColor(self, v) + +proc get_borderRightColor*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightColor(self, p) + +proc put_borderBottomColor*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomColor(self, v) + +proc get_borderBottomColor*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomColor(self, p) + +proc put_borderLeftColor*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftColor(self, v) + +proc get_borderLeftColor*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftColor(self, p) + +proc put_borderWidth*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderWidth(self, v) + +proc get_borderWidth*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderWidth(self, p) + +proc put_borderTopWidth*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopWidth(self, v) + +proc get_borderTopWidth*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopWidth(self, p) + +proc put_borderRightWidth*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightWidth(self, v) + +proc get_borderRightWidth*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightWidth(self, p) + +proc put_borderBottomWidth*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomWidth(self, v) + +proc get_borderBottomWidth*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomWidth(self, p) + +proc put_borderLeftWidth*( + self: ptr IHTMLStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftWidth(self, v) + +proc get_borderLeftWidth*( + self: ptr IHTMLStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftWidth(self, p) + +proc put_borderStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderStyle(self, v) + +proc get_borderStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderStyle(self, p) + +proc put_borderTopStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopStyle(self, v) + +proc get_borderTopStyle*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopStyle(self, p) + +proc put_borderRightStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightStyle(self, v) + +proc get_borderRightStyle*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightStyle(self, p) + +proc put_borderBottomStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomStyle(self, v) + +proc get_borderBottomStyle*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomStyle(self, p) + +proc put_borderLeftStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftStyle(self, v) + +proc get_borderLeftStyle*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftStyle(self, p) + +proc put_width*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_styleFloat*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_styleFloat(self, v) + +proc get_styleFloat*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleFloat(self, p) + +proc put_clear*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clear(self, v) + +proc get_clear*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clear(self, p) + +proc put_display*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_display(self, v) + +proc get_display*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_display(self, p) + +proc put_visibility*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_visibility(self, v) + +proc get_visibility*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_visibility(self, p) + +proc put_listStyleType*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyleType(self, v) + +proc get_listStyleType*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleType(self, p) + +proc put_listStylePosition*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStylePosition(self, v) + +proc get_listStylePosition*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStylePosition(self, p) + +proc put_listStyleImage*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyleImage(self, v) + +proc get_listStyleImage*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleImage(self, p) + +proc put_listStyle*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyle(self, v) + +proc get_listStyle*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyle(self, p) + +proc put_whiteSpace*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_whiteSpace(self, v) + +proc get_whiteSpace*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_whiteSpace(self, p) + +proc put_top*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_top(self, v) + +proc get_top*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_top(self, p) + +proc put_left*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_left(self, v) + +proc get_left*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_left(self, p) + +proc get_position*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc put_zIndex*(self: ptr IHTMLStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_zIndex(self, v) + +proc get_zIndex*(self: ptr IHTMLStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zIndex(self, p) + +proc put_overflow*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflow(self, v) + +proc get_overflow*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflow(self, p) + +proc put_pageBreakBefore*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakBefore(self, v) + +proc get_pageBreakBefore*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakBefore(self, p) + +proc put_pageBreakAfter*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakAfter(self, v) + +proc get_pageBreakAfter*( + self: ptr IHTMLStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakAfter(self, p) + +proc put_cssText*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cssText(self, v) + +proc get_cssText*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssText(self, p) + +proc put_pixelTop*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelTop(self, v) + +proc get_pixelTop*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelTop(self, p) + +proc put_pixelLeft*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelLeft(self, v) + +proc get_pixelLeft*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelLeft(self, p) + +proc put_pixelWidth*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelWidth(self, v) + +proc get_pixelWidth*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelWidth(self, p) + +proc put_pixelHeight*(self: ptr IHTMLStyle, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelHeight(self, v) + +proc get_pixelHeight*(self: ptr IHTMLStyle, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelHeight(self, p) + +proc put_posTop*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posTop(self, v) + +proc get_posTop*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posTop(self, p) + +proc put_posLeft*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posLeft(self, v) + +proc get_posLeft*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posLeft(self, p) + +proc put_posWidth*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posWidth(self, v) + +proc get_posWidth*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posWidth(self, p) + +proc put_posHeight*(self: ptr IHTMLStyle, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posHeight(self, v) + +proc get_posHeight*(self: ptr IHTMLStyle, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posHeight(self, p) + +proc put_cursor*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cursor(self, v) + +proc get_cursor*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cursor(self, p) + +proc put_clip*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clip(self, v) + +proc get_clip*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clip(self, p) + +proc put_filter*(self: ptr IHTMLStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_filter(self, v) + +proc get_filter*(self: ptr IHTMLStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filter(self, p) + +proc setAttribute*( + self: ptr IHTMLStyle, strAttributeName: BSTR, AttributeValue: VARIANT, lFlags: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) + +proc getAttribute*( + self: ptr IHTMLStyle, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) + +proc removeAttribute*( + self: ptr IHTMLStyle, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) + +proc toString*(self: ptr IHTMLStyle, String: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc put_tableLayout*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tableLayout(self, v) + +proc get_tableLayout*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tableLayout(self, p) + +proc put_borderCollapse*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderCollapse(self, v) + +proc get_borderCollapse*( + self: ptr IHTMLStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderCollapse(self, p) + +proc put_direction*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_direction(self, v) + +proc get_direction*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_direction(self, p) + +proc put_behavior*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_behavior(self, v) + +proc get_behavior*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behavior(self, p) + +proc setExpression*( + self: ptr IHTMLStyle2, propname: BSTR, expression: BSTR, language: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setExpression(self, propname, expression, language) + +proc getExpression*( + self: ptr IHTMLStyle2, propname: BSTR, expression: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getExpression(self, propname, expression) + +proc removeExpression*( + self: ptr IHTMLStyle2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeExpression(self, propname, pfSuccess) + +proc put_position*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_position(self, v) + +proc get_position*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc put_unicodeBidi*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_unicodeBidi(self, v) + +proc get_unicodeBidi*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unicodeBidi(self, p) + +proc put_bottom*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bottom(self, v) + +proc get_bottom*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bottom(self, p) + +proc put_right*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_right(self, v) + +proc get_right*(self: ptr IHTMLStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_right(self, p) + +proc put_pixelBottom*(self: ptr IHTMLStyle2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelBottom(self, v) + +proc get_pixelBottom*(self: ptr IHTMLStyle2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelBottom(self, p) + +proc put_pixelRight*(self: ptr IHTMLStyle2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelRight(self, v) + +proc get_pixelRight*(self: ptr IHTMLStyle2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelRight(self, p) + +proc put_posBottom*(self: ptr IHTMLStyle2, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posBottom(self, v) + +proc get_posBottom*(self: ptr IHTMLStyle2, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posBottom(self, p) + +proc put_posRight*(self: ptr IHTMLStyle2, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posRight(self, v) + +proc get_posRight*(self: ptr IHTMLStyle2, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posRight(self, p) + +proc put_imeMode*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_imeMode(self, v) + +proc get_imeMode*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeMode(self, p) + +proc put_rubyAlign*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyAlign(self, v) + +proc get_rubyAlign*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyAlign(self, p) + +proc put_rubyPosition*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyPosition(self, v) + +proc get_rubyPosition*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyPosition(self, p) + +proc put_rubyOverhang*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyOverhang(self, v) + +proc get_rubyOverhang*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyOverhang(self, p) + +proc put_layoutGridChar*( + self: ptr IHTMLStyle2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridChar(self, v) + +proc get_layoutGridChar*( + self: ptr IHTMLStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridChar(self, p) + +proc put_layoutGridLine*( + self: ptr IHTMLStyle2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridLine(self, v) + +proc get_layoutGridLine*( + self: ptr IHTMLStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridLine(self, p) + +proc put_layoutGridMode*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridMode(self, v) + +proc get_layoutGridMode*( + self: ptr IHTMLStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridMode(self, p) + +proc put_layoutGridType*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridType(self, v) + +proc get_layoutGridType*( + self: ptr IHTMLStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridType(self, p) + +proc put_layoutGrid*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGrid(self, v) + +proc get_layoutGrid*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGrid(self, p) + +proc put_wordBreak*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordBreak(self, v) + +proc get_wordBreak*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordBreak(self, p) + +proc put_lineBreak*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineBreak(self, v) + +proc get_lineBreak*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineBreak(self, p) + +proc put_textJustify*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textJustify(self, v) + +proc get_textJustify*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustify(self, p) + +proc put_textJustifyTrim*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textJustifyTrim(self, v) + +proc get_textJustifyTrim*( + self: ptr IHTMLStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustifyTrim(self, p) + +proc put_textKashida*(self: ptr IHTMLStyle2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textKashida(self, v) + +proc get_textKashida*( + self: ptr IHTMLStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashida(self, p) + +proc put_textAutospace*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAutospace(self, v) + +proc get_textAutospace*( + self: ptr IHTMLStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAutospace(self, p) + +proc put_overflowX*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflowX(self, v) + +proc get_overflowX*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowX(self, p) + +proc put_overflowY*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflowY(self, v) + +proc get_overflowY*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowY(self, p) + +proc put_accelerator*(self: ptr IHTMLStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accelerator(self, v) + +proc get_accelerator*(self: ptr IHTMLStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accelerator(self, p) + +proc put_layoutFlow*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutFlow(self, v) + +proc get_layoutFlow*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutFlow(self, p) + +proc put_zoom*(self: ptr IHTMLStyle3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_zoom(self, v) + +proc get_zoom*(self: ptr IHTMLStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zoom(self, p) + +proc put_wordWrap*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordWrap(self, v) + +proc get_wordWrap*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordWrap(self, p) + +proc put_textUnderlinePosition*( + self: ptr IHTMLStyle3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textUnderlinePosition(self, v) + +proc get_textUnderlinePosition*( + self: ptr IHTMLStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textUnderlinePosition(self, p) + +proc put_scrollbarBaseColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarBaseColor(self, v) + +proc get_scrollbarBaseColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarBaseColor(self, p) + +proc put_scrollbarFaceColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarFaceColor(self, v) + +proc get_scrollbarFaceColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarFaceColor(self, p) + +proc put_scrollbar3dLightColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbar3dLightColor(self, v) + +proc get_scrollbar3dLightColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbar3dLightColor(self, p) + +proc put_scrollbarShadowColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarShadowColor(self, v) + +proc get_scrollbarShadowColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarShadowColor(self, p) + +proc put_scrollbarHighlightColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarHighlightColor(self, v) + +proc get_scrollbarHighlightColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarHighlightColor(self, p) + +proc put_scrollbarDarkShadowColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarDarkShadowColor(self, v) + +proc get_scrollbarDarkShadowColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarDarkShadowColor(self, p) + +proc put_scrollbarArrowColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarArrowColor(self, v) + +proc get_scrollbarArrowColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarArrowColor(self, p) + +proc put_scrollbarTrackColor*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarTrackColor(self, v) + +proc get_scrollbarTrackColor*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarTrackColor(self, p) + +proc put_writingMode*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_writingMode(self, v) + +proc get_writingMode*(self: ptr IHTMLStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_writingMode(self, p) + +proc put_textAlignLast*(self: ptr IHTMLStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlignLast(self, v) + +proc get_textAlignLast*( + self: ptr IHTMLStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlignLast(self, p) + +proc put_textKashidaSpace*( + self: ptr IHTMLStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textKashidaSpace(self, v) + +proc get_textKashidaSpace*( + self: ptr IHTMLStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashidaSpace(self, p) + +proc put_textOverflow*(self: ptr IHTMLStyle4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textOverflow(self, v) + +proc get_textOverflow*(self: ptr IHTMLStyle4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textOverflow(self, p) + +proc put_minHeight*(self: ptr IHTMLStyle4, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minHeight(self, v) + +proc get_minHeight*(self: ptr IHTMLStyle4, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minHeight(self, p) + +proc put_msInterpolationMode*( + self: ptr IHTMLStyle5, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msInterpolationMode(self, v) + +proc get_msInterpolationMode*( + self: ptr IHTMLStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msInterpolationMode(self, p) + +proc put_maxHeight*(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxHeight(self, v) + +proc get_maxHeight*(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxHeight(self, p) + +proc put_minWidth*(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minWidth(self, v) + +proc get_minWidth*(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minWidth(self, p) + +proc put_maxWidth*(self: ptr IHTMLStyle5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxWidth(self, v) + +proc get_maxWidth*(self: ptr IHTMLStyle5, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxWidth(self, p) + +proc put_content*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_content(self, v) + +proc get_content*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_content(self, p) + +proc put_captionSide*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_captionSide(self, v) + +proc get_captionSide*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_captionSide(self, p) + +proc put_counterIncrement*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_counterIncrement(self, v) + +proc get_counterIncrement*( + self: ptr IHTMLStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_counterIncrement(self, p) + +proc put_counterReset*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_counterReset(self, v) + +proc get_counterReset*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_counterReset(self, p) + +proc put_outline*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outline(self, v) + +proc get_outline*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outline(self, p) + +proc put_outlineWidth*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineWidth(self, v) + +proc get_outlineWidth*( + self: ptr IHTMLStyle6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineWidth(self, p) + +proc put_outlineStyle*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineStyle(self, v) + +proc get_outlineStyle*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineStyle(self, p) + +proc put_outlineColor*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineColor(self, v) + +proc get_outlineColor*( + self: ptr IHTMLStyle6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineColor(self, p) + +proc put_boxSizing*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_boxSizing(self, v) + +proc get_boxSizing*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boxSizing(self, p) + +proc put_borderSpacing*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderSpacing(self, v) + +proc get_borderSpacing*( + self: ptr IHTMLStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderSpacing(self, p) + +proc put_orphans*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_orphans(self, v) + +proc get_orphans*(self: ptr IHTMLStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orphans(self, p) + +proc put_widows*(self: ptr IHTMLStyle6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_widows(self, v) + +proc get_widows*(self: ptr IHTMLStyle6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_widows(self, p) + +proc put_pageBreakInside*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakInside(self, v) + +proc get_pageBreakInside*( + self: ptr IHTMLStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakInside(self, p) + +proc put_emptyCells*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_emptyCells(self, v) + +proc get_emptyCells*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_emptyCells(self, p) + +proc put_msBlockProgression*( + self: ptr IHTMLStyle6, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msBlockProgression(self, v) + +proc get_msBlockProgression*( + self: ptr IHTMLStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msBlockProgression(self, p) + +proc put_quotes*(self: ptr IHTMLStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_quotes(self, v) + +proc get_quotes*(self: ptr IHTMLStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_quotes(self, p) + +proc put_fontFamily*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontFamily(self, v) + +proc get_fontFamily*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontFamily(self, p) + +proc put_fontStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontStyle(self, v) + +proc get_fontStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontStyle(self, p) + +proc put_fontVariant*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontVariant(self, v) + +proc get_fontVariant*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontVariant(self, p) + +proc put_fontWeight*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontWeight(self, v) + +proc get_fontWeight*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontWeight(self, p) + +proc put_fontSize*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontSize(self, v) + +proc get_fontSize*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSize(self, p) + +proc put_font*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_font(self, v) + +proc get_font*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_font(self, p) + +proc put_color*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_color(self, v) + +proc get_color*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc put_background*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_backgroundColor*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundColor(self, v) + +proc get_backgroundColor*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundColor(self, p) + +proc put_backgroundImage*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundImage(self, v) + +proc get_backgroundImage*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundImage(self, p) + +proc put_backgroundRepeat*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundRepeat(self, v) + +proc get_backgroundRepeat*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundRepeat(self, p) + +proc put_backgroundAttachment*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundAttachment(self, v) + +proc get_backgroundAttachment*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundAttachment(self, p) + +proc put_backgroundPosition*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPosition(self, v) + +proc get_backgroundPosition*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPosition(self, p) + +proc put_backgroundPositionX*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPositionX(self, v) + +proc get_backgroundPositionX*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionX(self, p) + +proc put_backgroundPositionY*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_backgroundPositionY(self, v) + +proc get_backgroundPositionY*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionY(self, p) + +proc put_wordSpacing*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordSpacing(self, v) + +proc get_wordSpacing*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordSpacing(self, p) + +proc put_letterSpacing*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_letterSpacing(self, v) + +proc get_letterSpacing*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_letterSpacing(self, p) + +proc put_textDecoration*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecoration(self, v) + +proc get_textDecoration*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecoration(self, p) + +proc put_textDecorationNone*( + self: ptr IHTMLRuleStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationNone(self, v) + +proc get_textDecorationNone*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationNone(self, p) + +proc put_textDecorationUnderline*( + self: ptr IHTMLRuleStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationUnderline(self, v) + +proc get_textDecorationUnderline*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationUnderline(self, p) + +proc put_textDecorationOverline*( + self: ptr IHTMLRuleStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationOverline(self, v) + +proc get_textDecorationOverline*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationOverline(self, p) + +proc put_textDecorationLineThrough*( + self: ptr IHTMLRuleStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationLineThrough(self, v) + +proc get_textDecorationLineThrough*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationLineThrough(self, p) + +proc put_textDecorationBlink*( + self: ptr IHTMLRuleStyle, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationBlink(self, v) + +proc get_textDecorationBlink*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationBlink(self, p) + +proc put_verticalAlign*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_verticalAlign(self, v) + +proc get_verticalAlign*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_verticalAlign(self, p) + +proc put_textTransform*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textTransform(self, v) + +proc get_textTransform*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textTransform(self, p) + +proc put_textAlign*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlign(self, v) + +proc get_textAlign*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlign(self, p) + +proc put_textIndent*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textIndent(self, v) + +proc get_textIndent*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textIndent(self, p) + +proc put_lineHeight*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineHeight(self, v) + +proc get_lineHeight*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineHeight(self, p) + +proc put_marginTop*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginTop(self, v) + +proc get_marginTop*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginTop(self, p) + +proc put_marginRight*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginRight(self, v) + +proc get_marginRight*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginRight(self, p) + +proc put_marginBottom*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginBottom(self, v) + +proc get_marginBottom*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginBottom(self, p) + +proc put_marginLeft*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginLeft(self, v) + +proc get_marginLeft*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginLeft(self, p) + +proc put_margin*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_margin(self, v) + +proc get_margin*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_margin(self, p) + +proc put_paddingTop*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingTop(self, v) + +proc get_paddingTop*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingTop(self, p) + +proc put_paddingRight*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingRight(self, v) + +proc get_paddingRight*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingRight(self, p) + +proc put_paddingBottom*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingBottom(self, v) + +proc get_paddingBottom*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingBottom(self, p) + +proc put_paddingLeft*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_paddingLeft(self, v) + +proc get_paddingLeft*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingLeft(self, p) + +proc put_padding*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_padding(self, v) + +proc get_padding*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_padding(self, p) + +proc put_border*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_borderTop*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTop(self, v) + +proc get_borderTop*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTop(self, p) + +proc put_borderRight*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRight(self, v) + +proc get_borderRight*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRight(self, p) + +proc put_borderBottom*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottom(self, v) + +proc get_borderBottom*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottom(self, p) + +proc put_borderLeft*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeft(self, v) + +proc get_borderLeft*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeft(self, p) + +proc put_borderColor*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_borderTopColor*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopColor(self, v) + +proc get_borderTopColor*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopColor(self, p) + +proc put_borderRightColor*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightColor(self, v) + +proc get_borderRightColor*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightColor(self, p) + +proc put_borderBottomColor*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomColor(self, v) + +proc get_borderBottomColor*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomColor(self, p) + +proc put_borderLeftColor*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftColor(self, v) + +proc get_borderLeftColor*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftColor(self, p) + +proc put_borderWidth*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderWidth(self, v) + +proc get_borderWidth*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderWidth(self, p) + +proc put_borderTopWidth*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopWidth(self, v) + +proc get_borderTopWidth*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopWidth(self, p) + +proc put_borderRightWidth*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightWidth(self, v) + +proc get_borderRightWidth*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightWidth(self, p) + +proc put_borderBottomWidth*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomWidth(self, v) + +proc get_borderBottomWidth*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomWidth(self, p) + +proc put_borderLeftWidth*( + self: ptr IHTMLRuleStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftWidth(self, v) + +proc get_borderLeftWidth*( + self: ptr IHTMLRuleStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftWidth(self, p) + +proc put_borderStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderStyle(self, v) + +proc get_borderStyle*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderStyle(self, p) + +proc put_borderTopStyle*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderTopStyle(self, v) + +proc get_borderTopStyle*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopStyle(self, p) + +proc put_borderRightStyle*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderRightStyle(self, v) + +proc get_borderRightStyle*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightStyle(self, p) + +proc put_borderBottomStyle*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderBottomStyle(self, v) + +proc get_borderBottomStyle*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomStyle(self, p) + +proc put_borderLeftStyle*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderLeftStyle(self, v) + +proc get_borderLeftStyle*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftStyle(self, p) + +proc put_width*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_styleFloat*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_styleFloat(self, v) + +proc get_styleFloat*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleFloat(self, p) + +proc put_clear*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clear(self, v) + +proc get_clear*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clear(self, p) + +proc put_display*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_display(self, v) + +proc get_display*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_display(self, p) + +proc put_visibility*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_visibility(self, v) + +proc get_visibility*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_visibility(self, p) + +proc put_listStyleType*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyleType(self, v) + +proc get_listStyleType*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleType(self, p) + +proc put_listStylePosition*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStylePosition(self, v) + +proc get_listStylePosition*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStylePosition(self, p) + +proc put_listStyleImage*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyleImage(self, v) + +proc get_listStyleImage*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleImage(self, p) + +proc put_listStyle*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_listStyle(self, v) + +proc get_listStyle*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyle(self, p) + +proc put_whiteSpace*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_whiteSpace(self, v) + +proc get_whiteSpace*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_whiteSpace(self, p) + +proc put_top*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_top(self, v) + +proc get_top*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_top(self, p) + +proc put_left*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_left(self, v) + +proc get_left*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_left(self, p) + +proc get_position*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc put_zIndex*(self: ptr IHTMLRuleStyle, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_zIndex(self, v) + +proc get_zIndex*(self: ptr IHTMLRuleStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zIndex(self, p) + +proc put_overflow*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflow(self, v) + +proc get_overflow*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflow(self, p) + +proc put_pageBreakBefore*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakBefore(self, v) + +proc get_pageBreakBefore*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakBefore(self, p) + +proc put_pageBreakAfter*( + self: ptr IHTMLRuleStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakAfter(self, v) + +proc get_pageBreakAfter*( + self: ptr IHTMLRuleStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakAfter(self, p) + +proc put_cssText*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cssText(self, v) + +proc get_cssText*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssText(self, p) + +proc put_cursor*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cursor(self, v) + +proc get_cursor*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cursor(self, p) + +proc put_clip*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clip(self, v) + +proc get_clip*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clip(self, p) + +proc put_filter*(self: ptr IHTMLRuleStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_filter(self, v) + +proc get_filter*(self: ptr IHTMLRuleStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filter(self, p) + +proc setAttribute*( + self: ptr IHTMLRuleStyle, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) + +proc getAttribute*( + self: ptr IHTMLRuleStyle, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) + +proc removeAttribute*( + self: ptr IHTMLRuleStyle, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) + +proc put_tableLayout*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tableLayout(self, v) + +proc get_tableLayout*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tableLayout(self, p) + +proc put_borderCollapse*( + self: ptr IHTMLRuleStyle2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderCollapse(self, v) + +proc get_borderCollapse*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderCollapse(self, p) + +proc put_direction*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_direction(self, v) + +proc get_direction*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_direction(self, p) + +proc put_behavior*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_behavior(self, v) + +proc get_behavior*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behavior(self, p) + +proc put_position*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_position(self, v) + +proc get_position*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc put_unicodeBidi*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_unicodeBidi(self, v) + +proc get_unicodeBidi*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unicodeBidi(self, p) + +proc put_bottom*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bottom(self, v) + +proc get_bottom*( + self: ptr IHTMLRuleStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bottom(self, p) + +proc put_right*(self: ptr IHTMLRuleStyle2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_right(self, v) + +proc get_right*(self: ptr IHTMLRuleStyle2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_right(self, p) + +proc put_pixelBottom*(self: ptr IHTMLRuleStyle2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelBottom(self, v) + +proc get_pixelBottom*( + self: ptr IHTMLRuleStyle2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelBottom(self, p) + +proc put_pixelRight*(self: ptr IHTMLRuleStyle2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelRight(self, v) + +proc get_pixelRight*( + self: ptr IHTMLRuleStyle2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelRight(self, p) + +proc put_posBottom*(self: ptr IHTMLRuleStyle2, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posBottom(self, v) + +proc get_posBottom*( + self: ptr IHTMLRuleStyle2, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posBottom(self, p) + +proc put_posRight*(self: ptr IHTMLRuleStyle2, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_posRight(self, v) + +proc get_posRight*( + self: ptr IHTMLRuleStyle2, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_posRight(self, p) + +proc put_imeMode*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_imeMode(self, v) + +proc get_imeMode*(self: ptr IHTMLRuleStyle2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeMode(self, p) + +proc put_rubyAlign*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyAlign(self, v) + +proc get_rubyAlign*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyAlign(self, p) + +proc put_rubyPosition*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyPosition(self, v) + +proc get_rubyPosition*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyPosition(self, p) + +proc put_rubyOverhang*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rubyOverhang(self, v) + +proc get_rubyOverhang*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyOverhang(self, p) + +proc put_layoutGridChar*( + self: ptr IHTMLRuleStyle2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridChar(self, v) + +proc get_layoutGridChar*( + self: ptr IHTMLRuleStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridChar(self, p) + +proc put_layoutGridLine*( + self: ptr IHTMLRuleStyle2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridLine(self, v) + +proc get_layoutGridLine*( + self: ptr IHTMLRuleStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridLine(self, p) + +proc put_layoutGridMode*( + self: ptr IHTMLRuleStyle2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridMode(self, v) + +proc get_layoutGridMode*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridMode(self, p) + +proc put_layoutGridType*( + self: ptr IHTMLRuleStyle2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGridType(self, v) + +proc get_layoutGridType*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridType(self, p) + +proc put_layoutGrid*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutGrid(self, v) + +proc get_layoutGrid*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGrid(self, p) + +proc put_textAutospace*( + self: ptr IHTMLRuleStyle2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAutospace(self, v) + +proc get_textAutospace*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAutospace(self, p) + +proc put_wordBreak*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordBreak(self, v) + +proc get_wordBreak*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordBreak(self, p) + +proc put_lineBreak*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineBreak(self, v) + +proc get_lineBreak*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineBreak(self, p) + +proc put_textJustify*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textJustify(self, v) + +proc get_textJustify*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustify(self, p) + +proc put_textJustifyTrim*( + self: ptr IHTMLRuleStyle2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textJustifyTrim(self, v) + +proc get_textJustifyTrim*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustifyTrim(self, p) + +proc put_textKashida*( + self: ptr IHTMLRuleStyle2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textKashida(self, v) + +proc get_textKashida*( + self: ptr IHTMLRuleStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashida(self, p) + +proc put_overflowX*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflowX(self, v) + +proc get_overflowX*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowX(self, p) + +proc put_overflowY*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_overflowY(self, v) + +proc get_overflowY*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowY(self, p) + +proc put_accelerator*(self: ptr IHTMLRuleStyle2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accelerator(self, v) + +proc get_accelerator*( + self: ptr IHTMLRuleStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accelerator(self, p) + +proc put_layoutFlow*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_layoutFlow(self, v) + +proc get_layoutFlow*( + self: ptr IHTMLRuleStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutFlow(self, p) + +proc put_zoom*(self: ptr IHTMLRuleStyle3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_zoom(self, v) + +proc get_zoom*(self: ptr IHTMLRuleStyle3, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zoom(self, p) + +proc put_wordWrap*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wordWrap(self, v) + +proc get_wordWrap*(self: ptr IHTMLRuleStyle3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordWrap(self, p) + +proc put_textUnderlinePosition*( + self: ptr IHTMLRuleStyle3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textUnderlinePosition(self, v) + +proc get_textUnderlinePosition*( + self: ptr IHTMLRuleStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textUnderlinePosition(self, p) + +proc put_scrollbarBaseColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarBaseColor(self, v) + +proc get_scrollbarBaseColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarBaseColor(self, p) + +proc put_scrollbarFaceColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarFaceColor(self, v) + +proc get_scrollbarFaceColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarFaceColor(self, p) + +proc put_scrollbar3dLightColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbar3dLightColor(self, v) + +proc get_scrollbar3dLightColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbar3dLightColor(self, p) + +proc put_scrollbarShadowColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarShadowColor(self, v) + +proc get_scrollbarShadowColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarShadowColor(self, p) + +proc put_scrollbarHighlightColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarHighlightColor(self, v) + +proc get_scrollbarHighlightColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarHighlightColor(self, p) + +proc put_scrollbarDarkShadowColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarDarkShadowColor(self, v) + +proc get_scrollbarDarkShadowColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarDarkShadowColor(self, p) + +proc put_scrollbarArrowColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarArrowColor(self, v) + +proc get_scrollbarArrowColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarArrowColor(self, p) + +proc put_scrollbarTrackColor*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbarTrackColor(self, v) + +proc get_scrollbarTrackColor*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarTrackColor(self, p) + +proc put_writingMode*(self: ptr IHTMLRuleStyle3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_writingMode(self, v) + +proc get_writingMode*( + self: ptr IHTMLRuleStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_writingMode(self, p) + +proc put_textAlignLast*( + self: ptr IHTMLRuleStyle3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlignLast(self, v) + +proc get_textAlignLast*( + self: ptr IHTMLRuleStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlignLast(self, p) + +proc put_textKashidaSpace*( + self: ptr IHTMLRuleStyle3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textKashidaSpace(self, v) + +proc get_textKashidaSpace*( + self: ptr IHTMLRuleStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashidaSpace(self, p) + +proc put_textOverflow*(self: ptr IHTMLRuleStyle4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textOverflow(self, v) + +proc get_textOverflow*( + self: ptr IHTMLRuleStyle4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textOverflow(self, p) + +proc put_minHeight*(self: ptr IHTMLRuleStyle4, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minHeight(self, v) + +proc get_minHeight*( + self: ptr IHTMLRuleStyle4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minHeight(self, p) + +proc put_msInterpolationMode*( + self: ptr IHTMLRuleStyle5, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msInterpolationMode(self, v) + +proc get_msInterpolationMode*( + self: ptr IHTMLRuleStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msInterpolationMode(self, p) + +proc put_maxHeight*(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxHeight(self, v) + +proc get_maxHeight*( + self: ptr IHTMLRuleStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxHeight(self, p) + +proc put_minWidth*(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minWidth(self, v) + +proc get_minWidth*( + self: ptr IHTMLRuleStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minWidth(self, p) + +proc put_maxWidth*(self: ptr IHTMLRuleStyle5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxWidth(self, v) + +proc get_maxWidth*( + self: ptr IHTMLRuleStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxWidth(self, p) + +proc put_content*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_content(self, v) + +proc get_content*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_content(self, p) + +proc put_captionSide*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_captionSide(self, v) + +proc get_captionSide*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_captionSide(self, p) + +proc put_counterIncrement*( + self: ptr IHTMLRuleStyle6, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_counterIncrement(self, v) + +proc get_counterIncrement*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_counterIncrement(self, p) + +proc put_counterReset*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_counterReset(self, v) + +proc get_counterReset*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_counterReset(self, p) + +proc put_outline*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outline(self, v) + +proc get_outline*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outline(self, p) + +proc put_outlineWidth*( + self: ptr IHTMLRuleStyle6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineWidth(self, v) + +proc get_outlineWidth*( + self: ptr IHTMLRuleStyle6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineWidth(self, p) + +proc put_outlineStyle*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineStyle(self, v) + +proc get_outlineStyle*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineStyle(self, p) + +proc put_outlineColor*( + self: ptr IHTMLRuleStyle6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outlineColor(self, v) + +proc get_outlineColor*( + self: ptr IHTMLRuleStyle6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineColor(self, p) + +proc put_boxSizing*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_boxSizing(self, v) + +proc get_boxSizing*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boxSizing(self, p) + +proc put_borderSpacing*( + self: ptr IHTMLRuleStyle6, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderSpacing(self, v) + +proc get_borderSpacing*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderSpacing(self, p) + +proc put_orphans*(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_orphans(self, v) + +proc get_orphans*( + self: ptr IHTMLRuleStyle6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orphans(self, p) + +proc put_widows*(self: ptr IHTMLRuleStyle6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_widows(self, v) + +proc get_widows*( + self: ptr IHTMLRuleStyle6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_widows(self, p) + +proc put_pageBreakInside*( + self: ptr IHTMLRuleStyle6, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageBreakInside(self, v) + +proc get_pageBreakInside*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakInside(self, p) + +proc put_emptyCells*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_emptyCells(self, v) + +proc get_emptyCells*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_emptyCells(self, p) + +proc put_msBlockProgression*( + self: ptr IHTMLRuleStyle6, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msBlockProgression(self, v) + +proc get_msBlockProgression*( + self: ptr IHTMLRuleStyle6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msBlockProgression(self, p) + +proc put_quotes*(self: ptr IHTMLRuleStyle6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_quotes(self, v) + +proc get_quotes*(self: ptr IHTMLRuleStyle6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_quotes(self, p) + +proc get_type*(self: ptr IHTMLCSSRule, p: ptr USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_cssText*(self: ptr IHTMLCSSRule, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cssText(self, v) + +proc get_cssText*(self: ptr IHTMLCSSRule, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssText(self, p) + +proc get_parentRule*( + self: ptr IHTMLCSSRule, p: ptr ptr IHTMLCSSRule +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentRule(self, p) + +proc get_parentStyleSheet*( + self: ptr IHTMLCSSRule, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentStyleSheet(self, p) + +proc get_href*(self: ptr IHTMLCSSImportRule, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_media*(self: ptr IHTMLCSSImportRule, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*( + self: ptr IHTMLCSSImportRule, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc get_styleSheet*( + self: ptr IHTMLCSSImportRule, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleSheet(self, p) + +proc put_media*(self: ptr IHTMLCSSMediaRule, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*( + self: ptr IHTMLCSSMediaRule, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc get_cssRules*( + self: ptr IHTMLCSSMediaRule, p: ptr ptr IHTMLStyleSheetRulesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssRules(self, p) + +proc insertRule*( + self: ptr IHTMLCSSMediaRule, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertRule(self, bstrRule, lIndex, plNewIndex) + +proc deleteRule*( + self: ptr IHTMLCSSMediaRule, lIndex: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRule(self, lIndex) + +proc put_mediaText*(self: ptr IHTMLCSSMediaList, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_mediaText(self, v) + +proc get_mediaText*( + self: ptr IHTMLCSSMediaList, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mediaText(self, p) + +proc get_length*(self: ptr IHTMLCSSMediaList, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLCSSMediaList, index: LONG, pbstrMedium: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pbstrMedium) + +proc appendMedium*( + self: ptr IHTMLCSSMediaList, bstrMedium: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendMedium(self, bstrMedium) + +proc deleteMedium*( + self: ptr IHTMLCSSMediaList, bstrMedium: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteMedium(self, bstrMedium) + +proc get_namespaceURI*( + self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_namespaceURI(self, p) + +proc get_prefix*( + self: ptr IHTMLCSSNamespaceRule, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_prefix(self, p) + +proc put_keyText*( + self: ptr IHTMLMSCSSKeyframeRule, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_keyText(self, v) + +proc get_keyText*( + self: ptr IHTMLMSCSSKeyframeRule, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_keyText(self, p) + +proc get_style*( + self: ptr IHTMLMSCSSKeyframeRule, p: ptr ptr IHTMLRuleStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_style(self, p) + +proc put_name*(self: ptr IHTMLMSCSSKeyframesRule, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLMSCSSKeyframesRule, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc get_cssRules*( + self: ptr IHTMLMSCSSKeyframesRule, p: ptr ptr IHTMLStyleSheetRulesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssRules(self, p) + +proc appendRule*( + self: ptr IHTMLMSCSSKeyframesRule, bstrRule: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendRule(self, bstrRule) + +proc deleteRule*( + self: ptr IHTMLMSCSSKeyframesRule, bstrKey: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRule(self, bstrKey) + +proc findRule*( + self: ptr IHTMLMSCSSKeyframesRule, + bstrKey: BSTR, + ppMSKeyframeRule: ptr ptr IHTMLMSCSSKeyframeRule, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.findRule(self, bstrKey, ppMSKeyframeRule) + +proc put_textLineThroughStyle*( + self: ptr IHTMLRenderStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textLineThroughStyle(self, v) + +proc get_textLineThroughStyle*( + self: ptr IHTMLRenderStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textLineThroughStyle(self, p) + +proc put_textUnderlineStyle*( + self: ptr IHTMLRenderStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textUnderlineStyle(self, v) + +proc get_textUnderlineStyle*( + self: ptr IHTMLRenderStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textUnderlineStyle(self, p) + +proc put_textEffect*(self: ptr IHTMLRenderStyle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textEffect(self, v) + +proc get_textEffect*( + self: ptr IHTMLRenderStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textEffect(self, p) + +proc put_textColor*( + self: ptr IHTMLRenderStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textColor(self, v) + +proc get_textColor*( + self: ptr IHTMLRenderStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textColor(self, p) + +proc put_textBackgroundColor*( + self: ptr IHTMLRenderStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textBackgroundColor(self, v) + +proc get_textBackgroundColor*( + self: ptr IHTMLRenderStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textBackgroundColor(self, p) + +proc put_textDecorationColor*( + self: ptr IHTMLRenderStyle, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecorationColor(self, v) + +proc get_textDecorationColor*( + self: ptr IHTMLRenderStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecorationColor(self, p) + +proc put_renderingPriority*( + self: ptr IHTMLRenderStyle, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_renderingPriority(self, v) + +proc get_renderingPriority*( + self: ptr IHTMLRenderStyle, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_renderingPriority(self, p) + +proc put_defaultTextSelection*( + self: ptr IHTMLRenderStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultTextSelection(self, v) + +proc get_defaultTextSelection*( + self: ptr IHTMLRenderStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultTextSelection(self, p) + +proc put_textDecoration*( + self: ptr IHTMLRenderStyle, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textDecoration(self, v) + +proc get_textDecoration*( + self: ptr IHTMLRenderStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecoration(self, p) + +proc get_position*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc get_styleFloat*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleFloat(self, p) + +proc get_color*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc get_backgroundColor*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundColor(self, p) + +proc get_fontFamily*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontFamily(self, p) + +proc get_fontStyle*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontStyle(self, p) + +proc get_fontVariant*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontVariant(self, p) + +proc get_fontWeight*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontWeight(self, p) + +proc get_fontSize*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSize(self, p) + +proc get_backgroundImage*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundImage(self, p) + +proc get_backgroundPositionX*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionX(self, p) + +proc get_backgroundPositionY*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundPositionY(self, p) + +proc get_backgroundRepeat*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundRepeat(self, p) + +proc get_borderLeftColor*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftColor(self, p) + +proc get_borderTopColor*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopColor(self, p) + +proc get_borderRightColor*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightColor(self, p) + +proc get_borderBottomColor*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomColor(self, p) + +proc get_borderTopStyle*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopStyle(self, p) + +proc get_borderRightStyle*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightStyle(self, p) + +proc get_borderBottomStyle*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomStyle(self, p) + +proc get_borderLeftStyle*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftStyle(self, p) + +proc get_borderTopWidth*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderTopWidth(self, p) + +proc get_borderRightWidth*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderRightWidth(self, p) + +proc get_borderBottomWidth*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderBottomWidth(self, p) + +proc get_borderLeftWidth*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderLeftWidth(self, p) + +proc get_left*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_left(self, p) + +proc get_top*(self: ptr IHTMLCurrentStyle, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_top(self, p) + +proc get_width*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_height*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_paddingLeft*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingLeft(self, p) + +proc get_paddingTop*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingTop(self, p) + +proc get_paddingRight*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingRight(self, p) + +proc get_paddingBottom*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paddingBottom(self, p) + +proc get_textAlign*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlign(self, p) + +proc get_textDecoration*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDecoration(self, p) + +proc get_display*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_display(self, p) + +proc get_visibility*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_visibility(self, p) + +proc get_zIndex*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zIndex(self, p) + +proc get_letterSpacing*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_letterSpacing(self, p) + +proc get_lineHeight*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineHeight(self, p) + +proc get_textIndent*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textIndent(self, p) + +proc get_verticalAlign*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_verticalAlign(self, p) + +proc get_backgroundAttachment*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundAttachment(self, p) + +proc get_marginTop*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginTop(self, p) + +proc get_marginRight*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginRight(self, p) + +proc get_marginBottom*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginBottom(self, p) + +proc get_marginLeft*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginLeft(self, p) + +proc get_clear*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clear(self, p) + +proc get_listStyleType*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleType(self, p) + +proc get_listStylePosition*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStylePosition(self, p) + +proc get_listStyleImage*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_listStyleImage(self, p) + +proc get_clipTop*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipTop(self, p) + +proc get_clipRight*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipRight(self, p) + +proc get_clipBottom*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipBottom(self, p) + +proc get_clipLeft*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipLeft(self, p) + +proc get_overflow*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflow(self, p) + +proc get_pageBreakBefore*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakBefore(self, p) + +proc get_pageBreakAfter*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakAfter(self, p) + +proc get_cursor*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cursor(self, p) + +proc get_tableLayout*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tableLayout(self, p) + +proc get_borderCollapse*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderCollapse(self, p) + +proc get_direction*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_direction(self, p) + +proc get_behavior*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behavior(self, p) + +proc getAttribute*( + self: ptr IHTMLCurrentStyle, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) + +proc get_unicodeBidi*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unicodeBidi(self, p) + +proc get_right*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_right(self, p) + +proc get_bottom*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bottom(self, p) + +proc get_imeMode*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeMode(self, p) + +proc get_rubyAlign*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyAlign(self, p) + +proc get_rubyPosition*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyPosition(self, p) + +proc get_rubyOverhang*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rubyOverhang(self, p) + +proc get_textAutospace*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAutospace(self, p) + +proc get_lineBreak*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineBreak(self, p) + +proc get_wordBreak*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordBreak(self, p) + +proc get_textJustify*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustify(self, p) + +proc get_textJustifyTrim*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textJustifyTrim(self, p) + +proc get_textKashida*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashida(self, p) + +proc get_blockDirection*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_blockDirection(self, p) + +proc get_layoutGridChar*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridChar(self, p) + +proc get_layoutGridLine*( + self: ptr IHTMLCurrentStyle, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridLine(self, p) + +proc get_layoutGridMode*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridMode(self, p) + +proc get_layoutGridType*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutGridType(self, p) + +proc get_borderStyle*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderStyle(self, p) + +proc get_borderColor*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc get_borderWidth*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderWidth(self, p) + +proc get_padding*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_padding(self, p) + +proc get_margin*(self: ptr IHTMLCurrentStyle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_margin(self, p) + +proc get_accelerator*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accelerator(self, p) + +proc get_overflowX*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowX(self, p) + +proc get_overflowY*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overflowY(self, p) + +proc get_textTransform*( + self: ptr IHTMLCurrentStyle, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textTransform(self, p) + +proc get_layoutFlow*( + self: ptr IHTMLCurrentStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layoutFlow(self, p) + +proc get_wordWrap*( + self: ptr IHTMLCurrentStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordWrap(self, p) + +proc get_textUnderlinePosition*( + self: ptr IHTMLCurrentStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textUnderlinePosition(self, p) + +proc get_hasLayout*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hasLayout(self, p) + +proc get_scrollbarBaseColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarBaseColor(self, p) + +proc get_scrollbarFaceColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarFaceColor(self, p) + +proc get_scrollbar3dLightColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbar3dLightColor(self, p) + +proc get_scrollbarShadowColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarShadowColor(self, p) + +proc get_scrollbarHighlightColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarHighlightColor(self, p) + +proc get_scrollbarDarkShadowColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarDarkShadowColor(self, p) + +proc get_scrollbarArrowColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarArrowColor(self, p) + +proc get_scrollbarTrackColor*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbarTrackColor(self, p) + +proc get_writingMode*( + self: ptr IHTMLCurrentStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_writingMode(self, p) + +proc get_zoom*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zoom(self, p) + +proc get_filter*( + self: ptr IHTMLCurrentStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filter(self, p) + +proc get_textAlignLast*( + self: ptr IHTMLCurrentStyle2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlignLast(self, p) + +proc get_textKashidaSpace*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textKashidaSpace(self, p) + +proc get_isBlock*( + self: ptr IHTMLCurrentStyle2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isBlock(self, p) + +proc get_textOverflow*( + self: ptr IHTMLCurrentStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textOverflow(self, p) + +proc get_minHeight*( + self: ptr IHTMLCurrentStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minHeight(self, p) + +proc get_wordSpacing*( + self: ptr IHTMLCurrentStyle3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wordSpacing(self, p) + +proc get_whiteSpace*( + self: ptr IHTMLCurrentStyle3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_whiteSpace(self, p) + +proc get_msInterpolationMode*( + self: ptr IHTMLCurrentStyle4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msInterpolationMode(self, p) + +proc get_maxHeight*( + self: ptr IHTMLCurrentStyle4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxHeight(self, p) + +proc get_minWidth*( + self: ptr IHTMLCurrentStyle4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minWidth(self, p) + +proc get_maxWidth*( + self: ptr IHTMLCurrentStyle4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxWidth(self, p) + +proc get_captionSide*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_captionSide(self, p) + +proc get_outline*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outline(self, p) + +proc get_outlineWidth*( + self: ptr IHTMLCurrentStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineWidth(self, p) + +proc get_outlineStyle*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineStyle(self, p) + +proc get_outlineColor*( + self: ptr IHTMLCurrentStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outlineColor(self, p) + +proc get_boxSizing*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boxSizing(self, p) + +proc get_borderSpacing*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderSpacing(self, p) + +proc get_orphans*( + self: ptr IHTMLCurrentStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orphans(self, p) + +proc get_widows*( + self: ptr IHTMLCurrentStyle5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_widows(self, p) + +proc get_pageBreakInside*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageBreakInside(self, p) + +proc get_emptyCells*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_emptyCells(self, p) + +proc get_msBlockProgression*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msBlockProgression(self, p) + +proc get_quotes*( + self: ptr IHTMLCurrentStyle5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_quotes(self, p) + +proc put_left*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_left(self, v) + +proc get_left*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_left(self, p) + +proc put_top*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_top(self, v) + +proc get_top*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_top(self, p) + +proc put_right*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_right(self, v) + +proc get_right*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_right(self, p) + +proc put_bottom*(self: ptr IHTMLRect, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bottom(self, v) + +proc get_bottom*(self: ptr IHTMLRect, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bottom(self, p) + +proc get_width*(self: ptr IHTMLRect2, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_height*(self: ptr IHTMLRect2, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_length*( + self: ptr IHTMLRectCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLRectCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLRectCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, pvarIndex, pvarResult) + +proc get_nodeType*(self: ptr IHTMLDOMNode, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeType(self, p) + +proc get_parentNode*( + self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentNode(self, p) + +proc hasChildNodes*( + self: ptr IHTMLDOMNode, fChildren: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasChildNodes(self, fChildren) + +proc get_childNodes*( + self: ptr IHTMLDOMNode, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childNodes(self, p) + +proc get_attributes*( + self: ptr IHTMLDOMNode, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attributes(self, p) + +proc insertBefore*( + self: ptr IHTMLDOMNode, + newChild: ptr IHTMLDOMNode, + refChild: VARIANT, + node: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertBefore(self, newChild, refChild, node) + +proc removeChild*( + self: ptr IHTMLDOMNode, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeChild(self, oldChild, node) + +proc replaceChild*( + self: ptr IHTMLDOMNode, + newChild: ptr IHTMLDOMNode, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceChild(self, newChild, oldChild, node) + +proc cloneNode*( + self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, clonedNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.cloneNode(self, fDeep, clonedNode) + +proc removeNode*( + self: ptr IHTMLDOMNode, fDeep: VARIANT_BOOL, removed: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeNode(self, fDeep, removed) + +proc swapNode*( + self: ptr IHTMLDOMNode, + otherNode: ptr IHTMLDOMNode, + swappedNode: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.swapNode(self, otherNode, swappedNode) + +proc replaceNode*( + self: ptr IHTMLDOMNode, + replacement: ptr IHTMLDOMNode, + replaced: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceNode(self, replacement, replaced) + +proc appendChild*( + self: ptr IHTMLDOMNode, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendChild(self, newChild, node) + +proc get_nodeName*(self: ptr IHTMLDOMNode, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeName(self, p) + +proc put_nodeValue*(self: ptr IHTMLDOMNode, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_nodeValue(self, v) + +proc get_nodeValue*( + self: ptr IHTMLDOMNode, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeValue(self, p) + +proc get_firstChild*( + self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_firstChild(self, p) + +proc get_lastChild*( + self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastChild(self, p) + +proc get_previousSibling*( + self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousSibling(self, p) + +proc get_nextSibling*( + self: ptr IHTMLDOMNode, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nextSibling(self, p) + +proc get_ownerDocument*( + self: ptr IHTMLDOMNode2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerDocument(self, p) + +proc put_prefix*(self: ptr IHTMLDOMNode3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_prefix(self, v) + +proc get_prefix*(self: ptr IHTMLDOMNode3, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_prefix(self, p) + +proc get_localName*( + self: ptr IHTMLDOMNode3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_localName(self, p) + +proc get_namespaceURI*( + self: ptr IHTMLDOMNode3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_namespaceURI(self, p) + +proc put_textContent*(self: ptr IHTMLDOMNode3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textContent(self, v) + +proc get_textContent*( + self: ptr IHTMLDOMNode3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textContent(self, p) + +proc isEqualNode*( + self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isEqual: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isEqualNode(self, otherNode, isEqual) + +proc lookupNamespaceURI*( + self: ptr IHTMLDOMNode3, pvarPrefix: ptr VARIANT, pvarNamespaceURI: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.lookupNamespaceURI(self, pvarPrefix, pvarNamespaceURI) + +proc lookupPrefix*( + self: ptr IHTMLDOMNode3, pvarNamespaceURI: ptr VARIANT, pvarPrefix: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.lookupPrefix(self, pvarNamespaceURI, pvarPrefix) + +proc isDefaultNamespace*( + self: ptr IHTMLDOMNode3, + pvarNamespace: ptr VARIANT, + pfDefaultNamespace: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isDefaultNamespace(self, pvarNamespace, pfDefaultNamespace) + +proc appendChild*( + self: ptr IHTMLDOMNode3, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendChild(self, newChild, node) + +proc insertBefore*( + self: ptr IHTMLDOMNode3, + newChild: ptr IHTMLDOMNode, + refChild: VARIANT, + node: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertBefore(self, newChild, refChild, node) + +proc removeChild*( + self: ptr IHTMLDOMNode3, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeChild(self, oldChild, node) + +proc replaceChild*( + self: ptr IHTMLDOMNode3, + newChild: ptr IHTMLDOMNode, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceChild(self, newChild, oldChild, node) + +proc isSameNode*( + self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode3, isSame: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isSameNode(self, otherNode, isSame) + +proc compareDocumentPosition*( + self: ptr IHTMLDOMNode3, otherNode: ptr IHTMLDOMNode, flags: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.compareDocumentPosition(self, otherNode, flags) + +proc isSupported*( + self: ptr IHTMLDOMNode3, + feature: BSTR, + version: VARIANT, + pfisSupported: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isSupported(self, feature, version, pfisSupported) + +proc get_nodeName*( + self: ptr IHTMLDOMAttribute, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeName(self, p) + +proc put_nodeValue*( + self: ptr IHTMLDOMAttribute, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_nodeValue(self, v) + +proc get_nodeValue*( + self: ptr IHTMLDOMAttribute, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeValue(self, p) + +proc get_specified*( + self: ptr IHTMLDOMAttribute, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_specified(self, p) + +proc get_name*(self: ptr IHTMLDOMAttribute2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_value*(self: ptr IHTMLDOMAttribute2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLDOMAttribute2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc get_expando*( + self: ptr IHTMLDOMAttribute2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_expando(self, p) + +proc get_nodeType*( + self: ptr IHTMLDOMAttribute2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeType(self, p) + +proc get_parentNode*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentNode(self, p) + +proc get_childNodes*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childNodes(self, p) + +proc get_firstChild*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_firstChild(self, p) + +proc get_lastChild*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastChild(self, p) + +proc get_previousSibling*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousSibling(self, p) + +proc get_nextSibling*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nextSibling(self, p) + +proc get_attributes*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attributes(self, p) + +proc get_ownerDocument*( + self: ptr IHTMLDOMAttribute2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerDocument(self, p) + +proc insertBefore*( + self: ptr IHTMLDOMAttribute2, + newChild: ptr IHTMLDOMNode, + refChild: VARIANT, + node: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertBefore(self, newChild, refChild, node) + +proc replaceChild*( + self: ptr IHTMLDOMAttribute2, + newChild: ptr IHTMLDOMNode, + oldChild: ptr IHTMLDOMNode, + node: ptr ptr IHTMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceChild(self, newChild, oldChild, node) + +proc removeChild*( + self: ptr IHTMLDOMAttribute2, oldChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeChild(self, oldChild, node) + +proc appendChild*( + self: ptr IHTMLDOMAttribute2, newChild: ptr IHTMLDOMNode, node: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendChild(self, newChild, node) + +proc hasChildNodes*( + self: ptr IHTMLDOMAttribute2, fChildren: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasChildNodes(self, fChildren) + +proc cloneNode*( + self: ptr IHTMLDOMAttribute2, + fDeep: VARIANT_BOOL, + clonedNode: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.cloneNode(self, fDeep, clonedNode) + +proc put_nodeValue*( + self: ptr IHTMLDOMAttribute3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_nodeValue(self, v) + +proc get_nodeValue*( + self: ptr IHTMLDOMAttribute3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeValue(self, p) + +proc put_value*(self: ptr IHTMLDOMAttribute3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLDOMAttribute3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc get_specified*( + self: ptr IHTMLDOMAttribute3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_specified(self, p) + +proc get_ownerElement*( + self: ptr IHTMLDOMAttribute3, p: ptr ptr IHTMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerElement(self, p) + +proc put_nodeValue*( + self: ptr IHTMLDOMAttribute4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_nodeValue(self, v) + +proc get_nodeValue*( + self: ptr IHTMLDOMAttribute4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeValue(self, p) + +proc get_nodeName*( + self: ptr IHTMLDOMAttribute4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeName(self, p) + +proc get_name*(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_value*(self: ptr IHTMLDOMAttribute4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLDOMAttribute4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc get_firstChild*( + self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_firstChild(self, p) + +proc get_lastChild*( + self: ptr IHTMLDOMAttribute4, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastChild(self, p) + +proc get_childNodes*( + self: ptr IHTMLDOMAttribute4, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childNodes(self, p) + +proc hasAttributes*( + self: ptr IHTMLDOMAttribute4, pfHasAttributes: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttributes(self, pfHasAttributes) + +proc hasChildNodes*( + self: ptr IHTMLDOMAttribute4, fChildren: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasChildNodes(self, fChildren) + +proc normalize*(self: ptr IHTMLDOMAttribute4): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.normalize(self) + +proc get_specified*( + self: ptr IHTMLDOMAttribute4, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_specified(self, p) + +proc put_data*(self: ptr IHTMLDOMTextNode, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, v) + +proc get_data*(self: ptr IHTMLDOMTextNode, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc toString*( + self: ptr IHTMLDOMTextNode, String: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc get_length*(self: ptr IHTMLDOMTextNode, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc splitText*( + self: ptr IHTMLDOMTextNode, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.splitText(self, offset, pRetNode) + +proc substringData*( + self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.substringData(self, offset, Count, pbstrsubString) + +proc appendData*( + self: ptr IHTMLDOMTextNode2, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendData(self, bstrstring) + +proc insertData*( + self: ptr IHTMLDOMTextNode2, offset: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertData(self, offset, bstrstring) + +proc deleteData*( + self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteData(self, offset, Count) + +proc replaceData*( + self: ptr IHTMLDOMTextNode2, offset: LONG, Count: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceData(self, offset, Count, bstrstring) + +proc substringData*( + self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.substringData(self, offset, Count, pbstrsubString) + +proc insertData*( + self: ptr IHTMLDOMTextNode3, offset: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertData(self, offset, bstrstring) + +proc deleteData*( + self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteData(self, offset, Count) + +proc replaceData*( + self: ptr IHTMLDOMTextNode3, offset: LONG, Count: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceData(self, offset, Count, bstrstring) + +proc splitText*( + self: ptr IHTMLDOMTextNode3, offset: LONG, pRetNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.splitText(self, offset, pRetNode) + +proc get_wholeText*( + self: ptr IHTMLDOMTextNode3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wholeText(self, p) + +proc replaceWholeText*( + self: ptr IHTMLDOMTextNode3, bstrText: BSTR, ppRetNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceWholeText(self, bstrText, ppRetNode) + +proc hasAttributes*( + self: ptr IHTMLDOMTextNode3, pfHasAttributes: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttributes(self, pfHasAttributes) + +proc normalize*(self: ptr IHTMLDOMTextNode3): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.normalize(self) + +proc hasFeature*( + self: ptr IHTMLDOMImplementation, + bstrfeature: BSTR, + version: VARIANT, + pfHasFeature: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasFeature(self, bstrfeature, version, pfHasFeature) + +proc createDocumentType*( + self: ptr IHTMLDOMImplementation2, + bstrQualifiedName: BSTR, + pvarPublicId: ptr VARIANT, + pvarSystemId: ptr VARIANT, + newDocumentType: ptr ptr IDOMDocumentType, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createDocumentType( + self, bstrQualifiedName, pvarPublicId, pvarSystemId, newDocumentType + ) + +proc createDocument*( + self: ptr IHTMLDOMImplementation2, + pvarNS: ptr VARIANT, + pvarTagName: ptr VARIANT, + pDocumentType: ptr IDOMDocumentType, + ppnewDocument: ptr ptr IHTMLDocument7, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createDocument(self, pvarNS, pvarTagName, pDocumentType, ppnewDocument) + +proc createHTMLDocument*( + self: ptr IHTMLDOMImplementation2, + bstrTitle: BSTR, + ppnewDocument: ptr ptr IHTMLDocument7, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createHTMLDocument(self, bstrTitle, ppnewDocument) + +proc hasFeature*( + self: ptr IHTMLDOMImplementation2, + bstrfeature: BSTR, + version: VARIANT, + pfHasFeature: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasFeature(self, bstrfeature, version, pfHasFeature) + +proc get_length*( + self: ptr IHTMLAttributeCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLAttributeCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLAttributeCollection, name: ptr VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, name, pdisp) + +proc getNamedItem*( + self: ptr IHTMLAttributeCollection2, + bstrName: BSTR, + newretNode: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getNamedItem(self, bstrName, newretNode) + +proc setNamedItem*( + self: ptr IHTMLAttributeCollection2, + ppNode: ptr IHTMLDOMAttribute, + newretNode: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setNamedItem(self, ppNode, newretNode) + +proc removeNamedItem*( + self: ptr IHTMLAttributeCollection2, + bstrName: BSTR, + newretNode: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeNamedItem(self, bstrName, newretNode) + +proc getNamedItem*( + self: ptr IHTMLAttributeCollection3, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getNamedItem(self, bstrName, ppNodeOut) + +proc setNamedItem*( + self: ptr IHTMLAttributeCollection3, + pNodeIn: ptr IHTMLDOMAttribute, + ppNodeOut: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setNamedItem(self, pNodeIn, ppNodeOut) + +proc removeNamedItem*( + self: ptr IHTMLAttributeCollection3, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeNamedItem(self, bstrName, ppNodeOut) + +proc item*( + self: ptr IHTMLAttributeCollection3, + index: LONG, + ppNodeOut: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppNodeOut) + +proc get_length*( + self: ptr IHTMLAttributeCollection3, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc getNamedItemNS*( + self: ptr IHTMLAttributeCollection4, + pvarNS: ptr VARIANT, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getNamedItemNS(self, pvarNS, bstrName, ppNodeOut) + +proc setNamedItemNS*( + self: ptr IHTMLAttributeCollection4, + pNodeIn: ptr IHTMLDOMAttribute2, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setNamedItemNS(self, pNodeIn, ppNodeOut) + +proc removeNamedItemNS*( + self: ptr IHTMLAttributeCollection4, + pvarNS: ptr VARIANT, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeNamedItemNS(self, pvarNS, bstrName, ppNodeOut) + +proc getNamedItem*( + self: ptr IHTMLAttributeCollection4, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getNamedItem(self, bstrName, ppNodeOut) + +proc setNamedItem*( + self: ptr IHTMLAttributeCollection4, + pNodeIn: ptr IHTMLDOMAttribute2, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setNamedItem(self, pNodeIn, ppNodeOut) + +proc removeNamedItem*( + self: ptr IHTMLAttributeCollection4, + bstrName: BSTR, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeNamedItem(self, bstrName, ppNodeOut) + +proc item*( + self: ptr IHTMLAttributeCollection4, + index: LONG, + ppNodeOut: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppNodeOut) + +proc get_length*( + self: ptr IHTMLAttributeCollection4, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_length*( + self: ptr IHTMLDOMChildrenCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLDOMChildrenCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLDOMChildrenCollection, index: LONG, ppItem: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppItem) + +proc item*( + self: ptr IHTMLDOMChildrenCollection2, index: LONG, ppItem: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppItem) + +proc setAttribute*( + self: ptr IHTMLElement, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) + +proc getAttribute*( + self: ptr IHTMLElement, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) + +proc removeAttribute*( + self: ptr IHTMLElement, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) + +proc put_className*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_className(self, v) + +proc get_className*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_className(self, p) + +proc put_id*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_id(self, v) + +proc get_id*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_id(self, p) + +proc get_tagName*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagName(self, p) + +proc get_parentElement*( + self: ptr IHTMLElement, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentElement(self, p) + +proc get_style*( + self: ptr IHTMLElement, p: ptr ptr IHTMLStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_style(self, p) + +proc put_onhelp*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onhelp(self, v) + +proc get_onhelp*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onhelp(self, p) + +proc put_onclick*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onclick(self, v) + +proc get_onclick*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onclick(self, p) + +proc put_ondblclick*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondblclick(self, v) + +proc get_ondblclick*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondblclick(self, p) + +proc put_onkeydown*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeydown(self, v) + +proc get_onkeydown*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeydown(self, p) + +proc put_onkeyup*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeyup(self, v) + +proc get_onkeyup*(self: ptr IHTMLElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeyup(self, p) + +proc put_onkeypress*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeypress(self, v) + +proc get_onkeypress*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeypress(self, p) + +proc put_onmouseout*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseout(self, v) + +proc get_onmouseout*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseout(self, p) + +proc put_onmouseover*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseover(self, v) + +proc get_onmouseover*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseover(self, p) + +proc put_onmousemove*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousemove(self, v) + +proc get_onmousemove*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousemove(self, p) + +proc put_onmousedown*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousedown(self, v) + +proc get_onmousedown*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousedown(self, p) + +proc put_onmouseup*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseup(self, v) + +proc get_onmouseup*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseup(self, p) + +proc get_document*( + self: ptr IHTMLElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_document(self, p) + +proc put_title*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_title(self, v) + +proc get_title*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_title(self, p) + +proc put_language*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_language(self, v) + +proc get_language*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_language(self, p) + +proc put_onselectstart*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselectstart(self, v) + +proc get_onselectstart*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselectstart(self, p) + +proc scrollIntoView*( + self: ptr IHTMLElement, varargStart: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scrollIntoView(self, varargStart) + +proc contains*( + self: ptr IHTMLElement, pChild: ptr IHTMLElement, pfResult: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.contains(self, pChild, pfResult) + +proc get_sourceIndex*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sourceIndex(self, p) + +proc get_recordNumber*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_recordNumber(self, p) + +proc put_lang*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lang(self, v) + +proc get_lang*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lang(self, p) + +proc get_offsetLeft*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetLeft(self, p) + +proc get_offsetTop*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetTop(self, p) + +proc get_offsetWidth*(self: ptr IHTMLElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetWidth(self, p) + +proc get_offsetHeight*( + self: ptr IHTMLElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetHeight(self, p) + +proc get_offsetParent*( + self: ptr IHTMLElement, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetParent(self, p) + +proc put_innerHTML*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_innerHTML(self, v) + +proc get_innerHTML*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_innerHTML(self, p) + +proc put_innerText*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_innerText(self, v) + +proc get_innerText*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_innerText(self, p) + +proc put_outerHTML*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outerHTML(self, v) + +proc get_outerHTML*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outerHTML(self, p) + +proc put_outerText*(self: ptr IHTMLElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_outerText(self, v) + +proc get_outerText*(self: ptr IHTMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outerText(self, p) + +proc insertAdjacentHTML*( + self: ptr IHTMLElement, where: BSTR, html: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertAdjacentHTML(self, where, html) + +proc insertAdjacentText*( + self: ptr IHTMLElement, where: BSTR, text: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertAdjacentText(self, where, text) + +proc get_parentTextEdit*( + self: ptr IHTMLElement, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentTextEdit(self, p) + +proc get_isTextEdit*( + self: ptr IHTMLElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isTextEdit(self, p) + +proc click*(self: ptr IHTMLElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.click(self) + +proc get_filters*( + self: ptr IHTMLElement, p: ptr ptr IHTMLFiltersCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filters(self, p) + +proc put_ondragstart*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragstart(self, v) + +proc get_ondragstart*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragstart(self, p) + +proc toString*(self: ptr IHTMLElement, String: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc put_onbeforeupdate*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeupdate(self, v) + +proc get_onbeforeupdate*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeupdate(self, p) + +proc put_onafterupdate*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onafterupdate(self, v) + +proc get_onafterupdate*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onafterupdate(self, p) + +proc put_onerrorupdate*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerrorupdate(self, v) + +proc get_onerrorupdate*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerrorupdate(self, p) + +proc put_onrowexit*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowexit(self, v) + +proc get_onrowexit*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowexit(self, p) + +proc put_onrowenter*(self: ptr IHTMLElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowenter(self, v) + +proc get_onrowenter*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowenter(self, p) + +proc put_ondatasetchanged*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondatasetchanged(self, v) + +proc get_ondatasetchanged*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondatasetchanged(self, p) + +proc put_ondataavailable*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondataavailable(self, v) + +proc get_ondataavailable*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondataavailable(self, p) + +proc put_ondatasetcomplete*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondatasetcomplete(self, v) + +proc get_ondatasetcomplete*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondatasetcomplete(self, p) + +proc put_onfilterchange*( + self: ptr IHTMLElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfilterchange(self, v) + +proc get_onfilterchange*( + self: ptr IHTMLElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfilterchange(self, p) + +proc get_children*( + self: ptr IHTMLElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_children(self, p) + +proc get_all*( + self: ptr IHTMLElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_all(self, p) + +proc get_scopeName*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scopeName(self, p) + +proc setCapture*( + self: ptr IHTMLElement2, containerCapture: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setCapture(self, containerCapture) + +proc releaseCapture*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.releaseCapture(self) + +proc put_onlosecapture*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onlosecapture(self, v) + +proc get_onlosecapture*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onlosecapture(self, p) + +proc componentFromPoint*( + self: ptr IHTMLElement2, x: LONG, y: LONG, component: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.componentFromPoint(self, x, y, component) + +proc doScroll*( + self: ptr IHTMLElement2, component: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.doScroll(self, component) + +proc put_onscroll*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onscroll(self, v) + +proc get_onscroll*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onscroll(self, p) + +proc put_ondrag*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondrag(self, v) + +proc get_ondrag*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondrag(self, p) + +proc put_ondragend*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragend(self, v) + +proc get_ondragend*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragend(self, p) + +proc put_ondragenter*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragenter(self, v) + +proc get_ondragenter*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragenter(self, p) + +proc put_ondragover*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragover(self, v) + +proc get_ondragover*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragover(self, p) + +proc put_ondragleave*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragleave(self, v) + +proc get_ondragleave*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragleave(self, p) + +proc put_ondrop*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondrop(self, v) + +proc get_ondrop*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondrop(self, p) + +proc put_onbeforecut*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforecut(self, v) + +proc get_onbeforecut*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforecut(self, p) + +proc put_oncut*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncut(self, v) + +proc get_oncut*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncut(self, p) + +proc put_onbeforecopy*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforecopy(self, v) + +proc get_onbeforecopy*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforecopy(self, p) + +proc put_oncopy*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncopy(self, v) + +proc get_oncopy*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncopy(self, p) + +proc put_onbeforepaste*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforepaste(self, v) + +proc get_onbeforepaste*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforepaste(self, p) + +proc put_onpaste*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpaste(self, v) + +proc get_onpaste*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpaste(self, p) + +proc get_currentStyle*( + self: ptr IHTMLElement2, p: ptr ptr IHTMLCurrentStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentStyle(self, p) + +proc put_onpropertychange*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpropertychange(self, v) + +proc get_onpropertychange*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpropertychange(self, p) + +proc getClientRects*( + self: ptr IHTMLElement2, pRectCol: ptr ptr IHTMLRectCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getClientRects(self, pRectCol) + +proc getBoundingClientRect*( + self: ptr IHTMLElement2, pRect: ptr ptr IHTMLRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getBoundingClientRect(self, pRect) + +proc setExpression*( + self: ptr IHTMLElement2, propname: BSTR, expression: BSTR, language: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setExpression(self, propname, expression, language) + +proc getExpression*( + self: ptr IHTMLElement2, propname: BSTR, expression: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getExpression(self, propname, expression) + +proc removeExpression*( + self: ptr IHTMLElement2, propname: BSTR, pfSuccess: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeExpression(self, propname, pfSuccess) + +proc put_tabIndex*(self: ptr IHTMLElement2, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tabIndex(self, v) + +proc get_tabIndex*(self: ptr IHTMLElement2, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tabIndex(self, p) + +proc focus*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.focus(self) + +proc put_accessKey*(self: ptr IHTMLElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accessKey(self, v) + +proc get_accessKey*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accessKey(self, p) + +proc put_onblur*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onblur(self, v) + +proc get_onblur*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onblur(self, p) + +proc put_onfocus*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocus(self, v) + +proc get_onfocus*(self: ptr IHTMLElement2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocus(self, p) + +proc put_onresize*(self: ptr IHTMLElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onresize(self, v) + +proc get_onresize*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onresize(self, p) + +proc blur*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.blur(self) + +proc addFilter*( + self: ptr IHTMLElement2, pUnk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addFilter(self, pUnk) + +proc removeFilter*( + self: ptr IHTMLElement2, pUnk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeFilter(self, pUnk) + +proc get_clientHeight*( + self: ptr IHTMLElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientHeight(self, p) + +proc get_clientWidth*( + self: ptr IHTMLElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientWidth(self, p) + +proc get_clientTop*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientTop(self, p) + +proc get_clientLeft*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientLeft(self, p) + +proc attachEvent*( + self: ptr IHTMLElement2, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.attachEvent(self, event, pDisp, pfResult) + +proc detachEvent*( + self: ptr IHTMLElement2, event: BSTR, pDisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detachEvent(self, event, pDisp) + +proc get_readyState*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc put_onrowsdelete*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowsdelete(self, v) + +proc get_onrowsdelete*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowsdelete(self, p) + +proc put_onrowsinserted*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowsinserted(self, v) + +proc get_onrowsinserted*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowsinserted(self, p) + +proc put_oncellchange*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncellchange(self, v) + +proc get_oncellchange*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncellchange(self, p) + +proc put_dir*(self: ptr IHTMLElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dir(self, v) + +proc get_dir*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dir(self, p) + +proc createControlRange*( + self: ptr IHTMLElement2, range: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createControlRange(self, range) + +proc get_scrollHeight*( + self: ptr IHTMLElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollHeight(self, p) + +proc get_scrollWidth*( + self: ptr IHTMLElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollWidth(self, p) + +proc put_scrollTop*(self: ptr IHTMLElement2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollTop(self, v) + +proc get_scrollTop*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollTop(self, p) + +proc put_scrollLeft*(self: ptr IHTMLElement2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollLeft(self, v) + +proc get_scrollLeft*(self: ptr IHTMLElement2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollLeft(self, p) + +proc clearAttributes*(self: ptr IHTMLElement2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearAttributes(self) + +proc mergeAttributes*( + self: ptr IHTMLElement2, mergeThis: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.mergeAttributes(self, mergeThis) + +proc put_oncontextmenu*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncontextmenu(self, v) + +proc get_oncontextmenu*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncontextmenu(self, p) + +proc insertAdjacentElement*( + self: ptr IHTMLElement2, + where: BSTR, + insertedElement: ptr IHTMLElement, + inserted: ptr ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertAdjacentElement(self, where, insertedElement, inserted) + +proc applyElement*( + self: ptr IHTMLElement2, + apply: ptr IHTMLElement, + where: BSTR, + applied: ptr ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.applyElement(self, apply, where, applied) + +proc getAdjacentText*( + self: ptr IHTMLElement2, where: BSTR, text: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAdjacentText(self, where, text) + +proc replaceAdjacentText*( + self: ptr IHTMLElement2, where: BSTR, newText: BSTR, oldText: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceAdjacentText(self, where, newText, oldText) + +proc get_canHaveChildren*( + self: ptr IHTMLElement2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_canHaveChildren(self, p) + +proc addBehavior*( + self: ptr IHTMLElement2, bstrUrl: BSTR, pvarFactory: ptr VARIANT, pCookie: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addBehavior(self, bstrUrl, pvarFactory, pCookie) + +proc removeBehavior*( + self: ptr IHTMLElement2, cookie: LONG, pfResult: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeBehavior(self, cookie, pfResult) + +proc get_runtimeStyle*( + self: ptr IHTMLElement2, p: ptr ptr IHTMLStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_runtimeStyle(self, p) + +proc get_behaviorUrns*( + self: ptr IHTMLElement2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behaviorUrns(self, p) + +proc put_tagUrn*(self: ptr IHTMLElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tagUrn(self, v) + +proc get_tagUrn*(self: ptr IHTMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagUrn(self, p) + +proc put_onbeforeeditfocus*( + self: ptr IHTMLElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeeditfocus(self, v) + +proc get_onbeforeeditfocus*( + self: ptr IHTMLElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeeditfocus(self, p) + +proc get_readyStateValue*( + self: ptr IHTMLElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyStateValue(self, p) + +proc getElementsByTagName*( + self: ptr IHTMLElement2, v: BSTR, pelColl: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByTagName(self, v, pelColl) + +proc mergeAttributes*( + self: ptr IHTMLElement3, mergeThis: ptr IHTMLElement, pvarFlags: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.mergeAttributes(self, mergeThis, pvarFlags) + +proc get_isMultiLine*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isMultiLine(self, p) + +proc get_canHaveHTML*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_canHaveHTML(self, p) + +proc put_onlayoutcomplete*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onlayoutcomplete(self, v) + +proc get_onlayoutcomplete*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onlayoutcomplete(self, p) + +proc put_onpage*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpage(self, v) + +proc get_onpage*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpage(self, p) + +proc put_inflateBlock*( + self: ptr IHTMLElement3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_inflateBlock(self, v) + +proc get_inflateBlock*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_inflateBlock(self, p) + +proc put_onbeforedeactivate*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforedeactivate(self, v) + +proc get_onbeforedeactivate*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforedeactivate(self, p) + +proc setActive*(self: ptr IHTMLElement3): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setActive(self) + +proc put_contentEditable*( + self: ptr IHTMLElement3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_contentEditable(self, v) + +proc get_contentEditable*( + self: ptr IHTMLElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentEditable(self, p) + +proc get_isContentEditable*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isContentEditable(self, p) + +proc put_hideFocus*( + self: ptr IHTMLElement3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hideFocus(self, v) + +proc get_hideFocus*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hideFocus(self, p) + +proc put_disabled*( + self: ptr IHTMLElement3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_isDisabled*( + self: ptr IHTMLElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isDisabled(self, p) + +proc put_onmove*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmove(self, v) + +proc get_onmove*(self: ptr IHTMLElement3, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmove(self, p) + +proc put_oncontrolselect*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncontrolselect(self, v) + +proc get_oncontrolselect*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncontrolselect(self, p) + +proc fireEvent*( + self: ptr IHTMLElement3, + bstrEventName: BSTR, + pvarEventObject: ptr VARIANT, + pfCancelled: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fireEvent(self, bstrEventName, pvarEventObject, pfCancelled) + +proc put_onresizestart*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onresizestart(self, v) + +proc get_onresizestart*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onresizestart(self, p) + +proc put_onresizeend*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onresizeend(self, v) + +proc get_onresizeend*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onresizeend(self, p) + +proc put_onmovestart*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmovestart(self, v) + +proc get_onmovestart*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmovestart(self, p) + +proc put_onmoveend*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmoveend(self, v) + +proc get_onmoveend*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmoveend(self, p) + +proc put_onmouseenter*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseenter(self, v) + +proc get_onmouseenter*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseenter(self, p) + +proc put_onmouseleave*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseleave(self, v) + +proc get_onmouseleave*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseleave(self, p) + +proc put_onactivate*(self: ptr IHTMLElement3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onactivate(self, v) + +proc get_onactivate*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onactivate(self, p) + +proc put_ondeactivate*( + self: ptr IHTMLElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondeactivate(self, v) + +proc get_ondeactivate*( + self: ptr IHTMLElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondeactivate(self, p) + +proc dragDrop*( + self: ptr IHTMLElement3, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.dragDrop(self, pfRet) + +proc get_glyphMode*(self: ptr IHTMLElement3, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_glyphMode(self, p) + +proc put_onmousewheel*( + self: ptr IHTMLElement4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousewheel(self, v) + +proc get_onmousewheel*( + self: ptr IHTMLElement4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousewheel(self, p) + +proc normalize*(self: ptr IHTMLElement4): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.normalize(self) + +proc getAttributeNode*( + self: ptr IHTMLElement4, bstrname: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttributeNode(self, bstrname, ppAttribute) + +proc setAttributeNode*( + self: ptr IHTMLElement4, + pattr: ptr IHTMLDOMAttribute, + ppretAttribute: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttributeNode(self, pattr, ppretAttribute) + +proc removeAttributeNode*( + self: ptr IHTMLElement4, + pattr: ptr IHTMLDOMAttribute, + ppretAttribute: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttributeNode(self, pattr, ppretAttribute) + +proc put_onbeforeactivate*( + self: ptr IHTMLElement4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeactivate(self, v) + +proc get_onbeforeactivate*( + self: ptr IHTMLElement4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeactivate(self, p) + +proc put_onfocusin*(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocusin(self, v) + +proc get_onfocusin*( + self: ptr IHTMLElement4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocusin(self, p) + +proc put_onfocusout*(self: ptr IHTMLElement4, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocusout(self, v) + +proc get_onfocusout*( + self: ptr IHTMLElement4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocusout(self, p) + +proc querySelector*( + self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.querySelector(self, v, pel) + +proc querySelectorAll*( + self: ptr IElementSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.querySelectorAll(self, v, pel) + +proc DrawToDC*(self: ptr IHTMLElementRender, hDC: HDC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DrawToDC(self, hDC) + +proc SetDocumentPrinter*( + self: ptr IHTMLElementRender, bstrPrinterName: BSTR, hDC: HDC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDocumentPrinter(self, bstrPrinterName, hDC) + +proc get_uniqueNumber*( + self: ptr IHTMLUniqueName, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_uniqueNumber(self, p) + +proc get_uniqueID*(self: ptr IHTMLUniqueName, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_uniqueID(self, p) + +proc getAttributeNode*( + self: ptr IHTMLElement5, bstrname: BSTR, ppretAttribute: ptr ptr IHTMLDOMAttribute2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttributeNode(self, bstrname, ppretAttribute) + +proc setAttributeNode*( + self: ptr IHTMLElement5, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttributeNode(self, pattr, ppretAttribute) + +proc removeAttributeNode*( + self: ptr IHTMLElement5, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttributeNode(self, pattr, ppretAttribute) + +proc hasAttribute*( + self: ptr IHTMLElement5, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttribute(self, name, pfHasAttribute) + +proc put_role*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_role(self, v) + +proc get_role*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_role(self, p) + +proc put_ariaBusy*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaBusy(self, v) + +proc get_ariaBusy*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaBusy(self, p) + +proc put_ariaChecked*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaChecked(self, v) + +proc get_ariaChecked*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaChecked(self, p) + +proc put_ariaDisabled*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaDisabled(self, v) + +proc get_ariaDisabled*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaDisabled(self, p) + +proc put_ariaExpanded*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaExpanded(self, v) + +proc get_ariaExpanded*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaExpanded(self, p) + +proc put_ariaHaspopup*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaHaspopup(self, v) + +proc get_ariaHaspopup*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaHaspopup(self, p) + +proc put_ariaHidden*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaHidden(self, v) + +proc get_ariaHidden*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaHidden(self, p) + +proc put_ariaInvalid*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaInvalid(self, v) + +proc get_ariaInvalid*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaInvalid(self, p) + +proc put_ariaMultiselectable*( + self: ptr IHTMLElement5, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaMultiselectable(self, v) + +proc get_ariaMultiselectable*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaMultiselectable(self, p) + +proc put_ariaPressed*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaPressed(self, v) + +proc get_ariaPressed*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaPressed(self, p) + +proc put_ariaReadonly*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaReadonly(self, v) + +proc get_ariaReadonly*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaReadonly(self, p) + +proc put_ariaRequired*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaRequired(self, v) + +proc get_ariaRequired*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaRequired(self, p) + +proc put_ariaSecret*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaSecret(self, v) + +proc get_ariaSecret*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaSecret(self, p) + +proc put_ariaSelected*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaSelected(self, v) + +proc get_ariaSelected*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaSelected(self, p) + +proc getAttribute*( + self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, AttributeValue) + +proc setAttribute*( + self: ptr IHTMLElement5, strAttributeName: BSTR, AttributeValue: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue) + +proc removeAttribute*( + self: ptr IHTMLElement5, strAttributeName: BSTR, pfSuccess: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strAttributeName, pfSuccess) + +proc get_attributes*( + self: ptr IHTMLElement5, p: ptr ptr IHTMLAttributeCollection3 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attributes(self, p) + +proc put_ariaValuenow*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaValuenow(self, v) + +proc get_ariaValuenow*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaValuenow(self, p) + +proc put_ariaPosinset*(self: ptr IHTMLElement5, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaPosinset(self, v) + +proc get_ariaPosinset*( + self: ptr IHTMLElement5, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaPosinset(self, p) + +proc put_ariaSetsize*(self: ptr IHTMLElement5, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaSetsize(self, v) + +proc get_ariaSetsize*( + self: ptr IHTMLElement5, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaSetsize(self, p) + +proc put_ariaLevel*(self: ptr IHTMLElement5, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaLevel(self, v) + +proc get_ariaLevel*(self: ptr IHTMLElement5, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaLevel(self, p) + +proc put_ariaValuemin*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaValuemin(self, v) + +proc get_ariaValuemin*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaValuemin(self, p) + +proc put_ariaValuemax*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaValuemax(self, v) + +proc get_ariaValuemax*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaValuemax(self, p) + +proc put_ariaControls*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaControls(self, v) + +proc get_ariaControls*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaControls(self, p) + +proc put_ariaDescribedby*( + self: ptr IHTMLElement5, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaDescribedby(self, v) + +proc get_ariaDescribedby*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaDescribedby(self, p) + +proc put_ariaFlowto*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaFlowto(self, v) + +proc get_ariaFlowto*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaFlowto(self, p) + +proc put_ariaLabelledby*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaLabelledby(self, v) + +proc get_ariaLabelledby*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaLabelledby(self, p) + +proc put_ariaActivedescendant*( + self: ptr IHTMLElement5, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaActivedescendant(self, v) + +proc get_ariaActivedescendant*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaActivedescendant(self, p) + +proc put_ariaOwns*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaOwns(self, v) + +proc get_ariaOwns*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaOwns(self, p) + +proc hasAttributes*( + self: ptr IHTMLElement5, pfHasAttributes: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttributes(self, pfHasAttributes) + +proc put_ariaLive*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaLive(self, v) + +proc get_ariaLive*(self: ptr IHTMLElement5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaLive(self, p) + +proc put_ariaRelevant*(self: ptr IHTMLElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ariaRelevant(self, v) + +proc get_ariaRelevant*( + self: ptr IHTMLElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ariaRelevant(self, p) + +proc getAttributeNS*( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + strAttributeName: BSTR, + AttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttributeNS(self, pvarNS, strAttributeName, AttributeValue) + +proc setAttributeNS*( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + strAttributeName: BSTR, + pvarAttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttributeNS(self, pvarNS, strAttributeName, pvarAttributeValue) + +proc removeAttributeNS*( + self: ptr IHTMLElement6, pvarNS: ptr VARIANT, strAttributeName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttributeNS(self, pvarNS, strAttributeName) + +proc getAttributeNodeNS*( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + bstrname: BSTR, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttributeNodeNS(self, pvarNS, bstrname, ppretAttribute) + +proc setAttributeNodeNS*( + self: ptr IHTMLElement6, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttributeNodeNS(self, pattr, ppretAttribute) + +proc hasAttributeNS*( + self: ptr IHTMLElement6, + pvarNS: ptr VARIANT, + name: BSTR, + pfHasAttribute: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttributeNS(self, pvarNS, name, pfHasAttribute) + +proc getAttribute*( + self: ptr IHTMLElement6, strAttributeName: BSTR, AttributeValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, AttributeValue) + +proc setAttribute*( + self: ptr IHTMLElement6, strAttributeName: BSTR, pvarAttributeValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strAttributeName, pvarAttributeValue) + +proc removeAttribute*( + self: ptr IHTMLElement6, strAttributeName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strAttributeName) + +proc getAttributeNode*( + self: ptr IHTMLElement6, + strAttributeName: BSTR, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttributeNode(self, strAttributeName, ppretAttribute) + +proc setAttributeNode*( + self: ptr IHTMLElement6, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttributeNode(self, pattr, ppretAttribute) + +proc removeAttributeNode*( + self: ptr IHTMLElement6, + pattr: ptr IHTMLDOMAttribute2, + ppretAttribute: ptr ptr IHTMLDOMAttribute2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttributeNode(self, pattr, ppretAttribute) + +proc hasAttribute*( + self: ptr IHTMLElement6, name: BSTR, pfHasAttribute: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttribute(self, name, pfHasAttribute) + +proc getElementsByTagNameNS*( + self: ptr IHTMLElement6, + varNS: ptr VARIANT, + bstrLocalName: BSTR, + pelColl: ptr ptr IHTMLElementCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByTagNameNS(self, varNS, bstrLocalName, pelColl) + +proc get_tagName*(self: ptr IHTMLElement6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagName(self, p) + +proc get_nodeName*(self: ptr IHTMLElement6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeName(self, p) + +proc getElementsByClassName*( + self: ptr IHTMLElement6, v: BSTR, pel: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByClassName(self, v, pel) + +proc msMatchesSelector*( + self: ptr IHTMLElement6, v: BSTR, pfMatches: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msMatchesSelector(self, v, pfMatches) + +proc put_onabort*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onabort(self, v) + +proc get_onabort*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onabort(self, p) + +proc put_oncanplay*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncanplay(self, v) + +proc get_oncanplay*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncanplay(self, p) + +proc put_oncanplaythrough*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncanplaythrough(self, v) + +proc get_oncanplaythrough*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncanplaythrough(self, p) + +proc put_onchange*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_ondurationchange*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondurationchange(self, v) + +proc get_ondurationchange*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondurationchange(self, p) + +proc put_onemptied*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onemptied(self, v) + +proc get_onemptied*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onemptied(self, p) + +proc put_onended*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onended(self, v) + +proc get_onended*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onended(self, p) + +proc put_onerror*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_oninput*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oninput(self, v) + +proc get_oninput*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oninput(self, p) + +proc put_onload*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onloadeddata*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadeddata(self, v) + +proc get_onloadeddata*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadeddata(self, p) + +proc put_onloadedmetadata*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadedmetadata(self, v) + +proc get_onloadedmetadata*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadedmetadata(self, p) + +proc put_onloadstart*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadstart(self, v) + +proc get_onloadstart*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadstart(self, p) + +proc put_onpause*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpause(self, v) + +proc get_onpause*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpause(self, p) + +proc put_onplay*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onplay(self, v) + +proc get_onplay*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onplay(self, p) + +proc put_onplaying*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onplaying(self, v) + +proc get_onplaying*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onplaying(self, p) + +proc put_onprogress*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onprogress(self, v) + +proc get_onprogress*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onprogress(self, p) + +proc put_onratechange*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onratechange(self, v) + +proc get_onratechange*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onratechange(self, p) + +proc put_onreset*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreset(self, v) + +proc get_onreset*(self: ptr IHTMLElement6, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreset(self, p) + +proc put_onseeked*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onseeked(self, v) + +proc get_onseeked*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onseeked(self, p) + +proc put_onseeking*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onseeking(self, v) + +proc get_onseeking*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onseeking(self, p) + +proc put_onselect*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_onstalled*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstalled(self, v) + +proc get_onstalled*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstalled(self, p) + +proc put_onsubmit*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsubmit(self, v) + +proc get_onsubmit*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsubmit(self, p) + +proc put_onsuspend*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsuspend(self, v) + +proc get_onsuspend*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsuspend(self, p) + +proc put_ontimeupdate*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ontimeupdate(self, v) + +proc get_ontimeupdate*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ontimeupdate(self, p) + +proc put_onvolumechange*( + self: ptr IHTMLElement6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onvolumechange(self, v) + +proc get_onvolumechange*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onvolumechange(self, p) + +proc put_onwaiting*(self: ptr IHTMLElement6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onwaiting(self, v) + +proc get_onwaiting*( + self: ptr IHTMLElement6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onwaiting(self, p) + +proc hasAttributes*( + self: ptr IHTMLElement6, pfHasAttributes: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttributes(self, pfHasAttributes) + +proc put_onmspointerdown*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerdown(self, v) + +proc get_onmspointerdown*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerdown(self, p) + +proc put_onmspointermove*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointermove(self, v) + +proc get_onmspointermove*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointermove(self, p) + +proc put_onmspointerup*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerup(self, v) + +proc get_onmspointerup*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerup(self, p) + +proc put_onmspointerover*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerover(self, v) + +proc get_onmspointerover*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerover(self, p) + +proc put_onmspointerout*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerout(self, v) + +proc get_onmspointerout*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerout(self, p) + +proc put_onmspointercancel*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointercancel(self, v) + +proc get_onmspointercancel*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointercancel(self, p) + +proc put_onmspointerhover*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerhover(self, v) + +proc get_onmspointerhover*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerhover(self, p) + +proc put_onmslostpointercapture*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmslostpointercapture(self, v) + +proc get_onmslostpointercapture*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmslostpointercapture(self, p) + +proc put_onmsgotpointercapture*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgotpointercapture(self, v) + +proc get_onmsgotpointercapture*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgotpointercapture(self, p) + +proc put_onmsgesturestart*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturestart(self, v) + +proc get_onmsgesturestart*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturestart(self, p) + +proc put_onmsgesturechange*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturechange(self, v) + +proc get_onmsgesturechange*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturechange(self, p) + +proc put_onmsgestureend*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgestureend(self, v) + +proc get_onmsgestureend*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgestureend(self, p) + +proc put_onmsgesturehold*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturehold(self, v) + +proc get_onmsgesturehold*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturehold(self, p) + +proc put_onmsgesturetap*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturetap(self, v) + +proc get_onmsgesturetap*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturetap(self, p) + +proc put_onmsgesturedoubletap*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturedoubletap(self, v) + +proc get_onmsgesturedoubletap*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturedoubletap(self, p) + +proc put_onmsinertiastart*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsinertiastart(self, v) + +proc get_onmsinertiastart*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsinertiastart(self, p) + +proc msSetPointerCapture*( + self: ptr IHTMLElement7, pointerId: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msSetPointerCapture(self, pointerId) + +proc msReleasePointerCapture*( + self: ptr IHTMLElement7, pointerId: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msReleasePointerCapture(self, pointerId) + +proc put_onmstransitionstart*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmstransitionstart(self, v) + +proc get_onmstransitionstart*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmstransitionstart(self, p) + +proc put_onmstransitionend*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmstransitionend(self, v) + +proc get_onmstransitionend*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmstransitionend(self, p) + +proc put_onmsanimationstart*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsanimationstart(self, v) + +proc get_onmsanimationstart*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsanimationstart(self, p) + +proc put_onmsanimationend*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsanimationend(self, v) + +proc get_onmsanimationend*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsanimationend(self, p) + +proc put_onmsanimationiteration*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsanimationiteration(self, v) + +proc get_onmsanimationiteration*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsanimationiteration(self, p) + +proc put_oninvalid*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oninvalid(self, v) + +proc get_oninvalid*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oninvalid(self, p) + +proc put_xmsAcceleratorKey*( + self: ptr IHTMLElement7, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_xmsAcceleratorKey(self, v) + +proc get_xmsAcceleratorKey*( + self: ptr IHTMLElement7, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmsAcceleratorKey(self, p) + +proc put_spellcheck*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_spellcheck(self, v) + +proc get_spellcheck*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_spellcheck(self, p) + +proc put_onmsmanipulationstatechanged*( + self: ptr IHTMLElement7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsmanipulationstatechanged(self, v) + +proc get_onmsmanipulationstatechanged*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsmanipulationstatechanged(self, p) + +proc put_oncuechange*(self: ptr IHTMLElement7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncuechange(self, v) + +proc get_oncuechange*( + self: ptr IHTMLElement7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncuechange(self, p) + +proc msGetRulesApplied*( + self: ptr IHTMLElementAppliedStyles, + ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msGetRulesApplied(self, ppRulesAppliedCollection) + +proc msGetRulesAppliedWithAncestor*( + self: ptr IHTMLElementAppliedStyles, + varContext: VARIANT, + ppRulesAppliedCollection: ptr ptr IRulesAppliedCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msGetRulesAppliedWithAncestor( + self, varContext, ppRulesAppliedCollection + ) + +proc get_firstElementChild*( + self: ptr IElementTraversal, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_firstElementChild(self, p) + +proc get_lastElementChild*( + self: ptr IElementTraversal, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastElementChild(self, p) + +proc get_previousElementSibling*( + self: ptr IElementTraversal, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousElementSibling(self, p) + +proc get_nextElementSibling*( + self: ptr IElementTraversal, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nextElementSibling(self, p) + +proc get_childElementCount*( + self: ptr IElementTraversal, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childElementCount(self, p) + +proc put_dataFld*(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dataFld(self, v) + +proc get_dataFld*(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataFld(self, p) + +proc put_dataSrc*(self: ptr IHTMLDatabinding, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dataSrc(self, v) + +proc get_dataSrc*(self: ptr IHTMLDatabinding, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataSrc(self, p) + +proc put_dataFormatAs*( + self: ptr IHTMLDatabinding, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dataFormatAs(self, v) + +proc get_dataFormatAs*( + self: ptr IHTMLDatabinding, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataFormatAs(self, p) + +proc get_style*( + self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_style(self, p) + +proc put_tabStop*( + self: ptr IHTMLElementDefaults, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tabStop(self, v) + +proc get_tabStop*( + self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tabStop(self, p) + +proc put_viewInheritStyle*( + self: ptr IHTMLElementDefaults, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_viewInheritStyle(self, v) + +proc get_viewInheritStyle*( + self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewInheritStyle(self, p) + +proc put_viewMasterTab*( + self: ptr IHTMLElementDefaults, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_viewMasterTab(self, v) + +proc get_viewMasterTab*( + self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewMasterTab(self, p) + +proc put_scrollSegmentX*( + self: ptr IHTMLElementDefaults, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollSegmentX(self, v) + +proc get_scrollSegmentX*( + self: ptr IHTMLElementDefaults, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollSegmentX(self, p) + +proc put_scrollSegmentY*( + self: ptr IHTMLElementDefaults, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollSegmentY(self, v) + +proc get_scrollSegmentY*( + self: ptr IHTMLElementDefaults, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollSegmentY(self, p) + +proc put_isMultiLine*( + self: ptr IHTMLElementDefaults, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_isMultiLine(self, v) + +proc get_isMultiLine*( + self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isMultiLine(self, p) + +proc put_contentEditable*( + self: ptr IHTMLElementDefaults, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_contentEditable(self, v) + +proc get_contentEditable*( + self: ptr IHTMLElementDefaults, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentEditable(self, p) + +proc put_canHaveHTML*( + self: ptr IHTMLElementDefaults, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_canHaveHTML(self, v) + +proc get_canHaveHTML*( + self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_canHaveHTML(self, p) + +proc putref_viewLink*( + self: ptr IHTMLElementDefaults, v: ptr IHTMLDocument +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_viewLink(self, v) + +proc get_viewLink*( + self: ptr IHTMLElementDefaults, p: ptr ptr IHTMLDocument +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewLink(self, p) + +proc put_frozen*( + self: ptr IHTMLElementDefaults, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frozen(self, v) + +proc get_frozen*( + self: ptr IHTMLElementDefaults, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frozen(self, p) + +proc get_element*( + self: ptr IHTCDefaultDispatch, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_element(self, p) + +proc createEventObject*( + self: ptr IHTCDefaultDispatch, eventObj: ptr ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createEventObject(self, eventObj) + +proc get_defaults*( + self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaults(self, p) + +proc get_document*( + self: ptr IHTCDefaultDispatch, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_document(self, p) + +proc fireChange*(self: ptr IHTCPropertyBehavior): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fireChange(self) + +proc put_value*( + self: ptr IHTCPropertyBehavior, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTCPropertyBehavior, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc fire*( + self: ptr IHTCEventBehavior, pvar: ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fire(self, pvar) + +proc fireEvent*( + self: ptr IHTCAttachBehavior, evt: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fireEvent(self, evt) + +proc detachEvent*(self: ptr IHTCAttachBehavior): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detachEvent(self) + +proc fireEvent*( + self: ptr IHTCAttachBehavior2, evt: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fireEvent(self, evt) + +proc get_urn*(self: ptr IHTCDescBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_urn(self, p) + +proc get_name*(self: ptr IHTCDescBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc get_length*( + self: ptr IHTMLUrnCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLUrnCollection, index: LONG, ppUrn: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppUrn) + +proc get_recordset*( + self: ptr IHTMLGenericElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_recordset(self, p) + +proc namedRecordset*( + self: ptr IHTMLGenericElement, + dataMember: BSTR, + hierarchy: ptr VARIANT, + ppRecordset: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedRecordset(self, dataMember, hierarchy, ppRecordset) + +proc put_selectorText*( + self: ptr IHTMLStyleSheetRule, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectorText(self, v) + +proc get_selectorText*( + self: ptr IHTMLStyleSheetRule, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectorText(self, p) + +proc get_style*( + self: ptr IHTMLStyleSheetRule, p: ptr ptr IHTMLRuleStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_style(self, p) + +proc get_readOnly*( + self: ptr IHTMLStyleSheetRule, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readOnly(self, p) + +proc get_msSpecificity*( + self: ptr IHTMLStyleSheetRuleApplied, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msSpecificity(self, p) + +proc msGetSpecificity*( + self: ptr IHTMLStyleSheetRuleApplied, index: LONG, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msGetSpecificity(self, index, p) + +proc put_selectorText*( + self: ptr IHTMLStyleSheetRule2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectorText(self, v) + +proc get_selectorText*( + self: ptr IHTMLStyleSheetRule2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectorText(self, p) + +proc get_length*( + self: ptr IHTMLStyleSheetRulesCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLStyleSheetRulesCollection, + index: LONG, + ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppHTMLStyleSheetRule) + +proc get_length*( + self: ptr IHTMLStyleSheetRulesCollection2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLStyleSheetRulesCollection2, + index: LONG, + ppHTMLCSSRule: ptr ptr IHTMLCSSRule, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppHTMLCSSRule) + +proc get_selector*( + self: ptr IHTMLStyleSheetPage, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selector(self, p) + +proc get_pseudoClass*( + self: ptr IHTMLStyleSheetPage, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pseudoClass(self, p) + +proc put_selectorText*( + self: ptr IHTMLStyleSheetPage2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectorText(self, v) + +proc get_selectorText*( + self: ptr IHTMLStyleSheetPage2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectorText(self, p) + +proc get_style*( + self: ptr IHTMLStyleSheetPage2, p: ptr ptr IHTMLRuleStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_style(self, p) + +proc get_length*( + self: ptr IHTMLStyleSheetPagesCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLStyleSheetPagesCollection, + index: LONG, + ppHTMLStyleSheetPage: ptr ptr IHTMLStyleSheetPage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppHTMLStyleSheetPage) + +proc put_title*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_title(self, v) + +proc get_title*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_title(self, p) + +proc get_parentStyleSheet*( + self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentStyleSheet(self, p) + +proc get_owningElement*( + self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_owningElement(self, p) + +proc put_disabled*( + self: ptr IHTMLStyleSheet, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_readOnly*( + self: ptr IHTMLStyleSheet, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readOnly(self, p) + +proc get_imports*( + self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetsCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imports(self, p) + +proc put_href*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc get_type*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_id*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_id(self, p) + +proc addImport*( + self: ptr IHTMLStyleSheet, bstrURL: BSTR, lIndex: LONG, plIndex: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addImport(self, bstrURL, lIndex, plIndex) + +proc addRule*( + self: ptr IHTMLStyleSheet, + bstrSelector: BSTR, + bstrStyle: BSTR, + lIndex: LONG, + plNewIndex: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addRule(self, bstrSelector, bstrStyle, lIndex, plNewIndex) + +proc removeImport*( + self: ptr IHTMLStyleSheet, lIndex: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeImport(self, lIndex) + +proc removeRule*(self: ptr IHTMLStyleSheet, lIndex: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeRule(self, lIndex) + +proc put_media*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc put_cssText*(self: ptr IHTMLStyleSheet, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cssText(self, v) + +proc get_cssText*(self: ptr IHTMLStyleSheet, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssText(self, p) + +proc get_rules*( + self: ptr IHTMLStyleSheet, p: ptr ptr IHTMLStyleSheetRulesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rules(self, p) + +proc get_pages*( + self: ptr IHTMLStyleSheet2, p: ptr ptr IHTMLStyleSheetPagesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pages(self, p) + +proc addPageRule*( + self: ptr IHTMLStyleSheet2, + bstrSelector: BSTR, + bstrStyle: BSTR, + lIndex: LONG, + plNewIndex: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addPageRule(self, bstrSelector, bstrStyle, lIndex, plNewIndex) + +proc put_href*(self: ptr IHTMLStyleSheet3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLStyleSheet3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc get_isAlternate*( + self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isAlternate(self, p) + +proc get_isPrefAlternate*( + self: ptr IHTMLStyleSheet3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isPrefAlternate(self, p) + +proc get_type*(self: ptr IHTMLStyleSheet4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_href*(self: ptr IHTMLStyleSheet4, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc get_title*(self: ptr IHTMLStyleSheet4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_title(self, p) + +proc get_ownerNode*( + self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerNode(self, p) + +proc get_ownerRule*( + self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLCSSRule +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerRule(self, p) + +proc get_cssRules*( + self: ptr IHTMLStyleSheet4, p: ptr ptr IHTMLStyleSheetRulesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cssRules(self, p) + +proc get_media*( + self: ptr IHTMLStyleSheet4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc insertRule*( + self: ptr IHTMLStyleSheet4, bstrRule: BSTR, lIndex: LONG, plNewIndex: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertRule(self, bstrRule, lIndex, plNewIndex) + +proc deleteRule*(self: ptr IHTMLStyleSheet4, lIndex: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRule(self, lIndex) + +proc get_length*( + self: ptr IHTMLStyleSheetsCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLStyleSheetsCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLStyleSheetsCollection, + pvarIndex: ptr VARIANT, + pvarResult: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, pvarIndex, pvarResult) + +proc item*( + self: ptr IHTMLStyleSheetsCollection2, index: LONG, pvarResult: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pvarResult) + +proc put_href*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_rel*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rel(self, v) + +proc get_rel*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rel(self, p) + +proc put_rev*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rev(self, v) + +proc get_rev*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rev(self, p) + +proc put_type*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_readyState*( + self: ptr IHTMLLinkElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLLinkElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLLinkElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc put_onload*(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLLinkElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onerror*(self: ptr IHTMLLinkElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLLinkElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc get_styleSheet*( + self: ptr IHTMLLinkElement, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleSheet(self, p) + +proc put_disabled*( + self: ptr IHTMLLinkElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLLinkElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc put_media*(self: ptr IHTMLLinkElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*(self: ptr IHTMLLinkElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc put_target*(self: ptr IHTMLLinkElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_target(self, v) + +proc get_target*(self: ptr IHTMLLinkElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc put_charset*(self: ptr IHTMLLinkElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, v) + +proc get_charset*( + self: ptr IHTMLLinkElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_hreflang*(self: ptr IHTMLLinkElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hreflang(self, v) + +proc get_hreflang*( + self: ptr IHTMLLinkElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hreflang(self, p) + +proc put_href*(self: ptr IHTMLLinkElement4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLLinkElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc get_sheet*( + self: ptr IHTMLLinkElement5, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sheet(self, p) + +proc get_htmlText*(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_htmlText(self, p) + +proc put_text*(self: ptr IHTMLTxtRange, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, v) + +proc get_text*(self: ptr IHTMLTxtRange, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc parentElement*( + self: ptr IHTMLTxtRange, parent: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.parentElement(self, parent) + +proc duplicate*( + self: ptr IHTMLTxtRange, Duplicate: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.duplicate(self, Duplicate) + +proc inRange*( + self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, InRange: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.inRange(self, Range, InRange) + +proc isEqual*( + self: ptr IHTMLTxtRange, Range: ptr IHTMLTxtRange, IsEqual: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isEqual(self, Range, IsEqual) + +proc scrollIntoView*( + self: ptr IHTMLTxtRange, fStart: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scrollIntoView(self, fStart) + +proc collapse*( + self: ptr IHTMLTxtRange, Start: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.collapse(self, Start) + +proc expand*( + self: ptr IHTMLTxtRange, Unit: BSTR, Success: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.expand(self, Unit, Success) + +proc move*( + self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.move(self, Unit, Count, ActualCount) + +proc moveStart*( + self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveStart(self, Unit, Count, ActualCount) + +proc moveEnd*( + self: ptr IHTMLTxtRange, Unit: BSTR, Count: LONG, ActualCount: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveEnd(self, Unit, Count, ActualCount) + +proc select*(self: ptr IHTMLTxtRange): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.select(self) + +proc pasteHTML*(self: ptr IHTMLTxtRange, html: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.pasteHTML(self, html) + +proc moveToElementText*( + self: ptr IHTMLTxtRange, element: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveToElementText(self, element) + +proc setEndPoint*( + self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setEndPoint(self, how, SourceRange) + +proc compareEndPoints*( + self: ptr IHTMLTxtRange, how: BSTR, SourceRange: ptr IHTMLTxtRange, ret: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.compareEndPoints(self, how, SourceRange, ret) + +proc findText*( + self: ptr IHTMLTxtRange, + String: BSTR, + count: LONG, + Flags: LONG, + Success: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.findText(self, String, count, Flags, Success) + +proc moveToPoint*( + self: ptr IHTMLTxtRange, x: LONG, y: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveToPoint(self, x, y) + +proc getBookmark*( + self: ptr IHTMLTxtRange, Boolmark: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getBookmark(self, Boolmark) + +proc moveToBookmark*( + self: ptr IHTMLTxtRange, Bookmark: BSTR, Success: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveToBookmark(self, Bookmark, Success) + +proc queryCommandSupported*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandSupported(self, cmdID, pfRet) + +proc queryCommandEnabled*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet) + +proc queryCommandState*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandState(self, cmdID, pfRet) + +proc queryCommandIndeterm*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet) + +proc queryCommandText*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdText: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandText(self, cmdID, pcmdText) + +proc queryCommandValue*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pcmdValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue) + +proc execCommand*( + self: ptr IHTMLTxtRange, + cmdID: BSTR, + showUI: VARIANT_BOOL, + value: VARIANT, + pfRet: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet) + +proc execCommandShowHelp*( + self: ptr IHTMLTxtRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet) + +proc get_offsetTop*( + self: ptr IHTMLTextRangeMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetTop(self, p) + +proc get_offsetLeft*( + self: ptr IHTMLTextRangeMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetLeft(self, p) + +proc get_boundingTop*( + self: ptr IHTMLTextRangeMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boundingTop(self, p) + +proc get_boundingLeft*( + self: ptr IHTMLTextRangeMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boundingLeft(self, p) + +proc get_boundingWidth*( + self: ptr IHTMLTextRangeMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boundingWidth(self, p) + +proc get_boundingHeight*( + self: ptr IHTMLTextRangeMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boundingHeight(self, p) + +proc getClientRects*( + self: ptr IHTMLTextRangeMetrics2, pRectCol: ptr ptr IHTMLRectCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getClientRects(self, pRectCol) + +proc getBoundingClientRect*( + self: ptr IHTMLTextRangeMetrics2, pRect: ptr ptr IHTMLRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getBoundingClientRect(self, pRect) + +proc get_length*( + self: ptr IHTMLTxtRangeCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLTxtRangeCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLTxtRangeCollection, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, pvarIndex, pvarResult) + +proc get_startContainer*( + self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_startContainer(self, p) + +proc get_startOffset*( + self: ptr IHTMLDOMRange, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_startOffset(self, p) + +proc get_endContainer*( + self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_endContainer(self, p) + +proc get_endOffset*(self: ptr IHTMLDOMRange, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_endOffset(self, p) + +proc get_collapsed*( + self: ptr IHTMLDOMRange, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_collapsed(self, p) + +proc get_commonAncestorContainer*( + self: ptr IHTMLDOMRange, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_commonAncestorContainer(self, p) + +proc setStart*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setStart(self, refNode, offset) + +proc setEnd*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch, offset: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setEnd(self, refNode, offset) + +proc setStartBefore*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setStartBefore(self, refNode) + +proc setStartAfter*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setStartAfter(self, refNode) + +proc setEndBefore*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setEndBefore(self, refNode) + +proc setEndAfter*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setEndAfter(self, refNode) + +proc collapse*( + self: ptr IHTMLDOMRange, toStart: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.collapse(self, toStart) + +proc selectNode*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.selectNode(self, refNode) + +proc selectNodeContents*( + self: ptr IHTMLDOMRange, refNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.selectNodeContents(self, refNode) + +proc compareBoundaryPoints*( + self: ptr IHTMLDOMRange, + how: int16, + sourceRange: ptr IDispatch, + compareResult: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.compareBoundaryPoints(self, how, sourceRange, compareResult) + +proc deleteContents*(self: ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteContents(self) + +proc extractContents*( + self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.extractContents(self, ppDocumentFragment) + +proc cloneContents*( + self: ptr IHTMLDOMRange, ppDocumentFragment: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.cloneContents(self, ppDocumentFragment) + +proc insertNode*( + self: ptr IHTMLDOMRange, newNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertNode(self, newNode) + +proc surroundContents*( + self: ptr IHTMLDOMRange, newParent: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.surroundContents(self, newParent) + +proc cloneRange*( + self: ptr IHTMLDOMRange, ppClonedRange: ptr ptr IHTMLDOMRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.cloneRange(self, ppClonedRange) + +proc toString*( + self: ptr IHTMLDOMRange, pRangeString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, pRangeString) + +proc detach*(self: ptr IHTMLDOMRange): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detach(self) + +proc getClientRects*( + self: ptr IHTMLDOMRange, ppRectCol: ptr ptr IHTMLRectCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getClientRects(self, ppRectCol) + +proc getBoundingClientRect*( + self: ptr IHTMLDOMRange, ppRect: ptr ptr IHTMLRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getBoundingClientRect(self, ppRect) + +proc put_action*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_action(self, v) + +proc get_action*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_action(self, p) + +proc put_dir*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dir(self, v) + +proc get_dir*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dir(self, p) + +proc put_encoding*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_encoding(self, v) + +proc get_encoding*( + self: ptr IHTMLFormElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_encoding(self, p) + +proc put_method*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_method(self, v) + +proc get_method*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_method(self, p) + +proc get_elements*( + self: ptr IHTMLFormElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_elements(self, p) + +proc put_target*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_target(self, v) + +proc get_target*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc put_name*(self: ptr IHTMLFormElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLFormElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_onsubmit*(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsubmit(self, v) + +proc get_onsubmit*( + self: ptr IHTMLFormElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsubmit(self, p) + +proc put_onreset*(self: ptr IHTMLFormElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreset(self, v) + +proc get_onreset*( + self: ptr IHTMLFormElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreset(self, p) + +proc submit*(self: ptr IHTMLFormElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.submit(self) + +proc reset*(self: ptr IHTMLFormElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.reset(self) + +proc put_length*(self: ptr IHTMLFormElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_length(self, v) + +proc get_length*(self: ptr IHTMLFormElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLFormElement, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLFormElement, name: VARIANT, index: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, name, index, pdisp) + +proc tags*( + self: ptr IHTMLFormElement, tagName: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.tags(self, tagName, pdisp) + +proc put_acceptCharset*( + self: ptr IHTMLFormElement2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_acceptCharset(self, v) + +proc get_acceptCharset*( + self: ptr IHTMLFormElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_acceptCharset(self, p) + +proc urns*( + self: ptr IHTMLFormElement2, urn: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.urns(self, urn, pdisp) + +proc namedItem*( + self: ptr IHTMLFormElement3, name: BSTR, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedItem(self, name, pdisp) + +proc appendNameValuePair*( + self: ptr IHTMLSubmitData, name: BSTR, value: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendNameValuePair(self, name, value) + +proc appendNameFilePair*( + self: ptr IHTMLSubmitData, name: BSTR, filename: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendNameFilePair(self, name, filename) + +proc appendItemSeparator*(self: ptr IHTMLSubmitData): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItemSeparator(self) + +proc put_action*(self: ptr IHTMLFormElement4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_action(self, v) + +proc get_action*(self: ptr IHTMLFormElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_action(self, p) + +proc put_tabIndex*( + self: ptr IHTMLControlElement, v: int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tabIndex(self, v) + +proc get_tabIndex*( + self: ptr IHTMLControlElement, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tabIndex(self, p) + +proc focus*(self: ptr IHTMLControlElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.focus(self) + +proc put_accessKey*( + self: ptr IHTMLControlElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accessKey(self, v) + +proc get_accessKey*( + self: ptr IHTMLControlElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accessKey(self, p) + +proc put_onblur*( + self: ptr IHTMLControlElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onblur(self, v) + +proc get_onblur*( + self: ptr IHTMLControlElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onblur(self, p) + +proc put_onfocus*( + self: ptr IHTMLControlElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocus(self, v) + +proc get_onfocus*( + self: ptr IHTMLControlElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocus(self, p) + +proc put_onresize*( + self: ptr IHTMLControlElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onresize(self, v) + +proc get_onresize*( + self: ptr IHTMLControlElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onresize(self, p) + +proc blur*(self: ptr IHTMLControlElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.blur(self) + +proc addFilter*( + self: ptr IHTMLControlElement, pUnk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addFilter(self, pUnk) + +proc removeFilter*( + self: ptr IHTMLControlElement, pUnk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeFilter(self, pUnk) + +proc get_clientHeight*( + self: ptr IHTMLControlElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientHeight(self, p) + +proc get_clientWidth*( + self: ptr IHTMLControlElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientWidth(self, p) + +proc get_clientTop*( + self: ptr IHTMLControlElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientTop(self, p) + +proc get_clientLeft*( + self: ptr IHTMLControlElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientLeft(self, p) + +proc createControlRange*( + self: ptr IHTMLTextContainer, range: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createControlRange(self, range) + +proc get_scrollHeight*( + self: ptr IHTMLTextContainer, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollHeight(self, p) + +proc get_scrollWidth*( + self: ptr IHTMLTextContainer, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollWidth(self, p) + +proc put_scrollTop*(self: ptr IHTMLTextContainer, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollTop(self, v) + +proc get_scrollTop*( + self: ptr IHTMLTextContainer, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollTop(self, p) + +proc put_scrollLeft*( + self: ptr IHTMLTextContainer, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollLeft(self, v) + +proc get_scrollLeft*( + self: ptr IHTMLTextContainer, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollLeft(self, p) + +proc put_onscroll*( + self: ptr IHTMLTextContainer, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onscroll(self, v) + +proc get_onscroll*( + self: ptr IHTMLTextContainer, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onscroll(self, p) + +proc select*(self: ptr IHTMLControlRange): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.select(self) + +proc add*( + self: ptr IHTMLControlRange, item: ptr IHTMLControlElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add(self, item) + +proc remove*(self: ptr IHTMLControlRange, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove(self, index) + +proc item*( + self: ptr IHTMLControlRange, index: LONG, pdisp: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pdisp) + +proc scrollIntoView*( + self: ptr IHTMLControlRange, varargStart: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scrollIntoView(self, varargStart) + +proc queryCommandSupported*( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandSupported(self, cmdID, pfRet) + +proc queryCommandEnabled*( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet) + +proc queryCommandState*( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandState(self, cmdID, pfRet) + +proc queryCommandIndeterm*( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet) + +proc queryCommandText*( + self: ptr IHTMLControlRange, cmdID: BSTR, pcmdText: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandText(self, cmdID, pcmdText) + +proc queryCommandValue*( + self: ptr IHTMLControlRange, cmdID: BSTR, pcmdValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue) + +proc execCommand*( + self: ptr IHTMLControlRange, + cmdID: BSTR, + showUI: VARIANT_BOOL, + value: VARIANT, + pfRet: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet) + +proc execCommandShowHelp*( + self: ptr IHTMLControlRange, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet) + +proc commonParentElement*( + self: ptr IHTMLControlRange, parent: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.commonParentElement(self, parent) + +proc get_length*(self: ptr IHTMLControlRange, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc addElement*( + self: ptr IHTMLControlRange2, item: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addElement(self, item) + +proc put_isMap*( + self: ptr IHTMLImgElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_isMap(self, v) + +proc get_isMap*( + self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isMap(self, p) + +proc put_useMap*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_useMap(self, v) + +proc get_useMap*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_useMap(self, p) + +proc get_mimeType*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mimeType(self, p) + +proc get_fileSize*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileSize(self, p) + +proc get_fileCreatedDate*( + self: ptr IHTMLImgElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileCreatedDate(self, p) + +proc get_fileModifiedDate*( + self: ptr IHTMLImgElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileModifiedDate(self, p) + +proc get_fileUpdatedDate*( + self: ptr IHTMLImgElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileUpdatedDate(self, p) + +proc get_protocol*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_protocol(self, p) + +proc get_href*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc get_nameProp*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nameProp(self, p) + +proc put_border*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*( + self: ptr IHTMLImgElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_vspace*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vspace(self, v) + +proc get_vspace*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vspace(self, p) + +proc put_hspace*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hspace(self, v) + +proc get_hspace*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hspace(self, p) + +proc put_alt*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alt(self, v) + +proc get_alt*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alt(self, p) + +proc put_src*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_lowsrc*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lowsrc(self, v) + +proc get_lowsrc*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lowsrc(self, p) + +proc put_vrml*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vrml(self, v) + +proc get_vrml*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vrml(self, p) + +proc put_dynsrc*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dynsrc(self, v) + +proc get_dynsrc*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dynsrc(self, p) + +proc get_readyState*( + self: ptr IHTMLImgElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc get_complete*( + self: ptr IHTMLImgElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_complete(self, p) + +proc put_loop*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_loop(self, v) + +proc get_loop*(self: ptr IHTMLImgElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loop(self, p) + +proc put_align*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_onload*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLImgElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onerror*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLImgElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_onabort*(self: ptr IHTMLImgElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onabort(self, v) + +proc get_onabort*( + self: ptr IHTMLImgElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onabort(self, p) + +proc put_name*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_width*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLImgElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLImgElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_start*(self: ptr IHTMLImgElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_start(self, v) + +proc get_start*(self: ptr IHTMLImgElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_start(self, p) + +proc put_longDesc*(self: ptr IHTMLImgElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_longDesc(self, v) + +proc get_longDesc*( + self: ptr IHTMLImgElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_longDesc(self, p) + +proc put_longDesc*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_longDesc(self, v) + +proc get_longDesc*( + self: ptr IHTMLImgElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_longDesc(self, p) + +proc put_vrml*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vrml(self, v) + +proc get_vrml*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vrml(self, p) + +proc put_lowsrc*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lowsrc(self, v) + +proc get_lowsrc*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lowsrc(self, p) + +proc put_dynsrc*(self: ptr IHTMLImgElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dynsrc(self, v) + +proc get_dynsrc*(self: ptr IHTMLImgElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dynsrc(self, p) + +proc get_naturalWidth*( + self: ptr IHTMLImgElement4, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_naturalWidth(self, p) + +proc get_naturalHeight*( + self: ptr IHTMLImgElement4, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_naturalHeight(self, p) + +proc put_msPlayToDisabled*( + self: ptr IHTMLMSImgElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msPlayToDisabled(self, v) + +proc get_msPlayToDisabled*( + self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msPlayToDisabled(self, p) + +proc put_msPlayToPrimary*( + self: ptr IHTMLMSImgElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msPlayToPrimary(self, v) + +proc get_msPlayToPrimary*( + self: ptr IHTMLMSImgElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msPlayToPrimary(self, p) + +proc create*( + self: ptr IHTMLImageElementFactory, + width: VARIANT, + height: VARIANT, + a: ptr ptr IHTMLImgElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, width, height, a) + +proc put_background*(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*( + self: ptr IHTMLBodyElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_bgProperties*( + self: ptr IHTMLBodyElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgProperties(self, v) + +proc get_bgProperties*( + self: ptr IHTMLBodyElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgProperties(self, p) + +proc put_leftMargin*( + self: ptr IHTMLBodyElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_leftMargin(self, v) + +proc get_leftMargin*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_leftMargin(self, p) + +proc put_topMargin*( + self: ptr IHTMLBodyElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_topMargin(self, v) + +proc get_topMargin*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_topMargin(self, p) + +proc put_rightMargin*( + self: ptr IHTMLBodyElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rightMargin(self, v) + +proc get_rightMargin*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rightMargin(self, p) + +proc put_bottomMargin*( + self: ptr IHTMLBodyElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bottomMargin(self, v) + +proc get_bottomMargin*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bottomMargin(self, p) + +proc put_noWrap*( + self: ptr IHTMLBodyElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noWrap(self, v) + +proc get_noWrap*( + self: ptr IHTMLBodyElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noWrap(self, p) + +proc put_bgColor*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc put_text*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, v) + +proc get_text*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc put_link*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_link(self, v) + +proc get_link*(self: ptr IHTMLBodyElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_link(self, p) + +proc put_vLink*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vLink(self, v) + +proc get_vLink*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vLink(self, p) + +proc put_aLink*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_aLink(self, v) + +proc get_aLink*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_aLink(self, p) + +proc put_onload*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onunload*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onunload(self, v) + +proc get_onunload*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onunload(self, p) + +proc put_scroll*(self: ptr IHTMLBodyElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scroll(self, v) + +proc get_scroll*(self: ptr IHTMLBodyElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scroll(self, p) + +proc put_onselect*(self: ptr IHTMLBodyElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_onbeforeunload*( + self: ptr IHTMLBodyElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeunload(self, v) + +proc get_onbeforeunload*( + self: ptr IHTMLBodyElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeunload(self, p) + +proc createTextRange*( + self: ptr IHTMLBodyElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc put_onbeforeprint*( + self: ptr IHTMLBodyElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeprint(self, v) + +proc get_onbeforeprint*( + self: ptr IHTMLBodyElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeprint(self, p) + +proc put_onafterprint*( + self: ptr IHTMLBodyElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onafterprint(self, v) + +proc get_onafterprint*( + self: ptr IHTMLBodyElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onafterprint(self, p) + +proc put_background*(self: ptr IHTMLBodyElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*( + self: ptr IHTMLBodyElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_ononline*( + self: ptr IHTMLBodyElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ononline(self, v) + +proc get_ononline*( + self: ptr IHTMLBodyElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ononline(self, p) + +proc put_onoffline*( + self: ptr IHTMLBodyElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onoffline(self, v) + +proc get_onoffline*( + self: ptr IHTMLBodyElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onoffline(self, p) + +proc put_onhashchange*( + self: ptr IHTMLBodyElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onhashchange(self, v) + +proc get_onhashchange*( + self: ptr IHTMLBodyElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onhashchange(self, p) + +proc put_onmessage*( + self: ptr IHTMLBodyElement4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmessage(self, v) + +proc get_onmessage*( + self: ptr IHTMLBodyElement4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmessage(self, p) + +proc put_onstorage*( + self: ptr IHTMLBodyElement4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstorage(self, v) + +proc get_onstorage*( + self: ptr IHTMLBodyElement4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstorage(self, p) + +proc put_onpopstate*( + self: ptr IHTMLBodyElement5, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpopstate(self, v) + +proc get_onpopstate*( + self: ptr IHTMLBodyElement5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpopstate(self, p) + +proc put_color*(self: ptr IHTMLFontElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_color(self, v) + +proc get_color*( + self: ptr IHTMLFontElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc put_face*(self: ptr IHTMLFontElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_face(self, v) + +proc get_face*(self: ptr IHTMLFontElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_face(self, p) + +proc put_size*(self: ptr IHTMLFontElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*(self: ptr IHTMLFontElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc put_href*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_target*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_target(self, v) + +proc get_target*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc put_rel*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rel(self, v) + +proc get_rel*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rel(self, p) + +proc put_rev*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rev(self, v) + +proc get_rev*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rev(self, p) + +proc put_urn*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_urn(self, v) + +proc get_urn*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_urn(self, p) + +proc put_Methods*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Methods(self, v) + +proc get_Methods*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Methods(self, p) + +proc put_name*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_host*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_host(self, v) + +proc get_host*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_host(self, p) + +proc put_hostname*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hostname(self, v) + +proc get_hostname*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hostname(self, p) + +proc put_pathname*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pathname(self, v) + +proc get_pathname*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathname(self, p) + +proc put_port*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_port(self, v) + +proc get_port*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_port(self, p) + +proc put_protocol*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_protocol(self, v) + +proc get_protocol*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_protocol(self, p) + +proc put_search*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_search(self, v) + +proc get_search*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_search(self, p) + +proc put_hash*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hash(self, v) + +proc get_hash*(self: ptr IHTMLAnchorElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hash(self, p) + +proc put_onblur*(self: ptr IHTMLAnchorElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onblur(self, v) + +proc get_onblur*( + self: ptr IHTMLAnchorElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onblur(self, p) + +proc put_onfocus*( + self: ptr IHTMLAnchorElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocus(self, v) + +proc get_onfocus*( + self: ptr IHTMLAnchorElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocus(self, p) + +proc put_accessKey*(self: ptr IHTMLAnchorElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accessKey(self, v) + +proc get_accessKey*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accessKey(self, p) + +proc get_protocolLong*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_protocolLong(self, p) + +proc get_mimeType*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mimeType(self, p) + +proc get_nameProp*( + self: ptr IHTMLAnchorElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nameProp(self, p) + +proc put_tabIndex*(self: ptr IHTMLAnchorElement, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tabIndex(self, v) + +proc get_tabIndex*( + self: ptr IHTMLAnchorElement, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tabIndex(self, p) + +proc focus*(self: ptr IHTMLAnchorElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.focus(self) + +proc blur*(self: ptr IHTMLAnchorElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.blur(self) + +proc put_charset*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, v) + +proc get_charset*( + self: ptr IHTMLAnchorElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_coords*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_coords(self, v) + +proc get_coords*( + self: ptr IHTMLAnchorElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_coords(self, p) + +proc put_hreflang*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hreflang(self, v) + +proc get_hreflang*( + self: ptr IHTMLAnchorElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hreflang(self, p) + +proc put_shape*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shape(self, v) + +proc get_shape*( + self: ptr IHTMLAnchorElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shape(self, p) + +proc put_type*(self: ptr IHTMLAnchorElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLAnchorElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_shape*(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shape(self, v) + +proc get_shape*( + self: ptr IHTMLAnchorElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shape(self, p) + +proc put_coords*(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_coords(self, v) + +proc get_coords*( + self: ptr IHTMLAnchorElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_coords(self, p) + +proc put_href*(self: ptr IHTMLAnchorElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLAnchorElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_htmlFor*(self: ptr IHTMLLabelElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_htmlFor(self, v) + +proc get_htmlFor*( + self: ptr IHTMLLabelElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_htmlFor(self, p) + +proc put_accessKey*(self: ptr IHTMLLabelElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accessKey(self, v) + +proc get_accessKey*( + self: ptr IHTMLLabelElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accessKey(self, p) + +proc get_form*( + self: ptr IHTMLLabelElement2, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_compact*( + self: ptr IHTMLListElement2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_compact(self, v) + +proc get_compact*( + self: ptr IHTMLListElement2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_compact(self, p) + +proc put_compact*( + self: ptr IHTMLUListElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_compact(self, v) + +proc get_compact*( + self: ptr IHTMLUListElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_compact(self, p) + +proc put_type*(self: ptr IHTMLUListElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLUListElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_compact*( + self: ptr IHTMLOListElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_compact(self, v) + +proc get_compact*( + self: ptr IHTMLOListElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_compact(self, p) + +proc put_start*(self: ptr IHTMLOListElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_start(self, v) + +proc get_start*(self: ptr IHTMLOListElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_start(self, p) + +proc put_type*(self: ptr IHTMLOListElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLOListElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_type*(self: ptr IHTMLLIElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLLIElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLLIElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLLIElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_clear*(self: ptr IHTMLBlockElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clear(self, v) + +proc get_clear*(self: ptr IHTMLBlockElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clear(self, p) + +proc put_cite*(self: ptr IHTMLBlockElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cite(self, v) + +proc get_cite*(self: ptr IHTMLBlockElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cite(self, p) + +proc put_width*(self: ptr IHTMLBlockElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLBlockElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_cite*(self: ptr IHTMLBlockElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cite(self, v) + +proc get_cite*(self: ptr IHTMLBlockElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cite(self, p) + +proc put_align*(self: ptr IHTMLDivElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLDivElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_noWrap*( + self: ptr IHTMLDivElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noWrap(self, v) + +proc get_noWrap*( + self: ptr IHTMLDivElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noWrap(self, p) + +proc put_noWrap*( + self: ptr IHTMLDDElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noWrap(self, v) + +proc get_noWrap*( + self: ptr IHTMLDDElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noWrap(self, p) + +proc put_noWrap*( + self: ptr IHTMLDTElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noWrap(self, v) + +proc get_noWrap*( + self: ptr IHTMLDTElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noWrap(self, p) + +proc put_clear*(self: ptr IHTMLBRElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clear(self, v) + +proc get_clear*(self: ptr IHTMLBRElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clear(self, p) + +proc put_compact*( + self: ptr IHTMLDListElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_compact(self, v) + +proc get_compact*( + self: ptr IHTMLDListElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_compact(self, p) + +proc put_align*(self: ptr IHTMLHRElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLHRElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_color*(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_color(self, v) + +proc get_color*(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc put_noShade*( + self: ptr IHTMLHRElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noShade(self, v) + +proc get_noShade*( + self: ptr IHTMLHRElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noShade(self, p) + +proc put_width*(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_size*(self: ptr IHTMLHRElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*(self: ptr IHTMLHRElement, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc put_align*(self: ptr IHTMLParaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLParaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc toString*( + self: ptr IHTMLElementCollection, String: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc put_length*( + self: ptr IHTMLElementCollection, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_length(self, v) + +proc get_length*( + self: ptr IHTMLElementCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLElementCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLElementCollection, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, name, index, pdisp) + +proc tags*( + self: ptr IHTMLElementCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.tags(self, tagName, pdisp) + +proc urns*( + self: ptr IHTMLElementCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.urns(self, urn, pdisp) + +proc namedItem*( + self: ptr IHTMLElementCollection3, name: BSTR, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedItem(self, name, pdisp) + +proc get_length*( + self: ptr IHTMLElementCollection4, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLElementCollection4, index: LONG, pNode: ptr ptr IHTMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pNode) + +proc namedItem*( + self: ptr IHTMLElementCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedItem(self, name, pNode) + +proc put_align*(self: ptr IHTMLHeaderElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLHeaderElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc ShowDropdown*( + self: ptr IHTMLSelectElementEx, fShow: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowDropdown(self, fShow) + +proc SetSelectExFlags*( + self: ptr IHTMLSelectElementEx, lFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSelectExFlags(self, lFlags) + +proc GetSelectExFlags*( + self: ptr IHTMLSelectElementEx, pFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectExFlags(self, pFlags) + +proc GetDropdownOpen*( + self: ptr IHTMLSelectElementEx, pfOpen: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDropdownOpen(self, pfOpen) + +proc put_size*(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*(self: ptr IHTMLSelectElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc put_multiple*( + self: ptr IHTMLSelectElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_multiple(self, v) + +proc get_multiple*( + self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_multiple(self, p) + +proc put_name*(self: ptr IHTMLSelectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc get_options*( + self: ptr IHTMLSelectElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_options(self, p) + +proc put_onchange*( + self: ptr IHTMLSelectElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLSelectElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_selectedIndex*( + self: ptr IHTMLSelectElement, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectedIndex(self, v) + +proc get_selectedIndex*( + self: ptr IHTMLSelectElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectedIndex(self, p) + +proc get_type*(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLSelectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLSelectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_disabled*( + self: ptr IHTMLSelectElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLSelectElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLSelectElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc add*( + self: ptr IHTMLSelectElement, element: ptr IHTMLElement, before: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add(self, element, before) + +proc remove*(self: ptr IHTMLSelectElement, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove(self, index) + +proc put_length*(self: ptr IHTMLSelectElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_length(self, v) + +proc get_length*( + self: ptr IHTMLSelectElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLSelectElement, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLSelectElement, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, name, index, pdisp) + +proc tags*( + self: ptr IHTMLSelectElement, tagName: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.tags(self, tagName, pdisp) + +proc urns*( + self: ptr IHTMLSelectElement2, urn: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.urns(self, urn, pdisp) + +proc namedItem*( + self: ptr IHTMLSelectElement4, name: BSTR, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedItem(self, name, pdisp) + +proc add*( + self: ptr IHTMLSelectElement5, + pElem: ptr IHTMLOptionElement, + pvarBefore: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add(self, pElem, pvarBefore) + +proc add*( + self: ptr IHTMLSelectElement6, + pElem: ptr IHTMLOptionElement, + pvarBefore: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add(self, pElem, pvarBefore) + +proc put_value*(self: ptr IHTMLSelectElement6, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLSelectElement6, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc createRange*( + self: ptr IHTMLSelectionObject, range: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createRange(self, range) + +proc empty*(self: ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.empty(self) + +proc clear*(self: ptr IHTMLSelectionObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc get_type*( + self: ptr IHTMLSelectionObject, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc createRangeCollection*( + self: ptr IHTMLSelectionObject2, rangeCollection: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createRangeCollection(self, rangeCollection) + +proc get_typeDetail*( + self: ptr IHTMLSelectionObject2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_typeDetail(self, p) + +proc get_anchorNode*( + self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_anchorNode(self, p) + +proc get_anchorOffset*( + self: ptr IHTMLSelection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_anchorOffset(self, p) + +proc get_focusNode*( + self: ptr IHTMLSelection, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_focusNode(self, p) + +proc get_focusOffset*( + self: ptr IHTMLSelection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_focusOffset(self, p) + +proc get_isCollapsed*( + self: ptr IHTMLSelection, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isCollapsed(self, p) + +proc collapse*( + self: ptr IHTMLSelection, parentNode: ptr IDispatch, offfset: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.collapse(self, parentNode, offfset) + +proc collapseToStart*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.collapseToStart(self) + +proc collapseToEnd*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.collapseToEnd(self) + +proc selectAllChildren*( + self: ptr IHTMLSelection, parentNode: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.selectAllChildren(self, parentNode) + +proc deleteFromDocument*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteFromDocument(self) + +proc get_rangeCount*( + self: ptr IHTMLSelection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rangeCount(self, p) + +proc getRangeAt*( + self: ptr IHTMLSelection, index: LONG, ppRange: ptr ptr IHTMLDOMRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getRangeAt(self, index, ppRange) + +proc addRange*( + self: ptr IHTMLSelection, range: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addRange(self, range) + +proc removeRange*( + self: ptr IHTMLSelection, range: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeRange(self, range) + +proc removeAllRanges*(self: ptr IHTMLSelection): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAllRanges(self) + +proc toString*( + self: ptr IHTMLSelection, pSelectionString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, pSelectionString) + +proc put_selected*( + self: ptr IHTMLOptionElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selected(self, v) + +proc get_selected*( + self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selected(self, p) + +proc put_value*(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_defaultSelected*( + self: ptr IHTMLOptionElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultSelected(self, v) + +proc get_defaultSelected*( + self: ptr IHTMLOptionElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultSelected(self, p) + +proc put_index*(self: ptr IHTMLOptionElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_index(self, v) + +proc get_index*(self: ptr IHTMLOptionElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_index(self, p) + +proc put_text*(self: ptr IHTMLOptionElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, v) + +proc get_text*(self: ptr IHTMLOptionElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc get_form*( + self: ptr IHTMLOptionElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_label*(self: ptr IHTMLOptionElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_label(self, v) + +proc get_label*( + self: ptr IHTMLOptionElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_label(self, p) + +proc put_value*(self: ptr IHTMLOptionElement4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLOptionElement4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc create*( + self: ptr IHTMLOptionElementFactory, + text: VARIANT, + value: VARIANT, + defaultselected: VARIANT, + selected: VARIANT, + a: ptr ptr IHTMLOptionElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, text, value, defaultselected, selected, a) + +proc put_type*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_name*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*( + self: ptr IHTMLInputElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLInputElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLInputElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_size*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc put_maxLength*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxLength(self, v) + +proc get_maxLength*( + self: ptr IHTMLInputElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxLength(self, p) + +proc select*(self: ptr IHTMLInputElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.select(self) + +proc put_onchange*( + self: ptr IHTMLInputElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_onselect*( + self: ptr IHTMLInputElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_defaultValue*( + self: ptr IHTMLInputElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultValue(self, v) + +proc get_defaultValue*( + self: ptr IHTMLInputElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultValue(self, p) + +proc put_readOnly*( + self: ptr IHTMLInputElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_readOnly(self, v) + +proc get_readOnly*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readOnly(self, p) + +proc createTextRange*( + self: ptr IHTMLInputElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc put_indeterminate*( + self: ptr IHTMLInputElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_indeterminate(self, v) + +proc get_indeterminate*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_indeterminate(self, p) + +proc put_defaultChecked*( + self: ptr IHTMLInputElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultChecked(self, v) + +proc get_defaultChecked*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultChecked(self, p) + +proc put_checked*( + self: ptr IHTMLInputElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_checked(self, v) + +proc get_checked*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_checked(self, p) + +proc put_border*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_vspace*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vspace(self, v) + +proc get_vspace*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vspace(self, p) + +proc put_hspace*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hspace(self, v) + +proc get_hspace*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hspace(self, p) + +proc put_alt*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alt(self, v) + +proc get_alt*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alt(self, p) + +proc put_src*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_lowsrc*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lowsrc(self, v) + +proc get_lowsrc*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lowsrc(self, p) + +proc put_vrml*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vrml(self, v) + +proc get_vrml*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vrml(self, p) + +proc put_dynsrc*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dynsrc(self, v) + +proc get_dynsrc*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dynsrc(self, p) + +proc get_readyState*( + self: ptr IHTMLInputElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc get_complete*( + self: ptr IHTMLInputElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_complete(self, p) + +proc put_loop*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_loop(self, v) + +proc get_loop*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loop(self, p) + +proc put_align*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_onload*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onerror*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_onabort*(self: ptr IHTMLInputElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onabort(self, v) + +proc get_onabort*( + self: ptr IHTMLInputElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onabort(self, p) + +proc put_width*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLInputElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLInputElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_start*(self: ptr IHTMLInputElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_start(self, v) + +proc get_start*(self: ptr IHTMLInputElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_start(self, p) + +proc put_accept*(self: ptr IHTMLInputElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accept(self, v) + +proc get_accept*( + self: ptr IHTMLInputElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accept(self, p) + +proc put_useMap*(self: ptr IHTMLInputElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_useMap(self, v) + +proc get_useMap*( + self: ptr IHTMLInputElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_useMap(self, p) + +proc put_src*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_lowsrc*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lowsrc(self, v) + +proc get_lowsrc*( + self: ptr IHTMLInputElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lowsrc(self, p) + +proc put_vrml*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vrml(self, v) + +proc get_vrml*(self: ptr IHTMLInputElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vrml(self, p) + +proc put_dynsrc*(self: ptr IHTMLInputElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dynsrc(self, v) + +proc get_dynsrc*( + self: ptr IHTMLInputElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dynsrc(self, p) + +proc get_type*( + self: ptr IHTMLInputButtonElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*( + self: ptr IHTMLInputButtonElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLInputButtonElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_name*(self: ptr IHTMLInputButtonElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLInputButtonElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*( + self: ptr IHTMLInputButtonElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLInputButtonElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLInputButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLInputButtonElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc createTextRange*( + self: ptr IHTMLInputButtonElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc get_type*( + self: ptr IHTMLInputHiddenElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*( + self: ptr IHTMLInputHiddenElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLInputHiddenElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_name*(self: ptr IHTMLInputHiddenElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLInputHiddenElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*( + self: ptr IHTMLInputHiddenElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLInputHiddenElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLInputHiddenElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputHiddenElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLInputHiddenElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc createTextRange*( + self: ptr IHTMLInputHiddenElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc get_type*( + self: ptr IHTMLInputTextElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLInputTextElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_name*(self: ptr IHTMLInputTextElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLInputTextElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*( + self: ptr IHTMLInputTextElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLInputTextElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLInputTextElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLInputTextElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_defaultValue*( + self: ptr IHTMLInputTextElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultValue(self, v) + +proc get_defaultValue*( + self: ptr IHTMLInputTextElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultValue(self, p) + +proc put_size*(self: ptr IHTMLInputTextElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*( + self: ptr IHTMLInputTextElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc put_maxLength*( + self: ptr IHTMLInputTextElement, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxLength(self, v) + +proc get_maxLength*( + self: ptr IHTMLInputTextElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxLength(self, p) + +proc select*(self: ptr IHTMLInputTextElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.select(self) + +proc put_onchange*( + self: ptr IHTMLInputTextElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLInputTextElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_onselect*( + self: ptr IHTMLInputTextElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLInputTextElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_readOnly*( + self: ptr IHTMLInputTextElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_readOnly(self, v) + +proc get_readOnly*( + self: ptr IHTMLInputTextElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readOnly(self, p) + +proc createTextRange*( + self: ptr IHTMLInputTextElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc put_selectionStart*( + self: ptr IHTMLInputTextElement2, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectionStart(self, v) + +proc get_selectionStart*( + self: ptr IHTMLInputTextElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectionStart(self, p) + +proc put_selectionEnd*( + self: ptr IHTMLInputTextElement2, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectionEnd(self, v) + +proc get_selectionEnd*( + self: ptr IHTMLInputTextElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectionEnd(self, p) + +proc setSelectionRange*( + self: ptr IHTMLInputTextElement2, start: LONG, `end`: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setSelectionRange(self, start, `end`) + +proc get_type*( + self: ptr IHTMLInputFileElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_name*(self: ptr IHTMLInputFileElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLInputFileElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*( + self: ptr IHTMLInputFileElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLInputFileElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLInputFileElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputFileElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLInputFileElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_size*(self: ptr IHTMLInputFileElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*( + self: ptr IHTMLInputFileElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc put_maxLength*( + self: ptr IHTMLInputFileElement, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maxLength(self, v) + +proc get_maxLength*( + self: ptr IHTMLInputFileElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxLength(self, p) + +proc select*(self: ptr IHTMLInputFileElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.select(self) + +proc put_onchange*( + self: ptr IHTMLInputFileElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLInputFileElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_onselect*( + self: ptr IHTMLInputFileElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLInputFileElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_value*(self: ptr IHTMLInputFileElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLInputFileElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_value*( + self: ptr IHTMLOptionButtonElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLOptionButtonElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc get_type*( + self: ptr IHTMLOptionButtonElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_name*( + self: ptr IHTMLOptionButtonElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLOptionButtonElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_checked*( + self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_checked(self, v) + +proc get_checked*( + self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_checked(self, p) + +proc put_defaultChecked*( + self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultChecked(self, v) + +proc get_defaultChecked*( + self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultChecked(self, p) + +proc put_onchange*( + self: ptr IHTMLOptionButtonElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLOptionButtonElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_disabled*( + self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc put_status*( + self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_indeterminate*( + self: ptr IHTMLOptionButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_indeterminate(self, v) + +proc get_indeterminate*( + self: ptr IHTMLOptionButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_indeterminate(self, p) + +proc get_form*( + self: ptr IHTMLOptionButtonElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc get_type*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_disabled*( + self: ptr IHTMLInputImage, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc put_border*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*( + self: ptr IHTMLInputImage, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_vspace*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vspace(self, v) + +proc get_vspace*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vspace(self, p) + +proc put_hspace*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hspace(self, v) + +proc get_hspace*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hspace(self, p) + +proc put_alt*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alt(self, v) + +proc get_alt*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alt(self, p) + +proc put_src*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_lowsrc*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lowsrc(self, v) + +proc get_lowsrc*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lowsrc(self, p) + +proc put_vrml*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vrml(self, v) + +proc get_vrml*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vrml(self, p) + +proc put_dynsrc*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dynsrc(self, v) + +proc get_dynsrc*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dynsrc(self, p) + +proc get_readyState*( + self: ptr IHTMLInputImage, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc get_complete*( + self: ptr IHTMLInputImage, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_complete(self, p) + +proc put_loop*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_loop(self, v) + +proc get_loop*(self: ptr IHTMLInputImage, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loop(self, p) + +proc put_align*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_onload*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLInputImage, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onerror*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLInputImage, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_onabort*(self: ptr IHTMLInputImage, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onabort(self, v) + +proc get_onabort*( + self: ptr IHTMLInputImage, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onabort(self, p) + +proc put_name*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_width*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLInputImage, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLInputImage, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_start*(self: ptr IHTMLInputImage, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_start(self, v) + +proc get_start*(self: ptr IHTMLInputImage, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_start(self, p) + +proc put_disabled*( + self: ptr IHTMLInputRangeElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLInputRangeElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_type*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_alt*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alt(self, v) + +proc get_alt*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alt(self, p) + +proc put_name*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_value*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_min*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_min(self, v) + +proc get_min*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_min(self, p) + +proc put_max*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_max(self, v) + +proc get_max*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_max(self, p) + +proc put_step*(self: ptr IHTMLInputRangeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_step(self, v) + +proc get_step*( + self: ptr IHTMLInputRangeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_step(self, p) + +proc put_valueAsNumber*( + self: ptr IHTMLInputRangeElement, v: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueAsNumber(self, v) + +proc get_valueAsNumber*( + self: ptr IHTMLInputRangeElement, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueAsNumber(self, p) + +proc stepUp*(self: ptr IHTMLInputRangeElement, n: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stepUp(self, n) + +proc stepDown*(self: ptr IHTMLInputRangeElement, n: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stepDown(self, n) + +proc get_type*( + self: ptr IHTMLTextAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLTextAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_name*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLTextAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*( + self: ptr IHTMLTextAreaElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLTextAreaElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLTextAreaElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_defaultValue*( + self: ptr IHTMLTextAreaElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultValue(self, v) + +proc get_defaultValue*( + self: ptr IHTMLTextAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultValue(self, p) + +proc select*(self: ptr IHTMLTextAreaElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.select(self) + +proc put_onchange*( + self: ptr IHTMLTextAreaElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLTextAreaElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_onselect*( + self: ptr IHTMLTextAreaElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLTextAreaElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_readOnly*( + self: ptr IHTMLTextAreaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_readOnly(self, v) + +proc get_readOnly*( + self: ptr IHTMLTextAreaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readOnly(self, p) + +proc put_rows*(self: ptr IHTMLTextAreaElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rows(self, v) + +proc get_rows*( + self: ptr IHTMLTextAreaElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rows(self, p) + +proc put_cols*(self: ptr IHTMLTextAreaElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cols(self, v) + +proc get_cols*( + self: ptr IHTMLTextAreaElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cols(self, p) + +proc put_wrap*(self: ptr IHTMLTextAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_wrap(self, v) + +proc get_wrap*( + self: ptr IHTMLTextAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wrap(self, p) + +proc createTextRange*( + self: ptr IHTMLTextAreaElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc put_selectionStart*( + self: ptr IHTMLTextAreaElement2, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectionStart(self, v) + +proc get_selectionStart*( + self: ptr IHTMLTextAreaElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectionStart(self, p) + +proc put_selectionEnd*( + self: ptr IHTMLTextAreaElement2, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectionEnd(self, v) + +proc get_selectionEnd*( + self: ptr IHTMLTextAreaElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectionEnd(self, p) + +proc setSelectionRange*( + self: ptr IHTMLTextAreaElement2, start: LONG, `end`: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setSelectionRange(self, start, `end`) + +proc get_type*(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLButtonElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_name*(self: ptr IHTMLButtonElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLButtonElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_status*(self: ptr IHTMLButtonElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*( + self: ptr IHTMLButtonElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_disabled*( + self: ptr IHTMLButtonElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLButtonElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc get_form*( + self: ptr IHTMLButtonElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc createTextRange*( + self: ptr IHTMLButtonElement, range: ptr ptr IHTMLTxtRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextRange(self, range) + +proc put_type*(self: ptr IHTMLButtonElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLButtonElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_bgColor*( + self: ptr IHTMLMarqueeElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc put_scrollDelay*( + self: ptr IHTMLMarqueeElement, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollDelay(self, v) + +proc get_scrollDelay*( + self: ptr IHTMLMarqueeElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollDelay(self, p) + +proc put_direction*( + self: ptr IHTMLMarqueeElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_direction(self, v) + +proc get_direction*( + self: ptr IHTMLMarqueeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_direction(self, p) + +proc put_behavior*(self: ptr IHTMLMarqueeElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_behavior(self, v) + +proc get_behavior*( + self: ptr IHTMLMarqueeElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behavior(self, p) + +proc put_scrollAmount*( + self: ptr IHTMLMarqueeElement, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollAmount(self, v) + +proc get_scrollAmount*( + self: ptr IHTMLMarqueeElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollAmount(self, p) + +proc put_loop*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_loop(self, v) + +proc get_loop*(self: ptr IHTMLMarqueeElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loop(self, p) + +proc put_vspace*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vspace(self, v) + +proc get_vspace*( + self: ptr IHTMLMarqueeElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vspace(self, p) + +proc put_hspace*(self: ptr IHTMLMarqueeElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hspace(self, v) + +proc get_hspace*( + self: ptr IHTMLMarqueeElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hspace(self, p) + +proc put_onfinish*( + self: ptr IHTMLMarqueeElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfinish(self, v) + +proc get_onfinish*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfinish(self, p) + +proc put_onstart*( + self: ptr IHTMLMarqueeElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstart(self, v) + +proc get_onstart*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstart(self, p) + +proc put_onbounce*( + self: ptr IHTMLMarqueeElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbounce(self, v) + +proc get_onbounce*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbounce(self, p) + +proc put_width*(self: ptr IHTMLMarqueeElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*( + self: ptr IHTMLMarqueeElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_trueSpeed*( + self: ptr IHTMLMarqueeElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_trueSpeed(self, v) + +proc get_trueSpeed*( + self: ptr IHTMLMarqueeElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_trueSpeed(self, p) + +proc start*(self: ptr IHTMLMarqueeElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.start(self) + +proc stop*(self: ptr IHTMLMarqueeElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stop(self) + +proc put_version*(self: ptr IHTMLHtmlElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_version(self, v) + +proc get_version*(self: ptr IHTMLHtmlElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_version(self, p) + +proc put_profile*(self: ptr IHTMLHeadElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_profile(self, v) + +proc get_profile*(self: ptr IHTMLHeadElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_profile(self, p) + +proc put_profile*(self: ptr IHTMLHeadElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_profile(self, v) + +proc get_profile*( + self: ptr IHTMLHeadElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_profile(self, p) + +proc put_text*(self: ptr IHTMLTitleElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, v) + +proc get_text*(self: ptr IHTMLTitleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc put_httpEquiv*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_httpEquiv(self, v) + +proc get_httpEquiv*( + self: ptr IHTMLMetaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_httpEquiv(self, p) + +proc put_content*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_content(self, v) + +proc get_content*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_content(self, p) + +proc put_name*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_url*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_url(self, v) + +proc get_url*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_url(self, p) + +proc put_charset*(self: ptr IHTMLMetaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, v) + +proc get_charset*(self: ptr IHTMLMetaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_scheme*(self: ptr IHTMLMetaElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scheme(self, v) + +proc get_scheme*(self: ptr IHTMLMetaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scheme(self, p) + +proc put_url*(self: ptr IHTMLMetaElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_url(self, v) + +proc get_url*(self: ptr IHTMLMetaElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_url(self, p) + +proc put_href*(self: ptr IHTMLBaseElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLBaseElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_target*(self: ptr IHTMLBaseElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_target(self, v) + +proc get_target*(self: ptr IHTMLBaseElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc put_href*(self: ptr IHTMLBaseElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLBaseElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_prompt*(self: ptr IHTMLIsIndexElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_prompt(self, v) + +proc get_prompt*( + self: ptr IHTMLIsIndexElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_prompt(self, p) + +proc put_action*(self: ptr IHTMLIsIndexElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_action(self, v) + +proc get_action*( + self: ptr IHTMLIsIndexElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_action(self, p) + +proc get_form*( + self: ptr IHTMLIsIndexElement2, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_n*(self: ptr IHTMLNextIdElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_n(self, v) + +proc get_n*(self: ptr IHTMLNextIdElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_n(self, p) + +proc put_color*( + self: ptr IHTMLBaseFontElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_color(self, v) + +proc get_color*( + self: ptr IHTMLBaseFontElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_color(self, p) + +proc put_face*(self: ptr IHTMLBaseFontElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_face(self, v) + +proc get_face*( + self: ptr IHTMLBaseFontElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_face(self, p) + +proc put_size*(self: ptr IHTMLBaseFontElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_size(self, v) + +proc get_size*( + self: ptr IHTMLBaseFontElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_size(self, p) + +proc get_length*(self: ptr IOmHistory, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc back*( + self: ptr IOmHistory, pvargdistance: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.back(self, pvargdistance) + +proc forward*( + self: ptr IOmHistory, pvargdistance: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.forward(self, pvargdistance) + +proc go*(self: ptr IOmHistory, pvargdistance: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.go(self, pvargdistance) + +proc get_length*( + self: ptr IHTMLMimeTypesCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_length*( + self: ptr IHTMLPluginsCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc refresh*( + self: ptr IHTMLPluginsCollection, reload: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.refresh(self, reload) + +proc addRequest*( + self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addRequest(self, name, reserved, success) + +proc clearRequest*(self: ptr IHTMLOpsProfile): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearRequest(self) + +proc doRequest*( + self: ptr IHTMLOpsProfile, + usage: VARIANT, + fname: VARIANT, + domain: VARIANT, + path: VARIANT, + expire: VARIANT, + reserved: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.doRequest(self, usage, fname, domain, path, expire, reserved) + +proc getAttribute*( + self: ptr IHTMLOpsProfile, name: BSTR, value: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, name, value) + +proc setAttribute*( + self: ptr IHTMLOpsProfile, + name: BSTR, + value: BSTR, + prefs: VARIANT, + success: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, name, value, prefs, success) + +proc commitChanges*( + self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.commitChanges(self, success) + +proc addReadRequest*( + self: ptr IHTMLOpsProfile, name: BSTR, reserved: VARIANT, success: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addReadRequest(self, name, reserved, success) + +proc doReadRequest*( + self: ptr IHTMLOpsProfile, + usage: VARIANT, + fname: VARIANT, + domain: VARIANT, + path: VARIANT, + expire: VARIANT, + reserved: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.doReadRequest(self, usage, fname, domain, path, expire, reserved) + +proc doWriteRequest*( + self: ptr IHTMLOpsProfile, success: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.doWriteRequest(self, success) + +proc get_appCodeName*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_appCodeName(self, p) + +proc get_appName*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_appName(self, p) + +proc get_appVersion*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_appVersion(self, p) + +proc get_userAgent*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_userAgent(self, p) + +proc javaEnabled*( + self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.javaEnabled(self, enabled) + +proc taintEnabled*( + self: ptr IOmNavigator, enabled: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.taintEnabled(self, enabled) + +proc get_mimeTypes*( + self: ptr IOmNavigator, p: ptr ptr IHTMLMimeTypesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mimeTypes(self, p) + +proc get_plugins*( + self: ptr IOmNavigator, p: ptr ptr IHTMLPluginsCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_plugins(self, p) + +proc get_cookieEnabled*( + self: ptr IOmNavigator, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cookieEnabled(self, p) + +proc get_opsProfile*( + self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_opsProfile(self, p) + +proc toString*(self: ptr IOmNavigator, string: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, string) + +proc get_cpuClass*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cpuClass(self, p) + +proc get_systemLanguage*( + self: ptr IOmNavigator, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemLanguage(self, p) + +proc get_browserLanguage*( + self: ptr IOmNavigator, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_browserLanguage(self, p) + +proc get_userLanguage*( + self: ptr IOmNavigator, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_userLanguage(self, p) + +proc get_platform*(self: ptr IOmNavigator, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_platform(self, p) + +proc get_appMinorVersion*( + self: ptr IOmNavigator, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_appMinorVersion(self, p) + +proc get_connectionSpeed*( + self: ptr IOmNavigator, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_connectionSpeed(self, p) + +proc get_onLine*( + self: ptr IOmNavigator, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onLine(self, p) + +proc get_userProfile*( + self: ptr IOmNavigator, p: ptr ptr IHTMLOpsProfile +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_userProfile(self, p) + +proc get_geolocation*( + self: ptr INavigatorGeolocation, p: ptr ptr IWebGeolocation +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_geolocation(self, p) + +proc get_msDoNotTrack*( + self: ptr INavigatorDoNotTrack, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msDoNotTrack(self, p) + +proc put_href*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_protocol*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_protocol(self, v) + +proc get_protocol*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_protocol(self, p) + +proc put_host*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_host(self, v) + +proc get_host*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_host(self, p) + +proc put_hostname*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hostname(self, v) + +proc get_hostname*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hostname(self, p) + +proc put_port*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_port(self, v) + +proc get_port*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_port(self, p) + +proc put_pathname*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pathname(self, v) + +proc get_pathname*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathname(self, p) + +proc put_search*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_search(self, v) + +proc get_search*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_search(self, p) + +proc put_hash*(self: ptr IHTMLLocation, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hash(self, v) + +proc get_hash*(self: ptr IHTMLLocation, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hash(self, p) + +proc reload*(self: ptr IHTMLLocation, flag: VARIANT_BOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.reload(self, flag) + +proc replace*(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replace(self, bstr) + +proc assign*(self: ptr IHTMLLocation, bstr: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.assign(self, bstr) + +proc toString*(self: ptr IHTMLLocation, string: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, string) + +proc get_length*( + self: ptr IHTMLBookmarkCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLBookmarkCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLBookmarkCollection, index: LONG, pVarBookmark: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pVarBookmark) + +proc setData*( + self: ptr IHTMLDataTransfer, format: BSTR, data: ptr VARIANT, pret: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setData(self, format, data, pret) + +proc getData*( + self: ptr IHTMLDataTransfer, format: BSTR, pvarRet: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getData(self, format, pvarRet) + +proc clearData*( + self: ptr IHTMLDataTransfer, format: BSTR, pret: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearData(self, format, pret) + +proc put_dropEffect*(self: ptr IHTMLDataTransfer, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dropEffect(self, v) + +proc get_dropEffect*( + self: ptr IHTMLDataTransfer, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dropEffect(self, p) + +proc put_effectAllowed*( + self: ptr IHTMLDataTransfer, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_effectAllowed(self, v) + +proc get_effectAllowed*( + self: ptr IHTMLDataTransfer, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_effectAllowed(self, p) + +proc get_srcElement*( + self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcElement(self, p) + +proc get_altKey*( + self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altKey(self, p) + +proc get_ctrlKey*( + self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ctrlKey(self, p) + +proc get_shiftKey*( + self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shiftKey(self, p) + +proc put_returnValue*(self: ptr IHTMLEventObj, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_returnValue(self, v) + +proc get_returnValue*( + self: ptr IHTMLEventObj, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_returnValue(self, p) + +proc put_cancelBubble*( + self: ptr IHTMLEventObj, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cancelBubble(self, v) + +proc get_cancelBubble*( + self: ptr IHTMLEventObj, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cancelBubble(self, p) + +proc get_fromElement*( + self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fromElement(self, p) + +proc get_toElement*( + self: ptr IHTMLEventObj, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_toElement(self, p) + +proc put_keyCode*(self: ptr IHTMLEventObj, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_keyCode(self, v) + +proc get_keyCode*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_keyCode(self, p) + +proc get_button*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_button(self, p) + +proc get_type*(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_qualifier*(self: ptr IHTMLEventObj, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_qualifier(self, p) + +proc get_reason*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_reason(self, p) + +proc get_x*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc get_y*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc get_clientX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientX(self, p) + +proc get_clientY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientY(self, p) + +proc get_offsetX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetX(self, p) + +proc get_offsetY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetY(self, p) + +proc get_screenX*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenX(self, p) + +proc get_screenY*(self: ptr IHTMLEventObj, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenY(self, p) + +proc get_srcFilter*( + self: ptr IHTMLEventObj, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcFilter(self, p) + +proc setAttribute*( + self: ptr IHTMLEventObj2, + strAttributeName: BSTR, + AttributeValue: VARIANT, + lFlags: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strAttributeName, AttributeValue, lFlags) + +proc getAttribute*( + self: ptr IHTMLEventObj2, + strAttributeName: BSTR, + lFlags: LONG, + AttributeValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strAttributeName, lFlags, AttributeValue) + +proc removeAttribute*( + self: ptr IHTMLEventObj2, + strAttributeName: BSTR, + lFlags: LONG, + pfSuccess: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strAttributeName, lFlags, pfSuccess) + +proc put_propertyName*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_propertyName(self, v) + +proc get_propertyName*( + self: ptr IHTMLEventObj2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_propertyName(self, p) + +proc putref_bookmarks*( + self: ptr IHTMLEventObj2, v: ptr IHTMLBookmarkCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_bookmarks(self, v) + +proc get_bookmarks*( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLBookmarkCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bookmarks(self, p) + +proc putref_recordset*( + self: ptr IHTMLEventObj2, v: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_recordset(self, v) + +proc get_recordset*( + self: ptr IHTMLEventObj2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_recordset(self, p) + +proc put_dataFld*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dataFld(self, v) + +proc get_dataFld*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataFld(self, p) + +proc putref_boundElements*( + self: ptr IHTMLEventObj2, v: ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_boundElements(self, v) + +proc get_boundElements*( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_boundElements(self, p) + +proc put_repeat*( + self: ptr IHTMLEventObj2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_repeat(self, v) + +proc get_repeat*( + self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_repeat(self, p) + +proc put_srcUrn*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_srcUrn(self, v) + +proc get_srcUrn*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcUrn(self, p) + +proc putref_srcElement*( + self: ptr IHTMLEventObj2, v: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_srcElement(self, v) + +proc get_srcElement*( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcElement(self, p) + +proc put_altKey*( + self: ptr IHTMLEventObj2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_altKey(self, v) + +proc get_altKey*( + self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altKey(self, p) + +proc put_ctrlKey*( + self: ptr IHTMLEventObj2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ctrlKey(self, v) + +proc get_ctrlKey*( + self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ctrlKey(self, p) + +proc put_shiftKey*( + self: ptr IHTMLEventObj2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shiftKey(self, v) + +proc get_shiftKey*( + self: ptr IHTMLEventObj2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shiftKey(self, p) + +proc putref_fromElement*( + self: ptr IHTMLEventObj2, v: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_fromElement(self, v) + +proc get_fromElement*( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fromElement(self, p) + +proc putref_toElement*( + self: ptr IHTMLEventObj2, v: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_toElement(self, v) + +proc get_toElement*( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_toElement(self, p) + +proc put_button*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_button(self, v) + +proc get_button*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_button(self, p) + +proc put_type*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_qualifier*(self: ptr IHTMLEventObj2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_qualifier(self, v) + +proc get_qualifier*(self: ptr IHTMLEventObj2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_qualifier(self, p) + +proc put_reason*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_reason(self, v) + +proc get_reason*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_reason(self, p) + +proc put_x*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_clientX*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clientX(self, v) + +proc get_clientX*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientX(self, p) + +proc put_clientY*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_clientY(self, v) + +proc get_clientY*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientY(self, p) + +proc put_offsetX*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_offsetX(self, v) + +proc get_offsetX*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetX(self, p) + +proc put_offsetY*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_offsetY(self, v) + +proc get_offsetY*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetY(self, p) + +proc put_screenX*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_screenX(self, v) + +proc get_screenX*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenX(self, p) + +proc put_screenY*(self: ptr IHTMLEventObj2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_screenY(self, v) + +proc get_screenY*(self: ptr IHTMLEventObj2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenY(self, p) + +proc putref_srcFilter*( + self: ptr IHTMLEventObj2, v: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_srcFilter(self, v) + +proc get_srcFilter*( + self: ptr IHTMLEventObj2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcFilter(self, p) + +proc get_dataTransfer*( + self: ptr IHTMLEventObj2, p: ptr ptr IHTMLDataTransfer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataTransfer(self, p) + +proc get_contentOverflow*( + self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentOverflow(self, p) + +proc put_shiftLeft*( + self: ptr IHTMLEventObj3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shiftLeft(self, v) + +proc get_shiftLeft*( + self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shiftLeft(self, p) + +proc put_altLeft*( + self: ptr IHTMLEventObj3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_altLeft(self, v) + +proc get_altLeft*( + self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altLeft(self, p) + +proc put_ctrlLeft*( + self: ptr IHTMLEventObj3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ctrlLeft(self, v) + +proc get_ctrlLeft*( + self: ptr IHTMLEventObj3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ctrlLeft(self, p) + +proc get_imeCompositionChange*( + self: ptr IHTMLEventObj3, p: ptr LONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeCompositionChange(self, p) + +proc get_imeNotifyCommand*( + self: ptr IHTMLEventObj3, p: ptr LONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeNotifyCommand(self, p) + +proc get_imeNotifyData*( + self: ptr IHTMLEventObj3, p: ptr LONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeNotifyData(self, p) + +proc get_imeRequest*( + self: ptr IHTMLEventObj3, p: ptr LONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeRequest(self, p) + +proc get_imeRequestData*( + self: ptr IHTMLEventObj3, p: ptr LONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_imeRequestData(self, p) + +proc get_keyboardLayout*( + self: ptr IHTMLEventObj3, p: ptr LONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_keyboardLayout(self, p) + +proc get_behaviorCookie*( + self: ptr IHTMLEventObj3, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behaviorCookie(self, p) + +proc get_behaviorPart*( + self: ptr IHTMLEventObj3, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_behaviorPart(self, p) + +proc get_nextPage*(self: ptr IHTMLEventObj3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nextPage(self, p) + +proc get_wheelDelta*( + self: ptr IHTMLEventObj4, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wheelDelta(self, p) + +proc put_url*(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_url(self, v) + +proc get_url*(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_url(self, p) + +proc put_data*(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, v) + +proc get_data*(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc get_source*( + self: ptr IHTMLEventObj5, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_source(self, p) + +proc put_origin*(self: ptr IHTMLEventObj5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_origin(self, v) + +proc get_origin*(self: ptr IHTMLEventObj5, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_origin(self, p) + +proc put_issession*( + self: ptr IHTMLEventObj5, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_issession(self, v) + +proc get_issession*( + self: ptr IHTMLEventObj5, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_issession(self, p) + +proc get_actionURL*(self: ptr IHTMLEventObj6, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_actionURL(self, p) + +proc get_buttonID*(self: ptr IHTMLEventObj6, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_buttonID(self, p) + +proc get_type*(self: ptr IHTMLStyleMedia, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc matchMedium*( + self: ptr IHTMLStyleMedia, mediaQuery: BSTR, matches: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.matchMedium(self, mediaQuery, matches) + +proc item*( + self: ptr IHTMLFramesCollection2, pvarIndex: ptr VARIANT, pvarResult: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, pvarIndex, pvarResult) + +proc get_length*( + self: ptr IHTMLFramesCollection2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_colorDepth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_colorDepth(self, p) + +proc put_bufferDepth*(self: ptr IHTMLScreen, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bufferDepth(self, v) + +proc get_bufferDepth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bufferDepth(self, p) + +proc get_width*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_height*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_updateInterval*(self: ptr IHTMLScreen, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_updateInterval(self, v) + +proc get_updateInterval*( + self: ptr IHTMLScreen, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_updateInterval(self, p) + +proc get_availHeight*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_availHeight(self, p) + +proc get_availWidth*(self: ptr IHTMLScreen, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_availWidth(self, p) + +proc get_fontSmoothingEnabled*( + self: ptr IHTMLScreen, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSmoothingEnabled(self, p) + +proc get_logicalXDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_logicalXDPI(self, p) + +proc get_logicalYDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_logicalYDPI(self, p) + +proc get_deviceXDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_deviceXDPI(self, p) + +proc get_deviceYDPI*(self: ptr IHTMLScreen2, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_deviceYDPI(self, p) + +proc get_systemXDPI*(self: ptr IHTMLScreen3, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemXDPI(self, p) + +proc get_systemYDPI*(self: ptr IHTMLScreen3, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemYDPI(self, p) + +proc get_pixelDepth*(self: ptr IHTMLScreen4, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelDepth(self, p) + +proc get_frames*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLFramesCollection2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frames(self, p) + +proc put_defaultStatus*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultStatus(self, v) + +proc get_defaultStatus*( + self: ptr IHTMLWindow2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultStatus(self, p) + +proc put_status*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc setTimeout*( + self: ptr IHTMLWindow2, + expression: BSTR, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setTimeout(self, expression, msec, language, timerID) + +proc clearTimeout*(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearTimeout(self, timerID) + +proc alert*(self: ptr IHTMLWindow2, message: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.alert(self, message) + +proc confirm*( + self: ptr IHTMLWindow2, message: BSTR, confirmed: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.confirm(self, message, confirmed) + +proc prompt*( + self: ptr IHTMLWindow2, message: BSTR, defstr: BSTR, textdata: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.prompt(self, message, defstr, textdata) + +proc get_Image*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLImageElementFactory +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Image(self, p) + +proc get_location*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLLocation +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_location(self, p) + +proc get_history*( + self: ptr IHTMLWindow2, p: ptr ptr IOmHistory +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_history(self, p) + +proc close*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.close(self) + +proc put_opener*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_opener(self, v) + +proc get_opener*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_opener(self, p) + +proc get_navigator*( + self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_navigator(self, p) + +proc put_name*(self: ptr IHTMLWindow2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLWindow2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc get_parent*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parent(self, p) + +proc open*( + self: ptr IHTMLWindow2, + url: BSTR, + name: BSTR, + features: BSTR, + replace: VARIANT_BOOL, + pomWindowResult: ptr ptr IHTMLWindow2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.open(self, url, name, features, replace, pomWindowResult) + +proc get_self*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_self(self, p) + +proc get_top*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_top(self, p) + +proc get_window*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_window(self, p) + +proc navigate*(self: ptr IHTMLWindow2, url: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.navigate(self, url) + +proc put_onfocus*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocus(self, v) + +proc get_onfocus*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocus(self, p) + +proc put_onblur*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onblur(self, v) + +proc get_onblur*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onblur(self, p) + +proc put_onload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onbeforeunload*( + self: ptr IHTMLWindow2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeunload(self, v) + +proc get_onbeforeunload*( + self: ptr IHTMLWindow2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeunload(self, p) + +proc put_onunload*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onunload(self, v) + +proc get_onunload*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onunload(self, p) + +proc put_onhelp*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onhelp(self, v) + +proc get_onhelp*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onhelp(self, p) + +proc put_onerror*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_onresize*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onresize(self, v) + +proc get_onresize*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onresize(self, p) + +proc put_onscroll*(self: ptr IHTMLWindow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onscroll(self, v) + +proc get_onscroll*(self: ptr IHTMLWindow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onscroll(self, p) + +proc get_document*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLDocument2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_document(self, p) + +proc get_event*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_event(self, p) + +proc get_newEnum*( + self: ptr IHTMLWindow2, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc showModalDialog*( + self: ptr IHTMLWindow2, + dialog: BSTR, + varArgIn: ptr VARIANT, + varOptions: ptr VARIANT, + varArgOut: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.showModalDialog(self, dialog, varArgIn, varOptions, varArgOut) + +proc showHelp*( + self: ptr IHTMLWindow2, helpURL: BSTR, helpArg: VARIANT, features: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.showHelp(self, helpURL, helpArg, features) + +proc get_screen*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLScreen +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screen(self, p) + +proc get_Option*( + self: ptr IHTMLWindow2, p: ptr ptr IHTMLOptionElementFactory +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Option(self, p) + +proc focus*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.focus(self) + +proc get_closed*( + self: ptr IHTMLWindow2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_closed(self, p) + +proc blur*(self: ptr IHTMLWindow2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.blur(self) + +proc scroll*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scroll(self, x, y) + +proc get_clientInformation*( + self: ptr IHTMLWindow2, p: ptr ptr IOmNavigator +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientInformation(self, p) + +proc setInterval*( + self: ptr IHTMLWindow2, + expression: BSTR, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setInterval(self, expression, msec, language, timerID) + +proc clearInterval*(self: ptr IHTMLWindow2, timerID: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearInterval(self, timerID) + +proc put_offscreenBuffering*( + self: ptr IHTMLWindow2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_offscreenBuffering(self, v) + +proc get_offscreenBuffering*( + self: ptr IHTMLWindow2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offscreenBuffering(self, p) + +proc execScript*( + self: ptr IHTMLWindow2, code: BSTR, language: BSTR, pvarRet: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execScript(self, code, language, pvarRet) + +proc toString*(self: ptr IHTMLWindow2, String: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc scrollBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scrollBy(self, x, y) + +proc scrollTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scrollTo(self, x, y) + +proc moveTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveTo(self, x, y) + +proc moveBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveBy(self, x, y) + +proc resizeTo*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.resizeTo(self, x, y) + +proc resizeBy*(self: ptr IHTMLWindow2, x: LONG, y: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.resizeBy(self, x, y) + +proc get_external*( + self: ptr IHTMLWindow2, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_external(self, p) + +proc get_screenLeft*(self: ptr IHTMLWindow3, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenLeft(self, p) + +proc get_screenTop*(self: ptr IHTMLWindow3, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenTop(self, p) + +proc attachEvent*( + self: ptr IHTMLWindow3, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.attachEvent(self, event, pDisp, pfResult) + +proc detachEvent*( + self: ptr IHTMLWindow3, event: BSTR, pDisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detachEvent(self, event, pDisp) + +proc setTimeout*( + self: ptr IHTMLWindow3, + expression: ptr VARIANT, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setTimeout(self, expression, msec, language, timerID) + +proc setInterval*( + self: ptr IHTMLWindow3, + expression: ptr VARIANT, + msec: LONG, + language: ptr VARIANT, + timerID: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setInterval(self, expression, msec, language, timerID) + +proc print*(self: ptr IHTMLWindow3): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.print(self) + +proc put_onbeforeprint*( + self: ptr IHTMLWindow3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeprint(self, v) + +proc get_onbeforeprint*( + self: ptr IHTMLWindow3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeprint(self, p) + +proc put_onafterprint*(self: ptr IHTMLWindow3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onafterprint(self, v) + +proc get_onafterprint*( + self: ptr IHTMLWindow3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onafterprint(self, p) + +proc get_clipboardData*( + self: ptr IHTMLWindow3, p: ptr ptr IHTMLDataTransfer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipboardData(self, p) + +proc showModelessDialog*( + self: ptr IHTMLWindow3, + url: BSTR, + varArgIn: ptr VARIANT, + options: ptr VARIANT, + pDialog: ptr ptr IHTMLWindow2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.showModelessDialog(self, url, varArgIn, options, pDialog) + +proc createPopup*( + self: ptr IHTMLWindow4, varArgIn: ptr VARIANT, ppPopup: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createPopup(self, varArgIn, ppPopup) + +proc get_frameElement*( + self: ptr IHTMLWindow4, p: ptr ptr IHTMLFrameBase +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameElement(self, p) + +proc put_XMLHttpRequest*( + self: ptr IHTMLWindow5, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_XMLHttpRequest(self, v) + +proc get_XMLHttpRequest*( + self: ptr IHTMLWindow5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_XMLHttpRequest(self, p) + +proc put_XDomainRequest*( + self: ptr IHTMLWindow6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_XDomainRequest(self, v) + +proc get_XDomainRequest*( + self: ptr IHTMLWindow6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_XDomainRequest(self, p) + +proc get_sessionStorage*( + self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sessionStorage(self, p) + +proc get_localStorage*( + self: ptr IHTMLWindow6, p: ptr ptr IHTMLStorage +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_localStorage(self, p) + +proc put_onhashchange*(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onhashchange(self, v) + +proc get_onhashchange*( + self: ptr IHTMLWindow6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onhashchange(self, p) + +proc get_maxConnectionsPerServer*( + self: ptr IHTMLWindow6, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maxConnectionsPerServer(self, p) + +proc postMessage*( + self: ptr IHTMLWindow6, msg: BSTR, targetOrigin: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.postMessage(self, msg, targetOrigin) + +proc toStaticHTML*( + self: ptr IHTMLWindow6, bstrHTML: BSTR, pbstrStaticHTML: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toStaticHTML(self, bstrHTML, pbstrStaticHTML) + +proc put_onmessage*(self: ptr IHTMLWindow6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmessage(self, v) + +proc get_onmessage*( + self: ptr IHTMLWindow6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmessage(self, p) + +proc msWriteProfilerMark*( + self: ptr IHTMLWindow6, bstrProfilerMarkName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.msWriteProfilerMark(self, bstrProfilerMarkName) + +proc getSelection*( + self: ptr IHTMLWindow7, ppIHTMLSelection: ptr ptr IHTMLSelection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getSelection(self, ppIHTMLSelection) + +proc getComputedStyle*( + self: ptr IHTMLWindow7, + varArgIn: ptr IHTMLDOMNode, + bstrPseudoElt: BSTR, + ppComputedStyle: ptr ptr IHTMLCSSStyleDeclaration, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getComputedStyle(self, varArgIn, bstrPseudoElt, ppComputedStyle) + +proc get_styleMedia*( + self: ptr IHTMLWindow7, p: ptr ptr IHTMLStyleMedia +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleMedia(self, p) + +proc put_performance*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_performance(self, v) + +proc get_performance*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_performance(self, p) + +proc get_innerWidth*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_innerWidth(self, p) + +proc get_innerHeight*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_innerHeight(self, p) + +proc get_pageXOffset*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageXOffset(self, p) + +proc get_pageYOffset*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageYOffset(self, p) + +proc get_screenX*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenX(self, p) + +proc get_screenY*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenY(self, p) + +proc get_outerWidth*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outerWidth(self, p) + +proc get_outerHeight*(self: ptr IHTMLWindow7, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_outerHeight(self, p) + +proc put_onabort*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onabort(self, v) + +proc get_onabort*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onabort(self, p) + +proc put_oncanplay*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncanplay(self, v) + +proc get_oncanplay*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncanplay(self, p) + +proc put_oncanplaythrough*( + self: ptr IHTMLWindow7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncanplaythrough(self, v) + +proc get_oncanplaythrough*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncanplaythrough(self, p) + +proc put_onchange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_onclick*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onclick(self, v) + +proc get_onclick*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onclick(self, p) + +proc put_oncontextmenu*( + self: ptr IHTMLWindow7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncontextmenu(self, v) + +proc get_oncontextmenu*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncontextmenu(self, p) + +proc put_ondblclick*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondblclick(self, v) + +proc get_ondblclick*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondblclick(self, p) + +proc put_ondrag*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondrag(self, v) + +proc get_ondrag*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondrag(self, p) + +proc put_ondragend*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragend(self, v) + +proc get_ondragend*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragend(self, p) + +proc put_ondragenter*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragenter(self, v) + +proc get_ondragenter*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragenter(self, p) + +proc put_ondragleave*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragleave(self, v) + +proc get_ondragleave*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragleave(self, p) + +proc put_ondragover*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragover(self, v) + +proc get_ondragover*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragover(self, p) + +proc put_ondragstart*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragstart(self, v) + +proc get_ondragstart*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragstart(self, p) + +proc put_ondrop*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondrop(self, v) + +proc get_ondrop*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondrop(self, p) + +proc put_ondurationchange*( + self: ptr IHTMLWindow7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondurationchange(self, v) + +proc get_ondurationchange*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondurationchange(self, p) + +proc put_onfocusin*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocusin(self, v) + +proc get_onfocusin*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocusin(self, p) + +proc put_onfocusout*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocusout(self, v) + +proc get_onfocusout*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocusout(self, p) + +proc put_oninput*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oninput(self, v) + +proc get_oninput*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oninput(self, p) + +proc put_onemptied*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onemptied(self, v) + +proc get_onemptied*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onemptied(self, p) + +proc put_onended*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onended(self, v) + +proc get_onended*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onended(self, p) + +proc put_onkeydown*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeydown(self, v) + +proc get_onkeydown*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeydown(self, p) + +proc put_onkeypress*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeypress(self, v) + +proc get_onkeypress*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeypress(self, p) + +proc put_onkeyup*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeyup(self, v) + +proc get_onkeyup*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeyup(self, p) + +proc put_onloadeddata*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadeddata(self, v) + +proc get_onloadeddata*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadeddata(self, p) + +proc put_onloadedmetadata*( + self: ptr IHTMLWindow7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadedmetadata(self, v) + +proc get_onloadedmetadata*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadedmetadata(self, p) + +proc put_onloadstart*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadstart(self, v) + +proc get_onloadstart*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadstart(self, p) + +proc put_onmousedown*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousedown(self, v) + +proc get_onmousedown*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousedown(self, p) + +proc put_onmouseenter*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseenter(self, v) + +proc get_onmouseenter*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseenter(self, p) + +proc put_onmouseleave*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseleave(self, v) + +proc get_onmouseleave*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseleave(self, p) + +proc put_onmousemove*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousemove(self, v) + +proc get_onmousemove*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousemove(self, p) + +proc put_onmouseout*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseout(self, v) + +proc get_onmouseout*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseout(self, p) + +proc put_onmouseover*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseover(self, v) + +proc get_onmouseover*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseover(self, p) + +proc put_onmouseup*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseup(self, v) + +proc get_onmouseup*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseup(self, p) + +proc put_onmousewheel*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousewheel(self, v) + +proc get_onmousewheel*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousewheel(self, p) + +proc put_onoffline*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onoffline(self, v) + +proc get_onoffline*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onoffline(self, p) + +proc put_ononline*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ononline(self, v) + +proc get_ononline*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ononline(self, p) + +proc put_onprogress*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onprogress(self, v) + +proc get_onprogress*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onprogress(self, p) + +proc put_onratechange*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onratechange(self, v) + +proc get_onratechange*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onratechange(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLWindow7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc put_onreset*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreset(self, v) + +proc get_onreset*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreset(self, p) + +proc put_onseeked*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onseeked(self, v) + +proc get_onseeked*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onseeked(self, p) + +proc put_onseeking*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onseeking(self, v) + +proc get_onseeking*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onseeking(self, p) + +proc put_onselect*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_onstalled*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstalled(self, v) + +proc get_onstalled*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstalled(self, p) + +proc put_onstorage*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstorage(self, v) + +proc get_onstorage*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstorage(self, p) + +proc put_onsubmit*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsubmit(self, v) + +proc get_onsubmit*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsubmit(self, p) + +proc put_onsuspend*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsuspend(self, v) + +proc get_onsuspend*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsuspend(self, p) + +proc put_ontimeupdate*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ontimeupdate(self, v) + +proc get_ontimeupdate*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ontimeupdate(self, p) + +proc put_onpause*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpause(self, v) + +proc get_onpause*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpause(self, p) + +proc put_onplay*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onplay(self, v) + +proc get_onplay*(self: ptr IHTMLWindow7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onplay(self, p) + +proc put_onplaying*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onplaying(self, v) + +proc get_onplaying*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onplaying(self, p) + +proc put_onvolumechange*( + self: ptr IHTMLWindow7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onvolumechange(self, v) + +proc get_onvolumechange*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onvolumechange(self, p) + +proc put_onwaiting*(self: ptr IHTMLWindow7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onwaiting(self, v) + +proc get_onwaiting*( + self: ptr IHTMLWindow7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onwaiting(self, p) + +proc put_onmspointerdown*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerdown(self, v) + +proc get_onmspointerdown*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerdown(self, p) + +proc put_onmspointermove*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointermove(self, v) + +proc get_onmspointermove*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointermove(self, p) + +proc put_onmspointerup*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerup(self, v) + +proc get_onmspointerup*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerup(self, p) + +proc put_onmspointerover*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerover(self, v) + +proc get_onmspointerover*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerover(self, p) + +proc put_onmspointerout*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerout(self, v) + +proc get_onmspointerout*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerout(self, p) + +proc put_onmspointercancel*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointercancel(self, v) + +proc get_onmspointercancel*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointercancel(self, p) + +proc put_onmspointerhover*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerhover(self, v) + +proc get_onmspointerhover*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerhover(self, p) + +proc put_onmsgesturestart*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturestart(self, v) + +proc get_onmsgesturestart*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturestart(self, p) + +proc put_onmsgesturechange*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturechange(self, v) + +proc get_onmsgesturechange*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturechange(self, p) + +proc put_onmsgestureend*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgestureend(self, v) + +proc get_onmsgestureend*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgestureend(self, p) + +proc put_onmsgesturehold*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturehold(self, v) + +proc get_onmsgesturehold*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturehold(self, p) + +proc put_onmsgesturetap*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturetap(self, v) + +proc get_onmsgesturetap*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturetap(self, p) + +proc put_onmsgesturedoubletap*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturedoubletap(self, v) + +proc get_onmsgesturedoubletap*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturedoubletap(self, p) + +proc put_onmsinertiastart*( + self: ptr IHTMLWindow8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsinertiastart(self, v) + +proc get_onmsinertiastart*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsinertiastart(self, p) + +proc get_applicationCache*( + self: ptr IHTMLWindow8, p: ptr ptr IHTMLApplicationCache +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_applicationCache(self, p) + +proc put_onpopstate*(self: ptr IHTMLWindow8, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpopstate(self, v) + +proc get_onpopstate*( + self: ptr IHTMLWindow8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpopstate(self, p) + +proc get_userAgent*( + self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_userAgent(self, p) + +proc get_version*( + self: ptr IHTMLDocumentCompatibleInfo, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_version(self, p) + +proc get_length*( + self: ptr IHTMLDocumentCompatibleInfoCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLDocumentCompatibleInfoCollection, + index: LONG, + compatibleInfo: ptr ptr IHTMLDocumentCompatibleInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, compatibleInfo) + +proc get_Script*( + self: ptr IHTMLDocument, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Script(self, p) + +proc get_all*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_all(self, p) + +proc get_body*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_body(self, p) + +proc get_activeElement*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_activeElement(self, p) + +proc get_images*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_images(self, p) + +proc get_applets*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_applets(self, p) + +proc get_links*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_links(self, p) + +proc get_forms*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_forms(self, p) + +proc get_anchors*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_anchors(self, p) + +proc put_title*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_title(self, v) + +proc get_title*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_title(self, p) + +proc get_scripts*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scripts(self, p) + +proc put_designMode*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_designMode(self, v) + +proc get_designMode*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_designMode(self, p) + +proc get_selection*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLSelectionObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selection(self, p) + +proc get_readyState*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc get_frames*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLFramesCollection2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frames(self, p) + +proc get_embeds*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_embeds(self, p) + +proc get_plugins*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_plugins(self, p) + +proc put_alinkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alinkColor(self, v) + +proc get_alinkColor*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alinkColor(self, p) + +proc put_bgColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc put_fgColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fgColor(self, v) + +proc get_fgColor*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fgColor(self, p) + +proc put_linkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_linkColor(self, v) + +proc get_linkColor*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_linkColor(self, p) + +proc put_vlinkColor*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vlinkColor(self, v) + +proc get_vlinkColor*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vlinkColor(self, p) + +proc get_referrer*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_referrer(self, p) + +proc get_location*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLLocation +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_location(self, p) + +proc get_lastModified*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastModified(self, p) + +proc put_URL*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_URL(self, v) + +proc get_URL*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_URL(self, p) + +proc put_domain*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_domain(self, v) + +proc get_domain*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domain(self, p) + +proc put_cookie*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cookie(self, v) + +proc get_cookie*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cookie(self, p) + +proc put_expando*( + self: ptr IHTMLDocument2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_expando(self, v) + +proc get_expando*( + self: ptr IHTMLDocument2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_expando(self, p) + +proc put_charset*(self: ptr IHTMLDocument2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, v) + +proc get_charset*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_defaultCharset*( + self: ptr IHTMLDocument2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultCharset(self, v) + +proc get_defaultCharset*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultCharset(self, p) + +proc get_mimeType*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mimeType(self, p) + +proc get_fileSize*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileSize(self, p) + +proc get_fileCreatedDate*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileCreatedDate(self, p) + +proc get_fileModifiedDate*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileModifiedDate(self, p) + +proc get_fileUpdatedDate*( + self: ptr IHTMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileUpdatedDate(self, p) + +proc get_security*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_security(self, p) + +proc get_protocol*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_protocol(self, p) + +proc get_nameProp*(self: ptr IHTMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nameProp(self, p) + +proc write*( + self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.write(self, psarray) + +proc writeln*( + self: ptr IHTMLDocument2, psarray: ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.writeln(self, psarray) + +proc open*( + self: ptr IHTMLDocument2, + url: BSTR, + name: VARIANT, + features: VARIANT, + replace: VARIANT, + pomWindowResult: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.open(self, url, name, features, replace, pomWindowResult) + +proc close*(self: ptr IHTMLDocument2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.close(self) + +proc clear*(self: ptr IHTMLDocument2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc queryCommandSupported*( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandSupported(self, cmdID, pfRet) + +proc queryCommandEnabled*( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandEnabled(self, cmdID, pfRet) + +proc queryCommandState*( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandState(self, cmdID, pfRet) + +proc queryCommandIndeterm*( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandIndeterm(self, cmdID, pfRet) + +proc queryCommandText*( + self: ptr IHTMLDocument2, cmdID: BSTR, pcmdText: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandText(self, cmdID, pcmdText) + +proc queryCommandValue*( + self: ptr IHTMLDocument2, cmdID: BSTR, pcmdValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.queryCommandValue(self, cmdID, pcmdValue) + +proc execCommand*( + self: ptr IHTMLDocument2, + cmdID: BSTR, + showUI: VARIANT_BOOL, + value: VARIANT, + pfRet: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execCommand(self, cmdID, showUI, value, pfRet) + +proc execCommandShowHelp*( + self: ptr IHTMLDocument2, cmdID: BSTR, pfRet: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.execCommandShowHelp(self, cmdID, pfRet) + +proc createElement*( + self: ptr IHTMLDocument2, eTag: BSTR, newElem: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createElement(self, eTag, newElem) + +proc put_onhelp*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onhelp(self, v) + +proc get_onhelp*(self: ptr IHTMLDocument2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onhelp(self, p) + +proc put_onclick*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onclick(self, v) + +proc get_onclick*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onclick(self, p) + +proc put_ondblclick*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondblclick(self, v) + +proc get_ondblclick*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondblclick(self, p) + +proc put_onkeyup*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeyup(self, v) + +proc get_onkeyup*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeyup(self, p) + +proc put_onkeydown*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeydown(self, v) + +proc get_onkeydown*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeydown(self, p) + +proc put_onkeypress*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onkeypress(self, v) + +proc get_onkeypress*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onkeypress(self, p) + +proc put_onmouseup*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseup(self, v) + +proc get_onmouseup*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseup(self, p) + +proc put_onmousedown*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousedown(self, v) + +proc get_onmousedown*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousedown(self, p) + +proc put_onmousemove*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousemove(self, v) + +proc get_onmousemove*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousemove(self, p) + +proc put_onmouseout*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseout(self, v) + +proc get_onmouseout*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseout(self, p) + +proc put_onmouseover*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmouseover(self, v) + +proc get_onmouseover*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmouseover(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc put_onafterupdate*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onafterupdate(self, v) + +proc get_onafterupdate*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onafterupdate(self, p) + +proc put_onrowexit*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowexit(self, v) + +proc get_onrowexit*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowexit(self, p) + +proc put_onrowenter*(self: ptr IHTMLDocument2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowenter(self, v) + +proc get_onrowenter*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowenter(self, p) + +proc put_ondragstart*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragstart(self, v) + +proc get_ondragstart*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragstart(self, p) + +proc put_onselectstart*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselectstart(self, v) + +proc get_onselectstart*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselectstart(self, p) + +proc elementFromPoint*( + self: ptr IHTMLDocument2, x: LONG, y: LONG, elementHit: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.elementFromPoint(self, x, y, elementHit) + +proc get_parentWindow*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentWindow(self, p) + +proc get_styleSheets*( + self: ptr IHTMLDocument2, p: ptr ptr IHTMLStyleSheetsCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleSheets(self, p) + +proc put_onbeforeupdate*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeupdate(self, v) + +proc get_onbeforeupdate*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeupdate(self, p) + +proc put_onerrorupdate*( + self: ptr IHTMLDocument2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerrorupdate(self, v) + +proc get_onerrorupdate*( + self: ptr IHTMLDocument2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerrorupdate(self, p) + +proc toString*(self: ptr IHTMLDocument2, String: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc createStyleSheet*( + self: ptr IHTMLDocument2, + bstrHref: BSTR, + lIndex: LONG, + ppnewStyleSheet: ptr ptr IHTMLStyleSheet, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createStyleSheet(self, bstrHref, lIndex, ppnewStyleSheet) + +proc releaseCapture*(self: ptr IHTMLDocument3): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.releaseCapture(self) + +proc recalc*( + self: ptr IHTMLDocument3, fForce: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.recalc(self, fForce) + +proc createTextNode*( + self: ptr IHTMLDocument3, text: BSTR, newTextNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextNode(self, text, newTextNode) + +proc get_documentElement*( + self: ptr IHTMLDocument3, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_documentElement(self, p) + +proc get_uniqueID*(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_uniqueID(self, p) + +proc attachEvent*( + self: ptr IHTMLDocument3, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.attachEvent(self, event, pDisp, pfResult) + +proc detachEvent*( + self: ptr IHTMLDocument3, event: BSTR, pDisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detachEvent(self, event, pDisp) + +proc put_onrowsdelete*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowsdelete(self, v) + +proc get_onrowsdelete*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowsdelete(self, p) + +proc put_onrowsinserted*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onrowsinserted(self, v) + +proc get_onrowsinserted*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onrowsinserted(self, p) + +proc put_oncellchange*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncellchange(self, v) + +proc get_oncellchange*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncellchange(self, p) + +proc put_ondatasetchanged*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondatasetchanged(self, v) + +proc get_ondatasetchanged*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondatasetchanged(self, p) + +proc put_ondataavailable*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondataavailable(self, v) + +proc get_ondataavailable*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondataavailable(self, p) + +proc put_ondatasetcomplete*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondatasetcomplete(self, v) + +proc get_ondatasetcomplete*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondatasetcomplete(self, p) + +proc put_onpropertychange*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpropertychange(self, v) + +proc get_onpropertychange*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpropertychange(self, p) + +proc put_dir*(self: ptr IHTMLDocument3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dir(self, v) + +proc get_dir*(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dir(self, p) + +proc put_oncontextmenu*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncontextmenu(self, v) + +proc get_oncontextmenu*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncontextmenu(self, p) + +proc put_onstop*(self: ptr IHTMLDocument3, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstop(self, v) + +proc get_onstop*(self: ptr IHTMLDocument3, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstop(self, p) + +proc createDocumentFragment*( + self: ptr IHTMLDocument3, pNewDoc: ptr ptr IHTMLDocument2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createDocumentFragment(self, pNewDoc) + +proc get_parentDocument*( + self: ptr IHTMLDocument3, p: ptr ptr IHTMLDocument2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentDocument(self, p) + +proc put_enableDownload*( + self: ptr IHTMLDocument3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_enableDownload(self, v) + +proc get_enableDownload*( + self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_enableDownload(self, p) + +proc put_baseUrl*(self: ptr IHTMLDocument3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baseUrl(self, v) + +proc get_baseUrl*(self: ptr IHTMLDocument3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseUrl(self, p) + +proc get_childNodes*( + self: ptr IHTMLDocument3, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childNodes(self, p) + +proc put_inheritStyleSheets*( + self: ptr IHTMLDocument3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_inheritStyleSheets(self, v) + +proc get_inheritStyleSheets*( + self: ptr IHTMLDocument3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_inheritStyleSheets(self, p) + +proc put_onbeforeeditfocus*( + self: ptr IHTMLDocument3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeeditfocus(self, v) + +proc get_onbeforeeditfocus*( + self: ptr IHTMLDocument3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeeditfocus(self, p) + +proc getElementsByName*( + self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByName(self, v, pelColl) + +proc getElementById*( + self: ptr IHTMLDocument3, v: BSTR, pel: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementById(self, v, pel) + +proc getElementsByTagName*( + self: ptr IHTMLDocument3, v: BSTR, pelColl: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByTagName(self, v, pelColl) + +proc focus*(self: ptr IHTMLDocument4): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.focus(self) + +proc hasFocus*( + self: ptr IHTMLDocument4, pfFocus: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasFocus(self, pfFocus) + +proc put_onselectionchange*( + self: ptr IHTMLDocument4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselectionchange(self, v) + +proc get_onselectionchange*( + self: ptr IHTMLDocument4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselectionchange(self, p) + +proc get_namespaces*( + self: ptr IHTMLDocument4, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_namespaces(self, p) + +proc createDocumentFromUrl*( + self: ptr IHTMLDocument4, + bstrUrl: BSTR, + bstrOptions: BSTR, + newDoc: ptr ptr IHTMLDocument2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createDocumentFromUrl(self, bstrUrl, bstrOptions, newDoc) + +proc put_media*(self: ptr IHTMLDocument4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*(self: ptr IHTMLDocument4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc createEventObject*( + self: ptr IHTMLDocument4, + pvarEventObject: ptr VARIANT, + ppEventObj: ptr ptr IHTMLEventObj, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createEventObject(self, pvarEventObject, ppEventObj) + +proc fireEvent*( + self: ptr IHTMLDocument4, + bstrEventName: BSTR, + pvarEventObject: ptr VARIANT, + pfCancelled: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fireEvent(self, bstrEventName, pvarEventObject, pfCancelled) + +proc createRenderStyle*( + self: ptr IHTMLDocument4, v: BSTR, ppIHTMLRenderStyle: ptr ptr IHTMLRenderStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createRenderStyle(self, v, ppIHTMLRenderStyle) + +proc put_oncontrolselect*( + self: ptr IHTMLDocument4, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncontrolselect(self, v) + +proc get_oncontrolselect*( + self: ptr IHTMLDocument4, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncontrolselect(self, p) + +proc get_URLUnencoded*( + self: ptr IHTMLDocument4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_URLUnencoded(self, p) + +proc put_onmousewheel*( + self: ptr IHTMLDocument5, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmousewheel(self, v) + +proc get_onmousewheel*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmousewheel(self, p) + +proc get_doctype*( + self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_doctype(self, p) + +proc get_implementation*( + self: ptr IHTMLDocument5, p: ptr ptr IHTMLDOMImplementation +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_implementation(self, p) + +proc createAttribute*( + self: ptr IHTMLDocument5, bstrattrName: BSTR, ppattribute: ptr ptr IHTMLDOMAttribute +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createAttribute(self, bstrattrName, ppattribute) + +proc createComment*( + self: ptr IHTMLDocument5, bstrdata: BSTR, ppRetNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createComment(self, bstrdata, ppRetNode) + +proc put_onfocusin*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocusin(self, v) + +proc get_onfocusin*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocusin(self, p) + +proc put_onfocusout*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocusout(self, v) + +proc get_onfocusout*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocusout(self, p) + +proc put_onactivate*(self: ptr IHTMLDocument5, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onactivate(self, v) + +proc get_onactivate*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onactivate(self, p) + +proc put_ondeactivate*( + self: ptr IHTMLDocument5, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondeactivate(self, v) + +proc get_ondeactivate*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondeactivate(self, p) + +proc put_onbeforeactivate*( + self: ptr IHTMLDocument5, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeactivate(self, v) + +proc get_onbeforeactivate*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeactivate(self, p) + +proc put_onbeforedeactivate*( + self: ptr IHTMLDocument5, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforedeactivate(self, v) + +proc get_onbeforedeactivate*( + self: ptr IHTMLDocument5, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforedeactivate(self, p) + +proc get_compatMode*( + self: ptr IHTMLDocument5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_compatMode(self, p) + +proc get_compatible*( + self: ptr IHTMLDocument6, p: ptr ptr IHTMLDocumentCompatibleInfoCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_compatible(self, p) + +proc get_documentMode*( + self: ptr IHTMLDocument6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_documentMode(self, p) + +proc put_onstorage*(self: ptr IHTMLDocument6, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstorage(self, v) + +proc get_onstorage*( + self: ptr IHTMLDocument6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstorage(self, p) + +proc put_onstoragecommit*( + self: ptr IHTMLDocument6, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstoragecommit(self, v) + +proc get_onstoragecommit*( + self: ptr IHTMLDocument6, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstoragecommit(self, p) + +proc getElementById*( + self: ptr IHTMLDocument6, bstrId: BSTR, ppRetElement: ptr ptr IHTMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementById(self, bstrId, ppRetElement) + +proc updateSettings*(self: ptr IHTMLDocument6): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.updateSettings(self) + +proc get_defaultView*( + self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultView(self, p) + +proc createCDATASection*( + self: ptr IHTMLDocument7, text: BSTR, newCDATASectionNode: ptr ptr IHTMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createCDATASection(self, text, newCDATASectionNode) + +proc getSelection*( + self: ptr IHTMLDocument7, ppIHTMLSelection: ptr ptr IHTMLSelection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getSelection(self, ppIHTMLSelection) + +proc getElementsByTagNameNS*( + self: ptr IHTMLDocument7, + pvarNS: ptr VARIANT, + bstrLocalName: BSTR, + pelColl: ptr ptr IHTMLElementCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByTagNameNS(self, pvarNS, bstrLocalName, pelColl) + +proc createElementNS*( + self: ptr IHTMLDocument7, + pvarNS: ptr VARIANT, + bstrTag: BSTR, + newElem: ptr ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createElementNS(self, pvarNS, bstrTag, newElem) + +proc createAttributeNS*( + self: ptr IHTMLDocument7, + pvarNS: ptr VARIANT, + bstrAttrName: BSTR, + ppAttribute: ptr ptr IHTMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createAttributeNS(self, pvarNS, bstrAttrName, ppAttribute) + +proc put_onmsthumbnailclick*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsthumbnailclick(self, v) + +proc get_onmsthumbnailclick*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsthumbnailclick(self, p) + +proc get_characterSet*( + self: ptr IHTMLDocument7, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_characterSet(self, p) + +proc createElement*( + self: ptr IHTMLDocument7, bstrTag: BSTR, newElem: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createElement(self, bstrTag, newElem) + +proc createAttribute*( + self: ptr IHTMLDocument7, bstrAttrName: BSTR, ppAttribute: ptr ptr IHTMLDOMAttribute +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createAttribute(self, bstrAttrName, ppAttribute) + +proc getElementsByClassName*( + self: ptr IHTMLDocument7, v: BSTR, pel: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByClassName(self, v, pel) + +proc createProcessingInstruction*( + self: ptr IHTMLDocument7, + bstrTarget: BSTR, + bstrData: BSTR, + newProcessingInstruction: ptr ptr IDOMProcessingInstruction, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createProcessingInstruction( + self, bstrTarget, bstrData, newProcessingInstruction + ) + +proc adoptNode*( + self: ptr IHTMLDocument7, + pNodeSource: ptr IHTMLDOMNode, + ppNodeDest: ptr ptr IHTMLDOMNode3, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.adoptNode(self, pNodeSource, ppNodeDest) + +proc put_onmssitemodejumplistitemremoved*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmssitemodejumplistitemremoved(self, v) + +proc get_onmssitemodejumplistitemremoved*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmssitemodejumplistitemremoved(self, p) + +proc get_all*( + self: ptr IHTMLDocument7, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_all(self, p) + +proc get_inputEncoding*( + self: ptr IHTMLDocument7, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_inputEncoding(self, p) + +proc get_xmlEncoding*( + self: ptr IHTMLDocument7, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmlEncoding(self, p) + +proc put_xmlStandalone*( + self: ptr IHTMLDocument7, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_xmlStandalone(self, v) + +proc get_xmlStandalone*( + self: ptr IHTMLDocument7, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmlStandalone(self, p) + +proc put_xmlVersion*(self: ptr IHTMLDocument7, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_xmlVersion(self, v) + +proc get_xmlVersion*( + self: ptr IHTMLDocument7, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmlVersion(self, p) + +proc hasAttributes*( + self: ptr IHTMLDocument7, pfHasAttributes: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasAttributes(self, pfHasAttributes) + +proc put_onabort*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onabort(self, v) + +proc get_onabort*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onabort(self, p) + +proc put_onblur*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onblur(self, v) + +proc get_onblur*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onblur(self, p) + +proc put_oncanplay*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncanplay(self, v) + +proc get_oncanplay*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncanplay(self, p) + +proc put_oncanplaythrough*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncanplaythrough(self, v) + +proc get_oncanplaythrough*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncanplaythrough(self, p) + +proc put_onchange*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchange(self, v) + +proc get_onchange*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchange(self, p) + +proc put_ondrag*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondrag(self, v) + +proc get_ondrag*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondrag(self, p) + +proc put_ondragend*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragend(self, v) + +proc get_ondragend*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragend(self, p) + +proc put_ondragenter*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragenter(self, v) + +proc get_ondragenter*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragenter(self, p) + +proc put_ondragleave*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragleave(self, v) + +proc get_ondragleave*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragleave(self, p) + +proc put_ondragover*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondragover(self, v) + +proc get_ondragover*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondragover(self, p) + +proc put_ondrop*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondrop(self, v) + +proc get_ondrop*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondrop(self, p) + +proc put_ondurationchange*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondurationchange(self, v) + +proc get_ondurationchange*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondurationchange(self, p) + +proc put_onemptied*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onemptied(self, v) + +proc get_onemptied*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onemptied(self, p) + +proc put_onended*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onended(self, v) + +proc get_onended*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onended(self, p) + +proc put_onerror*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_onfocus*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocus(self, v) + +proc get_onfocus*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocus(self, p) + +proc put_oninput*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oninput(self, v) + +proc get_oninput*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oninput(self, p) + +proc put_onload*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onloadeddata*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadeddata(self, v) + +proc get_onloadeddata*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadeddata(self, p) + +proc put_onloadedmetadata*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadedmetadata(self, v) + +proc get_onloadedmetadata*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadedmetadata(self, p) + +proc put_onloadstart*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onloadstart(self, v) + +proc get_onloadstart*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onloadstart(self, p) + +proc put_onpause*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onpause(self, v) + +proc get_onpause*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onpause(self, p) + +proc put_onplay*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onplay(self, v) + +proc get_onplay*(self: ptr IHTMLDocument7, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onplay(self, p) + +proc put_onplaying*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onplaying(self, v) + +proc get_onplaying*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onplaying(self, p) + +proc put_onprogress*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onprogress(self, v) + +proc get_onprogress*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onprogress(self, p) + +proc put_onratechange*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onratechange(self, v) + +proc get_onratechange*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onratechange(self, p) + +proc put_onreset*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreset(self, v) + +proc get_onreset*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreset(self, p) + +proc put_onscroll*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onscroll(self, v) + +proc get_onscroll*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onscroll(self, p) + +proc put_onseeked*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onseeked(self, v) + +proc get_onseeked*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onseeked(self, p) + +proc put_onseeking*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onseeking(self, v) + +proc get_onseeking*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onseeking(self, p) + +proc put_onselect*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onselect(self, v) + +proc get_onselect*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onselect(self, p) + +proc put_onstalled*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstalled(self, v) + +proc get_onstalled*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstalled(self, p) + +proc put_onsubmit*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsubmit(self, v) + +proc get_onsubmit*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsubmit(self, p) + +proc put_onsuspend*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onsuspend(self, v) + +proc get_onsuspend*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onsuspend(self, p) + +proc put_ontimeupdate*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ontimeupdate(self, v) + +proc get_ontimeupdate*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ontimeupdate(self, p) + +proc put_onvolumechange*( + self: ptr IHTMLDocument7, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onvolumechange(self, v) + +proc get_onvolumechange*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onvolumechange(self, p) + +proc put_onwaiting*(self: ptr IHTMLDocument7, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onwaiting(self, v) + +proc get_onwaiting*( + self: ptr IHTMLDocument7, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onwaiting(self, p) + +proc normalize*(self: ptr IHTMLDocument7): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.normalize(self) + +proc importNode*( + self: ptr IHTMLDocument7, + pNodeSource: ptr IHTMLDOMNode, + fDeep: VARIANT_BOOL, + ppNodeDest: ptr ptr IHTMLDOMNode3, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.importNode(self, pNodeSource, fDeep, ppNodeDest) + +proc get_parentWindow*( + self: ptr IHTMLDocument7, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentWindow(self, p) + +proc putref_body*( + self: ptr IHTMLDocument7, v: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_body(self, v) + +proc get_body*( + self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_body(self, p) + +proc get_head*( + self: ptr IHTMLDocument7, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_head(self, p) + +proc put_onmscontentzoom*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmscontentzoom(self, v) + +proc get_onmscontentzoom*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmscontentzoom(self, p) + +proc put_onmspointerdown*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerdown(self, v) + +proc get_onmspointerdown*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerdown(self, p) + +proc put_onmspointermove*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointermove(self, v) + +proc get_onmspointermove*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointermove(self, p) + +proc put_onmspointerup*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerup(self, v) + +proc get_onmspointerup*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerup(self, p) + +proc put_onmspointerover*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerover(self, v) + +proc get_onmspointerover*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerover(self, p) + +proc put_onmspointerout*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerout(self, v) + +proc get_onmspointerout*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerout(self, p) + +proc put_onmspointercancel*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointercancel(self, v) + +proc get_onmspointercancel*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointercancel(self, p) + +proc put_onmspointerhover*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmspointerhover(self, v) + +proc get_onmspointerhover*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmspointerhover(self, p) + +proc put_onmsgesturestart*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturestart(self, v) + +proc get_onmsgesturestart*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturestart(self, p) + +proc put_onmsgesturechange*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturechange(self, v) + +proc get_onmsgesturechange*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturechange(self, p) + +proc put_onmsgestureend*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgestureend(self, v) + +proc get_onmsgestureend*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgestureend(self, p) + +proc put_onmsgesturehold*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturehold(self, v) + +proc get_onmsgesturehold*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturehold(self, p) + +proc put_onmsgesturetap*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturetap(self, v) + +proc get_onmsgesturetap*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturetap(self, p) + +proc put_onmsgesturedoubletap*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsgesturedoubletap(self, v) + +proc get_onmsgesturedoubletap*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsgesturedoubletap(self, p) + +proc put_onmsinertiastart*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsinertiastart(self, v) + +proc get_onmsinertiastart*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsinertiastart(self, p) + +proc elementsFromPoint*( + self: ptr IHTMLDocument8, + x: float32, + y: float32, + elementsHit: ptr ptr IHTMLDOMChildrenCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.elementsFromPoint(self, x, y, elementsHit) + +proc elementsFromRect*( + self: ptr IHTMLDocument8, + left: float32, + top: float32, + width: float32, + height: float32, + elementsHit: ptr ptr IHTMLDOMChildrenCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.elementsFromRect(self, left, top, width, height, elementsHit) + +proc put_onmsmanipulationstatechanged*( + self: ptr IHTMLDocument8, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmsmanipulationstatechanged(self, v) + +proc get_onmsmanipulationstatechanged*( + self: ptr IHTMLDocument8, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmsmanipulationstatechanged(self, p) + +proc put_msCapsLockWarningOff*( + self: ptr IHTMLDocument8, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msCapsLockWarningOff(self, v) + +proc get_msCapsLockWarningOff*( + self: ptr IHTMLDocument8, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msCapsLockWarningOff(self, p) + +proc createEvent*( + self: ptr IDocumentEvent, eventType: BSTR, ppEvent: ptr ptr IDOMEvent +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createEvent(self, eventType, ppEvent) + +proc createRange*( + self: ptr IDocumentRange, ppIHTMLDOMRange: ptr ptr IHTMLDOMRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createRange(self, ppIHTMLDOMRange) + +proc querySelector*( + self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.querySelector(self, v, pel) + +proc querySelectorAll*( + self: ptr IDocumentSelector, v: BSTR, pel: ptr ptr IHTMLDOMChildrenCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.querySelectorAll(self, v, pel) + +proc createNodeIterator*( + self: ptr IDocumentTraversal, + pRootNode: ptr IDispatch, + ulWhatToShow: LONG, + pFilter: ptr VARIANT, + fEntityReferenceExpansion: VARIANT_BOOL, + ppNodeIterator: ptr ptr IDOMNodeIterator, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createNodeIterator( + self, pRootNode, ulWhatToShow, pFilter, fEntityReferenceExpansion, ppNodeIterator + ) + +proc createTreeWalker*( + self: ptr IDocumentTraversal, + pRootNode: ptr IDispatch, + ulWhatToShow: LONG, + pFilter: ptr VARIANT, + fEntityReferenceExpansion: VARIANT_BOOL, + ppTreeWalker: ptr ptr IDOMTreeWalker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTreeWalker( + self, pRootNode, ulWhatToShow, pFilter, fEntityReferenceExpansion, ppTreeWalker + ) + +proc put_URL*(self: ptr IWebBridge, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_URL(self, v) + +proc get_URL*(self: ptr IWebBridge, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_URL(self, p) + +proc put_Scrollbar*(self: ptr IWebBridge, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Scrollbar(self, v) + +proc get_Scrollbar*( + self: ptr IWebBridge, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Scrollbar(self, p) + +proc put_embed*(self: ptr IWebBridge, v: VARIANT_BOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_embed(self, v) + +proc get_embed*(self: ptr IWebBridge, p: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_embed(self, p) + +proc get_event*( + self: ptr IWebBridge, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_event(self, p) + +proc get_readyState*(self: ptr IWebBridge, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc AboutBox*(self: ptr IWebBridge): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AboutBox(self) + +proc raiseEvent*( + self: ptr IWBScriptControl, name: BSTR, eventData: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.raiseEvent(self, name, eventData) + +proc bubbleEvent*(self: ptr IWBScriptControl): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.bubbleEvent(self) + +proc setContextMenu*( + self: ptr IWBScriptControl, menuItemPairs: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setContextMenu(self, menuItemPairs) + +proc put_selectableContent*( + self: ptr IWBScriptControl, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectableContent(self, v) + +proc get_selectableContent*( + self: ptr IWBScriptControl, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectableContent(self, p) + +proc get_frozen*( + self: ptr IWBScriptControl, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frozen(self, p) + +proc put_scrollbar*( + self: ptr IWBScriptControl, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollbar(self, v) + +proc get_scrollbar*( + self: ptr IWBScriptControl, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollbar(self, p) + +proc get_version*(self: ptr IWBScriptControl, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_version(self, p) + +proc get_visibility*( + self: ptr IWBScriptControl, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_visibility(self, p) + +proc put_onvisibilitychange*( + self: ptr IWBScriptControl, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onvisibilitychange(self, v) + +proc get_onvisibilitychange*( + self: ptr IWBScriptControl, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onvisibilitychange(self, p) + +proc put_hidden*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hidden(self, v) + +proc get_hidden*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hidden(self, p) + +proc get_palette*( + self: ptr IHTMLEmbedElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_palette(self, p) + +proc get_pluginspage*( + self: ptr IHTMLEmbedElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pluginspage(self, p) + +proc put_src*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_units*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_units(self, v) + +proc get_units*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_units(self, p) + +proc put_name*(self: ptr IHTMLEmbedElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLEmbedElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_width*(self: ptr IHTMLEmbedElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*( + self: ptr IHTMLEmbedElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLEmbedElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLEmbedElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_src*(self: ptr IHTMLEmbedElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLEmbedElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc get_pluginspage*( + self: ptr IHTMLEmbedElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pluginspage(self, p) + +proc put_length*(self: ptr IHTMLAreasCollection, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_length(self, v) + +proc get_length*( + self: ptr IHTMLAreasCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLAreasCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLAreasCollection, + name: VARIANT, + index: VARIANT, + pdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, name, index, pdisp) + +proc tags*( + self: ptr IHTMLAreasCollection, tagName: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.tags(self, tagName, pdisp) + +proc add*( + self: ptr IHTMLAreasCollection, element: ptr IHTMLElement, before: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add(self, element, before) + +proc remove*(self: ptr IHTMLAreasCollection, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.remove(self, index) + +proc urns*( + self: ptr IHTMLAreasCollection2, urn: VARIANT, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.urns(self, urn, pdisp) + +proc namedItem*( + self: ptr IHTMLAreasCollection3, name: BSTR, pdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedItem(self, name, pdisp) + +proc get_length*( + self: ptr IHTMLAreasCollection4, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLAreasCollection4, index: LONG, pNode: ptr ptr IHTMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pNode) + +proc namedItem*( + self: ptr IHTMLAreasCollection4, name: BSTR, pNode: ptr ptr IHTMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedItem(self, name, pNode) + +proc get_areas*( + self: ptr IHTMLMapElement, p: ptr ptr IHTMLAreasCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_areas(self, p) + +proc put_name*(self: ptr IHTMLMapElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLMapElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_shape*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shape(self, v) + +proc get_shape*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shape(self, p) + +proc put_coords*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_coords(self, v) + +proc get_coords*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_coords(self, p) + +proc put_href*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_target*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_target(self, v) + +proc get_target*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc put_alt*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alt(self, v) + +proc get_alt*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alt(self, p) + +proc put_noHref*( + self: ptr IHTMLAreaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noHref(self, v) + +proc get_noHref*( + self: ptr IHTMLAreaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noHref(self, p) + +proc put_host*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_host(self, v) + +proc get_host*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_host(self, p) + +proc put_hostname*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hostname(self, v) + +proc get_hostname*( + self: ptr IHTMLAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hostname(self, p) + +proc put_pathname*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pathname(self, v) + +proc get_pathname*( + self: ptr IHTMLAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathname(self, p) + +proc put_port*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_port(self, v) + +proc get_port*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_port(self, p) + +proc put_protocol*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_protocol(self, v) + +proc get_protocol*( + self: ptr IHTMLAreaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_protocol(self, p) + +proc put_search*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_search(self, v) + +proc get_search*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_search(self, p) + +proc put_hash*(self: ptr IHTMLAreaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hash(self, v) + +proc get_hash*(self: ptr IHTMLAreaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hash(self, p) + +proc put_onblur*(self: ptr IHTMLAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onblur(self, v) + +proc get_onblur*( + self: ptr IHTMLAreaElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onblur(self, p) + +proc put_onfocus*(self: ptr IHTMLAreaElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onfocus(self, v) + +proc get_onfocus*( + self: ptr IHTMLAreaElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onfocus(self, p) + +proc put_tabIndex*(self: ptr IHTMLAreaElement, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tabIndex(self, v) + +proc get_tabIndex*( + self: ptr IHTMLAreaElement, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tabIndex(self, p) + +proc focus*(self: ptr IHTMLAreaElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.focus(self) + +proc blur*(self: ptr IHTMLAreaElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.blur(self) + +proc put_shape*(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shape(self, v) + +proc get_shape*(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shape(self, p) + +proc put_coords*(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_coords(self, v) + +proc get_coords*(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_coords(self, p) + +proc put_href*(self: ptr IHTMLAreaElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_href(self, v) + +proc get_href*(self: ptr IHTMLAreaElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc put_align*(self: ptr IHTMLTableCaption, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLTableCaption, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_vAlign*(self: ptr IHTMLTableCaption, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vAlign(self, v) + +proc get_vAlign*(self: ptr IHTMLTableCaption, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vAlign(self, p) + +proc put_text*(self: ptr IHTMLCommentElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, v) + +proc get_text*(self: ptr IHTMLCommentElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc put_atomic*(self: ptr IHTMLCommentElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_atomic(self, v) + +proc get_atomic*( + self: ptr IHTMLCommentElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_atomic(self, p) + +proc put_data*(self: ptr IHTMLCommentElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, v) + +proc get_data*( + self: ptr IHTMLCommentElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc get_length*( + self: ptr IHTMLCommentElement2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc substringData*( + self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.substringData(self, offset, Count, pbstrsubString) + +proc appendData*( + self: ptr IHTMLCommentElement2, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendData(self, bstrstring) + +proc insertData*( + self: ptr IHTMLCommentElement2, offset: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertData(self, offset, bstrstring) + +proc deleteData*( + self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteData(self, offset, Count) + +proc replaceData*( + self: ptr IHTMLCommentElement2, offset: LONG, Count: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceData(self, offset, Count, bstrstring) + +proc substringData*( + self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, pbstrsubString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.substringData(self, offset, Count, pbstrsubString) + +proc insertData*( + self: ptr IHTMLCommentElement3, offset: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertData(self, offset, bstrstring) + +proc deleteData*( + self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteData(self, offset, Count) + +proc replaceData*( + self: ptr IHTMLCommentElement3, offset: LONG, Count: LONG, bstrstring: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceData(self, offset, Count, bstrstring) + +proc put_cite*(self: ptr IHTMLPhraseElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cite(self, v) + +proc get_cite*(self: ptr IHTMLPhraseElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cite(self, p) + +proc put_dateTime*(self: ptr IHTMLPhraseElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dateTime(self, v) + +proc get_dateTime*( + self: ptr IHTMLPhraseElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dateTime(self, p) + +proc put_cite*(self: ptr IHTMLPhraseElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cite(self, v) + +proc get_cite*(self: ptr IHTMLPhraseElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cite(self, p) + +proc put_cols*(self: ptr IHTMLTable, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cols(self, v) + +proc get_cols*(self: ptr IHTMLTable, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cols(self, p) + +proc put_border*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_frame*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frame(self, v) + +proc get_frame*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frame(self, p) + +proc put_rules*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rules(self, v) + +proc get_rules*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rules(self, p) + +proc put_cellSpacing*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cellSpacing(self, v) + +proc get_cellSpacing*( + self: ptr IHTMLTable, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cellSpacing(self, p) + +proc put_cellPadding*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cellPadding(self, v) + +proc get_cellPadding*( + self: ptr IHTMLTable, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cellPadding(self, p) + +proc put_background*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_bgColor*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc put_borderColor*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLTable, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_borderColorLight*( + self: ptr IHTMLTable, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColorLight(self, v) + +proc get_borderColorLight*( + self: ptr IHTMLTable, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColorLight(self, p) + +proc put_borderColorDark*( + self: ptr IHTMLTable, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColorDark(self, v) + +proc get_borderColorDark*( + self: ptr IHTMLTable, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColorDark(self, p) + +proc put_align*(self: ptr IHTMLTable, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc refresh*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.refresh(self) + +proc get_rows*( + self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rows(self, p) + +proc put_width*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLTable, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLTable, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_dataPageSize*(self: ptr IHTMLTable, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dataPageSize(self, v) + +proc get_dataPageSize*(self: ptr IHTMLTable, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataPageSize(self, p) + +proc nextPage*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nextPage(self) + +proc previousPage*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.previousPage(self) + +proc get_tHead*( + self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tHead(self, p) + +proc get_tFoot*( + self: ptr IHTMLTable, p: ptr ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tFoot(self, p) + +proc get_tBodies*( + self: ptr IHTMLTable, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tBodies(self, p) + +proc get_caption*( + self: ptr IHTMLTable, p: ptr ptr IHTMLTableCaption +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_caption(self, p) + +proc createTHead*( + self: ptr IHTMLTable, head: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTHead(self, head) + +proc deleteTHead*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteTHead(self) + +proc createTFoot*( + self: ptr IHTMLTable, foot: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTFoot(self, foot) + +proc deleteTFoot*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteTFoot(self) + +proc createCaption*( + self: ptr IHTMLTable, caption: ptr ptr IHTMLTableCaption +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createCaption(self, caption) + +proc deleteCaption*(self: ptr IHTMLTable): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteCaption(self) + +proc insertRow*( + self: ptr IHTMLTable, index: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertRow(self, index, row) + +proc deleteRow*(self: ptr IHTMLTable, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRow(self, index) + +proc get_readyState*(self: ptr IHTMLTable, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLTable, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLTable, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc firstPage*(self: ptr IHTMLTable2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.firstPage(self) + +proc lastPage*(self: ptr IHTMLTable2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.lastPage(self) + +proc get_cells*( + self: ptr IHTMLTable2, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cells(self, p) + +proc moveRow*( + self: ptr IHTMLTable2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveRow(self, indexFrom, indexTo, row) + +proc put_summary*(self: ptr IHTMLTable3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_summary(self, v) + +proc get_summary*(self: ptr IHTMLTable3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_summary(self, p) + +proc putref_tHead*( + self: ptr IHTMLTable4, v: ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_tHead(self, v) + +proc get_tHead*( + self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tHead(self, p) + +proc putref_tFoot*( + self: ptr IHTMLTable4, v: ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_tFoot(self, v) + +proc get_tFoot*( + self: ptr IHTMLTable4, p: ptr ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tFoot(self, p) + +proc putref_caption*( + self: ptr IHTMLTable4, v: ptr IHTMLTableCaption +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_caption(self, v) + +proc get_caption*( + self: ptr IHTMLTable4, p: ptr ptr IHTMLTableCaption +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_caption(self, p) + +proc insertRow*( + self: ptr IHTMLTable4, index: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertRow(self, index, row) + +proc deleteRow*(self: ptr IHTMLTable4, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRow(self, index) + +proc createTBody*( + self: ptr IHTMLTable4, tbody: ptr ptr IHTMLTableSection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTBody(self, tbody) + +proc put_span*(self: ptr IHTMLTableCol, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_span(self, v) + +proc get_span*(self: ptr IHTMLTableCol, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_span(self, p) + +proc put_width*(self: ptr IHTMLTableCol, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLTableCol, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_align*(self: ptr IHTMLTableCol, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLTableCol, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_vAlign*(self: ptr IHTMLTableCol, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vAlign(self, v) + +proc get_vAlign*(self: ptr IHTMLTableCol, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vAlign(self, p) + +proc put_ch*(self: ptr IHTMLTableCol2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableCol2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableCol2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableCol2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc put_ch*(self: ptr IHTMLTableCol3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableCol3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableCol3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableCol3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc put_align*(self: ptr IHTMLTableSection, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLTableSection, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_vAlign*(self: ptr IHTMLTableSection, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vAlign(self, v) + +proc get_vAlign*(self: ptr IHTMLTableSection, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vAlign(self, p) + +proc put_bgColor*(self: ptr IHTMLTableSection, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*( + self: ptr IHTMLTableSection, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc get_rows*( + self: ptr IHTMLTableSection, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rows(self, p) + +proc insertRow*( + self: ptr IHTMLTableSection, index: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertRow(self, index, row) + +proc deleteRow*(self: ptr IHTMLTableSection, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRow(self, index) + +proc moveRow*( + self: ptr IHTMLTableSection2, indexFrom: LONG, indexTo: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveRow(self, indexFrom, indexTo, row) + +proc put_ch*(self: ptr IHTMLTableSection3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableSection3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableSection3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableSection3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc put_ch*(self: ptr IHTMLTableSection4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableSection4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableSection4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableSection4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc insertRow*( + self: ptr IHTMLTableSection4, index: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertRow(self, index, row) + +proc deleteRow*(self: ptr IHTMLTableSection4, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteRow(self, index) + +proc put_align*(self: ptr IHTMLTableRow, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLTableRow, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_vAlign*(self: ptr IHTMLTableRow, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vAlign(self, v) + +proc get_vAlign*(self: ptr IHTMLTableRow, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vAlign(self, p) + +proc put_bgColor*(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*(self: ptr IHTMLTableRow, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc put_borderColor*(self: ptr IHTMLTableRow, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLTableRow, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_borderColorLight*( + self: ptr IHTMLTableRow, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColorLight(self, v) + +proc get_borderColorLight*( + self: ptr IHTMLTableRow, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColorLight(self, p) + +proc put_borderColorDark*( + self: ptr IHTMLTableRow, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColorDark(self, v) + +proc get_borderColorDark*( + self: ptr IHTMLTableRow, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColorDark(self, p) + +proc get_rowIndex*(self: ptr IHTMLTableRow, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rowIndex(self, p) + +proc get_sectionRowIndex*( + self: ptr IHTMLTableRow, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sectionRowIndex(self, p) + +proc get_cells*( + self: ptr IHTMLTableRow, p: ptr ptr IHTMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cells(self, p) + +proc insertCell*( + self: ptr IHTMLTableRow, index: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertCell(self, index, row) + +proc deleteCell*(self: ptr IHTMLTableRow, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteCell(self, index) + +proc put_height*(self: ptr IHTMLTableRow2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLTableRow2, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_ch*(self: ptr IHTMLTableRow3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableRow3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableRow3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableRow3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc put_ch*(self: ptr IHTMLTableRow4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableRow4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableRow4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableRow4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc insertCell*( + self: ptr IHTMLTableRow4, index: LONG, row: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertCell(self, index, row) + +proc deleteCell*(self: ptr IHTMLTableRow4, index: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteCell(self, index) + +proc get_clientHeight*( + self: ptr IHTMLTableRowMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientHeight(self, p) + +proc get_clientWidth*( + self: ptr IHTMLTableRowMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientWidth(self, p) + +proc get_clientTop*( + self: ptr IHTMLTableRowMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientTop(self, p) + +proc get_clientLeft*( + self: ptr IHTMLTableRowMetrics, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientLeft(self, p) + +proc put_rowSpan*(self: ptr IHTMLTableCell, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rowSpan(self, v) + +proc get_rowSpan*(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rowSpan(self, p) + +proc put_colSpan*(self: ptr IHTMLTableCell, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_colSpan(self, v) + +proc get_colSpan*(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_colSpan(self, p) + +proc put_align*(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLTableCell, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_vAlign*(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vAlign(self, v) + +proc get_vAlign*(self: ptr IHTMLTableCell, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vAlign(self, p) + +proc put_bgColor*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_bgColor(self, v) + +proc get_bgColor*( + self: ptr IHTMLTableCell, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bgColor(self, p) + +proc put_noWrap*( + self: ptr IHTMLTableCell, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noWrap(self, v) + +proc get_noWrap*( + self: ptr IHTMLTableCell, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noWrap(self, p) + +proc put_background*(self: ptr IHTMLTableCell, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_background(self, v) + +proc get_background*( + self: ptr IHTMLTableCell, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_background(self, p) + +proc put_borderColor*( + self: ptr IHTMLTableCell, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLTableCell, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_borderColorLight*( + self: ptr IHTMLTableCell, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColorLight(self, v) + +proc get_borderColorLight*( + self: ptr IHTMLTableCell, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColorLight(self, p) + +proc put_borderColorDark*( + self: ptr IHTMLTableCell, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColorDark(self, v) + +proc get_borderColorDark*( + self: ptr IHTMLTableCell, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColorDark(self, p) + +proc put_width*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLTableCell, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLTableCell, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_cellIndex*(self: ptr IHTMLTableCell, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cellIndex(self, p) + +proc put_abbr*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_abbr(self, v) + +proc get_abbr*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_abbr(self, p) + +proc put_axis*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_axis(self, v) + +proc get_axis*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_axis(self, p) + +proc put_ch*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc put_headers*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_headers(self, v) + +proc get_headers*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_headers(self, p) + +proc put_scope*(self: ptr IHTMLTableCell2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scope(self, v) + +proc get_scope*(self: ptr IHTMLTableCell2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scope(self, p) + +proc put_ch*(self: ptr IHTMLTableCell3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ch(self, v) + +proc get_ch*(self: ptr IHTMLTableCell3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ch(self, p) + +proc put_chOff*(self: ptr IHTMLTableCell3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_chOff(self, v) + +proc get_chOff*(self: ptr IHTMLTableCell3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_chOff(self, p) + +proc put_src*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_htmlFor*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_htmlFor(self, v) + +proc get_htmlFor*( + self: ptr IHTMLScriptElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_htmlFor(self, p) + +proc put_event*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_event(self, v) + +proc get_event*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_event(self, p) + +proc put_text*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, v) + +proc get_text*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc put_defer*( + self: ptr IHTMLScriptElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defer(self, v) + +proc get_defer*( + self: ptr IHTMLScriptElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defer(self, p) + +proc get_readyState*( + self: ptr IHTMLScriptElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onerror*( + self: ptr IHTMLScriptElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLScriptElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_type*(self: ptr IHTMLScriptElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_charset*(self: ptr IHTMLScriptElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, v) + +proc get_charset*( + self: ptr IHTMLScriptElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_src*(self: ptr IHTMLScriptElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLScriptElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc get_usedCharset*( + self: ptr IHTMLScriptElement4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_usedCharset(self, p) + +proc get_object*( + self: ptr IHTMLObjectElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_object(self, p) + +proc get_classid*( + self: ptr IHTMLObjectElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_classid(self, p) + +proc get_data*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc putref_recordset*( + self: ptr IHTMLObjectElement, v: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_recordset(self, v) + +proc get_recordset*( + self: ptr IHTMLObjectElement, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_recordset(self, p) + +proc put_align*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_name*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_codeBase*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_codeBase(self, v) + +proc get_codeBase*( + self: ptr IHTMLObjectElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_codeBase(self, p) + +proc put_codeType*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_codeType(self, v) + +proc get_codeType*( + self: ptr IHTMLObjectElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_codeType(self, p) + +proc put_code*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_code(self, v) + +proc get_code*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_BaseHref*( + self: ptr IHTMLObjectElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BaseHref(self, p) + +proc put_type*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLObjectElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_form*( + self: ptr IHTMLObjectElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_width*(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*( + self: ptr IHTMLObjectElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLObjectElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLObjectElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_readyState*( + self: ptr IHTMLObjectElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLObjectElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLObjectElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc put_onerror*( + self: ptr IHTMLObjectElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLObjectElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_altHtml*(self: ptr IHTMLObjectElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_altHtml(self, v) + +proc get_altHtml*( + self: ptr IHTMLObjectElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altHtml(self, p) + +proc put_vspace*(self: ptr IHTMLObjectElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vspace(self, v) + +proc get_vspace*( + self: ptr IHTMLObjectElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vspace(self, p) + +proc put_hspace*(self: ptr IHTMLObjectElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hspace(self, v) + +proc get_hspace*( + self: ptr IHTMLObjectElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hspace(self, p) + +proc namedRecordset*( + self: ptr IHTMLObjectElement2, + dataMember: BSTR, + hierarchy: ptr VARIANT, + ppRecordset: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.namedRecordset(self, dataMember, hierarchy, ppRecordset) + +proc put_classid*(self: ptr IHTMLObjectElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_classid(self, v) + +proc get_classid*( + self: ptr IHTMLObjectElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_classid(self, p) + +proc put_data*(self: ptr IHTMLObjectElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, v) + +proc get_data*(self: ptr IHTMLObjectElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc put_archive*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_archive(self, v) + +proc get_archive*( + self: ptr IHTMLObjectElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_archive(self, p) + +proc put_alt*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_alt(self, v) + +proc get_alt*(self: ptr IHTMLObjectElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_alt(self, p) + +proc put_declare*( + self: ptr IHTMLObjectElement3, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_declare(self, v) + +proc get_declare*( + self: ptr IHTMLObjectElement3, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_declare(self, p) + +proc put_standby*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_standby(self, v) + +proc get_standby*( + self: ptr IHTMLObjectElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_standby(self, p) + +proc put_border*( + self: ptr IHTMLObjectElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*( + self: ptr IHTMLObjectElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_useMap*(self: ptr IHTMLObjectElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_useMap(self, v) + +proc get_useMap*( + self: ptr IHTMLObjectElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_useMap(self, p) + +proc get_contentDocument*( + self: ptr IHTMLObjectElement4, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentDocument(self, p) + +proc put_codeBase*(self: ptr IHTMLObjectElement4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_codeBase(self, v) + +proc get_codeBase*( + self: ptr IHTMLObjectElement4, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_codeBase(self, p) + +proc put_data*(self: ptr IHTMLObjectElement4, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, v) + +proc get_data*(self: ptr IHTMLObjectElement4, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc put_object*(self: ptr IHTMLObjectElement5, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_object(self, v) + +proc get_object*( + self: ptr IHTMLObjectElement5, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_object(self, p) + +proc put_name*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_value*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_type*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLParamElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_valueType*(self: ptr IHTMLParamElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueType(self, v) + +proc get_valueType*( + self: ptr IHTMLParamElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueType(self, p) + +proc put_name*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_type*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_value*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr IHTMLParamElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_valueType*(self: ptr IHTMLParamElement2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueType(self, v) + +proc get_valueType*( + self: ptr IHTMLParamElement2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueType(self, p) + +proc put_src*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_name*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_border*(self: ptr IHTMLFrameBase, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*(self: ptr IHTMLFrameBase, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_frameBorder*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameBorder(self, v) + +proc get_frameBorder*( + self: ptr IHTMLFrameBase, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameBorder(self, p) + +proc put_frameSpacing*( + self: ptr IHTMLFrameBase, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameSpacing(self, v) + +proc get_frameSpacing*( + self: ptr IHTMLFrameBase, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameSpacing(self, p) + +proc put_marginWidth*( + self: ptr IHTMLFrameBase, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginWidth(self, v) + +proc get_marginWidth*( + self: ptr IHTMLFrameBase, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginWidth(self, p) + +proc put_marginHeight*( + self: ptr IHTMLFrameBase, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginHeight(self, v) + +proc get_marginHeight*( + self: ptr IHTMLFrameBase, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginHeight(self, p) + +proc put_noResize*( + self: ptr IHTMLFrameBase, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_noResize(self, v) + +proc get_noResize*( + self: ptr IHTMLFrameBase, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_noResize(self, p) + +proc put_scrolling*(self: ptr IHTMLFrameBase, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrolling(self, v) + +proc get_scrolling*(self: ptr IHTMLFrameBase, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrolling(self, p) + +proc get_contentWindow*( + self: ptr IHTMLFrameBase2, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentWindow(self, p) + +proc put_onload*(self: ptr IHTMLFrameBase2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLFrameBase2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLFrameBase2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLFrameBase2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc get_readyState*( + self: ptr IHTMLFrameBase2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_allowTransparency*( + self: ptr IHTMLFrameBase2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_allowTransparency(self, v) + +proc get_allowTransparency*( + self: ptr IHTMLFrameBase2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_allowTransparency(self, p) + +proc put_longDesc*(self: ptr IHTMLFrameBase3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_longDesc(self, v) + +proc get_longDesc*(self: ptr IHTMLFrameBase3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_longDesc(self, p) + +proc put_borderColor*( + self: ptr IHTMLFrameElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLFrameElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_height*(self: ptr IHTMLFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLFrameElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_width*(self: ptr IHTMLFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*( + self: ptr IHTMLFrameElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_contentDocument*( + self: ptr IHTMLFrameElement3, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentDocument(self, p) + +proc put_src*(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_longDesc*(self: ptr IHTMLFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_longDesc(self, v) + +proc get_longDesc*( + self: ptr IHTMLFrameElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_longDesc(self, p) + +proc put_frameBorder*( + self: ptr IHTMLFrameElement3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameBorder(self, v) + +proc get_frameBorder*( + self: ptr IHTMLFrameElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameBorder(self, p) + +proc put_vspace*(self: ptr IHTMLIFrameElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_vspace(self, v) + +proc get_vspace*( + self: ptr IHTMLIFrameElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_vspace(self, p) + +proc put_hspace*(self: ptr IHTMLIFrameElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_hspace(self, v) + +proc get_hspace*( + self: ptr IHTMLIFrameElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hspace(self, p) + +proc put_align*(self: ptr IHTMLIFrameElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLIFrameElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_height*( + self: ptr IHTMLIFrameElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLIFrameElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_width*(self: ptr IHTMLIFrameElement2, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*( + self: ptr IHTMLIFrameElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_contentDocument*( + self: ptr IHTMLIFrameElement3, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentDocument(self, p) + +proc put_src*(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLIFrameElement3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_longDesc*(self: ptr IHTMLIFrameElement3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_longDesc(self, v) + +proc get_longDesc*( + self: ptr IHTMLIFrameElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_longDesc(self, p) + +proc put_frameBorder*( + self: ptr IHTMLIFrameElement3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameBorder(self, v) + +proc get_frameBorder*( + self: ptr IHTMLIFrameElement3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameBorder(self, p) + +proc put_align*(self: ptr IHTMLDivPosition, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLDivPosition, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_align*(self: ptr IHTMLFieldSetElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*( + self: ptr IHTMLFieldSetElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc get_form*( + self: ptr IHTMLFieldSetElement2, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_align*(self: ptr IHTMLLegendElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLLegendElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc get_form*( + self: ptr IHTMLLegendElement2, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc put_align*(self: ptr IHTMLSpanFlow, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*(self: ptr IHTMLSpanFlow, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_rows*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_rows(self, v) + +proc get_rows*( + self: ptr IHTMLFrameSetElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rows(self, p) + +proc put_cols*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cols(self, v) + +proc get_cols*( + self: ptr IHTMLFrameSetElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cols(self, p) + +proc put_border*( + self: ptr IHTMLFrameSetElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*( + self: ptr IHTMLFrameSetElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_borderColor*( + self: ptr IHTMLFrameSetElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderColor(self, v) + +proc get_borderColor*( + self: ptr IHTMLFrameSetElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderColor(self, p) + +proc put_frameBorder*( + self: ptr IHTMLFrameSetElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameBorder(self, v) + +proc get_frameBorder*( + self: ptr IHTMLFrameSetElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameBorder(self, p) + +proc put_frameSpacing*( + self: ptr IHTMLFrameSetElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameSpacing(self, v) + +proc get_frameSpacing*( + self: ptr IHTMLFrameSetElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameSpacing(self, p) + +proc put_name*(self: ptr IHTMLFrameSetElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_name(self, v) + +proc get_name*( + self: ptr IHTMLFrameSetElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc put_onload*( + self: ptr IHTMLFrameSetElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLFrameSetElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onunload*( + self: ptr IHTMLFrameSetElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onunload(self, v) + +proc get_onunload*( + self: ptr IHTMLFrameSetElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onunload(self, p) + +proc put_onbeforeunload*( + self: ptr IHTMLFrameSetElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeunload(self, v) + +proc get_onbeforeunload*( + self: ptr IHTMLFrameSetElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeunload(self, p) + +proc put_onbeforeprint*( + self: ptr IHTMLFrameSetElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onbeforeprint(self, v) + +proc get_onbeforeprint*( + self: ptr IHTMLFrameSetElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onbeforeprint(self, p) + +proc put_onafterprint*( + self: ptr IHTMLFrameSetElement2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onafterprint(self, v) + +proc get_onafterprint*( + self: ptr IHTMLFrameSetElement2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onafterprint(self, p) + +proc put_onhashchange*( + self: ptr IHTMLFrameSetElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onhashchange(self, v) + +proc get_onhashchange*( + self: ptr IHTMLFrameSetElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onhashchange(self, p) + +proc put_onmessage*( + self: ptr IHTMLFrameSetElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onmessage(self, v) + +proc get_onmessage*( + self: ptr IHTMLFrameSetElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onmessage(self, p) + +proc put_onoffline*( + self: ptr IHTMLFrameSetElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onoffline(self, v) + +proc get_onoffline*( + self: ptr IHTMLFrameSetElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onoffline(self, p) + +proc put_ononline*( + self: ptr IHTMLFrameSetElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ononline(self, v) + +proc get_ononline*( + self: ptr IHTMLFrameSetElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ononline(self, p) + +proc put_onstorage*( + self: ptr IHTMLFrameSetElement3, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onstorage(self, v) + +proc get_onstorage*( + self: ptr IHTMLFrameSetElement3, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onstorage(self, p) + +proc put_src*(self: ptr IHTMLBGsound, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLBGsound, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_loop*(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_loop(self, v) + +proc get_loop*(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loop(self, p) + +proc put_volume*(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_volume(self, v) + +proc get_volume*(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_volume(self, p) + +proc put_balance*(self: ptr IHTMLBGsound, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_balance(self, v) + +proc get_balance*(self: ptr IHTMLBGsound, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_balance(self, p) + +proc get_length*( + self: ptr IHTMLFontNamesCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLFontNamesCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLFontNamesCollection, index: LONG, pBstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, pBstr) + +proc get_length*( + self: ptr IHTMLFontSizesCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLFontSizesCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc get_forFont*( + self: ptr IHTMLFontSizesCollection, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_forFont(self, p) + +proc item*( + self: ptr IHTMLFontSizesCollection, index: LONG, plSize: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, plSize) + +proc get_document*( + self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLDocument2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_document(self, p) + +proc get_fonts*( + self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLFontNamesCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fonts(self, p) + +proc put_execArg*( + self: ptr IHTMLOptionsHolder, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_execArg(self, v) + +proc get_execArg*( + self: ptr IHTMLOptionsHolder, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_execArg(self, p) + +proc put_errorLine*(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_errorLine(self, v) + +proc get_errorLine*( + self: ptr IHTMLOptionsHolder, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_errorLine(self, p) + +proc put_errorCharacter*( + self: ptr IHTMLOptionsHolder, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_errorCharacter(self, v) + +proc get_errorCharacter*( + self: ptr IHTMLOptionsHolder, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_errorCharacter(self, p) + +proc put_errorCode*(self: ptr IHTMLOptionsHolder, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_errorCode(self, v) + +proc get_errorCode*( + self: ptr IHTMLOptionsHolder, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_errorCode(self, p) + +proc put_errorMessage*( + self: ptr IHTMLOptionsHolder, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_errorMessage(self, v) + +proc get_errorMessage*( + self: ptr IHTMLOptionsHolder, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_errorMessage(self, p) + +proc put_errorDebug*( + self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_errorDebug(self, v) + +proc get_errorDebug*( + self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_errorDebug(self, p) + +proc get_unsecuredWindowOfDocument*( + self: ptr IHTMLOptionsHolder, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unsecuredWindowOfDocument(self, p) + +proc put_findText*(self: ptr IHTMLOptionsHolder, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_findText(self, v) + +proc get_findText*( + self: ptr IHTMLOptionsHolder, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_findText(self, p) + +proc put_anythingAfterFrameset*( + self: ptr IHTMLOptionsHolder, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_anythingAfterFrameset(self, v) + +proc get_anythingAfterFrameset*( + self: ptr IHTMLOptionsHolder, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_anythingAfterFrameset(self, p) + +proc sizes*( + self: ptr IHTMLOptionsHolder, + fontName: BSTR, + pSizesCollection: ptr ptr IHTMLFontSizesCollection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.sizes(self, fontName, pSizesCollection) + +proc openfiledlg*( + self: ptr IHTMLOptionsHolder, + initFile: VARIANT, + initDir: VARIANT, + filter: VARIANT, + title: VARIANT, + pathName: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.openfiledlg(self, initFile, initDir, filter, title, pathName) + +proc savefiledlg*( + self: ptr IHTMLOptionsHolder, + initFile: VARIANT, + initDir: VARIANT, + filter: VARIANT, + title: VARIANT, + pathName: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.savefiledlg(self, initFile, initDir, filter, title, pathName) + +proc choosecolordlg*( + self: ptr IHTMLOptionsHolder, initColor: VARIANT, rgbColor: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.choosecolordlg(self, initColor, rgbColor) + +proc showSecurityInfo*(self: ptr IHTMLOptionsHolder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.showSecurityInfo(self) + +proc isApartmentModel*( + self: ptr IHTMLOptionsHolder, + `object`: ptr IHTMLObjectElement, + fApartment: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isApartmentModel(self, `object`, fApartment) + +proc getCharset*( + self: ptr IHTMLOptionsHolder, fontName: BSTR, charset: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getCharset(self, fontName, charset) + +proc get_secureConnectionInfo*( + self: ptr IHTMLOptionsHolder, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_secureConnectionInfo(self, p) + +proc put_type*(self: ptr IHTMLStyleElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_readyState*( + self: ptr IHTMLStyleElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLStyleElement, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLStyleElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc put_onload*(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLStyleElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc put_onerror*(self: ptr IHTMLStyleElement, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLStyleElement, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc get_styleSheet*( + self: ptr IHTMLStyleElement, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_styleSheet(self, p) + +proc put_disabled*( + self: ptr IHTMLStyleElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_disabled(self, v) + +proc get_disabled*( + self: ptr IHTMLStyleElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_disabled(self, p) + +proc put_media*(self: ptr IHTMLStyleElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*(self: ptr IHTMLStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc get_sheet*( + self: ptr IHTMLStyleElement2, p: ptr ptr IHTMLStyleSheet +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sheet(self, p) + +proc put_fontsrc*(self: ptr IHTMLStyleFontFace, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fontsrc(self, v) + +proc get_fontsrc*( + self: ptr IHTMLStyleFontFace, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontsrc(self, p) + +proc get_style*( + self: ptr IHTMLStyleFontFace2, p: ptr ptr IHTMLRuleStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_style(self, p) + +proc get_responseText*( + self: ptr IHTMLXDomainRequest, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseText(self, p) + +proc put_timeout*(self: ptr IHTMLXDomainRequest, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_timeout(self, v) + +proc get_timeout*( + self: ptr IHTMLXDomainRequest, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_timeout(self, p) + +proc get_contentType*( + self: ptr IHTMLXDomainRequest, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentType(self, p) + +proc put_onprogress*( + self: ptr IHTMLXDomainRequest, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onprogress(self, v) + +proc get_onprogress*( + self: ptr IHTMLXDomainRequest, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onprogress(self, p) + +proc put_onerror*( + self: ptr IHTMLXDomainRequest, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLXDomainRequest, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_ontimeout*( + self: ptr IHTMLXDomainRequest, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ontimeout(self, v) + +proc get_ontimeout*( + self: ptr IHTMLXDomainRequest, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ontimeout(self, p) + +proc put_onload*( + self: ptr IHTMLXDomainRequest, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onload(self, v) + +proc get_onload*( + self: ptr IHTMLXDomainRequest, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onload(self, p) + +proc abort*(self: ptr IHTMLXDomainRequest): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.abort(self) + +proc open*( + self: ptr IHTMLXDomainRequest, bstrMethod: BSTR, bstrUrl: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.open(self, bstrMethod, bstrUrl) + +proc send*( + self: ptr IHTMLXDomainRequest, varBody: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.send(self, varBody) + +proc create*( + self: ptr IHTMLXDomainRequestFactory, a: ptr ptr IHTMLXDomainRequest +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, a) + +proc get_length*(self: ptr IHTMLStorage, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_remainingSpace*( + self: ptr IHTMLStorage, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_remainingSpace(self, p) + +proc key*( + self: ptr IHTMLStorage, lIndex: LONG, a: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.key(self, lIndex, a) + +proc getItem*( + self: ptr IHTMLStorage, bstrKey: BSTR, a: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, bstrKey, a) + +proc setItem*( + self: ptr IHTMLStorage, bstrKey: BSTR, bstrValue: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setItem(self, bstrKey, bstrValue) + +proc removeItem*(self: ptr IHTMLStorage, bstrKey: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, bstrKey) + +proc clear*(self: ptr IHTMLStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc setItem*( + self: ptr IHTMLStorage2, bstrKey: BSTR, bstrValue: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setItem(self, bstrKey, bstrValue) + +proc addEventListener*( + self: ptr IEventTarget, + `type`: BSTR, + listener: ptr IDispatch, + useCapture: VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addEventListener(self, `type`, listener, useCapture) + +proc removeEventListener*( + self: ptr IEventTarget, + `type`: BSTR, + listener: ptr IDispatch, + useCapture: VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeEventListener(self, `type`, listener, useCapture) + +proc dispatchEvent*( + self: ptr IEventTarget, evt: ptr IDOMEvent, pfResult: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.dispatchEvent(self, evt, pfResult) + +proc get_bubbles*( + self: ptr IDOMEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bubbles(self, p) + +proc get_cancelable*( + self: ptr IDOMEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cancelable(self, p) + +proc get_currentTarget*( + self: ptr IDOMEvent, p: ptr ptr IEventTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentTarget(self, p) + +proc get_defaultPrevented*( + self: ptr IDOMEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultPrevented(self, p) + +proc get_eventPhase*(self: ptr IDOMEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_eventPhase(self, p) + +proc get_target*( + self: ptr IDOMEvent, p: ptr ptr IEventTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc get_timeStamp*(self: ptr IDOMEvent, p: ptr ULONGLONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_timeStamp(self, p) + +proc get_type*(self: ptr IDOMEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc initEvent*( + self: ptr IDOMEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initEvent(self, eventType, canBubble, cancelable) + +proc preventDefault*(self: ptr IDOMEvent): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.preventDefault(self) + +proc stopPropagation*(self: ptr IDOMEvent): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stopPropagation(self) + +proc stopImmediatePropagation*(self: ptr IDOMEvent): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stopImmediatePropagation(self) + +proc get_isTrusted*( + self: ptr IDOMEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isTrusted(self, p) + +proc put_cancelBubble*( + self: ptr IDOMEvent, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_cancelBubble(self, v) + +proc get_cancelBubble*( + self: ptr IDOMEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cancelBubble(self, p) + +proc get_srcElement*( + self: ptr IDOMEvent, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcElement(self, p) + +proc get_view*( + self: ptr IDOMUIEvent, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_view(self, p) + +proc get_detail*(self: ptr IDOMUIEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_detail(self, p) + +proc initUIEvent*( + self: ptr IDOMUIEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + view: ptr IHTMLWindow2, + detail: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initUIEvent(self, eventType, canBubble, cancelable, view, detail) + +proc get_screenX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenX(self, p) + +proc get_screenY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenY(self, p) + +proc get_clientX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientX(self, p) + +proc get_clientY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clientY(self, p) + +proc get_ctrlKey*( + self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ctrlKey(self, p) + +proc get_shiftKey*( + self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shiftKey(self, p) + +proc get_altKey*( + self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altKey(self, p) + +proc get_metaKey*( + self: ptr IDOMMouseEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_metaKey(self, p) + +proc get_button*(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_button(self, p) + +proc get_relatedTarget*( + self: ptr IDOMMouseEvent, p: ptr ptr IEventTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_relatedTarget(self, p) + +proc initMouseEvent*( + self: ptr IDOMMouseEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + ctrlKeyArg: VARIANT_BOOL, + altKeyArg: VARIANT_BOOL, + shiftKeyArg: VARIANT_BOOL, + metaKeyArg: VARIANT_BOOL, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMouseEvent( + self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, + screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, + metaKeyArg, buttonArg, relatedTargetArg, + ) + +proc getModifierState*( + self: ptr IDOMMouseEvent, keyArg: BSTR, activated: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getModifierState(self, keyArg, activated) + +proc get_buttons*(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_buttons(self, p) + +proc get_fromElement*( + self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fromElement(self, p) + +proc get_toElement*( + self: ptr IDOMMouseEvent, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_toElement(self, p) + +proc get_x*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc get_y*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc get_offsetX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetX(self, p) + +proc get_offsetY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offsetY(self, p) + +proc get_pageX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageX(self, p) + +proc get_pageY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageY(self, p) + +proc get_layerX*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layerX(self, p) + +proc get_layerY*(self: ptr IDOMMouseEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_layerY(self, p) + +proc get_which*(self: ptr IDOMMouseEvent, p: ptr USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_which(self, p) + +proc get_dataTransfer*( + self: ptr IDOMDragEvent, p: ptr ptr IHTMLDataTransfer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataTransfer(self, p) + +proc initDragEvent*( + self: ptr IDOMDragEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + ctrlKeyArg: VARIANT_BOOL, + altKeyArg: VARIANT_BOOL, + shiftKeyArg: VARIANT_BOOL, + metaKeyArg: VARIANT_BOOL, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + dataTransferArg: ptr IHTMLDataTransfer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initDragEvent( + self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, + screenYArg, clientXArg, clientYArg, ctrlKeyArg, altKeyArg, shiftKeyArg, + metaKeyArg, buttonArg, relatedTargetArg, dataTransferArg, + ) + +proc get_wheelDelta*( + self: ptr IDOMMouseWheelEvent, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wheelDelta(self, p) + +proc initMouseWheelEvent*( + self: ptr IDOMMouseWheelEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + modifiersListArg: BSTR, + wheelDeltaArg: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMouseWheelEvent( + self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, + screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg, + wheelDeltaArg, + ) + +proc get_deltaX*(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_deltaX(self, p) + +proc get_deltaY*(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_deltaY(self, p) + +proc get_deltaZ*(self: ptr IDOMWheelEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_deltaZ(self, p) + +proc get_deltaMode*( + self: ptr IDOMWheelEvent, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_deltaMode(self, p) + +proc initWheelEvent*( + self: ptr IDOMWheelEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + screenXArg: LONG, + screenYArg: LONG, + clientXArg: LONG, + clientYArg: LONG, + buttonArg: USHORT, + relatedTargetArg: ptr IEventTarget, + modifiersListArg: BSTR, + deltaX: LONG, + deltaY: LONG, + deltaZ: LONG, + deltaMode: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initWheelEvent( + self, eventType, canBubble, cancelable, viewArg, detailArg, screenXArg, + screenYArg, clientXArg, clientYArg, buttonArg, relatedTargetArg, modifiersListArg, + deltaX, deltaY, deltaZ, deltaMode, + ) + +proc get_data*(self: ptr IDOMTextEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc get_inputMethod*( + self: ptr IDOMTextEvent, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_inputMethod(self, p) + +proc initTextEvent*( + self: ptr IDOMTextEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + dataArg: BSTR, + inputMethod: ULONG, + locale: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initTextEvent( + self, eventType, canBubble, cancelable, viewArg, dataArg, inputMethod, locale + ) + +proc get_locale*(self: ptr IDOMTextEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_locale(self, p) + +proc get_key*(self: ptr IDOMKeyboardEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_key(self, p) + +proc get_location*( + self: ptr IDOMKeyboardEvent, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_location(self, p) + +proc get_ctrlKey*( + self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ctrlKey(self, p) + +proc get_shiftKey*( + self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shiftKey(self, p) + +proc get_altKey*( + self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altKey(self, p) + +proc get_metaKey*( + self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_metaKey(self, p) + +proc get_repeat*( + self: ptr IDOMKeyboardEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_repeat(self, p) + +proc getModifierState*( + self: ptr IDOMKeyboardEvent, keyArg: BSTR, state: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getModifierState(self, keyArg, state) + +proc initKeyboardEvent*( + self: ptr IDOMKeyboardEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + keyArg: BSTR, + locationArg: ULONG, + modifiersListArg: BSTR, + repeat: VARIANT_BOOL, + locale: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initKeyboardEvent( + self, eventType, canBubble, cancelable, viewArg, keyArg, locationArg, + modifiersListArg, repeat, locale, + ) + +proc get_keyCode*( + self: ptr IDOMKeyboardEvent, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_keyCode(self, p) + +proc get_charCode*( + self: ptr IDOMKeyboardEvent, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charCode(self, p) + +proc get_which*(self: ptr IDOMKeyboardEvent, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_which(self, p) + +proc get_ie9_char*( + self: ptr IDOMKeyboardEvent, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ie9_char(self, p) + +proc get_locale*(self: ptr IDOMKeyboardEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_locale(self, p) + +proc get_data*( + self: ptr IDOMCompositionEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc initCompositionEvent*( + self: ptr IDOMCompositionEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + data: BSTR, + locale: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initCompositionEvent( + self, eventType, canBubble, cancelable, viewArg, data, locale + ) + +proc get_locale*( + self: ptr IDOMCompositionEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_locale(self, p) + +proc get_relatedNode*( + self: ptr IDOMMutationEvent, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_relatedNode(self, p) + +proc get_prevValue*( + self: ptr IDOMMutationEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_prevValue(self, p) + +proc get_newValue*( + self: ptr IDOMMutationEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newValue(self, p) + +proc get_attrName*( + self: ptr IDOMMutationEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attrName(self, p) + +proc get_attrChange*( + self: ptr IDOMMutationEvent, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attrChange(self, p) + +proc initMutationEvent*( + self: ptr IDOMMutationEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + relatedNodeArg: ptr IDispatch, + prevValueArg: BSTR, + newValueArg: BSTR, + attrNameArg: BSTR, + attrChangeArg: USHORT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMutationEvent( + self, eventType, canBubble, cancelable, relatedNodeArg, prevValueArg, newValueArg, + attrNameArg, attrChangeArg, + ) + +proc put_returnValue*( + self: ptr IDOMBeforeUnloadEvent, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_returnValue(self, v) + +proc get_returnValue*( + self: ptr IDOMBeforeUnloadEvent, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_returnValue(self, p) + +proc get_relatedTarget*( + self: ptr IDOMFocusEvent, p: ptr ptr IEventTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_relatedTarget(self, p) + +proc initFocusEvent*( + self: ptr IDOMFocusEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + view: ptr IHTMLWindow2, + detail: LONG, + relatedTargetArg: ptr IEventTarget, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initFocusEvent( + self, eventType, canBubble, cancelable, view, detail, relatedTargetArg + ) + +proc get_detail*( + self: ptr IDOMCustomEvent, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_detail(self, p) + +proc initCustomEvent*( + self: ptr IDOMCustomEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + detail: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initCustomEvent(self, eventType, canBubble, cancelable, detail) + +proc addColorStop*( + self: ptr ICanvasGradient, offset: float32, color: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addColorStop(self, offset, color) + +proc get_width*( + self: ptr ICanvasTextMetrics, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_width*(self: ptr ICanvasImageData, p: ptr ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_height*(self: ptr ICanvasImageData, p: ptr ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_data*(self: ptr ICanvasImageData, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc get_length*( + self: ptr ICanvasPixelArray, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_canvas*( + self: ptr ICanvasRenderingContext2D, p: ptr ptr IHTMLCanvasElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_canvas(self, p) + +proc restore*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.restore(self) + +proc save*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.save(self) + +proc rotate*( + self: ptr ICanvasRenderingContext2D, angle: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.rotate(self, angle) + +proc scale*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scale(self, x, y) + +proc setTransform*( + self: ptr ICanvasRenderingContext2D, + m11: float32, + m12: float32, + m21: float32, + m22: float32, + dx: float32, + dy: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setTransform(self, m11, m12, m21, m22, dx, dy) + +proc transform*( + self: ptr ICanvasRenderingContext2D, + m11: float32, + m12: float32, + m21: float32, + m22: float32, + dx: float32, + dy: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.transform(self, m11, m12, m21, m22, dx, dy) + +proc translate*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.translate(self, x, y) + +proc put_globalAlpha*( + self: ptr ICanvasRenderingContext2D, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_globalAlpha(self, v) + +proc get_globalAlpha*( + self: ptr ICanvasRenderingContext2D, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_globalAlpha(self, p) + +proc put_globalCompositeOperation*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_globalCompositeOperation(self, v) + +proc get_globalCompositeOperation*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_globalCompositeOperation(self, p) + +proc put_fillStyle*( + self: ptr ICanvasRenderingContext2D, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_fillStyle(self, v) + +proc get_fillStyle*( + self: ptr ICanvasRenderingContext2D, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fillStyle(self, p) + +proc put_strokeStyle*( + self: ptr ICanvasRenderingContext2D, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_strokeStyle(self, v) + +proc get_strokeStyle*( + self: ptr ICanvasRenderingContext2D, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strokeStyle(self, p) + +proc createLinearGradient*( + self: ptr ICanvasRenderingContext2D, + x0: float32, + y0: float32, + x1: float32, + y1: float32, + ppCanvasGradient: ptr ptr ICanvasGradient, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createLinearGradient(self, x0, y0, x1, y1, ppCanvasGradient) + +proc createRadialGradient*( + self: ptr ICanvasRenderingContext2D, + x0: float32, + y0: float32, + r0: float32, + x1: float32, + y1: float32, + r1: float32, + ppCanvasGradient: ptr ptr ICanvasGradient, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createRadialGradient(self, x0, y0, r0, x1, y1, r1, ppCanvasGradient) + +proc createPattern*( + self: ptr ICanvasRenderingContext2D, + image: ptr IDispatch, + repetition: VARIANT, + ppCanvasPattern: ptr ptr ICanvasPattern, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createPattern(self, image, repetition, ppCanvasPattern) + +proc put_lineCap*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineCap(self, v) + +proc get_lineCap*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineCap(self, p) + +proc put_lineJoin*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineJoin(self, v) + +proc get_lineJoin*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineJoin(self, p) + +proc put_lineWidth*( + self: ptr ICanvasRenderingContext2D, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_lineWidth(self, v) + +proc get_lineWidth*( + self: ptr ICanvasRenderingContext2D, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineWidth(self, p) + +proc put_miterLimit*( + self: ptr ICanvasRenderingContext2D, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_miterLimit(self, v) + +proc get_miterLimit*( + self: ptr ICanvasRenderingContext2D, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_miterLimit(self, p) + +proc put_shadowBlur*( + self: ptr ICanvasRenderingContext2D, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shadowBlur(self, v) + +proc get_shadowBlur*( + self: ptr ICanvasRenderingContext2D, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shadowBlur(self, p) + +proc put_shadowColor*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shadowColor(self, v) + +proc get_shadowColor*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shadowColor(self, p) + +proc put_shadowOffsetX*( + self: ptr ICanvasRenderingContext2D, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shadowOffsetX(self, v) + +proc get_shadowOffsetX*( + self: ptr ICanvasRenderingContext2D, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shadowOffsetX(self, p) + +proc put_shadowOffsetY*( + self: ptr ICanvasRenderingContext2D, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_shadowOffsetY(self, v) + +proc get_shadowOffsetY*( + self: ptr ICanvasRenderingContext2D, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_shadowOffsetY(self, p) + +proc clearRect*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearRect(self, x, y, w, h) + +proc fillRect*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fillRect(self, x, y, w, h) + +proc strokeRect*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.strokeRect(self, x, y, w, h) + +proc arc*( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + radius: float32, + startAngle: float32, + endAngle: float32, + anticlockwise: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.arc(self, x, y, radius, startAngle, endAngle, anticlockwise) + +proc arcTo*( + self: ptr ICanvasRenderingContext2D, + x1: float32, + y1: float32, + x2: float32, + y2: float32, + radius: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.arcTo(self, x1, y1, x2, y2, radius) + +proc mBeginPath*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.beginPath(self) + +proc bezierCurveTo*( + self: ptr ICanvasRenderingContext2D, + cp1x: float32, + cp1y: float32, + cp2x: float32, + cp2y: float32, + x: float32, + y: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.bezierCurveTo(self, cp1x, cp1y, cp2x, cp2y, x, y) + +proc clip*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clip(self) + +proc closePath*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.closePath(self) + +proc fill*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fill(self) + +proc lineTo*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.lineTo(self, x, y) + +proc moveTo*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveTo(self, x, y) + +proc quadraticCurveTo*( + self: ptr ICanvasRenderingContext2D, + cpx: float32, + cpy: float32, + x: float32, + y: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.quadraticCurveTo(self, cpx, cpy, x, y) + +proc rect*( + self: ptr ICanvasRenderingContext2D, x: float32, y: float32, w: float32, h: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.rect(self, x, y, w, h) + +proc stroke*(self: ptr ICanvasRenderingContext2D): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stroke(self) + +proc isPointInPath*( + self: ptr ICanvasRenderingContext2D, + x: float32, + y: float32, + pResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isPointInPath(self, x, y, pResult) + +proc put_font*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_font(self, v) + +proc get_font*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_font(self, p) + +proc put_textAlign*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textAlign(self, v) + +proc get_textAlign*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textAlign(self, p) + +proc put_textBaseline*( + self: ptr ICanvasRenderingContext2D, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_textBaseline(self, v) + +proc get_textBaseline*( + self: ptr ICanvasRenderingContext2D, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textBaseline(self, p) + +proc fillText*( + self: ptr ICanvasRenderingContext2D, + text: BSTR, + x: float32, + y: float32, + maxWidth: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.fillText(self, text, x, y, maxWidth) + +proc measureText*( + self: ptr ICanvasRenderingContext2D, + text: BSTR, + ppCanvasTextMetrics: ptr ptr ICanvasTextMetrics, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.measureText(self, text, ppCanvasTextMetrics) + +proc strokeText*( + self: ptr ICanvasRenderingContext2D, + text: BSTR, + x: float32, + y: float32, + maxWidth: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.strokeText(self, text, x, y, maxWidth) + +proc drawImage*( + self: ptr ICanvasRenderingContext2D, + pSrc: ptr IDispatch, + a1: VARIANT, + a2: VARIANT, + a3: VARIANT, + a4: VARIANT, + a5: VARIANT, + a6: VARIANT, + a7: VARIANT, + a8: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.drawImage(self, pSrc, a1, a2, a3, a4, a5, a6, a7, a8) + +proc createImageData*( + self: ptr ICanvasRenderingContext2D, + a1: VARIANT, + a2: VARIANT, + ppCanvasImageData: ptr ptr ICanvasImageData, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createImageData(self, a1, a2, ppCanvasImageData) + +proc getImageData*( + self: ptr ICanvasRenderingContext2D, + sx: float32, + sy: float32, + sw: float32, + sh: float32, + ppCanvasImageData: ptr ptr ICanvasImageData, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getImageData(self, sx, sy, sw, sh, ppCanvasImageData) + +proc putImageData*( + self: ptr ICanvasRenderingContext2D, + imagedata: ptr ICanvasImageData, + dx: float32, + dy: float32, + dirtyX: VARIANT, + dirtyY: VARIANT, + dirtyWidth: VARIANT, + dirtyHeight: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putImageData( + self, imagedata, dx, dy, dirtyX, dirtyY, dirtyWidth, dirtyHeight + ) + +proc put_width*(self: ptr IHTMLCanvasElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLCanvasElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLCanvasElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*( + self: ptr IHTMLCanvasElement, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc getContext*( + self: ptr IHTMLCanvasElement, + contextId: BSTR, + ppContext: ptr ptr ICanvasRenderingContext2D, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getContext(self, contextId, ppContext) + +proc toDataURL*( + self: ptr IHTMLCanvasElement, `type`: BSTR, jpegquality: VARIANT, pUrl: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toDataURL(self, `type`, jpegquality, pUrl) + +proc get_lengthComputable*( + self: ptr IDOMProgressEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lengthComputable(self, p) + +proc get_loaded*( + self: ptr IDOMProgressEvent, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loaded(self, p) + +proc get_total*( + self: ptr IDOMProgressEvent, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_total(self, p) + +proc initProgressEvent*( + self: ptr IDOMProgressEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + lengthComputableArg: VARIANT_BOOL, + loadedArg: ULONGLONG, + totalArg: ULONGLONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initProgressEvent( + self, eventType, canBubble, cancelable, lengthComputableArg, loadedArg, totalArg + ) + +proc get_data*(self: ptr IDOMMessageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc get_origin*(self: ptr IDOMMessageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_origin(self, p) + +proc get_source*( + self: ptr IDOMMessageEvent, p: ptr ptr IHTMLWindow2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_source(self, p) + +proc initMessageEvent*( + self: ptr IDOMMessageEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + data: BSTR, + origin: BSTR, + lastEventId: BSTR, + source: ptr IHTMLWindow2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMessageEvent( + self, eventType, canBubble, cancelable, data, origin, lastEventId, source + ) + +proc get_buttonID*( + self: ptr IDOMSiteModeEvent, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_buttonID(self, p) + +proc get_actionURL*( + self: ptr IDOMSiteModeEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_actionURL(self, p) + +proc get_key*(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_key(self, p) + +proc get_oldValue*( + self: ptr IDOMStorageEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oldValue(self, p) + +proc get_newValue*( + self: ptr IDOMStorageEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newValue(self, p) + +proc get_url*(self: ptr IDOMStorageEvent, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_url(self, p) + +proc get_storageArea*( + self: ptr IDOMStorageEvent, p: ptr ptr IHTMLStorage +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_storageArea(self, p) + +proc initStorageEvent*( + self: ptr IDOMStorageEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + keyArg: BSTR, + oldValueArg: BSTR, + newValueArg: BSTR, + urlArg: BSTR, + storageAreaArg: ptr IHTMLStorage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initStorageEvent( + self, eventType, canBubble, cancelable, keyArg, oldValueArg, newValueArg, urlArg, + storageAreaArg, + ) + +proc get_readyState*( + self: ptr IHTMLXMLHttpRequest, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc get_responseBody*( + self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseBody(self, p) + +proc get_responseText*( + self: ptr IHTMLXMLHttpRequest, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseText(self, p) + +proc get_responseXML*( + self: ptr IHTMLXMLHttpRequest, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseXML(self, p) + +proc get_status*( + self: ptr IHTMLXMLHttpRequest, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc get_statusText*( + self: ptr IHTMLXMLHttpRequest, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_statusText(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLXMLHttpRequest, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLXMLHttpRequest, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc abort*(self: ptr IHTMLXMLHttpRequest): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.abort(self) + +proc open*( + self: ptr IHTMLXMLHttpRequest, + bstrMethod: BSTR, + bstrUrl: BSTR, + varAsync: VARIANT, + varUser: VARIANT, + varPassword: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.open(self, bstrMethod, bstrUrl, varAsync, varUser, varPassword) + +proc send*( + self: ptr IHTMLXMLHttpRequest, varBody: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.send(self, varBody) + +proc getAllResponseHeaders*( + self: ptr IHTMLXMLHttpRequest, a: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAllResponseHeaders(self, a) + +proc getResponseHeader*( + self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, a: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getResponseHeader(self, bstrHeader, a) + +proc setRequestHeader*( + self: ptr IHTMLXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setRequestHeader(self, bstrHeader, bstrValue) + +proc put_timeout*(self: ptr IHTMLXMLHttpRequest2, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_timeout(self, v) + +proc get_timeout*( + self: ptr IHTMLXMLHttpRequest2, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_timeout(self, p) + +proc put_ontimeout*( + self: ptr IHTMLXMLHttpRequest2, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ontimeout(self, v) + +proc get_ontimeout*( + self: ptr IHTMLXMLHttpRequest2, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ontimeout(self, p) + +proc create*( + self: ptr IHTMLXMLHttpRequestFactory, a: ptr ptr IHTMLXMLHttpRequest +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, a) + +proc put_unitType*(self: ptr ISVGAngle, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_unitType(self, v) + +proc get_unitType*(self: ptr ISVGAngle, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unitType(self, p) + +proc put_value*(self: ptr ISVGAngle, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr ISVGAngle, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_valueInSpecifiedUnits*( + self: ptr ISVGAngle, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueInSpecifiedUnits(self, v) + +proc get_valueInSpecifiedUnits*( + self: ptr ISVGAngle, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueInSpecifiedUnits(self, p) + +proc put_valueAsString*(self: ptr ISVGAngle, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueAsString(self, v) + +proc get_valueAsString*(self: ptr ISVGAngle, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueAsString(self, p) + +proc newValueSpecifiedUnits*( + self: ptr ISVGAngle, unitType: int16, valueInSpecifiedUnits: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.newValueSpecifiedUnits(self, unitType, valueInSpecifiedUnits) + +proc convertToSpecifiedUnits*( + self: ptr ISVGAngle, unitType: int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.convertToSpecifiedUnits(self, unitType) + +proc get_className*( + self: ptr ISVGStylable, p: ptr ptr ISVGAnimatedString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_className(self, p) + +proc get_nearestViewportElement*( + self: ptr ISVGLocatable, p: ptr ptr ISVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nearestViewportElement(self, p) + +proc get_farthestViewportElement*( + self: ptr ISVGLocatable, p: ptr ptr ISVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_farthestViewportElement(self, p) + +proc getBBox*( + self: ptr ISVGLocatable, ppResult: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getBBox(self, ppResult) + +proc getCTM*( + self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getCTM(self, ppResult) + +proc getScreenCTM*( + self: ptr ISVGLocatable, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getScreenCTM(self, ppResult) + +proc getTransformToElement*( + self: ptr ISVGLocatable, pElement: ptr ISVGElement, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getTransformToElement(self, pElement, ppResult) + +proc get_transform*( + self: ptr ISVGTransformable, p: ptr ptr ISVGAnimatedTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_transform(self, p) + +proc get_requiredFeatures*( + self: ptr ISVGTests, p: ptr ptr ISVGStringList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_requiredFeatures(self, p) + +proc get_requiredExtensions*( + self: ptr ISVGTests, p: ptr ptr ISVGStringList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_requiredExtensions(self, p) + +proc get_systemLanguage*( + self: ptr ISVGTests, p: ptr ptr ISVGStringList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemLanguage(self, p) + +proc hasExtension*( + self: ptr ISVGTests, extension: BSTR, pResult: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasExtension(self, extension, pResult) + +proc put_xmllang*(self: ptr ISVGLangSpace, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_xmllang(self, v) + +proc get_xmllang*(self: ptr ISVGLangSpace, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmllang(self, p) + +proc put_xmlspace*(self: ptr ISVGLangSpace, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_xmlspace(self, v) + +proc get_xmlspace*(self: ptr ISVGLangSpace, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmlspace(self, p) + +proc get_externalResourcesRequired*( + self: ptr ISVGExternalResourcesRequired, p: ptr ptr ISVGAnimatedBoolean +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_externalResourcesRequired(self, p) + +proc get_viewBox*( + self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewBox(self, p) + +proc putref_preserveAspectRatio*( + self: ptr ISVGFitToViewBox, v: ptr ISVGAnimatedPreserveAspectRatio +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_preserveAspectRatio(self, v) + +proc get_preserveAspectRatio*( + self: ptr ISVGFitToViewBox, p: ptr ptr ISVGAnimatedPreserveAspectRatio +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_preserveAspectRatio(self, p) + +proc get_zoomAndPan*( + self: ptr ISVGZoomAndPan, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zoomAndPan(self, p) + +proc get_href*( + self: ptr ISVGURIReference, p: ptr ptr ISVGAnimatedString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_href(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedAngle, v: ptr ISVGAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedAngle, p: ptr ptr ISVGAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedTransformList, v: ptr ISVGTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedTransformList, p: ptr ptr ISVGTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc put_baseVal*( + self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc put_animVal*( + self: ptr ISVGAnimatedBoolean, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedBoolean, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc put_baseVal*( + self: ptr ISVGAnimatedEnumeration, v: USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedEnumeration, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc put_animVal*( + self: ptr ISVGAnimatedEnumeration, v: USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedEnumeration, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc put_baseVal*(self: ptr ISVGAnimatedInteger, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedInteger, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc put_animVal*(self: ptr ISVGAnimatedInteger, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedInteger, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedLength, v: ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedLength, v: ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedLength, p: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedLengthList, v: ptr ISVGLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedLengthList, p: ptr ptr ISVGLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc put_baseVal*( + self: ptr ISVGAnimatedNumber, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedNumber, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc put_animVal*( + self: ptr ISVGAnimatedNumber, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedNumber, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedNumberList, v: ptr ISVGNumberList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedNumberList, p: ptr ptr ISVGNumberList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedRect, v: ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedRect, v: ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedRect, p: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc put_baseVal*(self: ptr ISVGAnimatedString, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedString, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc get_animVal*( + self: ptr ISVGAnimatedString, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_clipPathUnits*( + self: ptr ISVGClipPathElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_clipPathUnits(self, v) + +proc get_clipPathUnits*( + self: ptr ISVGClipPathElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_clipPathUnits(self, p) + +proc get_rootElement*( + self: ptr ISVGDocument, p: ptr ptr ISVGSVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rootElement(self, p) + +proc getSVGDocument*( + self: ptr IGetSVGDocument, ppSVGDocument: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getSVGDocument(self, ppSVGDocument) + +proc put_xmlbase*(self: ptr ISVGElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_xmlbase(self, v) + +proc get_xmlbase*(self: ptr ISVGElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xmlbase(self, p) + +proc putref_ownerSVGElement*( + self: ptr ISVGElement, v: ptr ISVGSVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_ownerSVGElement(self, v) + +proc get_ownerSVGElement*( + self: ptr ISVGElement, p: ptr ptr ISVGSVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerSVGElement(self, p) + +proc putref_viewportElement*( + self: ptr ISVGElement, v: ptr ISVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_viewportElement(self, v) + +proc get_viewportElement*( + self: ptr ISVGElement, p: ptr ptr ISVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewportElement(self, p) + +proc putref_focusable*( + self: ptr ISVGElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_focusable(self, v) + +proc get_focusable*( + self: ptr ISVGElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_focusable(self, p) + +proc put_unitType*(self: ptr ISVGLength, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_unitType(self, v) + +proc get_unitType*(self: ptr ISVGLength, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unitType(self, p) + +proc put_value*(self: ptr ISVGLength, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr ISVGLength, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_valueInSpecifiedUnits*( + self: ptr ISVGLength, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueInSpecifiedUnits(self, v) + +proc get_valueInSpecifiedUnits*( + self: ptr ISVGLength, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueInSpecifiedUnits(self, p) + +proc put_valueAsString*(self: ptr ISVGLength, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_valueAsString(self, v) + +proc get_valueAsString*(self: ptr ISVGLength, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_valueAsString(self, p) + +proc newValueSpecifiedUnits*( + self: ptr ISVGLength, unitType: int16, valueInSpecifiedUnits: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.newValueSpecifiedUnits(self, unitType, valueInSpecifiedUnits) + +proc convertToSpecifiedUnits*( + self: ptr ISVGLength, unitType: int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.convertToSpecifiedUnits(self, unitType) + +proc put_numberOfItems*(self: ptr ISVGLengthList, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_numberOfItems(self, v) + +proc get_numberOfItems*( + self: ptr ISVGLengthList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_numberOfItems(self, p) + +proc clear*(self: ptr ISVGLengthList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc initialize*( + self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initialize(self, newItem, ppResult) + +proc getItem*( + self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, index, ppResult) + +proc insertItemBefore*( + self: ptr ISVGLengthList, + newItem: ptr ISVGLength, + index: LONG, + ppResult: ptr ptr ISVGLength, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) + +proc replaceItem*( + self: ptr ISVGLengthList, + newItem: ptr ISVGLength, + index: LONG, + ppResult: ptr ptr ISVGLength, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceItem(self, newItem, index, ppResult) + +proc removeItem*( + self: ptr ISVGLengthList, index: LONG, ppResult: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, index, ppResult) + +proc appendItem*( + self: ptr ISVGLengthList, newItem: ptr ISVGLength, ppResult: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItem(self, newItem, ppResult) + +proc put_a*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_a(self, v) + +proc get_a*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_a(self, p) + +proc put_b*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_b(self, v) + +proc get_b*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_b(self, p) + +proc put_c*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_c(self, v) + +proc get_c*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_c(self, p) + +proc put_d*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_d(self, v) + +proc get_d*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_d(self, p) + +proc put_e*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_e(self, v) + +proc get_e*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_e(self, p) + +proc put_f*(self: ptr ISVGMatrix, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_f(self, v) + +proc get_f*(self: ptr ISVGMatrix, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_f(self, p) + +proc multiply*( + self: ptr ISVGMatrix, secondMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.multiply(self, secondMatrix, ppResult) + +proc inverse*( + self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.inverse(self, ppResult) + +proc translate*( + self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.translate(self, x, y, ppResult) + +proc scale*( + self: ptr ISVGMatrix, scaleFactor: float32, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scale(self, scaleFactor, ppResult) + +proc scaleNonUniform*( + self: ptr ISVGMatrix, + scaleFactorX: float32, + scaleFactorY: float32, + ppResult: ptr ptr ISVGMatrix, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.scaleNonUniform(self, scaleFactorX, scaleFactorY, ppResult) + +proc rotate*( + self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.rotate(self, angle, ppResult) + +proc rotateFromVector*( + self: ptr ISVGMatrix, x: float32, y: float32, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.rotateFromVector(self, x, y, ppResult) + +proc flipX*( + self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.flipX(self, ppResult) + +proc flipY*( + self: ptr ISVGMatrix, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.flipY(self, ppResult) + +proc skewX*( + self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.skewX(self, angle, ppResult) + +proc skewY*( + self: ptr ISVGMatrix, angle: float32, ppResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.skewY(self, angle, ppResult) + +proc put_value*(self: ptr ISVGNumber, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*(self: ptr ISVGNumber, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_numberOfItems*(self: ptr ISVGNumberList, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_numberOfItems(self, v) + +proc get_numberOfItems*( + self: ptr ISVGNumberList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_numberOfItems(self, p) + +proc clear*(self: ptr ISVGNumberList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc initialize*( + self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initialize(self, newItem, ppResult) + +proc getItem*( + self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, index, ppResult) + +proc insertItemBefore*( + self: ptr ISVGNumberList, + newItem: ptr ISVGNumber, + index: LONG, + ppResult: ptr ptr ISVGNumber, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) + +proc replaceItem*( + self: ptr ISVGNumberList, + newItem: ptr ISVGNumber, + index: LONG, + ppResult: ptr ptr ISVGNumber, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceItem(self, newItem, index, ppResult) + +proc removeItem*( + self: ptr ISVGNumberList, index: LONG, ppResult: ptr ptr ISVGNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, index, ppResult) + +proc appendItem*( + self: ptr ISVGNumberList, newItem: ptr ISVGNumber, ppResult: ptr ptr ISVGNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItem(self, newItem, ppResult) + +proc putref_patternUnits*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_patternUnits(self, v) + +proc get_patternUnits*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_patternUnits(self, p) + +proc putref_patternContentUnits*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_patternContentUnits(self, v) + +proc get_patternContentUnits*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_patternContentUnits(self, p) + +proc putref_patternTransform*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_patternTransform(self, v) + +proc get_patternTransform*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_patternTransform(self, p) + +proc putref_x*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_width*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_width(self, v) + +proc get_width*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc putref_height*( + self: ptr ISVGPatternElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_height(self, v) + +proc get_height*( + self: ptr ISVGPatternElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_pathSegType*(self: ptr ISVGPathSeg, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pathSegType(self, v) + +proc get_pathSegType*(self: ptr ISVGPathSeg, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathSegType(self, p) + +proc get_pathSegTypeAsLetter*( + self: ptr ISVGPathSeg, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathSegTypeAsLetter(self, p) + +proc put_x*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_r1*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_r1(self, v) + +proc get_r1*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_r1(self, p) + +proc put_r2*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_r2(self, v) + +proc get_r2*(self: ptr ISVGPathSegArcAbs, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_r2(self, p) + +proc put_angle*(self: ptr ISVGPathSegArcAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_angle(self, v) + +proc get_angle*( + self: ptr ISVGPathSegArcAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_angle(self, p) + +proc put_largeArcFlag*( + self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_largeArcFlag(self, v) + +proc get_largeArcFlag*( + self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_largeArcFlag(self, p) + +proc put_sweepFlag*( + self: ptr ISVGPathSegArcAbs, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_sweepFlag(self, v) + +proc get_sweepFlag*( + self: ptr ISVGPathSegArcAbs, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sweepFlag(self, p) + +proc put_x*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_r1*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_r1(self, v) + +proc get_r1*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_r1(self, p) + +proc put_r2*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_r2(self, v) + +proc get_r2*(self: ptr ISVGPathSegArcRel, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_r2(self, p) + +proc put_angle*(self: ptr ISVGPathSegArcRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_angle(self, v) + +proc get_angle*( + self: ptr ISVGPathSegArcRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_angle(self, p) + +proc put_largeArcFlag*( + self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_largeArcFlag(self, v) + +proc get_largeArcFlag*( + self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_largeArcFlag(self, p) + +proc put_sweepFlag*( + self: ptr ISVGPathSegArcRel, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_sweepFlag(self, v) + +proc get_sweepFlag*( + self: ptr ISVGPathSegArcRel, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sweepFlag(self, p) + +proc put_x*(self: ptr ISVGPathSegMovetoAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegMovetoAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPathSegMovetoAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegMovetoAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x*(self: ptr ISVGPathSegMovetoRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegMovetoRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPathSegMovetoRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegMovetoRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x*(self: ptr ISVGPathSegLinetoAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegLinetoAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPathSegLinetoAbs, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegLinetoAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x*(self: ptr ISVGPathSegLinetoRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegLinetoRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPathSegLinetoRel, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegLinetoRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoCubicAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoCubicAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x1*( + self: ptr ISVGPathSegCurvetoCubicAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x1(self, v) + +proc get_x1*( + self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x1(self, p) + +proc put_y1*( + self: ptr ISVGPathSegCurvetoCubicAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y1(self, v) + +proc get_y1*( + self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y1(self, p) + +proc put_x2*( + self: ptr ISVGPathSegCurvetoCubicAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x2(self, v) + +proc get_x2*( + self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x2(self, p) + +proc put_y2*( + self: ptr ISVGPathSegCurvetoCubicAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y2(self, v) + +proc get_y2*( + self: ptr ISVGPathSegCurvetoCubicAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y2(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoCubicRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoCubicRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x1*( + self: ptr ISVGPathSegCurvetoCubicRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x1(self, v) + +proc get_x1*( + self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x1(self, p) + +proc put_y1*( + self: ptr ISVGPathSegCurvetoCubicRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y1(self, v) + +proc get_y1*( + self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y1(self, p) + +proc put_x2*( + self: ptr ISVGPathSegCurvetoCubicRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x2(self, v) + +proc get_x2*( + self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x2(self, p) + +proc put_y2*( + self: ptr ISVGPathSegCurvetoCubicRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y2(self, v) + +proc get_y2*( + self: ptr ISVGPathSegCurvetoCubicRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y2(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x2*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x2(self, v) + +proc get_x2*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x2(self, p) + +proc put_y2*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y2(self, v) + +proc get_y2*( + self: ptr ISVGPathSegCurvetoCubicSmoothAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y2(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x2*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x2(self, v) + +proc get_x2*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x2(self, p) + +proc put_y2*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y2(self, v) + +proc get_y2*( + self: ptr ISVGPathSegCurvetoCubicSmoothRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y2(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x1*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x1(self, v) + +proc get_x1*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x1(self, p) + +proc put_y1*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y1(self, v) + +proc get_y1*( + self: ptr ISVGPathSegCurvetoQuadraticAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y1(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x1*( + self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x1(self, v) + +proc get_x1*( + self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x1(self, p) + +proc put_y1*( + self: ptr ISVGPathSegCurvetoQuadraticRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y1(self, v) + +proc get_y1*( + self: ptr ISVGPathSegCurvetoQuadraticRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y1(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegCurvetoQuadraticSmoothRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_x*( + self: ptr ISVGPathSegLinetoHorizontalAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegLinetoHorizontalAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_x*( + self: ptr ISVGPathSegLinetoHorizontalRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*( + self: ptr ISVGPathSegLinetoHorizontalRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*( + self: ptr ISVGPathSegLinetoVerticalAbs, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegLinetoVerticalAbs, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_y*( + self: ptr ISVGPathSegLinetoVerticalRel, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*( + self: ptr ISVGPathSegLinetoVerticalRel, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_numberOfItems*( + self: ptr ISVGPathSegList, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_numberOfItems(self, v) + +proc get_numberOfItems*( + self: ptr ISVGPathSegList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_numberOfItems(self, p) + +proc clear*(self: ptr ISVGPathSegList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc initialize*( + self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initialize(self, newItem, ppResult) + +proc getItem*( + self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, index, ppResult) + +proc insertItemBefore*( + self: ptr ISVGPathSegList, + newItem: ptr ISVGPathSeg, + index: LONG, + ppResult: ptr ptr ISVGPathSeg, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) + +proc replaceItem*( + self: ptr ISVGPathSegList, + newItem: ptr ISVGPathSeg, + index: LONG, + ppResult: ptr ptr ISVGPathSeg, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceItem(self, newItem, index, ppResult) + +proc removeItem*( + self: ptr ISVGPathSegList, index: LONG, ppResult: ptr ptr ISVGPathSeg +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, index, ppResult) + +proc appendItem*( + self: ptr ISVGPathSegList, newItem: ptr ISVGPathSeg, ppResult: ptr ptr ISVGPathSeg +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItem(self, newItem, ppResult) + +proc put_x*(self: ptr ISVGPoint, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*(self: ptr ISVGPoint, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGPoint, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*(self: ptr ISVGPoint, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc matrixTransform*( + self: ptr ISVGPoint, pMatrix: ptr ISVGMatrix, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.matrixTransform(self, pMatrix, ppResult) + +proc put_numberOfItems*(self: ptr ISVGPointList, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_numberOfItems(self, v) + +proc get_numberOfItems*( + self: ptr ISVGPointList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_numberOfItems(self, p) + +proc clear*(self: ptr ISVGPointList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc initialize*( + self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initialize(self, pNewItem, ppResult) + +proc getItem*( + self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, index, ppResult) + +proc insertItemBefore*( + self: ptr ISVGPointList, + pNewItem: ptr ISVGPoint, + index: LONG, + ppResult: ptr ptr ISVGPoint, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertItemBefore(self, pNewItem, index, ppResult) + +proc replaceItem*( + self: ptr ISVGPointList, + pNewItem: ptr ISVGPoint, + index: LONG, + ppResult: ptr ptr ISVGPoint, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceItem(self, pNewItem, index, ppResult) + +proc removeItem*( + self: ptr ISVGPointList, index: LONG, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, index, ppResult) + +proc appendItem*( + self: ptr ISVGPointList, pNewItem: ptr ISVGPoint, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItem(self, pNewItem, ppResult) + +proc put_x*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_x(self, v) + +proc get_x*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc put_y*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_y(self, v) + +proc get_y*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc put_width*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr ISVGRect, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr ISVGRect, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_numberOfItems*(self: ptr ISVGStringList, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_numberOfItems(self, v) + +proc get_numberOfItems*( + self: ptr ISVGStringList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_numberOfItems(self, p) + +proc clear*(self: ptr ISVGStringList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc initialize*( + self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initialize(self, newItem, ppResult) + +proc getItem*( + self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, index, ppResult) + +proc insertItemBefore*( + self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) + +proc replaceItem*( + self: ptr ISVGStringList, newItem: BSTR, index: LONG, ppResult: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceItem(self, newItem, index, ppResult) + +proc removeItem*( + self: ptr ISVGStringList, index: LONG, ppResult: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, index, ppResult) + +proc appendItem*( + self: ptr ISVGStringList, newItem: BSTR, ppResult: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItem(self, newItem, ppResult) + +proc put_type*(self: ptr ISVGTransform, v: int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr ISVGTransform, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc putref_matrix*( + self: ptr ISVGTransform, v: ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_matrix(self, v) + +proc get_matrix*( + self: ptr ISVGTransform, p: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_matrix(self, p) + +proc put_angle*(self: ptr ISVGTransform, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_angle(self, v) + +proc get_angle*(self: ptr ISVGTransform, p: ptr float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_angle(self, p) + +proc setMatrix*( + self: ptr ISVGTransform, matrix: ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setMatrix(self, matrix) + +proc setTranslate*( + self: ptr ISVGTransform, tx: float32, ty: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setTranslate(self, tx, ty) + +proc setScale*( + self: ptr ISVGTransform, sx: float32, sy: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setScale(self, sx, sy) + +proc setRotate*( + self: ptr ISVGTransform, angle: float32, cx: float32, cy: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setRotate(self, angle, cx, cy) + +proc setSkewX*(self: ptr ISVGTransform, angle: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setSkewX(self, angle) + +proc setSkewY*(self: ptr ISVGTransform, angle: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setSkewY(self, angle) + +proc putref_x*( + self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_width*( + self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_width(self, v) + +proc get_width*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc putref_height*( + self: ptr ISVGSVGElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_height(self, v) + +proc get_height*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc put_contentScriptType*( + self: ptr ISVGSVGElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_contentScriptType(self, v) + +proc get_contentScriptType*( + self: ptr ISVGSVGElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentScriptType(self, p) + +proc put_contentStyleType*( + self: ptr ISVGSVGElement, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_contentStyleType(self, v) + +proc get_contentStyleType*( + self: ptr ISVGSVGElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contentStyleType(self, p) + +proc putref_viewport*( + self: ptr ISVGSVGElement, v: ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_viewport(self, v) + +proc get_viewport*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewport(self, p) + +proc put_pixelUnitToMillimeterX*( + self: ptr ISVGSVGElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelUnitToMillimeterX(self, v) + +proc get_pixelUnitToMillimeterX*( + self: ptr ISVGSVGElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelUnitToMillimeterX(self, p) + +proc put_pixelUnitToMillimeterY*( + self: ptr ISVGSVGElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pixelUnitToMillimeterY(self, v) + +proc get_pixelUnitToMillimeterY*( + self: ptr ISVGSVGElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pixelUnitToMillimeterY(self, p) + +proc put_screenPixelToMillimeterX*( + self: ptr ISVGSVGElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_screenPixelToMillimeterX(self, v) + +proc get_screenPixelToMillimeterX*( + self: ptr ISVGSVGElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenPixelToMillimeterX(self, p) + +proc put_screenPixelToMillimeterY*( + self: ptr ISVGSVGElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_screenPixelToMillimeterY(self, v) + +proc get_screenPixelToMillimeterY*( + self: ptr ISVGSVGElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_screenPixelToMillimeterY(self, p) + +proc put_useCurrentView*( + self: ptr ISVGSVGElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_useCurrentView(self, v) + +proc get_useCurrentView*( + self: ptr ISVGSVGElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_useCurrentView(self, p) + +proc putref_currentView*( + self: ptr ISVGSVGElement, v: ptr ISVGViewSpec +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_currentView(self, v) + +proc get_currentView*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGViewSpec +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentView(self, p) + +proc put_currentScale*( + self: ptr ISVGSVGElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_currentScale(self, v) + +proc get_currentScale*( + self: ptr ISVGSVGElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentScale(self, p) + +proc putref_currentTranslate*( + self: ptr ISVGSVGElement, v: ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_currentTranslate(self, v) + +proc get_currentTranslate*( + self: ptr ISVGSVGElement, p: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentTranslate(self, p) + +proc suspendRedraw*( + self: ptr ISVGSVGElement, maxWaitMilliseconds: ULONG, pResult: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.suspendRedraw(self, maxWaitMilliseconds, pResult) + +proc unsuspendRedraw*( + self: ptr ISVGSVGElement, suspendHandeID: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.unsuspendRedraw(self, suspendHandeID) + +proc unsuspendRedrawAll*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.unsuspendRedrawAll(self) + +proc forceRedraw*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.forceRedraw(self) + +proc pauseAnimations*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.pauseAnimations(self) + +proc unpauseAnimations*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.unpauseAnimations(self) + +proc animationsPaused*( + self: ptr ISVGSVGElement, pResult: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.animationsPaused(self, pResult) + +proc getCurrentTime*( + self: ptr ISVGSVGElement, pResult: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getCurrentTime(self, pResult) + +proc setCurrentTime*( + self: ptr ISVGSVGElement, seconds: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setCurrentTime(self, seconds) + +proc getIntersectionList*( + self: ptr ISVGSVGElement, + rect: ptr ISVGRect, + referenceElement: ptr ISVGElement, + pResult: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getIntersectionList(self, rect, referenceElement, pResult) + +proc getEnclosureList*( + self: ptr ISVGSVGElement, + rect: ptr ISVGRect, + referenceElement: ptr ISVGElement, + pResult: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getEnclosureList(self, rect, referenceElement, pResult) + +proc checkIntersection*( + self: ptr ISVGSVGElement, + element: ptr ISVGElement, + rect: ptr ISVGRect, + pResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.checkIntersection(self, element, rect, pResult) + +proc checkEnclosure*( + self: ptr ISVGSVGElement, + element: ptr ISVGElement, + rect: ptr ISVGRect, + pResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.checkEnclosure(self, element, rect, pResult) + +proc deselectAll*(self: ptr ISVGSVGElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deselectAll(self) + +proc createSVGNumber*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGNumber(self, pResult) + +proc createSVGLength*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGLength(self, pResult) + +proc createSVGAngle*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGAngle(self, pResult) + +proc createSVGPoint*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPoint(self, pResult) + +proc createSVGMatrix*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGMatrix +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGMatrix(self, pResult) + +proc createSVGRect*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGRect(self, pResult) + +proc createSVGTransform*( + self: ptr ISVGSVGElement, pResult: ptr ptr ISVGTransform +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGTransform(self, pResult) + +proc createSVGTransformFromMatrix*( + self: ptr ISVGSVGElement, matrix: ptr ISVGMatrix, pResult: ptr ptr ISVGTransform +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGTransformFromMatrix(self, matrix, pResult) + +proc getElementById*( + self: ptr ISVGSVGElement, elementId: BSTR, pResult: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementById(self, elementId, pResult) + +proc putref_x*( + self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_width*( + self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_width(self, v) + +proc get_width*( + self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc putref_height*( + self: ptr ISVGUseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_height(self, v) + +proc get_height*( + self: ptr ISVGUseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc putref_instanceRoot*( + self: ptr ISVGUseElement, v: ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_instanceRoot(self, v) + +proc get_instanceRoot*( + self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_instanceRoot(self, p) + +proc putref_animatedInstanceRoot*( + self: ptr ISVGUseElement, v: ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animatedInstanceRoot(self, v) + +proc get_animatedInstanceRoot*( + self: ptr ISVGUseElement, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animatedInstanceRoot(self, p) + +proc item*( + self: ptr IHTMLStyleSheetRulesAppliedCollection, + index: LONG, + ppHTMLStyleSheetRule: ptr ptr IHTMLStyleSheetRule, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppHTMLStyleSheetRule) + +proc get_length*( + self: ptr IHTMLStyleSheetRulesAppliedCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc propertyAppliedBy*( + self: ptr IHTMLStyleSheetRulesAppliedCollection, + name: BSTR, + ppRule: ptr ptr IHTMLStyleSheetRule, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyAppliedBy(self, name, ppRule) + +proc propertyAppliedTrace*( + self: ptr IHTMLStyleSheetRulesAppliedCollection, + name: BSTR, + index: LONG, + ppRule: ptr ptr IHTMLStyleSheetRule, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyAppliedTrace(self, name, index, ppRule) + +proc propertyAppliedTraceLength*( + self: ptr IHTMLStyleSheetRulesAppliedCollection, name: BSTR, pLength: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyAppliedTraceLength(self, name, pLength) + +proc get_element*( + self: ptr IRulesApplied, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_element(self, p) + +proc get_inlineStyles*( + self: ptr IRulesApplied, p: ptr ptr IHTMLStyle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_inlineStyles(self, p) + +proc get_appliedRules*( + self: ptr IRulesApplied, p: ptr ptr IHTMLStyleSheetRulesAppliedCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_appliedRules(self, p) + +proc propertyIsInline*( + self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyIsInline(self, name, p) + +proc propertyIsInheritable*( + self: ptr IRulesApplied, name: BSTR, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyIsInheritable(self, name, p) + +proc hasInheritableProperty*( + self: ptr IRulesApplied, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasInheritableProperty(self, p) + +proc item*( + self: ptr IRulesAppliedCollection, + index: LONG, + ppRulesApplied: ptr ptr IRulesApplied, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppRulesApplied) + +proc get_length*( + self: ptr IRulesAppliedCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_element*( + self: ptr IRulesAppliedCollection, p: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_element(self, p) + +proc propertyInheritedFrom*( + self: ptr IRulesAppliedCollection, name: BSTR, ppRulesApplied: ptr ptr IRulesApplied +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyInheritedFrom(self, name, ppRulesApplied) + +proc get_propertyCount*( + self: ptr IRulesAppliedCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_propertyCount(self, p) + +proc property*( + self: ptr IRulesAppliedCollection, index: LONG, pbstrProperty: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.property(self, index, pbstrProperty) + +proc propertyInheritedTrace*( + self: ptr IRulesAppliedCollection, + name: BSTR, + index: LONG, + ppRulesApplied: ptr ptr IRulesApplied, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyInheritedTrace(self, name, index, ppRulesApplied) + +proc propertyInheritedTraceLength*( + self: ptr IRulesAppliedCollection, name: BSTR, pLength: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.propertyInheritedTraceLength(self, name, pLength) + +proc put_numberOfItems*( + self: ptr ISVGTransformList, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_numberOfItems(self, v) + +proc get_numberOfItems*( + self: ptr ISVGTransformList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_numberOfItems(self, p) + +proc clear*(self: ptr ISVGTransformList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clear(self) + +proc initialize*( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + ppResult: ptr ptr ISVGTransform, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initialize(self, newItem, ppResult) + +proc getItem*( + self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getItem(self, index, ppResult) + +proc insertItemBefore*( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + index: LONG, + ppResult: ptr ptr ISVGTransform, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertItemBefore(self, newItem, index, ppResult) + +proc replaceItem*( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + index: LONG, + ppResult: ptr ptr ISVGTransform, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceItem(self, newItem, index, ppResult) + +proc removeItem*( + self: ptr ISVGTransformList, index: LONG, ppResult: ptr ptr ISVGTransform +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeItem(self, index, ppResult) + +proc appendItem*( + self: ptr ISVGTransformList, + newItem: ptr ISVGTransform, + ppResult: ptr ptr ISVGTransform, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendItem(self, newItem, ppResult) + +proc createSVGTransformFromMatrix*( + self: ptr ISVGTransformList, + newItem: ptr ISVGMatrix, + ppResult: ptr ptr ISVGTransform, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGTransformFromMatrix(self, newItem, ppResult) + +proc consolidate*( + self: ptr ISVGTransformList, ppResult: ptr ptr ISVGTransform +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.consolidate(self, ppResult) + +proc putref_points*( + self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_points(self, v) + +proc get_points*( + self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_points(self, p) + +proc putref_animatedPoints*( + self: ptr ISVGAnimatedPoints, v: ptr ISVGPointList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animatedPoints(self, v) + +proc get_animatedPoints*( + self: ptr ISVGAnimatedPoints, p: ptr ptr ISVGPointList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animatedPoints(self, p) + +proc putref_cx*( + self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_cx(self, v) + +proc get_cx*( + self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cx(self, p) + +proc putref_cy*( + self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_cy(self, v) + +proc get_cy*( + self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cy(self, p) + +proc putref_r*( + self: ptr ISVGCircleElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_r(self, v) + +proc get_r*( + self: ptr ISVGCircleElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_r(self, p) + +proc putref_cx*( + self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_cx(self, v) + +proc get_cx*( + self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cx(self, p) + +proc putref_cy*( + self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_cy(self, v) + +proc get_cy*( + self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cy(self, p) + +proc putref_rx*( + self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_rx(self, v) + +proc get_rx*( + self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rx(self, p) + +proc putref_ry*( + self: ptr ISVGEllipseElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_ry(self, v) + +proc get_ry*( + self: ptr ISVGEllipseElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ry(self, p) + +proc putref_x1*( + self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x1(self, v) + +proc get_x1*( + self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x1(self, p) + +proc putref_y1*( + self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y1(self, v) + +proc get_y1*( + self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y1(self, p) + +proc putref_x2*( + self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x2(self, v) + +proc get_x2*( + self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x2(self, p) + +proc putref_y2*( + self: ptr ISVGLineElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y2(self, v) + +proc get_y2*( + self: ptr ISVGLineElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y2(self, p) + +proc putref_x*( + self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_width*( + self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_width(self, v) + +proc get_width*( + self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc putref_height*( + self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_height(self, v) + +proc get_height*( + self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc putref_rx*( + self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_rx(self, v) + +proc get_rx*( + self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rx(self, p) + +proc putref_ry*( + self: ptr ISVGRectElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_ry(self, v) + +proc get_ry*( + self: ptr ISVGRectElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ry(self, p) + +proc putref_pathSegList*( + self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_pathSegList(self, v) + +proc get_pathSegList*( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathSegList(self, p) + +proc putref_normalizedPathSegList*( + self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_normalizedPathSegList(self, v) + +proc get_normalizedPathSegList*( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_normalizedPathSegList(self, p) + +proc putref_animatedPathSegList*( + self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animatedPathSegList(self, v) + +proc get_animatedPathSegList*( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animatedPathSegList(self, p) + +proc putref_animatedNormalizedPathSegList*( + self: ptr ISVGAnimatedPathData, v: ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animatedNormalizedPathSegList(self, v) + +proc get_animatedNormalizedPathSegList*( + self: ptr ISVGAnimatedPathData, p: ptr ptr ISVGPathSegList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animatedNormalizedPathSegList(self, p) + +proc putref_pathLength*( + self: ptr ISVGPathElement, v: ptr ISVGAnimatedNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_pathLength(self, v) + +proc get_pathLength*( + self: ptr ISVGPathElement, p: ptr ptr ISVGAnimatedNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pathLength(self, p) + +proc getTotalLength*( + self: ptr ISVGPathElement, pfltResult: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getTotalLength(self, pfltResult) + +proc getPointAtLength*( + self: ptr ISVGPathElement, fltdistance: float32, ppPointResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPointAtLength(self, fltdistance, ppPointResult) + +proc getPathSegAtLength*( + self: ptr ISVGPathElement, fltdistance: float32, plResult: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPathSegAtLength(self, fltdistance, plResult) + +proc createSVGPathSegClosePath*( + self: ptr ISVGPathElement, ppResult: ptr ptr ISVGPathSegClosePath +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegClosePath(self, ppResult) + +proc createSVGPathSegMovetoAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegMovetoAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegMovetoAbs(self, x, y, ppResult) + +proc createSVGPathSegMovetoRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegMovetoRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegMovetoRel(self, x, y, ppResult) + +proc createSVGPathSegLinetoAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegLinetoAbs(self, x, y, ppResult) + +proc createSVGPathSegLinetoRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegLinetoRel(self, x, y, ppResult) + +proc createSVGPathSegCurvetoCubicAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoCubicAbs(self, x, y, x1, y1, x2, y2, ppResult) + +proc createSVGPathSegCurvetoCubicRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoCubicRel(self, x, y, x1, y1, x2, y2, ppResult) + +proc createSVGPathSegCurvetoQuadraticAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoQuadraticAbs(self, x, y, x1, y1, ppResult) + +proc createSVGPathSegCurvetoQuadraticRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x1: float32, + y1: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoQuadraticRel(self, x, y, x1, y1, ppResult) + +proc createSVGPathSegArcAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + r1: float32, + r2: float32, + angle: float32, + largeArcFlag: VARIANT_BOOL, + sweepFlag: VARIANT_BOOL, + ppResult: ptr ptr ISVGPathSegArcAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegArcAbs( + self, x, y, r1, r2, angle, largeArcFlag, sweepFlag, ppResult + ) + +proc createSVGPathSegArcRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + r1: float32, + r2: float32, + angle: float32, + largeArcFlag: VARIANT_BOOL, + sweepFlag: VARIANT_BOOL, + ppResult: ptr ptr ISVGPathSegArcRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegArcRel( + self, x, y, r1, r2, angle, largeArcFlag, sweepFlag, ppResult + ) + +proc createSVGPathSegLinetoHorizontalAbs*( + self: ptr ISVGPathElement, + x: float32, + ppResult: ptr ptr ISVGPathSegLinetoHorizontalAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegLinetoHorizontalAbs(self, x, ppResult) + +proc createSVGPathSegLinetoHorizontalRel*( + self: ptr ISVGPathElement, + x: float32, + ppResult: ptr ptr ISVGPathSegLinetoHorizontalRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegLinetoHorizontalRel(self, x, ppResult) + +proc createSVGPathSegLinetoVerticalAbs*( + self: ptr ISVGPathElement, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoVerticalAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegLinetoVerticalAbs(self, y, ppResult) + +proc createSVGPathSegLinetoVerticalRel*( + self: ptr ISVGPathElement, + y: float32, + ppResult: ptr ptr ISVGPathSegLinetoVerticalRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegLinetoVerticalRel(self, y, ppResult) + +proc createSVGPathSegCurvetoCubicSmoothAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoCubicSmoothAbs(self, x, y, x2, y2, ppResult) + +proc createSVGPathSegCurvetoCubicSmoothRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + x2: float32, + y2: float32, + ppResult: ptr ptr ISVGPathSegCurvetoCubicSmoothRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoCubicSmoothRel(self, x, y, x2, y2, ppResult) + +proc createSVGPathSegCurvetoQuadraticSmoothAbs*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothAbs, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoQuadraticSmoothAbs(self, x, y, ppResult) + +proc createSVGPathSegCurvetoQuadraticSmoothRel*( + self: ptr ISVGPathElement, + x: float32, + y: float32, + ppResult: ptr ptr ISVGPathSegCurvetoQuadraticSmoothRel, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createSVGPathSegCurvetoQuadraticSmoothRel(self, x, y, ppResult) + +proc put_align*( + self: ptr ISVGPreserveAspectRatio, v: int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_align(self, v) + +proc get_align*( + self: ptr ISVGPreserveAspectRatio, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_align(self, p) + +proc put_meetOrSlice*( + self: ptr ISVGPreserveAspectRatio, v: int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_meetOrSlice(self, v) + +proc get_meetOrSlice*( + self: ptr ISVGPreserveAspectRatio, p: ptr int16 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_meetOrSlice(self, p) + +proc putref_baseVal*( + self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_baseVal(self, v) + +proc get_baseVal*( + self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseVal(self, p) + +proc putref_animVal*( + self: ptr ISVGAnimatedPreserveAspectRatio, v: ptr ISVGPreserveAspectRatio +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_animVal(self, v) + +proc get_animVal*( + self: ptr ISVGAnimatedPreserveAspectRatio, p: ptr ptr ISVGPreserveAspectRatio +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animVal(self, p) + +proc putref_x*( + self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_width*( + self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_width(self, v) + +proc get_width*( + self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc putref_height*( + self: ptr ISVGImageElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_height(self, v) + +proc get_height*( + self: ptr ISVGImageElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc putref_offset*( + self: ptr ISVGStopElement, v: ptr ISVGAnimatedNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_offset(self, v) + +proc get_offset*( + self: ptr ISVGStopElement, p: ptr ptr ISVGAnimatedNumber +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_offset(self, p) + +proc putref_gradientUnits*( + self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_gradientUnits(self, v) + +proc get_gradientUnits*( + self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_gradientUnits(self, p) + +proc putref_gradientTransform*( + self: ptr ISVGGradientElement, v: ptr ISVGAnimatedTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_gradientTransform(self, v) + +proc get_gradientTransform*( + self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedTransformList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_gradientTransform(self, p) + +proc putref_spreadMethod*( + self: ptr ISVGGradientElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_spreadMethod(self, v) + +proc get_spreadMethod*( + self: ptr ISVGGradientElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_spreadMethod(self, p) + +proc putref_x1*( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x1(self, v) + +proc get_x1*( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x1(self, p) + +proc putref_y1*( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y1(self, v) + +proc get_y1*( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y1(self, p) + +proc putref_x2*( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x2(self, v) + +proc get_x2*( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x2(self, p) + +proc putref_y2*( + self: ptr ISVGLinearGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y2(self, v) + +proc get_y2*( + self: ptr ISVGLinearGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y2(self, p) + +proc putref_cx*( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_cx(self, v) + +proc get_cx*( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cx(self, p) + +proc putref_cy*( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_cy(self, v) + +proc get_cy*( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cy(self, p) + +proc putref_r*( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_r(self, v) + +proc get_r*( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_r(self, p) + +proc putref_fx*( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_fx(self, v) + +proc get_fx*( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fx(self, p) + +proc putref_fy*( + self: ptr ISVGRadialGradientElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_fy(self, v) + +proc get_fy*( + self: ptr ISVGRadialGradientElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fy(self, p) + +proc putref_maskUnits*( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_maskUnits(self, v) + +proc get_maskUnits*( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maskUnits(self, p) + +proc putref_maskContentUnits*( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_maskContentUnits(self, v) + +proc get_maskContentUnits*( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maskContentUnits(self, p) + +proc putref_x*( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_width*( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_width(self, v) + +proc get_width*( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc putref_height*( + self: ptr ISVGMaskElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_height(self, v) + +proc get_height*( + self: ptr ISVGMaskElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc putref_refX*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_refX(self, v) + +proc get_refX*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_refX(self, p) + +proc putref_refY*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_refY(self, v) + +proc get_refY*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_refY(self, p) + +proc putref_markerUnits*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_markerUnits(self, v) + +proc get_markerUnits*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_markerUnits(self, p) + +proc putref_markerWidth*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_markerWidth(self, v) + +proc get_markerWidth*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_markerWidth(self, p) + +proc putref_markerHeight*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_markerHeight(self, v) + +proc get_markerHeight*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_markerHeight(self, p) + +proc putref_orientType*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_orientType(self, v) + +proc get_orientType*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orientType(self, p) + +proc putref_orientAngle*( + self: ptr ISVGMarkerElement, v: ptr ISVGAnimatedAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_orientAngle(self, v) + +proc get_orientAngle*( + self: ptr ISVGMarkerElement, p: ptr ptr ISVGAnimatedAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orientAngle(self, p) + +proc setOrientToAuto*(self: ptr ISVGMarkerElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setOrientToAuto(self) + +proc setOrientToAngle*( + self: ptr ISVGMarkerElement, pSVGAngle: ptr ISVGAngle +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setOrientToAngle(self, pSVGAngle) + +proc get_zoomRectScreen*( + self: ptr ISVGZoomEvent, p: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_zoomRectScreen(self, p) + +proc get_previousScale*( + self: ptr ISVGZoomEvent, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousScale(self, p) + +proc get_previousTranslate*( + self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousTranslate(self, p) + +proc get_newScale*( + self: ptr ISVGZoomEvent, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newScale(self, p) + +proc get_newTranslate*( + self: ptr ISVGZoomEvent, p: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newTranslate(self, p) + +proc putref_target*( + self: ptr ISVGAElement, v: ptr ISVGAnimatedString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_target(self, v) + +proc get_target*( + self: ptr ISVGAElement, p: ptr ptr ISVGAnimatedString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc putref_viewTarget*( + self: ptr ISVGViewElement, v: ptr ISVGStringList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_viewTarget(self, v) + +proc get_viewTarget*( + self: ptr ISVGViewElement, p: ptr ptr ISVGStringList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_viewTarget(self, p) + +proc get_code*(self: ptr IHTMLMediaError, p: ptr int16): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_length*(self: ptr IHTMLTimeRanges, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc start*( + self: ptr IHTMLTimeRanges, index: LONG, startTime: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.start(self, index, startTime) + +proc `end`*( + self: ptr IHTMLTimeRanges, index: LONG, endTime: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.`end`(self, index, endTime) + +proc startDouble*( + self: ptr IHTMLTimeRanges2, index: LONG, startTime: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.startDouble(self, index, startTime) + +proc endDouble*( + self: ptr IHTMLTimeRanges2, index: LONG, endTime: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.endDouble(self, index, endTime) + +proc get_error*( + self: ptr IHTMLMediaElement, p: ptr ptr IHTMLMediaError +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_error(self, p) + +proc put_src*(self: ptr IHTMLMediaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLMediaElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc get_currentSrc*( + self: ptr IHTMLMediaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentSrc(self, p) + +proc get_networkState*( + self: ptr IHTMLMediaElement, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_networkState(self, p) + +proc put_preload*(self: ptr IHTMLMediaElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_preload(self, v) + +proc get_preload*( + self: ptr IHTMLMediaElement, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_preload(self, p) + +proc get_buffered*( + self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_buffered(self, p) + +proc load*(self: ptr IHTMLMediaElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.load(self) + +proc canPlayType*( + self: ptr IHTMLMediaElement, `type`: BSTR, canPlay: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.canPlayType(self, `type`, canPlay) + +proc get_seeking*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_seeking(self, p) + +proc put_currentTime*( + self: ptr IHTMLMediaElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_currentTime(self, v) + +proc get_currentTime*( + self: ptr IHTMLMediaElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentTime(self, p) + +proc get_initialTime*( + self: ptr IHTMLMediaElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_initialTime(self, p) + +proc get_duration*( + self: ptr IHTMLMediaElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_duration(self, p) + +proc get_paused*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_paused(self, p) + +proc put_defaultPlaybackRate*( + self: ptr IHTMLMediaElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultPlaybackRate(self, v) + +proc get_defaultPlaybackRate*( + self: ptr IHTMLMediaElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultPlaybackRate(self, p) + +proc put_playbackRate*( + self: ptr IHTMLMediaElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_playbackRate(self, v) + +proc get_playbackRate*( + self: ptr IHTMLMediaElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_playbackRate(self, p) + +proc get_played*( + self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_played(self, p) + +proc get_seekable*( + self: ptr IHTMLMediaElement, p: ptr ptr IHTMLTimeRanges +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_seekable(self, p) + +proc get_ended*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ended(self, p) + +proc put_autoplay*( + self: ptr IHTMLMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_autoplay(self, v) + +proc get_autoplay*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_autoplay(self, p) + +proc put_loop*( + self: ptr IHTMLMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_loop(self, v) + +proc get_loop*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loop(self, p) + +proc play*(self: ptr IHTMLMediaElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.play(self) + +proc pause*(self: ptr IHTMLMediaElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.pause(self) + +proc put_controls*( + self: ptr IHTMLMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_controls(self, v) + +proc get_controls*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_controls(self, p) + +proc put_volume*(self: ptr IHTMLMediaElement, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_volume(self, v) + +proc get_volume*( + self: ptr IHTMLMediaElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_volume(self, p) + +proc put_muted*( + self: ptr IHTMLMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_muted(self, v) + +proc get_muted*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_muted(self, p) + +proc put_autobuffer*( + self: ptr IHTMLMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_autobuffer(self, v) + +proc get_autobuffer*( + self: ptr IHTMLMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_autobuffer(self, p) + +proc put_currentTimeDouble*( + self: ptr IHTMLMediaElement2, v: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_currentTimeDouble(self, v) + +proc get_currentTimeDouble*( + self: ptr IHTMLMediaElement2, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentTimeDouble(self, p) + +proc get_initialTimeDouble*( + self: ptr IHTMLMediaElement2, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_initialTimeDouble(self, p) + +proc get_durationDouble*( + self: ptr IHTMLMediaElement2, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_durationDouble(self, p) + +proc put_defaultPlaybackRateDouble*( + self: ptr IHTMLMediaElement2, v: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_defaultPlaybackRateDouble(self, v) + +proc get_defaultPlaybackRateDouble*( + self: ptr IHTMLMediaElement2, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_defaultPlaybackRateDouble(self, p) + +proc put_playbackRateDouble*( + self: ptr IHTMLMediaElement2, v: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_playbackRateDouble(self, v) + +proc get_playbackRateDouble*( + self: ptr IHTMLMediaElement2, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_playbackRateDouble(self, p) + +proc put_volumeDouble*( + self: ptr IHTMLMediaElement2, v: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_volumeDouble(self, v) + +proc get_volumeDouble*( + self: ptr IHTMLMediaElement2, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_volumeDouble(self, p) + +proc put_msPlayToDisabled*( + self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msPlayToDisabled(self, v) + +proc get_msPlayToDisabled*( + self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msPlayToDisabled(self, p) + +proc put_msPlayToPrimary*( + self: ptr IHTMLMSMediaElement, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_msPlayToPrimary(self, v) + +proc get_msPlayToPrimary*( + self: ptr IHTMLMSMediaElement, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msPlayToPrimary(self, p) + +proc put_src*(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_src(self, v) + +proc get_src*(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_src(self, p) + +proc put_type*(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_media*(self: ptr IHTMLSourceElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*(self: ptr IHTMLSourceElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc put_width*(self: ptr IHTMLVideoElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_width(self, v) + +proc get_width*(self: ptr IHTMLVideoElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc put_height*(self: ptr IHTMLVideoElement, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_height(self, v) + +proc get_height*(self: ptr IHTMLVideoElement, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_videoWidth*( + self: ptr IHTMLVideoElement, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_videoWidth(self, p) + +proc get_videoHeight*( + self: ptr IHTMLVideoElement, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_videoHeight(self, p) + +proc put_poster*(self: ptr IHTMLVideoElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_poster(self, v) + +proc get_poster*(self: ptr IHTMLVideoElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_poster(self, p) + +proc create*( + self: ptr IHTMLAudioElementFactory, src: VARIANT, a: ptr ptr IHTMLAudioElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, src, a) + +proc get_correspondingElement*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_correspondingElement(self, p) + +proc get_correspondingUseElement*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGUseElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_correspondingUseElement(self, p) + +proc get_parentNode*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentNode(self, p) + +proc get_childNodes*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstanceList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childNodes(self, p) + +proc get_firstChild*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_firstChild(self, p) + +proc get_lastChild*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastChild(self, p) + +proc get_previousSibling*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousSibling(self, p) + +proc get_nextSibling*( + self: ptr ISVGElementInstance, p: ptr ptr ISVGElementInstance +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nextSibling(self, p) + +proc get_length*( + self: ptr ISVGElementInstanceList, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr ISVGElementInstanceList, + index: LONG, + ppResult: ptr ptr ISVGElementInstance, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppResult) + +proc put_code*(self: ptr IDOMException, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_code(self, v) + +proc get_code*(self: ptr IDOMException, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_message*(self: ptr IDOMException, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_message(self, p) + +proc put_code*(self: ptr IRangeException, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_code(self, v) + +proc get_code*(self: ptr IRangeException, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_message*(self: ptr IRangeException, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_message(self, p) + +proc put_code*(self: ptr ISVGException, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_code(self, v) + +proc get_code*(self: ptr ISVGException, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_message*(self: ptr ISVGException, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_message(self, p) + +proc put_code*(self: ptr IEventException, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_code(self, v) + +proc get_code*(self: ptr IEventException, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_message*(self: ptr IEventException, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_message(self, p) + +proc put_type*(self: ptr ISVGScriptElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr ISVGScriptElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_type*(self: ptr ISVGStyleElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_type(self, v) + +proc get_type*(self: ptr ISVGStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc put_media*(self: ptr ISVGStyleElement, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_media(self, v) + +proc get_media*(self: ptr ISVGStyleElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_media(self, p) + +proc putref_textLength*( + self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_textLength(self, v) + +proc get_textLength*( + self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textLength(self, p) + +proc putref_lengthAdjust*( + self: ptr ISVGTextContentElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_lengthAdjust(self, v) + +proc get_lengthAdjust*( + self: ptr ISVGTextContentElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lengthAdjust(self, p) + +proc getNumberOfChars*( + self: ptr ISVGTextContentElement, pResult: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getNumberOfChars(self, pResult) + +proc getComputedTextLength*( + self: ptr ISVGTextContentElement, pResult: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getComputedTextLength(self, pResult) + +proc getSubStringLength*( + self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG, pResult: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getSubStringLength(self, charnum, nchars, pResult) + +proc getStartPositionOfChar*( + self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getStartPositionOfChar(self, charnum, ppResult) + +proc getEndPositionOfChar*( + self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getEndPositionOfChar(self, charnum, ppResult) + +proc getExtentOfChar*( + self: ptr ISVGTextContentElement, charnum: LONG, ppResult: ptr ptr ISVGRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getExtentOfChar(self, charnum, ppResult) + +proc getRotationOfChar*( + self: ptr ISVGTextContentElement, charnum: LONG, pResult: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getRotationOfChar(self, charnum, pResult) + +proc getCharNumAtPosition*( + self: ptr ISVGTextContentElement, point: ptr ISVGPoint, pResult: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getCharNumAtPosition(self, point, pResult) + +proc selectSubString*( + self: ptr ISVGTextContentElement, charnum: LONG, nchars: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.selectSubString(self, charnum, nchars) + +proc putref_x*( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_x(self, v) + +proc get_x*( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc putref_y*( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_y(self, v) + +proc get_y*( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_y(self, p) + +proc putref_dx*( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_dx(self, v) + +proc get_dx*( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dx(self, p) + +proc putref_dy*( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_dy(self, v) + +proc get_dy*( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedLengthList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dy(self, p) + +proc putref_rotate*( + self: ptr ISVGTextPositioningElement, v: ptr ISVGAnimatedNumberList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_rotate(self, v) + +proc get_rotate*( + self: ptr ISVGTextPositioningElement, p: ptr ptr ISVGAnimatedNumberList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_rotate(self, p) + +proc get_name*(self: ptr IDOMDocumentType, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc get_entities*( + self: ptr IDOMDocumentType, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_entities(self, p) + +proc get_notations*( + self: ptr IDOMDocumentType, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_notations(self, p) + +proc get_publicId*( + self: ptr IDOMDocumentType, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_publicId(self, p) + +proc get_systemId*( + self: ptr IDOMDocumentType, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemId(self, p) + +proc get_internalSubset*( + self: ptr IDOMDocumentType, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_internalSubset(self, p) + +proc get_root*( + self: ptr IDOMNodeIterator, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_root(self, p) + +proc get_whatToShow*( + self: ptr IDOMNodeIterator, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_whatToShow(self, p) + +proc get_filter*( + self: ptr IDOMNodeIterator, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filter(self, p) + +proc get_expandEntityReferences*( + self: ptr IDOMNodeIterator, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_expandEntityReferences(self, p) + +proc nextNode*( + self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nextNode(self, ppRetNode) + +proc previousNode*( + self: ptr IDOMNodeIterator, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.previousNode(self, ppRetNode) + +proc detach*(self: ptr IDOMNodeIterator): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detach(self) + +proc get_root*( + self: ptr IDOMTreeWalker, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_root(self, p) + +proc get_whatToShow*( + self: ptr IDOMTreeWalker, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_whatToShow(self, p) + +proc get_filter*( + self: ptr IDOMTreeWalker, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filter(self, p) + +proc get_expandEntityReferences*( + self: ptr IDOMTreeWalker, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_expandEntityReferences(self, p) + +proc putref_currentNode*( + self: ptr IDOMTreeWalker, v: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_currentNode(self, v) + +proc get_currentNode*( + self: ptr IDOMTreeWalker, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentNode(self, p) + +proc parentNode*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.parentNode(self, ppRetNode) + +proc firstChild*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.firstChild(self, ppRetNode) + +proc lastChild*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.lastChild(self, ppRetNode) + +proc previousSibling*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.previousSibling(self, ppRetNode) + +proc nextSibling*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nextSibling(self, ppRetNode) + +proc previousNode*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.previousNode(self, ppRetNode) + +proc nextNode*( + self: ptr IDOMTreeWalker, ppRetNode: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nextNode(self, ppRetNode) + +proc get_target*( + self: ptr IDOMProcessingInstruction, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, p) + +proc put_data*( + self: ptr IDOMProcessingInstruction, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, v) + +proc get_data*( + self: ptr IDOMProcessingInstruction, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, p) + +proc get_navigation*( + self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceNavigation +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_navigation(self, p) + +proc get_timing*( + self: ptr IHTMLPerformance, p: ptr ptr IHTMLPerformanceTiming +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_timing(self, p) + +proc toString*( + self: ptr IHTMLPerformance, string: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, string) + +proc toJSON*( + self: ptr IHTMLPerformance, pVar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toJSON(self, pVar) + +proc get_type*( + self: ptr IHTMLPerformanceNavigation, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, p) + +proc get_redirectCount*( + self: ptr IHTMLPerformanceNavigation, p: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_redirectCount(self, p) + +proc toString*( + self: ptr IHTMLPerformanceNavigation, string: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, string) + +proc toJSON*( + self: ptr IHTMLPerformanceNavigation, pVar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toJSON(self, pVar) + +proc get_navigationStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_navigationStart(self, p) + +proc get_unloadEventStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unloadEventStart(self, p) + +proc get_unloadEventEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unloadEventEnd(self, p) + +proc get_redirectStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_redirectStart(self, p) + +proc get_redirectEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_redirectEnd(self, p) + +proc get_fetchStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fetchStart(self, p) + +proc get_domainLookupStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domainLookupStart(self, p) + +proc get_domainLookupEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domainLookupEnd(self, p) + +proc get_connectStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_connectStart(self, p) + +proc get_connectEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_connectEnd(self, p) + +proc get_requestStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_requestStart(self, p) + +proc get_responseStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseStart(self, p) + +proc get_responseEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseEnd(self, p) + +proc get_domLoading*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domLoading(self, p) + +proc get_domInteractive*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domInteractive(self, p) + +proc get_domContentLoadedEventStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domContentLoadedEventStart(self, p) + +proc get_domContentLoadedEventEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domContentLoadedEventEnd(self, p) + +proc get_domComplete*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_domComplete(self, p) + +proc get_loadEventStart*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loadEventStart(self, p) + +proc get_loadEventEnd*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_loadEventEnd(self, p) + +proc get_msFirstPaint*( + self: ptr IHTMLPerformanceTiming, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_msFirstPaint(self, p) + +proc toString*( + self: ptr IHTMLPerformanceTiming, string: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, string) + +proc toJSON*( + self: ptr IHTMLPerformanceTiming, pVar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toJSON(self, pVar) + +proc mStartDoc*( + self: ptr ITemplatePrinter, bstrTitle: BSTR, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.startDoc(self, bstrTitle, p) + +proc stopDoc*(self: ptr ITemplatePrinter): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.stopDoc(self) + +proc printBlankPage*(self: ptr ITemplatePrinter): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.printBlankPage(self) + +proc printPage*( + self: ptr ITemplatePrinter, pElemDisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.printPage(self, pElemDisp) + +proc ensurePrintDialogDefaults*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ensurePrintDialogDefaults(self, p) + +proc showPrintDialog*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.showPrintDialog(self, p) + +proc showPageSetupDialog*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.showPageSetupDialog(self, p) + +proc printNonNative*( + self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.printNonNative(self, pMarkup, p) + +proc printNonNativeFrames*( + self: ptr ITemplatePrinter, pMarkup: ptr IUnknown, fActiveFrame: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.printNonNativeFrames(self, pMarkup, fActiveFrame) + +proc put_framesetDocument*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_framesetDocument(self, v) + +proc get_framesetDocument*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_framesetDocument(self, p) + +proc put_frameActive*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameActive(self, v) + +proc get_frameActive*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameActive(self, p) + +proc put_frameAsShown*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameAsShown(self, v) + +proc get_frameAsShown*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameAsShown(self, p) + +proc put_selection*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selection(self, v) + +proc get_selection*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selection(self, p) + +proc put_selectedPages*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectedPages(self, v) + +proc get_selectedPages*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectedPages(self, p) + +proc put_currentPage*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_currentPage(self, v) + +proc get_currentPage*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentPage(self, p) + +proc put_currentPageAvail*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_currentPageAvail(self, v) + +proc get_currentPageAvail*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentPageAvail(self, p) + +proc put_collate*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_collate(self, v) + +proc get_collate*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_collate(self, p) + +proc get_duplex*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_duplex(self, p) + +proc put_copies*(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_copies(self, v) + +proc get_copies*( + self: ptr ITemplatePrinter, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_copies(self, p) + +proc put_pageFrom*(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageFrom(self, v) + +proc get_pageFrom*( + self: ptr ITemplatePrinter, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageFrom(self, p) + +proc put_pageTo*(self: ptr ITemplatePrinter, v: USHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_pageTo(self, v) + +proc get_pageTo*( + self: ptr ITemplatePrinter, p: ptr USHORT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageTo(self, p) + +proc put_tableOfLinks*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tableOfLinks(self, v) + +proc get_tableOfLinks*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tableOfLinks(self, p) + +proc put_allLinkedDocuments*( + self: ptr ITemplatePrinter, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_allLinkedDocuments(self, v) + +proc get_allLinkedDocuments*( + self: ptr ITemplatePrinter, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_allLinkedDocuments(self, p) + +proc put_header*(self: ptr ITemplatePrinter, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_header(self, v) + +proc get_header*(self: ptr ITemplatePrinter, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_header(self, p) + +proc put_footer*(self: ptr ITemplatePrinter, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_footer(self, v) + +proc get_footer*(self: ptr ITemplatePrinter, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_footer(self, p) + +proc put_marginLeft*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginLeft(self, v) + +proc get_marginLeft*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginLeft(self, p) + +proc put_marginRight*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginRight(self, v) + +proc get_marginRight*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginRight(self, p) + +proc put_marginTop*(self: ptr ITemplatePrinter, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginTop(self, v) + +proc get_marginTop*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginTop(self, p) + +proc put_marginBottom*( + self: ptr ITemplatePrinter, v: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_marginBottom(self, v) + +proc get_marginBottom*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_marginBottom(self, p) + +proc get_pageWidth*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageWidth(self, p) + +proc get_pageHeight*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_pageHeight(self, p) + +proc get_unprintableLeft*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unprintableLeft(self, p) + +proc get_unprintableTop*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unprintableTop(self, p) + +proc get_unprintableRight*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unprintableRight(self, p) + +proc get_unprintableBottom*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unprintableBottom(self, p) + +proc updatePageStatus*( + self: ptr ITemplatePrinter, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.updatePageStatus(self, p) + +proc put_selectionEnabled*( + self: ptr ITemplatePrinter2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selectionEnabled(self, v) + +proc get_selectionEnabled*( + self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selectionEnabled(self, p) + +proc put_frameActiveEnabled*( + self: ptr ITemplatePrinter2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_frameActiveEnabled(self, v) + +proc get_frameActiveEnabled*( + self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_frameActiveEnabled(self, p) + +proc put_orientation*( + self: ptr ITemplatePrinter2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_orientation(self, v) + +proc get_orientation*( + self: ptr ITemplatePrinter2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_orientation(self, p) + +proc put_usePrinterCopyCollate*( + self: ptr ITemplatePrinter2, v: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_usePrinterCopyCollate(self, v) + +proc get_usePrinterCopyCollate*( + self: ptr ITemplatePrinter2, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_usePrinterCopyCollate(self, p) + +proc deviceSupports*( + self: ptr ITemplatePrinter2, bstrProperty: BSTR, pvar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deviceSupports(self, bstrProperty, pvar) + +proc put_headerFooterFont*( + self: ptr ITemplatePrinter3, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_headerFooterFont(self, v) + +proc get_headerFooterFont*( + self: ptr ITemplatePrinter3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_headerFooterFont(self, p) + +proc getPageMarginTop*( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginTop(self, pageRule, pageWidth, pageHeight, pMargin) + +proc getPageMarginRight*( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginRight(self, pageRule, pageWidth, pageHeight, pMargin) + +proc getPageMarginBottom*( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginBottom(self, pageRule, pageWidth, pageHeight, pMargin) + +proc getPageMarginLeft*( + self: ptr ITemplatePrinter3, + pageRule: ptr IDispatch, + pageWidth: LONG, + pageHeight: LONG, + pMargin: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginLeft(self, pageRule, pageWidth, pageHeight, pMargin) + +proc getPageMarginTopImportant*( + self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginTopImportant(self, pageRule, pbImportant) + +proc getPageMarginRightImportant*( + self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginRightImportant(self, pageRule, pbImportant) + +proc getPageMarginBottomImportant*( + self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginBottomImportant(self, pageRule, pbImportant) + +proc getPageMarginLeftImportant*( + self: ptr ITemplatePrinter3, pageRule: ptr IDispatch, pbImportant: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPageMarginLeftImportant(self, pageRule, pbImportant) + +proc startPrint*(self: ptr IPrintManagerTemplatePrinter): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.startPrint(self) + +proc drawPreviewPage*( + self: ptr IPrintManagerTemplatePrinter, pElemDisp: ptr IDispatch, nPage: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.drawPreviewPage(self, pElemDisp, nPage) + +proc setPageCount*( + self: ptr IPrintManagerTemplatePrinter, nPage: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setPageCount(self, nPage) + +proc invalidatePreview*( + self: ptr IPrintManagerTemplatePrinter +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.invalidatePreview(self) + +proc getPrintTaskOptionValue*( + self: ptr IPrintManagerTemplatePrinter, bstrKey: BSTR, pvarin: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPrintTaskOptionValue(self, bstrKey, pvarin) + +proc endPrint*(self: ptr IPrintManagerTemplatePrinter): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.endPrint(self) + +proc putref_startOffset*( + self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_startOffset(self, v) + +proc get_startOffset*( + self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedLength +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_startOffset(self, p) + +proc putref_method*( + self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_method(self, v) + +proc get_method*( + self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_method(self, p) + +proc putref_spacing*( + self: ptr ISVGTextPathElement, v: ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_spacing(self, v) + +proc get_spacing*( + self: ptr ISVGTextPathElement, p: ptr ptr ISVGAnimatedEnumeration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_spacing(self, p) + +proc serializeToString*( + self: ptr IDOMXmlSerializer, pNode: ptr IHTMLDOMNode, pString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.serializeToString(self, pNode, pString) + +proc create*( + self: ptr IDOMXmlSerializerFactory, a: ptr ptr IDOMXmlSerializer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, a) + +proc parseFromString*( + self: ptr IDOMParser, + xmlSource: BSTR, + mimeType: BSTR, + ppNode: ptr ptr IHTMLDocument2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.parseFromString(self, xmlSource, mimeType, ppNode) + +proc create*( + self: ptr IDOMParserFactory, a: ptr ptr IDOMParser +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.create(self, a) + +proc put_value*( + self: ptr IHTMLProgressElement, v: float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, v) + +proc get_value*( + self: ptr IHTMLProgressElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, p) + +proc put_max*(self: ptr IHTMLProgressElement, v: float32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_max(self, v) + +proc get_max*( + self: ptr IHTMLProgressElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_max(self, p) + +proc get_position*( + self: ptr IHTMLProgressElement, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_position(self, p) + +proc get_form*( + self: ptr IHTMLProgressElement, p: ptr ptr IHTMLFormElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_form(self, p) + +proc get_propertyName*( + self: ptr IDOMMSTransitionEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_propertyName(self, p) + +proc get_elapsedTime*( + self: ptr IDOMMSTransitionEvent, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_elapsedTime(self, p) + +proc initMSTransitionEvent*( + self: ptr IDOMMSTransitionEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + propertyName: BSTR, + elapsedTime: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMSTransitionEvent( + self, eventType, canBubble, cancelable, propertyName, elapsedTime + ) + +proc get_animationName*( + self: ptr IDOMMSAnimationEvent, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_animationName(self, p) + +proc get_elapsedTime*( + self: ptr IDOMMSAnimationEvent, p: ptr float32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_elapsedTime(self, p) + +proc initMSAnimationEvent*( + self: ptr IDOMMSAnimationEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + animationName: BSTR, + elapsedTime: float32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMSAnimationEvent( + self, eventType, canBubble, cancelable, animationName, elapsedTime + ) + +proc getCurrentPosition*( + self: ptr IWebGeolocation, + successCallback: ptr IDispatch, + errorCallback: ptr IDispatch, + options: ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getCurrentPosition(self, successCallback, errorCallback, options) + +proc watchPosition*( + self: ptr IWebGeolocation, + successCallback: ptr IDispatch, + errorCallback: ptr IDispatch, + options: ptr IDispatch, + watchId: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.watchPosition(self, successCallback, errorCallback, options, watchId) + +proc clearWatch*(self: ptr IWebGeolocation, watchId: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearWatch(self, watchId) + +proc get_latitude*( + self: ptr IWebGeocoordinates, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_latitude(self, p) + +proc get_longitude*( + self: ptr IWebGeocoordinates, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_longitude(self, p) + +proc get_altitude*( + self: ptr IWebGeocoordinates, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altitude(self, p) + +proc get_accuracy*( + self: ptr IWebGeocoordinates, p: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accuracy(self, p) + +proc get_altitudeAccuracy*( + self: ptr IWebGeocoordinates, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_altitudeAccuracy(self, p) + +proc get_heading*( + self: ptr IWebGeocoordinates, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_heading(self, p) + +proc get_speed*( + self: ptr IWebGeocoordinates, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_speed(self, p) + +proc get_code*( + self: ptr IWebGeopositionError, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_code(self, p) + +proc get_message*( + self: ptr IWebGeopositionError, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_message(self, p) + +proc get_coords*( + self: ptr IWebGeoposition, p: ptr ptr IWebGeocoordinates +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_coords(self, p) + +proc get_timestamp*( + self: ptr IWebGeoposition, p: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_timestamp(self, p) + +proc get_javaEnabled*( + self: ptr IClientCaps, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_javaEnabled(self, p) + +proc get_cookieEnabled*( + self: ptr IClientCaps, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cookieEnabled(self, p) + +proc get_cpuClass*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_cpuClass(self, p) + +proc get_systemLanguage*( + self: ptr IClientCaps, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemLanguage(self, p) + +proc get_userLanguage*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_userLanguage(self, p) + +proc get_platform*(self: ptr IClientCaps, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_platform(self, p) + +proc get_connectionSpeed*( + self: ptr IClientCaps, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_connectionSpeed(self, p) + +proc get_onLine*( + self: ptr IClientCaps, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onLine(self, p) + +proc get_colorDepth*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_colorDepth(self, p) + +proc get_bufferDepth*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bufferDepth(self, p) + +proc get_width*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_width(self, p) + +proc get_height*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_height(self, p) + +proc get_availHeight*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_availHeight(self, p) + +proc get_availWidth*(self: ptr IClientCaps, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_availWidth(self, p) + +proc get_connectionType*( + self: ptr IClientCaps, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_connectionType(self, p) + +proc isComponentInstalled*( + self: ptr IClientCaps, + bstrName: BSTR, + bstrUrl: BSTR, + bStrVer: BSTR, + p: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.isComponentInstalled(self, bstrName, bstrUrl, bStrVer, p) + +proc getComponentVersion*( + self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, pbstrVer: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getComponentVersion(self, bstrName, bstrUrl, pbstrVer) + +proc compareVersions*( + self: ptr IClientCaps, bstrVer1: BSTR, bstrVer2: BSTR, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.compareVersions(self, bstrVer1, bstrVer2, p) + +proc addComponentRequest*( + self: ptr IClientCaps, bstrName: BSTR, bstrUrl: BSTR, bStrVer: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addComponentRequest(self, bstrName, bstrUrl, bStrVer) + +proc doComponentRequest*( + self: ptr IClientCaps, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.doComponentRequest(self, p) + +proc clearComponentRequest*(self: ptr IClientCaps): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.clearComponentRequest(self) + +proc get_lastState*( + self: ptr IDOMMSManipulationEvent, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastState(self, p) + +proc get_currentState*( + self: ptr IDOMMSManipulationEvent, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_currentState(self, p) + +proc initMSManipulationEvent*( + self: ptr IDOMMSManipulationEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + viewArg: ptr IHTMLWindow2, + detailArg: LONG, + lastState: LONG, + currentState: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initMSManipulationEvent( + self, eventType, canBubble, cancelable, viewArg, detailArg, lastState, + currentState, + ) + +proc get_wasClean*( + self: ptr IDOMCloseEvent, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_wasClean(self, p) + +proc initCloseEvent*( + self: ptr IDOMCloseEvent, + eventType: BSTR, + canBubble: VARIANT_BOOL, + cancelable: VARIANT_BOOL, + wasClean: VARIANT_BOOL, + code: LONG, + reason: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.initCloseEvent( + self, eventType, canBubble, cancelable, wasClean, code, reason + ) + +proc get_status*( + self: ptr IHTMLApplicationCache, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_onchecking*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onchecking(self, v) + +proc get_onchecking*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onchecking(self, p) + +proc put_onerror*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onerror(self, v) + +proc get_onerror*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onerror(self, p) + +proc put_onnoupdate*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onnoupdate(self, v) + +proc get_onnoupdate*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onnoupdate(self, p) + +proc put_ondownloading*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondownloading(self, v) + +proc get_ondownloading*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ondownloading(self, p) + +proc put_onprogress*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onprogress(self, v) + +proc get_onprogress*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onprogress(self, p) + +proc put_onupdateready*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onupdateready(self, v) + +proc get_onupdateready*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onupdateready(self, p) + +proc put_oncached*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_oncached(self, v) + +proc get_oncached*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_oncached(self, p) + +proc put_onobsolete*( + self: ptr IHTMLApplicationCache, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onobsolete(self, v) + +proc get_onobsolete*( + self: ptr IHTMLApplicationCache, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onobsolete(self, p) + +proc update*(self: ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.update(self) + +proc swapCache*(self: ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.swapCache(self) + +proc abort*(self: ptr IHTMLApplicationCache): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.abort(self) + +proc GetElement*( + self: ptr ICSSFilterSite, Element: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElement(self, Element) + +proc FireOnFilterChangeEvent*(self: ptr ICSSFilterSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FireOnFilterChangeEvent(self) + +proc SetSite*( + self: ptr ICSSFilter, pSink: ptr ICSSFilterSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSite(self, pSink) + +proc OnAmbientPropertyChange*( + self: ptr ICSSFilter, dispid: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnAmbientPropertyChange(self, dispid) + +proc ValidateSecureUrl*( + self: ptr ISecureUrlHost, + pfAllow: ptr WINBOOL, + pchUrlInQuestion: ptr OLECHAR, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ValidateSecureUrl(self, pfAllow, pchUrlInQuestion, dwFlags) + +proc CreateMarkupPointer*( + self: ptr IMarkupServices, ppPointer: ptr ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateMarkupPointer(self, ppPointer) + +proc CreateMarkupContainer*( + self: ptr IMarkupServices, ppMarkupContainer: ptr ptr IMarkupContainer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateMarkupContainer(self, ppMarkupContainer) + +proc CreateElement*( + self: ptr IMarkupServices, + tagID: ELEMENT_TAG_ID, + pchAttributes: ptr OLECHAR, + ppElement: ptr ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateElement(self, tagID, pchAttributes, ppElement) + +proc CloneElement*( + self: ptr IMarkupServices, + pElemCloneThis: ptr IHTMLElement, + ppElementTheClone: ptr ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloneElement(self, pElemCloneThis, ppElementTheClone) + +proc InsertElement*( + self: ptr IMarkupServices, + pElementInsert: ptr IHTMLElement, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertElement(self, pElementInsert, pPointerStart, pPointerFinish) + +proc RemoveElement*( + self: ptr IMarkupServices, pElementRemove: ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveElement(self, pElementRemove) + +proc Remove*( + self: ptr IMarkupServices, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Remove(self, pPointerStart, pPointerFinish) + +proc Copy*( + self: ptr IMarkupServices, + pPointerSourceStart: ptr IMarkupPointer, + pPointerSourceFinish: ptr IMarkupPointer, + pPointerTarget: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Copy(self, pPointerSourceStart, pPointerSourceFinish, pPointerTarget) + +proc Move*( + self: ptr IMarkupServices, + pPointerSourceStart: ptr IMarkupPointer, + pPointerSourceFinish: ptr IMarkupPointer, + pPointerTarget: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Move(self, pPointerSourceStart, pPointerSourceFinish, pPointerTarget) + +proc InsertText*( + self: ptr IMarkupServices, + pchText: ptr OLECHAR, + cch: LONG, + pPointerTarget: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertText(self, pchText, cch, pPointerTarget) + +proc ParseString*( + self: ptr IMarkupServices, + pchHTML: ptr OLECHAR, + dwFlags: DWORD, + ppContainerResult: ptr ptr IMarkupContainer, + ppPointerStart: ptr IMarkupPointer, + ppPointerFinish: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseString( + self, pchHTML, dwFlags, ppContainerResult, ppPointerStart, ppPointerFinish + ) + +proc ParseGlobal*( + self: ptr IMarkupServices, + hglobalHTML: HGLOBAL, + dwFlags: DWORD, + ppContainerResult: ptr ptr IMarkupContainer, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseGlobal( + self, hglobalHTML, dwFlags, ppContainerResult, pPointerStart, pPointerFinish + ) + +proc IsScopedElement*( + self: ptr IMarkupServices, pElement: ptr IHTMLElement, pfScoped: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsScopedElement(self, pElement, pfScoped) + +proc GetElementTagId*( + self: ptr IMarkupServices, pElement: ptr IHTMLElement, ptagId: ptr ELEMENT_TAG_ID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElementTagId(self, pElement, ptagId) + +proc GetTagIDForName*( + self: ptr IMarkupServices, bstrName: BSTR, ptagId: ptr ELEMENT_TAG_ID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTagIDForName(self, bstrName, ptagId) + +proc GetNameForTagID*( + self: ptr IMarkupServices, tagId: ELEMENT_TAG_ID, pbstrName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNameForTagID(self, tagId, pbstrName) + +proc MovePointersToRange*( + self: ptr IMarkupServices, + pIRange: ptr IHTMLTxtRange, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MovePointersToRange(self, pIRange, pPointerStart, pPointerFinish) + +proc MoveRangeToPointers*( + self: ptr IMarkupServices, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + pIRange: ptr IHTMLTxtRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveRangeToPointers(self, pPointerStart, pPointerFinish, pIRange) + +proc BeginUndoUnit*( + self: ptr IMarkupServices, pchTitle: ptr OLECHAR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginUndoUnit(self, pchTitle) + +proc EndUndoUnit*(self: ptr IMarkupServices): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndUndoUnit(self) + +proc ParseGlobalEx*( + self: ptr IMarkupServices2, + hglobalHTML: HGLOBAL, + dwFlags: DWORD, + pContext: ptr IMarkupContainer, + ppContainerResult: ptr ptr IMarkupContainer, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseGlobalEx( + self, hglobalHTML, dwFlags, pContext, ppContainerResult, pPointerStart, + pPointerFinish, + ) + +proc ValidateElements*( + self: ptr IMarkupServices2, + pPointerStart: ptr IMarkupPointer, + pPointerFinish: ptr IMarkupPointer, + pPointerTarget: ptr IMarkupPointer, + pPointerStatus: ptr IMarkupPointer, + ppElemFailBottom: ptr ptr IHTMLElement, + ppElemFailTop: ptr ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ValidateElements( + self, pPointerStart, pPointerFinish, pPointerTarget, pPointerStatus, + ppElemFailBottom, ppElemFailTop, + ) + +proc SaveSegmentsToClipboard*( + self: ptr IMarkupServices2, pSegmentList: ptr ISegmentList, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveSegmentsToClipboard(self, pSegmentList, dwFlags) + +proc OwningDoc*( + self: ptr IMarkupContainer, ppDoc: ptr ptr IHTMLDocument2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OwningDoc(self, ppDoc) + +proc CreateChangeLog*( + self: ptr IMarkupContainer2, + pChangeSink: ptr IHTMLChangeSink, + ppChangeLog: ptr ptr IHTMLChangeLog, + fForward: WINBOOL, + fBackward: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateChangeLog(self, pChangeSink, ppChangeLog, fForward, fBackward) + +proc RegisterForDirtyRange*( + self: ptr IMarkupContainer2, pChangeSink: ptr IHTMLChangeSink, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterForDirtyRange(self, pChangeSink, pdwCookie) + +proc UnRegisterForDirtyRange*( + self: ptr IMarkupContainer2, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnRegisterForDirtyRange(self, dwCookie) + +proc GetAndClearDirtyRange*( + self: ptr IMarkupContainer2, + dwCookie: DWORD, + pIPointerBegin: ptr IMarkupPointer, + pIPointerEnd: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAndClearDirtyRange(self, dwCookie, pIPointerBegin, pIPointerEnd) + +proc GetVersionNumber*(self: ptr IMarkupContainer2): LONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVersionNumber(self) + +proc GetMasterElement*( + self: ptr IMarkupContainer2, ppElementMaster: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMasterElement(self, ppElementMaster) + +proc ExecChange*( + self: ptr IHTMLChangePlayback, pbRecord: ptr BYTE, fForward: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecChange(self, pbRecord, fForward) + +proc OwningDoc*( + self: ptr IMarkupPointer, ppDoc: ptr ptr IHTMLDocument2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OwningDoc(self, ppDoc) + +proc Gravity*( + self: ptr IMarkupPointer, pGravity: ptr POINTER_GRAVITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Gravity(self, pGravity) + +proc SetGravity*( + self: ptr IMarkupPointer, Gravity: POINTER_GRAVITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGravity(self, Gravity) + +proc Cling*( + self: ptr IMarkupPointer, pfCling: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cling(self, pfCling) + +proc SetCling*(self: ptr IMarkupPointer, fCLing: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCling(self, fCLing) + +proc Unposition*(self: ptr IMarkupPointer): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unposition(self) + +proc IsPositioned*( + self: ptr IMarkupPointer, pfPositioned: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsPositioned(self, pfPositioned) + +proc GetContainer*( + self: ptr IMarkupPointer, ppContainer: ptr ptr IMarkupContainer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainer(self, ppContainer) + +proc MoveAdjacentToElement*( + self: ptr IMarkupPointer, pElement: ptr IHTMLElement, eAdj: ELEMENT_ADJACENCY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveAdjacentToElement(self, pElement, eAdj) + +proc MoveToPointer*( + self: ptr IMarkupPointer, pPointer: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToPointer(self, pPointer) + +proc MoveToContainer*( + self: ptr IMarkupPointer, pContainer: ptr IMarkupContainer, fAtStart: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToContainer(self, pContainer, fAtStart) + +proc Left*( + self: ptr IMarkupPointer, + fMove: WINBOOL, + pContext: ptr MARKUP_CONTEXT_TYPE, + ppElement: ptr ptr IHTMLElement, + pcch: ptr LONG, + pchText: ptr OLECHAR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Left(self, fMove, pContext, ppElement, pcch, pchText) + +proc Right*( + self: ptr IMarkupPointer, + fMove: WINBOOL, + pContext: ptr MARKUP_CONTEXT_TYPE, + ppElement: ptr ptr IHTMLElement, + pcch: ptr LONG, + pchText: ptr OLECHAR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Right(self, fMove, pContext, ppElement, pcch, pchText) + +proc CurrentScope*( + self: ptr IMarkupPointer, ppElemCurrent: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CurrentScope(self, ppElemCurrent) + +proc IsLeftOf*( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLeftOf(self, pPointerThat, pfResult) + +proc IsLeftOfOrEqualTo*( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLeftOfOrEqualTo(self, pPointerThat, pfResult) + +proc IsRightOf*( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRightOf(self, pPointerThat, pfResult) + +proc IsRightOfOrEqualTo*( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfResult: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRightOfOrEqualTo(self, pPointerThat, pfResult) + +proc IsEqualTo*( + self: ptr IMarkupPointer, pPointerThat: ptr IMarkupPointer, pfAreEqual: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqualTo(self, pPointerThat, pfAreEqual) + +proc MoveUnit*( + self: ptr IMarkupPointer, muAction: MOVEUNIT_ACTION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveUnit(self, muAction) + +proc FindText*( + self: ptr IMarkupPointer, + pchFindText: ptr OLECHAR, + dwFlags: DWORD, + pIEndMatch: ptr IMarkupPointer, + pIEndSearch: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindText(self, pchFindText, dwFlags, pIEndMatch, pIEndSearch) + +proc IsAtWordBreak*( + self: ptr IMarkupPointer2, pfAtBreak: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsAtWordBreak(self, pfAtBreak) + +proc GetMarkupPosition*( + self: ptr IMarkupPointer2, plMP: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMarkupPosition(self, plMP) + +proc MoveToMarkupPosition*( + self: ptr IMarkupPointer2, pContainer: ptr IMarkupContainer, lMP: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToMarkupPosition(self, pContainer, lMP) + +proc MoveUnitBounded*( + self: ptr IMarkupPointer2, muAction: MOVEUNIT_ACTION, pIBoundary: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveUnitBounded(self, muAction, pIBoundary) + +proc IsInsideURL*( + self: ptr IMarkupPointer2, pRight: ptr IMarkupPointer, pfResult: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsInsideURL(self, pRight, pfResult) + +proc MoveToContent*( + self: ptr IMarkupPointer2, pIElement: ptr IHTMLElement, fAtStart: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToContent(self, pIElement, fAtStart) + +proc GetTextFragCount*( + self: ptr IMarkupTextFrags, pcFrags: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTextFragCount(self, pcFrags) + +proc GetTextFrag*( + self: ptr IMarkupTextFrags, + iFrag: LONG, + pbstrFrag: ptr BSTR, + pPointerFrag: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTextFrag(self, iFrag, pbstrFrag, pPointerFrag) + +proc RemoveTextFrag*( + self: ptr IMarkupTextFrags, iFrag: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveTextFrag(self, iFrag) + +proc InsertTextFrag*( + self: ptr IMarkupTextFrags, + iFrag: LONG, + bstrInsert: BSTR, + pPointerInsert: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertTextFrag(self, iFrag, bstrInsert, pPointerInsert) + +proc FindTextFragFromMarkupPointer*( + self: ptr IMarkupTextFrags, + pPointerFind: ptr IMarkupPointer, + piFrag: ptr LONG, + pfFragFound: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindTextFragFromMarkupPointer(self, pPointerFind, piFrag, pfFragFound) + +proc GetNextChange*( + self: ptr IHTMLChangeLog, + pbBuffer: ptr BYTE, + nBufferSize: LONG, + pnRecordLength: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextChange(self, pbBuffer, nBufferSize, pnRecordLength) + +proc Notify*(self: ptr IHTMLChangeSink): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Notify(self) + +proc SetGenericParse*( + self: ptr IXMLGenericParse, fDoGeneric: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGenericParse(self, fDoGeneric) + +proc SnapRect*( + self: ptr IHTMLEditHost, + pIElement: ptr IHTMLElement, + prcNew: ptr RECT, + eHandle: ELEMENT_CORNER, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SnapRect(self, pIElement, prcNew, eHandle) + +proc PreDrag*(self: ptr IHTMLEditHost2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreDrag(self) + +proc GetPointers*( + self: ptr ISegment, pIStart: ptr IMarkupPointer, pIEnd: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPointers(self, pIStart, pIEnd) + +proc Current*( + self: ptr ISegmentListIterator, ppISegment: ptr ptr ISegment +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Current(self, ppISegment) + +proc First*(self: ptr ISegmentListIterator): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.First(self) + +proc IsDone*(self: ptr ISegmentListIterator): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDone(self) + +proc Advance*(self: ptr ISegmentListIterator): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advance(self) + +proc CreateIterator*( + self: ptr ISegmentList, ppIIter: ptr ptr ISegmentListIterator +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateIterator(self, ppIIter) + +proc GetType*( + self: ptr ISegmentList, peType: ptr SELECTION_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, peType) + +proc IsEmpty*( + self: ptr ISegmentList, pfEmpty: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEmpty(self, pfEmpty) + +proc GetSequenceNumber*( + self: ptr ISequenceNumber, nCurrent: LONG, pnNew: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSequenceNumber(self, nCurrent, pnNew) + +proc GetActiveIMM*( + self: ptr IIMEServices, ppActiveIMM: ptr ptr IActiveIMMApp +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetActiveIMM(self, ppActiveIMM) + +proc MoveCaretToPointer*( + self: ptr IHTMLCaret, + pDispPointer: ptr IDisplayPointer, + fScrollIntoView: WINBOOL, + eDir: CARET_DIRECTION, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveCaretToPointer(self, pDispPointer, fScrollIntoView, eDir) + +proc MoveCaretToPointerEx*( + self: ptr IHTMLCaret, + pDispPointer: ptr IDisplayPointer, + fVisible: WINBOOL, + fScrollIntoView: WINBOOL, + eDir: CARET_DIRECTION, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveCaretToPointerEx( + self, pDispPointer, fVisible, fScrollIntoView, eDir + ) + +proc MoveMarkupPointerToCaret*( + self: ptr IHTMLCaret, pIMarkupPointer: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveMarkupPointerToCaret(self, pIMarkupPointer) + +proc MoveDisplayPointerToCaret*( + self: ptr IHTMLCaret, pDispPointer: ptr IDisplayPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveDisplayPointerToCaret(self, pDispPointer) + +proc IsVisible*( + self: ptr IHTMLCaret, pIsVisible: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsVisible(self, pIsVisible) + +proc Show*(self: ptr IHTMLCaret, fScrollIntoView: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, fScrollIntoView) + +proc Hide*(self: ptr IHTMLCaret): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Hide(self) + +proc InsertText*( + self: ptr IHTMLCaret, pText: ptr OLECHAR, lLen: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertText(self, pText, lLen) + +proc ScrollIntoView*(self: ptr IHTMLCaret): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollIntoView(self) + +proc GetLocation*( + self: ptr IHTMLCaret, pPoint: ptr POINT, fTranslate: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLocation(self, pPoint, fTranslate) + +proc GetCaretDirection*( + self: ptr IHTMLCaret, peDir: ptr CARET_DIRECTION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCaretDirection(self, peDir) + +proc SetCaretDirection*( + self: ptr IHTMLCaret, eDir: CARET_DIRECTION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCaretDirection(self, eDir) + +proc AddSegment*( + self: ptr IHighlightRenderingServices, + pDispPointerStart: ptr IDisplayPointer, + pDispPointerEnd: ptr IDisplayPointer, + pIRenderStyle: ptr IHTMLRenderStyle, + ppISegment: ptr ptr IHighlightSegment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSegment( + self, pDispPointerStart, pDispPointerEnd, pIRenderStyle, ppISegment + ) + +proc MoveSegmentToPointers*( + self: ptr IHighlightRenderingServices, + pISegment: ptr IHighlightSegment, + pDispPointerStart: ptr IDisplayPointer, + pDispPointerEnd: ptr IDisplayPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveSegmentToPointers( + self, pISegment, pDispPointerStart, pDispPointerEnd + ) + +proc RemoveSegment*( + self: ptr IHighlightRenderingServices, pISegment: ptr IHighlightSegment +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveSegment(self, pISegment) + +proc BeginSelectionUndo*( + self: ptr ISelectionServicesListener +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginSelectionUndo(self) + +proc EndSelectionUndo*( + self: ptr ISelectionServicesListener +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndSelectionUndo(self) + +proc OnSelectedElementExit*( + self: ptr ISelectionServicesListener, + pIElementStart: ptr IMarkupPointer, + pIElementEnd: ptr IMarkupPointer, + pIElementContentStart: ptr IMarkupPointer, + pIElementContentEnd: ptr IMarkupPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSelectedElementExit( + self, pIElementStart, pIElementEnd, pIElementContentStart, pIElementContentEnd + ) + +proc OnChangeType*( + self: ptr ISelectionServicesListener, + eType: SELECTION_TYPE, + pIListener: ptr ISelectionServicesListener, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnChangeType(self, eType, pIListener) + +proc GetTypeDetail*( + self: ptr ISelectionServicesListener, pTypeDetail: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeDetail(self, pTypeDetail) + +proc SetSelectionType*( + self: ptr ISelectionServices, + eType: SELECTION_TYPE, + pIListener: ptr ISelectionServicesListener, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSelectionType(self, eType, pIListener) + +proc GetMarkupContainer*( + self: ptr ISelectionServices, ppIContainer: ptr ptr IMarkupContainer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMarkupContainer(self, ppIContainer) + +proc AddSegment*( + self: ptr ISelectionServices, + pIStart: ptr IMarkupPointer, + pIEnd: ptr IMarkupPointer, + ppISegmentAdded: ptr ptr ISegment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSegment(self, pIStart, pIEnd, ppISegmentAdded) + +proc AddElementSegment*( + self: ptr ISelectionServices, + pIElement: ptr IHTMLElement, + ppISegmentAdded: ptr ptr IElementSegment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddElementSegment(self, pIElement, ppISegmentAdded) + +proc RemoveSegment*( + self: ptr ISelectionServices, pISegment: ptr ISegment +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveSegment(self, pISegment) + +proc GetSelectionServicesListener*( + self: ptr ISelectionServices, + ppISelectionServicesListener: ptr ptr ISelectionServicesListener, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectionServicesListener(self, ppISelectionServicesListener) + +proc GetElement*( + self: ptr IElementSegment, ppIElement: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElement(self, ppIElement) + +proc SetPrimary*( + self: ptr IElementSegment, fPrimary: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPrimary(self, fPrimary) + +proc IsPrimary*( + self: ptr IElementSegment, pfPrimary: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsPrimary(self, pfPrimary) + +proc PreHandleEvent*( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreHandleEvent(self, inEvtDispId, pIEventObj) + +proc PostHandleEvent*( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostHandleEvent(self, inEvtDispId, pIEventObj) + +proc TranslateAccelerator*( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, inEvtDispId, pIEventObj) + +proc PostEditorEventNotify*( + self: ptr IHTMLEditDesigner, inEvtDispId: DISPID, pIEventObj: ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostEditorEventNotify(self, inEvtDispId, pIEventObj) + +proc AddDesigner*( + self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddDesigner(self, pIDesigner) + +proc RemoveDesigner*( + self: ptr IHTMLEditServices, pIDesigner: ptr IHTMLEditDesigner +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveDesigner(self, pIDesigner) + +proc GetSelectionServices*( + self: ptr IHTMLEditServices, + pIContainer: ptr IMarkupContainer, + ppSelSvc: ptr ptr ISelectionServices, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectionServices(self, pIContainer, ppSelSvc) + +proc MoveToSelectionAnchor*( + self: ptr IHTMLEditServices, pIStartAnchor: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToSelectionAnchor(self, pIStartAnchor) + +proc MoveToSelectionEnd*( + self: ptr IHTMLEditServices, pIEndAnchor: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToSelectionEnd(self, pIEndAnchor) + +proc SelectRange*( + self: ptr IHTMLEditServices, + pStart: ptr IMarkupPointer, + pEnd: ptr IMarkupPointer, + eType: SELECTION_TYPE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectRange(self, pStart, pEnd, eType) + +proc MoveToSelectionAnchorEx*( + self: ptr IHTMLEditServices2, pIStartAnchor: ptr IDisplayPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToSelectionAnchorEx(self, pIStartAnchor) + +proc MoveToSelectionEndEx*( + self: ptr IHTMLEditServices2, pIEndAnchor: ptr IDisplayPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToSelectionEndEx(self, pIEndAnchor) + +proc FreezeVirtualCaretPos*( + self: ptr IHTMLEditServices2, fReCompute: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FreezeVirtualCaretPos(self, fReCompute) + +proc UnFreezeVirtualCaretPos*( + self: ptr IHTMLEditServices2, fReset: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnFreezeVirtualCaretPos(self, fReset) + +proc get_x*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_x(self, p) + +proc get_baseLine*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseLine(self, p) + +proc get_textDescent*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textDescent(self, p) + +proc get_textHeight*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textHeight(self, p) + +proc get_lineDirection*(self: ptr ILineInfo, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lineDirection(self, p) + +proc get_bold*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_bold(self, p) + +proc get_italic*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_italic(self, p) + +proc get_underline*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_underline(self, p) + +proc get_overline*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_overline(self, p) + +proc get_strikeOut*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_strikeOut(self, p) + +proc get_subScript*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_subScript(self, p) + +proc get_superScript*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_superScript(self, p) + +proc get_explicitFace*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_explicitFace(self, p) + +proc get_fontWeight*( + self: ptr IHTMLComputedStyle, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontWeight(self, p) + +proc get_fontSize*( + self: ptr IHTMLComputedStyle, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontSize(self, p) + +proc get_fontName*( + self: ptr IHTMLComputedStyle, p: ptr TCHAR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fontName(self, p) + +proc get_hasBgColor*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hasBgColor(self, p) + +proc get_textColor*( + self: ptr IHTMLComputedStyle, p: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_textColor(self, p) + +proc get_backgroundColor*( + self: ptr IHTMLComputedStyle, p: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_backgroundColor(self, p) + +proc get_preFormatted*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_preFormatted(self, p) + +proc get_direction*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_direction(self, p) + +proc get_blockDirection*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_blockDirection(self, p) + +proc get_OL*( + self: ptr IHTMLComputedStyle, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_OL(self, p) + +proc IsEqual*( + self: ptr IHTMLComputedStyle, + pComputedStyle: ptr IHTMLComputedStyle, + pfEqual: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqual(self, pComputedStyle, pfEqual) + +proc MoveToPoint*( + self: ptr IDisplayPointer, + ptPoint: POINT, + eCoordSystem: COORD_SYSTEM, + pElementContext: ptr IHTMLElement, + dwHitTestOptions: DWORD, + pdwHitTestResults: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToPoint( + self, ptPoint, eCoordSystem, pElementContext, dwHitTestOptions, pdwHitTestResults + ) + +proc MoveUnit*( + self: ptr IDisplayPointer, eMoveUnit: DISPLAY_MOVEUNIT, lXPos: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveUnit(self, eMoveUnit, lXPos) + +proc PositionMarkupPointer*( + self: ptr IDisplayPointer, pMarkupPointer: ptr IMarkupPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PositionMarkupPointer(self, pMarkupPointer) + +proc MoveToPointer*( + self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToPointer(self, pDispPointer) + +proc SetPointerGravity*( + self: ptr IDisplayPointer, eGravity: POINTER_GRAVITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPointerGravity(self, eGravity) + +proc GetPointerGravity*( + self: ptr IDisplayPointer, peGravity: ptr POINTER_GRAVITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPointerGravity(self, peGravity) + +proc SetDisplayGravity*( + self: ptr IDisplayPointer, eGravity: DISPLAY_GRAVITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDisplayGravity(self, eGravity) + +proc GetDisplayGravity*( + self: ptr IDisplayPointer, peGravity: ptr DISPLAY_GRAVITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayGravity(self, peGravity) + +proc IsPositioned*( + self: ptr IDisplayPointer, pfPositioned: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsPositioned(self, pfPositioned) + +proc Unposition*(self: ptr IDisplayPointer): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unposition(self) + +proc IsEqualTo*( + self: ptr IDisplayPointer, pDispPointer: ptr IDisplayPointer, pfIsEqual: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqualTo(self, pDispPointer, pfIsEqual) + +proc IsLeftOf*( + self: ptr IDisplayPointer, + pDispPointer: ptr IDisplayPointer, + pfIsLeftOf: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLeftOf(self, pDispPointer, pfIsLeftOf) + +proc IsRightOf*( + self: ptr IDisplayPointer, + pDispPointer: ptr IDisplayPointer, + pfIsRightOf: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRightOf(self, pDispPointer, pfIsRightOf) + +proc IsAtBOL*( + self: ptr IDisplayPointer, pfBOL: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsAtBOL(self, pfBOL) + +proc MoveToMarkupPointer*( + self: ptr IDisplayPointer, + pPointer: ptr IMarkupPointer, + pDispLineContext: ptr IDisplayPointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveToMarkupPointer(self, pPointer, pDispLineContext) + +proc ScrollIntoView*(self: ptr IDisplayPointer): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollIntoView(self) + +proc GetLineInfo*( + self: ptr IDisplayPointer, ppLineInfo: ptr ptr ILineInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLineInfo(self, ppLineInfo) + +proc GetFlowElement*( + self: ptr IDisplayPointer, ppLayoutElement: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFlowElement(self, ppLayoutElement) + +proc QueryBreaks*( + self: ptr IDisplayPointer, pdwBreaks: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryBreaks(self, pdwBreaks) + +proc CreateDisplayPointer*( + self: ptr IDisplayServices, ppDispPointer: ptr ptr IDisplayPointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDisplayPointer(self, ppDispPointer) + +proc TransformRect*( + self: ptr IDisplayServices, + pRect: ptr RECT, + eSource: COORD_SYSTEM, + eDestination: COORD_SYSTEM, + pIElement: ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TransformRect(self, pRect, eSource, eDestination, pIElement) + +proc TransformPoint*( + self: ptr IDisplayServices, + pPoint: ptr POINT, + eSource: COORD_SYSTEM, + eDestination: COORD_SYSTEM, + pIElement: ptr IHTMLElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TransformPoint(self, pPoint, eSource, eDestination, pIElement) + +proc GetCaret*( + self: ptr IDisplayServices, ppCaret: ptr ptr IHTMLCaret +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCaret(self, ppCaret) + +proc GetComputedStyle*( + self: ptr IDisplayServices, + pPointer: ptr IMarkupPointer, + ppComputedStyle: ptr ptr IHTMLComputedStyle, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetComputedStyle(self, pPointer, ppComputedStyle) + +proc ScrollRectIntoView*( + self: ptr IDisplayServices, pIElement: ptr IHTMLElement, rect: RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollRectIntoView(self, pIElement, rect) + +proc HasFlowLayout*( + self: ptr IDisplayServices, + pIElement: ptr IHTMLElement, + pfHasFlowLayout: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasFlowLayout(self, pIElement, pfHasFlowLayout) + +proc choosecolordlg*( + self: ptr IHtmlDlgSafeHelper, initColor: VARIANT, rgbColor: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.choosecolordlg(self, initColor, rgbColor) + +proc getCharset*( + self: ptr IHtmlDlgSafeHelper, fontName: BSTR, charset: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getCharset(self, fontName, charset) + +proc get_Fonts*( + self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Fonts(self, p) + +proc get_BlockFormats*( + self: ptr IHtmlDlgSafeHelper, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BlockFormats(self, p) + +proc get_NewEnum*( + self: ptr IBlockFormats, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_NewEnum(self, p) + +proc get_Count*(self: ptr IBlockFormats, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, p) + +proc Item*( + self: ptr IBlockFormats, pvarIndex: ptr VARIANT, pbstrBlockFormat: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, pvarIndex, pbstrBlockFormat) + +proc get_NewEnum*( + self: ptr IFontNames, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_NewEnum(self, p) + +proc get_Count*(self: ptr IFontNames, p: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, p) + +proc Item*( + self: ptr IFontNames, pvarIndex: ptr VARIANT, pbstrFontName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, pvarIndex, pbstrFontName) + +proc Write*( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Write(self, source, level, messageId, messageText) + +proc WriteWithUrl*( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + fileUrl: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteWithUrl(self, source, level, messageId, messageText, fileUrl) + +proc WriteWithUrlAndLine*( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + fileUrl: LPCWSTR, + line: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteWithUrlAndLine( + self, source, level, messageId, messageText, fileUrl, line + ) + +proc WriteWithUrlLineAndColumn*( + self: ptr IDeveloperConsoleMessageReceiver, + source: LPCWSTR, + level: DEV_CONSOLE_MESSAGE_LEVEL, + messageId: int32, + messageText: LPCWSTR, + fileUrl: LPCWSTR, + line: ULONG, + column: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteWithUrlLineAndColumn( + self, source, level, messageId, messageText, fileUrl, line, column + ) + +proc RequestedCallbackTypes*( + self: ptr IDebugCallbackNotificationHandler, pCallbackMask: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestedCallbackTypes(self, pCallbackMask) + +proc BeforeDispatchEvent*( + self: ptr IDebugCallbackNotificationHandler, pEvent: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeforeDispatchEvent(self, pEvent) + +proc DispatchEventComplete*( + self: ptr IDebugCallbackNotificationHandler, + pEvent: ptr IUnknown, + propagationStatus: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DispatchEventComplete(self, pEvent, propagationStatus) + +proc BeforeInvokeDomCallback*( + self: ptr IDebugCallbackNotificationHandler, + pEvent: ptr IUnknown, + pCallback: ptr IScriptEventHandler, + eStage: DOM_EVENT_PHASE, + propagationStatus: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeforeInvokeDomCallback( + self, pEvent, pCallback, eStage, propagationStatus + ) + +proc InvokeDomCallbackComplete*( + self: ptr IDebugCallbackNotificationHandler, + pEvent: ptr IUnknown, + pCallback: ptr IScriptEventHandler, + eStage: DOM_EVENT_PHASE, + propagationStatus: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeDomCallbackComplete( + self, pEvent, pCallback, eStage, propagationStatus + ) + +proc BeforeInvokeCallback*( + self: ptr IDebugCallbackNotificationHandler, + eCallbackType: SCRIPT_TIMER_TYPE, + callbackCookie: DWORD, + pDispHandler: ptr IDispatch, + ullHandlerCookie: ULONGLONG, + functionName: BSTR, + line: UINT32, + column: UINT32, + cchLength: UINT32, + pDebugDocumentContext: ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeforeInvokeCallback( + self, eCallbackType, callbackCookie, pDispHandler, ullHandlerCookie, functionName, + line, column, cchLength, pDebugDocumentContext, + ) + +proc InvokeCallbackComplete*( + self: ptr IDebugCallbackNotificationHandler, + eCallbackType: SCRIPT_TIMER_TYPE, + callbackCookie: DWORD, + pDispHandler: ptr IDispatch, + ullHandlerCookie: ULONGLONG, + functionName: BSTR, + line: UINT32, + column: UINT32, + cchLength: UINT32, + pDebugDocumentContext: ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeCallbackComplete( + self, eCallbackType, callbackCookie, pDispHandler, ullHandlerCookie, functionName, + line, column, cchLength, pDebugDocumentContext, + ) + +proc FunctionName*( + self: ptr IScriptEventHandler, pbstrFunctionName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FunctionName(self, pbstrFunctionName) + +proc DebugDocumentContext*( + self: ptr IScriptEventHandler, ppDebugDocumentContext: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DebugDocumentContext(self, ppDebugDocumentContext) + +proc EventHandlerDispatch*( + self: ptr IScriptEventHandler, ppDispHandler: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EventHandlerDispatch(self, ppDispHandler) + +proc UsesCapture*( + self: ptr IScriptEventHandler, pfUsesCapture: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UsesCapture(self, pfUsesCapture) + +proc Cookie*( + self: ptr IScriptEventHandler, pullCookie: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cookie(self, pullCookie) + +proc GetSourceInfo*( + self: ptr IScriptEventHandlerSourceInfo, + pbstrFunctionName: ptr BSTR, + line: ptr UINT32, + column: ptr UINT32, + cchLength: ptr UINT32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSourceInfo(self, pbstrFunctionName, line, column, cchLength) + +proc OnDOMEventListenerAdded*( + self: ptr IDOMEventRegistrationCallback, + pszEventType: LPCWSTR, + pHandler: ptr IScriptEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDOMEventListenerAdded(self, pszEventType, pHandler) + +proc OnDOMEventListenerRemoved*( + self: ptr IDOMEventRegistrationCallback, ullCookie: ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDOMEventListenerRemoved(self, ullCookie) + +proc GetRegisteredEventTypes*( + self: ptr IEventTarget2, ppEventTypeArray: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRegisteredEventTypes(self, ppEventTypeArray) + +proc GetListenersForType*( + self: ptr IEventTarget2, + pszEventType: LPCWSTR, + ppEventHandlerArray: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetListenersForType(self, pszEventType, ppEventHandlerArray) + +proc RegisterForDOMEventListeners*( + self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterForDOMEventListeners(self, pCallback) + +proc UnregisterForDOMEventListeners*( + self: ptr IEventTarget2, pCallback: ptr IDOMEventRegistrationCallback +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterForDOMEventListeners(self, pCallback) + +proc get_name*(self: ptr IHTMLNamespace, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, p) + +proc get_urn*(self: ptr IHTMLNamespace, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_urn(self, p) + +proc get_tagNames*( + self: ptr IHTMLNamespace, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagNames(self, p) + +proc get_readyState*( + self: ptr IHTMLNamespace, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, p) + +proc put_onreadystatechange*( + self: ptr IHTMLNamespace, v: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, v) + +proc get_onreadystatechange*( + self: ptr IHTMLNamespace, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_onreadystatechange(self, p) + +proc doImport*( + self: ptr IHTMLNamespace, bstrImplementationUrl: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.doImport(self, bstrImplementationUrl) + +proc attachEvent*( + self: ptr IHTMLNamespace, + event: BSTR, + pDisp: ptr IDispatch, + pfResult: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.attachEvent(self, event, pDisp, pfResult) + +proc detachEvent*( + self: ptr IHTMLNamespace, event: BSTR, pDisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.detachEvent(self, event, pDisp) + +proc get_length*( + self: ptr IHTMLNamespaceCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc item*( + self: ptr IHTMLNamespaceCollection, index: VARIANT, ppNamespace: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppNamespace) + +proc add*( + self: ptr IHTMLNamespaceCollection, + bstrNamespace: BSTR, + bstrUrn: BSTR, + implementationUrl: VARIANT, + ppNamespace: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.add(self, bstrNamespace, bstrUrn, implementationUrl, ppNamespace) + +proc Draw*( + self: ptr IHTMLPainter, + rcBounds: RECT, + rcUpdate: RECT, + lDrawFlags: LONG, + hdc: HDC, + pvDrawObject: LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Draw(self, rcBounds, rcUpdate, lDrawFlags, hdc, pvDrawObject) + +proc OnResize*(self: ptr IHTMLPainter, size: SIZE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnResize(self, size) + +proc GetPainterInfo*( + self: ptr IHTMLPainter, pInfo: ptr HTML_PAINTER_INFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPainterInfo(self, pInfo) + +proc HitTestPoint*( + self: ptr IHTMLPainter, pt: POINT, pbHit: ptr WINBOOL, plPartID: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HitTestPoint(self, pt, pbHit, plPartID) + +proc GetEventInfoFlags*( + self: ptr IHTMLPainterEventInfo, plEventInfoFlags: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEventInfoFlags(self, plEventInfoFlags) + +proc GetEventTarget*( + self: ptr IHTMLPainterEventInfo, ppElement: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEventTarget(self, ppElement) + +proc SetCursor*( + self: ptr IHTMLPainterEventInfo, lPartID: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCursor(self, lPartID) + +proc StringFromPartID*( + self: ptr IHTMLPainterEventInfo, lPartID: LONG, pbstrPart: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StringFromPartID(self, lPartID, pbstrPart) + +proc OnMove*( + self: ptr IHTMLPainterOverlay, rcDevice: RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnMove(self, rcDevice) + +proc InvalidatePainterInfo*(self: ptr IHTMLPaintSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidatePainterInfo(self) + +proc InvalidateRect*( + self: ptr IHTMLPaintSite, prcInvalid: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateRect(self, prcInvalid) + +proc InvalidateRegion*( + self: ptr IHTMLPaintSite, rgnInvalid: HRGN +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateRegion(self, rgnInvalid) + +proc GetDrawInfo*( + self: ptr IHTMLPaintSite, lFlags: LONG, pDrawInfo: ptr HTML_PAINT_DRAW_INFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDrawInfo(self, lFlags, pDrawInfo) + +proc TransformGlobalToLocal*( + self: ptr IHTMLPaintSite, ptGlobal: POINT, pptLocal: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TransformGlobalToLocal(self, ptGlobal, pptLocal) + +proc TransformLocalToGlobal*( + self: ptr IHTMLPaintSite, ptLocal: POINT, pptGlobal: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TransformLocalToGlobal(self, ptLocal, pptGlobal) + +proc GetHitTestCookie*( + self: ptr IHTMLPaintSite, plCookie: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHitTestCookie(self, plCookie) + +proc get_length*( + self: ptr IHTMLIPrintCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IHTMLIPrintCollection, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, p) + +proc item*( + self: ptr IHTMLIPrintCollection, index: LONG, ppIPrint: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, index, ppIPrint) + +proc Reset*(self: ptr IEnumPrivacyRecords): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc GetSize*( + self: ptr IEnumPrivacyRecords, pSize: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, pSize) + +proc GetPrivacyImpacted*( + self: ptr IEnumPrivacyRecords, pState: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPrivacyImpacted(self, pState) + +proc Next*( + self: ptr IEnumPrivacyRecords, + pbstrUrl: ptr BSTR, + pbstrPolicyRef: ptr BSTR, + pdwReserved: ptr LONG, + pdwPrivacyFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, pbstrUrl, pbstrPolicyRef, pdwReserved, pdwPrivacyFlags) + +proc GetCount*( + self: ptr IWPCBlockedUrls, pdwCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, pdwCount) + +proc GetUrl*( + self: ptr IWPCBlockedUrls, dwIdx: DWORD, pbstrUrl: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUrl(self, dwIdx, pbstrUrl) + +proc get_Attr*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Attr(self, p) + +proc get_BehaviorUrnsCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BehaviorUrnsCollection(self, p) + +proc get_BookmarkCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BookmarkCollection(self, p) + +proc get_CompatibleInfo*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CompatibleInfo(self, p) + +proc get_CompatibleInfoCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CompatibleInfoCollection(self, p) + +proc get_ControlRangeCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ControlRangeCollection(self, p) + +proc get_CSSCurrentStyleDeclaration*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CSSCurrentStyleDeclaration(self, p) + +proc get_CSSRuleList*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CSSRuleList(self, p) + +proc get_CSSRuleStyleDeclaration*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CSSRuleStyleDeclaration(self, p) + +proc get_CSSStyleDeclaration*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CSSStyleDeclaration(self, p) + +proc get_CSSStyleRule*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CSSStyleRule(self, p) + +proc get_CSSStyleSheet*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CSSStyleSheet(self, p) + +proc get_DataTransfer*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DataTransfer(self, p) + +proc get_DOMImplementation*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DOMImplementation(self, p) + +proc get_Element*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Element(self, p) + +proc get_Event*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Event(self, p) + +proc get_History*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_History(self, p) + +proc get_HTCElementBehaviorDefaults*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTCElementBehaviorDefaults(self, p) + +proc get_HTMLAnchorElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLAnchorElement(self, p) + +proc get_HTMLAreaElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLAreaElement(self, p) + +proc get_HTMLAreasCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLAreasCollection(self, p) + +proc get_HTMLBaseElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLBaseElement(self, p) + +proc get_HTMLBaseFontElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLBaseFontElement(self, p) + +proc get_HTMLBGSoundElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLBGSoundElement(self, p) + +proc get_HTMLBlockElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLBlockElement(self, p) + +proc get_HTMLBodyElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLBodyElement(self, p) + +proc get_HTMLBRElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLBRElement(self, p) + +proc get_HTMLButtonElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLButtonElement(self, p) + +proc get_HTMLCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLCollection(self, p) + +proc get_HTMLCommentElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLCommentElement(self, p) + +proc get_HTMLDDElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLDDElement(self, p) + +proc get_HTMLDivElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLDivElement(self, p) + +proc get_HTMLDocument*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLDocument(self, p) + +proc get_HTMLDListElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLDListElement(self, p) + +proc get_HTMLDTElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLDTElement(self, p) + +proc get_HTMLEmbedElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLEmbedElement(self, p) + +proc get_HTMLFieldSetElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLFieldSetElement(self, p) + +proc get_HTMLFontElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLFontElement(self, p) + +proc get_HTMLFormElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLFormElement(self, p) + +proc get_HTMLFrameElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLFrameElement(self, p) + +proc get_HTMLFrameSetElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLFrameSetElement(self, p) + +proc get_HTMLGenericElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLGenericElement(self, p) + +proc get_HTMLHeadElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLHeadElement(self, p) + +proc get_HTMLHeadingElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLHeadingElement(self, p) + +proc get_HTMLHRElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLHRElement(self, p) + +proc get_HTMLHtmlElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLHtmlElement(self, p) + +proc get_HTMLIFrameElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLIFrameElement(self, p) + +proc get_HTMLImageElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLImageElement(self, p) + +proc get_HTMLInputElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLInputElement(self, p) + +proc get_HTMLIsIndexElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLIsIndexElement(self, p) + +proc get_HTMLLabelElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLLabelElement(self, p) + +proc get_HTMLLegendElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLLegendElement(self, p) + +proc get_HTMLLIElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLLIElement(self, p) + +proc get_HTMLLinkElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLLinkElement(self, p) + +proc get_HTMLMapElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLMapElement(self, p) + +proc get_HTMLMarqueeElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLMarqueeElement(self, p) + +proc get_HTMLMetaElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLMetaElement(self, p) + +proc get_HTMLModelessDialog*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLModelessDialog(self, p) + +proc get_HTMLNamespaceInfo*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLNamespaceInfo(self, p) + +proc get_HTMLNamespaceInfoCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLNamespaceInfoCollection(self, p) + +proc get_HTMLNextIdElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLNextIdElement(self, p) + +proc get_HTMLNoShowElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLNoShowElement(self, p) + +proc get_HTMLObjectElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLObjectElement(self, p) + +proc get_HTMLOListElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLOListElement(self, p) + +proc get_HTMLOptionElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLOptionElement(self, p) + +proc get_HTMLParagraphElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLParagraphElement(self, p) + +proc get_HTMLParamElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLParamElement(self, p) + +proc get_HTMLPhraseElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLPhraseElement(self, p) + +proc get_HTMLPluginsCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLPluginsCollection(self, p) + +proc get_HTMLPopup*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLPopup(self, p) + +proc get_HTMLScriptElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLScriptElement(self, p) + +proc get_HTMLSelectElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLSelectElement(self, p) + +proc get_HTMLSpanElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLSpanElement(self, p) + +proc get_HTMLStyleElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLStyleElement(self, p) + +proc get_HTMLTableCaptionElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTableCaptionElement(self, p) + +proc get_HTMLTableCellElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTableCellElement(self, p) + +proc get_HTMLTableColElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTableColElement(self, p) + +proc get_HTMLTableElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTableElement(self, p) + +proc get_HTMLTableRowElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTableRowElement(self, p) + +proc get_HTMLTableSectionElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTableSectionElement(self, p) + +proc get_HTMLTextAreaElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTextAreaElement(self, p) + +proc get_HTMLTextElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTextElement(self, p) + +proc get_HTMLTitleElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLTitleElement(self, p) + +proc get_HTMLUListElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLUListElement(self, p) + +proc get_HTMLUnknownElement*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HTMLUnknownElement(self, p) + +proc get_Image*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Image(self, p) + +proc get_Location*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Location(self, p) + +proc get_NamedNodeMap*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_NamedNodeMap(self, p) + +proc get_Navigator*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Navigator(self, p) + +proc get_NodeList*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_NodeList(self, p) + +proc get_Option*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Option(self, p) + +proc get_Screen*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Screen(self, p) + +proc get_Selection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Selection(self, p) + +proc get_StaticNodeList*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StaticNodeList(self, p) + +proc get_Storage*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Storage(self, p) + +proc get_StyleSheetList*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StyleSheetList(self, p) + +proc get_StyleSheetPage*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StyleSheetPage(self, p) + +proc get_StyleSheetPageList*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StyleSheetPageList(self, p) + +proc get_Text*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Text(self, p) + +proc get_TextRange*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextRange(self, p) + +proc get_TextRangeCollection*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextRangeCollection(self, p) + +proc get_TextRectangle*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextRectangle(self, p) + +proc get_TextRectangleList*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextRectangleList(self, p) + +proc get_Window*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Window(self, p) + +proc get_XDomainRequest*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_XDomainRequest(self, p) + +proc get_XMLHttpRequest*( + self: ptr IHTMLDOMConstructorCollection, p: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_XMLHttpRequest(self, p) + +proc put_dialogTop*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dialogTop(self, v) + +proc get_dialogTop*(self: ptr IHTMLDialog, p: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dialogTop(self, p) + +proc put_dialogLeft*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dialogLeft(self, v) + +proc get_dialogLeft*( + self: ptr IHTMLDialog, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dialogLeft(self, p) + +proc put_dialogWidth*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dialogWidth(self, v) + +proc get_dialogWidth*( + self: ptr IHTMLDialog, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dialogWidth(self, p) + +proc put_dialogHeight*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dialogHeight(self, v) + +proc get_dialogHeight*( + self: ptr IHTMLDialog, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dialogHeight(self, p) + +proc get_dialogArguments*( + self: ptr IHTMLDialog, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dialogArguments(self, p) + +proc get_menuArguments*( + self: ptr IHTMLDialog, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_menuArguments(self, p) + +proc put_returnValue*(self: ptr IHTMLDialog, v: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_returnValue(self, v) + +proc get_returnValue*( + self: ptr IHTMLDialog, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_returnValue(self, p) + +proc close*(self: ptr IHTMLDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.close(self) + +proc toString*(self: ptr IHTMLDialog, String: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.toString(self, String) + +proc put_status*(self: ptr IHTMLDialog2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_status(self, v) + +proc get_status*(self: ptr IHTMLDialog2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, p) + +proc put_resizable*(self: ptr IHTMLDialog2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_resizable(self, v) + +proc get_resizable*(self: ptr IHTMLDialog2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_resizable(self, p) + +proc put_unadorned*(self: ptr IHTMLDialog3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_unadorned(self, v) + +proc get_unadorned*(self: ptr IHTMLDialog3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_unadorned(self, p) + +proc put_dialogHide*(self: ptr IHTMLDialog3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dialogHide(self, v) + +proc get_dialogHide*(self: ptr IHTMLDialog3, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dialogHide(self, p) + +proc get_parameters*( + self: ptr IHTMLModelessInit, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parameters(self, p) + +proc get_optionString*( + self: ptr IHTMLModelessInit, p: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_optionString(self, p) + +proc get_moniker*( + self: ptr IHTMLModelessInit, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_moniker(self, p) + +proc get_document*( + self: ptr IHTMLModelessInit, p: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_document(self, p) + +proc show*( + self: ptr IHTMLPopup, x: LONG, y: LONG, w: LONG, h: LONG, pElement: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.show(self, x, y, w, h, pElement) + +proc hide*(self: ptr IHTMLPopup): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hide(self) + +proc get_document*( + self: ptr IHTMLPopup, p: ptr ptr IHTMLDocument +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_document(self, p) + +proc get_isOpen*( + self: ptr IHTMLPopup, p: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_isOpen(self, p) + +proc put_applicationName*( + self: ptr IHTMLAppBehavior, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_applicationName(self, v) + +proc get_applicationName*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_applicationName(self, p) + +proc put_version*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_version(self, v) + +proc get_version*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_version(self, p) + +proc put_icon*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_icon(self, v) + +proc get_icon*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_icon(self, p) + +proc put_singleInstance*( + self: ptr IHTMLAppBehavior, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_singleInstance(self, v) + +proc get_singleInstance*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_singleInstance(self, p) + +proc put_minimizeButton*( + self: ptr IHTMLAppBehavior, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_minimizeButton(self, v) + +proc get_minimizeButton*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_minimizeButton(self, p) + +proc put_maximizeButton*( + self: ptr IHTMLAppBehavior, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_maximizeButton(self, v) + +proc get_maximizeButton*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_maximizeButton(self, p) + +proc put_border*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_border(self, v) + +proc get_border*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_border(self, p) + +proc put_borderStyle*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_borderStyle(self, v) + +proc get_borderStyle*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_borderStyle(self, p) + +proc put_sysMenu*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_sysMenu(self, v) + +proc get_sysMenu*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_sysMenu(self, p) + +proc put_caption*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_caption(self, v) + +proc get_caption*(self: ptr IHTMLAppBehavior, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_caption(self, p) + +proc put_windowState*(self: ptr IHTMLAppBehavior, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_windowState(self, v) + +proc get_windowState*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_windowState(self, p) + +proc put_showInTaskBar*( + self: ptr IHTMLAppBehavior, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_showInTaskBar(self, v) + +proc get_showInTaskBar*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_showInTaskBar(self, p) + +proc get_commandLine*( + self: ptr IHTMLAppBehavior, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_commandLine(self, p) + +proc put_contextMenu*( + self: ptr IHTMLAppBehavior2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_contextMenu(self, v) + +proc get_contextMenu*( + self: ptr IHTMLAppBehavior2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_contextMenu(self, p) + +proc put_innerBorder*( + self: ptr IHTMLAppBehavior2, v: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_innerBorder(self, v) + +proc get_innerBorder*( + self: ptr IHTMLAppBehavior2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_innerBorder(self, p) + +proc put_scroll*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scroll(self, v) + +proc get_scroll*(self: ptr IHTMLAppBehavior2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scroll(self, p) + +proc put_scrollFlat*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_scrollFlat(self, v) + +proc get_scrollFlat*( + self: ptr IHTMLAppBehavior2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_scrollFlat(self, p) + +proc put_selection*(self: ptr IHTMLAppBehavior2, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_selection(self, v) + +proc get_selection*( + self: ptr IHTMLAppBehavior2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_selection(self, p) + +proc put_navigable*(self: ptr IHTMLAppBehavior3, v: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_navigable(self, v) + +proc get_navigable*( + self: ptr IHTMLAppBehavior3, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_navigable(self, p) + +proc FindBehavior*( + self: ptr IElementBehaviorFactory, + bstrBehavior: BSTR, + bstrBehaviorUrl: BSTR, + pSite: ptr IElementBehaviorSite, + ppBehavior: ptr ptr IElementBehavior, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindBehavior(self, bstrBehavior, bstrBehaviorUrl, pSite, ppBehavior) + +proc AddTag*( + self: ptr IElementNamespace, bstrTagName: BSTR, lFlags: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddTag(self, bstrTagName, lFlags) + +proc AddNamespace*( + self: ptr IElementNamespaceTable, + bstrNamespace: BSTR, + bstrUrn: BSTR, + lFlags: LONG, + pvarFactory: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddNamespace(self, bstrNamespace, bstrUrn, lFlags, pvarFactory) + +proc Create*( + self: ptr IElementNamespaceFactory, pNamespace: ptr IElementNamespace +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Create(self, pNamespace) + +proc CreateWithImplementation*( + self: ptr IElementNamespaceFactory2, + pNamespace: ptr IElementNamespace, + bstrImplementation: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateWithImplementation(self, pNamespace, bstrImplementation) + +proc Resolve*( + self: ptr IElementNamespaceFactoryCallback, + bstrNamespace: BSTR, + bstrTagName: BSTR, + bstrAttrs: BSTR, + pNamespace: ptr IElementNamespace, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resolve(self, bstrNamespace, bstrTagName, bstrAttrs, pNamespace) + +proc Init*( + self: ptr IElementBehavior, pBehaviorSite: ptr IElementBehaviorSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Init(self, pBehaviorSite) + +proc Notify*( + self: ptr IElementBehavior, lEvent: LONG, pVar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Notify(self, lEvent, pVar) + +proc Detach*(self: ptr IElementBehavior): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Detach(self) + +proc GetElement*( + self: ptr IElementBehaviorSite, ppElement: ptr ptr IHTMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElement(self, ppElement) + +proc RegisterNotification*( + self: ptr IElementBehaviorSite, lEvent: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterNotification(self, lEvent) + +proc RegisterEvent*( + self: ptr IElementBehaviorSiteOM, + pchEvent: LPOLESTR, + lFlags: LONG, + plCookie: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterEvent(self, pchEvent, lFlags, plCookie) + +proc GetEventCookie*( + self: ptr IElementBehaviorSiteOM, pchEvent: LPOLESTR, plCookie: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEventCookie(self, pchEvent, plCookie) + +proc FireEvent*( + self: ptr IElementBehaviorSiteOM, lCookie: LONG, pEventObject: ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FireEvent(self, lCookie, pEventObject) + +proc CreateEventObject*( + self: ptr IElementBehaviorSiteOM, ppEventObject: ptr ptr IHTMLEventObj +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateEventObject(self, ppEventObject) + +proc RegisterName*( + self: ptr IElementBehaviorSiteOM, pchName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterName(self, pchName) + +proc RegisterUrn*( + self: ptr IElementBehaviorSiteOM, pchUrn: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterUrn(self, pchUrn) + +proc GetDefaults*( + self: ptr IElementBehaviorSiteOM2, ppDefaults: ptr ptr IHTMLElementDefaults +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaults(self, ppDefaults) + +proc Draw*( + self: ptr IElementBehaviorRender, + hdc: HDC, + lLayer: LONG, + pRect: ptr RECT, + pReserved: ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Draw(self, hdc, lLayer, pRect, pReserved) + +proc GetRenderInfo*( + self: ptr IElementBehaviorRender, plRenderInfo: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRenderInfo(self, plRenderInfo) + +proc HitTestPoint*( + self: ptr IElementBehaviorRender, + pPoint: ptr POINT, + pReserved: ptr IUnknown, + pbHit: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HitTestPoint(self, pPoint, pReserved, pbHit) + +proc Invalidate*( + self: ptr IElementBehaviorSiteRender, pRect: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invalidate(self, pRect) + +proc InvalidateRenderInfo*( + self: ptr IElementBehaviorSiteRender +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateRenderInfo(self) + +proc InvalidateStyle*( + self: ptr IElementBehaviorSiteRender +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateStyle(self) + +proc GetCategory*( + self: ptr IElementBehaviorCategory, ppchCategory: ptr LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategory(self, ppchCategory) + +proc GetRelatedBehaviors*( + self: ptr IElementBehaviorSiteCategory, + lDirection: LONG, + pchCategory: LPOLESTR, + ppEnumerator: ptr ptr IEnumUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRelatedBehaviors(self, lDirection, pchCategory, ppEnumerator) + +proc GetSubmitInfo*( + self: ptr IElementBehaviorSubmit, pSubmitData: ptr IHTMLSubmitData +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSubmitInfo(self, pSubmitData) + +proc Reset*(self: ptr IElementBehaviorSubmit): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc GetFocusRect*( + self: ptr IElementBehaviorFocus, pRect: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFocusRect(self, pRect) + +proc GetSize*( + self: ptr IElementBehaviorLayout, + dwFlags: LONG, + sizeContent: SIZE, + pptTranslateBy: ptr POINT, + pptTopLeft: ptr POINT, + psizeProposed: ptr SIZE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize( + self, dwFlags, sizeContent, pptTranslateBy, pptTopLeft, psizeProposed + ) + +proc GetLayoutInfo*( + self: ptr IElementBehaviorLayout, plLayoutInfo: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLayoutInfo(self, plLayoutInfo) + +proc GetPosition*( + self: ptr IElementBehaviorLayout, lFlags: LONG, pptTopLeft: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPosition(self, lFlags, pptTopLeft) + +proc MapSize*( + self: ptr IElementBehaviorLayout, psizeIn: ptr SIZE, prcOut: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapSize(self, psizeIn, prcOut) + +proc GetTextDescent*( + self: ptr IElementBehaviorLayout2, plDescent: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTextDescent(self, plDescent) + +proc InvalidateLayoutInfo*( + self: ptr IElementBehaviorSiteLayout +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateLayoutInfo(self) + +proc InvalidateSize*(self: ptr IElementBehaviorSiteLayout): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateSize(self) + +proc GetMediaResolution*( + self: ptr IElementBehaviorSiteLayout, psizeResolution: ptr SIZE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMediaResolution(self, psizeResolution) + +proc GetFontInfo*( + self: ptr IElementBehaviorSiteLayout2, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFontInfo(self, plf) + +proc PopulateNamespaceTable*(self: ptr IHostBehaviorInit): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PopulateNamespaceTable(self) + +proc CreateSurfacePresenter*( + self: ptr IViewObjectPresentSite, + pDevice: ptr IUnknown, + width: UINT, + height: UINT, + backBufferCount: UINT, + format: DXGI_FORMAT, + mode: VIEW_OBJECT_ALPHA_MODE, + ppQueue: ptr ptr ISurfacePresenter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateSurfacePresenter( + self, pDevice, width, height, backBufferCount, format, mode, ppQueue + ) + +proc IsHardwareComposition*( + self: ptr IViewObjectPresentSite, pIsHardwareComposition: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsHardwareComposition(self, pIsHardwareComposition) + +proc SetCompositionMode*( + self: ptr IViewObjectPresentSite, mode: VIEW_OBJECT_COMPOSITION_MODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionMode(self, mode) + +proc Present*( + self: ptr ISurfacePresenter, uBuffer: UINT, pDirty: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Present(self, uBuffer, pDirty) + +proc GetBuffer*( + self: ptr ISurfacePresenter, + backBufferIndex: UINT, + riid: REFIID, + ppBuffer: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBuffer(self, backBufferIndex, riid, ppBuffer) + +proc IsCurrent*( + self: ptr ISurfacePresenter, pIsCurrent: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsCurrent(self, pIsCurrent) + +proc GetBufferPointer*( + self: ptr ICanvasPixelArrayData, ppBuffer: ptr ptr BYTE, pBufferLength: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBufferPointer(self, ppBuffer, pBufferLength) + +proc GetPrintBitmap*( + self: ptr IViewObjectPrint, ppPrintBitmap: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPrintBitmap(self, ppPrintBitmap) + +proc RequestFrame*(self: ptr IViewObjectPresentNotifySite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestFrame(self) + +proc OnPreRender*(self: ptr IViewObjectPresentNotify): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPreRender(self) + +proc EvaluateUrl*( + self: ptr ITrackingProtection, bstrUrl: BSTR, pfAllowed: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EvaluateUrl(self, bstrUrl, pfAllowed) + +proc GetEnabled*( + self: ptr ITrackingProtection, pfEnabled: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnabled(self, pfEnabled) + +proc ShowHTMLDialog*( + self: ptr IHostDialogHelper, + hwndParent: HWND, + pMk: ptr IMoniker, + pvarArgIn: ptr VARIANT, + pchOptions: ptr WCHAR, + pvarArgOut: ptr VARIANT, + punkHost: ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowHTMLDialog( + self, hwndParent, pMk, pvarArgIn, pchOptions, pvarArgOut, punkHost + ) + +proc ShowContextMenu*( + self: ptr IDocHostUIHandler, + dwID: DWORD, + ppt: ptr POINT, + pcmdtReserved: ptr IUnknown, + pdispReserved: ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowContextMenu(self, dwID, ppt, pcmdtReserved, pdispReserved) + +proc GetHostInfo*( + self: ptr IDocHostUIHandler, pInfo: ptr DOCHOSTUIINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHostInfo(self, pInfo) + +proc ShowUI*( + self: ptr IDocHostUIHandler, + dwID: DWORD, + pActiveObject: ptr IOleInPlaceActiveObject, + pCommandTarget: ptr IOleCommandTarget, + pFrame: ptr IOleInPlaceFrame, + pDoc: ptr IOleInPlaceUIWindow, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowUI(self, dwID, pActiveObject, pCommandTarget, pFrame, pDoc) + +proc HideUI*(self: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HideUI(self) + +proc UpdateUI*(self: ptr IDocHostUIHandler): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateUI(self) + +proc EnableModeless*( + self: ptr IDocHostUIHandler, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModeless(self, fEnable) + +proc OnDocWindowActivate*( + self: ptr IDocHostUIHandler, fActivate: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDocWindowActivate(self, fActivate) + +proc OnFrameWindowActivate*( + self: ptr IDocHostUIHandler, fActivate: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFrameWindowActivate(self, fActivate) + +proc ResizeBorder*( + self: ptr IDocHostUIHandler, + prcBorder: LPCRECT, + pUIWindow: ptr IOleInPlaceUIWindow, + fRameWindow: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResizeBorder(self, prcBorder, pUIWindow, fRameWindow) + +proc TranslateAccelerator*( + self: ptr IDocHostUIHandler, lpMsg: LPMSG, pguidCmdGroup: ptr GUID, nCmdID: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, lpMsg, pguidCmdGroup, nCmdID) + +proc GetOptionKeyPath*( + self: ptr IDocHostUIHandler, pchKey: ptr LPOLESTR, dw: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOptionKeyPath(self, pchKey, dw) + +proc GetDropTarget*( + self: ptr IDocHostUIHandler, + pDropTarget: ptr IDropTarget, + ppDropTarget: ptr ptr IDropTarget, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDropTarget(self, pDropTarget, ppDropTarget) + +proc GetExternal*( + self: ptr IDocHostUIHandler, ppDispatch: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExternal(self, ppDispatch) + +proc TranslateUrl*( + self: ptr IDocHostUIHandler, + dwTranslate: DWORD, + pchURLIn: LPWSTR, + ppchURLOut: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateUrl(self, dwTranslate, pchURLIn, ppchURLOut) + +proc FilterDataObject*( + self: ptr IDocHostUIHandler, pDO: ptr IDataObject, ppDORet: ptr ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FilterDataObject(self, pDO, ppDORet) + +proc GetOverrideKeyPath*( + self: ptr IDocHostUIHandler2, pchKey: ptr LPOLESTR, dw: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOverrideKeyPath(self, pchKey, dw) + +proc SetUIHandler*( + self: ptr ICustomDoc, pUIHandler: ptr IDocHostUIHandler +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetUIHandler(self, pUIHandler) + +proc ShowMessage*( + self: ptr IDocHostShowUI, + hwnd: HWND, + lpstrText: LPOLESTR, + lpstrCaption: LPOLESTR, + dwType: DWORD, + lpstrHelpFile: LPOLESTR, + dwHelpContext: DWORD, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowMessage( + self, hwnd, lpstrText, lpstrCaption, dwType, lpstrHelpFile, dwHelpContext, + plResult, + ) + +proc ShowHelp*( + self: ptr IDocHostShowUI, + hwnd: HWND, + pszHelpFile: LPOLESTR, + uCommand: UINT, + dwData: DWORD, + ptMouse: POINT, + pDispatchObjectHit: ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowHelp( + self, hwnd, pszHelpFile, uCommand, dwData, ptMouse, pDispatchObjectHit + ) + +proc CreateInstanceWithContext*( + self: ptr IClassFactoryEx, + punkContext: ptr IUnknown, + punkOuter: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstanceWithContext(self, punkContext, punkOuter, riid, ppv) + +proc moveTo*( + self: ptr IHTMLOMWindowServices, x: LONG, y: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveTo(self, x, y) + +proc moveBy*( + self: ptr IHTMLOMWindowServices, x: LONG, y: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.moveBy(self, x, y) + +proc resizeTo*( + self: ptr IHTMLOMWindowServices, x: LONG, y: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.resizeTo(self, x, y) + +proc resizeBy*( + self: ptr IHTMLOMWindowServices, x: LONG, y: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.resizeBy(self, x, y) + +converter winimConverterIDispatchExToIDispatch*(x: ptr IDispatchEx): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDispatchExToIUnknown*(x: ptr IDispatchEx): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDispErrorToIUnknown*(x: ptr IDispError): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIVariantChangeTypeToIUnknown*( + x: ptr IVariantChangeType +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectIdentityToIUnknown*( + x: ptr IObjectIdentity +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanHandleExceptionToIUnknown*( + x: ptr ICanHandleException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProvideRuntimeContextToIUnknown*( + x: ptr IProvideRuntimeContext +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFiltersCollectionToIDispatch*( + x: ptr IHTMLFiltersCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFiltersCollectionToIUnknown*( + x: ptr IHTMLFiltersCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIIE70DispatchExToIDispatchEx*( + x: ptr IIE70DispatchEx +): ptr IDispatchEx = + cast[ptr IDispatchEx](x) + +converter winimConverterIIE70DispatchExToIDispatch*( + x: ptr IIE70DispatchEx +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIIE70DispatchExToIUnknown*( + x: ptr IIE70DispatchEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIIE80DispatchExToIDispatchEx*( + x: ptr IIE80DispatchEx +): ptr IDispatchEx = + cast[ptr IDispatchEx](x) + +converter winimConverterIIE80DispatchExToIDispatch*( + x: ptr IIE80DispatchEx +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIIE80DispatchExToIUnknown*( + x: ptr IIE80DispatchEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMConstructorToIDispatch*( + x: ptr IHTMLDOMConstructor +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMConstructorToIUnknown*( + x: ptr IHTMLDOMConstructor +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSStyleDeclarationToIDispatch*( + x: ptr IHTMLCSSStyleDeclaration +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSStyleDeclarationToIUnknown*( + x: ptr IHTMLCSSStyleDeclaration +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSStyleDeclaration2ToIDispatch*( + x: ptr IHTMLCSSStyleDeclaration2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSStyleDeclaration2ToIUnknown*( + x: ptr IHTMLCSSStyleDeclaration2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleEnabledToIDispatch*( + x: ptr IHTMLStyleEnabled +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleEnabledToIUnknown*( + x: ptr IHTMLStyleEnabled +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCSSStyleDeclarationToIDispatch*( + x: ptr DispHTMLCSSStyleDeclaration +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCSSStyleDeclarationToIUnknown*( + x: ptr DispHTMLCSSStyleDeclaration +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleToIDispatch*(x: ptr IHTMLStyle): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleToIUnknown*(x: ptr IHTMLStyle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyle2ToIDispatch*(x: ptr IHTMLStyle2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyle2ToIUnknown*(x: ptr IHTMLStyle2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyle3ToIDispatch*(x: ptr IHTMLStyle3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyle3ToIUnknown*(x: ptr IHTMLStyle3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyle4ToIDispatch*(x: ptr IHTMLStyle4): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyle4ToIUnknown*(x: ptr IHTMLStyle4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyle5ToIDispatch*(x: ptr IHTMLStyle5): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyle5ToIUnknown*(x: ptr IHTMLStyle5): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyle6ToIDispatch*(x: ptr IHTMLStyle6): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyle6ToIUnknown*(x: ptr IHTMLStyle6): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRuleStyleToIDispatch*( + x: ptr IHTMLRuleStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRuleStyleToIUnknown*(x: ptr IHTMLRuleStyle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRuleStyle2ToIDispatch*( + x: ptr IHTMLRuleStyle2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRuleStyle2ToIUnknown*( + x: ptr IHTMLRuleStyle2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRuleStyle3ToIDispatch*( + x: ptr IHTMLRuleStyle3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRuleStyle3ToIUnknown*( + x: ptr IHTMLRuleStyle3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRuleStyle4ToIDispatch*( + x: ptr IHTMLRuleStyle4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRuleStyle4ToIUnknown*( + x: ptr IHTMLRuleStyle4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRuleStyle5ToIDispatch*( + x: ptr IHTMLRuleStyle5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRuleStyle5ToIUnknown*( + x: ptr IHTMLRuleStyle5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRuleStyle6ToIDispatch*( + x: ptr IHTMLRuleStyle6 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRuleStyle6ToIUnknown*( + x: ptr IHTMLRuleStyle6 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleToIDispatch*(x: ptr DispHTMLStyle): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleToIUnknown*(x: ptr DispHTMLStyle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLRuleStyleToIDispatch*( + x: ptr DispHTMLRuleStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLRuleStyleToIUnknown*( + x: ptr DispHTMLRuleStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSRuleToIDispatch*(x: ptr IHTMLCSSRule): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSRuleToIUnknown*(x: ptr IHTMLCSSRule): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSImportRuleToIDispatch*( + x: ptr IHTMLCSSImportRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSImportRuleToIUnknown*( + x: ptr IHTMLCSSImportRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSMediaRuleToIDispatch*( + x: ptr IHTMLCSSMediaRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSMediaRuleToIUnknown*( + x: ptr IHTMLCSSMediaRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSMediaListToIDispatch*( + x: ptr IHTMLCSSMediaList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSMediaListToIUnknown*( + x: ptr IHTMLCSSMediaList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCSSNamespaceRuleToIDispatch*( + x: ptr IHTMLCSSNamespaceRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCSSNamespaceRuleToIUnknown*( + x: ptr IHTMLCSSNamespaceRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMSCSSKeyframeRuleToIDispatch*( + x: ptr IHTMLMSCSSKeyframeRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMSCSSKeyframeRuleToIUnknown*( + x: ptr IHTMLMSCSSKeyframeRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMSCSSKeyframesRuleToIDispatch*( + x: ptr IHTMLMSCSSKeyframesRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMSCSSKeyframesRuleToIUnknown*( + x: ptr IHTMLMSCSSKeyframesRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCSSRuleToIDispatch*( + x: ptr DispHTMLCSSRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCSSRuleToIUnknown*( + x: ptr DispHTMLCSSRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCSSImportRuleToIDispatch*( + x: ptr DispHTMLCSSImportRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCSSImportRuleToIUnknown*( + x: ptr DispHTMLCSSImportRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCSSMediaRuleToIDispatch*( + x: ptr DispHTMLCSSMediaRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCSSMediaRuleToIUnknown*( + x: ptr DispHTMLCSSMediaRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCSSMediaListToIDispatch*( + x: ptr DispHTMLCSSMediaList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCSSMediaListToIUnknown*( + x: ptr DispHTMLCSSMediaList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCSSNamespaceRuleToIDispatch*( + x: ptr DispHTMLCSSNamespaceRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCSSNamespaceRuleToIUnknown*( + x: ptr DispHTMLCSSNamespaceRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMSCSSKeyframeRuleToIDispatch*( + x: ptr DispHTMLMSCSSKeyframeRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMSCSSKeyframeRuleToIUnknown*( + x: ptr DispHTMLMSCSSKeyframeRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMSCSSKeyframesRuleToIDispatch*( + x: ptr DispHTMLMSCSSKeyframesRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMSCSSKeyframesRuleToIUnknown*( + x: ptr DispHTMLMSCSSKeyframesRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRenderStyleToIDispatch*( + x: ptr IHTMLRenderStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRenderStyleToIUnknown*( + x: ptr IHTMLRenderStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLRenderStyleToIDispatch*( + x: ptr DispHTMLRenderStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLRenderStyleToIUnknown*( + x: ptr DispHTMLRenderStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCurrentStyleToIDispatch*( + x: ptr IHTMLCurrentStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCurrentStyleToIUnknown*( + x: ptr IHTMLCurrentStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCurrentStyle2ToIDispatch*( + x: ptr IHTMLCurrentStyle2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCurrentStyle2ToIUnknown*( + x: ptr IHTMLCurrentStyle2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCurrentStyle3ToIDispatch*( + x: ptr IHTMLCurrentStyle3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCurrentStyle3ToIUnknown*( + x: ptr IHTMLCurrentStyle3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCurrentStyle4ToIDispatch*( + x: ptr IHTMLCurrentStyle4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCurrentStyle4ToIUnknown*( + x: ptr IHTMLCurrentStyle4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCurrentStyle5ToIDispatch*( + x: ptr IHTMLCurrentStyle5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCurrentStyle5ToIUnknown*( + x: ptr IHTMLCurrentStyle5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCurrentStyleToIDispatch*( + x: ptr DispHTMLCurrentStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCurrentStyleToIUnknown*( + x: ptr DispHTMLCurrentStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRectToIDispatch*(x: ptr IHTMLRect): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRectToIUnknown*(x: ptr IHTMLRect): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRect2ToIDispatch*(x: ptr IHTMLRect2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRect2ToIUnknown*(x: ptr IHTMLRect2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLRectCollectionToIDispatch*( + x: ptr IHTMLRectCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLRectCollectionToIUnknown*( + x: ptr IHTMLRectCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMNodeToIDispatch*(x: ptr IHTMLDOMNode): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMNodeToIUnknown*(x: ptr IHTMLDOMNode): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMNode2ToIDispatch*(x: ptr IHTMLDOMNode2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMNode2ToIUnknown*(x: ptr IHTMLDOMNode2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMNode3ToIDispatch*(x: ptr IHTMLDOMNode3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMNode3ToIUnknown*(x: ptr IHTMLDOMNode3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMAttributeToIDispatch*( + x: ptr IHTMLDOMAttribute +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMAttributeToIUnknown*( + x: ptr IHTMLDOMAttribute +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMAttribute2ToIDispatch*( + x: ptr IHTMLDOMAttribute2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMAttribute2ToIUnknown*( + x: ptr IHTMLDOMAttribute2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMAttribute3ToIDispatch*( + x: ptr IHTMLDOMAttribute3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMAttribute3ToIUnknown*( + x: ptr IHTMLDOMAttribute3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMAttribute4ToIDispatch*( + x: ptr IHTMLDOMAttribute4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMAttribute4ToIUnknown*( + x: ptr IHTMLDOMAttribute4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMTextNodeToIDispatch*( + x: ptr IHTMLDOMTextNode +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMTextNodeToIUnknown*( + x: ptr IHTMLDOMTextNode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMTextNode2ToIDispatch*( + x: ptr IHTMLDOMTextNode2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMTextNode2ToIUnknown*( + x: ptr IHTMLDOMTextNode2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMTextNode3ToIDispatch*( + x: ptr IHTMLDOMTextNode3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMTextNode3ToIUnknown*( + x: ptr IHTMLDOMTextNode3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMImplementationToIDispatch*( + x: ptr IHTMLDOMImplementation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMImplementationToIUnknown*( + x: ptr IHTMLDOMImplementation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMImplementation2ToIDispatch*( + x: ptr IHTMLDOMImplementation2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMImplementation2ToIUnknown*( + x: ptr IHTMLDOMImplementation2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDOMAttributeToIDispatch*( + x: ptr DispHTMLDOMAttribute +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDOMAttributeToIUnknown*( + x: ptr DispHTMLDOMAttribute +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDOMTextNodeToIDispatch*( + x: ptr DispHTMLDOMTextNode +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDOMTextNodeToIUnknown*( + x: ptr DispHTMLDOMTextNode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDOMImplementationToIDispatch*( + x: ptr DispHTMLDOMImplementation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDOMImplementationToIUnknown*( + x: ptr DispHTMLDOMImplementation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAttributeCollectionToIDispatch*( + x: ptr IHTMLAttributeCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAttributeCollectionToIUnknown*( + x: ptr IHTMLAttributeCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAttributeCollection2ToIDispatch*( + x: ptr IHTMLAttributeCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAttributeCollection2ToIUnknown*( + x: ptr IHTMLAttributeCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAttributeCollection3ToIDispatch*( + x: ptr IHTMLAttributeCollection3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAttributeCollection3ToIUnknown*( + x: ptr IHTMLAttributeCollection3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAttributeCollection4ToIDispatch*( + x: ptr IHTMLAttributeCollection4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAttributeCollection4ToIUnknown*( + x: ptr IHTMLAttributeCollection4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMChildrenCollectionToIDispatch*( + x: ptr IHTMLDOMChildrenCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMChildrenCollectionToIUnknown*( + x: ptr IHTMLDOMChildrenCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMChildrenCollection2ToIDispatch*( + x: ptr IHTMLDOMChildrenCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMChildrenCollection2ToIUnknown*( + x: ptr IHTMLDOMChildrenCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLAttributeCollectionToIDispatch*( + x: ptr DispHTMLAttributeCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLAttributeCollectionToIUnknown*( + x: ptr DispHTMLAttributeCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispStaticNodeListToIDispatch*( + x: ptr DispStaticNodeList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispStaticNodeListToIUnknown*( + x: ptr DispStaticNodeList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMChildrenCollectionToIDispatch*( + x: ptr DispDOMChildrenCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMChildrenCollectionToIUnknown*( + x: ptr DispDOMChildrenCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLElementEvents4ToIDispatch*( + x: ptr HTMLElementEvents4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLElementEvents4ToIUnknown*( + x: ptr HTMLElementEvents4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLElementEvents3ToIDispatch*( + x: ptr HTMLElementEvents3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLElementEvents3ToIUnknown*( + x: ptr HTMLElementEvents3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLElementEvents2ToIDispatch*( + x: ptr HTMLElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLElementEvents2ToIUnknown*( + x: ptr HTMLElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLElementEventsToIDispatch*( + x: ptr HTMLElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLElementEventsToIUnknown*( + x: ptr HTMLElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementToIDispatch*(x: ptr IHTMLElement): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementToIUnknown*(x: ptr IHTMLElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElement2ToIDispatch*(x: ptr IHTMLElement2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElement2ToIUnknown*(x: ptr IHTMLElement2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElement3ToIDispatch*(x: ptr IHTMLElement3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElement3ToIUnknown*(x: ptr IHTMLElement3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElement4ToIDispatch*(x: ptr IHTMLElement4): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElement4ToIUnknown*(x: ptr IHTMLElement4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementSelectorToIDispatch*( + x: ptr IElementSelector +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIElementSelectorToIUnknown*( + x: ptr IElementSelector +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementRenderToIUnknown*( + x: ptr IHTMLElementRender +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLUniqueNameToIDispatch*( + x: ptr IHTMLUniqueName +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLUniqueNameToIUnknown*( + x: ptr IHTMLUniqueName +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElement5ToIDispatch*(x: ptr IHTMLElement5): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElement5ToIUnknown*(x: ptr IHTMLElement5): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElement6ToIDispatch*(x: ptr IHTMLElement6): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElement6ToIUnknown*(x: ptr IHTMLElement6): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElement7ToIDispatch*(x: ptr IHTMLElement7): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElement7ToIUnknown*(x: ptr IHTMLElement7): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementAppliedStylesToIDispatch*( + x: ptr IHTMLElementAppliedStyles +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementAppliedStylesToIUnknown*( + x: ptr IHTMLElementAppliedStyles +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementTraversalToIDispatch*( + x: ptr IElementTraversal +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIElementTraversalToIUnknown*( + x: ptr IElementTraversal +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDatabindingToIDispatch*( + x: ptr IHTMLDatabinding +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDatabindingToIUnknown*( + x: ptr IHTMLDatabinding +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementDefaultsToIDispatch*( + x: ptr IHTMLElementDefaults +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementDefaultsToIUnknown*( + x: ptr IHTMLElementDefaults +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDefaultsToIDispatch*( + x: ptr DispHTMLDefaults +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDefaultsToIUnknown*( + x: ptr DispHTMLDefaults +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCDefaultDispatchToIDispatch*( + x: ptr IHTCDefaultDispatch +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCDefaultDispatchToIUnknown*( + x: ptr IHTCDefaultDispatch +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCPropertyBehaviorToIDispatch*( + x: ptr IHTCPropertyBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCPropertyBehaviorToIUnknown*( + x: ptr IHTCPropertyBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCMethodBehaviorToIDispatch*( + x: ptr IHTCMethodBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCMethodBehaviorToIUnknown*( + x: ptr IHTCMethodBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCEventBehaviorToIDispatch*( + x: ptr IHTCEventBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCEventBehaviorToIUnknown*( + x: ptr IHTCEventBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCAttachBehaviorToIDispatch*( + x: ptr IHTCAttachBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCAttachBehaviorToIUnknown*( + x: ptr IHTCAttachBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCAttachBehavior2ToIDispatch*( + x: ptr IHTCAttachBehavior2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCAttachBehavior2ToIUnknown*( + x: ptr IHTCAttachBehavior2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTCDescBehaviorToIDispatch*( + x: ptr IHTCDescBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTCDescBehaviorToIUnknown*( + x: ptr IHTCDescBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTCDefaultDispatchToIDispatch*( + x: ptr DispHTCDefaultDispatch +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTCDefaultDispatchToIUnknown*( + x: ptr DispHTCDefaultDispatch +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTCPropertyBehaviorToIDispatch*( + x: ptr DispHTCPropertyBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTCPropertyBehaviorToIUnknown*( + x: ptr DispHTCPropertyBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTCMethodBehaviorToIDispatch*( + x: ptr DispHTCMethodBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTCMethodBehaviorToIUnknown*( + x: ptr DispHTCMethodBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTCEventBehaviorToIDispatch*( + x: ptr DispHTCEventBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTCEventBehaviorToIUnknown*( + x: ptr DispHTCEventBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTCAttachBehaviorToIDispatch*( + x: ptr DispHTCAttachBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTCAttachBehaviorToIUnknown*( + x: ptr DispHTCAttachBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTCDescBehaviorToIDispatch*( + x: ptr DispHTCDescBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTCDescBehaviorToIUnknown*( + x: ptr DispHTCDescBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLUrnCollectionToIDispatch*( + x: ptr IHTMLUrnCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLUrnCollectionToIUnknown*( + x: ptr IHTMLUrnCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLUrnCollectionToIDispatch*( + x: ptr DispHTMLUrnCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLUrnCollectionToIUnknown*( + x: ptr DispHTMLUrnCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLGenericElementToIDispatch*( + x: ptr IHTMLGenericElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLGenericElementToIUnknown*( + x: ptr IHTMLGenericElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLGenericElementToIDispatch*( + x: ptr DispHTMLGenericElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLGenericElementToIUnknown*( + x: ptr DispHTMLGenericElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetRuleToIDispatch*( + x: ptr IHTMLStyleSheetRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetRuleToIUnknown*( + x: ptr IHTMLStyleSheetRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetRuleAppliedToIDispatch*( + x: ptr IHTMLStyleSheetRuleApplied +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetRuleAppliedToIUnknown*( + x: ptr IHTMLStyleSheetRuleApplied +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetRule2ToIDispatch*( + x: ptr IHTMLStyleSheetRule2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetRule2ToIUnknown*( + x: ptr IHTMLStyleSheetRule2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetRulesCollectionToIDispatch*( + x: ptr IHTMLStyleSheetRulesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetRulesCollectionToIUnknown*( + x: ptr IHTMLStyleSheetRulesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetRulesCollection2ToIDispatch*( + x: ptr IHTMLStyleSheetRulesCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetRulesCollection2ToIUnknown*( + x: ptr IHTMLStyleSheetRulesCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetRuleToIDispatch*( + x: ptr DispHTMLStyleSheetRule +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetRuleToIUnknown*( + x: ptr DispHTMLStyleSheetRule +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetRulesCollectionToIDispatch*( + x: ptr DispHTMLStyleSheetRulesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetRulesCollectionToIUnknown*( + x: ptr DispHTMLStyleSheetRulesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetPageToIDispatch*( + x: ptr IHTMLStyleSheetPage +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetPageToIUnknown*( + x: ptr IHTMLStyleSheetPage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetPage2ToIDispatch*( + x: ptr IHTMLStyleSheetPage2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetPage2ToIUnknown*( + x: ptr IHTMLStyleSheetPage2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetPagesCollectionToIDispatch*( + x: ptr IHTMLStyleSheetPagesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetPagesCollectionToIUnknown*( + x: ptr IHTMLStyleSheetPagesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetPageToIDispatch*( + x: ptr DispHTMLStyleSheetPage +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetPageToIUnknown*( + x: ptr DispHTMLStyleSheetPage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetPagesCollectionToIDispatch*( + x: ptr DispHTMLStyleSheetPagesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetPagesCollectionToIUnknown*( + x: ptr DispHTMLStyleSheetPagesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetToIDispatch*( + x: ptr IHTMLStyleSheet +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetToIUnknown*( + x: ptr IHTMLStyleSheet +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheet2ToIDispatch*( + x: ptr IHTMLStyleSheet2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheet2ToIUnknown*( + x: ptr IHTMLStyleSheet2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheet3ToIDispatch*( + x: ptr IHTMLStyleSheet3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheet3ToIUnknown*( + x: ptr IHTMLStyleSheet3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheet4ToIDispatch*( + x: ptr IHTMLStyleSheet4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheet4ToIUnknown*( + x: ptr IHTMLStyleSheet4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetToIDispatch*( + x: ptr DispHTMLStyleSheet +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetToIUnknown*( + x: ptr DispHTMLStyleSheet +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetsCollectionToIDispatch*( + x: ptr IHTMLStyleSheetsCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetsCollectionToIUnknown*( + x: ptr IHTMLStyleSheetsCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetsCollection2ToIDispatch*( + x: ptr IHTMLStyleSheetsCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetsCollection2ToIUnknown*( + x: ptr IHTMLStyleSheetsCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetsCollectionToIDispatch*( + x: ptr DispHTMLStyleSheetsCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetsCollectionToIUnknown*( + x: ptr DispHTMLStyleSheetsCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLLinkElementEvents2ToIDispatch*( + x: ptr HTMLLinkElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLLinkElementEvents2ToIUnknown*( + x: ptr HTMLLinkElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLLinkElementEventsToIDispatch*( + x: ptr HTMLLinkElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLLinkElementEventsToIUnknown*( + x: ptr HTMLLinkElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLinkElementToIDispatch*( + x: ptr IHTMLLinkElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLinkElementToIUnknown*( + x: ptr IHTMLLinkElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLinkElement2ToIDispatch*( + x: ptr IHTMLLinkElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLinkElement2ToIUnknown*( + x: ptr IHTMLLinkElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLinkElement3ToIDispatch*( + x: ptr IHTMLLinkElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLinkElement3ToIUnknown*( + x: ptr IHTMLLinkElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLinkElement4ToIDispatch*( + x: ptr IHTMLLinkElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLinkElement4ToIUnknown*( + x: ptr IHTMLLinkElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLinkElement5ToIDispatch*( + x: ptr IHTMLLinkElement5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLinkElement5ToIUnknown*( + x: ptr IHTMLLinkElement5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLLinkElementToIDispatch*( + x: ptr DispHTMLLinkElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLLinkElementToIUnknown*( + x: ptr DispHTMLLinkElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTxtRangeToIDispatch*(x: ptr IHTMLTxtRange): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTxtRangeToIUnknown*(x: ptr IHTMLTxtRange): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTextRangeMetricsToIDispatch*( + x: ptr IHTMLTextRangeMetrics +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTextRangeMetricsToIUnknown*( + x: ptr IHTMLTextRangeMetrics +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTextRangeMetrics2ToIDispatch*( + x: ptr IHTMLTextRangeMetrics2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTextRangeMetrics2ToIUnknown*( + x: ptr IHTMLTextRangeMetrics2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTxtRangeCollectionToIDispatch*( + x: ptr IHTMLTxtRangeCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTxtRangeCollectionToIUnknown*( + x: ptr IHTMLTxtRangeCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMRangeToIDispatch*(x: ptr IHTMLDOMRange): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMRangeToIUnknown*(x: ptr IHTMLDOMRange): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDOMRangeToIDispatch*( + x: ptr DispHTMLDOMRange +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDOMRangeToIUnknown*( + x: ptr DispHTMLDOMRange +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLFormElementEvents2ToIDispatch*( + x: ptr HTMLFormElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLFormElementEvents2ToIUnknown*( + x: ptr HTMLFormElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLFormElementEventsToIDispatch*( + x: ptr HTMLFormElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLFormElementEventsToIUnknown*( + x: ptr HTMLFormElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFormElementToIDispatch*( + x: ptr IHTMLFormElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFormElementToIUnknown*( + x: ptr IHTMLFormElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFormElement2ToIDispatch*( + x: ptr IHTMLFormElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFormElement2ToIUnknown*( + x: ptr IHTMLFormElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFormElement3ToIDispatch*( + x: ptr IHTMLFormElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFormElement3ToIUnknown*( + x: ptr IHTMLFormElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSubmitDataToIDispatch*( + x: ptr IHTMLSubmitData +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSubmitDataToIUnknown*( + x: ptr IHTMLSubmitData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFormElement4ToIDispatch*( + x: ptr IHTMLFormElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFormElement4ToIUnknown*( + x: ptr IHTMLFormElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLFormElementToIDispatch*( + x: ptr DispHTMLFormElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLFormElementToIUnknown*( + x: ptr DispHTMLFormElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLControlElementEvents2ToIDispatch*( + x: ptr HTMLControlElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLControlElementEvents2ToIUnknown*( + x: ptr HTMLControlElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLControlElementEventsToIDispatch*( + x: ptr HTMLControlElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLControlElementEventsToIUnknown*( + x: ptr HTMLControlElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLControlElementToIDispatch*( + x: ptr IHTMLControlElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLControlElementToIUnknown*( + x: ptr IHTMLControlElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTextElementToIDispatch*( + x: ptr IHTMLTextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTextElementToIUnknown*( + x: ptr IHTMLTextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTextElementToIDispatch*( + x: ptr DispHTMLTextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTextElementToIUnknown*( + x: ptr DispHTMLTextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLTextContainerEvents2ToIDispatch*( + x: ptr HTMLTextContainerEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLTextContainerEvents2ToIUnknown*( + x: ptr HTMLTextContainerEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLTextContainerEventsToIDispatch*( + x: ptr HTMLTextContainerEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLTextContainerEventsToIUnknown*( + x: ptr HTMLTextContainerEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTextContainerToIDispatch*( + x: ptr IHTMLTextContainer +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTextContainerToIUnknown*( + x: ptr IHTMLTextContainer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLControlRangeToIDispatch*( + x: ptr IHTMLControlRange +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLControlRangeToIUnknown*( + x: ptr IHTMLControlRange +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLControlRange2ToIDispatch*( + x: ptr IHTMLControlRange2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLControlRange2ToIUnknown*( + x: ptr IHTMLControlRange2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLImgEvents2ToIDispatch*( + x: ptr HTMLImgEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLImgEvents2ToIUnknown*(x: ptr HTMLImgEvents2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLImgEventsToIDispatch*(x: ptr HTMLImgEvents): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLImgEventsToIUnknown*(x: ptr HTMLImgEvents): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLImgElementToIDispatch*( + x: ptr IHTMLImgElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLImgElementToIUnknown*( + x: ptr IHTMLImgElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLImgElement2ToIDispatch*( + x: ptr IHTMLImgElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLImgElement2ToIUnknown*( + x: ptr IHTMLImgElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLImgElement3ToIDispatch*( + x: ptr IHTMLImgElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLImgElement3ToIUnknown*( + x: ptr IHTMLImgElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLImgElement4ToIDispatch*( + x: ptr IHTMLImgElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLImgElement4ToIUnknown*( + x: ptr IHTMLImgElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMSImgElementToIDispatch*( + x: ptr IHTMLMSImgElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMSImgElementToIUnknown*( + x: ptr IHTMLMSImgElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLImageElementFactoryToIDispatch*( + x: ptr IHTMLImageElementFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLImageElementFactoryToIUnknown*( + x: ptr IHTMLImageElementFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLImgToIDispatch*(x: ptr DispHTMLImg): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLImgToIUnknown*(x: ptr DispHTMLImg): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBodyElementToIDispatch*( + x: ptr IHTMLBodyElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBodyElementToIUnknown*( + x: ptr IHTMLBodyElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBodyElement2ToIDispatch*( + x: ptr IHTMLBodyElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBodyElement2ToIUnknown*( + x: ptr IHTMLBodyElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBodyElement3ToIDispatch*( + x: ptr IHTMLBodyElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBodyElement3ToIUnknown*( + x: ptr IHTMLBodyElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBodyElement4ToIDispatch*( + x: ptr IHTMLBodyElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBodyElement4ToIUnknown*( + x: ptr IHTMLBodyElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBodyElement5ToIDispatch*( + x: ptr IHTMLBodyElement5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBodyElement5ToIUnknown*( + x: ptr IHTMLBodyElement5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLBodyToIDispatch*(x: ptr DispHTMLBody): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLBodyToIUnknown*(x: ptr DispHTMLBody): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFontElementToIDispatch*( + x: ptr IHTMLFontElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFontElementToIUnknown*( + x: ptr IHTMLFontElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLFontElementToIDispatch*( + x: ptr DispHTMLFontElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLFontElementToIUnknown*( + x: ptr DispHTMLFontElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLAnchorEvents2ToIDispatch*( + x: ptr HTMLAnchorEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLAnchorEvents2ToIUnknown*( + x: ptr HTMLAnchorEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLAnchorEventsToIDispatch*( + x: ptr HTMLAnchorEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLAnchorEventsToIUnknown*( + x: ptr HTMLAnchorEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAnchorElementToIDispatch*( + x: ptr IHTMLAnchorElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAnchorElementToIUnknown*( + x: ptr IHTMLAnchorElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAnchorElement2ToIDispatch*( + x: ptr IHTMLAnchorElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAnchorElement2ToIUnknown*( + x: ptr IHTMLAnchorElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAnchorElement3ToIDispatch*( + x: ptr IHTMLAnchorElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAnchorElement3ToIUnknown*( + x: ptr IHTMLAnchorElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLAnchorElementToIDispatch*( + x: ptr DispHTMLAnchorElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLAnchorElementToIUnknown*( + x: ptr DispHTMLAnchorElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLLabelEvents2ToIDispatch*( + x: ptr HTMLLabelEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLLabelEvents2ToIUnknown*( + x: ptr HTMLLabelEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLLabelEventsToIDispatch*( + x: ptr HTMLLabelEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLLabelEventsToIUnknown*( + x: ptr HTMLLabelEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLabelElementToIDispatch*( + x: ptr IHTMLLabelElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLabelElementToIUnknown*( + x: ptr IHTMLLabelElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLabelElement2ToIDispatch*( + x: ptr IHTMLLabelElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLabelElement2ToIUnknown*( + x: ptr IHTMLLabelElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLLabelElementToIDispatch*( + x: ptr DispHTMLLabelElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLLabelElementToIUnknown*( + x: ptr DispHTMLLabelElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLListElementToIDispatch*( + x: ptr IHTMLListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLListElementToIUnknown*( + x: ptr IHTMLListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLListElement2ToIDispatch*( + x: ptr IHTMLListElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLListElement2ToIUnknown*( + x: ptr IHTMLListElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLListElementToIDispatch*( + x: ptr DispHTMLListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLListElementToIUnknown*( + x: ptr DispHTMLListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLUListElementToIDispatch*( + x: ptr IHTMLUListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLUListElementToIUnknown*( + x: ptr IHTMLUListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLUListElementToIDispatch*( + x: ptr DispHTMLUListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLUListElementToIUnknown*( + x: ptr DispHTMLUListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOListElementToIDispatch*( + x: ptr IHTMLOListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOListElementToIUnknown*( + x: ptr IHTMLOListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLOListElementToIDispatch*( + x: ptr DispHTMLOListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLOListElementToIUnknown*( + x: ptr DispHTMLOListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLIElementToIDispatch*( + x: ptr IHTMLLIElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLIElementToIUnknown*(x: ptr IHTMLLIElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLLIElementToIDispatch*( + x: ptr DispHTMLLIElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLLIElementToIUnknown*( + x: ptr DispHTMLLIElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBlockElementToIDispatch*( + x: ptr IHTMLBlockElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBlockElementToIUnknown*( + x: ptr IHTMLBlockElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBlockElement2ToIDispatch*( + x: ptr IHTMLBlockElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBlockElement2ToIUnknown*( + x: ptr IHTMLBlockElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBlockElement3ToIDispatch*( + x: ptr IHTMLBlockElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBlockElement3ToIUnknown*( + x: ptr IHTMLBlockElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLBlockElementToIDispatch*( + x: ptr DispHTMLBlockElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLBlockElementToIUnknown*( + x: ptr DispHTMLBlockElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDivElementToIDispatch*( + x: ptr IHTMLDivElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDivElementToIUnknown*( + x: ptr IHTMLDivElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDivElementToIDispatch*( + x: ptr DispHTMLDivElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDivElementToIUnknown*( + x: ptr DispHTMLDivElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDDElementToIDispatch*( + x: ptr IHTMLDDElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDDElementToIUnknown*(x: ptr IHTMLDDElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDDElementToIDispatch*( + x: ptr DispHTMLDDElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDDElementToIUnknown*( + x: ptr DispHTMLDDElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDTElementToIDispatch*( + x: ptr IHTMLDTElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDTElementToIUnknown*(x: ptr IHTMLDTElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDTElementToIDispatch*( + x: ptr DispHTMLDTElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDTElementToIUnknown*( + x: ptr DispHTMLDTElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBRElementToIDispatch*( + x: ptr IHTMLBRElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBRElementToIUnknown*(x: ptr IHTMLBRElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLBRElementToIDispatch*( + x: ptr DispHTMLBRElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLBRElementToIUnknown*( + x: ptr DispHTMLBRElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDListElementToIDispatch*( + x: ptr IHTMLDListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDListElementToIUnknown*( + x: ptr IHTMLDListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDListElementToIDispatch*( + x: ptr DispHTMLDListElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDListElementToIUnknown*( + x: ptr DispHTMLDListElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLHRElementToIDispatch*( + x: ptr IHTMLHRElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLHRElementToIUnknown*(x: ptr IHTMLHRElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLHRElementToIDispatch*( + x: ptr DispHTMLHRElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLHRElementToIUnknown*( + x: ptr DispHTMLHRElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLParaElementToIDispatch*( + x: ptr IHTMLParaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLParaElementToIUnknown*( + x: ptr IHTMLParaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLParaElementToIDispatch*( + x: ptr DispHTMLParaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLParaElementToIUnknown*( + x: ptr DispHTMLParaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementCollectionToIDispatch*( + x: ptr IHTMLElementCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementCollectionToIUnknown*( + x: ptr IHTMLElementCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementCollection2ToIDispatch*( + x: ptr IHTMLElementCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementCollection2ToIUnknown*( + x: ptr IHTMLElementCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementCollection3ToIDispatch*( + x: ptr IHTMLElementCollection3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementCollection3ToIUnknown*( + x: ptr IHTMLElementCollection3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLElementCollection4ToIDispatch*( + x: ptr IHTMLElementCollection4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLElementCollection4ToIUnknown*( + x: ptr IHTMLElementCollection4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLElementCollectionToIDispatch*( + x: ptr DispHTMLElementCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLElementCollectionToIUnknown*( + x: ptr DispHTMLElementCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLHeaderElementToIDispatch*( + x: ptr IHTMLHeaderElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLHeaderElementToIUnknown*( + x: ptr IHTMLHeaderElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLHeaderElementToIDispatch*( + x: ptr DispHTMLHeaderElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLHeaderElementToIUnknown*( + x: ptr DispHTMLHeaderElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLSelectElementEvents2ToIDispatch*( + x: ptr HTMLSelectElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLSelectElementEvents2ToIUnknown*( + x: ptr HTMLSelectElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLSelectElementEventsToIDispatch*( + x: ptr HTMLSelectElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLSelectElementEventsToIUnknown*( + x: ptr HTMLSelectElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectElementExToIUnknown*( + x: ptr IHTMLSelectElementEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectElementToIDispatch*( + x: ptr IHTMLSelectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectElementToIUnknown*( + x: ptr IHTMLSelectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectElement2ToIDispatch*( + x: ptr IHTMLSelectElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectElement2ToIUnknown*( + x: ptr IHTMLSelectElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectElement4ToIDispatch*( + x: ptr IHTMLSelectElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectElement4ToIUnknown*( + x: ptr IHTMLSelectElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectElement5ToIDispatch*( + x: ptr IHTMLSelectElement5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectElement5ToIUnknown*( + x: ptr IHTMLSelectElement5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectElement6ToIDispatch*( + x: ptr IHTMLSelectElement6 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectElement6ToIUnknown*( + x: ptr IHTMLSelectElement6 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLSelectElementToIDispatch*( + x: ptr DispHTMLSelectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLSelectElementToIUnknown*( + x: ptr DispHTMLSelectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLWndSelectElementToIDispatch*( + x: ptr DispHTMLWndSelectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLWndSelectElementToIUnknown*( + x: ptr DispHTMLWndSelectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectionObjectToIDispatch*( + x: ptr IHTMLSelectionObject +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectionObjectToIUnknown*( + x: ptr IHTMLSelectionObject +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectionObject2ToIDispatch*( + x: ptr IHTMLSelectionObject2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectionObject2ToIUnknown*( + x: ptr IHTMLSelectionObject2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSelectionToIDispatch*( + x: ptr IHTMLSelection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSelectionToIUnknown*(x: ptr IHTMLSelection): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOptionElementToIDispatch*( + x: ptr IHTMLOptionElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOptionElementToIUnknown*( + x: ptr IHTMLOptionElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOptionElement3ToIDispatch*( + x: ptr IHTMLOptionElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOptionElement3ToIUnknown*( + x: ptr IHTMLOptionElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOptionElement4ToIDispatch*( + x: ptr IHTMLOptionElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOptionElement4ToIUnknown*( + x: ptr IHTMLOptionElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOptionElementFactoryToIDispatch*( + x: ptr IHTMLOptionElementFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOptionElementFactoryToIUnknown*( + x: ptr IHTMLOptionElementFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLOptionElementToIDispatch*( + x: ptr DispHTMLOptionElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLOptionElementToIUnknown*( + x: ptr DispHTMLOptionElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLWndOptionElementToIDispatch*( + x: ptr DispHTMLWndOptionElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLWndOptionElementToIUnknown*( + x: ptr DispHTMLWndOptionElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLButtonElementEvents2ToIDispatch*( + x: ptr HTMLButtonElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLButtonElementEvents2ToIUnknown*( + x: ptr HTMLButtonElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLButtonElementEventsToIDispatch*( + x: ptr HTMLButtonElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLButtonElementEventsToIUnknown*( + x: ptr HTMLButtonElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLInputTextElementEvents2ToIDispatch*( + x: ptr HTMLInputTextElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLInputTextElementEvents2ToIUnknown*( + x: ptr HTMLInputTextElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLOptionButtonElementEvents2ToIDispatch*( + x: ptr HTMLOptionButtonElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLOptionButtonElementEvents2ToIUnknown*( + x: ptr HTMLOptionButtonElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLInputFileElementEvents2ToIDispatch*( + x: ptr HTMLInputFileElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLInputFileElementEvents2ToIUnknown*( + x: ptr HTMLInputFileElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLInputImageEvents2ToIDispatch*( + x: ptr HTMLInputImageEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLInputImageEvents2ToIUnknown*( + x: ptr HTMLInputImageEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLInputTextElementEventsToIDispatch*( + x: ptr HTMLInputTextElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLInputTextElementEventsToIUnknown*( + x: ptr HTMLInputTextElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLOptionButtonElementEventsToIDispatch*( + x: ptr HTMLOptionButtonElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLOptionButtonElementEventsToIUnknown*( + x: ptr HTMLOptionButtonElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLInputFileElementEventsToIDispatch*( + x: ptr HTMLInputFileElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLInputFileElementEventsToIUnknown*( + x: ptr HTMLInputFileElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLInputImageEventsToIDispatch*( + x: ptr HTMLInputImageEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLInputImageEventsToIUnknown*( + x: ptr HTMLInputImageEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputElementToIDispatch*( + x: ptr IHTMLInputElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputElementToIUnknown*( + x: ptr IHTMLInputElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputElement2ToIDispatch*( + x: ptr IHTMLInputElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputElement2ToIUnknown*( + x: ptr IHTMLInputElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputElement3ToIDispatch*( + x: ptr IHTMLInputElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputElement3ToIUnknown*( + x: ptr IHTMLInputElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputButtonElementToIDispatch*( + x: ptr IHTMLInputButtonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputButtonElementToIUnknown*( + x: ptr IHTMLInputButtonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputHiddenElementToIDispatch*( + x: ptr IHTMLInputHiddenElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputHiddenElementToIUnknown*( + x: ptr IHTMLInputHiddenElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputTextElementToIDispatch*( + x: ptr IHTMLInputTextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputTextElementToIUnknown*( + x: ptr IHTMLInputTextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputTextElement2ToIDispatch*( + x: ptr IHTMLInputTextElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputTextElement2ToIUnknown*( + x: ptr IHTMLInputTextElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputFileElementToIDispatch*( + x: ptr IHTMLInputFileElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputFileElementToIUnknown*( + x: ptr IHTMLInputFileElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOptionButtonElementToIDispatch*( + x: ptr IHTMLOptionButtonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOptionButtonElementToIUnknown*( + x: ptr IHTMLOptionButtonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputImageToIDispatch*( + x: ptr IHTMLInputImage +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputImageToIUnknown*( + x: ptr IHTMLInputImage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLInputRangeElementToIDispatch*( + x: ptr IHTMLInputRangeElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLInputRangeElementToIUnknown*( + x: ptr IHTMLInputRangeElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLInputElementToIDispatch*( + x: ptr DispHTMLInputElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLInputElementToIUnknown*( + x: ptr DispHTMLInputElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTextAreaElementToIDispatch*( + x: ptr IHTMLTextAreaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTextAreaElementToIUnknown*( + x: ptr IHTMLTextAreaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTextAreaElement2ToIDispatch*( + x: ptr IHTMLTextAreaElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTextAreaElement2ToIUnknown*( + x: ptr IHTMLTextAreaElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTextAreaElementToIDispatch*( + x: ptr DispHTMLTextAreaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTextAreaElementToIUnknown*( + x: ptr DispHTMLTextAreaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLRichtextElementToIDispatch*( + x: ptr DispHTMLRichtextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLRichtextElementToIUnknown*( + x: ptr DispHTMLRichtextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLButtonElementToIDispatch*( + x: ptr IHTMLButtonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLButtonElementToIUnknown*( + x: ptr IHTMLButtonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLButtonElement2ToIDispatch*( + x: ptr IHTMLButtonElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLButtonElement2ToIUnknown*( + x: ptr IHTMLButtonElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLButtonElementToIDispatch*( + x: ptr DispHTMLButtonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLButtonElementToIUnknown*( + x: ptr DispHTMLButtonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLMarqueeElementEvents2ToIDispatch*( + x: ptr HTMLMarqueeElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLMarqueeElementEvents2ToIUnknown*( + x: ptr HTMLMarqueeElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLMarqueeElementEventsToIDispatch*( + x: ptr HTMLMarqueeElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLMarqueeElementEventsToIUnknown*( + x: ptr HTMLMarqueeElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMarqueeElementToIDispatch*( + x: ptr IHTMLMarqueeElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMarqueeElementToIUnknown*( + x: ptr IHTMLMarqueeElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMarqueeElementToIDispatch*( + x: ptr DispHTMLMarqueeElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMarqueeElementToIUnknown*( + x: ptr DispHTMLMarqueeElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLHtmlElementToIDispatch*( + x: ptr IHTMLHtmlElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLHtmlElementToIUnknown*( + x: ptr IHTMLHtmlElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLHeadElementToIDispatch*( + x: ptr IHTMLHeadElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLHeadElementToIUnknown*( + x: ptr IHTMLHeadElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLHeadElement2ToIDispatch*( + x: ptr IHTMLHeadElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLHeadElement2ToIUnknown*( + x: ptr IHTMLHeadElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTitleElementToIDispatch*( + x: ptr IHTMLTitleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTitleElementToIUnknown*( + x: ptr IHTMLTitleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMetaElementToIDispatch*( + x: ptr IHTMLMetaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMetaElementToIUnknown*( + x: ptr IHTMLMetaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMetaElement2ToIDispatch*( + x: ptr IHTMLMetaElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMetaElement2ToIUnknown*( + x: ptr IHTMLMetaElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMetaElement3ToIDispatch*( + x: ptr IHTMLMetaElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMetaElement3ToIUnknown*( + x: ptr IHTMLMetaElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBaseElementToIDispatch*( + x: ptr IHTMLBaseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBaseElementToIUnknown*( + x: ptr IHTMLBaseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBaseElement2ToIDispatch*( + x: ptr IHTMLBaseElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBaseElement2ToIUnknown*( + x: ptr IHTMLBaseElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLIsIndexElementToIDispatch*( + x: ptr IHTMLIsIndexElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLIsIndexElementToIUnknown*( + x: ptr IHTMLIsIndexElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLIsIndexElement2ToIDispatch*( + x: ptr IHTMLIsIndexElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLIsIndexElement2ToIUnknown*( + x: ptr IHTMLIsIndexElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLNextIdElementToIDispatch*( + x: ptr IHTMLNextIdElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLNextIdElementToIUnknown*( + x: ptr IHTMLNextIdElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLHtmlElementToIDispatch*( + x: ptr DispHTMLHtmlElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLHtmlElementToIUnknown*( + x: ptr DispHTMLHtmlElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLHeadElementToIDispatch*( + x: ptr DispHTMLHeadElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLHeadElementToIUnknown*( + x: ptr DispHTMLHeadElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTitleElementToIDispatch*( + x: ptr DispHTMLTitleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTitleElementToIUnknown*( + x: ptr DispHTMLTitleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMetaElementToIDispatch*( + x: ptr DispHTMLMetaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMetaElementToIUnknown*( + x: ptr DispHTMLMetaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLBaseElementToIDispatch*( + x: ptr DispHTMLBaseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLBaseElementToIUnknown*( + x: ptr DispHTMLBaseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLIsIndexElementToIDispatch*( + x: ptr DispHTMLIsIndexElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLIsIndexElementToIUnknown*( + x: ptr DispHTMLIsIndexElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLNextIdElementToIDispatch*( + x: ptr DispHTMLNextIdElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLNextIdElementToIUnknown*( + x: ptr DispHTMLNextIdElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBaseFontElementToIDispatch*( + x: ptr IHTMLBaseFontElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBaseFontElementToIUnknown*( + x: ptr IHTMLBaseFontElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLBaseFontElementToIDispatch*( + x: ptr DispHTMLBaseFontElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLBaseFontElementToIUnknown*( + x: ptr DispHTMLBaseFontElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLUnknownElementToIDispatch*( + x: ptr IHTMLUnknownElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLUnknownElementToIUnknown*( + x: ptr IHTMLUnknownElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLUnknownElementToIDispatch*( + x: ptr DispHTMLUnknownElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLUnknownElementToIUnknown*( + x: ptr DispHTMLUnknownElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOmHistoryToIDispatch*(x: ptr IOmHistory): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIOmHistoryToIUnknown*(x: ptr IOmHistory): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMimeTypesCollectionToIDispatch*( + x: ptr IHTMLMimeTypesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMimeTypesCollectionToIUnknown*( + x: ptr IHTMLMimeTypesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPluginsCollectionToIDispatch*( + x: ptr IHTMLPluginsCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPluginsCollectionToIUnknown*( + x: ptr IHTMLPluginsCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOpsProfileToIDispatch*( + x: ptr IHTMLOpsProfile +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOpsProfileToIUnknown*( + x: ptr IHTMLOpsProfile +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOmNavigatorToIDispatch*(x: ptr IOmNavigator): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIOmNavigatorToIUnknown*(x: ptr IOmNavigator): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINavigatorGeolocationToIDispatch*( + x: ptr INavigatorGeolocation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterINavigatorGeolocationToIUnknown*( + x: ptr INavigatorGeolocation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINavigatorDoNotTrackToIDispatch*( + x: ptr INavigatorDoNotTrack +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterINavigatorDoNotTrackToIUnknown*( + x: ptr INavigatorDoNotTrack +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLocationToIDispatch*(x: ptr IHTMLLocation): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLocationToIUnknown*(x: ptr IHTMLLocation): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLHistoryToIDispatch*( + x: ptr DispHTMLHistory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLHistoryToIUnknown*( + x: ptr DispHTMLHistory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCPluginsToIDispatch*(x: ptr DispCPlugins): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCPluginsToIUnknown*(x: ptr DispCPlugins): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLNavigatorToIDispatch*( + x: ptr DispHTMLNavigator +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLNavigatorToIUnknown*( + x: ptr DispHTMLNavigator +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLLocationToIDispatch*( + x: ptr DispHTMLLocation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLLocationToIUnknown*( + x: ptr DispHTMLLocation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBookmarkCollectionToIDispatch*( + x: ptr IHTMLBookmarkCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBookmarkCollectionToIUnknown*( + x: ptr IHTMLBookmarkCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDataTransferToIDispatch*( + x: ptr IHTMLDataTransfer +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDataTransferToIUnknown*( + x: ptr IHTMLDataTransfer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEventObjToIDispatch*(x: ptr IHTMLEventObj): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEventObjToIUnknown*(x: ptr IHTMLEventObj): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEventObj2ToIDispatch*( + x: ptr IHTMLEventObj2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEventObj2ToIUnknown*(x: ptr IHTMLEventObj2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEventObj3ToIDispatch*( + x: ptr IHTMLEventObj3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEventObj3ToIUnknown*(x: ptr IHTMLEventObj3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEventObj4ToIDispatch*( + x: ptr IHTMLEventObj4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEventObj4ToIUnknown*(x: ptr IHTMLEventObj4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEventObj5ToIDispatch*( + x: ptr IHTMLEventObj5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEventObj5ToIUnknown*(x: ptr IHTMLEventObj5): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEventObj6ToIDispatch*( + x: ptr IHTMLEventObj6 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEventObj6ToIUnknown*(x: ptr IHTMLEventObj6): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCEventObjToIDispatch*(x: ptr DispCEventObj): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCEventObjToIUnknown*(x: ptr DispCEventObj): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleMediaToIDispatch*( + x: ptr IHTMLStyleMedia +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleMediaToIUnknown*( + x: ptr IHTMLStyleMedia +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleMediaToIDispatch*( + x: ptr DispHTMLStyleMedia +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleMediaToIUnknown*( + x: ptr DispHTMLStyleMedia +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLWindowEvents3ToIDispatch*( + x: ptr HTMLWindowEvents3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLWindowEvents3ToIUnknown*( + x: ptr HTMLWindowEvents3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLWindowEvents2ToIDispatch*( + x: ptr HTMLWindowEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLWindowEvents2ToIUnknown*( + x: ptr HTMLWindowEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLWindowEventsToIDispatch*( + x: ptr HTMLWindowEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLWindowEventsToIUnknown*( + x: ptr HTMLWindowEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFramesCollection2ToIDispatch*( + x: ptr IHTMLFramesCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFramesCollection2ToIUnknown*( + x: ptr IHTMLFramesCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScreenToIDispatch*(x: ptr IHTMLScreen): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScreenToIUnknown*(x: ptr IHTMLScreen): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScreen2ToIDispatch*(x: ptr IHTMLScreen2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScreen2ToIUnknown*(x: ptr IHTMLScreen2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScreen3ToIDispatch*(x: ptr IHTMLScreen3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScreen3ToIUnknown*(x: ptr IHTMLScreen3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScreen4ToIDispatch*(x: ptr IHTMLScreen4): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScreen4ToIUnknown*(x: ptr IHTMLScreen4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow2ToIHTMLFramesCollection2*( + x: ptr IHTMLWindow2 +): ptr IHTMLFramesCollection2 = + cast[ptr IHTMLFramesCollection2](x) + +converter winimConverterIHTMLWindow2ToIDispatch*(x: ptr IHTMLWindow2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow2ToIUnknown*(x: ptr IHTMLWindow2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow3ToIDispatch*(x: ptr IHTMLWindow3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow3ToIUnknown*(x: ptr IHTMLWindow3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow4ToIDispatch*(x: ptr IHTMLWindow4): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow4ToIUnknown*(x: ptr IHTMLWindow4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow5ToIDispatch*(x: ptr IHTMLWindow5): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow5ToIUnknown*(x: ptr IHTMLWindow5): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow6ToIDispatch*(x: ptr IHTMLWindow6): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow6ToIUnknown*(x: ptr IHTMLWindow6): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow7ToIDispatch*(x: ptr IHTMLWindow7): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow7ToIUnknown*(x: ptr IHTMLWindow7): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLWindow8ToIDispatch*(x: ptr IHTMLWindow8): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLWindow8ToIUnknown*(x: ptr IHTMLWindow8): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLScreenToIDispatch*( + x: ptr DispHTMLScreen +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLScreenToIUnknown*(x: ptr DispHTMLScreen): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLWindow2ToIDispatch*( + x: ptr DispHTMLWindow2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLWindow2ToIUnknown*( + x: ptr DispHTMLWindow2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLWindowProxyToIDispatch*( + x: ptr DispHTMLWindowProxy +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLWindowProxyToIUnknown*( + x: ptr DispHTMLWindowProxy +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocumentCompatibleInfoToIDispatch*( + x: ptr IHTMLDocumentCompatibleInfo +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocumentCompatibleInfoToIUnknown*( + x: ptr IHTMLDocumentCompatibleInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocumentCompatibleInfoCollectionToIDispatch*( + x: ptr IHTMLDocumentCompatibleInfoCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocumentCompatibleInfoCollectionToIUnknown*( + x: ptr IHTMLDocumentCompatibleInfoCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDocumentCompatibleInfoToIDispatch*( + x: ptr DispHTMLDocumentCompatibleInfo +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDocumentCompatibleInfoToIUnknown*( + x: ptr DispHTMLDocumentCompatibleInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDocumentCompatibleInfoCollectionToIDispatch*( + x: ptr DispHTMLDocumentCompatibleInfoCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDocumentCompatibleInfoCollectionToIUnknown*( + x: ptr DispHTMLDocumentCompatibleInfoCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLDocumentEvents4ToIDispatch*( + x: ptr HTMLDocumentEvents4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLDocumentEvents4ToIUnknown*( + x: ptr HTMLDocumentEvents4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLDocumentEvents3ToIDispatch*( + x: ptr HTMLDocumentEvents3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLDocumentEvents3ToIUnknown*( + x: ptr HTMLDocumentEvents3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLDocumentEvents2ToIDispatch*( + x: ptr HTMLDocumentEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLDocumentEvents2ToIUnknown*( + x: ptr HTMLDocumentEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLDocumentEventsToIDispatch*( + x: ptr HTMLDocumentEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLDocumentEventsToIUnknown*( + x: ptr HTMLDocumentEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocumentToIDispatch*(x: ptr IHTMLDocument): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocumentToIUnknown*(x: ptr IHTMLDocument): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument2ToIHTMLDocument*( + x: ptr IHTMLDocument2 +): ptr IHTMLDocument = + cast[ptr IHTMLDocument](x) + +converter winimConverterIHTMLDocument2ToIDispatch*( + x: ptr IHTMLDocument2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument2ToIUnknown*(x: ptr IHTMLDocument2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument3ToIDispatch*( + x: ptr IHTMLDocument3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument3ToIUnknown*(x: ptr IHTMLDocument3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument4ToIDispatch*( + x: ptr IHTMLDocument4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument4ToIUnknown*(x: ptr IHTMLDocument4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument5ToIDispatch*( + x: ptr IHTMLDocument5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument5ToIUnknown*(x: ptr IHTMLDocument5): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument6ToIDispatch*( + x: ptr IHTMLDocument6 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument6ToIUnknown*(x: ptr IHTMLDocument6): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument7ToIDispatch*( + x: ptr IHTMLDocument7 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument7ToIUnknown*(x: ptr IHTMLDocument7): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDocument8ToIDispatch*( + x: ptr IHTMLDocument8 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDocument8ToIUnknown*(x: ptr IHTMLDocument8): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocumentEventToIDispatch*( + x: ptr IDocumentEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDocumentEventToIUnknown*(x: ptr IDocumentEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocumentRangeToIDispatch*( + x: ptr IDocumentRange +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDocumentRangeToIUnknown*(x: ptr IDocumentRange): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocumentSelectorToIDispatch*( + x: ptr IDocumentSelector +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDocumentSelectorToIUnknown*( + x: ptr IDocumentSelector +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocumentTraversalToIDispatch*( + x: ptr IDocumentTraversal +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDocumentTraversalToIUnknown*( + x: ptr IDocumentTraversal +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDocumentToIDispatch*( + x: ptr DispHTMLDocument +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDocumentToIUnknown*( + x: ptr DispHTMLDocument +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDWebBridgeEventsToIDispatch*( + x: ptr DWebBridgeEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDWebBridgeEventsToIUnknown*( + x: ptr DWebBridgeEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebBridgeToIDispatch*(x: ptr IWebBridge): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebBridgeToIUnknown*(x: ptr IWebBridge): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWBScriptControlToIDispatch*( + x: ptr IWBScriptControl +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWBScriptControlToIUnknown*( + x: ptr IWBScriptControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEmbedElementToIDispatch*( + x: ptr IHTMLEmbedElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEmbedElementToIUnknown*( + x: ptr IHTMLEmbedElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEmbedElement2ToIDispatch*( + x: ptr IHTMLEmbedElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLEmbedElement2ToIUnknown*( + x: ptr IHTMLEmbedElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLEmbedToIDispatch*(x: ptr DispHTMLEmbed): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLEmbedToIUnknown*(x: ptr DispHTMLEmbed): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLMapEvents2ToIDispatch*( + x: ptr HTMLMapEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLMapEvents2ToIUnknown*(x: ptr HTMLMapEvents2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLMapEventsToIDispatch*(x: ptr HTMLMapEvents): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLMapEventsToIUnknown*(x: ptr HTMLMapEvents): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAreasCollectionToIDispatch*( + x: ptr IHTMLAreasCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAreasCollectionToIUnknown*( + x: ptr IHTMLAreasCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAreasCollection2ToIDispatch*( + x: ptr IHTMLAreasCollection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAreasCollection2ToIUnknown*( + x: ptr IHTMLAreasCollection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAreasCollection3ToIDispatch*( + x: ptr IHTMLAreasCollection3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAreasCollection3ToIUnknown*( + x: ptr IHTMLAreasCollection3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAreasCollection4ToIDispatch*( + x: ptr IHTMLAreasCollection4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAreasCollection4ToIUnknown*( + x: ptr IHTMLAreasCollection4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMapElementToIDispatch*( + x: ptr IHTMLMapElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMapElementToIUnknown*( + x: ptr IHTMLMapElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLAreasCollectionToIDispatch*( + x: ptr DispHTMLAreasCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLAreasCollectionToIUnknown*( + x: ptr DispHTMLAreasCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMapElementToIDispatch*( + x: ptr DispHTMLMapElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMapElementToIUnknown*( + x: ptr DispHTMLMapElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLAreaEvents2ToIDispatch*( + x: ptr HTMLAreaEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLAreaEvents2ToIUnknown*( + x: ptr HTMLAreaEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLAreaEventsToIDispatch*( + x: ptr HTMLAreaEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLAreaEventsToIUnknown*(x: ptr HTMLAreaEvents): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAreaElementToIDispatch*( + x: ptr IHTMLAreaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAreaElementToIUnknown*( + x: ptr IHTMLAreaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAreaElement2ToIDispatch*( + x: ptr IHTMLAreaElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAreaElement2ToIUnknown*( + x: ptr IHTMLAreaElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLAreaElementToIDispatch*( + x: ptr DispHTMLAreaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLAreaElementToIUnknown*( + x: ptr DispHTMLAreaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableCaptionToIDispatch*( + x: ptr IHTMLTableCaption +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableCaptionToIUnknown*( + x: ptr IHTMLTableCaption +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTableCaptionToIDispatch*( + x: ptr DispHTMLTableCaption +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTableCaptionToIUnknown*( + x: ptr DispHTMLTableCaption +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCommentElementToIDispatch*( + x: ptr IHTMLCommentElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCommentElementToIUnknown*( + x: ptr IHTMLCommentElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCommentElement2ToIDispatch*( + x: ptr IHTMLCommentElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCommentElement2ToIUnknown*( + x: ptr IHTMLCommentElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCommentElement3ToIDispatch*( + x: ptr IHTMLCommentElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCommentElement3ToIUnknown*( + x: ptr IHTMLCommentElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCommentElementToIDispatch*( + x: ptr DispHTMLCommentElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCommentElementToIUnknown*( + x: ptr DispHTMLCommentElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPhraseElementToIDispatch*( + x: ptr IHTMLPhraseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPhraseElementToIUnknown*( + x: ptr IHTMLPhraseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPhraseElement2ToIDispatch*( + x: ptr IHTMLPhraseElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPhraseElement2ToIUnknown*( + x: ptr IHTMLPhraseElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPhraseElement3ToIDispatch*( + x: ptr IHTMLPhraseElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPhraseElement3ToIUnknown*( + x: ptr IHTMLPhraseElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSpanElementToIDispatch*( + x: ptr IHTMLSpanElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSpanElementToIUnknown*( + x: ptr IHTMLSpanElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLPhraseElementToIDispatch*( + x: ptr DispHTMLPhraseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLPhraseElementToIUnknown*( + x: ptr DispHTMLPhraseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLSpanElementToIDispatch*( + x: ptr DispHTMLSpanElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLSpanElementToIUnknown*( + x: ptr DispHTMLSpanElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLTableEvents2ToIDispatch*( + x: ptr HTMLTableEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLTableEvents2ToIUnknown*( + x: ptr HTMLTableEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLTableEventsToIDispatch*( + x: ptr HTMLTableEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLTableEventsToIUnknown*( + x: ptr HTMLTableEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableToIDispatch*(x: ptr IHTMLTable): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableToIUnknown*(x: ptr IHTMLTable): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTable2ToIDispatch*(x: ptr IHTMLTable2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTable2ToIUnknown*(x: ptr IHTMLTable2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTable3ToIDispatch*(x: ptr IHTMLTable3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTable3ToIUnknown*(x: ptr IHTMLTable3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTable4ToIDispatch*(x: ptr IHTMLTable4): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTable4ToIUnknown*(x: ptr IHTMLTable4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableColToIDispatch*(x: ptr IHTMLTableCol): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableColToIUnknown*(x: ptr IHTMLTableCol): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableCol2ToIDispatch*( + x: ptr IHTMLTableCol2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableCol2ToIUnknown*(x: ptr IHTMLTableCol2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableCol3ToIDispatch*( + x: ptr IHTMLTableCol3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableCol3ToIUnknown*(x: ptr IHTMLTableCol3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableSectionToIDispatch*( + x: ptr IHTMLTableSection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableSectionToIUnknown*( + x: ptr IHTMLTableSection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableSection2ToIDispatch*( + x: ptr IHTMLTableSection2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableSection2ToIUnknown*( + x: ptr IHTMLTableSection2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableSection3ToIDispatch*( + x: ptr IHTMLTableSection3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableSection3ToIUnknown*( + x: ptr IHTMLTableSection3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableSection4ToIDispatch*( + x: ptr IHTMLTableSection4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableSection4ToIUnknown*( + x: ptr IHTMLTableSection4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableRowToIDispatch*(x: ptr IHTMLTableRow): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableRowToIUnknown*(x: ptr IHTMLTableRow): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableRow2ToIDispatch*( + x: ptr IHTMLTableRow2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableRow2ToIUnknown*(x: ptr IHTMLTableRow2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableRow3ToIDispatch*( + x: ptr IHTMLTableRow3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableRow3ToIUnknown*(x: ptr IHTMLTableRow3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableRow4ToIDispatch*( + x: ptr IHTMLTableRow4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableRow4ToIUnknown*(x: ptr IHTMLTableRow4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableRowMetricsToIDispatch*( + x: ptr IHTMLTableRowMetrics +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableRowMetricsToIUnknown*( + x: ptr IHTMLTableRowMetrics +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableCellToIDispatch*( + x: ptr IHTMLTableCell +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableCellToIUnknown*(x: ptr IHTMLTableCell): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableCell2ToIDispatch*( + x: ptr IHTMLTableCell2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableCell2ToIUnknown*( + x: ptr IHTMLTableCell2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTableCell3ToIDispatch*( + x: ptr IHTMLTableCell3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTableCell3ToIUnknown*( + x: ptr IHTMLTableCell3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTableToIDispatch*(x: ptr DispHTMLTable): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTableToIUnknown*(x: ptr DispHTMLTable): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTableColToIDispatch*( + x: ptr DispHTMLTableCol +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTableColToIUnknown*( + x: ptr DispHTMLTableCol +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTableSectionToIDispatch*( + x: ptr DispHTMLTableSection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTableSectionToIUnknown*( + x: ptr DispHTMLTableSection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTableRowToIDispatch*( + x: ptr DispHTMLTableRow +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTableRowToIUnknown*( + x: ptr DispHTMLTableRow +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTableCellToIDispatch*( + x: ptr DispHTMLTableCell +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTableCellToIUnknown*( + x: ptr DispHTMLTableCell +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLScriptEvents2ToIDispatch*( + x: ptr HTMLScriptEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLScriptEvents2ToIUnknown*( + x: ptr HTMLScriptEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLScriptEventsToIDispatch*( + x: ptr HTMLScriptEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLScriptEventsToIUnknown*( + x: ptr HTMLScriptEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScriptElementToIDispatch*( + x: ptr IHTMLScriptElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScriptElementToIUnknown*( + x: ptr IHTMLScriptElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScriptElement2ToIDispatch*( + x: ptr IHTMLScriptElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScriptElement2ToIUnknown*( + x: ptr IHTMLScriptElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScriptElement3ToIDispatch*( + x: ptr IHTMLScriptElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScriptElement3ToIUnknown*( + x: ptr IHTMLScriptElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLScriptElement4ToIDispatch*( + x: ptr IHTMLScriptElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLScriptElement4ToIUnknown*( + x: ptr IHTMLScriptElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLScriptElementToIDispatch*( + x: ptr DispHTMLScriptElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLScriptElementToIUnknown*( + x: ptr DispHTMLScriptElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLNoShowElementToIDispatch*( + x: ptr IHTMLNoShowElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLNoShowElementToIUnknown*( + x: ptr IHTMLNoShowElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLNoShowElementToIDispatch*( + x: ptr DispHTMLNoShowElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLNoShowElementToIUnknown*( + x: ptr DispHTMLNoShowElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLObjectElementEvents2ToIDispatch*( + x: ptr HTMLObjectElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLObjectElementEvents2ToIUnknown*( + x: ptr HTMLObjectElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLObjectElementEventsToIDispatch*( + x: ptr HTMLObjectElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLObjectElementEventsToIUnknown*( + x: ptr HTMLObjectElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLObjectElementToIDispatch*( + x: ptr IHTMLObjectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLObjectElementToIUnknown*( + x: ptr IHTMLObjectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLObjectElement2ToIDispatch*( + x: ptr IHTMLObjectElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLObjectElement2ToIUnknown*( + x: ptr IHTMLObjectElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLObjectElement3ToIDispatch*( + x: ptr IHTMLObjectElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLObjectElement3ToIUnknown*( + x: ptr IHTMLObjectElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLObjectElement4ToIDispatch*( + x: ptr IHTMLObjectElement4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLObjectElement4ToIUnknown*( + x: ptr IHTMLObjectElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLObjectElement5ToIDispatch*( + x: ptr IHTMLObjectElement5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLObjectElement5ToIUnknown*( + x: ptr IHTMLObjectElement5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLParamElementToIDispatch*( + x: ptr IHTMLParamElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLParamElementToIUnknown*( + x: ptr IHTMLParamElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLParamElement2ToIDispatch*( + x: ptr IHTMLParamElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLParamElement2ToIUnknown*( + x: ptr IHTMLParamElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLObjectElementToIDispatch*( + x: ptr DispHTMLObjectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLObjectElementToIUnknown*( + x: ptr DispHTMLObjectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLParamElementToIDispatch*( + x: ptr DispHTMLParamElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLParamElementToIUnknown*( + x: ptr DispHTMLParamElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLFrameSiteEvents2ToIDispatch*( + x: ptr HTMLFrameSiteEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLFrameSiteEvents2ToIUnknown*( + x: ptr HTMLFrameSiteEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLFrameSiteEventsToIDispatch*( + x: ptr HTMLFrameSiteEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLFrameSiteEventsToIUnknown*( + x: ptr HTMLFrameSiteEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameBaseToIDispatch*( + x: ptr IHTMLFrameBase +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameBaseToIUnknown*(x: ptr IHTMLFrameBase): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameBase2ToIDispatch*( + x: ptr IHTMLFrameBase2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameBase2ToIUnknown*( + x: ptr IHTMLFrameBase2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameBase3ToIDispatch*( + x: ptr IHTMLFrameBase3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameBase3ToIUnknown*( + x: ptr IHTMLFrameBase3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLFrameBaseToIDispatch*( + x: ptr DispHTMLFrameBase +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLFrameBaseToIUnknown*( + x: ptr DispHTMLFrameBase +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameElementToIDispatch*( + x: ptr IHTMLFrameElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameElementToIUnknown*( + x: ptr IHTMLFrameElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameElement2ToIDispatch*( + x: ptr IHTMLFrameElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameElement2ToIUnknown*( + x: ptr IHTMLFrameElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameElement3ToIDispatch*( + x: ptr IHTMLFrameElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameElement3ToIUnknown*( + x: ptr IHTMLFrameElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLFrameElementToIDispatch*( + x: ptr DispHTMLFrameElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLFrameElementToIUnknown*( + x: ptr DispHTMLFrameElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLIFrameElementToIDispatch*( + x: ptr IHTMLIFrameElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLIFrameElementToIUnknown*( + x: ptr IHTMLIFrameElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLIFrameElement2ToIDispatch*( + x: ptr IHTMLIFrameElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLIFrameElement2ToIUnknown*( + x: ptr IHTMLIFrameElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLIFrameElement3ToIDispatch*( + x: ptr IHTMLIFrameElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLIFrameElement3ToIUnknown*( + x: ptr IHTMLIFrameElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLIFrameToIDispatch*( + x: ptr DispHTMLIFrame +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLIFrameToIUnknown*(x: ptr DispHTMLIFrame): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDivPositionToIDispatch*( + x: ptr IHTMLDivPosition +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDivPositionToIUnknown*( + x: ptr IHTMLDivPosition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFieldSetElementToIDispatch*( + x: ptr IHTMLFieldSetElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFieldSetElementToIUnknown*( + x: ptr IHTMLFieldSetElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFieldSetElement2ToIDispatch*( + x: ptr IHTMLFieldSetElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFieldSetElement2ToIUnknown*( + x: ptr IHTMLFieldSetElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLegendElementToIDispatch*( + x: ptr IHTMLLegendElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLegendElementToIUnknown*( + x: ptr IHTMLLegendElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLLegendElement2ToIDispatch*( + x: ptr IHTMLLegendElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLLegendElement2ToIUnknown*( + x: ptr IHTMLLegendElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLDivPositionToIDispatch*( + x: ptr DispHTMLDivPosition +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLDivPositionToIUnknown*( + x: ptr DispHTMLDivPosition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLFieldSetElementToIDispatch*( + x: ptr DispHTMLFieldSetElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLFieldSetElementToIUnknown*( + x: ptr DispHTMLFieldSetElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLLegendElementToIDispatch*( + x: ptr DispHTMLLegendElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLLegendElementToIUnknown*( + x: ptr DispHTMLLegendElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSpanFlowToIDispatch*(x: ptr IHTMLSpanFlow): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSpanFlowToIUnknown*(x: ptr IHTMLSpanFlow): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLSpanFlowToIDispatch*( + x: ptr DispHTMLSpanFlow +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLSpanFlowToIUnknown*( + x: ptr DispHTMLSpanFlow +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameSetElementToIDispatch*( + x: ptr IHTMLFrameSetElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameSetElementToIUnknown*( + x: ptr IHTMLFrameSetElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameSetElement2ToIDispatch*( + x: ptr IHTMLFrameSetElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameSetElement2ToIUnknown*( + x: ptr IHTMLFrameSetElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFrameSetElement3ToIDispatch*( + x: ptr IHTMLFrameSetElement3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFrameSetElement3ToIUnknown*( + x: ptr IHTMLFrameSetElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLFrameSetSiteToIDispatch*( + x: ptr DispHTMLFrameSetSite +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLFrameSetSiteToIUnknown*( + x: ptr DispHTMLFrameSetSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLBGsoundToIDispatch*(x: ptr IHTMLBGsound): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLBGsoundToIUnknown*(x: ptr IHTMLBGsound): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLBGsoundToIDispatch*( + x: ptr DispHTMLBGsound +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLBGsoundToIUnknown*( + x: ptr DispHTMLBGsound +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFontNamesCollectionToIDispatch*( + x: ptr IHTMLFontNamesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFontNamesCollectionToIUnknown*( + x: ptr IHTMLFontNamesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLFontSizesCollectionToIDispatch*( + x: ptr IHTMLFontSizesCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLFontSizesCollectionToIUnknown*( + x: ptr IHTMLFontSizesCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOptionsHolderToIDispatch*( + x: ptr IHTMLOptionsHolder +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLOptionsHolderToIUnknown*( + x: ptr IHTMLOptionsHolder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLStyleElementEvents2ToIDispatch*( + x: ptr HTMLStyleElementEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLStyleElementEvents2ToIUnknown*( + x: ptr HTMLStyleElementEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLStyleElementEventsToIDispatch*( + x: ptr HTMLStyleElementEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLStyleElementEventsToIUnknown*( + x: ptr HTMLStyleElementEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleElementToIDispatch*( + x: ptr IHTMLStyleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleElementToIUnknown*( + x: ptr IHTMLStyleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleElement2ToIDispatch*( + x: ptr IHTMLStyleElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleElement2ToIUnknown*( + x: ptr IHTMLStyleElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleElementToIDispatch*( + x: ptr DispHTMLStyleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleElementToIUnknown*( + x: ptr DispHTMLStyleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleFontFaceToIDispatch*( + x: ptr IHTMLStyleFontFace +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleFontFaceToIUnknown*( + x: ptr IHTMLStyleFontFace +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleFontFace2ToIDispatch*( + x: ptr IHTMLStyleFontFace2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleFontFace2ToIUnknown*( + x: ptr IHTMLStyleFontFace2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleFontFaceToIDispatch*( + x: ptr DispHTMLStyleFontFace +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleFontFaceToIUnknown*( + x: ptr DispHTMLStyleFontFace +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLXDomainRequestToIDispatch*( + x: ptr IHTMLXDomainRequest +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLXDomainRequestToIUnknown*( + x: ptr IHTMLXDomainRequest +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLXDomainRequestFactoryToIDispatch*( + x: ptr IHTMLXDomainRequestFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLXDomainRequestFactoryToIUnknown*( + x: ptr IHTMLXDomainRequestFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispXDomainRequestToIDispatch*( + x: ptr DispXDomainRequest +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispXDomainRequestToIUnknown*( + x: ptr DispXDomainRequest +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStorageToIDispatch*(x: ptr IHTMLStorage): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStorageToIUnknown*(x: ptr IHTMLStorage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStorage2ToIDispatch*(x: ptr IHTMLStorage2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStorage2ToIUnknown*(x: ptr IHTMLStorage2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStorageToIDispatch*( + x: ptr DispHTMLStorage +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStorageToIUnknown*( + x: ptr DispHTMLStorage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEventTargetToIDispatch*(x: ptr IEventTarget): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIEventTargetToIUnknown*(x: ptr IEventTarget): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMEventToIDispatch*(x: ptr IDOMEvent): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMEventToIUnknown*(x: ptr IDOMEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMEventToIDispatch*(x: ptr DispDOMEvent): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMEventToIUnknown*(x: ptr DispDOMEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMUIEventToIDispatch*(x: ptr IDOMUIEvent): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMUIEventToIUnknown*(x: ptr IDOMUIEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMUIEventToIDispatch*( + x: ptr DispDOMUIEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMUIEventToIUnknown*(x: ptr DispDOMUIEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMouseEventToIDispatch*( + x: ptr IDOMMouseEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMouseEventToIUnknown*(x: ptr IDOMMouseEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMouseEventToIDispatch*( + x: ptr DispDOMMouseEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMouseEventToIUnknown*( + x: ptr DispDOMMouseEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMDragEventToIDispatch*(x: ptr IDOMDragEvent): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMDragEventToIUnknown*(x: ptr IDOMDragEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMDragEventToIDispatch*( + x: ptr DispDOMDragEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMDragEventToIUnknown*( + x: ptr DispDOMDragEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMouseWheelEventToIDispatch*( + x: ptr IDOMMouseWheelEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMouseWheelEventToIUnknown*( + x: ptr IDOMMouseWheelEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMouseWheelEventToIDispatch*( + x: ptr DispDOMMouseWheelEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMouseWheelEventToIUnknown*( + x: ptr DispDOMMouseWheelEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMWheelEventToIDispatch*( + x: ptr IDOMWheelEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMWheelEventToIUnknown*(x: ptr IDOMWheelEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMWheelEventToIDispatch*( + x: ptr DispDOMWheelEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMWheelEventToIUnknown*( + x: ptr DispDOMWheelEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMTextEventToIDispatch*(x: ptr IDOMTextEvent): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMTextEventToIUnknown*(x: ptr IDOMTextEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMTextEventToIDispatch*( + x: ptr DispDOMTextEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMTextEventToIUnknown*( + x: ptr DispDOMTextEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMKeyboardEventToIDispatch*( + x: ptr IDOMKeyboardEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMKeyboardEventToIUnknown*( + x: ptr IDOMKeyboardEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMKeyboardEventToIDispatch*( + x: ptr DispDOMKeyboardEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMKeyboardEventToIUnknown*( + x: ptr DispDOMKeyboardEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMCompositionEventToIDispatch*( + x: ptr IDOMCompositionEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMCompositionEventToIUnknown*( + x: ptr IDOMCompositionEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMCompositionEventToIDispatch*( + x: ptr DispDOMCompositionEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMCompositionEventToIUnknown*( + x: ptr DispDOMCompositionEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMutationEventToIDispatch*( + x: ptr IDOMMutationEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMutationEventToIUnknown*( + x: ptr IDOMMutationEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMutationEventToIDispatch*( + x: ptr DispDOMMutationEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMutationEventToIUnknown*( + x: ptr DispDOMMutationEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMBeforeUnloadEventToIDispatch*( + x: ptr IDOMBeforeUnloadEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMBeforeUnloadEventToIUnknown*( + x: ptr IDOMBeforeUnloadEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMBeforeUnloadEventToIDispatch*( + x: ptr DispDOMBeforeUnloadEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMBeforeUnloadEventToIUnknown*( + x: ptr DispDOMBeforeUnloadEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMFocusEventToIDispatch*( + x: ptr IDOMFocusEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMFocusEventToIUnknown*(x: ptr IDOMFocusEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMFocusEventToIDispatch*( + x: ptr DispDOMFocusEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMFocusEventToIUnknown*( + x: ptr DispDOMFocusEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMCustomEventToIDispatch*( + x: ptr IDOMCustomEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMCustomEventToIUnknown*( + x: ptr IDOMCustomEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMCustomEventToIDispatch*( + x: ptr DispDOMCustomEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMCustomEventToIUnknown*( + x: ptr DispDOMCustomEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasGradientToIDispatch*( + x: ptr ICanvasGradient +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterICanvasGradientToIUnknown*( + x: ptr ICanvasGradient +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasPatternToIDispatch*( + x: ptr ICanvasPattern +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterICanvasPatternToIUnknown*(x: ptr ICanvasPattern): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasTextMetricsToIDispatch*( + x: ptr ICanvasTextMetrics +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterICanvasTextMetricsToIUnknown*( + x: ptr ICanvasTextMetrics +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasImageDataToIDispatch*( + x: ptr ICanvasImageData +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterICanvasImageDataToIUnknown*( + x: ptr ICanvasImageData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasPixelArrayToIDispatch*( + x: ptr ICanvasPixelArray +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterICanvasPixelArrayToIUnknown*( + x: ptr ICanvasPixelArray +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasRenderingContext2DToIDispatch*( + x: ptr ICanvasRenderingContext2D +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterICanvasRenderingContext2DToIUnknown*( + x: ptr ICanvasRenderingContext2D +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCanvasElementToIDispatch*( + x: ptr IHTMLCanvasElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLCanvasElementToIUnknown*( + x: ptr IHTMLCanvasElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCanvasGradientToIDispatch*( + x: ptr DispCanvasGradient +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCanvasGradientToIUnknown*( + x: ptr DispCanvasGradient +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCanvasPatternToIDispatch*( + x: ptr DispCanvasPattern +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCanvasPatternToIUnknown*( + x: ptr DispCanvasPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCanvasTextMetricsToIDispatch*( + x: ptr DispCanvasTextMetrics +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCanvasTextMetricsToIUnknown*( + x: ptr DispCanvasTextMetrics +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCanvasImageDataToIDispatch*( + x: ptr DispCanvasImageData +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCanvasImageDataToIUnknown*( + x: ptr DispCanvasImageData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCanvasRenderingContext2DToIDispatch*( + x: ptr DispCanvasRenderingContext2D +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCanvasRenderingContext2DToIUnknown*( + x: ptr DispCanvasRenderingContext2D +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLCanvasElementToIDispatch*( + x: ptr DispHTMLCanvasElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLCanvasElementToIUnknown*( + x: ptr DispHTMLCanvasElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMProgressEventToIDispatch*( + x: ptr IDOMProgressEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMProgressEventToIUnknown*( + x: ptr IDOMProgressEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMProgressEventToIDispatch*( + x: ptr DispDOMProgressEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMProgressEventToIUnknown*( + x: ptr DispDOMProgressEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMessageEventToIDispatch*( + x: ptr IDOMMessageEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMessageEventToIUnknown*( + x: ptr IDOMMessageEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMessageEventToIDispatch*( + x: ptr DispDOMMessageEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMessageEventToIUnknown*( + x: ptr DispDOMMessageEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMSiteModeEventToIDispatch*( + x: ptr IDOMSiteModeEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMSiteModeEventToIUnknown*( + x: ptr IDOMSiteModeEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMSiteModeEventToIDispatch*( + x: ptr DispDOMSiteModeEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMSiteModeEventToIUnknown*( + x: ptr DispDOMSiteModeEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMStorageEventToIDispatch*( + x: ptr IDOMStorageEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMStorageEventToIUnknown*( + x: ptr IDOMStorageEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMStorageEventToIDispatch*( + x: ptr DispDOMStorageEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMStorageEventToIUnknown*( + x: ptr DispDOMStorageEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLHttpRequestEventTargetToIDispatch*( + x: ptr IXMLHttpRequestEventTarget +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLHttpRequestEventTargetToIUnknown*( + x: ptr IXMLHttpRequestEventTarget +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispXMLHttpRequestEventTargetToIDispatch*( + x: ptr DispXMLHttpRequestEventTarget +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispXMLHttpRequestEventTargetToIUnknown*( + x: ptr DispXMLHttpRequestEventTarget +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLXMLHttpRequestEventsToIDispatch*( + x: ptr HTMLXMLHttpRequestEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLXMLHttpRequestEventsToIUnknown*( + x: ptr HTMLXMLHttpRequestEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLXMLHttpRequestToIDispatch*( + x: ptr IHTMLXMLHttpRequest +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLXMLHttpRequestToIUnknown*( + x: ptr IHTMLXMLHttpRequest +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLXMLHttpRequest2ToIDispatch*( + x: ptr IHTMLXMLHttpRequest2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLXMLHttpRequest2ToIUnknown*( + x: ptr IHTMLXMLHttpRequest2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLXMLHttpRequestFactoryToIDispatch*( + x: ptr IHTMLXMLHttpRequestFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLXMLHttpRequestFactoryToIUnknown*( + x: ptr IHTMLXMLHttpRequestFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLXMLHttpRequestToIDispatch*( + x: ptr DispHTMLXMLHttpRequest +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLXMLHttpRequestToIUnknown*( + x: ptr DispHTMLXMLHttpRequest +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAngleToIDispatch*(x: ptr ISVGAngle): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAngleToIUnknown*(x: ptr ISVGAngle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGStylableToIDispatch*(x: ptr ISVGStylable): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGStylableToIUnknown*(x: ptr ISVGStylable): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGLocatableToIDispatch*(x: ptr ISVGLocatable): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGLocatableToIUnknown*(x: ptr ISVGLocatable): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTransformableToIDispatch*( + x: ptr ISVGTransformable +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTransformableToIUnknown*( + x: ptr ISVGTransformable +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTestsToIDispatch*(x: ptr ISVGTests): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTestsToIUnknown*(x: ptr ISVGTests): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGLangSpaceToIDispatch*(x: ptr ISVGLangSpace): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGLangSpaceToIUnknown*(x: ptr ISVGLangSpace): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGExternalResourcesRequiredToIDispatch*( + x: ptr ISVGExternalResourcesRequired +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGExternalResourcesRequiredToIUnknown*( + x: ptr ISVGExternalResourcesRequired +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGFitToViewBoxToIDispatch*( + x: ptr ISVGFitToViewBox +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGFitToViewBoxToIUnknown*( + x: ptr ISVGFitToViewBox +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGZoomAndPanToIDispatch*( + x: ptr ISVGZoomAndPan +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGZoomAndPanToIUnknown*(x: ptr ISVGZoomAndPan): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGURIReferenceToIDispatch*( + x: ptr ISVGURIReference +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGURIReferenceToIUnknown*( + x: ptr ISVGURIReference +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedAngleToIDispatch*( + x: ptr ISVGAnimatedAngle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedAngleToIUnknown*( + x: ptr ISVGAnimatedAngle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedTransformListToIDispatch*( + x: ptr ISVGAnimatedTransformList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedTransformListToIUnknown*( + x: ptr ISVGAnimatedTransformList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedBooleanToIDispatch*( + x: ptr ISVGAnimatedBoolean +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedBooleanToIUnknown*( + x: ptr ISVGAnimatedBoolean +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedEnumerationToIDispatch*( + x: ptr ISVGAnimatedEnumeration +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedEnumerationToIUnknown*( + x: ptr ISVGAnimatedEnumeration +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedIntegerToIDispatch*( + x: ptr ISVGAnimatedInteger +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedIntegerToIUnknown*( + x: ptr ISVGAnimatedInteger +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedLengthToIDispatch*( + x: ptr ISVGAnimatedLength +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedLengthToIUnknown*( + x: ptr ISVGAnimatedLength +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedLengthListToIDispatch*( + x: ptr ISVGAnimatedLengthList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedLengthListToIUnknown*( + x: ptr ISVGAnimatedLengthList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedNumberToIDispatch*( + x: ptr ISVGAnimatedNumber +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedNumberToIUnknown*( + x: ptr ISVGAnimatedNumber +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedNumberListToIDispatch*( + x: ptr ISVGAnimatedNumberList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedNumberListToIUnknown*( + x: ptr ISVGAnimatedNumberList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedRectToIDispatch*( + x: ptr ISVGAnimatedRect +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedRectToIUnknown*( + x: ptr ISVGAnimatedRect +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedStringToIDispatch*( + x: ptr ISVGAnimatedString +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedStringToIUnknown*( + x: ptr ISVGAnimatedString +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGClipPathElementToIDispatch*( + x: ptr ISVGClipPathElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGClipPathElementToIUnknown*( + x: ptr ISVGClipPathElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGClipPathElementToIDispatch*( + x: ptr DispSVGClipPathElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGClipPathElementToIUnknown*( + x: ptr DispSVGClipPathElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGDocumentToIDispatch*(x: ptr ISVGDocument): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGDocumentToIUnknown*(x: ptr ISVGDocument): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGetSVGDocumentToIDispatch*( + x: ptr IGetSVGDocument +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIGetSVGDocumentToIUnknown*( + x: ptr IGetSVGDocument +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGElementToIDispatch*(x: ptr ISVGElement): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGElementToIUnknown*(x: ptr ISVGElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGElementToIDispatch*( + x: ptr DispSVGElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGElementToIUnknown*(x: ptr DispSVGElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIICCSVGColorToIDispatch*(x: ptr IICCSVGColor): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIICCSVGColorToIUnknown*(x: ptr IICCSVGColor): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGLengthToIDispatch*(x: ptr ISVGLength): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGLengthToIUnknown*(x: ptr ISVGLength): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGLengthListToIDispatch*( + x: ptr ISVGLengthList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGLengthListToIUnknown*(x: ptr ISVGLengthList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGMatrixToIDispatch*(x: ptr ISVGMatrix): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGMatrixToIUnknown*(x: ptr ISVGMatrix): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGNumberToIDispatch*(x: ptr ISVGNumber): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGNumberToIUnknown*(x: ptr ISVGNumber): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGNumberListToIDispatch*( + x: ptr ISVGNumberList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGNumberListToIUnknown*(x: ptr ISVGNumberList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPaintToIDispatch*(x: ptr ISVGPaint): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPaintToIUnknown*(x: ptr ISVGPaint): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPatternElementToIDispatch*( + x: ptr ISVGPatternElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPatternElementToIUnknown*( + x: ptr ISVGPatternElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPatternElementToIDispatch*( + x: ptr DispSVGPatternElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPatternElementToIUnknown*( + x: ptr DispSVGPatternElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegToIDispatch*(x: ptr ISVGPathSeg): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegToIUnknown*(x: ptr ISVGPathSeg): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegArcAbsToIDispatch*( + x: ptr ISVGPathSegArcAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegArcAbsToIUnknown*( + x: ptr ISVGPathSegArcAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegArcRelToIDispatch*( + x: ptr ISVGPathSegArcRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegArcRelToIUnknown*( + x: ptr ISVGPathSegArcRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegClosePathToIDispatch*( + x: ptr ISVGPathSegClosePath +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegClosePathToIUnknown*( + x: ptr ISVGPathSegClosePath +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegMovetoAbsToIDispatch*( + x: ptr ISVGPathSegMovetoAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegMovetoAbsToIUnknown*( + x: ptr ISVGPathSegMovetoAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegMovetoRelToIDispatch*( + x: ptr ISVGPathSegMovetoRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegMovetoRelToIUnknown*( + x: ptr ISVGPathSegMovetoRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegLinetoAbsToIDispatch*( + x: ptr ISVGPathSegLinetoAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegLinetoAbsToIUnknown*( + x: ptr ISVGPathSegLinetoAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegLinetoRelToIDispatch*( + x: ptr ISVGPathSegLinetoRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegLinetoRelToIUnknown*( + x: ptr ISVGPathSegLinetoRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoCubicAbsToIDispatch*( + x: ptr ISVGPathSegCurvetoCubicAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoCubicAbsToIUnknown*( + x: ptr ISVGPathSegCurvetoCubicAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoCubicRelToIDispatch*( + x: ptr ISVGPathSegCurvetoCubicRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoCubicRelToIUnknown*( + x: ptr ISVGPathSegCurvetoCubicRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoCubicSmoothAbsToIDispatch*( + x: ptr ISVGPathSegCurvetoCubicSmoothAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoCubicSmoothAbsToIUnknown*( + x: ptr ISVGPathSegCurvetoCubicSmoothAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoCubicSmoothRelToIDispatch*( + x: ptr ISVGPathSegCurvetoCubicSmoothRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoCubicSmoothRelToIUnknown*( + x: ptr ISVGPathSegCurvetoCubicSmoothRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoQuadraticAbsToIDispatch*( + x: ptr ISVGPathSegCurvetoQuadraticAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoQuadraticAbsToIUnknown*( + x: ptr ISVGPathSegCurvetoQuadraticAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoQuadraticRelToIDispatch*( + x: ptr ISVGPathSegCurvetoQuadraticRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoQuadraticRelToIUnknown*( + x: ptr ISVGPathSegCurvetoQuadraticRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoQuadraticSmoothAbsToIDispatch*( + x: ptr ISVGPathSegCurvetoQuadraticSmoothAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoQuadraticSmoothAbsToIUnknown*( + x: ptr ISVGPathSegCurvetoQuadraticSmoothAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegCurvetoQuadraticSmoothRelToIDispatch*( + x: ptr ISVGPathSegCurvetoQuadraticSmoothRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegCurvetoQuadraticSmoothRelToIUnknown*( + x: ptr ISVGPathSegCurvetoQuadraticSmoothRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegLinetoHorizontalAbsToIDispatch*( + x: ptr ISVGPathSegLinetoHorizontalAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegLinetoHorizontalAbsToIUnknown*( + x: ptr ISVGPathSegLinetoHorizontalAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegLinetoHorizontalRelToIDispatch*( + x: ptr ISVGPathSegLinetoHorizontalRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegLinetoHorizontalRelToIUnknown*( + x: ptr ISVGPathSegLinetoHorizontalRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegLinetoVerticalAbsToIDispatch*( + x: ptr ISVGPathSegLinetoVerticalAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegLinetoVerticalAbsToIUnknown*( + x: ptr ISVGPathSegLinetoVerticalAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegLinetoVerticalRelToIDispatch*( + x: ptr ISVGPathSegLinetoVerticalRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegLinetoVerticalRelToIUnknown*( + x: ptr ISVGPathSegLinetoVerticalRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegArcAbsToIDispatch*( + x: ptr DispSVGPathSegArcAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegArcAbsToIUnknown*( + x: ptr DispSVGPathSegArcAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegArcRelToIDispatch*( + x: ptr DispSVGPathSegArcRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegArcRelToIUnknown*( + x: ptr DispSVGPathSegArcRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegClosePathToIDispatch*( + x: ptr DispSVGPathSegClosePath +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegClosePathToIUnknown*( + x: ptr DispSVGPathSegClosePath +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegMovetoAbsToIDispatch*( + x: ptr DispSVGPathSegMovetoAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegMovetoAbsToIUnknown*( + x: ptr DispSVGPathSegMovetoAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegMovetoRelToIDispatch*( + x: ptr DispSVGPathSegMovetoRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegMovetoRelToIUnknown*( + x: ptr DispSVGPathSegMovetoRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegLinetoAbsToIDispatch*( + x: ptr DispSVGPathSegLinetoAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegLinetoAbsToIUnknown*( + x: ptr DispSVGPathSegLinetoAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegLinetoRelToIDispatch*( + x: ptr DispSVGPathSegLinetoRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegLinetoRelToIUnknown*( + x: ptr DispSVGPathSegLinetoRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoCubicAbsToIDispatch*( + x: ptr DispSVGPathSegCurvetoCubicAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoCubicAbsToIUnknown*( + x: ptr DispSVGPathSegCurvetoCubicAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoCubicRelToIDispatch*( + x: ptr DispSVGPathSegCurvetoCubicRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoCubicRelToIUnknown*( + x: ptr DispSVGPathSegCurvetoCubicRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoCubicSmoothAbsToIDispatch*( + x: ptr DispSVGPathSegCurvetoCubicSmoothAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoCubicSmoothAbsToIUnknown*( + x: ptr DispSVGPathSegCurvetoCubicSmoothAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoCubicSmoothRelToIDispatch*( + x: ptr DispSVGPathSegCurvetoCubicSmoothRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoCubicSmoothRelToIUnknown*( + x: ptr DispSVGPathSegCurvetoCubicSmoothRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticAbsToIDispatch*( + x: ptr DispSVGPathSegCurvetoQuadraticAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticAbsToIUnknown*( + x: ptr DispSVGPathSegCurvetoQuadraticAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticRelToIDispatch*( + x: ptr DispSVGPathSegCurvetoQuadraticRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticRelToIUnknown*( + x: ptr DispSVGPathSegCurvetoQuadraticRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothAbsToIDispatch*( + x: ptr DispSVGPathSegCurvetoQuadraticSmoothAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothAbsToIUnknown*( + x: ptr DispSVGPathSegCurvetoQuadraticSmoothAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothRelToIDispatch*( + x: ptr DispSVGPathSegCurvetoQuadraticSmoothRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegCurvetoQuadraticSmoothRelToIUnknown*( + x: ptr DispSVGPathSegCurvetoQuadraticSmoothRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegLinetoHorizontalAbsToIDispatch*( + x: ptr DispSVGPathSegLinetoHorizontalAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegLinetoHorizontalAbsToIUnknown*( + x: ptr DispSVGPathSegLinetoHorizontalAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegLinetoHorizontalRelToIDispatch*( + x: ptr DispSVGPathSegLinetoHorizontalRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegLinetoHorizontalRelToIUnknown*( + x: ptr DispSVGPathSegLinetoHorizontalRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegLinetoVerticalAbsToIDispatch*( + x: ptr DispSVGPathSegLinetoVerticalAbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegLinetoVerticalAbsToIUnknown*( + x: ptr DispSVGPathSegLinetoVerticalAbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathSegLinetoVerticalRelToIDispatch*( + x: ptr DispSVGPathSegLinetoVerticalRel +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathSegLinetoVerticalRelToIUnknown*( + x: ptr DispSVGPathSegLinetoVerticalRel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathSegListToIDispatch*( + x: ptr ISVGPathSegList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathSegListToIUnknown*( + x: ptr ISVGPathSegList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPointToIDispatch*(x: ptr ISVGPoint): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPointToIUnknown*(x: ptr ISVGPoint): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPointListToIDispatch*(x: ptr ISVGPointList): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPointListToIUnknown*(x: ptr ISVGPointList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGRectToIDispatch*(x: ptr ISVGRect): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGRectToIUnknown*(x: ptr ISVGRect): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGStringListToIDispatch*( + x: ptr ISVGStringList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGStringListToIUnknown*(x: ptr ISVGStringList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGViewSpecToIDispatch*(x: ptr ISVGViewSpec): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGViewSpecToIUnknown*(x: ptr ISVGViewSpec): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTransformToIDispatch*(x: ptr ISVGTransform): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTransformToIUnknown*(x: ptr ISVGTransform): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGSVGElementToIDispatch*( + x: ptr ISVGSVGElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGSVGElementToIUnknown*(x: ptr ISVGSVGElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGSVGElementToIDispatch*( + x: ptr DispSVGSVGElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGSVGElementToIUnknown*( + x: ptr DispSVGSVGElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGUseElementToIDispatch*( + x: ptr ISVGUseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGUseElementToIUnknown*(x: ptr ISVGUseElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGUseElementToIDispatch*( + x: ptr DispSVGUseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGUseElementToIUnknown*( + x: ptr DispSVGUseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLStyleSheetRulesAppliedCollectionToIDispatch*( + x: ptr IHTMLStyleSheetRulesAppliedCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLStyleSheetRulesAppliedCollectionToIUnknown*( + x: ptr IHTMLStyleSheetRulesAppliedCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRulesAppliedToIDispatch*(x: ptr IRulesApplied): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIRulesAppliedToIUnknown*(x: ptr IRulesApplied): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRulesAppliedCollectionToIDispatch*( + x: ptr IRulesAppliedCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIRulesAppliedCollectionToIUnknown*( + x: ptr IRulesAppliedCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLStyleSheetRulesAppliedCollectionToIDispatch*( + x: ptr DispHTMLStyleSheetRulesAppliedCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLStyleSheetRulesAppliedCollectionToIUnknown*( + x: ptr DispHTMLStyleSheetRulesAppliedCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispRulesAppliedToIDispatch*( + x: ptr DispRulesApplied +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispRulesAppliedToIUnknown*( + x: ptr DispRulesApplied +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispRulesAppliedCollectionToIDispatch*( + x: ptr DispRulesAppliedCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispRulesAppliedCollectionToIUnknown*( + x: ptr DispRulesAppliedCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLW3CComputedStyleToIDispatch*( + x: ptr DispHTMLW3CComputedStyle +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLW3CComputedStyleToIUnknown*( + x: ptr DispHTMLW3CComputedStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTransformListToIDispatch*( + x: ptr ISVGTransformList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTransformListToIUnknown*( + x: ptr ISVGTransformList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedPointsToIDispatch*( + x: ptr ISVGAnimatedPoints +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedPointsToIUnknown*( + x: ptr ISVGAnimatedPoints +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGCircleElementToIDispatch*( + x: ptr ISVGCircleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGCircleElementToIUnknown*( + x: ptr ISVGCircleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGEllipseElementToIDispatch*( + x: ptr ISVGEllipseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGEllipseElementToIUnknown*( + x: ptr ISVGEllipseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGLineElementToIDispatch*( + x: ptr ISVGLineElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGLineElementToIUnknown*( + x: ptr ISVGLineElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGRectElementToIDispatch*( + x: ptr ISVGRectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGRectElementToIUnknown*( + x: ptr ISVGRectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPolygonElementToIDispatch*( + x: ptr ISVGPolygonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPolygonElementToIUnknown*( + x: ptr ISVGPolygonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPolylineElementToIDispatch*( + x: ptr ISVGPolylineElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPolylineElementToIUnknown*( + x: ptr ISVGPolylineElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGCircleElementToIDispatch*( + x: ptr DispSVGCircleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGCircleElementToIUnknown*( + x: ptr DispSVGCircleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGEllipseElementToIDispatch*( + x: ptr DispSVGEllipseElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGEllipseElementToIUnknown*( + x: ptr DispSVGEllipseElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGLineElementToIDispatch*( + x: ptr DispSVGLineElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGLineElementToIUnknown*( + x: ptr DispSVGLineElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGRectElementToIDispatch*( + x: ptr DispSVGRectElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGRectElementToIUnknown*( + x: ptr DispSVGRectElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPolygonElementToIDispatch*( + x: ptr DispSVGPolygonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPolygonElementToIUnknown*( + x: ptr DispSVGPolygonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPolylineElementToIDispatch*( + x: ptr DispSVGPolylineElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPolylineElementToIUnknown*( + x: ptr DispSVGPolylineElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGGElementToIDispatch*(x: ptr ISVGGElement): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGGElementToIUnknown*(x: ptr ISVGGElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGGElementToIDispatch*( + x: ptr DispSVGGElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGGElementToIUnknown*( + x: ptr DispSVGGElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGSymbolElementToIDispatch*( + x: ptr ISVGSymbolElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGSymbolElementToIUnknown*( + x: ptr ISVGSymbolElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGSymbolElementToIDispatch*( + x: ptr DispSVGSymbolElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGSymbolElementToIUnknown*( + x: ptr DispSVGSymbolElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGDefsElementToIDispatch*( + x: ptr ISVGDefsElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGDefsElementToIUnknown*( + x: ptr ISVGDefsElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGDefsElementToIDispatch*( + x: ptr DispSVGDefsElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGDefsElementToIUnknown*( + x: ptr DispSVGDefsElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedPathDataToIDispatch*( + x: ptr ISVGAnimatedPathData +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedPathDataToIUnknown*( + x: ptr ISVGAnimatedPathData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPathElementToIDispatch*( + x: ptr ISVGPathElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPathElementToIUnknown*( + x: ptr ISVGPathElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGPathElementToIDispatch*( + x: ptr DispSVGPathElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGPathElementToIUnknown*( + x: ptr DispSVGPathElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGPreserveAspectRatioToIDispatch*( + x: ptr ISVGPreserveAspectRatio +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGPreserveAspectRatioToIUnknown*( + x: ptr ISVGPreserveAspectRatio +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTextElementToIDispatch*( + x: ptr ISVGTextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTextElementToIUnknown*( + x: ptr ISVGTextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGTextElementToIDispatch*( + x: ptr DispSVGTextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGTextElementToIUnknown*( + x: ptr DispSVGTextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAnimatedPreserveAspectRatioToIDispatch*( + x: ptr ISVGAnimatedPreserveAspectRatio +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAnimatedPreserveAspectRatioToIUnknown*( + x: ptr ISVGAnimatedPreserveAspectRatio +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGImageElementToIDispatch*( + x: ptr ISVGImageElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGImageElementToIUnknown*( + x: ptr ISVGImageElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGImageElementToIDispatch*( + x: ptr DispSVGImageElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGImageElementToIUnknown*( + x: ptr DispSVGImageElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGStopElementToIDispatch*( + x: ptr ISVGStopElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGStopElementToIUnknown*( + x: ptr ISVGStopElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGStopElementToIDispatch*( + x: ptr DispSVGStopElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGStopElementToIUnknown*( + x: ptr DispSVGStopElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGGradientElementToIDispatch*( + x: ptr ISVGGradientElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGGradientElementToIUnknown*( + x: ptr ISVGGradientElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGGradientElementToIDispatch*( + x: ptr DispSVGGradientElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGGradientElementToIUnknown*( + x: ptr DispSVGGradientElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGLinearGradientElementToIDispatch*( + x: ptr ISVGLinearGradientElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGLinearGradientElementToIUnknown*( + x: ptr ISVGLinearGradientElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGLinearGradientElementToIDispatch*( + x: ptr DispSVGLinearGradientElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGLinearGradientElementToIUnknown*( + x: ptr DispSVGLinearGradientElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGRadialGradientElementToIDispatch*( + x: ptr ISVGRadialGradientElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGRadialGradientElementToIUnknown*( + x: ptr ISVGRadialGradientElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGRadialGradientElementToIDispatch*( + x: ptr DispSVGRadialGradientElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGRadialGradientElementToIUnknown*( + x: ptr DispSVGRadialGradientElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGMaskElementToIDispatch*( + x: ptr ISVGMaskElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGMaskElementToIUnknown*( + x: ptr ISVGMaskElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGMaskElementToIDispatch*( + x: ptr DispSVGMaskElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGMaskElementToIUnknown*( + x: ptr DispSVGMaskElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGMarkerElementToIDispatch*( + x: ptr ISVGMarkerElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGMarkerElementToIUnknown*( + x: ptr ISVGMarkerElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGMarkerElementToIDispatch*( + x: ptr DispSVGMarkerElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGMarkerElementToIUnknown*( + x: ptr DispSVGMarkerElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGZoomEventToIDispatch*(x: ptr ISVGZoomEvent): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGZoomEventToIUnknown*(x: ptr ISVGZoomEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGZoomEventToIDispatch*( + x: ptr DispSVGZoomEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGZoomEventToIUnknown*( + x: ptr DispSVGZoomEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGAElementToIDispatch*(x: ptr ISVGAElement): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGAElementToIUnknown*(x: ptr ISVGAElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGAElementToIDispatch*( + x: ptr DispSVGAElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGAElementToIUnknown*( + x: ptr DispSVGAElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGViewElementToIDispatch*( + x: ptr ISVGViewElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGViewElementToIUnknown*( + x: ptr ISVGViewElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGViewElementToIDispatch*( + x: ptr DispSVGViewElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGViewElementToIUnknown*( + x: ptr DispSVGViewElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMediaErrorToIDispatch*( + x: ptr IHTMLMediaError +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMediaErrorToIUnknown*( + x: ptr IHTMLMediaError +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTimeRangesToIDispatch*( + x: ptr IHTMLTimeRanges +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTimeRangesToIUnknown*( + x: ptr IHTMLTimeRanges +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLTimeRanges2ToIDispatch*( + x: ptr IHTMLTimeRanges2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLTimeRanges2ToIUnknown*( + x: ptr IHTMLTimeRanges2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMediaElementToIDispatch*( + x: ptr IHTMLMediaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMediaElementToIUnknown*( + x: ptr IHTMLMediaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMediaElement2ToIDispatch*( + x: ptr IHTMLMediaElement2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMediaElement2ToIUnknown*( + x: ptr IHTMLMediaElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLMSMediaElementToIDispatch*( + x: ptr IHTMLMSMediaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLMSMediaElementToIUnknown*( + x: ptr IHTMLMSMediaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLSourceElementToIDispatch*( + x: ptr IHTMLSourceElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLSourceElementToIUnknown*( + x: ptr IHTMLSourceElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAudioElementToIDispatch*( + x: ptr IHTMLAudioElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAudioElementToIUnknown*( + x: ptr IHTMLAudioElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLVideoElementToIDispatch*( + x: ptr IHTMLVideoElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLVideoElementToIUnknown*( + x: ptr IHTMLVideoElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAudioElementFactoryToIDispatch*( + x: ptr IHTMLAudioElementFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAudioElementFactoryToIUnknown*( + x: ptr IHTMLAudioElementFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMediaErrorToIDispatch*( + x: ptr DispHTMLMediaError +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMediaErrorToIUnknown*( + x: ptr DispHTMLMediaError +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLTimeRangesToIDispatch*( + x: ptr DispHTMLTimeRanges +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLTimeRangesToIUnknown*( + x: ptr DispHTMLTimeRanges +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLMediaElementToIDispatch*( + x: ptr DispHTMLMediaElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLMediaElementToIUnknown*( + x: ptr DispHTMLMediaElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLSourceElementToIDispatch*( + x: ptr DispHTMLSourceElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLSourceElementToIUnknown*( + x: ptr DispHTMLSourceElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLAudioElementToIDispatch*( + x: ptr DispHTMLAudioElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLAudioElementToIUnknown*( + x: ptr DispHTMLAudioElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLVideoElementToIDispatch*( + x: ptr DispHTMLVideoElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLVideoElementToIUnknown*( + x: ptr DispHTMLVideoElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGSwitchElementToIDispatch*( + x: ptr ISVGSwitchElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGSwitchElementToIUnknown*( + x: ptr ISVGSwitchElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGSwitchElementToIDispatch*( + x: ptr DispSVGSwitchElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGSwitchElementToIUnknown*( + x: ptr DispSVGSwitchElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGDescElementToIDispatch*( + x: ptr ISVGDescElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGDescElementToIUnknown*( + x: ptr ISVGDescElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGDescElementToIDispatch*( + x: ptr DispSVGDescElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGDescElementToIUnknown*( + x: ptr DispSVGDescElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTitleElementToIDispatch*( + x: ptr ISVGTitleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTitleElementToIUnknown*( + x: ptr ISVGTitleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGTitleElementToIDispatch*( + x: ptr DispSVGTitleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGTitleElementToIUnknown*( + x: ptr DispSVGTitleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGMetadataElementToIDispatch*( + x: ptr ISVGMetadataElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGMetadataElementToIUnknown*( + x: ptr ISVGMetadataElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGMetadataElementToIDispatch*( + x: ptr DispSVGMetadataElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGMetadataElementToIUnknown*( + x: ptr DispSVGMetadataElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGElementInstanceToIDispatch*( + x: ptr ISVGElementInstance +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGElementInstanceToIUnknown*( + x: ptr ISVGElementInstance +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGElementInstanceToIDispatch*( + x: ptr DispSVGElementInstance +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGElementInstanceToIUnknown*( + x: ptr DispSVGElementInstance +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGElementInstanceListToIDispatch*( + x: ptr ISVGElementInstanceList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGElementInstanceListToIUnknown*( + x: ptr ISVGElementInstanceList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGElementInstanceListToIDispatch*( + x: ptr DispSVGElementInstanceList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGElementInstanceListToIUnknown*( + x: ptr DispSVGElementInstanceList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMExceptionToIDispatch*(x: ptr IDOMException): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMExceptionToIUnknown*(x: ptr IDOMException): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRangeExceptionToIDispatch*( + x: ptr IRangeException +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIRangeExceptionToIUnknown*( + x: ptr IRangeException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGExceptionToIDispatch*(x: ptr ISVGException): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGExceptionToIUnknown*(x: ptr ISVGException): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEventExceptionToIDispatch*( + x: ptr IEventException +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIEventExceptionToIUnknown*( + x: ptr IEventException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMExceptionToIDispatch*( + x: ptr DispDOMException +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMExceptionToIUnknown*( + x: ptr DispDOMException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispRangeExceptionToIDispatch*( + x: ptr DispRangeException +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispRangeExceptionToIUnknown*( + x: ptr DispRangeException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGExceptionToIDispatch*( + x: ptr DispSVGException +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGExceptionToIUnknown*( + x: ptr DispSVGException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispEventExceptionToIDispatch*( + x: ptr DispEventException +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispEventExceptionToIUnknown*( + x: ptr DispEventException +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGScriptElementToIDispatch*( + x: ptr ISVGScriptElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGScriptElementToIUnknown*( + x: ptr ISVGScriptElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGScriptElementToIDispatch*( + x: ptr DispSVGScriptElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGScriptElementToIUnknown*( + x: ptr DispSVGScriptElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGStyleElementToIDispatch*( + x: ptr ISVGStyleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGStyleElementToIUnknown*( + x: ptr ISVGStyleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGStyleElementToIDispatch*( + x: ptr DispSVGStyleElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGStyleElementToIUnknown*( + x: ptr DispSVGStyleElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTextContentElementToIDispatch*( + x: ptr ISVGTextContentElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTextContentElementToIUnknown*( + x: ptr ISVGTextContentElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGTextContentElementToIDispatch*( + x: ptr DispSVGTextContentElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGTextContentElementToIUnknown*( + x: ptr DispSVGTextContentElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTextPositioningElementToIDispatch*( + x: ptr ISVGTextPositioningElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTextPositioningElementToIUnknown*( + x: ptr ISVGTextPositioningElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGTextPositioningElementToIDispatch*( + x: ptr DispSVGTextPositioningElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGTextPositioningElementToIUnknown*( + x: ptr DispSVGTextPositioningElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMDocumentTypeToIDispatch*( + x: ptr IDOMDocumentType +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMDocumentTypeToIUnknown*( + x: ptr IDOMDocumentType +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMDocumentTypeToIDispatch*( + x: ptr DispDOMDocumentType +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMDocumentTypeToIUnknown*( + x: ptr DispDOMDocumentType +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMNodeIteratorToIDispatch*( + x: ptr IDOMNodeIterator +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMNodeIteratorToIUnknown*( + x: ptr IDOMNodeIterator +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMTreeWalkerToIDispatch*( + x: ptr IDOMTreeWalker +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMTreeWalkerToIUnknown*(x: ptr IDOMTreeWalker): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispNodeIteratorToIDispatch*( + x: ptr DispNodeIterator +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispNodeIteratorToIUnknown*( + x: ptr DispNodeIterator +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispTreeWalkerToIDispatch*( + x: ptr DispTreeWalker +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispTreeWalkerToIUnknown*(x: ptr DispTreeWalker): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMProcessingInstructionToIDispatch*( + x: ptr IDOMProcessingInstruction +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMProcessingInstructionToIUnknown*( + x: ptr IDOMProcessingInstruction +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMProcessingInstructionToIDispatch*( + x: ptr DispDOMProcessingInstruction +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMProcessingInstructionToIUnknown*( + x: ptr DispDOMProcessingInstruction +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPerformanceToIDispatch*( + x: ptr IHTMLPerformance +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPerformanceToIUnknown*( + x: ptr IHTMLPerformance +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPerformanceNavigationToIDispatch*( + x: ptr IHTMLPerformanceNavigation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPerformanceNavigationToIUnknown*( + x: ptr IHTMLPerformanceNavigation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPerformanceTimingToIDispatch*( + x: ptr IHTMLPerformanceTiming +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPerformanceTimingToIUnknown*( + x: ptr IHTMLPerformanceTiming +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLPerformanceToIDispatch*( + x: ptr DispHTMLPerformance +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLPerformanceToIUnknown*( + x: ptr DispHTMLPerformance +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLPerformanceNavigationToIDispatch*( + x: ptr DispHTMLPerformanceNavigation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLPerformanceNavigationToIUnknown*( + x: ptr DispHTMLPerformanceNavigation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLPerformanceTimingToIDispatch*( + x: ptr DispHTMLPerformanceTiming +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLPerformanceTimingToIUnknown*( + x: ptr DispHTMLPerformanceTiming +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTSpanElementToIDispatch*( + x: ptr ISVGTSpanElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTSpanElementToIUnknown*( + x: ptr ISVGTSpanElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGTSpanElementToIDispatch*( + x: ptr DispSVGTSpanElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGTSpanElementToIUnknown*( + x: ptr DispSVGTSpanElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITemplatePrinterToIDispatch*( + x: ptr ITemplatePrinter +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterITemplatePrinterToIUnknown*( + x: ptr ITemplatePrinter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITemplatePrinter2ToITemplatePrinter*( + x: ptr ITemplatePrinter2 +): ptr ITemplatePrinter = + cast[ptr ITemplatePrinter](x) + +converter winimConverterITemplatePrinter2ToIDispatch*( + x: ptr ITemplatePrinter2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterITemplatePrinter2ToIUnknown*( + x: ptr ITemplatePrinter2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITemplatePrinter3ToITemplatePrinter2*( + x: ptr ITemplatePrinter3 +): ptr ITemplatePrinter2 = + cast[ptr ITemplatePrinter2](x) + +converter winimConverterITemplatePrinter3ToITemplatePrinter*( + x: ptr ITemplatePrinter3 +): ptr ITemplatePrinter = + cast[ptr ITemplatePrinter](x) + +converter winimConverterITemplatePrinter3ToIDispatch*( + x: ptr ITemplatePrinter3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterITemplatePrinter3ToIUnknown*( + x: ptr ITemplatePrinter3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPrintManagerTemplatePrinterToIDispatch*( + x: ptr IPrintManagerTemplatePrinter +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIPrintManagerTemplatePrinterToIUnknown*( + x: ptr IPrintManagerTemplatePrinter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispCPrintManagerTemplatePrinterToIDispatch*( + x: ptr DispCPrintManagerTemplatePrinter +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispCPrintManagerTemplatePrinterToIUnknown*( + x: ptr DispCPrintManagerTemplatePrinter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISVGTextPathElementToIDispatch*( + x: ptr ISVGTextPathElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISVGTextPathElementToIUnknown*( + x: ptr ISVGTextPathElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispSVGTextPathElementToIDispatch*( + x: ptr DispSVGTextPathElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispSVGTextPathElementToIUnknown*( + x: ptr DispSVGTextPathElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMXmlSerializerToIDispatch*( + x: ptr IDOMXmlSerializer +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMXmlSerializerToIUnknown*( + x: ptr IDOMXmlSerializer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMXmlSerializerFactoryToIDispatch*( + x: ptr IDOMXmlSerializerFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMXmlSerializerFactoryToIUnknown*( + x: ptr IDOMXmlSerializerFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMParserToIDispatch*(x: ptr IDOMParser): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMParserToIUnknown*(x: ptr IDOMParser): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMParserFactoryToIDispatch*( + x: ptr IDOMParserFactory +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMParserFactoryToIUnknown*( + x: ptr IDOMParserFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispXMLSerializerToIDispatch*( + x: ptr DispXMLSerializer +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispXMLSerializerToIUnknown*( + x: ptr DispXMLSerializer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMParserToIDispatch*(x: ptr DispDOMParser): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMParserToIUnknown*(x: ptr DispDOMParser): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLSemanticElementToIDispatch*( + x: ptr DispHTMLSemanticElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLSemanticElementToIUnknown*( + x: ptr DispHTMLSemanticElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLProgressElementToIDispatch*( + x: ptr IHTMLProgressElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLProgressElementToIUnknown*( + x: ptr IHTMLProgressElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLProgressElementToIDispatch*( + x: ptr DispHTMLProgressElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLProgressElementToIUnknown*( + x: ptr DispHTMLProgressElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMSTransitionEventToIDispatch*( + x: ptr IDOMMSTransitionEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMSTransitionEventToIUnknown*( + x: ptr IDOMMSTransitionEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMSTransitionEventToIDispatch*( + x: ptr DispDOMMSTransitionEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMSTransitionEventToIUnknown*( + x: ptr DispDOMMSTransitionEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMSAnimationEventToIDispatch*( + x: ptr IDOMMSAnimationEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMSAnimationEventToIUnknown*( + x: ptr IDOMMSAnimationEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMSAnimationEventToIDispatch*( + x: ptr DispDOMMSAnimationEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMSAnimationEventToIUnknown*( + x: ptr DispDOMMSAnimationEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebGeolocationToIDispatch*( + x: ptr IWebGeolocation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebGeolocationToIUnknown*( + x: ptr IWebGeolocation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebGeocoordinatesToIDispatch*( + x: ptr IWebGeocoordinates +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebGeocoordinatesToIUnknown*( + x: ptr IWebGeocoordinates +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebGeopositionErrorToIDispatch*( + x: ptr IWebGeopositionError +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebGeopositionErrorToIUnknown*( + x: ptr IWebGeopositionError +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebGeopositionToIDispatch*( + x: ptr IWebGeoposition +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebGeopositionToIUnknown*( + x: ptr IWebGeoposition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispWebGeolocationToIDispatch*( + x: ptr DispWebGeolocation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispWebGeolocationToIUnknown*( + x: ptr DispWebGeolocation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispWebGeocoordinatesToIDispatch*( + x: ptr DispWebGeocoordinates +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispWebGeocoordinatesToIUnknown*( + x: ptr DispWebGeocoordinates +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispWebGeopositionErrorToIDispatch*( + x: ptr DispWebGeopositionError +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispWebGeopositionErrorToIUnknown*( + x: ptr DispWebGeopositionError +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispWebGeopositionToIDispatch*( + x: ptr DispWebGeoposition +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispWebGeopositionToIUnknown*( + x: ptr DispWebGeoposition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIClientCapsToIDispatch*(x: ptr IClientCaps): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIClientCapsToIUnknown*(x: ptr IClientCaps): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMMSManipulationEventToIDispatch*( + x: ptr IDOMMSManipulationEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMMSManipulationEventToIUnknown*( + x: ptr IDOMMSManipulationEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMMSManipulationEventToIDispatch*( + x: ptr DispDOMMSManipulationEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMMSManipulationEventToIUnknown*( + x: ptr DispDOMMSManipulationEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMCloseEventToIDispatch*( + x: ptr IDOMCloseEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIDOMCloseEventToIUnknown*(x: ptr IDOMCloseEvent): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispDOMCloseEventToIDispatch*( + x: ptr DispDOMCloseEvent +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispDOMCloseEventToIUnknown*( + x: ptr DispDOMCloseEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLApplicationCacheToIDispatch*( + x: ptr IHTMLApplicationCache +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLApplicationCacheToIUnknown*( + x: ptr IHTMLApplicationCache +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispApplicationCacheToIDispatch*( + x: ptr DispApplicationCache +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispApplicationCacheToIUnknown*( + x: ptr DispApplicationCache +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICSSFilterSiteToIUnknown*(x: ptr ICSSFilterSite): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICSSFilterToIUnknown*(x: ptr ICSSFilter): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISecureUrlHostToIUnknown*(x: ptr ISecureUrlHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupServicesToIUnknown*( + x: ptr IMarkupServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupServices2ToIMarkupServices*( + x: ptr IMarkupServices2 +): ptr IMarkupServices = + cast[ptr IMarkupServices](x) + +converter winimConverterIMarkupServices2ToIUnknown*( + x: ptr IMarkupServices2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupContainerToIUnknown*( + x: ptr IMarkupContainer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupContainer2ToIMarkupContainer*( + x: ptr IMarkupContainer2 +): ptr IMarkupContainer = + cast[ptr IMarkupContainer](x) + +converter winimConverterIMarkupContainer2ToIUnknown*( + x: ptr IMarkupContainer2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLChangePlaybackToIUnknown*( + x: ptr IHTMLChangePlayback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupPointerToIUnknown*(x: ptr IMarkupPointer): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupPointer2ToIMarkupPointer*( + x: ptr IMarkupPointer2 +): ptr IMarkupPointer = + cast[ptr IMarkupPointer](x) + +converter winimConverterIMarkupPointer2ToIUnknown*( + x: ptr IMarkupPointer2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarkupTextFragsToIUnknown*( + x: ptr IMarkupTextFrags +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLChangeLogToIUnknown*(x: ptr IHTMLChangeLog): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLChangeSinkToIUnknown*( + x: ptr IHTMLChangeSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLGenericParseToIUnknown*( + x: ptr IXMLGenericParse +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEditHostToIUnknown*(x: ptr IHTMLEditHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEditHost2ToIHTMLEditHost*( + x: ptr IHTMLEditHost2 +): ptr IHTMLEditHost = + cast[ptr IHTMLEditHost](x) + +converter winimConverterIHTMLEditHost2ToIUnknown*(x: ptr IHTMLEditHost2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISegmentToIUnknown*(x: ptr ISegment): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISegmentListIteratorToIUnknown*( + x: ptr ISegmentListIterator +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISegmentListToIUnknown*(x: ptr ISegmentList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISequenceNumberToIUnknown*( + x: ptr ISequenceNumber +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIIMEServicesToIUnknown*(x: ptr IIMEServices): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLCaretToIUnknown*(x: ptr IHTMLCaret): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHighlightRenderingServicesToIUnknown*( + x: ptr IHighlightRenderingServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISelectionServicesListenerToIUnknown*( + x: ptr ISelectionServicesListener +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISelectionServicesToIUnknown*( + x: ptr ISelectionServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementSegmentToISegment*( + x: ptr IElementSegment +): ptr ISegment = + cast[ptr ISegment](x) + +converter winimConverterIElementSegmentToIUnknown*( + x: ptr IElementSegment +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHighlightSegmentToISegment*( + x: ptr IHighlightSegment +): ptr ISegment = + cast[ptr ISegment](x) + +converter winimConverterIHighlightSegmentToIUnknown*( + x: ptr IHighlightSegment +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEditDesignerToIUnknown*( + x: ptr IHTMLEditDesigner +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEditServicesToIUnknown*( + x: ptr IHTMLEditServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLEditServices2ToIHTMLEditServices*( + x: ptr IHTMLEditServices2 +): ptr IHTMLEditServices = + cast[ptr IHTMLEditServices](x) + +converter winimConverterIHTMLEditServices2ToIUnknown*( + x: ptr IHTMLEditServices2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterILineInfoToIUnknown*(x: ptr ILineInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLComputedStyleToIUnknown*( + x: ptr IHTMLComputedStyle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDisplayPointerToIUnknown*( + x: ptr IDisplayPointer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDisplayServicesToIUnknown*( + x: ptr IDisplayServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHtmlDlgSafeHelperToIDispatch*( + x: ptr IHtmlDlgSafeHelper +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHtmlDlgSafeHelperToIUnknown*( + x: ptr IHtmlDlgSafeHelper +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBlockFormatsToIDispatch*(x: ptr IBlockFormats): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIBlockFormatsToIUnknown*(x: ptr IBlockFormats): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFontNamesToIDispatch*(x: ptr IFontNames): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIFontNamesToIUnknown*(x: ptr IFontNames): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDeveloperConsoleMessageReceiverToIUnknown*( + x: ptr IDeveloperConsoleMessageReceiver +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDebugCallbackNotificationHandlerToIUnknown*( + x: ptr IDebugCallbackNotificationHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIScriptEventHandlerToIUnknown*( + x: ptr IScriptEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIScriptEventHandlerSourceInfoToIUnknown*( + x: ptr IScriptEventHandlerSourceInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDOMEventRegistrationCallbackToIUnknown*( + x: ptr IDOMEventRegistrationCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEventTarget2ToIUnknown*(x: ptr IEventTarget2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterHTMLNamespaceEventsToIDispatch*( + x: ptr HTMLNamespaceEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterHTMLNamespaceEventsToIUnknown*( + x: ptr HTMLNamespaceEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLNamespaceToIDispatch*( + x: ptr IHTMLNamespace +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLNamespaceToIUnknown*(x: ptr IHTMLNamespace): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLNamespaceCollectionToIDispatch*( + x: ptr IHTMLNamespaceCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLNamespaceCollectionToIUnknown*( + x: ptr IHTMLNamespaceCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLNamespaceToIDispatch*( + x: ptr DispHTMLNamespace +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLNamespaceToIUnknown*( + x: ptr DispHTMLNamespace +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLNamespaceCollectionToIDispatch*( + x: ptr DispHTMLNamespaceCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLNamespaceCollectionToIUnknown*( + x: ptr DispHTMLNamespaceCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPainterToIUnknown*(x: ptr IHTMLPainter): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPainterEventInfoToIUnknown*( + x: ptr IHTMLPainterEventInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPainterOverlayToIUnknown*( + x: ptr IHTMLPainterOverlay +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPaintSiteToIUnknown*(x: ptr IHTMLPaintSite): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLIPrintCollectionToIDispatch*( + x: ptr IHTMLIPrintCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLIPrintCollectionToIUnknown*( + x: ptr IHTMLIPrintCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumPrivacyRecordsToIUnknown*( + x: ptr IEnumPrivacyRecords +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWPCBlockedUrlsToIUnknown*( + x: ptr IWPCBlockedUrls +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDOMConstructorCollectionToIDispatch*( + x: ptr IHTMLDOMConstructorCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDOMConstructorCollectionToIUnknown*( + x: ptr IHTMLDOMConstructorCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDialogToIDispatch*(x: ptr IHTMLDialog): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDialogToIUnknown*(x: ptr IHTMLDialog): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDialog2ToIDispatch*(x: ptr IHTMLDialog2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDialog2ToIUnknown*(x: ptr IHTMLDialog2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLDialog3ToIDispatch*(x: ptr IHTMLDialog3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLDialog3ToIUnknown*(x: ptr IHTMLDialog3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLModelessInitToIDispatch*( + x: ptr IHTMLModelessInit +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLModelessInitToIUnknown*( + x: ptr IHTMLModelessInit +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLPopupToIDispatch*(x: ptr IHTMLPopup): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLPopupToIUnknown*(x: ptr IHTMLPopup): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLPopupToIDispatch*(x: ptr DispHTMLPopup): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLPopupToIUnknown*(x: ptr DispHTMLPopup): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAppBehaviorToIDispatch*( + x: ptr IHTMLAppBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAppBehaviorToIUnknown*( + x: ptr IHTMLAppBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAppBehavior2ToIDispatch*( + x: ptr IHTMLAppBehavior2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAppBehavior2ToIUnknown*( + x: ptr IHTMLAppBehavior2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLAppBehavior3ToIDispatch*( + x: ptr IHTMLAppBehavior3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIHTMLAppBehavior3ToIUnknown*( + x: ptr IHTMLAppBehavior3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispHTMLAppBehaviorToIDispatch*( + x: ptr DispHTMLAppBehavior +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispHTMLAppBehaviorToIUnknown*( + x: ptr DispHTMLAppBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispIHTMLInputButtonElementToIDispatch*( + x: ptr DispIHTMLInputButtonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispIHTMLInputButtonElementToIUnknown*( + x: ptr DispIHTMLInputButtonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispIHTMLInputTextElementToIDispatch*( + x: ptr DispIHTMLInputTextElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispIHTMLInputTextElementToIUnknown*( + x: ptr DispIHTMLInputTextElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispIHTMLInputFileElementToIDispatch*( + x: ptr DispIHTMLInputFileElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispIHTMLInputFileElementToIUnknown*( + x: ptr DispIHTMLInputFileElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispIHTMLOptionButtonElementToIDispatch*( + x: ptr DispIHTMLOptionButtonElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispIHTMLOptionButtonElementToIUnknown*( + x: ptr DispIHTMLOptionButtonElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDispIHTMLInputImageToIDispatch*( + x: ptr DispIHTMLInputImage +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDispIHTMLInputImageToIUnknown*( + x: ptr DispIHTMLInputImage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorFactoryToIUnknown*( + x: ptr IElementBehaviorFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementNamespaceToIUnknown*( + x: ptr IElementNamespace +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementNamespaceTableToIUnknown*( + x: ptr IElementNamespaceTable +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementNamespaceFactoryToIUnknown*( + x: ptr IElementNamespaceFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementNamespaceFactory2ToIElementNamespaceFactory*( + x: ptr IElementNamespaceFactory2 +): ptr IElementNamespaceFactory = + cast[ptr IElementNamespaceFactory](x) + +converter winimConverterIElementNamespaceFactory2ToIUnknown*( + x: ptr IElementNamespaceFactory2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementNamespaceFactoryCallbackToIUnknown*( + x: ptr IElementNamespaceFactoryCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorToIUnknown*( + x: ptr IElementBehavior +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteToIUnknown*( + x: ptr IElementBehaviorSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteOMToIUnknown*( + x: ptr IElementBehaviorSiteOM +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteOM2ToIElementBehaviorSiteOM*( + x: ptr IElementBehaviorSiteOM2 +): ptr IElementBehaviorSiteOM = + cast[ptr IElementBehaviorSiteOM](x) + +converter winimConverterIElementBehaviorSiteOM2ToIUnknown*( + x: ptr IElementBehaviorSiteOM2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorRenderToIUnknown*( + x: ptr IElementBehaviorRender +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteRenderToIUnknown*( + x: ptr IElementBehaviorSiteRender +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorCategoryToIUnknown*( + x: ptr IElementBehaviorCategory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteCategoryToIUnknown*( + x: ptr IElementBehaviorSiteCategory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSubmitToIUnknown*( + x: ptr IElementBehaviorSubmit +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorFocusToIUnknown*( + x: ptr IElementBehaviorFocus +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorLayoutToIUnknown*( + x: ptr IElementBehaviorLayout +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorLayout2ToIUnknown*( + x: ptr IElementBehaviorLayout2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteLayoutToIUnknown*( + x: ptr IElementBehaviorSiteLayout +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIElementBehaviorSiteLayout2ToIUnknown*( + x: ptr IElementBehaviorSiteLayout2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostBehaviorInitToIUnknown*( + x: ptr IHostBehaviorInit +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObjectPresentSiteToIUnknown*( + x: ptr IViewObjectPresentSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISurfacePresenterToIUnknown*( + x: ptr ISurfacePresenter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICanvasPixelArrayDataToIUnknown*( + x: ptr ICanvasPixelArrayData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObjectPrintToIUnknown*( + x: ptr IViewObjectPrint +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObjectPresentNotifySiteToIViewObjectPresentSite*( + x: ptr IViewObjectPresentNotifySite +): ptr IViewObjectPresentSite = + cast[ptr IViewObjectPresentSite](x) + +converter winimConverterIViewObjectPresentNotifySiteToIUnknown*( + x: ptr IViewObjectPresentNotifySite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObjectPresentNotifyToIUnknown*( + x: ptr IViewObjectPresentNotify +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITrackingProtectionToIUnknown*( + x: ptr ITrackingProtection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHostDialogHelperToIUnknown*( + x: ptr IHostDialogHelper +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocHostUIHandlerToIUnknown*( + x: ptr IDocHostUIHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocHostUIHandler2ToIDocHostUIHandler*( + x: ptr IDocHostUIHandler2 +): ptr IDocHostUIHandler = + cast[ptr IDocHostUIHandler](x) + +converter winimConverterIDocHostUIHandler2ToIUnknown*( + x: ptr IDocHostUIHandler2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICustomDocToIUnknown*(x: ptr ICustomDoc): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocHostShowUIToIUnknown*(x: ptr IDocHostShowUI): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIClassFactoryExToIClassFactory*( + x: ptr IClassFactoryEx +): ptr IClassFactory = + cast[ptr IClassFactory](x) + +converter winimConverterIClassFactoryExToIUnknown*( + x: ptr IClassFactoryEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHTMLOMWindowServicesToIUnknown*( + x: ptr IHTMLOMWindowServices +): ptr IUnknown = + cast[ptr IUnknown](x) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/msi.nim --- a/semicongine/thirdparty/winim/winim/inc/msi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/msi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -34,24 +34,29 @@ MSICODE* = int32 MSITRANSACTION* = int32 MSITRANSACTIONSTATE* = int32 - INSTALLUI_HANDLER_RECORD* = proc (pvContext: LPVOID, iMessageType: UINT, hRecord: MSIHANDLE): int32 {.stdcall.} + INSTALLUI_HANDLER_RECORD* = + proc(pvContext: LPVOID, iMessageType: UINT, hRecord: MSIHANDLE): int32 {.stdcall.} PINSTALLUI_HANDLER_RECORD* = ptr INSTALLUI_HANDLER_RECORD MSIPATCHSEQUENCEINFOA* {.pure.} = object szPatchData*: LPCSTR ePatchDataType*: MSIPATCHDATATYPE dwOrder*: DWORD uStatus*: UINT + PMSIPATCHSEQUENCEINFOA* = ptr MSIPATCHSEQUENCEINFOA MSIPATCHSEQUENCEINFOW* {.pure.} = object szPatchData*: LPCWSTR ePatchDataType*: MSIPATCHDATATYPE dwOrder*: DWORD uStatus*: UINT + PMSIPATCHSEQUENCEINFOW* = ptr MSIPATCHSEQUENCEINFOW MSIFILEHASHINFO* {.pure.} = object dwFileHashInfoSize*: ULONG dwData*: array[4, ULONG] + PMSIFILEHASHINFO* = ptr MSIFILEHASHINFO + const NTDDI_WIN2K* = 0x05000000 NTDDI_WINXP* = 0x05010000 @@ -161,13 +166,17 @@ MSIPATCHSTATE_SUPERSEDED* = 2 MSIPATCHSTATE_OBSOLETED* = 4 MSIPATCHSTATE_REGISTERED* = 8 - MSIPATCHSTATE_ALL* = MSIPATCHSTATE_APPLIED or MSIPATCHSTATE_SUPERSEDED or MSIPATCHSTATE_OBSOLETED or MSIPATCHSTATE_REGISTERED + MSIPATCHSTATE_ALL* = + MSIPATCHSTATE_APPLIED or MSIPATCHSTATE_SUPERSEDED or MSIPATCHSTATE_OBSOLETED or + MSIPATCHSTATE_REGISTERED MSIINSTALLCONTEXT_FIRSTVISIBLE* = 0 MSIINSTALLCONTEXT_NONE* = 0 MSIINSTALLCONTEXT_USERMANAGED* = 1 MSIINSTALLCONTEXT_USERUNMANAGED* = 2 MSIINSTALLCONTEXT_MACHINE* = 4 - MSIINSTALLCONTEXT_ALL* = MSIINSTALLCONTEXT_USERMANAGED or MSIINSTALLCONTEXT_USERUNMANAGED or MSIINSTALLCONTEXT_MACHINE + MSIINSTALLCONTEXT_ALL* = + MSIINSTALLCONTEXT_USERMANAGED or MSIINSTALLCONTEXT_USERUNMANAGED or + MSIINSTALLCONTEXT_MACHINE MSIINSTALLCONTEXT_ALLUSERMANAGED* = 8 MSIPATCH_DATATYPE_PATCHFILE* = 0 MSIPATCH_DATATYPE_XMLPATH* = 1 @@ -217,7 +226,8 @@ SCRIPTFLAGS_VALIDATE_TRANSFORMS_LIST* = 0x00000040 SCRIPTFLAGS_REGDATA_CLASSINFO* = 0x00000080 SCRIPTFLAGS_REGDATA_EXTENSIONINFO* = 0x00000100 - SCRIPTFLAGS_REGDATA_APPINFO* = SCRIPTFLAGS_REGDATA_CLASSINFO or SCRIPTFLAGS_REGDATA_EXTENSIONINFO + SCRIPTFLAGS_REGDATA_APPINFO* = + SCRIPTFLAGS_REGDATA_CLASSINFO or SCRIPTFLAGS_REGDATA_EXTENSIONINFO SCRIPTFLAGS_REGDATA* = SCRIPTFLAGS_REGDATA_APPINFO or SCRIPTFLAGS_REGDATA_CNFGINFO ADVERTISEFLAGS_MACHINEASSIGN* = 0 ADVERTISEFLAGS_USERASSIGN* = 1 @@ -251,329 +261,1995 @@ ERROR_INSTALL_SERVICE_SAFEBOOT* = 1652 ERROR_ROLLBACK_DISABLED* = 1653 type - INSTALLUI_HANDLERA* = proc (pvContext: LPVOID, iMessageType: UINT, szMessage: LPCSTR): int32 {.stdcall.} - INSTALLUI_HANDLERW* = proc (pvContext: LPVOID, iMessageType: UINT, szMessage: LPCWSTR): int32 {.stdcall.} + INSTALLUI_HANDLERA* = + proc(pvContext: LPVOID, iMessageType: UINT, szMessage: LPCSTR): int32 {.stdcall.} + INSTALLUI_HANDLERW* = + proc(pvContext: LPVOID, iMessageType: UINT, szMessage: LPCWSTR): int32 {.stdcall.} + proc MsiCloseHandle*(hAny: MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} proc MsiCloseAllHandles*(): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSetInternalUI*(dwUILevel: INSTALLUILEVEL, phWnd: ptr HWND): INSTALLUILEVEL {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSetExternalUIA*(puiHandler: INSTALLUI_HANDLERA, dwMessageFilter: DWORD, pvContext: LPVOID): INSTALLUI_HANDLERA {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSetExternalUIW*(puiHandler: INSTALLUI_HANDLERW, dwMessageFilter: DWORD, pvContext: LPVOID): INSTALLUI_HANDLERW {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSetExternalUIRecord*(puiHandler: INSTALLUI_HANDLER_RECORD, dwMessageFilter: DWORD, pvContext: LPVOID, ppuiPrevHandler: PINSTALLUI_HANDLER_RECORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnableLogA*(dwLogMode: DWORD, szLogFile: LPCSTR, dwLogAttributes: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnableLogW*(dwLogMode: DWORD, szLogFile: LPCWSTR, dwLogAttributes: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryProductStateA*(szProduct: LPCSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryProductStateW*(szProduct: LPCWSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductInfoA*(szProduct: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductInfoW*(szProduct: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductInfoExA*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCSTR, szValue: LPSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductInfoExW*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCWSTR, szValue: LPWSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiInstallProductA*(szPackagePath: LPCSTR, szCommandLine: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiInstallProductW*(szPackagePath: LPCWSTR, szCommandLine: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiConfigureProductA*(szProduct: LPCSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiConfigureProductW*(szProduct: LPCWSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiConfigureProductExA*(szProduct: LPCSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE, szCommandLine: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiConfigureProductExW*(szProduct: LPCWSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE, szCommandLine: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiReinstallProductA*(szProduct: LPCSTR, szReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiReinstallProductW*(szProduct: LPCWSTR, szReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiAdvertiseProductExA*(szPackagePath: LPCSTR, szScriptfilePath: LPCSTR, szTransforms: LPCSTR, lgidLanguage: LANGID, dwPlatform: DWORD, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiAdvertiseProductExW*(szPackagePath: LPCWSTR, szScriptfilePath: LPCWSTR, szTransforms: LPCWSTR, lgidLanguage: LANGID, dwPlatform: DWORD, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiAdvertiseProductA*(szPackagePath: LPCSTR, szScriptfilePath: LPCSTR, szTransforms: LPCSTR, lgidLanguage: LANGID): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiAdvertiseProductW*(szPackagePath: LPCWSTR, szScriptfilePath: LPCWSTR, szTransforms: LPCWSTR, lgidLanguage: LANGID): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProcessAdvertiseScriptA*(szScriptFile: LPCSTR, szIconFolder: LPCSTR, hRegData: HKEY, fShortcuts: WINBOOL, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProcessAdvertiseScriptW*(szScriptFile: LPCWSTR, szIconFolder: LPCWSTR, hRegData: HKEY, fShortcuts: WINBOOL, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiAdvertiseScriptA*(szScriptFile: LPCSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiAdvertiseScriptW*(szScriptFile: LPCWSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductInfoFromScriptA*(szScriptFile: LPCSTR, lpProductBuf39: LPSTR, plgidLanguage: ptr LANGID, pdwVersion: ptr DWORD, lpNameBuf: LPSTR, pcchNameBuf: ptr DWORD, lpPackageBuf: LPSTR, pcchPackageBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductInfoFromScriptW*(szScriptFile: LPCWSTR, lpProductBuf39: LPWSTR, plgidLanguage: ptr LANGID, pdwVersion: ptr DWORD, lpNameBuf: LPWSTR, pcchNameBuf: ptr DWORD, lpPackageBuf: LPWSTR, pcchPackageBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductCodeA*(szComponent: LPCSTR, lpBuf39: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductCodeW*(szComponent: LPCWSTR, lpBuf39: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetUserInfoA*(szProduct: LPCSTR, lpUserNameBuf: LPSTR, pcchUserNameBuf: ptr DWORD, lpOrgNameBuf: LPSTR, pcchOrgNameBuf: ptr DWORD, lpSerialBuf: LPSTR, pcchSerialBuf: ptr DWORD): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetUserInfoW*(szProduct: LPCWSTR, lpUserNameBuf: LPWSTR, pcchUserNameBuf: ptr DWORD, lpOrgNameBuf: LPWSTR, pcchOrgNameBuf: ptr DWORD, lpSerialBuf: LPWSTR, pcchSerialBuf: ptr DWORD): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiCollectUserInfoA*(szProduct: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiCollectUserInfoW*(szProduct: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiApplyPatchA*(szPatchPackage: LPCSTR, szInstallPackage: LPCSTR, eInstallType: INSTALLTYPE, szCommandLine: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiApplyPatchW*(szPatchPackage: LPCWSTR, szInstallPackage: LPCWSTR, eInstallType: INSTALLTYPE, szCommandLine: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetPatchInfoA*(szPatch: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetPatchInfoW*(szPatch: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumPatchesA*(szProduct: LPCSTR, iPatchIndex: DWORD, lpPatchBuf: LPSTR, lpTransformsBuf: LPSTR, pcchTransformsBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumPatchesW*(szProduct: LPCWSTR, iPatchIndex: DWORD, lpPatchBuf: LPWSTR, lpTransformsBuf: LPWSTR, pcchTransformsBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiRemovePatchesA*(szPatchList: LPCSTR, szProductCode: LPCSTR, eUninstallType: INSTALLTYPE, szPropertyList: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiRemovePatchesW*(szPatchList: LPCWSTR, szProductCode: LPCWSTR, eUninstallType: INSTALLTYPE, szPropertyList: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiExtractPatchXMLDataA*(szPatchPath: LPCSTR, dwReserved: DWORD, szXMLData: LPSTR, pcchXMLData: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiExtractPatchXMLDataW*(szPatchPath: LPCWSTR, dwReserved: DWORD, szXMLData: LPWSTR, pcchXMLData: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetPatchInfoExA*(szPatchCode: LPCSTR, szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCSTR, lpValue: LPSTR, pcchValue: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetPatchInfoExW*(szPatchCode: LPCWSTR, szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCWSTR, lpValue: LPWSTR, pcchValue: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiApplyMultiplePatchesA*(szPatchPackages: LPCSTR, szProductCode: LPCSTR, szPropertiesList: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiApplyMultiplePatchesW*(szPatchPackages: LPCWSTR, szProductCode: LPCWSTR, szPropertiesList: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiDeterminePatchSequenceA*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOA): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiDeterminePatchSequenceW*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOW): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiDetermineApplicablePatchesA*(szProductPackagePath: LPCSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOA): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiDetermineApplicablePatchesW*(szProductPackagePath: LPCWSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOW): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumPatchesExA*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: DWORD, dwFilter: DWORD, dwIndex: DWORD, szPatchCode: ptr CHAR, szTargetProductCode: ptr CHAR, pdwTargetProductContext: ptr MSIINSTALLCONTEXT, szTargetUserSid: LPSTR, pcchTargetUserSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumPatchesExW*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: DWORD, dwFilter: DWORD, dwIndex: DWORD, szPatchCode: ptr WCHAR, szTargetProductCode: ptr WCHAR, pdwTargetProductContext: ptr MSIINSTALLCONTEXT, szTargetUserSid: LPWSTR, pcchTargetUserSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryFeatureStateA*(szProduct: LPCSTR, szFeature: LPCSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryFeatureStateW*(szProduct: LPCWSTR, szFeature: LPCWSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryFeatureStateExA*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szFeature: LPCSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryFeatureStateExW*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szFeature: LPCWSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiUseFeatureA*(szProduct: LPCSTR, szFeature: LPCSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiUseFeatureW*(szProduct: LPCWSTR, szFeature: LPCWSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiUseFeatureExA*(szProduct: LPCSTR, szFeature: LPCSTR, dwInstallMode: DWORD, dwReserved: DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiUseFeatureExW*(szProduct: LPCWSTR, szFeature: LPCWSTR, dwInstallMode: DWORD, dwReserved: DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFeatureUsageA*(szProduct: LPCSTR, szFeature: LPCSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFeatureUsageW*(szProduct: LPCWSTR, szFeature: LPCWSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiConfigureFeatureA*(szProduct: LPCSTR, szFeature: LPCSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiConfigureFeatureW*(szProduct: LPCWSTR, szFeature: LPCWSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiReinstallFeatureA*(szProduct: LPCSTR, szFeature: LPCSTR, dwReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiReinstallFeatureW*(szProduct: LPCWSTR, szFeature: LPCWSTR, dwReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideComponentA*(szProduct: LPCSTR, szFeature: LPCSTR, szComponent: LPCSTR, dwInstallMode: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideComponentW*(szProduct: LPCWSTR, szFeature: LPCWSTR, szComponent: LPCWSTR, dwInstallMode: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideQualifiedComponentA*(szCategory: LPCSTR, szQualifier: LPCSTR, dwInstallMode: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideQualifiedComponentW*(szCategory: LPCWSTR, szQualifier: LPCWSTR, dwInstallMode: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideQualifiedComponentExA*(szCategory: LPCSTR, szQualifier: LPCSTR, dwInstallMode: DWORD, szProduct: LPCSTR, dwUnused1: DWORD, dwUnused2: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideQualifiedComponentExW*(szCategory: LPCWSTR, szQualifier: LPCWSTR, dwInstallMode: DWORD, szProduct: LPCWSTR, dwUnused1: DWORD, dwUnused2: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetComponentPathA*(szProduct: LPCSTR, szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetComponentPathW*(szProduct: LPCWSTR, szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideAssemblyA*(szAssemblyName: LPCSTR, szAppContext: LPCSTR, dwInstallMode: DWORD, dwAssemblyInfo: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiProvideAssemblyW*(szAssemblyName: LPCWSTR, szAppContext: LPCWSTR, dwInstallMode: DWORD, dwAssemblyInfo: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryComponentStateA*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szComponentCode: LPCSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiQueryComponentStateW*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szComponentCode: LPCWSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumProductsA*(iProductIndex: DWORD, lpProductBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumProductsW*(iProductIndex: DWORD, lpProductBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumProductsExA*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: DWORD, dwIndex: DWORD, szInstalledProductCode: ptr CHAR, pdwInstalledContext: ptr MSIINSTALLCONTEXT, szSid: LPSTR, pcchSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumProductsExW*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: DWORD, dwIndex: DWORD, szInstalledProductCode: ptr WCHAR, pdwInstalledContext: ptr MSIINSTALLCONTEXT, szSid: LPWSTR, pcchSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumRelatedProductsA*(lpUpgradeCode: LPCSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumRelatedProductsW*(lpUpgradeCode: LPCWSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumFeaturesA*(szProduct: LPCSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPSTR, lpParentBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumFeaturesW*(szProduct: LPCWSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPWSTR, lpParentBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumComponentsA*(iComponentIndex: DWORD, lpComponentBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumComponentsW*(iComponentIndex: DWORD, lpComponentBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumClientsA*(szComponent: LPCSTR, iProductIndex: DWORD, lpProductBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumClientsW*(szComponent: LPCWSTR, iProductIndex: DWORD, lpProductBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumComponentQualifiersA*(szComponent: LPCSTR, iIndex: DWORD, lpQualifierBuf: LPSTR, pcchQualifierBuf: ptr DWORD, lpApplicationDataBuf: LPSTR, pcchApplicationDataBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEnumComponentQualifiersW*(szComponent: LPCWSTR, iIndex: DWORD, lpQualifierBuf: LPWSTR, pcchQualifierBuf: ptr DWORD, lpApplicationDataBuf: LPWSTR, pcchApplicationDataBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiOpenProductA*(szProduct: LPCSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiOpenProductW*(szProduct: LPCWSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiOpenPackageA*(szPackagePath: LPCSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiOpenPackageW*(szPackagePath: LPCWSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiOpenPackageExA*(szPackagePath: LPCSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiOpenPackageExW*(szPackagePath: LPCWSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetPatchFileListA*(szProductCode: LPCSTR, szPatchPackages: LPCSTR, pcFiles: LPDWORD, pphFileRecords: ptr ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetPatchFileListW*(szProductCode: LPCWSTR, szPatchPackages: LPCWSTR, pcFiles: LPDWORD, pphFileRecords: ptr ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductPropertyA*(hProduct: MSIHANDLE, szProperty: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetProductPropertyW*(hProduct: MSIHANDLE, szProperty: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiVerifyPackageA*(szPackagePath: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiVerifyPackageW*(szPackagePath: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFeatureInfoA*(hProduct: MSIHANDLE, szFeature: LPCSTR, lpAttributes: ptr DWORD, lpTitleBuf: LPSTR, pcchTitleBuf: ptr DWORD, lpHelpBuf: LPSTR, pcchHelpBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFeatureInfoW*(hProduct: MSIHANDLE, szFeature: LPCWSTR, lpAttributes: ptr DWORD, lpTitleBuf: LPWSTR, pcchTitleBuf: ptr DWORD, lpHelpBuf: LPWSTR, pcchHelpBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiInstallMissingComponentA*(szProduct: LPCSTR, szComponent: LPCSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiInstallMissingComponentW*(szProduct: LPCWSTR, szComponent: LPCWSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiInstallMissingFileA*(szProduct: LPCSTR, szFile: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiInstallMissingFileW*(szProduct: LPCWSTR, szFile: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiLocateComponentA*(szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiLocateComponentW*(szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearAllA*(szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearAllW*(szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListAddSourceA*(szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD, szSource: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListAddSourceW*(szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD, szSource: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListForceResolutionA*(szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListForceResolutionW*(szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListAddSourceExA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCSTR, dwIndex: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListAddSourceExW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCWSTR, dwIndex: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListAddMediaDiskA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD, szVolumeLabel: LPCSTR, szDiskPrompt: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListAddMediaDiskW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD, szVolumeLabel: LPCWSTR, szDiskPrompt: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearSourceA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearSourceW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearMediaDiskA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearMediaDiskW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearAllExA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListClearAllExW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListForceResolutionExA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListForceResolutionExW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListSetInfoA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCSTR, szValue: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListSetInfoW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCWSTR, szValue: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListGetInfoA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCSTR, szValue: LPSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListGetInfoW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCWSTR, szValue: LPWSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListEnumSourcesA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, szSource: LPSTR, pcchSource: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListEnumSourcesW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, szSource: LPWSTR, pcchSource: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListEnumMediaDisksA*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, pdwDiskId: LPDWORD, szVolumeLabel: LPSTR, pcchVolumeLabel: LPDWORD, szDiskPrompt: LPSTR, pcchDiskPrompt: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiSourceListEnumMediaDisksW*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, pdwDiskId: LPDWORD, szVolumeLabel: LPWSTR, pcchVolumeLabel: LPDWORD, szDiskPrompt: LPWSTR, pcchDiskPrompt: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFileVersionA*(szFilePath: LPCSTR, lpVersionBuf: LPSTR, pcchVersionBuf: ptr DWORD, lpLangBuf: LPSTR, pcchLangBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFileVersionW*(szFilePath: LPCWSTR, lpVersionBuf: LPWSTR, pcchVersionBuf: ptr DWORD, lpLangBuf: LPWSTR, pcchLangBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFileHashA*(szFilePath: LPCSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFileHashW*(szFilePath: LPCWSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFileSignatureInformationA*(szSignedObjectPath: LPCSTR, dwFlags: DWORD, ppcCertContext: ptr PCCERT_CONTEXT, pbHashData: ptr BYTE, pcbHashData: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetFileSignatureInformationW*(szSignedObjectPath: LPCWSTR, dwFlags: DWORD, ppcCertContext: ptr PCCERT_CONTEXT, pbHashData: ptr BYTE, pcbHashData: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetShortcutTargetA*(szShortcutPath: LPCSTR, szProductCode: LPSTR, szFeatureId: LPSTR, szComponentCode: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiGetShortcutTargetW*(szShortcutPath: LPCWSTR, szProductCode: LPWSTR, szFeatureId: LPWSTR, szComponentCode: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiIsProductElevatedA*(szProduct: LPCSTR, pfElevated: ptr WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiIsProductElevatedW*(szProduct: LPCWSTR, pfElevated: ptr WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiNotifySidChangeA*(pOldSid: LPCSTR, pNewSid: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiNotifySidChangeW*(pOldSid: LPCWSTR, pNewSid: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiBeginTransactionA*(szName: LPCSTR, dwTransactionAttributes: DWORD, phTransactionHandle: ptr MSIHANDLE, phChangeOfOwnerEvent: ptr HANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiBeginTransactionW*(szName: LPCWSTR, dwTransactionAttributes: DWORD, phTransactionHandle: ptr MSIHANDLE, phChangeOfOwnerEvent: ptr HANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiEndTransaction*(dwTransactionState: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc.} -proc MsiJoinTransaction*(hTransactionHandle: MSIHANDLE, dwTransactionAttributes: DWORD, phChangeOfOwnerEvent: ptr HANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc.} +proc MsiSetInternalUI*( + dwUILevel: INSTALLUILEVEL, phWnd: ptr HWND +): INSTALLUILEVEL {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSetExternalUIA*( + puiHandler: INSTALLUI_HANDLERA, dwMessageFilter: DWORD, pvContext: LPVOID +): INSTALLUI_HANDLERA {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSetExternalUIW*( + puiHandler: INSTALLUI_HANDLERW, dwMessageFilter: DWORD, pvContext: LPVOID +): INSTALLUI_HANDLERW {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSetExternalUIRecord*( + puiHandler: INSTALLUI_HANDLER_RECORD, + dwMessageFilter: DWORD, + pvContext: LPVOID, + ppuiPrevHandler: PINSTALLUI_HANDLER_RECORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnableLogA*( + dwLogMode: DWORD, szLogFile: LPCSTR, dwLogAttributes: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnableLogW*( + dwLogMode: DWORD, szLogFile: LPCWSTR, dwLogAttributes: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryProductStateA*( + szProduct: LPCSTR +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryProductStateW*( + szProduct: LPCWSTR +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductInfoA*( + szProduct: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductInfoW*( + szProduct: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductInfoExA*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCSTR, + szValue: LPSTR, + pcchValue: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductInfoExW*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCWSTR, + szValue: LPWSTR, + pcchValue: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiInstallProductA*( + szPackagePath: LPCSTR, szCommandLine: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiInstallProductW*( + szPackagePath: LPCWSTR, szCommandLine: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiConfigureProductA*( + szProduct: LPCSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiConfigureProductW*( + szProduct: LPCWSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiConfigureProductExA*( + szProduct: LPCSTR, + iInstallLevel: int32, + eInstallState: INSTALLSTATE, + szCommandLine: LPCSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiConfigureProductExW*( + szProduct: LPCWSTR, + iInstallLevel: int32, + eInstallState: INSTALLSTATE, + szCommandLine: LPCWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiReinstallProductA*( + szProduct: LPCSTR, szReinstallMode: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiReinstallProductW*( + szProduct: LPCWSTR, szReinstallMode: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiAdvertiseProductExA*( + szPackagePath: LPCSTR, + szScriptfilePath: LPCSTR, + szTransforms: LPCSTR, + lgidLanguage: LANGID, + dwPlatform: DWORD, + dwOptions: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiAdvertiseProductExW*( + szPackagePath: LPCWSTR, + szScriptfilePath: LPCWSTR, + szTransforms: LPCWSTR, + lgidLanguage: LANGID, + dwPlatform: DWORD, + dwOptions: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiAdvertiseProductA*( + szPackagePath: LPCSTR, + szScriptfilePath: LPCSTR, + szTransforms: LPCSTR, + lgidLanguage: LANGID, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiAdvertiseProductW*( + szPackagePath: LPCWSTR, + szScriptfilePath: LPCWSTR, + szTransforms: LPCWSTR, + lgidLanguage: LANGID, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProcessAdvertiseScriptA*( + szScriptFile: LPCSTR, + szIconFolder: LPCSTR, + hRegData: HKEY, + fShortcuts: WINBOOL, + fRemoveItems: WINBOOL, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProcessAdvertiseScriptW*( + szScriptFile: LPCWSTR, + szIconFolder: LPCWSTR, + hRegData: HKEY, + fShortcuts: WINBOOL, + fRemoveItems: WINBOOL, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiAdvertiseScriptA*( + szScriptFile: LPCSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiAdvertiseScriptW*( + szScriptFile: LPCWSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductInfoFromScriptA*( + szScriptFile: LPCSTR, + lpProductBuf39: LPSTR, + plgidLanguage: ptr LANGID, + pdwVersion: ptr DWORD, + lpNameBuf: LPSTR, + pcchNameBuf: ptr DWORD, + lpPackageBuf: LPSTR, + pcchPackageBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductInfoFromScriptW*( + szScriptFile: LPCWSTR, + lpProductBuf39: LPWSTR, + plgidLanguage: ptr LANGID, + pdwVersion: ptr DWORD, + lpNameBuf: LPWSTR, + pcchNameBuf: ptr DWORD, + lpPackageBuf: LPWSTR, + pcchPackageBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductCodeA*( + szComponent: LPCSTR, lpBuf39: LPSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductCodeW*( + szComponent: LPCWSTR, lpBuf39: LPWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetUserInfoA*( + szProduct: LPCSTR, + lpUserNameBuf: LPSTR, + pcchUserNameBuf: ptr DWORD, + lpOrgNameBuf: LPSTR, + pcchOrgNameBuf: ptr DWORD, + lpSerialBuf: LPSTR, + pcchSerialBuf: ptr DWORD, +): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetUserInfoW*( + szProduct: LPCWSTR, + lpUserNameBuf: LPWSTR, + pcchUserNameBuf: ptr DWORD, + lpOrgNameBuf: LPWSTR, + pcchOrgNameBuf: ptr DWORD, + lpSerialBuf: LPWSTR, + pcchSerialBuf: ptr DWORD, +): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiCollectUserInfoA*( + szProduct: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiCollectUserInfoW*( + szProduct: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiApplyPatchA*( + szPatchPackage: LPCSTR, + szInstallPackage: LPCSTR, + eInstallType: INSTALLTYPE, + szCommandLine: LPCSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiApplyPatchW*( + szPatchPackage: LPCWSTR, + szInstallPackage: LPCWSTR, + eInstallType: INSTALLTYPE, + szCommandLine: LPCWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetPatchInfoA*( + szPatch: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetPatchInfoW*( + szPatch: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumPatchesA*( + szProduct: LPCSTR, + iPatchIndex: DWORD, + lpPatchBuf: LPSTR, + lpTransformsBuf: LPSTR, + pcchTransformsBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumPatchesW*( + szProduct: LPCWSTR, + iPatchIndex: DWORD, + lpPatchBuf: LPWSTR, + lpTransformsBuf: LPWSTR, + pcchTransformsBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiRemovePatchesA*( + szPatchList: LPCSTR, + szProductCode: LPCSTR, + eUninstallType: INSTALLTYPE, + szPropertyList: LPCSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiRemovePatchesW*( + szPatchList: LPCWSTR, + szProductCode: LPCWSTR, + eUninstallType: INSTALLTYPE, + szPropertyList: LPCWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiExtractPatchXMLDataA*( + szPatchPath: LPCSTR, dwReserved: DWORD, szXMLData: LPSTR, pcchXMLData: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiExtractPatchXMLDataW*( + szPatchPath: LPCWSTR, dwReserved: DWORD, szXMLData: LPWSTR, pcchXMLData: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetPatchInfoExA*( + szPatchCode: LPCSTR, + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCSTR, + lpValue: LPSTR, + pcchValue: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetPatchInfoExW*( + szPatchCode: LPCWSTR, + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCWSTR, + lpValue: LPWSTR, + pcchValue: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiApplyMultiplePatchesA*( + szPatchPackages: LPCSTR, szProductCode: LPCSTR, szPropertiesList: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiApplyMultiplePatchesW*( + szPatchPackages: LPCWSTR, szProductCode: LPCWSTR, szPropertiesList: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiDeterminePatchSequenceA*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + cPatchInfo: DWORD, + pPatchInfo: PMSIPATCHSEQUENCEINFOA, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiDeterminePatchSequenceW*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + cPatchInfo: DWORD, + pPatchInfo: PMSIPATCHSEQUENCEINFOW, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiDetermineApplicablePatchesA*( + szProductPackagePath: LPCSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOA +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiDetermineApplicablePatchesW*( + szProductPackagePath: LPCWSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOW +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumPatchesExA*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: DWORD, + dwFilter: DWORD, + dwIndex: DWORD, + szPatchCode: ptr CHAR, + szTargetProductCode: ptr CHAR, + pdwTargetProductContext: ptr MSIINSTALLCONTEXT, + szTargetUserSid: LPSTR, + pcchTargetUserSid: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumPatchesExW*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: DWORD, + dwFilter: DWORD, + dwIndex: DWORD, + szPatchCode: ptr WCHAR, + szTargetProductCode: ptr WCHAR, + pdwTargetProductContext: ptr MSIINSTALLCONTEXT, + szTargetUserSid: LPWSTR, + pcchTargetUserSid: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryFeatureStateA*( + szProduct: LPCSTR, szFeature: LPCSTR +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryFeatureStateW*( + szProduct: LPCWSTR, szFeature: LPCWSTR +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryFeatureStateExA*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szFeature: LPCSTR, + pdwState: ptr INSTALLSTATE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryFeatureStateExW*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szFeature: LPCWSTR, + pdwState: ptr INSTALLSTATE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiUseFeatureA*( + szProduct: LPCSTR, szFeature: LPCSTR +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiUseFeatureW*( + szProduct: LPCWSTR, szFeature: LPCWSTR +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiUseFeatureExA*( + szProduct: LPCSTR, szFeature: LPCSTR, dwInstallMode: DWORD, dwReserved: DWORD +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiUseFeatureExW*( + szProduct: LPCWSTR, szFeature: LPCWSTR, dwInstallMode: DWORD, dwReserved: DWORD +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFeatureUsageA*( + szProduct: LPCSTR, szFeature: LPCSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFeatureUsageW*( + szProduct: LPCWSTR, szFeature: LPCWSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiConfigureFeatureA*( + szProduct: LPCSTR, szFeature: LPCSTR, eInstallState: INSTALLSTATE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiConfigureFeatureW*( + szProduct: LPCWSTR, szFeature: LPCWSTR, eInstallState: INSTALLSTATE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiReinstallFeatureA*( + szProduct: LPCSTR, szFeature: LPCSTR, dwReinstallMode: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiReinstallFeatureW*( + szProduct: LPCWSTR, szFeature: LPCWSTR, dwReinstallMode: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideComponentA*( + szProduct: LPCSTR, + szFeature: LPCSTR, + szComponent: LPCSTR, + dwInstallMode: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideComponentW*( + szProduct: LPCWSTR, + szFeature: LPCWSTR, + szComponent: LPCWSTR, + dwInstallMode: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideQualifiedComponentA*( + szCategory: LPCSTR, + szQualifier: LPCSTR, + dwInstallMode: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideQualifiedComponentW*( + szCategory: LPCWSTR, + szQualifier: LPCWSTR, + dwInstallMode: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideQualifiedComponentExA*( + szCategory: LPCSTR, + szQualifier: LPCSTR, + dwInstallMode: DWORD, + szProduct: LPCSTR, + dwUnused1: DWORD, + dwUnused2: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideQualifiedComponentExW*( + szCategory: LPCWSTR, + szQualifier: LPCWSTR, + dwInstallMode: DWORD, + szProduct: LPCWSTR, + dwUnused1: DWORD, + dwUnused2: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetComponentPathA*( + szProduct: LPCSTR, szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetComponentPathW*( + szProduct: LPCWSTR, szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideAssemblyA*( + szAssemblyName: LPCSTR, + szAppContext: LPCSTR, + dwInstallMode: DWORD, + dwAssemblyInfo: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiProvideAssemblyW*( + szAssemblyName: LPCWSTR, + szAppContext: LPCWSTR, + dwInstallMode: DWORD, + dwAssemblyInfo: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryComponentStateA*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szComponentCode: LPCSTR, + pdwState: ptr INSTALLSTATE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiQueryComponentStateW*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szComponentCode: LPCWSTR, + pdwState: ptr INSTALLSTATE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumProductsA*( + iProductIndex: DWORD, lpProductBuf: LPSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumProductsW*( + iProductIndex: DWORD, lpProductBuf: LPWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumProductsExA*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: DWORD, + dwIndex: DWORD, + szInstalledProductCode: ptr CHAR, + pdwInstalledContext: ptr MSIINSTALLCONTEXT, + szSid: LPSTR, + pcchSid: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumProductsExW*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: DWORD, + dwIndex: DWORD, + szInstalledProductCode: ptr WCHAR, + pdwInstalledContext: ptr MSIINSTALLCONTEXT, + szSid: LPWSTR, + pcchSid: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumRelatedProductsA*( + lpUpgradeCode: LPCSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumRelatedProductsW*( + lpUpgradeCode: LPCWSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumFeaturesA*( + szProduct: LPCSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPSTR, lpParentBuf: LPSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumFeaturesW*( + szProduct: LPCWSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPWSTR, lpParentBuf: LPWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumComponentsA*( + iComponentIndex: DWORD, lpComponentBuf: LPSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumComponentsW*( + iComponentIndex: DWORD, lpComponentBuf: LPWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumClientsA*( + szComponent: LPCSTR, iProductIndex: DWORD, lpProductBuf: LPSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumClientsW*( + szComponent: LPCWSTR, iProductIndex: DWORD, lpProductBuf: LPWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumComponentQualifiersA*( + szComponent: LPCSTR, + iIndex: DWORD, + lpQualifierBuf: LPSTR, + pcchQualifierBuf: ptr DWORD, + lpApplicationDataBuf: LPSTR, + pcchApplicationDataBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEnumComponentQualifiersW*( + szComponent: LPCWSTR, + iIndex: DWORD, + lpQualifierBuf: LPWSTR, + pcchQualifierBuf: ptr DWORD, + lpApplicationDataBuf: LPWSTR, + pcchApplicationDataBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiOpenProductA*( + szProduct: LPCSTR, hProduct: ptr MSIHANDLE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiOpenProductW*( + szProduct: LPCWSTR, hProduct: ptr MSIHANDLE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiOpenPackageA*( + szPackagePath: LPCSTR, hProduct: ptr MSIHANDLE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiOpenPackageW*( + szPackagePath: LPCWSTR, hProduct: ptr MSIHANDLE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiOpenPackageExA*( + szPackagePath: LPCSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiOpenPackageExW*( + szPackagePath: LPCWSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetPatchFileListA*( + szProductCode: LPCSTR, + szPatchPackages: LPCSTR, + pcFiles: LPDWORD, + pphFileRecords: ptr ptr MSIHANDLE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetPatchFileListW*( + szProductCode: LPCWSTR, + szPatchPackages: LPCWSTR, + pcFiles: LPDWORD, + pphFileRecords: ptr ptr MSIHANDLE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductPropertyA*( + hProduct: MSIHANDLE, szProperty: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetProductPropertyW*( + hProduct: MSIHANDLE, szProperty: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiVerifyPackageA*( + szPackagePath: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiVerifyPackageW*( + szPackagePath: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFeatureInfoA*( + hProduct: MSIHANDLE, + szFeature: LPCSTR, + lpAttributes: ptr DWORD, + lpTitleBuf: LPSTR, + pcchTitleBuf: ptr DWORD, + lpHelpBuf: LPSTR, + pcchHelpBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFeatureInfoW*( + hProduct: MSIHANDLE, + szFeature: LPCWSTR, + lpAttributes: ptr DWORD, + lpTitleBuf: LPWSTR, + pcchTitleBuf: ptr DWORD, + lpHelpBuf: LPWSTR, + pcchHelpBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiInstallMissingComponentA*( + szProduct: LPCSTR, szComponent: LPCSTR, eInstallState: INSTALLSTATE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiInstallMissingComponentW*( + szProduct: LPCWSTR, szComponent: LPCWSTR, eInstallState: INSTALLSTATE +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiInstallMissingFileA*( + szProduct: LPCSTR, szFile: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiInstallMissingFileW*( + szProduct: LPCWSTR, szFile: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiLocateComponentA*( + szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiLocateComponentW*( + szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD +): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearAllA*( + szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearAllW*( + szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListAddSourceA*( + szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD, szSource: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListAddSourceW*( + szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD, szSource: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListForceResolutionA*( + szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListForceResolutionW*( + szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListAddSourceExA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCSTR, + dwIndex: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListAddSourceExW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCWSTR, + dwIndex: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListAddMediaDiskA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, + szVolumeLabel: LPCSTR, + szDiskPrompt: LPCSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListAddMediaDiskW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, + szVolumeLabel: LPCWSTR, + szDiskPrompt: LPCWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearSourceA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearSourceW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearMediaDiskA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearMediaDiskW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearAllExA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListClearAllExW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListForceResolutionExA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListForceResolutionExW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListSetInfoA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCSTR, + szValue: LPCSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListSetInfoW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCWSTR, + szValue: LPCWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListGetInfoA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCSTR, + szValue: LPSTR, + pcchValue: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListGetInfoW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCWSTR, + szValue: LPWSTR, + pcchValue: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListEnumSourcesA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + szSource: LPSTR, + pcchSource: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListEnumSourcesW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + szSource: LPWSTR, + pcchSource: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListEnumMediaDisksA*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + pdwDiskId: LPDWORD, + szVolumeLabel: LPSTR, + pcchVolumeLabel: LPDWORD, + szDiskPrompt: LPSTR, + pcchDiskPrompt: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiSourceListEnumMediaDisksW*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + pdwDiskId: LPDWORD, + szVolumeLabel: LPWSTR, + pcchVolumeLabel: LPDWORD, + szDiskPrompt: LPWSTR, + pcchDiskPrompt: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFileVersionA*( + szFilePath: LPCSTR, + lpVersionBuf: LPSTR, + pcchVersionBuf: ptr DWORD, + lpLangBuf: LPSTR, + pcchLangBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFileVersionW*( + szFilePath: LPCWSTR, + lpVersionBuf: LPWSTR, + pcchVersionBuf: ptr DWORD, + lpLangBuf: LPWSTR, + pcchLangBuf: ptr DWORD, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFileHashA*( + szFilePath: LPCSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFileHashW*( + szFilePath: LPCWSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFileSignatureInformationA*( + szSignedObjectPath: LPCSTR, + dwFlags: DWORD, + ppcCertContext: ptr PCCERT_CONTEXT, + pbHashData: ptr BYTE, + pcbHashData: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetFileSignatureInformationW*( + szSignedObjectPath: LPCWSTR, + dwFlags: DWORD, + ppcCertContext: ptr PCCERT_CONTEXT, + pbHashData: ptr BYTE, + pcbHashData: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetShortcutTargetA*( + szShortcutPath: LPCSTR, + szProductCode: LPSTR, + szFeatureId: LPSTR, + szComponentCode: LPSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiGetShortcutTargetW*( + szShortcutPath: LPCWSTR, + szProductCode: LPWSTR, + szFeatureId: LPWSTR, + szComponentCode: LPWSTR, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiIsProductElevatedA*( + szProduct: LPCSTR, pfElevated: ptr WINBOOL +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiIsProductElevatedW*( + szProduct: LPCWSTR, pfElevated: ptr WINBOOL +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiNotifySidChangeA*( + pOldSid: LPCSTR, pNewSid: LPCSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiNotifySidChangeW*( + pOldSid: LPCWSTR, pNewSid: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiBeginTransactionA*( + szName: LPCSTR, + dwTransactionAttributes: DWORD, + phTransactionHandle: ptr MSIHANDLE, + phChangeOfOwnerEvent: ptr HANDLE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiBeginTransactionW*( + szName: LPCWSTR, + dwTransactionAttributes: DWORD, + phTransactionHandle: ptr MSIHANDLE, + phChangeOfOwnerEvent: ptr HANDLE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiEndTransaction*( + dwTransactionState: DWORD +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + +proc MsiJoinTransaction*( + hTransactionHandle: MSIHANDLE, + dwTransactionAttributes: DWORD, + phChangeOfOwnerEvent: ptr HANDLE, +): UINT {.winapi, stdcall, dynlib: "msi", importc.} + when winimUnicode: type INSTALLUI_HANDLER* = INSTALLUI_HANDLERW MSIPATCHSEQUENCEINFO* = MSIPATCHSEQUENCEINFOW PMSIPATCHSEQUENCEINFO* = PMSIPATCHSEQUENCEINFOW - proc MsiSetExternalUI*(puiHandler: INSTALLUI_HANDLERW, dwMessageFilter: DWORD, pvContext: LPVOID): INSTALLUI_HANDLERW {.winapi, stdcall, dynlib: "msi", importc: "MsiSetExternalUIW".} - proc MsiEnableLog*(dwLogMode: DWORD, szLogFile: LPCWSTR, dwLogAttributes: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnableLogW".} - proc MsiQueryProductState*(szProduct: LPCWSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryProductStateW".} - proc MsiGetProductInfo*(szProduct: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoW".} - proc MsiGetProductInfoEx*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCWSTR, szValue: LPWSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoExW".} - proc MsiInstallProduct*(szPackagePath: LPCWSTR, szCommandLine: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallProductW".} - proc MsiConfigureProduct*(szProduct: LPCWSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductW".} - proc MsiConfigureProductEx*(szProduct: LPCWSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE, szCommandLine: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductExW".} - proc MsiReinstallProduct*(szProduct: LPCWSTR, szReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallProductW".} - proc MsiAdvertiseProductEx*(szPackagePath: LPCWSTR, szScriptfilePath: LPCWSTR, szTransforms: LPCWSTR, lgidLanguage: LANGID, dwPlatform: DWORD, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductExW".} - proc MsiAdvertiseProduct*(szPackagePath: LPCWSTR, szScriptfilePath: LPCWSTR, szTransforms: LPCWSTR, lgidLanguage: LANGID): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductW".} - proc MsiProcessAdvertiseScript*(szScriptFile: LPCWSTR, szIconFolder: LPCWSTR, hRegData: HKEY, fShortcuts: WINBOOL, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProcessAdvertiseScriptW".} - proc MsiAdvertiseScript*(szScriptFile: LPCWSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseScriptW".} - proc MsiGetProductInfoFromScript*(szScriptFile: LPCWSTR, lpProductBuf39: LPWSTR, plgidLanguage: ptr LANGID, pdwVersion: ptr DWORD, lpNameBuf: LPWSTR, pcchNameBuf: ptr DWORD, lpPackageBuf: LPWSTR, pcchPackageBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoFromScriptW".} - proc MsiGetProductCode*(szComponent: LPCWSTR, lpBuf39: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductCodeW".} - proc MsiGetUserInfo*(szProduct: LPCWSTR, lpUserNameBuf: LPWSTR, pcchUserNameBuf: ptr DWORD, lpOrgNameBuf: LPWSTR, pcchOrgNameBuf: ptr DWORD, lpSerialBuf: LPWSTR, pcchSerialBuf: ptr DWORD): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetUserInfoW".} - proc MsiCollectUserInfo*(szProduct: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiCollectUserInfoW".} - proc MsiApplyPatch*(szPatchPackage: LPCWSTR, szInstallPackage: LPCWSTR, eInstallType: INSTALLTYPE, szCommandLine: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyPatchW".} - proc MsiGetPatchInfo*(szPatch: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoW".} - proc MsiEnumPatches*(szProduct: LPCWSTR, iPatchIndex: DWORD, lpPatchBuf: LPWSTR, lpTransformsBuf: LPWSTR, pcchTransformsBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesW".} - proc MsiRemovePatches*(szPatchList: LPCWSTR, szProductCode: LPCWSTR, eUninstallType: INSTALLTYPE, szPropertyList: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiRemovePatchesW".} - proc MsiExtractPatchXMLData*(szPatchPath: LPCWSTR, dwReserved: DWORD, szXMLData: LPWSTR, pcchXMLData: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiExtractPatchXMLDataW".} - proc MsiGetPatchInfoEx*(szPatchCode: LPCWSTR, szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCWSTR, lpValue: LPWSTR, pcchValue: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoExW".} - proc MsiApplyMultiplePatches*(szPatchPackages: LPCWSTR, szProductCode: LPCWSTR, szPropertiesList: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyMultiplePatchesW".} - proc MsiDeterminePatchSequence*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOW): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDeterminePatchSequenceW".} - proc MsiDetermineApplicablePatches*(szProductPackagePath: LPCWSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOW): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDetermineApplicablePatchesW".} - proc MsiEnumPatchesEx*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: DWORD, dwFilter: DWORD, dwIndex: DWORD, szPatchCode: ptr WCHAR, szTargetProductCode: ptr WCHAR, pdwTargetProductContext: ptr MSIINSTALLCONTEXT, szTargetUserSid: LPWSTR, pcchTargetUserSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesExW".} - proc MsiQueryFeatureState*(szProduct: LPCWSTR, szFeature: LPCWSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateW".} - proc MsiQueryFeatureStateEx*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szFeature: LPCWSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateExW".} - proc MsiUseFeature*(szProduct: LPCWSTR, szFeature: LPCWSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureW".} - proc MsiUseFeatureEx*(szProduct: LPCWSTR, szFeature: LPCWSTR, dwInstallMode: DWORD, dwReserved: DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureExW".} - proc MsiGetFeatureUsage*(szProduct: LPCWSTR, szFeature: LPCWSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureUsageW".} - proc MsiConfigureFeature*(szProduct: LPCWSTR, szFeature: LPCWSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureFeatureW".} - proc MsiReinstallFeature*(szProduct: LPCWSTR, szFeature: LPCWSTR, dwReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallFeatureW".} - proc MsiProvideComponent*(szProduct: LPCWSTR, szFeature: LPCWSTR, szComponent: LPCWSTR, dwInstallMode: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideComponentW".} - proc MsiProvideQualifiedComponent*(szCategory: LPCWSTR, szQualifier: LPCWSTR, dwInstallMode: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentW".} - proc MsiProvideQualifiedComponentEx*(szCategory: LPCWSTR, szQualifier: LPCWSTR, dwInstallMode: DWORD, szProduct: LPCWSTR, dwUnused1: DWORD, dwUnused2: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentExW".} - proc MsiGetComponentPath*(szProduct: LPCWSTR, szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetComponentPathW".} - proc MsiProvideAssembly*(szAssemblyName: LPCWSTR, szAppContext: LPCWSTR, dwInstallMode: DWORD, dwAssemblyInfo: DWORD, lpPathBuf: LPWSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideAssemblyW".} - proc MsiQueryComponentState*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, szComponentCode: LPCWSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryComponentStateW".} - proc MsiEnumProducts*(iProductIndex: DWORD, lpProductBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsW".} - proc MsiEnumProductsEx*(szProductCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: DWORD, dwIndex: DWORD, szInstalledProductCode: ptr WCHAR, pdwInstalledContext: ptr MSIINSTALLCONTEXT, szSid: LPWSTR, pcchSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsExW".} - proc MsiEnumRelatedProducts*(lpUpgradeCode: LPCWSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumRelatedProductsW".} - proc MsiEnumFeatures*(szProduct: LPCWSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPWSTR, lpParentBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumFeaturesW".} - proc MsiEnumComponents*(iComponentIndex: DWORD, lpComponentBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentsW".} - proc MsiEnumClients*(szComponent: LPCWSTR, iProductIndex: DWORD, lpProductBuf: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumClientsW".} - proc MsiEnumComponentQualifiers*(szComponent: LPCWSTR, iIndex: DWORD, lpQualifierBuf: LPWSTR, pcchQualifierBuf: ptr DWORD, lpApplicationDataBuf: LPWSTR, pcchApplicationDataBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentQualifiersW".} - proc MsiOpenProduct*(szProduct: LPCWSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenProductW".} - proc MsiOpenPackage*(szPackagePath: LPCWSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageW".} - proc MsiOpenPackageEx*(szPackagePath: LPCWSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageExW".} - proc MsiGetPatchFileList*(szProductCode: LPCWSTR, szPatchPackages: LPCWSTR, pcFiles: LPDWORD, pphFileRecords: ptr ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchFileListW".} - proc MsiGetProductProperty*(hProduct: MSIHANDLE, szProperty: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductPropertyW".} - proc MsiVerifyPackage*(szPackagePath: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiVerifyPackageW".} - proc MsiGetFeatureInfo*(hProduct: MSIHANDLE, szFeature: LPCWSTR, lpAttributes: ptr DWORD, lpTitleBuf: LPWSTR, pcchTitleBuf: ptr DWORD, lpHelpBuf: LPWSTR, pcchHelpBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureInfoW".} - proc MsiInstallMissingComponent*(szProduct: LPCWSTR, szComponent: LPCWSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingComponentW".} - proc MsiInstallMissingFile*(szProduct: LPCWSTR, szFile: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingFileW".} - proc MsiLocateComponent*(szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiLocateComponentW".} - proc MsiSourceListClearAll*(szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllW".} - proc MsiSourceListAddSource*(szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD, szSource: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceW".} - proc MsiSourceListForceResolution*(szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionW".} - proc MsiSourceListAddSourceEx*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCWSTR, dwIndex: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceExW".} - proc MsiSourceListAddMediaDisk*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD, szVolumeLabel: LPCWSTR, szDiskPrompt: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddMediaDiskW".} - proc MsiSourceListClearSource*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearSourceW".} - proc MsiSourceListClearMediaDisk*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearMediaDiskW".} - proc MsiSourceListClearAllEx*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllExW".} - proc MsiSourceListForceResolutionEx*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionExW".} - proc MsiSourceListSetInfo*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCWSTR, szValue: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListSetInfoW".} - proc MsiSourceListGetInfo*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCWSTR, szValue: LPWSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListGetInfoW".} - proc MsiSourceListEnumSources*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, szSource: LPWSTR, pcchSource: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumSourcesW".} - proc MsiSourceListEnumMediaDisks*(szProductCodeOrPatchCode: LPCWSTR, szUserSid: LPCWSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, pdwDiskId: LPDWORD, szVolumeLabel: LPWSTR, pcchVolumeLabel: LPDWORD, szDiskPrompt: LPWSTR, pcchDiskPrompt: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumMediaDisksW".} - proc MsiGetFileVersion*(szFilePath: LPCWSTR, lpVersionBuf: LPWSTR, pcchVersionBuf: ptr DWORD, lpLangBuf: LPWSTR, pcchLangBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileVersionW".} - proc MsiGetFileHash*(szFilePath: LPCWSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileHashW".} - proc MsiGetFileSignatureInformation*(szSignedObjectPath: LPCWSTR, dwFlags: DWORD, ppcCertContext: ptr PCCERT_CONTEXT, pbHashData: ptr BYTE, pcbHashData: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileSignatureInformationW".} - proc MsiGetShortcutTarget*(szShortcutPath: LPCWSTR, szProductCode: LPWSTR, szFeatureId: LPWSTR, szComponentCode: LPWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetShortcutTargetW".} - proc MsiIsProductElevated*(szProduct: LPCWSTR, pfElevated: ptr WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiIsProductElevatedW".} - proc MsiNotifySidChange*(pOldSid: LPCWSTR, pNewSid: LPCWSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiNotifySidChangeW".} - proc MsiBeginTransaction*(szName: LPCWSTR, dwTransactionAttributes: DWORD, phTransactionHandle: ptr MSIHANDLE, phChangeOfOwnerEvent: ptr HANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiBeginTransactionW".} + + proc MsiSetExternalUI*( + puiHandler: INSTALLUI_HANDLERW, dwMessageFilter: DWORD, pvContext: LPVOID + ): INSTALLUI_HANDLERW {.winapi, stdcall, dynlib: "msi", importc: "MsiSetExternalUIW".} + + proc MsiEnableLog*( + dwLogMode: DWORD, szLogFile: LPCWSTR, dwLogAttributes: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnableLogW".} + + proc MsiQueryProductState*( + szProduct: LPCWSTR + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryProductStateW".} + + proc MsiGetProductInfo*( + szProduct: LPCWSTR, + szAttribute: LPCWSTR, + lpValueBuf: LPWSTR, + pcchValueBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoW".} + + proc MsiGetProductInfoEx*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCWSTR, + szValue: LPWSTR, + pcchValue: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoExW".} + + proc MsiInstallProduct*( + szPackagePath: LPCWSTR, szCommandLine: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallProductW".} + + proc MsiConfigureProduct*( + szProduct: LPCWSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductW".} + + proc MsiConfigureProductEx*( + szProduct: LPCWSTR, + iInstallLevel: int32, + eInstallState: INSTALLSTATE, + szCommandLine: LPCWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductExW".} + + proc MsiReinstallProduct*( + szProduct: LPCWSTR, szReinstallMode: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallProductW".} + + proc MsiAdvertiseProductEx*( + szPackagePath: LPCWSTR, + szScriptfilePath: LPCWSTR, + szTransforms: LPCWSTR, + lgidLanguage: LANGID, + dwPlatform: DWORD, + dwOptions: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductExW".} + + proc MsiAdvertiseProduct*( + szPackagePath: LPCWSTR, + szScriptfilePath: LPCWSTR, + szTransforms: LPCWSTR, + lgidLanguage: LANGID, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductW".} + + proc MsiProcessAdvertiseScript*( + szScriptFile: LPCWSTR, + szIconFolder: LPCWSTR, + hRegData: HKEY, + fShortcuts: WINBOOL, + fRemoveItems: WINBOOL, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProcessAdvertiseScriptW".} + + proc MsiAdvertiseScript*( + szScriptFile: LPCWSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseScriptW".} + + proc MsiGetProductInfoFromScript*( + szScriptFile: LPCWSTR, + lpProductBuf39: LPWSTR, + plgidLanguage: ptr LANGID, + pdwVersion: ptr DWORD, + lpNameBuf: LPWSTR, + pcchNameBuf: ptr DWORD, + lpPackageBuf: LPWSTR, + pcchPackageBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoFromScriptW".} + + proc MsiGetProductCode*( + szComponent: LPCWSTR, lpBuf39: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductCodeW".} + + proc MsiGetUserInfo*( + szProduct: LPCWSTR, + lpUserNameBuf: LPWSTR, + pcchUserNameBuf: ptr DWORD, + lpOrgNameBuf: LPWSTR, + pcchOrgNameBuf: ptr DWORD, + lpSerialBuf: LPWSTR, + pcchSerialBuf: ptr DWORD, + ): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetUserInfoW".} + + proc MsiCollectUserInfo*( + szProduct: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiCollectUserInfoW".} + + proc MsiApplyPatch*( + szPatchPackage: LPCWSTR, + szInstallPackage: LPCWSTR, + eInstallType: INSTALLTYPE, + szCommandLine: LPCWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyPatchW".} + + proc MsiGetPatchInfo*( + szPatch: LPCWSTR, szAttribute: LPCWSTR, lpValueBuf: LPWSTR, pcchValueBuf: ptr DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoW".} + + proc MsiEnumPatches*( + szProduct: LPCWSTR, + iPatchIndex: DWORD, + lpPatchBuf: LPWSTR, + lpTransformsBuf: LPWSTR, + pcchTransformsBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesW".} + + proc MsiRemovePatches*( + szPatchList: LPCWSTR, + szProductCode: LPCWSTR, + eUninstallType: INSTALLTYPE, + szPropertyList: LPCWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiRemovePatchesW".} + + proc MsiExtractPatchXMLData*( + szPatchPath: LPCWSTR, dwReserved: DWORD, szXMLData: LPWSTR, pcchXMLData: ptr DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiExtractPatchXMLDataW".} + + proc MsiGetPatchInfoEx*( + szPatchCode: LPCWSTR, + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCWSTR, + lpValue: LPWSTR, + pcchValue: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoExW".} + + proc MsiApplyMultiplePatches*( + szPatchPackages: LPCWSTR, szProductCode: LPCWSTR, szPropertiesList: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyMultiplePatchesW".} + + proc MsiDeterminePatchSequence*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + cPatchInfo: DWORD, + pPatchInfo: PMSIPATCHSEQUENCEINFOW, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDeterminePatchSequenceW".} + + proc MsiDetermineApplicablePatches*( + szProductPackagePath: LPCWSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOW + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDetermineApplicablePatchesW".} + + proc MsiEnumPatchesEx*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: DWORD, + dwFilter: DWORD, + dwIndex: DWORD, + szPatchCode: ptr WCHAR, + szTargetProductCode: ptr WCHAR, + pdwTargetProductContext: ptr MSIINSTALLCONTEXT, + szTargetUserSid: LPWSTR, + pcchTargetUserSid: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesExW".} + + proc MsiQueryFeatureState*( + szProduct: LPCWSTR, szFeature: LPCWSTR + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateW".} + + proc MsiQueryFeatureStateEx*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szFeature: LPCWSTR, + pdwState: ptr INSTALLSTATE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateExW".} + + proc MsiUseFeature*( + szProduct: LPCWSTR, szFeature: LPCWSTR + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureW".} + + proc MsiUseFeatureEx*( + szProduct: LPCWSTR, szFeature: LPCWSTR, dwInstallMode: DWORD, dwReserved: DWORD + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureExW".} + + proc MsiGetFeatureUsage*( + szProduct: LPCWSTR, szFeature: LPCWSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureUsageW".} + + proc MsiConfigureFeature*( + szProduct: LPCWSTR, szFeature: LPCWSTR, eInstallState: INSTALLSTATE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureFeatureW".} + + proc MsiReinstallFeature*( + szProduct: LPCWSTR, szFeature: LPCWSTR, dwReinstallMode: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallFeatureW".} + + proc MsiProvideComponent*( + szProduct: LPCWSTR, + szFeature: LPCWSTR, + szComponent: LPCWSTR, + dwInstallMode: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideComponentW".} + + proc MsiProvideQualifiedComponent*( + szCategory: LPCWSTR, + szQualifier: LPCWSTR, + dwInstallMode: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentW".} + + proc MsiProvideQualifiedComponentEx*( + szCategory: LPCWSTR, + szQualifier: LPCWSTR, + dwInstallMode: DWORD, + szProduct: LPCWSTR, + dwUnused1: DWORD, + dwUnused2: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentExW".} + + proc MsiGetComponentPath*( + szProduct: LPCWSTR, szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetComponentPathW".} + + proc MsiProvideAssembly*( + szAssemblyName: LPCWSTR, + szAppContext: LPCWSTR, + dwInstallMode: DWORD, + dwAssemblyInfo: DWORD, + lpPathBuf: LPWSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideAssemblyW".} + + proc MsiQueryComponentState*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + szComponentCode: LPCWSTR, + pdwState: ptr INSTALLSTATE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryComponentStateW".} + + proc MsiEnumProducts*( + iProductIndex: DWORD, lpProductBuf: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsW".} + + proc MsiEnumProductsEx*( + szProductCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: DWORD, + dwIndex: DWORD, + szInstalledProductCode: ptr WCHAR, + pdwInstalledContext: ptr MSIINSTALLCONTEXT, + szSid: LPWSTR, + pcchSid: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsExW".} + + proc MsiEnumRelatedProducts*( + lpUpgradeCode: LPCWSTR, + dwReserved: DWORD, + iProductIndex: DWORD, + lpProductBuf: LPWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumRelatedProductsW".} + + proc MsiEnumFeatures*( + szProduct: LPCWSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPWSTR, lpParentBuf: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumFeaturesW".} + + proc MsiEnumComponents*( + iComponentIndex: DWORD, lpComponentBuf: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentsW".} + + proc MsiEnumClients*( + szComponent: LPCWSTR, iProductIndex: DWORD, lpProductBuf: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumClientsW".} + + proc MsiEnumComponentQualifiers*( + szComponent: LPCWSTR, + iIndex: DWORD, + lpQualifierBuf: LPWSTR, + pcchQualifierBuf: ptr DWORD, + lpApplicationDataBuf: LPWSTR, + pcchApplicationDataBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentQualifiersW".} + + proc MsiOpenProduct*( + szProduct: LPCWSTR, hProduct: ptr MSIHANDLE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenProductW".} + + proc MsiOpenPackage*( + szPackagePath: LPCWSTR, hProduct: ptr MSIHANDLE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageW".} + + proc MsiOpenPackageEx*( + szPackagePath: LPCWSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageExW".} + + proc MsiGetPatchFileList*( + szProductCode: LPCWSTR, + szPatchPackages: LPCWSTR, + pcFiles: LPDWORD, + pphFileRecords: ptr ptr MSIHANDLE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchFileListW".} + + proc MsiGetProductProperty*( + hProduct: MSIHANDLE, + szProperty: LPCWSTR, + lpValueBuf: LPWSTR, + pcchValueBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductPropertyW".} + + proc MsiVerifyPackage*( + szPackagePath: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiVerifyPackageW".} + + proc MsiGetFeatureInfo*( + hProduct: MSIHANDLE, + szFeature: LPCWSTR, + lpAttributes: ptr DWORD, + lpTitleBuf: LPWSTR, + pcchTitleBuf: ptr DWORD, + lpHelpBuf: LPWSTR, + pcchHelpBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureInfoW".} + + proc MsiInstallMissingComponent*( + szProduct: LPCWSTR, szComponent: LPCWSTR, eInstallState: INSTALLSTATE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingComponentW".} + + proc MsiInstallMissingFile*( + szProduct: LPCWSTR, szFile: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingFileW".} + + proc MsiLocateComponent*( + szComponent: LPCWSTR, lpPathBuf: LPWSTR, pcchBuf: ptr DWORD + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiLocateComponentW".} + + proc MsiSourceListClearAll*( + szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllW".} + + proc MsiSourceListAddSource*( + szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD, szSource: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceW".} + + proc MsiSourceListForceResolution*( + szProduct: LPCWSTR, szUserName: LPCWSTR, dwReserved: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionW".} + + proc MsiSourceListAddSourceEx*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCWSTR, + dwIndex: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceExW".} + + proc MsiSourceListAddMediaDisk*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, + szVolumeLabel: LPCWSTR, + szDiskPrompt: LPCWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddMediaDiskW".} + + proc MsiSourceListClearSource*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearSourceW".} + + proc MsiSourceListClearMediaDisk*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearMediaDiskW".} + + proc MsiSourceListClearAllEx*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllExW".} + + proc MsiSourceListForceResolutionEx*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionExW".} + + proc MsiSourceListSetInfo*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCWSTR, + szValue: LPCWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListSetInfoW".} + + proc MsiSourceListGetInfo*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCWSTR, + szValue: LPWSTR, + pcchValue: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListGetInfoW".} + + proc MsiSourceListEnumSources*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + szSource: LPWSTR, + pcchSource: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumSourcesW".} + + proc MsiSourceListEnumMediaDisks*( + szProductCodeOrPatchCode: LPCWSTR, + szUserSid: LPCWSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + pdwDiskId: LPDWORD, + szVolumeLabel: LPWSTR, + pcchVolumeLabel: LPDWORD, + szDiskPrompt: LPWSTR, + pcchDiskPrompt: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumMediaDisksW".} + + proc MsiGetFileVersion*( + szFilePath: LPCWSTR, + lpVersionBuf: LPWSTR, + pcchVersionBuf: ptr DWORD, + lpLangBuf: LPWSTR, + pcchLangBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileVersionW".} + + proc MsiGetFileHash*( + szFilePath: LPCWSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileHashW".} + + proc MsiGetFileSignatureInformation*( + szSignedObjectPath: LPCWSTR, + dwFlags: DWORD, + ppcCertContext: ptr PCCERT_CONTEXT, + pbHashData: ptr BYTE, + pcbHashData: ptr DWORD, + ): HRESULT {. + winapi, stdcall, dynlib: "msi", importc: "MsiGetFileSignatureInformationW" + .} + + proc MsiGetShortcutTarget*( + szShortcutPath: LPCWSTR, + szProductCode: LPWSTR, + szFeatureId: LPWSTR, + szComponentCode: LPWSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetShortcutTargetW".} + + proc MsiIsProductElevated*( + szProduct: LPCWSTR, pfElevated: ptr WINBOOL + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiIsProductElevatedW".} + + proc MsiNotifySidChange*( + pOldSid: LPCWSTR, pNewSid: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiNotifySidChangeW".} + + proc MsiBeginTransaction*( + szName: LPCWSTR, + dwTransactionAttributes: DWORD, + phTransactionHandle: ptr MSIHANDLE, + phChangeOfOwnerEvent: ptr HANDLE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiBeginTransactionW".} + when winimAnsi: type INSTALLUI_HANDLER* = INSTALLUI_HANDLERA MSIPATCHSEQUENCEINFO* = MSIPATCHSEQUENCEINFOA PMSIPATCHSEQUENCEINFO* = PMSIPATCHSEQUENCEINFOA - proc MsiSetExternalUI*(puiHandler: INSTALLUI_HANDLERA, dwMessageFilter: DWORD, pvContext: LPVOID): INSTALLUI_HANDLERA {.winapi, stdcall, dynlib: "msi", importc: "MsiSetExternalUIA".} - proc MsiEnableLog*(dwLogMode: DWORD, szLogFile: LPCSTR, dwLogAttributes: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnableLogA".} - proc MsiQueryProductState*(szProduct: LPCSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryProductStateA".} - proc MsiGetProductInfo*(szProduct: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoA".} - proc MsiGetProductInfoEx*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCSTR, szValue: LPSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoExA".} - proc MsiInstallProduct*(szPackagePath: LPCSTR, szCommandLine: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallProductA".} - proc MsiConfigureProduct*(szProduct: LPCSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductA".} - proc MsiConfigureProductEx*(szProduct: LPCSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE, szCommandLine: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductExA".} - proc MsiReinstallProduct*(szProduct: LPCSTR, szReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallProductA".} - proc MsiAdvertiseProductEx*(szPackagePath: LPCSTR, szScriptfilePath: LPCSTR, szTransforms: LPCSTR, lgidLanguage: LANGID, dwPlatform: DWORD, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductExA".} - proc MsiAdvertiseProduct*(szPackagePath: LPCSTR, szScriptfilePath: LPCSTR, szTransforms: LPCSTR, lgidLanguage: LANGID): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductA".} - proc MsiProcessAdvertiseScript*(szScriptFile: LPCSTR, szIconFolder: LPCSTR, hRegData: HKEY, fShortcuts: WINBOOL, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProcessAdvertiseScriptA".} - proc MsiAdvertiseScript*(szScriptFile: LPCSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseScriptA".} - proc MsiGetProductInfoFromScript*(szScriptFile: LPCSTR, lpProductBuf39: LPSTR, plgidLanguage: ptr LANGID, pdwVersion: ptr DWORD, lpNameBuf: LPSTR, pcchNameBuf: ptr DWORD, lpPackageBuf: LPSTR, pcchPackageBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoFromScriptA".} - proc MsiGetProductCode*(szComponent: LPCSTR, lpBuf39: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductCodeA".} - proc MsiGetUserInfo*(szProduct: LPCSTR, lpUserNameBuf: LPSTR, pcchUserNameBuf: ptr DWORD, lpOrgNameBuf: LPSTR, pcchOrgNameBuf: ptr DWORD, lpSerialBuf: LPSTR, pcchSerialBuf: ptr DWORD): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetUserInfoA".} - proc MsiCollectUserInfo*(szProduct: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiCollectUserInfoA".} - proc MsiApplyPatch*(szPatchPackage: LPCSTR, szInstallPackage: LPCSTR, eInstallType: INSTALLTYPE, szCommandLine: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyPatchA".} - proc MsiGetPatchInfo*(szPatch: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoA".} - proc MsiEnumPatches*(szProduct: LPCSTR, iPatchIndex: DWORD, lpPatchBuf: LPSTR, lpTransformsBuf: LPSTR, pcchTransformsBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesA".} - proc MsiRemovePatches*(szPatchList: LPCSTR, szProductCode: LPCSTR, eUninstallType: INSTALLTYPE, szPropertyList: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiRemovePatchesA".} - proc MsiExtractPatchXMLData*(szPatchPath: LPCSTR, dwReserved: DWORD, szXMLData: LPSTR, pcchXMLData: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiExtractPatchXMLDataA".} - proc MsiGetPatchInfoEx*(szPatchCode: LPCSTR, szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szProperty: LPCSTR, lpValue: LPSTR, pcchValue: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoExA".} - proc MsiApplyMultiplePatches*(szPatchPackages: LPCSTR, szProductCode: LPCSTR, szPropertiesList: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyMultiplePatchesA".} - proc MsiDeterminePatchSequence*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOA): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDeterminePatchSequenceA".} - proc MsiDetermineApplicablePatches*(szProductPackagePath: LPCSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOA): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDetermineApplicablePatchesA".} - proc MsiEnumPatchesEx*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: DWORD, dwFilter: DWORD, dwIndex: DWORD, szPatchCode: ptr CHAR, szTargetProductCode: ptr CHAR, pdwTargetProductContext: ptr MSIINSTALLCONTEXT, szTargetUserSid: LPSTR, pcchTargetUserSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesExA".} - proc MsiQueryFeatureState*(szProduct: LPCSTR, szFeature: LPCSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateA".} - proc MsiQueryFeatureStateEx*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szFeature: LPCSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateExA".} - proc MsiUseFeature*(szProduct: LPCSTR, szFeature: LPCSTR): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureA".} - proc MsiUseFeatureEx*(szProduct: LPCSTR, szFeature: LPCSTR, dwInstallMode: DWORD, dwReserved: DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureExA".} - proc MsiGetFeatureUsage*(szProduct: LPCSTR, szFeature: LPCSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureUsageA".} - proc MsiConfigureFeature*(szProduct: LPCSTR, szFeature: LPCSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureFeatureA".} - proc MsiReinstallFeature*(szProduct: LPCSTR, szFeature: LPCSTR, dwReinstallMode: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallFeatureA".} - proc MsiProvideComponent*(szProduct: LPCSTR, szFeature: LPCSTR, szComponent: LPCSTR, dwInstallMode: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideComponentA".} - proc MsiProvideQualifiedComponent*(szCategory: LPCSTR, szQualifier: LPCSTR, dwInstallMode: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentA".} - proc MsiProvideQualifiedComponentEx*(szCategory: LPCSTR, szQualifier: LPCSTR, dwInstallMode: DWORD, szProduct: LPCSTR, dwUnused1: DWORD, dwUnused2: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentExA".} - proc MsiGetComponentPath*(szProduct: LPCSTR, szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetComponentPathA".} - proc MsiProvideAssembly*(szAssemblyName: LPCSTR, szAppContext: LPCSTR, dwInstallMode: DWORD, dwAssemblyInfo: DWORD, lpPathBuf: LPSTR, pcchPathBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideAssemblyA".} - proc MsiQueryComponentState*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, szComponentCode: LPCSTR, pdwState: ptr INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryComponentStateA".} - proc MsiEnumProducts*(iProductIndex: DWORD, lpProductBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsA".} - proc MsiEnumProductsEx*(szProductCode: LPCSTR, szUserSid: LPCSTR, dwContext: DWORD, dwIndex: DWORD, szInstalledProductCode: ptr CHAR, pdwInstalledContext: ptr MSIINSTALLCONTEXT, szSid: LPSTR, pcchSid: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsExA".} - proc MsiEnumRelatedProducts*(lpUpgradeCode: LPCSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumRelatedProductsA".} - proc MsiEnumFeatures*(szProduct: LPCSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPSTR, lpParentBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumFeaturesA".} - proc MsiEnumComponents*(iComponentIndex: DWORD, lpComponentBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentsA".} - proc MsiEnumClients*(szComponent: LPCSTR, iProductIndex: DWORD, lpProductBuf: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumClientsA".} - proc MsiEnumComponentQualifiers*(szComponent: LPCSTR, iIndex: DWORD, lpQualifierBuf: LPSTR, pcchQualifierBuf: ptr DWORD, lpApplicationDataBuf: LPSTR, pcchApplicationDataBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentQualifiersA".} - proc MsiOpenProduct*(szProduct: LPCSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenProductA".} - proc MsiOpenPackage*(szPackagePath: LPCSTR, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageA".} - proc MsiOpenPackageEx*(szPackagePath: LPCSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageExA".} - proc MsiGetPatchFileList*(szProductCode: LPCSTR, szPatchPackages: LPCSTR, pcFiles: LPDWORD, pphFileRecords: ptr ptr MSIHANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchFileListA".} - proc MsiGetProductProperty*(hProduct: MSIHANDLE, szProperty: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductPropertyA".} - proc MsiVerifyPackage*(szPackagePath: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiVerifyPackageA".} - proc MsiGetFeatureInfo*(hProduct: MSIHANDLE, szFeature: LPCSTR, lpAttributes: ptr DWORD, lpTitleBuf: LPSTR, pcchTitleBuf: ptr DWORD, lpHelpBuf: LPSTR, pcchHelpBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureInfoA".} - proc MsiInstallMissingComponent*(szProduct: LPCSTR, szComponent: LPCSTR, eInstallState: INSTALLSTATE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingComponentA".} - proc MsiInstallMissingFile*(szProduct: LPCSTR, szFile: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingFileA".} - proc MsiLocateComponent*(szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiLocateComponentA".} - proc MsiSourceListClearAll*(szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllA".} - proc MsiSourceListAddSource*(szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD, szSource: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceA".} - proc MsiSourceListForceResolution*(szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionA".} - proc MsiSourceListAddSourceEx*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCSTR, dwIndex: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceExA".} - proc MsiSourceListAddMediaDisk*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD, szVolumeLabel: LPCSTR, szDiskPrompt: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddMediaDiskA".} - proc MsiSourceListClearSource*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szSource: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearSourceA".} - proc MsiSourceListClearMediaDisk*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwDiskId: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearMediaDiskA".} - proc MsiSourceListClearAllEx*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllExA".} - proc MsiSourceListForceResolutionEx*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionExA".} - proc MsiSourceListSetInfo*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCSTR, szValue: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListSetInfoA".} - proc MsiSourceListGetInfo*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, szProperty: LPCSTR, szValue: LPSTR, pcchValue: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListGetInfoA".} - proc MsiSourceListEnumSources*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, szSource: LPSTR, pcchSource: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumSourcesA".} - proc MsiSourceListEnumMediaDisks*(szProductCodeOrPatchCode: LPCSTR, szUserSid: LPCSTR, dwContext: MSIINSTALLCONTEXT, dwOptions: DWORD, dwIndex: DWORD, pdwDiskId: LPDWORD, szVolumeLabel: LPSTR, pcchVolumeLabel: LPDWORD, szDiskPrompt: LPSTR, pcchDiskPrompt: LPDWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumMediaDisksA".} - proc MsiGetFileVersion*(szFilePath: LPCSTR, lpVersionBuf: LPSTR, pcchVersionBuf: ptr DWORD, lpLangBuf: LPSTR, pcchLangBuf: ptr DWORD): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileVersionA".} - proc MsiGetFileHash*(szFilePath: LPCSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileHashA".} - proc MsiGetFileSignatureInformation*(szSignedObjectPath: LPCSTR, dwFlags: DWORD, ppcCertContext: ptr PCCERT_CONTEXT, pbHashData: ptr BYTE, pcbHashData: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileSignatureInformationA".} - proc MsiGetShortcutTarget*(szShortcutPath: LPCSTR, szProductCode: LPSTR, szFeatureId: LPSTR, szComponentCode: LPSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetShortcutTargetA".} - proc MsiIsProductElevated*(szProduct: LPCSTR, pfElevated: ptr WINBOOL): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiIsProductElevatedA".} - proc MsiNotifySidChange*(pOldSid: LPCSTR, pNewSid: LPCSTR): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiNotifySidChangeA".} - proc MsiBeginTransaction*(szName: LPCSTR, dwTransactionAttributes: DWORD, phTransactionHandle: ptr MSIHANDLE, phChangeOfOwnerEvent: ptr HANDLE): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiBeginTransactionA".} + + proc MsiSetExternalUI*( + puiHandler: INSTALLUI_HANDLERA, dwMessageFilter: DWORD, pvContext: LPVOID + ): INSTALLUI_HANDLERA {.winapi, stdcall, dynlib: "msi", importc: "MsiSetExternalUIA".} + + proc MsiEnableLog*( + dwLogMode: DWORD, szLogFile: LPCSTR, dwLogAttributes: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnableLogA".} + + proc MsiQueryProductState*( + szProduct: LPCSTR + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryProductStateA".} + + proc MsiGetProductInfo*( + szProduct: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoA".} + + proc MsiGetProductInfoEx*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCSTR, + szValue: LPSTR, + pcchValue: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoExA".} + + proc MsiInstallProduct*( + szPackagePath: LPCSTR, szCommandLine: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallProductA".} + + proc MsiConfigureProduct*( + szProduct: LPCSTR, iInstallLevel: int32, eInstallState: INSTALLSTATE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductA".} + + proc MsiConfigureProductEx*( + szProduct: LPCSTR, + iInstallLevel: int32, + eInstallState: INSTALLSTATE, + szCommandLine: LPCSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureProductExA".} + + proc MsiReinstallProduct*( + szProduct: LPCSTR, szReinstallMode: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallProductA".} + + proc MsiAdvertiseProductEx*( + szPackagePath: LPCSTR, + szScriptfilePath: LPCSTR, + szTransforms: LPCSTR, + lgidLanguage: LANGID, + dwPlatform: DWORD, + dwOptions: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductExA".} + + proc MsiAdvertiseProduct*( + szPackagePath: LPCSTR, + szScriptfilePath: LPCSTR, + szTransforms: LPCSTR, + lgidLanguage: LANGID, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseProductA".} + + proc MsiProcessAdvertiseScript*( + szScriptFile: LPCSTR, + szIconFolder: LPCSTR, + hRegData: HKEY, + fShortcuts: WINBOOL, + fRemoveItems: WINBOOL, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProcessAdvertiseScriptA".} + + proc MsiAdvertiseScript*( + szScriptFile: LPCSTR, dwFlags: DWORD, phRegData: PHKEY, fRemoveItems: WINBOOL + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiAdvertiseScriptA".} + + proc MsiGetProductInfoFromScript*( + szScriptFile: LPCSTR, + lpProductBuf39: LPSTR, + plgidLanguage: ptr LANGID, + pdwVersion: ptr DWORD, + lpNameBuf: LPSTR, + pcchNameBuf: ptr DWORD, + lpPackageBuf: LPSTR, + pcchPackageBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductInfoFromScriptA".} + + proc MsiGetProductCode*( + szComponent: LPCSTR, lpBuf39: LPSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductCodeA".} + + proc MsiGetUserInfo*( + szProduct: LPCSTR, + lpUserNameBuf: LPSTR, + pcchUserNameBuf: ptr DWORD, + lpOrgNameBuf: LPSTR, + pcchOrgNameBuf: ptr DWORD, + lpSerialBuf: LPSTR, + pcchSerialBuf: ptr DWORD, + ): USERINFOSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetUserInfoA".} + + proc MsiCollectUserInfo*( + szProduct: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiCollectUserInfoA".} + + proc MsiApplyPatch*( + szPatchPackage: LPCSTR, + szInstallPackage: LPCSTR, + eInstallType: INSTALLTYPE, + szCommandLine: LPCSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyPatchA".} + + proc MsiGetPatchInfo*( + szPatch: LPCSTR, szAttribute: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoA".} + + proc MsiEnumPatches*( + szProduct: LPCSTR, + iPatchIndex: DWORD, + lpPatchBuf: LPSTR, + lpTransformsBuf: LPSTR, + pcchTransformsBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesA".} + + proc MsiRemovePatches*( + szPatchList: LPCSTR, + szProductCode: LPCSTR, + eUninstallType: INSTALLTYPE, + szPropertyList: LPCSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiRemovePatchesA".} + + proc MsiExtractPatchXMLData*( + szPatchPath: LPCSTR, dwReserved: DWORD, szXMLData: LPSTR, pcchXMLData: ptr DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiExtractPatchXMLDataA".} + + proc MsiGetPatchInfoEx*( + szPatchCode: LPCSTR, + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szProperty: LPCSTR, + lpValue: LPSTR, + pcchValue: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchInfoExA".} + + proc MsiApplyMultiplePatches*( + szPatchPackages: LPCSTR, szProductCode: LPCSTR, szPropertiesList: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiApplyMultiplePatchesA".} + + proc MsiDeterminePatchSequence*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + cPatchInfo: DWORD, + pPatchInfo: PMSIPATCHSEQUENCEINFOA, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDeterminePatchSequenceA".} + + proc MsiDetermineApplicablePatches*( + szProductPackagePath: LPCSTR, cPatchInfo: DWORD, pPatchInfo: PMSIPATCHSEQUENCEINFOA + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiDetermineApplicablePatchesA".} + + proc MsiEnumPatchesEx*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: DWORD, + dwFilter: DWORD, + dwIndex: DWORD, + szPatchCode: ptr CHAR, + szTargetProductCode: ptr CHAR, + pdwTargetProductContext: ptr MSIINSTALLCONTEXT, + szTargetUserSid: LPSTR, + pcchTargetUserSid: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumPatchesExA".} + + proc MsiQueryFeatureState*( + szProduct: LPCSTR, szFeature: LPCSTR + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateA".} + + proc MsiQueryFeatureStateEx*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szFeature: LPCSTR, + pdwState: ptr INSTALLSTATE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryFeatureStateExA".} + + proc MsiUseFeature*( + szProduct: LPCSTR, szFeature: LPCSTR + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureA".} + + proc MsiUseFeatureEx*( + szProduct: LPCSTR, szFeature: LPCSTR, dwInstallMode: DWORD, dwReserved: DWORD + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiUseFeatureExA".} + + proc MsiGetFeatureUsage*( + szProduct: LPCSTR, szFeature: LPCSTR, pdwUseCount: ptr DWORD, pwDateUsed: ptr WORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureUsageA".} + + proc MsiConfigureFeature*( + szProduct: LPCSTR, szFeature: LPCSTR, eInstallState: INSTALLSTATE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiConfigureFeatureA".} + + proc MsiReinstallFeature*( + szProduct: LPCSTR, szFeature: LPCSTR, dwReinstallMode: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiReinstallFeatureA".} + + proc MsiProvideComponent*( + szProduct: LPCSTR, + szFeature: LPCSTR, + szComponent: LPCSTR, + dwInstallMode: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideComponentA".} + + proc MsiProvideQualifiedComponent*( + szCategory: LPCSTR, + szQualifier: LPCSTR, + dwInstallMode: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentA".} + + proc MsiProvideQualifiedComponentEx*( + szCategory: LPCSTR, + szQualifier: LPCSTR, + dwInstallMode: DWORD, + szProduct: LPCSTR, + dwUnused1: DWORD, + dwUnused2: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideQualifiedComponentExA".} + + proc MsiGetComponentPath*( + szProduct: LPCSTR, szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiGetComponentPathA".} + + proc MsiProvideAssembly*( + szAssemblyName: LPCSTR, + szAppContext: LPCSTR, + dwInstallMode: DWORD, + dwAssemblyInfo: DWORD, + lpPathBuf: LPSTR, + pcchPathBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiProvideAssemblyA".} + + proc MsiQueryComponentState*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + szComponentCode: LPCSTR, + pdwState: ptr INSTALLSTATE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiQueryComponentStateA".} + + proc MsiEnumProducts*( + iProductIndex: DWORD, lpProductBuf: LPSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsA".} + + proc MsiEnumProductsEx*( + szProductCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: DWORD, + dwIndex: DWORD, + szInstalledProductCode: ptr CHAR, + pdwInstalledContext: ptr MSIINSTALLCONTEXT, + szSid: LPSTR, + pcchSid: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumProductsExA".} + + proc MsiEnumRelatedProducts*( + lpUpgradeCode: LPCSTR, dwReserved: DWORD, iProductIndex: DWORD, lpProductBuf: LPSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumRelatedProductsA".} + + proc MsiEnumFeatures*( + szProduct: LPCSTR, iFeatureIndex: DWORD, lpFeatureBuf: LPSTR, lpParentBuf: LPSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumFeaturesA".} + + proc MsiEnumComponents*( + iComponentIndex: DWORD, lpComponentBuf: LPSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentsA".} + + proc MsiEnumClients*( + szComponent: LPCSTR, iProductIndex: DWORD, lpProductBuf: LPSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumClientsA".} + + proc MsiEnumComponentQualifiers*( + szComponent: LPCSTR, + iIndex: DWORD, + lpQualifierBuf: LPSTR, + pcchQualifierBuf: ptr DWORD, + lpApplicationDataBuf: LPSTR, + pcchApplicationDataBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiEnumComponentQualifiersA".} + + proc MsiOpenProduct*( + szProduct: LPCSTR, hProduct: ptr MSIHANDLE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenProductA".} + + proc MsiOpenPackage*( + szPackagePath: LPCSTR, hProduct: ptr MSIHANDLE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageA".} + + proc MsiOpenPackageEx*( + szPackagePath: LPCSTR, dwOptions: DWORD, hProduct: ptr MSIHANDLE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiOpenPackageExA".} + + proc MsiGetPatchFileList*( + szProductCode: LPCSTR, + szPatchPackages: LPCSTR, + pcFiles: LPDWORD, + pphFileRecords: ptr ptr MSIHANDLE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetPatchFileListA".} + + proc MsiGetProductProperty*( + hProduct: MSIHANDLE, szProperty: LPCSTR, lpValueBuf: LPSTR, pcchValueBuf: ptr DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetProductPropertyA".} + + proc MsiVerifyPackage*( + szPackagePath: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiVerifyPackageA".} + + proc MsiGetFeatureInfo*( + hProduct: MSIHANDLE, + szFeature: LPCSTR, + lpAttributes: ptr DWORD, + lpTitleBuf: LPSTR, + pcchTitleBuf: ptr DWORD, + lpHelpBuf: LPSTR, + pcchHelpBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFeatureInfoA".} + + proc MsiInstallMissingComponent*( + szProduct: LPCSTR, szComponent: LPCSTR, eInstallState: INSTALLSTATE + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingComponentA".} + + proc MsiInstallMissingFile*( + szProduct: LPCSTR, szFile: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiInstallMissingFileA".} + + proc MsiLocateComponent*( + szComponent: LPCSTR, lpPathBuf: LPSTR, pcchBuf: ptr DWORD + ): INSTALLSTATE {.winapi, stdcall, dynlib: "msi", importc: "MsiLocateComponentA".} + + proc MsiSourceListClearAll*( + szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllA".} + + proc MsiSourceListAddSource*( + szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD, szSource: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceA".} + + proc MsiSourceListForceResolution*( + szProduct: LPCSTR, szUserName: LPCSTR, dwReserved: DWORD + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionA".} + + proc MsiSourceListAddSourceEx*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCSTR, + dwIndex: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddSourceExA".} + + proc MsiSourceListAddMediaDisk*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, + szVolumeLabel: LPCSTR, + szDiskPrompt: LPCSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListAddMediaDiskA".} + + proc MsiSourceListClearSource*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szSource: LPCSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearSourceA".} + + proc MsiSourceListClearMediaDisk*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwDiskId: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearMediaDiskA".} + + proc MsiSourceListClearAllEx*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListClearAllExA".} + + proc MsiSourceListForceResolutionEx*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListForceResolutionExA".} + + proc MsiSourceListSetInfo*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCSTR, + szValue: LPCSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListSetInfoA".} + + proc MsiSourceListGetInfo*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + szProperty: LPCSTR, + szValue: LPSTR, + pcchValue: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListGetInfoA".} + + proc MsiSourceListEnumSources*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + szSource: LPSTR, + pcchSource: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumSourcesA".} + + proc MsiSourceListEnumMediaDisks*( + szProductCodeOrPatchCode: LPCSTR, + szUserSid: LPCSTR, + dwContext: MSIINSTALLCONTEXT, + dwOptions: DWORD, + dwIndex: DWORD, + pdwDiskId: LPDWORD, + szVolumeLabel: LPSTR, + pcchVolumeLabel: LPDWORD, + szDiskPrompt: LPSTR, + pcchDiskPrompt: LPDWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiSourceListEnumMediaDisksA".} + + proc MsiGetFileVersion*( + szFilePath: LPCSTR, + lpVersionBuf: LPSTR, + pcchVersionBuf: ptr DWORD, + lpLangBuf: LPSTR, + pcchLangBuf: ptr DWORD, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileVersionA".} + + proc MsiGetFileHash*( + szFilePath: LPCSTR, dwOptions: DWORD, pHash: PMSIFILEHASHINFO + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetFileHashA".} + + proc MsiGetFileSignatureInformation*( + szSignedObjectPath: LPCSTR, + dwFlags: DWORD, + ppcCertContext: ptr PCCERT_CONTEXT, + pbHashData: ptr BYTE, + pcbHashData: ptr DWORD, + ): HRESULT {. + winapi, stdcall, dynlib: "msi", importc: "MsiGetFileSignatureInformationA" + .} + + proc MsiGetShortcutTarget*( + szShortcutPath: LPCSTR, + szProductCode: LPSTR, + szFeatureId: LPSTR, + szComponentCode: LPSTR, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiGetShortcutTargetA".} + + proc MsiIsProductElevated*( + szProduct: LPCSTR, pfElevated: ptr WINBOOL + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiIsProductElevatedA".} + + proc MsiNotifySidChange*( + pOldSid: LPCSTR, pNewSid: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiNotifySidChangeA".} + + proc MsiBeginTransaction*( + szName: LPCSTR, + dwTransactionAttributes: DWORD, + phTransactionHandle: ptr MSIHANDLE, + phChangeOfOwnerEvent: ptr HANDLE, + ): UINT {.winapi, stdcall, dynlib: "msi", importc: "MsiBeginTransactionA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/nb30.nim --- a/semicongine/thirdparty/winim/winim/inc/nb30.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/nb30.nim Thu Aug 22 18:32:21 2024 +0700 @@ -7,14 +7,11 @@ import winimbase import windef #include -const - NCBNAMSZ* = 16 +const NCBNAMSZ* = 16 when winimCpu64: - type - NCB_RESERVE* = array[18, UCHAR] + type NCB_RESERVE* = array[18, UCHAR] when winimCpu32: - type - NCB_RESERVE* = array[10, UCHAR] + type NCB_RESERVE* = array[10, UCHAR] type NCB* {.pure.} = object ncb_command*: UCHAR @@ -27,11 +24,12 @@ ncb_name*: array[NCBNAMSZ, UCHAR] ncb_rto*: UCHAR ncb_sto*: UCHAR - ncb_post*: proc (P1: ptr NCB): void {.stdcall.} + ncb_post*: proc(P1: ptr NCB): void {.stdcall.} ncb_lana_num*: UCHAR ncb_cmd_cplt*: UCHAR ncb_reserve*: NCB_RESERVE ncb_event*: HANDLE + PNCB* = ptr NCB ADAPTER_STATUS* {.pure.} = object adapter_address*: array[6, UCHAR] @@ -61,17 +59,20 @@ max_sess*: WORD max_sess_pkt_size*: WORD name_count*: WORD + PADAPTER_STATUS* = ptr ADAPTER_STATUS NAME_BUFFER* {.pure.} = object name*: array[NCBNAMSZ, UCHAR] name_num*: UCHAR name_flags*: UCHAR + PNAME_BUFFER* = ptr NAME_BUFFER SESSION_HEADER* {.pure.} = object sess_name*: UCHAR num_sess*: UCHAR rcv_dg_outstanding*: UCHAR rcv_any_outstanding*: UCHAR + PSESSION_HEADER* = ptr SESSION_HEADER SESSION_BUFFER* {.pure.} = object lsn*: UCHAR @@ -80,18 +81,21 @@ remote_name*: array[NCBNAMSZ, UCHAR] rcvs_outstanding*: UCHAR sends_outstanding*: UCHAR + PSESSION_BUFFER* = ptr SESSION_BUFFER -const - MAX_LANA* = 254 + +const MAX_LANA* = 254 type LANA_ENUM* {.pure.} = object length*: UCHAR - lana*: array[MAX_LANA+1, UCHAR] + lana*: array[MAX_LANA + 1, UCHAR] + PLANA_ENUM* = ptr LANA_ENUM FIND_NAME_HEADER* {.pure.} = object node_count*: WORD reserved*: UCHAR unique_group*: UCHAR + PFIND_NAME_HEADER* = ptr FIND_NAME_HEADER FIND_NAME_BUFFER* {.pure.} = object length*: UCHAR @@ -100,12 +104,15 @@ destination_addr*: array[6, UCHAR] source_addr*: array[6, UCHAR] routing_info*: array[18, UCHAR] + PFIND_NAME_BUFFER* = ptr FIND_NAME_BUFFER ACTION_HEADER* {.pure.} = object transport_id*: ULONG action_code*: USHORT reserved*: USHORT + PACTION_HEADER* = ptr ACTION_HEADER + const NAME_FLAGS_MASK* = 0x87 GROUP_NAME* = 0x80 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/objbase.nim --- a/semicongine/thirdparty/winim/winim/inc/objbase.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/objbase.nim Thu Aug 22 18:32:21 2024 +0700 @@ -232,29 +232,36 @@ userCLIPFORMAT_u* {.pure, union.} = object dwValue*: DWORD pwszName*: ptr uint16 + userCLIPFORMAT* {.pure.} = object fContext*: LONG u*: userCLIPFORMAT_u + wireCLIPFORMAT* = ptr userCLIPFORMAT FLAGGED_BYTE_BLOB* {.pure.} = object fFlags*: ULONG clSize*: ULONG abData*: array[1, uint8] + userHGLOBAL_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr FLAGGED_BYTE_BLOB hInproc64*: INT64 + userHGLOBAL* {.pure.} = object fContext*: LONG padding*: array[4, byte] u*: userHGLOBAL_u + wireHGLOBAL* = ptr userHGLOBAL RemotableHandle_u* {.pure, union.} = object hInproc*: LONG hRemote*: LONG + RemotableHandle* {.pure.} = object fContext*: LONG u*: RemotableHandle_u + wireHWND* = ptr RemotableHandle wireHMENU* = ptr RemotableHandle wireHACCEL* = ptr RemotableHandle @@ -273,114 +280,153 @@ bmBitsPixel*: WORD cbSize*: ULONG pBuffer*: array[1, uint8] + userHBITMAP_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr userBITMAP hInproc64*: INT64 + userHBITMAP* {.pure.} = object fContext*: LONG padding*: array[4, byte] u*: userHBITMAP_u + wireHBITMAP* = ptr userHBITMAP userHPALETTE_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr LOGPALETTE hInproc64*: INT64 + userHPALETTE* {.pure.} = object fContext*: LONG padding*: array[4, byte] u*: userHPALETTE_u + wireHPALETTE* = ptr userHPALETTE BYTE_BLOB* {.pure.} = object clSize*: ULONG abData*: array[1, uint8] + userHENHMETAFILE_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr BYTE_BLOB hInproc64*: INT64 + userHENHMETAFILE* {.pure.} = object fContext*: LONG padding*: array[4, byte] u*: userHENHMETAFILE_u + wireHENHMETAFILE* = ptr userHENHMETAFILE userHMETAFILE_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr BYTE_BLOB hInproc64*: INT64 + userHMETAFILE* {.pure.} = object fContext*: LONG padding*: array[4, byte] u*: userHMETAFILE_u + wireHMETAFILE* = ptr userHMETAFILE remoteMETAFILEPICT* {.pure.} = object mm*: LONG xExt*: LONG yExt*: LONG hMF*: ptr userHMETAFILE + userHMETAFILEPICT_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr remoteMETAFILEPICT hInproc64*: INT64 + userHMETAFILEPICT* {.pure.} = object fContext*: LONG padding*: array[4, byte] u*: userHMETAFILEPICT_u + wireHMETAFILEPICT* = ptr userHMETAFILEPICT DATE* = float64 CY_STRUCT1* {.pure.} = object Lo*: int32 Hi*: int32 + CY* {.pure, union.} = object struct1*: CY_STRUCT1 int64*: LONGLONG + LPCY* = ptr CY DECIMAL_UNION1_STRUCT1* {.pure.} = object scale*: BYTE sign*: BYTE + DECIMAL_UNION1* {.pure, union.} = object struct1*: DECIMAL_UNION1_STRUCT1 signscale*: USHORT + DECIMAL_UNION2_STRUCT1* {.pure.} = object Lo32*: ULONG Mid32*: ULONG + DECIMAL_UNION2* {.pure, union.} = object struct1*: DECIMAL_UNION2_STRUCT1 Lo64*: ULONGLONG + DECIMAL* {.pure.} = object wReserved*: USHORT union1*: DECIMAL_UNION1 Hi32*: ULONG union2*: DECIMAL_UNION2 + LPDECIMAL* = ptr DECIMAL FLAGGED_WORD_BLOB* {.pure.} = object fFlags*: ULONG clSize*: ULONG asData*: array[1, uint16] + wireBSTR* = ptr FLAGGED_WORD_BLOB LPBSTR* = ptr BSTR VARIANT_BOOL* = int16 BSTRBLOB* {.pure.} = object cbSize*: ULONG pData*: ptr BYTE + LPBSTRBLOB* = ptr BSTRBLOB IUnknown* {.pure.} = object lpVtbl*: ptr IUnknownVtbl + IUnknownVtbl* {.pure, inheritable.} = object - QueryInterface*: proc(self: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} + QueryInterface*: proc( + self: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer + ): HRESULT {.stdcall.} AddRef*: proc(self: ptr IUnknown): ULONG {.stdcall.} Release*: proc(self: ptr IUnknown): ULONG {.stdcall.} + LPUNKNOWN* = ptr IUnknown IClassFactory* {.pure.} = object lpVtbl*: ptr IClassFactoryVtbl + IClassFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateInstance*: proc(self: ptr IClassFactory, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr IClassFactory, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppvObject: ptr pointer, + ): HRESULT {.stdcall.} LockServer*: proc(self: ptr IClassFactory, fLock: WINBOOL): HRESULT {.stdcall.} + LPCLASSFACTORY* = ptr IClassFactory ISequentialStream* {.pure.} = object lpVtbl*: ptr ISequentialStreamVtbl + ISequentialStreamVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Read*: proc(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.stdcall.} - Write*: proc(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.stdcall.} + Read*: proc( + self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbRead: ptr ULONG + ): HRESULT {.stdcall.} + Write*: proc( + self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG + ): HRESULT {.stdcall.} + LPOLESTR* = ptr OLECHAR STATSTG* {.pure.} = object pwcsName*: LPOLESTR @@ -394,34 +440,91 @@ clsid*: CLSID grfStateBits*: DWORD reserved*: DWORD + IStream* {.pure.} = object lpVtbl*: ptr IStreamVtbl + IStreamVtbl* {.pure, inheritable.} = object of ISequentialStreamVtbl - Seek*: proc(self: ptr IStream, dlibMove: LARGE_INTEGER, dwOrigin: DWORD, plibNewPosition: ptr ULARGE_INTEGER): HRESULT {.stdcall.} + Seek*: proc( + self: ptr IStream, + dlibMove: LARGE_INTEGER, + dwOrigin: DWORD, + plibNewPosition: ptr ULARGE_INTEGER, + ): HRESULT {.stdcall.} SetSize*: proc(self: ptr IStream, libNewSize: ULARGE_INTEGER): HRESULT {.stdcall.} - CopyTo*: proc(self: ptr IStream, pstm: ptr IStream, cb: ULARGE_INTEGER, pcbRead: ptr ULARGE_INTEGER, pcbWritten: ptr ULARGE_INTEGER): HRESULT {.stdcall.} + CopyTo*: proc( + self: ptr IStream, + pstm: ptr IStream, + cb: ULARGE_INTEGER, + pcbRead: ptr ULARGE_INTEGER, + pcbWritten: ptr ULARGE_INTEGER, + ): HRESULT {.stdcall.} Commit*: proc(self: ptr IStream, grfCommitFlags: DWORD): HRESULT {.stdcall.} Revert*: proc(self: ptr IStream): HRESULT {.stdcall.} - LockRegion*: proc(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.stdcall.} - UnlockRegion*: proc(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.stdcall.} - Stat*: proc(self: ptr IStream, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.stdcall.} + LockRegion*: proc( + self: ptr IStream, + libOffset: ULARGE_INTEGER, + cb: ULARGE_INTEGER, + dwLockType: DWORD, + ): HRESULT {.stdcall.} + UnlockRegion*: proc( + self: ptr IStream, + libOffset: ULARGE_INTEGER, + cb: ULARGE_INTEGER, + dwLockType: DWORD, + ): HRESULT {.stdcall.} + Stat*: proc(self: ptr IStream, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {. + stdcall + .} Clone*: proc(self: ptr IStream, ppstm: ptr ptr IStream): HRESULT {.stdcall.} + IMarshal* {.pure.} = object lpVtbl*: ptr IMarshalVtbl + IMarshalVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetUnmarshalClass*: proc(self: ptr IMarshal, riid: REFIID, pv: pointer, dwDestContext: DWORD, pvDestContext: pointer, mshlflags: DWORD, pCid: ptr CLSID): HRESULT {.stdcall.} - GetMarshalSizeMax*: proc(self: ptr IMarshal, riid: REFIID, pv: pointer, dwDestContext: DWORD, pvDestContext: pointer, mshlflags: DWORD, pSize: ptr DWORD): HRESULT {.stdcall.} - MarshalInterface*: proc(self: ptr IMarshal, pStm: ptr IStream, riid: REFIID, pv: pointer, dwDestContext: DWORD, pvDestContext: pointer, mshlflags: DWORD): HRESULT {.stdcall.} - UnmarshalInterface*: proc(self: ptr IMarshal, pStm: ptr IStream, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - ReleaseMarshalData*: proc(self: ptr IMarshal, pStm: ptr IStream): HRESULT {.stdcall.} + GetUnmarshalClass*: proc( + self: ptr IMarshal, + riid: REFIID, + pv: pointer, + dwDestContext: DWORD, + pvDestContext: pointer, + mshlflags: DWORD, + pCid: ptr CLSID, + ): HRESULT {.stdcall.} + GetMarshalSizeMax*: proc( + self: ptr IMarshal, + riid: REFIID, + pv: pointer, + dwDestContext: DWORD, + pvDestContext: pointer, + mshlflags: DWORD, + pSize: ptr DWORD, + ): HRESULT {.stdcall.} + MarshalInterface*: proc( + self: ptr IMarshal, + pStm: ptr IStream, + riid: REFIID, + pv: pointer, + dwDestContext: DWORD, + pvDestContext: pointer, + mshlflags: DWORD, + ): HRESULT {.stdcall.} + UnmarshalInterface*: proc( + self: ptr IMarshal, pStm: ptr IStream, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + ReleaseMarshalData*: + proc(self: ptr IMarshal, pStm: ptr IStream): HRESULT {.stdcall.} DisconnectObject*: proc(self: ptr IMarshal, dwReserved: DWORD): HRESULT {.stdcall.} + LPMARSHAL* = ptr IMarshal IMarshal2* {.pure.} = object lpVtbl*: ptr IMarshal2Vtbl + IMarshal2Vtbl* {.pure, inheritable.} = object of IMarshalVtbl LPMARSHAL2* = ptr IMarshal2 IMalloc* {.pure.} = object lpVtbl*: ptr IMallocVtbl + IMallocVtbl* {.pure, inheritable.} = object of IUnknownVtbl Alloc*: proc(self: ptr IMalloc, cb: SIZE_T): pointer {.stdcall.} Realloc*: proc(self: ptr IMalloc, pv: pointer, cb: SIZE_T): pointer {.stdcall.} @@ -429,42 +532,76 @@ GetSize*: proc(self: ptr IMalloc, pv: pointer): SIZE_T {.stdcall.} DidAlloc*: proc(self: ptr IMalloc, pv: pointer): int32 {.stdcall.} HeapMinimize*: proc(self: ptr IMalloc): void {.stdcall.} + LPMALLOC* = ptr IMalloc IStdMarshalInfo* {.pure.} = object lpVtbl*: ptr IStdMarshalInfoVtbl + IStdMarshalInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetClassForHandler*: proc(self: ptr IStdMarshalInfo, dwDestContext: DWORD, pvDestContext: pointer, pClsid: ptr CLSID): HRESULT {.stdcall.} + GetClassForHandler*: proc( + self: ptr IStdMarshalInfo, + dwDestContext: DWORD, + pvDestContext: pointer, + pClsid: ptr CLSID, + ): HRESULT {.stdcall.} + LPSTDMARSHALINFO* = ptr IStdMarshalInfo IExternalConnection* {.pure.} = object lpVtbl*: ptr IExternalConnectionVtbl + IExternalConnectionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddConnection*: proc(self: ptr IExternalConnection, extconn: DWORD, reserved: DWORD): DWORD {.stdcall.} - ReleaseConnection*: proc(self: ptr IExternalConnection, extconn: DWORD, reserved: DWORD, fLastReleaseCloses: WINBOOL): DWORD {.stdcall.} + AddConnection*: proc( + self: ptr IExternalConnection, extconn: DWORD, reserved: DWORD + ): DWORD {.stdcall.} + ReleaseConnection*: proc( + self: ptr IExternalConnection, + extconn: DWORD, + reserved: DWORD, + fLastReleaseCloses: WINBOOL, + ): DWORD {.stdcall.} + LPEXTERNALCONNECTION* = ptr IExternalConnection MULTI_QI* {.pure.} = object pIID*: ptr IID pItf*: ptr IUnknown hr*: HRESULT + IMultiQI* {.pure.} = object lpVtbl*: ptr IMultiQIVtbl + IMultiQIVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryMultipleInterfaces*: proc(self: ptr IMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI): HRESULT {.stdcall.} + QueryMultipleInterfaces*: + proc(self: ptr IMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI): HRESULT {.stdcall.} + LPMULTIQI* = ptr IMultiQI IEnumUnknown* {.pure.} = object lpVtbl*: ptr IEnumUnknownVtbl + IEnumUnknownVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumUnknown, celt: ULONG, rgelt: ptr ptr IUnknown, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumUnknown, + celt: ULONG, + rgelt: ptr ptr IUnknown, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumUnknown, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumUnknown): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumUnknown, ppenum: ptr ptr IEnumUnknown): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumUnknown, ppenum: ptr ptr IEnumUnknown): HRESULT {.stdcall.} + LPENUMUNKNOWN* = ptr IEnumUnknown IEnumString* {.pure.} = object lpVtbl*: ptr IEnumStringVtbl + IEnumStringVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumString, celt: ULONG, rgelt: ptr LPOLESTR, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumString, celt: ULONG, rgelt: ptr LPOLESTR, pceltFetched: ptr ULONG + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumString, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumString): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumString, ppenum: ptr ptr IEnumString): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumString, ppenum: ptr ptr IEnumString): HRESULT {.stdcall.} + LPENUMSTRING* = ptr IEnumString LPSTREAM* = ptr IStream RPCOLEMESSAGE* {.pure.} = object @@ -475,146 +612,306 @@ iMethod*: ULONG reserved2*: array[5, pointer] rpcFlags*: ULONG + PRPCOLEMESSAGE* = ptr RPCOLEMESSAGE SOLE_AUTHENTICATION_SERVICE* {.pure.} = object dwAuthnSvc*: DWORD dwAuthzSvc*: DWORD pPrincipalName*: ptr OLECHAR hr*: HRESULT + PSOLE_AUTHENTICATION_SERVICE* = ptr SOLE_AUTHENTICATION_SERVICE SOLE_AUTHENTICATION_INFO* {.pure.} = object dwAuthnSvc*: DWORD dwAuthzSvc*: DWORD pAuthInfo*: pointer + PSOLE_AUTHENTICATION_INFO* = ptr SOLE_AUTHENTICATION_INFO SOLE_AUTHENTICATION_LIST* {.pure.} = object cAuthInfo*: DWORD aAuthInfo*: ptr SOLE_AUTHENTICATION_INFO + PSOLE_AUTHENTICATION_LIST* = ptr SOLE_AUTHENTICATION_LIST ISurrogate* {.pure.} = object lpVtbl*: ptr ISurrogateVtbl + ISurrogateVtbl* {.pure, inheritable.} = object of IUnknownVtbl LoadDllServer*: proc(self: ptr ISurrogate, Clsid: REFCLSID): HRESULT {.stdcall.} FreeSurrogate*: proc(self: ptr ISurrogate): HRESULT {.stdcall.} + LPSURROGATE* = ptr ISurrogate IGlobalInterfaceTable* {.pure.} = object lpVtbl*: ptr IGlobalInterfaceTableVtbl + IGlobalInterfaceTableVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterInterfaceInGlobal*: proc(self: ptr IGlobalInterfaceTable, pUnk: ptr IUnknown, riid: REFIID, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - RevokeInterfaceFromGlobal*: proc(self: ptr IGlobalInterfaceTable, dwCookie: DWORD): HRESULT {.stdcall.} - GetInterfaceFromGlobal*: proc(self: ptr IGlobalInterfaceTable, dwCookie: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + RegisterInterfaceInGlobal*: proc( + self: ptr IGlobalInterfaceTable, + pUnk: ptr IUnknown, + riid: REFIID, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + RevokeInterfaceFromGlobal*: + proc(self: ptr IGlobalInterfaceTable, dwCookie: DWORD): HRESULT {.stdcall.} + GetInterfaceFromGlobal*: proc( + self: ptr IGlobalInterfaceTable, dwCookie: DWORD, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + LPGLOBALINTERFACETABLE* = ptr IGlobalInterfaceTable ICancelMethodCalls* {.pure.} = object lpVtbl*: ptr ICancelMethodCallsVtbl + ICancelMethodCallsVtbl* {.pure, inheritable.} = object of IUnknownVtbl Cancel*: proc(self: ptr ICancelMethodCalls, ulSeconds: ULONG): HRESULT {.stdcall.} TestCancel*: proc(self: ptr ICancelMethodCalls): HRESULT {.stdcall.} + LPCANCELMETHODCALLS* = ptr ICancelMethodCalls IAddrTrackingControl* {.pure.} = object lpVtbl*: ptr IAddrTrackingControlVtbl + IAddrTrackingControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EnableCOMDynamicAddrTracking*: proc(self: ptr IAddrTrackingControl): HRESULT {.stdcall.} - DisableCOMDynamicAddrTracking*: proc(self: ptr IAddrTrackingControl): HRESULT {.stdcall.} + EnableCOMDynamicAddrTracking*: + proc(self: ptr IAddrTrackingControl): HRESULT {.stdcall.} + DisableCOMDynamicAddrTracking*: + proc(self: ptr IAddrTrackingControl): HRESULT {.stdcall.} + LPADDRTRACKINGCONTROL* = ptr IAddrTrackingControl IAddrExclusionControl* {.pure.} = object lpVtbl*: ptr IAddrExclusionControlVtbl + IAddrExclusionControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentAddrExclusionList*: proc(self: ptr IAddrExclusionControl, riid: REFIID, ppEnumerator: ptr pointer): HRESULT {.stdcall.} - UpdateAddrExclusionList*: proc(self: ptr IAddrExclusionControl, pEnumerator: ptr IUnknown): HRESULT {.stdcall.} + GetCurrentAddrExclusionList*: proc( + self: ptr IAddrExclusionControl, riid: REFIID, ppEnumerator: ptr pointer + ): HRESULT {.stdcall.} + UpdateAddrExclusionList*: proc( + self: ptr IAddrExclusionControl, pEnumerator: ptr IUnknown + ): HRESULT {.stdcall.} + LPADDREXCLUSIONCONTROL* = ptr IAddrExclusionControl ContextProperty* {.pure.} = object policyId*: GUID flags*: CPFLAGS pUnk*: ptr IUnknown + IEnumContextProps* {.pure.} = object lpVtbl*: ptr IEnumContextPropsVtbl + IEnumContextPropsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumContextProps, celt: ULONG, pContextProperties: ptr ContextProperty, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumContextProps, + celt: ULONG, + pContextProperties: ptr ContextProperty, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumContextProps, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumContextProps): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumContextProps, ppEnumContextProps: ptr ptr IEnumContextProps): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumContextProps, ppEnumContextProps: ptr ptr IEnumContextProps + ): HRESULT {.stdcall.} Count*: proc(self: ptr IEnumContextProps, pcelt: ptr ULONG): HRESULT {.stdcall.} + LPENUMCONTEXTPROPS* = ptr IEnumContextProps IMallocSpy* {.pure.} = object lpVtbl*: ptr IMallocSpyVtbl + IMallocSpyVtbl* {.pure, inheritable.} = object of IUnknownVtbl PreAlloc*: proc(self: ptr IMallocSpy, cbRequest: SIZE_T): SIZE_T {.stdcall.} PostAlloc*: proc(self: ptr IMallocSpy, pActual: pointer): pointer {.stdcall.} - PreFree*: proc(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {.stdcall.} + PreFree*: proc(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {. + stdcall + .} PostFree*: proc(self: ptr IMallocSpy, fSpyed: WINBOOL): void {.stdcall.} - PreRealloc*: proc(self: ptr IMallocSpy, pRequest: pointer, cbRequest: SIZE_T, ppNewRequest: ptr pointer, fSpyed: WINBOOL): SIZE_T {.stdcall.} - PostRealloc*: proc(self: ptr IMallocSpy, pActual: pointer, fSpyed: WINBOOL): pointer {.stdcall.} - PreGetSize*: proc(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {.stdcall.} - PostGetSize*: proc(self: ptr IMallocSpy, cbActual: SIZE_T, fSpyed: WINBOOL): SIZE_T {.stdcall.} - PreDidAlloc*: proc(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {.stdcall.} - PostDidAlloc*: proc(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL, fActual: int32): int32 {.stdcall.} + PreRealloc*: proc( + self: ptr IMallocSpy, + pRequest: pointer, + cbRequest: SIZE_T, + ppNewRequest: ptr pointer, + fSpyed: WINBOOL, + ): SIZE_T {.stdcall.} + PostRealloc*: + proc(self: ptr IMallocSpy, pActual: pointer, fSpyed: WINBOOL): pointer {.stdcall.} + PreGetSize*: proc(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {. + stdcall + .} + PostGetSize*: + proc(self: ptr IMallocSpy, cbActual: SIZE_T, fSpyed: WINBOOL): SIZE_T {.stdcall.} + PreDidAlloc*: proc( + self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL + ): pointer {.stdcall.} + PostDidAlloc*: proc( + self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL, fActual: int32 + ): int32 {.stdcall.} PreHeapMinimize*: proc(self: ptr IMallocSpy): void {.stdcall.} PostHeapMinimize*: proc(self: ptr IMallocSpy): void {.stdcall.} + LPMALLOCSPY* = ptr IMallocSpy BIND_OPTS* {.pure.} = object cbStruct*: DWORD grfFlags*: DWORD grfMode*: DWORD dwTickCountDeadline*: DWORD + IPersist* {.pure.} = object lpVtbl*: ptr IPersistVtbl + IPersistVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetClassID*: proc(self: ptr IPersist, pClassID: ptr CLSID): HRESULT {.stdcall.} + IPersistStream* {.pure.} = object lpVtbl*: ptr IPersistStreamVtbl + IPersistStreamVtbl* {.pure, inheritable.} = object of IPersistVtbl IsDirty*: proc(self: ptr IPersistStream): HRESULT {.stdcall.} Load*: proc(self: ptr IPersistStream, pStm: ptr IStream): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistStream, pStm: ptr IStream, fClearDirty: WINBOOL): HRESULT {.stdcall.} - GetSizeMax*: proc(self: ptr IPersistStream, pcbSize: ptr ULARGE_INTEGER): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistStream, pStm: ptr IStream, fClearDirty: WINBOOL + ): HRESULT {.stdcall.} + GetSizeMax*: + proc(self: ptr IPersistStream, pcbSize: ptr ULARGE_INTEGER): HRESULT {.stdcall.} + IEnumMoniker* {.pure.} = object lpVtbl*: ptr IEnumMonikerVtbl + IEnumMonikerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumMoniker, celt: ULONG, rgelt: ptr ptr IMoniker, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumMoniker, + celt: ULONG, + rgelt: ptr ptr IMoniker, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumMoniker, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumMoniker): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumMoniker, ppenum: ptr ptr IEnumMoniker): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumMoniker, ppenum: ptr ptr IEnumMoniker): HRESULT {.stdcall.} + IMoniker* {.pure.} = object lpVtbl*: ptr IMonikerVtbl + IMonikerVtbl* {.pure, inheritable.} = object of IPersistStreamVtbl - BindToObject*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riidResult: REFIID, ppvResult: ptr pointer): HRESULT {.stdcall.} - BindToStorage*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riid: REFIID, ppvObj: ptr pointer): HRESULT {.stdcall.} - Reduce*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, dwReduceHowFar: DWORD, ppmkToLeft: ptr ptr IMoniker, ppmkReduced: ptr ptr IMoniker): HRESULT {.stdcall.} - ComposeWith*: proc(self: ptr IMoniker, pmkRight: ptr IMoniker, fOnlyIfNotGeneric: WINBOOL, ppmkComposite: ptr ptr IMoniker): HRESULT {.stdcall.} - Enum*: proc(self: ptr IMoniker, fForward: WINBOOL, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.stdcall.} - IsEqual*: proc(self: ptr IMoniker, pmkOtherMoniker: ptr IMoniker): HRESULT {.stdcall.} + BindToObject*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + riidResult: REFIID, + ppvResult: ptr pointer, + ): HRESULT {.stdcall.} + BindToStorage*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + riid: REFIID, + ppvObj: ptr pointer, + ): HRESULT {.stdcall.} + Reduce*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + dwReduceHowFar: DWORD, + ppmkToLeft: ptr ptr IMoniker, + ppmkReduced: ptr ptr IMoniker, + ): HRESULT {.stdcall.} + ComposeWith*: proc( + self: ptr IMoniker, + pmkRight: ptr IMoniker, + fOnlyIfNotGeneric: WINBOOL, + ppmkComposite: ptr ptr IMoniker, + ): HRESULT {.stdcall.} + Enum*: proc( + self: ptr IMoniker, fForward: WINBOOL, ppenumMoniker: ptr ptr IEnumMoniker + ): HRESULT {.stdcall.} + IsEqual*: + proc(self: ptr IMoniker, pmkOtherMoniker: ptr IMoniker): HRESULT {.stdcall.} Hash*: proc(self: ptr IMoniker, pdwHash: ptr DWORD): HRESULT {.stdcall.} - IsRunning*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pmkNewlyRunning: ptr IMoniker): HRESULT {.stdcall.} - GetTimeOfLastChange*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pFileTime: ptr FILETIME): HRESULT {.stdcall.} + IsRunning*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + pmkNewlyRunning: ptr IMoniker, + ): HRESULT {.stdcall.} + GetTimeOfLastChange*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + pFileTime: ptr FILETIME, + ): HRESULT {.stdcall.} Inverse*: proc(self: ptr IMoniker, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.} - CommonPrefixWith*: proc(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkPrefix: ptr ptr IMoniker): HRESULT {.stdcall.} - RelativePathTo*: proc(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkRelPath: ptr ptr IMoniker): HRESULT {.stdcall.} - GetDisplayName*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, ppszDisplayName: ptr LPOLESTR): HRESULT {.stdcall.} - ParseDisplayName*: proc(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.stdcall.} + CommonPrefixWith*: proc( + self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkPrefix: ptr ptr IMoniker + ): HRESULT {.stdcall.} + RelativePathTo*: proc( + self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkRelPath: ptr ptr IMoniker + ): HRESULT {.stdcall.} + GetDisplayName*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + ppszDisplayName: ptr LPOLESTR, + ): HRESULT {.stdcall.} + ParseDisplayName*: proc( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + pszDisplayName: LPOLESTR, + pchEaten: ptr ULONG, + ppmkOut: ptr ptr IMoniker, + ): HRESULT {.stdcall.} IsSystemMoniker*: proc(self: ptr IMoniker, pdwMksys: ptr DWORD): HRESULT {.stdcall.} + IRunningObjectTable* {.pure.} = object lpVtbl*: ptr IRunningObjectTableVtbl + IRunningObjectTableVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Register*: proc(self: ptr IRunningObjectTable, grfFlags: DWORD, punkObject: ptr IUnknown, pmkObjectName: ptr IMoniker, pdwRegister: ptr DWORD): HRESULT {.stdcall.} + Register*: proc( + self: ptr IRunningObjectTable, + grfFlags: DWORD, + punkObject: ptr IUnknown, + pmkObjectName: ptr IMoniker, + pdwRegister: ptr DWORD, + ): HRESULT {.stdcall.} Revoke*: proc(self: ptr IRunningObjectTable, dwRegister: DWORD): HRESULT {.stdcall.} - IsRunning*: proc(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker): HRESULT {.stdcall.} - GetObject*: proc(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, ppunkObject: ptr ptr IUnknown): HRESULT {.stdcall.} - NoteChangeTime*: proc(self: ptr IRunningObjectTable, dwRegister: DWORD, pfiletime: ptr FILETIME): HRESULT {.stdcall.} - GetTimeOfLastChange*: proc(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, pfiletime: ptr FILETIME): HRESULT {.stdcall.} - EnumRunning*: proc(self: ptr IRunningObjectTable, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.stdcall.} + IsRunning*: proc( + self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker + ): HRESULT {.stdcall.} + GetObject*: proc( + self: ptr IRunningObjectTable, + pmkObjectName: ptr IMoniker, + ppunkObject: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + NoteChangeTime*: proc( + self: ptr IRunningObjectTable, dwRegister: DWORD, pfiletime: ptr FILETIME + ): HRESULT {.stdcall.} + GetTimeOfLastChange*: proc( + self: ptr IRunningObjectTable, + pmkObjectName: ptr IMoniker, + pfiletime: ptr FILETIME, + ): HRESULT {.stdcall.} + EnumRunning*: proc( + self: ptr IRunningObjectTable, ppenumMoniker: ptr ptr IEnumMoniker + ): HRESULT {.stdcall.} + IBindCtx* {.pure.} = object lpVtbl*: ptr IBindCtxVtbl + IBindCtxVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterObjectBound*: proc(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.stdcall.} - RevokeObjectBound*: proc(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.stdcall.} + RegisterObjectBound*: + proc(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.stdcall.} + RevokeObjectBound*: + proc(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.stdcall.} ReleaseBoundObjects*: proc(self: ptr IBindCtx): HRESULT {.stdcall.} - SetBindOptions*: proc(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.stdcall.} - GetBindOptions*: proc(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.stdcall.} - GetRunningObjectTable*: proc(self: ptr IBindCtx, pprot: ptr ptr IRunningObjectTable): HRESULT {.stdcall.} - RegisterObjectParam*: proc(self: ptr IBindCtx, pszKey: LPOLESTR, punk: ptr IUnknown): HRESULT {.stdcall.} - GetObjectParam*: proc(self: ptr IBindCtx, pszKey: LPOLESTR, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} - EnumObjectParam*: proc(self: ptr IBindCtx, ppenum: ptr ptr IEnumString): HRESULT {.stdcall.} + SetBindOptions*: + proc(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.stdcall.} + GetBindOptions*: + proc(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.stdcall.} + GetRunningObjectTable*: + proc(self: ptr IBindCtx, pprot: ptr ptr IRunningObjectTable): HRESULT {.stdcall.} + RegisterObjectParam*: proc( + self: ptr IBindCtx, pszKey: LPOLESTR, punk: ptr IUnknown + ): HRESULT {.stdcall.} + GetObjectParam*: proc( + self: ptr IBindCtx, pszKey: LPOLESTR, ppunk: ptr ptr IUnknown + ): HRESULT {.stdcall.} + EnumObjectParam*: + proc(self: ptr IBindCtx, ppenum: ptr ptr IEnumString): HRESULT {.stdcall.} RevokeObjectParam*: proc(self: ptr IBindCtx, pszKey: LPOLESTR): HRESULT {.stdcall.} + LPBC* = ptr IBindCtx LPBINDCTX* = ptr IBindCtx LPBIND_OPTS* = ptr BIND_OPTS @@ -626,6 +923,7 @@ Password*: ptr USHORT PasswordLength*: ULONG Flags*: ULONG + COAUTHINFO* {.pure.} = object dwAuthnSvc*: DWORD dwAuthzSvc*: DWORD @@ -634,11 +932,13 @@ dwImpersonationLevel*: DWORD pAuthIdentityData*: ptr COAUTHIDENTITY dwCapabilities*: DWORD + COSERVERINFO* {.pure.} = object dwReserved1*: DWORD pwszName*: LPWSTR pAuthInfo*: ptr COAUTHINFO dwReserved2*: DWORD + BIND_OPTS2* {.pure.} = object cbStruct*: DWORD grfFlags*: DWORD @@ -648,6 +948,7 @@ dwClassContext*: DWORD locale*: LCID pServerInfo*: ptr COSERVERINFO + LPBIND_OPTS2* = ptr BIND_OPTS2 BIND_OPTS3* {.pure.} = object cbStruct*: DWORD @@ -659,16 +960,23 @@ locale*: LCID pServerInfo*: ptr COSERVERINFO hwnd*: HWND + LPBIND_OPTS3* = ptr BIND_OPTS3 LPENUMMONIKER* = ptr IEnumMoniker IRunnableObject* {.pure.} = object lpVtbl*: ptr IRunnableObjectVtbl + IRunnableObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRunningClass*: proc(self: ptr IRunnableObject, lpClsid: LPCLSID): HRESULT {.stdcall.} + GetRunningClass*: + proc(self: ptr IRunnableObject, lpClsid: LPCLSID): HRESULT {.stdcall.} Run*: proc(self: ptr IRunnableObject, pbc: LPBINDCTX): HRESULT {.stdcall.} IsRunning*: proc(self: ptr IRunnableObject): WINBOOL {.stdcall.} - LockRunning*: proc(self: ptr IRunnableObject, fLock: WINBOOL, fLastUnlockCloses: WINBOOL): HRESULT {.stdcall.} - SetContainedObject*: proc(self: ptr IRunnableObject, fContained: WINBOOL): HRESULT {.stdcall.} + LockRunning*: proc( + self: ptr IRunnableObject, fLock: WINBOOL, fLastUnlockCloses: WINBOOL + ): HRESULT {.stdcall.} + SetContainedObject*: + proc(self: ptr IRunnableObject, fContained: WINBOOL): HRESULT {.stdcall.} + LPRUNNABLEOBJECT* = ptr IRunnableObject LPRUNNINGOBJECTTABLE* = ptr IRunningObjectTable LPPERSIST* = ptr IPersist @@ -676,67 +984,173 @@ LPMONIKER* = ptr IMoniker IEnumSTATSTG* {.pure.} = object lpVtbl*: ptr IEnumSTATSTGVtbl + IEnumSTATSTGVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumSTATSTG, celt: ULONG, rgelt: ptr STATSTG, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumSTATSTG, celt: ULONG, rgelt: ptr STATSTG, pceltFetched: ptr ULONG + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumSTATSTG, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumSTATSTG): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumSTATSTG, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumSTATSTG, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.stdcall.} + LPENUMSTATSTG* = ptr IEnumSTATSTG SNB* = ptr LPOLESTR IStorage* {.pure.} = object lpVtbl*: ptr IStorageVtbl + IStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateStream*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.stdcall.} - OpenStream*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, reserved1: pointer, grfMode: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.stdcall.} - CreateStorage*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstg: ptr ptr IStorage): HRESULT {.stdcall.} - OpenStorage*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgPriority: ptr IStorage, grfMode: DWORD, snbExclude: SNB, reserved: DWORD, ppstg: ptr ptr IStorage): HRESULT {.stdcall.} - CopyTo*: proc(self: ptr IStorage, ciidExclude: DWORD, rgiidExclude: ptr IID, snbExclude: SNB, pstgDest: ptr IStorage): HRESULT {.stdcall.} - MoveElementTo*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgDest: ptr IStorage, pwcsNewName: ptr OLECHAR, grfFlags: DWORD): HRESULT {.stdcall.} + CreateStream*: proc( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + grfMode: DWORD, + reserved1: DWORD, + reserved2: DWORD, + ppstm: ptr ptr IStream, + ): HRESULT {.stdcall.} + OpenStream*: proc( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + reserved1: pointer, + grfMode: DWORD, + reserved2: DWORD, + ppstm: ptr ptr IStream, + ): HRESULT {.stdcall.} + CreateStorage*: proc( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + grfMode: DWORD, + reserved1: DWORD, + reserved2: DWORD, + ppstg: ptr ptr IStorage, + ): HRESULT {.stdcall.} + OpenStorage*: proc( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + pstgPriority: ptr IStorage, + grfMode: DWORD, + snbExclude: SNB, + reserved: DWORD, + ppstg: ptr ptr IStorage, + ): HRESULT {.stdcall.} + CopyTo*: proc( + self: ptr IStorage, + ciidExclude: DWORD, + rgiidExclude: ptr IID, + snbExclude: SNB, + pstgDest: ptr IStorage, + ): HRESULT {.stdcall.} + MoveElementTo*: proc( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + pstgDest: ptr IStorage, + pwcsNewName: ptr OLECHAR, + grfFlags: DWORD, + ): HRESULT {.stdcall.} Commit*: proc(self: ptr IStorage, grfCommitFlags: DWORD): HRESULT {.stdcall.} Revert*: proc(self: ptr IStorage): HRESULT {.stdcall.} - EnumElements*: proc(self: ptr IStorage, reserved1: DWORD, reserved2: pointer, reserved3: DWORD, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.stdcall.} - DestroyElement*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR): HRESULT {.stdcall.} - RenameElement*: proc(self: ptr IStorage, pwcsOldName: ptr OLECHAR, pwcsNewName: ptr OLECHAR): HRESULT {.stdcall.} - SetElementTimes*: proc(self: ptr IStorage, pwcsName: ptr OLECHAR, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.stdcall.} + EnumElements*: proc( + self: ptr IStorage, + reserved1: DWORD, + reserved2: pointer, + reserved3: DWORD, + ppenum: ptr ptr IEnumSTATSTG, + ): HRESULT {.stdcall.} + DestroyElement*: + proc(self: ptr IStorage, pwcsName: ptr OLECHAR): HRESULT {.stdcall.} + RenameElement*: proc( + self: ptr IStorage, pwcsOldName: ptr OLECHAR, pwcsNewName: ptr OLECHAR + ): HRESULT {.stdcall.} + SetElementTimes*: proc( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + pctime: ptr FILETIME, + patime: ptr FILETIME, + pmtime: ptr FILETIME, + ): HRESULT {.stdcall.} SetClass*: proc(self: ptr IStorage, clsid: REFCLSID): HRESULT {.stdcall.} - SetStateBits*: proc(self: ptr IStorage, grfStateBits: DWORD, grfMask: DWORD): HRESULT {.stdcall.} - Stat*: proc(self: ptr IStorage, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.stdcall.} + SetStateBits*: + proc(self: ptr IStorage, grfStateBits: DWORD, grfMask: DWORD): HRESULT {.stdcall.} + Stat*: proc(self: ptr IStorage, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {. + stdcall + .} + LPSTORAGE* = ptr IStorage RemSNB* {.pure.} = object ulCntStr*: ULONG ulCntChar*: ULONG rgString*: array[1, OLECHAR] + wireSNB* = ptr RemSNB LPCOLESTR* = ptr OLECHAR IPersistFile* {.pure.} = object lpVtbl*: ptr IPersistFileVtbl + IPersistFileVtbl* {.pure, inheritable.} = object of IPersistVtbl IsDirty*: proc(self: ptr IPersistFile): HRESULT {.stdcall.} - Load*: proc(self: ptr IPersistFile, pszFileName: LPCOLESTR, dwMode: DWORD): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistFile, pszFileName: LPCOLESTR, fRemember: WINBOOL): HRESULT {.stdcall.} - SaveCompleted*: proc(self: ptr IPersistFile, pszFileName: LPCOLESTR): HRESULT {.stdcall.} - GetCurFile*: proc(self: ptr IPersistFile, ppszFileName: ptr LPOLESTR): HRESULT {.stdcall.} + Load*: proc(self: ptr IPersistFile, pszFileName: LPCOLESTR, dwMode: DWORD): HRESULT {. + stdcall + .} + Save*: proc( + self: ptr IPersistFile, pszFileName: LPCOLESTR, fRemember: WINBOOL + ): HRESULT {.stdcall.} + SaveCompleted*: + proc(self: ptr IPersistFile, pszFileName: LPCOLESTR): HRESULT {.stdcall.} + GetCurFile*: + proc(self: ptr IPersistFile, ppszFileName: ptr LPOLESTR): HRESULT {.stdcall.} + LPPERSISTFILE* = ptr IPersistFile IPersistStorage* {.pure.} = object lpVtbl*: ptr IPersistStorageVtbl + IPersistStorageVtbl* {.pure, inheritable.} = object of IPersistVtbl IsDirty*: proc(self: ptr IPersistStorage): HRESULT {.stdcall.} InitNew*: proc(self: ptr IPersistStorage, pStg: ptr IStorage): HRESULT {.stdcall.} Load*: proc(self: ptr IPersistStorage, pStg: ptr IStorage): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistStorage, pStgSave: ptr IStorage, fSameAsLoad: WINBOOL): HRESULT {.stdcall.} - SaveCompleted*: proc(self: ptr IPersistStorage, pStgNew: ptr IStorage): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistStorage, pStgSave: ptr IStorage, fSameAsLoad: WINBOOL + ): HRESULT {.stdcall.} + SaveCompleted*: + proc(self: ptr IPersistStorage, pStgNew: ptr IStorage): HRESULT {.stdcall.} HandsOffStorage*: proc(self: ptr IPersistStorage): HRESULT {.stdcall.} + LPPERSISTSTORAGE* = ptr IPersistStorage ILockBytes* {.pure.} = object lpVtbl*: ptr ILockBytesVtbl + ILockBytesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ReadAt*: proc(self: ptr ILockBytes, ulOffset: ULARGE_INTEGER, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.stdcall.} - WriteAt*: proc(self: ptr ILockBytes, ulOffset: ULARGE_INTEGER, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.stdcall.} + ReadAt*: proc( + self: ptr ILockBytes, + ulOffset: ULARGE_INTEGER, + pv: pointer, + cb: ULONG, + pcbRead: ptr ULONG, + ): HRESULT {.stdcall.} + WriteAt*: proc( + self: ptr ILockBytes, + ulOffset: ULARGE_INTEGER, + pv: pointer, + cb: ULONG, + pcbWritten: ptr ULONG, + ): HRESULT {.stdcall.} Flush*: proc(self: ptr ILockBytes): HRESULT {.stdcall.} SetSize*: proc(self: ptr ILockBytes, cb: ULARGE_INTEGER): HRESULT {.stdcall.} - LockRegion*: proc(self: ptr ILockBytes, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.stdcall.} - UnlockRegion*: proc(self: ptr ILockBytes, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.stdcall.} - Stat*: proc(self: ptr ILockBytes, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.stdcall.} + LockRegion*: proc( + self: ptr ILockBytes, + libOffset: ULARGE_INTEGER, + cb: ULARGE_INTEGER, + dwLockType: DWORD, + ): HRESULT {.stdcall.} + UnlockRegion*: proc( + self: ptr ILockBytes, + libOffset: ULARGE_INTEGER, + cb: ULARGE_INTEGER, + dwLockType: DWORD, + ): HRESULT {.stdcall.} + Stat*: proc( + self: ptr ILockBytes, pstatstg: ptr STATSTG, grfStatFlag: DWORD + ): HRESULT {.stdcall.} + LPLOCKBYTES* = ptr ILockBytes DVTARGETDEVICE* {.pure.} = object tdSize*: DWORD @@ -745,19 +1159,30 @@ tdPortNameOffset*: WORD tdExtDevmodeOffset*: WORD tdData*: array[1, BYTE] + FORMATETC* {.pure.} = object cfFormat*: CLIPFORMAT ptd*: ptr DVTARGETDEVICE dwAspect*: DWORD lindex*: LONG tymed*: DWORD + IEnumFORMATETC* {.pure.} = object lpVtbl*: ptr IEnumFORMATETCVtbl + IEnumFORMATETCVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumFORMATETC, celt: ULONG, rgelt: ptr FORMATETC, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumFORMATETC, + celt: ULONG, + rgelt: ptr FORMATETC, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumFORMATETC, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumFORMATETC): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumFORMATETC, ppenum: ptr ptr IEnumFORMATETC): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumFORMATETC, ppenum: ptr ptr IEnumFORMATETC): HRESULT {. + stdcall + .} + LPENUMFORMATETC* = ptr IEnumFORMATETC LPCLIPFORMAT* = ptr CLIPFORMAT LPFORMATETC* = ptr FORMATETC @@ -769,46 +1194,63 @@ lpszFileName*: LPOLESTR pstm*: ptr IStream pstg*: ptr IStorage + uSTGMEDIUM* {.pure.} = object tymed*: DWORD u*: uSTGMEDIUM_u pUnkForRelease*: ptr IUnknown + STGMEDIUM* = uSTGMEDIUM IAdviseSink* {.pure.} = object lpVtbl*: ptr IAdviseSinkVtbl + IAdviseSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnDataChange*: proc(self: ptr IAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM): void {.stdcall.} - OnViewChange*: proc(self: ptr IAdviseSink, dwAspect: DWORD, lindex: LONG): void {.stdcall.} + OnDataChange*: proc( + self: ptr IAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM + ): void {.stdcall.} + OnViewChange*: + proc(self: ptr IAdviseSink, dwAspect: DWORD, lindex: LONG): void {.stdcall.} OnRename*: proc(self: ptr IAdviseSink, pmk: ptr IMoniker): void {.stdcall.} OnSave*: proc(self: ptr IAdviseSink): void {.stdcall.} OnClose*: proc(self: ptr IAdviseSink): void {.stdcall.} + STATDATA* {.pure.} = object formatetc*: FORMATETC advf*: DWORD pAdvSink*: ptr IAdviseSink dwConnection*: DWORD + IEnumSTATDATA* {.pure.} = object lpVtbl*: ptr IEnumSTATDATAVtbl + IEnumSTATDATAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumSTATDATA, celt: ULONG, rgelt: ptr STATDATA, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumSTATDATA, celt: ULONG, rgelt: ptr STATDATA, pceltFetched: ptr ULONG + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumSTATDATA, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumSTATDATA): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumSTATDATA, ppenum: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumSTATDATA, ppenum: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} + LPENUMSTATDATA* = ptr IEnumSTATDATA LPSTATDATA* = ptr STATDATA IRootStorage* {.pure.} = object lpVtbl*: ptr IRootStorageVtbl + IRootStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl SwitchToFile*: proc(self: ptr IRootStorage, pszFile: LPOLESTR): HRESULT {.stdcall.} + LPROOTSTORAGE* = ptr IRootStorage LPADVISESINK* = ptr IAdviseSink GDI_OBJECT_u* {.pure, union.} = object hBitmap*: wireHBITMAP hPalette*: wireHPALETTE hGeneric*: wireHGLOBAL + GDI_OBJECT* {.pure.} = object ObjectType*: DWORD u*: GDI_OBJECT_u + userSTGMEDIUM_STRUCT1_u* {.pure, union.} = object hMetaFilePict*: wireHMETAFILEPICT hHEnhMetaFile*: wireHENHMETAFILE @@ -817,12 +1259,15 @@ lpszFileName*: LPOLESTR pstm*: ptr BYTE_BLOB pstg*: ptr BYTE_BLOB + userSTGMEDIUM_STRUCT1* {.pure.} = object tymed*: DWORD u*: userSTGMEDIUM_STRUCT1_u + userSTGMEDIUM* {.pure.} = object struct1*: userSTGMEDIUM_STRUCT1 pUnkForRelease*: ptr IUnknown + wireSTGMEDIUM* = ptr userSTGMEDIUM wireASYNC_STGMEDIUM* = ptr userSTGMEDIUM ASYNC_STGMEDIUM* = STGMEDIUM @@ -831,79 +1276,160 @@ ContextFlags*: LONG fPassOwnership*: LONG Stgmed*: userSTGMEDIUM + wireFLAG_STGMEDIUM* = ptr userFLAG_STGMEDIUM IAdviseSink2* {.pure.} = object lpVtbl*: ptr IAdviseSink2Vtbl + IAdviseSink2Vtbl* {.pure, inheritable.} = object of IAdviseSinkVtbl OnLinkSrcChange*: proc(self: ptr IAdviseSink2, pmk: ptr IMoniker): void {.stdcall.} + LPADVISESINK2* = ptr IAdviseSink2 IDataObject* {.pure.} = object lpVtbl*: ptr IDataObjectVtbl + IDataObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetData*: proc(self: ptr IDataObject, pformatetcIn: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.stdcall.} - GetDataHere*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.stdcall.} - QueryGetData*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC): HRESULT {.stdcall.} - GetCanonicalFormatEtc*: proc(self: ptr IDataObject, pformatectIn: ptr FORMATETC, pformatetcOut: ptr FORMATETC): HRESULT {.stdcall.} - SetData*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM, fRelease: WINBOOL): HRESULT {.stdcall.} - EnumFormatEtc*: proc(self: ptr IDataObject, dwDirection: DWORD, ppenumFormatEtc: ptr ptr IEnumFORMATETC): HRESULT {.stdcall.} - DAdvise*: proc(self: ptr IDataObject, pformatetc: ptr FORMATETC, advf: DWORD, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.stdcall.} + GetData*: proc( + self: ptr IDataObject, pformatetcIn: ptr FORMATETC, pmedium: ptr STGMEDIUM + ): HRESULT {.stdcall.} + GetDataHere*: proc( + self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM + ): HRESULT {.stdcall.} + QueryGetData*: + proc(self: ptr IDataObject, pformatetc: ptr FORMATETC): HRESULT {.stdcall.} + GetCanonicalFormatEtc*: proc( + self: ptr IDataObject, pformatectIn: ptr FORMATETC, pformatetcOut: ptr FORMATETC + ): HRESULT {.stdcall.} + SetData*: proc( + self: ptr IDataObject, + pformatetc: ptr FORMATETC, + pmedium: ptr STGMEDIUM, + fRelease: WINBOOL, + ): HRESULT {.stdcall.} + EnumFormatEtc*: proc( + self: ptr IDataObject, dwDirection: DWORD, ppenumFormatEtc: ptr ptr IEnumFORMATETC + ): HRESULT {.stdcall.} + DAdvise*: proc( + self: ptr IDataObject, + pformatetc: ptr FORMATETC, + advf: DWORD, + pAdvSink: ptr IAdviseSink, + pdwConnection: ptr DWORD, + ): HRESULT {.stdcall.} DUnadvise*: proc(self: ptr IDataObject, dwConnection: DWORD): HRESULT {.stdcall.} - EnumDAdvise*: proc(self: ptr IDataObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} + EnumDAdvise*: proc( + self: ptr IDataObject, ppenumAdvise: ptr ptr IEnumSTATDATA + ): HRESULT {.stdcall.} + LPDATAOBJECT* = ptr IDataObject IDataAdviseHolder* {.pure.} = object lpVtbl*: ptr IDataAdviseHolderVtbl + IDataAdviseHolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr IDataAdviseHolder, pDataObject: ptr IDataObject, pFetc: ptr FORMATETC, advf: DWORD, pAdvise: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.stdcall.} - Unadvise*: proc(self: ptr IDataAdviseHolder, dwConnection: DWORD): HRESULT {.stdcall.} - EnumAdvise*: proc(self: ptr IDataAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} - SendOnDataChange*: proc(self: ptr IDataAdviseHolder, pDataObject: ptr IDataObject, dwReserved: DWORD, advf: DWORD): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IDataAdviseHolder, + pDataObject: ptr IDataObject, + pFetc: ptr FORMATETC, + advf: DWORD, + pAdvise: ptr IAdviseSink, + pdwConnection: ptr DWORD, + ): HRESULT {.stdcall.} + Unadvise*: + proc(self: ptr IDataAdviseHolder, dwConnection: DWORD): HRESULT {.stdcall.} + EnumAdvise*: proc( + self: ptr IDataAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA + ): HRESULT {.stdcall.} + SendOnDataChange*: proc( + self: ptr IDataAdviseHolder, + pDataObject: ptr IDataObject, + dwReserved: DWORD, + advf: DWORD, + ): HRESULT {.stdcall.} + LPDATAADVISEHOLDER* = ptr IDataAdviseHolder INTERFACEINFO* {.pure.} = object pUnk*: ptr IUnknown iid*: IID wMethod*: WORD + LPINTERFACEINFO* = ptr INTERFACEINFO IMessageFilter* {.pure.} = object lpVtbl*: ptr IMessageFilterVtbl + IMessageFilterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleInComingCall*: proc(self: ptr IMessageFilter, dwCallType: DWORD, htaskCaller: HTASK, dwTickCount: DWORD, lpInterfaceInfo: LPINTERFACEINFO): DWORD {.stdcall.} - RetryRejectedCall*: proc(self: ptr IMessageFilter, htaskCallee: HTASK, dwTickCount: DWORD, dwRejectType: DWORD): DWORD {.stdcall.} - MessagePending*: proc(self: ptr IMessageFilter, htaskCallee: HTASK, dwTickCount: DWORD, dwPendingType: DWORD): DWORD {.stdcall.} + HandleInComingCall*: proc( + self: ptr IMessageFilter, + dwCallType: DWORD, + htaskCaller: HTASK, + dwTickCount: DWORD, + lpInterfaceInfo: LPINTERFACEINFO, + ): DWORD {.stdcall.} + RetryRejectedCall*: proc( + self: ptr IMessageFilter, + htaskCallee: HTASK, + dwTickCount: DWORD, + dwRejectType: DWORD, + ): DWORD {.stdcall.} + MessagePending*: proc( + self: ptr IMessageFilter, + htaskCallee: HTASK, + dwTickCount: DWORD, + dwPendingType: DWORD, + ): DWORD {.stdcall.} + LPMESSAGEFILTER* = ptr IMessageFilter IInitializeSpy* {.pure.} = object lpVtbl*: ptr IInitializeSpyVtbl + IInitializeSpyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - PreInitialize*: proc(self: ptr IInitializeSpy, dwCoInit: DWORD, dwCurThreadAptRefs: DWORD): HRESULT {.stdcall.} - PostInitialize*: proc(self: ptr IInitializeSpy, hrCoInit: HRESULT, dwCoInit: DWORD, dwNewThreadAptRefs: DWORD): HRESULT {.stdcall.} - PreUninitialize*: proc(self: ptr IInitializeSpy, dwCurThreadAptRefs: DWORD): HRESULT {.stdcall.} - PostUninitialize*: proc(self: ptr IInitializeSpy, dwNewThreadAptRefs: DWORD): HRESULT {.stdcall.} + PreInitialize*: proc( + self: ptr IInitializeSpy, dwCoInit: DWORD, dwCurThreadAptRefs: DWORD + ): HRESULT {.stdcall.} + PostInitialize*: proc( + self: ptr IInitializeSpy, + hrCoInit: HRESULT, + dwCoInit: DWORD, + dwNewThreadAptRefs: DWORD, + ): HRESULT {.stdcall.} + PreUninitialize*: + proc(self: ptr IInitializeSpy, dwCurThreadAptRefs: DWORD): HRESULT {.stdcall.} + PostUninitialize*: + proc(self: ptr IInitializeSpy, dwNewThreadAptRefs: DWORD): HRESULT {.stdcall.} + LPINITIALIZESPY* = ptr IInitializeSpy CURRENCY* = CY SAFEARRAYBOUND* {.pure.} = object cElements*: ULONG lLbound*: LONG + LPSAFEARRAYBOUND* = ptr SAFEARRAYBOUND SAFEARR_BSTR* {.pure.} = object Size*: ULONG aBstr*: ptr wireBSTR + SAFEARR_UNKNOWN* {.pure.} = object Size*: ULONG apUnknown*: ptr ptr IUnknown + MEMBERID* = DISPID ARRAYDESC* {.pure.} = object tdescElem*: TYPEDESC cDims*: USHORT rgbounds*: array[1, SAFEARRAYBOUND] + TYPEDESC_UNION1* {.pure, union.} = object lptdesc*: ptr TYPEDESC lpadesc*: ptr ARRAYDESC hreftype*: HREFTYPE + TYPEDESC* {.pure.} = object union1*: TYPEDESC_UNION1 vt*: VARTYPE + IDLDESC* {.pure.} = object dwReserved*: ULONG_PTR wIDLFlags*: USHORT + TYPEATTR* {.pure.} = object guid*: GUID lcid*: LCID @@ -923,6 +1449,7 @@ wMinorVerNum*: WORD tdescAlias*: TYPEDESC idldescType*: IDLDESC + SAFEARRAY* {.pure.} = object cDims*: USHORT fFeatures*: USHORT @@ -930,28 +1457,62 @@ cLocks*: ULONG pvData*: PVOID rgsabound*: array[1, SAFEARRAYBOUND] + IRecordInfo* {.pure.} = object lpVtbl*: ptr IRecordInfoVtbl + IRecordInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl RecordInit*: proc(self: ptr IRecordInfo, pvNew: PVOID): HRESULT {.stdcall.} RecordClear*: proc(self: ptr IRecordInfo, pvExisting: PVOID): HRESULT {.stdcall.} - RecordCopy*: proc(self: ptr IRecordInfo, pvExisting: PVOID, pvNew: PVOID): HRESULT {.stdcall.} + RecordCopy*: + proc(self: ptr IRecordInfo, pvExisting: PVOID, pvNew: PVOID): HRESULT {.stdcall.} GetGuid*: proc(self: ptr IRecordInfo, pguid: ptr GUID): HRESULT {.stdcall.} GetName*: proc(self: ptr IRecordInfo, pbstrName: ptr BSTR): HRESULT {.stdcall.} GetSize*: proc(self: ptr IRecordInfo, pcbSize: ptr ULONG): HRESULT {.stdcall.} - GetTypeInfo*: proc(self: ptr IRecordInfo, ppTypeInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.} - GetField*: proc(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.stdcall.} - GetFieldNoCopy*: proc(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT, ppvDataCArray: ptr PVOID): HRESULT {.stdcall.} - PutField*: proc(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.stdcall.} - PutFieldNoCopy*: proc(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.stdcall.} - GetFieldNames*: proc(self: ptr IRecordInfo, pcNames: ptr ULONG, rgBstrNames: ptr BSTR): HRESULT {.stdcall.} - IsMatchingType*: proc(self: ptr IRecordInfo, pRecordInfo: ptr IRecordInfo): WINBOOL {.stdcall.} + GetTypeInfo*: + proc(self: ptr IRecordInfo, ppTypeInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.} + GetField*: proc( + self: ptr IRecordInfo, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, + ): HRESULT {.stdcall.} + GetFieldNoCopy*: proc( + self: ptr IRecordInfo, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, + ppvDataCArray: ptr PVOID, + ): HRESULT {.stdcall.} + PutField*: proc( + self: ptr IRecordInfo, + wFlags: ULONG, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, + ): HRESULT {.stdcall.} + PutFieldNoCopy*: proc( + self: ptr IRecordInfo, + wFlags: ULONG, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, + ): HRESULT {.stdcall.} + GetFieldNames*: proc( + self: ptr IRecordInfo, pcNames: ptr ULONG, rgBstrNames: ptr BSTR + ): HRESULT {.stdcall.} + IsMatchingType*: + proc(self: ptr IRecordInfo, pRecordInfo: ptr IRecordInfo): WINBOOL {.stdcall.} RecordCreate*: proc(self: ptr IRecordInfo): PVOID {.stdcall.} - RecordCreateCopy*: proc(self: ptr IRecordInfo, pvSource: PVOID, ppvDest: ptr PVOID): HRESULT {.stdcall.} + RecordCreateCopy*: proc( + self: ptr IRecordInfo, pvSource: PVOID, ppvDest: ptr PVOID + ): HRESULT {.stdcall.} RecordDestroy*: proc(self: ptr IRecordInfo, pvRecord: PVOID): HRESULT {.stdcall.} + VARIANT_UNION1_STRUCT1_UNION1_STRUCT1* {.pure.} = object pvRecord*: PVOID pRecInfo*: ptr IRecordInfo + VARIANT_UNION1_STRUCT1_UNION1* {.pure, union.} = object llVal*: LONGLONG lVal*: LONG @@ -997,31 +1558,39 @@ pintVal*: ptr INT puintVal*: ptr UINT struct1*: VARIANT_UNION1_STRUCT1_UNION1_STRUCT1 + VARIANT_UNION1_STRUCT1* {.pure.} = object vt*: VARTYPE wReserved1*: WORD wReserved2*: WORD wReserved3*: WORD union1*: VARIANT_UNION1_STRUCT1_UNION1 + VARIANT_UNION1* {.pure, union.} = object struct1*: VARIANT_UNION1_STRUCT1 decVal*: DECIMAL + VARIANT* {.pure.} = object union1*: VARIANT_UNION1 + VARIANTARG* = VARIANT PARAMDESCEX* {.pure.} = object cBytes*: ULONG varDefaultValue*: VARIANTARG + LPPARAMDESCEX* = ptr PARAMDESCEX PARAMDESC* {.pure.} = object pparamdescex*: LPPARAMDESCEX wParamFlags*: USHORT + ELEMDESC_UNION1* {.pure, union.} = object idldesc*: IDLDESC paramdesc*: PARAMDESC + ELEMDESC* {.pure.} = object tdesc*: TYPEDESC union1*: ELEMDESC_UNION1 + FUNCDESC* {.pure.} = object memid*: MEMBERID lprgscode*: ptr SCODE @@ -1035,9 +1604,11 @@ cScodes*: SHORT elemdescFunc*: ELEMDESC wFuncFlags*: WORD + VARDESC_UNION1* {.pure, union.} = object oInst*: ULONG lpvarValue*: ptr VARIANT + VARDESC* {.pure.} = object memid*: MEMBERID lpstrSchema*: LPOLESTR @@ -1045,20 +1616,39 @@ elemdescVar*: ELEMDESC wVarFlags*: WORD varkind*: VARKIND + BINDPTR* {.pure, union.} = object lpfuncdesc*: ptr FUNCDESC lpvardesc*: ptr VARDESC lptcomp*: ptr ITypeComp + ITypeComp* {.pure.} = object lpVtbl*: ptr ITypeCompVtbl + ITypeCompVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Bind*: proc(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, wFlags: WORD, ppTInfo: ptr ptr ITypeInfo, pDescKind: ptr DESCKIND, pBindPtr: ptr BINDPTR): HRESULT {.stdcall.} - BindType*: proc(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.} + Bind*: proc( + self: ptr ITypeComp, + szName: LPOLESTR, + lHashVal: ULONG, + wFlags: WORD, + ppTInfo: ptr ptr ITypeInfo, + pDescKind: ptr DESCKIND, + pBindPtr: ptr BINDPTR, + ): HRESULT {.stdcall.} + BindType*: proc( + self: ptr ITypeComp, + szName: LPOLESTR, + lHashVal: ULONG, + ppTInfo: ptr ptr ITypeInfo, + ppTComp: ptr ptr ITypeComp, + ): HRESULT {.stdcall.} + DISPPARAMS* {.pure.} = object rgvarg*: ptr VARIANTARG rgdispidNamedArgs*: ptr DISPID cArgs*: UINT cNamedArgs*: UINT + EXCEPINFO* {.pure.} = object wCode*: WORD wReserved*: WORD @@ -1069,6 +1659,7 @@ pvReserved*: PVOID pfnDeferredFillIn*: proc(P1: ptr EXCEPINFO): HRESULT {.stdcall.} scode*: SCODE + TLIBATTR* {.pure.} = object guid*: GUID lcid*: LCID @@ -1076,56 +1667,161 @@ wMajorVerNum*: WORD wMinorVerNum*: WORD wLibFlags*: WORD + ITypeLib* {.pure.} = object lpVtbl*: ptr ITypeLibVtbl + ITypeLibVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetTypeInfoCount*: proc(self: ptr ITypeLib): UINT {.stdcall.} - GetTypeInfo*: proc(self: ptr ITypeLib, index: UINT, ppTInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.} - GetTypeInfoType*: proc(self: ptr ITypeLib, index: UINT, pTKind: ptr TYPEKIND): HRESULT {.stdcall.} - GetTypeInfoOfGuid*: proc(self: ptr ITypeLib, guid: REFGUID, ppTinfo: ptr ptr ITypeInfo): HRESULT {.stdcall.} - GetLibAttr*: proc(self: ptr ITypeLib, ppTLibAttr: ptr ptr TLIBATTR): HRESULT {.stdcall.} - GetTypeComp*: proc(self: ptr ITypeLib, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.} - GetDocumentation*: proc(self: ptr ITypeLib, index: INT, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.stdcall.} - IsName*: proc(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, pfName: ptr WINBOOL): HRESULT {.stdcall.} - FindName*: proc(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, rgMemId: ptr MEMBERID, pcFound: ptr USHORT): HRESULT {.stdcall.} - ReleaseTLibAttr*: proc(self: ptr ITypeLib, pTLibAttr: ptr TLIBATTR): void {.stdcall.} + GetTypeInfo*: proc( + self: ptr ITypeLib, index: UINT, ppTInfo: ptr ptr ITypeInfo + ): HRESULT {.stdcall.} + GetTypeInfoType*: + proc(self: ptr ITypeLib, index: UINT, pTKind: ptr TYPEKIND): HRESULT {.stdcall.} + GetTypeInfoOfGuid*: proc( + self: ptr ITypeLib, guid: REFGUID, ppTinfo: ptr ptr ITypeInfo + ): HRESULT {.stdcall.} + GetLibAttr*: + proc(self: ptr ITypeLib, ppTLibAttr: ptr ptr TLIBATTR): HRESULT {.stdcall.} + GetTypeComp*: + proc(self: ptr ITypeLib, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.} + GetDocumentation*: proc( + self: ptr ITypeLib, + index: INT, + pBstrName: ptr BSTR, + pBstrDocString: ptr BSTR, + pdwHelpContext: ptr DWORD, + pBstrHelpFile: ptr BSTR, + ): HRESULT {.stdcall.} + IsName*: proc( + self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, pfName: ptr WINBOOL + ): HRESULT {.stdcall.} + FindName*: proc( + self: ptr ITypeLib, + szNameBuf: LPOLESTR, + lHashVal: ULONG, + ppTInfo: ptr ptr ITypeInfo, + rgMemId: ptr MEMBERID, + pcFound: ptr USHORT, + ): HRESULT {.stdcall.} + ReleaseTLibAttr*: + proc(self: ptr ITypeLib, pTLibAttr: ptr TLIBATTR): void {.stdcall.} + ITypeInfo* {.pure.} = object lpVtbl*: ptr ITypeInfoVtbl + ITypeInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetTypeAttr*: proc(self: ptr ITypeInfo, ppTypeAttr: ptr ptr TYPEATTR): HRESULT {.stdcall.} - GetTypeComp*: proc(self: ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.} - GetFuncDesc*: proc(self: ptr ITypeInfo, index: UINT, ppFuncDesc: ptr ptr FUNCDESC): HRESULT {.stdcall.} - GetVarDesc*: proc(self: ptr ITypeInfo, index: UINT, ppVarDesc: ptr ptr VARDESC): HRESULT {.stdcall.} - GetNames*: proc(self: ptr ITypeInfo, memid: MEMBERID, rgBstrNames: ptr BSTR, cMaxNames: UINT, pcNames: ptr UINT): HRESULT {.stdcall.} - GetRefTypeOfImplType*: proc(self: ptr ITypeInfo, index: UINT, pRefType: ptr HREFTYPE): HRESULT {.stdcall.} - GetImplTypeFlags*: proc(self: ptr ITypeInfo, index: UINT, pImplTypeFlags: ptr INT): HRESULT {.stdcall.} - GetIDsOfNames*: proc(self: ptr ITypeInfo, rgszNames: ptr LPOLESTR, cNames: UINT, pMemId: ptr MEMBERID): HRESULT {.stdcall.} - Invoke*: proc(self: ptr ITypeInfo, pvInstance: PVOID, memid: MEMBERID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.stdcall.} - GetDocumentation*: proc(self: ptr ITypeInfo, memid: MEMBERID, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.stdcall.} - GetDllEntry*: proc(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, pBstrDllName: ptr BSTR, pBstrName: ptr BSTR, pwOrdinal: ptr WORD): HRESULT {.stdcall.} - GetRefTypeInfo*: proc(self: ptr ITypeInfo, hRefType: HREFTYPE, ppTInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.} - AddressOfMember*: proc(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, ppv: ptr PVOID): HRESULT {.stdcall.} - CreateInstance*: proc(self: ptr ITypeInfo, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObj: ptr PVOID): HRESULT {.stdcall.} - GetMops*: proc(self: ptr ITypeInfo, memid: MEMBERID, pBstrMops: ptr BSTR): HRESULT {.stdcall.} - GetContainingTypeLib*: proc(self: ptr ITypeInfo, ppTLib: ptr ptr ITypeLib, pIndex: ptr UINT): HRESULT {.stdcall.} - ReleaseTypeAttr*: proc(self: ptr ITypeInfo, pTypeAttr: ptr TYPEATTR): void {.stdcall.} - ReleaseFuncDesc*: proc(self: ptr ITypeInfo, pFuncDesc: ptr FUNCDESC): void {.stdcall.} + GetTypeAttr*: + proc(self: ptr ITypeInfo, ppTypeAttr: ptr ptr TYPEATTR): HRESULT {.stdcall.} + GetTypeComp*: + proc(self: ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.stdcall.} + GetFuncDesc*: proc( + self: ptr ITypeInfo, index: UINT, ppFuncDesc: ptr ptr FUNCDESC + ): HRESULT {.stdcall.} + GetVarDesc*: proc( + self: ptr ITypeInfo, index: UINT, ppVarDesc: ptr ptr VARDESC + ): HRESULT {.stdcall.} + GetNames*: proc( + self: ptr ITypeInfo, + memid: MEMBERID, + rgBstrNames: ptr BSTR, + cMaxNames: UINT, + pcNames: ptr UINT, + ): HRESULT {.stdcall.} + GetRefTypeOfImplType*: proc( + self: ptr ITypeInfo, index: UINT, pRefType: ptr HREFTYPE + ): HRESULT {.stdcall.} + GetImplTypeFlags*: proc( + self: ptr ITypeInfo, index: UINT, pImplTypeFlags: ptr INT + ): HRESULT {.stdcall.} + GetIDsOfNames*: proc( + self: ptr ITypeInfo, rgszNames: ptr LPOLESTR, cNames: UINT, pMemId: ptr MEMBERID + ): HRESULT {.stdcall.} + Invoke*: proc( + self: ptr ITypeInfo, + pvInstance: PVOID, + memid: MEMBERID, + wFlags: WORD, + pDispParams: ptr DISPPARAMS, + pVarResult: ptr VARIANT, + pExcepInfo: ptr EXCEPINFO, + puArgErr: ptr UINT, + ): HRESULT {.stdcall.} + GetDocumentation*: proc( + self: ptr ITypeInfo, + memid: MEMBERID, + pBstrName: ptr BSTR, + pBstrDocString: ptr BSTR, + pdwHelpContext: ptr DWORD, + pBstrHelpFile: ptr BSTR, + ): HRESULT {.stdcall.} + GetDllEntry*: proc( + self: ptr ITypeInfo, + memid: MEMBERID, + invKind: INVOKEKIND, + pBstrDllName: ptr BSTR, + pBstrName: ptr BSTR, + pwOrdinal: ptr WORD, + ): HRESULT {.stdcall.} + GetRefTypeInfo*: proc( + self: ptr ITypeInfo, hRefType: HREFTYPE, ppTInfo: ptr ptr ITypeInfo + ): HRESULT {.stdcall.} + AddressOfMember*: proc( + self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, ppv: ptr PVOID + ): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr ITypeInfo, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObj: ptr PVOID + ): HRESULT {.stdcall.} + GetMops*: proc(self: ptr ITypeInfo, memid: MEMBERID, pBstrMops: ptr BSTR): HRESULT {. + stdcall + .} + GetContainingTypeLib*: proc( + self: ptr ITypeInfo, ppTLib: ptr ptr ITypeLib, pIndex: ptr UINT + ): HRESULT {.stdcall.} + ReleaseTypeAttr*: + proc(self: ptr ITypeInfo, pTypeAttr: ptr TYPEATTR): void {.stdcall.} + ReleaseFuncDesc*: + proc(self: ptr ITypeInfo, pFuncDesc: ptr FUNCDESC): void {.stdcall.} ReleaseVarDesc*: proc(self: ptr ITypeInfo, pVarDesc: ptr VARDESC): void {.stdcall.} + IDispatch* {.pure.} = object lpVtbl*: ptr IDispatchVtbl + IDispatchVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetTypeInfoCount*: proc(self: ptr IDispatch, pctinfo: ptr UINT): HRESULT {.stdcall.} - GetTypeInfo*: proc(self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr ptr ITypeInfo): HRESULT {.stdcall.} - GetIDsOfNames*: proc(self: ptr IDispatch, riid: REFIID, rgszNames: ptr LPOLESTR, cNames: UINT, lcid: LCID, rgDispId: ptr DISPID): HRESULT {.stdcall.} - Invoke*: proc(self: ptr IDispatch, dispIdMember: DISPID, riid: REFIID, lcid: LCID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.stdcall.} + GetTypeInfo*: proc( + self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr ptr ITypeInfo + ): HRESULT {.stdcall.} + GetIDsOfNames*: proc( + self: ptr IDispatch, + riid: REFIID, + rgszNames: ptr LPOLESTR, + cNames: UINT, + lcid: LCID, + rgDispId: ptr DISPID, + ): HRESULT {.stdcall.} + Invoke*: proc( + self: ptr IDispatch, + dispIdMember: DISPID, + riid: REFIID, + lcid: LCID, + wFlags: WORD, + pDispParams: ptr DISPPARAMS, + pVarResult: ptr VARIANT, + pExcepInfo: ptr EXCEPINFO, + puArgErr: ptr UINT, + ): HRESULT {.stdcall.} + SAFEARR_DISPATCH* {.pure.} = object Size*: ULONG apDispatch*: ptr ptr IDispatch + wireBRECORD* {.pure.} = ref object fFlags*: ULONG clSize*: ULONG pRecInfo*: ptr IRecordInfo pRecord*: ptr uint8 + wireVARIANT_UNION1* {.pure, union.} = object llVal*: LONGLONG lVal*: LONG @@ -1171,6 +1867,7 @@ pullVal*: ptr ULONGLONG pintVal*: ptr INT puintVal*: ptr UINT + wireVARIANT* {.pure.} = ref object clSize*: DWORD rpcReserved*: DWORD @@ -1179,28 +1876,36 @@ wReserved2*: USHORT wReserved3*: USHORT union1*: wireVARIANT_UNION1 + SAFEARR_VARIANT* {.pure.} = object Size*: ULONG aVariant*: ptr wireVARIANT + SAFEARR_BRECORD* {.pure.} = object Size*: ULONG aRecord*: ptr wireBRECORD + SAFEARR_HAVEIID* {.pure.} = object Size*: ULONG apUnknown*: ptr ptr IUnknown iid*: IID + BYTE_SIZEDARR* {.pure.} = object clSize*: ULONG pData*: ptr uint8 + WORD_SIZEDARR* {.pure.} = object clSize*: ULONG pData*: ptr uint16 + DWORD_SIZEDARR* {.pure.} = object clSize*: ULONG pData*: ptr ULONG + HYPER_SIZEDARR* {.pure.} = object clSize*: ULONG pData*: ptr hyper + SAFEARRAYUNION_u* {.pure, union.} = object BstrStr*: SAFEARR_BSTR UnknownStr*: SAFEARR_UNKNOWN @@ -1212,9 +1917,11 @@ WordStr*: WORD_SIZEDARR LongStr*: DWORD_SIZEDARR HyperStr*: HYPER_SIZEDARR + SAFEARRAYUNION* {.pure.} = object sfType*: ULONG u*: SAFEARRAYUNION_u + wireSAFEARRAY* {.pure.} = ref object cDims*: USHORT fFeatures*: USHORT @@ -1222,6 +1929,7 @@ cLocks*: ULONG uArrayStructs*: SAFEARRAYUNION rgsabound*: array[1, SAFEARRAYBOUND] + wirePSAFEARRAY* = ptr wireSAFEARRAY LPSAFEARRAY* = ptr SAFEARRAY LPVARIANT* = ptr VARIANT @@ -1237,163 +1945,341 @@ CUSTDATAITEM* {.pure.} = object guid*: GUID varValue*: VARIANTARG + LPCUSTDATAITEM* = ptr CUSTDATAITEM CUSTDATA* {.pure.} = object cCustData*: DWORD prgCustData*: LPCUSTDATAITEM + LPCUSTDATA* = ptr CUSTDATA ICreateTypeInfo* {.pure.} = object lpVtbl*: ptr ICreateTypeInfoVtbl + ICreateTypeInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetGuid*: proc(self: ptr ICreateTypeInfo, guid: REFGUID): HRESULT {.stdcall.} - SetTypeFlags*: proc(self: ptr ICreateTypeInfo, uTypeFlags: UINT): HRESULT {.stdcall.} - SetDocString*: proc(self: ptr ICreateTypeInfo, pStrDoc: LPOLESTR): HRESULT {.stdcall.} - SetHelpContext*: proc(self: ptr ICreateTypeInfo, dwHelpContext: DWORD): HRESULT {.stdcall.} - SetVersion*: proc(self: ptr ICreateTypeInfo, wMajorVerNum: WORD, wMinorVerNum: WORD): HRESULT {.stdcall.} - AddRefTypeInfo*: proc(self: ptr ICreateTypeInfo, pTInfo: ptr ITypeInfo, phRefType: ptr HREFTYPE): HRESULT {.stdcall.} - AddFuncDesc*: proc(self: ptr ICreateTypeInfo, index: UINT, pFuncDesc: ptr FUNCDESC): HRESULT {.stdcall.} - AddImplType*: proc(self: ptr ICreateTypeInfo, index: UINT, hRefType: HREFTYPE): HRESULT {.stdcall.} - SetImplTypeFlags*: proc(self: ptr ICreateTypeInfo, index: UINT, implTypeFlags: INT): HRESULT {.stdcall.} - SetAlignment*: proc(self: ptr ICreateTypeInfo, cbAlignment: WORD): HRESULT {.stdcall.} - SetSchema*: proc(self: ptr ICreateTypeInfo, pStrSchema: LPOLESTR): HRESULT {.stdcall.} - AddVarDesc*: proc(self: ptr ICreateTypeInfo, index: UINT, pVarDesc: ptr VARDESC): HRESULT {.stdcall.} - SetFuncAndParamNames*: proc(self: ptr ICreateTypeInfo, index: UINT, rgszNames: ptr LPOLESTR, cNames: UINT): HRESULT {.stdcall.} - SetVarName*: proc(self: ptr ICreateTypeInfo, index: UINT, szName: LPOLESTR): HRESULT {.stdcall.} - SetTypeDescAlias*: proc(self: ptr ICreateTypeInfo, pTDescAlias: ptr TYPEDESC): HRESULT {.stdcall.} - DefineFuncAsDllEntry*: proc(self: ptr ICreateTypeInfo, index: UINT, szDllName: LPOLESTR, szProcName: LPOLESTR): HRESULT {.stdcall.} - SetFuncDocString*: proc(self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR): HRESULT {.stdcall.} - SetVarDocString*: proc(self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR): HRESULT {.stdcall.} - SetFuncHelpContext*: proc(self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD): HRESULT {.stdcall.} - SetVarHelpContext*: proc(self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD): HRESULT {.stdcall.} - SetMops*: proc(self: ptr ICreateTypeInfo, index: UINT, bstrMops: BSTR): HRESULT {.stdcall.} - SetTypeIdldesc*: proc(self: ptr ICreateTypeInfo, pIdlDesc: ptr IDLDESC): HRESULT {.stdcall.} + SetTypeFlags*: + proc(self: ptr ICreateTypeInfo, uTypeFlags: UINT): HRESULT {.stdcall.} + SetDocString*: + proc(self: ptr ICreateTypeInfo, pStrDoc: LPOLESTR): HRESULT {.stdcall.} + SetHelpContext*: + proc(self: ptr ICreateTypeInfo, dwHelpContext: DWORD): HRESULT {.stdcall.} + SetVersion*: proc( + self: ptr ICreateTypeInfo, wMajorVerNum: WORD, wMinorVerNum: WORD + ): HRESULT {.stdcall.} + AddRefTypeInfo*: proc( + self: ptr ICreateTypeInfo, pTInfo: ptr ITypeInfo, phRefType: ptr HREFTYPE + ): HRESULT {.stdcall.} + AddFuncDesc*: proc( + self: ptr ICreateTypeInfo, index: UINT, pFuncDesc: ptr FUNCDESC + ): HRESULT {.stdcall.} + AddImplType*: proc( + self: ptr ICreateTypeInfo, index: UINT, hRefType: HREFTYPE + ): HRESULT {.stdcall.} + SetImplTypeFlags*: proc( + self: ptr ICreateTypeInfo, index: UINT, implTypeFlags: INT + ): HRESULT {.stdcall.} + SetAlignment*: + proc(self: ptr ICreateTypeInfo, cbAlignment: WORD): HRESULT {.stdcall.} + SetSchema*: + proc(self: ptr ICreateTypeInfo, pStrSchema: LPOLESTR): HRESULT {.stdcall.} + AddVarDesc*: proc( + self: ptr ICreateTypeInfo, index: UINT, pVarDesc: ptr VARDESC + ): HRESULT {.stdcall.} + SetFuncAndParamNames*: proc( + self: ptr ICreateTypeInfo, index: UINT, rgszNames: ptr LPOLESTR, cNames: UINT + ): HRESULT {.stdcall.} + SetVarName*: proc(self: ptr ICreateTypeInfo, index: UINT, szName: LPOLESTR): HRESULT {. + stdcall + .} + SetTypeDescAlias*: + proc(self: ptr ICreateTypeInfo, pTDescAlias: ptr TYPEDESC): HRESULT {.stdcall.} + DefineFuncAsDllEntry*: proc( + self: ptr ICreateTypeInfo, index: UINT, szDllName: LPOLESTR, szProcName: LPOLESTR + ): HRESULT {.stdcall.} + SetFuncDocString*: proc( + self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR + ): HRESULT {.stdcall.} + SetVarDocString*: proc( + self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR + ): HRESULT {.stdcall.} + SetFuncHelpContext*: proc( + self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD + ): HRESULT {.stdcall.} + SetVarHelpContext*: proc( + self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD + ): HRESULT {.stdcall.} + SetMops*: + proc(self: ptr ICreateTypeInfo, index: UINT, bstrMops: BSTR): HRESULT {.stdcall.} + SetTypeIdldesc*: + proc(self: ptr ICreateTypeInfo, pIdlDesc: ptr IDLDESC): HRESULT {.stdcall.} LayOut*: proc(self: ptr ICreateTypeInfo): HRESULT {.stdcall.} + LPCREATETYPEINFO* = ptr ICreateTypeInfo ICreateTypeInfo2* {.pure.} = object lpVtbl*: ptr ICreateTypeInfo2Vtbl + ICreateTypeInfo2Vtbl* {.pure, inheritable.} = object of ICreateTypeInfoVtbl DeleteFuncDesc*: proc(self: ptr ICreateTypeInfo2, index: UINT): HRESULT {.stdcall.} - DeleteFuncDescByMemId*: proc(self: ptr ICreateTypeInfo2, memid: MEMBERID, invKind: INVOKEKIND): HRESULT {.stdcall.} + DeleteFuncDescByMemId*: proc( + self: ptr ICreateTypeInfo2, memid: MEMBERID, invKind: INVOKEKIND + ): HRESULT {.stdcall.} DeleteVarDesc*: proc(self: ptr ICreateTypeInfo2, index: UINT): HRESULT {.stdcall.} - DeleteVarDescByMemId*: proc(self: ptr ICreateTypeInfo2, memid: MEMBERID): HRESULT {.stdcall.} + DeleteVarDescByMemId*: + proc(self: ptr ICreateTypeInfo2, memid: MEMBERID): HRESULT {.stdcall.} DeleteImplType*: proc(self: ptr ICreateTypeInfo2, index: UINT): HRESULT {.stdcall.} - SetCustData*: proc(self: ptr ICreateTypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - SetFuncCustData*: proc(self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - SetParamCustData*: proc(self: ptr ICreateTypeInfo2, indexFunc: UINT, indexParam: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - SetVarCustData*: proc(self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - SetImplTypeCustData*: proc(self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - SetHelpStringContext*: proc(self: ptr ICreateTypeInfo2, dwHelpStringContext: ULONG): HRESULT {.stdcall.} - SetFuncHelpStringContext*: proc(self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG): HRESULT {.stdcall.} - SetVarHelpStringContext*: proc(self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG): HRESULT {.stdcall.} + SetCustData*: proc( + self: ptr ICreateTypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + SetFuncCustData*: proc( + self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + SetParamCustData*: proc( + self: ptr ICreateTypeInfo2, + indexFunc: UINT, + indexParam: UINT, + guid: REFGUID, + pVarVal: ptr VARIANT, + ): HRESULT {.stdcall.} + SetVarCustData*: proc( + self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + SetImplTypeCustData*: proc( + self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + SetHelpStringContext*: + proc(self: ptr ICreateTypeInfo2, dwHelpStringContext: ULONG): HRESULT {.stdcall.} + SetFuncHelpStringContext*: proc( + self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG + ): HRESULT {.stdcall.} + SetVarHelpStringContext*: proc( + self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG + ): HRESULT {.stdcall.} Invalidate*: proc(self: ptr ICreateTypeInfo2): HRESULT {.stdcall.} SetName*: proc(self: ptr ICreateTypeInfo2, szName: LPOLESTR): HRESULT {.stdcall.} + LPCREATETYPEINFO2* = ptr ICreateTypeInfo2 ICreateTypeLib* {.pure.} = object lpVtbl*: ptr ICreateTypeLibVtbl + ICreateTypeLibVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateTypeInfo*: proc(self: ptr ICreateTypeLib, szName: LPOLESTR, tkind: TYPEKIND, ppCTInfo: ptr ptr ICreateTypeInfo): HRESULT {.stdcall.} + CreateTypeInfo*: proc( + self: ptr ICreateTypeLib, + szName: LPOLESTR, + tkind: TYPEKIND, + ppCTInfo: ptr ptr ICreateTypeInfo, + ): HRESULT {.stdcall.} SetName*: proc(self: ptr ICreateTypeLib, szName: LPOLESTR): HRESULT {.stdcall.} - SetVersion*: proc(self: ptr ICreateTypeLib, wMajorVerNum: WORD, wMinorVerNum: WORD): HRESULT {.stdcall.} + SetVersion*: proc( + self: ptr ICreateTypeLib, wMajorVerNum: WORD, wMinorVerNum: WORD + ): HRESULT {.stdcall.} SetGuid*: proc(self: ptr ICreateTypeLib, guid: REFGUID): HRESULT {.stdcall.} SetDocString*: proc(self: ptr ICreateTypeLib, szDoc: LPOLESTR): HRESULT {.stdcall.} - SetHelpFileName*: proc(self: ptr ICreateTypeLib, szHelpFileName: LPOLESTR): HRESULT {.stdcall.} - SetHelpContext*: proc(self: ptr ICreateTypeLib, dwHelpContext: DWORD): HRESULT {.stdcall.} + SetHelpFileName*: + proc(self: ptr ICreateTypeLib, szHelpFileName: LPOLESTR): HRESULT {.stdcall.} + SetHelpContext*: + proc(self: ptr ICreateTypeLib, dwHelpContext: DWORD): HRESULT {.stdcall.} SetLcid*: proc(self: ptr ICreateTypeLib, lcid: LCID): HRESULT {.stdcall.} SetLibFlags*: proc(self: ptr ICreateTypeLib, uLibFlags: UINT): HRESULT {.stdcall.} SaveAllChanges*: proc(self: ptr ICreateTypeLib): HRESULT {.stdcall.} + LPCREATETYPELIB* = ptr ICreateTypeLib ICreateTypeLib2* {.pure.} = object lpVtbl*: ptr ICreateTypeLib2Vtbl + ICreateTypeLib2Vtbl* {.pure, inheritable.} = object of ICreateTypeLibVtbl - DeleteTypeInfo*: proc(self: ptr ICreateTypeLib2, szName: LPOLESTR): HRESULT {.stdcall.} - SetCustData*: proc(self: ptr ICreateTypeLib2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - SetHelpStringContext*: proc(self: ptr ICreateTypeLib2, dwHelpStringContext: ULONG): HRESULT {.stdcall.} - SetHelpStringDll*: proc(self: ptr ICreateTypeLib2, szFileName: LPOLESTR): HRESULT {.stdcall.} + DeleteTypeInfo*: + proc(self: ptr ICreateTypeLib2, szName: LPOLESTR): HRESULT {.stdcall.} + SetCustData*: proc( + self: ptr ICreateTypeLib2, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + SetHelpStringContext*: + proc(self: ptr ICreateTypeLib2, dwHelpStringContext: ULONG): HRESULT {.stdcall.} + SetHelpStringDll*: + proc(self: ptr ICreateTypeLib2, szFileName: LPOLESTR): HRESULT {.stdcall.} + LPCREATETYPELIB2* = ptr ICreateTypeLib2 LPDISPATCH* = ptr IDispatch IEnumVARIANT* {.pure.} = object lpVtbl*: ptr IEnumVARIANTVtbl + IEnumVARIANTVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumVARIANT, celt: ULONG, rgVar: ptr VARIANT, pCeltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumVARIANT, celt: ULONG, rgVar: ptr VARIANT, pCeltFetched: ptr ULONG + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumVARIANT, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumVARIANT): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumVARIANT, ppEnum: ptr ptr IEnumVARIANT): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumVARIANT, ppEnum: ptr ptr IEnumVARIANT): HRESULT {.stdcall.} + LPENUMVARIANT* = ptr IEnumVARIANT LPTYPECOMP* = ptr ITypeComp LPTYPEINFO* = ptr ITypeInfo ITypeInfo2* {.pure.} = object lpVtbl*: ptr ITypeInfo2Vtbl + ITypeInfo2Vtbl* {.pure, inheritable.} = object of ITypeInfoVtbl - GetTypeKind*: proc(self: ptr ITypeInfo2, pTypeKind: ptr TYPEKIND): HRESULT {.stdcall.} - GetTypeFlags*: proc(self: ptr ITypeInfo2, pTypeFlags: ptr ULONG): HRESULT {.stdcall.} - GetFuncIndexOfMemId*: proc(self: ptr ITypeInfo2, memid: MEMBERID, invKind: INVOKEKIND, pFuncIndex: ptr UINT): HRESULT {.stdcall.} - GetVarIndexOfMemId*: proc(self: ptr ITypeInfo2, memid: MEMBERID, pVarIndex: ptr UINT): HRESULT {.stdcall.} - GetCustData*: proc(self: ptr ITypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - GetFuncCustData*: proc(self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - GetParamCustData*: proc(self: ptr ITypeInfo2, indexFunc: UINT, indexParam: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - GetVarCustData*: proc(self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - GetImplTypeCustData*: proc(self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - GetDocumentation2*: proc(self: ptr ITypeInfo2, memid: MEMBERID, lcid: LCID, pbstrHelpString: ptr BSTR, pdwHelpStringContext: ptr DWORD, pbstrHelpStringDll: ptr BSTR): HRESULT {.stdcall.} - GetAllCustData*: proc(self: ptr ITypeInfo2, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} - GetAllFuncCustData*: proc(self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} - GetAllParamCustData*: proc(self: ptr ITypeInfo2, indexFunc: UINT, indexParam: UINT, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} - GetAllVarCustData*: proc(self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} - GetAllImplTypeCustData*: proc(self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} + GetTypeKind*: + proc(self: ptr ITypeInfo2, pTypeKind: ptr TYPEKIND): HRESULT {.stdcall.} + GetTypeFlags*: + proc(self: ptr ITypeInfo2, pTypeFlags: ptr ULONG): HRESULT {.stdcall.} + GetFuncIndexOfMemId*: proc( + self: ptr ITypeInfo2, memid: MEMBERID, invKind: INVOKEKIND, pFuncIndex: ptr UINT + ): HRESULT {.stdcall.} + GetVarIndexOfMemId*: proc( + self: ptr ITypeInfo2, memid: MEMBERID, pVarIndex: ptr UINT + ): HRESULT {.stdcall.} + GetCustData*: proc( + self: ptr ITypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetFuncCustData*: proc( + self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetParamCustData*: proc( + self: ptr ITypeInfo2, + indexFunc: UINT, + indexParam: UINT, + guid: REFGUID, + pVarVal: ptr VARIANT, + ): HRESULT {.stdcall.} + GetVarCustData*: proc( + self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetImplTypeCustData*: proc( + self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetDocumentation2*: proc( + self: ptr ITypeInfo2, + memid: MEMBERID, + lcid: LCID, + pbstrHelpString: ptr BSTR, + pdwHelpStringContext: ptr DWORD, + pbstrHelpStringDll: ptr BSTR, + ): HRESULT {.stdcall.} + GetAllCustData*: + proc(self: ptr ITypeInfo2, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} + GetAllFuncCustData*: proc( + self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA + ): HRESULT {.stdcall.} + GetAllParamCustData*: proc( + self: ptr ITypeInfo2, indexFunc: UINT, indexParam: UINT, pCustData: ptr CUSTDATA + ): HRESULT {.stdcall.} + GetAllVarCustData*: proc( + self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA + ): HRESULT {.stdcall.} + GetAllImplTypeCustData*: proc( + self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA + ): HRESULT {.stdcall.} + LPTYPEINFO2* = ptr ITypeInfo2 LPTYPELIB* = ptr ITypeLib LPTLIBATTR* = ptr TLIBATTR ITypeLib2* {.pure.} = object lpVtbl*: ptr ITypeLib2Vtbl + ITypeLib2Vtbl* {.pure, inheritable.} = object of ITypeLibVtbl - GetCustData*: proc(self: ptr ITypeLib2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.stdcall.} - GetLibStatistics*: proc(self: ptr ITypeLib2, pcUniqueNames: ptr ULONG, pcchUniqueNames: ptr ULONG): HRESULT {.stdcall.} - GetDocumentation2*: proc(self: ptr ITypeLib2, index: INT, lcid: LCID, pbstrHelpString: ptr BSTR, pdwHelpStringContext: ptr DWORD, pbstrHelpStringDll: ptr BSTR): HRESULT {.stdcall.} - GetAllCustData*: proc(self: ptr ITypeLib2, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} + GetCustData*: proc( + self: ptr ITypeLib2, guid: REFGUID, pVarVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetLibStatistics*: proc( + self: ptr ITypeLib2, pcUniqueNames: ptr ULONG, pcchUniqueNames: ptr ULONG + ): HRESULT {.stdcall.} + GetDocumentation2*: proc( + self: ptr ITypeLib2, + index: INT, + lcid: LCID, + pbstrHelpString: ptr BSTR, + pdwHelpStringContext: ptr DWORD, + pbstrHelpStringDll: ptr BSTR, + ): HRESULT {.stdcall.} + GetAllCustData*: + proc(self: ptr ITypeLib2, pCustData: ptr CUSTDATA): HRESULT {.stdcall.} + LPTYPELIB2* = ptr ITypeLib2 ITypeChangeEvents* {.pure.} = object lpVtbl*: ptr ITypeChangeEventsVtbl + ITypeChangeEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RequestTypeChange*: proc(self: ptr ITypeChangeEvents, changeKind: CHANGEKIND, pTInfoBefore: ptr ITypeInfo, pStrName: LPOLESTR, pfCancel: ptr INT): HRESULT {.stdcall.} - AfterTypeChange*: proc(self: ptr ITypeChangeEvents, changeKind: CHANGEKIND, pTInfoAfter: ptr ITypeInfo, pStrName: LPOLESTR): HRESULT {.stdcall.} + RequestTypeChange*: proc( + self: ptr ITypeChangeEvents, + changeKind: CHANGEKIND, + pTInfoBefore: ptr ITypeInfo, + pStrName: LPOLESTR, + pfCancel: ptr INT, + ): HRESULT {.stdcall.} + AfterTypeChange*: proc( + self: ptr ITypeChangeEvents, + changeKind: CHANGEKIND, + pTInfoAfter: ptr ITypeInfo, + pStrName: LPOLESTR, + ): HRESULT {.stdcall.} + LPTYPECHANGEEVENTS* = ptr ITypeChangeEvents IErrorInfo* {.pure.} = object lpVtbl*: ptr IErrorInfoVtbl + IErrorInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetGUID*: proc(self: ptr IErrorInfo, pGUID: ptr GUID): HRESULT {.stdcall.} GetSource*: proc(self: ptr IErrorInfo, pBstrSource: ptr BSTR): HRESULT {.stdcall.} - GetDescription*: proc(self: ptr IErrorInfo, pBstrDescription: ptr BSTR): HRESULT {.stdcall.} - GetHelpFile*: proc(self: ptr IErrorInfo, pBstrHelpFile: ptr BSTR): HRESULT {.stdcall.} - GetHelpContext*: proc(self: ptr IErrorInfo, pdwHelpContext: ptr DWORD): HRESULT {.stdcall.} + GetDescription*: + proc(self: ptr IErrorInfo, pBstrDescription: ptr BSTR): HRESULT {.stdcall.} + GetHelpFile*: + proc(self: ptr IErrorInfo, pBstrHelpFile: ptr BSTR): HRESULT {.stdcall.} + GetHelpContext*: + proc(self: ptr IErrorInfo, pdwHelpContext: ptr DWORD): HRESULT {.stdcall.} + LPERRORINFO* = ptr IErrorInfo ICreateErrorInfo* {.pure.} = object lpVtbl*: ptr ICreateErrorInfoVtbl + ICreateErrorInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetGUID*: proc(self: ptr ICreateErrorInfo, rguid: REFGUID): HRESULT {.stdcall.} - SetSource*: proc(self: ptr ICreateErrorInfo, szSource: LPOLESTR): HRESULT {.stdcall.} - SetDescription*: proc(self: ptr ICreateErrorInfo, szDescription: LPOLESTR): HRESULT {.stdcall.} - SetHelpFile*: proc(self: ptr ICreateErrorInfo, szHelpFile: LPOLESTR): HRESULT {.stdcall.} - SetHelpContext*: proc(self: ptr ICreateErrorInfo, dwHelpContext: DWORD): HRESULT {.stdcall.} + SetSource*: + proc(self: ptr ICreateErrorInfo, szSource: LPOLESTR): HRESULT {.stdcall.} + SetDescription*: + proc(self: ptr ICreateErrorInfo, szDescription: LPOLESTR): HRESULT {.stdcall.} + SetHelpFile*: + proc(self: ptr ICreateErrorInfo, szHelpFile: LPOLESTR): HRESULT {.stdcall.} + SetHelpContext*: + proc(self: ptr ICreateErrorInfo, dwHelpContext: DWORD): HRESULT {.stdcall.} + LPCREATEERRORINFO* = ptr ICreateErrorInfo ISupportErrorInfo* {.pure.} = object lpVtbl*: ptr ISupportErrorInfoVtbl + ISupportErrorInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InterfaceSupportsErrorInfo*: proc(self: ptr ISupportErrorInfo, riid: REFIID): HRESULT {.stdcall.} + InterfaceSupportsErrorInfo*: + proc(self: ptr ISupportErrorInfo, riid: REFIID): HRESULT {.stdcall.} + LPSUPPORTERRORINFO* = ptr ISupportErrorInfo LPRECORDINFO* = ptr IRecordInfo IErrorLog* {.pure.} = object lpVtbl*: ptr IErrorLogVtbl + IErrorLogVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddError*: proc(self: ptr IErrorLog, pszPropName: LPCOLESTR, pExcepInfo: ptr EXCEPINFO): HRESULT {.stdcall.} + AddError*: proc( + self: ptr IErrorLog, pszPropName: LPCOLESTR, pExcepInfo: ptr EXCEPINFO + ): HRESULT {.stdcall.} + LPERRORLOG* = ptr IErrorLog IPropertyBag* {.pure.} = object lpVtbl*: ptr IPropertyBagVtbl + IPropertyBagVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Read*: proc(self: ptr IPropertyBag, pszPropName: LPCOLESTR, pVar: ptr VARIANT, pErrorLog: ptr IErrorLog): HRESULT {.stdcall.} - Write*: proc(self: ptr IPropertyBag, pszPropName: LPCOLESTR, pVar: ptr VARIANT): HRESULT {.stdcall.} + Read*: proc( + self: ptr IPropertyBag, + pszPropName: LPCOLESTR, + pVar: ptr VARIANT, + pErrorLog: ptr IErrorLog, + ): HRESULT {.stdcall.} + Write*: proc( + self: ptr IPropertyBag, pszPropName: LPCOLESTR, pVar: ptr VARIANT + ): HRESULT {.stdcall.} + LPPROPERTYBAG* = ptr IPropertyBag PARAMDATA* {.pure.} = object szName*: ptr OLECHAR vt*: VARTYPE + LPPARAMDATA* = ptr PARAMDATA METHODDATA* {.pure.} = object szName*: ptr OLECHAR @@ -1404,100 +2290,204 @@ cArgs*: UINT wFlags*: WORD vtReturn*: VARTYPE + LPMETHODDATA* = ptr METHODDATA INTERFACEDATA* {.pure.} = object pmethdata*: ptr METHODDATA cMembers*: UINT + LPINTERFACEDATA* = ptr INTERFACEDATA IOleAdviseHolder* {.pure.} = object lpVtbl*: ptr IOleAdviseHolderVtbl + IOleAdviseHolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr IOleAdviseHolder, pAdvise: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.stdcall.} - Unadvise*: proc(self: ptr IOleAdviseHolder, dwConnection: DWORD): HRESULT {.stdcall.} - EnumAdvise*: proc(self: ptr IOleAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} - SendOnRename*: proc(self: ptr IOleAdviseHolder, pmk: ptr IMoniker): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IOleAdviseHolder, pAdvise: ptr IAdviseSink, pdwConnection: ptr DWORD + ): HRESULT {.stdcall.} + Unadvise*: + proc(self: ptr IOleAdviseHolder, dwConnection: DWORD): HRESULT {.stdcall.} + EnumAdvise*: proc( + self: ptr IOleAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA + ): HRESULT {.stdcall.} + SendOnRename*: + proc(self: ptr IOleAdviseHolder, pmk: ptr IMoniker): HRESULT {.stdcall.} SendOnSave*: proc(self: ptr IOleAdviseHolder): HRESULT {.stdcall.} SendOnClose*: proc(self: ptr IOleAdviseHolder): HRESULT {.stdcall.} + LPOLEADVISEHOLDER* = ptr IOleAdviseHolder IOleCache* {.pure.} = object lpVtbl*: ptr IOleCacheVtbl + IOleCacheVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Cache*: proc(self: ptr IOleCache, pformatetc: ptr FORMATETC, advf: DWORD, pdwConnection: ptr DWORD): HRESULT {.stdcall.} + Cache*: proc( + self: ptr IOleCache, + pformatetc: ptr FORMATETC, + advf: DWORD, + pdwConnection: ptr DWORD, + ): HRESULT {.stdcall.} Uncache*: proc(self: ptr IOleCache, dwConnection: DWORD): HRESULT {.stdcall.} - EnumCache*: proc(self: ptr IOleCache, ppenumSTATDATA: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} - InitCache*: proc(self: ptr IOleCache, pDataObject: ptr IDataObject): HRESULT {.stdcall.} - SetData*: proc(self: ptr IOleCache, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM, fRelease: WINBOOL): HRESULT {.stdcall.} + EnumCache*: proc( + self: ptr IOleCache, ppenumSTATDATA: ptr ptr IEnumSTATDATA + ): HRESULT {.stdcall.} + InitCache*: + proc(self: ptr IOleCache, pDataObject: ptr IDataObject): HRESULT {.stdcall.} + SetData*: proc( + self: ptr IOleCache, + pformatetc: ptr FORMATETC, + pmedium: ptr STGMEDIUM, + fRelease: WINBOOL, + ): HRESULT {.stdcall.} + LPOLECACHE* = ptr IOleCache IOleCache2* {.pure.} = object lpVtbl*: ptr IOleCache2Vtbl + IOleCache2Vtbl* {.pure, inheritable.} = object of IOleCacheVtbl - UpdateCache*: proc(self: ptr IOleCache2, pDataObject: LPDATAOBJECT, grfUpdf: DWORD, pReserved: LPVOID): HRESULT {.stdcall.} - DiscardCache*: proc(self: ptr IOleCache2, dwDiscardOptions: DWORD): HRESULT {.stdcall.} + UpdateCache*: proc( + self: ptr IOleCache2, pDataObject: LPDATAOBJECT, grfUpdf: DWORD, pReserved: LPVOID + ): HRESULT {.stdcall.} + DiscardCache*: + proc(self: ptr IOleCache2, dwDiscardOptions: DWORD): HRESULT {.stdcall.} + LPOLECACHE2* = ptr IOleCache2 IOleCacheControl* {.pure.} = object lpVtbl*: ptr IOleCacheControlVtbl + IOleCacheControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnRun*: proc(self: ptr IOleCacheControl, pDataObject: LPDATAOBJECT): HRESULT {.stdcall.} + OnRun*: + proc(self: ptr IOleCacheControl, pDataObject: LPDATAOBJECT): HRESULT {.stdcall.} OnStop*: proc(self: ptr IOleCacheControl): HRESULT {.stdcall.} + LPOLECACHECONTROL* = ptr IOleCacheControl IParseDisplayName* {.pure.} = object lpVtbl*: ptr IParseDisplayNameVtbl + IParseDisplayNameVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseDisplayName*: proc(self: ptr IParseDisplayName, pbc: ptr IBindCtx, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.stdcall.} + ParseDisplayName*: proc( + self: ptr IParseDisplayName, + pbc: ptr IBindCtx, + pszDisplayName: LPOLESTR, + pchEaten: ptr ULONG, + ppmkOut: ptr ptr IMoniker, + ): HRESULT {.stdcall.} + LPPARSEDISPLAYNAME* = ptr IParseDisplayName IOleContainer* {.pure.} = object lpVtbl*: ptr IOleContainerVtbl + IOleContainerVtbl* {.pure, inheritable.} = object of IParseDisplayNameVtbl - EnumObjects*: proc(self: ptr IOleContainer, grfFlags: DWORD, ppenum: ptr ptr IEnumUnknown): HRESULT {.stdcall.} + EnumObjects*: proc( + self: ptr IOleContainer, grfFlags: DWORD, ppenum: ptr ptr IEnumUnknown + ): HRESULT {.stdcall.} LockContainer*: proc(self: ptr IOleContainer, fLock: WINBOOL): HRESULT {.stdcall.} + LPOLECONTAINER* = ptr IOleContainer IOleClientSite* {.pure.} = object lpVtbl*: ptr IOleClientSiteVtbl + IOleClientSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl SaveObject*: proc(self: ptr IOleClientSite): HRESULT {.stdcall.} - GetMoniker*: proc(self: ptr IOleClientSite, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.} - GetContainer*: proc(self: ptr IOleClientSite, ppContainer: ptr ptr IOleContainer): HRESULT {.stdcall.} + GetMoniker*: proc( + self: ptr IOleClientSite, + dwAssign: DWORD, + dwWhichMoniker: DWORD, + ppmk: ptr ptr IMoniker, + ): HRESULT {.stdcall.} + GetContainer*: proc( + self: ptr IOleClientSite, ppContainer: ptr ptr IOleContainer + ): HRESULT {.stdcall.} ShowObject*: proc(self: ptr IOleClientSite): HRESULT {.stdcall.} OnShowWindow*: proc(self: ptr IOleClientSite, fShow: WINBOOL): HRESULT {.stdcall.} RequestNewObjectLayout*: proc(self: ptr IOleClientSite): HRESULT {.stdcall.} + LPOLECLIENTSITE* = ptr IOleClientSite OLEVERB* {.pure.} = object lVerb*: LONG lpszVerbName*: LPOLESTR fuFlags*: DWORD grfAttribs*: DWORD + LPOLEVERB* = ptr OLEVERB IEnumOLEVERB* {.pure.} = object lpVtbl*: ptr IEnumOLEVERBVtbl + IEnumOLEVERBVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumOLEVERB, celt: ULONG, rgelt: LPOLEVERB, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumOLEVERB, celt: ULONG, rgelt: LPOLEVERB, pceltFetched: ptr ULONG + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumOLEVERB, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumOLEVERB): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumOLEVERB, ppenum: ptr ptr IEnumOLEVERB): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumOLEVERB, ppenum: ptr ptr IEnumOLEVERB): HRESULT {.stdcall.} + IOleObject* {.pure.} = object lpVtbl*: ptr IOleObjectVtbl + IOleObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetClientSite*: proc(self: ptr IOleObject, pClientSite: ptr IOleClientSite): HRESULT {.stdcall.} - GetClientSite*: proc(self: ptr IOleObject, ppClientSite: ptr ptr IOleClientSite): HRESULT {.stdcall.} - SetHostNames*: proc(self: ptr IOleObject, szContainerApp: LPCOLESTR, szContainerObj: LPCOLESTR): HRESULT {.stdcall.} + SetClientSite*: + proc(self: ptr IOleObject, pClientSite: ptr IOleClientSite): HRESULT {.stdcall.} + GetClientSite*: proc( + self: ptr IOleObject, ppClientSite: ptr ptr IOleClientSite + ): HRESULT {.stdcall.} + SetHostNames*: proc( + self: ptr IOleObject, szContainerApp: LPCOLESTR, szContainerObj: LPCOLESTR + ): HRESULT {.stdcall.} Close*: proc(self: ptr IOleObject, dwSaveOption: DWORD): HRESULT {.stdcall.} - SetMoniker*: proc(self: ptr IOleObject, dwWhichMoniker: DWORD, pmk: ptr IMoniker): HRESULT {.stdcall.} - GetMoniker*: proc(self: ptr IOleObject, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.} - InitFromData*: proc(self: ptr IOleObject, pDataObject: ptr IDataObject, fCreation: WINBOOL, dwReserved: DWORD): HRESULT {.stdcall.} - GetClipboardData*: proc(self: ptr IOleObject, dwReserved: DWORD, ppDataObject: ptr ptr IDataObject): HRESULT {.stdcall.} - DoVerb*: proc(self: ptr IOleObject, iVerb: LONG, lpmsg: LPMSG, pActiveSite: ptr IOleClientSite, lindex: LONG, hwndParent: HWND, lprcPosRect: LPCRECT): HRESULT {.stdcall.} - EnumVerbs*: proc(self: ptr IOleObject, ppEnumOleVerb: ptr ptr IEnumOLEVERB): HRESULT {.stdcall.} + SetMoniker*: proc( + self: ptr IOleObject, dwWhichMoniker: DWORD, pmk: ptr IMoniker + ): HRESULT {.stdcall.} + GetMoniker*: proc( + self: ptr IOleObject, + dwAssign: DWORD, + dwWhichMoniker: DWORD, + ppmk: ptr ptr IMoniker, + ): HRESULT {.stdcall.} + InitFromData*: proc( + self: ptr IOleObject, + pDataObject: ptr IDataObject, + fCreation: WINBOOL, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + GetClipboardData*: proc( + self: ptr IOleObject, dwReserved: DWORD, ppDataObject: ptr ptr IDataObject + ): HRESULT {.stdcall.} + DoVerb*: proc( + self: ptr IOleObject, + iVerb: LONG, + lpmsg: LPMSG, + pActiveSite: ptr IOleClientSite, + lindex: LONG, + hwndParent: HWND, + lprcPosRect: LPCRECT, + ): HRESULT {.stdcall.} + EnumVerbs*: proc(self: ptr IOleObject, ppEnumOleVerb: ptr ptr IEnumOLEVERB): HRESULT {. + stdcall + .} Update*: proc(self: ptr IOleObject): HRESULT {.stdcall.} IsUpToDate*: proc(self: ptr IOleObject): HRESULT {.stdcall.} GetUserClassID*: proc(self: ptr IOleObject, pClsid: ptr CLSID): HRESULT {.stdcall.} - GetUserType*: proc(self: ptr IOleObject, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR): HRESULT {.stdcall.} - SetExtent*: proc(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.stdcall.} - GetExtent*: proc(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.stdcall.} - Advise*: proc(self: ptr IOleObject, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.stdcall.} + GetUserType*: proc( + self: ptr IOleObject, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR + ): HRESULT {.stdcall.} + SetExtent*: proc( + self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL + ): HRESULT {.stdcall.} + GetExtent*: proc( + self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL + ): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IOleObject, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IOleObject, dwConnection: DWORD): HRESULT {.stdcall.} - EnumAdvise*: proc(self: ptr IOleObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.stdcall.} - GetMiscStatus*: proc(self: ptr IOleObject, dwAspect: DWORD, pdwStatus: ptr DWORD): HRESULT {.stdcall.} - SetColorScheme*: proc(self: ptr IOleObject, pLogpal: ptr LOGPALETTE): HRESULT {.stdcall.} + EnumAdvise*: proc( + self: ptr IOleObject, ppenumAdvise: ptr ptr IEnumSTATDATA + ): HRESULT {.stdcall.} + GetMiscStatus*: proc( + self: ptr IOleObject, dwAspect: DWORD, pdwStatus: ptr DWORD + ): HRESULT {.stdcall.} + SetColorScheme*: + proc(self: ptr IOleObject, pLogpal: ptr LOGPALETTE): HRESULT {.stdcall.} + LPOLEOBJECT* = ptr IOleObject LPOLERENDER* = ptr OLERENDER OBJECTDESCRIPTOR* {.pure.} = object @@ -1509,6 +2499,7 @@ dwStatus*: DWORD dwFullUserTypeName*: DWORD dwSrcOfCopy*: DWORD + POBJECTDESCRIPTOR* = ptr OBJECTDESCRIPTOR LPOBJECTDESCRIPTOR* = ptr OBJECTDESCRIPTOR LINKSRCDESCRIPTOR* = OBJECTDESCRIPTOR @@ -1516,75 +2507,143 @@ LPLINKSRCDESCRIPTOR* = ptr OBJECTDESCRIPTOR IOleWindow* {.pure.} = object lpVtbl*: ptr IOleWindowVtbl + IOleWindowVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetWindow*: proc(self: ptr IOleWindow, phwnd: ptr HWND): HRESULT {.stdcall.} - ContextSensitiveHelp*: proc(self: ptr IOleWindow, fEnterMode: WINBOOL): HRESULT {.stdcall.} + ContextSensitiveHelp*: + proc(self: ptr IOleWindow, fEnterMode: WINBOOL): HRESULT {.stdcall.} + LPOLEWINDOW* = ptr IOleWindow IOleLink* {.pure.} = object lpVtbl*: ptr IOleLinkVtbl + IOleLinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetUpdateOptions*: proc(self: ptr IOleLink, dwUpdateOpt: DWORD): HRESULT {.stdcall.} - GetUpdateOptions*: proc(self: ptr IOleLink, pdwUpdateOpt: ptr DWORD): HRESULT {.stdcall.} - SetSourceMoniker*: proc(self: ptr IOleLink, pmk: ptr IMoniker, rclsid: REFCLSID): HRESULT {.stdcall.} - GetSourceMoniker*: proc(self: ptr IOleLink, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.} - SetSourceDisplayName*: proc(self: ptr IOleLink, pszStatusText: LPCOLESTR): HRESULT {.stdcall.} - GetSourceDisplayName*: proc(self: ptr IOleLink, ppszDisplayName: ptr LPOLESTR): HRESULT {.stdcall.} - BindToSource*: proc(self: ptr IOleLink, bindflags: DWORD, pbc: ptr IBindCtx): HRESULT {.stdcall.} + GetUpdateOptions*: + proc(self: ptr IOleLink, pdwUpdateOpt: ptr DWORD): HRESULT {.stdcall.} + SetSourceMoniker*: + proc(self: ptr IOleLink, pmk: ptr IMoniker, rclsid: REFCLSID): HRESULT {.stdcall.} + GetSourceMoniker*: + proc(self: ptr IOleLink, ppmk: ptr ptr IMoniker): HRESULT {.stdcall.} + SetSourceDisplayName*: + proc(self: ptr IOleLink, pszStatusText: LPCOLESTR): HRESULT {.stdcall.} + GetSourceDisplayName*: + proc(self: ptr IOleLink, ppszDisplayName: ptr LPOLESTR): HRESULT {.stdcall.} + BindToSource*: + proc(self: ptr IOleLink, bindflags: DWORD, pbc: ptr IBindCtx): HRESULT {.stdcall.} BindIfRunning*: proc(self: ptr IOleLink): HRESULT {.stdcall.} - GetBoundSource*: proc(self: ptr IOleLink, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + GetBoundSource*: + proc(self: ptr IOleLink, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} UnbindSource*: proc(self: ptr IOleLink): HRESULT {.stdcall.} Update*: proc(self: ptr IOleLink, pbc: ptr IBindCtx): HRESULT {.stdcall.} + LPOLELINK* = ptr IOleLink LPOLEUPDATE* = ptr OLEUPDATE POLEUPDATE* = ptr OLEUPDATE IOleItemContainer* {.pure.} = object lpVtbl*: ptr IOleItemContainerVtbl + IOleItemContainerVtbl* {.pure, inheritable.} = object of IOleContainerVtbl - GetObject*: proc(self: ptr IOleItemContainer, pszItem: LPOLESTR, dwSpeedNeeded: DWORD, pbc: ptr IBindCtx, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} - GetObjectStorage*: proc(self: ptr IOleItemContainer, pszItem: LPOLESTR, pbc: ptr IBindCtx, riid: REFIID, ppvStorage: ptr pointer): HRESULT {.stdcall.} - IsRunning*: proc(self: ptr IOleItemContainer, pszItem: LPOLESTR): HRESULT {.stdcall.} + GetObject*: proc( + self: ptr IOleItemContainer, + pszItem: LPOLESTR, + dwSpeedNeeded: DWORD, + pbc: ptr IBindCtx, + riid: REFIID, + ppvObject: ptr pointer, + ): HRESULT {.stdcall.} + GetObjectStorage*: proc( + self: ptr IOleItemContainer, + pszItem: LPOLESTR, + pbc: ptr IBindCtx, + riid: REFIID, + ppvStorage: ptr pointer, + ): HRESULT {.stdcall.} + IsRunning*: + proc(self: ptr IOleItemContainer, pszItem: LPOLESTR): HRESULT {.stdcall.} + LPOLEITEMCONTAINER* = ptr IOleItemContainer LPCBORDERWIDTHS* = LPCRECT IOleInPlaceActiveObject* {.pure.} = object lpVtbl*: ptr IOleInPlaceActiveObjectVtbl + IOleInPlaceActiveObjectVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - TranslateAccelerator*: proc(self: ptr IOleInPlaceActiveObject, lpmsg: LPMSG): HRESULT {.stdcall.} - OnFrameWindowActivate*: proc(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.stdcall.} - OnDocWindowActivate*: proc(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.stdcall.} - ResizeBorder*: proc(self: ptr IOleInPlaceActiveObject, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fFrameWindow: WINBOOL): HRESULT {.stdcall.} - EnableModeless*: proc(self: ptr IOleInPlaceActiveObject, fEnable: WINBOOL): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IOleInPlaceActiveObject, lpmsg: LPMSG): HRESULT {.stdcall.} + OnFrameWindowActivate*: + proc(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.stdcall.} + OnDocWindowActivate*: + proc(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.stdcall.} + ResizeBorder*: proc( + self: ptr IOleInPlaceActiveObject, + prcBorder: LPCRECT, + pUIWindow: ptr IOleInPlaceUIWindow, + fFrameWindow: WINBOOL, + ): HRESULT {.stdcall.} + EnableModeless*: + proc(self: ptr IOleInPlaceActiveObject, fEnable: WINBOOL): HRESULT {.stdcall.} + IOleInPlaceUIWindow* {.pure.} = object lpVtbl*: ptr IOleInPlaceUIWindowVtbl + IOleInPlaceUIWindowVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - GetBorder*: proc(self: ptr IOleInPlaceUIWindow, lprectBorder: LPRECT): HRESULT {.stdcall.} - RequestBorderSpace*: proc(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.stdcall.} - SetBorderSpace*: proc(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.stdcall.} - SetActiveObject*: proc(self: ptr IOleInPlaceUIWindow, pActiveObject: ptr IOleInPlaceActiveObject, pszObjName: LPCOLESTR): HRESULT {.stdcall.} + GetBorder*: + proc(self: ptr IOleInPlaceUIWindow, lprectBorder: LPRECT): HRESULT {.stdcall.} + RequestBorderSpace*: proc( + self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS + ): HRESULT {.stdcall.} + SetBorderSpace*: proc( + self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS + ): HRESULT {.stdcall.} + SetActiveObject*: proc( + self: ptr IOleInPlaceUIWindow, + pActiveObject: ptr IOleInPlaceActiveObject, + pszObjName: LPCOLESTR, + ): HRESULT {.stdcall.} + LPOLEINPLACEUIWINDOW* = ptr IOleInPlaceUIWindow BORDERWIDTHS* = RECT LPBORDERWIDTHS* = LPRECT LPOLEINPLACEACTIVEOBJECT* = ptr IOleInPlaceActiveObject OLEMENUGROUPWIDTHS* {.pure.} = object width*: array[6, LONG] + LPOLEMENUGROUPWIDTHS* = ptr OLEMENUGROUPWIDTHS HOLEMENU* = HGLOBAL IOleInPlaceFrame* {.pure.} = object lpVtbl*: ptr IOleInPlaceFrameVtbl + IOleInPlaceFrameVtbl* {.pure, inheritable.} = object of IOleInPlaceUIWindowVtbl - InsertMenus*: proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HRESULT {.stdcall.} - SetMenu*: proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, holemenu: HOLEMENU, hwndActiveObject: HWND): HRESULT {.stdcall.} - RemoveMenus*: proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU): HRESULT {.stdcall.} - SetStatusText*: proc(self: ptr IOleInPlaceFrame, pszStatusText: LPCOLESTR): HRESULT {.stdcall.} - EnableModeless*: proc(self: ptr IOleInPlaceFrame, fEnable: WINBOOL): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD): HRESULT {.stdcall.} + InsertMenus*: proc( + self: ptr IOleInPlaceFrame, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS + ): HRESULT {.stdcall.} + SetMenu*: proc( + self: ptr IOleInPlaceFrame, + hmenuShared: HMENU, + holemenu: HOLEMENU, + hwndActiveObject: HWND, + ): HRESULT {.stdcall.} + RemoveMenus*: + proc(self: ptr IOleInPlaceFrame, hmenuShared: HMENU): HRESULT {.stdcall.} + SetStatusText*: + proc(self: ptr IOleInPlaceFrame, pszStatusText: LPCOLESTR): HRESULT {.stdcall.} + EnableModeless*: + proc(self: ptr IOleInPlaceFrame, fEnable: WINBOOL): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD): HRESULT {.stdcall.} + LPOLEINPLACEFRAME* = ptr IOleInPlaceFrame IOleInPlaceObject* {.pure.} = object lpVtbl*: ptr IOleInPlaceObjectVtbl + IOleInPlaceObjectVtbl* {.pure, inheritable.} = object of IOleWindowVtbl InPlaceDeactivate*: proc(self: ptr IOleInPlaceObject): HRESULT {.stdcall.} UIDeactivate*: proc(self: ptr IOleInPlaceObject): HRESULT {.stdcall.} - SetObjectRects*: proc(self: ptr IOleInPlaceObject, lprcPosRect: LPCRECT, lprcClipRect: LPCRECT): HRESULT {.stdcall.} + SetObjectRects*: proc( + self: ptr IOleInPlaceObject, lprcPosRect: LPCRECT, lprcClipRect: LPCRECT + ): HRESULT {.stdcall.} ReactivateAndUndo*: proc(self: ptr IOleInPlaceObject): HRESULT {.stdcall.} + LPOLEINPLACEOBJECT* = ptr IOleInPlaceObject OLEINPLACEFRAMEINFO* {.pure.} = object cb*: UINT @@ -1592,67 +2651,146 @@ hwndFrame*: HWND haccel*: HACCEL cAccelEntries*: UINT + LPOLEINPLACEFRAMEINFO* = ptr OLEINPLACEFRAMEINFO IOleInPlaceSite* {.pure.} = object lpVtbl*: ptr IOleInPlaceSiteVtbl + IOleInPlaceSiteVtbl* {.pure, inheritable.} = object of IOleWindowVtbl CanInPlaceActivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.} OnInPlaceActivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.} OnUIActivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.} - GetWindowContext*: proc(self: ptr IOleInPlaceSite, ppFrame: ptr ptr IOleInPlaceFrame, ppDoc: ptr ptr IOleInPlaceUIWindow, lprcPosRect: LPRECT, lprcClipRect: LPRECT, lpFrameInfo: LPOLEINPLACEFRAMEINFO): HRESULT {.stdcall.} + GetWindowContext*: proc( + self: ptr IOleInPlaceSite, + ppFrame: ptr ptr IOleInPlaceFrame, + ppDoc: ptr ptr IOleInPlaceUIWindow, + lprcPosRect: LPRECT, + lprcClipRect: LPRECT, + lpFrameInfo: LPOLEINPLACEFRAMEINFO, + ): HRESULT {.stdcall.} Scroll*: proc(self: ptr IOleInPlaceSite, scrollExtant: SIZE): HRESULT {.stdcall.} - OnUIDeactivate*: proc(self: ptr IOleInPlaceSite, fUndoable: WINBOOL): HRESULT {.stdcall.} + OnUIDeactivate*: + proc(self: ptr IOleInPlaceSite, fUndoable: WINBOOL): HRESULT {.stdcall.} OnInPlaceDeactivate*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.} DiscardUndoState*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.} DeactivateAndUndo*: proc(self: ptr IOleInPlaceSite): HRESULT {.stdcall.} - OnPosRectChange*: proc(self: ptr IOleInPlaceSite, lprcPosRect: LPCRECT): HRESULT {.stdcall.} + OnPosRectChange*: + proc(self: ptr IOleInPlaceSite, lprcPosRect: LPCRECT): HRESULT {.stdcall.} + LPOLEINPLACESITE* = ptr IOleInPlaceSite IViewObject* {.pure.} = object lpVtbl*: ptr IViewObjectVtbl + IViewObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Draw*: proc(self: ptr IViewObject, dwDrawAspect: DWORD, lindex: LONG, pvAspect: pointer, ptd: ptr DVTARGETDEVICE, hdcTargetDev: HDC, hdcDraw: HDC, lprcBounds: LPCRECTL, lprcWBounds: LPCRECTL, pfnContinue: proc (dwContinue: ULONG_PTR): WINBOOL {.stdcall.}, dwContinue: ULONG_PTR): HRESULT {.stdcall.} - GetColorSet*: proc(self: ptr IViewObject, dwDrawAspect: DWORD, lindex: LONG, pvAspect: pointer, ptd: ptr DVTARGETDEVICE, hicTargetDev: HDC, ppColorSet: ptr ptr LOGPALETTE): HRESULT {.stdcall.} - Freeze*: proc(self: ptr IViewObject, dwDrawAspect: DWORD, lindex: LONG, pvAspect: pointer, pdwFreeze: ptr DWORD): HRESULT {.stdcall.} + Draw*: proc( + self: ptr IViewObject, + dwDrawAspect: DWORD, + lindex: LONG, + pvAspect: pointer, + ptd: ptr DVTARGETDEVICE, + hdcTargetDev: HDC, + hdcDraw: HDC, + lprcBounds: LPCRECTL, + lprcWBounds: LPCRECTL, + pfnContinue: proc(dwContinue: ULONG_PTR): WINBOOL {.stdcall.}, + dwContinue: ULONG_PTR, + ): HRESULT {.stdcall.} + GetColorSet*: proc( + self: ptr IViewObject, + dwDrawAspect: DWORD, + lindex: LONG, + pvAspect: pointer, + ptd: ptr DVTARGETDEVICE, + hicTargetDev: HDC, + ppColorSet: ptr ptr LOGPALETTE, + ): HRESULT {.stdcall.} + Freeze*: proc( + self: ptr IViewObject, + dwDrawAspect: DWORD, + lindex: LONG, + pvAspect: pointer, + pdwFreeze: ptr DWORD, + ): HRESULT {.stdcall.} Unfreeze*: proc(self: ptr IViewObject, dwFreeze: DWORD): HRESULT {.stdcall.} - SetAdvise*: proc(self: ptr IViewObject, aspects: DWORD, advf: DWORD, pAdvSink: ptr IAdviseSink): HRESULT {.stdcall.} - GetAdvise*: proc(self: ptr IViewObject, pAspects: ptr DWORD, pAdvf: ptr DWORD, ppAdvSink: ptr ptr IAdviseSink): HRESULT {.stdcall.} + SetAdvise*: proc( + self: ptr IViewObject, aspects: DWORD, advf: DWORD, pAdvSink: ptr IAdviseSink + ): HRESULT {.stdcall.} + GetAdvise*: proc( + self: ptr IViewObject, + pAspects: ptr DWORD, + pAdvf: ptr DWORD, + ppAdvSink: ptr ptr IAdviseSink, + ): HRESULT {.stdcall.} + LPVIEWOBJECT* = ptr IViewObject IViewObject2* {.pure.} = object lpVtbl*: ptr IViewObject2Vtbl + IViewObject2Vtbl* {.pure, inheritable.} = object of IViewObjectVtbl - GetExtent*: proc(self: ptr IViewObject2, dwDrawAspect: DWORD, lindex: LONG, ptd: ptr DVTARGETDEVICE, lpsizel: LPSIZEL): HRESULT {.stdcall.} + GetExtent*: proc( + self: ptr IViewObject2, + dwDrawAspect: DWORD, + lindex: LONG, + ptd: ptr DVTARGETDEVICE, + lpsizel: LPSIZEL, + ): HRESULT {.stdcall.} + LPVIEWOBJECT2* = ptr IViewObject2 IDropSource* {.pure.} = object lpVtbl*: ptr IDropSourceVtbl + IDropSourceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryContinueDrag*: proc(self: ptr IDropSource, fEscapePressed: WINBOOL, grfKeyState: DWORD): HRESULT {.stdcall.} + QueryContinueDrag*: proc( + self: ptr IDropSource, fEscapePressed: WINBOOL, grfKeyState: DWORD + ): HRESULT {.stdcall.} GiveFeedback*: proc(self: ptr IDropSource, dwEffect: DWORD): HRESULT {.stdcall.} + LPDROPSOURCE* = ptr IDropSource IDropTarget* {.pure.} = object lpVtbl*: ptr IDropTargetVtbl + IDropTargetVtbl* {.pure, inheritable.} = object of IUnknownVtbl - DragEnter*: proc(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.stdcall.} - DragOver*: proc(self: ptr IDropTarget, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.stdcall.} + DragEnter*: proc( + self: ptr IDropTarget, + pDataObj: ptr IDataObject, + grfKeyState: DWORD, + pt: POINTL, + pdwEffect: ptr DWORD, + ): HRESULT {.stdcall.} + DragOver*: proc( + self: ptr IDropTarget, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD + ): HRESULT {.stdcall.} DragLeave*: proc(self: ptr IDropTarget): HRESULT {.stdcall.} - Drop*: proc(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.stdcall.} + Drop*: proc( + self: ptr IDropTarget, + pDataObj: ptr IDataObject, + grfKeyState: DWORD, + pt: POINTL, + pdwEffect: ptr DWORD, + ): HRESULT {.stdcall.} + LPDROPTARGET* = ptr IDropTarget LPENUMOLEVERB* = ptr IEnumOLEVERB OLESTREAMVTBL* {.pure.} = object Get*: proc(P1: LPOLESTREAM, P2: pointer, P3: DWORD): DWORD {.stdcall.} Put*: proc(P1: LPOLESTREAM, P2: pointer, P3: DWORD): DWORD {.stdcall.} + LPOLESTREAMVTBL* = ptr OLESTREAMVTBL OLESTREAM* {.pure.} = object lpstbl*: LPOLESTREAMVTBL + LPOLESTREAM* = ptr OLESTREAM PSCODE* = ptr SCODE UP_BYTE_BLOB* = ptr BYTE_BLOB WORD_BLOB* {.pure.} = object clSize*: ULONG asData*: array[1, uint16] + UP_WORD_BLOB* = ptr WORD_BLOB DWORD_BLOB* {.pure.} = object clSize*: ULONG alData*: array[1, ULONG] + UP_DWORD_BLOB* = ptr DWORD_BLOB UP_FLAGGED_BYTE_BLOB* = ptr FLAGGED_BYTE_BLOB UP_FLAGGED_WORD_BLOB* = ptr FLAGGED_WORD_BLOB @@ -1660,40 +2798,78 @@ dwServerPid*: DWORD dwServerTid*: DWORD ui64ServerAddress*: UINT64 + PServerInformation* = ptr ServerInformation IServiceProvider* {.pure.} = object lpVtbl*: ptr IServiceProviderVtbl + IServiceProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryService*: proc(self: ptr IServiceProvider, guidService: REFGUID, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} + QueryService*: proc( + self: ptr IServiceProvider, + guidService: REFGUID, + riid: REFIID, + ppvObject: ptr pointer, + ): HRESULT {.stdcall.} + LPSERVICEPROVIDER* = ptr IServiceProvider IPersistMoniker* {.pure.} = object lpVtbl*: ptr IPersistMonikerVtbl + IPersistMonikerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetClassID*: proc(self: ptr IPersistMoniker, pClassID: ptr CLSID): HRESULT {.stdcall.} + GetClassID*: + proc(self: ptr IPersistMoniker, pClassID: ptr CLSID): HRESULT {.stdcall.} IsDirty*: proc(self: ptr IPersistMoniker): HRESULT {.stdcall.} - Load*: proc(self: ptr IPersistMoniker, fFullyAvailable: WINBOOL, pimkName: ptr IMoniker, pibc: LPBC, grfMode: DWORD): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistMoniker, pimkName: ptr IMoniker, pbc: LPBC, fRemember: WINBOOL): HRESULT {.stdcall.} - SaveCompleted*: proc(self: ptr IPersistMoniker, pimkName: ptr IMoniker, pibc: LPBC): HRESULT {.stdcall.} - GetCurMoniker*: proc(self: ptr IPersistMoniker, ppimkName: ptr ptr IMoniker): HRESULT {.stdcall.} + Load*: proc( + self: ptr IPersistMoniker, + fFullyAvailable: WINBOOL, + pimkName: ptr IMoniker, + pibc: LPBC, + grfMode: DWORD, + ): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistMoniker, pimkName: ptr IMoniker, pbc: LPBC, fRemember: WINBOOL + ): HRESULT {.stdcall.} + SaveCompleted*: proc( + self: ptr IPersistMoniker, pimkName: ptr IMoniker, pibc: LPBC + ): HRESULT {.stdcall.} + GetCurMoniker*: + proc(self: ptr IPersistMoniker, ppimkName: ptr ptr IMoniker): HRESULT {.stdcall.} + LPPERSISTMONIKER* = ptr IPersistMoniker IMonikerProp* {.pure.} = object lpVtbl*: ptr IMonikerPropVtbl + IMonikerPropVtbl* {.pure, inheritable.} = object of IUnknownVtbl - PutProperty*: proc(self: ptr IMonikerProp, mkp: MONIKERPROPERTY, val: LPCWSTR): HRESULT {.stdcall.} + PutProperty*: proc( + self: ptr IMonikerProp, mkp: MONIKERPROPERTY, val: LPCWSTR + ): HRESULT {.stdcall.} + LPMONIKERPROP* = ptr IMonikerProp IBinding* {.pure.} = object lpVtbl*: ptr IBindingVtbl + IBindingVtbl* {.pure, inheritable.} = object of IUnknownVtbl Abort*: proc(self: ptr IBinding): HRESULT {.stdcall.} Suspend*: proc(self: ptr IBinding): HRESULT {.stdcall.} Resume*: proc(self: ptr IBinding): HRESULT {.stdcall.} SetPriority*: proc(self: ptr IBinding, nPriority: LONG): HRESULT {.stdcall.} GetPriority*: proc(self: ptr IBinding, pnPriority: ptr LONG): HRESULT {.stdcall.} - GetBindResult*: proc(self: ptr IBinding, pclsidProtocol: ptr CLSID, pdwResult: ptr DWORD, pszResult: ptr LPOLESTR, pdwReserved: ptr DWORD): HRESULT {.stdcall.} + GetBindResult*: proc( + self: ptr IBinding, + pclsidProtocol: ptr CLSID, + pdwResult: ptr DWORD, + pszResult: ptr LPOLESTR, + pdwReserved: ptr DWORD, + ): HRESULT {.stdcall.} + IBindProtocol* {.pure.} = object lpVtbl*: ptr IBindProtocolVtbl + IBindProtocolVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateBinding*: proc(self: ptr IBindProtocol, szUrl: LPCWSTR, pbc: ptr IBindCtx, ppb: ptr ptr IBinding): HRESULT {.stdcall.} + CreateBinding*: proc( + self: ptr IBindProtocol, szUrl: LPCWSTR, pbc: ptr IBindCtx, ppb: ptr ptr IBinding + ): HRESULT {.stdcall.} + LPBINDPROTOCOL* = ptr IBindProtocol LPBINDING* = ptr IBinding BINDINFO* {.pure.} = object @@ -1711,22 +2887,48 @@ iid*: IID pUnk*: ptr IUnknown dwReserved*: DWORD + IBindStatusCallback* {.pure.} = object lpVtbl*: ptr IBindStatusCallbackVtbl + IBindStatusCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnStartBinding*: proc(self: ptr IBindStatusCallback, dwReserved: DWORD, pib: ptr IBinding): HRESULT {.stdcall.} - GetPriority*: proc(self: ptr IBindStatusCallback, pnPriority: ptr LONG): HRESULT {.stdcall.} - OnLowResource*: proc(self: ptr IBindStatusCallback, reserved: DWORD): HRESULT {.stdcall.} - OnProgress*: proc(self: ptr IBindStatusCallback, ulProgress: ULONG, ulProgressMax: ULONG, ulStatusCode: ULONG, szStatusText: LPCWSTR): HRESULT {.stdcall.} - OnStopBinding*: proc(self: ptr IBindStatusCallback, hresult: HRESULT, szError: LPCWSTR): HRESULT {.stdcall.} - GetBindInfo*: proc(self: ptr IBindStatusCallback, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO): HRESULT {.stdcall.} - OnDataAvailable*: proc(self: ptr IBindStatusCallback, grfBSCF: DWORD, dwSize: DWORD, pformatetc: ptr FORMATETC, pstgmed: ptr STGMEDIUM): HRESULT {.stdcall.} - OnObjectAvailable*: proc(self: ptr IBindStatusCallback, riid: REFIID, punk: ptr IUnknown): HRESULT {.stdcall.} + OnStartBinding*: proc( + self: ptr IBindStatusCallback, dwReserved: DWORD, pib: ptr IBinding + ): HRESULT {.stdcall.} + GetPriority*: + proc(self: ptr IBindStatusCallback, pnPriority: ptr LONG): HRESULT {.stdcall.} + OnLowResource*: + proc(self: ptr IBindStatusCallback, reserved: DWORD): HRESULT {.stdcall.} + OnProgress*: proc( + self: ptr IBindStatusCallback, + ulProgress: ULONG, + ulProgressMax: ULONG, + ulStatusCode: ULONG, + szStatusText: LPCWSTR, + ): HRESULT {.stdcall.} + OnStopBinding*: proc( + self: ptr IBindStatusCallback, hresult: HRESULT, szError: LPCWSTR + ): HRESULT {.stdcall.} + GetBindInfo*: proc( + self: ptr IBindStatusCallback, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO + ): HRESULT {.stdcall.} + OnDataAvailable*: proc( + self: ptr IBindStatusCallback, + grfBSCF: DWORD, + dwSize: DWORD, + pformatetc: ptr FORMATETC, + pstgmed: ptr STGMEDIUM, + ): HRESULT {.stdcall.} + OnObjectAvailable*: proc( + self: ptr IBindStatusCallback, riid: REFIID, punk: ptr IUnknown + ): HRESULT {.stdcall.} + LPBINDSTATUSCALLBACK* = ptr IBindStatusCallback REMSECURITY_ATTRIBUTES* {.pure.} = object nLength*: DWORD lpSecurityDescriptor*: DWORD bInheritHandle*: WINBOOL + PREMSECURITY_ATTRIBUTES* = ptr REMSECURITY_ATTRIBUTES LPREMSECURITY_ATTRIBUTES* = ptr REMSECURITY_ATTRIBUTES RemFORMATETC* {.pure.} = object @@ -1735,172 +2937,438 @@ dwAspect*: DWORD lindex*: LONG tymed*: DWORD + LPREMFORMATETC* = ptr RemFORMATETC IBindStatusCallbackEx* {.pure.} = object lpVtbl*: ptr IBindStatusCallbackExVtbl + IBindStatusCallbackExVtbl* {.pure, inheritable.} = object of IBindStatusCallbackVtbl - GetBindInfoEx*: proc(self: ptr IBindStatusCallbackEx, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO, grfBINDF2: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.stdcall.} + GetBindInfoEx*: proc( + self: ptr IBindStatusCallbackEx, + grfBINDF: ptr DWORD, + pbindinfo: ptr BINDINFO, + grfBINDF2: ptr DWORD, + pdwReserved: ptr DWORD, + ): HRESULT {.stdcall.} + LPBINDSTATUSCALLBACKEX* = ptr IBindStatusCallbackEx IAuthenticate* {.pure.} = object lpVtbl*: ptr IAuthenticateVtbl + IAuthenticateVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Authenticate*: proc(self: ptr IAuthenticate, phwnd: ptr HWND, pszUsername: ptr LPWSTR, pszPassword: ptr LPWSTR): HRESULT {.stdcall.} + Authenticate*: proc( + self: ptr IAuthenticate, + phwnd: ptr HWND, + pszUsername: ptr LPWSTR, + pszPassword: ptr LPWSTR, + ): HRESULT {.stdcall.} + LPAUTHENTICATION* = ptr IAuthenticate AUTHENTICATEINFO* {.pure.} = object dwFlags*: DWORD dwReserved*: DWORD + IAuthenticateEx* {.pure.} = object lpVtbl*: ptr IAuthenticateExVtbl + IAuthenticateExVtbl* {.pure, inheritable.} = object of IAuthenticateVtbl - AuthenticateEx*: proc(self: ptr IAuthenticateEx, phwnd: ptr HWND, pszUsername: ptr LPWSTR, pszPassword: ptr LPWSTR, pauthinfo: ptr AUTHENTICATEINFO): HRESULT {.stdcall.} + AuthenticateEx*: proc( + self: ptr IAuthenticateEx, + phwnd: ptr HWND, + pszUsername: ptr LPWSTR, + pszPassword: ptr LPWSTR, + pauthinfo: ptr AUTHENTICATEINFO, + ): HRESULT {.stdcall.} + LPAUTHENTICATIONEX* = ptr IAuthenticateEx IHttpNegotiate* {.pure.} = object lpVtbl*: ptr IHttpNegotiateVtbl + IHttpNegotiateVtbl* {.pure, inheritable.} = object of IUnknownVtbl - BeginningTransaction*: proc(self: ptr IHttpNegotiate, szURL: LPCWSTR, szHeaders: LPCWSTR, dwReserved: DWORD, pszAdditionalHeaders: ptr LPWSTR): HRESULT {.stdcall.} - OnResponse*: proc(self: ptr IHttpNegotiate, dwResponseCode: DWORD, szResponseHeaders: LPCWSTR, szRequestHeaders: LPCWSTR, pszAdditionalRequestHeaders: ptr LPWSTR): HRESULT {.stdcall.} + BeginningTransaction*: proc( + self: ptr IHttpNegotiate, + szURL: LPCWSTR, + szHeaders: LPCWSTR, + dwReserved: DWORD, + pszAdditionalHeaders: ptr LPWSTR, + ): HRESULT {.stdcall.} + OnResponse*: proc( + self: ptr IHttpNegotiate, + dwResponseCode: DWORD, + szResponseHeaders: LPCWSTR, + szRequestHeaders: LPCWSTR, + pszAdditionalRequestHeaders: ptr LPWSTR, + ): HRESULT {.stdcall.} + LPHTTPNEGOTIATE* = ptr IHttpNegotiate IHttpNegotiate2* {.pure.} = object lpVtbl*: ptr IHttpNegotiate2Vtbl + IHttpNegotiate2Vtbl* {.pure, inheritable.} = object of IHttpNegotiateVtbl - GetRootSecurityId*: proc(self: ptr IHttpNegotiate2, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.stdcall.} + GetRootSecurityId*: proc( + self: ptr IHttpNegotiate2, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, + ): HRESULT {.stdcall.} + LPHTTPNEGOTIATE2* = ptr IHttpNegotiate2 IHttpNegotiate3* {.pure.} = object lpVtbl*: ptr IHttpNegotiate3Vtbl + IHttpNegotiate3Vtbl* {.pure, inheritable.} = object of IHttpNegotiate2Vtbl - GetSerializedClientCertContext*: proc(self: ptr IHttpNegotiate3, ppbCert: ptr ptr BYTE, pcbCert: ptr DWORD): HRESULT {.stdcall.} + GetSerializedClientCertContext*: proc( + self: ptr IHttpNegotiate3, ppbCert: ptr ptr BYTE, pcbCert: ptr DWORD + ): HRESULT {.stdcall.} + LPHTTPNEGOTIATE3* = ptr IHttpNegotiate3 IWinInetFileStream* {.pure.} = object lpVtbl*: ptr IWinInetFileStreamVtbl + IWinInetFileStreamVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetHandleForUnlock*: proc(self: ptr IWinInetFileStream, hWinInetLockHandle: DWORD_PTR, dwReserved: DWORD_PTR): HRESULT {.stdcall.} - SetDeleteFile*: proc(self: ptr IWinInetFileStream, dwReserved: DWORD_PTR): HRESULT {.stdcall.} + SetHandleForUnlock*: proc( + self: ptr IWinInetFileStream, hWinInetLockHandle: DWORD_PTR, dwReserved: DWORD_PTR + ): HRESULT {.stdcall.} + SetDeleteFile*: + proc(self: ptr IWinInetFileStream, dwReserved: DWORD_PTR): HRESULT {.stdcall.} + LPWININETFILESTREAM* = ptr IWinInetFileStream IWindowForBindingUI* {.pure.} = object lpVtbl*: ptr IWindowForBindingUIVtbl + IWindowForBindingUIVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetWindow*: proc(self: ptr IWindowForBindingUI, rguidReason: REFGUID, phwnd: ptr HWND): HRESULT {.stdcall.} + GetWindow*: proc( + self: ptr IWindowForBindingUI, rguidReason: REFGUID, phwnd: ptr HWND + ): HRESULT {.stdcall.} + LPWINDOWFORBINDINGUI* = ptr IWindowForBindingUI ICodeInstall* {.pure.} = object lpVtbl*: ptr ICodeInstallVtbl + ICodeInstallVtbl* {.pure, inheritable.} = object of IWindowForBindingUIVtbl - OnCodeInstallProblem*: proc(self: ptr ICodeInstall, ulStatusCode: ULONG, szDestination: LPCWSTR, szSource: LPCWSTR, dwReserved: DWORD): HRESULT {.stdcall.} + OnCodeInstallProblem*: proc( + self: ptr ICodeInstall, + ulStatusCode: ULONG, + szDestination: LPCWSTR, + szSource: LPCWSTR, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + LPCODEINSTALL* = ptr ICodeInstall IWinInetInfo* {.pure.} = object lpVtbl*: ptr IWinInetInfoVtbl + IWinInetInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryOption*: proc(self: ptr IWinInetInfo, dwOption: DWORD, pBuffer: LPVOID, pcbBuf: ptr DWORD): HRESULT {.stdcall.} + QueryOption*: proc( + self: ptr IWinInetInfo, dwOption: DWORD, pBuffer: LPVOID, pcbBuf: ptr DWORD + ): HRESULT {.stdcall.} + LPWININETINFO* = ptr IWinInetInfo IHttpSecurity* {.pure.} = object lpVtbl*: ptr IHttpSecurityVtbl + IHttpSecurityVtbl* {.pure, inheritable.} = object of IWindowForBindingUIVtbl - OnSecurityProblem*: proc(self: ptr IHttpSecurity, dwProblem: DWORD): HRESULT {.stdcall.} + OnSecurityProblem*: + proc(self: ptr IHttpSecurity, dwProblem: DWORD): HRESULT {.stdcall.} + LPHTTPSECURITY* = ptr IHttpSecurity IWinInetHttpInfo* {.pure.} = object lpVtbl*: ptr IWinInetHttpInfoVtbl + IWinInetHttpInfoVtbl* {.pure, inheritable.} = object of IWinInetInfoVtbl - QueryInfo*: proc(self: ptr IWinInetHttpInfo, dwOption: DWORD, pBuffer: LPVOID, pcbBuf: ptr DWORD, pdwFlags: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.stdcall.} + QueryInfo*: proc( + self: ptr IWinInetHttpInfo, + dwOption: DWORD, + pBuffer: LPVOID, + pcbBuf: ptr DWORD, + pdwFlags: ptr DWORD, + pdwReserved: ptr DWORD, + ): HRESULT {.stdcall.} + LPWININETHTTPINFO* = ptr IWinInetHttpInfo IWinInetCacheHints* {.pure.} = object lpVtbl*: ptr IWinInetCacheHintsVtbl + IWinInetCacheHintsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetCacheExtension*: proc(self: ptr IWinInetCacheHints, pwzExt: LPCWSTR, pszCacheFile: LPVOID, pcbCacheFile: ptr DWORD, pdwWinInetError: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.stdcall.} + SetCacheExtension*: proc( + self: ptr IWinInetCacheHints, + pwzExt: LPCWSTR, + pszCacheFile: LPVOID, + pcbCacheFile: ptr DWORD, + pdwWinInetError: ptr DWORD, + pdwReserved: ptr DWORD, + ): HRESULT {.stdcall.} + LPWININETCACHEHINTS* = ptr IWinInetCacheHints IWinInetCacheHints2* {.pure.} = object lpVtbl*: ptr IWinInetCacheHints2Vtbl + IWinInetCacheHints2Vtbl* {.pure, inheritable.} = object of IWinInetCacheHintsVtbl - SetCacheExtension2*: proc(self: ptr IWinInetCacheHints2, pwzExt: LPCWSTR, pwzCacheFile: ptr WCHAR, pcchCacheFile: ptr DWORD, pdwWinInetError: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.stdcall.} + SetCacheExtension2*: proc( + self: ptr IWinInetCacheHints2, + pwzExt: LPCWSTR, + pwzCacheFile: ptr WCHAR, + pcchCacheFile: ptr DWORD, + pdwWinInetError: ptr DWORD, + pdwReserved: ptr DWORD, + ): HRESULT {.stdcall.} + LPWININETCACHEHINTS2* = ptr IWinInetCacheHints2 IBindHost* {.pure.} = object lpVtbl*: ptr IBindHostVtbl + IBindHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateMoniker*: proc(self: ptr IBindHost, szName: LPOLESTR, pBC: ptr IBindCtx, ppmk: ptr ptr IMoniker, dwReserved: DWORD): HRESULT {.stdcall.} - MonikerBindToStorage*: proc(self: ptr IBindHost, pMk: ptr IMoniker, pBC: ptr IBindCtx, pBSC: ptr IBindStatusCallback, riid: REFIID, ppvObj: ptr pointer): HRESULT {.stdcall.} - MonikerBindToObject*: proc(self: ptr IBindHost, pMk: ptr IMoniker, pBC: ptr IBindCtx, pBSC: ptr IBindStatusCallback, riid: REFIID, ppvObj: ptr pointer): HRESULT {.stdcall.} + CreateMoniker*: proc( + self: ptr IBindHost, + szName: LPOLESTR, + pBC: ptr IBindCtx, + ppmk: ptr ptr IMoniker, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + MonikerBindToStorage*: proc( + self: ptr IBindHost, + pMk: ptr IMoniker, + pBC: ptr IBindCtx, + pBSC: ptr IBindStatusCallback, + riid: REFIID, + ppvObj: ptr pointer, + ): HRESULT {.stdcall.} + MonikerBindToObject*: proc( + self: ptr IBindHost, + pMk: ptr IMoniker, + pBC: ptr IBindCtx, + pBSC: ptr IBindStatusCallback, + riid: REFIID, + ppvObj: ptr pointer, + ): HRESULT {.stdcall.} + LPBINDHOST* = ptr IBindHost IInternet* {.pure.} = object lpVtbl*: ptr IInternetVtbl + IInternetVtbl* {.pure, inheritable.} = object of IUnknownVtbl LPIINTERNET* = ptr IInternet IInternetBindInfo* {.pure.} = object lpVtbl*: ptr IInternetBindInfoVtbl + IInternetBindInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetBindInfo*: proc(self: ptr IInternetBindInfo, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO): HRESULT {.stdcall.} - GetBindString*: proc(self: ptr IInternetBindInfo, ulStringType: ULONG, ppwzStr: ptr LPOLESTR, cEl: ULONG, pcElFetched: ptr ULONG): HRESULT {.stdcall.} + GetBindInfo*: proc( + self: ptr IInternetBindInfo, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO + ): HRESULT {.stdcall.} + GetBindString*: proc( + self: ptr IInternetBindInfo, + ulStringType: ULONG, + ppwzStr: ptr LPOLESTR, + cEl: ULONG, + pcElFetched: ptr ULONG, + ): HRESULT {.stdcall.} + LPIINTERNETBINDINFO* = ptr IInternetBindInfo IInternetBindInfoEx* {.pure.} = object lpVtbl*: ptr IInternetBindInfoExVtbl + IInternetBindInfoExVtbl* {.pure, inheritable.} = object of IInternetBindInfoVtbl - GetBindInfoEx*: proc(self: ptr IInternetBindInfoEx, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO, grfBINDF2: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.stdcall.} + GetBindInfoEx*: proc( + self: ptr IInternetBindInfoEx, + grfBINDF: ptr DWORD, + pbindinfo: ptr BINDINFO, + grfBINDF2: ptr DWORD, + pdwReserved: ptr DWORD, + ): HRESULT {.stdcall.} + LPIINTERNETBINDINFOEX* = ptr IInternetBindInfoEx PROTOCOLDATA* {.pure.} = object grfFlags*: DWORD dwState*: DWORD pData*: LPVOID cbData*: ULONG + IInternetProtocolSink* {.pure.} = object lpVtbl*: ptr IInternetProtocolSinkVtbl + IInternetProtocolSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Switch*: proc(self: ptr IInternetProtocolSink, pProtocolData: ptr PROTOCOLDATA): HRESULT {.stdcall.} - ReportProgress*: proc(self: ptr IInternetProtocolSink, ulStatusCode: ULONG, szStatusText: LPCWSTR): HRESULT {.stdcall.} - ReportData*: proc(self: ptr IInternetProtocolSink, grfBSCF: DWORD, ulProgress: ULONG, ulProgressMax: ULONG): HRESULT {.stdcall.} - ReportResult*: proc(self: ptr IInternetProtocolSink, hrResult: HRESULT, dwError: DWORD, szResult: LPCWSTR): HRESULT {.stdcall.} + Switch*: proc( + self: ptr IInternetProtocolSink, pProtocolData: ptr PROTOCOLDATA + ): HRESULT {.stdcall.} + ReportProgress*: proc( + self: ptr IInternetProtocolSink, ulStatusCode: ULONG, szStatusText: LPCWSTR + ): HRESULT {.stdcall.} + ReportData*: proc( + self: ptr IInternetProtocolSink, + grfBSCF: DWORD, + ulProgress: ULONG, + ulProgressMax: ULONG, + ): HRESULT {.stdcall.} + ReportResult*: proc( + self: ptr IInternetProtocolSink, + hrResult: HRESULT, + dwError: DWORD, + szResult: LPCWSTR, + ): HRESULT {.stdcall.} + IInternetProtocolRoot* {.pure.} = object lpVtbl*: ptr IInternetProtocolRootVtbl + IInternetProtocolRootVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Start*: proc(self: ptr IInternetProtocolRoot, szUrl: LPCWSTR, pOIProtSink: ptr IInternetProtocolSink, pOIBindInfo: ptr IInternetBindInfo, grfPI: DWORD, dwReserved: HANDLE_PTR): HRESULT {.stdcall.} - Continue*: proc(self: ptr IInternetProtocolRoot, pProtocolData: ptr PROTOCOLDATA): HRESULT {.stdcall.} - Abort*: proc(self: ptr IInternetProtocolRoot, hrReason: HRESULT, dwOptions: DWORD): HRESULT {.stdcall.} - Terminate*: proc(self: ptr IInternetProtocolRoot, dwOptions: DWORD): HRESULT {.stdcall.} + Start*: proc( + self: ptr IInternetProtocolRoot, + szUrl: LPCWSTR, + pOIProtSink: ptr IInternetProtocolSink, + pOIBindInfo: ptr IInternetBindInfo, + grfPI: DWORD, + dwReserved: HANDLE_PTR, + ): HRESULT {.stdcall.} + Continue*: proc( + self: ptr IInternetProtocolRoot, pProtocolData: ptr PROTOCOLDATA + ): HRESULT {.stdcall.} + Abort*: proc( + self: ptr IInternetProtocolRoot, hrReason: HRESULT, dwOptions: DWORD + ): HRESULT {.stdcall.} + Terminate*: + proc(self: ptr IInternetProtocolRoot, dwOptions: DWORD): HRESULT {.stdcall.} Suspend*: proc(self: ptr IInternetProtocolRoot): HRESULT {.stdcall.} Resume*: proc(self: ptr IInternetProtocolRoot): HRESULT {.stdcall.} + LPIINTERNETPROTOCOLROOT* = ptr IInternetProtocolRoot IInternetProtocol* {.pure.} = object lpVtbl*: ptr IInternetProtocolVtbl + IInternetProtocolVtbl* {.pure, inheritable.} = object of IInternetProtocolRootVtbl - Read*: proc(self: ptr IInternetProtocol, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.stdcall.} - Seek*: proc(self: ptr IInternetProtocol, dlibMove: LARGE_INTEGER, dwOrigin: DWORD, plibNewPosition: ptr ULARGE_INTEGER): HRESULT {.stdcall.} - LockRequest*: proc(self: ptr IInternetProtocol, dwOptions: DWORD): HRESULT {.stdcall.} + Read*: proc( + self: ptr IInternetProtocol, pv: pointer, cb: ULONG, pcbRead: ptr ULONG + ): HRESULT {.stdcall.} + Seek*: proc( + self: ptr IInternetProtocol, + dlibMove: LARGE_INTEGER, + dwOrigin: DWORD, + plibNewPosition: ptr ULARGE_INTEGER, + ): HRESULT {.stdcall.} + LockRequest*: + proc(self: ptr IInternetProtocol, dwOptions: DWORD): HRESULT {.stdcall.} UnlockRequest*: proc(self: ptr IInternetProtocol): HRESULT {.stdcall.} + LPIINTERNETPROTOCOL* = ptr IInternetProtocol LPIINTERNETPROTOCOLSINK* = ptr IInternetProtocolSink IInternetProtocolSinkStackable* {.pure.} = object lpVtbl*: ptr IInternetProtocolSinkStackableVtbl + IInternetProtocolSinkStackableVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SwitchSink*: proc(self: ptr IInternetProtocolSinkStackable, pOIProtSink: ptr IInternetProtocolSink): HRESULT {.stdcall.} + SwitchSink*: proc( + self: ptr IInternetProtocolSinkStackable, pOIProtSink: ptr IInternetProtocolSink + ): HRESULT {.stdcall.} CommitSwitch*: proc(self: ptr IInternetProtocolSinkStackable): HRESULT {.stdcall.} RollbackSwitch*: proc(self: ptr IInternetProtocolSinkStackable): HRESULT {.stdcall.} + LPIINTERNETPROTOCOLSINKStackable* = ptr IInternetProtocolSinkStackable IInternetSession* {.pure.} = object lpVtbl*: ptr IInternetSessionVtbl + IInternetSessionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterNameSpace*: proc(self: ptr IInternetSession, pCF: ptr IClassFactory, rclsid: REFCLSID, pwzProtocol: LPCWSTR, cPatterns: ULONG, ppwzPatterns: ptr LPCWSTR, dwReserved: DWORD): HRESULT {.stdcall.} - UnregisterNameSpace*: proc(self: ptr IInternetSession, pCF: ptr IClassFactory, pszProtocol: LPCWSTR): HRESULT {.stdcall.} - RegisterMimeFilter*: proc(self: ptr IInternetSession, pCF: ptr IClassFactory, rclsid: REFCLSID, pwzType: LPCWSTR): HRESULT {.stdcall.} - UnregisterMimeFilter*: proc(self: ptr IInternetSession, pCF: ptr IClassFactory, pwzType: LPCWSTR): HRESULT {.stdcall.} - CreateBinding*: proc(self: ptr IInternetSession, pBC: LPBC, szUrl: LPCWSTR, pUnkOuter: ptr IUnknown, ppUnk: ptr ptr IUnknown, ppOInetProt: ptr ptr IInternetProtocol, dwOption: DWORD): HRESULT {.stdcall.} - SetSessionOption*: proc(self: ptr IInternetSession, dwOption: DWORD, pBuffer: LPVOID, dwBufferLength: DWORD, dwReserved: DWORD): HRESULT {.stdcall.} - GetSessionOption*: proc(self: ptr IInternetSession, dwOption: DWORD, pBuffer: LPVOID, pdwBufferLength: ptr DWORD, dwReserved: DWORD): HRESULT {.stdcall.} + RegisterNameSpace*: proc( + self: ptr IInternetSession, + pCF: ptr IClassFactory, + rclsid: REFCLSID, + pwzProtocol: LPCWSTR, + cPatterns: ULONG, + ppwzPatterns: ptr LPCWSTR, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + UnregisterNameSpace*: proc( + self: ptr IInternetSession, pCF: ptr IClassFactory, pszProtocol: LPCWSTR + ): HRESULT {.stdcall.} + RegisterMimeFilter*: proc( + self: ptr IInternetSession, + pCF: ptr IClassFactory, + rclsid: REFCLSID, + pwzType: LPCWSTR, + ): HRESULT {.stdcall.} + UnregisterMimeFilter*: proc( + self: ptr IInternetSession, pCF: ptr IClassFactory, pwzType: LPCWSTR + ): HRESULT {.stdcall.} + CreateBinding*: proc( + self: ptr IInternetSession, + pBC: LPBC, + szUrl: LPCWSTR, + pUnkOuter: ptr IUnknown, + ppUnk: ptr ptr IUnknown, + ppOInetProt: ptr ptr IInternetProtocol, + dwOption: DWORD, + ): HRESULT {.stdcall.} + SetSessionOption*: proc( + self: ptr IInternetSession, + dwOption: DWORD, + pBuffer: LPVOID, + dwBufferLength: DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + GetSessionOption*: proc( + self: ptr IInternetSession, + dwOption: DWORD, + pBuffer: LPVOID, + pdwBufferLength: ptr DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + LPIINTERNETSESSION* = ptr IInternetSession IInternetThreadSwitch* {.pure.} = object lpVtbl*: ptr IInternetThreadSwitchVtbl + IInternetThreadSwitchVtbl* {.pure, inheritable.} = object of IUnknownVtbl Prepare*: proc(self: ptr IInternetThreadSwitch): HRESULT {.stdcall.} Continue*: proc(self: ptr IInternetThreadSwitch): HRESULT {.stdcall.} + LPIINTERNETTHREADSWITCH* = ptr IInternetThreadSwitch IInternetPriority* {.pure.} = object lpVtbl*: ptr IInternetPriorityVtbl + IInternetPriorityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetPriority*: proc(self: ptr IInternetPriority, nPriority: LONG): HRESULT {.stdcall.} - GetPriority*: proc(self: ptr IInternetPriority, pnPriority: ptr LONG): HRESULT {.stdcall.} + SetPriority*: + proc(self: ptr IInternetPriority, nPriority: LONG): HRESULT {.stdcall.} + GetPriority*: + proc(self: ptr IInternetPriority, pnPriority: ptr LONG): HRESULT {.stdcall.} + LPIINTERNETPRIORITY* = ptr IInternetPriority IInternetProtocolInfo* {.pure.} = object lpVtbl*: ptr IInternetProtocolInfoVtbl + IInternetProtocolInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseUrl*: proc(self: ptr IInternetProtocolInfo, pwzUrl: LPCWSTR, ParseAction: PARSEACTION, dwParseFlags: DWORD, pwzResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.stdcall.} - CombineUrl*: proc(self: ptr IInternetProtocolInfo, pwzBaseUrl: LPCWSTR, pwzRelativeUrl: LPCWSTR, dwCombineFlags: DWORD, pwzResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.stdcall.} - CompareUrl*: proc(self: ptr IInternetProtocolInfo, pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwCompareFlags: DWORD): HRESULT {.stdcall.} - QueryInfo*: proc(self: ptr IInternetProtocolInfo, pwzUrl: LPCWSTR, OueryOption: QUERYOPTION, dwQueryFlags: DWORD, pBuffer: LPVOID, cbBuffer: DWORD, pcbBuf: ptr DWORD, dwReserved: DWORD): HRESULT {.stdcall.} + ParseUrl*: proc( + self: ptr IInternetProtocolInfo, + pwzUrl: LPCWSTR, + ParseAction: PARSEACTION, + dwParseFlags: DWORD, + pwzResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + CombineUrl*: proc( + self: ptr IInternetProtocolInfo, + pwzBaseUrl: LPCWSTR, + pwzRelativeUrl: LPCWSTR, + dwCombineFlags: DWORD, + pwzResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + CompareUrl*: proc( + self: ptr IInternetProtocolInfo, + pwzUrl1: LPCWSTR, + pwzUrl2: LPCWSTR, + dwCompareFlags: DWORD, + ): HRESULT {.stdcall.} + QueryInfo*: proc( + self: ptr IInternetProtocolInfo, + pwzUrl: LPCWSTR, + OueryOption: QUERYOPTION, + dwQueryFlags: DWORD, + pBuffer: LPVOID, + cbBuffer: DWORD, + pcbBuf: ptr DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + LPIINTERNETPROTOCOLINFO* = ptr IInternetProtocolInfo IOInet* = IInternet IOInetBindInfo* = IInternetBindInfo @@ -1909,21 +3377,33 @@ IOInetProtocol* = IInternetProtocol IUri* {.pure.} = object lpVtbl*: ptr IUriVtbl + IUriVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPropertyBSTR*: proc(self: ptr IUri, uriProp: Uri_PROPERTY, pbstrProperty: ptr BSTR, dwFlags: DWORD): HRESULT {.stdcall.} - GetPropertyLength*: proc(self: ptr IUri, uriProp: Uri_PROPERTY, pcchProperty: ptr DWORD, dwFlags: DWORD): HRESULT {.stdcall.} - GetPropertyDWORD*: proc(self: ptr IUri, uriProp: Uri_PROPERTY, pdwProperty: ptr DWORD, dwFlags: DWORD): HRESULT {.stdcall.} - HasProperty*: proc(self: ptr IUri, uriProp: Uri_PROPERTY, pfHasProperty: ptr WINBOOL): HRESULT {.stdcall.} - GetAbsoluteUri*: proc(self: ptr IUri, pbstrAbsoluteUri: ptr BSTR): HRESULT {.stdcall.} + GetPropertyBSTR*: proc( + self: ptr IUri, uriProp: Uri_PROPERTY, pbstrProperty: ptr BSTR, dwFlags: DWORD + ): HRESULT {.stdcall.} + GetPropertyLength*: proc( + self: ptr IUri, uriProp: Uri_PROPERTY, pcchProperty: ptr DWORD, dwFlags: DWORD + ): HRESULT {.stdcall.} + GetPropertyDWORD*: proc( + self: ptr IUri, uriProp: Uri_PROPERTY, pdwProperty: ptr DWORD, dwFlags: DWORD + ): HRESULT {.stdcall.} + HasProperty*: proc( + self: ptr IUri, uriProp: Uri_PROPERTY, pfHasProperty: ptr WINBOOL + ): HRESULT {.stdcall.} + GetAbsoluteUri*: + proc(self: ptr IUri, pbstrAbsoluteUri: ptr BSTR): HRESULT {.stdcall.} GetAuthority*: proc(self: ptr IUri, pbstrAuthority: ptr BSTR): HRESULT {.stdcall.} - GetDisplayUri*: proc(self: ptr IUri, pbstrDisplayString: ptr BSTR): HRESULT {.stdcall.} + GetDisplayUri*: + proc(self: ptr IUri, pbstrDisplayString: ptr BSTR): HRESULT {.stdcall.} GetDomain*: proc(self: ptr IUri, pbstrDomain: ptr BSTR): HRESULT {.stdcall.} GetExtension*: proc(self: ptr IUri, pbstrExtension: ptr BSTR): HRESULT {.stdcall.} GetFragment*: proc(self: ptr IUri, pbstrFragment: ptr BSTR): HRESULT {.stdcall.} GetHost*: proc(self: ptr IUri, pbstrHost: ptr BSTR): HRESULT {.stdcall.} GetPassword*: proc(self: ptr IUri, pbstrPassword: ptr BSTR): HRESULT {.stdcall.} GetPath*: proc(self: ptr IUri, pbstrPath: ptr BSTR): HRESULT {.stdcall.} - GetPathAndQuery*: proc(self: ptr IUri, pbstrPathAndQuery: ptr BSTR): HRESULT {.stdcall.} + GetPathAndQuery*: + proc(self: ptr IUri, pbstrPathAndQuery: ptr BSTR): HRESULT {.stdcall.} GetQuery*: proc(self: ptr IUri, pbstrQuery: ptr BSTR): HRESULT {.stdcall.} GetRawUri*: proc(self: ptr IUri, pbstrRawUri: ptr BSTR): HRESULT {.stdcall.} GetSchemeName*: proc(self: ptr IUri, pbstrSchemeName: ptr BSTR): HRESULT {.stdcall.} @@ -1934,11 +3414,22 @@ GetScheme*: proc(self: ptr IUri, pdwScheme: ptr DWORD): HRESULT {.stdcall.} GetZone*: proc(self: ptr IUri, pdwZone: ptr DWORD): HRESULT {.stdcall.} GetProperties*: proc(self: ptr IUri, pdwFlags: LPDWORD): HRESULT {.stdcall.} - IsEqual*: proc(self: ptr IUri, pUri: ptr IUri, pfEqual: ptr WINBOOL): HRESULT {.stdcall.} + IsEqual*: + proc(self: ptr IUri, pUri: ptr IUri, pfEqual: ptr WINBOOL): HRESULT {.stdcall.} + IInternetProtocolEx* {.pure.} = object lpVtbl*: ptr IInternetProtocolExVtbl + IInternetProtocolExVtbl* {.pure, inheritable.} = object of IInternetProtocolVtbl - StartEx*: proc(self: ptr IInternetProtocolEx, pUri: ptr IUri, pOIProtSink: ptr IInternetProtocolSink, pOIBindInfo: ptr IInternetBindInfo, grfPI: DWORD, dwReserved: HANDLE_PTR): HRESULT {.stdcall.} + StartEx*: proc( + self: ptr IInternetProtocolEx, + pUri: ptr IUri, + pOIProtSink: ptr IInternetProtocolSink, + pOIBindInfo: ptr IInternetBindInfo, + grfPI: DWORD, + dwReserved: HANDLE_PTR, + ): HRESULT {.stdcall.} + IOInetProtocolEx* = IInternetProtocolEx IOInetProtocolSink* = IInternetProtocolSink IOInetProtocolInfo* = IInternetProtocolInfo @@ -1965,136 +3456,278 @@ dwTemplateRecommended*: DWORD dwTemplateCurrentLevel*: DWORD dwFlags*: DWORD + IInternetZoneManager* {.pure.} = object lpVtbl*: ptr IInternetZoneManagerVtbl + IInternetZoneManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetZoneAttributes*: proc(self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES): HRESULT {.stdcall.} - SetZoneAttributes*: proc(self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES): HRESULT {.stdcall.} - GetZoneCustomPolicy*: proc(self: ptr IInternetZoneManager, dwZone: DWORD, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, urlZoneReg: URLZONEREG): HRESULT {.stdcall.} - SetZoneCustomPolicy*: proc(self: ptr IInternetZoneManager, dwZone: DWORD, guidKey: REFGUID, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG): HRESULT {.stdcall.} - GetZoneActionPolicy*: proc(self: ptr IInternetZoneManager, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG): HRESULT {.stdcall.} - SetZoneActionPolicy*: proc(self: ptr IInternetZoneManager, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG): HRESULT {.stdcall.} - PromptAction*: proc(self: ptr IInternetZoneManager, dwAction: DWORD, hwndParent: HWND, pwszUrl: LPCWSTR, pwszText: LPCWSTR, dwPromptFlags: DWORD): HRESULT {.stdcall.} - LogAction*: proc(self: ptr IInternetZoneManager, dwAction: DWORD, pwszUrl: LPCWSTR, pwszText: LPCWSTR, dwLogFlags: DWORD): HRESULT {.stdcall.} - CreateZoneEnumerator*: proc(self: ptr IInternetZoneManager, pdwEnum: ptr DWORD, pdwCount: ptr DWORD, dwFlags: DWORD): HRESULT {.stdcall.} - GetZoneAt*: proc(self: ptr IInternetZoneManager, dwEnum: DWORD, dwIndex: DWORD, pdwZone: ptr DWORD): HRESULT {.stdcall.} - DestroyZoneEnumerator*: proc(self: ptr IInternetZoneManager, dwEnum: DWORD): HRESULT {.stdcall.} - CopyTemplatePoliciesToZone*: proc(self: ptr IInternetZoneManager, dwTemplate: DWORD, dwZone: DWORD, dwReserved: DWORD): HRESULT {.stdcall.} + GetZoneAttributes*: proc( + self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES + ): HRESULT {.stdcall.} + SetZoneAttributes*: proc( + self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES + ): HRESULT {.stdcall.} + GetZoneCustomPolicy*: proc( + self: ptr IInternetZoneManager, + dwZone: DWORD, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + urlZoneReg: URLZONEREG, + ): HRESULT {.stdcall.} + SetZoneCustomPolicy*: proc( + self: ptr IInternetZoneManager, + dwZone: DWORD, + guidKey: REFGUID, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + ): HRESULT {.stdcall.} + GetZoneActionPolicy*: proc( + self: ptr IInternetZoneManager, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + ): HRESULT {.stdcall.} + SetZoneActionPolicy*: proc( + self: ptr IInternetZoneManager, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + ): HRESULT {.stdcall.} + PromptAction*: proc( + self: ptr IInternetZoneManager, + dwAction: DWORD, + hwndParent: HWND, + pwszUrl: LPCWSTR, + pwszText: LPCWSTR, + dwPromptFlags: DWORD, + ): HRESULT {.stdcall.} + LogAction*: proc( + self: ptr IInternetZoneManager, + dwAction: DWORD, + pwszUrl: LPCWSTR, + pwszText: LPCWSTR, + dwLogFlags: DWORD, + ): HRESULT {.stdcall.} + CreateZoneEnumerator*: proc( + self: ptr IInternetZoneManager, + pdwEnum: ptr DWORD, + pdwCount: ptr DWORD, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetZoneAt*: proc( + self: ptr IInternetZoneManager, dwEnum: DWORD, dwIndex: DWORD, pdwZone: ptr DWORD + ): HRESULT {.stdcall.} + DestroyZoneEnumerator*: + proc(self: ptr IInternetZoneManager, dwEnum: DWORD): HRESULT {.stdcall.} + CopyTemplatePoliciesToZone*: proc( + self: ptr IInternetZoneManager, + dwTemplate: DWORD, + dwZone: DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + LPURLZONEMANAGER* = ptr IInternetZoneManager LPZONEATTRIBUTES* = ptr ZONEATTRIBUTES ICatalogFileInfo* {.pure.} = object lpVtbl*: ptr ICatalogFileInfoVtbl + ICatalogFileInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCatalogFile*: proc(self: ptr ICatalogFileInfo, ppszCatalogFile: ptr LPSTR): HRESULT {.stdcall.} - GetJavaTrust*: proc(self: ptr ICatalogFileInfo, ppJavaTrust: ptr pointer): HRESULT {.stdcall.} + GetCatalogFile*: + proc(self: ptr ICatalogFileInfo, ppszCatalogFile: ptr LPSTR): HRESULT {.stdcall.} + GetJavaTrust*: + proc(self: ptr ICatalogFileInfo, ppJavaTrust: ptr pointer): HRESULT {.stdcall.} + LPCATALOGFILEINFO* = ptr ICatalogFileInfo IDataFilter* {.pure.} = object lpVtbl*: ptr IDataFilterVtbl + IDataFilterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - DoEncode*: proc(self: ptr IDataFilter, dwFlags: DWORD, lInBufferSize: LONG, pbInBuffer: ptr BYTE, lOutBufferSize: LONG, pbOutBuffer: ptr BYTE, lInBytesAvailable: LONG, plInBytesRead: ptr LONG, plOutBytesWritten: ptr LONG, dwReserved: DWORD): HRESULT {.stdcall.} - DoDecode*: proc(self: ptr IDataFilter, dwFlags: DWORD, lInBufferSize: LONG, pbInBuffer: ptr BYTE, lOutBufferSize: LONG, pbOutBuffer: ptr BYTE, lInBytesAvailable: LONG, plInBytesRead: ptr LONG, plOutBytesWritten: ptr LONG, dwReserved: DWORD): HRESULT {.stdcall.} - SetEncodingLevel*: proc(self: ptr IDataFilter, dwEncLevel: DWORD): HRESULT {.stdcall.} + DoEncode*: proc( + self: ptr IDataFilter, + dwFlags: DWORD, + lInBufferSize: LONG, + pbInBuffer: ptr BYTE, + lOutBufferSize: LONG, + pbOutBuffer: ptr BYTE, + lInBytesAvailable: LONG, + plInBytesRead: ptr LONG, + plOutBytesWritten: ptr LONG, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + DoDecode*: proc( + self: ptr IDataFilter, + dwFlags: DWORD, + lInBufferSize: LONG, + pbInBuffer: ptr BYTE, + lOutBufferSize: LONG, + pbOutBuffer: ptr BYTE, + lInBytesAvailable: LONG, + plInBytesRead: ptr LONG, + plOutBytesWritten: ptr LONG, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + SetEncodingLevel*: + proc(self: ptr IDataFilter, dwEncLevel: DWORD): HRESULT {.stdcall.} + LPDATAFILTER* = ptr IDataFilter DATAINFO* {.pure.} = object ulTotalSize*: ULONG ulavrPacketSize*: ULONG ulConnectSpeed*: ULONG ulProcessorSpeed*: ULONG + IEncodingFilterFactory* {.pure.} = object lpVtbl*: ptr IEncodingFilterFactoryVtbl + IEncodingFilterFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FindBestFilter*: proc(self: ptr IEncodingFilterFactory, pwzCodeIn: LPCWSTR, pwzCodeOut: LPCWSTR, info: DATAINFO, ppDF: ptr ptr IDataFilter): HRESULT {.stdcall.} - GetDefaultFilter*: proc(self: ptr IEncodingFilterFactory, pwzCodeIn: LPCWSTR, pwzCodeOut: LPCWSTR, ppDF: ptr ptr IDataFilter): HRESULT {.stdcall.} + FindBestFilter*: proc( + self: ptr IEncodingFilterFactory, + pwzCodeIn: LPCWSTR, + pwzCodeOut: LPCWSTR, + info: DATAINFO, + ppDF: ptr ptr IDataFilter, + ): HRESULT {.stdcall.} + GetDefaultFilter*: proc( + self: ptr IEncodingFilterFactory, + pwzCodeIn: LPCWSTR, + pwzCodeOut: LPCWSTR, + ppDF: ptr ptr IDataFilter, + ): HRESULT {.stdcall.} + LPENCODINGFILTERFACTORY* = ptr IEncodingFilterFactory IWrappedProtocol* {.pure.} = object lpVtbl*: ptr IWrappedProtocolVtbl + IWrappedProtocolVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetWrapperCode*: proc(self: ptr IWrappedProtocol, pnCode: ptr LONG, dwReserved: DWORD_PTR): HRESULT {.stdcall.} + GetWrapperCode*: proc( + self: ptr IWrappedProtocol, pnCode: ptr LONG, dwReserved: DWORD_PTR + ): HRESULT {.stdcall.} + LPIWRAPPEDPROTOCOL* = ptr IWrappedProtocol IGetBindHandle* {.pure.} = object lpVtbl*: ptr IGetBindHandleVtbl + IGetBindHandleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetBindHandle*: proc(self: ptr IGetBindHandle, enumRequestedHandle: BINDHANDLETYPES, pRetHandle: ptr HANDLE): HRESULT {.stdcall.} + GetBindHandle*: proc( + self: ptr IGetBindHandle, + enumRequestedHandle: BINDHANDLETYPES, + pRetHandle: ptr HANDLE, + ): HRESULT {.stdcall.} + LPGETBINDHANDLE* = ptr IGetBindHandle IBindCallbackRedirect* {.pure.} = object lpVtbl*: ptr IBindCallbackRedirectVtbl + IBindCallbackRedirectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Redirect*: proc(self: ptr IBindCallbackRedirect, lpcUrl: LPCWSTR, vbCancel: ptr VARIANT_BOOL): HRESULT {.stdcall.} + Redirect*: proc( + self: ptr IBindCallbackRedirect, lpcUrl: LPCWSTR, vbCancel: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + LPBINDCALLBACKREDIRECT* = ptr IBindCallbackRedirect CLIPDATA* {.pure.} = object cbSize*: ULONG ulClipFmt*: LONG pClipData*: ptr BYTE + VERSIONEDSTREAM* {.pure.} = object guidVersion*: GUID pStream*: ptr IStream + LPVERSIONEDSTREAM* = ptr VERSIONEDSTREAM CAC* {.pure.} = object cElems*: ULONG pElems*: ptr CHAR + CAUB* {.pure.} = object cElems*: ULONG pElems*: ptr UCHAR + CAI* {.pure.} = object cElems*: ULONG pElems*: ptr SHORT + CAUI* {.pure.} = object cElems*: ULONG pElems*: ptr USHORT + CAL* {.pure.} = object cElems*: ULONG pElems*: ptr LONG + CAUL* {.pure.} = object cElems*: ULONG pElems*: ptr ULONG + CAH* {.pure.} = object cElems*: ULONG pElems*: ptr LARGE_INTEGER + CAUH* {.pure.} = object cElems*: ULONG pElems*: ptr ULARGE_INTEGER + CAFLT* {.pure.} = object cElems*: ULONG pElems*: ptr FLOAT + CADBL* {.pure.} = object cElems*: ULONG pElems*: ptr DOUBLE + CABOOL* {.pure.} = object cElems*: ULONG pElems*: ptr VARIANT_BOOL + CASCODE* {.pure.} = object cElems*: ULONG pElems*: ptr SCODE + CACY* {.pure.} = object cElems*: ULONG pElems*: ptr CY + CADATE* {.pure.} = object cElems*: ULONG pElems*: ptr DATE + CAFILETIME* {.pure.} = object cElems*: ULONG pElems*: ptr FILETIME + CACLSID* {.pure.} = object cElems*: ULONG pElems*: ptr CLSID + CACLIPDATA* {.pure.} = object cElems*: ULONG pElems*: ptr CLIPDATA + CABSTR* {.pure.} = object cElems*: ULONG pElems*: ptr BSTR + CABSTRBLOB* {.pure.} = object cElems*: ULONG pElems*: ptr BSTRBLOB + CALPSTR* {.pure.} = object cElems*: ULONG pElems*: ptr LPSTR + CALPWSTR* {.pure.} = object cElems*: ULONG pElems*: ptr LPWSTR + CAPROPVARIANT* {.pure.} = object cElems*: ULONG pElems*: ptr PROPVARIANT + PROPVARIANT_UNION1_STRUCT1_UNION1* {.pure, union.} = object cVal*: CHAR bVal*: UCHAR @@ -2168,36 +3801,52 @@ ppdispVal*: ptr ptr IDispatch pparray*: ptr LPSAFEARRAY pvarVal*: ptr PROPVARIANT + PROPVARIANT_UNION1_STRUCT1* {.pure.} = object vt*: VARTYPE wReserved1*: PROPVAR_PAD1 wReserved2*: PROPVAR_PAD2 wReserved3*: PROPVAR_PAD3 union1*: PROPVARIANT_UNION1_STRUCT1_UNION1 + PROPVARIANT_UNION1* {.pure, union.} = object struct1*: PROPVARIANT_UNION1_STRUCT1 decVal*: DECIMAL + PROPVARIANT* {.pure.} = object union1*: PROPVARIANT_UNION1 + LPPROPVARIANT* = ptr PROPVARIANT REFPROPVARIANT* = ptr PROPVARIANT PROPSPEC_UNION1* {.pure, union.} = object propid*: PROPID lpwstr*: LPOLESTR + PROPSPEC* {.pure.} = object ulKind*: ULONG union1*: PROPSPEC_UNION1 + STATPROPSTG* {.pure.} = object lpwstrName*: LPOLESTR propid*: PROPID vt*: VARTYPE + IEnumSTATPROPSTG* {.pure.} = object lpVtbl*: ptr IEnumSTATPROPSTGVtbl + IEnumSTATPROPSTGVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumSTATPROPSTG, celt: ULONG, rgelt: ptr STATPROPSTG, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumSTATPROPSTG, + celt: ULONG, + rgelt: ptr STATPROPSTG, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumSTATPROPSTG, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumSTATPROPSTG): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumSTATPROPSTG, ppenum: ptr ptr IEnumSTATPROPSTG): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumSTATPROPSTG, ppenum: ptr ptr IEnumSTATPROPSTG): HRESULT {. + stdcall + .} + STATPROPSETSTG* {.pure.} = object fmtid*: FMTID clsid*: CLSID @@ -2206,35 +3855,98 @@ ctime*: FILETIME atime*: FILETIME dwOSVersion*: DWORD + IPropertyStorage* {.pure.} = object lpVtbl*: ptr IPropertyStorageVtbl + IPropertyStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ReadMultiple*: proc(self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC, rgpropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - WriteMultiple*: proc(self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC, rgpropvar: ptr PROPVARIANT, propidNameFirst: PROPID): HRESULT {.stdcall.} - DeleteMultiple*: proc(self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC): HRESULT {.stdcall.} - ReadPropertyNames*: proc(self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID, rglpwstrName: ptr LPOLESTR): HRESULT {.stdcall.} - WritePropertyNames*: proc(self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID, rglpwstrName: ptr LPOLESTR): HRESULT {.stdcall.} - DeletePropertyNames*: proc(self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID): HRESULT {.stdcall.} - Commit*: proc(self: ptr IPropertyStorage, grfCommitFlags: DWORD): HRESULT {.stdcall.} + ReadMultiple*: proc( + self: ptr IPropertyStorage, + cpspec: ULONG, + rgpspec: ptr PROPSPEC, + rgpropvar: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + WriteMultiple*: proc( + self: ptr IPropertyStorage, + cpspec: ULONG, + rgpspec: ptr PROPSPEC, + rgpropvar: ptr PROPVARIANT, + propidNameFirst: PROPID, + ): HRESULT {.stdcall.} + DeleteMultiple*: proc( + self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC + ): HRESULT {.stdcall.} + ReadPropertyNames*: proc( + self: ptr IPropertyStorage, + cpropid: ULONG, + rgpropid: ptr PROPID, + rglpwstrName: ptr LPOLESTR, + ): HRESULT {.stdcall.} + WritePropertyNames*: proc( + self: ptr IPropertyStorage, + cpropid: ULONG, + rgpropid: ptr PROPID, + rglpwstrName: ptr LPOLESTR, + ): HRESULT {.stdcall.} + DeletePropertyNames*: proc( + self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID + ): HRESULT {.stdcall.} + Commit*: + proc(self: ptr IPropertyStorage, grfCommitFlags: DWORD): HRESULT {.stdcall.} Revert*: proc(self: ptr IPropertyStorage): HRESULT {.stdcall.} - Enum*: proc(self: ptr IPropertyStorage, ppenum: ptr ptr IEnumSTATPROPSTG): HRESULT {.stdcall.} - SetTimes*: proc(self: ptr IPropertyStorage, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.stdcall.} + Enum*: proc(self: ptr IPropertyStorage, ppenum: ptr ptr IEnumSTATPROPSTG): HRESULT {. + stdcall + .} + SetTimes*: proc( + self: ptr IPropertyStorage, + pctime: ptr FILETIME, + patime: ptr FILETIME, + pmtime: ptr FILETIME, + ): HRESULT {.stdcall.} SetClass*: proc(self: ptr IPropertyStorage, clsid: REFCLSID): HRESULT {.stdcall.} - Stat*: proc(self: ptr IPropertyStorage, pstatpsstg: ptr STATPROPSETSTG): HRESULT {.stdcall.} + Stat*: proc(self: ptr IPropertyStorage, pstatpsstg: ptr STATPROPSETSTG): HRESULT {. + stdcall + .} + IEnumSTATPROPSETSTG* {.pure.} = object lpVtbl*: ptr IEnumSTATPROPSETSTGVtbl + IEnumSTATPROPSETSTGVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumSTATPROPSETSTG, celt: ULONG, rgelt: ptr STATPROPSETSTG, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumSTATPROPSETSTG, + celt: ULONG, + rgelt: ptr STATPROPSETSTG, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumSTATPROPSETSTG, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumSTATPROPSETSTG): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumSTATPROPSETSTG, ppenum: ptr ptr IEnumSTATPROPSETSTG): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumSTATPROPSETSTG, ppenum: ptr ptr IEnumSTATPROPSETSTG + ): HRESULT {.stdcall.} + IPropertySetStorage* {.pure.} = object lpVtbl*: ptr IPropertySetStorageVtbl + IPropertySetStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Create*: proc(self: ptr IPropertySetStorage, rfmtid: REFFMTID, pclsid: ptr CLSID, grfFlags: DWORD, grfMode: DWORD, ppprstg: ptr ptr IPropertyStorage): HRESULT {.stdcall.} - Open*: proc(self: ptr IPropertySetStorage, rfmtid: REFFMTID, grfMode: DWORD, ppprstg: ptr ptr IPropertyStorage): HRESULT {.stdcall.} + Create*: proc( + self: ptr IPropertySetStorage, + rfmtid: REFFMTID, + pclsid: ptr CLSID, + grfFlags: DWORD, + grfMode: DWORD, + ppprstg: ptr ptr IPropertyStorage, + ): HRESULT {.stdcall.} + Open*: proc( + self: ptr IPropertySetStorage, + rfmtid: REFFMTID, + grfMode: DWORD, + ppprstg: ptr ptr IPropertyStorage, + ): HRESULT {.stdcall.} Delete*: proc(self: ptr IPropertySetStorage, rfmtid: REFFMTID): HRESULT {.stdcall.} - Enum*: proc(self: ptr IPropertySetStorage, ppenum: ptr ptr IEnumSTATPROPSETSTG): HRESULT {.stdcall.} + Enum*: proc( + self: ptr IPropertySetStorage, ppenum: ptr ptr IEnumSTATPROPSETSTG + ): HRESULT {.stdcall.} + LPPROPERTYSETSTORAGE* = ptr IPropertySetStorage LPENUMSTATPROPSTG* = ptr IEnumSTATPROPSTG LPENUMSTATPROPSETSTG* = ptr IEnumSTATPROPSETSTG @@ -2242,38 +3954,73 @@ CONNECTDATA* {.pure.} = object pUnk*: ptr IUnknown dwCookie*: DWORD + LPCONNECTDATA* = ptr CONNECTDATA IEnumConnections* {.pure.} = object lpVtbl*: ptr IEnumConnectionsVtbl + IEnumConnectionsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumConnections, cConnections: ULONG, rgcd: LPCONNECTDATA, pcFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumConnections, + cConnections: ULONG, + rgcd: LPCONNECTDATA, + pcFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumConnections, cConnections: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumConnections): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumConnections, ppEnum: ptr ptr IEnumConnections): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumConnections, ppEnum: ptr ptr IEnumConnections): HRESULT {. + stdcall + .} + PENUMCONNECTIONS* = ptr IEnumConnections LPENUMCONNECTIONS* = ptr IEnumConnections PCONNECTDATA* = ptr CONNECTDATA LPCONNECTIONPOINT* = ptr IConnectionPoint IEnumConnectionPoints* {.pure.} = object lpVtbl*: ptr IEnumConnectionPointsVtbl + IEnumConnectionPointsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumConnectionPoints, cConnections: ULONG, ppCP: ptr LPCONNECTIONPOINT, pcFetched: ptr ULONG): HRESULT {.stdcall.} - Skip*: proc(self: ptr IEnumConnectionPoints, cConnections: ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumConnectionPoints, + cConnections: ULONG, + ppCP: ptr LPCONNECTIONPOINT, + pcFetched: ptr ULONG, + ): HRESULT {.stdcall.} + Skip*: + proc(self: ptr IEnumConnectionPoints, cConnections: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumConnectionPoints): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumConnectionPoints, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumConnectionPoints, ppEnum: ptr ptr IEnumConnectionPoints + ): HRESULT {.stdcall.} + IConnectionPointContainer* {.pure.} = object lpVtbl*: ptr IConnectionPointContainerVtbl + IConnectionPointContainerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EnumConnectionPoints*: proc(self: ptr IConnectionPointContainer, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.stdcall.} - FindConnectionPoint*: proc(self: ptr IConnectionPointContainer, riid: REFIID, ppCP: ptr ptr IConnectionPoint): HRESULT {.stdcall.} + EnumConnectionPoints*: proc( + self: ptr IConnectionPointContainer, ppEnum: ptr ptr IEnumConnectionPoints + ): HRESULT {.stdcall.} + FindConnectionPoint*: proc( + self: ptr IConnectionPointContainer, riid: REFIID, ppCP: ptr ptr IConnectionPoint + ): HRESULT {.stdcall.} + IConnectionPoint* {.pure.} = object lpVtbl*: ptr IConnectionPointVtbl + IConnectionPointVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetConnectionInterface*: proc(self: ptr IConnectionPoint, pIID: ptr IID): HRESULT {.stdcall.} - GetConnectionPointContainer*: proc(self: ptr IConnectionPoint, ppCPC: ptr ptr IConnectionPointContainer): HRESULT {.stdcall.} - Advise*: proc(self: ptr IConnectionPoint, pUnkSink: ptr IUnknown, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + GetConnectionInterface*: + proc(self: ptr IConnectionPoint, pIID: ptr IID): HRESULT {.stdcall.} + GetConnectionPointContainer*: proc( + self: ptr IConnectionPoint, ppCPC: ptr ptr IConnectionPointContainer + ): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IConnectionPoint, pUnkSink: ptr IUnknown, pdwCookie: ptr DWORD + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IConnectionPoint, dwCookie: DWORD): HRESULT {.stdcall.} - EnumConnections*: proc(self: ptr IConnectionPoint, ppEnum: ptr ptr IEnumConnections): HRESULT {.stdcall.} + EnumConnections*: proc( + self: ptr IConnectionPoint, ppEnum: ptr ptr IEnumConnections + ): HRESULT {.stdcall.} + PCONNECTIONPOINT* = ptr IConnectionPoint PENUMCONNECTIONPOINTS* = ptr IEnumConnectionPoints LPENUMCONNECTIONPOINTS* = ptr IEnumConnectionPoints @@ -2283,66 +4030,121 @@ cbLicInfo*: LONG fRuntimeKeyAvail*: WINBOOL fLicVerified*: WINBOOL + IClassFactory2* {.pure.} = object lpVtbl*: ptr IClassFactory2Vtbl + IClassFactory2Vtbl* {.pure, inheritable.} = object of IClassFactoryVtbl - GetLicInfo*: proc(self: ptr IClassFactory2, pLicInfo: ptr LICINFO): HRESULT {.stdcall.} - RequestLicKey*: proc(self: ptr IClassFactory2, dwReserved: DWORD, pBstrKey: ptr BSTR): HRESULT {.stdcall.} - CreateInstanceLic*: proc(self: ptr IClassFactory2, pUnkOuter: ptr IUnknown, pUnkReserved: ptr IUnknown, riid: REFIID, bstrKey: BSTR, ppvObj: ptr PVOID): HRESULT {.stdcall.} + GetLicInfo*: + proc(self: ptr IClassFactory2, pLicInfo: ptr LICINFO): HRESULT {.stdcall.} + RequestLicKey*: proc( + self: ptr IClassFactory2, dwReserved: DWORD, pBstrKey: ptr BSTR + ): HRESULT {.stdcall.} + CreateInstanceLic*: proc( + self: ptr IClassFactory2, + pUnkOuter: ptr IUnknown, + pUnkReserved: ptr IUnknown, + riid: REFIID, + bstrKey: BSTR, + ppvObj: ptr PVOID, + ): HRESULT {.stdcall.} + LPCLASSFACTORY2* = ptr IClassFactory2 LPLICINFO* = ptr LICINFO IProvideClassInfo* {.pure.} = object lpVtbl*: ptr IProvideClassInfoVtbl + IProvideClassInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetClassInfo*: proc(self: ptr IProvideClassInfo, ppTI: ptr ptr ITypeInfo): HRESULT {.stdcall.} + GetClassInfo*: + proc(self: ptr IProvideClassInfo, ppTI: ptr ptr ITypeInfo): HRESULT {.stdcall.} + LPPROVIDECLASSINFO* = ptr IProvideClassInfo IProvideClassInfo2* {.pure.} = object lpVtbl*: ptr IProvideClassInfo2Vtbl + IProvideClassInfo2Vtbl* {.pure, inheritable.} = object of IProvideClassInfoVtbl - GetGUID*: proc(self: ptr IProvideClassInfo2, dwGuidKind: DWORD, pGUID: ptr GUID): HRESULT {.stdcall.} + GetGUID*: proc( + self: ptr IProvideClassInfo2, dwGuidKind: DWORD, pGUID: ptr GUID + ): HRESULT {.stdcall.} + LPPROVIDECLASSINFO2* = ptr IProvideClassInfo2 IProvideMultipleClassInfo* {.pure.} = object lpVtbl*: ptr IProvideMultipleClassInfoVtbl + IProvideMultipleClassInfoVtbl* {.pure, inheritable.} = object of IProvideClassInfo2Vtbl - GetMultiTypeInfoCount*: proc(self: ptr IProvideMultipleClassInfo, pcti: ptr ULONG): HRESULT {.stdcall.} - GetInfoOfIndex*: proc(self: ptr IProvideMultipleClassInfo, iti: ULONG, dwFlags: DWORD, pptiCoClass: ptr ptr ITypeInfo, pdwTIFlags: ptr DWORD, pcdispidReserved: ptr ULONG, piidPrimary: ptr IID, piidSource: ptr IID): HRESULT {.stdcall.} + GetMultiTypeInfoCount*: + proc(self: ptr IProvideMultipleClassInfo, pcti: ptr ULONG): HRESULT {.stdcall.} + GetInfoOfIndex*: proc( + self: ptr IProvideMultipleClassInfo, + iti: ULONG, + dwFlags: DWORD, + pptiCoClass: ptr ptr ITypeInfo, + pdwTIFlags: ptr DWORD, + pcdispidReserved: ptr ULONG, + piidPrimary: ptr IID, + piidSource: ptr IID, + ): HRESULT {.stdcall.} + LPPROVIDEMULTIPLECLASSINFO* = ptr IProvideMultipleClassInfo CONTROLINFO* {.pure.} = object cb*: ULONG hAccel*: HACCEL cAccel*: USHORT dwFlags*: DWORD + IOleControl* {.pure.} = object lpVtbl*: ptr IOleControlVtbl + IOleControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetControlInfo*: proc(self: ptr IOleControl, pCI: ptr CONTROLINFO): HRESULT {.stdcall.} + GetControlInfo*: + proc(self: ptr IOleControl, pCI: ptr CONTROLINFO): HRESULT {.stdcall.} OnMnemonic*: proc(self: ptr IOleControl, pMsg: ptr MSG): HRESULT {.stdcall.} - OnAmbientPropertyChange*: proc(self: ptr IOleControl, dispID: DISPID): HRESULT {.stdcall.} + OnAmbientPropertyChange*: + proc(self: ptr IOleControl, dispID: DISPID): HRESULT {.stdcall.} FreezeEvents*: proc(self: ptr IOleControl, bFreeze: WINBOOL): HRESULT {.stdcall.} + LPOLECONTROL* = ptr IOleControl LPCONTROLINFO* = ptr CONTROLINFO POINTF* {.pure.} = object x*: FLOAT y*: FLOAT + IOleControlSite* {.pure.} = object lpVtbl*: ptr IOleControlSiteVtbl + IOleControlSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl OnControlInfoChanged*: proc(self: ptr IOleControlSite): HRESULT {.stdcall.} - LockInPlaceActive*: proc(self: ptr IOleControlSite, fLock: WINBOOL): HRESULT {.stdcall.} - GetExtendedControl*: proc(self: ptr IOleControlSite, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} - TransformCoords*: proc(self: ptr IOleControlSite, pPtlHimetric: ptr POINTL, pPtfContainer: ptr POINTF, dwFlags: DWORD): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IOleControlSite, pMsg: ptr MSG, grfModifiers: DWORD): HRESULT {.stdcall.} + LockInPlaceActive*: + proc(self: ptr IOleControlSite, fLock: WINBOOL): HRESULT {.stdcall.} + GetExtendedControl*: + proc(self: ptr IOleControlSite, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} + TransformCoords*: proc( + self: ptr IOleControlSite, + pPtlHimetric: ptr POINTL, + pPtfContainer: ptr POINTF, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + TranslateAccelerator*: proc( + self: ptr IOleControlSite, pMsg: ptr MSG, grfModifiers: DWORD + ): HRESULT {.stdcall.} OnFocus*: proc(self: ptr IOleControlSite, fGotFocus: WINBOOL): HRESULT {.stdcall.} ShowPropertyFrame*: proc(self: ptr IOleControlSite): HRESULT {.stdcall.} + LPOLECONTROLSITE* = ptr IOleControlSite LPPOINTF* = ptr POINTF IPropertyPageSite* {.pure.} = object lpVtbl*: ptr IPropertyPageSiteVtbl + IPropertyPageSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnStatusChange*: proc(self: ptr IPropertyPageSite, dwFlags: DWORD): HRESULT {.stdcall.} - GetLocaleID*: proc(self: ptr IPropertyPageSite, pLocaleID: ptr LCID): HRESULT {.stdcall.} - GetPageContainer*: proc(self: ptr IPropertyPageSite, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IPropertyPageSite, pMsg: ptr MSG): HRESULT {.stdcall.} + OnStatusChange*: + proc(self: ptr IPropertyPageSite, dwFlags: DWORD): HRESULT {.stdcall.} + GetLocaleID*: + proc(self: ptr IPropertyPageSite, pLocaleID: ptr LCID): HRESULT {.stdcall.} + GetPageContainer*: + proc(self: ptr IPropertyPageSite, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IPropertyPageSite, pMsg: ptr MSG): HRESULT {.stdcall.} + PROPPAGEINFO* {.pure.} = object cb*: ULONG pszTitle*: LPOLESTR @@ -2350,77 +4152,138 @@ pszDocString*: LPOLESTR pszHelpFile*: LPOLESTR dwHelpContext*: DWORD + IPropertyPage* {.pure.} = object lpVtbl*: ptr IPropertyPageVtbl + IPropertyPageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetPageSite*: proc(self: ptr IPropertyPage, pPageSite: ptr IPropertyPageSite): HRESULT {.stdcall.} - Activate*: proc(self: ptr IPropertyPage, hWndParent: HWND, pRect: LPCRECT, bModal: WINBOOL): HRESULT {.stdcall.} + SetPageSite*: proc( + self: ptr IPropertyPage, pPageSite: ptr IPropertyPageSite + ): HRESULT {.stdcall.} + Activate*: proc( + self: ptr IPropertyPage, hWndParent: HWND, pRect: LPCRECT, bModal: WINBOOL + ): HRESULT {.stdcall.} Deactivate*: proc(self: ptr IPropertyPage): HRESULT {.stdcall.} - GetPageInfo*: proc(self: ptr IPropertyPage, pPageInfo: ptr PROPPAGEINFO): HRESULT {.stdcall.} - SetObjects*: proc(self: ptr IPropertyPage, cObjects: ULONG, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} + GetPageInfo*: + proc(self: ptr IPropertyPage, pPageInfo: ptr PROPPAGEINFO): HRESULT {.stdcall.} + SetObjects*: proc( + self: ptr IPropertyPage, cObjects: ULONG, ppUnk: ptr ptr IUnknown + ): HRESULT {.stdcall.} Show*: proc(self: ptr IPropertyPage, nCmdShow: UINT): HRESULT {.stdcall.} Move*: proc(self: ptr IPropertyPage, pRect: LPCRECT): HRESULT {.stdcall.} IsPageDirty*: proc(self: ptr IPropertyPage): HRESULT {.stdcall.} Apply*: proc(self: ptr IPropertyPage): HRESULT {.stdcall.} Help*: proc(self: ptr IPropertyPage, pszHelpDir: LPCOLESTR): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IPropertyPage, pMsg: ptr MSG): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IPropertyPage, pMsg: ptr MSG): HRESULT {.stdcall.} + LPPROPERTYPAGE* = ptr IPropertyPage LPPROPPAGEINFO* = ptr PROPPAGEINFO IPropertyPage2* {.pure.} = object lpVtbl*: ptr IPropertyPage2Vtbl + IPropertyPage2Vtbl* {.pure, inheritable.} = object of IPropertyPageVtbl EditProperty*: proc(self: ptr IPropertyPage2, dispID: DISPID): HRESULT {.stdcall.} + LPPROPERTYPAGE2* = ptr IPropertyPage2 LPPROPERTYPAGESITE* = ptr IPropertyPageSite IPropertyNotifySink* {.pure.} = object lpVtbl*: ptr IPropertyNotifySinkVtbl + IPropertyNotifySinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl OnChanged*: proc(self: ptr IPropertyNotifySink, dispID: DISPID): HRESULT {.stdcall.} - OnRequestEdit*: proc(self: ptr IPropertyNotifySink, dispID: DISPID): HRESULT {.stdcall.} + OnRequestEdit*: + proc(self: ptr IPropertyNotifySink, dispID: DISPID): HRESULT {.stdcall.} + LPPROPERTYNOTIFYSINK* = ptr IPropertyNotifySink CAUUID* {.pure.} = object cElems*: ULONG pElems*: ptr GUID + ISpecifyPropertyPages* {.pure.} = object lpVtbl*: ptr ISpecifyPropertyPagesVtbl + ISpecifyPropertyPagesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPages*: proc(self: ptr ISpecifyPropertyPages, pPages: ptr CAUUID): HRESULT {.stdcall.} + GetPages*: + proc(self: ptr ISpecifyPropertyPages, pPages: ptr CAUUID): HRESULT {.stdcall.} + LPSPECIFYPROPERTYPAGES* = ptr ISpecifyPropertyPages LPCAUUID* = ptr CAUUID IPersistMemory* {.pure.} = object lpVtbl*: ptr IPersistMemoryVtbl + IPersistMemoryVtbl* {.pure, inheritable.} = object of IPersistVtbl IsDirty*: proc(self: ptr IPersistMemory): HRESULT {.stdcall.} - Load*: proc(self: ptr IPersistMemory, pMem: LPVOID, cbSize: ULONG): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistMemory, pMem: LPVOID, fClearDirty: WINBOOL, cbSize: ULONG): HRESULT {.stdcall.} + Load*: + proc(self: ptr IPersistMemory, pMem: LPVOID, cbSize: ULONG): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistMemory, pMem: LPVOID, fClearDirty: WINBOOL, cbSize: ULONG + ): HRESULT {.stdcall.} GetSizeMax*: proc(self: ptr IPersistMemory, pCbSize: ptr ULONG): HRESULT {.stdcall.} InitNew*: proc(self: ptr IPersistMemory): HRESULT {.stdcall.} + LPPERSISTMEMORY* = ptr IPersistMemory IPersistStreamInit* {.pure.} = object lpVtbl*: ptr IPersistStreamInitVtbl + IPersistStreamInitVtbl* {.pure, inheritable.} = object of IPersistVtbl IsDirty*: proc(self: ptr IPersistStreamInit): HRESULT {.stdcall.} Load*: proc(self: ptr IPersistStreamInit, pStm: LPSTREAM): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistStreamInit, pStm: LPSTREAM, fClearDirty: WINBOOL): HRESULT {.stdcall.} - GetSizeMax*: proc(self: ptr IPersistStreamInit, pCbSize: ptr ULARGE_INTEGER): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistStreamInit, pStm: LPSTREAM, fClearDirty: WINBOOL + ): HRESULT {.stdcall.} + GetSizeMax*: proc( + self: ptr IPersistStreamInit, pCbSize: ptr ULARGE_INTEGER + ): HRESULT {.stdcall.} InitNew*: proc(self: ptr IPersistStreamInit): HRESULT {.stdcall.} + LPPERSISTSTREAMINIT* = ptr IPersistStreamInit IPersistPropertyBag* {.pure.} = object lpVtbl*: ptr IPersistPropertyBagVtbl + IPersistPropertyBagVtbl* {.pure, inheritable.} = object of IPersistVtbl InitNew*: proc(self: ptr IPersistPropertyBag): HRESULT {.stdcall.} - Load*: proc(self: ptr IPersistPropertyBag, pPropBag: ptr IPropertyBag, pErrorLog: ptr IErrorLog): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistPropertyBag, pPropBag: ptr IPropertyBag, fClearDirty: WINBOOL, fSaveAllProperties: WINBOOL): HRESULT {.stdcall.} + Load*: proc( + self: ptr IPersistPropertyBag, + pPropBag: ptr IPropertyBag, + pErrorLog: ptr IErrorLog, + ): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistPropertyBag, + pPropBag: ptr IPropertyBag, + fClearDirty: WINBOOL, + fSaveAllProperties: WINBOOL, + ): HRESULT {.stdcall.} + LPPERSISTPROPERTYBAG* = ptr IPersistPropertyBag ISimpleFrameSite* {.pure.} = object lpVtbl*: ptr ISimpleFrameSiteVtbl + ISimpleFrameSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - PreMessageFilter*: proc(self: ptr ISimpleFrameSite, hWnd: HWND, msg: UINT, wp: WPARAM, lp: LPARAM, plResult: ptr LRESULT, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - PostMessageFilter*: proc(self: ptr ISimpleFrameSite, hWnd: HWND, msg: UINT, wp: WPARAM, lp: LPARAM, plResult: ptr LRESULT, dwCookie: DWORD): HRESULT {.stdcall.} + PreMessageFilter*: proc( + self: ptr ISimpleFrameSite, + hWnd: HWND, + msg: UINT, + wp: WPARAM, + lp: LPARAM, + plResult: ptr LRESULT, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + PostMessageFilter*: proc( + self: ptr ISimpleFrameSite, + hWnd: HWND, + msg: UINT, + wp: WPARAM, + lp: LPARAM, + plResult: ptr LRESULT, + dwCookie: DWORD, + ): HRESULT {.stdcall.} + LPSIMPLEFRAMESITE* = ptr ISimpleFrameSite TEXTMETRICOLE* = TEXTMETRICW IFont* {.pure.} = object lpVtbl*: ptr IFontVtbl + IFontVtbl* {.pure, inheritable.} = object of IUnknownVtbl get_Name*: proc(self: ptr IFont, pName: ptr BSTR): HRESULT {.stdcall.} put_Name*: proc(self: ptr IFont, name: BSTR): HRESULT {.stdcall.} @@ -2432,8 +4295,10 @@ put_Italic*: proc(self: ptr IFont, italic: WINBOOL): HRESULT {.stdcall.} get_Underline*: proc(self: ptr IFont, pUnderline: ptr WINBOOL): HRESULT {.stdcall.} put_Underline*: proc(self: ptr IFont, underline: WINBOOL): HRESULT {.stdcall.} - get_Strikethrough*: proc(self: ptr IFont, pStrikethrough: ptr WINBOOL): HRESULT {.stdcall.} - put_Strikethrough*: proc(self: ptr IFont, strikethrough: WINBOOL): HRESULT {.stdcall.} + get_Strikethrough*: + proc(self: ptr IFont, pStrikethrough: ptr WINBOOL): HRESULT {.stdcall.} + put_Strikethrough*: + proc(self: ptr IFont, strikethrough: WINBOOL): HRESULT {.stdcall.} get_Weight*: proc(self: ptr IFont, pWeight: ptr SHORT): HRESULT {.stdcall.} put_Weight*: proc(self: ptr IFont, weight: SHORT): HRESULT {.stdcall.} get_Charset*: proc(self: ptr IFont, pCharset: ptr SHORT): HRESULT {.stdcall.} @@ -2441,171 +4306,366 @@ get_hFont*: proc(self: ptr IFont, phFont: ptr HFONT): HRESULT {.stdcall.} Clone*: proc(self: ptr IFont, ppFont: ptr ptr IFont): HRESULT {.stdcall.} IsEqual*: proc(self: ptr IFont, pFontOther: ptr IFont): HRESULT {.stdcall.} - SetRatio*: proc(self: ptr IFont, cyLogical: LONG, cyHimetric: LONG): HRESULT {.stdcall.} - QueryTextMetrics*: proc(self: ptr IFont, pTM: ptr TEXTMETRICOLE): HRESULT {.stdcall.} + SetRatio*: + proc(self: ptr IFont, cyLogical: LONG, cyHimetric: LONG): HRESULT {.stdcall.} + QueryTextMetrics*: + proc(self: ptr IFont, pTM: ptr TEXTMETRICOLE): HRESULT {.stdcall.} AddRefHfont*: proc(self: ptr IFont, hFont: HFONT): HRESULT {.stdcall.} ReleaseHfont*: proc(self: ptr IFont, hFont: HFONT): HRESULT {.stdcall.} SetHdc*: proc(self: ptr IFont, hDC: HDC): HRESULT {.stdcall.} + LPFONT* = ptr IFont LPTEXTMETRICOLE* = ptr TEXTMETRICOLE OLE_HANDLE* = UINT IPicture* {.pure.} = object lpVtbl*: ptr IPictureVtbl + IPictureVtbl* {.pure, inheritable.} = object of IUnknownVtbl get_Handle*: proc(self: ptr IPicture, pHandle: ptr OLE_HANDLE): HRESULT {.stdcall.} get_hPal*: proc(self: ptr IPicture, phPal: ptr OLE_HANDLE): HRESULT {.stdcall.} get_Type*: proc(self: ptr IPicture, pType: ptr SHORT): HRESULT {.stdcall.} - get_Width*: proc(self: ptr IPicture, pWidth: ptr OLE_XSIZE_HIMETRIC): HRESULT {.stdcall.} - get_Height*: proc(self: ptr IPicture, pHeight: ptr OLE_YSIZE_HIMETRIC): HRESULT {.stdcall.} - Render*: proc(self: ptr IPicture, hDC: HDC, x: LONG, y: LONG, cx: LONG, cy: LONG, xSrc: OLE_XPOS_HIMETRIC, ySrc: OLE_YPOS_HIMETRIC, cxSrc: OLE_XSIZE_HIMETRIC, cySrc: OLE_YSIZE_HIMETRIC, pRcWBounds: LPCRECT): HRESULT {.stdcall.} + get_Width*: + proc(self: ptr IPicture, pWidth: ptr OLE_XSIZE_HIMETRIC): HRESULT {.stdcall.} + get_Height*: + proc(self: ptr IPicture, pHeight: ptr OLE_YSIZE_HIMETRIC): HRESULT {.stdcall.} + Render*: proc( + self: ptr IPicture, + hDC: HDC, + x: LONG, + y: LONG, + cx: LONG, + cy: LONG, + xSrc: OLE_XPOS_HIMETRIC, + ySrc: OLE_YPOS_HIMETRIC, + cxSrc: OLE_XSIZE_HIMETRIC, + cySrc: OLE_YSIZE_HIMETRIC, + pRcWBounds: LPCRECT, + ): HRESULT {.stdcall.} set_hPal*: proc(self: ptr IPicture, hPal: OLE_HANDLE): HRESULT {.stdcall.} get_CurDC*: proc(self: ptr IPicture, phDC: ptr HDC): HRESULT {.stdcall.} - SelectPicture*: proc(self: ptr IPicture, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr OLE_HANDLE): HRESULT {.stdcall.} - get_KeepOriginalFormat*: proc(self: ptr IPicture, pKeep: ptr WINBOOL): HRESULT {.stdcall.} - put_KeepOriginalFormat*: proc(self: ptr IPicture, keep: WINBOOL): HRESULT {.stdcall.} + SelectPicture*: proc( + self: ptr IPicture, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr OLE_HANDLE + ): HRESULT {.stdcall.} + get_KeepOriginalFormat*: + proc(self: ptr IPicture, pKeep: ptr WINBOOL): HRESULT {.stdcall.} + put_KeepOriginalFormat*: + proc(self: ptr IPicture, keep: WINBOOL): HRESULT {.stdcall.} PictureChanged*: proc(self: ptr IPicture): HRESULT {.stdcall.} - SaveAsFile*: proc(self: ptr IPicture, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG): HRESULT {.stdcall.} + SaveAsFile*: proc( + self: ptr IPicture, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG + ): HRESULT {.stdcall.} get_Attributes*: proc(self: ptr IPicture, pDwAttr: ptr DWORD): HRESULT {.stdcall.} + LPPICTURE* = ptr IPicture IPicture2* {.pure.} = object lpVtbl*: ptr IPicture2Vtbl + IPicture2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl get_Handle*: proc(self: ptr IPicture2, pHandle: ptr HHANDLE): HRESULT {.stdcall.} get_hPal*: proc(self: ptr IPicture2, phPal: ptr HHANDLE): HRESULT {.stdcall.} get_Type*: proc(self: ptr IPicture2, pType: ptr SHORT): HRESULT {.stdcall.} - get_Width*: proc(self: ptr IPicture2, pWidth: ptr OLE_XSIZE_HIMETRIC): HRESULT {.stdcall.} - get_Height*: proc(self: ptr IPicture2, pHeight: ptr OLE_YSIZE_HIMETRIC): HRESULT {.stdcall.} - Render*: proc(self: ptr IPicture2, hDC: HDC, x: LONG, y: LONG, cx: LONG, cy: LONG, xSrc: OLE_XPOS_HIMETRIC, ySrc: OLE_YPOS_HIMETRIC, cxSrc: OLE_XSIZE_HIMETRIC, cySrc: OLE_YSIZE_HIMETRIC, pRcWBounds: LPCRECT): HRESULT {.stdcall.} + get_Width*: + proc(self: ptr IPicture2, pWidth: ptr OLE_XSIZE_HIMETRIC): HRESULT {.stdcall.} + get_Height*: + proc(self: ptr IPicture2, pHeight: ptr OLE_YSIZE_HIMETRIC): HRESULT {.stdcall.} + Render*: proc( + self: ptr IPicture2, + hDC: HDC, + x: LONG, + y: LONG, + cx: LONG, + cy: LONG, + xSrc: OLE_XPOS_HIMETRIC, + ySrc: OLE_YPOS_HIMETRIC, + cxSrc: OLE_XSIZE_HIMETRIC, + cySrc: OLE_YSIZE_HIMETRIC, + pRcWBounds: LPCRECT, + ): HRESULT {.stdcall.} set_hPal*: proc(self: ptr IPicture2, hPal: HHANDLE): HRESULT {.stdcall.} get_CurDC*: proc(self: ptr IPicture2, phDC: ptr HDC): HRESULT {.stdcall.} - SelectPicture*: proc(self: ptr IPicture2, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr HHANDLE): HRESULT {.stdcall.} - get_KeepOriginalFormat*: proc(self: ptr IPicture2, pKeep: ptr WINBOOL): HRESULT {.stdcall.} - put_KeepOriginalFormat*: proc(self: ptr IPicture2, keep: WINBOOL): HRESULT {.stdcall.} + SelectPicture*: proc( + self: ptr IPicture2, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr HHANDLE + ): HRESULT {.stdcall.} + get_KeepOriginalFormat*: + proc(self: ptr IPicture2, pKeep: ptr WINBOOL): HRESULT {.stdcall.} + put_KeepOriginalFormat*: + proc(self: ptr IPicture2, keep: WINBOOL): HRESULT {.stdcall.} PictureChanged*: proc(self: ptr IPicture2): HRESULT {.stdcall.} - SaveAsFile*: proc(self: ptr IPicture2, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG): HRESULT {.stdcall.} + SaveAsFile*: proc( + self: ptr IPicture2, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG + ): HRESULT {.stdcall.} get_Attributes*: proc(self: ptr IPicture2, pDwAttr: ptr DWORD): HRESULT {.stdcall.} + LPPICTURE2* = ptr IPicture2 IFontEventsDisp* {.pure.} = object lpVtbl*: ptr IFontEventsDispVtbl + IFontEventsDispVtbl* {.pure, inheritable.} = object of IDispatchVtbl LPFONTEVENTS* = ptr IFontEventsDisp IFontDisp* {.pure.} = object lpVtbl*: ptr IFontDispVtbl + IFontDispVtbl* {.pure, inheritable.} = object of IDispatchVtbl LPFONTDISP* = ptr IFontDisp IPictureDisp* {.pure.} = object lpVtbl*: ptr IPictureDispVtbl + IPictureDispVtbl* {.pure, inheritable.} = object of IDispatchVtbl LPPICTUREDISP* = ptr IPictureDisp IOleInPlaceObjectWindowless* {.pure.} = object lpVtbl*: ptr IOleInPlaceObjectWindowlessVtbl + IOleInPlaceObjectWindowlessVtbl* {.pure, inheritable.} = object of IOleInPlaceObjectVtbl - OnWindowMessage*: proc(self: ptr IOleInPlaceObjectWindowless, msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} - GetDropTarget*: proc(self: ptr IOleInPlaceObjectWindowless, ppDropTarget: ptr ptr IDropTarget): HRESULT {.stdcall.} + OnWindowMessage*: proc( + self: ptr IOleInPlaceObjectWindowless, + msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + GetDropTarget*: proc( + self: ptr IOleInPlaceObjectWindowless, ppDropTarget: ptr ptr IDropTarget + ): HRESULT {.stdcall.} + LPOLEINPLACEOBJECTWINDOWLESS* = ptr IOleInPlaceObjectWindowless IOleInPlaceSiteEx* {.pure.} = object lpVtbl*: ptr IOleInPlaceSiteExVtbl + IOleInPlaceSiteExVtbl* {.pure, inheritable.} = object of IOleInPlaceSiteVtbl - OnInPlaceActivateEx*: proc(self: ptr IOleInPlaceSiteEx, pfNoRedraw: ptr WINBOOL, dwFlags: DWORD): HRESULT {.stdcall.} - OnInPlaceDeactivateEx*: proc(self: ptr IOleInPlaceSiteEx, fNoRedraw: WINBOOL): HRESULT {.stdcall.} + OnInPlaceActivateEx*: proc( + self: ptr IOleInPlaceSiteEx, pfNoRedraw: ptr WINBOOL, dwFlags: DWORD + ): HRESULT {.stdcall.} + OnInPlaceDeactivateEx*: + proc(self: ptr IOleInPlaceSiteEx, fNoRedraw: WINBOOL): HRESULT {.stdcall.} RequestUIActivate*: proc(self: ptr IOleInPlaceSiteEx): HRESULT {.stdcall.} + LPOLEINPLACESITEEX* = ptr IOleInPlaceSiteEx IOleInPlaceSiteWindowless* {.pure.} = object lpVtbl*: ptr IOleInPlaceSiteWindowlessVtbl + IOleInPlaceSiteWindowlessVtbl* {.pure, inheritable.} = object of IOleInPlaceSiteExVtbl - CanWindowlessActivate*: proc(self: ptr IOleInPlaceSiteWindowless): HRESULT {.stdcall.} + CanWindowlessActivate*: + proc(self: ptr IOleInPlaceSiteWindowless): HRESULT {.stdcall.} GetCapture*: proc(self: ptr IOleInPlaceSiteWindowless): HRESULT {.stdcall.} - SetCapture*: proc(self: ptr IOleInPlaceSiteWindowless, fCapture: WINBOOL): HRESULT {.stdcall.} + SetCapture*: + proc(self: ptr IOleInPlaceSiteWindowless, fCapture: WINBOOL): HRESULT {.stdcall.} GetFocus*: proc(self: ptr IOleInPlaceSiteWindowless): HRESULT {.stdcall.} - SetFocus*: proc(self: ptr IOleInPlaceSiteWindowless, fFocus: WINBOOL): HRESULT {.stdcall.} - GetDC*: proc(self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, grfFlags: DWORD, phDC: ptr HDC): HRESULT {.stdcall.} + SetFocus*: + proc(self: ptr IOleInPlaceSiteWindowless, fFocus: WINBOOL): HRESULT {.stdcall.} + GetDC*: proc( + self: ptr IOleInPlaceSiteWindowless, + pRect: LPCRECT, + grfFlags: DWORD, + phDC: ptr HDC, + ): HRESULT {.stdcall.} ReleaseDC*: proc(self: ptr IOleInPlaceSiteWindowless, hDC: HDC): HRESULT {.stdcall.} - InvalidateRect*: proc(self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, fErase: WINBOOL): HRESULT {.stdcall.} - InvalidateRgn*: proc(self: ptr IOleInPlaceSiteWindowless, hRGN: HRGN, fErase: WINBOOL): HRESULT {.stdcall.} - ScrollRect*: proc(self: ptr IOleInPlaceSiteWindowless, dx: INT, dy: INT, pRectScroll: LPCRECT, pRectClip: LPCRECT): HRESULT {.stdcall.} - AdjustRect*: proc(self: ptr IOleInPlaceSiteWindowless, prc: LPRECT): HRESULT {.stdcall.} - OnDefWindowMessage*: proc(self: ptr IOleInPlaceSiteWindowless, msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} + InvalidateRect*: proc( + self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, fErase: WINBOOL + ): HRESULT {.stdcall.} + InvalidateRgn*: proc( + self: ptr IOleInPlaceSiteWindowless, hRGN: HRGN, fErase: WINBOOL + ): HRESULT {.stdcall.} + ScrollRect*: proc( + self: ptr IOleInPlaceSiteWindowless, + dx: INT, + dy: INT, + pRectScroll: LPCRECT, + pRectClip: LPCRECT, + ): HRESULT {.stdcall.} + AdjustRect*: + proc(self: ptr IOleInPlaceSiteWindowless, prc: LPRECT): HRESULT {.stdcall.} + OnDefWindowMessage*: proc( + self: ptr IOleInPlaceSiteWindowless, + msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + LPOLEINPLACESITEWINDOWLESS* = ptr IOleInPlaceSiteWindowless DVEXTENTINFO* {.pure.} = object cb*: ULONG dwExtentMode*: DWORD sizelProposed*: SIZEL + IViewObjectEx* {.pure.} = object lpVtbl*: ptr IViewObjectExVtbl + IViewObjectExVtbl* {.pure, inheritable.} = object of IViewObject2Vtbl - GetRect*: proc(self: ptr IViewObjectEx, dwAspect: DWORD, pRect: LPRECTL): HRESULT {.stdcall.} - GetViewStatus*: proc(self: ptr IViewObjectEx, pdwStatus: ptr DWORD): HRESULT {.stdcall.} - QueryHitPoint*: proc(self: ptr IViewObjectEx, dwAspect: DWORD, pRectBounds: LPCRECT, ptlLoc: POINT, lCloseHint: LONG, pHitResult: ptr DWORD): HRESULT {.stdcall.} - QueryHitRect*: proc(self: ptr IViewObjectEx, dwAspect: DWORD, pRectBounds: LPCRECT, pRectLoc: LPCRECT, lCloseHint: LONG, pHitResult: ptr DWORD): HRESULT {.stdcall.} - GetNaturalExtent*: proc(self: ptr IViewObjectEx, dwAspect: DWORD, lindex: LONG, ptd: ptr DVTARGETDEVICE, hicTargetDev: HDC, pExtentInfo: ptr DVEXTENTINFO, pSizel: LPSIZEL): HRESULT {.stdcall.} + GetRect*: proc(self: ptr IViewObjectEx, dwAspect: DWORD, pRect: LPRECTL): HRESULT {. + stdcall + .} + GetViewStatus*: + proc(self: ptr IViewObjectEx, pdwStatus: ptr DWORD): HRESULT {.stdcall.} + QueryHitPoint*: proc( + self: ptr IViewObjectEx, + dwAspect: DWORD, + pRectBounds: LPCRECT, + ptlLoc: POINT, + lCloseHint: LONG, + pHitResult: ptr DWORD, + ): HRESULT {.stdcall.} + QueryHitRect*: proc( + self: ptr IViewObjectEx, + dwAspect: DWORD, + pRectBounds: LPCRECT, + pRectLoc: LPCRECT, + lCloseHint: LONG, + pHitResult: ptr DWORD, + ): HRESULT {.stdcall.} + GetNaturalExtent*: proc( + self: ptr IViewObjectEx, + dwAspect: DWORD, + lindex: LONG, + ptd: ptr DVTARGETDEVICE, + hicTargetDev: HDC, + pExtentInfo: ptr DVEXTENTINFO, + pSizel: LPSIZEL, + ): HRESULT {.stdcall.} + LPVIEWOBJECTEX* = ptr IViewObjectEx IOleUndoUnit* {.pure.} = object lpVtbl*: ptr IOleUndoUnitVtbl + IOleUndoUnitVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Do*: proc(self: ptr IOleUndoUnit, pUndoManager: ptr IOleUndoManager): HRESULT {.stdcall.} + Do*: proc(self: ptr IOleUndoUnit, pUndoManager: ptr IOleUndoManager): HRESULT {. + stdcall + .} GetDescription*: proc(self: ptr IOleUndoUnit, pBstr: ptr BSTR): HRESULT {.stdcall.} - GetUnitType*: proc(self: ptr IOleUndoUnit, pClsid: ptr CLSID, plID: ptr LONG): HRESULT {.stdcall.} + GetUnitType*: proc( + self: ptr IOleUndoUnit, pClsid: ptr CLSID, plID: ptr LONG + ): HRESULT {.stdcall.} OnNextAdd*: proc(self: ptr IOleUndoUnit): HRESULT {.stdcall.} + IEnumOleUndoUnits* {.pure.} = object lpVtbl*: ptr IEnumOleUndoUnitsVtbl + IEnumOleUndoUnitsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumOleUndoUnits, cElt: ULONG, rgElt: ptr ptr IOleUndoUnit, pcEltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumOleUndoUnits, + cElt: ULONG, + rgElt: ptr ptr IOleUndoUnit, + pcEltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumOleUndoUnits, cElt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumOleUndoUnits): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumOleUndoUnits, ppEnum: ptr ptr IEnumOleUndoUnits): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumOleUndoUnits, ppEnum: ptr ptr IEnumOleUndoUnits + ): HRESULT {.stdcall.} + IOleUndoManager* {.pure.} = object lpVtbl*: ptr IOleUndoManagerVtbl + IOleUndoManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Open*: proc(self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit): HRESULT {.stdcall.} - Close*: proc(self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL): HRESULT {.stdcall.} + Open*: + proc(self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit): HRESULT {.stdcall.} + Close*: proc( + self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL + ): HRESULT {.stdcall.} Add*: proc(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} - GetOpenParentState*: proc(self: ptr IOleUndoManager, pdwState: ptr DWORD): HRESULT {.stdcall.} - DiscardFrom*: proc(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} + GetOpenParentState*: + proc(self: ptr IOleUndoManager, pdwState: ptr DWORD): HRESULT {.stdcall.} + DiscardFrom*: + proc(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} UndoTo*: proc(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} RedoTo*: proc(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} - EnumUndoable*: proc(self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits): HRESULT {.stdcall.} - EnumRedoable*: proc(self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits): HRESULT {.stdcall.} - GetLastUndoDescription*: proc(self: ptr IOleUndoManager, pBstr: ptr BSTR): HRESULT {.stdcall.} - GetLastRedoDescription*: proc(self: ptr IOleUndoManager, pBstr: ptr BSTR): HRESULT {.stdcall.} + EnumUndoable*: proc( + self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits + ): HRESULT {.stdcall.} + EnumRedoable*: proc( + self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits + ): HRESULT {.stdcall.} + GetLastUndoDescription*: + proc(self: ptr IOleUndoManager, pBstr: ptr BSTR): HRESULT {.stdcall.} + GetLastRedoDescription*: + proc(self: ptr IOleUndoManager, pBstr: ptr BSTR): HRESULT {.stdcall.} Enable*: proc(self: ptr IOleUndoManager, fEnable: WINBOOL): HRESULT {.stdcall.} + IOleParentUndoUnit* {.pure.} = object lpVtbl*: ptr IOleParentUndoUnitVtbl + IOleParentUndoUnitVtbl* {.pure, inheritable.} = object of IOleUndoUnitVtbl - Open*: proc(self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit): HRESULT {.stdcall.} - Close*: proc(self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL): HRESULT {.stdcall.} + Open*: proc(self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit): HRESULT {. + stdcall + .} + Close*: proc( + self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL + ): HRESULT {.stdcall.} Add*: proc(self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} - FindUnit*: proc(self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} - GetParentState*: proc(self: ptr IOleParentUndoUnit, pdwState: ptr DWORD): HRESULT {.stdcall.} + FindUnit*: + proc(self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit): HRESULT {.stdcall.} + GetParentState*: + proc(self: ptr IOleParentUndoUnit, pdwState: ptr DWORD): HRESULT {.stdcall.} + LPOLEUNDOUNIT* = ptr IOleUndoUnit LPOLEPARENTUNDOUNIT* = ptr IOleParentUndoUnit LPENUMOLEUNDOUNITS* = ptr IEnumOleUndoUnits LPOLEUNDOMANAGER* = ptr IOleUndoManager IPointerInactive* {.pure.} = object lpVtbl*: ptr IPointerInactiveVtbl + IPointerInactiveVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetActivationPolicy*: proc(self: ptr IPointerInactive, pdwPolicy: ptr DWORD): HRESULT {.stdcall.} - OnInactiveMouseMove*: proc(self: ptr IPointerInactive, pRectBounds: LPCRECT, x: LONG, y: LONG, grfKeyState: DWORD): HRESULT {.stdcall.} - OnInactiveSetCursor*: proc(self: ptr IPointerInactive, pRectBounds: LPCRECT, x: LONG, y: LONG, dwMouseMsg: DWORD, fSetAlways: WINBOOL): HRESULT {.stdcall.} + GetActivationPolicy*: + proc(self: ptr IPointerInactive, pdwPolicy: ptr DWORD): HRESULT {.stdcall.} + OnInactiveMouseMove*: proc( + self: ptr IPointerInactive, + pRectBounds: LPCRECT, + x: LONG, + y: LONG, + grfKeyState: DWORD, + ): HRESULT {.stdcall.} + OnInactiveSetCursor*: proc( + self: ptr IPointerInactive, + pRectBounds: LPCRECT, + x: LONG, + y: LONG, + dwMouseMsg: DWORD, + fSetAlways: WINBOOL, + ): HRESULT {.stdcall.} + LPPOINTERINACTIVE* = ptr IPointerInactive IObjectWithSite* {.pure.} = object lpVtbl*: ptr IObjectWithSiteVtbl + IObjectWithSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetSite*: proc(self: ptr IObjectWithSite, pUnkSite: ptr IUnknown): HRESULT {.stdcall.} - GetSite*: proc(self: ptr IObjectWithSite, riid: REFIID, ppvSite: ptr pointer): HRESULT {.stdcall.} + SetSite*: + proc(self: ptr IObjectWithSite, pUnkSite: ptr IUnknown): HRESULT {.stdcall.} + GetSite*: proc( + self: ptr IObjectWithSite, riid: REFIID, ppvSite: ptr pointer + ): HRESULT {.stdcall.} + LPOBJECTWITHSITE* = ptr IObjectWithSite CALPOLESTR* {.pure.} = object cElems*: ULONG pElems*: ptr LPOLESTR + CADWORD* {.pure.} = object cElems*: ULONG pElems*: ptr DWORD + IPerPropertyBrowsing* {.pure.} = object lpVtbl*: ptr IPerPropertyBrowsingVtbl + IPerPropertyBrowsingVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDisplayString*: proc(self: ptr IPerPropertyBrowsing, dispID: DISPID, pBstr: ptr BSTR): HRESULT {.stdcall.} - MapPropertyToPage*: proc(self: ptr IPerPropertyBrowsing, dispID: DISPID, pClsid: ptr CLSID): HRESULT {.stdcall.} - GetPredefinedStrings*: proc(self: ptr IPerPropertyBrowsing, dispID: DISPID, pCaStringsOut: ptr CALPOLESTR, pCaCookiesOut: ptr CADWORD): HRESULT {.stdcall.} - GetPredefinedValue*: proc(self: ptr IPerPropertyBrowsing, dispID: DISPID, dwCookie: DWORD, pVarOut: ptr VARIANT): HRESULT {.stdcall.} + GetDisplayString*: proc( + self: ptr IPerPropertyBrowsing, dispID: DISPID, pBstr: ptr BSTR + ): HRESULT {.stdcall.} + MapPropertyToPage*: proc( + self: ptr IPerPropertyBrowsing, dispID: DISPID, pClsid: ptr CLSID + ): HRESULT {.stdcall.} + GetPredefinedStrings*: proc( + self: ptr IPerPropertyBrowsing, + dispID: DISPID, + pCaStringsOut: ptr CALPOLESTR, + pCaCookiesOut: ptr CADWORD, + ): HRESULT {.stdcall.} + GetPredefinedValue*: proc( + self: ptr IPerPropertyBrowsing, + dispID: DISPID, + dwCookie: DWORD, + pVarOut: ptr VARIANT, + ): HRESULT {.stdcall.} + LPPERPROPERTYBROWSING* = ptr IPerPropertyBrowsing LPCALPOLESTR* = ptr CALPOLESTR LPCADWORD* = ptr CADWORD @@ -2616,27 +4676,69 @@ dwHint*: DWORD pstrName*: LPOLESTR clsid*: CLSID + IPropertyBag2* {.pure.} = object lpVtbl*: ptr IPropertyBag2Vtbl + IPropertyBag2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - Read*: proc(self: ptr IPropertyBag2, cProperties: ULONG, pPropBag: ptr PROPBAG2, pErrLog: ptr IErrorLog, pvarValue: ptr VARIANT, phrError: ptr HRESULT): HRESULT {.stdcall.} - Write*: proc(self: ptr IPropertyBag2, cProperties: ULONG, pPropBag: ptr PROPBAG2, pvarValue: ptr VARIANT): HRESULT {.stdcall.} - CountProperties*: proc(self: ptr IPropertyBag2, pcProperties: ptr ULONG): HRESULT {.stdcall.} - GetPropertyInfo*: proc(self: ptr IPropertyBag2, iProperty: ULONG, cProperties: ULONG, pPropBag: ptr PROPBAG2, pcProperties: ptr ULONG): HRESULT {.stdcall.} - LoadObject*: proc(self: ptr IPropertyBag2, pstrName: LPCOLESTR, dwHint: DWORD, pUnkObject: ptr IUnknown, pErrLog: ptr IErrorLog): HRESULT {.stdcall.} + Read*: proc( + self: ptr IPropertyBag2, + cProperties: ULONG, + pPropBag: ptr PROPBAG2, + pErrLog: ptr IErrorLog, + pvarValue: ptr VARIANT, + phrError: ptr HRESULT, + ): HRESULT {.stdcall.} + Write*: proc( + self: ptr IPropertyBag2, + cProperties: ULONG, + pPropBag: ptr PROPBAG2, + pvarValue: ptr VARIANT, + ): HRESULT {.stdcall.} + CountProperties*: + proc(self: ptr IPropertyBag2, pcProperties: ptr ULONG): HRESULT {.stdcall.} + GetPropertyInfo*: proc( + self: ptr IPropertyBag2, + iProperty: ULONG, + cProperties: ULONG, + pPropBag: ptr PROPBAG2, + pcProperties: ptr ULONG, + ): HRESULT {.stdcall.} + LoadObject*: proc( + self: ptr IPropertyBag2, + pstrName: LPCOLESTR, + dwHint: DWORD, + pUnkObject: ptr IUnknown, + pErrLog: ptr IErrorLog, + ): HRESULT {.stdcall.} + LPPROPERTYBAG2* = ptr IPropertyBag2 IPersistPropertyBag2* {.pure.} = object lpVtbl*: ptr IPersistPropertyBag2Vtbl + IPersistPropertyBag2Vtbl* {.pure, inheritable.} = object of IPersistVtbl InitNew*: proc(self: ptr IPersistPropertyBag2): HRESULT {.stdcall.} - Load*: proc(self: ptr IPersistPropertyBag2, pPropBag: ptr IPropertyBag2, pErrLog: ptr IErrorLog): HRESULT {.stdcall.} - Save*: proc(self: ptr IPersistPropertyBag2, pPropBag: ptr IPropertyBag2, fClearDirty: WINBOOL, fSaveAllProperties: WINBOOL): HRESULT {.stdcall.} + Load*: proc( + self: ptr IPersistPropertyBag2, + pPropBag: ptr IPropertyBag2, + pErrLog: ptr IErrorLog, + ): HRESULT {.stdcall.} + Save*: proc( + self: ptr IPersistPropertyBag2, + pPropBag: ptr IPropertyBag2, + fClearDirty: WINBOOL, + fSaveAllProperties: WINBOOL, + ): HRESULT {.stdcall.} IsDirty*: proc(self: ptr IPersistPropertyBag2): HRESULT {.stdcall.} + LPPERSISTPROPERTYBAG2* = ptr IPersistPropertyBag2 IAdviseSinkEx* {.pure.} = object lpVtbl*: ptr IAdviseSinkExVtbl + IAdviseSinkExVtbl* {.pure, inheritable.} = object of IAdviseSinkVtbl - OnViewStatusChange*: proc(self: ptr IAdviseSinkEx, dwViewStatus: DWORD): void {.stdcall.} + OnViewStatusChange*: + proc(self: ptr IAdviseSinkEx, dwViewStatus: DWORD): void {.stdcall.} + LPADVISESINKEX* = ptr IAdviseSinkEx QACONTAINER* {.pure.} = object cbSize*: ULONG @@ -2655,6 +4757,7 @@ pBindHost*: ptr IBindHost pOleControlSite*: ptr IOleControlSite pServiceProvider*: ptr IServiceProvider + QACONTROL* {.pure.} = object cbSize*: ULONG dwMiscStatus*: DWORD @@ -2662,22 +4765,33 @@ dwEventCookie*: DWORD dwPropNotifyCookie*: DWORD dwPointerActivationPolicy*: DWORD + IQuickActivate* {.pure.} = object lpVtbl*: ptr IQuickActivateVtbl + IQuickActivateVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QuickActivate*: proc(self: ptr IQuickActivate, pQaContainer: ptr QACONTAINER, pQaControl: ptr QACONTROL): HRESULT {.stdcall.} - SetContentExtent*: proc(self: ptr IQuickActivate, pSizel: LPSIZEL): HRESULT {.stdcall.} - GetContentExtent*: proc(self: ptr IQuickActivate, pSizel: LPSIZEL): HRESULT {.stdcall.} + QuickActivate*: proc( + self: ptr IQuickActivate, pQaContainer: ptr QACONTAINER, pQaControl: ptr QACONTROL + ): HRESULT {.stdcall.} + SetContentExtent*: + proc(self: ptr IQuickActivate, pSizel: LPSIZEL): HRESULT {.stdcall.} + GetContentExtent*: + proc(self: ptr IQuickActivate, pSizel: LPSIZEL): HRESULT {.stdcall.} + LPQUICKACTIVATE* = ptr IQuickActivate CATID* = GUID REFCATID* = REFGUID IEnumGUID* {.pure.} = object lpVtbl*: ptr IEnumGUIDVtbl + IEnumGUIDVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumGUID, celt: ULONG, rgelt: ptr GUID, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumGUID, celt: ULONG, rgelt: ptr GUID, pceltFetched: ptr ULONG + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumGUID, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumGUID): HRESULT {.stdcall.} Clone*: proc(self: ptr IEnumGUID, ppenum: ptr ptr IEnumGUID): HRESULT {.stdcall.} + IEnumCLSID* = IEnumGUID LPENUMGUID* = ptr IEnumGUID LPENUMCLSID* = LPENUMGUID @@ -2686,42 +4800,94 @@ catid*: CATID lcid*: LCID szDescription*: array[128, OLECHAR] + IEnumCATEGORYINFO* {.pure.} = object lpVtbl*: ptr IEnumCATEGORYINFOVtbl + IEnumCATEGORYINFOVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumCATEGORYINFO, celt: ULONG, rgelt: ptr CATEGORYINFO, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumCATEGORYINFO, + celt: ULONG, + rgelt: ptr CATEGORYINFO, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumCATEGORYINFO, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumCATEGORYINFO): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumCATEGORYINFO, ppenum: ptr ptr IEnumCATEGORYINFO): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumCATEGORYINFO, ppenum: ptr ptr IEnumCATEGORYINFO + ): HRESULT {.stdcall.} + LPENUMCATEGORYINFO* = ptr IEnumCATEGORYINFO LPCATEGORYINFO* = ptr CATEGORYINFO ICatRegister* {.pure.} = object lpVtbl*: ptr ICatRegisterVtbl + ICatRegisterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterCategories*: proc(self: ptr ICatRegister, cCategories: ULONG, rgCategoryInfo: ptr CATEGORYINFO): HRESULT {.stdcall.} - UnRegisterCategories*: proc(self: ptr ICatRegister, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.stdcall.} - RegisterClassImplCategories*: proc(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.stdcall.} - UnRegisterClassImplCategories*: proc(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.stdcall.} - RegisterClassReqCategories*: proc(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.stdcall.} - UnRegisterClassReqCategories*: proc(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.stdcall.} + RegisterCategories*: proc( + self: ptr ICatRegister, cCategories: ULONG, rgCategoryInfo: ptr CATEGORYINFO + ): HRESULT {.stdcall.} + UnRegisterCategories*: proc( + self: ptr ICatRegister, cCategories: ULONG, rgcatid: ptr CATID + ): HRESULT {.stdcall.} + RegisterClassImplCategories*: proc( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID + ): HRESULT {.stdcall.} + UnRegisterClassImplCategories*: proc( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID + ): HRESULT {.stdcall.} + RegisterClassReqCategories*: proc( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID + ): HRESULT {.stdcall.} + UnRegisterClassReqCategories*: proc( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID + ): HRESULT {.stdcall.} + LPCATREGISTER* = ptr ICatRegister ICatInformation* {.pure.} = object lpVtbl*: ptr ICatInformationVtbl + ICatInformationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EnumCategories*: proc(self: ptr ICatInformation, lcid: LCID, ppenumCategoryInfo: ptr ptr IEnumCATEGORYINFO): HRESULT {.stdcall.} - GetCategoryDesc*: proc(self: ptr ICatInformation, rcatid: REFCATID, lcid: LCID, pszDesc: ptr LPWSTR): HRESULT {.stdcall.} - EnumClassesOfCategories*: proc(self: ptr ICatInformation, cImplemented: ULONG, rgcatidImpl: ptr CATID, cRequired: ULONG, rgcatidReq: ptr CATID, ppenumClsid: ptr ptr IEnumGUID): HRESULT {.stdcall.} - IsClassOfCategories*: proc(self: ptr ICatInformation, rclsid: REFCLSID, cImplemented: ULONG, rgcatidImpl: ptr CATID, cRequired: ULONG, rgcatidReq: ptr CATID): HRESULT {.stdcall.} - EnumImplCategoriesOfClass*: proc(self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID): HRESULT {.stdcall.} - EnumReqCategoriesOfClass*: proc(self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID): HRESULT {.stdcall.} + EnumCategories*: proc( + self: ptr ICatInformation, + lcid: LCID, + ppenumCategoryInfo: ptr ptr IEnumCATEGORYINFO, + ): HRESULT {.stdcall.} + GetCategoryDesc*: proc( + self: ptr ICatInformation, rcatid: REFCATID, lcid: LCID, pszDesc: ptr LPWSTR + ): HRESULT {.stdcall.} + EnumClassesOfCategories*: proc( + self: ptr ICatInformation, + cImplemented: ULONG, + rgcatidImpl: ptr CATID, + cRequired: ULONG, + rgcatidReq: ptr CATID, + ppenumClsid: ptr ptr IEnumGUID, + ): HRESULT {.stdcall.} + IsClassOfCategories*: proc( + self: ptr ICatInformation, + rclsid: REFCLSID, + cImplemented: ULONG, + rgcatidImpl: ptr CATID, + cRequired: ULONG, + rgcatidReq: ptr CATID, + ): HRESULT {.stdcall.} + EnumImplCategoriesOfClass*: proc( + self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID + ): HRESULT {.stdcall.} + EnumReqCategoriesOfClass*: proc( + self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID + ): HRESULT {.stdcall.} + LPCATINFORMATION* = ptr ICatInformation SHITEMID* {.pure, packed.} = object cb*: USHORT abID*: array[1, BYTE] + LPSHITEMID* = ptr SHITEMID LPCSHITEMID* = ptr SHITEMID ITEMIDLIST* {.pure, packed.} = object mkid*: SHITEMID + ITEMIDLIST_RELATIVE* = ITEMIDLIST ITEMID_CHILD* = ITEMIDLIST ITEMIDLIST_ABSOLUTE* = ITEMIDLIST @@ -2747,14 +4913,17 @@ pOleStr*: LPWSTR uOffset*: UINT cStr*: array[260, char] + STRRET* {.pure.} = object uType*: UINT union1*: STRRET_UNION1 + LPSTRRET* = ptr STRRET SHELLDETAILS* {.pure.} = object fmt*: int32 cxChar*: int32 str*: STRRET + LPSHELLDETAILS* = ptr SHELLDETAILS KNOWNFOLDERID* = GUID REFKNOWNFOLDERID* = ptr KNOWNFOLDERID @@ -2767,80 +4936,167 @@ PROPERTYKEY* {.pure.} = object fmtid*: GUID pid*: DWORD + SHCOLUMNID* = PROPERTYKEY LPCSHCOLUMNID* = ptr SHCOLUMNID IOleDocumentView* {.pure.} = object lpVtbl*: ptr IOleDocumentViewVtbl + IOleDocumentViewVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetInPlaceSite*: proc(self: ptr IOleDocumentView, pIPSite: ptr IOleInPlaceSite): HRESULT {.stdcall.} - GetInPlaceSite*: proc(self: ptr IOleDocumentView, ppIPSite: ptr ptr IOleInPlaceSite): HRESULT {.stdcall.} - GetDocument*: proc(self: ptr IOleDocumentView, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + SetInPlaceSite*: proc( + self: ptr IOleDocumentView, pIPSite: ptr IOleInPlaceSite + ): HRESULT {.stdcall.} + GetInPlaceSite*: proc( + self: ptr IOleDocumentView, ppIPSite: ptr ptr IOleInPlaceSite + ): HRESULT {.stdcall.} + GetDocument*: + proc(self: ptr IOleDocumentView, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} SetRect*: proc(self: ptr IOleDocumentView, prcView: LPRECT): HRESULT {.stdcall.} GetRect*: proc(self: ptr IOleDocumentView, prcView: LPRECT): HRESULT {.stdcall.} - SetRectComplex*: proc(self: ptr IOleDocumentView, prcView: LPRECT, prcHScroll: LPRECT, prcVScroll: LPRECT, prcSizeBox: LPRECT): HRESULT {.stdcall.} + SetRectComplex*: proc( + self: ptr IOleDocumentView, + prcView: LPRECT, + prcHScroll: LPRECT, + prcVScroll: LPRECT, + prcSizeBox: LPRECT, + ): HRESULT {.stdcall.} Show*: proc(self: ptr IOleDocumentView, fShow: WINBOOL): HRESULT {.stdcall.} - UIActivate*: proc(self: ptr IOleDocumentView, fUIActivate: WINBOOL): HRESULT {.stdcall.} + UIActivate*: + proc(self: ptr IOleDocumentView, fUIActivate: WINBOOL): HRESULT {.stdcall.} Open*: proc(self: ptr IOleDocumentView): HRESULT {.stdcall.} CloseView*: proc(self: ptr IOleDocumentView, dwReserved: DWORD): HRESULT {.stdcall.} - SaveViewState*: proc(self: ptr IOleDocumentView, pstm: LPSTREAM): HRESULT {.stdcall.} - ApplyViewState*: proc(self: ptr IOleDocumentView, pstm: LPSTREAM): HRESULT {.stdcall.} - Clone*: proc(self: ptr IOleDocumentView, pIPSiteNew: ptr IOleInPlaceSite, ppViewNew: ptr ptr IOleDocumentView): HRESULT {.stdcall.} + SaveViewState*: + proc(self: ptr IOleDocumentView, pstm: LPSTREAM): HRESULT {.stdcall.} + ApplyViewState*: + proc(self: ptr IOleDocumentView, pstm: LPSTREAM): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IOleDocumentView, + pIPSiteNew: ptr IOleInPlaceSite, + ppViewNew: ptr ptr IOleDocumentView, + ): HRESULT {.stdcall.} + IEnumOleDocumentViews* {.pure.} = object lpVtbl*: ptr IEnumOleDocumentViewsVtbl + IEnumOleDocumentViewsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumOleDocumentViews, cViews: ULONG, rgpView: ptr ptr IOleDocumentView, pcFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumOleDocumentViews, + cViews: ULONG, + rgpView: ptr ptr IOleDocumentView, + pcFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumOleDocumentViews, cViews: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumOleDocumentViews): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumOleDocumentViews, ppEnum: ptr ptr IEnumOleDocumentViews): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumOleDocumentViews, ppEnum: ptr ptr IEnumOleDocumentViews + ): HRESULT {.stdcall.} + IOleDocument* {.pure.} = object lpVtbl*: ptr IOleDocumentVtbl + IOleDocumentVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateView*: proc(self: ptr IOleDocument, pIPSite: ptr IOleInPlaceSite, pstm: ptr IStream, dwReserved: DWORD, ppView: ptr ptr IOleDocumentView): HRESULT {.stdcall.} - GetDocMiscStatus*: proc(self: ptr IOleDocument, pdwStatus: ptr DWORD): HRESULT {.stdcall.} - EnumViews*: proc(self: ptr IOleDocument, ppEnum: ptr ptr IEnumOleDocumentViews, ppView: ptr ptr IOleDocumentView): HRESULT {.stdcall.} + CreateView*: proc( + self: ptr IOleDocument, + pIPSite: ptr IOleInPlaceSite, + pstm: ptr IStream, + dwReserved: DWORD, + ppView: ptr ptr IOleDocumentView, + ): HRESULT {.stdcall.} + GetDocMiscStatus*: + proc(self: ptr IOleDocument, pdwStatus: ptr DWORD): HRESULT {.stdcall.} + EnumViews*: proc( + self: ptr IOleDocument, + ppEnum: ptr ptr IEnumOleDocumentViews, + ppView: ptr ptr IOleDocumentView, + ): HRESULT {.stdcall.} + LPOLEDOCUMENT* = ptr IOleDocument IOleDocumentSite* {.pure.} = object lpVtbl*: ptr IOleDocumentSiteVtbl + IOleDocumentSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ActivateMe*: proc(self: ptr IOleDocumentSite, pViewToActivate: ptr IOleDocumentView): HRESULT {.stdcall.} + ActivateMe*: proc( + self: ptr IOleDocumentSite, pViewToActivate: ptr IOleDocumentView + ): HRESULT {.stdcall.} + LPOLEDOCUMENTSITE* = ptr IOleDocumentSite LPOLEDOCUMENTVIEW* = ptr IOleDocumentView LPENUMOLEDOCUMENTVIEWS* = ptr IEnumOleDocumentViews IContinueCallback* {.pure.} = object lpVtbl*: ptr IContinueCallbackVtbl + IContinueCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl FContinue*: proc(self: ptr IContinueCallback): HRESULT {.stdcall.} - FContinuePrinting*: proc(self: ptr IContinueCallback, nCntPrinted: LONG, nCurPage: LONG, pwszPrintStatus: ptr uint16): HRESULT {.stdcall.} + FContinuePrinting*: proc( + self: ptr IContinueCallback, + nCntPrinted: LONG, + nCurPage: LONG, + pwszPrintStatus: ptr uint16, + ): HRESULT {.stdcall.} + LPCONTINUECALLBACK* = ptr IContinueCallback PAGERANGE* {.pure.} = object nFromPage*: LONG nToPage*: LONG + PAGESET* {.pure.} = object cbStruct*: ULONG fOddPages*: WINBOOL fEvenPages*: WINBOOL cPageRange*: ULONG rgPages*: array[1, PAGERANGE] + IPrint* {.pure.} = object lpVtbl*: ptr IPrintVtbl + IPrintVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetInitialPageNum*: proc(self: ptr IPrint, nFirstPage: LONG): HRESULT {.stdcall.} - GetPageInfo*: proc(self: ptr IPrint, pnFirstPage: ptr LONG, pcPages: ptr LONG): HRESULT {.stdcall.} - Print*: proc(self: ptr IPrint, grfFlags: DWORD, pptd: ptr ptr DVTARGETDEVICE, ppPageSet: ptr ptr PAGESET, pstgmOptions: ptr STGMEDIUM, pcallback: ptr IContinueCallback, nFirstPage: LONG, pcPagesPrinted: ptr LONG, pnLastPage: ptr LONG): HRESULT {.stdcall.} + GetPageInfo*: proc( + self: ptr IPrint, pnFirstPage: ptr LONG, pcPages: ptr LONG + ): HRESULT {.stdcall.} + Print*: proc( + self: ptr IPrint, + grfFlags: DWORD, + pptd: ptr ptr DVTARGETDEVICE, + ppPageSet: ptr ptr PAGESET, + pstgmOptions: ptr STGMEDIUM, + pcallback: ptr IContinueCallback, + nFirstPage: LONG, + pcPagesPrinted: ptr LONG, + pnLastPage: ptr LONG, + ): HRESULT {.stdcall.} + LPPRINT* = ptr IPrint OLECMD* {.pure.} = object cmdID*: ULONG cmdf*: DWORD + OLECMDTEXT* {.pure.} = object cmdtextf*: DWORD cwActual*: ULONG cwBuf*: ULONG rgwz*: array[1, uint16] + IOleCommandTarget* {.pure.} = object lpVtbl*: ptr IOleCommandTargetVtbl + IOleCommandTargetVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryStatus*: proc(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, cCmds: ULONG, prgCmds: ptr OLECMD, pCmdText: ptr OLECMDTEXT): HRESULT {.stdcall.} - Exec*: proc(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, nCmdID: DWORD, nCmdexecopt: DWORD, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.stdcall.} + QueryStatus*: proc( + self: ptr IOleCommandTarget, + pguidCmdGroup: ptr GUID, + cCmds: ULONG, + prgCmds: ptr OLECMD, + pCmdText: ptr OLECMDTEXT, + ): HRESULT {.stdcall.} + Exec*: proc( + self: ptr IOleCommandTarget, + pguidCmdGroup: ptr GUID, + nCmdID: DWORD, + nCmdexecopt: DWORD, + pvaIn: ptr VARIANT, + pvaOut: ptr VARIANT, + ): HRESULT {.stdcall.} + LPOLECOMMANDTARGET* = ptr IOleCommandTarget IMsoDocument* = IOleDocument IMsoDocumentSite* = IOleDocumentSite @@ -2857,12 +5113,20 @@ REFPROPERTYKEY* = ptr PROPERTYKEY IPropertyStore* {.pure.} = object lpVtbl*: ptr IPropertyStoreVtbl + IPropertyStoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetCount*: proc(self: ptr IPropertyStore, cProps: ptr DWORD): HRESULT {.stdcall.} - GetAt*: proc(self: ptr IPropertyStore, iProp: DWORD, pkey: ptr PROPERTYKEY): HRESULT {.stdcall.} - GetValue*: proc(self: ptr IPropertyStore, key: REFPROPERTYKEY, pv: ptr PROPVARIANT): HRESULT {.stdcall.} - SetValue*: proc(self: ptr IPropertyStore, key: REFPROPERTYKEY, propvar: REFPROPVARIANT): HRESULT {.stdcall.} + GetAt*: proc(self: ptr IPropertyStore, iProp: DWORD, pkey: ptr PROPERTYKEY): HRESULT {. + stdcall + .} + GetValue*: proc( + self: ptr IPropertyStore, key: REFPROPERTYKEY, pv: ptr PROPVARIANT + ): HRESULT {.stdcall.} + SetValue*: proc( + self: ptr IPropertyStore, key: REFPROPERTYKEY, propvar: REFPROPVARIANT + ): HRESULT {.stdcall.} Commit*: proc(self: ptr IPropertyStore): HRESULT {.stdcall.} + LPPROPERTYSTORE* = ptr IPropertyStore SERIALIZEDPROPSTORAGE* {.pure.} = object PUSERIALIZEDPROPSTORAGE* = ptr SERIALIZEDPROPSTORAGE @@ -2875,6 +5139,7 @@ dwVersionMS*: DWORD dwVersionLS*: DWORD dwStyle*: DWORD + LPCODEBASEHOLD* = ptr CODEBASEHOLD SOFTDISTINFO* {.pure.} = object cbSize*: ULONG @@ -2890,6 +5155,7 @@ dwAdvertisedVersionMS*: DWORD dwAdvertisedVersionLS*: DWORD dwReserved*: DWORD + LPSOFTDISTINFO* = ptr SOFTDISTINFO HIT_LOGGING_INFO* {.pure.} = object dwStructSize*: DWORD @@ -2897,18 +5163,23 @@ StartTime*: SYSTEMTIME EndTime*: SYSTEMTIME lpszExtendedInfo*: LPSTR + LPHIT_LOGGING_INFO* = ptr HIT_LOGGING_INFO PROTOCOL_ARGUMENT* {.pure.} = object szMethod*: LPCWSTR szTargetUrl*: LPCWSTR + LPPROTOCOL_ARGUMENT* = ptr PROTOCOL_ARGUMENT + const CLSCTX_INPROC_SERVER* = 0x1 CLSCTX_INPROC_HANDLER* = 0x2 CLSCTX_INPROC* = CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER CLSCTX_LOCAL_SERVER* = 0x4 CLSCTX_REMOTE_SERVER* = 0x10 - CLSCTX_ALL* = CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER or CLSCTX_REMOTE_SERVER + CLSCTX_ALL* = + CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER or + CLSCTX_REMOTE_SERVER CLSCTX_SERVER* = CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER or CLSCTX_REMOTE_SERVER REGCLS_SINGLEUSE* = 0 REGCLS_MULTIPLEUSE* = 1 @@ -3604,7 +5875,14 @@ CLSCTX_APPCONTAINER* = 0x400000 CLSCTX_ACTIVATE_AAA_AS_IU* = 0x800000 CLSCTX_PS_DLL* = int32 0x80000000'i32 - CLSCTX_VALID_MASK* = CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER or CLSCTX_INPROC_SERVER16 or CLSCTX_REMOTE_SERVER or CLSCTX_NO_CODE_DOWNLOAD or CLSCTX_NO_CUSTOM_MARSHAL or CLSCTX_ENABLE_CODE_DOWNLOAD or CLSCTX_NO_FAILURE_LOG or CLSCTX_DISABLE_AAA or CLSCTX_ENABLE_AAA or CLSCTX_FROM_DEFAULT_CONTEXT or CLSCTX_ACTIVATE_32_BIT_SERVER or CLSCTX_ACTIVATE_64_BIT_SERVER or CLSCTX_ENABLE_CLOAKING or CLSCTX_APPCONTAINER or CLSCTX_ACTIVATE_AAA_AS_IU or CLSCTX_PS_DLL + CLSCTX_VALID_MASK* = + CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER or + CLSCTX_INPROC_SERVER16 or CLSCTX_REMOTE_SERVER or CLSCTX_NO_CODE_DOWNLOAD or + CLSCTX_NO_CUSTOM_MARSHAL or CLSCTX_ENABLE_CODE_DOWNLOAD or CLSCTX_NO_FAILURE_LOG or + CLSCTX_DISABLE_AAA or CLSCTX_ENABLE_AAA or CLSCTX_FROM_DEFAULT_CONTEXT or + CLSCTX_ACTIVATE_32_BIT_SERVER or CLSCTX_ACTIVATE_64_BIT_SERVER or + CLSCTX_ENABLE_CLOAKING or CLSCTX_APPCONTAINER or CLSCTX_ACTIVATE_AAA_AS_IU or + CLSCTX_PS_DLL MSHLFLAGS_NORMAL* = 0 MSHLFLAGS_TABLESTRONG* = 1 MSHLFLAGS_TABLEWEAK* = 2 @@ -4066,7 +6344,10 @@ Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP* = 0x10 Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8* = 0x20 Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP* = 0x40 - Uri_ENCODING_RFC* = Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 or Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 or Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 + Uri_ENCODING_RFC* = + Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 or + Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 or + Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 UriBuilder_USE_ORIGINAL_FLAGS* = 0x1 IID_IUriContainer* = DEFINE_GUID("a158a630-ed6f-45fb-b987-f68676f57752") IID_IUriBuilder* = DEFINE_GUID("4221b2e1-8955-46c0-bd5b-de9897565de7") @@ -4128,7 +6409,8 @@ IID_IInternetProtocol* = DEFINE_GUID("79eac9e4-baf9-11ce-8c82-00aa004ba90b") IID_IInternetProtocolEx* = DEFINE_GUID("c7a98e66-1010-492c-a1c8-c809e1f75905") IID_IInternetProtocolSink* = DEFINE_GUID("79eac9e5-baf9-11ce-8c82-00aa004ba90b") - IID_IInternetProtocolSinkStackable* = DEFINE_GUID("79eac9f0-baf9-11ce-8c82-00aa004ba90b") + IID_IInternetProtocolSinkStackable* = + DEFINE_GUID("79eac9f0-baf9-11ce-8c82-00aa004ba90b") OIBDG_APARTMENTTHREADED* = 0x100 OIBDG_DATAONLY* = 0x1000 IID_IInternetSession* = DEFINE_GUID("79eac9e7-baf9-11ce-8c82-00aa004ba90b") @@ -4243,7 +6525,8 @@ SID_SInternetSecurityManagerEx* = IID_IInternetSecurityManagerEx IID_IInternetSecurityManagerEx2* = DEFINE_GUID("f1e50292-a795-4117-8e09-2b560a72ac60") SID_SInternetSecurityManagerEx2* = IID_IInternetSecurityManagerEx2 - IID_IInternetHostSecurityManager* = DEFINE_GUID("3af280b6-cb3f-11d0-891e-00c04fb6bfc4") + IID_IInternetHostSecurityManager* = + DEFINE_GUID("3af280b6-cb3f-11d0-891e-00c04fb6bfc4") SID_SInternetHostSecurityManager* = IID_IInternetHostSecurityManager IID_IInternetSecurityMgrSite* = DEFINE_GUID("79eac9ed-baf9-11ce-8c82-00aa004ba90b") MUTZ_NOSAVEDFILECHECK* = 0x1 @@ -4854,12 +7137,12 @@ OLECMDID_MEDIA_PLAYBACK* = 78 MEDIAPLAYBACK_RESUME* = 0 MEDIAPLAYBACK_PAUSE* = 1 - OLECMDERR_E_FIRST* = OLE_E_LAST+1 + OLECMDERR_E_FIRST* = OLE_E_LAST + 1 OLECMDERR_E_NOTSUPPORTED* = OLECMDERR_E_FIRST - OLECMDERR_E_DISABLED* = OLECMDERR_E_FIRST+1 - OLECMDERR_E_NOHELP* = OLECMDERR_E_FIRST+2 - OLECMDERR_E_CANCELED* = OLECMDERR_E_FIRST+3 - OLECMDERR_E_UNKNOWNGROUP* = OLECMDERR_E_FIRST+4 + OLECMDERR_E_DISABLED* = OLECMDERR_E_FIRST + 1 + OLECMDERR_E_NOHELP* = OLECMDERR_E_FIRST + 2 + OLECMDERR_E_CANCELED* = OLECMDERR_E_FIRST + 3 + OLECMDERR_E_UNKNOWNGROUP* = OLECMDERR_E_FIRST + 4 MSOCMDERR_E_FIRST* = OLECMDERR_E_FIRST MSOCMDERR_E_NOTSUPPORTED* = OLECMDERR_E_NOTSUPPORTED MSOCMDERR_E_DISABLED* = OLECMDERR_E_DISABLED @@ -5345,7 +7628,8 @@ PDCOT_NUMBER* = 5 IID_IPropertyDescription* = DEFINE_GUID("6f79d558-3e96-4549-a1d1-7d75d2288814") IID_IPropertyDescription2* = DEFINE_GUID("57d2eded-5062-400e-b107-5dae79fe57a6") - IID_IPropertyDescriptionAliasInfo* = DEFINE_GUID("f67104fc-2af9-46fd-b32d-243c1404f3d1") + IID_IPropertyDescriptionAliasInfo* = + DEFINE_GUID("f67104fc-2af9-46fd-b32d-243c1404f3d1") PDSIF_DEFAULT* = 0x0 PDSIF_ININVERTEDINDEX* = 0x1 PDSIF_ISCOLUMN* = 0x2 @@ -5358,8 +7642,10 @@ PDCIT_ONDEMAND* = 3 PDCIT_ONDISKALL* = 4 PDCIT_ONDISKVECTOR* = 5 - IID_IPropertyDescriptionSearchInfo* = DEFINE_GUID("078f91bd-29a2-440f-924e-46a291524520") - IID_IPropertyDescriptionRelatedPropertyInfo* = DEFINE_GUID("507393f4-2a3d-4a60-b59e-d9c75716c2dd") + IID_IPropertyDescriptionSearchInfo* = + DEFINE_GUID("078f91bd-29a2-440f-924e-46a291524520") + IID_IPropertyDescriptionRelatedPropertyInfo* = + DEFINE_GUID("507393f4-2a3d-4a60-b59e-d9c75716c2dd") PDEF_ALL* = 0 PDEF_SYSTEM* = 1 PDEF_NONSYSTEM* = 2 @@ -5370,17 +7656,20 @@ IID_IPropertySystem* = DEFINE_GUID("ca724e8a-c3e6-442b-88a4-6fb0db8035a3") IID_IPropertyDescriptionList* = DEFINE_GUID("1f9fc1d0-c39b-4b26-817f-011967d3440e") IID_IPropertyStoreFactory* = DEFINE_GUID("bc110b6d-57e8-4148-a9c6-91015ab2f3a5") - IID_IDelayedPropertyStoreFactory* = DEFINE_GUID("40d4577f-e237-4bdb-bd69-58f089431b6a") + IID_IDelayedPropertyStoreFactory* = + DEFINE_GUID("40d4577f-e237-4bdb-bd69-58f089431b6a") FPSPS_DEFAULT* = 0x0 FPSPS_READONLY* = 0x1 FPSPS_TREAT_NEW_VALUES_AS_DIRTY* = 0x2 - IID_IPersistSerializedPropStorage* = DEFINE_GUID("e318ad57-0aa0-450f-aca5-6fab7103d917") - IID_IPersistSerializedPropStorage2* = DEFINE_GUID("77effa68-4f98-4366-ba72-573b3d880571") + IID_IPersistSerializedPropStorage* = + DEFINE_GUID("e318ad57-0aa0-450f-aca5-6fab7103d917") + IID_IPersistSerializedPropStorage2* = + DEFINE_GUID("77effa68-4f98-4366-ba72-573b3d880571") IID_IPropertySystemChangeNotify* = DEFINE_GUID("fa955fd9-38be-4879-a6ce-824cf52d609f") IID_ICreateObject* = DEFINE_GUID("75121952-e0d0-43e5-9380-1d80483acf72") PKEY_PIDSTR_MAX* = 10 GUIDSTRING_MAX* = 39 - PKEYSTR_MAX* = GUIDSTRING_MAX+1+PKEY_PIDSTR_MAX + PKEYSTR_MAX* = GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX LIBID_PropSysObjects* = DEFINE_GUID("2cda3294-6c4f-4020-b161-27c530c81fa6") CLSID_InMemoryPropertyStore* = DEFINE_GUID("9a02e012-6303-4e1e-b9a1-630f802592c5") CLSID_PropertySystem* = DEFINE_GUID("b8967f85-58ae-4f46-9fb2-5d7904798f4b") @@ -5411,59 +7700,73 @@ IID_IXMLDOMNodeList* = DEFINE_GUID("2933bf82-7b36-11d2-b20e-00c04f983e60") IID_IXMLDOMNotation* = DEFINE_GUID("2933bf8c-7b36-11d2-b20e-00c04f983e60") IID_IXMLDOMParseError* = DEFINE_GUID("3efaa426-272f-11d2-836f-0000f87a7782") - IID_IXMLDOMProcessingInstruction* = DEFINE_GUID("2933bf89-7b36-11d2-b20e-00c04f983e60") + IID_IXMLDOMProcessingInstruction* = + DEFINE_GUID("2933bf89-7b36-11d2-b20e-00c04f983e60") IID_IXMLDOMText* = DEFINE_GUID("2933bf87-7b36-11d2-b20e-00c04f983e60") IID_IXMLHttpRequest* = DEFINE_GUID("ed8c108d-4349-11d2-91a4-00c04f7969e8") IID_IXTLRuntime* = DEFINE_GUID("3efaa425-272f-11d2-836f-0000f87a7782") PAGESET_TOLASTPAGE* = not WORD(0) type - LPFNGETCLASSOBJECT* = proc (P1: REFCLSID, P2: REFIID, P3: ptr LPVOID): HRESULT {.stdcall.} - LPFNCANUNLOADNOW* = proc (): HRESULT {.stdcall.} + LPFNGETCLASSOBJECT* = + proc(P1: REFCLSID, P2: REFIID, P3: ptr LPVOID): HRESULT {.stdcall.} + LPFNCANUNLOADNOW* = proc(): HRESULT {.stdcall.} RemHGLOBAL* {.pure.} = object fNullHGlobal*: LONG cbData*: ULONG data*: array[1, uint8] + RemHMETAFILEPICT* {.pure.} = object mm*: LONG xExt*: LONG yExt*: LONG cbData*: ULONG data*: array[1, uint8] + RemHENHMETAFILE* {.pure.} = object cbData*: ULONG data*: array[1, uint8] + RemHBITMAP* {.pure.} = object cbData*: ULONG data*: array[1, uint8] + RemHPALETTE* {.pure.} = object cbData*: ULONG data*: array[1, uint8] + RemHBRUSH* {.pure.} = object cbData*: ULONG data*: array[1, uint8] + GDI_NONREMOTE_u* {.pure, union.} = object hInproc*: LONG hRemote*: ptr DWORD_BLOB + GDI_NONREMOTE* {.pure.} = object fContext*: LONG u*: GDI_NONREMOTE_u + CSPLATFORM* {.pure.} = object dwPlatformId*: DWORD dwVersionHi*: DWORD dwVersionLo*: DWORD dwProcessorArch*: DWORD + QUERYCONTEXT* {.pure.} = object dwContext*: DWORD Platform*: CSPLATFORM Locale*: LCID dwVersionHi*: DWORD dwVersionLo*: DWORD + uCLSSPEC_tagged_union_ByName* {.pure.} = object pPackageName*: LPOLESTR PolicyId*: GUID + uCLSSPEC_tagged_union_ByObjectId* {.pure.} = object ObjectId*: GUID PolicyId*: GUID + uCLSSPEC_tagged_union* {.pure, union.} = object clsid*: CLSID pFileExt*: LPOLESTR @@ -5472,9 +7775,11 @@ pFileName*: LPOLESTR ByName*: uCLSSPEC_tagged_union_ByName ByObjectId*: uCLSSPEC_tagged_union_ByObjectId + uCLSSPEC* {.pure.} = object tyspec*: DWORD tagged_union*: uCLSSPEC_tagged_union + SChannelHookCallInfo* {.pure.} = object iid*: IID cbSize*: DWORD @@ -5482,6 +7787,7 @@ dwServerPid*: DWORD iMethod*: DWORD pObject*: pointer + RemSTGMEDIUM* {.pure.} = object tymed*: DWORD dwHandleType*: DWORD @@ -5489,19 +7795,23 @@ pUnkForRelease*: ULONG cbData*: ULONG data*: array[1, uint8] + FLAG_STGMEDIUM* {.pure.} = object ContextFlags*: LONG fPassOwnership*: LONG Stgmed*: STGMEDIUM + StorageLayout* {.pure.} = object LayoutType*: DWORD pwcsElementName*: ptr OLECHAR cOffset*: LARGE_INTEGER cBytes*: LARGE_INTEGER + CLEANLOCALSTORAGE* {.pure.} = object pInterface*: ptr IUnknown pStorage*: PVOID flags*: DWORD + NUMPARSE* {.pure.} = object cDig*: INT dwInFlags*: ULONG @@ -5509,14 +7819,17 @@ cchUsed*: INT nBaseShift*: INT nPwr10*: INT + UDATE* {.pure.} = object st*: SYSTEMTIME wDayOfYear*: USHORT + STGOPTIONS* {.pure.} = object usVersion*: USHORT reserved*: USHORT ulSectorSize*: ULONG pwcsTemplateFile*: ptr WCHAR + XML_ERROR* {.pure.} = object nLine*: int32 pchBuf*: BSTR @@ -5526,6 +7839,7 @@ pszExpected*: BSTR reserved1*: DWORD reserved2*: DWORD + RemBINDINFO* {.pure.} = object cbSize*: ULONG szExtraInfo*: LPWSTR @@ -5540,589 +7854,1354 @@ iid*: IID pUnk*: ptr IUnknown dwReserved*: DWORD + StartParam* {.pure.} = object iid*: IID pIBindCtx*: ptr IBindCtx pItf*: ptr IUnknown + PROTOCOLFILTERDATA* {.pure.} = object cbSize*: DWORD pProtocolSink*: ptr IInternetProtocolSink pProtocol*: ptr IInternetProtocol pUnk*: ptr IUnknown dwFilterFlags*: DWORD + CONFIRMSAFETY* {.pure.} = object clsid*: CLSID pUnk*: ptr IUnknown dwFlags*: DWORD + SERIALIZEDPROPERTYVALUE* {.pure.} = object dwType*: DWORD rgb*: array[1, BYTE] + DVASPECTINFO* {.pure.} = object cb*: ULONG dwFlags*: DWORD + COMDLG_FILTERSPEC* {.pure.} = object pszName*: LPCWSTR pszSpec*: LPCWSTR + AsyncIUnknown* {.pure.} = object lpVtbl*: ptr AsyncIUnknownVtbl + AsyncIUnknownVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Begin_QueryInterface*: proc(self: ptr AsyncIUnknown, riid: REFIID): HRESULT {.stdcall.} - Finish_QueryInterface*: proc(self: ptr AsyncIUnknown, ppvObject: ptr pointer): HRESULT {.stdcall.} + Begin_QueryInterface*: + proc(self: ptr AsyncIUnknown, riid: REFIID): HRESULT {.stdcall.} + Finish_QueryInterface*: + proc(self: ptr AsyncIUnknown, ppvObject: ptr pointer): HRESULT {.stdcall.} Begin_AddRef*: proc(self: ptr AsyncIUnknown): HRESULT {.stdcall.} Finish_AddRef*: proc(self: ptr AsyncIUnknown): ULONG {.stdcall.} Begin_Release*: proc(self: ptr AsyncIUnknown): HRESULT {.stdcall.} Finish_Release*: proc(self: ptr AsyncIUnknown): ULONG {.stdcall.} + INoMarshal* {.pure.} = object lpVtbl*: ptr INoMarshalVtbl + INoMarshalVtbl* {.pure, inheritable.} = object of IUnknownVtbl IAgileObject* {.pure.} = object lpVtbl*: ptr IAgileObjectVtbl + IAgileObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl AsyncIMultiQI* {.pure.} = object lpVtbl*: ptr AsyncIMultiQIVtbl + AsyncIMultiQIVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Begin_QueryMultipleInterfaces*: proc(self: ptr AsyncIMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI): void {.stdcall.} - Finish_QueryMultipleInterfaces*: proc(self: ptr AsyncIMultiQI, pMQIs: ptr MULTI_QI): HRESULT {.stdcall.} + Begin_QueryMultipleInterfaces*: + proc(self: ptr AsyncIMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI): void {.stdcall.} + Finish_QueryMultipleInterfaces*: + proc(self: ptr AsyncIMultiQI, pMQIs: ptr MULTI_QI): HRESULT {.stdcall.} + IInternalUnknown* {.pure.} = object lpVtbl*: ptr IInternalUnknownVtbl + IInternalUnknownVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryInternalInterface*: proc(self: ptr IInternalUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + QueryInternalInterface*: proc( + self: ptr IInternalUnknown, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IRpcChannelBuffer* {.pure.} = object lpVtbl*: ptr IRpcChannelBufferVtbl + IRpcChannelBufferVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetBuffer*: proc(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, riid: REFIID): HRESULT {.stdcall.} - SendReceive*: proc(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, pStatus: ptr ULONG): HRESULT {.stdcall.} - FreeBuffer*: proc(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE): HRESULT {.stdcall.} - GetDestCtx*: proc(self: ptr IRpcChannelBuffer, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer): HRESULT {.stdcall.} + GetBuffer*: proc( + self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, riid: REFIID + ): HRESULT {.stdcall.} + SendReceive*: proc( + self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, pStatus: ptr ULONG + ): HRESULT {.stdcall.} + FreeBuffer*: proc(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE): HRESULT {. + stdcall + .} + GetDestCtx*: proc( + self: ptr IRpcChannelBuffer, + pdwDestContext: ptr DWORD, + ppvDestContext: ptr pointer, + ): HRESULT {.stdcall.} IsConnected*: proc(self: ptr IRpcChannelBuffer): HRESULT {.stdcall.} + IRpcChannelBuffer2* {.pure.} = object lpVtbl*: ptr IRpcChannelBuffer2Vtbl + IRpcChannelBuffer2Vtbl* {.pure, inheritable.} = object of IRpcChannelBufferVtbl - GetProtocolVersion*: proc(self: ptr IRpcChannelBuffer2, pdwVersion: ptr DWORD): HRESULT {.stdcall.} + GetProtocolVersion*: + proc(self: ptr IRpcChannelBuffer2, pdwVersion: ptr DWORD): HRESULT {.stdcall.} + ISynchronize* {.pure.} = object lpVtbl*: ptr ISynchronizeVtbl + ISynchronizeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Wait*: proc(self: ptr ISynchronize, dwFlags: DWORD, dwMilliseconds: DWORD): HRESULT {.stdcall.} + Wait*: proc(self: ptr ISynchronize, dwFlags: DWORD, dwMilliseconds: DWORD): HRESULT {. + stdcall + .} Signal*: proc(self: ptr ISynchronize): HRESULT {.stdcall.} Reset*: proc(self: ptr ISynchronize): HRESULT {.stdcall.} + IAsyncRpcChannelBuffer* {.pure.} = object lpVtbl*: ptr IAsyncRpcChannelBufferVtbl + IAsyncRpcChannelBufferVtbl* {.pure, inheritable.} = object of IRpcChannelBuffer2Vtbl - Send*: proc(self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pSync: ptr ISynchronize, pulStatus: ptr ULONG): HRESULT {.stdcall.} - Receive*: proc(self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG): HRESULT {.stdcall.} - GetDestCtxEx*: proc(self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer): HRESULT {.stdcall.} + Send*: proc( + self: ptr IAsyncRpcChannelBuffer, + pMsg: ptr RPCOLEMESSAGE, + pSync: ptr ISynchronize, + pulStatus: ptr ULONG, + ): HRESULT {.stdcall.} + Receive*: proc( + self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG + ): HRESULT {.stdcall.} + GetDestCtxEx*: proc( + self: ptr IAsyncRpcChannelBuffer, + pMsg: ptr RPCOLEMESSAGE, + pdwDestContext: ptr DWORD, + ppvDestContext: ptr pointer, + ): HRESULT {.stdcall.} + IAsyncManager* {.pure.} = object lpVtbl*: ptr IAsyncManagerVtbl + IAsyncManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl CompleteCall*: proc(self: ptr IAsyncManager, Result: HRESULT): HRESULT {.stdcall.} - GetCallContext*: proc(self: ptr IAsyncManager, riid: REFIID, pInterface: ptr pointer): HRESULT {.stdcall.} - GetState*: proc(self: ptr IAsyncManager, pulStateFlags: ptr ULONG): HRESULT {.stdcall.} + GetCallContext*: proc( + self: ptr IAsyncManager, riid: REFIID, pInterface: ptr pointer + ): HRESULT {.stdcall.} + GetState*: + proc(self: ptr IAsyncManager, pulStateFlags: ptr ULONG): HRESULT {.stdcall.} + IRpcChannelBuffer3* {.pure.} = object lpVtbl*: ptr IRpcChannelBuffer3Vtbl + IRpcChannelBuffer3Vtbl* {.pure, inheritable.} = object of IRpcChannelBuffer2Vtbl - Send*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG): HRESULT {.stdcall.} - Receive*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, ulSize: ULONG, pulStatus: ptr ULONG): HRESULT {.stdcall.} - Cancel*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE): HRESULT {.stdcall.} - GetCallContext*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, riid: REFIID, pInterface: ptr pointer): HRESULT {.stdcall.} - GetDestCtxEx*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer): HRESULT {.stdcall.} - GetState*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pState: ptr DWORD): HRESULT {.stdcall.} - RegisterAsync*: proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pAsyncMgr: ptr IAsyncManager): HRESULT {.stdcall.} + Send*: proc( + self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG + ): HRESULT {.stdcall.} + Receive*: proc( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + ulSize: ULONG, + pulStatus: ptr ULONG, + ): HRESULT {.stdcall.} + Cancel*: + proc(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE): HRESULT {.stdcall.} + GetCallContext*: proc( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + riid: REFIID, + pInterface: ptr pointer, + ): HRESULT {.stdcall.} + GetDestCtxEx*: proc( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + pdwDestContext: ptr DWORD, + ppvDestContext: ptr pointer, + ): HRESULT {.stdcall.} + GetState*: proc( + self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pState: ptr DWORD + ): HRESULT {.stdcall.} + RegisterAsync*: proc( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + pAsyncMgr: ptr IAsyncManager, + ): HRESULT {.stdcall.} + IRpcSyntaxNegotiate* {.pure.} = object lpVtbl*: ptr IRpcSyntaxNegotiateVtbl + IRpcSyntaxNegotiateVtbl* {.pure, inheritable.} = object of IUnknownVtbl - NegotiateSyntax*: proc(self: ptr IRpcSyntaxNegotiate, pMsg: ptr RPCOLEMESSAGE): HRESULT {.stdcall.} + NegotiateSyntax*: + proc(self: ptr IRpcSyntaxNegotiate, pMsg: ptr RPCOLEMESSAGE): HRESULT {.stdcall.} + IRpcProxyBuffer* {.pure.} = object lpVtbl*: ptr IRpcProxyBufferVtbl + IRpcProxyBufferVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Connect*: proc(self: ptr IRpcProxyBuffer, pRpcChannelBuffer: ptr IRpcChannelBuffer): HRESULT {.stdcall.} + Connect*: proc( + self: ptr IRpcProxyBuffer, pRpcChannelBuffer: ptr IRpcChannelBuffer + ): HRESULT {.stdcall.} Disconnect*: proc(self: ptr IRpcProxyBuffer): void {.stdcall.} + IRpcStubBuffer* {.pure.} = object lpVtbl*: ptr IRpcStubBufferVtbl + IRpcStubBufferVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Connect*: proc(self: ptr IRpcStubBuffer, pUnkServer: ptr IUnknown): HRESULT {.stdcall.} + Connect*: + proc(self: ptr IRpcStubBuffer, pUnkServer: ptr IUnknown): HRESULT {.stdcall.} Disconnect*: proc(self: ptr IRpcStubBuffer): void {.stdcall.} - Invoke*: proc(self: ptr IRpcStubBuffer, prpcmsg: ptr RPCOLEMESSAGE, pRpcChannelBuffer: ptr IRpcChannelBuffer): HRESULT {.stdcall.} - IsIIDSupported*: proc(self: ptr IRpcStubBuffer, riid: REFIID): ptr IRpcStubBuffer {.stdcall.} + Invoke*: proc( + self: ptr IRpcStubBuffer, + prpcmsg: ptr RPCOLEMESSAGE, + pRpcChannelBuffer: ptr IRpcChannelBuffer, + ): HRESULT {.stdcall.} + IsIIDSupported*: + proc(self: ptr IRpcStubBuffer, riid: REFIID): ptr IRpcStubBuffer {.stdcall.} CountRefs*: proc(self: ptr IRpcStubBuffer): ULONG {.stdcall.} - DebugServerQueryInterface*: proc(self: ptr IRpcStubBuffer, ppv: ptr pointer): HRESULT {.stdcall.} + DebugServerQueryInterface*: + proc(self: ptr IRpcStubBuffer, ppv: ptr pointer): HRESULT {.stdcall.} DebugServerRelease*: proc(self: ptr IRpcStubBuffer, pv: pointer): void {.stdcall.} + IPSFactoryBuffer* {.pure.} = object lpVtbl*: ptr IPSFactoryBufferVtbl + IPSFactoryBufferVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateProxy*: proc(self: ptr IPSFactoryBuffer, pUnkOuter: ptr IUnknown, riid: REFIID, ppProxy: ptr ptr IRpcProxyBuffer, ppv: ptr pointer): HRESULT {.stdcall.} - CreateStub*: proc(self: ptr IPSFactoryBuffer, riid: REFIID, pUnkServer: ptr IUnknown, ppStub: ptr ptr IRpcStubBuffer): HRESULT {.stdcall.} + CreateProxy*: proc( + self: ptr IPSFactoryBuffer, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppProxy: ptr ptr IRpcProxyBuffer, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + CreateStub*: proc( + self: ptr IPSFactoryBuffer, + riid: REFIID, + pUnkServer: ptr IUnknown, + ppStub: ptr ptr IRpcStubBuffer, + ): HRESULT {.stdcall.} + IChannelHook* {.pure.} = object lpVtbl*: ptr IChannelHookVtbl + IChannelHookVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ClientGetSize*: proc(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG): void {.stdcall.} - ClientFillBuffer*: proc(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG, pDataBuffer: pointer): void {.stdcall.} - ClientNotify*: proc(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, cbDataSize: ULONG, pDataBuffer: pointer, lDataRep: DWORD, hrFault: HRESULT): void {.stdcall.} - ServerNotify*: proc(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, cbDataSize: ULONG, pDataBuffer: pointer, lDataRep: DWORD): void {.stdcall.} - ServerGetSize*: proc(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, hrFault: HRESULT, pDataSize: ptr ULONG): void {.stdcall.} - ServerFillBuffer*: proc(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG, pDataBuffer: pointer, hrFault: HRESULT): void {.stdcall.} + ClientGetSize*: proc( + self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG + ): void {.stdcall.} + ClientFillBuffer*: proc( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + pDataSize: ptr ULONG, + pDataBuffer: pointer, + ): void {.stdcall.} + ClientNotify*: proc( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + cbDataSize: ULONG, + pDataBuffer: pointer, + lDataRep: DWORD, + hrFault: HRESULT, + ): void {.stdcall.} + ServerNotify*: proc( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + cbDataSize: ULONG, + pDataBuffer: pointer, + lDataRep: DWORD, + ): void {.stdcall.} + ServerGetSize*: proc( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + hrFault: HRESULT, + pDataSize: ptr ULONG, + ): void {.stdcall.} + ServerFillBuffer*: proc( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + pDataSize: ptr ULONG, + pDataBuffer: pointer, + hrFault: HRESULT, + ): void {.stdcall.} + IClientSecurity* {.pure.} = object lpVtbl*: ptr IClientSecurityVtbl + IClientSecurityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryBlanket*: proc(self: ptr IClientSecurity, pProxy: ptr IUnknown, pAuthnSvc: ptr DWORD, pAuthzSvc: ptr DWORD, pServerPrincName: ptr ptr OLECHAR, pAuthnLevel: ptr DWORD, pImpLevel: ptr DWORD, pAuthInfo: ptr pointer, pCapabilites: ptr DWORD): HRESULT {.stdcall.} - SetBlanket*: proc(self: ptr IClientSecurity, pProxy: ptr IUnknown, dwAuthnSvc: DWORD, dwAuthzSvc: DWORD, pServerPrincName: ptr OLECHAR, dwAuthnLevel: DWORD, dwImpLevel: DWORD, pAuthInfo: pointer, dwCapabilities: DWORD): HRESULT {.stdcall.} - CopyProxy*: proc(self: ptr IClientSecurity, pProxy: ptr IUnknown, ppCopy: ptr ptr IUnknown): HRESULT {.stdcall.} + QueryBlanket*: proc( + self: ptr IClientSecurity, + pProxy: ptr IUnknown, + pAuthnSvc: ptr DWORD, + pAuthzSvc: ptr DWORD, + pServerPrincName: ptr ptr OLECHAR, + pAuthnLevel: ptr DWORD, + pImpLevel: ptr DWORD, + pAuthInfo: ptr pointer, + pCapabilites: ptr DWORD, + ): HRESULT {.stdcall.} + SetBlanket*: proc( + self: ptr IClientSecurity, + pProxy: ptr IUnknown, + dwAuthnSvc: DWORD, + dwAuthzSvc: DWORD, + pServerPrincName: ptr OLECHAR, + dwAuthnLevel: DWORD, + dwImpLevel: DWORD, + pAuthInfo: pointer, + dwCapabilities: DWORD, + ): HRESULT {.stdcall.} + CopyProxy*: proc( + self: ptr IClientSecurity, pProxy: ptr IUnknown, ppCopy: ptr ptr IUnknown + ): HRESULT {.stdcall.} + IServerSecurity* {.pure.} = object lpVtbl*: ptr IServerSecurityVtbl + IServerSecurityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryBlanket*: proc(self: ptr IServerSecurity, pAuthnSvc: ptr DWORD, pAuthzSvc: ptr DWORD, pServerPrincName: ptr ptr OLECHAR, pAuthnLevel: ptr DWORD, pImpLevel: ptr DWORD, pPrivs: ptr pointer, pCapabilities: ptr DWORD): HRESULT {.stdcall.} + QueryBlanket*: proc( + self: ptr IServerSecurity, + pAuthnSvc: ptr DWORD, + pAuthzSvc: ptr DWORD, + pServerPrincName: ptr ptr OLECHAR, + pAuthnLevel: ptr DWORD, + pImpLevel: ptr DWORD, + pPrivs: ptr pointer, + pCapabilities: ptr DWORD, + ): HRESULT {.stdcall.} ImpersonateClient*: proc(self: ptr IServerSecurity): HRESULT {.stdcall.} RevertToSelf*: proc(self: ptr IServerSecurity): HRESULT {.stdcall.} IsImpersonating*: proc(self: ptr IServerSecurity): WINBOOL {.stdcall.} + IRpcOptions* {.pure.} = object lpVtbl*: ptr IRpcOptionsVtbl + IRpcOptionsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Set*: proc(self: ptr IRpcOptions, pPrx: ptr IUnknown, dwProperty: RPCOPT_PROPERTIES, dwValue: ULONG_PTR): HRESULT {.stdcall.} - Query*: proc(self: ptr IRpcOptions, pPrx: ptr IUnknown, dwProperty: RPCOPT_PROPERTIES, pdwValue: ptr ULONG_PTR): HRESULT {.stdcall.} + Set*: proc( + self: ptr IRpcOptions, + pPrx: ptr IUnknown, + dwProperty: RPCOPT_PROPERTIES, + dwValue: ULONG_PTR, + ): HRESULT {.stdcall.} + Query*: proc( + self: ptr IRpcOptions, + pPrx: ptr IUnknown, + dwProperty: RPCOPT_PROPERTIES, + pdwValue: ptr ULONG_PTR, + ): HRESULT {.stdcall.} + IGlobalOptions* {.pure.} = object lpVtbl*: ptr IGlobalOptionsVtbl + IGlobalOptionsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Set*: proc(self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, dwValue: ULONG_PTR): HRESULT {.stdcall.} - Query*: proc(self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, pdwValue: ptr ULONG_PTR): HRESULT {.stdcall.} + Set*: proc( + self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, dwValue: ULONG_PTR + ): HRESULT {.stdcall.} + Query*: proc( + self: ptr IGlobalOptions, + dwProperty: GLOBALOPT_PROPERTIES, + pdwValue: ptr ULONG_PTR, + ): HRESULT {.stdcall.} + ISynchronizeHandle* {.pure.} = object lpVtbl*: ptr ISynchronizeHandleVtbl + ISynchronizeHandleVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetHandle*: proc(self: ptr ISynchronizeHandle, ph: ptr HANDLE): HRESULT {.stdcall.} + ISynchronizeEvent* {.pure.} = object lpVtbl*: ptr ISynchronizeEventVtbl + ISynchronizeEventVtbl* {.pure, inheritable.} = object of ISynchronizeHandleVtbl - SetEventHandle*: proc(self: ptr ISynchronizeEvent, ph: ptr HANDLE): HRESULT {.stdcall.} + SetEventHandle*: + proc(self: ptr ISynchronizeEvent, ph: ptr HANDLE): HRESULT {.stdcall.} + ISynchronizeContainer* {.pure.} = object lpVtbl*: ptr ISynchronizeContainerVtbl + ISynchronizeContainerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddSynchronize*: proc(self: ptr ISynchronizeContainer, pSync: ptr ISynchronize): HRESULT {.stdcall.} - WaitMultiple*: proc(self: ptr ISynchronizeContainer, dwFlags: DWORD, dwTimeOut: DWORD, ppSync: ptr ptr ISynchronize): HRESULT {.stdcall.} + AddSynchronize*: proc( + self: ptr ISynchronizeContainer, pSync: ptr ISynchronize + ): HRESULT {.stdcall.} + WaitMultiple*: proc( + self: ptr ISynchronizeContainer, + dwFlags: DWORD, + dwTimeOut: DWORD, + ppSync: ptr ptr ISynchronize, + ): HRESULT {.stdcall.} + ISynchronizeMutex* {.pure.} = object lpVtbl*: ptr ISynchronizeMutexVtbl + ISynchronizeMutexVtbl* {.pure, inheritable.} = object of ISynchronizeVtbl ReleaseMutex*: proc(self: ptr ISynchronizeMutex): HRESULT {.stdcall.} + ICallFactory* {.pure.} = object lpVtbl*: ptr ICallFactoryVtbl + ICallFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateCall*: proc(self: ptr ICallFactory, riid: REFIID, pCtrlUnk: ptr IUnknown, riid2: REFIID, ppv: ptr ptr IUnknown): HRESULT {.stdcall.} + CreateCall*: proc( + self: ptr ICallFactory, + riid: REFIID, + pCtrlUnk: ptr IUnknown, + riid2: REFIID, + ppv: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + IRpcHelper* {.pure.} = object lpVtbl*: ptr IRpcHelperVtbl + IRpcHelperVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDCOMProtocolVersion*: proc(self: ptr IRpcHelper, pComVersion: ptr DWORD): HRESULT {.stdcall.} - GetIIDFromOBJREF*: proc(self: ptr IRpcHelper, pObjRef: pointer, piid: ptr ptr IID): HRESULT {.stdcall.} + GetDCOMProtocolVersion*: + proc(self: ptr IRpcHelper, pComVersion: ptr DWORD): HRESULT {.stdcall.} + GetIIDFromOBJREF*: proc( + self: ptr IRpcHelper, pObjRef: pointer, piid: ptr ptr IID + ): HRESULT {.stdcall.} + IReleaseMarshalBuffers* {.pure.} = object lpVtbl*: ptr IReleaseMarshalBuffersVtbl + IReleaseMarshalBuffersVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ReleaseMarshalBuffer*: proc(self: ptr IReleaseMarshalBuffers, pMsg: ptr RPCOLEMESSAGE, dwFlags: DWORD, pChnl: ptr IUnknown): HRESULT {.stdcall.} + ReleaseMarshalBuffer*: proc( + self: ptr IReleaseMarshalBuffers, + pMsg: ptr RPCOLEMESSAGE, + dwFlags: DWORD, + pChnl: ptr IUnknown, + ): HRESULT {.stdcall.} + IWaitMultiple* {.pure.} = object lpVtbl*: ptr IWaitMultipleVtbl + IWaitMultipleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - WaitMultiple*: proc(self: ptr IWaitMultiple, timeout: DWORD, pSync: ptr ptr ISynchronize): HRESULT {.stdcall.} - AddSynchronize*: proc(self: ptr IWaitMultiple, pSync: ptr ISynchronize): HRESULT {.stdcall.} + WaitMultiple*: proc( + self: ptr IWaitMultiple, timeout: DWORD, pSync: ptr ptr ISynchronize + ): HRESULT {.stdcall.} + AddSynchronize*: + proc(self: ptr IWaitMultiple, pSync: ptr ISynchronize): HRESULT {.stdcall.} + IPipeByte* {.pure.} = object lpVtbl*: ptr IPipeByteVtbl + IPipeByteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Pull*: proc(self: ptr IPipeByte, buf: ptr BYTE, cRequest: ULONG, pcReturned: ptr ULONG): HRESULT {.stdcall.} + Pull*: proc( + self: ptr IPipeByte, buf: ptr BYTE, cRequest: ULONG, pcReturned: ptr ULONG + ): HRESULT {.stdcall.} Push*: proc(self: ptr IPipeByte, buf: ptr BYTE, cSent: ULONG): HRESULT {.stdcall.} + IPipeLong* {.pure.} = object lpVtbl*: ptr IPipeLongVtbl + IPipeLongVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Pull*: proc(self: ptr IPipeLong, buf: ptr LONG, cRequest: ULONG, pcReturned: ptr ULONG): HRESULT {.stdcall.} + Pull*: proc( + self: ptr IPipeLong, buf: ptr LONG, cRequest: ULONG, pcReturned: ptr ULONG + ): HRESULT {.stdcall.} Push*: proc(self: ptr IPipeLong, buf: ptr LONG, cSent: ULONG): HRESULT {.stdcall.} + IPipeDouble* {.pure.} = object lpVtbl*: ptr IPipeDoubleVtbl + IPipeDoubleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Pull*: proc(self: ptr IPipeDouble, buf: ptr DOUBLE, cRequest: ULONG, pcReturned: ptr ULONG): HRESULT {.stdcall.} - Push*: proc(self: ptr IPipeDouble, buf: ptr DOUBLE, cSent: ULONG): HRESULT {.stdcall.} + Pull*: proc( + self: ptr IPipeDouble, buf: ptr DOUBLE, cRequest: ULONG, pcReturned: ptr ULONG + ): HRESULT {.stdcall.} + Push*: + proc(self: ptr IPipeDouble, buf: ptr DOUBLE, cSent: ULONG): HRESULT {.stdcall.} + IContext* {.pure.} = object lpVtbl*: ptr IContextVtbl + IContextVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetProperty*: proc(self: ptr IContext, rpolicyId: REFGUID, flags: CPFLAGS, pUnk: ptr IUnknown): HRESULT {.stdcall.} + SetProperty*: proc( + self: ptr IContext, rpolicyId: REFGUID, flags: CPFLAGS, pUnk: ptr IUnknown + ): HRESULT {.stdcall.} RemoveProperty*: proc(self: ptr IContext, rPolicyId: REFGUID): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr IContext, rGuid: REFGUID, pFlags: ptr CPFLAGS, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} - EnumContextProps*: proc(self: ptr IContext, ppEnumContextProps: ptr ptr IEnumContextProps): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IContext, rGuid: REFGUID, pFlags: ptr CPFLAGS, ppUnk: ptr ptr IUnknown + ): HRESULT {.stdcall.} + EnumContextProps*: proc( + self: ptr IContext, ppEnumContextProps: ptr ptr IEnumContextProps + ): HRESULT {.stdcall.} + IComThreadingInfo* {.pure.} = object lpVtbl*: ptr IComThreadingInfoVtbl + IComThreadingInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentApartmentType*: proc(self: ptr IComThreadingInfo, pAptType: ptr APTTYPE): HRESULT {.stdcall.} - GetCurrentThreadType*: proc(self: ptr IComThreadingInfo, pThreadType: ptr THDTYPE): HRESULT {.stdcall.} - GetCurrentLogicalThreadId*: proc(self: ptr IComThreadingInfo, pguidLogicalThreadId: ptr GUID): HRESULT {.stdcall.} - SetCurrentLogicalThreadId*: proc(self: ptr IComThreadingInfo, rguid: REFGUID): HRESULT {.stdcall.} + GetCurrentApartmentType*: + proc(self: ptr IComThreadingInfo, pAptType: ptr APTTYPE): HRESULT {.stdcall.} + GetCurrentThreadType*: + proc(self: ptr IComThreadingInfo, pThreadType: ptr THDTYPE): HRESULT {.stdcall.} + GetCurrentLogicalThreadId*: proc( + self: ptr IComThreadingInfo, pguidLogicalThreadId: ptr GUID + ): HRESULT {.stdcall.} + SetCurrentLogicalThreadId*: + proc(self: ptr IComThreadingInfo, rguid: REFGUID): HRESULT {.stdcall.} + IProcessInitControl* {.pure.} = object lpVtbl*: ptr IProcessInitControlVtbl + IProcessInitControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ResetInitializerTimeout*: proc(self: ptr IProcessInitControl, dwSecondsRemaining: DWORD): HRESULT {.stdcall.} + ResetInitializerTimeout*: proc( + self: ptr IProcessInitControl, dwSecondsRemaining: DWORD + ): HRESULT {.stdcall.} + IFastRundown* {.pure.} = object lpVtbl*: ptr IFastRundownVtbl + IFastRundownVtbl* {.pure, inheritable.} = object of IUnknownVtbl IMarshalingStream* {.pure.} = object lpVtbl*: ptr IMarshalingStreamVtbl + IMarshalingStreamVtbl* {.pure, inheritable.} = object of IStreamVtbl - GetMarshalingContextAttribute*: proc(self: ptr IMarshalingStream, attribute: CO_MARSHALING_CONTEXT_ATTRIBUTES, pAttributeValue: ptr ULONG_PTR): HRESULT {.stdcall.} + GetMarshalingContextAttribute*: proc( + self: ptr IMarshalingStream, + attribute: CO_MARSHALING_CONTEXT_ATTRIBUTES, + pAttributeValue: ptr ULONG_PTR, + ): HRESULT {.stdcall.} + IROTData* {.pure.} = object lpVtbl*: ptr IROTDataVtbl + IROTDataVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetComparisonData*: proc(self: ptr IROTData, pbData: ptr uint8, cbMax: ULONG, pcbData: ptr ULONG): HRESULT {.stdcall.} + GetComparisonData*: proc( + self: ptr IROTData, pbData: ptr uint8, cbMax: ULONG, pcbData: ptr ULONG + ): HRESULT {.stdcall.} + AsyncIAdviseSink* {.pure.} = object lpVtbl*: ptr AsyncIAdviseSinkVtbl + AsyncIAdviseSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Begin_OnDataChange*: proc(self: ptr AsyncIAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM): void {.stdcall.} + Begin_OnDataChange*: proc( + self: ptr AsyncIAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM + ): void {.stdcall.} Finish_OnDataChange*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} - Begin_OnViewChange*: proc(self: ptr AsyncIAdviseSink, dwAspect: DWORD, lindex: LONG): void {.stdcall.} + Begin_OnViewChange*: + proc(self: ptr AsyncIAdviseSink, dwAspect: DWORD, lindex: LONG): void {.stdcall.} Finish_OnViewChange*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} - Begin_OnRename*: proc(self: ptr AsyncIAdviseSink, pmk: ptr IMoniker): void {.stdcall.} + Begin_OnRename*: + proc(self: ptr AsyncIAdviseSink, pmk: ptr IMoniker): void {.stdcall.} Finish_OnRename*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} Begin_OnSave*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} Finish_OnSave*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} Begin_OnClose*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} Finish_OnClose*: proc(self: ptr AsyncIAdviseSink): void {.stdcall.} + AsyncIAdviseSink2* {.pure.} = object lpVtbl*: ptr AsyncIAdviseSink2Vtbl + AsyncIAdviseSink2Vtbl* {.pure, inheritable.} = object of IAdviseSinkVtbl - Begin_OnLinkSrcChange*: proc(self: ptr AsyncIAdviseSink2, pmk: ptr IMoniker): void {.stdcall.} + Begin_OnLinkSrcChange*: + proc(self: ptr AsyncIAdviseSink2, pmk: ptr IMoniker): void {.stdcall.} Finish_OnLinkSrcChange*: proc(self: ptr AsyncIAdviseSink2): void {.stdcall.} + IClassActivator* {.pure.} = object lpVtbl*: ptr IClassActivatorVtbl + IClassActivatorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetClassObject*: proc(self: ptr IClassActivator, rclsid: REFCLSID, dwClassContext: DWORD, locale: LCID, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetClassObject*: proc( + self: ptr IClassActivator, + rclsid: REFCLSID, + dwClassContext: DWORD, + locale: LCID, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IFillLockBytes* {.pure.} = object lpVtbl*: ptr IFillLockBytesVtbl + IFillLockBytesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FillAppend*: proc(self: ptr IFillLockBytes, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.stdcall.} - FillAt*: proc(self: ptr IFillLockBytes, ulOffset: ULARGE_INTEGER, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.stdcall.} - SetFillSize*: proc(self: ptr IFillLockBytes, ulSize: ULARGE_INTEGER): HRESULT {.stdcall.} + FillAppend*: proc( + self: ptr IFillLockBytes, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG + ): HRESULT {.stdcall.} + FillAt*: proc( + self: ptr IFillLockBytes, + ulOffset: ULARGE_INTEGER, + pv: pointer, + cb: ULONG, + pcbWritten: ptr ULONG, + ): HRESULT {.stdcall.} + SetFillSize*: + proc(self: ptr IFillLockBytes, ulSize: ULARGE_INTEGER): HRESULT {.stdcall.} Terminate*: proc(self: ptr IFillLockBytes, bCanceled: WINBOOL): HRESULT {.stdcall.} + IProgressNotify* {.pure.} = object lpVtbl*: ptr IProgressNotifyVtbl + IProgressNotifyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnProgress*: proc(self: ptr IProgressNotify, dwProgressCurrent: DWORD, dwProgressMaximum: DWORD, fAccurate: WINBOOL, fOwner: WINBOOL): HRESULT {.stdcall.} + OnProgress*: proc( + self: ptr IProgressNotify, + dwProgressCurrent: DWORD, + dwProgressMaximum: DWORD, + fAccurate: WINBOOL, + fOwner: WINBOOL, + ): HRESULT {.stdcall.} + ILayoutStorage* {.pure.} = object lpVtbl*: ptr ILayoutStorageVtbl + ILayoutStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - LayoutScript*: proc(self: ptr ILayoutStorage, pStorageLayout: ptr StorageLayout, nEntries: DWORD, glfInterleavedFlag: DWORD): HRESULT {.stdcall.} + LayoutScript*: proc( + self: ptr ILayoutStorage, + pStorageLayout: ptr StorageLayout, + nEntries: DWORD, + glfInterleavedFlag: DWORD, + ): HRESULT {.stdcall.} BeginMonitor*: proc(self: ptr ILayoutStorage): HRESULT {.stdcall.} EndMonitor*: proc(self: ptr ILayoutStorage): HRESULT {.stdcall.} - ReLayoutDocfile*: proc(self: ptr ILayoutStorage, pwcsNewDfName: ptr OLECHAR): HRESULT {.stdcall.} - ReLayoutDocfileOnILockBytes*: proc(self: ptr ILayoutStorage, pILockBytes: ptr ILockBytes): HRESULT {.stdcall.} + ReLayoutDocfile*: + proc(self: ptr ILayoutStorage, pwcsNewDfName: ptr OLECHAR): HRESULT {.stdcall.} + ReLayoutDocfileOnILockBytes*: + proc(self: ptr ILayoutStorage, pILockBytes: ptr ILockBytes): HRESULT {.stdcall.} + IBlockingLock* {.pure.} = object lpVtbl*: ptr IBlockingLockVtbl + IBlockingLockVtbl* {.pure, inheritable.} = object of IUnknownVtbl Lock*: proc(self: ptr IBlockingLock, dwTimeout: DWORD): HRESULT {.stdcall.} Unlock*: proc(self: ptr IBlockingLock): HRESULT {.stdcall.} + ITimeAndNoticeControl* {.pure.} = object lpVtbl*: ptr ITimeAndNoticeControlVtbl + ITimeAndNoticeControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SuppressChanges*: proc(self: ptr ITimeAndNoticeControl, res1: DWORD, res2: DWORD): HRESULT {.stdcall.} + SuppressChanges*: proc( + self: ptr ITimeAndNoticeControl, res1: DWORD, res2: DWORD + ): HRESULT {.stdcall.} + IOplockStorage* {.pure.} = object lpVtbl*: ptr IOplockStorageVtbl + IOplockStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateStorageEx*: proc(self: ptr IOplockStorage, pwcsName: LPCWSTR, grfMode: DWORD, stgfmt: DWORD, grfAttrs: DWORD, riid: REFIID, ppstgOpen: ptr pointer): HRESULT {.stdcall.} - OpenStorageEx*: proc(self: ptr IOplockStorage, pwcsName: LPCWSTR, grfMode: DWORD, stgfmt: DWORD, grfAttrs: DWORD, riid: REFIID, ppstgOpen: ptr pointer): HRESULT {.stdcall.} + CreateStorageEx*: proc( + self: ptr IOplockStorage, + pwcsName: LPCWSTR, + grfMode: DWORD, + stgfmt: DWORD, + grfAttrs: DWORD, + riid: REFIID, + ppstgOpen: ptr pointer, + ): HRESULT {.stdcall.} + OpenStorageEx*: proc( + self: ptr IOplockStorage, + pwcsName: LPCWSTR, + grfMode: DWORD, + stgfmt: DWORD, + grfAttrs: DWORD, + riid: REFIID, + ppstgOpen: ptr pointer, + ): HRESULT {.stdcall.} + IDirectWriterLock* {.pure.} = object lpVtbl*: ptr IDirectWriterLockVtbl + IDirectWriterLockVtbl* {.pure, inheritable.} = object of IUnknownVtbl - WaitForWriteAccess*: proc(self: ptr IDirectWriterLock, dwTimeout: DWORD): HRESULT {.stdcall.} + WaitForWriteAccess*: + proc(self: ptr IDirectWriterLock, dwTimeout: DWORD): HRESULT {.stdcall.} ReleaseWriteAccess*: proc(self: ptr IDirectWriterLock): HRESULT {.stdcall.} HaveWriteAccess*: proc(self: ptr IDirectWriterLock): HRESULT {.stdcall.} + IUrlMon* {.pure.} = object lpVtbl*: ptr IUrlMonVtbl + IUrlMonVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AsyncGetClassBits*: proc(self: ptr IUrlMon, rclsid: REFCLSID, pszTYPE: LPCWSTR, pszExt: LPCWSTR, dwFileVersionMS: DWORD, dwFileVersionLS: DWORD, pszCodeBase: LPCWSTR, pbc: ptr IBindCtx, dwClassContext: DWORD, riid: REFIID, flags: DWORD): HRESULT {.stdcall.} + AsyncGetClassBits*: proc( + self: ptr IUrlMon, + rclsid: REFCLSID, + pszTYPE: LPCWSTR, + pszExt: LPCWSTR, + dwFileVersionMS: DWORD, + dwFileVersionLS: DWORD, + pszCodeBase: LPCWSTR, + pbc: ptr IBindCtx, + dwClassContext: DWORD, + riid: REFIID, + flags: DWORD, + ): HRESULT {.stdcall.} + IForegroundTransfer* {.pure.} = object lpVtbl*: ptr IForegroundTransferVtbl + IForegroundTransferVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AllowForegroundTransfer*: proc(self: ptr IForegroundTransfer, lpvReserved: pointer): HRESULT {.stdcall.} + AllowForegroundTransfer*: + proc(self: ptr IForegroundTransfer, lpvReserved: pointer): HRESULT {.stdcall.} + IThumbnailExtractor* {.pure.} = object lpVtbl*: ptr IThumbnailExtractorVtbl + IThumbnailExtractorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ExtractThumbnail*: proc(self: ptr IThumbnailExtractor, pStg: ptr IStorage, ulLength: ULONG, ulHeight: ULONG, pulOutputLength: ptr ULONG, pulOutputHeight: ptr ULONG, phOutputBitmap: ptr HBITMAP): HRESULT {.stdcall.} - OnFileUpdated*: proc(self: ptr IThumbnailExtractor, pStg: ptr IStorage): HRESULT {.stdcall.} + ExtractThumbnail*: proc( + self: ptr IThumbnailExtractor, + pStg: ptr IStorage, + ulLength: ULONG, + ulHeight: ULONG, + pulOutputLength: ptr ULONG, + pulOutputHeight: ptr ULONG, + phOutputBitmap: ptr HBITMAP, + ): HRESULT {.stdcall.} + OnFileUpdated*: + proc(self: ptr IThumbnailExtractor, pStg: ptr IStorage): HRESULT {.stdcall.} + IDummyHICONIncluder* {.pure.} = object lpVtbl*: ptr IDummyHICONIncluderVtbl + IDummyHICONIncluderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Dummy*: proc(self: ptr IDummyHICONIncluder, h1: HICON, h2: HDC): HRESULT {.stdcall.} + IProcessLock* {.pure.} = object lpVtbl*: ptr IProcessLockVtbl + IProcessLockVtbl* {.pure, inheritable.} = object of IUnknownVtbl AddRefOnProcess*: proc(self: ptr IProcessLock): ULONG {.stdcall.} ReleaseRefOnProcess*: proc(self: ptr IProcessLock): ULONG {.stdcall.} + ISurrogateService* {.pure.} = object lpVtbl*: ptr ISurrogateServiceVtbl + ISurrogateServiceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Init*: proc(self: ptr ISurrogateService, rguidProcessID: REFGUID, pProcessLock: ptr IProcessLock, pfApplicationAware: ptr WINBOOL): HRESULT {.stdcall.} - ApplicationLaunch*: proc(self: ptr ISurrogateService, rguidApplID: REFGUID, appType: ApplicationType): HRESULT {.stdcall.} - ApplicationFree*: proc(self: ptr ISurrogateService, rguidApplID: REFGUID): HRESULT {.stdcall.} - CatalogRefresh*: proc(self: ptr ISurrogateService, ulReserved: ULONG): HRESULT {.stdcall.} - ProcessShutdown*: proc(self: ptr ISurrogateService, shutdownType: ShutdownType): HRESULT {.stdcall.} + Init*: proc( + self: ptr ISurrogateService, + rguidProcessID: REFGUID, + pProcessLock: ptr IProcessLock, + pfApplicationAware: ptr WINBOOL, + ): HRESULT {.stdcall.} + ApplicationLaunch*: proc( + self: ptr ISurrogateService, rguidApplID: REFGUID, appType: ApplicationType + ): HRESULT {.stdcall.} + ApplicationFree*: + proc(self: ptr ISurrogateService, rguidApplID: REFGUID): HRESULT {.stdcall.} + CatalogRefresh*: + proc(self: ptr ISurrogateService, ulReserved: ULONG): HRESULT {.stdcall.} + ProcessShutdown*: + proc(self: ptr ISurrogateService, shutdownType: ShutdownType): HRESULT {.stdcall.} + IApartmentShutdown* {.pure.} = object lpVtbl*: ptr IApartmentShutdownVtbl + IApartmentShutdownVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnUninitialize*: proc(self: ptr IApartmentShutdown, ui64ApartmentIdentifier: UINT64): void {.stdcall.} + OnUninitialize*: proc( + self: ptr IApartmentShutdown, ui64ApartmentIdentifier: UINT64 + ): void {.stdcall.} + ITypeFactory* {.pure.} = object lpVtbl*: ptr ITypeFactoryVtbl + ITypeFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateFromTypeInfo*: proc(self: ptr ITypeFactory, pTypeInfo: ptr ITypeInfo, riid: REFIID, ppv: ptr ptr IUnknown): HRESULT {.stdcall.} + CreateFromTypeInfo*: proc( + self: ptr ITypeFactory, + pTypeInfo: ptr ITypeInfo, + riid: REFIID, + ppv: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + ITypeMarshal* {.pure.} = object lpVtbl*: ptr ITypeMarshalVtbl + ITypeMarshalVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Size*: proc(self: ptr ITypeMarshal, pvType: PVOID, dwDestContext: DWORD, pvDestContext: PVOID, pSize: ptr ULONG): HRESULT {.stdcall.} - Marshal*: proc(self: ptr ITypeMarshal, pvType: PVOID, dwDestContext: DWORD, pvDestContext: PVOID, cbBufferLength: ULONG, pBuffer: ptr BYTE, pcbWritten: ptr ULONG): HRESULT {.stdcall.} - Unmarshal*: proc(self: ptr ITypeMarshal, pvType: PVOID, dwFlags: DWORD, cbBufferLength: ULONG, pBuffer: ptr BYTE, pcbRead: ptr ULONG): HRESULT {.stdcall.} + Size*: proc( + self: ptr ITypeMarshal, + pvType: PVOID, + dwDestContext: DWORD, + pvDestContext: PVOID, + pSize: ptr ULONG, + ): HRESULT {.stdcall.} + Marshal*: proc( + self: ptr ITypeMarshal, + pvType: PVOID, + dwDestContext: DWORD, + pvDestContext: PVOID, + cbBufferLength: ULONG, + pBuffer: ptr BYTE, + pcbWritten: ptr ULONG, + ): HRESULT {.stdcall.} + Unmarshal*: proc( + self: ptr ITypeMarshal, + pvType: PVOID, + dwFlags: DWORD, + cbBufferLength: ULONG, + pBuffer: ptr BYTE, + pcbRead: ptr ULONG, + ): HRESULT {.stdcall.} Free*: proc(self: ptr ITypeMarshal, pvType: PVOID): HRESULT {.stdcall.} + IContinue* {.pure.} = object lpVtbl*: ptr IContinueVtbl + IContinueVtbl* {.pure, inheritable.} = object of IUnknownVtbl FContinue*: proc(self: ptr IContinue): HRESULT {.stdcall.} + IDropSourceNotify* {.pure.} = object lpVtbl*: ptr IDropSourceNotifyVtbl + IDropSourceNotifyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - DragEnterTarget*: proc(self: ptr IDropSourceNotify, hwndTarget: HWND): HRESULT {.stdcall.} + DragEnterTarget*: + proc(self: ptr IDropSourceNotify, hwndTarget: HWND): HRESULT {.stdcall.} DragLeaveTarget*: proc(self: ptr IDropSourceNotify): HRESULT {.stdcall.} + IXMLDOMImplementation* {.pure.} = object lpVtbl*: ptr IXMLDOMImplementationVtbl + IXMLDOMImplementationVtbl* {.pure, inheritable.} = object of IDispatchVtbl - hasFeature*: proc(self: ptr IXMLDOMImplementation, feature: BSTR, version: BSTR, hasFeature: ptr VARIANT_BOOL): HRESULT {.stdcall.} + hasFeature*: proc( + self: ptr IXMLDOMImplementation, + feature: BSTR, + version: BSTR, + hasFeature: ptr VARIANT_BOOL, + ): HRESULT {.stdcall.} + IXMLDOMNodeList* {.pure.} = object lpVtbl*: ptr IXMLDOMNodeListVtbl + IXMLDOMNodeListVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_item*: proc(self: ptr IXMLDOMNodeList, index: LONG, listItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_length*: proc(self: ptr IXMLDOMNodeList, listLength: ptr LONG): HRESULT {.stdcall.} - nextNode*: proc(self: ptr IXMLDOMNodeList, nextItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} + get_item*: proc( + self: ptr IXMLDOMNodeList, index: LONG, listItem: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IXMLDOMNodeList, listLength: ptr LONG): HRESULT {.stdcall.} + nextNode*: proc(self: ptr IXMLDOMNodeList, nextItem: ptr ptr IXMLDOMNode): HRESULT {. + stdcall + .} reset*: proc(self: ptr IXMLDOMNodeList): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IXMLDOMNodeList, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IXMLDOMNodeList, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} + IXMLDOMNode* {.pure.} = object lpVtbl*: ptr IXMLDOMNodeVtbl + IXMLDOMNodeVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_nodeName*: proc(self: ptr IXMLDOMNode, name: ptr BSTR): HRESULT {.stdcall.} get_nodeValue*: proc(self: ptr IXMLDOMNode, value: ptr VARIANT): HRESULT {.stdcall.} put_nodeValue*: proc(self: ptr IXMLDOMNode, value: VARIANT): HRESULT {.stdcall.} - get_nodeType*: proc(self: ptr IXMLDOMNode, `type`: ptr DOMNodeType): HRESULT {.stdcall.} - get_parentNode*: proc(self: ptr IXMLDOMNode, parent: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_childNodes*: proc(self: ptr IXMLDOMNode, childList: ptr ptr IXMLDOMNodeList): HRESULT {.stdcall.} - get_firstChild*: proc(self: ptr IXMLDOMNode, firstChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_lastChild*: proc(self: ptr IXMLDOMNode, lastChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_previousSibling*: proc(self: ptr IXMLDOMNode, previousSibling: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_nextSibling*: proc(self: ptr IXMLDOMNode, nextSibling: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_attributes*: proc(self: ptr IXMLDOMNode, attributeMap: ptr ptr IXMLDOMNamedNodeMap): HRESULT {.stdcall.} - insertBefore*: proc(self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, refChild: VARIANT, outNewChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - replaceChild*: proc(self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, oldChild: ptr IXMLDOMNode, outOldChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - removeChild*: proc(self: ptr IXMLDOMNode, childNode: ptr IXMLDOMNode, oldChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - appendChild*: proc(self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, outNewChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - hasChildNodes*: proc(self: ptr IXMLDOMNode, hasChild: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_ownerDocument*: proc(self: ptr IXMLDOMNode, DOMDocument: ptr ptr IXMLDOMDocument): HRESULT {.stdcall.} - cloneNode*: proc(self: ptr IXMLDOMNode, deep: VARIANT_BOOL, cloneRoot: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_nodeTypeString*: proc(self: ptr IXMLDOMNode, nodeType: ptr BSTR): HRESULT {.stdcall.} + get_nodeType*: + proc(self: ptr IXMLDOMNode, `type`: ptr DOMNodeType): HRESULT {.stdcall.} + get_parentNode*: + proc(self: ptr IXMLDOMNode, parent: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} + get_childNodes*: proc( + self: ptr IXMLDOMNode, childList: ptr ptr IXMLDOMNodeList + ): HRESULT {.stdcall.} + get_firstChild*: + proc(self: ptr IXMLDOMNode, firstChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} + get_lastChild*: + proc(self: ptr IXMLDOMNode, lastChild: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} + get_previousSibling*: proc( + self: ptr IXMLDOMNode, previousSibling: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_nextSibling*: + proc(self: ptr IXMLDOMNode, nextSibling: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} + get_attributes*: proc( + self: ptr IXMLDOMNode, attributeMap: ptr ptr IXMLDOMNamedNodeMap + ): HRESULT {.stdcall.} + insertBefore*: proc( + self: ptr IXMLDOMNode, + newChild: ptr IXMLDOMNode, + refChild: VARIANT, + outNewChild: ptr ptr IXMLDOMNode, + ): HRESULT {.stdcall.} + replaceChild*: proc( + self: ptr IXMLDOMNode, + newChild: ptr IXMLDOMNode, + oldChild: ptr IXMLDOMNode, + outOldChild: ptr ptr IXMLDOMNode, + ): HRESULT {.stdcall.} + removeChild*: proc( + self: ptr IXMLDOMNode, childNode: ptr IXMLDOMNode, oldChild: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + appendChild*: proc( + self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, outNewChild: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + hasChildNodes*: + proc(self: ptr IXMLDOMNode, hasChild: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ownerDocument*: proc( + self: ptr IXMLDOMNode, DOMDocument: ptr ptr IXMLDOMDocument + ): HRESULT {.stdcall.} + cloneNode*: proc( + self: ptr IXMLDOMNode, deep: VARIANT_BOOL, cloneRoot: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_nodeTypeString*: + proc(self: ptr IXMLDOMNode, nodeType: ptr BSTR): HRESULT {.stdcall.} get_text*: proc(self: ptr IXMLDOMNode, text: ptr BSTR): HRESULT {.stdcall.} put_text*: proc(self: ptr IXMLDOMNode, text: BSTR): HRESULT {.stdcall.} - get_specified*: proc(self: ptr IXMLDOMNode, isSpecified: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_definition*: proc(self: ptr IXMLDOMNode, definitionNode: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_nodeTypedValue*: proc(self: ptr IXMLDOMNode, typedValue: ptr VARIANT): HRESULT {.stdcall.} - put_nodeTypedValue*: proc(self: ptr IXMLDOMNode, typedValue: VARIANT): HRESULT {.stdcall.} - get_dataType*: proc(self: ptr IXMLDOMNode, dataTypeName: ptr VARIANT): HRESULT {.stdcall.} + get_specified*: + proc(self: ptr IXMLDOMNode, isSpecified: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_definition*: proc( + self: ptr IXMLDOMNode, definitionNode: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_nodeTypedValue*: + proc(self: ptr IXMLDOMNode, typedValue: ptr VARIANT): HRESULT {.stdcall.} + put_nodeTypedValue*: + proc(self: ptr IXMLDOMNode, typedValue: VARIANT): HRESULT {.stdcall.} + get_dataType*: + proc(self: ptr IXMLDOMNode, dataTypeName: ptr VARIANT): HRESULT {.stdcall.} put_dataType*: proc(self: ptr IXMLDOMNode, dataTypeName: BSTR): HRESULT {.stdcall.} get_xml*: proc(self: ptr IXMLDOMNode, xmlString: ptr BSTR): HRESULT {.stdcall.} - transformNode*: proc(self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, xmlString: ptr BSTR): HRESULT {.stdcall.} - selectNodes*: proc(self: ptr IXMLDOMNode, queryString: BSTR, resultList: ptr ptr IXMLDOMNodeList): HRESULT {.stdcall.} - selectSingleNode*: proc(self: ptr IXMLDOMNode, queryString: BSTR, resultNode: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_parsed*: proc(self: ptr IXMLDOMNode, isParsed: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_namespaceURI*: proc(self: ptr IXMLDOMNode, namespaceURI: ptr BSTR): HRESULT {.stdcall.} - get_prefix*: proc(self: ptr IXMLDOMNode, prefixString: ptr BSTR): HRESULT {.stdcall.} - get_baseName*: proc(self: ptr IXMLDOMNode, nameString: ptr BSTR): HRESULT {.stdcall.} - transformNodeToObject*: proc(self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, outputObject: VARIANT): HRESULT {.stdcall.} + transformNode*: proc( + self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, xmlString: ptr BSTR + ): HRESULT {.stdcall.} + selectNodes*: proc( + self: ptr IXMLDOMNode, queryString: BSTR, resultList: ptr ptr IXMLDOMNodeList + ): HRESULT {.stdcall.} + selectSingleNode*: proc( + self: ptr IXMLDOMNode, queryString: BSTR, resultNode: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_parsed*: + proc(self: ptr IXMLDOMNode, isParsed: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_namespaceURI*: + proc(self: ptr IXMLDOMNode, namespaceURI: ptr BSTR): HRESULT {.stdcall.} + get_prefix*: + proc(self: ptr IXMLDOMNode, prefixString: ptr BSTR): HRESULT {.stdcall.} + get_baseName*: + proc(self: ptr IXMLDOMNode, nameString: ptr BSTR): HRESULT {.stdcall.} + transformNodeToObject*: proc( + self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, outputObject: VARIANT + ): HRESULT {.stdcall.} + IXMLDOMDocumentType* {.pure.} = object lpVtbl*: ptr IXMLDOMDocumentTypeVtbl + IXMLDOMDocumentTypeVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - get_name*: proc(self: ptr IXMLDOMDocumentType, rootName: ptr BSTR): HRESULT {.stdcall.} - get_entities*: proc(self: ptr IXMLDOMDocumentType, entityMap: ptr ptr IXMLDOMNamedNodeMap): HRESULT {.stdcall.} - get_notations*: proc(self: ptr IXMLDOMDocumentType, notationMap: ptr ptr IXMLDOMNamedNodeMap): HRESULT {.stdcall.} + get_name*: + proc(self: ptr IXMLDOMDocumentType, rootName: ptr BSTR): HRESULT {.stdcall.} + get_entities*: proc( + self: ptr IXMLDOMDocumentType, entityMap: ptr ptr IXMLDOMNamedNodeMap + ): HRESULT {.stdcall.} + get_notations*: proc( + self: ptr IXMLDOMDocumentType, notationMap: ptr ptr IXMLDOMNamedNodeMap + ): HRESULT {.stdcall.} + IXMLDOMAttribute* {.pure.} = object lpVtbl*: ptr IXMLDOMAttributeVtbl + IXMLDOMAttributeVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - get_name*: proc(self: ptr IXMLDOMAttribute, attributeName: ptr BSTR): HRESULT {.stdcall.} - get_value*: proc(self: ptr IXMLDOMAttribute, attributeValue: ptr VARIANT): HRESULT {.stdcall.} - put_value*: proc(self: ptr IXMLDOMAttribute, attributeValue: VARIANT): HRESULT {.stdcall.} + get_name*: + proc(self: ptr IXMLDOMAttribute, attributeName: ptr BSTR): HRESULT {.stdcall.} + get_value*: + proc(self: ptr IXMLDOMAttribute, attributeValue: ptr VARIANT): HRESULT {.stdcall.} + put_value*: + proc(self: ptr IXMLDOMAttribute, attributeValue: VARIANT): HRESULT {.stdcall.} + IXMLDOMElement* {.pure.} = object lpVtbl*: ptr IXMLDOMElementVtbl + IXMLDOMElementVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl get_tagName*: proc(self: ptr IXMLDOMElement, tagName: ptr BSTR): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IXMLDOMElement, name: BSTR, value: ptr VARIANT): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IXMLDOMElement, name: BSTR, value: VARIANT): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IXMLDOMElement, name: BSTR, value: ptr VARIANT + ): HRESULT {.stdcall.} + setAttribute*: + proc(self: ptr IXMLDOMElement, name: BSTR, value: VARIANT): HRESULT {.stdcall.} removeAttribute*: proc(self: ptr IXMLDOMElement, name: BSTR): HRESULT {.stdcall.} - getAttributeNode*: proc(self: ptr IXMLDOMElement, name: BSTR, attributeNode: ptr ptr IXMLDOMAttribute): HRESULT {.stdcall.} - setAttributeNode*: proc(self: ptr IXMLDOMElement, DOMAttribute: ptr IXMLDOMAttribute, attributeNode: ptr ptr IXMLDOMAttribute): HRESULT {.stdcall.} - removeAttributeNode*: proc(self: ptr IXMLDOMElement, DOMAttribute: ptr IXMLDOMAttribute, attributeNode: ptr ptr IXMLDOMAttribute): HRESULT {.stdcall.} - getElementsByTagName*: proc(self: ptr IXMLDOMElement, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList): HRESULT {.stdcall.} + getAttributeNode*: proc( + self: ptr IXMLDOMElement, name: BSTR, attributeNode: ptr ptr IXMLDOMAttribute + ): HRESULT {.stdcall.} + setAttributeNode*: proc( + self: ptr IXMLDOMElement, + DOMAttribute: ptr IXMLDOMAttribute, + attributeNode: ptr ptr IXMLDOMAttribute, + ): HRESULT {.stdcall.} + removeAttributeNode*: proc( + self: ptr IXMLDOMElement, + DOMAttribute: ptr IXMLDOMAttribute, + attributeNode: ptr ptr IXMLDOMAttribute, + ): HRESULT {.stdcall.} + getElementsByTagName*: proc( + self: ptr IXMLDOMElement, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList + ): HRESULT {.stdcall.} normalize*: proc(self: ptr IXMLDOMElement): HRESULT {.stdcall.} + IXMLDOMDocumentFragment* {.pure.} = object lpVtbl*: ptr IXMLDOMDocumentFragmentVtbl + IXMLDOMDocumentFragmentVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl IXMLDOMCharacterData* {.pure.} = object lpVtbl*: ptr IXMLDOMCharacterDataVtbl + IXMLDOMCharacterDataVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl get_data*: proc(self: ptr IXMLDOMCharacterData, data: ptr BSTR): HRESULT {.stdcall.} put_data*: proc(self: ptr IXMLDOMCharacterData, data: BSTR): HRESULT {.stdcall.} - get_length*: proc(self: ptr IXMLDOMCharacterData, dataLength: ptr LONG): HRESULT {.stdcall.} - substringData*: proc(self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: ptr BSTR): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IXMLDOMCharacterData, dataLength: ptr LONG): HRESULT {.stdcall.} + substringData*: proc( + self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: ptr BSTR + ): HRESULT {.stdcall.} appendData*: proc(self: ptr IXMLDOMCharacterData, data: BSTR): HRESULT {.stdcall.} - insertData*: proc(self: ptr IXMLDOMCharacterData, offset: LONG, data: BSTR): HRESULT {.stdcall.} - deleteData*: proc(self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG): HRESULT {.stdcall.} - replaceData*: proc(self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: BSTR): HRESULT {.stdcall.} + insertData*: proc(self: ptr IXMLDOMCharacterData, offset: LONG, data: BSTR): HRESULT {. + stdcall + .} + deleteData*: proc( + self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG + ): HRESULT {.stdcall.} + replaceData*: proc( + self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: BSTR + ): HRESULT {.stdcall.} + IXMLDOMText* {.pure.} = object lpVtbl*: ptr IXMLDOMTextVtbl + IXMLDOMTextVtbl* {.pure, inheritable.} = object of IXMLDOMCharacterDataVtbl - splitText*: proc(self: ptr IXMLDOMText, offset: LONG, rightHandTextNode: ptr ptr IXMLDOMText): HRESULT {.stdcall.} + splitText*: proc( + self: ptr IXMLDOMText, offset: LONG, rightHandTextNode: ptr ptr IXMLDOMText + ): HRESULT {.stdcall.} + IXMLDOMComment* {.pure.} = object lpVtbl*: ptr IXMLDOMCommentVtbl + IXMLDOMCommentVtbl* {.pure, inheritable.} = object of IXMLDOMCharacterDataVtbl IXMLDOMCDATASection* {.pure.} = object lpVtbl*: ptr IXMLDOMCDATASectionVtbl + IXMLDOMCDATASectionVtbl* {.pure, inheritable.} = object of IXMLDOMTextVtbl IXMLDOMProcessingInstruction* {.pure.} = object lpVtbl*: ptr IXMLDOMProcessingInstructionVtbl + IXMLDOMProcessingInstructionVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - get_target*: proc(self: ptr IXMLDOMProcessingInstruction, name: ptr BSTR): HRESULT {.stdcall.} - get_data*: proc(self: ptr IXMLDOMProcessingInstruction, value: ptr BSTR): HRESULT {.stdcall.} - put_data*: proc(self: ptr IXMLDOMProcessingInstruction, value: BSTR): HRESULT {.stdcall.} + get_target*: + proc(self: ptr IXMLDOMProcessingInstruction, name: ptr BSTR): HRESULT {.stdcall.} + get_data*: + proc(self: ptr IXMLDOMProcessingInstruction, value: ptr BSTR): HRESULT {.stdcall.} + put_data*: + proc(self: ptr IXMLDOMProcessingInstruction, value: BSTR): HRESULT {.stdcall.} + IXMLDOMEntityReference* {.pure.} = object lpVtbl*: ptr IXMLDOMEntityReferenceVtbl + IXMLDOMEntityReferenceVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl IXMLDOMParseError* {.pure.} = object lpVtbl*: ptr IXMLDOMParseErrorVtbl + IXMLDOMParseErrorVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_errorCode*: proc(self: ptr IXMLDOMParseError, errorCode: ptr LONG): HRESULT {.stdcall.} - get_url*: proc(self: ptr IXMLDOMParseError, urlString: ptr BSTR): HRESULT {.stdcall.} - get_reason*: proc(self: ptr IXMLDOMParseError, reasonString: ptr BSTR): HRESULT {.stdcall.} - get_srcText*: proc(self: ptr IXMLDOMParseError, sourceString: ptr BSTR): HRESULT {.stdcall.} - get_line*: proc(self: ptr IXMLDOMParseError, lineNumber: ptr LONG): HRESULT {.stdcall.} - get_linepos*: proc(self: ptr IXMLDOMParseError, linePosition: ptr LONG): HRESULT {.stdcall.} - get_filepos*: proc(self: ptr IXMLDOMParseError, filePosition: ptr LONG): HRESULT {.stdcall.} + get_errorCode*: + proc(self: ptr IXMLDOMParseError, errorCode: ptr LONG): HRESULT {.stdcall.} + get_url*: + proc(self: ptr IXMLDOMParseError, urlString: ptr BSTR): HRESULT {.stdcall.} + get_reason*: + proc(self: ptr IXMLDOMParseError, reasonString: ptr BSTR): HRESULT {.stdcall.} + get_srcText*: + proc(self: ptr IXMLDOMParseError, sourceString: ptr BSTR): HRESULT {.stdcall.} + get_line*: + proc(self: ptr IXMLDOMParseError, lineNumber: ptr LONG): HRESULT {.stdcall.} + get_linepos*: + proc(self: ptr IXMLDOMParseError, linePosition: ptr LONG): HRESULT {.stdcall.} + get_filepos*: + proc(self: ptr IXMLDOMParseError, filePosition: ptr LONG): HRESULT {.stdcall.} + IXMLDOMDocument* {.pure.} = object lpVtbl*: ptr IXMLDOMDocumentVtbl + IXMLDOMDocumentVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - get_doctype*: proc(self: ptr IXMLDOMDocument, documentType: ptr ptr IXMLDOMDocumentType): HRESULT {.stdcall.} - get_implementation*: proc(self: ptr IXMLDOMDocument, impl: ptr ptr IXMLDOMImplementation): HRESULT {.stdcall.} - get_documentElement*: proc(self: ptr IXMLDOMDocument, DOMElement: ptr ptr IXMLDOMElement): HRESULT {.stdcall.} - putref_documentElement*: proc(self: ptr IXMLDOMDocument, DOMElement: ptr IXMLDOMElement): HRESULT {.stdcall.} - createElement*: proc(self: ptr IXMLDOMDocument, tagName: BSTR, element: ptr ptr IXMLDOMElement): HRESULT {.stdcall.} - createDocumentFragment*: proc(self: ptr IXMLDOMDocument, docFrag: ptr ptr IXMLDOMDocumentFragment): HRESULT {.stdcall.} - createTextNode*: proc(self: ptr IXMLDOMDocument, data: BSTR, text: ptr ptr IXMLDOMText): HRESULT {.stdcall.} - createComment*: proc(self: ptr IXMLDOMDocument, data: BSTR, comment: ptr ptr IXMLDOMComment): HRESULT {.stdcall.} - createCDATASection*: proc(self: ptr IXMLDOMDocument, data: BSTR, cdata: ptr ptr IXMLDOMCDATASection): HRESULT {.stdcall.} - createProcessingInstruction*: proc(self: ptr IXMLDOMDocument, target: BSTR, data: BSTR, pi: ptr ptr IXMLDOMProcessingInstruction): HRESULT {.stdcall.} - createAttribute*: proc(self: ptr IXMLDOMDocument, name: BSTR, attribute: ptr ptr IXMLDOMAttribute): HRESULT {.stdcall.} - createEntityReference*: proc(self: ptr IXMLDOMDocument, name: BSTR, entityRef: ptr ptr IXMLDOMEntityReference): HRESULT {.stdcall.} - getElementsByTagName*: proc(self: ptr IXMLDOMDocument, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList): HRESULT {.stdcall.} - createNode*: proc(self: ptr IXMLDOMDocument, Type: VARIANT, name: BSTR, namespaceURI: BSTR, node: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - nodeFromID*: proc(self: ptr IXMLDOMDocument, idString: BSTR, node: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - load*: proc(self: ptr IXMLDOMDocument, xmlSource: VARIANT, isSuccessful: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_readyState*: proc(self: ptr IXMLDOMDocument, value: ptr LONG): HRESULT {.stdcall.} - get_parseError*: proc(self: ptr IXMLDOMDocument, errorObj: ptr ptr IXMLDOMParseError): HRESULT {.stdcall.} + get_doctype*: proc( + self: ptr IXMLDOMDocument, documentType: ptr ptr IXMLDOMDocumentType + ): HRESULT {.stdcall.} + get_implementation*: proc( + self: ptr IXMLDOMDocument, impl: ptr ptr IXMLDOMImplementation + ): HRESULT {.stdcall.} + get_documentElement*: proc( + self: ptr IXMLDOMDocument, DOMElement: ptr ptr IXMLDOMElement + ): HRESULT {.stdcall.} + putref_documentElement*: proc( + self: ptr IXMLDOMDocument, DOMElement: ptr IXMLDOMElement + ): HRESULT {.stdcall.} + createElement*: proc( + self: ptr IXMLDOMDocument, tagName: BSTR, element: ptr ptr IXMLDOMElement + ): HRESULT {.stdcall.} + createDocumentFragment*: proc( + self: ptr IXMLDOMDocument, docFrag: ptr ptr IXMLDOMDocumentFragment + ): HRESULT {.stdcall.} + createTextNode*: proc( + self: ptr IXMLDOMDocument, data: BSTR, text: ptr ptr IXMLDOMText + ): HRESULT {.stdcall.} + createComment*: proc( + self: ptr IXMLDOMDocument, data: BSTR, comment: ptr ptr IXMLDOMComment + ): HRESULT {.stdcall.} + createCDATASection*: proc( + self: ptr IXMLDOMDocument, data: BSTR, cdata: ptr ptr IXMLDOMCDATASection + ): HRESULT {.stdcall.} + createProcessingInstruction*: proc( + self: ptr IXMLDOMDocument, + target: BSTR, + data: BSTR, + pi: ptr ptr IXMLDOMProcessingInstruction, + ): HRESULT {.stdcall.} + createAttribute*: proc( + self: ptr IXMLDOMDocument, name: BSTR, attribute: ptr ptr IXMLDOMAttribute + ): HRESULT {.stdcall.} + createEntityReference*: proc( + self: ptr IXMLDOMDocument, name: BSTR, entityRef: ptr ptr IXMLDOMEntityReference + ): HRESULT {.stdcall.} + getElementsByTagName*: proc( + self: ptr IXMLDOMDocument, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList + ): HRESULT {.stdcall.} + createNode*: proc( + self: ptr IXMLDOMDocument, + Type: VARIANT, + name: BSTR, + namespaceURI: BSTR, + node: ptr ptr IXMLDOMNode, + ): HRESULT {.stdcall.} + nodeFromID*: proc( + self: ptr IXMLDOMDocument, idString: BSTR, node: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + load*: proc( + self: ptr IXMLDOMDocument, xmlSource: VARIANT, isSuccessful: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + get_readyState*: + proc(self: ptr IXMLDOMDocument, value: ptr LONG): HRESULT {.stdcall.} + get_parseError*: proc( + self: ptr IXMLDOMDocument, errorObj: ptr ptr IXMLDOMParseError + ): HRESULT {.stdcall.} get_url*: proc(self: ptr IXMLDOMDocument, urlString: ptr BSTR): HRESULT {.stdcall.} - get_async*: proc(self: ptr IXMLDOMDocument, isAsync: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_async*: proc(self: ptr IXMLDOMDocument, isAsync: VARIANT_BOOL): HRESULT {.stdcall.} + get_async*: + proc(self: ptr IXMLDOMDocument, isAsync: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_async*: + proc(self: ptr IXMLDOMDocument, isAsync: VARIANT_BOOL): HRESULT {.stdcall.} abort*: proc(self: ptr IXMLDOMDocument): HRESULT {.stdcall.} - loadXML*: proc(self: ptr IXMLDOMDocument, bstrXML: BSTR, isSuccessful: ptr VARIANT_BOOL): HRESULT {.stdcall.} + loadXML*: proc( + self: ptr IXMLDOMDocument, bstrXML: BSTR, isSuccessful: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} save*: proc(self: ptr IXMLDOMDocument, destination: VARIANT): HRESULT {.stdcall.} - get_validateOnParse*: proc(self: ptr IXMLDOMDocument, isValidating: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_validateOnParse*: proc(self: ptr IXMLDOMDocument, isValidating: VARIANT_BOOL): HRESULT {.stdcall.} - get_resolveExternals*: proc(self: ptr IXMLDOMDocument, isResolving: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_resolveExternals*: proc(self: ptr IXMLDOMDocument, isResolving: VARIANT_BOOL): HRESULT {.stdcall.} - get_preserveWhiteSpace*: proc(self: ptr IXMLDOMDocument, isPreserving: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_preserveWhiteSpace*: proc(self: ptr IXMLDOMDocument, isPreserving: VARIANT_BOOL): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IXMLDOMDocument, readystatechangeSink: VARIANT): HRESULT {.stdcall.} - put_ondataavailable*: proc(self: ptr IXMLDOMDocument, ondataavailableSink: VARIANT): HRESULT {.stdcall.} - put_ontransformnode*: proc(self: ptr IXMLDOMDocument, ontransformnodeSink: VARIANT): HRESULT {.stdcall.} + get_validateOnParse*: proc( + self: ptr IXMLDOMDocument, isValidating: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + put_validateOnParse*: + proc(self: ptr IXMLDOMDocument, isValidating: VARIANT_BOOL): HRESULT {.stdcall.} + get_resolveExternals*: proc( + self: ptr IXMLDOMDocument, isResolving: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + put_resolveExternals*: + proc(self: ptr IXMLDOMDocument, isResolving: VARIANT_BOOL): HRESULT {.stdcall.} + get_preserveWhiteSpace*: proc( + self: ptr IXMLDOMDocument, isPreserving: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + put_preserveWhiteSpace*: + proc(self: ptr IXMLDOMDocument, isPreserving: VARIANT_BOOL): HRESULT {.stdcall.} + put_onreadystatechange*: proc( + self: ptr IXMLDOMDocument, readystatechangeSink: VARIANT + ): HRESULT {.stdcall.} + put_ondataavailable*: + proc(self: ptr IXMLDOMDocument, ondataavailableSink: VARIANT): HRESULT {.stdcall.} + put_ontransformnode*: + proc(self: ptr IXMLDOMDocument, ontransformnodeSink: VARIANT): HRESULT {.stdcall.} + IXMLDOMNamedNodeMap* {.pure.} = object lpVtbl*: ptr IXMLDOMNamedNodeMapVtbl + IXMLDOMNamedNodeMapVtbl* {.pure, inheritable.} = object of IDispatchVtbl - getNamedItem*: proc(self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - setNamedItem*: proc(self: ptr IXMLDOMNamedNodeMap, newItem: ptr IXMLDOMNode, nameItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - removeNamedItem*: proc(self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_item*: proc(self: ptr IXMLDOMNamedNodeMap, index: LONG, listItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - get_length*: proc(self: ptr IXMLDOMNamedNodeMap, listLength: ptr LONG): HRESULT {.stdcall.} - getQualifiedItem*: proc(self: ptr IXMLDOMNamedNodeMap, baseName: BSTR, namespaceURI: BSTR, qualifiedItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - removeQualifiedItem*: proc(self: ptr IXMLDOMNamedNodeMap, baseName: BSTR, namespaceURI: BSTR, qualifiedItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} - nextNode*: proc(self: ptr IXMLDOMNamedNodeMap, nextItem: ptr ptr IXMLDOMNode): HRESULT {.stdcall.} + getNamedItem*: proc( + self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + setNamedItem*: proc( + self: ptr IXMLDOMNamedNodeMap, + newItem: ptr IXMLDOMNode, + nameItem: ptr ptr IXMLDOMNode, + ): HRESULT {.stdcall.} + removeNamedItem*: proc( + self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_item*: proc( + self: ptr IXMLDOMNamedNodeMap, index: LONG, listItem: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} + get_length*: + proc(self: ptr IXMLDOMNamedNodeMap, listLength: ptr LONG): HRESULT {.stdcall.} + getQualifiedItem*: proc( + self: ptr IXMLDOMNamedNodeMap, + baseName: BSTR, + namespaceURI: BSTR, + qualifiedItem: ptr ptr IXMLDOMNode, + ): HRESULT {.stdcall.} + removeQualifiedItem*: proc( + self: ptr IXMLDOMNamedNodeMap, + baseName: BSTR, + namespaceURI: BSTR, + qualifiedItem: ptr ptr IXMLDOMNode, + ): HRESULT {.stdcall.} + nextNode*: proc( + self: ptr IXMLDOMNamedNodeMap, nextItem: ptr ptr IXMLDOMNode + ): HRESULT {.stdcall.} reset*: proc(self: ptr IXMLDOMNamedNodeMap): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IXMLDOMNamedNodeMap, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} + get_newEnum*: + proc(self: ptr IXMLDOMNamedNodeMap, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} + IXMLDOMNotation* {.pure.} = object lpVtbl*: ptr IXMLDOMNotationVtbl + IXMLDOMNotationVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - get_publicId*: proc(self: ptr IXMLDOMNotation, publicID: ptr VARIANT): HRESULT {.stdcall.} - get_systemId*: proc(self: ptr IXMLDOMNotation, systemID: ptr VARIANT): HRESULT {.stdcall.} + get_publicId*: + proc(self: ptr IXMLDOMNotation, publicID: ptr VARIANT): HRESULT {.stdcall.} + get_systemId*: + proc(self: ptr IXMLDOMNotation, systemID: ptr VARIANT): HRESULT {.stdcall.} + IXMLDOMEntity* {.pure.} = object lpVtbl*: ptr IXMLDOMEntityVtbl + IXMLDOMEntityVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - get_publicId*: proc(self: ptr IXMLDOMEntity, publicID: ptr VARIANT): HRESULT {.stdcall.} - get_systemId*: proc(self: ptr IXMLDOMEntity, systemID: ptr VARIANT): HRESULT {.stdcall.} - get_notationName*: proc(self: ptr IXMLDOMEntity, name: ptr BSTR): HRESULT {.stdcall.} + get_publicId*: + proc(self: ptr IXMLDOMEntity, publicID: ptr VARIANT): HRESULT {.stdcall.} + get_systemId*: + proc(self: ptr IXMLDOMEntity, systemID: ptr VARIANT): HRESULT {.stdcall.} + get_notationName*: + proc(self: ptr IXMLDOMEntity, name: ptr BSTR): HRESULT {.stdcall.} + IXTLRuntime* {.pure.} = object lpVtbl*: ptr IXTLRuntimeVtbl + IXTLRuntimeVtbl* {.pure, inheritable.} = object of IXMLDOMNodeVtbl - uniqueID*: proc(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pID: ptr LONG): HRESULT {.stdcall.} - depth*: proc(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pDepth: ptr LONG): HRESULT {.stdcall.} - childNumber*: proc(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG): HRESULT {.stdcall.} - ancestorChildNumber*: proc(self: ptr IXTLRuntime, bstrNodeName: BSTR, pNode: ptr IXMLDOMNode, pNumber: ptr LONG): HRESULT {.stdcall.} - absoluteChildNumber*: proc(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG): HRESULT {.stdcall.} - formatIndex*: proc(self: ptr IXTLRuntime, lIndex: LONG, bstrFormat: BSTR, pbstrFormattedString: ptr BSTR): HRESULT {.stdcall.} - formatNumber*: proc(self: ptr IXTLRuntime, dblNumber: float64, bstrFormat: BSTR, pbstrFormattedString: ptr BSTR): HRESULT {.stdcall.} - formatDate*: proc(self: ptr IXTLRuntime, varDate: VARIANT, bstrFormat: BSTR, varDestLocale: VARIANT, pbstrFormattedString: ptr BSTR): HRESULT {.stdcall.} - formatTime*: proc(self: ptr IXTLRuntime, varTime: VARIANT, bstrFormat: BSTR, varDestLocale: VARIANT, pbstrFormattedString: ptr BSTR): HRESULT {.stdcall.} + uniqueID*: proc( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pID: ptr LONG + ): HRESULT {.stdcall.} + depth*: proc( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pDepth: ptr LONG + ): HRESULT {.stdcall.} + childNumber*: proc( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG + ): HRESULT {.stdcall.} + ancestorChildNumber*: proc( + self: ptr IXTLRuntime, + bstrNodeName: BSTR, + pNode: ptr IXMLDOMNode, + pNumber: ptr LONG, + ): HRESULT {.stdcall.} + absoluteChildNumber*: proc( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG + ): HRESULT {.stdcall.} + formatIndex*: proc( + self: ptr IXTLRuntime, + lIndex: LONG, + bstrFormat: BSTR, + pbstrFormattedString: ptr BSTR, + ): HRESULT {.stdcall.} + formatNumber*: proc( + self: ptr IXTLRuntime, + dblNumber: float64, + bstrFormat: BSTR, + pbstrFormattedString: ptr BSTR, + ): HRESULT {.stdcall.} + formatDate*: proc( + self: ptr IXTLRuntime, + varDate: VARIANT, + bstrFormat: BSTR, + varDestLocale: VARIANT, + pbstrFormattedString: ptr BSTR, + ): HRESULT {.stdcall.} + formatTime*: proc( + self: ptr IXTLRuntime, + varTime: VARIANT, + bstrFormat: BSTR, + varDestLocale: VARIANT, + pbstrFormattedString: ptr BSTR, + ): HRESULT {.stdcall.} + XMLDOMDocumentEvents* {.pure.} = object lpVtbl*: ptr XMLDOMDocumentEventsVtbl + XMLDOMDocumentEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IXMLHttpRequest* {.pure.} = object lpVtbl*: ptr IXMLHttpRequestVtbl + IXMLHttpRequestVtbl* {.pure, inheritable.} = object of IDispatchVtbl - open*: proc(self: ptr IXMLHttpRequest, bstrMethod: BSTR, bstrUrl: BSTR, varAsync: VARIANT, bstrUser: VARIANT, bstrPassword: VARIANT): HRESULT {.stdcall.} - setRequestHeader*: proc(self: ptr IXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} - getResponseHeader*: proc(self: ptr IXMLHttpRequest, bstrHeader: BSTR, pbstrValue: ptr BSTR): HRESULT {.stdcall.} - getAllResponseHeaders*: proc(self: ptr IXMLHttpRequest, pbstrHeaders: ptr BSTR): HRESULT {.stdcall.} + open*: proc( + self: ptr IXMLHttpRequest, + bstrMethod: BSTR, + bstrUrl: BSTR, + varAsync: VARIANT, + bstrUser: VARIANT, + bstrPassword: VARIANT, + ): HRESULT {.stdcall.} + setRequestHeader*: proc( + self: ptr IXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR + ): HRESULT {.stdcall.} + getResponseHeader*: proc( + self: ptr IXMLHttpRequest, bstrHeader: BSTR, pbstrValue: ptr BSTR + ): HRESULT {.stdcall.} + getAllResponseHeaders*: + proc(self: ptr IXMLHttpRequest, pbstrHeaders: ptr BSTR): HRESULT {.stdcall.} send*: proc(self: ptr IXMLHttpRequest, varBody: VARIANT): HRESULT {.stdcall.} abort*: proc(self: ptr IXMLHttpRequest): HRESULT {.stdcall.} - get_status*: proc(self: ptr IXMLHttpRequest, plStatus: ptr LONG): HRESULT {.stdcall.} - get_statusText*: proc(self: ptr IXMLHttpRequest, pbstrStatus: ptr BSTR): HRESULT {.stdcall.} - get_responseXML*: proc(self: ptr IXMLHttpRequest, ppBody: ptr ptr IDispatch): HRESULT {.stdcall.} - get_responseText*: proc(self: ptr IXMLHttpRequest, pbstrBody: ptr BSTR): HRESULT {.stdcall.} - get_responseBody*: proc(self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT): HRESULT {.stdcall.} - get_responseStream*: proc(self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT): HRESULT {.stdcall.} - get_readyState*: proc(self: ptr IXMLHttpRequest, plState: ptr LONG): HRESULT {.stdcall.} - put_onreadystatechange*: proc(self: ptr IXMLHttpRequest, pReadyStateSink: ptr IDispatch): HRESULT {.stdcall.} + get_status*: + proc(self: ptr IXMLHttpRequest, plStatus: ptr LONG): HRESULT {.stdcall.} + get_statusText*: + proc(self: ptr IXMLHttpRequest, pbstrStatus: ptr BSTR): HRESULT {.stdcall.} + get_responseXML*: + proc(self: ptr IXMLHttpRequest, ppBody: ptr ptr IDispatch): HRESULT {.stdcall.} + get_responseText*: + proc(self: ptr IXMLHttpRequest, pbstrBody: ptr BSTR): HRESULT {.stdcall.} + get_responseBody*: + proc(self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT): HRESULT {.stdcall.} + get_responseStream*: + proc(self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT): HRESULT {.stdcall.} + get_readyState*: + proc(self: ptr IXMLHttpRequest, plState: ptr LONG): HRESULT {.stdcall.} + put_onreadystatechange*: proc( + self: ptr IXMLHttpRequest, pReadyStateSink: ptr IDispatch + ): HRESULT {.stdcall.} + IXMLDSOControl* {.pure.} = object lpVtbl*: ptr IXMLDSOControlVtbl + IXMLDSOControlVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_XMLDocument*: proc(self: ptr IXMLDSOControl, ppDoc: ptr ptr IXMLDOMDocument): HRESULT {.stdcall.} - put_XMLDocument*: proc(self: ptr IXMLDSOControl, ppDoc: ptr IXMLDOMDocument): HRESULT {.stdcall.} - get_JavaDSOCompatible*: proc(self: ptr IXMLDSOControl, fJavaDSOCompatible: ptr WINBOOL): HRESULT {.stdcall.} - put_JavaDSOCompatible*: proc(self: ptr IXMLDSOControl, fJavaDSOCompatible: WINBOOL): HRESULT {.stdcall.} - get_readyState*: proc(self: ptr IXMLDSOControl, state: ptr LONG): HRESULT {.stdcall.} + get_XMLDocument*: proc( + self: ptr IXMLDSOControl, ppDoc: ptr ptr IXMLDOMDocument + ): HRESULT {.stdcall.} + put_XMLDocument*: + proc(self: ptr IXMLDSOControl, ppDoc: ptr IXMLDOMDocument): HRESULT {.stdcall.} + get_JavaDSOCompatible*: proc( + self: ptr IXMLDSOControl, fJavaDSOCompatible: ptr WINBOOL + ): HRESULT {.stdcall.} + put_JavaDSOCompatible*: + proc(self: ptr IXMLDSOControl, fJavaDSOCompatible: WINBOOL): HRESULT {.stdcall.} + get_readyState*: + proc(self: ptr IXMLDSOControl, state: ptr LONG): HRESULT {.stdcall.} + IXMLElementCollection* {.pure.} = object lpVtbl*: ptr IXMLElementCollectionVtbl + IXMLElementCollectionVtbl* {.pure, inheritable.} = object of IDispatchVtbl put_length*: proc(self: ptr IXMLElementCollection, v: LONG): HRESULT {.stdcall.} get_length*: proc(self: ptr IXMLElementCollection, p: ptr LONG): HRESULT {.stdcall.} - get_newEnum*: proc(self: ptr IXMLElementCollection, ppUnk: ptr ptr IUnknown): HRESULT {.stdcall.} - item*: proc(self: ptr IXMLElementCollection, var1: VARIANT, var2: VARIANT, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_newEnum*: proc( + self: ptr IXMLElementCollection, ppUnk: ptr ptr IUnknown + ): HRESULT {.stdcall.} + item*: proc( + self: ptr IXMLElementCollection, + var1: VARIANT, + var2: VARIANT, + ppDisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + IXMLElement* {.pure.} = object lpVtbl*: ptr IXMLElementVtbl + IXMLElementVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_tagName*: proc(self: ptr IXMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_tagName*: proc(self: ptr IXMLElement, p: BSTR): HRESULT {.stdcall.} - get_parent*: proc(self: ptr IXMLElement, ppParent: ptr ptr IXMLElement): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: VARIANT): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IXMLElement, strPropertyName: BSTR): HRESULT {.stdcall.} - get_children*: proc(self: ptr IXMLElement, pp: ptr ptr IXMLElementCollection): HRESULT {.stdcall.} + get_parent*: + proc(self: ptr IXMLElement, ppParent: ptr ptr IXMLElement): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: VARIANT + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: ptr VARIANT + ): HRESULT {.stdcall.} + removeAttribute*: + proc(self: ptr IXMLElement, strPropertyName: BSTR): HRESULT {.stdcall.} + get_children*: proc( + self: ptr IXMLElement, pp: ptr ptr IXMLElementCollection + ): HRESULT {.stdcall.} get_type*: proc(self: ptr IXMLElement, plType: ptr LONG): HRESULT {.stdcall.} get_text*: proc(self: ptr IXMLElement, p: ptr BSTR): HRESULT {.stdcall.} put_text*: proc(self: ptr IXMLElement, p: BSTR): HRESULT {.stdcall.} - addChild*: proc(self: ptr IXMLElement, pChildElem: ptr IXMLElement, lIndex: LONG, lReserved: LONG): HRESULT {.stdcall.} - removeChild*: proc(self: ptr IXMLElement, pChildElem: ptr IXMLElement): HRESULT {.stdcall.} + addChild*: proc( + self: ptr IXMLElement, pChildElem: ptr IXMLElement, lIndex: LONG, lReserved: LONG + ): HRESULT {.stdcall.} + removeChild*: + proc(self: ptr IXMLElement, pChildElem: ptr IXMLElement): HRESULT {.stdcall.} + IXMLDocument* {.pure.} = object lpVtbl*: ptr IXMLDocumentVtbl + IXMLDocumentVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_root*: proc(self: ptr IXMLDocument, p: ptr ptr IXMLElement): HRESULT {.stdcall.} get_fileSize*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} - get_fileModifiedDate*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} + get_fileModifiedDate*: + proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} get_fileUpdatedDate*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} get_URL*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} put_URL*: proc(self: ptr IXMLDocument, p: BSTR): HRESULT {.stdcall.} @@ -6133,30 +9212,55 @@ get_version*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} get_doctype*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} get_dtdURL*: proc(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.stdcall.} - createElement*: proc(self: ptr IXMLDocument, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement): HRESULT {.stdcall.} + createElement*: proc( + self: ptr IXMLDocument, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement + ): HRESULT {.stdcall.} + IXMLElement2* {.pure.} = object lpVtbl*: ptr IXMLElement2Vtbl + IXMLElement2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl get_tagName*: proc(self: ptr IXMLElement2, p: ptr BSTR): HRESULT {.stdcall.} put_tagName*: proc(self: ptr IXMLElement2, p: BSTR): HRESULT {.stdcall.} - get_parent*: proc(self: ptr IXMLElement2, ppParent: ptr ptr IXMLElement2): HRESULT {.stdcall.} - setAttribute*: proc(self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: VARIANT): HRESULT {.stdcall.} - getAttribute*: proc(self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: ptr VARIANT): HRESULT {.stdcall.} - removeAttribute*: proc(self: ptr IXMLElement2, strPropertyName: BSTR): HRESULT {.stdcall.} - get_children*: proc(self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection): HRESULT {.stdcall.} + get_parent*: + proc(self: ptr IXMLElement2, ppParent: ptr ptr IXMLElement2): HRESULT {.stdcall.} + setAttribute*: proc( + self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: VARIANT + ): HRESULT {.stdcall.} + getAttribute*: proc( + self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: ptr VARIANT + ): HRESULT {.stdcall.} + removeAttribute*: + proc(self: ptr IXMLElement2, strPropertyName: BSTR): HRESULT {.stdcall.} + get_children*: proc( + self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection + ): HRESULT {.stdcall.} get_type*: proc(self: ptr IXMLElement2, plType: ptr LONG): HRESULT {.stdcall.} get_text*: proc(self: ptr IXMLElement2, p: ptr BSTR): HRESULT {.stdcall.} put_text*: proc(self: ptr IXMLElement2, p: BSTR): HRESULT {.stdcall.} - addChild*: proc(self: ptr IXMLElement2, pChildElem: ptr IXMLElement2, lIndex: LONG, lReserved: LONG): HRESULT {.stdcall.} - removeChild*: proc(self: ptr IXMLElement2, pChildElem: ptr IXMLElement2): HRESULT {.stdcall.} - get_attributes*: proc(self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection): HRESULT {.stdcall.} + addChild*: proc( + self: ptr IXMLElement2, + pChildElem: ptr IXMLElement2, + lIndex: LONG, + lReserved: LONG, + ): HRESULT {.stdcall.} + removeChild*: + proc(self: ptr IXMLElement2, pChildElem: ptr IXMLElement2): HRESULT {.stdcall.} + get_attributes*: proc( + self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection + ): HRESULT {.stdcall.} + IXMLDocument2* {.pure.} = object lpVtbl*: ptr IXMLDocument2Vtbl + IXMLDocument2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_root*: proc(self: ptr IXMLDocument2, p: ptr ptr IXMLElement2): HRESULT {.stdcall.} + get_root*: + proc(self: ptr IXMLDocument2, p: ptr ptr IXMLElement2): HRESULT {.stdcall.} get_fileSize*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_fileModifiedDate*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - get_fileUpdatedDate*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} + get_fileModifiedDate*: + proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} + get_fileUpdatedDate*: + proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_URL*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} put_URL*: proc(self: ptr IXMLDocument2, p: BSTR): HRESULT {.stdcall.} get_mimeType*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} @@ -6166,145 +9270,428 @@ get_version*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_doctype*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} get_dtdURL*: proc(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.stdcall.} - createElement*: proc(self: ptr IXMLDocument2, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement2): HRESULT {.stdcall.} + createElement*: proc( + self: ptr IXMLDocument2, + vType: VARIANT, + var1: VARIANT, + ppElem: ptr ptr IXMLElement2, + ): HRESULT {.stdcall.} get_async*: proc(self: ptr IXMLDocument2, pf: ptr VARIANT_BOOL): HRESULT {.stdcall.} put_async*: proc(self: ptr IXMLDocument2, f: VARIANT_BOOL): HRESULT {.stdcall.} + IXMLAttribute* {.pure.} = object lpVtbl*: ptr IXMLAttributeVtbl + IXMLAttributeVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_name*: proc(self: ptr IXMLAttribute, n: ptr BSTR): HRESULT {.stdcall.} get_value*: proc(self: ptr IXMLAttribute, v: ptr BSTR): HRESULT {.stdcall.} + IXMLError* {.pure.} = object lpVtbl*: ptr IXMLErrorVtbl + IXMLErrorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetErrorInfo*: proc(self: ptr IXMLError, pErrorReturn: ptr XML_ERROR): HRESULT {.stdcall.} + GetErrorInfo*: + proc(self: ptr IXMLError, pErrorReturn: ptr XML_ERROR): HRESULT {.stdcall.} + IUriContainer* {.pure.} = object lpVtbl*: ptr IUriContainerVtbl + IUriContainerVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetIUri*: proc(self: ptr IUriContainer, ppIUri: ptr ptr IUri): HRESULT {.stdcall.} + IUriBuilder* {.pure.} = object lpVtbl*: ptr IUriBuilderVtbl + IUriBuilderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateUriSimple*: proc(self: ptr IUriBuilder, dwAllowEncodingPropertyMask: DWORD, dwReserved: DWORD_PTR, ppIUri: ptr ptr IUri): HRESULT {.stdcall.} - CreateUri*: proc(self: ptr IUriBuilder, dwCreateFlags: DWORD, dwAllowEncodingPropertyMask: DWORD, dwReserved: DWORD_PTR, ppIUri: ptr ptr IUri): HRESULT {.stdcall.} - CreateUriWithFlags*: proc(self: ptr IUriBuilder, dwCreateFlags: DWORD, dwUriBuilderFlags: DWORD, dwAllowEncodingPropertyMask: DWORD, dwReserved: DWORD_PTR, ppIUri: ptr ptr IUri): HRESULT {.stdcall.} + CreateUriSimple*: proc( + self: ptr IUriBuilder, + dwAllowEncodingPropertyMask: DWORD, + dwReserved: DWORD_PTR, + ppIUri: ptr ptr IUri, + ): HRESULT {.stdcall.} + CreateUri*: proc( + self: ptr IUriBuilder, + dwCreateFlags: DWORD, + dwAllowEncodingPropertyMask: DWORD, + dwReserved: DWORD_PTR, + ppIUri: ptr ptr IUri, + ): HRESULT {.stdcall.} + CreateUriWithFlags*: proc( + self: ptr IUriBuilder, + dwCreateFlags: DWORD, + dwUriBuilderFlags: DWORD, + dwAllowEncodingPropertyMask: DWORD, + dwReserved: DWORD_PTR, + ppIUri: ptr ptr IUri, + ): HRESULT {.stdcall.} GetIUri*: proc(self: ptr IUriBuilder, ppIUri: ptr ptr IUri): HRESULT {.stdcall.} SetIUri*: proc(self: ptr IUriBuilder, pIUri: ptr IUri): HRESULT {.stdcall.} - GetFragment*: proc(self: ptr IUriBuilder, pcchFragment: ptr DWORD, ppwzFragment: ptr LPCWSTR): HRESULT {.stdcall.} - GetHost*: proc(self: ptr IUriBuilder, pcchHost: ptr DWORD, ppwzHost: ptr LPCWSTR): HRESULT {.stdcall.} - GetPassword*: proc(self: ptr IUriBuilder, pcchPassword: ptr DWORD, ppwzPassword: ptr LPCWSTR): HRESULT {.stdcall.} - GetPath*: proc(self: ptr IUriBuilder, pcchPath: ptr DWORD, ppwzPath: ptr LPCWSTR): HRESULT {.stdcall.} - GetPort*: proc(self: ptr IUriBuilder, pfHasPort: ptr WINBOOL, pdwPort: ptr DWORD): HRESULT {.stdcall.} - GetQuery*: proc(self: ptr IUriBuilder, pcchQuery: ptr DWORD, ppwzQuery: ptr LPCWSTR): HRESULT {.stdcall.} - GetSchemeName*: proc(self: ptr IUriBuilder, pcchSchemeName: ptr DWORD, ppwzSchemeName: ptr LPCWSTR): HRESULT {.stdcall.} - GetUserName*: proc(self: ptr IUriBuilder, pcchUserName: ptr DWORD, ppwzUserName: ptr LPCWSTR): HRESULT {.stdcall.} + GetFragment*: proc( + self: ptr IUriBuilder, pcchFragment: ptr DWORD, ppwzFragment: ptr LPCWSTR + ): HRESULT {.stdcall.} + GetHost*: proc( + self: ptr IUriBuilder, pcchHost: ptr DWORD, ppwzHost: ptr LPCWSTR + ): HRESULT {.stdcall.} + GetPassword*: proc( + self: ptr IUriBuilder, pcchPassword: ptr DWORD, ppwzPassword: ptr LPCWSTR + ): HRESULT {.stdcall.} + GetPath*: proc( + self: ptr IUriBuilder, pcchPath: ptr DWORD, ppwzPath: ptr LPCWSTR + ): HRESULT {.stdcall.} + GetPort*: proc( + self: ptr IUriBuilder, pfHasPort: ptr WINBOOL, pdwPort: ptr DWORD + ): HRESULT {.stdcall.} + GetQuery*: proc( + self: ptr IUriBuilder, pcchQuery: ptr DWORD, ppwzQuery: ptr LPCWSTR + ): HRESULT {.stdcall.} + GetSchemeName*: proc( + self: ptr IUriBuilder, pcchSchemeName: ptr DWORD, ppwzSchemeName: ptr LPCWSTR + ): HRESULT {.stdcall.} + GetUserName*: proc( + self: ptr IUriBuilder, pcchUserName: ptr DWORD, ppwzUserName: ptr LPCWSTR + ): HRESULT {.stdcall.} SetFragment*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} SetHost*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} SetPassword*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} SetPath*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} - SetPort*: proc(self: ptr IUriBuilder, fHasPort: WINBOOL, dwNewValue: DWORD): HRESULT {.stdcall.} + SetPort*: proc(self: ptr IUriBuilder, fHasPort: WINBOOL, dwNewValue: DWORD): HRESULT {. + stdcall + .} SetQuery*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} - SetSchemeName*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} + SetSchemeName*: + proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} SetUserName*: proc(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.stdcall.} - RemoveProperties*: proc(self: ptr IUriBuilder, dwPropertyMask: DWORD): HRESULT {.stdcall.} - HasBeenModified*: proc(self: ptr IUriBuilder, pfModified: ptr WINBOOL): HRESULT {.stdcall.} + RemoveProperties*: + proc(self: ptr IUriBuilder, dwPropertyMask: DWORD): HRESULT {.stdcall.} + HasBeenModified*: + proc(self: ptr IUriBuilder, pfModified: ptr WINBOOL): HRESULT {.stdcall.} + IUriBuilderFactory* {.pure.} = object lpVtbl*: ptr IUriBuilderFactoryVtbl + IUriBuilderFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateIUriBuilder*: proc(self: ptr IUriBuilderFactory, dwFlags: DWORD, dwReserved: DWORD_PTR, ppIUriBuilder: ptr ptr IUriBuilder): HRESULT {.stdcall.} - CreateInitializedIUriBuilder*: proc(self: ptr IUriBuilderFactory, dwFlags: DWORD, dwReserved: DWORD_PTR, ppIUriBuilder: ptr ptr IUriBuilder): HRESULT {.stdcall.} + CreateIUriBuilder*: proc( + self: ptr IUriBuilderFactory, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ppIUriBuilder: ptr ptr IUriBuilder, + ): HRESULT {.stdcall.} + CreateInitializedIUriBuilder*: proc( + self: ptr IUriBuilderFactory, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ppIUriBuilder: ptr ptr IUriBuilder, + ): HRESULT {.stdcall.} + IWinInetHttpTimeouts* {.pure.} = object lpVtbl*: ptr IWinInetHttpTimeoutsVtbl + IWinInetHttpTimeoutsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRequestTimeouts*: proc(self: ptr IWinInetHttpTimeouts, pdwConnectTimeout: ptr DWORD, pdwSendTimeout: ptr DWORD, pdwReceiveTimeout: ptr DWORD): HRESULT {.stdcall.} + GetRequestTimeouts*: proc( + self: ptr IWinInetHttpTimeouts, + pdwConnectTimeout: ptr DWORD, + pdwSendTimeout: ptr DWORD, + pdwReceiveTimeout: ptr DWORD, + ): HRESULT {.stdcall.} + IInternetSecurityMgrSite* {.pure.} = object lpVtbl*: ptr IInternetSecurityMgrSiteVtbl + IInternetSecurityMgrSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetWindow*: proc(self: ptr IInternetSecurityMgrSite, phwnd: ptr HWND): HRESULT {.stdcall.} - EnableModeless*: proc(self: ptr IInternetSecurityMgrSite, fEnable: WINBOOL): HRESULT {.stdcall.} + GetWindow*: + proc(self: ptr IInternetSecurityMgrSite, phwnd: ptr HWND): HRESULT {.stdcall.} + EnableModeless*: + proc(self: ptr IInternetSecurityMgrSite, fEnable: WINBOOL): HRESULT {.stdcall.} + IInternetSecurityManager* {.pure.} = object lpVtbl*: ptr IInternetSecurityManagerVtbl + IInternetSecurityManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetSecuritySite*: proc(self: ptr IInternetSecurityManager, pSite: ptr IInternetSecurityMgrSite): HRESULT {.stdcall.} - GetSecuritySite*: proc(self: ptr IInternetSecurityManager, ppSite: ptr ptr IInternetSecurityMgrSite): HRESULT {.stdcall.} - MapUrlToZone*: proc(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, pdwZone: ptr DWORD, dwFlags: DWORD): HRESULT {.stdcall.} - GetSecurityId*: proc(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.stdcall.} - ProcessUrlAction*: proc(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD): HRESULT {.stdcall.} - QueryCustomPolicy*: proc(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, pContext: ptr BYTE, cbContext: DWORD, dwReserved: DWORD): HRESULT {.stdcall.} - SetZoneMapping*: proc(self: ptr IInternetSecurityManager, dwZone: DWORD, lpszPattern: LPCWSTR, dwFlags: DWORD): HRESULT {.stdcall.} - GetZoneMappings*: proc(self: ptr IInternetSecurityManager, dwZone: DWORD, ppenumString: ptr ptr IEnumString, dwFlags: DWORD): HRESULT {.stdcall.} + SetSecuritySite*: proc( + self: ptr IInternetSecurityManager, pSite: ptr IInternetSecurityMgrSite + ): HRESULT {.stdcall.} + GetSecuritySite*: proc( + self: ptr IInternetSecurityManager, ppSite: ptr ptr IInternetSecurityMgrSite + ): HRESULT {.stdcall.} + MapUrlToZone*: proc( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + pdwZone: ptr DWORD, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetSecurityId*: proc( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, + ): HRESULT {.stdcall.} + ProcessUrlAction*: proc( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + QueryCustomPolicy*: proc( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + SetZoneMapping*: proc( + self: ptr IInternetSecurityManager, + dwZone: DWORD, + lpszPattern: LPCWSTR, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetZoneMappings*: proc( + self: ptr IInternetSecurityManager, + dwZone: DWORD, + ppenumString: ptr ptr IEnumString, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + IInternetSecurityManagerEx* {.pure.} = object lpVtbl*: ptr IInternetSecurityManagerExVtbl + IInternetSecurityManagerExVtbl* {.pure, inheritable.} = object of IInternetSecurityManagerVtbl - ProcessUrlActionEx*: proc(self: ptr IInternetSecurityManagerEx, pwszUrl: LPCWSTR, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD, pdwOutFlags: ptr DWORD): HRESULT {.stdcall.} + ProcessUrlActionEx*: proc( + self: ptr IInternetSecurityManagerEx, + pwszUrl: LPCWSTR, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD, + pdwOutFlags: ptr DWORD, + ): HRESULT {.stdcall.} + IInternetSecurityManagerEx2* {.pure.} = object lpVtbl*: ptr IInternetSecurityManagerEx2Vtbl + IInternetSecurityManagerEx2Vtbl* {.pure, inheritable.} = object of IInternetSecurityManagerExVtbl - MapUrlToZoneEx2*: proc(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, pdwZone: ptr DWORD, dwFlags: DWORD, ppwszMappedUrl: ptr LPWSTR, pdwOutFlags: ptr DWORD): HRESULT {.stdcall.} - ProcessUrlActionEx2*: proc(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD_PTR, pdwOutFlags: ptr DWORD): HRESULT {.stdcall.} - GetSecurityIdEx2*: proc(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.stdcall.} - QueryCustomPolicyEx2*: proc(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, pContext: ptr BYTE, cbContext: DWORD, dwReserved: DWORD_PTR): HRESULT {.stdcall.} + MapUrlToZoneEx2*: proc( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + pdwZone: ptr DWORD, + dwFlags: DWORD, + ppwszMappedUrl: ptr LPWSTR, + pdwOutFlags: ptr DWORD, + ): HRESULT {.stdcall.} + ProcessUrlActionEx2*: proc( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + pdwOutFlags: ptr DWORD, + ): HRESULT {.stdcall.} + GetSecurityIdEx2*: proc( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, + ): HRESULT {.stdcall.} + QueryCustomPolicyEx2*: proc( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwReserved: DWORD_PTR, + ): HRESULT {.stdcall.} + IZoneIdentifier* {.pure.} = object lpVtbl*: ptr IZoneIdentifierVtbl + IZoneIdentifierVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetId*: proc(self: ptr IZoneIdentifier, pdwZone: ptr DWORD): HRESULT {.stdcall.} SetId*: proc(self: ptr IZoneIdentifier, dwZone: DWORD): HRESULT {.stdcall.} Remove*: proc(self: ptr IZoneIdentifier): HRESULT {.stdcall.} + IInternetHostSecurityManager* {.pure.} = object lpVtbl*: ptr IInternetHostSecurityManagerVtbl + IInternetHostSecurityManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSecurityId*: proc(self: ptr IInternetHostSecurityManager, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.stdcall.} - ProcessUrlAction*: proc(self: ptr IInternetHostSecurityManager, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD): HRESULT {.stdcall.} - QueryCustomPolicy*: proc(self: ptr IInternetHostSecurityManager, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, pContext: ptr BYTE, cbContext: DWORD, dwReserved: DWORD): HRESULT {.stdcall.} + GetSecurityId*: proc( + self: ptr IInternetHostSecurityManager, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, + ): HRESULT {.stdcall.} + ProcessUrlAction*: proc( + self: ptr IInternetHostSecurityManager, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + QueryCustomPolicy*: proc( + self: ptr IInternetHostSecurityManager, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + IInternetZoneManagerEx* {.pure.} = object lpVtbl*: ptr IInternetZoneManagerExVtbl + IInternetZoneManagerExVtbl* {.pure, inheritable.} = object of IInternetZoneManagerVtbl - GetZoneActionPolicyEx*: proc(self: ptr IInternetZoneManagerEx, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG, dwFlags: DWORD): HRESULT {.stdcall.} - SetZoneActionPolicyEx*: proc(self: ptr IInternetZoneManagerEx, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG, dwFlags: DWORD): HRESULT {.stdcall.} + GetZoneActionPolicyEx*: proc( + self: ptr IInternetZoneManagerEx, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + SetZoneActionPolicyEx*: proc( + self: ptr IInternetZoneManagerEx, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + IInternetZoneManagerEx2* {.pure.} = object lpVtbl*: ptr IInternetZoneManagerEx2Vtbl + IInternetZoneManagerEx2Vtbl* {.pure, inheritable.} = object of IInternetZoneManagerExVtbl - GetZoneAttributesEx*: proc(self: ptr IInternetZoneManagerEx2, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES, dwFlags: DWORD): HRESULT {.stdcall.} - GetZoneSecurityState*: proc(self: ptr IInternetZoneManagerEx2, dwZoneIndex: DWORD, fRespectPolicy: WINBOOL, pdwState: LPDWORD, pfPolicyEncountered: ptr WINBOOL): HRESULT {.stdcall.} - GetIESecurityState*: proc(self: ptr IInternetZoneManagerEx2, fRespectPolicy: WINBOOL, pdwState: LPDWORD, pfPolicyEncountered: ptr WINBOOL, fNoCache: WINBOOL): HRESULT {.stdcall.} + GetZoneAttributesEx*: proc( + self: ptr IInternetZoneManagerEx2, + dwZone: DWORD, + pZoneAttributes: ptr ZONEATTRIBUTES, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetZoneSecurityState*: proc( + self: ptr IInternetZoneManagerEx2, + dwZoneIndex: DWORD, + fRespectPolicy: WINBOOL, + pdwState: LPDWORD, + pfPolicyEncountered: ptr WINBOOL, + ): HRESULT {.stdcall.} + GetIESecurityState*: proc( + self: ptr IInternetZoneManagerEx2, + fRespectPolicy: WINBOOL, + pdwState: LPDWORD, + pfPolicyEncountered: ptr WINBOOL, + fNoCache: WINBOOL, + ): HRESULT {.stdcall.} FixUnsecureSettings*: proc(self: ptr IInternetZoneManagerEx2): HRESULT {.stdcall.} + ISoftDistExt* {.pure.} = object lpVtbl*: ptr ISoftDistExtVtbl + ISoftDistExtVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ProcessSoftDist*: proc(self: ptr ISoftDistExt, szCDFURL: LPCWSTR, pSoftDistElement: ptr IXMLElement, lpsdi: LPSOFTDISTINFO): HRESULT {.stdcall.} - GetFirstCodeBase*: proc(self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD): HRESULT {.stdcall.} - GetNextCodeBase*: proc(self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD): HRESULT {.stdcall.} - AsyncInstallDistributionUnit*: proc(self: ptr ISoftDistExt, pbc: ptr IBindCtx, pvReserved: LPVOID, flags: DWORD, lpcbh: LPCODEBASEHOLD): HRESULT {.stdcall.} + ProcessSoftDist*: proc( + self: ptr ISoftDistExt, + szCDFURL: LPCWSTR, + pSoftDistElement: ptr IXMLElement, + lpsdi: LPSOFTDISTINFO, + ): HRESULT {.stdcall.} + GetFirstCodeBase*: proc( + self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD + ): HRESULT {.stdcall.} + GetNextCodeBase*: proc( + self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD + ): HRESULT {.stdcall.} + AsyncInstallDistributionUnit*: proc( + self: ptr ISoftDistExt, + pbc: ptr IBindCtx, + pvReserved: LPVOID, + flags: DWORD, + lpcbh: LPCODEBASEHOLD, + ): HRESULT {.stdcall.} + IZoomEvents* {.pure.} = object lpVtbl*: ptr IZoomEventsVtbl + IZoomEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnZoomPercentChanged*: proc(self: ptr IZoomEvents, ulZoomPercent: ULONG): HRESULT {.stdcall.} + OnZoomPercentChanged*: + proc(self: ptr IZoomEvents, ulZoomPercent: ULONG): HRESULT {.stdcall.} + IProtectFocus* {.pure.} = object lpVtbl*: ptr IProtectFocusVtbl + IProtectFocusVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AllowFocusChange*: proc(self: ptr IProtectFocus, pfAllow: ptr WINBOOL): HRESULT {.stdcall.} + AllowFocusChange*: + proc(self: ptr IProtectFocus, pfAllow: ptr WINBOOL): HRESULT {.stdcall.} + IProtectedModeMenuServices* {.pure.} = object lpVtbl*: ptr IProtectedModeMenuServicesVtbl + IProtectedModeMenuServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateMenu*: proc(self: ptr IProtectedModeMenuServices, phMenu: ptr HMENU): HRESULT {.stdcall.} - LoadMenu*: proc(self: ptr IProtectedModeMenuServices, pszModuleName: LPCWSTR, pszMenuName: LPCWSTR, phMenu: ptr HMENU): HRESULT {.stdcall.} - LoadMenuID*: proc(self: ptr IProtectedModeMenuServices, pszModuleName: LPCWSTR, wResourceID: WORD, phMenu: ptr HMENU): HRESULT {.stdcall.} + CreateMenu*: + proc(self: ptr IProtectedModeMenuServices, phMenu: ptr HMENU): HRESULT {.stdcall.} + LoadMenu*: proc( + self: ptr IProtectedModeMenuServices, + pszModuleName: LPCWSTR, + pszMenuName: LPCWSTR, + phMenu: ptr HMENU, + ): HRESULT {.stdcall.} + LoadMenuID*: proc( + self: ptr IProtectedModeMenuServices, + pszModuleName: LPCWSTR, + wResourceID: WORD, + phMenu: ptr HMENU, + ): HRESULT {.stdcall.} + IWebBrowser* {.pure.} = object lpVtbl*: ptr IWebBrowserVtbl + IWebBrowserVtbl* {.pure, inheritable.} = object of IDispatchVtbl GoBack*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.} GoForward*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.} GoHome*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.} GoSearch*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.} - Navigate*: proc(self: ptr IWebBrowser, URL: BSTR, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.stdcall.} + Navigate*: proc( + self: ptr IWebBrowser, + URL: BSTR, + Flags: ptr VARIANT, + TargetFrameName: ptr VARIANT, + PostData: ptr VARIANT, + Headers: ptr VARIANT, + ): HRESULT {.stdcall.} Refresh*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.} Refresh2*: proc(self: ptr IWebBrowser, Level: ptr VARIANT): HRESULT {.stdcall.} Stop*: proc(self: ptr IWebBrowser): HRESULT {.stdcall.} - get_Application*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Container*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Document*: proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} - get_TopLevelContainer*: proc(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Container*: + proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Document*: + proc(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} + get_TopLevelContainer*: + proc(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_Type*: proc(self: ptr IWebBrowser, Type: ptr BSTR): HRESULT {.stdcall.} get_Left*: proc(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.stdcall.} put_Left*: proc(self: ptr IWebBrowser, Left: LONG): HRESULT {.stdcall.} @@ -6314,117 +9701,263 @@ put_Width*: proc(self: ptr IWebBrowser, Width: LONG): HRESULT {.stdcall.} get_Height*: proc(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.stdcall.} put_Height*: proc(self: ptr IWebBrowser, Height: LONG): HRESULT {.stdcall.} - get_LocationName*: proc(self: ptr IWebBrowser, LocationName: ptr BSTR): HRESULT {.stdcall.} - get_LocationURL*: proc(self: ptr IWebBrowser, LocationURL: ptr BSTR): HRESULT {.stdcall.} + get_LocationName*: + proc(self: ptr IWebBrowser, LocationName: ptr BSTR): HRESULT {.stdcall.} + get_LocationURL*: + proc(self: ptr IWebBrowser, LocationURL: ptr BSTR): HRESULT {.stdcall.} get_Busy*: proc(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DWebBrowserEvents* {.pure.} = object lpVtbl*: ptr DWebBrowserEventsVtbl + DWebBrowserEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IWebBrowserApp* {.pure.} = object lpVtbl*: ptr IWebBrowserAppVtbl + IWebBrowserAppVtbl* {.pure, inheritable.} = object of IWebBrowserVtbl Quit*: proc(self: ptr IWebBrowserApp): HRESULT {.stdcall.} - ClientToWindow*: proc(self: ptr IWebBrowserApp, pcx: ptr int32, pcy: ptr int32): HRESULT {.stdcall.} - PutProperty*: proc(self: ptr IWebBrowserApp, Property: BSTR, vtValue: VARIANT): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr IWebBrowserApp, Property: BSTR, pvtValue: ptr VARIANT): HRESULT {.stdcall.} + ClientToWindow*: proc( + self: ptr IWebBrowserApp, pcx: ptr int32, pcy: ptr int32 + ): HRESULT {.stdcall.} + PutProperty*: proc( + self: ptr IWebBrowserApp, Property: BSTR, vtValue: VARIANT + ): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IWebBrowserApp, Property: BSTR, pvtValue: ptr VARIANT + ): HRESULT {.stdcall.} get_Name*: proc(self: ptr IWebBrowserApp, Name: ptr BSTR): HRESULT {.stdcall.} - get_HWND*: proc(self: ptr IWebBrowserApp, pHWND: ptr SHANDLE_PTR): HRESULT {.stdcall.} - get_FullName*: proc(self: ptr IWebBrowserApp, FullName: ptr BSTR): HRESULT {.stdcall.} + get_HWND*: + proc(self: ptr IWebBrowserApp, pHWND: ptr SHANDLE_PTR): HRESULT {.stdcall.} + get_FullName*: + proc(self: ptr IWebBrowserApp, FullName: ptr BSTR): HRESULT {.stdcall.} get_Path*: proc(self: ptr IWebBrowserApp, Path: ptr BSTR): HRESULT {.stdcall.} - get_Visible*: proc(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_Visible*: proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.} - get_StatusBar*: proc(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_StatusBar*: proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.} - get_StatusText*: proc(self: ptr IWebBrowserApp, StatusText: ptr BSTR): HRESULT {.stdcall.} - put_StatusText*: proc(self: ptr IWebBrowserApp, StatusText: BSTR): HRESULT {.stdcall.} + get_Visible*: + proc(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_Visible*: + proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.} + get_StatusBar*: + proc(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_StatusBar*: + proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.} + get_StatusText*: + proc(self: ptr IWebBrowserApp, StatusText: ptr BSTR): HRESULT {.stdcall.} + put_StatusText*: + proc(self: ptr IWebBrowserApp, StatusText: BSTR): HRESULT {.stdcall.} get_ToolBar*: proc(self: ptr IWebBrowserApp, Value: ptr int32): HRESULT {.stdcall.} put_ToolBar*: proc(self: ptr IWebBrowserApp, Value: int32): HRESULT {.stdcall.} - get_MenuBar*: proc(self: ptr IWebBrowserApp, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_MenuBar*: proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.} - get_FullScreen*: proc(self: ptr IWebBrowserApp, pbFullScreen: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_FullScreen*: proc(self: ptr IWebBrowserApp, bFullScreen: VARIANT_BOOL): HRESULT {.stdcall.} + get_MenuBar*: + proc(self: ptr IWebBrowserApp, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_MenuBar*: + proc(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.stdcall.} + get_FullScreen*: proc( + self: ptr IWebBrowserApp, pbFullScreen: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + put_FullScreen*: + proc(self: ptr IWebBrowserApp, bFullScreen: VARIANT_BOOL): HRESULT {.stdcall.} + IWebBrowser2* {.pure.} = object lpVtbl*: ptr IWebBrowser2Vtbl + IWebBrowser2Vtbl* {.pure, inheritable.} = object of IWebBrowserAppVtbl - Navigate2*: proc(self: ptr IWebBrowser2, URL: ptr VARIANT, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.stdcall.} - QueryStatusWB*: proc(self: ptr IWebBrowser2, cmdID: OLECMDID, pcmdf: ptr OLECMDF): HRESULT {.stdcall.} - ExecWB*: proc(self: ptr IWebBrowser2, cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.stdcall.} - ShowBrowserBar*: proc(self: ptr IWebBrowser2, pvaClsid: ptr VARIANT, pvarShow: ptr VARIANT, pvarSize: ptr VARIANT): HRESULT {.stdcall.} - get_ReadyState*: proc(self: ptr IWebBrowser2, plReadyState: ptr READYSTATE): HRESULT {.stdcall.} - get_Offline*: proc(self: ptr IWebBrowser2, pbOffline: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_Offline*: proc(self: ptr IWebBrowser2, bOffline: VARIANT_BOOL): HRESULT {.stdcall.} - get_Silent*: proc(self: ptr IWebBrowser2, pbSilent: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_Silent*: proc(self: ptr IWebBrowser2, bSilent: VARIANT_BOOL): HRESULT {.stdcall.} - get_RegisterAsBrowser*: proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_RegisterAsBrowser*: proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.} - get_RegisterAsDropTarget*: proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_RegisterAsDropTarget*: proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.} - get_TheaterMode*: proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_TheaterMode*: proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.} - get_AddressBar*: proc(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_AddressBar*: proc(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.stdcall.} - get_Resizable*: proc(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_Resizable*: proc(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.stdcall.} + Navigate2*: proc( + self: ptr IWebBrowser2, + URL: ptr VARIANT, + Flags: ptr VARIANT, + TargetFrameName: ptr VARIANT, + PostData: ptr VARIANT, + Headers: ptr VARIANT, + ): HRESULT {.stdcall.} + QueryStatusWB*: proc( + self: ptr IWebBrowser2, cmdID: OLECMDID, pcmdf: ptr OLECMDF + ): HRESULT {.stdcall.} + ExecWB*: proc( + self: ptr IWebBrowser2, + cmdID: OLECMDID, + cmdexecopt: OLECMDEXECOPT, + pvaIn: ptr VARIANT, + pvaOut: ptr VARIANT, + ): HRESULT {.stdcall.} + ShowBrowserBar*: proc( + self: ptr IWebBrowser2, + pvaClsid: ptr VARIANT, + pvarShow: ptr VARIANT, + pvarSize: ptr VARIANT, + ): HRESULT {.stdcall.} + get_ReadyState*: + proc(self: ptr IWebBrowser2, plReadyState: ptr READYSTATE): HRESULT {.stdcall.} + get_Offline*: + proc(self: ptr IWebBrowser2, pbOffline: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_Offline*: + proc(self: ptr IWebBrowser2, bOffline: VARIANT_BOOL): HRESULT {.stdcall.} + get_Silent*: + proc(self: ptr IWebBrowser2, pbSilent: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_Silent*: + proc(self: ptr IWebBrowser2, bSilent: VARIANT_BOOL): HRESULT {.stdcall.} + get_RegisterAsBrowser*: + proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_RegisterAsBrowser*: + proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.} + get_RegisterAsDropTarget*: + proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_RegisterAsDropTarget*: + proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.} + get_TheaterMode*: + proc(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_TheaterMode*: + proc(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.stdcall.} + get_AddressBar*: + proc(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_AddressBar*: + proc(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.stdcall.} + get_Resizable*: + proc(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.stdcall.} + put_Resizable*: + proc(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.stdcall.} + DWebBrowserEvents2* {.pure.} = object lpVtbl*: ptr DWebBrowserEvents2Vtbl + DWebBrowserEvents2Vtbl* {.pure, inheritable.} = object of IDispatchVtbl DShellWindowsEvents* {.pure.} = object lpVtbl*: ptr DShellWindowsEventsVtbl + DShellWindowsEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IShellWindows* {.pure.} = object lpVtbl*: ptr IShellWindowsVtbl + IShellWindowsVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Count*: proc(self: ptr IShellWindows, Count: ptr LONG): HRESULT {.stdcall.} - Item*: proc(self: ptr IShellWindows, index: VARIANT, Folder: ptr ptr IDispatch): HRESULT {.stdcall.} - NewEnum*: proc(self: ptr IShellWindows, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} - Register*: proc(self: ptr IShellWindows, pid: ptr IDispatch, hWnd: LONG, swClass: int32, plCookie: ptr LONG): HRESULT {.stdcall.} - RegisterPending*: proc(self: ptr IShellWindows, lThreadId: LONG, pvarloc: ptr VARIANT, pvarlocRoot: ptr VARIANT, swClass: int32, plCookie: ptr LONG): HRESULT {.stdcall.} + Item*: proc( + self: ptr IShellWindows, index: VARIANT, Folder: ptr ptr IDispatch + ): HRESULT {.stdcall.} + NewEnum*: + proc(self: ptr IShellWindows, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + Register*: proc( + self: ptr IShellWindows, + pid: ptr IDispatch, + hWnd: LONG, + swClass: int32, + plCookie: ptr LONG, + ): HRESULT {.stdcall.} + RegisterPending*: proc( + self: ptr IShellWindows, + lThreadId: LONG, + pvarloc: ptr VARIANT, + pvarlocRoot: ptr VARIANT, + swClass: int32, + plCookie: ptr LONG, + ): HRESULT {.stdcall.} Revoke*: proc(self: ptr IShellWindows, lCookie: LONG): HRESULT {.stdcall.} - OnNavigate*: proc(self: ptr IShellWindows, lCookie: LONG, pvarLoc: ptr VARIANT): HRESULT {.stdcall.} - OnActivated*: proc(self: ptr IShellWindows, lCookie: LONG, fActive: VARIANT_BOOL): HRESULT {.stdcall.} - FindWindowSW*: proc(self: ptr IShellWindows, pvarLoc: ptr VARIANT, pvarLocRoot: ptr VARIANT, swClass: int32, phwnd: ptr LONG, swfwOptions: int32, ppdispOut: ptr ptr IDispatch): HRESULT {.stdcall.} - OnCreated*: proc(self: ptr IShellWindows, lCookie: LONG, punk: ptr IUnknown): HRESULT {.stdcall.} - ProcessAttachDetach*: proc(self: ptr IShellWindows, fAttach: VARIANT_BOOL): HRESULT {.stdcall.} + OnNavigate*: proc( + self: ptr IShellWindows, lCookie: LONG, pvarLoc: ptr VARIANT + ): HRESULT {.stdcall.} + OnActivated*: proc( + self: ptr IShellWindows, lCookie: LONG, fActive: VARIANT_BOOL + ): HRESULT {.stdcall.} + FindWindowSW*: proc( + self: ptr IShellWindows, + pvarLoc: ptr VARIANT, + pvarLocRoot: ptr VARIANT, + swClass: int32, + phwnd: ptr LONG, + swfwOptions: int32, + ppdispOut: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + OnCreated*: proc( + self: ptr IShellWindows, lCookie: LONG, punk: ptr IUnknown + ): HRESULT {.stdcall.} + ProcessAttachDetach*: + proc(self: ptr IShellWindows, fAttach: VARIANT_BOOL): HRESULT {.stdcall.} + IShellUIHelper* {.pure.} = object lpVtbl*: ptr IShellUIHelperVtbl + IShellUIHelperVtbl* {.pure, inheritable.} = object of IDispatchVtbl ResetFirstBootMode*: proc(self: ptr IShellUIHelper): HRESULT {.stdcall.} ResetSafeMode*: proc(self: ptr IShellUIHelper): HRESULT {.stdcall.} RefreshOfflineDesktop*: proc(self: ptr IShellUIHelper): HRESULT {.stdcall.} - AddFavorite*: proc(self: ptr IShellUIHelper, URL: BSTR, Title: ptr VARIANT): HRESULT {.stdcall.} + AddFavorite*: + proc(self: ptr IShellUIHelper, URL: BSTR, Title: ptr VARIANT): HRESULT {.stdcall.} AddChannel*: proc(self: ptr IShellUIHelper, URL: BSTR): HRESULT {.stdcall.} - AddDesktopComponent*: proc(self: ptr IShellUIHelper, URL: BSTR, Type: BSTR, Left: ptr VARIANT, Top: ptr VARIANT, Width: ptr VARIANT, Height: ptr VARIANT): HRESULT {.stdcall.} - IsSubscribed*: proc(self: ptr IShellUIHelper, URL: BSTR, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} - NavigateAndFind*: proc(self: ptr IShellUIHelper, URL: BSTR, strQuery: BSTR, varTargetFrame: ptr VARIANT): HRESULT {.stdcall.} - ImportExportFavorites*: proc(self: ptr IShellUIHelper, fImport: VARIANT_BOOL, strImpExpPath: BSTR): HRESULT {.stdcall.} - AutoCompleteSaveForm*: proc(self: ptr IShellUIHelper, Form: ptr VARIANT): HRESULT {.stdcall.} - AutoScan*: proc(self: ptr IShellUIHelper, strSearch: BSTR, strFailureUrl: BSTR, pvarTargetFrame: ptr VARIANT): HRESULT {.stdcall.} - AutoCompleteAttach*: proc(self: ptr IShellUIHelper, Reserved: ptr VARIANT): HRESULT {.stdcall.} - ShowBrowserUI*: proc(self: ptr IShellUIHelper, bstrName: BSTR, pvarIn: ptr VARIANT, pvarOut: ptr VARIANT): HRESULT {.stdcall.} + AddDesktopComponent*: proc( + self: ptr IShellUIHelper, + URL: BSTR, + Type: BSTR, + Left: ptr VARIANT, + Top: ptr VARIANT, + Width: ptr VARIANT, + Height: ptr VARIANT, + ): HRESULT {.stdcall.} + IsSubscribed*: proc( + self: ptr IShellUIHelper, URL: BSTR, pBool: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + NavigateAndFind*: proc( + self: ptr IShellUIHelper, URL: BSTR, strQuery: BSTR, varTargetFrame: ptr VARIANT + ): HRESULT {.stdcall.} + ImportExportFavorites*: proc( + self: ptr IShellUIHelper, fImport: VARIANT_BOOL, strImpExpPath: BSTR + ): HRESULT {.stdcall.} + AutoCompleteSaveForm*: + proc(self: ptr IShellUIHelper, Form: ptr VARIANT): HRESULT {.stdcall.} + AutoScan*: proc( + self: ptr IShellUIHelper, + strSearch: BSTR, + strFailureUrl: BSTR, + pvarTargetFrame: ptr VARIANT, + ): HRESULT {.stdcall.} + AutoCompleteAttach*: + proc(self: ptr IShellUIHelper, Reserved: ptr VARIANT): HRESULT {.stdcall.} + ShowBrowserUI*: proc( + self: ptr IShellUIHelper, + bstrName: BSTR, + pvarIn: ptr VARIANT, + pvarOut: ptr VARIANT, + ): HRESULT {.stdcall.} + IShellUIHelper2* {.pure.} = object lpVtbl*: ptr IShellUIHelper2Vtbl + IShellUIHelper2Vtbl* {.pure, inheritable.} = object of IShellUIHelperVtbl AddSearchProvider*: proc(self: ptr IShellUIHelper2, URL: BSTR): HRESULT {.stdcall.} RunOnceShown*: proc(self: ptr IShellUIHelper2): HRESULT {.stdcall.} SkipRunOnce*: proc(self: ptr IShellUIHelper2): HRESULT {.stdcall.} - CustomizeSettings*: proc(self: ptr IShellUIHelper2, fSQM: VARIANT_BOOL, fPhishing: VARIANT_BOOL, bstrLocale: BSTR): HRESULT {.stdcall.} - SqmEnabled*: proc(self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} - PhishingEnabled*: proc(self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} - BrandImageUri*: proc(self: ptr IShellUIHelper2, pbstrUri: ptr BSTR): HRESULT {.stdcall.} + CustomizeSettings*: proc( + self: ptr IShellUIHelper2, + fSQM: VARIANT_BOOL, + fPhishing: VARIANT_BOOL, + bstrLocale: BSTR, + ): HRESULT {.stdcall.} + SqmEnabled*: + proc(self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} + PhishingEnabled*: + proc(self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL): HRESULT {.stdcall.} + BrandImageUri*: + proc(self: ptr IShellUIHelper2, pbstrUri: ptr BSTR): HRESULT {.stdcall.} SkipTabsWelcome*: proc(self: ptr IShellUIHelper2): HRESULT {.stdcall.} DiagnoseConnection*: proc(self: ptr IShellUIHelper2): HRESULT {.stdcall.} - CustomizeClearType*: proc(self: ptr IShellUIHelper2, fSet: VARIANT_BOOL): HRESULT {.stdcall.} - IsSearchProviderInstalled*: proc(self: ptr IShellUIHelper2, URL: BSTR, pdwResult: ptr DWORD): HRESULT {.stdcall.} - IsSearchMigrated*: proc(self: ptr IShellUIHelper2, pfMigrated: ptr VARIANT_BOOL): HRESULT {.stdcall.} - DefaultSearchProvider*: proc(self: ptr IShellUIHelper2, pbstrName: ptr BSTR): HRESULT {.stdcall.} - RunOnceRequiredSettingsComplete*: proc(self: ptr IShellUIHelper2, fComplete: VARIANT_BOOL): HRESULT {.stdcall.} - RunOnceHasShown*: proc(self: ptr IShellUIHelper2, pfShown: ptr VARIANT_BOOL): HRESULT {.stdcall.} - SearchGuideUrl*: proc(self: ptr IShellUIHelper2, pbstrUrl: ptr BSTR): HRESULT {.stdcall.} + CustomizeClearType*: + proc(self: ptr IShellUIHelper2, fSet: VARIANT_BOOL): HRESULT {.stdcall.} + IsSearchProviderInstalled*: proc( + self: ptr IShellUIHelper2, URL: BSTR, pdwResult: ptr DWORD + ): HRESULT {.stdcall.} + IsSearchMigrated*: + proc(self: ptr IShellUIHelper2, pfMigrated: ptr VARIANT_BOOL): HRESULT {.stdcall.} + DefaultSearchProvider*: + proc(self: ptr IShellUIHelper2, pbstrName: ptr BSTR): HRESULT {.stdcall.} + RunOnceRequiredSettingsComplete*: + proc(self: ptr IShellUIHelper2, fComplete: VARIANT_BOOL): HRESULT {.stdcall.} + RunOnceHasShown*: + proc(self: ptr IShellUIHelper2, pfShown: ptr VARIANT_BOOL): HRESULT {.stdcall.} + SearchGuideUrl*: + proc(self: ptr IShellUIHelper2, pbstrUrl: ptr BSTR): HRESULT {.stdcall.} + DShellNameSpaceEvents* {.pure.} = object lpVtbl*: ptr DShellNameSpaceEventsVtbl + DShellNameSpaceEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IShellFavoritesNameSpace* {.pure.} = object lpVtbl*: ptr IShellFavoritesNameSpaceVtbl + IShellFavoritesNameSpaceVtbl* {.pure, inheritable.} = object of IDispatchVtbl MoveSelectionUp*: proc(self: ptr IShellFavoritesNameSpace): HRESULT {.stdcall.} MoveSelectionDown*: proc(self: ptr IShellFavoritesNameSpace): HRESULT {.stdcall.} @@ -6433,3659 +9966,17890 @@ Synchronize*: proc(self: ptr IShellFavoritesNameSpace): HRESULT {.stdcall.} Import*: proc(self: ptr IShellFavoritesNameSpace): HRESULT {.stdcall.} Export*: proc(self: ptr IShellFavoritesNameSpace): HRESULT {.stdcall.} - InvokeContextMenuCommand*: proc(self: ptr IShellFavoritesNameSpace, strCommand: BSTR): HRESULT {.stdcall.} + InvokeContextMenuCommand*: + proc(self: ptr IShellFavoritesNameSpace, strCommand: BSTR): HRESULT {.stdcall.} MoveSelectionTo*: proc(self: ptr IShellFavoritesNameSpace): HRESULT {.stdcall.} - get_SubscriptionsEnabled*: proc(self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} - CreateSubscriptionForSelection*: proc(self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} - DeleteSubscriptionForSelection*: proc(self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL): HRESULT {.stdcall.} - SetRoot*: proc(self: ptr IShellFavoritesNameSpace, bstrFullPath: BSTR): HRESULT {.stdcall.} + get_SubscriptionsEnabled*: proc( + self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + CreateSubscriptionForSelection*: proc( + self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + DeleteSubscriptionForSelection*: proc( + self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + SetRoot*: + proc(self: ptr IShellFavoritesNameSpace, bstrFullPath: BSTR): HRESULT {.stdcall.} + IShellNameSpace* {.pure.} = object lpVtbl*: ptr IShellNameSpaceVtbl + IShellNameSpaceVtbl* {.pure, inheritable.} = object of IShellFavoritesNameSpaceVtbl - get_EnumOptions*: proc(self: ptr IShellNameSpace, pgrfEnumFlags: ptr LONG): HRESULT {.stdcall.} - put_EnumOptions*: proc(self: ptr IShellNameSpace, pgrfEnumFlags: LONG): HRESULT {.stdcall.} - get_SelectedItem*: proc(self: ptr IShellNameSpace, pItem: ptr ptr IDispatch): HRESULT {.stdcall.} - put_SelectedItem*: proc(self: ptr IShellNameSpace, pItem: ptr IDispatch): HRESULT {.stdcall.} + get_EnumOptions*: + proc(self: ptr IShellNameSpace, pgrfEnumFlags: ptr LONG): HRESULT {.stdcall.} + put_EnumOptions*: + proc(self: ptr IShellNameSpace, pgrfEnumFlags: LONG): HRESULT {.stdcall.} + get_SelectedItem*: + proc(self: ptr IShellNameSpace, pItem: ptr ptr IDispatch): HRESULT {.stdcall.} + put_SelectedItem*: + proc(self: ptr IShellNameSpace, pItem: ptr IDispatch): HRESULT {.stdcall.} get_Root*: proc(self: ptr IShellNameSpace, pvar: ptr VARIANT): HRESULT {.stdcall.} put_Root*: proc(self: ptr IShellNameSpace, pvar: VARIANT): HRESULT {.stdcall.} get_Depth*: proc(self: ptr IShellNameSpace, piDepth: ptr int32): HRESULT {.stdcall.} put_Depth*: proc(self: ptr IShellNameSpace, piDepth: int32): HRESULT {.stdcall.} get_Mode*: proc(self: ptr IShellNameSpace, puMode: ptr int32): HRESULT {.stdcall.} put_Mode*: proc(self: ptr IShellNameSpace, puMode: int32): HRESULT {.stdcall.} - get_Flags*: proc(self: ptr IShellNameSpace, pdwFlags: ptr ULONG): HRESULT {.stdcall.} + get_Flags*: + proc(self: ptr IShellNameSpace, pdwFlags: ptr ULONG): HRESULT {.stdcall.} put_Flags*: proc(self: ptr IShellNameSpace, pdwFlags: ULONG): HRESULT {.stdcall.} put_TVFlags*: proc(self: ptr IShellNameSpace, dwFlags: ULONG): HRESULT {.stdcall.} - get_TVFlags*: proc(self: ptr IShellNameSpace, dwFlags: ptr ULONG): HRESULT {.stdcall.} - get_Columns*: proc(self: ptr IShellNameSpace, bstrColumns: ptr BSTR): HRESULT {.stdcall.} - put_Columns*: proc(self: ptr IShellNameSpace, bstrColumns: BSTR): HRESULT {.stdcall.} - get_CountViewTypes*: proc(self: ptr IShellNameSpace, piTypes: ptr int32): HRESULT {.stdcall.} + get_TVFlags*: + proc(self: ptr IShellNameSpace, dwFlags: ptr ULONG): HRESULT {.stdcall.} + get_Columns*: + proc(self: ptr IShellNameSpace, bstrColumns: ptr BSTR): HRESULT {.stdcall.} + put_Columns*: + proc(self: ptr IShellNameSpace, bstrColumns: BSTR): HRESULT {.stdcall.} + get_CountViewTypes*: + proc(self: ptr IShellNameSpace, piTypes: ptr int32): HRESULT {.stdcall.} SetViewType*: proc(self: ptr IShellNameSpace, iType: int32): HRESULT {.stdcall.} - SelectedItems*: proc(self: ptr IShellNameSpace, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - Expand*: proc(self: ptr IShellNameSpace, `var`: VARIANT, iDepth: int32): HRESULT {.stdcall.} + SelectedItems*: + proc(self: ptr IShellNameSpace, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + Expand*: proc(self: ptr IShellNameSpace, `var`: VARIANT, iDepth: int32): HRESULT {. + stdcall + .} UnselectAll*: proc(self: ptr IShellNameSpace): HRESULT {.stdcall.} + IScriptErrorList* {.pure.} = object lpVtbl*: ptr IScriptErrorListVtbl + IScriptErrorListVtbl* {.pure, inheritable.} = object of IDispatchVtbl advanceError*: proc(self: ptr IScriptErrorList): HRESULT {.stdcall.} retreatError*: proc(self: ptr IScriptErrorList): HRESULT {.stdcall.} - canAdvanceError*: proc(self: ptr IScriptErrorList, pfCanAdvance: ptr LONG): HRESULT {.stdcall.} - canRetreatError*: proc(self: ptr IScriptErrorList, pfCanRetreat: ptr LONG): HRESULT {.stdcall.} - getErrorLine*: proc(self: ptr IScriptErrorList, plLine: ptr LONG): HRESULT {.stdcall.} - getErrorChar*: proc(self: ptr IScriptErrorList, plChar: ptr LONG): HRESULT {.stdcall.} - getErrorCode*: proc(self: ptr IScriptErrorList, plCode: ptr LONG): HRESULT {.stdcall.} + canAdvanceError*: + proc(self: ptr IScriptErrorList, pfCanAdvance: ptr LONG): HRESULT {.stdcall.} + canRetreatError*: + proc(self: ptr IScriptErrorList, pfCanRetreat: ptr LONG): HRESULT {.stdcall.} + getErrorLine*: + proc(self: ptr IScriptErrorList, plLine: ptr LONG): HRESULT {.stdcall.} + getErrorChar*: + proc(self: ptr IScriptErrorList, plChar: ptr LONG): HRESULT {.stdcall.} + getErrorCode*: + proc(self: ptr IScriptErrorList, plCode: ptr LONG): HRESULT {.stdcall.} getErrorMsg*: proc(self: ptr IScriptErrorList, pstr: ptr BSTR): HRESULT {.stdcall.} getErrorUrl*: proc(self: ptr IScriptErrorList, pstr: ptr BSTR): HRESULT {.stdcall.} - getAlwaysShowLockState*: proc(self: ptr IScriptErrorList, pfAlwaysShowLocked: ptr LONG): HRESULT {.stdcall.} - getDetailsPaneOpen*: proc(self: ptr IScriptErrorList, pfDetailsPaneOpen: ptr LONG): HRESULT {.stdcall.} - setDetailsPaneOpen*: proc(self: ptr IScriptErrorList, fDetailsPaneOpen: LONG): HRESULT {.stdcall.} - getPerErrorDisplay*: proc(self: ptr IScriptErrorList, pfPerErrorDisplay: ptr LONG): HRESULT {.stdcall.} - setPerErrorDisplay*: proc(self: ptr IScriptErrorList, fPerErrorDisplay: LONG): HRESULT {.stdcall.} + getAlwaysShowLockState*: proc( + self: ptr IScriptErrorList, pfAlwaysShowLocked: ptr LONG + ): HRESULT {.stdcall.} + getDetailsPaneOpen*: + proc(self: ptr IScriptErrorList, pfDetailsPaneOpen: ptr LONG): HRESULT {.stdcall.} + setDetailsPaneOpen*: + proc(self: ptr IScriptErrorList, fDetailsPaneOpen: LONG): HRESULT {.stdcall.} + getPerErrorDisplay*: + proc(self: ptr IScriptErrorList, pfPerErrorDisplay: ptr LONG): HRESULT {.stdcall.} + setPerErrorDisplay*: + proc(self: ptr IScriptErrorList, fPerErrorDisplay: LONG): HRESULT {.stdcall.} + ISearch* {.pure.} = object lpVtbl*: ptr ISearchVtbl + ISearchVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Title*: proc(self: ptr ISearch, pbstrTitle: ptr BSTR): HRESULT {.stdcall.} get_Id*: proc(self: ptr ISearch, pbstrId: ptr BSTR): HRESULT {.stdcall.} get_URL*: proc(self: ptr ISearch, pbstrUrl: ptr BSTR): HRESULT {.stdcall.} + ISearches* {.pure.} = object lpVtbl*: ptr ISearchesVtbl + ISearchesVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Count*: proc(self: ptr ISearches, plCount: ptr LONG): HRESULT {.stdcall.} get_Default*: proc(self: ptr ISearches, pbstrDefault: ptr BSTR): HRESULT {.stdcall.} - Item*: proc(self: ptr ISearches, index: VARIANT, ppid: ptr ptr ISearch): HRESULT {.stdcall.} + Item*: proc(self: ptr ISearches, index: VARIANT, ppid: ptr ptr ISearch): HRESULT {. + stdcall + .} NewEnum*: proc(self: ptr ISearches, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + ISearchAssistantOC* {.pure.} = object lpVtbl*: ptr ISearchAssistantOCVtbl + ISearchAssistantOCVtbl* {.pure, inheritable.} = object of IDispatchVtbl - AddNextMenuItem*: proc(self: ptr ISearchAssistantOC, bstrText: BSTR, idItem: LONG): HRESULT {.stdcall.} - SetDefaultSearchUrl*: proc(self: ptr ISearchAssistantOC, bstrUrl: BSTR): HRESULT {.stdcall.} + AddNextMenuItem*: proc( + self: ptr ISearchAssistantOC, bstrText: BSTR, idItem: LONG + ): HRESULT {.stdcall.} + SetDefaultSearchUrl*: + proc(self: ptr ISearchAssistantOC, bstrUrl: BSTR): HRESULT {.stdcall.} NavigateToDefaultSearch*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} - IsRestricted*: proc(self: ptr ISearchAssistantOC, bstrGuid: BSTR, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_ShellFeaturesEnabled*: proc(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_SearchAssistantDefault*: proc(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_Searches*: proc(self: ptr ISearchAssistantOC, ppid: ptr ptr ISearches): HRESULT {.stdcall.} - get_InWebFolder*: proc(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} - PutProperty*: proc(self: ptr ISearchAssistantOC, bPerLocale: VARIANT_BOOL, bstrName: BSTR, bstrValue: BSTR): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr ISearchAssistantOC, bPerLocale: VARIANT_BOOL, bstrName: BSTR, pbstrValue: ptr BSTR): HRESULT {.stdcall.} - put_EventHandled*: proc(self: ptr ISearchAssistantOC, rhs: VARIANT_BOOL): HRESULT {.stdcall.} + IsRestricted*: proc( + self: ptr ISearchAssistantOC, bstrGuid: BSTR, pVal: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + get_ShellFeaturesEnabled*: + proc(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_SearchAssistantDefault*: + proc(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_Searches*: + proc(self: ptr ISearchAssistantOC, ppid: ptr ptr ISearches): HRESULT {.stdcall.} + get_InWebFolder*: + proc(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.stdcall.} + PutProperty*: proc( + self: ptr ISearchAssistantOC, + bPerLocale: VARIANT_BOOL, + bstrName: BSTR, + bstrValue: BSTR, + ): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr ISearchAssistantOC, + bPerLocale: VARIANT_BOOL, + bstrName: BSTR, + pbstrValue: ptr BSTR, + ): HRESULT {.stdcall.} + put_EventHandled*: + proc(self: ptr ISearchAssistantOC, rhs: VARIANT_BOOL): HRESULT {.stdcall.} ResetNextMenu*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} FindOnWeb*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} FindFilesOrFolders*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} FindComputer*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} FindPrinter*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} FindPeople*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} - GetSearchAssistantURL*: proc(self: ptr ISearchAssistantOC, bSubstitute: VARIANT_BOOL, bCustomize: VARIANT_BOOL, pbstrValue: ptr BSTR): HRESULT {.stdcall.} - NotifySearchSettingsChanged*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} - put_ASProvider*: proc(self: ptr ISearchAssistantOC, pProvider: BSTR): HRESULT {.stdcall.} - get_ASProvider*: proc(self: ptr ISearchAssistantOC, pProvider: ptr BSTR): HRESULT {.stdcall.} - put_ASSetting*: proc(self: ptr ISearchAssistantOC, pSetting: int32): HRESULT {.stdcall.} - get_ASSetting*: proc(self: ptr ISearchAssistantOC, pSetting: ptr int32): HRESULT {.stdcall.} + GetSearchAssistantURL*: proc( + self: ptr ISearchAssistantOC, + bSubstitute: VARIANT_BOOL, + bCustomize: VARIANT_BOOL, + pbstrValue: ptr BSTR, + ): HRESULT {.stdcall.} + NotifySearchSettingsChanged*: + proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} + put_ASProvider*: + proc(self: ptr ISearchAssistantOC, pProvider: BSTR): HRESULT {.stdcall.} + get_ASProvider*: + proc(self: ptr ISearchAssistantOC, pProvider: ptr BSTR): HRESULT {.stdcall.} + put_ASSetting*: + proc(self: ptr ISearchAssistantOC, pSetting: int32): HRESULT {.stdcall.} + get_ASSetting*: + proc(self: ptr ISearchAssistantOC, pSetting: ptr int32): HRESULT {.stdcall.} NETDetectNextNavigate*: proc(self: ptr ISearchAssistantOC): HRESULT {.stdcall.} - PutFindText*: proc(self: ptr ISearchAssistantOC, FindText: BSTR): HRESULT {.stdcall.} - get_Version*: proc(self: ptr ISearchAssistantOC, pVersion: ptr int32): HRESULT {.stdcall.} - EncodeString*: proc(self: ptr ISearchAssistantOC, bstrValue: BSTR, bstrCharSet: BSTR, bUseUTF8: VARIANT_BOOL, pbstrResult: ptr BSTR): HRESULT {.stdcall.} + PutFindText*: + proc(self: ptr ISearchAssistantOC, FindText: BSTR): HRESULT {.stdcall.} + get_Version*: + proc(self: ptr ISearchAssistantOC, pVersion: ptr int32): HRESULT {.stdcall.} + EncodeString*: proc( + self: ptr ISearchAssistantOC, + bstrValue: BSTR, + bstrCharSet: BSTR, + bUseUTF8: VARIANT_BOOL, + pbstrResult: ptr BSTR, + ): HRESULT {.stdcall.} + ISearchAssistantOC2* {.pure.} = object lpVtbl*: ptr ISearchAssistantOC2Vtbl + ISearchAssistantOC2Vtbl* {.pure, inheritable.} = object of ISearchAssistantOCVtbl - get_ShowFindPrinter*: proc(self: ptr ISearchAssistantOC2, pbShowFindPrinter: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_ShowFindPrinter*: proc( + self: ptr ISearchAssistantOC2, pbShowFindPrinter: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + ISearchAssistantOC3* {.pure.} = object lpVtbl*: ptr ISearchAssistantOC3Vtbl + ISearchAssistantOC3Vtbl* {.pure, inheritable.} = object of ISearchAssistantOC2Vtbl - get_SearchCompanionAvailable*: proc(self: ptr ISearchAssistantOC3, pbAvailable: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_UseSearchCompanion*: proc(self: ptr ISearchAssistantOC3, pbUseSC: VARIANT_BOOL): HRESULT {.stdcall.} - get_UseSearchCompanion*: proc(self: ptr ISearchAssistantOC3, pbUseSC: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_SearchCompanionAvailable*: proc( + self: ptr ISearchAssistantOC3, pbAvailable: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + put_UseSearchCompanion*: + proc(self: ptr ISearchAssistantOC3, pbUseSC: VARIANT_BOOL): HRESULT {.stdcall.} + get_UseSearchCompanion*: proc( + self: ptr ISearchAssistantOC3, pbUseSC: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + SearchAssistantEvents* {.pure.} = object lpVtbl*: ptr SearchAssistantEventsVtbl + SearchAssistantEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl IRichChunk* {.pure.} = object lpVtbl*: ptr IRichChunkVtbl + IRichChunkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetData*: proc(self: ptr IRichChunk, pFirstPos: ptr ULONG, pLength: ptr ULONG, ppsz: ptr LPWSTR, pValue: ptr PROPVARIANT): HRESULT {.stdcall.} + GetData*: proc( + self: ptr IRichChunk, + pFirstPos: ptr ULONG, + pLength: ptr ULONG, + ppsz: ptr LPWSTR, + pValue: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + ICondition* {.pure.} = object lpVtbl*: ptr IConditionVtbl + IConditionVtbl* {.pure, inheritable.} = object of IPersistStreamVtbl - GetConditionType*: proc(self: ptr ICondition, pNodeType: ptr CONDITION_TYPE): HRESULT {.stdcall.} - GetSubConditions*: proc(self: ptr ICondition, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetComparisonInfo*: proc(self: ptr ICondition, ppszPropertyName: ptr LPWSTR, pcop: ptr CONDITION_OPERATION, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - GetValueType*: proc(self: ptr ICondition, ppszValueTypeName: ptr LPWSTR): HRESULT {.stdcall.} - GetValueNormalization*: proc(self: ptr ICondition, ppszNormalization: ptr LPWSTR): HRESULT {.stdcall.} - GetInputTerms*: proc(self: ptr ICondition, ppPropertyTerm: ptr ptr IRichChunk, ppOperationTerm: ptr ptr IRichChunk, ppValueTerm: ptr ptr IRichChunk): HRESULT {.stdcall.} + GetConditionType*: + proc(self: ptr ICondition, pNodeType: ptr CONDITION_TYPE): HRESULT {.stdcall.} + GetSubConditions*: + proc(self: ptr ICondition, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetComparisonInfo*: proc( + self: ptr ICondition, + ppszPropertyName: ptr LPWSTR, + pcop: ptr CONDITION_OPERATION, + ppropvar: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + GetValueType*: + proc(self: ptr ICondition, ppszValueTypeName: ptr LPWSTR): HRESULT {.stdcall.} + GetValueNormalization*: + proc(self: ptr ICondition, ppszNormalization: ptr LPWSTR): HRESULT {.stdcall.} + GetInputTerms*: proc( + self: ptr ICondition, + ppPropertyTerm: ptr ptr IRichChunk, + ppOperationTerm: ptr ptr IRichChunk, + ppValueTerm: ptr ptr IRichChunk, + ): HRESULT {.stdcall.} Clone*: proc(self: ptr ICondition, ppc: ptr ptr ICondition): HRESULT {.stdcall.} + ICondition2* {.pure.} = object lpVtbl*: ptr ICondition2Vtbl + ICondition2Vtbl* {.pure, inheritable.} = object of IConditionVtbl - GetLocale*: proc(self: ptr ICondition2, ppszLocaleName: ptr LPWSTR): HRESULT {.stdcall.} - GetLeafConditionInfo*: proc(self: ptr ICondition2, ppropkey: ptr PROPERTYKEY, pcop: ptr CONDITION_OPERATION, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} + GetLocale*: + proc(self: ptr ICondition2, ppszLocaleName: ptr LPWSTR): HRESULT {.stdcall.} + GetLeafConditionInfo*: proc( + self: ptr ICondition2, + ppropkey: ptr PROPERTYKEY, + pcop: ptr CONDITION_OPERATION, + ppropvar: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + IInitializeWithFile* {.pure.} = object lpVtbl*: ptr IInitializeWithFileVtbl + IInitializeWithFileVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeWithFile, pszFilePath: LPCWSTR, grfMode: DWORD): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IInitializeWithFile, pszFilePath: LPCWSTR, grfMode: DWORD + ): HRESULT {.stdcall.} + IInitializeWithStream* {.pure.} = object lpVtbl*: ptr IInitializeWithStreamVtbl + IInitializeWithStreamVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeWithStream, pstream: ptr IStream, grfMode: DWORD): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IInitializeWithStream, pstream: ptr IStream, grfMode: DWORD + ): HRESULT {.stdcall.} + INamedPropertyStore* {.pure.} = object lpVtbl*: ptr INamedPropertyStoreVtbl + INamedPropertyStoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetNamedValue*: proc(self: ptr INamedPropertyStore, pszName: LPCWSTR, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - SetNamedValue*: proc(self: ptr INamedPropertyStore, pszName: LPCWSTR, propvar: REFPROPVARIANT): HRESULT {.stdcall.} - GetNameCount*: proc(self: ptr INamedPropertyStore, pdwCount: ptr DWORD): HRESULT {.stdcall.} - GetNameAt*: proc(self: ptr INamedPropertyStore, iProp: DWORD, pbstrName: ptr BSTR): HRESULT {.stdcall.} + GetNamedValue*: proc( + self: ptr INamedPropertyStore, pszName: LPCWSTR, ppropvar: ptr PROPVARIANT + ): HRESULT {.stdcall.} + SetNamedValue*: proc( + self: ptr INamedPropertyStore, pszName: LPCWSTR, propvar: REFPROPVARIANT + ): HRESULT {.stdcall.} + GetNameCount*: + proc(self: ptr INamedPropertyStore, pdwCount: ptr DWORD): HRESULT {.stdcall.} + GetNameAt*: proc( + self: ptr INamedPropertyStore, iProp: DWORD, pbstrName: ptr BSTR + ): HRESULT {.stdcall.} + IObjectWithPropertyKey* {.pure.} = object lpVtbl*: ptr IObjectWithPropertyKeyVtbl + IObjectWithPropertyKeyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetPropertyKey*: proc(self: ptr IObjectWithPropertyKey, key: REFPROPERTYKEY): HRESULT {.stdcall.} - GetPropertyKey*: proc(self: ptr IObjectWithPropertyKey, pkey: ptr PROPERTYKEY): HRESULT {.stdcall.} + SetPropertyKey*: + proc(self: ptr IObjectWithPropertyKey, key: REFPROPERTYKEY): HRESULT {.stdcall.} + GetPropertyKey*: + proc(self: ptr IObjectWithPropertyKey, pkey: ptr PROPERTYKEY): HRESULT {.stdcall.} + IPropertyChange* {.pure.} = object lpVtbl*: ptr IPropertyChangeVtbl + IPropertyChangeVtbl* {.pure, inheritable.} = object of IObjectWithPropertyKeyVtbl - ApplyToPropVariant*: proc(self: ptr IPropertyChange, propvarIn: REFPROPVARIANT, ppropvarOut: ptr PROPVARIANT): HRESULT {.stdcall.} + ApplyToPropVariant*: proc( + self: ptr IPropertyChange, propvarIn: REFPROPVARIANT, ppropvarOut: ptr PROPVARIANT + ): HRESULT {.stdcall.} + IPropertyChangeArray* {.pure.} = object lpVtbl*: ptr IPropertyChangeArrayVtbl + IPropertyChangeArrayVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCount*: proc(self: ptr IPropertyChangeArray, pcOperations: ptr UINT): HRESULT {.stdcall.} - GetAt*: proc(self: ptr IPropertyChangeArray, iIndex: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - InsertAt*: proc(self: ptr IPropertyChangeArray, iIndex: UINT, ppropChange: ptr IPropertyChange): HRESULT {.stdcall.} - Append*: proc(self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange): HRESULT {.stdcall.} - AppendOrReplace*: proc(self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange): HRESULT {.stdcall.} + GetCount*: + proc(self: ptr IPropertyChangeArray, pcOperations: ptr UINT): HRESULT {.stdcall.} + GetAt*: proc( + self: ptr IPropertyChangeArray, iIndex: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + InsertAt*: proc( + self: ptr IPropertyChangeArray, iIndex: UINT, ppropChange: ptr IPropertyChange + ): HRESULT {.stdcall.} + Append*: proc( + self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange + ): HRESULT {.stdcall.} + AppendOrReplace*: proc( + self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange + ): HRESULT {.stdcall.} RemoveAt*: proc(self: ptr IPropertyChangeArray, iIndex: UINT): HRESULT {.stdcall.} - IsKeyInArray*: proc(self: ptr IPropertyChangeArray, key: REFPROPERTYKEY): HRESULT {.stdcall.} + IsKeyInArray*: + proc(self: ptr IPropertyChangeArray, key: REFPROPERTYKEY): HRESULT {.stdcall.} + IPropertyStoreCapabilities* {.pure.} = object lpVtbl*: ptr IPropertyStoreCapabilitiesVtbl + IPropertyStoreCapabilitiesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IsPropertyWritable*: proc(self: ptr IPropertyStoreCapabilities, key: REFPROPERTYKEY): HRESULT {.stdcall.} + IsPropertyWritable*: proc( + self: ptr IPropertyStoreCapabilities, key: REFPROPERTYKEY + ): HRESULT {.stdcall.} + IPropertyStoreCache* {.pure.} = object lpVtbl*: ptr IPropertyStoreCacheVtbl + IPropertyStoreCacheVtbl* {.pure, inheritable.} = object of IPropertyStoreVtbl - GetState*: proc(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, pstate: ptr PSC_STATE): HRESULT {.stdcall.} - GetValueAndState*: proc(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT, pstate: ptr PSC_STATE): HRESULT {.stdcall.} - SetState*: proc(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, state: PSC_STATE): HRESULT {.stdcall.} - SetValueAndState*: proc(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT, state: PSC_STATE): HRESULT {.stdcall.} + GetState*: proc( + self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, pstate: ptr PSC_STATE + ): HRESULT {.stdcall.} + GetValueAndState*: proc( + self: ptr IPropertyStoreCache, + key: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, + pstate: ptr PSC_STATE, + ): HRESULT {.stdcall.} + SetState*: proc( + self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, state: PSC_STATE + ): HRESULT {.stdcall.} + SetValueAndState*: proc( + self: ptr IPropertyStoreCache, + key: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, + state: PSC_STATE, + ): HRESULT {.stdcall.} + IPropertyEnumType* {.pure.} = object lpVtbl*: ptr IPropertyEnumTypeVtbl + IPropertyEnumTypeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetEnumType*: proc(self: ptr IPropertyEnumType, penumtype: ptr PROPENUMTYPE): HRESULT {.stdcall.} - GetValue*: proc(self: ptr IPropertyEnumType, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - GetRangeMinValue*: proc(self: ptr IPropertyEnumType, ppropvarMin: ptr PROPVARIANT): HRESULT {.stdcall.} - GetRangeSetValue*: proc(self: ptr IPropertyEnumType, ppropvarSet: ptr PROPVARIANT): HRESULT {.stdcall.} - GetDisplayText*: proc(self: ptr IPropertyEnumType, ppszDisplay: ptr LPWSTR): HRESULT {.stdcall.} + GetEnumType*: proc( + self: ptr IPropertyEnumType, penumtype: ptr PROPENUMTYPE + ): HRESULT {.stdcall.} + GetValue*: + proc(self: ptr IPropertyEnumType, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} + GetRangeMinValue*: proc( + self: ptr IPropertyEnumType, ppropvarMin: ptr PROPVARIANT + ): HRESULT {.stdcall.} + GetRangeSetValue*: proc( + self: ptr IPropertyEnumType, ppropvarSet: ptr PROPVARIANT + ): HRESULT {.stdcall.} + GetDisplayText*: + proc(self: ptr IPropertyEnumType, ppszDisplay: ptr LPWSTR): HRESULT {.stdcall.} + IPropertyEnumType2* {.pure.} = object lpVtbl*: ptr IPropertyEnumType2Vtbl + IPropertyEnumType2Vtbl* {.pure, inheritable.} = object of IPropertyEnumTypeVtbl - GetImageReference*: proc(self: ptr IPropertyEnumType2, ppszImageRes: ptr LPWSTR): HRESULT {.stdcall.} + GetImageReference*: + proc(self: ptr IPropertyEnumType2, ppszImageRes: ptr LPWSTR): HRESULT {.stdcall.} + IPropertyEnumTypeList* {.pure.} = object lpVtbl*: ptr IPropertyEnumTypeListVtbl + IPropertyEnumTypeListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCount*: proc(self: ptr IPropertyEnumTypeList, pctypes: ptr UINT): HRESULT {.stdcall.} - GetAt*: proc(self: ptr IPropertyEnumTypeList, itype: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetConditionAt*: proc(self: ptr IPropertyEnumTypeList, nIndex: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - FindMatchingIndex*: proc(self: ptr IPropertyEnumTypeList, propvarCmp: REFPROPVARIANT, pnIndex: ptr UINT): HRESULT {.stdcall.} + GetCount*: + proc(self: ptr IPropertyEnumTypeList, pctypes: ptr UINT): HRESULT {.stdcall.} + GetAt*: proc( + self: ptr IPropertyEnumTypeList, itype: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetConditionAt*: proc( + self: ptr IPropertyEnumTypeList, nIndex: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + FindMatchingIndex*: proc( + self: ptr IPropertyEnumTypeList, propvarCmp: REFPROPVARIANT, pnIndex: ptr UINT + ): HRESULT {.stdcall.} + IPropertyDescription* {.pure.} = object lpVtbl*: ptr IPropertyDescriptionVtbl + IPropertyDescriptionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPropertyKey*: proc(self: ptr IPropertyDescription, pkey: ptr PROPERTYKEY): HRESULT {.stdcall.} - GetCanonicalName*: proc(self: ptr IPropertyDescription, ppszName: ptr LPWSTR): HRESULT {.stdcall.} - GetPropertyType*: proc(self: ptr IPropertyDescription, pvartype: ptr VARTYPE): HRESULT {.stdcall.} - GetDisplayName*: proc(self: ptr IPropertyDescription, ppszName: ptr LPWSTR): HRESULT {.stdcall.} - GetEditInvitation*: proc(self: ptr IPropertyDescription, ppszInvite: ptr LPWSTR): HRESULT {.stdcall.} - GetTypeFlags*: proc(self: ptr IPropertyDescription, mask: PROPDESC_TYPE_FLAGS, ppdtFlags: ptr PROPDESC_TYPE_FLAGS): HRESULT {.stdcall.} - GetViewFlags*: proc(self: ptr IPropertyDescription, ppdvFlags: ptr PROPDESC_VIEW_FLAGS): HRESULT {.stdcall.} - GetDefaultColumnWidth*: proc(self: ptr IPropertyDescription, pcxChars: ptr UINT): HRESULT {.stdcall.} - GetDisplayType*: proc(self: ptr IPropertyDescription, pdisplaytype: ptr PROPDESC_DISPLAYTYPE): HRESULT {.stdcall.} - GetColumnState*: proc(self: ptr IPropertyDescription, pcsFlags: ptr SHCOLSTATEF): HRESULT {.stdcall.} - GetGroupingRange*: proc(self: ptr IPropertyDescription, pgr: ptr PROPDESC_GROUPING_RANGE): HRESULT {.stdcall.} - GetRelativeDescriptionType*: proc(self: ptr IPropertyDescription, prdt: ptr PROPDESC_RELATIVEDESCRIPTION_TYPE): HRESULT {.stdcall.} - GetRelativeDescription*: proc(self: ptr IPropertyDescription, propvar1: REFPROPVARIANT, propvar2: REFPROPVARIANT, ppszDesc1: ptr LPWSTR, ppszDesc2: ptr LPWSTR): HRESULT {.stdcall.} - GetSortDescription*: proc(self: ptr IPropertyDescription, psd: ptr PROPDESC_SORTDESCRIPTION): HRESULT {.stdcall.} - GetSortDescriptionLabel*: proc(self: ptr IPropertyDescription, fDescending: WINBOOL, ppszDescription: ptr LPWSTR): HRESULT {.stdcall.} - GetAggregationType*: proc(self: ptr IPropertyDescription, paggtype: ptr PROPDESC_AGGREGATION_TYPE): HRESULT {.stdcall.} - GetConditionType*: proc(self: ptr IPropertyDescription, pcontype: ptr PROPDESC_CONDITION_TYPE, popDefault: ptr CONDITION_OPERATION): HRESULT {.stdcall.} - GetEnumTypeList*: proc(self: ptr IPropertyDescription, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - CoerceToCanonicalValue*: proc(self: ptr IPropertyDescription, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - FormatForDisplay*: proc(self: ptr IPropertyDescription, propvar: REFPROPVARIANT, pdfFlags: PROPDESC_FORMAT_FLAGS, ppszDisplay: ptr LPWSTR): HRESULT {.stdcall.} - IsValueCanonical*: proc(self: ptr IPropertyDescription, propvar: REFPROPVARIANT): HRESULT {.stdcall.} + GetPropertyKey*: + proc(self: ptr IPropertyDescription, pkey: ptr PROPERTYKEY): HRESULT {.stdcall.} + GetCanonicalName*: + proc(self: ptr IPropertyDescription, ppszName: ptr LPWSTR): HRESULT {.stdcall.} + GetPropertyType*: + proc(self: ptr IPropertyDescription, pvartype: ptr VARTYPE): HRESULT {.stdcall.} + GetDisplayName*: + proc(self: ptr IPropertyDescription, ppszName: ptr LPWSTR): HRESULT {.stdcall.} + GetEditInvitation*: + proc(self: ptr IPropertyDescription, ppszInvite: ptr LPWSTR): HRESULT {.stdcall.} + GetTypeFlags*: proc( + self: ptr IPropertyDescription, + mask: PROPDESC_TYPE_FLAGS, + ppdtFlags: ptr PROPDESC_TYPE_FLAGS, + ): HRESULT {.stdcall.} + GetViewFlags*: proc( + self: ptr IPropertyDescription, ppdvFlags: ptr PROPDESC_VIEW_FLAGS + ): HRESULT {.stdcall.} + GetDefaultColumnWidth*: + proc(self: ptr IPropertyDescription, pcxChars: ptr UINT): HRESULT {.stdcall.} + GetDisplayType*: proc( + self: ptr IPropertyDescription, pdisplaytype: ptr PROPDESC_DISPLAYTYPE + ): HRESULT {.stdcall.} + GetColumnState*: proc( + self: ptr IPropertyDescription, pcsFlags: ptr SHCOLSTATEF + ): HRESULT {.stdcall.} + GetGroupingRange*: proc( + self: ptr IPropertyDescription, pgr: ptr PROPDESC_GROUPING_RANGE + ): HRESULT {.stdcall.} + GetRelativeDescriptionType*: proc( + self: ptr IPropertyDescription, prdt: ptr PROPDESC_RELATIVEDESCRIPTION_TYPE + ): HRESULT {.stdcall.} + GetRelativeDescription*: proc( + self: ptr IPropertyDescription, + propvar1: REFPROPVARIANT, + propvar2: REFPROPVARIANT, + ppszDesc1: ptr LPWSTR, + ppszDesc2: ptr LPWSTR, + ): HRESULT {.stdcall.} + GetSortDescription*: proc( + self: ptr IPropertyDescription, psd: ptr PROPDESC_SORTDESCRIPTION + ): HRESULT {.stdcall.} + GetSortDescriptionLabel*: proc( + self: ptr IPropertyDescription, fDescending: WINBOOL, ppszDescription: ptr LPWSTR + ): HRESULT {.stdcall.} + GetAggregationType*: proc( + self: ptr IPropertyDescription, paggtype: ptr PROPDESC_AGGREGATION_TYPE + ): HRESULT {.stdcall.} + GetConditionType*: proc( + self: ptr IPropertyDescription, + pcontype: ptr PROPDESC_CONDITION_TYPE, + popDefault: ptr CONDITION_OPERATION, + ): HRESULT {.stdcall.} + GetEnumTypeList*: proc( + self: ptr IPropertyDescription, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + CoerceToCanonicalValue*: proc( + self: ptr IPropertyDescription, ppropvar: ptr PROPVARIANT + ): HRESULT {.stdcall.} + FormatForDisplay*: proc( + self: ptr IPropertyDescription, + propvar: REFPROPVARIANT, + pdfFlags: PROPDESC_FORMAT_FLAGS, + ppszDisplay: ptr LPWSTR, + ): HRESULT {.stdcall.} + IsValueCanonical*: + proc(self: ptr IPropertyDescription, propvar: REFPROPVARIANT): HRESULT {.stdcall.} + IPropertyDescription2* {.pure.} = object lpVtbl*: ptr IPropertyDescription2Vtbl + IPropertyDescription2Vtbl* {.pure, inheritable.} = object of IPropertyDescriptionVtbl - GetImageReferenceForValue*: proc(self: ptr IPropertyDescription2, propvar: REFPROPVARIANT, ppszImageRes: ptr LPWSTR): HRESULT {.stdcall.} + GetImageReferenceForValue*: proc( + self: ptr IPropertyDescription2, propvar: REFPROPVARIANT, ppszImageRes: ptr LPWSTR + ): HRESULT {.stdcall.} + IPropertyDescriptionAliasInfo* {.pure.} = object lpVtbl*: ptr IPropertyDescriptionAliasInfoVtbl + IPropertyDescriptionAliasInfoVtbl* {.pure, inheritable.} = object of IPropertyDescriptionVtbl - GetSortByAlias*: proc(self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetAdditionalSortByAliases*: proc(self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetSortByAlias*: proc( + self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetAdditionalSortByAliases*: proc( + self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IPropertyDescriptionSearchInfo* {.pure.} = object lpVtbl*: ptr IPropertyDescriptionSearchInfoVtbl + IPropertyDescriptionSearchInfoVtbl* {.pure, inheritable.} = object of IPropertyDescriptionVtbl - GetSearchInfoFlags*: proc(self: ptr IPropertyDescriptionSearchInfo, ppdsiFlags: ptr PROPDESC_SEARCHINFO_FLAGS): HRESULT {.stdcall.} - GetColumnIndexType*: proc(self: ptr IPropertyDescriptionSearchInfo, ppdciType: ptr PROPDESC_COLUMNINDEX_TYPE): HRESULT {.stdcall.} - GetProjectionString*: proc(self: ptr IPropertyDescriptionSearchInfo, ppszProjection: ptr LPWSTR): HRESULT {.stdcall.} - GetMaxSize*: proc(self: ptr IPropertyDescriptionSearchInfo, pcbMaxSize: ptr UINT): HRESULT {.stdcall.} + GetSearchInfoFlags*: proc( + self: ptr IPropertyDescriptionSearchInfo, + ppdsiFlags: ptr PROPDESC_SEARCHINFO_FLAGS, + ): HRESULT {.stdcall.} + GetColumnIndexType*: proc( + self: ptr IPropertyDescriptionSearchInfo, ppdciType: ptr PROPDESC_COLUMNINDEX_TYPE + ): HRESULT {.stdcall.} + GetProjectionString*: proc( + self: ptr IPropertyDescriptionSearchInfo, ppszProjection: ptr LPWSTR + ): HRESULT {.stdcall.} + GetMaxSize*: proc( + self: ptr IPropertyDescriptionSearchInfo, pcbMaxSize: ptr UINT + ): HRESULT {.stdcall.} + IPropertyDescriptionRelatedPropertyInfo* {.pure.} = object lpVtbl*: ptr IPropertyDescriptionRelatedPropertyInfoVtbl + IPropertyDescriptionRelatedPropertyInfoVtbl* {.pure, inheritable.} = object of IPropertyDescriptionVtbl - GetRelatedProperty*: proc(self: ptr IPropertyDescriptionRelatedPropertyInfo, pszRelationshipName: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetRelatedProperty*: proc( + self: ptr IPropertyDescriptionRelatedPropertyInfo, + pszRelationshipName: LPCWSTR, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IPropertySystem* {.pure.} = object lpVtbl*: ptr IPropertySystemVtbl + IPropertySystemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPropertyDescription*: proc(self: ptr IPropertySystem, propkey: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyDescriptionByName*: proc(self: ptr IPropertySystem, pszCanonicalName: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyDescriptionListFromString*: proc(self: ptr IPropertySystem, pszPropList: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - EnumeratePropertyDescriptions*: proc(self: ptr IPropertySystem, filterOn: PROPDESC_ENUMFILTER, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - FormatForDisplay*: proc(self: ptr IPropertySystem, key: REFPROPERTYKEY, propvar: REFPROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, pszText: LPWSTR, cchText: DWORD): HRESULT {.stdcall.} - FormatForDisplayAlloc*: proc(self: ptr IPropertySystem, key: REFPROPERTYKEY, propvar: REFPROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, ppszDisplay: ptr LPWSTR): HRESULT {.stdcall.} - RegisterPropertySchema*: proc(self: ptr IPropertySystem, pszPath: LPCWSTR): HRESULT {.stdcall.} - UnregisterPropertySchema*: proc(self: ptr IPropertySystem, pszPath: LPCWSTR): HRESULT {.stdcall.} + GetPropertyDescription*: proc( + self: ptr IPropertySystem, propkey: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetPropertyDescriptionByName*: proc( + self: ptr IPropertySystem, + pszCanonicalName: LPCWSTR, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyDescriptionListFromString*: proc( + self: ptr IPropertySystem, pszPropList: LPCWSTR, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + EnumeratePropertyDescriptions*: proc( + self: ptr IPropertySystem, + filterOn: PROPDESC_ENUMFILTER, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + FormatForDisplay*: proc( + self: ptr IPropertySystem, + key: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + pdff: PROPDESC_FORMAT_FLAGS, + pszText: LPWSTR, + cchText: DWORD, + ): HRESULT {.stdcall.} + FormatForDisplayAlloc*: proc( + self: ptr IPropertySystem, + key: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + pdff: PROPDESC_FORMAT_FLAGS, + ppszDisplay: ptr LPWSTR, + ): HRESULT {.stdcall.} + RegisterPropertySchema*: + proc(self: ptr IPropertySystem, pszPath: LPCWSTR): HRESULT {.stdcall.} + UnregisterPropertySchema*: + proc(self: ptr IPropertySystem, pszPath: LPCWSTR): HRESULT {.stdcall.} RefreshPropertySchema*: proc(self: ptr IPropertySystem): HRESULT {.stdcall.} + IPropertyDescriptionList* {.pure.} = object lpVtbl*: ptr IPropertyDescriptionListVtbl + IPropertyDescriptionListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCount*: proc(self: ptr IPropertyDescriptionList, pcElem: ptr UINT): HRESULT {.stdcall.} - GetAt*: proc(self: ptr IPropertyDescriptionList, iElem: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetCount*: + proc(self: ptr IPropertyDescriptionList, pcElem: ptr UINT): HRESULT {.stdcall.} + GetAt*: proc( + self: ptr IPropertyDescriptionList, iElem: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IPropertyStoreFactory* {.pure.} = object lpVtbl*: ptr IPropertyStoreFactoryVtbl + IPropertyStoreFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPropertyStore*: proc(self: ptr IPropertyStoreFactory, flags: GETPROPERTYSTOREFLAGS, pUnkFactory: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyStoreForKeys*: proc(self: ptr IPropertyStoreFactory, rgKeys: ptr PROPERTYKEY, cKeys: UINT, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetPropertyStore*: proc( + self: ptr IPropertyStoreFactory, + flags: GETPROPERTYSTOREFLAGS, + pUnkFactory: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyStoreForKeys*: proc( + self: ptr IPropertyStoreFactory, + rgKeys: ptr PROPERTYKEY, + cKeys: UINT, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IDelayedPropertyStoreFactory* {.pure.} = object lpVtbl*: ptr IDelayedPropertyStoreFactoryVtbl + IDelayedPropertyStoreFactoryVtbl* {.pure, inheritable.} = object of IPropertyStoreFactoryVtbl - GetDelayedPropertyStore*: proc(self: ptr IDelayedPropertyStoreFactory, flags: GETPROPERTYSTOREFLAGS, dwStoreId: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetDelayedPropertyStore*: proc( + self: ptr IDelayedPropertyStoreFactory, + flags: GETPROPERTYSTOREFLAGS, + dwStoreId: DWORD, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IPersistSerializedPropStorage* {.pure.} = object lpVtbl*: ptr IPersistSerializedPropStorageVtbl + IPersistSerializedPropStorageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetFlags*: proc(self: ptr IPersistSerializedPropStorage, flags: PERSIST_SPROPSTORE_FLAGS): HRESULT {.stdcall.} - SetPropertyStorage*: proc(self: ptr IPersistSerializedPropStorage, psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD): HRESULT {.stdcall.} - GetPropertyStorage*: proc(self: ptr IPersistSerializedPropStorage, ppsps: ptr ptr SERIALIZEDPROPSTORAGE, pcb: ptr DWORD): HRESULT {.stdcall.} + SetFlags*: proc( + self: ptr IPersistSerializedPropStorage, flags: PERSIST_SPROPSTORE_FLAGS + ): HRESULT {.stdcall.} + SetPropertyStorage*: proc( + self: ptr IPersistSerializedPropStorage, psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD + ): HRESULT {.stdcall.} + GetPropertyStorage*: proc( + self: ptr IPersistSerializedPropStorage, + ppsps: ptr ptr SERIALIZEDPROPSTORAGE, + pcb: ptr DWORD, + ): HRESULT {.stdcall.} + IPersistSerializedPropStorage2* {.pure.} = object lpVtbl*: ptr IPersistSerializedPropStorage2Vtbl + IPersistSerializedPropStorage2Vtbl* {.pure, inheritable.} = object of IPersistSerializedPropStorageVtbl - GetPropertyStorageSize*: proc(self: ptr IPersistSerializedPropStorage2, pcb: ptr DWORD): HRESULT {.stdcall.} - GetPropertyStorageBuffer*: proc(self: ptr IPersistSerializedPropStorage2, psps: ptr SERIALIZEDPROPSTORAGE, cb: DWORD, pcbWritten: ptr DWORD): HRESULT {.stdcall.} + GetPropertyStorageSize*: proc( + self: ptr IPersistSerializedPropStorage2, pcb: ptr DWORD + ): HRESULT {.stdcall.} + GetPropertyStorageBuffer*: proc( + self: ptr IPersistSerializedPropStorage2, + psps: ptr SERIALIZEDPROPSTORAGE, + cb: DWORD, + pcbWritten: ptr DWORD, + ): HRESULT {.stdcall.} + IPropertySystemChangeNotify* {.pure.} = object lpVtbl*: ptr IPropertySystemChangeNotifyVtbl + IPropertySystemChangeNotifyVtbl* {.pure, inheritable.} = object of IUnknownVtbl SchemaRefreshed*: proc(self: ptr IPropertySystemChangeNotify): HRESULT {.stdcall.} + ICreateObject* {.pure.} = object lpVtbl*: ptr ICreateObjectVtbl + ICreateObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateObject*: proc(self: ptr ICreateObject, clsid: REFCLSID, pUnkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} -proc SysAllocString*(P1: ptr OLECHAR): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SysReAllocString*(P1: ptr BSTR, P2: ptr OLECHAR): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SysAllocStringLen*(P1: ptr OLECHAR, P2: UINT): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SysReAllocStringLen*(P1: ptr BSTR, P2: ptr OLECHAR, P3: UINT): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + CreateObject*: proc( + self: ptr ICreateObject, + clsid: REFCLSID, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + +proc SysAllocString*( + P1: ptr OLECHAR +): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SysReAllocString*( + P1: ptr BSTR, P2: ptr OLECHAR +): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SysAllocStringLen*( + P1: ptr OLECHAR, P2: UINT +): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SysReAllocStringLen*( + P1: ptr BSTR, P2: ptr OLECHAR, P3: UINT +): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + proc SysFreeString*(P1: BSTR): void {.winapi, stdcall, dynlib: "oleaut32", importc.} proc SysStringLen*(P1: BSTR): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SysStringByteLen*(bstr: BSTR): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SysAllocStringByteLen*(psz: LPCSTR, len: UINT): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc DosDateTimeToVariantTime*(wDosDate: USHORT, wDosTime: USHORT, pvtime: ptr DOUBLE): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantTimeToDosDateTime*(vtime: DOUBLE, pwDosDate: ptr USHORT, pwDosTime: ptr USHORT): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SystemTimeToVariantTime*(lpSystemTime: LPSYSTEMTIME, pvtime: ptr DOUBLE): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantTimeToSystemTime*(vtime: DOUBLE, lpSystemTime: LPSYSTEMTIME): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayAllocDescriptor*(cDims: UINT, ppsaOut: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayAllocDescriptorEx*(vt: VARTYPE, cDims: UINT, ppsaOut: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayAllocData*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayCreate*(vt: VARTYPE, cDims: UINT, rgsabound: ptr SAFEARRAYBOUND): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayCreateEx*(vt: VARTYPE, cDims: UINT, rgsabound: ptr SAFEARRAYBOUND, pvExtra: PVOID): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayCopyData*(psaSource: ptr SAFEARRAY, psaTarget: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayDestroyDescriptor*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayDestroyData*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayDestroy*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayRedim*(psa: ptr SAFEARRAY, psaboundNew: ptr SAFEARRAYBOUND): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetDim*(psa: ptr SAFEARRAY): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetElemsize*(psa: ptr SAFEARRAY): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetUBound*(psa: ptr SAFEARRAY, nDim: UINT, plUbound: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetLBound*(psa: ptr SAFEARRAY, nDim: UINT, plLbound: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayLock*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayUnlock*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayAccessData*(psa: ptr SAFEARRAY, ppvData: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayUnaccessData*(psa: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetElement*(psa: ptr SAFEARRAY, rgIndices: ptr LONG, pv: pointer): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayPutElement*(psa: ptr SAFEARRAY, rgIndices: ptr LONG, pv: pointer): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayCopy*(psa: ptr SAFEARRAY, ppsaOut: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayPtrOfIndex*(psa: ptr SAFEARRAY, rgIndices: ptr LONG, ppvData: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArraySetRecordInfo*(psa: ptr SAFEARRAY, prinfo: ptr IRecordInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetRecordInfo*(psa: ptr SAFEARRAY, prinfo: ptr ptr IRecordInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArraySetIID*(psa: ptr SAFEARRAY, guid: REFGUID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetIID*(psa: ptr SAFEARRAY, pguid: ptr GUID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayGetVartype*(psa: ptr SAFEARRAY, pvt: ptr VARTYPE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayCreateVector*(vt: VARTYPE, lLbound: LONG, cElements: ULONG): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SafeArrayCreateVectorEx*(vt: VARTYPE, lLbound: LONG, cElements: ULONG, pvExtra: PVOID): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantInit*(pvarg: ptr VARIANTARG): void {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantClear*(pvarg: ptr VARIANTARG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantCopy*(pvargDest: ptr VARIANTARG, pvargSrc: ptr VARIANTARG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantCopyInd*(pvarDest: ptr VARIANT, pvargSrc: ptr VARIANTARG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantChangeType*(pvargDest: ptr VARIANTARG, pvarSrc: ptr VARIANTARG, wFlags: USHORT, vt: VARTYPE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VariantChangeTypeEx*(pvargDest: ptr VARIANTARG, pvarSrc: ptr VARIANTARG, lcid: LCID, wFlags: USHORT, vt: VARTYPE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VectorFromBstr*(bstr: BSTR, ppsa: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc BstrFromVector*(psa: ptr SAFEARRAY, pbstr: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromI2*(sIn: SHORT, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromI4*(lIn: LONG, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromI8*(i64In: LONG64, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromR4*(fltIn: FLOAT, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromR8*(dblIn: DOUBLE, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromCy*(cyIn: CY, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromDate*(dateIn: DATE, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromBool*(boolIn: VARIANT_BOOL, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromI1*(cIn: CHAR, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromUI2*(uiIn: USHORT, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromUI4*(ulIn: ULONG, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromUI8*(ui64In: ULONG64, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromDec*(pdecIn: ptr DECIMAL, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromUI1*(bIn: BYTE, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromI4*(lIn: LONG, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromI8*(i64In: LONG64, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromR4*(fltIn: FLOAT, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromR8*(dblIn: DOUBLE, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromCy*(cyIn: CY, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromDate*(dateIn: DATE, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromBool*(boolIn: VARIANT_BOOL, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromI1*(cIn: CHAR, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromUI2*(uiIn: USHORT, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromUI4*(ulIn: ULONG, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromUI8*(ui64In: ULONG64, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI2FromDec*(pdecIn: ptr DECIMAL, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromUI1*(bIn: BYTE, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromI2*(sIn: SHORT, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromI8*(i64In: LONG64, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromR4*(fltIn: FLOAT, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromR8*(dblIn: DOUBLE, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromCy*(cyIn: CY, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromDate*(dateIn: DATE, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromBool*(boolIn: VARIANT_BOOL, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromI1*(cIn: CHAR, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromUI2*(uiIn: USHORT, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromUI4*(ulIn: ULONG, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromUI8*(ui64In: ULONG64, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI4FromDec*(pdecIn: ptr DECIMAL, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromUI1*(bIn: BYTE, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromI2*(sIn: SHORT, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromR4*(fltIn: FLOAT, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromR8*(dblIn: DOUBLE, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromCy*(cyIn: CY, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromDate*(dateIn: DATE, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: int32, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromBool*(boolIn: VARIANT_BOOL, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromI1*(cIn: CHAR, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromUI2*(uiIn: USHORT, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromUI4*(ulIn: ULONG, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromUI8*(ui64In: ULONG64, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI8FromDec*(pdecIn: ptr DECIMAL, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromUI1*(bIn: BYTE, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromI2*(sIn: SHORT, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromI4*(lIn: LONG, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromI8*(i64In: LONG64, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromR8*(dblIn: DOUBLE, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromCy*(cyIn: CY, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromDate*(dateIn: DATE, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromBool*(boolIn: VARIANT_BOOL, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromI1*(cIn: CHAR, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromUI2*(uiIn: USHORT, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromUI4*(ulIn: ULONG, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromUI8*(ui64In: ULONG64, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4FromDec*(pdecIn: ptr DECIMAL, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromUI1*(bIn: BYTE, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromI2*(sIn: SHORT, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromI4*(lIn: LONG, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromI8*(i64In: LONG64, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromR4*(fltIn: FLOAT, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromCy*(cyIn: CY, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromDate*(dateIn: DATE, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromBool*(boolIn: VARIANT_BOOL, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromI1*(cIn: CHAR, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromUI2*(uiIn: USHORT, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromUI4*(ulIn: ULONG, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromUI8*(ui64In: ULONG64, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8FromDec*(pdecIn: ptr DECIMAL, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromUI1*(bIn: BYTE, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromI2*(sIn: SHORT, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromI4*(lIn: LONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromI8*(i64In: LONG64, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromR4*(fltIn: FLOAT, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromR8*(dblIn: DOUBLE, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromCy*(cyIn: CY, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromBool*(boolIn: VARIANT_BOOL, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromI1*(cIn: CHAR, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromUI2*(uiIn: USHORT, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromUI4*(ulIn: ULONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromUI8*(ui64In: ULONG64, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromDec*(pdecIn: ptr DECIMAL, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromUI1*(bIn: BYTE, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromI2*(sIn: SHORT, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromI4*(lIn: LONG, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromI8*(i64In: LONG64, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromR4*(fltIn: FLOAT, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromR8*(dblIn: DOUBLE, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromDate*(dateIn: DATE, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromBool*(boolIn: VARIANT_BOOL, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromI1*(cIn: CHAR, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromUI2*(uiIn: USHORT, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromUI4*(ulIn: ULONG, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromUI8*(ui64In: ULONG64, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFromDec*(pdecIn: ptr DECIMAL, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromUI1*(bVal: BYTE, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromI2*(iVal: SHORT, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromI4*(lIn: LONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromI8*(i64In: LONG64, lcid: LCID, dwFlags: int32, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromR4*(fltIn: FLOAT, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromR8*(dblIn: DOUBLE, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromCy*(cyIn: CY, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromDate*(dateIn: DATE, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromBool*(boolIn: VARIANT_BOOL, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromI1*(cIn: CHAR, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromUI2*(uiIn: USHORT, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromUI4*(ulIn: ULONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromUI8*(ui64In: ULONG64, lcid: LCID, dwFlags: int32, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrFromDec*(pdecIn: ptr DECIMAL, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromUI1*(bIn: BYTE, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromI2*(sIn: SHORT, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromI4*(lIn: LONG, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromI8*(i64In: LONG64, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromR4*(fltIn: FLOAT, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromR8*(dblIn: DOUBLE, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromDate*(dateIn: DATE, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromCy*(cyIn: CY, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromI1*(cIn: CHAR, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromUI2*(uiIn: USHORT, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromUI4*(ulIn: ULONG, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromUI8*(i64In: ULONG64, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBoolFromDec*(pdecIn: ptr DECIMAL, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromUI1*(bIn: BYTE, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromI2*(uiIn: SHORT, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromI4*(lIn: LONG, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromI8*(i64In: LONG64, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromR4*(fltIn: FLOAT, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromR8*(dblIn: DOUBLE, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromDate*(dateIn: DATE, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromCy*(cyIn: CY, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromBool*(boolIn: VARIANT_BOOL, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromUI2*(uiIn: USHORT, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromUI4*(ulIn: ULONG, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromUI8*(i64In: ULONG64, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarI1FromDec*(pdecIn: ptr DECIMAL, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromUI1*(bIn: BYTE, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromI2*(uiIn: SHORT, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromI4*(lIn: LONG, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromI8*(i64In: LONG64, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromR4*(fltIn: FLOAT, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromR8*(dblIn: DOUBLE, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromDate*(dateIn: DATE, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromCy*(cyIn: CY, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromBool*(boolIn: VARIANT_BOOL, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromI1*(cIn: CHAR, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromUI4*(ulIn: ULONG, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromUI8*(i64In: ULONG64, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI2FromDec*(pdecIn: ptr DECIMAL, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromUI1*(bIn: BYTE, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromI2*(uiIn: SHORT, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromI4*(lIn: LONG, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromI8*(i64In: LONG64, plOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromR4*(fltIn: FLOAT, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromR8*(dblIn: DOUBLE, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromDate*(dateIn: DATE, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromCy*(cyIn: CY, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromBool*(boolIn: VARIANT_BOOL, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromI1*(cIn: CHAR, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromUI2*(uiIn: USHORT, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromUI8*(ui64In: ULONG64, plOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI4FromDec*(pdecIn: ptr DECIMAL, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromUI1*(bIn: BYTE, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromI2*(sIn: SHORT, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromI8*(ui64In: LONG64, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromR4*(fltIn: FLOAT, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromR8*(dblIn: DOUBLE, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromCy*(cyIn: CY, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromDate*(dateIn: DATE, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: int32, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromBool*(boolIn: VARIANT_BOOL, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromI1*(cIn: CHAR, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromUI2*(uiIn: USHORT, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromUI4*(ulIn: ULONG, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI8FromDec*(pdecIn: ptr DECIMAL, pi64Out: ptr ULONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromUI1*(bIn: BYTE, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromI2*(uiIn: SHORT, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromI4*(lIn: LONG, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromI8*(i64In: LONG64, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromR4*(fltIn: FLOAT, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromR8*(dblIn: DOUBLE, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromDate*(dateIn: DATE, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromCy*(cyIn: CY, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromBool*(boolIn: VARIANT_BOOL, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromI1*(cIn: CHAR, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromUI2*(uiIn: USHORT, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromUI4*(ulIn: ULONG, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFromUI8*(ui64In: ULONG64, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUI1FromInt*(lIn: LONG, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI1FromI4".} -proc VarUI1FromUint*(ulIn: ULONG, pbOut: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI1FromUI4".} -proc VarI2FromInt*(lIn: LONG, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI2FromI4".} -proc VarI2FromUint*(ulIn: ULONG, psOut: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI2FromUI4".} -proc VarI4FromUint*(ulIn: ULONG, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI4".} -proc VarI8FromUint*(ulIn: ULONG, pi64Out: ptr LONG64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI8FromUI4".} -proc VarR4FromInt*(lIn: LONG, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR4FromI4".} -proc VarR4FromUint*(ulIn: ULONG, pfltOut: ptr FLOAT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR4FromUI4".} -proc VarR8FromInt*(lIn: LONG, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR8FromI4".} -proc VarR8FromUint*(ulIn: ULONG, pdblOut: ptr DOUBLE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR8FromUI4".} -proc VarDateFromInt*(lIn: LONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDateFromI4".} -proc VarDateFromUint*(ulIn: ULONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDateFromUI4".} -proc VarCyFromInt*(lIn: LONG, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarCyFromI4".} -proc VarCyFromUint*(ulIn: ULONG, pcyOut: ptr CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarCyFromUI4".} -proc VarBstrFromInt*(lIn: LONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBstrFromI4".} -proc VarBstrFromUint*(ulIn: ULONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBstrFromUI4".} -proc VarBoolFromInt*(lIn: LONG, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBoolFromI4".} -proc VarBoolFromUint*(ulIn: ULONG, pboolOut: ptr VARIANT_BOOL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBoolFromUI4".} -proc VarI1FromInt*(lIn: LONG, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI1FromI4".} -proc VarI1FromUint*(ulIn: ULONG, pcOut: ptr CHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI1FromUI4".} -proc VarUI2FromInt*(lIn: LONG, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI2FromI4".} -proc VarUI2FromUint*(ulIn: ULONG, puiOut: ptr USHORT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI2FromUI4".} -proc VarUI4FromInt*(lIn: LONG, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI4".} -proc VarDecFromInt*(lIn: LONG, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDecFromI4".} -proc VarDecFromUint*(ulIn: ULONG, pdecOut: ptr DECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDecFromUI4".} -proc VarIntFromUI1*(bIn: BYTE, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI1".} -proc VarIntFromI2*(sIn: SHORT, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromI2".} -proc VarIntFromI8*(i64In: LONG64, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromI8".} -proc VarIntFromR4*(fltIn: FLOAT, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromR4".} -proc VarIntFromR8*(dblIn: DOUBLE, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromR8".} -proc VarIntFromDate*(dateIn: DATE, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromDate".} -proc VarIntFromCy*(cyIn: CY, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromCy".} -proc VarIntFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromStr".} -proc VarIntFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromDisp".} -proc VarIntFromBool*(boolIn: VARIANT_BOOL, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromBool".} -proc VarIntFromI1*(cIn: CHAR, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromI1".} -proc VarIntFromUI2*(uiIn: USHORT, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI2".} -proc VarIntFromUI4*(ulIn: ULONG, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI4".} -proc VarIntFromUI8*(ui64In: ULONG64, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI8".} -proc VarIntFromDec*(pdecIn: ptr DECIMAL, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromDec".} -proc VarIntFromUint*(ulIn: ULONG, plOut: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI4".} -proc VarUintFromUI1*(bIn: BYTE, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromUI1".} -proc VarUintFromI2*(uiIn: SHORT, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI2".} -proc VarUintFromI4*(lIn: LONG, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI4".} -proc VarUintFromI8*(i64In: LONG64, plOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI8".} -proc VarUintFromR4*(fltIn: FLOAT, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromR4".} -proc VarUintFromR8*(dblIn: DOUBLE, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromR8".} -proc VarUintFromDate*(dateIn: DATE, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromDate".} -proc VarUintFromCy*(cyIn: CY, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromCy".} -proc VarUintFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromStr".} -proc VarUintFromDisp*(pdispIn: ptr IDispatch, lcid: LCID, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromDisp".} -proc VarUintFromBool*(boolIn: VARIANT_BOOL, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromBool".} -proc VarUintFromI1*(cIn: CHAR, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI1".} -proc VarUintFromUI2*(uiIn: USHORT, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromUI2".} -proc VarUintFromUI8*(ui64In: ULONG64, plOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromUI8".} -proc VarUintFromDec*(pdecIn: ptr DECIMAL, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromDec".} -proc VarUintFromInt*(lIn: LONG, pulOut: ptr ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI4".} -proc VarParseNumFromStr*(strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pnumprs: ptr NUMPARSE, rgbDig: ptr BYTE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarNumFromParseNum*(pnumprs: ptr NUMPARSE, rgbDig: ptr BYTE, dwVtBits: ULONG, pvar: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarAdd*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarAnd*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCat*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDiv*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarEqv*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarIdiv*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarImp*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarMod*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarMul*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarOr*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarPow*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarSub*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarXor*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarAbs*(pvarIn: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFix*(pvarIn: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarInt*(pvarIn: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarNeg*(pvarIn: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarNot*(pvarIn: LPVARIANT, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarRound*(pvarIn: LPVARIANT, cDecimals: int32, pvarResult: LPVARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCmp*(pvarLeft: LPVARIANT, pvarRight: LPVARIANT, lcid: LCID, dwFlags: ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecAdd*(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecDiv*(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecMul*(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecSub*(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecAbs*(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecFix*(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecInt*(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecNeg*(pdecIn: LPDECIMAL, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecRound*(pdecIn: LPDECIMAL, cDecimals: int32, pdecResult: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecCmp*(pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDecCmpR8*(pdecLeft: LPDECIMAL, dblRight: float64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyAdd*(cyLeft: CY, cyRight: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyMul*(cyLeft: CY, cyRight: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyMulI4*(cyLeft: CY, lRight: int32, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyMulI8*(cyLeft: CY, lRight: LONG64, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCySub*(cyLeft: CY, cyRight: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyAbs*(cyIn: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyFix*(cyIn: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyInt*(cyIn: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyNeg*(cyIn: CY, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyRound*(cyIn: CY, cDecimals: int32, pcyResult: LPCY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyCmp*(cyLeft: CY, cyRight: CY): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarCyCmpR8*(cyLeft: CY, dblRight: float64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrCat*(bstrLeft: BSTR, bstrRight: BSTR, pbstrResult: LPBSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarBstrCmp*(bstrLeft: BSTR, bstrRight: BSTR, lcid: LCID, dwFlags: ULONG): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8Pow*(dblLeft: float64, dblRight: float64, pdblResult: ptr float64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR4CmpR8*(fltLeft: float32, dblRight: float64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarR8Round*(dblIn: float64, cDecimals: int32, pdblResult: ptr float64): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromUdate*(pudateIn: ptr UDATE, dwFlags: ULONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarDateFromUdateEx*(pudateIn: ptr UDATE, lcid: LCID, dwFlags: ULONG, pdateOut: ptr DATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarUdateFromDate*(dateIn: DATE, dwFlags: ULONG, pudateOut: ptr UDATE): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc GetAltMonthNames*(lcid: LCID, prgp: ptr ptr LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFormat*(pvarIn: LPVARIANT, pstrFormat: LPOLESTR, iFirstDay: int32, iFirstWeek: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFormatDateTime*(pvarIn: LPVARIANT, iNamedFormat: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFormatNumber*(pvarIn: LPVARIANT, iNumDig: int32, iIncLead: int32, iUseParens: int32, iGroup: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFormatPercent*(pvarIn: LPVARIANT, iNumDig: int32, iIncLead: int32, iUseParens: int32, iGroup: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFormatCurrency*(pvarIn: LPVARIANT, iNumDig: int32, iIncLead: int32, iUseParens: int32, iGroup: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarWeekdayName*(iWeekday: int32, fAbbrev: int32, iFirstDay: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarMonthName*(iMonth: int32, fAbbrev: int32, dwFlags: ULONG, pbstrOut: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarFormatFromTokens*(pvarIn: LPVARIANT, pstrFormat: LPOLESTR, pbTokCur: LPBYTE, dwFlags: ULONG, pbstrOut: ptr BSTR, lcid: LCID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc VarTokenizeFormatString*(pstrFormat: LPOLESTR, rgbTok: LPBYTE, cbTok: int32, iFirstDay: int32, iFirstWeek: int32, lcid: LCID, pcbActual: ptr int32): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc LHashValOfNameSysA*(syskind: SYSKIND, lcid: LCID, szName: LPCSTR): ULONG {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc LHashValOfNameSys*(syskind: SYSKIND, lcid: LCID, szName: ptr OLECHAR): ULONG {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc LoadTypeLib*(szFile: ptr OLECHAR, pptlib: ptr ptr ITypeLib): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc LoadTypeLibEx*(szFile: LPCOLESTR, regkind: REGKIND, pptlib: ptr ptr ITypeLib): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc LoadRegTypeLib*(rguid: REFGUID, wVerMajor: WORD, wVerMinor: WORD, lcid: LCID, pptlib: ptr ptr ITypeLib): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc QueryPathOfRegTypeLib*(guid: REFGUID, wMaj: USHORT, wMin: USHORT, lcid: LCID, lpbstrPathName: LPBSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc RegisterTypeLib*(ptlib: ptr ITypeLib, szFullPath: ptr OLECHAR, szHelpDir: ptr OLECHAR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc UnRegisterTypeLib*(libID: REFGUID, wVerMajor: WORD, wVerMinor: WORD, lcid: LCID, syskind: SYSKIND): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc CreateTypeLib*(syskind: SYSKIND, szFile: ptr OLECHAR, ppctlib: ptr ptr ICreateTypeLib): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc CreateTypeLib2*(syskind: SYSKIND, szFile: LPCOLESTR, ppctlib: ptr ptr ICreateTypeLib2): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc DispGetParam*(pdispparams: ptr DISPPARAMS, position: UINT, vtTarg: VARTYPE, pvarResult: ptr VARIANT, puArgErr: ptr UINT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc DispGetIDsOfNames*(ptinfo: ptr ITypeInfo, rgszNames: ptr ptr OLECHAR, cNames: UINT, rgdispid: ptr DISPID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc DispInvoke*(this: pointer, ptinfo: ptr ITypeInfo, dispidMember: DISPID, wFlags: WORD, pparams: ptr DISPPARAMS, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc CreateDispTypeInfo*(pidata: ptr INTERFACEDATA, lcid: LCID, pptinfo: ptr ptr ITypeInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc CreateStdDispatch*(punkOuter: ptr IUnknown, pvThis: pointer, ptinfo: ptr ITypeInfo, ppunkStdDisp: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc DispCallFunc*(pvInstance: pointer, oVft: ULONG_PTR, cc: CALLCONV, vtReturn: VARTYPE, cActuals: UINT, prgvt: ptr VARTYPE, prgpvarg: ptr ptr VARIANTARG, pvargResult: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc RegisterActiveObject*(punk: ptr IUnknown, rclsid: REFCLSID, dwFlags: DWORD, pdwRegister: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc RevokeActiveObject*(dwRegister: DWORD, pvReserved: pointer): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc GetActiveObject*(rclsid: REFCLSID, pvReserved: pointer, ppunk: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc SetErrorInfo*(dwReserved: ULONG, perrinfo: ptr IErrorInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc GetErrorInfo*(dwReserved: ULONG, pperrinfo: ptr ptr IErrorInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc CreateErrorInfo*(pperrinfo: ptr ptr ICreateErrorInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc GetRecordInfoFromTypeInfo*(pTypeInfo: ptr ITypeInfo, ppRecInfo: ptr ptr IRecordInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc GetRecordInfoFromGuids*(rGuidTypeLib: REFGUID, uVerMajor: ULONG, uVerMinor: ULONG, lcid: LCID, rGuidTypeInfo: REFGUID, ppRecInfo: ptr ptr IRecordInfo): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} +proc SysStringByteLen*( + bstr: BSTR +): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SysAllocStringByteLen*( + psz: LPCSTR, len: UINT +): BSTR {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc DosDateTimeToVariantTime*( + wDosDate: USHORT, wDosTime: USHORT, pvtime: ptr DOUBLE +): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantTimeToDosDateTime*( + vtime: DOUBLE, pwDosDate: ptr USHORT, pwDosTime: ptr USHORT +): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SystemTimeToVariantTime*( + lpSystemTime: LPSYSTEMTIME, pvtime: ptr DOUBLE +): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantTimeToSystemTime*( + vtime: DOUBLE, lpSystemTime: LPSYSTEMTIME +): INT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayAllocDescriptor*( + cDims: UINT, ppsaOut: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayAllocDescriptorEx*( + vt: VARTYPE, cDims: UINT, ppsaOut: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayAllocData*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayCreate*( + vt: VARTYPE, cDims: UINT, rgsabound: ptr SAFEARRAYBOUND +): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayCreateEx*( + vt: VARTYPE, cDims: UINT, rgsabound: ptr SAFEARRAYBOUND, pvExtra: PVOID +): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayCopyData*( + psaSource: ptr SAFEARRAY, psaTarget: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayDestroyDescriptor*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayDestroyData*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayDestroy*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayRedim*( + psa: ptr SAFEARRAY, psaboundNew: ptr SAFEARRAYBOUND +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetDim*( + psa: ptr SAFEARRAY +): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetElemsize*( + psa: ptr SAFEARRAY +): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetUBound*( + psa: ptr SAFEARRAY, nDim: UINT, plUbound: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetLBound*( + psa: ptr SAFEARRAY, nDim: UINT, plLbound: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayLock*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayUnlock*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayAccessData*( + psa: ptr SAFEARRAY, ppvData: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayUnaccessData*( + psa: ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetElement*( + psa: ptr SAFEARRAY, rgIndices: ptr LONG, pv: pointer +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayPutElement*( + psa: ptr SAFEARRAY, rgIndices: ptr LONG, pv: pointer +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayCopy*( + psa: ptr SAFEARRAY, ppsaOut: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayPtrOfIndex*( + psa: ptr SAFEARRAY, rgIndices: ptr LONG, ppvData: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArraySetRecordInfo*( + psa: ptr SAFEARRAY, prinfo: ptr IRecordInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetRecordInfo*( + psa: ptr SAFEARRAY, prinfo: ptr ptr IRecordInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArraySetIID*( + psa: ptr SAFEARRAY, guid: REFGUID +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetIID*( + psa: ptr SAFEARRAY, pguid: ptr GUID +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayGetVartype*( + psa: ptr SAFEARRAY, pvt: ptr VARTYPE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayCreateVector*( + vt: VARTYPE, lLbound: LONG, cElements: ULONG +): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SafeArrayCreateVectorEx*( + vt: VARTYPE, lLbound: LONG, cElements: ULONG, pvExtra: PVOID +): ptr SAFEARRAY {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantInit*( + pvarg: ptr VARIANTARG +): void {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantClear*( + pvarg: ptr VARIANTARG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantCopy*( + pvargDest: ptr VARIANTARG, pvargSrc: ptr VARIANTARG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantCopyInd*( + pvarDest: ptr VARIANT, pvargSrc: ptr VARIANTARG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantChangeType*( + pvargDest: ptr VARIANTARG, pvarSrc: ptr VARIANTARG, wFlags: USHORT, vt: VARTYPE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VariantChangeTypeEx*( + pvargDest: ptr VARIANTARG, + pvarSrc: ptr VARIANTARG, + lcid: LCID, + wFlags: USHORT, + vt: VARTYPE, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VectorFromBstr*( + bstr: BSTR, ppsa: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc BstrFromVector*( + psa: ptr SAFEARRAY, pbstr: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromI2*( + sIn: SHORT, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromI4*( + lIn: LONG, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromI8*( + i64In: LONG64, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromR4*( + fltIn: FLOAT, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromR8*( + dblIn: DOUBLE, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromCy*( + cyIn: CY, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromDate*( + dateIn: DATE, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromBool*( + boolIn: VARIANT_BOOL, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromI1*( + cIn: CHAR, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromUI2*( + uiIn: USHORT, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromUI4*( + ulIn: ULONG, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromUI8*( + ui64In: ULONG64, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromDec*( + pdecIn: ptr DECIMAL, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromUI1*( + bIn: BYTE, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromI4*( + lIn: LONG, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromI8*( + i64In: LONG64, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromR4*( + fltIn: FLOAT, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromR8*( + dblIn: DOUBLE, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromCy*( + cyIn: CY, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromDate*( + dateIn: DATE, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromBool*( + boolIn: VARIANT_BOOL, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromI1*( + cIn: CHAR, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromUI2*( + uiIn: USHORT, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromUI4*( + ulIn: ULONG, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromUI8*( + ui64In: ULONG64, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI2FromDec*( + pdecIn: ptr DECIMAL, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromUI1*( + bIn: BYTE, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromI2*( + sIn: SHORT, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromI8*( + i64In: LONG64, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromR4*( + fltIn: FLOAT, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromR8*( + dblIn: DOUBLE, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromCy*( + cyIn: CY, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromDate*( + dateIn: DATE, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromBool*( + boolIn: VARIANT_BOOL, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromI1*( + cIn: CHAR, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromUI2*( + uiIn: USHORT, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromUI4*( + ulIn: ULONG, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromUI8*( + ui64In: ULONG64, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI4FromDec*( + pdecIn: ptr DECIMAL, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromUI1*( + bIn: BYTE, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromI2*( + sIn: SHORT, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromR4*( + fltIn: FLOAT, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromR8*( + dblIn: DOUBLE, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromCy*( + cyIn: CY, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromDate*( + dateIn: DATE, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: int32, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromBool*( + boolIn: VARIANT_BOOL, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromI1*( + cIn: CHAR, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromUI2*( + uiIn: USHORT, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromUI4*( + ulIn: ULONG, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromUI8*( + ui64In: ULONG64, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI8FromDec*( + pdecIn: ptr DECIMAL, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromUI1*( + bIn: BYTE, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromI2*( + sIn: SHORT, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromI4*( + lIn: LONG, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromI8*( + i64In: LONG64, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromR8*( + dblIn: DOUBLE, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromCy*( + cyIn: CY, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromDate*( + dateIn: DATE, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromBool*( + boolIn: VARIANT_BOOL, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromI1*( + cIn: CHAR, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromUI2*( + uiIn: USHORT, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromUI4*( + ulIn: ULONG, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromUI8*( + ui64In: ULONG64, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4FromDec*( + pdecIn: ptr DECIMAL, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromUI1*( + bIn: BYTE, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromI2*( + sIn: SHORT, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromI4*( + lIn: LONG, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromI8*( + i64In: LONG64, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromR4*( + fltIn: FLOAT, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromCy*( + cyIn: CY, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromDate*( + dateIn: DATE, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromBool*( + boolIn: VARIANT_BOOL, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromI1*( + cIn: CHAR, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromUI2*( + uiIn: USHORT, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromUI4*( + ulIn: ULONG, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromUI8*( + ui64In: ULONG64, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8FromDec*( + pdecIn: ptr DECIMAL, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromUI1*( + bIn: BYTE, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromI2*( + sIn: SHORT, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromI4*( + lIn: LONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromI8*( + i64In: LONG64, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromR4*( + fltIn: FLOAT, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromR8*( + dblIn: DOUBLE, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromCy*( + cyIn: CY, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromBool*( + boolIn: VARIANT_BOOL, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromI1*( + cIn: CHAR, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromUI2*( + uiIn: USHORT, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromUI4*( + ulIn: ULONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromUI8*( + ui64In: ULONG64, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromDec*( + pdecIn: ptr DECIMAL, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromUI1*( + bIn: BYTE, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromI2*( + sIn: SHORT, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromI4*( + lIn: LONG, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromI8*( + i64In: LONG64, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromR4*( + fltIn: FLOAT, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromR8*( + dblIn: DOUBLE, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromDate*( + dateIn: DATE, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromBool*( + boolIn: VARIANT_BOOL, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromI1*( + cIn: CHAR, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromUI2*( + uiIn: USHORT, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromUI4*( + ulIn: ULONG, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromUI8*( + ui64In: ULONG64, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFromDec*( + pdecIn: ptr DECIMAL, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromUI1*( + bVal: BYTE, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromI2*( + iVal: SHORT, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromI4*( + lIn: LONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromI8*( + i64In: LONG64, lcid: LCID, dwFlags: int32, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromR4*( + fltIn: FLOAT, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromR8*( + dblIn: DOUBLE, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromCy*( + cyIn: CY, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromDate*( + dateIn: DATE, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromBool*( + boolIn: VARIANT_BOOL, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromI1*( + cIn: CHAR, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromUI2*( + uiIn: USHORT, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromUI4*( + ulIn: ULONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromUI8*( + ui64In: ULONG64, lcid: LCID, dwFlags: int32, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrFromDec*( + pdecIn: ptr DECIMAL, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromUI1*( + bIn: BYTE, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromI2*( + sIn: SHORT, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromI4*( + lIn: LONG, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromI8*( + i64In: LONG64, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromR4*( + fltIn: FLOAT, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromR8*( + dblIn: DOUBLE, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromDate*( + dateIn: DATE, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromCy*( + cyIn: CY, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromI1*( + cIn: CHAR, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromUI2*( + uiIn: USHORT, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromUI4*( + ulIn: ULONG, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromUI8*( + i64In: ULONG64, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBoolFromDec*( + pdecIn: ptr DECIMAL, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromUI1*( + bIn: BYTE, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromI2*( + uiIn: SHORT, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromI4*( + lIn: LONG, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromI8*( + i64In: LONG64, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromR4*( + fltIn: FLOAT, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromR8*( + dblIn: DOUBLE, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromDate*( + dateIn: DATE, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromCy*( + cyIn: CY, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromBool*( + boolIn: VARIANT_BOOL, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromUI2*( + uiIn: USHORT, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromUI4*( + ulIn: ULONG, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromUI8*( + i64In: ULONG64, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarI1FromDec*( + pdecIn: ptr DECIMAL, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromUI1*( + bIn: BYTE, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromI2*( + uiIn: SHORT, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromI4*( + lIn: LONG, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromI8*( + i64In: LONG64, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromR4*( + fltIn: FLOAT, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromR8*( + dblIn: DOUBLE, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromDate*( + dateIn: DATE, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromCy*( + cyIn: CY, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromBool*( + boolIn: VARIANT_BOOL, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromI1*( + cIn: CHAR, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromUI4*( + ulIn: ULONG, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromUI8*( + i64In: ULONG64, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI2FromDec*( + pdecIn: ptr DECIMAL, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromUI1*( + bIn: BYTE, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromI2*( + uiIn: SHORT, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromI4*( + lIn: LONG, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromI8*( + i64In: LONG64, plOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromR4*( + fltIn: FLOAT, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromR8*( + dblIn: DOUBLE, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromDate*( + dateIn: DATE, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromCy*( + cyIn: CY, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromBool*( + boolIn: VARIANT_BOOL, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromI1*( + cIn: CHAR, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromUI2*( + uiIn: USHORT, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromUI8*( + ui64In: ULONG64, plOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI4FromDec*( + pdecIn: ptr DECIMAL, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromUI1*( + bIn: BYTE, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromI2*( + sIn: SHORT, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromI8*( + ui64In: LONG64, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromR4*( + fltIn: FLOAT, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromR8*( + dblIn: DOUBLE, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromCy*( + cyIn: CY, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromDate*( + dateIn: DATE, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: int32, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromBool*( + boolIn: VARIANT_BOOL, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromI1*( + cIn: CHAR, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromUI2*( + uiIn: USHORT, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromUI4*( + ulIn: ULONG, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI8FromDec*( + pdecIn: ptr DECIMAL, pi64Out: ptr ULONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromUI1*( + bIn: BYTE, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromI2*( + uiIn: SHORT, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromI4*( + lIn: LONG, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromI8*( + i64In: LONG64, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromR4*( + fltIn: FLOAT, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromR8*( + dblIn: DOUBLE, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromDate*( + dateIn: DATE, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromCy*( + cyIn: CY, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromBool*( + boolIn: VARIANT_BOOL, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromI1*( + cIn: CHAR, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromUI2*( + uiIn: USHORT, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromUI4*( + ulIn: ULONG, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFromUI8*( + ui64In: ULONG64, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUI1FromInt*( + lIn: LONG, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI1FromI4".} + +proc VarUI1FromUint*( + ulIn: ULONG, pbOut: ptr BYTE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI1FromUI4".} + +proc VarI2FromInt*( + lIn: LONG, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI2FromI4".} + +proc VarI2FromUint*( + ulIn: ULONG, psOut: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI2FromUI4".} + +proc VarI4FromUint*( + ulIn: ULONG, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI4".} + +proc VarI8FromUint*( + ulIn: ULONG, pi64Out: ptr LONG64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI8FromUI4".} + +proc VarR4FromInt*( + lIn: LONG, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR4FromI4".} + +proc VarR4FromUint*( + ulIn: ULONG, pfltOut: ptr FLOAT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR4FromUI4".} + +proc VarR8FromInt*( + lIn: LONG, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR8FromI4".} + +proc VarR8FromUint*( + ulIn: ULONG, pdblOut: ptr DOUBLE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarR8FromUI4".} + +proc VarDateFromInt*( + lIn: LONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDateFromI4".} + +proc VarDateFromUint*( + ulIn: ULONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDateFromUI4".} + +proc VarCyFromInt*( + lIn: LONG, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarCyFromI4".} + +proc VarCyFromUint*( + ulIn: ULONG, pcyOut: ptr CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarCyFromUI4".} + +proc VarBstrFromInt*( + lIn: LONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBstrFromI4".} + +proc VarBstrFromUint*( + ulIn: ULONG, lcid: LCID, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBstrFromUI4".} + +proc VarBoolFromInt*( + lIn: LONG, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBoolFromI4".} + +proc VarBoolFromUint*( + ulIn: ULONG, pboolOut: ptr VARIANT_BOOL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarBoolFromUI4".} + +proc VarI1FromInt*( + lIn: LONG, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI1FromI4".} + +proc VarI1FromUint*( + ulIn: ULONG, pcOut: ptr CHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI1FromUI4".} + +proc VarUI2FromInt*( + lIn: LONG, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI2FromI4".} + +proc VarUI2FromUint*( + ulIn: ULONG, puiOut: ptr USHORT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI2FromUI4".} + +proc VarUI4FromInt*( + lIn: LONG, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI4".} + +proc VarDecFromInt*( + lIn: LONG, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDecFromI4".} + +proc VarDecFromUint*( + ulIn: ULONG, pdecOut: ptr DECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarDecFromUI4".} + +proc VarIntFromUI1*( + bIn: BYTE, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI1".} + +proc VarIntFromI2*( + sIn: SHORT, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromI2".} + +proc VarIntFromI8*( + i64In: LONG64, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromI8".} + +proc VarIntFromR4*( + fltIn: FLOAT, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromR4".} + +proc VarIntFromR8*( + dblIn: DOUBLE, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromR8".} + +proc VarIntFromDate*( + dateIn: DATE, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromDate".} + +proc VarIntFromCy*( + cyIn: CY, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromCy".} + +proc VarIntFromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromStr".} + +proc VarIntFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromDisp".} + +proc VarIntFromBool*( + boolIn: VARIANT_BOOL, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromBool".} + +proc VarIntFromI1*( + cIn: CHAR, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromI1".} + +proc VarIntFromUI2*( + uiIn: USHORT, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI2".} + +proc VarIntFromUI4*( + ulIn: ULONG, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI4".} + +proc VarIntFromUI8*( + ui64In: ULONG64, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI8".} + +proc VarIntFromDec*( + pdecIn: ptr DECIMAL, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromDec".} + +proc VarIntFromUint*( + ulIn: ULONG, plOut: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarI4FromUI4".} + +proc VarUintFromUI1*( + bIn: BYTE, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromUI1".} + +proc VarUintFromI2*( + uiIn: SHORT, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI2".} + +proc VarUintFromI4*( + lIn: LONG, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI4".} + +proc VarUintFromI8*( + i64In: LONG64, plOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI8".} + +proc VarUintFromR4*( + fltIn: FLOAT, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromR4".} + +proc VarUintFromR8*( + dblIn: DOUBLE, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromR8".} + +proc VarUintFromDate*( + dateIn: DATE, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromDate".} + +proc VarUintFromCy*( + cyIn: CY, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromCy".} + +proc VarUintFromStr*( + strIn: ptr OLECHAR, lcid: LCID, dwFlags: ULONG, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromStr".} + +proc VarUintFromDisp*( + pdispIn: ptr IDispatch, lcid: LCID, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromDisp".} + +proc VarUintFromBool*( + boolIn: VARIANT_BOOL, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromBool".} + +proc VarUintFromI1*( + cIn: CHAR, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI1".} + +proc VarUintFromUI2*( + uiIn: USHORT, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromUI2".} + +proc VarUintFromUI8*( + ui64In: ULONG64, plOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromUI8".} + +proc VarUintFromDec*( + pdecIn: ptr DECIMAL, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromDec".} + +proc VarUintFromInt*( + lIn: LONG, pulOut: ptr ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc: "VarUI4FromI4".} + +proc VarParseNumFromStr*( + strIn: ptr OLECHAR, + lcid: LCID, + dwFlags: ULONG, + pnumprs: ptr NUMPARSE, + rgbDig: ptr BYTE, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarNumFromParseNum*( + pnumprs: ptr NUMPARSE, rgbDig: ptr BYTE, dwVtBits: ULONG, pvar: ptr VARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarAdd*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarAnd*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCat*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDiv*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarEqv*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarIdiv*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarImp*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarMod*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarMul*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarOr*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarPow*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarSub*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarXor*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarAbs*( + pvarIn: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFix*( + pvarIn: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarInt*( + pvarIn: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarNeg*( + pvarIn: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarNot*( + pvarIn: LPVARIANT, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarRound*( + pvarIn: LPVARIANT, cDecimals: int32, pvarResult: LPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCmp*( + pvarLeft: LPVARIANT, pvarRight: LPVARIANT, lcid: LCID, dwFlags: ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecAdd*( + pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecDiv*( + pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecMul*( + pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecSub*( + pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecAbs*( + pdecIn: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecFix*( + pdecIn: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecInt*( + pdecIn: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecNeg*( + pdecIn: LPDECIMAL, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecRound*( + pdecIn: LPDECIMAL, cDecimals: int32, pdecResult: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecCmp*( + pdecLeft: LPDECIMAL, pdecRight: LPDECIMAL +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDecCmpR8*( + pdecLeft: LPDECIMAL, dblRight: float64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyAdd*( + cyLeft: CY, cyRight: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyMul*( + cyLeft: CY, cyRight: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyMulI4*( + cyLeft: CY, lRight: int32, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyMulI8*( + cyLeft: CY, lRight: LONG64, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCySub*( + cyLeft: CY, cyRight: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyAbs*( + cyIn: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyFix*( + cyIn: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyInt*( + cyIn: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyNeg*( + cyIn: CY, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyRound*( + cyIn: CY, cDecimals: int32, pcyResult: LPCY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyCmp*( + cyLeft: CY, cyRight: CY +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarCyCmpR8*( + cyLeft: CY, dblRight: float64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrCat*( + bstrLeft: BSTR, bstrRight: BSTR, pbstrResult: LPBSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarBstrCmp*( + bstrLeft: BSTR, bstrRight: BSTR, lcid: LCID, dwFlags: ULONG +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8Pow*( + dblLeft: float64, dblRight: float64, pdblResult: ptr float64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR4CmpR8*( + fltLeft: float32, dblRight: float64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarR8Round*( + dblIn: float64, cDecimals: int32, pdblResult: ptr float64 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromUdate*( + pudateIn: ptr UDATE, dwFlags: ULONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarDateFromUdateEx*( + pudateIn: ptr UDATE, lcid: LCID, dwFlags: ULONG, pdateOut: ptr DATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarUdateFromDate*( + dateIn: DATE, dwFlags: ULONG, pudateOut: ptr UDATE +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc GetAltMonthNames*( + lcid: LCID, prgp: ptr ptr LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFormat*( + pvarIn: LPVARIANT, + pstrFormat: LPOLESTR, + iFirstDay: int32, + iFirstWeek: int32, + dwFlags: ULONG, + pbstrOut: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFormatDateTime*( + pvarIn: LPVARIANT, iNamedFormat: int32, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFormatNumber*( + pvarIn: LPVARIANT, + iNumDig: int32, + iIncLead: int32, + iUseParens: int32, + iGroup: int32, + dwFlags: ULONG, + pbstrOut: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFormatPercent*( + pvarIn: LPVARIANT, + iNumDig: int32, + iIncLead: int32, + iUseParens: int32, + iGroup: int32, + dwFlags: ULONG, + pbstrOut: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFormatCurrency*( + pvarIn: LPVARIANT, + iNumDig: int32, + iIncLead: int32, + iUseParens: int32, + iGroup: int32, + dwFlags: ULONG, + pbstrOut: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarWeekdayName*( + iWeekday: int32, fAbbrev: int32, iFirstDay: int32, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarMonthName*( + iMonth: int32, fAbbrev: int32, dwFlags: ULONG, pbstrOut: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarFormatFromTokens*( + pvarIn: LPVARIANT, + pstrFormat: LPOLESTR, + pbTokCur: LPBYTE, + dwFlags: ULONG, + pbstrOut: ptr BSTR, + lcid: LCID, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc VarTokenizeFormatString*( + pstrFormat: LPOLESTR, + rgbTok: LPBYTE, + cbTok: int32, + iFirstDay: int32, + iFirstWeek: int32, + lcid: LCID, + pcbActual: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc LHashValOfNameSysA*( + syskind: SYSKIND, lcid: LCID, szName: LPCSTR +): ULONG {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc LHashValOfNameSys*( + syskind: SYSKIND, lcid: LCID, szName: ptr OLECHAR +): ULONG {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc LoadTypeLib*( + szFile: ptr OLECHAR, pptlib: ptr ptr ITypeLib +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc LoadTypeLibEx*( + szFile: LPCOLESTR, regkind: REGKIND, pptlib: ptr ptr ITypeLib +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc LoadRegTypeLib*( + rguid: REFGUID, wVerMajor: WORD, wVerMinor: WORD, lcid: LCID, pptlib: ptr ptr ITypeLib +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc QueryPathOfRegTypeLib*( + guid: REFGUID, wMaj: USHORT, wMin: USHORT, lcid: LCID, lpbstrPathName: LPBSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc RegisterTypeLib*( + ptlib: ptr ITypeLib, szFullPath: ptr OLECHAR, szHelpDir: ptr OLECHAR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc UnRegisterTypeLib*( + libID: REFGUID, wVerMajor: WORD, wVerMinor: WORD, lcid: LCID, syskind: SYSKIND +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc CreateTypeLib*( + syskind: SYSKIND, szFile: ptr OLECHAR, ppctlib: ptr ptr ICreateTypeLib +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc CreateTypeLib2*( + syskind: SYSKIND, szFile: LPCOLESTR, ppctlib: ptr ptr ICreateTypeLib2 +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc DispGetParam*( + pdispparams: ptr DISPPARAMS, + position: UINT, + vtTarg: VARTYPE, + pvarResult: ptr VARIANT, + puArgErr: ptr UINT, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc DispGetIDsOfNames*( + ptinfo: ptr ITypeInfo, rgszNames: ptr ptr OLECHAR, cNames: UINT, rgdispid: ptr DISPID +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc DispInvoke*( + this: pointer, + ptinfo: ptr ITypeInfo, + dispidMember: DISPID, + wFlags: WORD, + pparams: ptr DISPPARAMS, + pvarResult: ptr VARIANT, + pexcepinfo: ptr EXCEPINFO, + puArgErr: ptr UINT, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc CreateDispTypeInfo*( + pidata: ptr INTERFACEDATA, lcid: LCID, pptinfo: ptr ptr ITypeInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc CreateStdDispatch*( + punkOuter: ptr IUnknown, + pvThis: pointer, + ptinfo: ptr ITypeInfo, + ppunkStdDisp: ptr ptr IUnknown, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc DispCallFunc*( + pvInstance: pointer, + oVft: ULONG_PTR, + cc: CALLCONV, + vtReturn: VARTYPE, + cActuals: UINT, + prgvt: ptr VARTYPE, + prgpvarg: ptr ptr VARIANTARG, + pvargResult: ptr VARIANT, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc RegisterActiveObject*( + punk: ptr IUnknown, rclsid: REFCLSID, dwFlags: DWORD, pdwRegister: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc RevokeActiveObject*( + dwRegister: DWORD, pvReserved: pointer +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc GetActiveObject*( + rclsid: REFCLSID, pvReserved: pointer, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc SetErrorInfo*( + dwReserved: ULONG, perrinfo: ptr IErrorInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc GetErrorInfo*( + dwReserved: ULONG, pperrinfo: ptr ptr IErrorInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc CreateErrorInfo*( + pperrinfo: ptr ptr ICreateErrorInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc GetRecordInfoFromTypeInfo*( + pTypeInfo: ptr ITypeInfo, ppRecInfo: ptr ptr IRecordInfo +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc GetRecordInfoFromGuids*( + rGuidTypeLib: REFGUID, + uVerMajor: ULONG, + uVerMinor: ULONG, + lcid: LCID, + rGuidTypeInfo: REFGUID, + ppRecInfo: ptr ptr IRecordInfo, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + proc OaBuildVersion*(): ULONG {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc ClearCustData*(pCustData: LPCUSTDATA): void {.winapi, stdcall, dynlib: "oleaut32", importc.} +proc ClearCustData*( + pCustData: LPCUSTDATA +): void {.winapi, stdcall, dynlib: "oleaut32", importc.} + proc OleBuildVersion*(): DWORD {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateDataAdviseHolder*(ppDAHolder: ptr LPDATAADVISEHOLDER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc ReadClassStg*(pStg: LPSTORAGE, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc WriteClassStg*(pStg: LPSTORAGE, rclsid: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc ReadClassStm*(pStm: LPSTREAM, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc WriteClassStm*(pStm: LPSTREAM, rclsid: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc WriteFmtUserTypeStg*(pstg: LPSTORAGE, cf: CLIPFORMAT, lpszUserType: LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc ReadFmtUserTypeStg*(pstg: LPSTORAGE, pcf: ptr CLIPFORMAT, lplpszUserType: ptr LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleInitialize*(pvReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CreateDataAdviseHolder*( + ppDAHolder: ptr LPDATAADVISEHOLDER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc ReadClassStg*( + pStg: LPSTORAGE, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc WriteClassStg*( + pStg: LPSTORAGE, rclsid: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc ReadClassStm*( + pStm: LPSTREAM, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc WriteClassStm*( + pStm: LPSTREAM, rclsid: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc WriteFmtUserTypeStg*( + pstg: LPSTORAGE, cf: CLIPFORMAT, lpszUserType: LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc ReadFmtUserTypeStg*( + pstg: LPSTORAGE, pcf: ptr CLIPFORMAT, lplpszUserType: ptr LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleInitialize*( + pvReserved: LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc OleUninitialize*(): void {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleQueryLinkFromData*(pSrcDataObject: LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleQueryCreateFromData*(pSrcDataObject: LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreate*(rclsid: REFCLSID, riid: REFIID, renderopt: DWORD, pFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateEx*(rclsid: REFCLSID, riid: REFIID, dwFlags: DWORD, renderopt: DWORD, cFormats: ULONG, rgAdvf: ptr DWORD, rgFormatEtc: LPFORMATETC, lpAdviseSink: ptr IAdviseSink, rgdwConnection: ptr DWORD, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateFromData*(pSrcDataObj: LPDATAOBJECT, riid: REFIID, renderopt: DWORD, pFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateFromDataEx*(pSrcDataObj: LPDATAOBJECT, riid: REFIID, dwFlags: DWORD, renderopt: DWORD, cFormats: ULONG, rgAdvf: ptr DWORD, rgFormatEtc: LPFORMATETC, lpAdviseSink: ptr IAdviseSink, rgdwConnection: ptr DWORD, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateLinkFromData*(pSrcDataObj: LPDATAOBJECT, riid: REFIID, renderopt: DWORD, pFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateLinkFromDataEx*(pSrcDataObj: LPDATAOBJECT, riid: REFIID, dwFlags: DWORD, renderopt: DWORD, cFormats: ULONG, rgAdvf: ptr DWORD, rgFormatEtc: LPFORMATETC, lpAdviseSink: ptr IAdviseSink, rgdwConnection: ptr DWORD, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateStaticFromData*(pSrcDataObj: LPDATAOBJECT, iid: REFIID, renderopt: DWORD, pFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateLink*(pmkLinkSrc: LPMONIKER, riid: REFIID, renderopt: DWORD, lpFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateLinkEx*(pmkLinkSrc: LPMONIKER, riid: REFIID, dwFlags: DWORD, renderopt: DWORD, cFormats: ULONG, rgAdvf: ptr DWORD, rgFormatEtc: LPFORMATETC, lpAdviseSink: ptr IAdviseSink, rgdwConnection: ptr DWORD, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateLinkToFile*(lpszFileName: LPCOLESTR, riid: REFIID, renderopt: DWORD, lpFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateLinkToFileEx*(lpszFileName: LPCOLESTR, riid: REFIID, dwFlags: DWORD, renderopt: DWORD, cFormats: ULONG, rgAdvf: ptr DWORD, rgFormatEtc: LPFORMATETC, lpAdviseSink: ptr IAdviseSink, rgdwConnection: ptr DWORD, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateFromFile*(rclsid: REFCLSID, lpszFileName: LPCOLESTR, riid: REFIID, renderopt: DWORD, lpFormatEtc: LPFORMATETC, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateFromFileEx*(rclsid: REFCLSID, lpszFileName: LPCOLESTR, riid: REFIID, dwFlags: DWORD, renderopt: DWORD, cFormats: ULONG, rgAdvf: ptr DWORD, rgFormatEtc: LPFORMATETC, lpAdviseSink: ptr IAdviseSink, rgdwConnection: ptr DWORD, pClientSite: LPOLECLIENTSITE, pStg: LPSTORAGE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleLoad*(pStg: LPSTORAGE, riid: REFIID, pClientSite: LPOLECLIENTSITE, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleSave*(pPS: LPPERSISTSTORAGE, pStg: LPSTORAGE, fSameAsLoad: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleLoadFromStream*(pStm: LPSTREAM, iidInterface: REFIID, ppvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleSaveToStream*(pPStm: LPPERSISTSTREAM, pStm: LPSTREAM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleSetContainedObject*(pUnknown: LPUNKNOWN, fContained: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleNoteObjectVisible*(pUnknown: LPUNKNOWN, fVisible: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc RegisterDragDrop*(hwnd: HWND, pDropTarget: LPDROPTARGET): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc OleQueryLinkFromData*( + pSrcDataObject: LPDATAOBJECT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleQueryCreateFromData*( + pSrcDataObject: LPDATAOBJECT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreate*( + rclsid: REFCLSID, + riid: REFIID, + renderopt: DWORD, + pFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateEx*( + rclsid: REFCLSID, + riid: REFIID, + dwFlags: DWORD, + renderopt: DWORD, + cFormats: ULONG, + rgAdvf: ptr DWORD, + rgFormatEtc: LPFORMATETC, + lpAdviseSink: ptr IAdviseSink, + rgdwConnection: ptr DWORD, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateFromData*( + pSrcDataObj: LPDATAOBJECT, + riid: REFIID, + renderopt: DWORD, + pFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateFromDataEx*( + pSrcDataObj: LPDATAOBJECT, + riid: REFIID, + dwFlags: DWORD, + renderopt: DWORD, + cFormats: ULONG, + rgAdvf: ptr DWORD, + rgFormatEtc: LPFORMATETC, + lpAdviseSink: ptr IAdviseSink, + rgdwConnection: ptr DWORD, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateLinkFromData*( + pSrcDataObj: LPDATAOBJECT, + riid: REFIID, + renderopt: DWORD, + pFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateLinkFromDataEx*( + pSrcDataObj: LPDATAOBJECT, + riid: REFIID, + dwFlags: DWORD, + renderopt: DWORD, + cFormats: ULONG, + rgAdvf: ptr DWORD, + rgFormatEtc: LPFORMATETC, + lpAdviseSink: ptr IAdviseSink, + rgdwConnection: ptr DWORD, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateStaticFromData*( + pSrcDataObj: LPDATAOBJECT, + iid: REFIID, + renderopt: DWORD, + pFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateLink*( + pmkLinkSrc: LPMONIKER, + riid: REFIID, + renderopt: DWORD, + lpFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateLinkEx*( + pmkLinkSrc: LPMONIKER, + riid: REFIID, + dwFlags: DWORD, + renderopt: DWORD, + cFormats: ULONG, + rgAdvf: ptr DWORD, + rgFormatEtc: LPFORMATETC, + lpAdviseSink: ptr IAdviseSink, + rgdwConnection: ptr DWORD, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateLinkToFile*( + lpszFileName: LPCOLESTR, + riid: REFIID, + renderopt: DWORD, + lpFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateLinkToFileEx*( + lpszFileName: LPCOLESTR, + riid: REFIID, + dwFlags: DWORD, + renderopt: DWORD, + cFormats: ULONG, + rgAdvf: ptr DWORD, + rgFormatEtc: LPFORMATETC, + lpAdviseSink: ptr IAdviseSink, + rgdwConnection: ptr DWORD, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateFromFile*( + rclsid: REFCLSID, + lpszFileName: LPCOLESTR, + riid: REFIID, + renderopt: DWORD, + lpFormatEtc: LPFORMATETC, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateFromFileEx*( + rclsid: REFCLSID, + lpszFileName: LPCOLESTR, + riid: REFIID, + dwFlags: DWORD, + renderopt: DWORD, + cFormats: ULONG, + rgAdvf: ptr DWORD, + rgFormatEtc: LPFORMATETC, + lpAdviseSink: ptr IAdviseSink, + rgdwConnection: ptr DWORD, + pClientSite: LPOLECLIENTSITE, + pStg: LPSTORAGE, + ppvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleLoad*( + pStg: LPSTORAGE, riid: REFIID, pClientSite: LPOLECLIENTSITE, ppvObj: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleSave*( + pPS: LPPERSISTSTORAGE, pStg: LPSTORAGE, fSameAsLoad: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleLoadFromStream*( + pStm: LPSTREAM, iidInterface: REFIID, ppvObj: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleSaveToStream*( + pPStm: LPPERSISTSTREAM, pStm: LPSTREAM +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleSetContainedObject*( + pUnknown: LPUNKNOWN, fContained: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleNoteObjectVisible*( + pUnknown: LPUNKNOWN, fVisible: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc RegisterDragDrop*( + hwnd: HWND, pDropTarget: LPDROPTARGET +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc RevokeDragDrop*(hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc DoDragDrop*(pDataObj: LPDATAOBJECT, pDropSource: LPDROPSOURCE, dwOKEffects: DWORD, pdwEffect: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleSetClipboard*(pDataObj: LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleGetClipboard*(ppDataObj: ptr LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc DoDragDrop*( + pDataObj: LPDATAOBJECT, + pDropSource: LPDROPSOURCE, + dwOKEffects: DWORD, + pdwEffect: LPDWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleSetClipboard*( + pDataObj: LPDATAOBJECT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleGetClipboard*( + ppDataObj: ptr LPDATAOBJECT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc OleFlushClipboard*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleIsCurrentClipboard*(pDataObj: LPDATAOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateMenuDescriptor*(hmenuCombined: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HOLEMENU {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleSetMenuDescriptor*(holemenu: HOLEMENU, hwndFrame: HWND, hwndActiveObject: HWND, lpFrame: LPOLEINPLACEFRAME, lpActiveObj: LPOLEINPLACEACTIVEOBJECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleDestroyMenuDescriptor*(holemenu: HOLEMENU): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleTranslateAccelerator*(lpFrame: LPOLEINPLACEFRAME, lpFrameInfo: LPOLEINPLACEFRAMEINFO, lpmsg: LPMSG): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleDuplicateData*(hSrc: HANDLE, cfFormat: CLIPFORMAT, uiFlags: UINT): HANDLE {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleDraw*(pUnknown: LPUNKNOWN, dwAspect: DWORD, hdcDraw: HDC, lprcBounds: LPCRECT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc OleIsCurrentClipboard*( + pDataObj: LPDATAOBJECT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateMenuDescriptor*( + hmenuCombined: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS +): HOLEMENU {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleSetMenuDescriptor*( + holemenu: HOLEMENU, + hwndFrame: HWND, + hwndActiveObject: HWND, + lpFrame: LPOLEINPLACEFRAME, + lpActiveObj: LPOLEINPLACEACTIVEOBJECT, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleDestroyMenuDescriptor*( + holemenu: HOLEMENU +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleTranslateAccelerator*( + lpFrame: LPOLEINPLACEFRAME, lpFrameInfo: LPOLEINPLACEFRAMEINFO, lpmsg: LPMSG +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleDuplicateData*( + hSrc: HANDLE, cfFormat: CLIPFORMAT, uiFlags: UINT +): HANDLE {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleDraw*( + pUnknown: LPUNKNOWN, dwAspect: DWORD, hdcDraw: HDC, lprcBounds: LPCRECT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc OleRun*(pUnknown: LPUNKNOWN): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleIsRunning*(pObject: LPOLEOBJECT): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleLockRunning*(pUnknown: LPUNKNOWN, fLock: WINBOOL, fLastUnlockCloses: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc ReleaseStgMedium*(P1: LPSTGMEDIUM): void {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateOleAdviseHolder*(ppOAHolder: ptr LPOLEADVISEHOLDER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateDefaultHandler*(clsid: REFCLSID, pUnkOuter: LPUNKNOWN, riid: REFIID, lplpObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleCreateEmbeddingHelper*(clsid: REFCLSID, pUnkOuter: LPUNKNOWN, flags: DWORD, pCF: LPCLASSFACTORY, riid: REFIID, lplpObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc IsAccelerator*(hAccel: HACCEL, cAccelEntries: int32, lpMsg: LPMSG, lpwCmd: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleGetIconOfFile*(lpszPath: LPOLESTR, fUseFileAsLabel: WINBOOL): HGLOBAL {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleGetIconOfClass*(rclsid: REFCLSID, lpszLabel: LPOLESTR, fUseTypeAsLabel: WINBOOL): HGLOBAL {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleMetafilePictFromIconAndLabel*(hIcon: HICON, lpszLabel: LPOLESTR, lpszSourceFile: LPOLESTR, iIconIndex: UINT): HGLOBAL {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleRegGetUserType*(clsid: REFCLSID, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleRegGetMiscStatus*(clsid: REFCLSID, dwAspect: DWORD, pdwStatus: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleRegEnumFormatEtc*(clsid: REFCLSID, dwDirection: DWORD, ppenum: ptr LPENUMFORMATETC): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleRegEnumVerbs*(clsid: REFCLSID, ppenum: ptr LPENUMOLEVERB): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleConvertOLESTREAMToIStorage*(lpolestream: LPOLESTREAM, pstg: LPSTORAGE, ptd: ptr DVTARGETDEVICE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleConvertIStorageToOLESTREAM*(pstg: LPSTORAGE, lpolestream: LPOLESTREAM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc GetHGlobalFromILockBytes*(plkbyt: LPLOCKBYTES, phglobal: ptr HGLOBAL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateILockBytesOnHGlobal*(hGlobal: HGLOBAL, fDeleteOnRelease: WINBOOL, pplkbyt: ptr LPLOCKBYTES): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleDoAutoConvert*(pStg: LPSTORAGE, pClsidNew: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleGetAutoConvert*(clsidOld: REFCLSID, pClsidNew: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleSetAutoConvert*(clsidOld: REFCLSID, clsidNew: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc GetConvertStg*(pStg: LPSTORAGE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc SetConvertStg*(pStg: LPSTORAGE, fConvert: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleConvertIStorageToOLESTREAMEx*(pstg: LPSTORAGE, cfFormat: CLIPFORMAT, lWidth: LONG, lHeight: LONG, dwSize: DWORD, pmedium: LPSTGMEDIUM, polestm: LPOLESTREAM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc OleConvertOLESTREAMToIStorageEx*(polestm: LPOLESTREAM, pstg: LPSTORAGE, pcfFormat: ptr CLIPFORMAT, plwWidth: ptr LONG, plHeight: ptr LONG, pdwSize: ptr DWORD, pmedium: LPSTGMEDIUM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateStreamOnHGlobal*(hGlobal: HGLOBAL, fDeleteOnRelease: WINBOOL, ppstm: ptr LPSTREAM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc GetHGlobalFromStream*(pstm: LPSTREAM, phglobal: ptr HGLOBAL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc OleIsRunning*( + pObject: LPOLEOBJECT +): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleLockRunning*( + pUnknown: LPUNKNOWN, fLock: WINBOOL, fLastUnlockCloses: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc ReleaseStgMedium*( + P1: LPSTGMEDIUM +): void {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateOleAdviseHolder*( + ppOAHolder: ptr LPOLEADVISEHOLDER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateDefaultHandler*( + clsid: REFCLSID, pUnkOuter: LPUNKNOWN, riid: REFIID, lplpObj: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleCreateEmbeddingHelper*( + clsid: REFCLSID, + pUnkOuter: LPUNKNOWN, + flags: DWORD, + pCF: LPCLASSFACTORY, + riid: REFIID, + lplpObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc IsAccelerator*( + hAccel: HACCEL, cAccelEntries: int32, lpMsg: LPMSG, lpwCmd: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleGetIconOfFile*( + lpszPath: LPOLESTR, fUseFileAsLabel: WINBOOL +): HGLOBAL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleGetIconOfClass*( + rclsid: REFCLSID, lpszLabel: LPOLESTR, fUseTypeAsLabel: WINBOOL +): HGLOBAL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleMetafilePictFromIconAndLabel*( + hIcon: HICON, lpszLabel: LPOLESTR, lpszSourceFile: LPOLESTR, iIconIndex: UINT +): HGLOBAL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleRegGetUserType*( + clsid: REFCLSID, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleRegGetMiscStatus*( + clsid: REFCLSID, dwAspect: DWORD, pdwStatus: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleRegEnumFormatEtc*( + clsid: REFCLSID, dwDirection: DWORD, ppenum: ptr LPENUMFORMATETC +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleRegEnumVerbs*( + clsid: REFCLSID, ppenum: ptr LPENUMOLEVERB +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleConvertOLESTREAMToIStorage*( + lpolestream: LPOLESTREAM, pstg: LPSTORAGE, ptd: ptr DVTARGETDEVICE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleConvertIStorageToOLESTREAM*( + pstg: LPSTORAGE, lpolestream: LPOLESTREAM +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc GetHGlobalFromILockBytes*( + plkbyt: LPLOCKBYTES, phglobal: ptr HGLOBAL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateILockBytesOnHGlobal*( + hGlobal: HGLOBAL, fDeleteOnRelease: WINBOOL, pplkbyt: ptr LPLOCKBYTES +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleDoAutoConvert*( + pStg: LPSTORAGE, pClsidNew: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleGetAutoConvert*( + clsidOld: REFCLSID, pClsidNew: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleSetAutoConvert*( + clsidOld: REFCLSID, clsidNew: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc GetConvertStg*( + pStg: LPSTORAGE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc SetConvertStg*( + pStg: LPSTORAGE, fConvert: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleConvertIStorageToOLESTREAMEx*( + pstg: LPSTORAGE, + cfFormat: CLIPFORMAT, + lWidth: LONG, + lHeight: LONG, + dwSize: DWORD, + pmedium: LPSTGMEDIUM, + polestm: LPOLESTREAM, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc OleConvertOLESTREAMToIStorageEx*( + polestm: LPOLESTREAM, + pstg: LPSTORAGE, + pcfFormat: ptr CLIPFORMAT, + plwWidth: ptr LONG, + plHeight: ptr LONG, + pdwSize: ptr DWORD, + pmedium: LPSTGMEDIUM, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateStreamOnHGlobal*( + hGlobal: HGLOBAL, fDeleteOnRelease: WINBOOL, ppstm: ptr LPSTREAM +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc GetHGlobalFromStream*( + pstm: LPSTREAM, phglobal: ptr HGLOBAL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoUninitialize*(): void {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoInitializeEx*(pvReserved: LPVOID, dwCoInit: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetCurrentLogicalThreadId*(pguid: ptr GUID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetContextToken*(pToken: ptr ULONG_PTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetApartmentType*(pAptType: ptr APTTYPE, pAptQualifier: ptr APTTYPEQUALIFIER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetObjectContext*(riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterClassObject*(rclsid: REFCLSID, pUnk: LPUNKNOWN, dwClsContext: DWORD, flags: DWORD, lpdwRegister: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRevokeClassObject*(dwRegister: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoInitializeEx*( + pvReserved: LPVOID, dwCoInit: DWORD +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetCurrentLogicalThreadId*( + pguid: ptr GUID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetContextToken*( + pToken: ptr ULONG_PTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetApartmentType*( + pAptType: ptr APTTYPE, pAptQualifier: ptr APTTYPEQUALIFIER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetObjectContext*( + riid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRegisterClassObject*( + rclsid: REFCLSID, + pUnk: LPUNKNOWN, + dwClsContext: DWORD, + flags: DWORD, + lpdwRegister: LPDWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRevokeClassObject*( + dwRegister: DWORD +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoResumeClassObjects*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} proc CoSuspendClassObjects*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetMalloc*(dwMemContext: DWORD, ppMalloc: ptr LPMALLOC): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoGetMalloc*( + dwMemContext: DWORD, ppMalloc: ptr LPMALLOC +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoGetCurrentProcess*(): DWORD {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetCallerTID*(lpdwTID: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetDefaultContext*(aptType: APTTYPE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoDecodeProxy*(dwClientPid: DWORD, ui64ProxyAddress: UINT64, pServerInformation: PServerInformation): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoIncrementMTAUsage*(pCookie: ptr CO_MTA_USAGE_COOKIE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoDecrementMTAUsage*(Cookie: CO_MTA_USAGE_COOKIE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoWaitForMultipleObjects*(dwFlags: DWORD, dwTimeout: DWORD, cHandles: ULONG, pHandles: ptr HANDLE, lpdwindex: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoAllowUnmarshalerCLSID*(clsid: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetClassObject*(rclsid: REFCLSID, dwClsContext: DWORD, pvReserved: LPVOID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoGetCallerTID*( + lpdwTID: LPDWORD +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetDefaultContext*( + aptType: APTTYPE, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoDecodeProxy*( + dwClientPid: DWORD, ui64ProxyAddress: UINT64, pServerInformation: PServerInformation +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoIncrementMTAUsage*( + pCookie: ptr CO_MTA_USAGE_COOKIE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoDecrementMTAUsage*( + Cookie: CO_MTA_USAGE_COOKIE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoWaitForMultipleObjects*( + dwFlags: DWORD, + dwTimeout: DWORD, + cHandles: ULONG, + pHandles: ptr HANDLE, + lpdwindex: LPDWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoAllowUnmarshalerCLSID*( + clsid: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetClassObject*( + rclsid: REFCLSID, + dwClsContext: DWORD, + pvReserved: LPVOID, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoAddRefServerProcess*(): ULONG {.winapi, stdcall, dynlib: "ole32", importc.} proc CoReleaseServerProcess*(): ULONG {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetPSClsid*(riid: REFIID, pClsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterPSClsid*(riid: REFIID, rclsid: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterSurrogate*(pSurrogate: LPSURROGATE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoMarshalHresult*(pstm: LPSTREAM, hresult: HRESULT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoUnmarshalHresult*(pstm: LPSTREAM, phresult: ptr HRESULT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoLockObjectExternal*(pUnk: LPUNKNOWN, fLock: WINBOOL, fLastUnlockReleases: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetStdMarshalEx*(pUnkOuter: LPUNKNOWN, smexflags: DWORD, ppUnkInner: ptr LPUNKNOWN): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetMarshalSizeMax*(pulSize: ptr ULONG, riid: REFIID, pUnk: LPUNKNOWN, dwDestContext: DWORD, pvDestContext: LPVOID, mshlflags: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoMarshalInterface*(pStm: LPSTREAM, riid: REFIID, pUnk: LPUNKNOWN, dwDestContext: DWORD, pvDestContext: LPVOID, mshlflags: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoUnmarshalInterface*(pStm: LPSTREAM, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoReleaseMarshalData*(pStm: LPSTREAM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoDisconnectObject*(pUnk: LPUNKNOWN, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetStandardMarshal*(riid: REFIID, pUnk: LPUNKNOWN, dwDestContext: DWORD, pvDestContext: LPVOID, mshlflags: DWORD, ppMarshal: ptr LPMARSHAL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoMarshalInterThreadInterfaceInStream*(riid: REFIID, pUnk: LPUNKNOWN, ppStm: ptr LPSTREAM): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetInterfaceAndReleaseStream*(pStm: LPSTREAM, iid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCreateFreeThreadedMarshaler*(punkOuter: LPUNKNOWN, ppunkMarshal: ptr LPUNKNOWN): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoGetPSClsid*( + riid: REFIID, pClsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRegisterPSClsid*( + riid: REFIID, rclsid: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRegisterSurrogate*( + pSurrogate: LPSURROGATE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoMarshalHresult*( + pstm: LPSTREAM, hresult: HRESULT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoUnmarshalHresult*( + pstm: LPSTREAM, phresult: ptr HRESULT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoLockObjectExternal*( + pUnk: LPUNKNOWN, fLock: WINBOOL, fLastUnlockReleases: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetStdMarshalEx*( + pUnkOuter: LPUNKNOWN, smexflags: DWORD, ppUnkInner: ptr LPUNKNOWN +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetMarshalSizeMax*( + pulSize: ptr ULONG, + riid: REFIID, + pUnk: LPUNKNOWN, + dwDestContext: DWORD, + pvDestContext: LPVOID, + mshlflags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoMarshalInterface*( + pStm: LPSTREAM, + riid: REFIID, + pUnk: LPUNKNOWN, + dwDestContext: DWORD, + pvDestContext: LPVOID, + mshlflags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoUnmarshalInterface*( + pStm: LPSTREAM, riid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoReleaseMarshalData*( + pStm: LPSTREAM +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoDisconnectObject*( + pUnk: LPUNKNOWN, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetStandardMarshal*( + riid: REFIID, + pUnk: LPUNKNOWN, + dwDestContext: DWORD, + pvDestContext: LPVOID, + mshlflags: DWORD, + ppMarshal: ptr LPMARSHAL, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoMarshalInterThreadInterfaceInStream*( + riid: REFIID, pUnk: LPUNKNOWN, ppStm: ptr LPSTREAM +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetInterfaceAndReleaseStream*( + pStm: LPSTREAM, iid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCreateFreeThreadedMarshaler*( + punkOuter: LPUNKNOWN, ppunkMarshal: ptr LPUNKNOWN +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoFreeUnusedLibraries*(): void {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoFreeUnusedLibrariesEx*(dwUnloadDelay: DWORD, dwReserved: DWORD): void {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoInitializeSecurity*(pSecDesc: PSECURITY_DESCRIPTOR, cAuthSvc: LONG, asAuthSvc: ptr SOLE_AUTHENTICATION_SERVICE, pReserved1: pointer, dwAuthnLevel: DWORD, dwImpLevel: DWORD, pAuthList: pointer, dwCapabilities: DWORD, pReserved3: pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoSwitchCallContext*(pNewObject: ptr IUnknown, ppOldObject: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCreateInstanceFromApp*(Clsid: REFCLSID, punkOuter: ptr IUnknown, dwClsCtx: DWORD, reserved: PVOID, dwCount: DWORD, pResults: ptr MULTI_QI): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoIsHandlerConnected*(pUnk: LPUNKNOWN): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoDisconnectContext*(dwTimeout: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetCallContext*(riid: REFIID, ppInterface: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoQueryProxyBlanket*(pProxy: ptr IUnknown, pwAuthnSvc: ptr DWORD, pAuthzSvc: ptr DWORD, pServerPrincName: ptr LPOLESTR, pAuthnLevel: ptr DWORD, pImpLevel: ptr DWORD, pAuthInfo: ptr RPC_AUTH_IDENTITY_HANDLE, pCapabilites: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoSetProxyBlanket*(pProxy: ptr IUnknown, dwAuthnSvc: DWORD, dwAuthzSvc: DWORD, pServerPrincName: ptr OLECHAR, dwAuthnLevel: DWORD, dwImpLevel: DWORD, pAuthInfo: RPC_AUTH_IDENTITY_HANDLE, dwCapabilities: DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCopyProxy*(pProxy: ptr IUnknown, ppCopy: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoQueryClientBlanket*(pAuthnSvc: ptr DWORD, pAuthzSvc: ptr DWORD, pServerPrincName: ptr LPOLESTR, pAuthnLevel: ptr DWORD, pImpLevel: ptr DWORD, pPrivs: ptr RPC_AUTHZ_HANDLE, pCapabilities: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoFreeUnusedLibrariesEx*( + dwUnloadDelay: DWORD, dwReserved: DWORD +): void {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoInitializeSecurity*( + pSecDesc: PSECURITY_DESCRIPTOR, + cAuthSvc: LONG, + asAuthSvc: ptr SOLE_AUTHENTICATION_SERVICE, + pReserved1: pointer, + dwAuthnLevel: DWORD, + dwImpLevel: DWORD, + pAuthList: pointer, + dwCapabilities: DWORD, + pReserved3: pointer, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoSwitchCallContext*( + pNewObject: ptr IUnknown, ppOldObject: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCreateInstanceFromApp*( + Clsid: REFCLSID, + punkOuter: ptr IUnknown, + dwClsCtx: DWORD, + reserved: PVOID, + dwCount: DWORD, + pResults: ptr MULTI_QI, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoIsHandlerConnected*( + pUnk: LPUNKNOWN +): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoDisconnectContext*( + dwTimeout: DWORD +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetCallContext*( + riid: REFIID, ppInterface: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoQueryProxyBlanket*( + pProxy: ptr IUnknown, + pwAuthnSvc: ptr DWORD, + pAuthzSvc: ptr DWORD, + pServerPrincName: ptr LPOLESTR, + pAuthnLevel: ptr DWORD, + pImpLevel: ptr DWORD, + pAuthInfo: ptr RPC_AUTH_IDENTITY_HANDLE, + pCapabilites: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoSetProxyBlanket*( + pProxy: ptr IUnknown, + dwAuthnSvc: DWORD, + dwAuthzSvc: DWORD, + pServerPrincName: ptr OLECHAR, + dwAuthnLevel: DWORD, + dwImpLevel: DWORD, + pAuthInfo: RPC_AUTH_IDENTITY_HANDLE, + dwCapabilities: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCopyProxy*( + pProxy: ptr IUnknown, ppCopy: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoQueryClientBlanket*( + pAuthnSvc: ptr DWORD, + pAuthzSvc: ptr DWORD, + pServerPrincName: ptr LPOLESTR, + pAuthnLevel: ptr DWORD, + pImpLevel: ptr DWORD, + pPrivs: ptr RPC_AUTHZ_HANDLE, + pCapabilities: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoImpersonateClient*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} proc CoRevertToSelf*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoQueryAuthenticationServices*(pcAuthSvc: ptr DWORD, asAuthSvc: ptr ptr SOLE_AUTHENTICATION_SERVICE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCreateInstance*(rclsid: REFCLSID, pUnkOuter: LPUNKNOWN, dwClsContext: DWORD, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCreateInstanceEx*(Clsid: REFCLSID, punkOuter: ptr IUnknown, dwClsCtx: DWORD, pServerInfo: ptr COSERVERINFO, dwCount: DWORD, pResults: ptr MULTI_QI): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetCancelObject*(dwThreadId: DWORD, iid: REFIID, ppUnk: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoSetCancelObject*(pUnk: ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCancelCall*(dwThreadId: DWORD, ulTimeout: ULONG): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoQueryAuthenticationServices*( + pcAuthSvc: ptr DWORD, asAuthSvc: ptr ptr SOLE_AUTHENTICATION_SERVICE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCreateInstance*( + rclsid: REFCLSID, + pUnkOuter: LPUNKNOWN, + dwClsContext: DWORD, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCreateInstanceEx*( + Clsid: REFCLSID, + punkOuter: ptr IUnknown, + dwClsCtx: DWORD, + pServerInfo: ptr COSERVERINFO, + dwCount: DWORD, + pResults: ptr MULTI_QI, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetCancelObject*( + dwThreadId: DWORD, iid: REFIID, ppUnk: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoSetCancelObject*( + pUnk: ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCancelCall*( + dwThreadId: DWORD, ulTimeout: ULONG +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoTestCancel*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoEnableCallCancellation*(pReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoDisableCallCancellation*(pReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StringFromCLSID*(rclsid: REFCLSID, lplpsz: ptr LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CLSIDFromString*(lpsz: LPCOLESTR, pclsid: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StringFromIID*(rclsid: REFIID, lplpsz: ptr LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc IIDFromString*(lpsz: LPCOLESTR, lpiid: LPIID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc ProgIDFromCLSID*(clsid: REFCLSID, lplpszProgID: ptr LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CLSIDFromProgID*(lpszProgID: LPCOLESTR, lpclsid: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StringFromGUID2*(rguid: REFGUID, lpsz: LPOLESTR, cchMax: int32): int32 {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoCreateGuid*(pguid: ptr GUID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc PropVariantCopy*(pvarDest: ptr PROPVARIANT, pvarSrc: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc PropVariantClear*(pvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc FreePropVariantArray*(cVariants: ULONG, rgvars: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoWaitForMultipleHandles*(dwFlags: DWORD, dwTimeout: DWORD, cHandles: ULONG, pHandles: LPHANDLE, lpdwindex: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetTreatAsClass*(clsidOld: REFCLSID, pClsidNew: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoInvalidateRemoteMachineBindings*(pszMachineName: LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc DllGetClassObject*(rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} +proc CoEnableCallCancellation*( + pReserved: LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoDisableCallCancellation*( + pReserved: LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StringFromCLSID*( + rclsid: REFCLSID, lplpsz: ptr LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CLSIDFromString*( + lpsz: LPCOLESTR, pclsid: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StringFromIID*( + rclsid: REFIID, lplpsz: ptr LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc IIDFromString*( + lpsz: LPCOLESTR, lpiid: LPIID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc ProgIDFromCLSID*( + clsid: REFCLSID, lplpszProgID: ptr LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CLSIDFromProgID*( + lpszProgID: LPCOLESTR, lpclsid: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StringFromGUID2*( + rguid: REFGUID, lpsz: LPOLESTR, cchMax: int32 +): int32 {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoCreateGuid*( + pguid: ptr GUID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc PropVariantCopy*( + pvarDest: ptr PROPVARIANT, pvarSrc: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc PropVariantClear*( + pvar: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc FreePropVariantArray*( + cVariants: ULONG, rgvars: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoWaitForMultipleHandles*( + dwFlags: DWORD, + dwTimeout: DWORD, + cHandles: ULONG, + pHandles: LPHANDLE, + lpdwindex: LPDWORD, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetTreatAsClass*( + clsidOld: REFCLSID, pClsidNew: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoInvalidateRemoteMachineBindings*( + pszMachineName: LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc DllGetClassObject*( + rclsid: REFCLSID, riid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + proc DllCanUnloadNow*(): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} proc CoTaskMemAlloc*(cb: SIZE_T): LPVOID {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoTaskMemRealloc*(pv: LPVOID, cb: SIZE_T): LPVOID {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoTaskMemRealloc*( + pv: LPVOID, cb: SIZE_T +): LPVOID {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoTaskMemFree*(pv: LPVOID): void {.winapi, stdcall, dynlib: "ole32", importc.} proc CoBuildVersion*(): DWORD {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoInitialize*(pvReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterMallocSpy*(pMallocSpy: LPMALLOCSPY): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoInitialize*( + pvReserved: LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRegisterMallocSpy*( + pMallocSpy: LPMALLOCSPY +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoRevokeMallocSpy*(): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterInitializeSpy*(pSpy: LPINITIALIZESPY, puliCookie: ptr ULARGE_INTEGER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRevokeInitializeSpy*(uliCookie: ULARGE_INTEGER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetSystemSecurityPermissions*(comSDType: COMSD, ppSD: ptr PSECURITY_DESCRIPTOR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoLoadLibrary*(lpszLibName: LPOLESTR, bAutoFree: WINBOOL): HINSTANCE {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoFreeLibrary*(hInst: HINSTANCE): void {.winapi, stdcall, dynlib: "ole32", importc.} +proc CoRegisterInitializeSpy*( + pSpy: LPINITIALIZESPY, puliCookie: ptr ULARGE_INTEGER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRevokeInitializeSpy*( + uliCookie: ULARGE_INTEGER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetSystemSecurityPermissions*( + comSDType: COMSD, ppSD: ptr PSECURITY_DESCRIPTOR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoLoadLibrary*( + lpszLibName: LPOLESTR, bAutoFree: WINBOOL +): HINSTANCE {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoFreeLibrary*( + hInst: HINSTANCE +): void {.winapi, stdcall, dynlib: "ole32", importc.} + proc CoFreeAllLibraries*(): void {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetInstanceFromFile*(pServerInfo: ptr COSERVERINFO, pClsid: ptr CLSID, punkOuter: ptr IUnknown, dwClsCtx: DWORD, grfMode: DWORD, pwszName: ptr OLECHAR, dwCount: DWORD, pResults: ptr MULTI_QI): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetInstanceFromIStorage*(pServerInfo: ptr COSERVERINFO, pClsid: ptr CLSID, punkOuter: ptr IUnknown, dwClsCtx: DWORD, pstg: ptr IStorage, dwCount: DWORD, pResults: ptr MULTI_QI): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoAllowSetForegroundWindow*(pUnk: ptr IUnknown, lpvReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc DcomChannelSetHResult*(pvReserved: LPVOID, pulReserved: ptr ULONG, appsHR: HRESULT): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoIsOle1Class*(rclsid: REFCLSID): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc CLSIDFromProgIDEx*(lpszProgID: LPCOLESTR, lpclsid: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoFileTimeToDosDateTime*(lpFileTime: ptr FILETIME, lpDosDate: LPWORD, lpDosTime: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoDosDateTimeToFileTime*(nDosDate: WORD, nDosTime: WORD, lpFileTime: ptr FILETIME): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoFileTimeNow*(lpFileTime: ptr FILETIME): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterMessageFilter*(lpMessageFilter: LPMESSAGEFILTER, lplpMessageFilter: ptr LPMESSAGEFILTER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoRegisterChannelHook*(ExtensionUuid: REFGUID, pChannelHook: ptr IChannelHook): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoTreatAsClass*(clsidOld: REFCLSID, clsidNew: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateDataCache*(pUnkOuter: LPUNKNOWN, rclsid: REFCLSID, iid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgCreateDocfile*(pwcsName: ptr WCHAR, grfMode: DWORD, reserved: DWORD, ppstgOpen: ptr ptr IStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgCreateDocfileOnILockBytes*(plkbyt: ptr ILockBytes, grfMode: DWORD, reserved: DWORD, ppstgOpen: ptr ptr IStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgOpenStorage*(pwcsName: ptr WCHAR, pstgPriority: ptr IStorage, grfMode: DWORD, snbExclude: SNB, reserved: DWORD, ppstgOpen: ptr ptr IStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgOpenStorageOnILockBytes*(plkbyt: ptr ILockBytes, pstgPriority: ptr IStorage, grfMode: DWORD, snbExclude: SNB, reserved: DWORD, ppstgOpen: ptr ptr IStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgIsStorageFile*(pwcsName: ptr WCHAR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgIsStorageILockBytes*(plkbyt: ptr ILockBytes): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgSetTimes*(lpszName: ptr WCHAR, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgOpenAsyncDocfileOnIFillLockBytes*(pflb: ptr IFillLockBytes, grfMode: DWORD, asyncFlags: DWORD, ppstgOpen: ptr ptr IStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgGetIFillLockBytesOnILockBytes*(pilb: ptr ILockBytes, ppflb: ptr ptr IFillLockBytes): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgGetIFillLockBytesOnFile*(pwcsName: ptr OLECHAR, ppflb: ptr ptr IFillLockBytes): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgCreateStorageEx*(pwcsName: ptr WCHAR, grfMode: DWORD, stgfmt: DWORD, grfAttrs: DWORD, pStgOptions: ptr STGOPTIONS, pSecurityDescriptor: PSECURITY_DESCRIPTOR, riid: REFIID, ppObjectOpen: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgOpenStorageEx*(pwcsName: ptr WCHAR, grfMode: DWORD, stgfmt: DWORD, grfAttrs: DWORD, pStgOptions: ptr STGOPTIONS, pSecurityDescriptor: PSECURITY_DESCRIPTOR, riid: REFIID, ppObjectOpen: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc BindMoniker*(pmk: LPMONIKER, grfOpt: DWORD, iidResult: REFIID, ppvResult: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoGetObject*(pszName: LPCWSTR, pBindOptions: ptr BIND_OPTS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc MkParseDisplayName*(pbc: LPBC, szUserName: LPCOLESTR, pchEaten: ptr ULONG, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc MonikerRelativePathTo*(pmkSrc: LPMONIKER, pmkDest: LPMONIKER, ppmkRelPath: ptr LPMONIKER, dwReserved: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc MonikerCommonPrefixWith*(pmkThis: LPMONIKER, pmkOther: LPMONIKER, ppmkCommon: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateBindCtx*(reserved: DWORD, ppbc: ptr LPBC): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateGenericComposite*(pmkFirst: LPMONIKER, pmkRest: LPMONIKER, ppmkComposite: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc GetClassFile*(szFilename: LPCOLESTR, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateClassMoniker*(rclsid: REFCLSID, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateFileMoniker*(lpszPathName: LPCOLESTR, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateItemMoniker*(lpszDelim: LPCOLESTR, lpszItem: LPCOLESTR, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateAntiMoniker*(ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreatePointerMoniker*(punk: LPUNKNOWN, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateObjrefMoniker*(punk: LPUNKNOWN, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CoInstall*(pbc: ptr IBindCtx, dwFlags: DWORD, pClassSpec: ptr uCLSSPEC, pQuery: ptr QUERYCONTEXT, pszCodeBase: LPWSTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc GetRunningObjectTable*(reserved: DWORD, pprot: ptr LPRUNNINGOBJECTTABLE): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateURLMoniker*(pMkCtx: LPMONIKER, szURL: LPCWSTR, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateURLMonikerEx*(pMkCtx: LPMONIKER, szURL: LPCWSTR, ppmk: ptr LPMONIKER, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc GetClassURL*(szURL: LPCWSTR, pClsID: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateAsyncBindCtx*(reserved: DWORD, pBSCb: ptr IBindStatusCallback, pEFetc: ptr IEnumFORMATETC, ppBC: ptr ptr IBindCtx): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateURLMonikerEx2*(pMkCtx: LPMONIKER, pUri: ptr IUri, ppmk: ptr LPMONIKER, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateAsyncBindCtxEx*(pbc: ptr IBindCtx, dwOptions: DWORD, pBSCb: ptr IBindStatusCallback, pEnum: ptr IEnumFORMATETC, ppBC: ptr ptr IBindCtx, reserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc MkParseDisplayNameEx*(pbc: ptr IBindCtx, szDisplayName: LPCWSTR, pchEaten: ptr ULONG, ppmk: ptr LPMONIKER): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc RegisterBindStatusCallback*(pBC: LPBC, pBSCb: ptr IBindStatusCallback, ppBSCBPrev: ptr ptr IBindStatusCallback, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc RevokeBindStatusCallback*(pBC: LPBC, pBSCb: ptr IBindStatusCallback): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc GetClassFileOrMime*(pBC: LPBC, szFilename: LPCWSTR, pBuffer: LPVOID, cbSize: DWORD, szMime: LPCWSTR, dwReserved: DWORD, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc IsValidURL*(pBC: LPBC, szURL: LPCWSTR, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoGetClassObjectFromURL*(rCLASSID: REFCLSID, szCODE: LPCWSTR, dwFileVersionMS: DWORD, dwFileVersionLS: DWORD, szTYPE: LPCWSTR, pBindCtx: LPBINDCTX, dwClsContext: DWORD, pvReserved: LPVOID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc IEInstallScope*(pdwScope: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc FaultInIEFeature*(hWnd: HWND, pClassSpec: ptr uCLSSPEC, pQuery: ptr QUERYCONTEXT, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc GetComponentIDFromCLSSPEC*(pClassspec: ptr uCLSSPEC, ppszComponentID: ptr LPSTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc IsAsyncMoniker*(pmk: ptr IMoniker): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc RegisterMediaTypes*(ctypes: UINT, rgszTypes: ptr LPCSTR, rgcfTypes: ptr CLIPFORMAT): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc FindMediaType*(rgszTypes: LPCSTR, rgcfTypes: ptr CLIPFORMAT): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateFormatEnumerator*(cfmtetc: UINT, rgfmtetc: ptr FORMATETC, ppenumfmtetc: ptr ptr IEnumFORMATETC): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc RegisterFormatEnumerator*(pBC: LPBC, pEFetc: ptr IEnumFORMATETC, reserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc RevokeFormatEnumerator*(pBC: LPBC, pEFetc: ptr IEnumFORMATETC): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc RegisterMediaTypeClass*(pBC: LPBC, ctypes: UINT, rgszTypes: ptr LPCSTR, rgclsID: ptr CLSID, reserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc FindMediaTypeClass*(pBC: LPBC, szType: LPCSTR, pclsID: ptr CLSID, reserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc UrlMkSetSessionOption*(dwOption: DWORD, pBuffer: LPVOID, dwBufferLength: DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc UrlMkGetSessionOption*(dwOption: DWORD, pBuffer: LPVOID, dwBufferLength: DWORD, pdwBufferLengthOut: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc FindMimeFromData*(pBC: LPBC, pwzUrl: LPCWSTR, pBuffer: LPVOID, cbSize: DWORD, pwzMimeProposed: LPCWSTR, dwMimeFlags: DWORD, ppwzMimeOut: ptr LPWSTR, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc ObtainUserAgentString*(dwOption: DWORD, pszUAOut: LPSTR, cbSize: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CompareSecurityIds*(pbSecurityId1: ptr BYTE, dwLen1: DWORD, pbSecurityId2: ptr BYTE, dwLen2: DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CompatFlagsFromClsid*(pclsid: ptr CLSID, pdwCompatFlags: LPDWORD, pdwMiscStatusFlags: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateUri*(pwzURI: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD_PTR, ppURI: ptr ptr IUri): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateUriWithFragment*(pwzURI: LPCWSTR, pwzFragment: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD_PTR, ppURI: ptr ptr IUri): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateUriFromMultiByteString*(pszANSIInputUri: LPCSTR, dwEncodingFlags: DWORD, dwCodePage: DWORD, dwCreateFlags: DWORD, dwReserved: DWORD_PTR, ppUri: ptr ptr IUri): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CreateIUriBuilder*(pIUri: ptr IUri, dwFlags: DWORD, dwReserved: DWORD_PTR, ppIUriBuilder: ptr ptr IUriBuilder): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc HlinkSimpleNavigateToString*(szTarget: LPCWSTR, szLocation: LPCWSTR, szTargetFrameName: LPCWSTR, pUnk: ptr IUnknown, pbc: ptr IBindCtx, P6: ptr IBindStatusCallback, grfHLNF: DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc HlinkSimpleNavigateToMoniker*(pmkTarget: ptr IMoniker, szLocation: LPCWSTR, szTargetFrameName: LPCWSTR, pUnk: ptr IUnknown, pbc: ptr IBindCtx, P6: ptr IBindStatusCallback, grfHLNF: DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLOpenStreamA*(P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLOpenStreamW*(P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLOpenPullStreamA*(P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLOpenPullStreamW*(P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLDownloadToFileA*(P1: LPUNKNOWN, P2: LPCSTR, P3: LPCSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLDownloadToFileW*(P1: LPUNKNOWN, P2: LPCWSTR, P3: LPCWSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLDownloadToCacheFileA*(P1: LPUNKNOWN, P2: LPCSTR, P3: LPSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLDownloadToCacheFileW*(P1: LPUNKNOWN, P2: LPCWSTR, P3: LPWSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLOpenBlockingStreamA*(P1: LPUNKNOWN, P2: LPCSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc URLOpenBlockingStreamW*(P1: LPUNKNOWN, P2: LPCWSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc HlinkGoBack*(pUnk: ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc HlinkGoForward*(pUnk: ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc HlinkNavigateString*(pUnk: ptr IUnknown, szTarget: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc HlinkNavigateMoniker*(pUnk: ptr IUnknown, pmkTarget: ptr IMoniker): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetParseUrl*(pwzUrl: LPCWSTR, ParseAction: PARSEACTION, dwFlags: DWORD, pszResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetParseIUri*(pIUri: ptr IUri, ParseAction: PARSEACTION, dwFlags: DWORD, pwzResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetCombineUrl*(pwzBaseUrl: LPCWSTR, pwzRelativeUrl: LPCWSTR, dwCombineFlags: DWORD, pszResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetCombineUrlEx*(pBaseUri: ptr IUri, pwzRelativeUrl: LPCWSTR, dwCombineFlags: DWORD, ppCombinedUri: ptr ptr IUri, dwReserved: DWORD_PTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetCombineIUri*(pBaseUri: ptr IUri, pRelativeUri: ptr IUri, dwCombineFlags: DWORD, ppCombinedUri: ptr ptr IUri, dwReserved: DWORD_PTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetCompareUrl*(pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetGetProtocolFlags*(pwzUrl: LPCWSTR, pdwFlags: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetQueryInfo*(pwzUrl: LPCWSTR, QueryOptions: QUERYOPTION, dwQueryFlags: DWORD, pvBuffer: LPVOID, cbBuffer: DWORD, pcbBuffer: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetGetSession*(dwSessionMode: DWORD, ppIInternetSession: ptr ptr IInternetSession, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetGetSecurityUrl*(pwszUrl: LPCWSTR, ppwszSecUrl: ptr LPWSTR, psuAction: PSUACTION, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc AsyncInstallDistributionUnit*(szDistUnit: LPCWSTR, szTYPE: LPCWSTR, szExt: LPCWSTR, dwFileVersionMS: DWORD, dwFileVersionLS: DWORD, szURL: LPCWSTR, pbc: ptr IBindCtx, pvReserved: LPVOID, flags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetGetSecurityUrlEx*(pUri: ptr IUri, ppSecUri: ptr ptr IUri, psuAction: PSUACTION, dwReserved: DWORD_PTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetSetFeatureEnabled*(FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD, fEnable: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetIsFeatureEnabled*(FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetIsFeatureEnabledForUrl*(FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD, szURL: LPCWSTR, pSecMgr: ptr IInternetSecurityManager): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetIsFeatureEnabledForIUri*(FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD, pIUri: ptr IUri, pSecMgr: ptr IInternetSecurityManagerEx2): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetIsFeatureZoneElevationEnabled*(szFromURL: LPCWSTR, szToURL: LPCWSTR, pSecMgr: ptr IInternetSecurityManager, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CopyStgMedium*(pcstgmedSrc: ptr STGMEDIUM, pstgmedDest: ptr STGMEDIUM): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CopyBindInfo*(pcbiSrc: ptr BINDINFO, pbiDest: ptr BINDINFO): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc ReleaseBindInfo*(pbindinfo: ptr BINDINFO): void {.winapi, stdcall, dynlib: "urlmon", importc.} -proc OInetParseUrl*(pwzUrl: LPCWSTR, ParseAction: PARSEACTION, dwFlags: DWORD, pszResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetParseUrl".} -proc OInetCombineUrl*(pwzBaseUrl: LPCWSTR, pwzRelativeUrl: LPCWSTR, dwCombineFlags: DWORD, pszResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCombineUrl".} -proc OInetCombineUrlEx*(pBaseUri: ptr IUri, pwzRelativeUrl: LPCWSTR, dwCombineFlags: DWORD, ppCombinedUri: ptr ptr IUri, dwReserved: DWORD_PTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCombineUrlEx".} -proc OInetCombineIUri*(pBaseUri: ptr IUri, pRelativeUri: ptr IUri, dwCombineFlags: DWORD, ppCombinedUri: ptr ptr IUri, dwReserved: DWORD_PTR): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCombineIUri".} -proc OInetCompareUrl*(pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCompareUrl".} -proc OInetQueryInfo*(pwzUrl: LPCWSTR, QueryOptions: QUERYOPTION, dwQueryFlags: DWORD, pvBuffer: LPVOID, cbBuffer: DWORD, pcbBuffer: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetQueryInfo".} -proc OInetGetSession*(dwSessionMode: DWORD, ppIInternetSession: ptr ptr IInternetSession, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetGetSession".} -proc CoInternetCreateSecurityManager*(pSP: ptr IServiceProvider, ppSM: ptr ptr IInternetSecurityManager, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc CoInternetCreateZoneManager*(pSP: ptr IServiceProvider, ppZM: ptr ptr IInternetZoneManager, dwReserved: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc GetSoftwareUpdateInfo*(szDistUnit: LPCWSTR, psdi: LPSOFTDISTINFO): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc SetSoftwareUpdateAdvertisementState*(szDistUnit: LPCWSTR, dwAdState: DWORD, dwAdvertisedVersionMS: DWORD, dwAdvertisedVersionLS: DWORD): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} -proc IsLoggingEnabledA*(pszUrl: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc.} -proc IsLoggingEnabledW*(pwszUrl: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc.} -proc WriteHitLogging*(lpLogginginfo: LPHIT_LOGGING_INFO): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc.} -proc StgCreatePropStg*(pUnk: ptr IUnknown, fmtid: REFFMTID, pclsid: ptr CLSID, grfFlags: DWORD, dwReserved: DWORD, ppPropStg: ptr ptr IPropertyStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgOpenPropStg*(pUnk: ptr IUnknown, fmtid: REFFMTID, grfFlags: DWORD, dwReserved: DWORD, ppPropStg: ptr ptr IPropertyStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc StgCreatePropSetStg*(pStorage: ptr IStorage, dwReserved: DWORD, ppPropSetStg: ptr ptr IPropertySetStorage): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc FmtIdToPropStgName*(pfmtid: ptr FMTID, oszName: LPOLESTR): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc PropStgNameToFmtId*(oszName: LPOLESTR, pfmtid: ptr FMTID): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc CreateStdProgressIndicator*(hwndParent: HWND, pszTitle: LPCOLESTR, pIbscCaller: ptr IBindStatusCallback, ppIbsc: ptr ptr IBindStatusCallback): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} -proc PSCoerceToCanonicalValue*(key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreateAdapterFromPropertyStore*(pps: ptr IPropertyStore, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreateDelayedMultiplexPropertyStore*(flags: GETPROPERTYSTOREFLAGS, pdpsf: ptr IDelayedPropertyStoreFactory, rgStoreIds: ptr DWORD, cStores: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreateMemoryPropertyStore*(riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreateMultiplexPropertyStore*(prgpunkStores: ptr ptr IUnknown, cStores: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreatePropertyChangeArray*(rgpropkey: ptr PROPERTYKEY, rgflags: ptr PKA_FLAGS, rgpropvar: ptr PROPVARIANT, cChanges: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreatePropertyStoreFromObject*(punk: ptr IUnknown, grfMode: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreatePropertyStoreFromPropertySetStorage*(ppss: ptr IPropertySetStorage, grfMode: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSCreateSimplePropertyChange*(flags: PKA_FLAGS, key: REFPROPERTYKEY, propvar: REFPROPVARIANT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSEnumeratePropertyDescriptions*(filterOn: PROPDESC_ENUMFILTER, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSFormatForDisplay*(propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT, pdfFlags: PROPDESC_FORMAT_FLAGS, pwszText: LPWSTR, cchText: DWORD): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSFormatForDisplayAlloc*(key: REFPROPERTYKEY, propvar: REFPROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, ppszDisplay: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSFormatPropertyValue*(pps: ptr IPropertyStore, ppd: ptr IPropertyDescription, pdff: PROPDESC_FORMAT_FLAGS, ppszDisplay: ptr LPWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetImageReferenceForValue*(propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT, ppszImageRes: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetItemPropertyHandler*(punkItem: ptr IUnknown, fReadWrite: BOOL, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetItemPropertyHandlerWithCreateObject*(punkItem: ptr IUnknown, fReadWrite: BOOL, punkCreateObject: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetNamedPropertyFromPropertyStorage*(psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD, pszName: LPCWSTR, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetNameFromPropertyKey*(propkey: REFPROPERTYKEY, ppszCanonicalName: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertyDescription*(propkey: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertyDescriptionByName*(pszCanonicalName: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertyDescriptionListFromString*(pszPropList: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertyFromPropertyStorage*(psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD, rpkey: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertyKeyFromName*(pszName: PCWSTR, ppropkey: ptr PROPERTYKEY): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertySystem*(riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSGetPropertyValue*(pps: ptr IPropertyStore, ppd: ptr IPropertyDescription, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSLookupPropertyHandlerCLSID*(pszFilePath: PCWSTR, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_Delete*(propBag: ptr IPropertyBag, propName: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadBOOL*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr BOOL): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadBSTR*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadDWORD*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadGUID*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr GUID): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadInt*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr INT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadLONG*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadPOINTL*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTL): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadPOINTS*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTS): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadPropertyKey*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr PROPERTYKEY): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadRECTL*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr RECTL): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadSHORT*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr SHORT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadStr*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: LPWSTR, characterCount: int32): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadStrAlloc*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadStream*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr ptr IStream): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadType*(propBag: ptr IPropertyBag, propName: LPCWSTR, `var`: ptr VARIANT, `type`: VARTYPE): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadULONGLONG*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr ULONGLONG): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_ReadUnknown*(propBag: ptr IPropertyBag, propName: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteBOOL*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: BOOL): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteBSTR*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: BSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteDWORD*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: DWORD): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteGUID*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr GUID): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteInt*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: INT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteLONG*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: LONG): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WritePOINTL*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTL): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WritePOINTS*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTS): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WritePropertyKey*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: REFPROPERTYKEY): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteRECTL*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr RECTL): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteSHORT*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: SHORT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteStr*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteStream*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr IStream): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteULONGLONG*(propBag: ptr IPropertyBag, propName: LPCWSTR, value: ULONGLONG): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyBag_WriteUnknown*(propBag: ptr IPropertyBag, propName: LPCWSTR, punk: ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSPropertyKeyFromString*(pszString: LPCWSTR, pkey: ptr PROPERTYKEY): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} +proc CoGetInstanceFromFile*( + pServerInfo: ptr COSERVERINFO, + pClsid: ptr CLSID, + punkOuter: ptr IUnknown, + dwClsCtx: DWORD, + grfMode: DWORD, + pwszName: ptr OLECHAR, + dwCount: DWORD, + pResults: ptr MULTI_QI, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetInstanceFromIStorage*( + pServerInfo: ptr COSERVERINFO, + pClsid: ptr CLSID, + punkOuter: ptr IUnknown, + dwClsCtx: DWORD, + pstg: ptr IStorage, + dwCount: DWORD, + pResults: ptr MULTI_QI, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoAllowSetForegroundWindow*( + pUnk: ptr IUnknown, lpvReserved: LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc DcomChannelSetHResult*( + pvReserved: LPVOID, pulReserved: ptr ULONG, appsHR: HRESULT +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoIsOle1Class*( + rclsid: REFCLSID +): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CLSIDFromProgIDEx*( + lpszProgID: LPCOLESTR, lpclsid: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoFileTimeToDosDateTime*( + lpFileTime: ptr FILETIME, lpDosDate: LPWORD, lpDosTime: LPWORD +): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoDosDateTimeToFileTime*( + nDosDate: WORD, nDosTime: WORD, lpFileTime: ptr FILETIME +): WINBOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoFileTimeNow*( + lpFileTime: ptr FILETIME +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRegisterMessageFilter*( + lpMessageFilter: LPMESSAGEFILTER, lplpMessageFilter: ptr LPMESSAGEFILTER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoRegisterChannelHook*( + ExtensionUuid: REFGUID, pChannelHook: ptr IChannelHook +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoTreatAsClass*( + clsidOld: REFCLSID, clsidNew: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateDataCache*( + pUnkOuter: LPUNKNOWN, rclsid: REFCLSID, iid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgCreateDocfile*( + pwcsName: ptr WCHAR, grfMode: DWORD, reserved: DWORD, ppstgOpen: ptr ptr IStorage +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgCreateDocfileOnILockBytes*( + plkbyt: ptr ILockBytes, grfMode: DWORD, reserved: DWORD, ppstgOpen: ptr ptr IStorage +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgOpenStorage*( + pwcsName: ptr WCHAR, + pstgPriority: ptr IStorage, + grfMode: DWORD, + snbExclude: SNB, + reserved: DWORD, + ppstgOpen: ptr ptr IStorage, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgOpenStorageOnILockBytes*( + plkbyt: ptr ILockBytes, + pstgPriority: ptr IStorage, + grfMode: DWORD, + snbExclude: SNB, + reserved: DWORD, + ppstgOpen: ptr ptr IStorage, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgIsStorageFile*( + pwcsName: ptr WCHAR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgIsStorageILockBytes*( + plkbyt: ptr ILockBytes +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgSetTimes*( + lpszName: ptr WCHAR, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgOpenAsyncDocfileOnIFillLockBytes*( + pflb: ptr IFillLockBytes, + grfMode: DWORD, + asyncFlags: DWORD, + ppstgOpen: ptr ptr IStorage, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgGetIFillLockBytesOnILockBytes*( + pilb: ptr ILockBytes, ppflb: ptr ptr IFillLockBytes +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgGetIFillLockBytesOnFile*( + pwcsName: ptr OLECHAR, ppflb: ptr ptr IFillLockBytes +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgCreateStorageEx*( + pwcsName: ptr WCHAR, + grfMode: DWORD, + stgfmt: DWORD, + grfAttrs: DWORD, + pStgOptions: ptr STGOPTIONS, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + riid: REFIID, + ppObjectOpen: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgOpenStorageEx*( + pwcsName: ptr WCHAR, + grfMode: DWORD, + stgfmt: DWORD, + grfAttrs: DWORD, + pStgOptions: ptr STGOPTIONS, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + riid: REFIID, + ppObjectOpen: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc BindMoniker*( + pmk: LPMONIKER, grfOpt: DWORD, iidResult: REFIID, ppvResult: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoGetObject*( + pszName: LPCWSTR, pBindOptions: ptr BIND_OPTS, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc MkParseDisplayName*( + pbc: LPBC, szUserName: LPCOLESTR, pchEaten: ptr ULONG, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc MonikerRelativePathTo*( + pmkSrc: LPMONIKER, pmkDest: LPMONIKER, ppmkRelPath: ptr LPMONIKER, dwReserved: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc MonikerCommonPrefixWith*( + pmkThis: LPMONIKER, pmkOther: LPMONIKER, ppmkCommon: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateBindCtx*( + reserved: DWORD, ppbc: ptr LPBC +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateGenericComposite*( + pmkFirst: LPMONIKER, pmkRest: LPMONIKER, ppmkComposite: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc GetClassFile*( + szFilename: LPCOLESTR, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateClassMoniker*( + rclsid: REFCLSID, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateFileMoniker*( + lpszPathName: LPCOLESTR, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateItemMoniker*( + lpszDelim: LPCOLESTR, lpszItem: LPCOLESTR, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateAntiMoniker*( + ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreatePointerMoniker*( + punk: LPUNKNOWN, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateObjrefMoniker*( + punk: LPUNKNOWN, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CoInstall*( + pbc: ptr IBindCtx, + dwFlags: DWORD, + pClassSpec: ptr uCLSSPEC, + pQuery: ptr QUERYCONTEXT, + pszCodeBase: LPWSTR, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc GetRunningObjectTable*( + reserved: DWORD, pprot: ptr LPRUNNINGOBJECTTABLE +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateURLMoniker*( + pMkCtx: LPMONIKER, szURL: LPCWSTR, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateURLMonikerEx*( + pMkCtx: LPMONIKER, szURL: LPCWSTR, ppmk: ptr LPMONIKER, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc GetClassURL*( + szURL: LPCWSTR, pClsID: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateAsyncBindCtx*( + reserved: DWORD, + pBSCb: ptr IBindStatusCallback, + pEFetc: ptr IEnumFORMATETC, + ppBC: ptr ptr IBindCtx, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateURLMonikerEx2*( + pMkCtx: LPMONIKER, pUri: ptr IUri, ppmk: ptr LPMONIKER, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateAsyncBindCtxEx*( + pbc: ptr IBindCtx, + dwOptions: DWORD, + pBSCb: ptr IBindStatusCallback, + pEnum: ptr IEnumFORMATETC, + ppBC: ptr ptr IBindCtx, + reserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc MkParseDisplayNameEx*( + pbc: ptr IBindCtx, szDisplayName: LPCWSTR, pchEaten: ptr ULONG, ppmk: ptr LPMONIKER +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc RegisterBindStatusCallback*( + pBC: LPBC, + pBSCb: ptr IBindStatusCallback, + ppBSCBPrev: ptr ptr IBindStatusCallback, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc RevokeBindStatusCallback*( + pBC: LPBC, pBSCb: ptr IBindStatusCallback +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc GetClassFileOrMime*( + pBC: LPBC, + szFilename: LPCWSTR, + pBuffer: LPVOID, + cbSize: DWORD, + szMime: LPCWSTR, + dwReserved: DWORD, + pclsid: ptr CLSID, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc IsValidURL*( + pBC: LPBC, szURL: LPCWSTR, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoGetClassObjectFromURL*( + rCLASSID: REFCLSID, + szCODE: LPCWSTR, + dwFileVersionMS: DWORD, + dwFileVersionLS: DWORD, + szTYPE: LPCWSTR, + pBindCtx: LPBINDCTX, + dwClsContext: DWORD, + pvReserved: LPVOID, + riid: REFIID, + ppv: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc IEInstallScope*( + pdwScope: LPDWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc FaultInIEFeature*( + hWnd: HWND, pClassSpec: ptr uCLSSPEC, pQuery: ptr QUERYCONTEXT, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc GetComponentIDFromCLSSPEC*( + pClassspec: ptr uCLSSPEC, ppszComponentID: ptr LPSTR +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc IsAsyncMoniker*( + pmk: ptr IMoniker +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc RegisterMediaTypes*( + ctypes: UINT, rgszTypes: ptr LPCSTR, rgcfTypes: ptr CLIPFORMAT +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc FindMediaType*( + rgszTypes: LPCSTR, rgcfTypes: ptr CLIPFORMAT +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateFormatEnumerator*( + cfmtetc: UINT, rgfmtetc: ptr FORMATETC, ppenumfmtetc: ptr ptr IEnumFORMATETC +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc RegisterFormatEnumerator*( + pBC: LPBC, pEFetc: ptr IEnumFORMATETC, reserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc RevokeFormatEnumerator*( + pBC: LPBC, pEFetc: ptr IEnumFORMATETC +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc RegisterMediaTypeClass*( + pBC: LPBC, ctypes: UINT, rgszTypes: ptr LPCSTR, rgclsID: ptr CLSID, reserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc FindMediaTypeClass*( + pBC: LPBC, szType: LPCSTR, pclsID: ptr CLSID, reserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc UrlMkSetSessionOption*( + dwOption: DWORD, pBuffer: LPVOID, dwBufferLength: DWORD, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc UrlMkGetSessionOption*( + dwOption: DWORD, + pBuffer: LPVOID, + dwBufferLength: DWORD, + pdwBufferLengthOut: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc FindMimeFromData*( + pBC: LPBC, + pwzUrl: LPCWSTR, + pBuffer: LPVOID, + cbSize: DWORD, + pwzMimeProposed: LPCWSTR, + dwMimeFlags: DWORD, + ppwzMimeOut: ptr LPWSTR, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc ObtainUserAgentString*( + dwOption: DWORD, pszUAOut: LPSTR, cbSize: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CompareSecurityIds*( + pbSecurityId1: ptr BYTE, + dwLen1: DWORD, + pbSecurityId2: ptr BYTE, + dwLen2: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CompatFlagsFromClsid*( + pclsid: ptr CLSID, pdwCompatFlags: LPDWORD, pdwMiscStatusFlags: LPDWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateUri*( + pwzURI: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD_PTR, ppURI: ptr ptr IUri +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateUriWithFragment*( + pwzURI: LPCWSTR, + pwzFragment: LPCWSTR, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ppURI: ptr ptr IUri, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateUriFromMultiByteString*( + pszANSIInputUri: LPCSTR, + dwEncodingFlags: DWORD, + dwCodePage: DWORD, + dwCreateFlags: DWORD, + dwReserved: DWORD_PTR, + ppUri: ptr ptr IUri, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CreateIUriBuilder*( + pIUri: ptr IUri, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ppIUriBuilder: ptr ptr IUriBuilder, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc HlinkSimpleNavigateToString*( + szTarget: LPCWSTR, + szLocation: LPCWSTR, + szTargetFrameName: LPCWSTR, + pUnk: ptr IUnknown, + pbc: ptr IBindCtx, + P6: ptr IBindStatusCallback, + grfHLNF: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc HlinkSimpleNavigateToMoniker*( + pmkTarget: ptr IMoniker, + szLocation: LPCWSTR, + szTargetFrameName: LPCWSTR, + pUnk: ptr IUnknown, + pbc: ptr IBindCtx, + P6: ptr IBindStatusCallback, + grfHLNF: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLOpenStreamA*( + P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLOpenStreamW*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLOpenPullStreamA*( + P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLOpenPullStreamW*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLDownloadToFileA*( + P1: LPUNKNOWN, P2: LPCSTR, P3: LPCSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLDownloadToFileW*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: LPCWSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLDownloadToCacheFileA*( + P1: LPUNKNOWN, P2: LPCSTR, P3: LPSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLDownloadToCacheFileW*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: LPWSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLOpenBlockingStreamA*( + P1: LPUNKNOWN, P2: LPCSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc URLOpenBlockingStreamW*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc HlinkGoBack*( + pUnk: ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc HlinkGoForward*( + pUnk: ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc HlinkNavigateString*( + pUnk: ptr IUnknown, szTarget: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc HlinkNavigateMoniker*( + pUnk: ptr IUnknown, pmkTarget: ptr IMoniker +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetParseUrl*( + pwzUrl: LPCWSTR, + ParseAction: PARSEACTION, + dwFlags: DWORD, + pszResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetParseIUri*( + pIUri: ptr IUri, + ParseAction: PARSEACTION, + dwFlags: DWORD, + pwzResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetCombineUrl*( + pwzBaseUrl: LPCWSTR, + pwzRelativeUrl: LPCWSTR, + dwCombineFlags: DWORD, + pszResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetCombineUrlEx*( + pBaseUri: ptr IUri, + pwzRelativeUrl: LPCWSTR, + dwCombineFlags: DWORD, + ppCombinedUri: ptr ptr IUri, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetCombineIUri*( + pBaseUri: ptr IUri, + pRelativeUri: ptr IUri, + dwCombineFlags: DWORD, + ppCombinedUri: ptr ptr IUri, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetCompareUrl*( + pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetGetProtocolFlags*( + pwzUrl: LPCWSTR, pdwFlags: ptr DWORD, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetQueryInfo*( + pwzUrl: LPCWSTR, + QueryOptions: QUERYOPTION, + dwQueryFlags: DWORD, + pvBuffer: LPVOID, + cbBuffer: DWORD, + pcbBuffer: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetGetSession*( + dwSessionMode: DWORD, ppIInternetSession: ptr ptr IInternetSession, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetGetSecurityUrl*( + pwszUrl: LPCWSTR, ppwszSecUrl: ptr LPWSTR, psuAction: PSUACTION, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc AsyncInstallDistributionUnit*( + szDistUnit: LPCWSTR, + szTYPE: LPCWSTR, + szExt: LPCWSTR, + dwFileVersionMS: DWORD, + dwFileVersionLS: DWORD, + szURL: LPCWSTR, + pbc: ptr IBindCtx, + pvReserved: LPVOID, + flags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetGetSecurityUrlEx*( + pUri: ptr IUri, ppSecUri: ptr ptr IUri, psuAction: PSUACTION, dwReserved: DWORD_PTR +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetSetFeatureEnabled*( + FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD, fEnable: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetIsFeatureEnabled*( + FeatureEntry: INTERNETFEATURELIST, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetIsFeatureEnabledForUrl*( + FeatureEntry: INTERNETFEATURELIST, + dwFlags: DWORD, + szURL: LPCWSTR, + pSecMgr: ptr IInternetSecurityManager, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetIsFeatureEnabledForIUri*( + FeatureEntry: INTERNETFEATURELIST, + dwFlags: DWORD, + pIUri: ptr IUri, + pSecMgr: ptr IInternetSecurityManagerEx2, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetIsFeatureZoneElevationEnabled*( + szFromURL: LPCWSTR, + szToURL: LPCWSTR, + pSecMgr: ptr IInternetSecurityManager, + dwFlags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CopyStgMedium*( + pcstgmedSrc: ptr STGMEDIUM, pstgmedDest: ptr STGMEDIUM +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CopyBindInfo*( + pcbiSrc: ptr BINDINFO, pbiDest: ptr BINDINFO +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc ReleaseBindInfo*( + pbindinfo: ptr BINDINFO +): void {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc OInetParseUrl*( + pwzUrl: LPCWSTR, + ParseAction: PARSEACTION, + dwFlags: DWORD, + pszResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetParseUrl".} + +proc OInetCombineUrl*( + pwzBaseUrl: LPCWSTR, + pwzRelativeUrl: LPCWSTR, + dwCombineFlags: DWORD, + pszResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCombineUrl".} + +proc OInetCombineUrlEx*( + pBaseUri: ptr IUri, + pwzRelativeUrl: LPCWSTR, + dwCombineFlags: DWORD, + ppCombinedUri: ptr ptr IUri, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCombineUrlEx".} + +proc OInetCombineIUri*( + pBaseUri: ptr IUri, + pRelativeUri: ptr IUri, + dwCombineFlags: DWORD, + ppCombinedUri: ptr ptr IUri, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCombineIUri".} + +proc OInetCompareUrl*( + pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetCompareUrl".} + +proc OInetQueryInfo*( + pwzUrl: LPCWSTR, + QueryOptions: QUERYOPTION, + dwQueryFlags: DWORD, + pvBuffer: LPVOID, + cbBuffer: DWORD, + pcbBuffer: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetQueryInfo".} + +proc OInetGetSession*( + dwSessionMode: DWORD, ppIInternetSession: ptr ptr IInternetSession, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "CoInternetGetSession".} + +proc CoInternetCreateSecurityManager*( + pSP: ptr IServiceProvider, ppSM: ptr ptr IInternetSecurityManager, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc CoInternetCreateZoneManager*( + pSP: ptr IServiceProvider, ppZM: ptr ptr IInternetZoneManager, dwReserved: DWORD +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc GetSoftwareUpdateInfo*( + szDistUnit: LPCWSTR, psdi: LPSOFTDISTINFO +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc SetSoftwareUpdateAdvertisementState*( + szDistUnit: LPCWSTR, + dwAdState: DWORD, + dwAdvertisedVersionMS: DWORD, + dwAdvertisedVersionLS: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc IsLoggingEnabledA*( + pszUrl: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc IsLoggingEnabledW*( + pwszUrl: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc WriteHitLogging*( + lpLogginginfo: LPHIT_LOGGING_INFO +): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc.} + +proc StgCreatePropStg*( + pUnk: ptr IUnknown, + fmtid: REFFMTID, + pclsid: ptr CLSID, + grfFlags: DWORD, + dwReserved: DWORD, + ppPropStg: ptr ptr IPropertyStorage, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgOpenPropStg*( + pUnk: ptr IUnknown, + fmtid: REFFMTID, + grfFlags: DWORD, + dwReserved: DWORD, + ppPropStg: ptr ptr IPropertyStorage, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc StgCreatePropSetStg*( + pStorage: ptr IStorage, dwReserved: DWORD, ppPropSetStg: ptr ptr IPropertySetStorage +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc FmtIdToPropStgName*( + pfmtid: ptr FMTID, oszName: LPOLESTR +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc PropStgNameToFmtId*( + oszName: LPOLESTR, pfmtid: ptr FMTID +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc CreateStdProgressIndicator*( + hwndParent: HWND, + pszTitle: LPCOLESTR, + pIbscCaller: ptr IBindStatusCallback, + ppIbsc: ptr ptr IBindStatusCallback, +): HRESULT {.winapi, stdcall, dynlib: "ole32", importc.} + +proc PSCoerceToCanonicalValue*( + key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreateAdapterFromPropertyStore*( + pps: ptr IPropertyStore, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreateDelayedMultiplexPropertyStore*( + flags: GETPROPERTYSTOREFLAGS, + pdpsf: ptr IDelayedPropertyStoreFactory, + rgStoreIds: ptr DWORD, + cStores: DWORD, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreateMemoryPropertyStore*( + riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreateMultiplexPropertyStore*( + prgpunkStores: ptr ptr IUnknown, cStores: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreatePropertyChangeArray*( + rgpropkey: ptr PROPERTYKEY, + rgflags: ptr PKA_FLAGS, + rgpropvar: ptr PROPVARIANT, + cChanges: UINT, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreatePropertyStoreFromObject*( + punk: ptr IUnknown, grfMode: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreatePropertyStoreFromPropertySetStorage*( + ppss: ptr IPropertySetStorage, grfMode: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSCreateSimplePropertyChange*( + flags: PKA_FLAGS, + key: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSEnumeratePropertyDescriptions*( + filterOn: PROPDESC_ENUMFILTER, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSFormatForDisplay*( + propkey: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + pdfFlags: PROPDESC_FORMAT_FLAGS, + pwszText: LPWSTR, + cchText: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSFormatForDisplayAlloc*( + key: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + pdff: PROPDESC_FORMAT_FLAGS, + ppszDisplay: ptr PWSTR, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSFormatPropertyValue*( + pps: ptr IPropertyStore, + ppd: ptr IPropertyDescription, + pdff: PROPDESC_FORMAT_FLAGS, + ppszDisplay: ptr LPWSTR, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetImageReferenceForValue*( + propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT, ppszImageRes: ptr PWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetItemPropertyHandler*( + punkItem: ptr IUnknown, fReadWrite: BOOL, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetItemPropertyHandlerWithCreateObject*( + punkItem: ptr IUnknown, + fReadWrite: BOOL, + punkCreateObject: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetNamedPropertyFromPropertyStorage*( + psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD, pszName: LPCWSTR, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetNameFromPropertyKey*( + propkey: REFPROPERTYKEY, ppszCanonicalName: ptr PWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertyDescription*( + propkey: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertyDescriptionByName*( + pszCanonicalName: LPCWSTR, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertyDescriptionListFromString*( + pszPropList: LPCWSTR, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertyFromPropertyStorage*( + psps: PCUSERIALIZEDPROPSTORAGE, + cb: DWORD, + rpkey: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertyKeyFromName*( + pszName: PCWSTR, ppropkey: ptr PROPERTYKEY +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertySystem*( + riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSGetPropertyValue*( + pps: ptr IPropertyStore, ppd: ptr IPropertyDescription, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSLookupPropertyHandlerCLSID*( + pszFilePath: PCWSTR, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_Delete*( + propBag: ptr IPropertyBag, propName: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadBOOL*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr BOOL +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadBSTR*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadDWORD*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadGUID*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr GUID +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadInt*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr INT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadLONG*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadPOINTL*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTL +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadPOINTS*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTS +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadPropertyKey*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr PROPERTYKEY +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadRECTL*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr RECTL +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadSHORT*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr SHORT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadStr*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: LPWSTR, characterCount: int32 +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadStrAlloc*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr PWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadStream*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr ptr IStream +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadType*( + propBag: ptr IPropertyBag, propName: LPCWSTR, `var`: ptr VARIANT, `type`: VARTYPE +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadULONGLONG*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr ULONGLONG +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_ReadUnknown*( + propBag: ptr IPropertyBag, propName: LPCWSTR, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteBOOL*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: BOOL +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteBSTR*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: BSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteDWORD*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: DWORD +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteGUID*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr GUID +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteInt*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: INT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteLONG*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: LONG +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WritePOINTL*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTL +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WritePOINTS*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr POINTS +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WritePropertyKey*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: REFPROPERTYKEY +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteRECTL*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr RECTL +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteSHORT*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: SHORT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteStr*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteStream*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ptr IStream +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteULONGLONG*( + propBag: ptr IPropertyBag, propName: LPCWSTR, value: ULONGLONG +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyBag_WriteUnknown*( + propBag: ptr IPropertyBag, propName: LPCWSTR, punk: ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSPropertyKeyFromString*( + pszString: LPCWSTR, pkey: ptr PROPERTYKEY +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + proc PSRefreshPropertySchema*(): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSRegisterPropertySchema*(pszPath: PCWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSSetPropertyValue*(pps: ptr IPropertyStore, ppd: ptr IPropertyDescription, propvar: REFPROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSStringFromPropertyKey*(pkey: REFPROPERTYKEY, psz: LPWSTR, cch: UINT): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc PSUnregisterPropertySchema*(pszPath: PCWSTR): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} -proc VarUI4FromUI4*(ulIn: ULONG, pulOut: ptr ULONG): HRESULT {.winapi, inline.} = pulOut[] = ulIn -proc VarI4FromI4*(lIn: LONG, plOut: ptr LONG): HRESULT {.winapi, inline.} = plOut[] = lIn -proc VarUI8FromUI8*(ui64In: ULONG64, pi64Out: ptr ULONG64): HRESULT {.winapi, inline.} = pi64Out[] = ui64In -proc VarI8FromI8*(i64In: LONG64, pi64Out: ptr LONG64): HRESULT {.winapi, inline.} = pi64Out[] = i64In -proc `Lo=`*(self: var CY, x: int32) {.inline.} = self.struct1.Lo = x -proc Lo*(self: CY): int32 {.inline.} = self.struct1.Lo -proc Lo*(self: var CY): var int32 {.inline.} = self.struct1.Lo -proc `Hi=`*(self: var CY, x: int32) {.inline.} = self.struct1.Hi = x -proc Hi*(self: CY): int32 {.inline.} = self.struct1.Hi -proc Hi*(self: var CY): var int32 {.inline.} = self.struct1.Hi -proc `scale=`*(self: var DECIMAL, x: BYTE) {.inline.} = self.union1.struct1.scale = x -proc scale*(self: DECIMAL): BYTE {.inline.} = self.union1.struct1.scale -proc scale*(self: var DECIMAL): var BYTE {.inline.} = self.union1.struct1.scale -proc `sign=`*(self: var DECIMAL, x: BYTE) {.inline.} = self.union1.struct1.sign = x -proc sign*(self: DECIMAL): BYTE {.inline.} = self.union1.struct1.sign -proc sign*(self: var DECIMAL): var BYTE {.inline.} = self.union1.struct1.sign -proc `signscale=`*(self: var DECIMAL, x: USHORT) {.inline.} = self.union1.signscale = x -proc signscale*(self: DECIMAL): USHORT {.inline.} = self.union1.signscale -proc signscale*(self: var DECIMAL): var USHORT {.inline.} = self.union1.signscale -proc `Lo32=`*(self: var DECIMAL, x: ULONG) {.inline.} = self.union2.struct1.Lo32 = x -proc Lo32*(self: DECIMAL): ULONG {.inline.} = self.union2.struct1.Lo32 -proc Lo32*(self: var DECIMAL): var ULONG {.inline.} = self.union2.struct1.Lo32 -proc `Mid32=`*(self: var DECIMAL, x: ULONG) {.inline.} = self.union2.struct1.Mid32 = x -proc Mid32*(self: DECIMAL): ULONG {.inline.} = self.union2.struct1.Mid32 -proc Mid32*(self: var DECIMAL): var ULONG {.inline.} = self.union2.struct1.Mid32 -proc `Lo64=`*(self: var DECIMAL, x: ULONGLONG) {.inline.} = self.union2.Lo64 = x -proc Lo64*(self: DECIMAL): ULONGLONG {.inline.} = self.union2.Lo64 -proc Lo64*(self: var DECIMAL): var ULONGLONG {.inline.} = self.union2.Lo64 -proc `tymed=`*(self: var userSTGMEDIUM, x: DWORD) {.inline.} = self.struct1.tymed = x -proc tymed*(self: userSTGMEDIUM): DWORD {.inline.} = self.struct1.tymed -proc tymed*(self: var userSTGMEDIUM): var DWORD {.inline.} = self.struct1.tymed -proc `u=`*(self: var userSTGMEDIUM, x: userSTGMEDIUM_STRUCT1_u) {.inline.} = self.struct1.u = x -proc u*(self: userSTGMEDIUM): userSTGMEDIUM_STRUCT1_u {.inline.} = self.struct1.u -proc u*(self: var userSTGMEDIUM): var userSTGMEDIUM_STRUCT1_u {.inline.} = self.struct1.u -proc `vt=`*(self: var VARIANT, x: VARTYPE) {.inline.} = self.union1.struct1.vt = x -proc vt*(self: VARIANT): VARTYPE {.inline.} = self.union1.struct1.vt -proc vt*(self: var VARIANT): var VARTYPE {.inline.} = self.union1.struct1.vt -proc `wReserved1=`*(self: var VARIANT, x: WORD) {.inline.} = self.union1.struct1.wReserved1 = x -proc wReserved1*(self: VARIANT): WORD {.inline.} = self.union1.struct1.wReserved1 -proc wReserved1*(self: var VARIANT): var WORD {.inline.} = self.union1.struct1.wReserved1 -proc `wReserved2=`*(self: var VARIANT, x: WORD) {.inline.} = self.union1.struct1.wReserved2 = x -proc wReserved2*(self: VARIANT): WORD {.inline.} = self.union1.struct1.wReserved2 -proc wReserved2*(self: var VARIANT): var WORD {.inline.} = self.union1.struct1.wReserved2 -proc `wReserved3=`*(self: var VARIANT, x: WORD) {.inline.} = self.union1.struct1.wReserved3 = x -proc wReserved3*(self: VARIANT): WORD {.inline.} = self.union1.struct1.wReserved3 -proc wReserved3*(self: var VARIANT): var WORD {.inline.} = self.union1.struct1.wReserved3 -proc `llVal=`*(self: var VARIANT, x: LONGLONG) {.inline.} = self.union1.struct1.union1.llVal = x -proc llVal*(self: VARIANT): LONGLONG {.inline.} = self.union1.struct1.union1.llVal -proc llVal*(self: var VARIANT): var LONGLONG {.inline.} = self.union1.struct1.union1.llVal -proc `lVal=`*(self: var VARIANT, x: LONG) {.inline.} = self.union1.struct1.union1.lVal = x -proc lVal*(self: VARIANT): LONG {.inline.} = self.union1.struct1.union1.lVal -proc lVal*(self: var VARIANT): var LONG {.inline.} = self.union1.struct1.union1.lVal -proc `bVal=`*(self: var VARIANT, x: BYTE) {.inline.} = self.union1.struct1.union1.bVal = x -proc bVal*(self: VARIANT): BYTE {.inline.} = self.union1.struct1.union1.bVal -proc bVal*(self: var VARIANT): var BYTE {.inline.} = self.union1.struct1.union1.bVal -proc `iVal=`*(self: var VARIANT, x: SHORT) {.inline.} = self.union1.struct1.union1.iVal = x -proc iVal*(self: VARIANT): SHORT {.inline.} = self.union1.struct1.union1.iVal -proc iVal*(self: var VARIANT): var SHORT {.inline.} = self.union1.struct1.union1.iVal -proc `fltVal=`*(self: var VARIANT, x: FLOAT) {.inline.} = self.union1.struct1.union1.fltVal = x -proc fltVal*(self: VARIANT): FLOAT {.inline.} = self.union1.struct1.union1.fltVal -proc fltVal*(self: var VARIANT): var FLOAT {.inline.} = self.union1.struct1.union1.fltVal -proc `dblVal=`*(self: var VARIANT, x: DOUBLE) {.inline.} = self.union1.struct1.union1.dblVal = x -proc dblVal*(self: VARIANT): DOUBLE {.inline.} = self.union1.struct1.union1.dblVal -proc dblVal*(self: var VARIANT): var DOUBLE {.inline.} = self.union1.struct1.union1.dblVal -proc `boolVal=`*(self: var VARIANT, x: VARIANT_BOOL) {.inline.} = self.union1.struct1.union1.boolVal = x -proc boolVal*(self: VARIANT): VARIANT_BOOL {.inline.} = self.union1.struct1.union1.boolVal -proc boolVal*(self: var VARIANT): var VARIANT_BOOL {.inline.} = self.union1.struct1.union1.boolVal -proc `scode=`*(self: var VARIANT, x: SCODE) {.inline.} = self.union1.struct1.union1.scode = x -proc scode*(self: VARIANT): SCODE {.inline.} = self.union1.struct1.union1.scode -proc scode*(self: var VARIANT): var SCODE {.inline.} = self.union1.struct1.union1.scode -proc `cyVal=`*(self: var VARIANT, x: CY) {.inline.} = self.union1.struct1.union1.cyVal = x -proc cyVal*(self: VARIANT): CY {.inline.} = self.union1.struct1.union1.cyVal -proc cyVal*(self: var VARIANT): var CY {.inline.} = self.union1.struct1.union1.cyVal -proc `date=`*(self: var VARIANT, x: DATE) {.inline.} = self.union1.struct1.union1.date = x -proc date*(self: VARIANT): DATE {.inline.} = self.union1.struct1.union1.date -proc date*(self: var VARIANT): var DATE {.inline.} = self.union1.struct1.union1.date -proc `bstrVal=`*(self: var VARIANT, x: BSTR) {.inline.} = self.union1.struct1.union1.bstrVal = x -proc bstrVal*(self: VARIANT): BSTR {.inline.} = self.union1.struct1.union1.bstrVal -proc bstrVal*(self: var VARIANT): var BSTR {.inline.} = self.union1.struct1.union1.bstrVal -proc `punkVal=`*(self: var VARIANT, x: ptr IUnknown) {.inline.} = self.union1.struct1.union1.punkVal = x -proc punkVal*(self: VARIANT): ptr IUnknown {.inline.} = self.union1.struct1.union1.punkVal -proc punkVal*(self: var VARIANT): var ptr IUnknown {.inline.} = self.union1.struct1.union1.punkVal -proc `pdispVal=`*(self: var VARIANT, x: ptr IDispatch) {.inline.} = self.union1.struct1.union1.pdispVal = x -proc pdispVal*(self: VARIANT): ptr IDispatch {.inline.} = self.union1.struct1.union1.pdispVal -proc pdispVal*(self: var VARIANT): var ptr IDispatch {.inline.} = self.union1.struct1.union1.pdispVal -proc `parray=`*(self: var VARIANT, x: ptr SAFEARRAY) {.inline.} = self.union1.struct1.union1.parray = x -proc parray*(self: VARIANT): ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.parray -proc parray*(self: var VARIANT): var ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.parray -proc `pbVal=`*(self: var VARIANT, x: ptr BYTE) {.inline.} = self.union1.struct1.union1.pbVal = x -proc pbVal*(self: VARIANT): ptr BYTE {.inline.} = self.union1.struct1.union1.pbVal -proc pbVal*(self: var VARIANT): var ptr BYTE {.inline.} = self.union1.struct1.union1.pbVal -proc `piVal=`*(self: var VARIANT, x: ptr SHORT) {.inline.} = self.union1.struct1.union1.piVal = x -proc piVal*(self: VARIANT): ptr SHORT {.inline.} = self.union1.struct1.union1.piVal -proc piVal*(self: var VARIANT): var ptr SHORT {.inline.} = self.union1.struct1.union1.piVal -proc `plVal=`*(self: var VARIANT, x: ptr LONG) {.inline.} = self.union1.struct1.union1.plVal = x -proc plVal*(self: VARIANT): ptr LONG {.inline.} = self.union1.struct1.union1.plVal -proc plVal*(self: var VARIANT): var ptr LONG {.inline.} = self.union1.struct1.union1.plVal -proc `pllVal=`*(self: var VARIANT, x: ptr LONGLONG) {.inline.} = self.union1.struct1.union1.pllVal = x -proc pllVal*(self: VARIANT): ptr LONGLONG {.inline.} = self.union1.struct1.union1.pllVal -proc pllVal*(self: var VARIANT): var ptr LONGLONG {.inline.} = self.union1.struct1.union1.pllVal -proc `pfltVal=`*(self: var VARIANT, x: ptr FLOAT) {.inline.} = self.union1.struct1.union1.pfltVal = x -proc pfltVal*(self: VARIANT): ptr FLOAT {.inline.} = self.union1.struct1.union1.pfltVal -proc pfltVal*(self: var VARIANT): var ptr FLOAT {.inline.} = self.union1.struct1.union1.pfltVal -proc `pdblVal=`*(self: var VARIANT, x: ptr DOUBLE) {.inline.} = self.union1.struct1.union1.pdblVal = x -proc pdblVal*(self: VARIANT): ptr DOUBLE {.inline.} = self.union1.struct1.union1.pdblVal -proc pdblVal*(self: var VARIANT): var ptr DOUBLE {.inline.} = self.union1.struct1.union1.pdblVal -proc `pboolVal=`*(self: var VARIANT, x: ptr VARIANT_BOOL) {.inline.} = self.union1.struct1.union1.pboolVal = x -proc pboolVal*(self: VARIANT): ptr VARIANT_BOOL {.inline.} = self.union1.struct1.union1.pboolVal -proc pboolVal*(self: var VARIANT): var ptr VARIANT_BOOL {.inline.} = self.union1.struct1.union1.pboolVal -proc `pscode=`*(self: var VARIANT, x: ptr SCODE) {.inline.} = self.union1.struct1.union1.pscode = x -proc pscode*(self: VARIANT): ptr SCODE {.inline.} = self.union1.struct1.union1.pscode -proc pscode*(self: var VARIANT): var ptr SCODE {.inline.} = self.union1.struct1.union1.pscode -proc `pcyVal=`*(self: var VARIANT, x: ptr CY) {.inline.} = self.union1.struct1.union1.pcyVal = x -proc pcyVal*(self: VARIANT): ptr CY {.inline.} = self.union1.struct1.union1.pcyVal -proc pcyVal*(self: var VARIANT): var ptr CY {.inline.} = self.union1.struct1.union1.pcyVal -proc `pdate=`*(self: var VARIANT, x: ptr DATE) {.inline.} = self.union1.struct1.union1.pdate = x -proc pdate*(self: VARIANT): ptr DATE {.inline.} = self.union1.struct1.union1.pdate -proc pdate*(self: var VARIANT): var ptr DATE {.inline.} = self.union1.struct1.union1.pdate -proc `pbstrVal=`*(self: var VARIANT, x: ptr BSTR) {.inline.} = self.union1.struct1.union1.pbstrVal = x -proc pbstrVal*(self: VARIANT): ptr BSTR {.inline.} = self.union1.struct1.union1.pbstrVal -proc pbstrVal*(self: var VARIANT): var ptr BSTR {.inline.} = self.union1.struct1.union1.pbstrVal -proc `ppunkVal=`*(self: var VARIANT, x: ptr ptr IUnknown) {.inline.} = self.union1.struct1.union1.ppunkVal = x -proc ppunkVal*(self: VARIANT): ptr ptr IUnknown {.inline.} = self.union1.struct1.union1.ppunkVal -proc ppunkVal*(self: var VARIANT): var ptr ptr IUnknown {.inline.} = self.union1.struct1.union1.ppunkVal -proc `ppdispVal=`*(self: var VARIANT, x: ptr ptr IDispatch) {.inline.} = self.union1.struct1.union1.ppdispVal = x -proc ppdispVal*(self: VARIANT): ptr ptr IDispatch {.inline.} = self.union1.struct1.union1.ppdispVal -proc ppdispVal*(self: var VARIANT): var ptr ptr IDispatch {.inline.} = self.union1.struct1.union1.ppdispVal -proc `pparray=`*(self: var VARIANT, x: ptr ptr SAFEARRAY) {.inline.} = self.union1.struct1.union1.pparray = x -proc pparray*(self: VARIANT): ptr ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.pparray -proc pparray*(self: var VARIANT): var ptr ptr SAFEARRAY {.inline.} = self.union1.struct1.union1.pparray -proc `pvarVal=`*(self: var VARIANT, x: ptr VARIANT) {.inline.} = self.union1.struct1.union1.pvarVal = x -proc pvarVal*(self: VARIANT): ptr VARIANT {.inline.} = self.union1.struct1.union1.pvarVal -proc pvarVal*(self: var VARIANT): var ptr VARIANT {.inline.} = self.union1.struct1.union1.pvarVal -proc `byref=`*(self: var VARIANT, x: PVOID) {.inline.} = self.union1.struct1.union1.byref = x -proc byref*(self: VARIANT): PVOID {.inline.} = self.union1.struct1.union1.byref -proc byref*(self: var VARIANT): var PVOID {.inline.} = self.union1.struct1.union1.byref -proc `cVal=`*(self: var VARIANT, x: CHAR) {.inline.} = self.union1.struct1.union1.cVal = x -proc cVal*(self: VARIANT): CHAR {.inline.} = self.union1.struct1.union1.cVal -proc cVal*(self: var VARIANT): var CHAR {.inline.} = self.union1.struct1.union1.cVal -proc `uiVal=`*(self: var VARIANT, x: USHORT) {.inline.} = self.union1.struct1.union1.uiVal = x -proc uiVal*(self: VARIANT): USHORT {.inline.} = self.union1.struct1.union1.uiVal -proc uiVal*(self: var VARIANT): var USHORT {.inline.} = self.union1.struct1.union1.uiVal -proc `ulVal=`*(self: var VARIANT, x: ULONG) {.inline.} = self.union1.struct1.union1.ulVal = x -proc ulVal*(self: VARIANT): ULONG {.inline.} = self.union1.struct1.union1.ulVal -proc ulVal*(self: var VARIANT): var ULONG {.inline.} = self.union1.struct1.union1.ulVal -proc `ullVal=`*(self: var VARIANT, x: ULONGLONG) {.inline.} = self.union1.struct1.union1.ullVal = x -proc ullVal*(self: VARIANT): ULONGLONG {.inline.} = self.union1.struct1.union1.ullVal -proc ullVal*(self: var VARIANT): var ULONGLONG {.inline.} = self.union1.struct1.union1.ullVal -proc `intVal=`*(self: var VARIANT, x: INT) {.inline.} = self.union1.struct1.union1.intVal = x -proc intVal*(self: VARIANT): INT {.inline.} = self.union1.struct1.union1.intVal -proc intVal*(self: var VARIANT): var INT {.inline.} = self.union1.struct1.union1.intVal -proc `uintVal=`*(self: var VARIANT, x: UINT) {.inline.} = self.union1.struct1.union1.uintVal = x -proc uintVal*(self: VARIANT): UINT {.inline.} = self.union1.struct1.union1.uintVal -proc uintVal*(self: var VARIANT): var UINT {.inline.} = self.union1.struct1.union1.uintVal -proc `pdecVal=`*(self: var VARIANT, x: ptr DECIMAL) {.inline.} = self.union1.struct1.union1.pdecVal = x -proc pdecVal*(self: VARIANT): ptr DECIMAL {.inline.} = self.union1.struct1.union1.pdecVal -proc pdecVal*(self: var VARIANT): var ptr DECIMAL {.inline.} = self.union1.struct1.union1.pdecVal -proc `pcVal=`*(self: var VARIANT, x: ptr CHAR) {.inline.} = self.union1.struct1.union1.pcVal = x -proc pcVal*(self: VARIANT): ptr CHAR {.inline.} = self.union1.struct1.union1.pcVal -proc pcVal*(self: var VARIANT): var ptr CHAR {.inline.} = self.union1.struct1.union1.pcVal -proc `puiVal=`*(self: var VARIANT, x: ptr USHORT) {.inline.} = self.union1.struct1.union1.puiVal = x -proc puiVal*(self: VARIANT): ptr USHORT {.inline.} = self.union1.struct1.union1.puiVal -proc puiVal*(self: var VARIANT): var ptr USHORT {.inline.} = self.union1.struct1.union1.puiVal -proc `pulVal=`*(self: var VARIANT, x: ptr ULONG) {.inline.} = self.union1.struct1.union1.pulVal = x -proc pulVal*(self: VARIANT): ptr ULONG {.inline.} = self.union1.struct1.union1.pulVal -proc pulVal*(self: var VARIANT): var ptr ULONG {.inline.} = self.union1.struct1.union1.pulVal -proc `pullVal=`*(self: var VARIANT, x: ptr ULONGLONG) {.inline.} = self.union1.struct1.union1.pullVal = x -proc pullVal*(self: VARIANT): ptr ULONGLONG {.inline.} = self.union1.struct1.union1.pullVal -proc pullVal*(self: var VARIANT): var ptr ULONGLONG {.inline.} = self.union1.struct1.union1.pullVal -proc `pintVal=`*(self: var VARIANT, x: ptr INT) {.inline.} = self.union1.struct1.union1.pintVal = x -proc pintVal*(self: VARIANT): ptr INT {.inline.} = self.union1.struct1.union1.pintVal -proc pintVal*(self: var VARIANT): var ptr INT {.inline.} = self.union1.struct1.union1.pintVal -proc `puintVal=`*(self: var VARIANT, x: ptr UINT) {.inline.} = self.union1.struct1.union1.puintVal = x -proc puintVal*(self: VARIANT): ptr UINT {.inline.} = self.union1.struct1.union1.puintVal -proc puintVal*(self: var VARIANT): var ptr UINT {.inline.} = self.union1.struct1.union1.puintVal -proc `pvRecord=`*(self: var VARIANT, x: PVOID) {.inline.} = self.union1.struct1.union1.struct1.pvRecord = x -proc pvRecord*(self: VARIANT): PVOID {.inline.} = self.union1.struct1.union1.struct1.pvRecord -proc pvRecord*(self: var VARIANT): var PVOID {.inline.} = self.union1.struct1.union1.struct1.pvRecord -proc `pRecInfo=`*(self: var VARIANT, x: ptr IRecordInfo) {.inline.} = self.union1.struct1.union1.struct1.pRecInfo = x -proc pRecInfo*(self: VARIANT): ptr IRecordInfo {.inline.} = self.union1.struct1.union1.struct1.pRecInfo -proc pRecInfo*(self: var VARIANT): var ptr IRecordInfo {.inline.} = self.union1.struct1.union1.struct1.pRecInfo -proc `decVal=`*(self: var VARIANT, x: DECIMAL) {.inline.} = self.union1.decVal = x -proc decVal*(self: VARIANT): DECIMAL {.inline.} = self.union1.decVal -proc decVal*(self: var VARIANT): var DECIMAL {.inline.} = self.union1.decVal -proc `llVal=`*(self: var wireVARIANT, x: LONGLONG) {.inline.} = self.union1.llVal = x -proc llVal*(self: wireVARIANT): LONGLONG {.inline.} = self.union1.llVal -proc llVal*(self: var wireVARIANT): var LONGLONG {.inline.} = self.union1.llVal -proc `lVal=`*(self: var wireVARIANT, x: LONG) {.inline.} = self.union1.lVal = x -proc lVal*(self: wireVARIANT): LONG {.inline.} = self.union1.lVal -proc lVal*(self: var wireVARIANT): var LONG {.inline.} = self.union1.lVal -proc `bVal=`*(self: var wireVARIANT, x: BYTE) {.inline.} = self.union1.bVal = x -proc bVal*(self: wireVARIANT): BYTE {.inline.} = self.union1.bVal -proc bVal*(self: var wireVARIANT): var BYTE {.inline.} = self.union1.bVal -proc `iVal=`*(self: var wireVARIANT, x: SHORT) {.inline.} = self.union1.iVal = x -proc iVal*(self: wireVARIANT): SHORT {.inline.} = self.union1.iVal -proc iVal*(self: var wireVARIANT): var SHORT {.inline.} = self.union1.iVal -proc `fltVal=`*(self: var wireVARIANT, x: FLOAT) {.inline.} = self.union1.fltVal = x -proc fltVal*(self: wireVARIANT): FLOAT {.inline.} = self.union1.fltVal -proc fltVal*(self: var wireVARIANT): var FLOAT {.inline.} = self.union1.fltVal -proc `dblVal=`*(self: var wireVARIANT, x: DOUBLE) {.inline.} = self.union1.dblVal = x -proc dblVal*(self: wireVARIANT): DOUBLE {.inline.} = self.union1.dblVal -proc dblVal*(self: var wireVARIANT): var DOUBLE {.inline.} = self.union1.dblVal -proc `boolVal=`*(self: var wireVARIANT, x: VARIANT_BOOL) {.inline.} = self.union1.boolVal = x -proc boolVal*(self: wireVARIANT): VARIANT_BOOL {.inline.} = self.union1.boolVal -proc boolVal*(self: var wireVARIANT): var VARIANT_BOOL {.inline.} = self.union1.boolVal -proc `scode=`*(self: var wireVARIANT, x: SCODE) {.inline.} = self.union1.scode = x -proc scode*(self: wireVARIANT): SCODE {.inline.} = self.union1.scode -proc scode*(self: var wireVARIANT): var SCODE {.inline.} = self.union1.scode -proc `cyVal=`*(self: var wireVARIANT, x: CY) {.inline.} = self.union1.cyVal = x -proc cyVal*(self: wireVARIANT): CY {.inline.} = self.union1.cyVal -proc cyVal*(self: var wireVARIANT): var CY {.inline.} = self.union1.cyVal -proc `date=`*(self: var wireVARIANT, x: DATE) {.inline.} = self.union1.date = x -proc date*(self: wireVARIANT): DATE {.inline.} = self.union1.date -proc date*(self: var wireVARIANT): var DATE {.inline.} = self.union1.date -proc `bstrVal=`*(self: var wireVARIANT, x: wireBSTR) {.inline.} = self.union1.bstrVal = x -proc bstrVal*(self: wireVARIANT): wireBSTR {.inline.} = self.union1.bstrVal -proc bstrVal*(self: var wireVARIANT): var wireBSTR {.inline.} = self.union1.bstrVal -proc `punkVal=`*(self: var wireVARIANT, x: ptr IUnknown) {.inline.} = self.union1.punkVal = x -proc punkVal*(self: wireVARIANT): ptr IUnknown {.inline.} = self.union1.punkVal -proc punkVal*(self: var wireVARIANT): var ptr IUnknown {.inline.} = self.union1.punkVal -proc `pdispVal=`*(self: var wireVARIANT, x: ptr IDispatch) {.inline.} = self.union1.pdispVal = x -proc pdispVal*(self: wireVARIANT): ptr IDispatch {.inline.} = self.union1.pdispVal -proc pdispVal*(self: var wireVARIANT): var ptr IDispatch {.inline.} = self.union1.pdispVal -proc `parray=`*(self: var wireVARIANT, x: wirePSAFEARRAY) {.inline.} = self.union1.parray = x -proc parray*(self: wireVARIANT): wirePSAFEARRAY {.inline.} = self.union1.parray -proc parray*(self: var wireVARIANT): var wirePSAFEARRAY {.inline.} = self.union1.parray -proc `brecVal=`*(self: var wireVARIANT, x: wireBRECORD) {.inline.} = self.union1.brecVal = x -proc brecVal*(self: wireVARIANT): wireBRECORD {.inline.} = self.union1.brecVal -proc brecVal*(self: var wireVARIANT): var wireBRECORD {.inline.} = self.union1.brecVal -proc `pbVal=`*(self: var wireVARIANT, x: ptr BYTE) {.inline.} = self.union1.pbVal = x -proc pbVal*(self: wireVARIANT): ptr BYTE {.inline.} = self.union1.pbVal -proc pbVal*(self: var wireVARIANT): var ptr BYTE {.inline.} = self.union1.pbVal -proc `piVal=`*(self: var wireVARIANT, x: ptr SHORT) {.inline.} = self.union1.piVal = x -proc piVal*(self: wireVARIANT): ptr SHORT {.inline.} = self.union1.piVal -proc piVal*(self: var wireVARIANT): var ptr SHORT {.inline.} = self.union1.piVal -proc `plVal=`*(self: var wireVARIANT, x: ptr LONG) {.inline.} = self.union1.plVal = x -proc plVal*(self: wireVARIANT): ptr LONG {.inline.} = self.union1.plVal -proc plVal*(self: var wireVARIANT): var ptr LONG {.inline.} = self.union1.plVal -proc `pllVal=`*(self: var wireVARIANT, x: ptr LONGLONG) {.inline.} = self.union1.pllVal = x -proc pllVal*(self: wireVARIANT): ptr LONGLONG {.inline.} = self.union1.pllVal -proc pllVal*(self: var wireVARIANT): var ptr LONGLONG {.inline.} = self.union1.pllVal -proc `pfltVal=`*(self: var wireVARIANT, x: ptr FLOAT) {.inline.} = self.union1.pfltVal = x -proc pfltVal*(self: wireVARIANT): ptr FLOAT {.inline.} = self.union1.pfltVal -proc pfltVal*(self: var wireVARIANT): var ptr FLOAT {.inline.} = self.union1.pfltVal -proc `pdblVal=`*(self: var wireVARIANT, x: ptr DOUBLE) {.inline.} = self.union1.pdblVal = x -proc pdblVal*(self: wireVARIANT): ptr DOUBLE {.inline.} = self.union1.pdblVal -proc pdblVal*(self: var wireVARIANT): var ptr DOUBLE {.inline.} = self.union1.pdblVal -proc `pboolVal=`*(self: var wireVARIANT, x: ptr VARIANT_BOOL) {.inline.} = self.union1.pboolVal = x -proc pboolVal*(self: wireVARIANT): ptr VARIANT_BOOL {.inline.} = self.union1.pboolVal -proc pboolVal*(self: var wireVARIANT): var ptr VARIANT_BOOL {.inline.} = self.union1.pboolVal -proc `pscode=`*(self: var wireVARIANT, x: ptr SCODE) {.inline.} = self.union1.pscode = x -proc pscode*(self: wireVARIANT): ptr SCODE {.inline.} = self.union1.pscode -proc pscode*(self: var wireVARIANT): var ptr SCODE {.inline.} = self.union1.pscode -proc `pcyVal=`*(self: var wireVARIANT, x: ptr CY) {.inline.} = self.union1.pcyVal = x -proc pcyVal*(self: wireVARIANT): ptr CY {.inline.} = self.union1.pcyVal -proc pcyVal*(self: var wireVARIANT): var ptr CY {.inline.} = self.union1.pcyVal -proc `pdate=`*(self: var wireVARIANT, x: ptr DATE) {.inline.} = self.union1.pdate = x -proc pdate*(self: wireVARIANT): ptr DATE {.inline.} = self.union1.pdate -proc pdate*(self: var wireVARIANT): var ptr DATE {.inline.} = self.union1.pdate -proc `pbstrVal=`*(self: var wireVARIANT, x: ptr wireBSTR) {.inline.} = self.union1.pbstrVal = x -proc pbstrVal*(self: wireVARIANT): ptr wireBSTR {.inline.} = self.union1.pbstrVal -proc pbstrVal*(self: var wireVARIANT): var ptr wireBSTR {.inline.} = self.union1.pbstrVal -proc `ppunkVal=`*(self: var wireVARIANT, x: ptr ptr IUnknown) {.inline.} = self.union1.ppunkVal = x -proc ppunkVal*(self: wireVARIANT): ptr ptr IUnknown {.inline.} = self.union1.ppunkVal -proc ppunkVal*(self: var wireVARIANT): var ptr ptr IUnknown {.inline.} = self.union1.ppunkVal -proc `ppdispVal=`*(self: var wireVARIANT, x: ptr ptr IDispatch) {.inline.} = self.union1.ppdispVal = x -proc ppdispVal*(self: wireVARIANT): ptr ptr IDispatch {.inline.} = self.union1.ppdispVal -proc ppdispVal*(self: var wireVARIANT): var ptr ptr IDispatch {.inline.} = self.union1.ppdispVal -proc `pparray=`*(self: var wireVARIANT, x: ptr wirePSAFEARRAY) {.inline.} = self.union1.pparray = x -proc pparray*(self: wireVARIANT): ptr wirePSAFEARRAY {.inline.} = self.union1.pparray -proc pparray*(self: var wireVARIANT): var ptr wirePSAFEARRAY {.inline.} = self.union1.pparray -proc `pvarVal=`*(self: var wireVARIANT, x: ptr wireVARIANT) {.inline.} = self.union1.pvarVal = x -proc pvarVal*(self: wireVARIANT): ptr wireVARIANT {.inline.} = self.union1.pvarVal -proc pvarVal*(self: var wireVARIANT): var ptr wireVARIANT {.inline.} = self.union1.pvarVal -proc `cVal=`*(self: var wireVARIANT, x: CHAR) {.inline.} = self.union1.cVal = x -proc cVal*(self: wireVARIANT): CHAR {.inline.} = self.union1.cVal -proc cVal*(self: var wireVARIANT): var CHAR {.inline.} = self.union1.cVal -proc `uiVal=`*(self: var wireVARIANT, x: USHORT) {.inline.} = self.union1.uiVal = x -proc uiVal*(self: wireVARIANT): USHORT {.inline.} = self.union1.uiVal -proc uiVal*(self: var wireVARIANT): var USHORT {.inline.} = self.union1.uiVal -proc `ulVal=`*(self: var wireVARIANT, x: ULONG) {.inline.} = self.union1.ulVal = x -proc ulVal*(self: wireVARIANT): ULONG {.inline.} = self.union1.ulVal -proc ulVal*(self: var wireVARIANT): var ULONG {.inline.} = self.union1.ulVal -proc `ullVal=`*(self: var wireVARIANT, x: ULONGLONG) {.inline.} = self.union1.ullVal = x -proc ullVal*(self: wireVARIANT): ULONGLONG {.inline.} = self.union1.ullVal -proc ullVal*(self: var wireVARIANT): var ULONGLONG {.inline.} = self.union1.ullVal -proc `intVal=`*(self: var wireVARIANT, x: INT) {.inline.} = self.union1.intVal = x -proc intVal*(self: wireVARIANT): INT {.inline.} = self.union1.intVal -proc intVal*(self: var wireVARIANT): var INT {.inline.} = self.union1.intVal -proc `uintVal=`*(self: var wireVARIANT, x: UINT) {.inline.} = self.union1.uintVal = x -proc uintVal*(self: wireVARIANT): UINT {.inline.} = self.union1.uintVal -proc uintVal*(self: var wireVARIANT): var UINT {.inline.} = self.union1.uintVal -proc `decVal=`*(self: var wireVARIANT, x: DECIMAL) {.inline.} = self.union1.decVal = x -proc decVal*(self: wireVARIANT): DECIMAL {.inline.} = self.union1.decVal -proc decVal*(self: var wireVARIANT): var DECIMAL {.inline.} = self.union1.decVal -proc `pdecVal=`*(self: var wireVARIANT, x: ptr DECIMAL) {.inline.} = self.union1.pdecVal = x -proc pdecVal*(self: wireVARIANT): ptr DECIMAL {.inline.} = self.union1.pdecVal -proc pdecVal*(self: var wireVARIANT): var ptr DECIMAL {.inline.} = self.union1.pdecVal -proc `pcVal=`*(self: var wireVARIANT, x: ptr CHAR) {.inline.} = self.union1.pcVal = x -proc pcVal*(self: wireVARIANT): ptr CHAR {.inline.} = self.union1.pcVal -proc pcVal*(self: var wireVARIANT): var ptr CHAR {.inline.} = self.union1.pcVal -proc `puiVal=`*(self: var wireVARIANT, x: ptr USHORT) {.inline.} = self.union1.puiVal = x -proc puiVal*(self: wireVARIANT): ptr USHORT {.inline.} = self.union1.puiVal -proc puiVal*(self: var wireVARIANT): var ptr USHORT {.inline.} = self.union1.puiVal -proc `pulVal=`*(self: var wireVARIANT, x: ptr ULONG) {.inline.} = self.union1.pulVal = x -proc pulVal*(self: wireVARIANT): ptr ULONG {.inline.} = self.union1.pulVal -proc pulVal*(self: var wireVARIANT): var ptr ULONG {.inline.} = self.union1.pulVal -proc `pullVal=`*(self: var wireVARIANT, x: ptr ULONGLONG) {.inline.} = self.union1.pullVal = x -proc pullVal*(self: wireVARIANT): ptr ULONGLONG {.inline.} = self.union1.pullVal -proc pullVal*(self: var wireVARIANT): var ptr ULONGLONG {.inline.} = self.union1.pullVal -proc `pintVal=`*(self: var wireVARIANT, x: ptr INT) {.inline.} = self.union1.pintVal = x -proc pintVal*(self: wireVARIANT): ptr INT {.inline.} = self.union1.pintVal -proc pintVal*(self: var wireVARIANT): var ptr INT {.inline.} = self.union1.pintVal -proc `puintVal=`*(self: var wireVARIANT, x: ptr UINT) {.inline.} = self.union1.puintVal = x -proc puintVal*(self: wireVARIANT): ptr UINT {.inline.} = self.union1.puintVal -proc puintVal*(self: var wireVARIANT): var ptr UINT {.inline.} = self.union1.puintVal -proc `lptdesc=`*(self: var TYPEDESC, x: ptr TYPEDESC) {.inline.} = self.union1.lptdesc = x -proc lptdesc*(self: TYPEDESC): ptr TYPEDESC {.inline.} = self.union1.lptdesc -proc lptdesc*(self: var TYPEDESC): var ptr TYPEDESC {.inline.} = self.union1.lptdesc -proc `lpadesc=`*(self: var TYPEDESC, x: ptr ARRAYDESC) {.inline.} = self.union1.lpadesc = x -proc lpadesc*(self: TYPEDESC): ptr ARRAYDESC {.inline.} = self.union1.lpadesc -proc lpadesc*(self: var TYPEDESC): var ptr ARRAYDESC {.inline.} = self.union1.lpadesc -proc `hreftype=`*(self: var TYPEDESC, x: HREFTYPE) {.inline.} = self.union1.hreftype = x -proc hreftype*(self: TYPEDESC): HREFTYPE {.inline.} = self.union1.hreftype -proc hreftype*(self: var TYPEDESC): var HREFTYPE {.inline.} = self.union1.hreftype -proc `idldesc=`*(self: var ELEMDESC, x: IDLDESC) {.inline.} = self.union1.idldesc = x -proc idldesc*(self: ELEMDESC): IDLDESC {.inline.} = self.union1.idldesc -proc idldesc*(self: var ELEMDESC): var IDLDESC {.inline.} = self.union1.idldesc -proc `paramdesc=`*(self: var ELEMDESC, x: PARAMDESC) {.inline.} = self.union1.paramdesc = x -proc paramdesc*(self: ELEMDESC): PARAMDESC {.inline.} = self.union1.paramdesc -proc paramdesc*(self: var ELEMDESC): var PARAMDESC {.inline.} = self.union1.paramdesc -proc `oInst=`*(self: var VARDESC, x: ULONG) {.inline.} = self.union1.oInst = x -proc oInst*(self: VARDESC): ULONG {.inline.} = self.union1.oInst -proc oInst*(self: var VARDESC): var ULONG {.inline.} = self.union1.oInst -proc `lpvarValue=`*(self: var VARDESC, x: ptr VARIANT) {.inline.} = self.union1.lpvarValue = x -proc lpvarValue*(self: VARDESC): ptr VARIANT {.inline.} = self.union1.lpvarValue -proc lpvarValue*(self: var VARDESC): var ptr VARIANT {.inline.} = self.union1.lpvarValue -proc `vt=`*(self: var PROPVARIANT, x: VARTYPE) {.inline.} = self.union1.struct1.vt = x -proc vt*(self: PROPVARIANT): VARTYPE {.inline.} = self.union1.struct1.vt -proc vt*(self: var PROPVARIANT): var VARTYPE {.inline.} = self.union1.struct1.vt -proc `wReserved1=`*(self: var PROPVARIANT, x: PROPVAR_PAD1) {.inline.} = self.union1.struct1.wReserved1 = x -proc wReserved1*(self: PROPVARIANT): PROPVAR_PAD1 {.inline.} = self.union1.struct1.wReserved1 -proc wReserved1*(self: var PROPVARIANT): var PROPVAR_PAD1 {.inline.} = self.union1.struct1.wReserved1 -proc `wReserved2=`*(self: var PROPVARIANT, x: PROPVAR_PAD2) {.inline.} = self.union1.struct1.wReserved2 = x -proc wReserved2*(self: PROPVARIANT): PROPVAR_PAD2 {.inline.} = self.union1.struct1.wReserved2 -proc wReserved2*(self: var PROPVARIANT): var PROPVAR_PAD2 {.inline.} = self.union1.struct1.wReserved2 -proc `wReserved3=`*(self: var PROPVARIANT, x: PROPVAR_PAD3) {.inline.} = self.union1.struct1.wReserved3 = x -proc wReserved3*(self: PROPVARIANT): PROPVAR_PAD3 {.inline.} = self.union1.struct1.wReserved3 -proc wReserved3*(self: var PROPVARIANT): var PROPVAR_PAD3 {.inline.} = self.union1.struct1.wReserved3 -proc `cVal=`*(self: var PROPVARIANT, x: CHAR) {.inline.} = self.union1.struct1.union1.cVal = x -proc cVal*(self: PROPVARIANT): CHAR {.inline.} = self.union1.struct1.union1.cVal -proc cVal*(self: var PROPVARIANT): var CHAR {.inline.} = self.union1.struct1.union1.cVal -proc `bVal=`*(self: var PROPVARIANT, x: UCHAR) {.inline.} = self.union1.struct1.union1.bVal = x -proc bVal*(self: PROPVARIANT): UCHAR {.inline.} = self.union1.struct1.union1.bVal -proc bVal*(self: var PROPVARIANT): var UCHAR {.inline.} = self.union1.struct1.union1.bVal -proc `iVal=`*(self: var PROPVARIANT, x: SHORT) {.inline.} = self.union1.struct1.union1.iVal = x -proc iVal*(self: PROPVARIANT): SHORT {.inline.} = self.union1.struct1.union1.iVal -proc iVal*(self: var PROPVARIANT): var SHORT {.inline.} = self.union1.struct1.union1.iVal -proc `uiVal=`*(self: var PROPVARIANT, x: USHORT) {.inline.} = self.union1.struct1.union1.uiVal = x -proc uiVal*(self: PROPVARIANT): USHORT {.inline.} = self.union1.struct1.union1.uiVal -proc uiVal*(self: var PROPVARIANT): var USHORT {.inline.} = self.union1.struct1.union1.uiVal -proc `lVal=`*(self: var PROPVARIANT, x: LONG) {.inline.} = self.union1.struct1.union1.lVal = x -proc lVal*(self: PROPVARIANT): LONG {.inline.} = self.union1.struct1.union1.lVal -proc lVal*(self: var PROPVARIANT): var LONG {.inline.} = self.union1.struct1.union1.lVal -proc `ulVal=`*(self: var PROPVARIANT, x: ULONG) {.inline.} = self.union1.struct1.union1.ulVal = x -proc ulVal*(self: PROPVARIANT): ULONG {.inline.} = self.union1.struct1.union1.ulVal -proc ulVal*(self: var PROPVARIANT): var ULONG {.inline.} = self.union1.struct1.union1.ulVal -proc `intVal=`*(self: var PROPVARIANT, x: INT) {.inline.} = self.union1.struct1.union1.intVal = x -proc intVal*(self: PROPVARIANT): INT {.inline.} = self.union1.struct1.union1.intVal -proc intVal*(self: var PROPVARIANT): var INT {.inline.} = self.union1.struct1.union1.intVal -proc `uintVal=`*(self: var PROPVARIANT, x: UINT) {.inline.} = self.union1.struct1.union1.uintVal = x -proc uintVal*(self: PROPVARIANT): UINT {.inline.} = self.union1.struct1.union1.uintVal -proc uintVal*(self: var PROPVARIANT): var UINT {.inline.} = self.union1.struct1.union1.uintVal -proc `hVal=`*(self: var PROPVARIANT, x: LARGE_INTEGER) {.inline.} = self.union1.struct1.union1.hVal = x -proc hVal*(self: PROPVARIANT): LARGE_INTEGER {.inline.} = self.union1.struct1.union1.hVal -proc hVal*(self: var PROPVARIANT): var LARGE_INTEGER {.inline.} = self.union1.struct1.union1.hVal -proc `uhVal=`*(self: var PROPVARIANT, x: ULARGE_INTEGER) {.inline.} = self.union1.struct1.union1.uhVal = x -proc uhVal*(self: PROPVARIANT): ULARGE_INTEGER {.inline.} = self.union1.struct1.union1.uhVal -proc uhVal*(self: var PROPVARIANT): var ULARGE_INTEGER {.inline.} = self.union1.struct1.union1.uhVal -proc `fltVal=`*(self: var PROPVARIANT, x: FLOAT) {.inline.} = self.union1.struct1.union1.fltVal = x -proc fltVal*(self: PROPVARIANT): FLOAT {.inline.} = self.union1.struct1.union1.fltVal -proc fltVal*(self: var PROPVARIANT): var FLOAT {.inline.} = self.union1.struct1.union1.fltVal -proc `dblVal=`*(self: var PROPVARIANT, x: DOUBLE) {.inline.} = self.union1.struct1.union1.dblVal = x -proc dblVal*(self: PROPVARIANT): DOUBLE {.inline.} = self.union1.struct1.union1.dblVal -proc dblVal*(self: var PROPVARIANT): var DOUBLE {.inline.} = self.union1.struct1.union1.dblVal -proc `boolVal=`*(self: var PROPVARIANT, x: VARIANT_BOOL) {.inline.} = self.union1.struct1.union1.boolVal = x -proc boolVal*(self: PROPVARIANT): VARIANT_BOOL {.inline.} = self.union1.struct1.union1.boolVal -proc boolVal*(self: var PROPVARIANT): var VARIANT_BOOL {.inline.} = self.union1.struct1.union1.boolVal -proc `scode=`*(self: var PROPVARIANT, x: SCODE) {.inline.} = self.union1.struct1.union1.scode = x -proc scode*(self: PROPVARIANT): SCODE {.inline.} = self.union1.struct1.union1.scode -proc scode*(self: var PROPVARIANT): var SCODE {.inline.} = self.union1.struct1.union1.scode -proc `cyVal=`*(self: var PROPVARIANT, x: CY) {.inline.} = self.union1.struct1.union1.cyVal = x -proc cyVal*(self: PROPVARIANT): CY {.inline.} = self.union1.struct1.union1.cyVal -proc cyVal*(self: var PROPVARIANT): var CY {.inline.} = self.union1.struct1.union1.cyVal -proc `date=`*(self: var PROPVARIANT, x: DATE) {.inline.} = self.union1.struct1.union1.date = x -proc date*(self: PROPVARIANT): DATE {.inline.} = self.union1.struct1.union1.date -proc date*(self: var PROPVARIANT): var DATE {.inline.} = self.union1.struct1.union1.date -proc `filetime=`*(self: var PROPVARIANT, x: FILETIME) {.inline.} = self.union1.struct1.union1.filetime = x -proc filetime*(self: PROPVARIANT): FILETIME {.inline.} = self.union1.struct1.union1.filetime -proc filetime*(self: var PROPVARIANT): var FILETIME {.inline.} = self.union1.struct1.union1.filetime -proc `puuid=`*(self: var PROPVARIANT, x: ptr CLSID) {.inline.} = self.union1.struct1.union1.puuid = x -proc puuid*(self: PROPVARIANT): ptr CLSID {.inline.} = self.union1.struct1.union1.puuid -proc puuid*(self: var PROPVARIANT): var ptr CLSID {.inline.} = self.union1.struct1.union1.puuid -proc `pclipdata=`*(self: var PROPVARIANT, x: ptr CLIPDATA) {.inline.} = self.union1.struct1.union1.pclipdata = x -proc pclipdata*(self: PROPVARIANT): ptr CLIPDATA {.inline.} = self.union1.struct1.union1.pclipdata -proc pclipdata*(self: var PROPVARIANT): var ptr CLIPDATA {.inline.} = self.union1.struct1.union1.pclipdata -proc `bstrVal=`*(self: var PROPVARIANT, x: BSTR) {.inline.} = self.union1.struct1.union1.bstrVal = x -proc bstrVal*(self: PROPVARIANT): BSTR {.inline.} = self.union1.struct1.union1.bstrVal -proc bstrVal*(self: var PROPVARIANT): var BSTR {.inline.} = self.union1.struct1.union1.bstrVal -proc `bstrblobVal=`*(self: var PROPVARIANT, x: BSTRBLOB) {.inline.} = self.union1.struct1.union1.bstrblobVal = x -proc bstrblobVal*(self: PROPVARIANT): BSTRBLOB {.inline.} = self.union1.struct1.union1.bstrblobVal -proc bstrblobVal*(self: var PROPVARIANT): var BSTRBLOB {.inline.} = self.union1.struct1.union1.bstrblobVal -proc `blob=`*(self: var PROPVARIANT, x: BLOB) {.inline.} = self.union1.struct1.union1.blob = x -proc blob*(self: PROPVARIANT): BLOB {.inline.} = self.union1.struct1.union1.blob -proc blob*(self: var PROPVARIANT): var BLOB {.inline.} = self.union1.struct1.union1.blob -proc `pszVal=`*(self: var PROPVARIANT, x: LPSTR) {.inline.} = self.union1.struct1.union1.pszVal = x -proc pszVal*(self: PROPVARIANT): LPSTR {.inline.} = self.union1.struct1.union1.pszVal -proc pszVal*(self: var PROPVARIANT): var LPSTR {.inline.} = self.union1.struct1.union1.pszVal -proc `pwszVal=`*(self: var PROPVARIANT, x: LPWSTR) {.inline.} = self.union1.struct1.union1.pwszVal = x -proc pwszVal*(self: PROPVARIANT): LPWSTR {.inline.} = self.union1.struct1.union1.pwszVal -proc pwszVal*(self: var PROPVARIANT): var LPWSTR {.inline.} = self.union1.struct1.union1.pwszVal -proc `punkVal=`*(self: var PROPVARIANT, x: ptr IUnknown) {.inline.} = self.union1.struct1.union1.punkVal = x -proc punkVal*(self: PROPVARIANT): ptr IUnknown {.inline.} = self.union1.struct1.union1.punkVal -proc punkVal*(self: var PROPVARIANT): var ptr IUnknown {.inline.} = self.union1.struct1.union1.punkVal -proc `pdispVal=`*(self: var PROPVARIANT, x: ptr IDispatch) {.inline.} = self.union1.struct1.union1.pdispVal = x -proc pdispVal*(self: PROPVARIANT): ptr IDispatch {.inline.} = self.union1.struct1.union1.pdispVal -proc pdispVal*(self: var PROPVARIANT): var ptr IDispatch {.inline.} = self.union1.struct1.union1.pdispVal -proc `pStream=`*(self: var PROPVARIANT, x: ptr IStream) {.inline.} = self.union1.struct1.union1.pStream = x -proc pStream*(self: PROPVARIANT): ptr IStream {.inline.} = self.union1.struct1.union1.pStream -proc pStream*(self: var PROPVARIANT): var ptr IStream {.inline.} = self.union1.struct1.union1.pStream -proc `pStorage=`*(self: var PROPVARIANT, x: ptr IStorage) {.inline.} = self.union1.struct1.union1.pStorage = x -proc pStorage*(self: PROPVARIANT): ptr IStorage {.inline.} = self.union1.struct1.union1.pStorage -proc pStorage*(self: var PROPVARIANT): var ptr IStorage {.inline.} = self.union1.struct1.union1.pStorage -proc `pVersionedStream=`*(self: var PROPVARIANT, x: LPVERSIONEDSTREAM) {.inline.} = self.union1.struct1.union1.pVersionedStream = x -proc pVersionedStream*(self: PROPVARIANT): LPVERSIONEDSTREAM {.inline.} = self.union1.struct1.union1.pVersionedStream -proc pVersionedStream*(self: var PROPVARIANT): var LPVERSIONEDSTREAM {.inline.} = self.union1.struct1.union1.pVersionedStream -proc `parray=`*(self: var PROPVARIANT, x: LPSAFEARRAY) {.inline.} = self.union1.struct1.union1.parray = x -proc parray*(self: PROPVARIANT): LPSAFEARRAY {.inline.} = self.union1.struct1.union1.parray -proc parray*(self: var PROPVARIANT): var LPSAFEARRAY {.inline.} = self.union1.struct1.union1.parray -proc `cac=`*(self: var PROPVARIANT, x: CAC) {.inline.} = self.union1.struct1.union1.cac = x -proc cac*(self: PROPVARIANT): CAC {.inline.} = self.union1.struct1.union1.cac -proc cac*(self: var PROPVARIANT): var CAC {.inline.} = self.union1.struct1.union1.cac -proc `caub=`*(self: var PROPVARIANT, x: CAUB) {.inline.} = self.union1.struct1.union1.caub = x -proc caub*(self: PROPVARIANT): CAUB {.inline.} = self.union1.struct1.union1.caub -proc caub*(self: var PROPVARIANT): var CAUB {.inline.} = self.union1.struct1.union1.caub -proc `cai=`*(self: var PROPVARIANT, x: CAI) {.inline.} = self.union1.struct1.union1.cai = x -proc cai*(self: PROPVARIANT): CAI {.inline.} = self.union1.struct1.union1.cai -proc cai*(self: var PROPVARIANT): var CAI {.inline.} = self.union1.struct1.union1.cai -proc `caui=`*(self: var PROPVARIANT, x: CAUI) {.inline.} = self.union1.struct1.union1.caui = x -proc caui*(self: PROPVARIANT): CAUI {.inline.} = self.union1.struct1.union1.caui -proc caui*(self: var PROPVARIANT): var CAUI {.inline.} = self.union1.struct1.union1.caui -proc `cal=`*(self: var PROPVARIANT, x: CAL) {.inline.} = self.union1.struct1.union1.cal = x -proc cal*(self: PROPVARIANT): CAL {.inline.} = self.union1.struct1.union1.cal -proc cal*(self: var PROPVARIANT): var CAL {.inline.} = self.union1.struct1.union1.cal -proc `caul=`*(self: var PROPVARIANT, x: CAUL) {.inline.} = self.union1.struct1.union1.caul = x -proc caul*(self: PROPVARIANT): CAUL {.inline.} = self.union1.struct1.union1.caul -proc caul*(self: var PROPVARIANT): var CAUL {.inline.} = self.union1.struct1.union1.caul -proc `cah=`*(self: var PROPVARIANT, x: CAH) {.inline.} = self.union1.struct1.union1.cah = x -proc cah*(self: PROPVARIANT): CAH {.inline.} = self.union1.struct1.union1.cah -proc cah*(self: var PROPVARIANT): var CAH {.inline.} = self.union1.struct1.union1.cah -proc `cauh=`*(self: var PROPVARIANT, x: CAUH) {.inline.} = self.union1.struct1.union1.cauh = x -proc cauh*(self: PROPVARIANT): CAUH {.inline.} = self.union1.struct1.union1.cauh -proc cauh*(self: var PROPVARIANT): var CAUH {.inline.} = self.union1.struct1.union1.cauh -proc `caflt=`*(self: var PROPVARIANT, x: CAFLT) {.inline.} = self.union1.struct1.union1.caflt = x -proc caflt*(self: PROPVARIANT): CAFLT {.inline.} = self.union1.struct1.union1.caflt -proc caflt*(self: var PROPVARIANT): var CAFLT {.inline.} = self.union1.struct1.union1.caflt -proc `cadbl=`*(self: var PROPVARIANT, x: CADBL) {.inline.} = self.union1.struct1.union1.cadbl = x -proc cadbl*(self: PROPVARIANT): CADBL {.inline.} = self.union1.struct1.union1.cadbl -proc cadbl*(self: var PROPVARIANT): var CADBL {.inline.} = self.union1.struct1.union1.cadbl -proc `cabool=`*(self: var PROPVARIANT, x: CABOOL) {.inline.} = self.union1.struct1.union1.cabool = x -proc cabool*(self: PROPVARIANT): CABOOL {.inline.} = self.union1.struct1.union1.cabool -proc cabool*(self: var PROPVARIANT): var CABOOL {.inline.} = self.union1.struct1.union1.cabool -proc `cascode=`*(self: var PROPVARIANT, x: CASCODE) {.inline.} = self.union1.struct1.union1.cascode = x -proc cascode*(self: PROPVARIANT): CASCODE {.inline.} = self.union1.struct1.union1.cascode -proc cascode*(self: var PROPVARIANT): var CASCODE {.inline.} = self.union1.struct1.union1.cascode -proc `cacy=`*(self: var PROPVARIANT, x: CACY) {.inline.} = self.union1.struct1.union1.cacy = x -proc cacy*(self: PROPVARIANT): CACY {.inline.} = self.union1.struct1.union1.cacy -proc cacy*(self: var PROPVARIANT): var CACY {.inline.} = self.union1.struct1.union1.cacy -proc `cadate=`*(self: var PROPVARIANT, x: CADATE) {.inline.} = self.union1.struct1.union1.cadate = x -proc cadate*(self: PROPVARIANT): CADATE {.inline.} = self.union1.struct1.union1.cadate -proc cadate*(self: var PROPVARIANT): var CADATE {.inline.} = self.union1.struct1.union1.cadate -proc `cafiletime=`*(self: var PROPVARIANT, x: CAFILETIME) {.inline.} = self.union1.struct1.union1.cafiletime = x -proc cafiletime*(self: PROPVARIANT): CAFILETIME {.inline.} = self.union1.struct1.union1.cafiletime -proc cafiletime*(self: var PROPVARIANT): var CAFILETIME {.inline.} = self.union1.struct1.union1.cafiletime -proc `cauuid=`*(self: var PROPVARIANT, x: CACLSID) {.inline.} = self.union1.struct1.union1.cauuid = x -proc cauuid*(self: PROPVARIANT): CACLSID {.inline.} = self.union1.struct1.union1.cauuid -proc cauuid*(self: var PROPVARIANT): var CACLSID {.inline.} = self.union1.struct1.union1.cauuid -proc `caclipdata=`*(self: var PROPVARIANT, x: CACLIPDATA) {.inline.} = self.union1.struct1.union1.caclipdata = x -proc caclipdata*(self: PROPVARIANT): CACLIPDATA {.inline.} = self.union1.struct1.union1.caclipdata -proc caclipdata*(self: var PROPVARIANT): var CACLIPDATA {.inline.} = self.union1.struct1.union1.caclipdata -proc `cabstr=`*(self: var PROPVARIANT, x: CABSTR) {.inline.} = self.union1.struct1.union1.cabstr = x -proc cabstr*(self: PROPVARIANT): CABSTR {.inline.} = self.union1.struct1.union1.cabstr -proc cabstr*(self: var PROPVARIANT): var CABSTR {.inline.} = self.union1.struct1.union1.cabstr -proc `cabstrblob=`*(self: var PROPVARIANT, x: CABSTRBLOB) {.inline.} = self.union1.struct1.union1.cabstrblob = x -proc cabstrblob*(self: PROPVARIANT): CABSTRBLOB {.inline.} = self.union1.struct1.union1.cabstrblob -proc cabstrblob*(self: var PROPVARIANT): var CABSTRBLOB {.inline.} = self.union1.struct1.union1.cabstrblob -proc `calpstr=`*(self: var PROPVARIANT, x: CALPSTR) {.inline.} = self.union1.struct1.union1.calpstr = x -proc calpstr*(self: PROPVARIANT): CALPSTR {.inline.} = self.union1.struct1.union1.calpstr -proc calpstr*(self: var PROPVARIANT): var CALPSTR {.inline.} = self.union1.struct1.union1.calpstr -proc `calpwstr=`*(self: var PROPVARIANT, x: CALPWSTR) {.inline.} = self.union1.struct1.union1.calpwstr = x -proc calpwstr*(self: PROPVARIANT): CALPWSTR {.inline.} = self.union1.struct1.union1.calpwstr -proc calpwstr*(self: var PROPVARIANT): var CALPWSTR {.inline.} = self.union1.struct1.union1.calpwstr -proc `capropvar=`*(self: var PROPVARIANT, x: CAPROPVARIANT) {.inline.} = self.union1.struct1.union1.capropvar = x -proc capropvar*(self: PROPVARIANT): CAPROPVARIANT {.inline.} = self.union1.struct1.union1.capropvar -proc capropvar*(self: var PROPVARIANT): var CAPROPVARIANT {.inline.} = self.union1.struct1.union1.capropvar -proc `pcVal=`*(self: var PROPVARIANT, x: ptr CHAR) {.inline.} = self.union1.struct1.union1.pcVal = x -proc pcVal*(self: PROPVARIANT): ptr CHAR {.inline.} = self.union1.struct1.union1.pcVal -proc pcVal*(self: var PROPVARIANT): var ptr CHAR {.inline.} = self.union1.struct1.union1.pcVal -proc `pbVal=`*(self: var PROPVARIANT, x: ptr UCHAR) {.inline.} = self.union1.struct1.union1.pbVal = x -proc pbVal*(self: PROPVARIANT): ptr UCHAR {.inline.} = self.union1.struct1.union1.pbVal -proc pbVal*(self: var PROPVARIANT): var ptr UCHAR {.inline.} = self.union1.struct1.union1.pbVal -proc `piVal=`*(self: var PROPVARIANT, x: ptr SHORT) {.inline.} = self.union1.struct1.union1.piVal = x -proc piVal*(self: PROPVARIANT): ptr SHORT {.inline.} = self.union1.struct1.union1.piVal -proc piVal*(self: var PROPVARIANT): var ptr SHORT {.inline.} = self.union1.struct1.union1.piVal -proc `puiVal=`*(self: var PROPVARIANT, x: ptr USHORT) {.inline.} = self.union1.struct1.union1.puiVal = x -proc puiVal*(self: PROPVARIANT): ptr USHORT {.inline.} = self.union1.struct1.union1.puiVal -proc puiVal*(self: var PROPVARIANT): var ptr USHORT {.inline.} = self.union1.struct1.union1.puiVal -proc `plVal=`*(self: var PROPVARIANT, x: ptr LONG) {.inline.} = self.union1.struct1.union1.plVal = x -proc plVal*(self: PROPVARIANT): ptr LONG {.inline.} = self.union1.struct1.union1.plVal -proc plVal*(self: var PROPVARIANT): var ptr LONG {.inline.} = self.union1.struct1.union1.plVal -proc `pulVal=`*(self: var PROPVARIANT, x: ptr ULONG) {.inline.} = self.union1.struct1.union1.pulVal = x -proc pulVal*(self: PROPVARIANT): ptr ULONG {.inline.} = self.union1.struct1.union1.pulVal -proc pulVal*(self: var PROPVARIANT): var ptr ULONG {.inline.} = self.union1.struct1.union1.pulVal -proc `pintVal=`*(self: var PROPVARIANT, x: ptr INT) {.inline.} = self.union1.struct1.union1.pintVal = x -proc pintVal*(self: PROPVARIANT): ptr INT {.inline.} = self.union1.struct1.union1.pintVal -proc pintVal*(self: var PROPVARIANT): var ptr INT {.inline.} = self.union1.struct1.union1.pintVal -proc `puintVal=`*(self: var PROPVARIANT, x: ptr UINT) {.inline.} = self.union1.struct1.union1.puintVal = x -proc puintVal*(self: PROPVARIANT): ptr UINT {.inline.} = self.union1.struct1.union1.puintVal -proc puintVal*(self: var PROPVARIANT): var ptr UINT {.inline.} = self.union1.struct1.union1.puintVal -proc `pfltVal=`*(self: var PROPVARIANT, x: ptr FLOAT) {.inline.} = self.union1.struct1.union1.pfltVal = x -proc pfltVal*(self: PROPVARIANT): ptr FLOAT {.inline.} = self.union1.struct1.union1.pfltVal -proc pfltVal*(self: var PROPVARIANT): var ptr FLOAT {.inline.} = self.union1.struct1.union1.pfltVal -proc `pdblVal=`*(self: var PROPVARIANT, x: ptr DOUBLE) {.inline.} = self.union1.struct1.union1.pdblVal = x -proc pdblVal*(self: PROPVARIANT): ptr DOUBLE {.inline.} = self.union1.struct1.union1.pdblVal -proc pdblVal*(self: var PROPVARIANT): var ptr DOUBLE {.inline.} = self.union1.struct1.union1.pdblVal -proc `pboolVal=`*(self: var PROPVARIANT, x: ptr VARIANT_BOOL) {.inline.} = self.union1.struct1.union1.pboolVal = x -proc pboolVal*(self: PROPVARIANT): ptr VARIANT_BOOL {.inline.} = self.union1.struct1.union1.pboolVal -proc pboolVal*(self: var PROPVARIANT): var ptr VARIANT_BOOL {.inline.} = self.union1.struct1.union1.pboolVal -proc `pdecVal=`*(self: var PROPVARIANT, x: ptr DECIMAL) {.inline.} = self.union1.struct1.union1.pdecVal = x -proc pdecVal*(self: PROPVARIANT): ptr DECIMAL {.inline.} = self.union1.struct1.union1.pdecVal -proc pdecVal*(self: var PROPVARIANT): var ptr DECIMAL {.inline.} = self.union1.struct1.union1.pdecVal -proc `pscode=`*(self: var PROPVARIANT, x: ptr SCODE) {.inline.} = self.union1.struct1.union1.pscode = x -proc pscode*(self: PROPVARIANT): ptr SCODE {.inline.} = self.union1.struct1.union1.pscode -proc pscode*(self: var PROPVARIANT): var ptr SCODE {.inline.} = self.union1.struct1.union1.pscode -proc `pcyVal=`*(self: var PROPVARIANT, x: ptr CY) {.inline.} = self.union1.struct1.union1.pcyVal = x -proc pcyVal*(self: PROPVARIANT): ptr CY {.inline.} = self.union1.struct1.union1.pcyVal -proc pcyVal*(self: var PROPVARIANT): var ptr CY {.inline.} = self.union1.struct1.union1.pcyVal -proc `pdate=`*(self: var PROPVARIANT, x: ptr DATE) {.inline.} = self.union1.struct1.union1.pdate = x -proc pdate*(self: PROPVARIANT): ptr DATE {.inline.} = self.union1.struct1.union1.pdate -proc pdate*(self: var PROPVARIANT): var ptr DATE {.inline.} = self.union1.struct1.union1.pdate -proc `pbstrVal=`*(self: var PROPVARIANT, x: ptr BSTR) {.inline.} = self.union1.struct1.union1.pbstrVal = x -proc pbstrVal*(self: PROPVARIANT): ptr BSTR {.inline.} = self.union1.struct1.union1.pbstrVal -proc pbstrVal*(self: var PROPVARIANT): var ptr BSTR {.inline.} = self.union1.struct1.union1.pbstrVal -proc `ppunkVal=`*(self: var PROPVARIANT, x: ptr ptr IUnknown) {.inline.} = self.union1.struct1.union1.ppunkVal = x -proc ppunkVal*(self: PROPVARIANT): ptr ptr IUnknown {.inline.} = self.union1.struct1.union1.ppunkVal -proc ppunkVal*(self: var PROPVARIANT): var ptr ptr IUnknown {.inline.} = self.union1.struct1.union1.ppunkVal -proc `ppdispVal=`*(self: var PROPVARIANT, x: ptr ptr IDispatch) {.inline.} = self.union1.struct1.union1.ppdispVal = x -proc ppdispVal*(self: PROPVARIANT): ptr ptr IDispatch {.inline.} = self.union1.struct1.union1.ppdispVal -proc ppdispVal*(self: var PROPVARIANT): var ptr ptr IDispatch {.inline.} = self.union1.struct1.union1.ppdispVal -proc `pparray=`*(self: var PROPVARIANT, x: ptr LPSAFEARRAY) {.inline.} = self.union1.struct1.union1.pparray = x -proc pparray*(self: PROPVARIANT): ptr LPSAFEARRAY {.inline.} = self.union1.struct1.union1.pparray -proc pparray*(self: var PROPVARIANT): var ptr LPSAFEARRAY {.inline.} = self.union1.struct1.union1.pparray -proc `pvarVal=`*(self: var PROPVARIANT, x: ptr PROPVARIANT) {.inline.} = self.union1.struct1.union1.pvarVal = x -proc pvarVal*(self: PROPVARIANT): ptr PROPVARIANT {.inline.} = self.union1.struct1.union1.pvarVal -proc pvarVal*(self: var PROPVARIANT): var ptr PROPVARIANT {.inline.} = self.union1.struct1.union1.pvarVal -proc `decVal=`*(self: var PROPVARIANT, x: DECIMAL) {.inline.} = self.union1.decVal = x -proc decVal*(self: PROPVARIANT): DECIMAL {.inline.} = self.union1.decVal -proc decVal*(self: var PROPVARIANT): var DECIMAL {.inline.} = self.union1.decVal -proc `propid=`*(self: var PROPSPEC, x: PROPID) {.inline.} = self.union1.propid = x -proc propid*(self: PROPSPEC): PROPID {.inline.} = self.union1.propid -proc propid*(self: var PROPSPEC): var PROPID {.inline.} = self.union1.propid -proc `lpwstr=`*(self: var PROPSPEC, x: LPOLESTR) {.inline.} = self.union1.lpwstr = x -proc lpwstr*(self: PROPSPEC): LPOLESTR {.inline.} = self.union1.lpwstr -proc lpwstr*(self: var PROPSPEC): var LPOLESTR {.inline.} = self.union1.lpwstr -proc `pOleStr=`*(self: var STRRET, x: LPWSTR) {.inline.} = self.union1.pOleStr = x -proc pOleStr*(self: STRRET): LPWSTR {.inline.} = self.union1.pOleStr -proc pOleStr*(self: var STRRET): var LPWSTR {.inline.} = self.union1.pOleStr -proc `uOffset=`*(self: var STRRET, x: UINT) {.inline.} = self.union1.uOffset = x -proc uOffset*(self: STRRET): UINT {.inline.} = self.union1.uOffset -proc uOffset*(self: var STRRET): var UINT {.inline.} = self.union1.uOffset -proc `cStr=`*(self: var STRRET, x: array[260, char]) {.inline.} = self.union1.cStr = x -proc cStr*(self: STRRET): array[260, char] {.inline.} = self.union1.cStr -proc cStr*(self: var STRRET): var array[260, char] {.inline.} = self.union1.cStr -proc QueryInterface*(self: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryInterface(self, riid, ppvObject) -proc AddRef*(self: ptr IUnknown): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddRef(self) -proc Release*(self: ptr IUnknown): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Release(self) -proc Begin_QueryInterface*(self: ptr AsyncIUnknown, riid: REFIID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_QueryInterface(self, riid) -proc Finish_QueryInterface*(self: ptr AsyncIUnknown, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_QueryInterface(self, ppvObject) -proc Begin_AddRef*(self: ptr AsyncIUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_AddRef(self) -proc Finish_AddRef*(self: ptr AsyncIUnknown): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_AddRef(self) -proc Begin_Release*(self: ptr AsyncIUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_Release(self) -proc Finish_Release*(self: ptr AsyncIUnknown): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_Release(self) -proc CreateInstance*(self: ptr IClassFactory, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, pUnkOuter, riid, ppvObject) -proc LockServer*(self: ptr IClassFactory, fLock: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockServer(self, fLock) -proc GetUnmarshalClass*(self: ptr IMarshal, riid: REFIID, pv: pointer, dwDestContext: DWORD, pvDestContext: pointer, mshlflags: DWORD, pCid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUnmarshalClass(self, riid, pv, dwDestContext, pvDestContext, mshlflags, pCid) -proc GetMarshalSizeMax*(self: ptr IMarshal, riid: REFIID, pv: pointer, dwDestContext: DWORD, pvDestContext: pointer, mshlflags: DWORD, pSize: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMarshalSizeMax(self, riid, pv, dwDestContext, pvDestContext, mshlflags, pSize) -proc MarshalInterface*(self: ptr IMarshal, pStm: ptr IStream, riid: REFIID, pv: pointer, dwDestContext: DWORD, pvDestContext: pointer, mshlflags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MarshalInterface(self, pStm, riid, pv, dwDestContext, pvDestContext, mshlflags) -proc UnmarshalInterface*(self: ptr IMarshal, pStm: ptr IStream, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnmarshalInterface(self, pStm, riid, ppv) -proc ReleaseMarshalData*(self: ptr IMarshal, pStm: ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseMarshalData(self, pStm) -proc DisconnectObject*(self: ptr IMarshal, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DisconnectObject(self, dwReserved) -proc Alloc*(self: ptr IMalloc, cb: SIZE_T): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Alloc(self, cb) -proc Realloc*(self: ptr IMalloc, pv: pointer, cb: SIZE_T): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Realloc(self, pv, cb) -proc Free*(self: ptr IMalloc, pv: pointer): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Free(self, pv) -proc GetSize*(self: ptr IMalloc, pv: pointer): SIZE_T {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, pv) -proc DidAlloc*(self: ptr IMalloc, pv: pointer): int32 {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DidAlloc(self, pv) -proc HeapMinimize*(self: ptr IMalloc): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HeapMinimize(self) -proc GetClassForHandler*(self: ptr IStdMarshalInfo, dwDestContext: DWORD, pvDestContext: pointer, pClsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClassForHandler(self, dwDestContext, pvDestContext, pClsid) -proc AddConnection*(self: ptr IExternalConnection, extconn: DWORD, reserved: DWORD): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddConnection(self, extconn, reserved) -proc ReleaseConnection*(self: ptr IExternalConnection, extconn: DWORD, reserved: DWORD, fLastReleaseCloses: WINBOOL): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseConnection(self, extconn, reserved, fLastReleaseCloses) -proc QueryMultipleInterfaces*(self: ptr IMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryMultipleInterfaces(self, cMQIs, pMQIs) -proc Begin_QueryMultipleInterfaces*(self: ptr AsyncIMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_QueryMultipleInterfaces(self, cMQIs, pMQIs) -proc Finish_QueryMultipleInterfaces*(self: ptr AsyncIMultiQI, pMQIs: ptr MULTI_QI): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_QueryMultipleInterfaces(self, pMQIs) -proc QueryInternalInterface*(self: ptr IInternalUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryInternalInterface(self, riid, ppv) -proc Next*(self: ptr IEnumUnknown, celt: ULONG, rgelt: ptr ptr IUnknown, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumUnknown, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumUnknown, ppenum: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Next*(self: ptr IEnumString, celt: ULONG, rgelt: ptr LPOLESTR, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumString, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumString, ppenum: ptr ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Read*(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Read(self, pv, cb, pcbRead) -proc Write*(self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Write(self, pv, cb, pcbWritten) -proc Seek*(self: ptr IStream, dlibMove: LARGE_INTEGER, dwOrigin: DWORD, plibNewPosition: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Seek(self, dlibMove, dwOrigin, plibNewPosition) -proc SetSize*(self: ptr IStream, libNewSize: ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSize(self, libNewSize) -proc CopyTo*(self: ptr IStream, pstm: ptr IStream, cb: ULARGE_INTEGER, pcbRead: ptr ULARGE_INTEGER, pcbWritten: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyTo(self, pstm, cb, pcbRead, pcbWritten) -proc Commit*(self: ptr IStream, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self, grfCommitFlags) -proc Revert*(self: ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revert(self) -proc LockRegion*(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockRegion(self, libOffset, cb, dwLockType) -proc UnlockRegion*(self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockRegion(self, libOffset, cb, dwLockType) -proc Stat*(self: ptr IStream, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stat(self, pstatstg, grfStatFlag) -proc Clone*(self: ptr IStream, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppstm) -proc GetBuffer*(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, riid: REFIID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBuffer(self, pMessage, riid) -proc SendReceive*(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, pStatus: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendReceive(self, pMessage, pStatus) -proc FreeBuffer*(self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FreeBuffer(self, pMessage) -proc GetDestCtx*(self: ptr IRpcChannelBuffer, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDestCtx(self, pdwDestContext, ppvDestContext) -proc IsConnected*(self: ptr IRpcChannelBuffer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsConnected(self) -proc GetProtocolVersion*(self: ptr IRpcChannelBuffer2, pdwVersion: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProtocolVersion(self, pdwVersion) -proc Send*(self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pSync: ptr ISynchronize, pulStatus: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Send(self, pMsg, pSync, pulStatus) -proc Receive*(self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Receive(self, pMsg, pulStatus) -proc GetDestCtxEx*(self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDestCtxEx(self, pMsg, pdwDestContext, ppvDestContext) -proc Send*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Send(self, pMsg, pulStatus) -proc Receive*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, ulSize: ULONG, pulStatus: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Receive(self, pMsg, ulSize, pulStatus) -proc Cancel*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cancel(self, pMsg) -proc GetCallContext*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, riid: REFIID, pInterface: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCallContext(self, pMsg, riid, pInterface) -proc GetDestCtxEx*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDestCtxEx(self, pMsg, pdwDestContext, ppvDestContext) -proc GetState*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pState: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetState(self, pMsg, pState) -proc RegisterAsync*(self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pAsyncMgr: ptr IAsyncManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterAsync(self, pMsg, pAsyncMgr) -proc NegotiateSyntax*(self: ptr IRpcSyntaxNegotiate, pMsg: ptr RPCOLEMESSAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NegotiateSyntax(self, pMsg) -proc Connect*(self: ptr IRpcProxyBuffer, pRpcChannelBuffer: ptr IRpcChannelBuffer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Connect(self, pRpcChannelBuffer) -proc Disconnect*(self: ptr IRpcProxyBuffer): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Disconnect(self) -proc Connect*(self: ptr IRpcStubBuffer, pUnkServer: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Connect(self, pUnkServer) -proc Disconnect*(self: ptr IRpcStubBuffer): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Disconnect(self) -proc Invoke*(self: ptr IRpcStubBuffer, prpcmsg: ptr RPCOLEMESSAGE, pRpcChannelBuffer: ptr IRpcChannelBuffer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, prpcmsg, pRpcChannelBuffer) -proc IsIIDSupported*(self: ptr IRpcStubBuffer, riid: REFIID): ptr IRpcStubBuffer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsIIDSupported(self, riid) -proc CountRefs*(self: ptr IRpcStubBuffer): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CountRefs(self) -proc DebugServerQueryInterface*(self: ptr IRpcStubBuffer, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DebugServerQueryInterface(self, ppv) -proc DebugServerRelease*(self: ptr IRpcStubBuffer, pv: pointer): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DebugServerRelease(self, pv) -proc CreateProxy*(self: ptr IPSFactoryBuffer, pUnkOuter: ptr IUnknown, riid: REFIID, ppProxy: ptr ptr IRpcProxyBuffer, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateProxy(self, pUnkOuter, riid, ppProxy, ppv) -proc CreateStub*(self: ptr IPSFactoryBuffer, riid: REFIID, pUnkServer: ptr IUnknown, ppStub: ptr ptr IRpcStubBuffer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStub(self, riid, pUnkServer, ppStub) -proc ClientGetSize*(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClientGetSize(self, uExtent, riid, pDataSize) -proc ClientFillBuffer*(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG, pDataBuffer: pointer): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClientFillBuffer(self, uExtent, riid, pDataSize, pDataBuffer) -proc ClientNotify*(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, cbDataSize: ULONG, pDataBuffer: pointer, lDataRep: DWORD, hrFault: HRESULT): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClientNotify(self, uExtent, riid, cbDataSize, pDataBuffer, lDataRep, hrFault) -proc ServerNotify*(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, cbDataSize: ULONG, pDataBuffer: pointer, lDataRep: DWORD): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ServerNotify(self, uExtent, riid, cbDataSize, pDataBuffer, lDataRep) -proc ServerGetSize*(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, hrFault: HRESULT, pDataSize: ptr ULONG): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ServerGetSize(self, uExtent, riid, hrFault, pDataSize) -proc ServerFillBuffer*(self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG, pDataBuffer: pointer, hrFault: HRESULT): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ServerFillBuffer(self, uExtent, riid, pDataSize, pDataBuffer, hrFault) -proc QueryBlanket*(self: ptr IClientSecurity, pProxy: ptr IUnknown, pAuthnSvc: ptr DWORD, pAuthzSvc: ptr DWORD, pServerPrincName: ptr ptr OLECHAR, pAuthnLevel: ptr DWORD, pImpLevel: ptr DWORD, pAuthInfo: ptr pointer, pCapabilites: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryBlanket(self, pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, pAuthInfo, pCapabilites) -proc SetBlanket*(self: ptr IClientSecurity, pProxy: ptr IUnknown, dwAuthnSvc: DWORD, dwAuthzSvc: DWORD, pServerPrincName: ptr OLECHAR, dwAuthnLevel: DWORD, dwImpLevel: DWORD, pAuthInfo: pointer, dwCapabilities: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBlanket(self, pProxy, dwAuthnSvc, dwAuthzSvc, pServerPrincName, dwAuthnLevel, dwImpLevel, pAuthInfo, dwCapabilities) -proc CopyProxy*(self: ptr IClientSecurity, pProxy: ptr IUnknown, ppCopy: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyProxy(self, pProxy, ppCopy) -proc QueryBlanket*(self: ptr IServerSecurity, pAuthnSvc: ptr DWORD, pAuthzSvc: ptr DWORD, pServerPrincName: ptr ptr OLECHAR, pAuthnLevel: ptr DWORD, pImpLevel: ptr DWORD, pPrivs: ptr pointer, pCapabilities: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryBlanket(self, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, pPrivs, pCapabilities) -proc ImpersonateClient*(self: ptr IServerSecurity): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ImpersonateClient(self) -proc RevertToSelf*(self: ptr IServerSecurity): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevertToSelf(self) -proc IsImpersonating*(self: ptr IServerSecurity): WINBOOL {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsImpersonating(self) -proc Set*(self: ptr IRpcOptions, pPrx: ptr IUnknown, dwProperty: RPCOPT_PROPERTIES, dwValue: ULONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Set(self, pPrx, dwProperty, dwValue) -proc Query*(self: ptr IRpcOptions, pPrx: ptr IUnknown, dwProperty: RPCOPT_PROPERTIES, pdwValue: ptr ULONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Query(self, pPrx, dwProperty, pdwValue) -proc Set*(self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, dwValue: ULONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Set(self, dwProperty, dwValue) -proc Query*(self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, pdwValue: ptr ULONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Query(self, dwProperty, pdwValue) -proc LoadDllServer*(self: ptr ISurrogate, Clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadDllServer(self, Clsid) -proc FreeSurrogate*(self: ptr ISurrogate): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FreeSurrogate(self) -proc RegisterInterfaceInGlobal*(self: ptr IGlobalInterfaceTable, pUnk: ptr IUnknown, riid: REFIID, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterInterfaceInGlobal(self, pUnk, riid, pdwCookie) -proc RevokeInterfaceFromGlobal*(self: ptr IGlobalInterfaceTable, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevokeInterfaceFromGlobal(self, dwCookie) -proc GetInterfaceFromGlobal*(self: ptr IGlobalInterfaceTable, dwCookie: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterfaceFromGlobal(self, dwCookie, riid, ppv) -proc Wait*(self: ptr ISynchronize, dwFlags: DWORD, dwMilliseconds: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Wait(self, dwFlags, dwMilliseconds) -proc Signal*(self: ptr ISynchronize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Signal(self) -proc Reset*(self: ptr ISynchronize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc GetHandle*(self: ptr ISynchronizeHandle, ph: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHandle(self, ph) -proc SetEventHandle*(self: ptr ISynchronizeEvent, ph: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEventHandle(self, ph) -proc AddSynchronize*(self: ptr ISynchronizeContainer, pSync: ptr ISynchronize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSynchronize(self, pSync) -proc WaitMultiple*(self: ptr ISynchronizeContainer, dwFlags: DWORD, dwTimeOut: DWORD, ppSync: ptr ptr ISynchronize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WaitMultiple(self, dwFlags, dwTimeOut, ppSync) -proc ReleaseMutex*(self: ptr ISynchronizeMutex): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseMutex(self) -proc Cancel*(self: ptr ICancelMethodCalls, ulSeconds: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cancel(self, ulSeconds) -proc TestCancel*(self: ptr ICancelMethodCalls): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TestCancel(self) -proc CompleteCall*(self: ptr IAsyncManager, Result: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompleteCall(self, Result) -proc GetCallContext*(self: ptr IAsyncManager, riid: REFIID, pInterface: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCallContext(self, riid, pInterface) -proc GetState*(self: ptr IAsyncManager, pulStateFlags: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetState(self, pulStateFlags) -proc CreateCall*(self: ptr ICallFactory, riid: REFIID, pCtrlUnk: ptr IUnknown, riid2: REFIID, ppv: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateCall(self, riid, pCtrlUnk, riid2, ppv) -proc GetDCOMProtocolVersion*(self: ptr IRpcHelper, pComVersion: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDCOMProtocolVersion(self, pComVersion) -proc GetIIDFromOBJREF*(self: ptr IRpcHelper, pObjRef: pointer, piid: ptr ptr IID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIIDFromOBJREF(self, pObjRef, piid) -proc ReleaseMarshalBuffer*(self: ptr IReleaseMarshalBuffers, pMsg: ptr RPCOLEMESSAGE, dwFlags: DWORD, pChnl: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseMarshalBuffer(self, pMsg, dwFlags, pChnl) -proc WaitMultiple*(self: ptr IWaitMultiple, timeout: DWORD, pSync: ptr ptr ISynchronize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WaitMultiple(self, timeout, pSync) -proc AddSynchronize*(self: ptr IWaitMultiple, pSync: ptr ISynchronize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSynchronize(self, pSync) -proc EnableCOMDynamicAddrTracking*(self: ptr IAddrTrackingControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableCOMDynamicAddrTracking(self) -proc DisableCOMDynamicAddrTracking*(self: ptr IAddrTrackingControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DisableCOMDynamicAddrTracking(self) -proc GetCurrentAddrExclusionList*(self: ptr IAddrExclusionControl, riid: REFIID, ppEnumerator: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentAddrExclusionList(self, riid, ppEnumerator) -proc UpdateAddrExclusionList*(self: ptr IAddrExclusionControl, pEnumerator: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateAddrExclusionList(self, pEnumerator) -proc Pull*(self: ptr IPipeByte, buf: ptr BYTE, cRequest: ULONG, pcReturned: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Pull(self, buf, cRequest, pcReturned) -proc Push*(self: ptr IPipeByte, buf: ptr BYTE, cSent: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Push(self, buf, cSent) -proc Pull*(self: ptr IPipeLong, buf: ptr LONG, cRequest: ULONG, pcReturned: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Pull(self, buf, cRequest, pcReturned) -proc Push*(self: ptr IPipeLong, buf: ptr LONG, cSent: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Push(self, buf, cSent) -proc Pull*(self: ptr IPipeDouble, buf: ptr DOUBLE, cRequest: ULONG, pcReturned: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Pull(self, buf, cRequest, pcReturned) -proc Push*(self: ptr IPipeDouble, buf: ptr DOUBLE, cSent: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Push(self, buf, cSent) -proc Next*(self: ptr IEnumContextProps, celt: ULONG, pContextProperties: ptr ContextProperty, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, pContextProperties, pceltFetched) -proc Skip*(self: ptr IEnumContextProps, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumContextProps): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumContextProps, ppEnumContextProps: ptr ptr IEnumContextProps): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnumContextProps) -proc Count*(self: ptr IEnumContextProps, pcelt: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Count(self, pcelt) -proc SetProperty*(self: ptr IContext, rpolicyId: REFGUID, flags: CPFLAGS, pUnk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProperty(self, rpolicyId, flags, pUnk) -proc RemoveProperty*(self: ptr IContext, rPolicyId: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveProperty(self, rPolicyId) -proc GetProperty*(self: ptr IContext, rGuid: REFGUID, pFlags: ptr CPFLAGS, ppUnk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, rGuid, pFlags, ppUnk) -proc EnumContextProps*(self: ptr IContext, ppEnumContextProps: ptr ptr IEnumContextProps): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumContextProps(self, ppEnumContextProps) -proc GetCurrentApartmentType*(self: ptr IComThreadingInfo, pAptType: ptr APTTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentApartmentType(self, pAptType) -proc GetCurrentThreadType*(self: ptr IComThreadingInfo, pThreadType: ptr THDTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentThreadType(self, pThreadType) -proc GetCurrentLogicalThreadId*(self: ptr IComThreadingInfo, pguidLogicalThreadId: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentLogicalThreadId(self, pguidLogicalThreadId) -proc SetCurrentLogicalThreadId*(self: ptr IComThreadingInfo, rguid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCurrentLogicalThreadId(self, rguid) -proc ResetInitializerTimeout*(self: ptr IProcessInitControl, dwSecondsRemaining: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetInitializerTimeout(self, dwSecondsRemaining) -proc GetMarshalingContextAttribute*(self: ptr IMarshalingStream, attribute: CO_MARSHALING_CONTEXT_ATTRIBUTES, pAttributeValue: ptr ULONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMarshalingContextAttribute(self, attribute, pAttributeValue) -proc PreAlloc*(self: ptr IMallocSpy, cbRequest: SIZE_T): SIZE_T {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreAlloc(self, cbRequest) -proc PostAlloc*(self: ptr IMallocSpy, pActual: pointer): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostAlloc(self, pActual) -proc PreFree*(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreFree(self, pRequest, fSpyed) -proc PostFree*(self: ptr IMallocSpy, fSpyed: WINBOOL): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostFree(self, fSpyed) -proc PreRealloc*(self: ptr IMallocSpy, pRequest: pointer, cbRequest: SIZE_T, ppNewRequest: ptr pointer, fSpyed: WINBOOL): SIZE_T {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreRealloc(self, pRequest, cbRequest, ppNewRequest, fSpyed) -proc PostRealloc*(self: ptr IMallocSpy, pActual: pointer, fSpyed: WINBOOL): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostRealloc(self, pActual, fSpyed) -proc PreGetSize*(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreGetSize(self, pRequest, fSpyed) -proc PostGetSize*(self: ptr IMallocSpy, cbActual: SIZE_T, fSpyed: WINBOOL): SIZE_T {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostGetSize(self, cbActual, fSpyed) -proc PreDidAlloc*(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL): pointer {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreDidAlloc(self, pRequest, fSpyed) -proc PostDidAlloc*(self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL, fActual: int32): int32 {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostDidAlloc(self, pRequest, fSpyed, fActual) -proc PreHeapMinimize*(self: ptr IMallocSpy): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreHeapMinimize(self) -proc PostHeapMinimize*(self: ptr IMallocSpy): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostHeapMinimize(self) -proc RegisterObjectBound*(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterObjectBound(self, punk) -proc RevokeObjectBound*(self: ptr IBindCtx, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevokeObjectBound(self, punk) -proc ReleaseBoundObjects*(self: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseBoundObjects(self) -proc SetBindOptions*(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBindOptions(self, pbindopts) -proc GetBindOptions*(self: ptr IBindCtx, pbindopts: ptr BIND_OPTS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindOptions(self, pbindopts) -proc GetRunningObjectTable*(self: ptr IBindCtx, pprot: ptr ptr IRunningObjectTable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRunningObjectTable(self, pprot) -proc RegisterObjectParam*(self: ptr IBindCtx, pszKey: LPOLESTR, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterObjectParam(self, pszKey, punk) -proc GetObjectParam*(self: ptr IBindCtx, pszKey: LPOLESTR, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectParam(self, pszKey, ppunk) -proc EnumObjectParam*(self: ptr IBindCtx, ppenum: ptr ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumObjectParam(self, ppenum) -proc RevokeObjectParam*(self: ptr IBindCtx, pszKey: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevokeObjectParam(self, pszKey) -proc Next*(self: ptr IEnumMoniker, celt: ULONG, rgelt: ptr ptr IMoniker, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumMoniker, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumMoniker, ppenum: ptr ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc GetRunningClass*(self: ptr IRunnableObject, lpClsid: LPCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRunningClass(self, lpClsid) -proc Run*(self: ptr IRunnableObject, pbc: LPBINDCTX): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Run(self, pbc) -proc IsRunning*(self: ptr IRunnableObject): WINBOOL {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self) -proc LockRunning*(self: ptr IRunnableObject, fLock: WINBOOL, fLastUnlockCloses: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockRunning(self, fLock, fLastUnlockCloses) -proc SetContainedObject*(self: ptr IRunnableObject, fContained: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetContainedObject(self, fContained) -proc Register*(self: ptr IRunningObjectTable, grfFlags: DWORD, punkObject: ptr IUnknown, pmkObjectName: ptr IMoniker, pdwRegister: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Register(self, grfFlags, punkObject, pmkObjectName, pdwRegister) -proc Revoke*(self: ptr IRunningObjectTable, dwRegister: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revoke(self, dwRegister) -proc IsRunning*(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self, pmkObjectName) -proc GetObject*(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, ppunkObject: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObject(self, pmkObjectName, ppunkObject) -proc NoteChangeTime*(self: ptr IRunningObjectTable, dwRegister: DWORD, pfiletime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NoteChangeTime(self, dwRegister, pfiletime) -proc GetTimeOfLastChange*(self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, pfiletime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTimeOfLastChange(self, pmkObjectName, pfiletime) -proc EnumRunning*(self: ptr IRunningObjectTable, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRunning(self, ppenumMoniker) -proc GetClassID*(self: ptr IPersist, pClassID: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClassID(self, pClassID) -proc IsDirty*(self: ptr IPersistStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc Load*(self: ptr IPersistStream, pStm: ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pStm) -proc Save*(self: ptr IPersistStream, pStm: ptr IStream, fClearDirty: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pStm, fClearDirty) -proc GetSizeMax*(self: ptr IPersistStream, pcbSize: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSizeMax(self, pcbSize) -proc BindToObject*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riidResult: REFIID, ppvResult: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToObject(self, pbc, pmkToLeft, riidResult, ppvResult) -proc BindToStorage*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, riid: REFIID, ppvObj: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToStorage(self, pbc, pmkToLeft, riid, ppvObj) -proc Reduce*(self: ptr IMoniker, pbc: ptr IBindCtx, dwReduceHowFar: DWORD, ppmkToLeft: ptr ptr IMoniker, ppmkReduced: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reduce(self, pbc, dwReduceHowFar, ppmkToLeft, ppmkReduced) -proc ComposeWith*(self: ptr IMoniker, pmkRight: ptr IMoniker, fOnlyIfNotGeneric: WINBOOL, ppmkComposite: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComposeWith(self, pmkRight, fOnlyIfNotGeneric, ppmkComposite) -proc Enum*(self: ptr IMoniker, fForward: WINBOOL, ppenumMoniker: ptr ptr IEnumMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enum(self, fForward, ppenumMoniker) -proc IsEqual*(self: ptr IMoniker, pmkOtherMoniker: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqual(self, pmkOtherMoniker) -proc Hash*(self: ptr IMoniker, pdwHash: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Hash(self, pdwHash) -proc IsRunning*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pmkNewlyRunning: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self, pbc, pmkToLeft, pmkNewlyRunning) -proc GetTimeOfLastChange*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pFileTime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTimeOfLastChange(self, pbc, pmkToLeft, pFileTime) -proc Inverse*(self: ptr IMoniker, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Inverse(self, ppmk) -proc CommonPrefixWith*(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkPrefix: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CommonPrefixWith(self, pmkOther, ppmkPrefix) -proc RelativePathTo*(self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkRelPath: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RelativePathTo(self, pmkOther, ppmkRelPath) -proc GetDisplayName*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, ppszDisplayName: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayName(self, pbc, pmkToLeft, ppszDisplayName) -proc ParseDisplayName*(self: ptr IMoniker, pbc: ptr IBindCtx, pmkToLeft: ptr IMoniker, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseDisplayName(self, pbc, pmkToLeft, pszDisplayName, pchEaten, ppmkOut) -proc IsSystemMoniker*(self: ptr IMoniker, pdwMksys: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSystemMoniker(self, pdwMksys) -proc GetComparisonData*(self: ptr IROTData, pbData: ptr uint8, cbMax: ULONG, pcbData: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetComparisonData(self, pbData, cbMax, pcbData) -proc Next*(self: ptr IEnumSTATSTG, celt: ULONG, rgelt: ptr STATSTG, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumSTATSTG, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumSTATSTG, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc CreateStream*(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStream(self, pwcsName, grfMode, reserved1, reserved2, ppstm) -proc OpenStream*(self: ptr IStorage, pwcsName: ptr OLECHAR, reserved1: pointer, grfMode: DWORD, reserved2: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenStream(self, pwcsName, reserved1, grfMode, reserved2, ppstm) -proc CreateStorage*(self: ptr IStorage, pwcsName: ptr OLECHAR, grfMode: DWORD, reserved1: DWORD, reserved2: DWORD, ppstg: ptr ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStorage(self, pwcsName, grfMode, reserved1, reserved2, ppstg) -proc OpenStorage*(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgPriority: ptr IStorage, grfMode: DWORD, snbExclude: SNB, reserved: DWORD, ppstg: ptr ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenStorage(self, pwcsName, pstgPriority, grfMode, snbExclude, reserved, ppstg) -proc CopyTo*(self: ptr IStorage, ciidExclude: DWORD, rgiidExclude: ptr IID, snbExclude: SNB, pstgDest: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyTo(self, ciidExclude, rgiidExclude, snbExclude, pstgDest) -proc MoveElementTo*(self: ptr IStorage, pwcsName: ptr OLECHAR, pstgDest: ptr IStorage, pwcsNewName: ptr OLECHAR, grfFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveElementTo(self, pwcsName, pstgDest, pwcsNewName, grfFlags) -proc Commit*(self: ptr IStorage, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self, grfCommitFlags) -proc Revert*(self: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revert(self) -proc EnumElements*(self: ptr IStorage, reserved1: DWORD, reserved2: pointer, reserved3: DWORD, ppenum: ptr ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumElements(self, reserved1, reserved2, reserved3, ppenum) -proc DestroyElement*(self: ptr IStorage, pwcsName: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyElement(self, pwcsName) -proc RenameElement*(self: ptr IStorage, pwcsOldName: ptr OLECHAR, pwcsNewName: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RenameElement(self, pwcsOldName, pwcsNewName) -proc SetElementTimes*(self: ptr IStorage, pwcsName: ptr OLECHAR, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetElementTimes(self, pwcsName, pctime, patime, pmtime) -proc SetClass*(self: ptr IStorage, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClass(self, clsid) -proc SetStateBits*(self: ptr IStorage, grfStateBits: DWORD, grfMask: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStateBits(self, grfStateBits, grfMask) -proc Stat*(self: ptr IStorage, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stat(self, pstatstg, grfStatFlag) -proc IsDirty*(self: ptr IPersistFile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc Load*(self: ptr IPersistFile, pszFileName: LPCOLESTR, dwMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pszFileName, dwMode) -proc Save*(self: ptr IPersistFile, pszFileName: LPCOLESTR, fRemember: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pszFileName, fRemember) -proc SaveCompleted*(self: ptr IPersistFile, pszFileName: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveCompleted(self, pszFileName) -proc GetCurFile*(self: ptr IPersistFile, ppszFileName: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurFile(self, ppszFileName) -proc IsDirty*(self: ptr IPersistStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc InitNew*(self: ptr IPersistStorage, pStg: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self, pStg) -proc Load*(self: ptr IPersistStorage, pStg: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pStg) -proc Save*(self: ptr IPersistStorage, pStgSave: ptr IStorage, fSameAsLoad: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pStgSave, fSameAsLoad) -proc SaveCompleted*(self: ptr IPersistStorage, pStgNew: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveCompleted(self, pStgNew) -proc HandsOffStorage*(self: ptr IPersistStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandsOffStorage(self) -proc ReadAt*(self: ptr ILockBytes, ulOffset: ULARGE_INTEGER, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadAt(self, ulOffset, pv, cb, pcbRead) -proc WriteAt*(self: ptr ILockBytes, ulOffset: ULARGE_INTEGER, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteAt(self, ulOffset, pv, cb, pcbWritten) -proc Flush*(self: ptr ILockBytes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Flush(self) -proc SetSize*(self: ptr ILockBytes, cb: ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSize(self, cb) -proc LockRegion*(self: ptr ILockBytes, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockRegion(self, libOffset, cb, dwLockType) -proc UnlockRegion*(self: ptr ILockBytes, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockRegion(self, libOffset, cb, dwLockType) -proc Stat*(self: ptr ILockBytes, pstatstg: ptr STATSTG, grfStatFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stat(self, pstatstg, grfStatFlag) -proc Next*(self: ptr IEnumFORMATETC, celt: ULONG, rgelt: ptr FORMATETC, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumFORMATETC, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumFORMATETC, ppenum: ptr ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Next*(self: ptr IEnumSTATDATA, celt: ULONG, rgelt: ptr STATDATA, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumSTATDATA, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumSTATDATA, ppenum: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc SwitchToFile*(self: ptr IRootStorage, pszFile: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchToFile(self, pszFile) -proc OnDataChange*(self: ptr IAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDataChange(self, pFormatetc, pStgmed) -proc OnViewChange*(self: ptr IAdviseSink, dwAspect: DWORD, lindex: LONG): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnViewChange(self, dwAspect, lindex) -proc OnRename*(self: ptr IAdviseSink, pmk: ptr IMoniker): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnRename(self, pmk) -proc OnSave*(self: ptr IAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSave(self) -proc OnClose*(self: ptr IAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnClose(self) -proc Begin_OnDataChange*(self: ptr AsyncIAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_OnDataChange(self, pFormatetc, pStgmed) -proc Finish_OnDataChange*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_OnDataChange(self) -proc Begin_OnViewChange*(self: ptr AsyncIAdviseSink, dwAspect: DWORD, lindex: LONG): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_OnViewChange(self, dwAspect, lindex) -proc Finish_OnViewChange*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_OnViewChange(self) -proc Begin_OnRename*(self: ptr AsyncIAdviseSink, pmk: ptr IMoniker): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_OnRename(self, pmk) -proc Finish_OnRename*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_OnRename(self) -proc Begin_OnSave*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_OnSave(self) -proc Finish_OnSave*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_OnSave(self) -proc Begin_OnClose*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_OnClose(self) -proc Finish_OnClose*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_OnClose(self) -proc OnLinkSrcChange*(self: ptr IAdviseSink2, pmk: ptr IMoniker): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnLinkSrcChange(self, pmk) -proc Begin_OnLinkSrcChange*(self: ptr AsyncIAdviseSink2, pmk: ptr IMoniker): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin_OnLinkSrcChange(self, pmk) -proc Finish_OnLinkSrcChange*(self: ptr AsyncIAdviseSink2): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Finish_OnLinkSrcChange(self) -proc GetData*(self: ptr IDataObject, pformatetcIn: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetData(self, pformatetcIn, pmedium) -proc GetDataHere*(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDataHere(self, pformatetc, pmedium) -proc QueryGetData*(self: ptr IDataObject, pformatetc: ptr FORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryGetData(self, pformatetc) -proc GetCanonicalFormatEtc*(self: ptr IDataObject, pformatectIn: ptr FORMATETC, pformatetcOut: ptr FORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCanonicalFormatEtc(self, pformatectIn, pformatetcOut) -proc SetData*(self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM, fRelease: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetData(self, pformatetc, pmedium, fRelease) -proc EnumFormatEtc*(self: ptr IDataObject, dwDirection: DWORD, ppenumFormatEtc: ptr ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumFormatEtc(self, dwDirection, ppenumFormatEtc) -proc DAdvise*(self: ptr IDataObject, pformatetc: ptr FORMATETC, advf: DWORD, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DAdvise(self, pformatetc, advf, pAdvSink, pdwConnection) -proc DUnadvise*(self: ptr IDataObject, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DUnadvise(self, dwConnection) -proc EnumDAdvise*(self: ptr IDataObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumDAdvise(self, ppenumAdvise) -proc Advise*(self: ptr IDataAdviseHolder, pDataObject: ptr IDataObject, pFetc: ptr FORMATETC, advf: DWORD, pAdvise: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pDataObject, pFetc, advf, pAdvise, pdwConnection) -proc Unadvise*(self: ptr IDataAdviseHolder, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwConnection) -proc EnumAdvise*(self: ptr IDataAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumAdvise(self, ppenumAdvise) -proc SendOnDataChange*(self: ptr IDataAdviseHolder, pDataObject: ptr IDataObject, dwReserved: DWORD, advf: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendOnDataChange(self, pDataObject, dwReserved, advf) -proc HandleInComingCall*(self: ptr IMessageFilter, dwCallType: DWORD, htaskCaller: HTASK, dwTickCount: DWORD, lpInterfaceInfo: LPINTERFACEINFO): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleInComingCall(self, dwCallType, htaskCaller, dwTickCount, lpInterfaceInfo) -proc RetryRejectedCall*(self: ptr IMessageFilter, htaskCallee: HTASK, dwTickCount: DWORD, dwRejectType: DWORD): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RetryRejectedCall(self, htaskCallee, dwTickCount, dwRejectType) -proc MessagePending*(self: ptr IMessageFilter, htaskCallee: HTASK, dwTickCount: DWORD, dwPendingType: DWORD): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MessagePending(self, htaskCallee, dwTickCount, dwPendingType) -proc GetClassObject*(self: ptr IClassActivator, rclsid: REFCLSID, dwClassContext: DWORD, locale: LCID, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClassObject(self, rclsid, dwClassContext, locale, riid, ppv) -proc FillAppend*(self: ptr IFillLockBytes, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FillAppend(self, pv, cb, pcbWritten) -proc FillAt*(self: ptr IFillLockBytes, ulOffset: ULARGE_INTEGER, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FillAt(self, ulOffset, pv, cb, pcbWritten) -proc SetFillSize*(self: ptr IFillLockBytes, ulSize: ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFillSize(self, ulSize) -proc Terminate*(self: ptr IFillLockBytes, bCanceled: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Terminate(self, bCanceled) -proc OnProgress*(self: ptr IProgressNotify, dwProgressCurrent: DWORD, dwProgressMaximum: DWORD, fAccurate: WINBOOL, fOwner: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnProgress(self, dwProgressCurrent, dwProgressMaximum, fAccurate, fOwner) -proc LayoutScript*(self: ptr ILayoutStorage, pStorageLayout: ptr StorageLayout, nEntries: DWORD, glfInterleavedFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LayoutScript(self, pStorageLayout, nEntries, glfInterleavedFlag) -proc BeginMonitor*(self: ptr ILayoutStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginMonitor(self) -proc EndMonitor*(self: ptr ILayoutStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndMonitor(self) -proc ReLayoutDocfile*(self: ptr ILayoutStorage, pwcsNewDfName: ptr OLECHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReLayoutDocfile(self, pwcsNewDfName) -proc ReLayoutDocfileOnILockBytes*(self: ptr ILayoutStorage, pILockBytes: ptr ILockBytes): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReLayoutDocfileOnILockBytes(self, pILockBytes) -proc Lock*(self: ptr IBlockingLock, dwTimeout: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Lock(self, dwTimeout) -proc Unlock*(self: ptr IBlockingLock): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unlock(self) -proc SuppressChanges*(self: ptr ITimeAndNoticeControl, res1: DWORD, res2: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SuppressChanges(self, res1, res2) -proc CreateStorageEx*(self: ptr IOplockStorage, pwcsName: LPCWSTR, grfMode: DWORD, stgfmt: DWORD, grfAttrs: DWORD, riid: REFIID, ppstgOpen: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStorageEx(self, pwcsName, grfMode, stgfmt, grfAttrs, riid, ppstgOpen) -proc OpenStorageEx*(self: ptr IOplockStorage, pwcsName: LPCWSTR, grfMode: DWORD, stgfmt: DWORD, grfAttrs: DWORD, riid: REFIID, ppstgOpen: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenStorageEx(self, pwcsName, grfMode, stgfmt, grfAttrs, riid, ppstgOpen) -proc WaitForWriteAccess*(self: ptr IDirectWriterLock, dwTimeout: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WaitForWriteAccess(self, dwTimeout) -proc ReleaseWriteAccess*(self: ptr IDirectWriterLock): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseWriteAccess(self) -proc HaveWriteAccess*(self: ptr IDirectWriterLock): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HaveWriteAccess(self) -proc AsyncGetClassBits*(self: ptr IUrlMon, rclsid: REFCLSID, pszTYPE: LPCWSTR, pszExt: LPCWSTR, dwFileVersionMS: DWORD, dwFileVersionLS: DWORD, pszCodeBase: LPCWSTR, pbc: ptr IBindCtx, dwClassContext: DWORD, riid: REFIID, flags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AsyncGetClassBits(self, rclsid, pszTYPE, pszExt, dwFileVersionMS, dwFileVersionLS, pszCodeBase, pbc, dwClassContext, riid, flags) -proc AllowForegroundTransfer*(self: ptr IForegroundTransfer, lpvReserved: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AllowForegroundTransfer(self, lpvReserved) -proc ExtractThumbnail*(self: ptr IThumbnailExtractor, pStg: ptr IStorage, ulLength: ULONG, ulHeight: ULONG, pulOutputLength: ptr ULONG, pulOutputHeight: ptr ULONG, phOutputBitmap: ptr HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExtractThumbnail(self, pStg, ulLength, ulHeight, pulOutputLength, pulOutputHeight, phOutputBitmap) -proc OnFileUpdated*(self: ptr IThumbnailExtractor, pStg: ptr IStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFileUpdated(self, pStg) -proc Dummy*(self: ptr IDummyHICONIncluder, h1: HICON, h2: HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Dummy(self, h1, h2) -proc AddRefOnProcess*(self: ptr IProcessLock): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddRefOnProcess(self) -proc ReleaseRefOnProcess*(self: ptr IProcessLock): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseRefOnProcess(self) -proc Init*(self: ptr ISurrogateService, rguidProcessID: REFGUID, pProcessLock: ptr IProcessLock, pfApplicationAware: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Init(self, rguidProcessID, pProcessLock, pfApplicationAware) -proc ApplicationLaunch*(self: ptr ISurrogateService, rguidApplID: REFGUID, appType: ApplicationType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplicationLaunch(self, rguidApplID, appType) -proc ApplicationFree*(self: ptr ISurrogateService, rguidApplID: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplicationFree(self, rguidApplID) -proc CatalogRefresh*(self: ptr ISurrogateService, ulReserved: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CatalogRefresh(self, ulReserved) -proc ProcessShutdown*(self: ptr ISurrogateService, shutdownType: ShutdownType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessShutdown(self, shutdownType) -proc PreInitialize*(self: ptr IInitializeSpy, dwCoInit: DWORD, dwCurThreadAptRefs: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreInitialize(self, dwCoInit, dwCurThreadAptRefs) -proc PostInitialize*(self: ptr IInitializeSpy, hrCoInit: HRESULT, dwCoInit: DWORD, dwNewThreadAptRefs: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostInitialize(self, hrCoInit, dwCoInit, dwNewThreadAptRefs) -proc PreUninitialize*(self: ptr IInitializeSpy, dwCurThreadAptRefs: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreUninitialize(self, dwCurThreadAptRefs) -proc PostUninitialize*(self: ptr IInitializeSpy, dwNewThreadAptRefs: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostUninitialize(self, dwNewThreadAptRefs) -proc OnUninitialize*(self: ptr IApartmentShutdown, ui64ApartmentIdentifier: UINT64): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnUninitialize(self, ui64ApartmentIdentifier) -proc SetGuid*(self: ptr ICreateTypeInfo, guid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGuid(self, guid) -proc SetTypeFlags*(self: ptr ICreateTypeInfo, uTypeFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTypeFlags(self, uTypeFlags) -proc SetDocString*(self: ptr ICreateTypeInfo, pStrDoc: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDocString(self, pStrDoc) -proc SetHelpContext*(self: ptr ICreateTypeInfo, dwHelpContext: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpContext(self, dwHelpContext) -proc SetVersion*(self: ptr ICreateTypeInfo, wMajorVerNum: WORD, wMinorVerNum: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVersion(self, wMajorVerNum, wMinorVerNum) -proc AddRefTypeInfo*(self: ptr ICreateTypeInfo, pTInfo: ptr ITypeInfo, phRefType: ptr HREFTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddRefTypeInfo(self, pTInfo, phRefType) -proc AddFuncDesc*(self: ptr ICreateTypeInfo, index: UINT, pFuncDesc: ptr FUNCDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddFuncDesc(self, index, pFuncDesc) -proc AddImplType*(self: ptr ICreateTypeInfo, index: UINT, hRefType: HREFTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddImplType(self, index, hRefType) -proc SetImplTypeFlags*(self: ptr ICreateTypeInfo, index: UINT, implTypeFlags: INT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetImplTypeFlags(self, index, implTypeFlags) -proc SetAlignment*(self: ptr ICreateTypeInfo, cbAlignment: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAlignment(self, cbAlignment) -proc SetSchema*(self: ptr ICreateTypeInfo, pStrSchema: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSchema(self, pStrSchema) -proc AddVarDesc*(self: ptr ICreateTypeInfo, index: UINT, pVarDesc: ptr VARDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddVarDesc(self, index, pVarDesc) -proc SetFuncAndParamNames*(self: ptr ICreateTypeInfo, index: UINT, rgszNames: ptr LPOLESTR, cNames: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFuncAndParamNames(self, index, rgszNames, cNames) -proc SetVarName*(self: ptr ICreateTypeInfo, index: UINT, szName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVarName(self, index, szName) -proc SetTypeDescAlias*(self: ptr ICreateTypeInfo, pTDescAlias: ptr TYPEDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTypeDescAlias(self, pTDescAlias) -proc DefineFuncAsDllEntry*(self: ptr ICreateTypeInfo, index: UINT, szDllName: LPOLESTR, szProcName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefineFuncAsDllEntry(self, index, szDllName, szProcName) -proc SetFuncDocString*(self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFuncDocString(self, index, szDocString) -proc SetVarDocString*(self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVarDocString(self, index, szDocString) -proc SetFuncHelpContext*(self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFuncHelpContext(self, index, dwHelpContext) -proc SetVarHelpContext*(self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVarHelpContext(self, index, dwHelpContext) -proc SetMops*(self: ptr ICreateTypeInfo, index: UINT, bstrMops: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMops(self, index, bstrMops) -proc SetTypeIdldesc*(self: ptr ICreateTypeInfo, pIdlDesc: ptr IDLDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTypeIdldesc(self, pIdlDesc) -proc LayOut*(self: ptr ICreateTypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LayOut(self) -proc DeleteFuncDesc*(self: ptr ICreateTypeInfo2, index: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteFuncDesc(self, index) -proc DeleteFuncDescByMemId*(self: ptr ICreateTypeInfo2, memid: MEMBERID, invKind: INVOKEKIND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteFuncDescByMemId(self, memid, invKind) -proc DeleteVarDesc*(self: ptr ICreateTypeInfo2, index: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteVarDesc(self, index) -proc DeleteVarDescByMemId*(self: ptr ICreateTypeInfo2, memid: MEMBERID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteVarDescByMemId(self, memid) -proc DeleteImplType*(self: ptr ICreateTypeInfo2, index: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteImplType(self, index) -proc SetCustData*(self: ptr ICreateTypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCustData(self, guid, pVarVal) -proc SetFuncCustData*(self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFuncCustData(self, index, guid, pVarVal) -proc SetParamCustData*(self: ptr ICreateTypeInfo2, indexFunc: UINT, indexParam: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetParamCustData(self, indexFunc, indexParam, guid, pVarVal) -proc SetVarCustData*(self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVarCustData(self, index, guid, pVarVal) -proc SetImplTypeCustData*(self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetImplTypeCustData(self, index, guid, pVarVal) -proc SetHelpStringContext*(self: ptr ICreateTypeInfo2, dwHelpStringContext: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpStringContext(self, dwHelpStringContext) -proc SetFuncHelpStringContext*(self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFuncHelpStringContext(self, index, dwHelpStringContext) -proc SetVarHelpStringContext*(self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVarHelpStringContext(self, index, dwHelpStringContext) -proc Invalidate*(self: ptr ICreateTypeInfo2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invalidate(self) -proc SetName*(self: ptr ICreateTypeInfo2, szName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetName(self, szName) -proc CreateTypeInfo*(self: ptr ICreateTypeLib, szName: LPOLESTR, tkind: TYPEKIND, ppCTInfo: ptr ptr ICreateTypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateTypeInfo(self, szName, tkind, ppCTInfo) -proc SetName*(self: ptr ICreateTypeLib, szName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetName(self, szName) -proc SetVersion*(self: ptr ICreateTypeLib, wMajorVerNum: WORD, wMinorVerNum: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVersion(self, wMajorVerNum, wMinorVerNum) -proc SetGuid*(self: ptr ICreateTypeLib, guid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGuid(self, guid) -proc SetDocString*(self: ptr ICreateTypeLib, szDoc: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDocString(self, szDoc) -proc SetHelpFileName*(self: ptr ICreateTypeLib, szHelpFileName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpFileName(self, szHelpFileName) -proc SetHelpContext*(self: ptr ICreateTypeLib, dwHelpContext: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpContext(self, dwHelpContext) -proc SetLcid*(self: ptr ICreateTypeLib, lcid: LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLcid(self, lcid) -proc SetLibFlags*(self: ptr ICreateTypeLib, uLibFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLibFlags(self, uLibFlags) -proc SaveAllChanges*(self: ptr ICreateTypeLib): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveAllChanges(self) -proc DeleteTypeInfo*(self: ptr ICreateTypeLib2, szName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteTypeInfo(self, szName) -proc SetCustData*(self: ptr ICreateTypeLib2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCustData(self, guid, pVarVal) -proc SetHelpStringContext*(self: ptr ICreateTypeLib2, dwHelpStringContext: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpStringContext(self, dwHelpStringContext) -proc SetHelpStringDll*(self: ptr ICreateTypeLib2, szFileName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpStringDll(self, szFileName) -proc GetTypeInfoCount*(self: ptr IDispatch, pctinfo: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoCount(self, pctinfo) -proc GetTypeInfo*(self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo) -proc GetIDsOfNames*(self: ptr IDispatch, riid: REFIID, rgszNames: ptr LPOLESTR, cNames: UINT, lcid: LCID, rgDispId: ptr DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId) -proc Invoke*(self: ptr IDispatch, dispIdMember: DISPID, riid: REFIID, lcid: LCID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) -proc Next*(self: ptr IEnumVARIANT, celt: ULONG, rgVar: ptr VARIANT, pCeltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgVar, pCeltFetched) -proc Skip*(self: ptr IEnumVARIANT, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumVARIANT, ppEnum: ptr ptr IEnumVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc Bind*(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, wFlags: WORD, ppTInfo: ptr ptr ITypeInfo, pDescKind: ptr DESCKIND, pBindPtr: ptr BINDPTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Bind(self, szName, lHashVal, wFlags, ppTInfo, pDescKind, pBindPtr) -proc BindType*(self: ptr ITypeComp, szName: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindType(self, szName, lHashVal, ppTInfo, ppTComp) -proc GetTypeAttr*(self: ptr ITypeInfo, ppTypeAttr: ptr ptr TYPEATTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeAttr(self, ppTypeAttr) -proc GetTypeComp*(self: ptr ITypeInfo, ppTComp: ptr ptr ITypeComp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeComp(self, ppTComp) -proc GetFuncDesc*(self: ptr ITypeInfo, index: UINT, ppFuncDesc: ptr ptr FUNCDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFuncDesc(self, index, ppFuncDesc) -proc GetVarDesc*(self: ptr ITypeInfo, index: UINT, ppVarDesc: ptr ptr VARDESC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVarDesc(self, index, ppVarDesc) -proc GetNames*(self: ptr ITypeInfo, memid: MEMBERID, rgBstrNames: ptr BSTR, cMaxNames: UINT, pcNames: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNames(self, memid, rgBstrNames, cMaxNames, pcNames) -proc GetRefTypeOfImplType*(self: ptr ITypeInfo, index: UINT, pRefType: ptr HREFTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRefTypeOfImplType(self, index, pRefType) -proc GetImplTypeFlags*(self: ptr ITypeInfo, index: UINT, pImplTypeFlags: ptr INT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImplTypeFlags(self, index, pImplTypeFlags) -proc GetIDsOfNames*(self: ptr ITypeInfo, rgszNames: ptr LPOLESTR, cNames: UINT, pMemId: ptr MEMBERID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDsOfNames(self, rgszNames, cNames, pMemId) -proc Invoke*(self: ptr ITypeInfo, pvInstance: PVOID, memid: MEMBERID, wFlags: WORD, pDispParams: ptr DISPPARAMS, pVarResult: ptr VARIANT, pExcepInfo: ptr EXCEPINFO, puArgErr: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, pvInstance, memid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr) -proc GetDocumentation*(self: ptr ITypeInfo, memid: MEMBERID, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocumentation(self, memid, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile) -proc GetDllEntry*(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, pBstrDllName: ptr BSTR, pBstrName: ptr BSTR, pwOrdinal: ptr WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDllEntry(self, memid, invKind, pBstrDllName, pBstrName, pwOrdinal) -proc GetRefTypeInfo*(self: ptr ITypeInfo, hRefType: HREFTYPE, ppTInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRefTypeInfo(self, hRefType, ppTInfo) -proc AddressOfMember*(self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, ppv: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddressOfMember(self, memid, invKind, ppv) -proc CreateInstance*(self: ptr ITypeInfo, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObj: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, pUnkOuter, riid, ppvObj) -proc GetMops*(self: ptr ITypeInfo, memid: MEMBERID, pBstrMops: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMops(self, memid, pBstrMops) -proc GetContainingTypeLib*(self: ptr ITypeInfo, ppTLib: ptr ptr ITypeLib, pIndex: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainingTypeLib(self, ppTLib, pIndex) -proc ReleaseTypeAttr*(self: ptr ITypeInfo, pTypeAttr: ptr TYPEATTR): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseTypeAttr(self, pTypeAttr) -proc ReleaseFuncDesc*(self: ptr ITypeInfo, pFuncDesc: ptr FUNCDESC): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseFuncDesc(self, pFuncDesc) -proc ReleaseVarDesc*(self: ptr ITypeInfo, pVarDesc: ptr VARDESC): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseVarDesc(self, pVarDesc) -proc GetTypeKind*(self: ptr ITypeInfo2, pTypeKind: ptr TYPEKIND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeKind(self, pTypeKind) -proc GetTypeFlags*(self: ptr ITypeInfo2, pTypeFlags: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeFlags(self, pTypeFlags) -proc GetFuncIndexOfMemId*(self: ptr ITypeInfo2, memid: MEMBERID, invKind: INVOKEKIND, pFuncIndex: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFuncIndexOfMemId(self, memid, invKind, pFuncIndex) -proc GetVarIndexOfMemId*(self: ptr ITypeInfo2, memid: MEMBERID, pVarIndex: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVarIndexOfMemId(self, memid, pVarIndex) -proc GetCustData*(self: ptr ITypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustData(self, guid, pVarVal) -proc GetFuncCustData*(self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFuncCustData(self, index, guid, pVarVal) -proc GetParamCustData*(self: ptr ITypeInfo2, indexFunc: UINT, indexParam: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParamCustData(self, indexFunc, indexParam, guid, pVarVal) -proc GetVarCustData*(self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVarCustData(self, index, guid, pVarVal) -proc GetImplTypeCustData*(self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImplTypeCustData(self, index, guid, pVarVal) -proc GetDocumentation2*(self: ptr ITypeInfo2, memid: MEMBERID, lcid: LCID, pbstrHelpString: ptr BSTR, pdwHelpStringContext: ptr DWORD, pbstrHelpStringDll: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocumentation2(self, memid, lcid, pbstrHelpString, pdwHelpStringContext, pbstrHelpStringDll) -proc GetAllCustData*(self: ptr ITypeInfo2, pCustData: ptr CUSTDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAllCustData(self, pCustData) -proc GetAllFuncCustData*(self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAllFuncCustData(self, index, pCustData) -proc GetAllParamCustData*(self: ptr ITypeInfo2, indexFunc: UINT, indexParam: UINT, pCustData: ptr CUSTDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAllParamCustData(self, indexFunc, indexParam, pCustData) -proc GetAllVarCustData*(self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAllVarCustData(self, index, pCustData) -proc GetAllImplTypeCustData*(self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAllImplTypeCustData(self, index, pCustData) -proc GetTypeInfoCount*(self: ptr ITypeLib): UINT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoCount(self) -proc GetTypeInfo*(self: ptr ITypeLib, index: UINT, ppTInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, index, ppTInfo) -proc GetTypeInfoType*(self: ptr ITypeLib, index: UINT, pTKind: ptr TYPEKIND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoType(self, index, pTKind) -proc GetTypeInfoOfGuid*(self: ptr ITypeLib, guid: REFGUID, ppTinfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfoOfGuid(self, guid, ppTinfo) -proc GetLibAttr*(self: ptr ITypeLib, ppTLibAttr: ptr ptr TLIBATTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLibAttr(self, ppTLibAttr) -proc GetTypeComp*(self: ptr ITypeLib, ppTComp: ptr ptr ITypeComp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeComp(self, ppTComp) -proc GetDocumentation*(self: ptr ITypeLib, index: INT, pBstrName: ptr BSTR, pBstrDocString: ptr BSTR, pdwHelpContext: ptr DWORD, pBstrHelpFile: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocumentation(self, index, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile) -proc IsName*(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, pfName: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsName(self, szNameBuf, lHashVal, pfName) -proc FindName*(self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, ppTInfo: ptr ptr ITypeInfo, rgMemId: ptr MEMBERID, pcFound: ptr USHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindName(self, szNameBuf, lHashVal, ppTInfo, rgMemId, pcFound) -proc ReleaseTLibAttr*(self: ptr ITypeLib, pTLibAttr: ptr TLIBATTR): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseTLibAttr(self, pTLibAttr) -proc GetCustData*(self: ptr ITypeLib2, guid: REFGUID, pVarVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCustData(self, guid, pVarVal) -proc GetLibStatistics*(self: ptr ITypeLib2, pcUniqueNames: ptr ULONG, pcchUniqueNames: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLibStatistics(self, pcUniqueNames, pcchUniqueNames) -proc GetDocumentation2*(self: ptr ITypeLib2, index: INT, lcid: LCID, pbstrHelpString: ptr BSTR, pdwHelpStringContext: ptr DWORD, pbstrHelpStringDll: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocumentation2(self, index, lcid, pbstrHelpString, pdwHelpStringContext, pbstrHelpStringDll) -proc GetAllCustData*(self: ptr ITypeLib2, pCustData: ptr CUSTDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAllCustData(self, pCustData) -proc RequestTypeChange*(self: ptr ITypeChangeEvents, changeKind: CHANGEKIND, pTInfoBefore: ptr ITypeInfo, pStrName: LPOLESTR, pfCancel: ptr INT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestTypeChange(self, changeKind, pTInfoBefore, pStrName, pfCancel) -proc AfterTypeChange*(self: ptr ITypeChangeEvents, changeKind: CHANGEKIND, pTInfoAfter: ptr ITypeInfo, pStrName: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AfterTypeChange(self, changeKind, pTInfoAfter, pStrName) -proc GetGUID*(self: ptr IErrorInfo, pGUID: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGUID(self, pGUID) -proc GetSource*(self: ptr IErrorInfo, pBstrSource: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSource(self, pBstrSource) -proc GetDescription*(self: ptr IErrorInfo, pBstrDescription: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescription(self, pBstrDescription) -proc GetHelpFile*(self: ptr IErrorInfo, pBstrHelpFile: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHelpFile(self, pBstrHelpFile) -proc GetHelpContext*(self: ptr IErrorInfo, pdwHelpContext: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHelpContext(self, pdwHelpContext) -proc SetGUID*(self: ptr ICreateErrorInfo, rguid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGUID(self, rguid) -proc SetSource*(self: ptr ICreateErrorInfo, szSource: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSource(self, szSource) -proc SetDescription*(self: ptr ICreateErrorInfo, szDescription: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDescription(self, szDescription) -proc SetHelpFile*(self: ptr ICreateErrorInfo, szHelpFile: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpFile(self, szHelpFile) -proc SetHelpContext*(self: ptr ICreateErrorInfo, dwHelpContext: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHelpContext(self, dwHelpContext) -proc InterfaceSupportsErrorInfo*(self: ptr ISupportErrorInfo, riid: REFIID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InterfaceSupportsErrorInfo(self, riid) -proc CreateFromTypeInfo*(self: ptr ITypeFactory, pTypeInfo: ptr ITypeInfo, riid: REFIID, ppv: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateFromTypeInfo(self, pTypeInfo, riid, ppv) -proc mSize*(self: ptr ITypeMarshal, pvType: PVOID, dwDestContext: DWORD, pvDestContext: PVOID, pSize: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Size(self, pvType, dwDestContext, pvDestContext, pSize) -proc Marshal*(self: ptr ITypeMarshal, pvType: PVOID, dwDestContext: DWORD, pvDestContext: PVOID, cbBufferLength: ULONG, pBuffer: ptr BYTE, pcbWritten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Marshal(self, pvType, dwDestContext, pvDestContext, cbBufferLength, pBuffer, pcbWritten) -proc Unmarshal*(self: ptr ITypeMarshal, pvType: PVOID, dwFlags: DWORD, cbBufferLength: ULONG, pBuffer: ptr BYTE, pcbRead: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unmarshal(self, pvType, dwFlags, cbBufferLength, pBuffer, pcbRead) -proc Free*(self: ptr ITypeMarshal, pvType: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Free(self, pvType) -proc RecordInit*(self: ptr IRecordInfo, pvNew: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordInit(self, pvNew) -proc RecordClear*(self: ptr IRecordInfo, pvExisting: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordClear(self, pvExisting) -proc RecordCopy*(self: ptr IRecordInfo, pvExisting: PVOID, pvNew: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordCopy(self, pvExisting, pvNew) -proc GetGuid*(self: ptr IRecordInfo, pguid: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGuid(self, pguid) -proc GetName*(self: ptr IRecordInfo, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName(self, pbstrName) -proc GetSize*(self: ptr IRecordInfo, pcbSize: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, pcbSize) -proc GetTypeInfo*(self: ptr IRecordInfo, ppTypeInfo: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeInfo(self, ppTypeInfo) -proc GetField*(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetField(self, pvData, szFieldName, pvarField) -proc GetFieldNoCopy*(self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT, ppvDataCArray: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFieldNoCopy(self, pvData, szFieldName, pvarField, ppvDataCArray) -proc PutField*(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutField(self, wFlags, pvData, szFieldName, pvarField) -proc PutFieldNoCopy*(self: ptr IRecordInfo, wFlags: ULONG, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutFieldNoCopy(self, wFlags, pvData, szFieldName, pvarField) -proc GetFieldNames*(self: ptr IRecordInfo, pcNames: ptr ULONG, rgBstrNames: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFieldNames(self, pcNames, rgBstrNames) -proc IsMatchingType*(self: ptr IRecordInfo, pRecordInfo: ptr IRecordInfo): WINBOOL {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsMatchingType(self, pRecordInfo) -proc RecordCreate*(self: ptr IRecordInfo): PVOID {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordCreate(self) -proc RecordCreateCopy*(self: ptr IRecordInfo, pvSource: PVOID, ppvDest: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordCreateCopy(self, pvSource, ppvDest) -proc RecordDestroy*(self: ptr IRecordInfo, pvRecord: PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecordDestroy(self, pvRecord) -proc AddError*(self: ptr IErrorLog, pszPropName: LPCOLESTR, pExcepInfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddError(self, pszPropName, pExcepInfo) -proc Read*(self: ptr IPropertyBag, pszPropName: LPCOLESTR, pVar: ptr VARIANT, pErrorLog: ptr IErrorLog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Read(self, pszPropName, pVar, pErrorLog) -proc Write*(self: ptr IPropertyBag, pszPropName: LPCOLESTR, pVar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Write(self, pszPropName, pVar) -proc Advise*(self: ptr IOleAdviseHolder, pAdvise: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pAdvise, pdwConnection) -proc Unadvise*(self: ptr IOleAdviseHolder, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwConnection) -proc EnumAdvise*(self: ptr IOleAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumAdvise(self, ppenumAdvise) -proc SendOnRename*(self: ptr IOleAdviseHolder, pmk: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendOnRename(self, pmk) -proc SendOnSave*(self: ptr IOleAdviseHolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendOnSave(self) -proc SendOnClose*(self: ptr IOleAdviseHolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendOnClose(self) -proc Cache*(self: ptr IOleCache, pformatetc: ptr FORMATETC, advf: DWORD, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cache(self, pformatetc, advf, pdwConnection) -proc Uncache*(self: ptr IOleCache, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Uncache(self, dwConnection) -proc EnumCache*(self: ptr IOleCache, ppenumSTATDATA: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumCache(self, ppenumSTATDATA) -proc InitCache*(self: ptr IOleCache, pDataObject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitCache(self, pDataObject) -proc SetData*(self: ptr IOleCache, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM, fRelease: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetData(self, pformatetc, pmedium, fRelease) -proc UpdateCache*(self: ptr IOleCache2, pDataObject: LPDATAOBJECT, grfUpdf: DWORD, pReserved: LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateCache(self, pDataObject, grfUpdf, pReserved) -proc DiscardCache*(self: ptr IOleCache2, dwDiscardOptions: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DiscardCache(self, dwDiscardOptions) -proc OnRun*(self: ptr IOleCacheControl, pDataObject: LPDATAOBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnRun(self, pDataObject) -proc OnStop*(self: ptr IOleCacheControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStop(self) -proc ParseDisplayName*(self: ptr IParseDisplayName, pbc: ptr IBindCtx, pszDisplayName: LPOLESTR, pchEaten: ptr ULONG, ppmkOut: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseDisplayName(self, pbc, pszDisplayName, pchEaten, ppmkOut) -proc EnumObjects*(self: ptr IOleContainer, grfFlags: DWORD, ppenum: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumObjects(self, grfFlags, ppenum) -proc LockContainer*(self: ptr IOleContainer, fLock: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockContainer(self, fLock) -proc SaveObject*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveObject(self) -proc GetMoniker*(self: ptr IOleClientSite, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMoniker(self, dwAssign, dwWhichMoniker, ppmk) -proc GetContainer*(self: ptr IOleClientSite, ppContainer: ptr ptr IOleContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainer(self, ppContainer) -proc ShowObject*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowObject(self) -proc OnShowWindow*(self: ptr IOleClientSite, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnShowWindow(self, fShow) -proc RequestNewObjectLayout*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestNewObjectLayout(self) -proc SetClientSite*(self: ptr IOleObject, pClientSite: ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClientSite(self, pClientSite) -proc GetClientSite*(self: ptr IOleObject, ppClientSite: ptr ptr IOleClientSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClientSite(self, ppClientSite) -proc SetHostNames*(self: ptr IOleObject, szContainerApp: LPCOLESTR, szContainerObj: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHostNames(self, szContainerApp, szContainerObj) -proc Close*(self: ptr IOleObject, dwSaveOption: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, dwSaveOption) -proc SetMoniker*(self: ptr IOleObject, dwWhichMoniker: DWORD, pmk: ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMoniker(self, dwWhichMoniker, pmk) -proc GetMoniker*(self: ptr IOleObject, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMoniker(self, dwAssign, dwWhichMoniker, ppmk) -proc InitFromData*(self: ptr IOleObject, pDataObject: ptr IDataObject, fCreation: WINBOOL, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitFromData(self, pDataObject, fCreation, dwReserved) -proc GetClipboardData*(self: ptr IOleObject, dwReserved: DWORD, ppDataObject: ptr ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClipboardData(self, dwReserved, ppDataObject) -proc DoVerb*(self: ptr IOleObject, iVerb: LONG, lpmsg: LPMSG, pActiveSite: ptr IOleClientSite, lindex: LONG, hwndParent: HWND, lprcPosRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoVerb(self, iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect) -proc EnumVerbs*(self: ptr IOleObject, ppEnumOleVerb: ptr ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumVerbs(self, ppEnumOleVerb) -proc Update*(self: ptr IOleObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Update(self) -proc IsUpToDate*(self: ptr IOleObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsUpToDate(self) -proc GetUserClassID*(self: ptr IOleObject, pClsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserClassID(self, pClsid) -proc GetUserType*(self: ptr IOleObject, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserType(self, dwFormOfType, pszUserType) -proc SetExtent*(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetExtent(self, dwDrawAspect, psizel) -proc GetExtent*(self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtent(self, dwDrawAspect, psizel) -proc Advise*(self: ptr IOleObject, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pAdvSink, pdwConnection) -proc Unadvise*(self: ptr IOleObject, dwConnection: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwConnection) -proc EnumAdvise*(self: ptr IOleObject, ppenumAdvise: ptr ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumAdvise(self, ppenumAdvise) -proc GetMiscStatus*(self: ptr IOleObject, dwAspect: DWORD, pdwStatus: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMiscStatus(self, dwAspect, pdwStatus) -proc SetColorScheme*(self: ptr IOleObject, pLogpal: ptr LOGPALETTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColorScheme(self, pLogpal) -proc GetWindow*(self: ptr IOleWindow, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindow(self, phwnd) -proc ContextSensitiveHelp*(self: ptr IOleWindow, fEnterMode: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ContextSensitiveHelp(self, fEnterMode) -proc SetUpdateOptions*(self: ptr IOleLink, dwUpdateOpt: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetUpdateOptions(self, dwUpdateOpt) -proc GetUpdateOptions*(self: ptr IOleLink, pdwUpdateOpt: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUpdateOptions(self, pdwUpdateOpt) -proc SetSourceMoniker*(self: ptr IOleLink, pmk: ptr IMoniker, rclsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSourceMoniker(self, pmk, rclsid) -proc GetSourceMoniker*(self: ptr IOleLink, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSourceMoniker(self, ppmk) -proc SetSourceDisplayName*(self: ptr IOleLink, pszStatusText: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSourceDisplayName(self, pszStatusText) -proc GetSourceDisplayName*(self: ptr IOleLink, ppszDisplayName: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSourceDisplayName(self, ppszDisplayName) -proc BindToSource*(self: ptr IOleLink, bindflags: DWORD, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToSource(self, bindflags, pbc) -proc BindIfRunning*(self: ptr IOleLink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindIfRunning(self) -proc GetBoundSource*(self: ptr IOleLink, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBoundSource(self, ppunk) -proc UnbindSource*(self: ptr IOleLink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnbindSource(self) -proc Update*(self: ptr IOleLink, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Update(self, pbc) -proc GetObject*(self: ptr IOleItemContainer, pszItem: LPOLESTR, dwSpeedNeeded: DWORD, pbc: ptr IBindCtx, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObject(self, pszItem, dwSpeedNeeded, pbc, riid, ppvObject) -proc GetObjectStorage*(self: ptr IOleItemContainer, pszItem: LPOLESTR, pbc: ptr IBindCtx, riid: REFIID, ppvStorage: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectStorage(self, pszItem, pbc, riid, ppvStorage) -proc IsRunning*(self: ptr IOleItemContainer, pszItem: LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self, pszItem) -proc GetBorder*(self: ptr IOleInPlaceUIWindow, lprectBorder: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBorder(self, lprectBorder) -proc RequestBorderSpace*(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestBorderSpace(self, pborderwidths) -proc SetBorderSpace*(self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBorderSpace(self, pborderwidths) -proc SetActiveObject*(self: ptr IOleInPlaceUIWindow, pActiveObject: ptr IOleInPlaceActiveObject, pszObjName: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActiveObject(self, pActiveObject, pszObjName) -proc TranslateAccelerator*(self: ptr IOleInPlaceActiveObject, lpmsg: LPMSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, lpmsg) -proc OnFrameWindowActivate*(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFrameWindowActivate(self, fActivate) -proc OnDocWindowActivate*(self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDocWindowActivate(self, fActivate) -proc ResizeBorder*(self: ptr IOleInPlaceActiveObject, prcBorder: LPCRECT, pUIWindow: ptr IOleInPlaceUIWindow, fFrameWindow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResizeBorder(self, prcBorder, pUIWindow, fFrameWindow) -proc EnableModeless*(self: ptr IOleInPlaceActiveObject, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable) -proc InsertMenus*(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertMenus(self, hmenuShared, lpMenuWidths) -proc SetMenu*(self: ptr IOleInPlaceFrame, hmenuShared: HMENU, holemenu: HOLEMENU, hwndActiveObject: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMenu(self, hmenuShared, holemenu, hwndActiveObject) -proc RemoveMenus*(self: ptr IOleInPlaceFrame, hmenuShared: HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveMenus(self, hmenuShared) -proc SetStatusText*(self: ptr IOleInPlaceFrame, pszStatusText: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStatusText(self, pszStatusText) -proc EnableModeless*(self: ptr IOleInPlaceFrame, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable) -proc TranslateAccelerator*(self: ptr IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, lpmsg, wID) -proc InPlaceDeactivate*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InPlaceDeactivate(self) -proc UIDeactivate*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UIDeactivate(self) -proc SetObjectRects*(self: ptr IOleInPlaceObject, lprcPosRect: LPCRECT, lprcClipRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetObjectRects(self, lprcPosRect, lprcClipRect) -proc ReactivateAndUndo*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReactivateAndUndo(self) -proc CanInPlaceActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanInPlaceActivate(self) -proc OnInPlaceActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceActivate(self) -proc OnUIActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnUIActivate(self) -proc GetWindowContext*(self: ptr IOleInPlaceSite, ppFrame: ptr ptr IOleInPlaceFrame, ppDoc: ptr ptr IOleInPlaceUIWindow, lprcPosRect: LPRECT, lprcClipRect: LPRECT, lpFrameInfo: LPOLEINPLACEFRAMEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindowContext(self, ppFrame, ppDoc, lprcPosRect, lprcClipRect, lpFrameInfo) -proc Scroll*(self: ptr IOleInPlaceSite, scrollExtant: SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Scroll(self, scrollExtant) -proc OnUIDeactivate*(self: ptr IOleInPlaceSite, fUndoable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnUIDeactivate(self, fUndoable) -proc OnInPlaceDeactivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceDeactivate(self) -proc DiscardUndoState*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DiscardUndoState(self) -proc DeactivateAndUndo*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeactivateAndUndo(self) -proc OnPosRectChange*(self: ptr IOleInPlaceSite, lprcPosRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPosRectChange(self, lprcPosRect) -proc FContinue*(self: ptr IContinue): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FContinue(self) -proc Draw*(self: ptr IViewObject, dwDrawAspect: DWORD, lindex: LONG, pvAspect: pointer, ptd: ptr DVTARGETDEVICE, hdcTargetDev: HDC, hdcDraw: HDC, lprcBounds: LPCRECTL, lprcWBounds: LPCRECTL, pfnContinue: proc (dwContinue: ULONG_PTR): WINBOOL {.stdcall.}, dwContinue: ULONG_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Draw(self, dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue) -proc GetColorSet*(self: ptr IViewObject, dwDrawAspect: DWORD, lindex: LONG, pvAspect: pointer, ptd: ptr DVTARGETDEVICE, hicTargetDev: HDC, ppColorSet: ptr ptr LOGPALETTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColorSet(self, dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet) -proc Freeze*(self: ptr IViewObject, dwDrawAspect: DWORD, lindex: LONG, pvAspect: pointer, pdwFreeze: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Freeze(self, dwDrawAspect, lindex, pvAspect, pdwFreeze) -proc Unfreeze*(self: ptr IViewObject, dwFreeze: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unfreeze(self, dwFreeze) -proc SetAdvise*(self: ptr IViewObject, aspects: DWORD, advf: DWORD, pAdvSink: ptr IAdviseSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAdvise(self, aspects, advf, pAdvSink) -proc GetAdvise*(self: ptr IViewObject, pAspects: ptr DWORD, pAdvf: ptr DWORD, ppAdvSink: ptr ptr IAdviseSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAdvise(self, pAspects, pAdvf, ppAdvSink) -proc GetExtent*(self: ptr IViewObject2, dwDrawAspect: DWORD, lindex: LONG, ptd: ptr DVTARGETDEVICE, lpsizel: LPSIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtent(self, dwDrawAspect, lindex, ptd, lpsizel) -proc QueryContinueDrag*(self: ptr IDropSource, fEscapePressed: WINBOOL, grfKeyState: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryContinueDrag(self, fEscapePressed, grfKeyState) -proc GiveFeedback*(self: ptr IDropSource, dwEffect: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GiveFeedback(self, dwEffect) -proc DragEnter*(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragEnter(self, pDataObj, grfKeyState, pt, pdwEffect) -proc DragOver*(self: ptr IDropTarget, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragOver(self, grfKeyState, pt, pdwEffect) -proc DragLeave*(self: ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragLeave(self) -proc Drop*(self: ptr IDropTarget, pDataObj: ptr IDataObject, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Drop(self, pDataObj, grfKeyState, pt, pdwEffect) -proc DragEnterTarget*(self: ptr IDropSourceNotify, hwndTarget: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragEnterTarget(self, hwndTarget) -proc DragLeaveTarget*(self: ptr IDropSourceNotify): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragLeaveTarget(self) -proc Next*(self: ptr IEnumOLEVERB, celt: ULONG, rgelt: LPOLEVERB, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumOLEVERB, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumOLEVERB, ppenum: ptr ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc QueryService*(self: ptr IServiceProvider, guidService: REFGUID, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryService(self, guidService, riid, ppvObject) -proc hasFeature*(self: ptr IXMLDOMImplementation, feature: BSTR, version: BSTR, hasFeature: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasFeature(self, feature, version, hasFeature) -proc get_nodeName*(self: ptr IXMLDOMNode, name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeName(self, name) -proc get_nodeValue*(self: ptr IXMLDOMNode, value: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeValue(self, value) -proc put_nodeValue*(self: ptr IXMLDOMNode, value: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_nodeValue(self, value) -proc get_nodeType*(self: ptr IXMLDOMNode, `type`: ptr DOMNodeType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeType(self, `type`) -proc get_parentNode*(self: ptr IXMLDOMNode, parent: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parentNode(self, parent) -proc get_childNodes*(self: ptr IXMLDOMNode, childList: ptr ptr IXMLDOMNodeList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_childNodes(self, childList) -proc get_firstChild*(self: ptr IXMLDOMNode, firstChild: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_firstChild(self, firstChild) -proc get_lastChild*(self: ptr IXMLDOMNode, lastChild: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_lastChild(self, lastChild) -proc get_previousSibling*(self: ptr IXMLDOMNode, previousSibling: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_previousSibling(self, previousSibling) -proc get_nextSibling*(self: ptr IXMLDOMNode, nextSibling: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nextSibling(self, nextSibling) -proc get_attributes*(self: ptr IXMLDOMNode, attributeMap: ptr ptr IXMLDOMNamedNodeMap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attributes(self, attributeMap) -proc insertBefore*(self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, refChild: VARIANT, outNewChild: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertBefore(self, newChild, refChild, outNewChild) -proc replaceChild*(self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, oldChild: ptr IXMLDOMNode, outOldChild: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceChild(self, newChild, oldChild, outOldChild) -proc removeChild*(self: ptr IXMLDOMNode, childNode: ptr IXMLDOMNode, oldChild: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeChild(self, childNode, oldChild) -proc appendChild*(self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, outNewChild: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendChild(self, newChild, outNewChild) -proc hasChildNodes*(self: ptr IXMLDOMNode, hasChild: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.hasChildNodes(self, hasChild) -proc get_ownerDocument*(self: ptr IXMLDOMNode, DOMDocument: ptr ptr IXMLDOMDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ownerDocument(self, DOMDocument) -proc cloneNode*(self: ptr IXMLDOMNode, deep: VARIANT_BOOL, cloneRoot: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.cloneNode(self, deep, cloneRoot) -proc get_nodeTypeString*(self: ptr IXMLDOMNode, nodeType: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeTypeString(self, nodeType) -proc get_text*(self: ptr IXMLDOMNode, text: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, text) -proc put_text*(self: ptr IXMLDOMNode, text: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, text) -proc get_specified*(self: ptr IXMLDOMNode, isSpecified: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_specified(self, isSpecified) -proc get_definition*(self: ptr IXMLDOMNode, definitionNode: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_definition(self, definitionNode) -proc get_nodeTypedValue*(self: ptr IXMLDOMNode, typedValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_nodeTypedValue(self, typedValue) -proc put_nodeTypedValue*(self: ptr IXMLDOMNode, typedValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_nodeTypedValue(self, typedValue) -proc get_dataType*(self: ptr IXMLDOMNode, dataTypeName: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dataType(self, dataTypeName) -proc put_dataType*(self: ptr IXMLDOMNode, dataTypeName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_dataType(self, dataTypeName) -proc get_xml*(self: ptr IXMLDOMNode, xmlString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_xml(self, xmlString) -proc transformNode*(self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, xmlString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.transformNode(self, stylesheet, xmlString) -proc selectNodes*(self: ptr IXMLDOMNode, queryString: BSTR, resultList: ptr ptr IXMLDOMNodeList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.selectNodes(self, queryString, resultList) -proc selectSingleNode*(self: ptr IXMLDOMNode, queryString: BSTR, resultNode: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.selectSingleNode(self, queryString, resultNode) -proc get_parsed*(self: ptr IXMLDOMNode, isParsed: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parsed(self, isParsed) -proc get_namespaceURI*(self: ptr IXMLDOMNode, namespaceURI: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_namespaceURI(self, namespaceURI) -proc get_prefix*(self: ptr IXMLDOMNode, prefixString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_prefix(self, prefixString) -proc get_baseName*(self: ptr IXMLDOMNode, nameString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_baseName(self, nameString) -proc transformNodeToObject*(self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, outputObject: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.transformNodeToObject(self, stylesheet, outputObject) -proc get_doctype*(self: ptr IXMLDOMDocument, documentType: ptr ptr IXMLDOMDocumentType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_doctype(self, documentType) -proc get_implementation*(self: ptr IXMLDOMDocument, impl: ptr ptr IXMLDOMImplementation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_implementation(self, impl) -proc get_documentElement*(self: ptr IXMLDOMDocument, DOMElement: ptr ptr IXMLDOMElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_documentElement(self, DOMElement) -proc putref_documentElement*(self: ptr IXMLDOMDocument, DOMElement: ptr IXMLDOMElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.putref_documentElement(self, DOMElement) -proc createElement*(self: ptr IXMLDOMDocument, tagName: BSTR, element: ptr ptr IXMLDOMElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElement(self, tagName, element) -proc createDocumentFragment*(self: ptr IXMLDOMDocument, docFrag: ptr ptr IXMLDOMDocumentFragment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createDocumentFragment(self, docFrag) -proc createTextNode*(self: ptr IXMLDOMDocument, data: BSTR, text: ptr ptr IXMLDOMText): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createTextNode(self, data, text) -proc createComment*(self: ptr IXMLDOMDocument, data: BSTR, comment: ptr ptr IXMLDOMComment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createComment(self, data, comment) -proc createCDATASection*(self: ptr IXMLDOMDocument, data: BSTR, cdata: ptr ptr IXMLDOMCDATASection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createCDATASection(self, data, cdata) -proc createProcessingInstruction*(self: ptr IXMLDOMDocument, target: BSTR, data: BSTR, pi: ptr ptr IXMLDOMProcessingInstruction): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createProcessingInstruction(self, target, data, pi) -proc createAttribute*(self: ptr IXMLDOMDocument, name: BSTR, attribute: ptr ptr IXMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createAttribute(self, name, attribute) -proc createEntityReference*(self: ptr IXMLDOMDocument, name: BSTR, entityRef: ptr ptr IXMLDOMEntityReference): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createEntityReference(self, name, entityRef) -proc getElementsByTagName*(self: ptr IXMLDOMDocument, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByTagName(self, tagName, resultList) -proc createNode*(self: ptr IXMLDOMDocument, Type: VARIANT, name: BSTR, namespaceURI: BSTR, node: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createNode(self, Type, name, namespaceURI, node) -proc nodeFromID*(self: ptr IXMLDOMDocument, idString: BSTR, node: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nodeFromID(self, idString, node) -proc load*(self: ptr IXMLDOMDocument, xmlSource: VARIANT, isSuccessful: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.load(self, xmlSource, isSuccessful) -proc get_readyState*(self: ptr IXMLDOMDocument, value: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, value) -proc get_parseError*(self: ptr IXMLDOMDocument, errorObj: ptr ptr IXMLDOMParseError): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parseError(self, errorObj) -proc get_url*(self: ptr IXMLDOMDocument, urlString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_url(self, urlString) -proc get_async*(self: ptr IXMLDOMDocument, isAsync: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_async(self, isAsync) -proc put_async*(self: ptr IXMLDOMDocument, isAsync: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_async(self, isAsync) -proc abort*(self: ptr IXMLDOMDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.abort(self) -proc loadXML*(self: ptr IXMLDOMDocument, bstrXML: BSTR, isSuccessful: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.loadXML(self, bstrXML, isSuccessful) -proc save*(self: ptr IXMLDOMDocument, destination: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.save(self, destination) -proc get_validateOnParse*(self: ptr IXMLDOMDocument, isValidating: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_validateOnParse(self, isValidating) -proc put_validateOnParse*(self: ptr IXMLDOMDocument, isValidating: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_validateOnParse(self, isValidating) -proc get_resolveExternals*(self: ptr IXMLDOMDocument, isResolving: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_resolveExternals(self, isResolving) -proc put_resolveExternals*(self: ptr IXMLDOMDocument, isResolving: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_resolveExternals(self, isResolving) -proc get_preserveWhiteSpace*(self: ptr IXMLDOMDocument, isPreserving: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_preserveWhiteSpace(self, isPreserving) -proc put_preserveWhiteSpace*(self: ptr IXMLDOMDocument, isPreserving: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_preserveWhiteSpace(self, isPreserving) -proc put_onreadystatechange*(self: ptr IXMLDOMDocument, readystatechangeSink: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, readystatechangeSink) -proc put_ondataavailable*(self: ptr IXMLDOMDocument, ondataavailableSink: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ondataavailable(self, ondataavailableSink) -proc put_ontransformnode*(self: ptr IXMLDOMDocument, ontransformnodeSink: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ontransformnode(self, ontransformnodeSink) -proc get_item*(self: ptr IXMLDOMNodeList, index: LONG, listItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_item(self, index, listItem) -proc get_length*(self: ptr IXMLDOMNodeList, listLength: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, listLength) -proc nextNode*(self: ptr IXMLDOMNodeList, nextItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nextNode(self, nextItem) -proc reset*(self: ptr IXMLDOMNodeList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.reset(self) -proc get_newEnum*(self: ptr IXMLDOMNodeList, ppUnk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, ppUnk) -proc getNamedItem*(self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getNamedItem(self, name, namedItem) -proc setNamedItem*(self: ptr IXMLDOMNamedNodeMap, newItem: ptr IXMLDOMNode, nameItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setNamedItem(self, newItem, nameItem) -proc removeNamedItem*(self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeNamedItem(self, name, namedItem) -proc get_item*(self: ptr IXMLDOMNamedNodeMap, index: LONG, listItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_item(self, index, listItem) -proc get_length*(self: ptr IXMLDOMNamedNodeMap, listLength: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, listLength) -proc getQualifiedItem*(self: ptr IXMLDOMNamedNodeMap, baseName: BSTR, namespaceURI: BSTR, qualifiedItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getQualifiedItem(self, baseName, namespaceURI, qualifiedItem) -proc removeQualifiedItem*(self: ptr IXMLDOMNamedNodeMap, baseName: BSTR, namespaceURI: BSTR, qualifiedItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeQualifiedItem(self, baseName, namespaceURI, qualifiedItem) -proc nextNode*(self: ptr IXMLDOMNamedNodeMap, nextItem: ptr ptr IXMLDOMNode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.nextNode(self, nextItem) -proc reset*(self: ptr IXMLDOMNamedNodeMap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.reset(self) -proc get_newEnum*(self: ptr IXMLDOMNamedNodeMap, ppUnk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, ppUnk) -proc get_data*(self: ptr IXMLDOMCharacterData, data: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, data) -proc put_data*(self: ptr IXMLDOMCharacterData, data: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, data) -proc get_length*(self: ptr IXMLDOMCharacterData, dataLength: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, dataLength) -proc substringData*(self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.substringData(self, offset, count, data) -proc appendData*(self: ptr IXMLDOMCharacterData, data: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.appendData(self, data) -proc insertData*(self: ptr IXMLDOMCharacterData, offset: LONG, data: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.insertData(self, offset, data) -proc deleteData*(self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.deleteData(self, offset, count) -proc replaceData*(self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.replaceData(self, offset, count, data) -proc get_name*(self: ptr IXMLDOMAttribute, attributeName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, attributeName) -proc get_value*(self: ptr IXMLDOMAttribute, attributeValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, attributeValue) -proc put_value*(self: ptr IXMLDOMAttribute, attributeValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_value(self, attributeValue) -proc get_tagName*(self: ptr IXMLDOMElement, tagName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagName(self, tagName) -proc getAttribute*(self: ptr IXMLDOMElement, name: BSTR, value: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, name, value) -proc setAttribute*(self: ptr IXMLDOMElement, name: BSTR, value: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, name, value) -proc removeAttribute*(self: ptr IXMLDOMElement, name: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, name) -proc getAttributeNode*(self: ptr IXMLDOMElement, name: BSTR, attributeNode: ptr ptr IXMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttributeNode(self, name, attributeNode) -proc setAttributeNode*(self: ptr IXMLDOMElement, DOMAttribute: ptr IXMLDOMAttribute, attributeNode: ptr ptr IXMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttributeNode(self, DOMAttribute, attributeNode) -proc removeAttributeNode*(self: ptr IXMLDOMElement, DOMAttribute: ptr IXMLDOMAttribute, attributeNode: ptr ptr IXMLDOMAttribute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttributeNode(self, DOMAttribute, attributeNode) -proc getElementsByTagName*(self: ptr IXMLDOMElement, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getElementsByTagName(self, tagName, resultList) -proc normalize*(self: ptr IXMLDOMElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.normalize(self) -proc splitText*(self: ptr IXMLDOMText, offset: LONG, rightHandTextNode: ptr ptr IXMLDOMText): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.splitText(self, offset, rightHandTextNode) -proc get_target*(self: ptr IXMLDOMProcessingInstruction, name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_target(self, name) -proc get_data*(self: ptr IXMLDOMProcessingInstruction, value: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_data(self, value) -proc put_data*(self: ptr IXMLDOMProcessingInstruction, value: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_data(self, value) -proc get_name*(self: ptr IXMLDOMDocumentType, rootName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, rootName) -proc get_entities*(self: ptr IXMLDOMDocumentType, entityMap: ptr ptr IXMLDOMNamedNodeMap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_entities(self, entityMap) -proc get_notations*(self: ptr IXMLDOMDocumentType, notationMap: ptr ptr IXMLDOMNamedNodeMap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_notations(self, notationMap) -proc get_publicId*(self: ptr IXMLDOMNotation, publicID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_publicId(self, publicID) -proc get_systemId*(self: ptr IXMLDOMNotation, systemID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemId(self, systemID) -proc get_publicId*(self: ptr IXMLDOMEntity, publicID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_publicId(self, publicID) -proc get_systemId*(self: ptr IXMLDOMEntity, systemID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_systemId(self, systemID) -proc get_notationName*(self: ptr IXMLDOMEntity, name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_notationName(self, name) -proc get_errorCode*(self: ptr IXMLDOMParseError, errorCode: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_errorCode(self, errorCode) -proc get_url*(self: ptr IXMLDOMParseError, urlString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_url(self, urlString) -proc get_reason*(self: ptr IXMLDOMParseError, reasonString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_reason(self, reasonString) -proc get_srcText*(self: ptr IXMLDOMParseError, sourceString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_srcText(self, sourceString) -proc get_line*(self: ptr IXMLDOMParseError, lineNumber: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_line(self, lineNumber) -proc get_linepos*(self: ptr IXMLDOMParseError, linePosition: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_linepos(self, linePosition) -proc get_filepos*(self: ptr IXMLDOMParseError, filePosition: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_filepos(self, filePosition) -proc uniqueID*(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.uniqueID(self, pNode, pID) -proc depth*(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pDepth: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.depth(self, pNode, pDepth) -proc childNumber*(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.childNumber(self, pNode, pNumber) -proc ancestorChildNumber*(self: ptr IXTLRuntime, bstrNodeName: BSTR, pNode: ptr IXMLDOMNode, pNumber: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ancestorChildNumber(self, bstrNodeName, pNode, pNumber) -proc absoluteChildNumber*(self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.absoluteChildNumber(self, pNode, pNumber) -proc formatIndex*(self: ptr IXTLRuntime, lIndex: LONG, bstrFormat: BSTR, pbstrFormattedString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.formatIndex(self, lIndex, bstrFormat, pbstrFormattedString) -proc formatNumber*(self: ptr IXTLRuntime, dblNumber: float64, bstrFormat: BSTR, pbstrFormattedString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.formatNumber(self, dblNumber, bstrFormat, pbstrFormattedString) -proc formatDate*(self: ptr IXTLRuntime, varDate: VARIANT, bstrFormat: BSTR, varDestLocale: VARIANT, pbstrFormattedString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.formatDate(self, varDate, bstrFormat, varDestLocale, pbstrFormattedString) -proc formatTime*(self: ptr IXTLRuntime, varTime: VARIANT, bstrFormat: BSTR, varDestLocale: VARIANT, pbstrFormattedString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.formatTime(self, varTime, bstrFormat, varDestLocale, pbstrFormattedString) -proc open*(self: ptr IXMLHttpRequest, bstrMethod: BSTR, bstrUrl: BSTR, varAsync: VARIANT, bstrUser: VARIANT, bstrPassword: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.open(self, bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword) -proc setRequestHeader*(self: ptr IXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setRequestHeader(self, bstrHeader, bstrValue) -proc getResponseHeader*(self: ptr IXMLHttpRequest, bstrHeader: BSTR, pbstrValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getResponseHeader(self, bstrHeader, pbstrValue) -proc getAllResponseHeaders*(self: ptr IXMLHttpRequest, pbstrHeaders: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAllResponseHeaders(self, pbstrHeaders) -proc send*(self: ptr IXMLHttpRequest, varBody: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.send(self, varBody) -proc abort*(self: ptr IXMLHttpRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.abort(self) -proc get_status*(self: ptr IXMLHttpRequest, plStatus: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_status(self, plStatus) -proc get_statusText*(self: ptr IXMLHttpRequest, pbstrStatus: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_statusText(self, pbstrStatus) -proc get_responseXML*(self: ptr IXMLHttpRequest, ppBody: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseXML(self, ppBody) -proc get_responseText*(self: ptr IXMLHttpRequest, pbstrBody: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseText(self, pbstrBody) -proc get_responseBody*(self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseBody(self, pvarBody) -proc get_responseStream*(self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_responseStream(self, pvarBody) -proc get_readyState*(self: ptr IXMLHttpRequest, plState: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, plState) -proc put_onreadystatechange*(self: ptr IXMLHttpRequest, pReadyStateSink: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_onreadystatechange(self, pReadyStateSink) -proc get_XMLDocument*(self: ptr IXMLDSOControl, ppDoc: ptr ptr IXMLDOMDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_XMLDocument(self, ppDoc) -proc put_XMLDocument*(self: ptr IXMLDSOControl, ppDoc: ptr IXMLDOMDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_XMLDocument(self, ppDoc) -proc get_JavaDSOCompatible*(self: ptr IXMLDSOControl, fJavaDSOCompatible: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_JavaDSOCompatible(self, fJavaDSOCompatible) -proc put_JavaDSOCompatible*(self: ptr IXMLDSOControl, fJavaDSOCompatible: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_JavaDSOCompatible(self, fJavaDSOCompatible) -proc get_readyState*(self: ptr IXMLDSOControl, state: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, state) -proc put_length*(self: ptr IXMLElementCollection, v: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_length(self, v) -proc get_length*(self: ptr IXMLElementCollection, p: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_length(self, p) -proc get_newEnum*(self: ptr IXMLElementCollection, ppUnk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_newEnum(self, ppUnk) -proc item*(self: ptr IXMLElementCollection, var1: VARIANT, var2: VARIANT, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.item(self, var1, var2, ppDisp) -proc get_root*(self: ptr IXMLDocument, p: ptr ptr IXMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_root(self, p) -proc get_fileSize*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileSize(self, p) -proc get_fileModifiedDate*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileModifiedDate(self, p) -proc get_fileUpdatedDate*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileUpdatedDate(self, p) -proc get_URL*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URL(self, p) -proc put_URL*(self: ptr IXMLDocument, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_URL(self, p) -proc get_mimeType*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p) -proc get_readyState*(self: ptr IXMLDocument, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, pl) -proc get_charset*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_charset*(self: ptr IXMLDocument, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, p) -proc get_version*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_version(self, p) -proc get_doctype*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_doctype(self, p) -proc get_dtdURL*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dtdURL(self, p) -proc createElement*(self: ptr IXMLDocument, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElement(self, vType, var1, ppElem) -proc get_root*(self: ptr IXMLDocument2, p: ptr ptr IXMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_root(self, p) -proc get_fileSize*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileSize(self, p) -proc get_fileModifiedDate*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileModifiedDate(self, p) -proc get_fileUpdatedDate*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_fileUpdatedDate(self, p) -proc get_URL*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URL(self, p) -proc put_URL*(self: ptr IXMLDocument2, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_URL(self, p) -proc get_mimeType*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_mimeType(self, p) -proc get_readyState*(self: ptr IXMLDocument2, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_readyState(self, pl) -proc get_charset*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_charset(self, p) -proc put_charset*(self: ptr IXMLDocument2, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_charset(self, p) -proc get_version*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_version(self, p) -proc get_doctype*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_doctype(self, p) -proc get_dtdURL*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_dtdURL(self, p) -proc createElement*(self: ptr IXMLDocument2, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.createElement(self, vType, var1, ppElem) -proc get_async*(self: ptr IXMLDocument2, pf: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_async(self, pf) -proc put_async*(self: ptr IXMLDocument2, f: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_async(self, f) -proc get_tagName*(self: ptr IXMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagName(self, p) -proc put_tagName*(self: ptr IXMLElement, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tagName(self, p) -proc get_parent*(self: ptr IXMLElement, ppParent: ptr ptr IXMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parent(self, ppParent) -proc setAttribute*(self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strPropertyName, PropertyValue) -proc getAttribute*(self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strPropertyName, PropertyValue) -proc removeAttribute*(self: ptr IXMLElement, strPropertyName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strPropertyName) -proc get_children*(self: ptr IXMLElement, pp: ptr ptr IXMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_children(self, pp) -proc get_type*(self: ptr IXMLElement, plType: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, plType) -proc get_text*(self: ptr IXMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc put_text*(self: ptr IXMLElement, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, p) -proc addChild*(self: ptr IXMLElement, pChildElem: ptr IXMLElement, lIndex: LONG, lReserved: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addChild(self, pChildElem, lIndex, lReserved) -proc removeChild*(self: ptr IXMLElement, pChildElem: ptr IXMLElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeChild(self, pChildElem) -proc get_tagName*(self: ptr IXMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_tagName(self, p) -proc put_tagName*(self: ptr IXMLElement2, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_tagName(self, p) -proc get_parent*(self: ptr IXMLElement2, ppParent: ptr ptr IXMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_parent(self, ppParent) -proc setAttribute*(self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setAttribute(self, strPropertyName, PropertyValue) -proc getAttribute*(self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAttribute(self, strPropertyName, PropertyValue) -proc removeAttribute*(self: ptr IXMLElement2, strPropertyName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeAttribute(self, strPropertyName) -proc get_children*(self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_children(self, pp) -proc get_type*(self: ptr IXMLElement2, plType: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_type(self, plType) -proc get_text*(self: ptr IXMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_text(self, p) -proc put_text*(self: ptr IXMLElement2, p: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_text(self, p) -proc addChild*(self: ptr IXMLElement2, pChildElem: ptr IXMLElement2, lIndex: LONG, lReserved: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.addChild(self, pChildElem, lIndex, lReserved) -proc removeChild*(self: ptr IXMLElement2, pChildElem: ptr IXMLElement2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.removeChild(self, pChildElem) -proc get_attributes*(self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_attributes(self, pp) -proc get_name*(self: ptr IXMLAttribute, n: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_name(self, n) -proc get_value*(self: ptr IXMLAttribute, v: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_value(self, v) -proc GetErrorInfo*(self: ptr IXMLError, pErrorReturn: ptr XML_ERROR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetErrorInfo(self, pErrorReturn) -proc GetClassID*(self: ptr IPersistMoniker, pClassID: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClassID(self, pClassID) -proc IsDirty*(self: ptr IPersistMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc Load*(self: ptr IPersistMoniker, fFullyAvailable: WINBOOL, pimkName: ptr IMoniker, pibc: LPBC, grfMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, fFullyAvailable, pimkName, pibc, grfMode) -proc Save*(self: ptr IPersistMoniker, pimkName: ptr IMoniker, pbc: LPBC, fRemember: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pimkName, pbc, fRemember) -proc SaveCompleted*(self: ptr IPersistMoniker, pimkName: ptr IMoniker, pibc: LPBC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveCompleted(self, pimkName, pibc) -proc GetCurMoniker*(self: ptr IPersistMoniker, ppimkName: ptr ptr IMoniker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurMoniker(self, ppimkName) -proc PutProperty*(self: ptr IMonikerProp, mkp: MONIKERPROPERTY, val: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutProperty(self, mkp, val) -proc CreateBinding*(self: ptr IBindProtocol, szUrl: LPCWSTR, pbc: ptr IBindCtx, ppb: ptr ptr IBinding): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBinding(self, szUrl, pbc, ppb) -proc Abort*(self: ptr IBinding): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Abort(self) -proc Suspend*(self: ptr IBinding): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Suspend(self) -proc Resume*(self: ptr IBinding): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resume(self) -proc SetPriority*(self: ptr IBinding, nPriority: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPriority(self, nPriority) -proc GetPriority*(self: ptr IBinding, pnPriority: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPriority(self, pnPriority) -proc GetBindResult*(self: ptr IBinding, pclsidProtocol: ptr CLSID, pdwResult: ptr DWORD, pszResult: ptr LPOLESTR, pdwReserved: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindResult(self, pclsidProtocol, pdwResult, pszResult, pdwReserved) -proc OnStartBinding*(self: ptr IBindStatusCallback, dwReserved: DWORD, pib: ptr IBinding): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStartBinding(self, dwReserved, pib) -proc GetPriority*(self: ptr IBindStatusCallback, pnPriority: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPriority(self, pnPriority) -proc OnLowResource*(self: ptr IBindStatusCallback, reserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnLowResource(self, reserved) -proc OnProgress*(self: ptr IBindStatusCallback, ulProgress: ULONG, ulProgressMax: ULONG, ulStatusCode: ULONG, szStatusText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnProgress(self, ulProgress, ulProgressMax, ulStatusCode, szStatusText) -proc OnStopBinding*(self: ptr IBindStatusCallback, hresult: HRESULT, szError: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStopBinding(self, hresult, szError) -proc GetBindInfo*(self: ptr IBindStatusCallback, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindInfo(self, grfBINDF, pbindinfo) -proc OnDataAvailable*(self: ptr IBindStatusCallback, grfBSCF: DWORD, dwSize: DWORD, pformatetc: ptr FORMATETC, pstgmed: ptr STGMEDIUM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDataAvailable(self, grfBSCF, dwSize, pformatetc, pstgmed) -proc OnObjectAvailable*(self: ptr IBindStatusCallback, riid: REFIID, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnObjectAvailable(self, riid, punk) -proc GetBindInfoEx*(self: ptr IBindStatusCallbackEx, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO, grfBINDF2: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindInfoEx(self, grfBINDF, pbindinfo, grfBINDF2, pdwReserved) -proc Authenticate*(self: ptr IAuthenticate, phwnd: ptr HWND, pszUsername: ptr LPWSTR, pszPassword: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Authenticate(self, phwnd, pszUsername, pszPassword) -proc AuthenticateEx*(self: ptr IAuthenticateEx, phwnd: ptr HWND, pszUsername: ptr LPWSTR, pszPassword: ptr LPWSTR, pauthinfo: ptr AUTHENTICATEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AuthenticateEx(self, phwnd, pszUsername, pszPassword, pauthinfo) -proc BeginningTransaction*(self: ptr IHttpNegotiate, szURL: LPCWSTR, szHeaders: LPCWSTR, dwReserved: DWORD, pszAdditionalHeaders: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginningTransaction(self, szURL, szHeaders, dwReserved, pszAdditionalHeaders) -proc OnResponse*(self: ptr IHttpNegotiate, dwResponseCode: DWORD, szResponseHeaders: LPCWSTR, szRequestHeaders: LPCWSTR, pszAdditionalRequestHeaders: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnResponse(self, dwResponseCode, szResponseHeaders, szRequestHeaders, pszAdditionalRequestHeaders) -proc GetRootSecurityId*(self: ptr IHttpNegotiate2, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRootSecurityId(self, pbSecurityId, pcbSecurityId, dwReserved) -proc GetSerializedClientCertContext*(self: ptr IHttpNegotiate3, ppbCert: ptr ptr BYTE, pcbCert: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSerializedClientCertContext(self, ppbCert, pcbCert) -proc SetHandleForUnlock*(self: ptr IWinInetFileStream, hWinInetLockHandle: DWORD_PTR, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHandleForUnlock(self, hWinInetLockHandle, dwReserved) -proc SetDeleteFile*(self: ptr IWinInetFileStream, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDeleteFile(self, dwReserved) -proc GetWindow*(self: ptr IWindowForBindingUI, rguidReason: REFGUID, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindow(self, rguidReason, phwnd) -proc OnCodeInstallProblem*(self: ptr ICodeInstall, ulStatusCode: ULONG, szDestination: LPCWSTR, szSource: LPCWSTR, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnCodeInstallProblem(self, ulStatusCode, szDestination, szSource, dwReserved) -proc GetPropertyBSTR*(self: ptr IUri, uriProp: Uri_PROPERTY, pbstrProperty: ptr BSTR, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyBSTR(self, uriProp, pbstrProperty, dwFlags) -proc GetPropertyLength*(self: ptr IUri, uriProp: Uri_PROPERTY, pcchProperty: ptr DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyLength(self, uriProp, pcchProperty, dwFlags) -proc GetPropertyDWORD*(self: ptr IUri, uriProp: Uri_PROPERTY, pdwProperty: ptr DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDWORD(self, uriProp, pdwProperty, dwFlags) -proc HasProperty*(self: ptr IUri, uriProp: Uri_PROPERTY, pfHasProperty: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasProperty(self, uriProp, pfHasProperty) -proc GetAbsoluteUri*(self: ptr IUri, pbstrAbsoluteUri: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAbsoluteUri(self, pbstrAbsoluteUri) -proc GetAuthority*(self: ptr IUri, pbstrAuthority: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAuthority(self, pbstrAuthority) -proc GetDisplayUri*(self: ptr IUri, pbstrDisplayString: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayUri(self, pbstrDisplayString) -proc GetDomain*(self: ptr IUri, pbstrDomain: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDomain(self, pbstrDomain) -proc GetExtension*(self: ptr IUri, pbstrExtension: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtension(self, pbstrExtension) -proc GetFragment*(self: ptr IUri, pbstrFragment: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFragment(self, pbstrFragment) -proc GetHost*(self: ptr IUri, pbstrHost: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHost(self, pbstrHost) -proc GetPassword*(self: ptr IUri, pbstrPassword: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPassword(self, pbstrPassword) -proc GetPath*(self: ptr IUri, pbstrPath: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPath(self, pbstrPath) -proc GetPathAndQuery*(self: ptr IUri, pbstrPathAndQuery: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPathAndQuery(self, pbstrPathAndQuery) -proc GetQuery*(self: ptr IUri, pbstrQuery: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetQuery(self, pbstrQuery) -proc GetRawUri*(self: ptr IUri, pbstrRawUri: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRawUri(self, pbstrRawUri) -proc GetSchemeName*(self: ptr IUri, pbstrSchemeName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSchemeName(self, pbstrSchemeName) -proc GetUserInfo*(self: ptr IUri, pbstrUserInfo: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserInfo(self, pbstrUserInfo) -proc GetUserName*(self: ptr IUri, pbstrUserName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserName(self, pbstrUserName) -proc GetHostType*(self: ptr IUri, pdwHostType: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHostType(self, pdwHostType) -proc GetPort*(self: ptr IUri, pdwPort: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPort(self, pdwPort) -proc GetScheme*(self: ptr IUri, pdwScheme: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScheme(self, pdwScheme) -proc GetZone*(self: ptr IUri, pdwZone: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZone(self, pdwZone) -proc GetProperties*(self: ptr IUri, pdwFlags: LPDWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperties(self, pdwFlags) -proc IsEqual*(self: ptr IUri, pUri: ptr IUri, pfEqual: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqual(self, pUri, pfEqual) -proc GetIUri*(self: ptr IUriContainer, ppIUri: ptr ptr IUri): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIUri(self, ppIUri) -proc CreateUriSimple*(self: ptr IUriBuilder, dwAllowEncodingPropertyMask: DWORD, dwReserved: DWORD_PTR, ppIUri: ptr ptr IUri): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateUriSimple(self, dwAllowEncodingPropertyMask, dwReserved, ppIUri) -proc CreateUri*(self: ptr IUriBuilder, dwCreateFlags: DWORD, dwAllowEncodingPropertyMask: DWORD, dwReserved: DWORD_PTR, ppIUri: ptr ptr IUri): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateUri(self, dwCreateFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri) -proc CreateUriWithFlags*(self: ptr IUriBuilder, dwCreateFlags: DWORD, dwUriBuilderFlags: DWORD, dwAllowEncodingPropertyMask: DWORD, dwReserved: DWORD_PTR, ppIUri: ptr ptr IUri): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateUriWithFlags(self, dwCreateFlags, dwUriBuilderFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri) -proc GetIUri*(self: ptr IUriBuilder, ppIUri: ptr ptr IUri): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIUri(self, ppIUri) -proc SetIUri*(self: ptr IUriBuilder, pIUri: ptr IUri): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIUri(self, pIUri) -proc GetFragment*(self: ptr IUriBuilder, pcchFragment: ptr DWORD, ppwzFragment: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFragment(self, pcchFragment, ppwzFragment) -proc GetHost*(self: ptr IUriBuilder, pcchHost: ptr DWORD, ppwzHost: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHost(self, pcchHost, ppwzHost) -proc GetPassword*(self: ptr IUriBuilder, pcchPassword: ptr DWORD, ppwzPassword: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPassword(self, pcchPassword, ppwzPassword) -proc GetPath*(self: ptr IUriBuilder, pcchPath: ptr DWORD, ppwzPath: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPath(self, pcchPath, ppwzPath) -proc GetPort*(self: ptr IUriBuilder, pfHasPort: ptr WINBOOL, pdwPort: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPort(self, pfHasPort, pdwPort) -proc GetQuery*(self: ptr IUriBuilder, pcchQuery: ptr DWORD, ppwzQuery: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetQuery(self, pcchQuery, ppwzQuery) -proc GetSchemeName*(self: ptr IUriBuilder, pcchSchemeName: ptr DWORD, ppwzSchemeName: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSchemeName(self, pcchSchemeName, ppwzSchemeName) -proc GetUserName*(self: ptr IUriBuilder, pcchUserName: ptr DWORD, ppwzUserName: ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUserName(self, pcchUserName, ppwzUserName) -proc SetFragment*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFragment(self, pwzNewValue) -proc SetHost*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHost(self, pwzNewValue) -proc SetPassword*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPassword(self, pwzNewValue) -proc SetPath*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPath(self, pwzNewValue) -proc SetPort*(self: ptr IUriBuilder, fHasPort: WINBOOL, dwNewValue: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPort(self, fHasPort, dwNewValue) -proc SetQuery*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetQuery(self, pwzNewValue) -proc SetSchemeName*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSchemeName(self, pwzNewValue) -proc SetUserName*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetUserName(self, pwzNewValue) -proc RemoveProperties*(self: ptr IUriBuilder, dwPropertyMask: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveProperties(self, dwPropertyMask) -proc HasBeenModified*(self: ptr IUriBuilder, pfModified: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasBeenModified(self, pfModified) -proc CreateIUriBuilder*(self: ptr IUriBuilderFactory, dwFlags: DWORD, dwReserved: DWORD_PTR, ppIUriBuilder: ptr ptr IUriBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateIUriBuilder(self, dwFlags, dwReserved, ppIUriBuilder) -proc CreateInitializedIUriBuilder*(self: ptr IUriBuilderFactory, dwFlags: DWORD, dwReserved: DWORD_PTR, ppIUriBuilder: ptr ptr IUriBuilder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInitializedIUriBuilder(self, dwFlags, dwReserved, ppIUriBuilder) -proc mQueryOption*(self: ptr IWinInetInfo, dwOption: DWORD, pBuffer: LPVOID, pcbBuf: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryOption(self, dwOption, pBuffer, pcbBuf) -proc OnSecurityProblem*(self: ptr IHttpSecurity, dwProblem: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSecurityProblem(self, dwProblem) -proc QueryInfo*(self: ptr IWinInetHttpInfo, dwOption: DWORD, pBuffer: LPVOID, pcbBuf: ptr DWORD, pdwFlags: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryInfo(self, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved) -proc GetRequestTimeouts*(self: ptr IWinInetHttpTimeouts, pdwConnectTimeout: ptr DWORD, pdwSendTimeout: ptr DWORD, pdwReceiveTimeout: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRequestTimeouts(self, pdwConnectTimeout, pdwSendTimeout, pdwReceiveTimeout) -proc SetCacheExtension*(self: ptr IWinInetCacheHints, pwzExt: LPCWSTR, pszCacheFile: LPVOID, pcbCacheFile: ptr DWORD, pdwWinInetError: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCacheExtension(self, pwzExt, pszCacheFile, pcbCacheFile, pdwWinInetError, pdwReserved) -proc SetCacheExtension2*(self: ptr IWinInetCacheHints2, pwzExt: LPCWSTR, pwzCacheFile: ptr WCHAR, pcchCacheFile: ptr DWORD, pdwWinInetError: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCacheExtension2(self, pwzExt, pwzCacheFile, pcchCacheFile, pdwWinInetError, pdwReserved) -proc CreateMoniker*(self: ptr IBindHost, szName: LPOLESTR, pBC: ptr IBindCtx, ppmk: ptr ptr IMoniker, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateMoniker(self, szName, pBC, ppmk, dwReserved) -proc MonikerBindToStorage*(self: ptr IBindHost, pMk: ptr IMoniker, pBC: ptr IBindCtx, pBSC: ptr IBindStatusCallback, riid: REFIID, ppvObj: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MonikerBindToStorage(self, pMk, pBC, pBSC, riid, ppvObj) -proc MonikerBindToObject*(self: ptr IBindHost, pMk: ptr IMoniker, pBC: ptr IBindCtx, pBSC: ptr IBindStatusCallback, riid: REFIID, ppvObj: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MonikerBindToObject(self, pMk, pBC, pBSC, riid, ppvObj) -proc GetBindInfo*(self: ptr IInternetBindInfo, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindInfo(self, grfBINDF, pbindinfo) -proc GetBindString*(self: ptr IInternetBindInfo, ulStringType: ULONG, ppwzStr: ptr LPOLESTR, cEl: ULONG, pcElFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindString(self, ulStringType, ppwzStr, cEl, pcElFetched) -proc GetBindInfoEx*(self: ptr IInternetBindInfoEx, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO, grfBINDF2: ptr DWORD, pdwReserved: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindInfoEx(self, grfBINDF, pbindinfo, grfBINDF2, pdwReserved) -proc Start*(self: ptr IInternetProtocolRoot, szUrl: LPCWSTR, pOIProtSink: ptr IInternetProtocolSink, pOIBindInfo: ptr IInternetBindInfo, grfPI: DWORD, dwReserved: HANDLE_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Start(self, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved) -proc Continue*(self: ptr IInternetProtocolRoot, pProtocolData: ptr PROTOCOLDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Continue(self, pProtocolData) -proc Abort*(self: ptr IInternetProtocolRoot, hrReason: HRESULT, dwOptions: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Abort(self, hrReason, dwOptions) -proc Terminate*(self: ptr IInternetProtocolRoot, dwOptions: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Terminate(self, dwOptions) -proc Suspend*(self: ptr IInternetProtocolRoot): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Suspend(self) -proc Resume*(self: ptr IInternetProtocolRoot): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resume(self) -proc Read*(self: ptr IInternetProtocol, pv: pointer, cb: ULONG, pcbRead: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Read(self, pv, cb, pcbRead) -proc Seek*(self: ptr IInternetProtocol, dlibMove: LARGE_INTEGER, dwOrigin: DWORD, plibNewPosition: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Seek(self, dlibMove, dwOrigin, plibNewPosition) -proc LockRequest*(self: ptr IInternetProtocol, dwOptions: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockRequest(self, dwOptions) -proc UnlockRequest*(self: ptr IInternetProtocol): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnlockRequest(self) -proc StartEx*(self: ptr IInternetProtocolEx, pUri: ptr IUri, pOIProtSink: ptr IInternetProtocolSink, pOIBindInfo: ptr IInternetBindInfo, grfPI: DWORD, dwReserved: HANDLE_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartEx(self, pUri, pOIProtSink, pOIBindInfo, grfPI, dwReserved) -proc Switch*(self: ptr IInternetProtocolSink, pProtocolData: ptr PROTOCOLDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Switch(self, pProtocolData) -proc ReportProgress*(self: ptr IInternetProtocolSink, ulStatusCode: ULONG, szStatusText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReportProgress(self, ulStatusCode, szStatusText) -proc ReportData*(self: ptr IInternetProtocolSink, grfBSCF: DWORD, ulProgress: ULONG, ulProgressMax: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReportData(self, grfBSCF, ulProgress, ulProgressMax) -proc ReportResult*(self: ptr IInternetProtocolSink, hrResult: HRESULT, dwError: DWORD, szResult: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReportResult(self, hrResult, dwError, szResult) -proc SwitchSink*(self: ptr IInternetProtocolSinkStackable, pOIProtSink: ptr IInternetProtocolSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SwitchSink(self, pOIProtSink) -proc CommitSwitch*(self: ptr IInternetProtocolSinkStackable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CommitSwitch(self) -proc RollbackSwitch*(self: ptr IInternetProtocolSinkStackable): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RollbackSwitch(self) -proc RegisterNameSpace*(self: ptr IInternetSession, pCF: ptr IClassFactory, rclsid: REFCLSID, pwzProtocol: LPCWSTR, cPatterns: ULONG, ppwzPatterns: ptr LPCWSTR, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterNameSpace(self, pCF, rclsid, pwzProtocol, cPatterns, ppwzPatterns, dwReserved) -proc UnregisterNameSpace*(self: ptr IInternetSession, pCF: ptr IClassFactory, pszProtocol: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterNameSpace(self, pCF, pszProtocol) -proc RegisterMimeFilter*(self: ptr IInternetSession, pCF: ptr IClassFactory, rclsid: REFCLSID, pwzType: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterMimeFilter(self, pCF, rclsid, pwzType) -proc UnregisterMimeFilter*(self: ptr IInternetSession, pCF: ptr IClassFactory, pwzType: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterMimeFilter(self, pCF, pwzType) -proc CreateBinding*(self: ptr IInternetSession, pBC: LPBC, szUrl: LPCWSTR, pUnkOuter: ptr IUnknown, ppUnk: ptr ptr IUnknown, ppOInetProt: ptr ptr IInternetProtocol, dwOption: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBinding(self, pBC, szUrl, pUnkOuter, ppUnk, ppOInetProt, dwOption) -proc SetSessionOption*(self: ptr IInternetSession, dwOption: DWORD, pBuffer: LPVOID, dwBufferLength: DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSessionOption(self, dwOption, pBuffer, dwBufferLength, dwReserved) -proc GetSessionOption*(self: ptr IInternetSession, dwOption: DWORD, pBuffer: LPVOID, pdwBufferLength: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSessionOption(self, dwOption, pBuffer, pdwBufferLength, dwReserved) -proc Prepare*(self: ptr IInternetThreadSwitch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Prepare(self) -proc Continue*(self: ptr IInternetThreadSwitch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Continue(self) -proc SetPriority*(self: ptr IInternetPriority, nPriority: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPriority(self, nPriority) -proc GetPriority*(self: ptr IInternetPriority, pnPriority: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPriority(self, pnPriority) -proc ParseUrl*(self: ptr IInternetProtocolInfo, pwzUrl: LPCWSTR, ParseAction: PARSEACTION, dwParseFlags: DWORD, pwzResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseUrl(self, pwzUrl, ParseAction, dwParseFlags, pwzResult, cchResult, pcchResult, dwReserved) -proc CombineUrl*(self: ptr IInternetProtocolInfo, pwzBaseUrl: LPCWSTR, pwzRelativeUrl: LPCWSTR, dwCombineFlags: DWORD, pwzResult: LPWSTR, cchResult: DWORD, pcchResult: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CombineUrl(self, pwzBaseUrl, pwzRelativeUrl, dwCombineFlags, pwzResult, cchResult, pcchResult, dwReserved) -proc CompareUrl*(self: ptr IInternetProtocolInfo, pwzUrl1: LPCWSTR, pwzUrl2: LPCWSTR, dwCompareFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareUrl(self, pwzUrl1, pwzUrl2, dwCompareFlags) -proc QueryInfo*(self: ptr IInternetProtocolInfo, pwzUrl: LPCWSTR, OueryOption: QUERYOPTION, dwQueryFlags: DWORD, pBuffer: LPVOID, cbBuffer: DWORD, pcbBuf: ptr DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryInfo(self, pwzUrl, OueryOption, dwQueryFlags, pBuffer, cbBuffer, pcbBuf, dwReserved) -proc GetWindow*(self: ptr IInternetSecurityMgrSite, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindow(self, phwnd) -proc EnableModeless*(self: ptr IInternetSecurityMgrSite, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable) -proc SetSecuritySite*(self: ptr IInternetSecurityManager, pSite: ptr IInternetSecurityMgrSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSecuritySite(self, pSite) -proc GetSecuritySite*(self: ptr IInternetSecurityManager, ppSite: ptr ptr IInternetSecurityMgrSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecuritySite(self, ppSite) -proc MapUrlToZone*(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, pdwZone: ptr DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapUrlToZone(self, pwszUrl, pdwZone, dwFlags) -proc GetSecurityId*(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecurityId(self, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved) -proc ProcessUrlAction*(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessUrlAction(self, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved) -proc QueryCustomPolicy*(self: ptr IInternetSecurityManager, pwszUrl: LPCWSTR, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, pContext: ptr BYTE, cbContext: DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryCustomPolicy(self, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) -proc SetZoneMapping*(self: ptr IInternetSecurityManager, dwZone: DWORD, lpszPattern: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetZoneMapping(self, dwZone, lpszPattern, dwFlags) -proc GetZoneMappings*(self: ptr IInternetSecurityManager, dwZone: DWORD, ppenumString: ptr ptr IEnumString, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneMappings(self, dwZone, ppenumString, dwFlags) -proc ProcessUrlActionEx*(self: ptr IInternetSecurityManagerEx, pwszUrl: LPCWSTR, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD, pdwOutFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessUrlActionEx(self, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags) -proc MapUrlToZoneEx2*(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, pdwZone: ptr DWORD, dwFlags: DWORD, ppwszMappedUrl: ptr LPWSTR, pdwOutFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapUrlToZoneEx2(self, pUri, pdwZone, dwFlags, ppwszMappedUrl, pdwOutFlags) -proc ProcessUrlActionEx2*(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD_PTR, pdwOutFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessUrlActionEx2(self, pUri, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, pdwOutFlags) -proc GetSecurityIdEx2*(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecurityIdEx2(self, pUri, pbSecurityId, pcbSecurityId, dwReserved) -proc QueryCustomPolicyEx2*(self: ptr IInternetSecurityManagerEx2, pUri: ptr IUri, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, pContext: ptr BYTE, cbContext: DWORD, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryCustomPolicyEx2(self, pUri, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) -proc GetId*(self: ptr IZoneIdentifier, pdwZone: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetId(self, pdwZone) -proc SetId*(self: ptr IZoneIdentifier, dwZone: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetId(self, dwZone) -proc Remove*(self: ptr IZoneIdentifier): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Remove(self) -proc GetSecurityId*(self: ptr IInternetHostSecurityManager, pbSecurityId: ptr BYTE, pcbSecurityId: ptr DWORD, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSecurityId(self, pbSecurityId, pcbSecurityId, dwReserved) -proc ProcessUrlAction*(self: ptr IInternetHostSecurityManager, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, pContext: ptr BYTE, cbContext: DWORD, dwFlags: DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessUrlAction(self, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved) -proc QueryCustomPolicy*(self: ptr IInternetHostSecurityManager, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, pContext: ptr BYTE, cbContext: DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryCustomPolicy(self, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved) -proc GetZoneAttributes*(self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneAttributes(self, dwZone, pZoneAttributes) -proc SetZoneAttributes*(self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetZoneAttributes(self, dwZone, pZoneAttributes) -proc GetZoneCustomPolicy*(self: ptr IInternetZoneManager, dwZone: DWORD, guidKey: REFGUID, ppPolicy: ptr ptr BYTE, pcbPolicy: ptr DWORD, urlZoneReg: URLZONEREG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneCustomPolicy(self, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg) -proc SetZoneCustomPolicy*(self: ptr IInternetZoneManager, dwZone: DWORD, guidKey: REFGUID, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetZoneCustomPolicy(self, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg) -proc GetZoneActionPolicy*(self: ptr IInternetZoneManager, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneActionPolicy(self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) -proc SetZoneActionPolicy*(self: ptr IInternetZoneManager, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetZoneActionPolicy(self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg) -proc PromptAction*(self: ptr IInternetZoneManager, dwAction: DWORD, hwndParent: HWND, pwszUrl: LPCWSTR, pwszText: LPCWSTR, dwPromptFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PromptAction(self, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags) -proc LogAction*(self: ptr IInternetZoneManager, dwAction: DWORD, pwszUrl: LPCWSTR, pwszText: LPCWSTR, dwLogFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LogAction(self, dwAction, pwszUrl, pwszText, dwLogFlags) -proc CreateZoneEnumerator*(self: ptr IInternetZoneManager, pdwEnum: ptr DWORD, pdwCount: ptr DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateZoneEnumerator(self, pdwEnum, pdwCount, dwFlags) -proc GetZoneAt*(self: ptr IInternetZoneManager, dwEnum: DWORD, dwIndex: DWORD, pdwZone: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneAt(self, dwEnum, dwIndex, pdwZone) -proc DestroyZoneEnumerator*(self: ptr IInternetZoneManager, dwEnum: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyZoneEnumerator(self, dwEnum) -proc CopyTemplatePoliciesToZone*(self: ptr IInternetZoneManager, dwTemplate: DWORD, dwZone: DWORD, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyTemplatePoliciesToZone(self, dwTemplate, dwZone, dwReserved) -proc GetZoneActionPolicyEx*(self: ptr IInternetZoneManagerEx, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneActionPolicyEx(self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags) -proc SetZoneActionPolicyEx*(self: ptr IInternetZoneManagerEx, dwZone: DWORD, dwAction: DWORD, pPolicy: ptr BYTE, cbPolicy: DWORD, urlZoneReg: URLZONEREG, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetZoneActionPolicyEx(self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags) -proc GetZoneAttributesEx*(self: ptr IInternetZoneManagerEx2, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneAttributesEx(self, dwZone, pZoneAttributes, dwFlags) -proc GetZoneSecurityState*(self: ptr IInternetZoneManagerEx2, dwZoneIndex: DWORD, fRespectPolicy: WINBOOL, pdwState: LPDWORD, pfPolicyEncountered: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetZoneSecurityState(self, dwZoneIndex, fRespectPolicy, pdwState, pfPolicyEncountered) -proc GetIESecurityState*(self: ptr IInternetZoneManagerEx2, fRespectPolicy: WINBOOL, pdwState: LPDWORD, pfPolicyEncountered: ptr WINBOOL, fNoCache: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIESecurityState(self, fRespectPolicy, pdwState, pfPolicyEncountered, fNoCache) -proc FixUnsecureSettings*(self: ptr IInternetZoneManagerEx2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FixUnsecureSettings(self) -proc ProcessSoftDist*(self: ptr ISoftDistExt, szCDFURL: LPCWSTR, pSoftDistElement: ptr IXMLElement, lpsdi: LPSOFTDISTINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessSoftDist(self, szCDFURL, pSoftDistElement, lpsdi) -proc GetFirstCodeBase*(self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFirstCodeBase(self, szCodeBase, dwMaxSize) -proc GetNextCodeBase*(self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextCodeBase(self, szCodeBase, dwMaxSize) -proc AsyncInstallDistributionUnit*(self: ptr ISoftDistExt, pbc: ptr IBindCtx, pvReserved: LPVOID, flags: DWORD, lpcbh: LPCODEBASEHOLD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AsyncInstallDistributionUnit(self, pbc, pvReserved, flags, lpcbh) -proc GetCatalogFile*(self: ptr ICatalogFileInfo, ppszCatalogFile: ptr LPSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCatalogFile(self, ppszCatalogFile) -proc GetJavaTrust*(self: ptr ICatalogFileInfo, ppJavaTrust: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetJavaTrust(self, ppJavaTrust) -proc DoEncode*(self: ptr IDataFilter, dwFlags: DWORD, lInBufferSize: LONG, pbInBuffer: ptr BYTE, lOutBufferSize: LONG, pbOutBuffer: ptr BYTE, lInBytesAvailable: LONG, plInBytesRead: ptr LONG, plOutBytesWritten: ptr LONG, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoEncode(self, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved) -proc DoDecode*(self: ptr IDataFilter, dwFlags: DWORD, lInBufferSize: LONG, pbInBuffer: ptr BYTE, lOutBufferSize: LONG, pbOutBuffer: ptr BYTE, lInBytesAvailable: LONG, plInBytesRead: ptr LONG, plOutBytesWritten: ptr LONG, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoDecode(self, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved) -proc SetEncodingLevel*(self: ptr IDataFilter, dwEncLevel: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEncodingLevel(self, dwEncLevel) -proc FindBestFilter*(self: ptr IEncodingFilterFactory, pwzCodeIn: LPCWSTR, pwzCodeOut: LPCWSTR, info: DATAINFO, ppDF: ptr ptr IDataFilter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindBestFilter(self, pwzCodeIn, pwzCodeOut, info, ppDF) -proc GetDefaultFilter*(self: ptr IEncodingFilterFactory, pwzCodeIn: LPCWSTR, pwzCodeOut: LPCWSTR, ppDF: ptr ptr IDataFilter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultFilter(self, pwzCodeIn, pwzCodeOut, ppDF) -proc GetWrapperCode*(self: ptr IWrappedProtocol, pnCode: ptr LONG, dwReserved: DWORD_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWrapperCode(self, pnCode, dwReserved) -proc GetBindHandle*(self: ptr IGetBindHandle, enumRequestedHandle: BINDHANDLETYPES, pRetHandle: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBindHandle(self, enumRequestedHandle, pRetHandle) -proc Redirect*(self: ptr IBindCallbackRedirect, lpcUrl: LPCWSTR, vbCancel: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Redirect(self, lpcUrl, vbCancel) -proc ReadMultiple*(self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC, rgpropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadMultiple(self, cpspec, rgpspec, rgpropvar) -proc WriteMultiple*(self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC, rgpropvar: ptr PROPVARIANT, propidNameFirst: PROPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteMultiple(self, cpspec, rgpspec, rgpropvar, propidNameFirst) -proc DeleteMultiple*(self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteMultiple(self, cpspec, rgpspec) -proc ReadPropertyNames*(self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID, rglpwstrName: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadPropertyNames(self, cpropid, rgpropid, rglpwstrName) -proc WritePropertyNames*(self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID, rglpwstrName: ptr LPOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WritePropertyNames(self, cpropid, rgpropid, rglpwstrName) -proc DeletePropertyNames*(self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeletePropertyNames(self, cpropid, rgpropid) -proc Commit*(self: ptr IPropertyStorage, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self, grfCommitFlags) -proc Revert*(self: ptr IPropertyStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revert(self) -proc Enum*(self: ptr IPropertyStorage, ppenum: ptr ptr IEnumSTATPROPSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enum(self, ppenum) -proc SetTimes*(self: ptr IPropertyStorage, pctime: ptr FILETIME, patime: ptr FILETIME, pmtime: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTimes(self, pctime, patime, pmtime) -proc SetClass*(self: ptr IPropertyStorage, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClass(self, clsid) -proc Stat*(self: ptr IPropertyStorage, pstatpsstg: ptr STATPROPSETSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stat(self, pstatpsstg) -proc Create*(self: ptr IPropertySetStorage, rfmtid: REFFMTID, pclsid: ptr CLSID, grfFlags: DWORD, grfMode: DWORD, ppprstg: ptr ptr IPropertyStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Create(self, rfmtid, pclsid, grfFlags, grfMode, ppprstg) -proc Open*(self: ptr IPropertySetStorage, rfmtid: REFFMTID, grfMode: DWORD, ppprstg: ptr ptr IPropertyStorage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self, rfmtid, grfMode, ppprstg) -proc mDelete*(self: ptr IPropertySetStorage, rfmtid: REFFMTID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Delete(self, rfmtid) -proc Enum*(self: ptr IPropertySetStorage, ppenum: ptr ptr IEnumSTATPROPSETSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enum(self, ppenum) -proc Next*(self: ptr IEnumSTATPROPSTG, celt: ULONG, rgelt: ptr STATPROPSTG, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumSTATPROPSTG, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumSTATPROPSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumSTATPROPSTG, ppenum: ptr ptr IEnumSTATPROPSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Next*(self: ptr IEnumSTATPROPSETSTG, celt: ULONG, rgelt: ptr STATPROPSETSTG, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumSTATPROPSETSTG, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumSTATPROPSETSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumSTATPROPSETSTG, ppenum: ptr ptr IEnumSTATPROPSETSTG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Next*(self: ptr IEnumConnections, cConnections: ULONG, rgcd: LPCONNECTDATA, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, cConnections, rgcd, pcFetched) -proc Skip*(self: ptr IEnumConnections, cConnections: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, cConnections) -proc Reset*(self: ptr IEnumConnections): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumConnections, ppEnum: ptr ptr IEnumConnections): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc GetConnectionInterface*(self: ptr IConnectionPoint, pIID: ptr IID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConnectionInterface(self, pIID) -proc GetConnectionPointContainer*(self: ptr IConnectionPoint, ppCPC: ptr ptr IConnectionPointContainer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConnectionPointContainer(self, ppCPC) -proc Advise*(self: ptr IConnectionPoint, pUnkSink: ptr IUnknown, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pUnkSink, pdwCookie) -proc Unadvise*(self: ptr IConnectionPoint, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc EnumConnections*(self: ptr IConnectionPoint, ppEnum: ptr ptr IEnumConnections): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumConnections(self, ppEnum) -proc Next*(self: ptr IEnumConnectionPoints, cConnections: ULONG, ppCP: ptr LPCONNECTIONPOINT, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, cConnections, ppCP, pcFetched) -proc Skip*(self: ptr IEnumConnectionPoints, cConnections: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, cConnections) -proc Reset*(self: ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumConnectionPoints, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc EnumConnectionPoints*(self: ptr IConnectionPointContainer, ppEnum: ptr ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumConnectionPoints(self, ppEnum) -proc FindConnectionPoint*(self: ptr IConnectionPointContainer, riid: REFIID, ppCP: ptr ptr IConnectionPoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindConnectionPoint(self, riid, ppCP) -proc GetLicInfo*(self: ptr IClassFactory2, pLicInfo: ptr LICINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLicInfo(self, pLicInfo) -proc RequestLicKey*(self: ptr IClassFactory2, dwReserved: DWORD, pBstrKey: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestLicKey(self, dwReserved, pBstrKey) -proc CreateInstanceLic*(self: ptr IClassFactory2, pUnkOuter: ptr IUnknown, pUnkReserved: ptr IUnknown, riid: REFIID, bstrKey: BSTR, ppvObj: ptr PVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstanceLic(self, pUnkOuter, pUnkReserved, riid, bstrKey, ppvObj) -proc GetClassInfo*(self: ptr IProvideClassInfo, ppTI: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClassInfo(self, ppTI) -proc GetGUID*(self: ptr IProvideClassInfo2, dwGuidKind: DWORD, pGUID: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGUID(self, dwGuidKind, pGUID) -proc GetMultiTypeInfoCount*(self: ptr IProvideMultipleClassInfo, pcti: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMultiTypeInfoCount(self, pcti) -proc GetInfoOfIndex*(self: ptr IProvideMultipleClassInfo, iti: ULONG, dwFlags: DWORD, pptiCoClass: ptr ptr ITypeInfo, pdwTIFlags: ptr DWORD, pcdispidReserved: ptr ULONG, piidPrimary: ptr IID, piidSource: ptr IID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInfoOfIndex(self, iti, dwFlags, pptiCoClass, pdwTIFlags, pcdispidReserved, piidPrimary, piidSource) -proc GetControlInfo*(self: ptr IOleControl, pCI: ptr CONTROLINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetControlInfo(self, pCI) -proc OnMnemonic*(self: ptr IOleControl, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnMnemonic(self, pMsg) -proc OnAmbientPropertyChange*(self: ptr IOleControl, dispID: DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnAmbientPropertyChange(self, dispID) -proc FreezeEvents*(self: ptr IOleControl, bFreeze: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FreezeEvents(self, bFreeze) -proc OnControlInfoChanged*(self: ptr IOleControlSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnControlInfoChanged(self) -proc LockInPlaceActive*(self: ptr IOleControlSite, fLock: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LockInPlaceActive(self, fLock) -proc GetExtendedControl*(self: ptr IOleControlSite, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtendedControl(self, ppDisp) -proc TransformCoords*(self: ptr IOleControlSite, pPtlHimetric: ptr POINTL, pPtfContainer: ptr POINTF, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TransformCoords(self, pPtlHimetric, pPtfContainer, dwFlags) -proc TranslateAccelerator*(self: ptr IOleControlSite, pMsg: ptr MSG, grfModifiers: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, pMsg, grfModifiers) -proc OnFocus*(self: ptr IOleControlSite, fGotFocus: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFocus(self, fGotFocus) -proc ShowPropertyFrame*(self: ptr IOleControlSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowPropertyFrame(self) -proc SetPageSite*(self: ptr IPropertyPage, pPageSite: ptr IPropertyPageSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPageSite(self, pPageSite) -proc Activate*(self: ptr IPropertyPage, hWndParent: HWND, pRect: LPCRECT, bModal: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Activate(self, hWndParent, pRect, bModal) -proc Deactivate*(self: ptr IPropertyPage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Deactivate(self) -proc GetPageInfo*(self: ptr IPropertyPage, pPageInfo: ptr PROPPAGEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPageInfo(self, pPageInfo) -proc SetObjects*(self: ptr IPropertyPage, cObjects: ULONG, ppUnk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetObjects(self, cObjects, ppUnk) -proc Show*(self: ptr IPropertyPage, nCmdShow: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, nCmdShow) -proc Move*(self: ptr IPropertyPage, pRect: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Move(self, pRect) -proc IsPageDirty*(self: ptr IPropertyPage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsPageDirty(self) -proc Apply*(self: ptr IPropertyPage): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Apply(self) -proc Help*(self: ptr IPropertyPage, pszHelpDir: LPCOLESTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Help(self, pszHelpDir) -proc TranslateAccelerator*(self: ptr IPropertyPage, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, pMsg) -proc EditProperty*(self: ptr IPropertyPage2, dispID: DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EditProperty(self, dispID) -proc OnStatusChange*(self: ptr IPropertyPageSite, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStatusChange(self, dwFlags) -proc GetLocaleID*(self: ptr IPropertyPageSite, pLocaleID: ptr LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLocaleID(self, pLocaleID) -proc GetPageContainer*(self: ptr IPropertyPageSite, ppUnk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPageContainer(self, ppUnk) -proc TranslateAccelerator*(self: ptr IPropertyPageSite, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, pMsg) -proc OnChanged*(self: ptr IPropertyNotifySink, dispID: DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnChanged(self, dispID) -proc OnRequestEdit*(self: ptr IPropertyNotifySink, dispID: DISPID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnRequestEdit(self, dispID) -proc GetPages*(self: ptr ISpecifyPropertyPages, pPages: ptr CAUUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPages(self, pPages) -proc IsDirty*(self: ptr IPersistMemory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc Load*(self: ptr IPersistMemory, pMem: LPVOID, cbSize: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pMem, cbSize) -proc Save*(self: ptr IPersistMemory, pMem: LPVOID, fClearDirty: WINBOOL, cbSize: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pMem, fClearDirty, cbSize) -proc GetSizeMax*(self: ptr IPersistMemory, pCbSize: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSizeMax(self, pCbSize) -proc InitNew*(self: ptr IPersistMemory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self) -proc IsDirty*(self: ptr IPersistStreamInit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc Load*(self: ptr IPersistStreamInit, pStm: LPSTREAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pStm) -proc Save*(self: ptr IPersistStreamInit, pStm: LPSTREAM, fClearDirty: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pStm, fClearDirty) -proc GetSizeMax*(self: ptr IPersistStreamInit, pCbSize: ptr ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSizeMax(self, pCbSize) -proc InitNew*(self: ptr IPersistStreamInit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self) -proc InitNew*(self: ptr IPersistPropertyBag): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self) -proc Load*(self: ptr IPersistPropertyBag, pPropBag: ptr IPropertyBag, pErrorLog: ptr IErrorLog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pPropBag, pErrorLog) -proc Save*(self: ptr IPersistPropertyBag, pPropBag: ptr IPropertyBag, fClearDirty: WINBOOL, fSaveAllProperties: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pPropBag, fClearDirty, fSaveAllProperties) -proc PreMessageFilter*(self: ptr ISimpleFrameSite, hWnd: HWND, msg: UINT, wp: WPARAM, lp: LPARAM, plResult: ptr LRESULT, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreMessageFilter(self, hWnd, msg, wp, lp, plResult, pdwCookie) -proc PostMessageFilter*(self: ptr ISimpleFrameSite, hWnd: HWND, msg: UINT, wp: WPARAM, lp: LPARAM, plResult: ptr LRESULT, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostMessageFilter(self, hWnd, msg, wp, lp, plResult, dwCookie) -proc get_Name*(self: ptr IFont, pName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, pName) -proc put_Name*(self: ptr IFont, name: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Name(self, name) -proc get_Size*(self: ptr IFont, pSize: ptr CY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Size(self, pSize) -proc put_Size*(self: ptr IFont, size: CY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Size(self, size) -proc get_Bold*(self: ptr IFont, pBold: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Bold(self, pBold) -proc put_Bold*(self: ptr IFont, bold: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Bold(self, bold) -proc get_Italic*(self: ptr IFont, pItalic: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Italic(self, pItalic) -proc put_Italic*(self: ptr IFont, italic: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Italic(self, italic) -proc get_Underline*(self: ptr IFont, pUnderline: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Underline(self, pUnderline) -proc put_Underline*(self: ptr IFont, underline: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Underline(self, underline) -proc get_Strikethrough*(self: ptr IFont, pStrikethrough: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Strikethrough(self, pStrikethrough) -proc put_Strikethrough*(self: ptr IFont, strikethrough: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Strikethrough(self, strikethrough) -proc get_Weight*(self: ptr IFont, pWeight: ptr SHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Weight(self, pWeight) -proc put_Weight*(self: ptr IFont, weight: SHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Weight(self, weight) -proc get_Charset*(self: ptr IFont, pCharset: ptr SHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Charset(self, pCharset) -proc put_Charset*(self: ptr IFont, charset: SHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Charset(self, charset) -proc get_hFont*(self: ptr IFont, phFont: ptr HFONT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hFont(self, phFont) -proc Clone*(self: ptr IFont, ppFont: ptr ptr IFont): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppFont) -proc IsEqual*(self: ptr IFont, pFontOther: ptr IFont): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEqual(self, pFontOther) -proc SetRatio*(self: ptr IFont, cyLogical: LONG, cyHimetric: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRatio(self, cyLogical, cyHimetric) -proc QueryTextMetrics*(self: ptr IFont, pTM: ptr TEXTMETRICOLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryTextMetrics(self, pTM) -proc AddRefHfont*(self: ptr IFont, hFont: HFONT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddRefHfont(self, hFont) -proc ReleaseHfont*(self: ptr IFont, hFont: HFONT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseHfont(self, hFont) -proc SetHdc*(self: ptr IFont, hDC: HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHdc(self, hDC) -proc get_Handle*(self: ptr IPicture, pHandle: ptr OLE_HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Handle(self, pHandle) -proc get_hPal*(self: ptr IPicture, phPal: ptr OLE_HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hPal(self, phPal) -proc get_Type*(self: ptr IPicture, pType: ptr SHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Type(self, pType) -proc get_Width*(self: ptr IPicture, pWidth: ptr OLE_XSIZE_HIMETRIC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Width(self, pWidth) -proc get_Height*(self: ptr IPicture, pHeight: ptr OLE_YSIZE_HIMETRIC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Height(self, pHeight) -proc Render*(self: ptr IPicture, hDC: HDC, x: LONG, y: LONG, cx: LONG, cy: LONG, xSrc: OLE_XPOS_HIMETRIC, ySrc: OLE_YPOS_HIMETRIC, cxSrc: OLE_XSIZE_HIMETRIC, cySrc: OLE_YSIZE_HIMETRIC, pRcWBounds: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Render(self, hDC, x, y, cx, cy, xSrc, ySrc, cxSrc, cySrc, pRcWBounds) -proc set_hPal*(self: ptr IPicture, hPal: OLE_HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.set_hPal(self, hPal) -proc get_CurDC*(self: ptr IPicture, phDC: ptr HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurDC(self, phDC) -proc SelectPicture*(self: ptr IPicture, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr OLE_HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectPicture(self, hDCIn, phDCOut, phBmpOut) -proc get_KeepOriginalFormat*(self: ptr IPicture, pKeep: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_KeepOriginalFormat(self, pKeep) -proc put_KeepOriginalFormat*(self: ptr IPicture, keep: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_KeepOriginalFormat(self, keep) -proc PictureChanged*(self: ptr IPicture): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PictureChanged(self) -proc SaveAsFile*(self: ptr IPicture, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveAsFile(self, pStream, fSaveMemCopy, pCbSize) -proc get_Attributes*(self: ptr IPicture, pDwAttr: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Attributes(self, pDwAttr) -proc get_Handle*(self: ptr IPicture2, pHandle: ptr HHANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Handle(self, pHandle) -proc get_hPal*(self: ptr IPicture2, phPal: ptr HHANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_hPal(self, phPal) -proc get_Type*(self: ptr IPicture2, pType: ptr SHORT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Type(self, pType) -proc get_Width*(self: ptr IPicture2, pWidth: ptr OLE_XSIZE_HIMETRIC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Width(self, pWidth) -proc get_Height*(self: ptr IPicture2, pHeight: ptr OLE_YSIZE_HIMETRIC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Height(self, pHeight) -proc Render*(self: ptr IPicture2, hDC: HDC, x: LONG, y: LONG, cx: LONG, cy: LONG, xSrc: OLE_XPOS_HIMETRIC, ySrc: OLE_YPOS_HIMETRIC, cxSrc: OLE_XSIZE_HIMETRIC, cySrc: OLE_YSIZE_HIMETRIC, pRcWBounds: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Render(self, hDC, x, y, cx, cy, xSrc, ySrc, cxSrc, cySrc, pRcWBounds) -proc set_hPal*(self: ptr IPicture2, hPal: HHANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.set_hPal(self, hPal) -proc get_CurDC*(self: ptr IPicture2, phDC: ptr HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurDC(self, phDC) -proc SelectPicture*(self: ptr IPicture2, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr HHANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectPicture(self, hDCIn, phDCOut, phBmpOut) -proc get_KeepOriginalFormat*(self: ptr IPicture2, pKeep: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_KeepOriginalFormat(self, pKeep) -proc put_KeepOriginalFormat*(self: ptr IPicture2, keep: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_KeepOriginalFormat(self, keep) -proc PictureChanged*(self: ptr IPicture2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PictureChanged(self) -proc SaveAsFile*(self: ptr IPicture2, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveAsFile(self, pStream, fSaveMemCopy, pCbSize) -proc get_Attributes*(self: ptr IPicture2, pDwAttr: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Attributes(self, pDwAttr) -proc OnWindowMessage*(self: ptr IOleInPlaceObjectWindowless, msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnWindowMessage(self, msg, wParam, lParam, plResult) -proc GetDropTarget*(self: ptr IOleInPlaceObjectWindowless, ppDropTarget: ptr ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDropTarget(self, ppDropTarget) -proc OnInPlaceActivateEx*(self: ptr IOleInPlaceSiteEx, pfNoRedraw: ptr WINBOOL, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceActivateEx(self, pfNoRedraw, dwFlags) -proc OnInPlaceDeactivateEx*(self: ptr IOleInPlaceSiteEx, fNoRedraw: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInPlaceDeactivateEx(self, fNoRedraw) -proc RequestUIActivate*(self: ptr IOleInPlaceSiteEx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestUIActivate(self) -proc CanWindowlessActivate*(self: ptr IOleInPlaceSiteWindowless): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanWindowlessActivate(self) -proc GetCapture*(self: ptr IOleInPlaceSiteWindowless): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCapture(self) -proc SetCapture*(self: ptr IOleInPlaceSiteWindowless, fCapture: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCapture(self, fCapture) -proc GetFocus*(self: ptr IOleInPlaceSiteWindowless): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFocus(self) -proc SetFocus*(self: ptr IOleInPlaceSiteWindowless, fFocus: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFocus(self, fFocus) -proc GetDC*(self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, grfFlags: DWORD, phDC: ptr HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDC(self, pRect, grfFlags, phDC) -proc ReleaseDC*(self: ptr IOleInPlaceSiteWindowless, hDC: HDC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseDC(self, hDC) -proc InvalidateRect*(self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, fErase: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateRect(self, pRect, fErase) -proc InvalidateRgn*(self: ptr IOleInPlaceSiteWindowless, hRGN: HRGN, fErase: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateRgn(self, hRGN, fErase) -proc ScrollRect*(self: ptr IOleInPlaceSiteWindowless, dx: INT, dy: INT, pRectScroll: LPCRECT, pRectClip: LPCRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollRect(self, dx, dy, pRectScroll, pRectClip) -proc AdjustRect*(self: ptr IOleInPlaceSiteWindowless, prc: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AdjustRect(self, prc) -proc OnDefWindowMessage*(self: ptr IOleInPlaceSiteWindowless, msg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDefWindowMessage(self, msg, wParam, lParam, plResult) -proc GetRect*(self: ptr IViewObjectEx, dwAspect: DWORD, pRect: LPRECTL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRect(self, dwAspect, pRect) -proc GetViewStatus*(self: ptr IViewObjectEx, pdwStatus: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewStatus(self, pdwStatus) -proc QueryHitPoint*(self: ptr IViewObjectEx, dwAspect: DWORD, pRectBounds: LPCRECT, ptlLoc: POINT, lCloseHint: LONG, pHitResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryHitPoint(self, dwAspect, pRectBounds, ptlLoc, lCloseHint, pHitResult) -proc QueryHitRect*(self: ptr IViewObjectEx, dwAspect: DWORD, pRectBounds: LPCRECT, pRectLoc: LPCRECT, lCloseHint: LONG, pHitResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryHitRect(self, dwAspect, pRectBounds, pRectLoc, lCloseHint, pHitResult) -proc GetNaturalExtent*(self: ptr IViewObjectEx, dwAspect: DWORD, lindex: LONG, ptd: ptr DVTARGETDEVICE, hicTargetDev: HDC, pExtentInfo: ptr DVEXTENTINFO, pSizel: LPSIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNaturalExtent(self, dwAspect, lindex, ptd, hicTargetDev, pExtentInfo, pSizel) -proc Do*(self: ptr IOleUndoUnit, pUndoManager: ptr IOleUndoManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Do(self, pUndoManager) -proc GetDescription*(self: ptr IOleUndoUnit, pBstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescription(self, pBstr) -proc GetUnitType*(self: ptr IOleUndoUnit, pClsid: ptr CLSID, plID: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUnitType(self, pClsid, plID) -proc OnNextAdd*(self: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnNextAdd(self) -proc Open*(self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self, pPUU) -proc Close*(self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, pPUU, fCommit) -proc Add*(self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Add(self, pUU) -proc FindUnit*(self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindUnit(self, pUU) -proc GetParentState*(self: ptr IOleParentUndoUnit, pdwState: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParentState(self, pdwState) -proc Next*(self: ptr IEnumOleUndoUnits, cElt: ULONG, rgElt: ptr ptr IOleUndoUnit, pcEltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, cElt, rgElt, pcEltFetched) -proc Skip*(self: ptr IEnumOleUndoUnits, cElt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, cElt) -proc Reset*(self: ptr IEnumOleUndoUnits): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumOleUndoUnits, ppEnum: ptr ptr IEnumOleUndoUnits): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc Open*(self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self, pPUU) -proc Close*(self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, pPUU, fCommit) -proc Add*(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Add(self, pUU) -proc GetOpenParentState*(self: ptr IOleUndoManager, pdwState: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOpenParentState(self, pdwState) -proc DiscardFrom*(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DiscardFrom(self, pUU) -proc UndoTo*(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UndoTo(self, pUU) -proc RedoTo*(self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RedoTo(self, pUU) -proc EnumUndoable*(self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumUndoable(self, ppEnum) -proc EnumRedoable*(self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumRedoable(self, ppEnum) -proc GetLastUndoDescription*(self: ptr IOleUndoManager, pBstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastUndoDescription(self, pBstr) -proc GetLastRedoDescription*(self: ptr IOleUndoManager, pBstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastRedoDescription(self, pBstr) -proc Enable*(self: ptr IOleUndoManager, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enable(self, fEnable) -proc GetActivationPolicy*(self: ptr IPointerInactive, pdwPolicy: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetActivationPolicy(self, pdwPolicy) -proc OnInactiveMouseMove*(self: ptr IPointerInactive, pRectBounds: LPCRECT, x: LONG, y: LONG, grfKeyState: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInactiveMouseMove(self, pRectBounds, x, y, grfKeyState) -proc OnInactiveSetCursor*(self: ptr IPointerInactive, pRectBounds: LPCRECT, x: LONG, y: LONG, dwMouseMsg: DWORD, fSetAlways: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnInactiveSetCursor(self, pRectBounds, x, y, dwMouseMsg, fSetAlways) -proc SetSite*(self: ptr IObjectWithSite, pUnkSite: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSite(self, pUnkSite) -proc GetSite*(self: ptr IObjectWithSite, riid: REFIID, ppvSite: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSite(self, riid, ppvSite) -proc GetDisplayString*(self: ptr IPerPropertyBrowsing, dispID: DISPID, pBstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayString(self, dispID, pBstr) -proc MapPropertyToPage*(self: ptr IPerPropertyBrowsing, dispID: DISPID, pClsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapPropertyToPage(self, dispID, pClsid) -proc GetPredefinedStrings*(self: ptr IPerPropertyBrowsing, dispID: DISPID, pCaStringsOut: ptr CALPOLESTR, pCaCookiesOut: ptr CADWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPredefinedStrings(self, dispID, pCaStringsOut, pCaCookiesOut) -proc GetPredefinedValue*(self: ptr IPerPropertyBrowsing, dispID: DISPID, dwCookie: DWORD, pVarOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPredefinedValue(self, dispID, dwCookie, pVarOut) -proc Read*(self: ptr IPropertyBag2, cProperties: ULONG, pPropBag: ptr PROPBAG2, pErrLog: ptr IErrorLog, pvarValue: ptr VARIANT, phrError: ptr HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Read(self, cProperties, pPropBag, pErrLog, pvarValue, phrError) -proc Write*(self: ptr IPropertyBag2, cProperties: ULONG, pPropBag: ptr PROPBAG2, pvarValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Write(self, cProperties, pPropBag, pvarValue) -proc CountProperties*(self: ptr IPropertyBag2, pcProperties: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CountProperties(self, pcProperties) -proc GetPropertyInfo*(self: ptr IPropertyBag2, iProperty: ULONG, cProperties: ULONG, pPropBag: ptr PROPBAG2, pcProperties: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyInfo(self, iProperty, cProperties, pPropBag, pcProperties) -proc LoadObject*(self: ptr IPropertyBag2, pstrName: LPCOLESTR, dwHint: DWORD, pUnkObject: ptr IUnknown, pErrLog: ptr IErrorLog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadObject(self, pstrName, dwHint, pUnkObject, pErrLog) -proc InitNew*(self: ptr IPersistPropertyBag2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self) -proc Load*(self: ptr IPersistPropertyBag2, pPropBag: ptr IPropertyBag2, pErrLog: ptr IErrorLog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Load(self, pPropBag, pErrLog) -proc Save*(self: ptr IPersistPropertyBag2, pPropBag: ptr IPropertyBag2, fClearDirty: WINBOOL, fSaveAllProperties: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, pPropBag, fClearDirty, fSaveAllProperties) -proc IsDirty*(self: ptr IPersistPropertyBag2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDirty(self) -proc OnViewStatusChange*(self: ptr IAdviseSinkEx, dwViewStatus: DWORD): void {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnViewStatusChange(self, dwViewStatus) -proc QuickActivate*(self: ptr IQuickActivate, pQaContainer: ptr QACONTAINER, pQaControl: ptr QACONTROL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QuickActivate(self, pQaContainer, pQaControl) -proc SetContentExtent*(self: ptr IQuickActivate, pSizel: LPSIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetContentExtent(self, pSizel) -proc GetContentExtent*(self: ptr IQuickActivate, pSizel: LPSIZEL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContentExtent(self, pSizel) -proc Next*(self: ptr IEnumGUID, celt: ULONG, rgelt: ptr GUID, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumGUID, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumGUID, ppenum: ptr ptr IEnumGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Next*(self: ptr IEnumCATEGORYINFO, celt: ULONG, rgelt: ptr CATEGORYINFO, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumCATEGORYINFO, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumCATEGORYINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumCATEGORYINFO, ppenum: ptr ptr IEnumCATEGORYINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc RegisterCategories*(self: ptr ICatRegister, cCategories: ULONG, rgCategoryInfo: ptr CATEGORYINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterCategories(self, cCategories, rgCategoryInfo) -proc UnRegisterCategories*(self: ptr ICatRegister, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnRegisterCategories(self, cCategories, rgcatid) -proc RegisterClassImplCategories*(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterClassImplCategories(self, rclsid, cCategories, rgcatid) -proc UnRegisterClassImplCategories*(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnRegisterClassImplCategories(self, rclsid, cCategories, rgcatid) -proc RegisterClassReqCategories*(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterClassReqCategories(self, rclsid, cCategories, rgcatid) -proc UnRegisterClassReqCategories*(self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnRegisterClassReqCategories(self, rclsid, cCategories, rgcatid) -proc EnumCategories*(self: ptr ICatInformation, lcid: LCID, ppenumCategoryInfo: ptr ptr IEnumCATEGORYINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumCategories(self, lcid, ppenumCategoryInfo) -proc GetCategoryDesc*(self: ptr ICatInformation, rcatid: REFCATID, lcid: LCID, pszDesc: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategoryDesc(self, rcatid, lcid, pszDesc) -proc EnumClassesOfCategories*(self: ptr ICatInformation, cImplemented: ULONG, rgcatidImpl: ptr CATID, cRequired: ULONG, rgcatidReq: ptr CATID, ppenumClsid: ptr ptr IEnumGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumClassesOfCategories(self, cImplemented, rgcatidImpl, cRequired, rgcatidReq, ppenumClsid) -proc IsClassOfCategories*(self: ptr ICatInformation, rclsid: REFCLSID, cImplemented: ULONG, rgcatidImpl: ptr CATID, cRequired: ULONG, rgcatidReq: ptr CATID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsClassOfCategories(self, rclsid, cImplemented, rgcatidImpl, cRequired, rgcatidReq) -proc EnumImplCategoriesOfClass*(self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumImplCategoriesOfClass(self, rclsid, ppenumCatid) -proc EnumReqCategoriesOfClass*(self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumReqCategoriesOfClass(self, rclsid, ppenumCatid) -proc CreateView*(self: ptr IOleDocument, pIPSite: ptr IOleInPlaceSite, pstm: ptr IStream, dwReserved: DWORD, ppView: ptr ptr IOleDocumentView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateView(self, pIPSite, pstm, dwReserved, ppView) -proc GetDocMiscStatus*(self: ptr IOleDocument, pdwStatus: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocMiscStatus(self, pdwStatus) -proc EnumViews*(self: ptr IOleDocument, ppEnum: ptr ptr IEnumOleDocumentViews, ppView: ptr ptr IOleDocumentView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumViews(self, ppEnum, ppView) -proc ActivateMe*(self: ptr IOleDocumentSite, pViewToActivate: ptr IOleDocumentView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateMe(self, pViewToActivate) -proc SetInPlaceSite*(self: ptr IOleDocumentView, pIPSite: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetInPlaceSite(self, pIPSite) -proc GetInPlaceSite*(self: ptr IOleDocumentView, ppIPSite: ptr ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInPlaceSite(self, ppIPSite) -proc GetDocument*(self: ptr IOleDocumentView, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocument(self, ppunk) -proc SetRect*(self: ptr IOleDocumentView, prcView: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRect(self, prcView) -proc GetRect*(self: ptr IOleDocumentView, prcView: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRect(self, prcView) -proc SetRectComplex*(self: ptr IOleDocumentView, prcView: LPRECT, prcHScroll: LPRECT, prcVScroll: LPRECT, prcSizeBox: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRectComplex(self, prcView, prcHScroll, prcVScroll, prcSizeBox) -proc Show*(self: ptr IOleDocumentView, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, fShow) -proc UIActivate*(self: ptr IOleDocumentView, fUIActivate: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UIActivate(self, fUIActivate) -proc Open*(self: ptr IOleDocumentView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self) -proc CloseView*(self: ptr IOleDocumentView, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseView(self, dwReserved) -proc SaveViewState*(self: ptr IOleDocumentView, pstm: LPSTREAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveViewState(self, pstm) -proc ApplyViewState*(self: ptr IOleDocumentView, pstm: LPSTREAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyViewState(self, pstm) -proc Clone*(self: ptr IOleDocumentView, pIPSiteNew: ptr IOleInPlaceSite, ppViewNew: ptr ptr IOleDocumentView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, pIPSiteNew, ppViewNew) -proc Next*(self: ptr IEnumOleDocumentViews, cViews: ULONG, rgpView: ptr ptr IOleDocumentView, pcFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, cViews, rgpView, pcFetched) -proc Skip*(self: ptr IEnumOleDocumentViews, cViews: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, cViews) -proc Reset*(self: ptr IEnumOleDocumentViews): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumOleDocumentViews, ppEnum: ptr ptr IEnumOleDocumentViews): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc FContinue*(self: ptr IContinueCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FContinue(self) -proc FContinuePrinting*(self: ptr IContinueCallback, nCntPrinted: LONG, nCurPage: LONG, pwszPrintStatus: ptr uint16): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FContinuePrinting(self, nCntPrinted, nCurPage, pwszPrintStatus) -proc SetInitialPageNum*(self: ptr IPrint, nFirstPage: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetInitialPageNum(self, nFirstPage) -proc GetPageInfo*(self: ptr IPrint, pnFirstPage: ptr LONG, pcPages: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPageInfo(self, pnFirstPage, pcPages) -proc Print*(self: ptr IPrint, grfFlags: DWORD, pptd: ptr ptr DVTARGETDEVICE, ppPageSet: ptr ptr PAGESET, pstgmOptions: ptr STGMEDIUM, pcallback: ptr IContinueCallback, nFirstPage: LONG, pcPagesPrinted: ptr LONG, pnLastPage: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Print(self, grfFlags, pptd, ppPageSet, pstgmOptions, pcallback, nFirstPage, pcPagesPrinted, pnLastPage) -proc QueryStatus*(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, cCmds: ULONG, prgCmds: ptr OLECMD, pCmdText: ptr OLECMDTEXT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryStatus(self, pguidCmdGroup, cCmds, prgCmds, pCmdText) -proc Exec*(self: ptr IOleCommandTarget, pguidCmdGroup: ptr GUID, nCmdID: DWORD, nCmdexecopt: DWORD, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Exec(self, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut) -proc OnZoomPercentChanged*(self: ptr IZoomEvents, ulZoomPercent: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnZoomPercentChanged(self, ulZoomPercent) -proc AllowFocusChange*(self: ptr IProtectFocus, pfAllow: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AllowFocusChange(self, pfAllow) -proc CreateMenu*(self: ptr IProtectedModeMenuServices, phMenu: ptr HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateMenu(self, phMenu) -proc LoadMenu*(self: ptr IProtectedModeMenuServices, pszModuleName: LPCWSTR, pszMenuName: LPCWSTR, phMenu: ptr HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadMenu(self, pszModuleName, pszMenuName, phMenu) -proc LoadMenuID*(self: ptr IProtectedModeMenuServices, pszModuleName: LPCWSTR, wResourceID: WORD, phMenu: ptr HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadMenuID(self, pszModuleName, wResourceID, phMenu) -proc GoBack*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoBack(self) -proc GoForward*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoForward(self) -proc GoHome*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoHome(self) -proc GoSearch*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GoSearch(self) -proc Navigate*(self: ptr IWebBrowser, URL: BSTR, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate(self, URL, Flags, TargetFrameName, PostData, Headers) -proc Refresh*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Refresh(self) -proc Refresh2*(self: ptr IWebBrowser, Level: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Refresh2(self, Level) -proc Stop*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stop(self) -proc get_Application*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppDisp) -proc get_Parent*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppDisp) -proc get_Container*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Container(self, ppDisp) -proc get_Document*(self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Document(self, ppDisp) -proc get_TopLevelContainer*(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TopLevelContainer(self, pBool) -proc get_Type*(self: ptr IWebBrowser, Type: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Type(self, Type) -proc get_Left*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Left(self, pl) -proc put_Left*(self: ptr IWebBrowser, Left: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Left(self, Left) -proc get_Top*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Top(self, pl) -proc put_Top*(self: ptr IWebBrowser, Top: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Top(self, Top) -proc get_Width*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Width(self, pl) -proc put_Width*(self: ptr IWebBrowser, Width: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Width(self, Width) -proc get_Height*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Height(self, pl) -proc put_Height*(self: ptr IWebBrowser, Height: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Height(self, Height) -proc get_LocationName*(self: ptr IWebBrowser, LocationName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LocationName(self, LocationName) -proc get_LocationURL*(self: ptr IWebBrowser, LocationURL: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LocationURL(self, LocationURL) -proc get_Busy*(self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Busy(self, pBool) -proc Quit*(self: ptr IWebBrowserApp): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Quit(self) -proc ClientToWindow*(self: ptr IWebBrowserApp, pcx: ptr int32, pcy: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClientToWindow(self, pcx, pcy) -proc PutProperty*(self: ptr IWebBrowserApp, Property: BSTR, vtValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutProperty(self, Property, vtValue) -proc GetProperty*(self: ptr IWebBrowserApp, Property: BSTR, pvtValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, Property, pvtValue) -proc get_Name*(self: ptr IWebBrowserApp, Name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, Name) -proc get_HWND*(self: ptr IWebBrowserApp, pHWND: ptr SHANDLE_PTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HWND(self, pHWND) -proc get_FullName*(self: ptr IWebBrowserApp, FullName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FullName(self, FullName) -proc get_Path*(self: ptr IWebBrowserApp, Path: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Path(self, Path) -proc get_Visible*(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Visible(self, pBool) -proc put_Visible*(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Visible(self, Value) -proc get_StatusBar*(self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StatusBar(self, pBool) -proc put_StatusBar*(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_StatusBar(self, Value) -proc get_StatusText*(self: ptr IWebBrowserApp, StatusText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StatusText(self, StatusText) -proc put_StatusText*(self: ptr IWebBrowserApp, StatusText: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_StatusText(self, StatusText) -proc get_ToolBar*(self: ptr IWebBrowserApp, Value: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToolBar(self, Value) -proc put_ToolBar*(self: ptr IWebBrowserApp, Value: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ToolBar(self, Value) -proc get_MenuBar*(self: ptr IWebBrowserApp, Value: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_MenuBar(self, Value) -proc put_MenuBar*(self: ptr IWebBrowserApp, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_MenuBar(self, Value) -proc get_FullScreen*(self: ptr IWebBrowserApp, pbFullScreen: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FullScreen(self, pbFullScreen) -proc put_FullScreen*(self: ptr IWebBrowserApp, bFullScreen: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_FullScreen(self, bFullScreen) -proc Navigate2*(self: ptr IWebBrowser2, URL: ptr VARIANT, Flags: ptr VARIANT, TargetFrameName: ptr VARIANT, PostData: ptr VARIANT, Headers: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate2(self, URL, Flags, TargetFrameName, PostData, Headers) -proc QueryStatusWB*(self: ptr IWebBrowser2, cmdID: OLECMDID, pcmdf: ptr OLECMDF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryStatusWB(self, cmdID, pcmdf) -proc ExecWB*(self: ptr IWebBrowser2, cmdID: OLECMDID, cmdexecopt: OLECMDEXECOPT, pvaIn: ptr VARIANT, pvaOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExecWB(self, cmdID, cmdexecopt, pvaIn, pvaOut) -proc ShowBrowserBar*(self: ptr IWebBrowser2, pvaClsid: ptr VARIANT, pvarShow: ptr VARIANT, pvarSize: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowBrowserBar(self, pvaClsid, pvarShow, pvarSize) -proc get_ReadyState*(self: ptr IWebBrowser2, plReadyState: ptr READYSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReadyState(self, plReadyState) -proc get_Offline*(self: ptr IWebBrowser2, pbOffline: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Offline(self, pbOffline) -proc put_Offline*(self: ptr IWebBrowser2, bOffline: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Offline(self, bOffline) -proc get_Silent*(self: ptr IWebBrowser2, pbSilent: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Silent(self, pbSilent) -proc put_Silent*(self: ptr IWebBrowser2, bSilent: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Silent(self, bSilent) -proc get_RegisterAsBrowser*(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RegisterAsBrowser(self, pbRegister) -proc put_RegisterAsBrowser*(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_RegisterAsBrowser(self, bRegister) -proc get_RegisterAsDropTarget*(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RegisterAsDropTarget(self, pbRegister) -proc put_RegisterAsDropTarget*(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_RegisterAsDropTarget(self, bRegister) -proc get_TheaterMode*(self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TheaterMode(self, pbRegister) -proc put_TheaterMode*(self: ptr IWebBrowser2, bRegister: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_TheaterMode(self, bRegister) -proc get_AddressBar*(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AddressBar(self, Value) -proc put_AddressBar*(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_AddressBar(self, Value) -proc get_Resizable*(self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Resizable(self, Value) -proc put_Resizable*(self: ptr IWebBrowser2, Value: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Resizable(self, Value) -proc get_Count*(self: ptr IShellWindows, Count: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, Count) -proc Item*(self: ptr IShellWindows, index: VARIANT, Folder: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, index, Folder) -proc NewEnum*(self: ptr IShellWindows, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewEnum(self, ppunk) -proc Register*(self: ptr IShellWindows, pid: ptr IDispatch, hWnd: LONG, swClass: int32, plCookie: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Register(self, pid, hWnd, swClass, plCookie) -proc RegisterPending*(self: ptr IShellWindows, lThreadId: LONG, pvarloc: ptr VARIANT, pvarlocRoot: ptr VARIANT, swClass: int32, plCookie: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterPending(self, lThreadId, pvarloc, pvarlocRoot, swClass, plCookie) -proc Revoke*(self: ptr IShellWindows, lCookie: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Revoke(self, lCookie) -proc OnNavigate*(self: ptr IShellWindows, lCookie: LONG, pvarLoc: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnNavigate(self, lCookie, pvarLoc) -proc OnActivated*(self: ptr IShellWindows, lCookie: LONG, fActive: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnActivated(self, lCookie, fActive) -proc FindWindowSW*(self: ptr IShellWindows, pvarLoc: ptr VARIANT, pvarLocRoot: ptr VARIANT, swClass: int32, phwnd: ptr LONG, swfwOptions: int32, ppdispOut: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindWindowSW(self, pvarLoc, pvarLocRoot, swClass, phwnd, swfwOptions, ppdispOut) -proc OnCreated*(self: ptr IShellWindows, lCookie: LONG, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnCreated(self, lCookie, punk) -proc ProcessAttachDetach*(self: ptr IShellWindows, fAttach: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProcessAttachDetach(self, fAttach) -proc ResetFirstBootMode*(self: ptr IShellUIHelper): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetFirstBootMode(self) -proc ResetSafeMode*(self: ptr IShellUIHelper): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetSafeMode(self) -proc RefreshOfflineDesktop*(self: ptr IShellUIHelper): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RefreshOfflineDesktop(self) -proc AddFavorite*(self: ptr IShellUIHelper, URL: BSTR, Title: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddFavorite(self, URL, Title) -proc AddChannel*(self: ptr IShellUIHelper, URL: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddChannel(self, URL) -proc AddDesktopComponent*(self: ptr IShellUIHelper, URL: BSTR, Type: BSTR, Left: ptr VARIANT, Top: ptr VARIANT, Width: ptr VARIANT, Height: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddDesktopComponent(self, URL, Type, Left, Top, Width, Height) -proc IsSubscribed*(self: ptr IShellUIHelper, URL: BSTR, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSubscribed(self, URL, pBool) -proc NavigateAndFind*(self: ptr IShellUIHelper, URL: BSTR, strQuery: BSTR, varTargetFrame: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NavigateAndFind(self, URL, strQuery, varTargetFrame) -proc ImportExportFavorites*(self: ptr IShellUIHelper, fImport: VARIANT_BOOL, strImpExpPath: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ImportExportFavorites(self, fImport, strImpExpPath) -proc AutoCompleteSaveForm*(self: ptr IShellUIHelper, Form: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AutoCompleteSaveForm(self, Form) -proc AutoScan*(self: ptr IShellUIHelper, strSearch: BSTR, strFailureUrl: BSTR, pvarTargetFrame: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AutoScan(self, strSearch, strFailureUrl, pvarTargetFrame) -proc AutoCompleteAttach*(self: ptr IShellUIHelper, Reserved: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AutoCompleteAttach(self, Reserved) -proc ShowBrowserUI*(self: ptr IShellUIHelper, bstrName: BSTR, pvarIn: ptr VARIANT, pvarOut: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowBrowserUI(self, bstrName, pvarIn, pvarOut) -proc AddSearchProvider*(self: ptr IShellUIHelper2, URL: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSearchProvider(self, URL) -proc RunOnceShown*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RunOnceShown(self) -proc SkipRunOnce*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SkipRunOnce(self) -proc CustomizeSettings*(self: ptr IShellUIHelper2, fSQM: VARIANT_BOOL, fPhishing: VARIANT_BOOL, bstrLocale: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CustomizeSettings(self, fSQM, fPhishing, bstrLocale) -proc SqmEnabled*(self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SqmEnabled(self, pfEnabled) -proc PhishingEnabled*(self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PhishingEnabled(self, pfEnabled) -proc BrandImageUri*(self: ptr IShellUIHelper2, pbstrUri: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BrandImageUri(self, pbstrUri) -proc SkipTabsWelcome*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SkipTabsWelcome(self) -proc DiagnoseConnection*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DiagnoseConnection(self) -proc CustomizeClearType*(self: ptr IShellUIHelper2, fSet: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CustomizeClearType(self, fSet) -proc IsSearchProviderInstalled*(self: ptr IShellUIHelper2, URL: BSTR, pdwResult: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSearchProviderInstalled(self, URL, pdwResult) -proc IsSearchMigrated*(self: ptr IShellUIHelper2, pfMigrated: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsSearchMigrated(self, pfMigrated) -proc DefaultSearchProvider*(self: ptr IShellUIHelper2, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DefaultSearchProvider(self, pbstrName) -proc RunOnceRequiredSettingsComplete*(self: ptr IShellUIHelper2, fComplete: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RunOnceRequiredSettingsComplete(self, fComplete) -proc RunOnceHasShown*(self: ptr IShellUIHelper2, pfShown: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RunOnceHasShown(self, pfShown) -proc SearchGuideUrl*(self: ptr IShellUIHelper2, pbstrUrl: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SearchGuideUrl(self, pbstrUrl) -proc MoveSelectionUp*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveSelectionUp(self) -proc MoveSelectionDown*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveSelectionDown(self) -proc ResetSort*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetSort(self) -proc NewFolder*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewFolder(self) -proc mSynchronize*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Synchronize(self) -proc Import*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Import(self) -proc Export*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Export(self) -proc InvokeContextMenuCommand*(self: ptr IShellFavoritesNameSpace, strCommand: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeContextMenuCommand(self, strCommand) -proc MoveSelectionTo*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveSelectionTo(self) -proc get_SubscriptionsEnabled*(self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SubscriptionsEnabled(self, pBool) -proc CreateSubscriptionForSelection*(self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateSubscriptionForSelection(self, pBool) -proc DeleteSubscriptionForSelection*(self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteSubscriptionForSelection(self, pBool) -proc SetRoot*(self: ptr IShellFavoritesNameSpace, bstrFullPath: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRoot(self, bstrFullPath) -proc get_EnumOptions*(self: ptr IShellNameSpace, pgrfEnumFlags: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_EnumOptions(self, pgrfEnumFlags) -proc put_EnumOptions*(self: ptr IShellNameSpace, pgrfEnumFlags: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_EnumOptions(self, pgrfEnumFlags) -proc get_SelectedItem*(self: ptr IShellNameSpace, pItem: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SelectedItem(self, pItem) -proc put_SelectedItem*(self: ptr IShellNameSpace, pItem: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_SelectedItem(self, pItem) -proc get_Root*(self: ptr IShellNameSpace, pvar: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Root(self, pvar) -proc put_Root*(self: ptr IShellNameSpace, pvar: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Root(self, pvar) -proc get_Depth*(self: ptr IShellNameSpace, piDepth: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Depth(self, piDepth) -proc put_Depth*(self: ptr IShellNameSpace, piDepth: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Depth(self, piDepth) -proc get_Mode*(self: ptr IShellNameSpace, puMode: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Mode(self, puMode) -proc put_Mode*(self: ptr IShellNameSpace, puMode: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Mode(self, puMode) -proc get_Flags*(self: ptr IShellNameSpace, pdwFlags: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Flags(self, pdwFlags) -proc put_Flags*(self: ptr IShellNameSpace, pdwFlags: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Flags(self, pdwFlags) -proc put_TVFlags*(self: ptr IShellNameSpace, dwFlags: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_TVFlags(self, dwFlags) -proc get_TVFlags*(self: ptr IShellNameSpace, dwFlags: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TVFlags(self, dwFlags) -proc get_Columns*(self: ptr IShellNameSpace, bstrColumns: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Columns(self, bstrColumns) -proc put_Columns*(self: ptr IShellNameSpace, bstrColumns: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Columns(self, bstrColumns) -proc get_CountViewTypes*(self: ptr IShellNameSpace, piTypes: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CountViewTypes(self, piTypes) -proc SetViewType*(self: ptr IShellNameSpace, iType: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetViewType(self, iType) -proc SelectedItems*(self: ptr IShellNameSpace, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectedItems(self, ppid) -proc Expand*(self: ptr IShellNameSpace, `var`: VARIANT, iDepth: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Expand(self, `var`, iDepth) -proc UnselectAll*(self: ptr IShellNameSpace): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnselectAll(self) -proc advanceError*(self: ptr IScriptErrorList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.advanceError(self) -proc retreatError*(self: ptr IScriptErrorList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.retreatError(self) -proc canAdvanceError*(self: ptr IScriptErrorList, pfCanAdvance: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.canAdvanceError(self, pfCanAdvance) -proc canRetreatError*(self: ptr IScriptErrorList, pfCanRetreat: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.canRetreatError(self, pfCanRetreat) -proc getErrorLine*(self: ptr IScriptErrorList, plLine: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getErrorLine(self, plLine) -proc getErrorChar*(self: ptr IScriptErrorList, plChar: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getErrorChar(self, plChar) -proc getErrorCode*(self: ptr IScriptErrorList, plCode: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getErrorCode(self, plCode) -proc getErrorMsg*(self: ptr IScriptErrorList, pstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getErrorMsg(self, pstr) -proc getErrorUrl*(self: ptr IScriptErrorList, pstr: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getErrorUrl(self, pstr) -proc getAlwaysShowLockState*(self: ptr IScriptErrorList, pfAlwaysShowLocked: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getAlwaysShowLockState(self, pfAlwaysShowLocked) -proc getDetailsPaneOpen*(self: ptr IScriptErrorList, pfDetailsPaneOpen: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getDetailsPaneOpen(self, pfDetailsPaneOpen) -proc setDetailsPaneOpen*(self: ptr IScriptErrorList, fDetailsPaneOpen: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setDetailsPaneOpen(self, fDetailsPaneOpen) -proc getPerErrorDisplay*(self: ptr IScriptErrorList, pfPerErrorDisplay: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.getPerErrorDisplay(self, pfPerErrorDisplay) -proc setPerErrorDisplay*(self: ptr IScriptErrorList, fPerErrorDisplay: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.setPerErrorDisplay(self, fPerErrorDisplay) -proc get_Title*(self: ptr ISearch, pbstrTitle: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Title(self, pbstrTitle) -proc get_Id*(self: ptr ISearch, pbstrId: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Id(self, pbstrId) -proc get_URL*(self: ptr ISearch, pbstrUrl: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_URL(self, pbstrUrl) -proc get_Count*(self: ptr ISearches, plCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, plCount) -proc get_Default*(self: ptr ISearches, pbstrDefault: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Default(self, pbstrDefault) -proc Item*(self: ptr ISearches, index: VARIANT, ppid: ptr ptr ISearch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, index, ppid) -proc NewEnum*(self: ptr ISearches, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewEnum(self, ppunk) -proc AddNextMenuItem*(self: ptr ISearchAssistantOC, bstrText: BSTR, idItem: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddNextMenuItem(self, bstrText, idItem) -proc SetDefaultSearchUrl*(self: ptr ISearchAssistantOC, bstrUrl: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultSearchUrl(self, bstrUrl) -proc NavigateToDefaultSearch*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NavigateToDefaultSearch(self) -proc IsRestricted*(self: ptr ISearchAssistantOC, bstrGuid: BSTR, pVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRestricted(self, bstrGuid, pVal) -proc get_ShellFeaturesEnabled*(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShellFeaturesEnabled(self, pVal) -proc get_SearchAssistantDefault*(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SearchAssistantDefault(self, pVal) -proc get_Searches*(self: ptr ISearchAssistantOC, ppid: ptr ptr ISearches): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Searches(self, ppid) -proc get_InWebFolder*(self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_InWebFolder(self, pVal) -proc PutProperty*(self: ptr ISearchAssistantOC, bPerLocale: VARIANT_BOOL, bstrName: BSTR, bstrValue: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutProperty(self, bPerLocale, bstrName, bstrValue) -proc GetProperty*(self: ptr ISearchAssistantOC, bPerLocale: VARIANT_BOOL, bstrName: BSTR, pbstrValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, bPerLocale, bstrName, pbstrValue) -proc put_EventHandled*(self: ptr ISearchAssistantOC, rhs: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_EventHandled(self, rhs) -proc ResetNextMenu*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetNextMenu(self) -proc FindOnWeb*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindOnWeb(self) -proc FindFilesOrFolders*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFilesOrFolders(self) -proc FindComputer*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindComputer(self) -proc FindPrinter*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindPrinter(self) -proc FindPeople*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindPeople(self) -proc GetSearchAssistantURL*(self: ptr ISearchAssistantOC, bSubstitute: VARIANT_BOOL, bCustomize: VARIANT_BOOL, pbstrValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSearchAssistantURL(self, bSubstitute, bCustomize, pbstrValue) -proc NotifySearchSettingsChanged*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NotifySearchSettingsChanged(self) -proc put_ASProvider*(self: ptr ISearchAssistantOC, pProvider: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ASProvider(self, pProvider) -proc get_ASProvider*(self: ptr ISearchAssistantOC, pProvider: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ASProvider(self, pProvider) -proc put_ASSetting*(self: ptr ISearchAssistantOC, pSetting: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ASSetting(self, pSetting) -proc get_ASSetting*(self: ptr ISearchAssistantOC, pSetting: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ASSetting(self, pSetting) -proc NETDetectNextNavigate*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NETDetectNextNavigate(self) -proc PutFindText*(self: ptr ISearchAssistantOC, FindText: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PutFindText(self, FindText) -proc get_Version*(self: ptr ISearchAssistantOC, pVersion: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Version(self, pVersion) -proc EncodeString*(self: ptr ISearchAssistantOC, bstrValue: BSTR, bstrCharSet: BSTR, bUseUTF8: VARIANT_BOOL, pbstrResult: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EncodeString(self, bstrValue, bstrCharSet, bUseUTF8, pbstrResult) -proc get_ShowFindPrinter*(self: ptr ISearchAssistantOC2, pbShowFindPrinter: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShowFindPrinter(self, pbShowFindPrinter) -proc get_SearchCompanionAvailable*(self: ptr ISearchAssistantOC3, pbAvailable: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SearchCompanionAvailable(self, pbAvailable) -proc put_UseSearchCompanion*(self: ptr ISearchAssistantOC3, pbUseSC: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_UseSearchCompanion(self, pbUseSC) -proc get_UseSearchCompanion*(self: ptr ISearchAssistantOC3, pbUseSC: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_UseSearchCompanion(self, pbUseSC) -proc GetData*(self: ptr IRichChunk, pFirstPos: ptr ULONG, pLength: ptr ULONG, ppsz: ptr LPWSTR, pValue: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetData(self, pFirstPos, pLength, ppsz, pValue) -proc GetConditionType*(self: ptr ICondition, pNodeType: ptr CONDITION_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConditionType(self, pNodeType) -proc GetSubConditions*(self: ptr ICondition, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSubConditions(self, riid, ppv) -proc GetComparisonInfo*(self: ptr ICondition, ppszPropertyName: ptr LPWSTR, pcop: ptr CONDITION_OPERATION, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetComparisonInfo(self, ppszPropertyName, pcop, ppropvar) -proc GetValueType*(self: ptr ICondition, ppszValueTypeName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValueType(self, ppszValueTypeName) -proc GetValueNormalization*(self: ptr ICondition, ppszNormalization: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValueNormalization(self, ppszNormalization) -proc GetInputTerms*(self: ptr ICondition, ppPropertyTerm: ptr ptr IRichChunk, ppOperationTerm: ptr ptr IRichChunk, ppValueTerm: ptr ptr IRichChunk): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInputTerms(self, ppPropertyTerm, ppOperationTerm, ppValueTerm) -proc Clone*(self: ptr ICondition, ppc: ptr ptr ICondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppc) -proc GetLocale*(self: ptr ICondition2, ppszLocaleName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLocale(self, ppszLocaleName) -proc GetLeafConditionInfo*(self: ptr ICondition2, ppropkey: ptr PROPERTYKEY, pcop: ptr CONDITION_OPERATION, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLeafConditionInfo(self, ppropkey, pcop, ppropvar) -proc Initialize*(self: ptr IInitializeWithFile, pszFilePath: LPCWSTR, grfMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pszFilePath, grfMode) -proc Initialize*(self: ptr IInitializeWithStream, pstream: ptr IStream, grfMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pstream, grfMode) -proc GetCount*(self: ptr IPropertyStore, cProps: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, cProps) -proc GetAt*(self: ptr IPropertyStore, iProp: DWORD, pkey: ptr PROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAt(self, iProp, pkey) -proc GetValue*(self: ptr IPropertyStore, key: REFPROPERTYKEY, pv: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValue(self, key, pv) -proc SetValue*(self: ptr IPropertyStore, key: REFPROPERTYKEY, propvar: REFPROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, key, propvar) -proc Commit*(self: ptr IPropertyStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self) -proc GetNamedValue*(self: ptr INamedPropertyStore, pszName: LPCWSTR, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNamedValue(self, pszName, ppropvar) -proc SetNamedValue*(self: ptr INamedPropertyStore, pszName: LPCWSTR, propvar: REFPROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNamedValue(self, pszName, propvar) -proc GetNameCount*(self: ptr INamedPropertyStore, pdwCount: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNameCount(self, pdwCount) -proc GetNameAt*(self: ptr INamedPropertyStore, iProp: DWORD, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNameAt(self, iProp, pbstrName) -proc SetPropertyKey*(self: ptr IObjectWithPropertyKey, key: REFPROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPropertyKey(self, key) -proc GetPropertyKey*(self: ptr IObjectWithPropertyKey, pkey: ptr PROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyKey(self, pkey) -proc ApplyToPropVariant*(self: ptr IPropertyChange, propvarIn: REFPROPVARIANT, ppropvarOut: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyToPropVariant(self, propvarIn, ppropvarOut) -proc GetCount*(self: ptr IPropertyChangeArray, pcOperations: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pcOperations) -proc GetAt*(self: ptr IPropertyChangeArray, iIndex: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAt(self, iIndex, riid, ppv) -proc InsertAt*(self: ptr IPropertyChangeArray, iIndex: UINT, ppropChange: ptr IPropertyChange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertAt(self, iIndex, ppropChange) -proc Append*(self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Append(self, ppropChange) -proc AppendOrReplace*(self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AppendOrReplace(self, ppropChange) -proc RemoveAt*(self: ptr IPropertyChangeArray, iIndex: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAt(self, iIndex) -proc IsKeyInArray*(self: ptr IPropertyChangeArray, key: REFPROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsKeyInArray(self, key) -proc IsPropertyWritable*(self: ptr IPropertyStoreCapabilities, key: REFPROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsPropertyWritable(self, key) -proc GetState*(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, pstate: ptr PSC_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetState(self, key, pstate) -proc GetValueAndState*(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT, pstate: ptr PSC_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValueAndState(self, key, ppropvar, pstate) -proc SetState*(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, state: PSC_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetState(self, key, state) -proc SetValueAndState*(self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT, state: PSC_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValueAndState(self, key, ppropvar, state) -proc GetEnumType*(self: ptr IPropertyEnumType, penumtype: ptr PROPENUMTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumType(self, penumtype) -proc GetValue*(self: ptr IPropertyEnumType, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValue(self, ppropvar) -proc GetRangeMinValue*(self: ptr IPropertyEnumType, ppropvarMin: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRangeMinValue(self, ppropvarMin) -proc GetRangeSetValue*(self: ptr IPropertyEnumType, ppropvarSet: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRangeSetValue(self, ppropvarSet) -proc GetDisplayText*(self: ptr IPropertyEnumType, ppszDisplay: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayText(self, ppszDisplay) -proc GetImageReference*(self: ptr IPropertyEnumType2, ppszImageRes: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImageReference(self, ppszImageRes) -proc GetCount*(self: ptr IPropertyEnumTypeList, pctypes: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pctypes) -proc GetAt*(self: ptr IPropertyEnumTypeList, itype: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAt(self, itype, riid, ppv) -proc GetConditionAt*(self: ptr IPropertyEnumTypeList, nIndex: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConditionAt(self, nIndex, riid, ppv) -proc FindMatchingIndex*(self: ptr IPropertyEnumTypeList, propvarCmp: REFPROPVARIANT, pnIndex: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindMatchingIndex(self, propvarCmp, pnIndex) -proc GetPropertyKey*(self: ptr IPropertyDescription, pkey: ptr PROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyKey(self, pkey) -proc GetCanonicalName*(self: ptr IPropertyDescription, ppszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCanonicalName(self, ppszName) -proc GetPropertyType*(self: ptr IPropertyDescription, pvartype: ptr VARTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyType(self, pvartype) -proc GetDisplayName*(self: ptr IPropertyDescription, ppszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayName(self, ppszName) -proc GetEditInvitation*(self: ptr IPropertyDescription, ppszInvite: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEditInvitation(self, ppszInvite) -proc GetTypeFlags*(self: ptr IPropertyDescription, mask: PROPDESC_TYPE_FLAGS, ppdtFlags: ptr PROPDESC_TYPE_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTypeFlags(self, mask, ppdtFlags) -proc GetViewFlags*(self: ptr IPropertyDescription, ppdvFlags: ptr PROPDESC_VIEW_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewFlags(self, ppdvFlags) -proc GetDefaultColumnWidth*(self: ptr IPropertyDescription, pcxChars: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultColumnWidth(self, pcxChars) -proc GetDisplayType*(self: ptr IPropertyDescription, pdisplaytype: ptr PROPDESC_DISPLAYTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayType(self, pdisplaytype) -proc GetColumnState*(self: ptr IPropertyDescription, pcsFlags: ptr SHCOLSTATEF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnState(self, pcsFlags) -proc GetGroupingRange*(self: ptr IPropertyDescription, pgr: ptr PROPDESC_GROUPING_RANGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGroupingRange(self, pgr) -proc GetRelativeDescriptionType*(self: ptr IPropertyDescription, prdt: ptr PROPDESC_RELATIVEDESCRIPTION_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRelativeDescriptionType(self, prdt) -proc GetRelativeDescription*(self: ptr IPropertyDescription, propvar1: REFPROPVARIANT, propvar2: REFPROPVARIANT, ppszDesc1: ptr LPWSTR, ppszDesc2: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRelativeDescription(self, propvar1, propvar2, ppszDesc1, ppszDesc2) -proc GetSortDescription*(self: ptr IPropertyDescription, psd: ptr PROPDESC_SORTDESCRIPTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSortDescription(self, psd) -proc GetSortDescriptionLabel*(self: ptr IPropertyDescription, fDescending: WINBOOL, ppszDescription: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSortDescriptionLabel(self, fDescending, ppszDescription) -proc GetAggregationType*(self: ptr IPropertyDescription, paggtype: ptr PROPDESC_AGGREGATION_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAggregationType(self, paggtype) -proc GetConditionType*(self: ptr IPropertyDescription, pcontype: ptr PROPDESC_CONDITION_TYPE, popDefault: ptr CONDITION_OPERATION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConditionType(self, pcontype, popDefault) -proc GetEnumTypeList*(self: ptr IPropertyDescription, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumTypeList(self, riid, ppv) -proc CoerceToCanonicalValue*(self: ptr IPropertyDescription, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CoerceToCanonicalValue(self, ppropvar) -proc FormatForDisplay*(self: ptr IPropertyDescription, propvar: REFPROPVARIANT, pdfFlags: PROPDESC_FORMAT_FLAGS, ppszDisplay: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FormatForDisplay(self, propvar, pdfFlags, ppszDisplay) -proc IsValueCanonical*(self: ptr IPropertyDescription, propvar: REFPROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsValueCanonical(self, propvar) -proc GetImageReferenceForValue*(self: ptr IPropertyDescription2, propvar: REFPROPVARIANT, ppszImageRes: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImageReferenceForValue(self, propvar, ppszImageRes) -proc GetSortByAlias*(self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSortByAlias(self, riid, ppv) -proc GetAdditionalSortByAliases*(self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAdditionalSortByAliases(self, riid, ppv) -proc GetSearchInfoFlags*(self: ptr IPropertyDescriptionSearchInfo, ppdsiFlags: ptr PROPDESC_SEARCHINFO_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSearchInfoFlags(self, ppdsiFlags) -proc GetColumnIndexType*(self: ptr IPropertyDescriptionSearchInfo, ppdciType: ptr PROPDESC_COLUMNINDEX_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnIndexType(self, ppdciType) -proc GetProjectionString*(self: ptr IPropertyDescriptionSearchInfo, ppszProjection: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProjectionString(self, ppszProjection) -proc GetMaxSize*(self: ptr IPropertyDescriptionSearchInfo, pcbMaxSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMaxSize(self, pcbMaxSize) -proc GetRelatedProperty*(self: ptr IPropertyDescriptionRelatedPropertyInfo, pszRelationshipName: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRelatedProperty(self, pszRelationshipName, riid, ppv) -proc GetPropertyDescription*(self: ptr IPropertySystem, propkey: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescription(self, propkey, riid, ppv) -proc GetPropertyDescriptionByName*(self: ptr IPropertySystem, pszCanonicalName: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescriptionByName(self, pszCanonicalName, riid, ppv) -proc GetPropertyDescriptionListFromString*(self: ptr IPropertySystem, pszPropList: LPCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescriptionListFromString(self, pszPropList, riid, ppv) -proc EnumeratePropertyDescriptions*(self: ptr IPropertySystem, filterOn: PROPDESC_ENUMFILTER, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumeratePropertyDescriptions(self, filterOn, riid, ppv) -proc FormatForDisplay*(self: ptr IPropertySystem, key: REFPROPERTYKEY, propvar: REFPROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, pszText: LPWSTR, cchText: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FormatForDisplay(self, key, propvar, pdff, pszText, cchText) -proc FormatForDisplayAlloc*(self: ptr IPropertySystem, key: REFPROPERTYKEY, propvar: REFPROPVARIANT, pdff: PROPDESC_FORMAT_FLAGS, ppszDisplay: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FormatForDisplayAlloc(self, key, propvar, pdff, ppszDisplay) -proc RegisterPropertySchema*(self: ptr IPropertySystem, pszPath: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterPropertySchema(self, pszPath) -proc UnregisterPropertySchema*(self: ptr IPropertySystem, pszPath: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterPropertySchema(self, pszPath) -proc RefreshPropertySchema*(self: ptr IPropertySystem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RefreshPropertySchema(self) -proc GetCount*(self: ptr IPropertyDescriptionList, pcElem: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pcElem) -proc GetAt*(self: ptr IPropertyDescriptionList, iElem: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAt(self, iElem, riid, ppv) -proc GetPropertyStore*(self: ptr IPropertyStoreFactory, flags: GETPROPERTYSTOREFLAGS, pUnkFactory: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStore(self, flags, pUnkFactory, riid, ppv) -proc GetPropertyStoreForKeys*(self: ptr IPropertyStoreFactory, rgKeys: ptr PROPERTYKEY, cKeys: UINT, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStoreForKeys(self, rgKeys, cKeys, flags, riid, ppv) -proc GetDelayedPropertyStore*(self: ptr IDelayedPropertyStoreFactory, flags: GETPROPERTYSTOREFLAGS, dwStoreId: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDelayedPropertyStore(self, flags, dwStoreId, riid, ppv) -proc SetFlags*(self: ptr IPersistSerializedPropStorage, flags: PERSIST_SPROPSTORE_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFlags(self, flags) -proc SetPropertyStorage*(self: ptr IPersistSerializedPropStorage, psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPropertyStorage(self, psps, cb) -proc GetPropertyStorage*(self: ptr IPersistSerializedPropStorage, ppsps: ptr ptr SERIALIZEDPROPSTORAGE, pcb: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStorage(self, ppsps, pcb) -proc GetPropertyStorageSize*(self: ptr IPersistSerializedPropStorage2, pcb: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStorageSize(self, pcb) -proc GetPropertyStorageBuffer*(self: ptr IPersistSerializedPropStorage2, psps: ptr SERIALIZEDPROPSTORAGE, cb: DWORD, pcbWritten: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStorageBuffer(self, psps, cb, pcbWritten) -proc SchemaRefreshed*(self: ptr IPropertySystemChangeNotify): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SchemaRefreshed(self) -proc CreateObject*(self: ptr ICreateObject, clsid: REFCLSID, pUnkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateObject(self, clsid, pUnkOuter, riid, ppv) -converter winimConverterAsyncIUnknownToIUnknown*(x: ptr AsyncIUnknown): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIClassFactoryToIUnknown*(x: ptr IClassFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarshalToIUnknown*(x: ptr IMarshal): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINoMarshalToIUnknown*(x: ptr INoMarshal): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAgileObjectToIUnknown*(x: ptr IAgileObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarshal2ToIMarshal*(x: ptr IMarshal2): ptr IMarshal = cast[ptr IMarshal](x) -converter winimConverterIMarshal2ToIUnknown*(x: ptr IMarshal2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMallocToIUnknown*(x: ptr IMalloc): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStdMarshalInfoToIUnknown*(x: ptr IStdMarshalInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExternalConnectionToIUnknown*(x: ptr IExternalConnection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMultiQIToIUnknown*(x: ptr IMultiQI): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterAsyncIMultiQIToIUnknown*(x: ptr AsyncIMultiQI): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternalUnknownToIUnknown*(x: ptr IInternalUnknown): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumUnknownToIUnknown*(x: ptr IEnumUnknown): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumStringToIUnknown*(x: ptr IEnumString): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISequentialStreamToIUnknown*(x: ptr ISequentialStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStreamToISequentialStream*(x: ptr IStream): ptr ISequentialStream = cast[ptr ISequentialStream](x) -converter winimConverterIStreamToIUnknown*(x: ptr IStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcChannelBufferToIUnknown*(x: ptr IRpcChannelBuffer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcChannelBuffer2ToIRpcChannelBuffer*(x: ptr IRpcChannelBuffer2): ptr IRpcChannelBuffer = cast[ptr IRpcChannelBuffer](x) -converter winimConverterIRpcChannelBuffer2ToIUnknown*(x: ptr IRpcChannelBuffer2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAsyncRpcChannelBufferToIRpcChannelBuffer2*(x: ptr IAsyncRpcChannelBuffer): ptr IRpcChannelBuffer2 = cast[ptr IRpcChannelBuffer2](x) -converter winimConverterIAsyncRpcChannelBufferToIRpcChannelBuffer*(x: ptr IAsyncRpcChannelBuffer): ptr IRpcChannelBuffer = cast[ptr IRpcChannelBuffer](x) -converter winimConverterIAsyncRpcChannelBufferToIUnknown*(x: ptr IAsyncRpcChannelBuffer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcChannelBuffer3ToIRpcChannelBuffer2*(x: ptr IRpcChannelBuffer3): ptr IRpcChannelBuffer2 = cast[ptr IRpcChannelBuffer2](x) -converter winimConverterIRpcChannelBuffer3ToIRpcChannelBuffer*(x: ptr IRpcChannelBuffer3): ptr IRpcChannelBuffer = cast[ptr IRpcChannelBuffer](x) -converter winimConverterIRpcChannelBuffer3ToIUnknown*(x: ptr IRpcChannelBuffer3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcSyntaxNegotiateToIUnknown*(x: ptr IRpcSyntaxNegotiate): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcProxyBufferToIUnknown*(x: ptr IRpcProxyBuffer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcStubBufferToIUnknown*(x: ptr IRpcStubBuffer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPSFactoryBufferToIUnknown*(x: ptr IPSFactoryBuffer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIChannelHookToIUnknown*(x: ptr IChannelHook): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIClientSecurityToIUnknown*(x: ptr IClientSecurity): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIServerSecurityToIUnknown*(x: ptr IServerSecurity): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcOptionsToIUnknown*(x: ptr IRpcOptions): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGlobalOptionsToIUnknown*(x: ptr IGlobalOptions): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISurrogateToIUnknown*(x: ptr ISurrogate): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGlobalInterfaceTableToIUnknown*(x: ptr IGlobalInterfaceTable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISynchronizeToIUnknown*(x: ptr ISynchronize): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISynchronizeHandleToIUnknown*(x: ptr ISynchronizeHandle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISynchronizeEventToISynchronizeHandle*(x: ptr ISynchronizeEvent): ptr ISynchronizeHandle = cast[ptr ISynchronizeHandle](x) -converter winimConverterISynchronizeEventToIUnknown*(x: ptr ISynchronizeEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISynchronizeContainerToIUnknown*(x: ptr ISynchronizeContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISynchronizeMutexToISynchronize*(x: ptr ISynchronizeMutex): ptr ISynchronize = cast[ptr ISynchronize](x) -converter winimConverterISynchronizeMutexToIUnknown*(x: ptr ISynchronizeMutex): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICancelMethodCallsToIUnknown*(x: ptr ICancelMethodCalls): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAsyncManagerToIUnknown*(x: ptr IAsyncManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICallFactoryToIUnknown*(x: ptr ICallFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRpcHelperToIUnknown*(x: ptr IRpcHelper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIReleaseMarshalBuffersToIUnknown*(x: ptr IReleaseMarshalBuffers): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWaitMultipleToIUnknown*(x: ptr IWaitMultiple): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAddrTrackingControlToIUnknown*(x: ptr IAddrTrackingControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAddrExclusionControlToIUnknown*(x: ptr IAddrExclusionControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPipeByteToIUnknown*(x: ptr IPipeByte): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPipeLongToIUnknown*(x: ptr IPipeLong): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPipeDoubleToIUnknown*(x: ptr IPipeDouble): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumContextPropsToIUnknown*(x: ptr IEnumContextProps): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContextToIUnknown*(x: ptr IContext): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIComThreadingInfoToIUnknown*(x: ptr IComThreadingInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProcessInitControlToIUnknown*(x: ptr IProcessInitControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFastRundownToIUnknown*(x: ptr IFastRundown): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMarshalingStreamToIStream*(x: ptr IMarshalingStream): ptr IStream = cast[ptr IStream](x) -converter winimConverterIMarshalingStreamToISequentialStream*(x: ptr IMarshalingStream): ptr ISequentialStream = cast[ptr ISequentialStream](x) -converter winimConverterIMarshalingStreamToIUnknown*(x: ptr IMarshalingStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMallocSpyToIUnknown*(x: ptr IMallocSpy): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindCtxToIUnknown*(x: ptr IBindCtx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumMonikerToIUnknown*(x: ptr IEnumMoniker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRunnableObjectToIUnknown*(x: ptr IRunnableObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRunningObjectTableToIUnknown*(x: ptr IRunningObjectTable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistToIUnknown*(x: ptr IPersist): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistStreamToIPersist*(x: ptr IPersistStream): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistStreamToIUnknown*(x: ptr IPersistStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMonikerToIPersistStream*(x: ptr IMoniker): ptr IPersistStream = cast[ptr IPersistStream](x) -converter winimConverterIMonikerToIPersist*(x: ptr IMoniker): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIMonikerToIUnknown*(x: ptr IMoniker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIROTDataToIUnknown*(x: ptr IROTData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumSTATSTGToIUnknown*(x: ptr IEnumSTATSTG): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStorageToIUnknown*(x: ptr IStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistFileToIPersist*(x: ptr IPersistFile): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistFileToIUnknown*(x: ptr IPersistFile): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistStorageToIPersist*(x: ptr IPersistStorage): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistStorageToIUnknown*(x: ptr IPersistStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterILockBytesToIUnknown*(x: ptr ILockBytes): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumFORMATETCToIUnknown*(x: ptr IEnumFORMATETC): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumSTATDATAToIUnknown*(x: ptr IEnumSTATDATA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRootStorageToIUnknown*(x: ptr IRootStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAdviseSinkToIUnknown*(x: ptr IAdviseSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterAsyncIAdviseSinkToIUnknown*(x: ptr AsyncIAdviseSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAdviseSink2ToIAdviseSink*(x: ptr IAdviseSink2): ptr IAdviseSink = cast[ptr IAdviseSink](x) -converter winimConverterIAdviseSink2ToIUnknown*(x: ptr IAdviseSink2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterAsyncIAdviseSink2ToIAdviseSink*(x: ptr AsyncIAdviseSink2): ptr IAdviseSink = cast[ptr IAdviseSink](x) -converter winimConverterAsyncIAdviseSink2ToIUnknown*(x: ptr AsyncIAdviseSink2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDataObjectToIUnknown*(x: ptr IDataObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDataAdviseHolderToIUnknown*(x: ptr IDataAdviseHolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMessageFilterToIUnknown*(x: ptr IMessageFilter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIClassActivatorToIUnknown*(x: ptr IClassActivator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFillLockBytesToIUnknown*(x: ptr IFillLockBytes): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProgressNotifyToIUnknown*(x: ptr IProgressNotify): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterILayoutStorageToIUnknown*(x: ptr ILayoutStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBlockingLockToIUnknown*(x: ptr IBlockingLock): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITimeAndNoticeControlToIUnknown*(x: ptr ITimeAndNoticeControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOplockStorageToIUnknown*(x: ptr IOplockStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDirectWriterLockToIUnknown*(x: ptr IDirectWriterLock): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUrlMonToIUnknown*(x: ptr IUrlMon): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIForegroundTransferToIUnknown*(x: ptr IForegroundTransfer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIThumbnailExtractorToIUnknown*(x: ptr IThumbnailExtractor): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDummyHICONIncluderToIUnknown*(x: ptr IDummyHICONIncluder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProcessLockToIUnknown*(x: ptr IProcessLock): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISurrogateServiceToIUnknown*(x: ptr ISurrogateService): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeSpyToIUnknown*(x: ptr IInitializeSpy): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApartmentShutdownToIUnknown*(x: ptr IApartmentShutdown): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICreateTypeInfoToIUnknown*(x: ptr ICreateTypeInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICreateTypeInfo2ToICreateTypeInfo*(x: ptr ICreateTypeInfo2): ptr ICreateTypeInfo = cast[ptr ICreateTypeInfo](x) -converter winimConverterICreateTypeInfo2ToIUnknown*(x: ptr ICreateTypeInfo2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICreateTypeLibToIUnknown*(x: ptr ICreateTypeLib): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICreateTypeLib2ToICreateTypeLib*(x: ptr ICreateTypeLib2): ptr ICreateTypeLib = cast[ptr ICreateTypeLib](x) -converter winimConverterICreateTypeLib2ToIUnknown*(x: ptr ICreateTypeLib2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDispatchToIUnknown*(x: ptr IDispatch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumVARIANTToIUnknown*(x: ptr IEnumVARIANT): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeCompToIUnknown*(x: ptr ITypeComp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeInfoToIUnknown*(x: ptr ITypeInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeInfo2ToITypeInfo*(x: ptr ITypeInfo2): ptr ITypeInfo = cast[ptr ITypeInfo](x) -converter winimConverterITypeInfo2ToIUnknown*(x: ptr ITypeInfo2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeLibToIUnknown*(x: ptr ITypeLib): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeLib2ToITypeLib*(x: ptr ITypeLib2): ptr ITypeLib = cast[ptr ITypeLib](x) -converter winimConverterITypeLib2ToIUnknown*(x: ptr ITypeLib2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeChangeEventsToIUnknown*(x: ptr ITypeChangeEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIErrorInfoToIUnknown*(x: ptr IErrorInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICreateErrorInfoToIUnknown*(x: ptr ICreateErrorInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISupportErrorInfoToIUnknown*(x: ptr ISupportErrorInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeFactoryToIUnknown*(x: ptr ITypeFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITypeMarshalToIUnknown*(x: ptr ITypeMarshal): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRecordInfoToIUnknown*(x: ptr IRecordInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIErrorLogToIUnknown*(x: ptr IErrorLog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyBagToIUnknown*(x: ptr IPropertyBag): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleAdviseHolderToIUnknown*(x: ptr IOleAdviseHolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleCacheToIUnknown*(x: ptr IOleCache): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleCache2ToIOleCache*(x: ptr IOleCache2): ptr IOleCache = cast[ptr IOleCache](x) -converter winimConverterIOleCache2ToIUnknown*(x: ptr IOleCache2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleCacheControlToIUnknown*(x: ptr IOleCacheControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIParseDisplayNameToIUnknown*(x: ptr IParseDisplayName): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleContainerToIParseDisplayName*(x: ptr IOleContainer): ptr IParseDisplayName = cast[ptr IParseDisplayName](x) -converter winimConverterIOleContainerToIUnknown*(x: ptr IOleContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleClientSiteToIUnknown*(x: ptr IOleClientSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleObjectToIUnknown*(x: ptr IOleObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleWindowToIUnknown*(x: ptr IOleWindow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleLinkToIUnknown*(x: ptr IOleLink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleItemContainerToIOleContainer*(x: ptr IOleItemContainer): ptr IOleContainer = cast[ptr IOleContainer](x) -converter winimConverterIOleItemContainerToIParseDisplayName*(x: ptr IOleItemContainer): ptr IParseDisplayName = cast[ptr IParseDisplayName](x) -converter winimConverterIOleItemContainerToIUnknown*(x: ptr IOleItemContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceUIWindowToIOleWindow*(x: ptr IOleInPlaceUIWindow): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceUIWindowToIUnknown*(x: ptr IOleInPlaceUIWindow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceActiveObjectToIOleWindow*(x: ptr IOleInPlaceActiveObject): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceActiveObjectToIUnknown*(x: ptr IOleInPlaceActiveObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceFrameToIOleInPlaceUIWindow*(x: ptr IOleInPlaceFrame): ptr IOleInPlaceUIWindow = cast[ptr IOleInPlaceUIWindow](x) -converter winimConverterIOleInPlaceFrameToIOleWindow*(x: ptr IOleInPlaceFrame): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceFrameToIUnknown*(x: ptr IOleInPlaceFrame): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceObjectToIOleWindow*(x: ptr IOleInPlaceObject): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceObjectToIUnknown*(x: ptr IOleInPlaceObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceSiteToIOleWindow*(x: ptr IOleInPlaceSite): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceSiteToIUnknown*(x: ptr IOleInPlaceSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContinueToIUnknown*(x: ptr IContinue): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObjectToIUnknown*(x: ptr IViewObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObject2ToIViewObject*(x: ptr IViewObject2): ptr IViewObject = cast[ptr IViewObject](x) -converter winimConverterIViewObject2ToIUnknown*(x: ptr IViewObject2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDropSourceToIUnknown*(x: ptr IDropSource): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDropTargetToIUnknown*(x: ptr IDropTarget): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDropSourceNotifyToIUnknown*(x: ptr IDropSourceNotify): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumOLEVERBToIUnknown*(x: ptr IEnumOLEVERB): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIServiceProviderToIUnknown*(x: ptr IServiceProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMImplementationToIDispatch*(x: ptr IXMLDOMImplementation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMImplementationToIUnknown*(x: ptr IXMLDOMImplementation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMNodeToIDispatch*(x: ptr IXMLDOMNode): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMNodeToIUnknown*(x: ptr IXMLDOMNode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMDocumentFragmentToIXMLDOMNode*(x: ptr IXMLDOMDocumentFragment): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMDocumentFragmentToIDispatch*(x: ptr IXMLDOMDocumentFragment): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMDocumentFragmentToIUnknown*(x: ptr IXMLDOMDocumentFragment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMDocumentToIXMLDOMNode*(x: ptr IXMLDOMDocument): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMDocumentToIDispatch*(x: ptr IXMLDOMDocument): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMDocumentToIUnknown*(x: ptr IXMLDOMDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMNodeListToIDispatch*(x: ptr IXMLDOMNodeList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMNodeListToIUnknown*(x: ptr IXMLDOMNodeList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMNamedNodeMapToIDispatch*(x: ptr IXMLDOMNamedNodeMap): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMNamedNodeMapToIUnknown*(x: ptr IXMLDOMNamedNodeMap): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMCharacterDataToIXMLDOMNode*(x: ptr IXMLDOMCharacterData): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMCharacterDataToIDispatch*(x: ptr IXMLDOMCharacterData): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMCharacterDataToIUnknown*(x: ptr IXMLDOMCharacterData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMAttributeToIXMLDOMNode*(x: ptr IXMLDOMAttribute): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMAttributeToIDispatch*(x: ptr IXMLDOMAttribute): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMAttributeToIUnknown*(x: ptr IXMLDOMAttribute): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMElementToIXMLDOMNode*(x: ptr IXMLDOMElement): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMElementToIDispatch*(x: ptr IXMLDOMElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMElementToIUnknown*(x: ptr IXMLDOMElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMTextToIXMLDOMCharacterData*(x: ptr IXMLDOMText): ptr IXMLDOMCharacterData = cast[ptr IXMLDOMCharacterData](x) -converter winimConverterIXMLDOMTextToIXMLDOMNode*(x: ptr IXMLDOMText): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMTextToIDispatch*(x: ptr IXMLDOMText): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMTextToIUnknown*(x: ptr IXMLDOMText): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMCommentToIXMLDOMCharacterData*(x: ptr IXMLDOMComment): ptr IXMLDOMCharacterData = cast[ptr IXMLDOMCharacterData](x) -converter winimConverterIXMLDOMCommentToIXMLDOMNode*(x: ptr IXMLDOMComment): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMCommentToIDispatch*(x: ptr IXMLDOMComment): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMCommentToIUnknown*(x: ptr IXMLDOMComment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMProcessingInstructionToIXMLDOMNode*(x: ptr IXMLDOMProcessingInstruction): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMProcessingInstructionToIDispatch*(x: ptr IXMLDOMProcessingInstruction): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMProcessingInstructionToIUnknown*(x: ptr IXMLDOMProcessingInstruction): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMCDATASectionToIXMLDOMText*(x: ptr IXMLDOMCDATASection): ptr IXMLDOMText = cast[ptr IXMLDOMText](x) -converter winimConverterIXMLDOMCDATASectionToIXMLDOMCharacterData*(x: ptr IXMLDOMCDATASection): ptr IXMLDOMCharacterData = cast[ptr IXMLDOMCharacterData](x) -converter winimConverterIXMLDOMCDATASectionToIXMLDOMNode*(x: ptr IXMLDOMCDATASection): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMCDATASectionToIDispatch*(x: ptr IXMLDOMCDATASection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMCDATASectionToIUnknown*(x: ptr IXMLDOMCDATASection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMDocumentTypeToIXMLDOMNode*(x: ptr IXMLDOMDocumentType): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMDocumentTypeToIDispatch*(x: ptr IXMLDOMDocumentType): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMDocumentTypeToIUnknown*(x: ptr IXMLDOMDocumentType): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMNotationToIXMLDOMNode*(x: ptr IXMLDOMNotation): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMNotationToIDispatch*(x: ptr IXMLDOMNotation): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMNotationToIUnknown*(x: ptr IXMLDOMNotation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMEntityToIXMLDOMNode*(x: ptr IXMLDOMEntity): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMEntityToIDispatch*(x: ptr IXMLDOMEntity): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMEntityToIUnknown*(x: ptr IXMLDOMEntity): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMEntityReferenceToIXMLDOMNode*(x: ptr IXMLDOMEntityReference): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXMLDOMEntityReferenceToIDispatch*(x: ptr IXMLDOMEntityReference): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMEntityReferenceToIUnknown*(x: ptr IXMLDOMEntityReference): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDOMParseErrorToIDispatch*(x: ptr IXMLDOMParseError): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDOMParseErrorToIUnknown*(x: ptr IXMLDOMParseError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXTLRuntimeToIXMLDOMNode*(x: ptr IXTLRuntime): ptr IXMLDOMNode = cast[ptr IXMLDOMNode](x) -converter winimConverterIXTLRuntimeToIDispatch*(x: ptr IXTLRuntime): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXTLRuntimeToIUnknown*(x: ptr IXTLRuntime): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterXMLDOMDocumentEventsToIDispatch*(x: ptr XMLDOMDocumentEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterXMLDOMDocumentEventsToIUnknown*(x: ptr XMLDOMDocumentEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLHttpRequestToIDispatch*(x: ptr IXMLHttpRequest): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLHttpRequestToIUnknown*(x: ptr IXMLHttpRequest): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDSOControlToIDispatch*(x: ptr IXMLDSOControl): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDSOControlToIUnknown*(x: ptr IXMLDSOControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLElementCollectionToIDispatch*(x: ptr IXMLElementCollection): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLElementCollectionToIUnknown*(x: ptr IXMLElementCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDocumentToIDispatch*(x: ptr IXMLDocument): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDocumentToIUnknown*(x: ptr IXMLDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLDocument2ToIDispatch*(x: ptr IXMLDocument2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLDocument2ToIUnknown*(x: ptr IXMLDocument2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLElementToIDispatch*(x: ptr IXMLElement): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLElementToIUnknown*(x: ptr IXMLElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLElement2ToIDispatch*(x: ptr IXMLElement2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLElement2ToIUnknown*(x: ptr IXMLElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLAttributeToIDispatch*(x: ptr IXMLAttribute): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIXMLAttributeToIUnknown*(x: ptr IXMLAttribute): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIXMLErrorToIUnknown*(x: ptr IXMLError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistMonikerToIUnknown*(x: ptr IPersistMoniker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMonikerPropToIUnknown*(x: ptr IMonikerProp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindProtocolToIUnknown*(x: ptr IBindProtocol): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindingToIUnknown*(x: ptr IBinding): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindStatusCallbackToIUnknown*(x: ptr IBindStatusCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindStatusCallbackExToIBindStatusCallback*(x: ptr IBindStatusCallbackEx): ptr IBindStatusCallback = cast[ptr IBindStatusCallback](x) -converter winimConverterIBindStatusCallbackExToIUnknown*(x: ptr IBindStatusCallbackEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAuthenticateToIUnknown*(x: ptr IAuthenticate): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAuthenticateExToIAuthenticate*(x: ptr IAuthenticateEx): ptr IAuthenticate = cast[ptr IAuthenticate](x) -converter winimConverterIAuthenticateExToIUnknown*(x: ptr IAuthenticateEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHttpNegotiateToIUnknown*(x: ptr IHttpNegotiate): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHttpNegotiate2ToIHttpNegotiate*(x: ptr IHttpNegotiate2): ptr IHttpNegotiate = cast[ptr IHttpNegotiate](x) -converter winimConverterIHttpNegotiate2ToIUnknown*(x: ptr IHttpNegotiate2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHttpNegotiate3ToIHttpNegotiate2*(x: ptr IHttpNegotiate3): ptr IHttpNegotiate2 = cast[ptr IHttpNegotiate2](x) -converter winimConverterIHttpNegotiate3ToIHttpNegotiate*(x: ptr IHttpNegotiate3): ptr IHttpNegotiate = cast[ptr IHttpNegotiate](x) -converter winimConverterIHttpNegotiate3ToIUnknown*(x: ptr IHttpNegotiate3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWinInetFileStreamToIUnknown*(x: ptr IWinInetFileStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWindowForBindingUIToIUnknown*(x: ptr IWindowForBindingUI): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICodeInstallToIWindowForBindingUI*(x: ptr ICodeInstall): ptr IWindowForBindingUI = cast[ptr IWindowForBindingUI](x) -converter winimConverterICodeInstallToIUnknown*(x: ptr ICodeInstall): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUriToIUnknown*(x: ptr IUri): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUriContainerToIUnknown*(x: ptr IUriContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUriBuilderToIUnknown*(x: ptr IUriBuilder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUriBuilderFactoryToIUnknown*(x: ptr IUriBuilderFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWinInetInfoToIUnknown*(x: ptr IWinInetInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHttpSecurityToIWindowForBindingUI*(x: ptr IHttpSecurity): ptr IWindowForBindingUI = cast[ptr IWindowForBindingUI](x) -converter winimConverterIHttpSecurityToIUnknown*(x: ptr IHttpSecurity): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWinInetHttpInfoToIWinInetInfo*(x: ptr IWinInetHttpInfo): ptr IWinInetInfo = cast[ptr IWinInetInfo](x) -converter winimConverterIWinInetHttpInfoToIUnknown*(x: ptr IWinInetHttpInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWinInetHttpTimeoutsToIUnknown*(x: ptr IWinInetHttpTimeouts): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWinInetCacheHintsToIUnknown*(x: ptr IWinInetCacheHints): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWinInetCacheHints2ToIWinInetCacheHints*(x: ptr IWinInetCacheHints2): ptr IWinInetCacheHints = cast[ptr IWinInetCacheHints](x) -converter winimConverterIWinInetCacheHints2ToIUnknown*(x: ptr IWinInetCacheHints2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindHostToIUnknown*(x: ptr IBindHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetToIUnknown*(x: ptr IInternet): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetBindInfoToIUnknown*(x: ptr IInternetBindInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetBindInfoExToIInternetBindInfo*(x: ptr IInternetBindInfoEx): ptr IInternetBindInfo = cast[ptr IInternetBindInfo](x) -converter winimConverterIInternetBindInfoExToIUnknown*(x: ptr IInternetBindInfoEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetProtocolRootToIUnknown*(x: ptr IInternetProtocolRoot): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetProtocolToIInternetProtocolRoot*(x: ptr IInternetProtocol): ptr IInternetProtocolRoot = cast[ptr IInternetProtocolRoot](x) -converter winimConverterIInternetProtocolToIUnknown*(x: ptr IInternetProtocol): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetProtocolExToIInternetProtocol*(x: ptr IInternetProtocolEx): ptr IInternetProtocol = cast[ptr IInternetProtocol](x) -converter winimConverterIInternetProtocolExToIInternetProtocolRoot*(x: ptr IInternetProtocolEx): ptr IInternetProtocolRoot = cast[ptr IInternetProtocolRoot](x) -converter winimConverterIInternetProtocolExToIUnknown*(x: ptr IInternetProtocolEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetProtocolSinkToIUnknown*(x: ptr IInternetProtocolSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetProtocolSinkStackableToIUnknown*(x: ptr IInternetProtocolSinkStackable): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetSessionToIUnknown*(x: ptr IInternetSession): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetThreadSwitchToIUnknown*(x: ptr IInternetThreadSwitch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetPriorityToIUnknown*(x: ptr IInternetPriority): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetProtocolInfoToIUnknown*(x: ptr IInternetProtocolInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetSecurityMgrSiteToIUnknown*(x: ptr IInternetSecurityMgrSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetSecurityManagerToIUnknown*(x: ptr IInternetSecurityManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetSecurityManagerExToIInternetSecurityManager*(x: ptr IInternetSecurityManagerEx): ptr IInternetSecurityManager = cast[ptr IInternetSecurityManager](x) -converter winimConverterIInternetSecurityManagerExToIUnknown*(x: ptr IInternetSecurityManagerEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetSecurityManagerEx2ToIInternetSecurityManagerEx*(x: ptr IInternetSecurityManagerEx2): ptr IInternetSecurityManagerEx = cast[ptr IInternetSecurityManagerEx](x) -converter winimConverterIInternetSecurityManagerEx2ToIInternetSecurityManager*(x: ptr IInternetSecurityManagerEx2): ptr IInternetSecurityManager = cast[ptr IInternetSecurityManager](x) -converter winimConverterIInternetSecurityManagerEx2ToIUnknown*(x: ptr IInternetSecurityManagerEx2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIZoneIdentifierToIUnknown*(x: ptr IZoneIdentifier): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetHostSecurityManagerToIUnknown*(x: ptr IInternetHostSecurityManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetZoneManagerToIUnknown*(x: ptr IInternetZoneManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetZoneManagerExToIInternetZoneManager*(x: ptr IInternetZoneManagerEx): ptr IInternetZoneManager = cast[ptr IInternetZoneManager](x) -converter winimConverterIInternetZoneManagerExToIUnknown*(x: ptr IInternetZoneManagerEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInternetZoneManagerEx2ToIInternetZoneManagerEx*(x: ptr IInternetZoneManagerEx2): ptr IInternetZoneManagerEx = cast[ptr IInternetZoneManagerEx](x) -converter winimConverterIInternetZoneManagerEx2ToIInternetZoneManager*(x: ptr IInternetZoneManagerEx2): ptr IInternetZoneManager = cast[ptr IInternetZoneManager](x) -converter winimConverterIInternetZoneManagerEx2ToIUnknown*(x: ptr IInternetZoneManagerEx2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISoftDistExtToIUnknown*(x: ptr ISoftDistExt): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICatalogFileInfoToIUnknown*(x: ptr ICatalogFileInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDataFilterToIUnknown*(x: ptr IDataFilter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEncodingFilterFactoryToIUnknown*(x: ptr IEncodingFilterFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWrappedProtocolToIUnknown*(x: ptr IWrappedProtocol): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGetBindHandleToIUnknown*(x: ptr IGetBindHandle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindCallbackRedirectToIUnknown*(x: ptr IBindCallbackRedirect): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyStorageToIUnknown*(x: ptr IPropertyStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertySetStorageToIUnknown*(x: ptr IPropertySetStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumSTATPROPSTGToIUnknown*(x: ptr IEnumSTATPROPSTG): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumSTATPROPSETSTGToIUnknown*(x: ptr IEnumSTATPROPSETSTG): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumConnectionsToIUnknown*(x: ptr IEnumConnections): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIConnectionPointToIUnknown*(x: ptr IConnectionPoint): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumConnectionPointsToIUnknown*(x: ptr IEnumConnectionPoints): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIConnectionPointContainerToIUnknown*(x: ptr IConnectionPointContainer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIClassFactory2ToIClassFactory*(x: ptr IClassFactory2): ptr IClassFactory = cast[ptr IClassFactory](x) -converter winimConverterIClassFactory2ToIUnknown*(x: ptr IClassFactory2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProvideClassInfoToIUnknown*(x: ptr IProvideClassInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProvideClassInfo2ToIProvideClassInfo*(x: ptr IProvideClassInfo2): ptr IProvideClassInfo = cast[ptr IProvideClassInfo](x) -converter winimConverterIProvideClassInfo2ToIUnknown*(x: ptr IProvideClassInfo2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProvideMultipleClassInfoToIProvideClassInfo2*(x: ptr IProvideMultipleClassInfo): ptr IProvideClassInfo2 = cast[ptr IProvideClassInfo2](x) -converter winimConverterIProvideMultipleClassInfoToIProvideClassInfo*(x: ptr IProvideMultipleClassInfo): ptr IProvideClassInfo = cast[ptr IProvideClassInfo](x) -converter winimConverterIProvideMultipleClassInfoToIUnknown*(x: ptr IProvideMultipleClassInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleControlToIUnknown*(x: ptr IOleControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleControlSiteToIUnknown*(x: ptr IOleControlSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyPageToIUnknown*(x: ptr IPropertyPage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyPage2ToIPropertyPage*(x: ptr IPropertyPage2): ptr IPropertyPage = cast[ptr IPropertyPage](x) -converter winimConverterIPropertyPage2ToIUnknown*(x: ptr IPropertyPage2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyPageSiteToIUnknown*(x: ptr IPropertyPageSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyNotifySinkToIUnknown*(x: ptr IPropertyNotifySink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISpecifyPropertyPagesToIUnknown*(x: ptr ISpecifyPropertyPages): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistMemoryToIPersist*(x: ptr IPersistMemory): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistMemoryToIUnknown*(x: ptr IPersistMemory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistStreamInitToIPersist*(x: ptr IPersistStreamInit): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistStreamInitToIUnknown*(x: ptr IPersistStreamInit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistPropertyBagToIPersist*(x: ptr IPersistPropertyBag): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistPropertyBagToIUnknown*(x: ptr IPersistPropertyBag): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISimpleFrameSiteToIUnknown*(x: ptr ISimpleFrameSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFontToIUnknown*(x: ptr IFont): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPictureToIUnknown*(x: ptr IPicture): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPicture2ToIUnknown*(x: ptr IPicture2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFontEventsDispToIDispatch*(x: ptr IFontEventsDisp): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIFontEventsDispToIUnknown*(x: ptr IFontEventsDisp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFontDispToIDispatch*(x: ptr IFontDisp): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIFontDispToIUnknown*(x: ptr IFontDisp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPictureDispToIDispatch*(x: ptr IPictureDisp): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIPictureDispToIUnknown*(x: ptr IPictureDisp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceObjectWindowlessToIOleInPlaceObject*(x: ptr IOleInPlaceObjectWindowless): ptr IOleInPlaceObject = cast[ptr IOleInPlaceObject](x) -converter winimConverterIOleInPlaceObjectWindowlessToIOleWindow*(x: ptr IOleInPlaceObjectWindowless): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceObjectWindowlessToIUnknown*(x: ptr IOleInPlaceObjectWindowless): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceSiteExToIOleInPlaceSite*(x: ptr IOleInPlaceSiteEx): ptr IOleInPlaceSite = cast[ptr IOleInPlaceSite](x) -converter winimConverterIOleInPlaceSiteExToIOleWindow*(x: ptr IOleInPlaceSiteEx): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceSiteExToIUnknown*(x: ptr IOleInPlaceSiteEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleInPlaceSiteWindowlessToIOleInPlaceSiteEx*(x: ptr IOleInPlaceSiteWindowless): ptr IOleInPlaceSiteEx = cast[ptr IOleInPlaceSiteEx](x) -converter winimConverterIOleInPlaceSiteWindowlessToIOleInPlaceSite*(x: ptr IOleInPlaceSiteWindowless): ptr IOleInPlaceSite = cast[ptr IOleInPlaceSite](x) -converter winimConverterIOleInPlaceSiteWindowlessToIOleWindow*(x: ptr IOleInPlaceSiteWindowless): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIOleInPlaceSiteWindowlessToIUnknown*(x: ptr IOleInPlaceSiteWindowless): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewObjectExToIViewObject2*(x: ptr IViewObjectEx): ptr IViewObject2 = cast[ptr IViewObject2](x) -converter winimConverterIViewObjectExToIViewObject*(x: ptr IViewObjectEx): ptr IViewObject = cast[ptr IViewObject](x) -converter winimConverterIViewObjectExToIUnknown*(x: ptr IViewObjectEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUndoUnitToIUnknown*(x: ptr IOleUndoUnit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleParentUndoUnitToIOleUndoUnit*(x: ptr IOleParentUndoUnit): ptr IOleUndoUnit = cast[ptr IOleUndoUnit](x) -converter winimConverterIOleParentUndoUnitToIUnknown*(x: ptr IOleParentUndoUnit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumOleUndoUnitsToIUnknown*(x: ptr IEnumOleUndoUnits): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUndoManagerToIUnknown*(x: ptr IOleUndoManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPointerInactiveToIUnknown*(x: ptr IPointerInactive): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithSiteToIUnknown*(x: ptr IObjectWithSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPerPropertyBrowsingToIUnknown*(x: ptr IPerPropertyBrowsing): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyBag2ToIUnknown*(x: ptr IPropertyBag2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistPropertyBag2ToIPersist*(x: ptr IPersistPropertyBag2): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistPropertyBag2ToIUnknown*(x: ptr IPersistPropertyBag2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAdviseSinkExToIAdviseSink*(x: ptr IAdviseSinkEx): ptr IAdviseSink = cast[ptr IAdviseSink](x) -converter winimConverterIAdviseSinkExToIUnknown*(x: ptr IAdviseSinkEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIQuickActivateToIUnknown*(x: ptr IQuickActivate): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumGUIDToIUnknown*(x: ptr IEnumGUID): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumCATEGORYINFOToIUnknown*(x: ptr IEnumCATEGORYINFO): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICatRegisterToIUnknown*(x: ptr ICatRegister): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICatInformationToIUnknown*(x: ptr ICatInformation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleDocumentToIUnknown*(x: ptr IOleDocument): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleDocumentSiteToIUnknown*(x: ptr IOleDocumentSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleDocumentViewToIUnknown*(x: ptr IOleDocumentView): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumOleDocumentViewsToIUnknown*(x: ptr IEnumOleDocumentViews): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContinueCallbackToIUnknown*(x: ptr IContinueCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPrintToIUnknown*(x: ptr IPrint): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleCommandTargetToIUnknown*(x: ptr IOleCommandTarget): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIZoomEventsToIUnknown*(x: ptr IZoomEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProtectFocusToIUnknown*(x: ptr IProtectFocus): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProtectedModeMenuServicesToIUnknown*(x: ptr IProtectedModeMenuServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebBrowserToIDispatch*(x: ptr IWebBrowser): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebBrowserToIUnknown*(x: ptr IWebBrowser): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDWebBrowserEventsToIDispatch*(x: ptr DWebBrowserEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDWebBrowserEventsToIUnknown*(x: ptr DWebBrowserEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebBrowserAppToIWebBrowser*(x: ptr IWebBrowserApp): ptr IWebBrowser = cast[ptr IWebBrowser](x) -converter winimConverterIWebBrowserAppToIDispatch*(x: ptr IWebBrowserApp): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebBrowserAppToIUnknown*(x: ptr IWebBrowserApp): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebBrowser2ToIWebBrowserApp*(x: ptr IWebBrowser2): ptr IWebBrowserApp = cast[ptr IWebBrowserApp](x) -converter winimConverterIWebBrowser2ToIWebBrowser*(x: ptr IWebBrowser2): ptr IWebBrowser = cast[ptr IWebBrowser](x) -converter winimConverterIWebBrowser2ToIDispatch*(x: ptr IWebBrowser2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebBrowser2ToIUnknown*(x: ptr IWebBrowser2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDWebBrowserEvents2ToIDispatch*(x: ptr DWebBrowserEvents2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDWebBrowserEvents2ToIUnknown*(x: ptr DWebBrowserEvents2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDShellWindowsEventsToIDispatch*(x: ptr DShellWindowsEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDShellWindowsEventsToIUnknown*(x: ptr DShellWindowsEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellWindowsToIDispatch*(x: ptr IShellWindows): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellWindowsToIUnknown*(x: ptr IShellWindows): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellUIHelperToIDispatch*(x: ptr IShellUIHelper): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellUIHelperToIUnknown*(x: ptr IShellUIHelper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellUIHelper2ToIShellUIHelper*(x: ptr IShellUIHelper2): ptr IShellUIHelper = cast[ptr IShellUIHelper](x) -converter winimConverterIShellUIHelper2ToIDispatch*(x: ptr IShellUIHelper2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellUIHelper2ToIUnknown*(x: ptr IShellUIHelper2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDShellNameSpaceEventsToIDispatch*(x: ptr DShellNameSpaceEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDShellNameSpaceEventsToIUnknown*(x: ptr DShellNameSpaceEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFavoritesNameSpaceToIDispatch*(x: ptr IShellFavoritesNameSpace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellFavoritesNameSpaceToIUnknown*(x: ptr IShellFavoritesNameSpace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellNameSpaceToIShellFavoritesNameSpace*(x: ptr IShellNameSpace): ptr IShellFavoritesNameSpace = cast[ptr IShellFavoritesNameSpace](x) -converter winimConverterIShellNameSpaceToIDispatch*(x: ptr IShellNameSpace): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellNameSpaceToIUnknown*(x: ptr IShellNameSpace): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIScriptErrorListToIDispatch*(x: ptr IScriptErrorList): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIScriptErrorListToIUnknown*(x: ptr IScriptErrorList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchToIDispatch*(x: ptr ISearch): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISearchToIUnknown*(x: ptr ISearch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchesToIDispatch*(x: ptr ISearches): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISearchesToIUnknown*(x: ptr ISearches): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchAssistantOCToIDispatch*(x: ptr ISearchAssistantOC): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISearchAssistantOCToIUnknown*(x: ptr ISearchAssistantOC): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchAssistantOC2ToISearchAssistantOC*(x: ptr ISearchAssistantOC2): ptr ISearchAssistantOC = cast[ptr ISearchAssistantOC](x) -converter winimConverterISearchAssistantOC2ToIDispatch*(x: ptr ISearchAssistantOC2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISearchAssistantOC2ToIUnknown*(x: ptr ISearchAssistantOC2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchAssistantOC3ToISearchAssistantOC2*(x: ptr ISearchAssistantOC3): ptr ISearchAssistantOC2 = cast[ptr ISearchAssistantOC2](x) -converter winimConverterISearchAssistantOC3ToISearchAssistantOC*(x: ptr ISearchAssistantOC3): ptr ISearchAssistantOC = cast[ptr ISearchAssistantOC](x) -converter winimConverterISearchAssistantOC3ToIDispatch*(x: ptr ISearchAssistantOC3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterISearchAssistantOC3ToIUnknown*(x: ptr ISearchAssistantOC3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterSearchAssistantEventsToIDispatch*(x: ptr SearchAssistantEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterSearchAssistantEventsToIUnknown*(x: ptr SearchAssistantEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRichChunkToIUnknown*(x: ptr IRichChunk): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIConditionToIPersistStream*(x: ptr ICondition): ptr IPersistStream = cast[ptr IPersistStream](x) -converter winimConverterIConditionToIPersist*(x: ptr ICondition): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIConditionToIUnknown*(x: ptr ICondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICondition2ToICondition*(x: ptr ICondition2): ptr ICondition = cast[ptr ICondition](x) -converter winimConverterICondition2ToIPersistStream*(x: ptr ICondition2): ptr IPersistStream = cast[ptr IPersistStream](x) -converter winimConverterICondition2ToIPersist*(x: ptr ICondition2): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterICondition2ToIUnknown*(x: ptr ICondition2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeWithFileToIUnknown*(x: ptr IInitializeWithFile): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeWithStreamToIUnknown*(x: ptr IInitializeWithStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyStoreToIUnknown*(x: ptr IPropertyStore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINamedPropertyStoreToIUnknown*(x: ptr INamedPropertyStore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithPropertyKeyToIUnknown*(x: ptr IObjectWithPropertyKey): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyChangeToIObjectWithPropertyKey*(x: ptr IPropertyChange): ptr IObjectWithPropertyKey = cast[ptr IObjectWithPropertyKey](x) -converter winimConverterIPropertyChangeToIUnknown*(x: ptr IPropertyChange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyChangeArrayToIUnknown*(x: ptr IPropertyChangeArray): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyStoreCapabilitiesToIUnknown*(x: ptr IPropertyStoreCapabilities): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyStoreCacheToIPropertyStore*(x: ptr IPropertyStoreCache): ptr IPropertyStore = cast[ptr IPropertyStore](x) -converter winimConverterIPropertyStoreCacheToIUnknown*(x: ptr IPropertyStoreCache): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyEnumTypeToIUnknown*(x: ptr IPropertyEnumType): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyEnumType2ToIPropertyEnumType*(x: ptr IPropertyEnumType2): ptr IPropertyEnumType = cast[ptr IPropertyEnumType](x) -converter winimConverterIPropertyEnumType2ToIUnknown*(x: ptr IPropertyEnumType2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyEnumTypeListToIUnknown*(x: ptr IPropertyEnumTypeList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyDescriptionToIUnknown*(x: ptr IPropertyDescription): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyDescription2ToIPropertyDescription*(x: ptr IPropertyDescription2): ptr IPropertyDescription = cast[ptr IPropertyDescription](x) -converter winimConverterIPropertyDescription2ToIUnknown*(x: ptr IPropertyDescription2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyDescriptionAliasInfoToIPropertyDescription*(x: ptr IPropertyDescriptionAliasInfo): ptr IPropertyDescription = cast[ptr IPropertyDescription](x) -converter winimConverterIPropertyDescriptionAliasInfoToIUnknown*(x: ptr IPropertyDescriptionAliasInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyDescriptionSearchInfoToIPropertyDescription*(x: ptr IPropertyDescriptionSearchInfo): ptr IPropertyDescription = cast[ptr IPropertyDescription](x) -converter winimConverterIPropertyDescriptionSearchInfoToIUnknown*(x: ptr IPropertyDescriptionSearchInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyDescriptionRelatedPropertyInfoToIPropertyDescription*(x: ptr IPropertyDescriptionRelatedPropertyInfo): ptr IPropertyDescription = cast[ptr IPropertyDescription](x) -converter winimConverterIPropertyDescriptionRelatedPropertyInfoToIUnknown*(x: ptr IPropertyDescriptionRelatedPropertyInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertySystemToIUnknown*(x: ptr IPropertySystem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyDescriptionListToIUnknown*(x: ptr IPropertyDescriptionList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyStoreFactoryToIUnknown*(x: ptr IPropertyStoreFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDelayedPropertyStoreFactoryToIPropertyStoreFactory*(x: ptr IDelayedPropertyStoreFactory): ptr IPropertyStoreFactory = cast[ptr IPropertyStoreFactory](x) -converter winimConverterIDelayedPropertyStoreFactoryToIUnknown*(x: ptr IDelayedPropertyStoreFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistSerializedPropStorageToIUnknown*(x: ptr IPersistSerializedPropStorage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistSerializedPropStorage2ToIPersistSerializedPropStorage*(x: ptr IPersistSerializedPropStorage2): ptr IPersistSerializedPropStorage = cast[ptr IPersistSerializedPropStorage](x) -converter winimConverterIPersistSerializedPropStorage2ToIUnknown*(x: ptr IPersistSerializedPropStorage2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertySystemChangeNotifyToIUnknown*(x: ptr IPropertySystemChangeNotify): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICreateObjectToIUnknown*(x: ptr ICreateObject): ptr IUnknown = cast[ptr IUnknown](x) +proc PSRegisterPropertySchema*( + pszPath: PCWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSSetPropertyValue*( + pps: ptr IPropertyStore, ppd: ptr IPropertyDescription, propvar: REFPROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSStringFromPropertyKey*( + pkey: REFPROPERTYKEY, psz: LPWSTR, cch: UINT +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc PSUnregisterPropertySchema*( + pszPath: PCWSTR +): HRESULT {.winapi, stdcall, dynlib: "propsys", importc.} + +proc VarUI4FromUI4*(ulIn: ULONG, pulOut: ptr ULONG): HRESULT {.winapi, inline.} = + pulOut[] = ulIn + +proc VarI4FromI4*(lIn: LONG, plOut: ptr LONG): HRESULT {.winapi, inline.} = + plOut[] = lIn + +proc VarUI8FromUI8*(ui64In: ULONG64, pi64Out: ptr ULONG64): HRESULT {.winapi, inline.} = + pi64Out[] = ui64In + +proc VarI8FromI8*(i64In: LONG64, pi64Out: ptr LONG64): HRESULT {.winapi, inline.} = + pi64Out[] = i64In + +proc `Lo=`*(self: var CY, x: int32) {.inline.} = + self.struct1.Lo = x + +proc Lo*(self: CY): int32 {.inline.} = + self.struct1.Lo + +proc Lo*(self: var CY): var int32 {.inline.} = + self.struct1.Lo + +proc `Hi=`*(self: var CY, x: int32) {.inline.} = + self.struct1.Hi = x + +proc Hi*(self: CY): int32 {.inline.} = + self.struct1.Hi + +proc Hi*(self: var CY): var int32 {.inline.} = + self.struct1.Hi + +proc `scale=`*(self: var DECIMAL, x: BYTE) {.inline.} = + self.union1.struct1.scale = x + +proc scale*(self: DECIMAL): BYTE {.inline.} = + self.union1.struct1.scale + +proc scale*(self: var DECIMAL): var BYTE {.inline.} = + self.union1.struct1.scale + +proc `sign=`*(self: var DECIMAL, x: BYTE) {.inline.} = + self.union1.struct1.sign = x + +proc sign*(self: DECIMAL): BYTE {.inline.} = + self.union1.struct1.sign + +proc sign*(self: var DECIMAL): var BYTE {.inline.} = + self.union1.struct1.sign + +proc `signscale=`*(self: var DECIMAL, x: USHORT) {.inline.} = + self.union1.signscale = x + +proc signscale*(self: DECIMAL): USHORT {.inline.} = + self.union1.signscale + +proc signscale*(self: var DECIMAL): var USHORT {.inline.} = + self.union1.signscale + +proc `Lo32=`*(self: var DECIMAL, x: ULONG) {.inline.} = + self.union2.struct1.Lo32 = x + +proc Lo32*(self: DECIMAL): ULONG {.inline.} = + self.union2.struct1.Lo32 + +proc Lo32*(self: var DECIMAL): var ULONG {.inline.} = + self.union2.struct1.Lo32 + +proc `Mid32=`*(self: var DECIMAL, x: ULONG) {.inline.} = + self.union2.struct1.Mid32 = x + +proc Mid32*(self: DECIMAL): ULONG {.inline.} = + self.union2.struct1.Mid32 + +proc Mid32*(self: var DECIMAL): var ULONG {.inline.} = + self.union2.struct1.Mid32 + +proc `Lo64=`*(self: var DECIMAL, x: ULONGLONG) {.inline.} = + self.union2.Lo64 = x + +proc Lo64*(self: DECIMAL): ULONGLONG {.inline.} = + self.union2.Lo64 + +proc Lo64*(self: var DECIMAL): var ULONGLONG {.inline.} = + self.union2.Lo64 + +proc `tymed=`*(self: var userSTGMEDIUM, x: DWORD) {.inline.} = + self.struct1.tymed = x + +proc tymed*(self: userSTGMEDIUM): DWORD {.inline.} = + self.struct1.tymed + +proc tymed*(self: var userSTGMEDIUM): var DWORD {.inline.} = + self.struct1.tymed + +proc `u=`*(self: var userSTGMEDIUM, x: userSTGMEDIUM_STRUCT1_u) {.inline.} = + self.struct1.u = x + +proc u*(self: userSTGMEDIUM): userSTGMEDIUM_STRUCT1_u {.inline.} = + self.struct1.u + +proc u*(self: var userSTGMEDIUM): var userSTGMEDIUM_STRUCT1_u {.inline.} = + self.struct1.u + +proc `vt=`*(self: var VARIANT, x: VARTYPE) {.inline.} = + self.union1.struct1.vt = x + +proc vt*(self: VARIANT): VARTYPE {.inline.} = + self.union1.struct1.vt + +proc vt*(self: var VARIANT): var VARTYPE {.inline.} = + self.union1.struct1.vt + +proc `wReserved1=`*(self: var VARIANT, x: WORD) {.inline.} = + self.union1.struct1.wReserved1 = x + +proc wReserved1*(self: VARIANT): WORD {.inline.} = + self.union1.struct1.wReserved1 + +proc wReserved1*(self: var VARIANT): var WORD {.inline.} = + self.union1.struct1.wReserved1 + +proc `wReserved2=`*(self: var VARIANT, x: WORD) {.inline.} = + self.union1.struct1.wReserved2 = x + +proc wReserved2*(self: VARIANT): WORD {.inline.} = + self.union1.struct1.wReserved2 + +proc wReserved2*(self: var VARIANT): var WORD {.inline.} = + self.union1.struct1.wReserved2 + +proc `wReserved3=`*(self: var VARIANT, x: WORD) {.inline.} = + self.union1.struct1.wReserved3 = x + +proc wReserved3*(self: VARIANT): WORD {.inline.} = + self.union1.struct1.wReserved3 + +proc wReserved3*(self: var VARIANT): var WORD {.inline.} = + self.union1.struct1.wReserved3 + +proc `llVal=`*(self: var VARIANT, x: LONGLONG) {.inline.} = + self.union1.struct1.union1.llVal = x + +proc llVal*(self: VARIANT): LONGLONG {.inline.} = + self.union1.struct1.union1.llVal + +proc llVal*(self: var VARIANT): var LONGLONG {.inline.} = + self.union1.struct1.union1.llVal + +proc `lVal=`*(self: var VARIANT, x: LONG) {.inline.} = + self.union1.struct1.union1.lVal = x + +proc lVal*(self: VARIANT): LONG {.inline.} = + self.union1.struct1.union1.lVal + +proc lVal*(self: var VARIANT): var LONG {.inline.} = + self.union1.struct1.union1.lVal + +proc `bVal=`*(self: var VARIANT, x: BYTE) {.inline.} = + self.union1.struct1.union1.bVal = x + +proc bVal*(self: VARIANT): BYTE {.inline.} = + self.union1.struct1.union1.bVal + +proc bVal*(self: var VARIANT): var BYTE {.inline.} = + self.union1.struct1.union1.bVal + +proc `iVal=`*(self: var VARIANT, x: SHORT) {.inline.} = + self.union1.struct1.union1.iVal = x + +proc iVal*(self: VARIANT): SHORT {.inline.} = + self.union1.struct1.union1.iVal + +proc iVal*(self: var VARIANT): var SHORT {.inline.} = + self.union1.struct1.union1.iVal + +proc `fltVal=`*(self: var VARIANT, x: FLOAT) {.inline.} = + self.union1.struct1.union1.fltVal = x + +proc fltVal*(self: VARIANT): FLOAT {.inline.} = + self.union1.struct1.union1.fltVal + +proc fltVal*(self: var VARIANT): var FLOAT {.inline.} = + self.union1.struct1.union1.fltVal + +proc `dblVal=`*(self: var VARIANT, x: DOUBLE) {.inline.} = + self.union1.struct1.union1.dblVal = x + +proc dblVal*(self: VARIANT): DOUBLE {.inline.} = + self.union1.struct1.union1.dblVal + +proc dblVal*(self: var VARIANT): var DOUBLE {.inline.} = + self.union1.struct1.union1.dblVal + +proc `boolVal=`*(self: var VARIANT, x: VARIANT_BOOL) {.inline.} = + self.union1.struct1.union1.boolVal = x + +proc boolVal*(self: VARIANT): VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.boolVal + +proc boolVal*(self: var VARIANT): var VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.boolVal + +proc `scode=`*(self: var VARIANT, x: SCODE) {.inline.} = + self.union1.struct1.union1.scode = x + +proc scode*(self: VARIANT): SCODE {.inline.} = + self.union1.struct1.union1.scode + +proc scode*(self: var VARIANT): var SCODE {.inline.} = + self.union1.struct1.union1.scode + +proc `cyVal=`*(self: var VARIANT, x: CY) {.inline.} = + self.union1.struct1.union1.cyVal = x + +proc cyVal*(self: VARIANT): CY {.inline.} = + self.union1.struct1.union1.cyVal + +proc cyVal*(self: var VARIANT): var CY {.inline.} = + self.union1.struct1.union1.cyVal + +proc `date=`*(self: var VARIANT, x: DATE) {.inline.} = + self.union1.struct1.union1.date = x + +proc date*(self: VARIANT): DATE {.inline.} = + self.union1.struct1.union1.date + +proc date*(self: var VARIANT): var DATE {.inline.} = + self.union1.struct1.union1.date + +proc `bstrVal=`*(self: var VARIANT, x: BSTR) {.inline.} = + self.union1.struct1.union1.bstrVal = x + +proc bstrVal*(self: VARIANT): BSTR {.inline.} = + self.union1.struct1.union1.bstrVal + +proc bstrVal*(self: var VARIANT): var BSTR {.inline.} = + self.union1.struct1.union1.bstrVal + +proc `punkVal=`*(self: var VARIANT, x: ptr IUnknown) {.inline.} = + self.union1.struct1.union1.punkVal = x + +proc punkVal*(self: VARIANT): ptr IUnknown {.inline.} = + self.union1.struct1.union1.punkVal + +proc punkVal*(self: var VARIANT): var ptr IUnknown {.inline.} = + self.union1.struct1.union1.punkVal + +proc `pdispVal=`*(self: var VARIANT, x: ptr IDispatch) {.inline.} = + self.union1.struct1.union1.pdispVal = x + +proc pdispVal*(self: VARIANT): ptr IDispatch {.inline.} = + self.union1.struct1.union1.pdispVal + +proc pdispVal*(self: var VARIANT): var ptr IDispatch {.inline.} = + self.union1.struct1.union1.pdispVal + +proc `parray=`*(self: var VARIANT, x: ptr SAFEARRAY) {.inline.} = + self.union1.struct1.union1.parray = x + +proc parray*(self: VARIANT): ptr SAFEARRAY {.inline.} = + self.union1.struct1.union1.parray + +proc parray*(self: var VARIANT): var ptr SAFEARRAY {.inline.} = + self.union1.struct1.union1.parray + +proc `pbVal=`*(self: var VARIANT, x: ptr BYTE) {.inline.} = + self.union1.struct1.union1.pbVal = x + +proc pbVal*(self: VARIANT): ptr BYTE {.inline.} = + self.union1.struct1.union1.pbVal + +proc pbVal*(self: var VARIANT): var ptr BYTE {.inline.} = + self.union1.struct1.union1.pbVal + +proc `piVal=`*(self: var VARIANT, x: ptr SHORT) {.inline.} = + self.union1.struct1.union1.piVal = x + +proc piVal*(self: VARIANT): ptr SHORT {.inline.} = + self.union1.struct1.union1.piVal + +proc piVal*(self: var VARIANT): var ptr SHORT {.inline.} = + self.union1.struct1.union1.piVal + +proc `plVal=`*(self: var VARIANT, x: ptr LONG) {.inline.} = + self.union1.struct1.union1.plVal = x + +proc plVal*(self: VARIANT): ptr LONG {.inline.} = + self.union1.struct1.union1.plVal + +proc plVal*(self: var VARIANT): var ptr LONG {.inline.} = + self.union1.struct1.union1.plVal + +proc `pllVal=`*(self: var VARIANT, x: ptr LONGLONG) {.inline.} = + self.union1.struct1.union1.pllVal = x + +proc pllVal*(self: VARIANT): ptr LONGLONG {.inline.} = + self.union1.struct1.union1.pllVal + +proc pllVal*(self: var VARIANT): var ptr LONGLONG {.inline.} = + self.union1.struct1.union1.pllVal + +proc `pfltVal=`*(self: var VARIANT, x: ptr FLOAT) {.inline.} = + self.union1.struct1.union1.pfltVal = x + +proc pfltVal*(self: VARIANT): ptr FLOAT {.inline.} = + self.union1.struct1.union1.pfltVal + +proc pfltVal*(self: var VARIANT): var ptr FLOAT {.inline.} = + self.union1.struct1.union1.pfltVal + +proc `pdblVal=`*(self: var VARIANT, x: ptr DOUBLE) {.inline.} = + self.union1.struct1.union1.pdblVal = x + +proc pdblVal*(self: VARIANT): ptr DOUBLE {.inline.} = + self.union1.struct1.union1.pdblVal + +proc pdblVal*(self: var VARIANT): var ptr DOUBLE {.inline.} = + self.union1.struct1.union1.pdblVal + +proc `pboolVal=`*(self: var VARIANT, x: ptr VARIANT_BOOL) {.inline.} = + self.union1.struct1.union1.pboolVal = x + +proc pboolVal*(self: VARIANT): ptr VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.pboolVal + +proc pboolVal*(self: var VARIANT): var ptr VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.pboolVal + +proc `pscode=`*(self: var VARIANT, x: ptr SCODE) {.inline.} = + self.union1.struct1.union1.pscode = x + +proc pscode*(self: VARIANT): ptr SCODE {.inline.} = + self.union1.struct1.union1.pscode + +proc pscode*(self: var VARIANT): var ptr SCODE {.inline.} = + self.union1.struct1.union1.pscode + +proc `pcyVal=`*(self: var VARIANT, x: ptr CY) {.inline.} = + self.union1.struct1.union1.pcyVal = x + +proc pcyVal*(self: VARIANT): ptr CY {.inline.} = + self.union1.struct1.union1.pcyVal + +proc pcyVal*(self: var VARIANT): var ptr CY {.inline.} = + self.union1.struct1.union1.pcyVal + +proc `pdate=`*(self: var VARIANT, x: ptr DATE) {.inline.} = + self.union1.struct1.union1.pdate = x + +proc pdate*(self: VARIANT): ptr DATE {.inline.} = + self.union1.struct1.union1.pdate + +proc pdate*(self: var VARIANT): var ptr DATE {.inline.} = + self.union1.struct1.union1.pdate + +proc `pbstrVal=`*(self: var VARIANT, x: ptr BSTR) {.inline.} = + self.union1.struct1.union1.pbstrVal = x + +proc pbstrVal*(self: VARIANT): ptr BSTR {.inline.} = + self.union1.struct1.union1.pbstrVal + +proc pbstrVal*(self: var VARIANT): var ptr BSTR {.inline.} = + self.union1.struct1.union1.pbstrVal + +proc `ppunkVal=`*(self: var VARIANT, x: ptr ptr IUnknown) {.inline.} = + self.union1.struct1.union1.ppunkVal = x + +proc ppunkVal*(self: VARIANT): ptr ptr IUnknown {.inline.} = + self.union1.struct1.union1.ppunkVal + +proc ppunkVal*(self: var VARIANT): var ptr ptr IUnknown {.inline.} = + self.union1.struct1.union1.ppunkVal + +proc `ppdispVal=`*(self: var VARIANT, x: ptr ptr IDispatch) {.inline.} = + self.union1.struct1.union1.ppdispVal = x + +proc ppdispVal*(self: VARIANT): ptr ptr IDispatch {.inline.} = + self.union1.struct1.union1.ppdispVal + +proc ppdispVal*(self: var VARIANT): var ptr ptr IDispatch {.inline.} = + self.union1.struct1.union1.ppdispVal + +proc `pparray=`*(self: var VARIANT, x: ptr ptr SAFEARRAY) {.inline.} = + self.union1.struct1.union1.pparray = x + +proc pparray*(self: VARIANT): ptr ptr SAFEARRAY {.inline.} = + self.union1.struct1.union1.pparray + +proc pparray*(self: var VARIANT): var ptr ptr SAFEARRAY {.inline.} = + self.union1.struct1.union1.pparray + +proc `pvarVal=`*(self: var VARIANT, x: ptr VARIANT) {.inline.} = + self.union1.struct1.union1.pvarVal = x + +proc pvarVal*(self: VARIANT): ptr VARIANT {.inline.} = + self.union1.struct1.union1.pvarVal + +proc pvarVal*(self: var VARIANT): var ptr VARIANT {.inline.} = + self.union1.struct1.union1.pvarVal + +proc `byref=`*(self: var VARIANT, x: PVOID) {.inline.} = + self.union1.struct1.union1.byref = x + +proc byref*(self: VARIANT): PVOID {.inline.} = + self.union1.struct1.union1.byref + +proc byref*(self: var VARIANT): var PVOID {.inline.} = + self.union1.struct1.union1.byref + +proc `cVal=`*(self: var VARIANT, x: CHAR) {.inline.} = + self.union1.struct1.union1.cVal = x + +proc cVal*(self: VARIANT): CHAR {.inline.} = + self.union1.struct1.union1.cVal + +proc cVal*(self: var VARIANT): var CHAR {.inline.} = + self.union1.struct1.union1.cVal + +proc `uiVal=`*(self: var VARIANT, x: USHORT) {.inline.} = + self.union1.struct1.union1.uiVal = x + +proc uiVal*(self: VARIANT): USHORT {.inline.} = + self.union1.struct1.union1.uiVal + +proc uiVal*(self: var VARIANT): var USHORT {.inline.} = + self.union1.struct1.union1.uiVal + +proc `ulVal=`*(self: var VARIANT, x: ULONG) {.inline.} = + self.union1.struct1.union1.ulVal = x + +proc ulVal*(self: VARIANT): ULONG {.inline.} = + self.union1.struct1.union1.ulVal + +proc ulVal*(self: var VARIANT): var ULONG {.inline.} = + self.union1.struct1.union1.ulVal + +proc `ullVal=`*(self: var VARIANT, x: ULONGLONG) {.inline.} = + self.union1.struct1.union1.ullVal = x + +proc ullVal*(self: VARIANT): ULONGLONG {.inline.} = + self.union1.struct1.union1.ullVal + +proc ullVal*(self: var VARIANT): var ULONGLONG {.inline.} = + self.union1.struct1.union1.ullVal + +proc `intVal=`*(self: var VARIANT, x: INT) {.inline.} = + self.union1.struct1.union1.intVal = x + +proc intVal*(self: VARIANT): INT {.inline.} = + self.union1.struct1.union1.intVal + +proc intVal*(self: var VARIANT): var INT {.inline.} = + self.union1.struct1.union1.intVal + +proc `uintVal=`*(self: var VARIANT, x: UINT) {.inline.} = + self.union1.struct1.union1.uintVal = x + +proc uintVal*(self: VARIANT): UINT {.inline.} = + self.union1.struct1.union1.uintVal + +proc uintVal*(self: var VARIANT): var UINT {.inline.} = + self.union1.struct1.union1.uintVal + +proc `pdecVal=`*(self: var VARIANT, x: ptr DECIMAL) {.inline.} = + self.union1.struct1.union1.pdecVal = x + +proc pdecVal*(self: VARIANT): ptr DECIMAL {.inline.} = + self.union1.struct1.union1.pdecVal + +proc pdecVal*(self: var VARIANT): var ptr DECIMAL {.inline.} = + self.union1.struct1.union1.pdecVal + +proc `pcVal=`*(self: var VARIANT, x: ptr CHAR) {.inline.} = + self.union1.struct1.union1.pcVal = x + +proc pcVal*(self: VARIANT): ptr CHAR {.inline.} = + self.union1.struct1.union1.pcVal + +proc pcVal*(self: var VARIANT): var ptr CHAR {.inline.} = + self.union1.struct1.union1.pcVal + +proc `puiVal=`*(self: var VARIANT, x: ptr USHORT) {.inline.} = + self.union1.struct1.union1.puiVal = x + +proc puiVal*(self: VARIANT): ptr USHORT {.inline.} = + self.union1.struct1.union1.puiVal + +proc puiVal*(self: var VARIANT): var ptr USHORT {.inline.} = + self.union1.struct1.union1.puiVal + +proc `pulVal=`*(self: var VARIANT, x: ptr ULONG) {.inline.} = + self.union1.struct1.union1.pulVal = x + +proc pulVal*(self: VARIANT): ptr ULONG {.inline.} = + self.union1.struct1.union1.pulVal + +proc pulVal*(self: var VARIANT): var ptr ULONG {.inline.} = + self.union1.struct1.union1.pulVal + +proc `pullVal=`*(self: var VARIANT, x: ptr ULONGLONG) {.inline.} = + self.union1.struct1.union1.pullVal = x + +proc pullVal*(self: VARIANT): ptr ULONGLONG {.inline.} = + self.union1.struct1.union1.pullVal + +proc pullVal*(self: var VARIANT): var ptr ULONGLONG {.inline.} = + self.union1.struct1.union1.pullVal + +proc `pintVal=`*(self: var VARIANT, x: ptr INT) {.inline.} = + self.union1.struct1.union1.pintVal = x + +proc pintVal*(self: VARIANT): ptr INT {.inline.} = + self.union1.struct1.union1.pintVal + +proc pintVal*(self: var VARIANT): var ptr INT {.inline.} = + self.union1.struct1.union1.pintVal + +proc `puintVal=`*(self: var VARIANT, x: ptr UINT) {.inline.} = + self.union1.struct1.union1.puintVal = x + +proc puintVal*(self: VARIANT): ptr UINT {.inline.} = + self.union1.struct1.union1.puintVal + +proc puintVal*(self: var VARIANT): var ptr UINT {.inline.} = + self.union1.struct1.union1.puintVal + +proc `pvRecord=`*(self: var VARIANT, x: PVOID) {.inline.} = + self.union1.struct1.union1.struct1.pvRecord = x + +proc pvRecord*(self: VARIANT): PVOID {.inline.} = + self.union1.struct1.union1.struct1.pvRecord + +proc pvRecord*(self: var VARIANT): var PVOID {.inline.} = + self.union1.struct1.union1.struct1.pvRecord + +proc `pRecInfo=`*(self: var VARIANT, x: ptr IRecordInfo) {.inline.} = + self.union1.struct1.union1.struct1.pRecInfo = x + +proc pRecInfo*(self: VARIANT): ptr IRecordInfo {.inline.} = + self.union1.struct1.union1.struct1.pRecInfo + +proc pRecInfo*(self: var VARIANT): var ptr IRecordInfo {.inline.} = + self.union1.struct1.union1.struct1.pRecInfo + +proc `decVal=`*(self: var VARIANT, x: DECIMAL) {.inline.} = + self.union1.decVal = x + +proc decVal*(self: VARIANT): DECIMAL {.inline.} = + self.union1.decVal + +proc decVal*(self: var VARIANT): var DECIMAL {.inline.} = + self.union1.decVal + +proc `llVal=`*(self: var wireVARIANT, x: LONGLONG) {.inline.} = + self.union1.llVal = x + +proc llVal*(self: wireVARIANT): LONGLONG {.inline.} = + self.union1.llVal + +proc llVal*(self: var wireVARIANT): var LONGLONG {.inline.} = + self.union1.llVal + +proc `lVal=`*(self: var wireVARIANT, x: LONG) {.inline.} = + self.union1.lVal = x + +proc lVal*(self: wireVARIANT): LONG {.inline.} = + self.union1.lVal + +proc lVal*(self: var wireVARIANT): var LONG {.inline.} = + self.union1.lVal + +proc `bVal=`*(self: var wireVARIANT, x: BYTE) {.inline.} = + self.union1.bVal = x + +proc bVal*(self: wireVARIANT): BYTE {.inline.} = + self.union1.bVal + +proc bVal*(self: var wireVARIANT): var BYTE {.inline.} = + self.union1.bVal + +proc `iVal=`*(self: var wireVARIANT, x: SHORT) {.inline.} = + self.union1.iVal = x + +proc iVal*(self: wireVARIANT): SHORT {.inline.} = + self.union1.iVal + +proc iVal*(self: var wireVARIANT): var SHORT {.inline.} = + self.union1.iVal + +proc `fltVal=`*(self: var wireVARIANT, x: FLOAT) {.inline.} = + self.union1.fltVal = x + +proc fltVal*(self: wireVARIANT): FLOAT {.inline.} = + self.union1.fltVal + +proc fltVal*(self: var wireVARIANT): var FLOAT {.inline.} = + self.union1.fltVal + +proc `dblVal=`*(self: var wireVARIANT, x: DOUBLE) {.inline.} = + self.union1.dblVal = x + +proc dblVal*(self: wireVARIANT): DOUBLE {.inline.} = + self.union1.dblVal + +proc dblVal*(self: var wireVARIANT): var DOUBLE {.inline.} = + self.union1.dblVal + +proc `boolVal=`*(self: var wireVARIANT, x: VARIANT_BOOL) {.inline.} = + self.union1.boolVal = x + +proc boolVal*(self: wireVARIANT): VARIANT_BOOL {.inline.} = + self.union1.boolVal + +proc boolVal*(self: var wireVARIANT): var VARIANT_BOOL {.inline.} = + self.union1.boolVal + +proc `scode=`*(self: var wireVARIANT, x: SCODE) {.inline.} = + self.union1.scode = x + +proc scode*(self: wireVARIANT): SCODE {.inline.} = + self.union1.scode + +proc scode*(self: var wireVARIANT): var SCODE {.inline.} = + self.union1.scode + +proc `cyVal=`*(self: var wireVARIANT, x: CY) {.inline.} = + self.union1.cyVal = x + +proc cyVal*(self: wireVARIANT): CY {.inline.} = + self.union1.cyVal + +proc cyVal*(self: var wireVARIANT): var CY {.inline.} = + self.union1.cyVal + +proc `date=`*(self: var wireVARIANT, x: DATE) {.inline.} = + self.union1.date = x + +proc date*(self: wireVARIANT): DATE {.inline.} = + self.union1.date + +proc date*(self: var wireVARIANT): var DATE {.inline.} = + self.union1.date + +proc `bstrVal=`*(self: var wireVARIANT, x: wireBSTR) {.inline.} = + self.union1.bstrVal = x + +proc bstrVal*(self: wireVARIANT): wireBSTR {.inline.} = + self.union1.bstrVal + +proc bstrVal*(self: var wireVARIANT): var wireBSTR {.inline.} = + self.union1.bstrVal + +proc `punkVal=`*(self: var wireVARIANT, x: ptr IUnknown) {.inline.} = + self.union1.punkVal = x + +proc punkVal*(self: wireVARIANT): ptr IUnknown {.inline.} = + self.union1.punkVal + +proc punkVal*(self: var wireVARIANT): var ptr IUnknown {.inline.} = + self.union1.punkVal + +proc `pdispVal=`*(self: var wireVARIANT, x: ptr IDispatch) {.inline.} = + self.union1.pdispVal = x + +proc pdispVal*(self: wireVARIANT): ptr IDispatch {.inline.} = + self.union1.pdispVal + +proc pdispVal*(self: var wireVARIANT): var ptr IDispatch {.inline.} = + self.union1.pdispVal + +proc `parray=`*(self: var wireVARIANT, x: wirePSAFEARRAY) {.inline.} = + self.union1.parray = x + +proc parray*(self: wireVARIANT): wirePSAFEARRAY {.inline.} = + self.union1.parray + +proc parray*(self: var wireVARIANT): var wirePSAFEARRAY {.inline.} = + self.union1.parray + +proc `brecVal=`*(self: var wireVARIANT, x: wireBRECORD) {.inline.} = + self.union1.brecVal = x + +proc brecVal*(self: wireVARIANT): wireBRECORD {.inline.} = + self.union1.brecVal + +proc brecVal*(self: var wireVARIANT): var wireBRECORD {.inline.} = + self.union1.brecVal + +proc `pbVal=`*(self: var wireVARIANT, x: ptr BYTE) {.inline.} = + self.union1.pbVal = x + +proc pbVal*(self: wireVARIANT): ptr BYTE {.inline.} = + self.union1.pbVal + +proc pbVal*(self: var wireVARIANT): var ptr BYTE {.inline.} = + self.union1.pbVal + +proc `piVal=`*(self: var wireVARIANT, x: ptr SHORT) {.inline.} = + self.union1.piVal = x + +proc piVal*(self: wireVARIANT): ptr SHORT {.inline.} = + self.union1.piVal + +proc piVal*(self: var wireVARIANT): var ptr SHORT {.inline.} = + self.union1.piVal + +proc `plVal=`*(self: var wireVARIANT, x: ptr LONG) {.inline.} = + self.union1.plVal = x + +proc plVal*(self: wireVARIANT): ptr LONG {.inline.} = + self.union1.plVal + +proc plVal*(self: var wireVARIANT): var ptr LONG {.inline.} = + self.union1.plVal + +proc `pllVal=`*(self: var wireVARIANT, x: ptr LONGLONG) {.inline.} = + self.union1.pllVal = x + +proc pllVal*(self: wireVARIANT): ptr LONGLONG {.inline.} = + self.union1.pllVal + +proc pllVal*(self: var wireVARIANT): var ptr LONGLONG {.inline.} = + self.union1.pllVal + +proc `pfltVal=`*(self: var wireVARIANT, x: ptr FLOAT) {.inline.} = + self.union1.pfltVal = x + +proc pfltVal*(self: wireVARIANT): ptr FLOAT {.inline.} = + self.union1.pfltVal + +proc pfltVal*(self: var wireVARIANT): var ptr FLOAT {.inline.} = + self.union1.pfltVal + +proc `pdblVal=`*(self: var wireVARIANT, x: ptr DOUBLE) {.inline.} = + self.union1.pdblVal = x + +proc pdblVal*(self: wireVARIANT): ptr DOUBLE {.inline.} = + self.union1.pdblVal + +proc pdblVal*(self: var wireVARIANT): var ptr DOUBLE {.inline.} = + self.union1.pdblVal + +proc `pboolVal=`*(self: var wireVARIANT, x: ptr VARIANT_BOOL) {.inline.} = + self.union1.pboolVal = x + +proc pboolVal*(self: wireVARIANT): ptr VARIANT_BOOL {.inline.} = + self.union1.pboolVal + +proc pboolVal*(self: var wireVARIANT): var ptr VARIANT_BOOL {.inline.} = + self.union1.pboolVal + +proc `pscode=`*(self: var wireVARIANT, x: ptr SCODE) {.inline.} = + self.union1.pscode = x + +proc pscode*(self: wireVARIANT): ptr SCODE {.inline.} = + self.union1.pscode + +proc pscode*(self: var wireVARIANT): var ptr SCODE {.inline.} = + self.union1.pscode + +proc `pcyVal=`*(self: var wireVARIANT, x: ptr CY) {.inline.} = + self.union1.pcyVal = x + +proc pcyVal*(self: wireVARIANT): ptr CY {.inline.} = + self.union1.pcyVal + +proc pcyVal*(self: var wireVARIANT): var ptr CY {.inline.} = + self.union1.pcyVal + +proc `pdate=`*(self: var wireVARIANT, x: ptr DATE) {.inline.} = + self.union1.pdate = x + +proc pdate*(self: wireVARIANT): ptr DATE {.inline.} = + self.union1.pdate + +proc pdate*(self: var wireVARIANT): var ptr DATE {.inline.} = + self.union1.pdate + +proc `pbstrVal=`*(self: var wireVARIANT, x: ptr wireBSTR) {.inline.} = + self.union1.pbstrVal = x + +proc pbstrVal*(self: wireVARIANT): ptr wireBSTR {.inline.} = + self.union1.pbstrVal + +proc pbstrVal*(self: var wireVARIANT): var ptr wireBSTR {.inline.} = + self.union1.pbstrVal + +proc `ppunkVal=`*(self: var wireVARIANT, x: ptr ptr IUnknown) {.inline.} = + self.union1.ppunkVal = x + +proc ppunkVal*(self: wireVARIANT): ptr ptr IUnknown {.inline.} = + self.union1.ppunkVal + +proc ppunkVal*(self: var wireVARIANT): var ptr ptr IUnknown {.inline.} = + self.union1.ppunkVal + +proc `ppdispVal=`*(self: var wireVARIANT, x: ptr ptr IDispatch) {.inline.} = + self.union1.ppdispVal = x + +proc ppdispVal*(self: wireVARIANT): ptr ptr IDispatch {.inline.} = + self.union1.ppdispVal + +proc ppdispVal*(self: var wireVARIANT): var ptr ptr IDispatch {.inline.} = + self.union1.ppdispVal + +proc `pparray=`*(self: var wireVARIANT, x: ptr wirePSAFEARRAY) {.inline.} = + self.union1.pparray = x + +proc pparray*(self: wireVARIANT): ptr wirePSAFEARRAY {.inline.} = + self.union1.pparray + +proc pparray*(self: var wireVARIANT): var ptr wirePSAFEARRAY {.inline.} = + self.union1.pparray + +proc `pvarVal=`*(self: var wireVARIANT, x: ptr wireVARIANT) {.inline.} = + self.union1.pvarVal = x + +proc pvarVal*(self: wireVARIANT): ptr wireVARIANT {.inline.} = + self.union1.pvarVal + +proc pvarVal*(self: var wireVARIANT): var ptr wireVARIANT {.inline.} = + self.union1.pvarVal + +proc `cVal=`*(self: var wireVARIANT, x: CHAR) {.inline.} = + self.union1.cVal = x + +proc cVal*(self: wireVARIANT): CHAR {.inline.} = + self.union1.cVal + +proc cVal*(self: var wireVARIANT): var CHAR {.inline.} = + self.union1.cVal + +proc `uiVal=`*(self: var wireVARIANT, x: USHORT) {.inline.} = + self.union1.uiVal = x + +proc uiVal*(self: wireVARIANT): USHORT {.inline.} = + self.union1.uiVal + +proc uiVal*(self: var wireVARIANT): var USHORT {.inline.} = + self.union1.uiVal + +proc `ulVal=`*(self: var wireVARIANT, x: ULONG) {.inline.} = + self.union1.ulVal = x + +proc ulVal*(self: wireVARIANT): ULONG {.inline.} = + self.union1.ulVal + +proc ulVal*(self: var wireVARIANT): var ULONG {.inline.} = + self.union1.ulVal + +proc `ullVal=`*(self: var wireVARIANT, x: ULONGLONG) {.inline.} = + self.union1.ullVal = x + +proc ullVal*(self: wireVARIANT): ULONGLONG {.inline.} = + self.union1.ullVal + +proc ullVal*(self: var wireVARIANT): var ULONGLONG {.inline.} = + self.union1.ullVal + +proc `intVal=`*(self: var wireVARIANT, x: INT) {.inline.} = + self.union1.intVal = x + +proc intVal*(self: wireVARIANT): INT {.inline.} = + self.union1.intVal + +proc intVal*(self: var wireVARIANT): var INT {.inline.} = + self.union1.intVal + +proc `uintVal=`*(self: var wireVARIANT, x: UINT) {.inline.} = + self.union1.uintVal = x + +proc uintVal*(self: wireVARIANT): UINT {.inline.} = + self.union1.uintVal + +proc uintVal*(self: var wireVARIANT): var UINT {.inline.} = + self.union1.uintVal + +proc `decVal=`*(self: var wireVARIANT, x: DECIMAL) {.inline.} = + self.union1.decVal = x + +proc decVal*(self: wireVARIANT): DECIMAL {.inline.} = + self.union1.decVal + +proc decVal*(self: var wireVARIANT): var DECIMAL {.inline.} = + self.union1.decVal + +proc `pdecVal=`*(self: var wireVARIANT, x: ptr DECIMAL) {.inline.} = + self.union1.pdecVal = x + +proc pdecVal*(self: wireVARIANT): ptr DECIMAL {.inline.} = + self.union1.pdecVal + +proc pdecVal*(self: var wireVARIANT): var ptr DECIMAL {.inline.} = + self.union1.pdecVal + +proc `pcVal=`*(self: var wireVARIANT, x: ptr CHAR) {.inline.} = + self.union1.pcVal = x + +proc pcVal*(self: wireVARIANT): ptr CHAR {.inline.} = + self.union1.pcVal + +proc pcVal*(self: var wireVARIANT): var ptr CHAR {.inline.} = + self.union1.pcVal + +proc `puiVal=`*(self: var wireVARIANT, x: ptr USHORT) {.inline.} = + self.union1.puiVal = x + +proc puiVal*(self: wireVARIANT): ptr USHORT {.inline.} = + self.union1.puiVal + +proc puiVal*(self: var wireVARIANT): var ptr USHORT {.inline.} = + self.union1.puiVal + +proc `pulVal=`*(self: var wireVARIANT, x: ptr ULONG) {.inline.} = + self.union1.pulVal = x + +proc pulVal*(self: wireVARIANT): ptr ULONG {.inline.} = + self.union1.pulVal + +proc pulVal*(self: var wireVARIANT): var ptr ULONG {.inline.} = + self.union1.pulVal + +proc `pullVal=`*(self: var wireVARIANT, x: ptr ULONGLONG) {.inline.} = + self.union1.pullVal = x + +proc pullVal*(self: wireVARIANT): ptr ULONGLONG {.inline.} = + self.union1.pullVal + +proc pullVal*(self: var wireVARIANT): var ptr ULONGLONG {.inline.} = + self.union1.pullVal + +proc `pintVal=`*(self: var wireVARIANT, x: ptr INT) {.inline.} = + self.union1.pintVal = x + +proc pintVal*(self: wireVARIANT): ptr INT {.inline.} = + self.union1.pintVal + +proc pintVal*(self: var wireVARIANT): var ptr INT {.inline.} = + self.union1.pintVal + +proc `puintVal=`*(self: var wireVARIANT, x: ptr UINT) {.inline.} = + self.union1.puintVal = x + +proc puintVal*(self: wireVARIANT): ptr UINT {.inline.} = + self.union1.puintVal + +proc puintVal*(self: var wireVARIANT): var ptr UINT {.inline.} = + self.union1.puintVal + +proc `lptdesc=`*(self: var TYPEDESC, x: ptr TYPEDESC) {.inline.} = + self.union1.lptdesc = x + +proc lptdesc*(self: TYPEDESC): ptr TYPEDESC {.inline.} = + self.union1.lptdesc + +proc lptdesc*(self: var TYPEDESC): var ptr TYPEDESC {.inline.} = + self.union1.lptdesc + +proc `lpadesc=`*(self: var TYPEDESC, x: ptr ARRAYDESC) {.inline.} = + self.union1.lpadesc = x + +proc lpadesc*(self: TYPEDESC): ptr ARRAYDESC {.inline.} = + self.union1.lpadesc + +proc lpadesc*(self: var TYPEDESC): var ptr ARRAYDESC {.inline.} = + self.union1.lpadesc + +proc `hreftype=`*(self: var TYPEDESC, x: HREFTYPE) {.inline.} = + self.union1.hreftype = x + +proc hreftype*(self: TYPEDESC): HREFTYPE {.inline.} = + self.union1.hreftype + +proc hreftype*(self: var TYPEDESC): var HREFTYPE {.inline.} = + self.union1.hreftype + +proc `idldesc=`*(self: var ELEMDESC, x: IDLDESC) {.inline.} = + self.union1.idldesc = x + +proc idldesc*(self: ELEMDESC): IDLDESC {.inline.} = + self.union1.idldesc + +proc idldesc*(self: var ELEMDESC): var IDLDESC {.inline.} = + self.union1.idldesc + +proc `paramdesc=`*(self: var ELEMDESC, x: PARAMDESC) {.inline.} = + self.union1.paramdesc = x + +proc paramdesc*(self: ELEMDESC): PARAMDESC {.inline.} = + self.union1.paramdesc + +proc paramdesc*(self: var ELEMDESC): var PARAMDESC {.inline.} = + self.union1.paramdesc + +proc `oInst=`*(self: var VARDESC, x: ULONG) {.inline.} = + self.union1.oInst = x + +proc oInst*(self: VARDESC): ULONG {.inline.} = + self.union1.oInst + +proc oInst*(self: var VARDESC): var ULONG {.inline.} = + self.union1.oInst + +proc `lpvarValue=`*(self: var VARDESC, x: ptr VARIANT) {.inline.} = + self.union1.lpvarValue = x + +proc lpvarValue*(self: VARDESC): ptr VARIANT {.inline.} = + self.union1.lpvarValue + +proc lpvarValue*(self: var VARDESC): var ptr VARIANT {.inline.} = + self.union1.lpvarValue + +proc `vt=`*(self: var PROPVARIANT, x: VARTYPE) {.inline.} = + self.union1.struct1.vt = x + +proc vt*(self: PROPVARIANT): VARTYPE {.inline.} = + self.union1.struct1.vt + +proc vt*(self: var PROPVARIANT): var VARTYPE {.inline.} = + self.union1.struct1.vt + +proc `wReserved1=`*(self: var PROPVARIANT, x: PROPVAR_PAD1) {.inline.} = + self.union1.struct1.wReserved1 = x + +proc wReserved1*(self: PROPVARIANT): PROPVAR_PAD1 {.inline.} = + self.union1.struct1.wReserved1 + +proc wReserved1*(self: var PROPVARIANT): var PROPVAR_PAD1 {.inline.} = + self.union1.struct1.wReserved1 + +proc `wReserved2=`*(self: var PROPVARIANT, x: PROPVAR_PAD2) {.inline.} = + self.union1.struct1.wReserved2 = x + +proc wReserved2*(self: PROPVARIANT): PROPVAR_PAD2 {.inline.} = + self.union1.struct1.wReserved2 + +proc wReserved2*(self: var PROPVARIANT): var PROPVAR_PAD2 {.inline.} = + self.union1.struct1.wReserved2 + +proc `wReserved3=`*(self: var PROPVARIANT, x: PROPVAR_PAD3) {.inline.} = + self.union1.struct1.wReserved3 = x + +proc wReserved3*(self: PROPVARIANT): PROPVAR_PAD3 {.inline.} = + self.union1.struct1.wReserved3 + +proc wReserved3*(self: var PROPVARIANT): var PROPVAR_PAD3 {.inline.} = + self.union1.struct1.wReserved3 + +proc `cVal=`*(self: var PROPVARIANT, x: CHAR) {.inline.} = + self.union1.struct1.union1.cVal = x + +proc cVal*(self: PROPVARIANT): CHAR {.inline.} = + self.union1.struct1.union1.cVal + +proc cVal*(self: var PROPVARIANT): var CHAR {.inline.} = + self.union1.struct1.union1.cVal + +proc `bVal=`*(self: var PROPVARIANT, x: UCHAR) {.inline.} = + self.union1.struct1.union1.bVal = x + +proc bVal*(self: PROPVARIANT): UCHAR {.inline.} = + self.union1.struct1.union1.bVal + +proc bVal*(self: var PROPVARIANT): var UCHAR {.inline.} = + self.union1.struct1.union1.bVal + +proc `iVal=`*(self: var PROPVARIANT, x: SHORT) {.inline.} = + self.union1.struct1.union1.iVal = x + +proc iVal*(self: PROPVARIANT): SHORT {.inline.} = + self.union1.struct1.union1.iVal + +proc iVal*(self: var PROPVARIANT): var SHORT {.inline.} = + self.union1.struct1.union1.iVal + +proc `uiVal=`*(self: var PROPVARIANT, x: USHORT) {.inline.} = + self.union1.struct1.union1.uiVal = x + +proc uiVal*(self: PROPVARIANT): USHORT {.inline.} = + self.union1.struct1.union1.uiVal + +proc uiVal*(self: var PROPVARIANT): var USHORT {.inline.} = + self.union1.struct1.union1.uiVal + +proc `lVal=`*(self: var PROPVARIANT, x: LONG) {.inline.} = + self.union1.struct1.union1.lVal = x + +proc lVal*(self: PROPVARIANT): LONG {.inline.} = + self.union1.struct1.union1.lVal + +proc lVal*(self: var PROPVARIANT): var LONG {.inline.} = + self.union1.struct1.union1.lVal + +proc `ulVal=`*(self: var PROPVARIANT, x: ULONG) {.inline.} = + self.union1.struct1.union1.ulVal = x + +proc ulVal*(self: PROPVARIANT): ULONG {.inline.} = + self.union1.struct1.union1.ulVal + +proc ulVal*(self: var PROPVARIANT): var ULONG {.inline.} = + self.union1.struct1.union1.ulVal + +proc `intVal=`*(self: var PROPVARIANT, x: INT) {.inline.} = + self.union1.struct1.union1.intVal = x + +proc intVal*(self: PROPVARIANT): INT {.inline.} = + self.union1.struct1.union1.intVal + +proc intVal*(self: var PROPVARIANT): var INT {.inline.} = + self.union1.struct1.union1.intVal + +proc `uintVal=`*(self: var PROPVARIANT, x: UINT) {.inline.} = + self.union1.struct1.union1.uintVal = x + +proc uintVal*(self: PROPVARIANT): UINT {.inline.} = + self.union1.struct1.union1.uintVal + +proc uintVal*(self: var PROPVARIANT): var UINT {.inline.} = + self.union1.struct1.union1.uintVal + +proc `hVal=`*(self: var PROPVARIANT, x: LARGE_INTEGER) {.inline.} = + self.union1.struct1.union1.hVal = x + +proc hVal*(self: PROPVARIANT): LARGE_INTEGER {.inline.} = + self.union1.struct1.union1.hVal + +proc hVal*(self: var PROPVARIANT): var LARGE_INTEGER {.inline.} = + self.union1.struct1.union1.hVal + +proc `uhVal=`*(self: var PROPVARIANT, x: ULARGE_INTEGER) {.inline.} = + self.union1.struct1.union1.uhVal = x + +proc uhVal*(self: PROPVARIANT): ULARGE_INTEGER {.inline.} = + self.union1.struct1.union1.uhVal + +proc uhVal*(self: var PROPVARIANT): var ULARGE_INTEGER {.inline.} = + self.union1.struct1.union1.uhVal + +proc `fltVal=`*(self: var PROPVARIANT, x: FLOAT) {.inline.} = + self.union1.struct1.union1.fltVal = x + +proc fltVal*(self: PROPVARIANT): FLOAT {.inline.} = + self.union1.struct1.union1.fltVal + +proc fltVal*(self: var PROPVARIANT): var FLOAT {.inline.} = + self.union1.struct1.union1.fltVal + +proc `dblVal=`*(self: var PROPVARIANT, x: DOUBLE) {.inline.} = + self.union1.struct1.union1.dblVal = x + +proc dblVal*(self: PROPVARIANT): DOUBLE {.inline.} = + self.union1.struct1.union1.dblVal + +proc dblVal*(self: var PROPVARIANT): var DOUBLE {.inline.} = + self.union1.struct1.union1.dblVal + +proc `boolVal=`*(self: var PROPVARIANT, x: VARIANT_BOOL) {.inline.} = + self.union1.struct1.union1.boolVal = x + +proc boolVal*(self: PROPVARIANT): VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.boolVal + +proc boolVal*(self: var PROPVARIANT): var VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.boolVal + +proc `scode=`*(self: var PROPVARIANT, x: SCODE) {.inline.} = + self.union1.struct1.union1.scode = x + +proc scode*(self: PROPVARIANT): SCODE {.inline.} = + self.union1.struct1.union1.scode + +proc scode*(self: var PROPVARIANT): var SCODE {.inline.} = + self.union1.struct1.union1.scode + +proc `cyVal=`*(self: var PROPVARIANT, x: CY) {.inline.} = + self.union1.struct1.union1.cyVal = x + +proc cyVal*(self: PROPVARIANT): CY {.inline.} = + self.union1.struct1.union1.cyVal + +proc cyVal*(self: var PROPVARIANT): var CY {.inline.} = + self.union1.struct1.union1.cyVal + +proc `date=`*(self: var PROPVARIANT, x: DATE) {.inline.} = + self.union1.struct1.union1.date = x + +proc date*(self: PROPVARIANT): DATE {.inline.} = + self.union1.struct1.union1.date + +proc date*(self: var PROPVARIANT): var DATE {.inline.} = + self.union1.struct1.union1.date + +proc `filetime=`*(self: var PROPVARIANT, x: FILETIME) {.inline.} = + self.union1.struct1.union1.filetime = x + +proc filetime*(self: PROPVARIANT): FILETIME {.inline.} = + self.union1.struct1.union1.filetime + +proc filetime*(self: var PROPVARIANT): var FILETIME {.inline.} = + self.union1.struct1.union1.filetime + +proc `puuid=`*(self: var PROPVARIANT, x: ptr CLSID) {.inline.} = + self.union1.struct1.union1.puuid = x + +proc puuid*(self: PROPVARIANT): ptr CLSID {.inline.} = + self.union1.struct1.union1.puuid + +proc puuid*(self: var PROPVARIANT): var ptr CLSID {.inline.} = + self.union1.struct1.union1.puuid + +proc `pclipdata=`*(self: var PROPVARIANT, x: ptr CLIPDATA) {.inline.} = + self.union1.struct1.union1.pclipdata = x + +proc pclipdata*(self: PROPVARIANT): ptr CLIPDATA {.inline.} = + self.union1.struct1.union1.pclipdata + +proc pclipdata*(self: var PROPVARIANT): var ptr CLIPDATA {.inline.} = + self.union1.struct1.union1.pclipdata + +proc `bstrVal=`*(self: var PROPVARIANT, x: BSTR) {.inline.} = + self.union1.struct1.union1.bstrVal = x + +proc bstrVal*(self: PROPVARIANT): BSTR {.inline.} = + self.union1.struct1.union1.bstrVal + +proc bstrVal*(self: var PROPVARIANT): var BSTR {.inline.} = + self.union1.struct1.union1.bstrVal + +proc `bstrblobVal=`*(self: var PROPVARIANT, x: BSTRBLOB) {.inline.} = + self.union1.struct1.union1.bstrblobVal = x + +proc bstrblobVal*(self: PROPVARIANT): BSTRBLOB {.inline.} = + self.union1.struct1.union1.bstrblobVal + +proc bstrblobVal*(self: var PROPVARIANT): var BSTRBLOB {.inline.} = + self.union1.struct1.union1.bstrblobVal + +proc `blob=`*(self: var PROPVARIANT, x: BLOB) {.inline.} = + self.union1.struct1.union1.blob = x + +proc blob*(self: PROPVARIANT): BLOB {.inline.} = + self.union1.struct1.union1.blob + +proc blob*(self: var PROPVARIANT): var BLOB {.inline.} = + self.union1.struct1.union1.blob + +proc `pszVal=`*(self: var PROPVARIANT, x: LPSTR) {.inline.} = + self.union1.struct1.union1.pszVal = x + +proc pszVal*(self: PROPVARIANT): LPSTR {.inline.} = + self.union1.struct1.union1.pszVal + +proc pszVal*(self: var PROPVARIANT): var LPSTR {.inline.} = + self.union1.struct1.union1.pszVal + +proc `pwszVal=`*(self: var PROPVARIANT, x: LPWSTR) {.inline.} = + self.union1.struct1.union1.pwszVal = x + +proc pwszVal*(self: PROPVARIANT): LPWSTR {.inline.} = + self.union1.struct1.union1.pwszVal + +proc pwszVal*(self: var PROPVARIANT): var LPWSTR {.inline.} = + self.union1.struct1.union1.pwszVal + +proc `punkVal=`*(self: var PROPVARIANT, x: ptr IUnknown) {.inline.} = + self.union1.struct1.union1.punkVal = x + +proc punkVal*(self: PROPVARIANT): ptr IUnknown {.inline.} = + self.union1.struct1.union1.punkVal + +proc punkVal*(self: var PROPVARIANT): var ptr IUnknown {.inline.} = + self.union1.struct1.union1.punkVal + +proc `pdispVal=`*(self: var PROPVARIANT, x: ptr IDispatch) {.inline.} = + self.union1.struct1.union1.pdispVal = x + +proc pdispVal*(self: PROPVARIANT): ptr IDispatch {.inline.} = + self.union1.struct1.union1.pdispVal + +proc pdispVal*(self: var PROPVARIANT): var ptr IDispatch {.inline.} = + self.union1.struct1.union1.pdispVal + +proc `pStream=`*(self: var PROPVARIANT, x: ptr IStream) {.inline.} = + self.union1.struct1.union1.pStream = x + +proc pStream*(self: PROPVARIANT): ptr IStream {.inline.} = + self.union1.struct1.union1.pStream + +proc pStream*(self: var PROPVARIANT): var ptr IStream {.inline.} = + self.union1.struct1.union1.pStream + +proc `pStorage=`*(self: var PROPVARIANT, x: ptr IStorage) {.inline.} = + self.union1.struct1.union1.pStorage = x + +proc pStorage*(self: PROPVARIANT): ptr IStorage {.inline.} = + self.union1.struct1.union1.pStorage + +proc pStorage*(self: var PROPVARIANT): var ptr IStorage {.inline.} = + self.union1.struct1.union1.pStorage + +proc `pVersionedStream=`*(self: var PROPVARIANT, x: LPVERSIONEDSTREAM) {.inline.} = + self.union1.struct1.union1.pVersionedStream = x + +proc pVersionedStream*(self: PROPVARIANT): LPVERSIONEDSTREAM {.inline.} = + self.union1.struct1.union1.pVersionedStream + +proc pVersionedStream*(self: var PROPVARIANT): var LPVERSIONEDSTREAM {.inline.} = + self.union1.struct1.union1.pVersionedStream + +proc `parray=`*(self: var PROPVARIANT, x: LPSAFEARRAY) {.inline.} = + self.union1.struct1.union1.parray = x + +proc parray*(self: PROPVARIANT): LPSAFEARRAY {.inline.} = + self.union1.struct1.union1.parray + +proc parray*(self: var PROPVARIANT): var LPSAFEARRAY {.inline.} = + self.union1.struct1.union1.parray + +proc `cac=`*(self: var PROPVARIANT, x: CAC) {.inline.} = + self.union1.struct1.union1.cac = x + +proc cac*(self: PROPVARIANT): CAC {.inline.} = + self.union1.struct1.union1.cac + +proc cac*(self: var PROPVARIANT): var CAC {.inline.} = + self.union1.struct1.union1.cac + +proc `caub=`*(self: var PROPVARIANT, x: CAUB) {.inline.} = + self.union1.struct1.union1.caub = x + +proc caub*(self: PROPVARIANT): CAUB {.inline.} = + self.union1.struct1.union1.caub + +proc caub*(self: var PROPVARIANT): var CAUB {.inline.} = + self.union1.struct1.union1.caub + +proc `cai=`*(self: var PROPVARIANT, x: CAI) {.inline.} = + self.union1.struct1.union1.cai = x + +proc cai*(self: PROPVARIANT): CAI {.inline.} = + self.union1.struct1.union1.cai + +proc cai*(self: var PROPVARIANT): var CAI {.inline.} = + self.union1.struct1.union1.cai + +proc `caui=`*(self: var PROPVARIANT, x: CAUI) {.inline.} = + self.union1.struct1.union1.caui = x + +proc caui*(self: PROPVARIANT): CAUI {.inline.} = + self.union1.struct1.union1.caui + +proc caui*(self: var PROPVARIANT): var CAUI {.inline.} = + self.union1.struct1.union1.caui + +proc `cal=`*(self: var PROPVARIANT, x: CAL) {.inline.} = + self.union1.struct1.union1.cal = x + +proc cal*(self: PROPVARIANT): CAL {.inline.} = + self.union1.struct1.union1.cal + +proc cal*(self: var PROPVARIANT): var CAL {.inline.} = + self.union1.struct1.union1.cal + +proc `caul=`*(self: var PROPVARIANT, x: CAUL) {.inline.} = + self.union1.struct1.union1.caul = x + +proc caul*(self: PROPVARIANT): CAUL {.inline.} = + self.union1.struct1.union1.caul + +proc caul*(self: var PROPVARIANT): var CAUL {.inline.} = + self.union1.struct1.union1.caul + +proc `cah=`*(self: var PROPVARIANT, x: CAH) {.inline.} = + self.union1.struct1.union1.cah = x + +proc cah*(self: PROPVARIANT): CAH {.inline.} = + self.union1.struct1.union1.cah + +proc cah*(self: var PROPVARIANT): var CAH {.inline.} = + self.union1.struct1.union1.cah + +proc `cauh=`*(self: var PROPVARIANT, x: CAUH) {.inline.} = + self.union1.struct1.union1.cauh = x + +proc cauh*(self: PROPVARIANT): CAUH {.inline.} = + self.union1.struct1.union1.cauh + +proc cauh*(self: var PROPVARIANT): var CAUH {.inline.} = + self.union1.struct1.union1.cauh + +proc `caflt=`*(self: var PROPVARIANT, x: CAFLT) {.inline.} = + self.union1.struct1.union1.caflt = x + +proc caflt*(self: PROPVARIANT): CAFLT {.inline.} = + self.union1.struct1.union1.caflt + +proc caflt*(self: var PROPVARIANT): var CAFLT {.inline.} = + self.union1.struct1.union1.caflt + +proc `cadbl=`*(self: var PROPVARIANT, x: CADBL) {.inline.} = + self.union1.struct1.union1.cadbl = x + +proc cadbl*(self: PROPVARIANT): CADBL {.inline.} = + self.union1.struct1.union1.cadbl + +proc cadbl*(self: var PROPVARIANT): var CADBL {.inline.} = + self.union1.struct1.union1.cadbl + +proc `cabool=`*(self: var PROPVARIANT, x: CABOOL) {.inline.} = + self.union1.struct1.union1.cabool = x + +proc cabool*(self: PROPVARIANT): CABOOL {.inline.} = + self.union1.struct1.union1.cabool + +proc cabool*(self: var PROPVARIANT): var CABOOL {.inline.} = + self.union1.struct1.union1.cabool + +proc `cascode=`*(self: var PROPVARIANT, x: CASCODE) {.inline.} = + self.union1.struct1.union1.cascode = x + +proc cascode*(self: PROPVARIANT): CASCODE {.inline.} = + self.union1.struct1.union1.cascode + +proc cascode*(self: var PROPVARIANT): var CASCODE {.inline.} = + self.union1.struct1.union1.cascode + +proc `cacy=`*(self: var PROPVARIANT, x: CACY) {.inline.} = + self.union1.struct1.union1.cacy = x + +proc cacy*(self: PROPVARIANT): CACY {.inline.} = + self.union1.struct1.union1.cacy + +proc cacy*(self: var PROPVARIANT): var CACY {.inline.} = + self.union1.struct1.union1.cacy + +proc `cadate=`*(self: var PROPVARIANT, x: CADATE) {.inline.} = + self.union1.struct1.union1.cadate = x + +proc cadate*(self: PROPVARIANT): CADATE {.inline.} = + self.union1.struct1.union1.cadate + +proc cadate*(self: var PROPVARIANT): var CADATE {.inline.} = + self.union1.struct1.union1.cadate + +proc `cafiletime=`*(self: var PROPVARIANT, x: CAFILETIME) {.inline.} = + self.union1.struct1.union1.cafiletime = x + +proc cafiletime*(self: PROPVARIANT): CAFILETIME {.inline.} = + self.union1.struct1.union1.cafiletime + +proc cafiletime*(self: var PROPVARIANT): var CAFILETIME {.inline.} = + self.union1.struct1.union1.cafiletime + +proc `cauuid=`*(self: var PROPVARIANT, x: CACLSID) {.inline.} = + self.union1.struct1.union1.cauuid = x + +proc cauuid*(self: PROPVARIANT): CACLSID {.inline.} = + self.union1.struct1.union1.cauuid + +proc cauuid*(self: var PROPVARIANT): var CACLSID {.inline.} = + self.union1.struct1.union1.cauuid + +proc `caclipdata=`*(self: var PROPVARIANT, x: CACLIPDATA) {.inline.} = + self.union1.struct1.union1.caclipdata = x + +proc caclipdata*(self: PROPVARIANT): CACLIPDATA {.inline.} = + self.union1.struct1.union1.caclipdata + +proc caclipdata*(self: var PROPVARIANT): var CACLIPDATA {.inline.} = + self.union1.struct1.union1.caclipdata + +proc `cabstr=`*(self: var PROPVARIANT, x: CABSTR) {.inline.} = + self.union1.struct1.union1.cabstr = x + +proc cabstr*(self: PROPVARIANT): CABSTR {.inline.} = + self.union1.struct1.union1.cabstr + +proc cabstr*(self: var PROPVARIANT): var CABSTR {.inline.} = + self.union1.struct1.union1.cabstr + +proc `cabstrblob=`*(self: var PROPVARIANT, x: CABSTRBLOB) {.inline.} = + self.union1.struct1.union1.cabstrblob = x + +proc cabstrblob*(self: PROPVARIANT): CABSTRBLOB {.inline.} = + self.union1.struct1.union1.cabstrblob + +proc cabstrblob*(self: var PROPVARIANT): var CABSTRBLOB {.inline.} = + self.union1.struct1.union1.cabstrblob + +proc `calpstr=`*(self: var PROPVARIANT, x: CALPSTR) {.inline.} = + self.union1.struct1.union1.calpstr = x + +proc calpstr*(self: PROPVARIANT): CALPSTR {.inline.} = + self.union1.struct1.union1.calpstr + +proc calpstr*(self: var PROPVARIANT): var CALPSTR {.inline.} = + self.union1.struct1.union1.calpstr + +proc `calpwstr=`*(self: var PROPVARIANT, x: CALPWSTR) {.inline.} = + self.union1.struct1.union1.calpwstr = x + +proc calpwstr*(self: PROPVARIANT): CALPWSTR {.inline.} = + self.union1.struct1.union1.calpwstr + +proc calpwstr*(self: var PROPVARIANT): var CALPWSTR {.inline.} = + self.union1.struct1.union1.calpwstr + +proc `capropvar=`*(self: var PROPVARIANT, x: CAPROPVARIANT) {.inline.} = + self.union1.struct1.union1.capropvar = x + +proc capropvar*(self: PROPVARIANT): CAPROPVARIANT {.inline.} = + self.union1.struct1.union1.capropvar + +proc capropvar*(self: var PROPVARIANT): var CAPROPVARIANT {.inline.} = + self.union1.struct1.union1.capropvar + +proc `pcVal=`*(self: var PROPVARIANT, x: ptr CHAR) {.inline.} = + self.union1.struct1.union1.pcVal = x + +proc pcVal*(self: PROPVARIANT): ptr CHAR {.inline.} = + self.union1.struct1.union1.pcVal + +proc pcVal*(self: var PROPVARIANT): var ptr CHAR {.inline.} = + self.union1.struct1.union1.pcVal + +proc `pbVal=`*(self: var PROPVARIANT, x: ptr UCHAR) {.inline.} = + self.union1.struct1.union1.pbVal = x + +proc pbVal*(self: PROPVARIANT): ptr UCHAR {.inline.} = + self.union1.struct1.union1.pbVal + +proc pbVal*(self: var PROPVARIANT): var ptr UCHAR {.inline.} = + self.union1.struct1.union1.pbVal + +proc `piVal=`*(self: var PROPVARIANT, x: ptr SHORT) {.inline.} = + self.union1.struct1.union1.piVal = x + +proc piVal*(self: PROPVARIANT): ptr SHORT {.inline.} = + self.union1.struct1.union1.piVal + +proc piVal*(self: var PROPVARIANT): var ptr SHORT {.inline.} = + self.union1.struct1.union1.piVal + +proc `puiVal=`*(self: var PROPVARIANT, x: ptr USHORT) {.inline.} = + self.union1.struct1.union1.puiVal = x + +proc puiVal*(self: PROPVARIANT): ptr USHORT {.inline.} = + self.union1.struct1.union1.puiVal + +proc puiVal*(self: var PROPVARIANT): var ptr USHORT {.inline.} = + self.union1.struct1.union1.puiVal + +proc `plVal=`*(self: var PROPVARIANT, x: ptr LONG) {.inline.} = + self.union1.struct1.union1.plVal = x + +proc plVal*(self: PROPVARIANT): ptr LONG {.inline.} = + self.union1.struct1.union1.plVal + +proc plVal*(self: var PROPVARIANT): var ptr LONG {.inline.} = + self.union1.struct1.union1.plVal + +proc `pulVal=`*(self: var PROPVARIANT, x: ptr ULONG) {.inline.} = + self.union1.struct1.union1.pulVal = x + +proc pulVal*(self: PROPVARIANT): ptr ULONG {.inline.} = + self.union1.struct1.union1.pulVal + +proc pulVal*(self: var PROPVARIANT): var ptr ULONG {.inline.} = + self.union1.struct1.union1.pulVal + +proc `pintVal=`*(self: var PROPVARIANT, x: ptr INT) {.inline.} = + self.union1.struct1.union1.pintVal = x + +proc pintVal*(self: PROPVARIANT): ptr INT {.inline.} = + self.union1.struct1.union1.pintVal + +proc pintVal*(self: var PROPVARIANT): var ptr INT {.inline.} = + self.union1.struct1.union1.pintVal + +proc `puintVal=`*(self: var PROPVARIANT, x: ptr UINT) {.inline.} = + self.union1.struct1.union1.puintVal = x + +proc puintVal*(self: PROPVARIANT): ptr UINT {.inline.} = + self.union1.struct1.union1.puintVal + +proc puintVal*(self: var PROPVARIANT): var ptr UINT {.inline.} = + self.union1.struct1.union1.puintVal + +proc `pfltVal=`*(self: var PROPVARIANT, x: ptr FLOAT) {.inline.} = + self.union1.struct1.union1.pfltVal = x + +proc pfltVal*(self: PROPVARIANT): ptr FLOAT {.inline.} = + self.union1.struct1.union1.pfltVal + +proc pfltVal*(self: var PROPVARIANT): var ptr FLOAT {.inline.} = + self.union1.struct1.union1.pfltVal + +proc `pdblVal=`*(self: var PROPVARIANT, x: ptr DOUBLE) {.inline.} = + self.union1.struct1.union1.pdblVal = x + +proc pdblVal*(self: PROPVARIANT): ptr DOUBLE {.inline.} = + self.union1.struct1.union1.pdblVal + +proc pdblVal*(self: var PROPVARIANT): var ptr DOUBLE {.inline.} = + self.union1.struct1.union1.pdblVal + +proc `pboolVal=`*(self: var PROPVARIANT, x: ptr VARIANT_BOOL) {.inline.} = + self.union1.struct1.union1.pboolVal = x + +proc pboolVal*(self: PROPVARIANT): ptr VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.pboolVal + +proc pboolVal*(self: var PROPVARIANT): var ptr VARIANT_BOOL {.inline.} = + self.union1.struct1.union1.pboolVal + +proc `pdecVal=`*(self: var PROPVARIANT, x: ptr DECIMAL) {.inline.} = + self.union1.struct1.union1.pdecVal = x + +proc pdecVal*(self: PROPVARIANT): ptr DECIMAL {.inline.} = + self.union1.struct1.union1.pdecVal + +proc pdecVal*(self: var PROPVARIANT): var ptr DECIMAL {.inline.} = + self.union1.struct1.union1.pdecVal + +proc `pscode=`*(self: var PROPVARIANT, x: ptr SCODE) {.inline.} = + self.union1.struct1.union1.pscode = x + +proc pscode*(self: PROPVARIANT): ptr SCODE {.inline.} = + self.union1.struct1.union1.pscode + +proc pscode*(self: var PROPVARIANT): var ptr SCODE {.inline.} = + self.union1.struct1.union1.pscode + +proc `pcyVal=`*(self: var PROPVARIANT, x: ptr CY) {.inline.} = + self.union1.struct1.union1.pcyVal = x + +proc pcyVal*(self: PROPVARIANT): ptr CY {.inline.} = + self.union1.struct1.union1.pcyVal + +proc pcyVal*(self: var PROPVARIANT): var ptr CY {.inline.} = + self.union1.struct1.union1.pcyVal + +proc `pdate=`*(self: var PROPVARIANT, x: ptr DATE) {.inline.} = + self.union1.struct1.union1.pdate = x + +proc pdate*(self: PROPVARIANT): ptr DATE {.inline.} = + self.union1.struct1.union1.pdate + +proc pdate*(self: var PROPVARIANT): var ptr DATE {.inline.} = + self.union1.struct1.union1.pdate + +proc `pbstrVal=`*(self: var PROPVARIANT, x: ptr BSTR) {.inline.} = + self.union1.struct1.union1.pbstrVal = x + +proc pbstrVal*(self: PROPVARIANT): ptr BSTR {.inline.} = + self.union1.struct1.union1.pbstrVal + +proc pbstrVal*(self: var PROPVARIANT): var ptr BSTR {.inline.} = + self.union1.struct1.union1.pbstrVal + +proc `ppunkVal=`*(self: var PROPVARIANT, x: ptr ptr IUnknown) {.inline.} = + self.union1.struct1.union1.ppunkVal = x + +proc ppunkVal*(self: PROPVARIANT): ptr ptr IUnknown {.inline.} = + self.union1.struct1.union1.ppunkVal + +proc ppunkVal*(self: var PROPVARIANT): var ptr ptr IUnknown {.inline.} = + self.union1.struct1.union1.ppunkVal + +proc `ppdispVal=`*(self: var PROPVARIANT, x: ptr ptr IDispatch) {.inline.} = + self.union1.struct1.union1.ppdispVal = x + +proc ppdispVal*(self: PROPVARIANT): ptr ptr IDispatch {.inline.} = + self.union1.struct1.union1.ppdispVal + +proc ppdispVal*(self: var PROPVARIANT): var ptr ptr IDispatch {.inline.} = + self.union1.struct1.union1.ppdispVal + +proc `pparray=`*(self: var PROPVARIANT, x: ptr LPSAFEARRAY) {.inline.} = + self.union1.struct1.union1.pparray = x + +proc pparray*(self: PROPVARIANT): ptr LPSAFEARRAY {.inline.} = + self.union1.struct1.union1.pparray + +proc pparray*(self: var PROPVARIANT): var ptr LPSAFEARRAY {.inline.} = + self.union1.struct1.union1.pparray + +proc `pvarVal=`*(self: var PROPVARIANT, x: ptr PROPVARIANT) {.inline.} = + self.union1.struct1.union1.pvarVal = x + +proc pvarVal*(self: PROPVARIANT): ptr PROPVARIANT {.inline.} = + self.union1.struct1.union1.pvarVal + +proc pvarVal*(self: var PROPVARIANT): var ptr PROPVARIANT {.inline.} = + self.union1.struct1.union1.pvarVal + +proc `decVal=`*(self: var PROPVARIANT, x: DECIMAL) {.inline.} = + self.union1.decVal = x + +proc decVal*(self: PROPVARIANT): DECIMAL {.inline.} = + self.union1.decVal + +proc decVal*(self: var PROPVARIANT): var DECIMAL {.inline.} = + self.union1.decVal + +proc `propid=`*(self: var PROPSPEC, x: PROPID) {.inline.} = + self.union1.propid = x + +proc propid*(self: PROPSPEC): PROPID {.inline.} = + self.union1.propid + +proc propid*(self: var PROPSPEC): var PROPID {.inline.} = + self.union1.propid + +proc `lpwstr=`*(self: var PROPSPEC, x: LPOLESTR) {.inline.} = + self.union1.lpwstr = x + +proc lpwstr*(self: PROPSPEC): LPOLESTR {.inline.} = + self.union1.lpwstr + +proc lpwstr*(self: var PROPSPEC): var LPOLESTR {.inline.} = + self.union1.lpwstr + +proc `pOleStr=`*(self: var STRRET, x: LPWSTR) {.inline.} = + self.union1.pOleStr = x + +proc pOleStr*(self: STRRET): LPWSTR {.inline.} = + self.union1.pOleStr + +proc pOleStr*(self: var STRRET): var LPWSTR {.inline.} = + self.union1.pOleStr + +proc `uOffset=`*(self: var STRRET, x: UINT) {.inline.} = + self.union1.uOffset = x + +proc uOffset*(self: STRRET): UINT {.inline.} = + self.union1.uOffset + +proc uOffset*(self: var STRRET): var UINT {.inline.} = + self.union1.uOffset + +proc `cStr=`*(self: var STRRET, x: array[260, char]) {.inline.} = + self.union1.cStr = x + +proc cStr*(self: STRRET): array[260, char] {.inline.} = + self.union1.cStr + +proc cStr*(self: var STRRET): var array[260, char] {.inline.} = + self.union1.cStr + +proc QueryInterface*( + self: ptr IUnknown, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryInterface(self, riid, ppvObject) + +proc AddRef*(self: ptr IUnknown): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddRef(self) + +proc Release*(self: ptr IUnknown): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Release(self) + +proc Begin_QueryInterface*( + self: ptr AsyncIUnknown, riid: REFIID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_QueryInterface(self, riid) + +proc Finish_QueryInterface*( + self: ptr AsyncIUnknown, ppvObject: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_QueryInterface(self, ppvObject) + +proc Begin_AddRef*(self: ptr AsyncIUnknown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_AddRef(self) + +proc Finish_AddRef*(self: ptr AsyncIUnknown): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_AddRef(self) + +proc Begin_Release*(self: ptr AsyncIUnknown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_Release(self) + +proc Finish_Release*(self: ptr AsyncIUnknown): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_Release(self) + +proc CreateInstance*( + self: ptr IClassFactory, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppvObject: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, pUnkOuter, riid, ppvObject) + +proc LockServer*(self: ptr IClassFactory, fLock: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockServer(self, fLock) + +proc GetUnmarshalClass*( + self: ptr IMarshal, + riid: REFIID, + pv: pointer, + dwDestContext: DWORD, + pvDestContext: pointer, + mshlflags: DWORD, + pCid: ptr CLSID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUnmarshalClass( + self, riid, pv, dwDestContext, pvDestContext, mshlflags, pCid + ) + +proc GetMarshalSizeMax*( + self: ptr IMarshal, + riid: REFIID, + pv: pointer, + dwDestContext: DWORD, + pvDestContext: pointer, + mshlflags: DWORD, + pSize: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMarshalSizeMax( + self, riid, pv, dwDestContext, pvDestContext, mshlflags, pSize + ) + +proc MarshalInterface*( + self: ptr IMarshal, + pStm: ptr IStream, + riid: REFIID, + pv: pointer, + dwDestContext: DWORD, + pvDestContext: pointer, + mshlflags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MarshalInterface( + self, pStm, riid, pv, dwDestContext, pvDestContext, mshlflags + ) + +proc UnmarshalInterface*( + self: ptr IMarshal, pStm: ptr IStream, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnmarshalInterface(self, pStm, riid, ppv) + +proc ReleaseMarshalData*( + self: ptr IMarshal, pStm: ptr IStream +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseMarshalData(self, pStm) + +proc DisconnectObject*( + self: ptr IMarshal, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DisconnectObject(self, dwReserved) + +proc Alloc*(self: ptr IMalloc, cb: SIZE_T): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Alloc(self, cb) + +proc Realloc*(self: ptr IMalloc, pv: pointer, cb: SIZE_T): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Realloc(self, pv, cb) + +proc Free*(self: ptr IMalloc, pv: pointer): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Free(self, pv) + +proc GetSize*(self: ptr IMalloc, pv: pointer): SIZE_T {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, pv) + +proc DidAlloc*(self: ptr IMalloc, pv: pointer): int32 {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DidAlloc(self, pv) + +proc HeapMinimize*(self: ptr IMalloc): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HeapMinimize(self) + +proc GetClassForHandler*( + self: ptr IStdMarshalInfo, + dwDestContext: DWORD, + pvDestContext: pointer, + pClsid: ptr CLSID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClassForHandler(self, dwDestContext, pvDestContext, pClsid) + +proc AddConnection*( + self: ptr IExternalConnection, extconn: DWORD, reserved: DWORD +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddConnection(self, extconn, reserved) + +proc ReleaseConnection*( + self: ptr IExternalConnection, + extconn: DWORD, + reserved: DWORD, + fLastReleaseCloses: WINBOOL, +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseConnection(self, extconn, reserved, fLastReleaseCloses) + +proc QueryMultipleInterfaces*( + self: ptr IMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryMultipleInterfaces(self, cMQIs, pMQIs) + +proc Begin_QueryMultipleInterfaces*( + self: ptr AsyncIMultiQI, cMQIs: ULONG, pMQIs: ptr MULTI_QI +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_QueryMultipleInterfaces(self, cMQIs, pMQIs) + +proc Finish_QueryMultipleInterfaces*( + self: ptr AsyncIMultiQI, pMQIs: ptr MULTI_QI +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_QueryMultipleInterfaces(self, pMQIs) + +proc QueryInternalInterface*( + self: ptr IInternalUnknown, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryInternalInterface(self, riid, ppv) + +proc Next*( + self: ptr IEnumUnknown, + celt: ULONG, + rgelt: ptr ptr IUnknown, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumUnknown, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumUnknown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumUnknown, ppenum: ptr ptr IEnumUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Next*( + self: ptr IEnumString, celt: ULONG, rgelt: ptr LPOLESTR, pceltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumString, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumString): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumString, ppenum: ptr ptr IEnumString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Read*( + self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbRead: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Read(self, pv, cb, pcbRead) + +proc Write*( + self: ptr ISequentialStream, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Write(self, pv, cb, pcbWritten) + +proc Seek*( + self: ptr IStream, + dlibMove: LARGE_INTEGER, + dwOrigin: DWORD, + plibNewPosition: ptr ULARGE_INTEGER, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Seek(self, dlibMove, dwOrigin, plibNewPosition) + +proc SetSize*( + self: ptr IStream, libNewSize: ULARGE_INTEGER +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSize(self, libNewSize) + +proc CopyTo*( + self: ptr IStream, + pstm: ptr IStream, + cb: ULARGE_INTEGER, + pcbRead: ptr ULARGE_INTEGER, + pcbWritten: ptr ULARGE_INTEGER, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyTo(self, pstm, cb, pcbRead, pcbWritten) + +proc Commit*(self: ptr IStream, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self, grfCommitFlags) + +proc Revert*(self: ptr IStream): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Revert(self) + +proc LockRegion*( + self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockRegion(self, libOffset, cb, dwLockType) + +proc UnlockRegion*( + self: ptr IStream, libOffset: ULARGE_INTEGER, cb: ULARGE_INTEGER, dwLockType: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnlockRegion(self, libOffset, cb, dwLockType) + +proc Stat*( + self: ptr IStream, pstatstg: ptr STATSTG, grfStatFlag: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stat(self, pstatstg, grfStatFlag) + +proc Clone*(self: ptr IStream, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppstm) + +proc GetBuffer*( + self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, riid: REFIID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBuffer(self, pMessage, riid) + +proc SendReceive*( + self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE, pStatus: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendReceive(self, pMessage, pStatus) + +proc FreeBuffer*( + self: ptr IRpcChannelBuffer, pMessage: ptr RPCOLEMESSAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FreeBuffer(self, pMessage) + +proc GetDestCtx*( + self: ptr IRpcChannelBuffer, pdwDestContext: ptr DWORD, ppvDestContext: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDestCtx(self, pdwDestContext, ppvDestContext) + +proc IsConnected*(self: ptr IRpcChannelBuffer): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsConnected(self) + +proc GetProtocolVersion*( + self: ptr IRpcChannelBuffer2, pdwVersion: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProtocolVersion(self, pdwVersion) + +proc Send*( + self: ptr IAsyncRpcChannelBuffer, + pMsg: ptr RPCOLEMESSAGE, + pSync: ptr ISynchronize, + pulStatus: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Send(self, pMsg, pSync, pulStatus) + +proc Receive*( + self: ptr IAsyncRpcChannelBuffer, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Receive(self, pMsg, pulStatus) + +proc GetDestCtxEx*( + self: ptr IAsyncRpcChannelBuffer, + pMsg: ptr RPCOLEMESSAGE, + pdwDestContext: ptr DWORD, + ppvDestContext: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDestCtxEx(self, pMsg, pdwDestContext, ppvDestContext) + +proc Send*( + self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pulStatus: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Send(self, pMsg, pulStatus) + +proc Receive*( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + ulSize: ULONG, + pulStatus: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Receive(self, pMsg, ulSize, pulStatus) + +proc Cancel*( + self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cancel(self, pMsg) + +proc GetCallContext*( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + riid: REFIID, + pInterface: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCallContext(self, pMsg, riid, pInterface) + +proc GetDestCtxEx*( + self: ptr IRpcChannelBuffer3, + pMsg: ptr RPCOLEMESSAGE, + pdwDestContext: ptr DWORD, + ppvDestContext: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDestCtxEx(self, pMsg, pdwDestContext, ppvDestContext) + +proc GetState*( + self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pState: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetState(self, pMsg, pState) + +proc RegisterAsync*( + self: ptr IRpcChannelBuffer3, pMsg: ptr RPCOLEMESSAGE, pAsyncMgr: ptr IAsyncManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterAsync(self, pMsg, pAsyncMgr) + +proc NegotiateSyntax*( + self: ptr IRpcSyntaxNegotiate, pMsg: ptr RPCOLEMESSAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NegotiateSyntax(self, pMsg) + +proc Connect*( + self: ptr IRpcProxyBuffer, pRpcChannelBuffer: ptr IRpcChannelBuffer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Connect(self, pRpcChannelBuffer) + +proc Disconnect*(self: ptr IRpcProxyBuffer): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Disconnect(self) + +proc Connect*( + self: ptr IRpcStubBuffer, pUnkServer: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Connect(self, pUnkServer) + +proc Disconnect*(self: ptr IRpcStubBuffer): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Disconnect(self) + +proc Invoke*( + self: ptr IRpcStubBuffer, + prpcmsg: ptr RPCOLEMESSAGE, + pRpcChannelBuffer: ptr IRpcChannelBuffer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke(self, prpcmsg, pRpcChannelBuffer) + +proc IsIIDSupported*( + self: ptr IRpcStubBuffer, riid: REFIID +): ptr IRpcStubBuffer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsIIDSupported(self, riid) + +proc CountRefs*(self: ptr IRpcStubBuffer): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CountRefs(self) + +proc DebugServerQueryInterface*( + self: ptr IRpcStubBuffer, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DebugServerQueryInterface(self, ppv) + +proc DebugServerRelease*( + self: ptr IRpcStubBuffer, pv: pointer +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DebugServerRelease(self, pv) + +proc CreateProxy*( + self: ptr IPSFactoryBuffer, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppProxy: ptr ptr IRpcProxyBuffer, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateProxy(self, pUnkOuter, riid, ppProxy, ppv) + +proc CreateStub*( + self: ptr IPSFactoryBuffer, + riid: REFIID, + pUnkServer: ptr IUnknown, + ppStub: ptr ptr IRpcStubBuffer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateStub(self, riid, pUnkServer, ppStub) + +proc ClientGetSize*( + self: ptr IChannelHook, uExtent: REFGUID, riid: REFIID, pDataSize: ptr ULONG +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClientGetSize(self, uExtent, riid, pDataSize) + +proc ClientFillBuffer*( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + pDataSize: ptr ULONG, + pDataBuffer: pointer, +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClientFillBuffer(self, uExtent, riid, pDataSize, pDataBuffer) + +proc ClientNotify*( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + cbDataSize: ULONG, + pDataBuffer: pointer, + lDataRep: DWORD, + hrFault: HRESULT, +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClientNotify( + self, uExtent, riid, cbDataSize, pDataBuffer, lDataRep, hrFault + ) + +proc ServerNotify*( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + cbDataSize: ULONG, + pDataBuffer: pointer, + lDataRep: DWORD, +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ServerNotify(self, uExtent, riid, cbDataSize, pDataBuffer, lDataRep) + +proc ServerGetSize*( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + hrFault: HRESULT, + pDataSize: ptr ULONG, +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ServerGetSize(self, uExtent, riid, hrFault, pDataSize) + +proc ServerFillBuffer*( + self: ptr IChannelHook, + uExtent: REFGUID, + riid: REFIID, + pDataSize: ptr ULONG, + pDataBuffer: pointer, + hrFault: HRESULT, +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ServerFillBuffer(self, uExtent, riid, pDataSize, pDataBuffer, hrFault) + +proc QueryBlanket*( + self: ptr IClientSecurity, + pProxy: ptr IUnknown, + pAuthnSvc: ptr DWORD, + pAuthzSvc: ptr DWORD, + pServerPrincName: ptr ptr OLECHAR, + pAuthnLevel: ptr DWORD, + pImpLevel: ptr DWORD, + pAuthInfo: ptr pointer, + pCapabilites: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryBlanket( + self, pProxy, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, + pAuthInfo, pCapabilites, + ) + +proc SetBlanket*( + self: ptr IClientSecurity, + pProxy: ptr IUnknown, + dwAuthnSvc: DWORD, + dwAuthzSvc: DWORD, + pServerPrincName: ptr OLECHAR, + dwAuthnLevel: DWORD, + dwImpLevel: DWORD, + pAuthInfo: pointer, + dwCapabilities: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBlanket( + self, pProxy, dwAuthnSvc, dwAuthzSvc, pServerPrincName, dwAuthnLevel, dwImpLevel, + pAuthInfo, dwCapabilities, + ) + +proc CopyProxy*( + self: ptr IClientSecurity, pProxy: ptr IUnknown, ppCopy: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyProxy(self, pProxy, ppCopy) + +proc QueryBlanket*( + self: ptr IServerSecurity, + pAuthnSvc: ptr DWORD, + pAuthzSvc: ptr DWORD, + pServerPrincName: ptr ptr OLECHAR, + pAuthnLevel: ptr DWORD, + pImpLevel: ptr DWORD, + pPrivs: ptr pointer, + pCapabilities: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryBlanket( + self, pAuthnSvc, pAuthzSvc, pServerPrincName, pAuthnLevel, pImpLevel, pPrivs, + pCapabilities, + ) + +proc ImpersonateClient*(self: ptr IServerSecurity): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ImpersonateClient(self) + +proc RevertToSelf*(self: ptr IServerSecurity): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RevertToSelf(self) + +proc IsImpersonating*(self: ptr IServerSecurity): WINBOOL {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsImpersonating(self) + +proc Set*( + self: ptr IRpcOptions, + pPrx: ptr IUnknown, + dwProperty: RPCOPT_PROPERTIES, + dwValue: ULONG_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Set(self, pPrx, dwProperty, dwValue) + +proc Query*( + self: ptr IRpcOptions, + pPrx: ptr IUnknown, + dwProperty: RPCOPT_PROPERTIES, + pdwValue: ptr ULONG_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Query(self, pPrx, dwProperty, pdwValue) + +proc Set*( + self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, dwValue: ULONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Set(self, dwProperty, dwValue) + +proc Query*( + self: ptr IGlobalOptions, dwProperty: GLOBALOPT_PROPERTIES, pdwValue: ptr ULONG_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Query(self, dwProperty, pdwValue) + +proc LoadDllServer*(self: ptr ISurrogate, Clsid: REFCLSID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadDllServer(self, Clsid) + +proc FreeSurrogate*(self: ptr ISurrogate): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FreeSurrogate(self) + +proc RegisterInterfaceInGlobal*( + self: ptr IGlobalInterfaceTable, + pUnk: ptr IUnknown, + riid: REFIID, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterInterfaceInGlobal(self, pUnk, riid, pdwCookie) + +proc RevokeInterfaceFromGlobal*( + self: ptr IGlobalInterfaceTable, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RevokeInterfaceFromGlobal(self, dwCookie) + +proc GetInterfaceFromGlobal*( + self: ptr IGlobalInterfaceTable, dwCookie: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterfaceFromGlobal(self, dwCookie, riid, ppv) + +proc Wait*( + self: ptr ISynchronize, dwFlags: DWORD, dwMilliseconds: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Wait(self, dwFlags, dwMilliseconds) + +proc Signal*(self: ptr ISynchronize): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Signal(self) + +proc Reset*(self: ptr ISynchronize): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc GetHandle*( + self: ptr ISynchronizeHandle, ph: ptr HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHandle(self, ph) + +proc SetEventHandle*( + self: ptr ISynchronizeEvent, ph: ptr HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEventHandle(self, ph) + +proc AddSynchronize*( + self: ptr ISynchronizeContainer, pSync: ptr ISynchronize +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSynchronize(self, pSync) + +proc WaitMultiple*( + self: ptr ISynchronizeContainer, + dwFlags: DWORD, + dwTimeOut: DWORD, + ppSync: ptr ptr ISynchronize, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WaitMultiple(self, dwFlags, dwTimeOut, ppSync) + +proc ReleaseMutex*(self: ptr ISynchronizeMutex): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseMutex(self) + +proc Cancel*( + self: ptr ICancelMethodCalls, ulSeconds: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cancel(self, ulSeconds) + +proc TestCancel*(self: ptr ICancelMethodCalls): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TestCancel(self) + +proc CompleteCall*( + self: ptr IAsyncManager, Result: HRESULT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompleteCall(self, Result) + +proc GetCallContext*( + self: ptr IAsyncManager, riid: REFIID, pInterface: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCallContext(self, riid, pInterface) + +proc GetState*( + self: ptr IAsyncManager, pulStateFlags: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetState(self, pulStateFlags) + +proc CreateCall*( + self: ptr ICallFactory, + riid: REFIID, + pCtrlUnk: ptr IUnknown, + riid2: REFIID, + ppv: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateCall(self, riid, pCtrlUnk, riid2, ppv) + +proc GetDCOMProtocolVersion*( + self: ptr IRpcHelper, pComVersion: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDCOMProtocolVersion(self, pComVersion) + +proc GetIIDFromOBJREF*( + self: ptr IRpcHelper, pObjRef: pointer, piid: ptr ptr IID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIIDFromOBJREF(self, pObjRef, piid) + +proc ReleaseMarshalBuffer*( + self: ptr IReleaseMarshalBuffers, + pMsg: ptr RPCOLEMESSAGE, + dwFlags: DWORD, + pChnl: ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseMarshalBuffer(self, pMsg, dwFlags, pChnl) + +proc WaitMultiple*( + self: ptr IWaitMultiple, timeout: DWORD, pSync: ptr ptr ISynchronize +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WaitMultiple(self, timeout, pSync) + +proc AddSynchronize*( + self: ptr IWaitMultiple, pSync: ptr ISynchronize +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSynchronize(self, pSync) + +proc EnableCOMDynamicAddrTracking*( + self: ptr IAddrTrackingControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableCOMDynamicAddrTracking(self) + +proc DisableCOMDynamicAddrTracking*( + self: ptr IAddrTrackingControl +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DisableCOMDynamicAddrTracking(self) + +proc GetCurrentAddrExclusionList*( + self: ptr IAddrExclusionControl, riid: REFIID, ppEnumerator: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentAddrExclusionList(self, riid, ppEnumerator) + +proc UpdateAddrExclusionList*( + self: ptr IAddrExclusionControl, pEnumerator: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateAddrExclusionList(self, pEnumerator) + +proc Pull*( + self: ptr IPipeByte, buf: ptr BYTE, cRequest: ULONG, pcReturned: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Pull(self, buf, cRequest, pcReturned) + +proc Push*( + self: ptr IPipeByte, buf: ptr BYTE, cSent: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Push(self, buf, cSent) + +proc Pull*( + self: ptr IPipeLong, buf: ptr LONG, cRequest: ULONG, pcReturned: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Pull(self, buf, cRequest, pcReturned) + +proc Push*( + self: ptr IPipeLong, buf: ptr LONG, cSent: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Push(self, buf, cSent) + +proc Pull*( + self: ptr IPipeDouble, buf: ptr DOUBLE, cRequest: ULONG, pcReturned: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Pull(self, buf, cRequest, pcReturned) + +proc Push*( + self: ptr IPipeDouble, buf: ptr DOUBLE, cSent: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Push(self, buf, cSent) + +proc Next*( + self: ptr IEnumContextProps, + celt: ULONG, + pContextProperties: ptr ContextProperty, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, pContextProperties, pceltFetched) + +proc Skip*(self: ptr IEnumContextProps, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumContextProps): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumContextProps, ppEnumContextProps: ptr ptr IEnumContextProps +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnumContextProps) + +proc Count*(self: ptr IEnumContextProps, pcelt: ptr ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Count(self, pcelt) + +proc SetProperty*( + self: ptr IContext, rpolicyId: REFGUID, flags: CPFLAGS, pUnk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProperty(self, rpolicyId, flags, pUnk) + +proc RemoveProperty*( + self: ptr IContext, rPolicyId: REFGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveProperty(self, rPolicyId) + +proc GetProperty*( + self: ptr IContext, rGuid: REFGUID, pFlags: ptr CPFLAGS, ppUnk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, rGuid, pFlags, ppUnk) + +proc EnumContextProps*( + self: ptr IContext, ppEnumContextProps: ptr ptr IEnumContextProps +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumContextProps(self, ppEnumContextProps) + +proc GetCurrentApartmentType*( + self: ptr IComThreadingInfo, pAptType: ptr APTTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentApartmentType(self, pAptType) + +proc GetCurrentThreadType*( + self: ptr IComThreadingInfo, pThreadType: ptr THDTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentThreadType(self, pThreadType) + +proc GetCurrentLogicalThreadId*( + self: ptr IComThreadingInfo, pguidLogicalThreadId: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentLogicalThreadId(self, pguidLogicalThreadId) + +proc SetCurrentLogicalThreadId*( + self: ptr IComThreadingInfo, rguid: REFGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCurrentLogicalThreadId(self, rguid) + +proc ResetInitializerTimeout*( + self: ptr IProcessInitControl, dwSecondsRemaining: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetInitializerTimeout(self, dwSecondsRemaining) + +proc GetMarshalingContextAttribute*( + self: ptr IMarshalingStream, + attribute: CO_MARSHALING_CONTEXT_ATTRIBUTES, + pAttributeValue: ptr ULONG_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMarshalingContextAttribute(self, attribute, pAttributeValue) + +proc PreAlloc*(self: ptr IMallocSpy, cbRequest: SIZE_T): SIZE_T {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreAlloc(self, cbRequest) + +proc PostAlloc*(self: ptr IMallocSpy, pActual: pointer): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostAlloc(self, pActual) + +proc PreFree*( + self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL +): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreFree(self, pRequest, fSpyed) + +proc PostFree*(self: ptr IMallocSpy, fSpyed: WINBOOL): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostFree(self, fSpyed) + +proc PreRealloc*( + self: ptr IMallocSpy, + pRequest: pointer, + cbRequest: SIZE_T, + ppNewRequest: ptr pointer, + fSpyed: WINBOOL, +): SIZE_T {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreRealloc(self, pRequest, cbRequest, ppNewRequest, fSpyed) + +proc PostRealloc*( + self: ptr IMallocSpy, pActual: pointer, fSpyed: WINBOOL +): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostRealloc(self, pActual, fSpyed) + +proc PreGetSize*( + self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL +): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreGetSize(self, pRequest, fSpyed) + +proc PostGetSize*( + self: ptr IMallocSpy, cbActual: SIZE_T, fSpyed: WINBOOL +): SIZE_T {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostGetSize(self, cbActual, fSpyed) + +proc PreDidAlloc*( + self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL +): pointer {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreDidAlloc(self, pRequest, fSpyed) + +proc PostDidAlloc*( + self: ptr IMallocSpy, pRequest: pointer, fSpyed: WINBOOL, fActual: int32 +): int32 {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostDidAlloc(self, pRequest, fSpyed, fActual) + +proc PreHeapMinimize*(self: ptr IMallocSpy): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreHeapMinimize(self) + +proc PostHeapMinimize*(self: ptr IMallocSpy): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostHeapMinimize(self) + +proc RegisterObjectBound*( + self: ptr IBindCtx, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterObjectBound(self, punk) + +proc RevokeObjectBound*( + self: ptr IBindCtx, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RevokeObjectBound(self, punk) + +proc ReleaseBoundObjects*(self: ptr IBindCtx): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseBoundObjects(self) + +proc SetBindOptions*( + self: ptr IBindCtx, pbindopts: ptr BIND_OPTS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBindOptions(self, pbindopts) + +proc GetBindOptions*( + self: ptr IBindCtx, pbindopts: ptr BIND_OPTS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindOptions(self, pbindopts) + +proc GetRunningObjectTable*( + self: ptr IBindCtx, pprot: ptr ptr IRunningObjectTable +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRunningObjectTable(self, pprot) + +proc RegisterObjectParam*( + self: ptr IBindCtx, pszKey: LPOLESTR, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterObjectParam(self, pszKey, punk) + +proc GetObjectParam*( + self: ptr IBindCtx, pszKey: LPOLESTR, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectParam(self, pszKey, ppunk) + +proc EnumObjectParam*( + self: ptr IBindCtx, ppenum: ptr ptr IEnumString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumObjectParam(self, ppenum) + +proc RevokeObjectParam*( + self: ptr IBindCtx, pszKey: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RevokeObjectParam(self, pszKey) + +proc Next*( + self: ptr IEnumMoniker, + celt: ULONG, + rgelt: ptr ptr IMoniker, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumMoniker, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumMoniker): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumMoniker, ppenum: ptr ptr IEnumMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc GetRunningClass*( + self: ptr IRunnableObject, lpClsid: LPCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRunningClass(self, lpClsid) + +proc Run*(self: ptr IRunnableObject, pbc: LPBINDCTX): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Run(self, pbc) + +proc IsRunning*(self: ptr IRunnableObject): WINBOOL {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRunning(self) + +proc LockRunning*( + self: ptr IRunnableObject, fLock: WINBOOL, fLastUnlockCloses: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockRunning(self, fLock, fLastUnlockCloses) + +proc SetContainedObject*( + self: ptr IRunnableObject, fContained: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetContainedObject(self, fContained) + +proc Register*( + self: ptr IRunningObjectTable, + grfFlags: DWORD, + punkObject: ptr IUnknown, + pmkObjectName: ptr IMoniker, + pdwRegister: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Register(self, grfFlags, punkObject, pmkObjectName, pdwRegister) + +proc Revoke*( + self: ptr IRunningObjectTable, dwRegister: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Revoke(self, dwRegister) + +proc IsRunning*( + self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRunning(self, pmkObjectName) + +proc GetObject*( + self: ptr IRunningObjectTable, + pmkObjectName: ptr IMoniker, + ppunkObject: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObject(self, pmkObjectName, ppunkObject) + +proc NoteChangeTime*( + self: ptr IRunningObjectTable, dwRegister: DWORD, pfiletime: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NoteChangeTime(self, dwRegister, pfiletime) + +proc GetTimeOfLastChange*( + self: ptr IRunningObjectTable, pmkObjectName: ptr IMoniker, pfiletime: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTimeOfLastChange(self, pmkObjectName, pfiletime) + +proc EnumRunning*( + self: ptr IRunningObjectTable, ppenumMoniker: ptr ptr IEnumMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRunning(self, ppenumMoniker) + +proc GetClassID*(self: ptr IPersist, pClassID: ptr CLSID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClassID(self, pClassID) + +proc IsDirty*(self: ptr IPersistStream): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc Load*(self: ptr IPersistStream, pStm: ptr IStream): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pStm) + +proc Save*( + self: ptr IPersistStream, pStm: ptr IStream, fClearDirty: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pStm, fClearDirty) + +proc GetSizeMax*( + self: ptr IPersistStream, pcbSize: ptr ULARGE_INTEGER +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSizeMax(self, pcbSize) + +proc BindToObject*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + riidResult: REFIID, + ppvResult: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToObject(self, pbc, pmkToLeft, riidResult, ppvResult) + +proc BindToStorage*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + riid: REFIID, + ppvObj: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToStorage(self, pbc, pmkToLeft, riid, ppvObj) + +proc Reduce*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + dwReduceHowFar: DWORD, + ppmkToLeft: ptr ptr IMoniker, + ppmkReduced: ptr ptr IMoniker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reduce(self, pbc, dwReduceHowFar, ppmkToLeft, ppmkReduced) + +proc ComposeWith*( + self: ptr IMoniker, + pmkRight: ptr IMoniker, + fOnlyIfNotGeneric: WINBOOL, + ppmkComposite: ptr ptr IMoniker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ComposeWith(self, pmkRight, fOnlyIfNotGeneric, ppmkComposite) + +proc Enum*( + self: ptr IMoniker, fForward: WINBOOL, ppenumMoniker: ptr ptr IEnumMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enum(self, fForward, ppenumMoniker) + +proc IsEqual*( + self: ptr IMoniker, pmkOtherMoniker: ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqual(self, pmkOtherMoniker) + +proc Hash*(self: ptr IMoniker, pdwHash: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Hash(self, pdwHash) + +proc IsRunning*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + pmkNewlyRunning: ptr IMoniker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRunning(self, pbc, pmkToLeft, pmkNewlyRunning) + +proc GetTimeOfLastChange*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + pFileTime: ptr FILETIME, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTimeOfLastChange(self, pbc, pmkToLeft, pFileTime) + +proc Inverse*(self: ptr IMoniker, ppmk: ptr ptr IMoniker): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Inverse(self, ppmk) + +proc CommonPrefixWith*( + self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkPrefix: ptr ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CommonPrefixWith(self, pmkOther, ppmkPrefix) + +proc RelativePathTo*( + self: ptr IMoniker, pmkOther: ptr IMoniker, ppmkRelPath: ptr ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RelativePathTo(self, pmkOther, ppmkRelPath) + +proc GetDisplayName*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + ppszDisplayName: ptr LPOLESTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayName(self, pbc, pmkToLeft, ppszDisplayName) + +proc ParseDisplayName*( + self: ptr IMoniker, + pbc: ptr IBindCtx, + pmkToLeft: ptr IMoniker, + pszDisplayName: LPOLESTR, + pchEaten: ptr ULONG, + ppmkOut: ptr ptr IMoniker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseDisplayName( + self, pbc, pmkToLeft, pszDisplayName, pchEaten, ppmkOut + ) + +proc IsSystemMoniker*( + self: ptr IMoniker, pdwMksys: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsSystemMoniker(self, pdwMksys) + +proc GetComparisonData*( + self: ptr IROTData, pbData: ptr uint8, cbMax: ULONG, pcbData: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetComparisonData(self, pbData, cbMax, pcbData) + +proc Next*( + self: ptr IEnumSTATSTG, celt: ULONG, rgelt: ptr STATSTG, pceltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumSTATSTG, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumSTATSTG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumSTATSTG, ppenum: ptr ptr IEnumSTATSTG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc CreateStream*( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + grfMode: DWORD, + reserved1: DWORD, + reserved2: DWORD, + ppstm: ptr ptr IStream, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateStream(self, pwcsName, grfMode, reserved1, reserved2, ppstm) + +proc OpenStream*( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + reserved1: pointer, + grfMode: DWORD, + reserved2: DWORD, + ppstm: ptr ptr IStream, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenStream(self, pwcsName, reserved1, grfMode, reserved2, ppstm) + +proc CreateStorage*( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + grfMode: DWORD, + reserved1: DWORD, + reserved2: DWORD, + ppstg: ptr ptr IStorage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateStorage(self, pwcsName, grfMode, reserved1, reserved2, ppstg) + +proc OpenStorage*( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + pstgPriority: ptr IStorage, + grfMode: DWORD, + snbExclude: SNB, + reserved: DWORD, + ppstg: ptr ptr IStorage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenStorage( + self, pwcsName, pstgPriority, grfMode, snbExclude, reserved, ppstg + ) + +proc CopyTo*( + self: ptr IStorage, + ciidExclude: DWORD, + rgiidExclude: ptr IID, + snbExclude: SNB, + pstgDest: ptr IStorage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyTo(self, ciidExclude, rgiidExclude, snbExclude, pstgDest) + +proc MoveElementTo*( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + pstgDest: ptr IStorage, + pwcsNewName: ptr OLECHAR, + grfFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveElementTo(self, pwcsName, pstgDest, pwcsNewName, grfFlags) + +proc Commit*(self: ptr IStorage, grfCommitFlags: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self, grfCommitFlags) + +proc Revert*(self: ptr IStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Revert(self) + +proc EnumElements*( + self: ptr IStorage, + reserved1: DWORD, + reserved2: pointer, + reserved3: DWORD, + ppenum: ptr ptr IEnumSTATSTG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumElements(self, reserved1, reserved2, reserved3, ppenum) + +proc DestroyElement*( + self: ptr IStorage, pwcsName: ptr OLECHAR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyElement(self, pwcsName) + +proc RenameElement*( + self: ptr IStorage, pwcsOldName: ptr OLECHAR, pwcsNewName: ptr OLECHAR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RenameElement(self, pwcsOldName, pwcsNewName) + +proc SetElementTimes*( + self: ptr IStorage, + pwcsName: ptr OLECHAR, + pctime: ptr FILETIME, + patime: ptr FILETIME, + pmtime: ptr FILETIME, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetElementTimes(self, pwcsName, pctime, patime, pmtime) + +proc SetClass*(self: ptr IStorage, clsid: REFCLSID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClass(self, clsid) + +proc SetStateBits*( + self: ptr IStorage, grfStateBits: DWORD, grfMask: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStateBits(self, grfStateBits, grfMask) + +proc Stat*( + self: ptr IStorage, pstatstg: ptr STATSTG, grfStatFlag: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stat(self, pstatstg, grfStatFlag) + +proc IsDirty*(self: ptr IPersistFile): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc Load*( + self: ptr IPersistFile, pszFileName: LPCOLESTR, dwMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pszFileName, dwMode) + +proc Save*( + self: ptr IPersistFile, pszFileName: LPCOLESTR, fRemember: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pszFileName, fRemember) + +proc SaveCompleted*( + self: ptr IPersistFile, pszFileName: LPCOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveCompleted(self, pszFileName) + +proc GetCurFile*( + self: ptr IPersistFile, ppszFileName: ptr LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurFile(self, ppszFileName) + +proc IsDirty*(self: ptr IPersistStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc InitNew*( + self: ptr IPersistStorage, pStg: ptr IStorage +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self, pStg) + +proc Load*(self: ptr IPersistStorage, pStg: ptr IStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pStg) + +proc Save*( + self: ptr IPersistStorage, pStgSave: ptr IStorage, fSameAsLoad: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pStgSave, fSameAsLoad) + +proc SaveCompleted*( + self: ptr IPersistStorage, pStgNew: ptr IStorage +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveCompleted(self, pStgNew) + +proc HandsOffStorage*(self: ptr IPersistStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandsOffStorage(self) + +proc ReadAt*( + self: ptr ILockBytes, + ulOffset: ULARGE_INTEGER, + pv: pointer, + cb: ULONG, + pcbRead: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadAt(self, ulOffset, pv, cb, pcbRead) + +proc WriteAt*( + self: ptr ILockBytes, + ulOffset: ULARGE_INTEGER, + pv: pointer, + cb: ULONG, + pcbWritten: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteAt(self, ulOffset, pv, cb, pcbWritten) + +proc Flush*(self: ptr ILockBytes): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Flush(self) + +proc SetSize*(self: ptr ILockBytes, cb: ULARGE_INTEGER): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSize(self, cb) + +proc LockRegion*( + self: ptr ILockBytes, + libOffset: ULARGE_INTEGER, + cb: ULARGE_INTEGER, + dwLockType: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockRegion(self, libOffset, cb, dwLockType) + +proc UnlockRegion*( + self: ptr ILockBytes, + libOffset: ULARGE_INTEGER, + cb: ULARGE_INTEGER, + dwLockType: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnlockRegion(self, libOffset, cb, dwLockType) + +proc Stat*( + self: ptr ILockBytes, pstatstg: ptr STATSTG, grfStatFlag: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stat(self, pstatstg, grfStatFlag) + +proc Next*( + self: ptr IEnumFORMATETC, celt: ULONG, rgelt: ptr FORMATETC, pceltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumFORMATETC, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumFORMATETC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumFORMATETC, ppenum: ptr ptr IEnumFORMATETC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Next*( + self: ptr IEnumSTATDATA, celt: ULONG, rgelt: ptr STATDATA, pceltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumSTATDATA, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumSTATDATA): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumSTATDATA, ppenum: ptr ptr IEnumSTATDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc SwitchToFile*( + self: ptr IRootStorage, pszFile: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchToFile(self, pszFile) + +proc OnDataChange*( + self: ptr IAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDataChange(self, pFormatetc, pStgmed) + +proc OnViewChange*( + self: ptr IAdviseSink, dwAspect: DWORD, lindex: LONG +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnViewChange(self, dwAspect, lindex) + +proc OnRename*(self: ptr IAdviseSink, pmk: ptr IMoniker): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnRename(self, pmk) + +proc OnSave*(self: ptr IAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSave(self) + +proc OnClose*(self: ptr IAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnClose(self) + +proc Begin_OnDataChange*( + self: ptr AsyncIAdviseSink, pFormatetc: ptr FORMATETC, pStgmed: ptr STGMEDIUM +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_OnDataChange(self, pFormatetc, pStgmed) + +proc Finish_OnDataChange*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_OnDataChange(self) + +proc Begin_OnViewChange*( + self: ptr AsyncIAdviseSink, dwAspect: DWORD, lindex: LONG +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_OnViewChange(self, dwAspect, lindex) + +proc Finish_OnViewChange*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_OnViewChange(self) + +proc Begin_OnRename*( + self: ptr AsyncIAdviseSink, pmk: ptr IMoniker +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_OnRename(self, pmk) + +proc Finish_OnRename*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_OnRename(self) + +proc Begin_OnSave*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_OnSave(self) + +proc Finish_OnSave*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_OnSave(self) + +proc Begin_OnClose*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_OnClose(self) + +proc Finish_OnClose*(self: ptr AsyncIAdviseSink): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_OnClose(self) + +proc OnLinkSrcChange*( + self: ptr IAdviseSink2, pmk: ptr IMoniker +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnLinkSrcChange(self, pmk) + +proc Begin_OnLinkSrcChange*( + self: ptr AsyncIAdviseSink2, pmk: ptr IMoniker +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin_OnLinkSrcChange(self, pmk) + +proc Finish_OnLinkSrcChange*(self: ptr AsyncIAdviseSink2): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Finish_OnLinkSrcChange(self) + +proc GetData*( + self: ptr IDataObject, pformatetcIn: ptr FORMATETC, pmedium: ptr STGMEDIUM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetData(self, pformatetcIn, pmedium) + +proc GetDataHere*( + self: ptr IDataObject, pformatetc: ptr FORMATETC, pmedium: ptr STGMEDIUM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDataHere(self, pformatetc, pmedium) + +proc QueryGetData*( + self: ptr IDataObject, pformatetc: ptr FORMATETC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryGetData(self, pformatetc) + +proc GetCanonicalFormatEtc*( + self: ptr IDataObject, pformatectIn: ptr FORMATETC, pformatetcOut: ptr FORMATETC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCanonicalFormatEtc(self, pformatectIn, pformatetcOut) + +proc SetData*( + self: ptr IDataObject, + pformatetc: ptr FORMATETC, + pmedium: ptr STGMEDIUM, + fRelease: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetData(self, pformatetc, pmedium, fRelease) + +proc EnumFormatEtc*( + self: ptr IDataObject, dwDirection: DWORD, ppenumFormatEtc: ptr ptr IEnumFORMATETC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumFormatEtc(self, dwDirection, ppenumFormatEtc) + +proc DAdvise*( + self: ptr IDataObject, + pformatetc: ptr FORMATETC, + advf: DWORD, + pAdvSink: ptr IAdviseSink, + pdwConnection: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DAdvise(self, pformatetc, advf, pAdvSink, pdwConnection) + +proc DUnadvise*( + self: ptr IDataObject, dwConnection: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DUnadvise(self, dwConnection) + +proc EnumDAdvise*( + self: ptr IDataObject, ppenumAdvise: ptr ptr IEnumSTATDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumDAdvise(self, ppenumAdvise) + +proc Advise*( + self: ptr IDataAdviseHolder, + pDataObject: ptr IDataObject, + pFetc: ptr FORMATETC, + advf: DWORD, + pAdvise: ptr IAdviseSink, + pdwConnection: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pDataObject, pFetc, advf, pAdvise, pdwConnection) + +proc Unadvise*( + self: ptr IDataAdviseHolder, dwConnection: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwConnection) + +proc EnumAdvise*( + self: ptr IDataAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumAdvise(self, ppenumAdvise) + +proc SendOnDataChange*( + self: ptr IDataAdviseHolder, + pDataObject: ptr IDataObject, + dwReserved: DWORD, + advf: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendOnDataChange(self, pDataObject, dwReserved, advf) + +proc HandleInComingCall*( + self: ptr IMessageFilter, + dwCallType: DWORD, + htaskCaller: HTASK, + dwTickCount: DWORD, + lpInterfaceInfo: LPINTERFACEINFO, +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleInComingCall( + self, dwCallType, htaskCaller, dwTickCount, lpInterfaceInfo + ) + +proc RetryRejectedCall*( + self: ptr IMessageFilter, + htaskCallee: HTASK, + dwTickCount: DWORD, + dwRejectType: DWORD, +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RetryRejectedCall(self, htaskCallee, dwTickCount, dwRejectType) + +proc MessagePending*( + self: ptr IMessageFilter, + htaskCallee: HTASK, + dwTickCount: DWORD, + dwPendingType: DWORD, +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MessagePending(self, htaskCallee, dwTickCount, dwPendingType) + +proc GetClassObject*( + self: ptr IClassActivator, + rclsid: REFCLSID, + dwClassContext: DWORD, + locale: LCID, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClassObject(self, rclsid, dwClassContext, locale, riid, ppv) + +proc FillAppend*( + self: ptr IFillLockBytes, pv: pointer, cb: ULONG, pcbWritten: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FillAppend(self, pv, cb, pcbWritten) + +proc FillAt*( + self: ptr IFillLockBytes, + ulOffset: ULARGE_INTEGER, + pv: pointer, + cb: ULONG, + pcbWritten: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FillAt(self, ulOffset, pv, cb, pcbWritten) + +proc SetFillSize*( + self: ptr IFillLockBytes, ulSize: ULARGE_INTEGER +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFillSize(self, ulSize) + +proc Terminate*( + self: ptr IFillLockBytes, bCanceled: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Terminate(self, bCanceled) + +proc OnProgress*( + self: ptr IProgressNotify, + dwProgressCurrent: DWORD, + dwProgressMaximum: DWORD, + fAccurate: WINBOOL, + fOwner: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnProgress( + self, dwProgressCurrent, dwProgressMaximum, fAccurate, fOwner + ) + +proc LayoutScript*( + self: ptr ILayoutStorage, + pStorageLayout: ptr StorageLayout, + nEntries: DWORD, + glfInterleavedFlag: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LayoutScript(self, pStorageLayout, nEntries, glfInterleavedFlag) + +proc BeginMonitor*(self: ptr ILayoutStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginMonitor(self) + +proc EndMonitor*(self: ptr ILayoutStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndMonitor(self) + +proc ReLayoutDocfile*( + self: ptr ILayoutStorage, pwcsNewDfName: ptr OLECHAR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReLayoutDocfile(self, pwcsNewDfName) + +proc ReLayoutDocfileOnILockBytes*( + self: ptr ILayoutStorage, pILockBytes: ptr ILockBytes +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReLayoutDocfileOnILockBytes(self, pILockBytes) + +proc Lock*(self: ptr IBlockingLock, dwTimeout: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Lock(self, dwTimeout) + +proc Unlock*(self: ptr IBlockingLock): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unlock(self) + +proc SuppressChanges*( + self: ptr ITimeAndNoticeControl, res1: DWORD, res2: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SuppressChanges(self, res1, res2) + +proc CreateStorageEx*( + self: ptr IOplockStorage, + pwcsName: LPCWSTR, + grfMode: DWORD, + stgfmt: DWORD, + grfAttrs: DWORD, + riid: REFIID, + ppstgOpen: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateStorageEx( + self, pwcsName, grfMode, stgfmt, grfAttrs, riid, ppstgOpen + ) + +proc OpenStorageEx*( + self: ptr IOplockStorage, + pwcsName: LPCWSTR, + grfMode: DWORD, + stgfmt: DWORD, + grfAttrs: DWORD, + riid: REFIID, + ppstgOpen: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenStorageEx( + self, pwcsName, grfMode, stgfmt, grfAttrs, riid, ppstgOpen + ) + +proc WaitForWriteAccess*( + self: ptr IDirectWriterLock, dwTimeout: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WaitForWriteAccess(self, dwTimeout) + +proc ReleaseWriteAccess*(self: ptr IDirectWriterLock): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseWriteAccess(self) + +proc HaveWriteAccess*(self: ptr IDirectWriterLock): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HaveWriteAccess(self) + +proc AsyncGetClassBits*( + self: ptr IUrlMon, + rclsid: REFCLSID, + pszTYPE: LPCWSTR, + pszExt: LPCWSTR, + dwFileVersionMS: DWORD, + dwFileVersionLS: DWORD, + pszCodeBase: LPCWSTR, + pbc: ptr IBindCtx, + dwClassContext: DWORD, + riid: REFIID, + flags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AsyncGetClassBits( + self, rclsid, pszTYPE, pszExt, dwFileVersionMS, dwFileVersionLS, pszCodeBase, pbc, + dwClassContext, riid, flags, + ) + +proc AllowForegroundTransfer*( + self: ptr IForegroundTransfer, lpvReserved: pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AllowForegroundTransfer(self, lpvReserved) + +proc ExtractThumbnail*( + self: ptr IThumbnailExtractor, + pStg: ptr IStorage, + ulLength: ULONG, + ulHeight: ULONG, + pulOutputLength: ptr ULONG, + pulOutputHeight: ptr ULONG, + phOutputBitmap: ptr HBITMAP, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExtractThumbnail( + self, pStg, ulLength, ulHeight, pulOutputLength, pulOutputHeight, phOutputBitmap + ) + +proc OnFileUpdated*( + self: ptr IThumbnailExtractor, pStg: ptr IStorage +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFileUpdated(self, pStg) + +proc Dummy*( + self: ptr IDummyHICONIncluder, h1: HICON, h2: HDC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Dummy(self, h1, h2) + +proc AddRefOnProcess*(self: ptr IProcessLock): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddRefOnProcess(self) + +proc ReleaseRefOnProcess*(self: ptr IProcessLock): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseRefOnProcess(self) + +proc Init*( + self: ptr ISurrogateService, + rguidProcessID: REFGUID, + pProcessLock: ptr IProcessLock, + pfApplicationAware: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Init(self, rguidProcessID, pProcessLock, pfApplicationAware) + +proc ApplicationLaunch*( + self: ptr ISurrogateService, rguidApplID: REFGUID, appType: ApplicationType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplicationLaunch(self, rguidApplID, appType) + +proc ApplicationFree*( + self: ptr ISurrogateService, rguidApplID: REFGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplicationFree(self, rguidApplID) + +proc CatalogRefresh*( + self: ptr ISurrogateService, ulReserved: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CatalogRefresh(self, ulReserved) + +proc ProcessShutdown*( + self: ptr ISurrogateService, shutdownType: ShutdownType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessShutdown(self, shutdownType) + +proc PreInitialize*( + self: ptr IInitializeSpy, dwCoInit: DWORD, dwCurThreadAptRefs: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreInitialize(self, dwCoInit, dwCurThreadAptRefs) + +proc PostInitialize*( + self: ptr IInitializeSpy, + hrCoInit: HRESULT, + dwCoInit: DWORD, + dwNewThreadAptRefs: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostInitialize(self, hrCoInit, dwCoInit, dwNewThreadAptRefs) + +proc PreUninitialize*( + self: ptr IInitializeSpy, dwCurThreadAptRefs: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreUninitialize(self, dwCurThreadAptRefs) + +proc PostUninitialize*( + self: ptr IInitializeSpy, dwNewThreadAptRefs: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostUninitialize(self, dwNewThreadAptRefs) + +proc OnUninitialize*( + self: ptr IApartmentShutdown, ui64ApartmentIdentifier: UINT64 +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnUninitialize(self, ui64ApartmentIdentifier) + +proc SetGuid*(self: ptr ICreateTypeInfo, guid: REFGUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGuid(self, guid) + +proc SetTypeFlags*( + self: ptr ICreateTypeInfo, uTypeFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTypeFlags(self, uTypeFlags) + +proc SetDocString*( + self: ptr ICreateTypeInfo, pStrDoc: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDocString(self, pStrDoc) + +proc SetHelpContext*( + self: ptr ICreateTypeInfo, dwHelpContext: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpContext(self, dwHelpContext) + +proc SetVersion*( + self: ptr ICreateTypeInfo, wMajorVerNum: WORD, wMinorVerNum: WORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVersion(self, wMajorVerNum, wMinorVerNum) + +proc AddRefTypeInfo*( + self: ptr ICreateTypeInfo, pTInfo: ptr ITypeInfo, phRefType: ptr HREFTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddRefTypeInfo(self, pTInfo, phRefType) + +proc AddFuncDesc*( + self: ptr ICreateTypeInfo, index: UINT, pFuncDesc: ptr FUNCDESC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddFuncDesc(self, index, pFuncDesc) + +proc AddImplType*( + self: ptr ICreateTypeInfo, index: UINT, hRefType: HREFTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddImplType(self, index, hRefType) + +proc SetImplTypeFlags*( + self: ptr ICreateTypeInfo, index: UINT, implTypeFlags: INT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetImplTypeFlags(self, index, implTypeFlags) + +proc SetAlignment*( + self: ptr ICreateTypeInfo, cbAlignment: WORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAlignment(self, cbAlignment) + +proc SetSchema*( + self: ptr ICreateTypeInfo, pStrSchema: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSchema(self, pStrSchema) + +proc AddVarDesc*( + self: ptr ICreateTypeInfo, index: UINT, pVarDesc: ptr VARDESC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddVarDesc(self, index, pVarDesc) + +proc SetFuncAndParamNames*( + self: ptr ICreateTypeInfo, index: UINT, rgszNames: ptr LPOLESTR, cNames: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFuncAndParamNames(self, index, rgszNames, cNames) + +proc SetVarName*( + self: ptr ICreateTypeInfo, index: UINT, szName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVarName(self, index, szName) + +proc SetTypeDescAlias*( + self: ptr ICreateTypeInfo, pTDescAlias: ptr TYPEDESC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTypeDescAlias(self, pTDescAlias) + +proc DefineFuncAsDllEntry*( + self: ptr ICreateTypeInfo, index: UINT, szDllName: LPOLESTR, szProcName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefineFuncAsDllEntry(self, index, szDllName, szProcName) + +proc SetFuncDocString*( + self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFuncDocString(self, index, szDocString) + +proc SetVarDocString*( + self: ptr ICreateTypeInfo, index: UINT, szDocString: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVarDocString(self, index, szDocString) + +proc SetFuncHelpContext*( + self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFuncHelpContext(self, index, dwHelpContext) + +proc SetVarHelpContext*( + self: ptr ICreateTypeInfo, index: UINT, dwHelpContext: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVarHelpContext(self, index, dwHelpContext) + +proc SetMops*( + self: ptr ICreateTypeInfo, index: UINT, bstrMops: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMops(self, index, bstrMops) + +proc SetTypeIdldesc*( + self: ptr ICreateTypeInfo, pIdlDesc: ptr IDLDESC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTypeIdldesc(self, pIdlDesc) + +proc LayOut*(self: ptr ICreateTypeInfo): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LayOut(self) + +proc DeleteFuncDesc*( + self: ptr ICreateTypeInfo2, index: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteFuncDesc(self, index) + +proc DeleteFuncDescByMemId*( + self: ptr ICreateTypeInfo2, memid: MEMBERID, invKind: INVOKEKIND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteFuncDescByMemId(self, memid, invKind) + +proc DeleteVarDesc*( + self: ptr ICreateTypeInfo2, index: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteVarDesc(self, index) + +proc DeleteVarDescByMemId*( + self: ptr ICreateTypeInfo2, memid: MEMBERID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteVarDescByMemId(self, memid) + +proc DeleteImplType*( + self: ptr ICreateTypeInfo2, index: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteImplType(self, index) + +proc SetCustData*( + self: ptr ICreateTypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCustData(self, guid, pVarVal) + +proc SetFuncCustData*( + self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFuncCustData(self, index, guid, pVarVal) + +proc SetParamCustData*( + self: ptr ICreateTypeInfo2, + indexFunc: UINT, + indexParam: UINT, + guid: REFGUID, + pVarVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetParamCustData(self, indexFunc, indexParam, guid, pVarVal) + +proc SetVarCustData*( + self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVarCustData(self, index, guid, pVarVal) + +proc SetImplTypeCustData*( + self: ptr ICreateTypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetImplTypeCustData(self, index, guid, pVarVal) + +proc SetHelpStringContext*( + self: ptr ICreateTypeInfo2, dwHelpStringContext: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpStringContext(self, dwHelpStringContext) + +proc SetFuncHelpStringContext*( + self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFuncHelpStringContext(self, index, dwHelpStringContext) + +proc SetVarHelpStringContext*( + self: ptr ICreateTypeInfo2, index: UINT, dwHelpStringContext: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVarHelpStringContext(self, index, dwHelpStringContext) + +proc Invalidate*(self: ptr ICreateTypeInfo2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invalidate(self) + +proc SetName*( + self: ptr ICreateTypeInfo2, szName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetName(self, szName) + +proc CreateTypeInfo*( + self: ptr ICreateTypeLib, + szName: LPOLESTR, + tkind: TYPEKIND, + ppCTInfo: ptr ptr ICreateTypeInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateTypeInfo(self, szName, tkind, ppCTInfo) + +proc SetName*(self: ptr ICreateTypeLib, szName: LPOLESTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetName(self, szName) + +proc SetVersion*( + self: ptr ICreateTypeLib, wMajorVerNum: WORD, wMinorVerNum: WORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVersion(self, wMajorVerNum, wMinorVerNum) + +proc SetGuid*(self: ptr ICreateTypeLib, guid: REFGUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGuid(self, guid) + +proc SetDocString*( + self: ptr ICreateTypeLib, szDoc: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDocString(self, szDoc) + +proc SetHelpFileName*( + self: ptr ICreateTypeLib, szHelpFileName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpFileName(self, szHelpFileName) + +proc SetHelpContext*( + self: ptr ICreateTypeLib, dwHelpContext: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpContext(self, dwHelpContext) + +proc SetLcid*(self: ptr ICreateTypeLib, lcid: LCID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLcid(self, lcid) + +proc SetLibFlags*( + self: ptr ICreateTypeLib, uLibFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLibFlags(self, uLibFlags) + +proc SaveAllChanges*(self: ptr ICreateTypeLib): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveAllChanges(self) + +proc DeleteTypeInfo*( + self: ptr ICreateTypeLib2, szName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteTypeInfo(self, szName) + +proc SetCustData*( + self: ptr ICreateTypeLib2, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCustData(self, guid, pVarVal) + +proc SetHelpStringContext*( + self: ptr ICreateTypeLib2, dwHelpStringContext: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpStringContext(self, dwHelpStringContext) + +proc SetHelpStringDll*( + self: ptr ICreateTypeLib2, szFileName: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpStringDll(self, szFileName) + +proc GetTypeInfoCount*( + self: ptr IDispatch, pctinfo: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfoCount(self, pctinfo) + +proc GetTypeInfo*( + self: ptr IDispatch, iTInfo: UINT, lcid: LCID, ppTInfo: ptr ptr ITypeInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfo(self, iTInfo, lcid, ppTInfo) + +proc GetIDsOfNames*( + self: ptr IDispatch, + riid: REFIID, + rgszNames: ptr LPOLESTR, + cNames: UINT, + lcid: LCID, + rgDispId: ptr DISPID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDsOfNames(self, riid, rgszNames, cNames, lcid, rgDispId) + +proc Invoke*( + self: ptr IDispatch, + dispIdMember: DISPID, + riid: REFIID, + lcid: LCID, + wFlags: WORD, + pDispParams: ptr DISPPARAMS, + pVarResult: ptr VARIANT, + pExcepInfo: ptr EXCEPINFO, + puArgErr: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke( + self, dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, + puArgErr, + ) + +proc Next*( + self: ptr IEnumVARIANT, celt: ULONG, rgVar: ptr VARIANT, pCeltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgVar, pCeltFetched) + +proc Skip*(self: ptr IEnumVARIANT, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumVARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumVARIANT, ppEnum: ptr ptr IEnumVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc Bind*( + self: ptr ITypeComp, + szName: LPOLESTR, + lHashVal: ULONG, + wFlags: WORD, + ppTInfo: ptr ptr ITypeInfo, + pDescKind: ptr DESCKIND, + pBindPtr: ptr BINDPTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Bind(self, szName, lHashVal, wFlags, ppTInfo, pDescKind, pBindPtr) + +proc BindType*( + self: ptr ITypeComp, + szName: LPOLESTR, + lHashVal: ULONG, + ppTInfo: ptr ptr ITypeInfo, + ppTComp: ptr ptr ITypeComp, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindType(self, szName, lHashVal, ppTInfo, ppTComp) + +proc GetTypeAttr*( + self: ptr ITypeInfo, ppTypeAttr: ptr ptr TYPEATTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeAttr(self, ppTypeAttr) + +proc GetTypeComp*( + self: ptr ITypeInfo, ppTComp: ptr ptr ITypeComp +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeComp(self, ppTComp) + +proc GetFuncDesc*( + self: ptr ITypeInfo, index: UINT, ppFuncDesc: ptr ptr FUNCDESC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFuncDesc(self, index, ppFuncDesc) + +proc GetVarDesc*( + self: ptr ITypeInfo, index: UINT, ppVarDesc: ptr ptr VARDESC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVarDesc(self, index, ppVarDesc) + +proc GetNames*( + self: ptr ITypeInfo, + memid: MEMBERID, + rgBstrNames: ptr BSTR, + cMaxNames: UINT, + pcNames: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNames(self, memid, rgBstrNames, cMaxNames, pcNames) + +proc GetRefTypeOfImplType*( + self: ptr ITypeInfo, index: UINT, pRefType: ptr HREFTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRefTypeOfImplType(self, index, pRefType) + +proc GetImplTypeFlags*( + self: ptr ITypeInfo, index: UINT, pImplTypeFlags: ptr INT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImplTypeFlags(self, index, pImplTypeFlags) + +proc GetIDsOfNames*( + self: ptr ITypeInfo, rgszNames: ptr LPOLESTR, cNames: UINT, pMemId: ptr MEMBERID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDsOfNames(self, rgszNames, cNames, pMemId) + +proc Invoke*( + self: ptr ITypeInfo, + pvInstance: PVOID, + memid: MEMBERID, + wFlags: WORD, + pDispParams: ptr DISPPARAMS, + pVarResult: ptr VARIANT, + pExcepInfo: ptr EXCEPINFO, + puArgErr: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke( + self, pvInstance, memid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr + ) + +proc GetDocumentation*( + self: ptr ITypeInfo, + memid: MEMBERID, + pBstrName: ptr BSTR, + pBstrDocString: ptr BSTR, + pdwHelpContext: ptr DWORD, + pBstrHelpFile: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocumentation( + self, memid, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile + ) + +proc GetDllEntry*( + self: ptr ITypeInfo, + memid: MEMBERID, + invKind: INVOKEKIND, + pBstrDllName: ptr BSTR, + pBstrName: ptr BSTR, + pwOrdinal: ptr WORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDllEntry(self, memid, invKind, pBstrDllName, pBstrName, pwOrdinal) + +proc GetRefTypeInfo*( + self: ptr ITypeInfo, hRefType: HREFTYPE, ppTInfo: ptr ptr ITypeInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRefTypeInfo(self, hRefType, ppTInfo) + +proc AddressOfMember*( + self: ptr ITypeInfo, memid: MEMBERID, invKind: INVOKEKIND, ppv: ptr PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddressOfMember(self, memid, invKind, ppv) + +proc CreateInstance*( + self: ptr ITypeInfo, pUnkOuter: ptr IUnknown, riid: REFIID, ppvObj: ptr PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, pUnkOuter, riid, ppvObj) + +proc GetMops*( + self: ptr ITypeInfo, memid: MEMBERID, pBstrMops: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMops(self, memid, pBstrMops) + +proc GetContainingTypeLib*( + self: ptr ITypeInfo, ppTLib: ptr ptr ITypeLib, pIndex: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainingTypeLib(self, ppTLib, pIndex) + +proc ReleaseTypeAttr*( + self: ptr ITypeInfo, pTypeAttr: ptr TYPEATTR +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseTypeAttr(self, pTypeAttr) + +proc ReleaseFuncDesc*( + self: ptr ITypeInfo, pFuncDesc: ptr FUNCDESC +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseFuncDesc(self, pFuncDesc) + +proc ReleaseVarDesc*( + self: ptr ITypeInfo, pVarDesc: ptr VARDESC +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseVarDesc(self, pVarDesc) + +proc GetTypeKind*( + self: ptr ITypeInfo2, pTypeKind: ptr TYPEKIND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeKind(self, pTypeKind) + +proc GetTypeFlags*( + self: ptr ITypeInfo2, pTypeFlags: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeFlags(self, pTypeFlags) + +proc GetFuncIndexOfMemId*( + self: ptr ITypeInfo2, memid: MEMBERID, invKind: INVOKEKIND, pFuncIndex: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFuncIndexOfMemId(self, memid, invKind, pFuncIndex) + +proc GetVarIndexOfMemId*( + self: ptr ITypeInfo2, memid: MEMBERID, pVarIndex: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVarIndexOfMemId(self, memid, pVarIndex) + +proc GetCustData*( + self: ptr ITypeInfo2, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustData(self, guid, pVarVal) + +proc GetFuncCustData*( + self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFuncCustData(self, index, guid, pVarVal) + +proc GetParamCustData*( + self: ptr ITypeInfo2, + indexFunc: UINT, + indexParam: UINT, + guid: REFGUID, + pVarVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParamCustData(self, indexFunc, indexParam, guid, pVarVal) + +proc GetVarCustData*( + self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVarCustData(self, index, guid, pVarVal) + +proc GetImplTypeCustData*( + self: ptr ITypeInfo2, index: UINT, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImplTypeCustData(self, index, guid, pVarVal) + +proc GetDocumentation2*( + self: ptr ITypeInfo2, + memid: MEMBERID, + lcid: LCID, + pbstrHelpString: ptr BSTR, + pdwHelpStringContext: ptr DWORD, + pbstrHelpStringDll: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocumentation2( + self, memid, lcid, pbstrHelpString, pdwHelpStringContext, pbstrHelpStringDll + ) + +proc GetAllCustData*( + self: ptr ITypeInfo2, pCustData: ptr CUSTDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAllCustData(self, pCustData) + +proc GetAllFuncCustData*( + self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAllFuncCustData(self, index, pCustData) + +proc GetAllParamCustData*( + self: ptr ITypeInfo2, indexFunc: UINT, indexParam: UINT, pCustData: ptr CUSTDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAllParamCustData(self, indexFunc, indexParam, pCustData) + +proc GetAllVarCustData*( + self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAllVarCustData(self, index, pCustData) + +proc GetAllImplTypeCustData*( + self: ptr ITypeInfo2, index: UINT, pCustData: ptr CUSTDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAllImplTypeCustData(self, index, pCustData) + +proc GetTypeInfoCount*(self: ptr ITypeLib): UINT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfoCount(self) + +proc GetTypeInfo*( + self: ptr ITypeLib, index: UINT, ppTInfo: ptr ptr ITypeInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfo(self, index, ppTInfo) + +proc GetTypeInfoType*( + self: ptr ITypeLib, index: UINT, pTKind: ptr TYPEKIND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfoType(self, index, pTKind) + +proc GetTypeInfoOfGuid*( + self: ptr ITypeLib, guid: REFGUID, ppTinfo: ptr ptr ITypeInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfoOfGuid(self, guid, ppTinfo) + +proc GetLibAttr*( + self: ptr ITypeLib, ppTLibAttr: ptr ptr TLIBATTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLibAttr(self, ppTLibAttr) + +proc GetTypeComp*( + self: ptr ITypeLib, ppTComp: ptr ptr ITypeComp +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeComp(self, ppTComp) + +proc GetDocumentation*( + self: ptr ITypeLib, + index: INT, + pBstrName: ptr BSTR, + pBstrDocString: ptr BSTR, + pdwHelpContext: ptr DWORD, + pBstrHelpFile: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocumentation( + self, index, pBstrName, pBstrDocString, pdwHelpContext, pBstrHelpFile + ) + +proc IsName*( + self: ptr ITypeLib, szNameBuf: LPOLESTR, lHashVal: ULONG, pfName: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsName(self, szNameBuf, lHashVal, pfName) + +proc FindName*( + self: ptr ITypeLib, + szNameBuf: LPOLESTR, + lHashVal: ULONG, + ppTInfo: ptr ptr ITypeInfo, + rgMemId: ptr MEMBERID, + pcFound: ptr USHORT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindName(self, szNameBuf, lHashVal, ppTInfo, rgMemId, pcFound) + +proc ReleaseTLibAttr*( + self: ptr ITypeLib, pTLibAttr: ptr TLIBATTR +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseTLibAttr(self, pTLibAttr) + +proc GetCustData*( + self: ptr ITypeLib2, guid: REFGUID, pVarVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCustData(self, guid, pVarVal) + +proc GetLibStatistics*( + self: ptr ITypeLib2, pcUniqueNames: ptr ULONG, pcchUniqueNames: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLibStatistics(self, pcUniqueNames, pcchUniqueNames) + +proc GetDocumentation2*( + self: ptr ITypeLib2, + index: INT, + lcid: LCID, + pbstrHelpString: ptr BSTR, + pdwHelpStringContext: ptr DWORD, + pbstrHelpStringDll: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocumentation2( + self, index, lcid, pbstrHelpString, pdwHelpStringContext, pbstrHelpStringDll + ) + +proc GetAllCustData*( + self: ptr ITypeLib2, pCustData: ptr CUSTDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAllCustData(self, pCustData) + +proc RequestTypeChange*( + self: ptr ITypeChangeEvents, + changeKind: CHANGEKIND, + pTInfoBefore: ptr ITypeInfo, + pStrName: LPOLESTR, + pfCancel: ptr INT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestTypeChange(self, changeKind, pTInfoBefore, pStrName, pfCancel) + +proc AfterTypeChange*( + self: ptr ITypeChangeEvents, + changeKind: CHANGEKIND, + pTInfoAfter: ptr ITypeInfo, + pStrName: LPOLESTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AfterTypeChange(self, changeKind, pTInfoAfter, pStrName) + +proc GetGUID*(self: ptr IErrorInfo, pGUID: ptr GUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGUID(self, pGUID) + +proc GetSource*( + self: ptr IErrorInfo, pBstrSource: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSource(self, pBstrSource) + +proc GetDescription*( + self: ptr IErrorInfo, pBstrDescription: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescription(self, pBstrDescription) + +proc GetHelpFile*( + self: ptr IErrorInfo, pBstrHelpFile: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHelpFile(self, pBstrHelpFile) + +proc GetHelpContext*( + self: ptr IErrorInfo, pdwHelpContext: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHelpContext(self, pdwHelpContext) + +proc SetGUID*(self: ptr ICreateErrorInfo, rguid: REFGUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGUID(self, rguid) + +proc SetSource*( + self: ptr ICreateErrorInfo, szSource: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSource(self, szSource) + +proc SetDescription*( + self: ptr ICreateErrorInfo, szDescription: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDescription(self, szDescription) + +proc SetHelpFile*( + self: ptr ICreateErrorInfo, szHelpFile: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpFile(self, szHelpFile) + +proc SetHelpContext*( + self: ptr ICreateErrorInfo, dwHelpContext: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHelpContext(self, dwHelpContext) + +proc InterfaceSupportsErrorInfo*( + self: ptr ISupportErrorInfo, riid: REFIID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InterfaceSupportsErrorInfo(self, riid) + +proc CreateFromTypeInfo*( + self: ptr ITypeFactory, + pTypeInfo: ptr ITypeInfo, + riid: REFIID, + ppv: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateFromTypeInfo(self, pTypeInfo, riid, ppv) + +proc mSize*( + self: ptr ITypeMarshal, + pvType: PVOID, + dwDestContext: DWORD, + pvDestContext: PVOID, + pSize: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Size(self, pvType, dwDestContext, pvDestContext, pSize) + +proc Marshal*( + self: ptr ITypeMarshal, + pvType: PVOID, + dwDestContext: DWORD, + pvDestContext: PVOID, + cbBufferLength: ULONG, + pBuffer: ptr BYTE, + pcbWritten: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Marshal( + self, pvType, dwDestContext, pvDestContext, cbBufferLength, pBuffer, pcbWritten + ) + +proc Unmarshal*( + self: ptr ITypeMarshal, + pvType: PVOID, + dwFlags: DWORD, + cbBufferLength: ULONG, + pBuffer: ptr BYTE, + pcbRead: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unmarshal(self, pvType, dwFlags, cbBufferLength, pBuffer, pcbRead) + +proc Free*(self: ptr ITypeMarshal, pvType: PVOID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Free(self, pvType) + +proc RecordInit*(self: ptr IRecordInfo, pvNew: PVOID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecordInit(self, pvNew) + +proc RecordClear*( + self: ptr IRecordInfo, pvExisting: PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecordClear(self, pvExisting) + +proc RecordCopy*( + self: ptr IRecordInfo, pvExisting: PVOID, pvNew: PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecordCopy(self, pvExisting, pvNew) + +proc GetGuid*(self: ptr IRecordInfo, pguid: ptr GUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGuid(self, pguid) + +proc GetName*(self: ptr IRecordInfo, pbstrName: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetName(self, pbstrName) + +proc GetSize*(self: ptr IRecordInfo, pcbSize: ptr ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, pcbSize) + +proc GetTypeInfo*( + self: ptr IRecordInfo, ppTypeInfo: ptr ptr ITypeInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeInfo(self, ppTypeInfo) + +proc GetField*( + self: ptr IRecordInfo, pvData: PVOID, szFieldName: LPCOLESTR, pvarField: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetField(self, pvData, szFieldName, pvarField) + +proc GetFieldNoCopy*( + self: ptr IRecordInfo, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, + ppvDataCArray: ptr PVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFieldNoCopy(self, pvData, szFieldName, pvarField, ppvDataCArray) + +proc PutField*( + self: ptr IRecordInfo, + wFlags: ULONG, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PutField(self, wFlags, pvData, szFieldName, pvarField) + +proc PutFieldNoCopy*( + self: ptr IRecordInfo, + wFlags: ULONG, + pvData: PVOID, + szFieldName: LPCOLESTR, + pvarField: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PutFieldNoCopy(self, wFlags, pvData, szFieldName, pvarField) + +proc GetFieldNames*( + self: ptr IRecordInfo, pcNames: ptr ULONG, rgBstrNames: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFieldNames(self, pcNames, rgBstrNames) + +proc IsMatchingType*( + self: ptr IRecordInfo, pRecordInfo: ptr IRecordInfo +): WINBOOL {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsMatchingType(self, pRecordInfo) + +proc RecordCreate*(self: ptr IRecordInfo): PVOID {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecordCreate(self) + +proc RecordCreateCopy*( + self: ptr IRecordInfo, pvSource: PVOID, ppvDest: ptr PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecordCreateCopy(self, pvSource, ppvDest) + +proc RecordDestroy*( + self: ptr IRecordInfo, pvRecord: PVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecordDestroy(self, pvRecord) + +proc AddError*( + self: ptr IErrorLog, pszPropName: LPCOLESTR, pExcepInfo: ptr EXCEPINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddError(self, pszPropName, pExcepInfo) + +proc Read*( + self: ptr IPropertyBag, + pszPropName: LPCOLESTR, + pVar: ptr VARIANT, + pErrorLog: ptr IErrorLog, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Read(self, pszPropName, pVar, pErrorLog) + +proc Write*( + self: ptr IPropertyBag, pszPropName: LPCOLESTR, pVar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Write(self, pszPropName, pVar) + +proc Advise*( + self: ptr IOleAdviseHolder, pAdvise: ptr IAdviseSink, pdwConnection: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pAdvise, pdwConnection) + +proc Unadvise*( + self: ptr IOleAdviseHolder, dwConnection: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwConnection) + +proc EnumAdvise*( + self: ptr IOleAdviseHolder, ppenumAdvise: ptr ptr IEnumSTATDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumAdvise(self, ppenumAdvise) + +proc SendOnRename*( + self: ptr IOleAdviseHolder, pmk: ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendOnRename(self, pmk) + +proc SendOnSave*(self: ptr IOleAdviseHolder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendOnSave(self) + +proc SendOnClose*(self: ptr IOleAdviseHolder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendOnClose(self) + +proc Cache*( + self: ptr IOleCache, + pformatetc: ptr FORMATETC, + advf: DWORD, + pdwConnection: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cache(self, pformatetc, advf, pdwConnection) + +proc Uncache*(self: ptr IOleCache, dwConnection: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Uncache(self, dwConnection) + +proc EnumCache*( + self: ptr IOleCache, ppenumSTATDATA: ptr ptr IEnumSTATDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumCache(self, ppenumSTATDATA) + +proc InitCache*( + self: ptr IOleCache, pDataObject: ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitCache(self, pDataObject) + +proc SetData*( + self: ptr IOleCache, + pformatetc: ptr FORMATETC, + pmedium: ptr STGMEDIUM, + fRelease: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetData(self, pformatetc, pmedium, fRelease) + +proc UpdateCache*( + self: ptr IOleCache2, pDataObject: LPDATAOBJECT, grfUpdf: DWORD, pReserved: LPVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateCache(self, pDataObject, grfUpdf, pReserved) + +proc DiscardCache*( + self: ptr IOleCache2, dwDiscardOptions: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DiscardCache(self, dwDiscardOptions) + +proc OnRun*( + self: ptr IOleCacheControl, pDataObject: LPDATAOBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnRun(self, pDataObject) + +proc OnStop*(self: ptr IOleCacheControl): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStop(self) + +proc ParseDisplayName*( + self: ptr IParseDisplayName, + pbc: ptr IBindCtx, + pszDisplayName: LPOLESTR, + pchEaten: ptr ULONG, + ppmkOut: ptr ptr IMoniker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseDisplayName(self, pbc, pszDisplayName, pchEaten, ppmkOut) + +proc EnumObjects*( + self: ptr IOleContainer, grfFlags: DWORD, ppenum: ptr ptr IEnumUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumObjects(self, grfFlags, ppenum) + +proc LockContainer*( + self: ptr IOleContainer, fLock: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockContainer(self, fLock) + +proc SaveObject*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveObject(self) + +proc GetMoniker*( + self: ptr IOleClientSite, + dwAssign: DWORD, + dwWhichMoniker: DWORD, + ppmk: ptr ptr IMoniker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMoniker(self, dwAssign, dwWhichMoniker, ppmk) + +proc GetContainer*( + self: ptr IOleClientSite, ppContainer: ptr ptr IOleContainer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainer(self, ppContainer) + +proc ShowObject*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowObject(self) + +proc OnShowWindow*( + self: ptr IOleClientSite, fShow: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnShowWindow(self, fShow) + +proc RequestNewObjectLayout*(self: ptr IOleClientSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestNewObjectLayout(self) + +proc SetClientSite*( + self: ptr IOleObject, pClientSite: ptr IOleClientSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClientSite(self, pClientSite) + +proc GetClientSite*( + self: ptr IOleObject, ppClientSite: ptr ptr IOleClientSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClientSite(self, ppClientSite) + +proc SetHostNames*( + self: ptr IOleObject, szContainerApp: LPCOLESTR, szContainerObj: LPCOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHostNames(self, szContainerApp, szContainerObj) + +proc Close*(self: ptr IOleObject, dwSaveOption: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self, dwSaveOption) + +proc SetMoniker*( + self: ptr IOleObject, dwWhichMoniker: DWORD, pmk: ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMoniker(self, dwWhichMoniker, pmk) + +proc GetMoniker*( + self: ptr IOleObject, dwAssign: DWORD, dwWhichMoniker: DWORD, ppmk: ptr ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMoniker(self, dwAssign, dwWhichMoniker, ppmk) + +proc InitFromData*( + self: ptr IOleObject, + pDataObject: ptr IDataObject, + fCreation: WINBOOL, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitFromData(self, pDataObject, fCreation, dwReserved) + +proc GetClipboardData*( + self: ptr IOleObject, dwReserved: DWORD, ppDataObject: ptr ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClipboardData(self, dwReserved, ppDataObject) + +proc DoVerb*( + self: ptr IOleObject, + iVerb: LONG, + lpmsg: LPMSG, + pActiveSite: ptr IOleClientSite, + lindex: LONG, + hwndParent: HWND, + lprcPosRect: LPCRECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoVerb(self, iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect) + +proc EnumVerbs*( + self: ptr IOleObject, ppEnumOleVerb: ptr ptr IEnumOLEVERB +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumVerbs(self, ppEnumOleVerb) + +proc Update*(self: ptr IOleObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Update(self) + +proc IsUpToDate*(self: ptr IOleObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsUpToDate(self) + +proc GetUserClassID*( + self: ptr IOleObject, pClsid: ptr CLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUserClassID(self, pClsid) + +proc GetUserType*( + self: ptr IOleObject, dwFormOfType: DWORD, pszUserType: ptr LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUserType(self, dwFormOfType, pszUserType) + +proc SetExtent*( + self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetExtent(self, dwDrawAspect, psizel) + +proc GetExtent*( + self: ptr IOleObject, dwDrawAspect: DWORD, psizel: ptr SIZEL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExtent(self, dwDrawAspect, psizel) + +proc Advise*( + self: ptr IOleObject, pAdvSink: ptr IAdviseSink, pdwConnection: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pAdvSink, pdwConnection) + +proc Unadvise*(self: ptr IOleObject, dwConnection: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwConnection) + +proc EnumAdvise*( + self: ptr IOleObject, ppenumAdvise: ptr ptr IEnumSTATDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumAdvise(self, ppenumAdvise) + +proc GetMiscStatus*( + self: ptr IOleObject, dwAspect: DWORD, pdwStatus: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMiscStatus(self, dwAspect, pdwStatus) + +proc SetColorScheme*( + self: ptr IOleObject, pLogpal: ptr LOGPALETTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetColorScheme(self, pLogpal) + +proc GetWindow*(self: ptr IOleWindow, phwnd: ptr HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindow(self, phwnd) + +proc ContextSensitiveHelp*( + self: ptr IOleWindow, fEnterMode: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ContextSensitiveHelp(self, fEnterMode) + +proc SetUpdateOptions*( + self: ptr IOleLink, dwUpdateOpt: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetUpdateOptions(self, dwUpdateOpt) + +proc GetUpdateOptions*( + self: ptr IOleLink, pdwUpdateOpt: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUpdateOptions(self, pdwUpdateOpt) + +proc SetSourceMoniker*( + self: ptr IOleLink, pmk: ptr IMoniker, rclsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSourceMoniker(self, pmk, rclsid) + +proc GetSourceMoniker*( + self: ptr IOleLink, ppmk: ptr ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSourceMoniker(self, ppmk) + +proc SetSourceDisplayName*( + self: ptr IOleLink, pszStatusText: LPCOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSourceDisplayName(self, pszStatusText) + +proc GetSourceDisplayName*( + self: ptr IOleLink, ppszDisplayName: ptr LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSourceDisplayName(self, ppszDisplayName) + +proc BindToSource*( + self: ptr IOleLink, bindflags: DWORD, pbc: ptr IBindCtx +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToSource(self, bindflags, pbc) + +proc BindIfRunning*(self: ptr IOleLink): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindIfRunning(self) + +proc GetBoundSource*( + self: ptr IOleLink, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBoundSource(self, ppunk) + +proc UnbindSource*(self: ptr IOleLink): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnbindSource(self) + +proc Update*(self: ptr IOleLink, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Update(self, pbc) + +proc GetObject*( + self: ptr IOleItemContainer, + pszItem: LPOLESTR, + dwSpeedNeeded: DWORD, + pbc: ptr IBindCtx, + riid: REFIID, + ppvObject: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObject(self, pszItem, dwSpeedNeeded, pbc, riid, ppvObject) + +proc GetObjectStorage*( + self: ptr IOleItemContainer, + pszItem: LPOLESTR, + pbc: ptr IBindCtx, + riid: REFIID, + ppvStorage: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectStorage(self, pszItem, pbc, riid, ppvStorage) + +proc IsRunning*( + self: ptr IOleItemContainer, pszItem: LPOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRunning(self, pszItem) + +proc GetBorder*( + self: ptr IOleInPlaceUIWindow, lprectBorder: LPRECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBorder(self, lprectBorder) + +proc RequestBorderSpace*( + self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestBorderSpace(self, pborderwidths) + +proc SetBorderSpace*( + self: ptr IOleInPlaceUIWindow, pborderwidths: LPCBORDERWIDTHS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBorderSpace(self, pborderwidths) + +proc SetActiveObject*( + self: ptr IOleInPlaceUIWindow, + pActiveObject: ptr IOleInPlaceActiveObject, + pszObjName: LPCOLESTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetActiveObject(self, pActiveObject, pszObjName) + +proc TranslateAccelerator*( + self: ptr IOleInPlaceActiveObject, lpmsg: LPMSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, lpmsg) + +proc OnFrameWindowActivate*( + self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFrameWindowActivate(self, fActivate) + +proc OnDocWindowActivate*( + self: ptr IOleInPlaceActiveObject, fActivate: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDocWindowActivate(self, fActivate) + +proc ResizeBorder*( + self: ptr IOleInPlaceActiveObject, + prcBorder: LPCRECT, + pUIWindow: ptr IOleInPlaceUIWindow, + fFrameWindow: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResizeBorder(self, prcBorder, pUIWindow, fFrameWindow) + +proc EnableModeless*( + self: ptr IOleInPlaceActiveObject, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModeless(self, fEnable) + +proc InsertMenus*( + self: ptr IOleInPlaceFrame, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertMenus(self, hmenuShared, lpMenuWidths) + +proc SetMenu*( + self: ptr IOleInPlaceFrame, + hmenuShared: HMENU, + holemenu: HOLEMENU, + hwndActiveObject: HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMenu(self, hmenuShared, holemenu, hwndActiveObject) + +proc RemoveMenus*( + self: ptr IOleInPlaceFrame, hmenuShared: HMENU +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveMenus(self, hmenuShared) + +proc SetStatusText*( + self: ptr IOleInPlaceFrame, pszStatusText: LPCOLESTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStatusText(self, pszStatusText) + +proc EnableModeless*( + self: ptr IOleInPlaceFrame, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModeless(self, fEnable) + +proc TranslateAccelerator*( + self: ptr IOleInPlaceFrame, lpmsg: LPMSG, wID: WORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, lpmsg, wID) + +proc InPlaceDeactivate*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InPlaceDeactivate(self) + +proc UIDeactivate*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UIDeactivate(self) + +proc SetObjectRects*( + self: ptr IOleInPlaceObject, lprcPosRect: LPCRECT, lprcClipRect: LPCRECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetObjectRects(self, lprcPosRect, lprcClipRect) + +proc ReactivateAndUndo*(self: ptr IOleInPlaceObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReactivateAndUndo(self) + +proc CanInPlaceActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanInPlaceActivate(self) + +proc OnInPlaceActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnInPlaceActivate(self) + +proc OnUIActivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnUIActivate(self) + +proc GetWindowContext*( + self: ptr IOleInPlaceSite, + ppFrame: ptr ptr IOleInPlaceFrame, + ppDoc: ptr ptr IOleInPlaceUIWindow, + lprcPosRect: LPRECT, + lprcClipRect: LPRECT, + lpFrameInfo: LPOLEINPLACEFRAMEINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindowContext( + self, ppFrame, ppDoc, lprcPosRect, lprcClipRect, lpFrameInfo + ) + +proc Scroll*( + self: ptr IOleInPlaceSite, scrollExtant: SIZE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Scroll(self, scrollExtant) + +proc OnUIDeactivate*( + self: ptr IOleInPlaceSite, fUndoable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnUIDeactivate(self, fUndoable) + +proc OnInPlaceDeactivate*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnInPlaceDeactivate(self) + +proc DiscardUndoState*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DiscardUndoState(self) + +proc DeactivateAndUndo*(self: ptr IOleInPlaceSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeactivateAndUndo(self) + +proc OnPosRectChange*( + self: ptr IOleInPlaceSite, lprcPosRect: LPCRECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPosRectChange(self, lprcPosRect) + +proc FContinue*(self: ptr IContinue): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FContinue(self) + +proc Draw*( + self: ptr IViewObject, + dwDrawAspect: DWORD, + lindex: LONG, + pvAspect: pointer, + ptd: ptr DVTARGETDEVICE, + hdcTargetDev: HDC, + hdcDraw: HDC, + lprcBounds: LPCRECTL, + lprcWBounds: LPCRECTL, + pfnContinue: proc(dwContinue: ULONG_PTR): WINBOOL {.stdcall.}, + dwContinue: ULONG_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Draw( + self, dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, + lprcWBounds, pfnContinue, dwContinue, + ) + +proc GetColorSet*( + self: ptr IViewObject, + dwDrawAspect: DWORD, + lindex: LONG, + pvAspect: pointer, + ptd: ptr DVTARGETDEVICE, + hicTargetDev: HDC, + ppColorSet: ptr ptr LOGPALETTE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColorSet( + self, dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet + ) + +proc Freeze*( + self: ptr IViewObject, + dwDrawAspect: DWORD, + lindex: LONG, + pvAspect: pointer, + pdwFreeze: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Freeze(self, dwDrawAspect, lindex, pvAspect, pdwFreeze) + +proc Unfreeze*(self: ptr IViewObject, dwFreeze: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unfreeze(self, dwFreeze) + +proc SetAdvise*( + self: ptr IViewObject, aspects: DWORD, advf: DWORD, pAdvSink: ptr IAdviseSink +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAdvise(self, aspects, advf, pAdvSink) + +proc GetAdvise*( + self: ptr IViewObject, + pAspects: ptr DWORD, + pAdvf: ptr DWORD, + ppAdvSink: ptr ptr IAdviseSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAdvise(self, pAspects, pAdvf, ppAdvSink) + +proc GetExtent*( + self: ptr IViewObject2, + dwDrawAspect: DWORD, + lindex: LONG, + ptd: ptr DVTARGETDEVICE, + lpsizel: LPSIZEL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExtent(self, dwDrawAspect, lindex, ptd, lpsizel) + +proc QueryContinueDrag*( + self: ptr IDropSource, fEscapePressed: WINBOOL, grfKeyState: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryContinueDrag(self, fEscapePressed, grfKeyState) + +proc GiveFeedback*(self: ptr IDropSource, dwEffect: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GiveFeedback(self, dwEffect) + +proc DragEnter*( + self: ptr IDropTarget, + pDataObj: ptr IDataObject, + grfKeyState: DWORD, + pt: POINTL, + pdwEffect: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragEnter(self, pDataObj, grfKeyState, pt, pdwEffect) + +proc DragOver*( + self: ptr IDropTarget, grfKeyState: DWORD, pt: POINTL, pdwEffect: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragOver(self, grfKeyState, pt, pdwEffect) + +proc DragLeave*(self: ptr IDropTarget): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragLeave(self) + +proc Drop*( + self: ptr IDropTarget, + pDataObj: ptr IDataObject, + grfKeyState: DWORD, + pt: POINTL, + pdwEffect: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Drop(self, pDataObj, grfKeyState, pt, pdwEffect) + +proc DragEnterTarget*( + self: ptr IDropSourceNotify, hwndTarget: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragEnterTarget(self, hwndTarget) + +proc DragLeaveTarget*(self: ptr IDropSourceNotify): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragLeaveTarget(self) + +proc Next*( + self: ptr IEnumOLEVERB, celt: ULONG, rgelt: LPOLEVERB, pceltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumOLEVERB, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumOLEVERB): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumOLEVERB, ppenum: ptr ptr IEnumOLEVERB +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc QueryService*( + self: ptr IServiceProvider, + guidService: REFGUID, + riid: REFIID, + ppvObject: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryService(self, guidService, riid, ppvObject) + +proc hasFeature*( + self: ptr IXMLDOMImplementation, + feature: BSTR, + version: BSTR, + hasFeature: ptr VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasFeature(self, feature, version, hasFeature) + +proc get_nodeName*(self: ptr IXMLDOMNode, name: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeName(self, name) + +proc get_nodeValue*( + self: ptr IXMLDOMNode, value: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeValue(self, value) + +proc put_nodeValue*(self: ptr IXMLDOMNode, value: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_nodeValue(self, value) + +proc get_nodeType*( + self: ptr IXMLDOMNode, `type`: ptr DOMNodeType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeType(self, `type`) + +proc get_parentNode*( + self: ptr IXMLDOMNode, parent: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parentNode(self, parent) + +proc get_childNodes*( + self: ptr IXMLDOMNode, childList: ptr ptr IXMLDOMNodeList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_childNodes(self, childList) + +proc get_firstChild*( + self: ptr IXMLDOMNode, firstChild: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_firstChild(self, firstChild) + +proc get_lastChild*( + self: ptr IXMLDOMNode, lastChild: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_lastChild(self, lastChild) + +proc get_previousSibling*( + self: ptr IXMLDOMNode, previousSibling: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_previousSibling(self, previousSibling) + +proc get_nextSibling*( + self: ptr IXMLDOMNode, nextSibling: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nextSibling(self, nextSibling) + +proc get_attributes*( + self: ptr IXMLDOMNode, attributeMap: ptr ptr IXMLDOMNamedNodeMap +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attributes(self, attributeMap) + +proc insertBefore*( + self: ptr IXMLDOMNode, + newChild: ptr IXMLDOMNode, + refChild: VARIANT, + outNewChild: ptr ptr IXMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertBefore(self, newChild, refChild, outNewChild) + +proc replaceChild*( + self: ptr IXMLDOMNode, + newChild: ptr IXMLDOMNode, + oldChild: ptr IXMLDOMNode, + outOldChild: ptr ptr IXMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceChild(self, newChild, oldChild, outOldChild) + +proc removeChild*( + self: ptr IXMLDOMNode, childNode: ptr IXMLDOMNode, oldChild: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeChild(self, childNode, oldChild) + +proc appendChild*( + self: ptr IXMLDOMNode, newChild: ptr IXMLDOMNode, outNewChild: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendChild(self, newChild, outNewChild) + +proc hasChildNodes*( + self: ptr IXMLDOMNode, hasChild: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.hasChildNodes(self, hasChild) + +proc get_ownerDocument*( + self: ptr IXMLDOMNode, DOMDocument: ptr ptr IXMLDOMDocument +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ownerDocument(self, DOMDocument) + +proc cloneNode*( + self: ptr IXMLDOMNode, deep: VARIANT_BOOL, cloneRoot: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.cloneNode(self, deep, cloneRoot) + +proc get_nodeTypeString*( + self: ptr IXMLDOMNode, nodeType: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeTypeString(self, nodeType) + +proc get_text*(self: ptr IXMLDOMNode, text: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, text) + +proc put_text*(self: ptr IXMLDOMNode, text: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, text) + +proc get_specified*( + self: ptr IXMLDOMNode, isSpecified: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_specified(self, isSpecified) + +proc get_definition*( + self: ptr IXMLDOMNode, definitionNode: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_definition(self, definitionNode) + +proc get_nodeTypedValue*( + self: ptr IXMLDOMNode, typedValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_nodeTypedValue(self, typedValue) + +proc put_nodeTypedValue*( + self: ptr IXMLDOMNode, typedValue: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_nodeTypedValue(self, typedValue) + +proc get_dataType*( + self: ptr IXMLDOMNode, dataTypeName: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dataType(self, dataTypeName) + +proc put_dataType*( + self: ptr IXMLDOMNode, dataTypeName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_dataType(self, dataTypeName) + +proc get_xml*(self: ptr IXMLDOMNode, xmlString: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_xml(self, xmlString) + +proc transformNode*( + self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, xmlString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.transformNode(self, stylesheet, xmlString) + +proc selectNodes*( + self: ptr IXMLDOMNode, queryString: BSTR, resultList: ptr ptr IXMLDOMNodeList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.selectNodes(self, queryString, resultList) + +proc selectSingleNode*( + self: ptr IXMLDOMNode, queryString: BSTR, resultNode: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.selectSingleNode(self, queryString, resultNode) + +proc get_parsed*( + self: ptr IXMLDOMNode, isParsed: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parsed(self, isParsed) + +proc get_namespaceURI*( + self: ptr IXMLDOMNode, namespaceURI: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_namespaceURI(self, namespaceURI) + +proc get_prefix*( + self: ptr IXMLDOMNode, prefixString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_prefix(self, prefixString) + +proc get_baseName*( + self: ptr IXMLDOMNode, nameString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_baseName(self, nameString) + +proc transformNodeToObject*( + self: ptr IXMLDOMNode, stylesheet: ptr IXMLDOMNode, outputObject: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.transformNodeToObject(self, stylesheet, outputObject) + +proc get_doctype*( + self: ptr IXMLDOMDocument, documentType: ptr ptr IXMLDOMDocumentType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_doctype(self, documentType) + +proc get_implementation*( + self: ptr IXMLDOMDocument, impl: ptr ptr IXMLDOMImplementation +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_implementation(self, impl) + +proc get_documentElement*( + self: ptr IXMLDOMDocument, DOMElement: ptr ptr IXMLDOMElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_documentElement(self, DOMElement) + +proc putref_documentElement*( + self: ptr IXMLDOMDocument, DOMElement: ptr IXMLDOMElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.putref_documentElement(self, DOMElement) + +proc createElement*( + self: ptr IXMLDOMDocument, tagName: BSTR, element: ptr ptr IXMLDOMElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createElement(self, tagName, element) + +proc createDocumentFragment*( + self: ptr IXMLDOMDocument, docFrag: ptr ptr IXMLDOMDocumentFragment +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createDocumentFragment(self, docFrag) + +proc createTextNode*( + self: ptr IXMLDOMDocument, data: BSTR, text: ptr ptr IXMLDOMText +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createTextNode(self, data, text) + +proc createComment*( + self: ptr IXMLDOMDocument, data: BSTR, comment: ptr ptr IXMLDOMComment +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createComment(self, data, comment) + +proc createCDATASection*( + self: ptr IXMLDOMDocument, data: BSTR, cdata: ptr ptr IXMLDOMCDATASection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createCDATASection(self, data, cdata) + +proc createProcessingInstruction*( + self: ptr IXMLDOMDocument, + target: BSTR, + data: BSTR, + pi: ptr ptr IXMLDOMProcessingInstruction, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createProcessingInstruction(self, target, data, pi) + +proc createAttribute*( + self: ptr IXMLDOMDocument, name: BSTR, attribute: ptr ptr IXMLDOMAttribute +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createAttribute(self, name, attribute) + +proc createEntityReference*( + self: ptr IXMLDOMDocument, name: BSTR, entityRef: ptr ptr IXMLDOMEntityReference +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createEntityReference(self, name, entityRef) + +proc getElementsByTagName*( + self: ptr IXMLDOMDocument, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByTagName(self, tagName, resultList) + +proc createNode*( + self: ptr IXMLDOMDocument, + Type: VARIANT, + name: BSTR, + namespaceURI: BSTR, + node: ptr ptr IXMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createNode(self, Type, name, namespaceURI, node) + +proc nodeFromID*( + self: ptr IXMLDOMDocument, idString: BSTR, node: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nodeFromID(self, idString, node) + +proc load*( + self: ptr IXMLDOMDocument, xmlSource: VARIANT, isSuccessful: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.load(self, xmlSource, isSuccessful) + +proc get_readyState*( + self: ptr IXMLDOMDocument, value: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, value) + +proc get_parseError*( + self: ptr IXMLDOMDocument, errorObj: ptr ptr IXMLDOMParseError +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parseError(self, errorObj) + +proc get_url*( + self: ptr IXMLDOMDocument, urlString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_url(self, urlString) + +proc get_async*( + self: ptr IXMLDOMDocument, isAsync: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_async(self, isAsync) + +proc put_async*( + self: ptr IXMLDOMDocument, isAsync: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_async(self, isAsync) + +proc abort*(self: ptr IXMLDOMDocument): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.abort(self) + +proc loadXML*( + self: ptr IXMLDOMDocument, bstrXML: BSTR, isSuccessful: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.loadXML(self, bstrXML, isSuccessful) + +proc save*( + self: ptr IXMLDOMDocument, destination: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.save(self, destination) + +proc get_validateOnParse*( + self: ptr IXMLDOMDocument, isValidating: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_validateOnParse(self, isValidating) + +proc put_validateOnParse*( + self: ptr IXMLDOMDocument, isValidating: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_validateOnParse(self, isValidating) + +proc get_resolveExternals*( + self: ptr IXMLDOMDocument, isResolving: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_resolveExternals(self, isResolving) + +proc put_resolveExternals*( + self: ptr IXMLDOMDocument, isResolving: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_resolveExternals(self, isResolving) + +proc get_preserveWhiteSpace*( + self: ptr IXMLDOMDocument, isPreserving: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_preserveWhiteSpace(self, isPreserving) + +proc put_preserveWhiteSpace*( + self: ptr IXMLDOMDocument, isPreserving: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_preserveWhiteSpace(self, isPreserving) + +proc put_onreadystatechange*( + self: ptr IXMLDOMDocument, readystatechangeSink: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, readystatechangeSink) + +proc put_ondataavailable*( + self: ptr IXMLDOMDocument, ondataavailableSink: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ondataavailable(self, ondataavailableSink) + +proc put_ontransformnode*( + self: ptr IXMLDOMDocument, ontransformnodeSink: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ontransformnode(self, ontransformnodeSink) + +proc get_item*( + self: ptr IXMLDOMNodeList, index: LONG, listItem: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_item(self, index, listItem) + +proc get_length*( + self: ptr IXMLDOMNodeList, listLength: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, listLength) + +proc nextNode*( + self: ptr IXMLDOMNodeList, nextItem: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nextNode(self, nextItem) + +proc reset*(self: ptr IXMLDOMNodeList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.reset(self) + +proc get_newEnum*( + self: ptr IXMLDOMNodeList, ppUnk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, ppUnk) + +proc getNamedItem*( + self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getNamedItem(self, name, namedItem) + +proc setNamedItem*( + self: ptr IXMLDOMNamedNodeMap, + newItem: ptr IXMLDOMNode, + nameItem: ptr ptr IXMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setNamedItem(self, newItem, nameItem) + +proc removeNamedItem*( + self: ptr IXMLDOMNamedNodeMap, name: BSTR, namedItem: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeNamedItem(self, name, namedItem) + +proc get_item*( + self: ptr IXMLDOMNamedNodeMap, index: LONG, listItem: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_item(self, index, listItem) + +proc get_length*( + self: ptr IXMLDOMNamedNodeMap, listLength: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, listLength) + +proc getQualifiedItem*( + self: ptr IXMLDOMNamedNodeMap, + baseName: BSTR, + namespaceURI: BSTR, + qualifiedItem: ptr ptr IXMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getQualifiedItem(self, baseName, namespaceURI, qualifiedItem) + +proc removeQualifiedItem*( + self: ptr IXMLDOMNamedNodeMap, + baseName: BSTR, + namespaceURI: BSTR, + qualifiedItem: ptr ptr IXMLDOMNode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeQualifiedItem(self, baseName, namespaceURI, qualifiedItem) + +proc nextNode*( + self: ptr IXMLDOMNamedNodeMap, nextItem: ptr ptr IXMLDOMNode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.nextNode(self, nextItem) + +proc reset*(self: ptr IXMLDOMNamedNodeMap): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.reset(self) + +proc get_newEnum*( + self: ptr IXMLDOMNamedNodeMap, ppUnk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, ppUnk) + +proc get_data*( + self: ptr IXMLDOMCharacterData, data: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, data) + +proc put_data*(self: ptr IXMLDOMCharacterData, data: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, data) + +proc get_length*( + self: ptr IXMLDOMCharacterData, dataLength: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, dataLength) + +proc substringData*( + self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.substringData(self, offset, count, data) + +proc appendData*( + self: ptr IXMLDOMCharacterData, data: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.appendData(self, data) + +proc insertData*( + self: ptr IXMLDOMCharacterData, offset: LONG, data: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.insertData(self, offset, data) + +proc deleteData*( + self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.deleteData(self, offset, count) + +proc replaceData*( + self: ptr IXMLDOMCharacterData, offset: LONG, count: LONG, data: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.replaceData(self, offset, count, data) + +proc get_name*( + self: ptr IXMLDOMAttribute, attributeName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, attributeName) + +proc get_value*( + self: ptr IXMLDOMAttribute, attributeValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, attributeValue) + +proc put_value*( + self: ptr IXMLDOMAttribute, attributeValue: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_value(self, attributeValue) + +proc get_tagName*( + self: ptr IXMLDOMElement, tagName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagName(self, tagName) + +proc getAttribute*( + self: ptr IXMLDOMElement, name: BSTR, value: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, name, value) + +proc setAttribute*( + self: ptr IXMLDOMElement, name: BSTR, value: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, name, value) + +proc removeAttribute*( + self: ptr IXMLDOMElement, name: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, name) + +proc getAttributeNode*( + self: ptr IXMLDOMElement, name: BSTR, attributeNode: ptr ptr IXMLDOMAttribute +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttributeNode(self, name, attributeNode) + +proc setAttributeNode*( + self: ptr IXMLDOMElement, + DOMAttribute: ptr IXMLDOMAttribute, + attributeNode: ptr ptr IXMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttributeNode(self, DOMAttribute, attributeNode) + +proc removeAttributeNode*( + self: ptr IXMLDOMElement, + DOMAttribute: ptr IXMLDOMAttribute, + attributeNode: ptr ptr IXMLDOMAttribute, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttributeNode(self, DOMAttribute, attributeNode) + +proc getElementsByTagName*( + self: ptr IXMLDOMElement, tagName: BSTR, resultList: ptr ptr IXMLDOMNodeList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getElementsByTagName(self, tagName, resultList) + +proc normalize*(self: ptr IXMLDOMElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.normalize(self) + +proc splitText*( + self: ptr IXMLDOMText, offset: LONG, rightHandTextNode: ptr ptr IXMLDOMText +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.splitText(self, offset, rightHandTextNode) + +proc get_target*( + self: ptr IXMLDOMProcessingInstruction, name: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_target(self, name) + +proc get_data*( + self: ptr IXMLDOMProcessingInstruction, value: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_data(self, value) + +proc put_data*( + self: ptr IXMLDOMProcessingInstruction, value: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_data(self, value) + +proc get_name*( + self: ptr IXMLDOMDocumentType, rootName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, rootName) + +proc get_entities*( + self: ptr IXMLDOMDocumentType, entityMap: ptr ptr IXMLDOMNamedNodeMap +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_entities(self, entityMap) + +proc get_notations*( + self: ptr IXMLDOMDocumentType, notationMap: ptr ptr IXMLDOMNamedNodeMap +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_notations(self, notationMap) + +proc get_publicId*( + self: ptr IXMLDOMNotation, publicID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_publicId(self, publicID) + +proc get_systemId*( + self: ptr IXMLDOMNotation, systemID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemId(self, systemID) + +proc get_publicId*( + self: ptr IXMLDOMEntity, publicID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_publicId(self, publicID) + +proc get_systemId*( + self: ptr IXMLDOMEntity, systemID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_systemId(self, systemID) + +proc get_notationName*( + self: ptr IXMLDOMEntity, name: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_notationName(self, name) + +proc get_errorCode*( + self: ptr IXMLDOMParseError, errorCode: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_errorCode(self, errorCode) + +proc get_url*( + self: ptr IXMLDOMParseError, urlString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_url(self, urlString) + +proc get_reason*( + self: ptr IXMLDOMParseError, reasonString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_reason(self, reasonString) + +proc get_srcText*( + self: ptr IXMLDOMParseError, sourceString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_srcText(self, sourceString) + +proc get_line*( + self: ptr IXMLDOMParseError, lineNumber: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_line(self, lineNumber) + +proc get_linepos*( + self: ptr IXMLDOMParseError, linePosition: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_linepos(self, linePosition) + +proc get_filepos*( + self: ptr IXMLDOMParseError, filePosition: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_filepos(self, filePosition) + +proc uniqueID*( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pID: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.uniqueID(self, pNode, pID) + +proc depth*( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pDepth: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.depth(self, pNode, pDepth) + +proc childNumber*( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.childNumber(self, pNode, pNumber) + +proc ancestorChildNumber*( + self: ptr IXTLRuntime, bstrNodeName: BSTR, pNode: ptr IXMLDOMNode, pNumber: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ancestorChildNumber(self, bstrNodeName, pNode, pNumber) + +proc absoluteChildNumber*( + self: ptr IXTLRuntime, pNode: ptr IXMLDOMNode, pNumber: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.absoluteChildNumber(self, pNode, pNumber) + +proc formatIndex*( + self: ptr IXTLRuntime, + lIndex: LONG, + bstrFormat: BSTR, + pbstrFormattedString: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.formatIndex(self, lIndex, bstrFormat, pbstrFormattedString) + +proc formatNumber*( + self: ptr IXTLRuntime, + dblNumber: float64, + bstrFormat: BSTR, + pbstrFormattedString: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.formatNumber(self, dblNumber, bstrFormat, pbstrFormattedString) + +proc formatDate*( + self: ptr IXTLRuntime, + varDate: VARIANT, + bstrFormat: BSTR, + varDestLocale: VARIANT, + pbstrFormattedString: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.formatDate( + self, varDate, bstrFormat, varDestLocale, pbstrFormattedString + ) + +proc formatTime*( + self: ptr IXTLRuntime, + varTime: VARIANT, + bstrFormat: BSTR, + varDestLocale: VARIANT, + pbstrFormattedString: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.formatTime( + self, varTime, bstrFormat, varDestLocale, pbstrFormattedString + ) + +proc open*( + self: ptr IXMLHttpRequest, + bstrMethod: BSTR, + bstrUrl: BSTR, + varAsync: VARIANT, + bstrUser: VARIANT, + bstrPassword: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.open(self, bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword) + +proc setRequestHeader*( + self: ptr IXMLHttpRequest, bstrHeader: BSTR, bstrValue: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setRequestHeader(self, bstrHeader, bstrValue) + +proc getResponseHeader*( + self: ptr IXMLHttpRequest, bstrHeader: BSTR, pbstrValue: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getResponseHeader(self, bstrHeader, pbstrValue) + +proc getAllResponseHeaders*( + self: ptr IXMLHttpRequest, pbstrHeaders: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAllResponseHeaders(self, pbstrHeaders) + +proc send*(self: ptr IXMLHttpRequest, varBody: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.send(self, varBody) + +proc abort*(self: ptr IXMLHttpRequest): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.abort(self) + +proc get_status*( + self: ptr IXMLHttpRequest, plStatus: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_status(self, plStatus) + +proc get_statusText*( + self: ptr IXMLHttpRequest, pbstrStatus: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_statusText(self, pbstrStatus) + +proc get_responseXML*( + self: ptr IXMLHttpRequest, ppBody: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseXML(self, ppBody) + +proc get_responseText*( + self: ptr IXMLHttpRequest, pbstrBody: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseText(self, pbstrBody) + +proc get_responseBody*( + self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseBody(self, pvarBody) + +proc get_responseStream*( + self: ptr IXMLHttpRequest, pvarBody: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_responseStream(self, pvarBody) + +proc get_readyState*( + self: ptr IXMLHttpRequest, plState: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, plState) + +proc put_onreadystatechange*( + self: ptr IXMLHttpRequest, pReadyStateSink: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_onreadystatechange(self, pReadyStateSink) + +proc get_XMLDocument*( + self: ptr IXMLDSOControl, ppDoc: ptr ptr IXMLDOMDocument +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_XMLDocument(self, ppDoc) + +proc put_XMLDocument*( + self: ptr IXMLDSOControl, ppDoc: ptr IXMLDOMDocument +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_XMLDocument(self, ppDoc) + +proc get_JavaDSOCompatible*( + self: ptr IXMLDSOControl, fJavaDSOCompatible: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_JavaDSOCompatible(self, fJavaDSOCompatible) + +proc put_JavaDSOCompatible*( + self: ptr IXMLDSOControl, fJavaDSOCompatible: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_JavaDSOCompatible(self, fJavaDSOCompatible) + +proc get_readyState*( + self: ptr IXMLDSOControl, state: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, state) + +proc put_length*(self: ptr IXMLElementCollection, v: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_length(self, v) + +proc get_length*( + self: ptr IXMLElementCollection, p: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_length(self, p) + +proc get_newEnum*( + self: ptr IXMLElementCollection, ppUnk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_newEnum(self, ppUnk) + +proc item*( + self: ptr IXMLElementCollection, + var1: VARIANT, + var2: VARIANT, + ppDisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.item(self, var1, var2, ppDisp) + +proc get_root*( + self: ptr IXMLDocument, p: ptr ptr IXMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_root(self, p) + +proc get_fileSize*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileSize(self, p) + +proc get_fileModifiedDate*( + self: ptr IXMLDocument, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileModifiedDate(self, p) + +proc get_fileUpdatedDate*( + self: ptr IXMLDocument, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileUpdatedDate(self, p) + +proc get_URL*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_URL(self, p) + +proc put_URL*(self: ptr IXMLDocument, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_URL(self, p) + +proc get_mimeType*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mimeType(self, p) + +proc get_readyState*(self: ptr IXMLDocument, pl: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, pl) + +proc get_charset*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_charset*(self: ptr IXMLDocument, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, p) + +proc get_version*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_version(self, p) + +proc get_doctype*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_doctype(self, p) + +proc get_dtdURL*(self: ptr IXMLDocument, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dtdURL(self, p) + +proc createElement*( + self: ptr IXMLDocument, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createElement(self, vType, var1, ppElem) + +proc get_root*( + self: ptr IXMLDocument2, p: ptr ptr IXMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_root(self, p) + +proc get_fileSize*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileSize(self, p) + +proc get_fileModifiedDate*( + self: ptr IXMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileModifiedDate(self, p) + +proc get_fileUpdatedDate*( + self: ptr IXMLDocument2, p: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_fileUpdatedDate(self, p) + +proc get_URL*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_URL(self, p) + +proc put_URL*(self: ptr IXMLDocument2, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_URL(self, p) + +proc get_mimeType*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_mimeType(self, p) + +proc get_readyState*( + self: ptr IXMLDocument2, pl: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_readyState(self, pl) + +proc get_charset*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_charset(self, p) + +proc put_charset*(self: ptr IXMLDocument2, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_charset(self, p) + +proc get_version*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_version(self, p) + +proc get_doctype*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_doctype(self, p) + +proc get_dtdURL*(self: ptr IXMLDocument2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_dtdURL(self, p) + +proc createElement*( + self: ptr IXMLDocument2, vType: VARIANT, var1: VARIANT, ppElem: ptr ptr IXMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.createElement(self, vType, var1, ppElem) + +proc get_async*( + self: ptr IXMLDocument2, pf: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_async(self, pf) + +proc put_async*(self: ptr IXMLDocument2, f: VARIANT_BOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_async(self, f) + +proc get_tagName*(self: ptr IXMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagName(self, p) + +proc put_tagName*(self: ptr IXMLElement, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tagName(self, p) + +proc get_parent*( + self: ptr IXMLElement, ppParent: ptr ptr IXMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parent(self, ppParent) + +proc setAttribute*( + self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strPropertyName, PropertyValue) + +proc getAttribute*( + self: ptr IXMLElement, strPropertyName: BSTR, PropertyValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strPropertyName, PropertyValue) + +proc removeAttribute*( + self: ptr IXMLElement, strPropertyName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strPropertyName) + +proc get_children*( + self: ptr IXMLElement, pp: ptr ptr IXMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_children(self, pp) + +proc get_type*(self: ptr IXMLElement, plType: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, plType) + +proc get_text*(self: ptr IXMLElement, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc put_text*(self: ptr IXMLElement, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, p) + +proc addChild*( + self: ptr IXMLElement, pChildElem: ptr IXMLElement, lIndex: LONG, lReserved: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addChild(self, pChildElem, lIndex, lReserved) + +proc removeChild*( + self: ptr IXMLElement, pChildElem: ptr IXMLElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeChild(self, pChildElem) + +proc get_tagName*(self: ptr IXMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_tagName(self, p) + +proc put_tagName*(self: ptr IXMLElement2, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_tagName(self, p) + +proc get_parent*( + self: ptr IXMLElement2, ppParent: ptr ptr IXMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_parent(self, ppParent) + +proc setAttribute*( + self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setAttribute(self, strPropertyName, PropertyValue) + +proc getAttribute*( + self: ptr IXMLElement2, strPropertyName: BSTR, PropertyValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAttribute(self, strPropertyName, PropertyValue) + +proc removeAttribute*( + self: ptr IXMLElement2, strPropertyName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeAttribute(self, strPropertyName) + +proc get_children*( + self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_children(self, pp) + +proc get_type*(self: ptr IXMLElement2, plType: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_type(self, plType) + +proc get_text*(self: ptr IXMLElement2, p: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_text(self, p) + +proc put_text*(self: ptr IXMLElement2, p: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_text(self, p) + +proc addChild*( + self: ptr IXMLElement2, pChildElem: ptr IXMLElement2, lIndex: LONG, lReserved: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.addChild(self, pChildElem, lIndex, lReserved) + +proc removeChild*( + self: ptr IXMLElement2, pChildElem: ptr IXMLElement2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.removeChild(self, pChildElem) + +proc get_attributes*( + self: ptr IXMLElement2, pp: ptr ptr IXMLElementCollection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_attributes(self, pp) + +proc get_name*(self: ptr IXMLAttribute, n: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_name(self, n) + +proc get_value*(self: ptr IXMLAttribute, v: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_value(self, v) + +proc GetErrorInfo*( + self: ptr IXMLError, pErrorReturn: ptr XML_ERROR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetErrorInfo(self, pErrorReturn) + +proc GetClassID*( + self: ptr IPersistMoniker, pClassID: ptr CLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClassID(self, pClassID) + +proc IsDirty*(self: ptr IPersistMoniker): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc Load*( + self: ptr IPersistMoniker, + fFullyAvailable: WINBOOL, + pimkName: ptr IMoniker, + pibc: LPBC, + grfMode: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, fFullyAvailable, pimkName, pibc, grfMode) + +proc Save*( + self: ptr IPersistMoniker, pimkName: ptr IMoniker, pbc: LPBC, fRemember: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pimkName, pbc, fRemember) + +proc SaveCompleted*( + self: ptr IPersistMoniker, pimkName: ptr IMoniker, pibc: LPBC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveCompleted(self, pimkName, pibc) + +proc GetCurMoniker*( + self: ptr IPersistMoniker, ppimkName: ptr ptr IMoniker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurMoniker(self, ppimkName) + +proc PutProperty*( + self: ptr IMonikerProp, mkp: MONIKERPROPERTY, val: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PutProperty(self, mkp, val) + +proc CreateBinding*( + self: ptr IBindProtocol, szUrl: LPCWSTR, pbc: ptr IBindCtx, ppb: ptr ptr IBinding +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBinding(self, szUrl, pbc, ppb) + +proc Abort*(self: ptr IBinding): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Abort(self) + +proc Suspend*(self: ptr IBinding): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Suspend(self) + +proc Resume*(self: ptr IBinding): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resume(self) + +proc SetPriority*(self: ptr IBinding, nPriority: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPriority(self, nPriority) + +proc GetPriority*( + self: ptr IBinding, pnPriority: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPriority(self, pnPriority) + +proc GetBindResult*( + self: ptr IBinding, + pclsidProtocol: ptr CLSID, + pdwResult: ptr DWORD, + pszResult: ptr LPOLESTR, + pdwReserved: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindResult(self, pclsidProtocol, pdwResult, pszResult, pdwReserved) + +proc OnStartBinding*( + self: ptr IBindStatusCallback, dwReserved: DWORD, pib: ptr IBinding +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStartBinding(self, dwReserved, pib) + +proc GetPriority*( + self: ptr IBindStatusCallback, pnPriority: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPriority(self, pnPriority) + +proc OnLowResource*( + self: ptr IBindStatusCallback, reserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnLowResource(self, reserved) + +proc OnProgress*( + self: ptr IBindStatusCallback, + ulProgress: ULONG, + ulProgressMax: ULONG, + ulStatusCode: ULONG, + szStatusText: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnProgress(self, ulProgress, ulProgressMax, ulStatusCode, szStatusText) + +proc OnStopBinding*( + self: ptr IBindStatusCallback, hresult: HRESULT, szError: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStopBinding(self, hresult, szError) + +proc GetBindInfo*( + self: ptr IBindStatusCallback, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindInfo(self, grfBINDF, pbindinfo) + +proc OnDataAvailable*( + self: ptr IBindStatusCallback, + grfBSCF: DWORD, + dwSize: DWORD, + pformatetc: ptr FORMATETC, + pstgmed: ptr STGMEDIUM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDataAvailable(self, grfBSCF, dwSize, pformatetc, pstgmed) + +proc OnObjectAvailable*( + self: ptr IBindStatusCallback, riid: REFIID, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnObjectAvailable(self, riid, punk) + +proc GetBindInfoEx*( + self: ptr IBindStatusCallbackEx, + grfBINDF: ptr DWORD, + pbindinfo: ptr BINDINFO, + grfBINDF2: ptr DWORD, + pdwReserved: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindInfoEx(self, grfBINDF, pbindinfo, grfBINDF2, pdwReserved) + +proc Authenticate*( + self: ptr IAuthenticate, + phwnd: ptr HWND, + pszUsername: ptr LPWSTR, + pszPassword: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Authenticate(self, phwnd, pszUsername, pszPassword) + +proc AuthenticateEx*( + self: ptr IAuthenticateEx, + phwnd: ptr HWND, + pszUsername: ptr LPWSTR, + pszPassword: ptr LPWSTR, + pauthinfo: ptr AUTHENTICATEINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AuthenticateEx(self, phwnd, pszUsername, pszPassword, pauthinfo) + +proc BeginningTransaction*( + self: ptr IHttpNegotiate, + szURL: LPCWSTR, + szHeaders: LPCWSTR, + dwReserved: DWORD, + pszAdditionalHeaders: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginningTransaction( + self, szURL, szHeaders, dwReserved, pszAdditionalHeaders + ) + +proc OnResponse*( + self: ptr IHttpNegotiate, + dwResponseCode: DWORD, + szResponseHeaders: LPCWSTR, + szRequestHeaders: LPCWSTR, + pszAdditionalRequestHeaders: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnResponse( + self, dwResponseCode, szResponseHeaders, szRequestHeaders, + pszAdditionalRequestHeaders, + ) + +proc GetRootSecurityId*( + self: ptr IHttpNegotiate2, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRootSecurityId(self, pbSecurityId, pcbSecurityId, dwReserved) + +proc GetSerializedClientCertContext*( + self: ptr IHttpNegotiate3, ppbCert: ptr ptr BYTE, pcbCert: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSerializedClientCertContext(self, ppbCert, pcbCert) + +proc SetHandleForUnlock*( + self: ptr IWinInetFileStream, hWinInetLockHandle: DWORD_PTR, dwReserved: DWORD_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHandleForUnlock(self, hWinInetLockHandle, dwReserved) + +proc SetDeleteFile*( + self: ptr IWinInetFileStream, dwReserved: DWORD_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDeleteFile(self, dwReserved) + +proc GetWindow*( + self: ptr IWindowForBindingUI, rguidReason: REFGUID, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindow(self, rguidReason, phwnd) + +proc OnCodeInstallProblem*( + self: ptr ICodeInstall, + ulStatusCode: ULONG, + szDestination: LPCWSTR, + szSource: LPCWSTR, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnCodeInstallProblem( + self, ulStatusCode, szDestination, szSource, dwReserved + ) + +proc GetPropertyBSTR*( + self: ptr IUri, uriProp: Uri_PROPERTY, pbstrProperty: ptr BSTR, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyBSTR(self, uriProp, pbstrProperty, dwFlags) + +proc GetPropertyLength*( + self: ptr IUri, uriProp: Uri_PROPERTY, pcchProperty: ptr DWORD, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyLength(self, uriProp, pcchProperty, dwFlags) + +proc GetPropertyDWORD*( + self: ptr IUri, uriProp: Uri_PROPERTY, pdwProperty: ptr DWORD, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDWORD(self, uriProp, pdwProperty, dwFlags) + +proc HasProperty*( + self: ptr IUri, uriProp: Uri_PROPERTY, pfHasProperty: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasProperty(self, uriProp, pfHasProperty) + +proc GetAbsoluteUri*( + self: ptr IUri, pbstrAbsoluteUri: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAbsoluteUri(self, pbstrAbsoluteUri) + +proc GetAuthority*( + self: ptr IUri, pbstrAuthority: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAuthority(self, pbstrAuthority) + +proc GetDisplayUri*( + self: ptr IUri, pbstrDisplayString: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayUri(self, pbstrDisplayString) + +proc GetDomain*(self: ptr IUri, pbstrDomain: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDomain(self, pbstrDomain) + +proc GetExtension*( + self: ptr IUri, pbstrExtension: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExtension(self, pbstrExtension) + +proc GetFragment*(self: ptr IUri, pbstrFragment: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFragment(self, pbstrFragment) + +proc GetHost*(self: ptr IUri, pbstrHost: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHost(self, pbstrHost) + +proc GetPassword*(self: ptr IUri, pbstrPassword: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPassword(self, pbstrPassword) + +proc GetPath*(self: ptr IUri, pbstrPath: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPath(self, pbstrPath) + +proc GetPathAndQuery*( + self: ptr IUri, pbstrPathAndQuery: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPathAndQuery(self, pbstrPathAndQuery) + +proc GetQuery*(self: ptr IUri, pbstrQuery: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetQuery(self, pbstrQuery) + +proc GetRawUri*(self: ptr IUri, pbstrRawUri: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRawUri(self, pbstrRawUri) + +proc GetSchemeName*( + self: ptr IUri, pbstrSchemeName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSchemeName(self, pbstrSchemeName) + +proc GetUserInfo*(self: ptr IUri, pbstrUserInfo: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUserInfo(self, pbstrUserInfo) + +proc GetUserName*(self: ptr IUri, pbstrUserName: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUserName(self, pbstrUserName) + +proc GetHostType*(self: ptr IUri, pdwHostType: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHostType(self, pdwHostType) + +proc GetPort*(self: ptr IUri, pdwPort: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPort(self, pdwPort) + +proc GetScheme*(self: ptr IUri, pdwScheme: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScheme(self, pdwScheme) + +proc GetZone*(self: ptr IUri, pdwZone: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZone(self, pdwZone) + +proc GetProperties*(self: ptr IUri, pdwFlags: LPDWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperties(self, pdwFlags) + +proc IsEqual*( + self: ptr IUri, pUri: ptr IUri, pfEqual: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqual(self, pUri, pfEqual) + +proc GetIUri*( + self: ptr IUriContainer, ppIUri: ptr ptr IUri +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIUri(self, ppIUri) + +proc CreateUriSimple*( + self: ptr IUriBuilder, + dwAllowEncodingPropertyMask: DWORD, + dwReserved: DWORD_PTR, + ppIUri: ptr ptr IUri, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateUriSimple(self, dwAllowEncodingPropertyMask, dwReserved, ppIUri) + +proc CreateUri*( + self: ptr IUriBuilder, + dwCreateFlags: DWORD, + dwAllowEncodingPropertyMask: DWORD, + dwReserved: DWORD_PTR, + ppIUri: ptr ptr IUri, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateUri( + self, dwCreateFlags, dwAllowEncodingPropertyMask, dwReserved, ppIUri + ) + +proc CreateUriWithFlags*( + self: ptr IUriBuilder, + dwCreateFlags: DWORD, + dwUriBuilderFlags: DWORD, + dwAllowEncodingPropertyMask: DWORD, + dwReserved: DWORD_PTR, + ppIUri: ptr ptr IUri, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateUriWithFlags( + self, dwCreateFlags, dwUriBuilderFlags, dwAllowEncodingPropertyMask, dwReserved, + ppIUri, + ) + +proc GetIUri*(self: ptr IUriBuilder, ppIUri: ptr ptr IUri): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIUri(self, ppIUri) + +proc SetIUri*(self: ptr IUriBuilder, pIUri: ptr IUri): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIUri(self, pIUri) + +proc GetFragment*( + self: ptr IUriBuilder, pcchFragment: ptr DWORD, ppwzFragment: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFragment(self, pcchFragment, ppwzFragment) + +proc GetHost*( + self: ptr IUriBuilder, pcchHost: ptr DWORD, ppwzHost: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHost(self, pcchHost, ppwzHost) + +proc GetPassword*( + self: ptr IUriBuilder, pcchPassword: ptr DWORD, ppwzPassword: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPassword(self, pcchPassword, ppwzPassword) + +proc GetPath*( + self: ptr IUriBuilder, pcchPath: ptr DWORD, ppwzPath: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPath(self, pcchPath, ppwzPath) + +proc GetPort*( + self: ptr IUriBuilder, pfHasPort: ptr WINBOOL, pdwPort: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPort(self, pfHasPort, pdwPort) + +proc GetQuery*( + self: ptr IUriBuilder, pcchQuery: ptr DWORD, ppwzQuery: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetQuery(self, pcchQuery, ppwzQuery) + +proc GetSchemeName*( + self: ptr IUriBuilder, pcchSchemeName: ptr DWORD, ppwzSchemeName: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSchemeName(self, pcchSchemeName, ppwzSchemeName) + +proc GetUserName*( + self: ptr IUriBuilder, pcchUserName: ptr DWORD, ppwzUserName: ptr LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUserName(self, pcchUserName, ppwzUserName) + +proc SetFragment*( + self: ptr IUriBuilder, pwzNewValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFragment(self, pwzNewValue) + +proc SetHost*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHost(self, pwzNewValue) + +proc SetPassword*( + self: ptr IUriBuilder, pwzNewValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPassword(self, pwzNewValue) + +proc SetPath*(self: ptr IUriBuilder, pwzNewValue: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPath(self, pwzNewValue) + +proc SetPort*( + self: ptr IUriBuilder, fHasPort: WINBOOL, dwNewValue: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPort(self, fHasPort, dwNewValue) + +proc SetQuery*( + self: ptr IUriBuilder, pwzNewValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetQuery(self, pwzNewValue) + +proc SetSchemeName*( + self: ptr IUriBuilder, pwzNewValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSchemeName(self, pwzNewValue) + +proc SetUserName*( + self: ptr IUriBuilder, pwzNewValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetUserName(self, pwzNewValue) + +proc RemoveProperties*( + self: ptr IUriBuilder, dwPropertyMask: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveProperties(self, dwPropertyMask) + +proc HasBeenModified*( + self: ptr IUriBuilder, pfModified: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasBeenModified(self, pfModified) + +proc CreateIUriBuilder*( + self: ptr IUriBuilderFactory, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ppIUriBuilder: ptr ptr IUriBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateIUriBuilder(self, dwFlags, dwReserved, ppIUriBuilder) + +proc CreateInitializedIUriBuilder*( + self: ptr IUriBuilderFactory, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ppIUriBuilder: ptr ptr IUriBuilder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInitializedIUriBuilder(self, dwFlags, dwReserved, ppIUriBuilder) + +proc mQueryOption*( + self: ptr IWinInetInfo, dwOption: DWORD, pBuffer: LPVOID, pcbBuf: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryOption(self, dwOption, pBuffer, pcbBuf) + +proc OnSecurityProblem*( + self: ptr IHttpSecurity, dwProblem: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSecurityProblem(self, dwProblem) + +proc QueryInfo*( + self: ptr IWinInetHttpInfo, + dwOption: DWORD, + pBuffer: LPVOID, + pcbBuf: ptr DWORD, + pdwFlags: ptr DWORD, + pdwReserved: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryInfo(self, dwOption, pBuffer, pcbBuf, pdwFlags, pdwReserved) + +proc GetRequestTimeouts*( + self: ptr IWinInetHttpTimeouts, + pdwConnectTimeout: ptr DWORD, + pdwSendTimeout: ptr DWORD, + pdwReceiveTimeout: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRequestTimeouts( + self, pdwConnectTimeout, pdwSendTimeout, pdwReceiveTimeout + ) + +proc SetCacheExtension*( + self: ptr IWinInetCacheHints, + pwzExt: LPCWSTR, + pszCacheFile: LPVOID, + pcbCacheFile: ptr DWORD, + pdwWinInetError: ptr DWORD, + pdwReserved: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCacheExtension( + self, pwzExt, pszCacheFile, pcbCacheFile, pdwWinInetError, pdwReserved + ) + +proc SetCacheExtension2*( + self: ptr IWinInetCacheHints2, + pwzExt: LPCWSTR, + pwzCacheFile: ptr WCHAR, + pcchCacheFile: ptr DWORD, + pdwWinInetError: ptr DWORD, + pdwReserved: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCacheExtension2( + self, pwzExt, pwzCacheFile, pcchCacheFile, pdwWinInetError, pdwReserved + ) + +proc CreateMoniker*( + self: ptr IBindHost, + szName: LPOLESTR, + pBC: ptr IBindCtx, + ppmk: ptr ptr IMoniker, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateMoniker(self, szName, pBC, ppmk, dwReserved) + +proc MonikerBindToStorage*( + self: ptr IBindHost, + pMk: ptr IMoniker, + pBC: ptr IBindCtx, + pBSC: ptr IBindStatusCallback, + riid: REFIID, + ppvObj: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MonikerBindToStorage(self, pMk, pBC, pBSC, riid, ppvObj) + +proc MonikerBindToObject*( + self: ptr IBindHost, + pMk: ptr IMoniker, + pBC: ptr IBindCtx, + pBSC: ptr IBindStatusCallback, + riid: REFIID, + ppvObj: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MonikerBindToObject(self, pMk, pBC, pBSC, riid, ppvObj) + +proc GetBindInfo*( + self: ptr IInternetBindInfo, grfBINDF: ptr DWORD, pbindinfo: ptr BINDINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindInfo(self, grfBINDF, pbindinfo) + +proc GetBindString*( + self: ptr IInternetBindInfo, + ulStringType: ULONG, + ppwzStr: ptr LPOLESTR, + cEl: ULONG, + pcElFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindString(self, ulStringType, ppwzStr, cEl, pcElFetched) + +proc GetBindInfoEx*( + self: ptr IInternetBindInfoEx, + grfBINDF: ptr DWORD, + pbindinfo: ptr BINDINFO, + grfBINDF2: ptr DWORD, + pdwReserved: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindInfoEx(self, grfBINDF, pbindinfo, grfBINDF2, pdwReserved) + +proc Start*( + self: ptr IInternetProtocolRoot, + szUrl: LPCWSTR, + pOIProtSink: ptr IInternetProtocolSink, + pOIBindInfo: ptr IInternetBindInfo, + grfPI: DWORD, + dwReserved: HANDLE_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Start(self, szUrl, pOIProtSink, pOIBindInfo, grfPI, dwReserved) + +proc Continue*( + self: ptr IInternetProtocolRoot, pProtocolData: ptr PROTOCOLDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Continue(self, pProtocolData) + +proc Abort*( + self: ptr IInternetProtocolRoot, hrReason: HRESULT, dwOptions: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Abort(self, hrReason, dwOptions) + +proc Terminate*( + self: ptr IInternetProtocolRoot, dwOptions: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Terminate(self, dwOptions) + +proc Suspend*(self: ptr IInternetProtocolRoot): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Suspend(self) + +proc Resume*(self: ptr IInternetProtocolRoot): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resume(self) + +proc Read*( + self: ptr IInternetProtocol, pv: pointer, cb: ULONG, pcbRead: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Read(self, pv, cb, pcbRead) + +proc Seek*( + self: ptr IInternetProtocol, + dlibMove: LARGE_INTEGER, + dwOrigin: DWORD, + plibNewPosition: ptr ULARGE_INTEGER, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Seek(self, dlibMove, dwOrigin, plibNewPosition) + +proc LockRequest*( + self: ptr IInternetProtocol, dwOptions: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockRequest(self, dwOptions) + +proc UnlockRequest*(self: ptr IInternetProtocol): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnlockRequest(self) + +proc StartEx*( + self: ptr IInternetProtocolEx, + pUri: ptr IUri, + pOIProtSink: ptr IInternetProtocolSink, + pOIBindInfo: ptr IInternetBindInfo, + grfPI: DWORD, + dwReserved: HANDLE_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartEx(self, pUri, pOIProtSink, pOIBindInfo, grfPI, dwReserved) + +proc Switch*( + self: ptr IInternetProtocolSink, pProtocolData: ptr PROTOCOLDATA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Switch(self, pProtocolData) + +proc ReportProgress*( + self: ptr IInternetProtocolSink, ulStatusCode: ULONG, szStatusText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReportProgress(self, ulStatusCode, szStatusText) + +proc ReportData*( + self: ptr IInternetProtocolSink, + grfBSCF: DWORD, + ulProgress: ULONG, + ulProgressMax: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReportData(self, grfBSCF, ulProgress, ulProgressMax) + +proc ReportResult*( + self: ptr IInternetProtocolSink, + hrResult: HRESULT, + dwError: DWORD, + szResult: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReportResult(self, hrResult, dwError, szResult) + +proc SwitchSink*( + self: ptr IInternetProtocolSinkStackable, pOIProtSink: ptr IInternetProtocolSink +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SwitchSink(self, pOIProtSink) + +proc CommitSwitch*( + self: ptr IInternetProtocolSinkStackable +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CommitSwitch(self) + +proc RollbackSwitch*( + self: ptr IInternetProtocolSinkStackable +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RollbackSwitch(self) + +proc RegisterNameSpace*( + self: ptr IInternetSession, + pCF: ptr IClassFactory, + rclsid: REFCLSID, + pwzProtocol: LPCWSTR, + cPatterns: ULONG, + ppwzPatterns: ptr LPCWSTR, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterNameSpace( + self, pCF, rclsid, pwzProtocol, cPatterns, ppwzPatterns, dwReserved + ) + +proc UnregisterNameSpace*( + self: ptr IInternetSession, pCF: ptr IClassFactory, pszProtocol: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterNameSpace(self, pCF, pszProtocol) + +proc RegisterMimeFilter*( + self: ptr IInternetSession, + pCF: ptr IClassFactory, + rclsid: REFCLSID, + pwzType: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterMimeFilter(self, pCF, rclsid, pwzType) + +proc UnregisterMimeFilter*( + self: ptr IInternetSession, pCF: ptr IClassFactory, pwzType: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterMimeFilter(self, pCF, pwzType) + +proc CreateBinding*( + self: ptr IInternetSession, + pBC: LPBC, + szUrl: LPCWSTR, + pUnkOuter: ptr IUnknown, + ppUnk: ptr ptr IUnknown, + ppOInetProt: ptr ptr IInternetProtocol, + dwOption: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBinding(self, pBC, szUrl, pUnkOuter, ppUnk, ppOInetProt, dwOption) + +proc SetSessionOption*( + self: ptr IInternetSession, + dwOption: DWORD, + pBuffer: LPVOID, + dwBufferLength: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSessionOption(self, dwOption, pBuffer, dwBufferLength, dwReserved) + +proc GetSessionOption*( + self: ptr IInternetSession, + dwOption: DWORD, + pBuffer: LPVOID, + pdwBufferLength: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSessionOption(self, dwOption, pBuffer, pdwBufferLength, dwReserved) + +proc Prepare*(self: ptr IInternetThreadSwitch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Prepare(self) + +proc Continue*(self: ptr IInternetThreadSwitch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Continue(self) + +proc SetPriority*( + self: ptr IInternetPriority, nPriority: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPriority(self, nPriority) + +proc GetPriority*( + self: ptr IInternetPriority, pnPriority: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPriority(self, pnPriority) + +proc ParseUrl*( + self: ptr IInternetProtocolInfo, + pwzUrl: LPCWSTR, + ParseAction: PARSEACTION, + dwParseFlags: DWORD, + pwzResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseUrl( + self, pwzUrl, ParseAction, dwParseFlags, pwzResult, cchResult, pcchResult, + dwReserved, + ) + +proc CombineUrl*( + self: ptr IInternetProtocolInfo, + pwzBaseUrl: LPCWSTR, + pwzRelativeUrl: LPCWSTR, + dwCombineFlags: DWORD, + pwzResult: LPWSTR, + cchResult: DWORD, + pcchResult: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CombineUrl( + self, pwzBaseUrl, pwzRelativeUrl, dwCombineFlags, pwzResult, cchResult, + pcchResult, dwReserved, + ) + +proc CompareUrl*( + self: ptr IInternetProtocolInfo, + pwzUrl1: LPCWSTR, + pwzUrl2: LPCWSTR, + dwCompareFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareUrl(self, pwzUrl1, pwzUrl2, dwCompareFlags) + +proc QueryInfo*( + self: ptr IInternetProtocolInfo, + pwzUrl: LPCWSTR, + OueryOption: QUERYOPTION, + dwQueryFlags: DWORD, + pBuffer: LPVOID, + cbBuffer: DWORD, + pcbBuf: ptr DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryInfo( + self, pwzUrl, OueryOption, dwQueryFlags, pBuffer, cbBuffer, pcbBuf, dwReserved + ) + +proc GetWindow*( + self: ptr IInternetSecurityMgrSite, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindow(self, phwnd) + +proc EnableModeless*( + self: ptr IInternetSecurityMgrSite, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModeless(self, fEnable) + +proc SetSecuritySite*( + self: ptr IInternetSecurityManager, pSite: ptr IInternetSecurityMgrSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSecuritySite(self, pSite) + +proc GetSecuritySite*( + self: ptr IInternetSecurityManager, ppSite: ptr ptr IInternetSecurityMgrSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecuritySite(self, ppSite) + +proc MapUrlToZone*( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + pdwZone: ptr DWORD, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapUrlToZone(self, pwszUrl, pdwZone, dwFlags) + +proc GetSecurityId*( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecurityId(self, pwszUrl, pbSecurityId, pcbSecurityId, dwReserved) + +proc ProcessUrlAction*( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessUrlAction( + self, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, + dwReserved, + ) + +proc QueryCustomPolicy*( + self: ptr IInternetSecurityManager, + pwszUrl: LPCWSTR, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryCustomPolicy( + self, pwszUrl, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved + ) + +proc SetZoneMapping*( + self: ptr IInternetSecurityManager, + dwZone: DWORD, + lpszPattern: LPCWSTR, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetZoneMapping(self, dwZone, lpszPattern, dwFlags) + +proc GetZoneMappings*( + self: ptr IInternetSecurityManager, + dwZone: DWORD, + ppenumString: ptr ptr IEnumString, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneMappings(self, dwZone, ppenumString, dwFlags) + +proc ProcessUrlActionEx*( + self: ptr IInternetSecurityManagerEx, + pwszUrl: LPCWSTR, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD, + pdwOutFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessUrlActionEx( + self, pwszUrl, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, + dwReserved, pdwOutFlags, + ) + +proc MapUrlToZoneEx2*( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + pdwZone: ptr DWORD, + dwFlags: DWORD, + ppwszMappedUrl: ptr LPWSTR, + pdwOutFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapUrlToZoneEx2( + self, pUri, pdwZone, dwFlags, ppwszMappedUrl, pdwOutFlags + ) + +proc ProcessUrlActionEx2*( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + pdwOutFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessUrlActionEx2( + self, pUri, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved, + pdwOutFlags, + ) + +proc GetSecurityIdEx2*( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecurityIdEx2(self, pUri, pbSecurityId, pcbSecurityId, dwReserved) + +proc QueryCustomPolicyEx2*( + self: ptr IInternetSecurityManagerEx2, + pUri: ptr IUri, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryCustomPolicyEx2( + self, pUri, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved + ) + +proc GetId*(self: ptr IZoneIdentifier, pdwZone: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetId(self, pdwZone) + +proc SetId*(self: ptr IZoneIdentifier, dwZone: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetId(self, dwZone) + +proc Remove*(self: ptr IZoneIdentifier): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Remove(self) + +proc GetSecurityId*( + self: ptr IInternetHostSecurityManager, + pbSecurityId: ptr BYTE, + pcbSecurityId: ptr DWORD, + dwReserved: DWORD_PTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSecurityId(self, pbSecurityId, pcbSecurityId, dwReserved) + +proc ProcessUrlAction*( + self: ptr IInternetHostSecurityManager, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwFlags: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessUrlAction( + self, dwAction, pPolicy, cbPolicy, pContext, cbContext, dwFlags, dwReserved + ) + +proc QueryCustomPolicy*( + self: ptr IInternetHostSecurityManager, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + pContext: ptr BYTE, + cbContext: DWORD, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryCustomPolicy( + self, guidKey, ppPolicy, pcbPolicy, pContext, cbContext, dwReserved + ) + +proc GetZoneAttributes*( + self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneAttributes(self, dwZone, pZoneAttributes) + +proc SetZoneAttributes*( + self: ptr IInternetZoneManager, dwZone: DWORD, pZoneAttributes: ptr ZONEATTRIBUTES +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetZoneAttributes(self, dwZone, pZoneAttributes) + +proc GetZoneCustomPolicy*( + self: ptr IInternetZoneManager, + dwZone: DWORD, + guidKey: REFGUID, + ppPolicy: ptr ptr BYTE, + pcbPolicy: ptr DWORD, + urlZoneReg: URLZONEREG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneCustomPolicy( + self, dwZone, guidKey, ppPolicy, pcbPolicy, urlZoneReg + ) + +proc SetZoneCustomPolicy*( + self: ptr IInternetZoneManager, + dwZone: DWORD, + guidKey: REFGUID, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetZoneCustomPolicy( + self, dwZone, guidKey, pPolicy, cbPolicy, urlZoneReg + ) + +proc GetZoneActionPolicy*( + self: ptr IInternetZoneManager, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneActionPolicy( + self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg + ) + +proc SetZoneActionPolicy*( + self: ptr IInternetZoneManager, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetZoneActionPolicy( + self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg + ) + +proc PromptAction*( + self: ptr IInternetZoneManager, + dwAction: DWORD, + hwndParent: HWND, + pwszUrl: LPCWSTR, + pwszText: LPCWSTR, + dwPromptFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PromptAction( + self, dwAction, hwndParent, pwszUrl, pwszText, dwPromptFlags + ) + +proc LogAction*( + self: ptr IInternetZoneManager, + dwAction: DWORD, + pwszUrl: LPCWSTR, + pwszText: LPCWSTR, + dwLogFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LogAction(self, dwAction, pwszUrl, pwszText, dwLogFlags) + +proc CreateZoneEnumerator*( + self: ptr IInternetZoneManager, + pdwEnum: ptr DWORD, + pdwCount: ptr DWORD, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateZoneEnumerator(self, pdwEnum, pdwCount, dwFlags) + +proc GetZoneAt*( + self: ptr IInternetZoneManager, dwEnum: DWORD, dwIndex: DWORD, pdwZone: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneAt(self, dwEnum, dwIndex, pdwZone) + +proc DestroyZoneEnumerator*( + self: ptr IInternetZoneManager, dwEnum: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyZoneEnumerator(self, dwEnum) + +proc CopyTemplatePoliciesToZone*( + self: ptr IInternetZoneManager, dwTemplate: DWORD, dwZone: DWORD, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyTemplatePoliciesToZone(self, dwTemplate, dwZone, dwReserved) + +proc GetZoneActionPolicyEx*( + self: ptr IInternetZoneManagerEx, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneActionPolicyEx( + self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags + ) + +proc SetZoneActionPolicyEx*( + self: ptr IInternetZoneManagerEx, + dwZone: DWORD, + dwAction: DWORD, + pPolicy: ptr BYTE, + cbPolicy: DWORD, + urlZoneReg: URLZONEREG, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetZoneActionPolicyEx( + self, dwZone, dwAction, pPolicy, cbPolicy, urlZoneReg, dwFlags + ) + +proc GetZoneAttributesEx*( + self: ptr IInternetZoneManagerEx2, + dwZone: DWORD, + pZoneAttributes: ptr ZONEATTRIBUTES, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneAttributesEx(self, dwZone, pZoneAttributes, dwFlags) + +proc GetZoneSecurityState*( + self: ptr IInternetZoneManagerEx2, + dwZoneIndex: DWORD, + fRespectPolicy: WINBOOL, + pdwState: LPDWORD, + pfPolicyEncountered: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetZoneSecurityState( + self, dwZoneIndex, fRespectPolicy, pdwState, pfPolicyEncountered + ) + +proc GetIESecurityState*( + self: ptr IInternetZoneManagerEx2, + fRespectPolicy: WINBOOL, + pdwState: LPDWORD, + pfPolicyEncountered: ptr WINBOOL, + fNoCache: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIESecurityState( + self, fRespectPolicy, pdwState, pfPolicyEncountered, fNoCache + ) + +proc FixUnsecureSettings*( + self: ptr IInternetZoneManagerEx2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FixUnsecureSettings(self) + +proc ProcessSoftDist*( + self: ptr ISoftDistExt, + szCDFURL: LPCWSTR, + pSoftDistElement: ptr IXMLElement, + lpsdi: LPSOFTDISTINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessSoftDist(self, szCDFURL, pSoftDistElement, lpsdi) + +proc GetFirstCodeBase*( + self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFirstCodeBase(self, szCodeBase, dwMaxSize) + +proc GetNextCodeBase*( + self: ptr ISoftDistExt, szCodeBase: ptr LPWSTR, dwMaxSize: LPDWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextCodeBase(self, szCodeBase, dwMaxSize) + +proc AsyncInstallDistributionUnit*( + self: ptr ISoftDistExt, + pbc: ptr IBindCtx, + pvReserved: LPVOID, + flags: DWORD, + lpcbh: LPCODEBASEHOLD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AsyncInstallDistributionUnit(self, pbc, pvReserved, flags, lpcbh) + +proc GetCatalogFile*( + self: ptr ICatalogFileInfo, ppszCatalogFile: ptr LPSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCatalogFile(self, ppszCatalogFile) + +proc GetJavaTrust*( + self: ptr ICatalogFileInfo, ppJavaTrust: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetJavaTrust(self, ppJavaTrust) + +proc DoEncode*( + self: ptr IDataFilter, + dwFlags: DWORD, + lInBufferSize: LONG, + pbInBuffer: ptr BYTE, + lOutBufferSize: LONG, + pbOutBuffer: ptr BYTE, + lInBytesAvailable: LONG, + plInBytesRead: ptr LONG, + plOutBytesWritten: ptr LONG, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoEncode( + self, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, + lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved, + ) + +proc DoDecode*( + self: ptr IDataFilter, + dwFlags: DWORD, + lInBufferSize: LONG, + pbInBuffer: ptr BYTE, + lOutBufferSize: LONG, + pbOutBuffer: ptr BYTE, + lInBytesAvailable: LONG, + plInBytesRead: ptr LONG, + plOutBytesWritten: ptr LONG, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoDecode( + self, dwFlags, lInBufferSize, pbInBuffer, lOutBufferSize, pbOutBuffer, + lInBytesAvailable, plInBytesRead, plOutBytesWritten, dwReserved, + ) + +proc SetEncodingLevel*( + self: ptr IDataFilter, dwEncLevel: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEncodingLevel(self, dwEncLevel) + +proc FindBestFilter*( + self: ptr IEncodingFilterFactory, + pwzCodeIn: LPCWSTR, + pwzCodeOut: LPCWSTR, + info: DATAINFO, + ppDF: ptr ptr IDataFilter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindBestFilter(self, pwzCodeIn, pwzCodeOut, info, ppDF) + +proc GetDefaultFilter*( + self: ptr IEncodingFilterFactory, + pwzCodeIn: LPCWSTR, + pwzCodeOut: LPCWSTR, + ppDF: ptr ptr IDataFilter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultFilter(self, pwzCodeIn, pwzCodeOut, ppDF) + +proc GetWrapperCode*( + self: ptr IWrappedProtocol, pnCode: ptr LONG, dwReserved: DWORD_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWrapperCode(self, pnCode, dwReserved) + +proc GetBindHandle*( + self: ptr IGetBindHandle, + enumRequestedHandle: BINDHANDLETYPES, + pRetHandle: ptr HANDLE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBindHandle(self, enumRequestedHandle, pRetHandle) + +proc Redirect*( + self: ptr IBindCallbackRedirect, lpcUrl: LPCWSTR, vbCancel: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Redirect(self, lpcUrl, vbCancel) + +proc ReadMultiple*( + self: ptr IPropertyStorage, + cpspec: ULONG, + rgpspec: ptr PROPSPEC, + rgpropvar: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadMultiple(self, cpspec, rgpspec, rgpropvar) + +proc WriteMultiple*( + self: ptr IPropertyStorage, + cpspec: ULONG, + rgpspec: ptr PROPSPEC, + rgpropvar: ptr PROPVARIANT, + propidNameFirst: PROPID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteMultiple(self, cpspec, rgpspec, rgpropvar, propidNameFirst) + +proc DeleteMultiple*( + self: ptr IPropertyStorage, cpspec: ULONG, rgpspec: ptr PROPSPEC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteMultiple(self, cpspec, rgpspec) + +proc ReadPropertyNames*( + self: ptr IPropertyStorage, + cpropid: ULONG, + rgpropid: ptr PROPID, + rglpwstrName: ptr LPOLESTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadPropertyNames(self, cpropid, rgpropid, rglpwstrName) + +proc WritePropertyNames*( + self: ptr IPropertyStorage, + cpropid: ULONG, + rgpropid: ptr PROPID, + rglpwstrName: ptr LPOLESTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WritePropertyNames(self, cpropid, rgpropid, rglpwstrName) + +proc DeletePropertyNames*( + self: ptr IPropertyStorage, cpropid: ULONG, rgpropid: ptr PROPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeletePropertyNames(self, cpropid, rgpropid) + +proc Commit*( + self: ptr IPropertyStorage, grfCommitFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self, grfCommitFlags) + +proc Revert*(self: ptr IPropertyStorage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Revert(self) + +proc Enum*( + self: ptr IPropertyStorage, ppenum: ptr ptr IEnumSTATPROPSTG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enum(self, ppenum) + +proc SetTimes*( + self: ptr IPropertyStorage, + pctime: ptr FILETIME, + patime: ptr FILETIME, + pmtime: ptr FILETIME, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTimes(self, pctime, patime, pmtime) + +proc SetClass*( + self: ptr IPropertyStorage, clsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClass(self, clsid) + +proc Stat*( + self: ptr IPropertyStorage, pstatpsstg: ptr STATPROPSETSTG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stat(self, pstatpsstg) + +proc Create*( + self: ptr IPropertySetStorage, + rfmtid: REFFMTID, + pclsid: ptr CLSID, + grfFlags: DWORD, + grfMode: DWORD, + ppprstg: ptr ptr IPropertyStorage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Create(self, rfmtid, pclsid, grfFlags, grfMode, ppprstg) + +proc Open*( + self: ptr IPropertySetStorage, + rfmtid: REFFMTID, + grfMode: DWORD, + ppprstg: ptr ptr IPropertyStorage, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self, rfmtid, grfMode, ppprstg) + +proc mDelete*( + self: ptr IPropertySetStorage, rfmtid: REFFMTID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Delete(self, rfmtid) + +proc Enum*( + self: ptr IPropertySetStorage, ppenum: ptr ptr IEnumSTATPROPSETSTG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enum(self, ppenum) + +proc Next*( + self: ptr IEnumSTATPROPSTG, + celt: ULONG, + rgelt: ptr STATPROPSTG, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumSTATPROPSTG, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumSTATPROPSTG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumSTATPROPSTG, ppenum: ptr ptr IEnumSTATPROPSTG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Next*( + self: ptr IEnumSTATPROPSETSTG, + celt: ULONG, + rgelt: ptr STATPROPSETSTG, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumSTATPROPSETSTG, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumSTATPROPSETSTG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumSTATPROPSETSTG, ppenum: ptr ptr IEnumSTATPROPSETSTG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Next*( + self: ptr IEnumConnections, + cConnections: ULONG, + rgcd: LPCONNECTDATA, + pcFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, cConnections, rgcd, pcFetched) + +proc Skip*( + self: ptr IEnumConnections, cConnections: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, cConnections) + +proc Reset*(self: ptr IEnumConnections): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumConnections, ppEnum: ptr ptr IEnumConnections +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc GetConnectionInterface*( + self: ptr IConnectionPoint, pIID: ptr IID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConnectionInterface(self, pIID) + +proc GetConnectionPointContainer*( + self: ptr IConnectionPoint, ppCPC: ptr ptr IConnectionPointContainer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConnectionPointContainer(self, ppCPC) + +proc Advise*( + self: ptr IConnectionPoint, pUnkSink: ptr IUnknown, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pUnkSink, pdwCookie) + +proc Unadvise*( + self: ptr IConnectionPoint, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc EnumConnections*( + self: ptr IConnectionPoint, ppEnum: ptr ptr IEnumConnections +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumConnections(self, ppEnum) + +proc Next*( + self: ptr IEnumConnectionPoints, + cConnections: ULONG, + ppCP: ptr LPCONNECTIONPOINT, + pcFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, cConnections, ppCP, pcFetched) + +proc Skip*( + self: ptr IEnumConnectionPoints, cConnections: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, cConnections) + +proc Reset*(self: ptr IEnumConnectionPoints): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumConnectionPoints, ppEnum: ptr ptr IEnumConnectionPoints +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc EnumConnectionPoints*( + self: ptr IConnectionPointContainer, ppEnum: ptr ptr IEnumConnectionPoints +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumConnectionPoints(self, ppEnum) + +proc FindConnectionPoint*( + self: ptr IConnectionPointContainer, riid: REFIID, ppCP: ptr ptr IConnectionPoint +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindConnectionPoint(self, riid, ppCP) + +proc GetLicInfo*( + self: ptr IClassFactory2, pLicInfo: ptr LICINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLicInfo(self, pLicInfo) + +proc RequestLicKey*( + self: ptr IClassFactory2, dwReserved: DWORD, pBstrKey: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestLicKey(self, dwReserved, pBstrKey) + +proc CreateInstanceLic*( + self: ptr IClassFactory2, + pUnkOuter: ptr IUnknown, + pUnkReserved: ptr IUnknown, + riid: REFIID, + bstrKey: BSTR, + ppvObj: ptr PVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstanceLic(self, pUnkOuter, pUnkReserved, riid, bstrKey, ppvObj) + +proc GetClassInfo*( + self: ptr IProvideClassInfo, ppTI: ptr ptr ITypeInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClassInfo(self, ppTI) + +proc GetGUID*( + self: ptr IProvideClassInfo2, dwGuidKind: DWORD, pGUID: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGUID(self, dwGuidKind, pGUID) + +proc GetMultiTypeInfoCount*( + self: ptr IProvideMultipleClassInfo, pcti: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMultiTypeInfoCount(self, pcti) + +proc GetInfoOfIndex*( + self: ptr IProvideMultipleClassInfo, + iti: ULONG, + dwFlags: DWORD, + pptiCoClass: ptr ptr ITypeInfo, + pdwTIFlags: ptr DWORD, + pcdispidReserved: ptr ULONG, + piidPrimary: ptr IID, + piidSource: ptr IID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInfoOfIndex( + self, iti, dwFlags, pptiCoClass, pdwTIFlags, pcdispidReserved, piidPrimary, + piidSource, + ) + +proc GetControlInfo*( + self: ptr IOleControl, pCI: ptr CONTROLINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetControlInfo(self, pCI) + +proc OnMnemonic*(self: ptr IOleControl, pMsg: ptr MSG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnMnemonic(self, pMsg) + +proc OnAmbientPropertyChange*( + self: ptr IOleControl, dispID: DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnAmbientPropertyChange(self, dispID) + +proc FreezeEvents*( + self: ptr IOleControl, bFreeze: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FreezeEvents(self, bFreeze) + +proc OnControlInfoChanged*(self: ptr IOleControlSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnControlInfoChanged(self) + +proc LockInPlaceActive*( + self: ptr IOleControlSite, fLock: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LockInPlaceActive(self, fLock) + +proc GetExtendedControl*( + self: ptr IOleControlSite, ppDisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExtendedControl(self, ppDisp) + +proc TransformCoords*( + self: ptr IOleControlSite, + pPtlHimetric: ptr POINTL, + pPtfContainer: ptr POINTF, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TransformCoords(self, pPtlHimetric, pPtfContainer, dwFlags) + +proc TranslateAccelerator*( + self: ptr IOleControlSite, pMsg: ptr MSG, grfModifiers: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, pMsg, grfModifiers) + +proc OnFocus*( + self: ptr IOleControlSite, fGotFocus: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFocus(self, fGotFocus) + +proc ShowPropertyFrame*(self: ptr IOleControlSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowPropertyFrame(self) + +proc SetPageSite*( + self: ptr IPropertyPage, pPageSite: ptr IPropertyPageSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPageSite(self, pPageSite) + +proc Activate*( + self: ptr IPropertyPage, hWndParent: HWND, pRect: LPCRECT, bModal: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Activate(self, hWndParent, pRect, bModal) + +proc Deactivate*(self: ptr IPropertyPage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Deactivate(self) + +proc GetPageInfo*( + self: ptr IPropertyPage, pPageInfo: ptr PROPPAGEINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPageInfo(self, pPageInfo) + +proc SetObjects*( + self: ptr IPropertyPage, cObjects: ULONG, ppUnk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetObjects(self, cObjects, ppUnk) + +proc Show*(self: ptr IPropertyPage, nCmdShow: UINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, nCmdShow) + +proc Move*(self: ptr IPropertyPage, pRect: LPCRECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Move(self, pRect) + +proc IsPageDirty*(self: ptr IPropertyPage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsPageDirty(self) + +proc Apply*(self: ptr IPropertyPage): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Apply(self) + +proc Help*(self: ptr IPropertyPage, pszHelpDir: LPCOLESTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Help(self, pszHelpDir) + +proc TranslateAccelerator*( + self: ptr IPropertyPage, pMsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, pMsg) + +proc EditProperty*( + self: ptr IPropertyPage2, dispID: DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EditProperty(self, dispID) + +proc OnStatusChange*( + self: ptr IPropertyPageSite, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStatusChange(self, dwFlags) + +proc GetLocaleID*( + self: ptr IPropertyPageSite, pLocaleID: ptr LCID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLocaleID(self, pLocaleID) + +proc GetPageContainer*( + self: ptr IPropertyPageSite, ppUnk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPageContainer(self, ppUnk) + +proc TranslateAccelerator*( + self: ptr IPropertyPageSite, pMsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, pMsg) + +proc OnChanged*( + self: ptr IPropertyNotifySink, dispID: DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnChanged(self, dispID) + +proc OnRequestEdit*( + self: ptr IPropertyNotifySink, dispID: DISPID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnRequestEdit(self, dispID) + +proc GetPages*( + self: ptr ISpecifyPropertyPages, pPages: ptr CAUUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPages(self, pPages) + +proc IsDirty*(self: ptr IPersistMemory): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc Load*( + self: ptr IPersistMemory, pMem: LPVOID, cbSize: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pMem, cbSize) + +proc Save*( + self: ptr IPersistMemory, pMem: LPVOID, fClearDirty: WINBOOL, cbSize: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pMem, fClearDirty, cbSize) + +proc GetSizeMax*( + self: ptr IPersistMemory, pCbSize: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSizeMax(self, pCbSize) + +proc InitNew*(self: ptr IPersistMemory): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self) + +proc IsDirty*(self: ptr IPersistStreamInit): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc Load*(self: ptr IPersistStreamInit, pStm: LPSTREAM): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pStm) + +proc Save*( + self: ptr IPersistStreamInit, pStm: LPSTREAM, fClearDirty: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pStm, fClearDirty) + +proc GetSizeMax*( + self: ptr IPersistStreamInit, pCbSize: ptr ULARGE_INTEGER +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSizeMax(self, pCbSize) + +proc InitNew*(self: ptr IPersistStreamInit): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self) + +proc InitNew*(self: ptr IPersistPropertyBag): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self) + +proc Load*( + self: ptr IPersistPropertyBag, pPropBag: ptr IPropertyBag, pErrorLog: ptr IErrorLog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pPropBag, pErrorLog) + +proc Save*( + self: ptr IPersistPropertyBag, + pPropBag: ptr IPropertyBag, + fClearDirty: WINBOOL, + fSaveAllProperties: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pPropBag, fClearDirty, fSaveAllProperties) + +proc PreMessageFilter*( + self: ptr ISimpleFrameSite, + hWnd: HWND, + msg: UINT, + wp: WPARAM, + lp: LPARAM, + plResult: ptr LRESULT, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreMessageFilter(self, hWnd, msg, wp, lp, plResult, pdwCookie) + +proc PostMessageFilter*( + self: ptr ISimpleFrameSite, + hWnd: HWND, + msg: UINT, + wp: WPARAM, + lp: LPARAM, + plResult: ptr LRESULT, + dwCookie: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostMessageFilter(self, hWnd, msg, wp, lp, plResult, dwCookie) + +proc get_Name*(self: ptr IFont, pName: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Name(self, pName) + +proc put_Name*(self: ptr IFont, name: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Name(self, name) + +proc get_Size*(self: ptr IFont, pSize: ptr CY): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Size(self, pSize) + +proc put_Size*(self: ptr IFont, size: CY): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Size(self, size) + +proc get_Bold*(self: ptr IFont, pBold: ptr WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Bold(self, pBold) + +proc put_Bold*(self: ptr IFont, bold: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Bold(self, bold) + +proc get_Italic*(self: ptr IFont, pItalic: ptr WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Italic(self, pItalic) + +proc put_Italic*(self: ptr IFont, italic: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Italic(self, italic) + +proc get_Underline*( + self: ptr IFont, pUnderline: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Underline(self, pUnderline) + +proc put_Underline*(self: ptr IFont, underline: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Underline(self, underline) + +proc get_Strikethrough*( + self: ptr IFont, pStrikethrough: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Strikethrough(self, pStrikethrough) + +proc put_Strikethrough*( + self: ptr IFont, strikethrough: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Strikethrough(self, strikethrough) + +proc get_Weight*(self: ptr IFont, pWeight: ptr SHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Weight(self, pWeight) + +proc put_Weight*(self: ptr IFont, weight: SHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Weight(self, weight) + +proc get_Charset*(self: ptr IFont, pCharset: ptr SHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Charset(self, pCharset) + +proc put_Charset*(self: ptr IFont, charset: SHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Charset(self, charset) + +proc get_hFont*(self: ptr IFont, phFont: ptr HFONT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hFont(self, phFont) + +proc Clone*(self: ptr IFont, ppFont: ptr ptr IFont): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppFont) + +proc IsEqual*(self: ptr IFont, pFontOther: ptr IFont): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEqual(self, pFontOther) + +proc SetRatio*( + self: ptr IFont, cyLogical: LONG, cyHimetric: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRatio(self, cyLogical, cyHimetric) + +proc QueryTextMetrics*( + self: ptr IFont, pTM: ptr TEXTMETRICOLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryTextMetrics(self, pTM) + +proc AddRefHfont*(self: ptr IFont, hFont: HFONT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddRefHfont(self, hFont) + +proc ReleaseHfont*(self: ptr IFont, hFont: HFONT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseHfont(self, hFont) + +proc SetHdc*(self: ptr IFont, hDC: HDC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHdc(self, hDC) + +proc get_Handle*( + self: ptr IPicture, pHandle: ptr OLE_HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Handle(self, pHandle) + +proc get_hPal*(self: ptr IPicture, phPal: ptr OLE_HANDLE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hPal(self, phPal) + +proc get_Type*(self: ptr IPicture, pType: ptr SHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Type(self, pType) + +proc get_Width*( + self: ptr IPicture, pWidth: ptr OLE_XSIZE_HIMETRIC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Width(self, pWidth) + +proc get_Height*( + self: ptr IPicture, pHeight: ptr OLE_YSIZE_HIMETRIC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Height(self, pHeight) + +proc Render*( + self: ptr IPicture, + hDC: HDC, + x: LONG, + y: LONG, + cx: LONG, + cy: LONG, + xSrc: OLE_XPOS_HIMETRIC, + ySrc: OLE_YPOS_HIMETRIC, + cxSrc: OLE_XSIZE_HIMETRIC, + cySrc: OLE_YSIZE_HIMETRIC, + pRcWBounds: LPCRECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Render(self, hDC, x, y, cx, cy, xSrc, ySrc, cxSrc, cySrc, pRcWBounds) + +proc set_hPal*(self: ptr IPicture, hPal: OLE_HANDLE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.set_hPal(self, hPal) + +proc get_CurDC*(self: ptr IPicture, phDC: ptr HDC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurDC(self, phDC) + +proc SelectPicture*( + self: ptr IPicture, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr OLE_HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectPicture(self, hDCIn, phDCOut, phBmpOut) + +proc get_KeepOriginalFormat*( + self: ptr IPicture, pKeep: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_KeepOriginalFormat(self, pKeep) + +proc put_KeepOriginalFormat*( + self: ptr IPicture, keep: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_KeepOriginalFormat(self, keep) + +proc PictureChanged*(self: ptr IPicture): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PictureChanged(self) + +proc SaveAsFile*( + self: ptr IPicture, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveAsFile(self, pStream, fSaveMemCopy, pCbSize) + +proc get_Attributes*( + self: ptr IPicture, pDwAttr: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Attributes(self, pDwAttr) + +proc get_Handle*( + self: ptr IPicture2, pHandle: ptr HHANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Handle(self, pHandle) + +proc get_hPal*(self: ptr IPicture2, phPal: ptr HHANDLE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_hPal(self, phPal) + +proc get_Type*(self: ptr IPicture2, pType: ptr SHORT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Type(self, pType) + +proc get_Width*( + self: ptr IPicture2, pWidth: ptr OLE_XSIZE_HIMETRIC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Width(self, pWidth) + +proc get_Height*( + self: ptr IPicture2, pHeight: ptr OLE_YSIZE_HIMETRIC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Height(self, pHeight) + +proc Render*( + self: ptr IPicture2, + hDC: HDC, + x: LONG, + y: LONG, + cx: LONG, + cy: LONG, + xSrc: OLE_XPOS_HIMETRIC, + ySrc: OLE_YPOS_HIMETRIC, + cxSrc: OLE_XSIZE_HIMETRIC, + cySrc: OLE_YSIZE_HIMETRIC, + pRcWBounds: LPCRECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Render(self, hDC, x, y, cx, cy, xSrc, ySrc, cxSrc, cySrc, pRcWBounds) + +proc set_hPal*(self: ptr IPicture2, hPal: HHANDLE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.set_hPal(self, hPal) + +proc get_CurDC*(self: ptr IPicture2, phDC: ptr HDC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurDC(self, phDC) + +proc SelectPicture*( + self: ptr IPicture2, hDCIn: HDC, phDCOut: ptr HDC, phBmpOut: ptr HHANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectPicture(self, hDCIn, phDCOut, phBmpOut) + +proc get_KeepOriginalFormat*( + self: ptr IPicture2, pKeep: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_KeepOriginalFormat(self, pKeep) + +proc put_KeepOriginalFormat*( + self: ptr IPicture2, keep: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_KeepOriginalFormat(self, keep) + +proc PictureChanged*(self: ptr IPicture2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PictureChanged(self) + +proc SaveAsFile*( + self: ptr IPicture2, pStream: LPSTREAM, fSaveMemCopy: WINBOOL, pCbSize: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveAsFile(self, pStream, fSaveMemCopy, pCbSize) + +proc get_Attributes*( + self: ptr IPicture2, pDwAttr: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Attributes(self, pDwAttr) + +proc OnWindowMessage*( + self: ptr IOleInPlaceObjectWindowless, + msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnWindowMessage(self, msg, wParam, lParam, plResult) + +proc GetDropTarget*( + self: ptr IOleInPlaceObjectWindowless, ppDropTarget: ptr ptr IDropTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDropTarget(self, ppDropTarget) + +proc OnInPlaceActivateEx*( + self: ptr IOleInPlaceSiteEx, pfNoRedraw: ptr WINBOOL, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnInPlaceActivateEx(self, pfNoRedraw, dwFlags) + +proc OnInPlaceDeactivateEx*( + self: ptr IOleInPlaceSiteEx, fNoRedraw: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnInPlaceDeactivateEx(self, fNoRedraw) + +proc RequestUIActivate*(self: ptr IOleInPlaceSiteEx): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestUIActivate(self) + +proc CanWindowlessActivate*( + self: ptr IOleInPlaceSiteWindowless +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanWindowlessActivate(self) + +proc GetCapture*(self: ptr IOleInPlaceSiteWindowless): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCapture(self) + +proc SetCapture*( + self: ptr IOleInPlaceSiteWindowless, fCapture: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCapture(self, fCapture) + +proc GetFocus*(self: ptr IOleInPlaceSiteWindowless): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFocus(self) + +proc SetFocus*( + self: ptr IOleInPlaceSiteWindowless, fFocus: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFocus(self, fFocus) + +proc GetDC*( + self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, grfFlags: DWORD, phDC: ptr HDC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDC(self, pRect, grfFlags, phDC) + +proc ReleaseDC*( + self: ptr IOleInPlaceSiteWindowless, hDC: HDC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseDC(self, hDC) + +proc InvalidateRect*( + self: ptr IOleInPlaceSiteWindowless, pRect: LPCRECT, fErase: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateRect(self, pRect, fErase) + +proc InvalidateRgn*( + self: ptr IOleInPlaceSiteWindowless, hRGN: HRGN, fErase: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateRgn(self, hRGN, fErase) + +proc ScrollRect*( + self: ptr IOleInPlaceSiteWindowless, + dx: INT, + dy: INT, + pRectScroll: LPCRECT, + pRectClip: LPCRECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollRect(self, dx, dy, pRectScroll, pRectClip) + +proc AdjustRect*( + self: ptr IOleInPlaceSiteWindowless, prc: LPRECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AdjustRect(self, prc) + +proc OnDefWindowMessage*( + self: ptr IOleInPlaceSiteWindowless, + msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDefWindowMessage(self, msg, wParam, lParam, plResult) + +proc GetRect*( + self: ptr IViewObjectEx, dwAspect: DWORD, pRect: LPRECTL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRect(self, dwAspect, pRect) + +proc GetViewStatus*( + self: ptr IViewObjectEx, pdwStatus: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewStatus(self, pdwStatus) + +proc QueryHitPoint*( + self: ptr IViewObjectEx, + dwAspect: DWORD, + pRectBounds: LPCRECT, + ptlLoc: POINT, + lCloseHint: LONG, + pHitResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryHitPoint( + self, dwAspect, pRectBounds, ptlLoc, lCloseHint, pHitResult + ) + +proc QueryHitRect*( + self: ptr IViewObjectEx, + dwAspect: DWORD, + pRectBounds: LPCRECT, + pRectLoc: LPCRECT, + lCloseHint: LONG, + pHitResult: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryHitRect( + self, dwAspect, pRectBounds, pRectLoc, lCloseHint, pHitResult + ) + +proc GetNaturalExtent*( + self: ptr IViewObjectEx, + dwAspect: DWORD, + lindex: LONG, + ptd: ptr DVTARGETDEVICE, + hicTargetDev: HDC, + pExtentInfo: ptr DVEXTENTINFO, + pSizel: LPSIZEL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNaturalExtent( + self, dwAspect, lindex, ptd, hicTargetDev, pExtentInfo, pSizel + ) + +proc Do*( + self: ptr IOleUndoUnit, pUndoManager: ptr IOleUndoManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Do(self, pUndoManager) + +proc GetDescription*( + self: ptr IOleUndoUnit, pBstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescription(self, pBstr) + +proc GetUnitType*( + self: ptr IOleUndoUnit, pClsid: ptr CLSID, plID: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUnitType(self, pClsid, plID) + +proc OnNextAdd*(self: ptr IOleUndoUnit): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnNextAdd(self) + +proc Open*( + self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self, pPUU) + +proc Close*( + self: ptr IOleParentUndoUnit, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self, pPUU, fCommit) + +proc Add*( + self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Add(self, pUU) + +proc FindUnit*( + self: ptr IOleParentUndoUnit, pUU: ptr IOleUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindUnit(self, pUU) + +proc GetParentState*( + self: ptr IOleParentUndoUnit, pdwState: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParentState(self, pdwState) + +proc Next*( + self: ptr IEnumOleUndoUnits, + cElt: ULONG, + rgElt: ptr ptr IOleUndoUnit, + pcEltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, cElt, rgElt, pcEltFetched) + +proc Skip*(self: ptr IEnumOleUndoUnits, cElt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, cElt) + +proc Reset*(self: ptr IEnumOleUndoUnits): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumOleUndoUnits, ppEnum: ptr ptr IEnumOleUndoUnits +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc Open*( + self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self, pPUU) + +proc Close*( + self: ptr IOleUndoManager, pPUU: ptr IOleParentUndoUnit, fCommit: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self, pPUU, fCommit) + +proc Add*( + self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Add(self, pUU) + +proc GetOpenParentState*( + self: ptr IOleUndoManager, pdwState: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOpenParentState(self, pdwState) + +proc DiscardFrom*( + self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DiscardFrom(self, pUU) + +proc UndoTo*( + self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UndoTo(self, pUU) + +proc RedoTo*( + self: ptr IOleUndoManager, pUU: ptr IOleUndoUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RedoTo(self, pUU) + +proc EnumUndoable*( + self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumUndoable(self, ppEnum) + +proc EnumRedoable*( + self: ptr IOleUndoManager, ppEnum: ptr ptr IEnumOleUndoUnits +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumRedoable(self, ppEnum) + +proc GetLastUndoDescription*( + self: ptr IOleUndoManager, pBstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastUndoDescription(self, pBstr) + +proc GetLastRedoDescription*( + self: ptr IOleUndoManager, pBstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastRedoDescription(self, pBstr) + +proc Enable*(self: ptr IOleUndoManager, fEnable: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enable(self, fEnable) + +proc GetActivationPolicy*( + self: ptr IPointerInactive, pdwPolicy: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetActivationPolicy(self, pdwPolicy) + +proc OnInactiveMouseMove*( + self: ptr IPointerInactive, + pRectBounds: LPCRECT, + x: LONG, + y: LONG, + grfKeyState: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnInactiveMouseMove(self, pRectBounds, x, y, grfKeyState) + +proc OnInactiveSetCursor*( + self: ptr IPointerInactive, + pRectBounds: LPCRECT, + x: LONG, + y: LONG, + dwMouseMsg: DWORD, + fSetAlways: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnInactiveSetCursor(self, pRectBounds, x, y, dwMouseMsg, fSetAlways) + +proc SetSite*( + self: ptr IObjectWithSite, pUnkSite: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSite(self, pUnkSite) + +proc GetSite*( + self: ptr IObjectWithSite, riid: REFIID, ppvSite: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSite(self, riid, ppvSite) + +proc GetDisplayString*( + self: ptr IPerPropertyBrowsing, dispID: DISPID, pBstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayString(self, dispID, pBstr) + +proc MapPropertyToPage*( + self: ptr IPerPropertyBrowsing, dispID: DISPID, pClsid: ptr CLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapPropertyToPage(self, dispID, pClsid) + +proc GetPredefinedStrings*( + self: ptr IPerPropertyBrowsing, + dispID: DISPID, + pCaStringsOut: ptr CALPOLESTR, + pCaCookiesOut: ptr CADWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPredefinedStrings(self, dispID, pCaStringsOut, pCaCookiesOut) + +proc GetPredefinedValue*( + self: ptr IPerPropertyBrowsing, + dispID: DISPID, + dwCookie: DWORD, + pVarOut: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPredefinedValue(self, dispID, dwCookie, pVarOut) + +proc Read*( + self: ptr IPropertyBag2, + cProperties: ULONG, + pPropBag: ptr PROPBAG2, + pErrLog: ptr IErrorLog, + pvarValue: ptr VARIANT, + phrError: ptr HRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Read(self, cProperties, pPropBag, pErrLog, pvarValue, phrError) + +proc Write*( + self: ptr IPropertyBag2, + cProperties: ULONG, + pPropBag: ptr PROPBAG2, + pvarValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Write(self, cProperties, pPropBag, pvarValue) + +proc CountProperties*( + self: ptr IPropertyBag2, pcProperties: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CountProperties(self, pcProperties) + +proc GetPropertyInfo*( + self: ptr IPropertyBag2, + iProperty: ULONG, + cProperties: ULONG, + pPropBag: ptr PROPBAG2, + pcProperties: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyInfo(self, iProperty, cProperties, pPropBag, pcProperties) + +proc LoadObject*( + self: ptr IPropertyBag2, + pstrName: LPCOLESTR, + dwHint: DWORD, + pUnkObject: ptr IUnknown, + pErrLog: ptr IErrorLog, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadObject(self, pstrName, dwHint, pUnkObject, pErrLog) + +proc InitNew*(self: ptr IPersistPropertyBag2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self) + +proc Load*( + self: ptr IPersistPropertyBag2, pPropBag: ptr IPropertyBag2, pErrLog: ptr IErrorLog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Load(self, pPropBag, pErrLog) + +proc Save*( + self: ptr IPersistPropertyBag2, + pPropBag: ptr IPropertyBag2, + fClearDirty: WINBOOL, + fSaveAllProperties: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, pPropBag, fClearDirty, fSaveAllProperties) + +proc IsDirty*(self: ptr IPersistPropertyBag2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDirty(self) + +proc OnViewStatusChange*( + self: ptr IAdviseSinkEx, dwViewStatus: DWORD +): void {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnViewStatusChange(self, dwViewStatus) + +proc QuickActivate*( + self: ptr IQuickActivate, pQaContainer: ptr QACONTAINER, pQaControl: ptr QACONTROL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QuickActivate(self, pQaContainer, pQaControl) + +proc SetContentExtent*( + self: ptr IQuickActivate, pSizel: LPSIZEL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetContentExtent(self, pSizel) + +proc GetContentExtent*( + self: ptr IQuickActivate, pSizel: LPSIZEL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContentExtent(self, pSizel) + +proc Next*( + self: ptr IEnumGUID, celt: ULONG, rgelt: ptr GUID, pceltFetched: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumGUID, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumGUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumGUID, ppenum: ptr ptr IEnumGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Next*( + self: ptr IEnumCATEGORYINFO, + celt: ULONG, + rgelt: ptr CATEGORYINFO, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumCATEGORYINFO, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumCATEGORYINFO): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumCATEGORYINFO, ppenum: ptr ptr IEnumCATEGORYINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc RegisterCategories*( + self: ptr ICatRegister, cCategories: ULONG, rgCategoryInfo: ptr CATEGORYINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterCategories(self, cCategories, rgCategoryInfo) + +proc UnRegisterCategories*( + self: ptr ICatRegister, cCategories: ULONG, rgcatid: ptr CATID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnRegisterCategories(self, cCategories, rgcatid) + +proc RegisterClassImplCategories*( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterClassImplCategories(self, rclsid, cCategories, rgcatid) + +proc UnRegisterClassImplCategories*( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnRegisterClassImplCategories(self, rclsid, cCategories, rgcatid) + +proc RegisterClassReqCategories*( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterClassReqCategories(self, rclsid, cCategories, rgcatid) + +proc UnRegisterClassReqCategories*( + self: ptr ICatRegister, rclsid: REFCLSID, cCategories: ULONG, rgcatid: ptr CATID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnRegisterClassReqCategories(self, rclsid, cCategories, rgcatid) + +proc EnumCategories*( + self: ptr ICatInformation, lcid: LCID, ppenumCategoryInfo: ptr ptr IEnumCATEGORYINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumCategories(self, lcid, ppenumCategoryInfo) + +proc GetCategoryDesc*( + self: ptr ICatInformation, rcatid: REFCATID, lcid: LCID, pszDesc: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategoryDesc(self, rcatid, lcid, pszDesc) + +proc EnumClassesOfCategories*( + self: ptr ICatInformation, + cImplemented: ULONG, + rgcatidImpl: ptr CATID, + cRequired: ULONG, + rgcatidReq: ptr CATID, + ppenumClsid: ptr ptr IEnumGUID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumClassesOfCategories( + self, cImplemented, rgcatidImpl, cRequired, rgcatidReq, ppenumClsid + ) + +proc IsClassOfCategories*( + self: ptr ICatInformation, + rclsid: REFCLSID, + cImplemented: ULONG, + rgcatidImpl: ptr CATID, + cRequired: ULONG, + rgcatidReq: ptr CATID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsClassOfCategories( + self, rclsid, cImplemented, rgcatidImpl, cRequired, rgcatidReq + ) + +proc EnumImplCategoriesOfClass*( + self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumImplCategoriesOfClass(self, rclsid, ppenumCatid) + +proc EnumReqCategoriesOfClass*( + self: ptr ICatInformation, rclsid: REFCLSID, ppenumCatid: ptr ptr IEnumGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumReqCategoriesOfClass(self, rclsid, ppenumCatid) + +proc CreateView*( + self: ptr IOleDocument, + pIPSite: ptr IOleInPlaceSite, + pstm: ptr IStream, + dwReserved: DWORD, + ppView: ptr ptr IOleDocumentView, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateView(self, pIPSite, pstm, dwReserved, ppView) + +proc GetDocMiscStatus*( + self: ptr IOleDocument, pdwStatus: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocMiscStatus(self, pdwStatus) + +proc EnumViews*( + self: ptr IOleDocument, + ppEnum: ptr ptr IEnumOleDocumentViews, + ppView: ptr ptr IOleDocumentView, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumViews(self, ppEnum, ppView) + +proc ActivateMe*( + self: ptr IOleDocumentSite, pViewToActivate: ptr IOleDocumentView +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateMe(self, pViewToActivate) + +proc SetInPlaceSite*( + self: ptr IOleDocumentView, pIPSite: ptr IOleInPlaceSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetInPlaceSite(self, pIPSite) + +proc GetInPlaceSite*( + self: ptr IOleDocumentView, ppIPSite: ptr ptr IOleInPlaceSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInPlaceSite(self, ppIPSite) + +proc GetDocument*( + self: ptr IOleDocumentView, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocument(self, ppunk) + +proc SetRect*(self: ptr IOleDocumentView, prcView: LPRECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRect(self, prcView) + +proc GetRect*(self: ptr IOleDocumentView, prcView: LPRECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRect(self, prcView) + +proc SetRectComplex*( + self: ptr IOleDocumentView, + prcView: LPRECT, + prcHScroll: LPRECT, + prcVScroll: LPRECT, + prcSizeBox: LPRECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRectComplex(self, prcView, prcHScroll, prcVScroll, prcSizeBox) + +proc Show*(self: ptr IOleDocumentView, fShow: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, fShow) + +proc UIActivate*( + self: ptr IOleDocumentView, fUIActivate: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UIActivate(self, fUIActivate) + +proc Open*(self: ptr IOleDocumentView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self) + +proc CloseView*( + self: ptr IOleDocumentView, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseView(self, dwReserved) + +proc SaveViewState*( + self: ptr IOleDocumentView, pstm: LPSTREAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveViewState(self, pstm) + +proc ApplyViewState*( + self: ptr IOleDocumentView, pstm: LPSTREAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyViewState(self, pstm) + +proc Clone*( + self: ptr IOleDocumentView, + pIPSiteNew: ptr IOleInPlaceSite, + ppViewNew: ptr ptr IOleDocumentView, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, pIPSiteNew, ppViewNew) + +proc Next*( + self: ptr IEnumOleDocumentViews, + cViews: ULONG, + rgpView: ptr ptr IOleDocumentView, + pcFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, cViews, rgpView, pcFetched) + +proc Skip*(self: ptr IEnumOleDocumentViews, cViews: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, cViews) + +proc Reset*(self: ptr IEnumOleDocumentViews): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumOleDocumentViews, ppEnum: ptr ptr IEnumOleDocumentViews +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc FContinue*(self: ptr IContinueCallback): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FContinue(self) + +proc FContinuePrinting*( + self: ptr IContinueCallback, + nCntPrinted: LONG, + nCurPage: LONG, + pwszPrintStatus: ptr uint16, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FContinuePrinting(self, nCntPrinted, nCurPage, pwszPrintStatus) + +proc SetInitialPageNum*( + self: ptr IPrint, nFirstPage: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetInitialPageNum(self, nFirstPage) + +proc GetPageInfo*( + self: ptr IPrint, pnFirstPage: ptr LONG, pcPages: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPageInfo(self, pnFirstPage, pcPages) + +proc Print*( + self: ptr IPrint, + grfFlags: DWORD, + pptd: ptr ptr DVTARGETDEVICE, + ppPageSet: ptr ptr PAGESET, + pstgmOptions: ptr STGMEDIUM, + pcallback: ptr IContinueCallback, + nFirstPage: LONG, + pcPagesPrinted: ptr LONG, + pnLastPage: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Print( + self, grfFlags, pptd, ppPageSet, pstgmOptions, pcallback, nFirstPage, + pcPagesPrinted, pnLastPage, + ) + +proc QueryStatus*( + self: ptr IOleCommandTarget, + pguidCmdGroup: ptr GUID, + cCmds: ULONG, + prgCmds: ptr OLECMD, + pCmdText: ptr OLECMDTEXT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryStatus(self, pguidCmdGroup, cCmds, prgCmds, pCmdText) + +proc Exec*( + self: ptr IOleCommandTarget, + pguidCmdGroup: ptr GUID, + nCmdID: DWORD, + nCmdexecopt: DWORD, + pvaIn: ptr VARIANT, + pvaOut: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Exec(self, pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut) + +proc OnZoomPercentChanged*( + self: ptr IZoomEvents, ulZoomPercent: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnZoomPercentChanged(self, ulZoomPercent) + +proc AllowFocusChange*( + self: ptr IProtectFocus, pfAllow: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AllowFocusChange(self, pfAllow) + +proc CreateMenu*( + self: ptr IProtectedModeMenuServices, phMenu: ptr HMENU +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateMenu(self, phMenu) + +proc LoadMenu*( + self: ptr IProtectedModeMenuServices, + pszModuleName: LPCWSTR, + pszMenuName: LPCWSTR, + phMenu: ptr HMENU, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadMenu(self, pszModuleName, pszMenuName, phMenu) + +proc LoadMenuID*( + self: ptr IProtectedModeMenuServices, + pszModuleName: LPCWSTR, + wResourceID: WORD, + phMenu: ptr HMENU, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadMenuID(self, pszModuleName, wResourceID, phMenu) + +proc GoBack*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GoBack(self) + +proc GoForward*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GoForward(self) + +proc GoHome*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GoHome(self) + +proc GoSearch*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GoSearch(self) + +proc Navigate*( + self: ptr IWebBrowser, + URL: BSTR, + Flags: ptr VARIANT, + TargetFrameName: ptr VARIANT, + PostData: ptr VARIANT, + Headers: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Navigate(self, URL, Flags, TargetFrameName, PostData, Headers) + +proc Refresh*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Refresh(self) + +proc Refresh2*(self: ptr IWebBrowser, Level: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Refresh2(self, Level) + +proc Stop*(self: ptr IWebBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stop(self) + +proc get_Application*( + self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppDisp) + +proc get_Parent*( + self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppDisp) + +proc get_Container*( + self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Container(self, ppDisp) + +proc get_Document*( + self: ptr IWebBrowser, ppDisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Document(self, ppDisp) + +proc get_TopLevelContainer*( + self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TopLevelContainer(self, pBool) + +proc get_Type*(self: ptr IWebBrowser, Type: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Type(self, Type) + +proc get_Left*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Left(self, pl) + +proc put_Left*(self: ptr IWebBrowser, Left: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Left(self, Left) + +proc get_Top*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Top(self, pl) + +proc put_Top*(self: ptr IWebBrowser, Top: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Top(self, Top) + +proc get_Width*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Width(self, pl) + +proc put_Width*(self: ptr IWebBrowser, Width: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Width(self, Width) + +proc get_Height*(self: ptr IWebBrowser, pl: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Height(self, pl) + +proc put_Height*(self: ptr IWebBrowser, Height: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Height(self, Height) + +proc get_LocationName*( + self: ptr IWebBrowser, LocationName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_LocationName(self, LocationName) + +proc get_LocationURL*( + self: ptr IWebBrowser, LocationURL: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_LocationURL(self, LocationURL) + +proc get_Busy*( + self: ptr IWebBrowser, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Busy(self, pBool) + +proc Quit*(self: ptr IWebBrowserApp): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Quit(self) + +proc ClientToWindow*( + self: ptr IWebBrowserApp, pcx: ptr int32, pcy: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClientToWindow(self, pcx, pcy) + +proc PutProperty*( + self: ptr IWebBrowserApp, Property: BSTR, vtValue: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PutProperty(self, Property, vtValue) + +proc GetProperty*( + self: ptr IWebBrowserApp, Property: BSTR, pvtValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, Property, pvtValue) + +proc get_Name*(self: ptr IWebBrowserApp, Name: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Name(self, Name) + +proc get_HWND*( + self: ptr IWebBrowserApp, pHWND: ptr SHANDLE_PTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HWND(self, pHWND) + +proc get_FullName*( + self: ptr IWebBrowserApp, FullName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FullName(self, FullName) + +proc get_Path*(self: ptr IWebBrowserApp, Path: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Path(self, Path) + +proc get_Visible*( + self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Visible(self, pBool) + +proc put_Visible*( + self: ptr IWebBrowserApp, Value: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Visible(self, Value) + +proc get_StatusBar*( + self: ptr IWebBrowserApp, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StatusBar(self, pBool) + +proc put_StatusBar*( + self: ptr IWebBrowserApp, Value: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_StatusBar(self, Value) + +proc get_StatusText*( + self: ptr IWebBrowserApp, StatusText: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StatusText(self, StatusText) + +proc put_StatusText*( + self: ptr IWebBrowserApp, StatusText: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_StatusText(self, StatusText) + +proc get_ToolBar*( + self: ptr IWebBrowserApp, Value: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToolBar(self, Value) + +proc put_ToolBar*(self: ptr IWebBrowserApp, Value: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ToolBar(self, Value) + +proc get_MenuBar*( + self: ptr IWebBrowserApp, Value: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_MenuBar(self, Value) + +proc put_MenuBar*( + self: ptr IWebBrowserApp, Value: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_MenuBar(self, Value) + +proc get_FullScreen*( + self: ptr IWebBrowserApp, pbFullScreen: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FullScreen(self, pbFullScreen) + +proc put_FullScreen*( + self: ptr IWebBrowserApp, bFullScreen: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_FullScreen(self, bFullScreen) + +proc Navigate2*( + self: ptr IWebBrowser2, + URL: ptr VARIANT, + Flags: ptr VARIANT, + TargetFrameName: ptr VARIANT, + PostData: ptr VARIANT, + Headers: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Navigate2(self, URL, Flags, TargetFrameName, PostData, Headers) + +proc QueryStatusWB*( + self: ptr IWebBrowser2, cmdID: OLECMDID, pcmdf: ptr OLECMDF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryStatusWB(self, cmdID, pcmdf) + +proc ExecWB*( + self: ptr IWebBrowser2, + cmdID: OLECMDID, + cmdexecopt: OLECMDEXECOPT, + pvaIn: ptr VARIANT, + pvaOut: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExecWB(self, cmdID, cmdexecopt, pvaIn, pvaOut) + +proc ShowBrowserBar*( + self: ptr IWebBrowser2, + pvaClsid: ptr VARIANT, + pvarShow: ptr VARIANT, + pvarSize: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowBrowserBar(self, pvaClsid, pvarShow, pvarSize) + +proc get_ReadyState*( + self: ptr IWebBrowser2, plReadyState: ptr READYSTATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ReadyState(self, plReadyState) + +proc get_Offline*( + self: ptr IWebBrowser2, pbOffline: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Offline(self, pbOffline) + +proc put_Offline*( + self: ptr IWebBrowser2, bOffline: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Offline(self, bOffline) + +proc get_Silent*( + self: ptr IWebBrowser2, pbSilent: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Silent(self, pbSilent) + +proc put_Silent*( + self: ptr IWebBrowser2, bSilent: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Silent(self, bSilent) + +proc get_RegisterAsBrowser*( + self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RegisterAsBrowser(self, pbRegister) + +proc put_RegisterAsBrowser*( + self: ptr IWebBrowser2, bRegister: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_RegisterAsBrowser(self, bRegister) + +proc get_RegisterAsDropTarget*( + self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RegisterAsDropTarget(self, pbRegister) + +proc put_RegisterAsDropTarget*( + self: ptr IWebBrowser2, bRegister: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_RegisterAsDropTarget(self, bRegister) + +proc get_TheaterMode*( + self: ptr IWebBrowser2, pbRegister: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TheaterMode(self, pbRegister) + +proc put_TheaterMode*( + self: ptr IWebBrowser2, bRegister: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_TheaterMode(self, bRegister) + +proc get_AddressBar*( + self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AddressBar(self, Value) + +proc put_AddressBar*( + self: ptr IWebBrowser2, Value: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_AddressBar(self, Value) + +proc get_Resizable*( + self: ptr IWebBrowser2, Value: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Resizable(self, Value) + +proc put_Resizable*( + self: ptr IWebBrowser2, Value: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Resizable(self, Value) + +proc get_Count*(self: ptr IShellWindows, Count: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, Count) + +proc Item*( + self: ptr IShellWindows, index: VARIANT, Folder: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, index, Folder) + +proc NewEnum*( + self: ptr IShellWindows, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewEnum(self, ppunk) + +proc Register*( + self: ptr IShellWindows, + pid: ptr IDispatch, + hWnd: LONG, + swClass: int32, + plCookie: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Register(self, pid, hWnd, swClass, plCookie) + +proc RegisterPending*( + self: ptr IShellWindows, + lThreadId: LONG, + pvarloc: ptr VARIANT, + pvarlocRoot: ptr VARIANT, + swClass: int32, + plCookie: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterPending( + self, lThreadId, pvarloc, pvarlocRoot, swClass, plCookie + ) + +proc Revoke*(self: ptr IShellWindows, lCookie: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Revoke(self, lCookie) + +proc OnNavigate*( + self: ptr IShellWindows, lCookie: LONG, pvarLoc: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnNavigate(self, lCookie, pvarLoc) + +proc OnActivated*( + self: ptr IShellWindows, lCookie: LONG, fActive: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnActivated(self, lCookie, fActive) + +proc FindWindowSW*( + self: ptr IShellWindows, + pvarLoc: ptr VARIANT, + pvarLocRoot: ptr VARIANT, + swClass: int32, + phwnd: ptr LONG, + swfwOptions: int32, + ppdispOut: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindWindowSW( + self, pvarLoc, pvarLocRoot, swClass, phwnd, swfwOptions, ppdispOut + ) + +proc OnCreated*( + self: ptr IShellWindows, lCookie: LONG, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnCreated(self, lCookie, punk) + +proc ProcessAttachDetach*( + self: ptr IShellWindows, fAttach: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProcessAttachDetach(self, fAttach) + +proc ResetFirstBootMode*(self: ptr IShellUIHelper): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetFirstBootMode(self) + +proc ResetSafeMode*(self: ptr IShellUIHelper): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetSafeMode(self) + +proc RefreshOfflineDesktop*(self: ptr IShellUIHelper): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RefreshOfflineDesktop(self) + +proc AddFavorite*( + self: ptr IShellUIHelper, URL: BSTR, Title: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddFavorite(self, URL, Title) + +proc AddChannel*(self: ptr IShellUIHelper, URL: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddChannel(self, URL) + +proc AddDesktopComponent*( + self: ptr IShellUIHelper, + URL: BSTR, + Type: BSTR, + Left: ptr VARIANT, + Top: ptr VARIANT, + Width: ptr VARIANT, + Height: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddDesktopComponent(self, URL, Type, Left, Top, Width, Height) + +proc IsSubscribed*( + self: ptr IShellUIHelper, URL: BSTR, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsSubscribed(self, URL, pBool) + +proc NavigateAndFind*( + self: ptr IShellUIHelper, URL: BSTR, strQuery: BSTR, varTargetFrame: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NavigateAndFind(self, URL, strQuery, varTargetFrame) + +proc ImportExportFavorites*( + self: ptr IShellUIHelper, fImport: VARIANT_BOOL, strImpExpPath: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ImportExportFavorites(self, fImport, strImpExpPath) + +proc AutoCompleteSaveForm*( + self: ptr IShellUIHelper, Form: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AutoCompleteSaveForm(self, Form) + +proc AutoScan*( + self: ptr IShellUIHelper, + strSearch: BSTR, + strFailureUrl: BSTR, + pvarTargetFrame: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AutoScan(self, strSearch, strFailureUrl, pvarTargetFrame) + +proc AutoCompleteAttach*( + self: ptr IShellUIHelper, Reserved: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AutoCompleteAttach(self, Reserved) + +proc ShowBrowserUI*( + self: ptr IShellUIHelper, bstrName: BSTR, pvarIn: ptr VARIANT, pvarOut: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowBrowserUI(self, bstrName, pvarIn, pvarOut) + +proc AddSearchProvider*( + self: ptr IShellUIHelper2, URL: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSearchProvider(self, URL) + +proc RunOnceShown*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RunOnceShown(self) + +proc SkipRunOnce*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SkipRunOnce(self) + +proc CustomizeSettings*( + self: ptr IShellUIHelper2, + fSQM: VARIANT_BOOL, + fPhishing: VARIANT_BOOL, + bstrLocale: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CustomizeSettings(self, fSQM, fPhishing, bstrLocale) + +proc SqmEnabled*( + self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SqmEnabled(self, pfEnabled) + +proc PhishingEnabled*( + self: ptr IShellUIHelper2, pfEnabled: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PhishingEnabled(self, pfEnabled) + +proc BrandImageUri*( + self: ptr IShellUIHelper2, pbstrUri: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BrandImageUri(self, pbstrUri) + +proc SkipTabsWelcome*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SkipTabsWelcome(self) + +proc DiagnoseConnection*(self: ptr IShellUIHelper2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DiagnoseConnection(self) + +proc CustomizeClearType*( + self: ptr IShellUIHelper2, fSet: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CustomizeClearType(self, fSet) + +proc IsSearchProviderInstalled*( + self: ptr IShellUIHelper2, URL: BSTR, pdwResult: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsSearchProviderInstalled(self, URL, pdwResult) + +proc IsSearchMigrated*( + self: ptr IShellUIHelper2, pfMigrated: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsSearchMigrated(self, pfMigrated) + +proc DefaultSearchProvider*( + self: ptr IShellUIHelper2, pbstrName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DefaultSearchProvider(self, pbstrName) + +proc RunOnceRequiredSettingsComplete*( + self: ptr IShellUIHelper2, fComplete: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RunOnceRequiredSettingsComplete(self, fComplete) + +proc RunOnceHasShown*( + self: ptr IShellUIHelper2, pfShown: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RunOnceHasShown(self, pfShown) + +proc SearchGuideUrl*( + self: ptr IShellUIHelper2, pbstrUrl: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SearchGuideUrl(self, pbstrUrl) + +proc MoveSelectionUp*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveSelectionUp(self) + +proc MoveSelectionDown*( + self: ptr IShellFavoritesNameSpace +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveSelectionDown(self) + +proc ResetSort*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetSort(self) + +proc NewFolder*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewFolder(self) + +proc mSynchronize*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Synchronize(self) + +proc Import*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Import(self) + +proc Export*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Export(self) + +proc InvokeContextMenuCommand*( + self: ptr IShellFavoritesNameSpace, strCommand: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeContextMenuCommand(self, strCommand) + +proc MoveSelectionTo*(self: ptr IShellFavoritesNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveSelectionTo(self) + +proc get_SubscriptionsEnabled*( + self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SubscriptionsEnabled(self, pBool) + +proc CreateSubscriptionForSelection*( + self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateSubscriptionForSelection(self, pBool) + +proc DeleteSubscriptionForSelection*( + self: ptr IShellFavoritesNameSpace, pBool: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteSubscriptionForSelection(self, pBool) + +proc SetRoot*( + self: ptr IShellFavoritesNameSpace, bstrFullPath: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRoot(self, bstrFullPath) + +proc get_EnumOptions*( + self: ptr IShellNameSpace, pgrfEnumFlags: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_EnumOptions(self, pgrfEnumFlags) + +proc put_EnumOptions*( + self: ptr IShellNameSpace, pgrfEnumFlags: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_EnumOptions(self, pgrfEnumFlags) + +proc get_SelectedItem*( + self: ptr IShellNameSpace, pItem: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SelectedItem(self, pItem) + +proc put_SelectedItem*( + self: ptr IShellNameSpace, pItem: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_SelectedItem(self, pItem) + +proc get_Root*( + self: ptr IShellNameSpace, pvar: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Root(self, pvar) + +proc put_Root*(self: ptr IShellNameSpace, pvar: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Root(self, pvar) + +proc get_Depth*( + self: ptr IShellNameSpace, piDepth: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Depth(self, piDepth) + +proc put_Depth*(self: ptr IShellNameSpace, piDepth: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Depth(self, piDepth) + +proc get_Mode*( + self: ptr IShellNameSpace, puMode: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Mode(self, puMode) + +proc put_Mode*(self: ptr IShellNameSpace, puMode: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Mode(self, puMode) + +proc get_Flags*( + self: ptr IShellNameSpace, pdwFlags: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Flags(self, pdwFlags) + +proc put_Flags*( + self: ptr IShellNameSpace, pdwFlags: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Flags(self, pdwFlags) + +proc put_TVFlags*( + self: ptr IShellNameSpace, dwFlags: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_TVFlags(self, dwFlags) + +proc get_TVFlags*( + self: ptr IShellNameSpace, dwFlags: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TVFlags(self, dwFlags) + +proc get_Columns*( + self: ptr IShellNameSpace, bstrColumns: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Columns(self, bstrColumns) + +proc put_Columns*( + self: ptr IShellNameSpace, bstrColumns: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Columns(self, bstrColumns) + +proc get_CountViewTypes*( + self: ptr IShellNameSpace, piTypes: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CountViewTypes(self, piTypes) + +proc SetViewType*(self: ptr IShellNameSpace, iType: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetViewType(self, iType) + +proc SelectedItems*( + self: ptr IShellNameSpace, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectedItems(self, ppid) + +proc Expand*( + self: ptr IShellNameSpace, `var`: VARIANT, iDepth: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Expand(self, `var`, iDepth) + +proc UnselectAll*(self: ptr IShellNameSpace): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnselectAll(self) + +proc advanceError*(self: ptr IScriptErrorList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.advanceError(self) + +proc retreatError*(self: ptr IScriptErrorList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.retreatError(self) + +proc canAdvanceError*( + self: ptr IScriptErrorList, pfCanAdvance: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.canAdvanceError(self, pfCanAdvance) + +proc canRetreatError*( + self: ptr IScriptErrorList, pfCanRetreat: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.canRetreatError(self, pfCanRetreat) + +proc getErrorLine*( + self: ptr IScriptErrorList, plLine: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getErrorLine(self, plLine) + +proc getErrorChar*( + self: ptr IScriptErrorList, plChar: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getErrorChar(self, plChar) + +proc getErrorCode*( + self: ptr IScriptErrorList, plCode: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getErrorCode(self, plCode) + +proc getErrorMsg*( + self: ptr IScriptErrorList, pstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getErrorMsg(self, pstr) + +proc getErrorUrl*( + self: ptr IScriptErrorList, pstr: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getErrorUrl(self, pstr) + +proc getAlwaysShowLockState*( + self: ptr IScriptErrorList, pfAlwaysShowLocked: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getAlwaysShowLockState(self, pfAlwaysShowLocked) + +proc getDetailsPaneOpen*( + self: ptr IScriptErrorList, pfDetailsPaneOpen: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getDetailsPaneOpen(self, pfDetailsPaneOpen) + +proc setDetailsPaneOpen*( + self: ptr IScriptErrorList, fDetailsPaneOpen: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setDetailsPaneOpen(self, fDetailsPaneOpen) + +proc getPerErrorDisplay*( + self: ptr IScriptErrorList, pfPerErrorDisplay: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.getPerErrorDisplay(self, pfPerErrorDisplay) + +proc setPerErrorDisplay*( + self: ptr IScriptErrorList, fPerErrorDisplay: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.setPerErrorDisplay(self, fPerErrorDisplay) + +proc get_Title*(self: ptr ISearch, pbstrTitle: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Title(self, pbstrTitle) + +proc get_Id*(self: ptr ISearch, pbstrId: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Id(self, pbstrId) + +proc get_URL*(self: ptr ISearch, pbstrUrl: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_URL(self, pbstrUrl) + +proc get_Count*(self: ptr ISearches, plCount: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, plCount) + +proc get_Default*( + self: ptr ISearches, pbstrDefault: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Default(self, pbstrDefault) + +proc Item*( + self: ptr ISearches, index: VARIANT, ppid: ptr ptr ISearch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, index, ppid) + +proc NewEnum*( + self: ptr ISearches, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewEnum(self, ppunk) + +proc AddNextMenuItem*( + self: ptr ISearchAssistantOC, bstrText: BSTR, idItem: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddNextMenuItem(self, bstrText, idItem) + +proc SetDefaultSearchUrl*( + self: ptr ISearchAssistantOC, bstrUrl: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultSearchUrl(self, bstrUrl) + +proc NavigateToDefaultSearch*( + self: ptr ISearchAssistantOC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NavigateToDefaultSearch(self) + +proc IsRestricted*( + self: ptr ISearchAssistantOC, bstrGuid: BSTR, pVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRestricted(self, bstrGuid, pVal) + +proc get_ShellFeaturesEnabled*( + self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShellFeaturesEnabled(self, pVal) + +proc get_SearchAssistantDefault*( + self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SearchAssistantDefault(self, pVal) + +proc get_Searches*( + self: ptr ISearchAssistantOC, ppid: ptr ptr ISearches +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Searches(self, ppid) + +proc get_InWebFolder*( + self: ptr ISearchAssistantOC, pVal: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_InWebFolder(self, pVal) + +proc PutProperty*( + self: ptr ISearchAssistantOC, + bPerLocale: VARIANT_BOOL, + bstrName: BSTR, + bstrValue: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PutProperty(self, bPerLocale, bstrName, bstrValue) + +proc GetProperty*( + self: ptr ISearchAssistantOC, + bPerLocale: VARIANT_BOOL, + bstrName: BSTR, + pbstrValue: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, bPerLocale, bstrName, pbstrValue) + +proc put_EventHandled*( + self: ptr ISearchAssistantOC, rhs: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_EventHandled(self, rhs) + +proc ResetNextMenu*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetNextMenu(self) + +proc FindOnWeb*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindOnWeb(self) + +proc FindFilesOrFolders*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFilesOrFolders(self) + +proc FindComputer*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindComputer(self) + +proc FindPrinter*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindPrinter(self) + +proc FindPeople*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindPeople(self) + +proc GetSearchAssistantURL*( + self: ptr ISearchAssistantOC, + bSubstitute: VARIANT_BOOL, + bCustomize: VARIANT_BOOL, + pbstrValue: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSearchAssistantURL(self, bSubstitute, bCustomize, pbstrValue) + +proc NotifySearchSettingsChanged*( + self: ptr ISearchAssistantOC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NotifySearchSettingsChanged(self) + +proc put_ASProvider*( + self: ptr ISearchAssistantOC, pProvider: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ASProvider(self, pProvider) + +proc get_ASProvider*( + self: ptr ISearchAssistantOC, pProvider: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ASProvider(self, pProvider) + +proc put_ASSetting*( + self: ptr ISearchAssistantOC, pSetting: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ASSetting(self, pSetting) + +proc get_ASSetting*( + self: ptr ISearchAssistantOC, pSetting: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ASSetting(self, pSetting) + +proc NETDetectNextNavigate*(self: ptr ISearchAssistantOC): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NETDetectNextNavigate(self) + +proc PutFindText*( + self: ptr ISearchAssistantOC, FindText: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PutFindText(self, FindText) + +proc get_Version*( + self: ptr ISearchAssistantOC, pVersion: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Version(self, pVersion) + +proc EncodeString*( + self: ptr ISearchAssistantOC, + bstrValue: BSTR, + bstrCharSet: BSTR, + bUseUTF8: VARIANT_BOOL, + pbstrResult: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EncodeString(self, bstrValue, bstrCharSet, bUseUTF8, pbstrResult) + +proc get_ShowFindPrinter*( + self: ptr ISearchAssistantOC2, pbShowFindPrinter: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShowFindPrinter(self, pbShowFindPrinter) + +proc get_SearchCompanionAvailable*( + self: ptr ISearchAssistantOC3, pbAvailable: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SearchCompanionAvailable(self, pbAvailable) + +proc put_UseSearchCompanion*( + self: ptr ISearchAssistantOC3, pbUseSC: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_UseSearchCompanion(self, pbUseSC) + +proc get_UseSearchCompanion*( + self: ptr ISearchAssistantOC3, pbUseSC: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_UseSearchCompanion(self, pbUseSC) + +proc GetData*( + self: ptr IRichChunk, + pFirstPos: ptr ULONG, + pLength: ptr ULONG, + ppsz: ptr LPWSTR, + pValue: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetData(self, pFirstPos, pLength, ppsz, pValue) + +proc GetConditionType*( + self: ptr ICondition, pNodeType: ptr CONDITION_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConditionType(self, pNodeType) + +proc GetSubConditions*( + self: ptr ICondition, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSubConditions(self, riid, ppv) + +proc GetComparisonInfo*( + self: ptr ICondition, + ppszPropertyName: ptr LPWSTR, + pcop: ptr CONDITION_OPERATION, + ppropvar: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetComparisonInfo(self, ppszPropertyName, pcop, ppropvar) + +proc GetValueType*( + self: ptr ICondition, ppszValueTypeName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValueType(self, ppszValueTypeName) + +proc GetValueNormalization*( + self: ptr ICondition, ppszNormalization: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValueNormalization(self, ppszNormalization) + +proc GetInputTerms*( + self: ptr ICondition, + ppPropertyTerm: ptr ptr IRichChunk, + ppOperationTerm: ptr ptr IRichChunk, + ppValueTerm: ptr ptr IRichChunk, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInputTerms(self, ppPropertyTerm, ppOperationTerm, ppValueTerm) + +proc Clone*(self: ptr ICondition, ppc: ptr ptr ICondition): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppc) + +proc GetLocale*( + self: ptr ICondition2, ppszLocaleName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLocale(self, ppszLocaleName) + +proc GetLeafConditionInfo*( + self: ptr ICondition2, + ppropkey: ptr PROPERTYKEY, + pcop: ptr CONDITION_OPERATION, + ppropvar: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLeafConditionInfo(self, ppropkey, pcop, ppropvar) + +proc Initialize*( + self: ptr IInitializeWithFile, pszFilePath: LPCWSTR, grfMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pszFilePath, grfMode) + +proc Initialize*( + self: ptr IInitializeWithStream, pstream: ptr IStream, grfMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pstream, grfMode) + +proc GetCount*( + self: ptr IPropertyStore, cProps: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, cProps) + +proc GetAt*( + self: ptr IPropertyStore, iProp: DWORD, pkey: ptr PROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAt(self, iProp, pkey) + +proc GetValue*( + self: ptr IPropertyStore, key: REFPROPERTYKEY, pv: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValue(self, key, pv) + +proc SetValue*( + self: ptr IPropertyStore, key: REFPROPERTYKEY, propvar: REFPROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, key, propvar) + +proc Commit*(self: ptr IPropertyStore): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self) + +proc GetNamedValue*( + self: ptr INamedPropertyStore, pszName: LPCWSTR, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNamedValue(self, pszName, ppropvar) + +proc SetNamedValue*( + self: ptr INamedPropertyStore, pszName: LPCWSTR, propvar: REFPROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNamedValue(self, pszName, propvar) + +proc GetNameCount*( + self: ptr INamedPropertyStore, pdwCount: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNameCount(self, pdwCount) + +proc GetNameAt*( + self: ptr INamedPropertyStore, iProp: DWORD, pbstrName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNameAt(self, iProp, pbstrName) + +proc SetPropertyKey*( + self: ptr IObjectWithPropertyKey, key: REFPROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPropertyKey(self, key) + +proc GetPropertyKey*( + self: ptr IObjectWithPropertyKey, pkey: ptr PROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyKey(self, pkey) + +proc ApplyToPropVariant*( + self: ptr IPropertyChange, propvarIn: REFPROPVARIANT, ppropvarOut: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyToPropVariant(self, propvarIn, ppropvarOut) + +proc GetCount*( + self: ptr IPropertyChangeArray, pcOperations: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, pcOperations) + +proc GetAt*( + self: ptr IPropertyChangeArray, iIndex: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAt(self, iIndex, riid, ppv) + +proc InsertAt*( + self: ptr IPropertyChangeArray, iIndex: UINT, ppropChange: ptr IPropertyChange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertAt(self, iIndex, ppropChange) + +proc Append*( + self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Append(self, ppropChange) + +proc AppendOrReplace*( + self: ptr IPropertyChangeArray, ppropChange: ptr IPropertyChange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AppendOrReplace(self, ppropChange) + +proc RemoveAt*( + self: ptr IPropertyChangeArray, iIndex: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAt(self, iIndex) + +proc IsKeyInArray*( + self: ptr IPropertyChangeArray, key: REFPROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsKeyInArray(self, key) + +proc IsPropertyWritable*( + self: ptr IPropertyStoreCapabilities, key: REFPROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsPropertyWritable(self, key) + +proc GetState*( + self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, pstate: ptr PSC_STATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetState(self, key, pstate) + +proc GetValueAndState*( + self: ptr IPropertyStoreCache, + key: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, + pstate: ptr PSC_STATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValueAndState(self, key, ppropvar, pstate) + +proc SetState*( + self: ptr IPropertyStoreCache, key: REFPROPERTYKEY, state: PSC_STATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetState(self, key, state) + +proc SetValueAndState*( + self: ptr IPropertyStoreCache, + key: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, + state: PSC_STATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValueAndState(self, key, ppropvar, state) + +proc GetEnumType*( + self: ptr IPropertyEnumType, penumtype: ptr PROPENUMTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnumType(self, penumtype) + +proc GetValue*( + self: ptr IPropertyEnumType, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValue(self, ppropvar) + +proc GetRangeMinValue*( + self: ptr IPropertyEnumType, ppropvarMin: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRangeMinValue(self, ppropvarMin) + +proc GetRangeSetValue*( + self: ptr IPropertyEnumType, ppropvarSet: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRangeSetValue(self, ppropvarSet) + +proc GetDisplayText*( + self: ptr IPropertyEnumType, ppszDisplay: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayText(self, ppszDisplay) + +proc GetImageReference*( + self: ptr IPropertyEnumType2, ppszImageRes: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImageReference(self, ppszImageRes) + +proc GetCount*( + self: ptr IPropertyEnumTypeList, pctypes: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, pctypes) + +proc GetAt*( + self: ptr IPropertyEnumTypeList, itype: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAt(self, itype, riid, ppv) + +proc GetConditionAt*( + self: ptr IPropertyEnumTypeList, nIndex: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConditionAt(self, nIndex, riid, ppv) + +proc FindMatchingIndex*( + self: ptr IPropertyEnumTypeList, propvarCmp: REFPROPVARIANT, pnIndex: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindMatchingIndex(self, propvarCmp, pnIndex) + +proc GetPropertyKey*( + self: ptr IPropertyDescription, pkey: ptr PROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyKey(self, pkey) + +proc GetCanonicalName*( + self: ptr IPropertyDescription, ppszName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCanonicalName(self, ppszName) + +proc GetPropertyType*( + self: ptr IPropertyDescription, pvartype: ptr VARTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyType(self, pvartype) + +proc GetDisplayName*( + self: ptr IPropertyDescription, ppszName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayName(self, ppszName) + +proc GetEditInvitation*( + self: ptr IPropertyDescription, ppszInvite: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEditInvitation(self, ppszInvite) + +proc GetTypeFlags*( + self: ptr IPropertyDescription, + mask: PROPDESC_TYPE_FLAGS, + ppdtFlags: ptr PROPDESC_TYPE_FLAGS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTypeFlags(self, mask, ppdtFlags) + +proc GetViewFlags*( + self: ptr IPropertyDescription, ppdvFlags: ptr PROPDESC_VIEW_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewFlags(self, ppdvFlags) + +proc GetDefaultColumnWidth*( + self: ptr IPropertyDescription, pcxChars: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultColumnWidth(self, pcxChars) + +proc GetDisplayType*( + self: ptr IPropertyDescription, pdisplaytype: ptr PROPDESC_DISPLAYTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayType(self, pdisplaytype) + +proc GetColumnState*( + self: ptr IPropertyDescription, pcsFlags: ptr SHCOLSTATEF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnState(self, pcsFlags) + +proc GetGroupingRange*( + self: ptr IPropertyDescription, pgr: ptr PROPDESC_GROUPING_RANGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGroupingRange(self, pgr) + +proc GetRelativeDescriptionType*( + self: ptr IPropertyDescription, prdt: ptr PROPDESC_RELATIVEDESCRIPTION_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRelativeDescriptionType(self, prdt) + +proc GetRelativeDescription*( + self: ptr IPropertyDescription, + propvar1: REFPROPVARIANT, + propvar2: REFPROPVARIANT, + ppszDesc1: ptr LPWSTR, + ppszDesc2: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRelativeDescription(self, propvar1, propvar2, ppszDesc1, ppszDesc2) + +proc GetSortDescription*( + self: ptr IPropertyDescription, psd: ptr PROPDESC_SORTDESCRIPTION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSortDescription(self, psd) + +proc GetSortDescriptionLabel*( + self: ptr IPropertyDescription, fDescending: WINBOOL, ppszDescription: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSortDescriptionLabel(self, fDescending, ppszDescription) + +proc GetAggregationType*( + self: ptr IPropertyDescription, paggtype: ptr PROPDESC_AGGREGATION_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAggregationType(self, paggtype) + +proc GetConditionType*( + self: ptr IPropertyDescription, + pcontype: ptr PROPDESC_CONDITION_TYPE, + popDefault: ptr CONDITION_OPERATION, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConditionType(self, pcontype, popDefault) + +proc GetEnumTypeList*( + self: ptr IPropertyDescription, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnumTypeList(self, riid, ppv) + +proc CoerceToCanonicalValue*( + self: ptr IPropertyDescription, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CoerceToCanonicalValue(self, ppropvar) + +proc FormatForDisplay*( + self: ptr IPropertyDescription, + propvar: REFPROPVARIANT, + pdfFlags: PROPDESC_FORMAT_FLAGS, + ppszDisplay: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FormatForDisplay(self, propvar, pdfFlags, ppszDisplay) + +proc IsValueCanonical*( + self: ptr IPropertyDescription, propvar: REFPROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsValueCanonical(self, propvar) + +proc GetImageReferenceForValue*( + self: ptr IPropertyDescription2, propvar: REFPROPVARIANT, ppszImageRes: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImageReferenceForValue(self, propvar, ppszImageRes) + +proc GetSortByAlias*( + self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSortByAlias(self, riid, ppv) + +proc GetAdditionalSortByAliases*( + self: ptr IPropertyDescriptionAliasInfo, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAdditionalSortByAliases(self, riid, ppv) + +proc GetSearchInfoFlags*( + self: ptr IPropertyDescriptionSearchInfo, ppdsiFlags: ptr PROPDESC_SEARCHINFO_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSearchInfoFlags(self, ppdsiFlags) + +proc GetColumnIndexType*( + self: ptr IPropertyDescriptionSearchInfo, ppdciType: ptr PROPDESC_COLUMNINDEX_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnIndexType(self, ppdciType) + +proc GetProjectionString*( + self: ptr IPropertyDescriptionSearchInfo, ppszProjection: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProjectionString(self, ppszProjection) + +proc GetMaxSize*( + self: ptr IPropertyDescriptionSearchInfo, pcbMaxSize: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMaxSize(self, pcbMaxSize) + +proc GetRelatedProperty*( + self: ptr IPropertyDescriptionRelatedPropertyInfo, + pszRelationshipName: LPCWSTR, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRelatedProperty(self, pszRelationshipName, riid, ppv) + +proc GetPropertyDescription*( + self: ptr IPropertySystem, propkey: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDescription(self, propkey, riid, ppv) + +proc GetPropertyDescriptionByName*( + self: ptr IPropertySystem, pszCanonicalName: LPCWSTR, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDescriptionByName(self, pszCanonicalName, riid, ppv) + +proc GetPropertyDescriptionListFromString*( + self: ptr IPropertySystem, pszPropList: LPCWSTR, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDescriptionListFromString(self, pszPropList, riid, ppv) + +proc EnumeratePropertyDescriptions*( + self: ptr IPropertySystem, + filterOn: PROPDESC_ENUMFILTER, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumeratePropertyDescriptions(self, filterOn, riid, ppv) + +proc FormatForDisplay*( + self: ptr IPropertySystem, + key: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + pdff: PROPDESC_FORMAT_FLAGS, + pszText: LPWSTR, + cchText: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FormatForDisplay(self, key, propvar, pdff, pszText, cchText) + +proc FormatForDisplayAlloc*( + self: ptr IPropertySystem, + key: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + pdff: PROPDESC_FORMAT_FLAGS, + ppszDisplay: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FormatForDisplayAlloc(self, key, propvar, pdff, ppszDisplay) + +proc RegisterPropertySchema*( + self: ptr IPropertySystem, pszPath: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterPropertySchema(self, pszPath) + +proc UnregisterPropertySchema*( + self: ptr IPropertySystem, pszPath: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterPropertySchema(self, pszPath) + +proc RefreshPropertySchema*(self: ptr IPropertySystem): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RefreshPropertySchema(self) + +proc GetCount*( + self: ptr IPropertyDescriptionList, pcElem: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, pcElem) + +proc GetAt*( + self: ptr IPropertyDescriptionList, iElem: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAt(self, iElem, riid, ppv) + +proc GetPropertyStore*( + self: ptr IPropertyStoreFactory, + flags: GETPROPERTYSTOREFLAGS, + pUnkFactory: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStore(self, flags, pUnkFactory, riid, ppv) + +proc GetPropertyStoreForKeys*( + self: ptr IPropertyStoreFactory, + rgKeys: ptr PROPERTYKEY, + cKeys: UINT, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStoreForKeys(self, rgKeys, cKeys, flags, riid, ppv) + +proc GetDelayedPropertyStore*( + self: ptr IDelayedPropertyStoreFactory, + flags: GETPROPERTYSTOREFLAGS, + dwStoreId: DWORD, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDelayedPropertyStore(self, flags, dwStoreId, riid, ppv) + +proc SetFlags*( + self: ptr IPersistSerializedPropStorage, flags: PERSIST_SPROPSTORE_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFlags(self, flags) + +proc SetPropertyStorage*( + self: ptr IPersistSerializedPropStorage, psps: PCUSERIALIZEDPROPSTORAGE, cb: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPropertyStorage(self, psps, cb) + +proc GetPropertyStorage*( + self: ptr IPersistSerializedPropStorage, + ppsps: ptr ptr SERIALIZEDPROPSTORAGE, + pcb: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStorage(self, ppsps, pcb) + +proc GetPropertyStorageSize*( + self: ptr IPersistSerializedPropStorage2, pcb: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStorageSize(self, pcb) + +proc GetPropertyStorageBuffer*( + self: ptr IPersistSerializedPropStorage2, + psps: ptr SERIALIZEDPROPSTORAGE, + cb: DWORD, + pcbWritten: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStorageBuffer(self, psps, cb, pcbWritten) + +proc SchemaRefreshed*( + self: ptr IPropertySystemChangeNotify +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SchemaRefreshed(self) + +proc CreateObject*( + self: ptr ICreateObject, + clsid: REFCLSID, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateObject(self, clsid, pUnkOuter, riid, ppv) + +converter winimConverterAsyncIUnknownToIUnknown*(x: ptr AsyncIUnknown): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIClassFactoryToIUnknown*(x: ptr IClassFactory): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarshalToIUnknown*(x: ptr IMarshal): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINoMarshalToIUnknown*(x: ptr INoMarshal): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAgileObjectToIUnknown*(x: ptr IAgileObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarshal2ToIMarshal*(x: ptr IMarshal2): ptr IMarshal = + cast[ptr IMarshal](x) + +converter winimConverterIMarshal2ToIUnknown*(x: ptr IMarshal2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMallocToIUnknown*(x: ptr IMalloc): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStdMarshalInfoToIUnknown*( + x: ptr IStdMarshalInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExternalConnectionToIUnknown*( + x: ptr IExternalConnection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMultiQIToIUnknown*(x: ptr IMultiQI): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterAsyncIMultiQIToIUnknown*(x: ptr AsyncIMultiQI): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternalUnknownToIUnknown*( + x: ptr IInternalUnknown +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumUnknownToIUnknown*(x: ptr IEnumUnknown): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumStringToIUnknown*(x: ptr IEnumString): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISequentialStreamToIUnknown*( + x: ptr ISequentialStream +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStreamToISequentialStream*( + x: ptr IStream +): ptr ISequentialStream = + cast[ptr ISequentialStream](x) + +converter winimConverterIStreamToIUnknown*(x: ptr IStream): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcChannelBufferToIUnknown*( + x: ptr IRpcChannelBuffer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcChannelBuffer2ToIRpcChannelBuffer*( + x: ptr IRpcChannelBuffer2 +): ptr IRpcChannelBuffer = + cast[ptr IRpcChannelBuffer](x) + +converter winimConverterIRpcChannelBuffer2ToIUnknown*( + x: ptr IRpcChannelBuffer2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAsyncRpcChannelBufferToIRpcChannelBuffer2*( + x: ptr IAsyncRpcChannelBuffer +): ptr IRpcChannelBuffer2 = + cast[ptr IRpcChannelBuffer2](x) + +converter winimConverterIAsyncRpcChannelBufferToIRpcChannelBuffer*( + x: ptr IAsyncRpcChannelBuffer +): ptr IRpcChannelBuffer = + cast[ptr IRpcChannelBuffer](x) + +converter winimConverterIAsyncRpcChannelBufferToIUnknown*( + x: ptr IAsyncRpcChannelBuffer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcChannelBuffer3ToIRpcChannelBuffer2*( + x: ptr IRpcChannelBuffer3 +): ptr IRpcChannelBuffer2 = + cast[ptr IRpcChannelBuffer2](x) + +converter winimConverterIRpcChannelBuffer3ToIRpcChannelBuffer*( + x: ptr IRpcChannelBuffer3 +): ptr IRpcChannelBuffer = + cast[ptr IRpcChannelBuffer](x) + +converter winimConverterIRpcChannelBuffer3ToIUnknown*( + x: ptr IRpcChannelBuffer3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcSyntaxNegotiateToIUnknown*( + x: ptr IRpcSyntaxNegotiate +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcProxyBufferToIUnknown*( + x: ptr IRpcProxyBuffer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcStubBufferToIUnknown*(x: ptr IRpcStubBuffer): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPSFactoryBufferToIUnknown*( + x: ptr IPSFactoryBuffer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIChannelHookToIUnknown*(x: ptr IChannelHook): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIClientSecurityToIUnknown*( + x: ptr IClientSecurity +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIServerSecurityToIUnknown*( + x: ptr IServerSecurity +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcOptionsToIUnknown*(x: ptr IRpcOptions): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGlobalOptionsToIUnknown*(x: ptr IGlobalOptions): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISurrogateToIUnknown*(x: ptr ISurrogate): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGlobalInterfaceTableToIUnknown*( + x: ptr IGlobalInterfaceTable +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISynchronizeToIUnknown*(x: ptr ISynchronize): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISynchronizeHandleToIUnknown*( + x: ptr ISynchronizeHandle +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISynchronizeEventToISynchronizeHandle*( + x: ptr ISynchronizeEvent +): ptr ISynchronizeHandle = + cast[ptr ISynchronizeHandle](x) + +converter winimConverterISynchronizeEventToIUnknown*( + x: ptr ISynchronizeEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISynchronizeContainerToIUnknown*( + x: ptr ISynchronizeContainer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISynchronizeMutexToISynchronize*( + x: ptr ISynchronizeMutex +): ptr ISynchronize = + cast[ptr ISynchronize](x) + +converter winimConverterISynchronizeMutexToIUnknown*( + x: ptr ISynchronizeMutex +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICancelMethodCallsToIUnknown*( + x: ptr ICancelMethodCalls +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAsyncManagerToIUnknown*(x: ptr IAsyncManager): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICallFactoryToIUnknown*(x: ptr ICallFactory): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRpcHelperToIUnknown*(x: ptr IRpcHelper): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIReleaseMarshalBuffersToIUnknown*( + x: ptr IReleaseMarshalBuffers +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWaitMultipleToIUnknown*(x: ptr IWaitMultiple): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAddrTrackingControlToIUnknown*( + x: ptr IAddrTrackingControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAddrExclusionControlToIUnknown*( + x: ptr IAddrExclusionControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPipeByteToIUnknown*(x: ptr IPipeByte): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPipeLongToIUnknown*(x: ptr IPipeLong): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPipeDoubleToIUnknown*(x: ptr IPipeDouble): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumContextPropsToIUnknown*( + x: ptr IEnumContextProps +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContextToIUnknown*(x: ptr IContext): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIComThreadingInfoToIUnknown*( + x: ptr IComThreadingInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProcessInitControlToIUnknown*( + x: ptr IProcessInitControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFastRundownToIUnknown*(x: ptr IFastRundown): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMarshalingStreamToIStream*( + x: ptr IMarshalingStream +): ptr IStream = + cast[ptr IStream](x) + +converter winimConverterIMarshalingStreamToISequentialStream*( + x: ptr IMarshalingStream +): ptr ISequentialStream = + cast[ptr ISequentialStream](x) + +converter winimConverterIMarshalingStreamToIUnknown*( + x: ptr IMarshalingStream +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMallocSpyToIUnknown*(x: ptr IMallocSpy): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindCtxToIUnknown*(x: ptr IBindCtx): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumMonikerToIUnknown*(x: ptr IEnumMoniker): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRunnableObjectToIUnknown*( + x: ptr IRunnableObject +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRunningObjectTableToIUnknown*( + x: ptr IRunningObjectTable +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistToIUnknown*(x: ptr IPersist): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistStreamToIPersist*(x: ptr IPersistStream): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistStreamToIUnknown*(x: ptr IPersistStream): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMonikerToIPersistStream*(x: ptr IMoniker): ptr IPersistStream = + cast[ptr IPersistStream](x) + +converter winimConverterIMonikerToIPersist*(x: ptr IMoniker): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIMonikerToIUnknown*(x: ptr IMoniker): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIROTDataToIUnknown*(x: ptr IROTData): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumSTATSTGToIUnknown*(x: ptr IEnumSTATSTG): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStorageToIUnknown*(x: ptr IStorage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistFileToIPersist*(x: ptr IPersistFile): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistFileToIUnknown*(x: ptr IPersistFile): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistStorageToIPersist*( + x: ptr IPersistStorage +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistStorageToIUnknown*( + x: ptr IPersistStorage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterILockBytesToIUnknown*(x: ptr ILockBytes): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumFORMATETCToIUnknown*(x: ptr IEnumFORMATETC): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumSTATDATAToIUnknown*(x: ptr IEnumSTATDATA): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRootStorageToIUnknown*(x: ptr IRootStorage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAdviseSinkToIUnknown*(x: ptr IAdviseSink): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterAsyncIAdviseSinkToIUnknown*( + x: ptr AsyncIAdviseSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAdviseSink2ToIAdviseSink*( + x: ptr IAdviseSink2 +): ptr IAdviseSink = + cast[ptr IAdviseSink](x) + +converter winimConverterIAdviseSink2ToIUnknown*(x: ptr IAdviseSink2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterAsyncIAdviseSink2ToIAdviseSink*( + x: ptr AsyncIAdviseSink2 +): ptr IAdviseSink = + cast[ptr IAdviseSink](x) + +converter winimConverterAsyncIAdviseSink2ToIUnknown*( + x: ptr AsyncIAdviseSink2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDataObjectToIUnknown*(x: ptr IDataObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDataAdviseHolderToIUnknown*( + x: ptr IDataAdviseHolder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMessageFilterToIUnknown*(x: ptr IMessageFilter): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIClassActivatorToIUnknown*( + x: ptr IClassActivator +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFillLockBytesToIUnknown*(x: ptr IFillLockBytes): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProgressNotifyToIUnknown*( + x: ptr IProgressNotify +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterILayoutStorageToIUnknown*(x: ptr ILayoutStorage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBlockingLockToIUnknown*(x: ptr IBlockingLock): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITimeAndNoticeControlToIUnknown*( + x: ptr ITimeAndNoticeControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOplockStorageToIUnknown*(x: ptr IOplockStorage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDirectWriterLockToIUnknown*( + x: ptr IDirectWriterLock +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUrlMonToIUnknown*(x: ptr IUrlMon): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIForegroundTransferToIUnknown*( + x: ptr IForegroundTransfer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIThumbnailExtractorToIUnknown*( + x: ptr IThumbnailExtractor +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDummyHICONIncluderToIUnknown*( + x: ptr IDummyHICONIncluder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProcessLockToIUnknown*(x: ptr IProcessLock): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISurrogateServiceToIUnknown*( + x: ptr ISurrogateService +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeSpyToIUnknown*(x: ptr IInitializeSpy): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApartmentShutdownToIUnknown*( + x: ptr IApartmentShutdown +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICreateTypeInfoToIUnknown*( + x: ptr ICreateTypeInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICreateTypeInfo2ToICreateTypeInfo*( + x: ptr ICreateTypeInfo2 +): ptr ICreateTypeInfo = + cast[ptr ICreateTypeInfo](x) + +converter winimConverterICreateTypeInfo2ToIUnknown*( + x: ptr ICreateTypeInfo2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICreateTypeLibToIUnknown*(x: ptr ICreateTypeLib): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICreateTypeLib2ToICreateTypeLib*( + x: ptr ICreateTypeLib2 +): ptr ICreateTypeLib = + cast[ptr ICreateTypeLib](x) + +converter winimConverterICreateTypeLib2ToIUnknown*( + x: ptr ICreateTypeLib2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDispatchToIUnknown*(x: ptr IDispatch): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumVARIANTToIUnknown*(x: ptr IEnumVARIANT): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeCompToIUnknown*(x: ptr ITypeComp): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeInfoToIUnknown*(x: ptr ITypeInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeInfo2ToITypeInfo*(x: ptr ITypeInfo2): ptr ITypeInfo = + cast[ptr ITypeInfo](x) + +converter winimConverterITypeInfo2ToIUnknown*(x: ptr ITypeInfo2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeLibToIUnknown*(x: ptr ITypeLib): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeLib2ToITypeLib*(x: ptr ITypeLib2): ptr ITypeLib = + cast[ptr ITypeLib](x) + +converter winimConverterITypeLib2ToIUnknown*(x: ptr ITypeLib2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeChangeEventsToIUnknown*( + x: ptr ITypeChangeEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIErrorInfoToIUnknown*(x: ptr IErrorInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICreateErrorInfoToIUnknown*( + x: ptr ICreateErrorInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISupportErrorInfoToIUnknown*( + x: ptr ISupportErrorInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeFactoryToIUnknown*(x: ptr ITypeFactory): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITypeMarshalToIUnknown*(x: ptr ITypeMarshal): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRecordInfoToIUnknown*(x: ptr IRecordInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIErrorLogToIUnknown*(x: ptr IErrorLog): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyBagToIUnknown*(x: ptr IPropertyBag): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleAdviseHolderToIUnknown*( + x: ptr IOleAdviseHolder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleCacheToIUnknown*(x: ptr IOleCache): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleCache2ToIOleCache*(x: ptr IOleCache2): ptr IOleCache = + cast[ptr IOleCache](x) + +converter winimConverterIOleCache2ToIUnknown*(x: ptr IOleCache2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleCacheControlToIUnknown*( + x: ptr IOleCacheControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIParseDisplayNameToIUnknown*( + x: ptr IParseDisplayName +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleContainerToIParseDisplayName*( + x: ptr IOleContainer +): ptr IParseDisplayName = + cast[ptr IParseDisplayName](x) + +converter winimConverterIOleContainerToIUnknown*(x: ptr IOleContainer): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleClientSiteToIUnknown*(x: ptr IOleClientSite): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleObjectToIUnknown*(x: ptr IOleObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleWindowToIUnknown*(x: ptr IOleWindow): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleLinkToIUnknown*(x: ptr IOleLink): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleItemContainerToIOleContainer*( + x: ptr IOleItemContainer +): ptr IOleContainer = + cast[ptr IOleContainer](x) + +converter winimConverterIOleItemContainerToIParseDisplayName*( + x: ptr IOleItemContainer +): ptr IParseDisplayName = + cast[ptr IParseDisplayName](x) + +converter winimConverterIOleItemContainerToIUnknown*( + x: ptr IOleItemContainer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceUIWindowToIOleWindow*( + x: ptr IOleInPlaceUIWindow +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceUIWindowToIUnknown*( + x: ptr IOleInPlaceUIWindow +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceActiveObjectToIOleWindow*( + x: ptr IOleInPlaceActiveObject +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceActiveObjectToIUnknown*( + x: ptr IOleInPlaceActiveObject +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceFrameToIOleInPlaceUIWindow*( + x: ptr IOleInPlaceFrame +): ptr IOleInPlaceUIWindow = + cast[ptr IOleInPlaceUIWindow](x) + +converter winimConverterIOleInPlaceFrameToIOleWindow*( + x: ptr IOleInPlaceFrame +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceFrameToIUnknown*( + x: ptr IOleInPlaceFrame +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceObjectToIOleWindow*( + x: ptr IOleInPlaceObject +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceObjectToIUnknown*( + x: ptr IOleInPlaceObject +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceSiteToIOleWindow*( + x: ptr IOleInPlaceSite +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceSiteToIUnknown*( + x: ptr IOleInPlaceSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContinueToIUnknown*(x: ptr IContinue): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObjectToIUnknown*(x: ptr IViewObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObject2ToIViewObject*( + x: ptr IViewObject2 +): ptr IViewObject = + cast[ptr IViewObject](x) + +converter winimConverterIViewObject2ToIUnknown*(x: ptr IViewObject2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDropSourceToIUnknown*(x: ptr IDropSource): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDropTargetToIUnknown*(x: ptr IDropTarget): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDropSourceNotifyToIUnknown*( + x: ptr IDropSourceNotify +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumOLEVERBToIUnknown*(x: ptr IEnumOLEVERB): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIServiceProviderToIUnknown*( + x: ptr IServiceProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMImplementationToIDispatch*( + x: ptr IXMLDOMImplementation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMImplementationToIUnknown*( + x: ptr IXMLDOMImplementation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMNodeToIDispatch*(x: ptr IXMLDOMNode): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMNodeToIUnknown*(x: ptr IXMLDOMNode): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMDocumentFragmentToIXMLDOMNode*( + x: ptr IXMLDOMDocumentFragment +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMDocumentFragmentToIDispatch*( + x: ptr IXMLDOMDocumentFragment +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMDocumentFragmentToIUnknown*( + x: ptr IXMLDOMDocumentFragment +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMDocumentToIXMLDOMNode*( + x: ptr IXMLDOMDocument +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMDocumentToIDispatch*( + x: ptr IXMLDOMDocument +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMDocumentToIUnknown*( + x: ptr IXMLDOMDocument +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMNodeListToIDispatch*( + x: ptr IXMLDOMNodeList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMNodeListToIUnknown*( + x: ptr IXMLDOMNodeList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMNamedNodeMapToIDispatch*( + x: ptr IXMLDOMNamedNodeMap +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMNamedNodeMapToIUnknown*( + x: ptr IXMLDOMNamedNodeMap +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMCharacterDataToIXMLDOMNode*( + x: ptr IXMLDOMCharacterData +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMCharacterDataToIDispatch*( + x: ptr IXMLDOMCharacterData +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMCharacterDataToIUnknown*( + x: ptr IXMLDOMCharacterData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMAttributeToIXMLDOMNode*( + x: ptr IXMLDOMAttribute +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMAttributeToIDispatch*( + x: ptr IXMLDOMAttribute +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMAttributeToIUnknown*( + x: ptr IXMLDOMAttribute +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMElementToIXMLDOMNode*( + x: ptr IXMLDOMElement +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMElementToIDispatch*( + x: ptr IXMLDOMElement +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMElementToIUnknown*(x: ptr IXMLDOMElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMTextToIXMLDOMCharacterData*( + x: ptr IXMLDOMText +): ptr IXMLDOMCharacterData = + cast[ptr IXMLDOMCharacterData](x) + +converter winimConverterIXMLDOMTextToIXMLDOMNode*(x: ptr IXMLDOMText): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMTextToIDispatch*(x: ptr IXMLDOMText): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMTextToIUnknown*(x: ptr IXMLDOMText): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMCommentToIXMLDOMCharacterData*( + x: ptr IXMLDOMComment +): ptr IXMLDOMCharacterData = + cast[ptr IXMLDOMCharacterData](x) + +converter winimConverterIXMLDOMCommentToIXMLDOMNode*( + x: ptr IXMLDOMComment +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMCommentToIDispatch*( + x: ptr IXMLDOMComment +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMCommentToIUnknown*(x: ptr IXMLDOMComment): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMProcessingInstructionToIXMLDOMNode*( + x: ptr IXMLDOMProcessingInstruction +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMProcessingInstructionToIDispatch*( + x: ptr IXMLDOMProcessingInstruction +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMProcessingInstructionToIUnknown*( + x: ptr IXMLDOMProcessingInstruction +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMCDATASectionToIXMLDOMText*( + x: ptr IXMLDOMCDATASection +): ptr IXMLDOMText = + cast[ptr IXMLDOMText](x) + +converter winimConverterIXMLDOMCDATASectionToIXMLDOMCharacterData*( + x: ptr IXMLDOMCDATASection +): ptr IXMLDOMCharacterData = + cast[ptr IXMLDOMCharacterData](x) + +converter winimConverterIXMLDOMCDATASectionToIXMLDOMNode*( + x: ptr IXMLDOMCDATASection +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMCDATASectionToIDispatch*( + x: ptr IXMLDOMCDATASection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMCDATASectionToIUnknown*( + x: ptr IXMLDOMCDATASection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMDocumentTypeToIXMLDOMNode*( + x: ptr IXMLDOMDocumentType +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMDocumentTypeToIDispatch*( + x: ptr IXMLDOMDocumentType +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMDocumentTypeToIUnknown*( + x: ptr IXMLDOMDocumentType +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMNotationToIXMLDOMNode*( + x: ptr IXMLDOMNotation +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMNotationToIDispatch*( + x: ptr IXMLDOMNotation +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMNotationToIUnknown*( + x: ptr IXMLDOMNotation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMEntityToIXMLDOMNode*( + x: ptr IXMLDOMEntity +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMEntityToIDispatch*(x: ptr IXMLDOMEntity): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMEntityToIUnknown*(x: ptr IXMLDOMEntity): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMEntityReferenceToIXMLDOMNode*( + x: ptr IXMLDOMEntityReference +): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXMLDOMEntityReferenceToIDispatch*( + x: ptr IXMLDOMEntityReference +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMEntityReferenceToIUnknown*( + x: ptr IXMLDOMEntityReference +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDOMParseErrorToIDispatch*( + x: ptr IXMLDOMParseError +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDOMParseErrorToIUnknown*( + x: ptr IXMLDOMParseError +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXTLRuntimeToIXMLDOMNode*(x: ptr IXTLRuntime): ptr IXMLDOMNode = + cast[ptr IXMLDOMNode](x) + +converter winimConverterIXTLRuntimeToIDispatch*(x: ptr IXTLRuntime): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXTLRuntimeToIUnknown*(x: ptr IXTLRuntime): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterXMLDOMDocumentEventsToIDispatch*( + x: ptr XMLDOMDocumentEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterXMLDOMDocumentEventsToIUnknown*( + x: ptr XMLDOMDocumentEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLHttpRequestToIDispatch*( + x: ptr IXMLHttpRequest +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLHttpRequestToIUnknown*( + x: ptr IXMLHttpRequest +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDSOControlToIDispatch*( + x: ptr IXMLDSOControl +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDSOControlToIUnknown*(x: ptr IXMLDSOControl): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLElementCollectionToIDispatch*( + x: ptr IXMLElementCollection +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLElementCollectionToIUnknown*( + x: ptr IXMLElementCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDocumentToIDispatch*(x: ptr IXMLDocument): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDocumentToIUnknown*(x: ptr IXMLDocument): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLDocument2ToIDispatch*(x: ptr IXMLDocument2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLDocument2ToIUnknown*(x: ptr IXMLDocument2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLElementToIDispatch*(x: ptr IXMLElement): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLElementToIUnknown*(x: ptr IXMLElement): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLElement2ToIDispatch*(x: ptr IXMLElement2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLElement2ToIUnknown*(x: ptr IXMLElement2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLAttributeToIDispatch*(x: ptr IXMLAttribute): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIXMLAttributeToIUnknown*(x: ptr IXMLAttribute): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIXMLErrorToIUnknown*(x: ptr IXMLError): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistMonikerToIUnknown*( + x: ptr IPersistMoniker +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMonikerPropToIUnknown*(x: ptr IMonikerProp): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindProtocolToIUnknown*(x: ptr IBindProtocol): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindingToIUnknown*(x: ptr IBinding): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindStatusCallbackToIUnknown*( + x: ptr IBindStatusCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindStatusCallbackExToIBindStatusCallback*( + x: ptr IBindStatusCallbackEx +): ptr IBindStatusCallback = + cast[ptr IBindStatusCallback](x) + +converter winimConverterIBindStatusCallbackExToIUnknown*( + x: ptr IBindStatusCallbackEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAuthenticateToIUnknown*(x: ptr IAuthenticate): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAuthenticateExToIAuthenticate*( + x: ptr IAuthenticateEx +): ptr IAuthenticate = + cast[ptr IAuthenticate](x) + +converter winimConverterIAuthenticateExToIUnknown*( + x: ptr IAuthenticateEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHttpNegotiateToIUnknown*(x: ptr IHttpNegotiate): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHttpNegotiate2ToIHttpNegotiate*( + x: ptr IHttpNegotiate2 +): ptr IHttpNegotiate = + cast[ptr IHttpNegotiate](x) + +converter winimConverterIHttpNegotiate2ToIUnknown*( + x: ptr IHttpNegotiate2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHttpNegotiate3ToIHttpNegotiate2*( + x: ptr IHttpNegotiate3 +): ptr IHttpNegotiate2 = + cast[ptr IHttpNegotiate2](x) + +converter winimConverterIHttpNegotiate3ToIHttpNegotiate*( + x: ptr IHttpNegotiate3 +): ptr IHttpNegotiate = + cast[ptr IHttpNegotiate](x) + +converter winimConverterIHttpNegotiate3ToIUnknown*( + x: ptr IHttpNegotiate3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWinInetFileStreamToIUnknown*( + x: ptr IWinInetFileStream +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWindowForBindingUIToIUnknown*( + x: ptr IWindowForBindingUI +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICodeInstallToIWindowForBindingUI*( + x: ptr ICodeInstall +): ptr IWindowForBindingUI = + cast[ptr IWindowForBindingUI](x) + +converter winimConverterICodeInstallToIUnknown*(x: ptr ICodeInstall): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUriToIUnknown*(x: ptr IUri): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUriContainerToIUnknown*(x: ptr IUriContainer): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUriBuilderToIUnknown*(x: ptr IUriBuilder): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUriBuilderFactoryToIUnknown*( + x: ptr IUriBuilderFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWinInetInfoToIUnknown*(x: ptr IWinInetInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHttpSecurityToIWindowForBindingUI*( + x: ptr IHttpSecurity +): ptr IWindowForBindingUI = + cast[ptr IWindowForBindingUI](x) + +converter winimConverterIHttpSecurityToIUnknown*(x: ptr IHttpSecurity): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWinInetHttpInfoToIWinInetInfo*( + x: ptr IWinInetHttpInfo +): ptr IWinInetInfo = + cast[ptr IWinInetInfo](x) + +converter winimConverterIWinInetHttpInfoToIUnknown*( + x: ptr IWinInetHttpInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWinInetHttpTimeoutsToIUnknown*( + x: ptr IWinInetHttpTimeouts +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWinInetCacheHintsToIUnknown*( + x: ptr IWinInetCacheHints +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWinInetCacheHints2ToIWinInetCacheHints*( + x: ptr IWinInetCacheHints2 +): ptr IWinInetCacheHints = + cast[ptr IWinInetCacheHints](x) + +converter winimConverterIWinInetCacheHints2ToIUnknown*( + x: ptr IWinInetCacheHints2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindHostToIUnknown*(x: ptr IBindHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetToIUnknown*(x: ptr IInternet): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetBindInfoToIUnknown*( + x: ptr IInternetBindInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetBindInfoExToIInternetBindInfo*( + x: ptr IInternetBindInfoEx +): ptr IInternetBindInfo = + cast[ptr IInternetBindInfo](x) + +converter winimConverterIInternetBindInfoExToIUnknown*( + x: ptr IInternetBindInfoEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetProtocolRootToIUnknown*( + x: ptr IInternetProtocolRoot +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetProtocolToIInternetProtocolRoot*( + x: ptr IInternetProtocol +): ptr IInternetProtocolRoot = + cast[ptr IInternetProtocolRoot](x) + +converter winimConverterIInternetProtocolToIUnknown*( + x: ptr IInternetProtocol +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetProtocolExToIInternetProtocol*( + x: ptr IInternetProtocolEx +): ptr IInternetProtocol = + cast[ptr IInternetProtocol](x) + +converter winimConverterIInternetProtocolExToIInternetProtocolRoot*( + x: ptr IInternetProtocolEx +): ptr IInternetProtocolRoot = + cast[ptr IInternetProtocolRoot](x) + +converter winimConverterIInternetProtocolExToIUnknown*( + x: ptr IInternetProtocolEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetProtocolSinkToIUnknown*( + x: ptr IInternetProtocolSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetProtocolSinkStackableToIUnknown*( + x: ptr IInternetProtocolSinkStackable +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetSessionToIUnknown*( + x: ptr IInternetSession +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetThreadSwitchToIUnknown*( + x: ptr IInternetThreadSwitch +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetPriorityToIUnknown*( + x: ptr IInternetPriority +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetProtocolInfoToIUnknown*( + x: ptr IInternetProtocolInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetSecurityMgrSiteToIUnknown*( + x: ptr IInternetSecurityMgrSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetSecurityManagerToIUnknown*( + x: ptr IInternetSecurityManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetSecurityManagerExToIInternetSecurityManager*( + x: ptr IInternetSecurityManagerEx +): ptr IInternetSecurityManager = + cast[ptr IInternetSecurityManager](x) + +converter winimConverterIInternetSecurityManagerExToIUnknown*( + x: ptr IInternetSecurityManagerEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetSecurityManagerEx2ToIInternetSecurityManagerEx*( + x: ptr IInternetSecurityManagerEx2 +): ptr IInternetSecurityManagerEx = + cast[ptr IInternetSecurityManagerEx](x) + +converter winimConverterIInternetSecurityManagerEx2ToIInternetSecurityManager*( + x: ptr IInternetSecurityManagerEx2 +): ptr IInternetSecurityManager = + cast[ptr IInternetSecurityManager](x) + +converter winimConverterIInternetSecurityManagerEx2ToIUnknown*( + x: ptr IInternetSecurityManagerEx2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIZoneIdentifierToIUnknown*( + x: ptr IZoneIdentifier +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetHostSecurityManagerToIUnknown*( + x: ptr IInternetHostSecurityManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetZoneManagerToIUnknown*( + x: ptr IInternetZoneManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetZoneManagerExToIInternetZoneManager*( + x: ptr IInternetZoneManagerEx +): ptr IInternetZoneManager = + cast[ptr IInternetZoneManager](x) + +converter winimConverterIInternetZoneManagerExToIUnknown*( + x: ptr IInternetZoneManagerEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInternetZoneManagerEx2ToIInternetZoneManagerEx*( + x: ptr IInternetZoneManagerEx2 +): ptr IInternetZoneManagerEx = + cast[ptr IInternetZoneManagerEx](x) + +converter winimConverterIInternetZoneManagerEx2ToIInternetZoneManager*( + x: ptr IInternetZoneManagerEx2 +): ptr IInternetZoneManager = + cast[ptr IInternetZoneManager](x) + +converter winimConverterIInternetZoneManagerEx2ToIUnknown*( + x: ptr IInternetZoneManagerEx2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISoftDistExtToIUnknown*(x: ptr ISoftDistExt): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICatalogFileInfoToIUnknown*( + x: ptr ICatalogFileInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDataFilterToIUnknown*(x: ptr IDataFilter): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEncodingFilterFactoryToIUnknown*( + x: ptr IEncodingFilterFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWrappedProtocolToIUnknown*( + x: ptr IWrappedProtocol +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGetBindHandleToIUnknown*(x: ptr IGetBindHandle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindCallbackRedirectToIUnknown*( + x: ptr IBindCallbackRedirect +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyStorageToIUnknown*( + x: ptr IPropertyStorage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertySetStorageToIUnknown*( + x: ptr IPropertySetStorage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumSTATPROPSTGToIUnknown*( + x: ptr IEnumSTATPROPSTG +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumSTATPROPSETSTGToIUnknown*( + x: ptr IEnumSTATPROPSETSTG +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumConnectionsToIUnknown*( + x: ptr IEnumConnections +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIConnectionPointToIUnknown*( + x: ptr IConnectionPoint +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumConnectionPointsToIUnknown*( + x: ptr IEnumConnectionPoints +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIConnectionPointContainerToIUnknown*( + x: ptr IConnectionPointContainer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIClassFactory2ToIClassFactory*( + x: ptr IClassFactory2 +): ptr IClassFactory = + cast[ptr IClassFactory](x) + +converter winimConverterIClassFactory2ToIUnknown*(x: ptr IClassFactory2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProvideClassInfoToIUnknown*( + x: ptr IProvideClassInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProvideClassInfo2ToIProvideClassInfo*( + x: ptr IProvideClassInfo2 +): ptr IProvideClassInfo = + cast[ptr IProvideClassInfo](x) + +converter winimConverterIProvideClassInfo2ToIUnknown*( + x: ptr IProvideClassInfo2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProvideMultipleClassInfoToIProvideClassInfo2*( + x: ptr IProvideMultipleClassInfo +): ptr IProvideClassInfo2 = + cast[ptr IProvideClassInfo2](x) + +converter winimConverterIProvideMultipleClassInfoToIProvideClassInfo*( + x: ptr IProvideMultipleClassInfo +): ptr IProvideClassInfo = + cast[ptr IProvideClassInfo](x) + +converter winimConverterIProvideMultipleClassInfoToIUnknown*( + x: ptr IProvideMultipleClassInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleControlToIUnknown*(x: ptr IOleControl): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleControlSiteToIUnknown*( + x: ptr IOleControlSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyPageToIUnknown*(x: ptr IPropertyPage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyPage2ToIPropertyPage*( + x: ptr IPropertyPage2 +): ptr IPropertyPage = + cast[ptr IPropertyPage](x) + +converter winimConverterIPropertyPage2ToIUnknown*(x: ptr IPropertyPage2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyPageSiteToIUnknown*( + x: ptr IPropertyPageSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyNotifySinkToIUnknown*( + x: ptr IPropertyNotifySink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISpecifyPropertyPagesToIUnknown*( + x: ptr ISpecifyPropertyPages +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistMemoryToIPersist*(x: ptr IPersistMemory): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistMemoryToIUnknown*(x: ptr IPersistMemory): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistStreamInitToIPersist*( + x: ptr IPersistStreamInit +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistStreamInitToIUnknown*( + x: ptr IPersistStreamInit +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistPropertyBagToIPersist*( + x: ptr IPersistPropertyBag +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistPropertyBagToIUnknown*( + x: ptr IPersistPropertyBag +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISimpleFrameSiteToIUnknown*( + x: ptr ISimpleFrameSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFontToIUnknown*(x: ptr IFont): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPictureToIUnknown*(x: ptr IPicture): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPicture2ToIUnknown*(x: ptr IPicture2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFontEventsDispToIDispatch*( + x: ptr IFontEventsDisp +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIFontEventsDispToIUnknown*( + x: ptr IFontEventsDisp +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFontDispToIDispatch*(x: ptr IFontDisp): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIFontDispToIUnknown*(x: ptr IFontDisp): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPictureDispToIDispatch*(x: ptr IPictureDisp): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIPictureDispToIUnknown*(x: ptr IPictureDisp): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceObjectWindowlessToIOleInPlaceObject*( + x: ptr IOleInPlaceObjectWindowless +): ptr IOleInPlaceObject = + cast[ptr IOleInPlaceObject](x) + +converter winimConverterIOleInPlaceObjectWindowlessToIOleWindow*( + x: ptr IOleInPlaceObjectWindowless +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceObjectWindowlessToIUnknown*( + x: ptr IOleInPlaceObjectWindowless +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceSiteExToIOleInPlaceSite*( + x: ptr IOleInPlaceSiteEx +): ptr IOleInPlaceSite = + cast[ptr IOleInPlaceSite](x) + +converter winimConverterIOleInPlaceSiteExToIOleWindow*( + x: ptr IOleInPlaceSiteEx +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceSiteExToIUnknown*( + x: ptr IOleInPlaceSiteEx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleInPlaceSiteWindowlessToIOleInPlaceSiteEx*( + x: ptr IOleInPlaceSiteWindowless +): ptr IOleInPlaceSiteEx = + cast[ptr IOleInPlaceSiteEx](x) + +converter winimConverterIOleInPlaceSiteWindowlessToIOleInPlaceSite*( + x: ptr IOleInPlaceSiteWindowless +): ptr IOleInPlaceSite = + cast[ptr IOleInPlaceSite](x) + +converter winimConverterIOleInPlaceSiteWindowlessToIOleWindow*( + x: ptr IOleInPlaceSiteWindowless +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIOleInPlaceSiteWindowlessToIUnknown*( + x: ptr IOleInPlaceSiteWindowless +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewObjectExToIViewObject2*( + x: ptr IViewObjectEx +): ptr IViewObject2 = + cast[ptr IViewObject2](x) + +converter winimConverterIViewObjectExToIViewObject*( + x: ptr IViewObjectEx +): ptr IViewObject = + cast[ptr IViewObject](x) + +converter winimConverterIViewObjectExToIUnknown*(x: ptr IViewObjectEx): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUndoUnitToIUnknown*(x: ptr IOleUndoUnit): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleParentUndoUnitToIOleUndoUnit*( + x: ptr IOleParentUndoUnit +): ptr IOleUndoUnit = + cast[ptr IOleUndoUnit](x) + +converter winimConverterIOleParentUndoUnitToIUnknown*( + x: ptr IOleParentUndoUnit +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumOleUndoUnitsToIUnknown*( + x: ptr IEnumOleUndoUnits +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUndoManagerToIUnknown*( + x: ptr IOleUndoManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPointerInactiveToIUnknown*( + x: ptr IPointerInactive +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithSiteToIUnknown*( + x: ptr IObjectWithSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPerPropertyBrowsingToIUnknown*( + x: ptr IPerPropertyBrowsing +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyBag2ToIUnknown*(x: ptr IPropertyBag2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistPropertyBag2ToIPersist*( + x: ptr IPersistPropertyBag2 +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistPropertyBag2ToIUnknown*( + x: ptr IPersistPropertyBag2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAdviseSinkExToIAdviseSink*( + x: ptr IAdviseSinkEx +): ptr IAdviseSink = + cast[ptr IAdviseSink](x) + +converter winimConverterIAdviseSinkExToIUnknown*(x: ptr IAdviseSinkEx): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIQuickActivateToIUnknown*(x: ptr IQuickActivate): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumGUIDToIUnknown*(x: ptr IEnumGUID): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumCATEGORYINFOToIUnknown*( + x: ptr IEnumCATEGORYINFO +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICatRegisterToIUnknown*(x: ptr ICatRegister): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICatInformationToIUnknown*( + x: ptr ICatInformation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleDocumentToIUnknown*(x: ptr IOleDocument): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleDocumentSiteToIUnknown*( + x: ptr IOleDocumentSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleDocumentViewToIUnknown*( + x: ptr IOleDocumentView +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumOleDocumentViewsToIUnknown*( + x: ptr IEnumOleDocumentViews +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContinueCallbackToIUnknown*( + x: ptr IContinueCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPrintToIUnknown*(x: ptr IPrint): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleCommandTargetToIUnknown*( + x: ptr IOleCommandTarget +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIZoomEventsToIUnknown*(x: ptr IZoomEvents): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProtectFocusToIUnknown*(x: ptr IProtectFocus): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProtectedModeMenuServicesToIUnknown*( + x: ptr IProtectedModeMenuServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebBrowserToIDispatch*(x: ptr IWebBrowser): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebBrowserToIUnknown*(x: ptr IWebBrowser): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDWebBrowserEventsToIDispatch*( + x: ptr DWebBrowserEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDWebBrowserEventsToIUnknown*( + x: ptr DWebBrowserEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebBrowserAppToIWebBrowser*( + x: ptr IWebBrowserApp +): ptr IWebBrowser = + cast[ptr IWebBrowser](x) + +converter winimConverterIWebBrowserAppToIDispatch*( + x: ptr IWebBrowserApp +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebBrowserAppToIUnknown*(x: ptr IWebBrowserApp): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebBrowser2ToIWebBrowserApp*( + x: ptr IWebBrowser2 +): ptr IWebBrowserApp = + cast[ptr IWebBrowserApp](x) + +converter winimConverterIWebBrowser2ToIWebBrowser*( + x: ptr IWebBrowser2 +): ptr IWebBrowser = + cast[ptr IWebBrowser](x) + +converter winimConverterIWebBrowser2ToIDispatch*(x: ptr IWebBrowser2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebBrowser2ToIUnknown*(x: ptr IWebBrowser2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDWebBrowserEvents2ToIDispatch*( + x: ptr DWebBrowserEvents2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDWebBrowserEvents2ToIUnknown*( + x: ptr DWebBrowserEvents2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDShellWindowsEventsToIDispatch*( + x: ptr DShellWindowsEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDShellWindowsEventsToIUnknown*( + x: ptr DShellWindowsEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellWindowsToIDispatch*(x: ptr IShellWindows): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellWindowsToIUnknown*(x: ptr IShellWindows): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellUIHelperToIDispatch*( + x: ptr IShellUIHelper +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellUIHelperToIUnknown*(x: ptr IShellUIHelper): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellUIHelper2ToIShellUIHelper*( + x: ptr IShellUIHelper2 +): ptr IShellUIHelper = + cast[ptr IShellUIHelper](x) + +converter winimConverterIShellUIHelper2ToIDispatch*( + x: ptr IShellUIHelper2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellUIHelper2ToIUnknown*( + x: ptr IShellUIHelper2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDShellNameSpaceEventsToIDispatch*( + x: ptr DShellNameSpaceEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDShellNameSpaceEventsToIUnknown*( + x: ptr DShellNameSpaceEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFavoritesNameSpaceToIDispatch*( + x: ptr IShellFavoritesNameSpace +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellFavoritesNameSpaceToIUnknown*( + x: ptr IShellFavoritesNameSpace +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellNameSpaceToIShellFavoritesNameSpace*( + x: ptr IShellNameSpace +): ptr IShellFavoritesNameSpace = + cast[ptr IShellFavoritesNameSpace](x) + +converter winimConverterIShellNameSpaceToIDispatch*( + x: ptr IShellNameSpace +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellNameSpaceToIUnknown*( + x: ptr IShellNameSpace +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIScriptErrorListToIDispatch*( + x: ptr IScriptErrorList +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIScriptErrorListToIUnknown*( + x: ptr IScriptErrorList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchToIDispatch*(x: ptr ISearch): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISearchToIUnknown*(x: ptr ISearch): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchesToIDispatch*(x: ptr ISearches): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISearchesToIUnknown*(x: ptr ISearches): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchAssistantOCToIDispatch*( + x: ptr ISearchAssistantOC +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISearchAssistantOCToIUnknown*( + x: ptr ISearchAssistantOC +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchAssistantOC2ToISearchAssistantOC*( + x: ptr ISearchAssistantOC2 +): ptr ISearchAssistantOC = + cast[ptr ISearchAssistantOC](x) + +converter winimConverterISearchAssistantOC2ToIDispatch*( + x: ptr ISearchAssistantOC2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISearchAssistantOC2ToIUnknown*( + x: ptr ISearchAssistantOC2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchAssistantOC3ToISearchAssistantOC2*( + x: ptr ISearchAssistantOC3 +): ptr ISearchAssistantOC2 = + cast[ptr ISearchAssistantOC2](x) + +converter winimConverterISearchAssistantOC3ToISearchAssistantOC*( + x: ptr ISearchAssistantOC3 +): ptr ISearchAssistantOC = + cast[ptr ISearchAssistantOC](x) + +converter winimConverterISearchAssistantOC3ToIDispatch*( + x: ptr ISearchAssistantOC3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterISearchAssistantOC3ToIUnknown*( + x: ptr ISearchAssistantOC3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterSearchAssistantEventsToIDispatch*( + x: ptr SearchAssistantEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterSearchAssistantEventsToIUnknown*( + x: ptr SearchAssistantEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRichChunkToIUnknown*(x: ptr IRichChunk): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIConditionToIPersistStream*( + x: ptr ICondition +): ptr IPersistStream = + cast[ptr IPersistStream](x) + +converter winimConverterIConditionToIPersist*(x: ptr ICondition): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIConditionToIUnknown*(x: ptr ICondition): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICondition2ToICondition*(x: ptr ICondition2): ptr ICondition = + cast[ptr ICondition](x) + +converter winimConverterICondition2ToIPersistStream*( + x: ptr ICondition2 +): ptr IPersistStream = + cast[ptr IPersistStream](x) + +converter winimConverterICondition2ToIPersist*(x: ptr ICondition2): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterICondition2ToIUnknown*(x: ptr ICondition2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeWithFileToIUnknown*( + x: ptr IInitializeWithFile +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeWithStreamToIUnknown*( + x: ptr IInitializeWithStream +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyStoreToIUnknown*(x: ptr IPropertyStore): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINamedPropertyStoreToIUnknown*( + x: ptr INamedPropertyStore +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithPropertyKeyToIUnknown*( + x: ptr IObjectWithPropertyKey +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyChangeToIObjectWithPropertyKey*( + x: ptr IPropertyChange +): ptr IObjectWithPropertyKey = + cast[ptr IObjectWithPropertyKey](x) + +converter winimConverterIPropertyChangeToIUnknown*( + x: ptr IPropertyChange +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyChangeArrayToIUnknown*( + x: ptr IPropertyChangeArray +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyStoreCapabilitiesToIUnknown*( + x: ptr IPropertyStoreCapabilities +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyStoreCacheToIPropertyStore*( + x: ptr IPropertyStoreCache +): ptr IPropertyStore = + cast[ptr IPropertyStore](x) + +converter winimConverterIPropertyStoreCacheToIUnknown*( + x: ptr IPropertyStoreCache +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyEnumTypeToIUnknown*( + x: ptr IPropertyEnumType +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyEnumType2ToIPropertyEnumType*( + x: ptr IPropertyEnumType2 +): ptr IPropertyEnumType = + cast[ptr IPropertyEnumType](x) + +converter winimConverterIPropertyEnumType2ToIUnknown*( + x: ptr IPropertyEnumType2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyEnumTypeListToIUnknown*( + x: ptr IPropertyEnumTypeList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyDescriptionToIUnknown*( + x: ptr IPropertyDescription +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyDescription2ToIPropertyDescription*( + x: ptr IPropertyDescription2 +): ptr IPropertyDescription = + cast[ptr IPropertyDescription](x) + +converter winimConverterIPropertyDescription2ToIUnknown*( + x: ptr IPropertyDescription2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyDescriptionAliasInfoToIPropertyDescription*( + x: ptr IPropertyDescriptionAliasInfo +): ptr IPropertyDescription = + cast[ptr IPropertyDescription](x) + +converter winimConverterIPropertyDescriptionAliasInfoToIUnknown*( + x: ptr IPropertyDescriptionAliasInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyDescriptionSearchInfoToIPropertyDescription*( + x: ptr IPropertyDescriptionSearchInfo +): ptr IPropertyDescription = + cast[ptr IPropertyDescription](x) + +converter winimConverterIPropertyDescriptionSearchInfoToIUnknown*( + x: ptr IPropertyDescriptionSearchInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyDescriptionRelatedPropertyInfoToIPropertyDescription*( + x: ptr IPropertyDescriptionRelatedPropertyInfo +): ptr IPropertyDescription = + cast[ptr IPropertyDescription](x) + +converter winimConverterIPropertyDescriptionRelatedPropertyInfoToIUnknown*( + x: ptr IPropertyDescriptionRelatedPropertyInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertySystemToIUnknown*( + x: ptr IPropertySystem +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyDescriptionListToIUnknown*( + x: ptr IPropertyDescriptionList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyStoreFactoryToIUnknown*( + x: ptr IPropertyStoreFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDelayedPropertyStoreFactoryToIPropertyStoreFactory*( + x: ptr IDelayedPropertyStoreFactory +): ptr IPropertyStoreFactory = + cast[ptr IPropertyStoreFactory](x) + +converter winimConverterIDelayedPropertyStoreFactoryToIUnknown*( + x: ptr IDelayedPropertyStoreFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistSerializedPropStorageToIUnknown*( + x: ptr IPersistSerializedPropStorage +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistSerializedPropStorage2ToIPersistSerializedPropStorage*( + x: ptr IPersistSerializedPropStorage2 +): ptr IPersistSerializedPropStorage = + cast[ptr IPersistSerializedPropStorage](x) + +converter winimConverterIPersistSerializedPropStorage2ToIUnknown*( + x: ptr IPersistSerializedPropStorage2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertySystemChangeNotifyToIUnknown*( + x: ptr IPropertySystemChangeNotify +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICreateObjectToIUnknown*(x: ptr ICreateObject): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: - proc URLOpenStream*(P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenStreamW".} - proc URLOpenPullStream*(P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenPullStreamW".} - proc URLDownloadToFile*(P1: LPUNKNOWN, P2: LPCWSTR, P3: LPCWSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToFileW".} - proc URLDownloadToCacheFile*(P1: LPUNKNOWN, P2: LPCWSTR, P3: LPWSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToCacheFileW".} - proc URLOpenBlockingStream*(P1: LPUNKNOWN, P2: LPCWSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenBlockingStreamW".} - proc IsLoggingEnabled*(pwszUrl: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc: "IsLoggingEnabledW".} + proc URLOpenStream*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenStreamW".} + + proc URLOpenPullStream*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenPullStreamW".} + + proc URLDownloadToFile*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: LPCWSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToFileW".} + + proc URLDownloadToCacheFile*( + P1: LPUNKNOWN, + P2: LPCWSTR, + P3: LPWSTR, + P4: DWORD, + P5: DWORD, + P6: LPBINDSTATUSCALLBACK, + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToCacheFileW".} + + proc URLOpenBlockingStream*( + P1: LPUNKNOWN, P2: LPCWSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenBlockingStreamW".} + + proc IsLoggingEnabled*( + pwszUrl: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc: "IsLoggingEnabledW".} + when winimAnsi: - proc URLOpenStream*(P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenStreamA".} - proc URLOpenPullStream*(P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenPullStreamA".} - proc URLDownloadToFile*(P1: LPUNKNOWN, P2: LPCSTR, P3: LPCSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToFileA".} - proc URLDownloadToCacheFile*(P1: LPUNKNOWN, P2: LPCSTR, P3: LPSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToCacheFileA".} - proc URLOpenBlockingStream*(P1: LPUNKNOWN, P2: LPCSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenBlockingStreamA".} - proc IsLoggingEnabled*(pszUrl: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc: "IsLoggingEnabledA".} + proc URLOpenStream*( + P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenStreamA".} + + proc URLOpenPullStream*( + P1: LPUNKNOWN, P2: LPCSTR, P3: DWORD, P4: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenPullStreamA".} + + proc URLDownloadToFile*( + P1: LPUNKNOWN, P2: LPCSTR, P3: LPCSTR, P4: DWORD, P5: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToFileA".} + + proc URLDownloadToCacheFile*( + P1: LPUNKNOWN, P2: LPCSTR, P3: LPSTR, P4: DWORD, P5: DWORD, P6: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLDownloadToCacheFileA".} + + proc URLOpenBlockingStream*( + P1: LPUNKNOWN, P2: LPCSTR, P3: ptr LPSTREAM, P4: DWORD, P5: LPBINDSTATUSCALLBACK + ): HRESULT {.winapi, stdcall, dynlib: "urlmon", importc: "URLOpenBlockingStreamA".} + + proc IsLoggingEnabled*( + pszUrl: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "urlmon", importc: "IsLoggingEnabledA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/objext.nim --- a/semicongine/thirdparty/winim/winim/inc/objext.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/objext.nim Thu Aug 22 18:32:21 2024 +0700 @@ -36,43 +36,104 @@ dwMSAASignature*: DWORD cchWText*: DWORD pszWText*: LPWSTR + LPMSAAMENUINFO* = ptr MSAAMENUINFO IAccessible* {.pure.} = object lpVtbl*: ptr IAccessibleVtbl + IAccessibleVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_accParent*: proc(self: ptr IAccessible, ppdispParent: ptr ptr IDispatch): HRESULT {.stdcall.} - get_accChildCount*: proc(self: ptr IAccessible, pcountChildren: ptr LONG): HRESULT {.stdcall.} - get_accChild*: proc(self: ptr IAccessible, varChildID: VARIANT, ppdispChild: ptr ptr IDispatch): HRESULT {.stdcall.} - get_accName*: proc(self: ptr IAccessible, varID: VARIANT, pszName: ptr BSTR): HRESULT {.stdcall.} - get_accValue*: proc(self: ptr IAccessible, varID: VARIANT, pszValue: ptr BSTR): HRESULT {.stdcall.} - get_accDescription*: proc(self: ptr IAccessible, varID: VARIANT, pszDescription: ptr BSTR): HRESULT {.stdcall.} - get_accRole*: proc(self: ptr IAccessible, varID: VARIANT, pvarRole: ptr VARIANT): HRESULT {.stdcall.} - get_accState*: proc(self: ptr IAccessible, varID: VARIANT, pvarState: ptr VARIANT): HRESULT {.stdcall.} - get_accHelp*: proc(self: ptr IAccessible, varID: VARIANT, pszHelp: ptr BSTR): HRESULT {.stdcall.} - get_accHelpTopic*: proc(self: ptr IAccessible, pszHelpFile: ptr BSTR, varID: VARIANT, pidTopic: ptr LONG): HRESULT {.stdcall.} - get_accKeyboardShortcut*: proc(self: ptr IAccessible, varID: VARIANT, pszKeyboardShortcut: ptr BSTR): HRESULT {.stdcall.} + get_accParent*: + proc(self: ptr IAccessible, ppdispParent: ptr ptr IDispatch): HRESULT {.stdcall.} + get_accChildCount*: + proc(self: ptr IAccessible, pcountChildren: ptr LONG): HRESULT {.stdcall.} + get_accChild*: proc( + self: ptr IAccessible, varChildID: VARIANT, ppdispChild: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_accName*: proc( + self: ptr IAccessible, varID: VARIANT, pszName: ptr BSTR + ): HRESULT {.stdcall.} + get_accValue*: proc( + self: ptr IAccessible, varID: VARIANT, pszValue: ptr BSTR + ): HRESULT {.stdcall.} + get_accDescription*: proc( + self: ptr IAccessible, varID: VARIANT, pszDescription: ptr BSTR + ): HRESULT {.stdcall.} + get_accRole*: proc( + self: ptr IAccessible, varID: VARIANT, pvarRole: ptr VARIANT + ): HRESULT {.stdcall.} + get_accState*: proc( + self: ptr IAccessible, varID: VARIANT, pvarState: ptr VARIANT + ): HRESULT {.stdcall.} + get_accHelp*: proc( + self: ptr IAccessible, varID: VARIANT, pszHelp: ptr BSTR + ): HRESULT {.stdcall.} + get_accHelpTopic*: proc( + self: ptr IAccessible, pszHelpFile: ptr BSTR, varID: VARIANT, pidTopic: ptr LONG + ): HRESULT {.stdcall.} + get_accKeyboardShortcut*: proc( + self: ptr IAccessible, varID: VARIANT, pszKeyboardShortcut: ptr BSTR + ): HRESULT {.stdcall.} get_accFocus*: proc(self: ptr IAccessible, pvarID: ptr VARIANT): HRESULT {.stdcall.} - get_accSelection*: proc(self: ptr IAccessible, pvarID: ptr VARIANT): HRESULT {.stdcall.} - get_accDefaultAction*: proc(self: ptr IAccessible, varID: VARIANT, pszDefaultAction: ptr BSTR): HRESULT {.stdcall.} - accSelect*: proc(self: ptr IAccessible, flagsSelect: LONG, varID: VARIANT): HRESULT {.stdcall.} - accLocation*: proc(self: ptr IAccessible, pxLeft: ptr LONG, pyTop: ptr LONG, pcxWidth: ptr LONG, pcyHeight: ptr LONG, varID: VARIANT): HRESULT {.stdcall.} - accNavigate*: proc(self: ptr IAccessible, navDir: LONG, varStart: VARIANT, pvarEnd: ptr VARIANT): HRESULT {.stdcall.} - accHitTest*: proc(self: ptr IAccessible, xLeft: LONG, yTop: LONG, pvarID: ptr VARIANT): HRESULT {.stdcall.} - accDoDefaultAction*: proc(self: ptr IAccessible, varID: VARIANT): HRESULT {.stdcall.} - put_accName*: proc(self: ptr IAccessible, varID: VARIANT, pszName: BSTR): HRESULT {.stdcall.} - put_accValue*: proc(self: ptr IAccessible, varID: VARIANT, pszValue: BSTR): HRESULT {.stdcall.} + get_accSelection*: + proc(self: ptr IAccessible, pvarID: ptr VARIANT): HRESULT {.stdcall.} + get_accDefaultAction*: proc( + self: ptr IAccessible, varID: VARIANT, pszDefaultAction: ptr BSTR + ): HRESULT {.stdcall.} + accSelect*: proc(self: ptr IAccessible, flagsSelect: LONG, varID: VARIANT): HRESULT {. + stdcall + .} + accLocation*: proc( + self: ptr IAccessible, + pxLeft: ptr LONG, + pyTop: ptr LONG, + pcxWidth: ptr LONG, + pcyHeight: ptr LONG, + varID: VARIANT, + ): HRESULT {.stdcall.} + accNavigate*: proc( + self: ptr IAccessible, navDir: LONG, varStart: VARIANT, pvarEnd: ptr VARIANT + ): HRESULT {.stdcall.} + accHitTest*: proc( + self: ptr IAccessible, xLeft: LONG, yTop: LONG, pvarID: ptr VARIANT + ): HRESULT {.stdcall.} + accDoDefaultAction*: + proc(self: ptr IAccessible, varID: VARIANT): HRESULT {.stdcall.} + put_accName*: + proc(self: ptr IAccessible, varID: VARIANT, pszName: BSTR): HRESULT {.stdcall.} + put_accValue*: + proc(self: ptr IAccessible, varID: VARIANT, pszValue: BSTR): HRESULT {.stdcall.} + LPACCESSIBLE* = ptr IAccessible IAccessibleHandler* {.pure.} = object lpVtbl*: ptr IAccessibleHandlerVtbl + IAccessibleHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AccessibleObjectFromID*: proc(self: ptr IAccessibleHandler, hwnd: LONG, lObjectID: LONG, pIAccessible: ptr LPACCESSIBLE): HRESULT {.stdcall.} + AccessibleObjectFromID*: proc( + self: ptr IAccessibleHandler, + hwnd: LONG, + lObjectID: LONG, + pIAccessible: ptr LPACCESSIBLE, + ): HRESULT {.stdcall.} + LPACCESSIBLEHANDLER* = ptr IAccessibleHandler MSAAPROPID* = GUID IObjectSafety* {.pure.} = object lpVtbl*: ptr IObjectSafetyVtbl + IObjectSafetyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetInterfaceSafetyOptions*: proc(self: ptr IObjectSafety, riid: REFIID, pdwSupportedOptions: ptr DWORD, pdwEnabledOptions: ptr DWORD): HRESULT {.stdcall.} - SetInterfaceSafetyOptions*: proc(self: ptr IObjectSafety, riid: REFIID, dwOptionSetMask: DWORD, dwEnabledOptions: DWORD): HRESULT {.stdcall.} + GetInterfaceSafetyOptions*: proc( + self: ptr IObjectSafety, + riid: REFIID, + pdwSupportedOptions: ptr DWORD, + pdwEnabledOptions: ptr DWORD, + ): HRESULT {.stdcall.} + SetInterfaceSafetyOptions*: proc( + self: ptr IObjectSafety, + riid: REFIID, + dwOptionSetMask: DWORD, + dwEnabledOptions: DWORD, + ): HRESULT {.stdcall.} + LPOBJECTSAFETY* = ptr IObjectSafety OCPFIPARAMS* {.pure.} = object cbStructSize*: ULONG @@ -86,6 +147,7 @@ lpPages*: ptr CLSID lcid*: LCID dispidInitialProperty*: DISPID + LPOCPFIPARAMS* = ptr OCPFIPARAMS FONTDESC* {.pure.} = object cbSizeofstruct*: UINT @@ -96,27 +158,34 @@ fItalic*: WINBOOL fUnderline*: WINBOOL fStrikethrough*: WINBOOL + LPFONTDESC* = ptr FONTDESC PICTDESC_UNION1_bmp* {.pure.} = object hbitmap*: HBITMAP hpal*: HPALETTE + PICTDESC_UNION1_wmf* {.pure.} = object hmeta*: HMETAFILE xExt*: int32 yExt*: int32 + PICTDESC_UNION1_icon* {.pure.} = object hicon*: HICON + PICTDESC_UNION1_emf* {.pure.} = object hemf*: HENHMETAFILE + PICTDESC_UNION1* {.pure, union.} = object bmp*: PICTDESC_UNION1_bmp wmf*: PICTDESC_UNION1_wmf icon*: PICTDESC_UNION1_icon emf*: PICTDESC_UNION1_emf + PICTDESC* {.pure.} = object cbSizeofstruct*: UINT picType*: UINT union1*: PICTDESC_UNION1 + LPPICTDESC* = ptr PICTDESC OLE_XPOS_CONTAINER* = float32 OLE_YPOS_CONTAINER* = float32 @@ -127,75 +196,177 @@ OLE_ENABLEDEFAULTBOOL* = VARIANT_BOOL IActiveScriptParse64* {.pure.} = object lpVtbl*: ptr IActiveScriptParse64Vtbl + IActiveScriptParse64Vtbl* {.pure, inheritable.} = object of IUnknownVtbl InitNew*: proc(self: ptr IActiveScriptParse64): HRESULT {.stdcall.} - AddScriptlet*: proc(self: ptr IActiveScriptParse64, pstrDefaultName: LPCOLESTR, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, pstrSubItemName: LPCOLESTR, pstrEventName: LPCOLESTR, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, pbstrName: ptr BSTR, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} - ParseScriptText*: proc(self: ptr IActiveScriptParse64, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} + AddScriptlet*: proc( + self: ptr IActiveScriptParse64, + pstrDefaultName: LPCOLESTR, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + pstrSubItemName: LPCOLESTR, + pstrEventName: LPCOLESTR, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pbstrName: ptr BSTR, + pexcepinfo: ptr EXCEPINFO, + ): HRESULT {.stdcall.} + ParseScriptText*: proc( + self: ptr IActiveScriptParse64, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pvarResult: ptr VARIANT, + pexcepinfo: ptr EXCEPINFO, + ): HRESULT {.stdcall.} + when winimCpu64: - type - IActiveScriptParse* = IActiveScriptParse64 + type IActiveScriptParse* = IActiveScriptParse64 type IActiveScriptParse32* {.pure.} = object lpVtbl*: ptr IActiveScriptParse32Vtbl + IActiveScriptParse32Vtbl* {.pure, inheritable.} = object of IUnknownVtbl InitNew*: proc(self: ptr IActiveScriptParse32): HRESULT {.stdcall.} - AddScriptlet*: proc(self: ptr IActiveScriptParse32, pstrDefaultName: LPCOLESTR, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, pstrSubItemName: LPCOLESTR, pstrEventName: LPCOLESTR, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, pbstrName: ptr BSTR, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} - ParseScriptText*: proc(self: ptr IActiveScriptParse32, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} + AddScriptlet*: proc( + self: ptr IActiveScriptParse32, + pstrDefaultName: LPCOLESTR, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + pstrSubItemName: LPCOLESTR, + pstrEventName: LPCOLESTR, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pbstrName: ptr BSTR, + pexcepinfo: ptr EXCEPINFO, + ): HRESULT {.stdcall.} + ParseScriptText*: proc( + self: ptr IActiveScriptParse32, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pvarResult: ptr VARIANT, + pexcepinfo: ptr EXCEPINFO, + ): HRESULT {.stdcall.} + when winimCpu32: - type - IActiveScriptParse* = IActiveScriptParse32 + type IActiveScriptParse* = IActiveScriptParse32 type PIActiveScriptParse* = ptr IActiveScriptParse IActiveScriptParseProcedureOld64* {.pure.} = object lpVtbl*: ptr IActiveScriptParseProcedureOld64Vtbl + IActiveScriptParseProcedureOld64Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseProcedureText*: proc(self: ptr IActiveScriptParseProcedureOld64, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + ParseProcedureText*: proc( + self: ptr IActiveScriptParseProcedureOld64, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + when winimCpu64: - type - IActiveScriptParseProcedureOld* = IActiveScriptParseProcedureOld64 + type IActiveScriptParseProcedureOld* = IActiveScriptParseProcedureOld64 type IActiveScriptParseProcedureOld32* {.pure.} = object lpVtbl*: ptr IActiveScriptParseProcedureOld32Vtbl + IActiveScriptParseProcedureOld32Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseProcedureText*: proc(self: ptr IActiveScriptParseProcedureOld32, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + ParseProcedureText*: proc( + self: ptr IActiveScriptParseProcedureOld32, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + when winimCpu32: - type - IActiveScriptParseProcedureOld* = IActiveScriptParseProcedureOld32 + type IActiveScriptParseProcedureOld* = IActiveScriptParseProcedureOld32 type PIActiveScriptParseProcedureOld* = ptr IActiveScriptParseProcedureOld IActiveScriptParseProcedure64* {.pure.} = object lpVtbl*: ptr IActiveScriptParseProcedure64Vtbl + IActiveScriptParseProcedure64Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseProcedureText*: proc(self: ptr IActiveScriptParseProcedure64, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrProcedureName: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + ParseProcedureText*: proc( + self: ptr IActiveScriptParseProcedure64, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrProcedureName: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + when winimCpu64: - type - IActiveScriptParseProcedure* = IActiveScriptParseProcedure64 + type IActiveScriptParseProcedure* = IActiveScriptParseProcedure64 type IActiveScriptParseProcedure32* {.pure.} = object lpVtbl*: ptr IActiveScriptParseProcedure32Vtbl + IActiveScriptParseProcedure32Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseProcedureText*: proc(self: ptr IActiveScriptParseProcedure32, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrProcedureName: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.stdcall.} + ParseProcedureText*: proc( + self: ptr IActiveScriptParseProcedure32, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrProcedureName: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, + ): HRESULT {.stdcall.} + when winimCpu32: - type - IActiveScriptParseProcedure* = IActiveScriptParseProcedure32 + type IActiveScriptParseProcedure* = IActiveScriptParseProcedure32 type PIActiveScriptParseProcedure* = ptr IActiveScriptParseProcedure IActiveScriptParseProcedure2_64* {.pure.} = object lpVtbl*: ptr IActiveScriptParseProcedure2_64Vtbl + IActiveScriptParseProcedure2_64Vtbl* {.pure, inheritable.} = object of IActiveScriptParseProcedure64Vtbl + when winimCpu64: - type - IActiveScriptParseProcedure2* = IActiveScriptParseProcedure2_64 + type IActiveScriptParseProcedure2* = IActiveScriptParseProcedure2_64 type IActiveScriptParseProcedure2_32* {.pure.} = object lpVtbl*: ptr IActiveScriptParseProcedure2_32Vtbl + IActiveScriptParseProcedure2_32Vtbl* {.pure, inheritable.} = object of IActiveScriptParseProcedure32Vtbl + when winimCpu32: - type - IActiveScriptParseProcedure2* = IActiveScriptParseProcedure2_32 + type IActiveScriptParseProcedure2* = IActiveScriptParseProcedure2_32 type PIActiveScriptParseProcedure2* = ptr IActiveScriptParseProcedure2 - LPFNOLEUIHOOK* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT {.stdcall.} + LPFNOLEUIHOOK* = proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): UINT {.stdcall.} TOLEUIINSERTOBJECTW* {.pure.} = object cbStruct*: DWORD dwFlags*: DWORD @@ -219,6 +390,7 @@ ppvObj*: ptr LPVOID sc*: SCODE hMetaPict*: HGLOBAL + POLEUIINSERTOBJECTW* = ptr TOLEUIINSERTOBJECTW LPOLEUIINSERTOBJECTW* = ptr TOLEUIINSERTOBJECTW TOLEUIINSERTOBJECTA* {.pure.} = object @@ -244,6 +416,7 @@ ppvObj*: ptr LPVOID sc*: SCODE hMetaPict*: HGLOBAL + POLEUIINSERTOBJECTA* = ptr TOLEUIINSERTOBJECTA LPOLEUIINSERTOBJECTA* = ptr TOLEUIINSERTOBJECTA OLEUIPASTEENTRYW* {.pure.} = object @@ -252,6 +425,7 @@ lpstrResultText*: LPCWSTR dwFlags*: DWORD dwScratchSpace*: DWORD + POLEUIPASTEENTRYW* = ptr OLEUIPASTEENTRYW LPOLEUIPASTEENTRYW* = ptr OLEUIPASTEENTRYW OLEUIPASTEENTRYA* {.pure.} = object @@ -260,6 +434,7 @@ lpstrResultText*: LPCSTR dwFlags*: DWORD dwScratchSpace*: DWORD + POLEUIPASTEENTRYA* = ptr OLEUIPASTEENTRYA LPOLEUIPASTEENTRYA* = ptr OLEUIPASTEENTRYA TOLEUIPASTESPECIALW* {.pure.} = object @@ -283,6 +458,7 @@ fLink*: WINBOOL hMetaPict*: HGLOBAL sizel*: SIZEL + POLEUIPASTESPECIALW* = ptr TOLEUIPASTESPECIALW LPOLEUIPASTESPECIALW* = ptr TOLEUIPASTESPECIALW TOLEUIPASTESPECIALA* {.pure.} = object @@ -306,31 +482,90 @@ fLink*: WINBOOL hMetaPict*: HGLOBAL sizel*: SIZEL + POLEUIPASTESPECIALA* = ptr TOLEUIPASTESPECIALA LPOLEUIPASTESPECIALA* = ptr TOLEUIPASTESPECIALA IOleUILinkContainerW* {.pure.} = object lpVtbl*: ptr IOleUILinkContainerWVtbl + IOleUILinkContainerWVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetNextLink*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD): DWORD {.stdcall.} - SetLinkUpdateOptions*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD, dwUpdateOpt: DWORD): HRESULT {.stdcall.} - GetLinkUpdateOptions*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD): HRESULT {.stdcall.} - SetLinkSource*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD, lpszDisplayName: LPWSTR, lenFileName: ULONG, pchEaten: ptr ULONG, fValidateSource: WINBOOL): HRESULT {.stdcall.} - GetLinkSource*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD, lplpszDisplayName: ptr LPWSTR, lplenFileName: ptr ULONG, lplpszFullLinkType: ptr LPWSTR, lplpszShortLinkType: ptr LPWSTR, lpfSourceAvailable: ptr WINBOOL, lpfIsSelected: ptr WINBOOL): HRESULT {.stdcall.} - OpenLinkSource*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD): HRESULT {.stdcall.} - UpdateLink*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD, fErrorMessage: WINBOOL, fReserved: WINBOOL): HRESULT {.stdcall.} - CancelLink*: proc(self: ptr IOleUILinkContainerW, dwLink: DWORD): HRESULT {.stdcall.} + SetLinkUpdateOptions*: proc( + self: ptr IOleUILinkContainerW, dwLink: DWORD, dwUpdateOpt: DWORD + ): HRESULT {.stdcall.} + GetLinkUpdateOptions*: proc( + self: ptr IOleUILinkContainerW, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD + ): HRESULT {.stdcall.} + SetLinkSource*: proc( + self: ptr IOleUILinkContainerW, + dwLink: DWORD, + lpszDisplayName: LPWSTR, + lenFileName: ULONG, + pchEaten: ptr ULONG, + fValidateSource: WINBOOL, + ): HRESULT {.stdcall.} + GetLinkSource*: proc( + self: ptr IOleUILinkContainerW, + dwLink: DWORD, + lplpszDisplayName: ptr LPWSTR, + lplenFileName: ptr ULONG, + lplpszFullLinkType: ptr LPWSTR, + lplpszShortLinkType: ptr LPWSTR, + lpfSourceAvailable: ptr WINBOOL, + lpfIsSelected: ptr WINBOOL, + ): HRESULT {.stdcall.} + OpenLinkSource*: + proc(self: ptr IOleUILinkContainerW, dwLink: DWORD): HRESULT {.stdcall.} + UpdateLink*: proc( + self: ptr IOleUILinkContainerW, + dwLink: DWORD, + fErrorMessage: WINBOOL, + fReserved: WINBOOL, + ): HRESULT {.stdcall.} + CancelLink*: + proc(self: ptr IOleUILinkContainerW, dwLink: DWORD): HRESULT {.stdcall.} + LPOLEUILINKCONTAINERW* = ptr IOleUILinkContainerW IOleUILinkContainerA* {.pure.} = object lpVtbl*: ptr IOleUILinkContainerAVtbl + IOleUILinkContainerAVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetNextLink*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD): DWORD {.stdcall.} - SetLinkUpdateOptions*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD, dwUpdateOpt: DWORD): HRESULT {.stdcall.} - GetLinkUpdateOptions*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD): HRESULT {.stdcall.} - SetLinkSource*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD, lpszDisplayName: LPSTR, lenFileName: ULONG, pchEaten: ptr ULONG, fValidateSource: WINBOOL): HRESULT {.stdcall.} - GetLinkSource*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD, lplpszDisplayName: ptr LPSTR, lplenFileName: ptr ULONG, lplpszFullLinkType: ptr LPSTR, lplpszShortLinkType: ptr LPSTR, lpfSourceAvailable: ptr WINBOOL, lpfIsSelected: ptr WINBOOL): HRESULT {.stdcall.} - OpenLinkSource*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD): HRESULT {.stdcall.} - UpdateLink*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD, fErrorMessage: WINBOOL, fReserved: WINBOOL): HRESULT {.stdcall.} - CancelLink*: proc(self: ptr IOleUILinkContainerA, dwLink: DWORD): HRESULT {.stdcall.} + SetLinkUpdateOptions*: proc( + self: ptr IOleUILinkContainerA, dwLink: DWORD, dwUpdateOpt: DWORD + ): HRESULT {.stdcall.} + GetLinkUpdateOptions*: proc( + self: ptr IOleUILinkContainerA, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD + ): HRESULT {.stdcall.} + SetLinkSource*: proc( + self: ptr IOleUILinkContainerA, + dwLink: DWORD, + lpszDisplayName: LPSTR, + lenFileName: ULONG, + pchEaten: ptr ULONG, + fValidateSource: WINBOOL, + ): HRESULT {.stdcall.} + GetLinkSource*: proc( + self: ptr IOleUILinkContainerA, + dwLink: DWORD, + lplpszDisplayName: ptr LPSTR, + lplenFileName: ptr ULONG, + lplpszFullLinkType: ptr LPSTR, + lplpszShortLinkType: ptr LPSTR, + lpfSourceAvailable: ptr WINBOOL, + lpfIsSelected: ptr WINBOOL, + ): HRESULT {.stdcall.} + OpenLinkSource*: + proc(self: ptr IOleUILinkContainerA, dwLink: DWORD): HRESULT {.stdcall.} + UpdateLink*: proc( + self: ptr IOleUILinkContainerA, + dwLink: DWORD, + fErrorMessage: WINBOOL, + fReserved: WINBOOL, + ): HRESULT {.stdcall.} + CancelLink*: + proc(self: ptr IOleUILinkContainerA, dwLink: DWORD): HRESULT {.stdcall.} + LPOLEUILINKCONTAINERA* = ptr IOleUILinkContainerA TOLEUIEDITLINKSW* {.pure.} = object cbStruct*: DWORD @@ -343,6 +578,7 @@ lpszTemplate*: LPCWSTR hResource*: HRSRC lpOleUILinkContainer*: LPOLEUILINKCONTAINERW + POLEUIEDITLINKSW* = ptr TOLEUIEDITLINKSW LPOLEUIEDITLINKSW* = ptr TOLEUIEDITLINKSW TOLEUIEDITLINKSA* {.pure.} = object @@ -356,6 +592,7 @@ lpszTemplate*: LPCSTR hResource*: HRSRC lpOleUILinkContainer*: LPOLEUILINKCONTAINERA + POLEUIEDITLINKSA* = ptr TOLEUIEDITLINKSA LPOLEUIEDITLINKSA* = ptr TOLEUIEDITLINKSA TOLEUICHANGEICONW* {.pure.} = object @@ -372,6 +609,7 @@ clsid*: CLSID szIconExe*: array[MAX_PATH, WCHAR] cchIconExe*: int32 + POLEUICHANGEICONW* = ptr TOLEUICHANGEICONW LPOLEUICHANGEICONW* = ptr TOLEUICHANGEICONW TOLEUICHANGEICONA* {.pure.} = object @@ -388,6 +626,7 @@ clsid*: CLSID szIconExe*: array[MAX_PATH, CHAR] cchIconExe*: int32 + POLEUICHANGEICONA* = ptr TOLEUICHANGEICONA LPOLEUICHANGEICONA* = ptr TOLEUICHANGEICONA TOLEUICONVERTW* {.pure.} = object @@ -413,6 +652,7 @@ lpszDefLabel*: LPWSTR cClsidExclude*: UINT lpClsidExclude*: LPCLSID + POLEUICONVERTW* = ptr TOLEUICONVERTW LPOLEUICONVERTW* = ptr TOLEUICONVERTW TOLEUICONVERTA* {.pure.} = object @@ -438,6 +678,7 @@ lpszDefLabel*: LPSTR cClsidExclude*: UINT lpClsidExclude*: LPCLSID + POLEUICONVERTA* = ptr TOLEUICONVERTA LPOLEUICONVERTA* = ptr TOLEUICONVERTA TOLEUIBUSYW* {.pure.} = object @@ -452,6 +693,7 @@ hResource*: HRSRC hTask*: HTASK lphWndDialog*: ptr HWND + POLEUIBUSYW* = ptr TOLEUIBUSYW LPOLEUIBUSYW* = ptr TOLEUIBUSYW TOLEUIBUSYA* {.pure.} = object @@ -466,6 +708,7 @@ hResource*: HRSRC hTask*: HTASK lphWndDialog*: ptr HWND + POLEUIBUSYA* = ptr TOLEUIBUSYA LPOLEUIBUSYA* = ptr TOLEUIBUSYA TOLEUICHANGESOURCEW* {.pure.} = object @@ -486,6 +729,7 @@ nFileLength*: ULONG lpszFrom*: LPWSTR lpszTo*: LPWSTR + POLEUICHANGESOURCEW* = ptr TOLEUICHANGESOURCEW LPOLEUICHANGESOURCEW* = ptr TOLEUICHANGESOURCEW TOLEUICHANGESOURCEA* {.pure.} = object @@ -506,35 +750,110 @@ nFileLength*: ULONG lpszFrom*: LPSTR lpszTo*: LPSTR + POLEUICHANGESOURCEA* = ptr TOLEUICHANGESOURCEA LPOLEUICHANGESOURCEA* = ptr TOLEUICHANGESOURCEA IOleUIObjInfoW* {.pure.} = object lpVtbl*: ptr IOleUIObjInfoWVtbl + IOleUIObjInfoWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetObjectInfo*: proc(self: ptr IOleUIObjInfoW, dwObject: DWORD, lpdwObjSize: ptr DWORD, lplpszLabel: ptr LPWSTR, lplpszType: ptr LPWSTR, lplpszShortType: ptr LPWSTR, lplpszLocation: ptr LPWSTR): HRESULT {.stdcall.} - GetConvertInfo*: proc(self: ptr IOleUIObjInfoW, dwObject: DWORD, lpClassID: ptr CLSID, lpwFormat: ptr WORD, lpConvertDefaultClassID: ptr CLSID, lplpClsidExclude: ptr LPCLSID, lpcClsidExclude: ptr UINT): HRESULT {.stdcall.} - ConvertObject*: proc(self: ptr IOleUIObjInfoW, dwObject: DWORD, clsidNew: REFCLSID): HRESULT {.stdcall.} - GetViewInfo*: proc(self: ptr IOleUIObjInfoW, dwObject: DWORD, phMetaPict: ptr HGLOBAL, pdvAspect: ptr DWORD, pnCurrentScale: ptr int32): HRESULT {.stdcall.} - SetViewInfo*: proc(self: ptr IOleUIObjInfoW, dwObject: DWORD, hMetaPict: HGLOBAL, dvAspect: DWORD, nCurrentScale: int32, bRelativeToOrig: WINBOOL): HRESULT {.stdcall.} + GetObjectInfo*: proc( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + lpdwObjSize: ptr DWORD, + lplpszLabel: ptr LPWSTR, + lplpszType: ptr LPWSTR, + lplpszShortType: ptr LPWSTR, + lplpszLocation: ptr LPWSTR, + ): HRESULT {.stdcall.} + GetConvertInfo*: proc( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + lpClassID: ptr CLSID, + lpwFormat: ptr WORD, + lpConvertDefaultClassID: ptr CLSID, + lplpClsidExclude: ptr LPCLSID, + lpcClsidExclude: ptr UINT, + ): HRESULT {.stdcall.} + ConvertObject*: proc( + self: ptr IOleUIObjInfoW, dwObject: DWORD, clsidNew: REFCLSID + ): HRESULT {.stdcall.} + GetViewInfo*: proc( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + phMetaPict: ptr HGLOBAL, + pdvAspect: ptr DWORD, + pnCurrentScale: ptr int32, + ): HRESULT {.stdcall.} + SetViewInfo*: proc( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + hMetaPict: HGLOBAL, + dvAspect: DWORD, + nCurrentScale: int32, + bRelativeToOrig: WINBOOL, + ): HRESULT {.stdcall.} + LPOLEUIOBJINFOW* = ptr IOleUIObjInfoW IOleUIObjInfoA* {.pure.} = object lpVtbl*: ptr IOleUIObjInfoAVtbl + IOleUIObjInfoAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetObjectInfo*: proc(self: ptr IOleUIObjInfoA, dwObject: DWORD, lpdwObjSize: ptr DWORD, lplpszLabel: ptr LPSTR, lplpszType: ptr LPSTR, lplpszShortType: ptr LPSTR, lplpszLocation: ptr LPSTR): HRESULT {.stdcall.} - GetConvertInfo*: proc(self: ptr IOleUIObjInfoA, dwObject: DWORD, lpClassID: ptr CLSID, lpwFormat: ptr WORD, lpConvertDefaultClassID: ptr CLSID, lplpClsidExclude: ptr LPCLSID, lpcClsidExclude: ptr UINT): HRESULT {.stdcall.} - ConvertObject*: proc(self: ptr IOleUIObjInfoA, dwObject: DWORD, clsidNew: REFCLSID): HRESULT {.stdcall.} - GetViewInfo*: proc(self: ptr IOleUIObjInfoA, dwObject: DWORD, phMetaPict: ptr HGLOBAL, pdvAspect: ptr DWORD, pnCurrentScale: ptr int32): HRESULT {.stdcall.} - SetViewInfo*: proc(self: ptr IOleUIObjInfoA, dwObject: DWORD, hMetaPict: HGLOBAL, dvAspect: DWORD, nCurrentScale: int32, bRelativeToOrig: WINBOOL): HRESULT {.stdcall.} + GetObjectInfo*: proc( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + lpdwObjSize: ptr DWORD, + lplpszLabel: ptr LPSTR, + lplpszType: ptr LPSTR, + lplpszShortType: ptr LPSTR, + lplpszLocation: ptr LPSTR, + ): HRESULT {.stdcall.} + GetConvertInfo*: proc( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + lpClassID: ptr CLSID, + lpwFormat: ptr WORD, + lpConvertDefaultClassID: ptr CLSID, + lplpClsidExclude: ptr LPCLSID, + lpcClsidExclude: ptr UINT, + ): HRESULT {.stdcall.} + ConvertObject*: proc( + self: ptr IOleUIObjInfoA, dwObject: DWORD, clsidNew: REFCLSID + ): HRESULT {.stdcall.} + GetViewInfo*: proc( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + phMetaPict: ptr HGLOBAL, + pdvAspect: ptr DWORD, + pnCurrentScale: ptr int32, + ): HRESULT {.stdcall.} + SetViewInfo*: proc( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + hMetaPict: HGLOBAL, + dvAspect: DWORD, + nCurrentScale: int32, + bRelativeToOrig: WINBOOL, + ): HRESULT {.stdcall.} + LPOLEUIOBJINFOA* = ptr IOleUIObjInfoA IOleUILinkInfoW* {.pure.} = object lpVtbl*: ptr IOleUILinkInfoWVtbl + IOleUILinkInfoWVtbl* {.pure, inheritable.} = object of IOleUILinkContainerWVtbl - GetLastUpdate*: proc(self: ptr IOleUILinkInfoW, dwLink: DWORD, lpLastUpdate: ptr FILETIME): HRESULT {.stdcall.} + GetLastUpdate*: proc( + self: ptr IOleUILinkInfoW, dwLink: DWORD, lpLastUpdate: ptr FILETIME + ): HRESULT {.stdcall.} + LPOLEUILINKINFOW* = ptr IOleUILinkInfoW IOleUILinkInfoA* {.pure.} = object lpVtbl*: ptr IOleUILinkInfoAVtbl + IOleUILinkInfoAVtbl* {.pure, inheritable.} = object of IOleUILinkContainerAVtbl - GetLastUpdate*: proc(self: ptr IOleUILinkInfoA, dwLink: DWORD, lpLastUpdate: ptr FILETIME): HRESULT {.stdcall.} + GetLastUpdate*: proc( + self: ptr IOleUILinkInfoA, dwLink: DWORD, lpLastUpdate: ptr FILETIME + ): HRESULT {.stdcall.} + LPOLEUILINKINFOA* = ptr IOleUILinkInfoA LPOLEUIGNRLPROPSW* = ptr OLEUIGNRLPROPSW OLEUIVIEWPROPSW* {.pure.} = object @@ -547,6 +866,7 @@ lpOP*: ptr OLEUIOBJECTPROPSW nScaleMin*: int32 nScaleMax*: int32 + LPOLEUIVIEWPROPSW* = ptr OLEUIVIEWPROPSW OLEUILINKPROPSW* {.pure.} = object cbStruct*: DWORD @@ -556,6 +876,7 @@ lCustData*: LPARAM dwReserved2*: array[3, DWORD] lpOP*: ptr OLEUIOBJECTPROPSW + LPOLEUILINKPROPSW* = ptr OLEUILINKPROPSW OLEUIOBJECTPROPSW* {.pure.} = object cbStruct*: DWORD @@ -568,6 +889,7 @@ lpGP*: LPOLEUIGNRLPROPSW lpVP*: LPOLEUIVIEWPROPSW lpLP*: LPOLEUILINKPROPSW + OLEUIGNRLPROPSW* {.pure.} = object cbStruct*: DWORD dwFlags*: DWORD @@ -576,6 +898,7 @@ lCustData*: LPARAM dwReserved2*: array[3, DWORD] lpOP*: ptr OLEUIOBJECTPROPSW + POLEUIGNRLPROPSW* = ptr OLEUIGNRLPROPSW LPOLEUIGNRLPROPSA* = ptr OLEUIGNRLPROPSA OLEUIVIEWPROPSA* {.pure.} = object @@ -588,6 +911,7 @@ lpOP*: ptr OLEUIOBJECTPROPSA nScaleMin*: int32 nScaleMax*: int32 + LPOLEUIVIEWPROPSA* = ptr OLEUIVIEWPROPSA OLEUILINKPROPSA* {.pure.} = object cbStruct*: DWORD @@ -597,6 +921,7 @@ lCustData*: LPARAM dwReserved2*: array[3, DWORD] lpOP*: ptr OLEUIOBJECTPROPSA + LPOLEUILINKPROPSA* = ptr OLEUILINKPROPSA OLEUIOBJECTPROPSA* {.pure.} = object cbStruct*: DWORD @@ -609,6 +934,7 @@ lpGP*: LPOLEUIGNRLPROPSA lpVP*: LPOLEUIVIEWPROPSA lpLP*: LPOLEUILINKPROPSA + OLEUIGNRLPROPSA* {.pure.} = object cbStruct*: DWORD dwFlags*: DWORD @@ -617,6 +943,7 @@ lCustData*: LPARAM dwReserved2*: array[3, DWORD] lpOP*: ptr OLEUIOBJECTPROPSA + POLEUIGNRLPROPSA* = ptr OLEUIGNRLPROPSA POLEUIVIEWPROPSW* = ptr OLEUIVIEWPROPSW POLEUIVIEWPROPSA* = ptr OLEUIVIEWPROPSA @@ -626,6 +953,7 @@ LPOLEUIOBJECTPROPSW* = ptr OLEUIOBJECTPROPSW POLEUIOBJECTPROPSA* = ptr OLEUIOBJECTPROPSA LPOLEUIOBJECTPROPSA* = ptr OLEUIOBJECTPROPSA + const LIBID_Accessibility* = DEFINE_GUID("1ea4dbf0-3c3b-11cf-810c-00aa00389b71") IID_IAccessibleHandler* = DEFINE_GUID("03022430-abc4-11d0-bde2-00aa001a1953") @@ -807,7 +1135,9 @@ triUnchecked* = 0 triChecked* = 1 triGray* = 2 -template STD_CTL_SCODE*(n: untyped): HRESULT = MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n) +template STD_CTL_SCODE*(n: untyped): HRESULT = + MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n) + const CTL_E_ILLEGALFUNCTIONCALL* = STD_CTL_SCODE(5) CTL_E_OVERFLOW* = STD_CTL_SCODE(6) @@ -849,28 +1179,30 @@ CTL_E_CANTSAVEFILETOTEMP* = STD_CTL_SCODE(735) CTL_E_SEARCHTEXTNOTFOUND* = STD_CTL_SCODE(744) CTL_E_REPLACEMENTSTOOLONG* = STD_CTL_SCODE(746) -template CUSTOM_CTL_SCODE*(n: untyped): HRESULT = MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n) +template CUSTOM_CTL_SCODE*(n: untyped): HRESULT = + MAKE_SCODE(SEVERITY_ERROR, FACILITY_CONTROL, n) + const CTL_E_CUSTOM_FIRST* = CUSTOM_CTL_SCODE(600) - CONNECT_E_FIRST* = MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x0200) - CONNECT_E_LAST* = MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x020F) - CONNECT_S_FIRST* = MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0200) - CONNECT_S_LAST* = MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x020F) - CONNECT_E_NOCONNECTION* = CONNECT_E_FIRST+0 - CONNECT_E_ADVISELIMIT* = CONNECT_E_FIRST+1 - CONNECT_E_CANNOTCONNECT* = CONNECT_E_FIRST+2 - CONNECT_E_OVERRIDDEN* = CONNECT_E_FIRST+3 - SELFREG_E_FIRST* = MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x0200) - SELFREG_E_LAST* = MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x020F) - SELFREG_S_FIRST* = MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0200) - SELFREG_S_LAST* = MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x020F) - SELFREG_E_TYPELIB* = SELFREG_E_FIRST+0 - SELFREG_E_CLASS* = SELFREG_E_FIRST+1 - PERPROP_E_FIRST* = MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x0200) - PERPROP_E_LAST* = MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x020F) - PERPROP_S_FIRST* = MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x0200) - PERPROP_S_LAST* = MAKE_SCODE(SEVERITY_SUCCESS,FACILITY_ITF,0x020F) - PERPROP_E_NOPAGEAVAILABLE* = PERPROP_E_FIRST+0 + CONNECT_E_FIRST* = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0200) + CONNECT_E_LAST* = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x020F) + CONNECT_S_FIRST* = MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0200) + CONNECT_S_LAST* = MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x020F) + CONNECT_E_NOCONNECTION* = CONNECT_E_FIRST + 0 + CONNECT_E_ADVISELIMIT* = CONNECT_E_FIRST + 1 + CONNECT_E_CANNOTCONNECT* = CONNECT_E_FIRST + 2 + CONNECT_E_OVERRIDDEN* = CONNECT_E_FIRST + 3 + SELFREG_E_FIRST* = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0200) + SELFREG_E_LAST* = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x020F) + SELFREG_S_FIRST* = MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0200) + SELFREG_S_LAST* = MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x020F) + SELFREG_E_TYPELIB* = SELFREG_E_FIRST + 0 + SELFREG_E_CLASS* = SELFREG_E_FIRST + 1 + PERPROP_E_FIRST* = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x0200) + PERPROP_E_LAST* = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x020F) + PERPROP_S_FIRST* = MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x0200) + PERPROP_S_LAST* = MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x020F) + PERPROP_E_NOPAGEAVAILABLE* = PERPROP_E_FIRST + 0 OLEIVERB_PROPERTIES* = -7 VT_STREAMED_PROPSET* = 73 VT_STORED_PROPSET* = 74 @@ -890,25 +1222,25 @@ VT_FONT* = VT_DISPATCH VT_PICTURE* = VT_DISPATCH VT_HANDLE* = VT_I4 - OCM_BASE* = WM_USER+0x1c00 - OCM_COMMAND* = OCM_BASE+WM_COMMAND - OCM_CTLCOLORBTN* = OCM_BASE+WM_CTLCOLORBTN - OCM_CTLCOLOREDIT* = OCM_BASE+WM_CTLCOLOREDIT - OCM_CTLCOLORDLG* = OCM_BASE+WM_CTLCOLORDLG - OCM_CTLCOLORLISTBOX* = OCM_BASE+WM_CTLCOLORLISTBOX - OCM_CTLCOLORMSGBOX* = OCM_BASE+WM_CTLCOLORMSGBOX - OCM_CTLCOLORSCROLLBAR* = OCM_BASE+WM_CTLCOLORSCROLLBAR - OCM_CTLCOLORSTATIC* = OCM_BASE+WM_CTLCOLORSTATIC - OCM_DRAWITEM* = OCM_BASE+WM_DRAWITEM - OCM_MEASUREITEM* = OCM_BASE+WM_MEASUREITEM - OCM_DELETEITEM* = OCM_BASE+WM_DELETEITEM - OCM_VKEYTOITEM* = OCM_BASE+WM_VKEYTOITEM - OCM_CHARTOITEM* = OCM_BASE+WM_CHARTOITEM - OCM_COMPAREITEM* = OCM_BASE+WM_COMPAREITEM - OCM_HSCROLL* = OCM_BASE+WM_HSCROLL - OCM_VSCROLL* = OCM_BASE+WM_VSCROLL - OCM_PARENTNOTIFY* = OCM_BASE+WM_PARENTNOTIFY - OCM_NOTIFY* = OCM_BASE+WM_NOTIFY + OCM_BASE* = WM_USER + 0x1c00 + OCM_COMMAND* = OCM_BASE + WM_COMMAND + OCM_CTLCOLORBTN* = OCM_BASE + WM_CTLCOLORBTN + OCM_CTLCOLOREDIT* = OCM_BASE + WM_CTLCOLOREDIT + OCM_CTLCOLORDLG* = OCM_BASE + WM_CTLCOLORDLG + OCM_CTLCOLORLISTBOX* = OCM_BASE + WM_CTLCOLORLISTBOX + OCM_CTLCOLORMSGBOX* = OCM_BASE + WM_CTLCOLORMSGBOX + OCM_CTLCOLORSCROLLBAR* = OCM_BASE + WM_CTLCOLORSCROLLBAR + OCM_CTLCOLORSTATIC* = OCM_BASE + WM_CTLCOLORSTATIC + OCM_DRAWITEM* = OCM_BASE + WM_DRAWITEM + OCM_MEASUREITEM* = OCM_BASE + WM_MEASUREITEM + OCM_DELETEITEM* = OCM_BASE + WM_DELETEITEM + OCM_VKEYTOITEM* = OCM_BASE + WM_VKEYTOITEM + OCM_CHARTOITEM* = OCM_BASE + WM_CHARTOITEM + OCM_COMPAREITEM* = OCM_BASE + WM_COMPAREITEM + OCM_HSCROLL* = OCM_BASE + WM_HSCROLL + OCM_VSCROLL* = OCM_BASE + WM_VSCROLL + OCM_PARENTNOTIFY* = OCM_BASE + WM_PARENTNOTIFY + OCM_NOTIFY* = OCM_BASE + WM_NOTIFY LP_DEFAULT* = 0x00 LP_MONOCHROME* = 0x01 LP_VGACOLOR* = 0x02 @@ -1033,7 +1365,9 @@ SCRIPTITEM_ISPERSISTENT* = 0x00000040 SCRIPTITEM_CODEONLY* = 0x00000200 SCRIPTITEM_NOCODE* = 0x00000400 - SCRIPTITEM_ALL_FLAGS* = SCRIPTITEM_ISSOURCE or SCRIPTITEM_ISVISIBLE or SCRIPTITEM_ISPERSISTENT or SCRIPTITEM_GLOBALMEMBERS or SCRIPTITEM_NOCODE or SCRIPTITEM_CODEONLY + SCRIPTITEM_ALL_FLAGS* = + SCRIPTITEM_ISSOURCE or SCRIPTITEM_ISVISIBLE or SCRIPTITEM_ISPERSISTENT or + SCRIPTITEM_GLOBALMEMBERS or SCRIPTITEM_NOCODE or SCRIPTITEM_CODEONLY SCRIPTTYPELIB_ISCONTROL* = 0x00000010 SCRIPTTYPELIB_ISPERSISTENT* = 0x00000040 SCRIPTTYPELIB_ALL_FLAGS* = SCRIPTTYPELIB_ISCONTROL or SCRIPTTYPELIB_ISPERSISTENT @@ -1043,13 +1377,17 @@ SCRIPTTEXT_ISPERSISTENT* = 0x00000040 SCRIPTTEXT_HOSTMANAGESSOURCE* = 0x00000080 SCRIPTTEXT_ISXDOMAIN* = 0x00000100 - SCRIPTTEXT_ALL_FLAGS* = SCRIPTTEXT_DELAYEXECUTION or SCRIPTTEXT_ISVISIBLE or SCRIPTTEXT_ISEXPRESSION or SCRIPTTEXT_ISPERSISTENT or SCRIPTTEXT_HOSTMANAGESSOURCE or SCRIPTTEXT_ISXDOMAIN + SCRIPTTEXT_ALL_FLAGS* = + SCRIPTTEXT_DELAYEXECUTION or SCRIPTTEXT_ISVISIBLE or SCRIPTTEXT_ISEXPRESSION or + SCRIPTTEXT_ISPERSISTENT or SCRIPTTEXT_HOSTMANAGESSOURCE or SCRIPTTEXT_ISXDOMAIN SCRIPTPROC_ISEXPRESSION* = 0x00000020 SCRIPTPROC_HOSTMANAGESSOURCE* = 0x00000080 SCRIPTPROC_IMPLICIT_THIS* = 0x00000100 SCRIPTPROC_IMPLICIT_PARENTS* = 0x00000200 SCRIPTPROC_ISXDOMAIN* = 0x00000400 - SCRIPTPROC_ALL_FLAGS* = SCRIPTPROC_HOSTMANAGESSOURCE or SCRIPTPROC_ISEXPRESSION or SCRIPTPROC_IMPLICIT_THIS or SCRIPTPROC_IMPLICIT_PARENTS or SCRIPTPROC_ISXDOMAIN + SCRIPTPROC_ALL_FLAGS* = + SCRIPTPROC_HOSTMANAGESSOURCE or SCRIPTPROC_ISEXPRESSION or SCRIPTPROC_IMPLICIT_THIS or + SCRIPTPROC_IMPLICIT_PARENTS or SCRIPTPROC_ISXDOMAIN SCRIPTINFO_IUNKNOWN* = 0x00000001 SCRIPTINFO_ITYPEINFO* = 0x00000002 SCRIPTINFO_ALL_FLAGS* = SCRIPTINFO_IUNKNOWN or SCRIPTINFO_ITYPEINFO @@ -1119,23 +1457,31 @@ IID_IActiveScriptError64* = DEFINE_GUID("b21fb2a1-5b8f-4963-8c21-21450f84ed7f") IID_IActiveScriptSiteWindow* = DEFINE_GUID("d10f6761-83e9-11cf-8f20-00805f2cd064") IID_IActiveScriptSiteUIControl* = DEFINE_GUID("aedae97e-d7ee-4796-b960-7f092ae844ab") - IID_IActiveScriptSiteInterruptPoll* = DEFINE_GUID("539698a0-cdca-11cf-a5eb-00aa0047a063") + IID_IActiveScriptSiteInterruptPoll* = + DEFINE_GUID("539698a0-cdca-11cf-a5eb-00aa0047a063") IID_IActiveScript* = DEFINE_GUID("bb1a2ae1-a4f9-11cf-8f20-00805f2cd064") IID_IActiveScriptParse32* = DEFINE_GUID("bb1a2ae2-a4f9-11cf-8f20-00805f2cd064") IID_IActiveScriptParse64* = DEFINE_GUID("c7ef7658-e1ee-480e-97ea-d52cb4d76d17") - IID_IActiveScriptParseProcedureOld32* = DEFINE_GUID("1cff0050-6fdd-11d0-9328-00a0c90dcaa9") - IID_IActiveScriptParseProcedureOld64* = DEFINE_GUID("21f57128-08c9-4638-ba12-22d15d88dc5c") - IID_IActiveScriptParseProcedure32* = DEFINE_GUID("aa5b6a80-b834-11d0-932f-00a0c90dcaa9") - IID_IActiveScriptParseProcedure64* = DEFINE_GUID("c64713b6-e029-4cc5-9200-438b72890b6a") - IID_IActiveScriptParseProcedure2_32* = DEFINE_GUID("71ee5b20-fb04-11d1-b3a8-00a0c911e8b2") - IID_IActiveScriptParseProcedure2_64* = DEFINE_GUID("fe7c4271-210c-448d-9f54-76dab7047b28") + IID_IActiveScriptParseProcedureOld32* = + DEFINE_GUID("1cff0050-6fdd-11d0-9328-00a0c90dcaa9") + IID_IActiveScriptParseProcedureOld64* = + DEFINE_GUID("21f57128-08c9-4638-ba12-22d15d88dc5c") + IID_IActiveScriptParseProcedure32* = + DEFINE_GUID("aa5b6a80-b834-11d0-932f-00a0c90dcaa9") + IID_IActiveScriptParseProcedure64* = + DEFINE_GUID("c64713b6-e029-4cc5-9200-438b72890b6a") + IID_IActiveScriptParseProcedure2_32* = + DEFINE_GUID("71ee5b20-fb04-11d1-b3a8-00a0c911e8b2") + IID_IActiveScriptParseProcedure2_64* = + DEFINE_GUID("fe7c4271-210c-448d-9f54-76dab7047b28") IID_IActiveScriptEncode* = DEFINE_GUID("bb1a2ae3-a4f9-11cf-8f20-00805f2cd064") IID_IActiveScriptHostEncode* = DEFINE_GUID("bee9b76e-cfe3-11d1-b747-00c04fc2b085") IID_IBindEventHandler* = DEFINE_GUID("63cdbcb0-c1b1-11d0-9336-00a0c90dcaa9") IID_IActiveScriptStats* = DEFINE_GUID("b8da6310-e19b-11d0-933c-00a0c90dcaa9") IID_IActiveScriptProperty* = DEFINE_GUID("4954e0d0-fbc7-11d1-8410-006008c3fbfc") IID_ITridentEventSink* = DEFINE_GUID("1dc9ca50-06ef-11d2-8415-006008c3fbfc") - IID_IActiveScriptGarbageCollector* = DEFINE_GUID("6aa2c4a0-2b53-11d4-a2a0-00104bd35090") + IID_IActiveScriptGarbageCollector* = + DEFINE_GUID("6aa2c4a0-2b53-11d4-a2a0-00104bd35090") IID_IActiveScriptSIPInfo* = DEFINE_GUID("764651d0-38de-11d4-a2a3-00104bd35090") IID_IActiveScriptSiteTraceInfo* = DEFINE_GUID("4b7272ae-1955-4bfe-98b0-780621888569") IID_IActiveScriptTraceInfo* = DEFINE_GUID("c35456e7-bebf-4a1b-86a9-24d56be8b369") @@ -1317,16 +1663,16 @@ IOF_HIDECHANGEICON* = 0x00000800 IOF_SHOWINSERTCONTROL* = 0x00001000 IOF_SELECTCREATECONTROL* = 0x00002000 - OLEUI_IOERR_LPSZFILEINVALID* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_IOERR_LPSZLABELINVALID* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_IOERR_HICONINVALID* = OLEUI_ERR_STANDARDMAX+2 - OLEUI_IOERR_LPFORMATETCINVALID* = OLEUI_ERR_STANDARDMAX+3 - OLEUI_IOERR_PPVOBJINVALID* = OLEUI_ERR_STANDARDMAX+4 - OLEUI_IOERR_LPIOLECLIENTSITEINVALID* = OLEUI_ERR_STANDARDMAX+5 - OLEUI_IOERR_LPISTORAGEINVALID* = OLEUI_ERR_STANDARDMAX+6 - OLEUI_IOERR_SCODEHASERROR* = OLEUI_ERR_STANDARDMAX+7 - OLEUI_IOERR_LPCLSIDEXCLUDEINVALID* = OLEUI_ERR_STANDARDMAX+8 - OLEUI_IOERR_CCHFILEINVALID* = OLEUI_ERR_STANDARDMAX+9 + OLEUI_IOERR_LPSZFILEINVALID* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_IOERR_LPSZLABELINVALID* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_IOERR_HICONINVALID* = OLEUI_ERR_STANDARDMAX + 2 + OLEUI_IOERR_LPFORMATETCINVALID* = OLEUI_ERR_STANDARDMAX + 3 + OLEUI_IOERR_PPVOBJINVALID* = OLEUI_ERR_STANDARDMAX + 4 + OLEUI_IOERR_LPIOLECLIENTSITEINVALID* = OLEUI_ERR_STANDARDMAX + 5 + OLEUI_IOERR_LPISTORAGEINVALID* = OLEUI_ERR_STANDARDMAX + 6 + OLEUI_IOERR_SCODEHASERROR* = OLEUI_ERR_STANDARDMAX + 7 + OLEUI_IOERR_LPCLSIDEXCLUDEINVALID* = OLEUI_ERR_STANDARDMAX + 8 + OLEUI_IOERR_CCHFILEINVALID* = OLEUI_ERR_STANDARDMAX + 9 OLEUIPASTE_ENABLEICON* = 2048 OLEUIPASTE_PASTEONLY* = 0 OLEUIPASTE_PASTE* = 512 @@ -1348,13 +1694,13 @@ PSF_HIDECHANGEICON* = 0x00000020 PSF_STAYONCLIPBOARDCHANGE* = 0x00000040 PSF_NOREFRESHDATAOBJECT* = 0x00000080 - OLEUI_IOERR_SRCDATAOBJECTINVALID* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_IOERR_ARRPASTEENTRIESINVALID* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_IOERR_ARRLINKTYPESINVALID* = OLEUI_ERR_STANDARDMAX+2 - OLEUI_PSERR_CLIPBOARDCHANGED* = OLEUI_ERR_STANDARDMAX+3 - OLEUI_PSERR_GETCLIPBOARDFAILED* = OLEUI_ERR_STANDARDMAX+4 - OLEUI_ELERR_LINKCNTRNULL* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_ELERR_LINKCNTRINVALID* = OLEUI_ERR_STANDARDMAX+1 + OLEUI_IOERR_SRCDATAOBJECTINVALID* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_IOERR_ARRPASTEENTRIESINVALID* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_IOERR_ARRLINKTYPESINVALID* = OLEUI_ERR_STANDARDMAX + 2 + OLEUI_PSERR_CLIPBOARDCHANGED* = OLEUI_ERR_STANDARDMAX + 3 + OLEUI_PSERR_GETCLIPBOARDFAILED* = OLEUI_ERR_STANDARDMAX + 4 + OLEUI_ELERR_LINKCNTRNULL* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_ELERR_LINKCNTRINVALID* = OLEUI_ERR_STANDARDMAX + 1 ELF_SHOWHELP* = 0x00000001 ELF_DISABLEUPDATENOW* = 0x00000002 ELF_DISABLEOPENSOURCE* = 0x00000004 @@ -1365,9 +1711,9 @@ CIF_SELECTDEFAULT* = 0x00000004 CIF_SELECTFROMFILE* = 0x00000008 CIF_USEICONEXE* = 0x00000010 - OLEUI_CIERR_MUSTHAVECLSID* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_CIERR_MUSTHAVECURRENTMETAFILE* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_CIERR_SZICONEXEINVALID* = OLEUI_ERR_STANDARDMAX+2 + OLEUI_CIERR_MUSTHAVECLSID* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_CIERR_MUSTHAVECURRENTMETAFILE* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_CIERR_SZICONEXEINVALID* = OLEUI_ERR_STANDARDMAX + 2 PROP_HWND_CHGICONDLG* = "HWND_CIDLG" CF_SHOWHELPBUTTON* = 0x00000001 CF_SETCONVERTDEFAULT* = 0x00000002 @@ -1378,31 +1724,31 @@ CF_DISABLEACTIVATEAS* = 0x00000040 CF_HIDECHANGEICON* = 0x00000080 CF_CONVERTONLY* = 0x00000100 - OLEUI_CTERR_CLASSIDINVALID* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_CTERR_DVASPECTINVALID* = OLEUI_ERR_STANDARDMAX+2 - OLEUI_CTERR_CBFORMATINVALID* = OLEUI_ERR_STANDARDMAX+3 - OLEUI_CTERR_HMETAPICTINVALID* = OLEUI_ERR_STANDARDMAX+4 - OLEUI_CTERR_STRINGINVALID* = OLEUI_ERR_STANDARDMAX+5 + OLEUI_CTERR_CLASSIDINVALID* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_CTERR_DVASPECTINVALID* = OLEUI_ERR_STANDARDMAX + 2 + OLEUI_CTERR_CBFORMATINVALID* = OLEUI_ERR_STANDARDMAX + 3 + OLEUI_CTERR_HMETAPICTINVALID* = OLEUI_ERR_STANDARDMAX + 4 + OLEUI_CTERR_STRINGINVALID* = OLEUI_ERR_STANDARDMAX + 5 BZ_DISABLECANCELBUTTON* = 0x00000001 BZ_DISABLESWITCHTOBUTTON* = 0x00000002 BZ_DISABLERETRYBUTTON* = 0x00000004 BZ_NOTRESPONDINGDIALOG* = 0x00000008 - OLEUI_BZERR_HTASKINVALID* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_BZ_SWITCHTOSELECTED* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_BZ_RETRYSELECTED* = OLEUI_ERR_STANDARDMAX+2 - OLEUI_BZ_CALLUNBLOCKED* = OLEUI_ERR_STANDARDMAX+3 + OLEUI_BZERR_HTASKINVALID* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_BZ_SWITCHTOSELECTED* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_BZ_RETRYSELECTED* = OLEUI_ERR_STANDARDMAX + 2 + OLEUI_BZ_CALLUNBLOCKED* = OLEUI_ERR_STANDARDMAX + 3 CSF_SHOWHELP* = 0x00000001 CSF_VALIDSOURCE* = 0x00000002 CSF_ONLYGETSOURCE* = 0x00000004 CSF_EXPLORER* = 0x00000008 - OLEUI_CSERR_LINKCNTRNULL* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_CSERR_LINKCNTRINVALID* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_CSERR_FROMNOTNULL* = OLEUI_ERR_STANDARDMAX+2 - OLEUI_CSERR_TONOTNULL* = OLEUI_ERR_STANDARDMAX+3 - OLEUI_CSERR_SOURCENULL* = OLEUI_ERR_STANDARDMAX+4 - OLEUI_CSERR_SOURCEINVALID* = OLEUI_ERR_STANDARDMAX+5 - OLEUI_CSERR_SOURCEPARSERROR* = OLEUI_ERR_STANDARDMAX+6 - OLEUI_CSERR_SOURCEPARSEERROR* = OLEUI_ERR_STANDARDMAX+6 + OLEUI_CSERR_LINKCNTRNULL* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_CSERR_LINKCNTRINVALID* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_CSERR_FROMNOTNULL* = OLEUI_ERR_STANDARDMAX + 2 + OLEUI_CSERR_TONOTNULL* = OLEUI_ERR_STANDARDMAX + 3 + OLEUI_CSERR_SOURCENULL* = OLEUI_ERR_STANDARDMAX + 4 + OLEUI_CSERR_SOURCEINVALID* = OLEUI_ERR_STANDARDMAX + 5 + OLEUI_CSERR_SOURCEPARSERROR* = OLEUI_ERR_STANDARDMAX + 6 + OLEUI_CSERR_SOURCEPARSEERROR* = OLEUI_ERR_STANDARDMAX + 6 VPF_SELECTRELATIVE* = 0x00000001 VPF_DISABLERELATIVE* = 0x00000002 VPF_DISABLESCALE* = 0x00000004 @@ -1410,394 +1756,2051 @@ OPF_NOFILLDEFAULT* = 0x00000002 OPF_SHOWHELP* = 0x00000004 OPF_DISABLECONVERT* = 0x00000008 - OLEUI_OPERR_SUBPROPNULL* = OLEUI_ERR_STANDARDMAX+0 - OLEUI_OPERR_SUBPROPINVALID* = OLEUI_ERR_STANDARDMAX+1 - OLEUI_OPERR_PROPSHEETNULL* = OLEUI_ERR_STANDARDMAX+2 - OLEUI_OPERR_PROPSHEETINVALID* = OLEUI_ERR_STANDARDMAX+3 - OLEUI_OPERR_SUPPROP* = OLEUI_ERR_STANDARDMAX+4 - OLEUI_OPERR_PROPSINVALID* = OLEUI_ERR_STANDARDMAX+5 - OLEUI_OPERR_PAGESINCORRECT* = OLEUI_ERR_STANDARDMAX+6 - OLEUI_OPERR_INVALIDPAGES* = OLEUI_ERR_STANDARDMAX+7 - OLEUI_OPERR_NOTSUPPORTED* = OLEUI_ERR_STANDARDMAX+8 - OLEUI_OPERR_DLGPROCNOTNULL* = OLEUI_ERR_STANDARDMAX+9 - OLEUI_OPERR_LPARAMNOTZERO* = OLEUI_ERR_STANDARDMAX+10 - OLEUI_GPERR_STRINGINVALID* = OLEUI_ERR_STANDARDMAX+11 - OLEUI_GPERR_CLASSIDINVALID* = OLEUI_ERR_STANDARDMAX+12 - OLEUI_GPERR_LPCLSIDEXCLUDEINVALID* = OLEUI_ERR_STANDARDMAX+13 - OLEUI_GPERR_CBFORMATINVALID* = OLEUI_ERR_STANDARDMAX+14 - OLEUI_VPERR_METAPICTINVALID* = OLEUI_ERR_STANDARDMAX+15 - OLEUI_VPERR_DVASPECTINVALID* = OLEUI_ERR_STANDARDMAX+16 - OLEUI_LPERR_LINKCNTRNULL* = OLEUI_ERR_STANDARDMAX+17 - OLEUI_LPERR_LINKCNTRINVALID* = OLEUI_ERR_STANDARDMAX+18 - OLEUI_OPERR_PROPERTYSHEET* = OLEUI_ERR_STANDARDMAX+19 - OLEUI_OPERR_OBJINFOINVALID* = OLEUI_ERR_STANDARDMAX+20 - OLEUI_OPERR_LINKINFOINVALID* = OLEUI_ERR_STANDARDMAX+21 + OLEUI_OPERR_SUBPROPNULL* = OLEUI_ERR_STANDARDMAX + 0 + OLEUI_OPERR_SUBPROPINVALID* = OLEUI_ERR_STANDARDMAX + 1 + OLEUI_OPERR_PROPSHEETNULL* = OLEUI_ERR_STANDARDMAX + 2 + OLEUI_OPERR_PROPSHEETINVALID* = OLEUI_ERR_STANDARDMAX + 3 + OLEUI_OPERR_SUPPROP* = OLEUI_ERR_STANDARDMAX + 4 + OLEUI_OPERR_PROPSINVALID* = OLEUI_ERR_STANDARDMAX + 5 + OLEUI_OPERR_PAGESINCORRECT* = OLEUI_ERR_STANDARDMAX + 6 + OLEUI_OPERR_INVALIDPAGES* = OLEUI_ERR_STANDARDMAX + 7 + OLEUI_OPERR_NOTSUPPORTED* = OLEUI_ERR_STANDARDMAX + 8 + OLEUI_OPERR_DLGPROCNOTNULL* = OLEUI_ERR_STANDARDMAX + 9 + OLEUI_OPERR_LPARAMNOTZERO* = OLEUI_ERR_STANDARDMAX + 10 + OLEUI_GPERR_STRINGINVALID* = OLEUI_ERR_STANDARDMAX + 11 + OLEUI_GPERR_CLASSIDINVALID* = OLEUI_ERR_STANDARDMAX + 12 + OLEUI_GPERR_LPCLSIDEXCLUDEINVALID* = OLEUI_ERR_STANDARDMAX + 13 + OLEUI_GPERR_CBFORMATINVALID* = OLEUI_ERR_STANDARDMAX + 14 + OLEUI_VPERR_METAPICTINVALID* = OLEUI_ERR_STANDARDMAX + 15 + OLEUI_VPERR_DVASPECTINVALID* = OLEUI_ERR_STANDARDMAX + 16 + OLEUI_LPERR_LINKCNTRNULL* = OLEUI_ERR_STANDARDMAX + 17 + OLEUI_LPERR_LINKCNTRINVALID* = OLEUI_ERR_STANDARDMAX + 18 + OLEUI_OPERR_PROPERTYSHEET* = OLEUI_ERR_STANDARDMAX + 19 + OLEUI_OPERR_OBJINFOINVALID* = OLEUI_ERR_STANDARDMAX + 20 + OLEUI_OPERR_LINKINFOINVALID* = OLEUI_ERR_STANDARDMAX + 21 OLEUI_QUERY_GETCLASSID* = 0xFF00 OLEUI_QUERY_LINKBROKEN* = 0xFF01 type - LPFNLRESULTFROMOBJECT* = proc (riid: REFIID, wParam: WPARAM, punk: LPUNKNOWN): LRESULT {.stdcall.} - LPFNOBJECTFROMLRESULT* = proc (lResult: LRESULT, riid: REFIID, wParam: WPARAM, ppvObject: ptr pointer): HRESULT {.stdcall.} - LPFNACCESSIBLEOBJECTFROMWINDOW* = proc (hwnd: HWND, dwId: DWORD, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} - LPFNACCESSIBLEOBJECTFROMPOINT* = proc (ptScreen: POINT, ppacc: ptr ptr IAccessible, pvarChild: ptr VARIANT): HRESULT {.stdcall.} - LPFNCREATESTDACCESSIBLEOBJECT* = proc (hwnd: HWND, idObject: LONG, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} - LPFNACCESSIBLECHILDREN* = proc (paccContainer: ptr IAccessible, iChildStart: LONG, cChildren: LONG, rgvarChildren: ptr VARIANT, pcObtained: ptr LONG): HRESULT {.stdcall.} + LPFNLRESULTFROMOBJECT* = + proc(riid: REFIID, wParam: WPARAM, punk: LPUNKNOWN): LRESULT {.stdcall.} + LPFNOBJECTFROMLRESULT* = proc( + lResult: LRESULT, riid: REFIID, wParam: WPARAM, ppvObject: ptr pointer + ): HRESULT {.stdcall.} + LPFNACCESSIBLEOBJECTFROMWINDOW* = proc( + hwnd: HWND, dwId: DWORD, riid: REFIID, ppvObject: ptr pointer + ): HRESULT {.stdcall.} + LPFNACCESSIBLEOBJECTFROMPOINT* = proc( + ptScreen: POINT, ppacc: ptr ptr IAccessible, pvarChild: ptr VARIANT + ): HRESULT {.stdcall.} + LPFNCREATESTDACCESSIBLEOBJECT* = proc( + hwnd: HWND, idObject: LONG, riid: REFIID, ppvObject: ptr pointer + ): HRESULT {.stdcall.} + LPFNACCESSIBLECHILDREN* = proc( + paccContainer: ptr IAccessible, + iChildStart: LONG, + cChildren: LONG, + rgvarChildren: ptr VARIANT, + pcObtained: ptr LONG, + ): HRESULT {.stdcall.} IAccIdentity* {.pure.} = object lpVtbl*: ptr IAccIdentityVtbl + IAccIdentityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetIdentityString*: proc(self: ptr IAccIdentity, dwIDChild: DWORD, ppIDString: ptr ptr BYTE, pdwIDStringLen: ptr DWORD): HRESULT {.stdcall.} + GetIdentityString*: proc( + self: ptr IAccIdentity, + dwIDChild: DWORD, + ppIDString: ptr ptr BYTE, + pdwIDStringLen: ptr DWORD, + ): HRESULT {.stdcall.} + IAccPropServer* {.pure.} = object lpVtbl*: ptr IAccPropServerVtbl + IAccPropServerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPropValue*: proc(self: ptr IAccPropServer, pIDString: ptr BYTE, dwIDStringLen: DWORD, idProp: MSAAPROPID, pvarValue: ptr VARIANT, pfHasProp: ptr WINBOOL): HRESULT {.stdcall.} + GetPropValue*: proc( + self: ptr IAccPropServer, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + idProp: MSAAPROPID, + pvarValue: ptr VARIANT, + pfHasProp: ptr WINBOOL, + ): HRESULT {.stdcall.} + IAccPropServices* {.pure.} = object lpVtbl*: ptr IAccPropServicesVtbl + IAccPropServicesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetPropValue*: proc(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, idProp: MSAAPROPID, `var`: VARIANT): HRESULT {.stdcall.} - SetPropServer*: proc(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, paProps: ptr MSAAPROPID, cProps: int32, pServer: ptr IAccPropServer, annoScope: AnnoScope): HRESULT {.stdcall.} - ClearProps*: proc(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, paProps: ptr MSAAPROPID, cProps: int32): HRESULT {.stdcall.} - SetHwndProp*: proc(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, idProp: MSAAPROPID, `var`: VARIANT): HRESULT {.stdcall.} - SetHwndPropStr*: proc(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, idProp: MSAAPROPID, str: LPCWSTR): HRESULT {.stdcall.} - SetHwndPropServer*: proc(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32, pServer: ptr IAccPropServer, annoScope: AnnoScope): HRESULT {.stdcall.} - ClearHwndProps*: proc(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32): HRESULT {.stdcall.} - ComposeHwndIdentityString*: proc(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, ppIDString: ptr ptr BYTE, pdwIDStringLen: ptr DWORD): HRESULT {.stdcall.} - DecomposeHwndIdentityString*: proc(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, phwnd: ptr HWND, pidObject: ptr DWORD, pidChild: ptr DWORD): HRESULT {.stdcall.} - SetHmenuProp*: proc(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, idProp: MSAAPROPID, `var`: VARIANT): HRESULT {.stdcall.} - SetHmenuPropStr*: proc(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, idProp: MSAAPROPID, str: LPCWSTR): HRESULT {.stdcall.} - SetHmenuPropServer*: proc(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32, pServer: ptr IAccPropServer, annoScope: AnnoScope): HRESULT {.stdcall.} - ClearHmenuProps*: proc(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32): HRESULT {.stdcall.} - ComposeHmenuIdentityString*: proc(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, ppIDString: ptr ptr BYTE, pdwIDStringLen: ptr DWORD): HRESULT {.stdcall.} - DecomposeHmenuIdentityString*: proc(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, phmenu: ptr HMENU, pidChild: ptr DWORD): HRESULT {.stdcall.} + SetPropValue*: proc( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + idProp: MSAAPROPID, + `var`: VARIANT, + ): HRESULT {.stdcall.} + SetPropServer*: proc( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + pServer: ptr IAccPropServer, + annoScope: AnnoScope, + ): HRESULT {.stdcall.} + ClearProps*: proc( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + ): HRESULT {.stdcall.} + SetHwndProp*: proc( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + idProp: MSAAPROPID, + `var`: VARIANT, + ): HRESULT {.stdcall.} + SetHwndPropStr*: proc( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + idProp: MSAAPROPID, + str: LPCWSTR, + ): HRESULT {.stdcall.} + SetHwndPropServer*: proc( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + pServer: ptr IAccPropServer, + annoScope: AnnoScope, + ): HRESULT {.stdcall.} + ClearHwndProps*: proc( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + ): HRESULT {.stdcall.} + ComposeHwndIdentityString*: proc( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + ppIDString: ptr ptr BYTE, + pdwIDStringLen: ptr DWORD, + ): HRESULT {.stdcall.} + DecomposeHwndIdentityString*: proc( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + phwnd: ptr HWND, + pidObject: ptr DWORD, + pidChild: ptr DWORD, + ): HRESULT {.stdcall.} + SetHmenuProp*: proc( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + idProp: MSAAPROPID, + `var`: VARIANT, + ): HRESULT {.stdcall.} + SetHmenuPropStr*: proc( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + idProp: MSAAPROPID, + str: LPCWSTR, + ): HRESULT {.stdcall.} + SetHmenuPropServer*: proc( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + pServer: ptr IAccPropServer, + annoScope: AnnoScope, + ): HRESULT {.stdcall.} + ClearHmenuProps*: proc( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + ): HRESULT {.stdcall.} + ComposeHmenuIdentityString*: proc( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + ppIDString: ptr ptr BYTE, + pdwIDStringLen: ptr DWORD, + ): HRESULT {.stdcall.} + DecomposeHmenuIdentityString*: proc( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + phmenu: ptr HMENU, + pidChild: ptr DWORD, + ): HRESULT {.stdcall.} + IActiveScriptError* {.pure.} = object lpVtbl*: ptr IActiveScriptErrorVtbl + IActiveScriptErrorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetExceptionInfo*: proc(self: ptr IActiveScriptError, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} - GetSourcePosition*: proc(self: ptr IActiveScriptError, pdwSourceContext: ptr DWORD, pulLineNumber: ptr ULONG, plCharacterPosition: ptr LONG): HRESULT {.stdcall.} - GetSourceLineText*: proc(self: ptr IActiveScriptError, pbstrSourceLine: ptr BSTR): HRESULT {.stdcall.} + GetExceptionInfo*: + proc(self: ptr IActiveScriptError, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} + GetSourcePosition*: proc( + self: ptr IActiveScriptError, + pdwSourceContext: ptr DWORD, + pulLineNumber: ptr ULONG, + plCharacterPosition: ptr LONG, + ): HRESULT {.stdcall.} + GetSourceLineText*: + proc(self: ptr IActiveScriptError, pbstrSourceLine: ptr BSTR): HRESULT {.stdcall.} + IActiveScriptSite* {.pure.} = object lpVtbl*: ptr IActiveScriptSiteVtbl + IActiveScriptSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetLCID*: proc(self: ptr IActiveScriptSite, plcid: ptr LCID): HRESULT {.stdcall.} - GetItemInfo*: proc(self: ptr IActiveScriptSite, pstrName: LPCOLESTR, dwReturnMask: DWORD, ppiunkItem: ptr ptr IUnknown, ppti: ptr ptr ITypeInfo): HRESULT {.stdcall.} - GetDocVersionString*: proc(self: ptr IActiveScriptSite, pbstrVersion: ptr BSTR): HRESULT {.stdcall.} - OnScriptTerminate*: proc(self: ptr IActiveScriptSite, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO): HRESULT {.stdcall.} - OnStateChange*: proc(self: ptr IActiveScriptSite, ssScriptState: TSCRIPTSTATE): HRESULT {.stdcall.} - OnScriptError*: proc(self: ptr IActiveScriptSite, pscripterror: ptr IActiveScriptError): HRESULT {.stdcall.} + GetItemInfo*: proc( + self: ptr IActiveScriptSite, + pstrName: LPCOLESTR, + dwReturnMask: DWORD, + ppiunkItem: ptr ptr IUnknown, + ppti: ptr ptr ITypeInfo, + ): HRESULT {.stdcall.} + GetDocVersionString*: + proc(self: ptr IActiveScriptSite, pbstrVersion: ptr BSTR): HRESULT {.stdcall.} + OnScriptTerminate*: proc( + self: ptr IActiveScriptSite, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO + ): HRESULT {.stdcall.} + OnStateChange*: proc( + self: ptr IActiveScriptSite, ssScriptState: TSCRIPTSTATE + ): HRESULT {.stdcall.} + OnScriptError*: proc( + self: ptr IActiveScriptSite, pscripterror: ptr IActiveScriptError + ): HRESULT {.stdcall.} OnEnterScript*: proc(self: ptr IActiveScriptSite): HRESULT {.stdcall.} OnLeaveScript*: proc(self: ptr IActiveScriptSite): HRESULT {.stdcall.} + IActiveScriptError64* {.pure.} = object lpVtbl*: ptr IActiveScriptError64Vtbl + IActiveScriptError64Vtbl* {.pure, inheritable.} = object of IActiveScriptErrorVtbl - GetSourcePosition64*: proc(self: ptr IActiveScriptError64, pdwSourceContext: ptr DWORDLONG, pulLineNumber: ptr ULONG, plCharacterPosition: ptr LONG): HRESULT {.stdcall.} + GetSourcePosition64*: proc( + self: ptr IActiveScriptError64, + pdwSourceContext: ptr DWORDLONG, + pulLineNumber: ptr ULONG, + plCharacterPosition: ptr LONG, + ): HRESULT {.stdcall.} + IActiveScriptSiteWindow* {.pure.} = object lpVtbl*: ptr IActiveScriptSiteWindowVtbl + IActiveScriptSiteWindowVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetWindow*: proc(self: ptr IActiveScriptSiteWindow, phwnd: ptr HWND): HRESULT {.stdcall.} - EnableModeless*: proc(self: ptr IActiveScriptSiteWindow, fEnable: WINBOOL): HRESULT {.stdcall.} + GetWindow*: + proc(self: ptr IActiveScriptSiteWindow, phwnd: ptr HWND): HRESULT {.stdcall.} + EnableModeless*: + proc(self: ptr IActiveScriptSiteWindow, fEnable: WINBOOL): HRESULT {.stdcall.} + IActiveScriptSiteUIControl* {.pure.} = object lpVtbl*: ptr IActiveScriptSiteUIControlVtbl + IActiveScriptSiteUIControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetUIBehavior*: proc(self: ptr IActiveScriptSiteUIControl, UicItem: SCRIPTUICITEM, pUicHandling: ptr SCRIPTUICHANDLING): HRESULT {.stdcall.} + GetUIBehavior*: proc( + self: ptr IActiveScriptSiteUIControl, + UicItem: SCRIPTUICITEM, + pUicHandling: ptr SCRIPTUICHANDLING, + ): HRESULT {.stdcall.} + IActiveScriptSiteInterruptPoll* {.pure.} = object lpVtbl*: ptr IActiveScriptSiteInterruptPollVtbl + IActiveScriptSiteInterruptPollVtbl* {.pure, inheritable.} = object of IUnknownVtbl QueryContinue*: proc(self: ptr IActiveScriptSiteInterruptPoll): HRESULT {.stdcall.} + IActiveScript* {.pure.} = object lpVtbl*: ptr IActiveScriptVtbl + IActiveScriptVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetScriptSite*: proc(self: ptr IActiveScript, pass: ptr IActiveScriptSite): HRESULT {.stdcall.} - GetScriptSite*: proc(self: ptr IActiveScript, riid: REFIID, ppvObject: ptr pointer): HRESULT {.stdcall.} - SetScriptState*: proc(self: ptr IActiveScript, ss: TSCRIPTSTATE): HRESULT {.stdcall.} - GetScriptState*: proc(self: ptr IActiveScript, pssState: ptr TSCRIPTSTATE): HRESULT {.stdcall.} + SetScriptSite*: + proc(self: ptr IActiveScript, pass: ptr IActiveScriptSite): HRESULT {.stdcall.} + GetScriptSite*: proc( + self: ptr IActiveScript, riid: REFIID, ppvObject: ptr pointer + ): HRESULT {.stdcall.} + SetScriptState*: + proc(self: ptr IActiveScript, ss: TSCRIPTSTATE): HRESULT {.stdcall.} + GetScriptState*: + proc(self: ptr IActiveScript, pssState: ptr TSCRIPTSTATE): HRESULT {.stdcall.} Close*: proc(self: ptr IActiveScript): HRESULT {.stdcall.} - AddNamedItem*: proc(self: ptr IActiveScript, pstrName: LPCOLESTR, dwFlags: DWORD): HRESULT {.stdcall.} - AddTypeLib*: proc(self: ptr IActiveScript, rguidTypeLib: REFGUID, dwMajor: DWORD, dwMinor: DWORD, dwFlags: DWORD): HRESULT {.stdcall.} - GetScriptDispatch*: proc(self: ptr IActiveScript, pstrItemName: LPCOLESTR, ppdisp: ptr ptr IDispatch): HRESULT {.stdcall.} - GetCurrentScriptThreadID*: proc(self: ptr IActiveScript, pstidThread: ptr SCRIPTTHREADID): HRESULT {.stdcall.} - GetScriptThreadID*: proc(self: ptr IActiveScript, dwWin32ThreadId: DWORD, pstidThread: ptr SCRIPTTHREADID): HRESULT {.stdcall.} - GetScriptThreadState*: proc(self: ptr IActiveScript, stidThread: SCRIPTTHREADID, pstsState: ptr SCRIPTTHREADSTATE): HRESULT {.stdcall.} - InterruptScriptThread*: proc(self: ptr IActiveScript, stidThread: SCRIPTTHREADID, pexcepinfo: ptr EXCEPINFO, dwFlags: DWORD): HRESULT {.stdcall.} - Clone*: proc(self: ptr IActiveScript, ppscript: ptr ptr IActiveScript): HRESULT {.stdcall.} + AddNamedItem*: proc( + self: ptr IActiveScript, pstrName: LPCOLESTR, dwFlags: DWORD + ): HRESULT {.stdcall.} + AddTypeLib*: proc( + self: ptr IActiveScript, + rguidTypeLib: REFGUID, + dwMajor: DWORD, + dwMinor: DWORD, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetScriptDispatch*: proc( + self: ptr IActiveScript, pstrItemName: LPCOLESTR, ppdisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + GetCurrentScriptThreadID*: proc( + self: ptr IActiveScript, pstidThread: ptr SCRIPTTHREADID + ): HRESULT {.stdcall.} + GetScriptThreadID*: proc( + self: ptr IActiveScript, dwWin32ThreadId: DWORD, pstidThread: ptr SCRIPTTHREADID + ): HRESULT {.stdcall.} + GetScriptThreadState*: proc( + self: ptr IActiveScript, + stidThread: SCRIPTTHREADID, + pstsState: ptr SCRIPTTHREADSTATE, + ): HRESULT {.stdcall.} + InterruptScriptThread*: proc( + self: ptr IActiveScript, + stidThread: SCRIPTTHREADID, + pexcepinfo: ptr EXCEPINFO, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + Clone*: proc(self: ptr IActiveScript, ppscript: ptr ptr IActiveScript): HRESULT {. + stdcall + .} + IActiveScriptEncode* {.pure.} = object lpVtbl*: ptr IActiveScriptEncodeVtbl + IActiveScriptEncodeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EncodeSection*: proc(self: ptr IActiveScriptEncode, pchIn: LPCOLESTR, cchIn: DWORD, pchOut: LPOLESTR, cchOut: DWORD, pcchRet: ptr DWORD): HRESULT {.stdcall.} - DecodeScript*: proc(self: ptr IActiveScriptEncode, pchIn: LPCOLESTR, cchIn: DWORD, pchOut: LPOLESTR, cchOut: DWORD, pcchRet: ptr DWORD): HRESULT {.stdcall.} - GetEncodeProgId*: proc(self: ptr IActiveScriptEncode, pbstrOut: ptr BSTR): HRESULT {.stdcall.} + EncodeSection*: proc( + self: ptr IActiveScriptEncode, + pchIn: LPCOLESTR, + cchIn: DWORD, + pchOut: LPOLESTR, + cchOut: DWORD, + pcchRet: ptr DWORD, + ): HRESULT {.stdcall.} + DecodeScript*: proc( + self: ptr IActiveScriptEncode, + pchIn: LPCOLESTR, + cchIn: DWORD, + pchOut: LPOLESTR, + cchOut: DWORD, + pcchRet: ptr DWORD, + ): HRESULT {.stdcall.} + GetEncodeProgId*: + proc(self: ptr IActiveScriptEncode, pbstrOut: ptr BSTR): HRESULT {.stdcall.} + IActiveScriptHostEncode* {.pure.} = object lpVtbl*: ptr IActiveScriptHostEncodeVtbl + IActiveScriptHostEncodeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EncodeScriptHostFile*: proc(self: ptr IActiveScriptHostEncode, bstrInFile: BSTR, pbstrOutFile: ptr BSTR, cFlags: ULONG, bstrDefaultLang: BSTR): HRESULT {.stdcall.} + EncodeScriptHostFile*: proc( + self: ptr IActiveScriptHostEncode, + bstrInFile: BSTR, + pbstrOutFile: ptr BSTR, + cFlags: ULONG, + bstrDefaultLang: BSTR, + ): HRESULT {.stdcall.} + IBindEventHandler* {.pure.} = object lpVtbl*: ptr IBindEventHandlerVtbl + IBindEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - BindHandler*: proc(self: ptr IBindEventHandler, pstrEvent: LPCOLESTR, pdisp: ptr IDispatch): HRESULT {.stdcall.} + BindHandler*: proc( + self: ptr IBindEventHandler, pstrEvent: LPCOLESTR, pdisp: ptr IDispatch + ): HRESULT {.stdcall.} + IActiveScriptStats* {.pure.} = object lpVtbl*: ptr IActiveScriptStatsVtbl + IActiveScriptStatsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetStat*: proc(self: ptr IActiveScriptStats, stid: DWORD, pluHi: ptr ULONG, pluLo: ptr ULONG): HRESULT {.stdcall.} - GetStatEx*: proc(self: ptr IActiveScriptStats, guid: REFGUID, pluHi: ptr ULONG, pluLo: ptr ULONG): HRESULT {.stdcall.} + GetStat*: proc( + self: ptr IActiveScriptStats, stid: DWORD, pluHi: ptr ULONG, pluLo: ptr ULONG + ): HRESULT {.stdcall.} + GetStatEx*: proc( + self: ptr IActiveScriptStats, guid: REFGUID, pluHi: ptr ULONG, pluLo: ptr ULONG + ): HRESULT {.stdcall.} ResetStats*: proc(self: ptr IActiveScriptStats): HRESULT {.stdcall.} + IActiveScriptProperty* {.pure.} = object lpVtbl*: ptr IActiveScriptPropertyVtbl + IActiveScriptPropertyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetProperty*: proc(self: ptr IActiveScriptProperty, dwProperty: DWORD, pvarIndex: ptr VARIANT, pvarValue: ptr VARIANT): HRESULT {.stdcall.} - SetProperty*: proc(self: ptr IActiveScriptProperty, dwProperty: DWORD, pvarIndex: ptr VARIANT, pvarValue: ptr VARIANT): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IActiveScriptProperty, + dwProperty: DWORD, + pvarIndex: ptr VARIANT, + pvarValue: ptr VARIANT, + ): HRESULT {.stdcall.} + SetProperty*: proc( + self: ptr IActiveScriptProperty, + dwProperty: DWORD, + pvarIndex: ptr VARIANT, + pvarValue: ptr VARIANT, + ): HRESULT {.stdcall.} + ITridentEventSink* {.pure.} = object lpVtbl*: ptr ITridentEventSinkVtbl + ITridentEventSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FireEvent*: proc(self: ptr ITridentEventSink, pstrEvent: LPCOLESTR, pdp: ptr DISPPARAMS, pvarRes: ptr VARIANT, pei: ptr EXCEPINFO): HRESULT {.stdcall.} + FireEvent*: proc( + self: ptr ITridentEventSink, + pstrEvent: LPCOLESTR, + pdp: ptr DISPPARAMS, + pvarRes: ptr VARIANT, + pei: ptr EXCEPINFO, + ): HRESULT {.stdcall.} + IActiveScriptGarbageCollector* {.pure.} = object lpVtbl*: ptr IActiveScriptGarbageCollectorVtbl + IActiveScriptGarbageCollectorVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CollectGarbage*: proc(self: ptr IActiveScriptGarbageCollector, scriptgctype: SCRIPTGCTYPE): HRESULT {.stdcall.} + CollectGarbage*: proc( + self: ptr IActiveScriptGarbageCollector, scriptgctype: SCRIPTGCTYPE + ): HRESULT {.stdcall.} + IActiveScriptSIPInfo* {.pure.} = object lpVtbl*: ptr IActiveScriptSIPInfoVtbl + IActiveScriptSIPInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSIPOID*: proc(self: ptr IActiveScriptSIPInfo, poid_sip: ptr GUID): HRESULT {.stdcall.} + GetSIPOID*: + proc(self: ptr IActiveScriptSIPInfo, poid_sip: ptr GUID): HRESULT {.stdcall.} + IActiveScriptSiteTraceInfo* {.pure.} = object lpVtbl*: ptr IActiveScriptSiteTraceInfoVtbl + IActiveScriptSiteTraceInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SendScriptTraceInfo*: proc(self: ptr IActiveScriptSiteTraceInfo, stiEventType: SCRIPTTRACEINFO, guidContextID: GUID, dwScriptContextCookie: DWORD, lScriptStatementStart: LONG, lScriptStatementEnd: LONG, dwReserved: DWORD64): HRESULT {.stdcall.} + SendScriptTraceInfo*: proc( + self: ptr IActiveScriptSiteTraceInfo, + stiEventType: SCRIPTTRACEINFO, + guidContextID: GUID, + dwScriptContextCookie: DWORD, + lScriptStatementStart: LONG, + lScriptStatementEnd: LONG, + dwReserved: DWORD64, + ): HRESULT {.stdcall.} + IActiveScriptTraceInfo* {.pure.} = object lpVtbl*: ptr IActiveScriptTraceInfoVtbl + IActiveScriptTraceInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - StartScriptTracing*: proc(self: ptr IActiveScriptTraceInfo, pSiteTraceInfo: ptr IActiveScriptSiteTraceInfo, guidContextID: GUID): HRESULT {.stdcall.} + StartScriptTracing*: proc( + self: ptr IActiveScriptTraceInfo, + pSiteTraceInfo: ptr IActiveScriptSiteTraceInfo, + guidContextID: GUID, + ): HRESULT {.stdcall.} StopScriptTracing*: proc(self: ptr IActiveScriptTraceInfo): HRESULT {.stdcall.} + IActiveScriptStringCompare* {.pure.} = object lpVtbl*: ptr IActiveScriptStringCompareVtbl + IActiveScriptStringCompareVtbl* {.pure, inheritable.} = object of IUnknownVtbl - StrComp*: proc(self: ptr IActiveScriptStringCompare, bszStr1: BSTR, bszStr2: BSTR, iRet: ptr LONG): HRESULT {.stdcall.} -proc LresultFromObject*(riid: REFIID, wParam: WPARAM, punk: LPUNKNOWN): LRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc ObjectFromLresult*(lResult: LRESULT, riid: REFIID, wParam: WPARAM, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc WindowFromAccessibleObject*(P1: ptr IAccessible, phwnd: ptr HWND): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc AccessibleObjectFromWindow*(hwnd: HWND, dwId: DWORD, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc AccessibleObjectFromEvent*(hwnd: HWND, dwId: DWORD, dwChildId: DWORD, ppacc: ptr ptr IAccessible, pvarChild: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc AccessibleObjectFromPoint*(ptScreen: POINT, ppacc: ptr ptr IAccessible, pvarChild: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc AccessibleChildren*(paccContainer: ptr IAccessible, iChildStart: LONG, cChildren: LONG, rgvarChildren: ptr VARIANT, pcObtained: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc GetRoleTextA*(lRole: DWORD, lpszRole: LPSTR, cchRoleMax: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc GetRoleTextW*(lRole: DWORD, lpszRole: LPWSTR, cchRoleMax: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc GetStateTextA*(lStateBit: DWORD, lpszState: LPSTR, cchState: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc GetStateTextW*(lStateBit: DWORD, lpszState: LPWSTR, cchState: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc GetOleaccVersionInfo*(pVer: ptr DWORD, pBuild: ptr DWORD): VOID {.winapi, stdcall, dynlib: "oleacc", importc.} -proc CreateStdAccessibleObject*(hwnd: HWND, idObject: LONG, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc CreateStdAccessibleProxyA*(hwnd: HWND, pClassName: LPCSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} -proc CreateStdAccessibleProxyW*(hwnd: HWND, pClassName: LPCWSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + StrComp*: proc( + self: ptr IActiveScriptStringCompare, bszStr1: BSTR, bszStr2: BSTR, iRet: ptr LONG + ): HRESULT {.stdcall.} + +proc LresultFromObject*( + riid: REFIID, wParam: WPARAM, punk: LPUNKNOWN +): LRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc ObjectFromLresult*( + lResult: LRESULT, riid: REFIID, wParam: WPARAM, ppvObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc WindowFromAccessibleObject*( + P1: ptr IAccessible, phwnd: ptr HWND +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc AccessibleObjectFromWindow*( + hwnd: HWND, dwId: DWORD, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc AccessibleObjectFromEvent*( + hwnd: HWND, + dwId: DWORD, + dwChildId: DWORD, + ppacc: ptr ptr IAccessible, + pvarChild: ptr VARIANT, +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc AccessibleObjectFromPoint*( + ptScreen: POINT, ppacc: ptr ptr IAccessible, pvarChild: ptr VARIANT +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc AccessibleChildren*( + paccContainer: ptr IAccessible, + iChildStart: LONG, + cChildren: LONG, + rgvarChildren: ptr VARIANT, + pcObtained: ptr LONG, +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc GetRoleTextA*( + lRole: DWORD, lpszRole: LPSTR, cchRoleMax: UINT +): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc GetRoleTextW*( + lRole: DWORD, lpszRole: LPWSTR, cchRoleMax: UINT +): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc GetStateTextA*( + lStateBit: DWORD, lpszState: LPSTR, cchState: UINT +): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc GetStateTextW*( + lStateBit: DWORD, lpszState: LPWSTR, cchState: UINT +): UINT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc GetOleaccVersionInfo*( + pVer: ptr DWORD, pBuild: ptr DWORD +): VOID {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc CreateStdAccessibleObject*( + hwnd: HWND, idObject: LONG, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc CreateStdAccessibleProxyA*( + hwnd: HWND, pClassName: LPCSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + +proc CreateStdAccessibleProxyW*( + hwnd: HWND, pClassName: LPCWSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc.} + proc DllRegisterServer*(): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} proc DllUnregisterServer*(): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc OleCreatePropertyFrame*(hwndOwner: HWND, x: UINT, y: UINT, lpszCaption: LPCOLESTR, cObjects: ULONG, ppUnk: ptr LPUNKNOWN, cPages: ULONG, pPageClsID: LPCLSID, lcid: LCID, dwReserved: DWORD, pvReserved: LPVOID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleCreatePropertyFrameIndirect*(lpParams: LPOCPFIPARAMS): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleTranslateColor*(clr: OLE_COLOR, hpal: HPALETTE, lpcolorref: ptr COLORREF): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleCreateFontIndirect*(lpFontDesc: LPFONTDESC, riid: REFIID, lplpvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleCreatePictureIndirect*(lpPictDesc: LPPICTDESC, riid: REFIID, fOwn: WINBOOL, lplpvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleLoadPicture*(lpstream: LPSTREAM, lSize: LONG, fRunmode: WINBOOL, riid: REFIID, lplpvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleLoadPictureEx*(lpstream: LPSTREAM, lSize: LONG, fRunmode: WINBOOL, riid: REFIID, xSizeDesired: DWORD, ySizeDesired: DWORD, dwFlags: DWORD, lplpvObj: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleLoadPicturePath*(szURLorPath: LPOLESTR, punkCaller: LPUNKNOWN, dwReserved: DWORD, clrReserved: OLE_COLOR, riid: REFIID, ppvRet: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleLoadPictureFile*(varFileName: VARIANT, lplpdispPicture: ptr LPDISPATCH): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleLoadPictureFileEx*(varFileName: VARIANT, xSizeDesired: DWORD, ySizeDesired: DWORD, dwFlags: DWORD, lplpdispPicture: ptr LPDISPATCH): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleSavePictureFile*(lpdispPicture: LPDISPATCH, bstrFileName: BSTR): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleIconToCursor*(hinstExe: HINSTANCE, hIcon: HICON): HCURSOR {.winapi, stdcall, dynlib: "oleaut32", importc.} -proc OleUIAddVerbMenuW*(lpOleObj: LPOLEOBJECT, lpszShortType: LPCWSTR, hMenu: HMENU, uPos: UINT, uIDVerbMin: UINT, uIDVerbMax: UINT, bAddConvert: WINBOOL, idConvert: UINT, lphMenu: ptr HMENU): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIAddVerbMenuA*(lpOleObj: LPOLEOBJECT, lpszShortType: LPCSTR, hMenu: HMENU, uPos: UINT, uIDVerbMin: UINT, uIDVerbMax: UINT, bAddConvert: WINBOOL, idConvert: UINT, lphMenu: ptr HMENU): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIInsertObjectW*(P1: LPOLEUIINSERTOBJECTW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIInsertObjectA*(P1: LPOLEUIINSERTOBJECTA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIPasteSpecialW*(P1: LPOLEUIPASTESPECIALW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIPasteSpecialA*(P1: LPOLEUIPASTESPECIALA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIEditLinksW*(P1: LPOLEUIEDITLINKSW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIEditLinksA*(P1: LPOLEUIEDITLINKSA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIChangeIconW*(P1: LPOLEUICHANGEICONW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIChangeIconA*(P1: LPOLEUICHANGEICONA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIConvertW*(P1: LPOLEUICONVERTW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIConvertA*(P1: LPOLEUICONVERTA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUICanConvertOrActivateAs*(rClsid: REFCLSID, fIsLinkedObject: WINBOOL, wFormat: WORD): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} +proc OleCreatePropertyFrame*( + hwndOwner: HWND, + x: UINT, + y: UINT, + lpszCaption: LPCOLESTR, + cObjects: ULONG, + ppUnk: ptr LPUNKNOWN, + cPages: ULONG, + pPageClsID: LPCLSID, + lcid: LCID, + dwReserved: DWORD, + pvReserved: LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleCreatePropertyFrameIndirect*( + lpParams: LPOCPFIPARAMS +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleTranslateColor*( + clr: OLE_COLOR, hpal: HPALETTE, lpcolorref: ptr COLORREF +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleCreateFontIndirect*( + lpFontDesc: LPFONTDESC, riid: REFIID, lplpvObj: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleCreatePictureIndirect*( + lpPictDesc: LPPICTDESC, riid: REFIID, fOwn: WINBOOL, lplpvObj: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleLoadPicture*( + lpstream: LPSTREAM, lSize: LONG, fRunmode: WINBOOL, riid: REFIID, lplpvObj: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleLoadPictureEx*( + lpstream: LPSTREAM, + lSize: LONG, + fRunmode: WINBOOL, + riid: REFIID, + xSizeDesired: DWORD, + ySizeDesired: DWORD, + dwFlags: DWORD, + lplpvObj: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleLoadPicturePath*( + szURLorPath: LPOLESTR, + punkCaller: LPUNKNOWN, + dwReserved: DWORD, + clrReserved: OLE_COLOR, + riid: REFIID, + ppvRet: ptr LPVOID, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleLoadPictureFile*( + varFileName: VARIANT, lplpdispPicture: ptr LPDISPATCH +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleLoadPictureFileEx*( + varFileName: VARIANT, + xSizeDesired: DWORD, + ySizeDesired: DWORD, + dwFlags: DWORD, + lplpdispPicture: ptr LPDISPATCH, +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleSavePictureFile*( + lpdispPicture: LPDISPATCH, bstrFileName: BSTR +): HRESULT {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleIconToCursor*( + hinstExe: HINSTANCE, hIcon: HICON +): HCURSOR {.winapi, stdcall, dynlib: "oleaut32", importc.} + +proc OleUIAddVerbMenuW*( + lpOleObj: LPOLEOBJECT, + lpszShortType: LPCWSTR, + hMenu: HMENU, + uPos: UINT, + uIDVerbMin: UINT, + uIDVerbMax: UINT, + bAddConvert: WINBOOL, + idConvert: UINT, + lphMenu: ptr HMENU, +): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIAddVerbMenuA*( + lpOleObj: LPOLEOBJECT, + lpszShortType: LPCSTR, + hMenu: HMENU, + uPos: UINT, + uIDVerbMin: UINT, + uIDVerbMax: UINT, + bAddConvert: WINBOOL, + idConvert: UINT, + lphMenu: ptr HMENU, +): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIInsertObjectW*( + P1: LPOLEUIINSERTOBJECTW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIInsertObjectA*( + P1: LPOLEUIINSERTOBJECTA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIPasteSpecialW*( + P1: LPOLEUIPASTESPECIALW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIPasteSpecialA*( + P1: LPOLEUIPASTESPECIALA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIEditLinksW*( + P1: LPOLEUIEDITLINKSW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIEditLinksA*( + P1: LPOLEUIEDITLINKSA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIChangeIconW*( + P1: LPOLEUICHANGEICONW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIChangeIconA*( + P1: LPOLEUICHANGEICONA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIConvertW*( + P1: LPOLEUICONVERTW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIConvertA*( + P1: LPOLEUICONVERTA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUICanConvertOrActivateAs*( + rClsid: REFCLSID, fIsLinkedObject: WINBOOL, wFormat: WORD +): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} + proc OleUIBusyW*(P1: LPOLEUIBUSYW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} proc OleUIBusyA*(P1: LPOLEUIBUSYA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIChangeSourceW*(P1: LPOLEUICHANGESOURCEW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIChangeSourceA*(P1: LPOLEUICHANGESOURCEA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIObjectPropertiesW*(P1: LPOLEUIOBJECTPROPSW): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIObjectPropertiesA*(P1: LPOLEUIOBJECTPROPSA): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIUpdateLinksW*(lpOleUILinkCntr: LPOLEUILINKCONTAINERW, hwndParent: HWND, lpszTitle: LPWSTR, cLinks: int32): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} -proc OleUIUpdateLinksA*(lpOleUILinkCntr: LPOLEUILINKCONTAINERA, hwndParent: HWND, lpszTitle: LPSTR, cLinks: int32): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} -proc `bmp=`*(self: var PICTDESC, x: PICTDESC_UNION1_bmp) {.inline.} = self.union1.bmp = x -proc bmp*(self: PICTDESC): PICTDESC_UNION1_bmp {.inline.} = self.union1.bmp -proc bmp*(self: var PICTDESC): var PICTDESC_UNION1_bmp {.inline.} = self.union1.bmp -proc `wmf=`*(self: var PICTDESC, x: PICTDESC_UNION1_wmf) {.inline.} = self.union1.wmf = x -proc wmf*(self: PICTDESC): PICTDESC_UNION1_wmf {.inline.} = self.union1.wmf -proc wmf*(self: var PICTDESC): var PICTDESC_UNION1_wmf {.inline.} = self.union1.wmf -proc `icon=`*(self: var PICTDESC, x: PICTDESC_UNION1_icon) {.inline.} = self.union1.icon = x -proc icon*(self: PICTDESC): PICTDESC_UNION1_icon {.inline.} = self.union1.icon -proc icon*(self: var PICTDESC): var PICTDESC_UNION1_icon {.inline.} = self.union1.icon -proc `emf=`*(self: var PICTDESC, x: PICTDESC_UNION1_emf) {.inline.} = self.union1.emf = x -proc emf*(self: PICTDESC): PICTDESC_UNION1_emf {.inline.} = self.union1.emf -proc emf*(self: var PICTDESC): var PICTDESC_UNION1_emf {.inline.} = self.union1.emf -proc get_accParent*(self: ptr IAccessible, ppdispParent: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accParent(self, ppdispParent) -proc get_accChildCount*(self: ptr IAccessible, pcountChildren: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accChildCount(self, pcountChildren) -proc get_accChild*(self: ptr IAccessible, varChildID: VARIANT, ppdispChild: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accChild(self, varChildID, ppdispChild) -proc get_accName*(self: ptr IAccessible, varID: VARIANT, pszName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accName(self, varID, pszName) -proc get_accValue*(self: ptr IAccessible, varID: VARIANT, pszValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accValue(self, varID, pszValue) -proc get_accDescription*(self: ptr IAccessible, varID: VARIANT, pszDescription: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accDescription(self, varID, pszDescription) -proc get_accRole*(self: ptr IAccessible, varID: VARIANT, pvarRole: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accRole(self, varID, pvarRole) -proc get_accState*(self: ptr IAccessible, varID: VARIANT, pvarState: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accState(self, varID, pvarState) -proc get_accHelp*(self: ptr IAccessible, varID: VARIANT, pszHelp: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accHelp(self, varID, pszHelp) -proc get_accHelpTopic*(self: ptr IAccessible, pszHelpFile: ptr BSTR, varID: VARIANT, pidTopic: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accHelpTopic(self, pszHelpFile, varID, pidTopic) -proc get_accKeyboardShortcut*(self: ptr IAccessible, varID: VARIANT, pszKeyboardShortcut: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accKeyboardShortcut(self, varID, pszKeyboardShortcut) -proc get_accFocus*(self: ptr IAccessible, pvarID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accFocus(self, pvarID) -proc get_accSelection*(self: ptr IAccessible, pvarID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accSelection(self, pvarID) -proc get_accDefaultAction*(self: ptr IAccessible, varID: VARIANT, pszDefaultAction: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_accDefaultAction(self, varID, pszDefaultAction) -proc accSelect*(self: ptr IAccessible, flagsSelect: LONG, varID: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.accSelect(self, flagsSelect, varID) -proc accLocation*(self: ptr IAccessible, pxLeft: ptr LONG, pyTop: ptr LONG, pcxWidth: ptr LONG, pcyHeight: ptr LONG, varID: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.accLocation(self, pxLeft, pyTop, pcxWidth, pcyHeight, varID) -proc accNavigate*(self: ptr IAccessible, navDir: LONG, varStart: VARIANT, pvarEnd: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.accNavigate(self, navDir, varStart, pvarEnd) -proc accHitTest*(self: ptr IAccessible, xLeft: LONG, yTop: LONG, pvarID: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.accHitTest(self, xLeft, yTop, pvarID) -proc accDoDefaultAction*(self: ptr IAccessible, varID: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.accDoDefaultAction(self, varID) -proc put_accName*(self: ptr IAccessible, varID: VARIANT, pszName: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accName(self, varID, pszName) -proc put_accValue*(self: ptr IAccessible, varID: VARIANT, pszValue: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_accValue(self, varID, pszValue) -proc AccessibleObjectFromID*(self: ptr IAccessibleHandler, hwnd: LONG, lObjectID: LONG, pIAccessible: ptr LPACCESSIBLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AccessibleObjectFromID(self, hwnd, lObjectID, pIAccessible) -proc GetIdentityString*(self: ptr IAccIdentity, dwIDChild: DWORD, ppIDString: ptr ptr BYTE, pdwIDStringLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIdentityString(self, dwIDChild, ppIDString, pdwIDStringLen) -proc GetPropValue*(self: ptr IAccPropServer, pIDString: ptr BYTE, dwIDStringLen: DWORD, idProp: MSAAPROPID, pvarValue: ptr VARIANT, pfHasProp: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropValue(self, pIDString, dwIDStringLen, idProp, pvarValue, pfHasProp) -proc SetPropValue*(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, idProp: MSAAPROPID, `var`: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPropValue(self, pIDString, dwIDStringLen, idProp, `var`) -proc SetPropServer*(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, paProps: ptr MSAAPROPID, cProps: int32, pServer: ptr IAccPropServer, annoScope: AnnoScope): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPropServer(self, pIDString, dwIDStringLen, paProps, cProps, pServer, annoScope) -proc ClearProps*(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, paProps: ptr MSAAPROPID, cProps: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearProps(self, pIDString, dwIDStringLen, paProps, cProps) -proc SetHwndProp*(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, idProp: MSAAPROPID, `var`: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHwndProp(self, hwnd, idObject, idChild, idProp, `var`) -proc SetHwndPropStr*(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, idProp: MSAAPROPID, str: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHwndPropStr(self, hwnd, idObject, idChild, idProp, str) -proc SetHwndPropServer*(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32, pServer: ptr IAccPropServer, annoScope: AnnoScope): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHwndPropServer(self, hwnd, idObject, idChild, paProps, cProps, pServer, annoScope) -proc ClearHwndProps*(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearHwndProps(self, hwnd, idObject, idChild, paProps, cProps) -proc ComposeHwndIdentityString*(self: ptr IAccPropServices, hwnd: HWND, idObject: DWORD, idChild: DWORD, ppIDString: ptr ptr BYTE, pdwIDStringLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComposeHwndIdentityString(self, hwnd, idObject, idChild, ppIDString, pdwIDStringLen) -proc DecomposeHwndIdentityString*(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, phwnd: ptr HWND, pidObject: ptr DWORD, pidChild: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DecomposeHwndIdentityString(self, pIDString, dwIDStringLen, phwnd, pidObject, pidChild) -proc SetHmenuProp*(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, idProp: MSAAPROPID, `var`: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHmenuProp(self, hmenu, idChild, idProp, `var`) -proc SetHmenuPropStr*(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, idProp: MSAAPROPID, str: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHmenuPropStr(self, hmenu, idChild, idProp, str) -proc SetHmenuPropServer*(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32, pServer: ptr IAccPropServer, annoScope: AnnoScope): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHmenuPropServer(self, hmenu, idChild, paProps, cProps, pServer, annoScope) -proc ClearHmenuProps*(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, paProps: ptr MSAAPROPID, cProps: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearHmenuProps(self, hmenu, idChild, paProps, cProps) -proc ComposeHmenuIdentityString*(self: ptr IAccPropServices, hmenu: HMENU, idChild: DWORD, ppIDString: ptr ptr BYTE, pdwIDStringLen: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComposeHmenuIdentityString(self, hmenu, idChild, ppIDString, pdwIDStringLen) -proc DecomposeHmenuIdentityString*(self: ptr IAccPropServices, pIDString: ptr BYTE, dwIDStringLen: DWORD, phmenu: ptr HMENU, pidChild: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DecomposeHmenuIdentityString(self, pIDString, dwIDStringLen, phmenu, pidChild) -proc GetInterfaceSafetyOptions*(self: ptr IObjectSafety, riid: REFIID, pdwSupportedOptions: ptr DWORD, pdwEnabledOptions: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInterfaceSafetyOptions(self, riid, pdwSupportedOptions, pdwEnabledOptions) -proc SetInterfaceSafetyOptions*(self: ptr IObjectSafety, riid: REFIID, dwOptionSetMask: DWORD, dwEnabledOptions: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetInterfaceSafetyOptions(self, riid, dwOptionSetMask, dwEnabledOptions) -proc GetLCID*(self: ptr IActiveScriptSite, plcid: ptr LCID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLCID(self, plcid) -proc GetItemInfo*(self: ptr IActiveScriptSite, pstrName: LPCOLESTR, dwReturnMask: DWORD, ppiunkItem: ptr ptr IUnknown, ppti: ptr ptr ITypeInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemInfo(self, pstrName, dwReturnMask, ppiunkItem, ppti) -proc GetDocVersionString*(self: ptr IActiveScriptSite, pbstrVersion: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDocVersionString(self, pbstrVersion) -proc OnScriptTerminate*(self: ptr IActiveScriptSite, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnScriptTerminate(self, pvarResult, pexcepinfo) -proc OnStateChange*(self: ptr IActiveScriptSite, ssScriptState: TSCRIPTSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStateChange(self, ssScriptState) -proc OnScriptError*(self: ptr IActiveScriptSite, pscripterror: ptr IActiveScriptError): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnScriptError(self, pscripterror) -proc OnEnterScript*(self: ptr IActiveScriptSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnEnterScript(self) -proc OnLeaveScript*(self: ptr IActiveScriptSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnLeaveScript(self) -proc GetExceptionInfo*(self: ptr IActiveScriptError, pexcepinfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExceptionInfo(self, pexcepinfo) -proc GetSourcePosition*(self: ptr IActiveScriptError, pdwSourceContext: ptr DWORD, pulLineNumber: ptr ULONG, plCharacterPosition: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSourcePosition(self, pdwSourceContext, pulLineNumber, plCharacterPosition) -proc GetSourceLineText*(self: ptr IActiveScriptError, pbstrSourceLine: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSourceLineText(self, pbstrSourceLine) -proc GetSourcePosition64*(self: ptr IActiveScriptError64, pdwSourceContext: ptr DWORDLONG, pulLineNumber: ptr ULONG, plCharacterPosition: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSourcePosition64(self, pdwSourceContext, pulLineNumber, plCharacterPosition) -proc GetWindow*(self: ptr IActiveScriptSiteWindow, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindow(self, phwnd) -proc EnableModeless*(self: ptr IActiveScriptSiteWindow, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable) -proc GetUIBehavior*(self: ptr IActiveScriptSiteUIControl, UicItem: SCRIPTUICITEM, pUicHandling: ptr SCRIPTUICHANDLING): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUIBehavior(self, UicItem, pUicHandling) -proc QueryContinue*(self: ptr IActiveScriptSiteInterruptPoll): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryContinue(self) -proc SetScriptSite*(self: ptr IActiveScript, pass: ptr IActiveScriptSite): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScriptSite(self, pass) -proc GetScriptSite*(self: ptr IActiveScript, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScriptSite(self, riid, ppvObject) -proc SetScriptState*(self: ptr IActiveScript, ss: TSCRIPTSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScriptState(self, ss) -proc GetScriptState*(self: ptr IActiveScript, pssState: ptr TSCRIPTSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScriptState(self, pssState) -proc Close*(self: ptr IActiveScript): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self) -proc AddNamedItem*(self: ptr IActiveScript, pstrName: LPCOLESTR, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddNamedItem(self, pstrName, dwFlags) -proc AddTypeLib*(self: ptr IActiveScript, rguidTypeLib: REFGUID, dwMajor: DWORD, dwMinor: DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTypeLib(self, rguidTypeLib, dwMajor, dwMinor, dwFlags) -proc GetScriptDispatch*(self: ptr IActiveScript, pstrItemName: LPCOLESTR, ppdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScriptDispatch(self, pstrItemName, ppdisp) -proc GetCurrentScriptThreadID*(self: ptr IActiveScript, pstidThread: ptr SCRIPTTHREADID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentScriptThreadID(self, pstidThread) -proc GetScriptThreadID*(self: ptr IActiveScript, dwWin32ThreadId: DWORD, pstidThread: ptr SCRIPTTHREADID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScriptThreadID(self, dwWin32ThreadId, pstidThread) -proc GetScriptThreadState*(self: ptr IActiveScript, stidThread: SCRIPTTHREADID, pstsState: ptr SCRIPTTHREADSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScriptThreadState(self, stidThread, pstsState) -proc InterruptScriptThread*(self: ptr IActiveScript, stidThread: SCRIPTTHREADID, pexcepinfo: ptr EXCEPINFO, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InterruptScriptThread(self, stidThread, pexcepinfo, dwFlags) -proc Clone*(self: ptr IActiveScript, ppscript: ptr ptr IActiveScript): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppscript) -proc InitNew*(self: ptr IActiveScriptParse32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self) -proc AddScriptlet*(self: ptr IActiveScriptParse32, pstrDefaultName: LPCOLESTR, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, pstrSubItemName: LPCOLESTR, pstrEventName: LPCOLESTR, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, pbstrName: ptr BSTR, pexcepinfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddScriptlet(self, pstrDefaultName, pstrCode, pstrItemName, pstrSubItemName, pstrEventName, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, pbstrName, pexcepinfo) -proc ParseScriptText*(self: ptr IActiveScriptParse32, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseScriptText(self, pstrCode, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, pvarResult, pexcepinfo) -proc InitNew*(self: ptr IActiveScriptParse64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitNew(self) -proc AddScriptlet*(self: ptr IActiveScriptParse64, pstrDefaultName: LPCOLESTR, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, pstrSubItemName: LPCOLESTR, pstrEventName: LPCOLESTR, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, pbstrName: ptr BSTR, pexcepinfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddScriptlet(self, pstrDefaultName, pstrCode, pstrItemName, pstrSubItemName, pstrEventName, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, pbstrName, pexcepinfo) -proc ParseScriptText*(self: ptr IActiveScriptParse64, pstrCode: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseScriptText(self, pstrCode, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, pvarResult, pexcepinfo) -proc ParseProcedureText*(self: ptr IActiveScriptParseProcedureOld32, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseProcedureText(self, pstrCode, pstrFormalParams, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp) -proc ParseProcedureText*(self: ptr IActiveScriptParseProcedureOld64, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseProcedureText(self, pstrCode, pstrFormalParams, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp) -proc ParseProcedureText*(self: ptr IActiveScriptParseProcedure32, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrProcedureName: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORD, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseProcedureText(self, pstrCode, pstrFormalParams, pstrProcedureName, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp) -proc ParseProcedureText*(self: ptr IActiveScriptParseProcedure64, pstrCode: LPCOLESTR, pstrFormalParams: LPCOLESTR, pstrProcedureName: LPCOLESTR, pstrItemName: LPCOLESTR, punkContext: ptr IUnknown, pstrDelimiter: LPCOLESTR, dwSourceContextCookie: DWORDLONG, ulStartingLineNumber: ULONG, dwFlags: DWORD, ppdisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseProcedureText(self, pstrCode, pstrFormalParams, pstrProcedureName, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp) -proc EncodeSection*(self: ptr IActiveScriptEncode, pchIn: LPCOLESTR, cchIn: DWORD, pchOut: LPOLESTR, cchOut: DWORD, pcchRet: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EncodeSection(self, pchIn, cchIn, pchOut, cchOut, pcchRet) -proc DecodeScript*(self: ptr IActiveScriptEncode, pchIn: LPCOLESTR, cchIn: DWORD, pchOut: LPOLESTR, cchOut: DWORD, pcchRet: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DecodeScript(self, pchIn, cchIn, pchOut, cchOut, pcchRet) -proc GetEncodeProgId*(self: ptr IActiveScriptEncode, pbstrOut: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEncodeProgId(self, pbstrOut) -proc EncodeScriptHostFile*(self: ptr IActiveScriptHostEncode, bstrInFile: BSTR, pbstrOutFile: ptr BSTR, cFlags: ULONG, bstrDefaultLang: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EncodeScriptHostFile(self, bstrInFile, pbstrOutFile, cFlags, bstrDefaultLang) -proc BindHandler*(self: ptr IBindEventHandler, pstrEvent: LPCOLESTR, pdisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindHandler(self, pstrEvent, pdisp) -proc GetStat*(self: ptr IActiveScriptStats, stid: DWORD, pluHi: ptr ULONG, pluLo: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStat(self, stid, pluHi, pluLo) -proc GetStatEx*(self: ptr IActiveScriptStats, guid: REFGUID, pluHi: ptr ULONG, pluLo: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStatEx(self, guid, pluHi, pluLo) -proc ResetStats*(self: ptr IActiveScriptStats): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetStats(self) -proc GetProperty*(self: ptr IActiveScriptProperty, dwProperty: DWORD, pvarIndex: ptr VARIANT, pvarValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, dwProperty, pvarIndex, pvarValue) -proc SetProperty*(self: ptr IActiveScriptProperty, dwProperty: DWORD, pvarIndex: ptr VARIANT, pvarValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProperty(self, dwProperty, pvarIndex, pvarValue) -proc FireEvent*(self: ptr ITridentEventSink, pstrEvent: LPCOLESTR, pdp: ptr DISPPARAMS, pvarRes: ptr VARIANT, pei: ptr EXCEPINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FireEvent(self, pstrEvent, pdp, pvarRes, pei) -proc CollectGarbage*(self: ptr IActiveScriptGarbageCollector, scriptgctype: SCRIPTGCTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CollectGarbage(self, scriptgctype) -proc GetSIPOID*(self: ptr IActiveScriptSIPInfo, poid_sip: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSIPOID(self, poid_sip) -proc SendScriptTraceInfo*(self: ptr IActiveScriptSiteTraceInfo, stiEventType: SCRIPTTRACEINFO, guidContextID: GUID, dwScriptContextCookie: DWORD, lScriptStatementStart: LONG, lScriptStatementEnd: LONG, dwReserved: DWORD64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendScriptTraceInfo(self, stiEventType, guidContextID, dwScriptContextCookie, lScriptStatementStart, lScriptStatementEnd, dwReserved) -proc StartScriptTracing*(self: ptr IActiveScriptTraceInfo, pSiteTraceInfo: ptr IActiveScriptSiteTraceInfo, guidContextID: GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartScriptTracing(self, pSiteTraceInfo, guidContextID) -proc StopScriptTracing*(self: ptr IActiveScriptTraceInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StopScriptTracing(self) -proc StrComp*(self: ptr IActiveScriptStringCompare, bszStr1: BSTR, bszStr2: BSTR, iRet: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StrComp(self, bszStr1, bszStr2, iRet) -proc GetNextLink*(self: ptr IOleUILinkContainerW, dwLink: DWORD): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextLink(self, dwLink) -proc SetLinkUpdateOptions*(self: ptr IOleUILinkContainerW, dwLink: DWORD, dwUpdateOpt: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLinkUpdateOptions(self, dwLink, dwUpdateOpt) -proc GetLinkUpdateOptions*(self: ptr IOleUILinkContainerW, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLinkUpdateOptions(self, dwLink, lpdwUpdateOpt) -proc SetLinkSource*(self: ptr IOleUILinkContainerW, dwLink: DWORD, lpszDisplayName: LPWSTR, lenFileName: ULONG, pchEaten: ptr ULONG, fValidateSource: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLinkSource(self, dwLink, lpszDisplayName, lenFileName, pchEaten, fValidateSource) -proc GetLinkSource*(self: ptr IOleUILinkContainerW, dwLink: DWORD, lplpszDisplayName: ptr LPWSTR, lplenFileName: ptr ULONG, lplpszFullLinkType: ptr LPWSTR, lplpszShortLinkType: ptr LPWSTR, lpfSourceAvailable: ptr WINBOOL, lpfIsSelected: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLinkSource(self, dwLink, lplpszDisplayName, lplenFileName, lplpszFullLinkType, lplpszShortLinkType, lpfSourceAvailable, lpfIsSelected) -proc OpenLinkSource*(self: ptr IOleUILinkContainerW, dwLink: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenLinkSource(self, dwLink) -proc UpdateLink*(self: ptr IOleUILinkContainerW, dwLink: DWORD, fErrorMessage: WINBOOL, fReserved: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateLink(self, dwLink, fErrorMessage, fReserved) -proc CancelLink*(self: ptr IOleUILinkContainerW, dwLink: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CancelLink(self, dwLink) -proc GetNextLink*(self: ptr IOleUILinkContainerA, dwLink: DWORD): DWORD {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextLink(self, dwLink) -proc SetLinkUpdateOptions*(self: ptr IOleUILinkContainerA, dwLink: DWORD, dwUpdateOpt: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLinkUpdateOptions(self, dwLink, dwUpdateOpt) -proc GetLinkUpdateOptions*(self: ptr IOleUILinkContainerA, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLinkUpdateOptions(self, dwLink, lpdwUpdateOpt) -proc SetLinkSource*(self: ptr IOleUILinkContainerA, dwLink: DWORD, lpszDisplayName: LPSTR, lenFileName: ULONG, pchEaten: ptr ULONG, fValidateSource: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLinkSource(self, dwLink, lpszDisplayName, lenFileName, pchEaten, fValidateSource) -proc GetLinkSource*(self: ptr IOleUILinkContainerA, dwLink: DWORD, lplpszDisplayName: ptr LPSTR, lplenFileName: ptr ULONG, lplpszFullLinkType: ptr LPSTR, lplpszShortLinkType: ptr LPSTR, lpfSourceAvailable: ptr WINBOOL, lpfIsSelected: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLinkSource(self, dwLink, lplpszDisplayName, lplenFileName, lplpszFullLinkType, lplpszShortLinkType, lpfSourceAvailable, lpfIsSelected) -proc OpenLinkSource*(self: ptr IOleUILinkContainerA, dwLink: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenLinkSource(self, dwLink) -proc UpdateLink*(self: ptr IOleUILinkContainerA, dwLink: DWORD, fErrorMessage: WINBOOL, fReserved: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateLink(self, dwLink, fErrorMessage, fReserved) -proc CancelLink*(self: ptr IOleUILinkContainerA, dwLink: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CancelLink(self, dwLink) -proc GetObjectInfo*(self: ptr IOleUIObjInfoW, dwObject: DWORD, lpdwObjSize: ptr DWORD, lplpszLabel: ptr LPWSTR, lplpszType: ptr LPWSTR, lplpszShortType: ptr LPWSTR, lplpszLocation: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectInfo(self, dwObject, lpdwObjSize, lplpszLabel, lplpszType, lplpszShortType, lplpszLocation) -proc GetConvertInfo*(self: ptr IOleUIObjInfoW, dwObject: DWORD, lpClassID: ptr CLSID, lpwFormat: ptr WORD, lpConvertDefaultClassID: ptr CLSID, lplpClsidExclude: ptr LPCLSID, lpcClsidExclude: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConvertInfo(self, dwObject, lpClassID, lpwFormat, lpConvertDefaultClassID, lplpClsidExclude, lpcClsidExclude) -proc ConvertObject*(self: ptr IOleUIObjInfoW, dwObject: DWORD, clsidNew: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConvertObject(self, dwObject, clsidNew) -proc GetViewInfo*(self: ptr IOleUIObjInfoW, dwObject: DWORD, phMetaPict: ptr HGLOBAL, pdvAspect: ptr DWORD, pnCurrentScale: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewInfo(self, dwObject, phMetaPict, pdvAspect, pnCurrentScale) -proc SetViewInfo*(self: ptr IOleUIObjInfoW, dwObject: DWORD, hMetaPict: HGLOBAL, dvAspect: DWORD, nCurrentScale: int32, bRelativeToOrig: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetViewInfo(self, dwObject, hMetaPict, dvAspect, nCurrentScale, bRelativeToOrig) -proc GetObjectInfo*(self: ptr IOleUIObjInfoA, dwObject: DWORD, lpdwObjSize: ptr DWORD, lplpszLabel: ptr LPSTR, lplpszType: ptr LPSTR, lplpszShortType: ptr LPSTR, lplpszLocation: ptr LPSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectInfo(self, dwObject, lpdwObjSize, lplpszLabel, lplpszType, lplpszShortType, lplpszLocation) -proc GetConvertInfo*(self: ptr IOleUIObjInfoA, dwObject: DWORD, lpClassID: ptr CLSID, lpwFormat: ptr WORD, lpConvertDefaultClassID: ptr CLSID, lplpClsidExclude: ptr LPCLSID, lpcClsidExclude: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConvertInfo(self, dwObject, lpClassID, lpwFormat, lpConvertDefaultClassID, lplpClsidExclude, lpcClsidExclude) -proc ConvertObject*(self: ptr IOleUIObjInfoA, dwObject: DWORD, clsidNew: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConvertObject(self, dwObject, clsidNew) -proc GetViewInfo*(self: ptr IOleUIObjInfoA, dwObject: DWORD, phMetaPict: ptr HGLOBAL, pdvAspect: ptr DWORD, pnCurrentScale: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewInfo(self, dwObject, phMetaPict, pdvAspect, pnCurrentScale) -proc SetViewInfo*(self: ptr IOleUIObjInfoA, dwObject: DWORD, hMetaPict: HGLOBAL, dvAspect: DWORD, nCurrentScale: int32, bRelativeToOrig: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetViewInfo(self, dwObject, hMetaPict, dvAspect, nCurrentScale, bRelativeToOrig) -proc GetLastUpdate*(self: ptr IOleUILinkInfoW, dwLink: DWORD, lpLastUpdate: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastUpdate(self, dwLink, lpLastUpdate) -proc GetLastUpdate*(self: ptr IOleUILinkInfoA, dwLink: DWORD, lpLastUpdate: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastUpdate(self, dwLink, lpLastUpdate) -converter winimConverterIAccessibleToIDispatch*(x: ptr IAccessible): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIAccessibleToIUnknown*(x: ptr IAccessible): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccessibleHandlerToIUnknown*(x: ptr IAccessibleHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccIdentityToIUnknown*(x: ptr IAccIdentity): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccPropServerToIUnknown*(x: ptr IAccPropServer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccPropServicesToIUnknown*(x: ptr IAccPropServices): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectSafetyToIUnknown*(x: ptr IObjectSafety): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptSiteToIUnknown*(x: ptr IActiveScriptSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptErrorToIUnknown*(x: ptr IActiveScriptError): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptError64ToIActiveScriptError*(x: ptr IActiveScriptError64): ptr IActiveScriptError = cast[ptr IActiveScriptError](x) -converter winimConverterIActiveScriptError64ToIUnknown*(x: ptr IActiveScriptError64): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptSiteWindowToIUnknown*(x: ptr IActiveScriptSiteWindow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptSiteUIControlToIUnknown*(x: ptr IActiveScriptSiteUIControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptSiteInterruptPollToIUnknown*(x: ptr IActiveScriptSiteInterruptPoll): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptToIUnknown*(x: ptr IActiveScript): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParse32ToIUnknown*(x: ptr IActiveScriptParse32): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParse64ToIUnknown*(x: ptr IActiveScriptParse64): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParseProcedureOld32ToIUnknown*(x: ptr IActiveScriptParseProcedureOld32): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParseProcedureOld64ToIUnknown*(x: ptr IActiveScriptParseProcedureOld64): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParseProcedure32ToIUnknown*(x: ptr IActiveScriptParseProcedure32): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParseProcedure64ToIUnknown*(x: ptr IActiveScriptParseProcedure64): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParseProcedure2_32ToIActiveScriptParseProcedure32*(x: ptr IActiveScriptParseProcedure2_32): ptr IActiveScriptParseProcedure32 = cast[ptr IActiveScriptParseProcedure32](x) -converter winimConverterIActiveScriptParseProcedure2_32ToIUnknown*(x: ptr IActiveScriptParseProcedure2_32): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptParseProcedure2_64ToIActiveScriptParseProcedure64*(x: ptr IActiveScriptParseProcedure2_64): ptr IActiveScriptParseProcedure64 = cast[ptr IActiveScriptParseProcedure64](x) -converter winimConverterIActiveScriptParseProcedure2_64ToIUnknown*(x: ptr IActiveScriptParseProcedure2_64): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptEncodeToIUnknown*(x: ptr IActiveScriptEncode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptHostEncodeToIUnknown*(x: ptr IActiveScriptHostEncode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBindEventHandlerToIUnknown*(x: ptr IBindEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptStatsToIUnknown*(x: ptr IActiveScriptStats): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptPropertyToIUnknown*(x: ptr IActiveScriptProperty): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITridentEventSinkToIUnknown*(x: ptr ITridentEventSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptGarbageCollectorToIUnknown*(x: ptr IActiveScriptGarbageCollector): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptSIPInfoToIUnknown*(x: ptr IActiveScriptSIPInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptSiteTraceInfoToIUnknown*(x: ptr IActiveScriptSiteTraceInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptTraceInfoToIUnknown*(x: ptr IActiveScriptTraceInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveScriptStringCompareToIUnknown*(x: ptr IActiveScriptStringCompare): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUILinkContainerWToIUnknown*(x: ptr IOleUILinkContainerW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUILinkContainerAToIUnknown*(x: ptr IOleUILinkContainerA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUIObjInfoWToIUnknown*(x: ptr IOleUIObjInfoW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUIObjInfoAToIUnknown*(x: ptr IOleUIObjInfoA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUILinkInfoWToIOleUILinkContainerW*(x: ptr IOleUILinkInfoW): ptr IOleUILinkContainerW = cast[ptr IOleUILinkContainerW](x) -converter winimConverterIOleUILinkInfoWToIUnknown*(x: ptr IOleUILinkInfoW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOleUILinkInfoAToIOleUILinkContainerA*(x: ptr IOleUILinkInfoA): ptr IOleUILinkContainerA = cast[ptr IOleUILinkContainerA](x) -converter winimConverterIOleUILinkInfoAToIUnknown*(x: ptr IOleUILinkInfoA): ptr IUnknown = cast[ptr IUnknown](x) +proc OleUIChangeSourceW*( + P1: LPOLEUICHANGESOURCEW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIChangeSourceA*( + P1: LPOLEUICHANGESOURCEA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIObjectPropertiesW*( + P1: LPOLEUIOBJECTPROPSW +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIObjectPropertiesA*( + P1: LPOLEUIOBJECTPROPSA +): UINT {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIUpdateLinksW*( + lpOleUILinkCntr: LPOLEUILINKCONTAINERW, + hwndParent: HWND, + lpszTitle: LPWSTR, + cLinks: int32, +): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc OleUIUpdateLinksA*( + lpOleUILinkCntr: LPOLEUILINKCONTAINERA, + hwndParent: HWND, + lpszTitle: LPSTR, + cLinks: int32, +): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc.} + +proc `bmp=`*(self: var PICTDESC, x: PICTDESC_UNION1_bmp) {.inline.} = + self.union1.bmp = x + +proc bmp*(self: PICTDESC): PICTDESC_UNION1_bmp {.inline.} = + self.union1.bmp + +proc bmp*(self: var PICTDESC): var PICTDESC_UNION1_bmp {.inline.} = + self.union1.bmp + +proc `wmf=`*(self: var PICTDESC, x: PICTDESC_UNION1_wmf) {.inline.} = + self.union1.wmf = x + +proc wmf*(self: PICTDESC): PICTDESC_UNION1_wmf {.inline.} = + self.union1.wmf + +proc wmf*(self: var PICTDESC): var PICTDESC_UNION1_wmf {.inline.} = + self.union1.wmf + +proc `icon=`*(self: var PICTDESC, x: PICTDESC_UNION1_icon) {.inline.} = + self.union1.icon = x + +proc icon*(self: PICTDESC): PICTDESC_UNION1_icon {.inline.} = + self.union1.icon + +proc icon*(self: var PICTDESC): var PICTDESC_UNION1_icon {.inline.} = + self.union1.icon + +proc `emf=`*(self: var PICTDESC, x: PICTDESC_UNION1_emf) {.inline.} = + self.union1.emf = x + +proc emf*(self: PICTDESC): PICTDESC_UNION1_emf {.inline.} = + self.union1.emf + +proc emf*(self: var PICTDESC): var PICTDESC_UNION1_emf {.inline.} = + self.union1.emf + +proc get_accParent*( + self: ptr IAccessible, ppdispParent: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accParent(self, ppdispParent) + +proc get_accChildCount*( + self: ptr IAccessible, pcountChildren: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accChildCount(self, pcountChildren) + +proc get_accChild*( + self: ptr IAccessible, varChildID: VARIANT, ppdispChild: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accChild(self, varChildID, ppdispChild) + +proc get_accName*( + self: ptr IAccessible, varID: VARIANT, pszName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accName(self, varID, pszName) + +proc get_accValue*( + self: ptr IAccessible, varID: VARIANT, pszValue: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accValue(self, varID, pszValue) + +proc get_accDescription*( + self: ptr IAccessible, varID: VARIANT, pszDescription: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accDescription(self, varID, pszDescription) + +proc get_accRole*( + self: ptr IAccessible, varID: VARIANT, pvarRole: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accRole(self, varID, pvarRole) + +proc get_accState*( + self: ptr IAccessible, varID: VARIANT, pvarState: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accState(self, varID, pvarState) + +proc get_accHelp*( + self: ptr IAccessible, varID: VARIANT, pszHelp: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accHelp(self, varID, pszHelp) + +proc get_accHelpTopic*( + self: ptr IAccessible, pszHelpFile: ptr BSTR, varID: VARIANT, pidTopic: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accHelpTopic(self, pszHelpFile, varID, pidTopic) + +proc get_accKeyboardShortcut*( + self: ptr IAccessible, varID: VARIANT, pszKeyboardShortcut: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accKeyboardShortcut(self, varID, pszKeyboardShortcut) + +proc get_accFocus*( + self: ptr IAccessible, pvarID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accFocus(self, pvarID) + +proc get_accSelection*( + self: ptr IAccessible, pvarID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accSelection(self, pvarID) + +proc get_accDefaultAction*( + self: ptr IAccessible, varID: VARIANT, pszDefaultAction: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_accDefaultAction(self, varID, pszDefaultAction) + +proc accSelect*( + self: ptr IAccessible, flagsSelect: LONG, varID: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.accSelect(self, flagsSelect, varID) + +proc accLocation*( + self: ptr IAccessible, + pxLeft: ptr LONG, + pyTop: ptr LONG, + pcxWidth: ptr LONG, + pcyHeight: ptr LONG, + varID: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.accLocation(self, pxLeft, pyTop, pcxWidth, pcyHeight, varID) + +proc accNavigate*( + self: ptr IAccessible, navDir: LONG, varStart: VARIANT, pvarEnd: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.accNavigate(self, navDir, varStart, pvarEnd) + +proc accHitTest*( + self: ptr IAccessible, xLeft: LONG, yTop: LONG, pvarID: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.accHitTest(self, xLeft, yTop, pvarID) + +proc accDoDefaultAction*( + self: ptr IAccessible, varID: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.accDoDefaultAction(self, varID) + +proc put_accName*( + self: ptr IAccessible, varID: VARIANT, pszName: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accName(self, varID, pszName) + +proc put_accValue*( + self: ptr IAccessible, varID: VARIANT, pszValue: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_accValue(self, varID, pszValue) + +proc AccessibleObjectFromID*( + self: ptr IAccessibleHandler, + hwnd: LONG, + lObjectID: LONG, + pIAccessible: ptr LPACCESSIBLE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AccessibleObjectFromID(self, hwnd, lObjectID, pIAccessible) + +proc GetIdentityString*( + self: ptr IAccIdentity, + dwIDChild: DWORD, + ppIDString: ptr ptr BYTE, + pdwIDStringLen: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIdentityString(self, dwIDChild, ppIDString, pdwIDStringLen) + +proc GetPropValue*( + self: ptr IAccPropServer, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + idProp: MSAAPROPID, + pvarValue: ptr VARIANT, + pfHasProp: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropValue( + self, pIDString, dwIDStringLen, idProp, pvarValue, pfHasProp + ) + +proc SetPropValue*( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + idProp: MSAAPROPID, + `var`: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPropValue(self, pIDString, dwIDStringLen, idProp, `var`) + +proc SetPropServer*( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + pServer: ptr IAccPropServer, + annoScope: AnnoScope, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPropServer( + self, pIDString, dwIDStringLen, paProps, cProps, pServer, annoScope + ) + +proc ClearProps*( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearProps(self, pIDString, dwIDStringLen, paProps, cProps) + +proc SetHwndProp*( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + idProp: MSAAPROPID, + `var`: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHwndProp(self, hwnd, idObject, idChild, idProp, `var`) + +proc SetHwndPropStr*( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + idProp: MSAAPROPID, + str: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHwndPropStr(self, hwnd, idObject, idChild, idProp, str) + +proc SetHwndPropServer*( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + pServer: ptr IAccPropServer, + annoScope: AnnoScope, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHwndPropServer( + self, hwnd, idObject, idChild, paProps, cProps, pServer, annoScope + ) + +proc ClearHwndProps*( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearHwndProps(self, hwnd, idObject, idChild, paProps, cProps) + +proc ComposeHwndIdentityString*( + self: ptr IAccPropServices, + hwnd: HWND, + idObject: DWORD, + idChild: DWORD, + ppIDString: ptr ptr BYTE, + pdwIDStringLen: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ComposeHwndIdentityString( + self, hwnd, idObject, idChild, ppIDString, pdwIDStringLen + ) + +proc DecomposeHwndIdentityString*( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + phwnd: ptr HWND, + pidObject: ptr DWORD, + pidChild: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DecomposeHwndIdentityString( + self, pIDString, dwIDStringLen, phwnd, pidObject, pidChild + ) + +proc SetHmenuProp*( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + idProp: MSAAPROPID, + `var`: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHmenuProp(self, hmenu, idChild, idProp, `var`) + +proc SetHmenuPropStr*( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + idProp: MSAAPROPID, + str: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHmenuPropStr(self, hmenu, idChild, idProp, str) + +proc SetHmenuPropServer*( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, + pServer: ptr IAccPropServer, + annoScope: AnnoScope, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHmenuPropServer( + self, hmenu, idChild, paProps, cProps, pServer, annoScope + ) + +proc ClearHmenuProps*( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + paProps: ptr MSAAPROPID, + cProps: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearHmenuProps(self, hmenu, idChild, paProps, cProps) + +proc ComposeHmenuIdentityString*( + self: ptr IAccPropServices, + hmenu: HMENU, + idChild: DWORD, + ppIDString: ptr ptr BYTE, + pdwIDStringLen: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ComposeHmenuIdentityString( + self, hmenu, idChild, ppIDString, pdwIDStringLen + ) + +proc DecomposeHmenuIdentityString*( + self: ptr IAccPropServices, + pIDString: ptr BYTE, + dwIDStringLen: DWORD, + phmenu: ptr HMENU, + pidChild: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DecomposeHmenuIdentityString( + self, pIDString, dwIDStringLen, phmenu, pidChild + ) + +proc GetInterfaceSafetyOptions*( + self: ptr IObjectSafety, + riid: REFIID, + pdwSupportedOptions: ptr DWORD, + pdwEnabledOptions: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInterfaceSafetyOptions( + self, riid, pdwSupportedOptions, pdwEnabledOptions + ) + +proc SetInterfaceSafetyOptions*( + self: ptr IObjectSafety, + riid: REFIID, + dwOptionSetMask: DWORD, + dwEnabledOptions: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetInterfaceSafetyOptions(self, riid, dwOptionSetMask, dwEnabledOptions) + +proc GetLCID*( + self: ptr IActiveScriptSite, plcid: ptr LCID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLCID(self, plcid) + +proc GetItemInfo*( + self: ptr IActiveScriptSite, + pstrName: LPCOLESTR, + dwReturnMask: DWORD, + ppiunkItem: ptr ptr IUnknown, + ppti: ptr ptr ITypeInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemInfo(self, pstrName, dwReturnMask, ppiunkItem, ppti) + +proc GetDocVersionString*( + self: ptr IActiveScriptSite, pbstrVersion: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDocVersionString(self, pbstrVersion) + +proc OnScriptTerminate*( + self: ptr IActiveScriptSite, pvarResult: ptr VARIANT, pexcepinfo: ptr EXCEPINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnScriptTerminate(self, pvarResult, pexcepinfo) + +proc OnStateChange*( + self: ptr IActiveScriptSite, ssScriptState: TSCRIPTSTATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStateChange(self, ssScriptState) + +proc OnScriptError*( + self: ptr IActiveScriptSite, pscripterror: ptr IActiveScriptError +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnScriptError(self, pscripterror) + +proc OnEnterScript*(self: ptr IActiveScriptSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnEnterScript(self) + +proc OnLeaveScript*(self: ptr IActiveScriptSite): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnLeaveScript(self) + +proc GetExceptionInfo*( + self: ptr IActiveScriptError, pexcepinfo: ptr EXCEPINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExceptionInfo(self, pexcepinfo) + +proc GetSourcePosition*( + self: ptr IActiveScriptError, + pdwSourceContext: ptr DWORD, + pulLineNumber: ptr ULONG, + plCharacterPosition: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSourcePosition( + self, pdwSourceContext, pulLineNumber, plCharacterPosition + ) + +proc GetSourceLineText*( + self: ptr IActiveScriptError, pbstrSourceLine: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSourceLineText(self, pbstrSourceLine) + +proc GetSourcePosition64*( + self: ptr IActiveScriptError64, + pdwSourceContext: ptr DWORDLONG, + pulLineNumber: ptr ULONG, + plCharacterPosition: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSourcePosition64( + self, pdwSourceContext, pulLineNumber, plCharacterPosition + ) + +proc GetWindow*( + self: ptr IActiveScriptSiteWindow, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindow(self, phwnd) + +proc EnableModeless*( + self: ptr IActiveScriptSiteWindow, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModeless(self, fEnable) + +proc GetUIBehavior*( + self: ptr IActiveScriptSiteUIControl, + UicItem: SCRIPTUICITEM, + pUicHandling: ptr SCRIPTUICHANDLING, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUIBehavior(self, UicItem, pUicHandling) + +proc QueryContinue*( + self: ptr IActiveScriptSiteInterruptPoll +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryContinue(self) + +proc SetScriptSite*( + self: ptr IActiveScript, pass: ptr IActiveScriptSite +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScriptSite(self, pass) + +proc GetScriptSite*( + self: ptr IActiveScript, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScriptSite(self, riid, ppvObject) + +proc SetScriptState*( + self: ptr IActiveScript, ss: TSCRIPTSTATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScriptState(self, ss) + +proc GetScriptState*( + self: ptr IActiveScript, pssState: ptr TSCRIPTSTATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScriptState(self, pssState) + +proc Close*(self: ptr IActiveScript): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self) + +proc AddNamedItem*( + self: ptr IActiveScript, pstrName: LPCOLESTR, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddNamedItem(self, pstrName, dwFlags) + +proc AddTypeLib*( + self: ptr IActiveScript, + rguidTypeLib: REFGUID, + dwMajor: DWORD, + dwMinor: DWORD, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddTypeLib(self, rguidTypeLib, dwMajor, dwMinor, dwFlags) + +proc GetScriptDispatch*( + self: ptr IActiveScript, pstrItemName: LPCOLESTR, ppdisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScriptDispatch(self, pstrItemName, ppdisp) + +proc GetCurrentScriptThreadID*( + self: ptr IActiveScript, pstidThread: ptr SCRIPTTHREADID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentScriptThreadID(self, pstidThread) + +proc GetScriptThreadID*( + self: ptr IActiveScript, dwWin32ThreadId: DWORD, pstidThread: ptr SCRIPTTHREADID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScriptThreadID(self, dwWin32ThreadId, pstidThread) + +proc GetScriptThreadState*( + self: ptr IActiveScript, + stidThread: SCRIPTTHREADID, + pstsState: ptr SCRIPTTHREADSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScriptThreadState(self, stidThread, pstsState) + +proc InterruptScriptThread*( + self: ptr IActiveScript, + stidThread: SCRIPTTHREADID, + pexcepinfo: ptr EXCEPINFO, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InterruptScriptThread(self, stidThread, pexcepinfo, dwFlags) + +proc Clone*( + self: ptr IActiveScript, ppscript: ptr ptr IActiveScript +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppscript) + +proc InitNew*(self: ptr IActiveScriptParse32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self) + +proc AddScriptlet*( + self: ptr IActiveScriptParse32, + pstrDefaultName: LPCOLESTR, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + pstrSubItemName: LPCOLESTR, + pstrEventName: LPCOLESTR, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pbstrName: ptr BSTR, + pexcepinfo: ptr EXCEPINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddScriptlet( + self, pstrDefaultName, pstrCode, pstrItemName, pstrSubItemName, pstrEventName, + pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, pbstrName, + pexcepinfo, + ) + +proc ParseScriptText*( + self: ptr IActiveScriptParse32, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pvarResult: ptr VARIANT, + pexcepinfo: ptr EXCEPINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseScriptText( + self, pstrCode, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, + ulStartingLineNumber, dwFlags, pvarResult, pexcepinfo, + ) + +proc InitNew*(self: ptr IActiveScriptParse64): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitNew(self) + +proc AddScriptlet*( + self: ptr IActiveScriptParse64, + pstrDefaultName: LPCOLESTR, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + pstrSubItemName: LPCOLESTR, + pstrEventName: LPCOLESTR, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pbstrName: ptr BSTR, + pexcepinfo: ptr EXCEPINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddScriptlet( + self, pstrDefaultName, pstrCode, pstrItemName, pstrSubItemName, pstrEventName, + pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, pbstrName, + pexcepinfo, + ) + +proc ParseScriptText*( + self: ptr IActiveScriptParse64, + pstrCode: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + pvarResult: ptr VARIANT, + pexcepinfo: ptr EXCEPINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseScriptText( + self, pstrCode, pstrItemName, punkContext, pstrDelimiter, dwSourceContextCookie, + ulStartingLineNumber, dwFlags, pvarResult, pexcepinfo, + ) + +proc ParseProcedureText*( + self: ptr IActiveScriptParseProcedureOld32, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseProcedureText( + self, pstrCode, pstrFormalParams, pstrItemName, punkContext, pstrDelimiter, + dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp, + ) + +proc ParseProcedureText*( + self: ptr IActiveScriptParseProcedureOld64, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseProcedureText( + self, pstrCode, pstrFormalParams, pstrItemName, punkContext, pstrDelimiter, + dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp, + ) + +proc ParseProcedureText*( + self: ptr IActiveScriptParseProcedure32, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrProcedureName: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORD, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseProcedureText( + self, pstrCode, pstrFormalParams, pstrProcedureName, pstrItemName, punkContext, + pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp, + ) + +proc ParseProcedureText*( + self: ptr IActiveScriptParseProcedure64, + pstrCode: LPCOLESTR, + pstrFormalParams: LPCOLESTR, + pstrProcedureName: LPCOLESTR, + pstrItemName: LPCOLESTR, + punkContext: ptr IUnknown, + pstrDelimiter: LPCOLESTR, + dwSourceContextCookie: DWORDLONG, + ulStartingLineNumber: ULONG, + dwFlags: DWORD, + ppdisp: ptr ptr IDispatch, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseProcedureText( + self, pstrCode, pstrFormalParams, pstrProcedureName, pstrItemName, punkContext, + pstrDelimiter, dwSourceContextCookie, ulStartingLineNumber, dwFlags, ppdisp, + ) + +proc EncodeSection*( + self: ptr IActiveScriptEncode, + pchIn: LPCOLESTR, + cchIn: DWORD, + pchOut: LPOLESTR, + cchOut: DWORD, + pcchRet: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EncodeSection(self, pchIn, cchIn, pchOut, cchOut, pcchRet) + +proc DecodeScript*( + self: ptr IActiveScriptEncode, + pchIn: LPCOLESTR, + cchIn: DWORD, + pchOut: LPOLESTR, + cchOut: DWORD, + pcchRet: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DecodeScript(self, pchIn, cchIn, pchOut, cchOut, pcchRet) + +proc GetEncodeProgId*( + self: ptr IActiveScriptEncode, pbstrOut: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEncodeProgId(self, pbstrOut) + +proc EncodeScriptHostFile*( + self: ptr IActiveScriptHostEncode, + bstrInFile: BSTR, + pbstrOutFile: ptr BSTR, + cFlags: ULONG, + bstrDefaultLang: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EncodeScriptHostFile( + self, bstrInFile, pbstrOutFile, cFlags, bstrDefaultLang + ) + +proc BindHandler*( + self: ptr IBindEventHandler, pstrEvent: LPCOLESTR, pdisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindHandler(self, pstrEvent, pdisp) + +proc GetStat*( + self: ptr IActiveScriptStats, stid: DWORD, pluHi: ptr ULONG, pluLo: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStat(self, stid, pluHi, pluLo) + +proc GetStatEx*( + self: ptr IActiveScriptStats, guid: REFGUID, pluHi: ptr ULONG, pluLo: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStatEx(self, guid, pluHi, pluLo) + +proc ResetStats*(self: ptr IActiveScriptStats): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetStats(self) + +proc GetProperty*( + self: ptr IActiveScriptProperty, + dwProperty: DWORD, + pvarIndex: ptr VARIANT, + pvarValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, dwProperty, pvarIndex, pvarValue) + +proc SetProperty*( + self: ptr IActiveScriptProperty, + dwProperty: DWORD, + pvarIndex: ptr VARIANT, + pvarValue: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProperty(self, dwProperty, pvarIndex, pvarValue) + +proc FireEvent*( + self: ptr ITridentEventSink, + pstrEvent: LPCOLESTR, + pdp: ptr DISPPARAMS, + pvarRes: ptr VARIANT, + pei: ptr EXCEPINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FireEvent(self, pstrEvent, pdp, pvarRes, pei) + +proc CollectGarbage*( + self: ptr IActiveScriptGarbageCollector, scriptgctype: SCRIPTGCTYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CollectGarbage(self, scriptgctype) + +proc GetSIPOID*( + self: ptr IActiveScriptSIPInfo, poid_sip: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSIPOID(self, poid_sip) + +proc SendScriptTraceInfo*( + self: ptr IActiveScriptSiteTraceInfo, + stiEventType: SCRIPTTRACEINFO, + guidContextID: GUID, + dwScriptContextCookie: DWORD, + lScriptStatementStart: LONG, + lScriptStatementEnd: LONG, + dwReserved: DWORD64, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendScriptTraceInfo( + self, stiEventType, guidContextID, dwScriptContextCookie, lScriptStatementStart, + lScriptStatementEnd, dwReserved, + ) + +proc StartScriptTracing*( + self: ptr IActiveScriptTraceInfo, + pSiteTraceInfo: ptr IActiveScriptSiteTraceInfo, + guidContextID: GUID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartScriptTracing(self, pSiteTraceInfo, guidContextID) + +proc StopScriptTracing*(self: ptr IActiveScriptTraceInfo): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StopScriptTracing(self) + +proc StrComp*( + self: ptr IActiveScriptStringCompare, bszStr1: BSTR, bszStr2: BSTR, iRet: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StrComp(self, bszStr1, bszStr2, iRet) + +proc GetNextLink*( + self: ptr IOleUILinkContainerW, dwLink: DWORD +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextLink(self, dwLink) + +proc SetLinkUpdateOptions*( + self: ptr IOleUILinkContainerW, dwLink: DWORD, dwUpdateOpt: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLinkUpdateOptions(self, dwLink, dwUpdateOpt) + +proc GetLinkUpdateOptions*( + self: ptr IOleUILinkContainerW, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLinkUpdateOptions(self, dwLink, lpdwUpdateOpt) + +proc SetLinkSource*( + self: ptr IOleUILinkContainerW, + dwLink: DWORD, + lpszDisplayName: LPWSTR, + lenFileName: ULONG, + pchEaten: ptr ULONG, + fValidateSource: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLinkSource( + self, dwLink, lpszDisplayName, lenFileName, pchEaten, fValidateSource + ) + +proc GetLinkSource*( + self: ptr IOleUILinkContainerW, + dwLink: DWORD, + lplpszDisplayName: ptr LPWSTR, + lplenFileName: ptr ULONG, + lplpszFullLinkType: ptr LPWSTR, + lplpszShortLinkType: ptr LPWSTR, + lpfSourceAvailable: ptr WINBOOL, + lpfIsSelected: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLinkSource( + self, dwLink, lplpszDisplayName, lplenFileName, lplpszFullLinkType, + lplpszShortLinkType, lpfSourceAvailable, lpfIsSelected, + ) + +proc OpenLinkSource*( + self: ptr IOleUILinkContainerW, dwLink: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenLinkSource(self, dwLink) + +proc UpdateLink*( + self: ptr IOleUILinkContainerW, + dwLink: DWORD, + fErrorMessage: WINBOOL, + fReserved: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateLink(self, dwLink, fErrorMessage, fReserved) + +proc CancelLink*( + self: ptr IOleUILinkContainerW, dwLink: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CancelLink(self, dwLink) + +proc GetNextLink*( + self: ptr IOleUILinkContainerA, dwLink: DWORD +): DWORD {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextLink(self, dwLink) + +proc SetLinkUpdateOptions*( + self: ptr IOleUILinkContainerA, dwLink: DWORD, dwUpdateOpt: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLinkUpdateOptions(self, dwLink, dwUpdateOpt) + +proc GetLinkUpdateOptions*( + self: ptr IOleUILinkContainerA, dwLink: DWORD, lpdwUpdateOpt: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLinkUpdateOptions(self, dwLink, lpdwUpdateOpt) + +proc SetLinkSource*( + self: ptr IOleUILinkContainerA, + dwLink: DWORD, + lpszDisplayName: LPSTR, + lenFileName: ULONG, + pchEaten: ptr ULONG, + fValidateSource: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLinkSource( + self, dwLink, lpszDisplayName, lenFileName, pchEaten, fValidateSource + ) + +proc GetLinkSource*( + self: ptr IOleUILinkContainerA, + dwLink: DWORD, + lplpszDisplayName: ptr LPSTR, + lplenFileName: ptr ULONG, + lplpszFullLinkType: ptr LPSTR, + lplpszShortLinkType: ptr LPSTR, + lpfSourceAvailable: ptr WINBOOL, + lpfIsSelected: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLinkSource( + self, dwLink, lplpszDisplayName, lplenFileName, lplpszFullLinkType, + lplpszShortLinkType, lpfSourceAvailable, lpfIsSelected, + ) + +proc OpenLinkSource*( + self: ptr IOleUILinkContainerA, dwLink: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenLinkSource(self, dwLink) + +proc UpdateLink*( + self: ptr IOleUILinkContainerA, + dwLink: DWORD, + fErrorMessage: WINBOOL, + fReserved: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateLink(self, dwLink, fErrorMessage, fReserved) + +proc CancelLink*( + self: ptr IOleUILinkContainerA, dwLink: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CancelLink(self, dwLink) + +proc GetObjectInfo*( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + lpdwObjSize: ptr DWORD, + lplpszLabel: ptr LPWSTR, + lplpszType: ptr LPWSTR, + lplpszShortType: ptr LPWSTR, + lplpszLocation: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectInfo( + self, dwObject, lpdwObjSize, lplpszLabel, lplpszType, lplpszShortType, + lplpszLocation, + ) + +proc GetConvertInfo*( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + lpClassID: ptr CLSID, + lpwFormat: ptr WORD, + lpConvertDefaultClassID: ptr CLSID, + lplpClsidExclude: ptr LPCLSID, + lpcClsidExclude: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConvertInfo( + self, dwObject, lpClassID, lpwFormat, lpConvertDefaultClassID, lplpClsidExclude, + lpcClsidExclude, + ) + +proc ConvertObject*( + self: ptr IOleUIObjInfoW, dwObject: DWORD, clsidNew: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConvertObject(self, dwObject, clsidNew) + +proc GetViewInfo*( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + phMetaPict: ptr HGLOBAL, + pdvAspect: ptr DWORD, + pnCurrentScale: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewInfo(self, dwObject, phMetaPict, pdvAspect, pnCurrentScale) + +proc SetViewInfo*( + self: ptr IOleUIObjInfoW, + dwObject: DWORD, + hMetaPict: HGLOBAL, + dvAspect: DWORD, + nCurrentScale: int32, + bRelativeToOrig: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetViewInfo( + self, dwObject, hMetaPict, dvAspect, nCurrentScale, bRelativeToOrig + ) + +proc GetObjectInfo*( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + lpdwObjSize: ptr DWORD, + lplpszLabel: ptr LPSTR, + lplpszType: ptr LPSTR, + lplpszShortType: ptr LPSTR, + lplpszLocation: ptr LPSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectInfo( + self, dwObject, lpdwObjSize, lplpszLabel, lplpszType, lplpszShortType, + lplpszLocation, + ) + +proc GetConvertInfo*( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + lpClassID: ptr CLSID, + lpwFormat: ptr WORD, + lpConvertDefaultClassID: ptr CLSID, + lplpClsidExclude: ptr LPCLSID, + lpcClsidExclude: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConvertInfo( + self, dwObject, lpClassID, lpwFormat, lpConvertDefaultClassID, lplpClsidExclude, + lpcClsidExclude, + ) + +proc ConvertObject*( + self: ptr IOleUIObjInfoA, dwObject: DWORD, clsidNew: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConvertObject(self, dwObject, clsidNew) + +proc GetViewInfo*( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + phMetaPict: ptr HGLOBAL, + pdvAspect: ptr DWORD, + pnCurrentScale: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewInfo(self, dwObject, phMetaPict, pdvAspect, pnCurrentScale) + +proc SetViewInfo*( + self: ptr IOleUIObjInfoA, + dwObject: DWORD, + hMetaPict: HGLOBAL, + dvAspect: DWORD, + nCurrentScale: int32, + bRelativeToOrig: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetViewInfo( + self, dwObject, hMetaPict, dvAspect, nCurrentScale, bRelativeToOrig + ) + +proc GetLastUpdate*( + self: ptr IOleUILinkInfoW, dwLink: DWORD, lpLastUpdate: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastUpdate(self, dwLink, lpLastUpdate) + +proc GetLastUpdate*( + self: ptr IOleUILinkInfoA, dwLink: DWORD, lpLastUpdate: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastUpdate(self, dwLink, lpLastUpdate) + +converter winimConverterIAccessibleToIDispatch*(x: ptr IAccessible): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIAccessibleToIUnknown*(x: ptr IAccessible): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccessibleHandlerToIUnknown*( + x: ptr IAccessibleHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccIdentityToIUnknown*(x: ptr IAccIdentity): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccPropServerToIUnknown*(x: ptr IAccPropServer): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccPropServicesToIUnknown*( + x: ptr IAccPropServices +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectSafetyToIUnknown*(x: ptr IObjectSafety): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptSiteToIUnknown*( + x: ptr IActiveScriptSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptErrorToIUnknown*( + x: ptr IActiveScriptError +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptError64ToIActiveScriptError*( + x: ptr IActiveScriptError64 +): ptr IActiveScriptError = + cast[ptr IActiveScriptError](x) + +converter winimConverterIActiveScriptError64ToIUnknown*( + x: ptr IActiveScriptError64 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptSiteWindowToIUnknown*( + x: ptr IActiveScriptSiteWindow +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptSiteUIControlToIUnknown*( + x: ptr IActiveScriptSiteUIControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptSiteInterruptPollToIUnknown*( + x: ptr IActiveScriptSiteInterruptPoll +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptToIUnknown*(x: ptr IActiveScript): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParse32ToIUnknown*( + x: ptr IActiveScriptParse32 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParse64ToIUnknown*( + x: ptr IActiveScriptParse64 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParseProcedureOld32ToIUnknown*( + x: ptr IActiveScriptParseProcedureOld32 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParseProcedureOld64ToIUnknown*( + x: ptr IActiveScriptParseProcedureOld64 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParseProcedure32ToIUnknown*( + x: ptr IActiveScriptParseProcedure32 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParseProcedure64ToIUnknown*( + x: ptr IActiveScriptParseProcedure64 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParseProcedure2_32ToIActiveScriptParseProcedure32*( + x: ptr IActiveScriptParseProcedure2_32 +): ptr IActiveScriptParseProcedure32 = + cast[ptr IActiveScriptParseProcedure32](x) + +converter winimConverterIActiveScriptParseProcedure2_32ToIUnknown*( + x: ptr IActiveScriptParseProcedure2_32 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptParseProcedure2_64ToIActiveScriptParseProcedure64*( + x: ptr IActiveScriptParseProcedure2_64 +): ptr IActiveScriptParseProcedure64 = + cast[ptr IActiveScriptParseProcedure64](x) + +converter winimConverterIActiveScriptParseProcedure2_64ToIUnknown*( + x: ptr IActiveScriptParseProcedure2_64 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptEncodeToIUnknown*( + x: ptr IActiveScriptEncode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptHostEncodeToIUnknown*( + x: ptr IActiveScriptHostEncode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBindEventHandlerToIUnknown*( + x: ptr IBindEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptStatsToIUnknown*( + x: ptr IActiveScriptStats +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptPropertyToIUnknown*( + x: ptr IActiveScriptProperty +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITridentEventSinkToIUnknown*( + x: ptr ITridentEventSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptGarbageCollectorToIUnknown*( + x: ptr IActiveScriptGarbageCollector +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptSIPInfoToIUnknown*( + x: ptr IActiveScriptSIPInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptSiteTraceInfoToIUnknown*( + x: ptr IActiveScriptSiteTraceInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptTraceInfoToIUnknown*( + x: ptr IActiveScriptTraceInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveScriptStringCompareToIUnknown*( + x: ptr IActiveScriptStringCompare +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUILinkContainerWToIUnknown*( + x: ptr IOleUILinkContainerW +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUILinkContainerAToIUnknown*( + x: ptr IOleUILinkContainerA +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUIObjInfoWToIUnknown*(x: ptr IOleUIObjInfoW): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUIObjInfoAToIUnknown*(x: ptr IOleUIObjInfoA): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUILinkInfoWToIOleUILinkContainerW*( + x: ptr IOleUILinkInfoW +): ptr IOleUILinkContainerW = + cast[ptr IOleUILinkContainerW](x) + +converter winimConverterIOleUILinkInfoWToIUnknown*( + x: ptr IOleUILinkInfoW +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOleUILinkInfoAToIOleUILinkContainerA*( + x: ptr IOleUILinkInfoA +): ptr IOleUILinkContainerA = + cast[ptr IOleUILinkContainerA](x) + +converter winimConverterIOleUILinkInfoAToIUnknown*( + x: ptr IOleUILinkInfoA +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type TOLEUIINSERTOBJECT* = TOLEUIINSERTOBJECTW @@ -1842,22 +3845,77 @@ OLEUIOBJECTPROPS* = OLEUIOBJECTPROPSW POLEUIOBJECTPROPS* = POLEUIOBJECTPROPSW LPOLEUIOBJECTPROPS* = LPOLEUIOBJECTPROPSW + const IDD_SERVERNOTREG* = IDD_SERVERNOTREGW IDD_LINKTYPECHANGED* = IDD_LINKTYPECHANGEDW - proc GetRoleText*(lRole: DWORD, lpszRole: LPWSTR, cchRoleMax: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetRoleTextW".} - proc GetStateText*(lStateBit: DWORD, lpszState: LPWSTR, cchState: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetStateTextW".} - proc CreateStdAccessibleProxy*(hwnd: HWND, pClassName: LPCWSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc: "CreateStdAccessibleProxyW".} - proc OleUIAddVerbMenu*(lpOleObj: LPOLEOBJECT, lpszShortType: LPCWSTR, hMenu: HMENU, uPos: UINT, uIDVerbMin: UINT, uIDVerbMax: UINT, bAddConvert: WINBOOL, idConvert: UINT, lphMenu: ptr HMENU): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIAddVerbMenuW".} - proc OleUIInsertObject*(P1: LPOLEUIINSERTOBJECTW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIInsertObjectW".} - proc OleUIPasteSpecial*(P1: LPOLEUIPASTESPECIALW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIPasteSpecialW".} - proc OleUIEditLinks*(P1: LPOLEUIEDITLINKSW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIEditLinksW".} - proc OleUIChangeIcon*(P1: LPOLEUICHANGEICONW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeIconW".} - proc OleUIConvert*(P1: LPOLEUICONVERTW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIConvertW".} - proc OleUIBusy*(P1: LPOLEUIBUSYW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIBusyW".} - proc OleUIChangeSource*(P1: LPOLEUICHANGESOURCEW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeSourceW".} - proc OleUIObjectProperties*(P1: LPOLEUIOBJECTPROPSW): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIObjectPropertiesW".} - proc OleUIUpdateLinks*(lpOleUILinkCntr: LPOLEUILINKCONTAINERW, hwndParent: HWND, lpszTitle: LPWSTR, cLinks: int32): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIUpdateLinksW".} + proc GetRoleText*( + lRole: DWORD, lpszRole: LPWSTR, cchRoleMax: UINT + ): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetRoleTextW".} + + proc GetStateText*( + lStateBit: DWORD, lpszState: LPWSTR, cchState: UINT + ): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetStateTextW".} + + proc CreateStdAccessibleProxy*( + hwnd: HWND, + pClassName: LPCWSTR, + idObject: LONG, + riid: REFIID, + ppvObject: ptr pointer, + ): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc: "CreateStdAccessibleProxyW".} + + proc OleUIAddVerbMenu*( + lpOleObj: LPOLEOBJECT, + lpszShortType: LPCWSTR, + hMenu: HMENU, + uPos: UINT, + uIDVerbMin: UINT, + uIDVerbMax: UINT, + bAddConvert: WINBOOL, + idConvert: UINT, + lphMenu: ptr HMENU, + ): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIAddVerbMenuW".} + + proc OleUIInsertObject*( + P1: LPOLEUIINSERTOBJECTW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIInsertObjectW".} + + proc OleUIPasteSpecial*( + P1: LPOLEUIPASTESPECIALW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIPasteSpecialW".} + + proc OleUIEditLinks*( + P1: LPOLEUIEDITLINKSW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIEditLinksW".} + + proc OleUIChangeIcon*( + P1: LPOLEUICHANGEICONW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeIconW".} + + proc OleUIConvert*( + P1: LPOLEUICONVERTW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIConvertW".} + + proc OleUIBusy*( + P1: LPOLEUIBUSYW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIBusyW".} + + proc OleUIChangeSource*( + P1: LPOLEUICHANGESOURCEW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeSourceW".} + + proc OleUIObjectProperties*( + P1: LPOLEUIOBJECTPROPSW + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIObjectPropertiesW".} + + proc OleUIUpdateLinks*( + lpOleUILinkCntr: LPOLEUILINKCONTAINERW, + hwndParent: HWND, + lpszTitle: LPWSTR, + cLinks: int32, + ): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIUpdateLinksW".} + when winimAnsi: type TOLEUIINSERTOBJECT* = TOLEUIINSERTOBJECTA @@ -1902,22 +3960,73 @@ OLEUIOBJECTPROPS* = OLEUIOBJECTPROPSA POLEUIOBJECTPROPS* = POLEUIOBJECTPROPSA LPOLEUIOBJECTPROPS* = LPOLEUIOBJECTPROPSA + const IDD_SERVERNOTREG* = IDD_SERVERNOTREGA IDD_LINKTYPECHANGED* = IDD_LINKTYPECHANGEDA - proc GetRoleText*(lRole: DWORD, lpszRole: LPSTR, cchRoleMax: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetRoleTextA".} - proc GetStateText*(lStateBit: DWORD, lpszState: LPSTR, cchState: UINT): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetStateTextA".} - proc CreateStdAccessibleProxy*(hwnd: HWND, pClassName: LPCSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc: "CreateStdAccessibleProxyA".} - proc OleUIAddVerbMenu*(lpOleObj: LPOLEOBJECT, lpszShortType: LPCSTR, hMenu: HMENU, uPos: UINT, uIDVerbMin: UINT, uIDVerbMax: UINT, bAddConvert: WINBOOL, idConvert: UINT, lphMenu: ptr HMENU): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIAddVerbMenuA".} - proc OleUIInsertObject*(P1: LPOLEUIINSERTOBJECTA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIInsertObjectA".} - proc OleUIPasteSpecial*(P1: LPOLEUIPASTESPECIALA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIPasteSpecialA".} - proc OleUIEditLinks*(P1: LPOLEUIEDITLINKSA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIEditLinksA".} - proc OleUIChangeIcon*(P1: LPOLEUICHANGEICONA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeIconA".} - proc OleUIConvert*(P1: LPOLEUICONVERTA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIConvertA".} - proc OleUIBusy*(P1: LPOLEUIBUSYA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIBusyA".} - proc OleUIChangeSource*(P1: LPOLEUICHANGESOURCEA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeSourceA".} - proc OleUIObjectProperties*(P1: LPOLEUIOBJECTPROPSA): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIObjectPropertiesA".} - proc OleUIUpdateLinks*(lpOleUILinkCntr: LPOLEUILINKCONTAINERA, hwndParent: HWND, lpszTitle: LPSTR, cLinks: int32): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIUpdateLinksA".} + proc GetRoleText*( + lRole: DWORD, lpszRole: LPSTR, cchRoleMax: UINT + ): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetRoleTextA".} + + proc GetStateText*( + lStateBit: DWORD, lpszState: LPSTR, cchState: UINT + ): UINT {.winapi, stdcall, dynlib: "oleacc", importc: "GetStateTextA".} + + proc CreateStdAccessibleProxy*( + hwnd: HWND, pClassName: LPCSTR, idObject: LONG, riid: REFIID, ppvObject: ptr pointer + ): HRESULT {.winapi, stdcall, dynlib: "oleacc", importc: "CreateStdAccessibleProxyA".} + + proc OleUIAddVerbMenu*( + lpOleObj: LPOLEOBJECT, + lpszShortType: LPCSTR, + hMenu: HMENU, + uPos: UINT, + uIDVerbMin: UINT, + uIDVerbMax: UINT, + bAddConvert: WINBOOL, + idConvert: UINT, + lphMenu: ptr HMENU, + ): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIAddVerbMenuA".} + + proc OleUIInsertObject*( + P1: LPOLEUIINSERTOBJECTA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIInsertObjectA".} + + proc OleUIPasteSpecial*( + P1: LPOLEUIPASTESPECIALA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIPasteSpecialA".} + + proc OleUIEditLinks*( + P1: LPOLEUIEDITLINKSA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIEditLinksA".} + + proc OleUIChangeIcon*( + P1: LPOLEUICHANGEICONA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeIconA".} + + proc OleUIConvert*( + P1: LPOLEUICONVERTA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIConvertA".} + + proc OleUIBusy*( + P1: LPOLEUIBUSYA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIBusyA".} + + proc OleUIChangeSource*( + P1: LPOLEUICHANGESOURCEA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIChangeSourceA".} + + proc OleUIObjectProperties*( + P1: LPOLEUIOBJECTPROPSA + ): UINT {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIObjectPropertiesA".} + + proc OleUIUpdateLinks*( + lpOleUILinkCntr: LPOLEUILINKCONTAINERA, + hwndParent: HWND, + lpszTitle: LPSTR, + cLinks: int32, + ): WINBOOL {.winapi, stdcall, dynlib: "oledlg", importc: "OleUIUpdateLinksA".} + when winimCpu64: const IID_IActiveScriptParse* = IID_IActiveScriptParse64 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/odbc.nim --- a/semicongine/thirdparty/winim/winim/inc/odbc.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/odbc.nim Thu Aug 22 18:32:21 2024 +0700 @@ -42,22 +42,20 @@ HSTMT* = HANDLE TSQLDOUBLE* = float64 TSQLFLOAT* = float64 + when winimCpu64: - type - TSQLULEN* = UINT64 + type TSQLULEN* = UINT64 when winimCpu32: - type - TSQLULEN* = TSQLUINTEGER + type TSQLULEN* = TSQLUINTEGER type TSQLROWCOUNT* = TSQLULEN TSQLROWSETSIZE* = TSQLULEN TSQLTRANSID* = TSQLULEN + when winimCpu64: - type - TSQLLEN* = INT64 + type TSQLLEN* = INT64 when winimCpu32: - type - TSQLLEN* = TSQLINTEGER + type TSQLLEN* = TSQLINTEGER type TSQLROWOFFSET* = TSQLLEN TSQLREAL* = float32 @@ -75,11 +73,13 @@ year*: TSQLSMALLINT month*: TSQLUSMALLINT day*: TSQLUSMALLINT + TSQL_DATE_STRUCT* = DATE_STRUCT TIME_STRUCT* {.pure.} = object hour*: TSQLUSMALLINT minute*: TSQLUSMALLINT second*: TSQLUSMALLINT + TSQL_TIME_STRUCT* = TIME_STRUCT TIMESTAMP_STRUCT* {.pure.} = object year*: TSQLSMALLINT @@ -89,6 +89,7 @@ minute*: TSQLUSMALLINT second*: TSQLUSMALLINT fraction*: TSQLUINTEGER + TSQL_TIMESTAMP_STRUCT* = TIMESTAMP_STRUCT TSQLBIGINT* = ODBCINT64 TSQLGUID* = GUID @@ -96,16 +97,20 @@ ODBC_VS_ARGS_UNION1* {.pure, union.} = object wszArg*: ptr WCHAR szArg*: ptr CHAR + ODBC_VS_ARGS_UNION2* {.pure, union.} = object wszCorrelation*: ptr WCHAR szCorrelation*: ptr CHAR + ODBC_VS_ARGS* {.pure.} = object pguidEvent*: ptr GUID dwFlags*: DWORD union1*: ODBC_VS_ARGS_UNION1 union2*: ODBC_VS_ARGS_UNION2 RetCode*: RETCODE + PODBC_VS_ARGS* = ptr ODBC_VS_ARGS + const ODBCVER* = 0x0351 SQL_IS_YEAR* = 1 @@ -668,19 +673,19 @@ SQL_CODE_HOUR_TO_MINUTE* = 11 SQL_CODE_HOUR_TO_SECOND* = 12 SQL_CODE_MINUTE_TO_SECOND* = 13 - SQL_INTERVAL_YEAR* = 100+SQL_CODE_YEAR - SQL_INTERVAL_MONTH* = 100+SQL_CODE_MONTH - SQL_INTERVAL_DAY* = 100+SQL_CODE_DAY - SQL_INTERVAL_HOUR* = 100+SQL_CODE_HOUR - SQL_INTERVAL_MINUTE* = 100+SQL_CODE_MINUTE - SQL_INTERVAL_SECOND* = 100+SQL_CODE_SECOND - SQL_INTERVAL_YEAR_TO_MONTH* = 100+SQL_CODE_YEAR_TO_MONTH - SQL_INTERVAL_DAY_TO_HOUR* = 100+SQL_CODE_DAY_TO_HOUR - SQL_INTERVAL_DAY_TO_MINUTE* = 100+SQL_CODE_DAY_TO_MINUTE - SQL_INTERVAL_DAY_TO_SECOND* = 100+SQL_CODE_DAY_TO_SECOND - SQL_INTERVAL_HOUR_TO_MINUTE* = 100+SQL_CODE_HOUR_TO_MINUTE - SQL_INTERVAL_HOUR_TO_SECOND* = 100+SQL_CODE_HOUR_TO_SECOND - SQL_INTERVAL_MINUTE_TO_SECOND* = 100+SQL_CODE_MINUTE_TO_SECOND + SQL_INTERVAL_YEAR* = 100 + SQL_CODE_YEAR + SQL_INTERVAL_MONTH* = 100 + SQL_CODE_MONTH + SQL_INTERVAL_DAY* = 100 + SQL_CODE_DAY + SQL_INTERVAL_HOUR* = 100 + SQL_CODE_HOUR + SQL_INTERVAL_MINUTE* = 100 + SQL_CODE_MINUTE + SQL_INTERVAL_SECOND* = 100 + SQL_CODE_SECOND + SQL_INTERVAL_YEAR_TO_MONTH* = 100 + SQL_CODE_YEAR_TO_MONTH + SQL_INTERVAL_DAY_TO_HOUR* = 100 + SQL_CODE_DAY_TO_HOUR + SQL_INTERVAL_DAY_TO_MINUTE* = 100 + SQL_CODE_DAY_TO_MINUTE + SQL_INTERVAL_DAY_TO_SECOND* = 100 + SQL_CODE_DAY_TO_SECOND + SQL_INTERVAL_HOUR_TO_MINUTE* = 100 + SQL_CODE_HOUR_TO_MINUTE + SQL_INTERVAL_HOUR_TO_SECOND* = 100 + SQL_CODE_HOUR_TO_SECOND + SQL_INTERVAL_MINUTE_TO_SECOND* = 100 + SQL_CODE_MINUTE_TO_SECOND SQL_WCHAR* = -8 SQL_UNICODE* = SQL_WCHAR SQL_WVARCHAR* = -9 @@ -718,15 +723,15 @@ SQL_C_INTERVAL_MINUTE_TO_SECOND* = SQL_INTERVAL_MINUTE_TO_SECOND SQL_C_BINARY* = SQL_BINARY SQL_C_BIT* = SQL_BIT - SQL_C_SBIGINT* = SQL_BIGINT+SQL_SIGNED_OFFSET - SQL_C_UBIGINT* = SQL_BIGINT+SQL_UNSIGNED_OFFSET + SQL_C_SBIGINT* = SQL_BIGINT + SQL_SIGNED_OFFSET + SQL_C_UBIGINT* = SQL_BIGINT + SQL_UNSIGNED_OFFSET SQL_C_TINYINT* = SQL_TINYINT - SQL_C_SLONG* = SQL_C_LONG+SQL_SIGNED_OFFSET - SQL_C_SSHORT* = SQL_C_SHORT+SQL_SIGNED_OFFSET - SQL_C_STINYINT* = SQL_TINYINT+SQL_SIGNED_OFFSET - SQL_C_ULONG* = SQL_C_LONG+SQL_UNSIGNED_OFFSET - SQL_C_USHORT* = SQL_C_SHORT+SQL_UNSIGNED_OFFSET - SQL_C_UTINYINT* = SQL_TINYINT+SQL_UNSIGNED_OFFSET + SQL_C_SLONG* = SQL_C_LONG + SQL_SIGNED_OFFSET + SQL_C_SSHORT* = SQL_C_SHORT + SQL_SIGNED_OFFSET + SQL_C_STINYINT* = SQL_TINYINT + SQL_SIGNED_OFFSET + SQL_C_ULONG* = SQL_C_LONG + SQL_UNSIGNED_OFFSET + SQL_C_USHORT* = SQL_C_SHORT + SQL_UNSIGNED_OFFSET + SQL_C_UTINYINT* = SQL_TINYINT + SQL_UNSIGNED_OFFSET SQL_C_GUID* = SQL_GUID SQL_TYPE_NULL* = 0 SQL_C_VARBOOKMARK* = SQL_C_BINARY @@ -1100,7 +1105,9 @@ SQL_CA2_MAX_ROWS_DELETE* = 0x00000200 SQL_CA2_MAX_ROWS_UPDATE* = 0x00000400 SQL_CA2_MAX_ROWS_CATALOG* = 0x00000800 - SQL_CA2_MAX_ROWS_AFFECTS_ALL* = SQL_CA2_MAX_ROWS_SELECT or SQL_CA2_MAX_ROWS_INSERT or SQL_CA2_MAX_ROWS_DELETE or SQL_CA2_MAX_ROWS_UPDATE or SQL_CA2_MAX_ROWS_CATALOG + SQL_CA2_MAX_ROWS_AFFECTS_ALL* = + SQL_CA2_MAX_ROWS_SELECT or SQL_CA2_MAX_ROWS_INSERT or SQL_CA2_MAX_ROWS_DELETE or + SQL_CA2_MAX_ROWS_UPDATE or SQL_CA2_MAX_ROWS_CATALOG SQL_CA2_CRC_EXACT* = 0x00001000 SQL_CA2_CRC_APPROXIMATE* = 0x00002000 SQL_CA2_SIMULATE_NON_UNIQUE* = 0x00004000 @@ -1542,329 +1549,2151 @@ ODBC_ERROR_REMOVE_DSN_FAILED* = 20 ODBC_ERROR_OUT_OF_MEM* = 21 ODBC_ERROR_OUTPUT_STRING_TRUNCATED* = 22 - SQL_ODBC_KEYWORDS* = "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,ASC,ASSERTION,AT,AUTHORIZATION,AVG,BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,DISTINCT,DOMAIN,DOUBLE,DROP,ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,EXISTS,EXTERNAL,EXTRACT,FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,MATCH,MAX,MIN,MINUTE,MODULE,MONTH,NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWSSCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,SUBSTRING,SUM,SYSTEM_USER,TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,YEAR,ZONE" + SQL_ODBC_KEYWORDS* = + "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,ASC,ASSERTION,AT,AUTHORIZATION,AVG,BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,DISTINCT,DOMAIN,DOUBLE,DROP,ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,EXISTS,EXTERNAL,EXTRACT,FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,MATCH,MAX,MIN,MINUTE,MODULE,MONTH,NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWSSCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,SUBSTRING,SUM,SYSTEM_USER,TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,YEAR,ZONE" type TSQL_YEAR_MONTH_STRUCT* {.pure.} = object year*: TSQLUINTEGER month*: TSQLUINTEGER + TSQL_DAY_SECOND_STRUCT* {.pure.} = object day*: TSQLUINTEGER hour*: TSQLUINTEGER minute*: TSQLUINTEGER second*: TSQLUINTEGER fraction*: TSQLUINTEGER + SQL_INTERVAL_STRUCT_intval* {.pure, union.} = object year_month*: TSQL_YEAR_MONTH_STRUCT day_second*: TSQL_DAY_SECOND_STRUCT + TSQL_INTERVAL_STRUCT* {.pure.} = object interval_type*: TSQLINTERVAL interval_sign*: TSQLSMALLINT intval*: SQL_INTERVAL_STRUCT_intval + TSQL_NUMERIC_STRUCT* {.pure.} = object precision*: TSQLCHAR scale*: TSQLSCHAR sign*: TSQLCHAR val*: array[SQL_MAX_NUMERIC_LEN, TSQLCHAR] -proc SQLAllocConnect*(EnvironmentHandle: TSQLHENV, ConnectionHandle: ptr TSQLHDBC): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLAllocEnv*(EnvironmentHandle: ptr TSQLHENV): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLAllocHandle*(HandleType: TSQLSMALLINT, InputHandle: TSQLHANDLE, OutputHandle: ptr TSQLHANDLE): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLAllocStmt*(ConnectionHandle: TSQLHDBC, StatementHandle: ptr TSQLHSTMT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLBindCol*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, TargetType: TSQLSMALLINT, TargetValue: TSQLPOINTER, BufferLength: TSQLLEN, StrLen_or_Ind: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLBindParam*(StatementHandle: TSQLHSTMT, ParameterNumber: TSQLUSMALLINT, ValueType: TSQLSMALLINT, ParameterType: TSQLSMALLINT, LengthPrecision: TSQLULEN, ParameterScale: TSQLSMALLINT, ParameterValue: TSQLPOINTER, StrLen_or_Ind: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLCancel*(StatementHandle: TSQLHSTMT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLCloseCursor*(StatementHandle: TSQLHSTMT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLCopyDesc*(SourceDescHandle: TSQLHDESC, TargetDescHandle: TSQLHDESC): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDisconnect*(ConnectionHandle: TSQLHDBC): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLEndTran*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, CompletionType: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLExecute*(StatementHandle: TSQLHSTMT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLFetch*(StatementHandle: TSQLHSTMT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLFetchScroll*(StatementHandle: TSQLHSTMT, FetchOrientation: TSQLSMALLINT, FetchOffset: TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLFreeConnect*(ConnectionHandle: TSQLHDBC): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLFreeEnv*(EnvironmentHandle: TSQLHENV): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLFreeHandle*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLFreeStmt*(StatementHandle: TSQLHSTMT, Option: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetData*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, TargetType: TSQLSMALLINT, TargetValue: TSQLPOINTER, BufferLength: TSQLLEN, StrLen_or_Ind: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetEnvAttr*(EnvironmentHandle: TSQLHENV, Attribute: TSQLINTEGER, Value: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLength: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetFunctions*(ConnectionHandle: TSQLHDBC, FunctionId: TSQLUSMALLINT, Supported: ptr TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetStmtOption*(StatementHandle: TSQLHSTMT, Option: TSQLUSMALLINT, Value: TSQLPOINTER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLNumResultCols*(StatementHandle: TSQLHSTMT, ColumnCount: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLParamData*(StatementHandle: TSQLHSTMT, Value: ptr TSQLPOINTER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLPutData*(StatementHandle: TSQLHSTMT, Data: TSQLPOINTER, StrLen_or_Ind: TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLRowCount*(StatementHandle: TSQLHSTMT, RowCount: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetDescRec*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, Type: TSQLSMALLINT, SubType: TSQLSMALLINT, Length: TSQLLEN, Precision: TSQLSMALLINT, Scale: TSQLSMALLINT, Data: TSQLPOINTER, StringLength: ptr TSQLLEN, Indicator: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetEnvAttr*(EnvironmentHandle: TSQLHENV, Attribute: TSQLINTEGER, Value: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetParam*(StatementHandle: TSQLHSTMT, ParameterNumber: TSQLUSMALLINT, ValueType: TSQLSMALLINT, ParameterType: TSQLSMALLINT, LengthPrecision: TSQLULEN, ParameterScale: TSQLSMALLINT, ParameterValue: TSQLPOINTER, StrLen_or_Ind: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetStmtOption*(StatementHandle: TSQLHSTMT, Option: TSQLUSMALLINT, Value: TSQLULEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLTransact*(EnvironmentHandle: TSQLHENV, ConnectionHandle: TSQLHDBC, CompletionType: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLBulkOperations*(StatementHandle: TSQLHSTMT, Operation: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDescribeParam*(StatementHandle: TSQLHSTMT, ParameterNumber: TSQLUSMALLINT, DataTypePtr: ptr TSQLSMALLINT, ParameterSizePtr: ptr TSQLULEN, DecimalDigitsPtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLExtendedFetch*(StatementHandle: TSQLHSTMT, FetchOrientation: TSQLUSMALLINT, FetchOffset: TSQLLEN, RowCountPtr: ptr TSQLULEN, RowStatusArray: ptr TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLMoreResults*(StatementHandle: TSQLHSTMT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLNumParams*(StatementHandle: TSQLHSTMT, ParameterCountPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLParamOptions*(hstmt: TSQLHSTMT, crow: TSQLULEN, pirow: ptr TSQLULEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLAllocConnect*( + EnvironmentHandle: TSQLHENV, ConnectionHandle: ptr TSQLHDBC +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLAllocEnv*( + EnvironmentHandle: ptr TSQLHENV +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLAllocHandle*( + HandleType: TSQLSMALLINT, InputHandle: TSQLHANDLE, OutputHandle: ptr TSQLHANDLE +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLAllocStmt*( + ConnectionHandle: TSQLHDBC, StatementHandle: ptr TSQLHSTMT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLBindCol*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + TargetType: TSQLSMALLINT, + TargetValue: TSQLPOINTER, + BufferLength: TSQLLEN, + StrLen_or_Ind: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLBindParam*( + StatementHandle: TSQLHSTMT, + ParameterNumber: TSQLUSMALLINT, + ValueType: TSQLSMALLINT, + ParameterType: TSQLSMALLINT, + LengthPrecision: TSQLULEN, + ParameterScale: TSQLSMALLINT, + ParameterValue: TSQLPOINTER, + StrLen_or_Ind: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLCancel*( + StatementHandle: TSQLHSTMT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLCloseCursor*( + StatementHandle: TSQLHSTMT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLCopyDesc*( + SourceDescHandle: TSQLHDESC, TargetDescHandle: TSQLHDESC +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDisconnect*( + ConnectionHandle: TSQLHDBC +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLEndTran*( + HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, CompletionType: TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLExecute*( + StatementHandle: TSQLHSTMT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLFetch*( + StatementHandle: TSQLHSTMT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLFetchScroll*( + StatementHandle: TSQLHSTMT, FetchOrientation: TSQLSMALLINT, FetchOffset: TSQLLEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLFreeConnect*( + ConnectionHandle: TSQLHDBC +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLFreeEnv*( + EnvironmentHandle: TSQLHENV +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLFreeHandle*( + HandleType: TSQLSMALLINT, Handle: TSQLHANDLE +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLFreeStmt*( + StatementHandle: TSQLHSTMT, Option: TSQLUSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetData*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + TargetType: TSQLSMALLINT, + TargetValue: TSQLPOINTER, + BufferLength: TSQLLEN, + StrLen_or_Ind: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetEnvAttr*( + EnvironmentHandle: TSQLHENV, + Attribute: TSQLINTEGER, + Value: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLength: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetFunctions*( + ConnectionHandle: TSQLHDBC, FunctionId: TSQLUSMALLINT, Supported: ptr TSQLUSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetStmtOption*( + StatementHandle: TSQLHSTMT, Option: TSQLUSMALLINT, Value: TSQLPOINTER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLNumResultCols*( + StatementHandle: TSQLHSTMT, ColumnCount: ptr TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLParamData*( + StatementHandle: TSQLHSTMT, Value: ptr TSQLPOINTER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLPutData*( + StatementHandle: TSQLHSTMT, Data: TSQLPOINTER, StrLen_or_Ind: TSQLLEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLRowCount*( + StatementHandle: TSQLHSTMT, RowCount: ptr TSQLLEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetDescRec*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + Type: TSQLSMALLINT, + SubType: TSQLSMALLINT, + Length: TSQLLEN, + Precision: TSQLSMALLINT, + Scale: TSQLSMALLINT, + Data: TSQLPOINTER, + StringLength: ptr TSQLLEN, + Indicator: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetEnvAttr*( + EnvironmentHandle: TSQLHENV, + Attribute: TSQLINTEGER, + Value: TSQLPOINTER, + StringLength: TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetParam*( + StatementHandle: TSQLHSTMT, + ParameterNumber: TSQLUSMALLINT, + ValueType: TSQLSMALLINT, + ParameterType: TSQLSMALLINT, + LengthPrecision: TSQLULEN, + ParameterScale: TSQLSMALLINT, + ParameterValue: TSQLPOINTER, + StrLen_or_Ind: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetStmtOption*( + StatementHandle: TSQLHSTMT, Option: TSQLUSMALLINT, Value: TSQLULEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLTransact*( + EnvironmentHandle: TSQLHENV, ConnectionHandle: TSQLHDBC, CompletionType: TSQLUSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLBulkOperations*( + StatementHandle: TSQLHSTMT, Operation: TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDescribeParam*( + StatementHandle: TSQLHSTMT, + ParameterNumber: TSQLUSMALLINT, + DataTypePtr: ptr TSQLSMALLINT, + ParameterSizePtr: ptr TSQLULEN, + DecimalDigitsPtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLExtendedFetch*( + StatementHandle: TSQLHSTMT, + FetchOrientation: TSQLUSMALLINT, + FetchOffset: TSQLLEN, + RowCountPtr: ptr TSQLULEN, + RowStatusArray: ptr TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLMoreResults*( + StatementHandle: TSQLHSTMT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLNumParams*( + StatementHandle: TSQLHSTMT, ParameterCountPtr: ptr TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLParamOptions*( + hstmt: TSQLHSTMT, crow: TSQLULEN, pirow: ptr TSQLULEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + when winimCpu64: - type - TSQLSETPOSIROW* = UINT64 + type TSQLSETPOSIROW* = UINT64 when winimCpu32: - type - TSQLSETPOSIROW* = TSQLUSMALLINT -proc SQLSetPos*(StatementHandle: TSQLHSTMT, RowNumber: TSQLSETPOSIROW, Operation: TSQLUSMALLINT, LockType: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLBindParameter*(StatementHandle: TSQLHSTMT, ParameterNumber: TSQLUSMALLINT, InputOutputType: TSQLSMALLINT, ValueType: TSQLSMALLINT, ParameterType: TSQLSMALLINT, ColumnSize: TSQLULEN, DecimalDigits: TSQLSMALLINT, ParameterValuePtr: TSQLPOINTER, BufferLength: TSQLLEN, StrLen_or_IndPtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLAllocHandleStd*(fHandleType: TSQLSMALLINT, hInput: TSQLHANDLE, phOutput: ptr TSQLHANDLE): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetScrollOptions*(hstmt: TSQLHSTMT, fConcurrency: TSQLUSMALLINT, crowKeyset: TSQLLEN, crowRowset: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc TraceOpenLogFile*(P1: LPWSTR, P2: LPWSTR, P3: DWORD): RETCODE {.winapi, stdcall, dynlib: "odbctrac", importc.} + type TSQLSETPOSIROW* = TSQLUSMALLINT +proc SQLSetPos*( + StatementHandle: TSQLHSTMT, + RowNumber: TSQLSETPOSIROW, + Operation: TSQLUSMALLINT, + LockType: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLBindParameter*( + StatementHandle: TSQLHSTMT, + ParameterNumber: TSQLUSMALLINT, + InputOutputType: TSQLSMALLINT, + ValueType: TSQLSMALLINT, + ParameterType: TSQLSMALLINT, + ColumnSize: TSQLULEN, + DecimalDigits: TSQLSMALLINT, + ParameterValuePtr: TSQLPOINTER, + BufferLength: TSQLLEN, + StrLen_or_IndPtr: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLAllocHandleStd*( + fHandleType: TSQLSMALLINT, hInput: TSQLHANDLE, phOutput: ptr TSQLHANDLE +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetScrollOptions*( + hstmt: TSQLHSTMT, + fConcurrency: TSQLUSMALLINT, + crowKeyset: TSQLLEN, + crowRowset: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc TraceOpenLogFile*( + P1: LPWSTR, P2: LPWSTR, P3: DWORD +): RETCODE {.winapi, stdcall, dynlib: "odbctrac", importc.} + proc TraceCloseLogFile*(): RETCODE {.winapi, stdcall, dynlib: "odbctrac", importc.} -proc TraceReturn*(P1: RETCODE, P2: RETCODE): VOID {.winapi, stdcall, dynlib: "odbctrac", importc.} +proc TraceReturn*( + P1: RETCODE, P2: RETCODE +): VOID {.winapi, stdcall, dynlib: "odbctrac", importc.} + proc TraceVersion*(): DWORD {.winapi, stdcall, dynlib: "odbctrac", importc.} -proc TraceVSControl*(P1: DWORD): RETCODE {.winapi, stdcall, dynlib: "odbctrac", importc.} -proc ODBCSetTryWaitValue*(dwValue: DWORD): WINBOOL {.winapi, stdcall, dynlib: "odbc32", importc.} +proc TraceVSControl*( + P1: DWORD +): RETCODE {.winapi, stdcall, dynlib: "odbctrac", importc.} + +proc ODBCSetTryWaitValue*( + dwValue: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbc32", importc.} + proc ODBCGetTryWaitValue*(): DWORD {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColAttributeW*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColAttributesW*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLConnectW*(ConnectionHandle: TSQLHDBC, ServerName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, UserName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, Authentication: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDescribeColW*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, ColumnName: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT, DataTypePtr: ptr TSQLSMALLINT, ColumnSizePtr: ptr TSQLULEN, DecimalDigitsPtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLErrorW*(EnvironmentHandle: TSQLHENV, ConnectionHandle: TSQLHDBC, StatementHandle: TSQLHSTMT, Sqlstate: ptr TSQLWCHAR, NativeError: ptr TSQLINTEGER, MessageText: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, TextLength: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLExecDirectW*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetConnectAttrW*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetCursorNameW*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetDescFieldW*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, Value: TSQLPOINTER, BufferLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDescFieldW*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDescRecW*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, Name: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, TypePtr: ptr TSQLSMALLINT, SubTypePtr: ptr TSQLSMALLINT, LengthPtr: ptr TSQLLEN, PrecisionPtr: ptr TSQLSMALLINT, ScalePtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDiagFieldW*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, DiagIdentifier: TSQLSMALLINT, DiagInfoPtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDiagRecW*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, SQLState: ptr TSQLWCHAR, NativeErrorPtr: ptr TSQLINTEGER, MessageText: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, TextLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLPrepareW*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetConnectAttrW*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetCursorNameW*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLWCHAR, NameLength: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColumnsW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetConnectOptionW*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetInfoW*(ConnectionHandle: TSQLHDBC, InfoType: TSQLUSMALLINT, InfoValuePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetTypeInfoW*(StatementHandle: TSQLHSTMT, DataType: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetConnectOptionW*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSpecialColumnsW*(StatementHandle: TSQLHSTMT, IdentifierType: TSQLUSMALLINT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, Scope: TSQLUSMALLINT, Nullable: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLStatisticsW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, Unique: TSQLUSMALLINT, Reserved: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLTablesW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, TableType: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDataSourcesW*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, ServerName: ptr TSQLWCHAR, BufferLength1: TSQLSMALLINT, NameLength1Ptr: ptr TSQLSMALLINT, Description: ptr TSQLWCHAR, BufferLength2: TSQLSMALLINT, NameLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDriverConnectW*(ConnectionHandle: TSQLHDBC, WindowHandle: TSQLHWND, InConnectionString: ptr TSQLWCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT, DriverCompletion: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLBrowseConnectW*(ConnectionHandle: TSQLHDBC, InConnectionString: ptr TSQLWCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColumnPrivilegesW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetStmtAttrW*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetStmtAttrW*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLForeignKeysW*(StatementHandle: TSQLHSTMT, PKCatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, PKSchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, PKTableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, FKCatalogName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT, FKSchemaName: ptr TSQLWCHAR, NameLength5: TSQLSMALLINT, FKTableName: ptr TSQLWCHAR, NameLength6: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLNativeSqlW*(ConnectionHandle: TSQLHDBC, InStatementText: ptr TSQLWCHAR, TextLength1: TSQLINTEGER, OutStatementText: ptr TSQLWCHAR, BufferLength: TSQLINTEGER, TextLength2Ptr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLPrimaryKeysW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLProcedureColumnsW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLProceduresW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLTablePrivilegesW*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDriversW*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, DriverDescription: ptr TSQLWCHAR, BufferLength1: TSQLSMALLINT, DescriptionLengthPtr: ptr TSQLSMALLINT, DriverAttributes: ptr TSQLWCHAR, BufferLength2: TSQLSMALLINT, AttributesLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColAttributeA*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColAttributesA*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLConnectA*(ConnectionHandle: TSQLHDBC, ServerName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, UserName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, Authentication: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDescribeColA*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, ColumnName: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT, DataTypePtr: ptr TSQLSMALLINT, ColumnSizePtr: ptr TSQLUINTEGER, DecimalDigitsPtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLErrorA*(EnvironmentHandle: TSQLHENV, ConnectionHandle: TSQLHDBC, StatementHandle: TSQLHSTMT, Sqlstate: ptr TSQLCHAR, NativeError: ptr TSQLINTEGER, MessageText: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, TextLength: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLExecDirectA*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetConnectAttrA*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetCursorNameA*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDescFieldA*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDescRecA*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, Name: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, TypePtr: ptr TSQLSMALLINT, SubTypePtr: ptr TSQLSMALLINT, LengthPtr: ptr TSQLINTEGER, PrecisionPtr: ptr TSQLSMALLINT, ScalePtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDiagFieldA*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, DiagIdentifier: TSQLSMALLINT, DiagInfoPtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetDiagRecA*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, SQLState: ptr TSQLCHAR, NativeErrorPtr: ptr TSQLINTEGER, MessageText: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, TextLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetStmtAttrA*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetTypeInfoA*(StatementHandle: TSQLHSTMT, DataTyoe: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLPrepareA*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetConnectAttrA*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetCursorNameA*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLCHAR, NameLength: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColumnsA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetConnectOptionA*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLGetInfoA*(ConnectionHandle: TSQLHDBC, InfoType: TSQLUSMALLINT, InfoValuePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSetConnectOptionA*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLSpecialColumnsA*(StatementHandle: TSQLHSTMT, IdentifierType: TSQLUSMALLINT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, Scope: TSQLUSMALLINT, Nullable: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLStatisticsA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, Unique: TSQLUSMALLINT, Reserved: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLTablesA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, TableType: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDataSourcesA*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, ServerName: ptr TSQLCHAR, BufferLength1: TSQLSMALLINT, NameLength1Ptr: ptr TSQLSMALLINT, Description: ptr TSQLCHAR, BufferLength2: TSQLSMALLINT, NameLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDriverConnectA*(ConnectionHandle: TSQLHDBC, WindowHandle: TSQLHWND, InConnectionString: ptr TSQLCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT, DriverCompletion: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLBrowseConnectA*(ConnectionHandle: TSQLHDBC, InConnectionString: ptr TSQLCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLColumnPrivilegesA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLForeignKeysA*(StatementHandle: TSQLHSTMT, PKCatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, PKSchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, PKTableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, FKCatalogName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT, FKSchemaName: ptr TSQLCHAR, NameLength5: TSQLSMALLINT, FKTableName: ptr TSQLCHAR, NameLength6: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLNativeSqlA*(ConnectionHandle: TSQLHDBC, InStatementText: ptr TSQLCHAR, TextLength1: TSQLINTEGER, OutStatementText: ptr TSQLCHAR, BufferLength: TSQLINTEGER, TextLength2Ptr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLPrimaryKeysA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLProcedureColumnsA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLProceduresA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLTablePrivilegesA*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLDriversA*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, DriverDescription: ptr TSQLCHAR, BufferLength1: TSQLSMALLINT, DescriptionLengthPtr: ptr TSQLSMALLINT, DriverAttributes: ptr TSQLCHAR, BufferLength2: TSQLSMALLINT, AttributesLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} -proc SQLInstallODBC*(hwndParent: HWND, lpszInfFile: LPCSTR, lpszSrcPath: LPCSTR, lpszDrivers: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLManageDataSources*(hwndParent: HWND): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLCreateDataSource*(hwndParent: HWND, lpszDSN: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetTranslator*(hwnd: HWND, lpszName: LPSTR, cbNameMax: WORD, pcbNameOut: ptr WORD, lpszPath: LPSTR, cbPathMax: WORD, pcbPathOut: ptr WORD, pvOption: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallDriver*(lpszInfFile: LPCSTR, lpszDriver: LPCSTR, lpszPath: LPSTR, cbPathMax: WORD, pcbPathOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallDriverManager*(lpszPath: LPSTR, cbPathMax: WORD, pcbPathOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetInstalledDrivers*(lpszBuf: LPSTR, cbBufMax: WORD, pcbBufOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetAvailableDrivers*(lpszInfFile: LPCSTR, lpszBuf: LPSTR, cbBufMax: WORD, pcbBufOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLConfigDataSource*(hwndParent: HWND, fRequest: WORD, lpszDriver: LPCSTR, lpszAttributes: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveDefaultDataSource*(): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLWriteDSNToIni*(lpszDSN: LPCSTR, lpszDriver: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveDSNFromIni*(lpszDSN: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLValidDSN*(lpszDSN: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLWritePrivateProfileString*(lpszSection: LPCSTR, lpszEntry: LPCSTR, lpszString: LPCSTR, lpszFilename: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetPrivateProfileString*(lpszSection: LPCSTR, lpszEntry: LPCSTR, lpszDefault: LPCSTR, lpszRetBuffer: LPSTR, cbRetBuffer: int32, lpszFilename: LPCSTR): int32 {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveDriverManager*(lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallTranslator*(lpszInfFile: LPCSTR, lpszTranslator: LPCSTR, lpszPathIn: LPCSTR, lpszPathOut: LPSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveTranslator*(lpszTranslator: LPCSTR, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveDriver*(lpszDriver: LPCSTR, fRemoveDSN: WINBOOL, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLConfigDriver*(hwndParent: HWND, fRequest: WORD, lpszDriver: LPCSTR, lpszArgs: LPCSTR, lpszMsg: LPSTR, cbMsgMax: WORD, pcbMsgOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallerError*(iError: WORD, pfErrorCode: ptr DWORD, lpszErrorMsg: LPSTR, cbErrorMsgMax: WORD, pcbErrorMsg: ptr WORD): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLPostInstallerError*(dwErrorCode: DWORD, lpszErrMsg: LPCSTR): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLWriteFileDSN*(lpszFileName: LPCSTR, lpszAppName: LPCSTR, lpszKeyName: LPCSTR, lpszString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLReadFileDSN*(lpszFileName: LPCSTR, lpszAppName: LPCSTR, lpszKeyName: LPCSTR, lpszString: LPSTR, cbString: WORD, pcbString: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallDriverEx*(lpszDriver: LPCSTR, lpszPathIn: LPCSTR, lpszPathOut: LPSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallTranslatorEx*(lpszTranslator: LPCSTR, lpszPathIn: LPCSTR, lpszPathOut: LPSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetConfigMode*(pwConfigMode: ptr UWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLSetConfigMode*(wConfigMode: UWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallODBCW*(hwndParent: HWND, lpszInfFile: LPCWSTR, lpszSrcPath: LPCWSTR, lpszDrivers: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLCreateDataSourceW*(hwndParent: HWND, lpszDSN: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetTranslatorW*(hwnd: HWND, lpszName: LPWSTR, cbNameMax: WORD, pcbNameOut: ptr WORD, lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD, pvOption: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallDriverW*(lpszInfFile: LPCWSTR, lpszDriver: LPCWSTR, lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallDriverManagerW*(lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetInstalledDriversW*(lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetAvailableDriversW*(lpszInfFile: LPCWSTR, lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLConfigDataSourceW*(hwndParent: HWND, fRequest: WORD, lpszDriver: LPCWSTR, lpszAttributes: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLWriteDSNToIniW*(lpszDSN: LPCWSTR, lpszDriver: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveDSNFromIniW*(lpszDSN: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLValidDSNW*(lpszDSN: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLWritePrivateProfileStringW*(lpszSection: LPCWSTR, lpszEntry: LPCWSTR, lpszString: LPCWSTR, lpszFilename: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLGetPrivateProfileStringW*(lpszSection: LPCWSTR, lpszEntry: LPCWSTR, lpszDefault: LPCWSTR, lpszRetBuffer: LPWSTR, cbRetBuffer: int32, lpszFilename: LPCWSTR): int32 {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallTranslatorW*(lpszInfFile: LPCWSTR, lpszTranslator: LPCWSTR, lpszPathIn: LPCWSTR, lpszPathOut: LPWSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveTranslatorW*(lpszTranslator: LPCWSTR, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLRemoveDriverW*(lpszDriver: LPCWSTR, fRemoveDSN: WINBOOL, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLConfigDriverW*(hwndParent: HWND, fRequest: WORD, lpszDriver: LPCWSTR, lpszArgs: LPCWSTR, lpszMsg: LPWSTR, cbMsgMax: WORD, pcbMsgOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallerErrorW*(iError: WORD, pfErrorCode: ptr DWORD, lpszErrorMsg: LPWSTR, cbErrorMsgMax: WORD, pcbErrorMsg: ptr WORD): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLPostInstallerErrorW*(dwErrorCode: DWORD, lpszErrorMsg: LPCWSTR): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLWriteFileDSNW*(lpszFileName: LPCWSTR, lpszAppName: LPCWSTR, lpszKeyName: LPCWSTR, lpszString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLReadFileDSNW*(lpszFileName: LPCWSTR, lpszAppName: LPCWSTR, lpszKeyName: LPCWSTR, lpszString: LPWSTR, cbString: WORD, pcbString: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallDriverExW*(lpszDriver: LPCWSTR, lpszPathIn: LPCWSTR, lpszPathOut: LPWSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLInstallTranslatorExW*(lpszTranslator: LPCWSTR, lpszPathIn: LPCWSTR, lpszPathOut: LPWSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} -proc SQLAllocHandle*(fHandleType: TSQLSMALLINT, hInput: TSQLHANDLE, phOutput: ptr TSQLHANDLE): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLAllocHandleStd".} -proc `wszArg=`*(self: var ODBC_VS_ARGS, x: ptr WCHAR) {.inline.} = self.union1.wszArg = x -proc wszArg*(self: ODBC_VS_ARGS): ptr WCHAR {.inline.} = self.union1.wszArg -proc wszArg*(self: var ODBC_VS_ARGS): var ptr WCHAR {.inline.} = self.union1.wszArg -proc `szArg=`*(self: var ODBC_VS_ARGS, x: ptr CHAR) {.inline.} = self.union1.szArg = x -proc szArg*(self: ODBC_VS_ARGS): ptr CHAR {.inline.} = self.union1.szArg -proc szArg*(self: var ODBC_VS_ARGS): var ptr CHAR {.inline.} = self.union1.szArg -proc `wszCorrelation=`*(self: var ODBC_VS_ARGS, x: ptr WCHAR) {.inline.} = self.union2.wszCorrelation = x -proc wszCorrelation*(self: ODBC_VS_ARGS): ptr WCHAR {.inline.} = self.union2.wszCorrelation -proc wszCorrelation*(self: var ODBC_VS_ARGS): var ptr WCHAR {.inline.} = self.union2.wszCorrelation -proc `szCorrelation=`*(self: var ODBC_VS_ARGS, x: ptr CHAR) {.inline.} = self.union2.szCorrelation = x -proc szCorrelation*(self: ODBC_VS_ARGS): ptr CHAR {.inline.} = self.union2.szCorrelation -proc szCorrelation*(self: var ODBC_VS_ARGS): var ptr CHAR {.inline.} = self.union2.szCorrelation +proc SQLColAttributeW*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColAttributesW*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLConnectW*( + ConnectionHandle: TSQLHDBC, + ServerName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + UserName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + Authentication: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDescribeColW*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + ColumnName: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, + DataTypePtr: ptr TSQLSMALLINT, + ColumnSizePtr: ptr TSQLULEN, + DecimalDigitsPtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLErrorW*( + EnvironmentHandle: TSQLHENV, + ConnectionHandle: TSQLHDBC, + StatementHandle: TSQLHSTMT, + Sqlstate: ptr TSQLWCHAR, + NativeError: ptr TSQLINTEGER, + MessageText: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + TextLength: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLExecDirectW*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetConnectAttrW*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetCursorNameW*( + StatementHandle: TSQLHSTMT, + CursorName: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetDescFieldW*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + Value: TSQLPOINTER, + BufferLength: TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDescFieldW*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDescRecW*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + Name: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + TypePtr: ptr TSQLSMALLINT, + SubTypePtr: ptr TSQLSMALLINT, + LengthPtr: ptr TSQLLEN, + PrecisionPtr: ptr TSQLSMALLINT, + ScalePtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDiagFieldW*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + DiagIdentifier: TSQLSMALLINT, + DiagInfoPtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDiagRecW*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + SQLState: ptr TSQLWCHAR, + NativeErrorPtr: ptr TSQLINTEGER, + MessageText: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + TextLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLPrepareW*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetConnectAttrW*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetCursorNameW*( + StatementHandle: TSQLHSTMT, CursorName: ptr TSQLWCHAR, NameLength: TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColumnsW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetConnectOptionW*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetInfoW*( + ConnectionHandle: TSQLHDBC, + InfoType: TSQLUSMALLINT, + InfoValuePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetTypeInfoW*( + StatementHandle: TSQLHSTMT, DataType: TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetConnectOptionW*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSpecialColumnsW*( + StatementHandle: TSQLHSTMT, + IdentifierType: TSQLUSMALLINT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + Scope: TSQLUSMALLINT, + Nullable: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLStatisticsW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + Unique: TSQLUSMALLINT, + Reserved: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLTablesW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + TableType: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDataSourcesW*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + ServerName: ptr TSQLWCHAR, + BufferLength1: TSQLSMALLINT, + NameLength1Ptr: ptr TSQLSMALLINT, + Description: ptr TSQLWCHAR, + BufferLength2: TSQLSMALLINT, + NameLength2Ptr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDriverConnectW*( + ConnectionHandle: TSQLHDBC, + WindowHandle: TSQLHWND, + InConnectionString: ptr TSQLWCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, + DriverCompletion: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLBrowseConnectW*( + ConnectionHandle: TSQLHDBC, + InConnectionString: ptr TSQLWCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColumnPrivilegesW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetStmtAttrW*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetStmtAttrW*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLForeignKeysW*( + StatementHandle: TSQLHSTMT, + PKCatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + PKSchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + PKTableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + FKCatalogName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, + FKSchemaName: ptr TSQLWCHAR, + NameLength5: TSQLSMALLINT, + FKTableName: ptr TSQLWCHAR, + NameLength6: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLNativeSqlW*( + ConnectionHandle: TSQLHDBC, + InStatementText: ptr TSQLWCHAR, + TextLength1: TSQLINTEGER, + OutStatementText: ptr TSQLWCHAR, + BufferLength: TSQLINTEGER, + TextLength2Ptr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLPrimaryKeysW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLProcedureColumnsW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLProceduresW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLTablePrivilegesW*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDriversW*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + DriverDescription: ptr TSQLWCHAR, + BufferLength1: TSQLSMALLINT, + DescriptionLengthPtr: ptr TSQLSMALLINT, + DriverAttributes: ptr TSQLWCHAR, + BufferLength2: TSQLSMALLINT, + AttributesLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColAttributeA*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColAttributesA*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLConnectA*( + ConnectionHandle: TSQLHDBC, + ServerName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + UserName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + Authentication: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDescribeColA*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + ColumnName: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, + DataTypePtr: ptr TSQLSMALLINT, + ColumnSizePtr: ptr TSQLUINTEGER, + DecimalDigitsPtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLErrorA*( + EnvironmentHandle: TSQLHENV, + ConnectionHandle: TSQLHDBC, + StatementHandle: TSQLHSTMT, + Sqlstate: ptr TSQLCHAR, + NativeError: ptr TSQLINTEGER, + MessageText: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + TextLength: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLExecDirectA*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetConnectAttrA*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetCursorNameA*( + StatementHandle: TSQLHSTMT, + CursorName: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDescFieldA*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDescRecA*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + Name: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + TypePtr: ptr TSQLSMALLINT, + SubTypePtr: ptr TSQLSMALLINT, + LengthPtr: ptr TSQLINTEGER, + PrecisionPtr: ptr TSQLSMALLINT, + ScalePtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDiagFieldA*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + DiagIdentifier: TSQLSMALLINT, + DiagInfoPtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetDiagRecA*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + SQLState: ptr TSQLCHAR, + NativeErrorPtr: ptr TSQLINTEGER, + MessageText: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + TextLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetStmtAttrA*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetTypeInfoA*( + StatementHandle: TSQLHSTMT, DataTyoe: TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLPrepareA*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetConnectAttrA*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetCursorNameA*( + StatementHandle: TSQLHSTMT, CursorName: ptr TSQLCHAR, NameLength: TSQLSMALLINT +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColumnsA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetConnectOptionA*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLGetInfoA*( + ConnectionHandle: TSQLHDBC, + InfoType: TSQLUSMALLINT, + InfoValuePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSetConnectOptionA*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLSpecialColumnsA*( + StatementHandle: TSQLHSTMT, + IdentifierType: TSQLUSMALLINT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + Scope: TSQLUSMALLINT, + Nullable: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLStatisticsA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + Unique: TSQLUSMALLINT, + Reserved: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLTablesA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + TableType: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDataSourcesA*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + ServerName: ptr TSQLCHAR, + BufferLength1: TSQLSMALLINT, + NameLength1Ptr: ptr TSQLSMALLINT, + Description: ptr TSQLCHAR, + BufferLength2: TSQLSMALLINT, + NameLength2Ptr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDriverConnectA*( + ConnectionHandle: TSQLHDBC, + WindowHandle: TSQLHWND, + InConnectionString: ptr TSQLCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, + DriverCompletion: TSQLUSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLBrowseConnectA*( + ConnectionHandle: TSQLHDBC, + InConnectionString: ptr TSQLCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLColumnPrivilegesA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLForeignKeysA*( + StatementHandle: TSQLHSTMT, + PKCatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + PKSchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + PKTableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + FKCatalogName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, + FKSchemaName: ptr TSQLCHAR, + NameLength5: TSQLSMALLINT, + FKTableName: ptr TSQLCHAR, + NameLength6: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLNativeSqlA*( + ConnectionHandle: TSQLHDBC, + InStatementText: ptr TSQLCHAR, + TextLength1: TSQLINTEGER, + OutStatementText: ptr TSQLCHAR, + BufferLength: TSQLINTEGER, + TextLength2Ptr: ptr TSQLINTEGER, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLPrimaryKeysA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLProcedureColumnsA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLProceduresA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLTablePrivilegesA*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLDriversA*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + DriverDescription: ptr TSQLCHAR, + BufferLength1: TSQLSMALLINT, + DescriptionLengthPtr: ptr TSQLSMALLINT, + DriverAttributes: ptr TSQLCHAR, + BufferLength2: TSQLSMALLINT, + AttributesLengthPtr: ptr TSQLSMALLINT, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc.} + +proc SQLInstallODBC*( + hwndParent: HWND, lpszInfFile: LPCSTR, lpszSrcPath: LPCSTR, lpszDrivers: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLManageDataSources*( + hwndParent: HWND +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLCreateDataSource*( + hwndParent: HWND, lpszDSN: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetTranslator*( + hwnd: HWND, + lpszName: LPSTR, + cbNameMax: WORD, + pcbNameOut: ptr WORD, + lpszPath: LPSTR, + cbPathMax: WORD, + pcbPathOut: ptr WORD, + pvOption: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallDriver*( + lpszInfFile: LPCSTR, + lpszDriver: LPCSTR, + lpszPath: LPSTR, + cbPathMax: WORD, + pcbPathOut: ptr WORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallDriverManager*( + lpszPath: LPSTR, cbPathMax: WORD, pcbPathOut: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetInstalledDrivers*( + lpszBuf: LPSTR, cbBufMax: WORD, pcbBufOut: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetAvailableDrivers*( + lpszInfFile: LPCSTR, lpszBuf: LPSTR, cbBufMax: WORD, pcbBufOut: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLConfigDataSource*( + hwndParent: HWND, fRequest: WORD, lpszDriver: LPCSTR, lpszAttributes: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveDefaultDataSource*(): WINBOOL {. + winapi, stdcall, dynlib: "odbccp32", importc +.} + +proc SQLWriteDSNToIni*( + lpszDSN: LPCSTR, lpszDriver: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveDSNFromIni*( + lpszDSN: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLValidDSN*( + lpszDSN: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLWritePrivateProfileString*( + lpszSection: LPCSTR, lpszEntry: LPCSTR, lpszString: LPCSTR, lpszFilename: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetPrivateProfileString*( + lpszSection: LPCSTR, + lpszEntry: LPCSTR, + lpszDefault: LPCSTR, + lpszRetBuffer: LPSTR, + cbRetBuffer: int32, + lpszFilename: LPCSTR, +): int32 {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveDriverManager*( + lpdwUsageCount: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallTranslator*( + lpszInfFile: LPCSTR, + lpszTranslator: LPCSTR, + lpszPathIn: LPCSTR, + lpszPathOut: LPSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveTranslator*( + lpszTranslator: LPCSTR, lpdwUsageCount: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveDriver*( + lpszDriver: LPCSTR, fRemoveDSN: WINBOOL, lpdwUsageCount: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLConfigDriver*( + hwndParent: HWND, + fRequest: WORD, + lpszDriver: LPCSTR, + lpszArgs: LPCSTR, + lpszMsg: LPSTR, + cbMsgMax: WORD, + pcbMsgOut: ptr WORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallerError*( + iError: WORD, + pfErrorCode: ptr DWORD, + lpszErrorMsg: LPSTR, + cbErrorMsgMax: WORD, + pcbErrorMsg: ptr WORD, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLPostInstallerError*( + dwErrorCode: DWORD, lpszErrMsg: LPCSTR +): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLWriteFileDSN*( + lpszFileName: LPCSTR, lpszAppName: LPCSTR, lpszKeyName: LPCSTR, lpszString: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLReadFileDSN*( + lpszFileName: LPCSTR, + lpszAppName: LPCSTR, + lpszKeyName: LPCSTR, + lpszString: LPSTR, + cbString: WORD, + pcbString: ptr WORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallDriverEx*( + lpszDriver: LPCSTR, + lpszPathIn: LPCSTR, + lpszPathOut: LPSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallTranslatorEx*( + lpszTranslator: LPCSTR, + lpszPathIn: LPCSTR, + lpszPathOut: LPSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetConfigMode*( + pwConfigMode: ptr UWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLSetConfigMode*( + wConfigMode: UWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallODBCW*( + hwndParent: HWND, lpszInfFile: LPCWSTR, lpszSrcPath: LPCWSTR, lpszDrivers: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLCreateDataSourceW*( + hwndParent: HWND, lpszDSN: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetTranslatorW*( + hwnd: HWND, + lpszName: LPWSTR, + cbNameMax: WORD, + pcbNameOut: ptr WORD, + lpszPath: LPWSTR, + cbPathMax: WORD, + pcbPathOut: ptr WORD, + pvOption: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallDriverW*( + lpszInfFile: LPCWSTR, + lpszDriver: LPCWSTR, + lpszPath: LPWSTR, + cbPathMax: WORD, + pcbPathOut: ptr WORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallDriverManagerW*( + lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetInstalledDriversW*( + lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetAvailableDriversW*( + lpszInfFile: LPCWSTR, lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLConfigDataSourceW*( + hwndParent: HWND, fRequest: WORD, lpszDriver: LPCWSTR, lpszAttributes: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLWriteDSNToIniW*( + lpszDSN: LPCWSTR, lpszDriver: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveDSNFromIniW*( + lpszDSN: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLValidDSNW*( + lpszDSN: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLWritePrivateProfileStringW*( + lpszSection: LPCWSTR, lpszEntry: LPCWSTR, lpszString: LPCWSTR, lpszFilename: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLGetPrivateProfileStringW*( + lpszSection: LPCWSTR, + lpszEntry: LPCWSTR, + lpszDefault: LPCWSTR, + lpszRetBuffer: LPWSTR, + cbRetBuffer: int32, + lpszFilename: LPCWSTR, +): int32 {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallTranslatorW*( + lpszInfFile: LPCWSTR, + lpszTranslator: LPCWSTR, + lpszPathIn: LPCWSTR, + lpszPathOut: LPWSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveTranslatorW*( + lpszTranslator: LPCWSTR, lpdwUsageCount: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLRemoveDriverW*( + lpszDriver: LPCWSTR, fRemoveDSN: WINBOOL, lpdwUsageCount: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLConfigDriverW*( + hwndParent: HWND, + fRequest: WORD, + lpszDriver: LPCWSTR, + lpszArgs: LPCWSTR, + lpszMsg: LPWSTR, + cbMsgMax: WORD, + pcbMsgOut: ptr WORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallerErrorW*( + iError: WORD, + pfErrorCode: ptr DWORD, + lpszErrorMsg: LPWSTR, + cbErrorMsgMax: WORD, + pcbErrorMsg: ptr WORD, +): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLPostInstallerErrorW*( + dwErrorCode: DWORD, lpszErrorMsg: LPCWSTR +): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLWriteFileDSNW*( + lpszFileName: LPCWSTR, lpszAppName: LPCWSTR, lpszKeyName: LPCWSTR, lpszString: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLReadFileDSNW*( + lpszFileName: LPCWSTR, + lpszAppName: LPCWSTR, + lpszKeyName: LPCWSTR, + lpszString: LPWSTR, + cbString: WORD, + pcbString: ptr WORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallDriverExW*( + lpszDriver: LPCWSTR, + lpszPathIn: LPCWSTR, + lpszPathOut: LPWSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLInstallTranslatorExW*( + lpszTranslator: LPCWSTR, + lpszPathIn: LPCWSTR, + lpszPathOut: LPWSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc.} + +proc SQLAllocHandle*( + fHandleType: TSQLSMALLINT, hInput: TSQLHANDLE, phOutput: ptr TSQLHANDLE +): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLAllocHandleStd".} + +proc `wszArg=`*(self: var ODBC_VS_ARGS, x: ptr WCHAR) {.inline.} = + self.union1.wszArg = x + +proc wszArg*(self: ODBC_VS_ARGS): ptr WCHAR {.inline.} = + self.union1.wszArg + +proc wszArg*(self: var ODBC_VS_ARGS): var ptr WCHAR {.inline.} = + self.union1.wszArg + +proc `szArg=`*(self: var ODBC_VS_ARGS, x: ptr CHAR) {.inline.} = + self.union1.szArg = x + +proc szArg*(self: ODBC_VS_ARGS): ptr CHAR {.inline.} = + self.union1.szArg + +proc szArg*(self: var ODBC_VS_ARGS): var ptr CHAR {.inline.} = + self.union1.szArg + +proc `wszCorrelation=`*(self: var ODBC_VS_ARGS, x: ptr WCHAR) {.inline.} = + self.union2.wszCorrelation = x + +proc wszCorrelation*(self: ODBC_VS_ARGS): ptr WCHAR {.inline.} = + self.union2.wszCorrelation + +proc wszCorrelation*(self: var ODBC_VS_ARGS): var ptr WCHAR {.inline.} = + self.union2.wszCorrelation + +proc `szCorrelation=`*(self: var ODBC_VS_ARGS, x: ptr CHAR) {.inline.} = + self.union2.szCorrelation = x + +proc szCorrelation*(self: ODBC_VS_ARGS): ptr CHAR {.inline.} = + self.union2.szCorrelation + +proc szCorrelation*(self: var ODBC_VS_ARGS): var ptr CHAR {.inline.} = + self.union2.szCorrelation + when winimUnicode: - type - TSQLTCHAR* = TSQLWCHAR - const - SQL_C_TCHAR* = SQL_C_WCHAR - proc SQLColAttribute*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributeW".} - proc SQLColAttributes*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributesW".} - proc SQLConnect*(ConnectionHandle: TSQLHDBC, ServerName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, UserName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, Authentication: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLConnectW".} - proc SQLDescribeCol*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, ColumnName: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT, DataTypePtr: ptr TSQLSMALLINT, ColumnSizePtr: ptr TSQLULEN, DecimalDigitsPtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDescribeColW".} - proc SQLError*(EnvironmentHandle: TSQLHENV, ConnectionHandle: TSQLHDBC, StatementHandle: TSQLHSTMT, Sqlstate: ptr TSQLWCHAR, NativeError: ptr TSQLINTEGER, MessageText: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, TextLength: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLErrorW".} - proc SQLExecDirect*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLExecDirectW".} - proc SQLGetConnectAttr*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectAttrW".} - proc SQLGetCursorName*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetCursorNameW".} - proc SQLGetDescField*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescFieldW".} - proc SQLGetDescRec*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, Name: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, TypePtr: ptr TSQLSMALLINT, SubTypePtr: ptr TSQLSMALLINT, LengthPtr: ptr TSQLLEN, PrecisionPtr: ptr TSQLSMALLINT, ScalePtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescRecW".} - proc SQLGetDiagField*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, DiagIdentifier: TSQLSMALLINT, DiagInfoPtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagFieldW".} - proc SQLGetDiagRec*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, SQLState: ptr TSQLWCHAR, NativeErrorPtr: ptr TSQLINTEGER, MessageText: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, TextLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagRecW".} - proc SQLPrepare*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrepareW".} - proc SQLSetConnectAttr*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectAttrW".} - proc SQLSetCursorName*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLWCHAR, NameLength: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetCursorNameW".} - proc SQLSetDescField*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, Value: TSQLPOINTER, BufferLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetDescFieldW".} - proc SQLSetStmtAttr*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetStmtAttrW".} - proc SQLGetStmtAttr*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetStmtAttrW".} - proc SQLColumns*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnsW".} - proc SQLGetConnectOption*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectOptionW".} - proc SQLGetInfo*(ConnectionHandle: TSQLHDBC, InfoType: TSQLUSMALLINT, InfoValuePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetInfoW".} - proc SQLGetTypeInfo*(StatementHandle: TSQLHSTMT, DataType: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetTypeInfoW".} - proc SQLSetConnectOption*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectOptionW".} - proc SQLSpecialColumns*(StatementHandle: TSQLHSTMT, IdentifierType: TSQLUSMALLINT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, Scope: TSQLUSMALLINT, Nullable: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSpecialColumnsW".} - proc SQLStatistics*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, Unique: TSQLUSMALLINT, Reserved: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLStatisticsW".} - proc SQLTables*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, TableType: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablesW".} - proc SQLDataSources*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, ServerName: ptr TSQLWCHAR, BufferLength1: TSQLSMALLINT, NameLength1Ptr: ptr TSQLSMALLINT, Description: ptr TSQLWCHAR, BufferLength2: TSQLSMALLINT, NameLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDataSourcesW".} - proc SQLDriverConnect*(ConnectionHandle: TSQLHDBC, WindowHandle: TSQLHWND, InConnectionString: ptr TSQLWCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT, DriverCompletion: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriverConnectW".} - proc SQLBrowseConnect*(ConnectionHandle: TSQLHDBC, InConnectionString: ptr TSQLWCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLWCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLBrowseConnectW".} - proc SQLColumnPrivileges*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnPrivilegesW".} - proc SQLForeignKeys*(StatementHandle: TSQLHSTMT, PKCatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, PKSchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, PKTableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, FKCatalogName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT, FKSchemaName: ptr TSQLWCHAR, NameLength5: TSQLSMALLINT, FKTableName: ptr TSQLWCHAR, NameLength6: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLForeignKeysW".} - proc SQLNativeSql*(ConnectionHandle: TSQLHDBC, InStatementText: ptr TSQLWCHAR, TextLength1: TSQLINTEGER, OutStatementText: ptr TSQLWCHAR, BufferLength: TSQLINTEGER, TextLength2Ptr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLNativeSqlW".} - proc SQLPrimaryKeys*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrimaryKeysW".} - proc SQLProcedureColumns*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLWCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProcedureColumnsW".} - proc SQLProcedures*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProceduresW".} - proc SQLTablePrivileges*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLWCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLWCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLWCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablePrivilegesW".} - proc SQLDrivers*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, DriverDescription: ptr TSQLWCHAR, BufferLength1: TSQLSMALLINT, DescriptionLengthPtr: ptr TSQLSMALLINT, DriverAttributes: ptr TSQLWCHAR, BufferLength2: TSQLSMALLINT, AttributesLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriversW".} - proc SQLInstallODBC*(hwndParent: HWND, lpszInfFile: LPCWSTR, lpszSrcPath: LPCWSTR, lpszDrivers: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallODBCW".} - proc SQLCreateDataSource*(hwndParent: HWND, lpszDSN: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLCreateDataSourceW".} - proc SQLGetTranslator*(hwnd: HWND, lpszName: LPWSTR, cbNameMax: WORD, pcbNameOut: ptr WORD, lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD, pvOption: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetTranslatorW".} - proc SQLInstallDriver*(lpszInfFile: LPCWSTR, lpszDriver: LPCWSTR, lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallDriverW".} - proc SQLInstallDriverManager*(lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallDriverManagerW".} - proc SQLGetInstalledDrivers*(lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetInstalledDriversW".} - proc SQLGetAvailableDrivers*(lpszInfFile: LPCWSTR, lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetAvailableDriversW".} - proc SQLConfigDataSource*(hwndParent: HWND, fRequest: WORD, lpszDriver: LPCWSTR, lpszAttributes: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLConfigDataSourceW".} - proc SQLWriteDSNToIni*(lpszDSN: LPCWSTR, lpszDriver: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLWriteDSNToIniW".} - proc SQLRemoveDSNFromIni*(lpszDSN: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLRemoveDSNFromIniW".} - proc SQLValidDSN*(lpszDSN: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLValidDSNW".} - proc SQLWritePrivateProfileString*(lpszSection: LPCWSTR, lpszEntry: LPCWSTR, lpszString: LPCWSTR, lpszFilename: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLWritePrivateProfileStringW".} - proc SQLGetPrivateProfileString*(lpszSection: LPCWSTR, lpszEntry: LPCWSTR, lpszDefault: LPCWSTR, lpszRetBuffer: LPWSTR, cbRetBuffer: int32, lpszFilename: LPCWSTR): int32 {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetPrivateProfileStringW".} - proc SQLInstallTranslator*(lpszInfFile: LPCWSTR, lpszTranslator: LPCWSTR, lpszPathIn: LPCWSTR, lpszPathOut: LPWSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallTranslatorW".} - proc SQLRemoveTranslator*(lpszTranslator: LPCWSTR, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLRemoveTranslatorW".} - proc SQLRemoveDriver*(lpszDriver: LPCWSTR, fRemoveDSN: WINBOOL, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLRemoveDriverW".} - proc SQLConfigDriver*(hwndParent: HWND, fRequest: WORD, lpszDriver: LPCWSTR, lpszArgs: LPCWSTR, lpszMsg: LPWSTR, cbMsgMax: WORD, pcbMsgOut: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLConfigDriverW".} - proc SQLInstallerError*(iError: WORD, pfErrorCode: ptr DWORD, lpszErrorMsg: LPWSTR, cbErrorMsgMax: WORD, pcbErrorMsg: ptr WORD): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallerErrorW".} - proc SQLPostInstallerError*(dwErrorCode: DWORD, lpszErrorMsg: LPCWSTR): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLPostInstallerErrorW".} - proc SQLReadFileDSN*(lpszFileName: LPCWSTR, lpszAppName: LPCWSTR, lpszKeyName: LPCWSTR, lpszString: LPWSTR, cbString: WORD, pcbString: ptr WORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLReadFileDSNW".} - proc SQLWriteFileDSN*(lpszFileName: LPCWSTR, lpszAppName: LPCWSTR, lpszKeyName: LPCWSTR, lpszString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLWriteFileDSNW".} - proc SQLInstallDriverEx*(lpszDriver: LPCWSTR, lpszPathIn: LPCWSTR, lpszPathOut: LPWSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallDriverExW".} - proc SQLInstallTranslatorEx*(lpszTranslator: LPCWSTR, lpszPathIn: LPCWSTR, lpszPathOut: LPWSTR, cbPathOutMax: WORD, pcbPathOut: ptr WORD, fRequest: WORD, lpdwUsageCount: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallTranslatorExW".} + type TSQLTCHAR* = TSQLWCHAR + const SQL_C_TCHAR* = SQL_C_WCHAR + proc SQLColAttribute*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributeW".} + + proc SQLColAttributes*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributesW".} + + proc SQLConnect*( + ConnectionHandle: TSQLHDBC, + ServerName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + UserName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + Authentication: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLConnectW".} + + proc SQLDescribeCol*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + ColumnName: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, + DataTypePtr: ptr TSQLSMALLINT, + ColumnSizePtr: ptr TSQLULEN, + DecimalDigitsPtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDescribeColW".} + + proc SQLError*( + EnvironmentHandle: TSQLHENV, + ConnectionHandle: TSQLHDBC, + StatementHandle: TSQLHSTMT, + Sqlstate: ptr TSQLWCHAR, + NativeError: ptr TSQLINTEGER, + MessageText: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + TextLength: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLErrorW".} + + proc SQLExecDirect*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLExecDirectW".} + + proc SQLGetConnectAttr*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectAttrW".} + + proc SQLGetCursorName*( + StatementHandle: TSQLHSTMT, + CursorName: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetCursorNameW".} + + proc SQLGetDescField*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescFieldW".} + + proc SQLGetDescRec*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + Name: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + TypePtr: ptr TSQLSMALLINT, + SubTypePtr: ptr TSQLSMALLINT, + LengthPtr: ptr TSQLLEN, + PrecisionPtr: ptr TSQLSMALLINT, + ScalePtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescRecW".} + + proc SQLGetDiagField*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + DiagIdentifier: TSQLSMALLINT, + DiagInfoPtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagFieldW".} + + proc SQLGetDiagRec*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + SQLState: ptr TSQLWCHAR, + NativeErrorPtr: ptr TSQLINTEGER, + MessageText: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + TextLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagRecW".} + + proc SQLPrepare*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLWCHAR, TextLength: TSQLINTEGER + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrepareW".} + + proc SQLSetConnectAttr*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectAttrW".} + + proc SQLSetCursorName*( + StatementHandle: TSQLHSTMT, CursorName: ptr TSQLWCHAR, NameLength: TSQLSMALLINT + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetCursorNameW".} + + proc SQLSetDescField*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + Value: TSQLPOINTER, + BufferLength: TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetDescFieldW".} + + proc SQLSetStmtAttr*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetStmtAttrW".} + + proc SQLGetStmtAttr*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetStmtAttrW".} + + proc SQLColumns*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnsW".} + + proc SQLGetConnectOption*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectOptionW".} + + proc SQLGetInfo*( + ConnectionHandle: TSQLHDBC, + InfoType: TSQLUSMALLINT, + InfoValuePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetInfoW".} + + proc SQLGetTypeInfo*( + StatementHandle: TSQLHSTMT, DataType: TSQLSMALLINT + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetTypeInfoW".} + + proc SQLSetConnectOption*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectOptionW".} + + proc SQLSpecialColumns*( + StatementHandle: TSQLHSTMT, + IdentifierType: TSQLUSMALLINT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + Scope: TSQLUSMALLINT, + Nullable: TSQLUSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSpecialColumnsW".} + + proc SQLStatistics*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + Unique: TSQLUSMALLINT, + Reserved: TSQLUSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLStatisticsW".} + + proc SQLTables*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + TableType: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablesW".} + + proc SQLDataSources*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + ServerName: ptr TSQLWCHAR, + BufferLength1: TSQLSMALLINT, + NameLength1Ptr: ptr TSQLSMALLINT, + Description: ptr TSQLWCHAR, + BufferLength2: TSQLSMALLINT, + NameLength2Ptr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDataSourcesW".} + + proc SQLDriverConnect*( + ConnectionHandle: TSQLHDBC, + WindowHandle: TSQLHWND, + InConnectionString: ptr TSQLWCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, + DriverCompletion: TSQLUSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriverConnectW".} + + proc SQLBrowseConnect*( + ConnectionHandle: TSQLHDBC, + InConnectionString: ptr TSQLWCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLWCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLBrowseConnectW".} + + proc SQLColumnPrivileges*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnPrivilegesW".} + + proc SQLForeignKeys*( + StatementHandle: TSQLHSTMT, + PKCatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + PKSchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + PKTableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + FKCatalogName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, + FKSchemaName: ptr TSQLWCHAR, + NameLength5: TSQLSMALLINT, + FKTableName: ptr TSQLWCHAR, + NameLength6: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLForeignKeysW".} + + proc SQLNativeSql*( + ConnectionHandle: TSQLHDBC, + InStatementText: ptr TSQLWCHAR, + TextLength1: TSQLINTEGER, + OutStatementText: ptr TSQLWCHAR, + BufferLength: TSQLINTEGER, + TextLength2Ptr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLNativeSqlW".} + + proc SQLPrimaryKeys*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrimaryKeysW".} + + proc SQLProcedureColumns*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLWCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProcedureColumnsW".} + + proc SQLProcedures*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProceduresW".} + + proc SQLTablePrivileges*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLWCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLWCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLWCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablePrivilegesW".} + + proc SQLDrivers*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + DriverDescription: ptr TSQLWCHAR, + BufferLength1: TSQLSMALLINT, + DescriptionLengthPtr: ptr TSQLSMALLINT, + DriverAttributes: ptr TSQLWCHAR, + BufferLength2: TSQLSMALLINT, + AttributesLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriversW".} + + proc SQLInstallODBC*( + hwndParent: HWND, lpszInfFile: LPCWSTR, lpszSrcPath: LPCWSTR, lpszDrivers: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallODBCW".} + + proc SQLCreateDataSource*( + hwndParent: HWND, lpszDSN: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLCreateDataSourceW".} + + proc SQLGetTranslator*( + hwnd: HWND, + lpszName: LPWSTR, + cbNameMax: WORD, + pcbNameOut: ptr WORD, + lpszPath: LPWSTR, + cbPathMax: WORD, + pcbPathOut: ptr WORD, + pvOption: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetTranslatorW".} + + proc SQLInstallDriver*( + lpszInfFile: LPCWSTR, + lpszDriver: LPCWSTR, + lpszPath: LPWSTR, + cbPathMax: WORD, + pcbPathOut: ptr WORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallDriverW".} + + proc SQLInstallDriverManager*( + lpszPath: LPWSTR, cbPathMax: WORD, pcbPathOut: ptr WORD + ): WINBOOL {. + winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallDriverManagerW" + .} + + proc SQLGetInstalledDrivers*( + lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetInstalledDriversW".} + + proc SQLGetAvailableDrivers*( + lpszInfFile: LPCWSTR, lpszBuf: LPWSTR, cbBufMax: WORD, pcbBufOut: ptr WORD + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetAvailableDriversW".} + + proc SQLConfigDataSource*( + hwndParent: HWND, fRequest: WORD, lpszDriver: LPCWSTR, lpszAttributes: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLConfigDataSourceW".} + + proc SQLWriteDSNToIni*( + lpszDSN: LPCWSTR, lpszDriver: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLWriteDSNToIniW".} + + proc SQLRemoveDSNFromIni*( + lpszDSN: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLRemoveDSNFromIniW".} + + proc SQLValidDSN*( + lpszDSN: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLValidDSNW".} + + proc SQLWritePrivateProfileString*( + lpszSection: LPCWSTR, lpszEntry: LPCWSTR, lpszString: LPCWSTR, lpszFilename: LPCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "odbccp32", importc: "SQLWritePrivateProfileStringW" + .} + + proc SQLGetPrivateProfileString*( + lpszSection: LPCWSTR, + lpszEntry: LPCWSTR, + lpszDefault: LPCWSTR, + lpszRetBuffer: LPWSTR, + cbRetBuffer: int32, + lpszFilename: LPCWSTR, + ): int32 {. + winapi, stdcall, dynlib: "odbccp32", importc: "SQLGetPrivateProfileStringW" + .} + + proc SQLInstallTranslator*( + lpszInfFile: LPCWSTR, + lpszTranslator: LPCWSTR, + lpszPathIn: LPCWSTR, + lpszPathOut: LPWSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallTranslatorW".} + + proc SQLRemoveTranslator*( + lpszTranslator: LPCWSTR, lpdwUsageCount: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLRemoveTranslatorW".} + + proc SQLRemoveDriver*( + lpszDriver: LPCWSTR, fRemoveDSN: WINBOOL, lpdwUsageCount: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLRemoveDriverW".} + + proc SQLConfigDriver*( + hwndParent: HWND, + fRequest: WORD, + lpszDriver: LPCWSTR, + lpszArgs: LPCWSTR, + lpszMsg: LPWSTR, + cbMsgMax: WORD, + pcbMsgOut: ptr WORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLConfigDriverW".} + + proc SQLInstallerError*( + iError: WORD, + pfErrorCode: ptr DWORD, + lpszErrorMsg: LPWSTR, + cbErrorMsgMax: WORD, + pcbErrorMsg: ptr WORD, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallerErrorW".} + + proc SQLPostInstallerError*( + dwErrorCode: DWORD, lpszErrorMsg: LPCWSTR + ): TSQLRETURN {. + winapi, stdcall, dynlib: "odbccp32", importc: "SQLPostInstallerErrorW" + .} + + proc SQLReadFileDSN*( + lpszFileName: LPCWSTR, + lpszAppName: LPCWSTR, + lpszKeyName: LPCWSTR, + lpszString: LPWSTR, + cbString: WORD, + pcbString: ptr WORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLReadFileDSNW".} + + proc SQLWriteFileDSN*( + lpszFileName: LPCWSTR, + lpszAppName: LPCWSTR, + lpszKeyName: LPCWSTR, + lpszString: LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLWriteFileDSNW".} + + proc SQLInstallDriverEx*( + lpszDriver: LPCWSTR, + lpszPathIn: LPCWSTR, + lpszPathOut: LPWSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallDriverExW".} + + proc SQLInstallTranslatorEx*( + lpszTranslator: LPCWSTR, + lpszPathIn: LPCWSTR, + lpszPathOut: LPWSTR, + cbPathOutMax: WORD, + pcbPathOut: ptr WORD, + fRequest: WORD, + lpdwUsageCount: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "odbccp32", importc: "SQLInstallTranslatorExW".} + when winimAnsi: - type - TSQLTCHAR* = TSQLCHAR - const - SQL_C_TCHAR* = SQL_C_CHAR - proc SQLColAttribute*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributeA".} - proc SQLColumns*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnsA".} - proc SQLConnect*(ConnectionHandle: TSQLHDBC, ServerName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, UserName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, Authentication: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLConnectA".} - proc SQLDataSources*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, ServerName: ptr TSQLCHAR, BufferLength1: TSQLSMALLINT, NameLength1Ptr: ptr TSQLSMALLINT, Description: ptr TSQLCHAR, BufferLength2: TSQLSMALLINT, NameLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDataSourcesA".} - proc SQLDescribeCol*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, ColumnName: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT, DataTypePtr: ptr TSQLSMALLINT, ColumnSizePtr: ptr TSQLULEN, DecimalDigitsPtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDescribeColA".} - proc SQLError*(EnvironmentHandle: TSQLHENV, ConnectionHandle: TSQLHDBC, StatementHandle: TSQLHSTMT, Sqlstate: ptr TSQLCHAR, NativeError: ptr TSQLINTEGER, MessageText: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, TextLength: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLErrorA".} - proc SQLExecDirect*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLExecDirectA".} - proc SQLGetConnectAttr*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectAttrA".} - proc SQLGetConnectOption*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectOptionA".} - proc SQLGetCursorName*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, NameLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetCursorNameA".} - proc SQLGetDescField*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescFieldA".} - proc SQLGetDescRec*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, Name: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, TypePtr: ptr TSQLSMALLINT, SubTypePtr: ptr TSQLSMALLINT, LengthPtr: ptr TSQLLEN, PrecisionPtr: ptr TSQLSMALLINT, ScalePtr: ptr TSQLSMALLINT, NullablePtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescRecA".} - proc SQLGetDiagField*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, DiagIdentifier: TSQLSMALLINT, DiagInfoPtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagFieldA".} - proc SQLGetDiagRec*(HandleType: TSQLSMALLINT, Handle: TSQLHANDLE, RecNumber: TSQLSMALLINT, SQLState: ptr TSQLCHAR, NativeErrorPtr: ptr TSQLINTEGER, MessageText: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, TextLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagRecA".} - proc SQLGetInfo*(ConnectionHandle: TSQLHDBC, InfoType: TSQLUSMALLINT, InfoValuePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetInfoA".} - proc SQLGetStmtAttr*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, BufferLength: TSQLINTEGER, StringLengthPtr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetStmtAttrA".} - proc SQLGetTypeInfo*(StatementHandle: TSQLHSTMT, DataType: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetTypeInfoA".} - proc SQLPrepare*(StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrepareA".} - proc SQLSetConnectAttr*(ConnectionHandle: TSQLHDBC, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectAttrA".} - proc SQLSetConnectOption*(ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectOptionA".} - proc SQLSetCursorName*(StatementHandle: TSQLHSTMT, CursorName: ptr TSQLCHAR, NameLength: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetCursorNameA".} - proc SQLSetDescField*(DescriptorHandle: TSQLHDESC, RecNumber: TSQLSMALLINT, FieldIdentifier: TSQLSMALLINT, Value: TSQLPOINTER, BufferLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetDescFieldA".} - proc SQLSetStmtAttr*(StatementHandle: TSQLHSTMT, Attribute: TSQLINTEGER, ValuePtr: TSQLPOINTER, StringLength: TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetStmtAttrA".} - proc SQLSpecialColumns*(StatementHandle: TSQLHSTMT, IdentifierType: TSQLUSMALLINT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, Scope: TSQLUSMALLINT, Nullable: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSpecialColumnsA".} - proc SQLStatistics*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, Unique: TSQLUSMALLINT, Reserved: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLStatisticsA".} - proc SQLTables*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, TableType: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablesA".} - proc SQLDriverConnect*(ConnectionHandle: TSQLHDBC, WindowHandle: TSQLHWND, InConnectionString: ptr TSQLCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT, DriverCompletion: TSQLUSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriverConnectA".} - proc SQLBrowseConnect*(ConnectionHandle: TSQLHDBC, InConnectionString: ptr TSQLCHAR, StringLength1: TSQLSMALLINT, OutConnectionString: ptr TSQLCHAR, BufferLength: TSQLSMALLINT, StringLength2Ptr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLBrowseConnectA".} - proc SQLColAttributes*(StatementHandle: TSQLHSTMT, ColumnNumber: TSQLUSMALLINT, FieldIdentifier: TSQLUSMALLINT, CharacterAttributePtr: TSQLPOINTER, BufferLength: TSQLSMALLINT, StringLengthPtr: ptr TSQLSMALLINT, NumericAttributePtr: ptr TSQLLEN): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributesA".} - proc SQLColumnPrivileges*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnPrivilegesA".} - proc SQLForeignKeys*(StatementHandle: TSQLHSTMT, PKCatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, PKSchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, PKTableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, FKCatalogName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT, FKSchemaName: ptr TSQLCHAR, NameLength5: TSQLSMALLINT, FKTableName: ptr TSQLCHAR, NameLength6: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLForeignKeysA".} - proc SQLNativeSql*(ConnectionHandle: TSQLHDBC, InStatementText: ptr TSQLCHAR, TextLength1: TSQLINTEGER, OutStatementText: ptr TSQLCHAR, BufferLength: TSQLINTEGER, TextLength2Ptr: ptr TSQLINTEGER): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLNativeSqlA".} - proc SQLPrimaryKeys*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrimaryKeysA".} - proc SQLProcedureColumns*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT, ColumnName: ptr TSQLCHAR, NameLength4: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProcedureColumnsA".} - proc SQLProcedures*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, ProcName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProceduresA".} - proc SQLTablePrivileges*(StatementHandle: TSQLHSTMT, CatalogName: ptr TSQLCHAR, NameLength1: TSQLSMALLINT, SchemaName: ptr TSQLCHAR, NameLength2: TSQLSMALLINT, TableName: ptr TSQLCHAR, NameLength3: TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablePrivilegesA".} - proc SQLDrivers*(EnvironmentHandle: TSQLHENV, Direction: TSQLUSMALLINT, DriverDescription: ptr TSQLCHAR, BufferLength1: TSQLSMALLINT, DescriptionLengthPtr: ptr TSQLSMALLINT, DriverAttributes: ptr TSQLCHAR, BufferLength2: TSQLSMALLINT, AttributesLengthPtr: ptr TSQLSMALLINT): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriversA".} + type TSQLTCHAR* = TSQLCHAR + const SQL_C_TCHAR* = SQL_C_CHAR + proc SQLColAttribute*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributeA".} + + proc SQLColumns*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnsA".} + + proc SQLConnect*( + ConnectionHandle: TSQLHDBC, + ServerName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + UserName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + Authentication: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLConnectA".} + + proc SQLDataSources*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + ServerName: ptr TSQLCHAR, + BufferLength1: TSQLSMALLINT, + NameLength1Ptr: ptr TSQLSMALLINT, + Description: ptr TSQLCHAR, + BufferLength2: TSQLSMALLINT, + NameLength2Ptr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDataSourcesA".} + + proc SQLDescribeCol*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + ColumnName: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, + DataTypePtr: ptr TSQLSMALLINT, + ColumnSizePtr: ptr TSQLULEN, + DecimalDigitsPtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDescribeColA".} + + proc SQLError*( + EnvironmentHandle: TSQLHENV, + ConnectionHandle: TSQLHDBC, + StatementHandle: TSQLHSTMT, + Sqlstate: ptr TSQLCHAR, + NativeError: ptr TSQLINTEGER, + MessageText: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + TextLength: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLErrorA".} + + proc SQLExecDirect*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLExecDirectA".} + + proc SQLGetConnectAttr*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectAttrA".} + + proc SQLGetConnectOption*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLPOINTER + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetConnectOptionA".} + + proc SQLGetCursorName*( + StatementHandle: TSQLHSTMT, + CursorName: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + NameLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetCursorNameA".} + + proc SQLGetDescField*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescFieldA".} + + proc SQLGetDescRec*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + Name: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + TypePtr: ptr TSQLSMALLINT, + SubTypePtr: ptr TSQLSMALLINT, + LengthPtr: ptr TSQLLEN, + PrecisionPtr: ptr TSQLSMALLINT, + ScalePtr: ptr TSQLSMALLINT, + NullablePtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDescRecA".} + + proc SQLGetDiagField*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + DiagIdentifier: TSQLSMALLINT, + DiagInfoPtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagFieldA".} + + proc SQLGetDiagRec*( + HandleType: TSQLSMALLINT, + Handle: TSQLHANDLE, + RecNumber: TSQLSMALLINT, + SQLState: ptr TSQLCHAR, + NativeErrorPtr: ptr TSQLINTEGER, + MessageText: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + TextLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetDiagRecA".} + + proc SQLGetInfo*( + ConnectionHandle: TSQLHDBC, + InfoType: TSQLUSMALLINT, + InfoValuePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetInfoA".} + + proc SQLGetStmtAttr*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + BufferLength: TSQLINTEGER, + StringLengthPtr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetStmtAttrA".} + + proc SQLGetTypeInfo*( + StatementHandle: TSQLHSTMT, DataType: TSQLSMALLINT + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLGetTypeInfoA".} + + proc SQLPrepare*( + StatementHandle: TSQLHSTMT, StatementText: ptr TSQLCHAR, TextLength: TSQLINTEGER + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrepareA".} + + proc SQLSetConnectAttr*( + ConnectionHandle: TSQLHDBC, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectAttrA".} + + proc SQLSetConnectOption*( + ConnectionHandle: TSQLHDBC, Option: TSQLUSMALLINT, Value: TSQLULEN + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetConnectOptionA".} + + proc SQLSetCursorName*( + StatementHandle: TSQLHSTMT, CursorName: ptr TSQLCHAR, NameLength: TSQLSMALLINT + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetCursorNameA".} + + proc SQLSetDescField*( + DescriptorHandle: TSQLHDESC, + RecNumber: TSQLSMALLINT, + FieldIdentifier: TSQLSMALLINT, + Value: TSQLPOINTER, + BufferLength: TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetDescFieldA".} + + proc SQLSetStmtAttr*( + StatementHandle: TSQLHSTMT, + Attribute: TSQLINTEGER, + ValuePtr: TSQLPOINTER, + StringLength: TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSetStmtAttrA".} + + proc SQLSpecialColumns*( + StatementHandle: TSQLHSTMT, + IdentifierType: TSQLUSMALLINT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + Scope: TSQLUSMALLINT, + Nullable: TSQLUSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLSpecialColumnsA".} + + proc SQLStatistics*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + Unique: TSQLUSMALLINT, + Reserved: TSQLUSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLStatisticsA".} + + proc SQLTables*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + TableType: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablesA".} + + proc SQLDriverConnect*( + ConnectionHandle: TSQLHDBC, + WindowHandle: TSQLHWND, + InConnectionString: ptr TSQLCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, + DriverCompletion: TSQLUSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriverConnectA".} + + proc SQLBrowseConnect*( + ConnectionHandle: TSQLHDBC, + InConnectionString: ptr TSQLCHAR, + StringLength1: TSQLSMALLINT, + OutConnectionString: ptr TSQLCHAR, + BufferLength: TSQLSMALLINT, + StringLength2Ptr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLBrowseConnectA".} + + proc SQLColAttributes*( + StatementHandle: TSQLHSTMT, + ColumnNumber: TSQLUSMALLINT, + FieldIdentifier: TSQLUSMALLINT, + CharacterAttributePtr: TSQLPOINTER, + BufferLength: TSQLSMALLINT, + StringLengthPtr: ptr TSQLSMALLINT, + NumericAttributePtr: ptr TSQLLEN, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColAttributesA".} + + proc SQLColumnPrivileges*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLColumnPrivilegesA".} + + proc SQLForeignKeys*( + StatementHandle: TSQLHSTMT, + PKCatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + PKSchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + PKTableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + FKCatalogName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, + FKSchemaName: ptr TSQLCHAR, + NameLength5: TSQLSMALLINT, + FKTableName: ptr TSQLCHAR, + NameLength6: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLForeignKeysA".} + + proc SQLNativeSql*( + ConnectionHandle: TSQLHDBC, + InStatementText: ptr TSQLCHAR, + TextLength1: TSQLINTEGER, + OutStatementText: ptr TSQLCHAR, + BufferLength: TSQLINTEGER, + TextLength2Ptr: ptr TSQLINTEGER, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLNativeSqlA".} + + proc SQLPrimaryKeys*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLPrimaryKeysA".} + + proc SQLProcedureColumns*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ColumnName: ptr TSQLCHAR, + NameLength4: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProcedureColumnsA".} + + proc SQLProcedures*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + ProcName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLProceduresA".} + + proc SQLTablePrivileges*( + StatementHandle: TSQLHSTMT, + CatalogName: ptr TSQLCHAR, + NameLength1: TSQLSMALLINT, + SchemaName: ptr TSQLCHAR, + NameLength2: TSQLSMALLINT, + TableName: ptr TSQLCHAR, + NameLength3: TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLTablePrivilegesA".} + + proc SQLDrivers*( + EnvironmentHandle: TSQLHENV, + Direction: TSQLUSMALLINT, + DriverDescription: ptr TSQLCHAR, + BufferLength1: TSQLSMALLINT, + DescriptionLengthPtr: ptr TSQLSMALLINT, + DriverAttributes: ptr TSQLCHAR, + BufferLength2: TSQLSMALLINT, + AttributesLengthPtr: ptr TSQLSMALLINT, + ): TSQLRETURN {.winapi, stdcall, dynlib: "odbc32", importc: "SQLDriversA".} + when winimCpu64: - const - SQL_C_BOOKMARK* = SQL_C_UBIGINT + const SQL_C_BOOKMARK* = SQL_C_UBIGINT when winimCpu32: - const - SQL_C_BOOKMARK* = SQL_C_ULONG + const SQL_C_BOOKMARK* = SQL_C_ULONG diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/powrprof.nim --- a/semicongine/thirdparty/winim/winim/inc/powrprof.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/powrprof.nim Thu Aug 22 18:32:21 2024 +0700 @@ -15,6 +15,7 @@ LidOpenWakeAc*: SYSTEM_POWER_STATE LidOpenWakeDc*: SYSTEM_POWER_STATE BroadcastCapacityResolution*: ULONG + PGLOBAL_MACHINE_POWER_POLICY* = ptr GLOBAL_MACHINE_POWER_POLICY GLOBAL_USER_POWER_POLICY* {.pure.} = object Revision*: ULONG @@ -26,10 +27,12 @@ LidCloseDc*: POWER_ACTION_POLICY DischargePolicy*: array[NUM_DISCHARGE_POLICIES, SYSTEM_POWER_LEVEL] GlobalFlags*: ULONG + PGLOBAL_USER_POWER_POLICY* = ptr GLOBAL_USER_POWER_POLICY GLOBAL_POWER_POLICY* {.pure.} = object user*: GLOBAL_USER_POWER_POLICY mach*: GLOBAL_MACHINE_POWER_POLICY + PGLOBAL_POWER_POLICY* = ptr GLOBAL_POWER_POLICY MACHINE_POWER_POLICY* {.pure.} = object Revision*: ULONG @@ -46,11 +49,13 @@ pad1*: array[2, UCHAR] OverThrottledAc*: POWER_ACTION_POLICY OverThrottledDc*: POWER_ACTION_POLICY + PMACHINE_POWER_POLICY* = ptr MACHINE_POWER_POLICY MACHINE_PROCESSOR_POWER_POLICY* {.pure.} = object Revision*: ULONG ProcessorPolicyAc*: PROCESSOR_POWER_POLICY ProcessorPolicyDc*: PROCESSOR_POWER_POLICY + PMACHINE_PROCESSOR_POWER_POLICY* = ptr MACHINE_PROCESSOR_POWER_POLICY USER_POWER_POLICY* {.pure.} = object Revision*: ULONG @@ -75,11 +80,14 @@ FanThrottleToleranceDc*: UCHAR ForcedThrottleAc*: UCHAR ForcedThrottleDc*: UCHAR + PUSER_POWER_POLICY* = ptr USER_POWER_POLICY POWER_POLICY* {.pure.} = object user*: USER_POWER_POLICY mach*: MACHINE_POWER_POLICY + PPOWER_POLICY* = ptr POWER_POLICY + const enableSysTrayBatteryMeter* = 0x01 enableMultiBatteryDisplay* = 0x02 @@ -113,77 +121,435 @@ ACCESS_CREATE_SCHEME* = 20 POWER_ATTRIBUTE_HIDE* = 1 type - PWRSCHEMESENUMPROC* = proc (P1: UINT, P2: DWORD, P3: LPTSTR, P4: DWORD, P5: LPTSTR, P6: PPOWER_POLICY, P7: LPARAM): BOOLEAN {.stdcall.} - PFNNTINITIATEPWRACTION* = proc (P1: POWER_ACTION, P2: SYSTEM_POWER_STATE, P3: ULONG, P4: BOOLEAN): BOOLEAN {.stdcall.} -proc GetPwrDiskSpindownRange*(P1: PUINT, P2: PUINT): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc EnumPwrSchemes*(P1: PWRSCHEMESENUMPROC, P2: LPARAM): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc ReadGlobalPwrPolicy*(P1: PGLOBAL_POWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc ReadPwrScheme*(P1: UINT, P2: PPOWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc WritePwrScheme*(P1: PUINT, P2: LPTSTR, P3: LPTSTR, P4: PPOWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc WriteGlobalPwrPolicy*(P1: PGLOBAL_POWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc DeletePwrScheme*(P1: UINT): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc GetActivePwrScheme*(P1: PUINT): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc SetActivePwrScheme*(P1: UINT, P2: PGLOBAL_POWER_POLICY, P3: PPOWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc GetPwrCapabilities*(P1: PSYSTEM_POWER_CAPABILITIES): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + PWRSCHEMESENUMPROC* = proc( + P1: UINT, + P2: DWORD, + P3: LPTSTR, + P4: DWORD, + P5: LPTSTR, + P6: PPOWER_POLICY, + P7: LPARAM, + ): BOOLEAN {.stdcall.} + PFNNTINITIATEPWRACTION* = proc( + P1: POWER_ACTION, P2: SYSTEM_POWER_STATE, P3: ULONG, P4: BOOLEAN + ): BOOLEAN {.stdcall.} + +proc GetPwrDiskSpindownRange*( + P1: PUINT, P2: PUINT +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc EnumPwrSchemes*( + P1: PWRSCHEMESENUMPROC, P2: LPARAM +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc ReadGlobalPwrPolicy*( + P1: PGLOBAL_POWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc ReadPwrScheme*( + P1: UINT, P2: PPOWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc WritePwrScheme*( + P1: PUINT, P2: LPTSTR, P3: LPTSTR, P4: PPOWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc WriteGlobalPwrPolicy*( + P1: PGLOBAL_POWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc DeletePwrScheme*( + P1: UINT +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc GetActivePwrScheme*( + P1: PUINT +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc SetActivePwrScheme*( + P1: UINT, P2: PGLOBAL_POWER_POLICY, P3: PPOWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc GetPwrCapabilities*( + P1: PSYSTEM_POWER_CAPABILITIES +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + proc IsPwrSuspendAllowed*(): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} proc IsPwrHibernateAllowed*(): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} proc IsPwrShutdownAllowed*(): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc IsAdminOverrideActive*(P1: PADMINISTRATOR_POWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc SetSuspendState*(P1: BOOLEAN, P2: BOOLEAN, P3: BOOLEAN): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc GetCurrentPowerPolicies*(P1: PGLOBAL_POWER_POLICY, P2: PPOWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} +proc IsAdminOverrideActive*( + P1: PADMINISTRATOR_POWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc SetSuspendState*( + P1: BOOLEAN, P2: BOOLEAN, P3: BOOLEAN +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc GetCurrentPowerPolicies*( + P1: PGLOBAL_POWER_POLICY, P2: PPOWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + proc CanUserWritePwrScheme*(): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc ReadProcessorPwrScheme*(P1: UINT, P2: PMACHINE_PROCESSOR_POWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc WriteProcessorPwrScheme*(P1: UINT, P2: PMACHINE_PROCESSOR_POWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc ValidatePowerPolicies*(P1: PGLOBAL_POWER_POLICY, P2: PPOWER_POLICY): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} +proc ReadProcessorPwrScheme*( + P1: UINT, P2: PMACHINE_PROCESSOR_POWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc WriteProcessorPwrScheme*( + P1: UINT, P2: PMACHINE_PROCESSOR_POWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc ValidatePowerPolicies*( + P1: PGLOBAL_POWER_POLICY, P2: PPOWER_POLICY +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + proc DevicePowerClose*(): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc DevicePowerEnumDevices*(QueryIndex: ULONG, QueryInterpretationFlags: ULONG, QueryFlags: ULONG, pReturnBuffer: PBYTE, pBufferSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc DevicePowerOpen*(Flags: ULONG): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} -proc DevicePowerSetDeviceState*(DeviceDescription: LPCWSTR, SetFlags: ULONG, SetData: LPCVOID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerCanRestoreIndividualDefaultPowerScheme*(SchemeGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerCreatePossibleSetting*(RootSystemPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, PossibleSettingIndex: ULONG): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerCreateSetting*(RootSystemPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerDeleteScheme*(RootPowerKey: HKEY, SchemeGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerDeterminePlatformRole*(): POWER_PLATFORM_ROLE {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerDuplicateScheme*(RootPowerKey: HKEY, SourceSchemeGuid: ptr GUID, DestinationSchemeGuid: ptr ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerEnumerate*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, AccessFlags: POWER_DATA_ACCESSOR, Index: ULONG, Buffer: ptr UCHAR, BufferSize: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerGetActiveScheme*(UserRootPowerKey: HKEY, ActivePolicyGuid: ptr ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerImportPowerScheme*(RootPowerKey: HKEY, ImportFileNamePath: LPCWSTR, DestinationSchemeGuid: ptr ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadACDefaultIndex*(RootPowerKey: HKEY, SchemePersonalityGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, AcDefaultIndex: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadACValue*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Type: PULONG, Buffer: LPBYTE, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadACValueIndex*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, AcValueIndex: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadDCDefaultIndex*(RootPowerKey: HKEY, SchemePersonalityGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, DcDefaultIndex: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadDCValue*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Type: PULONG, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadDCValueIndex*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, DcValueIndex: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadDescription*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadFriendlyName*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadIconResourceSpecifier*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadPossibleDescription*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, PossibleSettingIndex: ULONG, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadPossibleFriendlyName*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, PossibleSettingIndex: ULONG, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadPossibleValue*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Type: PULONG, PossibleSettingIndex: ULONG, Buffer: PUCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadSettingAttributes*(SubGroupGuid: ptr GUID, PowerSettingGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadValueIncrement*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, ValueIncrement: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadValueMax*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, ValueMaximum: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadValueMin*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, ValueMinimum: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReadValueUnitsSpecifier*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: ptr UCHAR, BufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerRemovePowerSetting*(PowerSettingSubKeyGuid: ptr GUID, PowerSettingGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerReplaceDefaultPowerSchemes*(): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerRestoreDefaultPowerSchemes*(): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerRestoreIndividualDefaultPowerScheme*(SchemeGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerSetActiveScheme*(UserRootPowerKey: HKEY, SchemeGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerSettingAccessCheck*(AccessFlags: POWER_DATA_ACCESSOR, PowerGuid: ptr GUID): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteACDefaultIndex*(RootSystemPowerKey: HKEY, SchemePersonalityGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, DefaultAcIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteACValueIndex*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, AcValueIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteDCDefaultIndex*(RootSystemPowerKey: HKEY, SchemePersonalityGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, DefaultDcIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteDCValueIndex*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, DcValueIndex: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteDescription*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteFriendlyName*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteIconResourceSpecifier*(RootPowerKey: HKEY, SchemeGuid: ptr GUID, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWritePossibleDescription*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, PossibleSettingIndex: ULONG, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWritePossibleFriendlyName*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, PossibleSettingIndex: ULONG, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWritePossibleValue*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Type: ULONG, PossibleSettingIndex: ULONG, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteSettingAttributes*(SubGroupGuid: ptr GUID, PowerSettingGuid: ptr GUID, Attributes: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteValueIncrement*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, ValueIncrement: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteValueMax*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, ValueMaximum: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteValueMin*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, ValueMinimum: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc PowerWriteValueUnitsSpecifier*(RootPowerKey: HKEY, SubGroupOfPowerSettingsGuid: ptr GUID, PowerSettingGuid: ptr GUID, Buffer: ptr UCHAR, BufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} -proc CallNtPowerInformation*(P1: POWER_INFORMATION_LEVEL, P2: PVOID, P3: ULONG, P4: PVOID, P5: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "powrprof", importc.} +proc DevicePowerEnumDevices*( + QueryIndex: ULONG, + QueryInterpretationFlags: ULONG, + QueryFlags: ULONG, + pReturnBuffer: PBYTE, + pBufferSize: PULONG, +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc DevicePowerOpen*( + Flags: ULONG +): BOOLEAN {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc DevicePowerSetDeviceState*( + DeviceDescription: LPCWSTR, SetFlags: ULONG, SetData: LPCVOID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerCanRestoreIndividualDefaultPowerScheme*( + SchemeGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerCreatePossibleSetting*( + RootSystemPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + PossibleSettingIndex: ULONG, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerCreateSetting*( + RootSystemPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerDeleteScheme*( + RootPowerKey: HKEY, SchemeGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerDeterminePlatformRole*(): POWER_PLATFORM_ROLE {. + winapi, stdcall, dynlib: "powrprof", importc +.} + +proc PowerDuplicateScheme*( + RootPowerKey: HKEY, SourceSchemeGuid: ptr GUID, DestinationSchemeGuid: ptr ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerEnumerate*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + AccessFlags: POWER_DATA_ACCESSOR, + Index: ULONG, + Buffer: ptr UCHAR, + BufferSize: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerGetActiveScheme*( + UserRootPowerKey: HKEY, ActivePolicyGuid: ptr ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerImportPowerScheme*( + RootPowerKey: HKEY, ImportFileNamePath: LPCWSTR, DestinationSchemeGuid: ptr ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadACDefaultIndex*( + RootPowerKey: HKEY, + SchemePersonalityGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + AcDefaultIndex: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadACValue*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Type: PULONG, + Buffer: LPBYTE, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadACValueIndex*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + AcValueIndex: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadDCDefaultIndex*( + RootPowerKey: HKEY, + SchemePersonalityGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + DcDefaultIndex: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadDCValue*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Type: PULONG, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadDCValueIndex*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + DcValueIndex: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadDescription*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadFriendlyName*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadIconResourceSpecifier*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadPossibleDescription*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + PossibleSettingIndex: ULONG, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadPossibleFriendlyName*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + PossibleSettingIndex: ULONG, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadPossibleValue*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Type: PULONG, + PossibleSettingIndex: ULONG, + Buffer: PUCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadSettingAttributes*( + SubGroupGuid: ptr GUID, PowerSettingGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadValueIncrement*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + ValueIncrement: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadValueMax*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + ValueMaximum: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadValueMin*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + ValueMinimum: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReadValueUnitsSpecifier*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: ptr UCHAR, + BufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerRemovePowerSetting*( + PowerSettingSubKeyGuid: ptr GUID, PowerSettingGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerReplaceDefaultPowerSchemes*(): DWORD {. + winapi, stdcall, dynlib: "powrprof", importc +.} + +proc PowerRestoreDefaultPowerSchemes*(): DWORD {. + winapi, stdcall, dynlib: "powrprof", importc +.} + +proc PowerRestoreIndividualDefaultPowerScheme*( + SchemeGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerSetActiveScheme*( + UserRootPowerKey: HKEY, SchemeGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerSettingAccessCheck*( + AccessFlags: POWER_DATA_ACCESSOR, PowerGuid: ptr GUID +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteACDefaultIndex*( + RootSystemPowerKey: HKEY, + SchemePersonalityGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + DefaultAcIndex: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteACValueIndex*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + AcValueIndex: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteDCDefaultIndex*( + RootSystemPowerKey: HKEY, + SchemePersonalityGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + DefaultDcIndex: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteDCValueIndex*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + DcValueIndex: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteDescription*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteFriendlyName*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteIconResourceSpecifier*( + RootPowerKey: HKEY, + SchemeGuid: ptr GUID, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWritePossibleDescription*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + PossibleSettingIndex: ULONG, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWritePossibleFriendlyName*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + PossibleSettingIndex: ULONG, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWritePossibleValue*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Type: ULONG, + PossibleSettingIndex: ULONG, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteSettingAttributes*( + SubGroupGuid: ptr GUID, PowerSettingGuid: ptr GUID, Attributes: DWORD +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteValueIncrement*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + ValueIncrement: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteValueMax*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + ValueMaximum: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteValueMin*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + ValueMinimum: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc PowerWriteValueUnitsSpecifier*( + RootPowerKey: HKEY, + SubGroupOfPowerSettingsGuid: ptr GUID, + PowerSettingGuid: ptr GUID, + Buffer: ptr UCHAR, + BufferSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "powrprof", importc.} + +proc CallNtPowerInformation*( + P1: POWER_INFORMATION_LEVEL, P2: PVOID, P3: ULONG, P4: PVOID, P5: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "powrprof", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/psapi.nim --- a/semicongine/thirdparty/winim/winim/inc/psapi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/psapi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -12,10 +12,12 @@ lpBaseOfDll*: LPVOID SizeOfImage*: DWORD EntryPoint*: LPVOID + LPMODULEINFO* = ptr MODULEINFO PSAPI_WS_WATCH_INFORMATION* {.pure.} = object FaultingPc*: LPVOID FaultingVa*: LPVOID + PPSAPI_WS_WATCH_INFORMATION* = ptr PSAPI_WS_WATCH_INFORMATION PROCESS_MEMORY_COUNTERS* {.pure.} = object cb*: DWORD @@ -28,6 +30,7 @@ QuotaNonPagedPoolUsage*: SIZE_T PagefileUsage*: SIZE_T PeakPagefileUsage*: SIZE_T + PPROCESS_MEMORY_COUNTERS* = ptr PROCESS_MEMORY_COUNTERS PROCESS_MEMORY_COUNTERS_EX* {.pure.} = object cb*: DWORD @@ -41,6 +44,7 @@ PagefileUsage*: SIZE_T PeakPagefileUsage*: SIZE_T PrivateUsage*: SIZE_T + PPROCESS_MEMORY_COUNTERS_EX* = ptr PROCESS_MEMORY_COUNTERS_EX PERFORMANCE_INFORMATION* {.pure.} = object cb*: DWORD @@ -57,6 +61,7 @@ HandleCount*: DWORD ProcessCount*: DWORD ThreadCount*: DWORD + PPERFORMANCE_INFORMATION* = ptr PERFORMANCE_INFORMATION PERFORMACE_INFORMATION* = PERFORMANCE_INFORMATION PPERFORMACE_INFORMATION* = ptr PERFORMANCE_INFORMATION @@ -66,151 +71,356 @@ TotalSize*: SIZE_T TotalInUse*: SIZE_T PeakUsage*: SIZE_T + PENUM_PAGE_FILE_INFORMATION* = ptr ENUM_PAGE_FILE_INFORMATION PSAPI_WS_WATCH_INFORMATION_EX* {.pure.} = object BasicInfo*: PSAPI_WS_WATCH_INFORMATION FaultingThreadId*: ULONG_PTR Flags*: ULONG_PTR + PPSAPI_WS_WATCH_INFORMATION_EX* = ptr PSAPI_WS_WATCH_INFORMATION_EX + when winimCpu64: - type - PSAPI_WORKING_SET_BLOCK_STRUCT1* {.pure.} = object - Protection* {.bitsize:5.}: ULONG_PTR - ShareCount* {.bitsize:3.}: ULONG_PTR - Shared* {.bitsize:1.}: ULONG_PTR - Reserved* {.bitsize:3.}: ULONG_PTR - VirtualPage* {.bitsize:52.}: ULONG_PTR + type PSAPI_WORKING_SET_BLOCK_STRUCT1* {.pure.} = object + Protection* {.bitsize: 5.}: ULONG_PTR + ShareCount* {.bitsize: 3.}: ULONG_PTR + Shared* {.bitsize: 1.}: ULONG_PTR + Reserved* {.bitsize: 3.}: ULONG_PTR + VirtualPage* {.bitsize: 52.}: ULONG_PTR + when winimCpu32: - type - PSAPI_WORKING_SET_BLOCK_STRUCT1* {.pure.} = object - Protection* {.bitsize:5.}: ULONG_PTR - ShareCount* {.bitsize:3.}: ULONG_PTR - Shared* {.bitsize:1.}: ULONG_PTR - Reserved* {.bitsize:3.}: ULONG_PTR - VirtualPage* {.bitsize:20.}: ULONG_PTR + type PSAPI_WORKING_SET_BLOCK_STRUCT1* {.pure.} = object + Protection* {.bitsize: 5.}: ULONG_PTR + ShareCount* {.bitsize: 3.}: ULONG_PTR + Shared* {.bitsize: 1.}: ULONG_PTR + Reserved* {.bitsize: 3.}: ULONG_PTR + VirtualPage* {.bitsize: 20.}: ULONG_PTR + when winimCpu64: - type - PSAPI_WORKING_SET_BLOCK* {.pure, union.} = object - Flags*: ULONG_PTR - struct1*: PSAPI_WORKING_SET_BLOCK_STRUCT1 + type PSAPI_WORKING_SET_BLOCK* {.pure, union.} = object + Flags*: ULONG_PTR + struct1*: PSAPI_WORKING_SET_BLOCK_STRUCT1 + when winimCpu32: - type - PSAPI_WORKING_SET_BLOCK* {.pure, union.} = object - Flags*: ULONG_PTR - struct1*: PSAPI_WORKING_SET_BLOCK_STRUCT1 + type PSAPI_WORKING_SET_BLOCK* {.pure, union.} = object + Flags*: ULONG_PTR + struct1*: PSAPI_WORKING_SET_BLOCK_STRUCT1 + type PSAPI_WORKING_SET_INFORMATION* {.pure.} = object NumberOfEntries*: ULONG_PTR WorkingSetInfo*: array[1, PSAPI_WORKING_SET_BLOCK] + PPSAPI_WORKING_SET_INFORMATION* = ptr PSAPI_WORKING_SET_INFORMATION PSAPI_WORKING_SET_EX_BLOCK_STRUCT1* {.pure.} = object - Valid* {.bitsize:1.}: ULONG_PTR - ShareCount* {.bitsize:3.}: ULONG_PTR - Win32Protection* {.bitsize:11.}: ULONG_PTR - Shared* {.bitsize:1.}: ULONG_PTR - Node* {.bitsize:6.}: ULONG_PTR - Locked* {.bitsize:1.}: ULONG_PTR - LargePage* {.bitsize:1.}: ULONG_PTR + Valid* {.bitsize: 1.}: ULONG_PTR + ShareCount* {.bitsize: 3.}: ULONG_PTR + Win32Protection* {.bitsize: 11.}: ULONG_PTR + Shared* {.bitsize: 1.}: ULONG_PTR + Node* {.bitsize: 6.}: ULONG_PTR + Locked* {.bitsize: 1.}: ULONG_PTR + LargePage* {.bitsize: 1.}: ULONG_PTR + PSAPI_WORKING_SET_EX_BLOCK* {.pure, union.} = object Flags*: ULONG_PTR struct1*: PSAPI_WORKING_SET_EX_BLOCK_STRUCT1 + PPSAPI_WORKING_SET_EX_BLOCK* = ptr PSAPI_WORKING_SET_EX_BLOCK PSAPI_WORKING_SET_EX_INFORMATION* {.pure.} = object VirtualAddress*: PVOID VirtualAttributes*: PSAPI_WORKING_SET_EX_BLOCK + PPSAPI_WORKING_SET_EX_INFORMATION* = ptr PSAPI_WORKING_SET_EX_INFORMATION + const LIST_MODULES_DEFAULT* = 0x0 LIST_MODULES_32BIT* = 0x01 LIST_MODULES_64BIT* = 0x02 LIST_MODULES_ALL* = LIST_MODULES_32BIT or LIST_MODULES_64BIT type - PENUM_PAGE_FILE_CALLBACKW* = proc (pContext: LPVOID, pPageFileInfo: PENUM_PAGE_FILE_INFORMATION, lpFilename: LPCWSTR): WINBOOL {.stdcall.} - PENUM_PAGE_FILE_CALLBACKA* = proc (pContext: LPVOID, pPageFileInfo: PENUM_PAGE_FILE_INFORMATION, lpFilename: LPCSTR): WINBOOL {.stdcall.} -proc EnumProcesses*(lpidProcess: ptr DWORD, cb: DWORD, cbNeeded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc EnumProcessModules*(hProcess: HANDLE, lphModule: ptr HMODULE, cb: DWORD, lpcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetModuleBaseNameA*(hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetModuleBaseNameW*(hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetModuleFileNameExA*(hProcess: HANDLE, hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetModuleFileNameExW*(hProcess: HANDLE, hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetModuleInformation*(hProcess: HANDLE, hModule: HMODULE, lpmodinfo: LPMODULEINFO, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc EmptyWorkingSet*(hProcess: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc QueryWorkingSet*(hProcess: HANDLE, pv: PVOID, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc QueryWorkingSetEx*(hProcess: HANDLE, pv: PVOID, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc InitializeProcessForWsWatch*(hProcess: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetWsChanges*(hProcess: HANDLE, lpWatchInfo: PPSAPI_WS_WATCH_INFORMATION, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetMappedFileNameW*(hProcess: HANDLE, lpv: LPVOID, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetMappedFileNameA*(hProcess: HANDLE, lpv: LPVOID, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc EnumDeviceDrivers*(lpImageBase: ptr LPVOID, cb: DWORD, lpcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetDeviceDriverBaseNameA*(ImageBase: LPVOID, lpBaseName: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetDeviceDriverBaseNameW*(ImageBase: LPVOID, lpBaseName: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetDeviceDriverFileNameA*(ImageBase: LPVOID, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetDeviceDriverFileNameW*(ImageBase: LPVOID, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetProcessMemoryInfo*(Process: HANDLE, ppsmemCounters: PPROCESS_MEMORY_COUNTERS, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetPerformanceInfo*(pPerformanceInformation: PPERFORMACE_INFORMATION, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc EnumPageFilesW*(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKW, pContext: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc EnumPageFilesA*(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKA, pContext: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetProcessImageFileNameA*(hProcess: HANDLE, lpImageFileName: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetProcessImageFileNameW*(hProcess: HANDLE, lpImageFileName: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} -proc GetWsChangesEx*(hProcess: HANDLE, lpWatchInfoEx: PPSAPI_WS_WATCH_INFORMATION_EX, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc EnumProcessModulesEx*(hProcess: HANDLE, lphModule: ptr HMODULE, cb: DWORD, lpcbNeeded: LPDWORD, dwFilterFlag: DWORD): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} -proc `Valid=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Valid = x -proc Valid*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.Valid -proc `ShareCount=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.ShareCount = x -proc ShareCount*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.ShareCount -proc `Win32Protection=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Win32Protection = x -proc Win32Protection*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.Win32Protection -proc `Shared=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Shared = x -proc Shared*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.Shared -proc `Node=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Node = x -proc Node*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.Node -proc `Locked=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Locked = x -proc Locked*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.Locked -proc `LargePage=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.LargePage = x -proc LargePage*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = self.struct1.LargePage + PENUM_PAGE_FILE_CALLBACKW* = proc( + pContext: LPVOID, pPageFileInfo: PENUM_PAGE_FILE_INFORMATION, lpFilename: LPCWSTR + ): WINBOOL {.stdcall.} + PENUM_PAGE_FILE_CALLBACKA* = proc( + pContext: LPVOID, pPageFileInfo: PENUM_PAGE_FILE_INFORMATION, lpFilename: LPCSTR + ): WINBOOL {.stdcall.} + +proc EnumProcesses*( + lpidProcess: ptr DWORD, cb: DWORD, cbNeeded: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc EnumProcessModules*( + hProcess: HANDLE, lphModule: ptr HMODULE, cb: DWORD, lpcbNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetModuleBaseNameA*( + hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetModuleBaseNameW*( + hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetModuleFileNameExA*( + hProcess: HANDLE, hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetModuleFileNameExW*( + hProcess: HANDLE, hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetModuleInformation*( + hProcess: HANDLE, hModule: HMODULE, lpmodinfo: LPMODULEINFO, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc EmptyWorkingSet*( + hProcess: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc QueryWorkingSet*( + hProcess: HANDLE, pv: PVOID, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc QueryWorkingSetEx*( + hProcess: HANDLE, pv: PVOID, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc InitializeProcessForWsWatch*( + hProcess: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetWsChanges*( + hProcess: HANDLE, lpWatchInfo: PPSAPI_WS_WATCH_INFORMATION, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetMappedFileNameW*( + hProcess: HANDLE, lpv: LPVOID, lpFilename: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetMappedFileNameA*( + hProcess: HANDLE, lpv: LPVOID, lpFilename: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc EnumDeviceDrivers*( + lpImageBase: ptr LPVOID, cb: DWORD, lpcbNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetDeviceDriverBaseNameA*( + ImageBase: LPVOID, lpBaseName: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetDeviceDriverBaseNameW*( + ImageBase: LPVOID, lpBaseName: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetDeviceDriverFileNameA*( + ImageBase: LPVOID, lpFilename: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetDeviceDriverFileNameW*( + ImageBase: LPVOID, lpFilename: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetProcessMemoryInfo*( + Process: HANDLE, ppsmemCounters: PPROCESS_MEMORY_COUNTERS, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetPerformanceInfo*( + pPerformanceInformation: PPERFORMACE_INFORMATION, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc EnumPageFilesW*( + pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKW, pContext: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc EnumPageFilesA*( + pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKA, pContext: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetProcessImageFileNameA*( + hProcess: HANDLE, lpImageFileName: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetProcessImageFileNameW*( + hProcess: HANDLE, lpImageFileName: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "psapi", importc.} + +proc GetWsChangesEx*( + hProcess: HANDLE, lpWatchInfoEx: PPSAPI_WS_WATCH_INFORMATION_EX, cb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc EnumProcessModulesEx*( + hProcess: HANDLE, + lphModule: ptr HMODULE, + cb: DWORD, + lpcbNeeded: LPDWORD, + dwFilterFlag: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc.} + +proc `Valid=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Valid = x + +proc Valid*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Valid + +proc `ShareCount=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.ShareCount = x + +proc ShareCount*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.ShareCount + +proc `Win32Protection=`*( + self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR +) {.inline.} = + self.struct1.Win32Protection = x + +proc Win32Protection*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Win32Protection + +proc `Shared=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Shared = x + +proc Shared*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Shared + +proc `Node=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Node = x + +proc Node*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Node + +proc `Locked=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Locked = x + +proc Locked*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Locked + +proc `LargePage=`*(self: var PSAPI_WORKING_SET_EX_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.LargePage = x + +proc LargePage*(self: PSAPI_WORKING_SET_EX_BLOCK): ULONG_PTR {.inline.} = + self.struct1.LargePage + when winimUnicode: - type - PENUM_PAGE_FILE_CALLBACK* = PENUM_PAGE_FILE_CALLBACKW - proc GetModuleBaseName*(hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleBaseNameW".} - proc GetModuleFileNameEx*(hProcess: HANDLE, hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleFileNameExW".} - proc GetMappedFileName*(hProcess: HANDLE, lpv: LPVOID, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetMappedFileNameW".} - proc GetDeviceDriverBaseName*(ImageBase: LPVOID, lpBaseName: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverBaseNameW".} - proc GetDeviceDriverFileName*(ImageBase: LPVOID, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverFileNameW".} - proc EnumPageFiles*(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKW, pContext: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc: "EnumPageFilesW".} - proc GetProcessImageFileName*(hProcess: HANDLE, lpImageFileName: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetProcessImageFileNameW".} + type PENUM_PAGE_FILE_CALLBACK* = PENUM_PAGE_FILE_CALLBACKW + proc GetModuleBaseName*( + hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleBaseNameW".} + + proc GetModuleFileNameEx*( + hProcess: HANDLE, hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleFileNameExW".} + + proc GetMappedFileName*( + hProcess: HANDLE, lpv: LPVOID, lpFilename: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetMappedFileNameW".} + + proc GetDeviceDriverBaseName*( + ImageBase: LPVOID, lpBaseName: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverBaseNameW".} + + proc GetDeviceDriverFileName*( + ImageBase: LPVOID, lpFilename: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverFileNameW".} + + proc EnumPageFiles*( + pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKW, pContext: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc: "EnumPageFilesW".} + + proc GetProcessImageFileName*( + hProcess: HANDLE, lpImageFileName: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetProcessImageFileNameW".} + when winimAnsi: - type - PENUM_PAGE_FILE_CALLBACK* = PENUM_PAGE_FILE_CALLBACKA - proc GetModuleBaseName*(hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleBaseNameA".} - proc GetModuleFileNameEx*(hProcess: HANDLE, hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleFileNameExA".} - proc GetMappedFileName*(hProcess: HANDLE, lpv: LPVOID, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetMappedFileNameA".} - proc GetDeviceDriverBaseName*(ImageBase: LPVOID, lpBaseName: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverBaseNameA".} - proc GetDeviceDriverFileName*(ImageBase: LPVOID, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverFileNameA".} - proc EnumPageFiles*(pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKA, pContext: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc: "EnumPageFilesA".} - proc GetProcessImageFileName*(hProcess: HANDLE, lpImageFileName: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetProcessImageFileNameA".} + type PENUM_PAGE_FILE_CALLBACK* = PENUM_PAGE_FILE_CALLBACKA + proc GetModuleBaseName*( + hProcess: HANDLE, hModule: HMODULE, lpBaseName: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleBaseNameA".} + + proc GetModuleFileNameEx*( + hProcess: HANDLE, hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetModuleFileNameExA".} + + proc GetMappedFileName*( + hProcess: HANDLE, lpv: LPVOID, lpFilename: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetMappedFileNameA".} + + proc GetDeviceDriverBaseName*( + ImageBase: LPVOID, lpBaseName: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverBaseNameA".} + + proc GetDeviceDriverFileName*( + ImageBase: LPVOID, lpFilename: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetDeviceDriverFileNameA".} + + proc EnumPageFiles*( + pCallBackRoutine: PENUM_PAGE_FILE_CALLBACKA, pContext: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "psapi", importc: "EnumPageFilesA".} + + proc GetProcessImageFileName*( + hProcess: HANDLE, lpImageFileName: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "psapi", importc: "GetProcessImageFileNameA".} + when winimCpu64: - type - PPSAPI_WORKING_SET_BLOCK* = ptr PSAPI_WORKING_SET_BLOCK - proc `Protection=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Protection = x - proc Protection*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.Protection - proc `ShareCount=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.ShareCount = x - proc ShareCount*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.ShareCount - proc `Shared=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Shared = x - proc Shared*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.Shared - proc `Reserved=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Reserved = x - proc Reserved*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.Reserved - proc `VirtualPage=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.VirtualPage = x - proc VirtualPage*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.VirtualPage + type PPSAPI_WORKING_SET_BLOCK* = ptr PSAPI_WORKING_SET_BLOCK + proc `Protection=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Protection = x + + proc Protection*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Protection + + proc `ShareCount=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.ShareCount = x + + proc ShareCount*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.ShareCount + + proc `Shared=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Shared = x + + proc Shared*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Shared + + proc `Reserved=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Reserved = x + + proc Reserved*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Reserved + + proc `VirtualPage=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.VirtualPage = x + + proc VirtualPage*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.VirtualPage + when winimCpu32: - type - PPSAPI_WORKING_SET_BLOCK* = ptr PSAPI_WORKING_SET_BLOCK - proc `Protection=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Protection = x - proc Protection*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.Protection - proc `ShareCount=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.ShareCount = x - proc ShareCount*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.ShareCount - proc `Shared=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Shared = x - proc Shared*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.Shared - proc `Reserved=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.Reserved = x - proc Reserved*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.Reserved - proc `VirtualPage=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = self.struct1.VirtualPage = x - proc VirtualPage*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = self.struct1.VirtualPage + type PPSAPI_WORKING_SET_BLOCK* = ptr PSAPI_WORKING_SET_BLOCK + proc `Protection=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Protection = x + + proc Protection*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Protection + + proc `ShareCount=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.ShareCount = x + + proc ShareCount*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.ShareCount + + proc `Shared=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Shared = x + + proc Shared*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Shared + + proc `Reserved=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.Reserved = x + + proc Reserved*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.Reserved + + proc `VirtualPage=`*(self: var PSAPI_WORKING_SET_BLOCK, x: ULONG_PTR) {.inline.} = + self.struct1.VirtualPage = x + + proc VirtualPage*(self: PSAPI_WORKING_SET_BLOCK): ULONG_PTR {.inline.} = + self.struct1.VirtualPage diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/ras.nim --- a/semicongine/thirdparty/winim/winim/inc/ras.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/ras.nim Thu Aug 22 18:32:21 2024 +0700 @@ -50,6 +50,7 @@ CountedString* {.pure.} = object length*: UINT16 string*: ptr WCHAR + StringCorrelationId* = CountedString SystemHealthEntityCount* = UINT16 EnforcementEntityCount* = UINT16 @@ -58,17 +59,21 @@ `type`*: UINT16 size*: UINT16 value*: ptr BYTE + SoH* {.pure.} = object count*: UINT16 attributes*: ptr SoHAttribute + SoHRequest* = SoH SoHResponse* = SoH NetworkSoH* {.pure.} = object size*: UINT16 data*: ptr BYTE + NetworkSoHRequest* = NetworkSoH NetworkSoHResponse* = NetworkSoH LPHRASCONN* = ptr HRASCONN + const RAS_MaxEntryName* = 256 RAS_MaxDeviceType* = 16 @@ -77,105 +82,107 @@ RASCONNW* {.pure, packed.} = object dwSize*: DWORD hrasconn*: HRASCONN - szEntryName*: array[RAS_MaxEntryName + 1 , WCHAR] - szDeviceType*: array[RAS_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , WCHAR] - szPhonebook*: array[MAX_PATH , WCHAR] + szEntryName*: array[RAS_MaxEntryName + 1, WCHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, WCHAR] + szPhonebook*: array[MAX_PATH, WCHAR] padding*: array[2, byte] dwSubEntry*: DWORD guidEntry*: GUID dwFlags*: DWORD luid*: LUID + LPRASCONNW* = ptr RASCONNW RASCONNA* {.pure, packed.} = object dwSize*: DWORD hrasconn*: HRASCONN - szEntryName*: array[RAS_MaxEntryName + 1 , CHAR] - szDeviceType*: array[RAS_MaxDeviceType + 1 , CHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , CHAR] - szPhonebook*: array[MAX_PATH , CHAR] + szEntryName*: array[RAS_MaxEntryName + 1, CHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, CHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, CHAR] + szPhonebook*: array[MAX_PATH, CHAR] padding*: array[1, byte] dwSubEntry*: DWORD guidEntry*: GUID dwFlags*: DWORD luid*: LUID + LPRASCONNA* = ptr RASCONNA + when winimUnicode: - type - RASCONN* = RASCONNW + type RASCONN* = RASCONNW when winimAnsi: - type - RASCONN* = RASCONNA + type RASCONN* = RASCONNA type LPRASCONN* = ptr RASCONN LPRASCONNSTATE* = ptr RASCONNSTATE -const - RAS_MaxPhoneNumber* = 128 + +const RAS_MaxPhoneNumber* = 128 type RASCONNSTATUSW* {.pure.} = object dwSize*: DWORD rasconnstate*: RASCONNSTATE dwError*: DWORD - szDeviceType*: array[RAS_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , WCHAR] - szPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , WCHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, WCHAR] + szPhoneNumber*: array[RAS_MaxPhoneNumber + 1, WCHAR] + LPRASCONNSTATUSW* = ptr RASCONNSTATUSW RASCONNSTATUSA* {.pure.} = object dwSize*: DWORD rasconnstate*: RASCONNSTATE dwError*: DWORD - szDeviceType*: array[RAS_MaxDeviceType + 1 , CHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , CHAR] - szPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , CHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, CHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, CHAR] + szPhoneNumber*: array[RAS_MaxPhoneNumber + 1, CHAR] + LPRASCONNSTATUSA* = ptr RASCONNSTATUSA + when winimUnicode: - type - RASCONNSTATUS* = RASCONNSTATUSW + type RASCONNSTATUS* = RASCONNSTATUSW when winimAnsi: - type - RASCONNSTATUS* = RASCONNSTATUSA -type - LPRASCONNSTATUS* = ptr RASCONNSTATUS -const - RAS_MaxCallbackNumber* = RAS_MaxPhoneNumber + type RASCONNSTATUS* = RASCONNSTATUSA +type LPRASCONNSTATUS* = ptr RASCONNSTATUS +const RAS_MaxCallbackNumber* = RAS_MaxPhoneNumber type RASDIALPARAMSW* {.pure, packed.} = object dwSize*: DWORD - szEntryName*: array[RAS_MaxEntryName + 1 , WCHAR] - szPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , WCHAR] - szCallbackNumber*: array[RAS_MaxCallbackNumber + 1 , WCHAR] - szUserName*: array[UNLEN + 1 , WCHAR] - szPassword*: array[PWLEN + 1 , WCHAR] - szDomain*: array[DNLEN + 1 , WCHAR] + szEntryName*: array[RAS_MaxEntryName + 1, WCHAR] + szPhoneNumber*: array[RAS_MaxPhoneNumber + 1, WCHAR] + szCallbackNumber*: array[RAS_MaxCallbackNumber + 1, WCHAR] + szUserName*: array[UNLEN + 1, WCHAR] + szPassword*: array[PWLEN + 1, WCHAR] + szDomain*: array[DNLEN + 1, WCHAR] padding*: array[2, byte] dwSubEntry*: DWORD dwCallbackId*: ULONG_PTR dwIfIndex*: DWORD + LPRASDIALPARAMSW* = ptr RASDIALPARAMSW RASDIALPARAMSA* {.pure, packed.} = object dwSize*: DWORD - szEntryName*: array[RAS_MaxEntryName + 1 , CHAR] - szPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , CHAR] - szCallbackNumber*: array[RAS_MaxCallbackNumber + 1 , CHAR] - szUserName*: array[UNLEN + 1 , CHAR] - szPassword*: array[PWLEN + 1 , CHAR] - szDomain*: array[DNLEN + 1 , CHAR] + szEntryName*: array[RAS_MaxEntryName + 1, CHAR] + szPhoneNumber*: array[RAS_MaxPhoneNumber + 1, CHAR] + szCallbackNumber*: array[RAS_MaxCallbackNumber + 1, CHAR] + szUserName*: array[UNLEN + 1, CHAR] + szPassword*: array[PWLEN + 1, CHAR] + szDomain*: array[DNLEN + 1, CHAR] padding*: array[3, byte] dwSubEntry*: DWORD dwCallbackId*: ULONG_PTR dwIfIndex*: DWORD + LPRASDIALPARAMSA* = ptr RASDIALPARAMSA + when winimUnicode: - type - RASDIALPARAMS* = RASDIALPARAMSW + type RASDIALPARAMS* = RASDIALPARAMSW when winimAnsi: - type - RASDIALPARAMS* = RASDIALPARAMSA + type RASDIALPARAMS* = RASDIALPARAMSA type LPRASDIALPARAMS* = ptr RASDIALPARAMS RASEAPINFO* {.pure, packed.} = object dwSizeofEapInfo*: DWORD pbEapInfo*: ptr BYTE + RASDIALEXTENSIONS* {.pure, packed.} = object dwSize*: DWORD dwfOptions*: DWORD @@ -183,122 +190,122 @@ reserved*: ULONG_PTR reserved1*: ULONG_PTR RasEapInfo*: RASEAPINFO + LPRASDIALEXTENSIONS* = ptr RASDIALEXTENSIONS RASENTRYNAMEW* {.pure.} = object dwSize*: DWORD - szEntryName*: array[RAS_MaxEntryName + 1 , WCHAR] + szEntryName*: array[RAS_MaxEntryName + 1, WCHAR] dwFlags*: DWORD szPhonebookPath*: array[MAX_PATH + 1, WCHAR] + LPRASENTRYNAMEW* = ptr RASENTRYNAMEW RASENTRYNAMEA* {.pure.} = object dwSize*: DWORD - szEntryName*: array[RAS_MaxEntryName + 1 , CHAR] + szEntryName*: array[RAS_MaxEntryName + 1, CHAR] dwFlags*: DWORD szPhonebookPath*: array[MAX_PATH + 1, CHAR] + LPRASENTRYNAMEA* = ptr RASENTRYNAMEA + when winimUnicode: - type - RASENTRYNAME* = RASENTRYNAMEW + type RASENTRYNAME* = RASENTRYNAMEW when winimAnsi: - type - RASENTRYNAME* = RASENTRYNAMEA + type RASENTRYNAME* = RASENTRYNAMEA type LPRASENTRYNAME* = ptr RASENTRYNAME LPRASPROJECTION* = ptr RASPROJECTION RASAMBW* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szNetBiosError*: array[NETBIOS_NAME_LEN + 1 , WCHAR] + szNetBiosError*: array[NETBIOS_NAME_LEN + 1, WCHAR] bLana*: BYTE + LPRASAMBW* = ptr RASAMBW RASAMBA* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szNetBiosError*: array[NETBIOS_NAME_LEN + 1 , CHAR] + szNetBiosError*: array[NETBIOS_NAME_LEN + 1, CHAR] bLana*: BYTE + LPRASAMBA* = ptr RASAMBA + when winimUnicode: - type - RASAMB* = RASAMBW + type RASAMB* = RASAMBW when winimAnsi: - type - RASAMB* = RASAMBA + type RASAMB* = RASAMBA type LPRASAMB* = ptr RASAMB RASPPPNBFW* {.pure.} = object dwSize*: DWORD dwError*: DWORD dwNetBiosError*: DWORD - szNetBiosError*: array[NETBIOS_NAME_LEN + 1 , WCHAR] - szWorkstationName*: array[NETBIOS_NAME_LEN + 1 , WCHAR] + szNetBiosError*: array[NETBIOS_NAME_LEN + 1, WCHAR] + szWorkstationName*: array[NETBIOS_NAME_LEN + 1, WCHAR] bLana*: BYTE + LPRASPPPNBFW* = ptr RASPPPNBFW RASPPPNBFA* {.pure.} = object dwSize*: DWORD dwError*: DWORD dwNetBiosError*: DWORD - szNetBiosError*: array[NETBIOS_NAME_LEN + 1 , CHAR] - szWorkstationName*: array[NETBIOS_NAME_LEN + 1 , CHAR] + szNetBiosError*: array[NETBIOS_NAME_LEN + 1, CHAR] + szWorkstationName*: array[NETBIOS_NAME_LEN + 1, CHAR] bLana*: BYTE + LPRASPPPNBFA* = ptr RASPPPNBFA + when winimUnicode: - type - RASPPPNBF* = RASPPPNBFW + type RASPPPNBF* = RASPPPNBFW when winimAnsi: - type - RASPPPNBF* = RASPPPNBFA -type - LPRASPPPNBF* = ptr RASPPPNBF -const - RAS_MaxIpxAddress* = 21 + type RASPPPNBF* = RASPPPNBFA +type LPRASPPPNBF* = ptr RASPPPNBF +const RAS_MaxIpxAddress* = 21 type RASPPPIPXW* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szIpxAddress*: array[RAS_MaxIpxAddress + 1 , WCHAR] + szIpxAddress*: array[RAS_MaxIpxAddress + 1, WCHAR] + LPRASPPPIPXW* = ptr RASPPPIPXW RASPPPIPXA* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szIpxAddress*: array[RAS_MaxIpxAddress + 1 , CHAR] + szIpxAddress*: array[RAS_MaxIpxAddress + 1, CHAR] + LPRASPPPIPXA* = ptr RASPPPIPXA + when winimUnicode: - type - RASPPPIPX* = RASPPPIPXW + type RASPPPIPX* = RASPPPIPXW when winimAnsi: - type - RASPPPIPX* = RASPPPIPXA -type - LPRASPPPIPX* = ptr RASPPPIPX -const - RAS_MaxIpAddress* = 15 + type RASPPPIPX* = RASPPPIPXA +type LPRASPPPIPX* = ptr RASPPPIPX +const RAS_MaxIpAddress* = 15 type RASPPPIPW* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szIpAddress*: array[RAS_MaxIpAddress + 1 , WCHAR] - szServerIpAddress*: array[RAS_MaxIpAddress + 1 , WCHAR] + szIpAddress*: array[RAS_MaxIpAddress + 1, WCHAR] + szServerIpAddress*: array[RAS_MaxIpAddress + 1, WCHAR] dwOptions*: DWORD dwServerOptions*: DWORD + LPRASPPPIPW* = ptr RASPPPIPW RASPPPIPA* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szIpAddress*: array[RAS_MaxIpAddress + 1 , CHAR] - szServerIpAddress*: array[RAS_MaxIpAddress + 1 , CHAR] + szIpAddress*: array[RAS_MaxIpAddress + 1, CHAR] + szServerIpAddress*: array[RAS_MaxIpAddress + 1, CHAR] dwOptions*: DWORD dwServerOptions*: DWORD + LPRASPPPIPA* = ptr RASPPPIPA + when winimUnicode: - type - RASPPPIP* = RASPPPIPW + type RASPPPIP* = RASPPPIPW when winimAnsi: - type - RASPPPIP* = RASPPPIPA -type - LPRASPPPIP* = ptr RASPPPIP -const - RAS_MaxReplyMessage* = 1024 + type RASPPPIP* = RASPPPIPA +type LPRASPPPIP* = ptr RASPPPIP +const RAS_MaxReplyMessage* = 1024 type RASPPPLCPW* {.pure.} = object dwSize*: DWORD @@ -316,6 +323,7 @@ szReplyMessage*: array[RAS_MaxReplyMessage, WCHAR] dwOptions*: DWORD dwServerOptions*: DWORD + LPRASPPPLCPW* = ptr RASPPPLCPW RASPPPLCPA* {.pure.} = object dwSize*: DWORD @@ -333,31 +341,32 @@ szReplyMessage*: array[RAS_MaxReplyMessage, CHAR] dwOptions*: DWORD dwServerOptions*: DWORD + LPRASPPPLCPA* = ptr RASPPPLCPA + when winimUnicode: - type - RASPPPLCP* = RASPPPLCPW + type RASPPPLCP* = RASPPPLCPW when winimAnsi: - type - RASPPPLCP* = RASPPPLCPA + type RASPPPLCP* = RASPPPLCPA type LPRASPPPLCP* = ptr RASPPPLCP RASSLIPW* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szIpAddress*: array[RAS_MaxIpAddress + 1 , WCHAR] + szIpAddress*: array[RAS_MaxIpAddress + 1, WCHAR] + LPRASSLIPW* = ptr RASSLIPW RASSLIPA* {.pure.} = object dwSize*: DWORD dwError*: DWORD - szIpAddress*: array[RAS_MaxIpAddress + 1 , CHAR] + szIpAddress*: array[RAS_MaxIpAddress + 1, CHAR] + LPRASSLIPA* = ptr RASSLIPA + when winimUnicode: - type - RASSLIP* = RASSLIPW + type RASSLIP* = RASSLIPW when winimAnsi: - type - RASSLIP* = RASSLIPA + type RASSLIP* = RASSLIPA type LPRASSLIP* = ptr RASSLIP RASPPPCCP* {.pure.} = object @@ -367,23 +376,25 @@ dwOptions*: DWORD dwServerCompressionAlgorithm*: DWORD dwServerOptions*: DWORD + LPRASPPPCCP* = ptr RASPPPCCP RASDEVINFOW* {.pure.} = object dwSize*: DWORD - szDeviceType*: array[RAS_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , WCHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, WCHAR] + LPRASDEVINFOW* = ptr RASDEVINFOW RASDEVINFOA* {.pure.} = object dwSize*: DWORD - szDeviceType*: array[RAS_MaxDeviceType + 1 , CHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , CHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, CHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, CHAR] + LPRASDEVINFOA* = ptr RASDEVINFOA + when winimUnicode: - type - RASDEVINFO* = RASDEVINFOW + type RASDEVINFO* = RASDEVINFOW when winimAnsi: - type - RASDEVINFO* = RASDEVINFOA + type RASDEVINFO* = RASDEVINFOA type LPRASDEVINFO* = ptr RASDEVINFO RASCTRYINFO* {.pure.} = object @@ -392,19 +403,20 @@ dwNextCountryID*: DWORD dwCountryCode*: DWORD dwCountryNameOffset*: DWORD + RASCTRYINFOW* = RASCTRYINFO RASCTRYINFOA* = RASCTRYINFO LPRASCTRYINFOW* = ptr RASCTRYINFOW LPRASCTRYINFOA* = ptr RASCTRYINFOW LPRASCTRYINFO* = ptr RASCTRYINFO -const - RAS_MaxAreaCode* = 10 -type - RASIPADDR* {.pure.} = object - a*: BYTE - b*: BYTE - c*: BYTE - d*: BYTE + +const RAS_MaxAreaCode* = 10 +type RASIPADDR* {.pure.} = object + a*: BYTE + b*: BYTE + c*: BYTE + d*: BYTE + const RAS_MaxPadType* = 32 RAS_MaxX25Address* = 200 @@ -417,8 +429,8 @@ dwfOptions*: DWORD dwCountryID*: DWORD dwCountryCode*: DWORD - szAreaCode*: array[RAS_MaxAreaCode + 1 , WCHAR] - szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , WCHAR] + szAreaCode*: array[RAS_MaxAreaCode + 1, WCHAR] + szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1, WCHAR] dwAlternateOffset*: DWORD ipaddr*: RASIPADDR ipaddrDns*: RASIPADDR @@ -428,15 +440,15 @@ dwFrameSize*: DWORD dwfNetProtocols*: DWORD dwFramingProtocol*: DWORD - szScript*: array[MAX_PATH , WCHAR] - szAutodialDll*: array[MAX_PATH , WCHAR] - szAutodialFunc*: array[MAX_PATH , WCHAR] - szDeviceType*: array[RAS_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , WCHAR] - szX25PadType*: array[RAS_MaxPadType + 1 , WCHAR] - szX25Address*: array[RAS_MaxX25Address + 1 , WCHAR] - szX25Facilities*: array[RAS_MaxFacilities + 1 , WCHAR] - szX25UserData*: array[RAS_MaxUserData + 1 , WCHAR] + szScript*: array[MAX_PATH, WCHAR] + szAutodialDll*: array[MAX_PATH, WCHAR] + szAutodialFunc*: array[MAX_PATH, WCHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, WCHAR] + szX25PadType*: array[RAS_MaxPadType + 1, WCHAR] + szX25Address*: array[RAS_MaxX25Address + 1, WCHAR] + szX25Facilities*: array[RAS_MaxFacilities + 1, WCHAR] + szX25UserData*: array[RAS_MaxUserData + 1, WCHAR] dwChannels*: DWORD dwReserved1*: DWORD dwReserved2*: DWORD @@ -461,14 +473,15 @@ szPrerequisiteEntry*: array[RAS_MaxEntryName + 1, WCHAR] dwRedialCount*: DWORD dwRedialPause*: DWORD + LPRASENTRYW* = ptr RASENTRYW RASENTRYA* {.pure.} = object dwSize*: DWORD dwfOptions*: DWORD dwCountryID*: DWORD dwCountryCode*: DWORD - szAreaCode*: array[RAS_MaxAreaCode + 1 , CHAR] - szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , CHAR] + szAreaCode*: array[RAS_MaxAreaCode + 1, CHAR] + szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1, CHAR] dwAlternateOffset*: DWORD ipaddr*: RASIPADDR ipaddrDns*: RASIPADDR @@ -478,15 +491,15 @@ dwFrameSize*: DWORD dwfNetProtocols*: DWORD dwFramingProtocol*: DWORD - szScript*: array[MAX_PATH , CHAR] - szAutodialDll*: array[MAX_PATH , CHAR] - szAutodialFunc*: array[MAX_PATH , CHAR] - szDeviceType*: array[RAS_MaxDeviceType + 1 , CHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , CHAR] - szX25PadType*: array[RAS_MaxPadType + 1 , CHAR] - szX25Address*: array[RAS_MaxX25Address + 1 , CHAR] - szX25Facilities*: array[RAS_MaxFacilities + 1 , CHAR] - szX25UserData*: array[RAS_MaxUserData + 1 , CHAR] + szScript*: array[MAX_PATH, CHAR] + szAutodialDll*: array[MAX_PATH, CHAR] + szAutodialFunc*: array[MAX_PATH, CHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, CHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, CHAR] + szX25PadType*: array[RAS_MaxPadType + 1, CHAR] + szX25Address*: array[RAS_MaxX25Address + 1, CHAR] + szX25Facilities*: array[RAS_MaxFacilities + 1, CHAR] + szX25UserData*: array[RAS_MaxUserData + 1, CHAR] dwChannels*: DWORD dwReserved1*: DWORD dwReserved2*: DWORD @@ -511,13 +524,13 @@ szPrerequisiteEntry*: array[RAS_MaxEntryName + 1, CHAR] dwRedialCount*: DWORD dwRedialPause*: DWORD + LPRASENTRYA* = ptr RASENTRYA + when winimUnicode: - type - RASENTRY* = RASENTRYW + type RASENTRY* = RASENTRYW when winimAnsi: - type - RASENTRY* = RASENTRYA + type RASENTRY* = RASENTRYA type LPRASENTRY* = ptr RASENTRY RASADPARAMS* {.pure, packed.} = object @@ -526,51 +539,54 @@ dwFlags*: DWORD xDlg*: LONG yDlg*: LONG + LPRASADPARAMS* = ptr RASADPARAMS RASSUBENTRYW* {.pure.} = object dwSize*: DWORD dwfFlags*: DWORD - szDeviceType*: array[RAS_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , WCHAR] - szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , WCHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, WCHAR] + szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1, WCHAR] dwAlternateOffset*: DWORD + LPRASSUBENTRYW* = ptr RASSUBENTRYW RASSUBENTRYA* {.pure.} = object dwSize*: DWORD dwfFlags*: DWORD - szDeviceType*: array[RAS_MaxDeviceType + 1 , CHAR] - szDeviceName*: array[RAS_MaxDeviceName + 1 , CHAR] - szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , CHAR] + szDeviceType*: array[RAS_MaxDeviceType + 1, CHAR] + szDeviceName*: array[RAS_MaxDeviceName + 1, CHAR] + szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1, CHAR] dwAlternateOffset*: DWORD + LPRASSUBENTRYA* = ptr RASSUBENTRYA + when winimUnicode: - type - RASSUBENTRY* = RASSUBENTRYW + type RASSUBENTRY* = RASSUBENTRYW when winimAnsi: - type - RASSUBENTRY* = RASSUBENTRYA + type RASSUBENTRY* = RASSUBENTRYA type LPRASSUBENTRY* = ptr RASSUBENTRY RASCREDENTIALSW* {.pure.} = object dwSize*: DWORD dwMask*: DWORD - szUserName*: array[UNLEN + 1 , WCHAR] - szPassword*: array[PWLEN + 1 , WCHAR] - szDomain*: array[DNLEN + 1 , WCHAR] + szUserName*: array[UNLEN + 1, WCHAR] + szPassword*: array[PWLEN + 1, WCHAR] + szDomain*: array[DNLEN + 1, WCHAR] + LPRASCREDENTIALSW* = ptr RASCREDENTIALSW RASCREDENTIALSA* {.pure.} = object dwSize*: DWORD dwMask*: DWORD - szUserName*: array[UNLEN + 1 , CHAR] - szPassword*: array[PWLEN + 1 , CHAR] - szDomain*: array[DNLEN + 1 , CHAR] + szUserName*: array[UNLEN + 1, CHAR] + szPassword*: array[PWLEN + 1, CHAR] + szDomain*: array[DNLEN + 1, CHAR] + LPRASCREDENTIALSA* = ptr RASCREDENTIALSA + when winimUnicode: - type - RASCREDENTIALS* = RASCREDENTIALSW + type RASCREDENTIALS* = RASCREDENTIALSW when winimAnsi: - type - RASCREDENTIALS* = RASCREDENTIALSA + type RASCREDENTIALS* = RASCREDENTIALSA type LPRASCREDENTIALS* = ptr RASCREDENTIALS RASAUTODIALENTRYW* {.pure.} = object @@ -578,30 +594,33 @@ dwFlags*: DWORD dwDialingLocation*: DWORD szEntry*: array[RAS_MaxEntryName + 1, WCHAR] + LPRASAUTODIALENTRYW* = ptr RASAUTODIALENTRYW RASAUTODIALENTRYA* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD dwDialingLocation*: DWORD szEntry*: array[RAS_MaxEntryName + 1, CHAR] + LPRASAUTODIALENTRYA* = ptr RASAUTODIALENTRYA + when winimUnicode: - type - RASAUTODIALENTRY* = RASAUTODIALENTRYW + type RASAUTODIALENTRY* = RASAUTODIALENTRYW when winimAnsi: - type - RASAUTODIALENTRY* = RASAUTODIALENTRYA + type RASAUTODIALENTRY* = RASAUTODIALENTRYA type LPRASAUTODIALENTRY* = ptr RASAUTODIALENTRY RASEAPUSERIDENTITYW* {.pure.} = object - szUserName*: array[UNLEN + 1 , WCHAR] + szUserName*: array[UNLEN + 1, WCHAR] dwSizeofEapInfo*: DWORD - pbEapInfo*: array[1 , BYTE] + pbEapInfo*: array[1, BYTE] + LPRASEAPUSERIDENTITYW* = ptr RASEAPUSERIDENTITYW RASEAPUSERIDENTITYA* {.pure.} = object - szUserName*: array[UNLEN + 1 , CHAR] + szUserName*: array[UNLEN + 1, CHAR] dwSizeofEapInfo*: DWORD - pbEapInfo*: array[1 , BYTE] + pbEapInfo*: array[1, BYTE] + LPRASEAPUSERIDENTITYA* = ptr RASEAPUSERIDENTITYA RAS_STATS* {.pure.} = object dwSize*: DWORD @@ -619,12 +638,14 @@ dwCompressionRatioOut*: DWORD dwBps*: DWORD dwConnectDuration*: DWORD + PRAS_STATS* = ptr RAS_STATS RASNAPSTATE* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD isolationState*: IsolationState probationTime*: ProbationTime + LPRASNAPSTATE* = ptr RASNAPSTATE RASPPPIPV6* {.pure.} = object dwSize*: DWORD @@ -633,15 +654,18 @@ bPeerInterfaceIdentifier*: array[8, BYTE] bLocalCompressionProtocol*: array[2, BYTE] bPeerCompressionProtocol*: array[2, BYTE] + LPRASPPPIPV6* = ptr RASPPPIPV6 RASIPV4ADDR* = IN_ADDR RASIPV6ADDR* = IN6_ADDR RASTUNNELENDPOINT_UNION1* {.pure, union.} = object ipv4*: RASIPV4ADDR ipv6*: RASIPV6ADDR + RASTUNNELENDPOINT* {.pure.} = object dwType*: DWORD union1*: RASTUNNELENDPOINT_UNION1 + PRASTUNNELENDPOINT* = ptr RASTUNNELENDPOINT RASUPDATECONN* {.pure.} = object version*: RASAPIVERSION @@ -650,6 +674,7 @@ dwIfIndex*: DWORD localEndPoint*: RASTUNNELENDPOINT remoteEndPoint*: RASTUNNELENDPOINT + LPRASUPDATECONN* = ptr RASUPDATECONN RASNOUSERW* {.pure.} = object dwSize*: DWORD @@ -658,6 +683,7 @@ szUserName*: array[UNLEN + 1, WCHAR] szPassword*: array[PWLEN + 1, WCHAR] szDomain*: array[DNLEN + 1, WCHAR] + LPRASNOUSERW* = ptr RASNOUSERW RASNOUSERA* {.pure.} = object dwSize*: DWORD @@ -666,16 +692,17 @@ szUserName*: array[UNLEN + 1, CHAR] szPassword*: array[PWLEN + 1, CHAR] szDomain*: array[DNLEN + 1, CHAR] + LPRASNOUSERA* = ptr RASNOUSERA + when winimUnicode: - type - RASNOUSER* = RASNOUSERW + type RASNOUSER* = RASNOUSERW when winimAnsi: - type - RASNOUSER* = RASNOUSERA + type RASNOUSER* = RASNOUSERA type LPRASNOUSER* = ptr RASNOUSER - RASPBDLGFUNCW* = proc (P1: ULONG_PTR, P2: DWORD, P3: LPWSTR, P4: LPVOID): VOID {.stdcall.} + RASPBDLGFUNCW* = + proc(P1: ULONG_PTR, P2: DWORD, P3: LPWSTR, P4: LPVOID): VOID {.stdcall.} RASPBDLGW* {.pure, packed.} = object dwSize*: DWORD hwndOwner*: HWND @@ -687,8 +714,10 @@ dwError*: DWORD reserved*: ULONG_PTR reserved2*: ULONG_PTR + LPRASPBDLGW* = ptr RASPBDLGW - RASPBDLGFUNCA* = proc (P1: ULONG_PTR, P2: DWORD, P3: LPSTR, P4: LPVOID): VOID {.stdcall.} + RASPBDLGFUNCA* = + proc(P1: ULONG_PTR, P2: DWORD, P3: LPSTR, P4: LPVOID): VOID {.stdcall.} RASPBDLGA* {.pure, packed.} = object dwSize*: DWORD hwndOwner*: HWND @@ -700,13 +729,13 @@ dwError*: DWORD reserved*: ULONG_PTR reserved2*: ULONG_PTR + LPRASPBDLGA* = ptr RASPBDLGA + when winimUnicode: - type - RASPBDLG* = RASPBDLGW + type RASPBDLG* = RASPBDLGW when winimAnsi: - type - RASPBDLG* = RASPBDLGA + type RASPBDLG* = RASPBDLGA type LPRASPBDLG* = ptr RASPBDLG TRASENTRYDLGW* {.pure, packed.} = object @@ -720,6 +749,7 @@ dwError*: DWORD reserved*: ULONG_PTR reserved2*: ULONG_PTR + LPRASENTRYDLGW* = ptr TRASENTRYDLGW TRASENTRYDLGA* {.pure, packed.} = object dwSize*: DWORD @@ -732,13 +762,13 @@ dwError*: DWORD reserved*: ULONG_PTR reserved2*: ULONG_PTR + LPRASENTRYDLGA* = ptr TRASENTRYDLGA + when winimUnicode: - type - TRASENTRYDLG* = TRASENTRYDLGW + type TRASENTRYDLG* = TRASENTRYDLGW when winimAnsi: - type - TRASENTRYDLG* = TRASENTRYDLGA + type TRASENTRYDLG* = TRASENTRYDLGA type LPRASENTRYDLG* = ptr TRASENTRYDLG TRASDIALDLG* {.pure, packed.} = object @@ -751,17 +781,20 @@ dwError*: DWORD reserved*: ULONG_PTR reserved2*: ULONG_PTR + LPRASDIALDLG* = ptr TRASDIALDLG RAS_AUTH_ATTRIBUTE* {.pure.} = object raaType*: RAS_AUTH_ATTRIBUTE_TYPE dwLength*: DWORD Value*: PVOID + PRAS_AUTH_ATTRIBUTE* = ptr RAS_AUTH_ATTRIBUTE PPP_EAP_PACKET* {.pure.} = object Code*: BYTE Id*: BYTE Length*: array[2, BYTE] Data*: array[1, BYTE] + PPPP_EAP_PACKET* = ptr PPP_EAP_PACKET PPP_EAP_INPUT* {.pure.} = object dwSizeInBytes*: DWORD @@ -783,6 +816,7 @@ pUserData*: PBYTE dwSizeOfUserData*: DWORD hReserved*: HANDLE + PPPP_EAP_INPUT* = ptr PPP_EAP_INPUT PPP_EAP_OUTPUT* {.pure.} = object dwSizeInBytes*: DWORD @@ -798,22 +832,35 @@ fSaveUserData*: WINBOOL pUserData*: PBYTE dwSizeOfUserData*: DWORD + PPPP_EAP_OUTPUT* = ptr PPP_EAP_OUTPUT PPP_EAP_INFO* {.pure.} = object dwSizeInBytes*: DWORD dwEapTypeId*: DWORD RasEapInitialize*: proc(fInitialize: WINBOOL): DWORD {.stdcall.} - RasEapBegin*: proc(ppWorkBuffer: ptr pointer, pPppEapInput: ptr PPP_EAP_INPUT): DWORD {.stdcall.} + RasEapBegin*: proc( + ppWorkBuffer: ptr pointer, pPppEapInput: ptr PPP_EAP_INPUT + ): DWORD {.stdcall.} RasEapEnd*: proc(pWorkBuffer: pointer): DWORD {.stdcall.} - RasEapMakeMessage*: proc(pWorkBuf: pointer, pReceivePacket: ptr PPP_EAP_PACKET, pSendPacket: ptr PPP_EAP_PACKET, cbSendPacket: DWORD, pEapOutput: ptr PPP_EAP_OUTPUT, pEapInput: ptr PPP_EAP_INPUT): DWORD {.stdcall.} + RasEapMakeMessage*: proc( + pWorkBuf: pointer, + pReceivePacket: ptr PPP_EAP_PACKET, + pSendPacket: ptr PPP_EAP_PACKET, + cbSendPacket: DWORD, + pEapOutput: ptr PPP_EAP_OUTPUT, + pEapInput: ptr PPP_EAP_INPUT, + ): DWORD {.stdcall.} + PPPP_EAP_INFO* = ptr PPP_EAP_INFO -const - MAX_PHONE_NUMBER_LEN* = 128 + +const MAX_PHONE_NUMBER_LEN* = 128 type RAS_USER_0* {.pure.} = object bfPrivilege*: BYTE wszPhoneNumber*: array[MAX_PHONE_NUMBER_LEN + 1, WCHAR] + PRAS_USER_0* = ptr RAS_USER_0 + const MAX_PORT_NAME* = 16 MAX_MEDIA_NAME* = 16 @@ -826,10 +873,11 @@ dwPortCondition*: RAS_PORT_CONDITION dwTotalNumberOfCalls*: DWORD dwConnectDuration*: DWORD - wszPortName*: array[MAX_PORT_NAME + 1 , WCHAR] - wszMediaName*: array[MAX_MEDIA_NAME + 1 , WCHAR] - wszDeviceName*: array[MAX_DEVICE_NAME + 1 , WCHAR] - wszDeviceType*: array[MAX_DEVICETYPE_NAME + 1 , WCHAR] + wszPortName*: array[MAX_PORT_NAME + 1, WCHAR] + wszMediaName*: array[MAX_MEDIA_NAME + 1, WCHAR] + wszDeviceName*: array[MAX_DEVICE_NAME + 1, WCHAR] + wszDeviceType*: array[MAX_DEVICETYPE_NAME + 1, WCHAR] + PRAS_PORT_0* = ptr RAS_PORT_0 RAS_PORT_1* {.pure.} = object hPort*: HANDLE @@ -848,6 +896,7 @@ dwBufferOverrunErr*: DWORD dwCompressionRatioIn*: DWORD dwCompressionRatioOut*: DWORD + PRAS_PORT_1* = ptr RAS_PORT_1 RAS_PORT_STATISTICS* {.pure.} = object dwBytesXmited*: DWORD @@ -878,30 +927,34 @@ dwPortBytesRcvedUncompressed*: DWORD dwPortBytesXmitedCompressed*: DWORD dwPortBytesRcvedCompressed*: DWORD + PRAS_PORT_STATISTICS* = ptr RAS_PORT_STATISTICS RAS_SERVER_0* {.pure.} = object TotalPorts*: WORD PortsInUse*: WORD RasVersion*: DWORD + PRAS_SERVER_0* = ptr RAS_SERVER_0 -const - MAX_INTERFACE_NAME_LEN* = 256 + +const MAX_INTERFACE_NAME_LEN* = 256 type MPR_INTERFACE_0* {.pure.} = object - wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN+1, WCHAR] + wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN + 1, WCHAR] hInterface*: HANDLE fEnabled*: WINBOOL dwIfType*: ROUTER_INTERFACE_TYPE dwConnectionState*: ROUTER_CONNECTION_STATE fUnReachabilityReasons*: DWORD dwLastError*: DWORD + PMPR_INTERFACE_0* = ptr MPR_INTERFACE_0 MPR_IPINIP_INTERFACE_0* {.pure.} = object - wszFriendlyName*: array[MAX_INTERFACE_NAME_LEN+1, WCHAR] + wszFriendlyName*: array[MAX_INTERFACE_NAME_LEN + 1, WCHAR] Guid*: GUID + PMPR_IPINIP_INTERFACE_0* = ptr MPR_IPINIP_INTERFACE_0 MPR_INTERFACE_1* {.pure.} = object - wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN+1, WCHAR] + wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN + 1, WCHAR] hInterface*: HANDLE fEnabled*: WINBOOL dwIfType*: ROUTER_INTERFACE_TYPE @@ -909,7 +962,9 @@ fUnReachabilityReasons*: DWORD dwLastError*: DWORD lpwsDialoutHoursRestriction*: LPWSTR + PMPR_INTERFACE_1* = ptr MPR_INTERFACE_1 + const MPR_MaxDeviceType* = RAS_MaxDeviceType MPR_MaxDeviceName* = RAS_MaxDeviceName @@ -919,7 +974,7 @@ MPR_MaxUserData* = RAS_MaxUserData type MPR_INTERFACE_2* {.pure.} = object - wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN+1, WCHAR] + wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN + 1, WCHAR] hInterface*: HANDLE fEnabled*: WINBOOL dwIfType*: ROUTER_INTERFACE_TYPE @@ -927,7 +982,7 @@ fUnReachabilityReasons*: DWORD dwLastError*: DWORD dwfOptions*: DWORD - szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1 , WCHAR] + szLocalPhoneNumber*: array[RAS_MaxPhoneNumber + 1, WCHAR] szAlternates*: PWCHAR ipaddr*: DWORD ipaddrDns*: DWORD @@ -935,12 +990,12 @@ ipaddrWins*: DWORD ipaddrWinsAlt*: DWORD dwfNetProtocols*: DWORD - szDeviceType*: array[MPR_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[MPR_MaxDeviceName + 1 , WCHAR] - szX25PadType*: array[MPR_MaxPadType + 1 , WCHAR] - szX25Address*: array[MPR_MaxX25Address + 1 , WCHAR] - szX25Facilities*: array[MPR_MaxFacilities + 1 , WCHAR] - szX25UserData*: array[MPR_MaxUserData + 1 , WCHAR] + szDeviceType*: array[MPR_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[MPR_MaxDeviceName + 1, WCHAR] + szX25PadType*: array[MPR_MaxPadType + 1, WCHAR] + szX25Address*: array[MPR_MaxX25Address + 1, WCHAR] + szX25Facilities*: array[MPR_MaxFacilities + 1, WCHAR] + szX25UserData*: array[MPR_MaxUserData + 1, WCHAR] dwChannels*: DWORD dwSubEntries*: DWORD dwDialMode*: DWORD @@ -956,9 +1011,10 @@ lpbCustomAuthData*: LPBYTE guidId*: GUID dwVpnStrategy*: DWORD + PMPR_INTERFACE_2* = ptr MPR_INTERFACE_2 MPR_INTERFACE_3* {.pure.} = object - wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN+1, WCHAR] + wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN + 1, WCHAR] hInterface*: HANDLE fEnabled*: WINBOOL dwIfType*: ROUTER_INTERFACE_TYPE @@ -999,52 +1055,61 @@ ipv6addrDns*: IN6_ADDR ipv6addrDnsAlt*: IN6_ADDR ipv6addr*: ptr IN6_ADDR + PMPR_INTERFACE_3* = ptr MPR_INTERFACE_3 MPR_DEVICE_0* {.pure.} = object - szDeviceType*: array[MPR_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[MPR_MaxDeviceName + 1 , WCHAR] + szDeviceType*: array[MPR_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[MPR_MaxDeviceName + 1, WCHAR] + PMPR_DEVICE_0* = ptr MPR_DEVICE_0 -const - MPR_MaxPhoneNumber* = RAS_MaxPhoneNumber + +const MPR_MaxPhoneNumber* = RAS_MaxPhoneNumber type MPR_DEVICE_1* {.pure.} = object - szDeviceType*: array[MPR_MaxDeviceType + 1 , WCHAR] - szDeviceName*: array[MPR_MaxDeviceName + 1 , WCHAR] - szLocalPhoneNumber*: array[MPR_MaxPhoneNumber + 1 , WCHAR] + szDeviceType*: array[MPR_MaxDeviceType + 1, WCHAR] + szDeviceName*: array[MPR_MaxDeviceName + 1, WCHAR] + szLocalPhoneNumber*: array[MPR_MaxPhoneNumber + 1, WCHAR] szAlternates*: PWCHAR + PMPR_DEVICE_1* = ptr MPR_DEVICE_1 MPR_CREDENTIALSEX_0* {.pure.} = object dwSize*: DWORD lpbCredentialsInfo*: LPBYTE + PMPR_CREDENTIALSEX_0* = ptr MPR_CREDENTIALSEX_0 MPR_CREDENTIALSEX_1* {.pure.} = object dwSize*: DWORD lpbCredentialsInfo*: LPBYTE + PMPR_CREDENTIALSEX_1* = ptr MPR_CREDENTIALSEX_1 -const - MAX_TRANSPORT_NAME_LEN* = 40 + +const MAX_TRANSPORT_NAME_LEN* = 40 type MPR_TRANSPORT_0* {.pure.} = object dwTransportId*: DWORD hTransport*: HANDLE - wszTransportName*: array[MAX_TRANSPORT_NAME_LEN+1, WCHAR] + wszTransportName*: array[MAX_TRANSPORT_NAME_LEN + 1, WCHAR] + PMPR_TRANSPORT_0* = ptr MPR_TRANSPORT_0 MPR_IFTRANSPORT_0* {.pure.} = object dwTransportId*: DWORD hIfTransport*: HANDLE - wszIfTransportName*: array[MAX_TRANSPORT_NAME_LEN+1, WCHAR] + wszIfTransportName*: array[MAX_TRANSPORT_NAME_LEN + 1, WCHAR] + PMPR_IFTRANSPORT_0* = ptr MPR_IFTRANSPORT_0 MPR_SERVER_0* {.pure.} = object fLanOnlyMode*: WINBOOL dwUpTime*: DWORD dwTotalPorts*: DWORD dwPortsInUse*: DWORD + PMPR_SERVER_0* = ptr MPR_SERVER_0 MPR_SERVER_1* {.pure.} = object dwNumPptpPorts*: DWORD dwPptpPortFlags*: DWORD dwNumL2tpPorts*: DWORD dwL2tpPortFlags*: DWORD + PMPR_SERVER_1* = ptr MPR_SERVER_1 RAS_CONNECTION_0* {.pure.} = object hConnection*: HANDLE @@ -1052,38 +1117,39 @@ dwConnectDuration*: DWORD dwInterfaceType*: ROUTER_INTERFACE_TYPE dwConnectionFlags*: DWORD - wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN + 1 , WCHAR] - wszUserName*: array[UNLEN + 1 , WCHAR] - wszLogonDomain*: array[DNLEN + 1 , WCHAR] - wszRemoteComputer*: array[NETBIOS_NAME_LEN + 1 , WCHAR] + wszInterfaceName*: array[MAX_INTERFACE_NAME_LEN + 1, WCHAR] + wszUserName*: array[UNLEN + 1, WCHAR] + wszLogonDomain*: array[DNLEN + 1, WCHAR] + wszRemoteComputer*: array[NETBIOS_NAME_LEN + 1, WCHAR] + PRAS_CONNECTION_0* = ptr RAS_CONNECTION_0 PPP_NBFCP_INFO* {.pure.} = object dwError*: DWORD - wszWksta*: array[NETBIOS_NAME_LEN + 1 , WCHAR] -const - IPADDRESSLEN* = 15 -type - PPP_IPCP_INFO* {.pure.} = object - dwError*: DWORD - wszAddress*: array[IPADDRESSLEN + 1 , WCHAR] - wszRemoteAddress*: array[IPADDRESSLEN + 1 , WCHAR] -const - IPXADDRESSLEN* = 22 -type - PPP_IPXCP_INFO* {.pure.} = object - dwError*: DWORD - wszAddress*: array[IPXADDRESSLEN + 1 , WCHAR] -const - ATADDRESSLEN* = 32 + wszWksta*: array[NETBIOS_NAME_LEN + 1, WCHAR] + +const IPADDRESSLEN* = 15 +type PPP_IPCP_INFO* {.pure.} = object + dwError*: DWORD + wszAddress*: array[IPADDRESSLEN + 1, WCHAR] + wszRemoteAddress*: array[IPADDRESSLEN + 1, WCHAR] + +const IPXADDRESSLEN* = 22 +type PPP_IPXCP_INFO* {.pure.} = object + dwError*: DWORD + wszAddress*: array[IPXADDRESSLEN + 1, WCHAR] + +const ATADDRESSLEN* = 32 type PPP_ATCP_INFO* {.pure.} = object dwError*: DWORD - wszAddress*: array[ATADDRESSLEN + 1 , WCHAR] + wszAddress*: array[ATADDRESSLEN + 1, WCHAR] + PPP_INFO* {.pure.} = object nbf*: PPP_NBFCP_INFO ip*: PPP_IPCP_INFO ipx*: PPP_IPXCP_INFO at*: PPP_ATCP_INFO + RAS_CONNECTION_1* {.pure.} = object hConnection*: HANDLE hInterface*: HANDLE @@ -1100,19 +1166,22 @@ dwBufferOverrunErr*: DWORD dwCompressionRatioIn*: DWORD dwCompressionRatioOut*: DWORD + PRAS_CONNECTION_1* = ptr RAS_CONNECTION_1 PPP_IPCP_INFO2* {.pure.} = object dwError*: DWORD - wszAddress*: array[IPADDRESSLEN + 1 , WCHAR] - wszRemoteAddress*: array[IPADDRESSLEN + 1 , WCHAR] + wszAddress*: array[IPADDRESSLEN + 1, WCHAR] + wszRemoteAddress*: array[IPADDRESSLEN + 1, WCHAR] dwOptions*: DWORD dwRemoteOptions*: DWORD + PPP_CCP_INFO* {.pure.} = object dwError*: DWORD dwCompressionAlgorithm*: DWORD dwOptions*: DWORD dwRemoteCompressionAlgorithm*: DWORD dwRemoteOptions*: DWORD + PPP_LCP_INFO* {.pure.} = object dwError*: DWORD dwAuthenticationProtocol*: DWORD @@ -1125,6 +1194,7 @@ dwRemoteOptions*: DWORD dwEapTypeId*: DWORD dwRemoteEapTypeId*: DWORD + PPP_INFO_2* {.pure.} = object nbf*: PPP_NBFCP_INFO ip*: PPP_IPCP_INFO2 @@ -1132,20 +1202,24 @@ at*: PPP_ATCP_INFO ccp*: PPP_CCP_INFO lcp*: PPP_LCP_INFO + RAS_CONNECTION_2* {.pure.} = object hConnection*: HANDLE - wszUserName*: array[UNLEN + 1 , WCHAR] + wszUserName*: array[UNLEN + 1, WCHAR] dwInterfaceType*: ROUTER_INTERFACE_TYPE guid*: GUID PppInfo2*: PPP_INFO_2 + PRAS_CONNECTION_2* = ptr RAS_CONNECTION_2 RAS_USER_1* {.pure.} = object bfPrivilege*: BYTE wszPhoneNumber*: array[MAX_PHONE_NUMBER_LEN + 1, WCHAR] bfPrivilege2*: BYTE + PRAS_USER_1* = ptr RAS_USER_1 MPR_FILTER_0* {.pure.} = object fEnabled*: WINBOOL + PMPR_FILTER_0* = ptr MPR_FILTER_0 MPR_SERVER_2* {.pure.} = object dwNumPptpPorts*: DWORD @@ -1154,6 +1228,7 @@ dwL2tpPortFlags*: DWORD dwNumSstpPorts*: DWORD dwSstpPortFlags*: DWORD + PMPR_SERVER_2* = ptr MPR_SERVER_2 PPP_IPV6_CP_INFO* {.pure.} = object dwVersion*: DWORD @@ -1165,6 +1240,7 @@ dwRemoteOptions*: DWORD bPrefix*: array[8, BYTE] dwPrefixLength*: DWORD + PPPP_IPV6_CP_INFO* = ptr PPP_IPV6_CP_INFO PPP_INFO_3* {.pure.} = object nbf*: PPP_NBFCP_INFO @@ -1172,6 +1248,7 @@ ipv6*: PPP_IPV6_CP_INFO ccp*: PPP_CCP_INFO lcp*: PPP_LCP_INFO + RAS_CONNECTION_3* {.pure.} = object dwVersion*: DWORD dwSize*: DWORD @@ -1182,19 +1259,22 @@ PppInfo3*: PPP_INFO_3 rasQuarState*: RAS_QUARANTINE_STATE timer*: FILETIME + PRAS_CONNECTION_3* = ptr RAS_CONNECTION_3 MPRAPI_OBJECT_HEADER* {.pure.} = object revision*: UCHAR `type`*: UCHAR size*: USHORT + PMPRAPI_OBJECT_HEADER* = ptr MPRAPI_OBJECT_HEADER AUTH_VALIDATION_EX* {.pure.} = object Header*: MPRAPI_OBJECT_HEADER hRasConnection*: HANDLE - wszUserName*: array[UNLEN + 1 , WCHAR] - wszLogonDomain*: array[DNLEN + 1 , WCHAR] + wszUserName*: array[UNLEN + 1, WCHAR] + wszLogonDomain*: array[DNLEN + 1, WCHAR] AuthInfoSize*: DWORD AuthInfo*: array[1, BYTE] + PAUTH_VALIDATION_EX* = ptr AUTH_VALIDATION_EX PPP_PROJECTION_INFO* {.pure.} = object dwIPv4NegotiationError*: DWORD @@ -1225,6 +1305,7 @@ dwCcpOptions*: DWORD dwRemoteCompressionAlgorithm*: DWORD dwCcpRemoteOptions*: DWORD + PPPP_PROJECTION_INFO* = ptr PPP_PROJECTION_INFO IKEV2_PROJECTION_INFO* {.pure.} = object dwIPv4NegotiationError*: DWORD @@ -1242,16 +1323,19 @@ dwEapTypeId*: DWORD dwCompressionAlgorithm*: DWORD dwEncryptionMethod*: DWORD + PIKEV2_PROJECTION_INFO* = ptr IKEV2_PROJECTION_INFO PROJECTION_INFO_UNION1* {.pure, union.} = object Ikev2ProjectionInfo*: IKEV2_PROJECTION_INFO PppProjectionInfo*: PPP_PROJECTION_INFO + PROJECTION_INFO* {.pure.} = object projectionInfoType*: UCHAR union1*: PROJECTION_INFO_UNION1 + PPROJECTION_INFO* = ptr PROJECTION_INFO -const - MAXIPADRESSLEN* = 64 + +const MAXIPADRESSLEN* = 64 type RAS_CONNECTION_EX* {.pure.} = object Header*: MPRAPI_OBJECT_HEADER @@ -1278,17 +1362,19 @@ dwCompressionRatioIn*: DWORD dwCompressionRatioOut*: DWORD dwNumSwitchOvers*: DWORD - wszRemoteEndpointAddress*: array[MAXIPADRESSLEN+1, WCHAR] - wszLocalEndpointAddress*: array[MAXIPADRESSLEN+1, WCHAR] + wszRemoteEndpointAddress*: array[MAXIPADRESSLEN + 1, WCHAR] + wszLocalEndpointAddress*: array[MAXIPADRESSLEN + 1, WCHAR] ProjectionInfo*: PROJECTION_INFO hConnection*: HANDLE hInterface*: HANDLE + PRAS_CONNECTION_EX* = ptr RAS_CONNECTION_EX RAS_UPDATE_CONNECTION* {.pure.} = object Header*: MPRAPI_OBJECT_HEADER dwIfIndex*: DWORD - wszLocalEndpointAddress*: array[MAXIPADRESSLEN+1, WCHAR] - wszRemoteEndpointAddress*: array[MAXIPADRESSLEN+1, WCHAR] + wszLocalEndpointAddress*: array[MAXIPADRESSLEN + 1, WCHAR] + wszRemoteEndpointAddress*: array[MAXIPADRESSLEN + 1, WCHAR] + PRAS_UPDATE_CONNECTION* = ptr RAS_UPDATE_CONNECTION IKEV2_TUNNEL_CONFIG_PARAMS* {.pure.} = object dwIdleTimeout*: DWORD @@ -1298,24 +1384,29 @@ dwConfigOptions*: DWORD dwTotalCertificates*: DWORD certificateNames*: ptr CERT_NAME_BLOB + PIKEV2_TUNNEL_CONFIG_PARAMS* = ptr IKEV2_TUNNEL_CONFIG_PARAMS IKEV2_CONFIG_PARAMS* {.pure.} = object dwNumPorts*: DWORD dwPortFlags*: DWORD dwTunnelConfigParamFlags*: DWORD TunnelConfigParams*: IKEV2_TUNNEL_CONFIG_PARAMS + PIKEV2_CONFIG_PARAMS* = ptr IKEV2_CONFIG_PARAMS PPTP_CONFIG_PARAMS* {.pure.} = object dwNumPorts*: DWORD dwPortFlags*: DWORD + PPPTP_CONFIG_PARAMS* = ptr PPTP_CONFIG_PARAMS L2TP_CONFIG_PARAMS* {.pure.} = object dwNumPorts*: DWORD dwPortFlags*: DWORD + PL2TP_CONFIG_PARAMS* = ptr L2TP_CONFIG_PARAMS SSTP_CERT_INFO* {.pure.} = object isDefault*: BOOL certBlob*: CRYPT_HASH_BLOB + PSSTP_CERT_INFO* = ptr SSTP_CERT_INFO SSTP_CONFIG_PARAMS* {.pure.} = object dwNumPorts*: DWORD @@ -1323,17 +1414,20 @@ isUseHttps*: BOOL certAlgorithm*: DWORD sstpCertDetails*: SSTP_CERT_INFO + PSSTP_CONFIG_PARAMS* = ptr SSTP_CONFIG_PARAMS MPRAPI_TUNNEL_CONFIG_PARAMS* {.pure.} = object IkeConfigParams*: IKEV2_CONFIG_PARAMS PptpConfigParams*: PPTP_CONFIG_PARAMS L2tpConfigParams*: L2TP_CONFIG_PARAMS SstpConfigParams*: SSTP_CONFIG_PARAMS + PMPRAPI_TUNNEL_CONFIG_PARAMS* = ptr MPRAPI_TUNNEL_CONFIG_PARAMS MPR_SERVER_SET_CONFIG_EX* {.pure.} = object Header*: MPRAPI_OBJECT_HEADER setConfigForProtocols*: DWORD ConfigParams*: MPRAPI_TUNNEL_CONFIG_PARAMS + PMPR_SERVER_SET_CONFIG_EX* = ptr MPR_SERVER_SET_CONFIG_EX MPR_SERVER_EX* {.pure.} = object Header*: MPRAPI_OBJECT_HEADER @@ -1343,17 +1437,27 @@ dwPortsInUse*: DWORD Reserved*: DWORD ConfigParams*: MPRAPI_TUNNEL_CONFIG_PARAMS + PMPR_SERVER_EX* = ptr MPR_SERVER_EX - PMPRADMINGETIPADDRESSFORUSER* = proc (P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr DWORD, P4: ptr WINBOOL): DWORD {.stdcall.} - PMPRADMINRELEASEIPADRESS* = proc (P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr DWORD): VOID {.stdcall.} - PMPRADMINGETIPV6ADDRESSFORUSER* = proc (P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr IN6_ADDR, P4: ptr WINBOOL): DWORD {.stdcall.} - PMPRADMINRELEASEIPV6ADDRESSFORUSER* = proc (P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr IN6_ADDR): VOID {.stdcall.} - PMPRADMINACCEPTNEWLINK* = proc (P1: ptr RAS_PORT_0, P2: ptr RAS_PORT_1): WINBOOL {.stdcall.} - PMPRADMINLINKHANGUPNOTIFICATION* = proc (P1: ptr RAS_PORT_0, P2: ptr RAS_PORT_1): VOID {.stdcall.} - PMPRADMINTERMINATEDLL* = proc (): DWORD {.stdcall.} - PMPRADMINACCEPTNEWCONNECTIONEX* = proc (P1: ptr RAS_CONNECTION_EX): BOOL {.stdcall.} - PMPRADMINACCEPTREAUTHENTICATIONEX* = proc (P1: ptr RAS_CONNECTION_EX): BOOL {.stdcall.} - PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX* = proc (P1: ptr RAS_CONNECTION_EX): VOID {.stdcall.} + PMPRADMINGETIPADDRESSFORUSER* = proc( + P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr DWORD, P4: ptr WINBOOL + ): DWORD {.stdcall.} + PMPRADMINRELEASEIPADRESS* = + proc(P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr DWORD): VOID {.stdcall.} + PMPRADMINGETIPV6ADDRESSFORUSER* = proc( + P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr IN6_ADDR, P4: ptr WINBOOL + ): DWORD {.stdcall.} + PMPRADMINRELEASEIPV6ADDRESSFORUSER* = + proc(P1: ptr WCHAR, P2: ptr WCHAR, P3: ptr IN6_ADDR): VOID {.stdcall.} + PMPRADMINACCEPTNEWLINK* = + proc(P1: ptr RAS_PORT_0, P2: ptr RAS_PORT_1): WINBOOL {.stdcall.} + PMPRADMINLINKHANGUPNOTIFICATION* = + proc(P1: ptr RAS_PORT_0, P2: ptr RAS_PORT_1): VOID {.stdcall.} + PMPRADMINTERMINATEDLL* = proc(): DWORD {.stdcall.} + PMPRADMINACCEPTNEWCONNECTIONEX* = proc(P1: ptr RAS_CONNECTION_EX): BOOL {.stdcall.} + PMPRADMINACCEPTREAUTHENTICATIONEX* = proc(P1: ptr RAS_CONNECTION_EX): BOOL {.stdcall.} + PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX* = + proc(P1: ptr RAS_CONNECTION_EX): VOID {.stdcall.} MPRAPI_ADMIN_DLL_CALLBACKS* {.pure.} = object revision*: UCHAR lpfnMprAdminGetIpAddressForUser*: PMPRADMINGETIPADDRESSFORUSER @@ -1366,19 +1470,23 @@ lpfnRasAdminAcceptNewConnectionEx*: PMPRADMINACCEPTNEWCONNECTIONEX lpfnRasAdminAcceptReauthenticationEx*: PMPRADMINACCEPTREAUTHENTICATIONEX lpfnRasAdminConnectionHangupNotificationEx*: PMPRADMINCONNECTIONHANGUPNOTIFICATIONEX + PMPRAPI_ADMIN_DLL_CALLBACKS* = ptr MPRAPI_ADMIN_DLL_CALLBACKS SECURITY_MESSAGE* {.pure.} = object dwMsgId*: DWORD hPort*: HPORT dwError*: DWORD - UserName*: array[UNLEN+1, CHAR] - Domain*: array[DNLEN+1, CHAR] + UserName*: array[UNLEN + 1, CHAR] + Domain*: array[DNLEN + 1, CHAR] + PSECURITY_MESSAGE* = ptr SECURITY_MESSAGE RAS_SECURITY_INFO* {.pure.} = object LastError*: DWORD BytesReceived*: DWORD - DeviceName*: array[MAX_DEVICE_NAME+1, CHAR] + DeviceName*: array[MAX_DEVICE_NAME + 1, CHAR] + PRAS_SECURITY_INFO* = ptr RAS_SECURITY_INFO + const freshSoHRequest* = 0x1 shaFixup* = 0x1 @@ -1387,16 +1495,17 @@ maxSoHAttributeSize* = 4000 minNetworkSoHSize* = 12 maxNetworkSoHSize* = 4000 - maxDwordCountPerSoHAttribute* = maxSoHAttributeSize/sizeof(DWORD) - maxIpv4CountPerSoHAttribute* = maxSoHAttributeSize/4 - maxIpv6CountPerSoHAttribute* = maxSoHAttributeSize/16 + maxDwordCountPerSoHAttribute* = maxSoHAttributeSize / sizeof(DWORD) + maxIpv4CountPerSoHAttribute* = maxSoHAttributeSize / 4 + maxIpv6CountPerSoHAttribute* = maxSoHAttributeSize / 16 maxStringLength* = 1024 - maxStringLengthInBytes* = (maxStringLength+1)*sizeof(WCHAR) + maxStringLengthInBytes* = (maxStringLength + 1) * sizeof(WCHAR) maxSystemHealthEntityCount* = 20 maxEnforcerCount* = 20 maxPrivateDataSize* = 200 maxConnectionCountPerEnforcer* = 20 - maxCachedSoHCount* = (maxSystemHealthEntityCount*maxEnforcerCount)*maxConnectionCountPerEnforcer + maxCachedSoHCount* = + (maxSystemHealthEntityCount * maxEnforcerCount) * maxConnectionCountPerEnforcer failureCategoryCount* = 5 componentTypeEnforcementClientSoH* = 0x1 componentTypeEnforcementClientRp* = 0x2 @@ -1454,12 +1563,12 @@ RASCS_SubEntryConnected* = 22 RASCS_SubEntryDisconnected* = 23 RASCS_Interactive* = RASCS_PAUSED - RASCS_RetryAuthentication* = RASCS_PAUSED+1 - RASCS_CallbackSetByCaller* = RASCS_PAUSED+2 - RASCS_PasswordExpired* = RASCS_PAUSED+3 - RASCS_InvokeEapUI* = RASCS_PAUSED+4 + RASCS_RetryAuthentication* = RASCS_PAUSED + 1 + RASCS_CallbackSetByCaller* = RASCS_PAUSED + 2 + RASCS_PasswordExpired* = RASCS_PAUSED + 3 + RASCS_InvokeEapUI* = RASCS_PAUSED + 4 RASCS_Connected* = RASCS_DONE - RASCS_Disconnected* = RASCS_DONE+1 + RASCS_Disconnected* = RASCS_DONE + 1 RDEOPT_UsePrefixSuffix* = 0x00000001 RDEOPT_PausedStates* = 0x00000002 RDEOPT_IgnoreModemSpeaker* = 0x00000004 @@ -1793,278 +1902,278 @@ EAPACTION_IndicateIdentity* = 8 RASBASE* = 600 SUCCESS* = 0 - PENDING* = RASBASE+0 - ERROR_INVALID_PORT_HANDLE* = RASBASE+1 - ERROR_PORT_ALREADY_OPEN* = RASBASE+2 - ERROR_BUFFER_TOO_SMALL* = RASBASE+3 - ERROR_WRONG_INFO_SPECIFIED* = RASBASE+4 - ERROR_PORT_NOT_CONNECTED* = RASBASE+6 - ERROR_DEVICE_DOES_NOT_EXIST* = RASBASE+8 - ERROR_DEVICETYPE_DOES_NOT_EXIST* = RASBASE+9 - ERROR_BUFFER_INVALID* = RASBASE+10 - ERROR_ROUTE_NOT_ALLOCATED* = RASBASE+12 - ERROR_PORT_NOT_FOUND* = RASBASE+15 - ERROR_ASYNC_REQUEST_PENDING* = RASBASE+16 - ERROR_ALREADY_DISCONNECTING* = RASBASE+17 - ERROR_PORT_NOT_OPEN* = RASBASE+18 - ERROR_PORT_DISCONNECTED* = RASBASE+19 - ERROR_CANNOT_OPEN_PHONEBOOK* = RASBASE+21 - ERROR_CANNOT_LOAD_PHONEBOOK* = RASBASE+22 - ERROR_CANNOT_FIND_PHONEBOOK_ENTRY* = RASBASE+23 - ERROR_CANNOT_WRITE_PHONEBOOK* = RASBASE+24 - ERROR_CORRUPT_PHONEBOOK* = RASBASE+25 - ERROR_KEY_NOT_FOUND* = RASBASE+27 - ERROR_DISCONNECTION* = RASBASE+28 - ERROR_REMOTE_DISCONNECTION* = RASBASE+29 - ERROR_HARDWARE_FAILURE* = RASBASE+30 - ERROR_USER_DISCONNECTION* = RASBASE+31 - ERROR_INVALID_SIZE* = RASBASE+32 - ERROR_PORT_NOT_AVAILABLE* = RASBASE+33 - ERROR_UNKNOWN* = RASBASE+35 - ERROR_WRONG_DEVICE_ATTACHED* = RASBASE+36 - ERROR_REQUEST_TIMEOUT* = RASBASE+38 - ERROR_AUTH_INTERNAL* = RASBASE+45 - ERROR_RESTRICTED_LOGON_HOURS* = RASBASE+46 - ERROR_ACCT_DISABLED* = RASBASE+47 - ERROR_PASSWD_EXPIRED* = RASBASE+48 - ERROR_NO_DIALIN_PERMISSION* = RASBASE+49 - ERROR_FROM_DEVICE* = RASBASE+51 - ERROR_UNRECOGNIZED_RESPONSE* = RASBASE+52 - ERROR_MACRO_NOT_FOUND* = RASBASE+53 - ERROR_MACRO_NOT_DEFINED* = RASBASE+54 - ERROR_MESSAGE_MACRO_NOT_FOUND* = RASBASE+55 - ERROR_DEFAULTOFF_MACRO_NOT_FOUND* = RASBASE+56 - ERROR_FILE_COULD_NOT_BE_OPENED* = RASBASE+57 - ERROR_DEVICENAME_TOO_LONG* = RASBASE+58 - ERROR_DEVICENAME_NOT_FOUND* = RASBASE+59 - ERROR_NO_RESPONSES* = RASBASE+60 - ERROR_NO_COMMAND_FOUND* = RASBASE+61 - ERROR_WRONG_KEY_SPECIFIED* = RASBASE+62 - ERROR_UNKNOWN_DEVICE_TYPE* = RASBASE+63 - ERROR_ALLOCATING_MEMORY* = RASBASE+64 - ERROR_PORT_NOT_CONFIGURED* = RASBASE+65 - ERROR_DEVICE_NOT_READY* = RASBASE+66 - ERROR_READING_INI_FILE* = RASBASE+67 - ERROR_NO_CONNECTION* = RASBASE+68 - ERROR_BAD_USAGE_IN_INI_FILE* = RASBASE+69 - ERROR_READING_SECTIONNAME* = RASBASE+70 - ERROR_READING_DEVICETYPE* = RASBASE+71 - ERROR_READING_DEVICENAME* = RASBASE+72 - ERROR_READING_USAGE* = RASBASE+73 - ERROR_LINE_BUSY* = RASBASE+76 - ERROR_VOICE_ANSWER* = RASBASE+77 - ERROR_NO_ANSWER* = RASBASE+78 - ERROR_NO_CARRIER* = RASBASE+79 - ERROR_NO_DIALTONE* = RASBASE+80 - ERROR_AUTHENTICATION_FAILURE* = RASBASE+91 - ERROR_PORT_OR_DEVICE* = RASBASE+92 - ERROR_NOT_BINARY_MACRO* = RASBASE+93 - ERROR_DCB_NOT_FOUND* = RASBASE+94 - ERROR_STATE_MACHINES_NOT_STARTED* = RASBASE+95 - ERROR_STATE_MACHINES_ALREADY_STARTED* = RASBASE+96 - ERROR_PARTIAL_RESPONSE_LOOPING* = RASBASE+97 - ERROR_UNKNOWN_RESPONSE_KEY* = RASBASE+98 - ERROR_RECV_BUF_FULL* = RASBASE+99 - ERROR_CMD_TOO_LONG* = RASBASE+100 - ERROR_UNSUPPORTED_BPS* = RASBASE+101 - ERROR_UNEXPECTED_RESPONSE* = RASBASE+102 - ERROR_INTERACTIVE_MODE* = RASBASE+103 - ERROR_BAD_CALLBACK_NUMBER* = RASBASE+104 - ERROR_INVALID_AUTH_STATE* = RASBASE+105 - ERROR_X25_DIAGNOSTIC* = RASBASE+107 - ERROR_ACCT_EXPIRED* = RASBASE+108 - ERROR_CHANGING_PASSWORD* = RASBASE+109 - ERROR_OVERRUN* = RASBASE+110 - ERROR_RASMAN_CANNOT_INITIALIZE* = RASBASE+111 - ERROR_NO_ACTIVE_ISDN_LINES* = RASBASE+113 - ERROR_IP_CONFIGURATION* = RASBASE+116 - ERROR_NO_IP_ADDRESSES* = RASBASE+117 - ERROR_PPP_TIMEOUT* = RASBASE+118 - ERROR_PPP_NO_PROTOCOLS_CONFIGURED* = RASBASE+120 - ERROR_PPP_NO_RESPONSE* = RASBASE+121 - ERROR_PPP_INVALID_PACKET* = RASBASE+122 - ERROR_PHONE_NUMBER_TOO_LONG* = RASBASE+123 - ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE* = RASBASE+126 - ERROR_NO_IP_RAS_ADAPTER* = RASBASE+128 - ERROR_SLIP_REQUIRES_IP* = RASBASE+129 - ERROR_PROTOCOL_NOT_CONFIGURED* = RASBASE+131 - ERROR_PPP_NOT_CONVERGING* = RASBASE+132 - ERROR_PPP_CP_REJECTED* = RASBASE+133 - ERROR_PPP_LCP_TERMINATED* = RASBASE+134 - ERROR_PPP_REQUIRED_ADDRESS_REJECTED* = RASBASE+135 - ERROR_PPP_NCP_TERMINATED* = RASBASE+136 - ERROR_PPP_LOOPBACK_DETECTED* = RASBASE+137 - ERROR_PPP_NO_ADDRESS_ASSIGNED* = RASBASE+138 - ERROR_CANNOT_USE_LOGON_CREDENTIALS* = RASBASE+139 - ERROR_TAPI_CONFIGURATION* = RASBASE+140 - ERROR_NO_LOCAL_ENCRYPTION* = RASBASE+141 - ERROR_NO_REMOTE_ENCRYPTION* = RASBASE+142 - ERROR_BAD_PHONE_NUMBER* = RASBASE+149 - ERROR_SCRIPT_SYNTAX* = RASBASE+152 - ERROR_HANGUP_FAILED* = RASBASE+153 - ERROR_BUNDLE_NOT_FOUND* = RASBASE+154 - ERROR_CANNOT_DO_CUSTOMDIAL* = RASBASE+155 - ERROR_DIAL_ALREADY_IN_PROGRESS* = RASBASE+156 - ERROR_RASAUTO_CANNOT_INITIALIZE* = RASBASE+157 - ERROR_NO_SMART_CARD_READER* = RASBASE+164 - ERROR_SHARING_ADDRESS_EXISTS* = RASBASE+165 - ERROR_NO_CERTIFICATE* = RASBASE+166 - ERROR_SHARING_MULTIPLE_ADDRESSES* = RASBASE+167 - ERROR_FAILED_TO_ENCRYPT* = RASBASE+168 - ERROR_BAD_ADDRESS_SPECIFIED* = RASBASE+169 - ERROR_CONNECTION_REJECT* = RASBASE+170 - ERROR_CONGESTION* = RASBASE+171 - ERROR_INCOMPATIBLE* = RASBASE+172 - ERROR_NUMBERCHANGED* = RASBASE+173 - ERROR_TEMPFAILURE* = RASBASE+174 - ERROR_BLOCKED* = RASBASE+175 - ERROR_DONOTDISTURB* = RASBASE+176 - ERROR_OUTOFORDER* = RASBASE+177 - ERROR_UNABLE_TO_AUTHENTICATE_SERVER* = RASBASE+178 - ERROR_INVALID_FUNCTION_FOR_ENTRY* = RASBASE+180 - ERROR_SHARING_RRAS_CONFLICT* = RASBASE+182 - ERROR_SHARING_NO_PRIVATE_LAN* = RASBASE+183 - ERROR_NO_DIFF_USER_AT_LOGON* = RASBASE+184 - ERROR_NO_REG_CERT_AT_LOGON* = RASBASE+185 - ERROR_OAKLEY_NO_CERT* = RASBASE+186 - ERROR_OAKLEY_AUTH_FAIL* = RASBASE+187 - ERROR_OAKLEY_ATTRIB_FAIL* = RASBASE+188 - ERROR_OAKLEY_GENERAL_PROCESSING* = RASBASE+189 - ERROR_OAKLEY_NO_PEER_CERT* = RASBASE+190 - ERROR_OAKLEY_NO_POLICY* = RASBASE+191 - ERROR_OAKLEY_TIMED_OUT* = RASBASE+192 - ERROR_OAKLEY_ERROR* = RASBASE+193 - ERROR_UNKNOWN_FRAMED_PROTOCOL* = RASBASE+194 - ERROR_WRONG_TUNNEL_TYPE* = RASBASE+195 - ERROR_UNKNOWN_SERVICE_TYPE* = RASBASE+196 - ERROR_CONNECTING_DEVICE_NOT_FOUND* = RASBASE+197 - ERROR_NO_EAPTLS_CERTIFICATE* = RASBASE+198 - ERROR_SHARING_HOST_ADDRESS_CONFLICT* = RASBASE+199 - ERROR_AUTOMATIC_VPN_FAILED* = RASBASE+200 - ERROR_VALIDATING_SERVER_CERT* = RASBASE+201 - ERROR_READING_SCARD* = RASBASE+202 - ERROR_INVALID_PEAP_COOKIE_CONFIG* = RASBASE+203 - ERROR_INVALID_PEAP_COOKIE_USER* = RASBASE+204 - ERROR_INVALID_MSCHAPV2_CONFIG* = RASBASE+205 - ERROR_VPN_GRE_BLOCKED* = RASBASE+206 - ERROR_VPN_DISCONNECT* = RASBASE+207 - ERROR_VPN_REFUSED* = RASBASE+208 - ERROR_VPN_TIMEOUT* = RASBASE+209 - ERROR_VPN_BAD_CERT* = RASBASE+210 - ERROR_VPN_BAD_PSK* = RASBASE+211 - ERROR_SERVER_POLICY* = RASBASE+212 - ERROR_BROADBAND_ACTIVE* = RASBASE+213 - ERROR_BROADBAND_NO_NIC* = RASBASE+214 - ERROR_BROADBAND_TIMEOUT* = RASBASE+215 - ERROR_FEATURE_DEPRECATED* = RASBASE+216 - ERROR_CANNOT_DELETE* = RASBASE+217 - ERROR_PEAP_CRYPTOBINDING_INVALID* = RASBASE+223 - ERROR_PEAP_CRYPTOBINDING_NOTRECEIVED* = RASBASE+224 - ERROR_EAPTLS_CACHE_CREDENTIALS_INVALID* = RASBASE+226 - ERROR_IPSEC_SERVICE_STOPPED* = RASBASE+227 - ERROR_CANNOT_SET_PORT_INFO* = RASBASE+5 - ERROR_EVENT_INVALID* = RASBASE+7 - ERROR_ROUTE_NOT_AVAILABLE* = RASBASE+11 - ERROR_INVALID_COMPRESSION_SPECIFIED* = RASBASE+13 - ERROR_OUT_OF_BUFFERS* = RASBASE+14 - ERROR_NO_ENDPOINTS* = RASBASE+20 - ERROR_CANNOT_LOAD_STRING* = RASBASE+26 - ERROR_CANNOT_PROJECT_CLIENT* = RASBASE+34 - ERROR_BAD_STRING* = RASBASE+37 - ERROR_CANNOT_GET_LANA* = RASBASE+39 - ERROR_NETBIOS_ERROR* = RASBASE+40 - ERROR_SERVER_OUT_OF_RESOURCES* = RASBASE+41 - ERROR_NAME_EXISTS_ON_NET* = RASBASE+42 - ERROR_SERVER_GENERAL_NET_FAILURE* = RASBASE+43 - WARNING_MSG_ALIAS_NOT_ADDED* = RASBASE+44 - ERROR_SERVER_NOT_RESPONDING* = RASBASE+50 - ERROR_READING_MAXCONNECTBPS* = RASBASE+74 - ERROR_READING_MAXCARRIERBPS* = RASBASE+75 - ERROR_IN_COMMAND* = RASBASE+81 - ERROR_WRITING_SECTIONNAME* = RASBASE+82 - ERROR_WRITING_DEVICETYPE* = RASBASE+83 - ERROR_WRITING_DEVICENAME* = RASBASE+84 - ERROR_WRITING_MAXCONNECTBPS* = RASBASE+85 - ERROR_WRITING_MAXCARRIERBPS* = RASBASE+86 - ERROR_WRITING_USAGE* = RASBASE+87 - ERROR_WRITING_DEFAULTOFF* = RASBASE+88 - ERROR_READING_DEFAULTOFF* = RASBASE+89 - ERROR_EMPTY_INI_FILE* = RASBASE+90 - ERROR_WRITING_INITBPS* = RASBASE+106 - ERROR_BIPLEX_PORT_NOT_AVAILABLE* = RASBASE+112 - ERROR_NO_ISDN_CHANNELS_AVAILABLE* = RASBASE+114 - ERROR_TOO_MANY_LINE_ERRORS* = RASBASE+115 - ERROR_PPP_REMOTE_TERMINATED* = RASBASE+119 - ERROR_IPXCP_NO_DIALOUT_CONFIGURED* = RASBASE+124 - ERROR_IPXCP_NO_DIALIN_CONFIGURED* = RASBASE+125 - ERROR_ACCESSING_TCPCFGDLL* = RASBASE+127 - ERROR_PROJECTION_NOT_COMPLETE* = RASBASE+130 - ERROR_REMOTE_REQUIRES_ENCRYPTION* = RASBASE+143 - ERROR_IPXCP_NET_NUMBER_CONFLICT* = RASBASE+144 - ERROR_INVALID_SMM* = RASBASE+145 - ERROR_SMM_UNINITIALIZED* = RASBASE+146 - ERROR_NO_MAC_FOR_PORT* = RASBASE+147 - ERROR_SMM_TIMEOUT* = RASBASE+148 - ERROR_WRONG_MODULE* = RASBASE+150 - ERROR_INVALID_CALLBACK_NUMBER* = RASBASE+151 - ERROR_CONNECTION_ALREADY_SHARED* = RASBASE+158 - ERROR_SHARING_CHANGE_FAILED* = RASBASE+159 - ERROR_SHARING_ROUTER_INSTALL* = RASBASE+160 - ERROR_SHARE_CONNECTION_FAILED* = RASBASE+161 - ERROR_SHARING_PRIVATE_INSTALL* = RASBASE+162 - ERROR_CANNOT_SHARE_CONNECTION* = RASBASE+163 - ERROR_SMART_CARD_REQUIRED* = RASBASE+179 - ERROR_CERT_FOR_ENCRYPTION_NOT_FOUND* = RASBASE+181 - ERROR_RASQEC_RESOURCE_CREATION_FAILED* = RASBASE+218 - ERROR_RASQEC_NAPAGENT_NOT_ENABLED* = RASBASE+219 - ERROR_RASQEC_NAPAGENT_NOT_CONNECTED* = RASBASE+220 - ERROR_RASQEC_CONN_DOESNOTEXIST* = RASBASE+221 - ERROR_RASQEC_TIMEOUT* = RASBASE+222 - ERROR_INVALID_VPNSTRATEGY* = RASBASE+225 - ERROR_IDLE_TIMEOUT* = RASBASE+228 - ERROR_LINK_FAILURE* = RASBASE+229 - ERROR_USER_LOGOFF* = RASBASE+230 - ERROR_FAST_USER_SWITCH* = RASBASE+231 - ERROR_HIBERNATION* = RASBASE+232 - ERROR_SYSTEM_SUSPENDED* = RASBASE+233 - ERROR_RASMAN_SERVICE_STOPPED* = RASBASE+234 - ERROR_INVALID_SERVER_CERT* = RASBASE+235 - ERROR_NOT_NAP_CAPABLE* = RASBASE+236 - ERROR_INVALID_TUNNELID* = RASBASE+237 - ERROR_UPDATECONNECTION_REQUEST_IN_PROCESS* = RASBASE+238 - ERROR_PROTOCOL_ENGINE_DISABLED* = RASBASE+239 - ERROR_INTERNAL_ADDRESS_FAILURE* = RASBASE+240 - ERROR_FAILED_CP_REQUIRED* = RASBASE+241 - ERROR_TS_UNACCEPTABLE* = RASBASE+242 - ERROR_MOBIKE_DISABLED* = RASBASE+243 - ERROR_CANNOT_INITIATE_MOBIKE_UPDATE* = RASBASE+244 - ERROR_PEAP_SERVER_REJECTED_CLIENT_TLV* = RASBASE+245 - ERROR_INVALID_PREFERENCES* = RASBASE+246 - ERROR_EAPTLS_SCARD_CACHE_CREDENTIALS_INVALID* = RASBASE+247 - ERROR_SSTP_COOKIE_SET_FAILURE* = RASBASE+248 - ERROR_INVALID_PEAP_COOKIE_ATTRIBUTES* = RASBASE+249 - ERROR_EAP_METHOD_NOT_INSTALLED* = RASBASE+250 - ERROR_EAP_METHOD_DOES_NOT_SUPPORT_SSO* = RASBASE+251 - ERROR_EAP_METHOD_OPERATION_NOT_SUPPORTED* = RASBASE+252 - ERROR_EAP_USER_CERT_INVALID* = RASBASE+253 - ERROR_EAP_USER_CERT_EXPIRED* = RASBASE+254 - ERROR_EAP_USER_CERT_REVOKED* = RASBASE+255 - ERROR_EAP_USER_CERT_OTHER_ERROR* = RASBASE+256 - ERROR_EAP_SERVER_CERT_INVALID* = RASBASE+257 - ERROR_EAP_SERVER_CERT_EXPIRED* = RASBASE+258 - ERROR_EAP_SERVER_CERT_REVOKED* = RASBASE+259 - ERROR_EAP_SERVER_CERT_OTHER_ERROR* = RASBASE+260 - ERROR_EAP_USER_ROOT_CERT_NOT_FOUND* = RASBASE+261 - ERROR_EAP_USER_ROOT_CERT_INVALID* = RASBASE+262 - ERROR_EAP_USER_ROOT_CERT_EXPIRED* = RASBASE+263 - ERROR_EAP_SERVER_ROOT_CERT_NOT_FOUND* = RASBASE+264 - ERROR_EAP_SERVER_ROOT_CERT_INVALID* = RASBASE+265 - ERROR_EAP_SERVER_ROOT_CERT_NAME_REQUIRED* = RASBASE+266 - ERROR_PEAP_IDENTITY_MISMATCH* = RASBASE+267 - ERROR_DNSNAME_NOT_RESOLVABLE* = RASBASE+268 - ERROR_EAPTLS_PASSWD_INVALID* = RASBASE+269 - ERROR_IKEV2_PSK_INTERFACE_ALREADY_EXISTS* = RASBASE+270 - RASBASEEND* = RASBASE+270 + PENDING* = RASBASE + 0 + ERROR_INVALID_PORT_HANDLE* = RASBASE + 1 + ERROR_PORT_ALREADY_OPEN* = RASBASE + 2 + ERROR_BUFFER_TOO_SMALL* = RASBASE + 3 + ERROR_WRONG_INFO_SPECIFIED* = RASBASE + 4 + ERROR_PORT_NOT_CONNECTED* = RASBASE + 6 + ERROR_DEVICE_DOES_NOT_EXIST* = RASBASE + 8 + ERROR_DEVICETYPE_DOES_NOT_EXIST* = RASBASE + 9 + ERROR_BUFFER_INVALID* = RASBASE + 10 + ERROR_ROUTE_NOT_ALLOCATED* = RASBASE + 12 + ERROR_PORT_NOT_FOUND* = RASBASE + 15 + ERROR_ASYNC_REQUEST_PENDING* = RASBASE + 16 + ERROR_ALREADY_DISCONNECTING* = RASBASE + 17 + ERROR_PORT_NOT_OPEN* = RASBASE + 18 + ERROR_PORT_DISCONNECTED* = RASBASE + 19 + ERROR_CANNOT_OPEN_PHONEBOOK* = RASBASE + 21 + ERROR_CANNOT_LOAD_PHONEBOOK* = RASBASE + 22 + ERROR_CANNOT_FIND_PHONEBOOK_ENTRY* = RASBASE + 23 + ERROR_CANNOT_WRITE_PHONEBOOK* = RASBASE + 24 + ERROR_CORRUPT_PHONEBOOK* = RASBASE + 25 + ERROR_KEY_NOT_FOUND* = RASBASE + 27 + ERROR_DISCONNECTION* = RASBASE + 28 + ERROR_REMOTE_DISCONNECTION* = RASBASE + 29 + ERROR_HARDWARE_FAILURE* = RASBASE + 30 + ERROR_USER_DISCONNECTION* = RASBASE + 31 + ERROR_INVALID_SIZE* = RASBASE + 32 + ERROR_PORT_NOT_AVAILABLE* = RASBASE + 33 + ERROR_UNKNOWN* = RASBASE + 35 + ERROR_WRONG_DEVICE_ATTACHED* = RASBASE + 36 + ERROR_REQUEST_TIMEOUT* = RASBASE + 38 + ERROR_AUTH_INTERNAL* = RASBASE + 45 + ERROR_RESTRICTED_LOGON_HOURS* = RASBASE + 46 + ERROR_ACCT_DISABLED* = RASBASE + 47 + ERROR_PASSWD_EXPIRED* = RASBASE + 48 + ERROR_NO_DIALIN_PERMISSION* = RASBASE + 49 + ERROR_FROM_DEVICE* = RASBASE + 51 + ERROR_UNRECOGNIZED_RESPONSE* = RASBASE + 52 + ERROR_MACRO_NOT_FOUND* = RASBASE + 53 + ERROR_MACRO_NOT_DEFINED* = RASBASE + 54 + ERROR_MESSAGE_MACRO_NOT_FOUND* = RASBASE + 55 + ERROR_DEFAULTOFF_MACRO_NOT_FOUND* = RASBASE + 56 + ERROR_FILE_COULD_NOT_BE_OPENED* = RASBASE + 57 + ERROR_DEVICENAME_TOO_LONG* = RASBASE + 58 + ERROR_DEVICENAME_NOT_FOUND* = RASBASE + 59 + ERROR_NO_RESPONSES* = RASBASE + 60 + ERROR_NO_COMMAND_FOUND* = RASBASE + 61 + ERROR_WRONG_KEY_SPECIFIED* = RASBASE + 62 + ERROR_UNKNOWN_DEVICE_TYPE* = RASBASE + 63 + ERROR_ALLOCATING_MEMORY* = RASBASE + 64 + ERROR_PORT_NOT_CONFIGURED* = RASBASE + 65 + ERROR_DEVICE_NOT_READY* = RASBASE + 66 + ERROR_READING_INI_FILE* = RASBASE + 67 + ERROR_NO_CONNECTION* = RASBASE + 68 + ERROR_BAD_USAGE_IN_INI_FILE* = RASBASE + 69 + ERROR_READING_SECTIONNAME* = RASBASE + 70 + ERROR_READING_DEVICETYPE* = RASBASE + 71 + ERROR_READING_DEVICENAME* = RASBASE + 72 + ERROR_READING_USAGE* = RASBASE + 73 + ERROR_LINE_BUSY* = RASBASE + 76 + ERROR_VOICE_ANSWER* = RASBASE + 77 + ERROR_NO_ANSWER* = RASBASE + 78 + ERROR_NO_CARRIER* = RASBASE + 79 + ERROR_NO_DIALTONE* = RASBASE + 80 + ERROR_AUTHENTICATION_FAILURE* = RASBASE + 91 + ERROR_PORT_OR_DEVICE* = RASBASE + 92 + ERROR_NOT_BINARY_MACRO* = RASBASE + 93 + ERROR_DCB_NOT_FOUND* = RASBASE + 94 + ERROR_STATE_MACHINES_NOT_STARTED* = RASBASE + 95 + ERROR_STATE_MACHINES_ALREADY_STARTED* = RASBASE + 96 + ERROR_PARTIAL_RESPONSE_LOOPING* = RASBASE + 97 + ERROR_UNKNOWN_RESPONSE_KEY* = RASBASE + 98 + ERROR_RECV_BUF_FULL* = RASBASE + 99 + ERROR_CMD_TOO_LONG* = RASBASE + 100 + ERROR_UNSUPPORTED_BPS* = RASBASE + 101 + ERROR_UNEXPECTED_RESPONSE* = RASBASE + 102 + ERROR_INTERACTIVE_MODE* = RASBASE + 103 + ERROR_BAD_CALLBACK_NUMBER* = RASBASE + 104 + ERROR_INVALID_AUTH_STATE* = RASBASE + 105 + ERROR_X25_DIAGNOSTIC* = RASBASE + 107 + ERROR_ACCT_EXPIRED* = RASBASE + 108 + ERROR_CHANGING_PASSWORD* = RASBASE + 109 + ERROR_OVERRUN* = RASBASE + 110 + ERROR_RASMAN_CANNOT_INITIALIZE* = RASBASE + 111 + ERROR_NO_ACTIVE_ISDN_LINES* = RASBASE + 113 + ERROR_IP_CONFIGURATION* = RASBASE + 116 + ERROR_NO_IP_ADDRESSES* = RASBASE + 117 + ERROR_PPP_TIMEOUT* = RASBASE + 118 + ERROR_PPP_NO_PROTOCOLS_CONFIGURED* = RASBASE + 120 + ERROR_PPP_NO_RESPONSE* = RASBASE + 121 + ERROR_PPP_INVALID_PACKET* = RASBASE + 122 + ERROR_PHONE_NUMBER_TOO_LONG* = RASBASE + 123 + ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE* = RASBASE + 126 + ERROR_NO_IP_RAS_ADAPTER* = RASBASE + 128 + ERROR_SLIP_REQUIRES_IP* = RASBASE + 129 + ERROR_PROTOCOL_NOT_CONFIGURED* = RASBASE + 131 + ERROR_PPP_NOT_CONVERGING* = RASBASE + 132 + ERROR_PPP_CP_REJECTED* = RASBASE + 133 + ERROR_PPP_LCP_TERMINATED* = RASBASE + 134 + ERROR_PPP_REQUIRED_ADDRESS_REJECTED* = RASBASE + 135 + ERROR_PPP_NCP_TERMINATED* = RASBASE + 136 + ERROR_PPP_LOOPBACK_DETECTED* = RASBASE + 137 + ERROR_PPP_NO_ADDRESS_ASSIGNED* = RASBASE + 138 + ERROR_CANNOT_USE_LOGON_CREDENTIALS* = RASBASE + 139 + ERROR_TAPI_CONFIGURATION* = RASBASE + 140 + ERROR_NO_LOCAL_ENCRYPTION* = RASBASE + 141 + ERROR_NO_REMOTE_ENCRYPTION* = RASBASE + 142 + ERROR_BAD_PHONE_NUMBER* = RASBASE + 149 + ERROR_SCRIPT_SYNTAX* = RASBASE + 152 + ERROR_HANGUP_FAILED* = RASBASE + 153 + ERROR_BUNDLE_NOT_FOUND* = RASBASE + 154 + ERROR_CANNOT_DO_CUSTOMDIAL* = RASBASE + 155 + ERROR_DIAL_ALREADY_IN_PROGRESS* = RASBASE + 156 + ERROR_RASAUTO_CANNOT_INITIALIZE* = RASBASE + 157 + ERROR_NO_SMART_CARD_READER* = RASBASE + 164 + ERROR_SHARING_ADDRESS_EXISTS* = RASBASE + 165 + ERROR_NO_CERTIFICATE* = RASBASE + 166 + ERROR_SHARING_MULTIPLE_ADDRESSES* = RASBASE + 167 + ERROR_FAILED_TO_ENCRYPT* = RASBASE + 168 + ERROR_BAD_ADDRESS_SPECIFIED* = RASBASE + 169 + ERROR_CONNECTION_REJECT* = RASBASE + 170 + ERROR_CONGESTION* = RASBASE + 171 + ERROR_INCOMPATIBLE* = RASBASE + 172 + ERROR_NUMBERCHANGED* = RASBASE + 173 + ERROR_TEMPFAILURE* = RASBASE + 174 + ERROR_BLOCKED* = RASBASE + 175 + ERROR_DONOTDISTURB* = RASBASE + 176 + ERROR_OUTOFORDER* = RASBASE + 177 + ERROR_UNABLE_TO_AUTHENTICATE_SERVER* = RASBASE + 178 + ERROR_INVALID_FUNCTION_FOR_ENTRY* = RASBASE + 180 + ERROR_SHARING_RRAS_CONFLICT* = RASBASE + 182 + ERROR_SHARING_NO_PRIVATE_LAN* = RASBASE + 183 + ERROR_NO_DIFF_USER_AT_LOGON* = RASBASE + 184 + ERROR_NO_REG_CERT_AT_LOGON* = RASBASE + 185 + ERROR_OAKLEY_NO_CERT* = RASBASE + 186 + ERROR_OAKLEY_AUTH_FAIL* = RASBASE + 187 + ERROR_OAKLEY_ATTRIB_FAIL* = RASBASE + 188 + ERROR_OAKLEY_GENERAL_PROCESSING* = RASBASE + 189 + ERROR_OAKLEY_NO_PEER_CERT* = RASBASE + 190 + ERROR_OAKLEY_NO_POLICY* = RASBASE + 191 + ERROR_OAKLEY_TIMED_OUT* = RASBASE + 192 + ERROR_OAKLEY_ERROR* = RASBASE + 193 + ERROR_UNKNOWN_FRAMED_PROTOCOL* = RASBASE + 194 + ERROR_WRONG_TUNNEL_TYPE* = RASBASE + 195 + ERROR_UNKNOWN_SERVICE_TYPE* = RASBASE + 196 + ERROR_CONNECTING_DEVICE_NOT_FOUND* = RASBASE + 197 + ERROR_NO_EAPTLS_CERTIFICATE* = RASBASE + 198 + ERROR_SHARING_HOST_ADDRESS_CONFLICT* = RASBASE + 199 + ERROR_AUTOMATIC_VPN_FAILED* = RASBASE + 200 + ERROR_VALIDATING_SERVER_CERT* = RASBASE + 201 + ERROR_READING_SCARD* = RASBASE + 202 + ERROR_INVALID_PEAP_COOKIE_CONFIG* = RASBASE + 203 + ERROR_INVALID_PEAP_COOKIE_USER* = RASBASE + 204 + ERROR_INVALID_MSCHAPV2_CONFIG* = RASBASE + 205 + ERROR_VPN_GRE_BLOCKED* = RASBASE + 206 + ERROR_VPN_DISCONNECT* = RASBASE + 207 + ERROR_VPN_REFUSED* = RASBASE + 208 + ERROR_VPN_TIMEOUT* = RASBASE + 209 + ERROR_VPN_BAD_CERT* = RASBASE + 210 + ERROR_VPN_BAD_PSK* = RASBASE + 211 + ERROR_SERVER_POLICY* = RASBASE + 212 + ERROR_BROADBAND_ACTIVE* = RASBASE + 213 + ERROR_BROADBAND_NO_NIC* = RASBASE + 214 + ERROR_BROADBAND_TIMEOUT* = RASBASE + 215 + ERROR_FEATURE_DEPRECATED* = RASBASE + 216 + ERROR_CANNOT_DELETE* = RASBASE + 217 + ERROR_PEAP_CRYPTOBINDING_INVALID* = RASBASE + 223 + ERROR_PEAP_CRYPTOBINDING_NOTRECEIVED* = RASBASE + 224 + ERROR_EAPTLS_CACHE_CREDENTIALS_INVALID* = RASBASE + 226 + ERROR_IPSEC_SERVICE_STOPPED* = RASBASE + 227 + ERROR_CANNOT_SET_PORT_INFO* = RASBASE + 5 + ERROR_EVENT_INVALID* = RASBASE + 7 + ERROR_ROUTE_NOT_AVAILABLE* = RASBASE + 11 + ERROR_INVALID_COMPRESSION_SPECIFIED* = RASBASE + 13 + ERROR_OUT_OF_BUFFERS* = RASBASE + 14 + ERROR_NO_ENDPOINTS* = RASBASE + 20 + ERROR_CANNOT_LOAD_STRING* = RASBASE + 26 + ERROR_CANNOT_PROJECT_CLIENT* = RASBASE + 34 + ERROR_BAD_STRING* = RASBASE + 37 + ERROR_CANNOT_GET_LANA* = RASBASE + 39 + ERROR_NETBIOS_ERROR* = RASBASE + 40 + ERROR_SERVER_OUT_OF_RESOURCES* = RASBASE + 41 + ERROR_NAME_EXISTS_ON_NET* = RASBASE + 42 + ERROR_SERVER_GENERAL_NET_FAILURE* = RASBASE + 43 + WARNING_MSG_ALIAS_NOT_ADDED* = RASBASE + 44 + ERROR_SERVER_NOT_RESPONDING* = RASBASE + 50 + ERROR_READING_MAXCONNECTBPS* = RASBASE + 74 + ERROR_READING_MAXCARRIERBPS* = RASBASE + 75 + ERROR_IN_COMMAND* = RASBASE + 81 + ERROR_WRITING_SECTIONNAME* = RASBASE + 82 + ERROR_WRITING_DEVICETYPE* = RASBASE + 83 + ERROR_WRITING_DEVICENAME* = RASBASE + 84 + ERROR_WRITING_MAXCONNECTBPS* = RASBASE + 85 + ERROR_WRITING_MAXCARRIERBPS* = RASBASE + 86 + ERROR_WRITING_USAGE* = RASBASE + 87 + ERROR_WRITING_DEFAULTOFF* = RASBASE + 88 + ERROR_READING_DEFAULTOFF* = RASBASE + 89 + ERROR_EMPTY_INI_FILE* = RASBASE + 90 + ERROR_WRITING_INITBPS* = RASBASE + 106 + ERROR_BIPLEX_PORT_NOT_AVAILABLE* = RASBASE + 112 + ERROR_NO_ISDN_CHANNELS_AVAILABLE* = RASBASE + 114 + ERROR_TOO_MANY_LINE_ERRORS* = RASBASE + 115 + ERROR_PPP_REMOTE_TERMINATED* = RASBASE + 119 + ERROR_IPXCP_NO_DIALOUT_CONFIGURED* = RASBASE + 124 + ERROR_IPXCP_NO_DIALIN_CONFIGURED* = RASBASE + 125 + ERROR_ACCESSING_TCPCFGDLL* = RASBASE + 127 + ERROR_PROJECTION_NOT_COMPLETE* = RASBASE + 130 + ERROR_REMOTE_REQUIRES_ENCRYPTION* = RASBASE + 143 + ERROR_IPXCP_NET_NUMBER_CONFLICT* = RASBASE + 144 + ERROR_INVALID_SMM* = RASBASE + 145 + ERROR_SMM_UNINITIALIZED* = RASBASE + 146 + ERROR_NO_MAC_FOR_PORT* = RASBASE + 147 + ERROR_SMM_TIMEOUT* = RASBASE + 148 + ERROR_WRONG_MODULE* = RASBASE + 150 + ERROR_INVALID_CALLBACK_NUMBER* = RASBASE + 151 + ERROR_CONNECTION_ALREADY_SHARED* = RASBASE + 158 + ERROR_SHARING_CHANGE_FAILED* = RASBASE + 159 + ERROR_SHARING_ROUTER_INSTALL* = RASBASE + 160 + ERROR_SHARE_CONNECTION_FAILED* = RASBASE + 161 + ERROR_SHARING_PRIVATE_INSTALL* = RASBASE + 162 + ERROR_CANNOT_SHARE_CONNECTION* = RASBASE + 163 + ERROR_SMART_CARD_REQUIRED* = RASBASE + 179 + ERROR_CERT_FOR_ENCRYPTION_NOT_FOUND* = RASBASE + 181 + ERROR_RASQEC_RESOURCE_CREATION_FAILED* = RASBASE + 218 + ERROR_RASQEC_NAPAGENT_NOT_ENABLED* = RASBASE + 219 + ERROR_RASQEC_NAPAGENT_NOT_CONNECTED* = RASBASE + 220 + ERROR_RASQEC_CONN_DOESNOTEXIST* = RASBASE + 221 + ERROR_RASQEC_TIMEOUT* = RASBASE + 222 + ERROR_INVALID_VPNSTRATEGY* = RASBASE + 225 + ERROR_IDLE_TIMEOUT* = RASBASE + 228 + ERROR_LINK_FAILURE* = RASBASE + 229 + ERROR_USER_LOGOFF* = RASBASE + 230 + ERROR_FAST_USER_SWITCH* = RASBASE + 231 + ERROR_HIBERNATION* = RASBASE + 232 + ERROR_SYSTEM_SUSPENDED* = RASBASE + 233 + ERROR_RASMAN_SERVICE_STOPPED* = RASBASE + 234 + ERROR_INVALID_SERVER_CERT* = RASBASE + 235 + ERROR_NOT_NAP_CAPABLE* = RASBASE + 236 + ERROR_INVALID_TUNNELID* = RASBASE + 237 + ERROR_UPDATECONNECTION_REQUEST_IN_PROCESS* = RASBASE + 238 + ERROR_PROTOCOL_ENGINE_DISABLED* = RASBASE + 239 + ERROR_INTERNAL_ADDRESS_FAILURE* = RASBASE + 240 + ERROR_FAILED_CP_REQUIRED* = RASBASE + 241 + ERROR_TS_UNACCEPTABLE* = RASBASE + 242 + ERROR_MOBIKE_DISABLED* = RASBASE + 243 + ERROR_CANNOT_INITIATE_MOBIKE_UPDATE* = RASBASE + 244 + ERROR_PEAP_SERVER_REJECTED_CLIENT_TLV* = RASBASE + 245 + ERROR_INVALID_PREFERENCES* = RASBASE + 246 + ERROR_EAPTLS_SCARD_CACHE_CREDENTIALS_INVALID* = RASBASE + 247 + ERROR_SSTP_COOKIE_SET_FAILURE* = RASBASE + 248 + ERROR_INVALID_PEAP_COOKIE_ATTRIBUTES* = RASBASE + 249 + ERROR_EAP_METHOD_NOT_INSTALLED* = RASBASE + 250 + ERROR_EAP_METHOD_DOES_NOT_SUPPORT_SSO* = RASBASE + 251 + ERROR_EAP_METHOD_OPERATION_NOT_SUPPORTED* = RASBASE + 252 + ERROR_EAP_USER_CERT_INVALID* = RASBASE + 253 + ERROR_EAP_USER_CERT_EXPIRED* = RASBASE + 254 + ERROR_EAP_USER_CERT_REVOKED* = RASBASE + 255 + ERROR_EAP_USER_CERT_OTHER_ERROR* = RASBASE + 256 + ERROR_EAP_SERVER_CERT_INVALID* = RASBASE + 257 + ERROR_EAP_SERVER_CERT_EXPIRED* = RASBASE + 258 + ERROR_EAP_SERVER_CERT_REVOKED* = RASBASE + 259 + ERROR_EAP_SERVER_CERT_OTHER_ERROR* = RASBASE + 260 + ERROR_EAP_USER_ROOT_CERT_NOT_FOUND* = RASBASE + 261 + ERROR_EAP_USER_ROOT_CERT_INVALID* = RASBASE + 262 + ERROR_EAP_USER_ROOT_CERT_EXPIRED* = RASBASE + 263 + ERROR_EAP_SERVER_ROOT_CERT_NOT_FOUND* = RASBASE + 264 + ERROR_EAP_SERVER_ROOT_CERT_INVALID* = RASBASE + 265 + ERROR_EAP_SERVER_ROOT_CERT_NAME_REQUIRED* = RASBASE + 266 + ERROR_PEAP_IDENTITY_MISMATCH* = RASBASE + 267 + ERROR_DNSNAME_NOT_RESOLVABLE* = RASBASE + 268 + ERROR_EAPTLS_PASSWD_INVALID* = RASBASE + 269 + ERROR_IKEV2_PSK_INTERFACE_ALREADY_EXISTS* = RASBASE + 270 + RASBASEEND* = RASBASE + 270 RASSAPI_MAX_PHONENUMBER_SIZE* = 128 RASSAPI_MAX_MEDIA_NAME* = 16 RASSAPI_MAX_PORT_NAME* = 16 @@ -2075,7 +2184,8 @@ RASPRIV_AdminSetCallback* = 0x02 RASPRIV_CallerSetCallback* = 0x04 RASPRIV_DialinPrivilege* = 0x08 - RASPRIV_CallbackType* = RASPRIV_AdminSetCallback or RASPRIV_CallerSetCallback or RASPRIV_NoCallback + RASPRIV_CallbackType* = + RASPRIV_AdminSetCallback or RASPRIV_CallerSetCallback or RASPRIV_NoCallback RAS_MODEM_OPERATIONAL* = 1 RAS_MODEM_NOT_RESPONDING* = 2 RAS_MODEM_HARDWARE_FAILURE* = 3 @@ -2237,65 +2347,130 @@ SECURITYMSG_ERROR* = 3 PPP_EAP_PACKET_HDR_LEN* = 4 type - RASDIALFUNC* = proc (P1: UINT, P2: RASCONNSTATE, P3: DWORD): VOID {.stdcall.} - RASDIALFUNC1* = proc (P1: HRASCONN, P2: UINT, P3: RASCONNSTATE, P4: DWORD, P5: DWORD): VOID {.stdcall.} - RASDIALFUNC2* = proc (P1: ULONG_PTR, P2: DWORD, P3: HRASCONN, P4: UINT, P5: RASCONNSTATE, P6: DWORD, P7: DWORD): DWORD {.stdcall.} - ORASADFUNC* = proc (P1: HWND, P2: LPSTR, P3: DWORD, P4: LPDWORD): WINBOOL {.stdcall.} - RASADFUNCA* = proc (P1: LPSTR, P2: LPSTR, P3: LPRASADPARAMS, P4: LPDWORD): WINBOOL {.stdcall.} - RASADFUNCW* = proc (P1: LPWSTR, P2: LPWSTR, P3: LPRASADPARAMS, P4: LPDWORD): WINBOOL {.stdcall.} - PFNRASGETBUFFER* = proc (ppBuffer: ptr PBYTE, pdwSize: PDWORD): DWORD {.stdcall.} - PFNRASFREEBUFFER* = proc (pBufer: PBYTE): DWORD {.stdcall.} - PFNRASSENDBUFFER* = proc (hPort: HANDLE, pBuffer: PBYTE, dwSize: DWORD): DWORD {.stdcall.} - PFNRASRECEIVEBUFFER* = proc (hPort: HANDLE, pBuffer: PBYTE, pdwSize: PDWORD, dwTimeOut: DWORD, hEvent: HANDLE): DWORD {.stdcall.} - PFNRASRETRIEVEBUFFER* = proc (hPort: HANDLE, pBuffer: PBYTE, pdwSize: PDWORD): DWORD {.stdcall.} - RasCustomScriptExecuteFn* = proc (hPort: HANDLE, lpszPhonebook: LPCWSTR, lpszEntryName: LPCWSTR, pfnRasGetBuffer: PFNRASGETBUFFER, pfnRasFreeBuffer: PFNRASFREEBUFFER, pfnRasSendBuffer: PFNRASSENDBUFFER, pfnRasReceiveBuffer: PFNRASRECEIVEBUFFER, pfnRasRetrieveBuffer: PFNRASRETRIEVEBUFFER, hWnd: HWND, pRasDialParams: ptr RASDIALPARAMS, pvReserved: PVOID): DWORD {.stdcall.} + RASDIALFUNC* = proc(P1: UINT, P2: RASCONNSTATE, P3: DWORD): VOID {.stdcall.} + RASDIALFUNC1* = proc( + P1: HRASCONN, P2: UINT, P3: RASCONNSTATE, P4: DWORD, P5: DWORD + ): VOID {.stdcall.} + RASDIALFUNC2* = proc( + P1: ULONG_PTR, + P2: DWORD, + P3: HRASCONN, + P4: UINT, + P5: RASCONNSTATE, + P6: DWORD, + P7: DWORD, + ): DWORD {.stdcall.} + ORASADFUNC* = proc(P1: HWND, P2: LPSTR, P3: DWORD, P4: LPDWORD): WINBOOL {.stdcall.} + RASADFUNCA* = + proc(P1: LPSTR, P2: LPSTR, P3: LPRASADPARAMS, P4: LPDWORD): WINBOOL {.stdcall.} + RASADFUNCW* = + proc(P1: LPWSTR, P2: LPWSTR, P3: LPRASADPARAMS, P4: LPDWORD): WINBOOL {.stdcall.} + PFNRASGETBUFFER* = proc(ppBuffer: ptr PBYTE, pdwSize: PDWORD): DWORD {.stdcall.} + PFNRASFREEBUFFER* = proc(pBufer: PBYTE): DWORD {.stdcall.} + PFNRASSENDBUFFER* = + proc(hPort: HANDLE, pBuffer: PBYTE, dwSize: DWORD): DWORD {.stdcall.} + PFNRASRECEIVEBUFFER* = proc( + hPort: HANDLE, pBuffer: PBYTE, pdwSize: PDWORD, dwTimeOut: DWORD, hEvent: HANDLE + ): DWORD {.stdcall.} + PFNRASRETRIEVEBUFFER* = + proc(hPort: HANDLE, pBuffer: PBYTE, pdwSize: PDWORD): DWORD {.stdcall.} + RasCustomScriptExecuteFn* = proc( + hPort: HANDLE, + lpszPhonebook: LPCWSTR, + lpszEntryName: LPCWSTR, + pfnRasGetBuffer: PFNRASGETBUFFER, + pfnRasFreeBuffer: PFNRASFREEBUFFER, + pfnRasSendBuffer: PFNRASSENDBUFFER, + pfnRasReceiveBuffer: PFNRASRECEIVEBUFFER, + pfnRasRetrieveBuffer: PFNRASRETRIEVEBUFFER, + hWnd: HWND, + pRasDialParams: ptr RASDIALPARAMS, + pvReserved: PVOID, + ): DWORD {.stdcall.} RASCOMMSETTINGS* {.pure.} = object dwSize*: DWORD bParity*: BYTE bStop*: BYTE bByteSize*: BYTE bAlign*: BYTE - PFNRASSETCOMMSETTINGS* = proc (hPort: HANDLE, pRasCommSettings: ptr RASCOMMSETTINGS, pvReserved: PVOID): DWORD {.stdcall.} - RasCustomHangUpFn* = proc (hRasConn: HRASCONN): DWORD {.stdcall.} - RasCustomDialFn* = proc (hInstDll: HINSTANCE, lpRasDialExtensions: LPRASDIALEXTENSIONS, lpszPhonebook: LPCWSTR, lpRasDialParams: LPRASDIALPARAMS, dwNotifierType: DWORD, lpvNotifier: LPVOID, lphRasConn: LPHRASCONN, dwFlags: DWORD): DWORD {.stdcall.} - RasCustomDeleteEntryNotifyFn* = proc (lpszPhonebook: LPCWSTR, lpszEntry: LPCWSTR, dwFlags: DWORD): DWORD {.stdcall.} - RasCustomDialDlgFn* = proc (hInstDll: HINSTANCE, dwFlags: DWORD, lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpszPhoneNumber: LPWSTR, lpInfo: LPRASDIALDLG, pvInfo: PVOID): WINBOOL {.stdcall.} - RasCustomEntryDlgFn* = proc (hInstDll: HINSTANCE, lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASENTRYDLG, dwFlags: DWORD): WINBOOL {.stdcall.} - RASSECURITYPROC* = proc (): DWORD {.stdcall.} + + PFNRASSETCOMMSETTINGS* = proc( + hPort: HANDLE, pRasCommSettings: ptr RASCOMMSETTINGS, pvReserved: PVOID + ): DWORD {.stdcall.} + RasCustomHangUpFn* = proc(hRasConn: HRASCONN): DWORD {.stdcall.} + RasCustomDialFn* = proc( + hInstDll: HINSTANCE, + lpRasDialExtensions: LPRASDIALEXTENSIONS, + lpszPhonebook: LPCWSTR, + lpRasDialParams: LPRASDIALPARAMS, + dwNotifierType: DWORD, + lpvNotifier: LPVOID, + lphRasConn: LPHRASCONN, + dwFlags: DWORD, + ): DWORD {.stdcall.} + RasCustomDeleteEntryNotifyFn* = + proc(lpszPhonebook: LPCWSTR, lpszEntry: LPCWSTR, dwFlags: DWORD): DWORD {.stdcall.} + RasCustomDialDlgFn* = proc( + hInstDll: HINSTANCE, + dwFlags: DWORD, + lpszPhonebook: LPWSTR, + lpszEntry: LPWSTR, + lpszPhoneNumber: LPWSTR, + lpInfo: LPRASDIALDLG, + pvInfo: PVOID, + ): WINBOOL {.stdcall.} + RasCustomEntryDlgFn* = proc( + hInstDll: HINSTANCE, + lpszPhonebook: LPWSTR, + lpszEntry: LPWSTR, + lpInfo: LPRASENTRYDLG, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + RASSECURITYPROC* = proc(): DWORD {.stdcall.} IsolationInfo* {.pure.} = object isolationState*: IsolationState probEndTime*: ProbationTime failureUrl*: CountedString + IsolationInfoEx* {.pure.} = object isolationState*: IsolationState extendedIsolationState*: ExtendedIsolationState probEndTime*: ProbationTime failureUrl*: CountedString + FailureCategoryMapping* {.pure.} = object mappingCompliance*: array[5, WINBOOL] + CorrelationId* {.pure.} = object connId*: GUID timeStamp*: FILETIME + ResultCodes* {.pure.} = object count*: UINT16 results*: ptr HRESULT + Ipv4Address* {.pure.} = object `addr`*: array[4, BYTE] + Ipv6Address* {.pure.} = object `addr`*: array[16, BYTE] + FixupInfo* {.pure.} = object state*: FixupState percentage*: Percentage resultCodes*: ResultCodes fixupMsgId*: MessageId + SystemHealthAgentState* {.pure.} = object id*: SystemHealthEntityId shaResultCodes*: ResultCodes failureCategory*: FailureCategory fixupInfo*: FixupInfo + PrivateData* {.pure.} = object size*: UINT16 data*: ptr BYTE + NapComponentRegistrationInfo* {.pure.} = object id*: NapComponentId friendlyName*: CountedString @@ -2306,9 +2481,11 @@ configClsid*: CLSID registrationDate*: FILETIME componentType*: UINT32 + RASCUSTOMSCRIPTEXTENSIONS* {.pure, packed.} = object dwSize*: DWORD pfnRasSetCommSettings*: PFNRASSETCOMMSETTINGS + LEGACY_IDENTITY_UI_PARAMS* {.pure.} = object eapType*: DWORD dwFlags*: DWORD @@ -2320,6 +2497,7 @@ pUserDataOut*: ptr BYTE pwszIdentity*: LPWSTR dwError*: DWORD + LEGACY_INTERACTIVE_UI_PARAMS* {.pure.} = object eapType*: DWORD dwSizeofContextData*: DWORD @@ -2327,327 +2505,1519 @@ dwSizeofInteractiveUIData*: DWORD pInteractiveUIData*: ptr BYTE dwError*: DWORD + RAS_PARAMS_VALUE_String* {.pure.} = object Length*: DWORD Data*: PCHAR + RAS_PARAMS_VALUE* {.pure, union.} = object Number*: DWORD String*: RAS_PARAMS_VALUE_String + RAS_PARAMETERS* {.pure.} = object P_Key*: array[RASSAPI_MAX_PARAM_KEY_SIZE, CHAR] P_Type*: RAS_PARAMS_FORMAT P_Attributes*: BYTE P_Value*: RAS_PARAMS_VALUE + RAS_PPP_NBFCP_RESULT* {.pure.} = object dwError*: DWORD dwNetBiosError*: DWORD szName*: array[NETBIOS_NAME_LEN + 1, CHAR] wszWksta*: array[NETBIOS_NAME_LEN + 1, WCHAR] + RAS_PPP_IPCP_RESULT* {.pure.} = object dwError*: DWORD wszAddress*: array[RAS_IPADDRESSLEN + 1, WCHAR] + RAS_PPP_IPXCP_RESULT* {.pure.} = object dwError*: DWORD wszAddress*: array[RAS_IPXADDRESSLEN + 1, WCHAR] + RAS_PPP_ATCP_RESULT* {.pure.} = object dwError*: DWORD wszAddress*: array[RAS_ATADDRESSLEN + 1, WCHAR] + RAS_PPP_PROJECTION_RESULT* {.pure.} = object nbf*: RAS_PPP_NBFCP_RESULT ip*: RAS_PPP_IPCP_RESULT ipx*: RAS_PPP_IPXCP_RESULT at*: RAS_PPP_ATCP_RESULT -proc RasDialA*(P1: LPRASDIALEXTENSIONS, P2: LPCSTR, P3: LPRASDIALPARAMSA, P4: DWORD, P5: LPVOID, P6: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasDialW*(P1: LPRASDIALEXTENSIONS, P2: LPCWSTR, P3: LPRASDIALPARAMSW, P4: DWORD, P5: LPVOID, P6: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumConnectionsA*(P1: LPRASCONNA, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumConnectionsW*(P1: LPRASCONNW, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumEntriesA*(P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYNAMEA, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumEntriesW*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYNAMEW, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetConnectStatusA*(P1: HRASCONN, P2: LPRASCONNSTATUSA): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetConnectStatusW*(P1: HRASCONN, P2: LPRASCONNSTATUSW): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetErrorStringA*(P1: UINT, P2: LPSTR, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetErrorStringW*(P1: UINT, P2: LPWSTR, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasDialA*( + P1: LPRASDIALEXTENSIONS, + P2: LPCSTR, + P3: LPRASDIALPARAMSA, + P4: DWORD, + P5: LPVOID, + P6: LPHRASCONN, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasDialW*( + P1: LPRASDIALEXTENSIONS, + P2: LPCWSTR, + P3: LPRASDIALPARAMSW, + P4: DWORD, + P5: LPVOID, + P6: LPHRASCONN, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumConnectionsA*( + P1: LPRASCONNA, P2: LPDWORD, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumConnectionsW*( + P1: LPRASCONNW, P2: LPDWORD, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumEntriesA*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYNAMEA, P4: LPDWORD, P5: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumEntriesW*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYNAMEW, P4: LPDWORD, P5: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetConnectStatusA*( + P1: HRASCONN, P2: LPRASCONNSTATUSA +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetConnectStatusW*( + P1: HRASCONN, P2: LPRASCONNSTATUSW +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetErrorStringA*( + P1: UINT, P2: LPSTR, P3: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetErrorStringW*( + P1: UINT, P2: LPWSTR, P3: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + proc RasHangUpA*(P1: HRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} proc RasHangUpW*(P1: HRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetProjectionInfoA*(P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetProjectionInfoW*(P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasCreatePhonebookEntryA*(P1: HWND, P2: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasCreatePhonebookEntryW*(P1: HWND, P2: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEditPhonebookEntryA*(P1: HWND, P2: LPCSTR, P3: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEditPhonebookEntryW*(P1: HWND, P2: LPCWSTR, P3: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetEntryDialParamsA*(P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetEntryDialParamsW*(P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEntryDialParamsA*(P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEntryDialParamsW*(P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumDevicesA*(P1: LPRASDEVINFOA, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumDevicesW*(P1: LPRASDEVINFOW, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetCountryInfoA*(P1: LPRASCTRYINFOA, P2: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetCountryInfoW*(P1: LPRASCTRYINFOW, P2: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEntryPropertiesA*(P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEntryPropertiesW*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetEntryPropertiesA*(P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: DWORD, P5: LPBYTE, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetEntryPropertiesW*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: DWORD, P5: LPBYTE, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasRenameEntryA*(P1: LPCSTR, P2: LPCSTR, P3: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasRenameEntryW*(P1: LPCWSTR, P2: LPCWSTR, P3: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasDeleteEntryA*(P1: LPCSTR, P2: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasDeleteEntryW*(P1: LPCWSTR, P2: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasValidateEntryNameA*(P1: LPCSTR, P2: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasValidateEntryNameW*(P1: LPCWSTR, P2: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasConnectionNotificationA*(P1: HRASCONN, P2: HANDLE, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasConnectionNotificationW*(P1: HRASCONN, P2: HANDLE, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetSubEntryHandleA*(P1: HRASCONN, P2: DWORD, P3: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetSubEntryHandleW*(P1: HRASCONN, P2: DWORD, P3: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetCredentialsA*(P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetCredentialsW*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetCredentialsA*(P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA, P4: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetCredentialsW*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW, P4: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetSubEntryPropertiesA*(P1: LPCSTR, P2: LPCSTR, P3: DWORD, P4: LPRASSUBENTRYA, P5: LPDWORD, P6: LPBYTE, P7: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetSubEntryPropertiesW*(P1: LPCWSTR, P2: LPCWSTR, P3: DWORD, P4: LPRASSUBENTRYW, P5: LPDWORD, P6: LPBYTE, P7: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetSubEntryPropertiesA*(P1: LPCSTR, P2: LPCSTR, P3: DWORD, P4: LPRASSUBENTRYA, P5: DWORD, P6: LPBYTE, P7: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetSubEntryPropertiesW*(P1: LPCWSTR, P2: LPCWSTR, P3: DWORD, P4: LPRASSUBENTRYW, P5: DWORD, P6: LPBYTE, P7: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetAutodialAddressA*(P1: LPCSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYA, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetAutodialAddressW*(P1: LPCWSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYW, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetAutodialAddressA*(P1: LPCSTR, P2: DWORD, P3: LPRASAUTODIALENTRYA, P4: DWORD, P5: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetAutodialAddressW*(P1: LPCWSTR, P2: DWORD, P3: LPRASAUTODIALENTRYW, P4: DWORD, P5: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumAutodialAddressesA*(P1: ptr LPSTR, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasEnumAutodialAddressesW*(P1: ptr LPWSTR, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetAutodialEnableA*(P1: DWORD, P2: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetAutodialEnableW*(P1: DWORD, P2: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetAutodialEnableA*(P1: DWORD, P2: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetAutodialEnableW*(P1: DWORD, P2: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetAutodialParamA*(P1: DWORD, P2: LPVOID, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetAutodialParamW*(P1: DWORD, P2: LPVOID, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetAutodialParamA*(P1: DWORD, P2: LPVOID, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetAutodialParamW*(P1: DWORD, P2: LPVOID, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasInvokeEapUI*(P1: HRASCONN, P2: DWORD, P3: LPRASDIALEXTENSIONS, P4: HWND): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetLinkStatistics*(hRasConn: HRASCONN, dwSubEntry: DWORD, lpStatistics: ptr RAS_STATS): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetConnectionStatistics*(hRasConn: HRASCONN, lpStatistics: ptr RAS_STATS): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasClearLinkStatistics*(hRasConn: HRASCONN, dwSubEntry: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasClearConnectionStatistics*(hRasConn: HRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEapUserDataA*(hToken: HANDLE, pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbEapData: ptr BYTE, pdwSizeofEapData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEapUserDataW*(hToken: HANDLE, pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbEapData: ptr BYTE, pdwSizeofEapData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetEapUserDataA*(hToken: HANDLE, pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbEapData: ptr BYTE, dwSizeofEapData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetEapUserDataW*(hToken: HANDLE, pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbEapData: ptr BYTE, dwSizeofEapData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetCustomAuthDataA*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbCustomAuthData: ptr BYTE, pdwSizeofCustomAuthData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetCustomAuthDataW*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbCustomAuthData: ptr BYTE, pdwSizeofCustomAuthData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetCustomAuthDataA*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbCustomAuthData: ptr BYTE, dwSizeofCustomAuthData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasSetCustomAuthDataW*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbCustomAuthData: ptr BYTE, dwSizeofCustomAuthData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEapUserIdentityW*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, dwFlags: DWORD, hwnd: HWND, ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYW): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasGetEapUserIdentityA*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, dwFlags: DWORD, hwnd: HWND, ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYA): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasFreeEapUserIdentityW*(pRasEapUserIdentity: LPRASEAPUSERIDENTITYW): VOID {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasFreeEapUserIdentityA*(pRasEapUserIdentity: LPRASEAPUSERIDENTITYA): VOID {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasDeleteSubEntryA*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, dwSubentryId: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasDeleteSubEntryW*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, dwSubEntryId: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} -proc RasPhonebookDlgA*(lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASPBDLGA): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} -proc RasPhonebookDlgW*(lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASPBDLGW): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} -proc RasEntryDlgA*(lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASENTRYDLGA): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} -proc RasEntryDlgW*(lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASENTRYDLGW): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} -proc RasDialDlgA*(lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpszPhoneNumber: LPSTR, lpInfo: LPRASDIALDLG): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} -proc RasDialDlgW*(lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpszPhoneNumber: LPWSTR, lpInfo: LPRASDIALDLG): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} -proc MprAdminConnectionEnum*(hRasServer: RAS_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE, dwPrefMaxLen: DWORD, lpdwEntriesRead: LPDWORD, lpdwTotalEntries: LPDWORD, lpdwResumeHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminPortEnum*(hRasServer: RAS_SERVER_HANDLE, dwLevel: DWORD, hConnection: HANDLE, lplpbBuffer: ptr LPBYTE, dwPrefMaxLen: DWORD, lpdwEntriesRead: LPDWORD, lpdwTotalEntries: LPDWORD, lpdwResumeHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminConnectionGetInfo*(hRasServer: RAS_SERVER_HANDLE, dwLevel: DWORD, hConnection: HANDLE, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminPortGetInfo*(hRasServer: RAS_SERVER_HANDLE, dwLevel: DWORD, hPort: HANDLE, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminConnectionClearStats*(hRasServer: RAS_SERVER_HANDLE, hConnection: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminPortClearStats*(hRasServer: RAS_SERVER_HANDLE, hPort: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminPortReset*(hRasServer: RAS_SERVER_HANDLE, hPort: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminPortDisconnect*(hRasServer: RAS_SERVER_HANDLE, hPort: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminConnectionRemoveQuarantine*(hRasServer: HANDLE, hRasConnection: HANDLE, fIsIpAddress: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminUserGetInfo*(lpszServer: ptr WCHAR, lpszUser: ptr WCHAR, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminUserSetInfo*(lpszServer: ptr WCHAR, lpszUser: ptr WCHAR, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminSendUserMessage*(hMprServer: MPR_SERVER_HANDLE, hConnection: HANDLE, lpwszMessage: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminGetPDCServer*(lpszDomain: ptr WCHAR, lpszServer: ptr WCHAR, lpszPDCServer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminIsServiceRunning*(lpwsServerName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminServerConnect*(lpwsServerName: LPWSTR, phMprServer: ptr MPR_SERVER_HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminServerDisconnect*(hMprServer: MPR_SERVER_HANDLE): VOID {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminServerGetCredentials*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminServerSetCredentials*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminBufferFree*(pBuffer: LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminGetErrorString*(dwError: DWORD, lpwsErrorString: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminServerGetInfo*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminServerSetInfo*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminEstablishDomainRasServer*(pszDomain: PWCHAR, pszMachine: PWCHAR, bEnable: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminIsDomainRasServer*(pszDomain: PWCHAR, pszMachine: PWCHAR, pbIsRasServer: PBOOL): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminTransportCreate*(hMprServer: MPR_SERVER_HANDLE, dwTransportId: DWORD, lpwsTransportName: LPWSTR, pGlobalInfo: LPBYTE, dwGlobalInfoSize: DWORD, pClientInterfaceInfo: LPBYTE, dwClientInterfaceInfoSize: DWORD, lpwsDLLPath: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminTransportSetInfo*(hMprServer: MPR_SERVER_HANDLE, dwTransportId: DWORD, pGlobalInfo: LPBYTE, dwGlobalInfoSize: DWORD, pClientInterfaceInfo: LPBYTE, dwClientInterfaceInfoSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminTransportGetInfo*(hMprServer: MPR_SERVER_HANDLE, dwTransportId: DWORD, ppGlobalInfo: ptr LPBYTE, lpdwGlobalInfoSize: LPDWORD, ppClientInterfaceInfo: ptr LPBYTE, lpdwClientInterfaceInfoSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminDeviceEnum*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE, lpdwTotalEntries: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceGetHandle*(hMprServer: MPR_SERVER_HANDLE, lpwsInterfaceName: LPWSTR, phInterface: ptr HANDLE, fIncludeClientInterfaces: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceCreate*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE, phInterface: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceGetInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceSetInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceDelete*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceDeviceGetInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwIndex: DWORD, dwLevel: DWORD, lplpBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceDeviceSetInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwIndex: DWORD, dwLevel: DWORD, lplpBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceTransportRemove*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwTransportId: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceTransportAdd*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwTransportId: DWORD, pInterfaceInfo: LPBYTE, dwInterfaceInfoSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceTransportGetInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwTransportId: DWORD, ppInterfaceInfo: ptr LPBYTE, lpdwpInterfaceInfoSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceTransportSetInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwTransportId: DWORD, pInterfaceInfo: LPBYTE, dwInterfaceInfoSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceEnum*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE, dwPrefMaxLen: DWORD, lpdwEntriesRead: LPDWORD, lpdwTotalEntries: LPDWORD, lpdwResumeHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceSetCredentials*(lpwsServer: LPWSTR, lpwsInterfaceName: LPWSTR, lpwsUserName: LPWSTR, lpwsDomainName: LPWSTR, lpwsPassword: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceGetCredentials*(lpwsServer: LPWSTR, lpwsInterfaceName: LPWSTR, lpwsUserName: LPWSTR, lpwsPassword: LPWSTR, lpwsDomainName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceSetCredentialsEx*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceGetCredentialsEx*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceConnect*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, hEvent: HANDLE, fSynchronous: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceDisconnect*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceUpdateRoutes*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwProtocolId: DWORD, hEvent: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceQueryUpdateResult*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwProtocolId: DWORD, lpdwUpdateResult: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminInterfaceUpdatePhonebookInfo*(hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminRegisterConnectionNotification*(hMprServer: MPR_SERVER_HANDLE, hEventNotification: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminDeregisterConnectionNotification*(hMprServer: MPR_SERVER_HANDLE, hEventNotification: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBServerConnect*(lpwsServerName: LPWSTR, phMibServer: ptr MIB_SERVER_HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBServerDisconnect*(hMibServer: MIB_SERVER_HANDLE): VOID {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBEntryCreate*(hMibServer: MIB_SERVER_HANDLE, dwPid: DWORD, dwRoutingPid: DWORD, lpEntry: LPVOID, dwEntrySize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBEntryDelete*(hMibServer: MIB_SERVER_HANDLE, dwProtocolId: DWORD, dwRoutingPid: DWORD, lpEntry: LPVOID, dwEntrySize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBEntrySet*(hMibServer: MIB_SERVER_HANDLE, dwProtocolId: DWORD, dwRoutingPid: DWORD, lpEntry: LPVOID, dwEntrySize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBEntryGet*(hMibServer: MIB_SERVER_HANDLE, dwProtocolId: DWORD, dwRoutingPid: DWORD, lpInEntry: LPVOID, dwInEntrySize: DWORD, lplpOutEntry: ptr LPVOID, lpOutEntrySize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBEntryGetFirst*(hMibServer: MIB_SERVER_HANDLE, dwProtocolId: DWORD, dwRoutingPid: DWORD, lpInEntry: LPVOID, dwInEntrySize: DWORD, lplpOutEntry: ptr LPVOID, lpOutEntrySize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBEntryGetNext*(hMibServer: MIB_SERVER_HANDLE, dwProtocolId: DWORD, dwRoutingPid: DWORD, lpInEntry: LPVOID, dwInEntrySize: DWORD, lplpOutEntry: ptr LPVOID, lpOutEntrySize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprAdminMIBBufferFree*(pBuffer: LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerInstall*(dwLevel: DWORD, pBuffer: PVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerConnect*(lpwsServerName: LPWSTR, phMprConfig: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerDisconnect*(hMprConfig: HANDLE): VOID {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerRefresh*(hMprConfig: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigBufferFree*(pBuffer: LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerGetInfo*(hMprConfig: HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerSetInfo*(hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerBackup*(hMprConfig: HANDLE, lpwsPath: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigServerRestore*(hMprConfig: HANDLE, lpwsPath: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigTransportCreate*(hMprConfig: HANDLE, dwTransportId: DWORD, lpwsTransportName: LPWSTR, pGlobalInfo: LPBYTE, dwGlobalInfoSize: DWORD, pClientInterfaceInfo: LPBYTE, dwClientInterfaceInfoSize: DWORD, lpwsDLLPath: LPWSTR, phRouterTransport: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigTransportDelete*(hMprConfig: HANDLE, hRouterTransport: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigTransportGetHandle*(hMprConfig: HANDLE, dwTransportId: DWORD, phRouterTransport: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigTransportSetInfo*(hMprConfig: HANDLE, hRouterTransport: HANDLE, pGlobalInfo: LPBYTE, dwGlobalInfoSize: DWORD, pClientInterfaceInfo: LPBYTE, dwClientInterfaceInfoSize: DWORD, lpwsDLLPath: LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigTransportGetInfo*(hMprConfig: HANDLE, hRouterTransport: HANDLE, ppGlobalInfo: ptr LPBYTE, lpdwGlobalInfoSize: LPDWORD, ppClientInterfaceInfo: ptr LPBYTE, lpdwClientInterfaceInfoSize: LPDWORD, lplpwsDLLPath: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigTransportEnum*(hMprConfig: HANDLE, dwLevel: DWORD, lplpBuffer: ptr LPBYTE, dwPrefMaxLen: DWORD, lpdwEntriesRead: LPDWORD, lpdwTotalEntries: LPDWORD, lpdwResumeHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceCreate*(hMprConfig: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE, phRouterInterface: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceDelete*(hMprConfig: HANDLE, hRouterInterface: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceGetHandle*(hMprConfig: HANDLE, lpwsInterfaceName: LPWSTR, phRouterInterface: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceGetInfo*(hMprConfig: HANDLE, hRouterInterface: HANDLE, dwLevel: DWORD, lplpBuffer: ptr LPBYTE, lpdwBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceSetInfo*(hMprConfig: HANDLE, hRouterInterface: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceEnum*(hMprConfig: HANDLE, dwLevel: DWORD, lplpBuffer: ptr LPBYTE, dwPrefMaxLen: DWORD, lpdwEntriesRead: LPDWORD, lpdwTotalEntries: LPDWORD, lpdwResumeHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceTransportAdd*(hMprConfig: HANDLE, hRouterInterface: HANDLE, dwTransportId: DWORD, lpwsTransportName: LPWSTR, pInterfaceInfo: LPBYTE, dwInterfaceInfoSize: DWORD, phRouterIfTransport: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceTransportRemove*(hMprConfig: HANDLE, hRouterInterface: HANDLE, hRouterIfTransport: HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceTransportGetHandle*(hMprConfig: HANDLE, hRouterInterface: HANDLE, dwTransportId: DWORD, phRouterIfTransport: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceTransportGetInfo*(hMprConfig: HANDLE, hRouterInterface: HANDLE, hRouterIfTransport: HANDLE, ppInterfaceInfo: ptr LPBYTE, lpdwInterfaceInfoSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceTransportSetInfo*(hMprConfig: HANDLE, hRouterInterface: HANDLE, hRouterIfTransport: HANDLE, pInterfaceInfo: LPBYTE, dwInterfaceInfoSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigInterfaceTransportEnum*(hMprConfig: HANDLE, hRouterInterface: HANDLE, dwLevel: DWORD, lplpBuffer: ptr LPBYTE, dwPrefMaxLen: DWORD, lpdwEntriesRead: LPDWORD, lpdwTotalEntries: LPDWORD, lpdwResumeHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigGetFriendlyName*(hMprConfig: HANDLE, pszGuidName: PWCHAR, pszBuffer: PWCHAR, dwBufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigGetGuidName*(hMprConfig: HANDLE, pszFriendlyName: PWCHAR, pszBuffer: PWCHAR, dwBufferSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoCreate*(dwVersion: DWORD, lplpNewHeader: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoDelete*(lpHeader: LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoRemoveAll*(lpHeader: LPVOID, lplpNewHeader: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoDuplicate*(lpHeader: LPVOID, lplpNewHeader: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoBlockAdd*(lpHeader: LPVOID, dwInfoType: DWORD, dwItemSize: DWORD, dwItemCount: DWORD, lpItemData: LPBYTE, lplpNewHeader: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoBlockRemove*(lpHeader: LPVOID, dwInfoType: DWORD, lplpNewHeader: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoBlockSet*(lpHeader: LPVOID, dwInfoType: DWORD, dwItemSize: DWORD, dwItemCount: DWORD, lpItemData: LPBYTE, lplpNewHeader: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoBlockFind*(lpHeader: LPVOID, dwInfoType: DWORD, lpdwItemSize: LPDWORD, lpdwItemCount: LPDWORD, lplpItemData: ptr LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprInfoBlockQuerySize*(lpHeader: LPVOID): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigFilterGetInfo*(hMprConfig: HANDLE, dwLevel: DWORD, dwTransportId: DWORD, lpBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc MprConfigFilterSetInfo*(hMprConfig: HANDLE, dwLevel: DWORD, dwTransportId: DWORD, lpBuffer: LPBYTE): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} -proc RasSecurityDialogSend*(hPort: HPORT, pBuffer: PBYTE, BufferLength: WORD): DWORD {.winapi, stdcall, dynlib: "rasman", importc.} -proc RasSecurityDialogReceive*(hPort: HPORT, pBuffer: PBYTE, pBufferLength: PWORD, Timeout: DWORD, hEvent: HANDLE): DWORD {.winapi, stdcall, dynlib: "rasman", importc.} -proc RasSecurityDialogGetInfo*(hPort: HPORT, pBuffer: ptr RAS_SECURITY_INFO): DWORD {.winapi, stdcall, dynlib: "rasman", importc.} -proc `ipv4=`*(self: var RASTUNNELENDPOINT, x: RASIPV4ADDR) {.inline.} = self.union1.ipv4 = x -proc ipv4*(self: RASTUNNELENDPOINT): RASIPV4ADDR {.inline.} = self.union1.ipv4 -proc ipv4*(self: var RASTUNNELENDPOINT): var RASIPV4ADDR {.inline.} = self.union1.ipv4 -proc `ipv6=`*(self: var RASTUNNELENDPOINT, x: RASIPV6ADDR) {.inline.} = self.union1.ipv6 = x -proc ipv6*(self: RASTUNNELENDPOINT): RASIPV6ADDR {.inline.} = self.union1.ipv6 -proc ipv6*(self: var RASTUNNELENDPOINT): var RASIPV6ADDR {.inline.} = self.union1.ipv6 -proc `Ikev2ProjectionInfo=`*(self: var PROJECTION_INFO, x: IKEV2_PROJECTION_INFO) {.inline.} = self.union1.Ikev2ProjectionInfo = x -proc ikev2ProjectionInfo*(self: PROJECTION_INFO): IKEV2_PROJECTION_INFO {.inline.} = self.union1.Ikev2ProjectionInfo -proc ikev2ProjectionInfo*(self: var PROJECTION_INFO): var IKEV2_PROJECTION_INFO {.inline.} = self.union1.Ikev2ProjectionInfo -proc `PppProjectionInfo=`*(self: var PROJECTION_INFO, x: PPP_PROJECTION_INFO) {.inline.} = self.union1.PppProjectionInfo = x -proc pppProjectionInfo*(self: PROJECTION_INFO): PPP_PROJECTION_INFO {.inline.} = self.union1.PppProjectionInfo -proc pppProjectionInfo*(self: var PROJECTION_INFO): var PPP_PROJECTION_INFO {.inline.} = self.union1.PppProjectionInfo +proc RasGetProjectionInfoA*( + P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetProjectionInfoW*( + P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasCreatePhonebookEntryA*( + P1: HWND, P2: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasCreatePhonebookEntryW*( + P1: HWND, P2: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEditPhonebookEntryA*( + P1: HWND, P2: LPCSTR, P3: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEditPhonebookEntryW*( + P1: HWND, P2: LPCWSTR, P3: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetEntryDialParamsA*( + P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetEntryDialParamsW*( + P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEntryDialParamsA*( + P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: LPBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEntryDialParamsW*( + P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: LPBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumDevicesA*( + P1: LPRASDEVINFOA, P2: LPDWORD, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumDevicesW*( + P1: LPRASDEVINFOW, P2: LPDWORD, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetCountryInfoA*( + P1: LPRASCTRYINFOA, P2: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetCountryInfoW*( + P1: LPRASCTRYINFOW, P2: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEntryPropertiesA*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEntryPropertiesW*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetEntryPropertiesA*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: DWORD, P5: LPBYTE, P6: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetEntryPropertiesW*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: DWORD, P5: LPBYTE, P6: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasRenameEntryA*( + P1: LPCSTR, P2: LPCSTR, P3: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasRenameEntryW*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasDeleteEntryA*( + P1: LPCSTR, P2: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasDeleteEntryW*( + P1: LPCWSTR, P2: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasValidateEntryNameA*( + P1: LPCSTR, P2: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasValidateEntryNameW*( + P1: LPCWSTR, P2: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasConnectionNotificationA*( + P1: HRASCONN, P2: HANDLE, P3: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasConnectionNotificationW*( + P1: HRASCONN, P2: HANDLE, P3: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetSubEntryHandleA*( + P1: HRASCONN, P2: DWORD, P3: LPHRASCONN +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetSubEntryHandleW*( + P1: HRASCONN, P2: DWORD, P3: LPHRASCONN +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetCredentialsA*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetCredentialsW*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetCredentialsA*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA, P4: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetCredentialsW*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW, P4: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetSubEntryPropertiesA*( + P1: LPCSTR, + P2: LPCSTR, + P3: DWORD, + P4: LPRASSUBENTRYA, + P5: LPDWORD, + P6: LPBYTE, + P7: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetSubEntryPropertiesW*( + P1: LPCWSTR, + P2: LPCWSTR, + P3: DWORD, + P4: LPRASSUBENTRYW, + P5: LPDWORD, + P6: LPBYTE, + P7: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetSubEntryPropertiesA*( + P1: LPCSTR, + P2: LPCSTR, + P3: DWORD, + P4: LPRASSUBENTRYA, + P5: DWORD, + P6: LPBYTE, + P7: DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetSubEntryPropertiesW*( + P1: LPCWSTR, + P2: LPCWSTR, + P3: DWORD, + P4: LPRASSUBENTRYW, + P5: DWORD, + P6: LPBYTE, + P7: DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetAutodialAddressA*( + P1: LPCSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYA, P4: LPDWORD, P5: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetAutodialAddressW*( + P1: LPCWSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYW, P4: LPDWORD, P5: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetAutodialAddressA*( + P1: LPCSTR, P2: DWORD, P3: LPRASAUTODIALENTRYA, P4: DWORD, P5: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetAutodialAddressW*( + P1: LPCWSTR, P2: DWORD, P3: LPRASAUTODIALENTRYW, P4: DWORD, P5: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumAutodialAddressesA*( + P1: ptr LPSTR, P2: LPDWORD, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasEnumAutodialAddressesW*( + P1: ptr LPWSTR, P2: LPDWORD, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetAutodialEnableA*( + P1: DWORD, P2: LPBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetAutodialEnableW*( + P1: DWORD, P2: LPBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetAutodialEnableA*( + P1: DWORD, P2: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetAutodialEnableW*( + P1: DWORD, P2: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetAutodialParamA*( + P1: DWORD, P2: LPVOID, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetAutodialParamW*( + P1: DWORD, P2: LPVOID, P3: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetAutodialParamA*( + P1: DWORD, P2: LPVOID, P3: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetAutodialParamW*( + P1: DWORD, P2: LPVOID, P3: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasInvokeEapUI*( + P1: HRASCONN, P2: DWORD, P3: LPRASDIALEXTENSIONS, P4: HWND +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetLinkStatistics*( + hRasConn: HRASCONN, dwSubEntry: DWORD, lpStatistics: ptr RAS_STATS +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetConnectionStatistics*( + hRasConn: HRASCONN, lpStatistics: ptr RAS_STATS +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasClearLinkStatistics*( + hRasConn: HRASCONN, dwSubEntry: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasClearConnectionStatistics*( + hRasConn: HRASCONN +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEapUserDataA*( + hToken: HANDLE, + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbEapData: ptr BYTE, + pdwSizeofEapData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEapUserDataW*( + hToken: HANDLE, + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbEapData: ptr BYTE, + pdwSizeofEapData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetEapUserDataA*( + hToken: HANDLE, + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbEapData: ptr BYTE, + dwSizeofEapData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetEapUserDataW*( + hToken: HANDLE, + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbEapData: ptr BYTE, + dwSizeofEapData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetCustomAuthDataA*( + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbCustomAuthData: ptr BYTE, + pdwSizeofCustomAuthData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetCustomAuthDataW*( + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbCustomAuthData: ptr BYTE, + pdwSizeofCustomAuthData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetCustomAuthDataA*( + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbCustomAuthData: ptr BYTE, + dwSizeofCustomAuthData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasSetCustomAuthDataW*( + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbCustomAuthData: ptr BYTE, + dwSizeofCustomAuthData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEapUserIdentityW*( + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + dwFlags: DWORD, + hwnd: HWND, + ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYW, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasGetEapUserIdentityA*( + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + dwFlags: DWORD, + hwnd: HWND, + ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYA, +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasFreeEapUserIdentityW*( + pRasEapUserIdentity: LPRASEAPUSERIDENTITYW +): VOID {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasFreeEapUserIdentityA*( + pRasEapUserIdentity: LPRASEAPUSERIDENTITYA +): VOID {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasDeleteSubEntryA*( + pszPhonebook: LPCSTR, pszEntry: LPCSTR, dwSubentryId: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasDeleteSubEntryW*( + pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, dwSubEntryId: DWORD +): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc.} + +proc RasPhonebookDlgA*( + lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASPBDLGA +): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} + +proc RasPhonebookDlgW*( + lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASPBDLGW +): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} + +proc RasEntryDlgA*( + lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASENTRYDLGA +): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} + +proc RasEntryDlgW*( + lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASENTRYDLGW +): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} + +proc RasDialDlgA*( + lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpszPhoneNumber: LPSTR, lpInfo: LPRASDIALDLG +): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} + +proc RasDialDlgW*( + lpszPhonebook: LPWSTR, + lpszEntry: LPWSTR, + lpszPhoneNumber: LPWSTR, + lpInfo: LPRASDIALDLG, +): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc.} + +proc MprAdminConnectionEnum*( + hRasServer: RAS_SERVER_HANDLE, + dwLevel: DWORD, + lplpbBuffer: ptr LPBYTE, + dwPrefMaxLen: DWORD, + lpdwEntriesRead: LPDWORD, + lpdwTotalEntries: LPDWORD, + lpdwResumeHandle: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminPortEnum*( + hRasServer: RAS_SERVER_HANDLE, + dwLevel: DWORD, + hConnection: HANDLE, + lplpbBuffer: ptr LPBYTE, + dwPrefMaxLen: DWORD, + lpdwEntriesRead: LPDWORD, + lpdwTotalEntries: LPDWORD, + lpdwResumeHandle: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminConnectionGetInfo*( + hRasServer: RAS_SERVER_HANDLE, + dwLevel: DWORD, + hConnection: HANDLE, + lplpbBuffer: ptr LPBYTE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminPortGetInfo*( + hRasServer: RAS_SERVER_HANDLE, dwLevel: DWORD, hPort: HANDLE, lplpbBuffer: ptr LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminConnectionClearStats*( + hRasServer: RAS_SERVER_HANDLE, hConnection: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminPortClearStats*( + hRasServer: RAS_SERVER_HANDLE, hPort: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminPortReset*( + hRasServer: RAS_SERVER_HANDLE, hPort: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminPortDisconnect*( + hRasServer: RAS_SERVER_HANDLE, hPort: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminConnectionRemoveQuarantine*( + hRasServer: HANDLE, hRasConnection: HANDLE, fIsIpAddress: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminUserGetInfo*( + lpszServer: ptr WCHAR, lpszUser: ptr WCHAR, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminUserSetInfo*( + lpszServer: ptr WCHAR, lpszUser: ptr WCHAR, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminSendUserMessage*( + hMprServer: MPR_SERVER_HANDLE, hConnection: HANDLE, lpwszMessage: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminGetPDCServer*( + lpszDomain: ptr WCHAR, lpszServer: ptr WCHAR, lpszPDCServer: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminIsServiceRunning*( + lpwsServerName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminServerConnect*( + lpwsServerName: LPWSTR, phMprServer: ptr MPR_SERVER_HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminServerDisconnect*( + hMprServer: MPR_SERVER_HANDLE +): VOID {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminServerGetCredentials*( + hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminServerSetCredentials*( + hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminBufferFree*( + pBuffer: LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminGetErrorString*( + dwError: DWORD, lpwsErrorString: ptr LPWSTR +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminServerGetInfo*( + hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminServerSetInfo*( + hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminEstablishDomainRasServer*( + pszDomain: PWCHAR, pszMachine: PWCHAR, bEnable: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminIsDomainRasServer*( + pszDomain: PWCHAR, pszMachine: PWCHAR, pbIsRasServer: PBOOL +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminTransportCreate*( + hMprServer: MPR_SERVER_HANDLE, + dwTransportId: DWORD, + lpwsTransportName: LPWSTR, + pGlobalInfo: LPBYTE, + dwGlobalInfoSize: DWORD, + pClientInterfaceInfo: LPBYTE, + dwClientInterfaceInfoSize: DWORD, + lpwsDLLPath: LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminTransportSetInfo*( + hMprServer: MPR_SERVER_HANDLE, + dwTransportId: DWORD, + pGlobalInfo: LPBYTE, + dwGlobalInfoSize: DWORD, + pClientInterfaceInfo: LPBYTE, + dwClientInterfaceInfoSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminTransportGetInfo*( + hMprServer: MPR_SERVER_HANDLE, + dwTransportId: DWORD, + ppGlobalInfo: ptr LPBYTE, + lpdwGlobalInfoSize: LPDWORD, + ppClientInterfaceInfo: ptr LPBYTE, + lpdwClientInterfaceInfoSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminDeviceEnum*( + hMprServer: MPR_SERVER_HANDLE, + dwLevel: DWORD, + lplpbBuffer: ptr LPBYTE, + lpdwTotalEntries: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceGetHandle*( + hMprServer: MPR_SERVER_HANDLE, + lpwsInterfaceName: LPWSTR, + phInterface: ptr HANDLE, + fIncludeClientInterfaces: WINBOOL, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceCreate*( + hMprServer: MPR_SERVER_HANDLE, + dwLevel: DWORD, + lpbBuffer: LPBYTE, + phInterface: ptr HANDLE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceGetInfo*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwLevel: DWORD, + lplpbBuffer: ptr LPBYTE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceSetInfo*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceDelete*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceDeviceGetInfo*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwIndex: DWORD, + dwLevel: DWORD, + lplpBuffer: ptr LPBYTE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceDeviceSetInfo*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwIndex: DWORD, + dwLevel: DWORD, + lplpBuffer: LPBYTE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceTransportRemove*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwTransportId: DWORD +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceTransportAdd*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwTransportId: DWORD, + pInterfaceInfo: LPBYTE, + dwInterfaceInfoSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceTransportGetInfo*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwTransportId: DWORD, + ppInterfaceInfo: ptr LPBYTE, + lpdwpInterfaceInfoSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceTransportSetInfo*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwTransportId: DWORD, + pInterfaceInfo: LPBYTE, + dwInterfaceInfoSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceEnum*( + hMprServer: MPR_SERVER_HANDLE, + dwLevel: DWORD, + lplpbBuffer: ptr LPBYTE, + dwPrefMaxLen: DWORD, + lpdwEntriesRead: LPDWORD, + lpdwTotalEntries: LPDWORD, + lpdwResumeHandle: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceSetCredentials*( + lpwsServer: LPWSTR, + lpwsInterfaceName: LPWSTR, + lpwsUserName: LPWSTR, + lpwsDomainName: LPWSTR, + lpwsPassword: LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceGetCredentials*( + lpwsServer: LPWSTR, + lpwsInterfaceName: LPWSTR, + lpwsUserName: LPWSTR, + lpwsPassword: LPWSTR, + lpwsDomainName: LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceSetCredentialsEx*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceGetCredentialsEx*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwLevel: DWORD, + lplpbBuffer: ptr LPBYTE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceConnect*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + hEvent: HANDLE, + fSynchronous: WINBOOL, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceDisconnect*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceUpdateRoutes*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE, dwProtocolId: DWORD, hEvent: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceQueryUpdateResult*( + hMprServer: MPR_SERVER_HANDLE, + hInterface: HANDLE, + dwProtocolId: DWORD, + lpdwUpdateResult: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminInterfaceUpdatePhonebookInfo*( + hMprServer: MPR_SERVER_HANDLE, hInterface: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminRegisterConnectionNotification*( + hMprServer: MPR_SERVER_HANDLE, hEventNotification: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminDeregisterConnectionNotification*( + hMprServer: MPR_SERVER_HANDLE, hEventNotification: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBServerConnect*( + lpwsServerName: LPWSTR, phMibServer: ptr MIB_SERVER_HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBServerDisconnect*( + hMibServer: MIB_SERVER_HANDLE +): VOID {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBEntryCreate*( + hMibServer: MIB_SERVER_HANDLE, + dwPid: DWORD, + dwRoutingPid: DWORD, + lpEntry: LPVOID, + dwEntrySize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBEntryDelete*( + hMibServer: MIB_SERVER_HANDLE, + dwProtocolId: DWORD, + dwRoutingPid: DWORD, + lpEntry: LPVOID, + dwEntrySize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBEntrySet*( + hMibServer: MIB_SERVER_HANDLE, + dwProtocolId: DWORD, + dwRoutingPid: DWORD, + lpEntry: LPVOID, + dwEntrySize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBEntryGet*( + hMibServer: MIB_SERVER_HANDLE, + dwProtocolId: DWORD, + dwRoutingPid: DWORD, + lpInEntry: LPVOID, + dwInEntrySize: DWORD, + lplpOutEntry: ptr LPVOID, + lpOutEntrySize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBEntryGetFirst*( + hMibServer: MIB_SERVER_HANDLE, + dwProtocolId: DWORD, + dwRoutingPid: DWORD, + lpInEntry: LPVOID, + dwInEntrySize: DWORD, + lplpOutEntry: ptr LPVOID, + lpOutEntrySize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBEntryGetNext*( + hMibServer: MIB_SERVER_HANDLE, + dwProtocolId: DWORD, + dwRoutingPid: DWORD, + lpInEntry: LPVOID, + dwInEntrySize: DWORD, + lplpOutEntry: ptr LPVOID, + lpOutEntrySize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprAdminMIBBufferFree*( + pBuffer: LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerInstall*( + dwLevel: DWORD, pBuffer: PVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerConnect*( + lpwsServerName: LPWSTR, phMprConfig: ptr HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerDisconnect*( + hMprConfig: HANDLE +): VOID {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerRefresh*( + hMprConfig: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigBufferFree*( + pBuffer: LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerGetInfo*( + hMprConfig: HANDLE, dwLevel: DWORD, lplpbBuffer: ptr LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerSetInfo*( + hMprServer: MPR_SERVER_HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerBackup*( + hMprConfig: HANDLE, lpwsPath: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigServerRestore*( + hMprConfig: HANDLE, lpwsPath: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigTransportCreate*( + hMprConfig: HANDLE, + dwTransportId: DWORD, + lpwsTransportName: LPWSTR, + pGlobalInfo: LPBYTE, + dwGlobalInfoSize: DWORD, + pClientInterfaceInfo: LPBYTE, + dwClientInterfaceInfoSize: DWORD, + lpwsDLLPath: LPWSTR, + phRouterTransport: ptr HANDLE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigTransportDelete*( + hMprConfig: HANDLE, hRouterTransport: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigTransportGetHandle*( + hMprConfig: HANDLE, dwTransportId: DWORD, phRouterTransport: ptr HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigTransportSetInfo*( + hMprConfig: HANDLE, + hRouterTransport: HANDLE, + pGlobalInfo: LPBYTE, + dwGlobalInfoSize: DWORD, + pClientInterfaceInfo: LPBYTE, + dwClientInterfaceInfoSize: DWORD, + lpwsDLLPath: LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigTransportGetInfo*( + hMprConfig: HANDLE, + hRouterTransport: HANDLE, + ppGlobalInfo: ptr LPBYTE, + lpdwGlobalInfoSize: LPDWORD, + ppClientInterfaceInfo: ptr LPBYTE, + lpdwClientInterfaceInfoSize: LPDWORD, + lplpwsDLLPath: ptr LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigTransportEnum*( + hMprConfig: HANDLE, + dwLevel: DWORD, + lplpBuffer: ptr LPBYTE, + dwPrefMaxLen: DWORD, + lpdwEntriesRead: LPDWORD, + lpdwTotalEntries: LPDWORD, + lpdwResumeHandle: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceCreate*( + hMprConfig: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE, phRouterInterface: ptr HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceDelete*( + hMprConfig: HANDLE, hRouterInterface: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceGetHandle*( + hMprConfig: HANDLE, lpwsInterfaceName: LPWSTR, phRouterInterface: ptr HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceGetInfo*( + hMprConfig: HANDLE, + hRouterInterface: HANDLE, + dwLevel: DWORD, + lplpBuffer: ptr LPBYTE, + lpdwBufferSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceSetInfo*( + hMprConfig: HANDLE, hRouterInterface: HANDLE, dwLevel: DWORD, lpbBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceEnum*( + hMprConfig: HANDLE, + dwLevel: DWORD, + lplpBuffer: ptr LPBYTE, + dwPrefMaxLen: DWORD, + lpdwEntriesRead: LPDWORD, + lpdwTotalEntries: LPDWORD, + lpdwResumeHandle: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceTransportAdd*( + hMprConfig: HANDLE, + hRouterInterface: HANDLE, + dwTransportId: DWORD, + lpwsTransportName: LPWSTR, + pInterfaceInfo: LPBYTE, + dwInterfaceInfoSize: DWORD, + phRouterIfTransport: ptr HANDLE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceTransportRemove*( + hMprConfig: HANDLE, hRouterInterface: HANDLE, hRouterIfTransport: HANDLE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceTransportGetHandle*( + hMprConfig: HANDLE, + hRouterInterface: HANDLE, + dwTransportId: DWORD, + phRouterIfTransport: ptr HANDLE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceTransportGetInfo*( + hMprConfig: HANDLE, + hRouterInterface: HANDLE, + hRouterIfTransport: HANDLE, + ppInterfaceInfo: ptr LPBYTE, + lpdwInterfaceInfoSize: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceTransportSetInfo*( + hMprConfig: HANDLE, + hRouterInterface: HANDLE, + hRouterIfTransport: HANDLE, + pInterfaceInfo: LPBYTE, + dwInterfaceInfoSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigInterfaceTransportEnum*( + hMprConfig: HANDLE, + hRouterInterface: HANDLE, + dwLevel: DWORD, + lplpBuffer: ptr LPBYTE, + dwPrefMaxLen: DWORD, + lpdwEntriesRead: LPDWORD, + lpdwTotalEntries: LPDWORD, + lpdwResumeHandle: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigGetFriendlyName*( + hMprConfig: HANDLE, pszGuidName: PWCHAR, pszBuffer: PWCHAR, dwBufferSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigGetGuidName*( + hMprConfig: HANDLE, pszFriendlyName: PWCHAR, pszBuffer: PWCHAR, dwBufferSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoCreate*( + dwVersion: DWORD, lplpNewHeader: ptr LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoDelete*( + lpHeader: LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoRemoveAll*( + lpHeader: LPVOID, lplpNewHeader: ptr LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoDuplicate*( + lpHeader: LPVOID, lplpNewHeader: ptr LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoBlockAdd*( + lpHeader: LPVOID, + dwInfoType: DWORD, + dwItemSize: DWORD, + dwItemCount: DWORD, + lpItemData: LPBYTE, + lplpNewHeader: ptr LPVOID, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoBlockRemove*( + lpHeader: LPVOID, dwInfoType: DWORD, lplpNewHeader: ptr LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoBlockSet*( + lpHeader: LPVOID, + dwInfoType: DWORD, + dwItemSize: DWORD, + dwItemCount: DWORD, + lpItemData: LPBYTE, + lplpNewHeader: ptr LPVOID, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoBlockFind*( + lpHeader: LPVOID, + dwInfoType: DWORD, + lpdwItemSize: LPDWORD, + lpdwItemCount: LPDWORD, + lplpItemData: ptr LPBYTE, +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprInfoBlockQuerySize*( + lpHeader: LPVOID +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigFilterGetInfo*( + hMprConfig: HANDLE, dwLevel: DWORD, dwTransportId: DWORD, lpBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc MprConfigFilterSetInfo*( + hMprConfig: HANDLE, dwLevel: DWORD, dwTransportId: DWORD, lpBuffer: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "mprapi", importc.} + +proc RasSecurityDialogSend*( + hPort: HPORT, pBuffer: PBYTE, BufferLength: WORD +): DWORD {.winapi, stdcall, dynlib: "rasman", importc.} + +proc RasSecurityDialogReceive*( + hPort: HPORT, pBuffer: PBYTE, pBufferLength: PWORD, Timeout: DWORD, hEvent: HANDLE +): DWORD {.winapi, stdcall, dynlib: "rasman", importc.} + +proc RasSecurityDialogGetInfo*( + hPort: HPORT, pBuffer: ptr RAS_SECURITY_INFO +): DWORD {.winapi, stdcall, dynlib: "rasman", importc.} + +proc `ipv4=`*(self: var RASTUNNELENDPOINT, x: RASIPV4ADDR) {.inline.} = + self.union1.ipv4 = x + +proc ipv4*(self: RASTUNNELENDPOINT): RASIPV4ADDR {.inline.} = + self.union1.ipv4 + +proc ipv4*(self: var RASTUNNELENDPOINT): var RASIPV4ADDR {.inline.} = + self.union1.ipv4 + +proc `ipv6=`*(self: var RASTUNNELENDPOINT, x: RASIPV6ADDR) {.inline.} = + self.union1.ipv6 = x + +proc ipv6*(self: RASTUNNELENDPOINT): RASIPV6ADDR {.inline.} = + self.union1.ipv6 + +proc ipv6*(self: var RASTUNNELENDPOINT): var RASIPV6ADDR {.inline.} = + self.union1.ipv6 + +proc `Ikev2ProjectionInfo=`*( + self: var PROJECTION_INFO, x: IKEV2_PROJECTION_INFO +) {.inline.} = + self.union1.Ikev2ProjectionInfo = x + +proc ikev2ProjectionInfo*(self: PROJECTION_INFO): IKEV2_PROJECTION_INFO {.inline.} = + self.union1.Ikev2ProjectionInfo + +proc ikev2ProjectionInfo*( + self: var PROJECTION_INFO +): var IKEV2_PROJECTION_INFO {.inline.} = + self.union1.Ikev2ProjectionInfo + +proc `PppProjectionInfo=`*( + self: var PROJECTION_INFO, x: PPP_PROJECTION_INFO +) {.inline.} = + self.union1.PppProjectionInfo = x + +proc pppProjectionInfo*(self: PROJECTION_INFO): PPP_PROJECTION_INFO {.inline.} = + self.union1.PppProjectionInfo + +proc pppProjectionInfo*(self: var PROJECTION_INFO): var PPP_PROJECTION_INFO {.inline.} = + self.union1.PppProjectionInfo + when winimUnicode: type RASADFUNC* = RASADFUNCW RASEAPUSERIDENTITY* = RASEAPUSERIDENTITYW RASPBDLGFUNC* = RASPBDLGFUNCW - proc RasDial*(P1: LPRASDIALEXTENSIONS, P2: LPCWSTR, P3: LPRASDIALPARAMSW, P4: DWORD, P5: LPVOID, P6: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDialW".} - proc RasEnumConnections*(P1: LPRASCONNW, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumConnectionsW".} - proc RasEnumEntries*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYNAMEW, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumEntriesW".} - proc RasGetConnectStatus*(P1: HRASCONN, P2: LPRASCONNSTATUSW): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetConnectStatusW".} - proc RasGetErrorString*(P1: UINT, P2: LPWSTR, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetErrorStringW".} - proc RasHangUp*(P1: HRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasHangUpW".} - proc RasGetProjectionInfo*(P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetProjectionInfoW".} - proc RasCreatePhonebookEntry*(P1: HWND, P2: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasCreatePhonebookEntryW".} - proc RasEditPhonebookEntry*(P1: HWND, P2: LPCWSTR, P3: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEditPhonebookEntryW".} - proc RasSetEntryDialParams*(P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryDialParamsW".} - proc RasGetEntryDialParams*(P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryDialParamsW".} - proc RasEnumDevices*(P1: LPRASDEVINFOW, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumDevicesW".} - proc RasGetCountryInfo*(P1: LPRASCTRYINFOW, P2: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCountryInfoW".} - proc RasGetEntryProperties*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryPropertiesW".} - proc RasSetEntryProperties*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: DWORD, P5: LPBYTE, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryPropertiesW".} - proc RasRenameEntry*(P1: LPCWSTR, P2: LPCWSTR, P3: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasRenameEntryW".} - proc RasDeleteEntry*(P1: LPCWSTR, P2: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteEntryW".} - proc RasValidateEntryName*(P1: LPCWSTR, P2: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasValidateEntryNameW".} - proc RasGetSubEntryHandle*(P1: HRASCONN, P2: DWORD, P3: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryHandleW".} - proc RasConnectionNotification*(P1: HRASCONN, P2: HANDLE, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasConnectionNotificationW".} - proc RasGetSubEntryProperties*(P1: LPCWSTR, P2: LPCWSTR, P3: DWORD, P4: LPRASSUBENTRYW, P5: LPDWORD, P6: LPBYTE, P7: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryPropertiesW".} - proc RasSetSubEntryProperties*(P1: LPCWSTR, P2: LPCWSTR, P3: DWORD, P4: LPRASSUBENTRYW, P5: DWORD, P6: LPBYTE, P7: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetSubEntryPropertiesW".} - proc RasGetCredentials*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCredentialsW".} - proc RasSetCredentials*(P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW, P4: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCredentialsW".} - proc RasGetAutodialAddress*(P1: LPCWSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYW, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialAddressW".} - proc RasSetAutodialAddress*(P1: LPCWSTR, P2: DWORD, P3: LPRASAUTODIALENTRYW, P4: DWORD, P5: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialAddressW".} - proc RasEnumAutodialAddresses*(P1: ptr LPWSTR, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumAutodialAddressesW".} - proc RasGetAutodialEnable*(P1: DWORD, P2: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialEnableW".} - proc RasSetAutodialEnable*(P1: DWORD, P2: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialEnableW".} - proc RasGetAutodialParam*(P1: DWORD, P2: LPVOID, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialParamW".} - proc RasSetAutodialParam*(P1: DWORD, P2: LPVOID, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialParamW".} - proc RasGetEapUserData*(hToken: HANDLE, pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbEapData: ptr BYTE, pdwSizeofEapData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserDataW".} - proc RasSetEapUserData*(hToken: HANDLE, pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbEapData: ptr BYTE, dwSizeofEapData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEapUserDataW".} - proc RasGetCustomAuthData*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbCustomAuthData: ptr BYTE, pdwSizeofCustomAuthData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCustomAuthDataW".} - proc RasSetCustomAuthData*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, pbCustomAuthData: ptr BYTE, dwSizeofCustomAuthData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCustomAuthDataW".} - proc RasGetEapUserIdentity*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, dwFlags: DWORD, hwnd: HWND, ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYW): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserIdentityW".} - proc RasFreeEapUserIdentity*(pRasEapUserIdentity: LPRASEAPUSERIDENTITYW): VOID {.winapi, stdcall, dynlib: "rasapi32", importc: "RasFreeEapUserIdentityW".} - proc RasDeleteSubEntry*(pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, dwSubEntryId: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteSubEntryW".} - proc RasPhonebookDlg*(lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASPBDLGW): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasPhonebookDlgW".} - proc RasEntryDlg*(lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASENTRYDLGW): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasEntryDlgW".} - proc RasDialDlg*(lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpszPhoneNumber: LPWSTR, lpInfo: LPRASDIALDLG): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasDialDlgW".} + + proc RasDial*( + P1: LPRASDIALEXTENSIONS, + P2: LPCWSTR, + P3: LPRASDIALPARAMSW, + P4: DWORD, + P5: LPVOID, + P6: LPHRASCONN, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDialW".} + + proc RasEnumConnections*( + P1: LPRASCONNW, P2: LPDWORD, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumConnectionsW".} + + proc RasEnumEntries*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYNAMEW, P4: LPDWORD, P5: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumEntriesW".} + + proc RasGetConnectStatus*( + P1: HRASCONN, P2: LPRASCONNSTATUSW + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetConnectStatusW".} + + proc RasGetErrorString*( + P1: UINT, P2: LPWSTR, P3: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetErrorStringW".} + + proc RasHangUp*( + P1: HRASCONN + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasHangUpW".} + + proc RasGetProjectionInfo*( + P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetProjectionInfoW".} + + proc RasCreatePhonebookEntry*( + P1: HWND, P2: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasCreatePhonebookEntryW".} + + proc RasEditPhonebookEntry*( + P1: HWND, P2: LPCWSTR, P3: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEditPhonebookEntryW".} + + proc RasSetEntryDialParams*( + P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryDialParamsW".} + + proc RasGetEntryDialParams*( + P1: LPCWSTR, P2: LPRASDIALPARAMSW, P3: LPBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryDialParamsW".} + + proc RasEnumDevices*( + P1: LPRASDEVINFOW, P2: LPDWORD, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumDevicesW".} + + proc RasGetCountryInfo*( + P1: LPRASCTRYINFOW, P2: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCountryInfoW".} + + proc RasGetEntryProperties*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryPropertiesW".} + + proc RasSetEntryProperties*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASENTRYW, P4: DWORD, P5: LPBYTE, P6: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryPropertiesW".} + + proc RasRenameEntry*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasRenameEntryW".} + + proc RasDeleteEntry*( + P1: LPCWSTR, P2: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteEntryW".} + + proc RasValidateEntryName*( + P1: LPCWSTR, P2: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasValidateEntryNameW".} + + proc RasGetSubEntryHandle*( + P1: HRASCONN, P2: DWORD, P3: LPHRASCONN + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryHandleW".} + + proc RasConnectionNotification*( + P1: HRASCONN, P2: HANDLE, P3: DWORD + ): DWORD {. + winapi, stdcall, dynlib: "rasapi32", importc: "RasConnectionNotificationW" + .} + + proc RasGetSubEntryProperties*( + P1: LPCWSTR, + P2: LPCWSTR, + P3: DWORD, + P4: LPRASSUBENTRYW, + P5: LPDWORD, + P6: LPBYTE, + P7: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryPropertiesW".} + + proc RasSetSubEntryProperties*( + P1: LPCWSTR, + P2: LPCWSTR, + P3: DWORD, + P4: LPRASSUBENTRYW, + P5: DWORD, + P6: LPBYTE, + P7: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetSubEntryPropertiesW".} + + proc RasGetCredentials*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCredentialsW".} + + proc RasSetCredentials*( + P1: LPCWSTR, P2: LPCWSTR, P3: LPRASCREDENTIALSW, P4: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCredentialsW".} + + proc RasGetAutodialAddress*( + P1: LPCWSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYW, P4: LPDWORD, P5: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialAddressW".} + + proc RasSetAutodialAddress*( + P1: LPCWSTR, P2: DWORD, P3: LPRASAUTODIALENTRYW, P4: DWORD, P5: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialAddressW".} + + proc RasEnumAutodialAddresses*( + P1: ptr LPWSTR, P2: LPDWORD, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumAutodialAddressesW".} + + proc RasGetAutodialEnable*( + P1: DWORD, P2: LPBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialEnableW".} + + proc RasSetAutodialEnable*( + P1: DWORD, P2: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialEnableW".} + + proc RasGetAutodialParam*( + P1: DWORD, P2: LPVOID, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialParamW".} + + proc RasSetAutodialParam*( + P1: DWORD, P2: LPVOID, P3: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialParamW".} + + proc RasGetEapUserData*( + hToken: HANDLE, + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbEapData: ptr BYTE, + pdwSizeofEapData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserDataW".} + + proc RasSetEapUserData*( + hToken: HANDLE, + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbEapData: ptr BYTE, + dwSizeofEapData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEapUserDataW".} + + proc RasGetCustomAuthData*( + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbCustomAuthData: ptr BYTE, + pdwSizeofCustomAuthData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCustomAuthDataW".} + + proc RasSetCustomAuthData*( + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + pbCustomAuthData: ptr BYTE, + dwSizeofCustomAuthData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCustomAuthDataW".} + + proc RasGetEapUserIdentity*( + pszPhonebook: LPCWSTR, + pszEntry: LPCWSTR, + dwFlags: DWORD, + hwnd: HWND, + ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYW, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserIdentityW".} + + proc RasFreeEapUserIdentity*( + pRasEapUserIdentity: LPRASEAPUSERIDENTITYW + ): VOID {.winapi, stdcall, dynlib: "rasapi32", importc: "RasFreeEapUserIdentityW".} + + proc RasDeleteSubEntry*( + pszPhonebook: LPCWSTR, pszEntry: LPCWSTR, dwSubEntryId: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteSubEntryW".} + + proc RasPhonebookDlg*( + lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASPBDLGW + ): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasPhonebookDlgW".} + + proc RasEntryDlg*( + lpszPhonebook: LPWSTR, lpszEntry: LPWSTR, lpInfo: LPRASENTRYDLGW + ): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasEntryDlgW".} + + proc RasDialDlg*( + lpszPhonebook: LPWSTR, + lpszEntry: LPWSTR, + lpszPhoneNumber: LPWSTR, + lpInfo: LPRASDIALDLG, + ): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasDialDlgW".} + when winimAnsi: type RASADFUNC* = RASADFUNCA RASEAPUSERIDENTITY* = RASEAPUSERIDENTITYA RASPBDLGFUNC* = RASPBDLGFUNCA - proc RasDial*(P1: LPRASDIALEXTENSIONS, P2: LPCSTR, P3: LPRASDIALPARAMSA, P4: DWORD, P5: LPVOID, P6: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDialA".} - proc RasEnumConnections*(P1: LPRASCONNA, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumConnectionsA".} - proc RasEnumEntries*(P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYNAMEA, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumEntriesA".} - proc RasGetConnectStatus*(P1: HRASCONN, P2: LPRASCONNSTATUSA): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetConnectStatusA".} - proc RasGetErrorString*(P1: UINT, P2: LPSTR, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetErrorStringA".} - proc RasHangUp*(P1: HRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasHangUpA".} - proc RasGetProjectionInfo*(P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetProjectionInfoA".} - proc RasCreatePhonebookEntry*(P1: HWND, P2: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasCreatePhonebookEntryA".} - proc RasEditPhonebookEntry*(P1: HWND, P2: LPCSTR, P3: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEditPhonebookEntryA".} - proc RasSetEntryDialParams*(P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryDialParamsA".} - proc RasGetEntryDialParams*(P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryDialParamsA".} - proc RasEnumDevices*(P1: LPRASDEVINFOA, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumDevicesA".} - proc RasGetCountryInfo*(P1: LPRASCTRYINFOA, P2: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCountryInfoA".} - proc RasGetEntryProperties*(P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryPropertiesA".} - proc RasSetEntryProperties*(P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: DWORD, P5: LPBYTE, P6: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryPropertiesA".} - proc RasRenameEntry*(P1: LPCSTR, P2: LPCSTR, P3: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasRenameEntryA".} - proc RasDeleteEntry*(P1: LPCSTR, P2: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteEntryA".} - proc RasValidateEntryName*(P1: LPCSTR, P2: LPCSTR): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasValidateEntryNameA".} - proc RasGetSubEntryHandle*(P1: HRASCONN, P2: DWORD, P3: LPHRASCONN): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryHandleA".} - proc RasConnectionNotification*(P1: HRASCONN, P2: HANDLE, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasConnectionNotificationA".} - proc RasGetSubEntryProperties*(P1: LPCSTR, P2: LPCSTR, P3: DWORD, P4: LPRASSUBENTRYA, P5: LPDWORD, P6: LPBYTE, P7: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryPropertiesA".} - proc RasSetSubEntryProperties*(P1: LPCSTR, P2: LPCSTR, P3: DWORD, P4: LPRASSUBENTRYA, P5: DWORD, P6: LPBYTE, P7: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetSubEntryPropertiesA".} - proc RasGetCredentials*(P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCredentialsA".} - proc RasSetCredentials*(P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA, P4: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCredentialsA".} - proc RasGetAutodialAddress*(P1: LPCSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYA, P4: LPDWORD, P5: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialAddressA".} - proc RasSetAutodialAddress*(P1: LPCSTR, P2: DWORD, P3: LPRASAUTODIALENTRYA, P4: DWORD, P5: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialAddressA".} - proc RasEnumAutodialAddresses*(P1: ptr LPSTR, P2: LPDWORD, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumAutodialAddressesA".} - proc RasGetAutodialEnable*(P1: DWORD, P2: LPBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialEnableA".} - proc RasSetAutodialEnable*(P1: DWORD, P2: WINBOOL): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialEnableA".} - proc RasGetAutodialParam*(P1: DWORD, P2: LPVOID, P3: LPDWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialParamA".} - proc RasSetAutodialParam*(P1: DWORD, P2: LPVOID, P3: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialParamA".} - proc RasGetEapUserData*(hToken: HANDLE, pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbEapData: ptr BYTE, pdwSizeofEapData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserDataA".} - proc RasSetEapUserData*(hToken: HANDLE, pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbEapData: ptr BYTE, dwSizeofEapData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEapUserDataA".} - proc RasGetCustomAuthData*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbCustomAuthData: ptr BYTE, pdwSizeofCustomAuthData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCustomAuthDataA".} - proc RasSetCustomAuthData*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, pbCustomAuthData: ptr BYTE, dwSizeofCustomAuthData: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCustomAuthDataA".} - proc RasGetEapUserIdentity*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, dwFlags: DWORD, hwnd: HWND, ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYA): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserIdentityA".} - proc RasFreeEapUserIdentity*(pRasEapUserIdentity: LPRASEAPUSERIDENTITYA): VOID {.winapi, stdcall, dynlib: "rasapi32", importc: "RasFreeEapUserIdentityA".} - proc RasDeleteSubEntry*(pszPhonebook: LPCSTR, pszEntry: LPCSTR, dwSubentryId: DWORD): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteSubEntryA".} - proc RasPhonebookDlg*(lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASPBDLGA): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasPhonebookDlgA".} - proc RasEntryDlg*(lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASENTRYDLGA): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasEntryDlgA".} - proc RasDialDlg*(lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpszPhoneNumber: LPSTR, lpInfo: LPRASDIALDLG): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasDialDlgA".} + + proc RasDial*( + P1: LPRASDIALEXTENSIONS, + P2: LPCSTR, + P3: LPRASDIALPARAMSA, + P4: DWORD, + P5: LPVOID, + P6: LPHRASCONN, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDialA".} + + proc RasEnumConnections*( + P1: LPRASCONNA, P2: LPDWORD, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumConnectionsA".} + + proc RasEnumEntries*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYNAMEA, P4: LPDWORD, P5: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumEntriesA".} + + proc RasGetConnectStatus*( + P1: HRASCONN, P2: LPRASCONNSTATUSA + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetConnectStatusA".} + + proc RasGetErrorString*( + P1: UINT, P2: LPSTR, P3: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetErrorStringA".} + + proc RasHangUp*( + P1: HRASCONN + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasHangUpA".} + + proc RasGetProjectionInfo*( + P1: HRASCONN, P2: RASPROJECTION, P3: LPVOID, P4: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetProjectionInfoA".} + + proc RasCreatePhonebookEntry*( + P1: HWND, P2: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasCreatePhonebookEntryA".} + + proc RasEditPhonebookEntry*( + P1: HWND, P2: LPCSTR, P3: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEditPhonebookEntryA".} + + proc RasSetEntryDialParams*( + P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryDialParamsA".} + + proc RasGetEntryDialParams*( + P1: LPCSTR, P2: LPRASDIALPARAMSA, P3: LPBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryDialParamsA".} + + proc RasEnumDevices*( + P1: LPRASDEVINFOA, P2: LPDWORD, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumDevicesA".} + + proc RasGetCountryInfo*( + P1: LPRASCTRYINFOA, P2: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCountryInfoA".} + + proc RasGetEntryProperties*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: LPDWORD, P5: LPBYTE, P6: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEntryPropertiesA".} + + proc RasSetEntryProperties*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASENTRYA, P4: DWORD, P5: LPBYTE, P6: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEntryPropertiesA".} + + proc RasRenameEntry*( + P1: LPCSTR, P2: LPCSTR, P3: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasRenameEntryA".} + + proc RasDeleteEntry*( + P1: LPCSTR, P2: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteEntryA".} + + proc RasValidateEntryName*( + P1: LPCSTR, P2: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasValidateEntryNameA".} + + proc RasGetSubEntryHandle*( + P1: HRASCONN, P2: DWORD, P3: LPHRASCONN + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryHandleA".} + + proc RasConnectionNotification*( + P1: HRASCONN, P2: HANDLE, P3: DWORD + ): DWORD {. + winapi, stdcall, dynlib: "rasapi32", importc: "RasConnectionNotificationA" + .} + + proc RasGetSubEntryProperties*( + P1: LPCSTR, + P2: LPCSTR, + P3: DWORD, + P4: LPRASSUBENTRYA, + P5: LPDWORD, + P6: LPBYTE, + P7: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetSubEntryPropertiesA".} + + proc RasSetSubEntryProperties*( + P1: LPCSTR, + P2: LPCSTR, + P3: DWORD, + P4: LPRASSUBENTRYA, + P5: DWORD, + P6: LPBYTE, + P7: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetSubEntryPropertiesA".} + + proc RasGetCredentials*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCredentialsA".} + + proc RasSetCredentials*( + P1: LPCSTR, P2: LPCSTR, P3: LPRASCREDENTIALSA, P4: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCredentialsA".} + + proc RasGetAutodialAddress*( + P1: LPCSTR, P2: LPDWORD, P3: LPRASAUTODIALENTRYA, P4: LPDWORD, P5: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialAddressA".} + + proc RasSetAutodialAddress*( + P1: LPCSTR, P2: DWORD, P3: LPRASAUTODIALENTRYA, P4: DWORD, P5: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialAddressA".} + + proc RasEnumAutodialAddresses*( + P1: ptr LPSTR, P2: LPDWORD, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasEnumAutodialAddressesA".} + + proc RasGetAutodialEnable*( + P1: DWORD, P2: LPBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialEnableA".} + + proc RasSetAutodialEnable*( + P1: DWORD, P2: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialEnableA".} + + proc RasGetAutodialParam*( + P1: DWORD, P2: LPVOID, P3: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetAutodialParamA".} + + proc RasSetAutodialParam*( + P1: DWORD, P2: LPVOID, P3: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetAutodialParamA".} + + proc RasGetEapUserData*( + hToken: HANDLE, + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbEapData: ptr BYTE, + pdwSizeofEapData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserDataA".} + + proc RasSetEapUserData*( + hToken: HANDLE, + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbEapData: ptr BYTE, + dwSizeofEapData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetEapUserDataA".} + + proc RasGetCustomAuthData*( + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbCustomAuthData: ptr BYTE, + pdwSizeofCustomAuthData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetCustomAuthDataA".} + + proc RasSetCustomAuthData*( + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + pbCustomAuthData: ptr BYTE, + dwSizeofCustomAuthData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasSetCustomAuthDataA".} + + proc RasGetEapUserIdentity*( + pszPhonebook: LPCSTR, + pszEntry: LPCSTR, + dwFlags: DWORD, + hwnd: HWND, + ppRasEapUserIdentity: ptr LPRASEAPUSERIDENTITYA, + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasGetEapUserIdentityA".} + + proc RasFreeEapUserIdentity*( + pRasEapUserIdentity: LPRASEAPUSERIDENTITYA + ): VOID {.winapi, stdcall, dynlib: "rasapi32", importc: "RasFreeEapUserIdentityA".} + + proc RasDeleteSubEntry*( + pszPhonebook: LPCSTR, pszEntry: LPCSTR, dwSubentryId: DWORD + ): DWORD {.winapi, stdcall, dynlib: "rasapi32", importc: "RasDeleteSubEntryA".} + + proc RasPhonebookDlg*( + lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASPBDLGA + ): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasPhonebookDlgA".} + + proc RasEntryDlg*( + lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpInfo: LPRASENTRYDLGA + ): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasEntryDlgA".} + + proc RasDialDlg*( + lpszPhonebook: LPSTR, lpszEntry: LPSTR, lpszPhoneNumber: LPSTR, lpInfo: LPRASDIALDLG + ): WINBOOL {.winapi, stdcall, dynlib: "rasdlg", importc: "RasDialDlgA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/regstr.nim --- a/semicongine/thirdparty/winim/winim/inc/regstr.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/regstr.nim Thu Aug 22 18:32:21 2024 +0700 @@ -17,8 +17,10 @@ wSecond*: WORD wMilliseconds*: WORD wResult*: WORD + PDSKTLSYSTEMTIME* = ptr DSKTLSYSTEMTIME LPDSKTLSYSTEMTIME* = ptr DSKTLSYSTEMTIME + const REGSTR_KEY_CLASS* = "Class" REGSTR_KEY_CONFIG* = "Config" @@ -45,37 +47,47 @@ REGSTR_PATH_SETUP* = "Software\\Microsoft\\Windows\\CurrentVersion" REGSTR_PATH_DRIVERSIGN* = "Software\\Microsoft\\Driver Signing" REGSTR_PATH_NONDRIVERSIGN* = "Software\\Microsoft\\Non-Driver Signing" - REGSTR_PATH_DRIVERSIGN_POLICY* = "Software\\Policies\\Microsoft\\Windows NT\\Driver Signing" - REGSTR_PATH_NONDRIVERSIGN_POLICY* = "Software\\Policies\\Microsoft\\Windows NT\\Non-Driver Signing" + REGSTR_PATH_DRIVERSIGN_POLICY* = + "Software\\Policies\\Microsoft\\Windows NT\\Driver Signing" + REGSTR_PATH_NONDRIVERSIGN_POLICY* = + "Software\\Policies\\Microsoft\\Windows NT\\Non-Driver Signing" REGSTR_PATH_PIFCONVERT* = "Software\\Microsoft\\Windows\\CurrentVersion\\PIFConvert" REGSTR_PATH_MSDOSOPTS* = "Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSOptions" REGSTR_PATH_NOSUGGMSDOS* = "Software\\Microsoft\\Windows\\CurrentVersion\\NoMSDOSWarn" - REGSTR_PATH_NEWDOSBOX* = "Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSSpecialConfig" + REGSTR_PATH_NEWDOSBOX* = + "Software\\Microsoft\\Windows\\CurrentVersion\\MS-DOSSpecialConfig" REGSTR_PATH_RUNONCE* = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce" REGSTR_PATH_RUNONCEEX* = "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx" REGSTR_PATH_RUN* = "Software\\Microsoft\\Windows\\CurrentVersion\\Run" - REGSTR_PATH_RUNSERVICESONCE* = "Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce" + REGSTR_PATH_RUNSERVICESONCE* = + "Software\\Microsoft\\Windows\\CurrentVersion\\RunServicesOnce" REGSTR_PATH_RUNSERVICES* = "Software\\Microsoft\\Windows\\CurrentVersion\\RunServices" REGSTR_PATH_EXPLORER* = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer" - REGSTR_PATH_PROPERTYSYSTEM* = "Software\\Microsoft\\Windows\\CurrentVersion\\PropertySystem" + REGSTR_PATH_PROPERTYSYSTEM* = + "Software\\Microsoft\\Windows\\CurrentVersion\\PropertySystem" REGSTR_PATH_DETECT* = "Software\\Microsoft\\Windows\\CurrentVersion\\Detect" REGSTR_PATH_APPPATHS* = "Software\\Microsoft\\Windows\\CurrentVersion\\App Paths" REGSTR_PATH_UNINSTALL* = "Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall" - REGSTR_PATH_REALMODENET* = "Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Real Mode Net" - REGSTR_PATH_NETEQUIV* = "Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Equivalent" + REGSTR_PATH_REALMODENET* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Real Mode Net" + REGSTR_PATH_NETEQUIV* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Network\\Equivalent" REGSTR_PATH_CVNETWORK* = "Software\\Microsoft\\Windows\\CurrentVersion\\Network" REGSTR_PATH_WMI_SECURITY* = "System\\CurrentControlSet\\Control\\Wmi\\Security" REGSTR_PATH_RELIABILITY* = "Software\\Microsoft\\Windows\\CurrentVersion\\Reliability" - REGSTR_PATH_RELIABILITY_POLICY* = "Software\\Policies\\Microsoft\\Windows NT\\Reliability" + REGSTR_PATH_RELIABILITY_POLICY* = + "Software\\Policies\\Microsoft\\Windows NT\\Reliability" REGSTR_PATH_RELIABILITY_POLICY_SHUTDOWNREASONUI* = "ShutdownReasonUI" REGSTR_PATH_RELIABILITY_POLICY_SNAPSHOT* = "Snapshot" REGSTR_PATH_RELIABILITY_POLICY_REPORTSNAPSHOT* = "ReportSnapshot" REGSTR_PATH_REINSTALL* = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Reinstall" REGSTR_PATH_NT_CURRENTVERSION* = "Software\\Microsoft\\Windows NT\\CurrentVersion" - REGSTR_PATH_VOLUMECACHE* = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches" + REGSTR_PATH_VOLUMECACHE* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches" REGSTR_VAL_DISPLAY* = "display" REGSTR_PATH_IDCONFIGDB* = "System\\CurrentControlSet\\Control\\IDConfigDB" - REGSTR_PATH_CRITICALDEVICEDATABASE* = "System\\CurrentControlSet\\Control\\CriticalDeviceDatabase" + REGSTR_PATH_CRITICALDEVICEDATABASE* = + "System\\CurrentControlSet\\Control\\CriticalDeviceDatabase" REGSTR_PATH_CLASS* = "System\\CurrentControlSet\\Services\\Class" REGSTR_PATH_DISPLAYSETTINGS* = "Display\\Settings" REGSTR_PATH_FONTS* = "Display\\Fonts" @@ -84,12 +96,16 @@ REGSTR_PATH_CURRENTCONTROLSET* = "System\\CurrentControlSet" REGSTR_PATH_SYSTEMENUM* = "System\\CurrentControlSet\\Enum" REGSTR_PATH_HWPROFILES* = "System\\CurrentControlSet\\Hardware Profiles" - REGSTR_PATH_HWPROFILESCURRENT* = "System\\CurrentControlSet\\Hardware Profiles\\Current" + REGSTR_PATH_HWPROFILESCURRENT* = + "System\\CurrentControlSet\\Hardware Profiles\\Current" REGSTR_PATH_CLASS_NT* = "System\\CurrentControlSet\\Control\\Class" - REGSTR_PATH_PER_HW_ID_STORAGE* = "Software\\Microsoft\\Windows NT\\CurrentVersion\\PerHwIdStorage" + REGSTR_PATH_PER_HW_ID_STORAGE* = + "Software\\Microsoft\\Windows NT\\CurrentVersion\\PerHwIdStorage" REGSTR_PATH_DEVICE_CLASSES* = "System\\CurrentControlSet\\Control\\DeviceClasses" - REGSTR_PATH_CODEVICEINSTALLERS* = "System\\CurrentControlSet\\Control\\CoDeviceInstallers" - REGSTR_PATH_BUSINFORMATION* = "System\\CurrentControlSet\\Control\\PnP\\BusInformation" + REGSTR_PATH_CODEVICEINSTALLERS* = + "System\\CurrentControlSet\\Control\\CoDeviceInstallers" + REGSTR_PATH_BUSINFORMATION* = + "System\\CurrentControlSet\\Control\\PnP\\BusInformation" REGSTR_PATH_SERVICES* = "System\\CurrentControlSet\\Services" REGSTR_PATH_VXD* = "System\\CurrentControlSet\\Services\\VxD" REGSTR_PATH_IOS* = "System\\CurrentControlSet\\Services\\VxD\\IOS" @@ -105,7 +121,8 @@ REGSTR_PATH_IRQARB* = "System\\CurrentControlSet\\Services\\Arbitrators\\IRQArb" REGSTR_PATH_CODEPAGE* = "System\\CurrentControlSet\\Control\\Nls\\Codepage" REGSTR_PATH_FILESYSTEM* = "System\\CurrentControlSet\\Control\\FileSystem" - REGSTR_PATH_FILESYSTEM_NOVOLTRACK* = "System\\CurrentControlSet\\Control\\FileSystem\\NoVolTrack" + REGSTR_PATH_FILESYSTEM_NOVOLTRACK* = + "System\\CurrentControlSet\\Control\\FileSystem\\NoVolTrack" REGSTR_PATH_CDFS* = "System\\CurrentControlSet\\Control\\FileSystem\\CDFS" REGSTR_PATH_WINBOOT* = "System\\CurrentControlSet\\Control\\WinBoot" REGSTR_PATH_INSTALLEDFILES* = "System\\CurrentControlSet\\Control\\InstalledFiles" @@ -167,7 +184,8 @@ REGSTR_VAL_REFRESHRATE* = "RefreshRate" REGSTR_VAL_DISPLAYFLAGS* = "DisplayFlags" REGSTR_PATH_CONTROLPANEL* = "Control Panel" - REGSTR_PATH_CONTROLSFOLDER* = "Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder" + REGSTR_PATH_CONTROLSFOLDER* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder" REGSTR_VAL_DOSCP* = "OEMCP" REGSTR_VAL_WINCP* = "ACP" REGSTR_PATH_DYNA_ENUM* = "Config Manager\\Enum" @@ -448,7 +466,8 @@ REGDF_NOTDETMEM* = 0x00000002 REGDF_NOTDETIRQ* = 0x00000004 REGDF_NOTDETDMA* = 0x00000008 - REGDF_NOTDETALL* = REGDF_NOTDETIO or REGDF_NOTDETMEM or REGDF_NOTDETIRQ or REGDF_NOTDETDMA + REGDF_NOTDETALL* = + REGDF_NOTDETIO or REGDF_NOTDETMEM or REGDF_NOTDETIRQ or REGDF_NOTDETDMA REGDF_NEEDFULLCONFIG* = 0x00000010 REGDF_GENFORCEDCONFIG* = 0x00000020 REGDF_NODETCONFIG* = 0x00008000 @@ -456,7 +475,8 @@ REGDF_CONFLICTMEM* = 0x00020000 REGDF_CONFLICTIRQ* = 0x00040000 REGDF_CONFLICTDMA* = 0x00080000 - REGDF_CONFLICTALL* = REGDF_CONFLICTIO or REGDF_CONFLICTMEM or REGDF_CONFLICTIRQ or REGDF_CONFLICTDMA + REGDF_CONFLICTALL* = + REGDF_CONFLICTIO or REGDF_CONFLICTMEM or REGDF_CONFLICTIRQ or REGDF_CONFLICTDMA REGDF_MAPIRQ2TO9* = 0x00100000 REGDF_NOTVERIFIED* = 0x80000000'i32 REGSTR_VAL_APMBIOSVER* = "APMBiosVer" @@ -668,7 +688,8 @@ REGSTR_VALUE_LOWPOWERACTIVE* = "ScreenSaveLowPowerActive" REGSTR_VALUE_POWEROFFACTIVE* = "ScreenSavePowerOffActive" REGSTR_PATH_WINDOWSAPPLETS* = "Software\\Microsoft\\Windows\\CurrentVersion\\Applets" - REGSTR_PATH_SYSTRAY* = "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\SysTray" + REGSTR_PATH_SYSTRAY* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\SysTray" REGSTR_VAL_SYSTRAYSVCS* = "Services" REGSTR_VAL_SYSTRAYBATFLAGS* = "PowerFlags" REGSTR_VAL_SYSTRAYPCCARDFLAGS* = "PCMCIAFlags" @@ -780,25 +801,39 @@ REGSTR_VAL_TZNOCHANGESTART* = "NoChangeStart" REGSTR_VAL_TZNOCHANGEEND* = "NoChangeEnd" REGSTR_VAL_TZNOAUTOTIME* = "DisableAutoDaylightTimeSet" - REGSTR_PATH_FLOATINGPOINTPROCESSOR* = "HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor" - REGSTR_PATH_FLOATINGPOINTPROCESSOR0* = "HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor\\0" - REGSTR_PATH_COMPUTRNAME* = "System\\CurrentControlSet\\Control\\ComputerName\\ComputerName" + REGSTR_PATH_FLOATINGPOINTPROCESSOR* = + "HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor" + REGSTR_PATH_FLOATINGPOINTPROCESSOR0* = + "HARDWARE\\DESCRIPTION\\System\\FloatingPointProcessor\\0" + REGSTR_PATH_COMPUTRNAME* = + "System\\CurrentControlSet\\Control\\ComputerName\\ComputerName" REGSTR_VAL_COMPUTRNAME* = "ComputerName" REGSTR_PATH_SHUTDOWN* = "System\\CurrentControlSet\\Control\\Shutdown" REGSTR_VAL_FORCEREBOOT* = "ForceReboot" REGSTR_VAL_SETUPPROGRAMRAN* = "SetupProgramRan" REGSTR_VAL_DOES_POLLING* = "PollingSupportNeeded" - REGSTR_PATH_KNOWNDLLS* = "System\\CurrentControlSet\\Control\\SessionManager\\KnownDLLs" - REGSTR_PATH_KNOWN16DLLS* = "System\\CurrentControlSet\\Control\\SessionManager\\Known16DLLs" - REGSTR_PATH_CHECKVERDLLS* = "System\\CurrentControlSet\\Control\\SessionManager\\CheckVerDLLs" - REGSTR_PATH_WARNVERDLLS* = "System\\CurrentControlSet\\Control\\SessionManager\\WarnVerDLLs" - REGSTR_PATH_HACKINIFILE* = "System\\CurrentControlSet\\Control\\SessionManager\\HackIniFiles" - REGSTR_PATH_CHECKBADAPPS* = "System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps" - REGSTR_PATH_APPPATCH* = "System\\CurrentControlSet\\Control\\SessionManager\\AppPatches" - REGSTR_PATH_CHECKBADAPPS400* = "System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps400" - REGSTR_PATH_SHELLSERVICEOBJECT* = "Software\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObject" - REGSTR_PATH_SHELLSERVICEOBJECTDELAYED* = "Software\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObjectDelayLoad" - REGSTR_PATH_KNOWNVXDS* = "System\\CurrentControlSet\\Control\\SessionManager\\KnownVxDs" + REGSTR_PATH_KNOWNDLLS* = + "System\\CurrentControlSet\\Control\\SessionManager\\KnownDLLs" + REGSTR_PATH_KNOWN16DLLS* = + "System\\CurrentControlSet\\Control\\SessionManager\\Known16DLLs" + REGSTR_PATH_CHECKVERDLLS* = + "System\\CurrentControlSet\\Control\\SessionManager\\CheckVerDLLs" + REGSTR_PATH_WARNVERDLLS* = + "System\\CurrentControlSet\\Control\\SessionManager\\WarnVerDLLs" + REGSTR_PATH_HACKINIFILE* = + "System\\CurrentControlSet\\Control\\SessionManager\\HackIniFiles" + REGSTR_PATH_CHECKBADAPPS* = + "System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps" + REGSTR_PATH_APPPATCH* = + "System\\CurrentControlSet\\Control\\SessionManager\\AppPatches" + REGSTR_PATH_CHECKBADAPPS400* = + "System\\CurrentControlSet\\Control\\SessionManager\\CheckBadApps400" + REGSTR_PATH_SHELLSERVICEOBJECT* = + "Software\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObject" + REGSTR_PATH_SHELLSERVICEOBJECTDELAYED* = + "Software\\Microsoft\\Windows\\CurrentVersion\\ShellServiceObjectDelayLoad" + REGSTR_PATH_KNOWNVXDS* = + "System\\CurrentControlSet\\Control\\SessionManager\\KnownVxDs" REGSTR_VAL_UNINSTALLER_DISPLAYNAME* = "DisplayName" REGSTR_VAL_UNINSTALLER_COMMANDLINE* = "UninstallString" REGSTR_VAL_REINSTALL_DISPLAYNAME* = "DisplayName" @@ -812,7 +847,8 @@ REGSTR_PATH_METRICS* = "Control Panel\\Desktop\\WindowMetrics" REGSTR_PATH_ICONS* = "Control Panel\\Icons" REGSTR_PATH_CURSORS* = "Control Panel\\Cursors" - REGSTR_PATH_CHECKDISK* = "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive" + REGSTR_PATH_CHECKDISK* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive" REGSTR_PATH_CHECKDISKSET* = "Settings" REGSTR_PATH_CHECKDISKUDRVS* = "NoUnknownDDErrDrvs" REGSTR_PATH_FAULT* = "Software\\Microsoft\\Windows\\CurrentVersion\\Fault" @@ -822,11 +858,16 @@ REGSTR_VAL_AEDEBUG_AUTO* = "Auto" REGSTR_PATH_GRPCONV* = "Software\\Microsoft\\Windows\\CurrentVersion\\GrpConv" REGSTR_VAL_REGITEMDELETEMESSAGE* = "Removal Message" - REGSTR_PATH_LASTCHECK* = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastCheck" - REGSTR_PATH_LASTOPTIMIZE* = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastOptimize" - REGSTR_PATH_LASTBACKUP* = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastBackup" - REGSTR_PATH_CHKLASTCHECK* = "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastCheck" - REGSTR_PATH_CHKLASTSURFAN* = "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastSurfaceAnalysis" + REGSTR_PATH_LASTCHECK* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastCheck" + REGSTR_PATH_LASTOPTIMIZE* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastOptimize" + REGSTR_PATH_LASTBACKUP* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\LastBackup" + REGSTR_PATH_CHKLASTCHECK* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastCheck" + REGSTR_PATH_CHKLASTSURFAN* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Check Drive\\LastSurfaceAnalysis" DTRESULTOK* = 0 DTRESULTFIX* = 1 DTRESULTPROB* = 2 @@ -900,7 +941,8 @@ REGSTR_VAL_JOYOEMCAL12* = "OEMCal12" REGSTR_VAL_AUDIO_BITMAP* = "bitmap" REGSTR_VAL_AUDIO_ICON* = "icon" - REGSTR_PATH_DEVICEINSTALLER* = "Software\\Microsoft\\Windows\\CurrentVersion\\Device Installer" + REGSTR_PATH_DEVICEINSTALLER* = + "Software\\Microsoft\\Windows\\CurrentVersion\\Device Installer" REGSTR_PATH_DIFX* = "Software\\Microsoft\\Windows\\CurrentVersion\\DIFX" REGSTR_VAL_SEARCHOPTIONS* = "SearchOptions" REGSTR_PATH_BIOSINFO* = "System\\CurrentControlSet\\Control\\BiosInfo" diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/richedit.nim --- a/semicongine/thirdparty/winim/winim/inc/richedit.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/richedit.nim Thu Aug 22 18:32:21 2024 +0700 @@ -26,43 +26,109 @@ dvaspect*: DWORD dwFlags*: DWORD dwUser*: DWORD + CHARRANGE* {.pure.} = object cpMin*: LONG cpMax*: LONG + IRichEditOle* {.pure.} = object lpVtbl*: ptr IRichEditOleVtbl + IRichEditOleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetClientSite*: proc(self: ptr IRichEditOle, lplpolesite: ptr LPOLECLIENTSITE): HRESULT {.stdcall.} + GetClientSite*: proc( + self: ptr IRichEditOle, lplpolesite: ptr LPOLECLIENTSITE + ): HRESULT {.stdcall.} GetObjectCount*: proc(self: ptr IRichEditOle): LONG {.stdcall.} GetLinkCount*: proc(self: ptr IRichEditOle): LONG {.stdcall.} - GetObject*: proc(self: ptr IRichEditOle, iob: LONG, lpreobject: ptr REOBJECT, dwFlags: DWORD): HRESULT {.stdcall.} - InsertObject*: proc(self: ptr IRichEditOle, lpreobject: ptr REOBJECT): HRESULT {.stdcall.} - ConvertObject*: proc(self: ptr IRichEditOle, iob: LONG, rclsidNew: REFCLSID, lpstrUserTypeNew: LPCSTR): HRESULT {.stdcall.} - ActivateAs*: proc(self: ptr IRichEditOle, rclsid: REFCLSID, rclsidAs: REFCLSID): HRESULT {.stdcall.} - SetHostNames*: proc(self: ptr IRichEditOle, lpstrContainerApp: LPCSTR, lpstrContainerObj: LPCSTR): HRESULT {.stdcall.} - SetLinkAvailable*: proc(self: ptr IRichEditOle, iob: LONG, fAvailable: WINBOOL): HRESULT {.stdcall.} - SetDvaspect*: proc(self: ptr IRichEditOle, iob: LONG, dvaspect: DWORD): HRESULT {.stdcall.} + GetObject*: proc( + self: ptr IRichEditOle, iob: LONG, lpreobject: ptr REOBJECT, dwFlags: DWORD + ): HRESULT {.stdcall.} + InsertObject*: + proc(self: ptr IRichEditOle, lpreobject: ptr REOBJECT): HRESULT {.stdcall.} + ConvertObject*: proc( + self: ptr IRichEditOle, iob: LONG, rclsidNew: REFCLSID, lpstrUserTypeNew: LPCSTR + ): HRESULT {.stdcall.} + ActivateAs*: proc( + self: ptr IRichEditOle, rclsid: REFCLSID, rclsidAs: REFCLSID + ): HRESULT {.stdcall.} + SetHostNames*: proc( + self: ptr IRichEditOle, lpstrContainerApp: LPCSTR, lpstrContainerObj: LPCSTR + ): HRESULT {.stdcall.} + SetLinkAvailable*: + proc(self: ptr IRichEditOle, iob: LONG, fAvailable: WINBOOL): HRESULT {.stdcall.} + SetDvaspect*: + proc(self: ptr IRichEditOle, iob: LONG, dvaspect: DWORD): HRESULT {.stdcall.} HandsOffStorage*: proc(self: ptr IRichEditOle, iob: LONG): HRESULT {.stdcall.} - SaveCompleted*: proc(self: ptr IRichEditOle, iob: LONG, lpstg: LPSTORAGE): HRESULT {.stdcall.} + SaveCompleted*: + proc(self: ptr IRichEditOle, iob: LONG, lpstg: LPSTORAGE): HRESULT {.stdcall.} InPlaceDeactivate*: proc(self: ptr IRichEditOle): HRESULT {.stdcall.} - ContextSensitiveHelp*: proc(self: ptr IRichEditOle, fEnterMode: WINBOOL): HRESULT {.stdcall.} - GetClipboardData*: proc(self: ptr IRichEditOle, lpchrg: ptr CHARRANGE, reco: DWORD, lplpdataobj: ptr LPDATAOBJECT): HRESULT {.stdcall.} - ImportDataObject*: proc(self: ptr IRichEditOle, lpdataobj: LPDATAOBJECT, cf: CLIPFORMAT, hMetaPict: HGLOBAL): HRESULT {.stdcall.} + ContextSensitiveHelp*: + proc(self: ptr IRichEditOle, fEnterMode: WINBOOL): HRESULT {.stdcall.} + GetClipboardData*: proc( + self: ptr IRichEditOle, + lpchrg: ptr CHARRANGE, + reco: DWORD, + lplpdataobj: ptr LPDATAOBJECT, + ): HRESULT {.stdcall.} + ImportDataObject*: proc( + self: ptr IRichEditOle, + lpdataobj: LPDATAOBJECT, + cf: CLIPFORMAT, + hMetaPict: HGLOBAL, + ): HRESULT {.stdcall.} + LPRICHEDITOLE* = ptr IRichEditOle IRichEditOleCallback* {.pure.} = object lpVtbl*: ptr IRichEditOleCallbackVtbl + IRichEditOleCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetNewStorage*: proc(self: ptr IRichEditOleCallback, lplpstg: ptr LPSTORAGE): HRESULT {.stdcall.} - GetInPlaceContext*: proc(self: ptr IRichEditOleCallback, lplpFrame: ptr LPOLEINPLACEFRAME, lplpDoc: ptr LPOLEINPLACEUIWINDOW, lpFrameInfo: LPOLEINPLACEFRAMEINFO): HRESULT {.stdcall.} - ShowContainerUI*: proc(self: ptr IRichEditOleCallback, fShow: WINBOOL): HRESULT {.stdcall.} - QueryInsertObject*: proc(self: ptr IRichEditOleCallback, lpclsid: LPCLSID, lpstg: LPSTORAGE, cp: LONG): HRESULT {.stdcall.} - DeleteObject*: proc(self: ptr IRichEditOleCallback, lpoleobj: LPOLEOBJECT): HRESULT {.stdcall.} - QueryAcceptData*: proc(self: ptr IRichEditOleCallback, lpdataobj: LPDATAOBJECT, lpcfFormat: ptr CLIPFORMAT, reco: DWORD, fReally: WINBOOL, hMetaPict: HGLOBAL): HRESULT {.stdcall.} - ContextSensitiveHelp*: proc(self: ptr IRichEditOleCallback, fEnterMode: WINBOOL): HRESULT {.stdcall.} - GetClipboardData*: proc(self: ptr IRichEditOleCallback, lpchrg: ptr CHARRANGE, reco: DWORD, lplpdataobj: ptr LPDATAOBJECT): HRESULT {.stdcall.} - GetDragDropEffect*: proc(self: ptr IRichEditOleCallback, fDrag: WINBOOL, grfKeyState: DWORD, pdwEffect: LPDWORD): HRESULT {.stdcall.} - GetContextMenu*: proc(self: ptr IRichEditOleCallback, seltype: WORD, lpoleobj: LPOLEOBJECT, lpchrg: ptr CHARRANGE, lphmenu: ptr HMENU): HRESULT {.stdcall.} + GetNewStorage*: + proc(self: ptr IRichEditOleCallback, lplpstg: ptr LPSTORAGE): HRESULT {.stdcall.} + GetInPlaceContext*: proc( + self: ptr IRichEditOleCallback, + lplpFrame: ptr LPOLEINPLACEFRAME, + lplpDoc: ptr LPOLEINPLACEUIWINDOW, + lpFrameInfo: LPOLEINPLACEFRAMEINFO, + ): HRESULT {.stdcall.} + ShowContainerUI*: + proc(self: ptr IRichEditOleCallback, fShow: WINBOOL): HRESULT {.stdcall.} + QueryInsertObject*: proc( + self: ptr IRichEditOleCallback, lpclsid: LPCLSID, lpstg: LPSTORAGE, cp: LONG + ): HRESULT {.stdcall.} + DeleteObject*: + proc(self: ptr IRichEditOleCallback, lpoleobj: LPOLEOBJECT): HRESULT {.stdcall.} + QueryAcceptData*: proc( + self: ptr IRichEditOleCallback, + lpdataobj: LPDATAOBJECT, + lpcfFormat: ptr CLIPFORMAT, + reco: DWORD, + fReally: WINBOOL, + hMetaPict: HGLOBAL, + ): HRESULT {.stdcall.} + ContextSensitiveHelp*: + proc(self: ptr IRichEditOleCallback, fEnterMode: WINBOOL): HRESULT {.stdcall.} + GetClipboardData*: proc( + self: ptr IRichEditOleCallback, + lpchrg: ptr CHARRANGE, + reco: DWORD, + lplpdataobj: ptr LPDATAOBJECT, + ): HRESULT {.stdcall.} + GetDragDropEffect*: proc( + self: ptr IRichEditOleCallback, + fDrag: WINBOOL, + grfKeyState: DWORD, + pdwEffect: LPDWORD, + ): HRESULT {.stdcall.} + GetContextMenu*: proc( + self: ptr IRichEditOleCallback, + seltype: WORD, + lpoleobj: LPOLEOBJECT, + lpchrg: ptr CHARRANGE, + lphmenu: ptr HMENU, + ): HRESULT {.stdcall.} + LPRICHEDITOLECALLBACK* = ptr IRichEditOleCallback + const RICHEDIT_VER* = 0x0800 cchTextLimitDefault* = 32767 @@ -72,88 +138,88 @@ RICHEDIT_CLASSA* = "RichEdit20A" RICHEDIT_CLASS10A* = "RICHEDIT" RICHEDIT_CLASSW* = "RichEdit20W" - EM_CANPASTE* = WM_USER+50 - EM_DISPLAYBAND* = WM_USER+51 - EM_EXGETSEL* = WM_USER+52 - EM_EXLIMITTEXT* = WM_USER+53 - EM_EXLINEFROMCHAR* = WM_USER+54 - EM_EXSETSEL* = WM_USER+55 - EM_FINDTEXT* = WM_USER+56 - EM_FORMATRANGE* = WM_USER+57 - EM_GETCHARFORMAT* = WM_USER+58 - EM_GETEVENTMASK* = WM_USER+59 - EM_GETOLEINTERFACE* = WM_USER+60 - EM_GETPARAFORMAT* = WM_USER+61 - EM_GETSELTEXT* = WM_USER+62 - EM_HIDESELECTION* = WM_USER+63 - EM_PASTESPECIAL* = WM_USER+64 - EM_REQUESTRESIZE* = WM_USER+65 - EM_SELECTIONTYPE* = WM_USER+66 - EM_SETBKGNDCOLOR* = WM_USER+67 - EM_SETCHARFORMAT* = WM_USER+68 - EM_SETEVENTMASK* = WM_USER+69 - EM_SETOLECALLBACK* = WM_USER+70 - EM_SETPARAFORMAT* = WM_USER+71 - EM_SETTARGETDEVICE* = WM_USER+72 - EM_STREAMIN* = WM_USER+73 - EM_STREAMOUT* = WM_USER+74 - EM_GETTEXTRANGE* = WM_USER+75 - EM_FINDWORDBREAK* = WM_USER+76 - EM_SETOPTIONS* = WM_USER+77 - EM_GETOPTIONS* = WM_USER+78 - EM_FINDTEXTEX* = WM_USER+79 - EM_GETWORDBREAKPROCEX* = WM_USER+80 - EM_SETWORDBREAKPROCEX* = WM_USER+81 - EM_SETUNDOLIMIT* = WM_USER+82 - EM_REDO* = WM_USER+84 - EM_CANREDO* = WM_USER+85 - EM_GETUNDONAME* = WM_USER+86 - EM_GETREDONAME* = WM_USER+87 - EM_STOPGROUPTYPING* = WM_USER+88 - EM_SETTEXTMODE* = WM_USER+89 - EM_GETTEXTMODE* = WM_USER+90 + EM_CANPASTE* = WM_USER + 50 + EM_DISPLAYBAND* = WM_USER + 51 + EM_EXGETSEL* = WM_USER + 52 + EM_EXLIMITTEXT* = WM_USER + 53 + EM_EXLINEFROMCHAR* = WM_USER + 54 + EM_EXSETSEL* = WM_USER + 55 + EM_FINDTEXT* = WM_USER + 56 + EM_FORMATRANGE* = WM_USER + 57 + EM_GETCHARFORMAT* = WM_USER + 58 + EM_GETEVENTMASK* = WM_USER + 59 + EM_GETOLEINTERFACE* = WM_USER + 60 + EM_GETPARAFORMAT* = WM_USER + 61 + EM_GETSELTEXT* = WM_USER + 62 + EM_HIDESELECTION* = WM_USER + 63 + EM_PASTESPECIAL* = WM_USER + 64 + EM_REQUESTRESIZE* = WM_USER + 65 + EM_SELECTIONTYPE* = WM_USER + 66 + EM_SETBKGNDCOLOR* = WM_USER + 67 + EM_SETCHARFORMAT* = WM_USER + 68 + EM_SETEVENTMASK* = WM_USER + 69 + EM_SETOLECALLBACK* = WM_USER + 70 + EM_SETPARAFORMAT* = WM_USER + 71 + EM_SETTARGETDEVICE* = WM_USER + 72 + EM_STREAMIN* = WM_USER + 73 + EM_STREAMOUT* = WM_USER + 74 + EM_GETTEXTRANGE* = WM_USER + 75 + EM_FINDWORDBREAK* = WM_USER + 76 + EM_SETOPTIONS* = WM_USER + 77 + EM_GETOPTIONS* = WM_USER + 78 + EM_FINDTEXTEX* = WM_USER + 79 + EM_GETWORDBREAKPROCEX* = WM_USER + 80 + EM_SETWORDBREAKPROCEX* = WM_USER + 81 + EM_SETUNDOLIMIT* = WM_USER + 82 + EM_REDO* = WM_USER + 84 + EM_CANREDO* = WM_USER + 85 + EM_GETUNDONAME* = WM_USER + 86 + EM_GETREDONAME* = WM_USER + 87 + EM_STOPGROUPTYPING* = WM_USER + 88 + EM_SETTEXTMODE* = WM_USER + 89 + EM_GETTEXTMODE* = WM_USER + 90 TM_PLAINTEXT* = 1 TM_RICHTEXT* = 2 TM_SINGLELEVELUNDO* = 4 TM_MULTILEVELUNDO* = 8 TM_SINGLECODEPAGE* = 16 TM_MULTICODEPAGE* = 32 - EM_AUTOURLDETECT* = WM_USER+91 + EM_AUTOURLDETECT* = WM_USER + 91 AURL_ENABLEURL* = 1 AURL_ENABLEEMAILADDR* = 2 AURL_ENABLETELNO* = 4 AURL_ENABLEEAURLS* = 8 AURL_ENABLEDRIVELETTERS* = 16 AURL_DISABLEMIXEDLGC* = 32 - EM_GETAUTOURLDETECT* = WM_USER+92 - EM_SETPALETTE* = WM_USER+93 - EM_GETTEXTEX* = WM_USER+94 - EM_GETTEXTLENGTHEX* = WM_USER+95 - EM_SHOWSCROLLBAR* = WM_USER+96 - EM_SETTEXTEX* = WM_USER+97 - EM_SETPUNCTUATION* = WM_USER+100 - EM_GETPUNCTUATION* = WM_USER+101 - EM_SETWORDWRAPMODE* = WM_USER+102 - EM_GETWORDWRAPMODE* = WM_USER+103 - EM_SETIMECOLOR* = WM_USER+104 - EM_GETIMECOLOR* = WM_USER+105 - EM_SETIMEOPTIONS* = WM_USER+106 - EM_GETIMEOPTIONS* = WM_USER+107 - EM_CONVPOSITION* = WM_USER+108 - EM_SETLANGOPTIONS* = WM_USER+120 - EM_GETLANGOPTIONS* = WM_USER+121 - EM_GETIMECOMPMODE* = WM_USER+122 - EM_FINDTEXTW* = WM_USER+123 - EM_FINDTEXTEXW* = WM_USER+124 - EM_RECONVERSION* = WM_USER+125 - EM_SETIMEMODEBIAS* = WM_USER+126 - EM_GETIMEMODEBIAS* = WM_USER+127 - EM_SETBIDIOPTIONS* = WM_USER+200 - EM_GETBIDIOPTIONS* = WM_USER+201 - EM_SETTYPOGRAPHYOPTIONS* = WM_USER+202 - EM_GETTYPOGRAPHYOPTIONS* = WM_USER+203 - EM_SETEDITSTYLE* = WM_USER+204 - EM_GETEDITSTYLE* = WM_USER+205 + EM_GETAUTOURLDETECT* = WM_USER + 92 + EM_SETPALETTE* = WM_USER + 93 + EM_GETTEXTEX* = WM_USER + 94 + EM_GETTEXTLENGTHEX* = WM_USER + 95 + EM_SHOWSCROLLBAR* = WM_USER + 96 + EM_SETTEXTEX* = WM_USER + 97 + EM_SETPUNCTUATION* = WM_USER + 100 + EM_GETPUNCTUATION* = WM_USER + 101 + EM_SETWORDWRAPMODE* = WM_USER + 102 + EM_GETWORDWRAPMODE* = WM_USER + 103 + EM_SETIMECOLOR* = WM_USER + 104 + EM_GETIMECOLOR* = WM_USER + 105 + EM_SETIMEOPTIONS* = WM_USER + 106 + EM_GETIMEOPTIONS* = WM_USER + 107 + EM_CONVPOSITION* = WM_USER + 108 + EM_SETLANGOPTIONS* = WM_USER + 120 + EM_GETLANGOPTIONS* = WM_USER + 121 + EM_GETIMECOMPMODE* = WM_USER + 122 + EM_FINDTEXTW* = WM_USER + 123 + EM_FINDTEXTEXW* = WM_USER + 124 + EM_RECONVERSION* = WM_USER + 125 + EM_SETIMEMODEBIAS* = WM_USER + 126 + EM_GETIMEMODEBIAS* = WM_USER + 127 + EM_SETBIDIOPTIONS* = WM_USER + 200 + EM_GETBIDIOPTIONS* = WM_USER + 201 + EM_SETTYPOGRAPHYOPTIONS* = WM_USER + 202 + EM_GETTYPOGRAPHYOPTIONS* = WM_USER + 203 + EM_SETEDITSTYLE* = WM_USER + 204 + EM_GETEDITSTYLE* = WM_USER + 205 SES_EMULATESYSEDIT* = 1 SES_BEEPONMAXTEXT* = 2 SES_EXTENDBACKCOLOR* = 4 @@ -209,29 +275,29 @@ TO_SIMPLELINEBREAK* = 0x0002 TO_DISABLECUSTOMTEXTOUT* = 0x0004 TO_ADVANCEDLAYOUT* = 0x0008 - EM_OUTLINE* = WM_USER+220 - EM_GETSCROLLPOS* = WM_USER+221 - EM_SETSCROLLPOS* = WM_USER+222 - EM_SETFONTSIZE* = WM_USER+223 - EM_GETZOOM* = WM_USER+224 - EM_SETZOOM* = WM_USER+225 - EM_GETVIEWKIND* = WM_USER+226 - EM_SETVIEWKIND* = WM_USER+227 - EM_GETPAGE* = WM_USER+228 - EM_SETPAGE* = WM_USER+229 - EM_GETHYPHENATEINFO* = WM_USER+230 - EM_SETHYPHENATEINFO* = WM_USER+231 - EM_GETPAGEROTATE* = WM_USER+235 - EM_SETPAGEROTATE* = WM_USER+236 - EM_GETCTFMODEBIAS* = WM_USER+237 - EM_SETCTFMODEBIAS* = WM_USER+238 - EM_GETCTFOPENSTATUS* = WM_USER+240 - EM_SETCTFOPENSTATUS* = WM_USER+241 - EM_GETIMECOMPTEXT* = WM_USER+242 - EM_ISIME* = WM_USER+243 - EM_GETIMEPROPERTY* = WM_USER+244 - EM_GETQUERYRTFOBJ* = WM_USER+269 - EM_SETQUERYRTFOBJ* = WM_USER+270 + EM_OUTLINE* = WM_USER + 220 + EM_GETSCROLLPOS* = WM_USER + 221 + EM_SETSCROLLPOS* = WM_USER + 222 + EM_SETFONTSIZE* = WM_USER + 223 + EM_GETZOOM* = WM_USER + 224 + EM_SETZOOM* = WM_USER + 225 + EM_GETVIEWKIND* = WM_USER + 226 + EM_SETVIEWKIND* = WM_USER + 227 + EM_GETPAGE* = WM_USER + 228 + EM_SETPAGE* = WM_USER + 229 + EM_GETHYPHENATEINFO* = WM_USER + 230 + EM_SETHYPHENATEINFO* = WM_USER + 231 + EM_GETPAGEROTATE* = WM_USER + 235 + EM_SETPAGEROTATE* = WM_USER + 236 + EM_GETCTFMODEBIAS* = WM_USER + 237 + EM_SETCTFMODEBIAS* = WM_USER + 238 + EM_GETCTFOPENSTATUS* = WM_USER + 240 + EM_SETCTFOPENSTATUS* = WM_USER + 241 + EM_GETIMECOMPTEXT* = WM_USER + 242 + EM_ISIME* = WM_USER + 243 + EM_GETIMEPROPERTY* = WM_USER + 244 + EM_GETQUERYRTFOBJ* = WM_USER + 269 + EM_SETQUERYRTFOBJ* = WM_USER + 270 EPR_0* = 0 EPR_270* = 1 EPR_180* = 2 @@ -264,17 +330,17 @@ VM_NORMAL* = 4 VM_OUTLINE* = 2 VM_PAGE* = 9 - EM_INSERTTABLE* = WM_USER+232 - EM_GETAUTOCORRECTPROC* = WM_USER+233 - EM_SETAUTOCORRECTPROC* = WM_USER+234 - EM_CALLAUTOCORRECTPROC* = WM_USER+255 + EM_INSERTTABLE* = WM_USER + 232 + EM_GETAUTOCORRECTPROC* = WM_USER + 233 + EM_SETAUTOCORRECTPROC* = WM_USER + 234 + EM_CALLAUTOCORRECTPROC* = WM_USER + 255 ATP_NOCHANGE* = 0 ATP_CHANGE* = 1 ATP_NODELIMITER* = 2 ATP_REPLACEALLTEXT* = 4 - EM_GETTABLEPARMS* = WM_USER+265 - EM_SETEDITSTYLEEX* = WM_USER+275 - EM_GETEDITSTYLEEX* = WM_USER+276 + EM_GETTABLEPARMS* = WM_USER + 265 + EM_SETEDITSTYLEEX* = WM_USER + 275 + EM_GETEDITSTYLEEX* = WM_USER + 276 SES_EX_NOTABLE* = 0x00000004 SES_EX_HANDLEFRIENDLYURL* = 0x00000100 SES_EX_NOTHEMING* = 0x00080000 @@ -283,20 +349,20 @@ SES_EX_MULTITOUCH* = 0x08000000 SES_EX_HIDETEMPFORMAT* = 0x10000000 SES_EX_USEMOUSEWPARAM* = 0x20000000 - EM_GETSTORYTYPE* = WM_USER+290 - EM_SETSTORYTYPE* = WM_USER+291 - EM_GETELLIPSISMODE* = WM_USER+305 - EM_SETELLIPSISMODE* = WM_USER+306 + EM_GETSTORYTYPE* = WM_USER + 290 + EM_SETSTORYTYPE* = WM_USER + 291 + EM_GETELLIPSISMODE* = WM_USER + 305 + EM_SETELLIPSISMODE* = WM_USER + 306 ELLIPSIS_MASK* = 0x00000003 ELLIPSIS_NONE* = 0x00000000 ELLIPSIS_END* = 0x00000001 ELLIPSIS_WORD* = 0x00000003 - EM_SETTABLEPARMS* = WM_USER+307 - EM_GETTOUCHOPTIONS* = WM_USER+310 - EM_SETTOUCHOPTIONS* = WM_USER+311 - EM_INSERTIMAGE* = WM_USER+314 - EM_SETUIANAME* = WM_USER+320 - EM_GETELLIPSISSTATE* = WM_USER+322 + EM_SETTABLEPARMS* = WM_USER + 307 + EM_GETTOUCHOPTIONS* = WM_USER + 310 + EM_SETTOUCHOPTIONS* = WM_USER + 311 + EM_INSERTIMAGE* = WM_USER + 314 + EM_SETUIANAME* = WM_USER + 320 + EM_GETELLIPSISSTATE* = WM_USER + 322 RTO_SHOWHANDLES* = 1 RTO_DISABLEHANDLES* = 2 RTO_READINGMODE* = 3 @@ -443,10 +509,18 @@ CFM_BACKCOLOR* = 0x04000000 CFM_SUBSCRIPT* = CFE_SUBSCRIPT or CFE_SUPERSCRIPT CFM_SUPERSCRIPT* = CFM_SUBSCRIPT - CFM_EFFECTS* = CFM_BOLD or CFM_ITALIC or CFM_UNDERLINE or CFM_COLOR or CFM_STRIKEOUT or CFE_PROTECTED or CFM_LINK + CFM_EFFECTS* = + CFM_BOLD or CFM_ITALIC or CFM_UNDERLINE or CFM_COLOR or CFM_STRIKEOUT or + CFE_PROTECTED or CFM_LINK CFM_ALL* = CFM_EFFECTS or CFM_SIZE or CFM_FACE or CFM_OFFSET or CFM_CHARSET - CFM_EFFECTS2* = CFM_EFFECTS or CFM_DISABLED or CFM_SMALLCAPS or CFM_ALLCAPS or CFM_HIDDEN or CFM_OUTLINE or CFM_SHADOW or CFM_EMBOSS or CFM_IMPRINT or CFM_REVISED or CFM_SUBSCRIPT or CFM_SUPERSCRIPT or CFM_BACKCOLOR - CFM_ALL2* = CFM_ALL or CFM_EFFECTS2 or CFM_BACKCOLOR or CFM_LCID or CFM_UNDERLINETYPE or CFM_WEIGHT or CFM_REVAUTHOR or CFM_SPACING or CFM_KERNING or CFM_STYLE or CFM_ANIMATION or CFM_COOKIE + CFM_EFFECTS2* = + CFM_EFFECTS or CFM_DISABLED or CFM_SMALLCAPS or CFM_ALLCAPS or CFM_HIDDEN or + CFM_OUTLINE or CFM_SHADOW or CFM_EMBOSS or CFM_IMPRINT or CFM_REVISED or + CFM_SUBSCRIPT or CFM_SUPERSCRIPT or CFM_BACKCOLOR + CFM_ALL2* = + CFM_ALL or CFM_EFFECTS2 or CFM_BACKCOLOR or CFM_LCID or CFM_UNDERLINETYPE or + CFM_WEIGHT or CFM_REVAUTHOR or CFM_SPACING or CFM_KERNING or CFM_STYLE or + CFM_ANIMATION or CFM_COOKIE CFE_SMALLCAPS* = CFM_SMALLCAPS CFE_ALLCAPS* = CFM_ALLCAPS CFE_HIDDEN* = CFM_HIDDEN @@ -463,7 +537,9 @@ CFM_MATHNOBUILDUP* = 0x08000000 CFM_MATH* = 0x10000000 CFM_MATHORDINARY* = 0x20000000 - CFM_ALLEFFECTS* = CFM_EFFECTS2 or CFM_FONTBOUND or CFM_EXTENDED or CFM_MATHNOBUILDUP or CFM_MATH or CFM_MATHORDINARY + CFM_ALLEFFECTS* = + CFM_EFFECTS2 or CFM_FONTBOUND or CFM_EXTENDED or CFM_MATHNOBUILDUP or CFM_MATH or + CFM_MATHORDINARY CFE_FONTBOUND* = 0x00100000 CFE_LINKPROTECTED* = 0x00800000 CFE_EXTENDED* = 0x02000000 @@ -552,9 +628,17 @@ PFM_TABLEROWDELIMITER* = 0x10000000 PFM_TEXTWRAPPINGBREAK* = 0x20000000 PFM_TABLE* = 0x40000000 - PFM_ALL* = PFM_STARTINDENT or PFM_RIGHTINDENT or PFM_OFFSET or PFM_ALIGNMENT or PFM_TABSTOPS or PFM_NUMBERING or PFM_OFFSETINDENT or PFM_RTLPARA - PFM_EFFECTS* = PFM_RTLPARA or PFM_KEEP or PFM_KEEPNEXT or PFM_TABLE or PFM_PAGEBREAKBEFORE or PFM_NOLINENUMBER or PFM_NOWIDOWCONTROL or PFM_DONOTHYPHEN or PFM_SIDEBYSIDE or PFM_TABLE or PFM_TABLEROWDELIMITER - PFM_ALL2* = PFM_ALL or PFM_EFFECTS or PFM_SPACEBEFORE or PFM_SPACEAFTER or PFM_LINESPACING or PFM_STYLE or PFM_SHADING or PFM_BORDER or PFM_NUMBERINGTAB or PFM_NUMBERINGSTART or PFM_NUMBERINGSTYLE + PFM_ALL* = + PFM_STARTINDENT or PFM_RIGHTINDENT or PFM_OFFSET or PFM_ALIGNMENT or PFM_TABSTOPS or + PFM_NUMBERING or PFM_OFFSETINDENT or PFM_RTLPARA + PFM_EFFECTS* = + PFM_RTLPARA or PFM_KEEP or PFM_KEEPNEXT or PFM_TABLE or PFM_PAGEBREAKBEFORE or + PFM_NOLINENUMBER or PFM_NOWIDOWCONTROL or PFM_DONOTHYPHEN or PFM_SIDEBYSIDE or + PFM_TABLE or PFM_TABLEROWDELIMITER + PFM_ALL2* = + PFM_ALL or PFM_EFFECTS or PFM_SPACEBEFORE or PFM_SPACEAFTER or PFM_LINESPACING or + PFM_STYLE or PFM_SHADING or PFM_BORDER or PFM_NUMBERINGTAB or PFM_NUMBERINGSTART or + PFM_NUMBERINGSTYLE PFE_RTLPARA* = PFM_RTLPARA shr 16 PFE_KEEP* = PFM_KEEP shr 16 PFE_KEEPNEXT* = PFM_KEEPNEXT shr 16 @@ -690,12 +774,23 @@ IID_IRichEditOle* = DEFINE_GUID("00020d00-0000-0000-c000-000000000046") IID_IRichEditOleCallback* = DEFINE_GUID("00020d03-0000-0000-c000-000000000046") type - AutoCorrectProc* = proc (langid: LANGID, pszBefore: ptr WCHAR, pszAfter: ptr WCHAR, cchAfter: LONG, pcchReplaced: ptr LONG): int32 {.stdcall.} - EDITWORDBREAKPROCEX* = proc (pchText: ptr char, cchText: LONG, bCharSet: BYTE, action: INT): LONG {.stdcall.} - EDITSTREAMCALLBACK* = proc (dwCookie: DWORD_PTR, pbBuff: LPBYTE, cb: LONG, pcb: ptr LONG): DWORD {.stdcall.} + AutoCorrectProc* = proc( + langid: LANGID, + pszBefore: ptr WCHAR, + pszAfter: ptr WCHAR, + cchAfter: LONG, + pcchReplaced: ptr LONG, + ): int32 {.stdcall.} + EDITWORDBREAKPROCEX* = proc( + pchText: ptr char, cchText: LONG, bCharSet: BYTE, action: INT + ): LONG {.stdcall.} + EDITSTREAMCALLBACK* = proc( + dwCookie: DWORD_PTR, pbBuff: LPBYTE, cb: LONG, pcb: ptr LONG + ): DWORD {.stdcall.} IMECOMPTEXT* {.pure.} = object cb*: LONG flags*: DWORD + TABLEROWPARMS* {.pure.} = object cbRow*: BYTE cbCell*: BYTE @@ -704,23 +799,24 @@ dxCellMargin*: LONG dxIndent*: LONG dyHeight*: LONG - nAlignment* {.bitsize:3.}: DWORD - fRTL* {.bitsize:1.}: DWORD - fKeep* {.bitsize:1.}: DWORD - fKeepFollow* {.bitsize:1.}: DWORD - fWrap* {.bitsize:1.}: DWORD - fIdentCells* {.bitsize:1.}: DWORD + nAlignment* {.bitsize: 3.}: DWORD + fRTL* {.bitsize: 1.}: DWORD + fKeep* {.bitsize: 1.}: DWORD + fKeepFollow* {.bitsize: 1.}: DWORD + fWrap* {.bitsize: 1.}: DWORD + fIdentCells* {.bitsize: 1.}: DWORD cpStartRow*: LONG bTableLevel*: BYTE iCell*: BYTE + TABLECELLPARMS* {.pure.} = object dxWidth*: LONG - nVertAlign* {.bitsize:2.}: WORD - fMergeTop* {.bitsize:1.}: WORD - fMergePrev* {.bitsize:1.}: WORD - fVertical* {.bitsize:1.}: WORD - fMergeStart* {.bitsize:1.}: WORD - fMergeCont* {.bitsize:1.}: WORD + nVertAlign* {.bitsize: 2.}: WORD + fMergeTop* {.bitsize: 1.}: WORD + fMergePrev* {.bitsize: 1.}: WORD + fVertical* {.bitsize: 1.}: WORD + fMergeStart* {.bitsize: 1.}: WORD + fMergeCont* {.bitsize: 1.}: WORD wShading*: WORD dxBrdrLeft*: SHORT dyBrdrTop*: SHORT @@ -732,6 +828,7 @@ crBrdrBottom*: COLORREF crBackPat*: COLORREF crForePat*: COLORREF + RICHEDIT_IMAGE_PARAMETERS* {.pure.} = object xWidth*: LONG yHeight*: LONG @@ -739,9 +836,11 @@ Type*: LONG pwszAlternateText*: LPCWSTR pIStream*: ptr IStream + ENDCOMPOSITIONNOTIFY* {.pure, packed.} = object nmhdr*: NMHDR dwCode*: DWORD + CHARFORMATA* {.pure.} = object cbSize*: UINT dwMask*: DWORD @@ -752,6 +851,7 @@ bCharSet*: BYTE bPitchAndFamily*: BYTE szFaceName*: array[LF_FACESIZE, char] + CHARFORMATW* {.pure.} = object cbSize*: UINT dwMask*: DWORD @@ -762,9 +862,11 @@ bCharSet*: BYTE bPitchAndFamily*: BYTE szFaceName*: array[LF_FACESIZE, WCHAR] + CHARFORMAT2W_UNION1* {.pure, union.} = object dwReserved*: DWORD dwCookie*: DWORD + CHARFORMAT2W* {.pure.} = object cbSize*: UINT dwMask*: DWORD @@ -786,9 +888,11 @@ bAnimation*: BYTE bRevAuthor*: BYTE bUnderlineColor*: BYTE + CHARFORMAT2A_UNION1* {.pure, union.} = object dwReserved*: DWORD dwCookie*: DWORD + CHARFORMAT2A* {.pure.} = object cbSize*: UINT dwMask*: DWORD @@ -810,39 +914,49 @@ bAnimation*: BYTE bRevAuthor*: BYTE bUnderlineColor*: BYTE + TEXTRANGEA* {.pure.} = object chrg*: CHARRANGE lpstrText*: LPSTR + TEXTRANGEW* {.pure.} = object chrg*: CHARRANGE lpstrText*: LPWSTR + EDITSTREAM* {.pure, packed.} = object dwCookie*: DWORD_PTR dwError*: DWORD pfnCallback*: EDITSTREAMCALLBACK + TFINDTEXTA* {.pure.} = object chrg*: CHARRANGE lpstrText*: LPCSTR + TFINDTEXTW* {.pure.} = object chrg*: CHARRANGE lpstrText*: LPCWSTR + FINDTEXTEXA* {.pure.} = object chrg*: CHARRANGE lpstrText*: LPCSTR chrgText*: CHARRANGE + FINDTEXTEXW* {.pure.} = object chrg*: CHARRANGE lpstrText*: LPCWSTR chrgText*: CHARRANGE + FORMATRANGE* {.pure.} = object hdc*: HDC hdcTarget*: HDC rc*: RECT rcPage*: RECT chrg*: CHARRANGE + PARAFORMAT_UNION1* {.pure, union.} = object wReserved*: WORD wEffects*: WORD + PARAFORMAT* {.pure.} = object cbSize*: UINT dwMask*: DWORD @@ -854,9 +968,11 @@ wAlignment*: WORD cTabCount*: SHORT rgxTabs*: array[MAX_TAB_STOPS, LONG] + PARAFORMAT2_UNION1* {.pure, union.} = object wReserved*: WORD wEffects*: WORD + PARAFORMAT2* {.pure.} = object cbSize*: UINT dwMask*: DWORD @@ -882,155 +998,377 @@ wBorderSpace*: WORD wBorderWidth*: WORD wBorders*: WORD + MSGFILTER* {.pure, packed.} = object nmhdr*: NMHDR msg*: UINT wParam*: WPARAM lParam*: LPARAM + REQRESIZE* {.pure.} = object nmhdr*: NMHDR rc*: RECT + SELCHANGE* {.pure, packed.} = object nmhdr*: NMHDR chrg*: CHARRANGE seltyp*: WORD padding*: array[2, byte] + GROUPTYPINGCHANGE* {.pure, packed.} = object nmhdr*: NMHDR fGroupTyping*: WINBOOL + CLIPBOARDFORMAT* {.pure, packed.} = object nmhdr*: NMHDR cf*: CLIPFORMAT padding*: array[2, byte] + GETCONTEXTMENUEX* {.pure, packed.} = object chrg*: CHARRANGE dwFlags*: DWORD pt*: POINT pvReserved*: pointer + TENDROPFILES* {.pure.} = object nmhdr*: NMHDR hDrop*: HANDLE cp*: LONG fProtected*: WINBOOL + TENPROTECTED* {.pure, packed.} = object nmhdr*: NMHDR msg*: UINT wParam*: WPARAM lParam*: LPARAM chrg*: CHARRANGE + TENSAVECLIPBOARD* {.pure.} = object nmhdr*: NMHDR cObjectCount*: LONG cch*: LONG + TENOLEOPFAILED* {.pure, packed.} = object nmhdr*: NMHDR iob*: LONG lOper*: LONG hr*: HRESULT + OBJECTPOSITIONS* {.pure, packed.} = object nmhdr*: NMHDR cObjectCount*: LONG pcpPositions*: ptr LONG + TENLINK* {.pure, packed.} = object nmhdr*: NMHDR msg*: UINT wParam*: WPARAM lParam*: LPARAM chrg*: CHARRANGE + TENLOWFIRTF* {.pure.} = object nmhdr*: NMHDR szControl*: ptr char + TENCORRECTTEXT* {.pure, packed.} = object nmhdr*: NMHDR chrg*: CHARRANGE seltyp*: WORD padding*: array[2, byte] + PUNCTUATION* {.pure, packed.} = object iSize*: UINT szPunctuation*: LPSTR + COMPCOLOR* {.pure.} = object crText*: COLORREF crBackground*: COLORREF dwEffects*: DWORD + REPASTESPECIAL* {.pure, packed.} = object dwAspect*: DWORD dwParam*: DWORD_PTR + SETTEXTEX* {.pure.} = object flags*: DWORD codepage*: UINT + GETTEXTEX* {.pure, packed.} = object cb*: DWORD flags*: DWORD codepage*: UINT lpDefaultChar*: LPCSTR lpUsedDefChar*: LPBOOL + GETTEXTLENGTHEX* {.pure.} = object flags*: DWORD codepage*: UINT + BIDIOPTIONS* {.pure.} = object cbSize*: UINT wMask*: WORD wEffects*: WORD + HYPHRESULT* {.pure.} = object khyph*: KHYPH ichHyph*: int32 chHyph*: WCHAR + HYPHENATEINFO* {.pure, packed.} = object cbSize*: SHORT dxHyphenateZone*: SHORT - pfnHyphenate*: proc(P1: ptr WCHAR, P2: LANGID, P3: int32, P4: ptr HYPHRESULT): void {.stdcall.} -proc `dwReserved=`*(self: var CHARFORMAT2W, x: DWORD) {.inline.} = self.union1.dwReserved = x -proc dwReserved*(self: CHARFORMAT2W): DWORD {.inline.} = self.union1.dwReserved -proc dwReserved*(self: var CHARFORMAT2W): var DWORD {.inline.} = self.union1.dwReserved -proc `dwCookie=`*(self: var CHARFORMAT2W, x: DWORD) {.inline.} = self.union1.dwCookie = x -proc dwCookie*(self: CHARFORMAT2W): DWORD {.inline.} = self.union1.dwCookie -proc dwCookie*(self: var CHARFORMAT2W): var DWORD {.inline.} = self.union1.dwCookie -proc `dwReserved=`*(self: var CHARFORMAT2A, x: DWORD) {.inline.} = self.union1.dwReserved = x -proc dwReserved*(self: CHARFORMAT2A): DWORD {.inline.} = self.union1.dwReserved -proc dwReserved*(self: var CHARFORMAT2A): var DWORD {.inline.} = self.union1.dwReserved -proc `dwCookie=`*(self: var CHARFORMAT2A, x: DWORD) {.inline.} = self.union1.dwCookie = x -proc dwCookie*(self: CHARFORMAT2A): DWORD {.inline.} = self.union1.dwCookie -proc dwCookie*(self: var CHARFORMAT2A): var DWORD {.inline.} = self.union1.dwCookie -proc `wReserved=`*(self: var PARAFORMAT, x: WORD) {.inline.} = self.union1.wReserved = x -proc wReserved*(self: PARAFORMAT): WORD {.inline.} = self.union1.wReserved -proc wReserved*(self: var PARAFORMAT): var WORD {.inline.} = self.union1.wReserved -proc `wEffects=`*(self: var PARAFORMAT, x: WORD) {.inline.} = self.union1.wEffects = x -proc wEffects*(self: PARAFORMAT): WORD {.inline.} = self.union1.wEffects -proc wEffects*(self: var PARAFORMAT): var WORD {.inline.} = self.union1.wEffects -proc `wReserved=`*(self: var PARAFORMAT2, x: WORD) {.inline.} = self.union1.wReserved = x -proc wReserved*(self: PARAFORMAT2): WORD {.inline.} = self.union1.wReserved -proc wReserved*(self: var PARAFORMAT2): var WORD {.inline.} = self.union1.wReserved -proc `wEffects=`*(self: var PARAFORMAT2, x: WORD) {.inline.} = self.union1.wEffects = x -proc wEffects*(self: PARAFORMAT2): WORD {.inline.} = self.union1.wEffects -proc wEffects*(self: var PARAFORMAT2): var WORD {.inline.} = self.union1.wEffects -proc GetClientSite*(self: ptr IRichEditOle, lplpolesite: ptr LPOLECLIENTSITE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClientSite(self, lplpolesite) -proc GetObjectCount*(self: ptr IRichEditOle): LONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectCount(self) -proc GetLinkCount*(self: ptr IRichEditOle): LONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLinkCount(self) -proc GetObject*(self: ptr IRichEditOle, iob: LONG, lpreobject: ptr REOBJECT, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObject(self, iob, lpreobject, dwFlags) -proc InsertObject*(self: ptr IRichEditOle, lpreobject: ptr REOBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertObject(self, lpreobject) -proc ConvertObject*(self: ptr IRichEditOle, iob: LONG, rclsidNew: REFCLSID, lpstrUserTypeNew: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConvertObject(self, iob, rclsidNew, lpstrUserTypeNew) -proc ActivateAs*(self: ptr IRichEditOle, rclsid: REFCLSID, rclsidAs: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateAs(self, rclsid, rclsidAs) -proc SetHostNames*(self: ptr IRichEditOle, lpstrContainerApp: LPCSTR, lpstrContainerObj: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHostNames(self, lpstrContainerApp, lpstrContainerObj) -proc SetLinkAvailable*(self: ptr IRichEditOle, iob: LONG, fAvailable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLinkAvailable(self, iob, fAvailable) -proc SetDvaspect*(self: ptr IRichEditOle, iob: LONG, dvaspect: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDvaspect(self, iob, dvaspect) -proc HandsOffStorage*(self: ptr IRichEditOle, iob: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandsOffStorage(self, iob) -proc SaveCompleted*(self: ptr IRichEditOle, iob: LONG, lpstg: LPSTORAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveCompleted(self, iob, lpstg) -proc InPlaceDeactivate*(self: ptr IRichEditOle): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InPlaceDeactivate(self) -proc ContextSensitiveHelp*(self: ptr IRichEditOle, fEnterMode: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ContextSensitiveHelp(self, fEnterMode) -proc GetClipboardData*(self: ptr IRichEditOle, lpchrg: ptr CHARRANGE, reco: DWORD, lplpdataobj: ptr LPDATAOBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClipboardData(self, lpchrg, reco, lplpdataobj) -proc ImportDataObject*(self: ptr IRichEditOle, lpdataobj: LPDATAOBJECT, cf: CLIPFORMAT, hMetaPict: HGLOBAL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ImportDataObject(self, lpdataobj, cf, hMetaPict) -proc GetNewStorage*(self: ptr IRichEditOleCallback, lplpstg: ptr LPSTORAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNewStorage(self, lplpstg) -proc GetInPlaceContext*(self: ptr IRichEditOleCallback, lplpFrame: ptr LPOLEINPLACEFRAME, lplpDoc: ptr LPOLEINPLACEUIWINDOW, lpFrameInfo: LPOLEINPLACEFRAMEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInPlaceContext(self, lplpFrame, lplpDoc, lpFrameInfo) -proc ShowContainerUI*(self: ptr IRichEditOleCallback, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContainerUI(self, fShow) -proc QueryInsertObject*(self: ptr IRichEditOleCallback, lpclsid: LPCLSID, lpstg: LPSTORAGE, cp: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryInsertObject(self, lpclsid, lpstg, cp) -proc DeleteObject*(self: ptr IRichEditOleCallback, lpoleobj: LPOLEOBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteObject(self, lpoleobj) -proc QueryAcceptData*(self: ptr IRichEditOleCallback, lpdataobj: LPDATAOBJECT, lpcfFormat: ptr CLIPFORMAT, reco: DWORD, fReally: WINBOOL, hMetaPict: HGLOBAL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryAcceptData(self, lpdataobj, lpcfFormat, reco, fReally, hMetaPict) -proc ContextSensitiveHelp*(self: ptr IRichEditOleCallback, fEnterMode: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ContextSensitiveHelp(self, fEnterMode) -proc GetClipboardData*(self: ptr IRichEditOleCallback, lpchrg: ptr CHARRANGE, reco: DWORD, lplpdataobj: ptr LPDATAOBJECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClipboardData(self, lpchrg, reco, lplpdataobj) -proc GetDragDropEffect*(self: ptr IRichEditOleCallback, fDrag: WINBOOL, grfKeyState: DWORD, pdwEffect: LPDWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDragDropEffect(self, fDrag, grfKeyState, pdwEffect) -proc GetContextMenu*(self: ptr IRichEditOleCallback, seltype: WORD, lpoleobj: LPOLEOBJECT, lpchrg: ptr CHARRANGE, lphmenu: ptr HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContextMenu(self, seltype, lpoleobj, lpchrg, lphmenu) -converter winimConverterIRichEditOleToIUnknown*(x: ptr IRichEditOle): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRichEditOleCallbackToIUnknown*(x: ptr IRichEditOleCallback): ptr IUnknown = cast[ptr IUnknown](x) + pfnHyphenate*: + proc(P1: ptr WCHAR, P2: LANGID, P3: int32, P4: ptr HYPHRESULT): void {.stdcall.} + +proc `dwReserved=`*(self: var CHARFORMAT2W, x: DWORD) {.inline.} = + self.union1.dwReserved = x + +proc dwReserved*(self: CHARFORMAT2W): DWORD {.inline.} = + self.union1.dwReserved + +proc dwReserved*(self: var CHARFORMAT2W): var DWORD {.inline.} = + self.union1.dwReserved + +proc `dwCookie=`*(self: var CHARFORMAT2W, x: DWORD) {.inline.} = + self.union1.dwCookie = x + +proc dwCookie*(self: CHARFORMAT2W): DWORD {.inline.} = + self.union1.dwCookie + +proc dwCookie*(self: var CHARFORMAT2W): var DWORD {.inline.} = + self.union1.dwCookie + +proc `dwReserved=`*(self: var CHARFORMAT2A, x: DWORD) {.inline.} = + self.union1.dwReserved = x + +proc dwReserved*(self: CHARFORMAT2A): DWORD {.inline.} = + self.union1.dwReserved + +proc dwReserved*(self: var CHARFORMAT2A): var DWORD {.inline.} = + self.union1.dwReserved + +proc `dwCookie=`*(self: var CHARFORMAT2A, x: DWORD) {.inline.} = + self.union1.dwCookie = x + +proc dwCookie*(self: CHARFORMAT2A): DWORD {.inline.} = + self.union1.dwCookie + +proc dwCookie*(self: var CHARFORMAT2A): var DWORD {.inline.} = + self.union1.dwCookie + +proc `wReserved=`*(self: var PARAFORMAT, x: WORD) {.inline.} = + self.union1.wReserved = x + +proc wReserved*(self: PARAFORMAT): WORD {.inline.} = + self.union1.wReserved + +proc wReserved*(self: var PARAFORMAT): var WORD {.inline.} = + self.union1.wReserved + +proc `wEffects=`*(self: var PARAFORMAT, x: WORD) {.inline.} = + self.union1.wEffects = x + +proc wEffects*(self: PARAFORMAT): WORD {.inline.} = + self.union1.wEffects + +proc wEffects*(self: var PARAFORMAT): var WORD {.inline.} = + self.union1.wEffects + +proc `wReserved=`*(self: var PARAFORMAT2, x: WORD) {.inline.} = + self.union1.wReserved = x + +proc wReserved*(self: PARAFORMAT2): WORD {.inline.} = + self.union1.wReserved + +proc wReserved*(self: var PARAFORMAT2): var WORD {.inline.} = + self.union1.wReserved + +proc `wEffects=`*(self: var PARAFORMAT2, x: WORD) {.inline.} = + self.union1.wEffects = x + +proc wEffects*(self: PARAFORMAT2): WORD {.inline.} = + self.union1.wEffects + +proc wEffects*(self: var PARAFORMAT2): var WORD {.inline.} = + self.union1.wEffects + +proc GetClientSite*( + self: ptr IRichEditOle, lplpolesite: ptr LPOLECLIENTSITE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClientSite(self, lplpolesite) + +proc GetObjectCount*(self: ptr IRichEditOle): LONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectCount(self) + +proc GetLinkCount*(self: ptr IRichEditOle): LONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLinkCount(self) + +proc GetObject*( + self: ptr IRichEditOle, iob: LONG, lpreobject: ptr REOBJECT, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObject(self, iob, lpreobject, dwFlags) + +proc InsertObject*( + self: ptr IRichEditOle, lpreobject: ptr REOBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertObject(self, lpreobject) + +proc ConvertObject*( + self: ptr IRichEditOle, iob: LONG, rclsidNew: REFCLSID, lpstrUserTypeNew: LPCSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConvertObject(self, iob, rclsidNew, lpstrUserTypeNew) + +proc ActivateAs*( + self: ptr IRichEditOle, rclsid: REFCLSID, rclsidAs: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateAs(self, rclsid, rclsidAs) + +proc SetHostNames*( + self: ptr IRichEditOle, lpstrContainerApp: LPCSTR, lpstrContainerObj: LPCSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHostNames(self, lpstrContainerApp, lpstrContainerObj) + +proc SetLinkAvailable*( + self: ptr IRichEditOle, iob: LONG, fAvailable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLinkAvailable(self, iob, fAvailable) + +proc SetDvaspect*( + self: ptr IRichEditOle, iob: LONG, dvaspect: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDvaspect(self, iob, dvaspect) + +proc HandsOffStorage*(self: ptr IRichEditOle, iob: LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandsOffStorage(self, iob) + +proc SaveCompleted*( + self: ptr IRichEditOle, iob: LONG, lpstg: LPSTORAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveCompleted(self, iob, lpstg) + +proc InPlaceDeactivate*(self: ptr IRichEditOle): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InPlaceDeactivate(self) + +proc ContextSensitiveHelp*( + self: ptr IRichEditOle, fEnterMode: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ContextSensitiveHelp(self, fEnterMode) + +proc GetClipboardData*( + self: ptr IRichEditOle, + lpchrg: ptr CHARRANGE, + reco: DWORD, + lplpdataobj: ptr LPDATAOBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClipboardData(self, lpchrg, reco, lplpdataobj) + +proc ImportDataObject*( + self: ptr IRichEditOle, lpdataobj: LPDATAOBJECT, cf: CLIPFORMAT, hMetaPict: HGLOBAL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ImportDataObject(self, lpdataobj, cf, hMetaPict) + +proc GetNewStorage*( + self: ptr IRichEditOleCallback, lplpstg: ptr LPSTORAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNewStorage(self, lplpstg) + +proc GetInPlaceContext*( + self: ptr IRichEditOleCallback, + lplpFrame: ptr LPOLEINPLACEFRAME, + lplpDoc: ptr LPOLEINPLACEUIWINDOW, + lpFrameInfo: LPOLEINPLACEFRAMEINFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInPlaceContext(self, lplpFrame, lplpDoc, lpFrameInfo) + +proc ShowContainerUI*( + self: ptr IRichEditOleCallback, fShow: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowContainerUI(self, fShow) + +proc QueryInsertObject*( + self: ptr IRichEditOleCallback, lpclsid: LPCLSID, lpstg: LPSTORAGE, cp: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryInsertObject(self, lpclsid, lpstg, cp) + +proc DeleteObject*( + self: ptr IRichEditOleCallback, lpoleobj: LPOLEOBJECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteObject(self, lpoleobj) + +proc QueryAcceptData*( + self: ptr IRichEditOleCallback, + lpdataobj: LPDATAOBJECT, + lpcfFormat: ptr CLIPFORMAT, + reco: DWORD, + fReally: WINBOOL, + hMetaPict: HGLOBAL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryAcceptData(self, lpdataobj, lpcfFormat, reco, fReally, hMetaPict) + +proc ContextSensitiveHelp*( + self: ptr IRichEditOleCallback, fEnterMode: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ContextSensitiveHelp(self, fEnterMode) + +proc GetClipboardData*( + self: ptr IRichEditOleCallback, + lpchrg: ptr CHARRANGE, + reco: DWORD, + lplpdataobj: ptr LPDATAOBJECT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClipboardData(self, lpchrg, reco, lplpdataobj) + +proc GetDragDropEffect*( + self: ptr IRichEditOleCallback, + fDrag: WINBOOL, + grfKeyState: DWORD, + pdwEffect: LPDWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDragDropEffect(self, fDrag, grfKeyState, pdwEffect) + +proc GetContextMenu*( + self: ptr IRichEditOleCallback, + seltype: WORD, + lpoleobj: LPOLEOBJECT, + lpchrg: ptr CHARRANGE, + lphmenu: ptr HMENU, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContextMenu(self, seltype, lpoleobj, lpchrg, lphmenu) + +converter winimConverterIRichEditOleToIUnknown*(x: ptr IRichEditOle): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRichEditOleCallbackToIUnknown*( + x: ptr IRichEditOleCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type CHARFORMAT* = CHARFORMATW @@ -1038,8 +1376,8 @@ TEXTRANGE* = TEXTRANGEW TFINDTEXT* = TFINDTEXTW FINDTEXTEX* = FINDTEXTEXW - const - RICHEDIT_CLASS* = RICHEDIT_CLASSW + + const RICHEDIT_CLASS* = RICHEDIT_CLASSW when winimAnsi: type CHARFORMAT* = CHARFORMATA @@ -1047,5 +1385,5 @@ TEXTRANGE* = TEXTRANGEA TFINDTEXT* = TFINDTEXTA FINDTEXTEX* = FINDTEXTEXA - const - RICHEDIT_CLASS* = RICHEDIT_CLASSA + + const RICHEDIT_CLASS* = RICHEDIT_CLASSA diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/rpc.nim --- a/semicongine/thirdparty/winim/winim/inc/rpc.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/rpc.nim Thu Aug 22 18:32:21 2024 +0700 @@ -55,14 +55,17 @@ PCInterfaceName* = ptr char RPC_STATUS* = int32 MIDL_uhyper* = int64 + when winimCpu64: type size_t* = int64 ssize_t* = int64 + when winimCpu32: type size_t* = int32 ssize_t* = int32 + type I_RPC_HANDLE* = HANDLE RPC_IF_HANDLE* = HANDLE @@ -70,17 +73,21 @@ RPC_BINDING_VECTOR* {.pure.} = object Count*: int32 BindingH*: array[1, RPC_BINDING_HANDLE] + RPC_IMPORT_CONTEXT_P* {.pure.} = object LookupContext*: RPC_NS_HANDLE ProposedHandle*: RPC_BINDING_HANDLE Bindings*: ptr RPC_BINDING_VECTOR + PRPC_IMPORT_CONTEXT_P* = ptr RPC_IMPORT_CONTEXT_P NDR_SCONTEXT* {.pure.} = ref object pad*: array[2, pointer] userContext*: pointer + SCONTEXT_QUEUE* {.pure.} = object NumberOfObjects*: int32 ArrayOfObjects*: ptr NDR_SCONTEXT + PSCONTEXT_QUEUE* = ptr SCONTEXT_QUEUE ARRAY_INFO* {.pure.} = object Dimension*: int32 @@ -89,6 +96,7 @@ MaxCountArray*: ptr int32 OffsetArray*: ptr int32 ActualCountArray*: ptr int32 + PARRAY_INFO* = ptr ARRAY_INFO NDR_ASYNC_MESSAGE* {.pure.} = object PNDR_ASYNC_MESSAGE* = ptr NDR_ASYNC_MESSAGE @@ -97,9 +105,11 @@ RPC_VERSION* {.pure.} = object MajorVersion*: uint16 MinorVersion*: uint16 + RPC_SYNTAX_IDENTIFIER* {.pure.} = object SyntaxGUID*: GUID SyntaxVersion*: RPC_VERSION + PRPC_SYNTAX_IDENTIFIER* = ptr RPC_SYNTAX_IDENTIFIER RPC_MGR_EPV* {.pure.} = object RPC_MESSAGE* {.pure.} = object @@ -114,12 +124,14 @@ ManagerEpv*: ptr RPC_MGR_EPV ImportContext*: pointer RpcFlags*: int32 + PRPC_MESSAGE* = ptr RPC_MESSAGE - RPC_DISPATCH_FUNCTION* = proc (Message: PRPC_MESSAGE): void {.stdcall.} + RPC_DISPATCH_FUNCTION* = proc(Message: PRPC_MESSAGE): void {.stdcall.} RPC_DISPATCH_TABLE* {.pure.} = object DispatchTableCount*: int32 DispatchTable*: ptr RPC_DISPATCH_FUNCTION Reserved*: LONG_PTR + MIDL_SYNTAX_INFO* {.pure.} = object TransferSyntax*: RPC_SYNTAX_IDENTIFIER DispatchTable*: ptr RPC_DISPATCH_TABLE @@ -129,62 +141,113 @@ aUserMarshalQuadruple*: pointer pReserved1*: ULONG_PTR pReserved2*: ULONG_PTR + PMIDL_SYNTAX_INFO* = ptr MIDL_SYNTAX_INFO NDR_ALLOC_ALL_NODES_CONTEXT* {.pure.} = object NDR_POINTER_QUEUE_STATE* {.pure.} = object handle_t* = RPC_BINDING_HANDLE - GENERIC_BINDING_ROUTINE* = proc (P1: pointer): pointer {.stdcall.} - GENERIC_UNBIND_ROUTINE* = proc (P1: pointer, P2: ptr uint8): void {.stdcall.} + GENERIC_BINDING_ROUTINE* = proc(P1: pointer): pointer {.stdcall.} + GENERIC_UNBIND_ROUTINE* = proc(P1: pointer, P2: ptr uint8): void {.stdcall.} GENERIC_BINDING_INFO* {.pure.} = object pObj*: pointer Size*: int32 pfnBind*: GENERIC_BINDING_ROUTINE pfnUnbind*: GENERIC_UNBIND_ROUTINE + PGENERIC_BINDING_INFO* = ptr GENERIC_BINDING_INFO MIDL_STUB_DESC_IMPLICIT_HANDLE_INFO* {.pure, union.} = object pAutoHandle*: ptr handle_t pPrimitiveHandle*: ptr handle_t pGenericBindingInfo*: PGENERIC_BINDING_INFO - NDR_RUNDOWN* = proc (context: pointer): void {.stdcall.} + + NDR_RUNDOWN* = proc(context: pointer): void {.stdcall.} GENERIC_BINDING_ROUTINE_PAIR* {.pure.} = object pfnBind*: GENERIC_BINDING_ROUTINE pfnUnbind*: GENERIC_UNBIND_ROUTINE - EXPR_EVAL* = proc (P1: ptr MIDL_STUB_MESSAGE): void {.stdcall.} - XMIT_HELPER_ROUTINE* = proc (P1: PMIDL_STUB_MESSAGE): void {.stdcall.} + + EXPR_EVAL* = proc(P1: ptr MIDL_STUB_MESSAGE): void {.stdcall.} + XMIT_HELPER_ROUTINE* = proc(P1: PMIDL_STUB_MESSAGE): void {.stdcall.} XMIT_ROUTINE_QUINTUPLE* {.pure.} = object pfnTranslateToXmit*: XMIT_HELPER_ROUTINE pfnTranslateFromXmit*: XMIT_HELPER_ROUTINE pfnFreeXmit*: XMIT_HELPER_ROUTINE pfnFreeInst*: XMIT_HELPER_ROUTINE + MALLOC_FREE_STRUCT* {.pure.} = object pfnAllocate*: proc(P1: int): pointer {.stdcall.} pfnFree*: proc(P1: pointer): void {.stdcall.} + COMM_FAULT_OFFSETS* {.pure.} = object CommOffset*: int16 FaultOffset*: int16 - USER_MARSHAL_SIZING_ROUTINE* = proc (P1: ptr ULONG, P2: ULONG, P3: pointer): ULONG {.stdcall.} - USER_MARSHAL_MARSHALLING_ROUTINE* = proc (P1: ptr ULONG, P2: ptr uint8, P3: pointer): ptr uint8 {.stdcall.} - USER_MARSHAL_UNMARSHALLING_ROUTINE* = proc (P1: ptr ULONG, P2: ptr uint8, P3: pointer): ptr uint8 {.stdcall.} - USER_MARSHAL_FREEING_ROUTINE* = proc (P1: ptr ULONG, P2: pointer): void {.stdcall.} + + USER_MARSHAL_SIZING_ROUTINE* = + proc(P1: ptr ULONG, P2: ULONG, P3: pointer): ULONG {.stdcall.} + USER_MARSHAL_MARSHALLING_ROUTINE* = + proc(P1: ptr ULONG, P2: ptr uint8, P3: pointer): ptr uint8 {.stdcall.} + USER_MARSHAL_UNMARSHALLING_ROUTINE* = + proc(P1: ptr ULONG, P2: ptr uint8, P3: pointer): ptr uint8 {.stdcall.} + USER_MARSHAL_FREEING_ROUTINE* = proc(P1: ptr ULONG, P2: pointer): void {.stdcall.} USER_MARSHAL_ROUTINE_QUADRUPLE* {.pure.} = object pfnBufferSize*: USER_MARSHAL_SIZING_ROUTINE pfnMarshall*: USER_MARSHAL_MARSHALLING_ROUTINE pfnUnmarshall*: USER_MARSHAL_UNMARSHALLING_ROUTINE pfnFree*: USER_MARSHAL_FREEING_ROUTINE - NDR_NOTIFY_ROUTINE* = proc (): void {.stdcall.} - CS_TYPE_NET_SIZE_ROUTINE* = proc (hBinding: RPC_BINDING_HANDLE, ulNetworkCodeSet: int32, ulLocalBufferSize: int32, conversionType: ptr IDL_CS_CONVERT, pulNetworkBufferSize: ptr int32, pStatus: ptr error_status_t): void {.stdcall.} - CS_TYPE_TO_NETCS_ROUTINE* = proc (hBinding: RPC_BINDING_HANDLE, ulNetworkCodeSet: int32, pLocalData: pointer, ulLocalDataLength: int32, pNetworkData: ptr uint8, pulNetworkDataLength: ptr int32, pStatus: ptr error_status_t): void {.stdcall.} - CS_TYPE_LOCAL_SIZE_ROUTINE* = proc (hBinding: RPC_BINDING_HANDLE, ulNetworkCodeSet: int32, ulNetworkBufferSize: int32, conversionType: ptr IDL_CS_CONVERT, pulLocalBufferSize: ptr int32, pStatus: ptr error_status_t): void {.stdcall.} - CS_TYPE_FROM_NETCS_ROUTINE* = proc (hBinding: RPC_BINDING_HANDLE, ulNetworkCodeSet: int32, pNetworkData: ptr uint8, ulNetworkDataLength: int32, ulLocalBufferSize: int32, pLocalData: pointer, pulLocalDataLength: ptr int32, pStatus: ptr error_status_t): void {.stdcall.} + + NDR_NOTIFY_ROUTINE* = proc(): void {.stdcall.} + CS_TYPE_NET_SIZE_ROUTINE* = proc( + hBinding: RPC_BINDING_HANDLE, + ulNetworkCodeSet: int32, + ulLocalBufferSize: int32, + conversionType: ptr IDL_CS_CONVERT, + pulNetworkBufferSize: ptr int32, + pStatus: ptr error_status_t, + ): void {.stdcall.} + CS_TYPE_TO_NETCS_ROUTINE* = proc( + hBinding: RPC_BINDING_HANDLE, + ulNetworkCodeSet: int32, + pLocalData: pointer, + ulLocalDataLength: int32, + pNetworkData: ptr uint8, + pulNetworkDataLength: ptr int32, + pStatus: ptr error_status_t, + ): void {.stdcall.} + CS_TYPE_LOCAL_SIZE_ROUTINE* = proc( + hBinding: RPC_BINDING_HANDLE, + ulNetworkCodeSet: int32, + ulNetworkBufferSize: int32, + conversionType: ptr IDL_CS_CONVERT, + pulLocalBufferSize: ptr int32, + pStatus: ptr error_status_t, + ): void {.stdcall.} + CS_TYPE_FROM_NETCS_ROUTINE* = proc( + hBinding: RPC_BINDING_HANDLE, + ulNetworkCodeSet: int32, + pNetworkData: ptr uint8, + ulNetworkDataLength: int32, + ulLocalBufferSize: int32, + pLocalData: pointer, + pulLocalDataLength: ptr int32, + pStatus: ptr error_status_t, + ): void {.stdcall.} NDR_CS_SIZE_CONVERT_ROUTINES* {.pure.} = object pfnNetSize*: CS_TYPE_NET_SIZE_ROUTINE pfnToNetCs*: CS_TYPE_TO_NETCS_ROUTINE pfnLocalSize*: CS_TYPE_LOCAL_SIZE_ROUTINE pfnFromNetCs*: CS_TYPE_FROM_NETCS_ROUTINE - CS_TAG_GETTING_ROUTINE* = proc (hBinding: RPC_BINDING_HANDLE, fServerSide: int32, pulSendingTag: ptr int32, pulDesiredReceivingTag: ptr int32, pulReceivingTag: ptr int32, pStatus: ptr error_status_t): void {.stdcall.} + + CS_TAG_GETTING_ROUTINE* = proc( + hBinding: RPC_BINDING_HANDLE, + fServerSide: int32, + pulSendingTag: ptr int32, + pulDesiredReceivingTag: ptr int32, + pulReceivingTag: ptr int32, + pStatus: ptr error_status_t, + ): void {.stdcall.} NDR_CS_ROUTINES* {.pure.} = object pSizeConvertRoutines*: ptr NDR_CS_SIZE_CONVERT_ROUTINES pTagGettingRoutines*: ptr CS_TAG_GETTING_ROUTINE + MIDL_STUB_DESC* {.pure.} = object RpcInterfaceInformation*: pointer pfnAllocate*: proc(P1: int): pointer {.stdcall.} @@ -206,29 +269,35 @@ CsRoutineTables*: ptr NDR_CS_ROUTINES Reserved4*: pointer Reserved5*: ULONG_PTR + FULL_PTR_XLAT_TABLES_RefIdToPointer* {.pure.} = object XlatTable*: ptr pointer StateTable*: ptr uint8 NumberOfEntries*: int32 + FULL_PTR_TO_REFID_ELEMENT* {.pure.} = object Next*: ptr FULL_PTR_TO_REFID_ELEMENT Pointer*: pointer RefId*: int32 State*: uint8 + PFULL_PTR_TO_REFID_ELEMENT* = ptr FULL_PTR_TO_REFID_ELEMENT FULL_PTR_XLAT_TABLES_PointerToRefId* {.pure.} = object XlatTable*: ptr PFULL_PTR_TO_REFID_ELEMENT NumberOfBuckets*: int32 HashMask*: int32 + FULL_PTR_XLAT_TABLES* {.pure.} = object RefIdToPointer*: FULL_PTR_XLAT_TABLES_RefIdToPointer PointerToRefId*: FULL_PTR_XLAT_TABLES_PointerToRefId NextRefId*: int32 XlatSide*: XLAT_SIDE + CS_STUB_INFO* {.pure.} = object WireCodeset*: int32 DesiredReceivingCodeset*: int32 CSArrayInfo*: pointer + NDR_PROC_CONTEXT* {.pure.} = object MIDL_STUB_MESSAGE* {.pure.} = object RpcMsg*: PRPC_MESSAGE @@ -263,16 +332,16 @@ FullPtrXlatTables*: ptr FULL_PTR_XLAT_TABLES FullPtrRefId*: int32 PointerLength*: int32 - fInDontFree* {.bitsize:1.}: int32 - fDontCallFreeInst* {.bitsize:1.}: int32 - fInOnlyParam* {.bitsize:1.}: int32 - fHasReturn* {.bitsize:1.}: int32 - fHasExtensions* {.bitsize:1.}: int32 - fHasNewCorrDesc* {.bitsize:1.}: int32 - fIsOicfServer* {.bitsize:1.}: int32 - fHasMemoryValidateCallback* {.bitsize:1.}: int32 - fUnused* {.bitsize:8.}: int32 - fUnused2* {.bitsize:16.}: int32 + fInDontFree* {.bitsize: 1.}: int32 + fDontCallFreeInst* {.bitsize: 1.}: int32 + fInOnlyParam* {.bitsize: 1.}: int32 + fHasReturn* {.bitsize: 1.}: int32 + fHasExtensions* {.bitsize: 1.}: int32 + fHasNewCorrDesc* {.bitsize: 1.}: int32 + fIsOicfServer* {.bitsize: 1.}: int32 + fHasMemoryValidateCallback* {.bitsize: 1.}: int32 + fUnused* {.bitsize: 8.}: int32 + fUnused2* {.bitsize: 16.}: int32 dwDestContext*: int32 pvDestContext*: pointer SavedContextHandles*: ptr NDR_SCONTEXT @@ -299,12 +368,13 @@ Reserved51_3*: INT_PTR Reserved51_4*: INT_PTR Reserved51_5*: INT_PTR + PMIDL_STUB_MESSAGE* = ptr MIDL_STUB_MESSAGE PGENERIC_BINDING_ROUTINE_PAIR* = ptr GENERIC_BINDING_ROUTINE_PAIR PXMIT_ROUTINE_QUINTUPLE* = ptr XMIT_ROUTINE_QUINTUPLE PMIDL_STUB_DESC* = ptr MIDL_STUB_DESC - SERVER_ROUTINE* = proc (): int32 {.stdcall.} - STUB_THUNK* = proc (P1: PMIDL_STUB_MESSAGE): void {.stdcall.} + SERVER_ROUTINE* = proc(): int32 {.stdcall.} + STUB_THUNK* = proc(P1: PMIDL_STUB_MESSAGE): void {.stdcall.} MIDL_SERVER_INFO* {.pure.} = object pStubDesc*: PMIDL_STUB_DESC DispatchTable*: ptr SERVER_ROUTINE @@ -314,6 +384,7 @@ pTransferSyntax*: PRPC_SYNTAX_IDENTIFIER nCount*: ULONG_PTR pSyntaxInfo*: PMIDL_SYNTAX_INFO + PMIDL_SERVER_INFO* = ptr MIDL_SERVER_INFO MIDL_STUBLESS_PROXY_INFO* {.pure.} = object pStubDesc*: PMIDL_STUB_DESC @@ -322,6 +393,7 @@ pTransferSyntax*: PRPC_SYNTAX_IDENTIFIER nCount*: ULONG_PTR pSyntaxInfo*: PMIDL_SYNTAX_INFO + PMIDL_STUBLESS_PROXY_INFO* = ptr MIDL_STUBLESS_PROXY_INFO PFULL_PTR_XLAT_TABLES* = ptr FULL_PTR_XLAT_TABLES rpc_binding_handle_t* = RPC_BINDING_HANDLE @@ -331,17 +403,20 @@ UUID_VECTOR* {.pure.} = object Count*: int32 Uuid*: array[1, ptr UUID] + uuid_vector_t* = UUID_VECTOR RPC_POLICY* {.pure.} = object Length*: int32 EndpointFlags*: int32 NICFlags*: int32 + PRPC_POLICY* = ptr RPC_POLICY RPC_SECURITY_QOS* {.pure.} = object Version*: int32 Capabilities*: int32 IdentityTracking*: int32 ImpersonationType*: int32 + PRPC_SECURITY_QOS* = ptr RPC_SECURITY_QOS RPC_HTTP_TRANSPORT_CREDENTIALS_W* {.pure.} = object TransportCredentials*: ptr SEC_WINNT_AUTH_IDENTITY_W @@ -350,6 +425,7 @@ NumberOfAuthnSchemes*: int32 AuthnSchemes*: ptr int32 ServerCertificateSubject*: ptr uint16 + PRPC_HTTP_TRANSPORT_CREDENTIALS_W* = ptr RPC_HTTP_TRANSPORT_CREDENTIALS_W RPC_HTTP_TRANSPORT_CREDENTIALS_A* {.pure.} = object TransportCredentials*: ptr SEC_WINNT_AUTH_IDENTITY_A @@ -358,9 +434,11 @@ NumberOfAuthnSchemes*: int32 AuthnSchemes*: ptr int32 ServerCertificateSubject*: ptr uint8 + PRPC_HTTP_TRANSPORT_CREDENTIALS_A* = ptr RPC_HTTP_TRANSPORT_CREDENTIALS_A RPC_SECURITY_QOS_V2_W_u* {.pure, union.} = object HttpCredentials*: ptr RPC_HTTP_TRANSPORT_CREDENTIALS_W + RPC_SECURITY_QOS_V2_W* {.pure.} = object Version*: int32 Capabilities*: int32 @@ -368,9 +446,11 @@ ImpersonationType*: int32 AdditionalSecurityInfoType*: int32 u*: RPC_SECURITY_QOS_V2_W_u + PRPC_SECURITY_QOS_V2_W* = ptr RPC_SECURITY_QOS_V2_W RPC_SECURITY_QOS_V2_A_u* {.pure, union.} = object HttpCredentials*: ptr RPC_HTTP_TRANSPORT_CREDENTIALS_A + RPC_SECURITY_QOS_V2_A* {.pure.} = object Version*: int32 Capabilities*: int32 @@ -378,9 +458,11 @@ ImpersonationType*: int32 AdditionalSecurityInfoType*: int32 u*: RPC_SECURITY_QOS_V2_A_u + PRPC_SECURITY_QOS_V2_A* = ptr RPC_SECURITY_QOS_V2_A RPC_SECURITY_QOS_V3_W_u* {.pure, union.} = object HttpCredentials*: ptr RPC_HTTP_TRANSPORT_CREDENTIALS_W + RPC_SECURITY_QOS_V3_W* {.pure.} = object Version*: int32 Capabilities*: int32 @@ -389,9 +471,11 @@ AdditionalSecurityInfoType*: int32 u*: RPC_SECURITY_QOS_V3_W_u Sid*: pointer + PRPC_SECURITY_QOS_V3_W* = ptr RPC_SECURITY_QOS_V3_W RPC_SECURITY_QOS_V3_A_u* {.pure, union.} = object HttpCredentials*: ptr RPC_HTTP_TRANSPORT_CREDENTIALS_A + RPC_SECURITY_QOS_V3_A* {.pure.} = object Version*: int32 Capabilities*: int32 @@ -400,12 +484,14 @@ AdditionalSecurityInfoType*: int32 u*: RPC_SECURITY_QOS_V3_A_u Sid*: pointer + PRPC_SECURITY_QOS_V3_A* = ptr RPC_SECURITY_QOS_V3_A RPC_CLIENT_INFORMATION1* {.pure.} = object UserName*: ptr uint8 ComputerName*: ptr uint8 Privilege*: uint16 AuthFlags*: int32 + PRPC_CLIENT_INFORMATION1* = ptr RPC_CLIENT_INFORMATION1 RPC_EP_INQ_HANDLE* = ptr I_RPC_HANDLE RPC_BINDING_HANDLE_OPTIONS_V1* {.pure.} = object @@ -413,6 +499,7 @@ Flags*: int32 ComTimeout*: int32 CallTimeout*: int32 + RPC_BINDING_HANDLE_OPTIONS* = RPC_BINDING_HANDLE_OPTIONS_V1 RPC_BINDING_HANDLE_SECURITY_V1* {.pure.} = object Version*: int32 @@ -421,9 +508,11 @@ AuthnSvc*: int32 AuthIdentity*: ptr SEC_WINNT_AUTH_IDENTITY SecurityQos*: ptr RPC_SECURITY_QOS + RPC_BINDING_HANDLE_SECURITY* = RPC_BINDING_HANDLE_SECURITY_V1 RPC_BINDING_HANDLE_TEMPLATE_V1_u1* {.pure, union.} = object Reserved*: ptr uint16 + RPC_BINDING_HANDLE_TEMPLATE_V1* {.pure.} = object Version*: int32 Flags*: int32 @@ -432,11 +521,13 @@ StringEndpoint*: ptr uint16 u1*: RPC_BINDING_HANDLE_TEMPLATE_V1_u1 ObjectUuid*: UUID + RPC_BINDING_HANDLE_TEMPLATE* = RPC_BINDING_HANDLE_TEMPLATE_V1 PRPC_DISPATCH_TABLE* = ptr RPC_DISPATCH_TABLE RPC_PROTSEQ_ENDPOINT* {.pure.} = object RpcProtocolSequence*: ptr uint8 Endpoint*: ptr uint8 + PRPC_PROTSEQ_ENDPOINT* = ptr RPC_PROTSEQ_ENDPOINT RPC_SERVER_INTERFACE* {.pure.} = object Length*: int32 @@ -448,6 +539,7 @@ DefaultManagerEpv*: ptr RPC_MGR_EPV InterpreterInfo*: pointer Flags*: int32 + PRPC_SERVER_INTERFACE* = ptr RPC_SERVER_INTERFACE RPC_CLIENT_INTERFACE* {.pure.} = object Length*: int32 @@ -459,25 +551,32 @@ Reserved*: ULONG_PTR InterpreterInfo*: pointer Flags*: int32 + PRPC_CLIENT_INTERFACE* = ptr RPC_CLIENT_INTERFACE - PFN_RPCNOTIFICATION_ROUTINE* = proc (pAsync: ptr RPC_ASYNC_STATE, Context: pointer, Event: RPC_ASYNC_EVENT): void {.stdcall.} + PFN_RPCNOTIFICATION_ROUTINE* = proc( + pAsync: ptr RPC_ASYNC_STATE, Context: pointer, Event: RPC_ASYNC_EVENT + ): void {.stdcall.} RPC_ASYNC_STATE_u_APC* {.pure.} = object NotificationRoutine*: PFN_RPCNOTIFICATION_ROUTINE hThread*: HANDLE + RPC_ASYNC_STATE_u_IOC* {.pure.} = object hIOPort*: HANDLE dwNumberOfBytesTransferred*: DWORD dwCompletionKey*: DWORD_PTR lpOverlapped*: LPOVERLAPPED + RPC_ASYNC_STATE_u_HWND* {.pure.} = object hWnd*: HWND Msg*: UINT + RPC_ASYNC_STATE_u* {.pure, union.} = object APC*: RPC_ASYNC_STATE_u_APC IOC*: RPC_ASYNC_STATE_u_IOC HWND*: RPC_ASYNC_STATE_u_HWND hEvent*: HANDLE NotificationRoutine*: PFN_RPCNOTIFICATION_ROUTINE + RPC_ASYNC_STATE* {.pure.} = object Size*: int32 Signature*: int32 @@ -490,6 +589,7 @@ NotificationType*: RPC_NOTIFICATION_TYPES u*: RPC_ASYNC_STATE_u Reserved*: array[4, LONG_PTR] + PRPC_ASYNC_STATE* = ptr RPC_ASYNC_STATE RPC_CALL_ATTRIBUTES_V1_W* {.pure.} = object Version*: int32 @@ -501,54 +601,59 @@ AuthenticationLevel*: int32 AuthenticationService*: int32 NullSession*: WINBOOL + when winimUnicode: - type - RPC_CALL_ATTRIBUTES_V1* = RPC_CALL_ATTRIBUTES_V1_W -type - RPC_CALL_ATTRIBUTES_V1_A* {.pure.} = object - Version*: int32 - Flags*: int32 - ServerPrincipalNameBufferLength*: int32 - ServerPrincipalName*: ptr uint8 - ClientPrincipalNameBufferLength*: int32 - ClientPrincipalName*: ptr uint8 - AuthenticationLevel*: int32 - AuthenticationService*: int32 - NullSession*: WINBOOL + type RPC_CALL_ATTRIBUTES_V1* = RPC_CALL_ATTRIBUTES_V1_W +type RPC_CALL_ATTRIBUTES_V1_A* {.pure.} = object + Version*: int32 + Flags*: int32 + ServerPrincipalNameBufferLength*: int32 + ServerPrincipalName*: ptr uint8 + ClientPrincipalNameBufferLength*: int32 + ClientPrincipalName*: ptr uint8 + AuthenticationLevel*: int32 + AuthenticationService*: int32 + NullSession*: WINBOOL + when winimAnsi: - type - RPC_CALL_ATTRIBUTES_V1* = RPC_CALL_ATTRIBUTES_V1_A + type RPC_CALL_ATTRIBUTES_V1* = RPC_CALL_ATTRIBUTES_V1_A type RPC_CALL_ATTRIBUTES* = RPC_CALL_ATTRIBUTES_V1 RPC_ASYNC_NOTIFICATION_INFO_APC* {.pure.} = object NotificationRoutine*: PFN_RPCNOTIFICATION_ROUTINE hThread*: HANDLE + RPC_ASYNC_NOTIFICATION_INFO_IOC* {.pure.} = object hIOPort*: HANDLE dwNumberOfBytesTransferred*: DWORD dwCompletionKey*: DWORD_PTR lpOverlapped*: LPOVERLAPPED + RPC_ASYNC_NOTIFICATION_INFO_HWND* {.pure.} = object hWnd*: HWND Msg*: UINT + RPC_ASYNC_NOTIFICATION_INFO* {.pure, union.} = object APC*: RPC_ASYNC_NOTIFICATION_INFO_APC IOC*: RPC_ASYNC_NOTIFICATION_INFO_IOC HWND*: RPC_ASYNC_NOTIFICATION_INFO_HWND hEvent*: HANDLE NotificationRoutine*: PFN_RPCNOTIFICATION_ROUTINE + PRPC_ASYNC_NOTIFICATION_INFO* = ptr RPC_ASYNC_NOTIFICATION_INFO RPC_CALL_LOCAL_ADDRESS_V1_A* {.pure.} = object Version*: int32 Buffer*: pointer BufferSize*: int32 AddressFormat*: RpcLocalAddressFormat + RPC_CALL_LOCAL_ADDRESS_A* = RPC_CALL_LOCAL_ADDRESS_V1_A RPC_CALL_LOCAL_ADDRESS_V1_W* {.pure.} = object Version*: int32 Buffer*: pointer BufferSize*: int32 AddressFormat*: RpcLocalAddressFormat + RPC_CALL_LOCAL_ADDRESS_W* = RPC_CALL_LOCAL_ADDRESS_V1_W RPC_CALL_ATTRIBUTES_V2_A* {.pure.} = object Version*: int32 @@ -569,6 +674,7 @@ CallLocalAddress*: ptr RPC_CALL_LOCAL_ADDRESS_A OpNum*: uint16 InterfaceUuid*: UUID + RPC_CALL_ATTRIBUTES_A* = RPC_CALL_ATTRIBUTES_V2_A RPC_CALL_ATTRIBUTES_V2_W* {.pure.} = object Version*: int32 @@ -589,25 +695,35 @@ CallLocalAddress*: ptr RPC_CALL_LOCAL_ADDRESS_W OpNum*: uint16 InterfaceUuid*: UUID + RPC_CALL_ATTRIBUTES_W* = RPC_CALL_ATTRIBUTES_V2_W - PRPC_STUB_FUNCTION* = proc (This: ptr IRpcStubBuffer, pRpcChannelBuffer: ptr IRpcChannelBuffer, pRpcMessage: PRPC_MESSAGE, pdwStubPhase: ptr DWORD): void {.stdcall.} + PRPC_STUB_FUNCTION* = proc( + This: ptr IRpcStubBuffer, + pRpcChannelBuffer: ptr IRpcChannelBuffer, + pRpcMessage: PRPC_MESSAGE, + pdwStubPhase: ptr DWORD, + ): void {.stdcall.} CInterfaceStubHeader* {.pure.} = object piid*: ptr IID pServerInfo*: ptr MIDL_SERVER_INFO DispatchTableCount*: int32 pDispatchTable*: ptr PRPC_STUB_FUNCTION + CInterfaceStubVtbl* {.pure.} = object header*: CInterfaceStubHeader Vtbl*: IRpcStubBufferVtbl + PCInterfaceStubVtblList* = ptr CInterfaceStubVtbl CInterfaceProxyHeader* {.pure.} = object pStublessProxyInfo*: pointer piid*: ptr IID + CInterfaceProxyVtbl* {.pure.} = object header*: CInterfaceProxyHeader Vtbl*: UncheckedArray[pointer] + PCInterfaceProxyVtblList* = ptr CInterfaceProxyVtbl - IIDLookupRtn* = proc (pIID: ptr IID, pIndex: ptr int32): int32 {.stdcall.} + IIDLookupRtn* = proc(pIID: ptr IID, pIndex: ptr int32): int32 {.stdcall.} PIIDLookup* = IIDLookupRtn ProxyFileInfo* {.pure.} = object pProxyVtblList*: ptr PCInterfaceProxyVtblList @@ -621,7 +737,9 @@ Filler2*: LONG_PTR Filler3*: LONG_PTR Filler4*: LONG_PTR + ExtendedProxyFileInfo* = ProxyFileInfo + const RPCNDR_H_VERSION* = 475 NDR_CHAR_REP_MASK* = 0X0000000F @@ -914,28 +1032,69 @@ RPC_C_NO_CREDENTIALS* = RPC_AUTH_IDENTITY_HANDLE(-1) RPC_CONTEXT_HANDLE_DEFAULT_GUARD* = HANDLE(-4083) type - NDR_NOTIFY2_ROUTINE* = proc (flag: boolean): void {.stdcall.} - RPC_CLIENT_ALLOC* = proc (Size: int): pointer {.stdcall.} - RPC_CLIENT_FREE* = proc (Ptr: pointer): void {.stdcall.} - RPC_OBJECT_INQ_FN* = proc (ObjectUuid: ptr UUID, TypeUuid: ptr UUID, Status: ptr RPC_STATUS): void {.stdcall.} - RPC_IF_CALLBACK_FN* = proc (InterfaceUuid: RPC_IF_HANDLE, Context: pointer): RPC_STATUS {.stdcall.} - RPC_SECURITY_CALLBACK_FN* = proc (Context: pointer): void {.stdcall.} - RPC_NEW_HTTP_PROXY_CHANNEL* = proc (RedirectorStage: RPC_HTTP_REDIRECTOR_STAGE, ServerName: ptr uint16, ServerPort: ptr uint16, RemoteUser: ptr uint16, AuthType: ptr uint16, ResourceUuid: pointer, Metadata: pointer, SessionId: pointer, Interface: pointer, Reserved: pointer, Flags: int32, NewServerName: ptr ptr uint16, NewServerPort: ptr ptr uint16): RPC_STATUS {.stdcall.} - RPC_HTTP_PROXY_FREE_STRING* = proc (String: ptr uint16): void {.stdcall.} - RPC_AUTH_KEY_RETRIEVAL_FN* = proc (Arg: pointer, ServerPrincName: ptr uint16, KeyVer: int32, Key: ptr pointer, Status: ptr RPC_STATUS): void {.stdcall.} - RPC_MGMT_AUTHORIZATION_FN* = proc (ClientBinding: RPC_BINDING_HANDLE, RequestedMgmtOperation: int32, Status: ptr RPC_STATUS): int32 {.stdcall.} - RPC_FORWARD_FUNCTION* = proc (InterfaceId: ptr UUID, InterfaceVersion: ptr RPC_VERSION, ObjectId: ptr UUID, Rpcpro: ptr uint8, ppDestEndpoint: ptr pointer): RPC_STATUS {.stdcall.} - RPC_ADDRESS_CHANGE_FN* = proc (arg: pointer): void {.stdcall.} - PRPC_RUNDOWN* = proc (AssociationContext: pointer): void {.stdcall.} - RPCLT_PDU_FILTER_FUNC* = proc (Buffer: pointer, BufferLength: int32, fDatagram: int32): void {.stdcall.} - RPC_SETFILTER_FUNC* = proc (pfnFilter: RPCLT_PDU_FILTER_FUNC): void {.stdcall.} - RPC_BLOCKING_FN* = proc (hWnd: pointer, Context: pointer, hSyncEvent: pointer): RPC_STATUS {.stdcall.} - I_RpcProxyIsValidMachineFn* = proc (pszMachine: ptr char, pszDotMachine: ptr char, dwPortNumber: int32): RPC_STATUS {.stdcall.} - I_RpcProxyGetClientAddressFn* = proc (Context: pointer, Buffer: ptr char, BufferLength: ptr int32): RPC_STATUS {.stdcall.} - I_RpcProxyGetConnectionTimeoutFn* = proc (ConnectionTimeout: ptr int32): RPC_STATUS {.stdcall.} + NDR_NOTIFY2_ROUTINE* = proc(flag: boolean): void {.stdcall.} + RPC_CLIENT_ALLOC* = proc(Size: int): pointer {.stdcall.} + RPC_CLIENT_FREE* = proc(Ptr: pointer): void {.stdcall.} + RPC_OBJECT_INQ_FN* = proc( + ObjectUuid: ptr UUID, TypeUuid: ptr UUID, Status: ptr RPC_STATUS + ): void {.stdcall.} + RPC_IF_CALLBACK_FN* = + proc(InterfaceUuid: RPC_IF_HANDLE, Context: pointer): RPC_STATUS {.stdcall.} + RPC_SECURITY_CALLBACK_FN* = proc(Context: pointer): void {.stdcall.} + RPC_NEW_HTTP_PROXY_CHANNEL* = proc( + RedirectorStage: RPC_HTTP_REDIRECTOR_STAGE, + ServerName: ptr uint16, + ServerPort: ptr uint16, + RemoteUser: ptr uint16, + AuthType: ptr uint16, + ResourceUuid: pointer, + Metadata: pointer, + SessionId: pointer, + Interface: pointer, + Reserved: pointer, + Flags: int32, + NewServerName: ptr ptr uint16, + NewServerPort: ptr ptr uint16, + ): RPC_STATUS {.stdcall.} + RPC_HTTP_PROXY_FREE_STRING* = proc(String: ptr uint16): void {.stdcall.} + RPC_AUTH_KEY_RETRIEVAL_FN* = proc( + Arg: pointer, + ServerPrincName: ptr uint16, + KeyVer: int32, + Key: ptr pointer, + Status: ptr RPC_STATUS, + ): void {.stdcall.} + RPC_MGMT_AUTHORIZATION_FN* = proc( + ClientBinding: RPC_BINDING_HANDLE, + RequestedMgmtOperation: int32, + Status: ptr RPC_STATUS, + ): int32 {.stdcall.} + RPC_FORWARD_FUNCTION* = proc( + InterfaceId: ptr UUID, + InterfaceVersion: ptr RPC_VERSION, + ObjectId: ptr UUID, + Rpcpro: ptr uint8, + ppDestEndpoint: ptr pointer, + ): RPC_STATUS {.stdcall.} + RPC_ADDRESS_CHANGE_FN* = proc(arg: pointer): void {.stdcall.} + PRPC_RUNDOWN* = proc(AssociationContext: pointer): void {.stdcall.} + RPCLT_PDU_FILTER_FUNC* = + proc(Buffer: pointer, BufferLength: int32, fDatagram: int32): void {.stdcall.} + RPC_SETFILTER_FUNC* = proc(pfnFilter: RPCLT_PDU_FILTER_FUNC): void {.stdcall.} + RPC_BLOCKING_FN* = + proc(hWnd: pointer, Context: pointer, hSyncEvent: pointer): RPC_STATUS {.stdcall.} + I_RpcProxyIsValidMachineFn* = proc( + pszMachine: ptr char, pszDotMachine: ptr char, dwPortNumber: int32 + ): RPC_STATUS {.stdcall.} + I_RpcProxyGetClientAddressFn* = proc( + Context: pointer, Buffer: ptr char, BufferLength: ptr int32 + ): RPC_STATUS {.stdcall.} + I_RpcProxyGetConnectionTimeoutFn* = + proc(ConnectionTimeout: ptr int32): RPC_STATUS {.stdcall.} RPC_C_OPT_METADATA_DESCRIPTOR* {.pure.} = object BufferSize*: int32 Buffer*: ptr char + RDR_CALLOUT_STATE* {.pure.} = object LastError*: RPC_STATUS LastEEInfo*: pointer @@ -953,9 +1112,16 @@ SessionId*: UUID Interface*: RPC_SYNTAX_IDENTIFIER CertContext*: pointer - I_RpcPerformCalloutFn* = proc (Context: pointer, CallOutState: ptr RDR_CALLOUT_STATE, Stage: RPC_HTTP_REDIRECTOR_STAGE): RPC_STATUS {.stdcall.} - I_RpcFreeCalloutStateFn* = proc (CallOutState: ptr RDR_CALLOUT_STATE): void {.stdcall.} - RPCNOTIFICATION_ROUTINE* = proc (pAsync: ptr RPC_ASYNC_STATE, Context: pointer, Event: RPC_ASYNC_EVENT): void {.stdcall.} + + I_RpcPerformCalloutFn* = proc( + Context: pointer, + CallOutState: ptr RDR_CALLOUT_STATE, + Stage: RPC_HTTP_REDIRECTOR_STAGE, + ): RPC_STATUS {.stdcall.} + I_RpcFreeCalloutStateFn* = proc(CallOutState: ptr RDR_CALLOUT_STATE): void {.stdcall.} + RPCNOTIFICATION_ROUTINE* = proc( + pAsync: ptr RPC_ASYNC_STATE, Context: pointer, Event: RPC_ASYNC_EVENT + ): void {.stdcall.} USER_MARSHAL_CB* {.pure.} = object Flags*: int32 pStubMsg*: PMIDL_STUB_MESSAGE @@ -964,12 +1130,15 @@ CBType*: USER_MARSHAL_CB_TYPE pFormat*: PFORMAT_STRING pTypeFormat*: PFORMAT_STRING + MIDL_FORMAT_STRING* {.pure.} = object Pad*: int16 Format*: UncheckedArray[uint8] + CLIENT_CALL_RETURN* {.pure, union.} = object Pointer*: pointer Simple*: LONG_PTR + NDR_USER_MARSHAL_INFO_LEVEL1* {.pure.} = object Buffer*: pointer BufferSize*: int32 @@ -977,40 +1146,51 @@ pfnFree*: proc(P1: pointer): void {.stdcall.} pRpcChannelBuffer*: ptr IRpcChannelBuffer Reserved*: array[5, ULONG_PTR] + NDR_USER_MARSHAL_INFO_UNION1* {.pure, union.} = object Level1*: NDR_USER_MARSHAL_INFO_LEVEL1 + NDR_USER_MARSHAL_INFO* {.pure.} = object InformationLevel*: int32 union1*: NDR_USER_MARSHAL_INFO_UNION1 + RPC_IF_ID* {.pure.} = object Uuid*: UUID VersMajor*: uint16 VersMinor*: uint16 + RPC_PROTSEQ_VECTORA* {.pure.} = object Count*: int32 Protseq*: array[1, ptr uint8] + RPC_PROTSEQ_VECTORW* {.pure.} = object Count*: int32 Protseq*: array[1, ptr uint16] + RPC_STATS_VECTOR* {.pure.} = object Count*: int32 Stats*: array[1, int32] + RPC_IF_ID_VECTOR* {.pure.} = object Count*: int32 IfId*: array[1, ptr RPC_IF_ID] + RPC_TRANSFER_SYNTAX* {.pure.} = object Uuid*: UUID VersMajor*: uint16 VersMinor*: uint16 + I_RpcProxyCallbackInterface* {.pure.} = object IsValidMachineFn*: I_RpcProxyIsValidMachineFn GetClientAddressFn*: I_RpcProxyGetClientAddressFn GetConnectionTimeoutFn*: I_RpcProxyGetConnectionTimeoutFn PerformCalloutFn*: I_RpcPerformCalloutFn FreeCalloutStateFn*: I_RpcFreeCalloutStateFn + BinaryParam* {.pure.} = object Buffer*: pointer Size*: int16 + RPC_EE_INFO_PARAM_u* {.pure, union.} = object AnsiString*: LPSTR UnicodeString*: LPWSTR @@ -1018,13 +1198,16 @@ SVal*: int16 PVal*: ULONGLONG BVal*: BinaryParam + RPC_EE_INFO_PARAM* {.pure.} = object ParameterType*: ExtendedErrorParamTypes padding*: array[4, byte] u*: RPC_EE_INFO_PARAM_u + RPC_EXTENDED_ERROR_INFO_u* {.pure, union.} = object SystemTime*: SYSTEMTIME FileTime*: FILETIME + RPC_EXTENDED_ERROR_INFO* {.pure.} = object Version*: ULONG ComputerName*: LPWSTR @@ -1037,10 +1220,12 @@ NumberOfParameters*: int32 padding*: array[4, byte] Parameters*: array[maxNumberOfEEInfoParams, RPC_EE_INFO_PARAM] + RPC_ERROR_ENUM_HANDLE* {.pure.} = object Signature*: ULONG CurrentPos*: pointer Head*: pointer + CStdStubBuffer* {.pure.} = object lpVtbl*: ptr IRpcStubBufferVtbl RefCount*: int32 @@ -1049,471 +1234,2250 @@ pAsyncIID*: ptr IID pPSFactory*: ptr IPSFactoryBuffer pRMBVtbl*: ptr IReleaseMarshalBuffersVtbl + CStdPSFactoryBuffer* {.pure.} = object lpVtbl*: ptr IPSFactoryBufferVtbl RefCount*: int32 pProxyFileList*: ptr ptr ProxyFileInfo Filler1*: int32 -proc I_RpcNsGetBuffer*(Message: PRPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc I_RpcNsSendReceive*(Message: PRPC_MESSAGE, Handle: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc I_RpcNsRaiseException*(Message: PRPC_MESSAGE, Status: RPC_STATUS): void {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc I_RpcReBindBuffer*(Message: PRPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc NDRCContextBinding*(CContext: NDR_CCONTEXT): RPC_BINDING_HANDLE {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRCContextMarshall*(CContext: NDR_CCONTEXT, pBuff: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRCContextUnmarshall*(pCContext: ptr NDR_CCONTEXT, hBinding: RPC_BINDING_HANDLE, pBuff: pointer, DataRepresentation: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRSContextMarshall*(CContext: NDR_SCONTEXT, pBuff: pointer, userRunDownIn: NDR_RUNDOWN): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRSContextUnmarshall*(pBuff: pointer, DataRepresentation: int32): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRSContextMarshallEx*(BindingHandle: RPC_BINDING_HANDLE, CContext: NDR_SCONTEXT, pBuff: pointer, userRunDownIn: NDR_RUNDOWN): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRSContextMarshall2*(BindingHandle: RPC_BINDING_HANDLE, CContext: NDR_SCONTEXT, pBuff: pointer, userRunDownIn: NDR_RUNDOWN, CtxGuard: pointer, Flags: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRSContextUnmarshallEx*(BindingHandle: RPC_BINDING_HANDLE, pBuff: pointer, DataRepresentation: int32): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NDRSContextUnmarshall2*(BindingHandle: RPC_BINDING_HANDLE, pBuff: pointer, DataRepresentation: int32, CtxGuard: pointer, Flags: int32): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsDestroyClientContext*(ContextHandle: ptr pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleTypeMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, FormatChar: uint8): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPointerMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleStructMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStructMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingStructMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexStructMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFixedArrayMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantArrayMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingArrayMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrVaryingArrayMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexArrayMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonConformantStringMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStringMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrEncapsulatedUnionMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonEncapsulatedUnionMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrByteCountPointerMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrXmitOrRepAsMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrUserMarshalMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrInterfacePointerMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrClientContextMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ContextHandle: NDR_CCONTEXT, fCheck: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerContextMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ContextHandle: NDR_SCONTEXT, RundownRoutine: NDR_RUNDOWN): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerContextNewMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ContextHandle: NDR_SCONTEXT, RundownRoutine: NDR_RUNDOWN, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleTypeUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, FormatChar: uint8): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRangeUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrCorrelationInitialize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: pointer, CacheSize: int32, flags: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrCorrelationPass*(pStubMsg: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrCorrelationFree*(pStubMsg: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPointerUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleStructUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStructUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingStructUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexStructUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFixedArrayUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantArrayUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingArrayUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrVaryingArrayUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexArrayUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonConformantStringUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStringUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrEncapsulatedUnionUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonEncapsulatedUnionUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrByteCountPointerUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrXmitOrRepAsUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrUserMarshalUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrInterfacePointerUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr ptr uint8, pFormat: PFORMAT_STRING, fMustAlloc: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrClientContextUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pContextHandle: ptr NDR_CCONTEXT, BindHandle: RPC_BINDING_HANDLE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerContextUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrContextHandleInitialize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerContextNewUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPointerBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleStructBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStructBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingStructBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexStructBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFixedArrayBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantArrayBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingArrayBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrVaryingArrayBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexArrayBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStringBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonConformantStringBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrEncapsulatedUnionBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonEncapsulatedUnionBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrByteCountPointerBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrXmitOrRepAsBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrUserMarshalBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrInterfacePointerBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrContextHandleSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPointerMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleStructMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStructMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingStructMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexStructMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFixedArrayMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantArrayMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingArrayMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrVaryingArrayMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexArrayMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStringMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonConformantStringMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrEncapsulatedUnionMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonEncapsulatedUnionMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrXmitOrRepAsMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrUserMarshalMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrInterfacePointerMemorySize*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPointerFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSimpleStructFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantStructFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingStructFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexStructFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFixedArrayFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantArrayFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConformantVaryingArrayFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrVaryingArrayFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrComplexArrayFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrEncapsulatedUnionFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNonEncapsulatedUnionFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrByteCountPointerFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrXmitOrRepAsFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrUserMarshalFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrInterfacePointerFree*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConvert2*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING, NumberParams: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrConvert*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrUserMarshalSimpleTypeConvert*(pFlags: ptr int32, pBuffer: ptr uint8, FormatChar: uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrClientInitializeNew*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, ProcNum: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerInitializeNew*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerInitializePartial*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, RequestedBufferSize: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrClientInitialize*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, ProcNum: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerInitialize*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerInitializeUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, pRpcMsg: PRPC_MESSAGE): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerInitializeMarshall*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrGetBuffer*(pStubMsg: PMIDL_STUB_MESSAGE, BufferLength: int32, Handle: RPC_BINDING_HANDLE): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNsGetBuffer*(pStubMsg: PMIDL_STUB_MESSAGE, BufferLength: int32, Handle: RPC_BINDING_HANDLE): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrSendReceive*(pStubMsg: PMIDL_STUB_MESSAGE, pBufferEnd: ptr uint8): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrNsSendReceive*(pStubMsg: PMIDL_STUB_MESSAGE, pBufferEnd: ptr uint8, pAutoHandle: ptr RPC_BINDING_HANDLE): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFreeBuffer*(pStubMsg: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrGetDcomProtocolVersion*(pStubMsg: PMIDL_STUB_MESSAGE, pVersion: ptr RPC_VERSION): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrAsyncServerCall*(pRpcMsg: PRPC_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrDcomAsyncStubCall*(pThis: ptr IRpcStubBuffer, pChannel: ptr IRpcChannelBuffer, pRpcMsg: PRPC_MESSAGE, pdwStubPhase: ptr int32): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrStubCall2*(pThis: ptr IRpcStubBuffer, pChannel: ptr IRpcChannelBuffer, pRpcMsg: PRPC_MESSAGE, pdwStubPhase: ptr int32): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrServerCall2*(pRpcMsg: PRPC_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrMapCommAndFaultStatus*(pStubMsg: PMIDL_STUB_MESSAGE, pCommStatus: ptr int32, pFaultStatus: ptr int32, Status: RPC_STATUS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcNsGetBuffer*( + Message: PRPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc I_RpcNsSendReceive*( + Message: PRPC_MESSAGE, Handle: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc I_RpcNsRaiseException*( + Message: PRPC_MESSAGE, Status: RPC_STATUS +): void {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc I_RpcReBindBuffer*( + Message: PRPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc NDRCContextBinding*( + CContext: NDR_CCONTEXT +): RPC_BINDING_HANDLE {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRCContextMarshall*( + CContext: NDR_CCONTEXT, pBuff: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRCContextUnmarshall*( + pCContext: ptr NDR_CCONTEXT, + hBinding: RPC_BINDING_HANDLE, + pBuff: pointer, + DataRepresentation: int32, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRSContextMarshall*( + CContext: NDR_SCONTEXT, pBuff: pointer, userRunDownIn: NDR_RUNDOWN +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRSContextUnmarshall*( + pBuff: pointer, DataRepresentation: int32 +): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRSContextMarshallEx*( + BindingHandle: RPC_BINDING_HANDLE, + CContext: NDR_SCONTEXT, + pBuff: pointer, + userRunDownIn: NDR_RUNDOWN, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRSContextMarshall2*( + BindingHandle: RPC_BINDING_HANDLE, + CContext: NDR_SCONTEXT, + pBuff: pointer, + userRunDownIn: NDR_RUNDOWN, + CtxGuard: pointer, + Flags: int32, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRSContextUnmarshallEx*( + BindingHandle: RPC_BINDING_HANDLE, pBuff: pointer, DataRepresentation: int32 +): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NDRSContextUnmarshall2*( + BindingHandle: RPC_BINDING_HANDLE, + pBuff: pointer, + DataRepresentation: int32, + CtxGuard: pointer, + Flags: int32, +): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsDestroyClientContext*( + ContextHandle: ptr pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleTypeMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, FormatChar: uint8 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPointerMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleStructMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStructMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingStructMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexStructMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFixedArrayMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantArrayMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingArrayMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrVaryingArrayMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexArrayMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonConformantStringMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStringMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrEncapsulatedUnionMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonEncapsulatedUnionMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrByteCountPointerMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrXmitOrRepAsMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrUserMarshalMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrInterfacePointerMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrClientContextMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, ContextHandle: NDR_CCONTEXT, fCheck: int32 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerContextMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, ContextHandle: NDR_SCONTEXT, RundownRoutine: NDR_RUNDOWN +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerContextNewMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ContextHandle: NDR_SCONTEXT, + RundownRoutine: NDR_RUNDOWN, + pFormat: PFORMAT_STRING, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleTypeUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, FormatChar: uint8 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRangeUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrCorrelationInitialize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: pointer, CacheSize: int32, flags: int32 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrCorrelationPass*( + pStubMsg: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrCorrelationFree*( + pStubMsg: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPointerUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleStructUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStructUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingStructUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexStructUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFixedArrayUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantArrayUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingArrayUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrVaryingArrayUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexArrayUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonConformantStringUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStringUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrEncapsulatedUnionUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonEncapsulatedUnionUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrByteCountPointerUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrXmitOrRepAsUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrUserMarshalUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrInterfacePointerUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + ppMemory: ptr ptr uint8, + pFormat: PFORMAT_STRING, + fMustAlloc: uint8, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrClientContextUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, + pContextHandle: ptr NDR_CCONTEXT, + BindHandle: RPC_BINDING_HANDLE, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerContextUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE +): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrContextHandleInitialize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerContextNewUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): NDR_SCONTEXT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPointerBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleStructBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStructBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingStructBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexStructBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFixedArrayBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantArrayBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingArrayBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrVaryingArrayBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexArrayBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStringBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonConformantStringBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrEncapsulatedUnionBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonEncapsulatedUnionBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrByteCountPointerBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrXmitOrRepAsBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrUserMarshalBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrInterfacePointerBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrContextHandleSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPointerMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleStructMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStructMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingStructMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexStructMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFixedArrayMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantArrayMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingArrayMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrVaryingArrayMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexArrayMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStringMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonConformantStringMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrEncapsulatedUnionMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonEncapsulatedUnionMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrXmitOrRepAsMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrUserMarshalMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrInterfacePointerMemorySize*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPointerFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSimpleStructFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantStructFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingStructFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexStructFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFixedArrayFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantArrayFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConformantVaryingArrayFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrVaryingArrayFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrComplexArrayFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrEncapsulatedUnionFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNonEncapsulatedUnionFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrByteCountPointerFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrXmitOrRepAsFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrUserMarshalFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrInterfacePointerFree*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: ptr uint8, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConvert2*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING, NumberParams: int32 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrConvert*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrUserMarshalSimpleTypeConvert*( + pFlags: ptr int32, pBuffer: ptr uint8, FormatChar: uint8 +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrClientInitializeNew*( + pRpcMsg: PRPC_MESSAGE, + pStubMsg: PMIDL_STUB_MESSAGE, + pStubDescriptor: PMIDL_STUB_DESC, + ProcNum: int32, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerInitializeNew*( + pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerInitializePartial*( + pRpcMsg: PRPC_MESSAGE, + pStubMsg: PMIDL_STUB_MESSAGE, + pStubDescriptor: PMIDL_STUB_DESC, + RequestedBufferSize: int32, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrClientInitialize*( + pRpcMsg: PRPC_MESSAGE, + pStubMsg: PMIDL_STUB_MESSAGE, + pStubDescriptor: PMIDL_STUB_DESC, + ProcNum: int32, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerInitialize*( + pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerInitializeUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, pRpcMsg: PRPC_MESSAGE +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerInitializeMarshall*( + pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrGetBuffer*( + pStubMsg: PMIDL_STUB_MESSAGE, BufferLength: int32, Handle: RPC_BINDING_HANDLE +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNsGetBuffer*( + pStubMsg: PMIDL_STUB_MESSAGE, BufferLength: int32, Handle: RPC_BINDING_HANDLE +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrSendReceive*( + pStubMsg: PMIDL_STUB_MESSAGE, pBufferEnd: ptr uint8 +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrNsSendReceive*( + pStubMsg: PMIDL_STUB_MESSAGE, + pBufferEnd: ptr uint8, + pAutoHandle: ptr RPC_BINDING_HANDLE, +): ptr uint8 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFreeBuffer*( + pStubMsg: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrGetDcomProtocolVersion*( + pStubMsg: PMIDL_STUB_MESSAGE, pVersion: ptr RPC_VERSION +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrAsyncServerCall*( + pRpcMsg: PRPC_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrDcomAsyncStubCall*( + pThis: ptr IRpcStubBuffer, + pChannel: ptr IRpcChannelBuffer, + pRpcMsg: PRPC_MESSAGE, + pdwStubPhase: ptr int32, +): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrStubCall2*( + pThis: ptr IRpcStubBuffer, + pChannel: ptr IRpcChannelBuffer, + pRpcMsg: PRPC_MESSAGE, + pdwStubPhase: ptr int32, +): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrServerCall2*( + pRpcMsg: PRPC_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrMapCommAndFaultStatus*( + pStubMsg: PMIDL_STUB_MESSAGE, + pCommStatus: ptr int32, + pFaultStatus: ptr int32, + Status: RPC_STATUS, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcSsAllocate*(Size: int): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} proc RpcSsDisableAllocate*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} proc RpcSsEnableAllocate*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsFree*(NodeToFree: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsGetThreadHandle*(): RPC_SS_THREAD_HANDLE {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsSetClientAllocFree*(ClientAlloc: RPC_CLIENT_ALLOC, ClientFree: RPC_CLIENT_FREE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsSetThreadHandle*(Id: RPC_SS_THREAD_HANDLE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsSwapClientAllocFree*(ClientAlloc: RPC_CLIENT_ALLOC, ClientFree: RPC_CLIENT_FREE, OldClientAlloc: RPC_CLIENT_ALLOC, OldClientFree: RPC_CLIENT_FREE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmAllocate*(Size: int, pStatus: ptr RPC_STATUS): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmClientFree*(pNodeToFree: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmDestroyClientContext*(ContextHandle: ptr pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc RpcSsFree*( + NodeToFree: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsGetThreadHandle*(): RPC_SS_THREAD_HANDLE {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc RpcSsSetClientAllocFree*( + ClientAlloc: RPC_CLIENT_ALLOC, ClientFree: RPC_CLIENT_FREE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsSetThreadHandle*( + Id: RPC_SS_THREAD_HANDLE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsSwapClientAllocFree*( + ClientAlloc: RPC_CLIENT_ALLOC, + ClientFree: RPC_CLIENT_FREE, + OldClientAlloc: RPC_CLIENT_ALLOC, + OldClientFree: RPC_CLIENT_FREE, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmAllocate*( + Size: int, pStatus: ptr RPC_STATUS +): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmClientFree*( + pNodeToFree: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmDestroyClientContext*( + ContextHandle: ptr pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcSmDisableAllocate*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} proc RpcSmEnableAllocate*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmFree*(NodeToFree: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmGetThreadHandle*(pStatus: ptr RPC_STATUS): RPC_SS_THREAD_HANDLE {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmSetClientAllocFree*(ClientAlloc: RPC_CLIENT_ALLOC, ClientFree: RPC_CLIENT_FREE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmSetThreadHandle*(Id: RPC_SS_THREAD_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSmSwapClientAllocFree*(ClientAlloc: RPC_CLIENT_ALLOC, ClientFree: RPC_CLIENT_FREE, OldClientAlloc: RPC_CLIENT_ALLOC, OldClientFree: RPC_CLIENT_FREE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSsEnableAllocate*(pMessage: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSsDisableAllocate*(pMessage: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSmSetClientToOsf*(pMessage: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSmClientAllocate*(Size: int): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSmClientFree*(NodeToFree: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSsDefaultAllocate*(Size: int): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrRpcSsDefaultFree*(NodeToFree: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFullPointerXlatInit*(NumberOfPointers: int32, XlatSide: XLAT_SIDE): PFULL_PTR_XLAT_TABLES {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFullPointerXlatFree*(pXlatTables: PFULL_PTR_XLAT_TABLES): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFullPointerQueryPointer*(pXlatTables: PFULL_PTR_XLAT_TABLES, pPointer: pointer, QueryType: uint8, pRefId: ptr int32): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFullPointerQueryRefId*(pXlatTables: PFULL_PTR_XLAT_TABLES, RefId: int32, QueryType: uint8, ppPointer: ptr pointer): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFullPointerInsertRefId*(pXlatTables: PFULL_PTR_XLAT_TABLES, RefId: int32, pPointer: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrFullPointerFree*(pXlatTables: PFULL_PTR_XLAT_TABLES, Pointer: pointer): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrAllocate*(pStubMsg: PMIDL_STUB_MESSAGE, Len: int): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrClearOutParameters*(pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING, ArgAddr: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc RpcSmFree*( + NodeToFree: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmGetThreadHandle*( + pStatus: ptr RPC_STATUS +): RPC_SS_THREAD_HANDLE {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmSetClientAllocFree*( + ClientAlloc: RPC_CLIENT_ALLOC, ClientFree: RPC_CLIENT_FREE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmSetThreadHandle*( + Id: RPC_SS_THREAD_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSmSwapClientAllocFree*( + ClientAlloc: RPC_CLIENT_ALLOC, + ClientFree: RPC_CLIENT_FREE, + OldClientAlloc: RPC_CLIENT_ALLOC, + OldClientFree: RPC_CLIENT_FREE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSsEnableAllocate*( + pMessage: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSsDisableAllocate*( + pMessage: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSmSetClientToOsf*( + pMessage: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSmClientAllocate*( + Size: int +): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSmClientFree*( + NodeToFree: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSsDefaultAllocate*( + Size: int +): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrRpcSsDefaultFree*( + NodeToFree: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFullPointerXlatInit*( + NumberOfPointers: int32, XlatSide: XLAT_SIDE +): PFULL_PTR_XLAT_TABLES {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFullPointerXlatFree*( + pXlatTables: PFULL_PTR_XLAT_TABLES +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFullPointerQueryPointer*( + pXlatTables: PFULL_PTR_XLAT_TABLES, + pPointer: pointer, + QueryType: uint8, + pRefId: ptr int32, +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFullPointerQueryRefId*( + pXlatTables: PFULL_PTR_XLAT_TABLES, + RefId: int32, + QueryType: uint8, + ppPointer: ptr pointer, +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFullPointerInsertRefId*( + pXlatTables: PFULL_PTR_XLAT_TABLES, RefId: int32, pPointer: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrFullPointerFree*( + pXlatTables: PFULL_PTR_XLAT_TABLES, Pointer: pointer +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrAllocate*( + pStubMsg: PMIDL_STUB_MESSAGE, Len: int +): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrClearOutParameters*( + pStubMsg: PMIDL_STUB_MESSAGE, pFormat: PFORMAT_STRING, ArgAddr: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc NdrOleAllocate*(Size: int): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrOleFree*(NodeToFree: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrGetUserMarshalInfo*(pFlags: ptr int32, InformationLevel: int32, pMarshalInfo: ptr NDR_USER_MARSHAL_INFO): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrCreateServerInterfaceFromStub*(pStub: ptr IRpcStubBuffer, pServerIf: ptr RPC_SERVER_INTERFACE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPartialIgnoreClientMarshall*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPartialIgnoreServerUnmarshall*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPartialIgnoreClientBufferSize*(pStubMsg: PMIDL_STUB_MESSAGE, pMemory: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrPartialIgnoreServerInitialize*(pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr pointer, pFormat: PFORMAT_STRING): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcUserFree*(AsyncHandle: handle_t, pBuffer: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingCopy*(SourceBinding: RPC_BINDING_HANDLE, DestinationBinding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingFree*(Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingSetOption*(hBinding: RPC_BINDING_HANDLE, option: int32, optionValue: ULONG_PTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqOption*(hBinding: RPC_BINDING_HANDLE, option: int32, pOptionValue: ptr ULONG_PTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingFromStringBindingA*(StringBinding: RPC_CSTR, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingFromStringBindingW*(StringBinding: RPC_WSTR, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsGetContextBinding*(ContextHandle: pointer, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqObject*(Binding: RPC_BINDING_HANDLE, ObjectUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingReset*(Binding: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingSetObject*(Binding: RPC_BINDING_HANDLE, ObjectUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtInqDefaultProtectLevel*(AuthnSvc: int32, AuthnLevel: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingToStringBindingA*(Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingToStringBindingW*(Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingVectorFree*(BindingVector: ptr ptr RPC_BINDING_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcStringBindingComposeA*(ObjUuid: RPC_CSTR, Protseq: RPC_CSTR, NetworkAddr: RPC_CSTR, Endpoint: RPC_CSTR, Options: RPC_CSTR, StringBinding: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcStringBindingComposeW*(ObjUuid: RPC_WSTR, Protseq: RPC_WSTR, NetworkAddr: RPC_WSTR, Endpoint: RPC_WSTR, Options: RPC_WSTR, StringBinding: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcStringBindingParseA*(StringBinding: RPC_CSTR, ObjUuid: ptr RPC_CSTR, Protseq: ptr RPC_CSTR, NetworkAddr: ptr RPC_CSTR, Endpoint: ptr RPC_CSTR, NetworkOptions: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcStringBindingParseW*(StringBinding: RPC_WSTR, ObjUuid: ptr RPC_WSTR, Protseq: ptr RPC_WSTR, NetworkAddr: ptr RPC_WSTR, Endpoint: ptr RPC_WSTR, NetworkOptions: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcStringFreeA*(String: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcStringFreeW*(String: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcIfInqId*(RpcIfHandle: RPC_IF_HANDLE, RpcIfId: ptr RPC_IF_ID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNetworkIsProtseqValidA*(Protseq: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNetworkIsProtseqValidW*(Protseq: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtInqComTimeout*(Binding: RPC_BINDING_HANDLE, Timeout: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtSetComTimeout*(Binding: RPC_BINDING_HANDLE, Timeout: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtSetCancelTimeout*(Timeout: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNetworkInqProtseqsA*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNetworkInqProtseqsW*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcObjectInqType*(ObjUuid: ptr UUID, TypeUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcObjectSetInqFn*(InquiryFn: RPC_OBJECT_INQ_FN): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcObjectSetType*(ObjUuid: ptr UUID, TypeUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcProtseqVectorFreeA*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcProtseqVectorFreeW*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqBindings*(BindingVector: ptr ptr RPC_BINDING_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqIf*(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, MgrEpv: ptr ptr RPC_MGR_EPV): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerListen*(MinimumCallThreads: int32, MaxCalls: int32, DontWait: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerRegisterIf*(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, MgrEpv: ptr RPC_MGR_EPV): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerRegisterIfEx*(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, MgrEpv: ptr RPC_MGR_EPV, Flags: int32, MaxCalls: int32, IfCallback: RPC_IF_CALLBACK_FN): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerRegisterIf2*(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, MgrEpv: ptr RPC_MGR_EPV, Flags: int32, MaxCalls: int32, MaxRpcSize: int32, IfCallbackFn: RPC_IF_CALLBACK_FN): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUnregisterIf*(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, WaitForCallsToComplete: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUnregisterIfEx*(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, RundownContextHandles: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseAllProtseqs*(MaxCalls: int32, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseAllProtseqsEx*(MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseAllProtseqsIf*(MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseAllProtseqsIfEx*(MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqA*(Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqExA*(Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqW*(Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqExW*(Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqEpA*(Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqEpExA*(Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqEpW*(Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqEpExW*(Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqIfA*(Protseq: RPC_CSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqIfExA*(Protseq: RPC_CSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqIfW*(Protseq: RPC_WSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUseProtseqIfExW*(Protseq: RPC_WSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc NdrOleFree*( + NodeToFree: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrGetUserMarshalInfo*( + pFlags: ptr int32, InformationLevel: int32, pMarshalInfo: ptr NDR_USER_MARSHAL_INFO +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrCreateServerInterfaceFromStub*( + pStub: ptr IRpcStubBuffer, pServerIf: ptr RPC_SERVER_INTERFACE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPartialIgnoreClientMarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPartialIgnoreServerUnmarshall*( + pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPartialIgnoreClientBufferSize*( + pStubMsg: PMIDL_STUB_MESSAGE, pMemory: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrPartialIgnoreServerInitialize*( + pStubMsg: PMIDL_STUB_MESSAGE, ppMemory: ptr pointer, pFormat: PFORMAT_STRING +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcUserFree*( + AsyncHandle: handle_t, pBuffer: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingCopy*( + SourceBinding: RPC_BINDING_HANDLE, DestinationBinding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingFree*( + Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingSetOption*( + hBinding: RPC_BINDING_HANDLE, option: int32, optionValue: ULONG_PTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqOption*( + hBinding: RPC_BINDING_HANDLE, option: int32, pOptionValue: ptr ULONG_PTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingFromStringBindingA*( + StringBinding: RPC_CSTR, Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingFromStringBindingW*( + StringBinding: RPC_WSTR, Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsGetContextBinding*( + ContextHandle: pointer, Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqObject*( + Binding: RPC_BINDING_HANDLE, ObjectUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingReset*( + Binding: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingSetObject*( + Binding: RPC_BINDING_HANDLE, ObjectUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtInqDefaultProtectLevel*( + AuthnSvc: int32, AuthnLevel: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingToStringBindingA*( + Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingToStringBindingW*( + Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingVectorFree*( + BindingVector: ptr ptr RPC_BINDING_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcStringBindingComposeA*( + ObjUuid: RPC_CSTR, + Protseq: RPC_CSTR, + NetworkAddr: RPC_CSTR, + Endpoint: RPC_CSTR, + Options: RPC_CSTR, + StringBinding: ptr RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcStringBindingComposeW*( + ObjUuid: RPC_WSTR, + Protseq: RPC_WSTR, + NetworkAddr: RPC_WSTR, + Endpoint: RPC_WSTR, + Options: RPC_WSTR, + StringBinding: ptr RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcStringBindingParseA*( + StringBinding: RPC_CSTR, + ObjUuid: ptr RPC_CSTR, + Protseq: ptr RPC_CSTR, + NetworkAddr: ptr RPC_CSTR, + Endpoint: ptr RPC_CSTR, + NetworkOptions: ptr RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcStringBindingParseW*( + StringBinding: RPC_WSTR, + ObjUuid: ptr RPC_WSTR, + Protseq: ptr RPC_WSTR, + NetworkAddr: ptr RPC_WSTR, + Endpoint: ptr RPC_WSTR, + NetworkOptions: ptr RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcStringFreeA*( + String: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcStringFreeW*( + String: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcIfInqId*( + RpcIfHandle: RPC_IF_HANDLE, RpcIfId: ptr RPC_IF_ID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNetworkIsProtseqValidA*( + Protseq: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNetworkIsProtseqValidW*( + Protseq: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtInqComTimeout*( + Binding: RPC_BINDING_HANDLE, Timeout: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtSetComTimeout*( + Binding: RPC_BINDING_HANDLE, Timeout: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtSetCancelTimeout*( + Timeout: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNetworkInqProtseqsA*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNetworkInqProtseqsW*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcObjectInqType*( + ObjUuid: ptr UUID, TypeUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcObjectSetInqFn*( + InquiryFn: RPC_OBJECT_INQ_FN +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcObjectSetType*( + ObjUuid: ptr UUID, TypeUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcProtseqVectorFreeA*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcProtseqVectorFreeW*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqBindings*( + BindingVector: ptr ptr RPC_BINDING_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqIf*( + IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, MgrEpv: ptr ptr RPC_MGR_EPV +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerListen*( + MinimumCallThreads: int32, MaxCalls: int32, DontWait: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerRegisterIf*( + IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, MgrEpv: ptr RPC_MGR_EPV +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerRegisterIfEx*( + IfSpec: RPC_IF_HANDLE, + MgrTypeUuid: ptr UUID, + MgrEpv: ptr RPC_MGR_EPV, + Flags: int32, + MaxCalls: int32, + IfCallback: RPC_IF_CALLBACK_FN, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerRegisterIf2*( + IfSpec: RPC_IF_HANDLE, + MgrTypeUuid: ptr UUID, + MgrEpv: ptr RPC_MGR_EPV, + Flags: int32, + MaxCalls: int32, + MaxRpcSize: int32, + IfCallbackFn: RPC_IF_CALLBACK_FN, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUnregisterIf*( + IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, WaitForCallsToComplete: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUnregisterIfEx*( + IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ptr UUID, RundownContextHandles: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseAllProtseqs*( + MaxCalls: int32, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseAllProtseqsEx*( + MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseAllProtseqsIf*( + MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseAllProtseqsIfEx*( + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqA*( + Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqExA*( + Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqW*( + Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqExW*( + Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqEpA*( + Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqEpExA*( + Protseq: RPC_CSTR, + MaxCalls: int32, + Endpoint: RPC_CSTR, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqEpW*( + Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqEpExW*( + Protseq: RPC_WSTR, + MaxCalls: int32, + Endpoint: RPC_WSTR, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqIfA*( + Protseq: RPC_CSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqIfExA*( + Protseq: RPC_CSTR, + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqIfW*( + Protseq: RPC_WSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUseProtseqIfExW*( + Protseq: RPC_WSTR, + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcServerYield*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtStatsVectorFree*(StatsVector: ptr ptr RPC_STATS_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtInqStats*(Binding: RPC_BINDING_HANDLE, Statistics: ptr ptr RPC_STATS_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtIsServerListening*(Binding: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtStopServerListening*(Binding: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtWaitServerListen*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtSetServerStackSize*(ThreadStackSize: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc RpcMgmtStatsVectorFree*( + StatsVector: ptr ptr RPC_STATS_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtInqStats*( + Binding: RPC_BINDING_HANDLE, Statistics: ptr ptr RPC_STATS_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtIsServerListening*( + Binding: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtStopServerListening*( + Binding: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtWaitServerListen*(): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc RpcMgmtSetServerStackSize*( + ThreadStackSize: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcSsDontSerializeContext*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtEnableIdleCleanup*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtInqIfIds*(Binding: RPC_BINDING_HANDLE, IfIdVector: ptr ptr RPC_IF_ID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcIfIdVectorFree*(IfIdVector: ptr ptr RPC_IF_ID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtInqServerPrincNameA*(Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtInqServerPrincNameW*(Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqDefaultPrincNameA*(AuthnSvc: int32, PrincName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqDefaultPrincNameW*(AuthnSvc: int32, PrincName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcEpResolveBinding*(Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNsBindingInqEntryNameA*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNsBindingInqEntryNameW*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcImpersonateClient*(BindingHandle: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcRevertToSelfEx*(BindingHandle: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc RpcMgmtEnableIdleCleanup*(): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc RpcMgmtInqIfIds*( + Binding: RPC_BINDING_HANDLE, IfIdVector: ptr ptr RPC_IF_ID_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcIfIdVectorFree*( + IfIdVector: ptr ptr RPC_IF_ID_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtInqServerPrincNameA*( + Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtInqServerPrincNameW*( + Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqDefaultPrincNameA*( + AuthnSvc: int32, PrincName: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqDefaultPrincNameW*( + AuthnSvc: int32, PrincName: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcEpResolveBinding*( + Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNsBindingInqEntryNameA*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNsBindingInqEntryNameW*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcImpersonateClient*( + BindingHandle: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcRevertToSelfEx*( + BindingHandle: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcRevertToSelf*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthClientA*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthClientW*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthClientExA*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32, Flags: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthClientExW*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32, Flags: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthInfoA*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthInfoW*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingSetAuthInfoA*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_CSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingSetAuthInfoExA*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_CSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32, SecurityQos: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingSetAuthInfoW*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_WSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingSetAuthInfoExW*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_WSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32, SecurityQOS: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthInfoExA*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32, RpcQosVersion: int32, SecurityQOS: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingInqAuthInfoExW*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32, RpcQosVersion: int32, SecurityQOS: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerRegisterAuthInfoA*(ServerPrincName: RPC_CSTR, AuthnSvc: int32, GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, Arg: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerRegisterAuthInfoW*(ServerPrincName: RPC_WSTR, AuthnSvc: int32, GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, Arg: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingServerFromClient*(ClientBinding: RPC_BINDING_HANDLE, ServerBinding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc RpcBindingInqAuthClientA*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthClientW*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthClientExA*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, + Flags: int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthClientExW*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, + Flags: int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthInfoA*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthInfoW*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingSetAuthInfoA*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_CSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingSetAuthInfoExA*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_CSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, + SecurityQos: ptr RPC_SECURITY_QOS, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingSetAuthInfoW*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_WSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingSetAuthInfoExW*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_WSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, + SecurityQOS: ptr RPC_SECURITY_QOS, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthInfoExA*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, + RpcQosVersion: int32, + SecurityQOS: ptr RPC_SECURITY_QOS, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingInqAuthInfoExW*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, + RpcQosVersion: int32, + SecurityQOS: ptr RPC_SECURITY_QOS, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerRegisterAuthInfoA*( + ServerPrincName: RPC_CSTR, + AuthnSvc: int32, + GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, + Arg: pointer, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerRegisterAuthInfoW*( + ServerPrincName: RPC_WSTR, + AuthnSvc: int32, + GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, + Arg: pointer, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingServerFromClient*( + ClientBinding: RPC_BINDING_HANDLE, ServerBinding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcTestCancel*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerTestCancel*(BindingHandle: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcCancelThread*(Thread: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcCancelThreadEx*(Thread: pointer, Timeout: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidCreate*(Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidCreateSequential*(Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidToStringA*(Uuid: ptr UUID, StringUuid: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidFromStringA*(StringUuid: RPC_CSTR, Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidToStringW*(Uuid: ptr UUID, StringUuid: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidFromStringW*(StringUuid: RPC_WSTR, Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidCreateNil*(NilUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidEqual*(Uuid1: ptr UUID, Uuid2: ptr UUID, Status: ptr RPC_STATUS): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidHash*(Uuid: ptr UUID, Status: ptr RPC_STATUS): uint16 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc UuidIsNil*(Uuid: ptr UUID, Status: ptr RPC_STATUS): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcEpRegisterNoReplaceA*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcEpRegisterNoReplaceW*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcEpRegisterA*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcEpRegisterW*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcEpUnregister*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc DceErrorInqTextA*(RpcStatus: RPC_STATUS, ErrorText: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc DceErrorInqTextW*(RpcStatus: RPC_STATUS, ErrorText: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtEpEltInqBegin*(EpBinding: RPC_BINDING_HANDLE, InquiryType: int32, IfId: ptr RPC_IF_ID, VersOption: int32, ObjectUuid: ptr UUID, InquiryContext: ptr RPC_EP_INQ_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtEpEltInqDone*(InquiryContext: ptr RPC_EP_INQ_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtEpEltInqNextA*(InquiryContext: RPC_EP_INQ_HANDLE, IfId: ptr RPC_IF_ID, Binding: ptr RPC_BINDING_HANDLE, ObjectUuid: ptr UUID, Annotation: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtEpEltInqNextW*(InquiryContext: RPC_EP_INQ_HANDLE, IfId: ptr RPC_IF_ID, Binding: ptr RPC_BINDING_HANDLE, ObjectUuid: ptr UUID, Annotation: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtEpUnregister*(EpBinding: RPC_BINDING_HANDLE, IfId: ptr RPC_IF_ID, Binding: RPC_BINDING_HANDLE, ObjectUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcMgmtSetAuthorizationFn*(AuthorizationFn: RPC_MGMT_AUTHORIZATION_FN): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingCreateA*(Template: ptr RPC_BINDING_HANDLE_TEMPLATE, Security: ptr RPC_BINDING_HANDLE_SECURITY, Options: ptr RPC_BINDING_HANDLE_OPTIONS, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingCreateW*(Template: ptr RPC_BINDING_HANDLE_TEMPLATE, Security: ptr RPC_BINDING_HANDLE_SECURITY, Options: ptr RPC_BINDING_HANDLE_OPTIONS, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqBindingHandle*(Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcNegotiateTransferSyntax*(Message: ptr RPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcGetBuffer*(Message: ptr RPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcGetBufferWithObject*(Message: ptr RPC_MESSAGE, ObjectUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcSendReceive*(Message: ptr RPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcFreeBuffer*(Message: ptr RPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcSend*(Message: PRPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcReceive*(Message: PRPC_MESSAGE, Size: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcFreePipeBuffer*(Message: ptr RPC_MESSAGE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcReallocPipeBuffer*(Message: PRPC_MESSAGE, NewSize: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcRequestMutex*(Mutex: ptr I_RPC_MUTEX): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcClearMutex*(Mutex: I_RPC_MUTEX): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcDeleteMutex*(Mutex: I_RPC_MUTEX): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc RpcServerTestCancel*( + BindingHandle: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcCancelThread*( + Thread: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcCancelThreadEx*( + Thread: pointer, Timeout: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidCreate*( + Uuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidCreateSequential*( + Uuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidToStringA*( + Uuid: ptr UUID, StringUuid: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidFromStringA*( + StringUuid: RPC_CSTR, Uuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidToStringW*( + Uuid: ptr UUID, StringUuid: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidFromStringW*( + StringUuid: RPC_WSTR, Uuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidCreateNil*( + NilUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidEqual*( + Uuid1: ptr UUID, Uuid2: ptr UUID, Status: ptr RPC_STATUS +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidHash*( + Uuid: ptr UUID, Status: ptr RPC_STATUS +): uint16 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc UuidIsNil*( + Uuid: ptr UUID, Status: ptr RPC_STATUS +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcEpRegisterNoReplaceA*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcEpRegisterNoReplaceW*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcEpRegisterA*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcEpRegisterW*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcEpUnregister*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc DceErrorInqTextA*( + RpcStatus: RPC_STATUS, ErrorText: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc DceErrorInqTextW*( + RpcStatus: RPC_STATUS, ErrorText: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtEpEltInqBegin*( + EpBinding: RPC_BINDING_HANDLE, + InquiryType: int32, + IfId: ptr RPC_IF_ID, + VersOption: int32, + ObjectUuid: ptr UUID, + InquiryContext: ptr RPC_EP_INQ_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtEpEltInqDone*( + InquiryContext: ptr RPC_EP_INQ_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtEpEltInqNextA*( + InquiryContext: RPC_EP_INQ_HANDLE, + IfId: ptr RPC_IF_ID, + Binding: ptr RPC_BINDING_HANDLE, + ObjectUuid: ptr UUID, + Annotation: ptr RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtEpEltInqNextW*( + InquiryContext: RPC_EP_INQ_HANDLE, + IfId: ptr RPC_IF_ID, + Binding: ptr RPC_BINDING_HANDLE, + ObjectUuid: ptr UUID, + Annotation: ptr RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtEpUnregister*( + EpBinding: RPC_BINDING_HANDLE, + IfId: ptr RPC_IF_ID, + Binding: RPC_BINDING_HANDLE, + ObjectUuid: ptr UUID, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcMgmtSetAuthorizationFn*( + AuthorizationFn: RPC_MGMT_AUTHORIZATION_FN +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingCreateA*( + Template: ptr RPC_BINDING_HANDLE_TEMPLATE, + Security: ptr RPC_BINDING_HANDLE_SECURITY, + Options: ptr RPC_BINDING_HANDLE_OPTIONS, + Binding: ptr RPC_BINDING_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingCreateW*( + Template: ptr RPC_BINDING_HANDLE_TEMPLATE, + Security: ptr RPC_BINDING_HANDLE_SECURITY, + Options: ptr RPC_BINDING_HANDLE_OPTIONS, + Binding: ptr RPC_BINDING_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqBindingHandle*( + Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcNegotiateTransferSyntax*( + Message: ptr RPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcGetBuffer*( + Message: ptr RPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcGetBufferWithObject*( + Message: ptr RPC_MESSAGE, ObjectUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcSendReceive*( + Message: ptr RPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcFreeBuffer*( + Message: ptr RPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcSend*( + Message: PRPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcReceive*( + Message: PRPC_MESSAGE, Size: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcFreePipeBuffer*( + Message: ptr RPC_MESSAGE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcReallocPipeBuffer*( + Message: PRPC_MESSAGE, NewSize: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcRequestMutex*( + Mutex: ptr I_RPC_MUTEX +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcClearMutex*( + Mutex: I_RPC_MUTEX +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcDeleteMutex*( + Mutex: I_RPC_MUTEX +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc I_RpcAllocate*(Size: int32): pointer {.winapi, stdcall, dynlib: "rpcrt4", importc.} proc I_RpcFree*(Object: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcPauseExecution*(Milliseconds: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc I_RpcPauseExecution*( + Milliseconds: int32 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc I_RpcGetExtendedError*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcGetCurrentCallHandle*(): RPC_BINDING_HANDLE {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcNsInterfaceExported*(EntryNameSyntax: int32, EntryName: ptr uint16, RpcInterfaceInformation: ptr RPC_SERVER_INTERFACE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcNsInterfaceUnexported*(EntryNameSyntax: int32, EntryName: ptr uint16, RpcInterfaceInformation: ptr RPC_SERVER_INTERFACE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingToStaticStringBindingW*(Binding: RPC_BINDING_HANDLE, StringBinding: ptr ptr uint16): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqSecurityContext*(Binding: RPC_BINDING_HANDLE, SecurityContextHandle: ptr pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqWireIdForSnego*(Binding: RPC_BINDING_HANDLE, WireId: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqMarshalledTargetInfo*(Binding: RPC_BINDING_HANDLE, MarshalledTargetInfoLength: ptr int32, MarshalledTargetInfo: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqLocalClientPID*(Binding: RPC_BINDING_HANDLE, Pid: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingHandleToAsyncHandle*(Binding: RPC_BINDING_HANDLE, AsyncHandle: ptr pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcNsBindingSetEntryNameW*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcNsBindingSetEntryNameA*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerUseProtseqEp2A*(NetworkAddress: RPC_CSTR, Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerUseProtseqEp2W*(NetworkAddress: RPC_WSTR, Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerUseProtseq2W*(NetworkAddress: RPC_WSTR, Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerUseProtseq2A*(NetworkAddress: RPC_CSTR, Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqDynamicEndpointW*(Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqDynamicEndpointA*(Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerCheckClientRestriction*(Context: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingInqTransportType*(Binding: RPC_BINDING_HANDLE, Type: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcIfInqTransferSyntaxes*(RpcIfHandle: RPC_IF_HANDLE, TransferSyntaxes: ptr RPC_TRANSFER_SYNTAX, TransferSyntaxSize: int32, TransferSyntaxCount: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_UuidCreate*(Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingCopy*(SourceBinding: RPC_BINDING_HANDLE, DestinationBinding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcBindingIsClientLocal*(BindingHandle: RPC_BINDING_HANDLE, ClientLocalFlag: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc I_RpcGetCurrentCallHandle*(): RPC_BINDING_HANDLE {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc I_RpcNsInterfaceExported*( + EntryNameSyntax: int32, + EntryName: ptr uint16, + RpcInterfaceInformation: ptr RPC_SERVER_INTERFACE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcNsInterfaceUnexported*( + EntryNameSyntax: int32, + EntryName: ptr uint16, + RpcInterfaceInformation: ptr RPC_SERVER_INTERFACE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingToStaticStringBindingW*( + Binding: RPC_BINDING_HANDLE, StringBinding: ptr ptr uint16 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqSecurityContext*( + Binding: RPC_BINDING_HANDLE, SecurityContextHandle: ptr pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqWireIdForSnego*( + Binding: RPC_BINDING_HANDLE, WireId: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqMarshalledTargetInfo*( + Binding: RPC_BINDING_HANDLE, + MarshalledTargetInfoLength: ptr int32, + MarshalledTargetInfo: ptr RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqLocalClientPID*( + Binding: RPC_BINDING_HANDLE, Pid: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingHandleToAsyncHandle*( + Binding: RPC_BINDING_HANDLE, AsyncHandle: ptr pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcNsBindingSetEntryNameW*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcNsBindingSetEntryNameA*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerUseProtseqEp2A*( + NetworkAddress: RPC_CSTR, + Protseq: RPC_CSTR, + MaxCalls: int32, + Endpoint: RPC_CSTR, + SecurityDescriptor: pointer, + Policy: pointer, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerUseProtseqEp2W*( + NetworkAddress: RPC_WSTR, + Protseq: RPC_WSTR, + MaxCalls: int32, + Endpoint: RPC_WSTR, + SecurityDescriptor: pointer, + Policy: pointer, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerUseProtseq2W*( + NetworkAddress: RPC_WSTR, + Protseq: RPC_WSTR, + MaxCalls: int32, + SecurityDescriptor: pointer, + Policy: pointer, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerUseProtseq2A*( + NetworkAddress: RPC_CSTR, + Protseq: RPC_CSTR, + MaxCalls: int32, + SecurityDescriptor: pointer, + Policy: pointer, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqDynamicEndpointW*( + Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqDynamicEndpointA*( + Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerCheckClientRestriction*( + Context: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingInqTransportType*( + Binding: RPC_BINDING_HANDLE, Type: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcIfInqTransferSyntaxes*( + RpcIfHandle: RPC_IF_HANDLE, + TransferSyntaxes: ptr RPC_TRANSFER_SYNTAX, + TransferSyntaxSize: int32, + TransferSyntaxCount: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_UuidCreate*( + Uuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingCopy*( + SourceBinding: RPC_BINDING_HANDLE, DestinationBinding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcBindingIsClientLocal*( + BindingHandle: RPC_BINDING_HANDLE, ClientLocalFlag: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc I_RpcSsDontSerializeContext*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerRegisterForwardFunction*(pForwardFunction: RPC_FORWARD_FUNCTION): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerInqAddressChangeFn*(): RPC_ADDRESS_CHANGE_FN {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerSetAddressChangeFn*(pAddressChangeFn: RPC_ADDRESS_CHANGE_FN): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerInqLocalConnAddress*(Binding: RPC_BINDING_HANDLE, Buffer: pointer, BufferSize: ptr int32, AddressFormat: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcSessionStrictContextHandle*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcTurnOnEEInfoPropagation*(): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcServerInqTransportType*(Type: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcMapWin32Status*(Status: RPC_STATUS): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcRecordCalloutFailure*(RpcStatus: RPC_STATUS, CallOutState: ptr RDR_CALLOUT_STATE, DllName: ptr uint16): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcNsBindingExportA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, BindingVec: ptr RPC_BINDING_VECTOR, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingUnexportA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingExportW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, BindingVec: ptr RPC_BINDING_VECTOR, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingUnexportW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingExportPnPA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingUnexportPnPA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingExportPnPW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingUnexportPnPW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingLookupBeginA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, BindingMaxCount: int32, LookupContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingLookupBeginW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, BindingMaxCount: int32, LookupContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingLookupNext*(LookupContext: RPC_NS_HANDLE, BindingVec: ptr ptr RPC_BINDING_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingLookupDone*(LookupContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupDeleteA*(GroupNameSyntax: int32, GroupName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrAddA*(GroupNameSyntax: int32, GroupName: RPC_CSTR, MemberNameSyntax: int32, MemberName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrRemoveA*(GroupNameSyntax: int32, GroupName: RPC_CSTR, MemberNameSyntax: int32, MemberName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrInqBeginA*(GroupNameSyntax: int32, GroupName: RPC_CSTR, MemberNameSyntax: int32, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrInqNextA*(InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupDeleteW*(GroupNameSyntax: int32, GroupName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrAddW*(GroupNameSyntax: int32, GroupName: RPC_WSTR, MemberNameSyntax: int32, MemberName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrRemoveW*(GroupNameSyntax: int32, GroupName: RPC_WSTR, MemberNameSyntax: int32, MemberName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrInqBeginW*(GroupNameSyntax: int32, GroupName: RPC_WSTR, MemberNameSyntax: int32, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrInqNextW*(InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsGroupMbrInqDone*(InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileDeleteA*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltAddA*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_CSTR, Priority: int32, Annotation: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltRemoveA*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltInqBeginA*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR, InquiryType: int32, IfId: ptr RPC_IF_ID, VersOption: int32, MemberNameSyntax: int32, MemberName: RPC_CSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltInqNextA*(InquiryContext: RPC_NS_HANDLE, IfId: ptr RPC_IF_ID, MemberName: ptr RPC_CSTR, Priority: ptr int32, Annotation: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileDeleteW*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltAddW*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_WSTR, Priority: int32, Annotation: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltRemoveW*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltInqBeginW*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR, InquiryType: int32, IfId: ptr RPC_IF_ID, VersOption: int32, MemberNameSyntax: int32, MemberName: RPC_WSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltInqNextW*(InquiryContext: RPC_NS_HANDLE, IfId: ptr RPC_IF_ID, MemberName: ptr RPC_WSTR, Priority: ptr int32, Annotation: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsProfileEltInqDone*(InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsEntryObjectInqBeginA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsEntryObjectInqBeginW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsEntryObjectInqNext*(InquiryContext: RPC_NS_HANDLE, ObjUuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsEntryObjectInqDone*(InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsEntryExpandNameA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, ExpandedName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtBindingUnexportA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfId: ptr RPC_IF_ID, VersOption: int32, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtEntryCreateA*(EntryNameSyntax: int32, EntryName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtEntryDeleteA*(EntryNameSyntax: int32, EntryName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtEntryInqIfIdsA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtHandleSetExpAge*(NsHandle: RPC_NS_HANDLE, ExpirationAge: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtInqExpAge*(ExpirationAge: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtSetExpAge*(ExpirationAge: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsEntryExpandNameW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, ExpandedName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtBindingUnexportW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfId: ptr RPC_IF_ID, VersOption: int32, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtEntryCreateW*(EntryNameSyntax: int32, EntryName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtEntryDeleteW*(EntryNameSyntax: int32, EntryName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsMgmtEntryInqIfIdsW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingImportBeginA*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, ImportContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingImportBeginW*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, ImportContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingImportNext*(ImportContext: RPC_NS_HANDLE, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingImportDone*(ImportContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcNsBindingSelect*(BindingVec: ptr RPC_BINDING_VECTOR, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} -proc RpcAsyncInitializeHandle*(pAsync: PRPC_ASYNC_STATE, Size: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcAsyncRegisterInfo*(pAsync: PRPC_ASYNC_STATE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcAsyncGetCallStatus*(pAsync: PRPC_ASYNC_STATE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcAsyncCompleteCall*(pAsync: PRPC_ASYNC_STATE, Reply: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcAsyncAbortCall*(pAsync: PRPC_ASYNC_STATE, ExceptionCode: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcAsyncCancelCall*(pAsync: PRPC_ASYNC_STATE, fAbort: WINBOOL): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorStartEnumeration*(EnumHandle: ptr RPC_ERROR_ENUM_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorGetNextRecord*(EnumHandle: ptr RPC_ERROR_ENUM_HANDLE, CopyStrings: WINBOOL, ErrorInfo: ptr RPC_EXTENDED_ERROR_INFO): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorEndEnumeration*(EnumHandle: ptr RPC_ERROR_ENUM_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorResetEnumeration*(EnumHandle: ptr RPC_ERROR_ENUM_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorGetNumberOfRecords*(EnumHandle: ptr RPC_ERROR_ENUM_HANDLE, Records: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorSaveErrorInfo*(EnumHandle: ptr RPC_ERROR_ENUM_HANDLE, ErrorBlob: ptr PVOID, BlobSize: ptr int): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorLoadErrorInfo*(ErrorBlob: PVOID, BlobSize: int, EnumHandle: ptr RPC_ERROR_ENUM_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcErrorAddRecord*(ErrorInfo: ptr RPC_EXTENDED_ERROR_INFO): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} +proc I_RpcServerRegisterForwardFunction*( + pForwardFunction: RPC_FORWARD_FUNCTION +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerInqAddressChangeFn*(): RPC_ADDRESS_CHANGE_FN {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc I_RpcServerSetAddressChangeFn*( + pAddressChangeFn: RPC_ADDRESS_CHANGE_FN +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcServerInqLocalConnAddress*( + Binding: RPC_BINDING_HANDLE, + Buffer: pointer, + BufferSize: ptr int32, + AddressFormat: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcSessionStrictContextHandle*(): void {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc I_RpcTurnOnEEInfoPropagation*(): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc +.} + +proc I_RpcServerInqTransportType*( + Type: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcMapWin32Status*( + Status: RPC_STATUS +): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcRecordCalloutFailure*( + RpcStatus: RPC_STATUS, CallOutState: ptr RDR_CALLOUT_STATE, DllName: ptr uint16 +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcNsBindingExportA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + BindingVec: ptr RPC_BINDING_VECTOR, + ObjectUuidVec: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingUnexportA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjectUuidVec: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingExportW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + BindingVec: ptr RPC_BINDING_VECTOR, + ObjectUuidVec: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingUnexportW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjectUuidVec: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingExportPnPA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingUnexportPnPA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingExportPnPW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingUnexportPnPW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingLookupBeginA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + BindingMaxCount: int32, + LookupContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingLookupBeginW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + BindingMaxCount: int32, + LookupContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingLookupNext*( + LookupContext: RPC_NS_HANDLE, BindingVec: ptr ptr RPC_BINDING_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingLookupDone*( + LookupContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupDeleteA*( + GroupNameSyntax: int32, GroupName: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrAddA*( + GroupNameSyntax: int32, + GroupName: RPC_CSTR, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrRemoveA*( + GroupNameSyntax: int32, + GroupName: RPC_CSTR, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrInqBeginA*( + GroupNameSyntax: int32, + GroupName: RPC_CSTR, + MemberNameSyntax: int32, + InquiryContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrInqNextA*( + InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupDeleteW*( + GroupNameSyntax: int32, GroupName: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrAddW*( + GroupNameSyntax: int32, + GroupName: RPC_WSTR, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrRemoveW*( + GroupNameSyntax: int32, + GroupName: RPC_WSTR, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrInqBeginW*( + GroupNameSyntax: int32, + GroupName: RPC_WSTR, + MemberNameSyntax: int32, + InquiryContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrInqNextW*( + InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsGroupMbrInqDone*( + InquiryContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileDeleteA*( + ProfileNameSyntax: int32, ProfileName: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltAddA*( + ProfileNameSyntax: int32, + ProfileName: RPC_CSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + Priority: int32, + Annotation: RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltRemoveA*( + ProfileNameSyntax: int32, + ProfileName: RPC_CSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltInqBeginA*( + ProfileNameSyntax: int32, + ProfileName: RPC_CSTR, + InquiryType: int32, + IfId: ptr RPC_IF_ID, + VersOption: int32, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + InquiryContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltInqNextA*( + InquiryContext: RPC_NS_HANDLE, + IfId: ptr RPC_IF_ID, + MemberName: ptr RPC_CSTR, + Priority: ptr int32, + Annotation: ptr RPC_CSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileDeleteW*( + ProfileNameSyntax: int32, ProfileName: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltAddW*( + ProfileNameSyntax: int32, + ProfileName: RPC_WSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + Priority: int32, + Annotation: RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltRemoveW*( + ProfileNameSyntax: int32, + ProfileName: RPC_WSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltInqBeginW*( + ProfileNameSyntax: int32, + ProfileName: RPC_WSTR, + InquiryType: int32, + IfId: ptr RPC_IF_ID, + VersOption: int32, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + InquiryContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltInqNextW*( + InquiryContext: RPC_NS_HANDLE, + IfId: ptr RPC_IF_ID, + MemberName: ptr RPC_WSTR, + Priority: ptr int32, + Annotation: ptr RPC_WSTR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsProfileEltInqDone*( + InquiryContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsEntryObjectInqBeginA*( + EntryNameSyntax: int32, EntryName: RPC_CSTR, InquiryContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsEntryObjectInqBeginW*( + EntryNameSyntax: int32, EntryName: RPC_WSTR, InquiryContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsEntryObjectInqNext*( + InquiryContext: RPC_NS_HANDLE, ObjUuid: ptr UUID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsEntryObjectInqDone*( + InquiryContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsEntryExpandNameA*( + EntryNameSyntax: int32, EntryName: RPC_CSTR, ExpandedName: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtBindingUnexportA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfId: ptr RPC_IF_ID, + VersOption: int32, + ObjectUuidVec: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtEntryCreateA*( + EntryNameSyntax: int32, EntryName: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtEntryDeleteA*( + EntryNameSyntax: int32, EntryName: RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtEntryInqIfIdsA*( + EntryNameSyntax: int32, EntryName: RPC_CSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtHandleSetExpAge*( + NsHandle: RPC_NS_HANDLE, ExpirationAge: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtInqExpAge*( + ExpirationAge: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtSetExpAge*( + ExpirationAge: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsEntryExpandNameW*( + EntryNameSyntax: int32, EntryName: RPC_WSTR, ExpandedName: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtBindingUnexportW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfId: ptr RPC_IF_ID, + VersOption: int32, + ObjectUuidVec: ptr UUID_VECTOR, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtEntryCreateW*( + EntryNameSyntax: int32, EntryName: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtEntryDeleteW*( + EntryNameSyntax: int32, EntryName: RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsMgmtEntryInqIfIdsW*( + EntryNameSyntax: int32, EntryName: RPC_WSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingImportBeginA*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + ImportContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingImportBeginW*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + ImportContext: ptr RPC_NS_HANDLE, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingImportNext*( + ImportContext: RPC_NS_HANDLE, Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingImportDone*( + ImportContext: ptr RPC_NS_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcNsBindingSelect*( + BindingVec: ptr RPC_BINDING_VECTOR, Binding: ptr RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc.} + +proc RpcAsyncInitializeHandle*( + pAsync: PRPC_ASYNC_STATE, Size: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcAsyncRegisterInfo*( + pAsync: PRPC_ASYNC_STATE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcAsyncGetCallStatus*( + pAsync: PRPC_ASYNC_STATE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcAsyncCompleteCall*( + pAsync: PRPC_ASYNC_STATE, Reply: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcAsyncAbortCall*( + pAsync: PRPC_ASYNC_STATE, ExceptionCode: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcAsyncCancelCall*( + pAsync: PRPC_ASYNC_STATE, fAbort: WINBOOL +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorStartEnumeration*( + EnumHandle: ptr RPC_ERROR_ENUM_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorGetNextRecord*( + EnumHandle: ptr RPC_ERROR_ENUM_HANDLE, + CopyStrings: WINBOOL, + ErrorInfo: ptr RPC_EXTENDED_ERROR_INFO, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorEndEnumeration*( + EnumHandle: ptr RPC_ERROR_ENUM_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorResetEnumeration*( + EnumHandle: ptr RPC_ERROR_ENUM_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorGetNumberOfRecords*( + EnumHandle: ptr RPC_ERROR_ENUM_HANDLE, Records: ptr int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorSaveErrorInfo*( + EnumHandle: ptr RPC_ERROR_ENUM_HANDLE, ErrorBlob: ptr PVOID, BlobSize: ptr int +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorLoadErrorInfo*( + ErrorBlob: PVOID, BlobSize: int, EnumHandle: ptr RPC_ERROR_ENUM_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcErrorAddRecord*( + ErrorInfo: ptr RPC_EXTENDED_ERROR_INFO +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc RpcErrorClearInformation*(): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcGetAuthorizationContextForClient*(ClientBinding: RPC_BINDING_HANDLE, ImpersonateOnReturn: WINBOOL, Reserved1: PVOID, pExpirationTime: PLARGE_INTEGER, Reserved2: LUID, Reserved3: DWORD, Reserved4: PVOID, pAuthzClientContext: ptr PVOID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcFreeAuthorizationContext*(pAuthzClientContext: ptr PVOID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsContextLockExclusive*(ServerBindingHandle: RPC_BINDING_HANDLE, UserContext: PVOID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcSsContextLockShared*(ServerBindingHandle: RPC_BINDING_HANDLE, UserContext: PVOID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqCallAttributesW*(ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerInqCallAttributesA*(ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcAsyncSetHandle*(Message: PRPC_MESSAGE, pAsync: PRPC_ASYNC_STATE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcAsyncAbortCall*(pAsync: PRPC_ASYNC_STATE, ExceptionCode: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc I_RpcExceptionFilter*(ExceptionCode: int32): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingBind*(pAsync: PRPC_ASYNC_STATE, Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcBindingUnbind*(Binding: RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerSubscribeForNotification*(Binding: RPC_BINDING_HANDLE, Notification: DWORD, NotificationType: RPC_NOTIFICATION_TYPES, NotificationInfo: ptr RPC_ASYNC_NOTIFICATION_INFO): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcServerUnsubscribeForNotification*(Binding: RPC_BINDING_HANDLE, Notification: RPC_NOTIFICATIONS, NotificationsQueued: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrProxyInitialize*(This: pointer, pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, ProcNum: int32): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrProxyGetBuffer*(This: pointer, pStubMsg: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrProxySendReceive*(This: pointer, pStubMsg: ptr MIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrProxyFreeBuffer*(This: pointer, pStubMsg: ptr MIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrProxyErrorHandler*(dwExceptionCode: DWORD): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrStubInitialize*(pRpcMsg: PRPC_MESSAGE, pStubMsg: PMIDL_STUB_MESSAGE, pStubDescriptor: PMIDL_STUB_DESC, pRpcChannelBuffer: ptr IRpcChannelBuffer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrStubGetBuffer*(This: ptr IRpcStubBuffer, pRpcChannelBuffer: ptr IRpcChannelBuffer, pStubMsg: PMIDL_STUB_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_QueryInterface*(This: ptr IRpcStubBuffer, riid: REFIID, ppvObject: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_AddRef*(This: ptr IRpcStubBuffer): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrCStdStubBuffer_Release*(This: ptr IRpcStubBuffer, pPSF: ptr IPSFactoryBuffer): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_Connect*(This: ptr IRpcStubBuffer, pUnkServer: ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_Disconnect*(This: ptr IRpcStubBuffer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_Invoke*(This: ptr IRpcStubBuffer, pRpcMsg: ptr RPCOLEMESSAGE, pRpcChannelBuffer: ptr IRpcChannelBuffer): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_CountRefs*(This: ptr IRpcStubBuffer): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_DebugServerQueryInterface*(This: ptr IRpcStubBuffer, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc CStdStubBuffer_DebugServerRelease*(This: ptr IRpcStubBuffer, pv: pointer): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrDllGetClassObject*(rclsid: REFCLSID, riid: REFIID, ppv: ptr pointer, pProxyFileList: ptr ptr ProxyFileInfo, pclsid: ptr CLSID, pPSFactoryBuffer: ptr CStdPSFactoryBuffer): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrDllCanUnloadNow*(pPSFactoryBuffer: ptr CStdPSFactoryBuffer): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrDllRegisterProxy*(hDll: HMODULE, pProxyFileList: ptr ptr ProxyFileInfo, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrDllUnregisterProxy*(hDll: HMODULE, pProxyFileList: ptr ptr ProxyFileInfo, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc NdrCStdStubBuffer2_Release*(This: ptr IRpcStubBuffer, pPSF: ptr IPSFactoryBuffer): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcCertGeneratePrincipalNameW*(Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc RpcCertGeneratePrincipalNameA*(Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} -proc `Level1=`*(self: var NDR_USER_MARSHAL_INFO, x: NDR_USER_MARSHAL_INFO_LEVEL1) {.inline.} = self.union1.Level1 = x -proc Level1*(self: NDR_USER_MARSHAL_INFO): NDR_USER_MARSHAL_INFO_LEVEL1 {.inline.} = self.union1.Level1 -proc Level1*(self: var NDR_USER_MARSHAL_INFO): var NDR_USER_MARSHAL_INFO_LEVEL1 {.inline.} = self.union1.Level1 +proc RpcGetAuthorizationContextForClient*( + ClientBinding: RPC_BINDING_HANDLE, + ImpersonateOnReturn: WINBOOL, + Reserved1: PVOID, + pExpirationTime: PLARGE_INTEGER, + Reserved2: LUID, + Reserved3: DWORD, + Reserved4: PVOID, + pAuthzClientContext: ptr PVOID, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcFreeAuthorizationContext*( + pAuthzClientContext: ptr PVOID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsContextLockExclusive*( + ServerBindingHandle: RPC_BINDING_HANDLE, UserContext: PVOID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcSsContextLockShared*( + ServerBindingHandle: RPC_BINDING_HANDLE, UserContext: PVOID +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqCallAttributesW*( + ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerInqCallAttributesA*( + ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcAsyncSetHandle*( + Message: PRPC_MESSAGE, pAsync: PRPC_ASYNC_STATE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcAsyncAbortCall*( + pAsync: PRPC_ASYNC_STATE, ExceptionCode: int32 +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc I_RpcExceptionFilter*( + ExceptionCode: int32 +): int32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingBind*( + pAsync: PRPC_ASYNC_STATE, Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcBindingUnbind*( + Binding: RPC_BINDING_HANDLE +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerSubscribeForNotification*( + Binding: RPC_BINDING_HANDLE, + Notification: DWORD, + NotificationType: RPC_NOTIFICATION_TYPES, + NotificationInfo: ptr RPC_ASYNC_NOTIFICATION_INFO, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcServerUnsubscribeForNotification*( + Binding: RPC_BINDING_HANDLE, + Notification: RPC_NOTIFICATIONS, + NotificationsQueued: ptr int32, +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrProxyInitialize*( + This: pointer, + pRpcMsg: PRPC_MESSAGE, + pStubMsg: PMIDL_STUB_MESSAGE, + pStubDescriptor: PMIDL_STUB_DESC, + ProcNum: int32, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrProxyGetBuffer*( + This: pointer, pStubMsg: PMIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrProxySendReceive*( + This: pointer, pStubMsg: ptr MIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrProxyFreeBuffer*( + This: pointer, pStubMsg: ptr MIDL_STUB_MESSAGE +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrProxyErrorHandler*( + dwExceptionCode: DWORD +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrStubInitialize*( + pRpcMsg: PRPC_MESSAGE, + pStubMsg: PMIDL_STUB_MESSAGE, + pStubDescriptor: PMIDL_STUB_DESC, + pRpcChannelBuffer: ptr IRpcChannelBuffer, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrStubGetBuffer*( + This: ptr IRpcStubBuffer, + pRpcChannelBuffer: ptr IRpcChannelBuffer, + pStubMsg: PMIDL_STUB_MESSAGE, +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_QueryInterface*( + This: ptr IRpcStubBuffer, riid: REFIID, ppvObject: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_AddRef*( + This: ptr IRpcStubBuffer +): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrCStdStubBuffer_Release*( + This: ptr IRpcStubBuffer, pPSF: ptr IPSFactoryBuffer +): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_Connect*( + This: ptr IRpcStubBuffer, pUnkServer: ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_Disconnect*( + This: ptr IRpcStubBuffer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_Invoke*( + This: ptr IRpcStubBuffer, + pRpcMsg: ptr RPCOLEMESSAGE, + pRpcChannelBuffer: ptr IRpcChannelBuffer, +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_CountRefs*( + This: ptr IRpcStubBuffer +): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_DebugServerQueryInterface*( + This: ptr IRpcStubBuffer, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc CStdStubBuffer_DebugServerRelease*( + This: ptr IRpcStubBuffer, pv: pointer +): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrDllGetClassObject*( + rclsid: REFCLSID, + riid: REFIID, + ppv: ptr pointer, + pProxyFileList: ptr ptr ProxyFileInfo, + pclsid: ptr CLSID, + pPSFactoryBuffer: ptr CStdPSFactoryBuffer, +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrDllCanUnloadNow*( + pPSFactoryBuffer: ptr CStdPSFactoryBuffer +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrDllRegisterProxy*( + hDll: HMODULE, pProxyFileList: ptr ptr ProxyFileInfo, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrDllUnregisterProxy*( + hDll: HMODULE, pProxyFileList: ptr ptr ProxyFileInfo, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc NdrCStdStubBuffer2_Release*( + This: ptr IRpcStubBuffer, pPSF: ptr IPSFactoryBuffer +): ULONG {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcCertGeneratePrincipalNameW*( + Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_WSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc RpcCertGeneratePrincipalNameA*( + Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_CSTR +): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc.} + +proc `Level1=`*( + self: var NDR_USER_MARSHAL_INFO, x: NDR_USER_MARSHAL_INFO_LEVEL1 +) {.inline.} = + self.union1.Level1 = x + +proc Level1*(self: NDR_USER_MARSHAL_INFO): NDR_USER_MARSHAL_INFO_LEVEL1 {.inline.} = + self.union1.Level1 + +proc Level1*( + self: var NDR_USER_MARSHAL_INFO +): var NDR_USER_MARSHAL_INFO_LEVEL1 {.inline.} = + self.union1.Level1 + when winimUnicode: type RPC_PROTSEQ_VECTOR* = RPC_PROTSEQ_VECTORW @@ -1526,65 +3490,437 @@ RPC_CALL_LOCAL_ADDRESS_V1* = RPC_CALL_LOCAL_ADDRESS_V1_W RPC_CALL_LOCAL_ADDRESS* = RPC_CALL_LOCAL_ADDRESS_W RPC_CALL_ATTRIBUTES_V2* = RPC_CALL_ATTRIBUTES_V2_W - proc RpcBindingFromStringBinding*(StringBinding: RPC_WSTR, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingFromStringBindingW".} - proc RpcBindingToStringBinding*(Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingToStringBindingW".} - proc RpcStringBindingCompose*(ObjUuid: RPC_WSTR, Protseq: RPC_WSTR, NetworkAddr: RPC_WSTR, Endpoint: RPC_WSTR, Options: RPC_WSTR, StringBinding: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingComposeW".} - proc RpcStringBindingParse*(StringBinding: RPC_WSTR, ObjUuid: ptr RPC_WSTR, Protseq: ptr RPC_WSTR, NetworkAddr: ptr RPC_WSTR, Endpoint: ptr RPC_WSTR, NetworkOptions: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingParseW".} - proc RpcStringFree*(String: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringFreeW".} - proc RpcNetworkIsProtseqValid*(Protseq: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkIsProtseqValidW".} - proc RpcNetworkInqProtseqs*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkInqProtseqsW".} - proc RpcProtseqVectorFree*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcProtseqVectorFreeW".} - proc RpcServerUseProtseq*(Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqW".} - proc RpcServerUseProtseqEx*(Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqExW".} - proc RpcServerUseProtseqEp*(Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpW".} - proc RpcServerUseProtseqEpEx*(Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpExW".} - proc RpcServerUseProtseqIf*(Protseq: RPC_WSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfW".} - proc RpcServerUseProtseqIfEx*(Protseq: RPC_WSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfExW".} - proc RpcMgmtInqServerPrincName*(Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtInqServerPrincNameW".} - proc RpcServerInqDefaultPrincName*(AuthnSvc: int32, PrincName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqDefaultPrincNameW".} - proc RpcNsBindingInqEntryName*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNsBindingInqEntryNameW".} - proc RpcBindingInqAuthClient*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientW".} - proc RpcBindingInqAuthClientEx*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32, Flags: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientExW".} - proc RpcBindingInqAuthInfo*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoW".} - proc RpcBindingSetAuthInfo*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_WSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoW".} - proc RpcServerRegisterAuthInfo*(ServerPrincName: RPC_WSTR, AuthnSvc: int32, GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, Arg: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerRegisterAuthInfoW".} - proc RpcBindingInqAuthInfoEx*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_WSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32, RpcQosVersion: int32, SecurityQOS: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoExW".} - proc RpcBindingSetAuthInfoEx*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_WSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32, SecurityQOS: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoExW".} - proc UuidFromString*(StringUuid: RPC_WSTR, Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidFromStringW".} - proc UuidToString*(Uuid: ptr UUID, StringUuid: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidToStringW".} - proc RpcEpRegisterNoReplace*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterNoReplaceW".} - proc RpcEpRegister*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterW".} - proc DceErrorInqText*(RpcStatus: RPC_STATUS, ErrorText: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "DceErrorInqTextW".} - proc RpcMgmtEpEltInqNext*(InquiryContext: RPC_EP_INQ_HANDLE, IfId: ptr RPC_IF_ID, Binding: ptr RPC_BINDING_HANDLE, ObjectUuid: ptr UUID, Annotation: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtEpEltInqNextW".} - proc RpcBindingCreate*(Template: ptr RPC_BINDING_HANDLE_TEMPLATE, Security: ptr RPC_BINDING_HANDLE_SECURITY, Options: ptr RPC_BINDING_HANDLE_OPTIONS, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingCreateW".} - proc I_RpcNsBindingSetEntryName*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcNsBindingSetEntryNameW".} - proc I_RpcServerUseProtseqEp2*(NetworkAddress: RPC_WSTR, Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseqEp2W".} - proc I_RpcServerUseProtseq2*(NetworkAddress: RPC_WSTR, Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseq2W".} - proc I_RpcBindingInqDynamicEndpoint*(Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcBindingInqDynamicEndpointW".} - proc RpcNsBindingLookupBegin*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, BindingMaxCount: int32, LookupContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingLookupBeginW".} - proc RpcNsBindingImportBegin*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, ImportContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingImportBeginW".} - proc RpcNsBindingExport*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, BindingVec: ptr RPC_BINDING_VECTOR, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportW".} - proc RpcNsBindingUnexport*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportW".} - proc RpcNsGroupDelete*(GroupNameSyntax: int32, GroupName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupDeleteW".} - proc RpcNsGroupMbrAdd*(GroupNameSyntax: int32, GroupName: RPC_WSTR, MemberNameSyntax: int32, MemberName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrAddW".} - proc RpcNsGroupMbrRemove*(GroupNameSyntax: int32, GroupName: RPC_WSTR, MemberNameSyntax: int32, MemberName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrRemoveW".} - proc RpcNsGroupMbrInqBegin*(GroupNameSyntax: int32, GroupName: RPC_WSTR, MemberNameSyntax: int32, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqBeginW".} - proc RpcNsGroupMbrInqNext*(InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqNextW".} - proc RpcNsEntryExpandName*(EntryNameSyntax: int32, EntryName: RPC_WSTR, ExpandedName: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryExpandNameW".} - proc RpcNsEntryObjectInqBegin*(EntryNameSyntax: int32, EntryName: RPC_WSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryObjectInqBeginW".} - proc RpcNsMgmtBindingUnexport*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfId: ptr RPC_IF_ID, VersOption: int32, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtBindingUnexportW".} - proc RpcNsMgmtEntryCreate*(EntryNameSyntax: int32, EntryName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryCreateW".} - proc RpcNsMgmtEntryDelete*(EntryNameSyntax: int32, EntryName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryDeleteW".} - proc RpcNsMgmtEntryInqIfIds*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryInqIfIdsW".} - proc RpcNsProfileDelete*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileDeleteW".} - proc RpcNsProfileEltAdd*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_WSTR, Priority: int32, Annotation: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltAddW".} - proc RpcNsProfileEltRemove*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltRemoveW".} - proc RpcNsProfileEltInqBegin*(ProfileNameSyntax: int32, ProfileName: RPC_WSTR, InquiryType: int32, IfId: ptr RPC_IF_ID, VersOption: int32, MemberNameSyntax: int32, MemberName: RPC_WSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqBeginW".} - proc RpcNsProfileEltInqNext*(InquiryContext: RPC_NS_HANDLE, IfId: ptr RPC_IF_ID, MemberName: ptr RPC_WSTR, Priority: ptr int32, Annotation: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqNextW".} - proc RpcNsBindingExportPnP*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportPnPW".} - proc RpcNsBindingUnexportPnP*(EntryNameSyntax: int32, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportPnPW".} - proc RpcServerInqCallAttributes*(ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqCallAttributesW".} - proc RpcCertGeneratePrincipalName*(Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_WSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcCertGeneratePrincipalNameW".} + + proc RpcBindingFromStringBinding*( + StringBinding: RPC_WSTR, Binding: ptr RPC_BINDING_HANDLE + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingFromStringBindingW" + .} + + proc RpcBindingToStringBinding*( + Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingToStringBindingW" + .} + + proc RpcStringBindingCompose*( + ObjUuid: RPC_WSTR, + Protseq: RPC_WSTR, + NetworkAddr: RPC_WSTR, + Endpoint: RPC_WSTR, + Options: RPC_WSTR, + StringBinding: ptr RPC_WSTR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingComposeW" + .} + + proc RpcStringBindingParse*( + StringBinding: RPC_WSTR, + ObjUuid: ptr RPC_WSTR, + Protseq: ptr RPC_WSTR, + NetworkAddr: ptr RPC_WSTR, + Endpoint: ptr RPC_WSTR, + NetworkOptions: ptr RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingParseW".} + + proc RpcStringFree*( + String: ptr RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringFreeW".} + + proc RpcNetworkIsProtseqValid*( + Protseq: RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkIsProtseqValidW" + .} + + proc RpcNetworkInqProtseqs*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkInqProtseqsW".} + + proc RpcProtseqVectorFree*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORW + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcProtseqVectorFreeW".} + + proc RpcServerUseProtseq*( + Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqW".} + + proc RpcServerUseProtseqEx*( + Protseq: RPC_WSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqExW".} + + proc RpcServerUseProtseqEp*( + Protseq: RPC_WSTR, MaxCalls: int32, Endpoint: RPC_WSTR, SecurityDescriptor: pointer + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpW".} + + proc RpcServerUseProtseqEpEx*( + Protseq: RPC_WSTR, + MaxCalls: int32, + Endpoint: RPC_WSTR, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpExW" + .} + + proc RpcServerUseProtseqIf*( + Protseq: RPC_WSTR, + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfW".} + + proc RpcServerUseProtseqIfEx*( + Protseq: RPC_WSTR, + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfExW" + .} + + proc RpcMgmtInqServerPrincName*( + Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtInqServerPrincNameW" + .} + + proc RpcServerInqDefaultPrincName*( + AuthnSvc: int32, PrincName: ptr RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqDefaultPrincNameW" + .} + + proc RpcNsBindingInqEntryName*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNsBindingInqEntryNameW" + .} + + proc RpcBindingInqAuthClient*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientW" + .} + + proc RpcBindingInqAuthClientEx*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, + Flags: int32, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientExW" + .} + + proc RpcBindingInqAuthInfo*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoW".} + + proc RpcBindingSetAuthInfo*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_WSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoW".} + + proc RpcServerRegisterAuthInfo*( + ServerPrincName: RPC_WSTR, + AuthnSvc: int32, + GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, + Arg: pointer, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerRegisterAuthInfoW" + .} + + proc RpcBindingInqAuthInfoEx*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_WSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, + RpcQosVersion: int32, + SecurityQOS: ptr RPC_SECURITY_QOS, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoExW" + .} + + proc RpcBindingSetAuthInfoEx*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_WSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, + SecurityQOS: ptr RPC_SECURITY_QOS, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoExW" + .} + + proc UuidFromString*( + StringUuid: RPC_WSTR, Uuid: ptr UUID + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidFromStringW".} + + proc UuidToString*( + Uuid: ptr UUID, StringUuid: ptr RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidToStringW".} + + proc RpcEpRegisterNoReplace*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_WSTR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterNoReplaceW" + .} + + proc RpcEpRegister*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterW".} + + proc DceErrorInqText*( + RpcStatus: RPC_STATUS, ErrorText: RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "DceErrorInqTextW".} + + proc RpcMgmtEpEltInqNext*( + InquiryContext: RPC_EP_INQ_HANDLE, + IfId: ptr RPC_IF_ID, + Binding: ptr RPC_BINDING_HANDLE, + ObjectUuid: ptr UUID, + Annotation: ptr RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtEpEltInqNextW".} + + proc RpcBindingCreate*( + Template: ptr RPC_BINDING_HANDLE_TEMPLATE, + Security: ptr RPC_BINDING_HANDLE_SECURITY, + Options: ptr RPC_BINDING_HANDLE_OPTIONS, + Binding: ptr RPC_BINDING_HANDLE, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingCreateW".} + + proc I_RpcNsBindingSetEntryName*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcNsBindingSetEntryNameW" + .} + + proc I_RpcServerUseProtseqEp2*( + NetworkAddress: RPC_WSTR, + Protseq: RPC_WSTR, + MaxCalls: int32, + Endpoint: RPC_WSTR, + SecurityDescriptor: pointer, + Policy: pointer, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseqEp2W" + .} + + proc I_RpcServerUseProtseq2*( + NetworkAddress: RPC_WSTR, + Protseq: RPC_WSTR, + MaxCalls: int32, + SecurityDescriptor: pointer, + Policy: pointer, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseq2W" + .} + + proc I_RpcBindingInqDynamicEndpoint*( + Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcBindingInqDynamicEndpointW" + .} + + proc RpcNsBindingLookupBegin*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + BindingMaxCount: int32, + LookupContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingLookupBeginW" + .} + + proc RpcNsBindingImportBegin*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + ImportContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingImportBeginW" + .} + + proc RpcNsBindingExport*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + BindingVec: ptr RPC_BINDING_VECTOR, + ObjectUuidVec: ptr UUID_VECTOR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportW".} + + proc RpcNsBindingUnexport*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjectUuidVec: ptr UUID_VECTOR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportW".} + + proc RpcNsGroupDelete*( + GroupNameSyntax: int32, GroupName: RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupDeleteW".} + + proc RpcNsGroupMbrAdd*( + GroupNameSyntax: int32, + GroupName: RPC_WSTR, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrAddW".} + + proc RpcNsGroupMbrRemove*( + GroupNameSyntax: int32, + GroupName: RPC_WSTR, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrRemoveW".} + + proc RpcNsGroupMbrInqBegin*( + GroupNameSyntax: int32, + GroupName: RPC_WSTR, + MemberNameSyntax: int32, + InquiryContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqBeginW".} + + proc RpcNsGroupMbrInqNext*( + InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqNextW".} + + proc RpcNsEntryExpandName*( + EntryNameSyntax: int32, EntryName: RPC_WSTR, ExpandedName: ptr RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryExpandNameW".} + + proc RpcNsEntryObjectInqBegin*( + EntryNameSyntax: int32, EntryName: RPC_WSTR, InquiryContext: ptr RPC_NS_HANDLE + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryObjectInqBeginW" + .} + + proc RpcNsMgmtBindingUnexport*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfId: ptr RPC_IF_ID, + VersOption: int32, + ObjectUuidVec: ptr UUID_VECTOR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtBindingUnexportW" + .} + + proc RpcNsMgmtEntryCreate*( + EntryNameSyntax: int32, EntryName: RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryCreateW".} + + proc RpcNsMgmtEntryDelete*( + EntryNameSyntax: int32, EntryName: RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryDeleteW".} + + proc RpcNsMgmtEntryInqIfIds*( + EntryNameSyntax: int32, EntryName: RPC_WSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryInqIfIdsW" + .} + + proc RpcNsProfileDelete*( + ProfileNameSyntax: int32, ProfileName: RPC_WSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileDeleteW".} + + proc RpcNsProfileEltAdd*( + ProfileNameSyntax: int32, + ProfileName: RPC_WSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + Priority: int32, + Annotation: RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltAddW".} + + proc RpcNsProfileEltRemove*( + ProfileNameSyntax: int32, + ProfileName: RPC_WSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltRemoveW".} + + proc RpcNsProfileEltInqBegin*( + ProfileNameSyntax: int32, + ProfileName: RPC_WSTR, + InquiryType: int32, + IfId: ptr RPC_IF_ID, + VersOption: int32, + MemberNameSyntax: int32, + MemberName: RPC_WSTR, + InquiryContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqBeginW" + .} + + proc RpcNsProfileEltInqNext*( + InquiryContext: RPC_NS_HANDLE, + IfId: ptr RPC_IF_ID, + MemberName: ptr RPC_WSTR, + Priority: ptr int32, + Annotation: ptr RPC_WSTR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqNextW" + .} + + proc RpcNsBindingExportPnP*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportPnPW".} + + proc RpcNsBindingUnexportPnP*( + EntryNameSyntax: int32, + EntryName: RPC_WSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportPnPW" + .} + + proc RpcServerInqCallAttributes*( + ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqCallAttributesW" + .} + + proc RpcCertGeneratePrincipalName*( + Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_WSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcCertGeneratePrincipalNameW" + .} + when winimAnsi: type RPC_PROTSEQ_VECTOR* = RPC_PROTSEQ_VECTORA @@ -1597,69 +3933,464 @@ RPC_CALL_LOCAL_ADDRESS_V1* = RPC_CALL_LOCAL_ADDRESS_V1_A RPC_CALL_LOCAL_ADDRESS* = RPC_CALL_LOCAL_ADDRESS_A RPC_CALL_ATTRIBUTES_V2* = RPC_CALL_ATTRIBUTES_V2_A - proc RpcBindingFromStringBinding*(StringBinding: RPC_CSTR, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingFromStringBindingA".} - proc RpcBindingToStringBinding*(Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingToStringBindingA".} - proc RpcStringBindingCompose*(ObjUuid: RPC_CSTR, Protseq: RPC_CSTR, NetworkAddr: RPC_CSTR, Endpoint: RPC_CSTR, Options: RPC_CSTR, StringBinding: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingComposeA".} - proc RpcStringBindingParse*(StringBinding: RPC_CSTR, ObjUuid: ptr RPC_CSTR, Protseq: ptr RPC_CSTR, NetworkAddr: ptr RPC_CSTR, Endpoint: ptr RPC_CSTR, NetworkOptions: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingParseA".} - proc RpcStringFree*(String: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringFreeA".} - proc RpcNetworkIsProtseqValid*(Protseq: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkIsProtseqValidA".} - proc RpcNetworkInqProtseqs*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkInqProtseqsA".} - proc RpcProtseqVectorFree*(ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcProtseqVectorFreeA".} - proc RpcServerUseProtseq*(Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqA".} - proc RpcServerUseProtseqEx*(Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqExA".} - proc RpcServerUseProtseqEp*(Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpA".} - proc RpcServerUseProtseqEpEx*(Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpExA".} - proc RpcServerUseProtseqIf*(Protseq: RPC_CSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfA".} - proc RpcServerUseProtseqIfEx*(Protseq: RPC_CSTR, MaxCalls: int32, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: pointer, Policy: PRPC_POLICY): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfExA".} - proc RpcMgmtInqServerPrincName*(Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtInqServerPrincNameA".} - proc RpcServerInqDefaultPrincName*(AuthnSvc: int32, PrincName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqDefaultPrincNameA".} - proc RpcNsBindingInqEntryName*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNsBindingInqEntryNameA".} - proc RpcBindingInqAuthClient*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientA".} - proc RpcBindingInqAuthClientEx*(ClientBinding: RPC_BINDING_HANDLE, Privs: ptr RPC_AUTHZ_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthzSvc: ptr int32, Flags: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientExA".} - proc RpcBindingInqAuthInfo*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoA".} - proc RpcBindingSetAuthInfo*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_CSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoA".} - proc RpcServerRegisterAuthInfo*(ServerPrincName: RPC_CSTR, AuthnSvc: int32, GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, Arg: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerRegisterAuthInfoA".} - proc RpcBindingInqAuthInfoEx*(Binding: RPC_BINDING_HANDLE, ServerPrincName: ptr RPC_CSTR, AuthnLevel: ptr int32, AuthnSvc: ptr int32, AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ptr int32, RpcQosVersion: int32, SecurityQOS: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoExA".} - proc RpcBindingSetAuthInfoEx*(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_CSTR, AuthnLevel: int32, AuthnSvc: int32, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: int32, SecurityQos: ptr RPC_SECURITY_QOS): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoExA".} - proc UuidFromString*(StringUuid: RPC_CSTR, Uuid: ptr UUID): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidFromStringA".} - proc UuidToString*(Uuid: ptr UUID, StringUuid: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidToStringA".} - proc RpcEpRegisterNoReplace*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterNoReplaceA".} - proc RpcEpRegister*(IfSpec: RPC_IF_HANDLE, BindingVector: ptr RPC_BINDING_VECTOR, UuidVector: ptr UUID_VECTOR, Annotation: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterA".} - proc DceErrorInqText*(RpcStatus: RPC_STATUS, ErrorText: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "DceErrorInqTextA".} - proc RpcMgmtEpEltInqNext*(InquiryContext: RPC_EP_INQ_HANDLE, IfId: ptr RPC_IF_ID, Binding: ptr RPC_BINDING_HANDLE, ObjectUuid: ptr UUID, Annotation: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtEpEltInqNextA".} - proc RpcBindingCreate*(Template: ptr RPC_BINDING_HANDLE_TEMPLATE, Security: ptr RPC_BINDING_HANDLE_SECURITY, Options: ptr RPC_BINDING_HANDLE_OPTIONS, Binding: ptr RPC_BINDING_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingCreateA".} - proc I_RpcNsBindingSetEntryName*(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcNsBindingSetEntryNameA".} - proc I_RpcServerUseProtseqEp2*(NetworkAddress: RPC_CSTR, Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseqEp2A".} - proc I_RpcServerUseProtseq2*(NetworkAddress: RPC_CSTR, Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseq2A".} - proc I_RpcBindingInqDynamicEndpoint*(Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcBindingInqDynamicEndpointA".} - proc RpcNsBindingLookupBegin*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, BindingMaxCount: int32, LookupContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingLookupBeginA".} - proc RpcNsBindingImportBegin*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ptr UUID, ImportContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingImportBeginA".} - proc RpcNsBindingExport*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, BindingVec: ptr RPC_BINDING_VECTOR, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportA".} - proc RpcNsBindingUnexport*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportA".} - proc RpcNsGroupDelete*(GroupNameSyntax: int32, GroupName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupDeleteA".} - proc RpcNsGroupMbrAdd*(GroupNameSyntax: int32, GroupName: RPC_CSTR, MemberNameSyntax: int32, MemberName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrAddA".} - proc RpcNsGroupMbrRemove*(GroupNameSyntax: int32, GroupName: RPC_CSTR, MemberNameSyntax: int32, MemberName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrRemoveA".} - proc RpcNsGroupMbrInqBegin*(GroupNameSyntax: int32, GroupName: RPC_CSTR, MemberNameSyntax: int32, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqBeginA".} - proc RpcNsGroupMbrInqNext*(InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqNextA".} - proc RpcNsEntryExpandName*(EntryNameSyntax: int32, EntryName: RPC_CSTR, ExpandedName: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryExpandNameA".} - proc RpcNsEntryObjectInqBegin*(EntryNameSyntax: int32, EntryName: RPC_CSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryObjectInqBeginA".} - proc RpcNsMgmtBindingUnexport*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfId: ptr RPC_IF_ID, VersOption: int32, ObjectUuidVec: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtBindingUnexportA".} - proc RpcNsMgmtEntryCreate*(EntryNameSyntax: int32, EntryName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryCreateA".} - proc RpcNsMgmtEntryDelete*(EntryNameSyntax: int32, EntryName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryDeleteA".} - proc RpcNsMgmtEntryInqIfIds*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryInqIfIdsA".} - proc RpcNsProfileDelete*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileDeleteA".} - proc RpcNsProfileEltAdd*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_CSTR, Priority: int32, Annotation: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltAddA".} - proc RpcNsProfileEltRemove*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR, IfId: ptr RPC_IF_ID, MemberNameSyntax: int32, MemberName: RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltRemoveA".} - proc RpcNsProfileEltInqBegin*(ProfileNameSyntax: int32, ProfileName: RPC_CSTR, InquiryType: int32, IfId: ptr RPC_IF_ID, VersOption: int32, MemberNameSyntax: int32, MemberName: RPC_CSTR, InquiryContext: ptr RPC_NS_HANDLE): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqBeginA".} - proc RpcNsProfileEltInqNext*(InquiryContext: RPC_NS_HANDLE, IfId: ptr RPC_IF_ID, MemberName: ptr RPC_CSTR, Priority: ptr int32, Annotation: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqNextA".} - proc RpcNsBindingExportPnP*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportPnPA".} - proc RpcNsBindingUnexportPnP*(EntryNameSyntax: int32, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ptr UUID_VECTOR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportPnPA".} - proc RpcServerInqCallAttributes*(ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqCallAttributesA".} - proc RpcCertGeneratePrincipalName*(Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_CSTR): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcCertGeneratePrincipalNameA".} + + proc RpcBindingFromStringBinding*( + StringBinding: RPC_CSTR, Binding: ptr RPC_BINDING_HANDLE + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingFromStringBindingA" + .} + + proc RpcBindingToStringBinding*( + Binding: RPC_BINDING_HANDLE, StringBinding: ptr RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingToStringBindingA" + .} + + proc RpcStringBindingCompose*( + ObjUuid: RPC_CSTR, + Protseq: RPC_CSTR, + NetworkAddr: RPC_CSTR, + Endpoint: RPC_CSTR, + Options: RPC_CSTR, + StringBinding: ptr RPC_CSTR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingComposeA" + .} + + proc RpcStringBindingParse*( + StringBinding: RPC_CSTR, + ObjUuid: ptr RPC_CSTR, + Protseq: ptr RPC_CSTR, + NetworkAddr: ptr RPC_CSTR, + Endpoint: ptr RPC_CSTR, + NetworkOptions: ptr RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringBindingParseA".} + + proc RpcStringFree*( + String: ptr RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcStringFreeA".} + + proc RpcNetworkIsProtseqValid*( + Protseq: RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkIsProtseqValidA" + .} + + proc RpcNetworkInqProtseqs*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNetworkInqProtseqsA".} + + proc RpcProtseqVectorFree*( + ProtseqVector: ptr ptr RPC_PROTSEQ_VECTORA + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcProtseqVectorFreeA".} + + proc RpcServerUseProtseq*( + Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqA".} + + proc RpcServerUseProtseqEx*( + Protseq: RPC_CSTR, MaxCalls: int32, SecurityDescriptor: pointer, Policy: PRPC_POLICY + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqExA".} + + proc RpcServerUseProtseqEp*( + Protseq: RPC_CSTR, MaxCalls: int32, Endpoint: RPC_CSTR, SecurityDescriptor: pointer + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpA".} + + proc RpcServerUseProtseqEpEx*( + Protseq: RPC_CSTR, + MaxCalls: int32, + Endpoint: RPC_CSTR, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqEpExA" + .} + + proc RpcServerUseProtseqIf*( + Protseq: RPC_CSTR, + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfA".} + + proc RpcServerUseProtseqIfEx*( + Protseq: RPC_CSTR, + MaxCalls: int32, + IfSpec: RPC_IF_HANDLE, + SecurityDescriptor: pointer, + Policy: PRPC_POLICY, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerUseProtseqIfExA" + .} + + proc RpcMgmtInqServerPrincName*( + Binding: RPC_BINDING_HANDLE, AuthnSvc: int32, ServerPrincName: ptr RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtInqServerPrincNameA" + .} + + proc RpcServerInqDefaultPrincName*( + AuthnSvc: int32, PrincName: ptr RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqDefaultPrincNameA" + .} + + proc RpcNsBindingInqEntryName*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: ptr RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcNsBindingInqEntryNameA" + .} + + proc RpcBindingInqAuthClient*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientA" + .} + + proc RpcBindingInqAuthClientEx*( + ClientBinding: RPC_BINDING_HANDLE, + Privs: ptr RPC_AUTHZ_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthzSvc: ptr int32, + Flags: int32, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthClientExA" + .} + + proc RpcBindingInqAuthInfo*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoA".} + + proc RpcBindingSetAuthInfo*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_CSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoA".} + + proc RpcServerRegisterAuthInfo*( + ServerPrincName: RPC_CSTR, + AuthnSvc: int32, + GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, + Arg: pointer, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerRegisterAuthInfoA" + .} + + proc RpcBindingInqAuthInfoEx*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: ptr RPC_CSTR, + AuthnLevel: ptr int32, + AuthnSvc: ptr int32, + AuthIdentity: ptr RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: ptr int32, + RpcQosVersion: int32, + SecurityQOS: ptr RPC_SECURITY_QOS, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingInqAuthInfoExA" + .} + + proc RpcBindingSetAuthInfoEx*( + Binding: RPC_BINDING_HANDLE, + ServerPrincName: RPC_CSTR, + AuthnLevel: int32, + AuthnSvc: int32, + AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, + AuthzSvc: int32, + SecurityQos: ptr RPC_SECURITY_QOS, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingSetAuthInfoExA" + .} + + proc UuidFromString*( + StringUuid: RPC_CSTR, Uuid: ptr UUID + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidFromStringA".} + + proc UuidToString*( + Uuid: ptr UUID, StringUuid: ptr RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "UuidToStringA".} + + proc RpcEpRegisterNoReplace*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_CSTR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterNoReplaceA" + .} + + proc RpcEpRegister*( + IfSpec: RPC_IF_HANDLE, + BindingVector: ptr RPC_BINDING_VECTOR, + UuidVector: ptr UUID_VECTOR, + Annotation: RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcEpRegisterA".} + + proc DceErrorInqText*( + RpcStatus: RPC_STATUS, ErrorText: RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "DceErrorInqTextA".} + + proc RpcMgmtEpEltInqNext*( + InquiryContext: RPC_EP_INQ_HANDLE, + IfId: ptr RPC_IF_ID, + Binding: ptr RPC_BINDING_HANDLE, + ObjectUuid: ptr UUID, + Annotation: ptr RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcMgmtEpEltInqNextA".} + + proc RpcBindingCreate*( + Template: ptr RPC_BINDING_HANDLE_TEMPLATE, + Security: ptr RPC_BINDING_HANDLE_SECURITY, + Options: ptr RPC_BINDING_HANDLE_OPTIONS, + Binding: ptr RPC_BINDING_HANDLE, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcrt4", importc: "RpcBindingCreateA".} + + proc I_RpcNsBindingSetEntryName*( + Binding: RPC_BINDING_HANDLE, EntryNameSyntax: int32, EntryName: RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcNsBindingSetEntryNameA" + .} + + proc I_RpcServerUseProtseqEp2*( + NetworkAddress: RPC_CSTR, + Protseq: RPC_CSTR, + MaxCalls: int32, + Endpoint: RPC_CSTR, + SecurityDescriptor: pointer, + Policy: pointer, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseqEp2A" + .} + + proc I_RpcServerUseProtseq2*( + NetworkAddress: RPC_CSTR, + Protseq: RPC_CSTR, + MaxCalls: int32, + SecurityDescriptor: pointer, + Policy: pointer, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcServerUseProtseq2A" + .} + + proc I_RpcBindingInqDynamicEndpoint*( + Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ptr RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "I_RpcBindingInqDynamicEndpointA" + .} + + proc RpcNsBindingLookupBegin*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + BindingMaxCount: int32, + LookupContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingLookupBeginA" + .} + + proc RpcNsBindingImportBegin*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjUuid: ptr UUID, + ImportContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingImportBeginA" + .} + + proc RpcNsBindingExport*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + BindingVec: ptr RPC_BINDING_VECTOR, + ObjectUuidVec: ptr UUID_VECTOR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportA".} + + proc RpcNsBindingUnexport*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjectUuidVec: ptr UUID_VECTOR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportA".} + + proc RpcNsGroupDelete*( + GroupNameSyntax: int32, GroupName: RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupDeleteA".} + + proc RpcNsGroupMbrAdd*( + GroupNameSyntax: int32, + GroupName: RPC_CSTR, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrAddA".} + + proc RpcNsGroupMbrRemove*( + GroupNameSyntax: int32, + GroupName: RPC_CSTR, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrRemoveA".} + + proc RpcNsGroupMbrInqBegin*( + GroupNameSyntax: int32, + GroupName: RPC_CSTR, + MemberNameSyntax: int32, + InquiryContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqBeginA".} + + proc RpcNsGroupMbrInqNext*( + InquiryContext: RPC_NS_HANDLE, MemberName: ptr RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsGroupMbrInqNextA".} + + proc RpcNsEntryExpandName*( + EntryNameSyntax: int32, EntryName: RPC_CSTR, ExpandedName: ptr RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryExpandNameA".} + + proc RpcNsEntryObjectInqBegin*( + EntryNameSyntax: int32, EntryName: RPC_CSTR, InquiryContext: ptr RPC_NS_HANDLE + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsEntryObjectInqBeginA" + .} + + proc RpcNsMgmtBindingUnexport*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfId: ptr RPC_IF_ID, + VersOption: int32, + ObjectUuidVec: ptr UUID_VECTOR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtBindingUnexportA" + .} + + proc RpcNsMgmtEntryCreate*( + EntryNameSyntax: int32, EntryName: RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryCreateA".} + + proc RpcNsMgmtEntryDelete*( + EntryNameSyntax: int32, EntryName: RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryDeleteA".} + + proc RpcNsMgmtEntryInqIfIds*( + EntryNameSyntax: int32, EntryName: RPC_CSTR, IfIdVec: ptr ptr RPC_IF_ID_VECTOR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsMgmtEntryInqIfIdsA" + .} + + proc RpcNsProfileDelete*( + ProfileNameSyntax: int32, ProfileName: RPC_CSTR + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileDeleteA".} + + proc RpcNsProfileEltAdd*( + ProfileNameSyntax: int32, + ProfileName: RPC_CSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + Priority: int32, + Annotation: RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltAddA".} + + proc RpcNsProfileEltRemove*( + ProfileNameSyntax: int32, + ProfileName: RPC_CSTR, + IfId: ptr RPC_IF_ID, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltRemoveA".} + + proc RpcNsProfileEltInqBegin*( + ProfileNameSyntax: int32, + ProfileName: RPC_CSTR, + InquiryType: int32, + IfId: ptr RPC_IF_ID, + VersOption: int32, + MemberNameSyntax: int32, + MemberName: RPC_CSTR, + InquiryContext: ptr RPC_NS_HANDLE, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqBeginA" + .} + + proc RpcNsProfileEltInqNext*( + InquiryContext: RPC_NS_HANDLE, + IfId: ptr RPC_IF_ID, + MemberName: ptr RPC_CSTR, + Priority: ptr int32, + Annotation: ptr RPC_CSTR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsProfileEltInqNextA" + .} + + proc RpcNsBindingExportPnP*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, + ): RPC_STATUS {.winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingExportPnPA".} + + proc RpcNsBindingUnexportPnP*( + EntryNameSyntax: int32, + EntryName: RPC_CSTR, + IfSpec: RPC_IF_HANDLE, + ObjectVector: ptr UUID_VECTOR, + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcns4", importc: "RpcNsBindingUnexportPnPA" + .} + + proc RpcServerInqCallAttributes*( + ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: pointer + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcServerInqCallAttributesA" + .} + + proc RpcCertGeneratePrincipalName*( + Context: PCCERT_CONTEXT, Flags: DWORD, pBuffer: ptr RPC_CSTR + ): RPC_STATUS {. + winapi, stdcall, dynlib: "rpcrt4", importc: "RpcCertGeneratePrincipalNameA" + .} + when winimCpu64: - proc Ndr64AsyncServerCall64*(pRpcMsg: PRPC_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} - proc Ndr64AsyncServerCallAll*(pRpcMsg: PRPC_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} - proc Ndr64DcomAsyncStubCall*(pThis: ptr IRpcStubBuffer, pChannel: ptr IRpcChannelBuffer, pRpcMsg: PRPC_MESSAGE, pdwStubPhase: ptr int32): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} - proc NdrStubCall3*(pThis: ptr IRpcStubBuffer, pChannel: ptr IRpcChannelBuffer, pRpcMsg: PRPC_MESSAGE, pdwStubPhase: ptr int32): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} - proc NdrServerCallAll*(pRpcMsg: PRPC_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} - proc NdrServerCallNdr64*(pRpcMsg: PRPC_MESSAGE): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + proc Ndr64AsyncServerCall64*( + pRpcMsg: PRPC_MESSAGE + ): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + + proc Ndr64AsyncServerCallAll*( + pRpcMsg: PRPC_MESSAGE + ): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + + proc Ndr64DcomAsyncStubCall*( + pThis: ptr IRpcStubBuffer, + pChannel: ptr IRpcChannelBuffer, + pRpcMsg: PRPC_MESSAGE, + pdwStubPhase: ptr int32, + ): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + + proc NdrStubCall3*( + pThis: ptr IRpcStubBuffer, + pChannel: ptr IRpcChannelBuffer, + pRpcMsg: PRPC_MESSAGE, + pdwStubPhase: ptr int32, + ): LONG32 {.winapi, stdcall, dynlib: "rpcrt4", importc.} + + proc NdrServerCallAll*( + pRpcMsg: PRPC_MESSAGE + ): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} + + proc NdrServerCallNdr64*( + pRpcMsg: PRPC_MESSAGE + ): void {.winapi, stdcall, dynlib: "rpcrt4", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/security.nim --- a/semicongine/thirdparty/winim/winim/inc/security.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/security.nim Thu Aug 22 18:32:21 2024 +0700 @@ -64,15 +64,17 @@ Flags*: USHORT Level*: USHORT AccessMask*: ACCESS_MASK + PSE_ADT_OBJECT_TYPE* = ptr SE_ADT_OBJECT_TYPE SE_ADT_PARAMETER_ARRAY_ENTRY* {.pure.} = object Type*: SE_ADT_PARAMETER_TYPE Length*: ULONG Data*: array[2, ULONG_PTR] Address*: PVOID + PSE_ADT_PARAMETER_ARRAY_ENTRY* = ptr SE_ADT_PARAMETER_ARRAY_ENTRY -const - SE_MAX_AUDIT_PARAMETERS* = 32 + +const SE_MAX_AUDIT_PARAMETERS* = 32 type SE_ADT_PARAMETER_ARRAY* {.pure.} = object CategoryId*: ULONG @@ -81,7 +83,8 @@ Length*: ULONG Type*: USHORT Flags*: ULONG - Parameters*: array[SE_MAX_AUDIT_PARAMETERS , SE_ADT_PARAMETER_ARRAY_ENTRY] + Parameters*: array[SE_MAX_AUDIT_PARAMETERS, SE_ADT_PARAMETER_ARRAY_ENTRY] + PSE_ADT_PARAMETER_ARRAY* = ptr SE_ADT_PARAMETER_ARRAY LSA_UNICODE_STRING* = UNICODE_STRING PLSA_UNICODE_STRING* = ptr UNICODE_STRING @@ -92,26 +95,31 @@ LSA_TRUST_INFORMATION* {.pure.} = object Name*: LSA_UNICODE_STRING Sid*: PSID + PLSA_TRUST_INFORMATION* = ptr LSA_TRUST_INFORMATION LSA_REFERENCED_DOMAIN_LIST* {.pure.} = object Entries*: ULONG Domains*: PLSA_TRUST_INFORMATION + PLSA_REFERENCED_DOMAIN_LIST* = ptr LSA_REFERENCED_DOMAIN_LIST LSA_TRANSLATED_SID* {.pure.} = object Use*: SID_NAME_USE RelativeId*: ULONG DomainIndex*: LONG + PLSA_TRANSLATED_SID* = ptr LSA_TRANSLATED_SID LSA_TRANSLATED_SID2* {.pure.} = object Use*: SID_NAME_USE Sid*: PSID DomainIndex*: LONG Flags*: ULONG + PLSA_TRANSLATED_SID2* = ptr LSA_TRANSLATED_SID2 LSA_TRANSLATED_NAME* {.pure.} = object Use*: SID_NAME_USE Name*: LSA_UNICODE_STRING DomainIndex*: LONG + PLSA_TRANSLATED_NAME* = ptr LSA_TRANSLATED_NAME POLICY_AUDIT_LOG_INFO* {.pure.} = object AuditLogPercentFull*: ULONG @@ -120,19 +128,23 @@ AuditLogFullShutdownInProgress*: BOOLEAN TimeToShutdown*: LARGE_INTEGER NextAuditRecordId*: ULONG + PPOLICY_AUDIT_LOG_INFO* = ptr POLICY_AUDIT_LOG_INFO POLICY_AUDIT_EVENTS_INFO* {.pure.} = object AuditingMode*: BOOLEAN EventAuditingOptions*: PPOLICY_AUDIT_EVENT_OPTIONS MaximumAuditEventCount*: ULONG + PPOLICY_AUDIT_EVENTS_INFO* = ptr POLICY_AUDIT_EVENTS_INFO POLICY_ACCOUNT_DOMAIN_INFO* {.pure.} = object DomainName*: LSA_UNICODE_STRING DomainSid*: PSID + PPOLICY_ACCOUNT_DOMAIN_INFO* = ptr POLICY_ACCOUNT_DOMAIN_INFO POLICY_PRIMARY_DOMAIN_INFO* {.pure.} = object Name*: LSA_UNICODE_STRING Sid*: PSID + PPOLICY_PRIMARY_DOMAIN_INFO* = ptr POLICY_PRIMARY_DOMAIN_INFO POLICY_DNS_DOMAIN_INFO* {.pure.} = object Name*: LSA_UNICODE_STRING @@ -140,34 +152,43 @@ DnsForestName*: LSA_UNICODE_STRING DomainGuid*: GUID Sid*: PSID + PPOLICY_DNS_DOMAIN_INFO* = ptr POLICY_DNS_DOMAIN_INFO POLICY_PD_ACCOUNT_INFO* {.pure.} = object Name*: LSA_UNICODE_STRING + PPOLICY_PD_ACCOUNT_INFO* = ptr POLICY_PD_ACCOUNT_INFO POLICY_LSA_SERVER_ROLE_INFO* {.pure.} = object LsaServerRole*: POLICY_LSA_SERVER_ROLE + PPOLICY_LSA_SERVER_ROLE_INFO* = ptr POLICY_LSA_SERVER_ROLE_INFO POLICY_REPLICA_SOURCE_INFO* {.pure.} = object ReplicaSource*: LSA_UNICODE_STRING ReplicaAccountName*: LSA_UNICODE_STRING + PPOLICY_REPLICA_SOURCE_INFO* = ptr POLICY_REPLICA_SOURCE_INFO POLICY_DEFAULT_QUOTA_INFO* {.pure.} = object QuotaLimits*: QUOTA_LIMITS + PPOLICY_DEFAULT_QUOTA_INFO* = ptr POLICY_DEFAULT_QUOTA_INFO POLICY_MODIFICATION_INFO* {.pure.} = object ModifiedId*: LARGE_INTEGER DatabaseCreationTime*: LARGE_INTEGER + PPOLICY_MODIFICATION_INFO* = ptr POLICY_MODIFICATION_INFO POLICY_AUDIT_FULL_SET_INFO* {.pure.} = object ShutDownOnFull*: BOOLEAN + PPOLICY_AUDIT_FULL_SET_INFO* = ptr POLICY_AUDIT_FULL_SET_INFO POLICY_AUDIT_FULL_QUERY_INFO* {.pure.} = object ShutDownOnFull*: BOOLEAN LogIsFull*: BOOLEAN + PPOLICY_AUDIT_FULL_QUERY_INFO* = ptr POLICY_AUDIT_FULL_QUERY_INFO POLICY_DOMAIN_EFS_INFO* {.pure.} = object InfoLength*: ULONG EfsBlob*: PUCHAR + PPOLICY_DOMAIN_EFS_INFO* = ptr POLICY_DOMAIN_EFS_INFO POLICY_DOMAIN_KERBEROS_TICKET_INFO* {.pure.} = object AuthenticationOptions*: ULONG @@ -176,20 +197,25 @@ MaxRenewAge*: LARGE_INTEGER MaxClockSkew*: LARGE_INTEGER Reserved*: LARGE_INTEGER + PPOLICY_DOMAIN_KERBEROS_TICKET_INFO* = ptr POLICY_DOMAIN_KERBEROS_TICKET_INFO TRUSTED_DOMAIN_NAME_INFO* {.pure.} = object Name*: LSA_UNICODE_STRING + PTRUSTED_DOMAIN_NAME_INFO* = ptr TRUSTED_DOMAIN_NAME_INFO TRUSTED_CONTROLLERS_INFO* {.pure.} = object Entries*: ULONG Names*: PLSA_UNICODE_STRING + PTRUSTED_CONTROLLERS_INFO* = ptr TRUSTED_CONTROLLERS_INFO TRUSTED_POSIX_OFFSET_INFO* {.pure.} = object Offset*: ULONG + PTRUSTED_POSIX_OFFSET_INFO* = ptr TRUSTED_POSIX_OFFSET_INFO TRUSTED_PASSWORD_INFO* {.pure.} = object Password*: LSA_UNICODE_STRING OldPassword*: LSA_UNICODE_STRING + PTRUSTED_PASSWORD_INFO* = ptr TRUSTED_PASSWORD_INFO TRUSTED_DOMAIN_INFORMATION_BASIC* = LSA_TRUST_INFORMATION PTRUSTED_DOMAIN_INFORMATION_BASIC* = PLSA_TRUST_INFORMATION @@ -200,6 +226,7 @@ TrustDirection*: ULONG TrustType*: ULONG TrustAttributes*: ULONG + PTRUSTED_DOMAIN_INFORMATION_EX* = ptr TRUSTED_DOMAIN_INFORMATION_EX TRUSTED_DOMAIN_INFORMATION_EX2* {.pure.} = object Name*: LSA_UNICODE_STRING @@ -210,12 +237,14 @@ TrustAttributes*: ULONG ForestTrustLength*: ULONG ForestTrustInfo*: PUCHAR + PTRUSTED_DOMAIN_INFORMATION_EX2* = ptr TRUSTED_DOMAIN_INFORMATION_EX2 LSA_AUTH_INFORMATION* {.pure.} = object LastUpdateTime*: LARGE_INTEGER AuthType*: ULONG AuthInfoLength*: ULONG AuthInfo*: PUCHAR + PLSA_AUTH_INFORMATION* = ptr LSA_AUTH_INFORMATION TRUSTED_DOMAIN_AUTH_INFORMATION* {.pure.} = object IncomingAuthInfos*: ULONG @@ -224,57 +253,69 @@ OutgoingAuthInfos*: ULONG OutgoingAuthenticationInformation*: PLSA_AUTH_INFORMATION OutgoingPreviousAuthenticationInformation*: PLSA_AUTH_INFORMATION + PTRUSTED_DOMAIN_AUTH_INFORMATION* = ptr TRUSTED_DOMAIN_AUTH_INFORMATION TRUSTED_DOMAIN_FULL_INFORMATION* {.pure.} = object Information*: TRUSTED_DOMAIN_INFORMATION_EX PosixOffset*: TRUSTED_POSIX_OFFSET_INFO AuthInformation*: TRUSTED_DOMAIN_AUTH_INFORMATION + PTRUSTED_DOMAIN_FULL_INFORMATION* = ptr TRUSTED_DOMAIN_FULL_INFORMATION TRUSTED_DOMAIN_FULL_INFORMATION2* {.pure.} = object Information*: TRUSTED_DOMAIN_INFORMATION_EX2 PosixOffset*: TRUSTED_POSIX_OFFSET_INFO AuthInformation*: TRUSTED_DOMAIN_AUTH_INFORMATION + PTRUSTED_DOMAIN_FULL_INFORMATION2* = ptr TRUSTED_DOMAIN_FULL_INFORMATION2 LSA_FOREST_TRUST_DOMAIN_INFO* {.pure.} = object Sid*: PSID DnsName*: LSA_UNICODE_STRING NetbiosName*: LSA_UNICODE_STRING + PLSA_FOREST_TRUST_DOMAIN_INFO* = ptr LSA_FOREST_TRUST_DOMAIN_INFO LSA_FOREST_TRUST_BINARY_DATA* {.pure.} = object Length*: ULONG Buffer*: PUCHAR + PLSA_FOREST_TRUST_BINARY_DATA* = ptr LSA_FOREST_TRUST_BINARY_DATA LSA_FOREST_TRUST_RECORD_ForestTrustData* {.pure, union.} = object TopLevelName*: LSA_UNICODE_STRING DomainInfo*: LSA_FOREST_TRUST_DOMAIN_INFO Data*: LSA_FOREST_TRUST_BINARY_DATA + LSA_FOREST_TRUST_RECORD* {.pure.} = object Flags*: ULONG ForestTrustType*: LSA_FOREST_TRUST_RECORD_TYPE Time*: LARGE_INTEGER ForestTrustData*: LSA_FOREST_TRUST_RECORD_ForestTrustData + PLSA_FOREST_TRUST_RECORD* = ptr LSA_FOREST_TRUST_RECORD LSA_FOREST_TRUST_INFORMATION* {.pure.} = object RecordCount*: ULONG Entries*: ptr PLSA_FOREST_TRUST_RECORD + PLSA_FOREST_TRUST_INFORMATION* = ptr LSA_FOREST_TRUST_INFORMATION LSA_FOREST_TRUST_COLLISION_RECORD* {.pure.} = object Index*: ULONG Type*: LSA_FOREST_TRUST_COLLISION_RECORD_TYPE Flags*: ULONG Name*: LSA_UNICODE_STRING + PLSA_FOREST_TRUST_COLLISION_RECORD* = ptr LSA_FOREST_TRUST_COLLISION_RECORD LSA_FOREST_TRUST_COLLISION_INFORMATION* {.pure.} = object RecordCount*: ULONG Entries*: ptr PLSA_FOREST_TRUST_COLLISION_RECORD + PLSA_FOREST_TRUST_COLLISION_INFORMATION* = ptr LSA_FOREST_TRUST_COLLISION_INFORMATION LSA_ENUMERATION_INFORMATION* {.pure.} = object Sid*: PSID + PLSA_ENUMERATION_INFORMATION* = ptr LSA_ENUMERATION_INFORMATION LSA_LAST_INTER_LOGON_INFO* {.pure.} = object LastSuccessfulLogon*: LARGE_INTEGER LastFailedLogon*: LARGE_INTEGER FailedAttemptCountSinceLastSuccessfulLogon*: ULONG + PLSA_LAST_INTER_LOGON_INFO* = ptr LSA_LAST_INTER_LOGON_INFO SECURITY_LOGON_SESSION_DATA* {.pure.} = object Size*: ULONG @@ -300,30 +341,35 @@ PasswordLastSet*: LARGE_INTEGER PasswordCanChange*: LARGE_INTEGER PasswordMustChange*: LARGE_INTEGER + PSECURITY_LOGON_SESSION_DATA* = ptr SECURITY_LOGON_SESSION_DATA -const - NEGOTIATE_MAX_PREFIX* = 32 + +const NEGOTIATE_MAX_PREFIX* = 32 type NEGOTIATE_PACKAGE_PREFIX* {.pure.} = object PackageId*: ULONG_PTR PackageDataA*: PVOID PackageDataW*: PVOID PrefixLen*: ULONG_PTR - Prefix*: array[NEGOTIATE_MAX_PREFIX , UCHAR] + Prefix*: array[NEGOTIATE_MAX_PREFIX, UCHAR] + PNEGOTIATE_PACKAGE_PREFIX* = ptr NEGOTIATE_PACKAGE_PREFIX NEGOTIATE_PACKAGE_PREFIXES* {.pure.} = object MessageType*: ULONG PrefixCount*: ULONG Offset*: ULONG Pad*: ULONG + PNEGOTIATE_PACKAGE_PREFIXES* = ptr NEGOTIATE_PACKAGE_PREFIXES NEGOTIATE_CALLER_NAME_REQUEST* {.pure.} = object MessageType*: ULONG LogonId*: LUID + PNEGOTIATE_CALLER_NAME_REQUEST* = ptr NEGOTIATE_CALLER_NAME_REQUEST NEGOTIATE_CALLER_NAME_RESPONSE* {.pure.} = object MessageType*: ULONG CallerName*: PWSTR + PNEGOTIATE_CALLER_NAME_RESPONSE* = ptr NEGOTIATE_CALLER_NAME_RESPONSE DOMAIN_PASSWORD_INFORMATION* {.pure.} = object MinPasswordLength*: USHORT @@ -331,12 +377,14 @@ PasswordProperties*: ULONG MaxPasswordAge*: LARGE_INTEGER MinPasswordAge*: LARGE_INTEGER + PDOMAIN_PASSWORD_INFORMATION* = ptr DOMAIN_PASSWORD_INFORMATION TMSV1_0_INTERACTIVE_LOGON* {.pure.} = object MessageType*: MSV1_0_LOGON_SUBMIT_TYPE LogonDomainName*: UNICODE_STRING UserName*: UNICODE_STRING Password*: UNICODE_STRING + PMSV1_0_INTERACTIVE_LOGON* = ptr TMSV1_0_INTERACTIVE_LOGON TMSV1_0_INTERACTIVE_PROFILE* {.pure.} = object MessageType*: MSV1_0_PROFILE_BUFFER_TYPE @@ -355,9 +403,10 @@ HomeDirectoryDrive*: UNICODE_STRING LogonServer*: UNICODE_STRING UserFlags*: ULONG + PMSV1_0_INTERACTIVE_PROFILE* = ptr TMSV1_0_INTERACTIVE_PROFILE -const - MSV1_0_CHALLENGE_LENGTH* = 8 + +const MSV1_0_CHALLENGE_LENGTH* = 8 type TMSV1_0_LM20_LOGON* {.pure.} = object MessageType*: MSV1_0_LOGON_SUBMIT_TYPE @@ -368,6 +417,7 @@ CaseSensitiveChallengeResponse*: STRING CaseInsensitiveChallengeResponse*: STRING ParameterControl*: ULONG + PMSV1_0_LM20_LOGON* = ptr TMSV1_0_LM20_LOGON TMSV1_0_SUBAUTH_LOGON* {.pure.} = object MessageType*: MSV1_0_LOGON_SUBMIT_TYPE @@ -379,7 +429,9 @@ AuthenticationInfo2*: STRING ParameterControl*: ULONG SubAuthPackageId*: ULONG + PMSV1_0_SUBAUTH_LOGON* = ptr TMSV1_0_SUBAUTH_LOGON + const MSV1_0_USER_SESSION_KEY_LENGTH* = 16 MSV1_0_LANMAN_SESSION_KEY_LENGTH* = 8 @@ -394,18 +446,20 @@ LanmanSessionKey*: array[MSV1_0_LANMAN_SESSION_KEY_LENGTH, UCHAR] LogonServer*: UNICODE_STRING UserParameters*: UNICODE_STRING + PMSV1_0_LM20_LOGON_PROFILE* = ptr TMSV1_0_LM20_LOGON_PROFILE -const - MSV1_0_OWF_PASSWORD_LENGTH* = 16 + +const MSV1_0_OWF_PASSWORD_LENGTH* = 16 type MSV1_0_SUPPLEMENTAL_CREDENTIAL* {.pure.} = object Version*: ULONG Flags*: ULONG LmPassword*: array[MSV1_0_OWF_PASSWORD_LENGTH, UCHAR] NtPassword*: array[MSV1_0_OWF_PASSWORD_LENGTH, UCHAR] + PMSV1_0_SUPPLEMENTAL_CREDENTIAL* = ptr MSV1_0_SUPPLEMENTAL_CREDENTIAL -const - MSV1_0_NTLM3_RESPONSE_LENGTH* = 16 + +const MSV1_0_NTLM3_RESPONSE_LENGTH* = 16 type MSV1_0_NTLM3_RESPONSE* {.pure.} = object Response*: array[MSV1_0_NTLM3_RESPONSE_LENGTH, UCHAR] @@ -417,10 +471,12 @@ ChallengeFromClient*: array[MSV1_0_CHALLENGE_LENGTH, UCHAR] AvPairsOff*: ULONG Buffer*: array[1, UCHAR] + PMSV1_0_NTLM3_RESPONSE* = ptr MSV1_0_NTLM3_RESPONSE MSV1_0_AV_PAIR* {.pure.} = object AvId*: USHORT AvLen*: USHORT + PMSV1_0_AV_PAIR* = ptr MSV1_0_AV_PAIR MSV1_0_CHANGEPASSWORD_REQUEST* {.pure.} = object MessageType*: MSV1_0_PROTOCOL_MESSAGE_TYPE @@ -429,11 +485,13 @@ OldPassword*: UNICODE_STRING NewPassword*: UNICODE_STRING Impersonating*: BOOLEAN + PMSV1_0_CHANGEPASSWORD_REQUEST* = ptr MSV1_0_CHANGEPASSWORD_REQUEST MSV1_0_CHANGEPASSWORD_RESPONSE* {.pure.} = object MessageType*: MSV1_0_PROTOCOL_MESSAGE_TYPE PasswordInfoValid*: BOOLEAN DomainPasswordInfo*: DOMAIN_PASSWORD_INFORMATION + PMSV1_0_CHANGEPASSWORD_RESPONSE* = ptr MSV1_0_CHANGEPASSWORD_RESPONSE MSV1_0_PASSTHROUGH_REQUEST* {.pure.} = object MessageType*: MSV1_0_PROTOCOL_MESSAGE_TYPE @@ -442,43 +500,51 @@ DataLength*: ULONG LogonData*: PUCHAR Pad*: ULONG + PMSV1_0_PASSTHROUGH_REQUEST* = ptr MSV1_0_PASSTHROUGH_REQUEST MSV1_0_PASSTHROUGH_RESPONSE* {.pure.} = object MessageType*: MSV1_0_PROTOCOL_MESSAGE_TYPE Pad*: ULONG DataLength*: ULONG ValidationData*: PUCHAR + PMSV1_0_PASSTHROUGH_RESPONSE* = ptr MSV1_0_PASSTHROUGH_RESPONSE MSV1_0_SUBAUTH_REQUEST* {.pure.} = object MessageType*: MSV1_0_PROTOCOL_MESSAGE_TYPE SubAuthPackageId*: ULONG SubAuthInfoLength*: ULONG SubAuthSubmitBuffer*: PUCHAR + PMSV1_0_SUBAUTH_REQUEST* = ptr MSV1_0_SUBAUTH_REQUEST MSV1_0_SUBAUTH_RESPONSE* {.pure.} = object MessageType*: MSV1_0_PROTOCOL_MESSAGE_TYPE SubAuthInfoLength*: ULONG SubAuthReturnBuffer*: PUCHAR + PMSV1_0_SUBAUTH_RESPONSE* = ptr MSV1_0_SUBAUTH_RESPONSE KERB_INTERACTIVE_LOGON* {.pure.} = object MessageType*: KERB_LOGON_SUBMIT_TYPE LogonDomainName*: UNICODE_STRING UserName*: UNICODE_STRING Password*: UNICODE_STRING + PKERB_INTERACTIVE_LOGON* = ptr KERB_INTERACTIVE_LOGON KERB_INTERACTIVE_UNLOCK_LOGON* {.pure.} = object Logon*: KERB_INTERACTIVE_LOGON LogonId*: LUID + PKERB_INTERACTIVE_UNLOCK_LOGON* = ptr KERB_INTERACTIVE_UNLOCK_LOGON KERB_SMART_CARD_LOGON* {.pure.} = object MessageType*: KERB_LOGON_SUBMIT_TYPE Pin*: UNICODE_STRING CspDataLength*: ULONG CspData*: PUCHAR + PKERB_SMART_CARD_LOGON* = ptr KERB_SMART_CARD_LOGON KERB_SMART_CARD_UNLOCK_LOGON* {.pure.} = object Logon*: KERB_SMART_CARD_LOGON LogonId*: LUID + PKERB_SMART_CARD_UNLOCK_LOGON* = ptr KERB_SMART_CARD_UNLOCK_LOGON KERB_TICKET_LOGON* {.pure.} = object MessageType*: KERB_LOGON_SUBMIT_TYPE @@ -487,16 +553,19 @@ TicketGrantingTicketLength*: ULONG ServiceTicket*: PUCHAR TicketGrantingTicket*: PUCHAR + PKERB_TICKET_LOGON* = ptr KERB_TICKET_LOGON KERB_TICKET_UNLOCK_LOGON* {.pure.} = object Logon*: KERB_TICKET_LOGON LogonId*: LUID + PKERB_TICKET_UNLOCK_LOGON* = ptr KERB_TICKET_UNLOCK_LOGON KERB_S4U_LOGON* {.pure.} = object MessageType*: KERB_LOGON_SUBMIT_TYPE Flags*: ULONG ClientUpn*: UNICODE_STRING ClientRealm*: UNICODE_STRING + PKERB_S4U_LOGON* = ptr KERB_S4U_LOGON KERB_INTERACTIVE_PROFILE* {.pure.} = object MessageType*: KERB_PROFILE_BUFFER_TYPE @@ -515,24 +584,29 @@ HomeDirectoryDrive*: UNICODE_STRING LogonServer*: UNICODE_STRING UserFlags*: ULONG + PKERB_INTERACTIVE_PROFILE* = ptr KERB_INTERACTIVE_PROFILE KERB_SMART_CARD_PROFILE* {.pure.} = object Profile*: KERB_INTERACTIVE_PROFILE CertificateSize*: ULONG CertificateData*: PUCHAR + PKERB_SMART_CARD_PROFILE* = ptr KERB_SMART_CARD_PROFILE KERB_CRYPTO_KEY* {.pure.} = object KeyType*: LONG Length*: ULONG Value*: PUCHAR + PKERB_CRYPTO_KEY* = ptr KERB_CRYPTO_KEY KERB_TICKET_PROFILE* {.pure.} = object Profile*: KERB_INTERACTIVE_PROFILE SessionKey*: KERB_CRYPTO_KEY + PKERB_TICKET_PROFILE* = ptr KERB_TICKET_PROFILE KERB_QUERY_TKT_CACHE_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE LogonId*: LUID + PKERB_QUERY_TKT_CACHE_REQUEST* = ptr KERB_QUERY_TKT_CACHE_REQUEST KERB_TICKET_CACHE_INFO* {.pure.} = object ServerName*: UNICODE_STRING @@ -542,6 +616,7 @@ RenewTime*: LARGE_INTEGER EncryptionType*: LONG TicketFlags*: ULONG + PKERB_TICKET_CACHE_INFO* = ptr KERB_TICKET_CACHE_INFO KERB_TICKET_CACHE_INFO_EX* {.pure.} = object ClientName*: UNICODE_STRING @@ -553,6 +628,7 @@ RenewTime*: LARGE_INTEGER EncryptionType*: LONG TicketFlags*: ULONG + PKERB_TICKET_CACHE_INFO_EX* = ptr KERB_TICKET_CACHE_INFO_EX KERB_TICKET_CACHE_INFO_EX2* {.pure.} = object ClientName*: UNICODE_STRING @@ -565,44 +641,53 @@ EncryptionType*: LONG TicketFlags*: ULONG SessionKeyType*: ULONG + PKERB_TICKET_CACHE_INFO_EX2* = ptr KERB_TICKET_CACHE_INFO_EX2 KERB_QUERY_TKT_CACHE_RESPONSE* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE CountOfTickets*: ULONG Tickets*: array[ANYSIZE_ARRAY, KERB_TICKET_CACHE_INFO] + PKERB_QUERY_TKT_CACHE_RESPONSE* = ptr KERB_QUERY_TKT_CACHE_RESPONSE KERB_QUERY_TKT_CACHE_EX_RESPONSE* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE CountOfTickets*: ULONG Tickets*: array[ANYSIZE_ARRAY, KERB_TICKET_CACHE_INFO_EX] + PKERB_QUERY_TKT_CACHE_EX_RESPONSE* = ptr KERB_QUERY_TKT_CACHE_EX_RESPONSE KERB_QUERY_TKT_CACHE_EX2_RESPONSE* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE CountOfTickets*: ULONG Tickets*: array[ANYSIZE_ARRAY, KERB_TICKET_CACHE_INFO_EX2] + PKERB_QUERY_TKT_CACHE_EX2_RESPONSE* = ptr KERB_QUERY_TKT_CACHE_EX2_RESPONSE SecHandle* {.pure.} = object dwLower*: ULONG_PTR dwUpper*: ULONG_PTR + PSecHandle* = ptr SecHandle KERB_AUTH_DATA* {.pure.} = object Type*: ULONG Length*: ULONG Data*: PUCHAR + PKERB_AUTH_DATA* = ptr KERB_AUTH_DATA KERB_NET_ADDRESS* {.pure.} = object Family*: ULONG Length*: ULONG Address*: PCHAR + PKERB_NET_ADDRESS* = ptr KERB_NET_ADDRESS KERB_NET_ADDRESSES* {.pure.} = object Number*: ULONG Addresses*: array[ANYSIZE_ARRAY, KERB_NET_ADDRESS] + PKERB_NET_ADDRESSES* = ptr KERB_NET_ADDRESSES KERB_EXTERNAL_NAME* {.pure.} = object NameType*: SHORT NameCount*: USHORT Names*: array[ANYSIZE_ARRAY, UNICODE_STRING] + PKERB_EXTERNAL_NAME* = ptr KERB_EXTERNAL_NAME KERB_EXTERNAL_TICKET* {.pure.} = object ServiceName*: PKERB_EXTERNAL_NAME @@ -621,6 +706,7 @@ TimeSkew*: LARGE_INTEGER EncodedTicketSize*: ULONG EncodedTicket*: PUCHAR + PKERB_EXTERNAL_TICKET* = ptr KERB_EXTERNAL_TICKET KERB_RETRIEVE_TKT_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE @@ -630,21 +716,25 @@ CacheOptions*: ULONG EncryptionType*: LONG CredentialsHandle*: SecHandle + PKERB_RETRIEVE_TKT_REQUEST* = ptr KERB_RETRIEVE_TKT_REQUEST KERB_RETRIEVE_TKT_RESPONSE* {.pure.} = object Ticket*: KERB_EXTERNAL_TICKET + PKERB_RETRIEVE_TKT_RESPONSE* = ptr KERB_RETRIEVE_TKT_RESPONSE KERB_PURGE_TKT_CACHE_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE LogonId*: LUID ServerName*: UNICODE_STRING RealmName*: UNICODE_STRING + PKERB_PURGE_TKT_CACHE_REQUEST* = ptr KERB_PURGE_TKT_CACHE_REQUEST KERB_PURGE_TKT_CACHE_EX_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE LogonId*: LUID Flags*: ULONG TicketTemplate*: KERB_TICKET_CACHE_INFO_EX + PKERB_PURGE_TKT_CACHE_EX_REQUEST* = ptr KERB_PURGE_TKT_CACHE_EX_REQUEST KERB_CHANGEPASSWORD_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE @@ -653,6 +743,7 @@ OldPassword*: UNICODE_STRING NewPassword*: UNICODE_STRING Impersonating*: BOOLEAN + PKERB_CHANGEPASSWORD_REQUEST* = ptr KERB_CHANGEPASSWORD_REQUEST KERB_SETPASSWORD_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE @@ -662,6 +753,7 @@ DomainName*: UNICODE_STRING AccountName*: UNICODE_STRING Password*: UNICODE_STRING + PKERB_SETPASSWORD_REQUEST* = ptr KERB_SETPASSWORD_REQUEST KERB_SETPASSWORD_EX_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE @@ -676,6 +768,7 @@ Impersonating*: BOOLEAN KdcAddress*: UNICODE_STRING KdcAddressType*: ULONG + PKERB_SETPASSWORD_EX_REQUEST* = ptr KERB_SETPASSWORD_EX_REQUEST KERB_DECRYPT_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE @@ -688,21 +781,25 @@ InitialVectorSize*: ULONG InitialVector*: PUCHAR EncryptedData*: PUCHAR + PKERB_DECRYPT_REQUEST* = ptr KERB_DECRYPT_REQUEST KERB_DECRYPT_RESPONSE* {.pure.} = object DecryptedData*: array[ANYSIZE_ARRAY, UCHAR] + PKERB_DECRYPT_RESPONSE* = ptr KERB_DECRYPT_RESPONSE KERB_ADD_BINDING_CACHE_ENTRY_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE RealmName*: UNICODE_STRING KdcAddress*: UNICODE_STRING AddressType*: ULONG + PKERB_ADD_BINDING_CACHE_ENTRY_REQUEST* = ptr KERB_ADD_BINDING_CACHE_ENTRY_REQUEST KERB_REFRESH_SCCRED_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE CredentialBlob*: UNICODE_STRING LogonId*: LUID Flags*: ULONG + PKERB_REFRESH_SCCRED_REQUEST* = ptr KERB_REFRESH_SCCRED_REQUEST KERB_ADD_CREDENTIALS_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE @@ -711,22 +808,26 @@ Password*: UNICODE_STRING LogonId*: LUID Flags*: ULONG + PKERB_ADD_CREDENTIALS_REQUEST* = ptr KERB_ADD_CREDENTIALS_REQUEST KERB_TRANSFER_CRED_REQUEST* {.pure.} = object MessageType*: KERB_PROTOCOL_MESSAGE_TYPE OriginLogonId*: LUID DestinationLogonId*: LUID Flags*: ULONG + PKERB_TRANSFER_CRED_REQUEST* = ptr KERB_TRANSFER_CRED_REQUEST AUDIT_POLICY_INFORMATION* {.pure.} = object AuditSubCategoryGuid*: GUID AuditingInformation*: ULONG AuditCategoryGuid*: GUID + PAUDIT_POLICY_INFORMATION* = ptr AUDIT_POLICY_INFORMATION PCAUDIT_POLICY_INFORMATION* = ptr AUDIT_POLICY_INFORMATION POLICY_AUDIT_SID_ARRAY* {.pure.} = object UsersCount*: ULONG UserSidArray*: ptr PSID + PPOLICY_AUDIT_SID_ARRAY* = ptr POLICY_AUDIT_SID_ARRAY KERB_CERTIFICATE_LOGON* {.pure.} = object MessageType*: KERB_LOGON_SUBMIT_TYPE @@ -736,14 +837,17 @@ Flags*: ULONG CspDataLength*: ULONG CspData*: PUCHAR + PKERB_CERTIFICATE_LOGON* = ptr KERB_CERTIFICATE_LOGON KERB_CERTIFICATE_UNLOCK_LOGON* {.pure.} = object Logon*: KERB_CERTIFICATE_LOGON LogonId*: LUID + PKERB_CERTIFICATE_UNLOCK_LOGON* = ptr KERB_CERTIFICATE_UNLOCK_LOGON KERB_SMARTCARD_CSP_INFO_UNION1* {.pure, union.} = object ContextInformation*: PVOID SpaceHolderForWow64*: ULONG64 + KERB_SMARTCARD_CSP_INFO* {.pure.} = object dwCspInfoLen*: DWORD MessageType*: DWORD @@ -755,6 +859,7 @@ nContainerNameOffset*: ULONG nCSPNameOffset*: ULONG bBuffer*: TCHAR + PKERB_SMARTCARD_CSP_INFO* = ptr KERB_SMARTCARD_CSP_INFO CredHandle* = SecHandle PCredHandle* = PSecHandle @@ -772,6 +877,7 @@ cbMaxToken*: int32 Name*: ptr SEC_WCHAR Comment*: ptr SEC_WCHAR + PSecPkgInfoW* = ptr SecPkgInfoW SecPkgInfoA* {.pure.} = object fCapabilities*: int32 @@ -780,22 +886,26 @@ cbMaxToken*: int32 Name*: ptr SEC_CHAR Comment*: ptr SEC_CHAR + PSecPkgInfoA* = ptr SecPkgInfoA SecBuffer* {.pure.} = object cbBuffer*: int32 BufferType*: int32 pvBuffer*: pointer + PSecBuffer* = ptr SecBuffer SecBufferDesc* {.pure.} = object ulVersion*: int32 cBuffers*: int32 pBuffers*: PSecBuffer + PSecBufferDesc* = ptr SecBufferDesc SEC_NEGOTIATION_INFO* {.pure.} = object Size*: int32 NameLength*: int32 Name*: ptr SEC_WCHAR Reserved*: pointer + PSEC_NEGOTIATION_INFO* = ptr SEC_NEGOTIATION_INFO SEC_CHANNEL_BINDINGS* {.pure.} = object dwInitiatorAddrType*: int32 @@ -806,28 +916,34 @@ dwAcceptorOffset*: int32 cbApplicationDataLength*: int32 dwApplicationDataOffset*: int32 + PSEC_CHANNEL_BINDINGS* = ptr SEC_CHANNEL_BINDINGS SecPkgCredentials_NamesW* {.pure.} = object sUserName*: ptr SEC_WCHAR + PSecPkgCredentials_NamesW* = ptr SecPkgCredentials_NamesW SecPkgCredentials_NamesA* {.pure.} = object sUserName*: ptr SEC_CHAR + PSecPkgCredentials_NamesA* = ptr SecPkgCredentials_NamesA SecPkgCredentials_SSIProviderW* {.pure.} = object sProviderName*: ptr SEC_WCHAR ProviderInfoLength*: int32 ProviderInfo*: ptr char + PSecPkgCredentials_SSIProviderW* = ptr SecPkgCredentials_SSIProviderW SecPkgCredentials_SSIProviderA* {.pure.} = object sProviderName*: ptr SEC_CHAR ProviderInfoLength*: int32 ProviderInfo*: ptr char + PSecPkgCredentials_SSIProviderA* = ptr SecPkgCredentials_SSIProviderA SecPkgContext_Sizes* {.pure.} = object cbMaxToken*: int32 cbMaxSignature*: int32 cbBlockSize*: int32 cbSecurityTrailer*: int32 + PSecPkgContext_Sizes* = ptr SecPkgContext_Sizes SecPkgContext_StreamSizes* {.pure.} = object cbHeader*: int32 @@ -835,20 +951,25 @@ cbMaximumMessage*: int32 cBuffers*: int32 cbBlockSize*: int32 + PSecPkgContext_StreamSizes* = ptr SecPkgContext_StreamSizes SecPkgContext_NamesW* {.pure.} = object sUserName*: ptr SEC_WCHAR + PSecPkgContext_NamesW* = ptr SecPkgContext_NamesW SecPkgContext_NamesA* {.pure.} = object sUserName*: ptr SEC_CHAR + PSecPkgContext_NamesA* = ptr SecPkgContext_NamesA SecPkgContext_Lifespan* {.pure.} = object tsStart*: TimeStamp tsExpiry*: TimeStamp + PSecPkgContext_Lifespan* = ptr SecPkgContext_Lifespan SecPkgContext_DceInfo* {.pure.} = object AuthzSvc*: int32 pPac*: pointer + PSecPkgContext_DceInfo* = ptr SecPkgContext_DceInfo SecPkgContext_KeyInfoA* {.pure.} = object sSignatureAlgorithmName*: ptr SEC_CHAR @@ -856,6 +977,7 @@ KeySize*: int32 SignatureAlgorithm*: int32 EncryptAlgorithm*: int32 + PSecPkgContext_KeyInfoA* = ptr SecPkgContext_KeyInfoA SecPkgContext_KeyInfoW* {.pure.} = object sSignatureAlgorithmName*: ptr SEC_WCHAR @@ -863,109 +985,202 @@ KeySize*: int32 SignatureAlgorithm*: int32 EncryptAlgorithm*: int32 + PSecPkgContext_KeyInfoW* = ptr SecPkgContext_KeyInfoW SecPkgContext_AuthorityA* {.pure.} = object sAuthorityName*: ptr SEC_CHAR + PSecPkgContext_AuthorityA* = ptr SecPkgContext_AuthorityA SecPkgContext_AuthorityW* {.pure.} = object sAuthorityName*: ptr SEC_WCHAR + PSecPkgContext_AuthorityW* = ptr SecPkgContext_AuthorityW SecPkgContext_ProtoInfoA* {.pure.} = object sProtocolName*: ptr SEC_CHAR majorVersion*: int32 minorVersion*: int32 + PSecPkgContext_ProtoInfoA* = ptr SecPkgContext_ProtoInfoA SecPkgContext_ProtoInfoW* {.pure.} = object sProtocolName*: ptr SEC_WCHAR majorVersion*: int32 minorVersion*: int32 + PSecPkgContext_ProtoInfoW* = ptr SecPkgContext_ProtoInfoW SecPkgContext_PasswordExpiry* {.pure.} = object tsPasswordExpires*: TimeStamp + PSecPkgContext_PasswordExpiry* = ptr SecPkgContext_PasswordExpiry SecPkgContext_LogoffTime* {.pure.} = object tsLogoffTime*: TimeStamp + PSecPkgContext_LogoffTime* = ptr SecPkgContext_LogoffTime SecPkgContext_SessionKey* {.pure.} = object SessionKeyLength*: int32 SessionKey*: ptr uint8 + PSecPkgContext_SessionKey* = ptr SecPkgContext_SessionKey SecPkgContext_PackageInfoW* {.pure.} = object PackageInfo*: PSecPkgInfoW + PSecPkgContext_PackageInfoW* = ptr SecPkgContext_PackageInfoW SecPkgContext_PackageInfoA* {.pure.} = object PackageInfo*: PSecPkgInfoA + PSecPkgContext_PackageInfoA* = ptr SecPkgContext_PackageInfoA SecPkgContext_UserFlags* {.pure.} = object UserFlags*: int32 + PSecPkgContext_UserFlags* = ptr SecPkgContext_UserFlags SecPkgContext_Flags* {.pure.} = object Flags*: int32 + PSecPkgContext_Flags* = ptr SecPkgContext_Flags SecPkgContext_NegotiationInfoA* {.pure.} = object PackageInfo*: PSecPkgInfoA NegotiationState*: int32 + PSecPkgContext_NegotiationInfoA* = ptr SecPkgContext_NegotiationInfoA SecPkgContext_NegotiationInfoW* {.pure.} = object PackageInfo*: PSecPkgInfoW NegotiationState*: int32 + PSecPkgContext_NegotiationInfoW* = ptr SecPkgContext_NegotiationInfoW SecPkgContext_NativeNamesW* {.pure.} = object sClientName*: ptr SEC_WCHAR sServerName*: ptr SEC_WCHAR + PSecPkgContext_NativeNamesW* = ptr SecPkgContext_NativeNamesW SecPkgContext_NativeNamesA* {.pure.} = object sClientName*: ptr SEC_CHAR sServerName*: ptr SEC_CHAR + PSecPkgContext_NativeNamesA* = ptr SecPkgContext_NativeNamesA SecPkgContext_CredentialNameW* {.pure.} = object CredentialType*: int32 sCredentialName*: ptr SEC_WCHAR + PSecPkgContext_CredentialNameW* = ptr SecPkgContext_CredentialNameW SecPkgContext_CredentialNameA* {.pure.} = object CredentialType*: int32 sCredentialName*: ptr SEC_CHAR + PSecPkgContext_CredentialNameA* = ptr SecPkgContext_CredentialNameA SecPkgContext_AccessToken* {.pure.} = object AccessToken*: pointer + PSecPkgContext_AccessToken* = ptr SecPkgContext_AccessToken SecPkgContext_TargetInformation* {.pure.} = object MarshalledTargetInfoLength*: int32 MarshalledTargetInfo*: ptr uint8 + PSecPkgContext_TargetInformation* = ptr SecPkgContext_TargetInformation SecPkgContext_AuthzID* {.pure.} = object AuthzIDLength*: int32 AuthzID*: ptr char + PSecPkgContext_AuthzID* = ptr SecPkgContext_AuthzID SecPkgContext_Target* {.pure.} = object TargetLength*: int32 Target*: ptr char + PSecPkgContext_Target* = ptr SecPkgContext_Target - ENUMERATE_SECURITY_PACKAGES_FN_W* = proc (P1: ptr int32, P2: ptr PSecPkgInfoW): SECURITY_STATUS {.stdcall.} - QUERY_CREDENTIALS_ATTRIBUTES_FN_W* = proc (P1: PCredHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} - SEC_GET_KEY_FN* = proc (Arg: pointer, Principal: pointer, KeyVer: int32, Key: ptr pointer, Status: ptr SECURITY_STATUS): void {.stdcall.} - ACQUIRE_CREDENTIALS_HANDLE_FN_W* = proc (P1: ptr SEC_WCHAR, P2: ptr SEC_WCHAR, P3: int32, P4: pointer, P5: pointer, P6: SEC_GET_KEY_FN, P7: pointer, P8: PCredHandle, P9: PTimeStamp): SECURITY_STATUS {.stdcall.} - FREE_CREDENTIALS_HANDLE_FN* = proc (P1: PCredHandle): SECURITY_STATUS {.stdcall.} - INITIALIZE_SECURITY_CONTEXT_FN_W* = proc (P1: PCredHandle, P2: PCtxtHandle, P3: ptr SEC_WCHAR, P4: int32, P5: int32, P6: int32, P7: PSecBufferDesc, P8: int32, P9: PCtxtHandle, P10: PSecBufferDesc, P11: ptr int32, P12: PTimeStamp): SECURITY_STATUS {.stdcall.} - ACCEPT_SECURITY_CONTEXT_FN* = proc (P1: PCredHandle, P2: PCtxtHandle, P3: PSecBufferDesc, P4: int32, P5: int32, P6: PCtxtHandle, P7: PSecBufferDesc, P8: ptr int32, P9: PTimeStamp): SECURITY_STATUS {.stdcall.} - COMPLETE_AUTH_TOKEN_FN* = proc (P1: PCtxtHandle, P2: PSecBufferDesc): SECURITY_STATUS {.stdcall.} - DELETE_SECURITY_CONTEXT_FN* = proc (P1: PCtxtHandle): SECURITY_STATUS {.stdcall.} - APPLY_CONTROL_TOKEN_FN* = proc (P1: PCtxtHandle, P2: PSecBufferDesc): SECURITY_STATUS {.stdcall.} - QUERY_CONTEXT_ATTRIBUTES_FN_W* = proc (P1: PCtxtHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} - IMPERSONATE_SECURITY_CONTEXT_FN* = proc (P1: PCtxtHandle): SECURITY_STATUS {.stdcall.} - REVERT_SECURITY_CONTEXT_FN* = proc (P1: PCtxtHandle): SECURITY_STATUS {.stdcall.} - MAKE_SIGNATURE_FN* = proc (P1: PCtxtHandle, P2: int32, P3: PSecBufferDesc, P4: int32): SECURITY_STATUS {.stdcall.} - VERIFY_SIGNATURE_FN* = proc (P1: PCtxtHandle, P2: PSecBufferDesc, P3: int32, P4: ptr int32): SECURITY_STATUS {.stdcall.} - FREE_CONTEXT_BUFFER_FN* = proc (P1: pointer): SECURITY_STATUS {.stdcall.} - QUERY_SECURITY_PACKAGE_INFO_FN_W* = proc (P1: ptr SEC_WCHAR, P2: ptr PSecPkgInfoW): SECURITY_STATUS {.stdcall.} - EXPORT_SECURITY_CONTEXT_FN* = proc (P1: PCtxtHandle, P2: ULONG, P3: PSecBuffer, P4: ptr pointer): SECURITY_STATUS {.stdcall.} - IMPORT_SECURITY_CONTEXT_FN_W* = proc (P1: ptr SEC_WCHAR, P2: PSecBuffer, P3: pointer, P4: PCtxtHandle): SECURITY_STATUS {.stdcall.} - ADD_CREDENTIALS_FN_W* = proc (P1: PCredHandle, P2: ptr SEC_WCHAR, P3: ptr SEC_WCHAR, P4: int32, P5: pointer, P6: SEC_GET_KEY_FN, P7: pointer, P8: PTimeStamp): SECURITY_STATUS {.stdcall.} - QUERY_SECURITY_CONTEXT_TOKEN_FN* = proc (P1: PCtxtHandle, P2: ptr HANDLE): SECURITY_STATUS {.stdcall.} - ENCRYPT_MESSAGE_FN* = proc (P1: PCtxtHandle, P2: int32, P3: PSecBufferDesc, P4: int32): SECURITY_STATUS {.stdcall.} - DECRYPT_MESSAGE_FN* = proc (P1: PCtxtHandle, P2: PSecBufferDesc, P3: int32, P4: ptr int32): SECURITY_STATUS {.stdcall.} - SET_CONTEXT_ATTRIBUTES_FN_W* = proc (P1: PCtxtHandle, P2: int32, P3: pointer, P4: int32): SECURITY_STATUS {.stdcall.} - SET_CREDENTIALS_ATTRIBUTES_FN_W* = proc (P1: PCredHandle, P2: int32, P3: pointer, P4: int32): SECURITY_STATUS {.stdcall.} + ENUMERATE_SECURITY_PACKAGES_FN_W* = + proc(P1: ptr int32, P2: ptr PSecPkgInfoW): SECURITY_STATUS {.stdcall.} + QUERY_CREDENTIALS_ATTRIBUTES_FN_W* = + proc(P1: PCredHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} + SEC_GET_KEY_FN* = proc( + Arg: pointer, + Principal: pointer, + KeyVer: int32, + Key: ptr pointer, + Status: ptr SECURITY_STATUS, + ): void {.stdcall.} + ACQUIRE_CREDENTIALS_HANDLE_FN_W* = proc( + P1: ptr SEC_WCHAR, + P2: ptr SEC_WCHAR, + P3: int32, + P4: pointer, + P5: pointer, + P6: SEC_GET_KEY_FN, + P7: pointer, + P8: PCredHandle, + P9: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + FREE_CREDENTIALS_HANDLE_FN* = proc(P1: PCredHandle): SECURITY_STATUS {.stdcall.} + INITIALIZE_SECURITY_CONTEXT_FN_W* = proc( + P1: PCredHandle, + P2: PCtxtHandle, + P3: ptr SEC_WCHAR, + P4: int32, + P5: int32, + P6: int32, + P7: PSecBufferDesc, + P8: int32, + P9: PCtxtHandle, + P10: PSecBufferDesc, + P11: ptr int32, + P12: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + ACCEPT_SECURITY_CONTEXT_FN* = proc( + P1: PCredHandle, + P2: PCtxtHandle, + P3: PSecBufferDesc, + P4: int32, + P5: int32, + P6: PCtxtHandle, + P7: PSecBufferDesc, + P8: ptr int32, + P9: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + COMPLETE_AUTH_TOKEN_FN* = + proc(P1: PCtxtHandle, P2: PSecBufferDesc): SECURITY_STATUS {.stdcall.} + DELETE_SECURITY_CONTEXT_FN* = proc(P1: PCtxtHandle): SECURITY_STATUS {.stdcall.} + APPLY_CONTROL_TOKEN_FN* = + proc(P1: PCtxtHandle, P2: PSecBufferDesc): SECURITY_STATUS {.stdcall.} + QUERY_CONTEXT_ATTRIBUTES_FN_W* = + proc(P1: PCtxtHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} + IMPERSONATE_SECURITY_CONTEXT_FN* = proc(P1: PCtxtHandle): SECURITY_STATUS {.stdcall.} + REVERT_SECURITY_CONTEXT_FN* = proc(P1: PCtxtHandle): SECURITY_STATUS {.stdcall.} + MAKE_SIGNATURE_FN* = proc( + P1: PCtxtHandle, P2: int32, P3: PSecBufferDesc, P4: int32 + ): SECURITY_STATUS {.stdcall.} + VERIFY_SIGNATURE_FN* = proc( + P1: PCtxtHandle, P2: PSecBufferDesc, P3: int32, P4: ptr int32 + ): SECURITY_STATUS {.stdcall.} + FREE_CONTEXT_BUFFER_FN* = proc(P1: pointer): SECURITY_STATUS {.stdcall.} + QUERY_SECURITY_PACKAGE_INFO_FN_W* = + proc(P1: ptr SEC_WCHAR, P2: ptr PSecPkgInfoW): SECURITY_STATUS {.stdcall.} + EXPORT_SECURITY_CONTEXT_FN* = proc( + P1: PCtxtHandle, P2: ULONG, P3: PSecBuffer, P4: ptr pointer + ): SECURITY_STATUS {.stdcall.} + IMPORT_SECURITY_CONTEXT_FN_W* = proc( + P1: ptr SEC_WCHAR, P2: PSecBuffer, P3: pointer, P4: PCtxtHandle + ): SECURITY_STATUS {.stdcall.} + ADD_CREDENTIALS_FN_W* = proc( + P1: PCredHandle, + P2: ptr SEC_WCHAR, + P3: ptr SEC_WCHAR, + P4: int32, + P5: pointer, + P6: SEC_GET_KEY_FN, + P7: pointer, + P8: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + QUERY_SECURITY_CONTEXT_TOKEN_FN* = + proc(P1: PCtxtHandle, P2: ptr HANDLE): SECURITY_STATUS {.stdcall.} + ENCRYPT_MESSAGE_FN* = proc( + P1: PCtxtHandle, P2: int32, P3: PSecBufferDesc, P4: int32 + ): SECURITY_STATUS {.stdcall.} + DECRYPT_MESSAGE_FN* = proc( + P1: PCtxtHandle, P2: PSecBufferDesc, P3: int32, P4: ptr int32 + ): SECURITY_STATUS {.stdcall.} + SET_CONTEXT_ATTRIBUTES_FN_W* = proc( + P1: PCtxtHandle, P2: int32, P3: pointer, P4: int32 + ): SECURITY_STATUS {.stdcall.} + SET_CREDENTIALS_ATTRIBUTES_FN_W* = proc( + P1: PCredHandle, P2: int32, P3: pointer, P4: int32 + ): SECURITY_STATUS {.stdcall.} SecurityFunctionTableW* {.pure.} = object dwVersion*: int32 EnumerateSecurityPackagesW*: ENUMERATE_SECURITY_PACKAGES_FN_W @@ -996,17 +1211,60 @@ DecryptMessage*: DECRYPT_MESSAGE_FN SetContextAttributesW*: SET_CONTEXT_ATTRIBUTES_FN_W SetCredentialsAttributesW*: SET_CREDENTIALS_ATTRIBUTES_FN_W + PSecurityFunctionTableW* = ptr SecurityFunctionTableW - ENUMERATE_SECURITY_PACKAGES_FN_A* = proc (P1: ptr int32, P2: ptr PSecPkgInfoA): SECURITY_STATUS {.stdcall.} - QUERY_CREDENTIALS_ATTRIBUTES_FN_A* = proc (P1: PCredHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} - ACQUIRE_CREDENTIALS_HANDLE_FN_A* = proc (P1: ptr SEC_CHAR, P2: ptr SEC_CHAR, P3: int32, P4: pointer, P5: pointer, P6: SEC_GET_KEY_FN, P7: pointer, P8: PCredHandle, P9: PTimeStamp): SECURITY_STATUS {.stdcall.} - INITIALIZE_SECURITY_CONTEXT_FN_A* = proc (P1: PCredHandle, P2: PCtxtHandle, P3: ptr SEC_CHAR, P4: int32, P5: int32, P6: int32, P7: PSecBufferDesc, P8: int32, P9: PCtxtHandle, P10: PSecBufferDesc, P11: ptr int32, P12: PTimeStamp): SECURITY_STATUS {.stdcall.} - QUERY_CONTEXT_ATTRIBUTES_FN_A* = proc (P1: PCtxtHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} - QUERY_SECURITY_PACKAGE_INFO_FN_A* = proc (P1: ptr SEC_CHAR, P2: ptr PSecPkgInfoA): SECURITY_STATUS {.stdcall.} - IMPORT_SECURITY_CONTEXT_FN_A* = proc (P1: ptr SEC_CHAR, P2: PSecBuffer, P3: pointer, P4: PCtxtHandle): SECURITY_STATUS {.stdcall.} - ADD_CREDENTIALS_FN_A* = proc (P1: PCredHandle, P2: ptr SEC_CHAR, P3: ptr SEC_CHAR, P4: int32, P5: pointer, P6: SEC_GET_KEY_FN, P7: pointer, P8: PTimeStamp): SECURITY_STATUS {.stdcall.} - SET_CONTEXT_ATTRIBUTES_FN_A* = proc (P1: PCtxtHandle, P2: int32, P3: pointer, P4: int32): SECURITY_STATUS {.stdcall.} - SET_CREDENTIALS_ATTRIBUTES_FN_A* = proc (P1: PCredHandle, P2: int32, P3: pointer, P4: int32): SECURITY_STATUS {.stdcall.} + ENUMERATE_SECURITY_PACKAGES_FN_A* = + proc(P1: ptr int32, P2: ptr PSecPkgInfoA): SECURITY_STATUS {.stdcall.} + QUERY_CREDENTIALS_ATTRIBUTES_FN_A* = + proc(P1: PCredHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} + ACQUIRE_CREDENTIALS_HANDLE_FN_A* = proc( + P1: ptr SEC_CHAR, + P2: ptr SEC_CHAR, + P3: int32, + P4: pointer, + P5: pointer, + P6: SEC_GET_KEY_FN, + P7: pointer, + P8: PCredHandle, + P9: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + INITIALIZE_SECURITY_CONTEXT_FN_A* = proc( + P1: PCredHandle, + P2: PCtxtHandle, + P3: ptr SEC_CHAR, + P4: int32, + P5: int32, + P6: int32, + P7: PSecBufferDesc, + P8: int32, + P9: PCtxtHandle, + P10: PSecBufferDesc, + P11: ptr int32, + P12: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + QUERY_CONTEXT_ATTRIBUTES_FN_A* = + proc(P1: PCtxtHandle, P2: int32, P3: pointer): SECURITY_STATUS {.stdcall.} + QUERY_SECURITY_PACKAGE_INFO_FN_A* = + proc(P1: ptr SEC_CHAR, P2: ptr PSecPkgInfoA): SECURITY_STATUS {.stdcall.} + IMPORT_SECURITY_CONTEXT_FN_A* = proc( + P1: ptr SEC_CHAR, P2: PSecBuffer, P3: pointer, P4: PCtxtHandle + ): SECURITY_STATUS {.stdcall.} + ADD_CREDENTIALS_FN_A* = proc( + P1: PCredHandle, + P2: ptr SEC_CHAR, + P3: ptr SEC_CHAR, + P4: int32, + P5: pointer, + P6: SEC_GET_KEY_FN, + P7: pointer, + P8: PTimeStamp, + ): SECURITY_STATUS {.stdcall.} + SET_CONTEXT_ATTRIBUTES_FN_A* = proc( + P1: PCtxtHandle, P2: int32, P3: pointer, P4: int32 + ): SECURITY_STATUS {.stdcall.} + SET_CREDENTIALS_ATTRIBUTES_FN_A* = proc( + P1: PCredHandle, P2: int32, P3: pointer, P4: int32 + ): SECURITY_STATUS {.stdcall.} SecurityFunctionTableA* {.pure.} = object dwVersion*: int32 EnumerateSecurityPackagesA*: ENUMERATE_SECURITY_PACKAGES_FN_A @@ -1037,6 +1295,7 @@ DecryptMessage*: DECRYPT_MESSAGE_FN SetContextAttributesA*: SET_CONTEXT_ATTRIBUTES_FN_A SetCredentialsAttributesA*: SET_CREDENTIALS_ATTRIBUTES_FN_A + PSecurityFunctionTableA* = ptr SecurityFunctionTableA SEC_WINNT_AUTH_IDENTITY_W* {.pure.} = object User*: ptr uint16 @@ -1046,6 +1305,7 @@ Password*: ptr uint16 PasswordLength*: int32 Flags*: int32 + PSEC_WINNT_AUTH_IDENTITY_W* = ptr SEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY_A* {.pure.} = object User*: ptr uint8 @@ -1055,6 +1315,7 @@ Password*: ptr uint8 PasswordLength*: int32 Flags*: int32 + PSEC_WINNT_AUTH_IDENTITY_A* = ptr SEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY_EXW* {.pure.} = object Version*: int32 @@ -1068,6 +1329,7 @@ Flags*: int32 PackageList*: ptr uint16 PackageListLength*: int32 + PSEC_WINNT_AUTH_IDENTITY_EXW* = ptr SEC_WINNT_AUTH_IDENTITY_EXW SEC_WINNT_AUTH_IDENTITY_EXA* {.pure.} = object Version*: int32 @@ -1081,6 +1343,7 @@ Flags*: int32 PackageList*: ptr uint8 PackageListLength*: int32 + PSEC_WINNT_AUTH_IDENTITY_EXA* = ptr SEC_WINNT_AUTH_IDENTITY_EXA SECURITY_PACKAGE_OPTIONS* {.pure.} = object Size*: int32 @@ -1088,6 +1351,7 @@ Flags*: int32 SignatureSize*: int32 Signature*: pointer + PSECURITY_PACKAGE_OPTIONS* = ptr SECURITY_PACKAGE_OPTIONS CREDUIWIN_MARSHALED_CONTEXT* {.pure.} = object StructureType*: GUID @@ -1096,8 +1360,10 @@ MarshaledDataType*: GUID MarshaledDataOffset*: ULONG MarshaledDataLength*: USHORT + PCREDUIWIN_MARSHALED_CONTEXT* = ptr CREDUIWIN_MARSHALED_CONTEXT PSECURITY_INTEGER* = ptr LARGE_INTEGER + const NTLMSP_NAME_A* = "NTLM" NTLMSP_NAME* = "NTLM" @@ -1161,7 +1427,9 @@ POLICY_AUDIT_EVENT_SUCCESS* = 0x00000001 POLICY_AUDIT_EVENT_FAILURE* = 0x00000002 POLICY_AUDIT_EVENT_NONE* = 0x00000004 - POLICY_AUDIT_EVENT_MASK* = POLICY_AUDIT_EVENT_SUCCESS or POLICY_AUDIT_EVENT_FAILURE or POLICY_AUDIT_EVENT_UNCHANGED or POLICY_AUDIT_EVENT_NONE + POLICY_AUDIT_EVENT_MASK* = + POLICY_AUDIT_EVENT_SUCCESS or POLICY_AUDIT_EVENT_FAILURE or + POLICY_AUDIT_EVENT_UNCHANGED or POLICY_AUDIT_EVENT_NONE POLICY_VIEW_LOCAL_INFORMATION* = 0x00000001 POLICY_VIEW_AUDIT_INFORMATION* = 0x00000002 POLICY_GET_PRIVATE_INFORMATION* = 0x00000004 @@ -1175,10 +1443,21 @@ POLICY_SERVER_ADMIN* = 0x00000400 POLICY_LOOKUP_NAMES* = 0x00000800 POLICY_NOTIFICATION* = 0x00001000 - POLICY_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or POLICY_VIEW_LOCAL_INFORMATION or POLICY_VIEW_AUDIT_INFORMATION or POLICY_GET_PRIVATE_INFORMATION or POLICY_TRUST_ADMIN or POLICY_CREATE_ACCOUNT or POLICY_CREATE_SECRET or POLICY_CREATE_PRIVILEGE or POLICY_SET_DEFAULT_QUOTA_LIMITS or POLICY_SET_AUDIT_REQUIREMENTS or POLICY_AUDIT_LOG_ADMIN or POLICY_SERVER_ADMIN or POLICY_LOOKUP_NAMES - POLICY_READ* = STANDARD_RIGHTS_READ or POLICY_VIEW_AUDIT_INFORMATION or POLICY_GET_PRIVATE_INFORMATION - POLICY_WRITE* = STANDARD_RIGHTS_WRITE or POLICY_TRUST_ADMIN or POLICY_CREATE_ACCOUNT or POLICY_CREATE_SECRET or POLICY_CREATE_PRIVILEGE or POLICY_SET_DEFAULT_QUOTA_LIMITS or POLICY_SET_AUDIT_REQUIREMENTS or POLICY_AUDIT_LOG_ADMIN or POLICY_SERVER_ADMIN - POLICY_EXECUTE* = STANDARD_RIGHTS_EXECUTE or POLICY_VIEW_LOCAL_INFORMATION or POLICY_LOOKUP_NAMES + POLICY_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or POLICY_VIEW_LOCAL_INFORMATION or + POLICY_VIEW_AUDIT_INFORMATION or POLICY_GET_PRIVATE_INFORMATION or POLICY_TRUST_ADMIN or + POLICY_CREATE_ACCOUNT or POLICY_CREATE_SECRET or POLICY_CREATE_PRIVILEGE or + POLICY_SET_DEFAULT_QUOTA_LIMITS or POLICY_SET_AUDIT_REQUIREMENTS or + POLICY_AUDIT_LOG_ADMIN or POLICY_SERVER_ADMIN or POLICY_LOOKUP_NAMES + POLICY_READ* = + STANDARD_RIGHTS_READ or POLICY_VIEW_AUDIT_INFORMATION or + POLICY_GET_PRIVATE_INFORMATION + POLICY_WRITE* = + STANDARD_RIGHTS_WRITE or POLICY_TRUST_ADMIN or POLICY_CREATE_ACCOUNT or + POLICY_CREATE_SECRET or POLICY_CREATE_PRIVILEGE or POLICY_SET_DEFAULT_QUOTA_LIMITS or + POLICY_SET_AUDIT_REQUIREMENTS or POLICY_AUDIT_LOG_ADMIN or POLICY_SERVER_ADMIN + POLICY_EXECUTE* = + STANDARD_RIGHTS_EXECUTE or POLICY_VIEW_LOCAL_INFORMATION or POLICY_LOOKUP_NAMES policyServerRoleBackup* = 2 policyServerRolePrimary* = 3 policyAuditLogInformation* = 1 @@ -1249,7 +1528,7 @@ LSA_SID_DISABLED_CONFLICT* = 0x00000002 LSA_NB_DISABLED_ADMIN* = 0x00000004 LSA_NB_DISABLED_CONFLICT* = 0x00000008 - MAX_FOREST_TRUST_BINARY_DATA_SIZE* = 128*1024 + MAX_FOREST_TRUST_BINARY_DATA_SIZE* = 128 * 1024 MAX_RECORDS_IN_FOREST_TRUST_INFO* = 4000 collisionTdo* = 0 collisionXref* = 1 @@ -1416,7 +1695,9 @@ AUTH_REQ_PREAUTH_REQUIRED* = 0x00000200 AUTH_REQ_TRANSITIVE_TRUST* = 0x00000400 AUTH_REQ_ALLOW_S4U_DELEGATE* = 0x00000800 - AUTH_REQ_PER_USER_FLAGS* = AUTH_REQ_ALLOW_FORWARDABLE or AUTH_REQ_ALLOW_PROXIABLE or AUTH_REQ_ALLOW_POSTDATE or AUTH_REQ_ALLOW_RENEWABLE or AUTH_REQ_ALLOW_VALIDATE + AUTH_REQ_PER_USER_FLAGS* = + AUTH_REQ_ALLOW_FORWARDABLE or AUTH_REQ_ALLOW_PROXIABLE or AUTH_REQ_ALLOW_POSTDATE or + AUTH_REQ_ALLOW_RENEWABLE or AUTH_REQ_ALLOW_VALIDATE KERB_TICKET_FLAGS_reserved* = 0x80000000'i32 KERB_TICKET_FLAGS_forwardable* = 0x40000000 KERB_TICKET_FLAGS_forwarded* = 0x20000000 @@ -1718,138 +1999,738 @@ MSV1_0_NTLM3_INPUT_LENGTH* = 0x00000020 MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH* = 0x0000002C MICROSOFT_KERBEROS_NAME* = "Kerberos" - MSV1_0_PACKAGE_NAMEW_LENGTH* = (len(MSV1_0_PACKAGE_NAMEW)+1)-sizeof(WCHAR) + MSV1_0_PACKAGE_NAMEW_LENGTH* = (len(MSV1_0_PACKAGE_NAMEW) + 1) - sizeof(WCHAR) type - PSAM_PASSWORD_NOTIFICATION_ROUTINE* = proc (UserName: PUNICODE_STRING, RelativeId: ULONG, NewPassword: PUNICODE_STRING): NTSTATUS {.stdcall.} - PSAM_INIT_NOTIFICATION_ROUTINE* = proc (): BOOLEAN {.stdcall.} - PSAM_PASSWORD_FILTER_ROUTINE* = proc (AccountName: PUNICODE_STRING, FullName: PUNICODE_STRING, Password: PUNICODE_STRING, SetOperation: BOOLEAN): BOOLEAN {.stdcall.} -proc LsaRegisterLogonProcess*(LogonProcessName: PLSA_STRING, LsaHandle: PHANDLE, SecurityMode: PLSA_OPERATIONAL_MODE): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaLogonUser*(LsaHandle: HANDLE, OriginName: PLSA_STRING, LogonType: SECURITY_LOGON_TYPE, AuthenticationPackage: ULONG, AuthenticationInformation: PVOID, AuthenticationInformationLength: ULONG, LocalGroups: PTOKEN_GROUPS, SourceContext: PTOKEN_SOURCE, ProfileBuffer: ptr PVOID, ProfileBufferLength: PULONG, LogonId: PLUID, Token: PHANDLE, Quotas: PQUOTA_LIMITS, SubStatus: PNTSTATUS): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaLookupAuthenticationPackage*(LsaHandle: HANDLE, PackageName: PLSA_STRING, AuthenticationPackage: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaFreeReturnBuffer*(Buffer: PVOID): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaCallAuthenticationPackage*(LsaHandle: HANDLE, AuthenticationPackage: ULONG, ProtocolSubmitBuffer: PVOID, SubmitBufferLength: ULONG, ProtocolReturnBuffer: ptr PVOID, ReturnBufferLength: PULONG, ProtocolStatus: PNTSTATUS): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaDeregisterLogonProcess*(LsaHandle: HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaConnectUntrusted*(LsaHandle: PHANDLE): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaFreeMemory*(Buffer: PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaClose*(ObjectHandle: LSA_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaEnumerateLogonSessions*(LogonSessionCount: PULONG, LogonSessionList: ptr PLUID): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaGetLogonSessionData*(LogonId: PLUID, ppLogonSessionData: ptr PSECURITY_LOGON_SESSION_DATA): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaOpenPolicy*(SystemName: PLSA_UNICODE_STRING, ObjectAttributes: PLSA_OBJECT_ATTRIBUTES, DesiredAccess: ACCESS_MASK, PolicyHandle: PLSA_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaQueryInformationPolicy*(PolicyHandle: LSA_HANDLE, InformationClass: POLICY_INFORMATION_CLASS, Buffer: ptr PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaSetInformationPolicy*(PolicyHandle: LSA_HANDLE, InformationClass: POLICY_INFORMATION_CLASS, Buffer: PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaQueryDomainInformationPolicy*(PolicyHandle: LSA_HANDLE, InformationClass: POLICY_DOMAIN_INFORMATION_CLASS, Buffer: ptr PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaSetDomainInformationPolicy*(PolicyHandle: LSA_HANDLE, InformationClass: POLICY_DOMAIN_INFORMATION_CLASS, Buffer: PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaRegisterPolicyChangeNotification*(InformationClass: POLICY_NOTIFICATION_INFORMATION_CLASS, NotificationEventHandle: HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaUnregisterPolicyChangeNotification*(InformationClass: POLICY_NOTIFICATION_INFORMATION_CLASS, NotificationEventHandle: HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc LsaEnumerateTrustedDomains*(PolicyHandle: LSA_HANDLE, EnumerationContext: PLSA_ENUMERATION_HANDLE, Buffer: ptr PVOID, PreferedMaximumLength: ULONG, CountReturned: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaLookupNames*(PolicyHandle: LSA_HANDLE, Count: ULONG, Names: PLSA_UNICODE_STRING, ReferencedDomains: ptr PLSA_REFERENCED_DOMAIN_LIST, Sids: ptr PLSA_TRANSLATED_SID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaLookupNames2*(PolicyHandle: LSA_HANDLE, Flags: ULONG, Count: ULONG, Names: PLSA_UNICODE_STRING, ReferencedDomains: ptr PLSA_REFERENCED_DOMAIN_LIST, Sids: ptr PLSA_TRANSLATED_SID2): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaLookupSids*(PolicyHandle: LSA_HANDLE, Count: ULONG, Sids: ptr PSID, ReferencedDomains: ptr PLSA_REFERENCED_DOMAIN_LIST, Names: ptr PLSA_TRANSLATED_NAME): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaEnumerateAccountsWithUserRight*(PolicyHandle: LSA_HANDLE, UserRight: PLSA_UNICODE_STRING, Buffer: ptr PVOID, CountReturned: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaEnumerateAccountRights*(PolicyHandle: LSA_HANDLE, AccountSid: PSID, UserRights: ptr PLSA_UNICODE_STRING, CountOfRights: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaAddAccountRights*(PolicyHandle: LSA_HANDLE, AccountSid: PSID, UserRights: PLSA_UNICODE_STRING, CountOfRights: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaRemoveAccountRights*(PolicyHandle: LSA_HANDLE, AccountSid: PSID, AllRights: BOOLEAN, UserRights: PLSA_UNICODE_STRING, CountOfRights: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaOpenTrustedDomainByName*(PolicyHandle: LSA_HANDLE, TrustedDomainName: PLSA_UNICODE_STRING, DesiredAccess: ACCESS_MASK, TrustedDomainHandle: PLSA_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaQueryTrustedDomainInfo*(PolicyHandle: LSA_HANDLE, TrustedDomainSid: PSID, InformationClass: TRUSTED_INFORMATION_CLASS, Buffer: ptr PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaSetTrustedDomainInformation*(PolicyHandle: LSA_HANDLE, TrustedDomainSid: PSID, InformationClass: TRUSTED_INFORMATION_CLASS, Buffer: PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaDeleteTrustedDomain*(PolicyHandle: LSA_HANDLE, TrustedDomainSid: PSID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaQueryTrustedDomainInfoByName*(PolicyHandle: LSA_HANDLE, TrustedDomainName: PLSA_UNICODE_STRING, InformationClass: TRUSTED_INFORMATION_CLASS, Buffer: ptr PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaSetTrustedDomainInfoByName*(PolicyHandle: LSA_HANDLE, TrustedDomainName: PLSA_UNICODE_STRING, InformationClass: TRUSTED_INFORMATION_CLASS, Buffer: PVOID): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaEnumerateTrustedDomainsEx*(PolicyHandle: LSA_HANDLE, EnumerationContext: PLSA_ENUMERATION_HANDLE, Buffer: ptr PVOID, PreferedMaximumLength: ULONG, CountReturned: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaCreateTrustedDomainEx*(PolicyHandle: LSA_HANDLE, TrustedDomainInformation: PTRUSTED_DOMAIN_INFORMATION_EX, AuthenticationInformation: PTRUSTED_DOMAIN_AUTH_INFORMATION, DesiredAccess: ACCESS_MASK, TrustedDomainHandle: PLSA_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaQueryForestTrustInformation*(PolicyHandle: LSA_HANDLE, TrustedDomainName: PLSA_UNICODE_STRING, ForestTrustInfo: ptr PLSA_FOREST_TRUST_INFORMATION): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaSetForestTrustInformation*(PolicyHandle: LSA_HANDLE, TrustedDomainName: PLSA_UNICODE_STRING, ForestTrustInfo: PLSA_FOREST_TRUST_INFORMATION, CheckOnly: BOOLEAN, CollisionInfo: ptr PLSA_FOREST_TRUST_COLLISION_INFORMATION): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaStorePrivateData*(PolicyHandle: LSA_HANDLE, KeyName: PLSA_UNICODE_STRING, PrivateData: PLSA_UNICODE_STRING): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaRetrievePrivateData*(PolicyHandle: LSA_HANDLE, KeyName: PLSA_UNICODE_STRING, PrivateData: ptr PLSA_UNICODE_STRING): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LsaNtStatusToWinError*(Status: NTSTATUS): ULONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SystemFunction036*(RandomBuffer: PVOID, RandomBufferLength: ULONG): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SystemFunction040*(Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SystemFunction041*(Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditComputeEffectivePolicyBySid*(pSid: PSID, pSubCategoryGuids: ptr GUID, PolicyCount: ULONG, ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + PSAM_PASSWORD_NOTIFICATION_ROUTINE* = proc( + UserName: PUNICODE_STRING, RelativeId: ULONG, NewPassword: PUNICODE_STRING + ): NTSTATUS {.stdcall.} + PSAM_INIT_NOTIFICATION_ROUTINE* = proc(): BOOLEAN {.stdcall.} + PSAM_PASSWORD_FILTER_ROUTINE* = proc( + AccountName: PUNICODE_STRING, + FullName: PUNICODE_STRING, + Password: PUNICODE_STRING, + SetOperation: BOOLEAN, + ): BOOLEAN {.stdcall.} + +proc LsaRegisterLogonProcess*( + LogonProcessName: PLSA_STRING, LsaHandle: PHANDLE, SecurityMode: PLSA_OPERATIONAL_MODE +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaLogonUser*( + LsaHandle: HANDLE, + OriginName: PLSA_STRING, + LogonType: SECURITY_LOGON_TYPE, + AuthenticationPackage: ULONG, + AuthenticationInformation: PVOID, + AuthenticationInformationLength: ULONG, + LocalGroups: PTOKEN_GROUPS, + SourceContext: PTOKEN_SOURCE, + ProfileBuffer: ptr PVOID, + ProfileBufferLength: PULONG, + LogonId: PLUID, + Token: PHANDLE, + Quotas: PQUOTA_LIMITS, + SubStatus: PNTSTATUS, +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaLookupAuthenticationPackage*( + LsaHandle: HANDLE, PackageName: PLSA_STRING, AuthenticationPackage: PULONG +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaFreeReturnBuffer*( + Buffer: PVOID +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaCallAuthenticationPackage*( + LsaHandle: HANDLE, + AuthenticationPackage: ULONG, + ProtocolSubmitBuffer: PVOID, + SubmitBufferLength: ULONG, + ProtocolReturnBuffer: ptr PVOID, + ReturnBufferLength: PULONG, + ProtocolStatus: PNTSTATUS, +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaDeregisterLogonProcess*( + LsaHandle: HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaConnectUntrusted*( + LsaHandle: PHANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaFreeMemory*( + Buffer: PVOID +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaClose*( + ObjectHandle: LSA_HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaEnumerateLogonSessions*( + LogonSessionCount: PULONG, LogonSessionList: ptr PLUID +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaGetLogonSessionData*( + LogonId: PLUID, ppLogonSessionData: ptr PSECURITY_LOGON_SESSION_DATA +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaOpenPolicy*( + SystemName: PLSA_UNICODE_STRING, + ObjectAttributes: PLSA_OBJECT_ATTRIBUTES, + DesiredAccess: ACCESS_MASK, + PolicyHandle: PLSA_HANDLE, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaQueryInformationPolicy*( + PolicyHandle: LSA_HANDLE, + InformationClass: POLICY_INFORMATION_CLASS, + Buffer: ptr PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaSetInformationPolicy*( + PolicyHandle: LSA_HANDLE, InformationClass: POLICY_INFORMATION_CLASS, Buffer: PVOID +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaQueryDomainInformationPolicy*( + PolicyHandle: LSA_HANDLE, + InformationClass: POLICY_DOMAIN_INFORMATION_CLASS, + Buffer: ptr PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaSetDomainInformationPolicy*( + PolicyHandle: LSA_HANDLE, + InformationClass: POLICY_DOMAIN_INFORMATION_CLASS, + Buffer: PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaRegisterPolicyChangeNotification*( + InformationClass: POLICY_NOTIFICATION_INFORMATION_CLASS, + NotificationEventHandle: HANDLE, +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaUnregisterPolicyChangeNotification*( + InformationClass: POLICY_NOTIFICATION_INFORMATION_CLASS, + NotificationEventHandle: HANDLE, +): NTSTATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc LsaEnumerateTrustedDomains*( + PolicyHandle: LSA_HANDLE, + EnumerationContext: PLSA_ENUMERATION_HANDLE, + Buffer: ptr PVOID, + PreferedMaximumLength: ULONG, + CountReturned: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaLookupNames*( + PolicyHandle: LSA_HANDLE, + Count: ULONG, + Names: PLSA_UNICODE_STRING, + ReferencedDomains: ptr PLSA_REFERENCED_DOMAIN_LIST, + Sids: ptr PLSA_TRANSLATED_SID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaLookupNames2*( + PolicyHandle: LSA_HANDLE, + Flags: ULONG, + Count: ULONG, + Names: PLSA_UNICODE_STRING, + ReferencedDomains: ptr PLSA_REFERENCED_DOMAIN_LIST, + Sids: ptr PLSA_TRANSLATED_SID2, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaLookupSids*( + PolicyHandle: LSA_HANDLE, + Count: ULONG, + Sids: ptr PSID, + ReferencedDomains: ptr PLSA_REFERENCED_DOMAIN_LIST, + Names: ptr PLSA_TRANSLATED_NAME, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaEnumerateAccountsWithUserRight*( + PolicyHandle: LSA_HANDLE, + UserRight: PLSA_UNICODE_STRING, + Buffer: ptr PVOID, + CountReturned: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaEnumerateAccountRights*( + PolicyHandle: LSA_HANDLE, + AccountSid: PSID, + UserRights: ptr PLSA_UNICODE_STRING, + CountOfRights: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaAddAccountRights*( + PolicyHandle: LSA_HANDLE, + AccountSid: PSID, + UserRights: PLSA_UNICODE_STRING, + CountOfRights: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaRemoveAccountRights*( + PolicyHandle: LSA_HANDLE, + AccountSid: PSID, + AllRights: BOOLEAN, + UserRights: PLSA_UNICODE_STRING, + CountOfRights: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaOpenTrustedDomainByName*( + PolicyHandle: LSA_HANDLE, + TrustedDomainName: PLSA_UNICODE_STRING, + DesiredAccess: ACCESS_MASK, + TrustedDomainHandle: PLSA_HANDLE, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaQueryTrustedDomainInfo*( + PolicyHandle: LSA_HANDLE, + TrustedDomainSid: PSID, + InformationClass: TRUSTED_INFORMATION_CLASS, + Buffer: ptr PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaSetTrustedDomainInformation*( + PolicyHandle: LSA_HANDLE, + TrustedDomainSid: PSID, + InformationClass: TRUSTED_INFORMATION_CLASS, + Buffer: PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaDeleteTrustedDomain*( + PolicyHandle: LSA_HANDLE, TrustedDomainSid: PSID +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaQueryTrustedDomainInfoByName*( + PolicyHandle: LSA_HANDLE, + TrustedDomainName: PLSA_UNICODE_STRING, + InformationClass: TRUSTED_INFORMATION_CLASS, + Buffer: ptr PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaSetTrustedDomainInfoByName*( + PolicyHandle: LSA_HANDLE, + TrustedDomainName: PLSA_UNICODE_STRING, + InformationClass: TRUSTED_INFORMATION_CLASS, + Buffer: PVOID, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaEnumerateTrustedDomainsEx*( + PolicyHandle: LSA_HANDLE, + EnumerationContext: PLSA_ENUMERATION_HANDLE, + Buffer: ptr PVOID, + PreferedMaximumLength: ULONG, + CountReturned: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaCreateTrustedDomainEx*( + PolicyHandle: LSA_HANDLE, + TrustedDomainInformation: PTRUSTED_DOMAIN_INFORMATION_EX, + AuthenticationInformation: PTRUSTED_DOMAIN_AUTH_INFORMATION, + DesiredAccess: ACCESS_MASK, + TrustedDomainHandle: PLSA_HANDLE, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaQueryForestTrustInformation*( + PolicyHandle: LSA_HANDLE, + TrustedDomainName: PLSA_UNICODE_STRING, + ForestTrustInfo: ptr PLSA_FOREST_TRUST_INFORMATION, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaSetForestTrustInformation*( + PolicyHandle: LSA_HANDLE, + TrustedDomainName: PLSA_UNICODE_STRING, + ForestTrustInfo: PLSA_FOREST_TRUST_INFORMATION, + CheckOnly: BOOLEAN, + CollisionInfo: ptr PLSA_FOREST_TRUST_COLLISION_INFORMATION, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaStorePrivateData*( + PolicyHandle: LSA_HANDLE, + KeyName: PLSA_UNICODE_STRING, + PrivateData: PLSA_UNICODE_STRING, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaRetrievePrivateData*( + PolicyHandle: LSA_HANDLE, + KeyName: PLSA_UNICODE_STRING, + PrivateData: ptr PLSA_UNICODE_STRING, +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LsaNtStatusToWinError*( + Status: NTSTATUS +): ULONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SystemFunction036*( + RandomBuffer: PVOID, RandomBufferLength: ULONG +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SystemFunction040*( + Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SystemFunction041*( + Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditComputeEffectivePolicyBySid*( + pSid: PSID, + pSubCategoryGuids: ptr GUID, + PolicyCount: ULONG, + ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION, +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + proc AuditFree*(Buffer: PVOID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditSetSystemPolicy*(pAuditPolicy: PCAUDIT_POLICY_INFORMATION, PolicyCount: ULONG): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditQuerySystemPolicy*(pSubCategoryGuids: ptr GUID, PolicyCount: ULONG, ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditSetPerUserPolicy*(pSid: PSID, pAuditPolicy: PCAUDIT_POLICY_INFORMATION, PolicyCount: ULONG): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditQueryPerUserPolicy*(pSid: PSID, pSubCategoryGuids: ptr GUID, PolicyCount: ULONG, ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditComputeEffectivePolicyByToken*(hTokenHandle: HANDLE, pSubCategoryGuids: ptr GUID, PolicyCount: ULONG, ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditEnumerateCategories*(ppAuditCategoriesArray: ptr ptr GUID, pCountReturned: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditEnumeratePerUserPolicy*(ppAuditSidArray: ptr PPOLICY_AUDIT_SID_ARRAY): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditEnumerateSubCategories*(pAuditCategoryGuid: ptr GUID, bRetrieveAllSubCategories: BOOLEAN, ppAuditSubCategoriesArray: ptr ptr GUID, pCountReturned: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditLookupCategoryGuidFromCategoryId*(AuditCategoryId: POLICY_AUDIT_EVENT_TYPE, pAuditCategoryGuid: ptr GUID): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditQuerySecurity*(SecurityInformation: SECURITY_INFORMATION, ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditLookupSubCategoryNameA*(pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditLookupSubCategoryNameW*(pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPWSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditLookupCategoryNameA*(pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditLookupCategoryNameW*(pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPWSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditLookupCategoryIdFromCategoryGuid*(pAuditCategoryGuid: ptr GUID, pAuditCategoryId: PPOLICY_AUDIT_EVENT_TYPE): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AuditSetSecurity*(SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AcquireCredentialsHandleW*(pszPrincipal: ptr SEC_WCHAR, pszPackage: ptr SEC_WCHAR, fCredentialUse: int32, pvLogonId: pointer, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, phCredential: PCredHandle, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc AcquireCredentialsHandleA*(pszPrincipal: ptr SEC_CHAR, pszPackage: ptr SEC_CHAR, fCredentialUse: int32, pvLogonId: pointer, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, phCredential: PCredHandle, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc FreeCredentialsHandle*(phCredential: PCredHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc AddCredentialsW*(hCredentials: PCredHandle, pszPrincipal: ptr SEC_WCHAR, pszPackage: ptr SEC_WCHAR, fCredentialUse: int32, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc AddCredentialsA*(hCredentials: PCredHandle, pszPrincipal: ptr SEC_CHAR, pszPackage: ptr SEC_CHAR, fCredentialUse: int32, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc InitializeSecurityContextW*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: ptr SEC_WCHAR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc InitializeSecurityContextA*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: ptr SEC_CHAR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc AcceptSecurityContext*(phCredential: PCredHandle, phContext: PCtxtHandle, pInput: PSecBufferDesc, fContextReq: int32, TargetDataRep: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc CompleteAuthToken*(phContext: PCtxtHandle, pToken: PSecBufferDesc): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc ImpersonateSecurityContext*(phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc RevertSecurityContext*(phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc QuerySecurityContextToken*(phContext: PCtxtHandle, Token: ptr HANDLE): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc DeleteSecurityContext*(phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc ApplyControlToken*(phContext: PCtxtHandle, pInput: PSecBufferDesc): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc QueryContextAttributesW*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc QueryContextAttributesA*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SetContextAttributesW*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SetContextAttributesA*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc QueryCredentialsAttributesW*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc QueryCredentialsAttributesA*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SetCredentialsAttributesW*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SetCredentialsAttributesA*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc FreeContextBuffer*(pvContextBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc MakeSignature*(phContext: PCtxtHandle, fQOP: int32, pMessage: PSecBufferDesc, MessageSeqNo: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc VerifySignature*(phContext: PCtxtHandle, pMessage: PSecBufferDesc, MessageSeqNo: int32, pfQOP: ptr int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc EncryptMessage*(phContext: PCtxtHandle, fQOP: int32, pMessage: PSecBufferDesc, MessageSeqNo: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc DecryptMessage*(phContext: PCtxtHandle, pMessage: PSecBufferDesc, MessageSeqNo: int32, pfQOP: ptr int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc EnumerateSecurityPackagesW*(pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "sspicli", importc.} -proc EnumerateSecurityPackagesA*(pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "sspicli", importc.} -proc QuerySecurityPackageInfoW*(pszPackageName: ptr SEC_WCHAR, ppPackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc QuerySecurityPackageInfoA*(pszPackageName: ptr SEC_CHAR, ppPackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc ExportSecurityContext*(phContext: PCtxtHandle, fFlags: ULONG, pPackedContext: PSecBuffer, pToken: ptr pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc ImportSecurityContextW*(pszPackage: ptr SEC_WCHAR, pPackedContext: PSecBuffer, Token: pointer, phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc ImportSecurityContextA*(pszPackage: ptr SEC_CHAR, pPackedContext: PSecBuffer, Token: pointer, phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc FreeCredentialHandle*(phCredential: PCredHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "FreeCredentialsHandle".} -proc InitSecurityInterfaceA*(): PSecurityFunctionTableA {.winapi, stdcall, dynlib: "secur32", importc.} -proc InitSecurityInterfaceW*(): PSecurityFunctionTableW {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslEnumerateProfilesA*(ProfileList: ptr LPSTR, ProfileCount: ptr ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslEnumerateProfilesW*(ProfileList: ptr LPWSTR, ProfileCount: ptr ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslGetProfilePackageA*(ProfileName: LPSTR, PackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslGetProfilePackageW*(ProfileName: LPWSTR, PackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslIdentifyPackageA*(pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslIdentifyPackageW*(pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslInitializeSecurityContextW*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: LPWSTR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslInitializeSecurityContextA*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: LPSTR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslAcceptSecurityContext*(phCredential: PCredHandle, phContext: PCtxtHandle, pInput: PSecBufferDesc, fContextReq: int32, TargetDataRep: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslSetContextOption*(ContextHandle: PCtxtHandle, Option: ULONG, Value: PVOID, Size: ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc SaslGetContextOption*(ContextHandle: PCtxtHandle, Option: ULONG, Value: PVOID, Size: ULONG, Needed: PULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc AddSecurityPackageA*(pszPackageName: LPSTR, pOptions: PSECURITY_PACKAGE_OPTIONS): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc AddSecurityPackageW*(pszPackageName: LPWSTR, pOptions: PSECURITY_PACKAGE_OPTIONS): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc DeleteSecurityPackageA*(pszPackageName: ptr SEC_CHAR): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc DeleteSecurityPackageW*(pszPackageName: ptr SEC_WCHAR): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} -proc GetUserNameExA*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} -proc GetUserNameExW*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} -proc GetComputerObjectNameA*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} -proc GetComputerObjectNameW*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} -proc TranslateNameA*(lpAccountName: LPCSTR, AccountNameFormat: EXTENDED_NAME_FORMAT, DesiredNameFormat: EXTENDED_NAME_FORMAT, lpTranslatedName: LPSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} -proc TranslateNameW*(lpAccountName: LPCWSTR, AccountNameFormat: EXTENDED_NAME_FORMAT, DesiredNameFormat: EXTENDED_NAME_FORMAT, lpTranslatedName: LPWSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} -proc RtlGenRandom*(RandomBuffer: PVOID, RandomBufferLength: ULONG): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc: "SystemFunction036".} -proc RtlEncryptMemory*(Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc: "SystemFunction040".} -proc RtlDecryptMemory*(Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc: "SystemFunction041".} -proc `ContextInformation=`*(self: var KERB_SMARTCARD_CSP_INFO, x: PVOID) {.inline.} = self.union1.ContextInformation = x -proc ContextInformation*(self: KERB_SMARTCARD_CSP_INFO): PVOID {.inline.} = self.union1.ContextInformation -proc ContextInformation*(self: var KERB_SMARTCARD_CSP_INFO): var PVOID {.inline.} = self.union1.ContextInformation -proc `SpaceHolderForWow64=`*(self: var KERB_SMARTCARD_CSP_INFO, x: ULONG64) {.inline.} = self.union1.SpaceHolderForWow64 = x -proc SpaceHolderForWow64*(self: KERB_SMARTCARD_CSP_INFO): ULONG64 {.inline.} = self.union1.SpaceHolderForWow64 -proc SpaceHolderForWow64*(self: var KERB_SMARTCARD_CSP_INFO): var ULONG64 {.inline.} = self.union1.SpaceHolderForWow64 +proc AuditSetSystemPolicy*( + pAuditPolicy: PCAUDIT_POLICY_INFORMATION, PolicyCount: ULONG +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditQuerySystemPolicy*( + pSubCategoryGuids: ptr GUID, + PolicyCount: ULONG, + ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION, +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditSetPerUserPolicy*( + pSid: PSID, pAuditPolicy: PCAUDIT_POLICY_INFORMATION, PolicyCount: ULONG +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditQueryPerUserPolicy*( + pSid: PSID, + pSubCategoryGuids: ptr GUID, + PolicyCount: ULONG, + ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION, +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditComputeEffectivePolicyByToken*( + hTokenHandle: HANDLE, + pSubCategoryGuids: ptr GUID, + PolicyCount: ULONG, + ppAuditPolicy: ptr PAUDIT_POLICY_INFORMATION, +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditEnumerateCategories*( + ppAuditCategoriesArray: ptr ptr GUID, pCountReturned: PULONG +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditEnumeratePerUserPolicy*( + ppAuditSidArray: ptr PPOLICY_AUDIT_SID_ARRAY +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditEnumerateSubCategories*( + pAuditCategoryGuid: ptr GUID, + bRetrieveAllSubCategories: BOOLEAN, + ppAuditSubCategoriesArray: ptr ptr GUID, + pCountReturned: PULONG, +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditLookupCategoryGuidFromCategoryId*( + AuditCategoryId: POLICY_AUDIT_EVENT_TYPE, pAuditCategoryGuid: ptr GUID +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditQuerySecurity*( + SecurityInformation: SECURITY_INFORMATION, + ppSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditLookupSubCategoryNameA*( + pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPSTR +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditLookupSubCategoryNameW*( + pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPWSTR +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditLookupCategoryNameA*( + pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPSTR +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditLookupCategoryNameW*( + pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPWSTR +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditLookupCategoryIdFromCategoryGuid*( + pAuditCategoryGuid: ptr GUID, pAuditCategoryId: PPOLICY_AUDIT_EVENT_TYPE +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AuditSetSecurity*( + SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AcquireCredentialsHandleW*( + pszPrincipal: ptr SEC_WCHAR, + pszPackage: ptr SEC_WCHAR, + fCredentialUse: int32, + pvLogonId: pointer, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + phCredential: PCredHandle, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc AcquireCredentialsHandleA*( + pszPrincipal: ptr SEC_CHAR, + pszPackage: ptr SEC_CHAR, + fCredentialUse: int32, + pvLogonId: pointer, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + phCredential: PCredHandle, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc FreeCredentialsHandle*( + phCredential: PCredHandle +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc AddCredentialsW*( + hCredentials: PCredHandle, + pszPrincipal: ptr SEC_WCHAR, + pszPackage: ptr SEC_WCHAR, + fCredentialUse: int32, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc AddCredentialsA*( + hCredentials: PCredHandle, + pszPrincipal: ptr SEC_CHAR, + pszPackage: ptr SEC_CHAR, + fCredentialUse: int32, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc InitializeSecurityContextW*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: ptr SEC_WCHAR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc InitializeSecurityContextA*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: ptr SEC_CHAR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc AcceptSecurityContext*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pInput: PSecBufferDesc, + fContextReq: int32, + TargetDataRep: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc CompleteAuthToken*( + phContext: PCtxtHandle, pToken: PSecBufferDesc +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc ImpersonateSecurityContext*( + phContext: PCtxtHandle +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc RevertSecurityContext*( + phContext: PCtxtHandle +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc QuerySecurityContextToken*( + phContext: PCtxtHandle, Token: ptr HANDLE +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc DeleteSecurityContext*( + phContext: PCtxtHandle +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc ApplyControlToken*( + phContext: PCtxtHandle, pInput: PSecBufferDesc +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc QueryContextAttributesW*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc QueryContextAttributesA*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SetContextAttributesW*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SetContextAttributesA*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc QueryCredentialsAttributesW*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc QueryCredentialsAttributesA*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SetCredentialsAttributesW*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SetCredentialsAttributesA*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc FreeContextBuffer*( + pvContextBuffer: pointer +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc MakeSignature*( + phContext: PCtxtHandle, fQOP: int32, pMessage: PSecBufferDesc, MessageSeqNo: int32 +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc VerifySignature*( + phContext: PCtxtHandle, + pMessage: PSecBufferDesc, + MessageSeqNo: int32, + pfQOP: ptr int32, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc EncryptMessage*( + phContext: PCtxtHandle, fQOP: int32, pMessage: PSecBufferDesc, MessageSeqNo: int32 +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc DecryptMessage*( + phContext: PCtxtHandle, + pMessage: PSecBufferDesc, + MessageSeqNo: int32, + pfQOP: ptr int32, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc EnumerateSecurityPackagesW*( + pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoW +): SECURITY_STATUS {.winapi, stdcall, dynlib: "sspicli", importc.} + +proc EnumerateSecurityPackagesA*( + pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoA +): SECURITY_STATUS {.winapi, stdcall, dynlib: "sspicli", importc.} + +proc QuerySecurityPackageInfoW*( + pszPackageName: ptr SEC_WCHAR, ppPackageInfo: ptr PSecPkgInfoW +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc QuerySecurityPackageInfoA*( + pszPackageName: ptr SEC_CHAR, ppPackageInfo: ptr PSecPkgInfoA +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc ExportSecurityContext*( + phContext: PCtxtHandle, fFlags: ULONG, pPackedContext: PSecBuffer, pToken: ptr pointer +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc ImportSecurityContextW*( + pszPackage: ptr SEC_WCHAR, + pPackedContext: PSecBuffer, + Token: pointer, + phContext: PCtxtHandle, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc ImportSecurityContextA*( + pszPackage: ptr SEC_CHAR, + pPackedContext: PSecBuffer, + Token: pointer, + phContext: PCtxtHandle, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc FreeCredentialHandle*( + phCredential: PCredHandle +): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "FreeCredentialsHandle" +.} + +proc InitSecurityInterfaceA*(): PSecurityFunctionTableA {. + winapi, stdcall, dynlib: "secur32", importc +.} + +proc InitSecurityInterfaceW*(): PSecurityFunctionTableW {. + winapi, stdcall, dynlib: "secur32", importc +.} + +proc SaslEnumerateProfilesA*( + ProfileList: ptr LPSTR, ProfileCount: ptr ULONG +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslEnumerateProfilesW*( + ProfileList: ptr LPWSTR, ProfileCount: ptr ULONG +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslGetProfilePackageA*( + ProfileName: LPSTR, PackageInfo: ptr PSecPkgInfoA +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslGetProfilePackageW*( + ProfileName: LPWSTR, PackageInfo: ptr PSecPkgInfoW +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslIdentifyPackageA*( + pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoA +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslIdentifyPackageW*( + pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoW +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslInitializeSecurityContextW*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: LPWSTR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslInitializeSecurityContextA*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: LPSTR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslAcceptSecurityContext*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pInput: PSecBufferDesc, + fContextReq: int32, + TargetDataRep: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslSetContextOption*( + ContextHandle: PCtxtHandle, Option: ULONG, Value: PVOID, Size: ULONG +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc SaslGetContextOption*( + ContextHandle: PCtxtHandle, Option: ULONG, Value: PVOID, Size: ULONG, Needed: PULONG +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc AddSecurityPackageA*( + pszPackageName: LPSTR, pOptions: PSECURITY_PACKAGE_OPTIONS +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc AddSecurityPackageW*( + pszPackageName: LPWSTR, pOptions: PSECURITY_PACKAGE_OPTIONS +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc DeleteSecurityPackageA*( + pszPackageName: ptr SEC_CHAR +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc DeleteSecurityPackageW*( + pszPackageName: ptr SEC_WCHAR +): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc.} + +proc GetUserNameExA*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG +): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} + +proc GetUserNameExW*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG +): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} + +proc GetComputerObjectNameA*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG +): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} + +proc GetComputerObjectNameW*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG +): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} + +proc TranslateNameA*( + lpAccountName: LPCSTR, + AccountNameFormat: EXTENDED_NAME_FORMAT, + DesiredNameFormat: EXTENDED_NAME_FORMAT, + lpTranslatedName: LPSTR, + nSize: PULONG, +): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} + +proc TranslateNameW*( + lpAccountName: LPCWSTR, + AccountNameFormat: EXTENDED_NAME_FORMAT, + DesiredNameFormat: EXTENDED_NAME_FORMAT, + lpTranslatedName: LPWSTR, + nSize: PULONG, +): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc.} + +proc RtlGenRandom*( + RandomBuffer: PVOID, RandomBufferLength: ULONG +): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc: "SystemFunction036".} + +proc RtlEncryptMemory*( + Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc: "SystemFunction040".} + +proc RtlDecryptMemory*( + Memory: PVOID, MemorySize: ULONG, OptionFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "advapi32", importc: "SystemFunction041".} + +proc `ContextInformation=`*(self: var KERB_SMARTCARD_CSP_INFO, x: PVOID) {.inline.} = + self.union1.ContextInformation = x + +proc ContextInformation*(self: KERB_SMARTCARD_CSP_INFO): PVOID {.inline.} = + self.union1.ContextInformation + +proc ContextInformation*(self: var KERB_SMARTCARD_CSP_INFO): var PVOID {.inline.} = + self.union1.ContextInformation + +proc `SpaceHolderForWow64=`*(self: var KERB_SMARTCARD_CSP_INFO, x: ULONG64) {.inline.} = + self.union1.SpaceHolderForWow64 = x + +proc SpaceHolderForWow64*(self: KERB_SMARTCARD_CSP_INFO): ULONG64 {.inline.} = + self.union1.SpaceHolderForWow64 + +proc SpaceHolderForWow64*(self: var KERB_SMARTCARD_CSP_INFO): var ULONG64 {.inline.} = + self.union1.SpaceHolderForWow64 + when winimUnicode: type SECURITY_PSTR* = ptr SEC_WCHAR @@ -1892,32 +2773,177 @@ PSEC_WINNT_AUTH_IDENTITY* = PSEC_WINNT_AUTH_IDENTITY_W SEC_WINNT_AUTH_IDENTITY_EX* = SEC_WINNT_AUTH_IDENTITY_EXW PSEC_WINNT_AUTH_IDENTITY_EX* = PSEC_WINNT_AUTH_IDENTITY_EXW + const NEGOSSP_NAME* = NEGOSSP_NAME_W SECURITY_ENTRYPOINT* = SECURITY_ENTRYPOINTW SECURITY_ENTRYPOINT_ANSI* = SECURITY_ENTRYPOINT_ANSIW - proc AuditLookupSubCategoryName*(pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPWSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupSubCategoryNameW".} - proc AuditLookupCategoryName*(pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPWSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupCategoryNameW".} - proc AcquireCredentialsHandle*(pszPrincipal: ptr SEC_WCHAR, pszPackage: ptr SEC_WCHAR, fCredentialUse: int32, pvLogonId: pointer, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, phCredential: PCredHandle, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AcquireCredentialsHandleW".} - proc AddCredentials*(hCredentials: PCredHandle, pszPrincipal: ptr SEC_WCHAR, pszPackage: ptr SEC_WCHAR, fCredentialUse: int32, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AddCredentialsW".} - proc InitializeSecurityContext*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: ptr SEC_WCHAR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "InitializeSecurityContextW".} - proc QueryContextAttributes*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "QueryContextAttributesW".} - proc SetContextAttributes*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SetContextAttributesW".} - proc QueryCredentialsAttributes*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "QueryCredentialsAttributesW".} - proc SetCredentialsAttributes*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SetCredentialsAttributesW".} - proc EnumerateSecurityPackages*(pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "sspicli", importc: "EnumerateSecurityPackagesW".} - proc QuerySecurityPackageInfo*(pszPackageName: ptr SEC_WCHAR, ppPackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "QuerySecurityPackageInfoW".} - proc ImportSecurityContext*(pszPackage: ptr SEC_WCHAR, pPackedContext: PSecBuffer, Token: pointer, phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "ImportSecurityContextW".} - proc InitSecurityInterface*(): PSecurityFunctionTableW {.winapi, stdcall, dynlib: "secur32", importc: "InitSecurityInterfaceW".} - proc SaslEnumerateProfiles*(ProfileList: ptr LPWSTR, ProfileCount: ptr ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslEnumerateProfilesW".} - proc SaslGetProfilePackage*(ProfileName: LPWSTR, PackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslGetProfilePackageW".} - proc SaslIdentifyPackage*(pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoW): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslIdentifyPackageW".} - proc SaslInitializeSecurityContext*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: LPWSTR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslInitializeSecurityContextW".} - proc AddSecurityPackage*(pszPackageName: LPWSTR, pOptions: PSECURITY_PACKAGE_OPTIONS): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AddSecurityPackageW".} - proc DeleteSecurityPackage*(pszPackageName: ptr SEC_WCHAR): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "DeleteSecurityPackageW".} - proc GetUserNameEx*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetUserNameExW".} - proc GetComputerObjectName*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetComputerObjectNameW".} - proc TranslateName*(lpAccountName: LPCWSTR, AccountNameFormat: EXTENDED_NAME_FORMAT, DesiredNameFormat: EXTENDED_NAME_FORMAT, lpTranslatedName: LPWSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "TranslateNameW".} + proc AuditLookupSubCategoryName*( + pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPWSTR + ): BOOLEAN {. + winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupSubCategoryNameW" + .} + + proc AuditLookupCategoryName*( + pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPWSTR + ): BOOLEAN {. + winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupCategoryNameW" + .} + + proc AcquireCredentialsHandle*( + pszPrincipal: ptr SEC_WCHAR, + pszPackage: ptr SEC_WCHAR, + fCredentialUse: int32, + pvLogonId: pointer, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + phCredential: PCredHandle, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "AcquireCredentialsHandleW" + .} + + proc AddCredentials*( + hCredentials: PCredHandle, + pszPrincipal: ptr SEC_WCHAR, + pszPackage: ptr SEC_WCHAR, + fCredentialUse: int32, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AddCredentialsW".} + + proc InitializeSecurityContext*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: ptr SEC_WCHAR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "InitializeSecurityContextW" + .} + + proc QueryContextAttributes*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "QueryContextAttributesW" + .} + + proc SetContextAttributes*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SetContextAttributesW" + .} + + proc QueryCredentialsAttributes*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "QueryCredentialsAttributesW" + .} + + proc SetCredentialsAttributes*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SetCredentialsAttributesW" + .} + + proc EnumerateSecurityPackages*( + pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoW + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "sspicli", importc: "EnumerateSecurityPackagesW" + .} + + proc QuerySecurityPackageInfo*( + pszPackageName: ptr SEC_WCHAR, ppPackageInfo: ptr PSecPkgInfoW + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "QuerySecurityPackageInfoW" + .} + + proc ImportSecurityContext*( + pszPackage: ptr SEC_WCHAR, + pPackedContext: PSecBuffer, + Token: pointer, + phContext: PCtxtHandle, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "ImportSecurityContextW" + .} + + proc InitSecurityInterface*(): PSecurityFunctionTableW {. + winapi, stdcall, dynlib: "secur32", importc: "InitSecurityInterfaceW" + .} + + proc SaslEnumerateProfiles*( + ProfileList: ptr LPWSTR, ProfileCount: ptr ULONG + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslEnumerateProfilesW" + .} + + proc SaslGetProfilePackage*( + ProfileName: LPWSTR, PackageInfo: ptr PSecPkgInfoW + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslGetProfilePackageW" + .} + + proc SaslIdentifyPackage*( + pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoW + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslIdentifyPackageW" + .} + + proc SaslInitializeSecurityContext*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: LPWSTR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslInitializeSecurityContextW" + .} + + proc AddSecurityPackage*( + pszPackageName: LPWSTR, pOptions: PSECURITY_PACKAGE_OPTIONS + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "AddSecurityPackageW" + .} + + proc DeleteSecurityPackage*( + pszPackageName: ptr SEC_WCHAR + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "DeleteSecurityPackageW" + .} + + proc GetUserNameEx*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG + ): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetUserNameExW".} + + proc GetComputerObjectName*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPWSTR, nSize: PULONG + ): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetComputerObjectNameW".} + + proc TranslateName*( + lpAccountName: LPCWSTR, + AccountNameFormat: EXTENDED_NAME_FORMAT, + DesiredNameFormat: EXTENDED_NAME_FORMAT, + lpTranslatedName: LPWSTR, + nSize: PULONG, + ): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "TranslateNameW".} + when winimAnsi: type SECURITY_PSTR* = ptr SEC_CHAR @@ -1960,29 +2986,173 @@ PSEC_WINNT_AUTH_IDENTITY* = PSEC_WINNT_AUTH_IDENTITY_A SEC_WINNT_AUTH_IDENTITY_EX* = SEC_WINNT_AUTH_IDENTITY_EXA PSEC_WINNT_AUTH_IDENTITY_EX* = PSEC_WINNT_AUTH_IDENTITY_EXA + const NEGOSSP_NAME* = NEGOSSP_NAME_A SECURITY_ENTRYPOINT* = SECURITY_ENTRYPOINTA SECURITY_ENTRYPOINT_ANSI* = SECURITY_ENTRYPOINT_ANSIA - proc AuditLookupSubCategoryName*(pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupSubCategoryNameA".} - proc AuditLookupCategoryName*(pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPSTR): BOOLEAN {.winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupCategoryNameA".} - proc AcquireCredentialsHandle*(pszPrincipal: ptr SEC_CHAR, pszPackage: ptr SEC_CHAR, fCredentialUse: int32, pvLogonId: pointer, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, phCredential: PCredHandle, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AcquireCredentialsHandleA".} - proc AddCredentials*(hCredentials: PCredHandle, pszPrincipal: ptr SEC_CHAR, pszPackage: ptr SEC_CHAR, fCredentialUse: int32, pAuthData: pointer, pGetKeyFn: SEC_GET_KEY_FN, pvGetKeyArgument: pointer, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AddCredentialsA".} - proc InitializeSecurityContext*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: ptr SEC_CHAR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "InitializeSecurityContextA".} - proc QueryContextAttributes*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "QueryContextAttributesA".} - proc SetContextAttributes*(phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SetContextAttributesA".} - proc QueryCredentialsAttributes*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "QueryCredentialsAttributesA".} - proc SetCredentialsAttributes*(phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SetCredentialsAttributesA".} - proc EnumerateSecurityPackages*(pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "sspicli", importc: "EnumerateSecurityPackagesA".} - proc QuerySecurityPackageInfo*(pszPackageName: ptr SEC_CHAR, ppPackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "QuerySecurityPackageInfoA".} - proc ImportSecurityContext*(pszPackage: ptr SEC_CHAR, pPackedContext: PSecBuffer, Token: pointer, phContext: PCtxtHandle): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "ImportSecurityContextA".} - proc InitSecurityInterface*(): PSecurityFunctionTableA {.winapi, stdcall, dynlib: "secur32", importc: "InitSecurityInterfaceA".} - proc SaslEnumerateProfiles*(ProfileList: ptr LPSTR, ProfileCount: ptr ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslEnumerateProfilesA".} - proc SaslGetProfilePackage*(ProfileName: LPSTR, PackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslGetProfilePackageA".} - proc SaslIdentifyPackage*(pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoA): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslIdentifyPackageA".} - proc SaslInitializeSecurityContext*(phCredential: PCredHandle, phContext: PCtxtHandle, pszTargetName: LPSTR, fContextReq: int32, Reserved1: int32, TargetDataRep: int32, pInput: PSecBufferDesc, Reserved2: int32, phNewContext: PCtxtHandle, pOutput: PSecBufferDesc, pfContextAttr: ptr int32, ptsExpiry: PTimeStamp): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "SaslInitializeSecurityContextA".} - proc AddSecurityPackage*(pszPackageName: LPSTR, pOptions: PSECURITY_PACKAGE_OPTIONS): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AddSecurityPackageA".} - proc DeleteSecurityPackage*(pszPackageName: ptr SEC_CHAR): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "DeleteSecurityPackageA".} - proc GetUserNameEx*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetUserNameExA".} - proc GetComputerObjectName*(NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetComputerObjectNameA".} - proc TranslateName*(lpAccountName: LPCSTR, AccountNameFormat: EXTENDED_NAME_FORMAT, DesiredNameFormat: EXTENDED_NAME_FORMAT, lpTranslatedName: LPSTR, nSize: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "TranslateNameA".} + proc AuditLookupSubCategoryName*( + pAuditSubCategoryGuid: ptr GUID, ppszSubCategoryName: ptr LPSTR + ): BOOLEAN {. + winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupSubCategoryNameA" + .} + + proc AuditLookupCategoryName*( + pAuditCategoryGuid: ptr GUID, ppszCategoryName: ptr LPSTR + ): BOOLEAN {. + winapi, stdcall, dynlib: "advapi32", importc: "AuditLookupCategoryNameA" + .} + + proc AcquireCredentialsHandle*( + pszPrincipal: ptr SEC_CHAR, + pszPackage: ptr SEC_CHAR, + fCredentialUse: int32, + pvLogonId: pointer, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + phCredential: PCredHandle, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "AcquireCredentialsHandleA" + .} + + proc AddCredentials*( + hCredentials: PCredHandle, + pszPrincipal: ptr SEC_CHAR, + pszPackage: ptr SEC_CHAR, + fCredentialUse: int32, + pAuthData: pointer, + pGetKeyFn: SEC_GET_KEY_FN, + pvGetKeyArgument: pointer, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {.winapi, stdcall, dynlib: "secur32", importc: "AddCredentialsA".} + + proc InitializeSecurityContext*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: ptr SEC_CHAR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "InitializeSecurityContextA" + .} + + proc QueryContextAttributes*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "QueryContextAttributesA" + .} + + proc SetContextAttributes*( + phContext: PCtxtHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SetContextAttributesA" + .} + + proc QueryCredentialsAttributes*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "QueryCredentialsAttributesA" + .} + + proc SetCredentialsAttributes*( + phCredential: PCredHandle, ulAttribute: int32, pBuffer: pointer, cbBuffer: int32 + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SetCredentialsAttributesA" + .} + + proc EnumerateSecurityPackages*( + pcPackages: ptr int32, ppPackageInfo: ptr PSecPkgInfoA + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "sspicli", importc: "EnumerateSecurityPackagesA" + .} + + proc QuerySecurityPackageInfo*( + pszPackageName: ptr SEC_CHAR, ppPackageInfo: ptr PSecPkgInfoA + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "QuerySecurityPackageInfoA" + .} + + proc ImportSecurityContext*( + pszPackage: ptr SEC_CHAR, + pPackedContext: PSecBuffer, + Token: pointer, + phContext: PCtxtHandle, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "ImportSecurityContextA" + .} + + proc InitSecurityInterface*(): PSecurityFunctionTableA {. + winapi, stdcall, dynlib: "secur32", importc: "InitSecurityInterfaceA" + .} + + proc SaslEnumerateProfiles*( + ProfileList: ptr LPSTR, ProfileCount: ptr ULONG + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslEnumerateProfilesA" + .} + + proc SaslGetProfilePackage*( + ProfileName: LPSTR, PackageInfo: ptr PSecPkgInfoA + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslGetProfilePackageA" + .} + + proc SaslIdentifyPackage*( + pInput: PSecBufferDesc, PackageInfo: ptr PSecPkgInfoA + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslIdentifyPackageA" + .} + + proc SaslInitializeSecurityContext*( + phCredential: PCredHandle, + phContext: PCtxtHandle, + pszTargetName: LPSTR, + fContextReq: int32, + Reserved1: int32, + TargetDataRep: int32, + pInput: PSecBufferDesc, + Reserved2: int32, + phNewContext: PCtxtHandle, + pOutput: PSecBufferDesc, + pfContextAttr: ptr int32, + ptsExpiry: PTimeStamp, + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "SaslInitializeSecurityContextA" + .} + + proc AddSecurityPackage*( + pszPackageName: LPSTR, pOptions: PSECURITY_PACKAGE_OPTIONS + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "AddSecurityPackageA" + .} + + proc DeleteSecurityPackage*( + pszPackageName: ptr SEC_CHAR + ): SECURITY_STATUS {. + winapi, stdcall, dynlib: "secur32", importc: "DeleteSecurityPackageA" + .} + + proc GetUserNameEx*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG + ): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetUserNameExA".} + + proc GetComputerObjectName*( + NameFormat: EXTENDED_NAME_FORMAT, lpNameBuffer: LPSTR, nSize: PULONG + ): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "GetComputerObjectNameA".} + + proc TranslateName*( + lpAccountName: LPCSTR, + AccountNameFormat: EXTENDED_NAME_FORMAT, + DesiredNameFormat: EXTENDED_NAME_FORMAT, + lpTranslatedName: LPSTR, + nSize: PULONG, + ): BOOLEAN {.winapi, stdcall, dynlib: "secur32", importc: "TranslateNameA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/setupapi.nim --- a/semicongine/thirdparty/winim/winim/inc/setupapi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/setupapi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -22,24 +22,27 @@ CurrentInf*: PVOID Section*: UINT Line*: UINT + PINFCONTEXT* = ptr INFCONTEXT + when winimCpu64: - type - SP_INF_INFORMATION* {.pure.} = object - InfStyle*: DWORD - InfCount*: DWORD - VersionData*: array[ANYSIZE_ARRAY, BYTE] + type SP_INF_INFORMATION* {.pure.} = object + InfStyle*: DWORD + InfCount*: DWORD + VersionData*: array[ANYSIZE_ARRAY, BYTE] + when winimCpu32: - type - SP_INF_INFORMATION* {.pure, packed.} = object - InfStyle*: DWORD - InfCount*: DWORD - VersionData*: array[ANYSIZE_ARRAY, BYTE] + type SP_INF_INFORMATION* {.pure, packed.} = object + InfStyle*: DWORD + InfCount*: DWORD + VersionData*: array[ANYSIZE_ARRAY, BYTE] + type PSP_INF_INFORMATION* = ptr SP_INF_INFORMATION SP_ALTPLATFORM_INFO_V2_UNION1* {.pure, union.} = object Reserved*: WORD Flags*: WORD + SP_ALTPLATFORM_INFO_V2* {.pure.} = object cbSize*: DWORD Platform*: DWORD @@ -49,6 +52,7 @@ union1*: SP_ALTPLATFORM_INFO_V2_UNION1 FirstValidatedMajorVersion*: DWORD FirstValidatedMinorVersion*: DWORD + PSP_ALTPLATFORM_INFO_V2* = ptr SP_ALTPLATFORM_INFO_V2 SP_ALTPLATFORM_INFO_V1* {.pure.} = object cbSize*: DWORD @@ -57,6 +61,7 @@ MinorVersion*: DWORD ProcessorArchitecture*: WORD Reserved*: WORD + PSP_ALTPLATFORM_INFO_V1* = ptr SP_ALTPLATFORM_INFO_V1 SP_ALTPLATFORM_INFO* = SP_ALTPLATFORM_INFO_V2 PSP_ALTPLATFORM_INFO* = PSP_ALTPLATFORM_INFO_V2 @@ -64,23 +69,27 @@ cbSize*: DWORD OriginalInfName*: array[MAX_PATH, CHAR] OriginalCatalogName*: array[MAX_PATH, CHAR] + PSP_ORIGINAL_FILE_INFO_A* = ptr SP_ORIGINAL_FILE_INFO_A SP_ORIGINAL_FILE_INFO_W* {.pure.} = object cbSize*: DWORD OriginalInfName*: array[MAX_PATH, WCHAR] OriginalCatalogName*: array[MAX_PATH, WCHAR] + PSP_ORIGINAL_FILE_INFO_W* = ptr SP_ORIGINAL_FILE_INFO_W FILEPATHS_A* {.pure.} = object Target*: PCSTR Source*: PCSTR Win32Error*: UINT Flags*: DWORD + PFILEPATHS_A* = ptr FILEPATHS_A FILEPATHS_W* {.pure.} = object Target*: PCWSTR Source*: PCWSTR Win32Error*: UINT Flags*: DWORD + PFILEPATHS_W* = ptr FILEPATHS_W FILEPATHS_SIGNERINFO_A* {.pure.} = object Target*: PCSTR @@ -90,6 +99,7 @@ DigitalSigner*: PCSTR Version*: PCSTR CatalogFile*: PCSTR + PFILEPATHS_SIGNERINFO_A* = ptr FILEPATHS_SIGNERINFO_A FILEPATHS_SIGNERINFO_W* {.pure.} = object Target*: PCWSTR @@ -99,6 +109,7 @@ DigitalSigner*: PCWSTR Version*: PCWSTR CatalogFile*: PCWSTR + PFILEPATHS_SIGNERINFO_W* = ptr FILEPATHS_SIGNERINFO_W SOURCE_MEDIA_A* {.pure.} = object Reserved*: PCSTR @@ -107,6 +118,7 @@ SourcePath*: PCSTR SourceFile*: PCSTR Flags*: DWORD + PSOURCE_MEDIA_A* = ptr SOURCE_MEDIA_A SOURCE_MEDIA_W* {.pure.} = object Reserved*: PCWSTR @@ -115,6 +127,7 @@ SourcePath*: PCWSTR SourceFile*: PCWSTR Flags*: DWORD + PSOURCE_MEDIA_W* = ptr SOURCE_MEDIA_W CABINET_INFO_A* {.pure.} = object CabinetPath*: PCSTR @@ -122,6 +135,7 @@ DiskName*: PCSTR SetId*: USHORT CabinetNumber*: USHORT + PCABINET_INFO_A* = ptr CABINET_INFO_A CABINET_INFO_W* {.pure.} = object CabinetPath*: PCWSTR @@ -129,49 +143,50 @@ DiskName*: PCWSTR SetId*: USHORT CabinetNumber*: USHORT + PCABINET_INFO_W* = ptr CABINET_INFO_W + when winimCpu64: - type - FILE_IN_CABINET_INFO_A* {.pure.} = object - NameInCabinet*: PCSTR - FileSize*: DWORD - Win32Error*: DWORD - DosDate*: WORD - DosTime*: WORD - DosAttribs*: WORD - FullTargetName*: array[MAX_PATH, CHAR] + type FILE_IN_CABINET_INFO_A* {.pure.} = object + NameInCabinet*: PCSTR + FileSize*: DWORD + Win32Error*: DWORD + DosDate*: WORD + DosTime*: WORD + DosAttribs*: WORD + FullTargetName*: array[MAX_PATH, CHAR] + when winimCpu32: - type - FILE_IN_CABINET_INFO_A* {.pure, packed.} = object - NameInCabinet*: PCSTR - FileSize*: DWORD - Win32Error*: DWORD - DosDate*: WORD - DosTime*: WORD - DosAttribs*: WORD - FullTargetName*: array[MAX_PATH, CHAR] -type - PFILE_IN_CABINET_INFO_A* = ptr FILE_IN_CABINET_INFO_A + type FILE_IN_CABINET_INFO_A* {.pure, packed.} = object + NameInCabinet*: PCSTR + FileSize*: DWORD + Win32Error*: DWORD + DosDate*: WORD + DosTime*: WORD + DosAttribs*: WORD + FullTargetName*: array[MAX_PATH, CHAR] + +type PFILE_IN_CABINET_INFO_A* = ptr FILE_IN_CABINET_INFO_A when winimCpu64: - type - FILE_IN_CABINET_INFO_W* {.pure.} = object - NameInCabinet*: PCWSTR - FileSize*: DWORD - Win32Error*: DWORD - DosDate*: WORD - DosTime*: WORD - DosAttribs*: WORD - FullTargetName*: array[MAX_PATH, WCHAR] + type FILE_IN_CABINET_INFO_W* {.pure.} = object + NameInCabinet*: PCWSTR + FileSize*: DWORD + Win32Error*: DWORD + DosDate*: WORD + DosTime*: WORD + DosAttribs*: WORD + FullTargetName*: array[MAX_PATH, WCHAR] + when winimCpu32: - type - FILE_IN_CABINET_INFO_W* {.pure, packed.} = object - NameInCabinet*: PCWSTR - FileSize*: DWORD - Win32Error*: DWORD - DosDate*: WORD - DosTime*: WORD - DosAttribs*: WORD - FullTargetName*: array[MAX_PATH, WCHAR] + type FILE_IN_CABINET_INFO_W* {.pure, packed.} = object + NameInCabinet*: PCWSTR + FileSize*: DWORD + Win32Error*: DWORD + DosDate*: WORD + DosTime*: WORD + DosAttribs*: WORD + FullTargetName*: array[MAX_PATH, WCHAR] + type PFILE_IN_CABINET_INFO_W* = ptr FILE_IN_CABINET_INFO_W SP_REGISTER_CONTROL_STATUSA* {.pure.} = object @@ -179,12 +194,14 @@ FileName*: PCSTR Win32Error*: DWORD FailureCode*: DWORD + PSP_REGISTER_CONTROL_STATUSA* = ptr SP_REGISTER_CONTROL_STATUSA SP_REGISTER_CONTROL_STATUSW* {.pure.} = object cbSize*: DWORD FileName*: PCWSTR Win32Error*: DWORD FailureCode*: DWORD + PSP_REGISTER_CONTROL_STATUSW* = ptr SP_REGISTER_CONTROL_STATUSW SP_FILE_COPY_PARAMS_A* {.pure.} = object cbSize*: DWORD @@ -199,6 +216,7 @@ CopyStyle*: DWORD LayoutInf*: HINF SecurityDescriptor*: PCSTR + PSP_FILE_COPY_PARAMS_A* = ptr SP_FILE_COPY_PARAMS_A SP_FILE_COPY_PARAMS_W* {.pure.} = object cbSize*: DWORD @@ -213,93 +231,98 @@ CopyStyle*: DWORD LayoutInf*: HINF SecurityDescriptor*: PCWSTR + PSP_FILE_COPY_PARAMS_W* = ptr SP_FILE_COPY_PARAMS_W SP_DEVINFO_DATA* {.pure.} = object cbSize*: DWORD ClassGuid*: GUID DevInst*: DWORD Reserved*: ULONG_PTR + PSP_DEVINFO_DATA* = ptr SP_DEVINFO_DATA SP_DEVICE_INTERFACE_DATA* {.pure.} = object cbSize*: DWORD InterfaceClassGuid*: GUID Flags*: DWORD Reserved*: ULONG_PTR + PSP_DEVICE_INTERFACE_DATA* = ptr SP_DEVICE_INTERFACE_DATA SP_INTERFACE_DEVICE_DATA* = SP_DEVICE_INTERFACE_DATA PSP_INTERFACE_DEVICE_DATA* = PSP_DEVICE_INTERFACE_DATA + when winimCpu64: - type - SP_DEVICE_INTERFACE_DETAIL_DATA_A* {.pure.} = object - cbSize*: DWORD - DevicePath*: array[ANYSIZE_ARRAY, CHAR] + type SP_DEVICE_INTERFACE_DETAIL_DATA_A* {.pure.} = object + cbSize*: DWORD + DevicePath*: array[ANYSIZE_ARRAY, CHAR] + when winimCpu32: - type - SP_DEVICE_INTERFACE_DETAIL_DATA_A* {.pure, packed.} = object - cbSize*: DWORD - DevicePath*: array[ANYSIZE_ARRAY, CHAR] -type - PSP_DEVICE_INTERFACE_DETAIL_DATA_A* = ptr SP_DEVICE_INTERFACE_DETAIL_DATA_A + type SP_DEVICE_INTERFACE_DETAIL_DATA_A* {.pure, packed.} = object + cbSize*: DWORD + DevicePath*: array[ANYSIZE_ARRAY, CHAR] + +type PSP_DEVICE_INTERFACE_DETAIL_DATA_A* = ptr SP_DEVICE_INTERFACE_DETAIL_DATA_A when winimCpu64: - type - SP_DEVICE_INTERFACE_DETAIL_DATA_W* {.pure.} = object - cbSize*: DWORD - DevicePath*: array[ANYSIZE_ARRAY, WCHAR] + type SP_DEVICE_INTERFACE_DETAIL_DATA_W* {.pure.} = object + cbSize*: DWORD + DevicePath*: array[ANYSIZE_ARRAY, WCHAR] + when winimCpu32: - type - SP_DEVICE_INTERFACE_DETAIL_DATA_W* {.pure, packed.} = object - cbSize*: DWORD - DevicePath*: array[ANYSIZE_ARRAY, WCHAR] + type SP_DEVICE_INTERFACE_DETAIL_DATA_W* {.pure, packed.} = object + cbSize*: DWORD + DevicePath*: array[ANYSIZE_ARRAY, WCHAR] + type PSP_DEVICE_INTERFACE_DETAIL_DATA_W* = ptr SP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_W* = SP_DEVICE_INTERFACE_DETAIL_DATA_W PSP_INTERFACE_DEVICE_DETAIL_DATA_W* = PSP_DEVICE_INTERFACE_DETAIL_DATA_W SP_INTERFACE_DEVICE_DETAIL_DATA_A* = SP_DEVICE_INTERFACE_DETAIL_DATA_A PSP_INTERFACE_DEVICE_DETAIL_DATA_A* = PSP_DEVICE_INTERFACE_DETAIL_DATA_A -const - SP_MAX_MACHINENAME_LENGTH* = MAX_PATH+3 + +const SP_MAX_MACHINENAME_LENGTH* = MAX_PATH + 3 when winimCpu64: - type - SP_DEVINFO_LIST_DETAIL_DATA_A* {.pure.} = object - cbSize*: DWORD - ClassGuid*: GUID - RemoteMachineHandle*: HANDLE - RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, CHAR] + type SP_DEVINFO_LIST_DETAIL_DATA_A* {.pure.} = object + cbSize*: DWORD + ClassGuid*: GUID + RemoteMachineHandle*: HANDLE + RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, CHAR] + when winimCpu32: - type - SP_DEVINFO_LIST_DETAIL_DATA_A* {.pure, packed.} = object - cbSize*: DWORD - ClassGuid*: GUID - RemoteMachineHandle*: HANDLE - RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, CHAR] -type - PSP_DEVINFO_LIST_DETAIL_DATA_A* = ptr SP_DEVINFO_LIST_DETAIL_DATA_A + type SP_DEVINFO_LIST_DETAIL_DATA_A* {.pure, packed.} = object + cbSize*: DWORD + ClassGuid*: GUID + RemoteMachineHandle*: HANDLE + RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, CHAR] + +type PSP_DEVINFO_LIST_DETAIL_DATA_A* = ptr SP_DEVINFO_LIST_DETAIL_DATA_A when winimCpu64: - type - SP_DEVINFO_LIST_DETAIL_DATA_W* {.pure.} = object - cbSize*: DWORD - ClassGuid*: GUID - RemoteMachineHandle*: HANDLE - RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, WCHAR] + type SP_DEVINFO_LIST_DETAIL_DATA_W* {.pure.} = object + cbSize*: DWORD + ClassGuid*: GUID + RemoteMachineHandle*: HANDLE + RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, WCHAR] + when winimCpu32: - type - SP_DEVINFO_LIST_DETAIL_DATA_W* {.pure, packed.} = object - cbSize*: DWORD - ClassGuid*: GUID - RemoteMachineHandle*: HANDLE - RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, WCHAR] + type SP_DEVINFO_LIST_DETAIL_DATA_W* {.pure, packed.} = object + cbSize*: DWORD + ClassGuid*: GUID + RemoteMachineHandle*: HANDLE + RemoteMachineName*: array[SP_MAX_MACHINENAME_LENGTH, WCHAR] + type PSP_DEVINFO_LIST_DETAIL_DATA_W* = ptr SP_DEVINFO_LIST_DETAIL_DATA_W DI_FUNCTION* = UINT - PSP_FILE_CALLBACK_W* = proc (Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR): UINT {.stdcall.} + PSP_FILE_CALLBACK_W* = proc( + Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR + ): UINT {.stdcall.} + when winimUnicode: - type - PSP_FILE_CALLBACK* = PSP_FILE_CALLBACK_W -type - PSP_FILE_CALLBACK_A* = proc (Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR): UINT {.stdcall.} + type PSP_FILE_CALLBACK* = PSP_FILE_CALLBACK_W +type PSP_FILE_CALLBACK_A* = proc( + Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR +): UINT {.stdcall.} + when winimAnsi: - type - PSP_FILE_CALLBACK* = PSP_FILE_CALLBACK_A + type PSP_FILE_CALLBACK* = PSP_FILE_CALLBACK_A type SP_DEVINSTALL_PARAMS_A* {.pure.} = object cbSize*: DWORD @@ -312,6 +335,7 @@ ClassInstallReserved*: ULONG_PTR Reserved*: DWORD DriverPath*: array[MAX_PATH, CHAR] + PSP_DEVINSTALL_PARAMS_A* = ptr SP_DEVINSTALL_PARAMS_A SP_DEVINSTALL_PARAMS_W* {.pure.} = object cbSize*: DWORD @@ -324,32 +348,39 @@ ClassInstallReserved*: ULONG_PTR Reserved*: DWORD DriverPath*: array[MAX_PATH, WCHAR] + PSP_DEVINSTALL_PARAMS_W* = ptr SP_DEVINSTALL_PARAMS_W SP_CLASSINSTALL_HEADER* {.pure.} = object cbSize*: DWORD InstallFunction*: DI_FUNCTION + PSP_CLASSINSTALL_HEADER* = ptr SP_CLASSINSTALL_HEADER SP_ENABLECLASS_PARAMS* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER ClassGuid*: GUID EnableMessage*: DWORD + PSP_ENABLECLASS_PARAMS* = ptr SP_ENABLECLASS_PARAMS SP_PROPCHANGE_PARAMS* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER StateChange*: DWORD Scope*: DWORD HwProfile*: DWORD + PSP_PROPCHANGE_PARAMS* = ptr SP_PROPCHANGE_PARAMS SP_REMOVEDEVICE_PARAMS* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER Scope*: DWORD HwProfile*: DWORD + PSP_REMOVEDEVICE_PARAMS* = ptr SP_REMOVEDEVICE_PARAMS SP_UNREMOVEDEVICE_PARAMS* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER Scope*: DWORD HwProfile*: DWORD + PSP_UNREMOVEDEVICE_PARAMS* = ptr SP_UNREMOVEDEVICE_PARAMS + const MAX_TITLE_LEN* = 60 MAX_INSTRUCTION_LEN* = 256 @@ -363,6 +394,7 @@ ListLabel*: array[MAX_LABEL_LEN, CHAR] SubTitle*: array[MAX_SUBTITLE_LEN, CHAR] Reserved*: array[2, BYTE] + PSP_SELECTDEVICE_PARAMS_A* = ptr SP_SELECTDEVICE_PARAMS_A SP_SELECTDEVICE_PARAMS_W* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER @@ -370,15 +402,18 @@ Instructions*: array[MAX_INSTRUCTION_LEN, WCHAR] ListLabel*: array[MAX_LABEL_LEN, WCHAR] SubTitle*: array[MAX_SUBTITLE_LEN, WCHAR] + PSP_SELECTDEVICE_PARAMS_W* = ptr SP_SELECTDEVICE_PARAMS_W - PDETECT_PROGRESS_NOTIFY* = proc (ProgressNotifyParam: PVOID, DetectComplete: DWORD): WINBOOL {.stdcall.} + PDETECT_PROGRESS_NOTIFY* = + proc(ProgressNotifyParam: PVOID, DetectComplete: DWORD): WINBOOL {.stdcall.} SP_DETECTDEVICE_PARAMS* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER DetectProgressNotify*: PDETECT_PROGRESS_NOTIFY ProgressNotifyParam*: PVOID + PSP_DETECTDEVICE_PARAMS* = ptr SP_DETECTDEVICE_PARAMS -const - MAX_INSTALLWIZARD_DYNAPAGES* = 20 + +const MAX_INSTALLWIZARD_DYNAPAGES* = 20 type SP_INSTALLWIZARD_DATA* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER @@ -389,6 +424,7 @@ PrivateFlags*: DWORD PrivateData*: LPARAM hwndWizardDlg*: HWND + PSP_INSTALLWIZARD_DATA* = ptr SP_INSTALLWIZARD_DATA SP_NEWDEVICEWIZARD_DATA* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER @@ -396,6 +432,7 @@ DynamicPages*: array[MAX_INSTALLWIZARD_DYNAPAGES, HPROPSHEETPAGE] NumDynamicPages*: DWORD hwndWizardDlg*: HWND + PSP_NEWDEVICEWIZARD_DATA* = ptr SP_NEWDEVICEWIZARD_DATA SP_ADDPROPERTYPAGE_DATA* = SP_NEWDEVICEWIZARD_DATA PSP_ADDPROPERTYPAGE_DATA* = PSP_NEWDEVICEWIZARD_DATA @@ -403,22 +440,26 @@ ClassInstallHeader*: SP_CLASSINSTALL_HEADER ChmFile*: array[MAX_PATH, CHAR] HtmlTroubleShooter*: array[MAX_PATH, CHAR] + PSP_TROUBLESHOOTER_PARAMS_A* = ptr SP_TROUBLESHOOTER_PARAMS_A SP_TROUBLESHOOTER_PARAMS_W* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER ChmFile*: array[MAX_PATH, WCHAR] HtmlTroubleShooter*: array[MAX_PATH, WCHAR] + PSP_TROUBLESHOOTER_PARAMS_W* = ptr SP_TROUBLESHOOTER_PARAMS_W -const - LINE_LEN* = 256 + +const LINE_LEN* = 256 type SP_POWERMESSAGEWAKE_PARAMS_A* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER - PowerMessageWake*: array[LINE_LEN*2, CHAR] + PowerMessageWake*: array[LINE_LEN * 2, CHAR] + PSP_POWERMESSAGEWAKE_PARAMS_A* = ptr SP_POWERMESSAGEWAKE_PARAMS_A SP_POWERMESSAGEWAKE_PARAMS_W* {.pure.} = object ClassInstallHeader*: SP_CLASSINSTALL_HEADER - PowerMessageWake*: array[LINE_LEN*2, WCHAR] + PowerMessageWake*: array[LINE_LEN * 2, WCHAR] + PSP_POWERMESSAGEWAKE_PARAMS_W* = ptr SP_POWERMESSAGEWAKE_PARAMS_W SP_DRVINFO_DATA_V2_A* {.pure, packed.} = object cbSize*: DWORD @@ -429,6 +470,7 @@ ProviderName*: array[LINE_LEN, CHAR] DriverDate*: FILETIME DriverVersion*: DWORDLONG + PSP_DRVINFO_DATA_V2_A* = ptr SP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_V2_W* {.pure, packed.} = object cbSize*: DWORD @@ -439,6 +481,7 @@ ProviderName*: array[LINE_LEN, WCHAR] DriverDate*: FILETIME DriverVersion*: DWORDLONG + PSP_DRVINFO_DATA_V2_W* = ptr SP_DRVINFO_DATA_V2_W SP_DRVINFO_DATA_V1_A* {.pure.} = object cbSize*: DWORD @@ -447,6 +490,7 @@ Description*: array[LINE_LEN, CHAR] MfgName*: array[LINE_LEN, CHAR] ProviderName*: array[LINE_LEN, CHAR] + PSP_DRVINFO_DATA_V1_A* = ptr SP_DRVINFO_DATA_V1_A SP_DRVINFO_DATA_V1_W* {.pure.} = object cbSize*: DWORD @@ -455,77 +499,72 @@ Description*: array[LINE_LEN, WCHAR] MfgName*: array[LINE_LEN, WCHAR] ProviderName*: array[LINE_LEN, WCHAR] + PSP_DRVINFO_DATA_V1_W* = ptr SP_DRVINFO_DATA_V1_W SP_DRVINFO_DATA_A* = SP_DRVINFO_DATA_V2_A PSP_DRVINFO_DATA_A* = PSP_DRVINFO_DATA_V2_A SP_DRVINFO_DATA_W* = SP_DRVINFO_DATA_V2_W PSP_DRVINFO_DATA_W* = PSP_DRVINFO_DATA_V2_W + when winimUnicode: - type - SP_DRVINFO_DATA_V2* = SP_DRVINFO_DATA_V2_W + type SP_DRVINFO_DATA_V2* = SP_DRVINFO_DATA_V2_W when winimAnsi: - type - SP_DRVINFO_DATA_V2* = SP_DRVINFO_DATA_V2_A -type - SP_DRVINFO_DATA* = SP_DRVINFO_DATA_V2 + type SP_DRVINFO_DATA_V2* = SP_DRVINFO_DATA_V2_A +type SP_DRVINFO_DATA* = SP_DRVINFO_DATA_V2 when winimUnicode: - type - PSP_DRVINFO_DATA_V2* = PSP_DRVINFO_DATA_V2_W + type PSP_DRVINFO_DATA_V2* = PSP_DRVINFO_DATA_V2_W when winimAnsi: - type - PSP_DRVINFO_DATA_V2* = PSP_DRVINFO_DATA_V2_A -type - PSP_DRVINFO_DATA* = PSP_DRVINFO_DATA_V2 + type PSP_DRVINFO_DATA_V2* = PSP_DRVINFO_DATA_V2_A +type PSP_DRVINFO_DATA* = PSP_DRVINFO_DATA_V2 when winimCpu64: - type - SP_DRVINFO_DETAIL_DATA_A* {.pure.} = object - cbSize*: DWORD - InfDate*: FILETIME - CompatIDsOffset*: DWORD - CompatIDsLength*: DWORD - Reserved*: ULONG_PTR - SectionName*: array[LINE_LEN, CHAR] - InfFileName*: array[MAX_PATH, CHAR] - DrvDescription*: array[LINE_LEN, CHAR] - HardwareID*: array[ANYSIZE_ARRAY, CHAR] + type SP_DRVINFO_DETAIL_DATA_A* {.pure.} = object + cbSize*: DWORD + InfDate*: FILETIME + CompatIDsOffset*: DWORD + CompatIDsLength*: DWORD + Reserved*: ULONG_PTR + SectionName*: array[LINE_LEN, CHAR] + InfFileName*: array[MAX_PATH, CHAR] + DrvDescription*: array[LINE_LEN, CHAR] + HardwareID*: array[ANYSIZE_ARRAY, CHAR] + when winimCpu32: - type - SP_DRVINFO_DETAIL_DATA_A* {.pure, packed.} = object - cbSize*: DWORD - InfDate*: FILETIME - CompatIDsOffset*: DWORD - CompatIDsLength*: DWORD - Reserved*: ULONG_PTR - SectionName*: array[LINE_LEN, CHAR] - InfFileName*: array[MAX_PATH, CHAR] - DrvDescription*: array[LINE_LEN, CHAR] - HardwareID*: array[ANYSIZE_ARRAY, CHAR] -type - PSP_DRVINFO_DETAIL_DATA_A* = ptr SP_DRVINFO_DETAIL_DATA_A + type SP_DRVINFO_DETAIL_DATA_A* {.pure, packed.} = object + cbSize*: DWORD + InfDate*: FILETIME + CompatIDsOffset*: DWORD + CompatIDsLength*: DWORD + Reserved*: ULONG_PTR + SectionName*: array[LINE_LEN, CHAR] + InfFileName*: array[MAX_PATH, CHAR] + DrvDescription*: array[LINE_LEN, CHAR] + HardwareID*: array[ANYSIZE_ARRAY, CHAR] + +type PSP_DRVINFO_DETAIL_DATA_A* = ptr SP_DRVINFO_DETAIL_DATA_A when winimCpu64: - type - SP_DRVINFO_DETAIL_DATA_W* {.pure.} = object - cbSize*: DWORD - InfDate*: FILETIME - CompatIDsOffset*: DWORD - CompatIDsLength*: DWORD - Reserved*: ULONG_PTR - SectionName*: array[LINE_LEN, WCHAR] - InfFileName*: array[MAX_PATH, WCHAR] - DrvDescription*: array[LINE_LEN, WCHAR] - HardwareID*: array[ANYSIZE_ARRAY, WCHAR] + type SP_DRVINFO_DETAIL_DATA_W* {.pure.} = object + cbSize*: DWORD + InfDate*: FILETIME + CompatIDsOffset*: DWORD + CompatIDsLength*: DWORD + Reserved*: ULONG_PTR + SectionName*: array[LINE_LEN, WCHAR] + InfFileName*: array[MAX_PATH, WCHAR] + DrvDescription*: array[LINE_LEN, WCHAR] + HardwareID*: array[ANYSIZE_ARRAY, WCHAR] + when winimCpu32: - type - SP_DRVINFO_DETAIL_DATA_W* {.pure, packed.} = object - cbSize*: DWORD - InfDate*: FILETIME - CompatIDsOffset*: DWORD - CompatIDsLength*: DWORD - Reserved*: ULONG_PTR - SectionName*: array[LINE_LEN, WCHAR] - InfFileName*: array[MAX_PATH, WCHAR] - DrvDescription*: array[LINE_LEN, WCHAR] - HardwareID*: array[ANYSIZE_ARRAY, WCHAR] + type SP_DRVINFO_DETAIL_DATA_W* {.pure, packed.} = object + cbSize*: DWORD + InfDate*: FILETIME + CompatIDsOffset*: DWORD + CompatIDsLength*: DWORD + Reserved*: ULONG_PTR + SectionName*: array[LINE_LEN, WCHAR] + InfFileName*: array[MAX_PATH, WCHAR] + DrvDescription*: array[LINE_LEN, WCHAR] + HardwareID*: array[ANYSIZE_ARRAY, WCHAR] + type PSP_DRVINFO_DETAIL_DATA_W* = ptr SP_DRVINFO_DETAIL_DATA_W SP_DRVINSTALL_PARAMS* {.pure.} = object @@ -534,63 +573,67 @@ Flags*: DWORD PrivateData*: DWORD_PTR Reserved*: DWORD + PSP_DRVINSTALL_PARAMS* = ptr SP_DRVINSTALL_PARAMS COINSTALLER_CONTEXT_DATA* {.pure.} = object PostProcessing*: WINBOOL InstallResult*: DWORD PrivateData*: PVOID + PCOINSTALLER_CONTEXT_DATA* = ptr COINSTALLER_CONTEXT_DATA SP_CLASSIMAGELIST_DATA* {.pure.} = object cbSize*: DWORD ImageList*: HIMAGELIST Reserved*: ULONG_PTR + PSP_CLASSIMAGELIST_DATA* = ptr SP_CLASSIMAGELIST_DATA SP_PROPSHEETPAGE_REQUEST* {.pure.} = object cbSize*: DWORD PageRequested*: DWORD DeviceInfoSet*: HDEVINFO DeviceInfoData*: PSP_DEVINFO_DATA + PSP_PROPSHEETPAGE_REQUEST* = ptr SP_PROPSHEETPAGE_REQUEST SP_BACKUP_QUEUE_PARAMS_V2_A* {.pure.} = object cbSize*: DWORD FullInfPath*: array[MAX_PATH, CHAR] FilenameOffset*: INT ReinstallInstance*: array[MAX_PATH, CHAR] + PSP_BACKUP_QUEUE_PARAMS_V2_A* = ptr SP_BACKUP_QUEUE_PARAMS_V2_A SP_BACKUP_QUEUE_PARAMS_V2_W* {.pure.} = object cbSize*: DWORD FullInfPath*: array[MAX_PATH, WCHAR] FilenameOffset*: INT ReinstallInstance*: array[MAX_PATH, WCHAR] + PSP_BACKUP_QUEUE_PARAMS_V2_W* = ptr SP_BACKUP_QUEUE_PARAMS_V2_W SP_BACKUP_QUEUE_PARAMS_V1_A* {.pure.} = object cbSize*: DWORD FullInfPath*: array[MAX_PATH, CHAR] FilenameOffset*: INT + PSP_BACKUP_QUEUE_PARAMS_V1_A* = ptr SP_BACKUP_QUEUE_PARAMS_V1_A SP_BACKUP_QUEUE_PARAMS_V1_W* {.pure.} = object cbSize*: DWORD FullInfPath*: array[MAX_PATH, WCHAR] FilenameOffset*: INT + PSP_BACKUP_QUEUE_PARAMS_V1_W* = ptr SP_BACKUP_QUEUE_PARAMS_V1_W SP_BACKUP_QUEUE_PARAMS_A* = SP_BACKUP_QUEUE_PARAMS_V2_A PSP_BACKUP_QUEUE_PARAMS_A* = PSP_BACKUP_QUEUE_PARAMS_V2_A SP_BACKUP_QUEUE_PARAMS_W* = SP_BACKUP_QUEUE_PARAMS_V2_W PSP_BACKUP_QUEUE_PARAMS_W* = PSP_BACKUP_QUEUE_PARAMS_V2_W + when winimUnicode: - type - SP_BACKUP_QUEUE_PARAMS_V2* = SP_BACKUP_QUEUE_PARAMS_V2_W + type SP_BACKUP_QUEUE_PARAMS_V2* = SP_BACKUP_QUEUE_PARAMS_V2_W when winimAnsi: - type - SP_BACKUP_QUEUE_PARAMS_V2* = SP_BACKUP_QUEUE_PARAMS_V2_A -type - SP_BACKUP_QUEUE_PARAMS* = SP_BACKUP_QUEUE_PARAMS_V2 + type SP_BACKUP_QUEUE_PARAMS_V2* = SP_BACKUP_QUEUE_PARAMS_V2_A +type SP_BACKUP_QUEUE_PARAMS* = SP_BACKUP_QUEUE_PARAMS_V2 when winimUnicode: - type - PSP_BACKUP_QUEUE_PARAMS_V2* = PSP_BACKUP_QUEUE_PARAMS_V2_W + type PSP_BACKUP_QUEUE_PARAMS_V2* = PSP_BACKUP_QUEUE_PARAMS_V2_W when winimAnsi: - type - PSP_BACKUP_QUEUE_PARAMS_V2* = PSP_BACKUP_QUEUE_PARAMS_V2_A + type PSP_BACKUP_QUEUE_PARAMS_V2* = PSP_BACKUP_QUEUE_PARAMS_V2_A type PSP_BACKUP_QUEUE_PARAMS* = PSP_BACKUP_QUEUE_PARAMS_V2 SP_INF_SIGNER_INFO_A* {.pure.} = object @@ -598,13 +641,16 @@ CatalogFile*: array[MAX_PATH, CHAR] DigitalSigner*: array[MAX_PATH, CHAR] DigitalSignerVersion*: array[MAX_PATH, CHAR] + PSP_INF_SIGNER_INFO_A* = ptr SP_INF_SIGNER_INFO_A SP_INF_SIGNER_INFO_W* {.pure.} = object cbSize*: DWORD CatalogFile*: array[MAX_PATH, WCHAR] DigitalSigner*: array[MAX_PATH, WCHAR] DigitalSignerVersion*: array[MAX_PATH, WCHAR] + PSP_INF_SIGNER_INFO_W* = ptr SP_INF_SIGNER_INFO_W + const SETUPAPI_VER* = 0x0502 MAX_INF_STRING_LENGTH* = 4096 @@ -913,13 +959,16 @@ ERROR_KEY_DOES_NOT_EXIST* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x204 ERROR_INVALID_DEVINST_NAME* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x205 ERROR_INVALID_CLASS* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x206 - ERROR_DEVINST_ALREADY_EXISTS* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x207 - ERROR_DEVINFO_NOT_REGISTERED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x208 + ERROR_DEVINST_ALREADY_EXISTS* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x207 + ERROR_DEVINFO_NOT_REGISTERED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x208 ERROR_INVALID_REG_PROPERTY* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x209 ERROR_NO_INF* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20A ERROR_NO_SUCH_DEVINST* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20B ERROR_CANT_LOAD_CLASS_ICON* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20C - ERROR_INVALID_CLASS_INSTALLER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20D + ERROR_INVALID_CLASS_INSTALLER* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20D ERROR_DI_DO_DEFAULT* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20E ERROR_DI_NOFILECOPY* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x20F ERROR_INVALID_HWPROFILE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x210 @@ -927,24 +976,35 @@ ERROR_DEVINFO_LIST_LOCKED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x212 ERROR_DEVINFO_DATA_LOCKED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x213 ERROR_DI_BAD_PATH* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x214 - ERROR_NO_CLASSINSTALL_PARAMS* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x215 + ERROR_NO_CLASSINSTALL_PARAMS* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x215 ERROR_FILEQUEUE_LOCKED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x216 - ERROR_BAD_SERVICE_INSTALLSECT* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x217 + ERROR_BAD_SERVICE_INSTALLSECT* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x217 ERROR_NO_CLASS_DRIVER_LIST* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x218 ERROR_NO_ASSOCIATED_SERVICE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x219 - ERROR_NO_DEFAULT_DEVICE_INTERFACE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21A - ERROR_DEVICE_INTERFACE_ACTIVE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21B - ERROR_DEVICE_INTERFACE_REMOVED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21C - ERROR_BAD_INTERFACE_INSTALLSECT* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21D - ERROR_NO_SUCH_INTERFACE_CLASS* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21E - ERROR_INVALID_REFERENCE_STRING* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21F + ERROR_NO_DEFAULT_DEVICE_INTERFACE* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21A + ERROR_DEVICE_INTERFACE_ACTIVE* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21B + ERROR_DEVICE_INTERFACE_REMOVED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21C + ERROR_BAD_INTERFACE_INSTALLSECT* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21D + ERROR_NO_SUCH_INTERFACE_CLASS* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21E + ERROR_INVALID_REFERENCE_STRING* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x21F ERROR_INVALID_MACHINENAME* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x220 ERROR_REMOTE_COMM_FAILURE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x221 ERROR_MACHINE_UNAVAILABLE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x222 ERROR_NO_CONFIGMGR_SERVICES* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x223 - ERROR_INVALID_PROPPAGE_PROVIDER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x224 - ERROR_NO_SUCH_DEVICE_INTERFACE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x225 - ERROR_DI_POSTPROCESSING_REQUIRED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x226 + ERROR_INVALID_PROPPAGE_PROVIDER* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x224 + ERROR_NO_SUCH_DEVICE_INTERFACE* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x225 + ERROR_DI_POSTPROCESSING_REQUIRED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x226 ERROR_INVALID_COINSTALLER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x227 ERROR_NO_COMPAT_DRIVERS* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x228 ERROR_NO_DEVICE_ICON* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x229 @@ -953,30 +1013,44 @@ ERROR_INVALID_FILTER_DRIVER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x22C ERROR_NON_WINDOWS_NT_DRIVER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x22D ERROR_NON_WINDOWS_DRIVER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x22E - ERROR_NO_CATALOG_FOR_OEM_INF* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x22F - ERROR_DEVINSTALL_QUEUE_NONNATIVE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x230 + ERROR_NO_CATALOG_FOR_OEM_INF* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x22F + ERROR_DEVINSTALL_QUEUE_NONNATIVE* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x230 ERROR_NOT_DISABLEABLE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x231 ERROR_CANT_REMOVE_DEVINST* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x232 ERROR_INVALID_TARGET* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x233 ERROR_DRIVER_NONNATIVE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x234 ERROR_IN_WOW64* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x235 - ERROR_SET_SYSTEM_RESTORE_POINT* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x236 - ERROR_INCORRECTLY_COPIED_INF* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x237 + ERROR_SET_SYSTEM_RESTORE_POINT* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x236 + ERROR_INCORRECTLY_COPIED_INF* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x237 ERROR_SCE_DISABLED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x238 ERROR_UNKNOWN_EXCEPTION* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x239 ERROR_PNP_REGISTRY_ERROR* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23A - ERROR_REMOTE_REQUEST_UNSUPPORTED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23B - ERROR_NOT_AN_INSTALLED_OEM_INF* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23C + ERROR_REMOTE_REQUEST_UNSUPPORTED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23B + ERROR_NOT_AN_INSTALLED_OEM_INF* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23C ERROR_INF_IN_USE_BY_DEVICES* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23D ERROR_DI_FUNCTION_OBSOLETE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23E - ERROR_NO_AUTHENTICODE_CATALOG* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23F - ERROR_AUTHENTICODE_DISALLOWED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x240 - ERROR_AUTHENTICODE_TRUSTED_PUBLISHER* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x241 - ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x242 - ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x243 - ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x244 - ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x245 - ERROR_UNRECOVERABLE_STACK_OVERFLOW* = APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x300 + ERROR_NO_AUTHENTICODE_CATALOG* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x23F + ERROR_AUTHENTICODE_DISALLOWED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x240 + ERROR_AUTHENTICODE_TRUSTED_PUBLISHER* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x241 + ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x242 + ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x243 + ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x244 + ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x245 + ERROR_UNRECOVERABLE_STACK_OVERFLOW* = + APPLICATION_ERROR_MASK or ERROR_SEVERITY_ERROR or 0x300 EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW* = ERROR_UNRECOVERABLE_STACK_OVERFLOW ERROR_NO_DEFAULT_INTERFACE_DEVICE* = ERROR_NO_DEFAULT_DEVICE_INTERFACE ERROR_INTERFACE_DEVICE_ACTIVE* = ERROR_DEVICE_INTERFACE_ACTIVE @@ -1102,7 +1176,8 @@ FLG_DELREG_KEYONLY_COMMON* = FLG_ADDREG_KEYONLY_COMMON FLG_DELREG_32BITKEY* = FLG_ADDREG_32BITKEY FLG_DELREG_OPERATION_MASK* = 0x000000FE - FLG_DELREG_MULTI_SZ_DELSTRING* = FLG_DELREG_TYPE_MULTI_SZ or FLG_ADDREG_DELREG_BIT or 0x00000002 + FLG_DELREG_MULTI_SZ_DELSTRING* = + FLG_DELREG_TYPE_MULTI_SZ or FLG_ADDREG_DELREG_BIT or 0x00000002 FLG_BITREG_CLEARBITS* = 0x00000000 FLG_BITREG_SETBITS* = 0x00000001 FLG_BITREG_64BITKEY* = 0x00001000 @@ -1243,341 +1318,2260 @@ SPWP_USE_DEVINFO_DATA* = 0x00000001 DICUSTOMDEVPROP_MERGE_MULTISZ* = 0x00000001 SCWMI_CLOBBER_SECURITY* = 0x00000001 -type - PSP_DETSIG_CMPPROC* = proc (DeviceInfoSet: HDEVINFO, NewDeviceData: PSP_DEVINFO_DATA, ExistingDeviceData: PSP_DEVINFO_DATA, CompareContext: PVOID): DWORD {.stdcall.} -proc SetupGetInfInformationA*(InfSpec: LPCVOID, SearchControl: DWORD, ReturnBuffer: PSP_INF_INFORMATION, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetInfInformationW*(InfSpec: LPCVOID, SearchControl: DWORD, ReturnBuffer: PSP_INF_INFORMATION, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryInfFileInformationA*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryInfFileInformationW*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryInfOriginalFileInformationA*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryInfOriginalFileInformationW*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryInfVersionInformationA*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, Key: PCSTR, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryInfVersionInformationW*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, Key: PCWSTR, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetInfFileListA*(DirectoryPath: PCSTR, InfStyle: DWORD, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetInfFileListW*(DirectoryPath: PCWSTR, InfStyle: DWORD, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupOpenInfFileW*(FileName: PCWSTR, InfClass: PCWSTR, InfStyle: DWORD, ErrorLine: PUINT): HINF {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupOpenInfFileA*(FileName: PCSTR, InfClass: PCSTR, InfStyle: DWORD, ErrorLine: PUINT): HINF {.winapi, stdcall, dynlib: "setupapi", importc.} +type PSP_DETSIG_CMPPROC* = proc( + DeviceInfoSet: HDEVINFO, + NewDeviceData: PSP_DEVINFO_DATA, + ExistingDeviceData: PSP_DEVINFO_DATA, + CompareContext: PVOID, +): DWORD {.stdcall.} + +proc SetupGetInfInformationA*( + InfSpec: LPCVOID, + SearchControl: DWORD, + ReturnBuffer: PSP_INF_INFORMATION, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetInfInformationW*( + InfSpec: LPCVOID, + SearchControl: DWORD, + ReturnBuffer: PSP_INF_INFORMATION, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryInfFileInformationA*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryInfFileInformationW*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryInfOriginalFileInformationA*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryInfOriginalFileInformationW*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryInfVersionInformationA*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + Key: PCSTR, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryInfVersionInformationW*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + Key: PCWSTR, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetInfFileListA*( + DirectoryPath: PCSTR, + InfStyle: DWORD, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetInfFileListW*( + DirectoryPath: PCWSTR, + InfStyle: DWORD, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupOpenInfFileW*( + FileName: PCWSTR, InfClass: PCWSTR, InfStyle: DWORD, ErrorLine: PUINT +): HINF {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupOpenInfFileA*( + FileName: PCSTR, InfClass: PCSTR, InfStyle: DWORD, ErrorLine: PUINT +): HINF {.winapi, stdcall, dynlib: "setupapi", importc.} + proc SetupOpenMasterInf*(): HINF {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupOpenAppendInfFileW*(FileName: PCWSTR, InfHandle: HINF, ErrorLine: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupOpenAppendInfFileA*(FileName: PCSTR, InfHandle: HINF, ErrorLine: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCloseInfFile*(InfHandle: HINF): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFindFirstLineA*(InfHandle: HINF, Section: PCSTR, Key: PCSTR, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFindFirstLineW*(InfHandle: HINF, Section: PCWSTR, Key: PCWSTR, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFindNextLine*(ContextIn: PINFCONTEXT, ContextOut: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFindNextMatchLineA*(ContextIn: PINFCONTEXT, Key: PCSTR, ContextOut: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFindNextMatchLineW*(ContextIn: PINFCONTEXT, Key: PCWSTR, ContextOut: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetLineByIndexA*(InfHandle: HINF, Section: PCSTR, Index: DWORD, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetLineByIndexW*(InfHandle: HINF, Section: PCWSTR, Index: DWORD, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetLineCountA*(InfHandle: HINF, Section: PCSTR): LONG {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetLineCountW*(InfHandle: HINF, Section: PCWSTR): LONG {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetLineTextA*(Context: PINFCONTEXT, InfHandle: HINF, Section: PCSTR, Key: PCSTR, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetLineTextW*(Context: PINFCONTEXT, InfHandle: HINF, Section: PCWSTR, Key: PCWSTR, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFieldCount*(Context: PINFCONTEXT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetStringFieldA*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetStringFieldW*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetIntField*(Context: PINFCONTEXT, FieldIndex: DWORD, IntegerValue: PINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetMultiSzFieldA*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetMultiSzFieldW*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetBinaryField*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PBYTE, ReturnBufferSize: DWORD, RequiredSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFileCompressionInfoA*(SourceFileName: PCSTR, ActualSourceFileName: ptr PSTR, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFileCompressionInfoW*(SourceFileName: PCWSTR, ActualSourceFileName: ptr PWSTR, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFileCompressionInfoExA*(SourceFileName: PCSTR, ActualSourceFileNameBuffer: PSTR, ActualSourceFileNameBufferLen: DWORD, RequiredBufferLen: PDWORD, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFileCompressionInfoExW*(SourceFileName: PCWSTR, ActualSourceFileNameBuffer: PWSTR, ActualSourceFileNameBufferLen: DWORD, RequiredBufferLen: PDWORD, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDecompressOrCopyFileA*(SourceFileName: PCSTR, TargetFileName: PCSTR, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDecompressOrCopyFileW*(SourceFileName: PCWSTR, TargetFileName: PCWSTR, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetSourceFileLocationA*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCSTR, SourceId: PUINT, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetSourceFileLocationW*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCWSTR, SourceId: PUINT, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetSourceFileSizeA*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCSTR, Section: PCSTR, FileSize: PDWORD, RoundingFactor: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetSourceFileSizeW*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCWSTR, Section: PCWSTR, FileSize: PDWORD, RoundingFactor: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetTargetPathA*(InfHandle: HINF, InfContext: PINFCONTEXT, Section: PCSTR, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetTargetPathW*(InfHandle: HINF, InfContext: PINFCONTEXT, Section: PCWSTR, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetSourceListA*(Flags: DWORD, SourceList: ptr PCSTR, SourceCount: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetSourceListW*(Flags: DWORD, SourceList: ptr PCWSTR, SourceCount: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCancelTemporarySourceList*(): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddToSourceListA*(Flags: DWORD, Source: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddToSourceListW*(Flags: DWORD, Source: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveFromSourceListA*(Flags: DWORD, Source: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveFromSourceListW*(Flags: DWORD, Source: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQuerySourceListA*(Flags: DWORD, List: ptr ptr PCSTR, Count: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQuerySourceListW*(Flags: DWORD, List: ptr ptr PCWSTR, Count: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFreeSourceListA*(List: ptr ptr PCSTR, Count: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupFreeSourceListW*(List: ptr ptr PCWSTR, Count: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupPromptForDiskA*(hwndParent: HWND, DialogTitle: PCSTR, DiskName: PCSTR, PathToSource: PCSTR, FileSought: PCSTR, TagFile: PCSTR, DiskPromptStyle: DWORD, PathBuffer: PSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupPromptForDiskW*(hwndParent: HWND, DialogTitle: PCWSTR, DiskName: PCWSTR, PathToSource: PCWSTR, FileSought: PCWSTR, TagFile: PCWSTR, DiskPromptStyle: DWORD, PathBuffer: PWSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCopyErrorA*(hwndParent: HWND, DialogTitle: PCSTR, DiskName: PCSTR, PathToSource: PCSTR, SourceFile: PCSTR, TargetPathFile: PCSTR, Win32ErrorCode: UINT, Style: DWORD, PathBuffer: PSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCopyErrorW*(hwndParent: HWND, DialogTitle: PCWSTR, DiskName: PCWSTR, PathToSource: PCWSTR, SourceFile: PCWSTR, TargetPathFile: PCWSTR, Win32ErrorCode: UINT, Style: DWORD, PathBuffer: PWSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRenameErrorA*(hwndParent: HWND, DialogTitle: PCSTR, SourceFile: PCSTR, TargetFile: PCSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRenameErrorW*(hwndParent: HWND, DialogTitle: PCWSTR, SourceFile: PCWSTR, TargetFile: PCWSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDeleteErrorA*(hwndParent: HWND, DialogTitle: PCSTR, File: PCSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDeleteErrorW*(hwndParent: HWND, DialogTitle: PCWSTR, File: PCWSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupBackupErrorA*(hwndParent: HWND, DialogTitle: PCSTR, SourceFile: PCSTR, TargetFile: PCSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupBackupErrorW*(hwndParent: HWND, DialogTitle: PCWSTR, SourceFile: PCWSTR, TargetFile: PCWSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetDirectoryIdA*(InfHandle: HINF, Id: DWORD, Directory: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetDirectoryIdW*(InfHandle: HINF, Id: DWORD, Directory: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetDirectoryIdExA*(InfHandle: HINF, Id: DWORD, Directory: PCSTR, Flags: DWORD, Reserved1: DWORD, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetDirectoryIdExW*(InfHandle: HINF, Id: DWORD, Directory: PCWSTR, Flags: DWORD, Reserved1: DWORD, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetSourceInfoA*(InfHandle: HINF, SourceId: UINT, InfoDesired: UINT, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetSourceInfoW*(InfHandle: HINF, SourceId: UINT, InfoDesired: UINT, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFileA*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCSTR, SourcePathRoot: PCSTR, DestinationName: PCSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFileW*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCWSTR, SourcePathRoot: PCWSTR, DestinationName: PCWSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFileExA*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCSTR, SourcePathRoot: PCSTR, DestinationName: PCSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID, FileWasInUse: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFileExW*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCWSTR, SourcePathRoot: PCWSTR, DestinationName: PCWSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID, FileWasInUse: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} +proc SetupOpenAppendInfFileW*( + FileName: PCWSTR, InfHandle: HINF, ErrorLine: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupOpenAppendInfFileA*( + FileName: PCSTR, InfHandle: HINF, ErrorLine: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCloseInfFile*( + InfHandle: HINF +): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFindFirstLineA*( + InfHandle: HINF, Section: PCSTR, Key: PCSTR, Context: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFindFirstLineW*( + InfHandle: HINF, Section: PCWSTR, Key: PCWSTR, Context: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFindNextLine*( + ContextIn: PINFCONTEXT, ContextOut: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFindNextMatchLineA*( + ContextIn: PINFCONTEXT, Key: PCSTR, ContextOut: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFindNextMatchLineW*( + ContextIn: PINFCONTEXT, Key: PCWSTR, ContextOut: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetLineByIndexA*( + InfHandle: HINF, Section: PCSTR, Index: DWORD, Context: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetLineByIndexW*( + InfHandle: HINF, Section: PCWSTR, Index: DWORD, Context: PINFCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetLineCountA*( + InfHandle: HINF, Section: PCSTR +): LONG {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetLineCountW*( + InfHandle: HINF, Section: PCWSTR +): LONG {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetLineTextA*( + Context: PINFCONTEXT, + InfHandle: HINF, + Section: PCSTR, + Key: PCSTR, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetLineTextW*( + Context: PINFCONTEXT, + InfHandle: HINF, + Section: PCWSTR, + Key: PCWSTR, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFieldCount*( + Context: PINFCONTEXT +): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetStringFieldA*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetStringFieldW*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetIntField*( + Context: PINFCONTEXT, FieldIndex: DWORD, IntegerValue: PINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetMultiSzFieldA*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetMultiSzFieldW*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetBinaryField*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PBYTE, + ReturnBufferSize: DWORD, + RequiredSize: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFileCompressionInfoA*( + SourceFileName: PCSTR, + ActualSourceFileName: ptr PSTR, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, +): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFileCompressionInfoW*( + SourceFileName: PCWSTR, + ActualSourceFileName: ptr PWSTR, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, +): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFileCompressionInfoExA*( + SourceFileName: PCSTR, + ActualSourceFileNameBuffer: PSTR, + ActualSourceFileNameBufferLen: DWORD, + RequiredBufferLen: PDWORD, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFileCompressionInfoExW*( + SourceFileName: PCWSTR, + ActualSourceFileNameBuffer: PWSTR, + ActualSourceFileNameBufferLen: DWORD, + RequiredBufferLen: PDWORD, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDecompressOrCopyFileA*( + SourceFileName: PCSTR, TargetFileName: PCSTR, CompressionType: PUINT +): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDecompressOrCopyFileW*( + SourceFileName: PCWSTR, TargetFileName: PCWSTR, CompressionType: PUINT +): DWORD {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetSourceFileLocationA*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCSTR, + SourceId: PUINT, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetSourceFileLocationW*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCWSTR, + SourceId: PUINT, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetSourceFileSizeA*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCSTR, + Section: PCSTR, + FileSize: PDWORD, + RoundingFactor: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetSourceFileSizeW*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCWSTR, + Section: PCWSTR, + FileSize: PDWORD, + RoundingFactor: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetTargetPathA*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + Section: PCSTR, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetTargetPathW*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + Section: PCWSTR, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetSourceListA*( + Flags: DWORD, SourceList: ptr PCSTR, SourceCount: UINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetSourceListW*( + Flags: DWORD, SourceList: ptr PCWSTR, SourceCount: UINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCancelTemporarySourceList*(): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc +.} + +proc SetupAddToSourceListA*( + Flags: DWORD, Source: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddToSourceListW*( + Flags: DWORD, Source: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveFromSourceListA*( + Flags: DWORD, Source: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveFromSourceListW*( + Flags: DWORD, Source: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQuerySourceListA*( + Flags: DWORD, List: ptr ptr PCSTR, Count: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQuerySourceListW*( + Flags: DWORD, List: ptr ptr PCWSTR, Count: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFreeSourceListA*( + List: ptr ptr PCSTR, Count: UINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupFreeSourceListW*( + List: ptr ptr PCWSTR, Count: UINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupPromptForDiskA*( + hwndParent: HWND, + DialogTitle: PCSTR, + DiskName: PCSTR, + PathToSource: PCSTR, + FileSought: PCSTR, + TagFile: PCSTR, + DiskPromptStyle: DWORD, + PathBuffer: PSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupPromptForDiskW*( + hwndParent: HWND, + DialogTitle: PCWSTR, + DiskName: PCWSTR, + PathToSource: PCWSTR, + FileSought: PCWSTR, + TagFile: PCWSTR, + DiskPromptStyle: DWORD, + PathBuffer: PWSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCopyErrorA*( + hwndParent: HWND, + DialogTitle: PCSTR, + DiskName: PCSTR, + PathToSource: PCSTR, + SourceFile: PCSTR, + TargetPathFile: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, + PathBuffer: PSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCopyErrorW*( + hwndParent: HWND, + DialogTitle: PCWSTR, + DiskName: PCWSTR, + PathToSource: PCWSTR, + SourceFile: PCWSTR, + TargetPathFile: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, + PathBuffer: PWSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRenameErrorA*( + hwndParent: HWND, + DialogTitle: PCSTR, + SourceFile: PCSTR, + TargetFile: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRenameErrorW*( + hwndParent: HWND, + DialogTitle: PCWSTR, + SourceFile: PCWSTR, + TargetFile: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDeleteErrorA*( + hwndParent: HWND, DialogTitle: PCSTR, File: PCSTR, Win32ErrorCode: UINT, Style: DWORD +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDeleteErrorW*( + hwndParent: HWND, + DialogTitle: PCWSTR, + File: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupBackupErrorA*( + hwndParent: HWND, + DialogTitle: PCSTR, + SourceFile: PCSTR, + TargetFile: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupBackupErrorW*( + hwndParent: HWND, + DialogTitle: PCWSTR, + SourceFile: PCWSTR, + TargetFile: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetDirectoryIdA*( + InfHandle: HINF, Id: DWORD, Directory: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetDirectoryIdW*( + InfHandle: HINF, Id: DWORD, Directory: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetDirectoryIdExA*( + InfHandle: HINF, + Id: DWORD, + Directory: PCSTR, + Flags: DWORD, + Reserved1: DWORD, + Reserved2: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetDirectoryIdExW*( + InfHandle: HINF, + Id: DWORD, + Directory: PCWSTR, + Flags: DWORD, + Reserved1: DWORD, + Reserved2: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetSourceInfoA*( + InfHandle: HINF, + SourceId: UINT, + InfoDesired: UINT, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetSourceInfoW*( + InfHandle: HINF, + SourceId: UINT, + InfoDesired: UINT, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFileA*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCSTR, + SourcePathRoot: PCSTR, + DestinationName: PCSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_A, + Context: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFileW*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCWSTR, + SourcePathRoot: PCWSTR, + DestinationName: PCWSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFileExA*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCSTR, + SourcePathRoot: PCSTR, + DestinationName: PCSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_A, + Context: PVOID, + FileWasInUse: PBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFileExW*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCWSTR, + SourcePathRoot: PCWSTR, + DestinationName: PCWSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, + FileWasInUse: PBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + proc SetupOpenFileQueue*(): HSPFILEQ {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCloseFileQueue*(QueueHandle: HSPFILEQ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetFileQueueAlternatePlatformA*(QueueHandle: HSPFILEQ, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, AlternateDefaultCatalogFile: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetFileQueueAlternatePlatformW*(QueueHandle: HSPFILEQ, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, AlternateDefaultCatalogFile: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetPlatformPathOverrideA*(Override: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetPlatformPathOverrideW*(Override: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueCopyA*(QueueHandle: HSPFILEQ, SourceRootPath: PCSTR, SourcePath: PCSTR, SourceFilename: PCSTR, SourceDescription: PCSTR, SourceTagfile: PCSTR, TargetDirectory: PCSTR, TargetFilename: PCSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueCopyW*(QueueHandle: HSPFILEQ, SourceRootPath: PCWSTR, SourcePath: PCWSTR, SourceFilename: PCWSTR, SourceDescription: PCWSTR, SourceTagfile: PCWSTR, TargetDirectory: PCWSTR, TargetFilename: PCWSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueCopyIndirectA*(CopyParams: PSP_FILE_COPY_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueCopyIndirectW*(CopyParams: PSP_FILE_COPY_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueDefaultCopyA*(QueueHandle: HSPFILEQ, InfHandle: HINF, SourceRootPath: PCSTR, SourceFilename: PCSTR, TargetFilename: PCSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueDefaultCopyW*(QueueHandle: HSPFILEQ, InfHandle: HINF, SourceRootPath: PCWSTR, SourceFilename: PCWSTR, TargetFilename: PCWSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueCopySectionA*(QueueHandle: HSPFILEQ, SourceRootPath: PCSTR, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueCopySectionW*(QueueHandle: HSPFILEQ, SourceRootPath: PCWSTR, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueDeleteA*(QueueHandle: HSPFILEQ, PathPart1: PCSTR, PathPart2: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueDeleteW*(QueueHandle: HSPFILEQ, PathPart1: PCWSTR, PathPart2: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueDeleteSectionA*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueDeleteSectionW*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueRenameA*(QueueHandle: HSPFILEQ, SourcePath: PCSTR, SourceFilename: PCSTR, TargetPath: PCSTR, TargetFilename: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueRenameW*(QueueHandle: HSPFILEQ, SourcePath: PCWSTR, SourceFilename: PCWSTR, TargetPath: PCWSTR, TargetFilename: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueRenameSectionA*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueueRenameSectionW*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCommitFileQueueA*(Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCommitFileQueueW*(Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupScanFileQueueA*(FileQueue: HSPFILEQ, Flags: DWORD, Window: HWND, CallbackRoutine: PSP_FILE_CALLBACK_A, CallbackContext: PVOID, Result: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupScanFileQueueW*(FileQueue: HSPFILEQ, Flags: DWORD, Window: HWND, CallbackRoutine: PSP_FILE_CALLBACK_W, CallbackContext: PVOID, Result: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFileQueueCount*(FileQueue: HSPFILEQ, SubQueueFileOp: UINT, NumOperations: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetFileQueueFlags*(FileQueue: HSPFILEQ, Flags: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetFileQueueFlags*(FileQueue: HSPFILEQ, FlagMask: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCopyOEMInfA*(SourceInfFileName: PCSTR, OEMSourceMediaLocation: PCSTR, OEMSourceMediaType: DWORD, CopyStyle: DWORD, DestinationInfFileName: PSTR, DestinationInfFileNameSize: DWORD, RequiredSize: PDWORD, DestinationInfFileNameComponent: ptr PSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCopyOEMInfW*(SourceInfFileName: PCWSTR, OEMSourceMediaLocation: PCWSTR, OEMSourceMediaType: DWORD, CopyStyle: DWORD, DestinationInfFileName: PWSTR, DestinationInfFileNameSize: DWORD, RequiredSize: PDWORD, DestinationInfFileNameComponent: ptr PWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupUninstallOEMInfA*(InfFileName: PCSTR, Flags: DWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupUninstallOEMInfW*(InfFileName: PCWSTR, Flags: DWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupUninstallNewlyCopiedInfs*(FileQueue: HSPFILEQ, Flags: DWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCreateDiskSpaceListA*(Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupCreateDiskSpaceListW*(Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDuplicateDiskSpaceListA*(DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDuplicateDiskSpaceListW*(DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDestroyDiskSpaceList*(DiskSpace: HDSKSPC): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryDrivesInDiskSpaceListA*(DiskSpace: HDSKSPC, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryDrivesInDiskSpaceListW*(DiskSpace: HDSKSPC, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQuerySpaceRequiredOnDriveA*(DiskSpace: HDSKSPC, DriveSpec: PCSTR, SpaceRequired: ptr LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQuerySpaceRequiredOnDriveW*(DiskSpace: HDSKSPC, DriveSpec: PCWSTR, SpaceRequired: ptr LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAdjustDiskSpaceListA*(DiskSpace: HDSKSPC, DriveRoot: LPCSTR, Amount: LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAdjustDiskSpaceListW*(DiskSpace: HDSKSPC, DriveRoot: LPCWSTR, Amount: LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddToDiskSpaceListA*(DiskSpace: HDSKSPC, TargetFilespec: PCSTR, FileSize: LONGLONG, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddToDiskSpaceListW*(DiskSpace: HDSKSPC, TargetFilespec: PCWSTR, FileSize: LONGLONG, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddSectionToDiskSpaceListA*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddSectionToDiskSpaceListW*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCWSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddInstallSectionToDiskSpaceListA*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupAddInstallSectionToDiskSpaceListW*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCWSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveFromDiskSpaceListA*(DiskSpace: HDSKSPC, TargetFilespec: PCSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveFromDiskSpaceListW*(DiskSpace: HDSKSPC, TargetFilespec: PCWSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveSectionFromDiskSpaceListA*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveSectionFromDiskSpaceListW*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCWSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveInstallSectionFromDiskSpaceListA*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveInstallSectionFromDiskSpaceListW*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCWSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupIterateCabinetA*(CabinetFile: PCSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupIterateCabinetW*(CabinetFile: PCWSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupPromptReboot*(FileQueue: HSPFILEQ, Owner: HWND, ScanOnly: WINBOOL): INT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInitDefaultQueueCallback*(OwnerWindow: HWND): PVOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInitDefaultQueueCallbackEx*(OwnerWindow: HWND, AlternateProgressWindow: HWND, ProgressMessage: UINT, Reserved1: DWORD, Reserved2: PVOID): PVOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupTermDefaultQueueCallback*(Context: PVOID): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDefaultQueueCallbackA*(Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDefaultQueueCallbackW*(Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFromInfSectionA*(Owner: HWND, InfHandle: HINF, SectionName: PCSTR, Flags: UINT, RelativeKeyRoot: HKEY, SourceRootPath: PCSTR, CopyFlags: UINT, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFromInfSectionW*(Owner: HWND, InfHandle: HINF, SectionName: PCWSTR, Flags: UINT, RelativeKeyRoot: HKEY, SourceRootPath: PCWSTR, CopyFlags: UINT, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFilesFromInfSectionA*(InfHandle: HINF, LayoutInfHandle: HINF, FileQueue: HSPFILEQ, SectionName: PCSTR, SourceRootPath: PCSTR, CopyFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallFilesFromInfSectionW*(InfHandle: HINF, LayoutInfHandle: HINF, FileQueue: HSPFILEQ, SectionName: PCWSTR, SourceRootPath: PCWSTR, CopyFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallServicesFromInfSectionA*(InfHandle: HINF, SectionName: PCSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallServicesFromInfSectionW*(InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallServicesFromInfSectionExA*(InfHandle: HINF, SectionName: PCSTR, Flags: DWORD, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInstallServicesFromInfSectionExW*(InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc InstallHinfSectionA*(Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCSTR, ShowCommand: INT): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc InstallHinfSectionW*(Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCWSTR, ShowCommand: INT): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInitializeFileLogA*(LogFileName: PCSTR, Flags: DWORD): HSPFILELOG {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupInitializeFileLogW*(LogFileName: PCWSTR, Flags: DWORD): HSPFILELOG {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupTerminateFileLog*(FileLogHandle: HSPFILELOG): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupLogFileA*(FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, SourceFilename: PCSTR, TargetFilename: PCSTR, Checksum: DWORD, DiskTagfile: PCSTR, DiskDescription: PCSTR, OtherInfo: PCSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupLogFileW*(FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, SourceFilename: PCWSTR, TargetFilename: PCWSTR, Checksum: DWORD, DiskTagfile: PCWSTR, DiskDescription: PCWSTR, OtherInfo: PCWSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveFileLogEntryA*(FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, TargetFilename: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupRemoveFileLogEntryW*(FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, TargetFilename: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryFileLogA*(FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, TargetFilename: PCSTR, DesiredInfo: SetupFileLogInfo, DataOut: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupQueryFileLogW*(FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, TargetFilename: PCWSTR, DesiredInfo: SetupFileLogInfo, DataOut: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupOpenLog*(Erase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupLogErrorA*(MessageString: LPCSTR, Severity: LogSeverity): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupLogErrorW*(MessageString: LPCWSTR, Severity: LogSeverity): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} +proc SetupCloseFileQueue*( + QueueHandle: HSPFILEQ +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetFileQueueAlternatePlatformA*( + QueueHandle: HSPFILEQ, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + AlternateDefaultCatalogFile: PCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetFileQueueAlternatePlatformW*( + QueueHandle: HSPFILEQ, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + AlternateDefaultCatalogFile: PCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetPlatformPathOverrideA*( + Override: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetPlatformPathOverrideW*( + Override: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueCopyA*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCSTR, + SourcePath: PCSTR, + SourceFilename: PCSTR, + SourceDescription: PCSTR, + SourceTagfile: PCSTR, + TargetDirectory: PCSTR, + TargetFilename: PCSTR, + CopyStyle: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueCopyW*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCWSTR, + SourcePath: PCWSTR, + SourceFilename: PCWSTR, + SourceDescription: PCWSTR, + SourceTagfile: PCWSTR, + TargetDirectory: PCWSTR, + TargetFilename: PCWSTR, + CopyStyle: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueCopyIndirectA*( + CopyParams: PSP_FILE_COPY_PARAMS_A +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueCopyIndirectW*( + CopyParams: PSP_FILE_COPY_PARAMS_W +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueDefaultCopyA*( + QueueHandle: HSPFILEQ, + InfHandle: HINF, + SourceRootPath: PCSTR, + SourceFilename: PCSTR, + TargetFilename: PCSTR, + CopyStyle: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueDefaultCopyW*( + QueueHandle: HSPFILEQ, + InfHandle: HINF, + SourceRootPath: PCWSTR, + SourceFilename: PCWSTR, + TargetFilename: PCWSTR, + CopyStyle: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueCopySectionA*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCSTR, + InfHandle: HINF, + ListInfHandle: HINF, + Section: PCSTR, + CopyStyle: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueCopySectionW*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCWSTR, + InfHandle: HINF, + ListInfHandle: HINF, + Section: PCWSTR, + CopyStyle: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueDeleteA*( + QueueHandle: HSPFILEQ, PathPart1: PCSTR, PathPart2: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueDeleteW*( + QueueHandle: HSPFILEQ, PathPart1: PCWSTR, PathPart2: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueDeleteSectionA*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueDeleteSectionW*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueRenameA*( + QueueHandle: HSPFILEQ, + SourcePath: PCSTR, + SourceFilename: PCSTR, + TargetPath: PCSTR, + TargetFilename: PCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueRenameW*( + QueueHandle: HSPFILEQ, + SourcePath: PCWSTR, + SourceFilename: PCWSTR, + TargetPath: PCWSTR, + TargetFilename: PCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueRenameSectionA*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueueRenameSectionW*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCommitFileQueueA*( + Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCommitFileQueueW*( + Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupScanFileQueueA*( + FileQueue: HSPFILEQ, + Flags: DWORD, + Window: HWND, + CallbackRoutine: PSP_FILE_CALLBACK_A, + CallbackContext: PVOID, + Result: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupScanFileQueueW*( + FileQueue: HSPFILEQ, + Flags: DWORD, + Window: HWND, + CallbackRoutine: PSP_FILE_CALLBACK_W, + CallbackContext: PVOID, + Result: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFileQueueCount*( + FileQueue: HSPFILEQ, SubQueueFileOp: UINT, NumOperations: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetFileQueueFlags*( + FileQueue: HSPFILEQ, Flags: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetFileQueueFlags*( + FileQueue: HSPFILEQ, FlagMask: DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCopyOEMInfA*( + SourceInfFileName: PCSTR, + OEMSourceMediaLocation: PCSTR, + OEMSourceMediaType: DWORD, + CopyStyle: DWORD, + DestinationInfFileName: PSTR, + DestinationInfFileNameSize: DWORD, + RequiredSize: PDWORD, + DestinationInfFileNameComponent: ptr PSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCopyOEMInfW*( + SourceInfFileName: PCWSTR, + OEMSourceMediaLocation: PCWSTR, + OEMSourceMediaType: DWORD, + CopyStyle: DWORD, + DestinationInfFileName: PWSTR, + DestinationInfFileNameSize: DWORD, + RequiredSize: PDWORD, + DestinationInfFileNameComponent: ptr PWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupUninstallOEMInfA*( + InfFileName: PCSTR, Flags: DWORD, Reserved: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupUninstallOEMInfW*( + InfFileName: PCWSTR, Flags: DWORD, Reserved: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupUninstallNewlyCopiedInfs*( + FileQueue: HSPFILEQ, Flags: DWORD, Reserved: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCreateDiskSpaceListA*( + Reserved1: PVOID, Reserved2: DWORD, Flags: UINT +): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupCreateDiskSpaceListW*( + Reserved1: PVOID, Reserved2: DWORD, Flags: UINT +): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDuplicateDiskSpaceListA*( + DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT +): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDuplicateDiskSpaceListW*( + DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT +): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDestroyDiskSpaceList*( + DiskSpace: HDSKSPC +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryDrivesInDiskSpaceListA*( + DiskSpace: HDSKSPC, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryDrivesInDiskSpaceListW*( + DiskSpace: HDSKSPC, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQuerySpaceRequiredOnDriveA*( + DiskSpace: HDSKSPC, + DriveSpec: PCSTR, + SpaceRequired: ptr LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQuerySpaceRequiredOnDriveW*( + DiskSpace: HDSKSPC, + DriveSpec: PCWSTR, + SpaceRequired: ptr LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAdjustDiskSpaceListA*( + DiskSpace: HDSKSPC, + DriveRoot: LPCSTR, + Amount: LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAdjustDiskSpaceListW*( + DiskSpace: HDSKSPC, + DriveRoot: LPCWSTR, + Amount: LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddToDiskSpaceListA*( + DiskSpace: HDSKSPC, + TargetFilespec: PCSTR, + FileSize: LONGLONG, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddToDiskSpaceListW*( + DiskSpace: HDSKSPC, + TargetFilespec: PCWSTR, + FileSize: LONGLONG, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddSectionToDiskSpaceListA*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddSectionToDiskSpaceListW*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCWSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddInstallSectionToDiskSpaceListA*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCSTR, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupAddInstallSectionToDiskSpaceListW*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCWSTR, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveFromDiskSpaceListA*( + DiskSpace: HDSKSPC, + TargetFilespec: PCSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveFromDiskSpaceListW*( + DiskSpace: HDSKSPC, + TargetFilespec: PCWSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveSectionFromDiskSpaceListA*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveSectionFromDiskSpaceListW*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCWSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveInstallSectionFromDiskSpaceListA*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCSTR, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveInstallSectionFromDiskSpaceListW*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCWSTR, + Reserved1: PVOID, + Reserved2: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupIterateCabinetA*( + CabinetFile: PCSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupIterateCabinetW*( + CabinetFile: PCWSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupPromptReboot*( + FileQueue: HSPFILEQ, Owner: HWND, ScanOnly: WINBOOL +): INT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInitDefaultQueueCallback*( + OwnerWindow: HWND +): PVOID {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInitDefaultQueueCallbackEx*( + OwnerWindow: HWND, + AlternateProgressWindow: HWND, + ProgressMessage: UINT, + Reserved1: DWORD, + Reserved2: PVOID, +): PVOID {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupTermDefaultQueueCallback*( + Context: PVOID +): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDefaultQueueCallbackA*( + Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDefaultQueueCallbackW*( + Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR +): UINT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFromInfSectionA*( + Owner: HWND, + InfHandle: HINF, + SectionName: PCSTR, + Flags: UINT, + RelativeKeyRoot: HKEY, + SourceRootPath: PCSTR, + CopyFlags: UINT, + MsgHandler: PSP_FILE_CALLBACK_A, + Context: PVOID, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFromInfSectionW*( + Owner: HWND, + InfHandle: HINF, + SectionName: PCWSTR, + Flags: UINT, + RelativeKeyRoot: HKEY, + SourceRootPath: PCWSTR, + CopyFlags: UINT, + MsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFilesFromInfSectionA*( + InfHandle: HINF, + LayoutInfHandle: HINF, + FileQueue: HSPFILEQ, + SectionName: PCSTR, + SourceRootPath: PCSTR, + CopyFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallFilesFromInfSectionW*( + InfHandle: HINF, + LayoutInfHandle: HINF, + FileQueue: HSPFILEQ, + SectionName: PCWSTR, + SourceRootPath: PCWSTR, + CopyFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallServicesFromInfSectionA*( + InfHandle: HINF, SectionName: PCSTR, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallServicesFromInfSectionW*( + InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallServicesFromInfSectionExA*( + InfHandle: HINF, + SectionName: PCSTR, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Reserved1: PVOID, + Reserved2: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInstallServicesFromInfSectionExW*( + InfHandle: HINF, + SectionName: PCWSTR, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Reserved1: PVOID, + Reserved2: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc InstallHinfSectionA*( + Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCSTR, ShowCommand: INT +): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc InstallHinfSectionW*( + Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCWSTR, ShowCommand: INT +): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInitializeFileLogA*( + LogFileName: PCSTR, Flags: DWORD +): HSPFILELOG {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupInitializeFileLogW*( + LogFileName: PCWSTR, Flags: DWORD +): HSPFILELOG {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupTerminateFileLog*( + FileLogHandle: HSPFILELOG +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupLogFileA*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCSTR, + SourceFilename: PCSTR, + TargetFilename: PCSTR, + Checksum: DWORD, + DiskTagfile: PCSTR, + DiskDescription: PCSTR, + OtherInfo: PCSTR, + Flags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupLogFileW*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCWSTR, + SourceFilename: PCWSTR, + TargetFilename: PCWSTR, + Checksum: DWORD, + DiskTagfile: PCWSTR, + DiskDescription: PCWSTR, + OtherInfo: PCWSTR, + Flags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveFileLogEntryA*( + FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, TargetFilename: PCSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupRemoveFileLogEntryW*( + FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, TargetFilename: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryFileLogA*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCSTR, + TargetFilename: PCSTR, + DesiredInfo: SetupFileLogInfo, + DataOut: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupQueryFileLogW*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCWSTR, + TargetFilename: PCWSTR, + DesiredInfo: SetupFileLogInfo, + DataOut: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupOpenLog*( + Erase: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupLogErrorA*( + MessageString: LPCSTR, Severity: LogSeverity +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupLogErrorW*( + MessageString: LPCWSTR, Severity: LogSeverity +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + proc SetupCloseLog*(): VOID {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetBackupInformationA*(QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetBackupInformationW*(QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupPrepareQueueForRestoreA*(QueueHandle: HSPFILEQ, BackupPath: PCSTR, RestoreFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupPrepareQueueForRestoreW*(QueueHandle: HSPFILEQ, BackupPath: PCWSTR, RestoreFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupSetNonInteractiveMode*(NonInteractiveFlag: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupGetNonInteractiveMode*(): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInfoList*(ClassGuid: ptr GUID, hwndParent: HWND): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInfoListExA*(ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInfoListExW*(ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCWSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInfoListClass*(DeviceInfoSet: HDEVINFO, ClassGuid: LPGUID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInfoListDetailA*(DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInfoListDetailW*(DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInfoA*(DeviceInfoSet: HDEVINFO, DeviceName: PCSTR, ClassGuid: ptr GUID, DeviceDescription: PCSTR, hwndParent: HWND, CreationFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInfoW*(DeviceInfoSet: HDEVINFO, DeviceName: PCWSTR, ClassGuid: ptr GUID, DeviceDescription: PCWSTR, hwndParent: HWND, CreationFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenDeviceInfoA*(DeviceInfoSet: HDEVINFO, DeviceInstanceId: PCSTR, hwndParent: HWND, OpenFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenDeviceInfoW*(DeviceInfoSet: HDEVINFO, DeviceInstanceId: PCWSTR, hwndParent: HWND, OpenFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInstanceIdA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstanceId: PSTR, DeviceInstanceIdSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInstanceIdW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstanceId: PWSTR, DeviceInstanceIdSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDeleteDeviceInfo*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiEnumDeviceInfo*(DeviceInfoSet: HDEVINFO, MemberIndex: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDestroyDeviceInfoList*(DeviceInfoSet: HDEVINFO): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiEnumDeviceInterfaces*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, MemberIndex: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiEnumInterfaceDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, MemberIndex: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiEnumDeviceInterfaces".} -proc SetupDiCreateDeviceInterfaceA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInterfaceW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCWSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateInterfaceDeviceW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCWSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceW".} -proc SetupDiCreateInterfaceDeviceA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceA".} -proc SetupDiOpenDeviceInterfaceA*(DeviceInfoSet: HDEVINFO, DevicePath: PCSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenDeviceInterfaceW*(DeviceInfoSet: HDEVINFO, DevicePath: PCWSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenInterfaceDeviceW*(DeviceInfoSet: HDEVINFO, DevicePath: PCWSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceW".} -proc SetupDiOpenInterfaceDeviceA*(DeviceInfoSet: HDEVINFO, DevicePath: PCSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceA".} -proc SetupDiGetDeviceInterfaceAlias*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, AliasInterfaceClassGuid: ptr GUID, AliasDeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetInterfaceDeviceAlias*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, AliasInterfaceClassGuid: ptr GUID, AliasDeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceAlias".} -proc SetupDiDeleteDeviceInterfaceData*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDeleteInterfaceDeviceData*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiDeleteDeviceInterfaceData".} -proc SetupDiRemoveDeviceInterface*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiRemoveInterfaceDevice*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiRemoveDeviceInterface".} -proc SetupDiGetDeviceInterfaceDetailA*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInterfaceDetailW*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetInterfaceDeviceDetailW*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailW".} -proc SetupDiGetInterfaceDeviceDetailA*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailA".} -proc SetupDiInstallDeviceInterfaces*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallInterfaceDevices*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallDeviceInterfaces".} -proc SetupDiSetDeviceInterfaceDefault*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Flags: DWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiRegisterDeviceInfo*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Flags: DWORD, CompareProc: PSP_DETSIG_CMPPROC, CompareContext: PVOID, DupDeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiBuildDriverInfoList*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCancelDriverInfoSearch*(DeviceInfoSet: HDEVINFO): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiEnumDriverInfoA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD, MemberIndex: DWORD, DriverInfoData: PSP_DRVINFO_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiEnumDriverInfoW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD, MemberIndex: DWORD, DriverInfoData: PSP_DRVINFO_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetSelectedDriverA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetSelectedDriverW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetSelectedDriverA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetSelectedDriverW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDriverInfoDetailA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A, DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_A, DriverInfoDetailDataSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDriverInfoDetailW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W, DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_W, DriverInfoDetailDataSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDestroyDriverInfoList*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDevsA*(ClassGuid: ptr GUID, Enumerator: PCSTR, hwndParent: HWND, Flags: DWORD): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDevsW*(ClassGuid: ptr GUID, Enumerator: PCWSTR, hwndParent: HWND, Flags: DWORD): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDevsExA*(ClassGuid: ptr GUID, Enumerator: PCSTR, hwndParent: HWND, Flags: DWORD, DeviceInfoSet: HDEVINFO, MachineName: PCSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDevsExW*(ClassGuid: ptr GUID, Enumerator: PCWSTR, hwndParent: HWND, Flags: DWORD, DeviceInfoSet: HDEVINFO, MachineName: PCWSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetINFClassA*(InfName: PCSTR, ClassGuid: LPGUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetINFClassW*(InfName: PCWSTR, ClassGuid: LPGUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiBuildClassInfoList*(Flags: DWORD, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiBuildClassInfoListExA*(Flags: DWORD, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiBuildClassInfoListExW*(Flags: DWORD, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDescriptionA*(ClassGuid: ptr GUID, ClassDescription: PSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDescriptionW*(ClassGuid: ptr GUID, ClassDescription: PWSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDescriptionExA*(ClassGuid: ptr GUID, ClassDescription: PSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDescriptionExW*(ClassGuid: ptr GUID, ClassDescription: PWSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCallClassInstaller*(InstallFunction: DI_FUNCTION, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSelectDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSelectBestCompatDrv*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallDriverFiles*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiRegisterCoDeviceInstallers*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiRemoveDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiUnremoveDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiRestartDevices*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiChangeState*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallClassA*(hwndParent: HWND, InfFileName: PCSTR, Flags: DWORD, FileQueue: HSPFILEQ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallClassW*(hwndParent: HWND, InfFileName: PCWSTR, Flags: DWORD, FileQueue: HSPFILEQ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallClassExA*(hwndParent: HWND, InfFileName: PCSTR, Flags: DWORD, FileQueue: HSPFILEQ, InterfaceClassGuid: ptr GUID, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiInstallClassExW*(hwndParent: HWND, InfFileName: PCWSTR, Flags: DWORD, FileQueue: HSPFILEQ, InterfaceClassGuid: ptr GUID, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenClassRegKey*(ClassGuid: ptr GUID, samDesired: REGSAM): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenClassRegKeyExA*(ClassGuid: ptr GUID, samDesired: REGSAM, Flags: DWORD, MachineName: PCSTR, Reserved: PVOID): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenClassRegKeyExW*(ClassGuid: ptr GUID, samDesired: REGSAM, Flags: DWORD, MachineName: PCWSTR, Reserved: PVOID): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInterfaceRegKeyA*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDeviceInterfaceRegKeyW*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCWSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateInterfaceDeviceRegKeyW*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCWSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyW".} -proc SetupDiCreateInterfaceDeviceRegKeyA*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyA".} -proc SetupDiOpenDeviceInterfaceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenInterfaceDeviceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceRegKey".} -proc SetupDiDeleteDeviceInterfaceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDeleteInterfaceDeviceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiDeleteDeviceInterfaceRegKey".} -proc SetupDiCreateDevRegKeyA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Scope: DWORD, HwProfile: DWORD, KeyType: DWORD, InfHandle: HINF, InfSectionName: PCSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiCreateDevRegKeyW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Scope: DWORD, HwProfile: DWORD, KeyType: DWORD, InfHandle: HINF, InfSectionName: PCWSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiOpenDevRegKey*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Scope: DWORD, HwProfile: DWORD, KeyType: DWORD, samDesired: REGSAM): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDeleteDevRegKey*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Scope: DWORD, HwProfile: DWORD, KeyType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileList*(HwProfileList: PDWORD, HwProfileListSize: DWORD, RequiredSize: PDWORD, CurrentlyActiveIndex: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileListExA*(HwProfileList: PDWORD, HwProfileListSize: DWORD, RequiredSize: PDWORD, CurrentlyActiveIndex: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileListExW*(HwProfileList: PDWORD, HwProfileListSize: DWORD, RequiredSize: PDWORD, CurrentlyActiveIndex: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceRegistryPropertyA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceRegistryPropertyW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassRegistryPropertyA*(ClassGuid: ptr GUID, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassRegistryPropertyW*(ClassGuid: ptr GUID, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetDeviceRegistryPropertyA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetDeviceRegistryPropertyW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetClassRegistryPropertyA*(ClassGuid: ptr GUID, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetClassRegistryPropertyW*(ClassGuid: ptr GUID, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInstallParamsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDeviceInstallParamsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassInstallParamsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassInstallParamsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetDeviceInstallParamsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetDeviceInstallParamsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetClassInstallParamsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetClassInstallParamsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDriverInstallParamsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetDriverInstallParamsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetDriverInstallParamsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetDriverInstallParamsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiLoadClassIcon*(ClassGuid: ptr GUID, LargeIcon: ptr HICON, MiniIconIndex: PINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDrawMiniIcon*(hdc: HDC, rc: RECT, MiniIconIndex: INT, Flags: DWORD): INT {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassBitmapIndex*(ClassGuid: ptr GUID, MiniIconIndex: PINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassImageList*(ClassImageListData: PSP_CLASSIMAGELIST_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassImageListExA*(ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassImageListExW*(ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassImageIndex*(ClassImageListData: PSP_CLASSIMAGELIST_DATA, ClassGuid: ptr GUID, ImageIndex: PINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiDestroyClassImageList*(ClassImageListData: PSP_CLASSIMAGELIST_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDevPropertySheetsA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, PropertySheetHeader: LPPROPSHEETHEADERA, PropertySheetHeaderPageListSize: DWORD, RequiredSize: PDWORD, PropertySheetType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetClassDevPropertySheetsW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, PropertySheetHeader: LPPROPSHEETHEADERW, PropertySheetHeaderPageListSize: DWORD, RequiredSize: PDWORD, PropertySheetType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiAskForOEMDisk*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSelectOEMDrv*(hwndParent: HWND, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassNameFromGuidA*(ClassGuid: ptr GUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassNameFromGuidW*(ClassGuid: ptr GUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassNameFromGuidExA*(ClassGuid: ptr GUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassNameFromGuidExW*(ClassGuid: ptr GUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassGuidsFromNameA*(ClassName: PCSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassGuidsFromNameW*(ClassName: PCWSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassGuidsFromNameExA*(ClassName: PCSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiClassGuidsFromNameExW*(ClassName: PCWSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileFriendlyNameA*(HwProfile: DWORD, FriendlyName: PSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileFriendlyNameW*(HwProfile: DWORD, FriendlyName: PWSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileFriendlyNameExA*(HwProfile: DWORD, FriendlyName: PSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetHwProfileFriendlyNameExW*(HwProfile: DWORD, FriendlyName: PWSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetWizardPage*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InstallWizardData: PSP_INSTALLWIZARD_DATA, PageType: DWORD, Flags: DWORD): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetSelectedDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiSetSelectedDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetActualModelsSectionA*(Context: PINFCONTEXT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetActualModelsSectionW*(Context: PINFCONTEXT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PWSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetActualSectionToInstallA*(InfHandle: HINF, InfSectionName: PCSTR, InfSectionWithExt: PSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetActualSectionToInstallW*(InfHandle: HINF, InfSectionName: PCWSTR, InfSectionWithExt: PWSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetActualSectionToInstallExA*(InfHandle: HINF, InfSectionName: PCSTR, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetActualSectionToInstallExW*(InfHandle: HINF, InfSectionName: PCWSTR, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PWSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupEnumInfSectionsA*(InfHandle: HINF, Index: UINT, Buffer: PSTR, Size: UINT, SizeNeeded: ptr UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupEnumInfSectionsW*(InfHandle: HINF, Index: UINT, Buffer: PWSTR, Size: UINT, SizeNeeded: ptr UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupVerifyInfFileA*(InfName: PCSTR, AltPlatformInfo: PSP_ALTPLATFORM_INFO, InfSignerInfo: PSP_INF_SIGNER_INFO_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupVerifyInfFileW*(InfName: PCWSTR, AltPlatformInfo: PSP_ALTPLATFORM_INFO, InfSignerInfo: PSP_INF_SIGNER_INFO_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetCustomDevicePropertyA*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, CustomPropertyName: PCSTR, Flags: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupDiGetCustomDevicePropertyW*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, CustomPropertyName: PCWSTR, Flags: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupConfigureWmiFromInfSectionA*(InfHandle: HINF, SectionName: PCSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc SetupConfigureWmiFromInfSectionW*(InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} -proc `Reserved=`*(self: var SP_ALTPLATFORM_INFO_V2, x: WORD) {.inline.} = self.union1.Reserved = x -proc Reserved*(self: SP_ALTPLATFORM_INFO_V2): WORD {.inline.} = self.union1.Reserved -proc Reserved*(self: var SP_ALTPLATFORM_INFO_V2): var WORD {.inline.} = self.union1.Reserved -proc `Flags=`*(self: var SP_ALTPLATFORM_INFO_V2, x: WORD) {.inline.} = self.union1.Flags = x -proc Flags*(self: SP_ALTPLATFORM_INFO_V2): WORD {.inline.} = self.union1.Flags -proc Flags*(self: var SP_ALTPLATFORM_INFO_V2): var WORD {.inline.} = self.union1.Flags +proc SetupGetBackupInformationA*( + QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_A +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetBackupInformationW*( + QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_W +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupPrepareQueueForRestoreA*( + QueueHandle: HSPFILEQ, BackupPath: PCSTR, RestoreFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupPrepareQueueForRestoreW*( + QueueHandle: HSPFILEQ, BackupPath: PCWSTR, RestoreFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupSetNonInteractiveMode*( + NonInteractiveFlag: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupGetNonInteractiveMode*(): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc +.} + +proc SetupDiCreateDeviceInfoList*( + ClassGuid: ptr GUID, hwndParent: HWND +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInfoListExA*( + ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCSTR, Reserved: PVOID +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInfoListExW*( + ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCWSTR, Reserved: PVOID +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInfoListClass*( + DeviceInfoSet: HDEVINFO, ClassGuid: LPGUID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInfoListDetailA*( + DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_A +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInfoListDetailW*( + DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_W +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInfoA*( + DeviceInfoSet: HDEVINFO, + DeviceName: PCSTR, + ClassGuid: ptr GUID, + DeviceDescription: PCSTR, + hwndParent: HWND, + CreationFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInfoW*( + DeviceInfoSet: HDEVINFO, + DeviceName: PCWSTR, + ClassGuid: ptr GUID, + DeviceDescription: PCWSTR, + hwndParent: HWND, + CreationFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenDeviceInfoA*( + DeviceInfoSet: HDEVINFO, + DeviceInstanceId: PCSTR, + hwndParent: HWND, + OpenFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenDeviceInfoW*( + DeviceInfoSet: HDEVINFO, + DeviceInstanceId: PCWSTR, + hwndParent: HWND, + OpenFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInstanceIdA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstanceId: PSTR, + DeviceInstanceIdSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInstanceIdW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstanceId: PWSTR, + DeviceInstanceIdSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDeleteDeviceInfo*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiEnumDeviceInfo*( + DeviceInfoSet: HDEVINFO, MemberIndex: DWORD, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDestroyDeviceInfoList*( + DeviceInfoSet: HDEVINFO +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiEnumDeviceInterfaces*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + MemberIndex: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiEnumInterfaceDevice*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + MemberIndex: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiEnumDeviceInterfaces" +.} + +proc SetupDiCreateDeviceInterfaceA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInterfaceW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCWSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateInterfaceDeviceW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCWSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceW" +.} + +proc SetupDiCreateInterfaceDeviceA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceA" +.} + +proc SetupDiOpenDeviceInterfaceA*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenDeviceInterfaceW*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCWSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenInterfaceDeviceW*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCWSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceW" +.} + +proc SetupDiOpenInterfaceDeviceA*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceA" +.} + +proc SetupDiGetDeviceInterfaceAlias*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + AliasInterfaceClassGuid: ptr GUID, + AliasDeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetInterfaceDeviceAlias*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + AliasInterfaceClassGuid: ptr GUID, + AliasDeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceAlias" +.} + +proc SetupDiDeleteDeviceInterfaceData*( + DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDeleteInterfaceDeviceData*( + DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiDeleteDeviceInterfaceData" +.} + +proc SetupDiRemoveDeviceInterface*( + DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiRemoveInterfaceDevice*( + DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiRemoveDeviceInterface" +.} + +proc SetupDiGetDeviceInterfaceDetailA*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInterfaceDetailW*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetInterfaceDeviceDetailW*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailW" +.} + +proc SetupDiGetInterfaceDeviceDetailA*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailA" +.} + +proc SetupDiInstallDeviceInterfaces*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallInterfaceDevices*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallDeviceInterfaces" +.} + +proc SetupDiSetDeviceInterfaceDefault*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Flags: DWORD, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiRegisterDeviceInfo*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Flags: DWORD, + CompareProc: PSP_DETSIG_CMPPROC, + CompareContext: PVOID, + DupDeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiBuildDriverInfoList*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCancelDriverInfoSearch*( + DeviceInfoSet: HDEVINFO +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiEnumDriverInfoA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverType: DWORD, + MemberIndex: DWORD, + DriverInfoData: PSP_DRVINFO_DATA_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiEnumDriverInfoW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverType: DWORD, + MemberIndex: DWORD, + DriverInfoData: PSP_DRVINFO_DATA_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetSelectedDriverA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetSelectedDriverW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetSelectedDriverA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetSelectedDriverW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDriverInfoDetailA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_A, + DriverInfoDetailDataSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDriverInfoDetailW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_W, + DriverInfoDetailDataSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDestroyDriverInfoList*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDevsA*( + ClassGuid: ptr GUID, Enumerator: PCSTR, hwndParent: HWND, Flags: DWORD +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDevsW*( + ClassGuid: ptr GUID, Enumerator: PCWSTR, hwndParent: HWND, Flags: DWORD +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDevsExA*( + ClassGuid: ptr GUID, + Enumerator: PCSTR, + hwndParent: HWND, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + MachineName: PCSTR, + Reserved: PVOID, +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDevsExW*( + ClassGuid: ptr GUID, + Enumerator: PCWSTR, + hwndParent: HWND, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + MachineName: PCWSTR, + Reserved: PVOID, +): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetINFClassA*( + InfName: PCSTR, + ClassGuid: LPGUID, + ClassName: PSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetINFClassW*( + InfName: PCWSTR, + ClassGuid: LPGUID, + ClassName: PWSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiBuildClassInfoList*( + Flags: DWORD, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiBuildClassInfoListExA*( + Flags: DWORD, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiBuildClassInfoListExW*( + Flags: DWORD, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDescriptionA*( + ClassGuid: ptr GUID, + ClassDescription: PSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDescriptionW*( + ClassGuid: ptr GUID, + ClassDescription: PWSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDescriptionExA*( + ClassGuid: ptr GUID, + ClassDescription: PSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDescriptionExW*( + ClassGuid: ptr GUID, + ClassDescription: PWSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCallClassInstaller*( + InstallFunction: DI_FUNCTION, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSelectDevice*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSelectBestCompatDrv*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallDevice*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallDriverFiles*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiRegisterCoDeviceInstallers*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiRemoveDevice*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiUnremoveDevice*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiRestartDevices*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiChangeState*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallClassA*( + hwndParent: HWND, InfFileName: PCSTR, Flags: DWORD, FileQueue: HSPFILEQ +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallClassW*( + hwndParent: HWND, InfFileName: PCWSTR, Flags: DWORD, FileQueue: HSPFILEQ +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallClassExA*( + hwndParent: HWND, + InfFileName: PCSTR, + Flags: DWORD, + FileQueue: HSPFILEQ, + InterfaceClassGuid: ptr GUID, + Reserved1: PVOID, + Reserved2: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiInstallClassExW*( + hwndParent: HWND, + InfFileName: PCWSTR, + Flags: DWORD, + FileQueue: HSPFILEQ, + InterfaceClassGuid: ptr GUID, + Reserved1: PVOID, + Reserved2: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenClassRegKey*( + ClassGuid: ptr GUID, samDesired: REGSAM +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenClassRegKeyExA*( + ClassGuid: ptr GUID, + samDesired: REGSAM, + Flags: DWORD, + MachineName: PCSTR, + Reserved: PVOID, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenClassRegKeyExW*( + ClassGuid: ptr GUID, + samDesired: REGSAM, + Flags: DWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInterfaceRegKeyA*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCSTR, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDeviceInterfaceRegKeyW*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCWSTR, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateInterfaceDeviceRegKeyW*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCWSTR, +): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyW" +.} + +proc SetupDiCreateInterfaceDeviceRegKeyA*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCSTR, +): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyA" +.} + +proc SetupDiOpenDeviceInterfaceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenInterfaceDeviceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, +): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceRegKey" +.} + +proc SetupDiDeleteDeviceInterfaceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDeleteInterfaceDeviceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, +): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiDeleteDeviceInterfaceRegKey" +.} + +proc SetupDiCreateDevRegKeyA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Scope: DWORD, + HwProfile: DWORD, + KeyType: DWORD, + InfHandle: HINF, + InfSectionName: PCSTR, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiCreateDevRegKeyW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Scope: DWORD, + HwProfile: DWORD, + KeyType: DWORD, + InfHandle: HINF, + InfSectionName: PCWSTR, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiOpenDevRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Scope: DWORD, + HwProfile: DWORD, + KeyType: DWORD, + samDesired: REGSAM, +): HKEY {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDeleteDevRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Scope: DWORD, + HwProfile: DWORD, + KeyType: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileList*( + HwProfileList: PDWORD, + HwProfileListSize: DWORD, + RequiredSize: PDWORD, + CurrentlyActiveIndex: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileListExA*( + HwProfileList: PDWORD, + HwProfileListSize: DWORD, + RequiredSize: PDWORD, + CurrentlyActiveIndex: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileListExW*( + HwProfileList: PDWORD, + HwProfileListSize: DWORD, + RequiredSize: PDWORD, + CurrentlyActiveIndex: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceRegistryPropertyA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceRegistryPropertyW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassRegistryPropertyA*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassRegistryPropertyW*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetDeviceRegistryPropertyA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetDeviceRegistryPropertyW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetClassRegistryPropertyA*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetClassRegistryPropertyW*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInstallParamsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDeviceInstallParamsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassInstallParamsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassInstallParamsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetDeviceInstallParamsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetDeviceInstallParamsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetClassInstallParamsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetClassInstallParamsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDriverInstallParamsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetDriverInstallParamsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetDriverInstallParamsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetDriverInstallParamsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiLoadClassIcon*( + ClassGuid: ptr GUID, LargeIcon: ptr HICON, MiniIconIndex: PINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDrawMiniIcon*( + hdc: HDC, rc: RECT, MiniIconIndex: INT, Flags: DWORD +): INT {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassBitmapIndex*( + ClassGuid: ptr GUID, MiniIconIndex: PINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassImageList*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassImageListExA*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCSTR, Reserved: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassImageListExW*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCWSTR, Reserved: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassImageIndex*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA, ClassGuid: ptr GUID, ImageIndex: PINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiDestroyClassImageList*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDevPropertySheetsA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + PropertySheetHeader: LPPROPSHEETHEADERA, + PropertySheetHeaderPageListSize: DWORD, + RequiredSize: PDWORD, + PropertySheetType: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetClassDevPropertySheetsW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + PropertySheetHeader: LPPROPSHEETHEADERW, + PropertySheetHeaderPageListSize: DWORD, + RequiredSize: PDWORD, + PropertySheetType: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiAskForOEMDisk*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSelectOEMDrv*( + hwndParent: HWND, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassNameFromGuidA*( + ClassGuid: ptr GUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassNameFromGuidW*( + ClassGuid: ptr GUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassNameFromGuidExA*( + ClassGuid: ptr GUID, + ClassName: PSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassNameFromGuidExW*( + ClassGuid: ptr GUID, + ClassName: PWSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassGuidsFromNameA*( + ClassName: PCSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassGuidsFromNameW*( + ClassName: PCWSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassGuidsFromNameExA*( + ClassName: PCSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiClassGuidsFromNameExW*( + ClassName: PCWSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileFriendlyNameA*( + HwProfile: DWORD, FriendlyName: PSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileFriendlyNameW*( + HwProfile: DWORD, FriendlyName: PWSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileFriendlyNameExA*( + HwProfile: DWORD, + FriendlyName: PSTR, + FriendlyNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetHwProfileFriendlyNameExW*( + HwProfile: DWORD, + FriendlyName: PWSTR, + FriendlyNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetWizardPage*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InstallWizardData: PSP_INSTALLWIZARD_DATA, + PageType: DWORD, + Flags: DWORD, +): HPROPSHEETPAGE {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetSelectedDevice*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiSetSelectedDevice*( + DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetActualModelsSectionA*( + Context: PINFCONTEXT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetActualModelsSectionW*( + Context: PINFCONTEXT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PWSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetActualSectionToInstallA*( + InfHandle: HINF, + InfSectionName: PCSTR, + InfSectionWithExt: PSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetActualSectionToInstallW*( + InfHandle: HINF, + InfSectionName: PCWSTR, + InfSectionWithExt: PWSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetActualSectionToInstallExA*( + InfHandle: HINF, + InfSectionName: PCSTR, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetActualSectionToInstallExW*( + InfHandle: HINF, + InfSectionName: PCWSTR, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PWSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PWSTR, + Reserved: PVOID, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupEnumInfSectionsA*( + InfHandle: HINF, Index: UINT, Buffer: PSTR, Size: UINT, SizeNeeded: ptr UINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupEnumInfSectionsW*( + InfHandle: HINF, Index: UINT, Buffer: PWSTR, Size: UINT, SizeNeeded: ptr UINT +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupVerifyInfFileA*( + InfName: PCSTR, + AltPlatformInfo: PSP_ALTPLATFORM_INFO, + InfSignerInfo: PSP_INF_SIGNER_INFO_A, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupVerifyInfFileW*( + InfName: PCWSTR, + AltPlatformInfo: PSP_ALTPLATFORM_INFO, + InfSignerInfo: PSP_INF_SIGNER_INFO_W, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetCustomDevicePropertyA*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + CustomPropertyName: PCSTR, + Flags: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupDiGetCustomDevicePropertyW*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + CustomPropertyName: PCWSTR, + Flags: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupConfigureWmiFromInfSectionA*( + InfHandle: HINF, SectionName: PCSTR, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc SetupConfigureWmiFromInfSectionW*( + InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc.} + +proc `Reserved=`*(self: var SP_ALTPLATFORM_INFO_V2, x: WORD) {.inline.} = + self.union1.Reserved = x + +proc Reserved*(self: SP_ALTPLATFORM_INFO_V2): WORD {.inline.} = + self.union1.Reserved + +proc Reserved*(self: var SP_ALTPLATFORM_INFO_V2): var WORD {.inline.} = + self.union1.Reserved + +proc `Flags=`*(self: var SP_ALTPLATFORM_INFO_V2, x: WORD) {.inline.} = + self.union1.Flags = x + +proc Flags*(self: SP_ALTPLATFORM_INFO_V2): WORD {.inline.} = + self.union1.Flags + +proc Flags*(self: var SP_ALTPLATFORM_INFO_V2): var WORD {.inline.} = + self.union1.Flags + when winimUnicode: type SP_ORIGINAL_FILE_INFO* = SP_ORIGINAL_FILE_INFO_W @@ -1618,133 +3612,1102 @@ PSP_BACKUP_QUEUE_PARAMS_V1* = PSP_BACKUP_QUEUE_PARAMS_V1_W SP_INF_SIGNER_INFO* = SP_INF_SIGNER_INFO_W PSP_INF_SIGNER_INFO* = PSP_INF_SIGNER_INFO_W - proc SetupGetInfInformation*(InfSpec: LPCVOID, SearchControl: DWORD, ReturnBuffer: PSP_INF_INFORMATION, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfInformationW".} - proc SetupQueryInfFileInformation*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfFileInformationW".} - proc SetupQueryInfOriginalFileInformation*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfOriginalFileInformationW".} - proc SetupQueryInfVersionInformation*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, Key: PCWSTR, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfVersionInformationW".} - proc SetupGetInfFileList*(DirectoryPath: PCWSTR, InfStyle: DWORD, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfFileListW".} - proc SetupOpenInfFile*(FileName: PCWSTR, InfClass: PCWSTR, InfStyle: DWORD, ErrorLine: PUINT): HINF {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenInfFileW".} - proc SetupOpenAppendInfFile*(FileName: PCWSTR, InfHandle: HINF, ErrorLine: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenAppendInfFileW".} - proc SetupFindFirstLine*(InfHandle: HINF, Section: PCWSTR, Key: PCWSTR, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindFirstLineW".} - proc SetupFindNextMatchLine*(ContextIn: PINFCONTEXT, Key: PCWSTR, ContextOut: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindNextMatchLineW".} - proc SetupGetLineByIndex*(InfHandle: HINF, Section: PCWSTR, Index: DWORD, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineByIndexW".} - proc SetupGetLineCount*(InfHandle: HINF, Section: PCWSTR): LONG {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineCountW".} - proc SetupGetLineText*(Context: PINFCONTEXT, InfHandle: HINF, Section: PCWSTR, Key: PCWSTR, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineTextW".} - proc SetupGetStringField*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetStringFieldW".} - proc SetupGetMultiSzField*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetMultiSzFieldW".} - proc SetupGetFileCompressionInfo*(SourceFileName: PCWSTR, ActualSourceFileName: ptr PWSTR, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoW".} - proc SetupGetFileCompressionInfoEx*(SourceFileName: PCWSTR, ActualSourceFileNameBuffer: PWSTR, ActualSourceFileNameBufferLen: DWORD, RequiredBufferLen: PDWORD, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoExW".} - proc SetupDecompressOrCopyFile*(SourceFileName: PCWSTR, TargetFileName: PCWSTR, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDecompressOrCopyFileW".} - proc SetupGetSourceFileLocation*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCWSTR, SourceId: PUINT, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileLocationW".} - proc SetupGetSourceFileSize*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCWSTR, Section: PCWSTR, FileSize: PDWORD, RoundingFactor: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileSizeW".} - proc SetupGetTargetPath*(InfHandle: HINF, InfContext: PINFCONTEXT, Section: PCWSTR, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetTargetPathW".} - proc SetupSetSourceList*(Flags: DWORD, SourceList: ptr PCWSTR, SourceCount: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetSourceListW".} - proc SetupAddToSourceList*(Flags: DWORD, Source: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToSourceListW".} - proc SetupRemoveFromSourceList*(Flags: DWORD, Source: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromSourceListW".} - proc SetupQuerySourceList*(Flags: DWORD, List: ptr ptr PCWSTR, Count: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySourceListW".} - proc SetupFreeSourceList*(List: ptr ptr PCWSTR, Count: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFreeSourceListW".} - proc SetupPromptForDisk*(hwndParent: HWND, DialogTitle: PCWSTR, DiskName: PCWSTR, PathToSource: PCWSTR, FileSought: PCWSTR, TagFile: PCWSTR, DiskPromptStyle: DWORD, PathBuffer: PWSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupPromptForDiskW".} - proc SetupCopyError*(hwndParent: HWND, DialogTitle: PCWSTR, DiskName: PCWSTR, PathToSource: PCWSTR, SourceFile: PCWSTR, TargetPathFile: PCWSTR, Win32ErrorCode: UINT, Style: DWORD, PathBuffer: PWSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyErrorW".} - proc SetupRenameError*(hwndParent: HWND, DialogTitle: PCWSTR, SourceFile: PCWSTR, TargetFile: PCWSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRenameErrorW".} - proc SetupDeleteError*(hwndParent: HWND, DialogTitle: PCWSTR, File: PCWSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDeleteErrorW".} - proc SetupBackupError*(hwndParent: HWND, DialogTitle: PCWSTR, SourceFile: PCWSTR, TargetFile: PCWSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupBackupErrorW".} - proc SetupSetDirectoryId*(InfHandle: HINF, Id: DWORD, Directory: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdW".} - proc SetupSetDirectoryIdEx*(InfHandle: HINF, Id: DWORD, Directory: PCWSTR, Flags: DWORD, Reserved1: DWORD, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdExW".} - proc SetupGetSourceInfo*(InfHandle: HINF, SourceId: UINT, InfoDesired: UINT, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceInfoW".} - proc SetupInstallFile*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCWSTR, SourcePathRoot: PCWSTR, DestinationName: PCWSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileW".} - proc SetupInstallFileEx*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCWSTR, SourcePathRoot: PCWSTR, DestinationName: PCWSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID, FileWasInUse: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileExW".} - proc SetupSetFileQueueAlternatePlatform*(QueueHandle: HSPFILEQ, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, AlternateDefaultCatalogFile: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetFileQueueAlternatePlatformW".} - proc SetupQueueDeleteSection*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteSectionW".} - proc SetupQueueRename*(QueueHandle: HSPFILEQ, SourcePath: PCWSTR, SourceFilename: PCWSTR, TargetPath: PCWSTR, TargetFilename: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameW".} - proc SetupQueueRenameSection*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameSectionW".} - proc SetupCommitFileQueue*(Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCommitFileQueueW".} - proc SetupScanFileQueue*(FileQueue: HSPFILEQ, Flags: DWORD, Window: HWND, CallbackRoutine: PSP_FILE_CALLBACK_W, CallbackContext: PVOID, Result: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupScanFileQueueW".} - proc SetupSetPlatformPathOverride*(Override: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetPlatformPathOverrideW".} - proc SetupQueueCopy*(QueueHandle: HSPFILEQ, SourceRootPath: PCWSTR, SourcePath: PCWSTR, SourceFilename: PCWSTR, SourceDescription: PCWSTR, SourceTagfile: PCWSTR, TargetDirectory: PCWSTR, TargetFilename: PCWSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyW".} - proc SetupQueueCopyIndirect*(CopyParams: PSP_FILE_COPY_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyIndirectW".} - proc SetupQueueDefaultCopy*(QueueHandle: HSPFILEQ, InfHandle: HINF, SourceRootPath: PCWSTR, SourceFilename: PCWSTR, TargetFilename: PCWSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDefaultCopyW".} - proc SetupQueueCopySection*(QueueHandle: HSPFILEQ, SourceRootPath: PCWSTR, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopySectionW".} - proc SetupQueueDelete*(QueueHandle: HSPFILEQ, PathPart1: PCWSTR, PathPart2: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteW".} - proc SetupCopyOEMInf*(SourceInfFileName: PCWSTR, OEMSourceMediaLocation: PCWSTR, OEMSourceMediaType: DWORD, CopyStyle: DWORD, DestinationInfFileName: PWSTR, DestinationInfFileNameSize: DWORD, RequiredSize: PDWORD, DestinationInfFileNameComponent: ptr PWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyOEMInfW".} - proc SetupUninstallOEMInf*(InfFileName: PCWSTR, Flags: DWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupUninstallOEMInfW".} - proc SetupCreateDiskSpaceList*(Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCreateDiskSpaceListW".} - proc SetupDuplicateDiskSpaceList*(DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDuplicateDiskSpaceListW".} - proc SetupQueryDrivesInDiskSpaceList*(DiskSpace: HDSKSPC, ReturnBuffer: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryDrivesInDiskSpaceListW".} - proc SetupQuerySpaceRequiredOnDrive*(DiskSpace: HDSKSPC, DriveSpec: PCWSTR, SpaceRequired: ptr LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySpaceRequiredOnDriveW".} - proc SetupAdjustDiskSpaceList*(DiskSpace: HDSKSPC, DriveRoot: LPCWSTR, Amount: LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAdjustDiskSpaceListW".} - proc SetupAddToDiskSpaceList*(DiskSpace: HDSKSPC, TargetFilespec: PCWSTR, FileSize: LONGLONG, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToDiskSpaceListW".} - proc SetupAddSectionToDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCWSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddSectionToDiskSpaceListW".} - proc SetupAddInstallSectionToDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCWSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddInstallSectionToDiskSpaceListW".} - proc SetupRemoveFromDiskSpaceList*(DiskSpace: HDSKSPC, TargetFilespec: PCWSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromDiskSpaceListW".} - proc SetupRemoveSectionFromDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCWSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveSectionFromDiskSpaceListW".} - proc SetupRemoveInstallSectionFromDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCWSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveInstallSectionFromDiskSpaceListW".} - proc SetupIterateCabinet*(CabinetFile: PCWSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupIterateCabinetW".} - proc SetupDefaultQueueCallback*(Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDefaultQueueCallbackW".} - proc SetupInstallFromInfSection*(Owner: HWND, InfHandle: HINF, SectionName: PCWSTR, Flags: UINT, RelativeKeyRoot: HKEY, SourceRootPath: PCWSTR, CopyFlags: UINT, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFromInfSectionW".} - proc SetupInstallFilesFromInfSection*(InfHandle: HINF, LayoutInfHandle: HINF, FileQueue: HSPFILEQ, SectionName: PCWSTR, SourceRootPath: PCWSTR, CopyFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFilesFromInfSectionW".} - proc SetupInstallServicesFromInfSection*(InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallServicesFromInfSectionW".} - proc SetupInstallServicesFromInfSectionEx*(InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallServicesFromInfSectionExW".} - proc InstallHinfSection*(Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCWSTR, ShowCommand: INT): VOID {.winapi, stdcall, dynlib: "setupapi", importc: "InstallHinfSectionW".} - proc SetupInitializeFileLog*(LogFileName: PCWSTR, Flags: DWORD): HSPFILELOG {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInitializeFileLogW".} - proc SetupLogFile*(FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, SourceFilename: PCWSTR, TargetFilename: PCWSTR, Checksum: DWORD, DiskTagfile: PCWSTR, DiskDescription: PCWSTR, OtherInfo: PCWSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogFileW".} - proc SetupRemoveFileLogEntry*(FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, TargetFilename: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFileLogEntryW".} - proc SetupQueryFileLog*(FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, TargetFilename: PCWSTR, DesiredInfo: SetupFileLogInfo, DataOut: PWSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryFileLogW".} - proc SetupLogError*(MessageString: LPCWSTR, Severity: LogSeverity): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogErrorW".} - proc SetupGetBackupInformation*(QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetBackupInformationW".} - proc SetupPrepareQueueForRestore*(QueueHandle: HSPFILEQ, BackupPath: PCWSTR, RestoreFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupPrepareQueueForRestoreW".} - proc SetupDiCreateDeviceInfoListEx*(ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCWSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoListExW".} - proc SetupDiGetDeviceInfoListDetail*(DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInfoListDetailW".} - proc SetupDiCreateDeviceInfo*(DeviceInfoSet: HDEVINFO, DeviceName: PCWSTR, ClassGuid: ptr GUID, DeviceDescription: PCWSTR, hwndParent: HWND, CreationFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoW".} - proc SetupDiOpenDeviceInfo*(DeviceInfoSet: HDEVINFO, DeviceInstanceId: PCWSTR, hwndParent: HWND, OpenFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInfoW".} - proc SetupDiGetDeviceInstanceId*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstanceId: PWSTR, DeviceInstanceIdSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstanceIdW".} - proc SetupDiCreateDeviceInterface*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCWSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceW".} - proc SetupDiCreateInterfaceDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCWSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceW".} - proc SetupDiOpenDeviceInterface*(DeviceInfoSet: HDEVINFO, DevicePath: PCWSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceW".} - proc SetupDiOpenInterfaceDevice*(DeviceInfoSet: HDEVINFO, DevicePath: PCWSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceW".} - proc SetupDiGetDeviceInterfaceDetail*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailW".} - proc SetupDiGetInterfaceDeviceDetail*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailW".} - proc SetupDiEnumDriverInfo*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD, MemberIndex: DWORD, DriverInfoData: PSP_DRVINFO_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiEnumDriverInfoW".} - proc SetupDiGetSelectedDriver*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetSelectedDriverW".} - proc SetupDiSetSelectedDriver*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetSelectedDriverW".} - proc SetupDiGetDriverInfoDetail*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W, DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_W, DriverInfoDetailDataSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInfoDetailW".} - proc SetupDiGetClassDevs*(ClassGuid: ptr GUID, Enumerator: PCWSTR, hwndParent: HWND, Flags: DWORD): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsW".} - proc SetupDiGetClassDevsEx*(ClassGuid: ptr GUID, Enumerator: PCWSTR, hwndParent: HWND, Flags: DWORD, DeviceInfoSet: HDEVINFO, MachineName: PCWSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsExW".} - proc SetupDiGetINFClass*(InfName: PCWSTR, ClassGuid: LPGUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetINFClassW".} - proc SetupDiBuildClassInfoListEx*(Flags: DWORD, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiBuildClassInfoListExW".} - proc SetupDiGetClassDescription*(ClassGuid: ptr GUID, ClassDescription: PWSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionW".} - proc SetupDiGetClassDescriptionEx*(ClassGuid: ptr GUID, ClassDescription: PWSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionExW".} - proc SetupDiInstallClass*(hwndParent: HWND, InfFileName: PCWSTR, Flags: DWORD, FileQueue: HSPFILEQ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassW".} - proc SetupDiInstallClassEx*(hwndParent: HWND, InfFileName: PCWSTR, Flags: DWORD, FileQueue: HSPFILEQ, InterfaceClassGuid: ptr GUID, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassExW".} - proc SetupDiOpenClassRegKeyEx*(ClassGuid: ptr GUID, samDesired: REGSAM, Flags: DWORD, MachineName: PCWSTR, Reserved: PVOID): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenClassRegKeyExW".} - proc SetupDiCreateDeviceInterfaceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCWSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyW".} - proc SetupDiCreateInterfaceDeviceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCWSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyW".} - proc SetupDiCreateDevRegKey*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Scope: DWORD, HwProfile: DWORD, KeyType: DWORD, InfHandle: HINF, InfSectionName: PCWSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDevRegKeyW".} - proc SetupDiGetHwProfileListEx*(HwProfileList: PDWORD, HwProfileListSize: DWORD, RequiredSize: PDWORD, CurrentlyActiveIndex: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileListExW".} - proc SetupDiGetDeviceRegistryProperty*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceRegistryPropertyW".} - proc SetupDiGetClassRegistryProperty*(ClassGuid: ptr GUID, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassRegistryPropertyW".} - proc SetupDiSetDeviceRegistryProperty*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceRegistryPropertyW".} - proc SetupDiSetClassRegistryProperty*(ClassGuid: ptr GUID, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassRegistryPropertyW".} - proc SetupDiGetDeviceInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstallParamsW".} - proc SetupDiGetClassInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassInstallParamsW".} - proc SetupDiSetDeviceInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceInstallParamsW".} - proc SetupDiSetClassInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassInstallParamsW".} - proc SetupDiGetDriverInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInstallParamsW".} - proc SetupDiSetDriverInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_W, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDriverInstallParamsW".} - proc SetupDiGetClassImageListEx*(ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassImageListExW".} - proc SetupDiGetClassDevPropertySheets*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, PropertySheetHeader: LPPROPSHEETHEADERW, PropertySheetHeaderPageListSize: DWORD, RequiredSize: PDWORD, PropertySheetType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevPropertySheetsW".} - proc SetupDiClassNameFromGuid*(ClassGuid: ptr GUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidW".} - proc SetupDiClassNameFromGuidEx*(ClassGuid: ptr GUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidExW".} - proc SetupDiClassGuidsFromName*(ClassName: PCWSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameW".} - proc SetupDiClassGuidsFromNameEx*(ClassName: PCWSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameExW".} - proc SetupDiGetHwProfileFriendlyName*(HwProfile: DWORD, FriendlyName: PWSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameW".} - proc SetupDiGetHwProfileFriendlyNameEx*(HwProfile: DWORD, FriendlyName: PWSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameExW".} - proc SetupDiGetActualModelsSection*(Context: PINFCONTEXT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PWSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualModelsSectionW".} - proc SetupDiGetActualSectionToInstall*(InfHandle: HINF, InfSectionName: PCWSTR, InfSectionWithExt: PWSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PWSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallW".} - proc SetupDiGetActualSectionToInstallEx*(InfHandle: HINF, InfSectionName: PCWSTR, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PWSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PWSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallExW".} - proc SetupEnumInfSections*(InfHandle: HINF, Index: UINT, Buffer: PWSTR, Size: UINT, SizeNeeded: ptr UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupEnumInfSectionsW".} - proc SetupVerifyInfFile*(InfName: PCWSTR, AltPlatformInfo: PSP_ALTPLATFORM_INFO, InfSignerInfo: PSP_INF_SIGNER_INFO_W): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupVerifyInfFileW".} - proc SetupDiGetCustomDeviceProperty*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, CustomPropertyName: PCWSTR, Flags: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetCustomDevicePropertyW".} - proc SetupConfigureWmiFromInfSection*(InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupConfigureWmiFromInfSectionW".} + + proc SetupGetInfInformation*( + InfSpec: LPCVOID, + SearchControl: DWORD, + ReturnBuffer: PSP_INF_INFORMATION, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfInformationW".} + + proc SetupQueryInfFileInformation*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfFileInformationW" + .} + + proc SetupQueryInfOriginalFileInformation*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_W, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupQueryInfOriginalFileInformationW" + .} + + proc SetupQueryInfVersionInformation*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + Key: PCWSTR, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfVersionInformationW" + .} + + proc SetupGetInfFileList*( + DirectoryPath: PCWSTR, + InfStyle: DWORD, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfFileListW".} + + proc SetupOpenInfFile*( + FileName: PCWSTR, InfClass: PCWSTR, InfStyle: DWORD, ErrorLine: PUINT + ): HINF {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenInfFileW".} + + proc SetupOpenAppendInfFile*( + FileName: PCWSTR, InfHandle: HINF, ErrorLine: PUINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenAppendInfFileW".} + + proc SetupFindFirstLine*( + InfHandle: HINF, Section: PCWSTR, Key: PCWSTR, Context: PINFCONTEXT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindFirstLineW".} + + proc SetupFindNextMatchLine*( + ContextIn: PINFCONTEXT, Key: PCWSTR, ContextOut: PINFCONTEXT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindNextMatchLineW".} + + proc SetupGetLineByIndex*( + InfHandle: HINF, Section: PCWSTR, Index: DWORD, Context: PINFCONTEXT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineByIndexW".} + + proc SetupGetLineCount*( + InfHandle: HINF, Section: PCWSTR + ): LONG {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineCountW".} + + proc SetupGetLineText*( + Context: PINFCONTEXT, + InfHandle: HINF, + Section: PCWSTR, + Key: PCWSTR, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineTextW".} + + proc SetupGetStringField*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetStringFieldW".} + + proc SetupGetMultiSzField*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetMultiSzFieldW".} + + proc SetupGetFileCompressionInfo*( + SourceFileName: PCWSTR, + ActualSourceFileName: ptr PWSTR, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, + ): DWORD {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoW" + .} + + proc SetupGetFileCompressionInfoEx*( + SourceFileName: PCWSTR, + ActualSourceFileNameBuffer: PWSTR, + ActualSourceFileNameBufferLen: DWORD, + RequiredBufferLen: PDWORD, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoExW" + .} + + proc SetupDecompressOrCopyFile*( + SourceFileName: PCWSTR, TargetFileName: PCWSTR, CompressionType: PUINT + ): DWORD {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDecompressOrCopyFileW" + .} + + proc SetupGetSourceFileLocation*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCWSTR, + SourceId: PUINT, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileLocationW" + .} + + proc SetupGetSourceFileSize*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCWSTR, + Section: PCWSTR, + FileSize: PDWORD, + RoundingFactor: UINT, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileSizeW".} + + proc SetupGetTargetPath*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + Section: PCWSTR, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetTargetPathW".} + + proc SetupSetSourceList*( + Flags: DWORD, SourceList: ptr PCWSTR, SourceCount: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetSourceListW".} + + proc SetupAddToSourceList*( + Flags: DWORD, Source: PCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToSourceListW".} + + proc SetupRemoveFromSourceList*( + Flags: DWORD, Source: PCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromSourceListW" + .} + + proc SetupQuerySourceList*( + Flags: DWORD, List: ptr ptr PCWSTR, Count: PUINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySourceListW".} + + proc SetupFreeSourceList*( + List: ptr ptr PCWSTR, Count: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFreeSourceListW".} + + proc SetupPromptForDisk*( + hwndParent: HWND, + DialogTitle: PCWSTR, + DiskName: PCWSTR, + PathToSource: PCWSTR, + FileSought: PCWSTR, + TagFile: PCWSTR, + DiskPromptStyle: DWORD, + PathBuffer: PWSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupPromptForDiskW".} + + proc SetupCopyError*( + hwndParent: HWND, + DialogTitle: PCWSTR, + DiskName: PCWSTR, + PathToSource: PCWSTR, + SourceFile: PCWSTR, + TargetPathFile: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, + PathBuffer: PWSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyErrorW".} + + proc SetupRenameError*( + hwndParent: HWND, + DialogTitle: PCWSTR, + SourceFile: PCWSTR, + TargetFile: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRenameErrorW".} + + proc SetupDeleteError*( + hwndParent: HWND, + DialogTitle: PCWSTR, + File: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDeleteErrorW".} + + proc SetupBackupError*( + hwndParent: HWND, + DialogTitle: PCWSTR, + SourceFile: PCWSTR, + TargetFile: PCWSTR, + Win32ErrorCode: UINT, + Style: DWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupBackupErrorW".} + + proc SetupSetDirectoryId*( + InfHandle: HINF, Id: DWORD, Directory: PCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdW".} + + proc SetupSetDirectoryIdEx*( + InfHandle: HINF, + Id: DWORD, + Directory: PCWSTR, + Flags: DWORD, + Reserved1: DWORD, + Reserved2: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdExW".} + + proc SetupGetSourceInfo*( + InfHandle: HINF, + SourceId: UINT, + InfoDesired: UINT, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceInfoW".} + + proc SetupInstallFile*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCWSTR, + SourcePathRoot: PCWSTR, + DestinationName: PCWSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileW".} + + proc SetupInstallFileEx*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCWSTR, + SourcePathRoot: PCWSTR, + DestinationName: PCWSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, + FileWasInUse: PBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileExW".} + + proc SetupSetFileQueueAlternatePlatform*( + QueueHandle: HSPFILEQ, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + AlternateDefaultCatalogFile: PCWSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupSetFileQueueAlternatePlatformW" + .} + + proc SetupQueueDeleteSection*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteSectionW" + .} + + proc SetupQueueRename*( + QueueHandle: HSPFILEQ, + SourcePath: PCWSTR, + SourceFilename: PCWSTR, + TargetPath: PCWSTR, + TargetFilename: PCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameW".} + + proc SetupQueueRenameSection*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameSectionW" + .} + + proc SetupCommitFileQueue*( + Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_W, Context: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCommitFileQueueW".} + + proc SetupScanFileQueue*( + FileQueue: HSPFILEQ, + Flags: DWORD, + Window: HWND, + CallbackRoutine: PSP_FILE_CALLBACK_W, + CallbackContext: PVOID, + Result: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupScanFileQueueW".} + + proc SetupSetPlatformPathOverride*( + Override: PCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupSetPlatformPathOverrideW" + .} + + proc SetupQueueCopy*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCWSTR, + SourcePath: PCWSTR, + SourceFilename: PCWSTR, + SourceDescription: PCWSTR, + SourceTagfile: PCWSTR, + TargetDirectory: PCWSTR, + TargetFilename: PCWSTR, + CopyStyle: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyW".} + + proc SetupQueueCopyIndirect*( + CopyParams: PSP_FILE_COPY_PARAMS_W + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyIndirectW".} + + proc SetupQueueDefaultCopy*( + QueueHandle: HSPFILEQ, + InfHandle: HINF, + SourceRootPath: PCWSTR, + SourceFilename: PCWSTR, + TargetFilename: PCWSTR, + CopyStyle: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDefaultCopyW".} + + proc SetupQueueCopySection*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCWSTR, + InfHandle: HINF, + ListInfHandle: HINF, + Section: PCWSTR, + CopyStyle: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopySectionW".} + + proc SetupQueueDelete*( + QueueHandle: HSPFILEQ, PathPart1: PCWSTR, PathPart2: PCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteW".} + + proc SetupCopyOEMInf*( + SourceInfFileName: PCWSTR, + OEMSourceMediaLocation: PCWSTR, + OEMSourceMediaType: DWORD, + CopyStyle: DWORD, + DestinationInfFileName: PWSTR, + DestinationInfFileNameSize: DWORD, + RequiredSize: PDWORD, + DestinationInfFileNameComponent: ptr PWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyOEMInfW".} + + proc SetupUninstallOEMInf*( + InfFileName: PCWSTR, Flags: DWORD, Reserved: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupUninstallOEMInfW".} + + proc SetupCreateDiskSpaceList*( + Reserved1: PVOID, Reserved2: DWORD, Flags: UINT + ): HDSKSPC {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupCreateDiskSpaceListW" + .} + + proc SetupDuplicateDiskSpaceList*( + DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT + ): HDSKSPC {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDuplicateDiskSpaceListW" + .} + + proc SetupQueryDrivesInDiskSpaceList*( + DiskSpace: HDSKSPC, + ReturnBuffer: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryDrivesInDiskSpaceListW" + .} + + proc SetupQuerySpaceRequiredOnDrive*( + DiskSpace: HDSKSPC, + DriveSpec: PCWSTR, + SpaceRequired: ptr LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySpaceRequiredOnDriveW" + .} + + proc SetupAdjustDiskSpaceList*( + DiskSpace: HDSKSPC, + DriveRoot: LPCWSTR, + Amount: LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupAdjustDiskSpaceListW" + .} + + proc SetupAddToDiskSpaceList*( + DiskSpace: HDSKSPC, + TargetFilespec: PCWSTR, + FileSize: LONGLONG, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToDiskSpaceListW" + .} + + proc SetupAddSectionToDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCWSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupAddSectionToDiskSpaceListW" + .} + + proc SetupAddInstallSectionToDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCWSTR, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupAddInstallSectionToDiskSpaceListW" + .} + + proc SetupRemoveFromDiskSpaceList*( + DiskSpace: HDSKSPC, + TargetFilespec: PCWSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromDiskSpaceListW" + .} + + proc SetupRemoveSectionFromDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCWSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveSectionFromDiskSpaceListW" + .} + + proc SetupRemoveInstallSectionFromDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCWSTR, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupRemoveInstallSectionFromDiskSpaceListW" + .} + + proc SetupIterateCabinet*( + CabinetFile: PCWSTR, + Reserved: DWORD, + MsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupIterateCabinetW".} + + proc SetupDefaultQueueCallback*( + Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDefaultQueueCallbackW".} + + proc SetupInstallFromInfSection*( + Owner: HWND, + InfHandle: HINF, + SectionName: PCWSTR, + Flags: UINT, + RelativeKeyRoot: HKEY, + SourceRootPath: PCWSTR, + CopyFlags: UINT, + MsgHandler: PSP_FILE_CALLBACK_W, + Context: PVOID, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFromInfSectionW" + .} + + proc SetupInstallFilesFromInfSection*( + InfHandle: HINF, + LayoutInfHandle: HINF, + FileQueue: HSPFILEQ, + SectionName: PCWSTR, + SourceRootPath: PCWSTR, + CopyFlags: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFilesFromInfSectionW" + .} + + proc SetupInstallServicesFromInfSection*( + InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallServicesFromInfSectionW" + .} + + proc SetupInstallServicesFromInfSectionEx*( + InfHandle: HINF, + SectionName: PCWSTR, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Reserved1: PVOID, + Reserved2: PVOID, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupInstallServicesFromInfSectionExW" + .} + + proc InstallHinfSection*( + Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCWSTR, ShowCommand: INT + ): VOID {.winapi, stdcall, dynlib: "setupapi", importc: "InstallHinfSectionW".} + + proc SetupInitializeFileLog*( + LogFileName: PCWSTR, Flags: DWORD + ): HSPFILELOG {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInitializeFileLogW" + .} + + proc SetupLogFile*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCWSTR, + SourceFilename: PCWSTR, + TargetFilename: PCWSTR, + Checksum: DWORD, + DiskTagfile: PCWSTR, + DiskDescription: PCWSTR, + OtherInfo: PCWSTR, + Flags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogFileW".} + + proc SetupRemoveFileLogEntry*( + FileLogHandle: HSPFILELOG, LogSectionName: PCWSTR, TargetFilename: PCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFileLogEntryW" + .} + + proc SetupQueryFileLog*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCWSTR, + TargetFilename: PCWSTR, + DesiredInfo: SetupFileLogInfo, + DataOut: PWSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryFileLogW".} + + proc SetupLogError*( + MessageString: LPCWSTR, Severity: LogSeverity + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogErrorW".} + + proc SetupGetBackupInformation*( + QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_W + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetBackupInformationW" + .} + + proc SetupPrepareQueueForRestore*( + QueueHandle: HSPFILEQ, BackupPath: PCWSTR, RestoreFlags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupPrepareQueueForRestoreW" + .} + + proc SetupDiCreateDeviceInfoListEx*( + ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCWSTR, Reserved: PVOID + ): HDEVINFO {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoListExW" + .} + + proc SetupDiGetDeviceInfoListDetail*( + DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_W + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInfoListDetailW" + .} + + proc SetupDiCreateDeviceInfo*( + DeviceInfoSet: HDEVINFO, + DeviceName: PCWSTR, + ClassGuid: ptr GUID, + DeviceDescription: PCWSTR, + hwndParent: HWND, + CreationFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoW" + .} + + proc SetupDiOpenDeviceInfo*( + DeviceInfoSet: HDEVINFO, + DeviceInstanceId: PCWSTR, + hwndParent: HWND, + OpenFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInfoW".} + + proc SetupDiGetDeviceInstanceId*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstanceId: PWSTR, + DeviceInstanceIdSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstanceIdW" + .} + + proc SetupDiCreateDeviceInterface*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCWSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceW" + .} + + proc SetupDiCreateInterfaceDevice*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCWSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceW" + .} + + proc SetupDiOpenDeviceInterface*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCWSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceW" + .} + + proc SetupDiOpenInterfaceDevice*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCWSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceW" + .} + + proc SetupDiGetDeviceInterfaceDetail*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailW" + .} + + proc SetupDiGetInterfaceDeviceDetail*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_W, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailW" + .} + + proc SetupDiEnumDriverInfo*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverType: DWORD, + MemberIndex: DWORD, + DriverInfoData: PSP_DRVINFO_DATA_W, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiEnumDriverInfoW".} + + proc SetupDiGetSelectedDriver*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetSelectedDriverW" + .} + + proc SetupDiSetSelectedDriver*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetSelectedDriverW" + .} + + proc SetupDiGetDriverInfoDetail*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_W, + DriverInfoDetailDataSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInfoDetailW" + .} + + proc SetupDiGetClassDevs*( + ClassGuid: ptr GUID, Enumerator: PCWSTR, hwndParent: HWND, Flags: DWORD + ): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsW".} + + proc SetupDiGetClassDevsEx*( + ClassGuid: ptr GUID, + Enumerator: PCWSTR, + hwndParent: HWND, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + MachineName: PCWSTR, + Reserved: PVOID, + ): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsExW".} + + proc SetupDiGetINFClass*( + InfName: PCWSTR, + ClassGuid: LPGUID, + ClassName: PWSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetINFClassW".} + + proc SetupDiBuildClassInfoListEx*( + Flags: DWORD, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiBuildClassInfoListExW" + .} + + proc SetupDiGetClassDescription*( + ClassGuid: ptr GUID, + ClassDescription: PWSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionW" + .} + + proc SetupDiGetClassDescriptionEx*( + ClassGuid: ptr GUID, + ClassDescription: PWSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionExW" + .} + + proc SetupDiInstallClass*( + hwndParent: HWND, InfFileName: PCWSTR, Flags: DWORD, FileQueue: HSPFILEQ + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassW".} + + proc SetupDiInstallClassEx*( + hwndParent: HWND, + InfFileName: PCWSTR, + Flags: DWORD, + FileQueue: HSPFILEQ, + InterfaceClassGuid: ptr GUID, + Reserved1: PVOID, + Reserved2: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassExW".} + + proc SetupDiOpenClassRegKeyEx*( + ClassGuid: ptr GUID, + samDesired: REGSAM, + Flags: DWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenClassRegKeyExW".} + + proc SetupDiCreateDeviceInterfaceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCWSTR, + ): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyW" + .} + + proc SetupDiCreateInterfaceDeviceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCWSTR, + ): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyW" + .} + + proc SetupDiCreateDevRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Scope: DWORD, + HwProfile: DWORD, + KeyType: DWORD, + InfHandle: HINF, + InfSectionName: PCWSTR, + ): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDevRegKeyW".} + + proc SetupDiGetHwProfileListEx*( + HwProfileList: PDWORD, + HwProfileListSize: DWORD, + RequiredSize: PDWORD, + CurrentlyActiveIndex: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileListExW" + .} + + proc SetupDiGetDeviceRegistryProperty*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceRegistryPropertyW" + .} + + proc SetupDiGetClassRegistryProperty*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassRegistryPropertyW" + .} + + proc SetupDiSetDeviceRegistryProperty*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceRegistryPropertyW" + .} + + proc SetupDiSetClassRegistryProperty*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassRegistryPropertyW" + .} + + proc SetupDiGetDeviceInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstallParamsW" + .} + + proc SetupDiGetClassInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassInstallParamsW" + .} + + proc SetupDiSetDeviceInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_W, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceInstallParamsW" + .} + + proc SetupDiSetClassInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassInstallParamsW" + .} + + proc SetupDiGetDriverInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInstallParamsW" + .} + + proc SetupDiSetDriverInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_W, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDriverInstallParamsW" + .} + + proc SetupDiGetClassImageListEx*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCWSTR, Reserved: PVOID + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassImageListExW" + .} + + proc SetupDiGetClassDevPropertySheets*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + PropertySheetHeader: LPPROPSHEETHEADERW, + PropertySheetHeaderPageListSize: DWORD, + RequiredSize: PDWORD, + PropertySheetType: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevPropertySheetsW" + .} + + proc SetupDiClassNameFromGuid*( + ClassGuid: ptr GUID, ClassName: PWSTR, ClassNameSize: DWORD, RequiredSize: PDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidW" + .} + + proc SetupDiClassNameFromGuidEx*( + ClassGuid: ptr GUID, + ClassName: PWSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidExW" + .} + + proc SetupDiClassGuidsFromName*( + ClassName: PCWSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameW" + .} + + proc SetupDiClassGuidsFromNameEx*( + ClassName: PCWSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameExW" + .} + + proc SetupDiGetHwProfileFriendlyName*( + HwProfile: DWORD, FriendlyName: PWSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameW" + .} + + proc SetupDiGetHwProfileFriendlyNameEx*( + HwProfile: DWORD, + FriendlyName: PWSTR, + FriendlyNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameExW" + .} + + proc SetupDiGetActualModelsSection*( + Context: PINFCONTEXT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PWSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualModelsSectionW" + .} + + proc SetupDiGetActualSectionToInstall*( + InfHandle: HINF, + InfSectionName: PCWSTR, + InfSectionWithExt: PWSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PWSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallW" + .} + + proc SetupDiGetActualSectionToInstallEx*( + InfHandle: HINF, + InfSectionName: PCWSTR, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PWSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PWSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallExW" + .} + + proc SetupEnumInfSections*( + InfHandle: HINF, Index: UINT, Buffer: PWSTR, Size: UINT, SizeNeeded: ptr UINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupEnumInfSectionsW".} + + proc SetupVerifyInfFile*( + InfName: PCWSTR, + AltPlatformInfo: PSP_ALTPLATFORM_INFO, + InfSignerInfo: PSP_INF_SIGNER_INFO_W, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupVerifyInfFileW".} + + proc SetupDiGetCustomDeviceProperty*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + CustomPropertyName: PCWSTR, + Flags: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetCustomDevicePropertyW" + .} + + proc SetupConfigureWmiFromInfSection*( + InfHandle: HINF, SectionName: PCWSTR, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupConfigureWmiFromInfSectionW" + .} + when winimAnsi: type SP_ORIGINAL_FILE_INFO* = SP_ORIGINAL_FILE_INFO_A @@ -1785,130 +4748,1095 @@ PSP_BACKUP_QUEUE_PARAMS_V1* = PSP_BACKUP_QUEUE_PARAMS_V1_A SP_INF_SIGNER_INFO* = SP_INF_SIGNER_INFO_A PSP_INF_SIGNER_INFO* = PSP_INF_SIGNER_INFO_A - proc SetupGetInfInformation*(InfSpec: LPCVOID, SearchControl: DWORD, ReturnBuffer: PSP_INF_INFORMATION, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfInformationA".} - proc SetupQueryInfFileInformation*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfFileInformationA".} - proc SetupQueryInfOriginalFileInformation*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfOriginalFileInformationA".} - proc SetupQueryInfVersionInformation*(InfInformation: PSP_INF_INFORMATION, InfIndex: UINT, Key: PCSTR, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfVersionInformationA".} - proc SetupGetInfFileList*(DirectoryPath: PCSTR, InfStyle: DWORD, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfFileListA".} - proc SetupOpenInfFile*(FileName: PCSTR, InfClass: PCSTR, InfStyle: DWORD, ErrorLine: PUINT): HINF {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenInfFileA".} - proc SetupOpenAppendInfFile*(FileName: PCSTR, InfHandle: HINF, ErrorLine: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenAppendInfFileA".} - proc SetupFindFirstLine*(InfHandle: HINF, Section: PCSTR, Key: PCSTR, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindFirstLineA".} - proc SetupFindNextMatchLine*(ContextIn: PINFCONTEXT, Key: PCSTR, ContextOut: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindNextMatchLineA".} - proc SetupGetLineByIndex*(InfHandle: HINF, Section: PCSTR, Index: DWORD, Context: PINFCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineByIndexA".} - proc SetupGetLineCount*(InfHandle: HINF, Section: PCSTR): LONG {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineCountA".} - proc SetupGetLineText*(Context: PINFCONTEXT, InfHandle: HINF, Section: PCSTR, Key: PCSTR, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineTextA".} - proc SetupGetStringField*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetStringFieldA".} - proc SetupGetMultiSzField*(Context: PINFCONTEXT, FieldIndex: DWORD, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetMultiSzFieldA".} - proc SetupGetFileCompressionInfo*(SourceFileName: PCSTR, ActualSourceFileName: ptr PSTR, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoA".} - proc SetupGetFileCompressionInfoEx*(SourceFileName: PCSTR, ActualSourceFileNameBuffer: PSTR, ActualSourceFileNameBufferLen: DWORD, RequiredBufferLen: PDWORD, SourceFileSize: PDWORD, TargetFileSize: PDWORD, CompressionType: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoExA".} - proc SetupDecompressOrCopyFile*(SourceFileName: PCSTR, TargetFileName: PCSTR, CompressionType: PUINT): DWORD {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDecompressOrCopyFileA".} - proc SetupGetSourceFileLocation*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCSTR, SourceId: PUINT, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileLocationA".} - proc SetupGetSourceFileSize*(InfHandle: HINF, InfContext: PINFCONTEXT, FileName: PCSTR, Section: PCSTR, FileSize: PDWORD, RoundingFactor: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileSizeA".} - proc SetupGetTargetPath*(InfHandle: HINF, InfContext: PINFCONTEXT, Section: PCSTR, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetTargetPathA".} - proc SetupSetSourceList*(Flags: DWORD, SourceList: ptr PCSTR, SourceCount: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetSourceListA".} - proc SetupAddToSourceList*(Flags: DWORD, Source: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToSourceListA".} - proc SetupRemoveFromSourceList*(Flags: DWORD, Source: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromSourceListA".} - proc SetupQuerySourceList*(Flags: DWORD, List: ptr ptr PCSTR, Count: PUINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySourceListA".} - proc SetupFreeSourceList*(List: ptr ptr PCSTR, Count: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFreeSourceListA".} - proc SetupPromptForDisk*(hwndParent: HWND, DialogTitle: PCSTR, DiskName: PCSTR, PathToSource: PCSTR, FileSought: PCSTR, TagFile: PCSTR, DiskPromptStyle: DWORD, PathBuffer: PSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupPromptForDiskA".} - proc SetupCopyError*(hwndParent: HWND, DialogTitle: PCSTR, DiskName: PCSTR, PathToSource: PCSTR, SourceFile: PCSTR, TargetPathFile: PCSTR, Win32ErrorCode: UINT, Style: DWORD, PathBuffer: PSTR, PathBufferSize: DWORD, PathRequiredSize: PDWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyErrorA".} - proc SetupRenameError*(hwndParent: HWND, DialogTitle: PCSTR, SourceFile: PCSTR, TargetFile: PCSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRenameErrorA".} - proc SetupDeleteError*(hwndParent: HWND, DialogTitle: PCSTR, File: PCSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDeleteErrorA".} - proc SetupBackupError*(hwndParent: HWND, DialogTitle: PCSTR, SourceFile: PCSTR, TargetFile: PCSTR, Win32ErrorCode: UINT, Style: DWORD): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupBackupErrorA".} - proc SetupSetDirectoryId*(InfHandle: HINF, Id: DWORD, Directory: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdA".} - proc SetupSetDirectoryIdEx*(InfHandle: HINF, Id: DWORD, Directory: PCSTR, Flags: DWORD, Reserved1: DWORD, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdExA".} - proc SetupGetSourceInfo*(InfHandle: HINF, SourceId: UINT, InfoDesired: UINT, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceInfoA".} - proc SetupInstallFile*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCSTR, SourcePathRoot: PCSTR, DestinationName: PCSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileA".} - proc SetupInstallFileEx*(InfHandle: HINF, InfContext: PINFCONTEXT, SourceFile: PCSTR, SourcePathRoot: PCSTR, DestinationName: PCSTR, CopyStyle: DWORD, CopyMsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID, FileWasInUse: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileExA".} - proc SetupSetFileQueueAlternatePlatform*(QueueHandle: HSPFILEQ, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, AlternateDefaultCatalogFile: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetFileQueueAlternatePlatformA".} - proc SetupQueueDeleteSection*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteSectionA".} - proc SetupQueueRename*(QueueHandle: HSPFILEQ, SourcePath: PCSTR, SourceFilename: PCSTR, TargetPath: PCSTR, TargetFilename: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameA".} - proc SetupQueueRenameSection*(QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameSectionA".} - proc SetupCommitFileQueue*(Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCommitFileQueueA".} - proc SetupScanFileQueue*(FileQueue: HSPFILEQ, Flags: DWORD, Window: HWND, CallbackRoutine: PSP_FILE_CALLBACK_A, CallbackContext: PVOID, Result: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupScanFileQueueA".} - proc SetupSetPlatformPathOverride*(Override: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetPlatformPathOverrideA".} - proc SetupQueueCopy*(QueueHandle: HSPFILEQ, SourceRootPath: PCSTR, SourcePath: PCSTR, SourceFilename: PCSTR, SourceDescription: PCSTR, SourceTagfile: PCSTR, TargetDirectory: PCSTR, TargetFilename: PCSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyA".} - proc SetupQueueCopyIndirect*(CopyParams: PSP_FILE_COPY_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyIndirectA".} - proc SetupQueueDefaultCopy*(QueueHandle: HSPFILEQ, InfHandle: HINF, SourceRootPath: PCSTR, SourceFilename: PCSTR, TargetFilename: PCSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDefaultCopyA".} - proc SetupQueueCopySection*(QueueHandle: HSPFILEQ, SourceRootPath: PCSTR, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR, CopyStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopySectionA".} - proc SetupQueueDelete*(QueueHandle: HSPFILEQ, PathPart1: PCSTR, PathPart2: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteA".} - proc SetupCopyOEMInf*(SourceInfFileName: PCSTR, OEMSourceMediaLocation: PCSTR, OEMSourceMediaType: DWORD, CopyStyle: DWORD, DestinationInfFileName: PSTR, DestinationInfFileNameSize: DWORD, RequiredSize: PDWORD, DestinationInfFileNameComponent: ptr PSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyOEMInfA".} - proc SetupUninstallOEMInf*(InfFileName: PCSTR, Flags: DWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupUninstallOEMInfA".} - proc SetupCreateDiskSpaceList*(Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCreateDiskSpaceListA".} - proc SetupDuplicateDiskSpaceList*(DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT): HDSKSPC {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDuplicateDiskSpaceListA".} - proc SetupQueryDrivesInDiskSpaceList*(DiskSpace: HDSKSPC, ReturnBuffer: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryDrivesInDiskSpaceListA".} - proc SetupQuerySpaceRequiredOnDrive*(DiskSpace: HDSKSPC, DriveSpec: PCSTR, SpaceRequired: ptr LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySpaceRequiredOnDriveA".} - proc SetupAdjustDiskSpaceList*(DiskSpace: HDSKSPC, DriveRoot: LPCSTR, Amount: LONGLONG, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAdjustDiskSpaceListA".} - proc SetupAddToDiskSpaceList*(DiskSpace: HDSKSPC, TargetFilespec: PCSTR, FileSize: LONGLONG, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToDiskSpaceListA".} - proc SetupAddSectionToDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddSectionToDiskSpaceListA".} - proc SetupAddInstallSectionToDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddInstallSectionToDiskSpaceListA".} - proc SetupRemoveFromDiskSpaceList*(DiskSpace: HDSKSPC, TargetFilespec: PCSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromDiskSpaceListA".} - proc SetupRemoveSectionFromDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, ListInfHandle: HINF, SectionName: PCSTR, Operation: UINT, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveSectionFromDiskSpaceListA".} - proc SetupRemoveInstallSectionFromDiskSpaceList*(DiskSpace: HDSKSPC, InfHandle: HINF, LayoutInfHandle: HINF, SectionName: PCSTR, Reserved1: PVOID, Reserved2: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveInstallSectionFromDiskSpaceListA".} - proc SetupIterateCabinet*(CabinetFile: PCSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupIterateCabinetA".} - proc SetupDefaultQueueCallback*(Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDefaultQueueCallbackA".} - proc SetupInstallFromInfSection*(Owner: HWND, InfHandle: HINF, SectionName: PCSTR, Flags: UINT, RelativeKeyRoot: HKEY, SourceRootPath: PCSTR, CopyFlags: UINT, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFromInfSectionA".} - proc SetupInstallFilesFromInfSection*(InfHandle: HINF, LayoutInfHandle: HINF, FileQueue: HSPFILEQ, SectionName: PCSTR, SourceRootPath: PCSTR, CopyFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFilesFromInfSectionA".} - proc SetupInstallServicesFromInfSection*(InfHandle: HINF, SectionName: PCSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallServicesFromInfSectionA".} - proc SetupInstallServicesFromInfSectionEx*(InfHandle: HINF, SectionName: PCSTR, Flags: DWORD, DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallServicesFromInfSectionExA".} - proc InstallHinfSection*(Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCSTR, ShowCommand: INT): VOID {.winapi, stdcall, dynlib: "setupapi", importc: "InstallHinfSectionA".} - proc SetupInitializeFileLog*(LogFileName: PCSTR, Flags: DWORD): HSPFILELOG {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInitializeFileLogA".} - proc SetupLogFile*(FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, SourceFilename: PCSTR, TargetFilename: PCSTR, Checksum: DWORD, DiskTagfile: PCSTR, DiskDescription: PCSTR, OtherInfo: PCSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogFileA".} - proc SetupRemoveFileLogEntry*(FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, TargetFilename: PCSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFileLogEntryA".} - proc SetupQueryFileLog*(FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, TargetFilename: PCSTR, DesiredInfo: SetupFileLogInfo, DataOut: PSTR, ReturnBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryFileLogA".} - proc SetupLogError*(MessageString: LPCSTR, Severity: LogSeverity): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogErrorA".} - proc SetupGetBackupInformation*(QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetBackupInformationA".} - proc SetupPrepareQueueForRestore*(QueueHandle: HSPFILEQ, BackupPath: PCSTR, RestoreFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupPrepareQueueForRestoreA".} - proc SetupDiCreateDeviceInfoListEx*(ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoListExA".} - proc SetupDiGetDeviceInfoListDetail*(DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInfoListDetailA".} - proc SetupDiCreateDeviceInfo*(DeviceInfoSet: HDEVINFO, DeviceName: PCSTR, ClassGuid: ptr GUID, DeviceDescription: PCSTR, hwndParent: HWND, CreationFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoA".} - proc SetupDiOpenDeviceInfo*(DeviceInfoSet: HDEVINFO, DeviceInstanceId: PCSTR, hwndParent: HWND, OpenFlags: DWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInfoA".} - proc SetupDiGetDeviceInstanceId*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstanceId: PSTR, DeviceInstanceIdSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstanceIdA".} - proc SetupDiCreateDeviceInterface*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceA".} - proc SetupDiCreateInterfaceDevice*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, InterfaceClassGuid: ptr GUID, ReferenceString: PCSTR, CreationFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceA".} - proc SetupDiOpenDeviceInterface*(DeviceInfoSet: HDEVINFO, DevicePath: PCSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceA".} - proc SetupDiOpenInterfaceDevice*(DeviceInfoSet: HDEVINFO, DevicePath: PCSTR, OpenFlags: DWORD, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceA".} - proc SetupDiGetDeviceInterfaceDetail*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailA".} - proc SetupDiGetInterfaceDeviceDetail*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, DeviceInterfaceDetailDataSize: DWORD, RequiredSize: PDWORD, DeviceInfoData: PSP_DEVINFO_DATA): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailA".} - proc SetupDiEnumDriverInfo*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverType: DWORD, MemberIndex: DWORD, DriverInfoData: PSP_DRVINFO_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiEnumDriverInfoA".} - proc SetupDiGetSelectedDriver*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetSelectedDriverA".} - proc SetupDiSetSelectedDriver*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetSelectedDriverA".} - proc SetupDiGetDriverInfoDetail*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A, DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_A, DriverInfoDetailDataSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInfoDetailA".} - proc SetupDiGetClassDevs*(ClassGuid: ptr GUID, Enumerator: PCSTR, hwndParent: HWND, Flags: DWORD): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsA".} - proc SetupDiGetClassDevsEx*(ClassGuid: ptr GUID, Enumerator: PCSTR, hwndParent: HWND, Flags: DWORD, DeviceInfoSet: HDEVINFO, MachineName: PCSTR, Reserved: PVOID): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsExA".} - proc SetupDiGetINFClass*(InfName: PCSTR, ClassGuid: LPGUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetINFClassA".} - proc SetupDiBuildClassInfoListEx*(Flags: DWORD, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiBuildClassInfoListExA".} - proc SetupDiGetClassDescription*(ClassGuid: ptr GUID, ClassDescription: PSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionA".} - proc SetupDiGetClassDescriptionEx*(ClassGuid: ptr GUID, ClassDescription: PSTR, ClassDescriptionSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionExA".} - proc SetupDiInstallClass*(hwndParent: HWND, InfFileName: PCSTR, Flags: DWORD, FileQueue: HSPFILEQ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassA".} - proc SetupDiInstallClassEx*(hwndParent: HWND, InfFileName: PCSTR, Flags: DWORD, FileQueue: HSPFILEQ, InterfaceClassGuid: ptr GUID, Reserved1: PVOID, Reserved2: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassExA".} - proc SetupDiOpenClassRegKeyEx*(ClassGuid: ptr GUID, samDesired: REGSAM, Flags: DWORD, MachineName: PCSTR, Reserved: PVOID): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenClassRegKeyExA".} - proc SetupDiCreateDeviceInterfaceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyA".} - proc SetupDiCreateInterfaceDeviceRegKey*(DeviceInfoSet: HDEVINFO, DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, Reserved: DWORD, samDesired: REGSAM, InfHandle: HINF, InfSectionName: PCSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyA".} - proc SetupDiCreateDevRegKey*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Scope: DWORD, HwProfile: DWORD, KeyType: DWORD, InfHandle: HINF, InfSectionName: PCSTR): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDevRegKeyA".} - proc SetupDiGetHwProfileListEx*(HwProfileList: PDWORD, HwProfileListSize: DWORD, RequiredSize: PDWORD, CurrentlyActiveIndex: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileListExA".} - proc SetupDiGetDeviceRegistryProperty*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceRegistryPropertyA".} - proc SetupDiGetClassRegistryProperty*(ClassGuid: ptr GUID, Property: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassRegistryPropertyA".} - proc SetupDiSetDeviceRegistryProperty*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceRegistryPropertyA".} - proc SetupDiSetClassRegistryProperty*(ClassGuid: ptr GUID, Property: DWORD, PropertyBuffer: ptr BYTE, PropertyBufferSize: DWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassRegistryPropertyA".} - proc SetupDiGetDeviceInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstallParamsA".} - proc SetupDiGetClassInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassInstallParamsA".} - proc SetupDiSetDeviceInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceInstallParamsA".} - proc SetupDiSetClassInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, ClassInstallParams: PSP_CLASSINSTALL_HEADER, ClassInstallParamsSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassInstallParamsA".} - proc SetupDiGetDriverInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInstallParamsA".} - proc SetupDiSetDriverInstallParams*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, DriverInfoData: PSP_DRVINFO_DATA_A, DriverInstallParams: PSP_DRVINSTALL_PARAMS): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDriverInstallParamsA".} - proc SetupDiGetClassImageListEx*(ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassImageListExA".} - proc SetupDiGetClassDevPropertySheets*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, PropertySheetHeader: LPPROPSHEETHEADERA, PropertySheetHeaderPageListSize: DWORD, RequiredSize: PDWORD, PropertySheetType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevPropertySheetsA".} - proc SetupDiClassNameFromGuid*(ClassGuid: ptr GUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidA".} - proc SetupDiClassNameFromGuidEx*(ClassGuid: ptr GUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidExA".} - proc SetupDiClassGuidsFromName*(ClassName: PCSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameA".} - proc SetupDiClassGuidsFromNameEx*(ClassName: PCSTR, ClassGuidList: LPGUID, ClassGuidListSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameExA".} - proc SetupDiGetHwProfileFriendlyName*(HwProfile: DWORD, FriendlyName: PSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameA".} - proc SetupDiGetHwProfileFriendlyNameEx*(HwProfile: DWORD, FriendlyName: PSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD, MachineName: PCSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameExA".} - proc SetupDiGetActualModelsSection*(Context: PINFCONTEXT, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualModelsSectionA".} - proc SetupDiGetActualSectionToInstall*(InfHandle: HINF, InfSectionName: PCSTR, InfSectionWithExt: PSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PSTR): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallA".} - proc SetupDiGetActualSectionToInstallEx*(InfHandle: HINF, InfSectionName: PCSTR, AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, InfSectionWithExt: PSTR, InfSectionWithExtSize: DWORD, RequiredSize: PDWORD, Extension: ptr PSTR, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallExA".} - proc SetupEnumInfSections*(InfHandle: HINF, Index: UINT, Buffer: PSTR, Size: UINT, SizeNeeded: ptr UINT): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupEnumInfSectionsA".} - proc SetupVerifyInfFile*(InfName: PCSTR, AltPlatformInfo: PSP_ALTPLATFORM_INFO, InfSignerInfo: PSP_INF_SIGNER_INFO_A): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupVerifyInfFileA".} - proc SetupDiGetCustomDeviceProperty*(DeviceInfoSet: HDEVINFO, DeviceInfoData: PSP_DEVINFO_DATA, CustomPropertyName: PCSTR, Flags: DWORD, PropertyRegDataType: PDWORD, PropertyBuffer: PBYTE, PropertyBufferSize: DWORD, RequiredSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetCustomDevicePropertyA".} - proc SetupConfigureWmiFromInfSection*(InfHandle: HINF, SectionName: PCSTR, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupConfigureWmiFromInfSectionA".} + + proc SetupGetInfInformation*( + InfSpec: LPCVOID, + SearchControl: DWORD, + ReturnBuffer: PSP_INF_INFORMATION, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfInformationA".} + + proc SetupQueryInfFileInformation*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfFileInformationA" + .} + + proc SetupQueryInfOriginalFileInformation*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + OriginalFileInfo: PSP_ORIGINAL_FILE_INFO_A, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupQueryInfOriginalFileInformationA" + .} + + proc SetupQueryInfVersionInformation*( + InfInformation: PSP_INF_INFORMATION, + InfIndex: UINT, + Key: PCSTR, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryInfVersionInformationA" + .} + + proc SetupGetInfFileList*( + DirectoryPath: PCSTR, + InfStyle: DWORD, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetInfFileListA".} + + proc SetupOpenInfFile*( + FileName: PCSTR, InfClass: PCSTR, InfStyle: DWORD, ErrorLine: PUINT + ): HINF {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenInfFileA".} + + proc SetupOpenAppendInfFile*( + FileName: PCSTR, InfHandle: HINF, ErrorLine: PUINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupOpenAppendInfFileA".} + + proc SetupFindFirstLine*( + InfHandle: HINF, Section: PCSTR, Key: PCSTR, Context: PINFCONTEXT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindFirstLineA".} + + proc SetupFindNextMatchLine*( + ContextIn: PINFCONTEXT, Key: PCSTR, ContextOut: PINFCONTEXT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFindNextMatchLineA".} + + proc SetupGetLineByIndex*( + InfHandle: HINF, Section: PCSTR, Index: DWORD, Context: PINFCONTEXT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineByIndexA".} + + proc SetupGetLineCount*( + InfHandle: HINF, Section: PCSTR + ): LONG {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineCountA".} + + proc SetupGetLineText*( + Context: PINFCONTEXT, + InfHandle: HINF, + Section: PCSTR, + Key: PCSTR, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetLineTextA".} + + proc SetupGetStringField*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetStringFieldA".} + + proc SetupGetMultiSzField*( + Context: PINFCONTEXT, + FieldIndex: DWORD, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetMultiSzFieldA".} + + proc SetupGetFileCompressionInfo*( + SourceFileName: PCSTR, + ActualSourceFileName: ptr PSTR, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, + ): DWORD {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoA" + .} + + proc SetupGetFileCompressionInfoEx*( + SourceFileName: PCSTR, + ActualSourceFileNameBuffer: PSTR, + ActualSourceFileNameBufferLen: DWORD, + RequiredBufferLen: PDWORD, + SourceFileSize: PDWORD, + TargetFileSize: PDWORD, + CompressionType: PUINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetFileCompressionInfoExA" + .} + + proc SetupDecompressOrCopyFile*( + SourceFileName: PCSTR, TargetFileName: PCSTR, CompressionType: PUINT + ): DWORD {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDecompressOrCopyFileA" + .} + + proc SetupGetSourceFileLocation*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCSTR, + SourceId: PUINT, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileLocationA" + .} + + proc SetupGetSourceFileSize*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + FileName: PCSTR, + Section: PCSTR, + FileSize: PDWORD, + RoundingFactor: UINT, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceFileSizeA".} + + proc SetupGetTargetPath*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + Section: PCSTR, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetTargetPathA".} + + proc SetupSetSourceList*( + Flags: DWORD, SourceList: ptr PCSTR, SourceCount: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetSourceListA".} + + proc SetupAddToSourceList*( + Flags: DWORD, Source: PCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToSourceListA".} + + proc SetupRemoveFromSourceList*( + Flags: DWORD, Source: PCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromSourceListA" + .} + + proc SetupQuerySourceList*( + Flags: DWORD, List: ptr ptr PCSTR, Count: PUINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySourceListA".} + + proc SetupFreeSourceList*( + List: ptr ptr PCSTR, Count: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupFreeSourceListA".} + + proc SetupPromptForDisk*( + hwndParent: HWND, + DialogTitle: PCSTR, + DiskName: PCSTR, + PathToSource: PCSTR, + FileSought: PCSTR, + TagFile: PCSTR, + DiskPromptStyle: DWORD, + PathBuffer: PSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupPromptForDiskA".} + + proc SetupCopyError*( + hwndParent: HWND, + DialogTitle: PCSTR, + DiskName: PCSTR, + PathToSource: PCSTR, + SourceFile: PCSTR, + TargetPathFile: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, + PathBuffer: PSTR, + PathBufferSize: DWORD, + PathRequiredSize: PDWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyErrorA".} + + proc SetupRenameError*( + hwndParent: HWND, + DialogTitle: PCSTR, + SourceFile: PCSTR, + TargetFile: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupRenameErrorA".} + + proc SetupDeleteError*( + hwndParent: HWND, + DialogTitle: PCSTR, + File: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDeleteErrorA".} + + proc SetupBackupError*( + hwndParent: HWND, + DialogTitle: PCSTR, + SourceFile: PCSTR, + TargetFile: PCSTR, + Win32ErrorCode: UINT, + Style: DWORD, + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupBackupErrorA".} + + proc SetupSetDirectoryId*( + InfHandle: HINF, Id: DWORD, Directory: PCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdA".} + + proc SetupSetDirectoryIdEx*( + InfHandle: HINF, + Id: DWORD, + Directory: PCSTR, + Flags: DWORD, + Reserved1: DWORD, + Reserved2: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupSetDirectoryIdExA".} + + proc SetupGetSourceInfo*( + InfHandle: HINF, + SourceId: UINT, + InfoDesired: UINT, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupGetSourceInfoA".} + + proc SetupInstallFile*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCSTR, + SourcePathRoot: PCSTR, + DestinationName: PCSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_A, + Context: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileA".} + + proc SetupInstallFileEx*( + InfHandle: HINF, + InfContext: PINFCONTEXT, + SourceFile: PCSTR, + SourcePathRoot: PCSTR, + DestinationName: PCSTR, + CopyStyle: DWORD, + CopyMsgHandler: PSP_FILE_CALLBACK_A, + Context: PVOID, + FileWasInUse: PBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFileExA".} + + proc SetupSetFileQueueAlternatePlatform*( + QueueHandle: HSPFILEQ, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + AlternateDefaultCatalogFile: PCSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupSetFileQueueAlternatePlatformA" + .} + + proc SetupQueueDeleteSection*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteSectionA" + .} + + proc SetupQueueRename*( + QueueHandle: HSPFILEQ, + SourcePath: PCSTR, + SourceFilename: PCSTR, + TargetPath: PCSTR, + TargetFilename: PCSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameA".} + + proc SetupQueueRenameSection*( + QueueHandle: HSPFILEQ, InfHandle: HINF, ListInfHandle: HINF, Section: PCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueRenameSectionA" + .} + + proc SetupCommitFileQueue*( + Owner: HWND, QueueHandle: HSPFILEQ, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCommitFileQueueA".} + + proc SetupScanFileQueue*( + FileQueue: HSPFILEQ, + Flags: DWORD, + Window: HWND, + CallbackRoutine: PSP_FILE_CALLBACK_A, + CallbackContext: PVOID, + Result: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupScanFileQueueA".} + + proc SetupSetPlatformPathOverride*( + Override: PCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupSetPlatformPathOverrideA" + .} + + proc SetupQueueCopy*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCSTR, + SourcePath: PCSTR, + SourceFilename: PCSTR, + SourceDescription: PCSTR, + SourceTagfile: PCSTR, + TargetDirectory: PCSTR, + TargetFilename: PCSTR, + CopyStyle: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyA".} + + proc SetupQueueCopyIndirect*( + CopyParams: PSP_FILE_COPY_PARAMS_A + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopyIndirectA".} + + proc SetupQueueDefaultCopy*( + QueueHandle: HSPFILEQ, + InfHandle: HINF, + SourceRootPath: PCSTR, + SourceFilename: PCSTR, + TargetFilename: PCSTR, + CopyStyle: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDefaultCopyA".} + + proc SetupQueueCopySection*( + QueueHandle: HSPFILEQ, + SourceRootPath: PCSTR, + InfHandle: HINF, + ListInfHandle: HINF, + Section: PCSTR, + CopyStyle: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueCopySectionA".} + + proc SetupQueueDelete*( + QueueHandle: HSPFILEQ, PathPart1: PCSTR, PathPart2: PCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueueDeleteA".} + + proc SetupCopyOEMInf*( + SourceInfFileName: PCSTR, + OEMSourceMediaLocation: PCSTR, + OEMSourceMediaType: DWORD, + CopyStyle: DWORD, + DestinationInfFileName: PSTR, + DestinationInfFileNameSize: DWORD, + RequiredSize: PDWORD, + DestinationInfFileNameComponent: ptr PSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupCopyOEMInfA".} + + proc SetupUninstallOEMInf*( + InfFileName: PCSTR, Flags: DWORD, Reserved: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupUninstallOEMInfA".} + + proc SetupCreateDiskSpaceList*( + Reserved1: PVOID, Reserved2: DWORD, Flags: UINT + ): HDSKSPC {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupCreateDiskSpaceListA" + .} + + proc SetupDuplicateDiskSpaceList*( + DiskSpace: HDSKSPC, Reserved1: PVOID, Reserved2: DWORD, Flags: UINT + ): HDSKSPC {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDuplicateDiskSpaceListA" + .} + + proc SetupQueryDrivesInDiskSpaceList*( + DiskSpace: HDSKSPC, + ReturnBuffer: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryDrivesInDiskSpaceListA" + .} + + proc SetupQuerySpaceRequiredOnDrive*( + DiskSpace: HDSKSPC, + DriveSpec: PCSTR, + SpaceRequired: ptr LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupQuerySpaceRequiredOnDriveA" + .} + + proc SetupAdjustDiskSpaceList*( + DiskSpace: HDSKSPC, + DriveRoot: LPCSTR, + Amount: LONGLONG, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupAdjustDiskSpaceListA" + .} + + proc SetupAddToDiskSpaceList*( + DiskSpace: HDSKSPC, + TargetFilespec: PCSTR, + FileSize: LONGLONG, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupAddToDiskSpaceListA" + .} + + proc SetupAddSectionToDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupAddSectionToDiskSpaceListA" + .} + + proc SetupAddInstallSectionToDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCSTR, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupAddInstallSectionToDiskSpaceListA" + .} + + proc SetupRemoveFromDiskSpaceList*( + DiskSpace: HDSKSPC, + TargetFilespec: PCSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFromDiskSpaceListA" + .} + + proc SetupRemoveSectionFromDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + ListInfHandle: HINF, + SectionName: PCSTR, + Operation: UINT, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveSectionFromDiskSpaceListA" + .} + + proc SetupRemoveInstallSectionFromDiskSpaceList*( + DiskSpace: HDSKSPC, + InfHandle: HINF, + LayoutInfHandle: HINF, + SectionName: PCSTR, + Reserved1: PVOID, + Reserved2: UINT, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupRemoveInstallSectionFromDiskSpaceListA" + .} + + proc SetupIterateCabinet*( + CabinetFile: PCSTR, Reserved: DWORD, MsgHandler: PSP_FILE_CALLBACK_A, Context: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupIterateCabinetA".} + + proc SetupDefaultQueueCallback*( + Context: PVOID, Notification: UINT, Param1: UINT_PTR, Param2: UINT_PTR + ): UINT {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDefaultQueueCallbackA".} + + proc SetupInstallFromInfSection*( + Owner: HWND, + InfHandle: HINF, + SectionName: PCSTR, + Flags: UINT, + RelativeKeyRoot: HKEY, + SourceRootPath: PCSTR, + CopyFlags: UINT, + MsgHandler: PSP_FILE_CALLBACK_A, + Context: PVOID, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFromInfSectionA" + .} + + proc SetupInstallFilesFromInfSection*( + InfHandle: HINF, + LayoutInfHandle: HINF, + FileQueue: HSPFILEQ, + SectionName: PCSTR, + SourceRootPath: PCSTR, + CopyFlags: UINT, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallFilesFromInfSectionA" + .} + + proc SetupInstallServicesFromInfSection*( + InfHandle: HINF, SectionName: PCSTR, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInstallServicesFromInfSectionA" + .} + + proc SetupInstallServicesFromInfSectionEx*( + InfHandle: HINF, + SectionName: PCSTR, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Reserved1: PVOID, + Reserved2: PVOID, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "setupapi", + importc: "SetupInstallServicesFromInfSectionExA" + .} + + proc InstallHinfSection*( + Window: HWND, ModuleHandle: HINSTANCE, CommandLine: PCSTR, ShowCommand: INT + ): VOID {.winapi, stdcall, dynlib: "setupapi", importc: "InstallHinfSectionA".} + + proc SetupInitializeFileLog*( + LogFileName: PCSTR, Flags: DWORD + ): HSPFILELOG {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupInitializeFileLogA" + .} + + proc SetupLogFile*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCSTR, + SourceFilename: PCSTR, + TargetFilename: PCSTR, + Checksum: DWORD, + DiskTagfile: PCSTR, + DiskDescription: PCSTR, + OtherInfo: PCSTR, + Flags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogFileA".} + + proc SetupRemoveFileLogEntry*( + FileLogHandle: HSPFILELOG, LogSectionName: PCSTR, TargetFilename: PCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupRemoveFileLogEntryA" + .} + + proc SetupQueryFileLog*( + FileLogHandle: HSPFILELOG, + LogSectionName: PCSTR, + TargetFilename: PCSTR, + DesiredInfo: SetupFileLogInfo, + DataOut: PSTR, + ReturnBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupQueryFileLogA".} + + proc SetupLogError*( + MessageString: LPCSTR, Severity: LogSeverity + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupLogErrorA".} + + proc SetupGetBackupInformation*( + QueueHandle: HSPFILEQ, BackupParams: PSP_BACKUP_QUEUE_PARAMS_A + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupGetBackupInformationA" + .} + + proc SetupPrepareQueueForRestore*( + QueueHandle: HSPFILEQ, BackupPath: PCSTR, RestoreFlags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupPrepareQueueForRestoreA" + .} + + proc SetupDiCreateDeviceInfoListEx*( + ClassGuid: ptr GUID, hwndParent: HWND, MachineName: PCSTR, Reserved: PVOID + ): HDEVINFO {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoListExA" + .} + + proc SetupDiGetDeviceInfoListDetail*( + DeviceInfoSet: HDEVINFO, DeviceInfoSetDetailData: PSP_DEVINFO_LIST_DETAIL_DATA_A + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInfoListDetailA" + .} + + proc SetupDiCreateDeviceInfo*( + DeviceInfoSet: HDEVINFO, + DeviceName: PCSTR, + ClassGuid: ptr GUID, + DeviceDescription: PCSTR, + hwndParent: HWND, + CreationFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInfoA" + .} + + proc SetupDiOpenDeviceInfo*( + DeviceInfoSet: HDEVINFO, + DeviceInstanceId: PCSTR, + hwndParent: HWND, + OpenFlags: DWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInfoA".} + + proc SetupDiGetDeviceInstanceId*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstanceId: PSTR, + DeviceInstanceIdSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstanceIdA" + .} + + proc SetupDiCreateDeviceInterface*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceA" + .} + + proc SetupDiCreateInterfaceDevice*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + InterfaceClassGuid: ptr GUID, + ReferenceString: PCSTR, + CreationFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceA" + .} + + proc SetupDiOpenDeviceInterface*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceA" + .} + + proc SetupDiOpenInterfaceDevice*( + DeviceInfoSet: HDEVINFO, + DevicePath: PCSTR, + OpenFlags: DWORD, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenDeviceInterfaceA" + .} + + proc SetupDiGetDeviceInterfaceDetail*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailA" + .} + + proc SetupDiGetInterfaceDeviceDetail*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + DeviceInterfaceDetailData: PSP_DEVICE_INTERFACE_DETAIL_DATA_A, + DeviceInterfaceDetailDataSize: DWORD, + RequiredSize: PDWORD, + DeviceInfoData: PSP_DEVINFO_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInterfaceDetailA" + .} + + proc SetupDiEnumDriverInfo*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverType: DWORD, + MemberIndex: DWORD, + DriverInfoData: PSP_DRVINFO_DATA_A, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiEnumDriverInfoA".} + + proc SetupDiGetSelectedDriver*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetSelectedDriverA" + .} + + proc SetupDiSetSelectedDriver*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetSelectedDriverA" + .} + + proc SetupDiGetDriverInfoDetail*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + DriverInfoDetailData: PSP_DRVINFO_DETAIL_DATA_A, + DriverInfoDetailDataSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInfoDetailA" + .} + + proc SetupDiGetClassDevs*( + ClassGuid: ptr GUID, Enumerator: PCSTR, hwndParent: HWND, Flags: DWORD + ): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsA".} + + proc SetupDiGetClassDevsEx*( + ClassGuid: ptr GUID, + Enumerator: PCSTR, + hwndParent: HWND, + Flags: DWORD, + DeviceInfoSet: HDEVINFO, + MachineName: PCSTR, + Reserved: PVOID, + ): HDEVINFO {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevsExA".} + + proc SetupDiGetINFClass*( + InfName: PCSTR, + ClassGuid: LPGUID, + ClassName: PSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetINFClassA".} + + proc SetupDiBuildClassInfoListEx*( + Flags: DWORD, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiBuildClassInfoListExA" + .} + + proc SetupDiGetClassDescription*( + ClassGuid: ptr GUID, + ClassDescription: PSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionA" + .} + + proc SetupDiGetClassDescriptionEx*( + ClassGuid: ptr GUID, + ClassDescription: PSTR, + ClassDescriptionSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDescriptionExA" + .} + + proc SetupDiInstallClass*( + hwndParent: HWND, InfFileName: PCSTR, Flags: DWORD, FileQueue: HSPFILEQ + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassA".} + + proc SetupDiInstallClassEx*( + hwndParent: HWND, + InfFileName: PCSTR, + Flags: DWORD, + FileQueue: HSPFILEQ, + InterfaceClassGuid: ptr GUID, + Reserved1: PVOID, + Reserved2: PVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiInstallClassExA".} + + proc SetupDiOpenClassRegKeyEx*( + ClassGuid: ptr GUID, + samDesired: REGSAM, + Flags: DWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiOpenClassRegKeyExA".} + + proc SetupDiCreateDeviceInterfaceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCSTR, + ): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyA" + .} + + proc SetupDiCreateInterfaceDeviceRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInterfaceData: PSP_DEVICE_INTERFACE_DATA, + Reserved: DWORD, + samDesired: REGSAM, + InfHandle: HINF, + InfSectionName: PCSTR, + ): HKEY {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDeviceInterfaceRegKeyA" + .} + + proc SetupDiCreateDevRegKey*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Scope: DWORD, + HwProfile: DWORD, + KeyType: DWORD, + InfHandle: HINF, + InfSectionName: PCSTR, + ): HKEY {.winapi, stdcall, dynlib: "setupapi", importc: "SetupDiCreateDevRegKeyA".} + + proc SetupDiGetHwProfileListEx*( + HwProfileList: PDWORD, + HwProfileListSize: DWORD, + RequiredSize: PDWORD, + CurrentlyActiveIndex: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileListExA" + .} + + proc SetupDiGetDeviceRegistryProperty*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceRegistryPropertyA" + .} + + proc SetupDiGetClassRegistryProperty*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassRegistryPropertyA" + .} + + proc SetupDiSetDeviceRegistryProperty*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceRegistryPropertyA" + .} + + proc SetupDiSetClassRegistryProperty*( + ClassGuid: ptr GUID, + Property: DWORD, + PropertyBuffer: ptr BYTE, + PropertyBufferSize: DWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassRegistryPropertyA" + .} + + proc SetupDiGetDeviceInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDeviceInstallParamsA" + .} + + proc SetupDiGetClassInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassInstallParamsA" + .} + + proc SetupDiSetDeviceInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DeviceInstallParams: PSP_DEVINSTALL_PARAMS_A, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDeviceInstallParamsA" + .} + + proc SetupDiSetClassInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + ClassInstallParams: PSP_CLASSINSTALL_HEADER, + ClassInstallParamsSize: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetClassInstallParamsA" + .} + + proc SetupDiGetDriverInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetDriverInstallParamsA" + .} + + proc SetupDiSetDriverInstallParams*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + DriverInfoData: PSP_DRVINFO_DATA_A, + DriverInstallParams: PSP_DRVINSTALL_PARAMS, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiSetDriverInstallParamsA" + .} + + proc SetupDiGetClassImageListEx*( + ClassImageListData: PSP_CLASSIMAGELIST_DATA, MachineName: PCSTR, Reserved: PVOID + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassImageListExA" + .} + + proc SetupDiGetClassDevPropertySheets*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + PropertySheetHeader: LPPROPSHEETHEADERA, + PropertySheetHeaderPageListSize: DWORD, + RequiredSize: PDWORD, + PropertySheetType: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetClassDevPropertySheetsA" + .} + + proc SetupDiClassNameFromGuid*( + ClassGuid: ptr GUID, ClassName: PSTR, ClassNameSize: DWORD, RequiredSize: PDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidA" + .} + + proc SetupDiClassNameFromGuidEx*( + ClassGuid: ptr GUID, + ClassName: PSTR, + ClassNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassNameFromGuidExA" + .} + + proc SetupDiClassGuidsFromName*( + ClassName: PCSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameA" + .} + + proc SetupDiClassGuidsFromNameEx*( + ClassName: PCSTR, + ClassGuidList: LPGUID, + ClassGuidListSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiClassGuidsFromNameExA" + .} + + proc SetupDiGetHwProfileFriendlyName*( + HwProfile: DWORD, FriendlyName: PSTR, FriendlyNameSize: DWORD, RequiredSize: PDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameA" + .} + + proc SetupDiGetHwProfileFriendlyNameEx*( + HwProfile: DWORD, + FriendlyName: PSTR, + FriendlyNameSize: DWORD, + RequiredSize: PDWORD, + MachineName: PCSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetHwProfileFriendlyNameExA" + .} + + proc SetupDiGetActualModelsSection*( + Context: PINFCONTEXT, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualModelsSectionA" + .} + + proc SetupDiGetActualSectionToInstall*( + InfHandle: HINF, + InfSectionName: PCSTR, + InfSectionWithExt: PSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallA" + .} + + proc SetupDiGetActualSectionToInstallEx*( + InfHandle: HINF, + InfSectionName: PCSTR, + AlternatePlatformInfo: PSP_ALTPLATFORM_INFO, + InfSectionWithExt: PSTR, + InfSectionWithExtSize: DWORD, + RequiredSize: PDWORD, + Extension: ptr PSTR, + Reserved: PVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetActualSectionToInstallExA" + .} + + proc SetupEnumInfSections*( + InfHandle: HINF, Index: UINT, Buffer: PSTR, Size: UINT, SizeNeeded: ptr UINT + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupEnumInfSectionsA".} + + proc SetupVerifyInfFile*( + InfName: PCSTR, + AltPlatformInfo: PSP_ALTPLATFORM_INFO, + InfSignerInfo: PSP_INF_SIGNER_INFO_A, + ): WINBOOL {.winapi, stdcall, dynlib: "setupapi", importc: "SetupVerifyInfFileA".} + + proc SetupDiGetCustomDeviceProperty*( + DeviceInfoSet: HDEVINFO, + DeviceInfoData: PSP_DEVINFO_DATA, + CustomPropertyName: PCSTR, + Flags: DWORD, + PropertyRegDataType: PDWORD, + PropertyBuffer: PBYTE, + PropertyBufferSize: DWORD, + RequiredSize: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupDiGetCustomDevicePropertyA" + .} + + proc SetupConfigureWmiFromInfSection*( + InfHandle: HINF, SectionName: PCSTR, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "setupapi", importc: "SetupConfigureWmiFromInfSectionA" + .} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/shellapi.nim --- a/semicongine/thirdparty/winim/winim/inc/shellapi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/shellapi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -181,6 +181,7 @@ fNC*: WINBOOL lpFileList*: LPSTR grfKeyState*: DWORD + LPDRAGINFOA* = ptr DRAGINFOA DRAGINFOW* {.pure.} = object uSize*: UINT @@ -188,6 +189,7 @@ fNC*: WINBOOL lpFileList*: LPWSTR grfKeyState*: DWORD + LPDRAGINFOW* = ptr DRAGINFOW APPBARDATA* {.pure.} = object cbSize*: DWORD @@ -196,53 +198,54 @@ uEdge*: UINT rc*: RECT lParam*: LPARAM + PAPPBARDATA* = ptr APPBARDATA + when winimCpu64: - type - SHFILEOPSTRUCTA* {.pure.} = object - hwnd*: HWND - wFunc*: UINT - pFrom*: LPCSTR - pTo*: LPCSTR - fFlags*: FILEOP_FLAGS - fAnyOperationsAborted*: WINBOOL - hNameMappings*: LPVOID - lpszProgressTitle*: PCSTR + type SHFILEOPSTRUCTA* {.pure.} = object + hwnd*: HWND + wFunc*: UINT + pFrom*: LPCSTR + pTo*: LPCSTR + fFlags*: FILEOP_FLAGS + fAnyOperationsAborted*: WINBOOL + hNameMappings*: LPVOID + lpszProgressTitle*: PCSTR + when winimCpu32: - type - SHFILEOPSTRUCTA* {.pure, packed.} = object - hwnd*: HWND - wFunc*: UINT - pFrom*: LPCSTR - pTo*: LPCSTR - fFlags*: FILEOP_FLAGS - fAnyOperationsAborted*: WINBOOL - hNameMappings*: LPVOID - lpszProgressTitle*: PCSTR -type - LPSHFILEOPSTRUCTA* = ptr SHFILEOPSTRUCTA + type SHFILEOPSTRUCTA* {.pure, packed.} = object + hwnd*: HWND + wFunc*: UINT + pFrom*: LPCSTR + pTo*: LPCSTR + fFlags*: FILEOP_FLAGS + fAnyOperationsAborted*: WINBOOL + hNameMappings*: LPVOID + lpszProgressTitle*: PCSTR + +type LPSHFILEOPSTRUCTA* = ptr SHFILEOPSTRUCTA when winimCpu64: - type - SHFILEOPSTRUCTW* {.pure.} = object - hwnd*: HWND - wFunc*: UINT - pFrom*: LPCWSTR - pTo*: LPCWSTR - fFlags*: FILEOP_FLAGS - fAnyOperationsAborted*: WINBOOL - hNameMappings*: LPVOID - lpszProgressTitle*: PCWSTR + type SHFILEOPSTRUCTW* {.pure.} = object + hwnd*: HWND + wFunc*: UINT + pFrom*: LPCWSTR + pTo*: LPCWSTR + fFlags*: FILEOP_FLAGS + fAnyOperationsAborted*: WINBOOL + hNameMappings*: LPVOID + lpszProgressTitle*: PCWSTR + when winimCpu32: - type - SHFILEOPSTRUCTW* {.pure, packed.} = object - hwnd*: HWND - wFunc*: UINT - pFrom*: LPCWSTR - pTo*: LPCWSTR - fFlags*: FILEOP_FLAGS - fAnyOperationsAborted*: WINBOOL - hNameMappings*: LPVOID - lpszProgressTitle*: PCWSTR + type SHFILEOPSTRUCTW* {.pure, packed.} = object + hwnd*: HWND + wFunc*: UINT + pFrom*: LPCWSTR + pTo*: LPCWSTR + fFlags*: FILEOP_FLAGS + fAnyOperationsAborted*: WINBOOL + hNameMappings*: LPVOID + lpszProgressTitle*: PCWSTR + type LPSHFILEOPSTRUCTW* = ptr SHFILEOPSTRUCTW SHNAMEMAPPINGA* {.pure.} = object @@ -250,16 +253,19 @@ pszNewPath*: LPSTR cchOldPath*: int32 cchNewPath*: int32 + LPSHNAMEMAPPINGA* = ptr SHNAMEMAPPINGA SHNAMEMAPPINGW* {.pure.} = object pszOldPath*: LPWSTR pszNewPath*: LPWSTR cchOldPath*: int32 cchNewPath*: int32 + LPSHNAMEMAPPINGW* = ptr SHNAMEMAPPINGW SHELLEXECUTEINFOA_UNION1* {.pure, union.} = object hIcon*: HANDLE hMonitor*: HANDLE + SHELLEXECUTEINFOA* {.pure.} = object cbSize*: DWORD fMask*: ULONG @@ -276,10 +282,12 @@ dwHotKey*: DWORD union1*: SHELLEXECUTEINFOA_UNION1 hProcess*: HANDLE + LPSHELLEXECUTEINFOA* = ptr SHELLEXECUTEINFOA SHELLEXECUTEINFOW_UNION1* {.pure, union.} = object hIcon*: HANDLE hMonitor*: HANDLE + SHELLEXECUTEINFOW* {.pure.} = object cbSize*: DWORD fMask*: ULONG @@ -296,6 +304,7 @@ dwHotKey*: DWORD union1*: SHELLEXECUTEINFOW_UNION1 hProcess*: HANDLE + LPSHELLEXECUTEINFOW* = ptr SHELLEXECUTEINFOW SHCREATEPROCESSINFOW* {.pure.} = object cbSize*: DWORD @@ -311,24 +320,27 @@ dwCreationFlags*: DWORD lpStartupInfo*: LPSTARTUPINFOW lpProcessInformation*: LPPROCESS_INFORMATION + PSHCREATEPROCESSINFOW* = ptr SHCREATEPROCESSINFOW + when winimCpu64: - type - SHQUERYRBINFO* {.pure.} = object - cbSize*: DWORD - i64Size*: int64 - i64NumItems*: int64 + type SHQUERYRBINFO* {.pure.} = object + cbSize*: DWORD + i64Size*: int64 + i64NumItems*: int64 + when winimCpu32: - type - SHQUERYRBINFO* {.pure, packed.} = object - cbSize*: DWORD - i64Size*: int64 - i64NumItems*: int64 + type SHQUERYRBINFO* {.pure, packed.} = object + cbSize*: DWORD + i64Size*: int64 + i64NumItems*: int64 + type LPSHQUERYRBINFO* = ptr SHQUERYRBINFO NOTIFYICONDATAA_UNION1* {.pure, union.} = object uTimeout*: UINT uVersion*: UINT + NOTIFYICONDATAA* {.pure.} = object cbSize*: DWORD hWnd*: HWND @@ -345,10 +357,12 @@ dwInfoFlags*: DWORD guidItem*: GUID hBalloonIcon*: HICON + PNOTIFYICONDATAA* = ptr NOTIFYICONDATAA NOTIFYICONDATAW_UNION1* {.pure, union.} = object uTimeout*: UINT uVersion*: UINT + NOTIFYICONDATAW* {.pure.} = object cbSize*: DWORD hWnd*: HWND @@ -365,12 +379,14 @@ dwInfoFlags*: DWORD guidItem*: GUID hBalloonIcon*: HICON + PNOTIFYICONDATAW* = ptr NOTIFYICONDATAW NOTIFYICONIDENTIFIER* {.pure.} = object cbSize*: DWORD hWnd*: HWND uID*: UINT guidItem*: GUID + PNOTIFYICONIDENTIFIER* = ptr NOTIFYICONIDENTIFIER OPEN_PRINTER_PROPS_INFOA* {.pure.} = object dwSize*: DWORD @@ -378,6 +394,7 @@ uSheetIndex*: UINT dwFlags*: DWORD bModal*: WINBOOL + POPEN_PRINTER_PROPS_INFOA* = ptr OPEN_PRINTER_PROPS_INFOA OPEN_PRINTER_PROPS_INFOW* {.pure.} = object dwSize*: DWORD @@ -385,68 +402,106 @@ uSheetIndex*: UINT dwFlags*: DWORD bModal*: WINBOOL + POPEN_PRINTER_PROPS_INFOW* = ptr OPEN_PRINTER_PROPS_INFOW NC_ADDRESS* {.pure.} = object pAddrInfo*: ptr NET_ADDRESS_INFO PortNumber*: USHORT PrefixLength*: BYTE + PNC_ADDRESS* = ptr NC_ADDRESS PHUSKEY* = ptr HUSKEY IDefViewID* = IUnknown FolderItemVerb* {.pure.} = object lpVtbl*: ptr FolderItemVerbVtbl + FolderItemVerbVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_Application*: proc(self: ptr FolderItemVerb, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr FolderItemVerb, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr FolderItemVerb, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr FolderItemVerb, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} get_Name*: proc(self: ptr FolderItemVerb, pbs: ptr BSTR): HRESULT {.stdcall.} DoIt*: proc(self: ptr FolderItemVerb): HRESULT {.stdcall.} + FolderItemVerbs* {.pure.} = object lpVtbl*: ptr FolderItemVerbsVtbl + FolderItemVerbsVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Count*: proc(self: ptr FolderItemVerbs, plCount: ptr LONG): HRESULT {.stdcall.} - get_Application*: proc(self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - Item*: proc(self: ptr FolderItemVerbs, index: VARIANT, ppid: ptr ptr FolderItemVerb): HRESULT {.stdcall.} - NewEnum*: proc(self: ptr FolderItemVerbs, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + Item*: proc( + self: ptr FolderItemVerbs, index: VARIANT, ppid: ptr ptr FolderItemVerb + ): HRESULT {.stdcall.} + NewEnum*: + proc(self: ptr FolderItemVerbs, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + FolderItem* {.pure.} = object lpVtbl*: ptr FolderItemVtbl + FolderItemVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_Application*: proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} get_Name*: proc(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.stdcall.} put_Name*: proc(self: ptr FolderItem, bs: BSTR): HRESULT {.stdcall.} get_Path*: proc(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.stdcall.} - get_GetLink*: proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_GetFolder*: proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_GetLink*: + proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_GetFolder*: + proc(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} get_IsLink*: proc(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_IsFolder*: proc(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsFileSystem*: proc(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.stdcall.} - get_IsBrowsable*: proc(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsFileSystem*: + proc(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_IsBrowsable*: + proc(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.stdcall.} get_ModifyDate*: proc(self: ptr FolderItem, pdt: ptr DATE): HRESULT {.stdcall.} put_ModifyDate*: proc(self: ptr FolderItem, dt: DATE): HRESULT {.stdcall.} get_Size*: proc(self: ptr FolderItem, pul: ptr LONG): HRESULT {.stdcall.} get_Type*: proc(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.stdcall.} - Verbs*: proc(self: ptr FolderItem, ppfic: ptr ptr FolderItemVerbs): HRESULT {.stdcall.} + Verbs*: + proc(self: ptr FolderItem, ppfic: ptr ptr FolderItemVerbs): HRESULT {.stdcall.} InvokeVerb*: proc(self: ptr FolderItem, vVerb: VARIANT): HRESULT {.stdcall.} + LPFOLDERITEM* = ptr FolderItem IAutoComplete* {.pure.} = object lpVtbl*: ptr IAutoCompleteVtbl + IAutoCompleteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Init*: proc(self: ptr IAutoComplete, hwndEdit: HWND, punkACL: ptr IUnknown, pwszRegKeyPath: LPCWSTR, pwszQuickComplete: LPCWSTR): HRESULT {.stdcall.} + Init*: proc( + self: ptr IAutoComplete, + hwndEdit: HWND, + punkACL: ptr IUnknown, + pwszRegKeyPath: LPCWSTR, + pwszQuickComplete: LPCWSTR, + ): HRESULT {.stdcall.} Enable*: proc(self: ptr IAutoComplete, fEnable: WINBOOL): HRESULT {.stdcall.} + LPAUTOCOMPLETE* = ptr IAutoComplete IAutoComplete2* {.pure.} = object lpVtbl*: ptr IAutoComplete2Vtbl + IAutoComplete2Vtbl* {.pure, inheritable.} = object of IAutoCompleteVtbl SetOptions*: proc(self: ptr IAutoComplete2, dwFlag: DWORD): HRESULT {.stdcall.} GetOptions*: proc(self: ptr IAutoComplete2, pdwFlag: ptr DWORD): HRESULT {.stdcall.} + LPAUTOCOMPLETE2* = ptr IAutoComplete2 IEnumACString* {.pure.} = object lpVtbl*: ptr IEnumACStringVtbl + IEnumACStringVtbl* {.pure, inheritable.} = object of IEnumStringVtbl - NextItem*: proc(self: ptr IEnumACString, pszUrl: LPWSTR, cchMax: ULONG, pulSortIndex: ptr ULONG): HRESULT {.stdcall.} - SetEnumOptions*: proc(self: ptr IEnumACString, dwOptions: DWORD): HRESULT {.stdcall.} - GetEnumOptions*: proc(self: ptr IEnumACString, pdwOptions: ptr DWORD): HRESULT {.stdcall.} + NextItem*: proc( + self: ptr IEnumACString, pszUrl: LPWSTR, cchMax: ULONG, pulSortIndex: ptr ULONG + ): HRESULT {.stdcall.} + SetEnumOptions*: + proc(self: ptr IEnumACString, dwOptions: DWORD): HRESULT {.stdcall.} + GetEnumOptions*: + proc(self: ptr IEnumACString, pdwOptions: ptr DWORD): HRESULT {.stdcall.} + PENUMACSTRING* = ptr IEnumACString LPENUMACSTRING* = ptr IEnumACString CMINVOKECOMMANDINFO* {.pure.} = object @@ -459,6 +514,7 @@ nShow*: int32 dwHotKey*: DWORD hIcon*: HANDLE + LPCMINVOKECOMMANDINFO* = ptr CMINVOKECOMMANDINFO PCCMINVOKECOMMANDINFO* = ptr CMINVOKECOMMANDINFO CMINVOKECOMMANDINFOEX* {.pure.} = object @@ -477,68 +533,176 @@ lpDirectoryW*: LPCWSTR lpTitleW*: LPCWSTR ptInvoke*: POINT + LPCMINVOKECOMMANDINFOEX* = ptr CMINVOKECOMMANDINFOEX PCCMINVOKECOMMANDINFOEX* = ptr CMINVOKECOMMANDINFOEX IContextMenu* {.pure.} = object lpVtbl*: ptr IContextMenuVtbl + IContextMenuVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryContextMenu*: proc(self: ptr IContextMenu, hmenu: HMENU, indexMenu: UINT, idCmdFirst: UINT, idCmdLast: UINT, uFlags: UINT): HRESULT {.stdcall.} - InvokeCommand*: proc(self: ptr IContextMenu, pici: ptr CMINVOKECOMMANDINFO): HRESULT {.stdcall.} - GetCommandString*: proc(self: ptr IContextMenu, idCmd: UINT_PTR, uType: UINT, pReserved: ptr UINT, pszName: ptr CHAR, cchMax: UINT): HRESULT {.stdcall.} + QueryContextMenu*: proc( + self: ptr IContextMenu, + hmenu: HMENU, + indexMenu: UINT, + idCmdFirst: UINT, + idCmdLast: UINT, + uFlags: UINT, + ): HRESULT {.stdcall.} + InvokeCommand*: + proc(self: ptr IContextMenu, pici: ptr CMINVOKECOMMANDINFO): HRESULT {.stdcall.} + GetCommandString*: proc( + self: ptr IContextMenu, + idCmd: UINT_PTR, + uType: UINT, + pReserved: ptr UINT, + pszName: ptr CHAR, + cchMax: UINT, + ): HRESULT {.stdcall.} + LPCONTEXTMENU* = ptr IContextMenu IContextMenu2* {.pure.} = object lpVtbl*: ptr IContextMenu2Vtbl + IContextMenu2Vtbl* {.pure, inheritable.} = object of IContextMenuVtbl - HandleMenuMsg*: proc(self: ptr IContextMenu2, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} + HandleMenuMsg*: proc( + self: ptr IContextMenu2, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + LPCONTEXTMENU2* = ptr IContextMenu2 IContextMenu3* {.pure.} = object lpVtbl*: ptr IContextMenu3Vtbl + IContextMenu3Vtbl* {.pure, inheritable.} = object of IContextMenu2Vtbl - HandleMenuMsg2*: proc(self: ptr IContextMenu3, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.stdcall.} + HandleMenuMsg2*: proc( + self: ptr IContextMenu3, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, + ): HRESULT {.stdcall.} + LPCONTEXTMENU3* = ptr IContextMenu3 IPersistFolder* {.pure.} = object lpVtbl*: ptr IPersistFolderVtbl + IPersistFolderVtbl* {.pure, inheritable.} = object of IPersistVtbl - Initialize*: proc(self: ptr IPersistFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + Initialize*: + proc(self: ptr IPersistFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + LPPERSISTFOLDER* = ptr IPersistFolder IEnumIDList* {.pure.} = object lpVtbl*: ptr IEnumIDListVtbl + IEnumIDListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumIDList, celt: ULONG, rgelt: ptr PITEMID_CHILD, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumIDList, + celt: ULONG, + rgelt: ptr PITEMID_CHILD, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumIDList, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumIDList): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumIDList, ppenum: ptr ptr IEnumIDList): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumIDList, ppenum: ptr ptr IEnumIDList): HRESULT {.stdcall.} + LPENUMIDLIST* = ptr IEnumIDList IShellFolder* {.pure.} = object lpVtbl*: ptr IShellFolderVtbl + IShellFolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParseDisplayName*: proc(self: ptr IShellFolder, hwnd: HWND, pbc: ptr IBindCtx, pszDisplayName: LPWSTR, pchEaten: ptr ULONG, ppidl: ptr PIDLIST_RELATIVE, pdwAttributes: ptr ULONG): HRESULT {.stdcall.} - EnumObjects*: proc(self: ptr IShellFolder, hwnd: HWND, grfFlags: SHCONTF, ppenumIDList: ptr ptr IEnumIDList): HRESULT {.stdcall.} - BindToObject*: proc(self: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - BindToStorage*: proc(self: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - CompareIDs*: proc(self: ptr IShellFolder, lParam: LPARAM, pidl1: PCUIDLIST_RELATIVE, pidl2: PCUIDLIST_RELATIVE): HRESULT {.stdcall.} - CreateViewObject*: proc(self: ptr IShellFolder, hwndOwner: HWND, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetAttributesOf*: proc(self: ptr IShellFolder, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, rgfInOut: ptr SFGAOF): HRESULT {.stdcall.} - GetUIObjectOf*: proc(self: ptr IShellFolder, hwndOwner: HWND, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, riid: REFIID, rgfReserved: ptr UINT, ppv: ptr pointer): HRESULT {.stdcall.} - GetDisplayNameOf*: proc(self: ptr IShellFolder, pidl: PCUITEMID_CHILD, uFlags: SHGDNF, pName: ptr STRRET): HRESULT {.stdcall.} - SetNameOf*: proc(self: ptr IShellFolder, hwnd: HWND, pidl: PCUITEMID_CHILD, pszName: LPCWSTR, uFlags: SHGDNF, ppidlOut: ptr PITEMID_CHILD): HRESULT {.stdcall.} + ParseDisplayName*: proc( + self: ptr IShellFolder, + hwnd: HWND, + pbc: ptr IBindCtx, + pszDisplayName: LPWSTR, + pchEaten: ptr ULONG, + ppidl: ptr PIDLIST_RELATIVE, + pdwAttributes: ptr ULONG, + ): HRESULT {.stdcall.} + EnumObjects*: proc( + self: ptr IShellFolder, + hwnd: HWND, + grfFlags: SHCONTF, + ppenumIDList: ptr ptr IEnumIDList, + ): HRESULT {.stdcall.} + BindToObject*: proc( + self: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + BindToStorage*: proc( + self: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + CompareIDs*: proc( + self: ptr IShellFolder, + lParam: LPARAM, + pidl1: PCUIDLIST_RELATIVE, + pidl2: PCUIDLIST_RELATIVE, + ): HRESULT {.stdcall.} + CreateViewObject*: proc( + self: ptr IShellFolder, hwndOwner: HWND, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetAttributesOf*: proc( + self: ptr IShellFolder, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + rgfInOut: ptr SFGAOF, + ): HRESULT {.stdcall.} + GetUIObjectOf*: proc( + self: ptr IShellFolder, + hwndOwner: HWND, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + riid: REFIID, + rgfReserved: ptr UINT, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetDisplayNameOf*: proc( + self: ptr IShellFolder, pidl: PCUITEMID_CHILD, uFlags: SHGDNF, pName: ptr STRRET + ): HRESULT {.stdcall.} + SetNameOf*: proc( + self: ptr IShellFolder, + hwnd: HWND, + pidl: PCUITEMID_CHILD, + pszName: LPCWSTR, + uFlags: SHGDNF, + ppidlOut: ptr PITEMID_CHILD, + ): HRESULT {.stdcall.} + LPSHELLFOLDER* = ptr IShellFolder EXTRASEARCH* {.pure.} = object guidSearch*: GUID wszFriendlyName*: array[80, WCHAR] wszUrl*: array[2084, WCHAR] + LPEXTRASEARCH* = ptr EXTRASEARCH IEnumExtraSearch* {.pure.} = object lpVtbl*: ptr IEnumExtraSearchVtbl + IEnumExtraSearchVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumExtraSearch, celt: ULONG, rgelt: ptr EXTRASEARCH, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumExtraSearch, + celt: ULONG, + rgelt: ptr EXTRASEARCH, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumExtraSearch, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumExtraSearch): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumExtraSearch, ppenum: ptr ptr IEnumExtraSearch): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumExtraSearch, ppenum: ptr ptr IEnumExtraSearch): HRESULT {. + stdcall + .} + LPENUMEXTRASEARCH* = ptr IEnumExtraSearch FOLDERSETTINGS* {.pure.} = object ViewMode*: UINT fFlags*: UINT + LPFOLDERSETTINGS* = ptr FOLDERSETTINGS LPCFOLDERSETTINGS* = ptr FOLDERSETTINGS PFOLDERSETTINGS* = ptr FOLDERSETTINGS @@ -546,34 +710,83 @@ LPTBBUTTONSB* = LPTBBUTTON IShellBrowser* {.pure.} = object lpVtbl*: ptr IShellBrowserVtbl + IShellBrowserVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - InsertMenusSB*: proc(self: ptr IShellBrowser, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HRESULT {.stdcall.} - SetMenuSB*: proc(self: ptr IShellBrowser, hmenuShared: HMENU, holemenuRes: HOLEMENU, hwndActiveObject: HWND): HRESULT {.stdcall.} - RemoveMenusSB*: proc(self: ptr IShellBrowser, hmenuShared: HMENU): HRESULT {.stdcall.} - SetStatusTextSB*: proc(self: ptr IShellBrowser, pszStatusText: LPCWSTR): HRESULT {.stdcall.} - EnableModelessSB*: proc(self: ptr IShellBrowser, fEnable: WINBOOL): HRESULT {.stdcall.} - TranslateAcceleratorSB*: proc(self: ptr IShellBrowser, pmsg: ptr MSG, wID: WORD): HRESULT {.stdcall.} - BrowseObject*: proc(self: ptr IShellBrowser, pidl: PCUIDLIST_RELATIVE, wFlags: UINT): HRESULT {.stdcall.} - GetViewStateStream*: proc(self: ptr IShellBrowser, grfMode: DWORD, ppStrm: ptr ptr IStream): HRESULT {.stdcall.} - GetControlWindow*: proc(self: ptr IShellBrowser, id: UINT, phwnd: ptr HWND): HRESULT {.stdcall.} - SendControlMsg*: proc(self: ptr IShellBrowser, id: UINT, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, pret: ptr LRESULT): HRESULT {.stdcall.} - QueryActiveShellView*: proc(self: ptr IShellBrowser, ppshv: ptr ptr IShellView): HRESULT {.stdcall.} - OnViewWindowActive*: proc(self: ptr IShellBrowser, pshv: ptr IShellView): HRESULT {.stdcall.} - SetToolbarItems*: proc(self: ptr IShellBrowser, lpButtons: LPTBBUTTONSB, nButtons: UINT, uFlags: UINT): HRESULT {.stdcall.} + InsertMenusSB*: proc( + self: ptr IShellBrowser, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS + ): HRESULT {.stdcall.} + SetMenuSB*: proc( + self: ptr IShellBrowser, + hmenuShared: HMENU, + holemenuRes: HOLEMENU, + hwndActiveObject: HWND, + ): HRESULT {.stdcall.} + RemoveMenusSB*: + proc(self: ptr IShellBrowser, hmenuShared: HMENU): HRESULT {.stdcall.} + SetStatusTextSB*: + proc(self: ptr IShellBrowser, pszStatusText: LPCWSTR): HRESULT {.stdcall.} + EnableModelessSB*: + proc(self: ptr IShellBrowser, fEnable: WINBOOL): HRESULT {.stdcall.} + TranslateAcceleratorSB*: + proc(self: ptr IShellBrowser, pmsg: ptr MSG, wID: WORD): HRESULT {.stdcall.} + BrowseObject*: proc( + self: ptr IShellBrowser, pidl: PCUIDLIST_RELATIVE, wFlags: UINT + ): HRESULT {.stdcall.} + GetViewStateStream*: proc( + self: ptr IShellBrowser, grfMode: DWORD, ppStrm: ptr ptr IStream + ): HRESULT {.stdcall.} + GetControlWindow*: + proc(self: ptr IShellBrowser, id: UINT, phwnd: ptr HWND): HRESULT {.stdcall.} + SendControlMsg*: proc( + self: ptr IShellBrowser, + id: UINT, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pret: ptr LRESULT, + ): HRESULT {.stdcall.} + QueryActiveShellView*: + proc(self: ptr IShellBrowser, ppshv: ptr ptr IShellView): HRESULT {.stdcall.} + OnViewWindowActive*: + proc(self: ptr IShellBrowser, pshv: ptr IShellView): HRESULT {.stdcall.} + SetToolbarItems*: proc( + self: ptr IShellBrowser, lpButtons: LPTBBUTTONSB, nButtons: UINT, uFlags: UINT + ): HRESULT {.stdcall.} + IShellView* {.pure.} = object lpVtbl*: ptr IShellViewVtbl + IShellViewVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - TranslateAccelerator*: proc(self: ptr IShellView, pmsg: ptr MSG): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IShellView, pmsg: ptr MSG): HRESULT {.stdcall.} EnableModeless*: proc(self: ptr IShellView, fEnable: WINBOOL): HRESULT {.stdcall.} UIActivate*: proc(self: ptr IShellView, uState: UINT): HRESULT {.stdcall.} Refresh*: proc(self: ptr IShellView): HRESULT {.stdcall.} - CreateViewWindow*: proc(self: ptr IShellView, psvPrevious: ptr IShellView, pfs: LPCFOLDERSETTINGS, psb: ptr IShellBrowser, prcView: ptr RECT, phWnd: ptr HWND): HRESULT {.stdcall.} + CreateViewWindow*: proc( + self: ptr IShellView, + psvPrevious: ptr IShellView, + pfs: LPCFOLDERSETTINGS, + psb: ptr IShellBrowser, + prcView: ptr RECT, + phWnd: ptr HWND, + ): HRESULT {.stdcall.} DestroyViewWindow*: proc(self: ptr IShellView): HRESULT {.stdcall.} - GetCurrentInfo*: proc(self: ptr IShellView, pfs: LPFOLDERSETTINGS): HRESULT {.stdcall.} - AddPropertySheetPages*: proc(self: ptr IShellView, dwReserved: DWORD, pfn: LPFNSVADDPROPSHEETPAGE, lparam: LPARAM): HRESULT {.stdcall.} + GetCurrentInfo*: + proc(self: ptr IShellView, pfs: LPFOLDERSETTINGS): HRESULT {.stdcall.} + AddPropertySheetPages*: proc( + self: ptr IShellView, + dwReserved: DWORD, + pfn: LPFNSVADDPROPSHEETPAGE, + lparam: LPARAM, + ): HRESULT {.stdcall.} SaveViewState*: proc(self: ptr IShellView): HRESULT {.stdcall.} - SelectItem*: proc(self: ptr IShellView, pidlItem: PCUITEMID_CHILD, uFlags: SVSIF): HRESULT {.stdcall.} - GetItemObject*: proc(self: ptr IShellView, uItem: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + SelectItem*: proc( + self: ptr IShellView, pidlItem: PCUITEMID_CHILD, uFlags: SVSIF + ): HRESULT {.stdcall.} + GetItemObject*: proc( + self: ptr IShellView, uItem: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + LPSHELLVIEW* = ptr IShellView SHELLVIEWID* = GUID SV2CVW2_PARAMS* {.pure.} = object @@ -584,21 +797,36 @@ prcView*: ptr RECT pvid*: ptr SHELLVIEWID hwndView*: HWND + LPSV2CVW2_PARAMS* = ptr SV2CVW2_PARAMS DEPRECATED_HRESULT* = HRESULT ICommDlgBrowser* {.pure.} = object lpVtbl*: ptr ICommDlgBrowserVtbl + ICommDlgBrowserVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnDefaultCommand*: proc(self: ptr ICommDlgBrowser, ppshv: ptr IShellView): HRESULT {.stdcall.} - OnStateChange*: proc(self: ptr ICommDlgBrowser, ppshv: ptr IShellView, uChange: ULONG): HRESULT {.stdcall.} - IncludeObject*: proc(self: ptr ICommDlgBrowser, ppshv: ptr IShellView, pidl: PCUITEMID_CHILD): HRESULT {.stdcall.} + OnDefaultCommand*: + proc(self: ptr ICommDlgBrowser, ppshv: ptr IShellView): HRESULT {.stdcall.} + OnStateChange*: proc( + self: ptr ICommDlgBrowser, ppshv: ptr IShellView, uChange: ULONG + ): HRESULT {.stdcall.} + IncludeObject*: proc( + self: ptr ICommDlgBrowser, ppshv: ptr IShellView, pidl: PCUITEMID_CHILD + ): HRESULT {.stdcall.} + LPCOMMDLGBROWSER* = ptr ICommDlgBrowser ICommDlgBrowser2* {.pure.} = object lpVtbl*: ptr ICommDlgBrowser2Vtbl + ICommDlgBrowser2Vtbl* {.pure, inheritable.} = object of ICommDlgBrowserVtbl - Notify*: proc(self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, dwNotifyType: DWORD): HRESULT {.stdcall.} - GetDefaultMenuText*: proc(self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, pszText: LPWSTR, cchMax: int32): HRESULT {.stdcall.} - GetViewFlags*: proc(self: ptr ICommDlgBrowser2, pdwFlags: ptr DWORD): HRESULT {.stdcall.} + Notify*: proc( + self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, dwNotifyType: DWORD + ): HRESULT {.stdcall.} + GetDefaultMenuText*: proc( + self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, pszText: LPWSTR, cchMax: int32 + ): HRESULT {.stdcall.} + GetViewFlags*: + proc(self: ptr ICommDlgBrowser2, pdwFlags: ptr DWORD): HRESULT {.stdcall.} + LPCOMMDLGBROWSER2* = ptr ICommDlgBrowser2 LPSHELLBROWSER* = ptr IShellBrowser STGTRANSCONFIRMATION* = GUID @@ -608,29 +836,60 @@ ptOffset*: POINT hbmpDragImage*: HBITMAP crColorKey*: COLORREF + LPSHDRAGIMAGE* = ptr SHDRAGIMAGE IShellExtInit* {.pure.} = object lpVtbl*: ptr IShellExtInitVtbl + IShellExtInitVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IShellExtInit, pidlFolder: PCIDLIST_ABSOLUTE, pdtobj: ptr IDataObject, hkeyProgID: HKEY): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IShellExtInit, + pidlFolder: PCIDLIST_ABSOLUTE, + pdtobj: ptr IDataObject, + hkeyProgID: HKEY, + ): HRESULT {.stdcall.} + LPSHELLEXTINIT* = ptr IShellExtInit EXPPS* = UINT IShellPropSheetExt* {.pure.} = object lpVtbl*: ptr IShellPropSheetExtVtbl + IShellPropSheetExtVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddPages*: proc(self: ptr IShellPropSheetExt, pfnAddPage: LPFNSVADDPROPSHEETPAGE, lParam: LPARAM): HRESULT {.stdcall.} - ReplacePage*: proc(self: ptr IShellPropSheetExt, uPageID: EXPPS, pfnReplaceWith: LPFNSVADDPROPSHEETPAGE, lParam: LPARAM): HRESULT {.stdcall.} + AddPages*: proc( + self: ptr IShellPropSheetExt, pfnAddPage: LPFNSVADDPROPSHEETPAGE, lParam: LPARAM + ): HRESULT {.stdcall.} + ReplacePage*: proc( + self: ptr IShellPropSheetExt, + uPageID: EXPPS, + pfnReplaceWith: LPFNSVADDPROPSHEETPAGE, + lParam: LPARAM, + ): HRESULT {.stdcall.} + LPSHELLPROPSHEETEXT* = ptr IShellPropSheetExt IExtractImage* {.pure.} = object lpVtbl*: ptr IExtractImageVtbl + IExtractImageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetLocation*: proc(self: ptr IExtractImage, pszPathBuffer: LPWSTR, cch: DWORD, pdwPriority: ptr DWORD, prgSize: ptr SIZE, dwRecClrDepth: DWORD, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - Extract*: proc(self: ptr IExtractImage, phBmpThumbnail: ptr HBITMAP): HRESULT {.stdcall.} + GetLocation*: proc( + self: ptr IExtractImage, + pszPathBuffer: LPWSTR, + cch: DWORD, + pdwPriority: ptr DWORD, + prgSize: ptr SIZE, + dwRecClrDepth: DWORD, + pdwFlags: ptr DWORD, + ): HRESULT {.stdcall.} + Extract*: + proc(self: ptr IExtractImage, phBmpThumbnail: ptr HBITMAP): HRESULT {.stdcall.} + LPEXTRACTIMAGE* = ptr IExtractImage IExtractImage2* {.pure.} = object lpVtbl*: ptr IExtractImage2Vtbl + IExtractImage2Vtbl* {.pure, inheritable.} = object of IExtractImageVtbl - GetDateStamp*: proc(self: ptr IExtractImage2, pDateStamp: ptr FILETIME): HRESULT {.stdcall.} + GetDateStamp*: + proc(self: ptr IExtractImage2, pDateStamp: ptr FILETIME): HRESULT {.stdcall.} + LPEXTRACTIMAGE2* = ptr IExtractImage2 THUMBBUTTON* {.pure.} = object dwMask*: THUMBBUTTONMASK @@ -639,18 +898,26 @@ hIcon*: HICON szTip*: array[260, WCHAR] dwFlags*: THUMBBUTTONFLAGS + LPTHUMBBUTTON* = ptr THUMBBUTTON DELEGATEITEMID* {.pure, packed.} = object cbSize*: WORD wOuter*: WORD cbInner*: WORD rgb*: array[1, BYTE] + PCDELEGATEITEMID* = ptr DELEGATEITEMID PDELEGATEITEMID* = ptr DELEGATEITEMID IBrowserFrameOptions* {.pure.} = object lpVtbl*: ptr IBrowserFrameOptionsVtbl + IBrowserFrameOptionsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetFrameOptions*: proc(self: ptr IBrowserFrameOptions, dwMask: BROWSERFRAMEOPTIONS, pdwOptions: ptr BROWSERFRAMEOPTIONS): HRESULT {.stdcall.} + GetFrameOptions*: proc( + self: ptr IBrowserFrameOptions, + dwMask: BROWSERFRAMEOPTIONS, + pdwOptions: ptr BROWSERFRAMEOPTIONS, + ): HRESULT {.stdcall.} + LPBROWSERFRAMEOPTIONS* = ptr IBrowserFrameOptions SMDATA* {.pure.} = object dwMask*: DWORD @@ -665,30 +932,65 @@ pidlItem*: PUITEMID_CHILD psf*: ptr IShellFolder pvUserData*: pointer + LPSMDATA* = ptr SMDATA SMINFO* {.pure.} = object dwMask*: DWORD dwType*: DWORD dwFlags*: DWORD iIcon*: int32 + PSMINFO* = ptr SMINFO EXPLORERPANE* = GUID REFEXPLORERPANE* = ptr EXPLORERPANE IExtractIconA* {.pure.} = object lpVtbl*: ptr IExtractIconAVtbl + IExtractIconAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetIconLocation*: proc(self: ptr IExtractIconA, uFlags: UINT, pszIconFile: PSTR, cchMax: UINT, piIndex: ptr int32, pwFlags: ptr UINT): HRESULT {.stdcall.} - Extract*: proc(self: ptr IExtractIconA, pszFile: PCSTR, nIconIndex: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.stdcall.} + GetIconLocation*: proc( + self: ptr IExtractIconA, + uFlags: UINT, + pszIconFile: PSTR, + cchMax: UINT, + piIndex: ptr int32, + pwFlags: ptr UINT, + ): HRESULT {.stdcall.} + Extract*: proc( + self: ptr IExtractIconA, + pszFile: PCSTR, + nIconIndex: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, + ): HRESULT {.stdcall.} + LPEXTRACTICONA* = ptr IExtractIconA IExtractIconW* {.pure.} = object lpVtbl*: ptr IExtractIconWVtbl + IExtractIconWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetIconLocation*: proc(self: ptr IExtractIconW, uFlags: UINT, pszIconFile: PWSTR, cchMax: UINT, piIndex: ptr int32, pwFlags: ptr UINT): HRESULT {.stdcall.} - Extract*: proc(self: ptr IExtractIconW, pszFile: PCWSTR, nIconIndex: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.stdcall.} + GetIconLocation*: proc( + self: ptr IExtractIconW, + uFlags: UINT, + pszIconFile: PWSTR, + cchMax: UINT, + piIndex: ptr int32, + pwFlags: ptr UINT, + ): HRESULT {.stdcall.} + Extract*: proc( + self: ptr IExtractIconW, + pszFile: PCWSTR, + nIconIndex: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, + ): HRESULT {.stdcall.} + LPEXTRACTICONW* = ptr IExtractIconW DATABLOCK_HEADER* {.pure.} = object cbSize*: DWORD dwSignature*: DWORD + LPDATABLOCK_HEADER* = ptr DATABLOCK_HEADER LPDBLIST* = ptr DATABLOCK_HEADER NT_CONSOLE_PROPS* {.pure.} = object @@ -713,43 +1015,73 @@ uNumberOfHistoryBuffers*: UINT bHistoryNoDup*: WINBOOL ColorTable*: array[16, COLORREF] + LPNT_CONSOLE_PROPS* = ptr NT_CONSOLE_PROPS NT_FE_CONSOLE_PROPS* {.pure.} = object dbh*: DATABLOCK_HEADER uCodePage*: UINT + LPNT_FE_CONSOLE_PROPS* = ptr NT_FE_CONSOLE_PROPS EXP_DARWIN_LINK* {.pure.} = object dbh*: DATABLOCK_HEADER szDarwinID*: array[MAX_PATH, CHAR] szwDarwinID*: array[MAX_PATH, WCHAR] + LPEXP_DARWIN_LINK* = ptr EXP_DARWIN_LINK EXP_SPECIAL_FOLDER* {.pure.} = object cbSize*: DWORD dwSignature*: DWORD idSpecialFolder*: DWORD cbOffset*: DWORD + LPEXP_SPECIAL_FOLDER* = ptr EXP_SPECIAL_FOLDER EXP_SZ_LINK* {.pure.} = object cbSize*: DWORD dwSignature*: DWORD szTarget*: array[MAX_PATH, CHAR] swzTarget*: array[MAX_PATH, WCHAR] + LPEXP_SZ_LINK* = ptr EXP_SZ_LINK ICopyHookA* {.pure.} = object lpVtbl*: ptr ICopyHookAVtbl + ICopyHookAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CopyCallback*: proc(self: ptr ICopyHookA, hwnd: HWND, wFunc: UINT, wFlags: UINT, pszSrcFile: PCSTR, dwSrcAttribs: DWORD, pszDestFile: PCSTR, dwDestAttribs: DWORD): UINT {.stdcall.} + CopyCallback*: proc( + self: ptr ICopyHookA, + hwnd: HWND, + wFunc: UINT, + wFlags: UINT, + pszSrcFile: PCSTR, + dwSrcAttribs: DWORD, + pszDestFile: PCSTR, + dwDestAttribs: DWORD, + ): UINT {.stdcall.} + LPCOPYHOOKA* = ptr ICopyHookA ICopyHookW* {.pure.} = object lpVtbl*: ptr ICopyHookWVtbl + ICopyHookWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CopyCallback*: proc(self: ptr ICopyHookW, hwnd: HWND, wFunc: UINT, wFlags: UINT, pszSrcFile: PCWSTR, dwSrcAttribs: DWORD, pszDestFile: PCWSTR, dwDestAttribs: DWORD): UINT {.stdcall.} + CopyCallback*: proc( + self: ptr ICopyHookW, + hwnd: HWND, + wFunc: UINT, + wFlags: UINT, + pszSrcFile: PCWSTR, + dwSrcAttribs: DWORD, + pszDestFile: PCWSTR, + dwDestAttribs: DWORD, + ): UINT {.stdcall.} + LPCOPYHOOKW* = ptr ICopyHookW IFileViewerSite* {.pure.} = object lpVtbl*: ptr IFileViewerSiteVtbl + IFileViewerSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetPinnedWindow*: proc(self: ptr IFileViewerSite, hwnd: HWND): HRESULT {.stdcall.} - GetPinnedWindow*: proc(self: ptr IFileViewerSite, phwnd: ptr HWND): HRESULT {.stdcall.} + GetPinnedWindow*: + proc(self: ptr IFileViewerSite, phwnd: ptr HWND): HRESULT {.stdcall.} + LPFILEVIEWERSITE* = ptr IFileViewerSite FVSHOWINFO* {.pure.} = object cbSize*: DWORD @@ -759,20 +1091,31 @@ rect*: RECT punkRel*: ptr IUnknown strNewFile*: array[MAX_PATH, OLECHAR] + LPFVSHOWINFO* = ptr FVSHOWINFO IFileViewerA* {.pure.} = object lpVtbl*: ptr IFileViewerAVtbl + IFileViewerAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShowInitialize*: proc(self: ptr IFileViewerA, lpfsi: LPFILEVIEWERSITE): HRESULT {.stdcall.} + ShowInitialize*: + proc(self: ptr IFileViewerA, lpfsi: LPFILEVIEWERSITE): HRESULT {.stdcall.} Show*: proc(self: ptr IFileViewerA, pvsi: LPFVSHOWINFO): HRESULT {.stdcall.} - PrintTo*: proc(self: ptr IFileViewerA, pszDriver: PSTR, fSuppressUI: WINBOOL): HRESULT {.stdcall.} + PrintTo*: proc( + self: ptr IFileViewerA, pszDriver: PSTR, fSuppressUI: WINBOOL + ): HRESULT {.stdcall.} + LPFILEVIEWERA* = ptr IFileViewerA IFileViewerW* {.pure.} = object lpVtbl*: ptr IFileViewerWVtbl + IFileViewerWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShowInitialize*: proc(self: ptr IFileViewerW, lpfsi: LPFILEVIEWERSITE): HRESULT {.stdcall.} + ShowInitialize*: + proc(self: ptr IFileViewerW, lpfsi: LPFILEVIEWERSITE): HRESULT {.stdcall.} Show*: proc(self: ptr IFileViewerW, pvsi: LPFVSHOWINFO): HRESULT {.stdcall.} - PrintTo*: proc(self: ptr IFileViewerW, pszDriver: PWSTR, fSuppressUI: WINBOOL): HRESULT {.stdcall.} + PrintTo*: proc( + self: ptr IFileViewerW, pszDriver: PWSTR, fSuppressUI: WINBOOL + ): HRESULT {.stdcall.} + LPFILEVIEWERW* = ptr IFileViewerW SHFOLDERCUSTOMSETTINGS* {.pure.} = object dwSize*: DWORD @@ -790,8 +1133,10 @@ iIconIndex*: int32 pszLogo*: LPWSTR cchLogo*: DWORD + LPSHFOLDERCUSTOMSETTINGS* = ptr SHFOLDERCUSTOMSETTINGS - BFFCALLBACK* = proc (hwnd: HWND, uMsg: UINT, lParam: LPARAM, lpData: LPARAM): int32 {.stdcall.} + BFFCALLBACK* = + proc(hwnd: HWND, uMsg: UINT, lParam: LPARAM, lpData: LPARAM): int32 {.stdcall.} BROWSEINFOA* {.pure.} = object hwndOwner*: HWND pidlRoot*: PCIDLIST_ABSOLUTE @@ -801,6 +1146,7 @@ lpfn*: BFFCALLBACK lParam*: LPARAM iImage*: int32 + PBROWSEINFOA* = ptr BROWSEINFOA LPBROWSEINFOA* = ptr BROWSEINFOA BROWSEINFOW* {.pure.} = object @@ -812,41 +1158,79 @@ lpfn*: BFFCALLBACK lParam*: LPARAM iImage*: int32 + PBROWSEINFOW* = ptr BROWSEINFOW LPBROWSEINFOW* = ptr BROWSEINFOW IThumbnailCapture* {.pure.} = object lpVtbl*: ptr IThumbnailCaptureVtbl + IThumbnailCaptureVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CaptureThumbnail*: proc(self: ptr IThumbnailCapture, pMaxSize: ptr SIZE, pHTMLDoc2: ptr IUnknown, phbmThumbnail: ptr HBITMAP): HRESULT {.stdcall.} + CaptureThumbnail*: proc( + self: ptr IThumbnailCapture, + pMaxSize: ptr SIZE, + pHTMLDoc2: ptr IUnknown, + phbmThumbnail: ptr HBITMAP, + ): HRESULT {.stdcall.} + LPTHUMBNAILCAPTURE* = ptr IThumbnailCapture ENUMSHELLIMAGESTOREDATA* {.pure.} = object szPath*: array[MAX_PATH, WCHAR] ftTimeStamp*: FILETIME + PENUMSHELLIMAGESTOREDATA* = ptr ENUMSHELLIMAGESTOREDATA IEnumShellImageStore* {.pure.} = object lpVtbl*: ptr IEnumShellImageStoreVtbl + IEnumShellImageStoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl Reset*: proc(self: ptr IEnumShellImageStore): HRESULT {.stdcall.} - Next*: proc(self: ptr IEnumShellImageStore, celt: ULONG, prgElt: ptr PENUMSHELLIMAGESTOREDATA, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumShellImageStore, + celt: ULONG, + prgElt: ptr PENUMSHELLIMAGESTOREDATA, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumShellImageStore, celt: ULONG): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumShellImageStore, ppEnum: ptr ptr IEnumShellImageStore): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumShellImageStore, ppEnum: ptr ptr IEnumShellImageStore + ): HRESULT {.stdcall.} + LPENUMSHELLIMAGESTORE* = ptr IEnumShellImageStore IShellImageStore* {.pure.} = object lpVtbl*: ptr IShellImageStoreVtbl + IShellImageStoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Open*: proc(self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD): HRESULT {.stdcall.} - Create*: proc(self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD): HRESULT {.stdcall.} - ReleaseLock*: proc(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.stdcall.} + Open*: proc(self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD): HRESULT {. + stdcall + .} + Create*: proc( + self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD + ): HRESULT {.stdcall.} + ReleaseLock*: + proc(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.stdcall.} Close*: proc(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.stdcall.} Commit*: proc(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.stdcall.} IsLocked*: proc(self: ptr IShellImageStore): HRESULT {.stdcall.} GetMode*: proc(self: ptr IShellImageStore, pdwMode: ptr DWORD): HRESULT {.stdcall.} - GetCapabilities*: proc(self: ptr IShellImageStore, pdwCapMask: ptr DWORD): HRESULT {.stdcall.} - AddEntry*: proc(self: ptr IShellImageStore, pszName: PCWSTR, pftTimeStamp: ptr FILETIME, dwMode: DWORD, hImage: HBITMAP): HRESULT {.stdcall.} - GetEntry*: proc(self: ptr IShellImageStore, pszName: PCWSTR, dwMode: DWORD, phImage: ptr HBITMAP): HRESULT {.stdcall.} + GetCapabilities*: + proc(self: ptr IShellImageStore, pdwCapMask: ptr DWORD): HRESULT {.stdcall.} + AddEntry*: proc( + self: ptr IShellImageStore, + pszName: PCWSTR, + pftTimeStamp: ptr FILETIME, + dwMode: DWORD, + hImage: HBITMAP, + ): HRESULT {.stdcall.} + GetEntry*: proc( + self: ptr IShellImageStore, pszName: PCWSTR, dwMode: DWORD, phImage: ptr HBITMAP + ): HRESULT {.stdcall.} DeleteEntry*: proc(self: ptr IShellImageStore, pszName: PCWSTR): HRESULT {.stdcall.} - IsEntryInStore*: proc(self: ptr IShellImageStore, pszName: PCWSTR, pftTimeStamp: ptr FILETIME): HRESULT {.stdcall.} - Enum*: proc(self: ptr IShellImageStore, ppEnum: ptr LPENUMSHELLIMAGESTORE): HRESULT {.stdcall.} + IsEntryInStore*: proc( + self: ptr IShellImageStore, pszName: PCWSTR, pftTimeStamp: ptr FILETIME + ): HRESULT {.stdcall.} + Enum*: proc(self: ptr IShellImageStore, ppEnum: ptr LPENUMSHELLIMAGESTORE): HRESULT {. + stdcall + .} + LPSHELLIMAGESTORE* = ptr IShellImageStore BANDINFOSFB* {.pure.} = object dwMask*: DWORD @@ -859,16 +1243,19 @@ wAlign*: WORD psf*: ptr IShellFolder pidl*: PIDLIST_ABSOLUTE + PBANDINFOSFB* = ptr BANDINFOSFB WALLPAPEROPT* {.pure.} = object dwSize*: DWORD dwStyle*: DWORD + LPWALLPAPEROPT* = ptr WALLPAPEROPT LPCWALLPAPEROPT* = ptr WALLPAPEROPT COMPONENTSOPT* {.pure.} = object dwSize*: DWORD fEnableComponents*: WINBOOL fActiveDesktop*: WINBOOL + LPCOMPONENTSOPT* = ptr COMPONENTSOPT LPCCOMPONENTSOPT* = ptr COMPONENTSOPT COMPPOS* {.pure.} = object @@ -883,6 +1270,7 @@ fCanResizeY*: WINBOOL iPreferredLeftPercent*: int32 iPreferredTopPercent*: int32 + LPCOMPPOS* = ptr COMPPOS LPCCOMPPOS* = ptr COMPPOS COMPSTATEINFO* {.pure.} = object @@ -892,6 +1280,7 @@ dwWidth*: DWORD dwHeight*: DWORD dwItemState*: DWORD + LPCOMPSTATEINFO* = ptr COMPSTATEINFO LPCCOMPSTATEINFO* = ptr COMPSTATEINFO IE4COMPONENT* {.pure.} = object @@ -905,6 +1294,7 @@ wszFriendlyName*: array[MAX_PATH, WCHAR] wszSource*: array[2084, WCHAR] wszSubscribedURL*: array[2084, WCHAR] + LPIE4COMPONENT* = ptr IE4COMPONENT LPCIE4COMPONENT* = ptr IE4COMPONENT COMPONENT* {.pure.} = object @@ -921,47 +1311,111 @@ dwCurItemState*: DWORD csiOriginal*: COMPSTATEINFO csiRestored*: COMPSTATEINFO + LPCOMPONENT* = ptr COMPONENT LPCCOMPONENT* = ptr COMPONENT IActiveDesktop* {.pure.} = object lpVtbl*: ptr IActiveDesktopVtbl + IActiveDesktopVtbl* {.pure, inheritable.} = object of IUnknownVtbl ApplyChanges*: proc(self: ptr IActiveDesktop, dwFlags: DWORD): HRESULT {.stdcall.} - GetWallpaper*: proc(self: ptr IActiveDesktop, pwszWallpaper: PWSTR, cchWallpaper: UINT, dwFlags: DWORD): HRESULT {.stdcall.} - SetWallpaper*: proc(self: ptr IActiveDesktop, pwszWallpaper: PCWSTR, dwReserved: DWORD): HRESULT {.stdcall.} - GetWallpaperOptions*: proc(self: ptr IActiveDesktop, pwpo: LPWALLPAPEROPT, dwReserved: DWORD): HRESULT {.stdcall.} - SetWallpaperOptions*: proc(self: ptr IActiveDesktop, pwpo: LPCWALLPAPEROPT, dwReserved: DWORD): HRESULT {.stdcall.} - GetPattern*: proc(self: ptr IActiveDesktop, pwszPattern: PWSTR, cchPattern: UINT, dwReserved: DWORD): HRESULT {.stdcall.} - SetPattern*: proc(self: ptr IActiveDesktop, pwszPattern: PCWSTR, dwReserved: DWORD): HRESULT {.stdcall.} - GetDesktopItemOptions*: proc(self: ptr IActiveDesktop, pco: LPCOMPONENTSOPT, dwReserved: DWORD): HRESULT {.stdcall.} - SetDesktopItemOptions*: proc(self: ptr IActiveDesktop, pco: LPCCOMPONENTSOPT, dwReserved: DWORD): HRESULT {.stdcall.} - AddDesktopItem*: proc(self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} - AddDesktopItemWithUI*: proc(self: ptr IActiveDesktop, hwnd: HWND, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} - ModifyDesktopItem*: proc(self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwFlags: DWORD): HRESULT {.stdcall.} - RemoveDesktopItem*: proc(self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} - GetDesktopItemCount*: proc(self: ptr IActiveDesktop, pcItems: ptr int32, dwReserved: DWORD): HRESULT {.stdcall.} - GetDesktopItem*: proc(self: ptr IActiveDesktop, nComponent: int32, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} - GetDesktopItemByID*: proc(self: ptr IActiveDesktop, dwID: ULONG_PTR, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} - GenerateDesktopItemHtml*: proc(self: ptr IActiveDesktop, pwszFileName: PCWSTR, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} - AddUrl*: proc(self: ptr IActiveDesktop, hwnd: HWND, pszSource: PCWSTR, pcomp: LPCOMPONENT, dwFlags: DWORD): HRESULT {.stdcall.} - GetDesktopItemBySource*: proc(self: ptr IActiveDesktop, pwszSource: PCWSTR, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.stdcall.} + GetWallpaper*: proc( + self: ptr IActiveDesktop, pwszWallpaper: PWSTR, cchWallpaper: UINT, dwFlags: DWORD + ): HRESULT {.stdcall.} + SetWallpaper*: proc( + self: ptr IActiveDesktop, pwszWallpaper: PCWSTR, dwReserved: DWORD + ): HRESULT {.stdcall.} + GetWallpaperOptions*: proc( + self: ptr IActiveDesktop, pwpo: LPWALLPAPEROPT, dwReserved: DWORD + ): HRESULT {.stdcall.} + SetWallpaperOptions*: proc( + self: ptr IActiveDesktop, pwpo: LPCWALLPAPEROPT, dwReserved: DWORD + ): HRESULT {.stdcall.} + GetPattern*: proc( + self: ptr IActiveDesktop, pwszPattern: PWSTR, cchPattern: UINT, dwReserved: DWORD + ): HRESULT {.stdcall.} + SetPattern*: proc( + self: ptr IActiveDesktop, pwszPattern: PCWSTR, dwReserved: DWORD + ): HRESULT {.stdcall.} + GetDesktopItemOptions*: proc( + self: ptr IActiveDesktop, pco: LPCOMPONENTSOPT, dwReserved: DWORD + ): HRESULT {.stdcall.} + SetDesktopItemOptions*: proc( + self: ptr IActiveDesktop, pco: LPCCOMPONENTSOPT, dwReserved: DWORD + ): HRESULT {.stdcall.} + AddDesktopItem*: proc( + self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD + ): HRESULT {.stdcall.} + AddDesktopItemWithUI*: proc( + self: ptr IActiveDesktop, hwnd: HWND, pcomp: LPCOMPONENT, dwReserved: DWORD + ): HRESULT {.stdcall.} + ModifyDesktopItem*: proc( + self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwFlags: DWORD + ): HRESULT {.stdcall.} + RemoveDesktopItem*: proc( + self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD + ): HRESULT {.stdcall.} + GetDesktopItemCount*: proc( + self: ptr IActiveDesktop, pcItems: ptr int32, dwReserved: DWORD + ): HRESULT {.stdcall.} + GetDesktopItem*: proc( + self: ptr IActiveDesktop, nComponent: int32, pcomp: LPCOMPONENT, dwReserved: DWORD + ): HRESULT {.stdcall.} + GetDesktopItemByID*: proc( + self: ptr IActiveDesktop, dwID: ULONG_PTR, pcomp: LPCOMPONENT, dwReserved: DWORD + ): HRESULT {.stdcall.} + GenerateDesktopItemHtml*: proc( + self: ptr IActiveDesktop, + pwszFileName: PCWSTR, + pcomp: LPCOMPONENT, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + AddUrl*: proc( + self: ptr IActiveDesktop, + hwnd: HWND, + pszSource: PCWSTR, + pcomp: LPCOMPONENT, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetDesktopItemBySource*: proc( + self: ptr IActiveDesktop, + pwszSource: PCWSTR, + pcomp: LPCOMPONENT, + dwReserved: DWORD, + ): HRESULT {.stdcall.} + LPACTIVEDESKTOP* = ptr IActiveDesktop IActiveDesktopP* {.pure.} = object lpVtbl*: ptr IActiveDesktopPVtbl + IActiveDesktopPVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetSafeMode*: proc(self: ptr IActiveDesktopP, dwFlags: DWORD): HRESULT {.stdcall.} EnsureUpdateHTML*: proc(self: ptr IActiveDesktopP): HRESULT {.stdcall.} - SetScheme*: proc(self: ptr IActiveDesktopP, pwszSchemeName: PCWSTR, dwFlags: DWORD): HRESULT {.stdcall.} - GetScheme*: proc(self: ptr IActiveDesktopP, pwszSchemeName: PWSTR, pdwcchBuffer: ptr DWORD, dwFlags: DWORD): HRESULT {.stdcall.} + SetScheme*: proc( + self: ptr IActiveDesktopP, pwszSchemeName: PCWSTR, dwFlags: DWORD + ): HRESULT {.stdcall.} + GetScheme*: proc( + self: ptr IActiveDesktopP, + pwszSchemeName: PWSTR, + pdwcchBuffer: ptr DWORD, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + LPACTIVEDESKTOPP* = ptr IActiveDesktopP IADesktopP2* {.pure.} = object lpVtbl*: ptr IADesktopP2Vtbl + IADesktopP2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl ReReadWallpaper*: proc(self: ptr IADesktopP2): HRESULT {.stdcall.} - GetADObjectFlags*: proc(self: ptr IADesktopP2, pdwFlags: ptr DWORD, dwMask: DWORD): HRESULT {.stdcall.} + GetADObjectFlags*: proc( + self: ptr IADesktopP2, pdwFlags: ptr DWORD, dwMask: DWORD + ): HRESULT {.stdcall.} UpdateAllDesktopSubscriptions*: proc(self: ptr IADesktopP2): HRESULT {.stdcall.} - MakeDynamicChanges*: proc(self: ptr IADesktopP2, pOleObj: ptr IOleObject): HRESULT {.stdcall.} + MakeDynamicChanges*: + proc(self: ptr IADesktopP2, pOleObj: ptr IOleObject): HRESULT {.stdcall.} + LPADESKTOPP2* = ptr IADesktopP2 + const MAX_COLUMN_NAME_LEN* = 80 MAX_COLUMN_DESC_LEN* = 128 @@ -974,12 +1428,14 @@ csFlags*: DWORD wszTitle*: array[MAX_COLUMN_NAME_LEN, WCHAR] wszDescription*: array[MAX_COLUMN_DESC_LEN, WCHAR] + LPSHCOLUMNINFO* = ptr SHCOLUMNINFO LPCSHCOLUMNINFO* = ptr SHCOLUMNINFO SHCOLUMNINIT* {.pure.} = object dwFlags*: ULONG dwReserved*: ULONG wszFolder*: array[MAX_PATH, WCHAR] + LPSHCOLUMNINIT* = ptr SHCOLUMNINIT LPCSHCOLUMNINIT* = ptr SHCOLUMNINIT SHCOLUMNDATA* {.pure.} = object @@ -988,15 +1444,18 @@ dwReserved*: ULONG pwszExt*: ptr WCHAR wszFile*: array[MAX_PATH, WCHAR] + LPSHCOLUMNDATA* = ptr SHCOLUMNDATA LPCSHCOLUMNDATA* = ptr SHCOLUMNDATA NRESARRAY* {.pure.} = object cItems*: UINT nr*: array[1, NETRESOURCE] + LPNRESARRAY* = ptr NRESARRAY CIDA* {.pure.} = object cidl*: UINT aoffset*: array[1, UINT] + LPIDA* = ptr CIDA FILEDESCRIPTORA* {.pure.} = object dwFlags*: DWORD @@ -1010,6 +1469,7 @@ nFileSizeHigh*: DWORD nFileSizeLow*: DWORD cFileName*: array[MAX_PATH, CHAR] + LPFILEDESCRIPTORA* = ptr FILEDESCRIPTORA FILEDESCRIPTORW* {.pure.} = object dwFlags*: DWORD @@ -1023,26 +1483,31 @@ nFileSizeHigh*: DWORD nFileSizeLow*: DWORD cFileName*: array[MAX_PATH, WCHAR] + LPFILEDESCRIPTORW* = ptr FILEDESCRIPTORW FILEGROUPDESCRIPTORA* {.pure.} = object cItems*: UINT fgd*: array[1, FILEDESCRIPTORA] + LPFILEGROUPDESCRIPTORA* = ptr FILEGROUPDESCRIPTORA FILEGROUPDESCRIPTORW* {.pure.} = object cItems*: UINT fgd*: array[1, FILEDESCRIPTORW] + LPFILEGROUPDESCRIPTORW* = ptr FILEGROUPDESCRIPTORW DROPFILES* {.pure.} = object pFiles*: DWORD pt*: POINT fNC*: WINBOOL fWide*: WINBOOL + LPDROPFILES* = ptr DROPFILES SHChangeDWORDAsIDList* {.pure, packed.} = object cb*: USHORT dwItem1*: DWORD dwItem2*: DWORD cbZero*: USHORT + LPSHChangeDWORDAsIDList* = ptr SHChangeDWORDAsIDList SHChangeUpdateImageIDList* {.pure, packed.} = object cb*: USHORT @@ -1052,36 +1517,42 @@ dwProcessID*: DWORD szName*: array[MAX_PATH, WCHAR] cbZero*: USHORT + LPSHChangeUpdateImageIDList* = ptr SHChangeUpdateImageIDList SHChangeProductKeyAsIDList* {.pure.} = object cb*: USHORT wszProductKey*: array[39, WCHAR] cbZero*: USHORT + LPSHChangeProductKeyAsIDList* = ptr SHChangeProductKeyAsIDList SHDESCRIPTIONID* {.pure.} = object dwDescriptionId*: DWORD clsid*: CLSID + LPSHDESCRIPTIONID* = ptr SHDESCRIPTIONID CABINETSTATE* {.pure.} = object cLength*: WORD nVersion*: WORD - fFullPathTitle* {.bitsize:1.}: WINBOOL - fSaveLocalView* {.bitsize:1.}: WINBOOL - fNotShell* {.bitsize:1.}: WINBOOL - fSimpleDefault* {.bitsize:1.}: WINBOOL - fDontShowDescBar* {.bitsize:1.}: WINBOOL - fNewWindowMode* {.bitsize:1.}: WINBOOL - fShowCompColor* {.bitsize:1.}: WINBOOL - fDontPrettyNames* {.bitsize:1.}: WINBOOL - fAdminsCreateCommonGroups* {.bitsize:1.}: WINBOOL - fUnusedFlags* {.bitsize:7.}: UINT + fFullPathTitle* {.bitsize: 1.}: WINBOOL + fSaveLocalView* {.bitsize: 1.}: WINBOOL + fNotShell* {.bitsize: 1.}: WINBOOL + fSimpleDefault* {.bitsize: 1.}: WINBOOL + fDontShowDescBar* {.bitsize: 1.}: WINBOOL + fNewWindowMode* {.bitsize: 1.}: WINBOOL + fShowCompColor* {.bitsize: 1.}: WINBOOL + fDontPrettyNames* {.bitsize: 1.}: WINBOOL + fAdminsCreateCommonGroups* {.bitsize: 1.}: WINBOOL + fUnusedFlags* {.bitsize: 7.}: UINT fMenuEnumFilter*: UINT + LPCABINETSTATE* = ptr CABINETSTATE OPENASINFO* {.pure.} = object pcszFile*: LPCWSTR pcszClass*: LPCWSTR oaifInFlags*: OPEN_AS_INFO_FLAGS + POPENASINFO* = ptr OPENASINFO + const PIFNAMESIZE* = 30 PIFSTARTLOCSIZE* = 63 @@ -1094,7 +1565,7 @@ flPrg*: WORD flPrgInit*: WORD achTitle*: array[PIFNAMESIZE, CHAR] - achCmdLine*: array[PIFSTARTLOCSIZE+PIFPARAMSSIZE+1, CHAR] + achCmdLine*: array[PIFSTARTLOCSIZE + PIFPARAMSSIZE + 1, CHAR] achWorkDir*: array[PIFDEFPATHSIZE, CHAR] wHotKey*: WORD achIconFile*: array[PIFDEFFILESIZE, CHAR] @@ -1103,25 +1574,30 @@ dwRealModeFlags*: DWORD achOtherFile*: array[PIFDEFFILESIZE, CHAR] achPIFFile*: array[PIFMAXFILEPATH, CHAR] + PPROPPRG* = ptr PROPPRG LPPROPPRG* = ptr PROPPRG LPCPROPPRG* = ptr PROPPRG QCMINFO_IDMAP_PLACEMENT* {.pure.} = object id*: UINT fFlags*: UINT + QCMINFO_IDMAP* {.pure.} = object nMaxIds*: UINT pIdList*: array[1, QCMINFO_IDMAP_PLACEMENT] + QCMINFO* {.pure.} = object hmenu*: HMENU indexMenu*: UINT idCmdFirst*: UINT idCmdLast*: UINT pIdMap*: ptr QCMINFO_IDMAP + LPQCMINFO* = ptr QCMINFO TBINFO* {.pure.} = object cbuttons*: UINT uFlags*: UINT + LPTBINFO* = ptr TBINFO DETAILSINFO* {.pure.} = object pidl*: PCUITEMID_CHILD @@ -1129,6 +1605,7 @@ cxChar*: int32 str*: STRRET iImage*: int32 + PDETAILSINFO* = ptr DETAILSINFO DFMICS* {.pure.} = object cbSize*: DWORD @@ -1138,8 +1615,16 @@ idDefMax*: UINT pici*: LPCMINVOKECOMMANDINFO punkSite*: ptr IUnknown + PDFMICS* = ptr DFMICS - LPFNVIEWCALLBACK* = proc (psvOuter: ptr IShellView, psf: ptr IShellFolder, hwndMain: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} + LPFNVIEWCALLBACK* = proc( + psvOuter: ptr IShellView, + psf: ptr IShellFolder, + hwndMain: HWND, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + ): HRESULT {.stdcall.} CSFV* {.pure.} = object cbSize*: UINT pshf*: ptr IShellFolder @@ -1148,102 +1633,108 @@ lEvents*: LONG pfnCallback*: LPFNVIEWCALLBACK fvm*: FOLDERVIEWMODE + LPCSFV* = ptr CSFV SFV_SETITEMPOS* {.pure.} = object pidl*: PCUITEMID_CHILD pt*: POINT + LPSFV_SETITEMPOS* = ptr SFV_SETITEMPOS PCSFV_SETITEMPOS* = ptr SFV_SETITEMPOS SHELLSTATEA* {.pure, packed.} = object - fShowAllObjects* {.bitsize:1.}: WINBOOL - fShowExtensions* {.bitsize:1.}: WINBOOL - fNoConfirmRecycle* {.bitsize:1.}: WINBOOL - fShowSysFiles* {.bitsize:1.}: WINBOOL - fShowCompColor* {.bitsize:1.}: WINBOOL - fDoubleClickInWebView* {.bitsize:1.}: WINBOOL - fDesktopHTML* {.bitsize:1.}: WINBOOL - fWin95Classic* {.bitsize:1.}: WINBOOL - fDontPrettyPath* {.bitsize:1.}: WINBOOL - fShowAttribCol* {.bitsize:1.}: WINBOOL - fMapNetDrvBtn* {.bitsize:1.}: WINBOOL - fShowInfoTip* {.bitsize:1.}: WINBOOL - fHideIcons* {.bitsize:1.}: WINBOOL - fWebView* {.bitsize:1.}: WINBOOL - fFilter* {.bitsize:1.}: WINBOOL - fShowSuperHidden* {.bitsize:1.}: WINBOOL - fNoNetCrawling* {.bitsize:1.}: WINBOOL + fShowAllObjects* {.bitsize: 1.}: WINBOOL + fShowExtensions* {.bitsize: 1.}: WINBOOL + fNoConfirmRecycle* {.bitsize: 1.}: WINBOOL + fShowSysFiles* {.bitsize: 1.}: WINBOOL + fShowCompColor* {.bitsize: 1.}: WINBOOL + fDoubleClickInWebView* {.bitsize: 1.}: WINBOOL + fDesktopHTML* {.bitsize: 1.}: WINBOOL + fWin95Classic* {.bitsize: 1.}: WINBOOL + fDontPrettyPath* {.bitsize: 1.}: WINBOOL + fShowAttribCol* {.bitsize: 1.}: WINBOOL + fMapNetDrvBtn* {.bitsize: 1.}: WINBOOL + fShowInfoTip* {.bitsize: 1.}: WINBOOL + fHideIcons* {.bitsize: 1.}: WINBOOL + fWebView* {.bitsize: 1.}: WINBOOL + fFilter* {.bitsize: 1.}: WINBOOL + fShowSuperHidden* {.bitsize: 1.}: WINBOOL + fNoNetCrawling* {.bitsize: 1.}: WINBOOL dwWin95Unused*: DWORD uWin95Unused*: UINT lParamSort*: LONG iSortDirection*: int32 version*: UINT uNotUsed*: UINT - fSepProcess* {.bitsize:1.}: WINBOOL - fStartPanelOn* {.bitsize:1.}: WINBOOL - fShowStartPage* {.bitsize:1.}: WINBOOL - fAutoCheckSelect* {.bitsize:1.}: WINBOOL - fIconsOnly* {.bitsize:1.}: WINBOOL - fShowTypeOverlay* {.bitsize:1.}: WINBOOL - fShowStatusBar* {.bitsize:1.}: WINBOOL - fSpareFlags* {.bitsize:9.}: UINT + fSepProcess* {.bitsize: 1.}: WINBOOL + fStartPanelOn* {.bitsize: 1.}: WINBOOL + fShowStartPage* {.bitsize: 1.}: WINBOOL + fAutoCheckSelect* {.bitsize: 1.}: WINBOOL + fIconsOnly* {.bitsize: 1.}: WINBOOL + fShowTypeOverlay* {.bitsize: 1.}: WINBOOL + fShowStatusBar* {.bitsize: 1.}: WINBOOL + fSpareFlags* {.bitsize: 9.}: UINT padding*: array[2, byte] + LPSHELLSTATEA* = ptr SHELLSTATEA SHELLSTATEW* {.pure, packed.} = object - fShowAllObjects* {.bitsize:1.}: WINBOOL - fShowExtensions* {.bitsize:1.}: WINBOOL - fNoConfirmRecycle* {.bitsize:1.}: WINBOOL - fShowSysFiles* {.bitsize:1.}: WINBOOL - fShowCompColor* {.bitsize:1.}: WINBOOL - fDoubleClickInWebView* {.bitsize:1.}: WINBOOL - fDesktopHTML* {.bitsize:1.}: WINBOOL - fWin95Classic* {.bitsize:1.}: WINBOOL - fDontPrettyPath* {.bitsize:1.}: WINBOOL - fShowAttribCol* {.bitsize:1.}: WINBOOL - fMapNetDrvBtn* {.bitsize:1.}: WINBOOL - fShowInfoTip* {.bitsize:1.}: WINBOOL - fHideIcons* {.bitsize:1.}: WINBOOL - fWebView* {.bitsize:1.}: WINBOOL - fFilter* {.bitsize:1.}: WINBOOL - fShowSuperHidden* {.bitsize:1.}: WINBOOL - fNoNetCrawling* {.bitsize:1.}: WINBOOL + fShowAllObjects* {.bitsize: 1.}: WINBOOL + fShowExtensions* {.bitsize: 1.}: WINBOOL + fNoConfirmRecycle* {.bitsize: 1.}: WINBOOL + fShowSysFiles* {.bitsize: 1.}: WINBOOL + fShowCompColor* {.bitsize: 1.}: WINBOOL + fDoubleClickInWebView* {.bitsize: 1.}: WINBOOL + fDesktopHTML* {.bitsize: 1.}: WINBOOL + fWin95Classic* {.bitsize: 1.}: WINBOOL + fDontPrettyPath* {.bitsize: 1.}: WINBOOL + fShowAttribCol* {.bitsize: 1.}: WINBOOL + fMapNetDrvBtn* {.bitsize: 1.}: WINBOOL + fShowInfoTip* {.bitsize: 1.}: WINBOOL + fHideIcons* {.bitsize: 1.}: WINBOOL + fWebView* {.bitsize: 1.}: WINBOOL + fFilter* {.bitsize: 1.}: WINBOOL + fShowSuperHidden* {.bitsize: 1.}: WINBOOL + fNoNetCrawling* {.bitsize: 1.}: WINBOOL dwWin95Unused*: DWORD uWin95Unused*: UINT lParamSort*: LONG iSortDirection*: int32 version*: UINT uNotUsed*: UINT - fSepProcess* {.bitsize:1.}: WINBOOL - fStartPanelOn* {.bitsize:1.}: WINBOOL - fShowStartPage* {.bitsize:1.}: WINBOOL - fAutoCheckSelect* {.bitsize:1.}: WINBOOL - fIconsOnly* {.bitsize:1.}: WINBOOL - fShowTypeOverlay* {.bitsize:1.}: WINBOOL - fShowStatusBar* {.bitsize:1.}: WINBOOL - fSpareFlags* {.bitsize:9.}: UINT + fSepProcess* {.bitsize: 1.}: WINBOOL + fStartPanelOn* {.bitsize: 1.}: WINBOOL + fShowStartPage* {.bitsize: 1.}: WINBOOL + fAutoCheckSelect* {.bitsize: 1.}: WINBOOL + fIconsOnly* {.bitsize: 1.}: WINBOOL + fShowTypeOverlay* {.bitsize: 1.}: WINBOOL + fShowStatusBar* {.bitsize: 1.}: WINBOOL + fSpareFlags* {.bitsize: 9.}: UINT padding*: array[2, byte] + LPSHELLSTATEW* = ptr SHELLSTATEW SHELLFLAGSTATE* {.pure.} = object - fShowAllObjects* {.bitsize:1.}: WINBOOL - fShowExtensions* {.bitsize:1.}: WINBOOL - fNoConfirmRecycle* {.bitsize:1.}: WINBOOL - fShowSysFiles* {.bitsize:1.}: WINBOOL - fShowCompColor* {.bitsize:1.}: WINBOOL - fDoubleClickInWebView* {.bitsize:1.}: WINBOOL - fDesktopHTML* {.bitsize:1.}: WINBOOL - fWin95Classic* {.bitsize:1.}: WINBOOL - fDontPrettyPath* {.bitsize:1.}: WINBOOL - fShowAttribCol* {.bitsize:1.}: WINBOOL - fMapNetDrvBtn* {.bitsize:1.}: WINBOOL - fShowInfoTip* {.bitsize:1.}: WINBOOL - fHideIcons* {.bitsize:1.}: WINBOOL - fAutoCheckSelect* {.bitsize:1.}: WINBOOL - fIconsOnly* {.bitsize:1.}: WINBOOL - fRestFlags* {.bitsize:1.}: UINT + fShowAllObjects* {.bitsize: 1.}: WINBOOL + fShowExtensions* {.bitsize: 1.}: WINBOOL + fNoConfirmRecycle* {.bitsize: 1.}: WINBOOL + fShowSysFiles* {.bitsize: 1.}: WINBOOL + fShowCompColor* {.bitsize: 1.}: WINBOOL + fDoubleClickInWebView* {.bitsize: 1.}: WINBOOL + fDesktopHTML* {.bitsize: 1.}: WINBOOL + fWin95Classic* {.bitsize: 1.}: WINBOOL + fDontPrettyPath* {.bitsize: 1.}: WINBOOL + fShowAttribCol* {.bitsize: 1.}: WINBOOL + fMapNetDrvBtn* {.bitsize: 1.}: WINBOOL + fShowInfoTip* {.bitsize: 1.}: WINBOOL + fHideIcons* {.bitsize: 1.}: WINBOOL + fAutoCheckSelect* {.bitsize: 1.}: WINBOOL + fIconsOnly* {.bitsize: 1.}: WINBOOL + fRestFlags* {.bitsize: 1.}: UINT + LPSHELLFLAGSTATE* = ptr SHELLFLAGSTATE AASHELLMENUFILENAME* {.pure.} = object cbTotal*: SHORT rgbReserved*: array[12, BYTE] szFileName*: array[1, WCHAR] + LPAASHELLMENUFILENAME* = ptr AASHELLMENUFILENAME AASHELLMENUITEM* {.pure.} = object lpReserved1*: pointer @@ -1251,12 +1742,15 @@ uiReserved*: UINT lpName*: LPAASHELLMENUFILENAME psz*: LPWSTR + LPAASHELLMENUITEM* = ptr AASHELLMENUITEM SMCSHCHANGENOTIFYSTRUCT* {.pure.} = object lEvent*: LONG pidl1*: PCIDLIST_ABSOLUTE pidl2*: PCIDLIST_ABSOLUTE + PSMCSHCHANGENOTIFYSTRUCT* = ptr SMCSHCHANGENOTIFYSTRUCT + const ABM_NEW* = 0x00000000 ABM_REMOVE* = 0x00000001 @@ -1361,15 +1855,15 @@ QUNS_ACCEPTS_NOTIFICATIONS* = 5 QUNS_QUIET_TIME* = 6 QUNS_APP* = 7 - NIN_SELECT* = WM_USER+0 + NIN_SELECT* = WM_USER + 0 NINF_KEY* = 0x1 NIN_KEYSELECT* = NIN_SELECT or NINF_KEY - NIN_BALLOONSHOW* = WM_USER+2 - NIN_BALLOONHIDE* = WM_USER+3 - NIN_BALLOONTIMEOUT* = WM_USER+4 - NIN_BALLOONUSERCLICK* = WM_USER+5 - NIN_POPUPOPEN* = WM_USER+6 - NIN_POPUPCLOSE* = WM_USER+7 + NIN_BALLOONSHOW* = WM_USER + 2 + NIN_BALLOONHIDE* = WM_USER + 3 + NIN_BALLOONTIMEOUT* = WM_USER + 4 + NIN_BALLOONUSERCLICK* = WM_USER + 5 + NIN_POPUPOPEN* = WM_USER + 6 + NIN_POPUPCLOSE* = WM_USER + 7 NIM_ADD* = 0x00000000 NIM_MODIFY* = 0x00000001 NIM_DELETE* = 0x00000002 @@ -1542,10 +2036,10 @@ SHIL_JUMBO* = 4 SHIL_LAST* = SHIL_JUMBO WC_NETADDRESS* = "msctls_netaddress" - NCM_GETADDRESS* = WM_USER+1 - NCM_SETALLOWTYPE* = WM_USER+2 - NCM_GETALLOWTYPE* = WM_USER+3 - NCM_DISPLAYERRORTIP* = WM_USER+4 + NCM_GETADDRESS* = WM_USER + 1 + NCM_SETALLOWTYPE* = WM_USER + 2 + NCM_GETALLOWTYPE* = WM_USER + 3 + NCM_DISPLAYERRORTIP* = WM_USER + 4 SZ_CONTENTTYPE_HTMLA* = "text/html" SZ_CONTENTTYPE_HTMLW* = "text/html" SZ_CONTENTTYPE_CDFA* = "application/x-cdf" @@ -1699,7 +2193,8 @@ SHGVSPB_ROAM* = 0x00000020 SHGVSPB_NOAUTODEFAULTS* = 0x80000000'i32 SHGVSPB_FOLDER* = SHGVSPB_PERUSER or SHGVSPB_PERFOLDER - SHGVSPB_FOLDERNODEFAULTS* = SHGVSPB_PERUSER or SHGVSPB_PERFOLDER or SHGVSPB_NOAUTODEFAULTS + SHGVSPB_FOLDERNODEFAULTS* = + SHGVSPB_PERUSER or SHGVSPB_PERFOLDER or SHGVSPB_NOAUTODEFAULTS SHGVSPB_USERDEFAULTS* = SHGVSPB_PERUSER or SHGVSPB_ALLFOLDERS SHGVSPB_GLOBALDEAFAULTS* = SHGVSPB_ALLUSERS or SHGVSPB_ALLFOLDERS SHACF_DEFAULT* = 0x00000000 @@ -2035,8 +2530,10 @@ PSGUID_LINK* = DEFINE_GUID("b9b4b3fc-2b51-4a42-b5d8-324146afcf25") PSGUID_QUERY_D* = DEFINE_GUID("49691c90-7e17-101a-a91c-08002b2ecda9") PSGUID_SUMMARYINFORMATION* = DEFINE_GUID("f29f85e0-4ff9-1068-ab91-08002b27b3d9") - PSGUID_DOCUMENTSUMMARYINFORMATION* = DEFINE_GUID("d5cdd502-2e9c-101b-9397-08002b2cf9ae") - PSGUID_MEDIAFILESUMMARYINFORMATION* = DEFINE_GUID("64440492-4c8b-11d1-8b70-080036b11a03") + PSGUID_DOCUMENTSUMMARYINFORMATION* = + DEFINE_GUID("d5cdd502-2e9c-101b-9397-08002b2cf9ae") + PSGUID_MEDIAFILESUMMARYINFORMATION* = + DEFINE_GUID("64440492-4c8b-11d1-8b70-080036b11a03") PSGUID_IMAGESUMMARYINFORMATION* = DEFINE_GUID("6444048f-4c8b-11d1-8b70-080036b11a03") PID_VOLUME_FREE* = 2 PID_VOLUME_CAPACITY* = 3 @@ -2085,7 +2582,8 @@ SID_SMenuBandBottomSelected* = DEFINE_GUID("165ebaf4-6d51-11d2-83ad-00c04fd918d0") SID_SMenuBandBottom* = DEFINE_GUID("743ca664-0deb-11d1-9825-00c04fd91972") SID_MenuShellFolder* = DEFINE_GUID("a6c17eb4-2d65-11d2-838f-00c04fd918d0") - SID_SMenuBandContextMenuModifier* = DEFINE_GUID("39545874-7162-465e-b783-2aa1874fef81") + SID_SMenuBandContextMenuModifier* = + DEFINE_GUID("39545874-7162-465e-b783-2aa1874fef81") SID_SMenuBandBKContextMenu* = DEFINE_GUID("164bbd86-1d0d-4de0-9a3b-d9729647c2b8") CGID_MENUDESKBAR* = DEFINE_GUID("5c9f0a12-959e-11d0-a3a4-00a0c9082636") SID_SMenuBandTop* = DEFINE_GUID("9493a810-ec38-11d0-bc46-00aa006ce2f5") @@ -2211,7 +2709,8 @@ FOLDERID_Windows* = DEFINE_GUID("f38bf404-1d43-42f2-9305-67de0b28fc23") FOLDERTYPEID_Invalid* = DEFINE_GUID("57807898-8c4f-4462-bb63-71042380b109") FOLDERTYPEID_Generic* = DEFINE_GUID("5c4f28b5-f869-4e84-8e60-f11db97c5cc7") - FOLDERTYPEID_GenericSearchResults* = DEFINE_GUID("7fde1a1e-8b31-49a5-93b8-6be14cfa4943") + FOLDERTYPEID_GenericSearchResults* = + DEFINE_GUID("7fde1a1e-8b31-49a5-93b8-6be14cfa4943") FOLDERTYPEID_GenericLibrary* = DEFINE_GUID("5f4eab9a-6833-4f61-899d-31cf46979d49") FOLDERTYPEID_Documents* = DEFINE_GUID("7d49d726-3c21-4f05-99aa-fdc2c9474656") FOLDERTYPEID_Pictures* = DEFINE_GUID("b3690e58-e961-423b-b687-386ebfd83239") @@ -2230,8 +2729,10 @@ FOLDERTYPEID_SearchConnector* = DEFINE_GUID("982725ee-6f47-479e-b447-812bfa7d2e8f") FOLDERTYPEID_AccountPictures* = DEFINE_GUID("db2a5d8f-06e6-4007-aba6-af877d526ea6") FOLDERTYPEID_Games* = DEFINE_GUID("b689b0d0-76d3-4cbb-87f7-585d0e0ce070") - FOLDERTYPEID_ControlPanelCategory* = DEFINE_GUID("de4f0660-fa10-4b8f-a494-068b20b22307") - FOLDERTYPEID_ControlPanelClassic* = DEFINE_GUID("0c3794f3-b545-43aa-a329-c37430c58d2a") + FOLDERTYPEID_ControlPanelCategory* = + DEFINE_GUID("de4f0660-fa10-4b8f-a494-068b20b22307") + FOLDERTYPEID_ControlPanelClassic* = + DEFINE_GUID("0c3794f3-b545-43aa-a329-c37430c58d2a") FOLDERTYPEID_Printers* = DEFINE_GUID("2c7bbec6-c844-4a0a-91fa-cef6f59cfda1") FOLDERTYPEID_RecycleBin* = DEFINE_GUID("d6d9e004-cd87-442b-9d57-5e0aeb4f6f72") FOLDERTYPEID_SoftwareExplorer* = DEFINE_GUID("d674391b-52d9-4e07-834e-67c98610f39d") @@ -2244,11 +2745,16 @@ SYNCMGR_OBJECTID_ConflictStore* = DEFINE_GUID("d78181f4-2389-47e4-a960-60bcc2ed930b") SYNCMGR_OBJECTID_BrowseContent* = DEFINE_GUID("57cbb584-e9b4-47ae-a120-c4df3335dee2") SYNCMGR_OBJECTID_ShowSchedule* = DEFINE_GUID("edc6f3e3-8441-4109-adf3-6c1ca0b7de47") - SYNCMGR_OBJECTID_QueryBeforeActivate* = DEFINE_GUID("d882d80b-e7aa-49ed-86b7-e6e1f714cdfe") - SYNCMGR_OBJECTID_QueryBeforeDeactivate* = DEFINE_GUID("a0efc282-60e0-460e-9374-ea88513cfc80") - SYNCMGR_OBJECTID_QueryBeforeEnable* = DEFINE_GUID("04cbf7f0-5beb-4de1-bc90-908345c480f6") - SYNCMGR_OBJECTID_QueryBeforeDisable* = DEFINE_GUID("bb5f64aa-f004-4eb5-8e4d-26751966344c") - SYNCMGR_OBJECTID_QueryBeforeDelete* = DEFINE_GUID("f76c3397-afb3-45d7-a59f-5a49e905437e") + SYNCMGR_OBJECTID_QueryBeforeActivate* = + DEFINE_GUID("d882d80b-e7aa-49ed-86b7-e6e1f714cdfe") + SYNCMGR_OBJECTID_QueryBeforeDeactivate* = + DEFINE_GUID("a0efc282-60e0-460e-9374-ea88513cfc80") + SYNCMGR_OBJECTID_QueryBeforeEnable* = + DEFINE_GUID("04cbf7f0-5beb-4de1-bc90-908345c480f6") + SYNCMGR_OBJECTID_QueryBeforeDisable* = + DEFINE_GUID("bb5f64aa-f004-4eb5-8e4d-26751966344c") + SYNCMGR_OBJECTID_QueryBeforeDelete* = + DEFINE_GUID("f76c3397-afb3-45d7-a59f-5a49e905437e") SYNCMGR_OBJECTID_EventLinkClick* = DEFINE_GUID("2203bdc1-1af1-4082-8c30-28399f41384c") EP_NavPane* = DEFINE_GUID("cb316b22-25f7-42b8-8a09-540d23a43c2f") EP_Commands* = DEFINE_GUID("d9745868-ca5f-4a76-91cd-f5a129fbb076") @@ -2420,9 +2926,9 @@ ITSSFLAG_COMPLETE_ON_DESTROY* = 0x0 ITSSFLAG_KILL_ON_DESTROY* = 0x1 ITSSFLAG_FLAGS_MASK* = 0x3 - ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT* = 10*1000 + ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT* = 10 * 1000 ITSS_THREAD_TERMINATE_TIMEOUT* = INFINITE - ITSS_THREAD_TIMEOUT_NO_CHANGE* = INFINITE-1 + ITSS_THREAD_TIMEOUT_NO_CHANGE* = INFINITE - 1 IID_IShellTaskScheduler* = DEFINE_GUID("6ccb7be0-6807-11d0-b810-00c04fd706ec") SID_ShellTaskScheduler* = IID_IShellTaskScheduler IID_IQueryCodePage* = DEFINE_GUID("c7b236ce-ee80-11d0-985f-006008059382") @@ -2503,7 +3009,8 @@ STR_PARSE_PROPERTYSTORE* = "DelegateNamedProperties" STR_NO_VALIDATE_FILENAME_CHARS* = "NoValidateFilenameChars" STR_BIND_DELEGATE_CREATE_OBJECT* = "Delegate Object Creation" - STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS* = "Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING" + STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS* = + "Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING" STR_PARSE_PREFER_WEB_BROWSING* = "Do not bind to Internet shell folder handlers" STR_PARSE_SHOW_NET_DIAGNOSTICS_UI* = "Show network diagnostics UI" STR_PARSE_DONT_REQUIRE_VALIDATED_URLS* = "Do not require validated URLs" @@ -3204,8 +3711,10 @@ AT_URLPROTOCOL* = 1 AT_STARTMENUCLIENT* = 2 AT_MIMETYPE* = 3 - IID_IApplicationAssociationRegistration* = DEFINE_GUID("4e530b0a-e611-4c77-a3ac-9031d022281b") - IID_IApplicationAssociationRegistrationUI* = DEFINE_GUID("1f76a169-f994-40ac-8fc8-0959e8874710") + IID_IApplicationAssociationRegistration* = + DEFINE_GUID("4e530b0a-e611-4c77-a3ac-9031d022281b") + IID_IApplicationAssociationRegistrationUI* = + DEFINE_GUID("1f76a169-f994-40ac-8fc8-0959e8874710") IID_IDelegateFolder* = DEFINE_GUID("add8ba80-002b-11d0-8f0f-00c04fd7d062") BFO_NONE* = 0x0 BFO_BROWSER_PERSIST_SETTINGS* = 0x1 @@ -3360,7 +3869,8 @@ SHARE_ROLE_MIXED* = 5 DEFSHAREID_USERS* = 1 DEFSHAREID_PUBLIC* = 2 - IID_ISharingConfigurationManager* = DEFINE_GUID("b4cd448a-9c86-4466-9201-2e62105b87ae") + IID_ISharingConfigurationManager* = + DEFINE_GUID("b4cd448a-9c86-4466-9201-2e62105b87ae") IID_IPreviousVersionsInfo* = DEFINE_GUID("76e54780-ad74-48e3-a695-3ba9a0aff10d") IID_IRelatedItem* = DEFINE_GUID("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0") IID_IIdentityName* = DEFINE_GUID("7d903fca-d6f9-4810-8332-946c0177e247") @@ -3438,7 +3948,8 @@ NTSCS2_NOSINGLETONAUTOEXPAND* = 0x10 NTSCS2_NEVERINSERTNONENUMERATED* = 0x20 IID_INameSpaceTreeControl2* = DEFINE_GUID("7cc7aed8-290e-49bc-8945-c1401cc9306c") - NSTCS2_ALLMASK* = NSTCS2_INTERRUPTNOTIFICATIONS or NSTCS2_SHOWNULLSPACEMENU or NSTCS2_DISPLAYPADDING + NSTCS2_ALLMASK* = + NSTCS2_INTERRUPTNOTIFICATIONS or NSTCS2_SHOWNULLSPACEMENU or NSTCS2_DISPLAYPADDING SID_SNavigationPane* = IID_INameSpaceTreeControl NSTCEHT_NOWHERE* = 0x1 NSTCEHT_ONITEMICON* = 0x2 @@ -3456,13 +3967,16 @@ NSTCECT_DBLCLICK* = 0x4 IID_INameSpaceTreeControlEvents* = DEFINE_GUID("93d77985-b3d8-4484-8318-672cdda002ce") NSTCDHPOS_ONTOP* = -1 - IID_INameSpaceTreeControlDropHandler* = DEFINE_GUID("f9c665d6-c2f2-4c19-bf33-8322d7352f51") + IID_INameSpaceTreeControlDropHandler* = + DEFINE_GUID("f9c665d6-c2f2-4c19-bf33-8322d7352f51") IID_INameSpaceTreeAccessible* = DEFINE_GUID("71f312de-43ed-4190-8477-e9536b82350b") - IID_INameSpaceTreeControlCustomDraw* = DEFINE_GUID("2d3ba758-33ee-42d5-bb7b-5f3431d86c78") + IID_INameSpaceTreeControlCustomDraw* = + DEFINE_GUID("2d3ba758-33ee-42d5-bb7b-5f3431d86c78") NSTCFC_NONE* = 0x0 NSTCFC_PINNEDITEMFILTERING* = 0x1 NSTCFC_DELAY_REGISTER_NOTIFY* = 0x2 - IID_INameSpaceTreeControlFolderCapabilities* = DEFINE_GUID("e9701183-e6b3-4ff2-8568-813615fec7be") + IID_INameSpaceTreeControlFolderCapabilities* = + DEFINE_GUID("e9701183-e6b3-4ff2-8568-813615fec7be") E_PREVIEWHANDLER_DRM_FAIL* = HRESULT 0x86420001'i32 E_PREVIEWHANDLER_NOAUTH* = HRESULT 0x86420002'i32 E_PREVIEWHANDLER_NOTFOUND* = HRESULT 0x86420003'i32 @@ -3547,7 +4061,8 @@ HGSC_DOCUMENTSLIBRARY* = 0x8 HGSC_PRINTERS* = 0x10 IID_IHomeGroup* = DEFINE_GUID("7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0") - IID_IInitializeWithPropertyStore* = DEFINE_GUID("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4") + IID_IInitializeWithPropertyStore* = + DEFINE_GUID("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4") IID_IOpenSearchSource* = DEFINE_GUID("f0ee7333-e6fc-479b-9f25-a860c234a38e") LFF_FORCEFILESYSTEM* = 1 LFF_STORAGEITEMS* = 2 @@ -3582,12 +4097,14 @@ DFMR_USE_SPECIFIED_HANDLERS* = 0x100 DFMR_USE_SPECIFIED_VERBS* = 0x200 DFMR_NO_ASYNC_VERBS* = 0x400 - IID_IDefaultFolderMenuInitialize* = DEFINE_GUID("7690aa79-f8fc-4615-a327-36f7d18f5d91") + IID_IDefaultFolderMenuInitialize* = + DEFINE_GUID("7690aa79-f8fc-4615-a327-36f7d18f5d91") AO_NONE* = 0x0 AO_DESIGNMODE* = 0x1 AO_NOERRORUI* = 0x2 AO_NOSPLASHSCREEN* = 0x4 - IID_IApplicationActivationManager* = DEFINE_GUID("2e941141-7f97-4756-ba1d-9decde894a3d") + IID_IApplicationActivationManager* = + DEFINE_GUID("2e941141-7f97-4756-ba1d-9decde894a3d") LIBID_ShellObjects* = DEFINE_GUID("50a7e9b1-70ef-11d1-b75a-00a0c90564fe") CLSID_DesktopWallpaper* = DEFINE_GUID("c2cf3110-460e-4fc1-b9d0-8a1c0c9cc4bd") CLSID_ShellFSFolder* = DEFINE_GUID("f3364ba0-65b9-11ce-a9ba-00aa004ae837") @@ -3626,14 +4143,17 @@ CLSID_FileSaveDialog* = DEFINE_GUID("c0b4e2f3-ba21-4773-8dba-335ec946eb8b") CLSID_KnownFolderManager* = DEFINE_GUID("4df0c730-df9d-4ae3-9153-aa6b82e9795a") CLSID_FSCopyHandler* = DEFINE_GUID("d197380a-0a79-4dc8-a033-ed882c2fa14b") - CLSID_SharingConfigurationManager* = DEFINE_GUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") + CLSID_SharingConfigurationManager* = + DEFINE_GUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") CLSID_PreviousVersions* = DEFINE_GUID("596ab062-b4d2-4215-9f74-e9109b0a8153") CLSID_NetworkConnections* = DEFINE_GUID("7007acc7-3202-11d1-aad2-00805fc1270e") CLSID_NamespaceTreeControl* = DEFINE_GUID("ae054212-3535-4430-83ed-d501aa6680e6") CLSID_IENamespaceTreeControl* = DEFINE_GUID("ace52d03-e5cd-4b20-82ff-e71b11beae1d") CLSID_ScheduledTasks* = DEFINE_GUID("d6277990-4c6a-11cf-8d87-00aa0060f5bf") - CLSID_ApplicationAssociationRegistration* = DEFINE_GUID("591209c7-767b-42b2-9fba-44ee4615f2c7") - CLSID_ApplicationAssociationRegistrationUI* = DEFINE_GUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") + CLSID_ApplicationAssociationRegistration* = + DEFINE_GUID("591209c7-767b-42b2-9fba-44ee4615f2c7") + CLSID_ApplicationAssociationRegistrationUI* = + DEFINE_GUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") CLSID_SearchFolderItemFactory* = DEFINE_GUID("14010e02-bbbd-41f0-88e3-eda371216584") CLSID_OpenControlPanel* = DEFINE_GUID("06622d85-6856-4460-8de1-a81921b41c4b") CLSID_MailRecipient* = DEFINE_GUID("9e56be60-c50f-11cf-9a2c-00a0c90a90ce") @@ -3644,18 +4164,22 @@ CLSID_HomeGroup* = DEFINE_GUID("de77ba04-3c92-4d11-a1a5-42352a53e0e3") CLSID_ShellLibrary* = DEFINE_GUID("d9b3211d-e57f-4426-aaef-30a806add397") CLSID_AppStartupLink* = DEFINE_GUID("273eb5e7-88b0-4843-bfef-e2c81d43aae5") - CLSID_EnumerableObjectCollection* = DEFINE_GUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") + CLSID_EnumerableObjectCollection* = + DEFINE_GUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") CLSID_DesktopGadget* = DEFINE_GUID("924ccc1b-6562-4c85-8657-d177925222b6") CLSID_PlaybackManager* = DEFINE_GUID("29dfa654-a97f-47f0-bf26-9e41fb9488d9") - CLSID_AccessibilityDockingService* = DEFINE_GUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") + CLSID_AccessibilityDockingService* = + DEFINE_GUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") CLSID_FrameworkInputPane* = DEFINE_GUID("d5120aa3-46ba-44c5-822d-ca8092c1fc72") CLSID_DefFolderMenu* = DEFINE_GUID("c63382be-7933-48d0-9ac8-85fb46be2fdd") CLSID_AppVisibility* = DEFINE_GUID("7e5fe3d9-985f-4908-91f9-ee19f9fd1514") CLSID_AppShellVerbHandler* = DEFINE_GUID("4ed3a719-cea8-4bd9-910d-e252f997afc2") CLSID_ExecuteUnknown* = DEFINE_GUID("e44e9428-bdbc-4987-a099-40dc8fd255e7") CLSID_PackageDebugSettings* = DEFINE_GUID("b1aec16f-2383-4852-b0e9-8f0b1dc66b4d") - CLSID_ApplicationActivationManager* = DEFINE_GUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") - CLSID_ApplicationDesignModeSettings* = DEFINE_GUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") + CLSID_ApplicationActivationManager* = + DEFINE_GUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") + CLSID_ApplicationDesignModeSettings* = + DEFINE_GUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") CLSID_ExecuteFolder* = DEFINE_GUID("11dbb47c-a525-400b-9e80-a54615a090c0") LMD_DEFAULT* = 0x0 LMD_ALLOWUNINDEXABLENETWORKLOCATIONS* = 0x1 @@ -3672,8 +4196,10 @@ IID_ISearchableApplication* = DEFINE_GUID("08922f8d-243a-49e3-a495-bd4f9cf8ab9e") UR_RESOLUTION_CHANGE* = 0 UR_MONITOR_DISCONNECT* = 1 - IID_IAccessibilityDockingServiceCallback* = DEFINE_GUID("157733fd-a592-42e5-b594-248468c5a81b") - IID_IAccessibilityDockingService* = DEFINE_GUID("8849dc22-cedf-4c95-998d-051419dd3f76") + IID_IAccessibilityDockingServiceCallback* = + DEFINE_GUID("157733fd-a592-42e5-b594-248468c5a81b") + IID_IAccessibilityDockingService* = + DEFINE_GUID("8849dc22-cedf-4c95-998d-051419dd3f76") MAV_UNKNOWN* = 0 MAV_NO_APP_VISIBLE* = 1 MAV_APP_VISIBLE* = 2 @@ -3684,11 +4210,13 @@ PES_SUSPENDING* = 2 PES_SUSPENDED* = 3 PES_TERMINATED* = 4 - IID_IPackageExecutionStateChangeNotification* = DEFINE_GUID("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b") + IID_IPackageExecutionStateChangeNotification* = + DEFINE_GUID("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b") IID_IPackageDebugSettings* = DEFINE_GUID("f27c3930-8029-4ad1-94e3-3dba417810c1") AHE_DESKTOP* = 0 AHE_IMMERSIVE* = 1 - IID_IExecuteCommandApplicationHostEnvironment* = DEFINE_GUID("18b21aa9-e184-4ff0-9f5e-f882d03771b3") + IID_IExecuteCommandApplicationHostEnvironment* = + DEFINE_GUID("18b21aa9-e184-4ff0-9f5e-f882d03771b3") ECHUIM_DESKTOP* = 0 ECHUIM_IMMERSIVE* = 1 ECHUIM_SYSTEM_LAUNCHER* = 2 @@ -3701,12 +4229,14 @@ EGK_TOUCH* = 0 EGK_KEYBOARD* = 1 EGK_MOUSE* = 2 - IID_IApplicationDesignModeSettings* = DEFINE_GUID("2a3dee9a-e31d-46d6-8508-bcc597db3557") + IID_IApplicationDesignModeSettings* = + DEFINE_GUID("2a3dee9a-e31d-46d6-8508-bcc597db3557") IID_IInitializeWithWindow* = DEFINE_GUID("3e68d4bd-7135-4d10-8018-9fb6d9f33fa1") IID_IHandlerInfo* = DEFINE_GUID("997706ef-f880-453b-8118-39e1a2d2655a") IID_IHandlerActivationHost* = DEFINE_GUID("35094a87-8bb1-4237-96c6-c417eebdb078") SID_SHandlerActivationHost* = IID_IHandlerActivationHost - SID_ShellExecuteNamedPropertyStore* = DEFINE_GUID("eb84ada2-00ff-4992-8324-ed5ce061cb29") + SID_ShellExecuteNamedPropertyStore* = + DEFINE_GUID("eb84ada2-00ff-4992-8324-ed5ce061cb29") GIL_OPENICON* = 0x1 GIL_FORSHELL* = 0x2 GIL_ASYNC* = 0x20 @@ -3783,18 +4313,18 @@ FCIDM_BROWSERLAST* = 0xbf00 FCIDM_GLOBALFIRST* = 0x8000 FCIDM_GLOBALLAST* = 0x9fff - FCIDM_MENU_FILE* = FCIDM_GLOBALFIRST+0x0000 - FCIDM_MENU_EDIT* = FCIDM_GLOBALFIRST+0x0040 - FCIDM_MENU_VIEW* = FCIDM_GLOBALFIRST+0x0080 - FCIDM_MENU_VIEW_SEP_OPTIONS* = FCIDM_GLOBALFIRST+0x0081 - FCIDM_MENU_TOOLS* = FCIDM_GLOBALFIRST+0x00c0 - FCIDM_MENU_TOOLS_SEP_GOTO* = FCIDM_GLOBALFIRST+0x00c1 - FCIDM_MENU_HELP* = FCIDM_GLOBALFIRST+0x0100 - FCIDM_MENU_FIND* = FCIDM_GLOBALFIRST+0x0140 - FCIDM_MENU_EXPLORE* = FCIDM_GLOBALFIRST+0x0150 - FCIDM_MENU_FAVORITES* = FCIDM_GLOBALFIRST+0x0170 - FCIDM_TOOLBAR* = FCIDM_BROWSERFIRST+0 - FCIDM_STATUS* = FCIDM_BROWSERFIRST+1 + FCIDM_MENU_FILE* = FCIDM_GLOBALFIRST + 0x0000 + FCIDM_MENU_EDIT* = FCIDM_GLOBALFIRST + 0x0040 + FCIDM_MENU_VIEW* = FCIDM_GLOBALFIRST + 0x0080 + FCIDM_MENU_VIEW_SEP_OPTIONS* = FCIDM_GLOBALFIRST + 0x0081 + FCIDM_MENU_TOOLS* = FCIDM_GLOBALFIRST + 0x00c0 + FCIDM_MENU_TOOLS_SEP_GOTO* = FCIDM_GLOBALFIRST + 0x00c1 + FCIDM_MENU_HELP* = FCIDM_GLOBALFIRST + 0x0100 + FCIDM_MENU_FIND* = FCIDM_GLOBALFIRST + 0x0140 + FCIDM_MENU_EXPLORE* = FCIDM_GLOBALFIRST + 0x0150 + FCIDM_MENU_FAVORITES* = FCIDM_GLOBALFIRST + 0x0170 + FCIDM_TOOLBAR* = FCIDM_BROWSERFIRST + 0 + FCIDM_STATUS* = FCIDM_BROWSERFIRST + 1 IDC_OFFLINE_HAND* = 103 IDC_PANTOOL_HAND_OPEN* = 104 IDC_PANTOOL_HAND_CLOSED* = 105 @@ -3912,13 +4442,13 @@ BFFM_VALIDATEFAILEDA* = 3 BFFM_VALIDATEFAILEDW* = 4 BFFM_IUNKNOWN* = 5 - BFFM_SETSTATUSTEXTA* = WM_USER+100 - BFFM_ENABLEOK* = WM_USER+101 - BFFM_SETSELECTIONA* = WM_USER+102 - BFFM_SETSELECTIONW* = WM_USER+103 - BFFM_SETSTATUSTEXTW* = WM_USER+104 - BFFM_SETOKTEXT* = WM_USER+105 - BFFM_SETEXPANDED* = WM_USER+106 + BFFM_SETSTATUSTEXTA* = WM_USER + 100 + BFFM_ENABLEOK* = WM_USER + 101 + BFFM_SETSELECTIONA* = WM_USER + 102 + BFFM_SETSELECTIONW* = WM_USER + 103 + BFFM_SETSTATUSTEXTW* = WM_USER + 104 + BFFM_SETOKTEXT* = WM_USER + 105 + BFFM_SETEXPANDED* = WM_USER + 106 ISHCUTCMDID_DOWNLOADICON* = 0 ISHCUTCMDID_INTSHORTCUTCREATE* = 1 ISHCUTCMDID_COMMITHISTORY* = 2 @@ -3995,7 +4525,8 @@ IS_FULLSCREEN* = 0x00000002 IS_SPLIT* = 0x00000004 IS_VALIDSIZESTATEBITS* = IS_NORMAL or IS_SPLIT or IS_FULLSCREEN - IS_VALIDSTATEBITS* = IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or 0x80000000'i32 or 0x40000000 + IS_VALIDSTATEBITS* = + IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or 0x80000000'i32 or 0x40000000 AD_APPLY_SAVE* = 0x00000001 AD_APPLY_HTMLGEN* = 0x00000002 AD_APPLY_REFRESH* = 0x00000004 @@ -4028,7 +4559,12 @@ COMP_ELEM_ORIGINAL_CSI* = 0x00001000 COMP_ELEM_RESTORED_CSI* = 0x00002000 COMP_ELEM_CURITEMSTATE* = 0x00004000 - COMP_ELEM_ALL* = COMP_ELEM_TYPE or COMP_ELEM_CHECKED or COMP_ELEM_DIRTY or COMP_ELEM_NOSCROLL or COMP_ELEM_POS_LEFT or COMP_ELEM_SIZE_WIDTH or COMP_ELEM_SIZE_HEIGHT or COMP_ELEM_POS_ZINDEX or COMP_ELEM_SOURCE or COMP_ELEM_FRIENDLYNAME or COMP_ELEM_POS_TOP or COMP_ELEM_SUBSCRIBEDURL or COMP_ELEM_ORIGINAL_CSI or COMP_ELEM_RESTORED_CSI or COMP_ELEM_CURITEMSTATE + COMP_ELEM_ALL* = + COMP_ELEM_TYPE or COMP_ELEM_CHECKED or COMP_ELEM_DIRTY or COMP_ELEM_NOSCROLL or + COMP_ELEM_POS_LEFT or COMP_ELEM_SIZE_WIDTH or COMP_ELEM_SIZE_HEIGHT or + COMP_ELEM_POS_ZINDEX or COMP_ELEM_SOURCE or COMP_ELEM_FRIENDLYNAME or + COMP_ELEM_POS_TOP or COMP_ELEM_SUBSCRIBEDURL or COMP_ELEM_ORIGINAL_CSI or + COMP_ELEM_RESTORED_CSI or COMP_ELEM_CURITEMSTATE DTI_ADDUI_DEFAULT* = 0x0 DTI_ADDUI_DISPSUBWIZARD* = 0x1 DTI_ADDUI_POSITIONITEM* = 0x2 @@ -4531,11 +5067,9 @@ SHELLSTATEVERSION_IE4* = 9 SHELLSTATEVERSION_WIN2K* = 10 when winimUnicode: - type - SHELLSTATE* = SHELLSTATEW + type SHELLSTATE* = SHELLSTATEW when winimAnsi: - type - SHELLSTATE* = SHELLSTATEA + type SHELLSTATE* = SHELLSTATEA const SSF_SHOWALLOBJECTS* = 0x00000001 SSF_SHOWEXTENSIONS* = 0x00000002 @@ -4581,51 +5115,66 @@ SHELLSTATE_SIZE_WIN2K* = 32 ITSAT_DEFAULT_LPARAM* = not DWORD_PTR(0) type - PFNCANSHAREFOLDERW* = proc (pszPath: PCWSTR): HRESULT {.stdcall.} - PFNSHOWSHAREFOLDERUIW* = proc (hwndParent: HWND, pszPath: PCWSTR): HRESULT {.stdcall.} + PFNCANSHAREFOLDERW* = proc(pszPath: PCWSTR): HRESULT {.stdcall.} + PFNSHOWSHAREFOLDERUIW* = proc(hwndParent: HWND, pszPath: PCWSTR): HRESULT {.stdcall.} DLLVERSIONINFO* {.pure.} = object cbSize*: DWORD dwMajorVersion*: DWORD dwMinorVersion*: DWORD dwBuildNumber*: DWORD dwPlatformID*: DWORD - DLLGETVERSIONPROC* = proc (P1: ptr DLLVERSIONINFO): HRESULT {.stdcall.} - LPFNDFMCALLBACK* = proc (psf: ptr IShellFolder, hwnd: HWND, pdtobj: ptr IDataObject, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} + + DLLGETVERSIONPROC* = proc(P1: ptr DLLVERSIONINFO): HRESULT {.stdcall.} + LPFNDFMCALLBACK* = proc( + psf: ptr IShellFolder, + hwnd: HWND, + pdtobj: ptr IDataObject, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + ): HRESULT {.stdcall.} ASSOCIATIONELEMENT* {.pure.} = object ac*: ASSOCCLASS hkClass*: HKEY pszClass*: PCWSTR + SHFILEINFOA* {.pure.} = object hIcon*: HICON iIcon*: int32 dwAttributes*: DWORD szDisplayName*: array[MAX_PATH, CHAR] szTypeName*: array[80, CHAR] + SHFILEINFOW* {.pure.} = object hIcon*: HICON iIcon*: int32 dwAttributes*: DWORD szDisplayName*: array[MAX_PATH, WCHAR] szTypeName*: array[80, WCHAR] + SHSTOCKICONINFO* {.pure.} = object cbSize*: DWORD hIcon*: HICON iSysImageIndex*: int32 iIcon*: int32 szPath*: array[MAX_PATH, WCHAR] + DLLVERSIONINFO2* {.pure.} = object info1*: DLLVERSIONINFO dwFlags*: DWORD ullVersion*: ULONGLONG + PERSIST_FOLDER_TARGET_INFO* {.pure.} = object pidlTargetFolder*: PIDLIST_ABSOLUTE szTargetParsingName*: array[260, WCHAR] szNetworkProvider*: array[260, WCHAR] dwAttributes*: DWORD csidl*: int32 + SORTCOLUMN* {.pure.} = object propkey*: PROPERTYKEY direction*: SORTDIRECTION + CM_COLUMNINFO* {.pure.} = object cbSize*: DWORD dwMask*: DWORD @@ -4634,12 +5183,15 @@ uDefaultWidth*: UINT uIdealWidth*: UINT wszName*: array[80, WCHAR] + SHELL_ITEM_RESOURCE* {.pure.} = object guidType*: GUID szName*: array[260, WCHAR] + TCATEGORY_INFO* {.pure.} = object cif*: CATEGORYINFO_FLAGS wszName*: array[260, WCHAR] + DESKBANDINFO* {.pure.} = object dwMask*: DWORD ptMinSize*: POINTL @@ -4649,10 +5201,12 @@ wszTitle*: array[256, WCHAR] dwModeFlags*: DWORD crBkgnd*: COLORREF + BANDSITEINFO* {.pure.} = object dwMask*: DWORD dwState*: DWORD dwStyle*: DWORD + KNOWNFOLDER_DEFINITION* {.pure.} = object category*: KF_CATEGORY pszName*: LPWSTR @@ -4667,14 +5221,30 @@ dwAttributes*: DWORD kfdFlags*: KF_DEFINITION_FLAGS ftidType*: FOLDERTYPEID + IShellItem* {.pure.} = object lpVtbl*: ptr IShellItemVtbl + IShellItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - BindToHandler*: proc(self: ptr IShellItem, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetParent*: proc(self: ptr IShellItem, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} - GetDisplayName*: proc(self: ptr IShellItem, sigdnName: SIGDN, ppszName: ptr LPWSTR): HRESULT {.stdcall.} - GetAttributes*: proc(self: ptr IShellItem, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.stdcall.} - Compare*: proc(self: ptr IShellItem, psi: ptr IShellItem, hint: SICHINTF, piOrder: ptr int32): HRESULT {.stdcall.} + BindToHandler*: proc( + self: ptr IShellItem, + pbc: ptr IBindCtx, + bhid: REFGUID, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetParent*: + proc(self: ptr IShellItem, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} + GetDisplayName*: proc( + self: ptr IShellItem, sigdnName: SIGDN, ppszName: ptr LPWSTR + ): HRESULT {.stdcall.} + GetAttributes*: proc( + self: ptr IShellItem, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF + ): HRESULT {.stdcall.} + Compare*: proc( + self: ptr IShellItem, psi: ptr IShellItem, hint: SICHINTF, piOrder: ptr int32 + ): HRESULT {.stdcall.} + NSTCCUSTOMDRAW* {.pure.} = object psi*: ptr IShellItem uItemState*: UINT @@ -4684,115 +5254,183 @@ himl*: HIMAGELIST iLevel*: int32 iIndent*: int32 + PREVIEWHANDLERFRAMEINFO* {.pure.} = object haccel*: HACCEL cAccelEntries*: UINT + EXP_PROPERTYSTORAGE* {.pure, packed.} = object cbSize*: DWORD dwSignature*: DWORD abPropertyStorage*: array[1, BYTE] + FILE_ATTRIBUTES_ARRAY* {.pure.} = object cItems*: UINT dwSumFileAttributes*: DWORD dwProductFileAttributes*: DWORD rgdwFileAttributes*: array[1, DWORD] + DROPDESCRIPTION* {.pure.} = object `type`*: DROPIMAGETYPE szMessage*: array[MAX_PATH, WCHAR] szInsert*: array[MAX_PATH, WCHAR] + SHChangeNotifyEntry* {.pure, packed.} = object pidl*: PCIDLIST_ABSOLUTE fRecursive*: WINBOOL + TSHARDAPPIDINFO* {.pure.} = object psi*: ptr IShellItem pszAppID*: PCWSTR + TSHARD_APPIDINFOIDLIST* {.pure.} = object pidl*: PCIDLIST_ABSOLUTE pszAppID*: PCWSTR + IShellLinkW* {.pure.} = object lpVtbl*: ptr IShellLinkWVtbl + IShellLinkWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPath*: proc(self: ptr IShellLinkW, pszFile: LPWSTR, cch: int32, pfd: ptr WIN32_FIND_DATAW, fFlags: DWORD): HRESULT {.stdcall.} - GetIDList*: proc(self: ptr IShellLinkW, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} - SetIDList*: proc(self: ptr IShellLinkW, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} - GetDescription*: proc(self: ptr IShellLinkW, pszName: LPWSTR, cch: int32): HRESULT {.stdcall.} + GetPath*: proc( + self: ptr IShellLinkW, + pszFile: LPWSTR, + cch: int32, + pfd: ptr WIN32_FIND_DATAW, + fFlags: DWORD, + ): HRESULT {.stdcall.} + GetIDList*: + proc(self: ptr IShellLinkW, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + SetIDList*: + proc(self: ptr IShellLinkW, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + GetDescription*: + proc(self: ptr IShellLinkW, pszName: LPWSTR, cch: int32): HRESULT {.stdcall.} SetDescription*: proc(self: ptr IShellLinkW, pszName: LPCWSTR): HRESULT {.stdcall.} - GetWorkingDirectory*: proc(self: ptr IShellLinkW, pszDir: LPWSTR, cch: int32): HRESULT {.stdcall.} - SetWorkingDirectory*: proc(self: ptr IShellLinkW, pszDir: LPCWSTR): HRESULT {.stdcall.} - GetArguments*: proc(self: ptr IShellLinkW, pszArgs: LPWSTR, cch: int32): HRESULT {.stdcall.} + GetWorkingDirectory*: + proc(self: ptr IShellLinkW, pszDir: LPWSTR, cch: int32): HRESULT {.stdcall.} + SetWorkingDirectory*: + proc(self: ptr IShellLinkW, pszDir: LPCWSTR): HRESULT {.stdcall.} + GetArguments*: + proc(self: ptr IShellLinkW, pszArgs: LPWSTR, cch: int32): HRESULT {.stdcall.} SetArguments*: proc(self: ptr IShellLinkW, pszArgs: LPCWSTR): HRESULT {.stdcall.} GetHotkey*: proc(self: ptr IShellLinkW, pwHotkey: ptr WORD): HRESULT {.stdcall.} SetHotkey*: proc(self: ptr IShellLinkW, wHotkey: WORD): HRESULT {.stdcall.} GetShowCmd*: proc(self: ptr IShellLinkW, piShowCmd: ptr int32): HRESULT {.stdcall.} SetShowCmd*: proc(self: ptr IShellLinkW, iShowCmd: int32): HRESULT {.stdcall.} - GetIconLocation*: proc(self: ptr IShellLinkW, pszIconPath: LPWSTR, cch: int32, piIcon: ptr int32): HRESULT {.stdcall.} - SetIconLocation*: proc(self: ptr IShellLinkW, pszIconPath: LPCWSTR, iIcon: int32): HRESULT {.stdcall.} - SetRelativePath*: proc(self: ptr IShellLinkW, pszPathRel: LPCWSTR, dwReserved: DWORD): HRESULT {.stdcall.} - Resolve*: proc(self: ptr IShellLinkW, hwnd: HWND, fFlags: DWORD): HRESULT {.stdcall.} + GetIconLocation*: proc( + self: ptr IShellLinkW, pszIconPath: LPWSTR, cch: int32, piIcon: ptr int32 + ): HRESULT {.stdcall.} + SetIconLocation*: proc( + self: ptr IShellLinkW, pszIconPath: LPCWSTR, iIcon: int32 + ): HRESULT {.stdcall.} + SetRelativePath*: proc( + self: ptr IShellLinkW, pszPathRel: LPCWSTR, dwReserved: DWORD + ): HRESULT {.stdcall.} + Resolve*: + proc(self: ptr IShellLinkW, hwnd: HWND, fFlags: DWORD): HRESULT {.stdcall.} SetPath*: proc(self: ptr IShellLinkW, pszFile: LPCWSTR): HRESULT {.stdcall.} + when winimUnicode: - type - IShellLink* = IShellLinkW + type IShellLink* = IShellLinkW type IShellLinkA* {.pure.} = object lpVtbl*: ptr IShellLinkAVtbl + IShellLinkAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPath*: proc(self: ptr IShellLinkA, pszFile: LPSTR, cch: int32, pfd: ptr WIN32_FIND_DATAA, fFlags: DWORD): HRESULT {.stdcall.} - GetIDList*: proc(self: ptr IShellLinkA, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} - SetIDList*: proc(self: ptr IShellLinkA, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} - GetDescription*: proc(self: ptr IShellLinkA, pszName: LPSTR, cch: int32): HRESULT {.stdcall.} + GetPath*: proc( + self: ptr IShellLinkA, + pszFile: LPSTR, + cch: int32, + pfd: ptr WIN32_FIND_DATAA, + fFlags: DWORD, + ): HRESULT {.stdcall.} + GetIDList*: + proc(self: ptr IShellLinkA, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + SetIDList*: + proc(self: ptr IShellLinkA, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + GetDescription*: + proc(self: ptr IShellLinkA, pszName: LPSTR, cch: int32): HRESULT {.stdcall.} SetDescription*: proc(self: ptr IShellLinkA, pszName: LPCSTR): HRESULT {.stdcall.} - GetWorkingDirectory*: proc(self: ptr IShellLinkA, pszDir: LPSTR, cch: int32): HRESULT {.stdcall.} - SetWorkingDirectory*: proc(self: ptr IShellLinkA, pszDir: LPCSTR): HRESULT {.stdcall.} - GetArguments*: proc(self: ptr IShellLinkA, pszArgs: LPSTR, cch: int32): HRESULT {.stdcall.} + GetWorkingDirectory*: + proc(self: ptr IShellLinkA, pszDir: LPSTR, cch: int32): HRESULT {.stdcall.} + SetWorkingDirectory*: + proc(self: ptr IShellLinkA, pszDir: LPCSTR): HRESULT {.stdcall.} + GetArguments*: + proc(self: ptr IShellLinkA, pszArgs: LPSTR, cch: int32): HRESULT {.stdcall.} SetArguments*: proc(self: ptr IShellLinkA, pszArgs: LPCSTR): HRESULT {.stdcall.} GetHotkey*: proc(self: ptr IShellLinkA, pwHotkey: ptr WORD): HRESULT {.stdcall.} SetHotkey*: proc(self: ptr IShellLinkA, wHotkey: WORD): HRESULT {.stdcall.} GetShowCmd*: proc(self: ptr IShellLinkA, piShowCmd: ptr int32): HRESULT {.stdcall.} SetShowCmd*: proc(self: ptr IShellLinkA, iShowCmd: int32): HRESULT {.stdcall.} - GetIconLocation*: proc(self: ptr IShellLinkA, pszIconPath: LPSTR, cch: int32, piIcon: ptr int32): HRESULT {.stdcall.} - SetIconLocation*: proc(self: ptr IShellLinkA, pszIconPath: LPCSTR, iIcon: int32): HRESULT {.stdcall.} - SetRelativePath*: proc(self: ptr IShellLinkA, pszPathRel: LPCSTR, dwReserved: DWORD): HRESULT {.stdcall.} - Resolve*: proc(self: ptr IShellLinkA, hwnd: HWND, fFlags: DWORD): HRESULT {.stdcall.} + GetIconLocation*: proc( + self: ptr IShellLinkA, pszIconPath: LPSTR, cch: int32, piIcon: ptr int32 + ): HRESULT {.stdcall.} + SetIconLocation*: proc( + self: ptr IShellLinkA, pszIconPath: LPCSTR, iIcon: int32 + ): HRESULT {.stdcall.} + SetRelativePath*: proc( + self: ptr IShellLinkA, pszPathRel: LPCSTR, dwReserved: DWORD + ): HRESULT {.stdcall.} + Resolve*: + proc(self: ptr IShellLinkA, hwnd: HWND, fFlags: DWORD): HRESULT {.stdcall.} SetPath*: proc(self: ptr IShellLinkA, pszFile: LPCSTR): HRESULT {.stdcall.} + when winimAnsi: - type - IShellLink* = IShellLinkA + type IShellLink* = IShellLinkA type TSHARDAPPIDINFOLINK* {.pure.} = object psl*: ptr IShellLink pszAppID*: PCWSTR + AUTO_SCROLL_DATA* {.pure.} = object iNextSample*: int32 dwLastScroll*: DWORD bFull*: WINBOOL pts*: array[NUM_POINTS, POINT] dwTimes*: array[NUM_POINTS, DWORD] + SFVM_PROPPAGE_DATA* {.pure.} = object dwReserved*: DWORD pfn*: LPFNADDPROPSHEETPAGE lParam*: LPARAM + SFVM_HELPTOPIC_DATA* {.pure.} = object wszHelpFile*: array[MAX_PATH, WCHAR] wszHelpTopic*: array[MAX_PATH, WCHAR] + ITEMSPACING* {.pure.} = object cxSmall*: int32 cySmall*: int32 cxLarge*: int32 cyLarge*: int32 + IShellFolderViewCB* {.pure.} = object lpVtbl*: ptr IShellFolderViewCBVtbl + IShellFolderViewCBVtbl* {.pure, inheritable.} = object of IUnknownVtbl - MessageSFVCB*: proc(self: ptr IShellFolderViewCB, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} + MessageSFVCB*: proc( + self: ptr IShellFolderViewCB, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + SFV_CREATE* {.pure.} = object cbSize*: UINT pshf*: ptr IShellFolder psvOuter*: ptr IShellView psfvcb*: ptr IShellFolderViewCB + IContextMenuCB* {.pure.} = object lpVtbl*: ptr IContextMenuCBVtbl + IContextMenuCBVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CallBack*: proc(self: ptr IContextMenuCB, psf: ptr IShellFolder, hwndOwner: HWND, pdtobj: ptr IDataObject, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} + CallBack*: proc( + self: ptr IContextMenuCB, + psf: ptr IShellFolder, + hwndOwner: HWND, + pdtobj: ptr IDataObject, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + ): HRESULT {.stdcall.} + DEFCONTEXTMENU* {.pure.} = object hwnd*: HWND pcmcb*: ptr IContextMenuCB @@ -4803,135 +5441,275 @@ punkAssociationInfo*: ptr IUnknown cKeys*: UINT aKeys*: ptr HKEY + IQueryAssociations* {.pure.} = object lpVtbl*: ptr IQueryAssociationsVtbl + IQueryAssociationsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Init*: proc(self: ptr IQueryAssociations, flags: ASSOCF, pszAssoc: LPCWSTR, hkProgid: HKEY, hwnd: HWND): HRESULT {.stdcall.} - GetString*: proc(self: ptr IQueryAssociations, flags: ASSOCF, str: ASSOCSTR, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: ptr DWORD): HRESULT {.stdcall.} - GetKey*: proc(self: ptr IQueryAssociations, flags: ASSOCF, key: ASSOCKEY, pszExtra: LPCWSTR, phkeyOut: ptr HKEY): HRESULT {.stdcall.} - GetData*: proc(self: ptr IQueryAssociations, flags: ASSOCF, data: ASSOCDATA, pszExtra: LPCWSTR, pvOut: LPVOID, pcbOut: ptr DWORD): HRESULT {.stdcall.} - GetEnum*: proc(self: ptr IQueryAssociations, flags: ASSOCF, assocenum: ASSOCENUM, pszExtra: LPCWSTR, riid: REFIID, ppvOut: ptr LPVOID): HRESULT {.stdcall.} + Init*: proc( + self: ptr IQueryAssociations, + flags: ASSOCF, + pszAssoc: LPCWSTR, + hkProgid: HKEY, + hwnd: HWND, + ): HRESULT {.stdcall.} + GetString*: proc( + self: ptr IQueryAssociations, + flags: ASSOCF, + str: ASSOCSTR, + pszExtra: LPCWSTR, + pszOut: LPWSTR, + pcchOut: ptr DWORD, + ): HRESULT {.stdcall.} + GetKey*: proc( + self: ptr IQueryAssociations, + flags: ASSOCF, + key: ASSOCKEY, + pszExtra: LPCWSTR, + phkeyOut: ptr HKEY, + ): HRESULT {.stdcall.} + GetData*: proc( + self: ptr IQueryAssociations, + flags: ASSOCF, + data: ASSOCDATA, + pszExtra: LPCWSTR, + pvOut: LPVOID, + pcbOut: ptr DWORD, + ): HRESULT {.stdcall.} + GetEnum*: proc( + self: ptr IQueryAssociations, + flags: ASSOCF, + assocenum: ASSOCENUM, + pszExtra: LPCWSTR, + riid: REFIID, + ppvOut: ptr LPVOID, + ): HRESULT {.stdcall.} + IFolderViewOC* {.pure.} = object lpVtbl*: ptr IFolderViewOCVtbl + IFolderViewOCVtbl* {.pure, inheritable.} = object of IDispatchVtbl - SetFolderView*: proc(self: ptr IFolderViewOC, pdisp: ptr IDispatch): HRESULT {.stdcall.} + SetFolderView*: + proc(self: ptr IFolderViewOC, pdisp: ptr IDispatch): HRESULT {.stdcall.} + DShellFolderViewEvents* {.pure.} = object lpVtbl*: ptr DShellFolderViewEventsVtbl + DShellFolderViewEventsVtbl* {.pure, inheritable.} = object of IDispatchVtbl DFConstraint* {.pure.} = object lpVtbl*: ptr DFConstraintVtbl + DFConstraintVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Name*: proc(self: ptr DFConstraint, pbs: ptr BSTR): HRESULT {.stdcall.} get_Value*: proc(self: ptr DFConstraint, pv: ptr VARIANT): HRESULT {.stdcall.} + FolderItems* {.pure.} = object lpVtbl*: ptr FolderItemsVtbl + FolderItemsVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Count*: proc(self: ptr FolderItems, plCount: ptr LONG): HRESULT {.stdcall.} - get_Application*: proc(self: ptr FolderItems, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr FolderItems, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - Item*: proc(self: ptr FolderItems, index: VARIANT, ppid: ptr ptr FolderItem): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr FolderItems, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr FolderItems, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + Item*: proc( + self: ptr FolderItems, index: VARIANT, ppid: ptr ptr FolderItem + ): HRESULT {.stdcall.} NewEnum*: proc(self: ptr FolderItems, ppunk: ptr ptr IUnknown): HRESULT {.stdcall.} + Folder* {.pure.} = object lpVtbl*: ptr FolderVtbl + FolderVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Title*: proc(self: ptr Folder, pbs: ptr BSTR): HRESULT {.stdcall.} - get_Application*: proc(self: ptr Folder, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr Folder, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} get_Parent*: proc(self: ptr Folder, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} get_ParentFolder*: proc(self: ptr Folder, ppsf: ptr ptr Folder): HRESULT {.stdcall.} Items*: proc(self: ptr Folder, ppid: ptr ptr FolderItems): HRESULT {.stdcall.} - ParseName*: proc(self: ptr Folder, bName: BSTR, ppid: ptr ptr FolderItem): HRESULT {.stdcall.} - NewFolder*: proc(self: ptr Folder, bName: BSTR, vOptions: VARIANT): HRESULT {.stdcall.} - MoveHere*: proc(self: ptr Folder, vItem: VARIANT, vOptions: VARIANT): HRESULT {.stdcall.} - CopyHere*: proc(self: ptr Folder, vItem: VARIANT, vOptions: VARIANT): HRESULT {.stdcall.} - GetDetailsOf*: proc(self: ptr Folder, vItem: VARIANT, iColumn: int32, pbs: ptr BSTR): HRESULT {.stdcall.} + ParseName*: + proc(self: ptr Folder, bName: BSTR, ppid: ptr ptr FolderItem): HRESULT {.stdcall.} + NewFolder*: + proc(self: ptr Folder, bName: BSTR, vOptions: VARIANT): HRESULT {.stdcall.} + MoveHere*: + proc(self: ptr Folder, vItem: VARIANT, vOptions: VARIANT): HRESULT {.stdcall.} + CopyHere*: + proc(self: ptr Folder, vItem: VARIANT, vOptions: VARIANT): HRESULT {.stdcall.} + GetDetailsOf*: proc( + self: ptr Folder, vItem: VARIANT, iColumn: int32, pbs: ptr BSTR + ): HRESULT {.stdcall.} + Folder2* {.pure.} = object lpVtbl*: ptr Folder2Vtbl + Folder2Vtbl* {.pure, inheritable.} = object of FolderVtbl get_Self*: proc(self: ptr Folder2, ppfi: ptr ptr FolderItem): HRESULT {.stdcall.} get_OfflineStatus*: proc(self: ptr Folder2, pul: ptr LONG): HRESULT {.stdcall.} Synchronize*: proc(self: ptr Folder2): HRESULT {.stdcall.} - get_HaveToShowWebViewBarricade*: proc(self: ptr Folder2, pbHaveToShowWebViewBarricade: ptr VARIANT_BOOL): HRESULT {.stdcall.} + get_HaveToShowWebViewBarricade*: proc( + self: ptr Folder2, pbHaveToShowWebViewBarricade: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} DismissedWebViewBarricade*: proc(self: ptr Folder2): HRESULT {.stdcall.} + Folder3* {.pure.} = object lpVtbl*: ptr Folder3Vtbl + Folder3Vtbl* {.pure, inheritable.} = object of Folder2Vtbl - get_ShowWebViewBarricade*: proc(self: ptr Folder3, pbShowWebViewBarricade: ptr VARIANT_BOOL): HRESULT {.stdcall.} - put_ShowWebViewBarricade*: proc(self: ptr Folder3, bShowWebViewBarricade: VARIANT_BOOL): HRESULT {.stdcall.} + get_ShowWebViewBarricade*: proc( + self: ptr Folder3, pbShowWebViewBarricade: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + put_ShowWebViewBarricade*: + proc(self: ptr Folder3, bShowWebViewBarricade: VARIANT_BOOL): HRESULT {.stdcall.} + FolderItem2* {.pure.} = object lpVtbl*: ptr FolderItem2Vtbl + FolderItem2Vtbl* {.pure, inheritable.} = object of FolderItemVtbl - InvokeVerbEx*: proc(self: ptr FolderItem2, vVerb: VARIANT, vArgs: VARIANT): HRESULT {.stdcall.} - ExtendedProperty*: proc(self: ptr FolderItem2, bstrPropName: BSTR, pvRet: ptr VARIANT): HRESULT {.stdcall.} + InvokeVerbEx*: + proc(self: ptr FolderItem2, vVerb: VARIANT, vArgs: VARIANT): HRESULT {.stdcall.} + ExtendedProperty*: proc( + self: ptr FolderItem2, bstrPropName: BSTR, pvRet: ptr VARIANT + ): HRESULT {.stdcall.} + FolderItems2* {.pure.} = object lpVtbl*: ptr FolderItems2Vtbl + FolderItems2Vtbl* {.pure, inheritable.} = object of FolderItemsVtbl - InvokeVerbEx*: proc(self: ptr FolderItems2, vVerb: VARIANT, vArgs: VARIANT): HRESULT {.stdcall.} + InvokeVerbEx*: + proc(self: ptr FolderItems2, vVerb: VARIANT, vArgs: VARIANT): HRESULT {.stdcall.} + FolderItems3* {.pure.} = object lpVtbl*: ptr FolderItems3Vtbl + FolderItems3Vtbl* {.pure, inheritable.} = object of FolderItems2Vtbl - Filter*: proc(self: ptr FolderItems3, grfFlags: LONG, bstrFileSpec: BSTR): HRESULT {.stdcall.} - get_Verbs*: proc(self: ptr FolderItems3, ppfic: ptr ptr FolderItemVerbs): HRESULT {.stdcall.} + Filter*: proc(self: ptr FolderItems3, grfFlags: LONG, bstrFileSpec: BSTR): HRESULT {. + stdcall + .} + get_Verbs*: + proc(self: ptr FolderItems3, ppfic: ptr ptr FolderItemVerbs): HRESULT {.stdcall.} + IShellLinkDual* {.pure.} = object lpVtbl*: ptr IShellLinkDualVtbl + IShellLinkDualVtbl* {.pure, inheritable.} = object of IDispatchVtbl get_Path*: proc(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.stdcall.} put_Path*: proc(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.stdcall.} get_Description*: proc(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.stdcall.} put_Description*: proc(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.stdcall.} - get_WorkingDirectory*: proc(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.stdcall.} + get_WorkingDirectory*: + proc(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.stdcall.} put_WorkingDirectory*: proc(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.stdcall.} get_Arguments*: proc(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.stdcall.} put_Arguments*: proc(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.stdcall.} get_Hotkey*: proc(self: ptr IShellLinkDual, piHK: ptr int32): HRESULT {.stdcall.} put_Hotkey*: proc(self: ptr IShellLinkDual, iHK: int32): HRESULT {.stdcall.} - get_ShowCommand*: proc(self: ptr IShellLinkDual, piShowCommand: ptr int32): HRESULT {.stdcall.} - put_ShowCommand*: proc(self: ptr IShellLinkDual, iShowCommand: int32): HRESULT {.stdcall.} + get_ShowCommand*: + proc(self: ptr IShellLinkDual, piShowCommand: ptr int32): HRESULT {.stdcall.} + put_ShowCommand*: + proc(self: ptr IShellLinkDual, iShowCommand: int32): HRESULT {.stdcall.} Resolve*: proc(self: ptr IShellLinkDual, fFlags: int32): HRESULT {.stdcall.} - GetIconLocation*: proc(self: ptr IShellLinkDual, pbs: ptr BSTR, piIcon: ptr int32): HRESULT {.stdcall.} - SetIconLocation*: proc(self: ptr IShellLinkDual, bs: BSTR, iIcon: int32): HRESULT {.stdcall.} + GetIconLocation*: proc( + self: ptr IShellLinkDual, pbs: ptr BSTR, piIcon: ptr int32 + ): HRESULT {.stdcall.} + SetIconLocation*: + proc(self: ptr IShellLinkDual, bs: BSTR, iIcon: int32): HRESULT {.stdcall.} Save*: proc(self: ptr IShellLinkDual, vWhere: VARIANT): HRESULT {.stdcall.} + IShellLinkDual2* {.pure.} = object lpVtbl*: ptr IShellLinkDual2Vtbl + IShellLinkDual2Vtbl* {.pure, inheritable.} = object of IShellLinkDualVtbl - get_Target*: proc(self: ptr IShellLinkDual2, ppfi: ptr ptr FolderItem): HRESULT {.stdcall.} + get_Target*: + proc(self: ptr IShellLinkDual2, ppfi: ptr ptr FolderItem): HRESULT {.stdcall.} + IShellFolderViewDual* {.pure.} = object lpVtbl*: ptr IShellFolderViewDualVtbl + IShellFolderViewDualVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_Application*: proc(self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Folder*: proc(self: ptr IShellFolderViewDual, ppid: ptr ptr Folder): HRESULT {.stdcall.} - SelectedItems*: proc(self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItems): HRESULT {.stdcall.} - get_FocusedItem*: proc(self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItem): HRESULT {.stdcall.} - SelectItem*: proc(self: ptr IShellFolderViewDual, pvfi: ptr VARIANT, dwFlags: int32): HRESULT {.stdcall.} - PopupItemMenu*: proc(self: ptr IShellFolderViewDual, pfi: ptr FolderItem, vx: VARIANT, vy: VARIANT, pbs: ptr BSTR): HRESULT {.stdcall.} - get_Script*: proc(self: ptr IShellFolderViewDual, ppDisp: ptr ptr IDispatch): HRESULT {.stdcall.} - get_ViewOptions*: proc(self: ptr IShellFolderViewDual, plViewOptions: ptr LONG): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Folder*: + proc(self: ptr IShellFolderViewDual, ppid: ptr ptr Folder): HRESULT {.stdcall.} + SelectedItems*: proc( + self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItems + ): HRESULT {.stdcall.} + get_FocusedItem*: proc( + self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItem + ): HRESULT {.stdcall.} + SelectItem*: proc( + self: ptr IShellFolderViewDual, pvfi: ptr VARIANT, dwFlags: int32 + ): HRESULT {.stdcall.} + PopupItemMenu*: proc( + self: ptr IShellFolderViewDual, + pfi: ptr FolderItem, + vx: VARIANT, + vy: VARIANT, + pbs: ptr BSTR, + ): HRESULT {.stdcall.} + get_Script*: proc( + self: ptr IShellFolderViewDual, ppDisp: ptr ptr IDispatch + ): HRESULT {.stdcall.} + get_ViewOptions*: + proc(self: ptr IShellFolderViewDual, plViewOptions: ptr LONG): HRESULT {.stdcall.} + IShellFolderViewDual2* {.pure.} = object lpVtbl*: ptr IShellFolderViewDual2Vtbl + IShellFolderViewDual2Vtbl* {.pure, inheritable.} = object of IShellFolderViewDualVtbl - get_CurrentViewMode*: proc(self: ptr IShellFolderViewDual2, pViewMode: ptr UINT): HRESULT {.stdcall.} - put_CurrentViewMode*: proc(self: ptr IShellFolderViewDual2, ViewMode: UINT): HRESULT {.stdcall.} - SelectItemRelative*: proc(self: ptr IShellFolderViewDual2, iRelative: int32): HRESULT {.stdcall.} + get_CurrentViewMode*: + proc(self: ptr IShellFolderViewDual2, pViewMode: ptr UINT): HRESULT {.stdcall.} + put_CurrentViewMode*: + proc(self: ptr IShellFolderViewDual2, ViewMode: UINT): HRESULT {.stdcall.} + SelectItemRelative*: + proc(self: ptr IShellFolderViewDual2, iRelative: int32): HRESULT {.stdcall.} + IShellFolderViewDual3* {.pure.} = object lpVtbl*: ptr IShellFolderViewDual3Vtbl + IShellFolderViewDual3Vtbl* {.pure, inheritable.} = object of IShellFolderViewDual2Vtbl - get_GroupBy*: proc(self: ptr IShellFolderViewDual3, pbstrGroupBy: ptr BSTR): HRESULT {.stdcall.} - put_GroupBy*: proc(self: ptr IShellFolderViewDual3, bstrGroupBy: BSTR): HRESULT {.stdcall.} - get_FolderFlags*: proc(self: ptr IShellFolderViewDual3, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - put_FolderFlags*: proc(self: ptr IShellFolderViewDual3, dwFlags: DWORD): HRESULT {.stdcall.} - get_SortColumns*: proc(self: ptr IShellFolderViewDual3, pbstrSortColumns: ptr BSTR): HRESULT {.stdcall.} - put_SortColumns*: proc(self: ptr IShellFolderViewDual3, bstrSortColumns: BSTR): HRESULT {.stdcall.} - put_IconSize*: proc(self: ptr IShellFolderViewDual3, iIconSize: int32): HRESULT {.stdcall.} - get_IconSize*: proc(self: ptr IShellFolderViewDual3, piIconSize: ptr int32): HRESULT {.stdcall.} - FilterView*: proc(self: ptr IShellFolderViewDual3, bstrFilterText: BSTR): HRESULT {.stdcall.} + get_GroupBy*: + proc(self: ptr IShellFolderViewDual3, pbstrGroupBy: ptr BSTR): HRESULT {.stdcall.} + put_GroupBy*: + proc(self: ptr IShellFolderViewDual3, bstrGroupBy: BSTR): HRESULT {.stdcall.} + get_FolderFlags*: + proc(self: ptr IShellFolderViewDual3, pdwFlags: ptr DWORD): HRESULT {.stdcall.} + put_FolderFlags*: + proc(self: ptr IShellFolderViewDual3, dwFlags: DWORD): HRESULT {.stdcall.} + get_SortColumns*: proc( + self: ptr IShellFolderViewDual3, pbstrSortColumns: ptr BSTR + ): HRESULT {.stdcall.} + put_SortColumns*: + proc(self: ptr IShellFolderViewDual3, bstrSortColumns: BSTR): HRESULT {.stdcall.} + put_IconSize*: + proc(self: ptr IShellFolderViewDual3, iIconSize: int32): HRESULT {.stdcall.} + get_IconSize*: + proc(self: ptr IShellFolderViewDual3, piIconSize: ptr int32): HRESULT {.stdcall.} + FilterView*: + proc(self: ptr IShellFolderViewDual3, bstrFilterText: BSTR): HRESULT {.stdcall.} + IShellDispatch* {.pure.} = object lpVtbl*: ptr IShellDispatchVtbl + IShellDispatchVtbl* {.pure, inheritable.} = object of IDispatchVtbl - get_Application*: proc(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - get_Parent*: proc(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} - NameSpace*: proc(self: ptr IShellDispatch, vDir: VARIANT, ppsdf: ptr ptr Folder): HRESULT {.stdcall.} - BrowseForFolder*: proc(self: ptr IShellDispatch, Hwnd: LONG, Title: BSTR, Options: LONG, RootFolder: VARIANT, ppsdf: ptr ptr Folder): HRESULT {.stdcall.} - Windows*: proc(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Application*: + proc(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + get_Parent*: + proc(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} + NameSpace*: proc( + self: ptr IShellDispatch, vDir: VARIANT, ppsdf: ptr ptr Folder + ): HRESULT {.stdcall.} + BrowseForFolder*: proc( + self: ptr IShellDispatch, + Hwnd: LONG, + Title: BSTR, + Options: LONG, + RootFolder: VARIANT, + ppsdf: ptr ptr Folder, + ): HRESULT {.stdcall.} + Windows*: + proc(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.stdcall.} Open*: proc(self: ptr IShellDispatch, vDir: VARIANT): HRESULT {.stdcall.} Explore*: proc(self: ptr IShellDispatch, vDir: VARIANT): HRESULT {.stdcall.} MinimizeAll*: proc(self: ptr IShellDispatch): HRESULT {.stdcall.} @@ -4949,3950 +5727,16888 @@ FindFiles*: proc(self: ptr IShellDispatch): HRESULT {.stdcall.} FindComputer*: proc(self: ptr IShellDispatch): HRESULT {.stdcall.} RefreshMenu*: proc(self: ptr IShellDispatch): HRESULT {.stdcall.} - ControlPanelItem*: proc(self: ptr IShellDispatch, bstrDir: BSTR): HRESULT {.stdcall.} + ControlPanelItem*: + proc(self: ptr IShellDispatch, bstrDir: BSTR): HRESULT {.stdcall.} + IShellDispatch2* {.pure.} = object lpVtbl*: ptr IShellDispatch2Vtbl + IShellDispatch2Vtbl* {.pure, inheritable.} = object of IShellDispatchVtbl - IsRestricted*: proc(self: ptr IShellDispatch2, Group: BSTR, Restriction: BSTR, plRestrictValue: ptr LONG): HRESULT {.stdcall.} - ShellExecute*: proc(self: ptr IShellDispatch2, File: BSTR, vArgs: VARIANT, vDir: VARIANT, vOperation: VARIANT, vShow: VARIANT): HRESULT {.stdcall.} - FindPrinter*: proc(self: ptr IShellDispatch2, name: BSTR, location: BSTR, model: BSTR): HRESULT {.stdcall.} - GetSystemInformation*: proc(self: ptr IShellDispatch2, name: BSTR, pv: ptr VARIANT): HRESULT {.stdcall.} - ServiceStart*: proc(self: ptr IShellDispatch2, ServiceName: BSTR, Persistent: VARIANT, pSuccess: ptr VARIANT): HRESULT {.stdcall.} - ServiceStop*: proc(self: ptr IShellDispatch2, ServiceName: BSTR, Persistent: VARIANT, pSuccess: ptr VARIANT): HRESULT {.stdcall.} - IsServiceRunning*: proc(self: ptr IShellDispatch2, ServiceName: BSTR, pRunning: ptr VARIANT): HRESULT {.stdcall.} - CanStartStopService*: proc(self: ptr IShellDispatch2, ServiceName: BSTR, pCanStartStop: ptr VARIANT): HRESULT {.stdcall.} - ShowBrowserBar*: proc(self: ptr IShellDispatch2, bstrClsid: BSTR, bShow: VARIANT, pSuccess: ptr VARIANT): HRESULT {.stdcall.} + IsRestricted*: proc( + self: ptr IShellDispatch2, + Group: BSTR, + Restriction: BSTR, + plRestrictValue: ptr LONG, + ): HRESULT {.stdcall.} + ShellExecute*: proc( + self: ptr IShellDispatch2, + File: BSTR, + vArgs: VARIANT, + vDir: VARIANT, + vOperation: VARIANT, + vShow: VARIANT, + ): HRESULT {.stdcall.} + FindPrinter*: proc( + self: ptr IShellDispatch2, name: BSTR, location: BSTR, model: BSTR + ): HRESULT {.stdcall.} + GetSystemInformation*: + proc(self: ptr IShellDispatch2, name: BSTR, pv: ptr VARIANT): HRESULT {.stdcall.} + ServiceStart*: proc( + self: ptr IShellDispatch2, + ServiceName: BSTR, + Persistent: VARIANT, + pSuccess: ptr VARIANT, + ): HRESULT {.stdcall.} + ServiceStop*: proc( + self: ptr IShellDispatch2, + ServiceName: BSTR, + Persistent: VARIANT, + pSuccess: ptr VARIANT, + ): HRESULT {.stdcall.} + IsServiceRunning*: proc( + self: ptr IShellDispatch2, ServiceName: BSTR, pRunning: ptr VARIANT + ): HRESULT {.stdcall.} + CanStartStopService*: proc( + self: ptr IShellDispatch2, ServiceName: BSTR, pCanStartStop: ptr VARIANT + ): HRESULT {.stdcall.} + ShowBrowserBar*: proc( + self: ptr IShellDispatch2, bstrClsid: BSTR, bShow: VARIANT, pSuccess: ptr VARIANT + ): HRESULT {.stdcall.} + IShellDispatch3* {.pure.} = object lpVtbl*: ptr IShellDispatch3Vtbl + IShellDispatch3Vtbl* {.pure, inheritable.} = object of IShellDispatch2Vtbl - AddToRecent*: proc(self: ptr IShellDispatch3, varFile: VARIANT, bstrCategory: BSTR): HRESULT {.stdcall.} + AddToRecent*: proc( + self: ptr IShellDispatch3, varFile: VARIANT, bstrCategory: BSTR + ): HRESULT {.stdcall.} + IShellDispatch4* {.pure.} = object lpVtbl*: ptr IShellDispatch4Vtbl + IShellDispatch4Vtbl* {.pure, inheritable.} = object of IShellDispatch3Vtbl WindowsSecurity*: proc(self: ptr IShellDispatch4): HRESULT {.stdcall.} ToggleDesktop*: proc(self: ptr IShellDispatch4): HRESULT {.stdcall.} - ExplorerPolicy*: proc(self: ptr IShellDispatch4, bstrPolicyName: BSTR, pValue: ptr VARIANT): HRESULT {.stdcall.} - GetSetting*: proc(self: ptr IShellDispatch4, lSetting: LONG, pResult: ptr VARIANT_BOOL): HRESULT {.stdcall.} + ExplorerPolicy*: proc( + self: ptr IShellDispatch4, bstrPolicyName: BSTR, pValue: ptr VARIANT + ): HRESULT {.stdcall.} + GetSetting*: proc( + self: ptr IShellDispatch4, lSetting: LONG, pResult: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + IShellDispatch5* {.pure.} = object lpVtbl*: ptr IShellDispatch5Vtbl + IShellDispatch5Vtbl* {.pure, inheritable.} = object of IShellDispatch4Vtbl WindowSwitcher*: proc(self: ptr IShellDispatch5): HRESULT {.stdcall.} + IShellDispatch6* {.pure.} = object lpVtbl*: ptr IShellDispatch6Vtbl + IShellDispatch6Vtbl* {.pure, inheritable.} = object of IShellDispatch5Vtbl SearchCommand*: proc(self: ptr IShellDispatch6): HRESULT {.stdcall.} + IFileSearchBand* {.pure.} = object lpVtbl*: ptr IFileSearchBandVtbl + IFileSearchBandVtbl* {.pure, inheritable.} = object of IDispatchVtbl SetFocus*: proc(self: ptr IFileSearchBand): HRESULT {.stdcall.} - SetSearchParameters*: proc(self: ptr IFileSearchBand, pbstrSearchID: ptr BSTR, bNavToResults: VARIANT_BOOL, pvarScope: ptr VARIANT, pvarQueryFile: ptr VARIANT): HRESULT {.stdcall.} - get_SearchID*: proc(self: ptr IFileSearchBand, pbstrSearchID: ptr BSTR): HRESULT {.stdcall.} - get_Scope*: proc(self: ptr IFileSearchBand, pvarScope: ptr VARIANT): HRESULT {.stdcall.} - get_QueryFile*: proc(self: ptr IFileSearchBand, pvarFile: ptr VARIANT): HRESULT {.stdcall.} + SetSearchParameters*: proc( + self: ptr IFileSearchBand, + pbstrSearchID: ptr BSTR, + bNavToResults: VARIANT_BOOL, + pvarScope: ptr VARIANT, + pvarQueryFile: ptr VARIANT, + ): HRESULT {.stdcall.} + get_SearchID*: + proc(self: ptr IFileSearchBand, pbstrSearchID: ptr BSTR): HRESULT {.stdcall.} + get_Scope*: + proc(self: ptr IFileSearchBand, pvarScope: ptr VARIANT): HRESULT {.stdcall.} + get_QueryFile*: + proc(self: ptr IFileSearchBand, pvarFile: ptr VARIANT): HRESULT {.stdcall.} + IWebWizardHost* {.pure.} = object lpVtbl*: ptr IWebWizardHostVtbl + IWebWizardHostVtbl* {.pure, inheritable.} = object of IDispatchVtbl FinalBack*: proc(self: ptr IWebWizardHost): HRESULT {.stdcall.} FinalNext*: proc(self: ptr IWebWizardHost): HRESULT {.stdcall.} Cancel*: proc(self: ptr IWebWizardHost): HRESULT {.stdcall.} put_Caption*: proc(self: ptr IWebWizardHost, bstrCaption: BSTR): HRESULT {.stdcall.} - get_Caption*: proc(self: ptr IWebWizardHost, pbstrCaption: ptr BSTR): HRESULT {.stdcall.} - put_Property*: proc(self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT): HRESULT {.stdcall.} - get_Property*: proc(self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT): HRESULT {.stdcall.} - SetWizardButtons*: proc(self: ptr IWebWizardHost, vfEnableBack: VARIANT_BOOL, vfEnableNext: VARIANT_BOOL, vfLastPage: VARIANT_BOOL): HRESULT {.stdcall.} - SetHeaderText*: proc(self: ptr IWebWizardHost, bstrHeaderTitle: BSTR, bstrHeaderSubtitle: BSTR): HRESULT {.stdcall.} + get_Caption*: + proc(self: ptr IWebWizardHost, pbstrCaption: ptr BSTR): HRESULT {.stdcall.} + put_Property*: proc( + self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT + ): HRESULT {.stdcall.} + get_Property*: proc( + self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT + ): HRESULT {.stdcall.} + SetWizardButtons*: proc( + self: ptr IWebWizardHost, + vfEnableBack: VARIANT_BOOL, + vfEnableNext: VARIANT_BOOL, + vfLastPage: VARIANT_BOOL, + ): HRESULT {.stdcall.} + SetHeaderText*: proc( + self: ptr IWebWizardHost, bstrHeaderTitle: BSTR, bstrHeaderSubtitle: BSTR + ): HRESULT {.stdcall.} + INewWDEvents* {.pure.} = object lpVtbl*: ptr INewWDEventsVtbl + INewWDEventsVtbl* {.pure, inheritable.} = object of IWebWizardHostVtbl - PassportAuthenticate*: proc(self: ptr INewWDEvents, bstrSignInUrl: BSTR, pvfAuthenitcated: ptr VARIANT_BOOL): HRESULT {.stdcall.} + PassportAuthenticate*: proc( + self: ptr INewWDEvents, bstrSignInUrl: BSTR, pvfAuthenitcated: ptr VARIANT_BOOL + ): HRESULT {.stdcall.} + IDataObjectAsyncCapability* {.pure.} = object lpVtbl*: ptr IDataObjectAsyncCapabilityVtbl + IDataObjectAsyncCapabilityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAsyncMode*: proc(self: ptr IDataObjectAsyncCapability, fDoOpAsync: WINBOOL): HRESULT {.stdcall.} - GetAsyncMode*: proc(self: ptr IDataObjectAsyncCapability, pfIsOpAsync: ptr WINBOOL): HRESULT {.stdcall.} - StartOperation*: proc(self: ptr IDataObjectAsyncCapability, pbcReserved: ptr IBindCtx): HRESULT {.stdcall.} - InOperation*: proc(self: ptr IDataObjectAsyncCapability, pfInAsyncOp: ptr WINBOOL): HRESULT {.stdcall.} - EndOperation*: proc(self: ptr IDataObjectAsyncCapability, hResult: HRESULT, pbcReserved: ptr IBindCtx, dwEffects: DWORD): HRESULT {.stdcall.} + SetAsyncMode*: proc( + self: ptr IDataObjectAsyncCapability, fDoOpAsync: WINBOOL + ): HRESULT {.stdcall.} + GetAsyncMode*: proc( + self: ptr IDataObjectAsyncCapability, pfIsOpAsync: ptr WINBOOL + ): HRESULT {.stdcall.} + StartOperation*: proc( + self: ptr IDataObjectAsyncCapability, pbcReserved: ptr IBindCtx + ): HRESULT {.stdcall.} + InOperation*: proc( + self: ptr IDataObjectAsyncCapability, pfInAsyncOp: ptr WINBOOL + ): HRESULT {.stdcall.} + EndOperation*: proc( + self: ptr IDataObjectAsyncCapability, + hResult: HRESULT, + pbcReserved: ptr IBindCtx, + dwEffects: DWORD, + ): HRESULT {.stdcall.} + IObjectArray* {.pure.} = object lpVtbl*: ptr IObjectArrayVtbl + IObjectArrayVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetCount*: proc(self: ptr IObjectArray, pcObjects: ptr UINT): HRESULT {.stdcall.} - GetAt*: proc(self: ptr IObjectArray, uiIndex: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetAt*: proc( + self: ptr IObjectArray, uiIndex: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IObjectCollection* {.pure.} = object lpVtbl*: ptr IObjectCollectionVtbl + IObjectCollectionVtbl* {.pure, inheritable.} = object of IObjectArrayVtbl - AddObject*: proc(self: ptr IObjectCollection, punk: ptr IUnknown): HRESULT {.stdcall.} - AddFromArray*: proc(self: ptr IObjectCollection, poaSource: ptr IObjectArray): HRESULT {.stdcall.} - RemoveObjectAt*: proc(self: ptr IObjectCollection, uiIndex: UINT): HRESULT {.stdcall.} + AddObject*: + proc(self: ptr IObjectCollection, punk: ptr IUnknown): HRESULT {.stdcall.} + AddFromArray*: proc( + self: ptr IObjectCollection, poaSource: ptr IObjectArray + ): HRESULT {.stdcall.} + RemoveObjectAt*: + proc(self: ptr IObjectCollection, uiIndex: UINT): HRESULT {.stdcall.} Clear*: proc(self: ptr IObjectCollection): HRESULT {.stdcall.} + IExecuteCommand* {.pure.} = object lpVtbl*: ptr IExecuteCommandVtbl + IExecuteCommandVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetKeyState*: proc(self: ptr IExecuteCommand, grfKeyState: DWORD): HRESULT {.stdcall.} - SetParameters*: proc(self: ptr IExecuteCommand, pszParameters: LPCWSTR): HRESULT {.stdcall.} + SetKeyState*: + proc(self: ptr IExecuteCommand, grfKeyState: DWORD): HRESULT {.stdcall.} + SetParameters*: + proc(self: ptr IExecuteCommand, pszParameters: LPCWSTR): HRESULT {.stdcall.} SetPosition*: proc(self: ptr IExecuteCommand, pt: POINT): HRESULT {.stdcall.} SetShowWindow*: proc(self: ptr IExecuteCommand, nShow: int32): HRESULT {.stdcall.} - SetNoShowUI*: proc(self: ptr IExecuteCommand, fNoShowUI: WINBOOL): HRESULT {.stdcall.} - SetDirectory*: proc(self: ptr IExecuteCommand, pszDirectory: LPCWSTR): HRESULT {.stdcall.} + SetNoShowUI*: + proc(self: ptr IExecuteCommand, fNoShowUI: WINBOOL): HRESULT {.stdcall.} + SetDirectory*: + proc(self: ptr IExecuteCommand, pszDirectory: LPCWSTR): HRESULT {.stdcall.} Execute*: proc(self: ptr IExecuteCommand): HRESULT {.stdcall.} + IRunnableTask* {.pure.} = object lpVtbl*: ptr IRunnableTaskVtbl + IRunnableTaskVtbl* {.pure, inheritable.} = object of IUnknownVtbl Run*: proc(self: ptr IRunnableTask): HRESULT {.stdcall.} Kill*: proc(self: ptr IRunnableTask, bWait: WINBOOL): HRESULT {.stdcall.} Suspend*: proc(self: ptr IRunnableTask): HRESULT {.stdcall.} Resume*: proc(self: ptr IRunnableTask): HRESULT {.stdcall.} IsRunning*: proc(self: ptr IRunnableTask): ULONG {.stdcall.} + IShellTaskScheduler* {.pure.} = object lpVtbl*: ptr IShellTaskSchedulerVtbl + IShellTaskSchedulerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddTask*: proc(self: ptr IShellTaskScheduler, prt: ptr IRunnableTask, rtoid: REFTASKOWNERID, lParam: DWORD_PTR, dwPriority: DWORD): HRESULT {.stdcall.} - RemoveTasks*: proc(self: ptr IShellTaskScheduler, rtoid: REFTASKOWNERID, lParam: DWORD_PTR, bWaitIfRunning: WINBOOL): HRESULT {.stdcall.} - CountTasks*: proc(self: ptr IShellTaskScheduler, rtoid: REFTASKOWNERID): UINT {.stdcall.} - Status*: proc(self: ptr IShellTaskScheduler, dwReleaseStatus: DWORD, dwThreadTimeout: DWORD): HRESULT {.stdcall.} + AddTask*: proc( + self: ptr IShellTaskScheduler, + prt: ptr IRunnableTask, + rtoid: REFTASKOWNERID, + lParam: DWORD_PTR, + dwPriority: DWORD, + ): HRESULT {.stdcall.} + RemoveTasks*: proc( + self: ptr IShellTaskScheduler, + rtoid: REFTASKOWNERID, + lParam: DWORD_PTR, + bWaitIfRunning: WINBOOL, + ): HRESULT {.stdcall.} + CountTasks*: + proc(self: ptr IShellTaskScheduler, rtoid: REFTASKOWNERID): UINT {.stdcall.} + Status*: proc( + self: ptr IShellTaskScheduler, dwReleaseStatus: DWORD, dwThreadTimeout: DWORD + ): HRESULT {.stdcall.} + IQueryCodePage* {.pure.} = object lpVtbl*: ptr IQueryCodePageVtbl + IQueryCodePageVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCodePage*: proc(self: ptr IQueryCodePage, puiCodePage: ptr UINT): HRESULT {.stdcall.} + GetCodePage*: + proc(self: ptr IQueryCodePage, puiCodePage: ptr UINT): HRESULT {.stdcall.} SetCodePage*: proc(self: ptr IQueryCodePage, uiCodePage: UINT): HRESULT {.stdcall.} + IPersistFolder2* {.pure.} = object lpVtbl*: ptr IPersistFolder2Vtbl + IPersistFolder2Vtbl* {.pure, inheritable.} = object of IPersistFolderVtbl - GetCurFolder*: proc(self: ptr IPersistFolder2, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + GetCurFolder*: + proc(self: ptr IPersistFolder2, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + IPersistFolder3* {.pure.} = object lpVtbl*: ptr IPersistFolder3Vtbl + IPersistFolder3Vtbl* {.pure, inheritable.} = object of IPersistFolder2Vtbl - InitializeEx*: proc(self: ptr IPersistFolder3, pbc: ptr IBindCtx, pidlRoot: PCIDLIST_ABSOLUTE, ppfti: ptr PERSIST_FOLDER_TARGET_INFO): HRESULT {.stdcall.} - GetFolderTargetInfo*: proc(self: ptr IPersistFolder3, ppfti: ptr PERSIST_FOLDER_TARGET_INFO): HRESULT {.stdcall.} + InitializeEx*: proc( + self: ptr IPersistFolder3, + pbc: ptr IBindCtx, + pidlRoot: PCIDLIST_ABSOLUTE, + ppfti: ptr PERSIST_FOLDER_TARGET_INFO, + ): HRESULT {.stdcall.} + GetFolderTargetInfo*: proc( + self: ptr IPersistFolder3, ppfti: ptr PERSIST_FOLDER_TARGET_INFO + ): HRESULT {.stdcall.} + IPersistIDList* {.pure.} = object lpVtbl*: ptr IPersistIDListVtbl + IPersistIDListVtbl* {.pure, inheritable.} = object of IPersistVtbl - SetIDList*: proc(self: ptr IPersistIDList, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} - GetIDList*: proc(self: ptr IPersistIDList, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + SetIDList*: + proc(self: ptr IPersistIDList, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + GetIDList*: + proc(self: ptr IPersistIDList, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + IEnumFullIDList* {.pure.} = object lpVtbl*: ptr IEnumFullIDListVtbl + IEnumFullIDListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumFullIDList, celt: ULONG, rgelt: ptr PIDLIST_ABSOLUTE, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumFullIDList, + celt: ULONG, + rgelt: ptr PIDLIST_ABSOLUTE, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumFullIDList, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumFullIDList): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumFullIDList, ppenum: ptr ptr IEnumFullIDList): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumFullIDList, ppenum: ptr ptr IEnumFullIDList): HRESULT {. + stdcall + .} + IObjectWithFolderEnumMode* {.pure.} = object lpVtbl*: ptr IObjectWithFolderEnumModeVtbl + IObjectWithFolderEnumModeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetMode*: proc(self: ptr IObjectWithFolderEnumMode, feMode: FOLDER_ENUM_MODE): HRESULT {.stdcall.} - GetMode*: proc(self: ptr IObjectWithFolderEnumMode, pfeMode: ptr FOLDER_ENUM_MODE): HRESULT {.stdcall.} + SetMode*: proc( + self: ptr IObjectWithFolderEnumMode, feMode: FOLDER_ENUM_MODE + ): HRESULT {.stdcall.} + GetMode*: proc( + self: ptr IObjectWithFolderEnumMode, pfeMode: ptr FOLDER_ENUM_MODE + ): HRESULT {.stdcall.} + IParseAndCreateItem* {.pure.} = object lpVtbl*: ptr IParseAndCreateItemVtbl + IParseAndCreateItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetItem*: proc(self: ptr IParseAndCreateItem, psi: ptr IShellItem): HRESULT {.stdcall.} - GetItem*: proc(self: ptr IParseAndCreateItem, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + SetItem*: + proc(self: ptr IParseAndCreateItem, psi: ptr IShellItem): HRESULT {.stdcall.} + GetItem*: proc( + self: ptr IParseAndCreateItem, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IShellFolder2* {.pure.} = object lpVtbl*: ptr IShellFolder2Vtbl + IShellFolder2Vtbl* {.pure, inheritable.} = object of IShellFolderVtbl - GetDefaultSearchGUID*: proc(self: ptr IShellFolder2, pguid: ptr GUID): HRESULT {.stdcall.} - EnumSearches*: proc(self: ptr IShellFolder2, ppenum: ptr ptr IEnumExtraSearch): HRESULT {.stdcall.} - GetDefaultColumn*: proc(self: ptr IShellFolder2, dwRes: DWORD, pSort: ptr ULONG, pDisplay: ptr ULONG): HRESULT {.stdcall.} - GetDefaultColumnState*: proc(self: ptr IShellFolder2, iColumn: UINT, pcsFlags: ptr SHCOLSTATEF): HRESULT {.stdcall.} - GetDetailsEx*: proc(self: ptr IShellFolder2, pidl: PCUITEMID_CHILD, pscid: ptr SHCOLUMNID, pv: ptr VARIANT): HRESULT {.stdcall.} - GetDetailsOf*: proc(self: ptr IShellFolder2, pidl: PCUITEMID_CHILD, iColumn: UINT, psd: ptr SHELLDETAILS): HRESULT {.stdcall.} - MapColumnToSCID*: proc(self: ptr IShellFolder2, iColumn: UINT, pscid: ptr SHCOLUMNID): HRESULT {.stdcall.} + GetDefaultSearchGUID*: + proc(self: ptr IShellFolder2, pguid: ptr GUID): HRESULT {.stdcall.} + EnumSearches*: proc( + self: ptr IShellFolder2, ppenum: ptr ptr IEnumExtraSearch + ): HRESULT {.stdcall.} + GetDefaultColumn*: proc( + self: ptr IShellFolder2, dwRes: DWORD, pSort: ptr ULONG, pDisplay: ptr ULONG + ): HRESULT {.stdcall.} + GetDefaultColumnState*: proc( + self: ptr IShellFolder2, iColumn: UINT, pcsFlags: ptr SHCOLSTATEF + ): HRESULT {.stdcall.} + GetDetailsEx*: proc( + self: ptr IShellFolder2, + pidl: PCUITEMID_CHILD, + pscid: ptr SHCOLUMNID, + pv: ptr VARIANT, + ): HRESULT {.stdcall.} + GetDetailsOf*: proc( + self: ptr IShellFolder2, + pidl: PCUITEMID_CHILD, + iColumn: UINT, + psd: ptr SHELLDETAILS, + ): HRESULT {.stdcall.} + MapColumnToSCID*: proc( + self: ptr IShellFolder2, iColumn: UINT, pscid: ptr SHCOLUMNID + ): HRESULT {.stdcall.} + IFolderViewOptions* {.pure.} = object lpVtbl*: ptr IFolderViewOptionsVtbl + IFolderViewOptionsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetFolderViewOptions*: proc(self: ptr IFolderViewOptions, fvoMask: FOLDERVIEWOPTIONS, fvoFlags: FOLDERVIEWOPTIONS): HRESULT {.stdcall.} - GetFolderViewOptions*: proc(self: ptr IFolderViewOptions, pfvoFlags: ptr FOLDERVIEWOPTIONS): HRESULT {.stdcall.} + SetFolderViewOptions*: proc( + self: ptr IFolderViewOptions, + fvoMask: FOLDERVIEWOPTIONS, + fvoFlags: FOLDERVIEWOPTIONS, + ): HRESULT {.stdcall.} + GetFolderViewOptions*: proc( + self: ptr IFolderViewOptions, pfvoFlags: ptr FOLDERVIEWOPTIONS + ): HRESULT {.stdcall.} + IShellView2* {.pure.} = object lpVtbl*: ptr IShellView2Vtbl + IShellView2Vtbl* {.pure, inheritable.} = object of IShellViewVtbl - GetView*: proc(self: ptr IShellView2, pvid: ptr SHELLVIEWID, uView: ULONG): HRESULT {.stdcall.} - CreateViewWindow2*: proc(self: ptr IShellView2, lpParams: LPSV2CVW2_PARAMS): HRESULT {.stdcall.} - HandleRename*: proc(self: ptr IShellView2, pidlNew: PCUITEMID_CHILD): HRESULT {.stdcall.} - SelectAndPositionItem*: proc(self: ptr IShellView2, pidlItem: PCUITEMID_CHILD, uFlags: UINT, ppt: ptr POINT): HRESULT {.stdcall.} + GetView*: proc(self: ptr IShellView2, pvid: ptr SHELLVIEWID, uView: ULONG): HRESULT {. + stdcall + .} + CreateViewWindow2*: + proc(self: ptr IShellView2, lpParams: LPSV2CVW2_PARAMS): HRESULT {.stdcall.} + HandleRename*: + proc(self: ptr IShellView2, pidlNew: PCUITEMID_CHILD): HRESULT {.stdcall.} + SelectAndPositionItem*: proc( + self: ptr IShellView2, pidlItem: PCUITEMID_CHILD, uFlags: UINT, ppt: ptr POINT + ): HRESULT {.stdcall.} + IShellView3* {.pure.} = object lpVtbl*: ptr IShellView3Vtbl + IShellView3Vtbl* {.pure, inheritable.} = object of IShellView2Vtbl - CreateViewWindow3*: proc(self: ptr IShellView3, psbOwner: ptr IShellBrowser, psvPrev: ptr IShellView, dwViewFlags: SV3CVW3_FLAGS, dwMask: FOLDERFLAGS, dwFlags: FOLDERFLAGS, fvMode: FOLDERVIEWMODE, pvid: ptr SHELLVIEWID, prcView: ptr RECT, phwndView: ptr HWND): HRESULT {.stdcall.} + CreateViewWindow3*: proc( + self: ptr IShellView3, + psbOwner: ptr IShellBrowser, + psvPrev: ptr IShellView, + dwViewFlags: SV3CVW3_FLAGS, + dwMask: FOLDERFLAGS, + dwFlags: FOLDERFLAGS, + fvMode: FOLDERVIEWMODE, + pvid: ptr SHELLVIEWID, + prcView: ptr RECT, + phwndView: ptr HWND, + ): HRESULT {.stdcall.} + IFolderView* {.pure.} = object lpVtbl*: ptr IFolderViewVtbl + IFolderViewVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentViewMode*: proc(self: ptr IFolderView, pViewMode: ptr UINT): HRESULT {.stdcall.} - SetCurrentViewMode*: proc(self: ptr IFolderView, ViewMode: UINT): HRESULT {.stdcall.} - GetFolder*: proc(self: ptr IFolderView, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - Item*: proc(self: ptr IFolderView, iItemIndex: int32, ppidl: ptr PITEMID_CHILD): HRESULT {.stdcall.} - ItemCount*: proc(self: ptr IFolderView, uFlags: UINT, pcItems: ptr int32): HRESULT {.stdcall.} - Items*: proc(self: ptr IFolderView, uFlags: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetSelectionMarkedItem*: proc(self: ptr IFolderView, piItem: ptr int32): HRESULT {.stdcall.} + GetCurrentViewMode*: + proc(self: ptr IFolderView, pViewMode: ptr UINT): HRESULT {.stdcall.} + SetCurrentViewMode*: + proc(self: ptr IFolderView, ViewMode: UINT): HRESULT {.stdcall.} + GetFolder*: + proc(self: ptr IFolderView, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + Item*: proc( + self: ptr IFolderView, iItemIndex: int32, ppidl: ptr PITEMID_CHILD + ): HRESULT {.stdcall.} + ItemCount*: + proc(self: ptr IFolderView, uFlags: UINT, pcItems: ptr int32): HRESULT {.stdcall.} + Items*: proc( + self: ptr IFolderView, uFlags: UINT, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetSelectionMarkedItem*: + proc(self: ptr IFolderView, piItem: ptr int32): HRESULT {.stdcall.} GetFocusedItem*: proc(self: ptr IFolderView, piItem: ptr int32): HRESULT {.stdcall.} - GetItemPosition*: proc(self: ptr IFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT): HRESULT {.stdcall.} + GetItemPosition*: proc( + self: ptr IFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT + ): HRESULT {.stdcall.} GetSpacing*: proc(self: ptr IFolderView, ppt: ptr POINT): HRESULT {.stdcall.} GetDefaultSpacing*: proc(self: ptr IFolderView, ppt: ptr POINT): HRESULT {.stdcall.} GetAutoArrange*: proc(self: ptr IFolderView): HRESULT {.stdcall.} - SelectItem*: proc(self: ptr IFolderView, iItem: int32, dwFlags: DWORD): HRESULT {.stdcall.} - SelectAndPositionItems*: proc(self: ptr IFolderView, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, apt: ptr POINT, dwFlags: DWORD): HRESULT {.stdcall.} + SelectItem*: + proc(self: ptr IFolderView, iItem: int32, dwFlags: DWORD): HRESULT {.stdcall.} + SelectAndPositionItems*: proc( + self: ptr IFolderView, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + apt: ptr POINT, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + ISearchBoxInfo* {.pure.} = object lpVtbl*: ptr ISearchBoxInfoVtbl + ISearchBoxInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCondition*: proc(self: ptr ISearchBoxInfo, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetCondition*: proc( + self: ptr ISearchBoxInfo, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} GetText*: proc(self: ptr ISearchBoxInfo, ppsz: ptr LPWSTR): HRESULT {.stdcall.} + IEnumShellItems* {.pure.} = object lpVtbl*: ptr IEnumShellItemsVtbl + IEnumShellItemsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumShellItems, celt: ULONG, rgelt: ptr ptr IShellItem, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumShellItems, + celt: ULONG, + rgelt: ptr ptr IShellItem, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumShellItems, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumShellItems): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumShellItems, ppenum: ptr ptr IEnumShellItems): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumShellItems, ppenum: ptr ptr IEnumShellItems): HRESULT {. + stdcall + .} + IShellItemArray* {.pure.} = object lpVtbl*: ptr IShellItemArrayVtbl + IShellItemArrayVtbl* {.pure, inheritable.} = object of IUnknownVtbl - BindToHandler*: proc(self: ptr IShellItemArray, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppvOut: ptr pointer): HRESULT {.stdcall.} - GetPropertyStore*: proc(self: ptr IShellItemArray, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyDescriptionList*: proc(self: ptr IShellItemArray, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetAttributes*: proc(self: ptr IShellItemArray, AttribFlags: SIATTRIBFLAGS, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.stdcall.} - GetCount*: proc(self: ptr IShellItemArray, pdwNumItems: ptr DWORD): HRESULT {.stdcall.} - GetItemAt*: proc(self: ptr IShellItemArray, dwIndex: DWORD, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} - EnumItems*: proc(self: ptr IShellItemArray, ppenumShellItems: ptr ptr IEnumShellItems): HRESULT {.stdcall.} + BindToHandler*: proc( + self: ptr IShellItemArray, + pbc: ptr IBindCtx, + bhid: REFGUID, + riid: REFIID, + ppvOut: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyStore*: proc( + self: ptr IShellItemArray, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyDescriptionList*: proc( + self: ptr IShellItemArray, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetAttributes*: proc( + self: ptr IShellItemArray, + AttribFlags: SIATTRIBFLAGS, + sfgaoMask: SFGAOF, + psfgaoAttribs: ptr SFGAOF, + ): HRESULT {.stdcall.} + GetCount*: + proc(self: ptr IShellItemArray, pdwNumItems: ptr DWORD): HRESULT {.stdcall.} + GetItemAt*: proc( + self: ptr IShellItemArray, dwIndex: DWORD, ppsi: ptr ptr IShellItem + ): HRESULT {.stdcall.} + EnumItems*: proc( + self: ptr IShellItemArray, ppenumShellItems: ptr ptr IEnumShellItems + ): HRESULT {.stdcall.} + IFolderView2* {.pure.} = object lpVtbl*: ptr IFolderView2Vtbl + IFolderView2Vtbl* {.pure, inheritable.} = object of IFolderViewVtbl - SetGroupBy*: proc(self: ptr IFolderView2, key: REFPROPERTYKEY, fAscending: WINBOOL): HRESULT {.stdcall.} - GetGroupBy*: proc(self: ptr IFolderView2, pkey: ptr PROPERTYKEY, pfAscending: ptr WINBOOL): HRESULT {.stdcall.} - SetViewProperty*: proc(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT): HRESULT {.stdcall.} - GetViewProperty*: proc(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, propkey: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - SetTileViewProperties*: proc(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR): HRESULT {.stdcall.} - SetExtendedTileViewProperties*: proc(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR): HRESULT {.stdcall.} - SetText*: proc(self: ptr IFolderView2, iType: FVTEXTTYPE, pwszText: LPCWSTR): HRESULT {.stdcall.} - SetCurrentFolderFlags*: proc(self: ptr IFolderView2, dwMask: DWORD, dwFlags: DWORD): HRESULT {.stdcall.} - GetCurrentFolderFlags*: proc(self: ptr IFolderView2, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - GetSortColumnCount*: proc(self: ptr IFolderView2, pcColumns: ptr int32): HRESULT {.stdcall.} - SetSortColumns*: proc(self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32): HRESULT {.stdcall.} - GetSortColumns*: proc(self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32): HRESULT {.stdcall.} - GetItem*: proc(self: ptr IFolderView2, iItem: int32, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetVisibleItem*: proc(self: ptr IFolderView2, iStart: int32, fPrevious: WINBOOL, piItem: ptr int32): HRESULT {.stdcall.} - GetSelectedItem*: proc(self: ptr IFolderView2, iStart: int32, piItem: ptr int32): HRESULT {.stdcall.} - GetSelection*: proc(self: ptr IFolderView2, fNoneImpliesFolder: WINBOOL, ppsia: ptr ptr IShellItemArray): HRESULT {.stdcall.} - GetSelectionState*: proc(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - InvokeVerbOnSelection*: proc(self: ptr IFolderView2, pszVerb: LPCSTR): HRESULT {.stdcall.} - SetViewModeAndIconSize*: proc(self: ptr IFolderView2, uViewMode: FOLDERVIEWMODE, iImageSize: int32): HRESULT {.stdcall.} - GetViewModeAndIconSize*: proc(self: ptr IFolderView2, puViewMode: ptr FOLDERVIEWMODE, piImageSize: ptr int32): HRESULT {.stdcall.} - SetGroupSubsetCount*: proc(self: ptr IFolderView2, cVisibleRows: UINT): HRESULT {.stdcall.} - GetGroupSubsetCount*: proc(self: ptr IFolderView2, pcVisibleRows: ptr UINT): HRESULT {.stdcall.} + SetGroupBy*: proc( + self: ptr IFolderView2, key: REFPROPERTYKEY, fAscending: WINBOOL + ): HRESULT {.stdcall.} + GetGroupBy*: proc( + self: ptr IFolderView2, pkey: ptr PROPERTYKEY, pfAscending: ptr WINBOOL + ): HRESULT {.stdcall.} + SetViewProperty*: proc( + self: ptr IFolderView2, + pidl: PCUITEMID_CHILD, + propkey: REFPROPERTYKEY, + propvar: REFPROPVARIANT, + ): HRESULT {.stdcall.} + GetViewProperty*: proc( + self: ptr IFolderView2, + pidl: PCUITEMID_CHILD, + propkey: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + SetTileViewProperties*: proc( + self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR + ): HRESULT {.stdcall.} + SetExtendedTileViewProperties*: proc( + self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR + ): HRESULT {.stdcall.} + SetText*: proc( + self: ptr IFolderView2, iType: FVTEXTTYPE, pwszText: LPCWSTR + ): HRESULT {.stdcall.} + SetCurrentFolderFlags*: + proc(self: ptr IFolderView2, dwMask: DWORD, dwFlags: DWORD): HRESULT {.stdcall.} + GetCurrentFolderFlags*: + proc(self: ptr IFolderView2, pdwFlags: ptr DWORD): HRESULT {.stdcall.} + GetSortColumnCount*: + proc(self: ptr IFolderView2, pcColumns: ptr int32): HRESULT {.stdcall.} + SetSortColumns*: proc( + self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32 + ): HRESULT {.stdcall.} + GetSortColumns*: proc( + self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32 + ): HRESULT {.stdcall.} + GetItem*: proc( + self: ptr IFolderView2, iItem: int32, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetVisibleItem*: proc( + self: ptr IFolderView2, iStart: int32, fPrevious: WINBOOL, piItem: ptr int32 + ): HRESULT {.stdcall.} + GetSelectedItem*: proc( + self: ptr IFolderView2, iStart: int32, piItem: ptr int32 + ): HRESULT {.stdcall.} + GetSelection*: proc( + self: ptr IFolderView2, + fNoneImpliesFolder: WINBOOL, + ppsia: ptr ptr IShellItemArray, + ): HRESULT {.stdcall.} + GetSelectionState*: proc( + self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pdwFlags: ptr DWORD + ): HRESULT {.stdcall.} + InvokeVerbOnSelection*: + proc(self: ptr IFolderView2, pszVerb: LPCSTR): HRESULT {.stdcall.} + SetViewModeAndIconSize*: proc( + self: ptr IFolderView2, uViewMode: FOLDERVIEWMODE, iImageSize: int32 + ): HRESULT {.stdcall.} + GetViewModeAndIconSize*: proc( + self: ptr IFolderView2, puViewMode: ptr FOLDERVIEWMODE, piImageSize: ptr int32 + ): HRESULT {.stdcall.} + SetGroupSubsetCount*: + proc(self: ptr IFolderView2, cVisibleRows: UINT): HRESULT {.stdcall.} + GetGroupSubsetCount*: + proc(self: ptr IFolderView2, pcVisibleRows: ptr UINT): HRESULT {.stdcall.} SetRedraw*: proc(self: ptr IFolderView2, fRedrawOn: WINBOOL): HRESULT {.stdcall.} IsMoveInSameFolder*: proc(self: ptr IFolderView2): HRESULT {.stdcall.} DoRename*: proc(self: ptr IFolderView2): HRESULT {.stdcall.} + IFolderViewSettings* {.pure.} = object lpVtbl*: ptr IFolderViewSettingsVtbl + IFolderViewSettingsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetColumnPropertyList*: proc(self: ptr IFolderViewSettings, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetGroupByProperty*: proc(self: ptr IFolderViewSettings, pkey: ptr PROPERTYKEY, pfGroupAscending: ptr WINBOOL): HRESULT {.stdcall.} - GetViewMode*: proc(self: ptr IFolderViewSettings, plvm: ptr FOLDERLOGICALVIEWMODE): HRESULT {.stdcall.} - GetIconSize*: proc(self: ptr IFolderViewSettings, puIconSize: ptr UINT): HRESULT {.stdcall.} - GetFolderFlags*: proc(self: ptr IFolderViewSettings, pfolderMask: ptr FOLDERFLAGS, pfolderFlags: ptr FOLDERFLAGS): HRESULT {.stdcall.} - GetSortColumns*: proc(self: ptr IFolderViewSettings, rgSortColumns: ptr SORTCOLUMN, cColumnsIn: UINT, pcColumnsOut: ptr UINT): HRESULT {.stdcall.} - GetGroupSubsetCount*: proc(self: ptr IFolderViewSettings, pcVisibleRows: ptr UINT): HRESULT {.stdcall.} + GetColumnPropertyList*: proc( + self: ptr IFolderViewSettings, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetGroupByProperty*: proc( + self: ptr IFolderViewSettings, + pkey: ptr PROPERTYKEY, + pfGroupAscending: ptr WINBOOL, + ): HRESULT {.stdcall.} + GetViewMode*: proc( + self: ptr IFolderViewSettings, plvm: ptr FOLDERLOGICALVIEWMODE + ): HRESULT {.stdcall.} + GetIconSize*: + proc(self: ptr IFolderViewSettings, puIconSize: ptr UINT): HRESULT {.stdcall.} + GetFolderFlags*: proc( + self: ptr IFolderViewSettings, + pfolderMask: ptr FOLDERFLAGS, + pfolderFlags: ptr FOLDERFLAGS, + ): HRESULT {.stdcall.} + GetSortColumns*: proc( + self: ptr IFolderViewSettings, + rgSortColumns: ptr SORTCOLUMN, + cColumnsIn: UINT, + pcColumnsOut: ptr UINT, + ): HRESULT {.stdcall.} + GetGroupSubsetCount*: + proc(self: ptr IFolderViewSettings, pcVisibleRows: ptr UINT): HRESULT {.stdcall.} + IPreviewHandlerVisuals* {.pure.} = object lpVtbl*: ptr IPreviewHandlerVisualsVtbl + IPreviewHandlerVisualsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetBackgroundColor*: proc(self: ptr IPreviewHandlerVisuals, color: COLORREF): HRESULT {.stdcall.} - SetFont*: proc(self: ptr IPreviewHandlerVisuals, plf: ptr LOGFONTW): HRESULT {.stdcall.} - SetTextColor*: proc(self: ptr IPreviewHandlerVisuals, color: COLORREF): HRESULT {.stdcall.} + SetBackgroundColor*: + proc(self: ptr IPreviewHandlerVisuals, color: COLORREF): HRESULT {.stdcall.} + SetFont*: + proc(self: ptr IPreviewHandlerVisuals, plf: ptr LOGFONTW): HRESULT {.stdcall.} + SetTextColor*: + proc(self: ptr IPreviewHandlerVisuals, color: COLORREF): HRESULT {.stdcall.} + IVisualProperties* {.pure.} = object lpVtbl*: ptr IVisualPropertiesVtbl + IVisualPropertiesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetWatermark*: proc(self: ptr IVisualProperties, hbmp: HBITMAP, vpwf: VPWATERMARKFLAGS): HRESULT {.stdcall.} - SetColor*: proc(self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, cr: COLORREF): HRESULT {.stdcall.} - GetColor*: proc(self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, pcr: ptr COLORREF): HRESULT {.stdcall.} - SetItemHeight*: proc(self: ptr IVisualProperties, cyItemInPixels: int32): HRESULT {.stdcall.} - GetItemHeight*: proc(self: ptr IVisualProperties, cyItemInPixels: ptr int32): HRESULT {.stdcall.} - SetFont*: proc(self: ptr IVisualProperties, plf: ptr LOGFONTW, bRedraw: WINBOOL): HRESULT {.stdcall.} + SetWatermark*: proc( + self: ptr IVisualProperties, hbmp: HBITMAP, vpwf: VPWATERMARKFLAGS + ): HRESULT {.stdcall.} + SetColor*: proc( + self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, cr: COLORREF + ): HRESULT {.stdcall.} + GetColor*: proc( + self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, pcr: ptr COLORREF + ): HRESULT {.stdcall.} + SetItemHeight*: + proc(self: ptr IVisualProperties, cyItemInPixels: int32): HRESULT {.stdcall.} + GetItemHeight*: + proc(self: ptr IVisualProperties, cyItemInPixels: ptr int32): HRESULT {.stdcall.} + SetFont*: proc( + self: ptr IVisualProperties, plf: ptr LOGFONTW, bRedraw: WINBOOL + ): HRESULT {.stdcall.} GetFont*: proc(self: ptr IVisualProperties, plf: ptr LOGFONTW): HRESULT {.stdcall.} - SetTheme*: proc(self: ptr IVisualProperties, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR): HRESULT {.stdcall.} + SetTheme*: proc( + self: ptr IVisualProperties, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR + ): HRESULT {.stdcall.} + ICommDlgBrowser3* {.pure.} = object lpVtbl*: ptr ICommDlgBrowser3Vtbl + ICommDlgBrowser3Vtbl* {.pure, inheritable.} = object of ICommDlgBrowser2Vtbl - OnColumnClicked*: proc(self: ptr ICommDlgBrowser3, ppshv: ptr IShellView, iColumn: int32): HRESULT {.stdcall.} - GetCurrentFilter*: proc(self: ptr ICommDlgBrowser3, pszFileSpec: LPWSTR, cchFileSpec: int32): HRESULT {.stdcall.} - OnPreViewCreated*: proc(self: ptr ICommDlgBrowser3, ppshv: ptr IShellView): HRESULT {.stdcall.} + OnColumnClicked*: proc( + self: ptr ICommDlgBrowser3, ppshv: ptr IShellView, iColumn: int32 + ): HRESULT {.stdcall.} + GetCurrentFilter*: proc( + self: ptr ICommDlgBrowser3, pszFileSpec: LPWSTR, cchFileSpec: int32 + ): HRESULT {.stdcall.} + OnPreViewCreated*: + proc(self: ptr ICommDlgBrowser3, ppshv: ptr IShellView): HRESULT {.stdcall.} + IColumnManager* {.pure.} = object lpVtbl*: ptr IColumnManagerVtbl + IColumnManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetColumnInfo*: proc(self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO): HRESULT {.stdcall.} - GetColumnInfo*: proc(self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO): HRESULT {.stdcall.} - GetColumnCount*: proc(self: ptr IColumnManager, dwFlags: CM_ENUM_FLAGS, puCount: ptr UINT): HRESULT {.stdcall.} - GetColumns*: proc(self: ptr IColumnManager, dwFlags: CM_ENUM_FLAGS, rgkeyOrder: ptr PROPERTYKEY, cColumns: UINT): HRESULT {.stdcall.} - SetColumns*: proc(self: ptr IColumnManager, rgkeyOrder: ptr PROPERTYKEY, cVisible: UINT): HRESULT {.stdcall.} + SetColumnInfo*: proc( + self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO + ): HRESULT {.stdcall.} + GetColumnInfo*: proc( + self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO + ): HRESULT {.stdcall.} + GetColumnCount*: proc( + self: ptr IColumnManager, dwFlags: CM_ENUM_FLAGS, puCount: ptr UINT + ): HRESULT {.stdcall.} + GetColumns*: proc( + self: ptr IColumnManager, + dwFlags: CM_ENUM_FLAGS, + rgkeyOrder: ptr PROPERTYKEY, + cColumns: UINT, + ): HRESULT {.stdcall.} + SetColumns*: proc( + self: ptr IColumnManager, rgkeyOrder: ptr PROPERTYKEY, cVisible: UINT + ): HRESULT {.stdcall.} + IFolderFilterSite* {.pure.} = object lpVtbl*: ptr IFolderFilterSiteVtbl + IFolderFilterSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetFilter*: proc(self: ptr IFolderFilterSite, punk: ptr IUnknown): HRESULT {.stdcall.} + SetFilter*: + proc(self: ptr IFolderFilterSite, punk: ptr IUnknown): HRESULT {.stdcall.} + IFolderFilter* {.pure.} = object lpVtbl*: ptr IFolderFilterVtbl + IFolderFilterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ShouldShow*: proc(self: ptr IFolderFilter, psf: ptr IShellFolder, pidlFolder: PCIDLIST_ABSOLUTE, pidlItem: PCUITEMID_CHILD): HRESULT {.stdcall.} - GetEnumFlags*: proc(self: ptr IFolderFilter, psf: ptr IShellFolder, pidlFolder: PCIDLIST_ABSOLUTE, phwnd: ptr HWND, pgrfFlags: ptr DWORD): HRESULT {.stdcall.} + ShouldShow*: proc( + self: ptr IFolderFilter, + psf: ptr IShellFolder, + pidlFolder: PCIDLIST_ABSOLUTE, + pidlItem: PCUITEMID_CHILD, + ): HRESULT {.stdcall.} + GetEnumFlags*: proc( + self: ptr IFolderFilter, + psf: ptr IShellFolder, + pidlFolder: PCIDLIST_ABSOLUTE, + phwnd: ptr HWND, + pgrfFlags: ptr DWORD, + ): HRESULT {.stdcall.} + IInputObjectSite* {.pure.} = object lpVtbl*: ptr IInputObjectSiteVtbl + IInputObjectSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnFocusChangeIS*: proc(self: ptr IInputObjectSite, punkObj: ptr IUnknown, fSetFocus: WINBOOL): HRESULT {.stdcall.} + OnFocusChangeIS*: proc( + self: ptr IInputObjectSite, punkObj: ptr IUnknown, fSetFocus: WINBOOL + ): HRESULT {.stdcall.} + IInputObject* {.pure.} = object lpVtbl*: ptr IInputObjectVtbl + IInputObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - UIActivateIO*: proc(self: ptr IInputObject, fActivate: WINBOOL, pMsg: ptr MSG): HRESULT {.stdcall.} + UIActivateIO*: proc( + self: ptr IInputObject, fActivate: WINBOOL, pMsg: ptr MSG + ): HRESULT {.stdcall.} HasFocusIO*: proc(self: ptr IInputObject): HRESULT {.stdcall.} - TranslateAcceleratorIO*: proc(self: ptr IInputObject, pMsg: ptr MSG): HRESULT {.stdcall.} + TranslateAcceleratorIO*: + proc(self: ptr IInputObject, pMsg: ptr MSG): HRESULT {.stdcall.} + IInputObject2* {.pure.} = object lpVtbl*: ptr IInputObject2Vtbl + IInputObject2Vtbl* {.pure, inheritable.} = object of IInputObjectVtbl - TranslateAcceleratorGlobal*: proc(self: ptr IInputObject2, pMsg: ptr MSG): HRESULT {.stdcall.} + TranslateAcceleratorGlobal*: + proc(self: ptr IInputObject2, pMsg: ptr MSG): HRESULT {.stdcall.} + IShellIcon* {.pure.} = object lpVtbl*: ptr IShellIconVtbl + IShellIconVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetIconOf*: proc(self: ptr IShellIcon, pidl: PCUITEMID_CHILD, flags: UINT, pIconIndex: ptr int32): HRESULT {.stdcall.} + GetIconOf*: proc( + self: ptr IShellIcon, pidl: PCUITEMID_CHILD, flags: UINT, pIconIndex: ptr int32 + ): HRESULT {.stdcall.} + IProfferService* {.pure.} = object lpVtbl*: ptr IProfferServiceVtbl + IProfferServiceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ProfferService*: proc(self: ptr IProfferService, guidService: REFGUID, psp: ptr IServiceProvider, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - RevokeService*: proc(self: ptr IProfferService, dwCookie: DWORD): HRESULT {.stdcall.} + ProfferService*: proc( + self: ptr IProfferService, + guidService: REFGUID, + psp: ptr IServiceProvider, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + RevokeService*: + proc(self: ptr IProfferService, dwCookie: DWORD): HRESULT {.stdcall.} + IShellItem2* {.pure.} = object lpVtbl*: ptr IShellItem2Vtbl + IShellItem2Vtbl* {.pure, inheritable.} = object of IShellItemVtbl - GetPropertyStore*: proc(self: ptr IShellItem2, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyStoreWithCreateObject*: proc(self: ptr IShellItem2, flags: GETPROPERTYSTOREFLAGS, punkCreateObject: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyStoreForKeys*: proc(self: ptr IShellItem2, rgKeys: ptr PROPERTYKEY, cKeys: UINT, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPropertyDescriptionList*: proc(self: ptr IShellItem2, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetPropertyStore*: proc( + self: ptr IShellItem2, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyStoreWithCreateObject*: proc( + self: ptr IShellItem2, + flags: GETPROPERTYSTOREFLAGS, + punkCreateObject: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyStoreForKeys*: proc( + self: ptr IShellItem2, + rgKeys: ptr PROPERTYKEY, + cKeys: UINT, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetPropertyDescriptionList*: proc( + self: ptr IShellItem2, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} Update*: proc(self: ptr IShellItem2, pbc: ptr IBindCtx): HRESULT {.stdcall.} - GetProperty*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.stdcall.} - GetCLSID*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pclsid: ptr CLSID): HRESULT {.stdcall.} - GetFileTime*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pft: ptr FILETIME): HRESULT {.stdcall.} - GetInt32*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pi: ptr int32): HRESULT {.stdcall.} - GetString*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, ppsz: ptr LPWSTR): HRESULT {.stdcall.} - GetUInt32*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pui: ptr ULONG): HRESULT {.stdcall.} - GetUInt64*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pull: ptr ULONGLONG): HRESULT {.stdcall.} - GetBool*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pf: ptr WINBOOL): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IShellItem2, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT + ): HRESULT {.stdcall.} + GetCLSID*: proc( + self: ptr IShellItem2, key: REFPROPERTYKEY, pclsid: ptr CLSID + ): HRESULT {.stdcall.} + GetFileTime*: proc( + self: ptr IShellItem2, key: REFPROPERTYKEY, pft: ptr FILETIME + ): HRESULT {.stdcall.} + GetInt32*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pi: ptr int32): HRESULT {. + stdcall + .} + GetString*: proc( + self: ptr IShellItem2, key: REFPROPERTYKEY, ppsz: ptr LPWSTR + ): HRESULT {.stdcall.} + GetUInt32*: proc( + self: ptr IShellItem2, key: REFPROPERTYKEY, pui: ptr ULONG + ): HRESULT {.stdcall.} + GetUInt64*: proc( + self: ptr IShellItem2, key: REFPROPERTYKEY, pull: ptr ULONGLONG + ): HRESULT {.stdcall.} + GetBool*: proc(self: ptr IShellItem2, key: REFPROPERTYKEY, pf: ptr WINBOOL): HRESULT {. + stdcall + .} + IShellItemImageFactory* {.pure.} = object lpVtbl*: ptr IShellItemImageFactoryVtbl + IShellItemImageFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetImage*: proc(self: ptr IShellItemImageFactory, size: SIZE, flags: SIIGBF, phbm: ptr HBITMAP): HRESULT {.stdcall.} + GetImage*: proc( + self: ptr IShellItemImageFactory, size: SIZE, flags: SIIGBF, phbm: ptr HBITMAP + ): HRESULT {.stdcall.} + IUserAccountChangeCallback* {.pure.} = object lpVtbl*: ptr IUserAccountChangeCallbackVtbl + IUserAccountChangeCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnPictureChange*: proc(self: ptr IUserAccountChangeCallback, pszUserName: LPCWSTR): HRESULT {.stdcall.} + OnPictureChange*: proc( + self: ptr IUserAccountChangeCallback, pszUserName: LPCWSTR + ): HRESULT {.stdcall.} + ITransferAdviseSink* {.pure.} = object lpVtbl*: ptr ITransferAdviseSinkVtbl + ITransferAdviseSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - UpdateProgress*: proc(self: ptr ITransferAdviseSink, ullSizeCurrent: ULONGLONG, ullSizeTotal: ULONGLONG, nFilesCurrent: int32, nFilesTotal: int32, nFoldersCurrent: int32, nFoldersTotal: int32): HRESULT {.stdcall.} - UpdateTransferState*: proc(self: ptr ITransferAdviseSink, ts: TRANSFER_ADVISE_STATE): HRESULT {.stdcall.} - ConfirmOverwrite*: proc(self: ptr ITransferAdviseSink, psiSource: ptr IShellItem, psiDestParent: ptr IShellItem, pszName: LPCWSTR): HRESULT {.stdcall.} - ConfirmEncryptionLoss*: proc(self: ptr ITransferAdviseSink, psiSource: ptr IShellItem): HRESULT {.stdcall.} - FileFailure*: proc(self: ptr ITransferAdviseSink, psi: ptr IShellItem, pszItem: LPCWSTR, hrError: HRESULT, pszRename: LPWSTR, cchRename: ULONG): HRESULT {.stdcall.} - SubStreamFailure*: proc(self: ptr ITransferAdviseSink, psi: ptr IShellItem, pszStreamName: LPCWSTR, hrError: HRESULT): HRESULT {.stdcall.} - PropertyFailure*: proc(self: ptr ITransferAdviseSink, psi: ptr IShellItem, pkey: ptr PROPERTYKEY, hrError: HRESULT): HRESULT {.stdcall.} + UpdateProgress*: proc( + self: ptr ITransferAdviseSink, + ullSizeCurrent: ULONGLONG, + ullSizeTotal: ULONGLONG, + nFilesCurrent: int32, + nFilesTotal: int32, + nFoldersCurrent: int32, + nFoldersTotal: int32, + ): HRESULT {.stdcall.} + UpdateTransferState*: proc( + self: ptr ITransferAdviseSink, ts: TRANSFER_ADVISE_STATE + ): HRESULT {.stdcall.} + ConfirmOverwrite*: proc( + self: ptr ITransferAdviseSink, + psiSource: ptr IShellItem, + psiDestParent: ptr IShellItem, + pszName: LPCWSTR, + ): HRESULT {.stdcall.} + ConfirmEncryptionLoss*: proc( + self: ptr ITransferAdviseSink, psiSource: ptr IShellItem + ): HRESULT {.stdcall.} + FileFailure*: proc( + self: ptr ITransferAdviseSink, + psi: ptr IShellItem, + pszItem: LPCWSTR, + hrError: HRESULT, + pszRename: LPWSTR, + cchRename: ULONG, + ): HRESULT {.stdcall.} + SubStreamFailure*: proc( + self: ptr ITransferAdviseSink, + psi: ptr IShellItem, + pszStreamName: LPCWSTR, + hrError: HRESULT, + ): HRESULT {.stdcall.} + PropertyFailure*: proc( + self: ptr ITransferAdviseSink, + psi: ptr IShellItem, + pkey: ptr PROPERTYKEY, + hrError: HRESULT, + ): HRESULT {.stdcall.} + ITransferSource* {.pure.} = object lpVtbl*: ptr ITransferSourceVtbl + ITransferSourceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr ITransferSource, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + Advise*: proc( + self: ptr ITransferSource, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr ITransferSource, dwCookie: DWORD): HRESULT {.stdcall.} - SetProperties*: proc(self: ptr ITransferSource, pproparray: ptr IPropertyChangeArray): HRESULT {.stdcall.} - OpenItem*: proc(self: ptr ITransferSource, psi: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - MoveItem*: proc(self: ptr ITransferSource, psi: ptr IShellItem, psiParentDst: ptr IShellItem, pszNameDst: LPCWSTR, flags: TRANSFER_SOURCE_FLAGS, ppsiNew: ptr ptr IShellItem): HRESULT {.stdcall.} - RecycleItem*: proc(self: ptr ITransferSource, psiSource: ptr IShellItem, psiParentDest: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS, ppsiNewDest: ptr ptr IShellItem): HRESULT {.stdcall.} - RemoveItem*: proc(self: ptr ITransferSource, psiSource: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS): HRESULT {.stdcall.} - RenameItem*: proc(self: ptr ITransferSource, psiSource: ptr IShellItem, pszNewName: LPCWSTR, flags: TRANSFER_SOURCE_FLAGS, ppsiNewDest: ptr ptr IShellItem): HRESULT {.stdcall.} - LinkItem*: proc(self: ptr ITransferSource, psiSource: ptr IShellItem, psiParentDest: ptr IShellItem, pszNewName: LPCWSTR, flags: TRANSFER_SOURCE_FLAGS, ppsiNewDest: ptr ptr IShellItem): HRESULT {.stdcall.} - ApplyPropertiesToItem*: proc(self: ptr ITransferSource, psiSource: ptr IShellItem, ppsiNew: ptr ptr IShellItem): HRESULT {.stdcall.} - GetDefaultDestinationName*: proc(self: ptr ITransferSource, psiSource: ptr IShellItem, psiParentDest: ptr IShellItem, ppszDestinationName: ptr LPWSTR): HRESULT {.stdcall.} - EnterFolder*: proc(self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem): HRESULT {.stdcall.} - LeaveFolder*: proc(self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem): HRESULT {.stdcall.} + SetProperties*: proc( + self: ptr ITransferSource, pproparray: ptr IPropertyChangeArray + ): HRESULT {.stdcall.} + OpenItem*: proc( + self: ptr ITransferSource, + psi: ptr IShellItem, + flags: TRANSFER_SOURCE_FLAGS, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + MoveItem*: proc( + self: ptr ITransferSource, + psi: ptr IShellItem, + psiParentDst: ptr IShellItem, + pszNameDst: LPCWSTR, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNew: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + RecycleItem*: proc( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + psiParentDest: ptr IShellItem, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNewDest: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + RemoveItem*: proc( + self: ptr ITransferSource, psiSource: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS + ): HRESULT {.stdcall.} + RenameItem*: proc( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + pszNewName: LPCWSTR, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNewDest: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + LinkItem*: proc( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + psiParentDest: ptr IShellItem, + pszNewName: LPCWSTR, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNewDest: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + ApplyPropertiesToItem*: proc( + self: ptr ITransferSource, psiSource: ptr IShellItem, ppsiNew: ptr ptr IShellItem + ): HRESULT {.stdcall.} + GetDefaultDestinationName*: proc( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + psiParentDest: ptr IShellItem, + ppszDestinationName: ptr LPWSTR, + ): HRESULT {.stdcall.} + EnterFolder*: proc( + self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem + ): HRESULT {.stdcall.} + LeaveFolder*: proc( + self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem + ): HRESULT {.stdcall.} + IEnumResources* {.pure.} = object lpVtbl*: ptr IEnumResourcesVtbl + IEnumResourcesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumResources, celt: ULONG, psir: ptr SHELL_ITEM_RESOURCE, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumResources, + celt: ULONG, + psir: ptr SHELL_ITEM_RESOURCE, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumResources, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumResources): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumResources, ppenumr: ptr ptr IEnumResources): HRESULT {.stdcall.} + Clone*: proc(self: ptr IEnumResources, ppenumr: ptr ptr IEnumResources): HRESULT {. + stdcall + .} + IShellItemResources* {.pure.} = object lpVtbl*: ptr IShellItemResourcesVtbl + IShellItemResourcesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetAttributes*: proc(self: ptr IShellItemResources, pdwAttributes: ptr DWORD): HRESULT {.stdcall.} - GetSize*: proc(self: ptr IShellItemResources, pullSize: ptr ULONGLONG): HRESULT {.stdcall.} - GetTimes*: proc(self: ptr IShellItemResources, pftCreation: ptr FILETIME, pftWrite: ptr FILETIME, pftAccess: ptr FILETIME): HRESULT {.stdcall.} - SetTimes*: proc(self: ptr IShellItemResources, pftCreation: ptr FILETIME, pftWrite: ptr FILETIME, pftAccess: ptr FILETIME): HRESULT {.stdcall.} - GetResourceDescription*: proc(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE, ppszDescription: ptr LPWSTR): HRESULT {.stdcall.} - EnumResources*: proc(self: ptr IShellItemResources, ppenumr: ptr ptr IEnumResources): HRESULT {.stdcall.} - SupportsResource*: proc(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE): HRESULT {.stdcall.} - OpenResource*: proc(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - CreateResource*: proc(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetAttributes*: + proc(self: ptr IShellItemResources, pdwAttributes: ptr DWORD): HRESULT {.stdcall.} + GetSize*: + proc(self: ptr IShellItemResources, pullSize: ptr ULONGLONG): HRESULT {.stdcall.} + GetTimes*: proc( + self: ptr IShellItemResources, + pftCreation: ptr FILETIME, + pftWrite: ptr FILETIME, + pftAccess: ptr FILETIME, + ): HRESULT {.stdcall.} + SetTimes*: proc( + self: ptr IShellItemResources, + pftCreation: ptr FILETIME, + pftWrite: ptr FILETIME, + pftAccess: ptr FILETIME, + ): HRESULT {.stdcall.} + GetResourceDescription*: proc( + self: ptr IShellItemResources, + pcsir: ptr SHELL_ITEM_RESOURCE, + ppszDescription: ptr LPWSTR, + ): HRESULT {.stdcall.} + EnumResources*: proc( + self: ptr IShellItemResources, ppenumr: ptr ptr IEnumResources + ): HRESULT {.stdcall.} + SupportsResource*: proc( + self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE + ): HRESULT {.stdcall.} + OpenResource*: proc( + self: ptr IShellItemResources, + pcsir: ptr SHELL_ITEM_RESOURCE, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + CreateResource*: proc( + self: ptr IShellItemResources, + pcsir: ptr SHELL_ITEM_RESOURCE, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} MarkForDelete*: proc(self: ptr IShellItemResources): HRESULT {.stdcall.} + ITransferDestination* {.pure.} = object lpVtbl*: ptr ITransferDestinationVtbl + ITransferDestinationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr ITransferDestination, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - Unadvise*: proc(self: ptr ITransferDestination, dwCookie: DWORD): HRESULT {.stdcall.} - CreateItem*: proc(self: ptr ITransferDestination, pszName: LPCWSTR, dwAttributes: DWORD, ullSize: ULONGLONG, flags: TRANSFER_SOURCE_FLAGS, riidItem: REFIID, ppvItem: ptr pointer, riidResources: REFIID, ppvResources: ptr pointer): HRESULT {.stdcall.} + Advise*: proc( + self: ptr ITransferDestination, + psink: ptr ITransferAdviseSink, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + Unadvise*: + proc(self: ptr ITransferDestination, dwCookie: DWORD): HRESULT {.stdcall.} + CreateItem*: proc( + self: ptr ITransferDestination, + pszName: LPCWSTR, + dwAttributes: DWORD, + ullSize: ULONGLONG, + flags: TRANSFER_SOURCE_FLAGS, + riidItem: REFIID, + ppvItem: ptr pointer, + riidResources: REFIID, + ppvResources: ptr pointer, + ): HRESULT {.stdcall.} + IStreamAsync* {.pure.} = object lpVtbl*: ptr IStreamAsyncVtbl + IStreamAsyncVtbl* {.pure, inheritable.} = object of IStreamVtbl - ReadAsync*: proc(self: ptr IStreamAsync, pv: pointer, cb: DWORD, pcbRead: LPDWORD, lpOverlapped: LPOVERLAPPED): HRESULT {.stdcall.} - WriteAsync*: proc(self: ptr IStreamAsync, lpBuffer: pointer, cb: DWORD, pcbWritten: LPDWORD, lpOverlapped: LPOVERLAPPED): HRESULT {.stdcall.} - OverlappedResult*: proc(self: ptr IStreamAsync, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, bWait: WINBOOL): HRESULT {.stdcall.} + ReadAsync*: proc( + self: ptr IStreamAsync, + pv: pointer, + cb: DWORD, + pcbRead: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ): HRESULT {.stdcall.} + WriteAsync*: proc( + self: ptr IStreamAsync, + lpBuffer: pointer, + cb: DWORD, + pcbWritten: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ): HRESULT {.stdcall.} + OverlappedResult*: proc( + self: ptr IStreamAsync, + lpOverlapped: LPOVERLAPPED, + lpNumberOfBytesTransferred: LPDWORD, + bWait: WINBOOL, + ): HRESULT {.stdcall.} CancelIo*: proc(self: ptr IStreamAsync): HRESULT {.stdcall.} + IStreamUnbufferedInfo* {.pure.} = object lpVtbl*: ptr IStreamUnbufferedInfoVtbl + IStreamUnbufferedInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSectorSize*: proc(self: ptr IStreamUnbufferedInfo, pcbSectorSize: ptr ULONG): HRESULT {.stdcall.} + GetSectorSize*: proc( + self: ptr IStreamUnbufferedInfo, pcbSectorSize: ptr ULONG + ): HRESULT {.stdcall.} + IFileOperationProgressSink* {.pure.} = object lpVtbl*: ptr IFileOperationProgressSinkVtbl + IFileOperationProgressSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl StartOperations*: proc(self: ptr IFileOperationProgressSink): HRESULT {.stdcall.} - FinishOperations*: proc(self: ptr IFileOperationProgressSink, hrResult: HRESULT): HRESULT {.stdcall.} - PreRenameItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.stdcall.} - PostRenameItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, pszNewName: LPCWSTR, hrRename: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.stdcall.} - PreMoveItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.stdcall.} - PostMoveItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, hrMove: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.stdcall.} - PreCopyItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.stdcall.} - PostCopyItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, hrCopy: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.stdcall.} - PreDeleteItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem): HRESULT {.stdcall.} - PostDeleteItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, hrDelete: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.stdcall.} - PreNewItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.stdcall.} - PostNewItem*: proc(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, pszTemplateName: LPCWSTR, dwFileAttributes: DWORD, hrNew: HRESULT, psiNewItem: ptr IShellItem): HRESULT {.stdcall.} - UpdateProgress*: proc(self: ptr IFileOperationProgressSink, iWorkTotal: UINT, iWorkSoFar: UINT): HRESULT {.stdcall.} + FinishOperations*: + proc(self: ptr IFileOperationProgressSink, hrResult: HRESULT): HRESULT {.stdcall.} + PreRenameItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + pszNewName: LPCWSTR, + ): HRESULT {.stdcall.} + PostRenameItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + pszNewName: LPCWSTR, + hrRename: HRESULT, + psiNewlyCreated: ptr IShellItem, + ): HRESULT {.stdcall.} + PreMoveItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + ): HRESULT {.stdcall.} + PostMoveItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + hrMove: HRESULT, + psiNewlyCreated: ptr IShellItem, + ): HRESULT {.stdcall.} + PreCopyItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + ): HRESULT {.stdcall.} + PostCopyItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + hrCopy: HRESULT, + psiNewlyCreated: ptr IShellItem, + ): HRESULT {.stdcall.} + PreDeleteItem*: proc( + self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem + ): HRESULT {.stdcall.} + PostDeleteItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + hrDelete: HRESULT, + psiNewlyCreated: ptr IShellItem, + ): HRESULT {.stdcall.} + PreNewItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + ): HRESULT {.stdcall.} + PostNewItem*: proc( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + pszTemplateName: LPCWSTR, + dwFileAttributes: DWORD, + hrNew: HRESULT, + psiNewItem: ptr IShellItem, + ): HRESULT {.stdcall.} + UpdateProgress*: proc( + self: ptr IFileOperationProgressSink, iWorkTotal: UINT, iWorkSoFar: UINT + ): HRESULT {.stdcall.} ResetTimer*: proc(self: ptr IFileOperationProgressSink): HRESULT {.stdcall.} PauseTimer*: proc(self: ptr IFileOperationProgressSink): HRESULT {.stdcall.} ResumeTimer*: proc(self: ptr IFileOperationProgressSink): HRESULT {.stdcall.} + IInitializeWithItem* {.pure.} = object lpVtbl*: ptr IInitializeWithItemVtbl + IInitializeWithItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeWithItem, psi: ptr IShellItem, grfMode: DWORD): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IInitializeWithItem, psi: ptr IShellItem, grfMode: DWORD + ): HRESULT {.stdcall.} + IObjectWithSelection* {.pure.} = object lpVtbl*: ptr IObjectWithSelectionVtbl + IObjectWithSelectionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetSelection*: proc(self: ptr IObjectWithSelection, psia: ptr IShellItemArray): HRESULT {.stdcall.} - GetSelection*: proc(self: ptr IObjectWithSelection, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + SetSelection*: proc( + self: ptr IObjectWithSelection, psia: ptr IShellItemArray + ): HRESULT {.stdcall.} + GetSelection*: proc( + self: ptr IObjectWithSelection, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IObjectWithBackReferences* {.pure.} = object lpVtbl*: ptr IObjectWithBackReferencesVtbl + IObjectWithBackReferencesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RemoveBackReferences*: proc(self: ptr IObjectWithBackReferences): HRESULT {.stdcall.} + RemoveBackReferences*: + proc(self: ptr IObjectWithBackReferences): HRESULT {.stdcall.} + IPropertyUI* {.pure.} = object lpVtbl*: ptr IPropertyUIVtbl + IPropertyUIVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ParsePropertyName*: proc(self: ptr IPropertyUI, pszName: LPCWSTR, pfmtid: ptr FMTID, ppid: ptr PROPID, pchEaten: ptr ULONG): HRESULT {.stdcall.} - GetCannonicalName*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pwszText: LPWSTR, cchText: DWORD): HRESULT {.stdcall.} - GetDisplayName*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, flags: PROPERTYUI_NAME_FLAGS, pwszText: LPWSTR, cchText: DWORD): HRESULT {.stdcall.} - GetPropertyDescription*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pwszText: LPWSTR, cchText: DWORD): HRESULT {.stdcall.} - GetDefaultWidth*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pcxChars: ptr ULONG): HRESULT {.stdcall.} - GetFlags*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pflags: ptr PROPERTYUI_FLAGS): HRESULT {.stdcall.} - FormatForDisplay*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, ppropvar: ptr PROPVARIANT, puiff: PROPERTYUI_FORMAT_FLAGS, pwszText: LPWSTR, cchText: DWORD): HRESULT {.stdcall.} - GetHelpInfo*: proc(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pwszHelpFile: LPWSTR, cch: DWORD, puHelpID: ptr UINT): HRESULT {.stdcall.} + ParsePropertyName*: proc( + self: ptr IPropertyUI, + pszName: LPCWSTR, + pfmtid: ptr FMTID, + ppid: ptr PROPID, + pchEaten: ptr ULONG, + ): HRESULT {.stdcall.} + GetCannonicalName*: proc( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + pwszText: LPWSTR, + cchText: DWORD, + ): HRESULT {.stdcall.} + GetDisplayName*: proc( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + flags: PROPERTYUI_NAME_FLAGS, + pwszText: LPWSTR, + cchText: DWORD, + ): HRESULT {.stdcall.} + GetPropertyDescription*: proc( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + pwszText: LPWSTR, + cchText: DWORD, + ): HRESULT {.stdcall.} + GetDefaultWidth*: proc( + self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pcxChars: ptr ULONG + ): HRESULT {.stdcall.} + GetFlags*: proc( + self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pflags: ptr PROPERTYUI_FLAGS + ): HRESULT {.stdcall.} + FormatForDisplay*: proc( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + ppropvar: ptr PROPVARIANT, + puiff: PROPERTYUI_FORMAT_FLAGS, + pwszText: LPWSTR, + cchText: DWORD, + ): HRESULT {.stdcall.} + GetHelpInfo*: proc( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + pwszHelpFile: LPWSTR, + cch: DWORD, + puHelpID: ptr UINT, + ): HRESULT {.stdcall.} + ICategoryProvider* {.pure.} = object lpVtbl*: ptr ICategoryProviderVtbl + ICategoryProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CanCategorizeOnSCID*: proc(self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID): HRESULT {.stdcall.} - GetDefaultCategory*: proc(self: ptr ICategoryProvider, pguid: ptr GUID, pscid: ptr SHCOLUMNID): HRESULT {.stdcall.} - GetCategoryForSCID*: proc(self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID, pguid: ptr GUID): HRESULT {.stdcall.} - EnumCategories*: proc(self: ptr ICategoryProvider, penum: ptr ptr IEnumGUID): HRESULT {.stdcall.} - GetCategoryName*: proc(self: ptr ICategoryProvider, pguid: ptr GUID, pszName: LPWSTR, cch: UINT): HRESULT {.stdcall.} - CreateCategory*: proc(self: ptr ICategoryProvider, pguid: ptr GUID, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + CanCategorizeOnSCID*: + proc(self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID): HRESULT {.stdcall.} + GetDefaultCategory*: proc( + self: ptr ICategoryProvider, pguid: ptr GUID, pscid: ptr SHCOLUMNID + ): HRESULT {.stdcall.} + GetCategoryForSCID*: proc( + self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID, pguid: ptr GUID + ): HRESULT {.stdcall.} + EnumCategories*: + proc(self: ptr ICategoryProvider, penum: ptr ptr IEnumGUID): HRESULT {.stdcall.} + GetCategoryName*: proc( + self: ptr ICategoryProvider, pguid: ptr GUID, pszName: LPWSTR, cch: UINT + ): HRESULT {.stdcall.} + CreateCategory*: proc( + self: ptr ICategoryProvider, pguid: ptr GUID, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + ICategorizer* {.pure.} = object lpVtbl*: ptr ICategorizerVtbl + ICategorizerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDescription*: proc(self: ptr ICategorizer, pszDesc: LPWSTR, cch: UINT): HRESULT {.stdcall.} - GetCategory*: proc(self: ptr ICategorizer, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, rgCategoryIds: ptr DWORD): HRESULT {.stdcall.} - GetCategoryInfo*: proc(self: ptr ICategorizer, dwCategoryId: DWORD, pci: ptr TCATEGORY_INFO): HRESULT {.stdcall.} - CompareCategory*: proc(self: ptr ICategorizer, csfFlags: CATSORT_FLAGS, dwCategoryId1: DWORD, dwCategoryId2: DWORD): HRESULT {.stdcall.} + GetDescription*: + proc(self: ptr ICategorizer, pszDesc: LPWSTR, cch: UINT): HRESULT {.stdcall.} + GetCategory*: proc( + self: ptr ICategorizer, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + rgCategoryIds: ptr DWORD, + ): HRESULT {.stdcall.} + GetCategoryInfo*: proc( + self: ptr ICategorizer, dwCategoryId: DWORD, pci: ptr TCATEGORY_INFO + ): HRESULT {.stdcall.} + CompareCategory*: proc( + self: ptr ICategorizer, + csfFlags: CATSORT_FLAGS, + dwCategoryId1: DWORD, + dwCategoryId2: DWORD, + ): HRESULT {.stdcall.} + IDropTargetHelper* {.pure.} = object lpVtbl*: ptr IDropTargetHelperVtbl + IDropTargetHelperVtbl* {.pure, inheritable.} = object of IUnknownVtbl - DragEnter*: proc(self: ptr IDropTargetHelper, hwndTarget: HWND, pDataObject: ptr IDataObject, ppt: ptr POINT, dwEffect: DWORD): HRESULT {.stdcall.} + DragEnter*: proc( + self: ptr IDropTargetHelper, + hwndTarget: HWND, + pDataObject: ptr IDataObject, + ppt: ptr POINT, + dwEffect: DWORD, + ): HRESULT {.stdcall.} DragLeave*: proc(self: ptr IDropTargetHelper): HRESULT {.stdcall.} - DragOver*: proc(self: ptr IDropTargetHelper, ppt: ptr POINT, dwEffect: DWORD): HRESULT {.stdcall.} - Drop*: proc(self: ptr IDropTargetHelper, pDataObject: ptr IDataObject, ppt: ptr POINT, dwEffect: DWORD): HRESULT {.stdcall.} + DragOver*: proc( + self: ptr IDropTargetHelper, ppt: ptr POINT, dwEffect: DWORD + ): HRESULT {.stdcall.} + Drop*: proc( + self: ptr IDropTargetHelper, + pDataObject: ptr IDataObject, + ppt: ptr POINT, + dwEffect: DWORD, + ): HRESULT {.stdcall.} Show*: proc(self: ptr IDropTargetHelper, fShow: WINBOOL): HRESULT {.stdcall.} + IDragSourceHelper* {.pure.} = object lpVtbl*: ptr IDragSourceHelperVtbl + IDragSourceHelperVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InitializeFromBitmap*: proc(self: ptr IDragSourceHelper, pshdi: LPSHDRAGIMAGE, pDataObject: ptr IDataObject): HRESULT {.stdcall.} - InitializeFromWindow*: proc(self: ptr IDragSourceHelper, hwnd: HWND, ppt: ptr POINT, pDataObject: ptr IDataObject): HRESULT {.stdcall.} + InitializeFromBitmap*: proc( + self: ptr IDragSourceHelper, pshdi: LPSHDRAGIMAGE, pDataObject: ptr IDataObject + ): HRESULT {.stdcall.} + InitializeFromWindow*: proc( + self: ptr IDragSourceHelper, + hwnd: HWND, + ppt: ptr POINT, + pDataObject: ptr IDataObject, + ): HRESULT {.stdcall.} + IDragSourceHelper2* {.pure.} = object lpVtbl*: ptr IDragSourceHelper2Vtbl + IDragSourceHelper2Vtbl* {.pure, inheritable.} = object of IDragSourceHelperVtbl SetFlags*: proc(self: ptr IDragSourceHelper2, dwFlags: DWORD): HRESULT {.stdcall.} + IShellLinkDataList* {.pure.} = object lpVtbl*: ptr IShellLinkDataListVtbl + IShellLinkDataListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddDataBlock*: proc(self: ptr IShellLinkDataList, pDataBlock: pointer): HRESULT {.stdcall.} - CopyDataBlock*: proc(self: ptr IShellLinkDataList, dwSig: DWORD, ppDataBlock: ptr pointer): HRESULT {.stdcall.} - RemoveDataBlock*: proc(self: ptr IShellLinkDataList, dwSig: DWORD): HRESULT {.stdcall.} - GetFlags*: proc(self: ptr IShellLinkDataList, pdwFlags: ptr DWORD): HRESULT {.stdcall.} + AddDataBlock*: + proc(self: ptr IShellLinkDataList, pDataBlock: pointer): HRESULT {.stdcall.} + CopyDataBlock*: proc( + self: ptr IShellLinkDataList, dwSig: DWORD, ppDataBlock: ptr pointer + ): HRESULT {.stdcall.} + RemoveDataBlock*: + proc(self: ptr IShellLinkDataList, dwSig: DWORD): HRESULT {.stdcall.} + GetFlags*: + proc(self: ptr IShellLinkDataList, pdwFlags: ptr DWORD): HRESULT {.stdcall.} SetFlags*: proc(self: ptr IShellLinkDataList, dwFlags: DWORD): HRESULT {.stdcall.} + IResolveShellLink* {.pure.} = object lpVtbl*: ptr IResolveShellLinkVtbl + IResolveShellLinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ResolveShellLink*: proc(self: ptr IResolveShellLink, punkLink: ptr IUnknown, hwnd: HWND, fFlags: DWORD): HRESULT {.stdcall.} + ResolveShellLink*: proc( + self: ptr IResolveShellLink, punkLink: ptr IUnknown, hwnd: HWND, fFlags: DWORD + ): HRESULT {.stdcall.} + IActionProgressDialog* {.pure.} = object lpVtbl*: ptr IActionProgressDialogVtbl + IActionProgressDialogVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IActionProgressDialog, flags: SPINITF, pszTitle: LPCWSTR, pszCancel: LPCWSTR): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IActionProgressDialog, + flags: SPINITF, + pszTitle: LPCWSTR, + pszCancel: LPCWSTR, + ): HRESULT {.stdcall.} Stop*: proc(self: ptr IActionProgressDialog): HRESULT {.stdcall.} + IHWEventHandler* {.pure.} = object lpVtbl*: ptr IHWEventHandlerVtbl + IHWEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IHWEventHandler, pszParams: LPCWSTR): HRESULT {.stdcall.} - HandleEvent*: proc(self: ptr IHWEventHandler, pszDeviceID: LPCWSTR, pszAltDeviceID: LPCWSTR, pszEventType: LPCWSTR): HRESULT {.stdcall.} - HandleEventWithContent*: proc(self: ptr IHWEventHandler, pszDeviceID: LPCWSTR, pszAltDeviceID: LPCWSTR, pszEventType: LPCWSTR, pszContentTypeHandler: LPCWSTR, pdataobject: ptr IDataObject): HRESULT {.stdcall.} + Initialize*: + proc(self: ptr IHWEventHandler, pszParams: LPCWSTR): HRESULT {.stdcall.} + HandleEvent*: proc( + self: ptr IHWEventHandler, + pszDeviceID: LPCWSTR, + pszAltDeviceID: LPCWSTR, + pszEventType: LPCWSTR, + ): HRESULT {.stdcall.} + HandleEventWithContent*: proc( + self: ptr IHWEventHandler, + pszDeviceID: LPCWSTR, + pszAltDeviceID: LPCWSTR, + pszEventType: LPCWSTR, + pszContentTypeHandler: LPCWSTR, + pdataobject: ptr IDataObject, + ): HRESULT {.stdcall.} + IHWEventHandler2* {.pure.} = object lpVtbl*: ptr IHWEventHandler2Vtbl + IHWEventHandler2Vtbl* {.pure, inheritable.} = object of IHWEventHandlerVtbl - HandleEventWithHWND*: proc(self: ptr IHWEventHandler2, pszDeviceID: LPCWSTR, pszAltDeviceID: LPCWSTR, pszEventType: LPCWSTR, hwndOwner: HWND): HRESULT {.stdcall.} + HandleEventWithHWND*: proc( + self: ptr IHWEventHandler2, + pszDeviceID: LPCWSTR, + pszAltDeviceID: LPCWSTR, + pszEventType: LPCWSTR, + hwndOwner: HWND, + ): HRESULT {.stdcall.} + IQueryCancelAutoPlay* {.pure.} = object lpVtbl*: ptr IQueryCancelAutoPlayVtbl + IQueryCancelAutoPlayVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AllowAutoPlay*: proc(self: ptr IQueryCancelAutoPlay, pszPath: LPCWSTR, dwContentType: DWORD, pszLabel: LPCWSTR, dwSerialNumber: DWORD): HRESULT {.stdcall.} + AllowAutoPlay*: proc( + self: ptr IQueryCancelAutoPlay, + pszPath: LPCWSTR, + dwContentType: DWORD, + pszLabel: LPCWSTR, + dwSerialNumber: DWORD, + ): HRESULT {.stdcall.} + IDynamicHWHandler* {.pure.} = object lpVtbl*: ptr IDynamicHWHandlerVtbl + IDynamicHWHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDynamicInfo*: proc(self: ptr IDynamicHWHandler, pszDeviceID: LPCWSTR, dwContentType: DWORD, ppszAction: ptr LPWSTR): HRESULT {.stdcall.} + GetDynamicInfo*: proc( + self: ptr IDynamicHWHandler, + pszDeviceID: LPCWSTR, + dwContentType: DWORD, + ppszAction: ptr LPWSTR, + ): HRESULT {.stdcall.} + IActionProgress* {.pure.} = object lpVtbl*: ptr IActionProgressVtbl + IActionProgressVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Begin*: proc(self: ptr IActionProgress, action: SPACTION, flags: SPBEGINF): HRESULT {.stdcall.} - UpdateProgress*: proc(self: ptr IActionProgress, ulCompleted: ULONGLONG, ulTotal: ULONGLONG): HRESULT {.stdcall.} - UpdateText*: proc(self: ptr IActionProgress, sptext: SPTEXT, pszText: LPCWSTR, fMayCompact: WINBOOL): HRESULT {.stdcall.} - QueryCancel*: proc(self: ptr IActionProgress, pfCancelled: ptr WINBOOL): HRESULT {.stdcall.} + Begin*: proc(self: ptr IActionProgress, action: SPACTION, flags: SPBEGINF): HRESULT {. + stdcall + .} + UpdateProgress*: proc( + self: ptr IActionProgress, ulCompleted: ULONGLONG, ulTotal: ULONGLONG + ): HRESULT {.stdcall.} + UpdateText*: proc( + self: ptr IActionProgress, sptext: SPTEXT, pszText: LPCWSTR, fMayCompact: WINBOOL + ): HRESULT {.stdcall.} + QueryCancel*: + proc(self: ptr IActionProgress, pfCancelled: ptr WINBOOL): HRESULT {.stdcall.} ResetCancel*: proc(self: ptr IActionProgress): HRESULT {.stdcall.} End*: proc(self: ptr IActionProgress): HRESULT {.stdcall.} + IRemoteComputer* {.pure.} = object lpVtbl*: ptr IRemoteComputerVtbl + IRemoteComputerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IRemoteComputer, pszMachine: LPCWSTR, bEnumerating: WINBOOL): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IRemoteComputer, pszMachine: LPCWSTR, bEnumerating: WINBOOL + ): HRESULT {.stdcall.} + IQueryContinue* {.pure.} = object lpVtbl*: ptr IQueryContinueVtbl + IQueryContinueVtbl* {.pure, inheritable.} = object of IUnknownVtbl QueryContinue*: proc(self: ptr IQueryContinue): HRESULT {.stdcall.} + IObjectWithCancelEvent* {.pure.} = object lpVtbl*: ptr IObjectWithCancelEventVtbl + IObjectWithCancelEventVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCancelEvent*: proc(self: ptr IObjectWithCancelEvent, phEvent: ptr HANDLE): HRESULT {.stdcall.} + GetCancelEvent*: + proc(self: ptr IObjectWithCancelEvent, phEvent: ptr HANDLE): HRESULT {.stdcall.} + IUserNotification* {.pure.} = object lpVtbl*: ptr IUserNotificationVtbl + IUserNotificationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetBalloonInfo*: proc(self: ptr IUserNotification, pszTitle: LPCWSTR, pszText: LPCWSTR, dwInfoFlags: DWORD): HRESULT {.stdcall.} - SetBalloonRetry*: proc(self: ptr IUserNotification, dwShowTime: DWORD, dwInterval: DWORD, cRetryCount: UINT): HRESULT {.stdcall.} - SetIconInfo*: proc(self: ptr IUserNotification, hIcon: HICON, pszToolTip: LPCWSTR): HRESULT {.stdcall.} - Show*: proc(self: ptr IUserNotification, pqc: ptr IQueryContinue, dwContinuePollInterval: DWORD): HRESULT {.stdcall.} - PlaySound*: proc(self: ptr IUserNotification, pszSoundName: LPCWSTR): HRESULT {.stdcall.} + SetBalloonInfo*: proc( + self: ptr IUserNotification, + pszTitle: LPCWSTR, + pszText: LPCWSTR, + dwInfoFlags: DWORD, + ): HRESULT {.stdcall.} + SetBalloonRetry*: proc( + self: ptr IUserNotification, + dwShowTime: DWORD, + dwInterval: DWORD, + cRetryCount: UINT, + ): HRESULT {.stdcall.} + SetIconInfo*: proc( + self: ptr IUserNotification, hIcon: HICON, pszToolTip: LPCWSTR + ): HRESULT {.stdcall.} + Show*: proc( + self: ptr IUserNotification, + pqc: ptr IQueryContinue, + dwContinuePollInterval: DWORD, + ): HRESULT {.stdcall.} + PlaySound*: + proc(self: ptr IUserNotification, pszSoundName: LPCWSTR): HRESULT {.stdcall.} + IUserNotificationCallback* {.pure.} = object lpVtbl*: ptr IUserNotificationCallbackVtbl + IUserNotificationCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnBalloonUserClick*: proc(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.stdcall.} - OnLeftClick*: proc(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.stdcall.} - OnContextMenu*: proc(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.stdcall.} + OnBalloonUserClick*: + proc(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.stdcall.} + OnLeftClick*: + proc(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.stdcall.} + OnContextMenu*: + proc(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.stdcall.} + IUserNotification2* {.pure.} = object lpVtbl*: ptr IUserNotification2Vtbl + IUserNotification2Vtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetBalloonInfo*: proc(self: ptr IUserNotification2, pszTitle: LPCWSTR, pszText: LPCWSTR, dwInfoFlags: DWORD): HRESULT {.stdcall.} - SetBalloonRetry*: proc(self: ptr IUserNotification2, dwShowTime: DWORD, dwInterval: DWORD, cRetryCount: UINT): HRESULT {.stdcall.} - SetIconInfo*: proc(self: ptr IUserNotification2, hIcon: HICON, pszToolTip: LPCWSTR): HRESULT {.stdcall.} - Show*: proc(self: ptr IUserNotification2, pqc: ptr IQueryContinue, dwContinuePollInterval: DWORD, pSink: ptr IUserNotificationCallback): HRESULT {.stdcall.} - PlaySound*: proc(self: ptr IUserNotification2, pszSoundName: LPCWSTR): HRESULT {.stdcall.} + SetBalloonInfo*: proc( + self: ptr IUserNotification2, + pszTitle: LPCWSTR, + pszText: LPCWSTR, + dwInfoFlags: DWORD, + ): HRESULT {.stdcall.} + SetBalloonRetry*: proc( + self: ptr IUserNotification2, + dwShowTime: DWORD, + dwInterval: DWORD, + cRetryCount: UINT, + ): HRESULT {.stdcall.} + SetIconInfo*: proc( + self: ptr IUserNotification2, hIcon: HICON, pszToolTip: LPCWSTR + ): HRESULT {.stdcall.} + Show*: proc( + self: ptr IUserNotification2, + pqc: ptr IQueryContinue, + dwContinuePollInterval: DWORD, + pSink: ptr IUserNotificationCallback, + ): HRESULT {.stdcall.} + PlaySound*: + proc(self: ptr IUserNotification2, pszSoundName: LPCWSTR): HRESULT {.stdcall.} + IItemNameLimits* {.pure.} = object lpVtbl*: ptr IItemNameLimitsVtbl + IItemNameLimitsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetValidCharacters*: proc(self: ptr IItemNameLimits, ppwszValidChars: ptr LPWSTR, ppwszInvalidChars: ptr LPWSTR): HRESULT {.stdcall.} - GetMaxLength*: proc(self: ptr IItemNameLimits, pszName: LPCWSTR, piMaxNameLen: ptr int32): HRESULT {.stdcall.} + GetValidCharacters*: proc( + self: ptr IItemNameLimits, + ppwszValidChars: ptr LPWSTR, + ppwszInvalidChars: ptr LPWSTR, + ): HRESULT {.stdcall.} + GetMaxLength*: proc( + self: ptr IItemNameLimits, pszName: LPCWSTR, piMaxNameLen: ptr int32 + ): HRESULT {.stdcall.} + ISearchFolderItemFactory* {.pure.} = object lpVtbl*: ptr ISearchFolderItemFactoryVtbl + ISearchFolderItemFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetDisplayName*: proc(self: ptr ISearchFolderItemFactory, pszDisplayName: LPCWSTR): HRESULT {.stdcall.} - SetFolderTypeID*: proc(self: ptr ISearchFolderItemFactory, ftid: FOLDERTYPEID): HRESULT {.stdcall.} - SetFolderLogicalViewMode*: proc(self: ptr ISearchFolderItemFactory, flvm: FOLDERLOGICALVIEWMODE): HRESULT {.stdcall.} - SetIconSize*: proc(self: ptr ISearchFolderItemFactory, iIconSize: int32): HRESULT {.stdcall.} - SetVisibleColumns*: proc(self: ptr ISearchFolderItemFactory, cVisibleColumns: UINT, rgKey: ptr PROPERTYKEY): HRESULT {.stdcall.} - SetSortColumns*: proc(self: ptr ISearchFolderItemFactory, cSortColumns: UINT, rgSortColumns: ptr SORTCOLUMN): HRESULT {.stdcall.} - SetGroupColumn*: proc(self: ptr ISearchFolderItemFactory, keyGroup: REFPROPERTYKEY): HRESULT {.stdcall.} - SetStacks*: proc(self: ptr ISearchFolderItemFactory, cStackKeys: UINT, rgStackKeys: ptr PROPERTYKEY): HRESULT {.stdcall.} - SetScope*: proc(self: ptr ISearchFolderItemFactory, psiaScope: ptr IShellItemArray): HRESULT {.stdcall.} - SetCondition*: proc(self: ptr ISearchFolderItemFactory, pCondition: ptr ICondition): HRESULT {.stdcall.} - GetShellItem*: proc(self: ptr ISearchFolderItemFactory, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetIDList*: proc(self: ptr ISearchFolderItemFactory, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + SetDisplayName*: proc( + self: ptr ISearchFolderItemFactory, pszDisplayName: LPCWSTR + ): HRESULT {.stdcall.} + SetFolderTypeID*: + proc(self: ptr ISearchFolderItemFactory, ftid: FOLDERTYPEID): HRESULT {.stdcall.} + SetFolderLogicalViewMode*: proc( + self: ptr ISearchFolderItemFactory, flvm: FOLDERLOGICALVIEWMODE + ): HRESULT {.stdcall.} + SetIconSize*: + proc(self: ptr ISearchFolderItemFactory, iIconSize: int32): HRESULT {.stdcall.} + SetVisibleColumns*: proc( + self: ptr ISearchFolderItemFactory, cVisibleColumns: UINT, rgKey: ptr PROPERTYKEY + ): HRESULT {.stdcall.} + SetSortColumns*: proc( + self: ptr ISearchFolderItemFactory, + cSortColumns: UINT, + rgSortColumns: ptr SORTCOLUMN, + ): HRESULT {.stdcall.} + SetGroupColumn*: proc( + self: ptr ISearchFolderItemFactory, keyGroup: REFPROPERTYKEY + ): HRESULT {.stdcall.} + SetStacks*: proc( + self: ptr ISearchFolderItemFactory, cStackKeys: UINT, rgStackKeys: ptr PROPERTYKEY + ): HRESULT {.stdcall.} + SetScope*: proc( + self: ptr ISearchFolderItemFactory, psiaScope: ptr IShellItemArray + ): HRESULT {.stdcall.} + SetCondition*: proc( + self: ptr ISearchFolderItemFactory, pCondition: ptr ICondition + ): HRESULT {.stdcall.} + GetShellItem*: proc( + self: ptr ISearchFolderItemFactory, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetIDList*: proc( + self: ptr ISearchFolderItemFactory, ppidl: ptr PIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + IThumbnailHandlerFactory* {.pure.} = object lpVtbl*: ptr IThumbnailHandlerFactoryVtbl + IThumbnailHandlerFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetThumbnailHandler*: proc(self: ptr IThumbnailHandlerFactory, pidlChild: PCUITEMID_CHILD, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetThumbnailHandler*: proc( + self: ptr IThumbnailHandlerFactory, + pidlChild: PCUITEMID_CHILD, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IParentAndItem* {.pure.} = object lpVtbl*: ptr IParentAndItemVtbl + IParentAndItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetParentAndItem*: proc(self: ptr IParentAndItem, pidlParent: PCIDLIST_ABSOLUTE, psf: ptr IShellFolder, pidlChild: PCUITEMID_CHILD): HRESULT {.stdcall.} - GetParentAndItem*: proc(self: ptr IParentAndItem, ppidlParent: ptr PIDLIST_ABSOLUTE, ppsf: ptr ptr IShellFolder, ppidlChild: ptr PITEMID_CHILD): HRESULT {.stdcall.} + SetParentAndItem*: proc( + self: ptr IParentAndItem, + pidlParent: PCIDLIST_ABSOLUTE, + psf: ptr IShellFolder, + pidlChild: PCUITEMID_CHILD, + ): HRESULT {.stdcall.} + GetParentAndItem*: proc( + self: ptr IParentAndItem, + ppidlParent: ptr PIDLIST_ABSOLUTE, + ppsf: ptr ptr IShellFolder, + ppidlChild: ptr PITEMID_CHILD, + ): HRESULT {.stdcall.} + IDockingWindow* {.pure.} = object lpVtbl*: ptr IDockingWindowVtbl + IDockingWindowVtbl* {.pure, inheritable.} = object of IOleWindowVtbl ShowDW*: proc(self: ptr IDockingWindow, fShow: WINBOOL): HRESULT {.stdcall.} CloseDW*: proc(self: ptr IDockingWindow, dwReserved: DWORD): HRESULT {.stdcall.} - ResizeBorderDW*: proc(self: ptr IDockingWindow, prcBorder: LPCRECT, punkToolbarSite: ptr IUnknown, fReserved: WINBOOL): HRESULT {.stdcall.} + ResizeBorderDW*: proc( + self: ptr IDockingWindow, + prcBorder: LPCRECT, + punkToolbarSite: ptr IUnknown, + fReserved: WINBOOL, + ): HRESULT {.stdcall.} + IDeskBand* {.pure.} = object lpVtbl*: ptr IDeskBandVtbl + IDeskBandVtbl* {.pure, inheritable.} = object of IDockingWindowVtbl - GetBandInfo*: proc(self: ptr IDeskBand, dwBandID: DWORD, dwViewMode: DWORD, pdbi: ptr DESKBANDINFO): HRESULT {.stdcall.} + GetBandInfo*: proc( + self: ptr IDeskBand, dwBandID: DWORD, dwViewMode: DWORD, pdbi: ptr DESKBANDINFO + ): HRESULT {.stdcall.} + IDeskBandInfo* {.pure.} = object lpVtbl*: ptr IDeskBandInfoVtbl + IDeskBandInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDefaultBandWidth*: proc(self: ptr IDeskBandInfo, dwBandID: DWORD, dwViewMode: DWORD, pnWidth: ptr int32): HRESULT {.stdcall.} + GetDefaultBandWidth*: proc( + self: ptr IDeskBandInfo, dwBandID: DWORD, dwViewMode: DWORD, pnWidth: ptr int32 + ): HRESULT {.stdcall.} + IDeskBand2* {.pure.} = object lpVtbl*: ptr IDeskBand2Vtbl + IDeskBand2Vtbl* {.pure, inheritable.} = object of IDeskBandVtbl - CanRenderComposited*: proc(self: ptr IDeskBand2, pfCanRenderComposited: ptr WINBOOL): HRESULT {.stdcall.} - SetCompositionState*: proc(self: ptr IDeskBand2, fCompositionEnabled: WINBOOL): HRESULT {.stdcall.} - GetCompositionState*: proc(self: ptr IDeskBand2, pfCompositionEnabled: ptr WINBOOL): HRESULT {.stdcall.} + CanRenderComposited*: proc( + self: ptr IDeskBand2, pfCanRenderComposited: ptr WINBOOL + ): HRESULT {.stdcall.} + SetCompositionState*: + proc(self: ptr IDeskBand2, fCompositionEnabled: WINBOOL): HRESULT {.stdcall.} + GetCompositionState*: + proc(self: ptr IDeskBand2, pfCompositionEnabled: ptr WINBOOL): HRESULT {.stdcall.} + ITaskbarList* {.pure.} = object lpVtbl*: ptr ITaskbarListVtbl + ITaskbarListVtbl* {.pure, inheritable.} = object of IUnknownVtbl HrInit*: proc(self: ptr ITaskbarList): HRESULT {.stdcall.} AddTab*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.} DeleteTab*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.} ActivateTab*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.} SetActiveAlt*: proc(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.stdcall.} + ITaskbarList2* {.pure.} = object lpVtbl*: ptr ITaskbarList2Vtbl + ITaskbarList2Vtbl* {.pure, inheritable.} = object of ITaskbarListVtbl - MarkFullscreenWindow*: proc(self: ptr ITaskbarList2, hwnd: HWND, fFullscreen: WINBOOL): HRESULT {.stdcall.} + MarkFullscreenWindow*: proc( + self: ptr ITaskbarList2, hwnd: HWND, fFullscreen: WINBOOL + ): HRESULT {.stdcall.} + ITaskbarList3* {.pure.} = object lpVtbl*: ptr ITaskbarList3Vtbl + ITaskbarList3Vtbl* {.pure, inheritable.} = object of ITaskbarList2Vtbl - SetProgressValue*: proc(self: ptr ITaskbarList3, hwnd: HWND, ullCompleted: ULONGLONG, ullTotal: ULONGLONG): HRESULT {.stdcall.} - SetProgressState*: proc(self: ptr ITaskbarList3, hwnd: HWND, tbpFlags: TBPFLAG): HRESULT {.stdcall.} - RegisterTab*: proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND): HRESULT {.stdcall.} + SetProgressValue*: proc( + self: ptr ITaskbarList3, hwnd: HWND, ullCompleted: ULONGLONG, ullTotal: ULONGLONG + ): HRESULT {.stdcall.} + SetProgressState*: + proc(self: ptr ITaskbarList3, hwnd: HWND, tbpFlags: TBPFLAG): HRESULT {.stdcall.} + RegisterTab*: + proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND): HRESULT {.stdcall.} UnregisterTab*: proc(self: ptr ITaskbarList3, hwndTab: HWND): HRESULT {.stdcall.} - SetTabOrder*: proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndInsertBefore: HWND): HRESULT {.stdcall.} - SetTabActive*: proc(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND, dwReserved: DWORD): HRESULT {.stdcall.} - ThumbBarAddButtons*: proc(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.stdcall.} - ThumbBarUpdateButtons*: proc(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.stdcall.} - ThumbBarSetImageList*: proc(self: ptr ITaskbarList3, hwnd: HWND, himl: HIMAGELIST): HRESULT {.stdcall.} - SetOverlayIcon*: proc(self: ptr ITaskbarList3, hwnd: HWND, hIcon: HICON, pszDescription: LPCWSTR): HRESULT {.stdcall.} - SetThumbnailTooltip*: proc(self: ptr ITaskbarList3, hwnd: HWND, pszTip: LPCWSTR): HRESULT {.stdcall.} - SetThumbnailClip*: proc(self: ptr ITaskbarList3, hwnd: HWND, prcClip: ptr RECT): HRESULT {.stdcall.} + SetTabOrder*: proc( + self: ptr ITaskbarList3, hwndTab: HWND, hwndInsertBefore: HWND + ): HRESULT {.stdcall.} + SetTabActive*: proc( + self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND, dwReserved: DWORD + ): HRESULT {.stdcall.} + ThumbBarAddButtons*: proc( + self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON + ): HRESULT {.stdcall.} + ThumbBarUpdateButtons*: proc( + self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON + ): HRESULT {.stdcall.} + ThumbBarSetImageList*: + proc(self: ptr ITaskbarList3, hwnd: HWND, himl: HIMAGELIST): HRESULT {.stdcall.} + SetOverlayIcon*: proc( + self: ptr ITaskbarList3, hwnd: HWND, hIcon: HICON, pszDescription: LPCWSTR + ): HRESULT {.stdcall.} + SetThumbnailTooltip*: + proc(self: ptr ITaskbarList3, hwnd: HWND, pszTip: LPCWSTR): HRESULT {.stdcall.} + SetThumbnailClip*: + proc(self: ptr ITaskbarList3, hwnd: HWND, prcClip: ptr RECT): HRESULT {.stdcall.} + ITaskbarList4* {.pure.} = object lpVtbl*: ptr ITaskbarList4Vtbl + ITaskbarList4Vtbl* {.pure, inheritable.} = object of ITaskbarList3Vtbl - SetTabProperties*: proc(self: ptr ITaskbarList4, hwndTab: HWND, stpFlags: STPFLAG): HRESULT {.stdcall.} + SetTabProperties*: proc( + self: ptr ITaskbarList4, hwndTab: HWND, stpFlags: STPFLAG + ): HRESULT {.stdcall.} + IStartMenuPinnedList* {.pure.} = object lpVtbl*: ptr IStartMenuPinnedListVtbl + IStartMenuPinnedListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RemoveFromList*: proc(self: ptr IStartMenuPinnedList, pitem: ptr IShellItem): HRESULT {.stdcall.} + RemoveFromList*: + proc(self: ptr IStartMenuPinnedList, pitem: ptr IShellItem): HRESULT {.stdcall.} + ICDBurn* {.pure.} = object lpVtbl*: ptr ICDBurnVtbl + ICDBurnVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRecorderDriveLetter*: proc(self: ptr ICDBurn, pszDrive: LPWSTR, cch: UINT): HRESULT {.stdcall.} + GetRecorderDriveLetter*: + proc(self: ptr ICDBurn, pszDrive: LPWSTR, cch: UINT): HRESULT {.stdcall.} Burn*: proc(self: ptr ICDBurn, hwnd: HWND): HRESULT {.stdcall.} - HasRecordableDrive*: proc(self: ptr ICDBurn, pfHasRecorder: ptr WINBOOL): HRESULT {.stdcall.} + HasRecordableDrive*: + proc(self: ptr ICDBurn, pfHasRecorder: ptr WINBOOL): HRESULT {.stdcall.} + IWizardSite* {.pure.} = object lpVtbl*: ptr IWizardSiteVtbl + IWizardSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPreviousPage*: proc(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} - GetNextPage*: proc(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} - GetCancelledPage*: proc(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + GetPreviousPage*: + proc(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + GetNextPage*: + proc(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + GetCancelledPage*: + proc(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + IWizardExtension* {.pure.} = object lpVtbl*: ptr IWizardExtensionVtbl + IWizardExtensionVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddPages*: proc(self: ptr IWizardExtension, aPages: ptr HPROPSHEETPAGE, cPages: UINT, pnPagesAdded: ptr UINT): HRESULT {.stdcall.} - GetFirstPage*: proc(self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} - GetLastPage*: proc(self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + AddPages*: proc( + self: ptr IWizardExtension, + aPages: ptr HPROPSHEETPAGE, + cPages: UINT, + pnPagesAdded: ptr UINT, + ): HRESULT {.stdcall.} + GetFirstPage*: + proc(self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + GetLastPage*: + proc(self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE): HRESULT {.stdcall.} + IWebWizardExtension* {.pure.} = object lpVtbl*: ptr IWebWizardExtensionVtbl + IWebWizardExtensionVtbl* {.pure, inheritable.} = object of IWizardExtensionVtbl - SetInitialURL*: proc(self: ptr IWebWizardExtension, pszURL: LPCWSTR): HRESULT {.stdcall.} - SetErrorURL*: proc(self: ptr IWebWizardExtension, pszErrorURL: LPCWSTR): HRESULT {.stdcall.} + SetInitialURL*: + proc(self: ptr IWebWizardExtension, pszURL: LPCWSTR): HRESULT {.stdcall.} + SetErrorURL*: + proc(self: ptr IWebWizardExtension, pszErrorURL: LPCWSTR): HRESULT {.stdcall.} + IPublishingWizard* {.pure.} = object lpVtbl*: ptr IPublishingWizardVtbl + IPublishingWizardVtbl* {.pure, inheritable.} = object of IWizardExtensionVtbl - Initialize*: proc(self: ptr IPublishingWizard, pdo: ptr IDataObject, dwOptions: DWORD, pszServiceScope: LPCWSTR): HRESULT {.stdcall.} - GetTransferManifest*: proc(self: ptr IPublishingWizard, phrFromTransfer: ptr HRESULT, pdocManifest: ptr ptr IXMLDOMDocument): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IPublishingWizard, + pdo: ptr IDataObject, + dwOptions: DWORD, + pszServiceScope: LPCWSTR, + ): HRESULT {.stdcall.} + GetTransferManifest*: proc( + self: ptr IPublishingWizard, + phrFromTransfer: ptr HRESULT, + pdocManifest: ptr ptr IXMLDOMDocument, + ): HRESULT {.stdcall.} + IFolderViewHost* {.pure.} = object lpVtbl*: ptr IFolderViewHostVtbl + IFolderViewHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IFolderViewHost, hwndParent: HWND, pdo: ptr IDataObject, prc: ptr RECT): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IFolderViewHost, hwndParent: HWND, pdo: ptr IDataObject, prc: ptr RECT + ): HRESULT {.stdcall.} + IExplorerBrowserEvents* {.pure.} = object lpVtbl*: ptr IExplorerBrowserEventsVtbl + IExplorerBrowserEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnNavigationPending*: proc(self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} - OnViewCreated*: proc(self: ptr IExplorerBrowserEvents, psv: ptr IShellView): HRESULT {.stdcall.} - OnNavigationComplete*: proc(self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} - OnNavigationFailed*: proc(self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + OnNavigationPending*: proc( + self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + OnViewCreated*: + proc(self: ptr IExplorerBrowserEvents, psv: ptr IShellView): HRESULT {.stdcall.} + OnNavigationComplete*: proc( + self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + OnNavigationFailed*: proc( + self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + IExplorerBrowser* {.pure.} = object lpVtbl*: ptr IExplorerBrowserVtbl + IExplorerBrowserVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IExplorerBrowser, hwndParent: HWND, prc: ptr RECT, pfs: ptr FOLDERSETTINGS): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IExplorerBrowser, + hwndParent: HWND, + prc: ptr RECT, + pfs: ptr FOLDERSETTINGS, + ): HRESULT {.stdcall.} Destroy*: proc(self: ptr IExplorerBrowser): HRESULT {.stdcall.} - SetRect*: proc(self: ptr IExplorerBrowser, phdwp: ptr HDWP, rcBrowser: RECT): HRESULT {.stdcall.} - SetPropertyBag*: proc(self: ptr IExplorerBrowser, pszPropertyBag: LPCWSTR): HRESULT {.stdcall.} - SetEmptyText*: proc(self: ptr IExplorerBrowser, pszEmptyText: LPCWSTR): HRESULT {.stdcall.} - SetFolderSettings*: proc(self: ptr IExplorerBrowser, pfs: ptr FOLDERSETTINGS): HRESULT {.stdcall.} - Advise*: proc(self: ptr IExplorerBrowser, psbe: ptr IExplorerBrowserEvents, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + SetRect*: proc( + self: ptr IExplorerBrowser, phdwp: ptr HDWP, rcBrowser: RECT + ): HRESULT {.stdcall.} + SetPropertyBag*: + proc(self: ptr IExplorerBrowser, pszPropertyBag: LPCWSTR): HRESULT {.stdcall.} + SetEmptyText*: + proc(self: ptr IExplorerBrowser, pszEmptyText: LPCWSTR): HRESULT {.stdcall.} + SetFolderSettings*: + proc(self: ptr IExplorerBrowser, pfs: ptr FOLDERSETTINGS): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IExplorerBrowser, psbe: ptr IExplorerBrowserEvents, pdwCookie: ptr DWORD + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IExplorerBrowser, dwCookie: DWORD): HRESULT {.stdcall.} - SetOptions*: proc(self: ptr IExplorerBrowser, dwFlag: EXPLORER_BROWSER_OPTIONS): HRESULT {.stdcall.} - GetOptions*: proc(self: ptr IExplorerBrowser, pdwFlag: ptr EXPLORER_BROWSER_OPTIONS): HRESULT {.stdcall.} - BrowseToIDList*: proc(self: ptr IExplorerBrowser, pidl: PCUIDLIST_RELATIVE, uFlags: UINT): HRESULT {.stdcall.} - BrowseToObject*: proc(self: ptr IExplorerBrowser, punk: ptr IUnknown, uFlags: UINT): HRESULT {.stdcall.} - FillFromObject*: proc(self: ptr IExplorerBrowser, punk: ptr IUnknown, dwFlags: EXPLORER_BROWSER_FILL_FLAGS): HRESULT {.stdcall.} + SetOptions*: proc( + self: ptr IExplorerBrowser, dwFlag: EXPLORER_BROWSER_OPTIONS + ): HRESULT {.stdcall.} + GetOptions*: proc( + self: ptr IExplorerBrowser, pdwFlag: ptr EXPLORER_BROWSER_OPTIONS + ): HRESULT {.stdcall.} + BrowseToIDList*: proc( + self: ptr IExplorerBrowser, pidl: PCUIDLIST_RELATIVE, uFlags: UINT + ): HRESULT {.stdcall.} + BrowseToObject*: proc( + self: ptr IExplorerBrowser, punk: ptr IUnknown, uFlags: UINT + ): HRESULT {.stdcall.} + FillFromObject*: proc( + self: ptr IExplorerBrowser, + punk: ptr IUnknown, + dwFlags: EXPLORER_BROWSER_FILL_FLAGS, + ): HRESULT {.stdcall.} RemoveAll*: proc(self: ptr IExplorerBrowser): HRESULT {.stdcall.} - GetCurrentView*: proc(self: ptr IExplorerBrowser, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetCurrentView*: proc( + self: ptr IExplorerBrowser, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IAccessibleObject* {.pure.} = object lpVtbl*: ptr IAccessibleObjectVtbl + IAccessibleObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAccessibleName*: proc(self: ptr IAccessibleObject, pszName: LPCWSTR): HRESULT {.stdcall.} + SetAccessibleName*: + proc(self: ptr IAccessibleObject, pszName: LPCWSTR): HRESULT {.stdcall.} + IResultsFolder* {.pure.} = object lpVtbl*: ptr IResultsFolderVtbl + IResultsFolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl AddItem*: proc(self: ptr IResultsFolder, psi: ptr IShellItem): HRESULT {.stdcall.} - AddIDList*: proc(self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE, ppidlAdded: ptr PITEMID_CHILD): HRESULT {.stdcall.} - RemoveItem*: proc(self: ptr IResultsFolder, psi: ptr IShellItem): HRESULT {.stdcall.} - RemoveIDList*: proc(self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + AddIDList*: proc( + self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE, ppidlAdded: ptr PITEMID_CHILD + ): HRESULT {.stdcall.} + RemoveItem*: + proc(self: ptr IResultsFolder, psi: ptr IShellItem): HRESULT {.stdcall.} + RemoveIDList*: + proc(self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} RemoveAll*: proc(self: ptr IResultsFolder): HRESULT {.stdcall.} + IEnumObjects* {.pure.} = object lpVtbl*: ptr IEnumObjectsVtbl + IEnumObjectsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumObjects, celt: ULONG, riid: REFIID, rgelt: ptr pointer, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumObjects, + celt: ULONG, + riid: REFIID, + rgelt: ptr pointer, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumObjects, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumObjects): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumObjects, ppenum: ptr ptr IEnumObjects): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IEnumObjects, ppenum: ptr ptr IEnumObjects): HRESULT {.stdcall.} + IOperationsProgressDialog* {.pure.} = object lpVtbl*: ptr IOperationsProgressDialogVtbl + IOperationsProgressDialogVtbl* {.pure, inheritable.} = object of IUnknownVtbl - StartProgressDialog*: proc(self: ptr IOperationsProgressDialog, hwndOwner: HWND, flags: OPPROGDLGF): HRESULT {.stdcall.} + StartProgressDialog*: proc( + self: ptr IOperationsProgressDialog, hwndOwner: HWND, flags: OPPROGDLGF + ): HRESULT {.stdcall.} StopProgressDialog*: proc(self: ptr IOperationsProgressDialog): HRESULT {.stdcall.} - SetOperation*: proc(self: ptr IOperationsProgressDialog, action: SPACTION): HRESULT {.stdcall.} - SetMode*: proc(self: ptr IOperationsProgressDialog, mode: PDMODE): HRESULT {.stdcall.} - UpdateProgress*: proc(self: ptr IOperationsProgressDialog, ullPointsCurrent: ULONGLONG, ullPointsTotal: ULONGLONG, ullSizeCurrent: ULONGLONG, ullSizeTotal: ULONGLONG, ullItemsCurrent: ULONGLONG, ullItemsTotal: ULONGLONG): HRESULT {.stdcall.} - UpdateLocations*: proc(self: ptr IOperationsProgressDialog, psiSource: ptr IShellItem, psiTarget: ptr IShellItem, psiItem: ptr IShellItem): HRESULT {.stdcall.} + SetOperation*: + proc(self: ptr IOperationsProgressDialog, action: SPACTION): HRESULT {.stdcall.} + SetMode*: + proc(self: ptr IOperationsProgressDialog, mode: PDMODE): HRESULT {.stdcall.} + UpdateProgress*: proc( + self: ptr IOperationsProgressDialog, + ullPointsCurrent: ULONGLONG, + ullPointsTotal: ULONGLONG, + ullSizeCurrent: ULONGLONG, + ullSizeTotal: ULONGLONG, + ullItemsCurrent: ULONGLONG, + ullItemsTotal: ULONGLONG, + ): HRESULT {.stdcall.} + UpdateLocations*: proc( + self: ptr IOperationsProgressDialog, + psiSource: ptr IShellItem, + psiTarget: ptr IShellItem, + psiItem: ptr IShellItem, + ): HRESULT {.stdcall.} ResetTimer*: proc(self: ptr IOperationsProgressDialog): HRESULT {.stdcall.} PauseTimer*: proc(self: ptr IOperationsProgressDialog): HRESULT {.stdcall.} ResumeTimer*: proc(self: ptr IOperationsProgressDialog): HRESULT {.stdcall.} - GetMilliseconds*: proc(self: ptr IOperationsProgressDialog, pullElapsed: ptr ULONGLONG, pullRemaining: ptr ULONGLONG): HRESULT {.stdcall.} - GetOperationStatus*: proc(self: ptr IOperationsProgressDialog, popstatus: ptr PDOPSTATUS): HRESULT {.stdcall.} + GetMilliseconds*: proc( + self: ptr IOperationsProgressDialog, + pullElapsed: ptr ULONGLONG, + pullRemaining: ptr ULONGLONG, + ): HRESULT {.stdcall.} + GetOperationStatus*: proc( + self: ptr IOperationsProgressDialog, popstatus: ptr PDOPSTATUS + ): HRESULT {.stdcall.} + IIOCancelInformation* {.pure.} = object lpVtbl*: ptr IIOCancelInformationVtbl + IIOCancelInformationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetCancelInformation*: proc(self: ptr IIOCancelInformation, dwThreadID: DWORD, uMsgCancel: UINT): HRESULT {.stdcall.} - GetCancelInformation*: proc(self: ptr IIOCancelInformation, pdwThreadID: ptr DWORD, puMsgCancel: ptr UINT): HRESULT {.stdcall.} + SetCancelInformation*: proc( + self: ptr IIOCancelInformation, dwThreadID: DWORD, uMsgCancel: UINT + ): HRESULT {.stdcall.} + GetCancelInformation*: proc( + self: ptr IIOCancelInformation, pdwThreadID: ptr DWORD, puMsgCancel: ptr UINT + ): HRESULT {.stdcall.} + IFileOperation* {.pure.} = object lpVtbl*: ptr IFileOperationVtbl + IFileOperationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr IFileOperation, pfops: ptr IFileOperationProgressSink, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IFileOperation, + pfops: ptr IFileOperationProgressSink, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IFileOperation, dwCookie: DWORD): HRESULT {.stdcall.} - SetOperationFlags*: proc(self: ptr IFileOperation, dwOperationFlags: DWORD): HRESULT {.stdcall.} - SetProgressMessage*: proc(self: ptr IFileOperation, pszMessage: LPCWSTR): HRESULT {.stdcall.} - SetProgressDialog*: proc(self: ptr IFileOperation, popd: ptr IOperationsProgressDialog): HRESULT {.stdcall.} - SetProperties*: proc(self: ptr IFileOperation, pproparray: ptr IPropertyChangeArray): HRESULT {.stdcall.} - SetOwnerWindow*: proc(self: ptr IFileOperation, hwndOwner: HWND): HRESULT {.stdcall.} - ApplyPropertiesToItem*: proc(self: ptr IFileOperation, psiItem: ptr IShellItem): HRESULT {.stdcall.} - ApplyPropertiesToItems*: proc(self: ptr IFileOperation, punkItems: ptr IUnknown): HRESULT {.stdcall.} - RenameItem*: proc(self: ptr IFileOperation, psiItem: ptr IShellItem, pszNewName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.stdcall.} - RenameItems*: proc(self: ptr IFileOperation, pUnkItems: ptr IUnknown, pszNewName: LPCWSTR): HRESULT {.stdcall.} - MoveItem*: proc(self: ptr IFileOperation, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.stdcall.} - MoveItems*: proc(self: ptr IFileOperation, punkItems: ptr IUnknown, psiDestinationFolder: ptr IShellItem): HRESULT {.stdcall.} - CopyItem*: proc(self: ptr IFileOperation, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszCopyName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.stdcall.} - CopyItems*: proc(self: ptr IFileOperation, punkItems: ptr IUnknown, psiDestinationFolder: ptr IShellItem): HRESULT {.stdcall.} - DeleteItem*: proc(self: ptr IFileOperation, psiItem: ptr IShellItem, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.stdcall.} - DeleteItems*: proc(self: ptr IFileOperation, punkItems: ptr IUnknown): HRESULT {.stdcall.} - NewItem*: proc(self: ptr IFileOperation, psiDestinationFolder: ptr IShellItem, dwFileAttributes: DWORD, pszName: LPCWSTR, pszTemplateName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.stdcall.} + SetOperationFlags*: + proc(self: ptr IFileOperation, dwOperationFlags: DWORD): HRESULT {.stdcall.} + SetProgressMessage*: + proc(self: ptr IFileOperation, pszMessage: LPCWSTR): HRESULT {.stdcall.} + SetProgressDialog*: proc( + self: ptr IFileOperation, popd: ptr IOperationsProgressDialog + ): HRESULT {.stdcall.} + SetProperties*: proc( + self: ptr IFileOperation, pproparray: ptr IPropertyChangeArray + ): HRESULT {.stdcall.} + SetOwnerWindow*: + proc(self: ptr IFileOperation, hwndOwner: HWND): HRESULT {.stdcall.} + ApplyPropertiesToItem*: + proc(self: ptr IFileOperation, psiItem: ptr IShellItem): HRESULT {.stdcall.} + ApplyPropertiesToItems*: + proc(self: ptr IFileOperation, punkItems: ptr IUnknown): HRESULT {.stdcall.} + RenameItem*: proc( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + pszNewName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, + ): HRESULT {.stdcall.} + RenameItems*: proc( + self: ptr IFileOperation, pUnkItems: ptr IUnknown, pszNewName: LPCWSTR + ): HRESULT {.stdcall.} + MoveItem*: proc( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, + ): HRESULT {.stdcall.} + MoveItems*: proc( + self: ptr IFileOperation, + punkItems: ptr IUnknown, + psiDestinationFolder: ptr IShellItem, + ): HRESULT {.stdcall.} + CopyItem*: proc( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszCopyName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, + ): HRESULT {.stdcall.} + CopyItems*: proc( + self: ptr IFileOperation, + punkItems: ptr IUnknown, + psiDestinationFolder: ptr IShellItem, + ): HRESULT {.stdcall.} + DeleteItem*: proc( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + pfopsItem: ptr IFileOperationProgressSink, + ): HRESULT {.stdcall.} + DeleteItems*: + proc(self: ptr IFileOperation, punkItems: ptr IUnknown): HRESULT {.stdcall.} + NewItem*: proc( + self: ptr IFileOperation, + psiDestinationFolder: ptr IShellItem, + dwFileAttributes: DWORD, + pszName: LPCWSTR, + pszTemplateName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, + ): HRESULT {.stdcall.} PerformOperations*: proc(self: ptr IFileOperation): HRESULT {.stdcall.} - GetAnyOperationsAborted*: proc(self: ptr IFileOperation, pfAnyOperationsAborted: ptr WINBOOL): HRESULT {.stdcall.} + GetAnyOperationsAborted*: proc( + self: ptr IFileOperation, pfAnyOperationsAborted: ptr WINBOOL + ): HRESULT {.stdcall.} + IObjectProvider* {.pure.} = object lpVtbl*: ptr IObjectProviderVtbl + IObjectProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryObject*: proc(self: ptr IObjectProvider, guidObject: REFGUID, riid: REFIID, ppvOut: ptr pointer): HRESULT {.stdcall.} + QueryObject*: proc( + self: ptr IObjectProvider, guidObject: REFGUID, riid: REFIID, ppvOut: ptr pointer + ): HRESULT {.stdcall.} + INamespaceWalkCB* {.pure.} = object lpVtbl*: ptr INamespaceWalkCBVtbl + INamespaceWalkCBVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FoundItem*: proc(self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD): HRESULT {.stdcall.} - EnterFolder*: proc(self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD): HRESULT {.stdcall.} - LeaveFolder*: proc(self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD): HRESULT {.stdcall.} - InitializeProgressDialog*: proc(self: ptr INamespaceWalkCB, ppszTitle: ptr LPWSTR, ppszCancel: ptr LPWSTR): HRESULT {.stdcall.} + FoundItem*: proc( + self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD + ): HRESULT {.stdcall.} + EnterFolder*: proc( + self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD + ): HRESULT {.stdcall.} + LeaveFolder*: proc( + self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD + ): HRESULT {.stdcall.} + InitializeProgressDialog*: proc( + self: ptr INamespaceWalkCB, ppszTitle: ptr LPWSTR, ppszCancel: ptr LPWSTR + ): HRESULT {.stdcall.} + INamespaceWalkCB2* {.pure.} = object lpVtbl*: ptr INamespaceWalkCB2Vtbl + INamespaceWalkCB2Vtbl* {.pure, inheritable.} = object of INamespaceWalkCBVtbl WalkComplete*: proc(self: ptr INamespaceWalkCB2, hr: HRESULT): HRESULT {.stdcall.} + INamespaceWalk* {.pure.} = object lpVtbl*: ptr INamespaceWalkVtbl + INamespaceWalkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Walk*: proc(self: ptr INamespaceWalk, punkToWalk: ptr IUnknown, dwFlags: DWORD, cDepth: int32, pnswcb: ptr INamespaceWalkCB): HRESULT {.stdcall.} - GetIDArrayResult*: proc(self: ptr INamespaceWalk, pcItems: ptr UINT, prgpidl: ptr ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + Walk*: proc( + self: ptr INamespaceWalk, + punkToWalk: ptr IUnknown, + dwFlags: DWORD, + cDepth: int32, + pnswcb: ptr INamespaceWalkCB, + ): HRESULT {.stdcall.} + GetIDArrayResult*: proc( + self: ptr INamespaceWalk, pcItems: ptr UINT, prgpidl: ptr ptr PIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + IAutoCompleteDropDown* {.pure.} = object lpVtbl*: ptr IAutoCompleteDropDownVtbl + IAutoCompleteDropDownVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDropDownStatus*: proc(self: ptr IAutoCompleteDropDown, pdwFlags: ptr DWORD, ppwszString: ptr LPWSTR): HRESULT {.stdcall.} + GetDropDownStatus*: proc( + self: ptr IAutoCompleteDropDown, pdwFlags: ptr DWORD, ppwszString: ptr LPWSTR + ): HRESULT {.stdcall.} ResetEnumerator*: proc(self: ptr IAutoCompleteDropDown): HRESULT {.stdcall.} + IBandSite* {.pure.} = object lpVtbl*: ptr IBandSiteVtbl + IBandSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl AddBand*: proc(self: ptr IBandSite, punk: ptr IUnknown): HRESULT {.stdcall.} - EnumBands*: proc(self: ptr IBandSite, uBand: UINT, pdwBandID: ptr DWORD): HRESULT {.stdcall.} - QueryBand*: proc(self: ptr IBandSite, dwBandID: DWORD, ppstb: ptr ptr IDeskBand, pdwState: ptr DWORD, pszName: LPWSTR, cchName: int32): HRESULT {.stdcall.} - SetBandState*: proc(self: ptr IBandSite, dwBandID: DWORD, dwMask: DWORD, dwState: DWORD): HRESULT {.stdcall.} + EnumBands*: + proc(self: ptr IBandSite, uBand: UINT, pdwBandID: ptr DWORD): HRESULT {.stdcall.} + QueryBand*: proc( + self: ptr IBandSite, + dwBandID: DWORD, + ppstb: ptr ptr IDeskBand, + pdwState: ptr DWORD, + pszName: LPWSTR, + cchName: int32, + ): HRESULT {.stdcall.} + SetBandState*: proc( + self: ptr IBandSite, dwBandID: DWORD, dwMask: DWORD, dwState: DWORD + ): HRESULT {.stdcall.} RemoveBand*: proc(self: ptr IBandSite, dwBandID: DWORD): HRESULT {.stdcall.} - GetBandObject*: proc(self: ptr IBandSite, dwBandID: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - SetBandSiteInfo*: proc(self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO): HRESULT {.stdcall.} - GetBandSiteInfo*: proc(self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO): HRESULT {.stdcall.} + GetBandObject*: proc( + self: ptr IBandSite, dwBandID: DWORD, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + SetBandSiteInfo*: + proc(self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO): HRESULT {.stdcall.} + GetBandSiteInfo*: + proc(self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO): HRESULT {.stdcall.} + IModalWindow* {.pure.} = object lpVtbl*: ptr IModalWindowVtbl + IModalWindowVtbl* {.pure, inheritable.} = object of IUnknownVtbl Show*: proc(self: ptr IModalWindow, hwndOwner: HWND): HRESULT {.stdcall.} + ICDBurnExt* {.pure.} = object lpVtbl*: ptr ICDBurnExtVtbl + ICDBurnExtVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSupportedActionTypes*: proc(self: ptr ICDBurnExt, pdwActions: ptr CDBE_ACTIONS): HRESULT {.stdcall.} + GetSupportedActionTypes*: + proc(self: ptr ICDBurnExt, pdwActions: ptr CDBE_ACTIONS): HRESULT {.stdcall.} + IContextMenuSite* {.pure.} = object lpVtbl*: ptr IContextMenuSiteVtbl + IContextMenuSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - DoContextMenuPopup*: proc(self: ptr IContextMenuSite, punkContextMenu: ptr IUnknown, fFlags: UINT, pt: POINT): HRESULT {.stdcall.} + DoContextMenuPopup*: proc( + self: ptr IContextMenuSite, punkContextMenu: ptr IUnknown, fFlags: UINT, pt: POINT + ): HRESULT {.stdcall.} + IEnumReadyCallback* {.pure.} = object lpVtbl*: ptr IEnumReadyCallbackVtbl + IEnumReadyCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl EnumReady*: proc(self: ptr IEnumReadyCallback): HRESULT {.stdcall.} + IEnumerableView* {.pure.} = object lpVtbl*: ptr IEnumerableViewVtbl + IEnumerableViewVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetEnumReadyCallback*: proc(self: ptr IEnumerableView, percb: ptr IEnumReadyCallback): HRESULT {.stdcall.} - CreateEnumIDListFromContents*: proc(self: ptr IEnumerableView, pidlFolder: PCIDLIST_ABSOLUTE, dwEnumFlags: DWORD, ppEnumIDList: ptr ptr IEnumIDList): HRESULT {.stdcall.} + SetEnumReadyCallback*: proc( + self: ptr IEnumerableView, percb: ptr IEnumReadyCallback + ): HRESULT {.stdcall.} + CreateEnumIDListFromContents*: proc( + self: ptr IEnumerableView, + pidlFolder: PCIDLIST_ABSOLUTE, + dwEnumFlags: DWORD, + ppEnumIDList: ptr ptr IEnumIDList, + ): HRESULT {.stdcall.} + IInsertItem* {.pure.} = object lpVtbl*: ptr IInsertItemVtbl + IInsertItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InsertItem*: proc(self: ptr IInsertItem, pidl: PCUIDLIST_RELATIVE): HRESULT {.stdcall.} + InsertItem*: + proc(self: ptr IInsertItem, pidl: PCUIDLIST_RELATIVE): HRESULT {.stdcall.} + IMenuBand* {.pure.} = object lpVtbl*: ptr IMenuBandVtbl + IMenuBandVtbl* {.pure, inheritable.} = object of IUnknownVtbl IsMenuMessage*: proc(self: ptr IMenuBand, pmsg: ptr MSG): HRESULT {.stdcall.} - TranslateMenuMessage*: proc(self: ptr IMenuBand, pmsg: ptr MSG, plRet: ptr LRESULT): HRESULT {.stdcall.} + TranslateMenuMessage*: + proc(self: ptr IMenuBand, pmsg: ptr MSG, plRet: ptr LRESULT): HRESULT {.stdcall.} + IFolderBandPriv* {.pure.} = object lpVtbl*: ptr IFolderBandPrivVtbl + IFolderBandPrivVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetCascade*: proc(self: ptr IFolderBandPriv, fCascade: WINBOOL): HRESULT {.stdcall.} - SetAccelerators*: proc(self: ptr IFolderBandPriv, fAccelerators: WINBOOL): HRESULT {.stdcall.} + SetAccelerators*: + proc(self: ptr IFolderBandPriv, fAccelerators: WINBOOL): HRESULT {.stdcall.} SetNoIcons*: proc(self: ptr IFolderBandPriv, fNoIcons: WINBOOL): HRESULT {.stdcall.} SetNoText*: proc(self: ptr IFolderBandPriv, fNoText: WINBOOL): HRESULT {.stdcall.} + IRegTreeItem* {.pure.} = object lpVtbl*: ptr IRegTreeItemVtbl + IRegTreeItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCheckState*: proc(self: ptr IRegTreeItem, pbCheck: ptr WINBOOL): HRESULT {.stdcall.} + GetCheckState*: + proc(self: ptr IRegTreeItem, pbCheck: ptr WINBOOL): HRESULT {.stdcall.} SetCheckState*: proc(self: ptr IRegTreeItem, bCheck: WINBOOL): HRESULT {.stdcall.} + IImageRecompress* {.pure.} = object lpVtbl*: ptr IImageRecompressVtbl + IImageRecompressVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RecompressImage*: proc(self: ptr IImageRecompress, psi: ptr IShellItem, cx: int32, cy: int32, iQuality: int32, pstg: ptr IStorage, ppstrmOut: ptr ptr IStream): HRESULT {.stdcall.} + RecompressImage*: proc( + self: ptr IImageRecompress, + psi: ptr IShellItem, + cx: int32, + cy: int32, + iQuality: int32, + pstg: ptr IStorage, + ppstrmOut: ptr ptr IStream, + ): HRESULT {.stdcall.} + IDeskBar* {.pure.} = object lpVtbl*: ptr IDeskBarVtbl + IDeskBarVtbl* {.pure, inheritable.} = object of IOleWindowVtbl SetClient*: proc(self: ptr IDeskBar, punkClient: ptr IUnknown): HRESULT {.stdcall.} - GetClient*: proc(self: ptr IDeskBar, ppunkClient: ptr ptr IUnknown): HRESULT {.stdcall.} + GetClient*: + proc(self: ptr IDeskBar, ppunkClient: ptr ptr IUnknown): HRESULT {.stdcall.} OnPosRectChangeDB*: proc(self: ptr IDeskBar, prc: ptr RECT): HRESULT {.stdcall.} + IMenuPopup* {.pure.} = object lpVtbl*: ptr IMenuPopupVtbl + IMenuPopupVtbl* {.pure, inheritable.} = object of IDeskBarVtbl - Popup*: proc(self: ptr IMenuPopup, ppt: ptr POINTL, prcExclude: ptr RECTL, dwFlags: MP_POPUPFLAGS): HRESULT {.stdcall.} + Popup*: proc( + self: ptr IMenuPopup, + ppt: ptr POINTL, + prcExclude: ptr RECTL, + dwFlags: MP_POPUPFLAGS, + ): HRESULT {.stdcall.} OnSelect*: proc(self: ptr IMenuPopup, dwSelectType: DWORD): HRESULT {.stdcall.} - SetSubMenu*: proc(self: ptr IMenuPopup, pmp: ptr IMenuPopup, fSet: WINBOOL): HRESULT {.stdcall.} + SetSubMenu*: proc(self: ptr IMenuPopup, pmp: ptr IMenuPopup, fSet: WINBOOL): HRESULT {. + stdcall + .} + IFileIsInUse* {.pure.} = object lpVtbl*: ptr IFileIsInUseVtbl + IFileIsInUseVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetAppName*: proc(self: ptr IFileIsInUse, ppszName: ptr LPWSTR): HRESULT {.stdcall.} - GetUsage*: proc(self: ptr IFileIsInUse, pfut: ptr FILE_USAGE_TYPE): HRESULT {.stdcall.} - GetCapabilities*: proc(self: ptr IFileIsInUse, pdwCapFlags: ptr DWORD): HRESULT {.stdcall.} + GetUsage*: + proc(self: ptr IFileIsInUse, pfut: ptr FILE_USAGE_TYPE): HRESULT {.stdcall.} + GetCapabilities*: + proc(self: ptr IFileIsInUse, pdwCapFlags: ptr DWORD): HRESULT {.stdcall.} GetSwitchToHWND*: proc(self: ptr IFileIsInUse, phwnd: ptr HWND): HRESULT {.stdcall.} CloseFile*: proc(self: ptr IFileIsInUse): HRESULT {.stdcall.} + IShellItemFilter* {.pure.} = object lpVtbl*: ptr IShellItemFilterVtbl + IShellItemFilterVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IncludeItem*: proc(self: ptr IShellItemFilter, psi: ptr IShellItem): HRESULT {.stdcall.} - GetEnumFlagsForItem*: proc(self: ptr IShellItemFilter, psi: ptr IShellItem, pgrfFlags: ptr SHCONTF): HRESULT {.stdcall.} + IncludeItem*: + proc(self: ptr IShellItemFilter, psi: ptr IShellItem): HRESULT {.stdcall.} + GetEnumFlagsForItem*: proc( + self: ptr IShellItemFilter, psi: ptr IShellItem, pgrfFlags: ptr SHCONTF + ): HRESULT {.stdcall.} + IFileDialog* {.pure.} = object lpVtbl*: ptr IFileDialogVtbl + IFileDialogVtbl* {.pure, inheritable.} = object of IModalWindowVtbl - SetFileTypes*: proc(self: ptr IFileDialog, cFileTypes: UINT, rgFilterSpec: ptr COMDLG_FILTERSPEC): HRESULT {.stdcall.} + SetFileTypes*: proc( + self: ptr IFileDialog, cFileTypes: UINT, rgFilterSpec: ptr COMDLG_FILTERSPEC + ): HRESULT {.stdcall.} SetFileTypeIndex*: proc(self: ptr IFileDialog, iFileType: UINT): HRESULT {.stdcall.} - GetFileTypeIndex*: proc(self: ptr IFileDialog, piFileType: ptr UINT): HRESULT {.stdcall.} - Advise*: proc(self: ptr IFileDialog, pfde: ptr IFileDialogEvents, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + GetFileTypeIndex*: + proc(self: ptr IFileDialog, piFileType: ptr UINT): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IFileDialog, pfde: ptr IFileDialogEvents, pdwCookie: ptr DWORD + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IFileDialog, dwCookie: DWORD): HRESULT {.stdcall.} - SetOptions*: proc(self: ptr IFileDialog, fos: FILEOPENDIALOGOPTIONS): HRESULT {.stdcall.} - GetOptions*: proc(self: ptr IFileDialog, pfos: ptr FILEOPENDIALOGOPTIONS): HRESULT {.stdcall.} - SetDefaultFolder*: proc(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.stdcall.} + SetOptions*: + proc(self: ptr IFileDialog, fos: FILEOPENDIALOGOPTIONS): HRESULT {.stdcall.} + GetOptions*: + proc(self: ptr IFileDialog, pfos: ptr FILEOPENDIALOGOPTIONS): HRESULT {.stdcall.} + SetDefaultFolder*: + proc(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.stdcall.} SetFolder*: proc(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.stdcall.} - GetFolder*: proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} - GetCurrentSelection*: proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} + GetFolder*: + proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} + GetCurrentSelection*: + proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} SetFileName*: proc(self: ptr IFileDialog, pszName: LPCWSTR): HRESULT {.stdcall.} GetFileName*: proc(self: ptr IFileDialog, pszName: ptr LPWSTR): HRESULT {.stdcall.} SetTitle*: proc(self: ptr IFileDialog, pszTitle: LPCWSTR): HRESULT {.stdcall.} - SetOkButtonLabel*: proc(self: ptr IFileDialog, pszText: LPCWSTR): HRESULT {.stdcall.} - SetFileNameLabel*: proc(self: ptr IFileDialog, pszLabel: LPCWSTR): HRESULT {.stdcall.} - GetResult*: proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} - AddPlace*: proc(self: ptr IFileDialog, psi: ptr IShellItem, fdap: FDAP): HRESULT {.stdcall.} - SetDefaultExtension*: proc(self: ptr IFileDialog, pszDefaultExtension: LPCWSTR): HRESULT {.stdcall.} + SetOkButtonLabel*: + proc(self: ptr IFileDialog, pszText: LPCWSTR): HRESULT {.stdcall.} + SetFileNameLabel*: + proc(self: ptr IFileDialog, pszLabel: LPCWSTR): HRESULT {.stdcall.} + GetResult*: + proc(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} + AddPlace*: + proc(self: ptr IFileDialog, psi: ptr IShellItem, fdap: FDAP): HRESULT {.stdcall.} + SetDefaultExtension*: + proc(self: ptr IFileDialog, pszDefaultExtension: LPCWSTR): HRESULT {.stdcall.} Close*: proc(self: ptr IFileDialog, hr: HRESULT): HRESULT {.stdcall.} SetClientGuid*: proc(self: ptr IFileDialog, guid: REFGUID): HRESULT {.stdcall.} ClearClientData*: proc(self: ptr IFileDialog): HRESULT {.stdcall.} - SetFilter*: proc(self: ptr IFileDialog, pFilter: ptr IShellItemFilter): HRESULT {.stdcall.} + SetFilter*: + proc(self: ptr IFileDialog, pFilter: ptr IShellItemFilter): HRESULT {.stdcall.} + IFileDialogEvents* {.pure.} = object lpVtbl*: ptr IFileDialogEventsVtbl + IFileDialogEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnFileOk*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} - OnFolderChanging*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psiFolder: ptr IShellItem): HRESULT {.stdcall.} - OnFolderChange*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} - OnSelectionChange*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} - OnShareViolation*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_SHAREVIOLATION_RESPONSE): HRESULT {.stdcall.} - OnTypeChange*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} - OnOverwrite*: proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_OVERWRITE_RESPONSE): HRESULT {.stdcall.} + OnFileOk*: + proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} + OnFolderChanging*: proc( + self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psiFolder: ptr IShellItem + ): HRESULT {.stdcall.} + OnFolderChange*: + proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} + OnSelectionChange*: + proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} + OnShareViolation*: proc( + self: ptr IFileDialogEvents, + pfd: ptr IFileDialog, + psi: ptr IShellItem, + pResponse: ptr FDE_SHAREVIOLATION_RESPONSE, + ): HRESULT {.stdcall.} + OnTypeChange*: + proc(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.stdcall.} + OnOverwrite*: proc( + self: ptr IFileDialogEvents, + pfd: ptr IFileDialog, + psi: ptr IShellItem, + pResponse: ptr FDE_OVERWRITE_RESPONSE, + ): HRESULT {.stdcall.} + IFileSaveDialog* {.pure.} = object lpVtbl*: ptr IFileSaveDialogVtbl + IFileSaveDialogVtbl* {.pure, inheritable.} = object of IFileDialogVtbl - SetSaveAsItem*: proc(self: ptr IFileSaveDialog, psi: ptr IShellItem): HRESULT {.stdcall.} - SetProperties*: proc(self: ptr IFileSaveDialog, pStore: ptr IPropertyStore): HRESULT {.stdcall.} - SetCollectedProperties*: proc(self: ptr IFileSaveDialog, pList: ptr IPropertyDescriptionList, fAppendDefault: WINBOOL): HRESULT {.stdcall.} - GetProperties*: proc(self: ptr IFileSaveDialog, ppStore: ptr ptr IPropertyStore): HRESULT {.stdcall.} - ApplyProperties*: proc(self: ptr IFileSaveDialog, psi: ptr IShellItem, pStore: ptr IPropertyStore, hwnd: HWND, pSink: ptr IFileOperationProgressSink): HRESULT {.stdcall.} + SetSaveAsItem*: + proc(self: ptr IFileSaveDialog, psi: ptr IShellItem): HRESULT {.stdcall.} + SetProperties*: + proc(self: ptr IFileSaveDialog, pStore: ptr IPropertyStore): HRESULT {.stdcall.} + SetCollectedProperties*: proc( + self: ptr IFileSaveDialog, + pList: ptr IPropertyDescriptionList, + fAppendDefault: WINBOOL, + ): HRESULT {.stdcall.} + GetProperties*: proc( + self: ptr IFileSaveDialog, ppStore: ptr ptr IPropertyStore + ): HRESULT {.stdcall.} + ApplyProperties*: proc( + self: ptr IFileSaveDialog, + psi: ptr IShellItem, + pStore: ptr IPropertyStore, + hwnd: HWND, + pSink: ptr IFileOperationProgressSink, + ): HRESULT {.stdcall.} + IFileOpenDialog* {.pure.} = object lpVtbl*: ptr IFileOpenDialogVtbl + IFileOpenDialogVtbl* {.pure, inheritable.} = object of IFileDialogVtbl - GetResults*: proc(self: ptr IFileOpenDialog, ppenum: ptr ptr IShellItemArray): HRESULT {.stdcall.} - GetSelectedItems*: proc(self: ptr IFileOpenDialog, ppsai: ptr ptr IShellItemArray): HRESULT {.stdcall.} + GetResults*: proc( + self: ptr IFileOpenDialog, ppenum: ptr ptr IShellItemArray + ): HRESULT {.stdcall.} + GetSelectedItems*: proc( + self: ptr IFileOpenDialog, ppsai: ptr ptr IShellItemArray + ): HRESULT {.stdcall.} + IFileDialogCustomize* {.pure.} = object lpVtbl*: ptr IFileDialogCustomizeVtbl + IFileDialogCustomizeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EnableOpenDropDown*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - AddMenu*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.stdcall.} - AddPushButton*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.stdcall.} - AddComboBox*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - AddRadioButtonList*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - AddCheckButton*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR, bChecked: WINBOOL): HRESULT {.stdcall.} - AddEditBox*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR): HRESULT {.stdcall.} - AddSeparator*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - AddText*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR): HRESULT {.stdcall.} - SetControlLabel*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.stdcall.} - GetControlState*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwState: ptr CDCONTROLSTATEF): HRESULT {.stdcall.} - SetControlState*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwState: CDCONTROLSTATEF): HRESULT {.stdcall.} - GetEditBoxText*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, ppszText: ptr ptr WCHAR): HRESULT {.stdcall.} - SetEditBoxText*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR): HRESULT {.stdcall.} - GetCheckButtonState*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pbChecked: ptr WINBOOL): HRESULT {.stdcall.} - SetCheckButtonState*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, bChecked: WINBOOL): HRESULT {.stdcall.} - AddControlItem*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR): HRESULT {.stdcall.} - RemoveControlItem*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD): HRESULT {.stdcall.} - RemoveAllControlItems*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - GetControlItemState*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pdwState: ptr CDCONTROLSTATEF): HRESULT {.stdcall.} - SetControlItemState*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, dwState: CDCONTROLSTATEF): HRESULT {.stdcall.} - GetSelectedControlItem*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwIDItem: ptr DWORD): HRESULT {.stdcall.} - SetSelectedControlItem*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD): HRESULT {.stdcall.} - StartVisualGroup*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.stdcall.} + EnableOpenDropDown*: + proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + AddMenu*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR + ): HRESULT {.stdcall.} + AddPushButton*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR + ): HRESULT {.stdcall.} + AddComboBox*: + proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + AddRadioButtonList*: + proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + AddCheckButton*: proc( + self: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + pszLabel: LPCWSTR, + bChecked: WINBOOL, + ): HRESULT {.stdcall.} + AddEditBox*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR + ): HRESULT {.stdcall.} + AddSeparator*: + proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + AddText*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR + ): HRESULT {.stdcall.} + SetControlLabel*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR + ): HRESULT {.stdcall.} + GetControlState*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwState: ptr CDCONTROLSTATEF + ): HRESULT {.stdcall.} + SetControlState*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwState: CDCONTROLSTATEF + ): HRESULT {.stdcall.} + GetEditBoxText*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, ppszText: ptr ptr WCHAR + ): HRESULT {.stdcall.} + SetEditBoxText*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR + ): HRESULT {.stdcall.} + GetCheckButtonState*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pbChecked: ptr WINBOOL + ): HRESULT {.stdcall.} + SetCheckButtonState*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, bChecked: WINBOOL + ): HRESULT {.stdcall.} + AddControlItem*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR + ): HRESULT {.stdcall.} + RemoveControlItem*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD + ): HRESULT {.stdcall.} + RemoveAllControlItems*: + proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + GetControlItemState*: proc( + self: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + dwIDItem: DWORD, + pdwState: ptr CDCONTROLSTATEF, + ): HRESULT {.stdcall.} + SetControlItemState*: proc( + self: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + dwIDItem: DWORD, + dwState: CDCONTROLSTATEF, + ): HRESULT {.stdcall.} + GetSelectedControlItem*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwIDItem: ptr DWORD + ): HRESULT {.stdcall.} + SetSelectedControlItem*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD + ): HRESULT {.stdcall.} + StartVisualGroup*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR + ): HRESULT {.stdcall.} EndVisualGroup*: proc(self: ptr IFileDialogCustomize): HRESULT {.stdcall.} - MakeProminent*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - SetControlItemText*: proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR): HRESULT {.stdcall.} + MakeProminent*: + proc(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + SetControlItemText*: proc( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR + ): HRESULT {.stdcall.} + IFileDialogControlEvents* {.pure.} = object lpVtbl*: ptr IFileDialogControlEventsVtbl + IFileDialogControlEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnItemSelected*: proc(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD): HRESULT {.stdcall.} - OnButtonClicked*: proc(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} - OnCheckButtonToggled*: proc(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD, bChecked: WINBOOL): HRESULT {.stdcall.} - OnControlActivating*: proc(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.stdcall.} + OnItemSelected*: proc( + self: ptr IFileDialogControlEvents, + pfdc: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + dwIDItem: DWORD, + ): HRESULT {.stdcall.} + OnButtonClicked*: proc( + self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD + ): HRESULT {.stdcall.} + OnCheckButtonToggled*: proc( + self: ptr IFileDialogControlEvents, + pfdc: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + bChecked: WINBOOL, + ): HRESULT {.stdcall.} + OnControlActivating*: proc( + self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD + ): HRESULT {.stdcall.} + IFileDialog2* {.pure.} = object lpVtbl*: ptr IFileDialog2Vtbl + IFileDialog2Vtbl* {.pure, inheritable.} = object of IFileDialogVtbl - SetCancelButtonLabel*: proc(self: ptr IFileDialog2, pszLabel: LPCWSTR): HRESULT {.stdcall.} - SetNavigationRoot*: proc(self: ptr IFileDialog2, psi: ptr IShellItem): HRESULT {.stdcall.} + SetCancelButtonLabel*: + proc(self: ptr IFileDialog2, pszLabel: LPCWSTR): HRESULT {.stdcall.} + SetNavigationRoot*: + proc(self: ptr IFileDialog2, psi: ptr IShellItem): HRESULT {.stdcall.} + IApplicationAssociationRegistration* {.pure.} = object lpVtbl*: ptr IApplicationAssociationRegistrationVtbl + IApplicationAssociationRegistrationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryCurrentDefault*: proc(self: ptr IApplicationAssociationRegistration, pszQuery: LPCWSTR, atQueryType: ASSOCIATIONTYPE, alQueryLevel: ASSOCIATIONLEVEL, ppszAssociation: ptr LPWSTR): HRESULT {.stdcall.} - QueryAppIsDefault*: proc(self: ptr IApplicationAssociationRegistration, pszQuery: LPCWSTR, atQueryType: ASSOCIATIONTYPE, alQueryLevel: ASSOCIATIONLEVEL, pszAppRegistryName: LPCWSTR, pfDefault: ptr WINBOOL): HRESULT {.stdcall.} - QueryAppIsDefaultAll*: proc(self: ptr IApplicationAssociationRegistration, alQueryLevel: ASSOCIATIONLEVEL, pszAppRegistryName: LPCWSTR, pfDefault: ptr WINBOOL): HRESULT {.stdcall.} - SetAppAsDefault*: proc(self: ptr IApplicationAssociationRegistration, pszAppRegistryName: LPCWSTR, pszSet: LPCWSTR, atSetType: ASSOCIATIONTYPE): HRESULT {.stdcall.} - SetAppAsDefaultAll*: proc(self: ptr IApplicationAssociationRegistration, pszAppRegistryName: LPCWSTR): HRESULT {.stdcall.} - ClearUserAssociations*: proc(self: ptr IApplicationAssociationRegistration): HRESULT {.stdcall.} + QueryCurrentDefault*: proc( + self: ptr IApplicationAssociationRegistration, + pszQuery: LPCWSTR, + atQueryType: ASSOCIATIONTYPE, + alQueryLevel: ASSOCIATIONLEVEL, + ppszAssociation: ptr LPWSTR, + ): HRESULT {.stdcall.} + QueryAppIsDefault*: proc( + self: ptr IApplicationAssociationRegistration, + pszQuery: LPCWSTR, + atQueryType: ASSOCIATIONTYPE, + alQueryLevel: ASSOCIATIONLEVEL, + pszAppRegistryName: LPCWSTR, + pfDefault: ptr WINBOOL, + ): HRESULT {.stdcall.} + QueryAppIsDefaultAll*: proc( + self: ptr IApplicationAssociationRegistration, + alQueryLevel: ASSOCIATIONLEVEL, + pszAppRegistryName: LPCWSTR, + pfDefault: ptr WINBOOL, + ): HRESULT {.stdcall.} + SetAppAsDefault*: proc( + self: ptr IApplicationAssociationRegistration, + pszAppRegistryName: LPCWSTR, + pszSet: LPCWSTR, + atSetType: ASSOCIATIONTYPE, + ): HRESULT {.stdcall.} + SetAppAsDefaultAll*: proc( + self: ptr IApplicationAssociationRegistration, pszAppRegistryName: LPCWSTR + ): HRESULT {.stdcall.} + ClearUserAssociations*: + proc(self: ptr IApplicationAssociationRegistration): HRESULT {.stdcall.} + IApplicationAssociationRegistrationUI* {.pure.} = object lpVtbl*: ptr IApplicationAssociationRegistrationUIVtbl + IApplicationAssociationRegistrationUIVtbl* {.pure, inheritable.} = object of IUnknownVtbl - LaunchAdvancedAssociationUI*: proc(self: ptr IApplicationAssociationRegistrationUI, pszAppRegistryName: LPCWSTR): HRESULT {.stdcall.} + LaunchAdvancedAssociationUI*: proc( + self: ptr IApplicationAssociationRegistrationUI, pszAppRegistryName: LPCWSTR + ): HRESULT {.stdcall.} + IDelegateFolder* {.pure.} = object lpVtbl*: ptr IDelegateFolderVtbl + IDelegateFolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetItemAlloc*: proc(self: ptr IDelegateFolder, pmalloc: ptr IMalloc): HRESULT {.stdcall.} + SetItemAlloc*: + proc(self: ptr IDelegateFolder, pmalloc: ptr IMalloc): HRESULT {.stdcall.} + INewWindowManager* {.pure.} = object lpVtbl*: ptr INewWindowManagerVtbl + INewWindowManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EvaluateNewWindow*: proc(self: ptr INewWindowManager, pszUrl: LPCWSTR, pszName: LPCWSTR, pszUrlContext: LPCWSTR, pszFeatures: LPCWSTR, fReplace: WINBOOL, dwFlags: DWORD, dwUserActionTime: DWORD): HRESULT {.stdcall.} + EvaluateNewWindow*: proc( + self: ptr INewWindowManager, + pszUrl: LPCWSTR, + pszName: LPCWSTR, + pszUrlContext: LPCWSTR, + pszFeatures: LPCWSTR, + fReplace: WINBOOL, + dwFlags: DWORD, + dwUserActionTime: DWORD, + ): HRESULT {.stdcall.} + IAttachmentExecute* {.pure.} = object lpVtbl*: ptr IAttachmentExecuteVtbl + IAttachmentExecuteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetClientTitle*: proc(self: ptr IAttachmentExecute, pszTitle: LPCWSTR): HRESULT {.stdcall.} - SetClientGuid*: proc(self: ptr IAttachmentExecute, guid: REFGUID): HRESULT {.stdcall.} - SetLocalPath*: proc(self: ptr IAttachmentExecute, pszLocalPath: LPCWSTR): HRESULT {.stdcall.} - SetFileName*: proc(self: ptr IAttachmentExecute, pszFileName: LPCWSTR): HRESULT {.stdcall.} - SetSource*: proc(self: ptr IAttachmentExecute, pszSource: LPCWSTR): HRESULT {.stdcall.} - SetReferrer*: proc(self: ptr IAttachmentExecute, pszReferrer: LPCWSTR): HRESULT {.stdcall.} + SetClientTitle*: + proc(self: ptr IAttachmentExecute, pszTitle: LPCWSTR): HRESULT {.stdcall.} + SetClientGuid*: + proc(self: ptr IAttachmentExecute, guid: REFGUID): HRESULT {.stdcall.} + SetLocalPath*: + proc(self: ptr IAttachmentExecute, pszLocalPath: LPCWSTR): HRESULT {.stdcall.} + SetFileName*: + proc(self: ptr IAttachmentExecute, pszFileName: LPCWSTR): HRESULT {.stdcall.} + SetSource*: + proc(self: ptr IAttachmentExecute, pszSource: LPCWSTR): HRESULT {.stdcall.} + SetReferrer*: + proc(self: ptr IAttachmentExecute, pszReferrer: LPCWSTR): HRESULT {.stdcall.} CheckPolicy*: proc(self: ptr IAttachmentExecute): HRESULT {.stdcall.} - Prompt*: proc(self: ptr IAttachmentExecute, hwnd: HWND, prompt: ATTACHMENT_PROMPT, paction: ptr ATTACHMENT_ACTION): HRESULT {.stdcall.} + Prompt*: proc( + self: ptr IAttachmentExecute, + hwnd: HWND, + prompt: ATTACHMENT_PROMPT, + paction: ptr ATTACHMENT_ACTION, + ): HRESULT {.stdcall.} Save*: proc(self: ptr IAttachmentExecute): HRESULT {.stdcall.} - Execute*: proc(self: ptr IAttachmentExecute, hwnd: HWND, pszVerb: LPCWSTR, phProcess: ptr HANDLE): HRESULT {.stdcall.} + Execute*: proc( + self: ptr IAttachmentExecute, hwnd: HWND, pszVerb: LPCWSTR, phProcess: ptr HANDLE + ): HRESULT {.stdcall.} SaveWithUI*: proc(self: ptr IAttachmentExecute, hwnd: HWND): HRESULT {.stdcall.} ClearClientState*: proc(self: ptr IAttachmentExecute): HRESULT {.stdcall.} + IShellMenuCallback* {.pure.} = object lpVtbl*: ptr IShellMenuCallbackVtbl + IShellMenuCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CallbackSM*: proc(self: ptr IShellMenuCallback, psmd: LPSMDATA, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} + CallbackSM*: proc( + self: ptr IShellMenuCallback, + psmd: LPSMDATA, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + ): HRESULT {.stdcall.} + IShellMenu* {.pure.} = object lpVtbl*: ptr IShellMenuVtbl + IShellMenuVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IShellMenu, psmc: ptr IShellMenuCallback, uId: UINT, uIdAncestor: UINT, dwFlags: DWORD): HRESULT {.stdcall.} - GetMenuInfo*: proc(self: ptr IShellMenu, ppsmc: ptr ptr IShellMenuCallback, puId: ptr UINT, puIdAncestor: ptr UINT, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - SetShellFolder*: proc(self: ptr IShellMenu, psf: ptr IShellFolder, pidlFolder: PCIDLIST_ABSOLUTE, hKey: HKEY, dwFlags: DWORD): HRESULT {.stdcall.} - GetShellFolder*: proc(self: ptr IShellMenu, pdwFlags: ptr DWORD, ppidl: ptr PIDLIST_ABSOLUTE, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - SetMenu*: proc(self: ptr IShellMenu, hmenu: HMENU, hwnd: HWND, dwFlags: DWORD): HRESULT {.stdcall.} - GetMenu*: proc(self: ptr IShellMenu, phmenu: ptr HMENU, phwnd: ptr HWND, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - InvalidateItem*: proc(self: ptr IShellMenu, psmd: LPSMDATA, dwFlags: DWORD): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IShellMenu, + psmc: ptr IShellMenuCallback, + uId: UINT, + uIdAncestor: UINT, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetMenuInfo*: proc( + self: ptr IShellMenu, + ppsmc: ptr ptr IShellMenuCallback, + puId: ptr UINT, + puIdAncestor: ptr UINT, + pdwFlags: ptr DWORD, + ): HRESULT {.stdcall.} + SetShellFolder*: proc( + self: ptr IShellMenu, + psf: ptr IShellFolder, + pidlFolder: PCIDLIST_ABSOLUTE, + hKey: HKEY, + dwFlags: DWORD, + ): HRESULT {.stdcall.} + GetShellFolder*: proc( + self: ptr IShellMenu, + pdwFlags: ptr DWORD, + ppidl: ptr PIDLIST_ABSOLUTE, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + SetMenu*: proc( + self: ptr IShellMenu, hmenu: HMENU, hwnd: HWND, dwFlags: DWORD + ): HRESULT {.stdcall.} + GetMenu*: proc( + self: ptr IShellMenu, phmenu: ptr HMENU, phwnd: ptr HWND, pdwFlags: ptr DWORD + ): HRESULT {.stdcall.} + InvalidateItem*: + proc(self: ptr IShellMenu, psmd: LPSMDATA, dwFlags: DWORD): HRESULT {.stdcall.} GetState*: proc(self: ptr IShellMenu, psmd: LPSMDATA): HRESULT {.stdcall.} - SetMenuToolbar*: proc(self: ptr IShellMenu, punk: ptr IUnknown, dwFlags: DWORD): HRESULT {.stdcall.} + SetMenuToolbar*: proc( + self: ptr IShellMenu, punk: ptr IUnknown, dwFlags: DWORD + ): HRESULT {.stdcall.} + IShellRunDll* {.pure.} = object lpVtbl*: ptr IShellRunDllVtbl + IShellRunDllVtbl* {.pure, inheritable.} = object of IUnknownVtbl Run*: proc(self: ptr IShellRunDll, pszArgs: LPCWSTR): HRESULT {.stdcall.} + IKnownFolder* {.pure.} = object lpVtbl*: ptr IKnownFolderVtbl + IKnownFolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetId*: proc(self: ptr IKnownFolder, pkfid: ptr KNOWNFOLDERID): HRESULT {.stdcall.} - GetCategory*: proc(self: ptr IKnownFolder, pCategory: ptr KF_CATEGORY): HRESULT {.stdcall.} - GetShellItem*: proc(self: ptr IKnownFolder, dwFlags: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetPath*: proc(self: ptr IKnownFolder, dwFlags: DWORD, ppszPath: ptr LPWSTR): HRESULT {.stdcall.} - SetPath*: proc(self: ptr IKnownFolder, dwFlags: DWORD, pszPath: LPCWSTR): HRESULT {.stdcall.} - GetIDList*: proc(self: ptr IKnownFolder, dwFlags: DWORD, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} - GetFolderType*: proc(self: ptr IKnownFolder, pftid: ptr FOLDERTYPEID): HRESULT {.stdcall.} - GetRedirectionCapabilities*: proc(self: ptr IKnownFolder, pCapabilities: ptr KF_REDIRECTION_CAPABILITIES): HRESULT {.stdcall.} - GetFolderDefinition*: proc(self: ptr IKnownFolder, pKFD: ptr KNOWNFOLDER_DEFINITION): HRESULT {.stdcall.} + GetCategory*: + proc(self: ptr IKnownFolder, pCategory: ptr KF_CATEGORY): HRESULT {.stdcall.} + GetShellItem*: proc( + self: ptr IKnownFolder, dwFlags: DWORD, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + GetPath*: proc( + self: ptr IKnownFolder, dwFlags: DWORD, ppszPath: ptr LPWSTR + ): HRESULT {.stdcall.} + SetPath*: proc(self: ptr IKnownFolder, dwFlags: DWORD, pszPath: LPCWSTR): HRESULT {. + stdcall + .} + GetIDList*: proc( + self: ptr IKnownFolder, dwFlags: DWORD, ppidl: ptr PIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + GetFolderType*: + proc(self: ptr IKnownFolder, pftid: ptr FOLDERTYPEID): HRESULT {.stdcall.} + GetRedirectionCapabilities*: proc( + self: ptr IKnownFolder, pCapabilities: ptr KF_REDIRECTION_CAPABILITIES + ): HRESULT {.stdcall.} + GetFolderDefinition*: proc( + self: ptr IKnownFolder, pKFD: ptr KNOWNFOLDER_DEFINITION + ): HRESULT {.stdcall.} + IKnownFolderManager* {.pure.} = object lpVtbl*: ptr IKnownFolderManagerVtbl + IKnownFolderManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FolderIdFromCsidl*: proc(self: ptr IKnownFolderManager, nCsidl: int32, pfid: ptr KNOWNFOLDERID): HRESULT {.stdcall.} - FolderIdToCsidl*: proc(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, pnCsidl: ptr int32): HRESULT {.stdcall.} - GetFolderIds*: proc(self: ptr IKnownFolderManager, ppKFId: ptr ptr KNOWNFOLDERID, pCount: ptr UINT): HRESULT {.stdcall.} - GetFolder*: proc(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, ppkf: ptr ptr IKnownFolder): HRESULT {.stdcall.} - GetFolderByName*: proc(self: ptr IKnownFolderManager, pszCanonicalName: LPCWSTR, ppkf: ptr ptr IKnownFolder): HRESULT {.stdcall.} - RegisterFolder*: proc(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, pKFD: ptr KNOWNFOLDER_DEFINITION): HRESULT {.stdcall.} - UnregisterFolder*: proc(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID): HRESULT {.stdcall.} - FindFolderFromPath*: proc(self: ptr IKnownFolderManager, pszPath: LPCWSTR, mode: FFFP_MODE, ppkf: ptr ptr IKnownFolder): HRESULT {.stdcall.} - FindFolderFromIDList*: proc(self: ptr IKnownFolderManager, pidl: PCIDLIST_ABSOLUTE, ppkf: ptr ptr IKnownFolder): HRESULT {.stdcall.} - Redirect*: proc(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, hwnd: HWND, flags: KF_REDIRECT_FLAGS, pszTargetPath: LPCWSTR, cFolders: UINT, pExclusion: ptr KNOWNFOLDERID, ppszError: ptr LPWSTR): HRESULT {.stdcall.} + FolderIdFromCsidl*: proc( + self: ptr IKnownFolderManager, nCsidl: int32, pfid: ptr KNOWNFOLDERID + ): HRESULT {.stdcall.} + FolderIdToCsidl*: proc( + self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, pnCsidl: ptr int32 + ): HRESULT {.stdcall.} + GetFolderIds*: proc( + self: ptr IKnownFolderManager, ppKFId: ptr ptr KNOWNFOLDERID, pCount: ptr UINT + ): HRESULT {.stdcall.} + GetFolder*: proc( + self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, ppkf: ptr ptr IKnownFolder + ): HRESULT {.stdcall.} + GetFolderByName*: proc( + self: ptr IKnownFolderManager, + pszCanonicalName: LPCWSTR, + ppkf: ptr ptr IKnownFolder, + ): HRESULT {.stdcall.} + RegisterFolder*: proc( + self: ptr IKnownFolderManager, + rfid: REFKNOWNFOLDERID, + pKFD: ptr KNOWNFOLDER_DEFINITION, + ): HRESULT {.stdcall.} + UnregisterFolder*: + proc(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID): HRESULT {.stdcall.} + FindFolderFromPath*: proc( + self: ptr IKnownFolderManager, + pszPath: LPCWSTR, + mode: FFFP_MODE, + ppkf: ptr ptr IKnownFolder, + ): HRESULT {.stdcall.} + FindFolderFromIDList*: proc( + self: ptr IKnownFolderManager, pidl: PCIDLIST_ABSOLUTE, ppkf: ptr ptr IKnownFolder + ): HRESULT {.stdcall.} + Redirect*: proc( + self: ptr IKnownFolderManager, + rfid: REFKNOWNFOLDERID, + hwnd: HWND, + flags: KF_REDIRECT_FLAGS, + pszTargetPath: LPCWSTR, + cFolders: UINT, + pExclusion: ptr KNOWNFOLDERID, + ppszError: ptr LPWSTR, + ): HRESULT {.stdcall.} + ISharingConfigurationManager* {.pure.} = object lpVtbl*: ptr ISharingConfigurationManagerVtbl + ISharingConfigurationManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateShare*: proc(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, role: SHARE_ROLE): HRESULT {.stdcall.} - DeleteShare*: proc(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID): HRESULT {.stdcall.} - ShareExists*: proc(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID): HRESULT {.stdcall.} - GetSharePermissions*: proc(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, pRole: ptr SHARE_ROLE): HRESULT {.stdcall.} + CreateShare*: proc( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, role: SHARE_ROLE + ): HRESULT {.stdcall.} + DeleteShare*: proc( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID + ): HRESULT {.stdcall.} + ShareExists*: proc( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID + ): HRESULT {.stdcall.} + GetSharePermissions*: proc( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, pRole: ptr SHARE_ROLE + ): HRESULT {.stdcall.} SharePrinters*: proc(self: ptr ISharingConfigurationManager): HRESULT {.stdcall.} - StopSharingPrinters*: proc(self: ptr ISharingConfigurationManager): HRESULT {.stdcall.} - ArePrintersShared*: proc(self: ptr ISharingConfigurationManager): HRESULT {.stdcall.} + StopSharingPrinters*: + proc(self: ptr ISharingConfigurationManager): HRESULT {.stdcall.} + ArePrintersShared*: + proc(self: ptr ISharingConfigurationManager): HRESULT {.stdcall.} + IPreviousVersionsInfo* {.pure.} = object lpVtbl*: ptr IPreviousVersionsInfoVtbl + IPreviousVersionsInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AreSnapshotsAvailable*: proc(self: ptr IPreviousVersionsInfo, pszPath: LPCWSTR, fOkToBeSlow: WINBOOL, pfAvailable: ptr WINBOOL): HRESULT {.stdcall.} + AreSnapshotsAvailable*: proc( + self: ptr IPreviousVersionsInfo, + pszPath: LPCWSTR, + fOkToBeSlow: WINBOOL, + pfAvailable: ptr WINBOOL, + ): HRESULT {.stdcall.} + IRelatedItem* {.pure.} = object lpVtbl*: ptr IRelatedItemVtbl + IRelatedItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetItemIDList*: proc(self: ptr IRelatedItem, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} - GetItem*: proc(self: ptr IRelatedItem, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} + GetItemIDList*: + proc(self: ptr IRelatedItem, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.stdcall.} + GetItem*: + proc(self: ptr IRelatedItem, ppsi: ptr ptr IShellItem): HRESULT {.stdcall.} + IIdentityName* {.pure.} = object lpVtbl*: ptr IIdentityNameVtbl + IIdentityNameVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl IDelegateItem* {.pure.} = object lpVtbl*: ptr IDelegateItemVtbl + IDelegateItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl ICurrentItem* {.pure.} = object lpVtbl*: ptr ICurrentItemVtbl + ICurrentItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl ITransferMediumItem* {.pure.} = object lpVtbl*: ptr ITransferMediumItemVtbl + ITransferMediumItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl IUseToBrowseItem* {.pure.} = object lpVtbl*: ptr IUseToBrowseItemVtbl + IUseToBrowseItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl IDisplayItem* {.pure.} = object lpVtbl*: ptr IDisplayItemVtbl + IDisplayItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl IViewStateIdentityItem* {.pure.} = object lpVtbl*: ptr IViewStateIdentityItemVtbl + IViewStateIdentityItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl IPreviewItem* {.pure.} = object lpVtbl*: ptr IPreviewItemVtbl + IPreviewItemVtbl* {.pure, inheritable.} = object of IRelatedItemVtbl IDestinationStreamFactory* {.pure.} = object lpVtbl*: ptr IDestinationStreamFactoryVtbl + IDestinationStreamFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDestinationStream*: proc(self: ptr IDestinationStreamFactory, ppstm: ptr ptr IStream): HRESULT {.stdcall.} + GetDestinationStream*: proc( + self: ptr IDestinationStreamFactory, ppstm: ptr ptr IStream + ): HRESULT {.stdcall.} + INewMenuClient* {.pure.} = object lpVtbl*: ptr INewMenuClientVtbl + INewMenuClientVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IncludeItems*: proc(self: ptr INewMenuClient, pflags: ptr NMCII_FLAGS): HRESULT {.stdcall.} - SelectAndEditItem*: proc(self: ptr INewMenuClient, pidlItem: PCIDLIST_ABSOLUTE, flags: NMCSAEI_FLAGS): HRESULT {.stdcall.} + IncludeItems*: + proc(self: ptr INewMenuClient, pflags: ptr NMCII_FLAGS): HRESULT {.stdcall.} + SelectAndEditItem*: proc( + self: ptr INewMenuClient, pidlItem: PCIDLIST_ABSOLUTE, flags: NMCSAEI_FLAGS + ): HRESULT {.stdcall.} + IInitializeWithBindCtx* {.pure.} = object lpVtbl*: ptr IInitializeWithBindCtxVtbl + IInitializeWithBindCtxVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeWithBindCtx, pbc: ptr IBindCtx): HRESULT {.stdcall.} + Initialize*: + proc(self: ptr IInitializeWithBindCtx, pbc: ptr IBindCtx): HRESULT {.stdcall.} + INameSpaceTreeControl* {.pure.} = object lpVtbl*: ptr INameSpaceTreeControlVtbl + INameSpaceTreeControlVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr INameSpaceTreeControl, hwndParent: HWND, prc: ptr RECT, nsctsFlags: NSTCSTYLE): HRESULT {.stdcall.} - TreeAdvise*: proc(self: ptr INameSpaceTreeControl, punk: ptr IUnknown, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - TreeUnadvise*: proc(self: ptr INameSpaceTreeControl, dwCookie: DWORD): HRESULT {.stdcall.} - AppendRoot*: proc(self: ptr INameSpaceTreeControl, psiRoot: ptr IShellItem, grfEnumFlags: SHCONTF, grfRootStyle: NSTCROOTSTYLE, pif: ptr IShellItemFilter): HRESULT {.stdcall.} - InsertRoot*: proc(self: ptr INameSpaceTreeControl, iIndex: int32, psiRoot: ptr IShellItem, grfEnumFlags: SHCONTF, grfRootStyle: NSTCROOTSTYLE, pif: ptr IShellItemFilter): HRESULT {.stdcall.} - RemoveRoot*: proc(self: ptr INameSpaceTreeControl, psiRoot: ptr IShellItem): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr INameSpaceTreeControl, + hwndParent: HWND, + prc: ptr RECT, + nsctsFlags: NSTCSTYLE, + ): HRESULT {.stdcall.} + TreeAdvise*: proc( + self: ptr INameSpaceTreeControl, punk: ptr IUnknown, pdwCookie: ptr DWORD + ): HRESULT {.stdcall.} + TreeUnadvise*: + proc(self: ptr INameSpaceTreeControl, dwCookie: DWORD): HRESULT {.stdcall.} + AppendRoot*: proc( + self: ptr INameSpaceTreeControl, + psiRoot: ptr IShellItem, + grfEnumFlags: SHCONTF, + grfRootStyle: NSTCROOTSTYLE, + pif: ptr IShellItemFilter, + ): HRESULT {.stdcall.} + InsertRoot*: proc( + self: ptr INameSpaceTreeControl, + iIndex: int32, + psiRoot: ptr IShellItem, + grfEnumFlags: SHCONTF, + grfRootStyle: NSTCROOTSTYLE, + pif: ptr IShellItemFilter, + ): HRESULT {.stdcall.} + RemoveRoot*: proc(self: ptr INameSpaceTreeControl, psiRoot: ptr IShellItem): HRESULT {. + stdcall + .} RemoveAllRoots*: proc(self: ptr INameSpaceTreeControl): HRESULT {.stdcall.} - GetRootItems*: proc(self: ptr INameSpaceTreeControl, ppsiaRootItems: ptr ptr IShellItemArray): HRESULT {.stdcall.} - SetItemState*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, nstcisFlags: NSTCITEMSTATE): HRESULT {.stdcall.} - GetItemState*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, pnstcisFlags: ptr NSTCITEMSTATE): HRESULT {.stdcall.} - GetSelectedItems*: proc(self: ptr INameSpaceTreeControl, psiaItems: ptr ptr IShellItemArray): HRESULT {.stdcall.} - GetItemCustomState*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, piStateNumber: ptr int32): HRESULT {.stdcall.} - SetItemCustomState*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, iStateNumber: int32): HRESULT {.stdcall.} - EnsureItemVisible*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem): HRESULT {.stdcall.} - SetTheme*: proc(self: ptr INameSpaceTreeControl, pszTheme: LPCWSTR): HRESULT {.stdcall.} - GetNextItem*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, nstcgi: NSTCGNI, ppsiNext: ptr ptr IShellItem): HRESULT {.stdcall.} - HitTest*: proc(self: ptr INameSpaceTreeControl, ppt: ptr POINT, ppsiOut: ptr ptr IShellItem): HRESULT {.stdcall.} - GetItemRect*: proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, prect: ptr RECT): HRESULT {.stdcall.} + GetRootItems*: proc( + self: ptr INameSpaceTreeControl, ppsiaRootItems: ptr ptr IShellItemArray + ): HRESULT {.stdcall.} + SetItemState*: proc( + self: ptr INameSpaceTreeControl, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + nstcisFlags: NSTCITEMSTATE, + ): HRESULT {.stdcall.} + GetItemState*: proc( + self: ptr INameSpaceTreeControl, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + pnstcisFlags: ptr NSTCITEMSTATE, + ): HRESULT {.stdcall.} + GetSelectedItems*: proc( + self: ptr INameSpaceTreeControl, psiaItems: ptr ptr IShellItemArray + ): HRESULT {.stdcall.} + GetItemCustomState*: proc( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem, piStateNumber: ptr int32 + ): HRESULT {.stdcall.} + SetItemCustomState*: proc( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem, iStateNumber: int32 + ): HRESULT {.stdcall.} + EnsureItemVisible*: + proc(self: ptr INameSpaceTreeControl, psi: ptr IShellItem): HRESULT {.stdcall.} + SetTheme*: + proc(self: ptr INameSpaceTreeControl, pszTheme: LPCWSTR): HRESULT {.stdcall.} + GetNextItem*: proc( + self: ptr INameSpaceTreeControl, + psi: ptr IShellItem, + nstcgi: NSTCGNI, + ppsiNext: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + HitTest*: proc( + self: ptr INameSpaceTreeControl, ppt: ptr POINT, ppsiOut: ptr ptr IShellItem + ): HRESULT {.stdcall.} + GetItemRect*: proc( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem, prect: ptr RECT + ): HRESULT {.stdcall.} CollapseAll*: proc(self: ptr INameSpaceTreeControl): HRESULT {.stdcall.} + INameSpaceTreeControl2* {.pure.} = object lpVtbl*: ptr INameSpaceTreeControl2Vtbl + INameSpaceTreeControl2Vtbl* {.pure, inheritable.} = object of INameSpaceTreeControlVtbl - SetControlStyle*: proc(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, nstcsStyle: NSTCSTYLE): HRESULT {.stdcall.} - GetControlStyle*: proc(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, pnstcsStyle: ptr NSTCSTYLE): HRESULT {.stdcall.} - SetControlStyle2*: proc(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, nstcsStyle: NSTCSTYLE2): HRESULT {.stdcall.} - GetControlStyle2*: proc(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, pnstcsStyle: ptr NSTCSTYLE2): HRESULT {.stdcall.} + SetControlStyle*: proc( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, nstcsStyle: NSTCSTYLE + ): HRESULT {.stdcall.} + GetControlStyle*: proc( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, pnstcsStyle: ptr NSTCSTYLE + ): HRESULT {.stdcall.} + SetControlStyle2*: proc( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, nstcsStyle: NSTCSTYLE2 + ): HRESULT {.stdcall.} + GetControlStyle2*: proc( + self: ptr INameSpaceTreeControl2, + nstcsMask: NSTCSTYLE2, + pnstcsStyle: ptr NSTCSTYLE2, + ): HRESULT {.stdcall.} + INameSpaceTreeControlEvents* {.pure.} = object lpVtbl*: ptr INameSpaceTreeControlEventsVtbl + INameSpaceTreeControlEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnItemClick*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, nstceHitTest: NSTCEHITTEST, nstceClickType: NSTCECLICKTYPE): HRESULT {.stdcall.} - OnPropertyItemCommit*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnItemStateChanging*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, nstcisState: NSTCITEMSTATE): HRESULT {.stdcall.} - OnItemStateChanged*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, nstcisState: NSTCITEMSTATE): HRESULT {.stdcall.} - OnSelectionChanged*: proc(self: ptr INameSpaceTreeControlEvents, psiaSelection: ptr IShellItemArray): HRESULT {.stdcall.} - OnKeyboardInput*: proc(self: ptr INameSpaceTreeControlEvents, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.stdcall.} - OnBeforeExpand*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnAfterExpand*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnBeginLabelEdit*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnEndLabelEdit*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnGetToolTip*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, pszTip: LPWSTR, cchTip: int32): HRESULT {.stdcall.} - OnBeforeItemDelete*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnItemAdded*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL): HRESULT {.stdcall.} - OnItemDeleted*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL): HRESULT {.stdcall.} - OnBeforeContextMenu*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - OnAfterContextMenu*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, pcmIn: ptr IContextMenu, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - OnBeforeStateImageChange*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.stdcall.} - OnGetDefaultIconIndex*: proc(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, piDefaultIcon: ptr int32, piOpenIcon: ptr int32): HRESULT {.stdcall.} + OnItemClick*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + nstceHitTest: NSTCEHITTEST, + nstceClickType: NSTCECLICKTYPE, + ): HRESULT {.stdcall.} + OnPropertyItemCommit*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnItemStateChanging*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + nstcisState: NSTCITEMSTATE, + ): HRESULT {.stdcall.} + OnItemStateChanged*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + nstcisState: NSTCITEMSTATE, + ): HRESULT {.stdcall.} + OnSelectionChanged*: proc( + self: ptr INameSpaceTreeControlEvents, psiaSelection: ptr IShellItemArray + ): HRESULT {.stdcall.} + OnKeyboardInput*: proc( + self: ptr INameSpaceTreeControlEvents, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): HRESULT {.stdcall.} + OnBeforeExpand*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnAfterExpand*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnBeginLabelEdit*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnEndLabelEdit*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnGetToolTip*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + pszTip: LPWSTR, + cchTip: int32, + ): HRESULT {.stdcall.} + OnBeforeItemDelete*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnItemAdded*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL + ): HRESULT {.stdcall.} + OnItemDeleted*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL + ): HRESULT {.stdcall.} + OnBeforeContextMenu*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + OnAfterContextMenu*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + pcmIn: ptr IContextMenu, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + OnBeforeStateImageChange*: proc( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem + ): HRESULT {.stdcall.} + OnGetDefaultIconIndex*: proc( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + piDefaultIcon: ptr int32, + piOpenIcon: ptr int32, + ): HRESULT {.stdcall.} + INameSpaceTreeControlDropHandler* {.pure.} = object lpVtbl*: ptr INameSpaceTreeControlDropHandlerVtbl + INameSpaceTreeControlDropHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnDragEnter*: proc(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, fOutsideSource: WINBOOL, grfKeyState: DWORD, pdwEffect: ptr DWORD): HRESULT {.stdcall.} - OnDragOver*: proc(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, grfKeyState: DWORD, pdwEffect: ptr DWORD): HRESULT {.stdcall.} - OnDragPosition*: proc(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, iNewPosition: int32, iOldPosition: int32): HRESULT {.stdcall.} - OnDrop*: proc(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, iPosition: int32, grfKeyState: DWORD, pdwEffect: ptr DWORD): HRESULT {.stdcall.} - OnDropPosition*: proc(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, iNewPosition: int32, iOldPosition: int32): HRESULT {.stdcall.} - OnDragLeave*: proc(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem): HRESULT {.stdcall.} + OnDragEnter*: proc( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + fOutsideSource: WINBOOL, + grfKeyState: DWORD, + pdwEffect: ptr DWORD, + ): HRESULT {.stdcall.} + OnDragOver*: proc( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + grfKeyState: DWORD, + pdwEffect: ptr DWORD, + ): HRESULT {.stdcall.} + OnDragPosition*: proc( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + iNewPosition: int32, + iOldPosition: int32, + ): HRESULT {.stdcall.} + OnDrop*: proc( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + iPosition: int32, + grfKeyState: DWORD, + pdwEffect: ptr DWORD, + ): HRESULT {.stdcall.} + OnDropPosition*: proc( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + iNewPosition: int32, + iOldPosition: int32, + ): HRESULT {.stdcall.} + OnDragLeave*: proc( + self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem + ): HRESULT {.stdcall.} + INameSpaceTreeAccessible* {.pure.} = object lpVtbl*: ptr INameSpaceTreeAccessibleVtbl + INameSpaceTreeAccessibleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnGetDefaultAccessibilityAction*: proc(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem, pbstrDefaultAction: ptr BSTR): HRESULT {.stdcall.} - OnDoDefaultAccessibilityAction*: proc(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem): HRESULT {.stdcall.} - OnGetAccessibilityRole*: proc(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem, pvarRole: ptr VARIANT): HRESULT {.stdcall.} + OnGetDefaultAccessibilityAction*: proc( + self: ptr INameSpaceTreeAccessible, + psi: ptr IShellItem, + pbstrDefaultAction: ptr BSTR, + ): HRESULT {.stdcall.} + OnDoDefaultAccessibilityAction*: + proc(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem): HRESULT {.stdcall.} + OnGetAccessibilityRole*: proc( + self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem, pvarRole: ptr VARIANT + ): HRESULT {.stdcall.} + INameSpaceTreeControlCustomDraw* {.pure.} = object lpVtbl*: ptr INameSpaceTreeControlCustomDrawVtbl + INameSpaceTreeControlCustomDrawVtbl* {.pure, inheritable.} = object of IUnknownVtbl - PrePaint*: proc(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT, plres: ptr LRESULT): HRESULT {.stdcall.} - PostPaint*: proc(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT): HRESULT {.stdcall.} - ItemPrePaint*: proc(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT, pnstccdItem: ptr NSTCCUSTOMDRAW, pclrText: ptr COLORREF, pclrTextBk: ptr COLORREF, plres: ptr LRESULT): HRESULT {.stdcall.} - ItemPostPaint*: proc(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT, pnstccdItem: ptr NSTCCUSTOMDRAW): HRESULT {.stdcall.} + PrePaint*: proc( + self: ptr INameSpaceTreeControlCustomDraw, + hdc: HDC, + prc: ptr RECT, + plres: ptr LRESULT, + ): HRESULT {.stdcall.} + PostPaint*: proc( + self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT + ): HRESULT {.stdcall.} + ItemPrePaint*: proc( + self: ptr INameSpaceTreeControlCustomDraw, + hdc: HDC, + prc: ptr RECT, + pnstccdItem: ptr NSTCCUSTOMDRAW, + pclrText: ptr COLORREF, + pclrTextBk: ptr COLORREF, + plres: ptr LRESULT, + ): HRESULT {.stdcall.} + ItemPostPaint*: proc( + self: ptr INameSpaceTreeControlCustomDraw, + hdc: HDC, + prc: ptr RECT, + pnstccdItem: ptr NSTCCUSTOMDRAW, + ): HRESULT {.stdcall.} + INameSpaceTreeControlFolderCapabilities* {.pure.} = object lpVtbl*: ptr INameSpaceTreeControlFolderCapabilitiesVtbl + INameSpaceTreeControlFolderCapabilitiesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetFolderCapabilities*: proc(self: ptr INameSpaceTreeControlFolderCapabilities, nfcMask: NSTCFOLDERCAPABILITIES, pnfcValue: ptr NSTCFOLDERCAPABILITIES): HRESULT {.stdcall.} + GetFolderCapabilities*: proc( + self: ptr INameSpaceTreeControlFolderCapabilities, + nfcMask: NSTCFOLDERCAPABILITIES, + pnfcValue: ptr NSTCFOLDERCAPABILITIES, + ): HRESULT {.stdcall.} + IPreviewHandler* {.pure.} = object lpVtbl*: ptr IPreviewHandlerVtbl + IPreviewHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetWindow*: proc(self: ptr IPreviewHandler, hwnd: HWND, prc: ptr RECT): HRESULT {.stdcall.} + SetWindow*: + proc(self: ptr IPreviewHandler, hwnd: HWND, prc: ptr RECT): HRESULT {.stdcall.} SetRect*: proc(self: ptr IPreviewHandler, prc: ptr RECT): HRESULT {.stdcall.} DoPreview*: proc(self: ptr IPreviewHandler): HRESULT {.stdcall.} Unload*: proc(self: ptr IPreviewHandler): HRESULT {.stdcall.} SetFocus*: proc(self: ptr IPreviewHandler): HRESULT {.stdcall.} QueryFocus*: proc(self: ptr IPreviewHandler, phwnd: ptr HWND): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IPreviewHandler, pmsg: ptr MSG): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IPreviewHandler, pmsg: ptr MSG): HRESULT {.stdcall.} + IPreviewHandlerFrame* {.pure.} = object lpVtbl*: ptr IPreviewHandlerFrameVtbl + IPreviewHandlerFrameVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetWindowContext*: proc(self: ptr IPreviewHandlerFrame, pinfo: ptr PREVIEWHANDLERFRAMEINFO): HRESULT {.stdcall.} - TranslateAccelerator*: proc(self: ptr IPreviewHandlerFrame, pmsg: ptr MSG): HRESULT {.stdcall.} + GetWindowContext*: proc( + self: ptr IPreviewHandlerFrame, pinfo: ptr PREVIEWHANDLERFRAMEINFO + ): HRESULT {.stdcall.} + TranslateAccelerator*: + proc(self: ptr IPreviewHandlerFrame, pmsg: ptr MSG): HRESULT {.stdcall.} + ITrayDeskBand* {.pure.} = object lpVtbl*: ptr ITrayDeskBandVtbl + ITrayDeskBandVtbl* {.pure, inheritable.} = object of IUnknownVtbl ShowDeskBand*: proc(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.stdcall.} HideDeskBand*: proc(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.stdcall.} - IsDeskBandShown*: proc(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.stdcall.} + IsDeskBandShown*: + proc(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.stdcall.} DeskBandRegistrationChanged*: proc(self: ptr ITrayDeskBand): HRESULT {.stdcall.} + IBandHost* {.pure.} = object lpVtbl*: ptr IBandHostVtbl + IBandHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateBand*: proc(self: ptr IBandHost, rclsidBand: REFCLSID, fAvailable: WINBOOL, fVisible: WINBOOL, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - SetBandAvailability*: proc(self: ptr IBandHost, rclsidBand: REFCLSID, fAvailable: WINBOOL): HRESULT {.stdcall.} + CreateBand*: proc( + self: ptr IBandHost, + rclsidBand: REFCLSID, + fAvailable: WINBOOL, + fVisible: WINBOOL, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + SetBandAvailability*: proc( + self: ptr IBandHost, rclsidBand: REFCLSID, fAvailable: WINBOOL + ): HRESULT {.stdcall.} DestroyBand*: proc(self: ptr IBandHost, rclsidBand: REFCLSID): HRESULT {.stdcall.} + IExplorerPaneVisibility* {.pure.} = object lpVtbl*: ptr IExplorerPaneVisibilityVtbl + IExplorerPaneVisibilityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetPaneState*: proc(self: ptr IExplorerPaneVisibility, ep: REFEXPLORERPANE, peps: ptr EXPLORERPANESTATE): HRESULT {.stdcall.} + GetPaneState*: proc( + self: ptr IExplorerPaneVisibility, + ep: REFEXPLORERPANE, + peps: ptr EXPLORERPANESTATE, + ): HRESULT {.stdcall.} + IDefaultExtractIconInit* {.pure.} = object lpVtbl*: ptr IDefaultExtractIconInitVtbl + IDefaultExtractIconInitVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetFlags*: proc(self: ptr IDefaultExtractIconInit, uFlags: UINT): HRESULT {.stdcall.} + SetFlags*: + proc(self: ptr IDefaultExtractIconInit, uFlags: UINT): HRESULT {.stdcall.} SetKey*: proc(self: ptr IDefaultExtractIconInit, hkey: HKEY): HRESULT {.stdcall.} - SetNormalIcon*: proc(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.stdcall.} - SetOpenIcon*: proc(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.stdcall.} - SetShortcutIcon*: proc(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.stdcall.} - SetDefaultIcon*: proc(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.stdcall.} + SetNormalIcon*: proc( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 + ): HRESULT {.stdcall.} + SetOpenIcon*: proc( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 + ): HRESULT {.stdcall.} + SetShortcutIcon*: proc( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 + ): HRESULT {.stdcall.} + SetDefaultIcon*: proc( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 + ): HRESULT {.stdcall.} + IEnumExplorerCommand* {.pure.} = object lpVtbl*: ptr IEnumExplorerCommandVtbl + IEnumExplorerCommandVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumExplorerCommand, celt: ULONG, pUICommand: ptr ptr IExplorerCommand, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumExplorerCommand, + celt: ULONG, + pUICommand: ptr ptr IExplorerCommand, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IEnumExplorerCommand, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IEnumExplorerCommand): HRESULT {.stdcall.} - Clone*: proc(self: ptr IEnumExplorerCommand, ppenum: ptr ptr IEnumExplorerCommand): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IEnumExplorerCommand, ppenum: ptr ptr IEnumExplorerCommand + ): HRESULT {.stdcall.} + IExplorerCommand* {.pure.} = object lpVtbl*: ptr IExplorerCommandVtbl + IExplorerCommandVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetTitle*: proc(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszName: ptr LPWSTR): HRESULT {.stdcall.} - GetIcon*: proc(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszIcon: ptr LPWSTR): HRESULT {.stdcall.} - GetToolTip*: proc(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszInfotip: ptr LPWSTR): HRESULT {.stdcall.} - GetCanonicalName*: proc(self: ptr IExplorerCommand, pguidCommandName: ptr GUID): HRESULT {.stdcall.} - GetState*: proc(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, fOkToBeSlow: WINBOOL, pCmdState: ptr EXPCMDSTATE): HRESULT {.stdcall.} - Invoke*: proc(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, pbc: ptr IBindCtx): HRESULT {.stdcall.} - GetFlags*: proc(self: ptr IExplorerCommand, pFlags: ptr EXPCMDFLAGS): HRESULT {.stdcall.} - EnumSubCommands*: proc(self: ptr IExplorerCommand, ppEnum: ptr ptr IEnumExplorerCommand): HRESULT {.stdcall.} + GetTitle*: proc( + self: ptr IExplorerCommand, + psiItemArray: ptr IShellItemArray, + ppszName: ptr LPWSTR, + ): HRESULT {.stdcall.} + GetIcon*: proc( + self: ptr IExplorerCommand, + psiItemArray: ptr IShellItemArray, + ppszIcon: ptr LPWSTR, + ): HRESULT {.stdcall.} + GetToolTip*: proc( + self: ptr IExplorerCommand, + psiItemArray: ptr IShellItemArray, + ppszInfotip: ptr LPWSTR, + ): HRESULT {.stdcall.} + GetCanonicalName*: + proc(self: ptr IExplorerCommand, pguidCommandName: ptr GUID): HRESULT {.stdcall.} + GetState*: proc( + self: ptr IExplorerCommand, + psiItemArray: ptr IShellItemArray, + fOkToBeSlow: WINBOOL, + pCmdState: ptr EXPCMDSTATE, + ): HRESULT {.stdcall.} + Invoke*: proc( + self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, pbc: ptr IBindCtx + ): HRESULT {.stdcall.} + GetFlags*: + proc(self: ptr IExplorerCommand, pFlags: ptr EXPCMDFLAGS): HRESULT {.stdcall.} + EnumSubCommands*: proc( + self: ptr IExplorerCommand, ppEnum: ptr ptr IEnumExplorerCommand + ): HRESULT {.stdcall.} + IExplorerCommandState* {.pure.} = object lpVtbl*: ptr IExplorerCommandStateVtbl + IExplorerCommandStateVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetState*: proc(self: ptr IExplorerCommandState, psiItemArray: ptr IShellItemArray, fOkToBeSlow: WINBOOL, pCmdState: ptr EXPCMDSTATE): HRESULT {.stdcall.} + GetState*: proc( + self: ptr IExplorerCommandState, + psiItemArray: ptr IShellItemArray, + fOkToBeSlow: WINBOOL, + pCmdState: ptr EXPCMDSTATE, + ): HRESULT {.stdcall.} + IInitializeCommand* {.pure.} = object lpVtbl*: ptr IInitializeCommandVtbl + IInitializeCommandVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeCommand, pszCommandName: LPCWSTR, ppb: ptr IPropertyBag): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IInitializeCommand, pszCommandName: LPCWSTR, ppb: ptr IPropertyBag + ): HRESULT {.stdcall.} + IExplorerCommandProvider* {.pure.} = object lpVtbl*: ptr IExplorerCommandProviderVtbl + IExplorerCommandProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCommands*: proc(self: ptr IExplorerCommandProvider, punkSite: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetCommand*: proc(self: ptr IExplorerCommandProvider, rguidCommandId: REFGUID, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetCommands*: proc( + self: ptr IExplorerCommandProvider, + punkSite: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetCommand*: proc( + self: ptr IExplorerCommandProvider, + rguidCommandId: REFGUID, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IInitializeNetworkFolder* {.pure.} = object lpVtbl*: ptr IInitializeNetworkFolderVtbl + IInitializeNetworkFolderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeNetworkFolder, pidl: PCIDLIST_ABSOLUTE, pidlTarget: PCIDLIST_ABSOLUTE, uDisplayType: UINT, pszResName: LPCWSTR, pszProvider: LPCWSTR): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IInitializeNetworkFolder, + pidl: PCIDLIST_ABSOLUTE, + pidlTarget: PCIDLIST_ABSOLUTE, + uDisplayType: UINT, + pszResName: LPCWSTR, + pszProvider: LPCWSTR, + ): HRESULT {.stdcall.} + IOpenControlPanel* {.pure.} = object lpVtbl*: ptr IOpenControlPanelVtbl + IOpenControlPanelVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Open*: proc(self: ptr IOpenControlPanel, pszName: LPCWSTR, pszPage: LPCWSTR, punkSite: ptr IUnknown): HRESULT {.stdcall.} - GetPath*: proc(self: ptr IOpenControlPanel, pszName: LPCWSTR, pszPath: LPWSTR, cchPath: UINT): HRESULT {.stdcall.} - GetCurrentView*: proc(self: ptr IOpenControlPanel, pView: ptr CPVIEW): HRESULT {.stdcall.} + Open*: proc( + self: ptr IOpenControlPanel, + pszName: LPCWSTR, + pszPage: LPCWSTR, + punkSite: ptr IUnknown, + ): HRESULT {.stdcall.} + GetPath*: proc( + self: ptr IOpenControlPanel, pszName: LPCWSTR, pszPath: LPWSTR, cchPath: UINT + ): HRESULT {.stdcall.} + GetCurrentView*: + proc(self: ptr IOpenControlPanel, pView: ptr CPVIEW): HRESULT {.stdcall.} + IComputerInfoChangeNotify* {.pure.} = object lpVtbl*: ptr IComputerInfoChangeNotifyVtbl + IComputerInfoChangeNotifyVtbl* {.pure, inheritable.} = object of IUnknownVtbl ComputerInfoChanged*: proc(self: ptr IComputerInfoChangeNotify): HRESULT {.stdcall.} + IFileSystemBindData* {.pure.} = object lpVtbl*: ptr IFileSystemBindDataVtbl + IFileSystemBindDataVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetFindData*: proc(self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW): HRESULT {.stdcall.} - GetFindData*: proc(self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW): HRESULT {.stdcall.} + SetFindData*: proc( + self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW + ): HRESULT {.stdcall.} + GetFindData*: proc( + self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW + ): HRESULT {.stdcall.} + IFileSystemBindData2* {.pure.} = object lpVtbl*: ptr IFileSystemBindData2Vtbl + IFileSystemBindData2Vtbl* {.pure, inheritable.} = object of IFileSystemBindDataVtbl - SetFileID*: proc(self: ptr IFileSystemBindData2, liFileID: LARGE_INTEGER): HRESULT {.stdcall.} - GetFileID*: proc(self: ptr IFileSystemBindData2, pliFileID: ptr LARGE_INTEGER): HRESULT {.stdcall.} - SetJunctionCLSID*: proc(self: ptr IFileSystemBindData2, clsid: REFCLSID): HRESULT {.stdcall.} - GetJunctionCLSID*: proc(self: ptr IFileSystemBindData2, pclsid: ptr CLSID): HRESULT {.stdcall.} + SetFileID*: + proc(self: ptr IFileSystemBindData2, liFileID: LARGE_INTEGER): HRESULT {.stdcall.} + GetFileID*: proc( + self: ptr IFileSystemBindData2, pliFileID: ptr LARGE_INTEGER + ): HRESULT {.stdcall.} + SetJunctionCLSID*: + proc(self: ptr IFileSystemBindData2, clsid: REFCLSID): HRESULT {.stdcall.} + GetJunctionCLSID*: + proc(self: ptr IFileSystemBindData2, pclsid: ptr CLSID): HRESULT {.stdcall.} + ICustomDestinationList* {.pure.} = object lpVtbl*: ptr ICustomDestinationListVtbl + ICustomDestinationListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAppID*: proc(self: ptr ICustomDestinationList, pszAppID: LPCWSTR): HRESULT {.stdcall.} - BeginList*: proc(self: ptr ICustomDestinationList, pcMinSlots: ptr UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - AppendCategory*: proc(self: ptr ICustomDestinationList, pszCategory: LPCWSTR, poa: ptr IObjectArray): HRESULT {.stdcall.} - AppendKnownCategory*: proc(self: ptr ICustomDestinationList, category: KNOWNDESTCATEGORY): HRESULT {.stdcall.} - AddUserTasks*: proc(self: ptr ICustomDestinationList, poa: ptr IObjectArray): HRESULT {.stdcall.} + SetAppID*: + proc(self: ptr ICustomDestinationList, pszAppID: LPCWSTR): HRESULT {.stdcall.} + BeginList*: proc( + self: ptr ICustomDestinationList, + pcMinSlots: ptr UINT, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + AppendCategory*: proc( + self: ptr ICustomDestinationList, pszCategory: LPCWSTR, poa: ptr IObjectArray + ): HRESULT {.stdcall.} + AppendKnownCategory*: proc( + self: ptr ICustomDestinationList, category: KNOWNDESTCATEGORY + ): HRESULT {.stdcall.} + AddUserTasks*: + proc(self: ptr ICustomDestinationList, poa: ptr IObjectArray): HRESULT {.stdcall.} CommitList*: proc(self: ptr ICustomDestinationList): HRESULT {.stdcall.} - GetRemovedDestinations*: proc(self: ptr ICustomDestinationList, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - DeleteList*: proc(self: ptr ICustomDestinationList, pszAppID: LPCWSTR): HRESULT {.stdcall.} + GetRemovedDestinations*: proc( + self: ptr ICustomDestinationList, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + DeleteList*: + proc(self: ptr ICustomDestinationList, pszAppID: LPCWSTR): HRESULT {.stdcall.} AbortList*: proc(self: ptr ICustomDestinationList): HRESULT {.stdcall.} + IApplicationDestinations* {.pure.} = object lpVtbl*: ptr IApplicationDestinationsVtbl + IApplicationDestinationsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAppID*: proc(self: ptr IApplicationDestinations, pszAppID: LPCWSTR): HRESULT {.stdcall.} - RemoveDestination*: proc(self: ptr IApplicationDestinations, punk: ptr IUnknown): HRESULT {.stdcall.} - RemoveAllDestinations*: proc(self: ptr IApplicationDestinations): HRESULT {.stdcall.} + SetAppID*: + proc(self: ptr IApplicationDestinations, pszAppID: LPCWSTR): HRESULT {.stdcall.} + RemoveDestination*: + proc(self: ptr IApplicationDestinations, punk: ptr IUnknown): HRESULT {.stdcall.} + RemoveAllDestinations*: + proc(self: ptr IApplicationDestinations): HRESULT {.stdcall.} + IApplicationDocumentLists* {.pure.} = object lpVtbl*: ptr IApplicationDocumentListsVtbl + IApplicationDocumentListsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAppID*: proc(self: ptr IApplicationDocumentLists, pszAppID: LPCWSTR): HRESULT {.stdcall.} - GetList*: proc(self: ptr IApplicationDocumentLists, listtype: APPDOCLISTTYPE, cItemsDesired: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + SetAppID*: + proc(self: ptr IApplicationDocumentLists, pszAppID: LPCWSTR): HRESULT {.stdcall.} + GetList*: proc( + self: ptr IApplicationDocumentLists, + listtype: APPDOCLISTTYPE, + cItemsDesired: UINT, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IObjectWithAppUserModelID* {.pure.} = object lpVtbl*: ptr IObjectWithAppUserModelIDVtbl + IObjectWithAppUserModelIDVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetAppID*: proc(self: ptr IObjectWithAppUserModelID, pszAppID: LPCWSTR): HRESULT {.stdcall.} - GetAppID*: proc(self: ptr IObjectWithAppUserModelID, ppszAppID: ptr LPWSTR): HRESULT {.stdcall.} + SetAppID*: + proc(self: ptr IObjectWithAppUserModelID, pszAppID: LPCWSTR): HRESULT {.stdcall.} + GetAppID*: proc(self: ptr IObjectWithAppUserModelID, ppszAppID: ptr LPWSTR): HRESULT {. + stdcall + .} + IObjectWithProgID* {.pure.} = object lpVtbl*: ptr IObjectWithProgIDVtbl + IObjectWithProgIDVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetProgID*: proc(self: ptr IObjectWithProgID, pszProgID: LPCWSTR): HRESULT {.stdcall.} - GetProgID*: proc(self: ptr IObjectWithProgID, ppszProgID: ptr LPWSTR): HRESULT {.stdcall.} + SetProgID*: + proc(self: ptr IObjectWithProgID, pszProgID: LPCWSTR): HRESULT {.stdcall.} + GetProgID*: + proc(self: ptr IObjectWithProgID, ppszProgID: ptr LPWSTR): HRESULT {.stdcall.} + IUpdateIDList* {.pure.} = object lpVtbl*: ptr IUpdateIDListVtbl + IUpdateIDListVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Update*: proc(self: ptr IUpdateIDList, pbc: ptr IBindCtx, pidlIn: PCUITEMID_CHILD, ppidlOut: ptr PITEMID_CHILD): HRESULT {.stdcall.} + Update*: proc( + self: ptr IUpdateIDList, + pbc: ptr IBindCtx, + pidlIn: PCUITEMID_CHILD, + ppidlOut: ptr PITEMID_CHILD, + ): HRESULT {.stdcall.} + IDesktopGadget* {.pure.} = object lpVtbl*: ptr IDesktopGadgetVtbl + IDesktopGadgetVtbl* {.pure, inheritable.} = object of IUnknownVtbl RunGadget*: proc(self: ptr IDesktopGadget, gadgetPath: LPCWSTR): HRESULT {.stdcall.} + IDesktopWallpaper* {.pure.} = object lpVtbl*: ptr IDesktopWallpaperVtbl + IDesktopWallpaperVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetWallpaper*: proc(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: LPCWSTR): HRESULT {.stdcall.} - GetWallpaper*: proc(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: ptr LPWSTR): HRESULT {.stdcall.} - GetMonitorDevicePathAt*: proc(self: ptr IDesktopWallpaper, monitorIndex: UINT, monitorID: ptr LPWSTR): HRESULT {.stdcall.} - GetMonitorDevicePathCount*: proc(self: ptr IDesktopWallpaper, count: ptr UINT): HRESULT {.stdcall.} - GetMonitorRECT*: proc(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, displayRect: ptr RECT): HRESULT {.stdcall.} - SetBackgroundColor*: proc(self: ptr IDesktopWallpaper, color: COLORREF): HRESULT {.stdcall.} - GetBackgroundColor*: proc(self: ptr IDesktopWallpaper, color: ptr COLORREF): HRESULT {.stdcall.} - SetPosition*: proc(self: ptr IDesktopWallpaper, position: DESKTOP_WALLPAPER_POSITION): HRESULT {.stdcall.} - GetPosition*: proc(self: ptr IDesktopWallpaper, position: ptr DESKTOP_WALLPAPER_POSITION): HRESULT {.stdcall.} - SetSlideshow*: proc(self: ptr IDesktopWallpaper, items: ptr IShellItemArray): HRESULT {.stdcall.} - GetSlideshow*: proc(self: ptr IDesktopWallpaper, items: ptr ptr IShellItemArray): HRESULT {.stdcall.} - SetSlideshowOptions*: proc(self: ptr IDesktopWallpaper, options: DESKTOP_SLIDESHOW_OPTIONS, slideshowTick: UINT): HRESULT {.stdcall.} - GetSlideshowOptions*: proc(self: ptr IDesktopWallpaper, options: ptr DESKTOP_SLIDESHOW_OPTIONS, slideshowTick: ptr UINT): HRESULT {.stdcall.} - AdvanceSlideshow*: proc(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, direction: DESKTOP_SLIDESHOW_DIRECTION): HRESULT {.stdcall.} - GetStatus*: proc(self: ptr IDesktopWallpaper, state: ptr DESKTOP_SLIDESHOW_STATE): HRESULT {.stdcall.} + SetWallpaper*: proc( + self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: LPCWSTR + ): HRESULT {.stdcall.} + GetWallpaper*: proc( + self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: ptr LPWSTR + ): HRESULT {.stdcall.} + GetMonitorDevicePathAt*: proc( + self: ptr IDesktopWallpaper, monitorIndex: UINT, monitorID: ptr LPWSTR + ): HRESULT {.stdcall.} + GetMonitorDevicePathCount*: + proc(self: ptr IDesktopWallpaper, count: ptr UINT): HRESULT {.stdcall.} + GetMonitorRECT*: proc( + self: ptr IDesktopWallpaper, monitorID: LPCWSTR, displayRect: ptr RECT + ): HRESULT {.stdcall.} + SetBackgroundColor*: + proc(self: ptr IDesktopWallpaper, color: COLORREF): HRESULT {.stdcall.} + GetBackgroundColor*: + proc(self: ptr IDesktopWallpaper, color: ptr COLORREF): HRESULT {.stdcall.} + SetPosition*: proc( + self: ptr IDesktopWallpaper, position: DESKTOP_WALLPAPER_POSITION + ): HRESULT {.stdcall.} + GetPosition*: proc( + self: ptr IDesktopWallpaper, position: ptr DESKTOP_WALLPAPER_POSITION + ): HRESULT {.stdcall.} + SetSlideshow*: + proc(self: ptr IDesktopWallpaper, items: ptr IShellItemArray): HRESULT {.stdcall.} + GetSlideshow*: proc( + self: ptr IDesktopWallpaper, items: ptr ptr IShellItemArray + ): HRESULT {.stdcall.} + SetSlideshowOptions*: proc( + self: ptr IDesktopWallpaper, + options: DESKTOP_SLIDESHOW_OPTIONS, + slideshowTick: UINT, + ): HRESULT {.stdcall.} + GetSlideshowOptions*: proc( + self: ptr IDesktopWallpaper, + options: ptr DESKTOP_SLIDESHOW_OPTIONS, + slideshowTick: ptr UINT, + ): HRESULT {.stdcall.} + AdvanceSlideshow*: proc( + self: ptr IDesktopWallpaper, + monitorID: LPCWSTR, + direction: DESKTOP_SLIDESHOW_DIRECTION, + ): HRESULT {.stdcall.} + GetStatus*: proc( + self: ptr IDesktopWallpaper, state: ptr DESKTOP_SLIDESHOW_STATE + ): HRESULT {.stdcall.} Enable*: proc(self: ptr IDesktopWallpaper, enable: WINBOOL): HRESULT {.stdcall.} + IHomeGroup* {.pure.} = object lpVtbl*: ptr IHomeGroupVtbl + IHomeGroupVtbl* {.pure, inheritable.} = object of IUnknownVtbl IsMember*: proc(self: ptr IHomeGroup, member: ptr WINBOOL): HRESULT {.stdcall.} - ShowSharingWizard*: proc(self: ptr IHomeGroup, owner: HWND, sharingchoices: ptr HOMEGROUPSHARINGCHOICES): HRESULT {.stdcall.} + ShowSharingWizard*: proc( + self: ptr IHomeGroup, owner: HWND, sharingchoices: ptr HOMEGROUPSHARINGCHOICES + ): HRESULT {.stdcall.} + IInitializeWithPropertyStore* {.pure.} = object lpVtbl*: ptr IInitializeWithPropertyStoreVtbl + IInitializeWithPropertyStoreVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IInitializeWithPropertyStore, pps: ptr IPropertyStore): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IInitializeWithPropertyStore, pps: ptr IPropertyStore + ): HRESULT {.stdcall.} + IOpenSearchSource* {.pure.} = object lpVtbl*: ptr IOpenSearchSourceVtbl + IOpenSearchSourceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetResults*: proc(self: ptr IOpenSearchSource, hwnd: HWND, pszQuery: LPCWSTR, dwStartIndex: DWORD, dwCount: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + GetResults*: proc( + self: ptr IOpenSearchSource, + hwnd: HWND, + pszQuery: LPCWSTR, + dwStartIndex: DWORD, + dwCount: DWORD, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + IShellLibrary* {.pure.} = object lpVtbl*: ptr IShellLibraryVtbl + IShellLibraryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - LoadLibraryFromItem*: proc(self: ptr IShellLibrary, psiLibrary: ptr IShellItem, grfMode: DWORD): HRESULT {.stdcall.} - LoadLibraryFromKnownFolder*: proc(self: ptr IShellLibrary, kfidLibrary: REFKNOWNFOLDERID, grfMode: DWORD): HRESULT {.stdcall.} - AddFolder*: proc(self: ptr IShellLibrary, psiLocation: ptr IShellItem): HRESULT {.stdcall.} - RemoveFolder*: proc(self: ptr IShellLibrary, psiLocation: ptr IShellItem): HRESULT {.stdcall.} - GetFolders*: proc(self: ptr IShellLibrary, lff: LIBRARYFOLDERFILTER, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - ResolveFolder*: proc(self: ptr IShellLibrary, psiFolderToResolve: ptr IShellItem, dwTimeout: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - GetDefaultSaveFolder*: proc(self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} - SetDefaultSaveFolder*: proc(self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, psi: ptr IShellItem): HRESULT {.stdcall.} - GetOptions*: proc(self: ptr IShellLibrary, plofOptions: ptr LIBRARYOPTIONFLAGS): HRESULT {.stdcall.} - SetOptions*: proc(self: ptr IShellLibrary, lofMask: LIBRARYOPTIONFLAGS, lofOptions: LIBRARYOPTIONFLAGS): HRESULT {.stdcall.} - GetFolderType*: proc(self: ptr IShellLibrary, pftid: ptr FOLDERTYPEID): HRESULT {.stdcall.} - SetFolderType*: proc(self: ptr IShellLibrary, ftid: REFFOLDERTYPEID): HRESULT {.stdcall.} + LoadLibraryFromItem*: proc( + self: ptr IShellLibrary, psiLibrary: ptr IShellItem, grfMode: DWORD + ): HRESULT {.stdcall.} + LoadLibraryFromKnownFolder*: proc( + self: ptr IShellLibrary, kfidLibrary: REFKNOWNFOLDERID, grfMode: DWORD + ): HRESULT {.stdcall.} + AddFolder*: + proc(self: ptr IShellLibrary, psiLocation: ptr IShellItem): HRESULT {.stdcall.} + RemoveFolder*: + proc(self: ptr IShellLibrary, psiLocation: ptr IShellItem): HRESULT {.stdcall.} + GetFolders*: proc( + self: ptr IShellLibrary, lff: LIBRARYFOLDERFILTER, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + ResolveFolder*: proc( + self: ptr IShellLibrary, + psiFolderToResolve: ptr IShellItem, + dwTimeout: DWORD, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + GetDefaultSaveFolder*: proc( + self: ptr IShellLibrary, + dsft: DEFAULTSAVEFOLDERTYPE, + riid: REFIID, + ppv: ptr pointer, + ): HRESULT {.stdcall.} + SetDefaultSaveFolder*: proc( + self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, psi: ptr IShellItem + ): HRESULT {.stdcall.} + GetOptions*: proc( + self: ptr IShellLibrary, plofOptions: ptr LIBRARYOPTIONFLAGS + ): HRESULT {.stdcall.} + SetOptions*: proc( + self: ptr IShellLibrary, + lofMask: LIBRARYOPTIONFLAGS, + lofOptions: LIBRARYOPTIONFLAGS, + ): HRESULT {.stdcall.} + GetFolderType*: + proc(self: ptr IShellLibrary, pftid: ptr FOLDERTYPEID): HRESULT {.stdcall.} + SetFolderType*: + proc(self: ptr IShellLibrary, ftid: REFFOLDERTYPEID): HRESULT {.stdcall.} GetIcon*: proc(self: ptr IShellLibrary, ppszIcon: ptr LPWSTR): HRESULT {.stdcall.} SetIcon*: proc(self: ptr IShellLibrary, pszIcon: LPCWSTR): HRESULT {.stdcall.} Commit*: proc(self: ptr IShellLibrary): HRESULT {.stdcall.} - Save*: proc(self: ptr IShellLibrary, psiFolderToSaveIn: ptr IShellItem, pszLibraryName: LPCWSTR, lsf: LIBRARYSAVEFLAGS, ppsiSavedTo: ptr ptr IShellItem): HRESULT {.stdcall.} - SaveInKnownFolder*: proc(self: ptr IShellLibrary, kfidToSaveIn: REFKNOWNFOLDERID, pszLibraryName: LPCWSTR, lsf: LIBRARYSAVEFLAGS, ppsiSavedTo: ptr ptr IShellItem): HRESULT {.stdcall.} + Save*: proc( + self: ptr IShellLibrary, + psiFolderToSaveIn: ptr IShellItem, + pszLibraryName: LPCWSTR, + lsf: LIBRARYSAVEFLAGS, + ppsiSavedTo: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + SaveInKnownFolder*: proc( + self: ptr IShellLibrary, + kfidToSaveIn: REFKNOWNFOLDERID, + pszLibraryName: LPCWSTR, + lsf: LIBRARYSAVEFLAGS, + ppsiSavedTo: ptr ptr IShellItem, + ): HRESULT {.stdcall.} + IPlaybackManagerEvents* {.pure.} = object lpVtbl*: ptr IPlaybackManagerEventsVtbl + IPlaybackManagerEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnPlaybackManagerEvent*: proc(self: ptr IPlaybackManagerEvents, dwSessionId: DWORD, mediaEvent: PBM_EVENT): HRESULT {.stdcall.} + OnPlaybackManagerEvent*: proc( + self: ptr IPlaybackManagerEvents, dwSessionId: DWORD, mediaEvent: PBM_EVENT + ): HRESULT {.stdcall.} + IPlaybackManager* {.pure.} = object lpVtbl*: ptr IPlaybackManagerVtbl + IPlaybackManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr IPlaybackManager, `type`: PBM_SESSION_TYPE, pEvents: ptr IPlaybackManagerEvents, pdwSessionId: ptr DWORD): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IPlaybackManager, + `type`: PBM_SESSION_TYPE, + pEvents: ptr IPlaybackManagerEvents, + pdwSessionId: ptr DWORD, + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IPlaybackManager, dwSessionId: DWORD): HRESULT {.stdcall.} - ChangeSessionState*: proc(self: ptr IPlaybackManager, dwSessionId: DWORD, state: PBM_PLAY_STATE, mute: PBM_MUTE_STATE): HRESULT {.stdcall.} + ChangeSessionState*: proc( + self: ptr IPlaybackManager, + dwSessionId: DWORD, + state: PBM_PLAY_STATE, + mute: PBM_MUTE_STATE, + ): HRESULT {.stdcall.} + IDefaultFolderMenuInitialize* {.pure.} = object lpVtbl*: ptr IDefaultFolderMenuInitializeVtbl + IDefaultFolderMenuInitializeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IDefaultFolderMenuInitialize, hwnd: HWND, pcmcb: ptr IContextMenuCB, pidlFolder: PCIDLIST_ABSOLUTE, psf: ptr IShellFolder, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, punkAssociation: ptr IUnknown, cKeys: UINT, aKeys: ptr HKEY): HRESULT {.stdcall.} - SetMenuRestrictions*: proc(self: ptr IDefaultFolderMenuInitialize, dfmrValues: DEFAULT_FOLDER_MENU_RESTRICTIONS): HRESULT {.stdcall.} - GetMenuRestrictions*: proc(self: ptr IDefaultFolderMenuInitialize, dfmrMask: DEFAULT_FOLDER_MENU_RESTRICTIONS, pdfmrValues: ptr DEFAULT_FOLDER_MENU_RESTRICTIONS): HRESULT {.stdcall.} - SetHandlerClsid*: proc(self: ptr IDefaultFolderMenuInitialize, rclsid: REFCLSID): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IDefaultFolderMenuInitialize, + hwnd: HWND, + pcmcb: ptr IContextMenuCB, + pidlFolder: PCIDLIST_ABSOLUTE, + psf: ptr IShellFolder, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + punkAssociation: ptr IUnknown, + cKeys: UINT, + aKeys: ptr HKEY, + ): HRESULT {.stdcall.} + SetMenuRestrictions*: proc( + self: ptr IDefaultFolderMenuInitialize, + dfmrValues: DEFAULT_FOLDER_MENU_RESTRICTIONS, + ): HRESULT {.stdcall.} + GetMenuRestrictions*: proc( + self: ptr IDefaultFolderMenuInitialize, + dfmrMask: DEFAULT_FOLDER_MENU_RESTRICTIONS, + pdfmrValues: ptr DEFAULT_FOLDER_MENU_RESTRICTIONS, + ): HRESULT {.stdcall.} + SetHandlerClsid*: proc( + self: ptr IDefaultFolderMenuInitialize, rclsid: REFCLSID + ): HRESULT {.stdcall.} + IApplicationActivationManager* {.pure.} = object lpVtbl*: ptr IApplicationActivationManagerVtbl + IApplicationActivationManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ActivateApplication*: proc(self: ptr IApplicationActivationManager, appUserModelId: LPCWSTR, arguments: LPCWSTR, options: ACTIVATEOPTIONS, processId: ptr DWORD): HRESULT {.stdcall.} - ActivateForFile*: proc(self: ptr IApplicationActivationManager, appUserModelId: LPCWSTR, itemArray: ptr IShellItemArray, verb: LPCWSTR, processId: ptr DWORD): HRESULT {.stdcall.} - ActivateForProtocol*: proc(self: ptr IApplicationActivationManager, appUserModelId: LPCWSTR, itemArray: ptr IShellItemArray, processId: ptr DWORD): HRESULT {.stdcall.} + ActivateApplication*: proc( + self: ptr IApplicationActivationManager, + appUserModelId: LPCWSTR, + arguments: LPCWSTR, + options: ACTIVATEOPTIONS, + processId: ptr DWORD, + ): HRESULT {.stdcall.} + ActivateForFile*: proc( + self: ptr IApplicationActivationManager, + appUserModelId: LPCWSTR, + itemArray: ptr IShellItemArray, + verb: LPCWSTR, + processId: ptr DWORD, + ): HRESULT {.stdcall.} + ActivateForProtocol*: proc( + self: ptr IApplicationActivationManager, + appUserModelId: LPCWSTR, + itemArray: ptr IShellItemArray, + processId: ptr DWORD, + ): HRESULT {.stdcall.} + IAssocHandlerInvoker* {.pure.} = object lpVtbl*: ptr IAssocHandlerInvokerVtbl + IAssocHandlerInvokerVtbl* {.pure, inheritable.} = object of IUnknownVtbl SupportsSelection*: proc(self: ptr IAssocHandlerInvoker): HRESULT {.stdcall.} Invoke*: proc(self: ptr IAssocHandlerInvoker): HRESULT {.stdcall.} + IAssocHandler* {.pure.} = object lpVtbl*: ptr IAssocHandlerVtbl + IAssocHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetName*: proc(self: ptr IAssocHandler, ppsz: ptr LPWSTR): HRESULT {.stdcall.} GetUIName*: proc(self: ptr IAssocHandler, ppsz: ptr LPWSTR): HRESULT {.stdcall.} - GetIconLocation*: proc(self: ptr IAssocHandler, ppszPath: ptr LPWSTR, pIndex: ptr int32): HRESULT {.stdcall.} + GetIconLocation*: proc( + self: ptr IAssocHandler, ppszPath: ptr LPWSTR, pIndex: ptr int32 + ): HRESULT {.stdcall.} IsRecommended*: proc(self: ptr IAssocHandler): HRESULT {.stdcall.} - MakeDefault*: proc(self: ptr IAssocHandler, pszDescription: LPCWSTR): HRESULT {.stdcall.} + MakeDefault*: + proc(self: ptr IAssocHandler, pszDescription: LPCWSTR): HRESULT {.stdcall.} Invoke*: proc(self: ptr IAssocHandler, pdo: ptr IDataObject): HRESULT {.stdcall.} - CreateInvoker*: proc(self: ptr IAssocHandler, pdo: ptr IDataObject, ppInvoker: ptr ptr IAssocHandlerInvoker): HRESULT {.stdcall.} + CreateInvoker*: proc( + self: ptr IAssocHandler, + pdo: ptr IDataObject, + ppInvoker: ptr ptr IAssocHandlerInvoker, + ): HRESULT {.stdcall.} + IEnumAssocHandlers* {.pure.} = object lpVtbl*: ptr IEnumAssocHandlersVtbl + IEnumAssocHandlersVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IEnumAssocHandlers, celt: ULONG, rgelt: ptr ptr IAssocHandler, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IEnumAssocHandlers, + celt: ULONG, + rgelt: ptr ptr IAssocHandler, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} + IDataObjectProvider* {.pure.} = object lpVtbl*: ptr IDataObjectProviderVtbl + IDataObjectProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDataObject*: proc(self: ptr IDataObjectProvider, dataObject: ptr ptr IDataObject): HRESULT {.stdcall.} - SetDataObject*: proc(self: ptr IDataObjectProvider, dataObject: ptr IDataObject): HRESULT {.stdcall.} + GetDataObject*: proc( + self: ptr IDataObjectProvider, dataObject: ptr ptr IDataObject + ): HRESULT {.stdcall.} + SetDataObject*: proc( + self: ptr IDataObjectProvider, dataObject: ptr IDataObject + ): HRESULT {.stdcall.} + IDataTransferManagerInterop* {.pure.} = object lpVtbl*: ptr IDataTransferManagerInteropVtbl + IDataTransferManagerInteropVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetForWindow*: proc(self: ptr IDataTransferManagerInterop, appWindow: HWND, riid: REFIID, dataTransferManager: ptr pointer): HRESULT {.stdcall.} - ShowShareUIForWindow*: proc(self: ptr IDataTransferManagerInterop, appWindow: HWND): HRESULT {.stdcall.} + GetForWindow*: proc( + self: ptr IDataTransferManagerInterop, + appWindow: HWND, + riid: REFIID, + dataTransferManager: ptr pointer, + ): HRESULT {.stdcall.} + ShowShareUIForWindow*: + proc(self: ptr IDataTransferManagerInterop, appWindow: HWND): HRESULT {.stdcall.} + IFrameworkInputPaneHandler* {.pure.} = object lpVtbl*: ptr IFrameworkInputPaneHandlerVtbl + IFrameworkInputPaneHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Showing*: proc(self: ptr IFrameworkInputPaneHandler, prcInputPaneScreenLocation: ptr RECT, fEnsureFocusedElementInView: WINBOOL): HRESULT {.stdcall.} - Hiding*: proc(self: ptr IFrameworkInputPaneHandler, fEnsureFocusedElementInView: WINBOOL): HRESULT {.stdcall.} + Showing*: proc( + self: ptr IFrameworkInputPaneHandler, + prcInputPaneScreenLocation: ptr RECT, + fEnsureFocusedElementInView: WINBOOL, + ): HRESULT {.stdcall.} + Hiding*: proc( + self: ptr IFrameworkInputPaneHandler, fEnsureFocusedElementInView: WINBOOL + ): HRESULT {.stdcall.} + IFrameworkInputPane* {.pure.} = object lpVtbl*: ptr IFrameworkInputPaneVtbl + IFrameworkInputPaneVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Advise*: proc(self: ptr IFrameworkInputPane, pWindow: ptr IUnknown, pHandler: ptr IFrameworkInputPaneHandler, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - AdviseWithHWND*: proc(self: ptr IFrameworkInputPane, hwnd: HWND, pHandler: ptr IFrameworkInputPaneHandler, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IFrameworkInputPane, + pWindow: ptr IUnknown, + pHandler: ptr IFrameworkInputPaneHandler, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + AdviseWithHWND*: proc( + self: ptr IFrameworkInputPane, + hwnd: HWND, + pHandler: ptr IFrameworkInputPaneHandler, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IFrameworkInputPane, dwCookie: DWORD): HRESULT {.stdcall.} - Location*: proc(self: ptr IFrameworkInputPane, prcInputPaneScreenLocation: ptr RECT): HRESULT {.stdcall.} + Location*: proc( + self: ptr IFrameworkInputPane, prcInputPaneScreenLocation: ptr RECT + ): HRESULT {.stdcall.} + ISearchableApplication* {.pure.} = object lpVtbl*: ptr ISearchableApplicationVtbl + ISearchableApplicationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSearchWindow*: proc(self: ptr ISearchableApplication, hwnd: ptr HWND): HRESULT {.stdcall.} + GetSearchWindow*: + proc(self: ptr ISearchableApplication, hwnd: ptr HWND): HRESULT {.stdcall.} + IAccessibilityDockingServiceCallback* {.pure.} = object lpVtbl*: ptr IAccessibilityDockingServiceCallbackVtbl + IAccessibilityDockingServiceCallbackVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Undocked*: proc(self: ptr IAccessibilityDockingServiceCallback, undockReason: UNDOCK_REASON): HRESULT {.stdcall.} + Undocked*: proc( + self: ptr IAccessibilityDockingServiceCallback, undockReason: UNDOCK_REASON + ): HRESULT {.stdcall.} + IAccessibilityDockingService* {.pure.} = object lpVtbl*: ptr IAccessibilityDockingServiceVtbl + IAccessibilityDockingServiceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetAvailableSize*: proc(self: ptr IAccessibilityDockingService, hMonitor: HMONITOR, pcxFixed: ptr UINT, pcyMax: ptr UINT): HRESULT {.stdcall.} - DockWindow*: proc(self: ptr IAccessibilityDockingService, hwnd: HWND, hMonitor: HMONITOR, cyRequested: UINT, pCallback: ptr IAccessibilityDockingServiceCallback): HRESULT {.stdcall.} - UndockWindow*: proc(self: ptr IAccessibilityDockingService, hwnd: HWND): HRESULT {.stdcall.} + GetAvailableSize*: proc( + self: ptr IAccessibilityDockingService, + hMonitor: HMONITOR, + pcxFixed: ptr UINT, + pcyMax: ptr UINT, + ): HRESULT {.stdcall.} + DockWindow*: proc( + self: ptr IAccessibilityDockingService, + hwnd: HWND, + hMonitor: HMONITOR, + cyRequested: UINT, + pCallback: ptr IAccessibilityDockingServiceCallback, + ): HRESULT {.stdcall.} + UndockWindow*: + proc(self: ptr IAccessibilityDockingService, hwnd: HWND): HRESULT {.stdcall.} + IAppVisibilityEvents* {.pure.} = object lpVtbl*: ptr IAppVisibilityEventsVtbl + IAppVisibilityEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AppVisibilityOnMonitorChanged*: proc(self: ptr IAppVisibilityEvents, hMonitor: HMONITOR, previousMode: MONITOR_APP_VISIBILITY, currentMode: MONITOR_APP_VISIBILITY): HRESULT {.stdcall.} - LauncherVisibilityChange*: proc(self: ptr IAppVisibilityEvents, currentVisibleState: WINBOOL): HRESULT {.stdcall.} + AppVisibilityOnMonitorChanged*: proc( + self: ptr IAppVisibilityEvents, + hMonitor: HMONITOR, + previousMode: MONITOR_APP_VISIBILITY, + currentMode: MONITOR_APP_VISIBILITY, + ): HRESULT {.stdcall.} + LauncherVisibilityChange*: proc( + self: ptr IAppVisibilityEvents, currentVisibleState: WINBOOL + ): HRESULT {.stdcall.} + IAppVisibility* {.pure.} = object lpVtbl*: ptr IAppVisibilityVtbl + IAppVisibilityVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetAppVisibilityOnMonitor*: proc(self: ptr IAppVisibility, hMonitor: HMONITOR, pMode: ptr MONITOR_APP_VISIBILITY): HRESULT {.stdcall.} - IsLauncherVisible*: proc(self: ptr IAppVisibility, pfVisible: ptr WINBOOL): HRESULT {.stdcall.} - Advise*: proc(self: ptr IAppVisibility, pCallback: ptr IAppVisibilityEvents, pdwCookie: ptr DWORD): HRESULT {.stdcall.} + GetAppVisibilityOnMonitor*: proc( + self: ptr IAppVisibility, hMonitor: HMONITOR, pMode: ptr MONITOR_APP_VISIBILITY + ): HRESULT {.stdcall.} + IsLauncherVisible*: + proc(self: ptr IAppVisibility, pfVisible: ptr WINBOOL): HRESULT {.stdcall.} + Advise*: proc( + self: ptr IAppVisibility, + pCallback: ptr IAppVisibilityEvents, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} Unadvise*: proc(self: ptr IAppVisibility, dwCookie: DWORD): HRESULT {.stdcall.} + IPackageExecutionStateChangeNotification* {.pure.} = object lpVtbl*: ptr IPackageExecutionStateChangeNotificationVtbl + IPackageExecutionStateChangeNotificationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnStateChanged*: proc(self: ptr IPackageExecutionStateChangeNotification, pszPackageFullName: LPCWSTR, pesNewState: PACKAGE_EXECUTION_STATE): HRESULT {.stdcall.} + OnStateChanged*: proc( + self: ptr IPackageExecutionStateChangeNotification, + pszPackageFullName: LPCWSTR, + pesNewState: PACKAGE_EXECUTION_STATE, + ): HRESULT {.stdcall.} + IPackageDebugSettings* {.pure.} = object lpVtbl*: ptr IPackageDebugSettingsVtbl + IPackageDebugSettingsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - EnableDebugging*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, debuggerCommandLine: LPCWSTR, environment: PZZWSTR): HRESULT {.stdcall.} - DisableDebugging*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - Suspend*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - Resume*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - TerminateAllProcesses*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - SetTargetSessionId*: proc(self: ptr IPackageDebugSettings, sessionId: ULONG): HRESULT {.stdcall.} - EnumerateBackgroundTasks*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, taskCount: ptr ULONG, taskIds: ptr LPCGUID, taskNames: ptr ptr LPCWSTR): HRESULT {.stdcall.} - ActivateBackgroundTask*: proc(self: ptr IPackageDebugSettings, taskId: LPCGUID): HRESULT {.stdcall.} - StartServicing*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - StopServicing*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - StartSessionRedirection*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, sessionId: ULONG): HRESULT {.stdcall.} - StopSessionRedirection*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.stdcall.} - GetPackageExecutionState*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, packageExecutionState: ptr PACKAGE_EXECUTION_STATE): HRESULT {.stdcall.} - RegisterForPackageStateChanges*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, pPackageExecutionStateChangeNotification: ptr IPackageExecutionStateChangeNotification, pdwCookie: ptr DWORD): HRESULT {.stdcall.} - UnregisterForPackageStateChanges*: proc(self: ptr IPackageDebugSettings, dwCookie: DWORD): HRESULT {.stdcall.} + EnableDebugging*: proc( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + debuggerCommandLine: LPCWSTR, + environment: PZZWSTR, + ): HRESULT {.stdcall.} + DisableDebugging*: proc( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR + ): HRESULT {.stdcall.} + Suspend*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {. + stdcall + .} + Resume*: proc(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {. + stdcall + .} + TerminateAllProcesses*: proc( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR + ): HRESULT {.stdcall.} + SetTargetSessionId*: + proc(self: ptr IPackageDebugSettings, sessionId: ULONG): HRESULT {.stdcall.} + EnumerateBackgroundTasks*: proc( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + taskCount: ptr ULONG, + taskIds: ptr LPCGUID, + taskNames: ptr ptr LPCWSTR, + ): HRESULT {.stdcall.} + ActivateBackgroundTask*: + proc(self: ptr IPackageDebugSettings, taskId: LPCGUID): HRESULT {.stdcall.} + StartServicing*: proc( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR + ): HRESULT {.stdcall.} + StopServicing*: proc( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR + ): HRESULT {.stdcall.} + StartSessionRedirection*: proc( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, sessionId: ULONG + ): HRESULT {.stdcall.} + StopSessionRedirection*: proc( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR + ): HRESULT {.stdcall.} + GetPackageExecutionState*: proc( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + packageExecutionState: ptr PACKAGE_EXECUTION_STATE, + ): HRESULT {.stdcall.} + RegisterForPackageStateChanges*: proc( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + pPackageExecutionStateChangeNotification: + ptr IPackageExecutionStateChangeNotification, + pdwCookie: ptr DWORD, + ): HRESULT {.stdcall.} + UnregisterForPackageStateChanges*: + proc(self: ptr IPackageDebugSettings, dwCookie: DWORD): HRESULT {.stdcall.} + IExecuteCommandApplicationHostEnvironment* {.pure.} = object lpVtbl*: ptr IExecuteCommandApplicationHostEnvironmentVtbl + IExecuteCommandApplicationHostEnvironmentVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetValue*: proc(self: ptr IExecuteCommandApplicationHostEnvironment, pahe: ptr AHE_TYPE): HRESULT {.stdcall.} + GetValue*: proc( + self: ptr IExecuteCommandApplicationHostEnvironment, pahe: ptr AHE_TYPE + ): HRESULT {.stdcall.} + IExecuteCommandHost* {.pure.} = object lpVtbl*: ptr IExecuteCommandHostVtbl + IExecuteCommandHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetUIMode*: proc(self: ptr IExecuteCommandHost, pUIMode: ptr EC_HOST_UI_MODE): HRESULT {.stdcall.} + GetUIMode*: proc( + self: ptr IExecuteCommandHost, pUIMode: ptr EC_HOST_UI_MODE + ): HRESULT {.stdcall.} + IApplicationDesignModeSettings* {.pure.} = object lpVtbl*: ptr IApplicationDesignModeSettingsVtbl + IApplicationDesignModeSettingsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetNativeDisplaySize*: proc(self: ptr IApplicationDesignModeSettings, sizeNativeDisplay: SIZE): HRESULT {.stdcall.} - SetScaleFactor*: proc(self: ptr IApplicationDesignModeSettings, scaleFactor: DEVICE_SCALE_FACTOR): HRESULT {.stdcall.} - SetApplicationViewState*: proc(self: ptr IApplicationDesignModeSettings, viewState: APPLICATION_VIEW_STATE): HRESULT {.stdcall.} - ComputeApplicationSize*: proc(self: ptr IApplicationDesignModeSettings, psizeApplication: ptr SIZE): HRESULT {.stdcall.} - IsApplicationViewStateSupported*: proc(self: ptr IApplicationDesignModeSettings, viewState: APPLICATION_VIEW_STATE, sizeNativeDisplay: SIZE, scaleFactor: DEVICE_SCALE_FACTOR, pfSupported: ptr WINBOOL): HRESULT {.stdcall.} - TriggerEdgeGesture*: proc(self: ptr IApplicationDesignModeSettings, edgeGestureKind: EDGE_GESTURE_KIND): HRESULT {.stdcall.} + SetNativeDisplaySize*: proc( + self: ptr IApplicationDesignModeSettings, sizeNativeDisplay: SIZE + ): HRESULT {.stdcall.} + SetScaleFactor*: proc( + self: ptr IApplicationDesignModeSettings, scaleFactor: DEVICE_SCALE_FACTOR + ): HRESULT {.stdcall.} + SetApplicationViewState*: proc( + self: ptr IApplicationDesignModeSettings, viewState: APPLICATION_VIEW_STATE + ): HRESULT {.stdcall.} + ComputeApplicationSize*: proc( + self: ptr IApplicationDesignModeSettings, psizeApplication: ptr SIZE + ): HRESULT {.stdcall.} + IsApplicationViewStateSupported*: proc( + self: ptr IApplicationDesignModeSettings, + viewState: APPLICATION_VIEW_STATE, + sizeNativeDisplay: SIZE, + scaleFactor: DEVICE_SCALE_FACTOR, + pfSupported: ptr WINBOOL, + ): HRESULT {.stdcall.} + TriggerEdgeGesture*: proc( + self: ptr IApplicationDesignModeSettings, edgeGestureKind: EDGE_GESTURE_KIND + ): HRESULT {.stdcall.} + IInitializeWithWindow* {.pure.} = object lpVtbl*: ptr IInitializeWithWindowVtbl + IInitializeWithWindowVtbl* {.pure, inheritable.} = object of IUnknownVtbl Initialize*: proc(self: ptr IInitializeWithWindow, hwnd: HWND): HRESULT {.stdcall.} + IHandlerInfo* {.pure.} = object lpVtbl*: ptr IHandlerInfoVtbl + IHandlerInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetApplicationDisplayName*: proc(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.stdcall.} - GetApplicationPublisher*: proc(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.stdcall.} - GetApplicationIconReference*: proc(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.stdcall.} + GetApplicationDisplayName*: + proc(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.stdcall.} + GetApplicationPublisher*: + proc(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.stdcall.} + GetApplicationIconReference*: + proc(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.stdcall.} + IHandlerActivationHost* {.pure.} = object lpVtbl*: ptr IHandlerActivationHostVtbl + IHandlerActivationHostVtbl* {.pure, inheritable.} = object of IUnknownVtbl - BeforeCoCreateInstance*: proc(self: ptr IHandlerActivationHost, clsidHandler: REFCLSID, itemsBeingActivated: ptr IShellItemArray, handlerInfo: ptr IHandlerInfo): HRESULT {.stdcall.} - BeforeCreateProcess*: proc(self: ptr IHandlerActivationHost, applicationPath: LPCWSTR, commandLine: LPCWSTR, handlerInfo: ptr IHandlerInfo): HRESULT {.stdcall.} + BeforeCoCreateInstance*: proc( + self: ptr IHandlerActivationHost, + clsidHandler: REFCLSID, + itemsBeingActivated: ptr IShellItemArray, + handlerInfo: ptr IHandlerInfo, + ): HRESULT {.stdcall.} + BeforeCreateProcess*: proc( + self: ptr IHandlerActivationHost, + applicationPath: LPCWSTR, + commandLine: LPCWSTR, + handlerInfo: ptr IHandlerInfo, + ): HRESULT {.stdcall.} + IShellIconOverlayIdentifier* {.pure.} = object lpVtbl*: ptr IShellIconOverlayIdentifierVtbl + IShellIconOverlayIdentifierVtbl* {.pure, inheritable.} = object of IUnknownVtbl - IsMemberOf*: proc(self: ptr IShellIconOverlayIdentifier, pwszPath: PCWSTR, dwAttrib: DWORD): HRESULT {.stdcall.} - GetOverlayInfo*: proc(self: ptr IShellIconOverlayIdentifier, pwszIconFile: PWSTR, cchMax: int32, pIndex: ptr int32, pdwFlags: ptr DWORD): HRESULT {.stdcall.} - GetPriority*: proc(self: ptr IShellIconOverlayIdentifier, pIPriority: ptr int32): HRESULT {.stdcall.} + IsMemberOf*: proc( + self: ptr IShellIconOverlayIdentifier, pwszPath: PCWSTR, dwAttrib: DWORD + ): HRESULT {.stdcall.} + GetOverlayInfo*: proc( + self: ptr IShellIconOverlayIdentifier, + pwszIconFile: PWSTR, + cchMax: int32, + pIndex: ptr int32, + pdwFlags: ptr DWORD, + ): HRESULT {.stdcall.} + GetPriority*: proc( + self: ptr IShellIconOverlayIdentifier, pIPriority: ptr int32 + ): HRESULT {.stdcall.} + IShellIconOverlayManager* {.pure.} = object lpVtbl*: ptr IShellIconOverlayManagerVtbl + IShellIconOverlayManagerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetFileOverlayInfo*: proc(self: ptr IShellIconOverlayManager, pwszPath: PCWSTR, dwAttrib: DWORD, pIndex: ptr int32, dwflags: DWORD): HRESULT {.stdcall.} - GetReservedOverlayInfo*: proc(self: ptr IShellIconOverlayManager, pwszPath: PCWSTR, dwAttrib: DWORD, pIndex: ptr int32, dwflags: DWORD, iReservedID: int32): HRESULT {.stdcall.} - RefreshOverlayImages*: proc(self: ptr IShellIconOverlayManager, dwFlags: DWORD): HRESULT {.stdcall.} - LoadNonloadedOverlayIdentifiers*: proc(self: ptr IShellIconOverlayManager): HRESULT {.stdcall.} - OverlayIndexFromImageIndex*: proc(self: ptr IShellIconOverlayManager, iImage: int32, piIndex: ptr int32, fAdd: WINBOOL): HRESULT {.stdcall.} + GetFileOverlayInfo*: proc( + self: ptr IShellIconOverlayManager, + pwszPath: PCWSTR, + dwAttrib: DWORD, + pIndex: ptr int32, + dwflags: DWORD, + ): HRESULT {.stdcall.} + GetReservedOverlayInfo*: proc( + self: ptr IShellIconOverlayManager, + pwszPath: PCWSTR, + dwAttrib: DWORD, + pIndex: ptr int32, + dwflags: DWORD, + iReservedID: int32, + ): HRESULT {.stdcall.} + RefreshOverlayImages*: + proc(self: ptr IShellIconOverlayManager, dwFlags: DWORD): HRESULT {.stdcall.} + LoadNonloadedOverlayIdentifiers*: + proc(self: ptr IShellIconOverlayManager): HRESULT {.stdcall.} + OverlayIndexFromImageIndex*: proc( + self: ptr IShellIconOverlayManager, + iImage: int32, + piIndex: ptr int32, + fAdd: WINBOOL, + ): HRESULT {.stdcall.} + IShellIconOverlay* {.pure.} = object lpVtbl*: ptr IShellIconOverlayVtbl + IShellIconOverlayVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetOverlayIndex*: proc(self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIndex: ptr int32): HRESULT {.stdcall.} - GetOverlayIconIndex*: proc(self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIconIndex: ptr int32): HRESULT {.stdcall.} + GetOverlayIndex*: proc( + self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIndex: ptr int32 + ): HRESULT {.stdcall.} + GetOverlayIconIndex*: proc( + self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIconIndex: ptr int32 + ): HRESULT {.stdcall.} + IShellExecuteHookA* {.pure.} = object lpVtbl*: ptr IShellExecuteHookAVtbl + IShellExecuteHookAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Execute*: proc(self: ptr IShellExecuteHookA, pei: LPSHELLEXECUTEINFOA): HRESULT {.stdcall.} + Execute*: + proc(self: ptr IShellExecuteHookA, pei: LPSHELLEXECUTEINFOA): HRESULT {.stdcall.} + IShellExecuteHookW* {.pure.} = object lpVtbl*: ptr IShellExecuteHookWVtbl + IShellExecuteHookWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Execute*: proc(self: ptr IShellExecuteHookW, pei: LPSHELLEXECUTEINFOW): HRESULT {.stdcall.} + Execute*: + proc(self: ptr IShellExecuteHookW, pei: LPSHELLEXECUTEINFOW): HRESULT {.stdcall.} + IURLSearchHook* {.pure.} = object lpVtbl*: ptr IURLSearchHookVtbl + IURLSearchHookVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Translate*: proc(self: ptr IURLSearchHook, pwszSearchURL: PWSTR, cchBufferSize: DWORD): HRESULT {.stdcall.} + Translate*: proc( + self: ptr IURLSearchHook, pwszSearchURL: PWSTR, cchBufferSize: DWORD + ): HRESULT {.stdcall.} + ISearchContext* {.pure.} = object lpVtbl*: ptr ISearchContextVtbl + ISearchContextVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSearchUrl*: proc(self: ptr ISearchContext, pbstrSearchUrl: ptr BSTR): HRESULT {.stdcall.} - GetSearchText*: proc(self: ptr ISearchContext, pbstrSearchText: ptr BSTR): HRESULT {.stdcall.} - GetSearchStyle*: proc(self: ptr ISearchContext, pdwSearchStyle: ptr DWORD): HRESULT {.stdcall.} + GetSearchUrl*: + proc(self: ptr ISearchContext, pbstrSearchUrl: ptr BSTR): HRESULT {.stdcall.} + GetSearchText*: + proc(self: ptr ISearchContext, pbstrSearchText: ptr BSTR): HRESULT {.stdcall.} + GetSearchStyle*: + proc(self: ptr ISearchContext, pdwSearchStyle: ptr DWORD): HRESULT {.stdcall.} + IURLSearchHook2* {.pure.} = object lpVtbl*: ptr IURLSearchHook2Vtbl + IURLSearchHook2Vtbl* {.pure, inheritable.} = object of IURLSearchHookVtbl - TranslateWithSearchContext*: proc(self: ptr IURLSearchHook2, pwszSearchURL: PWSTR, cchBufferSize: DWORD, pSearchContext: ptr ISearchContext): HRESULT {.stdcall.} + TranslateWithSearchContext*: proc( + self: ptr IURLSearchHook2, + pwszSearchURL: PWSTR, + cchBufferSize: DWORD, + pSearchContext: ptr ISearchContext, + ): HRESULT {.stdcall.} + INewShortcutHookA* {.pure.} = object lpVtbl*: ptr INewShortcutHookAVtbl + INewShortcutHookAVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetReferent*: proc(self: ptr INewShortcutHookA, pcszReferent: PCSTR, hwnd: HWND): HRESULT {.stdcall.} - GetReferent*: proc(self: ptr INewShortcutHookA, pszReferent: PSTR, cchReferent: int32): HRESULT {.stdcall.} - SetFolder*: proc(self: ptr INewShortcutHookA, pcszFolder: PCSTR): HRESULT {.stdcall.} - GetFolder*: proc(self: ptr INewShortcutHookA, pszFolder: PSTR, cchFolder: int32): HRESULT {.stdcall.} - GetName*: proc(self: ptr INewShortcutHookA, pszName: PSTR, cchName: int32): HRESULT {.stdcall.} - GetExtension*: proc(self: ptr INewShortcutHookA, pszExtension: PSTR, cchExtension: int32): HRESULT {.stdcall.} + SetReferent*: proc( + self: ptr INewShortcutHookA, pcszReferent: PCSTR, hwnd: HWND + ): HRESULT {.stdcall.} + GetReferent*: proc( + self: ptr INewShortcutHookA, pszReferent: PSTR, cchReferent: int32 + ): HRESULT {.stdcall.} + SetFolder*: + proc(self: ptr INewShortcutHookA, pcszFolder: PCSTR): HRESULT {.stdcall.} + GetFolder*: proc( + self: ptr INewShortcutHookA, pszFolder: PSTR, cchFolder: int32 + ): HRESULT {.stdcall.} + GetName*: proc(self: ptr INewShortcutHookA, pszName: PSTR, cchName: int32): HRESULT {. + stdcall + .} + GetExtension*: proc( + self: ptr INewShortcutHookA, pszExtension: PSTR, cchExtension: int32 + ): HRESULT {.stdcall.} + INewShortcutHookW* {.pure.} = object lpVtbl*: ptr INewShortcutHookWVtbl + INewShortcutHookWVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetReferent*: proc(self: ptr INewShortcutHookW, pcszReferent: PCWSTR, hwnd: HWND): HRESULT {.stdcall.} - GetReferent*: proc(self: ptr INewShortcutHookW, pszReferent: PWSTR, cchReferent: int32): HRESULT {.stdcall.} - SetFolder*: proc(self: ptr INewShortcutHookW, pcszFolder: PCWSTR): HRESULT {.stdcall.} - GetFolder*: proc(self: ptr INewShortcutHookW, pszFolder: PWSTR, cchFolder: int32): HRESULT {.stdcall.} - GetName*: proc(self: ptr INewShortcutHookW, pszName: PWSTR, cchName: int32): HRESULT {.stdcall.} - GetExtension*: proc(self: ptr INewShortcutHookW, pszExtension: PWSTR, cchExtension: int32): HRESULT {.stdcall.} + SetReferent*: proc( + self: ptr INewShortcutHookW, pcszReferent: PCWSTR, hwnd: HWND + ): HRESULT {.stdcall.} + GetReferent*: proc( + self: ptr INewShortcutHookW, pszReferent: PWSTR, cchReferent: int32 + ): HRESULT {.stdcall.} + SetFolder*: + proc(self: ptr INewShortcutHookW, pcszFolder: PCWSTR): HRESULT {.stdcall.} + GetFolder*: proc( + self: ptr INewShortcutHookW, pszFolder: PWSTR, cchFolder: int32 + ): HRESULT {.stdcall.} + GetName*: proc(self: ptr INewShortcutHookW, pszName: PWSTR, cchName: int32): HRESULT {. + stdcall + .} + GetExtension*: proc( + self: ptr INewShortcutHookW, pszExtension: PWSTR, cchExtension: int32 + ): HRESULT {.stdcall.} + IShellDetails* {.pure.} = object lpVtbl*: ptr IShellDetailsVtbl + IShellDetailsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDetailsOf*: proc(self: ptr IShellDetails, pidl: PCUITEMID_CHILD, iColumn: UINT, pDetails: ptr SHELLDETAILS): HRESULT {.stdcall.} + GetDetailsOf*: proc( + self: ptr IShellDetails, + pidl: PCUITEMID_CHILD, + iColumn: UINT, + pDetails: ptr SHELLDETAILS, + ): HRESULT {.stdcall.} ColumnClick*: proc(self: ptr IShellDetails, iColumn: UINT): HRESULT {.stdcall.} + IObjMgr* {.pure.} = object lpVtbl*: ptr IObjMgrVtbl + IObjMgrVtbl* {.pure, inheritable.} = object of IUnknownVtbl Append*: proc(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.stdcall.} Remove*: proc(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.stdcall.} + ICurrentWorkingDirectory* {.pure.} = object lpVtbl*: ptr ICurrentWorkingDirectoryVtbl + ICurrentWorkingDirectoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetDirectory*: proc(self: ptr ICurrentWorkingDirectory, pwzPath: PWSTR, cchSize: DWORD): HRESULT {.stdcall.} - SetDirectory*: proc(self: ptr ICurrentWorkingDirectory, pwzPath: PCWSTR): HRESULT {.stdcall.} + GetDirectory*: proc( + self: ptr ICurrentWorkingDirectory, pwzPath: PWSTR, cchSize: DWORD + ): HRESULT {.stdcall.} + SetDirectory*: + proc(self: ptr ICurrentWorkingDirectory, pwzPath: PCWSTR): HRESULT {.stdcall.} + IACList* {.pure.} = object lpVtbl*: ptr IACListVtbl + IACListVtbl* {.pure, inheritable.} = object of IUnknownVtbl Expand*: proc(self: ptr IACList, pszExpand: PCWSTR): HRESULT {.stdcall.} + IACList2* {.pure.} = object lpVtbl*: ptr IACList2Vtbl + IACList2Vtbl* {.pure, inheritable.} = object of IACListVtbl SetOptions*: proc(self: ptr IACList2, dwFlag: DWORD): HRESULT {.stdcall.} GetOptions*: proc(self: ptr IACList2, pdwFlag: ptr DWORD): HRESULT {.stdcall.} + IProgressDialog* {.pure.} = object lpVtbl*: ptr IProgressDialogVtbl + IProgressDialogVtbl* {.pure, inheritable.} = object of IUnknownVtbl - StartProgressDialog*: proc(self: ptr IProgressDialog, hwndParent: HWND, punkEnableModless: ptr IUnknown, dwFlags: DWORD, pvResevered: LPCVOID): HRESULT {.stdcall.} + StartProgressDialog*: proc( + self: ptr IProgressDialog, + hwndParent: HWND, + punkEnableModless: ptr IUnknown, + dwFlags: DWORD, + pvResevered: LPCVOID, + ): HRESULT {.stdcall.} StopProgressDialog*: proc(self: ptr IProgressDialog): HRESULT {.stdcall.} SetTitle*: proc(self: ptr IProgressDialog, pwzTitle: PCWSTR): HRESULT {.stdcall.} - SetAnimation*: proc(self: ptr IProgressDialog, hInstAnimation: HINSTANCE, idAnimation: UINT): HRESULT {.stdcall.} + SetAnimation*: proc( + self: ptr IProgressDialog, hInstAnimation: HINSTANCE, idAnimation: UINT + ): HRESULT {.stdcall.} HasUserCancelled*: proc(self: ptr IProgressDialog): WINBOOL {.stdcall.} - SetProgress*: proc(self: ptr IProgressDialog, dwCompleted: DWORD, dwTotal: DWORD): HRESULT {.stdcall.} - SetProgress64*: proc(self: ptr IProgressDialog, ullCompleted: ULONGLONG, ullTotal: ULONGLONG): HRESULT {.stdcall.} - SetLine*: proc(self: ptr IProgressDialog, dwLineNum: DWORD, pwzString: PCWSTR, fCompactPath: WINBOOL, pvResevered: LPCVOID): HRESULT {.stdcall.} - SetCancelMsg*: proc(self: ptr IProgressDialog, pwzCancelMsg: PCWSTR, pvResevered: LPCVOID): HRESULT {.stdcall.} - Timer*: proc(self: ptr IProgressDialog, dwTimerAction: DWORD, pvResevered: LPCVOID): HRESULT {.stdcall.} + SetProgress*: proc( + self: ptr IProgressDialog, dwCompleted: DWORD, dwTotal: DWORD + ): HRESULT {.stdcall.} + SetProgress64*: proc( + self: ptr IProgressDialog, ullCompleted: ULONGLONG, ullTotal: ULONGLONG + ): HRESULT {.stdcall.} + SetLine*: proc( + self: ptr IProgressDialog, + dwLineNum: DWORD, + pwzString: PCWSTR, + fCompactPath: WINBOOL, + pvResevered: LPCVOID, + ): HRESULT {.stdcall.} + SetCancelMsg*: proc( + self: ptr IProgressDialog, pwzCancelMsg: PCWSTR, pvResevered: LPCVOID + ): HRESULT {.stdcall.} + Timer*: proc( + self: ptr IProgressDialog, dwTimerAction: DWORD, pvResevered: LPCVOID + ): HRESULT {.stdcall.} + IDockingWindowSite* {.pure.} = object lpVtbl*: ptr IDockingWindowSiteVtbl + IDockingWindowSiteVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - GetBorderDW*: proc(self: ptr IDockingWindowSite, punkObj: ptr IUnknown, prcBorder: ptr RECT): HRESULT {.stdcall.} - RequestBorderSpaceDW*: proc(self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS): HRESULT {.stdcall.} - SetBorderSpaceDW*: proc(self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS): HRESULT {.stdcall.} + GetBorderDW*: proc( + self: ptr IDockingWindowSite, punkObj: ptr IUnknown, prcBorder: ptr RECT + ): HRESULT {.stdcall.} + RequestBorderSpaceDW*: proc( + self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS + ): HRESULT {.stdcall.} + SetBorderSpaceDW*: proc( + self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS + ): HRESULT {.stdcall.} + IDockingWindowFrame* {.pure.} = object lpVtbl*: ptr IDockingWindowFrameVtbl + IDockingWindowFrameVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - AddToolbar*: proc(self: ptr IDockingWindowFrame, punkSrc: ptr IUnknown, pwszItem: PCWSTR, dwAddFlags: DWORD): HRESULT {.stdcall.} - RemoveToolbar*: proc(self: ptr IDockingWindowFrame, punkSrc: ptr IUnknown, dwRemoveFlags: DWORD): HRESULT {.stdcall.} - FindToolbar*: proc(self: ptr IDockingWindowFrame, pwszItem: PCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.stdcall.} + AddToolbar*: proc( + self: ptr IDockingWindowFrame, + punkSrc: ptr IUnknown, + pwszItem: PCWSTR, + dwAddFlags: DWORD, + ): HRESULT {.stdcall.} + RemoveToolbar*: proc( + self: ptr IDockingWindowFrame, punkSrc: ptr IUnknown, dwRemoveFlags: DWORD + ): HRESULT {.stdcall.} + FindToolbar*: proc( + self: ptr IDockingWindowFrame, pwszItem: PCWSTR, riid: REFIID, ppv: ptr pointer + ): HRESULT {.stdcall.} + IShellFolderBand* {.pure.} = object lpVtbl*: ptr IShellFolderBandVtbl + IShellFolderBandVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InitializeSFB*: proc(self: ptr IShellFolderBand, psf: ptr IShellFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} - SetBandInfoSFB*: proc(self: ptr IShellFolderBand, pbi: PBANDINFOSFB): HRESULT {.stdcall.} - GetBandInfoSFB*: proc(self: ptr IShellFolderBand, pbi: PBANDINFOSFB): HRESULT {.stdcall.} + InitializeSFB*: proc( + self: ptr IShellFolderBand, psf: ptr IShellFolder, pidl: PCIDLIST_ABSOLUTE + ): HRESULT {.stdcall.} + SetBandInfoSFB*: + proc(self: ptr IShellFolderBand, pbi: PBANDINFOSFB): HRESULT {.stdcall.} + GetBandInfoSFB*: + proc(self: ptr IShellFolderBand, pbi: PBANDINFOSFB): HRESULT {.stdcall.} + IDeskBarClient* {.pure.} = object lpVtbl*: ptr IDeskBarClientVtbl + IDeskBarClientVtbl* {.pure, inheritable.} = object of IOleWindowVtbl - SetDeskBarSite*: proc(self: ptr IDeskBarClient, punkSite: ptr IUnknown): HRESULT {.stdcall.} + SetDeskBarSite*: + proc(self: ptr IDeskBarClient, punkSite: ptr IUnknown): HRESULT {.stdcall.} SetModeDBC*: proc(self: ptr IDeskBarClient, dwMode: DWORD): HRESULT {.stdcall.} UIActivateDBC*: proc(self: ptr IDeskBarClient, dwState: DWORD): HRESULT {.stdcall.} - GetSize*: proc(self: ptr IDeskBarClient, dwWhich: DWORD, prc: LPRECT): HRESULT {.stdcall.} + GetSize*: + proc(self: ptr IDeskBarClient, dwWhich: DWORD, prc: LPRECT): HRESULT {.stdcall.} + IColumnProvider* {.pure.} = object lpVtbl*: ptr IColumnProviderVtbl + IColumnProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IColumnProvider, psci: LPCSHCOLUMNINIT): HRESULT {.stdcall.} - GetColumnInfo*: proc(self: ptr IColumnProvider, dwIndex: DWORD, psci: ptr SHCOLUMNINFO): HRESULT {.stdcall.} - GetItemData*: proc(self: ptr IColumnProvider, pscid: LPCSHCOLUMNID, pscd: LPCSHCOLUMNDATA, pvarData: ptr VARIANT): HRESULT {.stdcall.} + Initialize*: + proc(self: ptr IColumnProvider, psci: LPCSHCOLUMNINIT): HRESULT {.stdcall.} + GetColumnInfo*: proc( + self: ptr IColumnProvider, dwIndex: DWORD, psci: ptr SHCOLUMNINFO + ): HRESULT {.stdcall.} + GetItemData*: proc( + self: ptr IColumnProvider, + pscid: LPCSHCOLUMNID, + pscd: LPCSHCOLUMNDATA, + pvarData: ptr VARIANT, + ): HRESULT {.stdcall.} + IShellChangeNotify* {.pure.} = object lpVtbl*: ptr IShellChangeNotifyVtbl + IShellChangeNotifyVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnChange*: proc(self: ptr IShellChangeNotify, lEvent: LONG, pidl1: PCIDLIST_ABSOLUTE, pidl2: PCIDLIST_ABSOLUTE): HRESULT {.stdcall.} + OnChange*: proc( + self: ptr IShellChangeNotify, + lEvent: LONG, + pidl1: PCIDLIST_ABSOLUTE, + pidl2: PCIDLIST_ABSOLUTE, + ): HRESULT {.stdcall.} + IQueryInfo* {.pure.} = object lpVtbl*: ptr IQueryInfoVtbl + IQueryInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetInfoTip*: proc(self: ptr IQueryInfo, dwFlags: DWORD, ppwszTip: ptr PWSTR): HRESULT {.stdcall.} + GetInfoTip*: proc( + self: ptr IQueryInfo, dwFlags: DWORD, ppwszTip: ptr PWSTR + ): HRESULT {.stdcall.} GetInfoFlags*: proc(self: ptr IQueryInfo, pdwFlags: ptr DWORD): HRESULT {.stdcall.} + IDefViewFrame* {.pure.} = object lpVtbl*: ptr IDefViewFrameVtbl + IDefViewFrameVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetWindowLV*: proc(self: ptr IDefViewFrame, phwnd: ptr HWND): HRESULT {.stdcall.} ReleaseWindowLV*: proc(self: ptr IDefViewFrame): HRESULT {.stdcall.} - GetShellFolder*: proc(self: ptr IDefViewFrame, ppsf: ptr ptr IShellFolder): HRESULT {.stdcall.} + GetShellFolder*: + proc(self: ptr IDefViewFrame, ppsf: ptr ptr IShellFolder): HRESULT {.stdcall.} + IDocViewSite* {.pure.} = object lpVtbl*: ptr IDocViewSiteVtbl + IDocViewSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - OnSetTitle*: proc(self: ptr IDocViewSite, pvTitle: ptr VARIANTARG): HRESULT {.stdcall.} + OnSetTitle*: + proc(self: ptr IDocViewSite, pvTitle: ptr VARIANTARG): HRESULT {.stdcall.} + IInitializeObject* {.pure.} = object lpVtbl*: ptr IInitializeObjectVtbl + IInitializeObjectVtbl* {.pure, inheritable.} = object of IUnknownVtbl Initialize*: proc(self: ptr IInitializeObject): HRESULT {.stdcall.} + IBanneredBar* {.pure.} = object lpVtbl*: ptr IBanneredBarVtbl + IBanneredBarVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetIconSize*: proc(self: ptr IBanneredBar, iIcon: DWORD): HRESULT {.stdcall.} GetIconSize*: proc(self: ptr IBanneredBar, piIcon: ptr DWORD): HRESULT {.stdcall.} SetBitmap*: proc(self: ptr IBanneredBar, hBitmap: HBITMAP): HRESULT {.stdcall.} GetBitmap*: proc(self: ptr IBanneredBar, phBitmap: ptr HBITMAP): HRESULT {.stdcall.} + IShellFolderView* {.pure.} = object lpVtbl*: ptr IShellFolderViewVtbl + IShellFolderViewVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Rearrange*: proc(self: ptr IShellFolderView, lParamSort: LPARAM): HRESULT {.stdcall.} - GetArrangeParam*: proc(self: ptr IShellFolderView, plParamSort: ptr LPARAM): HRESULT {.stdcall.} + Rearrange*: + proc(self: ptr IShellFolderView, lParamSort: LPARAM): HRESULT {.stdcall.} + GetArrangeParam*: + proc(self: ptr IShellFolderView, plParamSort: ptr LPARAM): HRESULT {.stdcall.} ArrangeGrid*: proc(self: ptr IShellFolderView): HRESULT {.stdcall.} AutoArrange*: proc(self: ptr IShellFolderView): HRESULT {.stdcall.} GetAutoArrange*: proc(self: ptr IShellFolderView): HRESULT {.stdcall.} - AddObject*: proc(self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.stdcall.} - GetObject*: proc(self: ptr IShellFolderView, ppidl: ptr PITEMID_CHILD, uItem: UINT): HRESULT {.stdcall.} - RemoveObject*: proc(self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.stdcall.} - GetObjectCount*: proc(self: ptr IShellFolderView, puCount: ptr UINT): HRESULT {.stdcall.} - SetObjectCount*: proc(self: ptr IShellFolderView, uCount: UINT, dwFlags: UINT): HRESULT {.stdcall.} - UpdateObject*: proc(self: ptr IShellFolderView, pidlOld: PUITEMID_CHILD, pidlNew: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.stdcall.} - RefreshObject*: proc(self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.stdcall.} + AddObject*: proc( + self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT + ): HRESULT {.stdcall.} + GetObject*: proc( + self: ptr IShellFolderView, ppidl: ptr PITEMID_CHILD, uItem: UINT + ): HRESULT {.stdcall.} + RemoveObject*: proc( + self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT + ): HRESULT {.stdcall.} + GetObjectCount*: + proc(self: ptr IShellFolderView, puCount: ptr UINT): HRESULT {.stdcall.} + SetObjectCount*: + proc(self: ptr IShellFolderView, uCount: UINT, dwFlags: UINT): HRESULT {.stdcall.} + UpdateObject*: proc( + self: ptr IShellFolderView, + pidlOld: PUITEMID_CHILD, + pidlNew: PUITEMID_CHILD, + puItem: ptr UINT, + ): HRESULT {.stdcall.} + RefreshObject*: proc( + self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT + ): HRESULT {.stdcall.} SetRedraw*: proc(self: ptr IShellFolderView, bRedraw: WINBOOL): HRESULT {.stdcall.} - GetSelectedCount*: proc(self: ptr IShellFolderView, puSelected: ptr UINT): HRESULT {.stdcall.} - GetSelectedObjects*: proc(self: ptr IShellFolderView, pppidl: ptr ptr PCUITEMID_CHILD, puItems: ptr UINT): HRESULT {.stdcall.} - IsDropOnSource*: proc(self: ptr IShellFolderView, pDropTarget: ptr IDropTarget): HRESULT {.stdcall.} + GetSelectedCount*: + proc(self: ptr IShellFolderView, puSelected: ptr UINT): HRESULT {.stdcall.} + GetSelectedObjects*: proc( + self: ptr IShellFolderView, pppidl: ptr ptr PCUITEMID_CHILD, puItems: ptr UINT + ): HRESULT {.stdcall.} + IsDropOnSource*: proc( + self: ptr IShellFolderView, pDropTarget: ptr IDropTarget + ): HRESULT {.stdcall.} GetDragPoint*: proc(self: ptr IShellFolderView, ppt: ptr POINT): HRESULT {.stdcall.} GetDropPoint*: proc(self: ptr IShellFolderView, ppt: ptr POINT): HRESULT {.stdcall.} - MoveIcons*: proc(self: ptr IShellFolderView, pDataObject: ptr IDataObject): HRESULT {.stdcall.} - SetItemPos*: proc(self: ptr IShellFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT): HRESULT {.stdcall.} - IsBkDropTarget*: proc(self: ptr IShellFolderView, pDropTarget: ptr IDropTarget): HRESULT {.stdcall.} + MoveIcons*: proc(self: ptr IShellFolderView, pDataObject: ptr IDataObject): HRESULT {. + stdcall + .} + SetItemPos*: proc( + self: ptr IShellFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT + ): HRESULT {.stdcall.} + IsBkDropTarget*: proc( + self: ptr IShellFolderView, pDropTarget: ptr IDropTarget + ): HRESULT {.stdcall.} SetClipboard*: proc(self: ptr IShellFolderView, bMove: WINBOOL): HRESULT {.stdcall.} - SetPoints*: proc(self: ptr IShellFolderView, pDataObject: ptr IDataObject): HRESULT {.stdcall.} - GetItemSpacing*: proc(self: ptr IShellFolderView, pSpacing: ptr ITEMSPACING): HRESULT {.stdcall.} - SetCallback*: proc(self: ptr IShellFolderView, pNewCB: ptr IShellFolderViewCB, ppOldCB: ptr ptr IShellFolderViewCB): HRESULT {.stdcall.} + SetPoints*: proc(self: ptr IShellFolderView, pDataObject: ptr IDataObject): HRESULT {. + stdcall + .} + GetItemSpacing*: + proc(self: ptr IShellFolderView, pSpacing: ptr ITEMSPACING): HRESULT {.stdcall.} + SetCallback*: proc( + self: ptr IShellFolderView, + pNewCB: ptr IShellFolderViewCB, + ppOldCB: ptr ptr IShellFolderViewCB, + ): HRESULT {.stdcall.} Select*: proc(self: ptr IShellFolderView, dwFlags: UINT): HRESULT {.stdcall.} - QuerySupport*: proc(self: ptr IShellFolderView, pdwSupport: ptr UINT): HRESULT {.stdcall.} - SetAutomationObject*: proc(self: ptr IShellFolderView, pdisp: ptr IDispatch): HRESULT {.stdcall.} + QuerySupport*: + proc(self: ptr IShellFolderView, pdwSupport: ptr UINT): HRESULT {.stdcall.} + SetAutomationObject*: + proc(self: ptr IShellFolderView, pdisp: ptr IDispatch): HRESULT {.stdcall.} + INamedPropertyBag* {.pure.} = object lpVtbl*: ptr INamedPropertyBagVtbl + INamedPropertyBagVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ReadPropertyNPB*: proc(self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR, pVar: ptr PROPVARIANT): HRESULT {.stdcall.} - WritePropertyNPB*: proc(self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR, pVar: ptr PROPVARIANT): HRESULT {.stdcall.} - RemovePropertyNPB*: proc(self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR): HRESULT {.stdcall.} -proc DragQueryFileA*(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc DragQueryFileW*(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc DragQueryPoint*(hDrop: HDROP, ppt: ptr POINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + ReadPropertyNPB*: proc( + self: ptr INamedPropertyBag, + pszBagname: PCWSTR, + pszPropName: PCWSTR, + pVar: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + WritePropertyNPB*: proc( + self: ptr INamedPropertyBag, + pszBagname: PCWSTR, + pszPropName: PCWSTR, + pVar: ptr PROPVARIANT, + ): HRESULT {.stdcall.} + RemovePropertyNPB*: proc( + self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR + ): HRESULT {.stdcall.} + +proc DragQueryFileA*( + hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DragQueryFileW*( + hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DragQueryPoint*( + hDrop: HDROP, ppt: ptr POINT +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + proc DragFinish*(hDrop: HDROP): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc DragAcceptFiles*(hWnd: HWND, fAccept: WINBOOL): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellExecuteA*(hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR, nShowCmd: INT): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellExecuteW*(hwnd: HWND, lpOperation: LPCWSTR, lpFile: LPCWSTR, lpParameters: LPCWSTR, lpDirectory: LPCWSTR, nShowCmd: INT): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} -proc FindExecutableA*(lpFile: LPCSTR, lpDirectory: LPCSTR, lpResult: LPSTR): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} -proc FindExecutableW*(lpFile: LPCWSTR, lpDirectory: LPCWSTR, lpResult: LPWSTR): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} -proc CommandLineToArgvW*(lpCmdLine: LPCWSTR, pNumArgs: ptr int32): ptr LPWSTR {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellAboutA*(hWnd: HWND, szApp: LPCSTR, szOtherStuff: LPCSTR, hIcon: HICON): INT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellAboutW*(hWnd: HWND, szApp: LPCWSTR, szOtherStuff: LPCWSTR, hIcon: HICON): INT {.winapi, stdcall, dynlib: "shell32", importc.} -proc DuplicateIcon*(hInst: HINSTANCE, hIcon: HICON): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractAssociatedIconA*(hInst: HINSTANCE, pszIconPath: LPSTR, piIcon: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractAssociatedIconW*(hInst: HINSTANCE, pszIconPath: LPWSTR, piIcon: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractAssociatedIconExA*(hInst: HINSTANCE, pszIconPath: LPSTR, piIconIndex: ptr WORD, piIconId: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractAssociatedIconExW*(hInst: HINSTANCE, pszIconPath: LPWSTR, piIconIndex: ptr WORD, piIconId: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractIconA*(hInst: HINSTANCE, pszExeFileName: LPCSTR, nIconIndex: UINT): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractIconW*(hInst: HINSTANCE, pszExeFileName: LPCWSTR, nIconIndex: UINT): HICON {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHAppBarMessage*(dwMessage: DWORD, pData: PAPPBARDATA): UINT_PTR {.winapi, stdcall, dynlib: "shell32", importc.} -proc DoEnvironmentSubstA*(pszSrc: LPSTR, cchSrc: UINT): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} -proc DoEnvironmentSubstW*(pszSrc: LPWSTR, cchSrc: UINT): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractIconExA*(lpszFile: LPCSTR, nIconIndex: int32, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIcons: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ExtractIconExW*(lpszFile: LPCWSTR, nIconIndex: int32, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIcons: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHFileOperationA*(lpFileOp: LPSHFILEOPSTRUCTA): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHFileOperationW*(lpFileOp: LPSHFILEOPSTRUCTW): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHFreeNameMappings*(hNameMappings: HANDLE): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellExecuteExA*(pExecInfo: ptr SHELLEXECUTEINFOA): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellExecuteExW*(pExecInfo: ptr SHELLEXECUTEINFOW): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateProcessAsUserW*(pscpi: PSHCREATEPROCESSINFOW): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHEvaluateSystemCommandTemplate*(pszCmdTemplate: PCWSTR, ppszApplication: ptr PWSTR, ppszCommandLine: ptr PWSTR, ppszParameters: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc AssocCreateForClasses*(rgClasses: ptr ASSOCIATIONELEMENT, cClasses: ULONG, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHQueryRecycleBinA*(pszRootPath: LPCSTR, pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHQueryRecycleBinW*(pszRootPath: LPCWSTR, pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHEmptyRecycleBinA*(hwnd: HWND, pszRootPath: LPCSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHEmptyRecycleBinW*(hwnd: HWND, pszRootPath: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHQueryUserNotificationState*(pquns: ptr QUERY_USER_NOTIFICATION_STATE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetPropertyStoreForWindow*(hwnd: HWND, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_NotifyIconA*(dwMessage: DWORD, lpData: PNOTIFYICONDATAA): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_NotifyIconW*(dwMessage: DWORD, lpData: PNOTIFYICONDATAW): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_NotifyIconGetRect*(identifier: ptr NOTIFYICONIDENTIFIER, iconLocation: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetFileInfoA*(pszPath: LPCSTR, dwFileAttributes: DWORD, psfi: ptr SHFILEINFOA, cbFileInfo: UINT, uFlags: UINT): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetFileInfoW*(pszPath: LPCWSTR, dwFileAttributes: DWORD, psfi: ptr SHFILEINFOW, cbFileInfo: UINT, uFlags: UINT): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetStockIconInfo*(siid: SHSTOCKICONID, uFlags: UINT, psii: ptr SHSTOCKICONINFO): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetDiskFreeSpaceExA*(pszDirectoryName: LPCSTR, pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, pulTotalNumberOfBytes: ptr ULARGE_INTEGER, pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetDiskFreeSpaceExW*(pszDirectoryName: LPCWSTR, pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, pulTotalNumberOfBytes: ptr ULARGE_INTEGER, pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetNewLinkInfoA*(pszLinkTo: LPCSTR, pszDir: LPCSTR, pszName: LPSTR, pfMustCopy: ptr WINBOOL, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetNewLinkInfoW*(pszLinkTo: LPCWSTR, pszDir: LPCWSTR, pszName: LPWSTR, pfMustCopy: ptr WINBOOL, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHInvokePrinterCommandA*(hwnd: HWND, uAction: UINT, lpBuf1: LPCSTR, lpBuf2: LPCSTR, fModal: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHInvokePrinterCommandW*(hwnd: HWND, uAction: UINT, lpBuf1: LPCWSTR, lpBuf2: LPCWSTR, fModal: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHLoadNonloadedIconOverlayIdentifiers*(): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHIsFileAvailableOffline*(pwszPath: PCWSTR, pdwStatus: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetLocalizedName*(pszPath: PCWSTR, pszResModule: PCWSTR, idsRes: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHRemoveLocalizedName*(pszPath: PCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetLocalizedName*(pszPath: PCWSTR, pszResModule: PWSTR, cch: UINT, pidsRes: ptr int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ShellMessageBoxA*(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCSTR, lpcTitle: LPCSTR, fuStyle: UINT): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} -proc ShellMessageBoxW*(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} -proc IsLFNDriveA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc IsLFNDriveW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHEnumerateUnreadMailAccountsW*(hKeyUser: HKEY, dwIndex: DWORD, pszMailAddress: LPWSTR, cchMailAddress: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetUnreadMailCountW*(hKeyUser: HKEY, pszMailAddress: LPCWSTR, pdwCount: ptr DWORD, pFileTime: ptr FILETIME, pszShellExecuteCommand: LPWSTR, cchShellExecuteCommand: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetUnreadMailCountW*(pszMailAddress: LPCWSTR, dwCount: DWORD, pszShellExecuteCommand: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHTestTokenMembership*(hToken: HANDLE, ulRID: ULONG): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetImageList*(iImageList: int32, riid: REFIID, ppvObj: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc InitNetworkAddressControl*(): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetDriveMedia*(pszDrive: PCWSTR, pdwMediaContent: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc StrChrA*(lpStart: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrChrW*(lpStart: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrChrIA*(lpStart: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrChrIW*(lpStart: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpNA*(lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpNW*(lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpNIA*(lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpNIW*(lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCSpnA*(lpStr: LPCSTR, lpSet: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCSpnW*(lpStr: LPCWSTR, lpSet: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCSpnIA*(lpStr: LPCSTR, lpSet: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCSpnIW*(lpStr: LPCWSTR, lpSet: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} +proc DragAcceptFiles*( + hWnd: HWND, fAccept: WINBOOL +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellExecuteA*( + hwnd: HWND, + lpOperation: LPCSTR, + lpFile: LPCSTR, + lpParameters: LPCSTR, + lpDirectory: LPCSTR, + nShowCmd: INT, +): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellExecuteW*( + hwnd: HWND, + lpOperation: LPCWSTR, + lpFile: LPCWSTR, + lpParameters: LPCWSTR, + lpDirectory: LPCWSTR, + nShowCmd: INT, +): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc FindExecutableA*( + lpFile: LPCSTR, lpDirectory: LPCSTR, lpResult: LPSTR +): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc FindExecutableW*( + lpFile: LPCWSTR, lpDirectory: LPCWSTR, lpResult: LPWSTR +): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc CommandLineToArgvW*( + lpCmdLine: LPCWSTR, pNumArgs: ptr int32 +): ptr LPWSTR {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellAboutA*( + hWnd: HWND, szApp: LPCSTR, szOtherStuff: LPCSTR, hIcon: HICON +): INT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellAboutW*( + hWnd: HWND, szApp: LPCWSTR, szOtherStuff: LPCWSTR, hIcon: HICON +): INT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DuplicateIcon*( + hInst: HINSTANCE, hIcon: HICON +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractAssociatedIconA*( + hInst: HINSTANCE, pszIconPath: LPSTR, piIcon: ptr WORD +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractAssociatedIconW*( + hInst: HINSTANCE, pszIconPath: LPWSTR, piIcon: ptr WORD +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractAssociatedIconExA*( + hInst: HINSTANCE, pszIconPath: LPSTR, piIconIndex: ptr WORD, piIconId: ptr WORD +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractAssociatedIconExW*( + hInst: HINSTANCE, pszIconPath: LPWSTR, piIconIndex: ptr WORD, piIconId: ptr WORD +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractIconA*( + hInst: HINSTANCE, pszExeFileName: LPCSTR, nIconIndex: UINT +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractIconW*( + hInst: HINSTANCE, pszExeFileName: LPCWSTR, nIconIndex: UINT +): HICON {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHAppBarMessage*( + dwMessage: DWORD, pData: PAPPBARDATA +): UINT_PTR {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DoEnvironmentSubstA*( + pszSrc: LPSTR, cchSrc: UINT +): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DoEnvironmentSubstW*( + pszSrc: LPWSTR, cchSrc: UINT +): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractIconExA*( + lpszFile: LPCSTR, + nIconIndex: int32, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIcons: UINT, +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ExtractIconExW*( + lpszFile: LPCWSTR, + nIconIndex: int32, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIcons: UINT, +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHFileOperationA*( + lpFileOp: LPSHFILEOPSTRUCTA +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHFileOperationW*( + lpFileOp: LPSHFILEOPSTRUCTW +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHFreeNameMappings*( + hNameMappings: HANDLE +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellExecuteExA*( + pExecInfo: ptr SHELLEXECUTEINFOA +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellExecuteExW*( + pExecInfo: ptr SHELLEXECUTEINFOW +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateProcessAsUserW*( + pscpi: PSHCREATEPROCESSINFOW +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHEvaluateSystemCommandTemplate*( + pszCmdTemplate: PCWSTR, + ppszApplication: ptr PWSTR, + ppszCommandLine: ptr PWSTR, + ppszParameters: ptr PWSTR, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc AssocCreateForClasses*( + rgClasses: ptr ASSOCIATIONELEMENT, cClasses: ULONG, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHQueryRecycleBinA*( + pszRootPath: LPCSTR, pSHQueryRBInfo: LPSHQUERYRBINFO +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHQueryRecycleBinW*( + pszRootPath: LPCWSTR, pSHQueryRBInfo: LPSHQUERYRBINFO +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHEmptyRecycleBinA*( + hwnd: HWND, pszRootPath: LPCSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHEmptyRecycleBinW*( + hwnd: HWND, pszRootPath: LPCWSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHQueryUserNotificationState*( + pquns: ptr QUERY_USER_NOTIFICATION_STATE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetPropertyStoreForWindow*( + hwnd: HWND, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_NotifyIconA*( + dwMessage: DWORD, lpData: PNOTIFYICONDATAA +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_NotifyIconW*( + dwMessage: DWORD, lpData: PNOTIFYICONDATAW +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_NotifyIconGetRect*( + identifier: ptr NOTIFYICONIDENTIFIER, iconLocation: ptr RECT +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetFileInfoA*( + pszPath: LPCSTR, + dwFileAttributes: DWORD, + psfi: ptr SHFILEINFOA, + cbFileInfo: UINT, + uFlags: UINT, +): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetFileInfoW*( + pszPath: LPCWSTR, + dwFileAttributes: DWORD, + psfi: ptr SHFILEINFOW, + cbFileInfo: UINT, + uFlags: UINT, +): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetStockIconInfo*( + siid: SHSTOCKICONID, uFlags: UINT, psii: ptr SHSTOCKICONINFO +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetDiskFreeSpaceExA*( + pszDirectoryName: LPCSTR, + pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, + pulTotalNumberOfBytes: ptr ULARGE_INTEGER, + pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetDiskFreeSpaceExW*( + pszDirectoryName: LPCWSTR, + pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, + pulTotalNumberOfBytes: ptr ULARGE_INTEGER, + pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetNewLinkInfoA*( + pszLinkTo: LPCSTR, + pszDir: LPCSTR, + pszName: LPSTR, + pfMustCopy: ptr WINBOOL, + uFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetNewLinkInfoW*( + pszLinkTo: LPCWSTR, + pszDir: LPCWSTR, + pszName: LPWSTR, + pfMustCopy: ptr WINBOOL, + uFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHInvokePrinterCommandA*( + hwnd: HWND, uAction: UINT, lpBuf1: LPCSTR, lpBuf2: LPCSTR, fModal: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHInvokePrinterCommandW*( + hwnd: HWND, uAction: UINT, lpBuf1: LPCWSTR, lpBuf2: LPCWSTR, fModal: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHLoadNonloadedIconOverlayIdentifiers*(): HRESULT {. + winapi, stdcall, dynlib: "shell32", importc +.} + +proc SHIsFileAvailableOffline*( + pwszPath: PCWSTR, pdwStatus: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetLocalizedName*( + pszPath: PCWSTR, pszResModule: PCWSTR, idsRes: int32 +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHRemoveLocalizedName*( + pszPath: PCWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetLocalizedName*( + pszPath: PCWSTR, pszResModule: PWSTR, cch: UINT, pidsRes: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ShellMessageBoxA*( + hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCSTR, lpcTitle: LPCSTR, fuStyle: UINT +): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} + +proc ShellMessageBoxW*( + hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT +): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} + +proc IsLFNDriveA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc IsLFNDriveW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHEnumerateUnreadMailAccountsW*( + hKeyUser: HKEY, dwIndex: DWORD, pszMailAddress: LPWSTR, cchMailAddress: int32 +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetUnreadMailCountW*( + hKeyUser: HKEY, + pszMailAddress: LPCWSTR, + pdwCount: ptr DWORD, + pFileTime: ptr FILETIME, + pszShellExecuteCommand: LPWSTR, + cchShellExecuteCommand: int32, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetUnreadMailCountW*( + pszMailAddress: LPCWSTR, dwCount: DWORD, pszShellExecuteCommand: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHTestTokenMembership*( + hToken: HANDLE, ulRID: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetImageList*( + iImageList: int32, riid: REFIID, ppvObj: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc InitNetworkAddressControl*(): WINBOOL {. + winapi, stdcall, dynlib: "shell32", importc +.} + +proc SHGetDriveMedia*( + pszDrive: PCWSTR, pdwMediaContent: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc StrChrA*( + lpStart: LPCSTR, wMatch: WORD +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrChrW*( + lpStart: LPCWSTR, wMatch: WCHAR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrChrIA*( + lpStart: LPCSTR, wMatch: WORD +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrChrIW*( + lpStart: LPCWSTR, wMatch: WCHAR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpNA*( + lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpNW*( + lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpNIA*( + lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpNIW*( + lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCSpnA*( + lpStr: LPCSTR, lpSet: LPCSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCSpnW*( + lpStr: LPCWSTR, lpSet: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCSpnIA*( + lpStr: LPCSTR, lpSet: LPCSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCSpnIW*( + lpStr: LPCWSTR, lpSet: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + proc StrDupA*(lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} proc StrDupW*(lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFormatByteSizeA*(dw: DWORD, szBuf: LPSTR, uiBufSize: UINT): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFormatByteSize64A*(qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFormatByteSizeW*(qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFormatKBSizeW*(qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFormatKBSizeA*(qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFromTimeIntervalA*(pszOut: LPSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrFromTimeIntervalW*(pszOut: LPWSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrIsIntlEqualA*(fCaseSens: WINBOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrIsIntlEqualW*(fCaseSens: WINBOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrNCatA*(psz1: LPSTR, psz2: LPCSTR, cchMax: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrNCatW*(psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrPBrkA*(psz: LPCSTR, pszSet: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrPBrkW*(psz: LPCWSTR, pszSet: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRChrA*(lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRChrW*(lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRChrIA*(lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRChrIW*(lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRStrIA*(lpSource: LPCSTR, lpLast: LPCSTR, lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRStrIW*(lpSource: LPCWSTR, lpLast: LPCWSTR, lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrSpnA*(psz: LPCSTR, pszSet: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrSpnW*(psz: LPCWSTR, pszSet: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrStrA*(lpFirst: LPCSTR, lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrStrW*(lpFirst: LPCWSTR, lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrStrIA*(lpFirst: LPCSTR, lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrStrIW*(lpFirst: LPCWSTR, lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} +proc StrFormatByteSizeA*( + dw: DWORD, szBuf: LPSTR, uiBufSize: UINT +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrFormatByteSize64A*( + qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrFormatByteSizeW*( + qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrFormatKBSizeW*( + qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrFormatKBSizeA*( + qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrFromTimeIntervalA*( + pszOut: LPSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrFromTimeIntervalW*( + pszOut: LPWSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrIsIntlEqualA*( + fCaseSens: WINBOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: int32 +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrIsIntlEqualW*( + fCaseSens: WINBOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: int32 +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrNCatA*( + psz1: LPSTR, psz2: LPCSTR, cchMax: int32 +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrNCatW*( + psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32 +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrPBrkA*( + psz: LPCSTR, pszSet: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrPBrkW*( + psz: LPCWSTR, pszSet: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRChrA*( + lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRChrW*( + lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRChrIA*( + lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRChrIW*( + lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRStrIA*( + lpSource: LPCSTR, lpLast: LPCSTR, lpSrch: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRStrIW*( + lpSource: LPCWSTR, lpLast: LPCWSTR, lpSrch: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrSpnA*( + psz: LPCSTR, pszSet: LPCSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrSpnW*( + psz: LPCWSTR, pszSet: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrStrA*( + lpFirst: LPCSTR, lpSrch: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrStrW*( + lpFirst: LPCWSTR, lpSrch: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrStrIA*( + lpFirst: LPCSTR, lpSrch: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrStrIW*( + lpFirst: LPCWSTR, lpSrch: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + proc StrToIntA*(lpSrc: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} proc StrToIntW*(lpSrc: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrToIntExA*(pszString: LPCSTR, dwFlags: DWORD, piRet: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrToIntExW*(pszString: LPCWSTR, dwFlags: DWORD, piRet: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrToInt64ExA*(pszString: LPCSTR, dwFlags: DWORD, pllRet: ptr LONGLONG): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrToInt64ExW*(pszString: LPCWSTR, dwFlags: DWORD, pllRet: ptr LONGLONG): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrTrimA*(psz: LPSTR, pszTrimChars: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrTrimW*(psz: LPWSTR, pszTrimChars: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCatW*(psz1: LPWSTR, psz2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpW*(psz1: LPCWSTR, psz2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpIW*(psz1: LPCWSTR, psz2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCpyW*(psz1: LPWSTR, psz2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCpyNW*(psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCatBuffW*(pszDest: LPWSTR, pszSrc: LPCWSTR, cchDestBuffSize: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCatBuffA*(pszDest: LPSTR, pszSrc: LPCSTR, cchDestBuffSize: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc ChrCmpIA*(w1: WORD, w2: WORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc ChrCmpIW*(w1: WCHAR, w2: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc wvnsprintfA*(lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc wvnsprintfW*(lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc wnsprintfA*(lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} -proc wnsprintfW*(lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} -proc StrRetToStrA*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPSTR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRetToStrW*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRetToBufA*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPSTR, cchBuf: UINT): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRetToBufW*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPWSTR, cchBuf: UINT): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrRetToBSTR*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, pbstr: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHStrDupA*(psz: LPCSTR, ppwsz: ptr ptr WCHAR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHStrDupW*(psz: LPCWSTR, ppwsz: ptr ptr WCHAR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpLogicalW*(psz1: LPCWSTR, psz2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCatChainW*(pszDst: LPWSTR, cchDst: DWORD, ichAt: DWORD, pszSrc: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHLoadIndirectString*(pszSource: LPCWSTR, pszOutBuf: LPWSTR, cchOutBuf: UINT, ppvReserved: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} +proc StrToIntExA*( + pszString: LPCSTR, dwFlags: DWORD, piRet: ptr int32 +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrToIntExW*( + pszString: LPCWSTR, dwFlags: DWORD, piRet: ptr int32 +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrToInt64ExA*( + pszString: LPCSTR, dwFlags: DWORD, pllRet: ptr LONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrToInt64ExW*( + pszString: LPCWSTR, dwFlags: DWORD, pllRet: ptr LONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrTrimA*( + psz: LPSTR, pszTrimChars: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrTrimW*( + psz: LPWSTR, pszTrimChars: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCatW*( + psz1: LPWSTR, psz2: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpW*( + psz1: LPCWSTR, psz2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpIW*( + psz1: LPCWSTR, psz2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCpyW*( + psz1: LPWSTR, psz2: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCpyNW*( + psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32 +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCatBuffW*( + pszDest: LPWSTR, pszSrc: LPCWSTR, cchDestBuffSize: int32 +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCatBuffA*( + pszDest: LPSTR, pszSrc: LPCSTR, cchDestBuffSize: int32 +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc ChrCmpIA*( + w1: WORD, w2: WORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc ChrCmpIW*( + w1: WCHAR, w2: WCHAR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc wvnsprintfA*( + lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR, arglist: va_list +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc wvnsprintfW*( + lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR, arglist: va_list +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc wnsprintfA*( + lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR +): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} + +proc wnsprintfW*( + lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR +): int32 {.winapi, cdecl, varargs, dynlib: "shlwapi", importc.} + +proc StrRetToStrA*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPSTR +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRetToStrW*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPWSTR +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRetToBufA*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPSTR, cchBuf: UINT +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRetToBufW*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPWSTR, cchBuf: UINT +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrRetToBSTR*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, pbstr: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHStrDupA*( + psz: LPCSTR, ppwsz: ptr ptr WCHAR +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHStrDupW*( + psz: LPCWSTR, ppwsz: ptr ptr WCHAR +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpLogicalW*( + psz1: LPCWSTR, psz2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCatChainW*( + pszDst: LPWSTR, cchDst: DWORD, ichAt: DWORD, pszSrc: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHLoadIndirectString*( + pszSource: LPCWSTR, pszOutBuf: LPWSTR, cchOutBuf: UINT, ppvReserved: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + proc IsCharSpaceA*(wch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} proc IsCharSpaceW*(wch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpCA*(pszStr1: LPCSTR, pszStr2: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpCW*(pszStr1: LPCWSTR, pszStr2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpICA*(pszStr1: LPCSTR, pszStr2: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc StrCmpICW*(pszStr1: LPCWSTR, pszStr2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc IntlStrEqWorkerA*(fCaseSens: WINBOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc IntlStrEqWorkerW*(fCaseSens: WINBOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathAddBackslashA*(pszPath: LPSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathAddBackslashW*(pszPath: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathAddExtensionA*(pszPath: LPSTR, pszExt: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathAddExtensionW*(pszPath: LPWSTR, pszExt: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathAppendA*(pszPath: LPSTR, pMore: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathAppendW*(pszPath: LPWSTR, pMore: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathBuildRootA*(pszRoot: LPSTR, iDrive: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathBuildRootW*(pszRoot: LPWSTR, iDrive: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCanonicalizeA*(pszBuf: LPSTR, pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCanonicalizeW*(pszBuf: LPWSTR, pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCombineA*(pszDest: LPSTR, pszDir: LPCSTR, pszFile: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCombineW*(pszDest: LPWSTR, pszDir: LPCWSTR, pszFile: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCompactPathA*(hDC: HDC, pszPath: LPSTR, dx: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCompactPathW*(hDC: HDC, pszPath: LPWSTR, dx: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCompactPathExA*(pszOut: LPSTR, pszSrc: LPCSTR, cchMax: UINT, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCompactPathExW*(pszOut: LPWSTR, pszSrc: LPCWSTR, cchMax: UINT, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCommonPrefixA*(pszFile1: LPCSTR, pszFile2: LPCSTR, achPath: LPSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCommonPrefixW*(pszFile1: LPCWSTR, pszFile2: LPCWSTR, achPath: LPWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFileExistsA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFileExistsW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindExtensionA*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindExtensionW*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindFileNameA*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindFileNameW*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindNextComponentA*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindNextComponentW*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindOnPathA*(pszPath: LPSTR, ppszOtherDirs: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindOnPathW*(pszPath: LPWSTR, ppszOtherDirs: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathGetArgsA*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathGetArgsW*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindSuffixArrayA*(pszPath: LPCSTR, apszSuffix: ptr LPCSTR, iArraySize: int32): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathFindSuffixArrayW*(pszPath: LPCWSTR, apszSuffix: ptr LPCWSTR, iArraySize: int32): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsLFNFileSpecA*(lpName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsLFNFileSpecW*(lpName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} +proc StrCmpCA*( + pszStr1: LPCSTR, pszStr2: LPCSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpCW*( + pszStr1: LPCWSTR, pszStr2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpICA*( + pszStr1: LPCSTR, pszStr2: LPCSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc StrCmpICW*( + pszStr1: LPCWSTR, pszStr2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc IntlStrEqWorkerA*( + fCaseSens: WINBOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: int32 +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc IntlStrEqWorkerW*( + fCaseSens: WINBOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: int32 +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathAddBackslashA*( + pszPath: LPSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathAddBackslashW*( + pszPath: LPWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathAddExtensionA*( + pszPath: LPSTR, pszExt: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathAddExtensionW*( + pszPath: LPWSTR, pszExt: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathAppendA*( + pszPath: LPSTR, pMore: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathAppendW*( + pszPath: LPWSTR, pMore: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathBuildRootA*( + pszRoot: LPSTR, iDrive: int32 +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathBuildRootW*( + pszRoot: LPWSTR, iDrive: int32 +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCanonicalizeA*( + pszBuf: LPSTR, pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCanonicalizeW*( + pszBuf: LPWSTR, pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCombineA*( + pszDest: LPSTR, pszDir: LPCSTR, pszFile: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCombineW*( + pszDest: LPWSTR, pszDir: LPCWSTR, pszFile: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCompactPathA*( + hDC: HDC, pszPath: LPSTR, dx: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCompactPathW*( + hDC: HDC, pszPath: LPWSTR, dx: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCompactPathExA*( + pszOut: LPSTR, pszSrc: LPCSTR, cchMax: UINT, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCompactPathExW*( + pszOut: LPWSTR, pszSrc: LPCWSTR, cchMax: UINT, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCommonPrefixA*( + pszFile1: LPCSTR, pszFile2: LPCSTR, achPath: LPSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCommonPrefixW*( + pszFile1: LPCWSTR, pszFile2: LPCWSTR, achPath: LPWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFileExistsA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFileExistsW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindExtensionA*( + pszPath: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindExtensionW*( + pszPath: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindFileNameA*( + pszPath: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindFileNameW*( + pszPath: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindNextComponentA*( + pszPath: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindNextComponentW*( + pszPath: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindOnPathA*( + pszPath: LPSTR, ppszOtherDirs: ptr LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindOnPathW*( + pszPath: LPWSTR, ppszOtherDirs: ptr LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathGetArgsA*( + pszPath: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathGetArgsW*( + pszPath: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindSuffixArrayA*( + pszPath: LPCSTR, apszSuffix: ptr LPCSTR, iArraySize: int32 +): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathFindSuffixArrayW*( + pszPath: LPCWSTR, apszSuffix: ptr LPCWSTR, iArraySize: int32 +): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsLFNFileSpecA*( + lpName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsLFNFileSpecW*( + lpName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + proc PathGetCharTypeA*(ch: UCHAR): UINT {.winapi, stdcall, dynlib: "shlwapi", importc.} proc PathGetCharTypeW*(ch: WCHAR): UINT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathGetDriveNumberA*(pszPath: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathGetDriveNumberW*(pszPath: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsDirectoryA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsDirectoryW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsDirectoryEmptyA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsDirectoryEmptyW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsFileSpecA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsFileSpecW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsPrefixA*(pszPrefix: LPCSTR, pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsPrefixW*(pszPrefix: LPCWSTR, pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsRelativeA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsRelativeW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsRootA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsRootW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsSameRootA*(pszPath1: LPCSTR, pszPath2: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsSameRootW*(pszPath1: LPCWSTR, pszPath2: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsUNCA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsUNCW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsNetworkPathA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsNetworkPathW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsUNCServerA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsUNCServerW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsUNCServerShareA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsUNCServerShareW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsContentTypeA*(pszPath: LPCSTR, pszContentType: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsContentTypeW*(pszPath: LPCWSTR, pszContentType: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsURLA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsURLW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathMakePrettyA*(pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathMakePrettyW*(pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathMatchSpecA*(pszFile: LPCSTR, pszSpec: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathMatchSpecW*(pszFile: LPCWSTR, pszSpec: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathParseIconLocationA*(pszIconFile: LPSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathParseIconLocationW*(pszIconFile: LPWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathQuoteSpacesA*(lpsz: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathQuoteSpacesW*(lpsz: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRelativePathToA*(pszPath: LPSTR, pszFrom: LPCSTR, dwAttrFrom: DWORD, pszTo: LPCSTR, dwAttrTo: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRelativePathToW*(pszPath: LPWSTR, pszFrom: LPCWSTR, dwAttrFrom: DWORD, pszTo: LPCWSTR, dwAttrTo: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveArgsA*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveArgsW*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveBackslashA*(pszPath: LPSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveBackslashW*(pszPath: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveBlanksA*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveBlanksW*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveExtensionA*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveExtensionW*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveFileSpecA*(pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRemoveFileSpecW*(pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRenameExtensionA*(pszPath: LPSTR, pszExt: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathRenameExtensionW*(pszPath: LPWSTR, pszExt: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathSearchAndQualifyA*(pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathSearchAndQualifyW*(pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathSetDlgItemPathA*(hDlg: HWND, id: int32, pszPath: LPCSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathSetDlgItemPathW*(hDlg: HWND, id: int32, pszPath: LPCWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathSkipRootA*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathSkipRootW*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathStripPathA*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathStripPathW*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathStripToRootA*(pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathStripToRootW*(pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUnquoteSpacesA*(lpsz: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUnquoteSpacesW*(lpsz: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathMakeSystemFolderA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathMakeSystemFolderW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUnmakeSystemFolderA*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUnmakeSystemFolderW*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsSystemFolderA*(pszPath: LPCSTR, dwAttrb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathIsSystemFolderW*(pszPath: LPCWSTR, dwAttrb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUndecorateA*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUndecorateW*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUnExpandEnvStringsA*(pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathUnExpandEnvStringsW*(pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCompareA*(psz1: LPCSTR, psz2: LPCSTR, fIgnoreSlash: WINBOOL): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCompareW*(psz1: LPCWSTR, psz2: LPCWSTR, fIgnoreSlash: WINBOOL): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCombineA*(pszBase: LPCSTR, pszRelative: LPCSTR, pszCombined: LPSTR, pcchCombined: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCombineW*(pszBase: LPCWSTR, pszRelative: LPCWSTR, pszCombined: LPWSTR, pcchCombined: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCanonicalizeA*(pszUrl: LPCSTR, pszCanonicalized: LPSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCanonicalizeW*(pszUrl: LPCWSTR, pszCanonicalized: LPWSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlIsOpaqueA*(pszURL: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlIsOpaqueW*(pszURL: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlIsNoHistoryA*(pszURL: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlIsNoHistoryW*(pszURL: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlIsA*(pszUrl: LPCSTR, UrlIs: TURLIS): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlIsW*(pszUrl: LPCWSTR, UrlIs: TURLIS): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlGetLocationA*(psz1: LPCSTR): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlGetLocationW*(psz1: LPCWSTR): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlUnescapeA*(pszUrl: LPSTR, pszUnescaped: LPSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlUnescapeW*(pszUrl: LPWSTR, pszUnescaped: LPWSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlEscapeA*(pszUrl: LPCSTR, pszEscaped: LPSTR, pcchEscaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlEscapeW*(pszUrl: LPCWSTR, pszEscaped: LPWSTR, pcchEscaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCreateFromPathA*(pszPath: LPCSTR, pszUrl: LPSTR, pcchUrl: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlCreateFromPathW*(pszPath: LPCWSTR, pszUrl: LPWSTR, pcchUrl: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCreateFromUrlA*(pszUrl: LPCSTR, pszPath: LPSTR, pcchPath: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc PathCreateFromUrlW*(pszUrl: LPCWSTR, pszPath: LPWSTR, pcchPath: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlHashA*(pszUrl: LPCSTR, pbHash: LPBYTE, cbHash: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlHashW*(pszUrl: LPCWSTR, pbHash: LPBYTE, cbHash: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlGetPartW*(pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlGetPartA*(pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlApplySchemeA*(pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc UrlApplySchemeW*(pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc HashData*(pbData: LPBYTE, cbData: DWORD, pbHash: LPBYTE, cbHash: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHDeleteEmptyKeyA*(hkey: HKEY, pszSubKey: LPCSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHDeleteEmptyKeyW*(hkey: HKEY, pszSubKey: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHDeleteKeyA*(hkey: HKEY, pszSubKey: LPCSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHDeleteKeyW*(hkey: HKEY, pszSubKey: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegDuplicateHKey*(hkey: HKEY): HKEY {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHDeleteValueA*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHDeleteValueW*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHGetValueA*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHGetValueW*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHSetValueA*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, dwType: DWORD, pvData: LPCVOID, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHSetValueW*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, dwType: DWORD, pvData: LPCVOID, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetValueA*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, dwFlags: SRRF, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetValueW*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, dwFlags: SRRF, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHQueryValueExA*(hkey: HKEY, pszValue: LPCSTR, pdwReserved: ptr DWORD, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHQueryValueExW*(hkey: HKEY, pszValue: LPCWSTR, pdwReserved: ptr DWORD, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHEnumKeyExA*(hkey: HKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHEnumKeyExW*(hkey: HKEY, dwIndex: DWORD, pszName: LPWSTR, pcchName: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHEnumValueA*(hkey: HKEY, dwIndex: DWORD, pszValueName: LPSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHEnumValueW*(hkey: HKEY, dwIndex: DWORD, pszValueName: LPWSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHQueryInfoKeyA*(hkey: HKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHQueryInfoKeyW*(hkey: HKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCopyKeyA*(hkeySrc: HKEY, szSrcSubKey: LPCSTR, hkeyDest: HKEY, fReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCopyKeyW*(hkeySrc: HKEY, wszSrcSubKey: LPCWSTR, hkeyDest: HKEY, fReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetPathA*(hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pszPath: LPSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetPathW*(hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pszPath: LPWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegSetPathA*(hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pcszPath: LPCSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegSetPathW*(hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pcszPath: LPCWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegCreateUSKeyA*(pszPath: LPCSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegCreateUSKeyW*(pwzPath: LPCWSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegOpenUSKeyA*(pszPath: LPCSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, fIgnoreHKCU: WINBOOL): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegOpenUSKeyW*(pwzPath: LPCWSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, fIgnoreHKCU: WINBOOL): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegQueryUSValueA*(hUSKey: HUSKEY, pszValue: LPCSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegQueryUSValueW*(hUSKey: HUSKEY, pwzValue: LPCWSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegWriteUSValueA*(hUSKey: HUSKEY, pszValue: LPCSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegWriteUSValueW*(hUSKey: HUSKEY, pwzValue: LPCWSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegDeleteUSValueA*(hUSKey: HUSKEY, pszValue: LPCSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegDeleteEmptyUSKeyW*(hUSKey: HUSKEY, pwzSubKey: LPCWSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegDeleteEmptyUSKeyA*(hUSKey: HUSKEY, pszSubKey: LPCSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegDeleteUSValueW*(hUSKey: HUSKEY, pwzValue: LPCWSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegEnumUSKeyA*(hUSKey: HUSKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegEnumUSKeyW*(hUSKey: HUSKEY, dwIndex: DWORD, pwzName: LPWSTR, pcchName: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegEnumUSValueA*(hUSkey: HUSKEY, dwIndex: DWORD, pszValueName: LPSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegEnumUSValueW*(hUSkey: HUSKEY, dwIndex: DWORD, pszValueName: LPWSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegQueryInfoUSKeyA*(hUSKey: HUSKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegQueryInfoUSKeyW*(hUSKey: HUSKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegCloseUSKey*(hUSKey: HUSKEY): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetUSValueA*(pszSubKey: LPCSTR, pszValue: LPCSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetUSValueW*(pwzSubKey: LPCWSTR, pwzValue: LPCWSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegSetUSValueA*(pszSubKey: LPCSTR, pszValue: LPCSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegSetUSValueW*(pwzSubKey: LPCWSTR, pwzValue: LPCWSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetIntW*(hk: HKEY, pwzKey: LPCWSTR, iDefault: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetBoolUSValueA*(pszSubKey: LPCSTR, pszValue: LPCSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHRegGetBoolUSValueW*(pszSubKey: LPCWSTR, pszValue: LPCWSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocCreate*(clsid: CLSID, riid: REFIID, ppv: ptr LPVOID): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocQueryStringA*(flags: ASSOCF, str: ASSOCSTR, pszAssoc: LPCSTR, pszExtra: LPCSTR, pszOut: LPSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocQueryStringW*(flags: ASSOCF, str: ASSOCSTR, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocQueryStringByKeyA*(flags: ASSOCF, str: ASSOCSTR, hkAssoc: HKEY, pszExtra: LPCSTR, pszOut: LPSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocQueryStringByKeyW*(flags: ASSOCF, str: ASSOCSTR, hkAssoc: HKEY, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocQueryKeyA*(flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCSTR, pszExtra: LPCSTR, phkeyOut: ptr HKEY): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocQueryKeyW*(flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, phkeyOut: ptr HKEY): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocIsDangerous*(pszAssoc: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc AssocGetPerceivedType*(pszExt: LPCWSTR, ptype: ptr PERCEIVED, pflag: ptr PERCEIVEDFLAG, ppszType: ptr LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHOpenRegStreamA*(hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHOpenRegStreamW*(hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHOpenRegStream2A*(hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHOpenRegStream2W*(hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCreateStreamOnFileA*(pszFile: LPCSTR, grfMode: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCreateStreamOnFileW*(pszFile: LPCWSTR, grfMode: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCreateStreamOnFileEx*(pszFile: LPCWSTR, grfMode: DWORD, dwAttributes: DWORD, fCreate: WINBOOL, pstmTemplate: ptr IStream, ppstm: ptr ptr IStream): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc GetAcceptLanguagesA*(psz: LPSTR, pcch: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc GetAcceptLanguagesW*(psz: LPWSTR, pcch: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHGetViewStatePropertyBag*(pidl: LPCITEMIDLIST, pszBagName: LPCWSTR, dwFlags: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHAllocShared*(pvData: pointer, dwSize: DWORD, dwProcessId: DWORD): HANDLE {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHFreeShared*(hData: HANDLE, dwProcessId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHLockShared*(hData: HANDLE, dwProcessId: DWORD): pointer {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHUnlockShared*(pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHAutoComplete*(hwndEdit: HWND, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHSetThreadRef*(punk: ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHGetThreadRef*(ppunk: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHSkipJunction*(pbc: ptr IBindCtx, pclsid: ptr CLSID): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCreateThreadRef*(pcRef: ptr LONG, ppunk: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCreateThread*(pfnThreadProc: LPTHREAD_START_ROUTINE, pData: pointer, dwFlags: DWORD, pfnCallback: LPTHREAD_START_ROUTINE): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} +proc PathGetDriveNumberA*( + pszPath: LPCSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathGetDriveNumberW*( + pszPath: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsDirectoryA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsDirectoryW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsDirectoryEmptyA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsDirectoryEmptyW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsFileSpecA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsFileSpecW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsPrefixA*( + pszPrefix: LPCSTR, pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsPrefixW*( + pszPrefix: LPCWSTR, pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsRelativeA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsRelativeW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsRootA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsRootW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsSameRootA*( + pszPath1: LPCSTR, pszPath2: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsSameRootW*( + pszPath1: LPCWSTR, pszPath2: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsUNCA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsUNCW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsNetworkPathA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsNetworkPathW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsUNCServerA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsUNCServerW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsUNCServerShareA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsUNCServerShareW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsContentTypeA*( + pszPath: LPCSTR, pszContentType: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsContentTypeW*( + pszPath: LPCWSTR, pszContentType: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsURLA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsURLW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathMakePrettyA*( + pszPath: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathMakePrettyW*( + pszPath: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathMatchSpecA*( + pszFile: LPCSTR, pszSpec: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathMatchSpecW*( + pszFile: LPCWSTR, pszSpec: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathParseIconLocationA*( + pszIconFile: LPSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathParseIconLocationW*( + pszIconFile: LPWSTR +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathQuoteSpacesA*( + lpsz: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathQuoteSpacesW*( + lpsz: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRelativePathToA*( + pszPath: LPSTR, pszFrom: LPCSTR, dwAttrFrom: DWORD, pszTo: LPCSTR, dwAttrTo: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRelativePathToW*( + pszPath: LPWSTR, pszFrom: LPCWSTR, dwAttrFrom: DWORD, pszTo: LPCWSTR, dwAttrTo: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveArgsA*( + pszPath: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveArgsW*( + pszPath: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveBackslashA*( + pszPath: LPSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveBackslashW*( + pszPath: LPWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveBlanksA*( + pszPath: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveBlanksW*( + pszPath: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveExtensionA*( + pszPath: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveExtensionW*( + pszPath: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveFileSpecA*( + pszPath: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRemoveFileSpecW*( + pszPath: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRenameExtensionA*( + pszPath: LPSTR, pszExt: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathRenameExtensionW*( + pszPath: LPWSTR, pszExt: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathSearchAndQualifyA*( + pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathSearchAndQualifyW*( + pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathSetDlgItemPathA*( + hDlg: HWND, id: int32, pszPath: LPCSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathSetDlgItemPathW*( + hDlg: HWND, id: int32, pszPath: LPCWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathSkipRootA*( + pszPath: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathSkipRootW*( + pszPath: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathStripPathA*( + pszPath: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathStripPathW*( + pszPath: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathStripToRootA*( + pszPath: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathStripToRootW*( + pszPath: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUnquoteSpacesA*( + lpsz: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUnquoteSpacesW*( + lpsz: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathMakeSystemFolderA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathMakeSystemFolderW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUnmakeSystemFolderA*( + pszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUnmakeSystemFolderW*( + pszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsSystemFolderA*( + pszPath: LPCSTR, dwAttrb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathIsSystemFolderW*( + pszPath: LPCWSTR, dwAttrb: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUndecorateA*( + pszPath: LPSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUndecorateW*( + pszPath: LPWSTR +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUnExpandEnvStringsA*( + pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathUnExpandEnvStringsW*( + pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCompareA*( + psz1: LPCSTR, psz2: LPCSTR, fIgnoreSlash: WINBOOL +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCompareW*( + psz1: LPCWSTR, psz2: LPCWSTR, fIgnoreSlash: WINBOOL +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCombineA*( + pszBase: LPCSTR, + pszRelative: LPCSTR, + pszCombined: LPSTR, + pcchCombined: LPDWORD, + dwFlags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCombineW*( + pszBase: LPCWSTR, + pszRelative: LPCWSTR, + pszCombined: LPWSTR, + pcchCombined: LPDWORD, + dwFlags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCanonicalizeA*( + pszUrl: LPCSTR, pszCanonicalized: LPSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCanonicalizeW*( + pszUrl: LPCWSTR, pszCanonicalized: LPWSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlIsOpaqueA*( + pszURL: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlIsOpaqueW*( + pszURL: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlIsNoHistoryA*( + pszURL: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlIsNoHistoryW*( + pszURL: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlIsA*( + pszUrl: LPCSTR, UrlIs: TURLIS +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlIsW*( + pszUrl: LPCWSTR, UrlIs: TURLIS +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlGetLocationA*( + psz1: LPCSTR +): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlGetLocationW*( + psz1: LPCWSTR +): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlUnescapeA*( + pszUrl: LPSTR, pszUnescaped: LPSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlUnescapeW*( + pszUrl: LPWSTR, pszUnescaped: LPWSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlEscapeA*( + pszUrl: LPCSTR, pszEscaped: LPSTR, pcchEscaped: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlEscapeW*( + pszUrl: LPCWSTR, pszEscaped: LPWSTR, pcchEscaped: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCreateFromPathA*( + pszPath: LPCSTR, pszUrl: LPSTR, pcchUrl: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlCreateFromPathW*( + pszPath: LPCWSTR, pszUrl: LPWSTR, pcchUrl: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCreateFromUrlA*( + pszUrl: LPCSTR, pszPath: LPSTR, pcchPath: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc PathCreateFromUrlW*( + pszUrl: LPCWSTR, pszPath: LPWSTR, pcchPath: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlHashA*( + pszUrl: LPCSTR, pbHash: LPBYTE, cbHash: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlHashW*( + pszUrl: LPCWSTR, pbHash: LPBYTE, cbHash: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlGetPartW*( + pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlGetPartA*( + pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlApplySchemeA*( + pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc UrlApplySchemeW*( + pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc HashData*( + pbData: LPBYTE, cbData: DWORD, pbHash: LPBYTE, cbHash: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHDeleteEmptyKeyA*( + hkey: HKEY, pszSubKey: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHDeleteEmptyKeyW*( + hkey: HKEY, pszSubKey: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHDeleteKeyA*( + hkey: HKEY, pszSubKey: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHDeleteKeyW*( + hkey: HKEY, pszSubKey: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegDuplicateHKey*( + hkey: HKEY +): HKEY {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHDeleteValueA*( + hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHDeleteValueW*( + hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHGetValueA*( + hkey: HKEY, + pszSubKey: LPCSTR, + pszValue: LPCSTR, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHGetValueW*( + hkey: HKEY, + pszSubKey: LPCWSTR, + pszValue: LPCWSTR, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHSetValueA*( + hkey: HKEY, + pszSubKey: LPCSTR, + pszValue: LPCSTR, + dwType: DWORD, + pvData: LPCVOID, + cbData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHSetValueW*( + hkey: HKEY, + pszSubKey: LPCWSTR, + pszValue: LPCWSTR, + dwType: DWORD, + pvData: LPCVOID, + cbData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetValueA*( + hkey: HKEY, + pszSubKey: LPCSTR, + pszValue: LPCSTR, + dwFlags: SRRF, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetValueW*( + hkey: HKEY, + pszSubKey: LPCWSTR, + pszValue: LPCWSTR, + dwFlags: SRRF, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHQueryValueExA*( + hkey: HKEY, + pszValue: LPCSTR, + pdwReserved: ptr DWORD, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHQueryValueExW*( + hkey: HKEY, + pszValue: LPCWSTR, + pdwReserved: ptr DWORD, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHEnumKeyExA*( + hkey: HKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHEnumKeyExW*( + hkey: HKEY, dwIndex: DWORD, pszName: LPWSTR, pcchName: LPDWORD +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHEnumValueA*( + hkey: HKEY, + dwIndex: DWORD, + pszValueName: LPSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHEnumValueW*( + hkey: HKEY, + dwIndex: DWORD, + pszValueName: LPWSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHQueryInfoKeyA*( + hkey: HKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHQueryInfoKeyW*( + hkey: HKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCopyKeyA*( + hkeySrc: HKEY, szSrcSubKey: LPCSTR, hkeyDest: HKEY, fReserved: DWORD +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCopyKeyW*( + hkeySrc: HKEY, wszSrcSubKey: LPCWSTR, hkeyDest: HKEY, fReserved: DWORD +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetPathA*( + hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pszPath: LPSTR, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetPathW*( + hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pszPath: LPWSTR, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegSetPathA*( + hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pcszPath: LPCSTR, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegSetPathW*( + hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pcszPath: LPCWSTR, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegCreateUSKeyA*( + pszPath: LPCSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + dwFlags: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegCreateUSKeyW*( + pwzPath: LPCWSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + dwFlags: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegOpenUSKeyA*( + pszPath: LPCSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + fIgnoreHKCU: WINBOOL, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegOpenUSKeyW*( + pwzPath: LPCWSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + fIgnoreHKCU: WINBOOL, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegQueryUSValueA*( + hUSKey: HUSKEY, + pszValue: LPCSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegQueryUSValueW*( + hUSKey: HUSKEY, + pwzValue: LPCWSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegWriteUSValueA*( + hUSKey: HUSKEY, + pszValue: LPCSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegWriteUSValueW*( + hUSKey: HUSKEY, + pwzValue: LPCWSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegDeleteUSValueA*( + hUSKey: HUSKEY, pszValue: LPCSTR, delRegFlags: SHREGDEL_FLAGS +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegDeleteEmptyUSKeyW*( + hUSKey: HUSKEY, pwzSubKey: LPCWSTR, delRegFlags: SHREGDEL_FLAGS +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegDeleteEmptyUSKeyA*( + hUSKey: HUSKEY, pszSubKey: LPCSTR, delRegFlags: SHREGDEL_FLAGS +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegDeleteUSValueW*( + hUSKey: HUSKEY, pwzValue: LPCWSTR, delRegFlags: SHREGDEL_FLAGS +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegEnumUSKeyA*( + hUSKey: HUSKEY, + dwIndex: DWORD, + pszName: LPSTR, + pcchName: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegEnumUSKeyW*( + hUSKey: HUSKEY, + dwIndex: DWORD, + pwzName: LPWSTR, + pcchName: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegEnumUSValueA*( + hUSkey: HUSKEY, + dwIndex: DWORD, + pszValueName: LPSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegEnumUSValueW*( + hUSkey: HUSKEY, + dwIndex: DWORD, + pszValueName: LPWSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegQueryInfoUSKeyA*( + hUSKey: HUSKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegQueryInfoUSKeyW*( + hUSKey: HUSKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegCloseUSKey*( + hUSKey: HUSKEY +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetUSValueA*( + pszSubKey: LPCSTR, + pszValue: LPCSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetUSValueW*( + pwzSubKey: LPCWSTR, + pwzValue: LPCWSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegSetUSValueA*( + pszSubKey: LPCSTR, + pszValue: LPCSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegSetUSValueW*( + pwzSubKey: LPCWSTR, + pwzValue: LPCWSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, +): LONG {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetIntW*( + hk: HKEY, pwzKey: LPCWSTR, iDefault: int32 +): int32 {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetBoolUSValueA*( + pszSubKey: LPCSTR, pszValue: LPCSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHRegGetBoolUSValueW*( + pszSubKey: LPCWSTR, pszValue: LPCWSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocCreate*( + clsid: CLSID, riid: REFIID, ppv: ptr LPVOID +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocQueryStringA*( + flags: ASSOCF, + str: ASSOCSTR, + pszAssoc: LPCSTR, + pszExtra: LPCSTR, + pszOut: LPSTR, + pcchOut: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocQueryStringW*( + flags: ASSOCF, + str: ASSOCSTR, + pszAssoc: LPCWSTR, + pszExtra: LPCWSTR, + pszOut: LPWSTR, + pcchOut: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocQueryStringByKeyA*( + flags: ASSOCF, + str: ASSOCSTR, + hkAssoc: HKEY, + pszExtra: LPCSTR, + pszOut: LPSTR, + pcchOut: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocQueryStringByKeyW*( + flags: ASSOCF, + str: ASSOCSTR, + hkAssoc: HKEY, + pszExtra: LPCWSTR, + pszOut: LPWSTR, + pcchOut: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocQueryKeyA*( + flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCSTR, pszExtra: LPCSTR, phkeyOut: ptr HKEY +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocQueryKeyW*( + flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, phkeyOut: ptr HKEY +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocIsDangerous*( + pszAssoc: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc AssocGetPerceivedType*( + pszExt: LPCWSTR, ptype: ptr PERCEIVED, pflag: ptr PERCEIVEDFLAG, ppszType: ptr LPWSTR +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHOpenRegStreamA*( + hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD +): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHOpenRegStreamW*( + hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD +): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHOpenRegStream2A*( + hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD +): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHOpenRegStream2W*( + hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD +): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCreateStreamOnFileA*( + pszFile: LPCSTR, grfMode: DWORD, ppstm: ptr ptr IStream +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCreateStreamOnFileW*( + pszFile: LPCWSTR, grfMode: DWORD, ppstm: ptr ptr IStream +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCreateStreamOnFileEx*( + pszFile: LPCWSTR, + grfMode: DWORD, + dwAttributes: DWORD, + fCreate: WINBOOL, + pstmTemplate: ptr IStream, + ppstm: ptr ptr IStream, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc GetAcceptLanguagesA*( + psz: LPSTR, pcch: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc GetAcceptLanguagesW*( + psz: LPWSTR, pcch: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHGetViewStatePropertyBag*( + pidl: LPCITEMIDLIST, + pszBagName: LPCWSTR, + dwFlags: DWORD, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHAllocShared*( + pvData: pointer, dwSize: DWORD, dwProcessId: DWORD +): HANDLE {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHFreeShared*( + hData: HANDLE, dwProcessId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHLockShared*( + hData: HANDLE, dwProcessId: DWORD +): pointer {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHUnlockShared*( + pvData: pointer +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHAutoComplete*( + hwndEdit: HWND, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHSetThreadRef*( + punk: ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHGetThreadRef*( + ppunk: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHSkipJunction*( + pbc: ptr IBindCtx, pclsid: ptr CLSID +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCreateThreadRef*( + pcRef: ptr LONG, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc SHCreateThread*( + pfnThreadProc: LPTHREAD_START_ROUTINE, + pData: pointer, + dwFlags: DWORD, + pfnCallback: LPTHREAD_START_ROUTINE, +): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} + proc SHReleaseThreadRef*(): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHCreateShellPalette*(hdc: HDC): HPALETTE {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc ColorRGBToHLS*(clrRGB: COLORREF, pwHue: ptr WORD, pwLuminance: ptr WORD, pwSaturation: ptr WORD): void {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc ColorHLSToRGB*(wHue: WORD, wLuminance: WORD, wSaturation: WORD): COLORREF {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc ColorAdjustLuma*(clrRGB: COLORREF, n: int32, fScale: WINBOOL): COLORREF {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc DllInstall*(bInstall: WINBOOL, pszCmdLine: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} +proc SHCreateShellPalette*( + hdc: HDC +): HPALETTE {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc ColorRGBToHLS*( + clrRGB: COLORREF, pwHue: ptr WORD, pwLuminance: ptr WORD, pwSaturation: ptr WORD +): void {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc ColorHLSToRGB*( + wHue: WORD, wLuminance: WORD, wSaturation: WORD +): COLORREF {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc ColorAdjustLuma*( + clrRGB: COLORREF, n: int32, fScale: WINBOOL +): COLORREF {.winapi, stdcall, dynlib: "shlwapi", importc.} + +proc DllInstall*( + bInstall: WINBOOL, pszCmdLine: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + proc IsInternetESCEnabled*(): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc.} -proc SHGetFolderPathW*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSimpleIDListFromPath*(pszPath: PCWSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateItemFromIDList*(pidl: PCIDLIST_ABSOLUTE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateItemFromParsingName*(pszPath: PCWSTR, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateItemWithParent*(pidlParent: PCIDLIST_ABSOLUTE, psfParent: ptr IShellFolder, pidl: PCUITEMID_CHILD, riid: REFIID, ppvItem: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateItemFromRelativeName*(psiParent: ptr IShellItem, pszName: PCWSTR, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateItemInKnownFolder*(kfid: REFKNOWNFOLDERID, dwKFFlags: DWORD, pszItem: PCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetIDListFromObject*(punk: ptr IUnknown, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetItemFromObject*(punk: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetPropertyStoreFromIDList*(pidl: PCIDLIST_ABSOLUTE, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetPropertyStoreFromParsingName*(pszPath: PCWSTR, pbc: ptr IBindCtx, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetNameFromIDList*(pidl: PCIDLIST_ABSOLUTE, sigdnName: SIGDN, ppszName: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetItemFromDataObject*(pdtobj: ptr IDataObject, dwFlags: DATAOBJ_GET_ITEM_FLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellItemArray*(pidlParent: PCIDLIST_ABSOLUTE, psf: ptr IShellFolder, cidl: UINT, ppidl: PCUITEMID_CHILD_ARRAY, ppsiItemArray: ptr ptr IShellItemArray): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellItemArrayFromDataObject*(pdo: ptr IDataObject, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellItemArrayFromIDLists*(cidl: UINT, rgpidl: PCIDLIST_ABSOLUTE_ARRAY, ppsiItemArray: ptr ptr IShellItemArray): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellItemArrayFromShellItem*(psi: ptr IShellItem, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHAddDefaultPropertiesByExt*(pszExt: PCWSTR, pPropStore: ptr IPropertyStore): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDefaultPropertiesOp*(psi: ptr IShellItem, ppFileOp: ptr ptr IFileOperation): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetDefaultProperties*(hwnd: HWND, psi: ptr IShellItem, dwFileOpFlags: DWORD, pfops: ptr IFileOperationProgressSink): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateAssociationRegistration*(riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDefaultExtractIcon*(riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SetCurrentProcessExplicitAppUserModelID*(AppID: PCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc GetCurrentProcessExplicitAppUserModelID*(AppID: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetTemporaryPropertyForItem*(psi: ptr IShellItem, propkey: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetTemporaryPropertyForItem*(psi: ptr IShellItem, propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHShowManageLibraryUI*(psiLibrary: ptr IShellItem, hwndOwner: HWND, pszTitle: LPCWSTR, pszInstruction: LPCWSTR, lmdOptions: LIBRARYMANAGEDIALOGOPTIONS): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHResolveLibrary*(psiLibrary: ptr IShellItem): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHAssocEnumHandlers*(pszExtra: PCWSTR, afFilter: ASSOC_FILTER, ppEnumHandler: ptr ptr IEnumAssocHandlers): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHAssocEnumHandlersForProtocolByApplication*(protocol: PCWSTR, riid: REFIID, enumHandlers: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetMalloc*(ppMalloc: ptr ptr IMalloc): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} +proc SHGetFolderPathW*( + hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSimpleIDListFromPath*( + pszPath: PCWSTR +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateItemFromIDList*( + pidl: PCIDLIST_ABSOLUTE, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateItemFromParsingName*( + pszPath: PCWSTR, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateItemWithParent*( + pidlParent: PCIDLIST_ABSOLUTE, + psfParent: ptr IShellFolder, + pidl: PCUITEMID_CHILD, + riid: REFIID, + ppvItem: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateItemFromRelativeName*( + psiParent: ptr IShellItem, + pszName: PCWSTR, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateItemInKnownFolder*( + kfid: REFKNOWNFOLDERID, + dwKFFlags: DWORD, + pszItem: PCWSTR, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetIDListFromObject*( + punk: ptr IUnknown, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetItemFromObject*( + punk: ptr IUnknown, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetPropertyStoreFromIDList*( + pidl: PCIDLIST_ABSOLUTE, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetPropertyStoreFromParsingName*( + pszPath: PCWSTR, + pbc: ptr IBindCtx, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetNameFromIDList*( + pidl: PCIDLIST_ABSOLUTE, sigdnName: SIGDN, ppszName: ptr PWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetItemFromDataObject*( + pdtobj: ptr IDataObject, + dwFlags: DATAOBJ_GET_ITEM_FLAGS, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellItemArray*( + pidlParent: PCIDLIST_ABSOLUTE, + psf: ptr IShellFolder, + cidl: UINT, + ppidl: PCUITEMID_CHILD_ARRAY, + ppsiItemArray: ptr ptr IShellItemArray, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellItemArrayFromDataObject*( + pdo: ptr IDataObject, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellItemArrayFromIDLists*( + cidl: UINT, rgpidl: PCIDLIST_ABSOLUTE_ARRAY, ppsiItemArray: ptr ptr IShellItemArray +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellItemArrayFromShellItem*( + psi: ptr IShellItem, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHAddDefaultPropertiesByExt*( + pszExt: PCWSTR, pPropStore: ptr IPropertyStore +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDefaultPropertiesOp*( + psi: ptr IShellItem, ppFileOp: ptr ptr IFileOperation +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetDefaultProperties*( + hwnd: HWND, + psi: ptr IShellItem, + dwFileOpFlags: DWORD, + pfops: ptr IFileOperationProgressSink, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateAssociationRegistration*( + riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDefaultExtractIcon*( + riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SetCurrentProcessExplicitAppUserModelID*( + AppID: PCWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc GetCurrentProcessExplicitAppUserModelID*( + AppID: ptr PWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetTemporaryPropertyForItem*( + psi: ptr IShellItem, propkey: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetTemporaryPropertyForItem*( + psi: ptr IShellItem, propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHShowManageLibraryUI*( + psiLibrary: ptr IShellItem, + hwndOwner: HWND, + pszTitle: LPCWSTR, + pszInstruction: LPCWSTR, + lmdOptions: LIBRARYMANAGEDIALOGOPTIONS, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHResolveLibrary*( + psiLibrary: ptr IShellItem +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHAssocEnumHandlers*( + pszExtra: PCWSTR, afFilter: ASSOC_FILTER, ppEnumHandler: ptr ptr IEnumAssocHandlers +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHAssocEnumHandlersForProtocolByApplication*( + protocol: PCWSTR, riid: REFIID, enumHandlers: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetMalloc*( + ppMalloc: ptr ptr IMalloc +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + proc SHAlloc*(cb: SIZE_T): pointer {.winapi, stdcall, dynlib: "shell32", importc.} proc SHFree*(pv: pointer): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetIconOverlayIndexA*(pszIconPath: LPCSTR, iIconIndex: int32): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetIconOverlayIndexW*(pszIconPath: LPCWSTR, iIconIndex: int32): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILClone*(pidl: PCUIDLIST_RELATIVE): PIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILCloneFirst*(pidl: PCUIDLIST_RELATIVE): PITEMID_CHILD {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILCombine*(pidl1: PCIDLIST_ABSOLUTE, pidl2: PCUIDLIST_RELATIVE): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILFree*(pidl: PIDLIST_RELATIVE): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILGetNext*(pidl: PCUIDLIST_RELATIVE): PUIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILGetSize*(pidl: PCUIDLIST_RELATIVE): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILFindChild*(pidlParent: PIDLIST_ABSOLUTE, pidlChild: PCIDLIST_ABSOLUTE): PUIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILFindLastID*(pidl: PCUIDLIST_RELATIVE): PUITEMID_CHILD {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILRemoveLastID*(pidl: PUIDLIST_RELATIVE): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILIsEqual*(pidl1: PCIDLIST_ABSOLUTE, pidl2: PCIDLIST_ABSOLUTE): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILIsParent*(pidl1: PCIDLIST_ABSOLUTE, pidl2: PCIDLIST_ABSOLUTE, fImmediate: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILSaveToStream*(pstm: ptr IStream, pidl: PCUIDLIST_RELATIVE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILLoadFromStreamEx*(pstm: ptr IStream, pidl: ptr PIDLIST_RELATIVE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILCreateFromPathA*(pszPath: PCSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILCreateFromPathW*(pszPath: PCWSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHILCreateFromPath*(pszPath: PCWSTR, ppidl: ptr PIDLIST_ABSOLUTE, rgfInOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ILAppendID*(pidl: PIDLIST_RELATIVE, pmkid: LPCSHITEMID, fAppend: WINBOOL): PIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetPathFromIDListEx*(pidl: PCIDLIST_ABSOLUTE, pszPath: PWSTR, cchPath: DWORD, uOpts: GPFIDL_FLAGS): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetPathFromIDListA*(pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetPathFromIDListW*(pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDirectory*(hwnd: HWND, pszPath: PCWSTR): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDirectoryExA*(hwnd: HWND, pszPath: LPCSTR, psa: ptr SECURITY_ATTRIBUTES): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDirectoryExW*(hwnd: HWND, pszPath: LPCWSTR, psa: ptr SECURITY_ATTRIBUTES): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHOpenFolderAndSelectItems*(pidlFolder: PCIDLIST_ABSOLUTE, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellItem*(pidlParent: PCIDLIST_ABSOLUTE, psfParent: ptr IShellFolder, pidl: PCUITEMID_CHILD, ppsi: ptr ptr IShellItem): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetSpecialFolderLocation*(hwnd: HWND, csidl: int32, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCloneSpecialIDList*(hwnd: HWND, csidl: int32, fCreate: WINBOOL): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetSpecialFolderPathA*(hwnd: HWND, pszPath: LPSTR, csidl: int32, fCreate: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetSpecialFolderPathW*(hwnd: HWND, pszPath: LPWSTR, csidl: int32, fCreate: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} +proc SHGetIconOverlayIndexA*( + pszIconPath: LPCSTR, iIconIndex: int32 +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetIconOverlayIndexW*( + pszIconPath: LPCWSTR, iIconIndex: int32 +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILClone*( + pidl: PCUIDLIST_RELATIVE +): PIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILCloneFirst*( + pidl: PCUIDLIST_RELATIVE +): PITEMID_CHILD {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILCombine*( + pidl1: PCIDLIST_ABSOLUTE, pidl2: PCUIDLIST_RELATIVE +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILFree*( + pidl: PIDLIST_RELATIVE +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILGetNext*( + pidl: PCUIDLIST_RELATIVE +): PUIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILGetSize*( + pidl: PCUIDLIST_RELATIVE +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILFindChild*( + pidlParent: PIDLIST_ABSOLUTE, pidlChild: PCIDLIST_ABSOLUTE +): PUIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILFindLastID*( + pidl: PCUIDLIST_RELATIVE +): PUITEMID_CHILD {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILRemoveLastID*( + pidl: PUIDLIST_RELATIVE +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILIsEqual*( + pidl1: PCIDLIST_ABSOLUTE, pidl2: PCIDLIST_ABSOLUTE +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILIsParent*( + pidl1: PCIDLIST_ABSOLUTE, pidl2: PCIDLIST_ABSOLUTE, fImmediate: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILSaveToStream*( + pstm: ptr IStream, pidl: PCUIDLIST_RELATIVE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILLoadFromStreamEx*( + pstm: ptr IStream, pidl: ptr PIDLIST_RELATIVE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILCreateFromPathA*( + pszPath: PCSTR +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILCreateFromPathW*( + pszPath: PCWSTR +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHILCreateFromPath*( + pszPath: PCWSTR, ppidl: ptr PIDLIST_ABSOLUTE, rgfInOut: ptr DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ILAppendID*( + pidl: PIDLIST_RELATIVE, pmkid: LPCSHITEMID, fAppend: WINBOOL +): PIDLIST_RELATIVE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetPathFromIDListEx*( + pidl: PCIDLIST_ABSOLUTE, pszPath: PWSTR, cchPath: DWORD, uOpts: GPFIDL_FLAGS +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetPathFromIDListA*( + pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetPathFromIDListW*( + pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDirectory*( + hwnd: HWND, pszPath: PCWSTR +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDirectoryExA*( + hwnd: HWND, pszPath: LPCSTR, psa: ptr SECURITY_ATTRIBUTES +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDirectoryExW*( + hwnd: HWND, pszPath: LPCWSTR, psa: ptr SECURITY_ATTRIBUTES +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHOpenFolderAndSelectItems*( + pidlFolder: PCIDLIST_ABSOLUTE, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + dwFlags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellItem*( + pidlParent: PCIDLIST_ABSOLUTE, + psfParent: ptr IShellFolder, + pidl: PCUITEMID_CHILD, + ppsi: ptr ptr IShellItem, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetSpecialFolderLocation*( + hwnd: HWND, csidl: int32, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCloneSpecialIDList*( + hwnd: HWND, csidl: int32, fCreate: WINBOOL +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetSpecialFolderPathA*( + hwnd: HWND, pszPath: LPSTR, csidl: int32, fCreate: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetSpecialFolderPathW*( + hwnd: HWND, pszPath: LPWSTR, csidl: int32, fCreate: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + proc SHFlushSFCache*(): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetFolderPathA*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetFolderLocation*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetFolderPathA*(csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetFolderPathW*(csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetFolderPathAndSubDirA*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCSTR, pszPath: LPSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetFolderPathAndSubDirW*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCWSTR, pszPath: LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetKnownFolderIDList*(rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetKnownFolderPath*(rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, pszPath: PCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetKnownFolderPath*(rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, ppszPath: ptr PWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetKnownFolderItem*(rfid: REFKNOWNFOLDERID, flags: KNOWN_FOLDER_FLAG, hToken: HANDLE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetSetFolderCustomSettings*(pfcs: LPSHFOLDERCUSTOMSETTINGS, pszPath: PCWSTR, dwReadWrite: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHBrowseForFolderA*(lpbi: LPBROWSEINFOA): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHBrowseForFolderW*(lpbi: LPBROWSEINFOW): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHLoadInProc*(rclsid: REFCLSID): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetDesktopFolder*(ppshf: ptr ptr IShellFolder): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHChangeNotify*(wEventId: LONG, uFlags: UINT, dwItem1: LPCVOID, dwItem2: LPCVOID): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHAddToRecentDocs*(uFlags: UINT, pv: LPCVOID): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHHandleUpdateImage*(pidlExtra: PCIDLIST_ABSOLUTE): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHUpdateImageA*(pszHashItem: LPCSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHUpdateImageW*(pszHashItem: LPCWSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHChangeNotifyRegister*(hwnd: HWND, fSources: int32, fEvents: LONG, wMsg: UINT, cEntries: int32, pshcne: ptr SHChangeNotifyEntry): ULONG {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHChangeNotifyDeregister*(ulID: ULONG): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHChangeNotifyRegisterThread*(status: SCNRT_STATUS): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHChangeNotification_Lock*(hChange: HANDLE, dwProcId: DWORD, pppidl: ptr ptr PIDLIST_ABSOLUTE, plEvent: ptr LONG): HANDLE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHChangeNotification_Unlock*(hLock: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetRealIDL*(psf: ptr IShellFolder, pidlSimple: PCUITEMID_CHILD, ppidlReal: ptr PITEMID_CHILD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetInstanceExplorer*(ppunk: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetDataFromIDListA*(psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetDataFromIDListW*(psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc RestartDialog*(hwnd: HWND, pszPrompt: PCWSTR, dwReturn: DWORD): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc RestartDialogEx*(hwnd: HWND, pszPrompt: PCWSTR, dwReturn: DWORD, dwReasonCode: DWORD): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCoCreateInstance*(pszCLSID: PCWSTR, pclsid: ptr CLSID, pUnkOuter: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDataObject*(pidlFolder: PCIDLIST_ABSOLUTE, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, pdtInner: ptr IDataObject, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc CIDLData_CreateFromIDArray*(pidlFolder: PCIDLIST_ABSOLUTE, cidl: UINT, apidl: PCUIDLIST_RELATIVE_ARRAY, ppdtobj: ptr ptr IDataObject): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateStdEnumFmtEtc*(cfmt: UINT, afmt: ptr FORMATETC, ppenumFormatEtc: ptr ptr IEnumFORMATETC): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHDoDragDrop*(hwnd: HWND, pdata: ptr IDataObject, pdsrc: ptr IDropSource, dwEffect: DWORD, pdwEffect: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc DAD_SetDragImage*(him: HIMAGELIST, pptOffset: ptr POINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc DAD_DragEnterEx*(hwndTarget: HWND, ptStart: POINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc DAD_DragEnterEx2*(hwndTarget: HWND, ptStart: POINT, pdtObject: ptr IDataObject): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc DAD_ShowDragImage*(fShow: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} +proc SHGetFolderPathA*( + hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetFolderLocation*( + hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetFolderPathA*( + csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetFolderPathW*( + csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetFolderPathAndSubDirA*( + hwnd: HWND, + csidl: int32, + hToken: HANDLE, + dwFlags: DWORD, + pszSubDir: LPCSTR, + pszPath: LPSTR, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetFolderPathAndSubDirW*( + hwnd: HWND, + csidl: int32, + hToken: HANDLE, + dwFlags: DWORD, + pszSubDir: LPCWSTR, + pszPath: LPWSTR, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetKnownFolderIDList*( + rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetKnownFolderPath*( + rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, pszPath: PCWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetKnownFolderPath*( + rfid: REFKNOWNFOLDERID, dwFlags: DWORD, hToken: HANDLE, ppszPath: ptr PWSTR +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetKnownFolderItem*( + rfid: REFKNOWNFOLDERID, + flags: KNOWN_FOLDER_FLAG, + hToken: HANDLE, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetSetFolderCustomSettings*( + pfcs: LPSHFOLDERCUSTOMSETTINGS, pszPath: PCWSTR, dwReadWrite: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHBrowseForFolderA*( + lpbi: LPBROWSEINFOA +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHBrowseForFolderW*( + lpbi: LPBROWSEINFOW +): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHLoadInProc*( + rclsid: REFCLSID +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetDesktopFolder*( + ppshf: ptr ptr IShellFolder +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHChangeNotify*( + wEventId: LONG, uFlags: UINT, dwItem1: LPCVOID, dwItem2: LPCVOID +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHAddToRecentDocs*( + uFlags: UINT, pv: LPCVOID +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHHandleUpdateImage*( + pidlExtra: PCIDLIST_ABSOLUTE +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHUpdateImageA*( + pszHashItem: LPCSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32 +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHUpdateImageW*( + pszHashItem: LPCWSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32 +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHChangeNotifyRegister*( + hwnd: HWND, + fSources: int32, + fEvents: LONG, + wMsg: UINT, + cEntries: int32, + pshcne: ptr SHChangeNotifyEntry, +): ULONG {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHChangeNotifyDeregister*( + ulID: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHChangeNotifyRegisterThread*( + status: SCNRT_STATUS +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHChangeNotification_Lock*( + hChange: HANDLE, dwProcId: DWORD, pppidl: ptr ptr PIDLIST_ABSOLUTE, plEvent: ptr LONG +): HANDLE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHChangeNotification_Unlock*( + hLock: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetRealIDL*( + psf: ptr IShellFolder, pidlSimple: PCUITEMID_CHILD, ppidlReal: ptr PITEMID_CHILD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetInstanceExplorer*( + ppunk: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetDataFromIDListA*( + psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32 +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetDataFromIDListW*( + psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32 +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc RestartDialog*( + hwnd: HWND, pszPrompt: PCWSTR, dwReturn: DWORD +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc RestartDialogEx*( + hwnd: HWND, pszPrompt: PCWSTR, dwReturn: DWORD, dwReasonCode: DWORD +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCoCreateInstance*( + pszCLSID: PCWSTR, + pclsid: ptr CLSID, + pUnkOuter: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDataObject*( + pidlFolder: PCIDLIST_ABSOLUTE, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + pdtInner: ptr IDataObject, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc CIDLData_CreateFromIDArray*( + pidlFolder: PCIDLIST_ABSOLUTE, + cidl: UINT, + apidl: PCUIDLIST_RELATIVE_ARRAY, + ppdtobj: ptr ptr IDataObject, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateStdEnumFmtEtc*( + cfmt: UINT, afmt: ptr FORMATETC, ppenumFormatEtc: ptr ptr IEnumFORMATETC +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHDoDragDrop*( + hwnd: HWND, + pdata: ptr IDataObject, + pdsrc: ptr IDropSource, + dwEffect: DWORD, + pdwEffect: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DAD_SetDragImage*( + him: HIMAGELIST, pptOffset: ptr POINT +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DAD_DragEnterEx*( + hwndTarget: HWND, ptStart: POINT +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DAD_DragEnterEx2*( + hwndTarget: HWND, ptStart: POINT, pdtObject: ptr IDataObject +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc DAD_ShowDragImage*( + fShow: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + proc DAD_DragMove*(pt: POINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} proc DAD_DragLeave*(): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc DAD_AutoScroll*(hwnd: HWND, pad: ptr AUTO_SCROLL_DATA, pptNow: ptr POINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc ReadCabinetState*(pcs: ptr CABINETSTATE, cLength: int32): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc WriteCabinetState*(pcs: ptr CABINETSTATE): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathMakeUniqueName*(pszUniqueName: PWSTR, cchMax: UINT, pszTemplate: PCWSTR, pszLongPlate: PCWSTR, pszDir: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} +proc DAD_AutoScroll*( + hwnd: HWND, pad: ptr AUTO_SCROLL_DATA, pptNow: ptr POINT +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ReadCabinetState*( + pcs: ptr CABINETSTATE, cLength: int32 +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc WriteCabinetState*( + pcs: ptr CABINETSTATE +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathMakeUniqueName*( + pszUniqueName: PWSTR, + cchMax: UINT, + pszTemplate: PCWSTR, + pszLongPlate: PCWSTR, + pszDir: PCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + proc PathQualify*(psz: PWSTR): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathIsExe*(pszPath: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathIsSlowA*(pszFile: LPCSTR, dwAttr: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathIsSlowW*(pszFile: LPCWSTR, dwAttr: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathCleanupSpec*(pszDir: PCWSTR, pszSpec: PWSTR): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathResolve*(pszPath: PWSTR, dirs: PZPCWSTR, fFlags: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc GetFileNameFromBrowse*(hwnd: HWND, pszFilePath: PWSTR, cchFilePath: UINT, pszWorkingDir: PCWSTR, pszDefExt: PCWSTR, pszFilters: PCWSTR, pszTitle: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} +proc PathIsExe*( + pszPath: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathIsSlowA*( + pszFile: LPCSTR, dwAttr: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathIsSlowW*( + pszFile: LPCWSTR, dwAttr: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathCleanupSpec*( + pszDir: PCWSTR, pszSpec: PWSTR +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathResolve*( + pszPath: PWSTR, dirs: PZPCWSTR, fFlags: UINT +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc GetFileNameFromBrowse*( + hwnd: HWND, + pszFilePath: PWSTR, + cchFilePath: UINT, + pszWorkingDir: PCWSTR, + pszDefExt: PCWSTR, + pszFilters: PCWSTR, + pszTitle: PCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + proc DriveType*(iDrive: int32): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc RealDriveType*(iDrive: int32, fOKToHitNet: WINBOOL): int32 {.winapi, stdcall, dynlib: "shell32", importc.} +proc RealDriveType*( + iDrive: int32, fOKToHitNet: WINBOOL +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + proc IsNetDrive*(iDrive: int32): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_MergeMenus*(hmDst: HMENU, hmSrc: HMENU, uInsert: UINT, uIDAdjust: UINT, uIDAdjustMax: UINT, uFlags: ULONG): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHObjectProperties*(hwnd: HWND, shopObjectType: DWORD, pszObjectName: PCWSTR, pszPropertyPage: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHFormatDrive*(hwnd: HWND, drive: UINT, fmtID: UINT, options: UINT): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreatePropSheetExtArray*(hKey: HKEY, pszSubKey: PCWSTR, max_iface: UINT): HPSXA {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHDestroyPropSheetExtArray*(hpsxa: HPSXA): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHAddFromPropSheetExtArray*(hpsxa: HPSXA, lpfnAddPage: LPFNADDPROPSHEETPAGE, lParam: LPARAM): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHReplaceFromPropSheetExtArray*(hpsxa: HPSXA, uPageID: UINT, lpfnReplaceWith: LPFNADDPROPSHEETPAGE, lParam: LPARAM): UINT {.winapi, stdcall, dynlib: "shell32", importc.} -proc OpenRegStream*(hkey: HKEY, pszSubkey: PCWSTR, pszValue: PCWSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHFindFiles*(pidlFolder: PCIDLIST_ABSOLUTE, pidlSaveFile: PCIDLIST_ABSOLUTE): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathGetShortPath*(pszLongPath: PWSTR): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc PathYetAnotherMakeUniqueName*(pszUniqueName: PWSTR, pszPath: PCWSTR, pszShort: PCWSTR, pszFileSpec: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc Win32DeleteFile*(pszPath: PCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHRestricted*(rest: RESTRICTIONS): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} -proc SignalFileOpen*(pidl: PCIDLIST_ABSOLUTE): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc AssocGetDetailsOfPropKey*(psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, pkey: ptr PROPERTYKEY, pv: ptr VARIANT, pfFoundPropKey: ptr WINBOOL): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHStartNetConnectionDialogW*(hwnd: HWND, pszRemoteName: LPCWSTR, dwType: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHDefExtractIconA*(pszIconFile: LPCSTR, iIndex: int32, uFlags: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHDefExtractIconW*(pszIconFile: LPCWSTR, iIndex: int32, uFlags: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHOpenWithDialog*(hwndParent: HWND, poainfo: ptr OPENASINFO): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_GetImageLists*(phiml: ptr HIMAGELIST, phimlSmall: ptr HIMAGELIST): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_GetCachedImageIndex*(pwszIconPath: PCWSTR, iIconIndex: int32, uIconFlags: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_GetCachedImageIndexA*(pszIconPath: LPCSTR, iIconIndex: int32, uIconFlags: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc Shell_GetCachedImageIndexW*(pszIconPath: LPCWSTR, iIconIndex: int32, uIconFlags: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHValidateUNC*(hwndOwner: HWND, pszFile: PWSTR, fConnect: UINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc PifMgr_OpenProperties*(pszApp: PCWSTR, pszPIF: PCWSTR, hInf: UINT, flOpt: UINT): HANDLE {.winapi, stdcall, dynlib: "shell32", importc.} -proc PifMgr_GetProperties*(hProps: HANDLE, pszGroup: PCSTR, lpProps: pointer, cbProps: int32, flOpt: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc PifMgr_SetProperties*(hProps: HANDLE, pszGroup: PCSTR, lpProps: pointer, cbProps: int32, flOpt: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc PifMgr_CloseProperties*(hProps: HANDLE, flOpt: UINT): HANDLE {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHSetInstanceExplorer*(punk: ptr IUnknown): void {.winapi, stdcall, dynlib: "shell32", importc.} +proc Shell_MergeMenus*( + hmDst: HMENU, + hmSrc: HMENU, + uInsert: UINT, + uIDAdjust: UINT, + uIDAdjustMax: UINT, + uFlags: ULONG, +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHObjectProperties*( + hwnd: HWND, shopObjectType: DWORD, pszObjectName: PCWSTR, pszPropertyPage: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHFormatDrive*( + hwnd: HWND, drive: UINT, fmtID: UINT, options: UINT +): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreatePropSheetExtArray*( + hKey: HKEY, pszSubKey: PCWSTR, max_iface: UINT +): HPSXA {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHDestroyPropSheetExtArray*( + hpsxa: HPSXA +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHAddFromPropSheetExtArray*( + hpsxa: HPSXA, lpfnAddPage: LPFNADDPROPSHEETPAGE, lParam: LPARAM +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHReplaceFromPropSheetExtArray*( + hpsxa: HPSXA, uPageID: UINT, lpfnReplaceWith: LPFNADDPROPSHEETPAGE, lParam: LPARAM +): UINT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc OpenRegStream*( + hkey: HKEY, pszSubkey: PCWSTR, pszValue: PCWSTR, grfMode: DWORD +): ptr IStream {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHFindFiles*( + pidlFolder: PCIDLIST_ABSOLUTE, pidlSaveFile: PCIDLIST_ABSOLUTE +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathGetShortPath*( + pszLongPath: PWSTR +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PathYetAnotherMakeUniqueName*( + pszUniqueName: PWSTR, pszPath: PCWSTR, pszShort: PCWSTR, pszFileSpec: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Win32DeleteFile*( + pszPath: PCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHRestricted*( + rest: RESTRICTIONS +): DWORD {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SignalFileOpen*( + pidl: PCIDLIST_ABSOLUTE +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc AssocGetDetailsOfPropKey*( + psf: ptr IShellFolder, + pidl: PCUITEMID_CHILD, + pkey: ptr PROPERTYKEY, + pv: ptr VARIANT, + pfFoundPropKey: ptr WINBOOL, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHStartNetConnectionDialogW*( + hwnd: HWND, pszRemoteName: LPCWSTR, dwType: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHDefExtractIconA*( + pszIconFile: LPCSTR, + iIndex: int32, + uFlags: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHDefExtractIconW*( + pszIconFile: LPCWSTR, + iIndex: int32, + uFlags: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHOpenWithDialog*( + hwndParent: HWND, poainfo: ptr OPENASINFO +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_GetImageLists*( + phiml: ptr HIMAGELIST, phimlSmall: ptr HIMAGELIST +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_GetCachedImageIndex*( + pwszIconPath: PCWSTR, iIconIndex: int32, uIconFlags: UINT +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_GetCachedImageIndexA*( + pszIconPath: LPCSTR, iIconIndex: int32, uIconFlags: UINT +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc Shell_GetCachedImageIndexW*( + pszIconPath: LPCWSTR, iIconIndex: int32, uIconFlags: UINT +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHValidateUNC*( + hwndOwner: HWND, pszFile: PWSTR, fConnect: UINT +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PifMgr_OpenProperties*( + pszApp: PCWSTR, pszPIF: PCWSTR, hInf: UINT, flOpt: UINT +): HANDLE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PifMgr_GetProperties*( + hProps: HANDLE, pszGroup: PCSTR, lpProps: pointer, cbProps: int32, flOpt: UINT +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PifMgr_SetProperties*( + hProps: HANDLE, pszGroup: PCSTR, lpProps: pointer, cbProps: int32, flOpt: UINT +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc PifMgr_CloseProperties*( + hProps: HANDLE, flOpt: UINT +): HANDLE {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHSetInstanceExplorer*( + punk: ptr IUnknown +): void {.winapi, stdcall, dynlib: "shell32", importc.} + proc IsUserAnAdmin*(): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHShellFolderView_Message*(hwndMain: HWND, uMsg: UINT, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellFolderView*(pcsfv: ptr SFV_CREATE, ppsv: ptr ptr IShellView): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc CDefFolderMenu_Create2*(pidlFolder: PCIDLIST_ABSOLUTE, hwnd: HWND, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, psf: ptr IShellFolder, pfn: LPFNDFMCALLBACK, nKeys: UINT, ahkeys: ptr HKEY, ppcm: ptr ptr IContextMenu): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateDefaultContextMenu*(pdcm: ptr DEFCONTEXTMENU, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHOpenPropSheetW*(pszCaption: LPCWSTR, ahkeys: ptr HKEY, ckeys: UINT, pclsidDefault: ptr CLSID, pdtobj: ptr IDataObject, psb: ptr IShellBrowser, pStartPage: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHFind_InitMenuPopup*(hmenu: HMENU, hwndOwner: HWND, idCmdFirst: UINT, idCmdLast: UINT): ptr IContextMenu {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateShellFolderViewEx*(pcsfv: ptr CSFV, ppsv: ptr ptr IShellView): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} +proc SHShellFolderView_Message*( + hwndMain: HWND, uMsg: UINT, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellFolderView*( + pcsfv: ptr SFV_CREATE, ppsv: ptr ptr IShellView +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc CDefFolderMenu_Create2*( + pidlFolder: PCIDLIST_ABSOLUTE, + hwnd: HWND, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + psf: ptr IShellFolder, + pfn: LPFNDFMCALLBACK, + nKeys: UINT, + ahkeys: ptr HKEY, + ppcm: ptr ptr IContextMenu, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateDefaultContextMenu*( + pdcm: ptr DEFCONTEXTMENU, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHOpenPropSheetW*( + pszCaption: LPCWSTR, + ahkeys: ptr HKEY, + ckeys: UINT, + pclsidDefault: ptr CLSID, + pdtobj: ptr IDataObject, + psb: ptr IShellBrowser, + pStartPage: LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHFind_InitMenuPopup*( + hmenu: HMENU, hwndOwner: HWND, idCmdFirst: UINT, idCmdLast: UINT +): ptr IContextMenu {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateShellFolderViewEx*( + pcsfv: ptr CSFV, ppsv: ptr ptr IShellView +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + when winimUnicode: - type - LPSHELLSTATE* = LPSHELLSTATEW + type LPSHELLSTATE* = LPSHELLSTATEW when winimAnsi: - type - LPSHELLSTATE* = LPSHELLSTATEA -proc SHGetSetSettings*(lpss: LPSHELLSTATE, dwMask: DWORD, bSet: WINBOOL): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetSettings*(psfs: ptr SHELLFLAGSTATE, dwMask: DWORD): void {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHBindToParent*(pidl: PCIDLIST_ABSOLUTE, riid: REFIID, ppv: ptr pointer, ppidlLast: ptr PCUITEMID_CHILD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHBindToFolderIDListParent*(psfRoot: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, riid: REFIID, ppv: ptr pointer, ppidlLast: ptr PCUITEMID_CHILD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHBindToFolderIDListParentEx*(psfRoot: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, ppbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer, ppidlLast: ptr PCUITEMID_CHILD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHBindToObject*(psf: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHParseDisplayName*(pszName: PCWSTR, pbc: ptr IBindCtx, ppidl: ptr PIDLIST_ABSOLUTE, sfgaoIn: SFGAOF, psfgaoOut: ptr SFGAOF): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHPathPrepareForWriteA*(hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHPathPrepareForWriteW*(hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SoftwareUpdateMessageBox*(hWnd: HWND, pszDistUnit: PCWSTR, dwFlags: DWORD, psdi: LPSOFTDISTINFO): DWORD {.winapi, stdcall, dynlib: "shdocvw", importc.} -proc SHPropStgCreate*(psstg: ptr IPropertySetStorage, fmtid: REFFMTID, pclsid: ptr CLSID, grfFlags: DWORD, grfMode: DWORD, dwDisposition: DWORD, ppstg: ptr ptr IPropertyStorage, puCodePage: ptr UINT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHPropStgReadMultiple*(pps: ptr IPropertyStorage, uCodePage: UINT, cpspec: ULONG, rgpspec: ptr PROPSPEC, rgvar: ptr PROPVARIANT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHPropStgWriteMultiple*(pps: ptr IPropertyStorage, puCodePage: ptr UINT, cpspec: ULONG, rgpspec: ptr PROPSPEC, rgvar: ptr PROPVARIANT, propidNameFirst: PROPID): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateFileExtractIconW*(pszFile: LPCWSTR, dwFileAttributes: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHLimitInputEdit*(hwndEdit: HWND, psf: ptr IShellFolder): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHGetAttributesFromDataObject*(pdo: ptr IDataObject, dwAttributeMask: DWORD, pdwAttributes: ptr DWORD, pcItems: ptr UINT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHMultiFileProperties*(pdtobj: ptr IDataObject, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHMapPIDLToSystemImageListIndex*(pshf: ptr IShellFolder, pidl: PCUITEMID_CHILD, piIndexSel: ptr int32): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCLSIDFromString*(psz: PCWSTR, pclsid: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc SHCreateQueryCancelAutoPlayMoniker*(ppmoniker: ptr ptr IMoniker): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + type LPSHELLSTATE* = LPSHELLSTATEA +proc SHGetSetSettings*( + lpss: LPSHELLSTATE, dwMask: DWORD, bSet: WINBOOL +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetSettings*( + psfs: ptr SHELLFLAGSTATE, dwMask: DWORD +): void {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHBindToParent*( + pidl: PCIDLIST_ABSOLUTE, + riid: REFIID, + ppv: ptr pointer, + ppidlLast: ptr PCUITEMID_CHILD, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHBindToFolderIDListParent*( + psfRoot: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + riid: REFIID, + ppv: ptr pointer, + ppidlLast: ptr PCUITEMID_CHILD, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHBindToFolderIDListParentEx*( + psfRoot: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + ppbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, + ppidlLast: ptr PCUITEMID_CHILD, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHBindToObject*( + psf: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHParseDisplayName*( + pszName: PCWSTR, + pbc: ptr IBindCtx, + ppidl: ptr PIDLIST_ABSOLUTE, + sfgaoIn: SFGAOF, + psfgaoOut: ptr SFGAOF, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHPathPrepareForWriteA*( + hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHPathPrepareForWriteW*( + hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCWSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SoftwareUpdateMessageBox*( + hWnd: HWND, pszDistUnit: PCWSTR, dwFlags: DWORD, psdi: LPSOFTDISTINFO +): DWORD {.winapi, stdcall, dynlib: "shdocvw", importc.} + +proc SHPropStgCreate*( + psstg: ptr IPropertySetStorage, + fmtid: REFFMTID, + pclsid: ptr CLSID, + grfFlags: DWORD, + grfMode: DWORD, + dwDisposition: DWORD, + ppstg: ptr ptr IPropertyStorage, + puCodePage: ptr UINT, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHPropStgReadMultiple*( + pps: ptr IPropertyStorage, + uCodePage: UINT, + cpspec: ULONG, + rgpspec: ptr PROPSPEC, + rgvar: ptr PROPVARIANT, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHPropStgWriteMultiple*( + pps: ptr IPropertyStorage, + puCodePage: ptr UINT, + cpspec: ULONG, + rgpspec: ptr PROPSPEC, + rgvar: ptr PROPVARIANT, + propidNameFirst: PROPID, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateFileExtractIconW*( + pszFile: LPCWSTR, dwFileAttributes: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHLimitInputEdit*( + hwndEdit: HWND, psf: ptr IShellFolder +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHGetAttributesFromDataObject*( + pdo: ptr IDataObject, + dwAttributeMask: DWORD, + pdwAttributes: ptr DWORD, + pcItems: ptr UINT, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHMultiFileProperties*( + pdtobj: ptr IDataObject, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHMapPIDLToSystemImageListIndex*( + pshf: ptr IShellFolder, pidl: PCUITEMID_CHILD, piIndexSel: ptr int32 +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCLSIDFromString*( + psz: PCWSTR, pclsid: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc SHCreateQueryCancelAutoPlayMoniker*( + ppmoniker: ptr ptr IMoniker +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + proc PerUserInit*(): void {.winapi, stdcall, dynlib: "mydocs", importc.} -proc PickIconDlg*(hwnd: HWND, pszIconPath: PWSTR, cchIconPath: UINT, piIconIndex: ptr int32): int32 {.winapi, stdcall, dynlib: "shell32", importc.} -proc StgMakeUniqueName*(pstgParent: ptr IStorage, pszFileSpec: PCWSTR, grfMode: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} -proc ImportPrivacySettings*(pszFilename: PCWSTR, pfParsePrivacyPreferences: ptr WINBOOL, pfParsePerSiteRules: ptr WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shdocvw", importc.} -proc `hIcon=`*(self: var SHELLEXECUTEINFOA, x: HANDLE) {.inline.} = self.union1.hIcon = x -proc hIcon*(self: SHELLEXECUTEINFOA): HANDLE {.inline.} = self.union1.hIcon -proc hIcon*(self: var SHELLEXECUTEINFOA): var HANDLE {.inline.} = self.union1.hIcon -proc `hMonitor=`*(self: var SHELLEXECUTEINFOA, x: HANDLE) {.inline.} = self.union1.hMonitor = x -proc hMonitor*(self: SHELLEXECUTEINFOA): HANDLE {.inline.} = self.union1.hMonitor -proc hMonitor*(self: var SHELLEXECUTEINFOA): var HANDLE {.inline.} = self.union1.hMonitor -proc `hIcon=`*(self: var SHELLEXECUTEINFOW, x: HANDLE) {.inline.} = self.union1.hIcon = x -proc hIcon*(self: SHELLEXECUTEINFOW): HANDLE {.inline.} = self.union1.hIcon -proc hIcon*(self: var SHELLEXECUTEINFOW): var HANDLE {.inline.} = self.union1.hIcon -proc `hMonitor=`*(self: var SHELLEXECUTEINFOW, x: HANDLE) {.inline.} = self.union1.hMonitor = x -proc hMonitor*(self: SHELLEXECUTEINFOW): HANDLE {.inline.} = self.union1.hMonitor -proc hMonitor*(self: var SHELLEXECUTEINFOW): var HANDLE {.inline.} = self.union1.hMonitor -proc `uTimeout=`*(self: var NOTIFYICONDATAA, x: UINT) {.inline.} = self.union1.uTimeout = x -proc uTimeout*(self: NOTIFYICONDATAA): UINT {.inline.} = self.union1.uTimeout -proc uTimeout*(self: var NOTIFYICONDATAA): var UINT {.inline.} = self.union1.uTimeout -proc `uVersion=`*(self: var NOTIFYICONDATAA, x: UINT) {.inline.} = self.union1.uVersion = x -proc uVersion*(self: NOTIFYICONDATAA): UINT {.inline.} = self.union1.uVersion -proc uVersion*(self: var NOTIFYICONDATAA): var UINT {.inline.} = self.union1.uVersion -proc `uTimeout=`*(self: var NOTIFYICONDATAW, x: UINT) {.inline.} = self.union1.uTimeout = x -proc uTimeout*(self: NOTIFYICONDATAW): UINT {.inline.} = self.union1.uTimeout -proc uTimeout*(self: var NOTIFYICONDATAW): var UINT {.inline.} = self.union1.uTimeout -proc `uVersion=`*(self: var NOTIFYICONDATAW, x: UINT) {.inline.} = self.union1.uVersion = x -proc uVersion*(self: NOTIFYICONDATAW): UINT {.inline.} = self.union1.uVersion -proc uVersion*(self: var NOTIFYICONDATAW): var UINT {.inline.} = self.union1.uVersion -proc Init*(self: ptr IQueryAssociations, flags: ASSOCF, pszAssoc: LPCWSTR, hkProgid: HKEY, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Init(self, flags, pszAssoc, hkProgid, hwnd) -proc GetString*(self: ptr IQueryAssociations, flags: ASSOCF, str: ASSOCSTR, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetString(self, flags, str, pszExtra, pszOut, pcchOut) -proc GetKey*(self: ptr IQueryAssociations, flags: ASSOCF, key: ASSOCKEY, pszExtra: LPCWSTR, phkeyOut: ptr HKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetKey(self, flags, key, pszExtra, phkeyOut) -proc GetData*(self: ptr IQueryAssociations, flags: ASSOCF, data: ASSOCDATA, pszExtra: LPCWSTR, pvOut: LPVOID, pcbOut: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetData(self, flags, data, pszExtra, pvOut, pcbOut) -proc GetEnum*(self: ptr IQueryAssociations, flags: ASSOCF, assocenum: ASSOCENUM, pszExtra: LPCWSTR, riid: REFIID, ppvOut: ptr LPVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnum(self, flags, assocenum, pszExtra, riid, ppvOut) -proc SetFolderView*(self: ptr IFolderViewOC, pdisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolderView(self, pdisp) -proc get_Name*(self: ptr DFConstraint, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, pbs) -proc get_Value*(self: ptr DFConstraint, pv: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Value(self, pv) -proc get_Title*(self: ptr Folder, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Title(self, pbs) -proc get_Application*(self: ptr Folder, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr Folder, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc get_ParentFolder*(self: ptr Folder, ppsf: ptr ptr Folder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ParentFolder(self, ppsf) -proc Items*(self: ptr Folder, ppid: ptr ptr FolderItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Items(self, ppid) -proc ParseName*(self: ptr Folder, bName: BSTR, ppid: ptr ptr FolderItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseName(self, bName, ppid) -proc NewFolder*(self: ptr Folder, bName: BSTR, vOptions: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewFolder(self, bName, vOptions) -proc MoveHere*(self: ptr Folder, vItem: VARIANT, vOptions: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveHere(self, vItem, vOptions) -proc CopyHere*(self: ptr Folder, vItem: VARIANT, vOptions: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyHere(self, vItem, vOptions) -proc GetDetailsOf*(self: ptr Folder, vItem: VARIANT, iColumn: int32, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDetailsOf(self, vItem, iColumn, pbs) -proc get_Self*(self: ptr Folder2, ppfi: ptr ptr FolderItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Self(self, ppfi) -proc get_OfflineStatus*(self: ptr Folder2, pul: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_OfflineStatus(self, pul) -proc mSynchronize*(self: ptr Folder2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Synchronize(self) -proc get_HaveToShowWebViewBarricade*(self: ptr Folder2, pbHaveToShowWebViewBarricade: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HaveToShowWebViewBarricade(self, pbHaveToShowWebViewBarricade) -proc DismissedWebViewBarricade*(self: ptr Folder2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DismissedWebViewBarricade(self) -proc get_ShowWebViewBarricade*(self: ptr Folder3, pbShowWebViewBarricade: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShowWebViewBarricade(self, pbShowWebViewBarricade) -proc put_ShowWebViewBarricade*(self: ptr Folder3, bShowWebViewBarricade: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ShowWebViewBarricade(self, bShowWebViewBarricade) -proc get_Application*(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc get_Name*(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, pbs) -proc put_Name*(self: ptr FolderItem, bs: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Name(self, bs) -proc get_Path*(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Path(self, pbs) -proc get_GetLink*(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_GetLink(self, ppid) -proc get_GetFolder*(self: ptr FolderItem, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_GetFolder(self, ppid) -proc get_IsLink*(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsLink(self, pb) -proc get_IsFolder*(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsFolder(self, pb) -proc get_IsFileSystem*(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsFileSystem(self, pb) -proc get_IsBrowsable*(self: ptr FolderItem, pb: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsBrowsable(self, pb) -proc get_ModifyDate*(self: ptr FolderItem, pdt: ptr DATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ModifyDate(self, pdt) -proc put_ModifyDate*(self: ptr FolderItem, dt: DATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ModifyDate(self, dt) -proc get_Size*(self: ptr FolderItem, pul: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Size(self, pul) -proc get_Type*(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Type(self, pbs) -proc Verbs*(self: ptr FolderItem, ppfic: ptr ptr FolderItemVerbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Verbs(self, ppfic) -proc InvokeVerb*(self: ptr FolderItem, vVerb: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeVerb(self, vVerb) -proc InvokeVerbEx*(self: ptr FolderItem2, vVerb: VARIANT, vArgs: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeVerbEx(self, vVerb, vArgs) -proc ExtendedProperty*(self: ptr FolderItem2, bstrPropName: BSTR, pvRet: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExtendedProperty(self, bstrPropName, pvRet) -proc get_Count*(self: ptr FolderItems, plCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, plCount) -proc get_Application*(self: ptr FolderItems, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr FolderItems, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc Item*(self: ptr FolderItems, index: VARIANT, ppid: ptr ptr FolderItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, index, ppid) -proc NewEnum*(self: ptr FolderItems, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewEnum(self, ppunk) -proc InvokeVerbEx*(self: ptr FolderItems2, vVerb: VARIANT, vArgs: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeVerbEx(self, vVerb, vArgs) -proc Filter*(self: ptr FolderItems3, grfFlags: LONG, bstrFileSpec: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Filter(self, grfFlags, bstrFileSpec) -proc get_Verbs*(self: ptr FolderItems3, ppfic: ptr ptr FolderItemVerbs): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Verbs(self, ppfic) -proc get_Application*(self: ptr FolderItemVerb, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr FolderItemVerb, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc get_Name*(self: ptr FolderItemVerb, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, pbs) -proc DoIt*(self: ptr FolderItemVerb): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoIt(self) -proc get_Count*(self: ptr FolderItemVerbs, plCount: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, plCount) -proc get_Application*(self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc Item*(self: ptr FolderItemVerbs, index: VARIANT, ppid: ptr ptr FolderItemVerb): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, index, ppid) -proc NewEnum*(self: ptr FolderItemVerbs, ppunk: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewEnum(self, ppunk) -proc get_Path*(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Path(self, pbs) -proc put_Path*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Path(self, bs) -proc get_Description*(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Description(self, pbs) -proc put_Description*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Description(self, bs) -proc get_WorkingDirectory*(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_WorkingDirectory(self, pbs) -proc put_WorkingDirectory*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_WorkingDirectory(self, bs) -proc get_Arguments*(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Arguments(self, pbs) -proc put_Arguments*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Arguments(self, bs) -proc get_Hotkey*(self: ptr IShellLinkDual, piHK: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Hotkey(self, piHK) -proc put_Hotkey*(self: ptr IShellLinkDual, iHK: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Hotkey(self, iHK) -proc get_ShowCommand*(self: ptr IShellLinkDual, piShowCommand: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ShowCommand(self, piShowCommand) -proc put_ShowCommand*(self: ptr IShellLinkDual, iShowCommand: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ShowCommand(self, iShowCommand) -proc Resolve*(self: ptr IShellLinkDual, fFlags: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resolve(self, fFlags) -proc GetIconLocation*(self: ptr IShellLinkDual, pbs: ptr BSTR, piIcon: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconLocation(self, pbs, piIcon) -proc SetIconLocation*(self: ptr IShellLinkDual, bs: BSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconLocation(self, bs, iIcon) -proc Save*(self: ptr IShellLinkDual, vWhere: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, vWhere) -proc get_Target*(self: ptr IShellLinkDual2, ppfi: ptr ptr FolderItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Target(self, ppfi) -proc get_Application*(self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc get_Folder*(self: ptr IShellFolderViewDual, ppid: ptr ptr Folder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Folder(self, ppid) -proc SelectedItems*(self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectedItems(self, ppid) -proc get_FocusedItem*(self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FocusedItem(self, ppid) -proc SelectItem*(self: ptr IShellFolderViewDual, pvfi: ptr VARIANT, dwFlags: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectItem(self, pvfi, dwFlags) -proc PopupItemMenu*(self: ptr IShellFolderViewDual, pfi: ptr FolderItem, vx: VARIANT, vy: VARIANT, pbs: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PopupItemMenu(self, pfi, vx, vy, pbs) -proc get_Script*(self: ptr IShellFolderViewDual, ppDisp: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Script(self, ppDisp) -proc get_ViewOptions*(self: ptr IShellFolderViewDual, plViewOptions: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ViewOptions(self, plViewOptions) -proc get_CurrentViewMode*(self: ptr IShellFolderViewDual2, pViewMode: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentViewMode(self, pViewMode) -proc put_CurrentViewMode*(self: ptr IShellFolderViewDual2, ViewMode: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_CurrentViewMode(self, ViewMode) -proc SelectItemRelative*(self: ptr IShellFolderViewDual2, iRelative: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectItemRelative(self, iRelative) -proc get_GroupBy*(self: ptr IShellFolderViewDual3, pbstrGroupBy: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_GroupBy(self, pbstrGroupBy) -proc put_GroupBy*(self: ptr IShellFolderViewDual3, bstrGroupBy: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_GroupBy(self, bstrGroupBy) -proc get_FolderFlags*(self: ptr IShellFolderViewDual3, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FolderFlags(self, pdwFlags) -proc put_FolderFlags*(self: ptr IShellFolderViewDual3, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_FolderFlags(self, dwFlags) -proc get_SortColumns*(self: ptr IShellFolderViewDual3, pbstrSortColumns: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SortColumns(self, pbstrSortColumns) -proc put_SortColumns*(self: ptr IShellFolderViewDual3, bstrSortColumns: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_SortColumns(self, bstrSortColumns) -proc put_IconSize*(self: ptr IShellFolderViewDual3, iIconSize: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_IconSize(self, iIconSize) -proc get_IconSize*(self: ptr IShellFolderViewDual3, piIconSize: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IconSize(self, piIconSize) -proc FilterView*(self: ptr IShellFolderViewDual3, bstrFilterText: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FilterView(self, bstrFilterText) -proc get_Application*(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Application(self, ppid) -proc get_Parent*(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Parent(self, ppid) -proc NameSpace*(self: ptr IShellDispatch, vDir: VARIANT, ppsdf: ptr ptr Folder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NameSpace(self, vDir, ppsdf) -proc BrowseForFolder*(self: ptr IShellDispatch, Hwnd: LONG, Title: BSTR, Options: LONG, RootFolder: VARIANT, ppsdf: ptr ptr Folder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BrowseForFolder(self, Hwnd, Title, Options, RootFolder, ppsdf) -proc Windows*(self: ptr IShellDispatch, ppid: ptr ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Windows(self, ppid) -proc Open*(self: ptr IShellDispatch, vDir: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self, vDir) -proc Explore*(self: ptr IShellDispatch, vDir: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Explore(self, vDir) -proc MinimizeAll*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MinimizeAll(self) -proc UndoMinimizeALL*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UndoMinimizeALL(self) -proc FileRun*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FileRun(self) -proc CascadeWindows*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CascadeWindows(self) -proc TileVertically*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TileVertically(self) -proc TileHorizontally*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TileHorizontally(self) -proc ShutdownWindows*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShutdownWindows(self) -proc Suspend*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Suspend(self) -proc EjectPC*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EjectPC(self) -proc SetTime*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTime(self) -proc TrayProperties*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TrayProperties(self) -proc Help*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Help(self) -proc FindFiles*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFiles(self) -proc FindComputer*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindComputer(self) -proc RefreshMenu*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RefreshMenu(self) -proc ControlPanelItem*(self: ptr IShellDispatch, bstrDir: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ControlPanelItem(self, bstrDir) -proc IsRestricted*(self: ptr IShellDispatch2, Group: BSTR, Restriction: BSTR, plRestrictValue: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRestricted(self, Group, Restriction, plRestrictValue) -proc ShellExecute*(self: ptr IShellDispatch2, File: BSTR, vArgs: VARIANT, vDir: VARIANT, vOperation: VARIANT, vShow: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShellExecute(self, File, vArgs, vDir, vOperation, vShow) -proc FindPrinter*(self: ptr IShellDispatch2, name: BSTR, location: BSTR, model: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindPrinter(self, name, location, model) -proc GetSystemInformation*(self: ptr IShellDispatch2, name: BSTR, pv: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSystemInformation(self, name, pv) -proc mServiceStart*(self: ptr IShellDispatch2, ServiceName: BSTR, Persistent: VARIANT, pSuccess: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ServiceStart(self, ServiceName, Persistent, pSuccess) -proc mServiceStop*(self: ptr IShellDispatch2, ServiceName: BSTR, Persistent: VARIANT, pSuccess: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ServiceStop(self, ServiceName, Persistent, pSuccess) -proc IsServiceRunning*(self: ptr IShellDispatch2, ServiceName: BSTR, pRunning: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsServiceRunning(self, ServiceName, pRunning) -proc CanStartStopService*(self: ptr IShellDispatch2, ServiceName: BSTR, pCanStartStop: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanStartStopService(self, ServiceName, pCanStartStop) -proc ShowBrowserBar*(self: ptr IShellDispatch2, bstrClsid: BSTR, bShow: VARIANT, pSuccess: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowBrowserBar(self, bstrClsid, bShow, pSuccess) -proc AddToRecent*(self: ptr IShellDispatch3, varFile: VARIANT, bstrCategory: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddToRecent(self, varFile, bstrCategory) -proc WindowsSecurity*(self: ptr IShellDispatch4): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WindowsSecurity(self) -proc ToggleDesktop*(self: ptr IShellDispatch4): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ToggleDesktop(self) -proc ExplorerPolicy*(self: ptr IShellDispatch4, bstrPolicyName: BSTR, pValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExplorerPolicy(self, bstrPolicyName, pValue) -proc GetSetting*(self: ptr IShellDispatch4, lSetting: LONG, pResult: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSetting(self, lSetting, pResult) -proc WindowSwitcher*(self: ptr IShellDispatch5): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WindowSwitcher(self) -proc SearchCommand*(self: ptr IShellDispatch6): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SearchCommand(self) -proc SetFocus*(self: ptr IFileSearchBand): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFocus(self) -proc SetSearchParameters*(self: ptr IFileSearchBand, pbstrSearchID: ptr BSTR, bNavToResults: VARIANT_BOOL, pvarScope: ptr VARIANT, pvarQueryFile: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSearchParameters(self, pbstrSearchID, bNavToResults, pvarScope, pvarQueryFile) -proc get_SearchID*(self: ptr IFileSearchBand, pbstrSearchID: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SearchID(self, pbstrSearchID) -proc get_Scope*(self: ptr IFileSearchBand, pvarScope: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Scope(self, pvarScope) -proc get_QueryFile*(self: ptr IFileSearchBand, pvarFile: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_QueryFile(self, pvarFile) -proc FinalBack*(self: ptr IWebWizardHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FinalBack(self) -proc FinalNext*(self: ptr IWebWizardHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FinalNext(self) -proc Cancel*(self: ptr IWebWizardHost): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cancel(self) -proc put_Caption*(self: ptr IWebWizardHost, bstrCaption: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Caption(self, bstrCaption) -proc get_Caption*(self: ptr IWebWizardHost, pbstrCaption: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Caption(self, pbstrCaption) -proc put_Property*(self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_Property(self, bstrPropertyName, pvProperty) -proc get_Property*(self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Property(self, bstrPropertyName, pvProperty) -proc SetWizardButtons*(self: ptr IWebWizardHost, vfEnableBack: VARIANT_BOOL, vfEnableNext: VARIANT_BOOL, vfLastPage: VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWizardButtons(self, vfEnableBack, vfEnableNext, vfLastPage) -proc SetHeaderText*(self: ptr IWebWizardHost, bstrHeaderTitle: BSTR, bstrHeaderSubtitle: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHeaderText(self, bstrHeaderTitle, bstrHeaderSubtitle) -proc PassportAuthenticate*(self: ptr INewWDEvents, bstrSignInUrl: BSTR, pvfAuthenitcated: ptr VARIANT_BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PassportAuthenticate(self, bstrSignInUrl, pvfAuthenitcated) -proc Init*(self: ptr IAutoComplete, hwndEdit: HWND, punkACL: ptr IUnknown, pwszRegKeyPath: LPCWSTR, pwszQuickComplete: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Init(self, hwndEdit, punkACL, pwszRegKeyPath, pwszQuickComplete) -proc Enable*(self: ptr IAutoComplete, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enable(self, fEnable) -proc SetOptions*(self: ptr IAutoComplete2, dwFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, dwFlag) -proc GetOptions*(self: ptr IAutoComplete2, pdwFlag: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pdwFlag) -proc NextItem*(self: ptr IEnumACString, pszUrl: LPWSTR, cchMax: ULONG, pulSortIndex: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NextItem(self, pszUrl, cchMax, pulSortIndex) -proc SetEnumOptions*(self: ptr IEnumACString, dwOptions: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEnumOptions(self, dwOptions) -proc GetEnumOptions*(self: ptr IEnumACString, pdwOptions: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumOptions(self, pdwOptions) -proc SetAsyncMode*(self: ptr IDataObjectAsyncCapability, fDoOpAsync: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAsyncMode(self, fDoOpAsync) -proc GetAsyncMode*(self: ptr IDataObjectAsyncCapability, pfIsOpAsync: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAsyncMode(self, pfIsOpAsync) -proc StartOperation*(self: ptr IDataObjectAsyncCapability, pbcReserved: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartOperation(self, pbcReserved) -proc InOperation*(self: ptr IDataObjectAsyncCapability, pfInAsyncOp: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InOperation(self, pfInAsyncOp) -proc EndOperation*(self: ptr IDataObjectAsyncCapability, hResult: HRESULT, pbcReserved: ptr IBindCtx, dwEffects: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndOperation(self, hResult, pbcReserved, dwEffects) -proc GetCount*(self: ptr IObjectArray, pcObjects: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pcObjects) -proc GetAt*(self: ptr IObjectArray, uiIndex: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAt(self, uiIndex, riid, ppv) -proc AddObject*(self: ptr IObjectCollection, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddObject(self, punk) -proc AddFromArray*(self: ptr IObjectCollection, poaSource: ptr IObjectArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddFromArray(self, poaSource) -proc RemoveObjectAt*(self: ptr IObjectCollection, uiIndex: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveObjectAt(self, uiIndex) -proc Clear*(self: ptr IObjectCollection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clear(self) -proc QueryContextMenu*(self: ptr IContextMenu, hmenu: HMENU, indexMenu: UINT, idCmdFirst: UINT, idCmdLast: UINT, uFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryContextMenu(self, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags) -proc InvokeCommand*(self: ptr IContextMenu, pici: ptr CMINVOKECOMMANDINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeCommand(self, pici) -proc GetCommandString*(self: ptr IContextMenu, idCmd: UINT_PTR, uType: UINT, pReserved: ptr UINT, pszName: ptr CHAR, cchMax: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCommandString(self, idCmd, uType, pReserved, pszName, cchMax) -proc HandleMenuMsg*(self: ptr IContextMenu2, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleMenuMsg(self, uMsg, wParam, lParam) -proc HandleMenuMsg2*(self: ptr IContextMenu3, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, plResult: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleMenuMsg2(self, uMsg, wParam, lParam, plResult) -proc SetKeyState*(self: ptr IExecuteCommand, grfKeyState: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetKeyState(self, grfKeyState) -proc SetParameters*(self: ptr IExecuteCommand, pszParameters: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetParameters(self, pszParameters) -proc SetPosition*(self: ptr IExecuteCommand, pt: POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPosition(self, pt) -proc SetShowWindow*(self: ptr IExecuteCommand, nShow: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetShowWindow(self, nShow) -proc SetNoShowUI*(self: ptr IExecuteCommand, fNoShowUI: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNoShowUI(self, fNoShowUI) -proc SetDirectory*(self: ptr IExecuteCommand, pszDirectory: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDirectory(self, pszDirectory) -proc Execute*(self: ptr IExecuteCommand): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Execute(self) -proc Initialize*(self: ptr IPersistFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pidl) -proc Run*(self: ptr IRunnableTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Run(self) -proc Kill*(self: ptr IRunnableTask, bWait: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Kill(self, bWait) -proc Suspend*(self: ptr IRunnableTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Suspend(self) -proc Resume*(self: ptr IRunnableTask): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resume(self) -proc IsRunning*(self: ptr IRunnableTask): ULONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRunning(self) -proc AddTask*(self: ptr IShellTaskScheduler, prt: ptr IRunnableTask, rtoid: REFTASKOWNERID, lParam: DWORD_PTR, dwPriority: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTask(self, prt, rtoid, lParam, dwPriority) -proc RemoveTasks*(self: ptr IShellTaskScheduler, rtoid: REFTASKOWNERID, lParam: DWORD_PTR, bWaitIfRunning: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveTasks(self, rtoid, lParam, bWaitIfRunning) -proc CountTasks*(self: ptr IShellTaskScheduler, rtoid: REFTASKOWNERID): UINT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CountTasks(self, rtoid) -proc Status*(self: ptr IShellTaskScheduler, dwReleaseStatus: DWORD, dwThreadTimeout: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Status(self, dwReleaseStatus, dwThreadTimeout) -proc GetCodePage*(self: ptr IQueryCodePage, puiCodePage: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCodePage(self, puiCodePage) -proc SetCodePage*(self: ptr IQueryCodePage, uiCodePage: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCodePage(self, uiCodePage) -proc GetCurFolder*(self: ptr IPersistFolder2, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurFolder(self, ppidl) -proc InitializeEx*(self: ptr IPersistFolder3, pbc: ptr IBindCtx, pidlRoot: PCIDLIST_ABSOLUTE, ppfti: ptr PERSIST_FOLDER_TARGET_INFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeEx(self, pbc, pidlRoot, ppfti) -proc GetFolderTargetInfo*(self: ptr IPersistFolder3, ppfti: ptr PERSIST_FOLDER_TARGET_INFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderTargetInfo(self, ppfti) -proc SetIDList*(self: ptr IPersistIDList, pidl: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIDList(self, pidl) -proc GetIDList*(self: ptr IPersistIDList, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDList(self, ppidl) -proc Next*(self: ptr IEnumIDList, celt: ULONG, rgelt: ptr PITEMID_CHILD, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumIDList, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumIDList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumIDList, ppenum: ptr ptr IEnumIDList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc Next*(self: ptr IEnumFullIDList, celt: ULONG, rgelt: ptr PIDLIST_ABSOLUTE, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumFullIDList, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumFullIDList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumFullIDList, ppenum: ptr ptr IEnumFullIDList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc SetMode*(self: ptr IObjectWithFolderEnumMode, feMode: FOLDER_ENUM_MODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMode(self, feMode) -proc GetMode*(self: ptr IObjectWithFolderEnumMode, pfeMode: ptr FOLDER_ENUM_MODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMode(self, pfeMode) -proc SetItem*(self: ptr IParseAndCreateItem, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetItem(self, psi) -proc GetItem*(self: ptr IParseAndCreateItem, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItem(self, riid, ppv) -proc ParseDisplayName*(self: ptr IShellFolder, hwnd: HWND, pbc: ptr IBindCtx, pszDisplayName: LPWSTR, pchEaten: ptr ULONG, ppidl: ptr PIDLIST_RELATIVE, pdwAttributes: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParseDisplayName(self, hwnd, pbc, pszDisplayName, pchEaten, ppidl, pdwAttributes) -proc EnumObjects*(self: ptr IShellFolder, hwnd: HWND, grfFlags: SHCONTF, ppenumIDList: ptr ptr IEnumIDList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumObjects(self, hwnd, grfFlags, ppenumIDList) -proc BindToObject*(self: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToObject(self, pidl, pbc, riid, ppv) -proc BindToStorage*(self: ptr IShellFolder, pidl: PCUIDLIST_RELATIVE, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToStorage(self, pidl, pbc, riid, ppv) -proc CompareIDs*(self: ptr IShellFolder, lParam: LPARAM, pidl1: PCUIDLIST_RELATIVE, pidl2: PCUIDLIST_RELATIVE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareIDs(self, lParam, pidl1, pidl2) -proc CreateViewObject*(self: ptr IShellFolder, hwndOwner: HWND, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateViewObject(self, hwndOwner, riid, ppv) -proc GetAttributesOf*(self: ptr IShellFolder, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, rgfInOut: ptr SFGAOF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributesOf(self, cidl, apidl, rgfInOut) -proc GetUIObjectOf*(self: ptr IShellFolder, hwndOwner: HWND, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, riid: REFIID, rgfReserved: ptr UINT, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUIObjectOf(self, hwndOwner, cidl, apidl, riid, rgfReserved, ppv) -proc GetDisplayNameOf*(self: ptr IShellFolder, pidl: PCUITEMID_CHILD, uFlags: SHGDNF, pName: ptr STRRET): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayNameOf(self, pidl, uFlags, pName) -proc SetNameOf*(self: ptr IShellFolder, hwnd: HWND, pidl: PCUITEMID_CHILD, pszName: LPCWSTR, uFlags: SHGDNF, ppidlOut: ptr PITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNameOf(self, hwnd, pidl, pszName, uFlags, ppidlOut) -proc Next*(self: ptr IEnumExtraSearch, celt: ULONG, rgelt: ptr EXTRASEARCH, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumExtraSearch, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumExtraSearch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumExtraSearch, ppenum: ptr ptr IEnumExtraSearch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc GetDefaultSearchGUID*(self: ptr IShellFolder2, pguid: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultSearchGUID(self, pguid) -proc EnumSearches*(self: ptr IShellFolder2, ppenum: ptr ptr IEnumExtraSearch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumSearches(self, ppenum) -proc GetDefaultColumn*(self: ptr IShellFolder2, dwRes: DWORD, pSort: ptr ULONG, pDisplay: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultColumn(self, dwRes, pSort, pDisplay) -proc GetDefaultColumnState*(self: ptr IShellFolder2, iColumn: UINT, pcsFlags: ptr SHCOLSTATEF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultColumnState(self, iColumn, pcsFlags) -proc GetDetailsEx*(self: ptr IShellFolder2, pidl: PCUITEMID_CHILD, pscid: ptr SHCOLUMNID, pv: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDetailsEx(self, pidl, pscid, pv) -proc GetDetailsOf*(self: ptr IShellFolder2, pidl: PCUITEMID_CHILD, iColumn: UINT, psd: ptr SHELLDETAILS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDetailsOf(self, pidl, iColumn, psd) -proc MapColumnToSCID*(self: ptr IShellFolder2, iColumn: UINT, pscid: ptr SHCOLUMNID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MapColumnToSCID(self, iColumn, pscid) -proc SetFolderViewOptions*(self: ptr IFolderViewOptions, fvoMask: FOLDERVIEWOPTIONS, fvoFlags: FOLDERVIEWOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolderViewOptions(self, fvoMask, fvoFlags) -proc GetFolderViewOptions*(self: ptr IFolderViewOptions, pfvoFlags: ptr FOLDERVIEWOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderViewOptions(self, pfvoFlags) -proc TranslateAccelerator*(self: ptr IShellView, pmsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, pmsg) -proc EnableModeless*(self: ptr IShellView, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModeless(self, fEnable) -proc UIActivate*(self: ptr IShellView, uState: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UIActivate(self, uState) -proc Refresh*(self: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Refresh(self) -proc CreateViewWindow*(self: ptr IShellView, psvPrevious: ptr IShellView, pfs: LPCFOLDERSETTINGS, psb: ptr IShellBrowser, prcView: ptr RECT, phWnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateViewWindow(self, psvPrevious, pfs, psb, prcView, phWnd) -proc DestroyViewWindow*(self: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyViewWindow(self) -proc GetCurrentInfo*(self: ptr IShellView, pfs: LPFOLDERSETTINGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentInfo(self, pfs) -proc AddPropertySheetPages*(self: ptr IShellView, dwReserved: DWORD, pfn: LPFNSVADDPROPSHEETPAGE, lparam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPropertySheetPages(self, dwReserved, pfn, lparam) -proc SaveViewState*(self: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveViewState(self) -proc SelectItem*(self: ptr IShellView, pidlItem: PCUITEMID_CHILD, uFlags: SVSIF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectItem(self, pidlItem, uFlags) -proc GetItemObject*(self: ptr IShellView, uItem: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemObject(self, uItem, riid, ppv) -proc GetView*(self: ptr IShellView2, pvid: ptr SHELLVIEWID, uView: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetView(self, pvid, uView) -proc CreateViewWindow2*(self: ptr IShellView2, lpParams: LPSV2CVW2_PARAMS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateViewWindow2(self, lpParams) -proc HandleRename*(self: ptr IShellView2, pidlNew: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleRename(self, pidlNew) -proc SelectAndPositionItem*(self: ptr IShellView2, pidlItem: PCUITEMID_CHILD, uFlags: UINT, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectAndPositionItem(self, pidlItem, uFlags, ppt) -proc CreateViewWindow3*(self: ptr IShellView3, psbOwner: ptr IShellBrowser, psvPrev: ptr IShellView, dwViewFlags: SV3CVW3_FLAGS, dwMask: FOLDERFLAGS, dwFlags: FOLDERFLAGS, fvMode: FOLDERVIEWMODE, pvid: ptr SHELLVIEWID, prcView: ptr RECT, phwndView: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateViewWindow3(self, psbOwner, psvPrev, dwViewFlags, dwMask, dwFlags, fvMode, pvid, prcView, phwndView) -proc GetCurrentViewMode*(self: ptr IFolderView, pViewMode: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentViewMode(self, pViewMode) -proc SetCurrentViewMode*(self: ptr IFolderView, ViewMode: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCurrentViewMode(self, ViewMode) -proc GetFolder*(self: ptr IFolderView, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolder(self, riid, ppv) -proc Item*(self: ptr IFolderView, iItemIndex: int32, ppidl: ptr PITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Item(self, iItemIndex, ppidl) -proc ItemCount*(self: ptr IFolderView, uFlags: UINT, pcItems: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ItemCount(self, uFlags, pcItems) -proc Items*(self: ptr IFolderView, uFlags: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Items(self, uFlags, riid, ppv) -proc GetSelectionMarkedItem*(self: ptr IFolderView, piItem: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectionMarkedItem(self, piItem) -proc GetFocusedItem*(self: ptr IFolderView, piItem: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFocusedItem(self, piItem) -proc GetItemPosition*(self: ptr IFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemPosition(self, pidl, ppt) -proc GetSpacing*(self: ptr IFolderView, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSpacing(self, ppt) -proc GetDefaultSpacing*(self: ptr IFolderView, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultSpacing(self, ppt) -proc GetAutoArrange*(self: ptr IFolderView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAutoArrange(self) -proc SelectItem*(self: ptr IFolderView, iItem: int32, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectItem(self, iItem, dwFlags) -proc SelectAndPositionItems*(self: ptr IFolderView, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, apt: ptr POINT, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectAndPositionItems(self, cidl, apidl, apt, dwFlags) -proc GetCondition*(self: ptr ISearchBoxInfo, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCondition(self, riid, ppv) -proc GetText*(self: ptr ISearchBoxInfo, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetText(self, ppsz) -proc SetGroupBy*(self: ptr IFolderView2, key: REFPROPERTYKEY, fAscending: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGroupBy(self, key, fAscending) -proc GetGroupBy*(self: ptr IFolderView2, pkey: ptr PROPERTYKEY, pfAscending: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGroupBy(self, pkey, pfAscending) -proc SetViewProperty*(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, propkey: REFPROPERTYKEY, propvar: REFPROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetViewProperty(self, pidl, propkey, propvar) -proc GetViewProperty*(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, propkey: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewProperty(self, pidl, propkey, ppropvar) -proc SetTileViewProperties*(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTileViewProperties(self, pidl, pszPropList) -proc SetExtendedTileViewProperties*(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetExtendedTileViewProperties(self, pidl, pszPropList) -proc SetText*(self: ptr IFolderView2, iType: FVTEXTTYPE, pwszText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetText(self, iType, pwszText) -proc SetCurrentFolderFlags*(self: ptr IFolderView2, dwMask: DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCurrentFolderFlags(self, dwMask, dwFlags) -proc GetCurrentFolderFlags*(self: ptr IFolderView2, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentFolderFlags(self, pdwFlags) -proc GetSortColumnCount*(self: ptr IFolderView2, pcColumns: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSortColumnCount(self, pcColumns) -proc SetSortColumns*(self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSortColumns(self, rgSortColumns, cColumns) -proc GetSortColumns*(self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSortColumns(self, rgSortColumns, cColumns) -proc GetItem*(self: ptr IFolderView2, iItem: int32, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItem(self, iItem, riid, ppv) -proc GetVisibleItem*(self: ptr IFolderView2, iStart: int32, fPrevious: WINBOOL, piItem: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVisibleItem(self, iStart, fPrevious, piItem) -proc GetSelectedItem*(self: ptr IFolderView2, iStart: int32, piItem: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedItem(self, iStart, piItem) -proc GetSelection*(self: ptr IFolderView2, fNoneImpliesFolder: WINBOOL, ppsia: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelection(self, fNoneImpliesFolder, ppsia) -proc GetSelectionState*(self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectionState(self, pidl, pdwFlags) -proc InvokeVerbOnSelection*(self: ptr IFolderView2, pszVerb: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvokeVerbOnSelection(self, pszVerb) -proc SetViewModeAndIconSize*(self: ptr IFolderView2, uViewMode: FOLDERVIEWMODE, iImageSize: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetViewModeAndIconSize(self, uViewMode, iImageSize) -proc GetViewModeAndIconSize*(self: ptr IFolderView2, puViewMode: ptr FOLDERVIEWMODE, piImageSize: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewModeAndIconSize(self, puViewMode, piImageSize) -proc SetGroupSubsetCount*(self: ptr IFolderView2, cVisibleRows: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGroupSubsetCount(self, cVisibleRows) -proc GetGroupSubsetCount*(self: ptr IFolderView2, pcVisibleRows: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGroupSubsetCount(self, pcVisibleRows) -proc SetRedraw*(self: ptr IFolderView2, fRedrawOn: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRedraw(self, fRedrawOn) -proc IsMoveInSameFolder*(self: ptr IFolderView2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsMoveInSameFolder(self) -proc DoRename*(self: ptr IFolderView2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoRename(self) -proc GetColumnPropertyList*(self: ptr IFolderViewSettings, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnPropertyList(self, riid, ppv) -proc GetGroupByProperty*(self: ptr IFolderViewSettings, pkey: ptr PROPERTYKEY, pfGroupAscending: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGroupByProperty(self, pkey, pfGroupAscending) -proc GetViewMode*(self: ptr IFolderViewSettings, plvm: ptr FOLDERLOGICALVIEWMODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewMode(self, plvm) -proc GetIconSize*(self: ptr IFolderViewSettings, puIconSize: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconSize(self, puIconSize) -proc GetFolderFlags*(self: ptr IFolderViewSettings, pfolderMask: ptr FOLDERFLAGS, pfolderFlags: ptr FOLDERFLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderFlags(self, pfolderMask, pfolderFlags) -proc GetSortColumns*(self: ptr IFolderViewSettings, rgSortColumns: ptr SORTCOLUMN, cColumnsIn: UINT, pcColumnsOut: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSortColumns(self, rgSortColumns, cColumnsIn, pcColumnsOut) -proc GetGroupSubsetCount*(self: ptr IFolderViewSettings, pcVisibleRows: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGroupSubsetCount(self, pcVisibleRows) -proc mSetBackgroundColor*(self: ptr IPreviewHandlerVisuals, color: COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBackgroundColor(self, color) -proc SetFont*(self: ptr IPreviewHandlerVisuals, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFont(self, plf) -proc SetTextColor*(self: ptr IPreviewHandlerVisuals, color: COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTextColor(self, color) -proc SetWatermark*(self: ptr IVisualProperties, hbmp: HBITMAP, vpwf: VPWATERMARKFLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWatermark(self, hbmp, vpwf) -proc SetColor*(self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, cr: COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColor(self, vpcf, cr) -proc GetColor*(self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, pcr: ptr COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColor(self, vpcf, pcr) -proc SetItemHeight*(self: ptr IVisualProperties, cyItemInPixels: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetItemHeight(self, cyItemInPixels) -proc GetItemHeight*(self: ptr IVisualProperties, cyItemInPixels: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemHeight(self, cyItemInPixels) -proc SetFont*(self: ptr IVisualProperties, plf: ptr LOGFONTW, bRedraw: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFont(self, plf, bRedraw) -proc GetFont*(self: ptr IVisualProperties, plf: ptr LOGFONTW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFont(self, plf) -proc SetTheme*(self: ptr IVisualProperties, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTheme(self, pszSubAppName, pszSubIdList) -proc OnDefaultCommand*(self: ptr ICommDlgBrowser, ppshv: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDefaultCommand(self, ppshv) -proc OnStateChange*(self: ptr ICommDlgBrowser, ppshv: ptr IShellView, uChange: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStateChange(self, ppshv, uChange) -proc IncludeObject*(self: ptr ICommDlgBrowser, ppshv: ptr IShellView, pidl: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IncludeObject(self, ppshv, pidl) -proc Notify*(self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, dwNotifyType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Notify(self, ppshv, dwNotifyType) -proc GetDefaultMenuText*(self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, pszText: LPWSTR, cchMax: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultMenuText(self, ppshv, pszText, cchMax) -proc GetViewFlags*(self: ptr ICommDlgBrowser2, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewFlags(self, pdwFlags) -proc OnColumnClicked*(self: ptr ICommDlgBrowser3, ppshv: ptr IShellView, iColumn: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnColumnClicked(self, ppshv, iColumn) -proc GetCurrentFilter*(self: ptr ICommDlgBrowser3, pszFileSpec: LPWSTR, cchFileSpec: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentFilter(self, pszFileSpec, cchFileSpec) -proc OnPreViewCreated*(self: ptr ICommDlgBrowser3, ppshv: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPreViewCreated(self, ppshv) -proc SetColumnInfo*(self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColumnInfo(self, propkey, pcmci) -proc GetColumnInfo*(self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnInfo(self, propkey, pcmci) -proc GetColumnCount*(self: ptr IColumnManager, dwFlags: CM_ENUM_FLAGS, puCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnCount(self, dwFlags, puCount) -proc GetColumns*(self: ptr IColumnManager, dwFlags: CM_ENUM_FLAGS, rgkeyOrder: ptr PROPERTYKEY, cColumns: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumns(self, dwFlags, rgkeyOrder, cColumns) -proc SetColumns*(self: ptr IColumnManager, rgkeyOrder: ptr PROPERTYKEY, cVisible: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColumns(self, rgkeyOrder, cVisible) -proc SetFilter*(self: ptr IFolderFilterSite, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFilter(self, punk) -proc ShouldShow*(self: ptr IFolderFilter, psf: ptr IShellFolder, pidlFolder: PCIDLIST_ABSOLUTE, pidlItem: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShouldShow(self, psf, pidlFolder, pidlItem) -proc GetEnumFlags*(self: ptr IFolderFilter, psf: ptr IShellFolder, pidlFolder: PCIDLIST_ABSOLUTE, phwnd: ptr HWND, pgrfFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumFlags(self, psf, pidlFolder, phwnd, pgrfFlags) -proc OnFocusChangeIS*(self: ptr IInputObjectSite, punkObj: ptr IUnknown, fSetFocus: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFocusChangeIS(self, punkObj, fSetFocus) -proc UIActivateIO*(self: ptr IInputObject, fActivate: WINBOOL, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UIActivateIO(self, fActivate, pMsg) -proc HasFocusIO*(self: ptr IInputObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasFocusIO(self) -proc TranslateAcceleratorIO*(self: ptr IInputObject, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAcceleratorIO(self, pMsg) -proc TranslateAcceleratorGlobal*(self: ptr IInputObject2, pMsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAcceleratorGlobal(self, pMsg) -proc GetIconOf*(self: ptr IShellIcon, pidl: PCUITEMID_CHILD, flags: UINT, pIconIndex: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconOf(self, pidl, flags, pIconIndex) -proc InsertMenusSB*(self: ptr IShellBrowser, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertMenusSB(self, hmenuShared, lpMenuWidths) -proc SetMenuSB*(self: ptr IShellBrowser, hmenuShared: HMENU, holemenuRes: HOLEMENU, hwndActiveObject: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMenuSB(self, hmenuShared, holemenuRes, hwndActiveObject) -proc RemoveMenusSB*(self: ptr IShellBrowser, hmenuShared: HMENU): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveMenusSB(self, hmenuShared) -proc SetStatusTextSB*(self: ptr IShellBrowser, pszStatusText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStatusTextSB(self, pszStatusText) -proc EnableModelessSB*(self: ptr IShellBrowser, fEnable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableModelessSB(self, fEnable) -proc TranslateAcceleratorSB*(self: ptr IShellBrowser, pmsg: ptr MSG, wID: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAcceleratorSB(self, pmsg, wID) -proc BrowseObject*(self: ptr IShellBrowser, pidl: PCUIDLIST_RELATIVE, wFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BrowseObject(self, pidl, wFlags) -proc GetViewStateStream*(self: ptr IShellBrowser, grfMode: DWORD, ppStrm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewStateStream(self, grfMode, ppStrm) -proc GetControlWindow*(self: ptr IShellBrowser, id: UINT, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetControlWindow(self, id, phwnd) -proc SendControlMsg*(self: ptr IShellBrowser, id: UINT, uMsg: UINT, wParam: WPARAM, lParam: LPARAM, pret: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SendControlMsg(self, id, uMsg, wParam, lParam, pret) -proc QueryActiveShellView*(self: ptr IShellBrowser, ppshv: ptr ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryActiveShellView(self, ppshv) -proc OnViewWindowActive*(self: ptr IShellBrowser, pshv: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnViewWindowActive(self, pshv) -proc SetToolbarItems*(self: ptr IShellBrowser, lpButtons: LPTBBUTTONSB, nButtons: UINT, uFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetToolbarItems(self, lpButtons, nButtons, uFlags) -proc ProfferService*(self: ptr IProfferService, guidService: REFGUID, psp: ptr IServiceProvider, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ProfferService(self, guidService, psp, pdwCookie) -proc RevokeService*(self: ptr IProfferService, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RevokeService(self, dwCookie) -proc BindToHandler*(self: ptr IShellItem, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToHandler(self, pbc, bhid, riid, ppv) -proc GetParent*(self: ptr IShellItem, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParent(self, ppsi) -proc GetDisplayName*(self: ptr IShellItem, sigdnName: SIGDN, ppszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayName(self, sigdnName, ppszName) -proc GetAttributes*(self: ptr IShellItem, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributes(self, sfgaoMask, psfgaoAttribs) -proc Compare*(self: ptr IShellItem, psi: ptr IShellItem, hint: SICHINTF, piOrder: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Compare(self, psi, hint, piOrder) -proc GetPropertyStore*(self: ptr IShellItem2, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStore(self, flags, riid, ppv) -proc GetPropertyStoreWithCreateObject*(self: ptr IShellItem2, flags: GETPROPERTYSTOREFLAGS, punkCreateObject: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStoreWithCreateObject(self, flags, punkCreateObject, riid, ppv) -proc GetPropertyStoreForKeys*(self: ptr IShellItem2, rgKeys: ptr PROPERTYKEY, cKeys: UINT, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStoreForKeys(self, rgKeys, cKeys, flags, riid, ppv) -proc GetPropertyDescriptionList*(self: ptr IShellItem2, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescriptionList(self, keyType, riid, ppv) -proc Update*(self: ptr IShellItem2, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Update(self, pbc) -proc GetProperty*(self: ptr IShellItem2, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, key, ppropvar) -proc GetCLSID*(self: ptr IShellItem2, key: REFPROPERTYKEY, pclsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCLSID(self, key, pclsid) -proc GetFileTime*(self: ptr IShellItem2, key: REFPROPERTYKEY, pft: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileTime(self, key, pft) -proc GetInt32*(self: ptr IShellItem2, key: REFPROPERTYKEY, pi: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInt32(self, key, pi) -proc GetString*(self: ptr IShellItem2, key: REFPROPERTYKEY, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetString(self, key, ppsz) -proc GetUInt32*(self: ptr IShellItem2, key: REFPROPERTYKEY, pui: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUInt32(self, key, pui) -proc GetUInt64*(self: ptr IShellItem2, key: REFPROPERTYKEY, pull: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUInt64(self, key, pull) -proc GetBool*(self: ptr IShellItem2, key: REFPROPERTYKEY, pf: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBool(self, key, pf) -proc GetImage*(self: ptr IShellItemImageFactory, size: SIZE, flags: SIIGBF, phbm: ptr HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetImage(self, size, flags, phbm) -proc OnPictureChange*(self: ptr IUserAccountChangeCallback, pszUserName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPictureChange(self, pszUserName) -proc Next*(self: ptr IEnumShellItems, celt: ULONG, rgelt: ptr ptr IShellItem, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumShellItems, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumShellItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumShellItems, ppenum: ptr ptr IEnumShellItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc UpdateProgress*(self: ptr ITransferAdviseSink, ullSizeCurrent: ULONGLONG, ullSizeTotal: ULONGLONG, nFilesCurrent: int32, nFilesTotal: int32, nFoldersCurrent: int32, nFoldersTotal: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateProgress(self, ullSizeCurrent, ullSizeTotal, nFilesCurrent, nFilesTotal, nFoldersCurrent, nFoldersTotal) -proc UpdateTransferState*(self: ptr ITransferAdviseSink, ts: TRANSFER_ADVISE_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateTransferState(self, ts) -proc ConfirmOverwrite*(self: ptr ITransferAdviseSink, psiSource: ptr IShellItem, psiDestParent: ptr IShellItem, pszName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConfirmOverwrite(self, psiSource, psiDestParent, pszName) -proc ConfirmEncryptionLoss*(self: ptr ITransferAdviseSink, psiSource: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConfirmEncryptionLoss(self, psiSource) -proc FileFailure*(self: ptr ITransferAdviseSink, psi: ptr IShellItem, pszItem: LPCWSTR, hrError: HRESULT, pszRename: LPWSTR, cchRename: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FileFailure(self, psi, pszItem, hrError, pszRename, cchRename) -proc SubStreamFailure*(self: ptr ITransferAdviseSink, psi: ptr IShellItem, pszStreamName: LPCWSTR, hrError: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SubStreamFailure(self, psi, pszStreamName, hrError) -proc PropertyFailure*(self: ptr ITransferAdviseSink, psi: ptr IShellItem, pkey: ptr PROPERTYKEY, hrError: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PropertyFailure(self, psi, pkey, hrError) -proc Advise*(self: ptr ITransferSource, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, psink, pdwCookie) -proc Unadvise*(self: ptr ITransferSource, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc SetProperties*(self: ptr ITransferSource, pproparray: ptr IPropertyChangeArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProperties(self, pproparray) -proc OpenItem*(self: ptr ITransferSource, psi: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenItem(self, psi, flags, riid, ppv) -proc MoveItem*(self: ptr ITransferSource, psi: ptr IShellItem, psiParentDst: ptr IShellItem, pszNameDst: LPCWSTR, flags: TRANSFER_SOURCE_FLAGS, ppsiNew: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveItem(self, psi, psiParentDst, pszNameDst, flags, ppsiNew) -proc RecycleItem*(self: ptr ITransferSource, psiSource: ptr IShellItem, psiParentDest: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS, ppsiNewDest: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecycleItem(self, psiSource, psiParentDest, flags, ppsiNewDest) -proc RemoveItem*(self: ptr ITransferSource, psiSource: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveItem(self, psiSource, flags) -proc RenameItem*(self: ptr ITransferSource, psiSource: ptr IShellItem, pszNewName: LPCWSTR, flags: TRANSFER_SOURCE_FLAGS, ppsiNewDest: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RenameItem(self, psiSource, pszNewName, flags, ppsiNewDest) -proc LinkItem*(self: ptr ITransferSource, psiSource: ptr IShellItem, psiParentDest: ptr IShellItem, pszNewName: LPCWSTR, flags: TRANSFER_SOURCE_FLAGS, ppsiNewDest: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LinkItem(self, psiSource, psiParentDest, pszNewName, flags, ppsiNewDest) -proc ApplyPropertiesToItem*(self: ptr ITransferSource, psiSource: ptr IShellItem, ppsiNew: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyPropertiesToItem(self, psiSource, ppsiNew) -proc GetDefaultDestinationName*(self: ptr ITransferSource, psiSource: ptr IShellItem, psiParentDest: ptr IShellItem, ppszDestinationName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultDestinationName(self, psiSource, psiParentDest, ppszDestinationName) -proc EnterFolder*(self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnterFolder(self, psiChildFolderDest) -proc LeaveFolder*(self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LeaveFolder(self, psiChildFolderDest) -proc Next*(self: ptr IEnumResources, celt: ULONG, psir: ptr SHELL_ITEM_RESOURCE, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, psir, pceltFetched) -proc Skip*(self: ptr IEnumResources, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumResources): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumResources, ppenumr: ptr ptr IEnumResources): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenumr) -proc GetAttributes*(self: ptr IShellItemResources, pdwAttributes: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributes(self, pdwAttributes) -proc GetSize*(self: ptr IShellItemResources, pullSize: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, pullSize) -proc GetTimes*(self: ptr IShellItemResources, pftCreation: ptr FILETIME, pftWrite: ptr FILETIME, pftAccess: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTimes(self, pftCreation, pftWrite, pftAccess) -proc SetTimes*(self: ptr IShellItemResources, pftCreation: ptr FILETIME, pftWrite: ptr FILETIME, pftAccess: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTimes(self, pftCreation, pftWrite, pftAccess) -proc GetResourceDescription*(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE, ppszDescription: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResourceDescription(self, pcsir, ppszDescription) -proc EnumResources*(self: ptr IShellItemResources, ppenumr: ptr ptr IEnumResources): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumResources(self, ppenumr) -proc SupportsResource*(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SupportsResource(self, pcsir) -proc OpenResource*(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OpenResource(self, pcsir, riid, ppv) -proc CreateResource*(self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateResource(self, pcsir, riid, ppv) -proc MarkForDelete*(self: ptr IShellItemResources): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MarkForDelete(self) -proc Advise*(self: ptr ITransferDestination, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, psink, pdwCookie) -proc Unadvise*(self: ptr ITransferDestination, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc CreateItem*(self: ptr ITransferDestination, pszName: LPCWSTR, dwAttributes: DWORD, ullSize: ULONGLONG, flags: TRANSFER_SOURCE_FLAGS, riidItem: REFIID, ppvItem: ptr pointer, riidResources: REFIID, ppvResources: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateItem(self, pszName, dwAttributes, ullSize, flags, riidItem, ppvItem, riidResources, ppvResources) -proc ReadAsync*(self: ptr IStreamAsync, pv: pointer, cb: DWORD, pcbRead: LPDWORD, lpOverlapped: LPOVERLAPPED): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadAsync(self, pv, cb, pcbRead, lpOverlapped) -proc WriteAsync*(self: ptr IStreamAsync, lpBuffer: pointer, cb: DWORD, pcbWritten: LPDWORD, lpOverlapped: LPOVERLAPPED): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteAsync(self, lpBuffer, cb, pcbWritten, lpOverlapped) -proc OverlappedResult*(self: ptr IStreamAsync, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, bWait: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OverlappedResult(self, lpOverlapped, lpNumberOfBytesTransferred, bWait) -proc CancelIo*(self: ptr IStreamAsync): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CancelIo(self) -proc GetSectorSize*(self: ptr IStreamUnbufferedInfo, pcbSectorSize: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSectorSize(self, pcbSectorSize) -proc StartOperations*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartOperations(self) -proc FinishOperations*(self: ptr IFileOperationProgressSink, hrResult: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FinishOperations(self, hrResult) -proc PreRenameItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreRenameItem(self, dwFlags, psiItem, pszNewName) -proc PostRenameItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, pszNewName: LPCWSTR, hrRename: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostRenameItem(self, dwFlags, psiItem, pszNewName, hrRename, psiNewlyCreated) -proc PreMoveItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreMoveItem(self, dwFlags, psiItem, psiDestinationFolder, pszNewName) -proc PostMoveItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, hrMove: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostMoveItem(self, dwFlags, psiItem, psiDestinationFolder, pszNewName, hrMove, psiNewlyCreated) -proc PreCopyItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreCopyItem(self, dwFlags, psiItem, psiDestinationFolder, pszNewName) -proc PostCopyItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, hrCopy: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostCopyItem(self, dwFlags, psiItem, psiDestinationFolder, pszNewName, hrCopy, psiNewlyCreated) -proc PreDeleteItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreDeleteItem(self, dwFlags, psiItem) -proc PostDeleteItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem, hrDelete: HRESULT, psiNewlyCreated: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostDeleteItem(self, dwFlags, psiItem, hrDelete, psiNewlyCreated) -proc PreNewItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PreNewItem(self, dwFlags, psiDestinationFolder, pszNewName) -proc PostNewItem*(self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, pszTemplateName: LPCWSTR, dwFileAttributes: DWORD, hrNew: HRESULT, psiNewItem: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostNewItem(self, dwFlags, psiDestinationFolder, pszNewName, pszTemplateName, dwFileAttributes, hrNew, psiNewItem) -proc UpdateProgress*(self: ptr IFileOperationProgressSink, iWorkTotal: UINT, iWorkSoFar: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateProgress(self, iWorkTotal, iWorkSoFar) -proc ResetTimer*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetTimer(self) -proc PauseTimer*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PauseTimer(self) -proc ResumeTimer*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResumeTimer(self) -proc BindToHandler*(self: ptr IShellItemArray, pbc: ptr IBindCtx, bhid: REFGUID, riid: REFIID, ppvOut: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BindToHandler(self, pbc, bhid, riid, ppvOut) -proc GetPropertyStore*(self: ptr IShellItemArray, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyStore(self, flags, riid, ppv) -proc GetPropertyDescriptionList*(self: ptr IShellItemArray, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescriptionList(self, keyType, riid, ppv) -proc GetAttributes*(self: ptr IShellItemArray, AttribFlags: SIATTRIBFLAGS, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributes(self, AttribFlags, sfgaoMask, psfgaoAttribs) -proc GetCount*(self: ptr IShellItemArray, pdwNumItems: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCount(self, pdwNumItems) -proc GetItemAt*(self: ptr IShellItemArray, dwIndex: DWORD, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemAt(self, dwIndex, ppsi) -proc EnumItems*(self: ptr IShellItemArray, ppenumShellItems: ptr ptr IEnumShellItems): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumItems(self, ppenumShellItems) -proc Initialize*(self: ptr IInitializeWithItem, psi: ptr IShellItem, grfMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, psi, grfMode) -proc SetSelection*(self: ptr IObjectWithSelection, psia: ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSelection(self, psia) -proc GetSelection*(self: ptr IObjectWithSelection, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelection(self, riid, ppv) -proc RemoveBackReferences*(self: ptr IObjectWithBackReferences): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveBackReferences(self) -proc ParsePropertyName*(self: ptr IPropertyUI, pszName: LPCWSTR, pfmtid: ptr FMTID, ppid: ptr PROPID, pchEaten: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ParsePropertyName(self, pszName, pfmtid, ppid, pchEaten) -proc GetCannonicalName*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pwszText: LPWSTR, cchText: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCannonicalName(self, fmtid, pid, pwszText, cchText) -proc GetDisplayName*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, flags: PROPERTYUI_NAME_FLAGS, pwszText: LPWSTR, cchText: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDisplayName(self, fmtid, pid, flags, pwszText, cchText) -proc GetPropertyDescription*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pwszText: LPWSTR, cchText: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyDescription(self, fmtid, pid, pwszText, cchText) -proc GetDefaultWidth*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pcxChars: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultWidth(self, fmtid, pid, pcxChars) -proc GetFlags*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pflags: ptr PROPERTYUI_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFlags(self, fmtid, pid, pflags) -proc FormatForDisplay*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, ppropvar: ptr PROPVARIANT, puiff: PROPERTYUI_FORMAT_FLAGS, pwszText: LPWSTR, cchText: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FormatForDisplay(self, fmtid, pid, ppropvar, puiff, pwszText, cchText) -proc GetHelpInfo*(self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pwszHelpFile: LPWSTR, cch: DWORD, puHelpID: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHelpInfo(self, fmtid, pid, pwszHelpFile, cch, puHelpID) -proc CanCategorizeOnSCID*(self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanCategorizeOnSCID(self, pscid) -proc GetDefaultCategory*(self: ptr ICategoryProvider, pguid: ptr GUID, pscid: ptr SHCOLUMNID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultCategory(self, pguid, pscid) -proc GetCategoryForSCID*(self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID, pguid: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategoryForSCID(self, pscid, pguid) -proc EnumCategories*(self: ptr ICategoryProvider, penum: ptr ptr IEnumGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumCategories(self, penum) -proc GetCategoryName*(self: ptr ICategoryProvider, pguid: ptr GUID, pszName: LPWSTR, cch: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategoryName(self, pguid, pszName, cch) -proc CreateCategory*(self: ptr ICategoryProvider, pguid: ptr GUID, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateCategory(self, pguid, riid, ppv) -proc GetDescription*(self: ptr ICategorizer, pszDesc: LPWSTR, cch: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescription(self, pszDesc, cch) -proc GetCategory*(self: ptr ICategorizer, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, rgCategoryIds: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategory(self, cidl, apidl, rgCategoryIds) -proc GetCategoryInfo*(self: ptr ICategorizer, dwCategoryId: DWORD, pci: ptr TCATEGORY_INFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategoryInfo(self, dwCategoryId, pci) -proc CompareCategory*(self: ptr ICategorizer, csfFlags: CATSORT_FLAGS, dwCategoryId1: DWORD, dwCategoryId2: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareCategory(self, csfFlags, dwCategoryId1, dwCategoryId2) -proc DragEnter*(self: ptr IDropTargetHelper, hwndTarget: HWND, pDataObject: ptr IDataObject, ppt: ptr POINT, dwEffect: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragEnter(self, hwndTarget, pDataObject, ppt, dwEffect) -proc DragLeave*(self: ptr IDropTargetHelper): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragLeave(self) -proc DragOver*(self: ptr IDropTargetHelper, ppt: ptr POINT, dwEffect: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DragOver(self, ppt, dwEffect) -proc Drop*(self: ptr IDropTargetHelper, pDataObject: ptr IDataObject, ppt: ptr POINT, dwEffect: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Drop(self, pDataObject, ppt, dwEffect) -proc Show*(self: ptr IDropTargetHelper, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, fShow) -proc InitializeFromBitmap*(self: ptr IDragSourceHelper, pshdi: LPSHDRAGIMAGE, pDataObject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromBitmap(self, pshdi, pDataObject) -proc InitializeFromWindow*(self: ptr IDragSourceHelper, hwnd: HWND, ppt: ptr POINT, pDataObject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromWindow(self, hwnd, ppt, pDataObject) -proc SetFlags*(self: ptr IDragSourceHelper2, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFlags(self, dwFlags) -proc GetPath*(self: ptr IShellLinkA, pszFile: LPSTR, cch: int32, pfd: ptr WIN32_FIND_DATAA, fFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPath(self, pszFile, cch, pfd, fFlags) -proc GetIDList*(self: ptr IShellLinkA, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDList(self, ppidl) -proc SetIDList*(self: ptr IShellLinkA, pidl: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIDList(self, pidl) -proc GetDescription*(self: ptr IShellLinkA, pszName: LPSTR, cch: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescription(self, pszName, cch) -proc SetDescription*(self: ptr IShellLinkA, pszName: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDescription(self, pszName) -proc GetWorkingDirectory*(self: ptr IShellLinkA, pszDir: LPSTR, cch: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWorkingDirectory(self, pszDir, cch) -proc SetWorkingDirectory*(self: ptr IShellLinkA, pszDir: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWorkingDirectory(self, pszDir) -proc GetArguments*(self: ptr IShellLinkA, pszArgs: LPSTR, cch: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetArguments(self, pszArgs, cch) -proc SetArguments*(self: ptr IShellLinkA, pszArgs: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetArguments(self, pszArgs) -proc GetHotkey*(self: ptr IShellLinkA, pwHotkey: ptr WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHotkey(self, pwHotkey) -proc SetHotkey*(self: ptr IShellLinkA, wHotkey: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHotkey(self, wHotkey) -proc GetShowCmd*(self: ptr IShellLinkA, piShowCmd: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetShowCmd(self, piShowCmd) -proc SetShowCmd*(self: ptr IShellLinkA, iShowCmd: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetShowCmd(self, iShowCmd) -proc GetIconLocation*(self: ptr IShellLinkA, pszIconPath: LPSTR, cch: int32, piIcon: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconLocation(self, pszIconPath, cch, piIcon) -proc SetIconLocation*(self: ptr IShellLinkA, pszIconPath: LPCSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconLocation(self, pszIconPath, iIcon) -proc SetRelativePath*(self: ptr IShellLinkA, pszPathRel: LPCSTR, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRelativePath(self, pszPathRel, dwReserved) -proc Resolve*(self: ptr IShellLinkA, hwnd: HWND, fFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resolve(self, hwnd, fFlags) -proc SetPath*(self: ptr IShellLinkA, pszFile: LPCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPath(self, pszFile) -proc GetPath*(self: ptr IShellLinkW, pszFile: LPWSTR, cch: int32, pfd: ptr WIN32_FIND_DATAW, fFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPath(self, pszFile, cch, pfd, fFlags) -proc GetIDList*(self: ptr IShellLinkW, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDList(self, ppidl) -proc SetIDList*(self: ptr IShellLinkW, pidl: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIDList(self, pidl) -proc GetDescription*(self: ptr IShellLinkW, pszName: LPWSTR, cch: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDescription(self, pszName, cch) -proc SetDescription*(self: ptr IShellLinkW, pszName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDescription(self, pszName) -proc GetWorkingDirectory*(self: ptr IShellLinkW, pszDir: LPWSTR, cch: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWorkingDirectory(self, pszDir, cch) -proc SetWorkingDirectory*(self: ptr IShellLinkW, pszDir: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWorkingDirectory(self, pszDir) -proc GetArguments*(self: ptr IShellLinkW, pszArgs: LPWSTR, cch: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetArguments(self, pszArgs, cch) -proc SetArguments*(self: ptr IShellLinkW, pszArgs: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetArguments(self, pszArgs) -proc GetHotkey*(self: ptr IShellLinkW, pwHotkey: ptr WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetHotkey(self, pwHotkey) -proc SetHotkey*(self: ptr IShellLinkW, wHotkey: WORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHotkey(self, wHotkey) -proc GetShowCmd*(self: ptr IShellLinkW, piShowCmd: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetShowCmd(self, piShowCmd) -proc SetShowCmd*(self: ptr IShellLinkW, iShowCmd: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetShowCmd(self, iShowCmd) -proc GetIconLocation*(self: ptr IShellLinkW, pszIconPath: LPWSTR, cch: int32, piIcon: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconLocation(self, pszIconPath, cch, piIcon) -proc SetIconLocation*(self: ptr IShellLinkW, pszIconPath: LPCWSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconLocation(self, pszIconPath, iIcon) -proc SetRelativePath*(self: ptr IShellLinkW, pszPathRel: LPCWSTR, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRelativePath(self, pszPathRel, dwReserved) -proc Resolve*(self: ptr IShellLinkW, hwnd: HWND, fFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resolve(self, hwnd, fFlags) -proc SetPath*(self: ptr IShellLinkW, pszFile: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPath(self, pszFile) -proc AddDataBlock*(self: ptr IShellLinkDataList, pDataBlock: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddDataBlock(self, pDataBlock) -proc CopyDataBlock*(self: ptr IShellLinkDataList, dwSig: DWORD, ppDataBlock: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyDataBlock(self, dwSig, ppDataBlock) -proc RemoveDataBlock*(self: ptr IShellLinkDataList, dwSig: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveDataBlock(self, dwSig) -proc GetFlags*(self: ptr IShellLinkDataList, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFlags(self, pdwFlags) -proc SetFlags*(self: ptr IShellLinkDataList, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFlags(self, dwFlags) -proc ResolveShellLink*(self: ptr IResolveShellLink, punkLink: ptr IUnknown, hwnd: HWND, fFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResolveShellLink(self, punkLink, hwnd, fFlags) -proc Initialize*(self: ptr IActionProgressDialog, flags: SPINITF, pszTitle: LPCWSTR, pszCancel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, flags, pszTitle, pszCancel) -proc Stop*(self: ptr IActionProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Stop(self) -proc Initialize*(self: ptr IHWEventHandler, pszParams: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pszParams) -proc HandleEvent*(self: ptr IHWEventHandler, pszDeviceID: LPCWSTR, pszAltDeviceID: LPCWSTR, pszEventType: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleEvent(self, pszDeviceID, pszAltDeviceID, pszEventType) -proc HandleEventWithContent*(self: ptr IHWEventHandler, pszDeviceID: LPCWSTR, pszAltDeviceID: LPCWSTR, pszEventType: LPCWSTR, pszContentTypeHandler: LPCWSTR, pdataobject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleEventWithContent(self, pszDeviceID, pszAltDeviceID, pszEventType, pszContentTypeHandler, pdataobject) -proc HandleEventWithHWND*(self: ptr IHWEventHandler2, pszDeviceID: LPCWSTR, pszAltDeviceID: LPCWSTR, pszEventType: LPCWSTR, hwndOwner: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleEventWithHWND(self, pszDeviceID, pszAltDeviceID, pszEventType, hwndOwner) -proc AllowAutoPlay*(self: ptr IQueryCancelAutoPlay, pszPath: LPCWSTR, dwContentType: DWORD, pszLabel: LPCWSTR, dwSerialNumber: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AllowAutoPlay(self, pszPath, dwContentType, pszLabel, dwSerialNumber) -proc GetDynamicInfo*(self: ptr IDynamicHWHandler, pszDeviceID: LPCWSTR, dwContentType: DWORD, ppszAction: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDynamicInfo(self, pszDeviceID, dwContentType, ppszAction) -proc Begin*(self: ptr IActionProgress, action: SPACTION, flags: SPBEGINF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin(self, action, flags) -proc UpdateProgress*(self: ptr IActionProgress, ulCompleted: ULONGLONG, ulTotal: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateProgress(self, ulCompleted, ulTotal) -proc UpdateText*(self: ptr IActionProgress, sptext: SPTEXT, pszText: LPCWSTR, fMayCompact: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateText(self, sptext, pszText, fMayCompact) -proc QueryCancel*(self: ptr IActionProgress, pfCancelled: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryCancel(self, pfCancelled) -proc ResetCancel*(self: ptr IActionProgress): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetCancel(self) -proc End*(self: ptr IActionProgress): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.End(self) -proc Initialize*(self: ptr IShellExtInit, pidlFolder: PCIDLIST_ABSOLUTE, pdtobj: ptr IDataObject, hkeyProgID: HKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pidlFolder, pdtobj, hkeyProgID) -proc AddPages*(self: ptr IShellPropSheetExt, pfnAddPage: LPFNSVADDPROPSHEETPAGE, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPages(self, pfnAddPage, lParam) -proc ReplacePage*(self: ptr IShellPropSheetExt, uPageID: EXPPS, pfnReplaceWith: LPFNSVADDPROPSHEETPAGE, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReplacePage(self, uPageID, pfnReplaceWith, lParam) -proc Initialize*(self: ptr IRemoteComputer, pszMachine: LPCWSTR, bEnumerating: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pszMachine, bEnumerating) -proc QueryContinue*(self: ptr IQueryContinue): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryContinue(self) -proc GetCancelEvent*(self: ptr IObjectWithCancelEvent, phEvent: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCancelEvent(self, phEvent) -proc SetBalloonInfo*(self: ptr IUserNotification, pszTitle: LPCWSTR, pszText: LPCWSTR, dwInfoFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBalloonInfo(self, pszTitle, pszText, dwInfoFlags) -proc SetBalloonRetry*(self: ptr IUserNotification, dwShowTime: DWORD, dwInterval: DWORD, cRetryCount: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBalloonRetry(self, dwShowTime, dwInterval, cRetryCount) -proc SetIconInfo*(self: ptr IUserNotification, hIcon: HICON, pszToolTip: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconInfo(self, hIcon, pszToolTip) -proc Show*(self: ptr IUserNotification, pqc: ptr IQueryContinue, dwContinuePollInterval: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, pqc, dwContinuePollInterval) -proc PlaySound*(self: ptr IUserNotification, pszSoundName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PlaySound(self, pszSoundName) -proc OnBalloonUserClick*(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnBalloonUserClick(self, pt) -proc OnLeftClick*(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnLeftClick(self, pt) -proc OnContextMenu*(self: ptr IUserNotificationCallback, pt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnContextMenu(self, pt) -proc SetBalloonInfo*(self: ptr IUserNotification2, pszTitle: LPCWSTR, pszText: LPCWSTR, dwInfoFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBalloonInfo(self, pszTitle, pszText, dwInfoFlags) -proc SetBalloonRetry*(self: ptr IUserNotification2, dwShowTime: DWORD, dwInterval: DWORD, cRetryCount: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBalloonRetry(self, dwShowTime, dwInterval, cRetryCount) -proc SetIconInfo*(self: ptr IUserNotification2, hIcon: HICON, pszToolTip: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconInfo(self, hIcon, pszToolTip) -proc Show*(self: ptr IUserNotification2, pqc: ptr IQueryContinue, dwContinuePollInterval: DWORD, pSink: ptr IUserNotificationCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, pqc, dwContinuePollInterval, pSink) -proc PlaySound*(self: ptr IUserNotification2, pszSoundName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PlaySound(self, pszSoundName) -proc GetValidCharacters*(self: ptr IItemNameLimits, ppwszValidChars: ptr LPWSTR, ppwszInvalidChars: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValidCharacters(self, ppwszValidChars, ppwszInvalidChars) -proc GetMaxLength*(self: ptr IItemNameLimits, pszName: LPCWSTR, piMaxNameLen: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMaxLength(self, pszName, piMaxNameLen) -proc SetDisplayName*(self: ptr ISearchFolderItemFactory, pszDisplayName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDisplayName(self, pszDisplayName) -proc SetFolderTypeID*(self: ptr ISearchFolderItemFactory, ftid: FOLDERTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolderTypeID(self, ftid) -proc SetFolderLogicalViewMode*(self: ptr ISearchFolderItemFactory, flvm: FOLDERLOGICALVIEWMODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolderLogicalViewMode(self, flvm) -proc SetIconSize*(self: ptr ISearchFolderItemFactory, iIconSize: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconSize(self, iIconSize) -proc SetVisibleColumns*(self: ptr ISearchFolderItemFactory, cVisibleColumns: UINT, rgKey: ptr PROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVisibleColumns(self, cVisibleColumns, rgKey) -proc SetSortColumns*(self: ptr ISearchFolderItemFactory, cSortColumns: UINT, rgSortColumns: ptr SORTCOLUMN): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSortColumns(self, cSortColumns, rgSortColumns) -proc SetGroupColumn*(self: ptr ISearchFolderItemFactory, keyGroup: REFPROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetGroupColumn(self, keyGroup) -proc SetStacks*(self: ptr ISearchFolderItemFactory, cStackKeys: UINT, rgStackKeys: ptr PROPERTYKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetStacks(self, cStackKeys, rgStackKeys) -proc SetScope*(self: ptr ISearchFolderItemFactory, psiaScope: ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScope(self, psiaScope) -proc SetCondition*(self: ptr ISearchFolderItemFactory, pCondition: ptr ICondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCondition(self, pCondition) -proc GetShellItem*(self: ptr ISearchFolderItemFactory, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetShellItem(self, riid, ppv) -proc GetIDList*(self: ptr ISearchFolderItemFactory, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDList(self, ppidl) -proc GetLocation*(self: ptr IExtractImage, pszPathBuffer: LPWSTR, cch: DWORD, pdwPriority: ptr DWORD, prgSize: ptr SIZE, dwRecClrDepth: DWORD, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLocation(self, pszPathBuffer, cch, pdwPriority, prgSize, dwRecClrDepth, pdwFlags) -proc Extract*(self: ptr IExtractImage, phBmpThumbnail: ptr HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Extract(self, phBmpThumbnail) -proc GetDateStamp*(self: ptr IExtractImage2, pDateStamp: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDateStamp(self, pDateStamp) -proc GetThumbnailHandler*(self: ptr IThumbnailHandlerFactory, pidlChild: PCUITEMID_CHILD, pbc: ptr IBindCtx, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetThumbnailHandler(self, pidlChild, pbc, riid, ppv) -proc SetParentAndItem*(self: ptr IParentAndItem, pidlParent: PCIDLIST_ABSOLUTE, psf: ptr IShellFolder, pidlChild: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetParentAndItem(self, pidlParent, psf, pidlChild) -proc GetParentAndItem*(self: ptr IParentAndItem, ppidlParent: ptr PIDLIST_ABSOLUTE, ppsf: ptr ptr IShellFolder, ppidlChild: ptr PITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParentAndItem(self, ppidlParent, ppsf, ppidlChild) -proc ShowDW*(self: ptr IDockingWindow, fShow: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowDW(self, fShow) -proc CloseDW*(self: ptr IDockingWindow, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseDW(self, dwReserved) -proc ResizeBorderDW*(self: ptr IDockingWindow, prcBorder: LPCRECT, punkToolbarSite: ptr IUnknown, fReserved: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResizeBorderDW(self, prcBorder, punkToolbarSite, fReserved) -proc GetBandInfo*(self: ptr IDeskBand, dwBandID: DWORD, dwViewMode: DWORD, pdbi: ptr DESKBANDINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBandInfo(self, dwBandID, dwViewMode, pdbi) -proc GetDefaultBandWidth*(self: ptr IDeskBandInfo, dwBandID: DWORD, dwViewMode: DWORD, pnWidth: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultBandWidth(self, dwBandID, dwViewMode, pnWidth) -proc CanRenderComposited*(self: ptr IDeskBand2, pfCanRenderComposited: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanRenderComposited(self, pfCanRenderComposited) -proc SetCompositionState*(self: ptr IDeskBand2, fCompositionEnabled: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCompositionState(self, fCompositionEnabled) -proc GetCompositionState*(self: ptr IDeskBand2, pfCompositionEnabled: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCompositionState(self, pfCompositionEnabled) -proc HrInit*(self: ptr ITaskbarList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HrInit(self) -proc AddTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTab(self, hwnd) -proc DeleteTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteTab(self, hwnd) -proc ActivateTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateTab(self, hwnd) -proc SetActiveAlt*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetActiveAlt(self, hwnd) -proc MarkFullscreenWindow*(self: ptr ITaskbarList2, hwnd: HWND, fFullscreen: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MarkFullscreenWindow(self, hwnd, fFullscreen) -proc SetProgressValue*(self: ptr ITaskbarList3, hwnd: HWND, ullCompleted: ULONGLONG, ullTotal: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgressValue(self, hwnd, ullCompleted, ullTotal) -proc SetProgressState*(self: ptr ITaskbarList3, hwnd: HWND, tbpFlags: TBPFLAG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgressState(self, hwnd, tbpFlags) -proc RegisterTab*(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterTab(self, hwndTab, hwndMDI) -proc UnregisterTab*(self: ptr ITaskbarList3, hwndTab: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterTab(self, hwndTab) -proc SetTabOrder*(self: ptr ITaskbarList3, hwndTab: HWND, hwndInsertBefore: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTabOrder(self, hwndTab, hwndInsertBefore) -proc SetTabActive*(self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTabActive(self, hwndTab, hwndMDI, dwReserved) -proc ThumbBarAddButtons*(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThumbBarAddButtons(self, hwnd, cButtons, pButton) -proc ThumbBarUpdateButtons*(self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThumbBarUpdateButtons(self, hwnd, cButtons, pButton) -proc ThumbBarSetImageList*(self: ptr ITaskbarList3, hwnd: HWND, himl: HIMAGELIST): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ThumbBarSetImageList(self, hwnd, himl) -proc SetOverlayIcon*(self: ptr ITaskbarList3, hwnd: HWND, hIcon: HICON, pszDescription: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOverlayIcon(self, hwnd, hIcon, pszDescription) -proc SetThumbnailTooltip*(self: ptr ITaskbarList3, hwnd: HWND, pszTip: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThumbnailTooltip(self, hwnd, pszTip) -proc SetThumbnailClip*(self: ptr ITaskbarList3, hwnd: HWND, prcClip: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThumbnailClip(self, hwnd, prcClip) -proc SetTabProperties*(self: ptr ITaskbarList4, hwndTab: HWND, stpFlags: STPFLAG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTabProperties(self, hwndTab, stpFlags) -proc RemoveFromList*(self: ptr IStartMenuPinnedList, pitem: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFromList(self, pitem) -proc GetRecorderDriveLetter*(self: ptr ICDBurn, pszDrive: LPWSTR, cch: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRecorderDriveLetter(self, pszDrive, cch) -proc Burn*(self: ptr ICDBurn, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Burn(self, hwnd) -proc HasRecordableDrive*(self: ptr ICDBurn, pfHasRecorder: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasRecordableDrive(self, pfHasRecorder) -proc GetPreviousPage*(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPreviousPage(self, phpage) -proc GetNextPage*(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextPage(self, phpage) -proc GetCancelledPage*(self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCancelledPage(self, phpage) -proc AddPages*(self: ptr IWizardExtension, aPages: ptr HPROPSHEETPAGE, cPages: UINT, pnPagesAdded: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPages(self, aPages, cPages, pnPagesAdded) -proc GetFirstPage*(self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFirstPage(self, phpage) -proc GetLastPage*(self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastPage(self, phpage) -proc SetInitialURL*(self: ptr IWebWizardExtension, pszURL: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetInitialURL(self, pszURL) -proc SetErrorURL*(self: ptr IWebWizardExtension, pszErrorURL: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetErrorURL(self, pszErrorURL) -proc Initialize*(self: ptr IPublishingWizard, pdo: ptr IDataObject, dwOptions: DWORD, pszServiceScope: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pdo, dwOptions, pszServiceScope) -proc GetTransferManifest*(self: ptr IPublishingWizard, phrFromTransfer: ptr HRESULT, pdocManifest: ptr ptr IXMLDOMDocument): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTransferManifest(self, phrFromTransfer, pdocManifest) -proc Initialize*(self: ptr IFolderViewHost, hwndParent: HWND, pdo: ptr IDataObject, prc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, hwndParent, pdo, prc) -proc OnNavigationPending*(self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnNavigationPending(self, pidlFolder) -proc OnViewCreated*(self: ptr IExplorerBrowserEvents, psv: ptr IShellView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnViewCreated(self, psv) -proc OnNavigationComplete*(self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnNavigationComplete(self, pidlFolder) -proc OnNavigationFailed*(self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnNavigationFailed(self, pidlFolder) -proc Initialize*(self: ptr IExplorerBrowser, hwndParent: HWND, prc: ptr RECT, pfs: ptr FOLDERSETTINGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, hwndParent, prc, pfs) -proc Destroy*(self: ptr IExplorerBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Destroy(self) -proc SetRect*(self: ptr IExplorerBrowser, phdwp: ptr HDWP, rcBrowser: RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRect(self, phdwp, rcBrowser) -proc SetPropertyBag*(self: ptr IExplorerBrowser, pszPropertyBag: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPropertyBag(self, pszPropertyBag) -proc SetEmptyText*(self: ptr IExplorerBrowser, pszEmptyText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEmptyText(self, pszEmptyText) -proc SetFolderSettings*(self: ptr IExplorerBrowser, pfs: ptr FOLDERSETTINGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolderSettings(self, pfs) -proc Advise*(self: ptr IExplorerBrowser, psbe: ptr IExplorerBrowserEvents, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, psbe, pdwCookie) -proc Unadvise*(self: ptr IExplorerBrowser, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc SetOptions*(self: ptr IExplorerBrowser, dwFlag: EXPLORER_BROWSER_OPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, dwFlag) -proc GetOptions*(self: ptr IExplorerBrowser, pdwFlag: ptr EXPLORER_BROWSER_OPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pdwFlag) -proc BrowseToIDList*(self: ptr IExplorerBrowser, pidl: PCUIDLIST_RELATIVE, uFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BrowseToIDList(self, pidl, uFlags) -proc BrowseToObject*(self: ptr IExplorerBrowser, punk: ptr IUnknown, uFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BrowseToObject(self, punk, uFlags) -proc FillFromObject*(self: ptr IExplorerBrowser, punk: ptr IUnknown, dwFlags: EXPLORER_BROWSER_FILL_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FillFromObject(self, punk, dwFlags) -proc RemoveAll*(self: ptr IExplorerBrowser): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAll(self) -proc GetCurrentView*(self: ptr IExplorerBrowser, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentView(self, riid, ppv) -proc SetAccessibleName*(self: ptr IAccessibleObject, pszName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAccessibleName(self, pszName) -proc AddItem*(self: ptr IResultsFolder, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddItem(self, psi) -proc AddIDList*(self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE, ppidlAdded: ptr PITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddIDList(self, pidl, ppidlAdded) -proc RemoveItem*(self: ptr IResultsFolder, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveItem(self, psi) -proc RemoveIDList*(self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveIDList(self, pidl) -proc RemoveAll*(self: ptr IResultsFolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAll(self) -proc Next*(self: ptr IEnumObjects, celt: ULONG, riid: REFIID, rgelt: ptr pointer, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, riid, rgelt, pceltFetched) -proc Skip*(self: ptr IEnumObjects, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumObjects): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumObjects, ppenum: ptr ptr IEnumObjects): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc StartProgressDialog*(self: ptr IOperationsProgressDialog, hwndOwner: HWND, flags: OPPROGDLGF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartProgressDialog(self, hwndOwner, flags) -proc StopProgressDialog*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StopProgressDialog(self) -proc SetOperation*(self: ptr IOperationsProgressDialog, action: SPACTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOperation(self, action) -proc SetMode*(self: ptr IOperationsProgressDialog, mode: PDMODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMode(self, mode) -proc UpdateProgress*(self: ptr IOperationsProgressDialog, ullPointsCurrent: ULONGLONG, ullPointsTotal: ULONGLONG, ullSizeCurrent: ULONGLONG, ullSizeTotal: ULONGLONG, ullItemsCurrent: ULONGLONG, ullItemsTotal: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateProgress(self, ullPointsCurrent, ullPointsTotal, ullSizeCurrent, ullSizeTotal, ullItemsCurrent, ullItemsTotal) -proc UpdateLocations*(self: ptr IOperationsProgressDialog, psiSource: ptr IShellItem, psiTarget: ptr IShellItem, psiItem: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateLocations(self, psiSource, psiTarget, psiItem) -proc ResetTimer*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetTimer(self) -proc PauseTimer*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PauseTimer(self) -proc ResumeTimer*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResumeTimer(self) -proc GetMilliseconds*(self: ptr IOperationsProgressDialog, pullElapsed: ptr ULONGLONG, pullRemaining: ptr ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMilliseconds(self, pullElapsed, pullRemaining) -proc GetOperationStatus*(self: ptr IOperationsProgressDialog, popstatus: ptr PDOPSTATUS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOperationStatus(self, popstatus) -proc SetCancelInformation*(self: ptr IIOCancelInformation, dwThreadID: DWORD, uMsgCancel: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCancelInformation(self, dwThreadID, uMsgCancel) -proc GetCancelInformation*(self: ptr IIOCancelInformation, pdwThreadID: ptr DWORD, puMsgCancel: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCancelInformation(self, pdwThreadID, puMsgCancel) -proc Advise*(self: ptr IFileOperation, pfops: ptr IFileOperationProgressSink, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pfops, pdwCookie) -proc Unadvise*(self: ptr IFileOperation, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc SetOperationFlags*(self: ptr IFileOperation, dwOperationFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOperationFlags(self, dwOperationFlags) -proc SetProgressMessage*(self: ptr IFileOperation, pszMessage: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgressMessage(self, pszMessage) -proc SetProgressDialog*(self: ptr IFileOperation, popd: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgressDialog(self, popd) -proc SetProperties*(self: ptr IFileOperation, pproparray: ptr IPropertyChangeArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProperties(self, pproparray) -proc SetOwnerWindow*(self: ptr IFileOperation, hwndOwner: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOwnerWindow(self, hwndOwner) -proc ApplyPropertiesToItem*(self: ptr IFileOperation, psiItem: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyPropertiesToItem(self, psiItem) -proc ApplyPropertiesToItems*(self: ptr IFileOperation, punkItems: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyPropertiesToItems(self, punkItems) -proc RenameItem*(self: ptr IFileOperation, psiItem: ptr IShellItem, pszNewName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RenameItem(self, psiItem, pszNewName, pfopsItem) -proc RenameItems*(self: ptr IFileOperation, pUnkItems: ptr IUnknown, pszNewName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RenameItems(self, pUnkItems, pszNewName) -proc MoveItem*(self: ptr IFileOperation, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszNewName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveItem(self, psiItem, psiDestinationFolder, pszNewName, pfopsItem) -proc MoveItems*(self: ptr IFileOperation, punkItems: ptr IUnknown, psiDestinationFolder: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveItems(self, punkItems, psiDestinationFolder) -proc CopyItem*(self: ptr IFileOperation, psiItem: ptr IShellItem, psiDestinationFolder: ptr IShellItem, pszCopyName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyItem(self, psiItem, psiDestinationFolder, pszCopyName, pfopsItem) -proc CopyItems*(self: ptr IFileOperation, punkItems: ptr IUnknown, psiDestinationFolder: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyItems(self, punkItems, psiDestinationFolder) -proc DeleteItem*(self: ptr IFileOperation, psiItem: ptr IShellItem, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteItem(self, psiItem, pfopsItem) -proc DeleteItems*(self: ptr IFileOperation, punkItems: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteItems(self, punkItems) -proc NewItem*(self: ptr IFileOperation, psiDestinationFolder: ptr IShellItem, dwFileAttributes: DWORD, pszName: LPCWSTR, pszTemplateName: LPCWSTR, pfopsItem: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NewItem(self, psiDestinationFolder, dwFileAttributes, pszName, pszTemplateName, pfopsItem) -proc PerformOperations*(self: ptr IFileOperation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PerformOperations(self) -proc GetAnyOperationsAborted*(self: ptr IFileOperation, pfAnyOperationsAborted: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAnyOperationsAborted(self, pfAnyOperationsAborted) -proc QueryObject*(self: ptr IObjectProvider, guidObject: REFGUID, riid: REFIID, ppvOut: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryObject(self, guidObject, riid, ppvOut) -proc FoundItem*(self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FoundItem(self, psf, pidl) -proc EnterFolder*(self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnterFolder(self, psf, pidl) -proc LeaveFolder*(self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LeaveFolder(self, psf, pidl) -proc InitializeProgressDialog*(self: ptr INamespaceWalkCB, ppszTitle: ptr LPWSTR, ppszCancel: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeProgressDialog(self, ppszTitle, ppszCancel) -proc WalkComplete*(self: ptr INamespaceWalkCB2, hr: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WalkComplete(self, hr) -proc Walk*(self: ptr INamespaceWalk, punkToWalk: ptr IUnknown, dwFlags: DWORD, cDepth: int32, pnswcb: ptr INamespaceWalkCB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Walk(self, punkToWalk, dwFlags, cDepth, pnswcb) -proc GetIDArrayResult*(self: ptr INamespaceWalk, pcItems: ptr UINT, prgpidl: ptr ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDArrayResult(self, pcItems, prgpidl) -proc GetDropDownStatus*(self: ptr IAutoCompleteDropDown, pdwFlags: ptr DWORD, ppwszString: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDropDownStatus(self, pdwFlags, ppwszString) -proc ResetEnumerator*(self: ptr IAutoCompleteDropDown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResetEnumerator(self) -proc AddBand*(self: ptr IBandSite, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddBand(self, punk) -proc EnumBands*(self: ptr IBandSite, uBand: UINT, pdwBandID: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumBands(self, uBand, pdwBandID) -proc QueryBand*(self: ptr IBandSite, dwBandID: DWORD, ppstb: ptr ptr IDeskBand, pdwState: ptr DWORD, pszName: LPWSTR, cchName: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryBand(self, dwBandID, ppstb, pdwState, pszName, cchName) -proc SetBandState*(self: ptr IBandSite, dwBandID: DWORD, dwMask: DWORD, dwState: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBandState(self, dwBandID, dwMask, dwState) -proc RemoveBand*(self: ptr IBandSite, dwBandID: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveBand(self, dwBandID) -proc GetBandObject*(self: ptr IBandSite, dwBandID: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBandObject(self, dwBandID, riid, ppv) -proc SetBandSiteInfo*(self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBandSiteInfo(self, pbsinfo) -proc GetBandSiteInfo*(self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBandSiteInfo(self, pbsinfo) -proc Show*(self: ptr IModalWindow, hwndOwner: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, hwndOwner) -proc GetSupportedActionTypes*(self: ptr ICDBurnExt, pdwActions: ptr CDBE_ACTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSupportedActionTypes(self, pdwActions) -proc DoContextMenuPopup*(self: ptr IContextMenuSite, punkContextMenu: ptr IUnknown, fFlags: UINT, pt: POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoContextMenuPopup(self, punkContextMenu, fFlags, pt) -proc EnumReady*(self: ptr IEnumReadyCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumReady(self) -proc SetEnumReadyCallback*(self: ptr IEnumerableView, percb: ptr IEnumReadyCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEnumReadyCallback(self, percb) -proc CreateEnumIDListFromContents*(self: ptr IEnumerableView, pidlFolder: PCIDLIST_ABSOLUTE, dwEnumFlags: DWORD, ppEnumIDList: ptr ptr IEnumIDList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateEnumIDListFromContents(self, pidlFolder, dwEnumFlags, ppEnumIDList) -proc InsertItem*(self: ptr IInsertItem, pidl: PCUIDLIST_RELATIVE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertItem(self, pidl) -proc IsMenuMessage*(self: ptr IMenuBand, pmsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsMenuMessage(self, pmsg) -proc TranslateMenuMessage*(self: ptr IMenuBand, pmsg: ptr MSG, plRet: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateMenuMessage(self, pmsg, plRet) -proc SetCascade*(self: ptr IFolderBandPriv, fCascade: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCascade(self, fCascade) -proc SetAccelerators*(self: ptr IFolderBandPriv, fAccelerators: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAccelerators(self, fAccelerators) -proc SetNoIcons*(self: ptr IFolderBandPriv, fNoIcons: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNoIcons(self, fNoIcons) -proc SetNoText*(self: ptr IFolderBandPriv, fNoText: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNoText(self, fNoText) -proc GetCheckState*(self: ptr IRegTreeItem, pbCheck: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCheckState(self, pbCheck) -proc SetCheckState*(self: ptr IRegTreeItem, bCheck: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCheckState(self, bCheck) -proc RecompressImage*(self: ptr IImageRecompress, psi: ptr IShellItem, cx: int32, cy: int32, iQuality: int32, pstg: ptr IStorage, ppstrmOut: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RecompressImage(self, psi, cx, cy, iQuality, pstg, ppstrmOut) -proc SetClient*(self: ptr IDeskBar, punkClient: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClient(self, punkClient) -proc GetClient*(self: ptr IDeskBar, ppunkClient: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClient(self, ppunkClient) -proc OnPosRectChangeDB*(self: ptr IDeskBar, prc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPosRectChangeDB(self, prc) -proc Popup*(self: ptr IMenuPopup, ppt: ptr POINTL, prcExclude: ptr RECTL, dwFlags: MP_POPUPFLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Popup(self, ppt, prcExclude, dwFlags) -proc OnSelect*(self: ptr IMenuPopup, dwSelectType: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSelect(self, dwSelectType) -proc SetSubMenu*(self: ptr IMenuPopup, pmp: ptr IMenuPopup, fSet: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSubMenu(self, pmp, fSet) -proc GetAppName*(self: ptr IFileIsInUse, ppszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAppName(self, ppszName) -proc GetUsage*(self: ptr IFileIsInUse, pfut: ptr FILE_USAGE_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUsage(self, pfut) -proc GetCapabilities*(self: ptr IFileIsInUse, pdwCapFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCapabilities(self, pdwCapFlags) -proc GetSwitchToHWND*(self: ptr IFileIsInUse, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSwitchToHWND(self, phwnd) -proc CloseFile*(self: ptr IFileIsInUse): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CloseFile(self) -proc OnFileOk*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFileOk(self, pfd) -proc OnFolderChanging*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psiFolder: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFolderChanging(self, pfd, psiFolder) -proc OnFolderChange*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnFolderChange(self, pfd) -proc OnSelectionChange*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSelectionChange(self, pfd) -proc OnShareViolation*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_SHAREVIOLATION_RESPONSE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnShareViolation(self, pfd, psi, pResponse) -proc OnTypeChange*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnTypeChange(self, pfd) -proc OnOverwrite*(self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psi: ptr IShellItem, pResponse: ptr FDE_OVERWRITE_RESPONSE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnOverwrite(self, pfd, psi, pResponse) -proc SetFileTypes*(self: ptr IFileDialog, cFileTypes: UINT, rgFilterSpec: ptr COMDLG_FILTERSPEC): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileTypes(self, cFileTypes, rgFilterSpec) -proc SetFileTypeIndex*(self: ptr IFileDialog, iFileType: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileTypeIndex(self, iFileType) -proc GetFileTypeIndex*(self: ptr IFileDialog, piFileType: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileTypeIndex(self, piFileType) -proc Advise*(self: ptr IFileDialog, pfde: ptr IFileDialogEvents, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pfde, pdwCookie) -proc Unadvise*(self: ptr IFileDialog, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc SetOptions*(self: ptr IFileDialog, fos: FILEOPENDIALOGOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, fos) -proc GetOptions*(self: ptr IFileDialog, pfos: ptr FILEOPENDIALOGOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pfos) -proc SetDefaultFolder*(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultFolder(self, psi) -proc SetFolder*(self: ptr IFileDialog, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolder(self, psi) -proc GetFolder*(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolder(self, ppsi) -proc GetCurrentSelection*(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSelection(self, ppsi) -proc SetFileName*(self: ptr IFileDialog, pszName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileName(self, pszName) -proc GetFileName*(self: ptr IFileDialog, pszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileName(self, pszName) -proc SetTitle*(self: ptr IFileDialog, pszTitle: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTitle(self, pszTitle) -proc SetOkButtonLabel*(self: ptr IFileDialog, pszText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOkButtonLabel(self, pszText) -proc SetFileNameLabel*(self: ptr IFileDialog, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileNameLabel(self, pszLabel) -proc GetResult*(self: ptr IFileDialog, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResult(self, ppsi) -proc AddPlace*(self: ptr IFileDialog, psi: ptr IShellItem, fdap: FDAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPlace(self, psi, fdap) -proc SetDefaultExtension*(self: ptr IFileDialog, pszDefaultExtension: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultExtension(self, pszDefaultExtension) -proc Close*(self: ptr IFileDialog, hr: HRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, hr) -proc SetClientGuid*(self: ptr IFileDialog, guid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClientGuid(self, guid) -proc ClearClientData*(self: ptr IFileDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearClientData(self) -proc SetFilter*(self: ptr IFileDialog, pFilter: ptr IShellItemFilter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFilter(self, pFilter) -proc SetSaveAsItem*(self: ptr IFileSaveDialog, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSaveAsItem(self, psi) -proc SetProperties*(self: ptr IFileSaveDialog, pStore: ptr IPropertyStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProperties(self, pStore) -proc SetCollectedProperties*(self: ptr IFileSaveDialog, pList: ptr IPropertyDescriptionList, fAppendDefault: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCollectedProperties(self, pList, fAppendDefault) -proc GetProperties*(self: ptr IFileSaveDialog, ppStore: ptr ptr IPropertyStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperties(self, ppStore) -proc ApplyProperties*(self: ptr IFileSaveDialog, psi: ptr IShellItem, pStore: ptr IPropertyStore, hwnd: HWND, pSink: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyProperties(self, psi, pStore, hwnd, pSink) -proc GetResults*(self: ptr IFileOpenDialog, ppenum: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResults(self, ppenum) -proc GetSelectedItems*(self: ptr IFileOpenDialog, ppsai: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedItems(self, ppsai) -proc EnableOpenDropDown*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableOpenDropDown(self, dwIDCtl) -proc AddMenu*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddMenu(self, dwIDCtl, pszLabel) -proc AddPushButton*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPushButton(self, dwIDCtl, pszLabel) -proc AddComboBox*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddComboBox(self, dwIDCtl) -proc AddRadioButtonList*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddRadioButtonList(self, dwIDCtl) -proc AddCheckButton*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR, bChecked: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddCheckButton(self, dwIDCtl, pszLabel, bChecked) -proc AddEditBox*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddEditBox(self, dwIDCtl, pszText) -proc AddSeparator*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddSeparator(self, dwIDCtl) -proc AddText*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddText(self, dwIDCtl, pszText) -proc SetControlLabel*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetControlLabel(self, dwIDCtl, pszLabel) -proc GetControlState*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwState: ptr CDCONTROLSTATEF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetControlState(self, dwIDCtl, pdwState) -proc SetControlState*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwState: CDCONTROLSTATEF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetControlState(self, dwIDCtl, dwState) -proc GetEditBoxText*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, ppszText: ptr ptr WCHAR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEditBoxText(self, dwIDCtl, ppszText) -proc SetEditBoxText*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetEditBoxText(self, dwIDCtl, pszText) -proc GetCheckButtonState*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pbChecked: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCheckButtonState(self, dwIDCtl, pbChecked) -proc SetCheckButtonState*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, bChecked: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCheckButtonState(self, dwIDCtl, bChecked) -proc AddControlItem*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddControlItem(self, dwIDCtl, dwIDItem, pszLabel) -proc RemoveControlItem*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveControlItem(self, dwIDCtl, dwIDItem) -proc RemoveAllControlItems*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAllControlItems(self, dwIDCtl) -proc GetControlItemState*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pdwState: ptr CDCONTROLSTATEF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetControlItemState(self, dwIDCtl, dwIDItem, pdwState) -proc SetControlItemState*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, dwState: CDCONTROLSTATEF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetControlItemState(self, dwIDCtl, dwIDItem, dwState) -proc GetSelectedControlItem*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwIDItem: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedControlItem(self, dwIDCtl, pdwIDItem) -proc SetSelectedControlItem*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSelectedControlItem(self, dwIDCtl, dwIDItem) -proc StartVisualGroup*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartVisualGroup(self, dwIDCtl, pszLabel) -proc EndVisualGroup*(self: ptr IFileDialogCustomize): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndVisualGroup(self) -proc MakeProminent*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MakeProminent(self, dwIDCtl) -proc SetControlItemText*(self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetControlItemText(self, dwIDCtl, dwIDItem, pszLabel) -proc OnItemSelected*(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnItemSelected(self, pfdc, dwIDCtl, dwIDItem) -proc OnButtonClicked*(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnButtonClicked(self, pfdc, dwIDCtl) -proc OnCheckButtonToggled*(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD, bChecked: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnCheckButtonToggled(self, pfdc, dwIDCtl, bChecked) -proc OnControlActivating*(self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnControlActivating(self, pfdc, dwIDCtl) -proc SetCancelButtonLabel*(self: ptr IFileDialog2, pszLabel: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCancelButtonLabel(self, pszLabel) -proc SetNavigationRoot*(self: ptr IFileDialog2, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNavigationRoot(self, psi) -proc QueryCurrentDefault*(self: ptr IApplicationAssociationRegistration, pszQuery: LPCWSTR, atQueryType: ASSOCIATIONTYPE, alQueryLevel: ASSOCIATIONLEVEL, ppszAssociation: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryCurrentDefault(self, pszQuery, atQueryType, alQueryLevel, ppszAssociation) -proc QueryAppIsDefault*(self: ptr IApplicationAssociationRegistration, pszQuery: LPCWSTR, atQueryType: ASSOCIATIONTYPE, alQueryLevel: ASSOCIATIONLEVEL, pszAppRegistryName: LPCWSTR, pfDefault: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryAppIsDefault(self, pszQuery, atQueryType, alQueryLevel, pszAppRegistryName, pfDefault) -proc QueryAppIsDefaultAll*(self: ptr IApplicationAssociationRegistration, alQueryLevel: ASSOCIATIONLEVEL, pszAppRegistryName: LPCWSTR, pfDefault: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryAppIsDefaultAll(self, alQueryLevel, pszAppRegistryName, pfDefault) -proc SetAppAsDefault*(self: ptr IApplicationAssociationRegistration, pszAppRegistryName: LPCWSTR, pszSet: LPCWSTR, atSetType: ASSOCIATIONTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppAsDefault(self, pszAppRegistryName, pszSet, atSetType) -proc SetAppAsDefaultAll*(self: ptr IApplicationAssociationRegistration, pszAppRegistryName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppAsDefaultAll(self, pszAppRegistryName) -proc ClearUserAssociations*(self: ptr IApplicationAssociationRegistration): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearUserAssociations(self) -proc LaunchAdvancedAssociationUI*(self: ptr IApplicationAssociationRegistrationUI, pszAppRegistryName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LaunchAdvancedAssociationUI(self, pszAppRegistryName) -proc SetItemAlloc*(self: ptr IDelegateFolder, pmalloc: ptr IMalloc): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetItemAlloc(self, pmalloc) -proc GetFrameOptions*(self: ptr IBrowserFrameOptions, dwMask: BROWSERFRAMEOPTIONS, pdwOptions: ptr BROWSERFRAMEOPTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFrameOptions(self, dwMask, pdwOptions) -proc EvaluateNewWindow*(self: ptr INewWindowManager, pszUrl: LPCWSTR, pszName: LPCWSTR, pszUrlContext: LPCWSTR, pszFeatures: LPCWSTR, fReplace: WINBOOL, dwFlags: DWORD, dwUserActionTime: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EvaluateNewWindow(self, pszUrl, pszName, pszUrlContext, pszFeatures, fReplace, dwFlags, dwUserActionTime) -proc SetClientTitle*(self: ptr IAttachmentExecute, pszTitle: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClientTitle(self, pszTitle) -proc SetClientGuid*(self: ptr IAttachmentExecute, guid: REFGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClientGuid(self, guid) -proc SetLocalPath*(self: ptr IAttachmentExecute, pszLocalPath: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLocalPath(self, pszLocalPath) -proc SetFileName*(self: ptr IAttachmentExecute, pszFileName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileName(self, pszFileName) -proc SetSource*(self: ptr IAttachmentExecute, pszSource: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSource(self, pszSource) -proc SetReferrer*(self: ptr IAttachmentExecute, pszReferrer: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetReferrer(self, pszReferrer) -proc CheckPolicy*(self: ptr IAttachmentExecute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CheckPolicy(self) -proc Prompt*(self: ptr IAttachmentExecute, hwnd: HWND, prompt: ATTACHMENT_PROMPT, paction: ptr ATTACHMENT_ACTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Prompt(self, hwnd, prompt, paction) -proc Save*(self: ptr IAttachmentExecute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self) -proc Execute*(self: ptr IAttachmentExecute, hwnd: HWND, pszVerb: LPCWSTR, phProcess: ptr HANDLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Execute(self, hwnd, pszVerb, phProcess) -proc SaveWithUI*(self: ptr IAttachmentExecute, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveWithUI(self, hwnd) -proc ClearClientState*(self: ptr IAttachmentExecute): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearClientState(self) -proc CallbackSM*(self: ptr IShellMenuCallback, psmd: LPSMDATA, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CallbackSM(self, psmd, uMsg, wParam, lParam) -proc Initialize*(self: ptr IShellMenu, psmc: ptr IShellMenuCallback, uId: UINT, uIdAncestor: UINT, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, psmc, uId, uIdAncestor, dwFlags) -proc GetMenuInfo*(self: ptr IShellMenu, ppsmc: ptr ptr IShellMenuCallback, puId: ptr UINT, puIdAncestor: ptr UINT, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMenuInfo(self, ppsmc, puId, puIdAncestor, pdwFlags) -proc SetShellFolder*(self: ptr IShellMenu, psf: ptr IShellFolder, pidlFolder: PCIDLIST_ABSOLUTE, hKey: HKEY, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetShellFolder(self, psf, pidlFolder, hKey, dwFlags) -proc GetShellFolder*(self: ptr IShellMenu, pdwFlags: ptr DWORD, ppidl: ptr PIDLIST_ABSOLUTE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetShellFolder(self, pdwFlags, ppidl, riid, ppv) -proc SetMenu*(self: ptr IShellMenu, hmenu: HMENU, hwnd: HWND, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMenu(self, hmenu, hwnd, dwFlags) -proc GetMenu*(self: ptr IShellMenu, phmenu: ptr HMENU, phwnd: ptr HWND, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMenu(self, phmenu, phwnd, pdwFlags) -proc InvalidateItem*(self: ptr IShellMenu, psmd: LPSMDATA, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InvalidateItem(self, psmd, dwFlags) -proc GetState*(self: ptr IShellMenu, psmd: LPSMDATA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetState(self, psmd) -proc SetMenuToolbar*(self: ptr IShellMenu, punk: ptr IUnknown, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMenuToolbar(self, punk, dwFlags) -proc Run*(self: ptr IShellRunDll, pszArgs: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Run(self, pszArgs) -proc GetId*(self: ptr IKnownFolder, pkfid: ptr KNOWNFOLDERID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetId(self, pkfid) -proc GetCategory*(self: ptr IKnownFolder, pCategory: ptr KF_CATEGORY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCategory(self, pCategory) -proc GetShellItem*(self: ptr IKnownFolder, dwFlags: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetShellItem(self, dwFlags, riid, ppv) -proc GetPath*(self: ptr IKnownFolder, dwFlags: DWORD, ppszPath: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPath(self, dwFlags, ppszPath) -proc SetPath*(self: ptr IKnownFolder, dwFlags: DWORD, pszPath: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPath(self, dwFlags, pszPath) -proc GetIDList*(self: ptr IKnownFolder, dwFlags: DWORD, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIDList(self, dwFlags, ppidl) -proc GetFolderType*(self: ptr IKnownFolder, pftid: ptr FOLDERTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderType(self, pftid) -proc GetRedirectionCapabilities*(self: ptr IKnownFolder, pCapabilities: ptr KF_REDIRECTION_CAPABILITIES): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRedirectionCapabilities(self, pCapabilities) -proc GetFolderDefinition*(self: ptr IKnownFolder, pKFD: ptr KNOWNFOLDER_DEFINITION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderDefinition(self, pKFD) -proc FolderIdFromCsidl*(self: ptr IKnownFolderManager, nCsidl: int32, pfid: ptr KNOWNFOLDERID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FolderIdFromCsidl(self, nCsidl, pfid) -proc FolderIdToCsidl*(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, pnCsidl: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FolderIdToCsidl(self, rfid, pnCsidl) -proc GetFolderIds*(self: ptr IKnownFolderManager, ppKFId: ptr ptr KNOWNFOLDERID, pCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderIds(self, ppKFId, pCount) -proc GetFolder*(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, ppkf: ptr ptr IKnownFolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolder(self, rfid, ppkf) -proc GetFolderByName*(self: ptr IKnownFolderManager, pszCanonicalName: LPCWSTR, ppkf: ptr ptr IKnownFolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderByName(self, pszCanonicalName, ppkf) -proc RegisterFolder*(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, pKFD: ptr KNOWNFOLDER_DEFINITION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterFolder(self, rfid, pKFD) -proc UnregisterFolder*(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterFolder(self, rfid) -proc FindFolderFromPath*(self: ptr IKnownFolderManager, pszPath: LPCWSTR, mode: FFFP_MODE, ppkf: ptr ptr IKnownFolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFolderFromPath(self, pszPath, mode, ppkf) -proc FindFolderFromIDList*(self: ptr IKnownFolderManager, pidl: PCIDLIST_ABSOLUTE, ppkf: ptr ptr IKnownFolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFolderFromIDList(self, pidl, ppkf) -proc Redirect*(self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, hwnd: HWND, flags: KF_REDIRECT_FLAGS, pszTargetPath: LPCWSTR, cFolders: UINT, pExclusion: ptr KNOWNFOLDERID, ppszError: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Redirect(self, rfid, hwnd, flags, pszTargetPath, cFolders, pExclusion, ppszError) -proc CreateShare*(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, role: SHARE_ROLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateShare(self, dsid, role) -proc DeleteShare*(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteShare(self, dsid) -proc ShareExists*(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShareExists(self, dsid) -proc GetSharePermissions*(self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, pRole: ptr SHARE_ROLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSharePermissions(self, dsid, pRole) -proc SharePrinters*(self: ptr ISharingConfigurationManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SharePrinters(self) -proc StopSharingPrinters*(self: ptr ISharingConfigurationManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StopSharingPrinters(self) -proc ArePrintersShared*(self: ptr ISharingConfigurationManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ArePrintersShared(self) -proc AreSnapshotsAvailable*(self: ptr IPreviousVersionsInfo, pszPath: LPCWSTR, fOkToBeSlow: WINBOOL, pfAvailable: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AreSnapshotsAvailable(self, pszPath, fOkToBeSlow, pfAvailable) -proc GetItemIDList*(self: ptr IRelatedItem, ppidl: ptr PIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemIDList(self, ppidl) -proc GetItem*(self: ptr IRelatedItem, ppsi: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItem(self, ppsi) -proc GetDestinationStream*(self: ptr IDestinationStreamFactory, ppstm: ptr ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDestinationStream(self, ppstm) -proc IncludeItems*(self: ptr INewMenuClient, pflags: ptr NMCII_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IncludeItems(self, pflags) -proc SelectAndEditItem*(self: ptr INewMenuClient, pidlItem: PCIDLIST_ABSOLUTE, flags: NMCSAEI_FLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SelectAndEditItem(self, pidlItem, flags) -proc Initialize*(self: ptr IInitializeWithBindCtx, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pbc) -proc IncludeItem*(self: ptr IShellItemFilter, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IncludeItem(self, psi) -proc GetEnumFlagsForItem*(self: ptr IShellItemFilter, psi: ptr IShellItem, pgrfFlags: ptr SHCONTF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumFlagsForItem(self, psi, pgrfFlags) -proc Initialize*(self: ptr INameSpaceTreeControl, hwndParent: HWND, prc: ptr RECT, nsctsFlags: NSTCSTYLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, hwndParent, prc, nsctsFlags) -proc TreeAdvise*(self: ptr INameSpaceTreeControl, punk: ptr IUnknown, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TreeAdvise(self, punk, pdwCookie) -proc TreeUnadvise*(self: ptr INameSpaceTreeControl, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TreeUnadvise(self, dwCookie) -proc AppendRoot*(self: ptr INameSpaceTreeControl, psiRoot: ptr IShellItem, grfEnumFlags: SHCONTF, grfRootStyle: NSTCROOTSTYLE, pif: ptr IShellItemFilter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AppendRoot(self, psiRoot, grfEnumFlags, grfRootStyle, pif) -proc InsertRoot*(self: ptr INameSpaceTreeControl, iIndex: int32, psiRoot: ptr IShellItem, grfEnumFlags: SHCONTF, grfRootStyle: NSTCROOTSTYLE, pif: ptr IShellItemFilter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertRoot(self, iIndex, psiRoot, grfEnumFlags, grfRootStyle, pif) -proc RemoveRoot*(self: ptr INameSpaceTreeControl, psiRoot: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveRoot(self, psiRoot) -proc RemoveAllRoots*(self: ptr INameSpaceTreeControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAllRoots(self) -proc GetRootItems*(self: ptr INameSpaceTreeControl, ppsiaRootItems: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRootItems(self, ppsiaRootItems) -proc SetItemState*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, nstcisFlags: NSTCITEMSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetItemState(self, psi, nstcisMask, nstcisFlags) -proc GetItemState*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, pnstcisFlags: ptr NSTCITEMSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemState(self, psi, nstcisMask, pnstcisFlags) -proc GetSelectedItems*(self: ptr INameSpaceTreeControl, psiaItems: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedItems(self, psiaItems) -proc GetItemCustomState*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, piStateNumber: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemCustomState(self, psi, piStateNumber) -proc SetItemCustomState*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, iStateNumber: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetItemCustomState(self, psi, iStateNumber) -proc EnsureItemVisible*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnsureItemVisible(self, psi) -proc SetTheme*(self: ptr INameSpaceTreeControl, pszTheme: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTheme(self, pszTheme) -proc GetNextItem*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, nstcgi: NSTCGNI, ppsiNext: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextItem(self, psi, nstcgi, ppsiNext) -proc HitTest*(self: ptr INameSpaceTreeControl, ppt: ptr POINT, ppsiOut: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HitTest(self, ppt, ppsiOut) -proc GetItemRect*(self: ptr INameSpaceTreeControl, psi: ptr IShellItem, prect: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemRect(self, psi, prect) -proc CollapseAll*(self: ptr INameSpaceTreeControl): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CollapseAll(self) -proc SetControlStyle*(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, nstcsStyle: NSTCSTYLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetControlStyle(self, nstcsMask, nstcsStyle) -proc GetControlStyle*(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, pnstcsStyle: ptr NSTCSTYLE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetControlStyle(self, nstcsMask, pnstcsStyle) -proc SetControlStyle2*(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, nstcsStyle: NSTCSTYLE2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetControlStyle2(self, nstcsMask, nstcsStyle) -proc GetControlStyle2*(self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, pnstcsStyle: ptr NSTCSTYLE2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetControlStyle2(self, nstcsMask, pnstcsStyle) -proc OnItemClick*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, nstceHitTest: NSTCEHITTEST, nstceClickType: NSTCECLICKTYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnItemClick(self, psi, nstceHitTest, nstceClickType) -proc OnPropertyItemCommit*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPropertyItemCommit(self, psi) -proc OnItemStateChanging*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, nstcisState: NSTCITEMSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnItemStateChanging(self, psi, nstcisMask, nstcisState) -proc OnItemStateChanged*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, nstcisMask: NSTCITEMSTATE, nstcisState: NSTCITEMSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnItemStateChanged(self, psi, nstcisMask, nstcisState) -proc OnSelectionChanged*(self: ptr INameSpaceTreeControlEvents, psiaSelection: ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSelectionChanged(self, psiaSelection) -proc OnKeyboardInput*(self: ptr INameSpaceTreeControlEvents, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnKeyboardInput(self, uMsg, wParam, lParam) -proc OnBeforeExpand*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnBeforeExpand(self, psi) -proc OnAfterExpand*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnAfterExpand(self, psi) -proc OnBeginLabelEdit*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnBeginLabelEdit(self, psi) -proc OnEndLabelEdit*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnEndLabelEdit(self, psi) -proc OnGetToolTip*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, pszTip: LPWSTR, cchTip: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnGetToolTip(self, psi, pszTip, cchTip) -proc OnBeforeItemDelete*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnBeforeItemDelete(self, psi) -proc OnItemAdded*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnItemAdded(self, psi, fIsRoot) -proc OnItemDeleted*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnItemDeleted(self, psi, fIsRoot) -proc OnBeforeContextMenu*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnBeforeContextMenu(self, psi, riid, ppv) -proc OnAfterContextMenu*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, pcmIn: ptr IContextMenu, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnAfterContextMenu(self, psi, pcmIn, riid, ppv) -proc OnBeforeStateImageChange*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnBeforeStateImageChange(self, psi) -proc OnGetDefaultIconIndex*(self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, piDefaultIcon: ptr int32, piOpenIcon: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnGetDefaultIconIndex(self, psi, piDefaultIcon, piOpenIcon) -proc OnDragEnter*(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, fOutsideSource: WINBOOL, grfKeyState: DWORD, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDragEnter(self, psiOver, psiaData, fOutsideSource, grfKeyState, pdwEffect) -proc OnDragOver*(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, grfKeyState: DWORD, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDragOver(self, psiOver, psiaData, grfKeyState, pdwEffect) -proc OnDragPosition*(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, iNewPosition: int32, iOldPosition: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDragPosition(self, psiOver, psiaData, iNewPosition, iOldPosition) -proc OnDrop*(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, iPosition: int32, grfKeyState: DWORD, pdwEffect: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDrop(self, psiOver, psiaData, iPosition, grfKeyState, pdwEffect) -proc OnDropPosition*(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem, psiaData: ptr IShellItemArray, iNewPosition: int32, iOldPosition: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDropPosition(self, psiOver, psiaData, iNewPosition, iOldPosition) -proc OnDragLeave*(self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDragLeave(self, psiOver) -proc OnGetDefaultAccessibilityAction*(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem, pbstrDefaultAction: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnGetDefaultAccessibilityAction(self, psi, pbstrDefaultAction) -proc OnDoDefaultAccessibilityAction*(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnDoDefaultAccessibilityAction(self, psi) -proc OnGetAccessibilityRole*(self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem, pvarRole: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnGetAccessibilityRole(self, psi, pvarRole) -proc PrePaint*(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT, plres: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PrePaint(self, hdc, prc, plres) -proc PostPaint*(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PostPaint(self, hdc, prc) -proc ItemPrePaint*(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT, pnstccdItem: ptr NSTCCUSTOMDRAW, pclrText: ptr COLORREF, pclrTextBk: ptr COLORREF, plres: ptr LRESULT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ItemPrePaint(self, hdc, prc, pnstccdItem, pclrText, pclrTextBk, plres) -proc ItemPostPaint*(self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT, pnstccdItem: ptr NSTCCUSTOMDRAW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ItemPostPaint(self, hdc, prc, pnstccdItem) -proc GetFolderCapabilities*(self: ptr INameSpaceTreeControlFolderCapabilities, nfcMask: NSTCFOLDERCAPABILITIES, pnfcValue: ptr NSTCFOLDERCAPABILITIES): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderCapabilities(self, nfcMask, pnfcValue) -proc SetWindow*(self: ptr IPreviewHandler, hwnd: HWND, prc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWindow(self, hwnd, prc) -proc SetRect*(self: ptr IPreviewHandler, prc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRect(self, prc) -proc DoPreview*(self: ptr IPreviewHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoPreview(self) -proc Unload*(self: ptr IPreviewHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unload(self) -proc SetFocus*(self: ptr IPreviewHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFocus(self) -proc QueryFocus*(self: ptr IPreviewHandler, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryFocus(self, phwnd) -proc TranslateAccelerator*(self: ptr IPreviewHandler, pmsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, pmsg) -proc GetWindowContext*(self: ptr IPreviewHandlerFrame, pinfo: ptr PREVIEWHANDLERFRAMEINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindowContext(self, pinfo) -proc TranslateAccelerator*(self: ptr IPreviewHandlerFrame, pmsg: ptr MSG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateAccelerator(self, pmsg) -proc ShowDeskBand*(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowDeskBand(self, clsid) -proc HideDeskBand*(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HideDeskBand(self, clsid) -proc IsDeskBandShown*(self: ptr ITrayDeskBand, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDeskBandShown(self, clsid) -proc DeskBandRegistrationChanged*(self: ptr ITrayDeskBand): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeskBandRegistrationChanged(self) -proc CreateBand*(self: ptr IBandHost, rclsidBand: REFCLSID, fAvailable: WINBOOL, fVisible: WINBOOL, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBand(self, rclsidBand, fAvailable, fVisible, riid, ppv) -proc SetBandAvailability*(self: ptr IBandHost, rclsidBand: REFCLSID, fAvailable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBandAvailability(self, rclsidBand, fAvailable) -proc DestroyBand*(self: ptr IBandHost, rclsidBand: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DestroyBand(self, rclsidBand) -proc GetPaneState*(self: ptr IExplorerPaneVisibility, ep: REFEXPLORERPANE, peps: ptr EXPLORERPANESTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPaneState(self, ep, peps) -proc CallBack*(self: ptr IContextMenuCB, psf: ptr IShellFolder, hwndOwner: HWND, pdtobj: ptr IDataObject, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CallBack(self, psf, hwndOwner, pdtobj, uMsg, wParam, lParam) -proc SetFlags*(self: ptr IDefaultExtractIconInit, uFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFlags(self, uFlags) -proc SetKey*(self: ptr IDefaultExtractIconInit, hkey: HKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetKey(self, hkey) -proc SetNormalIcon*(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNormalIcon(self, pszFile, iIcon) -proc SetOpenIcon*(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOpenIcon(self, pszFile, iIcon) -proc SetShortcutIcon*(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetShortcutIcon(self, pszFile, iIcon) -proc SetDefaultIcon*(self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultIcon(self, pszFile, iIcon) -proc GetTitle*(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszName: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTitle(self, psiItemArray, ppszName) -proc GetIcon*(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszIcon: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIcon(self, psiItemArray, ppszIcon) -proc GetToolTip*(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszInfotip: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetToolTip(self, psiItemArray, ppszInfotip) -proc GetCanonicalName*(self: ptr IExplorerCommand, pguidCommandName: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCanonicalName(self, pguidCommandName) -proc GetState*(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, fOkToBeSlow: WINBOOL, pCmdState: ptr EXPCMDSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetState(self, psiItemArray, fOkToBeSlow, pCmdState) -proc Invoke*(self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, psiItemArray, pbc) -proc GetFlags*(self: ptr IExplorerCommand, pFlags: ptr EXPCMDFLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFlags(self, pFlags) -proc EnumSubCommands*(self: ptr IExplorerCommand, ppEnum: ptr ptr IEnumExplorerCommand): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumSubCommands(self, ppEnum) -proc GetState*(self: ptr IExplorerCommandState, psiItemArray: ptr IShellItemArray, fOkToBeSlow: WINBOOL, pCmdState: ptr EXPCMDSTATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetState(self, psiItemArray, fOkToBeSlow, pCmdState) -proc Initialize*(self: ptr IInitializeCommand, pszCommandName: LPCWSTR, ppb: ptr IPropertyBag): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pszCommandName, ppb) -proc Next*(self: ptr IEnumExplorerCommand, celt: ULONG, pUICommand: ptr ptr IExplorerCommand, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, pUICommand, pceltFetched) -proc Skip*(self: ptr IEnumExplorerCommand, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IEnumExplorerCommand): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IEnumExplorerCommand, ppenum: ptr ptr IEnumExplorerCommand): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppenum) -proc GetCommands*(self: ptr IExplorerCommandProvider, punkSite: ptr IUnknown, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCommands(self, punkSite, riid, ppv) -proc GetCommand*(self: ptr IExplorerCommandProvider, rguidCommandId: REFGUID, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCommand(self, rguidCommandId, riid, ppv) -proc Initialize*(self: ptr IInitializeNetworkFolder, pidl: PCIDLIST_ABSOLUTE, pidlTarget: PCIDLIST_ABSOLUTE, uDisplayType: UINT, pszResName: LPCWSTR, pszProvider: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pidl, pidlTarget, uDisplayType, pszResName, pszProvider) -proc Open*(self: ptr IOpenControlPanel, pszName: LPCWSTR, pszPage: LPCWSTR, punkSite: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self, pszName, pszPage, punkSite) -proc GetPath*(self: ptr IOpenControlPanel, pszName: LPCWSTR, pszPath: LPWSTR, cchPath: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPath(self, pszName, pszPath, cchPath) -proc GetCurrentView*(self: ptr IOpenControlPanel, pView: ptr CPVIEW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentView(self, pView) -proc ComputerInfoChanged*(self: ptr IComputerInfoChangeNotify): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComputerInfoChanged(self) -proc SetFindData*(self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFindData(self, pfd) -proc GetFindData*(self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFindData(self, pfd) -proc SetFileID*(self: ptr IFileSystemBindData2, liFileID: LARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFileID(self, liFileID) -proc GetFileID*(self: ptr IFileSystemBindData2, pliFileID: ptr LARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileID(self, pliFileID) -proc SetJunctionCLSID*(self: ptr IFileSystemBindData2, clsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetJunctionCLSID(self, clsid) -proc GetJunctionCLSID*(self: ptr IFileSystemBindData2, pclsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetJunctionCLSID(self, pclsid) -proc SetAppID*(self: ptr ICustomDestinationList, pszAppID: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppID(self, pszAppID) -proc BeginList*(self: ptr ICustomDestinationList, pcMinSlots: ptr UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeginList(self, pcMinSlots, riid, ppv) -proc AppendCategory*(self: ptr ICustomDestinationList, pszCategory: LPCWSTR, poa: ptr IObjectArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AppendCategory(self, pszCategory, poa) -proc AppendKnownCategory*(self: ptr ICustomDestinationList, category: KNOWNDESTCATEGORY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AppendKnownCategory(self, category) -proc AddUserTasks*(self: ptr ICustomDestinationList, poa: ptr IObjectArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddUserTasks(self, poa) -proc CommitList*(self: ptr ICustomDestinationList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CommitList(self) -proc GetRemovedDestinations*(self: ptr ICustomDestinationList, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRemovedDestinations(self, riid, ppv) -proc DeleteList*(self: ptr ICustomDestinationList, pszAppID: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteList(self, pszAppID) -proc AbortList*(self: ptr ICustomDestinationList): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AbortList(self) -proc SetAppID*(self: ptr IApplicationDestinations, pszAppID: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppID(self, pszAppID) -proc RemoveDestination*(self: ptr IApplicationDestinations, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveDestination(self, punk) -proc RemoveAllDestinations*(self: ptr IApplicationDestinations): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAllDestinations(self) -proc SetAppID*(self: ptr IApplicationDocumentLists, pszAppID: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppID(self, pszAppID) -proc GetList*(self: ptr IApplicationDocumentLists, listtype: APPDOCLISTTYPE, cItemsDesired: UINT, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetList(self, listtype, cItemsDesired, riid, ppv) -proc SetAppID*(self: ptr IObjectWithAppUserModelID, pszAppID: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAppID(self, pszAppID) -proc GetAppID*(self: ptr IObjectWithAppUserModelID, ppszAppID: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAppID(self, ppszAppID) -proc SetProgID*(self: ptr IObjectWithProgID, pszProgID: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgID(self, pszProgID) -proc GetProgID*(self: ptr IObjectWithProgID, ppszProgID: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProgID(self, ppszProgID) -proc Update*(self: ptr IUpdateIDList, pbc: ptr IBindCtx, pidlIn: PCUITEMID_CHILD, ppidlOut: ptr PITEMID_CHILD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Update(self, pbc, pidlIn, ppidlOut) -proc RunGadget*(self: ptr IDesktopGadget, gadgetPath: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RunGadget(self, gadgetPath) -proc SetWallpaper*(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWallpaper(self, monitorID, wallpaper) -proc GetWallpaper*(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWallpaper(self, monitorID, wallpaper) -proc GetMonitorDevicePathAt*(self: ptr IDesktopWallpaper, monitorIndex: UINT, monitorID: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMonitorDevicePathAt(self, monitorIndex, monitorID) -proc GetMonitorDevicePathCount*(self: ptr IDesktopWallpaper, count: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMonitorDevicePathCount(self, count) -proc GetMonitorRECT*(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, displayRect: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMonitorRECT(self, monitorID, displayRect) -proc mSetBackgroundColor*(self: ptr IDesktopWallpaper, color: COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBackgroundColor(self, color) -proc GetBackgroundColor*(self: ptr IDesktopWallpaper, color: ptr COLORREF): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBackgroundColor(self, color) -proc SetPosition*(self: ptr IDesktopWallpaper, position: DESKTOP_WALLPAPER_POSITION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPosition(self, position) -proc GetPosition*(self: ptr IDesktopWallpaper, position: ptr DESKTOP_WALLPAPER_POSITION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPosition(self, position) -proc SetSlideshow*(self: ptr IDesktopWallpaper, items: ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSlideshow(self, items) -proc GetSlideshow*(self: ptr IDesktopWallpaper, items: ptr ptr IShellItemArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSlideshow(self, items) -proc SetSlideshowOptions*(self: ptr IDesktopWallpaper, options: DESKTOP_SLIDESHOW_OPTIONS, slideshowTick: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSlideshowOptions(self, options, slideshowTick) -proc GetSlideshowOptions*(self: ptr IDesktopWallpaper, options: ptr DESKTOP_SLIDESHOW_OPTIONS, slideshowTick: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSlideshowOptions(self, options, slideshowTick) -proc AdvanceSlideshow*(self: ptr IDesktopWallpaper, monitorID: LPCWSTR, direction: DESKTOP_SLIDESHOW_DIRECTION): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AdvanceSlideshow(self, monitorID, direction) -proc GetStatus*(self: ptr IDesktopWallpaper, state: ptr DESKTOP_SLIDESHOW_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStatus(self, state) -proc Enable*(self: ptr IDesktopWallpaper, enable: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enable(self, enable) -proc IsMember*(self: ptr IHomeGroup, member: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsMember(self, member) -proc ShowSharingWizard*(self: ptr IHomeGroup, owner: HWND, sharingchoices: ptr HOMEGROUPSHARINGCHOICES): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowSharingWizard(self, owner, sharingchoices) -proc Initialize*(self: ptr IInitializeWithPropertyStore, pps: ptr IPropertyStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pps) -proc GetResults*(self: ptr IOpenSearchSource, hwnd: HWND, pszQuery: LPCWSTR, dwStartIndex: DWORD, dwCount: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResults(self, hwnd, pszQuery, dwStartIndex, dwCount, riid, ppv) -proc LoadLibraryFromItem*(self: ptr IShellLibrary, psiLibrary: ptr IShellItem, grfMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadLibraryFromItem(self, psiLibrary, grfMode) -proc LoadLibraryFromKnownFolder*(self: ptr IShellLibrary, kfidLibrary: REFKNOWNFOLDERID, grfMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadLibraryFromKnownFolder(self, kfidLibrary, grfMode) -proc AddFolder*(self: ptr IShellLibrary, psiLocation: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddFolder(self, psiLocation) -proc RemoveFolder*(self: ptr IShellLibrary, psiLocation: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFolder(self, psiLocation) -proc GetFolders*(self: ptr IShellLibrary, lff: LIBRARYFOLDERFILTER, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolders(self, lff, riid, ppv) -proc ResolveFolder*(self: ptr IShellLibrary, psiFolderToResolve: ptr IShellItem, dwTimeout: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ResolveFolder(self, psiFolderToResolve, dwTimeout, riid, ppv) -proc GetDefaultSaveFolder*(self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDefaultSaveFolder(self, dsft, riid, ppv) -proc SetDefaultSaveFolder*(self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, psi: ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDefaultSaveFolder(self, dsft, psi) -proc GetOptions*(self: ptr IShellLibrary, plofOptions: ptr LIBRARYOPTIONFLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, plofOptions) -proc SetOptions*(self: ptr IShellLibrary, lofMask: LIBRARYOPTIONFLAGS, lofOptions: LIBRARYOPTIONFLAGS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, lofMask, lofOptions) -proc GetFolderType*(self: ptr IShellLibrary, pftid: ptr FOLDERTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolderType(self, pftid) -proc SetFolderType*(self: ptr IShellLibrary, ftid: REFFOLDERTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolderType(self, ftid) -proc GetIcon*(self: ptr IShellLibrary, ppszIcon: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIcon(self, ppszIcon) -proc SetIcon*(self: ptr IShellLibrary, pszIcon: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIcon(self, pszIcon) -proc Commit*(self: ptr IShellLibrary): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self) -proc Save*(self: ptr IShellLibrary, psiFolderToSaveIn: ptr IShellItem, pszLibraryName: LPCWSTR, lsf: LIBRARYSAVEFLAGS, ppsiSavedTo: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Save(self, psiFolderToSaveIn, pszLibraryName, lsf, ppsiSavedTo) -proc SaveInKnownFolder*(self: ptr IShellLibrary, kfidToSaveIn: REFKNOWNFOLDERID, pszLibraryName: LPCWSTR, lsf: LIBRARYSAVEFLAGS, ppsiSavedTo: ptr ptr IShellItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SaveInKnownFolder(self, kfidToSaveIn, pszLibraryName, lsf, ppsiSavedTo) -proc OnPlaybackManagerEvent*(self: ptr IPlaybackManagerEvents, dwSessionId: DWORD, mediaEvent: PBM_EVENT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnPlaybackManagerEvent(self, dwSessionId, mediaEvent) -proc Advise*(self: ptr IPlaybackManager, `type`: PBM_SESSION_TYPE, pEvents: ptr IPlaybackManagerEvents, pdwSessionId: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, `type`, pEvents, pdwSessionId) -proc Unadvise*(self: ptr IPlaybackManager, dwSessionId: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwSessionId) -proc ChangeSessionState*(self: ptr IPlaybackManager, dwSessionId: DWORD, state: PBM_PLAY_STATE, mute: PBM_MUTE_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ChangeSessionState(self, dwSessionId, state, mute) -proc Initialize*(self: ptr IDefaultFolderMenuInitialize, hwnd: HWND, pcmcb: ptr IContextMenuCB, pidlFolder: PCIDLIST_ABSOLUTE, psf: ptr IShellFolder, cidl: UINT, apidl: PCUITEMID_CHILD_ARRAY, punkAssociation: ptr IUnknown, cKeys: UINT, aKeys: ptr HKEY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, hwnd, pcmcb, pidlFolder, psf, cidl, apidl, punkAssociation, cKeys, aKeys) -proc SetMenuRestrictions*(self: ptr IDefaultFolderMenuInitialize, dfmrValues: DEFAULT_FOLDER_MENU_RESTRICTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMenuRestrictions(self, dfmrValues) -proc GetMenuRestrictions*(self: ptr IDefaultFolderMenuInitialize, dfmrMask: DEFAULT_FOLDER_MENU_RESTRICTIONS, pdfmrValues: ptr DEFAULT_FOLDER_MENU_RESTRICTIONS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMenuRestrictions(self, dfmrMask, pdfmrValues) -proc SetHandlerClsid*(self: ptr IDefaultFolderMenuInitialize, rclsid: REFCLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetHandlerClsid(self, rclsid) -proc ActivateApplication*(self: ptr IApplicationActivationManager, appUserModelId: LPCWSTR, arguments: LPCWSTR, options: ACTIVATEOPTIONS, processId: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateApplication(self, appUserModelId, arguments, options, processId) -proc ActivateForFile*(self: ptr IApplicationActivationManager, appUserModelId: LPCWSTR, itemArray: ptr IShellItemArray, verb: LPCWSTR, processId: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateForFile(self, appUserModelId, itemArray, verb, processId) -proc ActivateForProtocol*(self: ptr IApplicationActivationManager, appUserModelId: LPCWSTR, itemArray: ptr IShellItemArray, processId: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateForProtocol(self, appUserModelId, itemArray, processId) -proc SupportsSelection*(self: ptr IAssocHandlerInvoker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SupportsSelection(self) -proc Invoke*(self: ptr IAssocHandlerInvoker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self) -proc GetName*(self: ptr IAssocHandler, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName(self, ppsz) -proc GetUIName*(self: ptr IAssocHandler, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUIName(self, ppsz) -proc GetIconLocation*(self: ptr IAssocHandler, ppszPath: ptr LPWSTR, pIndex: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconLocation(self, ppszPath, pIndex) -proc IsRecommended*(self: ptr IAssocHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsRecommended(self) -proc MakeDefault*(self: ptr IAssocHandler, pszDescription: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MakeDefault(self, pszDescription) -proc Invoke*(self: ptr IAssocHandler, pdo: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self, pdo) -proc CreateInvoker*(self: ptr IAssocHandler, pdo: ptr IDataObject, ppInvoker: ptr ptr IAssocHandlerInvoker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInvoker(self, pdo, ppInvoker) -proc Next*(self: ptr IEnumAssocHandlers, celt: ULONG, rgelt: ptr ptr IAssocHandler, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgelt, pceltFetched) -proc GetDataObject*(self: ptr IDataObjectProvider, dataObject: ptr ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDataObject(self, dataObject) -proc SetDataObject*(self: ptr IDataObjectProvider, dataObject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDataObject(self, dataObject) -proc GetForWindow*(self: ptr IDataTransferManagerInterop, appWindow: HWND, riid: REFIID, dataTransferManager: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetForWindow(self, appWindow, riid, dataTransferManager) -proc ShowShareUIForWindow*(self: ptr IDataTransferManagerInterop, appWindow: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowShareUIForWindow(self, appWindow) -proc Showing*(self: ptr IFrameworkInputPaneHandler, prcInputPaneScreenLocation: ptr RECT, fEnsureFocusedElementInView: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Showing(self, prcInputPaneScreenLocation, fEnsureFocusedElementInView) -proc Hiding*(self: ptr IFrameworkInputPaneHandler, fEnsureFocusedElementInView: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Hiding(self, fEnsureFocusedElementInView) -proc Advise*(self: ptr IFrameworkInputPane, pWindow: ptr IUnknown, pHandler: ptr IFrameworkInputPaneHandler, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pWindow, pHandler, pdwCookie) -proc AdviseWithHWND*(self: ptr IFrameworkInputPane, hwnd: HWND, pHandler: ptr IFrameworkInputPaneHandler, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AdviseWithHWND(self, hwnd, pHandler, pdwCookie) -proc Unadvise*(self: ptr IFrameworkInputPane, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc Location*(self: ptr IFrameworkInputPane, prcInputPaneScreenLocation: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Location(self, prcInputPaneScreenLocation) -proc GetSearchWindow*(self: ptr ISearchableApplication, hwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSearchWindow(self, hwnd) -proc Undocked*(self: ptr IAccessibilityDockingServiceCallback, undockReason: UNDOCK_REASON): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Undocked(self, undockReason) -proc GetAvailableSize*(self: ptr IAccessibilityDockingService, hMonitor: HMONITOR, pcxFixed: ptr UINT, pcyMax: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAvailableSize(self, hMonitor, pcxFixed, pcyMax) -proc DockWindow*(self: ptr IAccessibilityDockingService, hwnd: HWND, hMonitor: HMONITOR, cyRequested: UINT, pCallback: ptr IAccessibilityDockingServiceCallback): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DockWindow(self, hwnd, hMonitor, cyRequested, pCallback) -proc UndockWindow*(self: ptr IAccessibilityDockingService, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UndockWindow(self, hwnd) -proc AppVisibilityOnMonitorChanged*(self: ptr IAppVisibilityEvents, hMonitor: HMONITOR, previousMode: MONITOR_APP_VISIBILITY, currentMode: MONITOR_APP_VISIBILITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AppVisibilityOnMonitorChanged(self, hMonitor, previousMode, currentMode) -proc LauncherVisibilityChange*(self: ptr IAppVisibilityEvents, currentVisibleState: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LauncherVisibilityChange(self, currentVisibleState) -proc GetAppVisibilityOnMonitor*(self: ptr IAppVisibility, hMonitor: HMONITOR, pMode: ptr MONITOR_APP_VISIBILITY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAppVisibilityOnMonitor(self, hMonitor, pMode) -proc IsLauncherVisible*(self: ptr IAppVisibility, pfVisible: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLauncherVisible(self, pfVisible) -proc Advise*(self: ptr IAppVisibility, pCallback: ptr IAppVisibilityEvents, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Advise(self, pCallback, pdwCookie) -proc Unadvise*(self: ptr IAppVisibility, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Unadvise(self, dwCookie) -proc OnStateChanged*(self: ptr IPackageExecutionStateChangeNotification, pszPackageFullName: LPCWSTR, pesNewState: PACKAGE_EXECUTION_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnStateChanged(self, pszPackageFullName, pesNewState) -proc EnableDebugging*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, debuggerCommandLine: LPCWSTR, environment: PZZWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnableDebugging(self, packageFullName, debuggerCommandLine, environment) -proc DisableDebugging*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DisableDebugging(self, packageFullName) -proc Suspend*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Suspend(self, packageFullName) -proc Resume*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resume(self, packageFullName) -proc TerminateAllProcesses*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TerminateAllProcesses(self, packageFullName) -proc SetTargetSessionId*(self: ptr IPackageDebugSettings, sessionId: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTargetSessionId(self, sessionId) -proc EnumerateBackgroundTasks*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, taskCount: ptr ULONG, taskIds: ptr LPCGUID, taskNames: ptr ptr LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnumerateBackgroundTasks(self, packageFullName, taskCount, taskIds, taskNames) -proc ActivateBackgroundTask*(self: ptr IPackageDebugSettings, taskId: LPCGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ActivateBackgroundTask(self, taskId) -proc StartServicing*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartServicing(self, packageFullName) -proc StopServicing*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StopServicing(self, packageFullName) -proc StartSessionRedirection*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, sessionId: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartSessionRedirection(self, packageFullName, sessionId) -proc StopSessionRedirection*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StopSessionRedirection(self, packageFullName) -proc GetPackageExecutionState*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, packageExecutionState: ptr PACKAGE_EXECUTION_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPackageExecutionState(self, packageFullName, packageExecutionState) -proc RegisterForPackageStateChanges*(self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, pPackageExecutionStateChangeNotification: ptr IPackageExecutionStateChangeNotification, pdwCookie: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterForPackageStateChanges(self, packageFullName, pPackageExecutionStateChangeNotification, pdwCookie) -proc UnregisterForPackageStateChanges*(self: ptr IPackageDebugSettings, dwCookie: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UnregisterForPackageStateChanges(self, dwCookie) -proc GetValue*(self: ptr IExecuteCommandApplicationHostEnvironment, pahe: ptr AHE_TYPE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetValue(self, pahe) -proc GetUIMode*(self: ptr IExecuteCommandHost, pUIMode: ptr EC_HOST_UI_MODE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUIMode(self, pUIMode) -proc SetNativeDisplaySize*(self: ptr IApplicationDesignModeSettings, sizeNativeDisplay: SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetNativeDisplaySize(self, sizeNativeDisplay) -proc SetScaleFactor*(self: ptr IApplicationDesignModeSettings, scaleFactor: DEVICE_SCALE_FACTOR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScaleFactor(self, scaleFactor) -proc SetApplicationViewState*(self: ptr IApplicationDesignModeSettings, viewState: APPLICATION_VIEW_STATE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetApplicationViewState(self, viewState) -proc ComputeApplicationSize*(self: ptr IApplicationDesignModeSettings, psizeApplication: ptr SIZE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ComputeApplicationSize(self, psizeApplication) -proc IsApplicationViewStateSupported*(self: ptr IApplicationDesignModeSettings, viewState: APPLICATION_VIEW_STATE, sizeNativeDisplay: SIZE, scaleFactor: DEVICE_SCALE_FACTOR, pfSupported: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsApplicationViewStateSupported(self, viewState, sizeNativeDisplay, scaleFactor, pfSupported) -proc TriggerEdgeGesture*(self: ptr IApplicationDesignModeSettings, edgeGestureKind: EDGE_GESTURE_KIND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TriggerEdgeGesture(self, edgeGestureKind) -proc Initialize*(self: ptr IInitializeWithWindow, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, hwnd) -proc GetApplicationDisplayName*(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetApplicationDisplayName(self, value) -proc GetApplicationPublisher*(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetApplicationPublisher(self, value) -proc GetApplicationIconReference*(self: ptr IHandlerInfo, value: ptr LPWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetApplicationIconReference(self, value) -proc BeforeCoCreateInstance*(self: ptr IHandlerActivationHost, clsidHandler: REFCLSID, itemsBeingActivated: ptr IShellItemArray, handlerInfo: ptr IHandlerInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeforeCoCreateInstance(self, clsidHandler, itemsBeingActivated, handlerInfo) -proc BeforeCreateProcess*(self: ptr IHandlerActivationHost, applicationPath: LPCWSTR, commandLine: LPCWSTR, handlerInfo: ptr IHandlerInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BeforeCreateProcess(self, applicationPath, commandLine, handlerInfo) -proc GetIconLocation*(self: ptr IExtractIconA, uFlags: UINT, pszIconFile: PSTR, cchMax: UINT, piIndex: ptr int32, pwFlags: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconLocation(self, uFlags, pszIconFile, cchMax, piIndex, pwFlags) -proc Extract*(self: ptr IExtractIconA, pszFile: PCSTR, nIconIndex: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Extract(self, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize) -proc GetIconLocation*(self: ptr IExtractIconW, uFlags: UINT, pszIconFile: PWSTR, cchMax: UINT, piIndex: ptr int32, pwFlags: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconLocation(self, uFlags, pszIconFile, cchMax, piIndex, pwFlags) -proc Extract*(self: ptr IExtractIconW, pszFile: PCWSTR, nIconIndex: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Extract(self, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize) -proc IsMemberOf*(self: ptr IShellIconOverlayIdentifier, pwszPath: PCWSTR, dwAttrib: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsMemberOf(self, pwszPath, dwAttrib) -proc GetOverlayInfo*(self: ptr IShellIconOverlayIdentifier, pwszIconFile: PWSTR, cchMax: int32, pIndex: ptr int32, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOverlayInfo(self, pwszIconFile, cchMax, pIndex, pdwFlags) -proc GetPriority*(self: ptr IShellIconOverlayIdentifier, pIPriority: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPriority(self, pIPriority) -proc GetFileOverlayInfo*(self: ptr IShellIconOverlayManager, pwszPath: PCWSTR, dwAttrib: DWORD, pIndex: ptr int32, dwflags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileOverlayInfo(self, pwszPath, dwAttrib, pIndex, dwflags) -proc GetReservedOverlayInfo*(self: ptr IShellIconOverlayManager, pwszPath: PCWSTR, dwAttrib: DWORD, pIndex: ptr int32, dwflags: DWORD, iReservedID: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetReservedOverlayInfo(self, pwszPath, dwAttrib, pIndex, dwflags, iReservedID) -proc RefreshOverlayImages*(self: ptr IShellIconOverlayManager, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RefreshOverlayImages(self, dwFlags) -proc LoadNonloadedOverlayIdentifiers*(self: ptr IShellIconOverlayManager): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.LoadNonloadedOverlayIdentifiers(self) -proc OverlayIndexFromImageIndex*(self: ptr IShellIconOverlayManager, iImage: int32, piIndex: ptr int32, fAdd: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OverlayIndexFromImageIndex(self, iImage, piIndex, fAdd) -proc GetOverlayIndex*(self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIndex: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOverlayIndex(self, pidl, pIndex) -proc GetOverlayIconIndex*(self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIconIndex: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOverlayIconIndex(self, pidl, pIconIndex) -proc Execute*(self: ptr IShellExecuteHookA, pei: LPSHELLEXECUTEINFOA): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Execute(self, pei) -proc Execute*(self: ptr IShellExecuteHookW, pei: LPSHELLEXECUTEINFOW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Execute(self, pei) -proc Translate*(self: ptr IURLSearchHook, pwszSearchURL: PWSTR, cchBufferSize: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Translate(self, pwszSearchURL, cchBufferSize) -proc GetSearchUrl*(self: ptr ISearchContext, pbstrSearchUrl: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSearchUrl(self, pbstrSearchUrl) -proc GetSearchText*(self: ptr ISearchContext, pbstrSearchText: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSearchText(self, pbstrSearchText) -proc GetSearchStyle*(self: ptr ISearchContext, pdwSearchStyle: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSearchStyle(self, pdwSearchStyle) -proc TranslateWithSearchContext*(self: ptr IURLSearchHook2, pwszSearchURL: PWSTR, cchBufferSize: DWORD, pSearchContext: ptr ISearchContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.TranslateWithSearchContext(self, pwszSearchURL, cchBufferSize, pSearchContext) -proc SetReferent*(self: ptr INewShortcutHookA, pcszReferent: PCSTR, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetReferent(self, pcszReferent, hwnd) -proc GetReferent*(self: ptr INewShortcutHookA, pszReferent: PSTR, cchReferent: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetReferent(self, pszReferent, cchReferent) -proc SetFolder*(self: ptr INewShortcutHookA, pcszFolder: PCSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolder(self, pcszFolder) -proc GetFolder*(self: ptr INewShortcutHookA, pszFolder: PSTR, cchFolder: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolder(self, pszFolder, cchFolder) -proc GetName*(self: ptr INewShortcutHookA, pszName: PSTR, cchName: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName(self, pszName, cchName) -proc GetExtension*(self: ptr INewShortcutHookA, pszExtension: PSTR, cchExtension: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtension(self, pszExtension, cchExtension) -proc SetReferent*(self: ptr INewShortcutHookW, pcszReferent: PCWSTR, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetReferent(self, pcszReferent, hwnd) -proc GetReferent*(self: ptr INewShortcutHookW, pszReferent: PWSTR, cchReferent: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetReferent(self, pszReferent, cchReferent) -proc SetFolder*(self: ptr INewShortcutHookW, pcszFolder: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFolder(self, pcszFolder) -proc GetFolder*(self: ptr INewShortcutHookW, pszFolder: PWSTR, cchFolder: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFolder(self, pszFolder, cchFolder) -proc GetName*(self: ptr INewShortcutHookW, pszName: PWSTR, cchName: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetName(self, pszName, cchName) -proc GetExtension*(self: ptr INewShortcutHookW, pszExtension: PWSTR, cchExtension: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExtension(self, pszExtension, cchExtension) -proc CopyCallback*(self: ptr ICopyHookA, hwnd: HWND, wFunc: UINT, wFlags: UINT, pszSrcFile: PCSTR, dwSrcAttribs: DWORD, pszDestFile: PCSTR, dwDestAttribs: DWORD): UINT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyCallback(self, hwnd, wFunc, wFlags, pszSrcFile, dwSrcAttribs, pszDestFile, dwDestAttribs) -proc CopyCallback*(self: ptr ICopyHookW, hwnd: HWND, wFunc: UINT, wFlags: UINT, pszSrcFile: PCWSTR, dwSrcAttribs: DWORD, pszDestFile: PCWSTR, dwDestAttribs: DWORD): UINT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyCallback(self, hwnd, wFunc, wFlags, pszSrcFile, dwSrcAttribs, pszDestFile, dwDestAttribs) -proc SetPinnedWindow*(self: ptr IFileViewerSite, hwnd: HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPinnedWindow(self, hwnd) -proc GetPinnedWindow*(self: ptr IFileViewerSite, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPinnedWindow(self, phwnd) -proc ShowInitialize*(self: ptr IFileViewerA, lpfsi: LPFILEVIEWERSITE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowInitialize(self, lpfsi) -proc Show*(self: ptr IFileViewerA, pvsi: LPFVSHOWINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, pvsi) -proc PrintTo*(self: ptr IFileViewerA, pszDriver: PSTR, fSuppressUI: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PrintTo(self, pszDriver, fSuppressUI) -proc ShowInitialize*(self: ptr IFileViewerW, lpfsi: LPFILEVIEWERSITE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowInitialize(self, lpfsi) -proc Show*(self: ptr IFileViewerW, pvsi: LPFVSHOWINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Show(self, pvsi) -proc PrintTo*(self: ptr IFileViewerW, pszDriver: PWSTR, fSuppressUI: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PrintTo(self, pszDriver, fSuppressUI) -proc GetDetailsOf*(self: ptr IShellDetails, pidl: PCUITEMID_CHILD, iColumn: UINT, pDetails: ptr SHELLDETAILS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDetailsOf(self, pidl, iColumn, pDetails) -proc ColumnClick*(self: ptr IShellDetails, iColumn: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ColumnClick(self, iColumn) -proc Append*(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Append(self, punk) -proc Remove*(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Remove(self, punk) -proc GetDirectory*(self: ptr ICurrentWorkingDirectory, pwzPath: PWSTR, cchSize: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDirectory(self, pwzPath, cchSize) -proc SetDirectory*(self: ptr ICurrentWorkingDirectory, pwzPath: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDirectory(self, pwzPath) -proc Expand*(self: ptr IACList, pszExpand: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Expand(self, pszExpand) -proc SetOptions*(self: ptr IACList2, dwFlag: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetOptions(self, dwFlag) -proc GetOptions*(self: ptr IACList2, pdwFlag: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOptions(self, pdwFlag) -proc StartProgressDialog*(self: ptr IProgressDialog, hwndParent: HWND, punkEnableModless: ptr IUnknown, dwFlags: DWORD, pvResevered: LPCVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartProgressDialog(self, hwndParent, punkEnableModless, dwFlags, pvResevered) -proc StopProgressDialog*(self: ptr IProgressDialog): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StopProgressDialog(self) -proc SetTitle*(self: ptr IProgressDialog, pwzTitle: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTitle(self, pwzTitle) -proc SetAnimation*(self: ptr IProgressDialog, hInstAnimation: HINSTANCE, idAnimation: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAnimation(self, hInstAnimation, idAnimation) -proc HasUserCancelled*(self: ptr IProgressDialog): WINBOOL {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasUserCancelled(self) -proc SetProgress*(self: ptr IProgressDialog, dwCompleted: DWORD, dwTotal: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgress(self, dwCompleted, dwTotal) -proc SetProgress64*(self: ptr IProgressDialog, ullCompleted: ULONGLONG, ullTotal: ULONGLONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetProgress64(self, ullCompleted, ullTotal) -proc SetLine*(self: ptr IProgressDialog, dwLineNum: DWORD, pwzString: PCWSTR, fCompactPath: WINBOOL, pvResevered: LPCVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetLine(self, dwLineNum, pwzString, fCompactPath, pvResevered) -proc SetCancelMsg*(self: ptr IProgressDialog, pwzCancelMsg: PCWSTR, pvResevered: LPCVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCancelMsg(self, pwzCancelMsg, pvResevered) -proc Timer*(self: ptr IProgressDialog, dwTimerAction: DWORD, pvResevered: LPCVOID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Timer(self, dwTimerAction, pvResevered) -proc GetBorderDW*(self: ptr IDockingWindowSite, punkObj: ptr IUnknown, prcBorder: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBorderDW(self, punkObj, prcBorder) -proc RequestBorderSpaceDW*(self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RequestBorderSpaceDW(self, punkObj, pbw) -proc SetBorderSpaceDW*(self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBorderSpaceDW(self, punkObj, pbw) -proc AddToolbar*(self: ptr IDockingWindowFrame, punkSrc: ptr IUnknown, pwszItem: PCWSTR, dwAddFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddToolbar(self, punkSrc, pwszItem, dwAddFlags) -proc RemoveToolbar*(self: ptr IDockingWindowFrame, punkSrc: ptr IUnknown, dwRemoveFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveToolbar(self, punkSrc, dwRemoveFlags) -proc FindToolbar*(self: ptr IDockingWindowFrame, pwszItem: PCWSTR, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindToolbar(self, pwszItem, riid, ppv) -proc CaptureThumbnail*(self: ptr IThumbnailCapture, pMaxSize: ptr SIZE, pHTMLDoc2: ptr IUnknown, phbmThumbnail: ptr HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CaptureThumbnail(self, pMaxSize, pHTMLDoc2, phbmThumbnail) -proc Reset*(self: ptr IEnumShellImageStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Next*(self: ptr IEnumShellImageStore, celt: ULONG, prgElt: ptr PENUMSHELLIMAGESTOREDATA, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, prgElt, pceltFetched) -proc Skip*(self: ptr IEnumShellImageStore, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Clone*(self: ptr IEnumShellImageStore, ppEnum: ptr ptr IEnumShellImageStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppEnum) -proc Open*(self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Open(self, dwMode, pdwLock) -proc Create*(self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Create(self, dwMode, pdwLock) -proc ReleaseLock*(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseLock(self, pdwLock) -proc Close*(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self, pdwLock) -proc Commit*(self: ptr IShellImageStore, pdwLock: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self, pdwLock) -proc IsLocked*(self: ptr IShellImageStore): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsLocked(self) -proc GetMode*(self: ptr IShellImageStore, pdwMode: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMode(self, pdwMode) -proc GetCapabilities*(self: ptr IShellImageStore, pdwCapMask: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCapabilities(self, pdwCapMask) -proc AddEntry*(self: ptr IShellImageStore, pszName: PCWSTR, pftTimeStamp: ptr FILETIME, dwMode: DWORD, hImage: HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddEntry(self, pszName, pftTimeStamp, dwMode, hImage) -proc GetEntry*(self: ptr IShellImageStore, pszName: PCWSTR, dwMode: DWORD, phImage: ptr HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEntry(self, pszName, dwMode, phImage) -proc DeleteEntry*(self: ptr IShellImageStore, pszName: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteEntry(self, pszName) -proc IsEntryInStore*(self: ptr IShellImageStore, pszName: PCWSTR, pftTimeStamp: ptr FILETIME): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsEntryInStore(self, pszName, pftTimeStamp) -proc Enum*(self: ptr IShellImageStore, ppEnum: ptr LPENUMSHELLIMAGESTORE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Enum(self, ppEnum) -proc InitializeSFB*(self: ptr IShellFolderBand, psf: ptr IShellFolder, pidl: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeSFB(self, psf, pidl) -proc SetBandInfoSFB*(self: ptr IShellFolderBand, pbi: PBANDINFOSFB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBandInfoSFB(self, pbi) -proc GetBandInfoSFB*(self: ptr IShellFolderBand, pbi: PBANDINFOSFB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBandInfoSFB(self, pbi) -proc SetDeskBarSite*(self: ptr IDeskBarClient, punkSite: ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDeskBarSite(self, punkSite) -proc SetModeDBC*(self: ptr IDeskBarClient, dwMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetModeDBC(self, dwMode) -proc UIActivateDBC*(self: ptr IDeskBarClient, dwState: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UIActivateDBC(self, dwState) -proc GetSize*(self: ptr IDeskBarClient, dwWhich: DWORD, prc: LPRECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, dwWhich, prc) -proc ApplyChanges*(self: ptr IActiveDesktop, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ApplyChanges(self, dwFlags) -proc GetWallpaper*(self: ptr IActiveDesktop, pwszWallpaper: PWSTR, cchWallpaper: UINT, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWallpaper(self, pwszWallpaper, cchWallpaper, dwFlags) -proc SetWallpaper*(self: ptr IActiveDesktop, pwszWallpaper: PCWSTR, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWallpaper(self, pwszWallpaper, dwReserved) -proc GetWallpaperOptions*(self: ptr IActiveDesktop, pwpo: LPWALLPAPEROPT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWallpaperOptions(self, pwpo, dwReserved) -proc SetWallpaperOptions*(self: ptr IActiveDesktop, pwpo: LPCWALLPAPEROPT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWallpaperOptions(self, pwpo, dwReserved) -proc GetPattern*(self: ptr IActiveDesktop, pwszPattern: PWSTR, cchPattern: UINT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPattern(self, pwszPattern, cchPattern, dwReserved) -proc SetPattern*(self: ptr IActiveDesktop, pwszPattern: PCWSTR, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPattern(self, pwszPattern, dwReserved) -proc GetDesktopItemOptions*(self: ptr IActiveDesktop, pco: LPCOMPONENTSOPT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDesktopItemOptions(self, pco, dwReserved) -proc SetDesktopItemOptions*(self: ptr IActiveDesktop, pco: LPCCOMPONENTSOPT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDesktopItemOptions(self, pco, dwReserved) -proc AddDesktopItem*(self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddDesktopItem(self, pcomp, dwReserved) -proc AddDesktopItemWithUI*(self: ptr IActiveDesktop, hwnd: HWND, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddDesktopItemWithUI(self, hwnd, pcomp, dwReserved) -proc ModifyDesktopItem*(self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ModifyDesktopItem(self, pcomp, dwFlags) -proc RemoveDesktopItem*(self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveDesktopItem(self, pcomp, dwReserved) -proc GetDesktopItemCount*(self: ptr IActiveDesktop, pcItems: ptr int32, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDesktopItemCount(self, pcItems, dwReserved) -proc GetDesktopItem*(self: ptr IActiveDesktop, nComponent: int32, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDesktopItem(self, nComponent, pcomp, dwReserved) -proc GetDesktopItemByID*(self: ptr IActiveDesktop, dwID: ULONG_PTR, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDesktopItemByID(self, dwID, pcomp, dwReserved) -proc GenerateDesktopItemHtml*(self: ptr IActiveDesktop, pwszFileName: PCWSTR, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GenerateDesktopItemHtml(self, pwszFileName, pcomp, dwReserved) -proc AddUrl*(self: ptr IActiveDesktop, hwnd: HWND, pszSource: PCWSTR, pcomp: LPCOMPONENT, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddUrl(self, hwnd, pszSource, pcomp, dwFlags) -proc GetDesktopItemBySource*(self: ptr IActiveDesktop, pwszSource: PCWSTR, pcomp: LPCOMPONENT, dwReserved: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDesktopItemBySource(self, pwszSource, pcomp, dwReserved) -proc SetSafeMode*(self: ptr IActiveDesktopP, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSafeMode(self, dwFlags) -proc EnsureUpdateHTML*(self: ptr IActiveDesktopP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EnsureUpdateHTML(self) -proc SetScheme*(self: ptr IActiveDesktopP, pwszSchemeName: PCWSTR, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScheme(self, pwszSchemeName, dwFlags) -proc GetScheme*(self: ptr IActiveDesktopP, pwszSchemeName: PWSTR, pdwcchBuffer: ptr DWORD, dwFlags: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetScheme(self, pwszSchemeName, pdwcchBuffer, dwFlags) -proc ReReadWallpaper*(self: ptr IADesktopP2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReReadWallpaper(self) -proc GetADObjectFlags*(self: ptr IADesktopP2, pdwFlags: ptr DWORD, dwMask: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetADObjectFlags(self, pdwFlags, dwMask) -proc UpdateAllDesktopSubscriptions*(self: ptr IADesktopP2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateAllDesktopSubscriptions(self) -proc MakeDynamicChanges*(self: ptr IADesktopP2, pOleObj: ptr IOleObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MakeDynamicChanges(self, pOleObj) -proc Initialize*(self: ptr IColumnProvider, psci: LPCSHCOLUMNINIT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, psci) -proc GetColumnInfo*(self: ptr IColumnProvider, dwIndex: DWORD, psci: ptr SHCOLUMNINFO): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnInfo(self, dwIndex, psci) -proc GetItemData*(self: ptr IColumnProvider, pscid: LPCSHCOLUMNID, pscd: LPCSHCOLUMNDATA, pvarData: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemData(self, pscid, pscd, pvarData) -proc OnChange*(self: ptr IShellChangeNotify, lEvent: LONG, pidl1: PCIDLIST_ABSOLUTE, pidl2: PCIDLIST_ABSOLUTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnChange(self, lEvent, pidl1, pidl2) -proc GetInfoTip*(self: ptr IQueryInfo, dwFlags: DWORD, ppwszTip: ptr PWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInfoTip(self, dwFlags, ppwszTip) -proc GetInfoFlags*(self: ptr IQueryInfo, pdwFlags: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetInfoFlags(self, pdwFlags) -proc GetWindowLV*(self: ptr IDefViewFrame, phwnd: ptr HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWindowLV(self, phwnd) -proc ReleaseWindowLV*(self: ptr IDefViewFrame): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReleaseWindowLV(self) -proc GetShellFolder*(self: ptr IDefViewFrame, ppsf: ptr ptr IShellFolder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetShellFolder(self, ppsf) -proc OnSetTitle*(self: ptr IDocViewSite, pvTitle: ptr VARIANTARG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.OnSetTitle(self, pvTitle) -proc Initialize*(self: ptr IInitializeObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self) -proc SetIconSize*(self: ptr IBanneredBar, iIcon: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetIconSize(self, iIcon) -proc GetIconSize*(self: ptr IBanneredBar, piIcon: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIconSize(self, piIcon) -proc SetBitmap*(self: ptr IBanneredBar, hBitmap: HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetBitmap(self, hBitmap) -proc GetBitmap*(self: ptr IBanneredBar, phBitmap: ptr HBITMAP): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBitmap(self, phBitmap) -proc MessageSFVCB*(self: ptr IShellFolderViewCB, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MessageSFVCB(self, uMsg, wParam, lParam) -proc Rearrange*(self: ptr IShellFolderView, lParamSort: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Rearrange(self, lParamSort) -proc GetArrangeParam*(self: ptr IShellFolderView, plParamSort: ptr LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetArrangeParam(self, plParamSort) -proc ArrangeGrid*(self: ptr IShellFolderView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ArrangeGrid(self) -proc AutoArrange*(self: ptr IShellFolderView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AutoArrange(self) -proc GetAutoArrange*(self: ptr IShellFolderView): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAutoArrange(self) -proc AddObject*(self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddObject(self, pidl, puItem) -proc GetObject*(self: ptr IShellFolderView, ppidl: ptr PITEMID_CHILD, uItem: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObject(self, ppidl, uItem) -proc RemoveObject*(self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveObject(self, pidl, puItem) -proc GetObjectCount*(self: ptr IShellFolderView, puCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectCount(self, puCount) -proc SetObjectCount*(self: ptr IShellFolderView, uCount: UINT, dwFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetObjectCount(self, uCount, dwFlags) -proc UpdateObject*(self: ptr IShellFolderView, pidlOld: PUITEMID_CHILD, pidlNew: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.UpdateObject(self, pidlOld, pidlNew, puItem) -proc RefreshObject*(self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RefreshObject(self, pidl, puItem) -proc SetRedraw*(self: ptr IShellFolderView, bRedraw: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetRedraw(self, bRedraw) -proc GetSelectedCount*(self: ptr IShellFolderView, puSelected: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedCount(self, puSelected) -proc GetSelectedObjects*(self: ptr IShellFolderView, pppidl: ptr ptr PCUITEMID_CHILD, puItems: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelectedObjects(self, pppidl, puItems) -proc IsDropOnSource*(self: ptr IShellFolderView, pDropTarget: ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsDropOnSource(self, pDropTarget) -proc GetDragPoint*(self: ptr IShellFolderView, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDragPoint(self, ppt) -proc GetDropPoint*(self: ptr IShellFolderView, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDropPoint(self, ppt) -proc MoveIcons*(self: ptr IShellFolderView, pDataObject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveIcons(self, pDataObject) -proc SetItemPos*(self: ptr IShellFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetItemPos(self, pidl, ppt) -proc IsBkDropTarget*(self: ptr IShellFolderView, pDropTarget: ptr IDropTarget): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsBkDropTarget(self, pDropTarget) -proc SetClipboard*(self: ptr IShellFolderView, bMove: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetClipboard(self, bMove) -proc SetPoints*(self: ptr IShellFolderView, pDataObject: ptr IDataObject): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPoints(self, pDataObject) -proc GetItemSpacing*(self: ptr IShellFolderView, pSpacing: ptr ITEMSPACING): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemSpacing(self, pSpacing) -proc SetCallback*(self: ptr IShellFolderView, pNewCB: ptr IShellFolderViewCB, ppOldCB: ptr ptr IShellFolderViewCB): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCallback(self, pNewCB, ppOldCB) -proc Select*(self: ptr IShellFolderView, dwFlags: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self, dwFlags) -proc QuerySupport*(self: ptr IShellFolderView, pdwSupport: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QuerySupport(self, pdwSupport) -proc SetAutomationObject*(self: ptr IShellFolderView, pdisp: ptr IDispatch): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetAutomationObject(self, pdisp) -proc ReadPropertyNPB*(self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR, pVar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadPropertyNPB(self, pszBagname, pszPropName, pVar) -proc WritePropertyNPB*(self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR, pVar: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WritePropertyNPB(self, pszBagname, pszPropName, pVar) -proc RemovePropertyNPB*(self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemovePropertyNPB(self, pszBagname, pszPropName) -converter winimConverterIQueryAssociationsToIUnknown*(x: ptr IQueryAssociations): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderViewOCToIDispatch*(x: ptr IFolderViewOC): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIFolderViewOCToIUnknown*(x: ptr IFolderViewOC): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDShellFolderViewEventsToIDispatch*(x: ptr DShellFolderViewEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDShellFolderViewEventsToIUnknown*(x: ptr DShellFolderViewEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterDFConstraintToIDispatch*(x: ptr DFConstraint): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterDFConstraintToIUnknown*(x: ptr DFConstraint): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderToIDispatch*(x: ptr Folder): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderToIUnknown*(x: ptr Folder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolder2ToFolder*(x: ptr Folder2): ptr Folder = cast[ptr Folder](x) -converter winimConverterFolder2ToIDispatch*(x: ptr Folder2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolder2ToIUnknown*(x: ptr Folder2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolder3ToFolder2*(x: ptr Folder3): ptr Folder2 = cast[ptr Folder2](x) -converter winimConverterFolder3ToFolder*(x: ptr Folder3): ptr Folder = cast[ptr Folder](x) -converter winimConverterFolder3ToIDispatch*(x: ptr Folder3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolder3ToIUnknown*(x: ptr Folder3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItemToIDispatch*(x: ptr FolderItem): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItemToIUnknown*(x: ptr FolderItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItem2ToFolderItem*(x: ptr FolderItem2): ptr FolderItem = cast[ptr FolderItem](x) -converter winimConverterFolderItem2ToIDispatch*(x: ptr FolderItem2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItem2ToIUnknown*(x: ptr FolderItem2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItemsToIDispatch*(x: ptr FolderItems): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItemsToIUnknown*(x: ptr FolderItems): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItems2ToFolderItems*(x: ptr FolderItems2): ptr FolderItems = cast[ptr FolderItems](x) -converter winimConverterFolderItems2ToIDispatch*(x: ptr FolderItems2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItems2ToIUnknown*(x: ptr FolderItems2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItems3ToFolderItems2*(x: ptr FolderItems3): ptr FolderItems2 = cast[ptr FolderItems2](x) -converter winimConverterFolderItems3ToFolderItems*(x: ptr FolderItems3): ptr FolderItems = cast[ptr FolderItems](x) -converter winimConverterFolderItems3ToIDispatch*(x: ptr FolderItems3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItems3ToIUnknown*(x: ptr FolderItems3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItemVerbToIDispatch*(x: ptr FolderItemVerb): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItemVerbToIUnknown*(x: ptr FolderItemVerb): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterFolderItemVerbsToIDispatch*(x: ptr FolderItemVerbs): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterFolderItemVerbsToIUnknown*(x: ptr FolderItemVerbs): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellLinkDualToIDispatch*(x: ptr IShellLinkDual): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellLinkDualToIUnknown*(x: ptr IShellLinkDual): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellLinkDual2ToIShellLinkDual*(x: ptr IShellLinkDual2): ptr IShellLinkDual = cast[ptr IShellLinkDual](x) -converter winimConverterIShellLinkDual2ToIDispatch*(x: ptr IShellLinkDual2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellLinkDual2ToIUnknown*(x: ptr IShellLinkDual2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderViewDualToIDispatch*(x: ptr IShellFolderViewDual): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellFolderViewDualToIUnknown*(x: ptr IShellFolderViewDual): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderViewDual2ToIShellFolderViewDual*(x: ptr IShellFolderViewDual2): ptr IShellFolderViewDual = cast[ptr IShellFolderViewDual](x) -converter winimConverterIShellFolderViewDual2ToIDispatch*(x: ptr IShellFolderViewDual2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellFolderViewDual2ToIUnknown*(x: ptr IShellFolderViewDual2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderViewDual3ToIShellFolderViewDual2*(x: ptr IShellFolderViewDual3): ptr IShellFolderViewDual2 = cast[ptr IShellFolderViewDual2](x) -converter winimConverterIShellFolderViewDual3ToIShellFolderViewDual*(x: ptr IShellFolderViewDual3): ptr IShellFolderViewDual = cast[ptr IShellFolderViewDual](x) -converter winimConverterIShellFolderViewDual3ToIDispatch*(x: ptr IShellFolderViewDual3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellFolderViewDual3ToIUnknown*(x: ptr IShellFolderViewDual3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDispatchToIDispatch*(x: ptr IShellDispatch): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellDispatchToIUnknown*(x: ptr IShellDispatch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDispatch2ToIShellDispatch*(x: ptr IShellDispatch2): ptr IShellDispatch = cast[ptr IShellDispatch](x) -converter winimConverterIShellDispatch2ToIDispatch*(x: ptr IShellDispatch2): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellDispatch2ToIUnknown*(x: ptr IShellDispatch2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDispatch3ToIShellDispatch2*(x: ptr IShellDispatch3): ptr IShellDispatch2 = cast[ptr IShellDispatch2](x) -converter winimConverterIShellDispatch3ToIShellDispatch*(x: ptr IShellDispatch3): ptr IShellDispatch = cast[ptr IShellDispatch](x) -converter winimConverterIShellDispatch3ToIDispatch*(x: ptr IShellDispatch3): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellDispatch3ToIUnknown*(x: ptr IShellDispatch3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDispatch4ToIShellDispatch3*(x: ptr IShellDispatch4): ptr IShellDispatch3 = cast[ptr IShellDispatch3](x) -converter winimConverterIShellDispatch4ToIShellDispatch2*(x: ptr IShellDispatch4): ptr IShellDispatch2 = cast[ptr IShellDispatch2](x) -converter winimConverterIShellDispatch4ToIShellDispatch*(x: ptr IShellDispatch4): ptr IShellDispatch = cast[ptr IShellDispatch](x) -converter winimConverterIShellDispatch4ToIDispatch*(x: ptr IShellDispatch4): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellDispatch4ToIUnknown*(x: ptr IShellDispatch4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDispatch5ToIShellDispatch4*(x: ptr IShellDispatch5): ptr IShellDispatch4 = cast[ptr IShellDispatch4](x) -converter winimConverterIShellDispatch5ToIShellDispatch3*(x: ptr IShellDispatch5): ptr IShellDispatch3 = cast[ptr IShellDispatch3](x) -converter winimConverterIShellDispatch5ToIShellDispatch2*(x: ptr IShellDispatch5): ptr IShellDispatch2 = cast[ptr IShellDispatch2](x) -converter winimConverterIShellDispatch5ToIShellDispatch*(x: ptr IShellDispatch5): ptr IShellDispatch = cast[ptr IShellDispatch](x) -converter winimConverterIShellDispatch5ToIDispatch*(x: ptr IShellDispatch5): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellDispatch5ToIUnknown*(x: ptr IShellDispatch5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDispatch6ToIShellDispatch5*(x: ptr IShellDispatch6): ptr IShellDispatch5 = cast[ptr IShellDispatch5](x) -converter winimConverterIShellDispatch6ToIShellDispatch4*(x: ptr IShellDispatch6): ptr IShellDispatch4 = cast[ptr IShellDispatch4](x) -converter winimConverterIShellDispatch6ToIShellDispatch3*(x: ptr IShellDispatch6): ptr IShellDispatch3 = cast[ptr IShellDispatch3](x) -converter winimConverterIShellDispatch6ToIShellDispatch2*(x: ptr IShellDispatch6): ptr IShellDispatch2 = cast[ptr IShellDispatch2](x) -converter winimConverterIShellDispatch6ToIShellDispatch*(x: ptr IShellDispatch6): ptr IShellDispatch = cast[ptr IShellDispatch](x) -converter winimConverterIShellDispatch6ToIDispatch*(x: ptr IShellDispatch6): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIShellDispatch6ToIUnknown*(x: ptr IShellDispatch6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileSearchBandToIDispatch*(x: ptr IFileSearchBand): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIFileSearchBandToIUnknown*(x: ptr IFileSearchBand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebWizardHostToIDispatch*(x: ptr IWebWizardHost): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterIWebWizardHostToIUnknown*(x: ptr IWebWizardHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINewWDEventsToIWebWizardHost*(x: ptr INewWDEvents): ptr IWebWizardHost = cast[ptr IWebWizardHost](x) -converter winimConverterINewWDEventsToIDispatch*(x: ptr INewWDEvents): ptr IDispatch = cast[ptr IDispatch](x) -converter winimConverterINewWDEventsToIUnknown*(x: ptr INewWDEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAutoCompleteToIUnknown*(x: ptr IAutoComplete): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAutoComplete2ToIAutoComplete*(x: ptr IAutoComplete2): ptr IAutoComplete = cast[ptr IAutoComplete](x) -converter winimConverterIAutoComplete2ToIUnknown*(x: ptr IAutoComplete2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumACStringToIEnumString*(x: ptr IEnumACString): ptr IEnumString = cast[ptr IEnumString](x) -converter winimConverterIEnumACStringToIUnknown*(x: ptr IEnumACString): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDataObjectAsyncCapabilityToIUnknown*(x: ptr IDataObjectAsyncCapability): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectArrayToIUnknown*(x: ptr IObjectArray): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectCollectionToIObjectArray*(x: ptr IObjectCollection): ptr IObjectArray = cast[ptr IObjectArray](x) -converter winimConverterIObjectCollectionToIUnknown*(x: ptr IObjectCollection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContextMenuToIUnknown*(x: ptr IContextMenu): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContextMenu2ToIContextMenu*(x: ptr IContextMenu2): ptr IContextMenu = cast[ptr IContextMenu](x) -converter winimConverterIContextMenu2ToIUnknown*(x: ptr IContextMenu2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContextMenu3ToIContextMenu2*(x: ptr IContextMenu3): ptr IContextMenu2 = cast[ptr IContextMenu2](x) -converter winimConverterIContextMenu3ToIContextMenu*(x: ptr IContextMenu3): ptr IContextMenu = cast[ptr IContextMenu](x) -converter winimConverterIContextMenu3ToIUnknown*(x: ptr IContextMenu3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExecuteCommandToIUnknown*(x: ptr IExecuteCommand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistFolderToIPersist*(x: ptr IPersistFolder): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistFolderToIUnknown*(x: ptr IPersistFolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRunnableTaskToIUnknown*(x: ptr IRunnableTask): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellTaskSchedulerToIUnknown*(x: ptr IShellTaskScheduler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIQueryCodePageToIUnknown*(x: ptr IQueryCodePage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistFolder2ToIPersistFolder*(x: ptr IPersistFolder2): ptr IPersistFolder = cast[ptr IPersistFolder](x) -converter winimConverterIPersistFolder2ToIPersist*(x: ptr IPersistFolder2): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistFolder2ToIUnknown*(x: ptr IPersistFolder2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistFolder3ToIPersistFolder2*(x: ptr IPersistFolder3): ptr IPersistFolder2 = cast[ptr IPersistFolder2](x) -converter winimConverterIPersistFolder3ToIPersistFolder*(x: ptr IPersistFolder3): ptr IPersistFolder = cast[ptr IPersistFolder](x) -converter winimConverterIPersistFolder3ToIPersist*(x: ptr IPersistFolder3): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistFolder3ToIUnknown*(x: ptr IPersistFolder3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPersistIDListToIPersist*(x: ptr IPersistIDList): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIPersistIDListToIUnknown*(x: ptr IPersistIDList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumIDListToIUnknown*(x: ptr IEnumIDList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumFullIDListToIUnknown*(x: ptr IEnumFullIDList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithFolderEnumModeToIUnknown*(x: ptr IObjectWithFolderEnumMode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIParseAndCreateItemToIUnknown*(x: ptr IParseAndCreateItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderToIUnknown*(x: ptr IShellFolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumExtraSearchToIUnknown*(x: ptr IEnumExtraSearch): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolder2ToIShellFolder*(x: ptr IShellFolder2): ptr IShellFolder = cast[ptr IShellFolder](x) -converter winimConverterIShellFolder2ToIUnknown*(x: ptr IShellFolder2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderViewOptionsToIUnknown*(x: ptr IFolderViewOptions): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellViewToIOleWindow*(x: ptr IShellView): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIShellViewToIUnknown*(x: ptr IShellView): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellView2ToIShellView*(x: ptr IShellView2): ptr IShellView = cast[ptr IShellView](x) -converter winimConverterIShellView2ToIOleWindow*(x: ptr IShellView2): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIShellView2ToIUnknown*(x: ptr IShellView2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellView3ToIShellView2*(x: ptr IShellView3): ptr IShellView2 = cast[ptr IShellView2](x) -converter winimConverterIShellView3ToIShellView*(x: ptr IShellView3): ptr IShellView = cast[ptr IShellView](x) -converter winimConverterIShellView3ToIOleWindow*(x: ptr IShellView3): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIShellView3ToIUnknown*(x: ptr IShellView3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderViewToIUnknown*(x: ptr IFolderView): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchBoxInfoToIUnknown*(x: ptr ISearchBoxInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderView2ToIFolderView*(x: ptr IFolderView2): ptr IFolderView = cast[ptr IFolderView](x) -converter winimConverterIFolderView2ToIUnknown*(x: ptr IFolderView2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderViewSettingsToIUnknown*(x: ptr IFolderViewSettings): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPreviewHandlerVisualsToIUnknown*(x: ptr IPreviewHandlerVisuals): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIVisualPropertiesToIUnknown*(x: ptr IVisualProperties): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICommDlgBrowserToIUnknown*(x: ptr ICommDlgBrowser): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICommDlgBrowser2ToICommDlgBrowser*(x: ptr ICommDlgBrowser2): ptr ICommDlgBrowser = cast[ptr ICommDlgBrowser](x) -converter winimConverterICommDlgBrowser2ToIUnknown*(x: ptr ICommDlgBrowser2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICommDlgBrowser3ToICommDlgBrowser2*(x: ptr ICommDlgBrowser3): ptr ICommDlgBrowser2 = cast[ptr ICommDlgBrowser2](x) -converter winimConverterICommDlgBrowser3ToICommDlgBrowser*(x: ptr ICommDlgBrowser3): ptr ICommDlgBrowser = cast[ptr ICommDlgBrowser](x) -converter winimConverterICommDlgBrowser3ToIUnknown*(x: ptr ICommDlgBrowser3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIColumnManagerToIUnknown*(x: ptr IColumnManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderFilterSiteToIUnknown*(x: ptr IFolderFilterSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderFilterToIUnknown*(x: ptr IFolderFilter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInputObjectSiteToIUnknown*(x: ptr IInputObjectSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInputObjectToIUnknown*(x: ptr IInputObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInputObject2ToIInputObject*(x: ptr IInputObject2): ptr IInputObject = cast[ptr IInputObject](x) -converter winimConverterIInputObject2ToIUnknown*(x: ptr IInputObject2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellIconToIUnknown*(x: ptr IShellIcon): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellBrowserToIOleWindow*(x: ptr IShellBrowser): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIShellBrowserToIUnknown*(x: ptr IShellBrowser): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProfferServiceToIUnknown*(x: ptr IProfferService): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellItemToIUnknown*(x: ptr IShellItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellItem2ToIShellItem*(x: ptr IShellItem2): ptr IShellItem = cast[ptr IShellItem](x) -converter winimConverterIShellItem2ToIUnknown*(x: ptr IShellItem2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellItemImageFactoryToIUnknown*(x: ptr IShellItemImageFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUserAccountChangeCallbackToIUnknown*(x: ptr IUserAccountChangeCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumShellItemsToIUnknown*(x: ptr IEnumShellItems): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITransferAdviseSinkToIUnknown*(x: ptr ITransferAdviseSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITransferSourceToIUnknown*(x: ptr ITransferSource): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumResourcesToIUnknown*(x: ptr IEnumResources): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellItemResourcesToIUnknown*(x: ptr IShellItemResources): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITransferDestinationToIUnknown*(x: ptr ITransferDestination): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStreamAsyncToIStream*(x: ptr IStreamAsync): ptr IStream = cast[ptr IStream](x) -converter winimConverterIStreamAsyncToISequentialStream*(x: ptr IStreamAsync): ptr ISequentialStream = cast[ptr ISequentialStream](x) -converter winimConverterIStreamAsyncToIUnknown*(x: ptr IStreamAsync): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStreamUnbufferedInfoToIUnknown*(x: ptr IStreamUnbufferedInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileOperationProgressSinkToIUnknown*(x: ptr IFileOperationProgressSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellItemArrayToIUnknown*(x: ptr IShellItemArray): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeWithItemToIUnknown*(x: ptr IInitializeWithItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithSelectionToIUnknown*(x: ptr IObjectWithSelection): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithBackReferencesToIUnknown*(x: ptr IObjectWithBackReferences): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPropertyUIToIUnknown*(x: ptr IPropertyUI): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICategoryProviderToIUnknown*(x: ptr ICategoryProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICategorizerToIUnknown*(x: ptr ICategorizer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDropTargetHelperToIUnknown*(x: ptr IDropTargetHelper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDragSourceHelperToIUnknown*(x: ptr IDragSourceHelper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDragSourceHelper2ToIDragSourceHelper*(x: ptr IDragSourceHelper2): ptr IDragSourceHelper = cast[ptr IDragSourceHelper](x) -converter winimConverterIDragSourceHelper2ToIUnknown*(x: ptr IDragSourceHelper2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellLinkAToIUnknown*(x: ptr IShellLinkA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellLinkWToIUnknown*(x: ptr IShellLinkW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellLinkDataListToIUnknown*(x: ptr IShellLinkDataList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIResolveShellLinkToIUnknown*(x: ptr IResolveShellLink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActionProgressDialogToIUnknown*(x: ptr IActionProgressDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHWEventHandlerToIUnknown*(x: ptr IHWEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHWEventHandler2ToIHWEventHandler*(x: ptr IHWEventHandler2): ptr IHWEventHandler = cast[ptr IHWEventHandler](x) -converter winimConverterIHWEventHandler2ToIUnknown*(x: ptr IHWEventHandler2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIQueryCancelAutoPlayToIUnknown*(x: ptr IQueryCancelAutoPlay): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDynamicHWHandlerToIUnknown*(x: ptr IDynamicHWHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActionProgressToIUnknown*(x: ptr IActionProgress): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellExtInitToIUnknown*(x: ptr IShellExtInit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellPropSheetExtToIUnknown*(x: ptr IShellPropSheetExt): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRemoteComputerToIUnknown*(x: ptr IRemoteComputer): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIQueryContinueToIUnknown*(x: ptr IQueryContinue): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithCancelEventToIUnknown*(x: ptr IObjectWithCancelEvent): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUserNotificationToIUnknown*(x: ptr IUserNotification): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUserNotificationCallbackToIUnknown*(x: ptr IUserNotificationCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUserNotification2ToIUnknown*(x: ptr IUserNotification2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIItemNameLimitsToIUnknown*(x: ptr IItemNameLimits): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchFolderItemFactoryToIUnknown*(x: ptr ISearchFolderItemFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExtractImageToIUnknown*(x: ptr IExtractImage): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExtractImage2ToIExtractImage*(x: ptr IExtractImage2): ptr IExtractImage = cast[ptr IExtractImage](x) -converter winimConverterIExtractImage2ToIUnknown*(x: ptr IExtractImage2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIThumbnailHandlerFactoryToIUnknown*(x: ptr IThumbnailHandlerFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIParentAndItemToIUnknown*(x: ptr IParentAndItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDockingWindowToIOleWindow*(x: ptr IDockingWindow): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDockingWindowToIUnknown*(x: ptr IDockingWindow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDeskBandToIDockingWindow*(x: ptr IDeskBand): ptr IDockingWindow = cast[ptr IDockingWindow](x) -converter winimConverterIDeskBandToIOleWindow*(x: ptr IDeskBand): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDeskBandToIUnknown*(x: ptr IDeskBand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDeskBandInfoToIUnknown*(x: ptr IDeskBandInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDeskBand2ToIDeskBand*(x: ptr IDeskBand2): ptr IDeskBand = cast[ptr IDeskBand](x) -converter winimConverterIDeskBand2ToIDockingWindow*(x: ptr IDeskBand2): ptr IDockingWindow = cast[ptr IDockingWindow](x) -converter winimConverterIDeskBand2ToIOleWindow*(x: ptr IDeskBand2): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDeskBand2ToIUnknown*(x: ptr IDeskBand2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITaskbarListToIUnknown*(x: ptr ITaskbarList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITaskbarList2ToITaskbarList*(x: ptr ITaskbarList2): ptr ITaskbarList = cast[ptr ITaskbarList](x) -converter winimConverterITaskbarList2ToIUnknown*(x: ptr ITaskbarList2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITaskbarList3ToITaskbarList2*(x: ptr ITaskbarList3): ptr ITaskbarList2 = cast[ptr ITaskbarList2](x) -converter winimConverterITaskbarList3ToITaskbarList*(x: ptr ITaskbarList3): ptr ITaskbarList = cast[ptr ITaskbarList](x) -converter winimConverterITaskbarList3ToIUnknown*(x: ptr ITaskbarList3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITaskbarList4ToITaskbarList3*(x: ptr ITaskbarList4): ptr ITaskbarList3 = cast[ptr ITaskbarList3](x) -converter winimConverterITaskbarList4ToITaskbarList2*(x: ptr ITaskbarList4): ptr ITaskbarList2 = cast[ptr ITaskbarList2](x) -converter winimConverterITaskbarList4ToITaskbarList*(x: ptr ITaskbarList4): ptr ITaskbarList = cast[ptr ITaskbarList](x) -converter winimConverterITaskbarList4ToIUnknown*(x: ptr ITaskbarList4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStartMenuPinnedListToIUnknown*(x: ptr IStartMenuPinnedList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICDBurnToIUnknown*(x: ptr ICDBurn): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWizardSiteToIUnknown*(x: ptr IWizardSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWizardExtensionToIUnknown*(x: ptr IWizardExtension): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWebWizardExtensionToIWizardExtension*(x: ptr IWebWizardExtension): ptr IWizardExtension = cast[ptr IWizardExtension](x) -converter winimConverterIWebWizardExtensionToIUnknown*(x: ptr IWebWizardExtension): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPublishingWizardToIWizardExtension*(x: ptr IPublishingWizard): ptr IWizardExtension = cast[ptr IWizardExtension](x) -converter winimConverterIPublishingWizardToIUnknown*(x: ptr IPublishingWizard): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderViewHostToIUnknown*(x: ptr IFolderViewHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExplorerBrowserEventsToIUnknown*(x: ptr IExplorerBrowserEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExplorerBrowserToIUnknown*(x: ptr IExplorerBrowser): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccessibleObjectToIUnknown*(x: ptr IAccessibleObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIResultsFolderToIUnknown*(x: ptr IResultsFolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumObjectsToIUnknown*(x: ptr IEnumObjects): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOperationsProgressDialogToIUnknown*(x: ptr IOperationsProgressDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIIOCancelInformationToIUnknown*(x: ptr IIOCancelInformation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileOperationToIUnknown*(x: ptr IFileOperation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectProviderToIUnknown*(x: ptr IObjectProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINamespaceWalkCBToIUnknown*(x: ptr INamespaceWalkCB): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINamespaceWalkCB2ToINamespaceWalkCB*(x: ptr INamespaceWalkCB2): ptr INamespaceWalkCB = cast[ptr INamespaceWalkCB](x) -converter winimConverterINamespaceWalkCB2ToIUnknown*(x: ptr INamespaceWalkCB2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINamespaceWalkToIUnknown*(x: ptr INamespaceWalk): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAutoCompleteDropDownToIUnknown*(x: ptr IAutoCompleteDropDown): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBandSiteToIUnknown*(x: ptr IBandSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIModalWindowToIUnknown*(x: ptr IModalWindow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICDBurnExtToIUnknown*(x: ptr ICDBurnExt): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContextMenuSiteToIUnknown*(x: ptr IContextMenuSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumReadyCallbackToIUnknown*(x: ptr IEnumReadyCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumerableViewToIUnknown*(x: ptr IEnumerableView): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInsertItemToIUnknown*(x: ptr IInsertItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMenuBandToIUnknown*(x: ptr IMenuBand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFolderBandPrivToIUnknown*(x: ptr IFolderBandPriv): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRegTreeItemToIUnknown*(x: ptr IRegTreeItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIImageRecompressToIUnknown*(x: ptr IImageRecompress): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDeskBarToIOleWindow*(x: ptr IDeskBar): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDeskBarToIUnknown*(x: ptr IDeskBar): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMenuPopupToIDeskBar*(x: ptr IMenuPopup): ptr IDeskBar = cast[ptr IDeskBar](x) -converter winimConverterIMenuPopupToIOleWindow*(x: ptr IMenuPopup): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIMenuPopupToIUnknown*(x: ptr IMenuPopup): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileIsInUseToIUnknown*(x: ptr IFileIsInUse): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileDialogEventsToIUnknown*(x: ptr IFileDialogEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileDialogToIModalWindow*(x: ptr IFileDialog): ptr IModalWindow = cast[ptr IModalWindow](x) -converter winimConverterIFileDialogToIUnknown*(x: ptr IFileDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileSaveDialogToIFileDialog*(x: ptr IFileSaveDialog): ptr IFileDialog = cast[ptr IFileDialog](x) -converter winimConverterIFileSaveDialogToIModalWindow*(x: ptr IFileSaveDialog): ptr IModalWindow = cast[ptr IModalWindow](x) -converter winimConverterIFileSaveDialogToIUnknown*(x: ptr IFileSaveDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileOpenDialogToIFileDialog*(x: ptr IFileOpenDialog): ptr IFileDialog = cast[ptr IFileDialog](x) -converter winimConverterIFileOpenDialogToIModalWindow*(x: ptr IFileOpenDialog): ptr IModalWindow = cast[ptr IModalWindow](x) -converter winimConverterIFileOpenDialogToIUnknown*(x: ptr IFileOpenDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileDialogCustomizeToIUnknown*(x: ptr IFileDialogCustomize): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileDialogControlEventsToIUnknown*(x: ptr IFileDialogControlEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileDialog2ToIFileDialog*(x: ptr IFileDialog2): ptr IFileDialog = cast[ptr IFileDialog](x) -converter winimConverterIFileDialog2ToIModalWindow*(x: ptr IFileDialog2): ptr IModalWindow = cast[ptr IModalWindow](x) -converter winimConverterIFileDialog2ToIUnknown*(x: ptr IFileDialog2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApplicationAssociationRegistrationToIUnknown*(x: ptr IApplicationAssociationRegistration): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApplicationAssociationRegistrationUIToIUnknown*(x: ptr IApplicationAssociationRegistrationUI): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDelegateFolderToIUnknown*(x: ptr IDelegateFolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBrowserFrameOptionsToIUnknown*(x: ptr IBrowserFrameOptions): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINewWindowManagerToIUnknown*(x: ptr INewWindowManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAttachmentExecuteToIUnknown*(x: ptr IAttachmentExecute): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellMenuCallbackToIUnknown*(x: ptr IShellMenuCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellMenuToIUnknown*(x: ptr IShellMenu): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellRunDllToIUnknown*(x: ptr IShellRunDll): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIKnownFolderToIUnknown*(x: ptr IKnownFolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIKnownFolderManagerToIUnknown*(x: ptr IKnownFolderManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISharingConfigurationManagerToIUnknown*(x: ptr ISharingConfigurationManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPreviousVersionsInfoToIUnknown*(x: ptr IPreviousVersionsInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRelatedItemToIUnknown*(x: ptr IRelatedItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIIdentityNameToIRelatedItem*(x: ptr IIdentityName): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterIIdentityNameToIUnknown*(x: ptr IIdentityName): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDelegateItemToIRelatedItem*(x: ptr IDelegateItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterIDelegateItemToIUnknown*(x: ptr IDelegateItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICurrentItemToIRelatedItem*(x: ptr ICurrentItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterICurrentItemToIUnknown*(x: ptr ICurrentItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITransferMediumItemToIRelatedItem*(x: ptr ITransferMediumItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterITransferMediumItemToIUnknown*(x: ptr ITransferMediumItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUseToBrowseItemToIRelatedItem*(x: ptr IUseToBrowseItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterIUseToBrowseItemToIUnknown*(x: ptr IUseToBrowseItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDisplayItemToIRelatedItem*(x: ptr IDisplayItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterIDisplayItemToIUnknown*(x: ptr IDisplayItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIViewStateIdentityItemToIRelatedItem*(x: ptr IViewStateIdentityItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterIViewStateIdentityItemToIUnknown*(x: ptr IViewStateIdentityItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPreviewItemToIRelatedItem*(x: ptr IPreviewItem): ptr IRelatedItem = cast[ptr IRelatedItem](x) -converter winimConverterIPreviewItemToIUnknown*(x: ptr IPreviewItem): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDestinationStreamFactoryToIUnknown*(x: ptr IDestinationStreamFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINewMenuClientToIUnknown*(x: ptr INewMenuClient): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeWithBindCtxToIUnknown*(x: ptr IInitializeWithBindCtx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellItemFilterToIUnknown*(x: ptr IShellItemFilter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeControlToIUnknown*(x: ptr INameSpaceTreeControl): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeControl2ToINameSpaceTreeControl*(x: ptr INameSpaceTreeControl2): ptr INameSpaceTreeControl = cast[ptr INameSpaceTreeControl](x) -converter winimConverterINameSpaceTreeControl2ToIUnknown*(x: ptr INameSpaceTreeControl2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeControlEventsToIUnknown*(x: ptr INameSpaceTreeControlEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeControlDropHandlerToIUnknown*(x: ptr INameSpaceTreeControlDropHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeAccessibleToIUnknown*(x: ptr INameSpaceTreeAccessible): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeControlCustomDrawToIUnknown*(x: ptr INameSpaceTreeControlCustomDraw): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINameSpaceTreeControlFolderCapabilitiesToIUnknown*(x: ptr INameSpaceTreeControlFolderCapabilities): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPreviewHandlerToIUnknown*(x: ptr IPreviewHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPreviewHandlerFrameToIUnknown*(x: ptr IPreviewHandlerFrame): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITrayDeskBandToIUnknown*(x: ptr ITrayDeskBand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBandHostToIUnknown*(x: ptr IBandHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExplorerPaneVisibilityToIUnknown*(x: ptr IExplorerPaneVisibility): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIContextMenuCBToIUnknown*(x: ptr IContextMenuCB): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDefaultExtractIconInitToIUnknown*(x: ptr IDefaultExtractIconInit): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExplorerCommandToIUnknown*(x: ptr IExplorerCommand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExplorerCommandStateToIUnknown*(x: ptr IExplorerCommandState): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeCommandToIUnknown*(x: ptr IInitializeCommand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumExplorerCommandToIUnknown*(x: ptr IEnumExplorerCommand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExplorerCommandProviderToIUnknown*(x: ptr IExplorerCommandProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeNetworkFolderToIUnknown*(x: ptr IInitializeNetworkFolder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOpenControlPanelToIUnknown*(x: ptr IOpenControlPanel): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIComputerInfoChangeNotifyToIUnknown*(x: ptr IComputerInfoChangeNotify): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileSystemBindDataToIUnknown*(x: ptr IFileSystemBindData): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileSystemBindData2ToIFileSystemBindData*(x: ptr IFileSystemBindData2): ptr IFileSystemBindData = cast[ptr IFileSystemBindData](x) -converter winimConverterIFileSystemBindData2ToIUnknown*(x: ptr IFileSystemBindData2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICustomDestinationListToIUnknown*(x: ptr ICustomDestinationList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApplicationDestinationsToIUnknown*(x: ptr IApplicationDestinations): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApplicationDocumentListsToIUnknown*(x: ptr IApplicationDocumentLists): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithAppUserModelIDToIUnknown*(x: ptr IObjectWithAppUserModelID): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectWithProgIDToIUnknown*(x: ptr IObjectWithProgID): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUpdateIDListToIUnknown*(x: ptr IUpdateIDList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDesktopGadgetToIUnknown*(x: ptr IDesktopGadget): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDesktopWallpaperToIUnknown*(x: ptr IDesktopWallpaper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHomeGroupToIUnknown*(x: ptr IHomeGroup): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeWithPropertyStoreToIUnknown*(x: ptr IInitializeWithPropertyStore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIOpenSearchSourceToIUnknown*(x: ptr IOpenSearchSource): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellLibraryToIUnknown*(x: ptr IShellLibrary): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPlaybackManagerEventsToIUnknown*(x: ptr IPlaybackManagerEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPlaybackManagerToIUnknown*(x: ptr IPlaybackManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDefaultFolderMenuInitializeToIUnknown*(x: ptr IDefaultFolderMenuInitialize): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApplicationActivationManagerToIUnknown*(x: ptr IApplicationActivationManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAssocHandlerInvokerToIUnknown*(x: ptr IAssocHandlerInvoker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAssocHandlerToIUnknown*(x: ptr IAssocHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumAssocHandlersToIUnknown*(x: ptr IEnumAssocHandlers): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDataObjectProviderToIUnknown*(x: ptr IDataObjectProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDataTransferManagerInteropToIUnknown*(x: ptr IDataTransferManagerInterop): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFrameworkInputPaneHandlerToIUnknown*(x: ptr IFrameworkInputPaneHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFrameworkInputPaneToIUnknown*(x: ptr IFrameworkInputPane): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchableApplicationToIUnknown*(x: ptr ISearchableApplication): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccessibilityDockingServiceCallbackToIUnknown*(x: ptr IAccessibilityDockingServiceCallback): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccessibilityDockingServiceToIUnknown*(x: ptr IAccessibilityDockingService): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAppVisibilityEventsToIUnknown*(x: ptr IAppVisibilityEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAppVisibilityToIUnknown*(x: ptr IAppVisibility): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPackageExecutionStateChangeNotificationToIUnknown*(x: ptr IPackageExecutionStateChangeNotification): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIPackageDebugSettingsToIUnknown*(x: ptr IPackageDebugSettings): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExecuteCommandApplicationHostEnvironmentToIUnknown*(x: ptr IExecuteCommandApplicationHostEnvironment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExecuteCommandHostToIUnknown*(x: ptr IExecuteCommandHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIApplicationDesignModeSettingsToIUnknown*(x: ptr IApplicationDesignModeSettings): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeWithWindowToIUnknown*(x: ptr IInitializeWithWindow): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHandlerInfoToIUnknown*(x: ptr IHandlerInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIHandlerActivationHostToIUnknown*(x: ptr IHandlerActivationHost): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExtractIconAToIUnknown*(x: ptr IExtractIconA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExtractIconWToIUnknown*(x: ptr IExtractIconW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellIconOverlayIdentifierToIUnknown*(x: ptr IShellIconOverlayIdentifier): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellIconOverlayManagerToIUnknown*(x: ptr IShellIconOverlayManager): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellIconOverlayToIUnknown*(x: ptr IShellIconOverlay): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellExecuteHookAToIUnknown*(x: ptr IShellExecuteHookA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellExecuteHookWToIUnknown*(x: ptr IShellExecuteHookW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIURLSearchHookToIUnknown*(x: ptr IURLSearchHook): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISearchContextToIUnknown*(x: ptr ISearchContext): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIURLSearchHook2ToIURLSearchHook*(x: ptr IURLSearchHook2): ptr IURLSearchHook = cast[ptr IURLSearchHook](x) -converter winimConverterIURLSearchHook2ToIUnknown*(x: ptr IURLSearchHook2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINewShortcutHookAToIUnknown*(x: ptr INewShortcutHookA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINewShortcutHookWToIUnknown*(x: ptr INewShortcutHookW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICopyHookAToIUnknown*(x: ptr ICopyHookA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICopyHookWToIUnknown*(x: ptr ICopyHookW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileViewerSiteToIUnknown*(x: ptr IFileViewerSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileViewerAToIUnknown*(x: ptr IFileViewerA): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIFileViewerWToIUnknown*(x: ptr IFileViewerW): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellDetailsToIUnknown*(x: ptr IShellDetails): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjMgrToIUnknown*(x: ptr IObjMgr): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICurrentWorkingDirectoryToIUnknown*(x: ptr ICurrentWorkingDirectory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIACListToIUnknown*(x: ptr IACList): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIACList2ToIACList*(x: ptr IACList2): ptr IACList = cast[ptr IACList](x) -converter winimConverterIACList2ToIUnknown*(x: ptr IACList2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProgressDialogToIUnknown*(x: ptr IProgressDialog): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDockingWindowSiteToIOleWindow*(x: ptr IDockingWindowSite): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDockingWindowSiteToIUnknown*(x: ptr IDockingWindowSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDockingWindowFrameToIOleWindow*(x: ptr IDockingWindowFrame): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDockingWindowFrameToIUnknown*(x: ptr IDockingWindowFrame): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIThumbnailCaptureToIUnknown*(x: ptr IThumbnailCapture): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIEnumShellImageStoreToIUnknown*(x: ptr IEnumShellImageStore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellImageStoreToIUnknown*(x: ptr IShellImageStore): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderBandToIUnknown*(x: ptr IShellFolderBand): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDeskBarClientToIOleWindow*(x: ptr IDeskBarClient): ptr IOleWindow = cast[ptr IOleWindow](x) -converter winimConverterIDeskBarClientToIUnknown*(x: ptr IDeskBarClient): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveDesktopToIUnknown*(x: ptr IActiveDesktop): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIActiveDesktopPToIUnknown*(x: ptr IActiveDesktopP): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIADesktopP2ToIUnknown*(x: ptr IADesktopP2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIColumnProviderToIUnknown*(x: ptr IColumnProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellChangeNotifyToIUnknown*(x: ptr IShellChangeNotify): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIQueryInfoToIUnknown*(x: ptr IQueryInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDefViewFrameToIUnknown*(x: ptr IDefViewFrame): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDocViewSiteToIUnknown*(x: ptr IDocViewSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInitializeObjectToIUnknown*(x: ptr IInitializeObject): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIBanneredBarToIUnknown*(x: ptr IBanneredBar): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderViewCBToIUnknown*(x: ptr IShellFolderViewCB): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIShellFolderViewToIUnknown*(x: ptr IShellFolderView): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterINamedPropertyBagToIUnknown*(x: ptr INamedPropertyBag): ptr IUnknown = cast[ptr IUnknown](x) +proc PickIconDlg*( + hwnd: HWND, pszIconPath: PWSTR, cchIconPath: UINT, piIconIndex: ptr int32 +): int32 {.winapi, stdcall, dynlib: "shell32", importc.} + +proc StgMakeUniqueName*( + pstgParent: ptr IStorage, + pszFileSpec: PCWSTR, + grfMode: DWORD, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, stdcall, dynlib: "shell32", importc.} + +proc ImportPrivacySettings*( + pszFilename: PCWSTR, + pfParsePrivacyPreferences: ptr WINBOOL, + pfParsePerSiteRules: ptr WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "shdocvw", importc.} + +proc `hIcon=`*(self: var SHELLEXECUTEINFOA, x: HANDLE) {.inline.} = + self.union1.hIcon = x + +proc hIcon*(self: SHELLEXECUTEINFOA): HANDLE {.inline.} = + self.union1.hIcon + +proc hIcon*(self: var SHELLEXECUTEINFOA): var HANDLE {.inline.} = + self.union1.hIcon + +proc `hMonitor=`*(self: var SHELLEXECUTEINFOA, x: HANDLE) {.inline.} = + self.union1.hMonitor = x + +proc hMonitor*(self: SHELLEXECUTEINFOA): HANDLE {.inline.} = + self.union1.hMonitor + +proc hMonitor*(self: var SHELLEXECUTEINFOA): var HANDLE {.inline.} = + self.union1.hMonitor + +proc `hIcon=`*(self: var SHELLEXECUTEINFOW, x: HANDLE) {.inline.} = + self.union1.hIcon = x + +proc hIcon*(self: SHELLEXECUTEINFOW): HANDLE {.inline.} = + self.union1.hIcon + +proc hIcon*(self: var SHELLEXECUTEINFOW): var HANDLE {.inline.} = + self.union1.hIcon + +proc `hMonitor=`*(self: var SHELLEXECUTEINFOW, x: HANDLE) {.inline.} = + self.union1.hMonitor = x + +proc hMonitor*(self: SHELLEXECUTEINFOW): HANDLE {.inline.} = + self.union1.hMonitor + +proc hMonitor*(self: var SHELLEXECUTEINFOW): var HANDLE {.inline.} = + self.union1.hMonitor + +proc `uTimeout=`*(self: var NOTIFYICONDATAA, x: UINT) {.inline.} = + self.union1.uTimeout = x + +proc uTimeout*(self: NOTIFYICONDATAA): UINT {.inline.} = + self.union1.uTimeout + +proc uTimeout*(self: var NOTIFYICONDATAA): var UINT {.inline.} = + self.union1.uTimeout + +proc `uVersion=`*(self: var NOTIFYICONDATAA, x: UINT) {.inline.} = + self.union1.uVersion = x + +proc uVersion*(self: NOTIFYICONDATAA): UINT {.inline.} = + self.union1.uVersion + +proc uVersion*(self: var NOTIFYICONDATAA): var UINT {.inline.} = + self.union1.uVersion + +proc `uTimeout=`*(self: var NOTIFYICONDATAW, x: UINT) {.inline.} = + self.union1.uTimeout = x + +proc uTimeout*(self: NOTIFYICONDATAW): UINT {.inline.} = + self.union1.uTimeout + +proc uTimeout*(self: var NOTIFYICONDATAW): var UINT {.inline.} = + self.union1.uTimeout + +proc `uVersion=`*(self: var NOTIFYICONDATAW, x: UINT) {.inline.} = + self.union1.uVersion = x + +proc uVersion*(self: NOTIFYICONDATAW): UINT {.inline.} = + self.union1.uVersion + +proc uVersion*(self: var NOTIFYICONDATAW): var UINT {.inline.} = + self.union1.uVersion + +proc Init*( + self: ptr IQueryAssociations, + flags: ASSOCF, + pszAssoc: LPCWSTR, + hkProgid: HKEY, + hwnd: HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Init(self, flags, pszAssoc, hkProgid, hwnd) + +proc GetString*( + self: ptr IQueryAssociations, + flags: ASSOCF, + str: ASSOCSTR, + pszExtra: LPCWSTR, + pszOut: LPWSTR, + pcchOut: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetString(self, flags, str, pszExtra, pszOut, pcchOut) + +proc GetKey*( + self: ptr IQueryAssociations, + flags: ASSOCF, + key: ASSOCKEY, + pszExtra: LPCWSTR, + phkeyOut: ptr HKEY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetKey(self, flags, key, pszExtra, phkeyOut) + +proc GetData*( + self: ptr IQueryAssociations, + flags: ASSOCF, + data: ASSOCDATA, + pszExtra: LPCWSTR, + pvOut: LPVOID, + pcbOut: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetData(self, flags, data, pszExtra, pvOut, pcbOut) + +proc GetEnum*( + self: ptr IQueryAssociations, + flags: ASSOCF, + assocenum: ASSOCENUM, + pszExtra: LPCWSTR, + riid: REFIID, + ppvOut: ptr LPVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnum(self, flags, assocenum, pszExtra, riid, ppvOut) + +proc SetFolderView*( + self: ptr IFolderViewOC, pdisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolderView(self, pdisp) + +proc get_Name*(self: ptr DFConstraint, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Name(self, pbs) + +proc get_Value*(self: ptr DFConstraint, pv: ptr VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Value(self, pv) + +proc get_Title*(self: ptr Folder, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Title(self, pbs) + +proc get_Application*( + self: ptr Folder, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr Folder, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc get_ParentFolder*( + self: ptr Folder, ppsf: ptr ptr Folder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ParentFolder(self, ppsf) + +proc Items*(self: ptr Folder, ppid: ptr ptr FolderItems): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Items(self, ppid) + +proc ParseName*( + self: ptr Folder, bName: BSTR, ppid: ptr ptr FolderItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseName(self, bName, ppid) + +proc NewFolder*( + self: ptr Folder, bName: BSTR, vOptions: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewFolder(self, bName, vOptions) + +proc MoveHere*( + self: ptr Folder, vItem: VARIANT, vOptions: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveHere(self, vItem, vOptions) + +proc CopyHere*( + self: ptr Folder, vItem: VARIANT, vOptions: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyHere(self, vItem, vOptions) + +proc GetDetailsOf*( + self: ptr Folder, vItem: VARIANT, iColumn: int32, pbs: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDetailsOf(self, vItem, iColumn, pbs) + +proc get_Self*( + self: ptr Folder2, ppfi: ptr ptr FolderItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Self(self, ppfi) + +proc get_OfflineStatus*(self: ptr Folder2, pul: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_OfflineStatus(self, pul) + +proc mSynchronize*(self: ptr Folder2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Synchronize(self) + +proc get_HaveToShowWebViewBarricade*( + self: ptr Folder2, pbHaveToShowWebViewBarricade: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HaveToShowWebViewBarricade(self, pbHaveToShowWebViewBarricade) + +proc DismissedWebViewBarricade*(self: ptr Folder2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DismissedWebViewBarricade(self) + +proc get_ShowWebViewBarricade*( + self: ptr Folder3, pbShowWebViewBarricade: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShowWebViewBarricade(self, pbShowWebViewBarricade) + +proc put_ShowWebViewBarricade*( + self: ptr Folder3, bShowWebViewBarricade: VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ShowWebViewBarricade(self, bShowWebViewBarricade) + +proc get_Application*( + self: ptr FolderItem, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr FolderItem, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc get_Name*(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Name(self, pbs) + +proc put_Name*(self: ptr FolderItem, bs: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Name(self, bs) + +proc get_Path*(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Path(self, pbs) + +proc get_GetLink*( + self: ptr FolderItem, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_GetLink(self, ppid) + +proc get_GetFolder*( + self: ptr FolderItem, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_GetFolder(self, ppid) + +proc get_IsLink*( + self: ptr FolderItem, pb: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsLink(self, pb) + +proc get_IsFolder*( + self: ptr FolderItem, pb: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsFolder(self, pb) + +proc get_IsFileSystem*( + self: ptr FolderItem, pb: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsFileSystem(self, pb) + +proc get_IsBrowsable*( + self: ptr FolderItem, pb: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsBrowsable(self, pb) + +proc get_ModifyDate*(self: ptr FolderItem, pdt: ptr DATE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ModifyDate(self, pdt) + +proc put_ModifyDate*(self: ptr FolderItem, dt: DATE): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ModifyDate(self, dt) + +proc get_Size*(self: ptr FolderItem, pul: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Size(self, pul) + +proc get_Type*(self: ptr FolderItem, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Type(self, pbs) + +proc Verbs*( + self: ptr FolderItem, ppfic: ptr ptr FolderItemVerbs +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Verbs(self, ppfic) + +proc InvokeVerb*(self: ptr FolderItem, vVerb: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeVerb(self, vVerb) + +proc InvokeVerbEx*( + self: ptr FolderItem2, vVerb: VARIANT, vArgs: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeVerbEx(self, vVerb, vArgs) + +proc ExtendedProperty*( + self: ptr FolderItem2, bstrPropName: BSTR, pvRet: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExtendedProperty(self, bstrPropName, pvRet) + +proc get_Count*(self: ptr FolderItems, plCount: ptr LONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, plCount) + +proc get_Application*( + self: ptr FolderItems, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr FolderItems, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc Item*( + self: ptr FolderItems, index: VARIANT, ppid: ptr ptr FolderItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, index, ppid) + +proc NewEnum*( + self: ptr FolderItems, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewEnum(self, ppunk) + +proc InvokeVerbEx*( + self: ptr FolderItems2, vVerb: VARIANT, vArgs: VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeVerbEx(self, vVerb, vArgs) + +proc Filter*( + self: ptr FolderItems3, grfFlags: LONG, bstrFileSpec: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Filter(self, grfFlags, bstrFileSpec) + +proc get_Verbs*( + self: ptr FolderItems3, ppfic: ptr ptr FolderItemVerbs +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Verbs(self, ppfic) + +proc get_Application*( + self: ptr FolderItemVerb, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr FolderItemVerb, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc get_Name*(self: ptr FolderItemVerb, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Name(self, pbs) + +proc DoIt*(self: ptr FolderItemVerb): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoIt(self) + +proc get_Count*( + self: ptr FolderItemVerbs, plCount: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, plCount) + +proc get_Application*( + self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr FolderItemVerbs, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc Item*( + self: ptr FolderItemVerbs, index: VARIANT, ppid: ptr ptr FolderItemVerb +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, index, ppid) + +proc NewEnum*( + self: ptr FolderItemVerbs, ppunk: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewEnum(self, ppunk) + +proc get_Path*(self: ptr IShellLinkDual, pbs: ptr BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Path(self, pbs) + +proc put_Path*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Path(self, bs) + +proc get_Description*( + self: ptr IShellLinkDual, pbs: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Description(self, pbs) + +proc put_Description*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Description(self, bs) + +proc get_WorkingDirectory*( + self: ptr IShellLinkDual, pbs: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_WorkingDirectory(self, pbs) + +proc put_WorkingDirectory*( + self: ptr IShellLinkDual, bs: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_WorkingDirectory(self, bs) + +proc get_Arguments*( + self: ptr IShellLinkDual, pbs: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Arguments(self, pbs) + +proc put_Arguments*(self: ptr IShellLinkDual, bs: BSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Arguments(self, bs) + +proc get_Hotkey*( + self: ptr IShellLinkDual, piHK: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Hotkey(self, piHK) + +proc put_Hotkey*(self: ptr IShellLinkDual, iHK: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Hotkey(self, iHK) + +proc get_ShowCommand*( + self: ptr IShellLinkDual, piShowCommand: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ShowCommand(self, piShowCommand) + +proc put_ShowCommand*( + self: ptr IShellLinkDual, iShowCommand: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ShowCommand(self, iShowCommand) + +proc Resolve*(self: ptr IShellLinkDual, fFlags: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resolve(self, fFlags) + +proc GetIconLocation*( + self: ptr IShellLinkDual, pbs: ptr BSTR, piIcon: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconLocation(self, pbs, piIcon) + +proc SetIconLocation*( + self: ptr IShellLinkDual, bs: BSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconLocation(self, bs, iIcon) + +proc Save*(self: ptr IShellLinkDual, vWhere: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, vWhere) + +proc get_Target*( + self: ptr IShellLinkDual2, ppfi: ptr ptr FolderItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Target(self, ppfi) + +proc get_Application*( + self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr IShellFolderViewDual, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc get_Folder*( + self: ptr IShellFolderViewDual, ppid: ptr ptr Folder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Folder(self, ppid) + +proc SelectedItems*( + self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItems +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectedItems(self, ppid) + +proc get_FocusedItem*( + self: ptr IShellFolderViewDual, ppid: ptr ptr FolderItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FocusedItem(self, ppid) + +proc SelectItem*( + self: ptr IShellFolderViewDual, pvfi: ptr VARIANT, dwFlags: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectItem(self, pvfi, dwFlags) + +proc PopupItemMenu*( + self: ptr IShellFolderViewDual, + pfi: ptr FolderItem, + vx: VARIANT, + vy: VARIANT, + pbs: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PopupItemMenu(self, pfi, vx, vy, pbs) + +proc get_Script*( + self: ptr IShellFolderViewDual, ppDisp: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Script(self, ppDisp) + +proc get_ViewOptions*( + self: ptr IShellFolderViewDual, plViewOptions: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ViewOptions(self, plViewOptions) + +proc get_CurrentViewMode*( + self: ptr IShellFolderViewDual2, pViewMode: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentViewMode(self, pViewMode) + +proc put_CurrentViewMode*( + self: ptr IShellFolderViewDual2, ViewMode: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_CurrentViewMode(self, ViewMode) + +proc SelectItemRelative*( + self: ptr IShellFolderViewDual2, iRelative: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectItemRelative(self, iRelative) + +proc get_GroupBy*( + self: ptr IShellFolderViewDual3, pbstrGroupBy: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_GroupBy(self, pbstrGroupBy) + +proc put_GroupBy*( + self: ptr IShellFolderViewDual3, bstrGroupBy: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_GroupBy(self, bstrGroupBy) + +proc get_FolderFlags*( + self: ptr IShellFolderViewDual3, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FolderFlags(self, pdwFlags) + +proc put_FolderFlags*( + self: ptr IShellFolderViewDual3, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_FolderFlags(self, dwFlags) + +proc get_SortColumns*( + self: ptr IShellFolderViewDual3, pbstrSortColumns: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SortColumns(self, pbstrSortColumns) + +proc put_SortColumns*( + self: ptr IShellFolderViewDual3, bstrSortColumns: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_SortColumns(self, bstrSortColumns) + +proc put_IconSize*( + self: ptr IShellFolderViewDual3, iIconSize: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_IconSize(self, iIconSize) + +proc get_IconSize*( + self: ptr IShellFolderViewDual3, piIconSize: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IconSize(self, piIconSize) + +proc FilterView*( + self: ptr IShellFolderViewDual3, bstrFilterText: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FilterView(self, bstrFilterText) + +proc get_Application*( + self: ptr IShellDispatch, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Application(self, ppid) + +proc get_Parent*( + self: ptr IShellDispatch, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Parent(self, ppid) + +proc NameSpace*( + self: ptr IShellDispatch, vDir: VARIANT, ppsdf: ptr ptr Folder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NameSpace(self, vDir, ppsdf) + +proc BrowseForFolder*( + self: ptr IShellDispatch, + Hwnd: LONG, + Title: BSTR, + Options: LONG, + RootFolder: VARIANT, + ppsdf: ptr ptr Folder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BrowseForFolder(self, Hwnd, Title, Options, RootFolder, ppsdf) + +proc Windows*( + self: ptr IShellDispatch, ppid: ptr ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Windows(self, ppid) + +proc Open*(self: ptr IShellDispatch, vDir: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self, vDir) + +proc Explore*(self: ptr IShellDispatch, vDir: VARIANT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Explore(self, vDir) + +proc MinimizeAll*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MinimizeAll(self) + +proc UndoMinimizeALL*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UndoMinimizeALL(self) + +proc FileRun*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FileRun(self) + +proc CascadeWindows*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CascadeWindows(self) + +proc TileVertically*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TileVertically(self) + +proc TileHorizontally*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TileHorizontally(self) + +proc ShutdownWindows*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShutdownWindows(self) + +proc Suspend*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Suspend(self) + +proc EjectPC*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EjectPC(self) + +proc SetTime*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTime(self) + +proc TrayProperties*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TrayProperties(self) + +proc Help*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Help(self) + +proc FindFiles*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFiles(self) + +proc FindComputer*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindComputer(self) + +proc RefreshMenu*(self: ptr IShellDispatch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RefreshMenu(self) + +proc ControlPanelItem*( + self: ptr IShellDispatch, bstrDir: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ControlPanelItem(self, bstrDir) + +proc IsRestricted*( + self: ptr IShellDispatch2, Group: BSTR, Restriction: BSTR, plRestrictValue: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRestricted(self, Group, Restriction, plRestrictValue) + +proc ShellExecute*( + self: ptr IShellDispatch2, + File: BSTR, + vArgs: VARIANT, + vDir: VARIANT, + vOperation: VARIANT, + vShow: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShellExecute(self, File, vArgs, vDir, vOperation, vShow) + +proc FindPrinter*( + self: ptr IShellDispatch2, name: BSTR, location: BSTR, model: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindPrinter(self, name, location, model) + +proc GetSystemInformation*( + self: ptr IShellDispatch2, name: BSTR, pv: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSystemInformation(self, name, pv) + +proc mServiceStart*( + self: ptr IShellDispatch2, + ServiceName: BSTR, + Persistent: VARIANT, + pSuccess: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ServiceStart(self, ServiceName, Persistent, pSuccess) + +proc mServiceStop*( + self: ptr IShellDispatch2, + ServiceName: BSTR, + Persistent: VARIANT, + pSuccess: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ServiceStop(self, ServiceName, Persistent, pSuccess) + +proc IsServiceRunning*( + self: ptr IShellDispatch2, ServiceName: BSTR, pRunning: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsServiceRunning(self, ServiceName, pRunning) + +proc CanStartStopService*( + self: ptr IShellDispatch2, ServiceName: BSTR, pCanStartStop: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanStartStopService(self, ServiceName, pCanStartStop) + +proc ShowBrowserBar*( + self: ptr IShellDispatch2, bstrClsid: BSTR, bShow: VARIANT, pSuccess: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowBrowserBar(self, bstrClsid, bShow, pSuccess) + +proc AddToRecent*( + self: ptr IShellDispatch3, varFile: VARIANT, bstrCategory: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddToRecent(self, varFile, bstrCategory) + +proc WindowsSecurity*(self: ptr IShellDispatch4): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WindowsSecurity(self) + +proc ToggleDesktop*(self: ptr IShellDispatch4): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ToggleDesktop(self) + +proc ExplorerPolicy*( + self: ptr IShellDispatch4, bstrPolicyName: BSTR, pValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExplorerPolicy(self, bstrPolicyName, pValue) + +proc GetSetting*( + self: ptr IShellDispatch4, lSetting: LONG, pResult: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSetting(self, lSetting, pResult) + +proc WindowSwitcher*(self: ptr IShellDispatch5): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WindowSwitcher(self) + +proc SearchCommand*(self: ptr IShellDispatch6): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SearchCommand(self) + +proc SetFocus*(self: ptr IFileSearchBand): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFocus(self) + +proc SetSearchParameters*( + self: ptr IFileSearchBand, + pbstrSearchID: ptr BSTR, + bNavToResults: VARIANT_BOOL, + pvarScope: ptr VARIANT, + pvarQueryFile: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSearchParameters( + self, pbstrSearchID, bNavToResults, pvarScope, pvarQueryFile + ) + +proc get_SearchID*( + self: ptr IFileSearchBand, pbstrSearchID: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SearchID(self, pbstrSearchID) + +proc get_Scope*( + self: ptr IFileSearchBand, pvarScope: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Scope(self, pvarScope) + +proc get_QueryFile*( + self: ptr IFileSearchBand, pvarFile: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_QueryFile(self, pvarFile) + +proc FinalBack*(self: ptr IWebWizardHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FinalBack(self) + +proc FinalNext*(self: ptr IWebWizardHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FinalNext(self) + +proc Cancel*(self: ptr IWebWizardHost): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cancel(self) + +proc put_Caption*( + self: ptr IWebWizardHost, bstrCaption: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Caption(self, bstrCaption) + +proc get_Caption*( + self: ptr IWebWizardHost, pbstrCaption: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Caption(self, pbstrCaption) + +proc put_Property*( + self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_Property(self, bstrPropertyName, pvProperty) + +proc get_Property*( + self: ptr IWebWizardHost, bstrPropertyName: BSTR, pvProperty: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Property(self, bstrPropertyName, pvProperty) + +proc SetWizardButtons*( + self: ptr IWebWizardHost, + vfEnableBack: VARIANT_BOOL, + vfEnableNext: VARIANT_BOOL, + vfLastPage: VARIANT_BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWizardButtons(self, vfEnableBack, vfEnableNext, vfLastPage) + +proc SetHeaderText*( + self: ptr IWebWizardHost, bstrHeaderTitle: BSTR, bstrHeaderSubtitle: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHeaderText(self, bstrHeaderTitle, bstrHeaderSubtitle) + +proc PassportAuthenticate*( + self: ptr INewWDEvents, bstrSignInUrl: BSTR, pvfAuthenitcated: ptr VARIANT_BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PassportAuthenticate(self, bstrSignInUrl, pvfAuthenitcated) + +proc Init*( + self: ptr IAutoComplete, + hwndEdit: HWND, + punkACL: ptr IUnknown, + pwszRegKeyPath: LPCWSTR, + pwszQuickComplete: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Init(self, hwndEdit, punkACL, pwszRegKeyPath, pwszQuickComplete) + +proc Enable*(self: ptr IAutoComplete, fEnable: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enable(self, fEnable) + +proc SetOptions*(self: ptr IAutoComplete2, dwFlag: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOptions(self, dwFlag) + +proc GetOptions*( + self: ptr IAutoComplete2, pdwFlag: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOptions(self, pdwFlag) + +proc NextItem*( + self: ptr IEnumACString, pszUrl: LPWSTR, cchMax: ULONG, pulSortIndex: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NextItem(self, pszUrl, cchMax, pulSortIndex) + +proc SetEnumOptions*( + self: ptr IEnumACString, dwOptions: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEnumOptions(self, dwOptions) + +proc GetEnumOptions*( + self: ptr IEnumACString, pdwOptions: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnumOptions(self, pdwOptions) + +proc SetAsyncMode*( + self: ptr IDataObjectAsyncCapability, fDoOpAsync: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAsyncMode(self, fDoOpAsync) + +proc GetAsyncMode*( + self: ptr IDataObjectAsyncCapability, pfIsOpAsync: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAsyncMode(self, pfIsOpAsync) + +proc StartOperation*( + self: ptr IDataObjectAsyncCapability, pbcReserved: ptr IBindCtx +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartOperation(self, pbcReserved) + +proc InOperation*( + self: ptr IDataObjectAsyncCapability, pfInAsyncOp: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InOperation(self, pfInAsyncOp) + +proc EndOperation*( + self: ptr IDataObjectAsyncCapability, + hResult: HRESULT, + pbcReserved: ptr IBindCtx, + dwEffects: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndOperation(self, hResult, pbcReserved, dwEffects) + +proc GetCount*( + self: ptr IObjectArray, pcObjects: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, pcObjects) + +proc GetAt*( + self: ptr IObjectArray, uiIndex: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAt(self, uiIndex, riid, ppv) + +proc AddObject*( + self: ptr IObjectCollection, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddObject(self, punk) + +proc AddFromArray*( + self: ptr IObjectCollection, poaSource: ptr IObjectArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddFromArray(self, poaSource) + +proc RemoveObjectAt*( + self: ptr IObjectCollection, uiIndex: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveObjectAt(self, uiIndex) + +proc Clear*(self: ptr IObjectCollection): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clear(self) + +proc QueryContextMenu*( + self: ptr IContextMenu, + hmenu: HMENU, + indexMenu: UINT, + idCmdFirst: UINT, + idCmdLast: UINT, + uFlags: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryContextMenu(self, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags) + +proc InvokeCommand*( + self: ptr IContextMenu, pici: ptr CMINVOKECOMMANDINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeCommand(self, pici) + +proc GetCommandString*( + self: ptr IContextMenu, + idCmd: UINT_PTR, + uType: UINT, + pReserved: ptr UINT, + pszName: ptr CHAR, + cchMax: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCommandString(self, idCmd, uType, pReserved, pszName, cchMax) + +proc HandleMenuMsg*( + self: ptr IContextMenu2, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleMenuMsg(self, uMsg, wParam, lParam) + +proc HandleMenuMsg2*( + self: ptr IContextMenu3, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + plResult: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleMenuMsg2(self, uMsg, wParam, lParam, plResult) + +proc SetKeyState*( + self: ptr IExecuteCommand, grfKeyState: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetKeyState(self, grfKeyState) + +proc SetParameters*( + self: ptr IExecuteCommand, pszParameters: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetParameters(self, pszParameters) + +proc SetPosition*(self: ptr IExecuteCommand, pt: POINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPosition(self, pt) + +proc SetShowWindow*( + self: ptr IExecuteCommand, nShow: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetShowWindow(self, nShow) + +proc SetNoShowUI*( + self: ptr IExecuteCommand, fNoShowUI: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNoShowUI(self, fNoShowUI) + +proc SetDirectory*( + self: ptr IExecuteCommand, pszDirectory: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDirectory(self, pszDirectory) + +proc Execute*(self: ptr IExecuteCommand): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Execute(self) + +proc Initialize*( + self: ptr IPersistFolder, pidl: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pidl) + +proc Run*(self: ptr IRunnableTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Run(self) + +proc Kill*(self: ptr IRunnableTask, bWait: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Kill(self, bWait) + +proc Suspend*(self: ptr IRunnableTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Suspend(self) + +proc Resume*(self: ptr IRunnableTask): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resume(self) + +proc IsRunning*(self: ptr IRunnableTask): ULONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRunning(self) + +proc AddTask*( + self: ptr IShellTaskScheduler, + prt: ptr IRunnableTask, + rtoid: REFTASKOWNERID, + lParam: DWORD_PTR, + dwPriority: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddTask(self, prt, rtoid, lParam, dwPriority) + +proc RemoveTasks*( + self: ptr IShellTaskScheduler, + rtoid: REFTASKOWNERID, + lParam: DWORD_PTR, + bWaitIfRunning: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveTasks(self, rtoid, lParam, bWaitIfRunning) + +proc CountTasks*( + self: ptr IShellTaskScheduler, rtoid: REFTASKOWNERID +): UINT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CountTasks(self, rtoid) + +proc Status*( + self: ptr IShellTaskScheduler, dwReleaseStatus: DWORD, dwThreadTimeout: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Status(self, dwReleaseStatus, dwThreadTimeout) + +proc GetCodePage*( + self: ptr IQueryCodePage, puiCodePage: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCodePage(self, puiCodePage) + +proc SetCodePage*( + self: ptr IQueryCodePage, uiCodePage: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCodePage(self, uiCodePage) + +proc GetCurFolder*( + self: ptr IPersistFolder2, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurFolder(self, ppidl) + +proc InitializeEx*( + self: ptr IPersistFolder3, + pbc: ptr IBindCtx, + pidlRoot: PCIDLIST_ABSOLUTE, + ppfti: ptr PERSIST_FOLDER_TARGET_INFO, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeEx(self, pbc, pidlRoot, ppfti) + +proc GetFolderTargetInfo*( + self: ptr IPersistFolder3, ppfti: ptr PERSIST_FOLDER_TARGET_INFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderTargetInfo(self, ppfti) + +proc SetIDList*( + self: ptr IPersistIDList, pidl: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIDList(self, pidl) + +proc GetIDList*( + self: ptr IPersistIDList, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDList(self, ppidl) + +proc Next*( + self: ptr IEnumIDList, + celt: ULONG, + rgelt: ptr PITEMID_CHILD, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumIDList, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumIDList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumIDList, ppenum: ptr ptr IEnumIDList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc Next*( + self: ptr IEnumFullIDList, + celt: ULONG, + rgelt: ptr PIDLIST_ABSOLUTE, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumFullIDList, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumFullIDList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumFullIDList, ppenum: ptr ptr IEnumFullIDList +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc SetMode*( + self: ptr IObjectWithFolderEnumMode, feMode: FOLDER_ENUM_MODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMode(self, feMode) + +proc GetMode*( + self: ptr IObjectWithFolderEnumMode, pfeMode: ptr FOLDER_ENUM_MODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMode(self, pfeMode) + +proc SetItem*( + self: ptr IParseAndCreateItem, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetItem(self, psi) + +proc GetItem*( + self: ptr IParseAndCreateItem, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItem(self, riid, ppv) + +proc ParseDisplayName*( + self: ptr IShellFolder, + hwnd: HWND, + pbc: ptr IBindCtx, + pszDisplayName: LPWSTR, + pchEaten: ptr ULONG, + ppidl: ptr PIDLIST_RELATIVE, + pdwAttributes: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParseDisplayName( + self, hwnd, pbc, pszDisplayName, pchEaten, ppidl, pdwAttributes + ) + +proc EnumObjects*( + self: ptr IShellFolder, + hwnd: HWND, + grfFlags: SHCONTF, + ppenumIDList: ptr ptr IEnumIDList, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumObjects(self, hwnd, grfFlags, ppenumIDList) + +proc BindToObject*( + self: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToObject(self, pidl, pbc, riid, ppv) + +proc BindToStorage*( + self: ptr IShellFolder, + pidl: PCUIDLIST_RELATIVE, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToStorage(self, pidl, pbc, riid, ppv) + +proc CompareIDs*( + self: ptr IShellFolder, + lParam: LPARAM, + pidl1: PCUIDLIST_RELATIVE, + pidl2: PCUIDLIST_RELATIVE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareIDs(self, lParam, pidl1, pidl2) + +proc CreateViewObject*( + self: ptr IShellFolder, hwndOwner: HWND, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateViewObject(self, hwndOwner, riid, ppv) + +proc GetAttributesOf*( + self: ptr IShellFolder, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + rgfInOut: ptr SFGAOF, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributesOf(self, cidl, apidl, rgfInOut) + +proc GetUIObjectOf*( + self: ptr IShellFolder, + hwndOwner: HWND, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + riid: REFIID, + rgfReserved: ptr UINT, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUIObjectOf(self, hwndOwner, cidl, apidl, riid, rgfReserved, ppv) + +proc GetDisplayNameOf*( + self: ptr IShellFolder, pidl: PCUITEMID_CHILD, uFlags: SHGDNF, pName: ptr STRRET +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayNameOf(self, pidl, uFlags, pName) + +proc SetNameOf*( + self: ptr IShellFolder, + hwnd: HWND, + pidl: PCUITEMID_CHILD, + pszName: LPCWSTR, + uFlags: SHGDNF, + ppidlOut: ptr PITEMID_CHILD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNameOf(self, hwnd, pidl, pszName, uFlags, ppidlOut) + +proc Next*( + self: ptr IEnumExtraSearch, + celt: ULONG, + rgelt: ptr EXTRASEARCH, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumExtraSearch, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumExtraSearch): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumExtraSearch, ppenum: ptr ptr IEnumExtraSearch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc GetDefaultSearchGUID*( + self: ptr IShellFolder2, pguid: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultSearchGUID(self, pguid) + +proc EnumSearches*( + self: ptr IShellFolder2, ppenum: ptr ptr IEnumExtraSearch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumSearches(self, ppenum) + +proc GetDefaultColumn*( + self: ptr IShellFolder2, dwRes: DWORD, pSort: ptr ULONG, pDisplay: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultColumn(self, dwRes, pSort, pDisplay) + +proc GetDefaultColumnState*( + self: ptr IShellFolder2, iColumn: UINT, pcsFlags: ptr SHCOLSTATEF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultColumnState(self, iColumn, pcsFlags) + +proc GetDetailsEx*( + self: ptr IShellFolder2, + pidl: PCUITEMID_CHILD, + pscid: ptr SHCOLUMNID, + pv: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDetailsEx(self, pidl, pscid, pv) + +proc GetDetailsOf*( + self: ptr IShellFolder2, pidl: PCUITEMID_CHILD, iColumn: UINT, psd: ptr SHELLDETAILS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDetailsOf(self, pidl, iColumn, psd) + +proc MapColumnToSCID*( + self: ptr IShellFolder2, iColumn: UINT, pscid: ptr SHCOLUMNID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MapColumnToSCID(self, iColumn, pscid) + +proc SetFolderViewOptions*( + self: ptr IFolderViewOptions, + fvoMask: FOLDERVIEWOPTIONS, + fvoFlags: FOLDERVIEWOPTIONS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolderViewOptions(self, fvoMask, fvoFlags) + +proc GetFolderViewOptions*( + self: ptr IFolderViewOptions, pfvoFlags: ptr FOLDERVIEWOPTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderViewOptions(self, pfvoFlags) + +proc TranslateAccelerator*( + self: ptr IShellView, pmsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, pmsg) + +proc EnableModeless*( + self: ptr IShellView, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModeless(self, fEnable) + +proc UIActivate*(self: ptr IShellView, uState: UINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UIActivate(self, uState) + +proc Refresh*(self: ptr IShellView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Refresh(self) + +proc CreateViewWindow*( + self: ptr IShellView, + psvPrevious: ptr IShellView, + pfs: LPCFOLDERSETTINGS, + psb: ptr IShellBrowser, + prcView: ptr RECT, + phWnd: ptr HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateViewWindow(self, psvPrevious, pfs, psb, prcView, phWnd) + +proc DestroyViewWindow*(self: ptr IShellView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyViewWindow(self) + +proc GetCurrentInfo*( + self: ptr IShellView, pfs: LPFOLDERSETTINGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentInfo(self, pfs) + +proc AddPropertySheetPages*( + self: ptr IShellView, dwReserved: DWORD, pfn: LPFNSVADDPROPSHEETPAGE, lparam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPropertySheetPages(self, dwReserved, pfn, lparam) + +proc SaveViewState*(self: ptr IShellView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveViewState(self) + +proc SelectItem*( + self: ptr IShellView, pidlItem: PCUITEMID_CHILD, uFlags: SVSIF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectItem(self, pidlItem, uFlags) + +proc GetItemObject*( + self: ptr IShellView, uItem: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemObject(self, uItem, riid, ppv) + +proc GetView*( + self: ptr IShellView2, pvid: ptr SHELLVIEWID, uView: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetView(self, pvid, uView) + +proc CreateViewWindow2*( + self: ptr IShellView2, lpParams: LPSV2CVW2_PARAMS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateViewWindow2(self, lpParams) + +proc HandleRename*( + self: ptr IShellView2, pidlNew: PCUITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleRename(self, pidlNew) + +proc SelectAndPositionItem*( + self: ptr IShellView2, pidlItem: PCUITEMID_CHILD, uFlags: UINT, ppt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectAndPositionItem(self, pidlItem, uFlags, ppt) + +proc CreateViewWindow3*( + self: ptr IShellView3, + psbOwner: ptr IShellBrowser, + psvPrev: ptr IShellView, + dwViewFlags: SV3CVW3_FLAGS, + dwMask: FOLDERFLAGS, + dwFlags: FOLDERFLAGS, + fvMode: FOLDERVIEWMODE, + pvid: ptr SHELLVIEWID, + prcView: ptr RECT, + phwndView: ptr HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateViewWindow3( + self, psbOwner, psvPrev, dwViewFlags, dwMask, dwFlags, fvMode, pvid, prcView, + phwndView, + ) + +proc GetCurrentViewMode*( + self: ptr IFolderView, pViewMode: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentViewMode(self, pViewMode) + +proc SetCurrentViewMode*( + self: ptr IFolderView, ViewMode: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCurrentViewMode(self, ViewMode) + +proc GetFolder*( + self: ptr IFolderView, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolder(self, riid, ppv) + +proc Item*( + self: ptr IFolderView, iItemIndex: int32, ppidl: ptr PITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Item(self, iItemIndex, ppidl) + +proc ItemCount*( + self: ptr IFolderView, uFlags: UINT, pcItems: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ItemCount(self, uFlags, pcItems) + +proc Items*( + self: ptr IFolderView, uFlags: UINT, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Items(self, uFlags, riid, ppv) + +proc GetSelectionMarkedItem*( + self: ptr IFolderView, piItem: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectionMarkedItem(self, piItem) + +proc GetFocusedItem*( + self: ptr IFolderView, piItem: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFocusedItem(self, piItem) + +proc GetItemPosition*( + self: ptr IFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemPosition(self, pidl, ppt) + +proc GetSpacing*(self: ptr IFolderView, ppt: ptr POINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSpacing(self, ppt) + +proc GetDefaultSpacing*( + self: ptr IFolderView, ppt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultSpacing(self, ppt) + +proc GetAutoArrange*(self: ptr IFolderView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAutoArrange(self) + +proc SelectItem*( + self: ptr IFolderView, iItem: int32, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectItem(self, iItem, dwFlags) + +proc SelectAndPositionItems*( + self: ptr IFolderView, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + apt: ptr POINT, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectAndPositionItems(self, cidl, apidl, apt, dwFlags) + +proc GetCondition*( + self: ptr ISearchBoxInfo, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCondition(self, riid, ppv) + +proc GetText*(self: ptr ISearchBoxInfo, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetText(self, ppsz) + +proc SetGroupBy*( + self: ptr IFolderView2, key: REFPROPERTYKEY, fAscending: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGroupBy(self, key, fAscending) + +proc GetGroupBy*( + self: ptr IFolderView2, pkey: ptr PROPERTYKEY, pfAscending: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGroupBy(self, pkey, pfAscending) + +proc SetViewProperty*( + self: ptr IFolderView2, + pidl: PCUITEMID_CHILD, + propkey: REFPROPERTYKEY, + propvar: REFPROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetViewProperty(self, pidl, propkey, propvar) + +proc GetViewProperty*( + self: ptr IFolderView2, + pidl: PCUITEMID_CHILD, + propkey: REFPROPERTYKEY, + ppropvar: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewProperty(self, pidl, propkey, ppropvar) + +proc SetTileViewProperties*( + self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTileViewProperties(self, pidl, pszPropList) + +proc SetExtendedTileViewProperties*( + self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pszPropList: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetExtendedTileViewProperties(self, pidl, pszPropList) + +proc SetText*( + self: ptr IFolderView2, iType: FVTEXTTYPE, pwszText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetText(self, iType, pwszText) + +proc SetCurrentFolderFlags*( + self: ptr IFolderView2, dwMask: DWORD, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCurrentFolderFlags(self, dwMask, dwFlags) + +proc GetCurrentFolderFlags*( + self: ptr IFolderView2, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentFolderFlags(self, pdwFlags) + +proc GetSortColumnCount*( + self: ptr IFolderView2, pcColumns: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSortColumnCount(self, pcColumns) + +proc SetSortColumns*( + self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSortColumns(self, rgSortColumns, cColumns) + +proc GetSortColumns*( + self: ptr IFolderView2, rgSortColumns: ptr SORTCOLUMN, cColumns: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSortColumns(self, rgSortColumns, cColumns) + +proc GetItem*( + self: ptr IFolderView2, iItem: int32, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItem(self, iItem, riid, ppv) + +proc GetVisibleItem*( + self: ptr IFolderView2, iStart: int32, fPrevious: WINBOOL, piItem: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVisibleItem(self, iStart, fPrevious, piItem) + +proc GetSelectedItem*( + self: ptr IFolderView2, iStart: int32, piItem: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectedItem(self, iStart, piItem) + +proc GetSelection*( + self: ptr IFolderView2, fNoneImpliesFolder: WINBOOL, ppsia: ptr ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelection(self, fNoneImpliesFolder, ppsia) + +proc GetSelectionState*( + self: ptr IFolderView2, pidl: PCUITEMID_CHILD, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectionState(self, pidl, pdwFlags) + +proc InvokeVerbOnSelection*( + self: ptr IFolderView2, pszVerb: LPCSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvokeVerbOnSelection(self, pszVerb) + +proc SetViewModeAndIconSize*( + self: ptr IFolderView2, uViewMode: FOLDERVIEWMODE, iImageSize: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetViewModeAndIconSize(self, uViewMode, iImageSize) + +proc GetViewModeAndIconSize*( + self: ptr IFolderView2, puViewMode: ptr FOLDERVIEWMODE, piImageSize: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewModeAndIconSize(self, puViewMode, piImageSize) + +proc SetGroupSubsetCount*( + self: ptr IFolderView2, cVisibleRows: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGroupSubsetCount(self, cVisibleRows) + +proc GetGroupSubsetCount*( + self: ptr IFolderView2, pcVisibleRows: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGroupSubsetCount(self, pcVisibleRows) + +proc SetRedraw*( + self: ptr IFolderView2, fRedrawOn: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRedraw(self, fRedrawOn) + +proc IsMoveInSameFolder*(self: ptr IFolderView2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsMoveInSameFolder(self) + +proc DoRename*(self: ptr IFolderView2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoRename(self) + +proc GetColumnPropertyList*( + self: ptr IFolderViewSettings, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnPropertyList(self, riid, ppv) + +proc GetGroupByProperty*( + self: ptr IFolderViewSettings, pkey: ptr PROPERTYKEY, pfGroupAscending: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGroupByProperty(self, pkey, pfGroupAscending) + +proc GetViewMode*( + self: ptr IFolderViewSettings, plvm: ptr FOLDERLOGICALVIEWMODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewMode(self, plvm) + +proc GetIconSize*( + self: ptr IFolderViewSettings, puIconSize: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconSize(self, puIconSize) + +proc GetFolderFlags*( + self: ptr IFolderViewSettings, + pfolderMask: ptr FOLDERFLAGS, + pfolderFlags: ptr FOLDERFLAGS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderFlags(self, pfolderMask, pfolderFlags) + +proc GetSortColumns*( + self: ptr IFolderViewSettings, + rgSortColumns: ptr SORTCOLUMN, + cColumnsIn: UINT, + pcColumnsOut: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSortColumns(self, rgSortColumns, cColumnsIn, pcColumnsOut) + +proc GetGroupSubsetCount*( + self: ptr IFolderViewSettings, pcVisibleRows: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGroupSubsetCount(self, pcVisibleRows) + +proc mSetBackgroundColor*( + self: ptr IPreviewHandlerVisuals, color: COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBackgroundColor(self, color) + +proc SetFont*( + self: ptr IPreviewHandlerVisuals, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFont(self, plf) + +proc SetTextColor*( + self: ptr IPreviewHandlerVisuals, color: COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTextColor(self, color) + +proc SetWatermark*( + self: ptr IVisualProperties, hbmp: HBITMAP, vpwf: VPWATERMARKFLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWatermark(self, hbmp, vpwf) + +proc SetColor*( + self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, cr: COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetColor(self, vpcf, cr) + +proc GetColor*( + self: ptr IVisualProperties, vpcf: VPCOLORFLAGS, pcr: ptr COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColor(self, vpcf, pcr) + +proc SetItemHeight*( + self: ptr IVisualProperties, cyItemInPixels: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetItemHeight(self, cyItemInPixels) + +proc GetItemHeight*( + self: ptr IVisualProperties, cyItemInPixels: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemHeight(self, cyItemInPixels) + +proc SetFont*( + self: ptr IVisualProperties, plf: ptr LOGFONTW, bRedraw: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFont(self, plf, bRedraw) + +proc GetFont*( + self: ptr IVisualProperties, plf: ptr LOGFONTW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFont(self, plf) + +proc SetTheme*( + self: ptr IVisualProperties, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTheme(self, pszSubAppName, pszSubIdList) + +proc OnDefaultCommand*( + self: ptr ICommDlgBrowser, ppshv: ptr IShellView +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDefaultCommand(self, ppshv) + +proc OnStateChange*( + self: ptr ICommDlgBrowser, ppshv: ptr IShellView, uChange: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStateChange(self, ppshv, uChange) + +proc IncludeObject*( + self: ptr ICommDlgBrowser, ppshv: ptr IShellView, pidl: PCUITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IncludeObject(self, ppshv, pidl) + +proc Notify*( + self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, dwNotifyType: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Notify(self, ppshv, dwNotifyType) + +proc GetDefaultMenuText*( + self: ptr ICommDlgBrowser2, ppshv: ptr IShellView, pszText: LPWSTR, cchMax: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultMenuText(self, ppshv, pszText, cchMax) + +proc GetViewFlags*( + self: ptr ICommDlgBrowser2, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewFlags(self, pdwFlags) + +proc OnColumnClicked*( + self: ptr ICommDlgBrowser3, ppshv: ptr IShellView, iColumn: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnColumnClicked(self, ppshv, iColumn) + +proc GetCurrentFilter*( + self: ptr ICommDlgBrowser3, pszFileSpec: LPWSTR, cchFileSpec: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentFilter(self, pszFileSpec, cchFileSpec) + +proc OnPreViewCreated*( + self: ptr ICommDlgBrowser3, ppshv: ptr IShellView +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPreViewCreated(self, ppshv) + +proc SetColumnInfo*( + self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetColumnInfo(self, propkey, pcmci) + +proc GetColumnInfo*( + self: ptr IColumnManager, propkey: REFPROPERTYKEY, pcmci: ptr CM_COLUMNINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnInfo(self, propkey, pcmci) + +proc GetColumnCount*( + self: ptr IColumnManager, dwFlags: CM_ENUM_FLAGS, puCount: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnCount(self, dwFlags, puCount) + +proc GetColumns*( + self: ptr IColumnManager, + dwFlags: CM_ENUM_FLAGS, + rgkeyOrder: ptr PROPERTYKEY, + cColumns: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumns(self, dwFlags, rgkeyOrder, cColumns) + +proc SetColumns*( + self: ptr IColumnManager, rgkeyOrder: ptr PROPERTYKEY, cVisible: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetColumns(self, rgkeyOrder, cVisible) + +proc SetFilter*( + self: ptr IFolderFilterSite, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFilter(self, punk) + +proc ShouldShow*( + self: ptr IFolderFilter, + psf: ptr IShellFolder, + pidlFolder: PCIDLIST_ABSOLUTE, + pidlItem: PCUITEMID_CHILD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShouldShow(self, psf, pidlFolder, pidlItem) + +proc GetEnumFlags*( + self: ptr IFolderFilter, + psf: ptr IShellFolder, + pidlFolder: PCIDLIST_ABSOLUTE, + phwnd: ptr HWND, + pgrfFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnumFlags(self, psf, pidlFolder, phwnd, pgrfFlags) + +proc OnFocusChangeIS*( + self: ptr IInputObjectSite, punkObj: ptr IUnknown, fSetFocus: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFocusChangeIS(self, punkObj, fSetFocus) + +proc UIActivateIO*( + self: ptr IInputObject, fActivate: WINBOOL, pMsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UIActivateIO(self, fActivate, pMsg) + +proc HasFocusIO*(self: ptr IInputObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasFocusIO(self) + +proc TranslateAcceleratorIO*( + self: ptr IInputObject, pMsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAcceleratorIO(self, pMsg) + +proc TranslateAcceleratorGlobal*( + self: ptr IInputObject2, pMsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAcceleratorGlobal(self, pMsg) + +proc GetIconOf*( + self: ptr IShellIcon, pidl: PCUITEMID_CHILD, flags: UINT, pIconIndex: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconOf(self, pidl, flags, pIconIndex) + +proc InsertMenusSB*( + self: ptr IShellBrowser, hmenuShared: HMENU, lpMenuWidths: LPOLEMENUGROUPWIDTHS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertMenusSB(self, hmenuShared, lpMenuWidths) + +proc SetMenuSB*( + self: ptr IShellBrowser, + hmenuShared: HMENU, + holemenuRes: HOLEMENU, + hwndActiveObject: HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMenuSB(self, hmenuShared, holemenuRes, hwndActiveObject) + +proc RemoveMenusSB*( + self: ptr IShellBrowser, hmenuShared: HMENU +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveMenusSB(self, hmenuShared) + +proc SetStatusTextSB*( + self: ptr IShellBrowser, pszStatusText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStatusTextSB(self, pszStatusText) + +proc EnableModelessSB*( + self: ptr IShellBrowser, fEnable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableModelessSB(self, fEnable) + +proc TranslateAcceleratorSB*( + self: ptr IShellBrowser, pmsg: ptr MSG, wID: WORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAcceleratorSB(self, pmsg, wID) + +proc BrowseObject*( + self: ptr IShellBrowser, pidl: PCUIDLIST_RELATIVE, wFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BrowseObject(self, pidl, wFlags) + +proc GetViewStateStream*( + self: ptr IShellBrowser, grfMode: DWORD, ppStrm: ptr ptr IStream +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewStateStream(self, grfMode, ppStrm) + +proc GetControlWindow*( + self: ptr IShellBrowser, id: UINT, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetControlWindow(self, id, phwnd) + +proc SendControlMsg*( + self: ptr IShellBrowser, + id: UINT, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pret: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SendControlMsg(self, id, uMsg, wParam, lParam, pret) + +proc QueryActiveShellView*( + self: ptr IShellBrowser, ppshv: ptr ptr IShellView +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryActiveShellView(self, ppshv) + +proc OnViewWindowActive*( + self: ptr IShellBrowser, pshv: ptr IShellView +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnViewWindowActive(self, pshv) + +proc SetToolbarItems*( + self: ptr IShellBrowser, lpButtons: LPTBBUTTONSB, nButtons: UINT, uFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetToolbarItems(self, lpButtons, nButtons, uFlags) + +proc ProfferService*( + self: ptr IProfferService, + guidService: REFGUID, + psp: ptr IServiceProvider, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ProfferService(self, guidService, psp, pdwCookie) + +proc RevokeService*( + self: ptr IProfferService, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RevokeService(self, dwCookie) + +proc BindToHandler*( + self: ptr IShellItem, + pbc: ptr IBindCtx, + bhid: REFGUID, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToHandler(self, pbc, bhid, riid, ppv) + +proc GetParent*( + self: ptr IShellItem, ppsi: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParent(self, ppsi) + +proc GetDisplayName*( + self: ptr IShellItem, sigdnName: SIGDN, ppszName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayName(self, sigdnName, ppszName) + +proc GetAttributes*( + self: ptr IShellItem, sfgaoMask: SFGAOF, psfgaoAttribs: ptr SFGAOF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributes(self, sfgaoMask, psfgaoAttribs) + +proc Compare*( + self: ptr IShellItem, psi: ptr IShellItem, hint: SICHINTF, piOrder: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Compare(self, psi, hint, piOrder) + +proc GetPropertyStore*( + self: ptr IShellItem2, flags: GETPROPERTYSTOREFLAGS, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStore(self, flags, riid, ppv) + +proc GetPropertyStoreWithCreateObject*( + self: ptr IShellItem2, + flags: GETPROPERTYSTOREFLAGS, + punkCreateObject: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStoreWithCreateObject( + self, flags, punkCreateObject, riid, ppv + ) + +proc GetPropertyStoreForKeys*( + self: ptr IShellItem2, + rgKeys: ptr PROPERTYKEY, + cKeys: UINT, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStoreForKeys(self, rgKeys, cKeys, flags, riid, ppv) + +proc GetPropertyDescriptionList*( + self: ptr IShellItem2, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDescriptionList(self, keyType, riid, ppv) + +proc Update*(self: ptr IShellItem2, pbc: ptr IBindCtx): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Update(self, pbc) + +proc GetProperty*( + self: ptr IShellItem2, key: REFPROPERTYKEY, ppropvar: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, key, ppropvar) + +proc GetCLSID*( + self: ptr IShellItem2, key: REFPROPERTYKEY, pclsid: ptr CLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCLSID(self, key, pclsid) + +proc GetFileTime*( + self: ptr IShellItem2, key: REFPROPERTYKEY, pft: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFileTime(self, key, pft) + +proc GetInt32*( + self: ptr IShellItem2, key: REFPROPERTYKEY, pi: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInt32(self, key, pi) + +proc GetString*( + self: ptr IShellItem2, key: REFPROPERTYKEY, ppsz: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetString(self, key, ppsz) + +proc GetUInt32*( + self: ptr IShellItem2, key: REFPROPERTYKEY, pui: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUInt32(self, key, pui) + +proc GetUInt64*( + self: ptr IShellItem2, key: REFPROPERTYKEY, pull: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUInt64(self, key, pull) + +proc GetBool*( + self: ptr IShellItem2, key: REFPROPERTYKEY, pf: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBool(self, key, pf) + +proc GetImage*( + self: ptr IShellItemImageFactory, size: SIZE, flags: SIIGBF, phbm: ptr HBITMAP +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetImage(self, size, flags, phbm) + +proc OnPictureChange*( + self: ptr IUserAccountChangeCallback, pszUserName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPictureChange(self, pszUserName) + +proc Next*( + self: ptr IEnumShellItems, + celt: ULONG, + rgelt: ptr ptr IShellItem, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumShellItems, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumShellItems): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumShellItems, ppenum: ptr ptr IEnumShellItems +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc UpdateProgress*( + self: ptr ITransferAdviseSink, + ullSizeCurrent: ULONGLONG, + ullSizeTotal: ULONGLONG, + nFilesCurrent: int32, + nFilesTotal: int32, + nFoldersCurrent: int32, + nFoldersTotal: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateProgress( + self, ullSizeCurrent, ullSizeTotal, nFilesCurrent, nFilesTotal, nFoldersCurrent, + nFoldersTotal, + ) + +proc UpdateTransferState*( + self: ptr ITransferAdviseSink, ts: TRANSFER_ADVISE_STATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateTransferState(self, ts) + +proc ConfirmOverwrite*( + self: ptr ITransferAdviseSink, + psiSource: ptr IShellItem, + psiDestParent: ptr IShellItem, + pszName: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConfirmOverwrite(self, psiSource, psiDestParent, pszName) + +proc ConfirmEncryptionLoss*( + self: ptr ITransferAdviseSink, psiSource: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConfirmEncryptionLoss(self, psiSource) + +proc FileFailure*( + self: ptr ITransferAdviseSink, + psi: ptr IShellItem, + pszItem: LPCWSTR, + hrError: HRESULT, + pszRename: LPWSTR, + cchRename: ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FileFailure(self, psi, pszItem, hrError, pszRename, cchRename) + +proc SubStreamFailure*( + self: ptr ITransferAdviseSink, + psi: ptr IShellItem, + pszStreamName: LPCWSTR, + hrError: HRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SubStreamFailure(self, psi, pszStreamName, hrError) + +proc PropertyFailure*( + self: ptr ITransferAdviseSink, + psi: ptr IShellItem, + pkey: ptr PROPERTYKEY, + hrError: HRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PropertyFailure(self, psi, pkey, hrError) + +proc Advise*( + self: ptr ITransferSource, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, psink, pdwCookie) + +proc Unadvise*(self: ptr ITransferSource, dwCookie: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc SetProperties*( + self: ptr ITransferSource, pproparray: ptr IPropertyChangeArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProperties(self, pproparray) + +proc OpenItem*( + self: ptr ITransferSource, + psi: ptr IShellItem, + flags: TRANSFER_SOURCE_FLAGS, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenItem(self, psi, flags, riid, ppv) + +proc MoveItem*( + self: ptr ITransferSource, + psi: ptr IShellItem, + psiParentDst: ptr IShellItem, + pszNameDst: LPCWSTR, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNew: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveItem(self, psi, psiParentDst, pszNameDst, flags, ppsiNew) + +proc RecycleItem*( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + psiParentDest: ptr IShellItem, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNewDest: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecycleItem(self, psiSource, psiParentDest, flags, ppsiNewDest) + +proc RemoveItem*( + self: ptr ITransferSource, psiSource: ptr IShellItem, flags: TRANSFER_SOURCE_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveItem(self, psiSource, flags) + +proc RenameItem*( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + pszNewName: LPCWSTR, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNewDest: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RenameItem(self, psiSource, pszNewName, flags, ppsiNewDest) + +proc LinkItem*( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + psiParentDest: ptr IShellItem, + pszNewName: LPCWSTR, + flags: TRANSFER_SOURCE_FLAGS, + ppsiNewDest: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LinkItem(self, psiSource, psiParentDest, pszNewName, flags, ppsiNewDest) + +proc ApplyPropertiesToItem*( + self: ptr ITransferSource, psiSource: ptr IShellItem, ppsiNew: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyPropertiesToItem(self, psiSource, ppsiNew) + +proc GetDefaultDestinationName*( + self: ptr ITransferSource, + psiSource: ptr IShellItem, + psiParentDest: ptr IShellItem, + ppszDestinationName: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultDestinationName( + self, psiSource, psiParentDest, ppszDestinationName + ) + +proc EnterFolder*( + self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnterFolder(self, psiChildFolderDest) + +proc LeaveFolder*( + self: ptr ITransferSource, psiChildFolderDest: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LeaveFolder(self, psiChildFolderDest) + +proc Next*( + self: ptr IEnumResources, + celt: ULONG, + psir: ptr SHELL_ITEM_RESOURCE, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, psir, pceltFetched) + +proc Skip*(self: ptr IEnumResources, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumResources): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumResources, ppenumr: ptr ptr IEnumResources +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenumr) + +proc GetAttributes*( + self: ptr IShellItemResources, pdwAttributes: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributes(self, pdwAttributes) + +proc GetSize*( + self: ptr IShellItemResources, pullSize: ptr ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, pullSize) + +proc GetTimes*( + self: ptr IShellItemResources, + pftCreation: ptr FILETIME, + pftWrite: ptr FILETIME, + pftAccess: ptr FILETIME, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTimes(self, pftCreation, pftWrite, pftAccess) + +proc SetTimes*( + self: ptr IShellItemResources, + pftCreation: ptr FILETIME, + pftWrite: ptr FILETIME, + pftAccess: ptr FILETIME, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTimes(self, pftCreation, pftWrite, pftAccess) + +proc GetResourceDescription*( + self: ptr IShellItemResources, + pcsir: ptr SHELL_ITEM_RESOURCE, + ppszDescription: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetResourceDescription(self, pcsir, ppszDescription) + +proc EnumResources*( + self: ptr IShellItemResources, ppenumr: ptr ptr IEnumResources +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumResources(self, ppenumr) + +proc SupportsResource*( + self: ptr IShellItemResources, pcsir: ptr SHELL_ITEM_RESOURCE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SupportsResource(self, pcsir) + +proc OpenResource*( + self: ptr IShellItemResources, + pcsir: ptr SHELL_ITEM_RESOURCE, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OpenResource(self, pcsir, riid, ppv) + +proc CreateResource*( + self: ptr IShellItemResources, + pcsir: ptr SHELL_ITEM_RESOURCE, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateResource(self, pcsir, riid, ppv) + +proc MarkForDelete*(self: ptr IShellItemResources): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MarkForDelete(self) + +proc Advise*( + self: ptr ITransferDestination, psink: ptr ITransferAdviseSink, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, psink, pdwCookie) + +proc Unadvise*( + self: ptr ITransferDestination, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc CreateItem*( + self: ptr ITransferDestination, + pszName: LPCWSTR, + dwAttributes: DWORD, + ullSize: ULONGLONG, + flags: TRANSFER_SOURCE_FLAGS, + riidItem: REFIID, + ppvItem: ptr pointer, + riidResources: REFIID, + ppvResources: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateItem( + self, pszName, dwAttributes, ullSize, flags, riidItem, ppvItem, riidResources, + ppvResources, + ) + +proc ReadAsync*( + self: ptr IStreamAsync, + pv: pointer, + cb: DWORD, + pcbRead: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadAsync(self, pv, cb, pcbRead, lpOverlapped) + +proc WriteAsync*( + self: ptr IStreamAsync, + lpBuffer: pointer, + cb: DWORD, + pcbWritten: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteAsync(self, lpBuffer, cb, pcbWritten, lpOverlapped) + +proc OverlappedResult*( + self: ptr IStreamAsync, + lpOverlapped: LPOVERLAPPED, + lpNumberOfBytesTransferred: LPDWORD, + bWait: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OverlappedResult(self, lpOverlapped, lpNumberOfBytesTransferred, bWait) + +proc CancelIo*(self: ptr IStreamAsync): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CancelIo(self) + +proc GetSectorSize*( + self: ptr IStreamUnbufferedInfo, pcbSectorSize: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSectorSize(self, pcbSectorSize) + +proc StartOperations*( + self: ptr IFileOperationProgressSink +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartOperations(self) + +proc FinishOperations*( + self: ptr IFileOperationProgressSink, hrResult: HRESULT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FinishOperations(self, hrResult) + +proc PreRenameItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + pszNewName: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreRenameItem(self, dwFlags, psiItem, pszNewName) + +proc PostRenameItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + pszNewName: LPCWSTR, + hrRename: HRESULT, + psiNewlyCreated: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostRenameItem( + self, dwFlags, psiItem, pszNewName, hrRename, psiNewlyCreated + ) + +proc PreMoveItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreMoveItem(self, dwFlags, psiItem, psiDestinationFolder, pszNewName) + +proc PostMoveItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + hrMove: HRESULT, + psiNewlyCreated: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostMoveItem( + self, dwFlags, psiItem, psiDestinationFolder, pszNewName, hrMove, psiNewlyCreated + ) + +proc PreCopyItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreCopyItem(self, dwFlags, psiItem, psiDestinationFolder, pszNewName) + +proc PostCopyItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + hrCopy: HRESULT, + psiNewlyCreated: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostCopyItem( + self, dwFlags, psiItem, psiDestinationFolder, pszNewName, hrCopy, psiNewlyCreated + ) + +proc PreDeleteItem*( + self: ptr IFileOperationProgressSink, dwFlags: DWORD, psiItem: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreDeleteItem(self, dwFlags, psiItem) + +proc PostDeleteItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiItem: ptr IShellItem, + hrDelete: HRESULT, + psiNewlyCreated: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostDeleteItem(self, dwFlags, psiItem, hrDelete, psiNewlyCreated) + +proc PreNewItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PreNewItem(self, dwFlags, psiDestinationFolder, pszNewName) + +proc PostNewItem*( + self: ptr IFileOperationProgressSink, + dwFlags: DWORD, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + pszTemplateName: LPCWSTR, + dwFileAttributes: DWORD, + hrNew: HRESULT, + psiNewItem: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostNewItem( + self, dwFlags, psiDestinationFolder, pszNewName, pszTemplateName, + dwFileAttributes, hrNew, psiNewItem, + ) + +proc UpdateProgress*( + self: ptr IFileOperationProgressSink, iWorkTotal: UINT, iWorkSoFar: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateProgress(self, iWorkTotal, iWorkSoFar) + +proc ResetTimer*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetTimer(self) + +proc PauseTimer*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PauseTimer(self) + +proc ResumeTimer*(self: ptr IFileOperationProgressSink): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResumeTimer(self) + +proc BindToHandler*( + self: ptr IShellItemArray, + pbc: ptr IBindCtx, + bhid: REFGUID, + riid: REFIID, + ppvOut: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BindToHandler(self, pbc, bhid, riid, ppvOut) + +proc GetPropertyStore*( + self: ptr IShellItemArray, + flags: GETPROPERTYSTOREFLAGS, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyStore(self, flags, riid, ppv) + +proc GetPropertyDescriptionList*( + self: ptr IShellItemArray, keyType: REFPROPERTYKEY, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDescriptionList(self, keyType, riid, ppv) + +proc GetAttributes*( + self: ptr IShellItemArray, + AttribFlags: SIATTRIBFLAGS, + sfgaoMask: SFGAOF, + psfgaoAttribs: ptr SFGAOF, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributes(self, AttribFlags, sfgaoMask, psfgaoAttribs) + +proc GetCount*( + self: ptr IShellItemArray, pdwNumItems: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCount(self, pdwNumItems) + +proc GetItemAt*( + self: ptr IShellItemArray, dwIndex: DWORD, ppsi: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemAt(self, dwIndex, ppsi) + +proc EnumItems*( + self: ptr IShellItemArray, ppenumShellItems: ptr ptr IEnumShellItems +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumItems(self, ppenumShellItems) + +proc Initialize*( + self: ptr IInitializeWithItem, psi: ptr IShellItem, grfMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, psi, grfMode) + +proc SetSelection*( + self: ptr IObjectWithSelection, psia: ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSelection(self, psia) + +proc GetSelection*( + self: ptr IObjectWithSelection, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelection(self, riid, ppv) + +proc RemoveBackReferences*( + self: ptr IObjectWithBackReferences +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveBackReferences(self) + +proc ParsePropertyName*( + self: ptr IPropertyUI, + pszName: LPCWSTR, + pfmtid: ptr FMTID, + ppid: ptr PROPID, + pchEaten: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ParsePropertyName(self, pszName, pfmtid, ppid, pchEaten) + +proc GetCannonicalName*( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + pwszText: LPWSTR, + cchText: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCannonicalName(self, fmtid, pid, pwszText, cchText) + +proc GetDisplayName*( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + flags: PROPERTYUI_NAME_FLAGS, + pwszText: LPWSTR, + cchText: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDisplayName(self, fmtid, pid, flags, pwszText, cchText) + +proc GetPropertyDescription*( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + pwszText: LPWSTR, + cchText: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyDescription(self, fmtid, pid, pwszText, cchText) + +proc GetDefaultWidth*( + self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pcxChars: ptr ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultWidth(self, fmtid, pid, pcxChars) + +proc GetFlags*( + self: ptr IPropertyUI, fmtid: REFFMTID, pid: PROPID, pflags: ptr PROPERTYUI_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFlags(self, fmtid, pid, pflags) + +proc FormatForDisplay*( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + ppropvar: ptr PROPVARIANT, + puiff: PROPERTYUI_FORMAT_FLAGS, + pwszText: LPWSTR, + cchText: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FormatForDisplay(self, fmtid, pid, ppropvar, puiff, pwszText, cchText) + +proc GetHelpInfo*( + self: ptr IPropertyUI, + fmtid: REFFMTID, + pid: PROPID, + pwszHelpFile: LPWSTR, + cch: DWORD, + puHelpID: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHelpInfo(self, fmtid, pid, pwszHelpFile, cch, puHelpID) + +proc CanCategorizeOnSCID*( + self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanCategorizeOnSCID(self, pscid) + +proc GetDefaultCategory*( + self: ptr ICategoryProvider, pguid: ptr GUID, pscid: ptr SHCOLUMNID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultCategory(self, pguid, pscid) + +proc GetCategoryForSCID*( + self: ptr ICategoryProvider, pscid: ptr SHCOLUMNID, pguid: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategoryForSCID(self, pscid, pguid) + +proc EnumCategories*( + self: ptr ICategoryProvider, penum: ptr ptr IEnumGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumCategories(self, penum) + +proc GetCategoryName*( + self: ptr ICategoryProvider, pguid: ptr GUID, pszName: LPWSTR, cch: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategoryName(self, pguid, pszName, cch) + +proc CreateCategory*( + self: ptr ICategoryProvider, pguid: ptr GUID, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateCategory(self, pguid, riid, ppv) + +proc GetDescription*( + self: ptr ICategorizer, pszDesc: LPWSTR, cch: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescription(self, pszDesc, cch) + +proc GetCategory*( + self: ptr ICategorizer, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + rgCategoryIds: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategory(self, cidl, apidl, rgCategoryIds) + +proc GetCategoryInfo*( + self: ptr ICategorizer, dwCategoryId: DWORD, pci: ptr TCATEGORY_INFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategoryInfo(self, dwCategoryId, pci) + +proc CompareCategory*( + self: ptr ICategorizer, + csfFlags: CATSORT_FLAGS, + dwCategoryId1: DWORD, + dwCategoryId2: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareCategory(self, csfFlags, dwCategoryId1, dwCategoryId2) + +proc DragEnter*( + self: ptr IDropTargetHelper, + hwndTarget: HWND, + pDataObject: ptr IDataObject, + ppt: ptr POINT, + dwEffect: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragEnter(self, hwndTarget, pDataObject, ppt, dwEffect) + +proc DragLeave*(self: ptr IDropTargetHelper): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragLeave(self) + +proc DragOver*( + self: ptr IDropTargetHelper, ppt: ptr POINT, dwEffect: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DragOver(self, ppt, dwEffect) + +proc Drop*( + self: ptr IDropTargetHelper, + pDataObject: ptr IDataObject, + ppt: ptr POINT, + dwEffect: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Drop(self, pDataObject, ppt, dwEffect) + +proc Show*(self: ptr IDropTargetHelper, fShow: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, fShow) + +proc InitializeFromBitmap*( + self: ptr IDragSourceHelper, pshdi: LPSHDRAGIMAGE, pDataObject: ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromBitmap(self, pshdi, pDataObject) + +proc InitializeFromWindow*( + self: ptr IDragSourceHelper, + hwnd: HWND, + ppt: ptr POINT, + pDataObject: ptr IDataObject, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromWindow(self, hwnd, ppt, pDataObject) + +proc SetFlags*( + self: ptr IDragSourceHelper2, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFlags(self, dwFlags) + +proc GetPath*( + self: ptr IShellLinkA, + pszFile: LPSTR, + cch: int32, + pfd: ptr WIN32_FIND_DATAA, + fFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPath(self, pszFile, cch, pfd, fFlags) + +proc GetIDList*( + self: ptr IShellLinkA, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDList(self, ppidl) + +proc SetIDList*( + self: ptr IShellLinkA, pidl: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIDList(self, pidl) + +proc GetDescription*( + self: ptr IShellLinkA, pszName: LPSTR, cch: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescription(self, pszName, cch) + +proc SetDescription*( + self: ptr IShellLinkA, pszName: LPCSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDescription(self, pszName) + +proc GetWorkingDirectory*( + self: ptr IShellLinkA, pszDir: LPSTR, cch: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWorkingDirectory(self, pszDir, cch) + +proc SetWorkingDirectory*( + self: ptr IShellLinkA, pszDir: LPCSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWorkingDirectory(self, pszDir) + +proc GetArguments*( + self: ptr IShellLinkA, pszArgs: LPSTR, cch: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetArguments(self, pszArgs, cch) + +proc SetArguments*(self: ptr IShellLinkA, pszArgs: LPCSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetArguments(self, pszArgs) + +proc GetHotkey*(self: ptr IShellLinkA, pwHotkey: ptr WORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHotkey(self, pwHotkey) + +proc SetHotkey*(self: ptr IShellLinkA, wHotkey: WORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHotkey(self, wHotkey) + +proc GetShowCmd*( + self: ptr IShellLinkA, piShowCmd: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetShowCmd(self, piShowCmd) + +proc SetShowCmd*(self: ptr IShellLinkA, iShowCmd: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetShowCmd(self, iShowCmd) + +proc GetIconLocation*( + self: ptr IShellLinkA, pszIconPath: LPSTR, cch: int32, piIcon: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconLocation(self, pszIconPath, cch, piIcon) + +proc SetIconLocation*( + self: ptr IShellLinkA, pszIconPath: LPCSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconLocation(self, pszIconPath, iIcon) + +proc SetRelativePath*( + self: ptr IShellLinkA, pszPathRel: LPCSTR, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRelativePath(self, pszPathRel, dwReserved) + +proc Resolve*( + self: ptr IShellLinkA, hwnd: HWND, fFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resolve(self, hwnd, fFlags) + +proc SetPath*(self: ptr IShellLinkA, pszFile: LPCSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPath(self, pszFile) + +proc GetPath*( + self: ptr IShellLinkW, + pszFile: LPWSTR, + cch: int32, + pfd: ptr WIN32_FIND_DATAW, + fFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPath(self, pszFile, cch, pfd, fFlags) + +proc GetIDList*( + self: ptr IShellLinkW, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDList(self, ppidl) + +proc SetIDList*( + self: ptr IShellLinkW, pidl: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIDList(self, pidl) + +proc GetDescription*( + self: ptr IShellLinkW, pszName: LPWSTR, cch: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDescription(self, pszName, cch) + +proc SetDescription*( + self: ptr IShellLinkW, pszName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDescription(self, pszName) + +proc GetWorkingDirectory*( + self: ptr IShellLinkW, pszDir: LPWSTR, cch: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWorkingDirectory(self, pszDir, cch) + +proc SetWorkingDirectory*( + self: ptr IShellLinkW, pszDir: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWorkingDirectory(self, pszDir) + +proc GetArguments*( + self: ptr IShellLinkW, pszArgs: LPWSTR, cch: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetArguments(self, pszArgs, cch) + +proc SetArguments*( + self: ptr IShellLinkW, pszArgs: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetArguments(self, pszArgs) + +proc GetHotkey*(self: ptr IShellLinkW, pwHotkey: ptr WORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetHotkey(self, pwHotkey) + +proc SetHotkey*(self: ptr IShellLinkW, wHotkey: WORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHotkey(self, wHotkey) + +proc GetShowCmd*( + self: ptr IShellLinkW, piShowCmd: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetShowCmd(self, piShowCmd) + +proc SetShowCmd*(self: ptr IShellLinkW, iShowCmd: int32): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetShowCmd(self, iShowCmd) + +proc GetIconLocation*( + self: ptr IShellLinkW, pszIconPath: LPWSTR, cch: int32, piIcon: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconLocation(self, pszIconPath, cch, piIcon) + +proc SetIconLocation*( + self: ptr IShellLinkW, pszIconPath: LPCWSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconLocation(self, pszIconPath, iIcon) + +proc SetRelativePath*( + self: ptr IShellLinkW, pszPathRel: LPCWSTR, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRelativePath(self, pszPathRel, dwReserved) + +proc Resolve*( + self: ptr IShellLinkW, hwnd: HWND, fFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resolve(self, hwnd, fFlags) + +proc SetPath*(self: ptr IShellLinkW, pszFile: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPath(self, pszFile) + +proc AddDataBlock*( + self: ptr IShellLinkDataList, pDataBlock: pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddDataBlock(self, pDataBlock) + +proc CopyDataBlock*( + self: ptr IShellLinkDataList, dwSig: DWORD, ppDataBlock: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyDataBlock(self, dwSig, ppDataBlock) + +proc RemoveDataBlock*( + self: ptr IShellLinkDataList, dwSig: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveDataBlock(self, dwSig) + +proc GetFlags*( + self: ptr IShellLinkDataList, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFlags(self, pdwFlags) + +proc SetFlags*( + self: ptr IShellLinkDataList, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFlags(self, dwFlags) + +proc ResolveShellLink*( + self: ptr IResolveShellLink, punkLink: ptr IUnknown, hwnd: HWND, fFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResolveShellLink(self, punkLink, hwnd, fFlags) + +proc Initialize*( + self: ptr IActionProgressDialog, + flags: SPINITF, + pszTitle: LPCWSTR, + pszCancel: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, flags, pszTitle, pszCancel) + +proc Stop*(self: ptr IActionProgressDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Stop(self) + +proc Initialize*( + self: ptr IHWEventHandler, pszParams: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pszParams) + +proc HandleEvent*( + self: ptr IHWEventHandler, + pszDeviceID: LPCWSTR, + pszAltDeviceID: LPCWSTR, + pszEventType: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleEvent(self, pszDeviceID, pszAltDeviceID, pszEventType) + +proc HandleEventWithContent*( + self: ptr IHWEventHandler, + pszDeviceID: LPCWSTR, + pszAltDeviceID: LPCWSTR, + pszEventType: LPCWSTR, + pszContentTypeHandler: LPCWSTR, + pdataobject: ptr IDataObject, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleEventWithContent( + self, pszDeviceID, pszAltDeviceID, pszEventType, pszContentTypeHandler, + pdataobject, + ) + +proc HandleEventWithHWND*( + self: ptr IHWEventHandler2, + pszDeviceID: LPCWSTR, + pszAltDeviceID: LPCWSTR, + pszEventType: LPCWSTR, + hwndOwner: HWND, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleEventWithHWND( + self, pszDeviceID, pszAltDeviceID, pszEventType, hwndOwner + ) + +proc AllowAutoPlay*( + self: ptr IQueryCancelAutoPlay, + pszPath: LPCWSTR, + dwContentType: DWORD, + pszLabel: LPCWSTR, + dwSerialNumber: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AllowAutoPlay(self, pszPath, dwContentType, pszLabel, dwSerialNumber) + +proc GetDynamicInfo*( + self: ptr IDynamicHWHandler, + pszDeviceID: LPCWSTR, + dwContentType: DWORD, + ppszAction: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDynamicInfo(self, pszDeviceID, dwContentType, ppszAction) + +proc Begin*( + self: ptr IActionProgress, action: SPACTION, flags: SPBEGINF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin(self, action, flags) + +proc UpdateProgress*( + self: ptr IActionProgress, ulCompleted: ULONGLONG, ulTotal: ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateProgress(self, ulCompleted, ulTotal) + +proc UpdateText*( + self: ptr IActionProgress, sptext: SPTEXT, pszText: LPCWSTR, fMayCompact: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateText(self, sptext, pszText, fMayCompact) + +proc QueryCancel*( + self: ptr IActionProgress, pfCancelled: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryCancel(self, pfCancelled) + +proc ResetCancel*(self: ptr IActionProgress): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetCancel(self) + +proc End*(self: ptr IActionProgress): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.End(self) + +proc Initialize*( + self: ptr IShellExtInit, + pidlFolder: PCIDLIST_ABSOLUTE, + pdtobj: ptr IDataObject, + hkeyProgID: HKEY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pidlFolder, pdtobj, hkeyProgID) + +proc AddPages*( + self: ptr IShellPropSheetExt, pfnAddPage: LPFNSVADDPROPSHEETPAGE, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPages(self, pfnAddPage, lParam) + +proc ReplacePage*( + self: ptr IShellPropSheetExt, + uPageID: EXPPS, + pfnReplaceWith: LPFNSVADDPROPSHEETPAGE, + lParam: LPARAM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReplacePage(self, uPageID, pfnReplaceWith, lParam) + +proc Initialize*( + self: ptr IRemoteComputer, pszMachine: LPCWSTR, bEnumerating: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pszMachine, bEnumerating) + +proc QueryContinue*(self: ptr IQueryContinue): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryContinue(self) + +proc GetCancelEvent*( + self: ptr IObjectWithCancelEvent, phEvent: ptr HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCancelEvent(self, phEvent) + +proc SetBalloonInfo*( + self: ptr IUserNotification, pszTitle: LPCWSTR, pszText: LPCWSTR, dwInfoFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBalloonInfo(self, pszTitle, pszText, dwInfoFlags) + +proc SetBalloonRetry*( + self: ptr IUserNotification, dwShowTime: DWORD, dwInterval: DWORD, cRetryCount: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBalloonRetry(self, dwShowTime, dwInterval, cRetryCount) + +proc SetIconInfo*( + self: ptr IUserNotification, hIcon: HICON, pszToolTip: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconInfo(self, hIcon, pszToolTip) + +proc Show*( + self: ptr IUserNotification, pqc: ptr IQueryContinue, dwContinuePollInterval: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, pqc, dwContinuePollInterval) + +proc PlaySound*( + self: ptr IUserNotification, pszSoundName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PlaySound(self, pszSoundName) + +proc OnBalloonUserClick*( + self: ptr IUserNotificationCallback, pt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnBalloonUserClick(self, pt) + +proc OnLeftClick*( + self: ptr IUserNotificationCallback, pt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnLeftClick(self, pt) + +proc OnContextMenu*( + self: ptr IUserNotificationCallback, pt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnContextMenu(self, pt) + +proc SetBalloonInfo*( + self: ptr IUserNotification2, + pszTitle: LPCWSTR, + pszText: LPCWSTR, + dwInfoFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBalloonInfo(self, pszTitle, pszText, dwInfoFlags) + +proc SetBalloonRetry*( + self: ptr IUserNotification2, + dwShowTime: DWORD, + dwInterval: DWORD, + cRetryCount: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBalloonRetry(self, dwShowTime, dwInterval, cRetryCount) + +proc SetIconInfo*( + self: ptr IUserNotification2, hIcon: HICON, pszToolTip: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconInfo(self, hIcon, pszToolTip) + +proc Show*( + self: ptr IUserNotification2, + pqc: ptr IQueryContinue, + dwContinuePollInterval: DWORD, + pSink: ptr IUserNotificationCallback, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, pqc, dwContinuePollInterval, pSink) + +proc PlaySound*( + self: ptr IUserNotification2, pszSoundName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PlaySound(self, pszSoundName) + +proc GetValidCharacters*( + self: ptr IItemNameLimits, + ppwszValidChars: ptr LPWSTR, + ppwszInvalidChars: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValidCharacters(self, ppwszValidChars, ppwszInvalidChars) + +proc GetMaxLength*( + self: ptr IItemNameLimits, pszName: LPCWSTR, piMaxNameLen: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMaxLength(self, pszName, piMaxNameLen) + +proc SetDisplayName*( + self: ptr ISearchFolderItemFactory, pszDisplayName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDisplayName(self, pszDisplayName) + +proc SetFolderTypeID*( + self: ptr ISearchFolderItemFactory, ftid: FOLDERTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolderTypeID(self, ftid) + +proc SetFolderLogicalViewMode*( + self: ptr ISearchFolderItemFactory, flvm: FOLDERLOGICALVIEWMODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolderLogicalViewMode(self, flvm) + +proc SetIconSize*( + self: ptr ISearchFolderItemFactory, iIconSize: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconSize(self, iIconSize) + +proc SetVisibleColumns*( + self: ptr ISearchFolderItemFactory, cVisibleColumns: UINT, rgKey: ptr PROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVisibleColumns(self, cVisibleColumns, rgKey) + +proc SetSortColumns*( + self: ptr ISearchFolderItemFactory, + cSortColumns: UINT, + rgSortColumns: ptr SORTCOLUMN, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSortColumns(self, cSortColumns, rgSortColumns) + +proc SetGroupColumn*( + self: ptr ISearchFolderItemFactory, keyGroup: REFPROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetGroupColumn(self, keyGroup) + +proc SetStacks*( + self: ptr ISearchFolderItemFactory, cStackKeys: UINT, rgStackKeys: ptr PROPERTYKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetStacks(self, cStackKeys, rgStackKeys) + +proc SetScope*( + self: ptr ISearchFolderItemFactory, psiaScope: ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScope(self, psiaScope) + +proc SetCondition*( + self: ptr ISearchFolderItemFactory, pCondition: ptr ICondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCondition(self, pCondition) + +proc GetShellItem*( + self: ptr ISearchFolderItemFactory, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetShellItem(self, riid, ppv) + +proc GetIDList*( + self: ptr ISearchFolderItemFactory, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDList(self, ppidl) + +proc GetLocation*( + self: ptr IExtractImage, + pszPathBuffer: LPWSTR, + cch: DWORD, + pdwPriority: ptr DWORD, + prgSize: ptr SIZE, + dwRecClrDepth: DWORD, + pdwFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLocation( + self, pszPathBuffer, cch, pdwPriority, prgSize, dwRecClrDepth, pdwFlags + ) + +proc Extract*( + self: ptr IExtractImage, phBmpThumbnail: ptr HBITMAP +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Extract(self, phBmpThumbnail) + +proc GetDateStamp*( + self: ptr IExtractImage2, pDateStamp: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDateStamp(self, pDateStamp) + +proc GetThumbnailHandler*( + self: ptr IThumbnailHandlerFactory, + pidlChild: PCUITEMID_CHILD, + pbc: ptr IBindCtx, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetThumbnailHandler(self, pidlChild, pbc, riid, ppv) + +proc SetParentAndItem*( + self: ptr IParentAndItem, + pidlParent: PCIDLIST_ABSOLUTE, + psf: ptr IShellFolder, + pidlChild: PCUITEMID_CHILD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetParentAndItem(self, pidlParent, psf, pidlChild) + +proc GetParentAndItem*( + self: ptr IParentAndItem, + ppidlParent: ptr PIDLIST_ABSOLUTE, + ppsf: ptr ptr IShellFolder, + ppidlChild: ptr PITEMID_CHILD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParentAndItem(self, ppidlParent, ppsf, ppidlChild) + +proc ShowDW*(self: ptr IDockingWindow, fShow: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowDW(self, fShow) + +proc CloseDW*(self: ptr IDockingWindow, dwReserved: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseDW(self, dwReserved) + +proc ResizeBorderDW*( + self: ptr IDockingWindow, + prcBorder: LPCRECT, + punkToolbarSite: ptr IUnknown, + fReserved: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResizeBorderDW(self, prcBorder, punkToolbarSite, fReserved) + +proc GetBandInfo*( + self: ptr IDeskBand, dwBandID: DWORD, dwViewMode: DWORD, pdbi: ptr DESKBANDINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBandInfo(self, dwBandID, dwViewMode, pdbi) + +proc GetDefaultBandWidth*( + self: ptr IDeskBandInfo, dwBandID: DWORD, dwViewMode: DWORD, pnWidth: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultBandWidth(self, dwBandID, dwViewMode, pnWidth) + +proc CanRenderComposited*( + self: ptr IDeskBand2, pfCanRenderComposited: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanRenderComposited(self, pfCanRenderComposited) + +proc SetCompositionState*( + self: ptr IDeskBand2, fCompositionEnabled: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCompositionState(self, fCompositionEnabled) + +proc GetCompositionState*( + self: ptr IDeskBand2, pfCompositionEnabled: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCompositionState(self, pfCompositionEnabled) + +proc HrInit*(self: ptr ITaskbarList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HrInit(self) + +proc AddTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddTab(self, hwnd) + +proc DeleteTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteTab(self, hwnd) + +proc ActivateTab*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateTab(self, hwnd) + +proc SetActiveAlt*(self: ptr ITaskbarList, hwnd: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetActiveAlt(self, hwnd) + +proc MarkFullscreenWindow*( + self: ptr ITaskbarList2, hwnd: HWND, fFullscreen: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MarkFullscreenWindow(self, hwnd, fFullscreen) + +proc SetProgressValue*( + self: ptr ITaskbarList3, hwnd: HWND, ullCompleted: ULONGLONG, ullTotal: ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgressValue(self, hwnd, ullCompleted, ullTotal) + +proc SetProgressState*( + self: ptr ITaskbarList3, hwnd: HWND, tbpFlags: TBPFLAG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgressState(self, hwnd, tbpFlags) + +proc RegisterTab*( + self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterTab(self, hwndTab, hwndMDI) + +proc UnregisterTab*( + self: ptr ITaskbarList3, hwndTab: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterTab(self, hwndTab) + +proc SetTabOrder*( + self: ptr ITaskbarList3, hwndTab: HWND, hwndInsertBefore: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTabOrder(self, hwndTab, hwndInsertBefore) + +proc SetTabActive*( + self: ptr ITaskbarList3, hwndTab: HWND, hwndMDI: HWND, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTabActive(self, hwndTab, hwndMDI, dwReserved) + +proc ThumbBarAddButtons*( + self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ThumbBarAddButtons(self, hwnd, cButtons, pButton) + +proc ThumbBarUpdateButtons*( + self: ptr ITaskbarList3, hwnd: HWND, cButtons: UINT, pButton: LPTHUMBBUTTON +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ThumbBarUpdateButtons(self, hwnd, cButtons, pButton) + +proc ThumbBarSetImageList*( + self: ptr ITaskbarList3, hwnd: HWND, himl: HIMAGELIST +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ThumbBarSetImageList(self, hwnd, himl) + +proc SetOverlayIcon*( + self: ptr ITaskbarList3, hwnd: HWND, hIcon: HICON, pszDescription: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOverlayIcon(self, hwnd, hIcon, pszDescription) + +proc SetThumbnailTooltip*( + self: ptr ITaskbarList3, hwnd: HWND, pszTip: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetThumbnailTooltip(self, hwnd, pszTip) + +proc SetThumbnailClip*( + self: ptr ITaskbarList3, hwnd: HWND, prcClip: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetThumbnailClip(self, hwnd, prcClip) + +proc SetTabProperties*( + self: ptr ITaskbarList4, hwndTab: HWND, stpFlags: STPFLAG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTabProperties(self, hwndTab, stpFlags) + +proc RemoveFromList*( + self: ptr IStartMenuPinnedList, pitem: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFromList(self, pitem) + +proc GetRecorderDriveLetter*( + self: ptr ICDBurn, pszDrive: LPWSTR, cch: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRecorderDriveLetter(self, pszDrive, cch) + +proc Burn*(self: ptr ICDBurn, hwnd: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Burn(self, hwnd) + +proc HasRecordableDrive*( + self: ptr ICDBurn, pfHasRecorder: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasRecordableDrive(self, pfHasRecorder) + +proc GetPreviousPage*( + self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPreviousPage(self, phpage) + +proc GetNextPage*( + self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextPage(self, phpage) + +proc GetCancelledPage*( + self: ptr IWizardSite, phpage: ptr HPROPSHEETPAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCancelledPage(self, phpage) + +proc AddPages*( + self: ptr IWizardExtension, + aPages: ptr HPROPSHEETPAGE, + cPages: UINT, + pnPagesAdded: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPages(self, aPages, cPages, pnPagesAdded) + +proc GetFirstPage*( + self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFirstPage(self, phpage) + +proc GetLastPage*( + self: ptr IWizardExtension, phpage: ptr HPROPSHEETPAGE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastPage(self, phpage) + +proc SetInitialURL*( + self: ptr IWebWizardExtension, pszURL: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetInitialURL(self, pszURL) + +proc SetErrorURL*( + self: ptr IWebWizardExtension, pszErrorURL: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetErrorURL(self, pszErrorURL) + +proc Initialize*( + self: ptr IPublishingWizard, + pdo: ptr IDataObject, + dwOptions: DWORD, + pszServiceScope: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pdo, dwOptions, pszServiceScope) + +proc GetTransferManifest*( + self: ptr IPublishingWizard, + phrFromTransfer: ptr HRESULT, + pdocManifest: ptr ptr IXMLDOMDocument, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTransferManifest(self, phrFromTransfer, pdocManifest) + +proc Initialize*( + self: ptr IFolderViewHost, hwndParent: HWND, pdo: ptr IDataObject, prc: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, hwndParent, pdo, prc) + +proc OnNavigationPending*( + self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnNavigationPending(self, pidlFolder) + +proc OnViewCreated*( + self: ptr IExplorerBrowserEvents, psv: ptr IShellView +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnViewCreated(self, psv) + +proc OnNavigationComplete*( + self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnNavigationComplete(self, pidlFolder) + +proc OnNavigationFailed*( + self: ptr IExplorerBrowserEvents, pidlFolder: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnNavigationFailed(self, pidlFolder) + +proc Initialize*( + self: ptr IExplorerBrowser, hwndParent: HWND, prc: ptr RECT, pfs: ptr FOLDERSETTINGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, hwndParent, prc, pfs) + +proc Destroy*(self: ptr IExplorerBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Destroy(self) + +proc SetRect*( + self: ptr IExplorerBrowser, phdwp: ptr HDWP, rcBrowser: RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRect(self, phdwp, rcBrowser) + +proc SetPropertyBag*( + self: ptr IExplorerBrowser, pszPropertyBag: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPropertyBag(self, pszPropertyBag) + +proc SetEmptyText*( + self: ptr IExplorerBrowser, pszEmptyText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEmptyText(self, pszEmptyText) + +proc SetFolderSettings*( + self: ptr IExplorerBrowser, pfs: ptr FOLDERSETTINGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolderSettings(self, pfs) + +proc Advise*( + self: ptr IExplorerBrowser, psbe: ptr IExplorerBrowserEvents, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, psbe, pdwCookie) + +proc Unadvise*( + self: ptr IExplorerBrowser, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc SetOptions*( + self: ptr IExplorerBrowser, dwFlag: EXPLORER_BROWSER_OPTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOptions(self, dwFlag) + +proc GetOptions*( + self: ptr IExplorerBrowser, pdwFlag: ptr EXPLORER_BROWSER_OPTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOptions(self, pdwFlag) + +proc BrowseToIDList*( + self: ptr IExplorerBrowser, pidl: PCUIDLIST_RELATIVE, uFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BrowseToIDList(self, pidl, uFlags) + +proc BrowseToObject*( + self: ptr IExplorerBrowser, punk: ptr IUnknown, uFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BrowseToObject(self, punk, uFlags) + +proc FillFromObject*( + self: ptr IExplorerBrowser, punk: ptr IUnknown, dwFlags: EXPLORER_BROWSER_FILL_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FillFromObject(self, punk, dwFlags) + +proc RemoveAll*(self: ptr IExplorerBrowser): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAll(self) + +proc GetCurrentView*( + self: ptr IExplorerBrowser, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentView(self, riid, ppv) + +proc SetAccessibleName*( + self: ptr IAccessibleObject, pszName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAccessibleName(self, pszName) + +proc AddItem*( + self: ptr IResultsFolder, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddItem(self, psi) + +proc AddIDList*( + self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE, ppidlAdded: ptr PITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddIDList(self, pidl, ppidlAdded) + +proc RemoveItem*( + self: ptr IResultsFolder, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveItem(self, psi) + +proc RemoveIDList*( + self: ptr IResultsFolder, pidl: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveIDList(self, pidl) + +proc RemoveAll*(self: ptr IResultsFolder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAll(self) + +proc Next*( + self: ptr IEnumObjects, + celt: ULONG, + riid: REFIID, + rgelt: ptr pointer, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, riid, rgelt, pceltFetched) + +proc Skip*(self: ptr IEnumObjects, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumObjects): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumObjects, ppenum: ptr ptr IEnumObjects +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc StartProgressDialog*( + self: ptr IOperationsProgressDialog, hwndOwner: HWND, flags: OPPROGDLGF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartProgressDialog(self, hwndOwner, flags) + +proc StopProgressDialog*( + self: ptr IOperationsProgressDialog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StopProgressDialog(self) + +proc SetOperation*( + self: ptr IOperationsProgressDialog, action: SPACTION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOperation(self, action) + +proc SetMode*( + self: ptr IOperationsProgressDialog, mode: PDMODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMode(self, mode) + +proc UpdateProgress*( + self: ptr IOperationsProgressDialog, + ullPointsCurrent: ULONGLONG, + ullPointsTotal: ULONGLONG, + ullSizeCurrent: ULONGLONG, + ullSizeTotal: ULONGLONG, + ullItemsCurrent: ULONGLONG, + ullItemsTotal: ULONGLONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateProgress( + self, ullPointsCurrent, ullPointsTotal, ullSizeCurrent, ullSizeTotal, + ullItemsCurrent, ullItemsTotal, + ) + +proc UpdateLocations*( + self: ptr IOperationsProgressDialog, + psiSource: ptr IShellItem, + psiTarget: ptr IShellItem, + psiItem: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateLocations(self, psiSource, psiTarget, psiItem) + +proc ResetTimer*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetTimer(self) + +proc PauseTimer*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PauseTimer(self) + +proc ResumeTimer*(self: ptr IOperationsProgressDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResumeTimer(self) + +proc GetMilliseconds*( + self: ptr IOperationsProgressDialog, + pullElapsed: ptr ULONGLONG, + pullRemaining: ptr ULONGLONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMilliseconds(self, pullElapsed, pullRemaining) + +proc GetOperationStatus*( + self: ptr IOperationsProgressDialog, popstatus: ptr PDOPSTATUS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOperationStatus(self, popstatus) + +proc SetCancelInformation*( + self: ptr IIOCancelInformation, dwThreadID: DWORD, uMsgCancel: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCancelInformation(self, dwThreadID, uMsgCancel) + +proc GetCancelInformation*( + self: ptr IIOCancelInformation, pdwThreadID: ptr DWORD, puMsgCancel: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCancelInformation(self, pdwThreadID, puMsgCancel) + +proc Advise*( + self: ptr IFileOperation, + pfops: ptr IFileOperationProgressSink, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pfops, pdwCookie) + +proc Unadvise*(self: ptr IFileOperation, dwCookie: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc SetOperationFlags*( + self: ptr IFileOperation, dwOperationFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOperationFlags(self, dwOperationFlags) + +proc SetProgressMessage*( + self: ptr IFileOperation, pszMessage: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgressMessage(self, pszMessage) + +proc SetProgressDialog*( + self: ptr IFileOperation, popd: ptr IOperationsProgressDialog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgressDialog(self, popd) + +proc SetProperties*( + self: ptr IFileOperation, pproparray: ptr IPropertyChangeArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProperties(self, pproparray) + +proc SetOwnerWindow*( + self: ptr IFileOperation, hwndOwner: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOwnerWindow(self, hwndOwner) + +proc ApplyPropertiesToItem*( + self: ptr IFileOperation, psiItem: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyPropertiesToItem(self, psiItem) + +proc ApplyPropertiesToItems*( + self: ptr IFileOperation, punkItems: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyPropertiesToItems(self, punkItems) + +proc RenameItem*( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + pszNewName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RenameItem(self, psiItem, pszNewName, pfopsItem) + +proc RenameItems*( + self: ptr IFileOperation, pUnkItems: ptr IUnknown, pszNewName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RenameItems(self, pUnkItems, pszNewName) + +proc MoveItem*( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszNewName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveItem(self, psiItem, psiDestinationFolder, pszNewName, pfopsItem) + +proc MoveItems*( + self: ptr IFileOperation, + punkItems: ptr IUnknown, + psiDestinationFolder: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveItems(self, punkItems, psiDestinationFolder) + +proc CopyItem*( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + psiDestinationFolder: ptr IShellItem, + pszCopyName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyItem(self, psiItem, psiDestinationFolder, pszCopyName, pfopsItem) + +proc CopyItems*( + self: ptr IFileOperation, + punkItems: ptr IUnknown, + psiDestinationFolder: ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyItems(self, punkItems, psiDestinationFolder) + +proc DeleteItem*( + self: ptr IFileOperation, + psiItem: ptr IShellItem, + pfopsItem: ptr IFileOperationProgressSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteItem(self, psiItem, pfopsItem) + +proc DeleteItems*( + self: ptr IFileOperation, punkItems: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteItems(self, punkItems) + +proc NewItem*( + self: ptr IFileOperation, + psiDestinationFolder: ptr IShellItem, + dwFileAttributes: DWORD, + pszName: LPCWSTR, + pszTemplateName: LPCWSTR, + pfopsItem: ptr IFileOperationProgressSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NewItem( + self, psiDestinationFolder, dwFileAttributes, pszName, pszTemplateName, pfopsItem + ) + +proc PerformOperations*(self: ptr IFileOperation): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PerformOperations(self) + +proc GetAnyOperationsAborted*( + self: ptr IFileOperation, pfAnyOperationsAborted: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAnyOperationsAborted(self, pfAnyOperationsAborted) + +proc QueryObject*( + self: ptr IObjectProvider, guidObject: REFGUID, riid: REFIID, ppvOut: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryObject(self, guidObject, riid, ppvOut) + +proc FoundItem*( + self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FoundItem(self, psf, pidl) + +proc EnterFolder*( + self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnterFolder(self, psf, pidl) + +proc LeaveFolder*( + self: ptr INamespaceWalkCB, psf: ptr IShellFolder, pidl: PCUITEMID_CHILD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LeaveFolder(self, psf, pidl) + +proc InitializeProgressDialog*( + self: ptr INamespaceWalkCB, ppszTitle: ptr LPWSTR, ppszCancel: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeProgressDialog(self, ppszTitle, ppszCancel) + +proc WalkComplete*( + self: ptr INamespaceWalkCB2, hr: HRESULT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WalkComplete(self, hr) + +proc Walk*( + self: ptr INamespaceWalk, + punkToWalk: ptr IUnknown, + dwFlags: DWORD, + cDepth: int32, + pnswcb: ptr INamespaceWalkCB, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Walk(self, punkToWalk, dwFlags, cDepth, pnswcb) + +proc GetIDArrayResult*( + self: ptr INamespaceWalk, pcItems: ptr UINT, prgpidl: ptr ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDArrayResult(self, pcItems, prgpidl) + +proc GetDropDownStatus*( + self: ptr IAutoCompleteDropDown, pdwFlags: ptr DWORD, ppwszString: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDropDownStatus(self, pdwFlags, ppwszString) + +proc ResetEnumerator*(self: ptr IAutoCompleteDropDown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResetEnumerator(self) + +proc AddBand*(self: ptr IBandSite, punk: ptr IUnknown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddBand(self, punk) + +proc EnumBands*( + self: ptr IBandSite, uBand: UINT, pdwBandID: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumBands(self, uBand, pdwBandID) + +proc QueryBand*( + self: ptr IBandSite, + dwBandID: DWORD, + ppstb: ptr ptr IDeskBand, + pdwState: ptr DWORD, + pszName: LPWSTR, + cchName: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryBand(self, dwBandID, ppstb, pdwState, pszName, cchName) + +proc SetBandState*( + self: ptr IBandSite, dwBandID: DWORD, dwMask: DWORD, dwState: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBandState(self, dwBandID, dwMask, dwState) + +proc RemoveBand*(self: ptr IBandSite, dwBandID: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveBand(self, dwBandID) + +proc GetBandObject*( + self: ptr IBandSite, dwBandID: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBandObject(self, dwBandID, riid, ppv) + +proc SetBandSiteInfo*( + self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBandSiteInfo(self, pbsinfo) + +proc GetBandSiteInfo*( + self: ptr IBandSite, pbsinfo: ptr BANDSITEINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBandSiteInfo(self, pbsinfo) + +proc Show*(self: ptr IModalWindow, hwndOwner: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, hwndOwner) + +proc GetSupportedActionTypes*( + self: ptr ICDBurnExt, pdwActions: ptr CDBE_ACTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSupportedActionTypes(self, pdwActions) + +proc DoContextMenuPopup*( + self: ptr IContextMenuSite, punkContextMenu: ptr IUnknown, fFlags: UINT, pt: POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoContextMenuPopup(self, punkContextMenu, fFlags, pt) + +proc EnumReady*(self: ptr IEnumReadyCallback): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumReady(self) + +proc SetEnumReadyCallback*( + self: ptr IEnumerableView, percb: ptr IEnumReadyCallback +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEnumReadyCallback(self, percb) + +proc CreateEnumIDListFromContents*( + self: ptr IEnumerableView, + pidlFolder: PCIDLIST_ABSOLUTE, + dwEnumFlags: DWORD, + ppEnumIDList: ptr ptr IEnumIDList, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateEnumIDListFromContents( + self, pidlFolder, dwEnumFlags, ppEnumIDList + ) + +proc InsertItem*( + self: ptr IInsertItem, pidl: PCUIDLIST_RELATIVE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertItem(self, pidl) + +proc IsMenuMessage*(self: ptr IMenuBand, pmsg: ptr MSG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsMenuMessage(self, pmsg) + +proc TranslateMenuMessage*( + self: ptr IMenuBand, pmsg: ptr MSG, plRet: ptr LRESULT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateMenuMessage(self, pmsg, plRet) + +proc SetCascade*( + self: ptr IFolderBandPriv, fCascade: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCascade(self, fCascade) + +proc SetAccelerators*( + self: ptr IFolderBandPriv, fAccelerators: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAccelerators(self, fAccelerators) + +proc SetNoIcons*( + self: ptr IFolderBandPriv, fNoIcons: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNoIcons(self, fNoIcons) + +proc SetNoText*( + self: ptr IFolderBandPriv, fNoText: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNoText(self, fNoText) + +proc GetCheckState*( + self: ptr IRegTreeItem, pbCheck: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCheckState(self, pbCheck) + +proc SetCheckState*( + self: ptr IRegTreeItem, bCheck: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCheckState(self, bCheck) + +proc RecompressImage*( + self: ptr IImageRecompress, + psi: ptr IShellItem, + cx: int32, + cy: int32, + iQuality: int32, + pstg: ptr IStorage, + ppstrmOut: ptr ptr IStream, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RecompressImage(self, psi, cx, cy, iQuality, pstg, ppstrmOut) + +proc SetClient*( + self: ptr IDeskBar, punkClient: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClient(self, punkClient) + +proc GetClient*( + self: ptr IDeskBar, ppunkClient: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClient(self, ppunkClient) + +proc OnPosRectChangeDB*(self: ptr IDeskBar, prc: ptr RECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPosRectChangeDB(self, prc) + +proc Popup*( + self: ptr IMenuPopup, ppt: ptr POINTL, prcExclude: ptr RECTL, dwFlags: MP_POPUPFLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Popup(self, ppt, prcExclude, dwFlags) + +proc OnSelect*(self: ptr IMenuPopup, dwSelectType: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSelect(self, dwSelectType) + +proc SetSubMenu*( + self: ptr IMenuPopup, pmp: ptr IMenuPopup, fSet: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSubMenu(self, pmp, fSet) + +proc GetAppName*( + self: ptr IFileIsInUse, ppszName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAppName(self, ppszName) + +proc GetUsage*( + self: ptr IFileIsInUse, pfut: ptr FILE_USAGE_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUsage(self, pfut) + +proc GetCapabilities*( + self: ptr IFileIsInUse, pdwCapFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCapabilities(self, pdwCapFlags) + +proc GetSwitchToHWND*( + self: ptr IFileIsInUse, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSwitchToHWND(self, phwnd) + +proc CloseFile*(self: ptr IFileIsInUse): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CloseFile(self) + +proc OnFileOk*( + self: ptr IFileDialogEvents, pfd: ptr IFileDialog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFileOk(self, pfd) + +proc OnFolderChanging*( + self: ptr IFileDialogEvents, pfd: ptr IFileDialog, psiFolder: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFolderChanging(self, pfd, psiFolder) + +proc OnFolderChange*( + self: ptr IFileDialogEvents, pfd: ptr IFileDialog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnFolderChange(self, pfd) + +proc OnSelectionChange*( + self: ptr IFileDialogEvents, pfd: ptr IFileDialog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSelectionChange(self, pfd) + +proc OnShareViolation*( + self: ptr IFileDialogEvents, + pfd: ptr IFileDialog, + psi: ptr IShellItem, + pResponse: ptr FDE_SHAREVIOLATION_RESPONSE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnShareViolation(self, pfd, psi, pResponse) + +proc OnTypeChange*( + self: ptr IFileDialogEvents, pfd: ptr IFileDialog +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnTypeChange(self, pfd) + +proc OnOverwrite*( + self: ptr IFileDialogEvents, + pfd: ptr IFileDialog, + psi: ptr IShellItem, + pResponse: ptr FDE_OVERWRITE_RESPONSE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnOverwrite(self, pfd, psi, pResponse) + +proc SetFileTypes*( + self: ptr IFileDialog, cFileTypes: UINT, rgFilterSpec: ptr COMDLG_FILTERSPEC +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFileTypes(self, cFileTypes, rgFilterSpec) + +proc SetFileTypeIndex*( + self: ptr IFileDialog, iFileType: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFileTypeIndex(self, iFileType) + +proc GetFileTypeIndex*( + self: ptr IFileDialog, piFileType: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFileTypeIndex(self, piFileType) + +proc Advise*( + self: ptr IFileDialog, pfde: ptr IFileDialogEvents, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pfde, pdwCookie) + +proc Unadvise*(self: ptr IFileDialog, dwCookie: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc SetOptions*( + self: ptr IFileDialog, fos: FILEOPENDIALOGOPTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOptions(self, fos) + +proc GetOptions*( + self: ptr IFileDialog, pfos: ptr FILEOPENDIALOGOPTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOptions(self, pfos) + +proc SetDefaultFolder*( + self: ptr IFileDialog, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultFolder(self, psi) + +proc SetFolder*( + self: ptr IFileDialog, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolder(self, psi) + +proc GetFolder*( + self: ptr IFileDialog, ppsi: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolder(self, ppsi) + +proc GetCurrentSelection*( + self: ptr IFileDialog, ppsi: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentSelection(self, ppsi) + +proc SetFileName*(self: ptr IFileDialog, pszName: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFileName(self, pszName) + +proc GetFileName*( + self: ptr IFileDialog, pszName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFileName(self, pszName) + +proc SetTitle*(self: ptr IFileDialog, pszTitle: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTitle(self, pszTitle) + +proc SetOkButtonLabel*( + self: ptr IFileDialog, pszText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOkButtonLabel(self, pszText) + +proc SetFileNameLabel*( + self: ptr IFileDialog, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFileNameLabel(self, pszLabel) + +proc GetResult*( + self: ptr IFileDialog, ppsi: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetResult(self, ppsi) + +proc AddPlace*( + self: ptr IFileDialog, psi: ptr IShellItem, fdap: FDAP +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPlace(self, psi, fdap) + +proc SetDefaultExtension*( + self: ptr IFileDialog, pszDefaultExtension: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultExtension(self, pszDefaultExtension) + +proc Close*(self: ptr IFileDialog, hr: HRESULT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self, hr) + +proc SetClientGuid*(self: ptr IFileDialog, guid: REFGUID): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClientGuid(self, guid) + +proc ClearClientData*(self: ptr IFileDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearClientData(self) + +proc SetFilter*( + self: ptr IFileDialog, pFilter: ptr IShellItemFilter +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFilter(self, pFilter) + +proc SetSaveAsItem*( + self: ptr IFileSaveDialog, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSaveAsItem(self, psi) + +proc SetProperties*( + self: ptr IFileSaveDialog, pStore: ptr IPropertyStore +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProperties(self, pStore) + +proc SetCollectedProperties*( + self: ptr IFileSaveDialog, + pList: ptr IPropertyDescriptionList, + fAppendDefault: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCollectedProperties(self, pList, fAppendDefault) + +proc GetProperties*( + self: ptr IFileSaveDialog, ppStore: ptr ptr IPropertyStore +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperties(self, ppStore) + +proc ApplyProperties*( + self: ptr IFileSaveDialog, + psi: ptr IShellItem, + pStore: ptr IPropertyStore, + hwnd: HWND, + pSink: ptr IFileOperationProgressSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyProperties(self, psi, pStore, hwnd, pSink) + +proc GetResults*( + self: ptr IFileOpenDialog, ppenum: ptr ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetResults(self, ppenum) + +proc GetSelectedItems*( + self: ptr IFileOpenDialog, ppsai: ptr ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectedItems(self, ppsai) + +proc EnableOpenDropDown*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableOpenDropDown(self, dwIDCtl) + +proc AddMenu*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddMenu(self, dwIDCtl, pszLabel) + +proc AddPushButton*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPushButton(self, dwIDCtl, pszLabel) + +proc AddComboBox*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddComboBox(self, dwIDCtl) + +proc AddRadioButtonList*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddRadioButtonList(self, dwIDCtl) + +proc AddCheckButton*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR, bChecked: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddCheckButton(self, dwIDCtl, pszLabel, bChecked) + +proc AddEditBox*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddEditBox(self, dwIDCtl, pszText) + +proc AddSeparator*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddSeparator(self, dwIDCtl) + +proc AddText*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddText(self, dwIDCtl, pszText) + +proc SetControlLabel*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetControlLabel(self, dwIDCtl, pszLabel) + +proc GetControlState*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwState: ptr CDCONTROLSTATEF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetControlState(self, dwIDCtl, pdwState) + +proc SetControlState*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwState: CDCONTROLSTATEF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetControlState(self, dwIDCtl, dwState) + +proc GetEditBoxText*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, ppszText: ptr ptr WCHAR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEditBoxText(self, dwIDCtl, ppszText) + +proc SetEditBoxText*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszText: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetEditBoxText(self, dwIDCtl, pszText) + +proc GetCheckButtonState*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pbChecked: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCheckButtonState(self, dwIDCtl, pbChecked) + +proc SetCheckButtonState*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, bChecked: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCheckButtonState(self, dwIDCtl, bChecked) + +proc AddControlItem*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddControlItem(self, dwIDCtl, dwIDItem, pszLabel) + +proc RemoveControlItem*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveControlItem(self, dwIDCtl, dwIDItem) + +proc RemoveAllControlItems*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAllControlItems(self, dwIDCtl) + +proc GetControlItemState*( + self: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + dwIDItem: DWORD, + pdwState: ptr CDCONTROLSTATEF, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetControlItemState(self, dwIDCtl, dwIDItem, pdwState) + +proc SetControlItemState*( + self: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + dwIDItem: DWORD, + dwState: CDCONTROLSTATEF, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetControlItemState(self, dwIDCtl, dwIDItem, dwState) + +proc GetSelectedControlItem*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pdwIDItem: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectedControlItem(self, dwIDCtl, pdwIDItem) + +proc SetSelectedControlItem*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSelectedControlItem(self, dwIDCtl, dwIDItem) + +proc StartVisualGroup*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartVisualGroup(self, dwIDCtl, pszLabel) + +proc EndVisualGroup*(self: ptr IFileDialogCustomize): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndVisualGroup(self) + +proc MakeProminent*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MakeProminent(self, dwIDCtl) + +proc SetControlItemText*( + self: ptr IFileDialogCustomize, dwIDCtl: DWORD, dwIDItem: DWORD, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetControlItemText(self, dwIDCtl, dwIDItem, pszLabel) + +proc OnItemSelected*( + self: ptr IFileDialogControlEvents, + pfdc: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + dwIDItem: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnItemSelected(self, pfdc, dwIDCtl, dwIDItem) + +proc OnButtonClicked*( + self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnButtonClicked(self, pfdc, dwIDCtl) + +proc OnCheckButtonToggled*( + self: ptr IFileDialogControlEvents, + pfdc: ptr IFileDialogCustomize, + dwIDCtl: DWORD, + bChecked: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnCheckButtonToggled(self, pfdc, dwIDCtl, bChecked) + +proc OnControlActivating*( + self: ptr IFileDialogControlEvents, pfdc: ptr IFileDialogCustomize, dwIDCtl: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnControlActivating(self, pfdc, dwIDCtl) + +proc SetCancelButtonLabel*( + self: ptr IFileDialog2, pszLabel: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCancelButtonLabel(self, pszLabel) + +proc SetNavigationRoot*( + self: ptr IFileDialog2, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNavigationRoot(self, psi) + +proc QueryCurrentDefault*( + self: ptr IApplicationAssociationRegistration, + pszQuery: LPCWSTR, + atQueryType: ASSOCIATIONTYPE, + alQueryLevel: ASSOCIATIONLEVEL, + ppszAssociation: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryCurrentDefault( + self, pszQuery, atQueryType, alQueryLevel, ppszAssociation + ) + +proc QueryAppIsDefault*( + self: ptr IApplicationAssociationRegistration, + pszQuery: LPCWSTR, + atQueryType: ASSOCIATIONTYPE, + alQueryLevel: ASSOCIATIONLEVEL, + pszAppRegistryName: LPCWSTR, + pfDefault: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryAppIsDefault( + self, pszQuery, atQueryType, alQueryLevel, pszAppRegistryName, pfDefault + ) + +proc QueryAppIsDefaultAll*( + self: ptr IApplicationAssociationRegistration, + alQueryLevel: ASSOCIATIONLEVEL, + pszAppRegistryName: LPCWSTR, + pfDefault: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryAppIsDefaultAll(self, alQueryLevel, pszAppRegistryName, pfDefault) + +proc SetAppAsDefault*( + self: ptr IApplicationAssociationRegistration, + pszAppRegistryName: LPCWSTR, + pszSet: LPCWSTR, + atSetType: ASSOCIATIONTYPE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppAsDefault(self, pszAppRegistryName, pszSet, atSetType) + +proc SetAppAsDefaultAll*( + self: ptr IApplicationAssociationRegistration, pszAppRegistryName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppAsDefaultAll(self, pszAppRegistryName) + +proc ClearUserAssociations*( + self: ptr IApplicationAssociationRegistration +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearUserAssociations(self) + +proc LaunchAdvancedAssociationUI*( + self: ptr IApplicationAssociationRegistrationUI, pszAppRegistryName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LaunchAdvancedAssociationUI(self, pszAppRegistryName) + +proc SetItemAlloc*( + self: ptr IDelegateFolder, pmalloc: ptr IMalloc +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetItemAlloc(self, pmalloc) + +proc GetFrameOptions*( + self: ptr IBrowserFrameOptions, + dwMask: BROWSERFRAMEOPTIONS, + pdwOptions: ptr BROWSERFRAMEOPTIONS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFrameOptions(self, dwMask, pdwOptions) + +proc EvaluateNewWindow*( + self: ptr INewWindowManager, + pszUrl: LPCWSTR, + pszName: LPCWSTR, + pszUrlContext: LPCWSTR, + pszFeatures: LPCWSTR, + fReplace: WINBOOL, + dwFlags: DWORD, + dwUserActionTime: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EvaluateNewWindow( + self, pszUrl, pszName, pszUrlContext, pszFeatures, fReplace, dwFlags, + dwUserActionTime, + ) + +proc SetClientTitle*( + self: ptr IAttachmentExecute, pszTitle: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClientTitle(self, pszTitle) + +proc SetClientGuid*( + self: ptr IAttachmentExecute, guid: REFGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClientGuid(self, guid) + +proc SetLocalPath*( + self: ptr IAttachmentExecute, pszLocalPath: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLocalPath(self, pszLocalPath) + +proc SetFileName*( + self: ptr IAttachmentExecute, pszFileName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFileName(self, pszFileName) + +proc SetSource*( + self: ptr IAttachmentExecute, pszSource: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSource(self, pszSource) + +proc SetReferrer*( + self: ptr IAttachmentExecute, pszReferrer: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetReferrer(self, pszReferrer) + +proc CheckPolicy*(self: ptr IAttachmentExecute): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CheckPolicy(self) + +proc Prompt*( + self: ptr IAttachmentExecute, + hwnd: HWND, + prompt: ATTACHMENT_PROMPT, + paction: ptr ATTACHMENT_ACTION, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Prompt(self, hwnd, prompt, paction) + +proc Save*(self: ptr IAttachmentExecute): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self) + +proc Execute*( + self: ptr IAttachmentExecute, hwnd: HWND, pszVerb: LPCWSTR, phProcess: ptr HANDLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Execute(self, hwnd, pszVerb, phProcess) + +proc SaveWithUI*(self: ptr IAttachmentExecute, hwnd: HWND): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveWithUI(self, hwnd) + +proc ClearClientState*(self: ptr IAttachmentExecute): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearClientState(self) + +proc CallbackSM*( + self: ptr IShellMenuCallback, + psmd: LPSMDATA, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CallbackSM(self, psmd, uMsg, wParam, lParam) + +proc Initialize*( + self: ptr IShellMenu, + psmc: ptr IShellMenuCallback, + uId: UINT, + uIdAncestor: UINT, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, psmc, uId, uIdAncestor, dwFlags) + +proc GetMenuInfo*( + self: ptr IShellMenu, + ppsmc: ptr ptr IShellMenuCallback, + puId: ptr UINT, + puIdAncestor: ptr UINT, + pdwFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMenuInfo(self, ppsmc, puId, puIdAncestor, pdwFlags) + +proc SetShellFolder*( + self: ptr IShellMenu, + psf: ptr IShellFolder, + pidlFolder: PCIDLIST_ABSOLUTE, + hKey: HKEY, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetShellFolder(self, psf, pidlFolder, hKey, dwFlags) + +proc GetShellFolder*( + self: ptr IShellMenu, + pdwFlags: ptr DWORD, + ppidl: ptr PIDLIST_ABSOLUTE, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetShellFolder(self, pdwFlags, ppidl, riid, ppv) + +proc SetMenu*( + self: ptr IShellMenu, hmenu: HMENU, hwnd: HWND, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMenu(self, hmenu, hwnd, dwFlags) + +proc GetMenu*( + self: ptr IShellMenu, phmenu: ptr HMENU, phwnd: ptr HWND, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMenu(self, phmenu, phwnd, pdwFlags) + +proc InvalidateItem*( + self: ptr IShellMenu, psmd: LPSMDATA, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InvalidateItem(self, psmd, dwFlags) + +proc GetState*(self: ptr IShellMenu, psmd: LPSMDATA): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetState(self, psmd) + +proc SetMenuToolbar*( + self: ptr IShellMenu, punk: ptr IUnknown, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMenuToolbar(self, punk, dwFlags) + +proc Run*(self: ptr IShellRunDll, pszArgs: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Run(self, pszArgs) + +proc GetId*( + self: ptr IKnownFolder, pkfid: ptr KNOWNFOLDERID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetId(self, pkfid) + +proc GetCategory*( + self: ptr IKnownFolder, pCategory: ptr KF_CATEGORY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCategory(self, pCategory) + +proc GetShellItem*( + self: ptr IKnownFolder, dwFlags: DWORD, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetShellItem(self, dwFlags, riid, ppv) + +proc GetPath*( + self: ptr IKnownFolder, dwFlags: DWORD, ppszPath: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPath(self, dwFlags, ppszPath) + +proc SetPath*( + self: ptr IKnownFolder, dwFlags: DWORD, pszPath: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPath(self, dwFlags, pszPath) + +proc GetIDList*( + self: ptr IKnownFolder, dwFlags: DWORD, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIDList(self, dwFlags, ppidl) + +proc GetFolderType*( + self: ptr IKnownFolder, pftid: ptr FOLDERTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderType(self, pftid) + +proc GetRedirectionCapabilities*( + self: ptr IKnownFolder, pCapabilities: ptr KF_REDIRECTION_CAPABILITIES +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRedirectionCapabilities(self, pCapabilities) + +proc GetFolderDefinition*( + self: ptr IKnownFolder, pKFD: ptr KNOWNFOLDER_DEFINITION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderDefinition(self, pKFD) + +proc FolderIdFromCsidl*( + self: ptr IKnownFolderManager, nCsidl: int32, pfid: ptr KNOWNFOLDERID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FolderIdFromCsidl(self, nCsidl, pfid) + +proc FolderIdToCsidl*( + self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, pnCsidl: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FolderIdToCsidl(self, rfid, pnCsidl) + +proc GetFolderIds*( + self: ptr IKnownFolderManager, ppKFId: ptr ptr KNOWNFOLDERID, pCount: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderIds(self, ppKFId, pCount) + +proc GetFolder*( + self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID, ppkf: ptr ptr IKnownFolder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolder(self, rfid, ppkf) + +proc GetFolderByName*( + self: ptr IKnownFolderManager, pszCanonicalName: LPCWSTR, ppkf: ptr ptr IKnownFolder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderByName(self, pszCanonicalName, ppkf) + +proc RegisterFolder*( + self: ptr IKnownFolderManager, + rfid: REFKNOWNFOLDERID, + pKFD: ptr KNOWNFOLDER_DEFINITION, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterFolder(self, rfid, pKFD) + +proc UnregisterFolder*( + self: ptr IKnownFolderManager, rfid: REFKNOWNFOLDERID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterFolder(self, rfid) + +proc FindFolderFromPath*( + self: ptr IKnownFolderManager, + pszPath: LPCWSTR, + mode: FFFP_MODE, + ppkf: ptr ptr IKnownFolder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFolderFromPath(self, pszPath, mode, ppkf) + +proc FindFolderFromIDList*( + self: ptr IKnownFolderManager, pidl: PCIDLIST_ABSOLUTE, ppkf: ptr ptr IKnownFolder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFolderFromIDList(self, pidl, ppkf) + +proc Redirect*( + self: ptr IKnownFolderManager, + rfid: REFKNOWNFOLDERID, + hwnd: HWND, + flags: KF_REDIRECT_FLAGS, + pszTargetPath: LPCWSTR, + cFolders: UINT, + pExclusion: ptr KNOWNFOLDERID, + ppszError: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Redirect( + self, rfid, hwnd, flags, pszTargetPath, cFolders, pExclusion, ppszError + ) + +proc CreateShare*( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, role: SHARE_ROLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateShare(self, dsid, role) + +proc DeleteShare*( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteShare(self, dsid) + +proc ShareExists*( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShareExists(self, dsid) + +proc GetSharePermissions*( + self: ptr ISharingConfigurationManager, dsid: DEF_SHARE_ID, pRole: ptr SHARE_ROLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSharePermissions(self, dsid, pRole) + +proc SharePrinters*( + self: ptr ISharingConfigurationManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SharePrinters(self) + +proc StopSharingPrinters*( + self: ptr ISharingConfigurationManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StopSharingPrinters(self) + +proc ArePrintersShared*( + self: ptr ISharingConfigurationManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ArePrintersShared(self) + +proc AreSnapshotsAvailable*( + self: ptr IPreviousVersionsInfo, + pszPath: LPCWSTR, + fOkToBeSlow: WINBOOL, + pfAvailable: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AreSnapshotsAvailable(self, pszPath, fOkToBeSlow, pfAvailable) + +proc GetItemIDList*( + self: ptr IRelatedItem, ppidl: ptr PIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemIDList(self, ppidl) + +proc GetItem*( + self: ptr IRelatedItem, ppsi: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItem(self, ppsi) + +proc GetDestinationStream*( + self: ptr IDestinationStreamFactory, ppstm: ptr ptr IStream +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDestinationStream(self, ppstm) + +proc IncludeItems*( + self: ptr INewMenuClient, pflags: ptr NMCII_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IncludeItems(self, pflags) + +proc SelectAndEditItem*( + self: ptr INewMenuClient, pidlItem: PCIDLIST_ABSOLUTE, flags: NMCSAEI_FLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SelectAndEditItem(self, pidlItem, flags) + +proc Initialize*( + self: ptr IInitializeWithBindCtx, pbc: ptr IBindCtx +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pbc) + +proc IncludeItem*( + self: ptr IShellItemFilter, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IncludeItem(self, psi) + +proc GetEnumFlagsForItem*( + self: ptr IShellItemFilter, psi: ptr IShellItem, pgrfFlags: ptr SHCONTF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnumFlagsForItem(self, psi, pgrfFlags) + +proc Initialize*( + self: ptr INameSpaceTreeControl, + hwndParent: HWND, + prc: ptr RECT, + nsctsFlags: NSTCSTYLE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, hwndParent, prc, nsctsFlags) + +proc TreeAdvise*( + self: ptr INameSpaceTreeControl, punk: ptr IUnknown, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TreeAdvise(self, punk, pdwCookie) + +proc TreeUnadvise*( + self: ptr INameSpaceTreeControl, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TreeUnadvise(self, dwCookie) + +proc AppendRoot*( + self: ptr INameSpaceTreeControl, + psiRoot: ptr IShellItem, + grfEnumFlags: SHCONTF, + grfRootStyle: NSTCROOTSTYLE, + pif: ptr IShellItemFilter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AppendRoot(self, psiRoot, grfEnumFlags, grfRootStyle, pif) + +proc InsertRoot*( + self: ptr INameSpaceTreeControl, + iIndex: int32, + psiRoot: ptr IShellItem, + grfEnumFlags: SHCONTF, + grfRootStyle: NSTCROOTSTYLE, + pif: ptr IShellItemFilter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertRoot(self, iIndex, psiRoot, grfEnumFlags, grfRootStyle, pif) + +proc RemoveRoot*( + self: ptr INameSpaceTreeControl, psiRoot: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveRoot(self, psiRoot) + +proc RemoveAllRoots*(self: ptr INameSpaceTreeControl): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAllRoots(self) + +proc GetRootItems*( + self: ptr INameSpaceTreeControl, ppsiaRootItems: ptr ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRootItems(self, ppsiaRootItems) + +proc SetItemState*( + self: ptr INameSpaceTreeControl, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + nstcisFlags: NSTCITEMSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetItemState(self, psi, nstcisMask, nstcisFlags) + +proc GetItemState*( + self: ptr INameSpaceTreeControl, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + pnstcisFlags: ptr NSTCITEMSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemState(self, psi, nstcisMask, pnstcisFlags) + +proc GetSelectedItems*( + self: ptr INameSpaceTreeControl, psiaItems: ptr ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectedItems(self, psiaItems) + +proc GetItemCustomState*( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem, piStateNumber: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemCustomState(self, psi, piStateNumber) + +proc SetItemCustomState*( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem, iStateNumber: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetItemCustomState(self, psi, iStateNumber) + +proc EnsureItemVisible*( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnsureItemVisible(self, psi) + +proc SetTheme*( + self: ptr INameSpaceTreeControl, pszTheme: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTheme(self, pszTheme) + +proc GetNextItem*( + self: ptr INameSpaceTreeControl, + psi: ptr IShellItem, + nstcgi: NSTCGNI, + ppsiNext: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextItem(self, psi, nstcgi, ppsiNext) + +proc HitTest*( + self: ptr INameSpaceTreeControl, ppt: ptr POINT, ppsiOut: ptr ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HitTest(self, ppt, ppsiOut) + +proc GetItemRect*( + self: ptr INameSpaceTreeControl, psi: ptr IShellItem, prect: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemRect(self, psi, prect) + +proc CollapseAll*(self: ptr INameSpaceTreeControl): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CollapseAll(self) + +proc SetControlStyle*( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, nstcsStyle: NSTCSTYLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetControlStyle(self, nstcsMask, nstcsStyle) + +proc GetControlStyle*( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE, pnstcsStyle: ptr NSTCSTYLE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetControlStyle(self, nstcsMask, pnstcsStyle) + +proc SetControlStyle2*( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, nstcsStyle: NSTCSTYLE2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetControlStyle2(self, nstcsMask, nstcsStyle) + +proc GetControlStyle2*( + self: ptr INameSpaceTreeControl2, nstcsMask: NSTCSTYLE2, pnstcsStyle: ptr NSTCSTYLE2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetControlStyle2(self, nstcsMask, pnstcsStyle) + +proc OnItemClick*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + nstceHitTest: NSTCEHITTEST, + nstceClickType: NSTCECLICKTYPE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnItemClick(self, psi, nstceHitTest, nstceClickType) + +proc OnPropertyItemCommit*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPropertyItemCommit(self, psi) + +proc OnItemStateChanging*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + nstcisState: NSTCITEMSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnItemStateChanging(self, psi, nstcisMask, nstcisState) + +proc OnItemStateChanged*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + nstcisMask: NSTCITEMSTATE, + nstcisState: NSTCITEMSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnItemStateChanged(self, psi, nstcisMask, nstcisState) + +proc OnSelectionChanged*( + self: ptr INameSpaceTreeControlEvents, psiaSelection: ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSelectionChanged(self, psiaSelection) + +proc OnKeyboardInput*( + self: ptr INameSpaceTreeControlEvents, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnKeyboardInput(self, uMsg, wParam, lParam) + +proc OnBeforeExpand*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnBeforeExpand(self, psi) + +proc OnAfterExpand*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnAfterExpand(self, psi) + +proc OnBeginLabelEdit*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnBeginLabelEdit(self, psi) + +proc OnEndLabelEdit*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnEndLabelEdit(self, psi) + +proc OnGetToolTip*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + pszTip: LPWSTR, + cchTip: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnGetToolTip(self, psi, pszTip, cchTip) + +proc OnBeforeItemDelete*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnBeforeItemDelete(self, psi) + +proc OnItemAdded*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnItemAdded(self, psi, fIsRoot) + +proc OnItemDeleted*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem, fIsRoot: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnItemDeleted(self, psi, fIsRoot) + +proc OnBeforeContextMenu*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnBeforeContextMenu(self, psi, riid, ppv) + +proc OnAfterContextMenu*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + pcmIn: ptr IContextMenu, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnAfterContextMenu(self, psi, pcmIn, riid, ppv) + +proc OnBeforeStateImageChange*( + self: ptr INameSpaceTreeControlEvents, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnBeforeStateImageChange(self, psi) + +proc OnGetDefaultIconIndex*( + self: ptr INameSpaceTreeControlEvents, + psi: ptr IShellItem, + piDefaultIcon: ptr int32, + piOpenIcon: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnGetDefaultIconIndex(self, psi, piDefaultIcon, piOpenIcon) + +proc OnDragEnter*( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + fOutsideSource: WINBOOL, + grfKeyState: DWORD, + pdwEffect: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDragEnter( + self, psiOver, psiaData, fOutsideSource, grfKeyState, pdwEffect + ) + +proc OnDragOver*( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + grfKeyState: DWORD, + pdwEffect: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDragOver(self, psiOver, psiaData, grfKeyState, pdwEffect) + +proc OnDragPosition*( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + iNewPosition: int32, + iOldPosition: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDragPosition(self, psiOver, psiaData, iNewPosition, iOldPosition) + +proc OnDrop*( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + iPosition: int32, + grfKeyState: DWORD, + pdwEffect: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDrop(self, psiOver, psiaData, iPosition, grfKeyState, pdwEffect) + +proc OnDropPosition*( + self: ptr INameSpaceTreeControlDropHandler, + psiOver: ptr IShellItem, + psiaData: ptr IShellItemArray, + iNewPosition: int32, + iOldPosition: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDropPosition(self, psiOver, psiaData, iNewPosition, iOldPosition) + +proc OnDragLeave*( + self: ptr INameSpaceTreeControlDropHandler, psiOver: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDragLeave(self, psiOver) + +proc OnGetDefaultAccessibilityAction*( + self: ptr INameSpaceTreeAccessible, + psi: ptr IShellItem, + pbstrDefaultAction: ptr BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnGetDefaultAccessibilityAction(self, psi, pbstrDefaultAction) + +proc OnDoDefaultAccessibilityAction*( + self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnDoDefaultAccessibilityAction(self, psi) + +proc OnGetAccessibilityRole*( + self: ptr INameSpaceTreeAccessible, psi: ptr IShellItem, pvarRole: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnGetAccessibilityRole(self, psi, pvarRole) + +proc PrePaint*( + self: ptr INameSpaceTreeControlCustomDraw, + hdc: HDC, + prc: ptr RECT, + plres: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PrePaint(self, hdc, prc, plres) + +proc PostPaint*( + self: ptr INameSpaceTreeControlCustomDraw, hdc: HDC, prc: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PostPaint(self, hdc, prc) + +proc ItemPrePaint*( + self: ptr INameSpaceTreeControlCustomDraw, + hdc: HDC, + prc: ptr RECT, + pnstccdItem: ptr NSTCCUSTOMDRAW, + pclrText: ptr COLORREF, + pclrTextBk: ptr COLORREF, + plres: ptr LRESULT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ItemPrePaint(self, hdc, prc, pnstccdItem, pclrText, pclrTextBk, plres) + +proc ItemPostPaint*( + self: ptr INameSpaceTreeControlCustomDraw, + hdc: HDC, + prc: ptr RECT, + pnstccdItem: ptr NSTCCUSTOMDRAW, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ItemPostPaint(self, hdc, prc, pnstccdItem) + +proc GetFolderCapabilities*( + self: ptr INameSpaceTreeControlFolderCapabilities, + nfcMask: NSTCFOLDERCAPABILITIES, + pnfcValue: ptr NSTCFOLDERCAPABILITIES, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderCapabilities(self, nfcMask, pnfcValue) + +proc SetWindow*( + self: ptr IPreviewHandler, hwnd: HWND, prc: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWindow(self, hwnd, prc) + +proc SetRect*(self: ptr IPreviewHandler, prc: ptr RECT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRect(self, prc) + +proc DoPreview*(self: ptr IPreviewHandler): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoPreview(self) + +proc Unload*(self: ptr IPreviewHandler): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unload(self) + +proc SetFocus*(self: ptr IPreviewHandler): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFocus(self) + +proc QueryFocus*( + self: ptr IPreviewHandler, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryFocus(self, phwnd) + +proc TranslateAccelerator*( + self: ptr IPreviewHandler, pmsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, pmsg) + +proc GetWindowContext*( + self: ptr IPreviewHandlerFrame, pinfo: ptr PREVIEWHANDLERFRAMEINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindowContext(self, pinfo) + +proc TranslateAccelerator*( + self: ptr IPreviewHandlerFrame, pmsg: ptr MSG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateAccelerator(self, pmsg) + +proc ShowDeskBand*( + self: ptr ITrayDeskBand, clsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowDeskBand(self, clsid) + +proc HideDeskBand*( + self: ptr ITrayDeskBand, clsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HideDeskBand(self, clsid) + +proc IsDeskBandShown*( + self: ptr ITrayDeskBand, clsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDeskBandShown(self, clsid) + +proc DeskBandRegistrationChanged*(self: ptr ITrayDeskBand): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeskBandRegistrationChanged(self) + +proc CreateBand*( + self: ptr IBandHost, + rclsidBand: REFCLSID, + fAvailable: WINBOOL, + fVisible: WINBOOL, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBand(self, rclsidBand, fAvailable, fVisible, riid, ppv) + +proc SetBandAvailability*( + self: ptr IBandHost, rclsidBand: REFCLSID, fAvailable: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBandAvailability(self, rclsidBand, fAvailable) + +proc DestroyBand*( + self: ptr IBandHost, rclsidBand: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DestroyBand(self, rclsidBand) + +proc GetPaneState*( + self: ptr IExplorerPaneVisibility, ep: REFEXPLORERPANE, peps: ptr EXPLORERPANESTATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPaneState(self, ep, peps) + +proc CallBack*( + self: ptr IContextMenuCB, + psf: ptr IShellFolder, + hwndOwner: HWND, + pdtobj: ptr IDataObject, + uMsg: UINT, + wParam: WPARAM, + lParam: LPARAM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CallBack(self, psf, hwndOwner, pdtobj, uMsg, wParam, lParam) + +proc SetFlags*( + self: ptr IDefaultExtractIconInit, uFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFlags(self, uFlags) + +proc SetKey*( + self: ptr IDefaultExtractIconInit, hkey: HKEY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetKey(self, hkey) + +proc SetNormalIcon*( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNormalIcon(self, pszFile, iIcon) + +proc SetOpenIcon*( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOpenIcon(self, pszFile, iIcon) + +proc SetShortcutIcon*( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetShortcutIcon(self, pszFile, iIcon) + +proc SetDefaultIcon*( + self: ptr IDefaultExtractIconInit, pszFile: LPCWSTR, iIcon: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultIcon(self, pszFile, iIcon) + +proc GetTitle*( + self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszName: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTitle(self, psiItemArray, ppszName) + +proc GetIcon*( + self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, ppszIcon: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIcon(self, psiItemArray, ppszIcon) + +proc GetToolTip*( + self: ptr IExplorerCommand, + psiItemArray: ptr IShellItemArray, + ppszInfotip: ptr LPWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetToolTip(self, psiItemArray, ppszInfotip) + +proc GetCanonicalName*( + self: ptr IExplorerCommand, pguidCommandName: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCanonicalName(self, pguidCommandName) + +proc GetState*( + self: ptr IExplorerCommand, + psiItemArray: ptr IShellItemArray, + fOkToBeSlow: WINBOOL, + pCmdState: ptr EXPCMDSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetState(self, psiItemArray, fOkToBeSlow, pCmdState) + +proc Invoke*( + self: ptr IExplorerCommand, psiItemArray: ptr IShellItemArray, pbc: ptr IBindCtx +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke(self, psiItemArray, pbc) + +proc GetFlags*( + self: ptr IExplorerCommand, pFlags: ptr EXPCMDFLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFlags(self, pFlags) + +proc EnumSubCommands*( + self: ptr IExplorerCommand, ppEnum: ptr ptr IEnumExplorerCommand +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumSubCommands(self, ppEnum) + +proc GetState*( + self: ptr IExplorerCommandState, + psiItemArray: ptr IShellItemArray, + fOkToBeSlow: WINBOOL, + pCmdState: ptr EXPCMDSTATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetState(self, psiItemArray, fOkToBeSlow, pCmdState) + +proc Initialize*( + self: ptr IInitializeCommand, pszCommandName: LPCWSTR, ppb: ptr IPropertyBag +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pszCommandName, ppb) + +proc Next*( + self: ptr IEnumExplorerCommand, + celt: ULONG, + pUICommand: ptr ptr IExplorerCommand, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, pUICommand, pceltFetched) + +proc Skip*(self: ptr IEnumExplorerCommand, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IEnumExplorerCommand): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IEnumExplorerCommand, ppenum: ptr ptr IEnumExplorerCommand +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppenum) + +proc GetCommands*( + self: ptr IExplorerCommandProvider, + punkSite: ptr IUnknown, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCommands(self, punkSite, riid, ppv) + +proc GetCommand*( + self: ptr IExplorerCommandProvider, + rguidCommandId: REFGUID, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCommand(self, rguidCommandId, riid, ppv) + +proc Initialize*( + self: ptr IInitializeNetworkFolder, + pidl: PCIDLIST_ABSOLUTE, + pidlTarget: PCIDLIST_ABSOLUTE, + uDisplayType: UINT, + pszResName: LPCWSTR, + pszProvider: LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize( + self, pidl, pidlTarget, uDisplayType, pszResName, pszProvider + ) + +proc Open*( + self: ptr IOpenControlPanel, + pszName: LPCWSTR, + pszPage: LPCWSTR, + punkSite: ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self, pszName, pszPage, punkSite) + +proc GetPath*( + self: ptr IOpenControlPanel, pszName: LPCWSTR, pszPath: LPWSTR, cchPath: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPath(self, pszName, pszPath, cchPath) + +proc GetCurrentView*( + self: ptr IOpenControlPanel, pView: ptr CPVIEW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentView(self, pView) + +proc ComputerInfoChanged*( + self: ptr IComputerInfoChangeNotify +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ComputerInfoChanged(self) + +proc SetFindData*( + self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFindData(self, pfd) + +proc GetFindData*( + self: ptr IFileSystemBindData, pfd: ptr WIN32_FIND_DATAW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFindData(self, pfd) + +proc SetFileID*( + self: ptr IFileSystemBindData2, liFileID: LARGE_INTEGER +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFileID(self, liFileID) + +proc GetFileID*( + self: ptr IFileSystemBindData2, pliFileID: ptr LARGE_INTEGER +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFileID(self, pliFileID) + +proc SetJunctionCLSID*( + self: ptr IFileSystemBindData2, clsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetJunctionCLSID(self, clsid) + +proc GetJunctionCLSID*( + self: ptr IFileSystemBindData2, pclsid: ptr CLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetJunctionCLSID(self, pclsid) + +proc SetAppID*( + self: ptr ICustomDestinationList, pszAppID: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppID(self, pszAppID) + +proc BeginList*( + self: ptr ICustomDestinationList, + pcMinSlots: ptr UINT, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeginList(self, pcMinSlots, riid, ppv) + +proc AppendCategory*( + self: ptr ICustomDestinationList, pszCategory: LPCWSTR, poa: ptr IObjectArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AppendCategory(self, pszCategory, poa) + +proc AppendKnownCategory*( + self: ptr ICustomDestinationList, category: KNOWNDESTCATEGORY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AppendKnownCategory(self, category) + +proc AddUserTasks*( + self: ptr ICustomDestinationList, poa: ptr IObjectArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddUserTasks(self, poa) + +proc CommitList*(self: ptr ICustomDestinationList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CommitList(self) + +proc GetRemovedDestinations*( + self: ptr ICustomDestinationList, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRemovedDestinations(self, riid, ppv) + +proc DeleteList*( + self: ptr ICustomDestinationList, pszAppID: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteList(self, pszAppID) + +proc AbortList*(self: ptr ICustomDestinationList): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AbortList(self) + +proc SetAppID*( + self: ptr IApplicationDestinations, pszAppID: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppID(self, pszAppID) + +proc RemoveDestination*( + self: ptr IApplicationDestinations, punk: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveDestination(self, punk) + +proc RemoveAllDestinations*( + self: ptr IApplicationDestinations +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAllDestinations(self) + +proc SetAppID*( + self: ptr IApplicationDocumentLists, pszAppID: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppID(self, pszAppID) + +proc GetList*( + self: ptr IApplicationDocumentLists, + listtype: APPDOCLISTTYPE, + cItemsDesired: UINT, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetList(self, listtype, cItemsDesired, riid, ppv) + +proc SetAppID*( + self: ptr IObjectWithAppUserModelID, pszAppID: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAppID(self, pszAppID) + +proc GetAppID*( + self: ptr IObjectWithAppUserModelID, ppszAppID: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAppID(self, ppszAppID) + +proc SetProgID*( + self: ptr IObjectWithProgID, pszProgID: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgID(self, pszProgID) + +proc GetProgID*( + self: ptr IObjectWithProgID, ppszProgID: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProgID(self, ppszProgID) + +proc Update*( + self: ptr IUpdateIDList, + pbc: ptr IBindCtx, + pidlIn: PCUITEMID_CHILD, + ppidlOut: ptr PITEMID_CHILD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Update(self, pbc, pidlIn, ppidlOut) + +proc RunGadget*( + self: ptr IDesktopGadget, gadgetPath: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RunGadget(self, gadgetPath) + +proc SetWallpaper*( + self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWallpaper(self, monitorID, wallpaper) + +proc GetWallpaper*( + self: ptr IDesktopWallpaper, monitorID: LPCWSTR, wallpaper: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWallpaper(self, monitorID, wallpaper) + +proc GetMonitorDevicePathAt*( + self: ptr IDesktopWallpaper, monitorIndex: UINT, monitorID: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMonitorDevicePathAt(self, monitorIndex, monitorID) + +proc GetMonitorDevicePathCount*( + self: ptr IDesktopWallpaper, count: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMonitorDevicePathCount(self, count) + +proc GetMonitorRECT*( + self: ptr IDesktopWallpaper, monitorID: LPCWSTR, displayRect: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMonitorRECT(self, monitorID, displayRect) + +proc mSetBackgroundColor*( + self: ptr IDesktopWallpaper, color: COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBackgroundColor(self, color) + +proc GetBackgroundColor*( + self: ptr IDesktopWallpaper, color: ptr COLORREF +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBackgroundColor(self, color) + +proc SetPosition*( + self: ptr IDesktopWallpaper, position: DESKTOP_WALLPAPER_POSITION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPosition(self, position) + +proc GetPosition*( + self: ptr IDesktopWallpaper, position: ptr DESKTOP_WALLPAPER_POSITION +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPosition(self, position) + +proc SetSlideshow*( + self: ptr IDesktopWallpaper, items: ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSlideshow(self, items) + +proc GetSlideshow*( + self: ptr IDesktopWallpaper, items: ptr ptr IShellItemArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSlideshow(self, items) + +proc SetSlideshowOptions*( + self: ptr IDesktopWallpaper, options: DESKTOP_SLIDESHOW_OPTIONS, slideshowTick: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSlideshowOptions(self, options, slideshowTick) + +proc GetSlideshowOptions*( + self: ptr IDesktopWallpaper, + options: ptr DESKTOP_SLIDESHOW_OPTIONS, + slideshowTick: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSlideshowOptions(self, options, slideshowTick) + +proc AdvanceSlideshow*( + self: ptr IDesktopWallpaper, + monitorID: LPCWSTR, + direction: DESKTOP_SLIDESHOW_DIRECTION, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AdvanceSlideshow(self, monitorID, direction) + +proc GetStatus*( + self: ptr IDesktopWallpaper, state: ptr DESKTOP_SLIDESHOW_STATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStatus(self, state) + +proc Enable*(self: ptr IDesktopWallpaper, enable: WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enable(self, enable) + +proc IsMember*(self: ptr IHomeGroup, member: ptr WINBOOL): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsMember(self, member) + +proc ShowSharingWizard*( + self: ptr IHomeGroup, owner: HWND, sharingchoices: ptr HOMEGROUPSHARINGCHOICES +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowSharingWizard(self, owner, sharingchoices) + +proc Initialize*( + self: ptr IInitializeWithPropertyStore, pps: ptr IPropertyStore +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pps) + +proc GetResults*( + self: ptr IOpenSearchSource, + hwnd: HWND, + pszQuery: LPCWSTR, + dwStartIndex: DWORD, + dwCount: DWORD, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetResults(self, hwnd, pszQuery, dwStartIndex, dwCount, riid, ppv) + +proc LoadLibraryFromItem*( + self: ptr IShellLibrary, psiLibrary: ptr IShellItem, grfMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadLibraryFromItem(self, psiLibrary, grfMode) + +proc LoadLibraryFromKnownFolder*( + self: ptr IShellLibrary, kfidLibrary: REFKNOWNFOLDERID, grfMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadLibraryFromKnownFolder(self, kfidLibrary, grfMode) + +proc AddFolder*( + self: ptr IShellLibrary, psiLocation: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddFolder(self, psiLocation) + +proc RemoveFolder*( + self: ptr IShellLibrary, psiLocation: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFolder(self, psiLocation) + +proc GetFolders*( + self: ptr IShellLibrary, lff: LIBRARYFOLDERFILTER, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolders(self, lff, riid, ppv) + +proc ResolveFolder*( + self: ptr IShellLibrary, + psiFolderToResolve: ptr IShellItem, + dwTimeout: DWORD, + riid: REFIID, + ppv: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ResolveFolder(self, psiFolderToResolve, dwTimeout, riid, ppv) + +proc GetDefaultSaveFolder*( + self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDefaultSaveFolder(self, dsft, riid, ppv) + +proc SetDefaultSaveFolder*( + self: ptr IShellLibrary, dsft: DEFAULTSAVEFOLDERTYPE, psi: ptr IShellItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDefaultSaveFolder(self, dsft, psi) + +proc GetOptions*( + self: ptr IShellLibrary, plofOptions: ptr LIBRARYOPTIONFLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOptions(self, plofOptions) + +proc SetOptions*( + self: ptr IShellLibrary, lofMask: LIBRARYOPTIONFLAGS, lofOptions: LIBRARYOPTIONFLAGS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOptions(self, lofMask, lofOptions) + +proc GetFolderType*( + self: ptr IShellLibrary, pftid: ptr FOLDERTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolderType(self, pftid) + +proc SetFolderType*( + self: ptr IShellLibrary, ftid: REFFOLDERTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolderType(self, ftid) + +proc GetIcon*( + self: ptr IShellLibrary, ppszIcon: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIcon(self, ppszIcon) + +proc SetIcon*(self: ptr IShellLibrary, pszIcon: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIcon(self, pszIcon) + +proc Commit*(self: ptr IShellLibrary): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self) + +proc Save*( + self: ptr IShellLibrary, + psiFolderToSaveIn: ptr IShellItem, + pszLibraryName: LPCWSTR, + lsf: LIBRARYSAVEFLAGS, + ppsiSavedTo: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Save(self, psiFolderToSaveIn, pszLibraryName, lsf, ppsiSavedTo) + +proc SaveInKnownFolder*( + self: ptr IShellLibrary, + kfidToSaveIn: REFKNOWNFOLDERID, + pszLibraryName: LPCWSTR, + lsf: LIBRARYSAVEFLAGS, + ppsiSavedTo: ptr ptr IShellItem, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SaveInKnownFolder(self, kfidToSaveIn, pszLibraryName, lsf, ppsiSavedTo) + +proc OnPlaybackManagerEvent*( + self: ptr IPlaybackManagerEvents, dwSessionId: DWORD, mediaEvent: PBM_EVENT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnPlaybackManagerEvent(self, dwSessionId, mediaEvent) + +proc Advise*( + self: ptr IPlaybackManager, + `type`: PBM_SESSION_TYPE, + pEvents: ptr IPlaybackManagerEvents, + pdwSessionId: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, `type`, pEvents, pdwSessionId) + +proc Unadvise*( + self: ptr IPlaybackManager, dwSessionId: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwSessionId) + +proc ChangeSessionState*( + self: ptr IPlaybackManager, + dwSessionId: DWORD, + state: PBM_PLAY_STATE, + mute: PBM_MUTE_STATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ChangeSessionState(self, dwSessionId, state, mute) + +proc Initialize*( + self: ptr IDefaultFolderMenuInitialize, + hwnd: HWND, + pcmcb: ptr IContextMenuCB, + pidlFolder: PCIDLIST_ABSOLUTE, + psf: ptr IShellFolder, + cidl: UINT, + apidl: PCUITEMID_CHILD_ARRAY, + punkAssociation: ptr IUnknown, + cKeys: UINT, + aKeys: ptr HKEY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize( + self, hwnd, pcmcb, pidlFolder, psf, cidl, apidl, punkAssociation, cKeys, aKeys + ) + +proc SetMenuRestrictions*( + self: ptr IDefaultFolderMenuInitialize, dfmrValues: DEFAULT_FOLDER_MENU_RESTRICTIONS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMenuRestrictions(self, dfmrValues) + +proc GetMenuRestrictions*( + self: ptr IDefaultFolderMenuInitialize, + dfmrMask: DEFAULT_FOLDER_MENU_RESTRICTIONS, + pdfmrValues: ptr DEFAULT_FOLDER_MENU_RESTRICTIONS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMenuRestrictions(self, dfmrMask, pdfmrValues) + +proc SetHandlerClsid*( + self: ptr IDefaultFolderMenuInitialize, rclsid: REFCLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetHandlerClsid(self, rclsid) + +proc ActivateApplication*( + self: ptr IApplicationActivationManager, + appUserModelId: LPCWSTR, + arguments: LPCWSTR, + options: ACTIVATEOPTIONS, + processId: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateApplication(self, appUserModelId, arguments, options, processId) + +proc ActivateForFile*( + self: ptr IApplicationActivationManager, + appUserModelId: LPCWSTR, + itemArray: ptr IShellItemArray, + verb: LPCWSTR, + processId: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateForFile(self, appUserModelId, itemArray, verb, processId) + +proc ActivateForProtocol*( + self: ptr IApplicationActivationManager, + appUserModelId: LPCWSTR, + itemArray: ptr IShellItemArray, + processId: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateForProtocol(self, appUserModelId, itemArray, processId) + +proc SupportsSelection*(self: ptr IAssocHandlerInvoker): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SupportsSelection(self) + +proc Invoke*(self: ptr IAssocHandlerInvoker): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke(self) + +proc GetName*(self: ptr IAssocHandler, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetName(self, ppsz) + +proc GetUIName*(self: ptr IAssocHandler, ppsz: ptr LPWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUIName(self, ppsz) + +proc GetIconLocation*( + self: ptr IAssocHandler, ppszPath: ptr LPWSTR, pIndex: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconLocation(self, ppszPath, pIndex) + +proc IsRecommended*(self: ptr IAssocHandler): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsRecommended(self) + +proc MakeDefault*( + self: ptr IAssocHandler, pszDescription: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MakeDefault(self, pszDescription) + +proc Invoke*( + self: ptr IAssocHandler, pdo: ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke(self, pdo) + +proc CreateInvoker*( + self: ptr IAssocHandler, + pdo: ptr IDataObject, + ppInvoker: ptr ptr IAssocHandlerInvoker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInvoker(self, pdo, ppInvoker) + +proc Next*( + self: ptr IEnumAssocHandlers, + celt: ULONG, + rgelt: ptr ptr IAssocHandler, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgelt, pceltFetched) + +proc GetDataObject*( + self: ptr IDataObjectProvider, dataObject: ptr ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDataObject(self, dataObject) + +proc SetDataObject*( + self: ptr IDataObjectProvider, dataObject: ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDataObject(self, dataObject) + +proc GetForWindow*( + self: ptr IDataTransferManagerInterop, + appWindow: HWND, + riid: REFIID, + dataTransferManager: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetForWindow(self, appWindow, riid, dataTransferManager) + +proc ShowShareUIForWindow*( + self: ptr IDataTransferManagerInterop, appWindow: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowShareUIForWindow(self, appWindow) + +proc Showing*( + self: ptr IFrameworkInputPaneHandler, + prcInputPaneScreenLocation: ptr RECT, + fEnsureFocusedElementInView: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Showing(self, prcInputPaneScreenLocation, fEnsureFocusedElementInView) + +proc Hiding*( + self: ptr IFrameworkInputPaneHandler, fEnsureFocusedElementInView: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Hiding(self, fEnsureFocusedElementInView) + +proc Advise*( + self: ptr IFrameworkInputPane, + pWindow: ptr IUnknown, + pHandler: ptr IFrameworkInputPaneHandler, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pWindow, pHandler, pdwCookie) + +proc AdviseWithHWND*( + self: ptr IFrameworkInputPane, + hwnd: HWND, + pHandler: ptr IFrameworkInputPaneHandler, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AdviseWithHWND(self, hwnd, pHandler, pdwCookie) + +proc Unadvise*( + self: ptr IFrameworkInputPane, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc Location*( + self: ptr IFrameworkInputPane, prcInputPaneScreenLocation: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Location(self, prcInputPaneScreenLocation) + +proc GetSearchWindow*( + self: ptr ISearchableApplication, hwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSearchWindow(self, hwnd) + +proc Undocked*( + self: ptr IAccessibilityDockingServiceCallback, undockReason: UNDOCK_REASON +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Undocked(self, undockReason) + +proc GetAvailableSize*( + self: ptr IAccessibilityDockingService, + hMonitor: HMONITOR, + pcxFixed: ptr UINT, + pcyMax: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAvailableSize(self, hMonitor, pcxFixed, pcyMax) + +proc DockWindow*( + self: ptr IAccessibilityDockingService, + hwnd: HWND, + hMonitor: HMONITOR, + cyRequested: UINT, + pCallback: ptr IAccessibilityDockingServiceCallback, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DockWindow(self, hwnd, hMonitor, cyRequested, pCallback) + +proc UndockWindow*( + self: ptr IAccessibilityDockingService, hwnd: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UndockWindow(self, hwnd) + +proc AppVisibilityOnMonitorChanged*( + self: ptr IAppVisibilityEvents, + hMonitor: HMONITOR, + previousMode: MONITOR_APP_VISIBILITY, + currentMode: MONITOR_APP_VISIBILITY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AppVisibilityOnMonitorChanged(self, hMonitor, previousMode, currentMode) + +proc LauncherVisibilityChange*( + self: ptr IAppVisibilityEvents, currentVisibleState: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LauncherVisibilityChange(self, currentVisibleState) + +proc GetAppVisibilityOnMonitor*( + self: ptr IAppVisibility, hMonitor: HMONITOR, pMode: ptr MONITOR_APP_VISIBILITY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAppVisibilityOnMonitor(self, hMonitor, pMode) + +proc IsLauncherVisible*( + self: ptr IAppVisibility, pfVisible: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLauncherVisible(self, pfVisible) + +proc Advise*( + self: ptr IAppVisibility, pCallback: ptr IAppVisibilityEvents, pdwCookie: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Advise(self, pCallback, pdwCookie) + +proc Unadvise*(self: ptr IAppVisibility, dwCookie: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Unadvise(self, dwCookie) + +proc OnStateChanged*( + self: ptr IPackageExecutionStateChangeNotification, + pszPackageFullName: LPCWSTR, + pesNewState: PACKAGE_EXECUTION_STATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnStateChanged(self, pszPackageFullName, pesNewState) + +proc EnableDebugging*( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + debuggerCommandLine: LPCWSTR, + environment: PZZWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnableDebugging(self, packageFullName, debuggerCommandLine, environment) + +proc DisableDebugging*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DisableDebugging(self, packageFullName) + +proc Suspend*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Suspend(self, packageFullName) + +proc Resume*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resume(self, packageFullName) + +proc TerminateAllProcesses*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TerminateAllProcesses(self, packageFullName) + +proc SetTargetSessionId*( + self: ptr IPackageDebugSettings, sessionId: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTargetSessionId(self, sessionId) + +proc EnumerateBackgroundTasks*( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + taskCount: ptr ULONG, + taskIds: ptr LPCGUID, + taskNames: ptr ptr LPCWSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnumerateBackgroundTasks( + self, packageFullName, taskCount, taskIds, taskNames + ) + +proc ActivateBackgroundTask*( + self: ptr IPackageDebugSettings, taskId: LPCGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ActivateBackgroundTask(self, taskId) + +proc StartServicing*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartServicing(self, packageFullName) + +proc StopServicing*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StopServicing(self, packageFullName) + +proc StartSessionRedirection*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR, sessionId: ULONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartSessionRedirection(self, packageFullName, sessionId) + +proc StopSessionRedirection*( + self: ptr IPackageDebugSettings, packageFullName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StopSessionRedirection(self, packageFullName) + +proc GetPackageExecutionState*( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + packageExecutionState: ptr PACKAGE_EXECUTION_STATE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPackageExecutionState(self, packageFullName, packageExecutionState) + +proc RegisterForPackageStateChanges*( + self: ptr IPackageDebugSettings, + packageFullName: LPCWSTR, + pPackageExecutionStateChangeNotification: + ptr IPackageExecutionStateChangeNotification, + pdwCookie: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterForPackageStateChanges( + self, packageFullName, pPackageExecutionStateChangeNotification, pdwCookie + ) + +proc UnregisterForPackageStateChanges*( + self: ptr IPackageDebugSettings, dwCookie: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UnregisterForPackageStateChanges(self, dwCookie) + +proc GetValue*( + self: ptr IExecuteCommandApplicationHostEnvironment, pahe: ptr AHE_TYPE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetValue(self, pahe) + +proc GetUIMode*( + self: ptr IExecuteCommandHost, pUIMode: ptr EC_HOST_UI_MODE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUIMode(self, pUIMode) + +proc SetNativeDisplaySize*( + self: ptr IApplicationDesignModeSettings, sizeNativeDisplay: SIZE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetNativeDisplaySize(self, sizeNativeDisplay) + +proc SetScaleFactor*( + self: ptr IApplicationDesignModeSettings, scaleFactor: DEVICE_SCALE_FACTOR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScaleFactor(self, scaleFactor) + +proc SetApplicationViewState*( + self: ptr IApplicationDesignModeSettings, viewState: APPLICATION_VIEW_STATE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetApplicationViewState(self, viewState) + +proc ComputeApplicationSize*( + self: ptr IApplicationDesignModeSettings, psizeApplication: ptr SIZE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ComputeApplicationSize(self, psizeApplication) + +proc IsApplicationViewStateSupported*( + self: ptr IApplicationDesignModeSettings, + viewState: APPLICATION_VIEW_STATE, + sizeNativeDisplay: SIZE, + scaleFactor: DEVICE_SCALE_FACTOR, + pfSupported: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsApplicationViewStateSupported( + self, viewState, sizeNativeDisplay, scaleFactor, pfSupported + ) + +proc TriggerEdgeGesture*( + self: ptr IApplicationDesignModeSettings, edgeGestureKind: EDGE_GESTURE_KIND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TriggerEdgeGesture(self, edgeGestureKind) + +proc Initialize*( + self: ptr IInitializeWithWindow, hwnd: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, hwnd) + +proc GetApplicationDisplayName*( + self: ptr IHandlerInfo, value: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetApplicationDisplayName(self, value) + +proc GetApplicationPublisher*( + self: ptr IHandlerInfo, value: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetApplicationPublisher(self, value) + +proc GetApplicationIconReference*( + self: ptr IHandlerInfo, value: ptr LPWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetApplicationIconReference(self, value) + +proc BeforeCoCreateInstance*( + self: ptr IHandlerActivationHost, + clsidHandler: REFCLSID, + itemsBeingActivated: ptr IShellItemArray, + handlerInfo: ptr IHandlerInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeforeCoCreateInstance( + self, clsidHandler, itemsBeingActivated, handlerInfo + ) + +proc BeforeCreateProcess*( + self: ptr IHandlerActivationHost, + applicationPath: LPCWSTR, + commandLine: LPCWSTR, + handlerInfo: ptr IHandlerInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BeforeCreateProcess(self, applicationPath, commandLine, handlerInfo) + +proc GetIconLocation*( + self: ptr IExtractIconA, + uFlags: UINT, + pszIconFile: PSTR, + cchMax: UINT, + piIndex: ptr int32, + pwFlags: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconLocation(self, uFlags, pszIconFile, cchMax, piIndex, pwFlags) + +proc Extract*( + self: ptr IExtractIconA, + pszFile: PCSTR, + nIconIndex: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Extract(self, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize) + +proc GetIconLocation*( + self: ptr IExtractIconW, + uFlags: UINT, + pszIconFile: PWSTR, + cchMax: UINT, + piIndex: ptr int32, + pwFlags: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconLocation(self, uFlags, pszIconFile, cchMax, piIndex, pwFlags) + +proc Extract*( + self: ptr IExtractIconW, + pszFile: PCWSTR, + nIconIndex: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Extract(self, pszFile, nIconIndex, phiconLarge, phiconSmall, nIconSize) + +proc IsMemberOf*( + self: ptr IShellIconOverlayIdentifier, pwszPath: PCWSTR, dwAttrib: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsMemberOf(self, pwszPath, dwAttrib) + +proc GetOverlayInfo*( + self: ptr IShellIconOverlayIdentifier, + pwszIconFile: PWSTR, + cchMax: int32, + pIndex: ptr int32, + pdwFlags: ptr DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOverlayInfo(self, pwszIconFile, cchMax, pIndex, pdwFlags) + +proc GetPriority*( + self: ptr IShellIconOverlayIdentifier, pIPriority: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPriority(self, pIPriority) + +proc GetFileOverlayInfo*( + self: ptr IShellIconOverlayManager, + pwszPath: PCWSTR, + dwAttrib: DWORD, + pIndex: ptr int32, + dwflags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFileOverlayInfo(self, pwszPath, dwAttrib, pIndex, dwflags) + +proc GetReservedOverlayInfo*( + self: ptr IShellIconOverlayManager, + pwszPath: PCWSTR, + dwAttrib: DWORD, + pIndex: ptr int32, + dwflags: DWORD, + iReservedID: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetReservedOverlayInfo( + self, pwszPath, dwAttrib, pIndex, dwflags, iReservedID + ) + +proc RefreshOverlayImages*( + self: ptr IShellIconOverlayManager, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RefreshOverlayImages(self, dwFlags) + +proc LoadNonloadedOverlayIdentifiers*( + self: ptr IShellIconOverlayManager +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.LoadNonloadedOverlayIdentifiers(self) + +proc OverlayIndexFromImageIndex*( + self: ptr IShellIconOverlayManager, iImage: int32, piIndex: ptr int32, fAdd: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OverlayIndexFromImageIndex(self, iImage, piIndex, fAdd) + +proc GetOverlayIndex*( + self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIndex: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOverlayIndex(self, pidl, pIndex) + +proc GetOverlayIconIndex*( + self: ptr IShellIconOverlay, pidl: PCUITEMID_CHILD, pIconIndex: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOverlayIconIndex(self, pidl, pIconIndex) + +proc Execute*( + self: ptr IShellExecuteHookA, pei: LPSHELLEXECUTEINFOA +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Execute(self, pei) + +proc Execute*( + self: ptr IShellExecuteHookW, pei: LPSHELLEXECUTEINFOW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Execute(self, pei) + +proc Translate*( + self: ptr IURLSearchHook, pwszSearchURL: PWSTR, cchBufferSize: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Translate(self, pwszSearchURL, cchBufferSize) + +proc GetSearchUrl*( + self: ptr ISearchContext, pbstrSearchUrl: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSearchUrl(self, pbstrSearchUrl) + +proc GetSearchText*( + self: ptr ISearchContext, pbstrSearchText: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSearchText(self, pbstrSearchText) + +proc GetSearchStyle*( + self: ptr ISearchContext, pdwSearchStyle: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSearchStyle(self, pdwSearchStyle) + +proc TranslateWithSearchContext*( + self: ptr IURLSearchHook2, + pwszSearchURL: PWSTR, + cchBufferSize: DWORD, + pSearchContext: ptr ISearchContext, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.TranslateWithSearchContext( + self, pwszSearchURL, cchBufferSize, pSearchContext + ) + +proc SetReferent*( + self: ptr INewShortcutHookA, pcszReferent: PCSTR, hwnd: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetReferent(self, pcszReferent, hwnd) + +proc GetReferent*( + self: ptr INewShortcutHookA, pszReferent: PSTR, cchReferent: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetReferent(self, pszReferent, cchReferent) + +proc SetFolder*( + self: ptr INewShortcutHookA, pcszFolder: PCSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolder(self, pcszFolder) + +proc GetFolder*( + self: ptr INewShortcutHookA, pszFolder: PSTR, cchFolder: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolder(self, pszFolder, cchFolder) + +proc GetName*( + self: ptr INewShortcutHookA, pszName: PSTR, cchName: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetName(self, pszName, cchName) + +proc GetExtension*( + self: ptr INewShortcutHookA, pszExtension: PSTR, cchExtension: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExtension(self, pszExtension, cchExtension) + +proc SetReferent*( + self: ptr INewShortcutHookW, pcszReferent: PCWSTR, hwnd: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetReferent(self, pcszReferent, hwnd) + +proc GetReferent*( + self: ptr INewShortcutHookW, pszReferent: PWSTR, cchReferent: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetReferent(self, pszReferent, cchReferent) + +proc SetFolder*( + self: ptr INewShortcutHookW, pcszFolder: PCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFolder(self, pcszFolder) + +proc GetFolder*( + self: ptr INewShortcutHookW, pszFolder: PWSTR, cchFolder: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFolder(self, pszFolder, cchFolder) + +proc GetName*( + self: ptr INewShortcutHookW, pszName: PWSTR, cchName: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetName(self, pszName, cchName) + +proc GetExtension*( + self: ptr INewShortcutHookW, pszExtension: PWSTR, cchExtension: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExtension(self, pszExtension, cchExtension) + +proc CopyCallback*( + self: ptr ICopyHookA, + hwnd: HWND, + wFunc: UINT, + wFlags: UINT, + pszSrcFile: PCSTR, + dwSrcAttribs: DWORD, + pszDestFile: PCSTR, + dwDestAttribs: DWORD, +): UINT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyCallback( + self, hwnd, wFunc, wFlags, pszSrcFile, dwSrcAttribs, pszDestFile, dwDestAttribs + ) + +proc CopyCallback*( + self: ptr ICopyHookW, + hwnd: HWND, + wFunc: UINT, + wFlags: UINT, + pszSrcFile: PCWSTR, + dwSrcAttribs: DWORD, + pszDestFile: PCWSTR, + dwDestAttribs: DWORD, +): UINT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyCallback( + self, hwnd, wFunc, wFlags, pszSrcFile, dwSrcAttribs, pszDestFile, dwDestAttribs + ) + +proc SetPinnedWindow*( + self: ptr IFileViewerSite, hwnd: HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPinnedWindow(self, hwnd) + +proc GetPinnedWindow*( + self: ptr IFileViewerSite, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPinnedWindow(self, phwnd) + +proc ShowInitialize*( + self: ptr IFileViewerA, lpfsi: LPFILEVIEWERSITE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowInitialize(self, lpfsi) + +proc Show*(self: ptr IFileViewerA, pvsi: LPFVSHOWINFO): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, pvsi) + +proc PrintTo*( + self: ptr IFileViewerA, pszDriver: PSTR, fSuppressUI: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PrintTo(self, pszDriver, fSuppressUI) + +proc ShowInitialize*( + self: ptr IFileViewerW, lpfsi: LPFILEVIEWERSITE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowInitialize(self, lpfsi) + +proc Show*(self: ptr IFileViewerW, pvsi: LPFVSHOWINFO): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Show(self, pvsi) + +proc PrintTo*( + self: ptr IFileViewerW, pszDriver: PWSTR, fSuppressUI: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PrintTo(self, pszDriver, fSuppressUI) + +proc GetDetailsOf*( + self: ptr IShellDetails, + pidl: PCUITEMID_CHILD, + iColumn: UINT, + pDetails: ptr SHELLDETAILS, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDetailsOf(self, pidl, iColumn, pDetails) + +proc ColumnClick*(self: ptr IShellDetails, iColumn: UINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ColumnClick(self, iColumn) + +proc Append*(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Append(self, punk) + +proc Remove*(self: ptr IObjMgr, punk: ptr IUnknown): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Remove(self, punk) + +proc GetDirectory*( + self: ptr ICurrentWorkingDirectory, pwzPath: PWSTR, cchSize: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDirectory(self, pwzPath, cchSize) + +proc SetDirectory*( + self: ptr ICurrentWorkingDirectory, pwzPath: PCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDirectory(self, pwzPath) + +proc Expand*(self: ptr IACList, pszExpand: PCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Expand(self, pszExpand) + +proc SetOptions*(self: ptr IACList2, dwFlag: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetOptions(self, dwFlag) + +proc GetOptions*(self: ptr IACList2, pdwFlag: ptr DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOptions(self, pdwFlag) + +proc StartProgressDialog*( + self: ptr IProgressDialog, + hwndParent: HWND, + punkEnableModless: ptr IUnknown, + dwFlags: DWORD, + pvResevered: LPCVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartProgressDialog( + self, hwndParent, punkEnableModless, dwFlags, pvResevered + ) + +proc StopProgressDialog*(self: ptr IProgressDialog): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StopProgressDialog(self) + +proc SetTitle*( + self: ptr IProgressDialog, pwzTitle: PCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTitle(self, pwzTitle) + +proc SetAnimation*( + self: ptr IProgressDialog, hInstAnimation: HINSTANCE, idAnimation: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAnimation(self, hInstAnimation, idAnimation) + +proc HasUserCancelled*(self: ptr IProgressDialog): WINBOOL {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasUserCancelled(self) + +proc SetProgress*( + self: ptr IProgressDialog, dwCompleted: DWORD, dwTotal: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgress(self, dwCompleted, dwTotal) + +proc SetProgress64*( + self: ptr IProgressDialog, ullCompleted: ULONGLONG, ullTotal: ULONGLONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetProgress64(self, ullCompleted, ullTotal) + +proc SetLine*( + self: ptr IProgressDialog, + dwLineNum: DWORD, + pwzString: PCWSTR, + fCompactPath: WINBOOL, + pvResevered: LPCVOID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetLine(self, dwLineNum, pwzString, fCompactPath, pvResevered) + +proc SetCancelMsg*( + self: ptr IProgressDialog, pwzCancelMsg: PCWSTR, pvResevered: LPCVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCancelMsg(self, pwzCancelMsg, pvResevered) + +proc Timer*( + self: ptr IProgressDialog, dwTimerAction: DWORD, pvResevered: LPCVOID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Timer(self, dwTimerAction, pvResevered) + +proc GetBorderDW*( + self: ptr IDockingWindowSite, punkObj: ptr IUnknown, prcBorder: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBorderDW(self, punkObj, prcBorder) + +proc RequestBorderSpaceDW*( + self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RequestBorderSpaceDW(self, punkObj, pbw) + +proc SetBorderSpaceDW*( + self: ptr IDockingWindowSite, punkObj: ptr IUnknown, pbw: LPCBORDERWIDTHS +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBorderSpaceDW(self, punkObj, pbw) + +proc AddToolbar*( + self: ptr IDockingWindowFrame, + punkSrc: ptr IUnknown, + pwszItem: PCWSTR, + dwAddFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddToolbar(self, punkSrc, pwszItem, dwAddFlags) + +proc RemoveToolbar*( + self: ptr IDockingWindowFrame, punkSrc: ptr IUnknown, dwRemoveFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveToolbar(self, punkSrc, dwRemoveFlags) + +proc FindToolbar*( + self: ptr IDockingWindowFrame, pwszItem: PCWSTR, riid: REFIID, ppv: ptr pointer +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindToolbar(self, pwszItem, riid, ppv) + +proc CaptureThumbnail*( + self: ptr IThumbnailCapture, + pMaxSize: ptr SIZE, + pHTMLDoc2: ptr IUnknown, + phbmThumbnail: ptr HBITMAP, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CaptureThumbnail(self, pMaxSize, pHTMLDoc2, phbmThumbnail) + +proc Reset*(self: ptr IEnumShellImageStore): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Next*( + self: ptr IEnumShellImageStore, + celt: ULONG, + prgElt: ptr PENUMSHELLIMAGESTOREDATA, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, prgElt, pceltFetched) + +proc Skip*(self: ptr IEnumShellImageStore, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Clone*( + self: ptr IEnumShellImageStore, ppEnum: ptr ptr IEnumShellImageStore +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppEnum) + +proc Open*( + self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Open(self, dwMode, pdwLock) + +proc Create*( + self: ptr IShellImageStore, dwMode: DWORD, pdwLock: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Create(self, dwMode, pdwLock) + +proc ReleaseLock*( + self: ptr IShellImageStore, pdwLock: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseLock(self, pdwLock) + +proc Close*( + self: ptr IShellImageStore, pdwLock: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self, pdwLock) + +proc Commit*( + self: ptr IShellImageStore, pdwLock: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self, pdwLock) + +proc IsLocked*(self: ptr IShellImageStore): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsLocked(self) + +proc GetMode*( + self: ptr IShellImageStore, pdwMode: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMode(self, pdwMode) + +proc GetCapabilities*( + self: ptr IShellImageStore, pdwCapMask: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCapabilities(self, pdwCapMask) + +proc AddEntry*( + self: ptr IShellImageStore, + pszName: PCWSTR, + pftTimeStamp: ptr FILETIME, + dwMode: DWORD, + hImage: HBITMAP, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddEntry(self, pszName, pftTimeStamp, dwMode, hImage) + +proc GetEntry*( + self: ptr IShellImageStore, pszName: PCWSTR, dwMode: DWORD, phImage: ptr HBITMAP +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEntry(self, pszName, dwMode, phImage) + +proc DeleteEntry*( + self: ptr IShellImageStore, pszName: PCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteEntry(self, pszName) + +proc IsEntryInStore*( + self: ptr IShellImageStore, pszName: PCWSTR, pftTimeStamp: ptr FILETIME +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsEntryInStore(self, pszName, pftTimeStamp) + +proc Enum*( + self: ptr IShellImageStore, ppEnum: ptr LPENUMSHELLIMAGESTORE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Enum(self, ppEnum) + +proc InitializeSFB*( + self: ptr IShellFolderBand, psf: ptr IShellFolder, pidl: PCIDLIST_ABSOLUTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeSFB(self, psf, pidl) + +proc SetBandInfoSFB*( + self: ptr IShellFolderBand, pbi: PBANDINFOSFB +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBandInfoSFB(self, pbi) + +proc GetBandInfoSFB*( + self: ptr IShellFolderBand, pbi: PBANDINFOSFB +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBandInfoSFB(self, pbi) + +proc SetDeskBarSite*( + self: ptr IDeskBarClient, punkSite: ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDeskBarSite(self, punkSite) + +proc SetModeDBC*(self: ptr IDeskBarClient, dwMode: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetModeDBC(self, dwMode) + +proc UIActivateDBC*( + self: ptr IDeskBarClient, dwState: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UIActivateDBC(self, dwState) + +proc GetSize*( + self: ptr IDeskBarClient, dwWhich: DWORD, prc: LPRECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, dwWhich, prc) + +proc ApplyChanges*( + self: ptr IActiveDesktop, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ApplyChanges(self, dwFlags) + +proc GetWallpaper*( + self: ptr IActiveDesktop, pwszWallpaper: PWSTR, cchWallpaper: UINT, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWallpaper(self, pwszWallpaper, cchWallpaper, dwFlags) + +proc SetWallpaper*( + self: ptr IActiveDesktop, pwszWallpaper: PCWSTR, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWallpaper(self, pwszWallpaper, dwReserved) + +proc GetWallpaperOptions*( + self: ptr IActiveDesktop, pwpo: LPWALLPAPEROPT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWallpaperOptions(self, pwpo, dwReserved) + +proc SetWallpaperOptions*( + self: ptr IActiveDesktop, pwpo: LPCWALLPAPEROPT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWallpaperOptions(self, pwpo, dwReserved) + +proc GetPattern*( + self: ptr IActiveDesktop, pwszPattern: PWSTR, cchPattern: UINT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPattern(self, pwszPattern, cchPattern, dwReserved) + +proc SetPattern*( + self: ptr IActiveDesktop, pwszPattern: PCWSTR, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPattern(self, pwszPattern, dwReserved) + +proc GetDesktopItemOptions*( + self: ptr IActiveDesktop, pco: LPCOMPONENTSOPT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDesktopItemOptions(self, pco, dwReserved) + +proc SetDesktopItemOptions*( + self: ptr IActiveDesktop, pco: LPCCOMPONENTSOPT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDesktopItemOptions(self, pco, dwReserved) + +proc AddDesktopItem*( + self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddDesktopItem(self, pcomp, dwReserved) + +proc AddDesktopItemWithUI*( + self: ptr IActiveDesktop, hwnd: HWND, pcomp: LPCOMPONENT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddDesktopItemWithUI(self, hwnd, pcomp, dwReserved) + +proc ModifyDesktopItem*( + self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ModifyDesktopItem(self, pcomp, dwFlags) + +proc RemoveDesktopItem*( + self: ptr IActiveDesktop, pcomp: LPCCOMPONENT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveDesktopItem(self, pcomp, dwReserved) + +proc GetDesktopItemCount*( + self: ptr IActiveDesktop, pcItems: ptr int32, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDesktopItemCount(self, pcItems, dwReserved) + +proc GetDesktopItem*( + self: ptr IActiveDesktop, nComponent: int32, pcomp: LPCOMPONENT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDesktopItem(self, nComponent, pcomp, dwReserved) + +proc GetDesktopItemByID*( + self: ptr IActiveDesktop, dwID: ULONG_PTR, pcomp: LPCOMPONENT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDesktopItemByID(self, dwID, pcomp, dwReserved) + +proc GenerateDesktopItemHtml*( + self: ptr IActiveDesktop, + pwszFileName: PCWSTR, + pcomp: LPCOMPONENT, + dwReserved: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GenerateDesktopItemHtml(self, pwszFileName, pcomp, dwReserved) + +proc AddUrl*( + self: ptr IActiveDesktop, + hwnd: HWND, + pszSource: PCWSTR, + pcomp: LPCOMPONENT, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddUrl(self, hwnd, pszSource, pcomp, dwFlags) + +proc GetDesktopItemBySource*( + self: ptr IActiveDesktop, pwszSource: PCWSTR, pcomp: LPCOMPONENT, dwReserved: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDesktopItemBySource(self, pwszSource, pcomp, dwReserved) + +proc SetSafeMode*( + self: ptr IActiveDesktopP, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSafeMode(self, dwFlags) + +proc EnsureUpdateHTML*(self: ptr IActiveDesktopP): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EnsureUpdateHTML(self) + +proc SetScheme*( + self: ptr IActiveDesktopP, pwszSchemeName: PCWSTR, dwFlags: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScheme(self, pwszSchemeName, dwFlags) + +proc GetScheme*( + self: ptr IActiveDesktopP, + pwszSchemeName: PWSTR, + pdwcchBuffer: ptr DWORD, + dwFlags: DWORD, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetScheme(self, pwszSchemeName, pdwcchBuffer, dwFlags) + +proc ReReadWallpaper*(self: ptr IADesktopP2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReReadWallpaper(self) + +proc GetADObjectFlags*( + self: ptr IADesktopP2, pdwFlags: ptr DWORD, dwMask: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetADObjectFlags(self, pdwFlags, dwMask) + +proc UpdateAllDesktopSubscriptions*(self: ptr IADesktopP2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateAllDesktopSubscriptions(self) + +proc MakeDynamicChanges*( + self: ptr IADesktopP2, pOleObj: ptr IOleObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MakeDynamicChanges(self, pOleObj) + +proc Initialize*( + self: ptr IColumnProvider, psci: LPCSHCOLUMNINIT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, psci) + +proc GetColumnInfo*( + self: ptr IColumnProvider, dwIndex: DWORD, psci: ptr SHCOLUMNINFO +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnInfo(self, dwIndex, psci) + +proc GetItemData*( + self: ptr IColumnProvider, + pscid: LPCSHCOLUMNID, + pscd: LPCSHCOLUMNDATA, + pvarData: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemData(self, pscid, pscd, pvarData) + +proc OnChange*( + self: ptr IShellChangeNotify, + lEvent: LONG, + pidl1: PCIDLIST_ABSOLUTE, + pidl2: PCIDLIST_ABSOLUTE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnChange(self, lEvent, pidl1, pidl2) + +proc GetInfoTip*( + self: ptr IQueryInfo, dwFlags: DWORD, ppwszTip: ptr PWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInfoTip(self, dwFlags, ppwszTip) + +proc GetInfoFlags*( + self: ptr IQueryInfo, pdwFlags: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetInfoFlags(self, pdwFlags) + +proc GetWindowLV*( + self: ptr IDefViewFrame, phwnd: ptr HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWindowLV(self, phwnd) + +proc ReleaseWindowLV*(self: ptr IDefViewFrame): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReleaseWindowLV(self) + +proc GetShellFolder*( + self: ptr IDefViewFrame, ppsf: ptr ptr IShellFolder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetShellFolder(self, ppsf) + +proc OnSetTitle*( + self: ptr IDocViewSite, pvTitle: ptr VARIANTARG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.OnSetTitle(self, pvTitle) + +proc Initialize*(self: ptr IInitializeObject): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self) + +proc SetIconSize*(self: ptr IBanneredBar, iIcon: DWORD): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetIconSize(self, iIcon) + +proc GetIconSize*( + self: ptr IBanneredBar, piIcon: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIconSize(self, piIcon) + +proc SetBitmap*(self: ptr IBanneredBar, hBitmap: HBITMAP): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetBitmap(self, hBitmap) + +proc GetBitmap*( + self: ptr IBanneredBar, phBitmap: ptr HBITMAP +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBitmap(self, phBitmap) + +proc MessageSFVCB*( + self: ptr IShellFolderViewCB, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MessageSFVCB(self, uMsg, wParam, lParam) + +proc Rearrange*( + self: ptr IShellFolderView, lParamSort: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Rearrange(self, lParamSort) + +proc GetArrangeParam*( + self: ptr IShellFolderView, plParamSort: ptr LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetArrangeParam(self, plParamSort) + +proc ArrangeGrid*(self: ptr IShellFolderView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ArrangeGrid(self) + +proc AutoArrange*(self: ptr IShellFolderView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AutoArrange(self) + +proc GetAutoArrange*(self: ptr IShellFolderView): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAutoArrange(self) + +proc AddObject*( + self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddObject(self, pidl, puItem) + +proc GetObject*( + self: ptr IShellFolderView, ppidl: ptr PITEMID_CHILD, uItem: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObject(self, ppidl, uItem) + +proc RemoveObject*( + self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveObject(self, pidl, puItem) + +proc GetObjectCount*( + self: ptr IShellFolderView, puCount: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectCount(self, puCount) + +proc SetObjectCount*( + self: ptr IShellFolderView, uCount: UINT, dwFlags: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetObjectCount(self, uCount, dwFlags) + +proc UpdateObject*( + self: ptr IShellFolderView, + pidlOld: PUITEMID_CHILD, + pidlNew: PUITEMID_CHILD, + puItem: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.UpdateObject(self, pidlOld, pidlNew, puItem) + +proc RefreshObject*( + self: ptr IShellFolderView, pidl: PUITEMID_CHILD, puItem: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RefreshObject(self, pidl, puItem) + +proc SetRedraw*( + self: ptr IShellFolderView, bRedraw: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetRedraw(self, bRedraw) + +proc GetSelectedCount*( + self: ptr IShellFolderView, puSelected: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectedCount(self, puSelected) + +proc GetSelectedObjects*( + self: ptr IShellFolderView, pppidl: ptr ptr PCUITEMID_CHILD, puItems: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelectedObjects(self, pppidl, puItems) + +proc IsDropOnSource*( + self: ptr IShellFolderView, pDropTarget: ptr IDropTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsDropOnSource(self, pDropTarget) + +proc GetDragPoint*( + self: ptr IShellFolderView, ppt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDragPoint(self, ppt) + +proc GetDropPoint*( + self: ptr IShellFolderView, ppt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDropPoint(self, ppt) + +proc MoveIcons*( + self: ptr IShellFolderView, pDataObject: ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveIcons(self, pDataObject) + +proc SetItemPos*( + self: ptr IShellFolderView, pidl: PCUITEMID_CHILD, ppt: ptr POINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetItemPos(self, pidl, ppt) + +proc IsBkDropTarget*( + self: ptr IShellFolderView, pDropTarget: ptr IDropTarget +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsBkDropTarget(self, pDropTarget) + +proc SetClipboard*( + self: ptr IShellFolderView, bMove: WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetClipboard(self, bMove) + +proc SetPoints*( + self: ptr IShellFolderView, pDataObject: ptr IDataObject +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPoints(self, pDataObject) + +proc GetItemSpacing*( + self: ptr IShellFolderView, pSpacing: ptr ITEMSPACING +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemSpacing(self, pSpacing) + +proc SetCallback*( + self: ptr IShellFolderView, + pNewCB: ptr IShellFolderViewCB, + ppOldCB: ptr ptr IShellFolderViewCB, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCallback(self, pNewCB, ppOldCB) + +proc Select*(self: ptr IShellFolderView, dwFlags: UINT): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self, dwFlags) + +proc QuerySupport*( + self: ptr IShellFolderView, pdwSupport: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QuerySupport(self, pdwSupport) + +proc SetAutomationObject*( + self: ptr IShellFolderView, pdisp: ptr IDispatch +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetAutomationObject(self, pdisp) + +proc ReadPropertyNPB*( + self: ptr INamedPropertyBag, + pszBagname: PCWSTR, + pszPropName: PCWSTR, + pVar: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadPropertyNPB(self, pszBagname, pszPropName, pVar) + +proc WritePropertyNPB*( + self: ptr INamedPropertyBag, + pszBagname: PCWSTR, + pszPropName: PCWSTR, + pVar: ptr PROPVARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WritePropertyNPB(self, pszBagname, pszPropName, pVar) + +proc RemovePropertyNPB*( + self: ptr INamedPropertyBag, pszBagname: PCWSTR, pszPropName: PCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemovePropertyNPB(self, pszBagname, pszPropName) + +converter winimConverterIQueryAssociationsToIUnknown*( + x: ptr IQueryAssociations +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderViewOCToIDispatch*(x: ptr IFolderViewOC): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIFolderViewOCToIUnknown*(x: ptr IFolderViewOC): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDShellFolderViewEventsToIDispatch*( + x: ptr DShellFolderViewEvents +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDShellFolderViewEventsToIUnknown*( + x: ptr DShellFolderViewEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterDFConstraintToIDispatch*(x: ptr DFConstraint): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterDFConstraintToIUnknown*(x: ptr DFConstraint): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderToIDispatch*(x: ptr Folder): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderToIUnknown*(x: ptr Folder): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolder2ToFolder*(x: ptr Folder2): ptr Folder = + cast[ptr Folder](x) + +converter winimConverterFolder2ToIDispatch*(x: ptr Folder2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolder2ToIUnknown*(x: ptr Folder2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolder3ToFolder2*(x: ptr Folder3): ptr Folder2 = + cast[ptr Folder2](x) + +converter winimConverterFolder3ToFolder*(x: ptr Folder3): ptr Folder = + cast[ptr Folder](x) + +converter winimConverterFolder3ToIDispatch*(x: ptr Folder3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolder3ToIUnknown*(x: ptr Folder3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItemToIDispatch*(x: ptr FolderItem): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItemToIUnknown*(x: ptr FolderItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItem2ToFolderItem*(x: ptr FolderItem2): ptr FolderItem = + cast[ptr FolderItem](x) + +converter winimConverterFolderItem2ToIDispatch*(x: ptr FolderItem2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItem2ToIUnknown*(x: ptr FolderItem2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItemsToIDispatch*(x: ptr FolderItems): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItemsToIUnknown*(x: ptr FolderItems): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItems2ToFolderItems*( + x: ptr FolderItems2 +): ptr FolderItems = + cast[ptr FolderItems](x) + +converter winimConverterFolderItems2ToIDispatch*(x: ptr FolderItems2): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItems2ToIUnknown*(x: ptr FolderItems2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItems3ToFolderItems2*( + x: ptr FolderItems3 +): ptr FolderItems2 = + cast[ptr FolderItems2](x) + +converter winimConverterFolderItems3ToFolderItems*( + x: ptr FolderItems3 +): ptr FolderItems = + cast[ptr FolderItems](x) + +converter winimConverterFolderItems3ToIDispatch*(x: ptr FolderItems3): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItems3ToIUnknown*(x: ptr FolderItems3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItemVerbToIDispatch*( + x: ptr FolderItemVerb +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItemVerbToIUnknown*(x: ptr FolderItemVerb): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterFolderItemVerbsToIDispatch*( + x: ptr FolderItemVerbs +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterFolderItemVerbsToIUnknown*( + x: ptr FolderItemVerbs +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellLinkDualToIDispatch*( + x: ptr IShellLinkDual +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellLinkDualToIUnknown*(x: ptr IShellLinkDual): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellLinkDual2ToIShellLinkDual*( + x: ptr IShellLinkDual2 +): ptr IShellLinkDual = + cast[ptr IShellLinkDual](x) + +converter winimConverterIShellLinkDual2ToIDispatch*( + x: ptr IShellLinkDual2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellLinkDual2ToIUnknown*( + x: ptr IShellLinkDual2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderViewDualToIDispatch*( + x: ptr IShellFolderViewDual +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellFolderViewDualToIUnknown*( + x: ptr IShellFolderViewDual +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderViewDual2ToIShellFolderViewDual*( + x: ptr IShellFolderViewDual2 +): ptr IShellFolderViewDual = + cast[ptr IShellFolderViewDual](x) + +converter winimConverterIShellFolderViewDual2ToIDispatch*( + x: ptr IShellFolderViewDual2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellFolderViewDual2ToIUnknown*( + x: ptr IShellFolderViewDual2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderViewDual3ToIShellFolderViewDual2*( + x: ptr IShellFolderViewDual3 +): ptr IShellFolderViewDual2 = + cast[ptr IShellFolderViewDual2](x) + +converter winimConverterIShellFolderViewDual3ToIShellFolderViewDual*( + x: ptr IShellFolderViewDual3 +): ptr IShellFolderViewDual = + cast[ptr IShellFolderViewDual](x) + +converter winimConverterIShellFolderViewDual3ToIDispatch*( + x: ptr IShellFolderViewDual3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellFolderViewDual3ToIUnknown*( + x: ptr IShellFolderViewDual3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDispatchToIDispatch*( + x: ptr IShellDispatch +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellDispatchToIUnknown*(x: ptr IShellDispatch): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDispatch2ToIShellDispatch*( + x: ptr IShellDispatch2 +): ptr IShellDispatch = + cast[ptr IShellDispatch](x) + +converter winimConverterIShellDispatch2ToIDispatch*( + x: ptr IShellDispatch2 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellDispatch2ToIUnknown*( + x: ptr IShellDispatch2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDispatch3ToIShellDispatch2*( + x: ptr IShellDispatch3 +): ptr IShellDispatch2 = + cast[ptr IShellDispatch2](x) + +converter winimConverterIShellDispatch3ToIShellDispatch*( + x: ptr IShellDispatch3 +): ptr IShellDispatch = + cast[ptr IShellDispatch](x) + +converter winimConverterIShellDispatch3ToIDispatch*( + x: ptr IShellDispatch3 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellDispatch3ToIUnknown*( + x: ptr IShellDispatch3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDispatch4ToIShellDispatch3*( + x: ptr IShellDispatch4 +): ptr IShellDispatch3 = + cast[ptr IShellDispatch3](x) + +converter winimConverterIShellDispatch4ToIShellDispatch2*( + x: ptr IShellDispatch4 +): ptr IShellDispatch2 = + cast[ptr IShellDispatch2](x) + +converter winimConverterIShellDispatch4ToIShellDispatch*( + x: ptr IShellDispatch4 +): ptr IShellDispatch = + cast[ptr IShellDispatch](x) + +converter winimConverterIShellDispatch4ToIDispatch*( + x: ptr IShellDispatch4 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellDispatch4ToIUnknown*( + x: ptr IShellDispatch4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDispatch5ToIShellDispatch4*( + x: ptr IShellDispatch5 +): ptr IShellDispatch4 = + cast[ptr IShellDispatch4](x) + +converter winimConverterIShellDispatch5ToIShellDispatch3*( + x: ptr IShellDispatch5 +): ptr IShellDispatch3 = + cast[ptr IShellDispatch3](x) + +converter winimConverterIShellDispatch5ToIShellDispatch2*( + x: ptr IShellDispatch5 +): ptr IShellDispatch2 = + cast[ptr IShellDispatch2](x) + +converter winimConverterIShellDispatch5ToIShellDispatch*( + x: ptr IShellDispatch5 +): ptr IShellDispatch = + cast[ptr IShellDispatch](x) + +converter winimConverterIShellDispatch5ToIDispatch*( + x: ptr IShellDispatch5 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellDispatch5ToIUnknown*( + x: ptr IShellDispatch5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDispatch6ToIShellDispatch5*( + x: ptr IShellDispatch6 +): ptr IShellDispatch5 = + cast[ptr IShellDispatch5](x) + +converter winimConverterIShellDispatch6ToIShellDispatch4*( + x: ptr IShellDispatch6 +): ptr IShellDispatch4 = + cast[ptr IShellDispatch4](x) + +converter winimConverterIShellDispatch6ToIShellDispatch3*( + x: ptr IShellDispatch6 +): ptr IShellDispatch3 = + cast[ptr IShellDispatch3](x) + +converter winimConverterIShellDispatch6ToIShellDispatch2*( + x: ptr IShellDispatch6 +): ptr IShellDispatch2 = + cast[ptr IShellDispatch2](x) + +converter winimConverterIShellDispatch6ToIShellDispatch*( + x: ptr IShellDispatch6 +): ptr IShellDispatch = + cast[ptr IShellDispatch](x) + +converter winimConverterIShellDispatch6ToIDispatch*( + x: ptr IShellDispatch6 +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIShellDispatch6ToIUnknown*( + x: ptr IShellDispatch6 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileSearchBandToIDispatch*( + x: ptr IFileSearchBand +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIFileSearchBandToIUnknown*( + x: ptr IFileSearchBand +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebWizardHostToIDispatch*( + x: ptr IWebWizardHost +): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterIWebWizardHostToIUnknown*(x: ptr IWebWizardHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINewWDEventsToIWebWizardHost*( + x: ptr INewWDEvents +): ptr IWebWizardHost = + cast[ptr IWebWizardHost](x) + +converter winimConverterINewWDEventsToIDispatch*(x: ptr INewWDEvents): ptr IDispatch = + cast[ptr IDispatch](x) + +converter winimConverterINewWDEventsToIUnknown*(x: ptr INewWDEvents): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAutoCompleteToIUnknown*(x: ptr IAutoComplete): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAutoComplete2ToIAutoComplete*( + x: ptr IAutoComplete2 +): ptr IAutoComplete = + cast[ptr IAutoComplete](x) + +converter winimConverterIAutoComplete2ToIUnknown*(x: ptr IAutoComplete2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumACStringToIEnumString*( + x: ptr IEnumACString +): ptr IEnumString = + cast[ptr IEnumString](x) + +converter winimConverterIEnumACStringToIUnknown*(x: ptr IEnumACString): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDataObjectAsyncCapabilityToIUnknown*( + x: ptr IDataObjectAsyncCapability +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectArrayToIUnknown*(x: ptr IObjectArray): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectCollectionToIObjectArray*( + x: ptr IObjectCollection +): ptr IObjectArray = + cast[ptr IObjectArray](x) + +converter winimConverterIObjectCollectionToIUnknown*( + x: ptr IObjectCollection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContextMenuToIUnknown*(x: ptr IContextMenu): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContextMenu2ToIContextMenu*( + x: ptr IContextMenu2 +): ptr IContextMenu = + cast[ptr IContextMenu](x) + +converter winimConverterIContextMenu2ToIUnknown*(x: ptr IContextMenu2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContextMenu3ToIContextMenu2*( + x: ptr IContextMenu3 +): ptr IContextMenu2 = + cast[ptr IContextMenu2](x) + +converter winimConverterIContextMenu3ToIContextMenu*( + x: ptr IContextMenu3 +): ptr IContextMenu = + cast[ptr IContextMenu](x) + +converter winimConverterIContextMenu3ToIUnknown*(x: ptr IContextMenu3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExecuteCommandToIUnknown*( + x: ptr IExecuteCommand +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistFolderToIPersist*(x: ptr IPersistFolder): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistFolderToIUnknown*(x: ptr IPersistFolder): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRunnableTaskToIUnknown*(x: ptr IRunnableTask): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellTaskSchedulerToIUnknown*( + x: ptr IShellTaskScheduler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIQueryCodePageToIUnknown*(x: ptr IQueryCodePage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistFolder2ToIPersistFolder*( + x: ptr IPersistFolder2 +): ptr IPersistFolder = + cast[ptr IPersistFolder](x) + +converter winimConverterIPersistFolder2ToIPersist*( + x: ptr IPersistFolder2 +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistFolder2ToIUnknown*( + x: ptr IPersistFolder2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistFolder3ToIPersistFolder2*( + x: ptr IPersistFolder3 +): ptr IPersistFolder2 = + cast[ptr IPersistFolder2](x) + +converter winimConverterIPersistFolder3ToIPersistFolder*( + x: ptr IPersistFolder3 +): ptr IPersistFolder = + cast[ptr IPersistFolder](x) + +converter winimConverterIPersistFolder3ToIPersist*( + x: ptr IPersistFolder3 +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistFolder3ToIUnknown*( + x: ptr IPersistFolder3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPersistIDListToIPersist*(x: ptr IPersistIDList): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIPersistIDListToIUnknown*(x: ptr IPersistIDList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumIDListToIUnknown*(x: ptr IEnumIDList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumFullIDListToIUnknown*( + x: ptr IEnumFullIDList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithFolderEnumModeToIUnknown*( + x: ptr IObjectWithFolderEnumMode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIParseAndCreateItemToIUnknown*( + x: ptr IParseAndCreateItem +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderToIUnknown*(x: ptr IShellFolder): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumExtraSearchToIUnknown*( + x: ptr IEnumExtraSearch +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolder2ToIShellFolder*( + x: ptr IShellFolder2 +): ptr IShellFolder = + cast[ptr IShellFolder](x) + +converter winimConverterIShellFolder2ToIUnknown*(x: ptr IShellFolder2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderViewOptionsToIUnknown*( + x: ptr IFolderViewOptions +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellViewToIOleWindow*(x: ptr IShellView): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIShellViewToIUnknown*(x: ptr IShellView): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellView2ToIShellView*(x: ptr IShellView2): ptr IShellView = + cast[ptr IShellView](x) + +converter winimConverterIShellView2ToIOleWindow*(x: ptr IShellView2): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIShellView2ToIUnknown*(x: ptr IShellView2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellView3ToIShellView2*(x: ptr IShellView3): ptr IShellView2 = + cast[ptr IShellView2](x) + +converter winimConverterIShellView3ToIShellView*(x: ptr IShellView3): ptr IShellView = + cast[ptr IShellView](x) + +converter winimConverterIShellView3ToIOleWindow*(x: ptr IShellView3): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIShellView3ToIUnknown*(x: ptr IShellView3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderViewToIUnknown*(x: ptr IFolderView): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchBoxInfoToIUnknown*(x: ptr ISearchBoxInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderView2ToIFolderView*( + x: ptr IFolderView2 +): ptr IFolderView = + cast[ptr IFolderView](x) + +converter winimConverterIFolderView2ToIUnknown*(x: ptr IFolderView2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderViewSettingsToIUnknown*( + x: ptr IFolderViewSettings +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPreviewHandlerVisualsToIUnknown*( + x: ptr IPreviewHandlerVisuals +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIVisualPropertiesToIUnknown*( + x: ptr IVisualProperties +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICommDlgBrowserToIUnknown*( + x: ptr ICommDlgBrowser +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICommDlgBrowser2ToICommDlgBrowser*( + x: ptr ICommDlgBrowser2 +): ptr ICommDlgBrowser = + cast[ptr ICommDlgBrowser](x) + +converter winimConverterICommDlgBrowser2ToIUnknown*( + x: ptr ICommDlgBrowser2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICommDlgBrowser3ToICommDlgBrowser2*( + x: ptr ICommDlgBrowser3 +): ptr ICommDlgBrowser2 = + cast[ptr ICommDlgBrowser2](x) + +converter winimConverterICommDlgBrowser3ToICommDlgBrowser*( + x: ptr ICommDlgBrowser3 +): ptr ICommDlgBrowser = + cast[ptr ICommDlgBrowser](x) + +converter winimConverterICommDlgBrowser3ToIUnknown*( + x: ptr ICommDlgBrowser3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIColumnManagerToIUnknown*(x: ptr IColumnManager): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderFilterSiteToIUnknown*( + x: ptr IFolderFilterSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderFilterToIUnknown*(x: ptr IFolderFilter): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInputObjectSiteToIUnknown*( + x: ptr IInputObjectSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInputObjectToIUnknown*(x: ptr IInputObject): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInputObject2ToIInputObject*( + x: ptr IInputObject2 +): ptr IInputObject = + cast[ptr IInputObject](x) + +converter winimConverterIInputObject2ToIUnknown*(x: ptr IInputObject2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellIconToIUnknown*(x: ptr IShellIcon): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellBrowserToIOleWindow*( + x: ptr IShellBrowser +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIShellBrowserToIUnknown*(x: ptr IShellBrowser): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProfferServiceToIUnknown*( + x: ptr IProfferService +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellItemToIUnknown*(x: ptr IShellItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellItem2ToIShellItem*(x: ptr IShellItem2): ptr IShellItem = + cast[ptr IShellItem](x) + +converter winimConverterIShellItem2ToIUnknown*(x: ptr IShellItem2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellItemImageFactoryToIUnknown*( + x: ptr IShellItemImageFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUserAccountChangeCallbackToIUnknown*( + x: ptr IUserAccountChangeCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumShellItemsToIUnknown*( + x: ptr IEnumShellItems +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITransferAdviseSinkToIUnknown*( + x: ptr ITransferAdviseSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITransferSourceToIUnknown*( + x: ptr ITransferSource +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumResourcesToIUnknown*(x: ptr IEnumResources): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellItemResourcesToIUnknown*( + x: ptr IShellItemResources +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITransferDestinationToIUnknown*( + x: ptr ITransferDestination +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStreamAsyncToIStream*(x: ptr IStreamAsync): ptr IStream = + cast[ptr IStream](x) + +converter winimConverterIStreamAsyncToISequentialStream*( + x: ptr IStreamAsync +): ptr ISequentialStream = + cast[ptr ISequentialStream](x) + +converter winimConverterIStreamAsyncToIUnknown*(x: ptr IStreamAsync): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStreamUnbufferedInfoToIUnknown*( + x: ptr IStreamUnbufferedInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileOperationProgressSinkToIUnknown*( + x: ptr IFileOperationProgressSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellItemArrayToIUnknown*( + x: ptr IShellItemArray +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeWithItemToIUnknown*( + x: ptr IInitializeWithItem +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithSelectionToIUnknown*( + x: ptr IObjectWithSelection +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithBackReferencesToIUnknown*( + x: ptr IObjectWithBackReferences +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPropertyUIToIUnknown*(x: ptr IPropertyUI): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICategoryProviderToIUnknown*( + x: ptr ICategoryProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICategorizerToIUnknown*(x: ptr ICategorizer): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDropTargetHelperToIUnknown*( + x: ptr IDropTargetHelper +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDragSourceHelperToIUnknown*( + x: ptr IDragSourceHelper +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDragSourceHelper2ToIDragSourceHelper*( + x: ptr IDragSourceHelper2 +): ptr IDragSourceHelper = + cast[ptr IDragSourceHelper](x) + +converter winimConverterIDragSourceHelper2ToIUnknown*( + x: ptr IDragSourceHelper2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellLinkAToIUnknown*(x: ptr IShellLinkA): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellLinkWToIUnknown*(x: ptr IShellLinkW): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellLinkDataListToIUnknown*( + x: ptr IShellLinkDataList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIResolveShellLinkToIUnknown*( + x: ptr IResolveShellLink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActionProgressDialogToIUnknown*( + x: ptr IActionProgressDialog +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHWEventHandlerToIUnknown*( + x: ptr IHWEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHWEventHandler2ToIHWEventHandler*( + x: ptr IHWEventHandler2 +): ptr IHWEventHandler = + cast[ptr IHWEventHandler](x) + +converter winimConverterIHWEventHandler2ToIUnknown*( + x: ptr IHWEventHandler2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIQueryCancelAutoPlayToIUnknown*( + x: ptr IQueryCancelAutoPlay +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDynamicHWHandlerToIUnknown*( + x: ptr IDynamicHWHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActionProgressToIUnknown*( + x: ptr IActionProgress +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellExtInitToIUnknown*(x: ptr IShellExtInit): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellPropSheetExtToIUnknown*( + x: ptr IShellPropSheetExt +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRemoteComputerToIUnknown*( + x: ptr IRemoteComputer +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIQueryContinueToIUnknown*(x: ptr IQueryContinue): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithCancelEventToIUnknown*( + x: ptr IObjectWithCancelEvent +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUserNotificationToIUnknown*( + x: ptr IUserNotification +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUserNotificationCallbackToIUnknown*( + x: ptr IUserNotificationCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUserNotification2ToIUnknown*( + x: ptr IUserNotification2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIItemNameLimitsToIUnknown*( + x: ptr IItemNameLimits +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchFolderItemFactoryToIUnknown*( + x: ptr ISearchFolderItemFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExtractImageToIUnknown*(x: ptr IExtractImage): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExtractImage2ToIExtractImage*( + x: ptr IExtractImage2 +): ptr IExtractImage = + cast[ptr IExtractImage](x) + +converter winimConverterIExtractImage2ToIUnknown*(x: ptr IExtractImage2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIThumbnailHandlerFactoryToIUnknown*( + x: ptr IThumbnailHandlerFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIParentAndItemToIUnknown*(x: ptr IParentAndItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDockingWindowToIOleWindow*( + x: ptr IDockingWindow +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDockingWindowToIUnknown*(x: ptr IDockingWindow): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDeskBandToIDockingWindow*( + x: ptr IDeskBand +): ptr IDockingWindow = + cast[ptr IDockingWindow](x) + +converter winimConverterIDeskBandToIOleWindow*(x: ptr IDeskBand): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDeskBandToIUnknown*(x: ptr IDeskBand): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDeskBandInfoToIUnknown*(x: ptr IDeskBandInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDeskBand2ToIDeskBand*(x: ptr IDeskBand2): ptr IDeskBand = + cast[ptr IDeskBand](x) + +converter winimConverterIDeskBand2ToIDockingWindow*( + x: ptr IDeskBand2 +): ptr IDockingWindow = + cast[ptr IDockingWindow](x) + +converter winimConverterIDeskBand2ToIOleWindow*(x: ptr IDeskBand2): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDeskBand2ToIUnknown*(x: ptr IDeskBand2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITaskbarListToIUnknown*(x: ptr ITaskbarList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITaskbarList2ToITaskbarList*( + x: ptr ITaskbarList2 +): ptr ITaskbarList = + cast[ptr ITaskbarList](x) + +converter winimConverterITaskbarList2ToIUnknown*(x: ptr ITaskbarList2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITaskbarList3ToITaskbarList2*( + x: ptr ITaskbarList3 +): ptr ITaskbarList2 = + cast[ptr ITaskbarList2](x) + +converter winimConverterITaskbarList3ToITaskbarList*( + x: ptr ITaskbarList3 +): ptr ITaskbarList = + cast[ptr ITaskbarList](x) + +converter winimConverterITaskbarList3ToIUnknown*(x: ptr ITaskbarList3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITaskbarList4ToITaskbarList3*( + x: ptr ITaskbarList4 +): ptr ITaskbarList3 = + cast[ptr ITaskbarList3](x) + +converter winimConverterITaskbarList4ToITaskbarList2*( + x: ptr ITaskbarList4 +): ptr ITaskbarList2 = + cast[ptr ITaskbarList2](x) + +converter winimConverterITaskbarList4ToITaskbarList*( + x: ptr ITaskbarList4 +): ptr ITaskbarList = + cast[ptr ITaskbarList](x) + +converter winimConverterITaskbarList4ToIUnknown*(x: ptr ITaskbarList4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStartMenuPinnedListToIUnknown*( + x: ptr IStartMenuPinnedList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICDBurnToIUnknown*(x: ptr ICDBurn): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWizardSiteToIUnknown*(x: ptr IWizardSite): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWizardExtensionToIUnknown*( + x: ptr IWizardExtension +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWebWizardExtensionToIWizardExtension*( + x: ptr IWebWizardExtension +): ptr IWizardExtension = + cast[ptr IWizardExtension](x) + +converter winimConverterIWebWizardExtensionToIUnknown*( + x: ptr IWebWizardExtension +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPublishingWizardToIWizardExtension*( + x: ptr IPublishingWizard +): ptr IWizardExtension = + cast[ptr IWizardExtension](x) + +converter winimConverterIPublishingWizardToIUnknown*( + x: ptr IPublishingWizard +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderViewHostToIUnknown*( + x: ptr IFolderViewHost +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExplorerBrowserEventsToIUnknown*( + x: ptr IExplorerBrowserEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExplorerBrowserToIUnknown*( + x: ptr IExplorerBrowser +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccessibleObjectToIUnknown*( + x: ptr IAccessibleObject +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIResultsFolderToIUnknown*(x: ptr IResultsFolder): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumObjectsToIUnknown*(x: ptr IEnumObjects): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOperationsProgressDialogToIUnknown*( + x: ptr IOperationsProgressDialog +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIIOCancelInformationToIUnknown*( + x: ptr IIOCancelInformation +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileOperationToIUnknown*(x: ptr IFileOperation): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectProviderToIUnknown*( + x: ptr IObjectProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINamespaceWalkCBToIUnknown*( + x: ptr INamespaceWalkCB +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINamespaceWalkCB2ToINamespaceWalkCB*( + x: ptr INamespaceWalkCB2 +): ptr INamespaceWalkCB = + cast[ptr INamespaceWalkCB](x) + +converter winimConverterINamespaceWalkCB2ToIUnknown*( + x: ptr INamespaceWalkCB2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINamespaceWalkToIUnknown*(x: ptr INamespaceWalk): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAutoCompleteDropDownToIUnknown*( + x: ptr IAutoCompleteDropDown +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBandSiteToIUnknown*(x: ptr IBandSite): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIModalWindowToIUnknown*(x: ptr IModalWindow): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICDBurnExtToIUnknown*(x: ptr ICDBurnExt): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContextMenuSiteToIUnknown*( + x: ptr IContextMenuSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumReadyCallbackToIUnknown*( + x: ptr IEnumReadyCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumerableViewToIUnknown*( + x: ptr IEnumerableView +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInsertItemToIUnknown*(x: ptr IInsertItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMenuBandToIUnknown*(x: ptr IMenuBand): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFolderBandPrivToIUnknown*( + x: ptr IFolderBandPriv +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRegTreeItemToIUnknown*(x: ptr IRegTreeItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIImageRecompressToIUnknown*( + x: ptr IImageRecompress +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDeskBarToIOleWindow*(x: ptr IDeskBar): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDeskBarToIUnknown*(x: ptr IDeskBar): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMenuPopupToIDeskBar*(x: ptr IMenuPopup): ptr IDeskBar = + cast[ptr IDeskBar](x) + +converter winimConverterIMenuPopupToIOleWindow*(x: ptr IMenuPopup): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIMenuPopupToIUnknown*(x: ptr IMenuPopup): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileIsInUseToIUnknown*(x: ptr IFileIsInUse): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileDialogEventsToIUnknown*( + x: ptr IFileDialogEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileDialogToIModalWindow*( + x: ptr IFileDialog +): ptr IModalWindow = + cast[ptr IModalWindow](x) + +converter winimConverterIFileDialogToIUnknown*(x: ptr IFileDialog): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileSaveDialogToIFileDialog*( + x: ptr IFileSaveDialog +): ptr IFileDialog = + cast[ptr IFileDialog](x) + +converter winimConverterIFileSaveDialogToIModalWindow*( + x: ptr IFileSaveDialog +): ptr IModalWindow = + cast[ptr IModalWindow](x) + +converter winimConverterIFileSaveDialogToIUnknown*( + x: ptr IFileSaveDialog +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileOpenDialogToIFileDialog*( + x: ptr IFileOpenDialog +): ptr IFileDialog = + cast[ptr IFileDialog](x) + +converter winimConverterIFileOpenDialogToIModalWindow*( + x: ptr IFileOpenDialog +): ptr IModalWindow = + cast[ptr IModalWindow](x) + +converter winimConverterIFileOpenDialogToIUnknown*( + x: ptr IFileOpenDialog +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileDialogCustomizeToIUnknown*( + x: ptr IFileDialogCustomize +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileDialogControlEventsToIUnknown*( + x: ptr IFileDialogControlEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileDialog2ToIFileDialog*( + x: ptr IFileDialog2 +): ptr IFileDialog = + cast[ptr IFileDialog](x) + +converter winimConverterIFileDialog2ToIModalWindow*( + x: ptr IFileDialog2 +): ptr IModalWindow = + cast[ptr IModalWindow](x) + +converter winimConverterIFileDialog2ToIUnknown*(x: ptr IFileDialog2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApplicationAssociationRegistrationToIUnknown*( + x: ptr IApplicationAssociationRegistration +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApplicationAssociationRegistrationUIToIUnknown*( + x: ptr IApplicationAssociationRegistrationUI +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDelegateFolderToIUnknown*( + x: ptr IDelegateFolder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBrowserFrameOptionsToIUnknown*( + x: ptr IBrowserFrameOptions +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINewWindowManagerToIUnknown*( + x: ptr INewWindowManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAttachmentExecuteToIUnknown*( + x: ptr IAttachmentExecute +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellMenuCallbackToIUnknown*( + x: ptr IShellMenuCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellMenuToIUnknown*(x: ptr IShellMenu): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellRunDllToIUnknown*(x: ptr IShellRunDll): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIKnownFolderToIUnknown*(x: ptr IKnownFolder): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIKnownFolderManagerToIUnknown*( + x: ptr IKnownFolderManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISharingConfigurationManagerToIUnknown*( + x: ptr ISharingConfigurationManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPreviousVersionsInfoToIUnknown*( + x: ptr IPreviousVersionsInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRelatedItemToIUnknown*(x: ptr IRelatedItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIIdentityNameToIRelatedItem*( + x: ptr IIdentityName +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterIIdentityNameToIUnknown*(x: ptr IIdentityName): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDelegateItemToIRelatedItem*( + x: ptr IDelegateItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterIDelegateItemToIUnknown*(x: ptr IDelegateItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICurrentItemToIRelatedItem*( + x: ptr ICurrentItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterICurrentItemToIUnknown*(x: ptr ICurrentItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITransferMediumItemToIRelatedItem*( + x: ptr ITransferMediumItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterITransferMediumItemToIUnknown*( + x: ptr ITransferMediumItem +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUseToBrowseItemToIRelatedItem*( + x: ptr IUseToBrowseItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterIUseToBrowseItemToIUnknown*( + x: ptr IUseToBrowseItem +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDisplayItemToIRelatedItem*( + x: ptr IDisplayItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterIDisplayItemToIUnknown*(x: ptr IDisplayItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIViewStateIdentityItemToIRelatedItem*( + x: ptr IViewStateIdentityItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterIViewStateIdentityItemToIUnknown*( + x: ptr IViewStateIdentityItem +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPreviewItemToIRelatedItem*( + x: ptr IPreviewItem +): ptr IRelatedItem = + cast[ptr IRelatedItem](x) + +converter winimConverterIPreviewItemToIUnknown*(x: ptr IPreviewItem): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDestinationStreamFactoryToIUnknown*( + x: ptr IDestinationStreamFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINewMenuClientToIUnknown*(x: ptr INewMenuClient): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeWithBindCtxToIUnknown*( + x: ptr IInitializeWithBindCtx +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellItemFilterToIUnknown*( + x: ptr IShellItemFilter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeControlToIUnknown*( + x: ptr INameSpaceTreeControl +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeControl2ToINameSpaceTreeControl*( + x: ptr INameSpaceTreeControl2 +): ptr INameSpaceTreeControl = + cast[ptr INameSpaceTreeControl](x) + +converter winimConverterINameSpaceTreeControl2ToIUnknown*( + x: ptr INameSpaceTreeControl2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeControlEventsToIUnknown*( + x: ptr INameSpaceTreeControlEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeControlDropHandlerToIUnknown*( + x: ptr INameSpaceTreeControlDropHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeAccessibleToIUnknown*( + x: ptr INameSpaceTreeAccessible +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeControlCustomDrawToIUnknown*( + x: ptr INameSpaceTreeControlCustomDraw +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINameSpaceTreeControlFolderCapabilitiesToIUnknown*( + x: ptr INameSpaceTreeControlFolderCapabilities +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPreviewHandlerToIUnknown*( + x: ptr IPreviewHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPreviewHandlerFrameToIUnknown*( + x: ptr IPreviewHandlerFrame +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITrayDeskBandToIUnknown*(x: ptr ITrayDeskBand): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBandHostToIUnknown*(x: ptr IBandHost): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExplorerPaneVisibilityToIUnknown*( + x: ptr IExplorerPaneVisibility +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIContextMenuCBToIUnknown*(x: ptr IContextMenuCB): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDefaultExtractIconInitToIUnknown*( + x: ptr IDefaultExtractIconInit +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExplorerCommandToIUnknown*( + x: ptr IExplorerCommand +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExplorerCommandStateToIUnknown*( + x: ptr IExplorerCommandState +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeCommandToIUnknown*( + x: ptr IInitializeCommand +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumExplorerCommandToIUnknown*( + x: ptr IEnumExplorerCommand +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExplorerCommandProviderToIUnknown*( + x: ptr IExplorerCommandProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeNetworkFolderToIUnknown*( + x: ptr IInitializeNetworkFolder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOpenControlPanelToIUnknown*( + x: ptr IOpenControlPanel +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIComputerInfoChangeNotifyToIUnknown*( + x: ptr IComputerInfoChangeNotify +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileSystemBindDataToIUnknown*( + x: ptr IFileSystemBindData +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileSystemBindData2ToIFileSystemBindData*( + x: ptr IFileSystemBindData2 +): ptr IFileSystemBindData = + cast[ptr IFileSystemBindData](x) + +converter winimConverterIFileSystemBindData2ToIUnknown*( + x: ptr IFileSystemBindData2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICustomDestinationListToIUnknown*( + x: ptr ICustomDestinationList +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApplicationDestinationsToIUnknown*( + x: ptr IApplicationDestinations +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApplicationDocumentListsToIUnknown*( + x: ptr IApplicationDocumentLists +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithAppUserModelIDToIUnknown*( + x: ptr IObjectWithAppUserModelID +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectWithProgIDToIUnknown*( + x: ptr IObjectWithProgID +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUpdateIDListToIUnknown*(x: ptr IUpdateIDList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDesktopGadgetToIUnknown*(x: ptr IDesktopGadget): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDesktopWallpaperToIUnknown*( + x: ptr IDesktopWallpaper +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHomeGroupToIUnknown*(x: ptr IHomeGroup): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeWithPropertyStoreToIUnknown*( + x: ptr IInitializeWithPropertyStore +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIOpenSearchSourceToIUnknown*( + x: ptr IOpenSearchSource +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellLibraryToIUnknown*(x: ptr IShellLibrary): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPlaybackManagerEventsToIUnknown*( + x: ptr IPlaybackManagerEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPlaybackManagerToIUnknown*( + x: ptr IPlaybackManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDefaultFolderMenuInitializeToIUnknown*( + x: ptr IDefaultFolderMenuInitialize +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApplicationActivationManagerToIUnknown*( + x: ptr IApplicationActivationManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAssocHandlerInvokerToIUnknown*( + x: ptr IAssocHandlerInvoker +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAssocHandlerToIUnknown*(x: ptr IAssocHandler): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumAssocHandlersToIUnknown*( + x: ptr IEnumAssocHandlers +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDataObjectProviderToIUnknown*( + x: ptr IDataObjectProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDataTransferManagerInteropToIUnknown*( + x: ptr IDataTransferManagerInterop +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFrameworkInputPaneHandlerToIUnknown*( + x: ptr IFrameworkInputPaneHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFrameworkInputPaneToIUnknown*( + x: ptr IFrameworkInputPane +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchableApplicationToIUnknown*( + x: ptr ISearchableApplication +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccessibilityDockingServiceCallbackToIUnknown*( + x: ptr IAccessibilityDockingServiceCallback +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccessibilityDockingServiceToIUnknown*( + x: ptr IAccessibilityDockingService +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAppVisibilityEventsToIUnknown*( + x: ptr IAppVisibilityEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAppVisibilityToIUnknown*(x: ptr IAppVisibility): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPackageExecutionStateChangeNotificationToIUnknown*( + x: ptr IPackageExecutionStateChangeNotification +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIPackageDebugSettingsToIUnknown*( + x: ptr IPackageDebugSettings +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExecuteCommandApplicationHostEnvironmentToIUnknown*( + x: ptr IExecuteCommandApplicationHostEnvironment +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExecuteCommandHostToIUnknown*( + x: ptr IExecuteCommandHost +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIApplicationDesignModeSettingsToIUnknown*( + x: ptr IApplicationDesignModeSettings +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeWithWindowToIUnknown*( + x: ptr IInitializeWithWindow +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHandlerInfoToIUnknown*(x: ptr IHandlerInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIHandlerActivationHostToIUnknown*( + x: ptr IHandlerActivationHost +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExtractIconAToIUnknown*(x: ptr IExtractIconA): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExtractIconWToIUnknown*(x: ptr IExtractIconW): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellIconOverlayIdentifierToIUnknown*( + x: ptr IShellIconOverlayIdentifier +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellIconOverlayManagerToIUnknown*( + x: ptr IShellIconOverlayManager +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellIconOverlayToIUnknown*( + x: ptr IShellIconOverlay +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellExecuteHookAToIUnknown*( + x: ptr IShellExecuteHookA +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellExecuteHookWToIUnknown*( + x: ptr IShellExecuteHookW +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIURLSearchHookToIUnknown*(x: ptr IURLSearchHook): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISearchContextToIUnknown*(x: ptr ISearchContext): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIURLSearchHook2ToIURLSearchHook*( + x: ptr IURLSearchHook2 +): ptr IURLSearchHook = + cast[ptr IURLSearchHook](x) + +converter winimConverterIURLSearchHook2ToIUnknown*( + x: ptr IURLSearchHook2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINewShortcutHookAToIUnknown*( + x: ptr INewShortcutHookA +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINewShortcutHookWToIUnknown*( + x: ptr INewShortcutHookW +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICopyHookAToIUnknown*(x: ptr ICopyHookA): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICopyHookWToIUnknown*(x: ptr ICopyHookW): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileViewerSiteToIUnknown*( + x: ptr IFileViewerSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileViewerAToIUnknown*(x: ptr IFileViewerA): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIFileViewerWToIUnknown*(x: ptr IFileViewerW): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellDetailsToIUnknown*(x: ptr IShellDetails): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjMgrToIUnknown*(x: ptr IObjMgr): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICurrentWorkingDirectoryToIUnknown*( + x: ptr ICurrentWorkingDirectory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIACListToIUnknown*(x: ptr IACList): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIACList2ToIACList*(x: ptr IACList2): ptr IACList = + cast[ptr IACList](x) + +converter winimConverterIACList2ToIUnknown*(x: ptr IACList2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProgressDialogToIUnknown*( + x: ptr IProgressDialog +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDockingWindowSiteToIOleWindow*( + x: ptr IDockingWindowSite +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDockingWindowSiteToIUnknown*( + x: ptr IDockingWindowSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDockingWindowFrameToIOleWindow*( + x: ptr IDockingWindowFrame +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDockingWindowFrameToIUnknown*( + x: ptr IDockingWindowFrame +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIThumbnailCaptureToIUnknown*( + x: ptr IThumbnailCapture +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIEnumShellImageStoreToIUnknown*( + x: ptr IEnumShellImageStore +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellImageStoreToIUnknown*( + x: ptr IShellImageStore +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderBandToIUnknown*( + x: ptr IShellFolderBand +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDeskBarClientToIOleWindow*( + x: ptr IDeskBarClient +): ptr IOleWindow = + cast[ptr IOleWindow](x) + +converter winimConverterIDeskBarClientToIUnknown*(x: ptr IDeskBarClient): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveDesktopToIUnknown*(x: ptr IActiveDesktop): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIActiveDesktopPToIUnknown*( + x: ptr IActiveDesktopP +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIADesktopP2ToIUnknown*(x: ptr IADesktopP2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIColumnProviderToIUnknown*( + x: ptr IColumnProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellChangeNotifyToIUnknown*( + x: ptr IShellChangeNotify +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIQueryInfoToIUnknown*(x: ptr IQueryInfo): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDefViewFrameToIUnknown*(x: ptr IDefViewFrame): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDocViewSiteToIUnknown*(x: ptr IDocViewSite): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInitializeObjectToIUnknown*( + x: ptr IInitializeObject +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIBanneredBarToIUnknown*(x: ptr IBanneredBar): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderViewCBToIUnknown*( + x: ptr IShellFolderViewCB +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIShellFolderViewToIUnknown*( + x: ptr IShellFolderView +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterINamedPropertyBagToIUnknown*( + x: ptr INamedPropertyBag +): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type DRAGINFO* = DRAGINFOW @@ -8923,6 +22639,7 @@ LPFILEDESCRIPTOR* = LPFILEDESCRIPTORW FILEGROUPDESCRIPTOR* = FILEGROUPDESCRIPTORW LPFILEGROUPDESCRIPTOR* = LPFILEGROUPDESCRIPTORW + const SZ_CONTENTTYPE_HTML* = SZ_CONTENTTYPE_HTMLW SZ_CONTENTTYPE_CDF* = SZ_CONTENTTYPE_CDFW @@ -8949,192 +22666,912 @@ SHCNF_PATH* = SHCNF_PATHW SHCNF_PRINTER* = SHCNF_PRINTERW SHARD_PATH* = SHARD_PATHW - proc StrFormatByteSize64*(qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSizeW".} - proc StrCat*(psz1: LPWSTR, psz2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCatW".} - proc StrCmp*(psz1: LPCWSTR, psz2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpW".} - proc StrCmpI*(psz1: LPCWSTR, psz2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpIW".} - proc StrCpy*(psz1: LPWSTR, psz2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCpyW".} - proc StrCpyN*(psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCpyNW".} - proc DragQueryFile*(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "DragQueryFileW".} - proc ShellExecute*(hwnd: HWND, lpOperation: LPCWSTR, lpFile: LPCWSTR, lpParameters: LPCWSTR, lpDirectory: LPCWSTR, nShowCmd: INT): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteW".} - proc FindExecutable*(lpFile: LPCWSTR, lpDirectory: LPCWSTR, lpResult: LPWSTR): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "FindExecutableW".} - proc ShellAbout*(hWnd: HWND, szApp: LPCWSTR, szOtherStuff: LPCWSTR, hIcon: HICON): INT {.winapi, stdcall, dynlib: "shell32", importc: "ShellAboutW".} - proc ExtractAssociatedIcon*(hInst: HINSTANCE, pszIconPath: LPWSTR, piIcon: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconW".} - proc ExtractAssociatedIconEx*(hInst: HINSTANCE, pszIconPath: LPWSTR, piIconIndex: ptr WORD, piIconId: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconExW".} - proc ExtractIcon*(hInst: HINSTANCE, pszExeFileName: LPCWSTR, nIconIndex: UINT): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconW".} - proc DoEnvironmentSubst*(pszSrc: LPWSTR, cchSrc: UINT): DWORD {.winapi, stdcall, dynlib: "shell32", importc: "DoEnvironmentSubstW".} - proc ExtractIconEx*(lpszFile: LPCWSTR, nIconIndex: int32, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIcons: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconExW".} - proc SHFileOperation*(lpFileOp: LPSHFILEOPSTRUCTW): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHFileOperationW".} - proc ShellExecuteEx*(pExecInfo: ptr SHELLEXECUTEINFOW): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteExW".} - proc SHQueryRecycleBin*(pszRootPath: LPCWSTR, pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHQueryRecycleBinW".} - proc SHEmptyRecycleBin*(hwnd: HWND, pszRootPath: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHEmptyRecycleBinW".} - proc Shell_NotifyIcon*(dwMessage: DWORD, lpData: PNOTIFYICONDATAW): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "Shell_NotifyIconW".} - proc SHGetFileInfo*(pszPath: LPCWSTR, dwFileAttributes: DWORD, psfi: ptr SHFILEINFOW, cbFileInfo: UINT, uFlags: UINT): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFileInfoW".} - proc SHGetDiskFreeSpace*(pszDirectoryName: LPCWSTR, pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, pulTotalNumberOfBytes: ptr ULARGE_INTEGER, pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExW".} - proc SHGetDiskFreeSpaceEx*(pszDirectoryName: LPCWSTR, pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, pulTotalNumberOfBytes: ptr ULARGE_INTEGER, pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExW".} - proc SHGetNewLinkInfo*(pszLinkTo: LPCWSTR, pszDir: LPCWSTR, pszName: LPWSTR, pfMustCopy: ptr WINBOOL, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetNewLinkInfoW".} - proc SHInvokePrinterCommand*(hwnd: HWND, uAction: UINT, lpBuf1: LPCWSTR, lpBuf2: LPCWSTR, fModal: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHInvokePrinterCommandW".} - proc ShellMessageBox*(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "ShellMessageBoxW".} - proc IsLFNDrive*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "IsLFNDriveW".} - proc SHEnumerateUnreadMailAccounts*(hKeyUser: HKEY, dwIndex: DWORD, pszMailAddress: LPWSTR, cchMailAddress: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHEnumerateUnreadMailAccountsW".} - proc SHGetUnreadMailCount*(hKeyUser: HKEY, pszMailAddress: LPCWSTR, pdwCount: ptr DWORD, pFileTime: ptr FILETIME, pszShellExecuteCommand: LPWSTR, cchShellExecuteCommand: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetUnreadMailCountW".} - proc SHSetUnreadMailCount*(pszMailAddress: LPCWSTR, dwCount: DWORD, pszShellExecuteCommand: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHSetUnreadMailCountW".} - proc StrRetToStr*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToStrW".} - proc StrRetToBuf*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPWSTR, cchBuf: UINT): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToBufW".} - proc SHStrDup*(psz: LPCWSTR, ppwsz: ptr ptr WCHAR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHStrDupW".} - proc IsCharSpace*(wch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "IsCharSpaceW".} - proc StrCmpC*(pszStr1: LPCWSTR, pszStr2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpCW".} - proc StrCmpIC*(pszStr1: LPCWSTR, pszStr2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpICW".} - proc StrChr*(lpStart: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrW".} - proc StrRChr*(lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrW".} - proc StrChrI*(lpStart: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrIW".} - proc StrRChrI*(lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrIW".} - proc StrCmpN*(lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNW".} - proc StrCmpNI*(lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIW".} - proc StrStr*(lpFirst: LPCWSTR, lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrW".} - proc StrStrI*(lpFirst: LPCWSTR, lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrIW".} - proc StrDup*(lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrDupW".} - proc StrRStrI*(lpSource: LPCWSTR, lpLast: LPCWSTR, lpSrch: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRStrIW".} - proc StrCSpn*(lpStr: LPCWSTR, lpSet: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnW".} - proc StrCSpnI*(lpStr: LPCWSTR, lpSet: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnIW".} - proc StrSpn*(psz: LPCWSTR, pszSet: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrSpnW".} - proc StrToInt*(lpSrc: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntW".} - proc StrPBrk*(psz: LPCWSTR, pszSet: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrPBrkW".} - proc StrToIntEx*(pszString: LPCWSTR, dwFlags: DWORD, piRet: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntExW".} - proc StrToInt64Ex*(pszString: LPCWSTR, dwFlags: DWORD, pllRet: ptr LONGLONG): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToInt64ExW".} - proc StrFromTimeInterval*(pszOut: LPWSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFromTimeIntervalW".} - proc StrFormatByteSize*(qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSizeW".} - proc StrFormatKBSize*(qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatKBSizeW".} - proc StrNCat*(psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatW".} - proc StrTrim*(psz: LPWSTR, pszTrimChars: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrTrimW".} - proc StrCatBuff*(pszDest: LPWSTR, pszSrc: LPCWSTR, cchDestBuffSize: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCatBuffW".} - proc ChrCmpI*(w1: WCHAR, w2: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "ChrCmpIW".} - proc wvnsprintf*(lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wvnsprintfW".} - proc wnsprintf*(lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wnsprintfW".} - proc StrIsIntlEqual*(fCaseSens: WINBOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrIsIntlEqualW".} - proc StrToLong*(lpSrc: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntW".} - proc StrNCmp*(lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNW".} - proc StrNCmpI*(lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIW".} - proc StrNCpy*(psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCpyNW".} - proc StrCatN*(psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatW".} - proc PathAddBackslash*(pszPath: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddBackslashW".} - proc PathAddExtension*(pszPath: LPWSTR, pszExt: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddExtensionW".} - proc PathBuildRoot*(pszRoot: LPWSTR, iDrive: int32): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathBuildRootW".} - proc PathCombine*(pszDest: LPWSTR, pszDir: LPCWSTR, pszFile: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCombineW".} - proc PathFileExists*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFileExistsW".} - proc PathFindExtension*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindExtensionW".} - proc PathFindFileName*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindFileNameW".} - proc PathFindNextComponent*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindNextComponentW".} - proc PathGetArgs*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetArgsW".} - proc PathFindSuffixArray*(pszPath: LPCWSTR, apszSuffix: ptr LPCWSTR, iArraySize: int32): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindSuffixArrayW".} - proc PathIsLFNFileSpec*(lpName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsLFNFileSpecW".} - proc PathGetDriveNumber*(pszPath: LPCWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetDriveNumberW".} - proc PathIsDirectory*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryW".} - proc PathIsDirectoryEmpty*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryEmptyW".} - proc PathIsFileSpec*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsFileSpecW".} - proc PathIsPrefix*(pszPrefix: LPCWSTR, pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsPrefixW".} - proc PathIsRelative*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRelativeW".} - proc PathIsRoot*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRootW".} - proc PathIsSameRoot*(pszPath1: LPCWSTR, pszPath2: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSameRootW".} - proc PathIsUNC*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCW".} - proc PathIsNetworkPath*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsNetworkPathW".} - proc PathIsUNCServer*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerW".} - proc PathIsUNCServerShare*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerShareW".} - proc PathIsURL*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsURLW".} - proc PathRemoveBackslash*(pszPath: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBackslashW".} - proc PathSkipRoot*(pszPath: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSkipRootW".} - proc PathStripPath*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripPathW".} - proc PathStripToRoot*(pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripToRootW".} - proc PathMakeSystemFolder*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakeSystemFolderW".} - proc PathUnmakeSystemFolder*(pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnmakeSystemFolderW".} - proc PathIsSystemFolder*(pszPath: LPCWSTR, dwAttrb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSystemFolderW".} - proc PathUndecorate*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUndecorateW".} - proc PathUnExpandEnvStrings*(pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnExpandEnvStringsW".} - proc PathAppend*(pszPath: LPWSTR, pMore: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAppendW".} - proc PathCanonicalize*(pszBuf: LPWSTR, pszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCanonicalizeW".} - proc PathCompactPath*(hDC: HDC, pszPath: LPWSTR, dx: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathW".} - proc PathCompactPathEx*(pszOut: LPWSTR, pszSrc: LPCWSTR, cchMax: UINT, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathExW".} - proc PathCommonPrefix*(pszFile1: LPCWSTR, pszFile2: LPCWSTR, achPath: LPWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCommonPrefixW".} - proc PathFindOnPath*(pszPath: LPWSTR, ppszOtherDirs: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindOnPathW".} - proc PathGetCharType*(ch: WCHAR): UINT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetCharTypeW".} - proc PathIsContentType*(pszPath: LPCWSTR, pszContentType: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsContentTypeW".} - proc PathMakePretty*(pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakePrettyW".} - proc PathMatchSpec*(pszFile: LPCWSTR, pszSpec: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMatchSpecW".} - proc PathParseIconLocation*(pszIconFile: LPWSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathParseIconLocationW".} - proc PathQuoteSpaces*(lpsz: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathQuoteSpacesW".} - proc PathRelativePathTo*(pszPath: LPWSTR, pszFrom: LPCWSTR, dwAttrFrom: DWORD, pszTo: LPCWSTR, dwAttrTo: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRelativePathToW".} - proc PathRemoveArgs*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveArgsW".} - proc PathRemoveBlanks*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBlanksW".} - proc PathRemoveExtension*(pszPath: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveExtensionW".} - proc PathRemoveFileSpec*(pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveFileSpecW".} - proc PathRenameExtension*(pszPath: LPWSTR, pszExt: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRenameExtensionW".} - proc PathSearchAndQualify*(pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSearchAndQualifyW".} - proc PathSetDlgItemPath*(hDlg: HWND, id: int32, pszPath: LPCWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSetDlgItemPathW".} - proc PathUnquoteSpaces*(lpsz: LPWSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnquoteSpacesW".} - proc UrlCompare*(psz1: LPCWSTR, psz2: LPCWSTR, fIgnoreSlash: WINBOOL): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCompareW".} - proc UrlCombine*(pszBase: LPCWSTR, pszRelative: LPCWSTR, pszCombined: LPWSTR, pcchCombined: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCombineW".} - proc UrlCanonicalize*(pszUrl: LPCWSTR, pszCanonicalized: LPWSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCanonicalizeW".} - proc UrlIsOpaque*(pszURL: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsOpaqueW".} - proc UrlGetLocation*(psz1: LPCWSTR): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetLocationW".} - proc UrlUnescape*(pszUrl: LPWSTR, pszUnescaped: LPWSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlUnescapeW".} - proc UrlEscape*(pszUrl: LPCWSTR, pszEscaped: LPWSTR, pcchEscaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlEscapeW".} - proc UrlCreateFromPath*(pszPath: LPCWSTR, pszUrl: LPWSTR, pcchUrl: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCreateFromPathW".} - proc PathCreateFromUrl*(pszUrl: LPCWSTR, pszPath: LPWSTR, pcchPath: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCreateFromUrlW".} - proc UrlHash*(pszUrl: LPCWSTR, pbHash: LPBYTE, cbHash: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlHashW".} - proc UrlGetPart*(pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetPartW".} - proc UrlApplyScheme*(pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlApplySchemeW".} - proc UrlIs*(pszUrl: LPCWSTR, UrlIs: TURLIS): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsW".} - proc SHDeleteEmptyKey*(hkey: HKEY, pszSubKey: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteEmptyKeyW".} - proc SHDeleteKey*(hkey: HKEY, pszSubKey: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteKeyW".} - proc SHDeleteValue*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteValueW".} - proc SHGetValue*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHGetValueW".} - proc SHSetValue*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, dwType: DWORD, pvData: LPCVOID, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHSetValueW".} - proc SHRegGetValue*(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, dwFlags: SRRF, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetValueW".} - proc SHQueryValueEx*(hkey: HKEY, pszValue: LPCWSTR, pdwReserved: ptr DWORD, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryValueExW".} - proc SHEnumKeyEx*(hkey: HKEY, dwIndex: DWORD, pszName: LPWSTR, pcchName: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumKeyExW".} - proc SHEnumValue*(hkey: HKEY, dwIndex: DWORD, pszValueName: LPWSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumValueW".} - proc SHQueryInfoKey*(hkey: HKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryInfoKeyW".} - proc SHCopyKey*(hkeySrc: HKEY, wszSrcSubKey: LPCWSTR, hkeyDest: HKEY, fReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCopyKeyW".} - proc SHRegGetPath*(hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pszPath: LPWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetPathW".} - proc SHRegSetPath*(hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pcszPath: LPCWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetPathW".} - proc SHRegCreateUSKey*(pwzPath: LPCWSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegCreateUSKeyW".} - proc SHRegOpenUSKey*(pwzPath: LPCWSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, fIgnoreHKCU: WINBOOL): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegOpenUSKeyW".} - proc SHRegQueryUSValue*(hUSKey: HUSKEY, pwzValue: LPCWSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryUSValueW".} - proc SHRegWriteUSValue*(hUSKey: HUSKEY, pwzValue: LPCWSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegWriteUSValueW".} - proc SHRegDeleteUSValue*(hUSKey: HUSKEY, pwzValue: LPCWSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteUSValueW".} - proc SHRegDeleteEmptyUSKey*(hUSKey: HUSKEY, pwzSubKey: LPCWSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteEmptyUSKeyW".} - proc SHRegEnumUSKey*(hUSKey: HUSKEY, dwIndex: DWORD, pwzName: LPWSTR, pcchName: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSKeyW".} - proc SHRegEnumUSValue*(hUSkey: HUSKEY, dwIndex: DWORD, pszValueName: LPWSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSValueW".} - proc SHRegQueryInfoUSKey*(hUSKey: HUSKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryInfoUSKeyW".} - proc SHRegGetUSValue*(pwzSubKey: LPCWSTR, pwzValue: LPCWSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetUSValueW".} - proc SHRegSetUSValue*(pwzSubKey: LPCWSTR, pwzValue: LPCWSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetUSValueW".} - proc SHRegGetInt*(hk: HKEY, pwzKey: LPCWSTR, iDefault: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetIntW".} - proc SHRegGetBoolUSValue*(pszSubKey: LPCWSTR, pszValue: LPCWSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetBoolUSValueW".} - proc AssocQueryString*(flags: ASSOCF, str: ASSOCSTR, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringW".} - proc AssocQueryStringByKey*(flags: ASSOCF, str: ASSOCSTR, hkAssoc: HKEY, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringByKeyW".} - proc AssocQueryKey*(flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, phkeyOut: ptr HKEY): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryKeyW".} - proc SHOpenRegStream2*(hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2W".} - proc SHCreateStreamOnFile*(pszFile: LPCWSTR, grfMode: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCreateStreamOnFileW".} - proc SHOpenRegStream*(hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2W".} - proc GetAcceptLanguages*(psz: LPWSTR, pcch: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "GetAcceptLanguagesW".} - proc SHGetIconOverlayIndex*(pszIconPath: LPCWSTR, iIconIndex: int32): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHGetIconOverlayIndexW".} - proc ILCreateFromPath*(pszPath: PCWSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "ILCreateFromPathW".} - proc SHGetPathFromIDList*(pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetPathFromIDListW".} - proc SHCreateDirectoryEx*(hwnd: HWND, pszPath: LPCWSTR, psa: ptr SECURITY_ATTRIBUTES): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHCreateDirectoryExW".} - proc SHGetSpecialFolderPath*(hwnd: HWND, pszPath: LPWSTR, csidl: int32, fCreate: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetSpecialFolderPathW".} - proc SHGetFolderPath*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathW".} - proc SHSetFolderPath*(csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHSetFolderPathW".} - proc SHGetFolderPathAndSubDir*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCWSTR, pszPath: LPWSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathAndSubDirW".} - proc SHBrowseForFolder*(lpbi: LPBROWSEINFOW): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "SHBrowseForFolderW".} - proc SHUpdateImage*(pszHashItem: LPCWSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32): void {.winapi, stdcall, dynlib: "shell32", importc: "SHUpdateImageW".} - proc SHGetDataFromIDList*(psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDataFromIDListW".} - proc PathIsSlow*(pszFile: LPCWSTR, dwAttr: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "PathIsSlowW".} - proc SHStartNetConnectionDialog*(hwnd: HWND, pszRemoteName: LPCWSTR, dwType: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHStartNetConnectionDialogW".} - proc SHDefExtractIcon*(pszIconFile: LPCWSTR, iIndex: int32, uFlags: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHDefExtractIconW".} - proc Shell_GetCachedImageIndex*(pszIconPath: LPCWSTR, iIconIndex: int32, uIconFlags: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc: "Shell_GetCachedImageIndexW".} - proc SHOpenPropSheet*(pszCaption: LPCWSTR, ahkeys: ptr HKEY, ckeys: UINT, pclsidDefault: ptr CLSID, pdtobj: ptr IDataObject, psb: ptr IShellBrowser, pStartPage: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHOpenPropSheetW".} - proc SHPathPrepareForWrite*(hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHPathPrepareForWriteW".} - proc SHCreateFileExtractIcon*(pszFile: LPCWSTR, dwFileAttributes: DWORD, riid: REFIID, ppv: ptr pointer): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHCreateFileExtractIconW".} + proc StrFormatByteSize64*( + qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSizeW".} + + proc StrCat*( + psz1: LPWSTR, psz2: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCatW".} + + proc StrCmp*( + psz1: LPCWSTR, psz2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpW".} + + proc StrCmpI*( + psz1: LPCWSTR, psz2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpIW".} + + proc StrCpy*( + psz1: LPWSTR, psz2: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCpyW".} + + proc StrCpyN*( + psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCpyNW".} + + proc DragQueryFile*( + hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT + ): UINT {.winapi, stdcall, dynlib: "shell32", importc: "DragQueryFileW".} + + proc ShellExecute*( + hwnd: HWND, + lpOperation: LPCWSTR, + lpFile: LPCWSTR, + lpParameters: LPCWSTR, + lpDirectory: LPCWSTR, + nShowCmd: INT, + ): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteW".} + + proc FindExecutable*( + lpFile: LPCWSTR, lpDirectory: LPCWSTR, lpResult: LPWSTR + ): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "FindExecutableW".} + + proc ShellAbout*( + hWnd: HWND, szApp: LPCWSTR, szOtherStuff: LPCWSTR, hIcon: HICON + ): INT {.winapi, stdcall, dynlib: "shell32", importc: "ShellAboutW".} + + proc ExtractAssociatedIcon*( + hInst: HINSTANCE, pszIconPath: LPWSTR, piIcon: ptr WORD + ): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconW".} + + proc ExtractAssociatedIconEx*( + hInst: HINSTANCE, pszIconPath: LPWSTR, piIconIndex: ptr WORD, piIconId: ptr WORD + ): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconExW".} + + proc ExtractIcon*( + hInst: HINSTANCE, pszExeFileName: LPCWSTR, nIconIndex: UINT + ): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconW".} + + proc DoEnvironmentSubst*( + pszSrc: LPWSTR, cchSrc: UINT + ): DWORD {.winapi, stdcall, dynlib: "shell32", importc: "DoEnvironmentSubstW".} + + proc ExtractIconEx*( + lpszFile: LPCWSTR, + nIconIndex: int32, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIcons: UINT, + ): UINT {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconExW".} + + proc SHFileOperation*( + lpFileOp: LPSHFILEOPSTRUCTW + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHFileOperationW".} + + proc ShellExecuteEx*( + pExecInfo: ptr SHELLEXECUTEINFOW + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteExW".} + + proc SHQueryRecycleBin*( + pszRootPath: LPCWSTR, pSHQueryRBInfo: LPSHQUERYRBINFO + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHQueryRecycleBinW".} + + proc SHEmptyRecycleBin*( + hwnd: HWND, pszRootPath: LPCWSTR, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHEmptyRecycleBinW".} + + proc Shell_NotifyIcon*( + dwMessage: DWORD, lpData: PNOTIFYICONDATAW + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "Shell_NotifyIconW".} + + proc SHGetFileInfo*( + pszPath: LPCWSTR, + dwFileAttributes: DWORD, + psfi: ptr SHFILEINFOW, + cbFileInfo: UINT, + uFlags: UINT, + ): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFileInfoW".} + + proc SHGetDiskFreeSpace*( + pszDirectoryName: LPCWSTR, + pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, + pulTotalNumberOfBytes: ptr ULARGE_INTEGER, + pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExW".} + + proc SHGetDiskFreeSpaceEx*( + pszDirectoryName: LPCWSTR, + pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, + pulTotalNumberOfBytes: ptr ULARGE_INTEGER, + pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExW".} + + proc SHGetNewLinkInfo*( + pszLinkTo: LPCWSTR, + pszDir: LPCWSTR, + pszName: LPWSTR, + pfMustCopy: ptr WINBOOL, + uFlags: UINT, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetNewLinkInfoW".} + + proc SHInvokePrinterCommand*( + hwnd: HWND, uAction: UINT, lpBuf1: LPCWSTR, lpBuf2: LPCWSTR, fModal: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHInvokePrinterCommandW".} + + proc ShellMessageBox*( + hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "ShellMessageBoxW".} + + proc IsLFNDrive*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "IsLFNDriveW".} + + proc SHEnumerateUnreadMailAccounts*( + hKeyUser: HKEY, dwIndex: DWORD, pszMailAddress: LPWSTR, cchMailAddress: int32 + ): HRESULT {. + winapi, stdcall, dynlib: "shell32", importc: "SHEnumerateUnreadMailAccountsW" + .} + + proc SHGetUnreadMailCount*( + hKeyUser: HKEY, + pszMailAddress: LPCWSTR, + pdwCount: ptr DWORD, + pFileTime: ptr FILETIME, + pszShellExecuteCommand: LPWSTR, + cchShellExecuteCommand: int32, + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetUnreadMailCountW".} + + proc SHSetUnreadMailCount*( + pszMailAddress: LPCWSTR, dwCount: DWORD, pszShellExecuteCommand: LPCWSTR + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHSetUnreadMailCountW".} + + proc StrRetToStr*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPWSTR + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToStrW".} + + proc StrRetToBuf*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPWSTR, cchBuf: UINT + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToBufW".} + + proc SHStrDup*( + psz: LPCWSTR, ppwsz: ptr ptr WCHAR + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHStrDupW".} + + proc IsCharSpace*( + wch: WCHAR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "IsCharSpaceW".} + + proc StrCmpC*( + pszStr1: LPCWSTR, pszStr2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpCW".} + + proc StrCmpIC*( + pszStr1: LPCWSTR, pszStr2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpICW".} + + proc StrChr*( + lpStart: LPCWSTR, wMatch: WCHAR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrW".} + + proc StrRChr*( + lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrW".} + + proc StrChrI*( + lpStart: LPCWSTR, wMatch: WCHAR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrIW".} + + proc StrRChrI*( + lpStart: LPCWSTR, lpEnd: LPCWSTR, wMatch: WCHAR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrIW".} + + proc StrCmpN*( + lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNW".} + + proc StrCmpNI*( + lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIW".} + + proc StrStr*( + lpFirst: LPCWSTR, lpSrch: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrW".} + + proc StrStrI*( + lpFirst: LPCWSTR, lpSrch: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrIW".} + + proc StrDup*( + lpSrch: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrDupW".} + + proc StrRStrI*( + lpSource: LPCWSTR, lpLast: LPCWSTR, lpSrch: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRStrIW".} + + proc StrCSpn*( + lpStr: LPCWSTR, lpSet: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnW".} + + proc StrCSpnI*( + lpStr: LPCWSTR, lpSet: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnIW".} + + proc StrSpn*( + psz: LPCWSTR, pszSet: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrSpnW".} + + proc StrToInt*( + lpSrc: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntW".} + + proc StrPBrk*( + psz: LPCWSTR, pszSet: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrPBrkW".} + + proc StrToIntEx*( + pszString: LPCWSTR, dwFlags: DWORD, piRet: ptr int32 + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntExW".} + + proc StrToInt64Ex*( + pszString: LPCWSTR, dwFlags: DWORD, pllRet: ptr LONGLONG + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToInt64ExW".} + + proc StrFromTimeInterval*( + pszOut: LPWSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFromTimeIntervalW".} + + proc StrFormatByteSize*( + qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSizeW".} + + proc StrFormatKBSize*( + qdw: LONGLONG, szBuf: LPWSTR, uiBufSize: UINT + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatKBSizeW".} + + proc StrNCat*( + psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatW".} + + proc StrTrim*( + psz: LPWSTR, pszTrimChars: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrTrimW".} + + proc StrCatBuff*( + pszDest: LPWSTR, pszSrc: LPCWSTR, cchDestBuffSize: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCatBuffW".} + + proc ChrCmpI*( + w1: WCHAR, w2: WCHAR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "ChrCmpIW".} + + proc wvnsprintf*( + lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR, arglist: va_list + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wvnsprintfW".} + + proc wnsprintf*( + lpOut: LPWSTR, cchLimitIn: int32, lpFmt: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wnsprintfW".} + + proc StrIsIntlEqual*( + fCaseSens: WINBOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrIsIntlEqualW".} + + proc StrToLong*( + lpSrc: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntW".} + + proc StrNCmp*( + lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNW".} + + proc StrNCmpI*( + lpStr1: LPCWSTR, lpStr2: LPCWSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIW".} + + proc StrNCpy*( + psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCpyNW".} + + proc StrCatN*( + psz1: LPWSTR, psz2: LPCWSTR, cchMax: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatW".} + + proc PathAddBackslash*( + pszPath: LPWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddBackslashW".} + + proc PathAddExtension*( + pszPath: LPWSTR, pszExt: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddExtensionW".} + + proc PathBuildRoot*( + pszRoot: LPWSTR, iDrive: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathBuildRootW".} + + proc PathCombine*( + pszDest: LPWSTR, pszDir: LPCWSTR, pszFile: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCombineW".} + + proc PathFileExists*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFileExistsW".} + + proc PathFindExtension*( + pszPath: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindExtensionW".} + + proc PathFindFileName*( + pszPath: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindFileNameW".} + + proc PathFindNextComponent*( + pszPath: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindNextComponentW".} + + proc PathGetArgs*( + pszPath: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetArgsW".} + + proc PathFindSuffixArray*( + pszPath: LPCWSTR, apszSuffix: ptr LPCWSTR, iArraySize: int32 + ): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindSuffixArrayW".} + + proc PathIsLFNFileSpec*( + lpName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsLFNFileSpecW".} + + proc PathGetDriveNumber*( + pszPath: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetDriveNumberW".} + + proc PathIsDirectory*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryW".} + + proc PathIsDirectoryEmpty*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryEmptyW".} + + proc PathIsFileSpec*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsFileSpecW".} + + proc PathIsPrefix*( + pszPrefix: LPCWSTR, pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsPrefixW".} + + proc PathIsRelative*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRelativeW".} + + proc PathIsRoot*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRootW".} + + proc PathIsSameRoot*( + pszPath1: LPCWSTR, pszPath2: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSameRootW".} + + proc PathIsUNC*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCW".} + + proc PathIsNetworkPath*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsNetworkPathW".} + + proc PathIsUNCServer*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerW".} + + proc PathIsUNCServerShare*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerShareW".} + + proc PathIsURL*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsURLW".} + + proc PathRemoveBackslash*( + pszPath: LPWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBackslashW".} + + proc PathSkipRoot*( + pszPath: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSkipRootW".} + + proc PathStripPath*( + pszPath: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripPathW".} + + proc PathStripToRoot*( + pszPath: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripToRootW".} + + proc PathMakeSystemFolder*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakeSystemFolderW".} + + proc PathUnmakeSystemFolder*( + pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnmakeSystemFolderW".} + + proc PathIsSystemFolder*( + pszPath: LPCWSTR, dwAttrb: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSystemFolderW".} + + proc PathUndecorate*( + pszPath: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUndecorateW".} + + proc PathUnExpandEnvStrings*( + pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnExpandEnvStringsW".} + + proc PathAppend*( + pszPath: LPWSTR, pMore: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAppendW".} + + proc PathCanonicalize*( + pszBuf: LPWSTR, pszPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCanonicalizeW".} + + proc PathCompactPath*( + hDC: HDC, pszPath: LPWSTR, dx: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathW".} + + proc PathCompactPathEx*( + pszOut: LPWSTR, pszSrc: LPCWSTR, cchMax: UINT, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathExW".} + + proc PathCommonPrefix*( + pszFile1: LPCWSTR, pszFile2: LPCWSTR, achPath: LPWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCommonPrefixW".} + + proc PathFindOnPath*( + pszPath: LPWSTR, ppszOtherDirs: ptr LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindOnPathW".} + + proc PathGetCharType*( + ch: WCHAR + ): UINT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetCharTypeW".} + + proc PathIsContentType*( + pszPath: LPCWSTR, pszContentType: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsContentTypeW".} + + proc PathMakePretty*( + pszPath: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakePrettyW".} + + proc PathMatchSpec*( + pszFile: LPCWSTR, pszSpec: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMatchSpecW".} + + proc PathParseIconLocation*( + pszIconFile: LPWSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathParseIconLocationW".} + + proc PathQuoteSpaces*( + lpsz: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathQuoteSpacesW".} + + proc PathRelativePathTo*( + pszPath: LPWSTR, + pszFrom: LPCWSTR, + dwAttrFrom: DWORD, + pszTo: LPCWSTR, + dwAttrTo: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRelativePathToW".} + + proc PathRemoveArgs*( + pszPath: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveArgsW".} + + proc PathRemoveBlanks*( + pszPath: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBlanksW".} + + proc PathRemoveExtension*( + pszPath: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveExtensionW".} + + proc PathRemoveFileSpec*( + pszPath: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveFileSpecW".} + + proc PathRenameExtension*( + pszPath: LPWSTR, pszExt: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRenameExtensionW".} + + proc PathSearchAndQualify*( + pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSearchAndQualifyW".} + + proc PathSetDlgItemPath*( + hDlg: HWND, id: int32, pszPath: LPCWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSetDlgItemPathW".} + + proc PathUnquoteSpaces*( + lpsz: LPWSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnquoteSpacesW".} + + proc UrlCompare*( + psz1: LPCWSTR, psz2: LPCWSTR, fIgnoreSlash: WINBOOL + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCompareW".} + + proc UrlCombine*( + pszBase: LPCWSTR, + pszRelative: LPCWSTR, + pszCombined: LPWSTR, + pcchCombined: LPDWORD, + dwFlags: DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCombineW".} + + proc UrlCanonicalize*( + pszUrl: LPCWSTR, + pszCanonicalized: LPWSTR, + pcchCanonicalized: LPDWORD, + dwFlags: DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCanonicalizeW".} + + proc UrlIsOpaque*( + pszURL: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsOpaqueW".} + + proc UrlGetLocation*( + psz1: LPCWSTR + ): LPCWSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetLocationW".} + + proc UrlUnescape*( + pszUrl: LPWSTR, pszUnescaped: LPWSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlUnescapeW".} + + proc UrlEscape*( + pszUrl: LPCWSTR, pszEscaped: LPWSTR, pcchEscaped: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlEscapeW".} + + proc UrlCreateFromPath*( + pszPath: LPCWSTR, pszUrl: LPWSTR, pcchUrl: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCreateFromPathW".} + + proc PathCreateFromUrl*( + pszUrl: LPCWSTR, pszPath: LPWSTR, pcchPath: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCreateFromUrlW".} + + proc UrlHash*( + pszUrl: LPCWSTR, pbHash: LPBYTE, cbHash: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlHashW".} + + proc UrlGetPart*( + pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetPartW".} + + proc UrlApplyScheme*( + pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlApplySchemeW".} + + proc UrlIs*( + pszUrl: LPCWSTR, UrlIs: TURLIS + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsW".} + + proc SHDeleteEmptyKey*( + hkey: HKEY, pszSubKey: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteEmptyKeyW".} + + proc SHDeleteKey*( + hkey: HKEY, pszSubKey: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteKeyW".} + + proc SHDeleteValue*( + hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteValueW".} + + proc SHGetValue*( + hkey: HKEY, + pszSubKey: LPCWSTR, + pszValue: LPCWSTR, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHGetValueW".} + + proc SHSetValue*( + hkey: HKEY, + pszSubKey: LPCWSTR, + pszValue: LPCWSTR, + dwType: DWORD, + pvData: LPCVOID, + cbData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHSetValueW".} + + proc SHRegGetValue*( + hkey: HKEY, + pszSubKey: LPCWSTR, + pszValue: LPCWSTR, + dwFlags: SRRF, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetValueW".} + + proc SHQueryValueEx*( + hkey: HKEY, + pszValue: LPCWSTR, + pdwReserved: ptr DWORD, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryValueExW".} + + proc SHEnumKeyEx*( + hkey: HKEY, dwIndex: DWORD, pszName: LPWSTR, pcchName: LPDWORD + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumKeyExW".} + + proc SHEnumValue*( + hkey: HKEY, + dwIndex: DWORD, + pszValueName: LPWSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumValueW".} + + proc SHQueryInfoKey*( + hkey: HKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryInfoKeyW".} + + proc SHCopyKey*( + hkeySrc: HKEY, wszSrcSubKey: LPCWSTR, hkeyDest: HKEY, fReserved: DWORD + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCopyKeyW".} + + proc SHRegGetPath*( + hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pszPath: LPWSTR, dwFlags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetPathW".} + + proc SHRegSetPath*( + hKey: HKEY, + pcszSubKey: LPCWSTR, + pcszValue: LPCWSTR, + pcszPath: LPCWSTR, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetPathW".} + + proc SHRegCreateUSKey*( + pwzPath: LPCWSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + dwFlags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegCreateUSKeyW".} + + proc SHRegOpenUSKey*( + pwzPath: LPCWSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + fIgnoreHKCU: WINBOOL, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegOpenUSKeyW".} + + proc SHRegQueryUSValue*( + hUSKey: HUSKEY, + pwzValue: LPCWSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryUSValueW".} + + proc SHRegWriteUSValue*( + hUSKey: HUSKEY, + pwzValue: LPCWSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegWriteUSValueW".} + + proc SHRegDeleteUSValue*( + hUSKey: HUSKEY, pwzValue: LPCWSTR, delRegFlags: SHREGDEL_FLAGS + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteUSValueW".} + + proc SHRegDeleteEmptyUSKey*( + hUSKey: HUSKEY, pwzSubKey: LPCWSTR, delRegFlags: SHREGDEL_FLAGS + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteEmptyUSKeyW".} + + proc SHRegEnumUSKey*( + hUSKey: HUSKEY, + dwIndex: DWORD, + pwzName: LPWSTR, + pcchName: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSKeyW".} + + proc SHRegEnumUSValue*( + hUSkey: HUSKEY, + dwIndex: DWORD, + pszValueName: LPWSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSValueW".} + + proc SHRegQueryInfoUSKey*( + hUSKey: HUSKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryInfoUSKeyW".} + + proc SHRegGetUSValue*( + pwzSubKey: LPCWSTR, + pwzValue: LPCWSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetUSValueW".} + + proc SHRegSetUSValue*( + pwzSubKey: LPCWSTR, + pwzValue: LPCWSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetUSValueW".} + + proc SHRegGetInt*( + hk: HKEY, pwzKey: LPCWSTR, iDefault: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetIntW".} + + proc SHRegGetBoolUSValue*( + pszSubKey: LPCWSTR, pszValue: LPCWSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetBoolUSValueW".} + + proc AssocQueryString*( + flags: ASSOCF, + str: ASSOCSTR, + pszAssoc: LPCWSTR, + pszExtra: LPCWSTR, + pszOut: LPWSTR, + pcchOut: ptr DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringW".} + + proc AssocQueryStringByKey*( + flags: ASSOCF, + str: ASSOCSTR, + hkAssoc: HKEY, + pszExtra: LPCWSTR, + pszOut: LPWSTR, + pcchOut: ptr DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringByKeyW".} + + proc AssocQueryKey*( + flags: ASSOCF, + key: ASSOCKEY, + pszAssoc: LPCWSTR, + pszExtra: LPCWSTR, + phkeyOut: ptr HKEY, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryKeyW".} + + proc SHOpenRegStream2*( + hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD + ): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2W".} + + proc SHCreateStreamOnFile*( + pszFile: LPCWSTR, grfMode: DWORD, ppstm: ptr ptr IStream + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCreateStreamOnFileW".} + + proc SHOpenRegStream*( + hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD + ): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2W".} + + proc GetAcceptLanguages*( + psz: LPWSTR, pcch: ptr DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "GetAcceptLanguagesW".} + + proc SHGetIconOverlayIndex*( + pszIconPath: LPCWSTR, iIconIndex: int32 + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHGetIconOverlayIndexW".} + + proc ILCreateFromPath*( + pszPath: PCWSTR + ): PIDLIST_ABSOLUTE {. + winapi, stdcall, dynlib: "shell32", importc: "ILCreateFromPathW" + .} + + proc SHGetPathFromIDList*( + pidl: PCIDLIST_ABSOLUTE, pszPath: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetPathFromIDListW".} + + proc SHCreateDirectoryEx*( + hwnd: HWND, pszPath: LPCWSTR, psa: ptr SECURITY_ATTRIBUTES + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHCreateDirectoryExW".} + + proc SHGetSpecialFolderPath*( + hwnd: HWND, pszPath: LPWSTR, csidl: int32, fCreate: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetSpecialFolderPathW".} + + proc SHGetFolderPath*( + hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPWSTR + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathW".} + + proc SHSetFolderPath*( + csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCWSTR + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHSetFolderPathW".} + + proc SHGetFolderPathAndSubDir*( + hwnd: HWND, + csidl: int32, + hToken: HANDLE, + dwFlags: DWORD, + pszSubDir: LPCWSTR, + pszPath: LPWSTR, + ): HRESULT {. + winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathAndSubDirW" + .} + + proc SHBrowseForFolder*( + lpbi: LPBROWSEINFOW + ): PIDLIST_ABSOLUTE {. + winapi, stdcall, dynlib: "shell32", importc: "SHBrowseForFolderW" + .} + + proc SHUpdateImage*( + pszHashItem: LPCWSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32 + ): void {.winapi, stdcall, dynlib: "shell32", importc: "SHUpdateImageW".} + + proc SHGetDataFromIDList*( + psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32 + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDataFromIDListW".} + + proc PathIsSlow*( + pszFile: LPCWSTR, dwAttr: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "PathIsSlowW".} + + proc SHStartNetConnectionDialog*( + hwnd: HWND, pszRemoteName: LPCWSTR, dwType: DWORD + ): HRESULT {. + winapi, stdcall, dynlib: "shell32", importc: "SHStartNetConnectionDialogW" + .} + + proc SHDefExtractIcon*( + pszIconFile: LPCWSTR, + iIndex: int32, + uFlags: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHDefExtractIconW".} + + proc Shell_GetCachedImageIndex*( + pszIconPath: LPCWSTR, iIconIndex: int32, uIconFlags: UINT + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "Shell_GetCachedImageIndexW".} + + proc SHOpenPropSheet*( + pszCaption: LPCWSTR, + ahkeys: ptr HKEY, + ckeys: UINT, + pclsidDefault: ptr CLSID, + pdtobj: ptr IDataObject, + psb: ptr IShellBrowser, + pStartPage: LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHOpenPropSheetW".} + + proc SHPathPrepareForWrite*( + hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCWSTR, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHPathPrepareForWriteW".} + + proc SHCreateFileExtractIcon*( + pszFile: LPCWSTR, dwFileAttributes: DWORD, riid: REFIID, ppv: ptr pointer + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHCreateFileExtractIconW".} + when winimAnsi: type DRAGINFO* = DRAGINFOA @@ -9165,6 +23602,7 @@ LPFILEDESCRIPTOR* = LPFILEDESCRIPTORA FILEGROUPDESCRIPTOR* = FILEGROUPDESCRIPTORA LPFILEGROUPDESCRIPTOR* = LPFILEGROUPDESCRIPTORA + const SZ_CONTENTTYPE_HTML* = SZ_CONTENTTYPE_HTMLA SZ_CONTENTTYPE_CDF* = SZ_CONTENTTYPE_CDFA @@ -9191,176 +23629,826 @@ SHCNF_PATH* = SHCNF_PATHA SHCNF_PRINTER* = SHCNF_PRINTERA SHARD_PATH* = SHARD_PATHA - proc StrFormatByteSize64*(qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSize64A".} - proc DragQueryFile*(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "DragQueryFileA".} - proc ShellExecute*(hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR, nShowCmd: INT): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteA".} - proc FindExecutable*(lpFile: LPCSTR, lpDirectory: LPCSTR, lpResult: LPSTR): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "FindExecutableA".} - proc ShellAbout*(hWnd: HWND, szApp: LPCSTR, szOtherStuff: LPCSTR, hIcon: HICON): INT {.winapi, stdcall, dynlib: "shell32", importc: "ShellAboutA".} - proc ExtractAssociatedIcon*(hInst: HINSTANCE, pszIconPath: LPSTR, piIcon: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconA".} - proc ExtractAssociatedIconEx*(hInst: HINSTANCE, pszIconPath: LPSTR, piIconIndex: ptr WORD, piIconId: ptr WORD): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconExA".} - proc ExtractIcon*(hInst: HINSTANCE, pszExeFileName: LPCSTR, nIconIndex: UINT): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconA".} - proc DoEnvironmentSubst*(pszSrc: LPSTR, cchSrc: UINT): DWORD {.winapi, stdcall, dynlib: "shell32", importc: "DoEnvironmentSubstA".} - proc ExtractIconEx*(lpszFile: LPCSTR, nIconIndex: int32, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIcons: UINT): UINT {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconExA".} - proc SHFileOperation*(lpFileOp: LPSHFILEOPSTRUCTA): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHFileOperationA".} - proc ShellExecuteEx*(pExecInfo: ptr SHELLEXECUTEINFOA): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteExA".} - proc SHQueryRecycleBin*(pszRootPath: LPCSTR, pSHQueryRBInfo: LPSHQUERYRBINFO): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHQueryRecycleBinA".} - proc SHEmptyRecycleBin*(hwnd: HWND, pszRootPath: LPCSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHEmptyRecycleBinA".} - proc Shell_NotifyIcon*(dwMessage: DWORD, lpData: PNOTIFYICONDATAA): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "Shell_NotifyIconA".} - proc SHGetFileInfo*(pszPath: LPCSTR, dwFileAttributes: DWORD, psfi: ptr SHFILEINFOA, cbFileInfo: UINT, uFlags: UINT): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFileInfoA".} - proc SHGetDiskFreeSpace*(pszDirectoryName: LPCSTR, pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, pulTotalNumberOfBytes: ptr ULARGE_INTEGER, pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExA".} - proc SHGetDiskFreeSpaceEx*(pszDirectoryName: LPCSTR, pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, pulTotalNumberOfBytes: ptr ULARGE_INTEGER, pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExA".} - proc SHGetNewLinkInfo*(pszLinkTo: LPCSTR, pszDir: LPCSTR, pszName: LPSTR, pfMustCopy: ptr WINBOOL, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetNewLinkInfoA".} - proc SHInvokePrinterCommand*(hwnd: HWND, uAction: UINT, lpBuf1: LPCSTR, lpBuf2: LPCSTR, fModal: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHInvokePrinterCommandA".} - proc ShellMessageBox*(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCSTR, lpcTitle: LPCSTR, fuStyle: UINT): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "ShellMessageBoxA".} - proc IsLFNDrive*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "IsLFNDriveA".} - proc StrRetToStr*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPSTR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToStrA".} - proc StrRetToBuf*(pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPSTR, cchBuf: UINT): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToBufA".} - proc SHStrDup*(psz: LPCSTR, ppwsz: ptr ptr WCHAR): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHStrDupA".} - proc IsCharSpace*(wch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "IsCharSpaceA".} - proc StrCmpC*(pszStr1: LPCSTR, pszStr2: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpCA".} - proc StrCmpIC*(pszStr1: LPCSTR, pszStr2: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpICA".} - proc StrChr*(lpStart: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrA".} - proc StrRChr*(lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrA".} - proc StrChrI*(lpStart: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrIA".} - proc StrRChrI*(lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrIA".} - proc StrCmpN*(lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNA".} - proc StrCmpNI*(lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIA".} - proc StrStr*(lpFirst: LPCSTR, lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrA".} - proc StrStrI*(lpFirst: LPCSTR, lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrIA".} - proc StrDup*(lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrDupA".} - proc StrRStrI*(lpSource: LPCSTR, lpLast: LPCSTR, lpSrch: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRStrIA".} - proc StrCSpn*(lpStr: LPCSTR, lpSet: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnA".} - proc StrCSpnI*(lpStr: LPCSTR, lpSet: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnIA".} - proc StrSpn*(psz: LPCSTR, pszSet: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrSpnA".} - proc StrToInt*(lpSrc: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntA".} - proc StrPBrk*(psz: LPCSTR, pszSet: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrPBrkA".} - proc StrToIntEx*(pszString: LPCSTR, dwFlags: DWORD, piRet: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntExA".} - proc StrToInt64Ex*(pszString: LPCSTR, dwFlags: DWORD, pllRet: ptr LONGLONG): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToInt64ExA".} - proc StrFromTimeInterval*(pszOut: LPSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFromTimeIntervalA".} - proc StrFormatByteSize*(dw: DWORD, szBuf: LPSTR, uiBufSize: UINT): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSizeA".} - proc StrFormatKBSize*(qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatKBSizeA".} - proc StrNCat*(psz1: LPSTR, psz2: LPCSTR, cchMax: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatA".} - proc StrTrim*(psz: LPSTR, pszTrimChars: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrTrimA".} - proc StrCatBuff*(pszDest: LPSTR, pszSrc: LPCSTR, cchDestBuffSize: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCatBuffA".} - proc ChrCmpI*(w1: WORD, w2: WORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "ChrCmpIA".} - proc wvnsprintf*(lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wvnsprintfA".} - proc wnsprintf*(lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wnsprintfA".} - proc StrIsIntlEqual*(fCaseSens: WINBOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: int32): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrIsIntlEqualA".} - proc StrToLong*(lpSrc: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntA".} - proc StrNCmp*(lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNA".} - proc StrNCmpI*(lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIA".} - proc StrCatN*(psz1: LPSTR, psz2: LPCSTR, cchMax: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatA".} - proc PathAddBackslash*(pszPath: LPSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddBackslashA".} - proc PathAddExtension*(pszPath: LPSTR, pszExt: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddExtensionA".} - proc PathBuildRoot*(pszRoot: LPSTR, iDrive: int32): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathBuildRootA".} - proc PathCombine*(pszDest: LPSTR, pszDir: LPCSTR, pszFile: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCombineA".} - proc PathFileExists*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFileExistsA".} - proc PathFindExtension*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindExtensionA".} - proc PathFindFileName*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindFileNameA".} - proc PathFindNextComponent*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindNextComponentA".} - proc PathGetArgs*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetArgsA".} - proc PathFindSuffixArray*(pszPath: LPCSTR, apszSuffix: ptr LPCSTR, iArraySize: int32): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindSuffixArrayA".} - proc PathIsLFNFileSpec*(lpName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsLFNFileSpecA".} - proc PathGetDriveNumber*(pszPath: LPCSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetDriveNumberA".} - proc PathIsDirectory*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryA".} - proc PathIsDirectoryEmpty*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryEmptyA".} - proc PathIsFileSpec*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsFileSpecA".} - proc PathIsPrefix*(pszPrefix: LPCSTR, pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsPrefixA".} - proc PathIsRelative*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRelativeA".} - proc PathIsRoot*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRootA".} - proc PathIsSameRoot*(pszPath1: LPCSTR, pszPath2: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSameRootA".} - proc PathIsUNC*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCA".} - proc PathIsNetworkPath*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsNetworkPathA".} - proc PathIsUNCServer*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerA".} - proc PathIsUNCServerShare*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerShareA".} - proc PathIsURL*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsURLA".} - proc PathRemoveBackslash*(pszPath: LPSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBackslashA".} - proc PathSkipRoot*(pszPath: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSkipRootA".} - proc PathStripPath*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripPathA".} - proc PathStripToRoot*(pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripToRootA".} - proc PathMakeSystemFolder*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakeSystemFolderA".} - proc PathUnmakeSystemFolder*(pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnmakeSystemFolderA".} - proc PathIsSystemFolder*(pszPath: LPCSTR, dwAttrb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSystemFolderA".} - proc PathUndecorate*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUndecorateA".} - proc PathUnExpandEnvStrings*(pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnExpandEnvStringsA".} - proc PathAppend*(pszPath: LPSTR, pMore: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAppendA".} - proc PathCanonicalize*(pszBuf: LPSTR, pszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCanonicalizeA".} - proc PathCompactPath*(hDC: HDC, pszPath: LPSTR, dx: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathA".} - proc PathCompactPathEx*(pszOut: LPSTR, pszSrc: LPCSTR, cchMax: UINT, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathExA".} - proc PathCommonPrefix*(pszFile1: LPCSTR, pszFile2: LPCSTR, achPath: LPSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCommonPrefixA".} - proc PathFindOnPath*(pszPath: LPSTR, ppszOtherDirs: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindOnPathA".} - proc PathGetCharType*(ch: UCHAR): UINT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetCharTypeA".} - proc PathIsContentType*(pszPath: LPCSTR, pszContentType: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsContentTypeA".} - proc PathMakePretty*(pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakePrettyA".} - proc PathMatchSpec*(pszFile: LPCSTR, pszSpec: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMatchSpecA".} - proc PathParseIconLocation*(pszIconFile: LPSTR): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathParseIconLocationA".} - proc PathQuoteSpaces*(lpsz: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathQuoteSpacesA".} - proc PathRelativePathTo*(pszPath: LPSTR, pszFrom: LPCSTR, dwAttrFrom: DWORD, pszTo: LPCSTR, dwAttrTo: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRelativePathToA".} - proc PathRemoveArgs*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveArgsA".} - proc PathRemoveBlanks*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBlanksA".} - proc PathRemoveExtension*(pszPath: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveExtensionA".} - proc PathRemoveFileSpec*(pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveFileSpecA".} - proc PathRenameExtension*(pszPath: LPSTR, pszExt: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRenameExtensionA".} - proc PathSearchAndQualify*(pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSearchAndQualifyA".} - proc PathSetDlgItemPath*(hDlg: HWND, id: int32, pszPath: LPCSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSetDlgItemPathA".} - proc PathUnquoteSpaces*(lpsz: LPSTR): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnquoteSpacesA".} - proc UrlCompare*(psz1: LPCSTR, psz2: LPCSTR, fIgnoreSlash: WINBOOL): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCompareA".} - proc UrlCombine*(pszBase: LPCSTR, pszRelative: LPCSTR, pszCombined: LPSTR, pcchCombined: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCombineA".} - proc UrlCanonicalize*(pszUrl: LPCSTR, pszCanonicalized: LPSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCanonicalizeA".} - proc UrlIsOpaque*(pszURL: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsOpaqueA".} - proc UrlGetLocation*(psz1: LPCSTR): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetLocationA".} - proc UrlUnescape*(pszUrl: LPSTR, pszUnescaped: LPSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlUnescapeA".} - proc UrlEscape*(pszUrl: LPCSTR, pszEscaped: LPSTR, pcchEscaped: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlEscapeA".} - proc UrlCreateFromPath*(pszPath: LPCSTR, pszUrl: LPSTR, pcchUrl: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCreateFromPathA".} - proc PathCreateFromUrl*(pszUrl: LPCSTR, pszPath: LPSTR, pcchPath: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCreateFromUrlA".} - proc UrlHash*(pszUrl: LPCSTR, pbHash: LPBYTE, cbHash: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlHashA".} - proc UrlGetPart*(pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetPartA".} - proc UrlApplyScheme*(pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlApplySchemeA".} - proc UrlIs*(pszUrl: LPCSTR, UrlIs: TURLIS): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsA".} - proc SHDeleteEmptyKey*(hkey: HKEY, pszSubKey: LPCSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteEmptyKeyA".} - proc SHDeleteKey*(hkey: HKEY, pszSubKey: LPCSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteKeyA".} - proc SHDeleteValue*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteValueA".} - proc SHGetValue*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHGetValueA".} - proc SHSetValue*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, dwType: DWORD, pvData: LPCVOID, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHSetValueA".} - proc SHRegGetValue*(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, dwFlags: SRRF, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetValueA".} - proc SHQueryValueEx*(hkey: HKEY, pszValue: LPCSTR, pdwReserved: ptr DWORD, pdwType: ptr DWORD, pvData: pointer, pcbData: ptr DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryValueExA".} - proc SHEnumKeyEx*(hkey: HKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumKeyExA".} - proc SHEnumValue*(hkey: HKEY, dwIndex: DWORD, pszValueName: LPSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumValueA".} - proc SHQueryInfoKey*(hkey: HKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryInfoKeyA".} - proc SHCopyKey*(hkeySrc: HKEY, szSrcSubKey: LPCSTR, hkeyDest: HKEY, fReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCopyKeyA".} - proc SHRegGetPath*(hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pszPath: LPSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetPathA".} - proc SHRegSetPath*(hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pcszPath: LPCSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetPathA".} - proc SHRegCreateUSKey*(pszPath: LPCSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegCreateUSKeyA".} - proc SHRegOpenUSKey*(pszPath: LPCSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, fIgnoreHKCU: WINBOOL): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegOpenUSKeyA".} - proc SHRegQueryUSValue*(hUSKey: HUSKEY, pszValue: LPCSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryUSValueA".} - proc SHRegWriteUSValue*(hUSKey: HUSKEY, pszValue: LPCSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegWriteUSValueA".} - proc SHRegDeleteUSValue*(hUSKey: HUSKEY, pszValue: LPCSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteUSValueA".} - proc SHRegDeleteEmptyUSKey*(hUSKey: HUSKEY, pszSubKey: LPCSTR, delRegFlags: SHREGDEL_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteEmptyUSKeyA".} - proc SHRegEnumUSKey*(hUSKey: HUSKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSKeyA".} - proc SHRegEnumUSValue*(hUSkey: HUSKEY, dwIndex: DWORD, pszValueName: LPSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSValueA".} - proc SHRegQueryInfoUSKey*(hUSKey: HUSKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD, enumRegFlags: SHREGENUM_FLAGS): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryInfoUSKeyA".} - proc SHRegGetUSValue*(pszSubKey: LPCSTR, pszValue: LPCSTR, pdwType: LPDWORD, pvData: pointer, pcbData: LPDWORD, fIgnoreHKCU: WINBOOL, pvDefaultData: pointer, dwDefaultDataSize: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetUSValueA".} - proc SHRegSetUSValue*(pszSubKey: LPCSTR, pszValue: LPCSTR, dwType: DWORD, pvData: pointer, cbData: DWORD, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetUSValueA".} - proc SHRegGetBoolUSValue*(pszSubKey: LPCSTR, pszValue: LPCSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetBoolUSValueA".} - proc AssocQueryString*(flags: ASSOCF, str: ASSOCSTR, pszAssoc: LPCSTR, pszExtra: LPCSTR, pszOut: LPSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringA".} - proc AssocQueryStringByKey*(flags: ASSOCF, str: ASSOCSTR, hkAssoc: HKEY, pszExtra: LPCSTR, pszOut: LPSTR, pcchOut: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringByKeyA".} - proc AssocQueryKey*(flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCSTR, pszExtra: LPCSTR, phkeyOut: ptr HKEY): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryKeyA".} - proc SHOpenRegStream2*(hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2A".} - proc SHCreateStreamOnFile*(pszFile: LPCSTR, grfMode: DWORD, ppstm: ptr ptr IStream): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCreateStreamOnFileA".} - proc SHOpenRegStream*(hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2A".} - proc GetAcceptLanguages*(psz: LPSTR, pcch: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "GetAcceptLanguagesA".} - proc SHGetIconOverlayIndex*(pszIconPath: LPCSTR, iIconIndex: int32): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHGetIconOverlayIndexA".} - proc ILCreateFromPath*(pszPath: PCSTR): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "ILCreateFromPathA".} - proc SHGetPathFromIDList*(pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetPathFromIDListA".} - proc SHCreateDirectoryEx*(hwnd: HWND, pszPath: LPCSTR, psa: ptr SECURITY_ATTRIBUTES): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHCreateDirectoryExA".} - proc SHGetSpecialFolderPath*(hwnd: HWND, pszPath: LPSTR, csidl: int32, fCreate: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetSpecialFolderPathA".} - proc SHGetFolderPath*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathA".} - proc SHSetFolderPath*(csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHSetFolderPathA".} - proc SHGetFolderPathAndSubDir*(hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszSubDir: LPCSTR, pszPath: LPSTR): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathAndSubDirA".} - proc SHBrowseForFolder*(lpbi: LPBROWSEINFOA): PIDLIST_ABSOLUTE {.winapi, stdcall, dynlib: "shell32", importc: "SHBrowseForFolderA".} - proc SHUpdateImage*(pszHashItem: LPCSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32): void {.winapi, stdcall, dynlib: "shell32", importc: "SHUpdateImageA".} - proc SHGetDataFromIDList*(psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDataFromIDListA".} - proc PathIsSlow*(pszFile: LPCSTR, dwAttr: DWORD): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "PathIsSlowA".} - proc SHDefExtractIcon*(pszIconFile: LPCSTR, iIndex: int32, uFlags: UINT, phiconLarge: ptr HICON, phiconSmall: ptr HICON, nIconSize: UINT): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHDefExtractIconA".} - proc Shell_GetCachedImageIndex*(pszIconPath: LPCSTR, iIconIndex: int32, uIconFlags: UINT): int32 {.winapi, stdcall, dynlib: "shell32", importc: "Shell_GetCachedImageIndexA".} - proc SHPathPrepareForWrite*(hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHPathPrepareForWriteA".} + proc StrFormatByteSize64*( + qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSize64A".} + + proc DragQueryFile*( + hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT + ): UINT {.winapi, stdcall, dynlib: "shell32", importc: "DragQueryFileA".} + + proc ShellExecute*( + hwnd: HWND, + lpOperation: LPCSTR, + lpFile: LPCSTR, + lpParameters: LPCSTR, + lpDirectory: LPCSTR, + nShowCmd: INT, + ): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteA".} + + proc FindExecutable*( + lpFile: LPCSTR, lpDirectory: LPCSTR, lpResult: LPSTR + ): HINSTANCE {.winapi, stdcall, dynlib: "shell32", importc: "FindExecutableA".} + + proc ShellAbout*( + hWnd: HWND, szApp: LPCSTR, szOtherStuff: LPCSTR, hIcon: HICON + ): INT {.winapi, stdcall, dynlib: "shell32", importc: "ShellAboutA".} + + proc ExtractAssociatedIcon*( + hInst: HINSTANCE, pszIconPath: LPSTR, piIcon: ptr WORD + ): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconA".} + + proc ExtractAssociatedIconEx*( + hInst: HINSTANCE, pszIconPath: LPSTR, piIconIndex: ptr WORD, piIconId: ptr WORD + ): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractAssociatedIconExA".} + + proc ExtractIcon*( + hInst: HINSTANCE, pszExeFileName: LPCSTR, nIconIndex: UINT + ): HICON {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconA".} + + proc DoEnvironmentSubst*( + pszSrc: LPSTR, cchSrc: UINT + ): DWORD {.winapi, stdcall, dynlib: "shell32", importc: "DoEnvironmentSubstA".} + + proc ExtractIconEx*( + lpszFile: LPCSTR, + nIconIndex: int32, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIcons: UINT, + ): UINT {.winapi, stdcall, dynlib: "shell32", importc: "ExtractIconExA".} + + proc SHFileOperation*( + lpFileOp: LPSHFILEOPSTRUCTA + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHFileOperationA".} + + proc ShellExecuteEx*( + pExecInfo: ptr SHELLEXECUTEINFOA + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "ShellExecuteExA".} + + proc SHQueryRecycleBin*( + pszRootPath: LPCSTR, pSHQueryRBInfo: LPSHQUERYRBINFO + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHQueryRecycleBinA".} + + proc SHEmptyRecycleBin*( + hwnd: HWND, pszRootPath: LPCSTR, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHEmptyRecycleBinA".} + + proc Shell_NotifyIcon*( + dwMessage: DWORD, lpData: PNOTIFYICONDATAA + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "Shell_NotifyIconA".} + + proc SHGetFileInfo*( + pszPath: LPCSTR, + dwFileAttributes: DWORD, + psfi: ptr SHFILEINFOA, + cbFileInfo: UINT, + uFlags: UINT, + ): DWORD_PTR {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFileInfoA".} + + proc SHGetDiskFreeSpace*( + pszDirectoryName: LPCSTR, + pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, + pulTotalNumberOfBytes: ptr ULARGE_INTEGER, + pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExA".} + + proc SHGetDiskFreeSpaceEx*( + pszDirectoryName: LPCSTR, + pulFreeBytesAvailableToCaller: ptr ULARGE_INTEGER, + pulTotalNumberOfBytes: ptr ULARGE_INTEGER, + pulTotalNumberOfFreeBytes: ptr ULARGE_INTEGER, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDiskFreeSpaceExA".} + + proc SHGetNewLinkInfo*( + pszLinkTo: LPCSTR, + pszDir: LPCSTR, + pszName: LPSTR, + pfMustCopy: ptr WINBOOL, + uFlags: UINT, + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetNewLinkInfoA".} + + proc SHInvokePrinterCommand*( + hwnd: HWND, uAction: UINT, lpBuf1: LPCSTR, lpBuf2: LPCSTR, fModal: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHInvokePrinterCommandA".} + + proc ShellMessageBox*( + hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCSTR, lpcTitle: LPCSTR, fuStyle: UINT + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "ShellMessageBoxA".} + + proc IsLFNDrive*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "IsLFNDriveA".} + + proc StrRetToStr*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, ppsz: ptr LPSTR + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToStrA".} + + proc StrRetToBuf*( + pstr: ptr STRRET, pidl: LPCITEMIDLIST, pszBuf: LPSTR, cchBuf: UINT + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRetToBufA".} + + proc SHStrDup*( + psz: LPCSTR, ppwsz: ptr ptr WCHAR + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHStrDupA".} + + proc IsCharSpace*( + wch: CHAR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "IsCharSpaceA".} + + proc StrCmpC*( + pszStr1: LPCSTR, pszStr2: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpCA".} + + proc StrCmpIC*( + pszStr1: LPCSTR, pszStr2: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpICA".} + + proc StrChr*( + lpStart: LPCSTR, wMatch: WORD + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrA".} + + proc StrRChr*( + lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrA".} + + proc StrChrI*( + lpStart: LPCSTR, wMatch: WORD + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrChrIA".} + + proc StrRChrI*( + lpStart: LPCSTR, lpEnd: LPCSTR, wMatch: WORD + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRChrIA".} + + proc StrCmpN*( + lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNA".} + + proc StrCmpNI*( + lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIA".} + + proc StrStr*( + lpFirst: LPCSTR, lpSrch: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrA".} + + proc StrStrI*( + lpFirst: LPCSTR, lpSrch: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrStrIA".} + + proc StrDup*( + lpSrch: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrDupA".} + + proc StrRStrI*( + lpSource: LPCSTR, lpLast: LPCSTR, lpSrch: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrRStrIA".} + + proc StrCSpn*( + lpStr: LPCSTR, lpSet: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnA".} + + proc StrCSpnI*( + lpStr: LPCSTR, lpSet: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCSpnIA".} + + proc StrSpn*( + psz: LPCSTR, pszSet: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrSpnA".} + + proc StrToInt*( + lpSrc: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntA".} + + proc StrPBrk*( + psz: LPCSTR, pszSet: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrPBrkA".} + + proc StrToIntEx*( + pszString: LPCSTR, dwFlags: DWORD, piRet: ptr int32 + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntExA".} + + proc StrToInt64Ex*( + pszString: LPCSTR, dwFlags: DWORD, pllRet: ptr LONGLONG + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToInt64ExA".} + + proc StrFromTimeInterval*( + pszOut: LPSTR, cchMax: UINT, dwTimeMS: DWORD, digits: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFromTimeIntervalA".} + + proc StrFormatByteSize*( + dw: DWORD, szBuf: LPSTR, uiBufSize: UINT + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatByteSizeA".} + + proc StrFormatKBSize*( + qdw: LONGLONG, szBuf: LPSTR, uiBufSize: UINT + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrFormatKBSizeA".} + + proc StrNCat*( + psz1: LPSTR, psz2: LPCSTR, cchMax: int32 + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatA".} + + proc StrTrim*( + psz: LPSTR, pszTrimChars: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrTrimA".} + + proc StrCatBuff*( + pszDest: LPSTR, pszSrc: LPCSTR, cchDestBuffSize: int32 + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCatBuffA".} + + proc ChrCmpI*( + w1: WORD, w2: WORD + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "ChrCmpIA".} + + proc wvnsprintf*( + lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR, arglist: va_list + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wvnsprintfA".} + + proc wnsprintf*( + lpOut: LPSTR, cchLimitIn: int32, lpFmt: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "wnsprintfA".} + + proc StrIsIntlEqual*( + fCaseSens: WINBOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "StrIsIntlEqualA".} + + proc StrToLong*( + lpSrc: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrToIntA".} + + proc StrNCmp*( + lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNA".} + + proc StrNCmpI*( + lpStr1: LPCSTR, lpStr2: LPCSTR, nChar: int32 + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "StrCmpNIA".} + + proc StrCatN*( + psz1: LPSTR, psz2: LPCSTR, cchMax: int32 + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "StrNCatA".} + + proc PathAddBackslash*( + pszPath: LPSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddBackslashA".} + + proc PathAddExtension*( + pszPath: LPSTR, pszExt: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAddExtensionA".} + + proc PathBuildRoot*( + pszRoot: LPSTR, iDrive: int32 + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathBuildRootA".} + + proc PathCombine*( + pszDest: LPSTR, pszDir: LPCSTR, pszFile: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCombineA".} + + proc PathFileExists*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFileExistsA".} + + proc PathFindExtension*( + pszPath: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindExtensionA".} + + proc PathFindFileName*( + pszPath: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindFileNameA".} + + proc PathFindNextComponent*( + pszPath: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindNextComponentA".} + + proc PathGetArgs*( + pszPath: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetArgsA".} + + proc PathFindSuffixArray*( + pszPath: LPCSTR, apszSuffix: ptr LPCSTR, iArraySize: int32 + ): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindSuffixArrayA".} + + proc PathIsLFNFileSpec*( + lpName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsLFNFileSpecA".} + + proc PathGetDriveNumber*( + pszPath: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetDriveNumberA".} + + proc PathIsDirectory*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryA".} + + proc PathIsDirectoryEmpty*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsDirectoryEmptyA".} + + proc PathIsFileSpec*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsFileSpecA".} + + proc PathIsPrefix*( + pszPrefix: LPCSTR, pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsPrefixA".} + + proc PathIsRelative*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRelativeA".} + + proc PathIsRoot*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsRootA".} + + proc PathIsSameRoot*( + pszPath1: LPCSTR, pszPath2: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSameRootA".} + + proc PathIsUNC*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCA".} + + proc PathIsNetworkPath*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsNetworkPathA".} + + proc PathIsUNCServer*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerA".} + + proc PathIsUNCServerShare*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsUNCServerShareA".} + + proc PathIsURL*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsURLA".} + + proc PathRemoveBackslash*( + pszPath: LPSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBackslashA".} + + proc PathSkipRoot*( + pszPath: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSkipRootA".} + + proc PathStripPath*( + pszPath: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripPathA".} + + proc PathStripToRoot*( + pszPath: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathStripToRootA".} + + proc PathMakeSystemFolder*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakeSystemFolderA".} + + proc PathUnmakeSystemFolder*( + pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnmakeSystemFolderA".} + + proc PathIsSystemFolder*( + pszPath: LPCSTR, dwAttrb: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsSystemFolderA".} + + proc PathUndecorate*( + pszPath: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUndecorateA".} + + proc PathUnExpandEnvStrings*( + pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnExpandEnvStringsA".} + + proc PathAppend*( + pszPath: LPSTR, pMore: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathAppendA".} + + proc PathCanonicalize*( + pszBuf: LPSTR, pszPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCanonicalizeA".} + + proc PathCompactPath*( + hDC: HDC, pszPath: LPSTR, dx: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathA".} + + proc PathCompactPathEx*( + pszOut: LPSTR, pszSrc: LPCSTR, cchMax: UINT, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCompactPathExA".} + + proc PathCommonPrefix*( + pszFile1: LPCSTR, pszFile2: LPCSTR, achPath: LPSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCommonPrefixA".} + + proc PathFindOnPath*( + pszPath: LPSTR, ppszOtherDirs: ptr LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathFindOnPathA".} + + proc PathGetCharType*( + ch: UCHAR + ): UINT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathGetCharTypeA".} + + proc PathIsContentType*( + pszPath: LPCSTR, pszContentType: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathIsContentTypeA".} + + proc PathMakePretty*( + pszPath: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMakePrettyA".} + + proc PathMatchSpec*( + pszFile: LPCSTR, pszSpec: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathMatchSpecA".} + + proc PathParseIconLocation*( + pszIconFile: LPSTR + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "PathParseIconLocationA".} + + proc PathQuoteSpaces*( + lpsz: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathQuoteSpacesA".} + + proc PathRelativePathTo*( + pszPath: LPSTR, pszFrom: LPCSTR, dwAttrFrom: DWORD, pszTo: LPCSTR, dwAttrTo: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRelativePathToA".} + + proc PathRemoveArgs*( + pszPath: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveArgsA".} + + proc PathRemoveBlanks*( + pszPath: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveBlanksA".} + + proc PathRemoveExtension*( + pszPath: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveExtensionA".} + + proc PathRemoveFileSpec*( + pszPath: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRemoveFileSpecA".} + + proc PathRenameExtension*( + pszPath: LPSTR, pszExt: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathRenameExtensionA".} + + proc PathSearchAndQualify*( + pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSearchAndQualifyA".} + + proc PathSetDlgItemPath*( + hDlg: HWND, id: int32, pszPath: LPCSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathSetDlgItemPathA".} + + proc PathUnquoteSpaces*( + lpsz: LPSTR + ): void {.winapi, stdcall, dynlib: "shlwapi", importc: "PathUnquoteSpacesA".} + + proc UrlCompare*( + psz1: LPCSTR, psz2: LPCSTR, fIgnoreSlash: WINBOOL + ): int32 {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCompareA".} + + proc UrlCombine*( + pszBase: LPCSTR, + pszRelative: LPCSTR, + pszCombined: LPSTR, + pcchCombined: LPDWORD, + dwFlags: DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCombineA".} + + proc UrlCanonicalize*( + pszUrl: LPCSTR, pszCanonicalized: LPSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCanonicalizeA".} + + proc UrlIsOpaque*( + pszURL: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsOpaqueA".} + + proc UrlGetLocation*( + psz1: LPCSTR + ): LPCSTR {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetLocationA".} + + proc UrlUnescape*( + pszUrl: LPSTR, pszUnescaped: LPSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlUnescapeA".} + + proc UrlEscape*( + pszUrl: LPCSTR, pszEscaped: LPSTR, pcchEscaped: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlEscapeA".} + + proc UrlCreateFromPath*( + pszPath: LPCSTR, pszUrl: LPSTR, pcchUrl: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlCreateFromPathA".} + + proc PathCreateFromUrl*( + pszUrl: LPCSTR, pszPath: LPSTR, pcchPath: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "PathCreateFromUrlA".} + + proc UrlHash*( + pszUrl: LPCSTR, pbHash: LPBYTE, cbHash: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlHashA".} + + proc UrlGetPart*( + pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlGetPartA".} + + proc UrlApplyScheme*( + pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlApplySchemeA".} + + proc UrlIs*( + pszUrl: LPCSTR, UrlIs: TURLIS + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "UrlIsA".} + + proc SHDeleteEmptyKey*( + hkey: HKEY, pszSubKey: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteEmptyKeyA".} + + proc SHDeleteKey*( + hkey: HKEY, pszSubKey: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteKeyA".} + + proc SHDeleteValue*( + hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHDeleteValueA".} + + proc SHGetValue*( + hkey: HKEY, + pszSubKey: LPCSTR, + pszValue: LPCSTR, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHGetValueA".} + + proc SHSetValue*( + hkey: HKEY, + pszSubKey: LPCSTR, + pszValue: LPCSTR, + dwType: DWORD, + pvData: LPCVOID, + cbData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHSetValueA".} + + proc SHRegGetValue*( + hkey: HKEY, + pszSubKey: LPCSTR, + pszValue: LPCSTR, + dwFlags: SRRF, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetValueA".} + + proc SHQueryValueEx*( + hkey: HKEY, + pszValue: LPCSTR, + pdwReserved: ptr DWORD, + pdwType: ptr DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryValueExA".} + + proc SHEnumKeyEx*( + hkey: HKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumKeyExA".} + + proc SHEnumValue*( + hkey: HKEY, + dwIndex: DWORD, + pszValueName: LPSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHEnumValueA".} + + proc SHQueryInfoKey*( + hkey: HKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHQueryInfoKeyA".} + + proc SHCopyKey*( + hkeySrc: HKEY, szSrcSubKey: LPCSTR, hkeyDest: HKEY, fReserved: DWORD + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCopyKeyA".} + + proc SHRegGetPath*( + hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pszPath: LPSTR, dwFlags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetPathA".} + + proc SHRegSetPath*( + hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pcszPath: LPCSTR, dwFlags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetPathA".} + + proc SHRegCreateUSKey*( + pszPath: LPCSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + dwFlags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegCreateUSKeyA".} + + proc SHRegOpenUSKey*( + pszPath: LPCSTR, + samDesired: REGSAM, + hRelativeUSKey: HUSKEY, + phNewUSKey: PHUSKEY, + fIgnoreHKCU: WINBOOL, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegOpenUSKeyA".} + + proc SHRegQueryUSValue*( + hUSKey: HUSKEY, + pszValue: LPCSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryUSValueA".} + + proc SHRegWriteUSValue*( + hUSKey: HUSKEY, + pszValue: LPCSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegWriteUSValueA".} + + proc SHRegDeleteUSValue*( + hUSKey: HUSKEY, pszValue: LPCSTR, delRegFlags: SHREGDEL_FLAGS + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteUSValueA".} + + proc SHRegDeleteEmptyUSKey*( + hUSKey: HUSKEY, pszSubKey: LPCSTR, delRegFlags: SHREGDEL_FLAGS + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegDeleteEmptyUSKeyA".} + + proc SHRegEnumUSKey*( + hUSKey: HUSKEY, + dwIndex: DWORD, + pszName: LPSTR, + pcchName: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSKeyA".} + + proc SHRegEnumUSValue*( + hUSkey: HUSKEY, + dwIndex: DWORD, + pszValueName: LPSTR, + pcchValueName: LPDWORD, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegEnumUSValueA".} + + proc SHRegQueryInfoUSKey*( + hUSKey: HUSKEY, + pcSubKeys: LPDWORD, + pcchMaxSubKeyLen: LPDWORD, + pcValues: LPDWORD, + pcchMaxValueNameLen: LPDWORD, + enumRegFlags: SHREGENUM_FLAGS, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegQueryInfoUSKeyA".} + + proc SHRegGetUSValue*( + pszSubKey: LPCSTR, + pszValue: LPCSTR, + pdwType: LPDWORD, + pvData: pointer, + pcbData: LPDWORD, + fIgnoreHKCU: WINBOOL, + pvDefaultData: pointer, + dwDefaultDataSize: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetUSValueA".} + + proc SHRegSetUSValue*( + pszSubKey: LPCSTR, + pszValue: LPCSTR, + dwType: DWORD, + pvData: pointer, + cbData: DWORD, + dwFlags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegSetUSValueA".} + + proc SHRegGetBoolUSValue*( + pszSubKey: LPCSTR, pszValue: LPCSTR, fIgnoreHKCU: WINBOOL, fDefault: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "shlwapi", importc: "SHRegGetBoolUSValueA".} + + proc AssocQueryString*( + flags: ASSOCF, + str: ASSOCSTR, + pszAssoc: LPCSTR, + pszExtra: LPCSTR, + pszOut: LPSTR, + pcchOut: ptr DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringA".} + + proc AssocQueryStringByKey*( + flags: ASSOCF, + str: ASSOCSTR, + hkAssoc: HKEY, + pszExtra: LPCSTR, + pszOut: LPSTR, + pcchOut: ptr DWORD, + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryStringByKeyA".} + + proc AssocQueryKey*( + flags: ASSOCF, key: ASSOCKEY, pszAssoc: LPCSTR, pszExtra: LPCSTR, phkeyOut: ptr HKEY + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "AssocQueryKeyA".} + + proc SHOpenRegStream2*( + hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD + ): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2A".} + + proc SHCreateStreamOnFile*( + pszFile: LPCSTR, grfMode: DWORD, ppstm: ptr ptr IStream + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "SHCreateStreamOnFileA".} + + proc SHOpenRegStream*( + hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD + ): ptr IStream {.winapi, stdcall, dynlib: "shlwapi", importc: "SHOpenRegStream2A".} + + proc GetAcceptLanguages*( + psz: LPSTR, pcch: ptr DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shlwapi", importc: "GetAcceptLanguagesA".} + + proc SHGetIconOverlayIndex*( + pszIconPath: LPCSTR, iIconIndex: int32 + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHGetIconOverlayIndexA".} + + proc ILCreateFromPath*( + pszPath: PCSTR + ): PIDLIST_ABSOLUTE {. + winapi, stdcall, dynlib: "shell32", importc: "ILCreateFromPathA" + .} + + proc SHGetPathFromIDList*( + pidl: PCIDLIST_ABSOLUTE, pszPath: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetPathFromIDListA".} + + proc SHCreateDirectoryEx*( + hwnd: HWND, pszPath: LPCSTR, psa: ptr SECURITY_ATTRIBUTES + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "SHCreateDirectoryExA".} + + proc SHGetSpecialFolderPath*( + hwnd: HWND, pszPath: LPSTR, csidl: int32, fCreate: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "SHGetSpecialFolderPathA".} + + proc SHGetFolderPath*( + hwnd: HWND, csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPSTR + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathA".} + + proc SHSetFolderPath*( + csidl: int32, hToken: HANDLE, dwFlags: DWORD, pszPath: LPCSTR + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHSetFolderPathA".} + + proc SHGetFolderPathAndSubDir*( + hwnd: HWND, + csidl: int32, + hToken: HANDLE, + dwFlags: DWORD, + pszSubDir: LPCSTR, + pszPath: LPSTR, + ): HRESULT {. + winapi, stdcall, dynlib: "shell32", importc: "SHGetFolderPathAndSubDirA" + .} + + proc SHBrowseForFolder*( + lpbi: LPBROWSEINFOA + ): PIDLIST_ABSOLUTE {. + winapi, stdcall, dynlib: "shell32", importc: "SHBrowseForFolderA" + .} + + proc SHUpdateImage*( + pszHashItem: LPCSTR, iIndex: int32, uFlags: UINT, iImageIndex: int32 + ): void {.winapi, stdcall, dynlib: "shell32", importc: "SHUpdateImageA".} + + proc SHGetDataFromIDList*( + psf: ptr IShellFolder, pidl: PCUITEMID_CHILD, nFormat: int32, pv: pointer, cb: int32 + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHGetDataFromIDListA".} + + proc PathIsSlow*( + pszFile: LPCSTR, dwAttr: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "shell32", importc: "PathIsSlowA".} + + proc SHDefExtractIcon*( + pszIconFile: LPCSTR, + iIndex: int32, + uFlags: UINT, + phiconLarge: ptr HICON, + phiconSmall: ptr HICON, + nIconSize: UINT, + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHDefExtractIconA".} + + proc Shell_GetCachedImageIndex*( + pszIconPath: LPCSTR, iIconIndex: int32, uIconFlags: UINT + ): int32 {.winapi, stdcall, dynlib: "shell32", importc: "Shell_GetCachedImageIndexA".} + + proc SHPathPrepareForWrite*( + hwnd: HWND, punkEnableModless: ptr IUnknown, pszPath: LPCSTR, dwFlags: DWORD + ): HRESULT {.winapi, stdcall, dynlib: "shell32", importc: "SHPathPrepareForWriteA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/snmp.nim --- a/semicongine/thirdparty/winim/winim/inc/snmp.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/snmp.nim Thu Aug 22 18:32:21 2024 +0700 @@ -18,6 +18,7 @@ stream*: ptr BYTE length*: UINT dynamic*: WINBOOL + AsnBits* = AsnOctetString AsnSequence* = AsnOctetString AsnImplicitSequence* = AsnOctetString @@ -28,6 +29,7 @@ AsnObjectIdentifier* {.pure, packed.} = object idLength*: UINT ids*: ptr UINT + AsnObjectName* = AsnObjectIdentifier AsnAny_asnValue* {.pure, union.} = object number*: AsnInteger32 @@ -42,22 +44,27 @@ gauge*: AsnGauge32 ticks*: AsnTimeticks arbitrary*: AsnOpaque + AsnAny* {.pure, packed.} = object asnType*: BYTE padding*: array[3, byte] asnValue*: AsnAny_asnValue + AsnObjectSyntax* = AsnAny SnmpVarBind* {.pure.} = object name*: AsnObjectName value*: AsnObjectSyntax + SnmpVarBindList* {.pure, packed.} = object list*: ptr SnmpVarBind len*: UINT + RFC1157VarBindList* = SnmpVarBindList RFC1157VarBind* = SnmpVarBind AsnInteger* = AsnInteger32 AsnCounter* = AsnCounter32 AsnGauge* = AsnGauge32 + const asnUNIVERSAL* = 0x00 asnAPPLICATION* = 0x40 @@ -174,59 +181,228 @@ asnPRIMATIVE* = asnPRIMITIVE asnUNSIGNED32* = asnUINTEGER32 type - SnmpExtensionInit* = proc (dwUptimeReference: DWORD, phSubagentTrapEvent: ptr HANDLE, pFirstSupportedRegion: ptr AsnObjectIdentifier): WINBOOL {.stdcall.} - SnmpExtensionInitEx* = proc (pNextSupportedRegion: ptr AsnObjectIdentifier): WINBOOL {.stdcall.} - SnmpExtensionMonitor* = proc (pAgentMgmtData: LPVOID): WINBOOL {.stdcall.} - SnmpExtensionQuery* = proc (bPduType: BYTE, pVarBindList: ptr SnmpVarBindList, pErrorStatus: ptr AsnInteger32, pErrorIndex: ptr AsnInteger32): WINBOOL {.stdcall.} - SnmpExtensionQueryEx* = proc (nRequestType: UINT, nTransactionId: UINT, pVarBindList: ptr SnmpVarBindList, pContextInfo: ptr AsnOctetString, pErrorStatus: ptr AsnInteger32, pErrorIndex: ptr AsnInteger32): WINBOOL {.stdcall.} - SnmpExtensionTrap* = proc (pEnterpriseOid: ptr AsnObjectIdentifier, pGenericTrapId: ptr AsnInteger32, pSpecificTrapId: ptr AsnInteger32, pTimeStamp: ptr AsnTimeticks, pVarBindList: ptr SnmpVarBindList): WINBOOL {.stdcall.} - SnmpExtensionClose* = proc (): VOID {.stdcall.} - PFNSNMPEXTENSIONINIT* = proc (dwUpTimeReference: DWORD, phSubagentTrapEvent: ptr HANDLE, pFirstSupportedRegion: ptr AsnObjectIdentifier): WINBOOL {.stdcall.} - PFNSNMPEXTENSIONINITEX* = proc (pNextSupportedRegion: ptr AsnObjectIdentifier): WINBOOL {.stdcall.} - PFNSNMPEXTENSIONMONITOR* = proc (pAgentMgmtData: LPVOID): WINBOOL {.stdcall.} - PFNSNMPEXTENSIONQUERY* = proc (bPduType: BYTE, pVarBindList: ptr SnmpVarBindList, pErrorStatus: ptr AsnInteger32, pErrorIndex: ptr AsnInteger32): WINBOOL {.stdcall.} - PFNSNMPEXTENSIONQUERYEX* = proc (nRequestType: UINT, nTransactionId: UINT, pVarBindList: ptr SnmpVarBindList, pContextInfo: ptr AsnOctetString, pErrorStatus: ptr AsnInteger32, pErrorIndex: ptr AsnInteger32): WINBOOL {.stdcall.} - PFNSNMPEXTENSIONTRAP* = proc (pEnterpriseOid: ptr AsnObjectIdentifier, pGenericTrapId: ptr AsnInteger32, pSpecificTrapId: ptr AsnInteger32, pTimeStamp: ptr AsnTimeticks, pVarBindList: ptr SnmpVarBindList): WINBOOL {.stdcall.} - PFNSNMPEXTENSIONCLOSE* = proc (): VOID {.stdcall.} -proc SnmpUtilOidCpy*(pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOidAppend*(pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOidNCmp*(pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier, nSubIds: UINT): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOidCmp*(pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOidFree*(pOid: ptr AsnObjectIdentifier): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOctetsCmp*(pOctets1: ptr AsnOctetString, pOctets2: ptr AsnOctetString): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOctetsNCmp*(pOctets1: ptr AsnOctetString, pOctets2: ptr AsnOctetString, nChars: UINT): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOctetsCpy*(pOctetsDst: ptr AsnOctetString, pOctetsSrc: ptr AsnOctetString): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOctetsFree*(pOctets: ptr AsnOctetString): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilAsnAnyCpy*(pAnyDst: ptr AsnAny, pAnySrc: ptr AsnAny): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilAsnAnyFree*(pAny: ptr AsnAny): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilVarBindCpy*(pVbDst: ptr SnmpVarBind, pVbSrc: ptr SnmpVarBind): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilVarBindFree*(pVb: ptr SnmpVarBind): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilVarBindListCpy*(pVblDst: ptr SnmpVarBindList, pVblSrc: ptr SnmpVarBindList): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilVarBindListFree*(pVbl: ptr SnmpVarBindList): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilMemFree*(pMem: LPVOID): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilMemAlloc*(nBytes: UINT): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilMemReAlloc*(pMem: LPVOID, nBytes: UINT): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilOidToA*(Oid: ptr AsnObjectIdentifier): LPSTR {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilIdsToA*(Ids: ptr UINT, IdLength: UINT): LPSTR {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilPrintOid*(Oid: ptr AsnObjectIdentifier): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilPrintAsnAny*(pAny: ptr AsnAny): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + SnmpExtensionInit* = proc( + dwUptimeReference: DWORD, + phSubagentTrapEvent: ptr HANDLE, + pFirstSupportedRegion: ptr AsnObjectIdentifier, + ): WINBOOL {.stdcall.} + SnmpExtensionInitEx* = + proc(pNextSupportedRegion: ptr AsnObjectIdentifier): WINBOOL {.stdcall.} + SnmpExtensionMonitor* = proc(pAgentMgmtData: LPVOID): WINBOOL {.stdcall.} + SnmpExtensionQuery* = proc( + bPduType: BYTE, + pVarBindList: ptr SnmpVarBindList, + pErrorStatus: ptr AsnInteger32, + pErrorIndex: ptr AsnInteger32, + ): WINBOOL {.stdcall.} + SnmpExtensionQueryEx* = proc( + nRequestType: UINT, + nTransactionId: UINT, + pVarBindList: ptr SnmpVarBindList, + pContextInfo: ptr AsnOctetString, + pErrorStatus: ptr AsnInteger32, + pErrorIndex: ptr AsnInteger32, + ): WINBOOL {.stdcall.} + SnmpExtensionTrap* = proc( + pEnterpriseOid: ptr AsnObjectIdentifier, + pGenericTrapId: ptr AsnInteger32, + pSpecificTrapId: ptr AsnInteger32, + pTimeStamp: ptr AsnTimeticks, + pVarBindList: ptr SnmpVarBindList, + ): WINBOOL {.stdcall.} + SnmpExtensionClose* = proc(): VOID {.stdcall.} + PFNSNMPEXTENSIONINIT* = proc( + dwUpTimeReference: DWORD, + phSubagentTrapEvent: ptr HANDLE, + pFirstSupportedRegion: ptr AsnObjectIdentifier, + ): WINBOOL {.stdcall.} + PFNSNMPEXTENSIONINITEX* = + proc(pNextSupportedRegion: ptr AsnObjectIdentifier): WINBOOL {.stdcall.} + PFNSNMPEXTENSIONMONITOR* = proc(pAgentMgmtData: LPVOID): WINBOOL {.stdcall.} + PFNSNMPEXTENSIONQUERY* = proc( + bPduType: BYTE, + pVarBindList: ptr SnmpVarBindList, + pErrorStatus: ptr AsnInteger32, + pErrorIndex: ptr AsnInteger32, + ): WINBOOL {.stdcall.} + PFNSNMPEXTENSIONQUERYEX* = proc( + nRequestType: UINT, + nTransactionId: UINT, + pVarBindList: ptr SnmpVarBindList, + pContextInfo: ptr AsnOctetString, + pErrorStatus: ptr AsnInteger32, + pErrorIndex: ptr AsnInteger32, + ): WINBOOL {.stdcall.} + PFNSNMPEXTENSIONTRAP* = proc( + pEnterpriseOid: ptr AsnObjectIdentifier, + pGenericTrapId: ptr AsnInteger32, + pSpecificTrapId: ptr AsnInteger32, + pTimeStamp: ptr AsnTimeticks, + pVarBindList: ptr SnmpVarBindList, + ): WINBOOL {.stdcall.} + PFNSNMPEXTENSIONCLOSE* = proc(): VOID {.stdcall.} + +proc SnmpUtilOidCpy*( + pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOidAppend*( + pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOidNCmp*( + pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier, nSubIds: UINT +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOidCmp*( + pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOidFree*( + pOid: ptr AsnObjectIdentifier +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOctetsCmp*( + pOctets1: ptr AsnOctetString, pOctets2: ptr AsnOctetString +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOctetsNCmp*( + pOctets1: ptr AsnOctetString, pOctets2: ptr AsnOctetString, nChars: UINT +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOctetsCpy*( + pOctetsDst: ptr AsnOctetString, pOctetsSrc: ptr AsnOctetString +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOctetsFree*( + pOctets: ptr AsnOctetString +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilAsnAnyCpy*( + pAnyDst: ptr AsnAny, pAnySrc: ptr AsnAny +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilAsnAnyFree*( + pAny: ptr AsnAny +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilVarBindCpy*( + pVbDst: ptr SnmpVarBind, pVbSrc: ptr SnmpVarBind +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilVarBindFree*( + pVb: ptr SnmpVarBind +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilVarBindListCpy*( + pVblDst: ptr SnmpVarBindList, pVblSrc: ptr SnmpVarBindList +): INT {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilVarBindListFree*( + pVbl: ptr SnmpVarBindList +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilMemFree*( + pMem: LPVOID +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilMemAlloc*( + nBytes: UINT +): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilMemReAlloc*( + pMem: LPVOID, nBytes: UINT +): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilOidToA*( + Oid: ptr AsnObjectIdentifier +): LPSTR {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilIdsToA*( + Ids: ptr UINT, IdLength: UINT +): LPSTR {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilPrintOid*( + Oid: ptr AsnObjectIdentifier +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilPrintAsnAny*( + pAny: ptr AsnAny +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + proc SnmpSvcGetUptime*(): DWORD {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpSvcSetLogLevel*(nLogLevel: INT): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpSvcSetLogType*(nLogType: INT): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} -proc SnmpUtilDbgPrint*(nLogLevel: INT, szFormat: LPSTR): VOID {.winapi, cdecl, varargs, dynlib: "snmpapi", importc.} -proc SNMP_oidcpy*(pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidCpy".} -proc SNMP_oidappend*(pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidAppend".} -proc SNMP_oidncmp*(pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier, nSubIds: UINT): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidNCmp".} -proc SNMP_oidcmp*(pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidCmp".} -proc SNMP_oidfree*(pOid: ptr AsnObjectIdentifier): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidFree".} -proc SNMP_CopyVarBindList*(pVblDst: ptr SnmpVarBindList, pVblSrc: ptr SnmpVarBindList): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindListCpy".} -proc SNMP_FreeVarBindList*(pVbl: ptr SnmpVarBindList): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindListFree".} -proc SNMP_CopyVarBind*(pVbDst: ptr SnmpVarBind, pVbSrc: ptr SnmpVarBind): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindCpy".} -proc SNMP_FreeVarBind*(pVb: ptr SnmpVarBind): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindFree".} -proc SNMP_printany*(pAny: ptr AsnAny): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilPrintAsnAny".} -proc SNMP_free*(pMem: LPVOID): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemFree".} -proc SNMP_malloc*(nBytes: UINT): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemAlloc".} -proc SNMP_realloc*(pMem: LPVOID, nBytes: UINT): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemReAlloc".} -proc SNMP_DBG_free*(pMem: LPVOID): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemFree".} -proc SNMP_DBG_malloc*(nBytes: UINT): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemAlloc".} -proc SNMP_DBG_realloc*(pMem: LPVOID, nBytes: UINT): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemReAlloc".} +proc SnmpSvcSetLogLevel*( + nLogLevel: INT +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpSvcSetLogType*( + nLogType: INT +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc.} + +proc SnmpUtilDbgPrint*( + nLogLevel: INT, szFormat: LPSTR +): VOID {.winapi, cdecl, varargs, dynlib: "snmpapi", importc.} + +proc SNMP_oidcpy*( + pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier +): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidCpy".} + +proc SNMP_oidappend*( + pOidDst: ptr AsnObjectIdentifier, pOidSrc: ptr AsnObjectIdentifier +): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidAppend".} + +proc SNMP_oidncmp*( + pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier, nSubIds: UINT +): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidNCmp".} + +proc SNMP_oidcmp*( + pOid1: ptr AsnObjectIdentifier, pOid2: ptr AsnObjectIdentifier +): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidCmp".} + +proc SNMP_oidfree*( + pOid: ptr AsnObjectIdentifier +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilOidFree".} + +proc SNMP_CopyVarBindList*( + pVblDst: ptr SnmpVarBindList, pVblSrc: ptr SnmpVarBindList +): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindListCpy".} + +proc SNMP_FreeVarBindList*( + pVbl: ptr SnmpVarBindList +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindListFree".} + +proc SNMP_CopyVarBind*( + pVbDst: ptr SnmpVarBind, pVbSrc: ptr SnmpVarBind +): INT {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindCpy".} + +proc SNMP_FreeVarBind*( + pVb: ptr SnmpVarBind +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilVarBindFree".} + +proc SNMP_printany*( + pAny: ptr AsnAny +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilPrintAsnAny".} + +proc SNMP_free*( + pMem: LPVOID +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemFree".} + +proc SNMP_malloc*( + nBytes: UINT +): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemAlloc".} + +proc SNMP_realloc*( + pMem: LPVOID, nBytes: UINT +): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemReAlloc".} + +proc SNMP_DBG_free*( + pMem: LPVOID +): VOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemFree".} + +proc SNMP_DBG_malloc*( + nBytes: UINT +): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemAlloc".} + +proc SNMP_DBG_realloc*( + pMem: LPVOID, nBytes: UINT +): LPVOID {.winapi, stdcall, dynlib: "snmpapi", importc: "SnmpUtilMemReAlloc".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/subauth.nim --- a/semicongine/thirdparty/winim/winim/inc/subauth.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/subauth.nim Thu Aug 22 18:32:21 2024 +0700 @@ -13,14 +13,17 @@ OLD_LARGE_INTEGER* {.pure.} = object LowPart*: ULONG HighPart*: LONG + POLD_LARGE_INTEGER* = ptr OLD_LARGE_INTEGER LOGON_HOURS* {.pure.} = object UnitsPerWeek*: USHORT LogonHours*: PUCHAR + PLOGON_HOURS* = ptr LOGON_HOURS SR_SECURITY_DESCRIPTOR* {.pure.} = object Length*: ULONG SecurityDescriptor*: PUCHAR + PSR_SECURITY_DESCRIPTOR* = ptr SR_SECURITY_DESCRIPTOR USER_ALL_INFORMATION* {.pure, packed.} = object LastLogon*: LARGE_INTEGER @@ -56,21 +59,25 @@ NtPasswordPresent*: BOOLEAN PasswordExpired*: BOOLEAN PrivateDataSensitive*: BOOLEAN + PUSER_ALL_INFORMATION* = ptr USER_ALL_INFORMATION -const - CLEAR_BLOCK_LENGTH* = 8 + +const CLEAR_BLOCK_LENGTH* = 8 type CLEAR_BLOCK* {.pure.} = object data*: array[CLEAR_BLOCK_LENGTH, CHAR] + PCLEAR_BLOCK* = ptr CLEAR_BLOCK -const - CYPHER_BLOCK_LENGTH* = 8 + +const CYPHER_BLOCK_LENGTH* = 8 type CYPHER_BLOCK* {.pure.} = object data*: array[CYPHER_BLOCK_LENGTH, CHAR] + PCYPHER_BLOCK* = ptr CYPHER_BLOCK LM_OWF_PASSWORD* {.pure.} = object data*: array[2, CYPHER_BLOCK] + PLM_OWF_PASSWORD* = ptr LM_OWF_PASSWORD LM_CHALLENGE* = CLEAR_BLOCK PLM_CHALLENGE* = ptr LM_CHALLENGE @@ -80,6 +87,7 @@ PNT_CHALLENGE* = ptr NT_CHALLENGE USER_SESSION_KEY* {.pure.} = object data*: array[2, CYPHER_BLOCK] + PUSER_SESSION_KEY* = ptr USER_SESSION_KEY NETLOGON_LOGON_IDENTITY_INFO* {.pure.} = object LogonDomainName*: UNICODE_STRING @@ -87,28 +95,33 @@ LogonId*: OLD_LARGE_INTEGER UserName*: UNICODE_STRING Workstation*: UNICODE_STRING + PNETLOGON_LOGON_IDENTITY_INFO* = ptr NETLOGON_LOGON_IDENTITY_INFO NETLOGON_INTERACTIVE_INFO* {.pure.} = object Identity*: NETLOGON_LOGON_IDENTITY_INFO LmOwfPassword*: LM_OWF_PASSWORD NtOwfPassword*: NT_OWF_PASSWORD + PNETLOGON_INTERACTIVE_INFO* = ptr NETLOGON_INTERACTIVE_INFO NETLOGON_SERVICE_INFO* {.pure.} = object Identity*: NETLOGON_LOGON_IDENTITY_INFO LmOwfPassword*: LM_OWF_PASSWORD NtOwfPassword*: NT_OWF_PASSWORD + PNETLOGON_SERVICE_INFO* = ptr NETLOGON_SERVICE_INFO NETLOGON_NETWORK_INFO* {.pure.} = object Identity*: NETLOGON_LOGON_IDENTITY_INFO LmChallenge*: LM_CHALLENGE NtChallengeResponse*: STRING LmChallengeResponse*: STRING + PNETLOGON_NETWORK_INFO* = ptr NETLOGON_NETWORK_INFO NETLOGON_GENERIC_INFO* {.pure.} = object Identity*: NETLOGON_LOGON_IDENTITY_INFO PackageName*: UNICODE_STRING DataLength*: ULONG LogonData*: PUCHAR + PNETLOGON_GENERIC_INFO* = ptr NETLOGON_GENERIC_INFO MSV1_0_VALIDATION_INFO* {.pure.} = object LogoffTime*: LARGE_INTEGER @@ -120,7 +133,9 @@ UserFlags*: ULONG WhichFields*: ULONG UserId*: ULONG + PMSV1_0_VALIDATION_INFO* = ptr MSV1_0_VALIDATION_INFO + const USER_ACCOUNT_DISABLED* = 0x00000001 USER_HOME_DIRECTORY_REQUIRED* = 0x00000002 @@ -143,14 +158,18 @@ USER_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION* = 0x00040000 USER_NO_AUTH_DATA_REQUIRED* = 0x00080000 NEXT_FREE_ACCOUNT_CONTROL_BIT* = USER_NO_AUTH_DATA_REQUIRED shl 1 - USER_MACHINE_ACCOUNT_MASK* = USER_INTERDOMAIN_TRUST_ACCOUNT or USER_WORKSTATION_TRUST_ACCOUNT or USER_SERVER_TRUST_ACCOUNT - USER_ACCOUNT_TYPE_MASK* = USER_TEMP_DUPLICATE_ACCOUNT or USER_NORMAL_ACCOUNT or USER_MACHINE_ACCOUNT_MASK - USER_COMPUTED_ACCOUNT_CONTROL_BITS* = USER_ACCOUNT_AUTO_LOCKED or USER_PASSWORD_EXPIRED + USER_MACHINE_ACCOUNT_MASK* = + USER_INTERDOMAIN_TRUST_ACCOUNT or USER_WORKSTATION_TRUST_ACCOUNT or + USER_SERVER_TRUST_ACCOUNT + USER_ACCOUNT_TYPE_MASK* = + USER_TEMP_DUPLICATE_ACCOUNT or USER_NORMAL_ACCOUNT or USER_MACHINE_ACCOUNT_MASK + USER_COMPUTED_ACCOUNT_CONTROL_BITS* = + USER_ACCOUNT_AUTO_LOCKED or USER_PASSWORD_EXPIRED SAM_DAYS_PER_WEEK* = 7 - SAM_HOURS_PER_WEEK* = 24*SAM_DAYS_PER_WEEK - SAM_MINUTES_PER_WEEK* = 60*SAM_HOURS_PER_WEEK + SAM_HOURS_PER_WEEK* = 24 * SAM_DAYS_PER_WEEK + SAM_MINUTES_PER_WEEK* = 60 * SAM_HOURS_PER_WEEK USER_ALL_PARAMETERS* = 0x00200000 - USER_SESSION_KEY_LENGTH* = CYPHER_BLOCK_LENGTH*2 + USER_SESSION_KEY_LENGTH* = CYPHER_BLOCK_LENGTH * 2 netlogonInteractiveInformation* = 1 netlogonNetworkInformation* = 2 netlogonServiceInformation* = 3 @@ -176,7 +195,40 @@ MSV1_0_SUBAUTH_ACCOUNT_TYPE* = 0x00000040 MSV1_0_SUBAUTH_LOCKOUT* = 0x00000080 type - Msv1_0SubAuthenticationRoutine* = proc (LogonLevel: NETLOGON_LOGON_INFO_CLASS, LogonInformation: PVOID, Flags: ULONG, UserAll: PUSER_ALL_INFORMATION, WhichFields: PULONG, UserFlags: PULONG, Authoritative: PBOOLEAN, LogoffTime: PLARGE_INTEGER, KickoffTime: PLARGE_INTEGER): NTSTATUS {.stdcall.} - Msv1_0SubAuthenticationRoutineEx* = proc (LogonLevel: NETLOGON_LOGON_INFO_CLASS, LogonInformation: PVOID, Flags: ULONG, UserAll: PUSER_ALL_INFORMATION, UserHandle: SAM_HANDLE, ValidationInfo: PMSV1_0_VALIDATION_INFO, ActionsPerformed: PULONG): NTSTATUS {.stdcall.} - Msv1_0SubAuthenticationRoutineGeneric* = proc (SubmitBuffer: PVOID, SubmitBufferLength: ULONG, ReturnBufferLength: PULONG, ReturnBuffer: ptr PVOID): NTSTATUS {.stdcall.} - Msv1_0SubAuthenticationFilter* = proc (LogonLevel: NETLOGON_LOGON_INFO_CLASS, LogonInformation: PVOID, Flags: ULONG, UserAll: PUSER_ALL_INFORMATION, WhichFields: PULONG, UserFlags: PULONG, Authoritative: PBOOLEAN, LogoffTime: PLARGE_INTEGER, KickoffTime: PLARGE_INTEGER): NTSTATUS {.stdcall.} + Msv1_0SubAuthenticationRoutine* = proc( + LogonLevel: NETLOGON_LOGON_INFO_CLASS, + LogonInformation: PVOID, + Flags: ULONG, + UserAll: PUSER_ALL_INFORMATION, + WhichFields: PULONG, + UserFlags: PULONG, + Authoritative: PBOOLEAN, + LogoffTime: PLARGE_INTEGER, + KickoffTime: PLARGE_INTEGER, + ): NTSTATUS {.stdcall.} + Msv1_0SubAuthenticationRoutineEx* = proc( + LogonLevel: NETLOGON_LOGON_INFO_CLASS, + LogonInformation: PVOID, + Flags: ULONG, + UserAll: PUSER_ALL_INFORMATION, + UserHandle: SAM_HANDLE, + ValidationInfo: PMSV1_0_VALIDATION_INFO, + ActionsPerformed: PULONG, + ): NTSTATUS {.stdcall.} + Msv1_0SubAuthenticationRoutineGeneric* = proc( + SubmitBuffer: PVOID, + SubmitBufferLength: ULONG, + ReturnBufferLength: PULONG, + ReturnBuffer: ptr PVOID, + ): NTSTATUS {.stdcall.} + Msv1_0SubAuthenticationFilter* = proc( + LogonLevel: NETLOGON_LOGON_INFO_CLASS, + LogonInformation: PVOID, + Flags: ULONG, + UserAll: PUSER_ALL_INFORMATION, + WhichFields: PULONG, + UserFlags: PULONG, + Authoritative: PBOOLEAN, + LogoffTime: PLARGE_INTEGER, + KickoffTime: PLARGE_INTEGER, + ): NTSTATUS {.stdcall.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/tlhelp32.nim --- a/semicongine/thirdparty/winim/winim/inc/tlhelp32.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/tlhelp32.nim Thu Aug 22 18:32:21 2024 +0700 @@ -13,6 +13,7 @@ th32ProcessID*: DWORD th32HeapID*: ULONG_PTR dwFlags*: DWORD + PHEAPLIST32* = ptr HEAPLIST32 LPHEAPLIST32* = ptr HEAPLIST32 HEAPENTRY32* {.pure.} = object @@ -25,6 +26,7 @@ dwResvd*: DWORD th32ProcessID*: DWORD th32HeapID*: ULONG_PTR + PHEAPENTRY32* = ptr HEAPENTRY32 LPHEAPENTRY32* = ptr HEAPENTRY32 PROCESSENTRY32W* {.pure.} = object @@ -38,6 +40,7 @@ pcPriClassBase*: LONG dwFlags*: DWORD szExeFile*: array[MAX_PATH, WCHAR] + PPROCESSENTRY32W* = ptr PROCESSENTRY32W LPPROCESSENTRY32W* = ptr PROCESSENTRY32W THREADENTRY32* {.pure.} = object @@ -48,10 +51,11 @@ tpBasePri*: LONG tpDeltaPri*: LONG dwFlags*: DWORD + PTHREADENTRY32* = ptr THREADENTRY32 LPTHREADENTRY32* = ptr THREADENTRY32 -const - MAX_MODULE_NAME32* = 255 + +const MAX_MODULE_NAME32* = 255 type MODULEENTRY32W* {.pure.} = object dwSize*: DWORD @@ -64,26 +68,26 @@ hModule*: HMODULE szModule*: array[MAX_MODULE_NAME32 + 1, WCHAR] szExePath*: array[MAX_PATH, WCHAR] + PMODULEENTRY32W* = ptr MODULEENTRY32W LPMODULEENTRY32W* = ptr MODULEENTRY32W + when winimUnicode: - type - MODULEENTRY32* = MODULEENTRY32W -type - MODULEENTRY32A* {.pure.} = object - dwSize*: DWORD - th32ModuleID*: DWORD - th32ProcessID*: DWORD - GlblcntUsage*: DWORD - ProccntUsage*: DWORD - modBaseAddr*: ptr BYTE - modBaseSize*: DWORD - hModule*: HMODULE - szModule*: array[MAX_MODULE_NAME32 + 1, char] - szExePath*: array[MAX_PATH, char] + type MODULEENTRY32* = MODULEENTRY32W +type MODULEENTRY32A* {.pure.} = object + dwSize*: DWORD + th32ModuleID*: DWORD + th32ProcessID*: DWORD + GlblcntUsage*: DWORD + ProccntUsage*: DWORD + modBaseAddr*: ptr BYTE + modBaseSize*: DWORD + hModule*: HMODULE + szModule*: array[MAX_MODULE_NAME32 + 1, char] + szExePath*: array[MAX_PATH, char] + when winimAnsi: - type - MODULEENTRY32* = MODULEENTRY32A + type MODULEENTRY32* = MODULEENTRY32A type LPMODULEENTRY32* = ptr MODULEENTRY32 PROCESSENTRY32A* {.pure.} = object @@ -97,39 +101,94 @@ pcPriClassBase*: LONG dwFlags*: DWORD szExeFile*: array[MAX_PATH, CHAR] + PPROCESSENTRY32A* = ptr PROCESSENTRY32A LPPROCESSENTRY32A* = ptr PROCESSENTRY32A PMODULEENTRY32A* = ptr MODULEENTRY32A LPMODULEENTRY32A* = ptr MODULEENTRY32A + const TH32CS_SNAPHEAPLIST* = 0x00000001 TH32CS_SNAPPROCESS* = 0x00000002 TH32CS_SNAPTHREAD* = 0x00000004 TH32CS_SNAPMODULE* = 0x00000008 TH32CS_SNAPMODULE32* = 0x00000010 - TH32CS_SNAPALL* = TH32CS_SNAPHEAPLIST or TH32CS_SNAPPROCESS or TH32CS_SNAPTHREAD or TH32CS_SNAPMODULE + TH32CS_SNAPALL* = + TH32CS_SNAPHEAPLIST or TH32CS_SNAPPROCESS or TH32CS_SNAPTHREAD or TH32CS_SNAPMODULE TH32CS_INHERIT* = 0x80000000'i32 HF32_DEFAULT* = 1 HF32_SHARED* = 2 LF32_FIXED* = 0x00000001 LF32_FREE* = 0x00000002 LF32_MOVEABLE* = 0x00000004 -proc CreateToolhelp32Snapshot*(dwFlags: DWORD, th32ProcessID: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Heap32ListFirst*(hSnapshot: HANDLE, lphl: LPHEAPLIST32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Heap32ListNext*(hSnapshot: HANDLE, lphl: LPHEAPLIST32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Heap32First*(lphe: LPHEAPENTRY32, th32ProcessID: DWORD, th32HeapID: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Heap32Next*(lphe: LPHEAPENTRY32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Toolhelp32ReadProcessMemory*(th32ProcessID: DWORD, lpBaseAddress: LPCVOID, lpBuffer: LPVOID, cbRead: SIZE_T, lpNumberOfBytesRead: ptr SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Process32FirstW*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Process32NextW*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Process32FirstA*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32First".} -proc Process32NextA*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32Next".} -proc Thread32First*(hSnapshot: HANDLE, lpte: LPTHREADENTRY32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Thread32Next*(hSnapshot: HANDLE, lpte: LPTHREADENTRY32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Module32FirstW*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Module32NextW*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Module32FirstA*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32First".} -proc Module32NextA*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32Next".} +proc CreateToolhelp32Snapshot*( + dwFlags: DWORD, th32ProcessID: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Heap32ListFirst*( + hSnapshot: HANDLE, lphl: LPHEAPLIST32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Heap32ListNext*( + hSnapshot: HANDLE, lphl: LPHEAPLIST32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Heap32First*( + lphe: LPHEAPENTRY32, th32ProcessID: DWORD, th32HeapID: ULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Heap32Next*( + lphe: LPHEAPENTRY32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Toolhelp32ReadProcessMemory*( + th32ProcessID: DWORD, + lpBaseAddress: LPCVOID, + lpBuffer: LPVOID, + cbRead: SIZE_T, + lpNumberOfBytesRead: ptr SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Process32FirstW*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Process32NextW*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Process32FirstA*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32First".} + +proc Process32NextA*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32Next".} + +proc Thread32First*( + hSnapshot: HANDLE, lpte: LPTHREADENTRY32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Thread32Next*( + hSnapshot: HANDLE, lpte: LPTHREADENTRY32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Module32FirstW*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32W +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Module32NextW*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32W +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Module32FirstA*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32A +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32First".} + +proc Module32NextA*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32A +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32Next".} + when winimUnicode: type PROCESSENTRY32* = PROCESSENTRY32W @@ -137,10 +196,23 @@ LPPROCESSENTRY32* = ptr PROCESSENTRY32W PMODULEENTRY32* = ptr MODULEENTRY32W LMODULEENTRY32* = ptr MODULEENTRY32W - proc Process32First*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32FirstW".} - proc Process32Next*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32NextW".} - proc Module32First*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32FirstW".} - proc Module32Next*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32W): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32NextW".} + + proc Process32First*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32FirstW".} + + proc Process32Next*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32W + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Process32NextW".} + + proc Module32First*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32W + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32FirstW".} + + proc Module32Next*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32W + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "Module32NextW".} + when winimAnsi: type PROCESSENTRY32* = PROCESSENTRY32A @@ -148,7 +220,19 @@ LPPROCESSENTRY32* = ptr PROCESSENTRY32A PMODULEENTRY32* = ptr MODULEENTRY32A LMODULEENTRY32* = ptr MODULEENTRY32A - proc Process32First*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} - proc Process32Next*(hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} - proc Module32First*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} - proc Module32Next*(hSnapshot: HANDLE, lpme: LPMODULEENTRY32A): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + + proc Process32First*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + + proc Process32Next*( + hSnapshot: HANDLE, lppe: LPPROCESSENTRY32A + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + + proc Module32First*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32A + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + + proc Module32Next*( + hSnapshot: HANDLE, lpme: LPMODULEENTRY32A + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/uiautomation.nim --- a/semicongine/thirdparty/winim/winim/inc/uiautomation.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/uiautomation.nim Thu Aug 22 18:32:21 2024 +0700 @@ -70,6 +70,7 @@ HUIAPATTERNOBJECT* = HANDLE HUIATEXTRANGE* = HANDLE HUIAEVENT* = HANDLE + const REQUIRED_RPCSAL_H_VERSION* = 100 NavigateDirection_Parent* = 0 @@ -87,11 +88,11 @@ ProviderOptions_HasNativeIAccessible* = 0x80 ProviderOptions_UseClientCoordinates* = 0x100 StructureChangeType_ChildAdded* = 0 - StructureChangeType_ChildRemoved* = StructureChangeType_ChildAdded+1 - StructureChangeType_ChildrenInvalidated* = StructureChangeType_ChildRemoved+1 - StructureChangeType_ChildrenBulkAdded* = StructureChangeType_ChildrenInvalidated+1 - StructureChangeType_ChildrenBulkRemoved* = StructureChangeType_ChildrenBulkAdded+1 - StructureChangeType_ChildrenReordered* = StructureChangeType_ChildrenBulkRemoved+1 + StructureChangeType_ChildRemoved* = StructureChangeType_ChildAdded + 1 + StructureChangeType_ChildrenInvalidated* = StructureChangeType_ChildRemoved + 1 + StructureChangeType_ChildrenBulkAdded* = StructureChangeType_ChildrenInvalidated + 1 + StructureChangeType_ChildrenBulkRemoved* = StructureChangeType_ChildrenBulkAdded + 1 + StructureChangeType_ChildrenReordered* = StructureChangeType_ChildrenBulkRemoved + 1 TextEditChangeType_None* = 0 TextEditChangeType_AutoCorrect* = 1 TextEditChangeType_Composition* = 2 @@ -288,27 +289,41 @@ UIAutomationType_OutPoint* = UIAutomationType_Point or UIAutomationType_Out UIAutomationType_OutRect* = UIAutomationType_Rect or UIAutomationType_Out UIAutomationType_OutElement* = UIAutomationType_Element or UIAutomationType_Out - UIAutomationType_OutIntArray* = ( UIAutomationType_Int or UIAutomationType_Array ) or UIAutomationType_Out - UIAutomationType_OutBoolArray* = ( UIAutomationType_Bool or UIAutomationType_Array ) or UIAutomationType_Out - UIAutomationType_OutStringArray* = ( UIAutomationType_String or UIAutomationType_Array ) or UIAutomationType_Out - UIAutomationType_OutDoubleArray* = ( UIAutomationType_Double or UIAutomationType_Array ) or UIAutomationType_Out - UIAutomationType_OutPointArray* = ( UIAutomationType_Point or UIAutomationType_Array ) or UIAutomationType_Out - UIAutomationType_OutRectArray* = ( UIAutomationType_Rect or UIAutomationType_Array ) or UIAutomationType_Out - UIAutomationType_OutElementArray* = ( UIAutomationType_Element or UIAutomationType_Array ) or UIAutomationType_Out + UIAutomationType_OutIntArray* = + (UIAutomationType_Int or UIAutomationType_Array) or UIAutomationType_Out + UIAutomationType_OutBoolArray* = + (UIAutomationType_Bool or UIAutomationType_Array) or UIAutomationType_Out + UIAutomationType_OutStringArray* = + (UIAutomationType_String or UIAutomationType_Array) or UIAutomationType_Out + UIAutomationType_OutDoubleArray* = + (UIAutomationType_Double or UIAutomationType_Array) or UIAutomationType_Out + UIAutomationType_OutPointArray* = + (UIAutomationType_Point or UIAutomationType_Array) or UIAutomationType_Out + UIAutomationType_OutRectArray* = + (UIAutomationType_Rect or UIAutomationType_Array) or UIAutomationType_Out + UIAutomationType_OutElementArray* = + (UIAutomationType_Element or UIAutomationType_Array) or UIAutomationType_Out UIA_ScrollPatternNoScroll* = -1 IID_IRawElementProviderSimple* = DEFINE_GUID("d6dd68d1-86fd-4332-8666-9abedea2d24c") IID_IAccessibleEx* = DEFINE_GUID("f8b80ada-2c44-48d0-89be-5ff23c9cd875") IID_IRawElementProviderSimple2* = DEFINE_GUID("a0a839a9-8da1-4a82-806a-8e0d44e79f56") IID_IRawElementProviderSimple3* = DEFINE_GUID("fcf5d820-d7ec-4613-bdf6-42a84ce7daaf") - IID_IRawElementProviderFragmentRoot* = DEFINE_GUID("620ce2a5-ab8f-40a9-86cb-de3c75599b58") + IID_IRawElementProviderFragmentRoot* = + DEFINE_GUID("620ce2a5-ab8f-40a9-86cb-de3c75599b58") IID_IRawElementProviderFragment* = DEFINE_GUID("f7063da8-8359-439c-9297-bbc5299a7d87") - IID_IRawElementProviderAdviseEvents* = DEFINE_GUID("a407b27b-0f6d-4427-9292-473c7bf93258") - IID_IRawElementProviderHwndOverride* = DEFINE_GUID("1d5df27c-8947-4425-b8d9-79787bb460b8") + IID_IRawElementProviderAdviseEvents* = + DEFINE_GUID("a407b27b-0f6d-4427-9292-473c7bf93258") + IID_IRawElementProviderHwndOverride* = + DEFINE_GUID("1d5df27c-8947-4425-b8d9-79787bb460b8") IID_IProxyProviderWinEventSink* = DEFINE_GUID("4fd82b78-a43e-46ac-9803-0a6969c7c183") - IID_IProxyProviderWinEventHandler* = DEFINE_GUID("89592ad4-f4e0-43d5-a3b6-bad7e111b435") - IID_IRawElementProviderWindowlessSite* = DEFINE_GUID("0a2a93cc-bfad-42ac-9b2e-0991fb0d3ea0") - IID_IAccessibleHostingElementProviders* = DEFINE_GUID("33ac331b-943e-4020-b295-db37784974a3") - IID_IRawElementProviderHostingAccessibles* = DEFINE_GUID("24be0b07-d37d-487a-98cf-a13ed465e9b3") + IID_IProxyProviderWinEventHandler* = + DEFINE_GUID("89592ad4-f4e0-43d5-a3b6-bad7e111b435") + IID_IRawElementProviderWindowlessSite* = + DEFINE_GUID("0a2a93cc-bfad-42ac-9b2e-0991fb0d3ea0") + IID_IAccessibleHostingElementProviders* = + DEFINE_GUID("33ac331b-943e-4020-b295-db37784974a3") + IID_IRawElementProviderHostingAccessibles* = + DEFINE_GUID("24be0b07-d37d-487a-98cf-a13ed465e9b3") IID_IDockProvider* = DEFINE_GUID("159bc72c-4ad3-485e-9637-d7052edf0146") IID_IExpandCollapseProvider* = DEFINE_GUID("d847d3a5-cab0-4a98-8c32-ecb45c59ad24") IID_IGridProvider* = DEFINE_GUID("b17d6187-0907-464b-a168-0ef17a1572b1") @@ -346,7 +361,8 @@ IID_ITextRangeProvider2* = DEFINE_GUID("9bbce42c-1921-4f18-89ca-dba1910a0386") IID_ITextChildProvider* = DEFINE_GUID("4c2de2b9-c88f-4f88-a111-f1d336b7d1a9") IID_ICustomNavigationProvider* = DEFINE_GUID("2062a28a-8c07-4b94-8e12-7037c622aeb8") - IID_IUIAutomationPatternInstance* = DEFINE_GUID("c03a7fe4-9431-409f-bed8-ae7c2299bc8d") + IID_IUIAutomationPatternInstance* = + DEFINE_GUID("c03a7fe4-9431-409f-bed8-ae7c2299bc8d") IID_IUIAutomationPatternHandler* = DEFINE_GUID("d97022f3-a947-465e-8b2a-ac4315fa54e8") IID_IUIAutomationRegistrar* = DEFINE_GUID("8609c4ec-4a1a-4d88-a357-5a66e060e1cf") CLSID_CUIAutomationRegistrar* = DEFINE_GUID("6e29fabf-9977-42d1-8d0e-ca7e61ad87e6") @@ -356,12 +372,13 @@ TreeScope_Descendants* = 0x4 TreeScope_Parent* = 0x8 TreeScope_Ancestors* = 0x10 - TreeScope_Subtree* = ( TreeScope_Element or TreeScope_Children ) or TreeScope_Descendants + TreeScope_Subtree* = + (TreeScope_Element or TreeScope_Children) or TreeScope_Descendants PropertyConditionFlags_None* = 0 PropertyConditionFlags_IgnoreCase* = 0x1 PropertyConditionFlags_MatchSubstring* = 0x2 AutomationElementMode_None* = 0 - AutomationElementMode_Full* = AutomationElementMode_None+1 + AutomationElementMode_Full* = AutomationElementMode_None + 1 TreeTraversalOptions_Default* = 0 TreeTraversalOptions_PostOrder* = 0x1 TreeTraversalOptions_LastToFirstOrder* = 0x2 @@ -763,37 +780,56 @@ IID_IUIAutomationElementArray* = DEFINE_GUID("14314595-b4bc-4055-95f2-58f2e42c9855") IID_IUIAutomationCondition* = DEFINE_GUID("352ffba8-0973-437c-a61f-f64cafd81df9") IID_IUIAutomationBoolCondition* = DEFINE_GUID("1b4e1f2e-75eb-4d0b-8952-5a69988e2307") - IID_IUIAutomationPropertyCondition* = DEFINE_GUID("99ebf2cb-5578-4267-9ad4-afd6ea77e94b") + IID_IUIAutomationPropertyCondition* = + DEFINE_GUID("99ebf2cb-5578-4267-9ad4-afd6ea77e94b") IID_IUIAutomationAndCondition* = DEFINE_GUID("a7d0af36-b912-45fe-9855-091ddc174aec") IID_IUIAutomationOrCondition* = DEFINE_GUID("8753f032-3db1-47b5-a1fc-6e34a266c712") IID_IUIAutomationNotCondition* = DEFINE_GUID("f528b657-847b-498c-8896-d52b565407a1") IID_IUIAutomationCacheRequest* = DEFINE_GUID("b32a92b5-bc25-4078-9c08-d7ee95c48e03") IID_IUIAutomationTreeWalker* = DEFINE_GUID("4042c624-389c-4afc-a630-9df854a541fc") IID_IUIAutomationEventHandler* = DEFINE_GUID("146c3c17-f12e-4e22-8c27-f894b9b79c69") - IID_IUIAutomationPropertyChangedEventHandler* = DEFINE_GUID("40cd37d4-c756-4b0c-8c6f-bddfeeb13b50") - IID_IUIAutomationStructureChangedEventHandler* = DEFINE_GUID("e81d1b4e-11c5-42f8-9754-e7036c79f054") - IID_IUIAutomationFocusChangedEventHandler* = DEFINE_GUID("c270f6b5-5c69-4290-9745-7a7f97169468") - IID_IUIAutomationTextEditTextChangedEventHandler* = DEFINE_GUID("92faa680-e704-4156-931a-e32d5bb38f3f") - IID_IUIAutomationChangesEventHandler* = DEFINE_GUID("58edca55-2c3e-4980-b1b9-56c17f27a2a0") - IID_IUIAutomationNotificationEventHandler* = DEFINE_GUID("c7cb2637-e6c2-4d0c-85de-4948c02175c7") + IID_IUIAutomationPropertyChangedEventHandler* = + DEFINE_GUID("40cd37d4-c756-4b0c-8c6f-bddfeeb13b50") + IID_IUIAutomationStructureChangedEventHandler* = + DEFINE_GUID("e81d1b4e-11c5-42f8-9754-e7036c79f054") + IID_IUIAutomationFocusChangedEventHandler* = + DEFINE_GUID("c270f6b5-5c69-4290-9745-7a7f97169468") + IID_IUIAutomationTextEditTextChangedEventHandler* = + DEFINE_GUID("92faa680-e704-4156-931a-e32d5bb38f3f") + IID_IUIAutomationChangesEventHandler* = + DEFINE_GUID("58edca55-2c3e-4980-b1b9-56c17f27a2a0") + IID_IUIAutomationNotificationEventHandler* = + DEFINE_GUID("c7cb2637-e6c2-4d0c-85de-4948c02175c7") IID_IUIAutomationInvokePattern* = DEFINE_GUID("fb377fbe-8ea6-46d5-9c73-6499642d3059") IID_IUIAutomationDockPattern* = DEFINE_GUID("fde5ef97-1464-48f6-90bf-43d0948e86ec") - IID_IUIAutomationExpandCollapsePattern* = DEFINE_GUID("619be086-1f4e-4ee4-bafa-210128738730") + IID_IUIAutomationExpandCollapsePattern* = + DEFINE_GUID("619be086-1f4e-4ee4-bafa-210128738730") IID_IUIAutomationGridPattern* = DEFINE_GUID("414c3cdc-856b-4f5b-8538-3131c6302550") - IID_IUIAutomationGridItemPattern* = DEFINE_GUID("78f8ef57-66c3-4e09-bd7c-e79b2004894d") - IID_IUIAutomationMultipleViewPattern* = DEFINE_GUID("8d253c91-1dc5-4bb5-b18f-ade16fa495e8") - IID_IUIAutomationObjectModelPattern* = DEFINE_GUID("71c284b3-c14d-4d14-981e-19751b0d756d") - IID_IUIAutomationRangeValuePattern* = DEFINE_GUID("59213f4f-7346-49e5-b120-80555987a148") + IID_IUIAutomationGridItemPattern* = + DEFINE_GUID("78f8ef57-66c3-4e09-bd7c-e79b2004894d") + IID_IUIAutomationMultipleViewPattern* = + DEFINE_GUID("8d253c91-1dc5-4bb5-b18f-ade16fa495e8") + IID_IUIAutomationObjectModelPattern* = + DEFINE_GUID("71c284b3-c14d-4d14-981e-19751b0d756d") + IID_IUIAutomationRangeValuePattern* = + DEFINE_GUID("59213f4f-7346-49e5-b120-80555987a148") IID_IUIAutomationScrollPattern* = DEFINE_GUID("88f4d42a-e881-459d-a77c-73bbbb7e02dc") - IID_IUIAutomationScrollItemPattern* = DEFINE_GUID("b488300f-d015-4f19-9c29-bb595e3645ef") - IID_IUIAutomationSelectionPattern* = DEFINE_GUID("5ed5202e-b2ac-47a6-b638-4b0bf140d78e") - IID_IUIAutomationSelectionPattern2* = DEFINE_GUID("0532bfae-c011-4e32-a343-6d642d798555") - IID_IUIAutomationSelectionItemPattern* = DEFINE_GUID("a8efa66a-0fda-421a-9194-38021f3578ea") - IID_IUIAutomationSynchronizedInputPattern* = DEFINE_GUID("2233be0b-afb7-448b-9fda-3b378aa5eae1") + IID_IUIAutomationScrollItemPattern* = + DEFINE_GUID("b488300f-d015-4f19-9c29-bb595e3645ef") + IID_IUIAutomationSelectionPattern* = + DEFINE_GUID("5ed5202e-b2ac-47a6-b638-4b0bf140d78e") + IID_IUIAutomationSelectionPattern2* = + DEFINE_GUID("0532bfae-c011-4e32-a343-6d642d798555") + IID_IUIAutomationSelectionItemPattern* = + DEFINE_GUID("a8efa66a-0fda-421a-9194-38021f3578ea") + IID_IUIAutomationSynchronizedInputPattern* = + DEFINE_GUID("2233be0b-afb7-448b-9fda-3b378aa5eae1") IID_IUIAutomationTablePattern* = DEFINE_GUID("620e691c-ea96-4710-a850-754b24ce2417") - IID_IUIAutomationTableItemPattern* = DEFINE_GUID("0b964eb3-ef2e-4464-9c79-61d61737a27e") + IID_IUIAutomationTableItemPattern* = + DEFINE_GUID("0b964eb3-ef2e-4464-9c79-61d61737a27e") IID_IUIAutomationTogglePattern* = DEFINE_GUID("94cf8058-9b8d-4ab9-8bfd-4cd0a33c8c70") - IID_IUIAutomationTransformPattern* = DEFINE_GUID("a9b55844-a55d-4ef0-926d-569c16ff89bb") + IID_IUIAutomationTransformPattern* = + DEFINE_GUID("a9b55844-a55d-4ef0-926d-569c16ff89bb") IID_IUIAutomationValuePattern* = DEFINE_GUID("a94cd8b1-0844-4cd6-9d2d-640537ab39e9") IID_IUIAutomationWindowPattern* = DEFINE_GUID("0faef453-9208-43ef-bbb2-3b485177864f") IID_IUIAutomationTextRange* = DEFINE_GUID("a543cc6a-f4ae-494b-8239-c814481187a8") @@ -802,20 +838,32 @@ IID_IUIAutomationTextRangeArray* = DEFINE_GUID("ce4ae76a-e717-4c98-81ea-47371d028eb6") IID_IUIAutomationTextPattern* = DEFINE_GUID("32eba289-3583-42c9-9c59-3b6d9a1e9b6a") IID_IUIAutomationTextPattern2* = DEFINE_GUID("506a921a-fcc9-409f-b23b-37eb74106872") - IID_IUIAutomationTextEditPattern* = DEFINE_GUID("17e21576-996c-4870-99d9-bff323380c06") - IID_IUIAutomationCustomNavigationPattern* = DEFINE_GUID("01ea217a-1766-47ed-a6cc-acf492854b1f") - IID_IUIAutomationActiveTextPositionChangedEventHandler* = DEFINE_GUID("f97933b0-8dae-4496-8997-5ba015fe0d82") - IID_IUIAutomationLegacyIAccessiblePattern* = DEFINE_GUID("828055ad-355b-4435-86d5-3b51c14a9b1b") - IID_IUIAutomationItemContainerPattern* = DEFINE_GUID("c690fdb2-27a8-423c-812d-429773c9084e") - IID_IUIAutomationVirtualizedItemPattern* = DEFINE_GUID("6ba3d7a6-04cf-4f11-8793-a8d1cde9969f") - IID_IUIAutomationAnnotationPattern* = DEFINE_GUID("9a175b21-339e-41b1-8e8b-623f6b681098") + IID_IUIAutomationTextEditPattern* = + DEFINE_GUID("17e21576-996c-4870-99d9-bff323380c06") + IID_IUIAutomationCustomNavigationPattern* = + DEFINE_GUID("01ea217a-1766-47ed-a6cc-acf492854b1f") + IID_IUIAutomationActiveTextPositionChangedEventHandler* = + DEFINE_GUID("f97933b0-8dae-4496-8997-5ba015fe0d82") + IID_IUIAutomationLegacyIAccessiblePattern* = + DEFINE_GUID("828055ad-355b-4435-86d5-3b51c14a9b1b") + IID_IUIAutomationItemContainerPattern* = + DEFINE_GUID("c690fdb2-27a8-423c-812d-429773c9084e") + IID_IUIAutomationVirtualizedItemPattern* = + DEFINE_GUID("6ba3d7a6-04cf-4f11-8793-a8d1cde9969f") + IID_IUIAutomationAnnotationPattern* = + DEFINE_GUID("9a175b21-339e-41b1-8e8b-623f6b681098") IID_IUIAutomationStylesPattern* = DEFINE_GUID("85b5f0a2-bd79-484a-ad2b-388c9838d5fb") - IID_IUIAutomationSpreadsheetPattern* = DEFINE_GUID("7517a7c8-faae-4de9-9f08-29b91e8595c1") - IID_IUIAutomationSpreadsheetItemPattern* = DEFINE_GUID("7d4fb86c-8d34-40e1-8e83-62c15204e335") - IID_IUIAutomationTransformPattern2* = DEFINE_GUID("6d74d017-6ecb-4381-b38b-3c17a48ff1c2") - IID_IUIAutomationTextChildPattern* = DEFINE_GUID("6552b038-ae05-40c8-abfd-aa08352aab86") + IID_IUIAutomationSpreadsheetPattern* = + DEFINE_GUID("7517a7c8-faae-4de9-9f08-29b91e8595c1") + IID_IUIAutomationSpreadsheetItemPattern* = + DEFINE_GUID("7d4fb86c-8d34-40e1-8e83-62c15204e335") + IID_IUIAutomationTransformPattern2* = + DEFINE_GUID("6d74d017-6ecb-4381-b38b-3c17a48ff1c2") + IID_IUIAutomationTextChildPattern* = + DEFINE_GUID("6552b038-ae05-40c8-abfd-aa08352aab86") IID_IUIAutomationDragPattern* = DEFINE_GUID("1dc7b570-1f54-4bad-bcda-d36a722fb7bd") - IID_IUIAutomationDropTargetPattern* = DEFINE_GUID("69a095f7-eee4-430e-a46b-fb73b1ae39a5") + IID_IUIAutomationDropTargetPattern* = + DEFINE_GUID("69a095f7-eee4-430e-a46b-fb73b1ae39a5") IID_IUIAutomationElement2* = DEFINE_GUID("6749c683-f70d-4487-a698-5f79d55290d6") IID_IUIAutomationElement3* = DEFINE_GUID("8471df34-aee0-4a01-a7de-7db9af12c296") IID_IUIAutomationElement4* = DEFINE_GUID("3b6e233c-52fb-4063-a4c9-77c075c2a06b") @@ -825,9 +873,12 @@ IID_IUIAutomationElement8* = DEFINE_GUID("8c60217d-5411-4cde-bcc0-1ceda223830c") IID_IUIAutomationElement9* = DEFINE_GUID("39325fac-039d-440e-a3a3-5eb81a5cecc3") IID_IUIAutomationProxyFactory* = DEFINE_GUID("85b94ecd-849d-42b6-b94d-d6db23fdf5a4") - IID_IUIAutomationProxyFactoryEntry* = DEFINE_GUID("d50e472e-b64b-490c-bca1-d30696f9f289") - IID_IUIAutomationProxyFactoryMapping* = DEFINE_GUID("09e31e18-872d-4873-93d1-1e541ec133fd") - IID_IUIAutomationEventHandlerGroup* = DEFINE_GUID("c9ee12f2-c13b-4408-997c-639914377f4e") + IID_IUIAutomationProxyFactoryEntry* = + DEFINE_GUID("d50e472e-b64b-490c-bca1-d30696f9f289") + IID_IUIAutomationProxyFactoryMapping* = + DEFINE_GUID("09e31e18-872d-4873-93d1-1e541ec133fd") + IID_IUIAutomationEventHandlerGroup* = + DEFINE_GUID("c9ee12f2-c13b-4408-997c-639914377f4e") IID_IUIAutomation* = DEFINE_GUID("30cbe57d-d9d0-452a-ab13-7ac5ac4825ee") IID_IUIAutomation2* = DEFINE_GUID("34723aff-0c9d-49d0-9896-7ab52df8cd8a") IID_IUIAutomation3* = DEFINE_GUID("73d768da-9b51-4b89-936e-c209290973e7") @@ -849,12 +900,14 @@ BoundingRectangle_Property_GUID* = DEFINE_GUID("7bbfe8b2-3bfc-48dd-b729-c794b846e9a1") ProcessId_Property_GUID* = DEFINE_GUID("40499998-9c31-4245-a403-87320e59eaf6") ControlType_Property_GUID* = DEFINE_GUID("ca774fea-28ac-4bc2-94ca-acec6d6c10a3") - LocalizedControlType_Property_GUID* = DEFINE_GUID("8763404f-a1bd-452a-89c4-3f01d3833806") + LocalizedControlType_Property_GUID* = + DEFINE_GUID("8763404f-a1bd-452a-89c4-3f01d3833806") Name_Property_GUID* = DEFINE_GUID("c3a6921b-4a99-44f1-bca6-61187052c431") AcceleratorKey_Property_GUID* = DEFINE_GUID("514865df-2557-4cb9-aeed-6ced084ce52c") AccessKey_Property_GUID* = DEFINE_GUID("06827b12-a7f9-4a15-917c-ffa5ad3eb0a7") HasKeyboardFocus_Property_GUID* = DEFINE_GUID("cf8afd39-3f46-4800-9656-b2bf12529905") - IsKeyboardFocusable_Property_GUID* = DEFINE_GUID("f7b8552a-0859-4b37-b9cb-51e72092f29f") + IsKeyboardFocusable_Property_GUID* = + DEFINE_GUID("f7b8552a-0859-4b37-b9cb-51e72092f29f") IsEnabled_Property_GUID* = DEFINE_GUID("2109427f-da60-4fed-bf1b-264bdce6eb3a") AutomationId_Property_GUID* = DEFINE_GUID("c82c0500-b60e-4310-a267-303c531f8ee5") ClassName_Property_GUID* = DEFINE_GUID("157b7215-894f-4b65-84e2-aac0da08b16b") @@ -865,7 +918,8 @@ IsContentElement_Property_GUID* = DEFINE_GUID("4bda64a8-f5d8-480b-8155-ef2e89adb672") LabeledBy_Property_GUID* = DEFINE_GUID("e5b8924b-fc8a-4a35-8031-cf78ac43e55e") IsPassword_Property_GUID* = DEFINE_GUID("e8482eb1-687c-497b-bebc-03be53ec1454") - NewNativeWindowHandle_Property_GUID* = DEFINE_GUID("5196b33b-380a-4982-95e1-91f3ef60e024") + NewNativeWindowHandle_Property_GUID* = + DEFINE_GUID("5196b33b-380a-4982-95e1-91f3ef60e024") ItemType_Property_GUID* = DEFINE_GUID("cdda434d-6222-413b-a68a-325dd1d40f39") IsOffscreen_Property_GUID* = DEFINE_GUID("03c3d160-db79-42db-a2ef-1c231eede507") Orientation_Property_GUID* = DEFINE_GUID("a01eee62-3884-4415-887e-678ec21e39ba") @@ -874,46 +928,83 @@ ItemStatus_Property_GUID* = DEFINE_GUID("51de0321-3973-43e7-8913-0b08e813c37f") AriaRole_Property_GUID* = DEFINE_GUID("dd207b95-be4a-4e0d-b727-63ace94b6916") AriaProperties_Property_GUID* = DEFINE_GUID("4213678c-e025-4922-beb5-e43ba08e6221") - IsDataValidForForm_Property_GUID* = DEFINE_GUID("445ac684-c3fc-4dd9-acf8-845a579296ba") + IsDataValidForForm_Property_GUID* = + DEFINE_GUID("445ac684-c3fc-4dd9-acf8-845a579296ba") ControllerFor_Property_GUID* = DEFINE_GUID("51124c8a-a5d2-4f13-9be6-7fa8ba9d3a90") DescribedBy_Property_GUID* = DEFINE_GUID("7c5865b8-9992-40fd-8db0-6bf1d317f998") FlowsTo_Property_GUID* = DEFINE_GUID("e4f33d20-559a-47fb-a830-f9cb4ff1a70a") - ProviderDescription_Property_GUID* = DEFINE_GUID("dca5708a-c16b-4cd9-b889-beb16a804904") - OptimizeForVisualContent_Property_GUID* = DEFINE_GUID("6a852250-c75a-4e5d-b858-e381b0f78861") - IsDockPatternAvailable_Property_GUID* = DEFINE_GUID("2600a4c4-2ff8-4c96-ae31-8fe619a13c6c") - IsExpandCollapsePatternAvailable_Property_GUID* = DEFINE_GUID("929d3806-5287-4725-aa16-222afc63d595") - IsGridItemPatternAvailable_Property_GUID* = DEFINE_GUID("5a43e524-f9a2-4b12-84c8-b48a3efedd34") - IsGridPatternAvailable_Property_GUID* = DEFINE_GUID("5622c26c-f0ef-4f3b-97cb-714c0868588b") - IsInvokePatternAvailable_Property_GUID* = DEFINE_GUID("4e725738-8364-4679-aa6c-f3f41931f750") - IsMultipleViewPatternAvailable_Property_GUID* = DEFINE_GUID("ff0a31eb-8e25-469d-8d6e-e771a27c1b90") - IsRangeValuePatternAvailable_Property_GUID* = DEFINE_GUID("fda4244a-eb4d-43ff-b5ad-ed36d373ec4c") - IsScrollPatternAvailable_Property_GUID* = DEFINE_GUID("3ebb7b4a-828a-4b57-9d22-2fea1632ed0d") - IsScrollItemPatternAvailable_Property_GUID* = DEFINE_GUID("1cad1a05-0927-4b76-97e1-0fcdb209b98a") - IsSelectionItemPatternAvailable_Property_GUID* = DEFINE_GUID("8becd62d-0bc3-4109-bee2-8e6715290e68") - IsSelectionPatternAvailable_Property_GUID* = DEFINE_GUID("f588acbe-c769-4838-9a60-2686dc1188c4") - IsTablePatternAvailable_Property_GUID* = DEFINE_GUID("cb83575f-45c2-4048-9c76-159715a139df") - IsTableItemPatternAvailable_Property_GUID* = DEFINE_GUID("eb36b40d-8ea4-489b-a013-e60d5951fe34") - IsTextPatternAvailable_Property_GUID* = DEFINE_GUID("fbe2d69d-aff6-4a45-82e2-fc92a82f5917") - IsTogglePatternAvailable_Property_GUID* = DEFINE_GUID("78686d53-fcd0-4b83-9b78-5832ce63bb5b") - IsTransformPatternAvailable_Property_GUID* = DEFINE_GUID("a7f78804-d68b-4077-a5c6-7a5ea1ac31c5") - IsValuePatternAvailable_Property_GUID* = DEFINE_GUID("0b5020a7-2119-473b-be37-5ceb98bbfb22") - IsWindowPatternAvailable_Property_GUID* = DEFINE_GUID("e7a57bb1-5888-4155-98dc-b422fd57f2bc") - IsLegacyIAccessiblePatternAvailable_Property_GUID* = DEFINE_GUID("d8ebd0c7-929a-4ee7-8d3a-d3d94413027b") - IsItemContainerPatternAvailable_Property_GUID* = DEFINE_GUID("624b5ca7-fe40-4957-a019-20c4cf11920f") - IsVirtualizedItemPatternAvailable_Property_GUID* = DEFINE_GUID("302cb151-2ac8-45d6-977b-d2b3a5a53f20") - IsSynchronizedInputPatternAvailable_Property_GUID* = DEFINE_GUID("75d69cc5-d2bf-4943-876e-b45b62a6cc66") - IsObjectModelPatternAvailable_Property_GUID* = DEFINE_GUID("6b21d89b-2841-412f-8ef2-15ca952318ba") - IsAnnotationPatternAvailable_Property_GUID* = DEFINE_GUID("0b5b3238-6d5c-41b6-bcc4-5e807f6551c4") - IsTextPattern2Available_Property_GUID* = DEFINE_GUID("41cf921d-e3f1-4b22-9c81-e1c3ed331c22") - IsTextEditPatternAvailable_Property_GUID* = DEFINE_GUID("7843425c-8b32-484c-9ab5-e3200571ffda") - IsCustomNavigationPatternAvailable_Property_GUID* = DEFINE_GUID("8f8e80d4-2351-48e0-874a-54aa7313889a") - IsStylesPatternAvailable_Property_GUID* = DEFINE_GUID("27f353d3-459c-4b59-a490-50611dacafb5") - IsSpreadsheetPatternAvailable_Property_GUID* = DEFINE_GUID("6ff43732-e4b4-4555-97bc-ecdbbc4d1888") - IsSpreadsheetItemPatternAvailable_Property_GUID* = DEFINE_GUID("9fe79b2a-2f94-43fd-996b-549e316f4acd") - IsTransformPattern2Available_Property_GUID* = DEFINE_GUID("25980b4b-be04-4710-ab4a-fda31dbd2895") - IsTextChildPatternAvailable_Property_GUID* = DEFINE_GUID("559e65df-30ff-43b5-b5ed-5b283b80c7e9") - IsDragPatternAvailable_Property_GUID* = DEFINE_GUID("e997a7b7-1d39-4ca7-be0f-277fcf5605cc") - IsDropTargetPatternAvailable_Property_GUID* = DEFINE_GUID("0686b62e-8e19-4aaf-873d-384f6d3b92be") + ProviderDescription_Property_GUID* = + DEFINE_GUID("dca5708a-c16b-4cd9-b889-beb16a804904") + OptimizeForVisualContent_Property_GUID* = + DEFINE_GUID("6a852250-c75a-4e5d-b858-e381b0f78861") + IsDockPatternAvailable_Property_GUID* = + DEFINE_GUID("2600a4c4-2ff8-4c96-ae31-8fe619a13c6c") + IsExpandCollapsePatternAvailable_Property_GUID* = + DEFINE_GUID("929d3806-5287-4725-aa16-222afc63d595") + IsGridItemPatternAvailable_Property_GUID* = + DEFINE_GUID("5a43e524-f9a2-4b12-84c8-b48a3efedd34") + IsGridPatternAvailable_Property_GUID* = + DEFINE_GUID("5622c26c-f0ef-4f3b-97cb-714c0868588b") + IsInvokePatternAvailable_Property_GUID* = + DEFINE_GUID("4e725738-8364-4679-aa6c-f3f41931f750") + IsMultipleViewPatternAvailable_Property_GUID* = + DEFINE_GUID("ff0a31eb-8e25-469d-8d6e-e771a27c1b90") + IsRangeValuePatternAvailable_Property_GUID* = + DEFINE_GUID("fda4244a-eb4d-43ff-b5ad-ed36d373ec4c") + IsScrollPatternAvailable_Property_GUID* = + DEFINE_GUID("3ebb7b4a-828a-4b57-9d22-2fea1632ed0d") + IsScrollItemPatternAvailable_Property_GUID* = + DEFINE_GUID("1cad1a05-0927-4b76-97e1-0fcdb209b98a") + IsSelectionItemPatternAvailable_Property_GUID* = + DEFINE_GUID("8becd62d-0bc3-4109-bee2-8e6715290e68") + IsSelectionPatternAvailable_Property_GUID* = + DEFINE_GUID("f588acbe-c769-4838-9a60-2686dc1188c4") + IsTablePatternAvailable_Property_GUID* = + DEFINE_GUID("cb83575f-45c2-4048-9c76-159715a139df") + IsTableItemPatternAvailable_Property_GUID* = + DEFINE_GUID("eb36b40d-8ea4-489b-a013-e60d5951fe34") + IsTextPatternAvailable_Property_GUID* = + DEFINE_GUID("fbe2d69d-aff6-4a45-82e2-fc92a82f5917") + IsTogglePatternAvailable_Property_GUID* = + DEFINE_GUID("78686d53-fcd0-4b83-9b78-5832ce63bb5b") + IsTransformPatternAvailable_Property_GUID* = + DEFINE_GUID("a7f78804-d68b-4077-a5c6-7a5ea1ac31c5") + IsValuePatternAvailable_Property_GUID* = + DEFINE_GUID("0b5020a7-2119-473b-be37-5ceb98bbfb22") + IsWindowPatternAvailable_Property_GUID* = + DEFINE_GUID("e7a57bb1-5888-4155-98dc-b422fd57f2bc") + IsLegacyIAccessiblePatternAvailable_Property_GUID* = + DEFINE_GUID("d8ebd0c7-929a-4ee7-8d3a-d3d94413027b") + IsItemContainerPatternAvailable_Property_GUID* = + DEFINE_GUID("624b5ca7-fe40-4957-a019-20c4cf11920f") + IsVirtualizedItemPatternAvailable_Property_GUID* = + DEFINE_GUID("302cb151-2ac8-45d6-977b-d2b3a5a53f20") + IsSynchronizedInputPatternAvailable_Property_GUID* = + DEFINE_GUID("75d69cc5-d2bf-4943-876e-b45b62a6cc66") + IsObjectModelPatternAvailable_Property_GUID* = + DEFINE_GUID("6b21d89b-2841-412f-8ef2-15ca952318ba") + IsAnnotationPatternAvailable_Property_GUID* = + DEFINE_GUID("0b5b3238-6d5c-41b6-bcc4-5e807f6551c4") + IsTextPattern2Available_Property_GUID* = + DEFINE_GUID("41cf921d-e3f1-4b22-9c81-e1c3ed331c22") + IsTextEditPatternAvailable_Property_GUID* = + DEFINE_GUID("7843425c-8b32-484c-9ab5-e3200571ffda") + IsCustomNavigationPatternAvailable_Property_GUID* = + DEFINE_GUID("8f8e80d4-2351-48e0-874a-54aa7313889a") + IsStylesPatternAvailable_Property_GUID* = + DEFINE_GUID("27f353d3-459c-4b59-a490-50611dacafb5") + IsSpreadsheetPatternAvailable_Property_GUID* = + DEFINE_GUID("6ff43732-e4b4-4555-97bc-ecdbbc4d1888") + IsSpreadsheetItemPatternAvailable_Property_GUID* = + DEFINE_GUID("9fe79b2a-2f94-43fd-996b-549e316f4acd") + IsTransformPattern2Available_Property_GUID* = + DEFINE_GUID("25980b4b-be04-4710-ab4a-fda31dbd2895") + IsTextChildPatternAvailable_Property_GUID* = + DEFINE_GUID("559e65df-30ff-43b5-b5ed-5b283b80c7e9") + IsDragPatternAvailable_Property_GUID* = + DEFINE_GUID("e997a7b7-1d39-4ca7-be0f-277fcf5605cc") + IsDropTargetPatternAvailable_Property_GUID* = + DEFINE_GUID("0686b62e-8e19-4aaf-873d-384f6d3b92be") IsPeripheral_Property_GUID* = DEFINE_GUID("da758276-7ed5-49d4-8e68-ecc9a2d300dd") PositionInSet_Property_GUID* = DEFINE_GUID("33d1dc54-641e-4d76-a6b1-13f341c1f896") SizeOfSet_Property_GUID* = DEFINE_GUID("1600d33c-3b9f-4369-9431-aa293f344cf1") @@ -921,89 +1012,146 @@ AnnotationTypes_Property_GUID* = DEFINE_GUID("64b71f76-53c4-4696-a219-20e940c9a176") AnnotationObjects_Property_GUID* = DEFINE_GUID("310910c8-7c6e-4f20-becd-4aaf6d191156") LandmarkType_Property_GUID* = DEFINE_GUID("454045f2-6f61-49f7-a4f8-b5f0cf82da1e") - LocalizedLandmarkType_Property_GUID* = DEFINE_GUID("7ac81980-eafb-4fb2-bf91-f485bef5e8e1") + LocalizedLandmarkType_Property_GUID* = + DEFINE_GUID("7ac81980-eafb-4fb2-bf91-f485bef5e8e1") FullDescription_Property_GUID* = DEFINE_GUID("0d4450ff-6aef-4f33-95dd-7befa72a4391") Value_Value_Property_GUID* = DEFINE_GUID("e95f5e64-269f-4a85-ba99-4092c3ea2986") Value_IsReadOnly_Property_GUID* = DEFINE_GUID("eb090f30-e24c-4799-a705-0d247bc037f8") RangeValue_Value_Property_GUID* = DEFINE_GUID("131f5d98-c50c-489d-abe5-ae220898c5f7") - RangeValue_IsReadOnly_Property_GUID* = DEFINE_GUID("25fa1055-debf-4373-a79e-1f1a1908d3c4") - RangeValue_Minimum_Property_GUID* = DEFINE_GUID("78cbd3b2-684d-4860-af93-d1f95cb022fd") - RangeValue_Maximum_Property_GUID* = DEFINE_GUID("19319914-f979-4b35-a1a6-d37e05433473") - RangeValue_LargeChange_Property_GUID* = DEFINE_GUID("a1f96325-3a3d-4b44-8e1f-4a46d9844019") - RangeValue_SmallChange_Property_GUID* = DEFINE_GUID("81c2c457-3941-4107-9975-139760f7c072") - Scroll_HorizontalScrollPercent_Property_GUID* = DEFINE_GUID("c7c13c0e-eb21-47ff-acc4-b5a3350f5191") - Scroll_HorizontalViewSize_Property_GUID* = DEFINE_GUID("70c2e5d4-fcb0-4713-a9aa-af92ff79e4cd") - Scroll_VerticalScrollPercent_Property_GUID* = DEFINE_GUID("6c8d7099-b2a8-4948-bff7-3cf9058bfefb") - Scroll_VerticalViewSize_Property_GUID* = DEFINE_GUID("de6a2e22-d8c7-40c5-83ba-e5f681d53108") - Scroll_HorizontallyScrollable_Property_GUID* = DEFINE_GUID("8b925147-28cd-49ae-bd63-f44118d2e719") - Scroll_VerticallyScrollable_Property_GUID* = DEFINE_GUID("89164798-0068-4315-b89a-1e7cfbbc3dfc") - Selection_Selection_Property_GUID* = DEFINE_GUID("aa6dc2a2-0e2b-4d38-96d5-34e470b81853") - Selection_CanSelectMultiple_Property_GUID* = DEFINE_GUID("49d73da5-c883-4500-883d-8fcf8daf6cbe") - Selection_IsSelectionRequired_Property_GUID* = DEFINE_GUID("b1ae4422-63fe-44e7-a5a5-a738c829b19a") + RangeValue_IsReadOnly_Property_GUID* = + DEFINE_GUID("25fa1055-debf-4373-a79e-1f1a1908d3c4") + RangeValue_Minimum_Property_GUID* = + DEFINE_GUID("78cbd3b2-684d-4860-af93-d1f95cb022fd") + RangeValue_Maximum_Property_GUID* = + DEFINE_GUID("19319914-f979-4b35-a1a6-d37e05433473") + RangeValue_LargeChange_Property_GUID* = + DEFINE_GUID("a1f96325-3a3d-4b44-8e1f-4a46d9844019") + RangeValue_SmallChange_Property_GUID* = + DEFINE_GUID("81c2c457-3941-4107-9975-139760f7c072") + Scroll_HorizontalScrollPercent_Property_GUID* = + DEFINE_GUID("c7c13c0e-eb21-47ff-acc4-b5a3350f5191") + Scroll_HorizontalViewSize_Property_GUID* = + DEFINE_GUID("70c2e5d4-fcb0-4713-a9aa-af92ff79e4cd") + Scroll_VerticalScrollPercent_Property_GUID* = + DEFINE_GUID("6c8d7099-b2a8-4948-bff7-3cf9058bfefb") + Scroll_VerticalViewSize_Property_GUID* = + DEFINE_GUID("de6a2e22-d8c7-40c5-83ba-e5f681d53108") + Scroll_HorizontallyScrollable_Property_GUID* = + DEFINE_GUID("8b925147-28cd-49ae-bd63-f44118d2e719") + Scroll_VerticallyScrollable_Property_GUID* = + DEFINE_GUID("89164798-0068-4315-b89a-1e7cfbbc3dfc") + Selection_Selection_Property_GUID* = + DEFINE_GUID("aa6dc2a2-0e2b-4d38-96d5-34e470b81853") + Selection_CanSelectMultiple_Property_GUID* = + DEFINE_GUID("49d73da5-c883-4500-883d-8fcf8daf6cbe") + Selection_IsSelectionRequired_Property_GUID* = + DEFINE_GUID("b1ae4422-63fe-44e7-a5a5-a738c829b19a") Grid_RowCount_Property_GUID* = DEFINE_GUID("2a9505bf-c2eb-4fb6-b356-8245ae53703e") Grid_ColumnCount_Property_GUID* = DEFINE_GUID("fe96f375-44aa-4536-ac7a-2a75d71a3efc") GridItem_Row_Property_GUID* = DEFINE_GUID("6223972a-c945-4563-9329-fdc974af2553") GridItem_Column_Property_GUID* = DEFINE_GUID("c774c15c-62c0-4519-8bdc-47be573c8ad5") GridItem_RowSpan_Property_GUID* = DEFINE_GUID("4582291c-466b-4e93-8e83-3d1715ec0c5e") - GridItem_ColumnSpan_Property_GUID* = DEFINE_GUID("583ea3f5-86d0-4b08-a6ec-2c5463ffc109") + GridItem_ColumnSpan_Property_GUID* = + DEFINE_GUID("583ea3f5-86d0-4b08-a6ec-2c5463ffc109") GridItem_Parent_Property_GUID* = DEFINE_GUID("9d912252-b97f-4ecc-8510-ea0e33427c72") Dock_DockPosition_Property_GUID* = DEFINE_GUID("6d67f02e-c0b0-4b10-b5b9-18d6ecf98760") - ExpandCollapse_ExpandCollapseState_Property_GUID* = DEFINE_GUID("275a4c48-85a7-4f69-aba0-af157610002b") - MultipleView_CurrentView_Property_GUID* = DEFINE_GUID("7a81a67a-b94f-4875-918b-65c8d2f998e5") - MultipleView_SupportedViews_Property_GUID* = DEFINE_GUID("8d5db9fd-ce3c-4ae7-b788-400a3c645547") - Window_CanMaximize_Property_GUID* = DEFINE_GUID("64fff53f-635d-41c1-950c-cb5adfbe28e3") - Window_CanMinimize_Property_GUID* = DEFINE_GUID("b73b4625-5988-4b97-b4c2-a6fe6e78c8c6") - Window_WindowVisualState_Property_GUID* = DEFINE_GUID("4ab7905f-e860-453e-a30a-f6431e5daad5") - Window_WindowInteractionState_Property_GUID* = DEFINE_GUID("4fed26a4-0455-4fa2-b21c-c4da2db1ff9c") + ExpandCollapse_ExpandCollapseState_Property_GUID* = + DEFINE_GUID("275a4c48-85a7-4f69-aba0-af157610002b") + MultipleView_CurrentView_Property_GUID* = + DEFINE_GUID("7a81a67a-b94f-4875-918b-65c8d2f998e5") + MultipleView_SupportedViews_Property_GUID* = + DEFINE_GUID("8d5db9fd-ce3c-4ae7-b788-400a3c645547") + Window_CanMaximize_Property_GUID* = + DEFINE_GUID("64fff53f-635d-41c1-950c-cb5adfbe28e3") + Window_CanMinimize_Property_GUID* = + DEFINE_GUID("b73b4625-5988-4b97-b4c2-a6fe6e78c8c6") + Window_WindowVisualState_Property_GUID* = + DEFINE_GUID("4ab7905f-e860-453e-a30a-f6431e5daad5") + Window_WindowInteractionState_Property_GUID* = + DEFINE_GUID("4fed26a4-0455-4fa2-b21c-c4da2db1ff9c") Window_IsModal_Property_GUID* = DEFINE_GUID("ff4e6892-37b9-4fca-8532-ffe674ecfeed") Window_IsTopmost_Property_GUID* = DEFINE_GUID("ef7d85d3-0937-4962-9241-b62345f24041") - SelectionItem_IsSelected_Property_GUID* = DEFINE_GUID("f122835f-cd5f-43df-b79d-4b849e9e6020") - SelectionItem_SelectionContainer_Property_GUID* = DEFINE_GUID("a4365b6e-9c1e-4b63-8b53-c2421dd1e8fb") + SelectionItem_IsSelected_Property_GUID* = + DEFINE_GUID("f122835f-cd5f-43df-b79d-4b849e9e6020") + SelectionItem_SelectionContainer_Property_GUID* = + DEFINE_GUID("a4365b6e-9c1e-4b63-8b53-c2421dd1e8fb") Table_RowHeaders_Property_GUID* = DEFINE_GUID("d9e35b87-6eb8-4562-aac6-a8a9075236a8") - Table_ColumnHeaders_Property_GUID* = DEFINE_GUID("aff1d72b-968d-42b1-b459-150b299da664") - Table_RowOrColumnMajor_Property_GUID* = DEFINE_GUID("83be75c3-29fe-4a30-85e1-2a6277fd106e") - TableItem_RowHeaderItems_Property_GUID* = DEFINE_GUID("b3f853a0-0574-4cd8-bcd7-ed5923572d97") - TableItem_ColumnHeaderItems_Property_GUID* = DEFINE_GUID("967a56a3-74b6-431e-8de6-99c411031c58") - Toggle_ToggleState_Property_GUID* = DEFINE_GUID("b23cdc52-22c2-4c6c-9ded-f5c422479ede") + Table_ColumnHeaders_Property_GUID* = + DEFINE_GUID("aff1d72b-968d-42b1-b459-150b299da664") + Table_RowOrColumnMajor_Property_GUID* = + DEFINE_GUID("83be75c3-29fe-4a30-85e1-2a6277fd106e") + TableItem_RowHeaderItems_Property_GUID* = + DEFINE_GUID("b3f853a0-0574-4cd8-bcd7-ed5923572d97") + TableItem_ColumnHeaderItems_Property_GUID* = + DEFINE_GUID("967a56a3-74b6-431e-8de6-99c411031c58") + Toggle_ToggleState_Property_GUID* = + DEFINE_GUID("b23cdc52-22c2-4c6c-9ded-f5c422479ede") Transform_CanMove_Property_GUID* = DEFINE_GUID("1b75824d-208b-4fdf-bccd-f1f4e5741f4f") - Transform_CanResize_Property_GUID* = DEFINE_GUID("bb98dca5-4c1a-41d4-a4f6-ebc128644180") - Transform_CanRotate_Property_GUID* = DEFINE_GUID("10079b48-3849-476f-ac96-44a95c8440d9") - LegacyIAccessible_ChildId_Property_GUID* = DEFINE_GUID("9a191b5d-9ef2-4787-a459-dcde885dd4e8") - LegacyIAccessible_Name_Property_GUID* = DEFINE_GUID("caeb063d-40ae-4869-aa5a-1b8e5d666739") - LegacyIAccessible_Value_Property_GUID* = DEFINE_GUID("b5c5b0b6-8217-4a77-97a5-190a85ed0156") - LegacyIAccessible_Description_Property_GUID* = DEFINE_GUID("46448418-7d70-4ea9-9d27-b7e775cf2ad7") - LegacyIAccessible_Role_Property_GUID* = DEFINE_GUID("6856e59f-cbaf-4e31-93e8-bcbf6f7e491c") - LegacyIAccessible_State_Property_GUID* = DEFINE_GUID("df985854-2281-4340-ab9c-c60e2c5803f6") - LegacyIAccessible_Help_Property_GUID* = DEFINE_GUID("94402352-161c-4b77-a98d-a872cc33947a") - LegacyIAccessible_KeyboardShortcut_Property_GUID* = DEFINE_GUID("8f6909ac-00b8-4259-a41c-966266d43a8a") - LegacyIAccessible_Selection_Property_GUID* = DEFINE_GUID("8aa8b1e0-0891-40cc-8b06-90d7d4166219") - LegacyIAccessible_DefaultAction_Property_GUID* = DEFINE_GUID("3b331729-eaad-4502-b85f-92615622913c") - Annotation_AnnotationTypeId_Property_GUID* = DEFINE_GUID("20ae484f-69ef-4c48-8f5b-c4938b206ac7") - Annotation_AnnotationTypeName_Property_GUID* = DEFINE_GUID("9b818892-5ac9-4af9-aa96-f58a77b058e3") + Transform_CanResize_Property_GUID* = + DEFINE_GUID("bb98dca5-4c1a-41d4-a4f6-ebc128644180") + Transform_CanRotate_Property_GUID* = + DEFINE_GUID("10079b48-3849-476f-ac96-44a95c8440d9") + LegacyIAccessible_ChildId_Property_GUID* = + DEFINE_GUID("9a191b5d-9ef2-4787-a459-dcde885dd4e8") + LegacyIAccessible_Name_Property_GUID* = + DEFINE_GUID("caeb063d-40ae-4869-aa5a-1b8e5d666739") + LegacyIAccessible_Value_Property_GUID* = + DEFINE_GUID("b5c5b0b6-8217-4a77-97a5-190a85ed0156") + LegacyIAccessible_Description_Property_GUID* = + DEFINE_GUID("46448418-7d70-4ea9-9d27-b7e775cf2ad7") + LegacyIAccessible_Role_Property_GUID* = + DEFINE_GUID("6856e59f-cbaf-4e31-93e8-bcbf6f7e491c") + LegacyIAccessible_State_Property_GUID* = + DEFINE_GUID("df985854-2281-4340-ab9c-c60e2c5803f6") + LegacyIAccessible_Help_Property_GUID* = + DEFINE_GUID("94402352-161c-4b77-a98d-a872cc33947a") + LegacyIAccessible_KeyboardShortcut_Property_GUID* = + DEFINE_GUID("8f6909ac-00b8-4259-a41c-966266d43a8a") + LegacyIAccessible_Selection_Property_GUID* = + DEFINE_GUID("8aa8b1e0-0891-40cc-8b06-90d7d4166219") + LegacyIAccessible_DefaultAction_Property_GUID* = + DEFINE_GUID("3b331729-eaad-4502-b85f-92615622913c") + Annotation_AnnotationTypeId_Property_GUID* = + DEFINE_GUID("20ae484f-69ef-4c48-8f5b-c4938b206ac7") + Annotation_AnnotationTypeName_Property_GUID* = + DEFINE_GUID("9b818892-5ac9-4af9-aa96-f58a77b058e3") Annotation_Author_Property_GUID* = DEFINE_GUID("7a528462-9c5c-4a03-a974-8b307a9937f2") - Annotation_DateTime_Property_GUID* = DEFINE_GUID("99b5ca5d-1acf-414b-a4d0-6b350b047578") + Annotation_DateTime_Property_GUID* = + DEFINE_GUID("99b5ca5d-1acf-414b-a4d0-6b350b047578") Annotation_Target_Property_GUID* = DEFINE_GUID("b71b302d-2104-44ad-9c5c-092b4907d70f") Styles_StyleId_Property_GUID* = DEFINE_GUID("da82852f-3817-4233-82af-02279e72cc77") Styles_StyleName_Property_GUID* = DEFINE_GUID("1c12b035-05d1-4f55-9e8e-1489f3ff550d") Styles_FillColor_Property_GUID* = DEFINE_GUID("63eff97a-a1c5-4b1d-84eb-b765f2edd632") - Styles_FillPatternStyle_Property_GUID* = DEFINE_GUID("81cf651f-482b-4451-a30a-e1545e554fb8") + Styles_FillPatternStyle_Property_GUID* = + DEFINE_GUID("81cf651f-482b-4451-a30a-e1545e554fb8") Styles_Shape_Property_GUID* = DEFINE_GUID("c71a23f8-778c-400d-8458-3b543e526984") - Styles_FillPatternColor_Property_GUID* = DEFINE_GUID("939a59fe-8fbd-4e75-a271-ac4595195163") - Styles_ExtendedProperties_Property_GUID* = DEFINE_GUID("f451cda0-ba0a-4681-b0b0-0dbdb53e58f3") - SpreadsheetItem_Formula_Property_GUID* = DEFINE_GUID("e602e47d-1b47-4bea-87cf-3b0b0b5c15b6") - SpreadsheetItem_AnnotationObjects_Property_GUID* = DEFINE_GUID("a3194c38-c9bc-4604-9396-ae3f9f457f7b") - SpreadsheetItem_AnnotationTypes_Property_GUID* = DEFINE_GUID("c70c51d0-d602-4b45-afbc-b4712b96d72b") - Transform2_CanZoom_Property_GUID* = DEFINE_GUID("f357e890-a756-4359-9ca6-86702bf8f381") + Styles_FillPatternColor_Property_GUID* = + DEFINE_GUID("939a59fe-8fbd-4e75-a271-ac4595195163") + Styles_ExtendedProperties_Property_GUID* = + DEFINE_GUID("f451cda0-ba0a-4681-b0b0-0dbdb53e58f3") + SpreadsheetItem_Formula_Property_GUID* = + DEFINE_GUID("e602e47d-1b47-4bea-87cf-3b0b0b5c15b6") + SpreadsheetItem_AnnotationObjects_Property_GUID* = + DEFINE_GUID("a3194c38-c9bc-4604-9396-ae3f9f457f7b") + SpreadsheetItem_AnnotationTypes_Property_GUID* = + DEFINE_GUID("c70c51d0-d602-4b45-afbc-b4712b96d72b") + Transform2_CanZoom_Property_GUID* = + DEFINE_GUID("f357e890-a756-4359-9ca6-86702bf8f381") LiveSetting_Property_GUID* = DEFINE_GUID("c12bcd8e-2a8e-4950-8ae7-3625111d58eb") Drag_IsGrabbed_Property_GUID* = DEFINE_GUID("45f206f3-75cc-4cca-a9b9-fcdfb982d8a2") Drag_GrabbedItems_Property_GUID* = DEFINE_GUID("77c1562c-7b86-4b21-9ed7-3cefda6f4c43") Drag_DropEffect_Property_GUID* = DEFINE_GUID("646f2779-48d3-4b23-8902-4bf100005df3") Drag_DropEffects_Property_GUID* = DEFINE_GUID("f5d61156-7ce6-49be-a836-9269dcec920f") - DropTarget_DropTargetEffect_Property_GUID* = DEFINE_GUID("8bb75975-a0ca-4981-b818-87fc66e9509d") - DropTarget_DropTargetEffects_Property_GUID* = DEFINE_GUID("bc1dd4ed-cb89-45f1-a592-e03b08ae790f") - Transform2_ZoomLevel_Property_GUID* = DEFINE_GUID("eee29f1a-f4a2-4b5b-ac65-95cf93283387") - Transform2_ZoomMinimum_Property_GUID* = DEFINE_GUID("742ccc16-4ad1-4e07-96fe-b122c6e6b22b") - Transform2_ZoomMaximum_Property_GUID* = DEFINE_GUID("42ab6b77-ceb0-4eca-b82a-6cfa5fa1fc08") + DropTarget_DropTargetEffect_Property_GUID* = + DEFINE_GUID("8bb75975-a0ca-4981-b818-87fc66e9509d") + DropTarget_DropTargetEffects_Property_GUID* = + DEFINE_GUID("bc1dd4ed-cb89-45f1-a592-e03b08ae790f") + Transform2_ZoomLevel_Property_GUID* = + DEFINE_GUID("eee29f1a-f4a2-4b5b-ac65-95cf93283387") + Transform2_ZoomMinimum_Property_GUID* = + DEFINE_GUID("742ccc16-4ad1-4e07-96fe-b122c6e6b22b") + Transform2_ZoomMaximum_Property_GUID* = + DEFINE_GUID("42ab6b77-ceb0-4eca-b82a-6cfa5fa1fc08") FlowsFrom_Property_GUID* = DEFINE_GUID("05c6844f-19de-48f8-95fa-880d5b0fd615") FillColor_Property_GUID* = DEFINE_GUID("6e0ec4d0-e2a8-4a56-9de7-953389933b39") OutlineColor_Property_GUID* = DEFINE_GUID("c395d6c0-4b55-4762-a073-fd303a634f52") @@ -1017,29 +1165,40 @@ ToolTipClosed_Event_GUID* = DEFINE_GUID("276d71ef-24a9-49b6-8e97-da98b401bbcd") StructureChanged_Event_GUID* = DEFINE_GUID("59977961-3edd-4b11-b13b-676b2a2a6ca9") MenuOpened_Event_GUID* = DEFINE_GUID("ebe2e945-66ca-4ed1-9ff8-2ad7df0a1b08") - AutomationPropertyChanged_Event_GUID* = DEFINE_GUID("2527fba1-8d7a-4630-a4cc-e66315942f52") - AutomationFocusChanged_Event_GUID* = DEFINE_GUID("b68a1f17-f60d-41a7-a3cc-b05292155fe0") - ActiveTextPositionChanged_Event_GUID* = DEFINE_GUID("a5c09e9c-c77d-4f25-b491-e5bb7017cbd4") + AutomationPropertyChanged_Event_GUID* = + DEFINE_GUID("2527fba1-8d7a-4630-a4cc-e66315942f52") + AutomationFocusChanged_Event_GUID* = + DEFINE_GUID("b68a1f17-f60d-41a7-a3cc-b05292155fe0") + ActiveTextPositionChanged_Event_GUID* = + DEFINE_GUID("a5c09e9c-c77d-4f25-b491-e5bb7017cbd4") AsyncContentLoaded_Event_GUID* = DEFINE_GUID("5fdee11c-d2fa-4fb9-904e-5cbee894d5ef") MenuClosed_Event_GUID* = DEFINE_GUID("3cf1266e-1582-4041-acd7-88a35a965297") LayoutInvalidated_Event_GUID* = DEFINE_GUID("ed7d6544-a6bd-4595-9bae-3d28946cc715") Invoke_Invoked_Event_GUID* = DEFINE_GUID("dfd699f0-c915-49dd-b422-dde785c3d24b") - SelectionItem_ElementAddedToSelectionEvent_Event_GUID* = DEFINE_GUID("3c822dd1-c407-4dba-91dd-79d4aed0aec6") - SelectionItem_ElementRemovedFromSelectionEvent_Event_GUID* = DEFINE_GUID("097fa8a9-7079-41af-8b9c-0934d8305e5c") - SelectionItem_ElementSelectedEvent_Event_GUID* = DEFINE_GUID("b9c7dbfb-4ebe-4532-aaf4-008cf647233c") - Selection_InvalidatedEvent_Event_GUID* = DEFINE_GUID("cac14904-16b4-4b53-8e47-4cb1df267bb7") - Text_TextSelectionChangedEvent_Event_GUID* = DEFINE_GUID("918edaa1-71b3-49ae-9741-79beb8d358f3") - Text_TextChangedEvent_Event_GUID* = DEFINE_GUID("4a342082-f483-48c4-ac11-a84b435e2a84") + SelectionItem_ElementAddedToSelectionEvent_Event_GUID* = + DEFINE_GUID("3c822dd1-c407-4dba-91dd-79d4aed0aec6") + SelectionItem_ElementRemovedFromSelectionEvent_Event_GUID* = + DEFINE_GUID("097fa8a9-7079-41af-8b9c-0934d8305e5c") + SelectionItem_ElementSelectedEvent_Event_GUID* = + DEFINE_GUID("b9c7dbfb-4ebe-4532-aaf4-008cf647233c") + Selection_InvalidatedEvent_Event_GUID* = + DEFINE_GUID("cac14904-16b4-4b53-8e47-4cb1df267bb7") + Text_TextSelectionChangedEvent_Event_GUID* = + DEFINE_GUID("918edaa1-71b3-49ae-9741-79beb8d358f3") + Text_TextChangedEvent_Event_GUID* = + DEFINE_GUID("4a342082-f483-48c4-ac11-a84b435e2a84") Window_WindowOpened_Event_GUID* = DEFINE_GUID("d3e81d06-de45-4f2f-9633-de9e02fb65af") Window_WindowClosed_Event_GUID* = DEFINE_GUID("edf141f8-fa67-4e22-bbf7-944e05735ee2") MenuModeStart_Event_GUID* = DEFINE_GUID("18d7c631-166a-4ac9-ae3b-ef4b5420e681") MenuModeEnd_Event_GUID* = DEFINE_GUID("9ecd4c9f-80dd-47b8-8267-5aec06bb2cff") InputReachedTarget_Event_GUID* = DEFINE_GUID("93ed549a-0549-40f0-bedb-28e44f7de2a3") - InputReachedOtherElement_Event_GUID* = DEFINE_GUID("ed201d8a-4e6c-415e-a874-2460c9b66ba8") + InputReachedOtherElement_Event_GUID* = + DEFINE_GUID("ed201d8a-4e6c-415e-a874-2460c9b66ba8") InputDiscarded_Event_GUID* = DEFINE_GUID("7f36c367-7b18-417c-97e3-9d58ddc944ab") SystemAlert_Event_GUID* = DEFINE_GUID("d271545d-7a3a-47a7-8474-81d29a2451c9") LiveRegionChanged_Event_GUID* = DEFINE_GUID("102d5e90-e6a9-41b6-b1c5-a9b1929d9510") - HostedFragmentRootsInvalidated_Event_GUID* = DEFINE_GUID("e6bdb03e-0921-4ec5-8dcf-eae877b0426b") + HostedFragmentRootsInvalidated_Event_GUID* = + DEFINE_GUID("e6bdb03e-0921-4ec5-8dcf-eae877b0426b") Drag_DragStart_Event_GUID* = DEFINE_GUID("883a480b-3aa9-429d-95e4-d9c8d011f0dd") Drag_DragCancel_Event_GUID* = DEFINE_GUID("c3ede6fa-3451-4e0f-9e71-df9c280a4657") Drag_DragComplete_Event_GUID* = DEFINE_GUID("38e96188-ef1f-463e-91ca-3a7792c29caf") @@ -1121,54 +1280,84 @@ Separator_Control_GUID* = DEFINE_GUID("8767eba3-2a63-4ab0-ac8d-aa50e23de978") SemanticZoom_Control_GUID* = DEFINE_GUID("5fd34a43-061e-42c8-b589-9dccf74bc43a") AppBar_Control_GUID* = DEFINE_GUID("6114908d-cc02-4d37-875b-b530c7139554") - Text_AnimationStyle_Attribute_GUID* = DEFINE_GUID("628209f0-7c9a-4d57-be64-1f1836571ff5") - Text_BackgroundColor_Attribute_GUID* = DEFINE_GUID("fdc49a07-583d-4f17-ad27-77fc832a3c0b") + Text_AnimationStyle_Attribute_GUID* = + DEFINE_GUID("628209f0-7c9a-4d57-be64-1f1836571ff5") + Text_BackgroundColor_Attribute_GUID* = + DEFINE_GUID("fdc49a07-583d-4f17-ad27-77fc832a3c0b") Text_BulletStyle_Attribute_GUID* = DEFINE_GUID("c1097c90-d5c4-4237-9781-3bec8ba54e48") Text_CapStyle_Attribute_GUID* = DEFINE_GUID("fb059c50-92cc-49a5-ba8f-0aa872bba2f3") Text_Culture_Attribute_GUID* = DEFINE_GUID("c2025af9-a42d-4ced-a1fb-c6746315222e") Text_FontName_Attribute_GUID* = DEFINE_GUID("64e63ba8-f2e5-476e-a477-1734feaaf726") Text_FontSize_Attribute_GUID* = DEFINE_GUID("dc5eeeff-0506-4673-93f2-377e4a8e01f1") Text_FontWeight_Attribute_GUID* = DEFINE_GUID("6fc02359-b316-4f5f-b401-f1ce55741853") - Text_ForegroundColor_Attribute_GUID* = DEFINE_GUID("72d1c95d-5e60-471a-96b1-6c1b3b77a436") - Text_HorizontalTextAlignment_Attribute_GUID* = DEFINE_GUID("04ea6161-fba3-477a-952a-bb326d026a5b") - Text_IndentationFirstLine_Attribute_GUID* = DEFINE_GUID("206f9ad5-c1d3-424a-8182-6da9a7f3d632") - Text_IndentationLeading_Attribute_GUID* = DEFINE_GUID("5cf66bac-2d45-4a4b-b6c9-f7221d2815b0") - Text_IndentationTrailing_Attribute_GUID* = DEFINE_GUID("97ff6c0f-1ce4-408a-b67b-94d83eb69bf2") + Text_ForegroundColor_Attribute_GUID* = + DEFINE_GUID("72d1c95d-5e60-471a-96b1-6c1b3b77a436") + Text_HorizontalTextAlignment_Attribute_GUID* = + DEFINE_GUID("04ea6161-fba3-477a-952a-bb326d026a5b") + Text_IndentationFirstLine_Attribute_GUID* = + DEFINE_GUID("206f9ad5-c1d3-424a-8182-6da9a7f3d632") + Text_IndentationLeading_Attribute_GUID* = + DEFINE_GUID("5cf66bac-2d45-4a4b-b6c9-f7221d2815b0") + Text_IndentationTrailing_Attribute_GUID* = + DEFINE_GUID("97ff6c0f-1ce4-408a-b67b-94d83eb69bf2") Text_IsHidden_Attribute_GUID* = DEFINE_GUID("360182fb-bdd7-47f6-ab69-19e33f8a3344") Text_IsItalic_Attribute_GUID* = DEFINE_GUID("fce12a56-1336-4a34-9663-1bab47239320") Text_IsReadOnly_Attribute_GUID* = DEFINE_GUID("a738156b-ca3e-495e-9514-833c440feb11") Text_IsSubscript_Attribute_GUID* = DEFINE_GUID("f0ead858-8f53-413c-873f-1a7d7f5e0de4") - Text_IsSuperscript_Attribute_GUID* = DEFINE_GUID("da706ee4-b3aa-4645-a41f-cd25157dea76") - Text_MarginBottom_Attribute_GUID* = DEFINE_GUID("7ee593c4-72b4-4cac-9271-3ed24b0e4d42") - Text_MarginLeading_Attribute_GUID* = DEFINE_GUID("9e9242d0-5ed0-4900-8e8a-eecc03835afc") + Text_IsSuperscript_Attribute_GUID* = + DEFINE_GUID("da706ee4-b3aa-4645-a41f-cd25157dea76") + Text_MarginBottom_Attribute_GUID* = + DEFINE_GUID("7ee593c4-72b4-4cac-9271-3ed24b0e4d42") + Text_MarginLeading_Attribute_GUID* = + DEFINE_GUID("9e9242d0-5ed0-4900-8e8a-eecc03835afc") Text_MarginTop_Attribute_GUID* = DEFINE_GUID("683d936f-c9b9-4a9a-b3d9-d20d33311e2a") - Text_MarginTrailing_Attribute_GUID* = DEFINE_GUID("af522f98-999d-40af-a5b2-0169d0342002") - Text_OutlineStyles_Attribute_GUID* = DEFINE_GUID("5b675b27-db89-46fe-970c-614d523bb97d") - Text_OverlineColor_Attribute_GUID* = DEFINE_GUID("83ab383a-fd43-40da-ab3e-ecf8165cbb6d") - Text_OverlineStyle_Attribute_GUID* = DEFINE_GUID("0a234d66-617e-427f-871d-e1ff1e0c213f") - Text_StrikethroughColor_Attribute_GUID* = DEFINE_GUID("bfe15a18-8c41-4c5a-9a0b-04af0e07f487") - Text_StrikethroughStyle_Attribute_GUID* = DEFINE_GUID("72913ef1-da00-4f01-899c-ac5a8577a307") + Text_MarginTrailing_Attribute_GUID* = + DEFINE_GUID("af522f98-999d-40af-a5b2-0169d0342002") + Text_OutlineStyles_Attribute_GUID* = + DEFINE_GUID("5b675b27-db89-46fe-970c-614d523bb97d") + Text_OverlineColor_Attribute_GUID* = + DEFINE_GUID("83ab383a-fd43-40da-ab3e-ecf8165cbb6d") + Text_OverlineStyle_Attribute_GUID* = + DEFINE_GUID("0a234d66-617e-427f-871d-e1ff1e0c213f") + Text_StrikethroughColor_Attribute_GUID* = + DEFINE_GUID("bfe15a18-8c41-4c5a-9a0b-04af0e07f487") + Text_StrikethroughStyle_Attribute_GUID* = + DEFINE_GUID("72913ef1-da00-4f01-899c-ac5a8577a307") Text_Tabs_Attribute_GUID* = DEFINE_GUID("2e68d00b-92fe-42d8-899a-a784aa4454a1") - Text_TextFlowDirections_Attribute_GUID* = DEFINE_GUID("8bdf8739-f420-423e-af77-20a5d973a907") - Text_UnderlineColor_Attribute_GUID* = DEFINE_GUID("bfa12c73-fde2-4473-bf64-1036d6aa0f45") - Text_UnderlineStyle_Attribute_GUID* = DEFINE_GUID("5f3b21c0-ede4-44bd-9c36-3853038cbfeb") - Text_AnnotationTypes_Attribute_GUID* = DEFINE_GUID("ad2eb431-ee4e-4be1-a7ba-5559155a73ef") - Text_AnnotationObjects_Attribute_GUID* = DEFINE_GUID("ff41cf68-e7ab-40b9-8c72-72a8ed94017d") + Text_TextFlowDirections_Attribute_GUID* = + DEFINE_GUID("8bdf8739-f420-423e-af77-20a5d973a907") + Text_UnderlineColor_Attribute_GUID* = + DEFINE_GUID("bfa12c73-fde2-4473-bf64-1036d6aa0f45") + Text_UnderlineStyle_Attribute_GUID* = + DEFINE_GUID("5f3b21c0-ede4-44bd-9c36-3853038cbfeb") + Text_AnnotationTypes_Attribute_GUID* = + DEFINE_GUID("ad2eb431-ee4e-4be1-a7ba-5559155a73ef") + Text_AnnotationObjects_Attribute_GUID* = + DEFINE_GUID("ff41cf68-e7ab-40b9-8c72-72a8ed94017d") Text_StyleName_Attribute_GUID* = DEFINE_GUID("22c9e091-4d66-45d8-a828-737bab4c98a7") Text_StyleId_Attribute_GUID* = DEFINE_GUID("14c300de-c32b-449b-ab7c-b0e0789aea5d") Text_Link_Attribute_GUID* = DEFINE_GUID("b38ef51d-9e8d-4e46-9144-56ebe177329b") Text_IsActive_Attribute_GUID* = DEFINE_GUID("f5a4e533-e1b8-436b-935d-b57aa3f558c4") - Text_SelectionActiveEnd_Attribute_GUID* = DEFINE_GUID("1f668cc3-9bbf-416b-b0a2-f89f86f6612c") - Text_CaretPosition_Attribute_GUID* = DEFINE_GUID("b227b131-9889-4752-a91b-733efdc5c5a0") - Text_CaretBidiMode_Attribute_GUID* = DEFINE_GUID("929ee7a6-51d3-4715-96dc-b694fa24a168") - Text_BeforeParagraphSpacing_Attribute_GUID* = DEFINE_GUID("be7b0ab1-c822-4a24-85e9-c8f2650fc79c") - Text_AfterParagraphSpacing_Attribute_GUID* = DEFINE_GUID("588cbb38-e62f-497c-b5d1-ccdf0ee823d8") + Text_SelectionActiveEnd_Attribute_GUID* = + DEFINE_GUID("1f668cc3-9bbf-416b-b0a2-f89f86f6612c") + Text_CaretPosition_Attribute_GUID* = + DEFINE_GUID("b227b131-9889-4752-a91b-733efdc5c5a0") + Text_CaretBidiMode_Attribute_GUID* = + DEFINE_GUID("929ee7a6-51d3-4715-96dc-b694fa24a168") + Text_BeforeParagraphSpacing_Attribute_GUID* = + DEFINE_GUID("be7b0ab1-c822-4a24-85e9-c8f2650fc79c") + Text_AfterParagraphSpacing_Attribute_GUID* = + DEFINE_GUID("588cbb38-e62f-497c-b5d1-ccdf0ee823d8") Text_LineSpacing_Attribute_GUID* = DEFINE_GUID("63ff70ae-d943-4b47-8ab7-a7a033d3214b") - Text_BeforeSpacing_Attribute_GUID* = DEFINE_GUID("be7b0ab1-c822-4a24-85e9-c8f2650fc79c") - Text_AfterSpacing_Attribute_GUID* = DEFINE_GUID("588cbb38-e62f-497c-b5d1-ccdf0ee823d8") - Text_SayAsInterpretAs_Attribute_GUID* = DEFINE_GUID("b38ad6ac-eee1-4b6e-88cc-014cefa93fcb") + Text_BeforeSpacing_Attribute_GUID* = + DEFINE_GUID("be7b0ab1-c822-4a24-85e9-c8f2650fc79c") + Text_AfterSpacing_Attribute_GUID* = + DEFINE_GUID("588cbb38-e62f-497c-b5d1-ccdf0ee823d8") + Text_SayAsInterpretAs_Attribute_GUID* = + DEFINE_GUID("b38ad6ac-eee1-4b6e-88cc-014cefa93fcb") TextEdit_TextChanged_Event_GUID* = DEFINE_GUID("120b0308-ec22-4eb8-9c98-9867cda1b165") - TextEdit_ConversionTargetChanged_Event_GUID* = DEFINE_GUID("3388c183-ed4f-4c8b-9baa-364d51d8847f") + TextEdit_ConversionTargetChanged_Event_GUID* = + DEFINE_GUID("3388c183-ed4f-4c8b-9baa-364d51d8847f") Changes_Event_GUID* = DEFINE_GUID("7df26714-614f-4e05-9488-716c5ba19436") Annotation_Custom_GUID* = DEFINE_GUID("9ec82750-3931-4952-85bc-1dbff78a43e3") Annotation_SpellingError_GUID* = DEFINE_GUID("ae85567e-9ece-423f-81b7-96c43d53e50e") @@ -1186,13 +1375,18 @@ Annotation_MoveChange_GUID* = DEFINE_GUID("9da587eb-23e5-4490-b385-1a22ddc8b187") Annotation_FormatChange_GUID* = DEFINE_GUID("eb247345-d4f1-41ce-8e52-f79b69635e48") Annotation_UnsyncedChange_GUID* = DEFINE_GUID("1851116a-0e47-4b30-8cb5-d7dae4fbcd1b") - Annotation_EditingLockedChange_GUID* = DEFINE_GUID("c31f3e1c-7423-4dac-8348-41f099ff6f64") + Annotation_EditingLockedChange_GUID* = + DEFINE_GUID("c31f3e1c-7423-4dac-8348-41f099ff6f64") Annotation_ExternalChange_GUID* = DEFINE_GUID("75a05b31-5f11-42fd-887d-dfa010db2392") - Annotation_ConflictingChange_GUID* = DEFINE_GUID("98af8802-517c-459f-af13-016d3fab877e") + Annotation_ConflictingChange_GUID* = + DEFINE_GUID("98af8802-517c-459f-af13-016d3fab877e") Annotation_Author_GUID* = DEFINE_GUID("f161d3a7-f81b-4128-b17f-71f690914520") - Annotation_AdvancedProofingIssue_GUID* = DEFINE_GUID("dac7b72c-c0f2-4b84-b90d-5fafc0f0ef1c") - Annotation_DataValidationError_GUID* = DEFINE_GUID("c8649fa8-9775-437e-ad46-e709d93c2343") - Annotation_CircularReferenceError_GUID* = DEFINE_GUID("25bd9cf4-1745-4659-ba67-727f0318c616") + Annotation_AdvancedProofingIssue_GUID* = + DEFINE_GUID("dac7b72c-c0f2-4b84-b90d-5fafc0f0ef1c") + Annotation_DataValidationError_GUID* = + DEFINE_GUID("c8649fa8-9775-437e-ad46-e709d93c2343") + Annotation_CircularReferenceError_GUID* = + DEFINE_GUID("25bd9cf4-1745-4659-ba67-727f0318c616") Annotation_Mathematics_GUID* = DEFINE_GUID("eaab634b-26d0-40c1-8073-57ca1c633c9b") Changes_Summary_GUID* = DEFINE_GUID("313d65a6-e60f-4d62-9861-55afd728d207") StyleId_Custom_GUID* = DEFINE_GUID("ef2edd3e-a999-4b7c-a378-09bbd52a3516") @@ -1215,11 +1409,16 @@ Notification_Event_GUID* = DEFINE_GUID("72c5a2f7-9788-480f-b8eb-4dee00f6186f") SID_IsUIAutomationObject* = DEFINE_GUID("b96fdb85-7204-4724-842b-c7059dedb9d0") SID_ControlElementProvider* = DEFINE_GUID("f4791d68-e254-4ba3-9a53-26a5c5497946") - IsSelectionPattern2Available_Property_GUID* = DEFINE_GUID("490806fb-6e89-4a47-8319-d266e511f021") - Selection2_FirstSelectedItem_Property_GUID* = DEFINE_GUID("cc24ea67-369c-4e55-9ff7-38da69540c29") - Selection2_LastSelectedItem_Property_GUID* = DEFINE_GUID("cf7bda90-2d83-49f8-860c-9ce394cf89b4") - Selection2_CurrentSelectedItem_Property_GUID* = DEFINE_GUID("34257c26-83b5-41a6-939c-ae841c136236") - Selection2_ItemCount_Property_GUID* = DEFINE_GUID("bb49eb9f-456d-4048-b591-9c2026b84636") + IsSelectionPattern2Available_Property_GUID* = + DEFINE_GUID("490806fb-6e89-4a47-8319-d266e511f021") + Selection2_FirstSelectedItem_Property_GUID* = + DEFINE_GUID("cc24ea67-369c-4e55-9ff7-38da69540c29") + Selection2_LastSelectedItem_Property_GUID* = + DEFINE_GUID("cf7bda90-2d83-49f8-860c-9ce394cf89b4") + Selection2_CurrentSelectedItem_Property_GUID* = + DEFINE_GUID("34257c26-83b5-41a6-939c-ae841c136236") + Selection2_ItemCount_Property_GUID* = + DEFINE_GUID("bb49eb9f-456d-4048-b591-9c2026b84636") Selection_Pattern2_GUID* = DEFINE_GUID("fba25cab-ab98-49f7-a7dc-fe539dc15be7") HeadingLevel_Property_GUID* = DEFINE_GUID("29084272-aaaf-4a30-8796-3c12f62b6bbb") IsDialog_Property_GUID* = DEFINE_GUID("9d0dfb9b-8436-4501-bbbb-e534a4fb3b3f") @@ -1261,33 +1460,43 @@ UIA_PFIA_DEFAULT* = 0x0000 UIA_PFIA_UNWRAP_BRIDGE* = 0x0001 type - UiaProviderCallback* = proc (hwnd: HWND, providerType: ProviderType): ptr SAFEARRAY {.stdcall.} + UiaProviderCallback* = + proc(hwnd: HWND, providerType: ProviderType): ptr SAFEARRAY {.stdcall.} UiaEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 - UiaEventCallback* = proc (pArgs: ptr UiaEventArgs, pRequestedData: ptr SAFEARRAY, pTreeStructure: BSTR): void {.stdcall.} + + UiaEventCallback* = proc( + pArgs: ptr UiaEventArgs, pRequestedData: ptr SAFEARRAY, pTreeStructure: BSTR + ): void {.stdcall.} UiaRect* {.pure.} = object left*: float64 top*: float64 width*: float64 height*: float64 + UiaPoint* {.pure.} = object x*: float64 y*: float64 + UiaChangeInfo* {.pure.} = object uiaId*: int32 payload*: VARIANT extraInfo*: VARIANT + UIAutomationParameter* {.pure.} = object `type`*: UIAutomationType pData*: pointer + UIAutomationPropertyInfo* {.pure.} = object guid*: GUID pProgrammaticName*: LPCWSTR `type`*: UIAutomationType + UIAutomationEventInfo* {.pure.} = object guid*: GUID pProgrammaticName*: LPCWSTR + UIAutomationMethodInfo* {.pure.} = object pProgrammaticName*: LPCWSTR doSetFocus*: BOOL @@ -1295,16 +1504,42 @@ cOutParameters*: UINT pParameterTypes*: ptr UIAutomationType pParameterNames*: ptr LPCWSTR + IUIAutomationPatternInstance* {.pure.} = object lpVtbl*: ptr IUIAutomationPatternInstanceVtbl + IUIAutomationPatternInstanceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetProperty*: proc(self: ptr IUIAutomationPatternInstance, index: UINT, cached: BOOL, `type`: UIAutomationType, pPtr: pointer): HRESULT {.stdcall.} - CallMethod*: proc(self: ptr IUIAutomationPatternInstance, index: UINT, pParams: ptr UIAutomationParameter, cParams: UINT): HRESULT {.stdcall.} + GetProperty*: proc( + self: ptr IUIAutomationPatternInstance, + index: UINT, + cached: BOOL, + `type`: UIAutomationType, + pPtr: pointer, + ): HRESULT {.stdcall.} + CallMethod*: proc( + self: ptr IUIAutomationPatternInstance, + index: UINT, + pParams: ptr UIAutomationParameter, + cParams: UINT, + ): HRESULT {.stdcall.} + IUIAutomationPatternHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationPatternHandlerVtbl + IUIAutomationPatternHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateClientWrapper*: proc(self: ptr IUIAutomationPatternHandler, pPatternInstance: ptr IUIAutomationPatternInstance, pClientWrapper: ptr ptr IUnknown): HRESULT {.stdcall.} - Dispatch*: proc(self: ptr IUIAutomationPatternHandler, pTarget: ptr IUnknown, index: UINT, pParams: ptr UIAutomationParameter, cParams: UINT): HRESULT {.stdcall.} + CreateClientWrapper*: proc( + self: ptr IUIAutomationPatternHandler, + pPatternInstance: ptr IUIAutomationPatternInstance, + pClientWrapper: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + Dispatch*: proc( + self: ptr IUIAutomationPatternHandler, + pTarget: ptr IUnknown, + index: UINT, + pParams: ptr UIAutomationParameter, + cParams: UINT, + ): HRESULT {.stdcall.} + UIAutomationPatternInfo* {.pure.} = object guid*: GUID pProgrammaticName*: LPCWSTR @@ -1317,23 +1552,29 @@ cEvents*: UINT pEvents*: ptr UIAutomationEventInfo pPatternHandler*: ptr IUIAutomationPatternHandler + TExtendedProperty* {.pure.} = object PropertyName*: BSTR PropertyValue*: BSTR + UiaCondition* {.pure.} = object ConditionType*: ConditionType + UiaPropertyCondition* {.pure.} = object ConditionType*: ConditionType PropertyId*: PROPERTYID Value*: VARIANT Flags*: PropertyConditionFlags + UiaAndOrCondition* {.pure.} = object ConditionType*: ConditionType ppConditions*: ptr ptr UiaCondition cConditions*: int32 + UiaNotCondition* {.pure.} = object ConditionType*: ConditionType pCondition*: ptr UiaCondition + UiaCacheRequest* {.pure.} = object pViewCondition*: ptr UiaCondition Scope*: TreeScope @@ -1342,2099 +1583,8936 @@ pPatterns*: ptr PATTERNID cPatterns*: int32 automationElementMode*: AutomationElementMode + UiaFindParams* {.pure.} = object MaxDepth*: int32 FindFirst*: BOOL ExcludeRoot*: BOOL pFindCondition*: ptr UiaCondition + UiaPropertyChangedEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 PropertyId*: PROPERTYID OldValue*: VARIANT NewValue*: VARIANT + UiaStructureChangedEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 StructureChangeType*: StructureChangeType pRuntimeId*: ptr int32 cRuntimeIdLen*: int32 + UiaTextEditTextChangedEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 TextEditChangeType*: TextEditChangeType pTextChange*: ptr SAFEARRAY + UiaChangesEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 EventIdCount*: int32 pUiaChanges*: ptr UiaChangeInfo + UiaAsyncContentLoadedEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 AsyncContentLoadedState*: AsyncContentLoadedState PercentComplete*: float64 + UiaWindowClosedEventArgs* {.pure.} = object Type*: EventArgsType EventId*: int32 pRuntimeId*: ptr int32 cRuntimeIdLen*: int32 + IRawElementProviderSimple* {.pure.} = object lpVtbl*: ptr IRawElementProviderSimpleVtbl + IRawElementProviderSimpleVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_ProviderOptions*: proc(self: ptr IRawElementProviderSimple, pRetVal: ptr ProviderOptions): HRESULT {.stdcall.} - GetPatternProvider*: proc(self: ptr IRawElementProviderSimple, patternId: PATTERNID, pRetVal: ptr ptr IUnknown): HRESULT {.stdcall.} - GetPropertyValue*: proc(self: ptr IRawElementProviderSimple, propertyId: PROPERTYID, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - get_HostRawElementProvider*: proc(self: ptr IRawElementProviderSimple, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + get_ProviderOptions*: proc( + self: ptr IRawElementProviderSimple, pRetVal: ptr ProviderOptions + ): HRESULT {.stdcall.} + GetPatternProvider*: proc( + self: ptr IRawElementProviderSimple, + patternId: PATTERNID, + pRetVal: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + GetPropertyValue*: proc( + self: ptr IRawElementProviderSimple, propertyId: PROPERTYID, pRetVal: ptr VARIANT + ): HRESULT {.stdcall.} + get_HostRawElementProvider*: proc( + self: ptr IRawElementProviderSimple, pRetVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + IAccessibleEx* {.pure.} = object lpVtbl*: ptr IAccessibleExVtbl + IAccessibleExVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetObjectForChild*: proc(self: ptr IAccessibleEx, idChild: int32, pRetVal: ptr ptr IAccessibleEx): HRESULT {.stdcall.} - GetIAccessiblePair*: proc(self: ptr IAccessibleEx, ppAcc: ptr ptr IAccessible, pidChild: ptr int32): HRESULT {.stdcall.} - GetRuntimeId*: proc(self: ptr IAccessibleEx, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - ConvertReturnedElement*: proc(self: ptr IAccessibleEx, pIn: ptr IRawElementProviderSimple, ppRetValOut: ptr ptr IAccessibleEx): HRESULT {.stdcall.} + GetObjectForChild*: proc( + self: ptr IAccessibleEx, idChild: int32, pRetVal: ptr ptr IAccessibleEx + ): HRESULT {.stdcall.} + GetIAccessiblePair*: proc( + self: ptr IAccessibleEx, ppAcc: ptr ptr IAccessible, pidChild: ptr int32 + ): HRESULT {.stdcall.} + GetRuntimeId*: + proc(self: ptr IAccessibleEx, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + ConvertReturnedElement*: proc( + self: ptr IAccessibleEx, + pIn: ptr IRawElementProviderSimple, + ppRetValOut: ptr ptr IAccessibleEx, + ): HRESULT {.stdcall.} + IRawElementProviderSimple2* {.pure.} = object lpVtbl*: ptr IRawElementProviderSimple2Vtbl + IRawElementProviderSimple2Vtbl* {.pure, inheritable.} = object of IRawElementProviderSimpleVtbl ShowContextMenu*: proc(self: ptr IRawElementProviderSimple2): HRESULT {.stdcall.} + IRawElementProviderSimple3* {.pure.} = object lpVtbl*: ptr IRawElementProviderSimple3Vtbl + IRawElementProviderSimple3Vtbl* {.pure, inheritable.} = object of IRawElementProviderSimple2Vtbl - GetMetadataValue*: proc(self: ptr IRawElementProviderSimple3, targetId: int32, metadataId: METADATAID, returnVal: ptr VARIANT): HRESULT {.stdcall.} + GetMetadataValue*: proc( + self: ptr IRawElementProviderSimple3, + targetId: int32, + metadataId: METADATAID, + returnVal: ptr VARIANT, + ): HRESULT {.stdcall.} + IRawElementProviderFragment* {.pure.} = object lpVtbl*: ptr IRawElementProviderFragmentVtbl + IRawElementProviderFragmentVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Navigate*: proc(self: ptr IRawElementProviderFragment, direction: NavigateDirection, pRetVal: ptr ptr IRawElementProviderFragment): HRESULT {.stdcall.} - GetRuntimeId*: proc(self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_BoundingRectangle*: proc(self: ptr IRawElementProviderFragment, pRetVal: ptr UiaRect): HRESULT {.stdcall.} - GetEmbeddedFragmentRoots*: proc(self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + Navigate*: proc( + self: ptr IRawElementProviderFragment, + direction: NavigateDirection, + pRetVal: ptr ptr IRawElementProviderFragment, + ): HRESULT {.stdcall.} + GetRuntimeId*: proc( + self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_BoundingRectangle*: proc( + self: ptr IRawElementProviderFragment, pRetVal: ptr UiaRect + ): HRESULT {.stdcall.} + GetEmbeddedFragmentRoots*: proc( + self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} SetFocus*: proc(self: ptr IRawElementProviderFragment): HRESULT {.stdcall.} - get_FragmentRoot*: proc(self: ptr IRawElementProviderFragment, pRetVal: ptr ptr IRawElementProviderFragmentRoot): HRESULT {.stdcall.} + get_FragmentRoot*: proc( + self: ptr IRawElementProviderFragment, + pRetVal: ptr ptr IRawElementProviderFragmentRoot, + ): HRESULT {.stdcall.} + IRawElementProviderFragmentRoot* {.pure.} = object lpVtbl*: ptr IRawElementProviderFragmentRootVtbl + IRawElementProviderFragmentRootVtbl* {.pure, inheritable.} = object of IUnknownVtbl - ElementProviderFromPoint*: proc(self: ptr IRawElementProviderFragmentRoot, x: float64, y: float64, pRetVal: ptr ptr IRawElementProviderFragment): HRESULT {.stdcall.} - GetFocus*: proc(self: ptr IRawElementProviderFragmentRoot, pRetVal: ptr ptr IRawElementProviderFragment): HRESULT {.stdcall.} + ElementProviderFromPoint*: proc( + self: ptr IRawElementProviderFragmentRoot, + x: float64, + y: float64, + pRetVal: ptr ptr IRawElementProviderFragment, + ): HRESULT {.stdcall.} + GetFocus*: proc( + self: ptr IRawElementProviderFragmentRoot, + pRetVal: ptr ptr IRawElementProviderFragment, + ): HRESULT {.stdcall.} + IRawElementProviderAdviseEvents* {.pure.} = object lpVtbl*: ptr IRawElementProviderAdviseEventsVtbl + IRawElementProviderAdviseEventsVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AdviseEventAdded*: proc(self: ptr IRawElementProviderAdviseEvents, eventId: EVENTID, propertyIDs: ptr SAFEARRAY): HRESULT {.stdcall.} - AdviseEventRemoved*: proc(self: ptr IRawElementProviderAdviseEvents, eventId: EVENTID, propertyIDs: ptr SAFEARRAY): HRESULT {.stdcall.} + AdviseEventAdded*: proc( + self: ptr IRawElementProviderAdviseEvents, + eventId: EVENTID, + propertyIDs: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + AdviseEventRemoved*: proc( + self: ptr IRawElementProviderAdviseEvents, + eventId: EVENTID, + propertyIDs: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IRawElementProviderHwndOverride* {.pure.} = object lpVtbl*: ptr IRawElementProviderHwndOverrideVtbl + IRawElementProviderHwndOverrideVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetOverrideProviderForHwnd*: proc(self: ptr IRawElementProviderHwndOverride, hwnd: HWND, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + GetOverrideProviderForHwnd*: proc( + self: ptr IRawElementProviderHwndOverride, + hwnd: HWND, + pRetVal: ptr ptr IRawElementProviderSimple, + ): HRESULT {.stdcall.} + IProxyProviderWinEventSink* {.pure.} = object lpVtbl*: ptr IProxyProviderWinEventSinkVtbl + IProxyProviderWinEventSinkVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddAutomationPropertyChangedEvent*: proc(self: ptr IProxyProviderWinEventSink, pProvider: ptr IRawElementProviderSimple, id: PROPERTYID, newValue: VARIANT): HRESULT {.stdcall.} - AddAutomationEvent*: proc(self: ptr IProxyProviderWinEventSink, pProvider: ptr IRawElementProviderSimple, id: EVENTID): HRESULT {.stdcall.} - AddStructureChangedEvent*: proc(self: ptr IProxyProviderWinEventSink, pProvider: ptr IRawElementProviderSimple, structureChangeType: StructureChangeType, runtimeId: ptr SAFEARRAY): HRESULT {.stdcall.} + AddAutomationPropertyChangedEvent*: proc( + self: ptr IProxyProviderWinEventSink, + pProvider: ptr IRawElementProviderSimple, + id: PROPERTYID, + newValue: VARIANT, + ): HRESULT {.stdcall.} + AddAutomationEvent*: proc( + self: ptr IProxyProviderWinEventSink, + pProvider: ptr IRawElementProviderSimple, + id: EVENTID, + ): HRESULT {.stdcall.} + AddStructureChangedEvent*: proc( + self: ptr IProxyProviderWinEventSink, + pProvider: ptr IRawElementProviderSimple, + structureChangeType: StructureChangeType, + runtimeId: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IProxyProviderWinEventHandler* {.pure.} = object lpVtbl*: ptr IProxyProviderWinEventHandlerVtbl + IProxyProviderWinEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RespondToWinEvent*: proc(self: ptr IProxyProviderWinEventHandler, idWinEvent: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG, pSink: ptr IProxyProviderWinEventSink): HRESULT {.stdcall.} + RespondToWinEvent*: proc( + self: ptr IProxyProviderWinEventHandler, + idWinEvent: DWORD, + hwnd: HWND, + idObject: LONG, + idChild: LONG, + pSink: ptr IProxyProviderWinEventSink, + ): HRESULT {.stdcall.} + IRawElementProviderWindowlessSite* {.pure.} = object lpVtbl*: ptr IRawElementProviderWindowlessSiteVtbl + IRawElementProviderWindowlessSiteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetAdjacentFragment*: proc(self: ptr IRawElementProviderWindowlessSite, direction: NavigateDirection, ppParent: ptr ptr IRawElementProviderFragment): HRESULT {.stdcall.} - GetRuntimeIdPrefix*: proc(self: ptr IRawElementProviderWindowlessSite, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetAdjacentFragment*: proc( + self: ptr IRawElementProviderWindowlessSite, + direction: NavigateDirection, + ppParent: ptr ptr IRawElementProviderFragment, + ): HRESULT {.stdcall.} + GetRuntimeIdPrefix*: proc( + self: ptr IRawElementProviderWindowlessSite, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IAccessibleHostingElementProviders* {.pure.} = object lpVtbl*: ptr IAccessibleHostingElementProvidersVtbl + IAccessibleHostingElementProvidersVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetEmbeddedFragmentRoots*: proc(self: ptr IAccessibleHostingElementProviders, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetObjectIdForProvider*: proc(self: ptr IAccessibleHostingElementProviders, pProvider: ptr IRawElementProviderSimple, pidObject: ptr int32): HRESULT {.stdcall.} + GetEmbeddedFragmentRoots*: proc( + self: ptr IAccessibleHostingElementProviders, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetObjectIdForProvider*: proc( + self: ptr IAccessibleHostingElementProviders, + pProvider: ptr IRawElementProviderSimple, + pidObject: ptr int32, + ): HRESULT {.stdcall.} + IRawElementProviderHostingAccessibles* {.pure.} = object lpVtbl*: ptr IRawElementProviderHostingAccessiblesVtbl + IRawElementProviderHostingAccessiblesVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetEmbeddedAccessibles*: proc(self: ptr IRawElementProviderHostingAccessibles, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetEmbeddedAccessibles*: proc( + self: ptr IRawElementProviderHostingAccessibles, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IDockProvider* {.pure.} = object lpVtbl*: ptr IDockProviderVtbl + IDockProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetDockPosition*: proc(self: ptr IDockProvider, dockPosition: DockPosition): HRESULT {.stdcall.} - get_DockPosition*: proc(self: ptr IDockProvider, pRetVal: ptr DockPosition): HRESULT {.stdcall.} + SetDockPosition*: + proc(self: ptr IDockProvider, dockPosition: DockPosition): HRESULT {.stdcall.} + get_DockPosition*: + proc(self: ptr IDockProvider, pRetVal: ptr DockPosition): HRESULT {.stdcall.} + IExpandCollapseProvider* {.pure.} = object lpVtbl*: ptr IExpandCollapseProviderVtbl + IExpandCollapseProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Expand*: proc(self: ptr IExpandCollapseProvider): HRESULT {.stdcall.} Collapse*: proc(self: ptr IExpandCollapseProvider): HRESULT {.stdcall.} - get_ExpandCollapseState*: proc(self: ptr IExpandCollapseProvider, pRetVal: ptr ExpandCollapseState): HRESULT {.stdcall.} + get_ExpandCollapseState*: proc( + self: ptr IExpandCollapseProvider, pRetVal: ptr ExpandCollapseState + ): HRESULT {.stdcall.} + IGridProvider* {.pure.} = object lpVtbl*: ptr IGridProviderVtbl + IGridProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetItem*: proc(self: ptr IGridProvider, row: int32, column: int32, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - get_RowCount*: proc(self: ptr IGridProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - get_ColumnCount*: proc(self: ptr IGridProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + GetItem*: proc( + self: ptr IGridProvider, + row: int32, + column: int32, + pRetVal: ptr ptr IRawElementProviderSimple, + ): HRESULT {.stdcall.} + get_RowCount*: + proc(self: ptr IGridProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + get_ColumnCount*: + proc(self: ptr IGridProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + IGridItemProvider* {.pure.} = object lpVtbl*: ptr IGridItemProviderVtbl + IGridItemProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl get_Row*: proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - get_Column*: proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - get_RowSpan*: proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - get_ColumnSpan*: proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - get_ContainingGrid*: proc(self: ptr IGridItemProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + get_Column*: + proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + get_RowSpan*: + proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + get_ColumnSpan*: + proc(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + get_ContainingGrid*: proc( + self: ptr IGridItemProvider, pRetVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + IInvokeProvider* {.pure.} = object lpVtbl*: ptr IInvokeProviderVtbl + IInvokeProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Invoke*: proc(self: ptr IInvokeProvider): HRESULT {.stdcall.} + IMultipleViewProvider* {.pure.} = object lpVtbl*: ptr IMultipleViewProviderVtbl + IMultipleViewProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetViewName*: proc(self: ptr IMultipleViewProvider, viewId: int32, pRetVal: ptr BSTR): HRESULT {.stdcall.} - SetCurrentView*: proc(self: ptr IMultipleViewProvider, viewId: int32): HRESULT {.stdcall.} - get_CurrentView*: proc(self: ptr IMultipleViewProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - GetSupportedViews*: proc(self: ptr IMultipleViewProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetViewName*: proc( + self: ptr IMultipleViewProvider, viewId: int32, pRetVal: ptr BSTR + ): HRESULT {.stdcall.} + SetCurrentView*: + proc(self: ptr IMultipleViewProvider, viewId: int32): HRESULT {.stdcall.} + get_CurrentView*: + proc(self: ptr IMultipleViewProvider, pRetVal: ptr int32): HRESULT {.stdcall.} + GetSupportedViews*: proc( + self: ptr IMultipleViewProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IRangeValueProvider* {.pure.} = object lpVtbl*: ptr IRangeValueProviderVtbl + IRangeValueProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetValue*: proc(self: ptr IRangeValueProvider, val: float64): HRESULT {.stdcall.} - get_Value*: proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_IsReadOnly*: proc(self: ptr IRangeValueProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_Maximum*: proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_Minimum*: proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_LargeChange*: proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_SmallChange*: proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_Value*: + proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_IsReadOnly*: + proc(self: ptr IRangeValueProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_Maximum*: + proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_Minimum*: + proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_LargeChange*: + proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_SmallChange*: + proc(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + IScrollItemProvider* {.pure.} = object lpVtbl*: ptr IScrollItemProviderVtbl + IScrollItemProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl ScrollIntoView*: proc(self: ptr IScrollItemProvider): HRESULT {.stdcall.} + ISelectionProvider* {.pure.} = object lpVtbl*: ptr ISelectionProviderVtbl + ISelectionProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSelection*: proc(self: ptr ISelectionProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CanSelectMultiple*: proc(self: ptr ISelectionProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_IsSelectionRequired*: proc(self: ptr ISelectionProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + GetSelection*: proc( + self: ptr ISelectionProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CanSelectMultiple*: + proc(self: ptr ISelectionProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_IsSelectionRequired*: + proc(self: ptr ISelectionProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + ISelectionProvider2* {.pure.} = object lpVtbl*: ptr ISelectionProvider2Vtbl + ISelectionProvider2Vtbl* {.pure, inheritable.} = object of ISelectionProviderVtbl - get_FirstSelectedItem*: proc(self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - get_LastSelectedItem*: proc(self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - get_CurrentSelectedItem*: proc(self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - get_ItemCount*: proc(self: ptr ISelectionProvider2, retVal: ptr int32): HRESULT {.stdcall.} + get_FirstSelectedItem*: proc( + self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + get_LastSelectedItem*: proc( + self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + get_CurrentSelectedItem*: proc( + self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + get_ItemCount*: + proc(self: ptr ISelectionProvider2, retVal: ptr int32): HRESULT {.stdcall.} + IScrollProvider* {.pure.} = object lpVtbl*: ptr IScrollProviderVtbl + IScrollProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Scroll*: proc(self: ptr IScrollProvider, horizontalAmount: ScrollAmount, verticalAmount: ScrollAmount): HRESULT {.stdcall.} - SetScrollPercent*: proc(self: ptr IScrollProvider, horizontalPercent: float64, verticalPercent: float64): HRESULT {.stdcall.} - get_HorizontalScrollPercent*: proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_VerticalScrollPercent*: proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_HorizontalViewSize*: proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_VerticalViewSize*: proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} - get_HorizontallyScrollable*: proc(self: ptr IScrollProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_VerticallyScrollable*: proc(self: ptr IScrollProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + Scroll*: proc( + self: ptr IScrollProvider, + horizontalAmount: ScrollAmount, + verticalAmount: ScrollAmount, + ): HRESULT {.stdcall.} + SetScrollPercent*: proc( + self: ptr IScrollProvider, horizontalPercent: float64, verticalPercent: float64 + ): HRESULT {.stdcall.} + get_HorizontalScrollPercent*: + proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_VerticalScrollPercent*: + proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_HorizontalViewSize*: + proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_VerticalViewSize*: + proc(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.stdcall.} + get_HorizontallyScrollable*: + proc(self: ptr IScrollProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_VerticallyScrollable*: + proc(self: ptr IScrollProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + ISelectionItemProvider* {.pure.} = object lpVtbl*: ptr ISelectionItemProviderVtbl + ISelectionItemProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Select*: proc(self: ptr ISelectionItemProvider): HRESULT {.stdcall.} AddToSelection*: proc(self: ptr ISelectionItemProvider): HRESULT {.stdcall.} RemoveFromSelection*: proc(self: ptr ISelectionItemProvider): HRESULT {.stdcall.} - get_IsSelected*: proc(self: ptr ISelectionItemProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_SelectionContainer*: proc(self: ptr ISelectionItemProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + get_IsSelected*: + proc(self: ptr ISelectionItemProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_SelectionContainer*: proc( + self: ptr ISelectionItemProvider, pRetVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + ISynchronizedInputProvider* {.pure.} = object lpVtbl*: ptr ISynchronizedInputProviderVtbl + ISynchronizedInputProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - StartListening*: proc(self: ptr ISynchronizedInputProvider, inputType: SynchronizedInputType): HRESULT {.stdcall.} + StartListening*: proc( + self: ptr ISynchronizedInputProvider, inputType: SynchronizedInputType + ): HRESULT {.stdcall.} Cancel*: proc(self: ptr ISynchronizedInputProvider): HRESULT {.stdcall.} + ITableProvider* {.pure.} = object lpVtbl*: ptr ITableProviderVtbl + ITableProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRowHeaders*: proc(self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetColumnHeaders*: proc(self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_RowOrColumnMajor*: proc(self: ptr ITableProvider, pRetVal: ptr RowOrColumnMajor): HRESULT {.stdcall.} + GetRowHeaders*: + proc(self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetColumnHeaders*: + proc(self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_RowOrColumnMajor*: + proc(self: ptr ITableProvider, pRetVal: ptr RowOrColumnMajor): HRESULT {.stdcall.} + ITableItemProvider* {.pure.} = object lpVtbl*: ptr ITableItemProviderVtbl + ITableItemProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetRowHeaderItems*: proc(self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetColumnHeaderItems*: proc(self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetRowHeaderItems*: proc( + self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetColumnHeaderItems*: proc( + self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IToggleProvider* {.pure.} = object lpVtbl*: ptr IToggleProviderVtbl + IToggleProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Toggle*: proc(self: ptr IToggleProvider): HRESULT {.stdcall.} - get_ToggleState*: proc(self: ptr IToggleProvider, pRetVal: ptr ToggleState): HRESULT {.stdcall.} + get_ToggleState*: + proc(self: ptr IToggleProvider, pRetVal: ptr ToggleState): HRESULT {.stdcall.} + ITransformProvider* {.pure.} = object lpVtbl*: ptr ITransformProviderVtbl + ITransformProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Move*: proc(self: ptr ITransformProvider, x: float64, y: float64): HRESULT {.stdcall.} - Resize*: proc(self: ptr ITransformProvider, width: float64, height: float64): HRESULT {.stdcall.} + Move*: + proc(self: ptr ITransformProvider, x: float64, y: float64): HRESULT {.stdcall.} + Resize*: proc( + self: ptr ITransformProvider, width: float64, height: float64 + ): HRESULT {.stdcall.} Rotate*: proc(self: ptr ITransformProvider, degrees: float64): HRESULT {.stdcall.} - get_CanMove*: proc(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_CanResize*: proc(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_CanRotate*: proc(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_CanMove*: + proc(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_CanResize*: + proc(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_CanRotate*: + proc(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + IValueProvider* {.pure.} = object lpVtbl*: ptr IValueProviderVtbl + IValueProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetValue*: proc(self: ptr IValueProvider, val: LPCWSTR): HRESULT {.stdcall.} get_Value*: proc(self: ptr IValueProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_IsReadOnly*: proc(self: ptr IValueProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_IsReadOnly*: + proc(self: ptr IValueProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + IWindowProvider* {.pure.} = object lpVtbl*: ptr IWindowProviderVtbl + IWindowProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetVisualState*: proc(self: ptr IWindowProvider, state: WindowVisualState): HRESULT {.stdcall.} + SetVisualState*: + proc(self: ptr IWindowProvider, state: WindowVisualState): HRESULT {.stdcall.} Close*: proc(self: ptr IWindowProvider): HRESULT {.stdcall.} - WaitForInputIdle*: proc(self: ptr IWindowProvider, milliseconds: int32, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_CanMaximize*: proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_CanMinimize*: proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_IsModal*: proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_WindowVisualState*: proc(self: ptr IWindowProvider, pRetVal: ptr WindowVisualState): HRESULT {.stdcall.} - get_WindowInteractionState*: proc(self: ptr IWindowProvider, pRetVal: ptr WindowInteractionState): HRESULT {.stdcall.} - get_IsTopmost*: proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + WaitForInputIdle*: proc( + self: ptr IWindowProvider, milliseconds: int32, pRetVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CanMaximize*: + proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_CanMinimize*: + proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_IsModal*: + proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_WindowVisualState*: proc( + self: ptr IWindowProvider, pRetVal: ptr WindowVisualState + ): HRESULT {.stdcall.} + get_WindowInteractionState*: proc( + self: ptr IWindowProvider, pRetVal: ptr WindowInteractionState + ): HRESULT {.stdcall.} + get_IsTopmost*: + proc(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + ILegacyIAccessibleProvider* {.pure.} = object lpVtbl*: ptr ILegacyIAccessibleProviderVtbl + ILegacyIAccessibleProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Select*: proc(self: ptr ILegacyIAccessibleProvider, flagsSelect: int32): HRESULT {.stdcall.} + Select*: proc(self: ptr ILegacyIAccessibleProvider, flagsSelect: int32): HRESULT {. + stdcall + .} DoDefaultAction*: proc(self: ptr ILegacyIAccessibleProvider): HRESULT {.stdcall.} - SetValue*: proc(self: ptr ILegacyIAccessibleProvider, szValue: LPCWSTR): HRESULT {.stdcall.} - GetIAccessible*: proc(self: ptr ILegacyIAccessibleProvider, ppAccessible: ptr ptr IAccessible): HRESULT {.stdcall.} - get_ChildId*: proc(self: ptr ILegacyIAccessibleProvider, pRetVal: ptr int32): HRESULT {.stdcall.} - get_Name*: proc(self: ptr ILegacyIAccessibleProvider, pszName: ptr BSTR): HRESULT {.stdcall.} - get_Value*: proc(self: ptr ILegacyIAccessibleProvider, pszValue: ptr BSTR): HRESULT {.stdcall.} - get_Description*: proc(self: ptr ILegacyIAccessibleProvider, pszDescription: ptr BSTR): HRESULT {.stdcall.} - get_Role*: proc(self: ptr ILegacyIAccessibleProvider, pdwRole: ptr DWORD): HRESULT {.stdcall.} - get_State*: proc(self: ptr ILegacyIAccessibleProvider, pdwState: ptr DWORD): HRESULT {.stdcall.} - get_Help*: proc(self: ptr ILegacyIAccessibleProvider, pszHelp: ptr BSTR): HRESULT {.stdcall.} - get_KeyboardShortcut*: proc(self: ptr ILegacyIAccessibleProvider, pszKeyboardShortcut: ptr BSTR): HRESULT {.stdcall.} - GetSelection*: proc(self: ptr ILegacyIAccessibleProvider, pvarSelectedChildren: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_DefaultAction*: proc(self: ptr ILegacyIAccessibleProvider, pszDefaultAction: ptr BSTR): HRESULT {.stdcall.} + SetValue*: + proc(self: ptr ILegacyIAccessibleProvider, szValue: LPCWSTR): HRESULT {.stdcall.} + GetIAccessible*: proc( + self: ptr ILegacyIAccessibleProvider, ppAccessible: ptr ptr IAccessible + ): HRESULT {.stdcall.} + get_ChildId*: proc( + self: ptr ILegacyIAccessibleProvider, pRetVal: ptr int32 + ): HRESULT {.stdcall.} + get_Name*: + proc(self: ptr ILegacyIAccessibleProvider, pszName: ptr BSTR): HRESULT {.stdcall.} + get_Value*: proc(self: ptr ILegacyIAccessibleProvider, pszValue: ptr BSTR): HRESULT {. + stdcall + .} + get_Description*: proc( + self: ptr ILegacyIAccessibleProvider, pszDescription: ptr BSTR + ): HRESULT {.stdcall.} + get_Role*: proc(self: ptr ILegacyIAccessibleProvider, pdwRole: ptr DWORD): HRESULT {. + stdcall + .} + get_State*: proc(self: ptr ILegacyIAccessibleProvider, pdwState: ptr DWORD): HRESULT {. + stdcall + .} + get_Help*: + proc(self: ptr ILegacyIAccessibleProvider, pszHelp: ptr BSTR): HRESULT {.stdcall.} + get_KeyboardShortcut*: proc( + self: ptr ILegacyIAccessibleProvider, pszKeyboardShortcut: ptr BSTR + ): HRESULT {.stdcall.} + GetSelection*: proc( + self: ptr ILegacyIAccessibleProvider, pvarSelectedChildren: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_DefaultAction*: proc( + self: ptr ILegacyIAccessibleProvider, pszDefaultAction: ptr BSTR + ): HRESULT {.stdcall.} + IItemContainerProvider* {.pure.} = object lpVtbl*: ptr IItemContainerProviderVtbl + IItemContainerProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FindItemByProperty*: proc(self: ptr IItemContainerProvider, pStartAfter: ptr IRawElementProviderSimple, propertyId: PROPERTYID, value: VARIANT, pFound: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + FindItemByProperty*: proc( + self: ptr IItemContainerProvider, + pStartAfter: ptr IRawElementProviderSimple, + propertyId: PROPERTYID, + value: VARIANT, + pFound: ptr ptr IRawElementProviderSimple, + ): HRESULT {.stdcall.} + IVirtualizedItemProvider* {.pure.} = object lpVtbl*: ptr IVirtualizedItemProviderVtbl + IVirtualizedItemProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Realize*: proc(self: ptr IVirtualizedItemProvider): HRESULT {.stdcall.} + IObjectModelProvider* {.pure.} = object lpVtbl*: ptr IObjectModelProviderVtbl + IObjectModelProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetUnderlyingObjectModel*: proc(self: ptr IObjectModelProvider, ppUnknown: ptr ptr IUnknown): HRESULT {.stdcall.} + GetUnderlyingObjectModel*: proc( + self: ptr IObjectModelProvider, ppUnknown: ptr ptr IUnknown + ): HRESULT {.stdcall.} + IAnnotationProvider* {.pure.} = object lpVtbl*: ptr IAnnotationProviderVtbl + IAnnotationProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_AnnotationTypeId*: proc(self: ptr IAnnotationProvider, retVal: ptr int32): HRESULT {.stdcall.} - get_AnnotationTypeName*: proc(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.stdcall.} - get_Author*: proc(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.stdcall.} - get_DateTime*: proc(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.stdcall.} - get_Target*: proc(self: ptr IAnnotationProvider, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + get_AnnotationTypeId*: + proc(self: ptr IAnnotationProvider, retVal: ptr int32): HRESULT {.stdcall.} + get_AnnotationTypeName*: + proc(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + get_Author*: + proc(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + get_DateTime*: + proc(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + get_Target*: proc( + self: ptr IAnnotationProvider, retVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + IStylesProvider* {.pure.} = object lpVtbl*: ptr IStylesProviderVtbl + IStylesProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_StyleId*: proc(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.stdcall.} - get_StyleName*: proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} - get_FillColor*: proc(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.stdcall.} - get_FillPatternStyle*: proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + get_StyleId*: + proc(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.stdcall.} + get_StyleName*: + proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + get_FillColor*: + proc(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.stdcall.} + get_FillPatternStyle*: + proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} get_Shape*: proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} - get_FillPatternColor*: proc(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.stdcall.} - get_ExtendedProperties*: proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + get_FillPatternColor*: + proc(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.stdcall.} + get_ExtendedProperties*: + proc(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.stdcall.} + ISpreadsheetProvider* {.pure.} = object lpVtbl*: ptr ISpreadsheetProviderVtbl + ISpreadsheetProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetItemByName*: proc(self: ptr ISpreadsheetProvider, name: LPCWSTR, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + GetItemByName*: proc( + self: ptr ISpreadsheetProvider, + name: LPCWSTR, + pRetVal: ptr ptr IRawElementProviderSimple, + ): HRESULT {.stdcall.} + ISpreadsheetItemProvider* {.pure.} = object lpVtbl*: ptr ISpreadsheetItemProviderVtbl + ISpreadsheetItemProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_Formula*: proc(self: ptr ISpreadsheetItemProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} - GetAnnotationObjects*: proc(self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetAnnotationTypes*: proc(self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_Formula*: + proc(self: ptr ISpreadsheetItemProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} + GetAnnotationObjects*: proc( + self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetAnnotationTypes*: proc( + self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + ITransformProvider2* {.pure.} = object lpVtbl*: ptr ITransformProvider2Vtbl + ITransformProvider2Vtbl* {.pure, inheritable.} = object of ITransformProviderVtbl Zoom*: proc(self: ptr ITransformProvider2, zoom: float64): HRESULT {.stdcall.} - get_CanZoom*: proc(self: ptr ITransformProvider2, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_ZoomLevel*: proc(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.stdcall.} - get_ZoomMinimum*: proc(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.stdcall.} - get_ZoomMaximum*: proc(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.stdcall.} - ZoomByUnit*: proc(self: ptr ITransformProvider2, zoomUnit: ZoomUnit): HRESULT {.stdcall.} + get_CanZoom*: + proc(self: ptr ITransformProvider2, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_ZoomLevel*: + proc(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.stdcall.} + get_ZoomMinimum*: + proc(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.stdcall.} + get_ZoomMaximum*: + proc(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.stdcall.} + ZoomByUnit*: + proc(self: ptr ITransformProvider2, zoomUnit: ZoomUnit): HRESULT {.stdcall.} + IDragProvider* {.pure.} = object lpVtbl*: ptr IDragProviderVtbl + IDragProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_IsGrabbed*: proc(self: ptr IDragProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - get_DropEffect*: proc(self: ptr IDragProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_DropEffects*: proc(self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetGrabbedItems*: proc(self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_IsGrabbed*: + proc(self: ptr IDragProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} + get_DropEffect*: + proc(self: ptr IDragProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_DropEffects*: + proc(self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetGrabbedItems*: + proc(self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + IDropTargetProvider* {.pure.} = object lpVtbl*: ptr IDropTargetProviderVtbl + IDropTargetProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_DropTargetEffect*: proc(self: ptr IDropTargetProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} - get_DropTargetEffects*: proc(self: ptr IDropTargetProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_DropTargetEffect*: + proc(self: ptr IDropTargetProvider, pRetVal: ptr BSTR): HRESULT {.stdcall.} + get_DropTargetEffects*: proc( + self: ptr IDropTargetProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + ITextRangeProvider* {.pure.} = object lpVtbl*: ptr ITextRangeProviderVtbl + ITextRangeProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Clone*: proc(self: ptr ITextRangeProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - Compare*: proc(self: ptr ITextRangeProvider, range: ptr ITextRangeProvider, pRetVal: ptr BOOL): HRESULT {.stdcall.} - CompareEndpoints*: proc(self: ptr ITextRangeProvider, endpoint: TextPatternRangeEndpoint, targetRange: ptr ITextRangeProvider, targetEndpoint: TextPatternRangeEndpoint, pRetVal: ptr int32): HRESULT {.stdcall.} - ExpandToEnclosingUnit*: proc(self: ptr ITextRangeProvider, unit: TextUnit): HRESULT {.stdcall.} - FindAttribute*: proc(self: ptr ITextRangeProvider, attributeId: TEXTATTRIBUTEID, val: VARIANT, backward: BOOL, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - FindText*: proc(self: ptr ITextRangeProvider, text: BSTR, backward: BOOL, ignoreCase: BOOL, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - GetAttributeValue*: proc(self: ptr ITextRangeProvider, attributeId: TEXTATTRIBUTEID, pRetVal: ptr VARIANT): HRESULT {.stdcall.} - GetBoundingRectangles*: proc(self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetEnclosingElement*: proc(self: ptr ITextRangeProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - GetText*: proc(self: ptr ITextRangeProvider, maxLength: int32, pRetVal: ptr BSTR): HRESULT {.stdcall.} - Move*: proc(self: ptr ITextRangeProvider, unit: TextUnit, count: int32, pRetVal: ptr int32): HRESULT {.stdcall.} - MoveEndpointByUnit*: proc(self: ptr ITextRangeProvider, endpoint: TextPatternRangeEndpoint, unit: TextUnit, count: int32, pRetVal: ptr int32): HRESULT {.stdcall.} - MoveEndpointByRange*: proc(self: ptr ITextRangeProvider, endpoint: TextPatternRangeEndpoint, targetRange: ptr ITextRangeProvider, targetEndpoint: TextPatternRangeEndpoint): HRESULT {.stdcall.} + Clone*: proc( + self: ptr ITextRangeProvider, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + Compare*: proc( + self: ptr ITextRangeProvider, range: ptr ITextRangeProvider, pRetVal: ptr BOOL + ): HRESULT {.stdcall.} + CompareEndpoints*: proc( + self: ptr ITextRangeProvider, + endpoint: TextPatternRangeEndpoint, + targetRange: ptr ITextRangeProvider, + targetEndpoint: TextPatternRangeEndpoint, + pRetVal: ptr int32, + ): HRESULT {.stdcall.} + ExpandToEnclosingUnit*: + proc(self: ptr ITextRangeProvider, unit: TextUnit): HRESULT {.stdcall.} + FindAttribute*: proc( + self: ptr ITextRangeProvider, + attributeId: TEXTATTRIBUTEID, + val: VARIANT, + backward: BOOL, + pRetVal: ptr ptr ITextRangeProvider, + ): HRESULT {.stdcall.} + FindText*: proc( + self: ptr ITextRangeProvider, + text: BSTR, + backward: BOOL, + ignoreCase: BOOL, + pRetVal: ptr ptr ITextRangeProvider, + ): HRESULT {.stdcall.} + GetAttributeValue*: proc( + self: ptr ITextRangeProvider, attributeId: TEXTATTRIBUTEID, pRetVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetBoundingRectangles*: proc( + self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetEnclosingElement*: proc( + self: ptr ITextRangeProvider, pRetVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + GetText*: proc( + self: ptr ITextRangeProvider, maxLength: int32, pRetVal: ptr BSTR + ): HRESULT {.stdcall.} + Move*: proc( + self: ptr ITextRangeProvider, unit: TextUnit, count: int32, pRetVal: ptr int32 + ): HRESULT {.stdcall.} + MoveEndpointByUnit*: proc( + self: ptr ITextRangeProvider, + endpoint: TextPatternRangeEndpoint, + unit: TextUnit, + count: int32, + pRetVal: ptr int32, + ): HRESULT {.stdcall.} + MoveEndpointByRange*: proc( + self: ptr ITextRangeProvider, + endpoint: TextPatternRangeEndpoint, + targetRange: ptr ITextRangeProvider, + targetEndpoint: TextPatternRangeEndpoint, + ): HRESULT {.stdcall.} Select*: proc(self: ptr ITextRangeProvider): HRESULT {.stdcall.} AddToSelection*: proc(self: ptr ITextRangeProvider): HRESULT {.stdcall.} RemoveFromSelection*: proc(self: ptr ITextRangeProvider): HRESULT {.stdcall.} - ScrollIntoView*: proc(self: ptr ITextRangeProvider, alignToTop: BOOL): HRESULT {.stdcall.} - GetChildren*: proc(self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + ScrollIntoView*: + proc(self: ptr ITextRangeProvider, alignToTop: BOOL): HRESULT {.stdcall.} + GetChildren*: proc( + self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + ITextProvider* {.pure.} = object lpVtbl*: ptr ITextProviderVtbl + ITextProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSelection*: proc(self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetVisibleRanges*: proc(self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - RangeFromChild*: proc(self: ptr ITextProvider, childElement: ptr IRawElementProviderSimple, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - RangeFromPoint*: proc(self: ptr ITextProvider, point: UiaPoint, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - get_DocumentRange*: proc(self: ptr ITextProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - get_SupportedTextSelection*: proc(self: ptr ITextProvider, pRetVal: ptr SupportedTextSelection): HRESULT {.stdcall.} + GetSelection*: + proc(self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetVisibleRanges*: + proc(self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + RangeFromChild*: proc( + self: ptr ITextProvider, + childElement: ptr IRawElementProviderSimple, + pRetVal: ptr ptr ITextRangeProvider, + ): HRESULT {.stdcall.} + RangeFromPoint*: proc( + self: ptr ITextProvider, point: UiaPoint, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + get_DocumentRange*: proc( + self: ptr ITextProvider, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + get_SupportedTextSelection*: proc( + self: ptr ITextProvider, pRetVal: ptr SupportedTextSelection + ): HRESULT {.stdcall.} + ITextProvider2* {.pure.} = object lpVtbl*: ptr ITextProvider2Vtbl + ITextProvider2Vtbl* {.pure, inheritable.} = object of ITextProviderVtbl - RangeFromAnnotation*: proc(self: ptr ITextProvider2, annotationElement: ptr IRawElementProviderSimple, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - GetCaretRange*: proc(self: ptr ITextProvider2, isActive: ptr BOOL, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} + RangeFromAnnotation*: proc( + self: ptr ITextProvider2, + annotationElement: ptr IRawElementProviderSimple, + pRetVal: ptr ptr ITextRangeProvider, + ): HRESULT {.stdcall.} + GetCaretRange*: proc( + self: ptr ITextProvider2, isActive: ptr BOOL, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + ITextEditProvider* {.pure.} = object lpVtbl*: ptr ITextEditProviderVtbl + ITextEditProviderVtbl* {.pure, inheritable.} = object of ITextProviderVtbl - GetActiveComposition*: proc(self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} - GetConversionTarget*: proc(self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} + GetActiveComposition*: proc( + self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + GetConversionTarget*: proc( + self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + ITextRangeProvider2* {.pure.} = object lpVtbl*: ptr ITextRangeProvider2Vtbl + ITextRangeProvider2Vtbl* {.pure, inheritable.} = object of ITextRangeProviderVtbl ShowContextMenu*: proc(self: ptr ITextRangeProvider2): HRESULT {.stdcall.} + ITextChildProvider* {.pure.} = object lpVtbl*: ptr ITextChildProviderVtbl + ITextChildProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_TextContainer*: proc(self: ptr ITextChildProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - get_TextRange*: proc(self: ptr ITextChildProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.stdcall.} + get_TextContainer*: proc( + self: ptr ITextChildProvider, pRetVal: ptr ptr IRawElementProviderSimple + ): HRESULT {.stdcall.} + get_TextRange*: proc( + self: ptr ITextChildProvider, pRetVal: ptr ptr ITextRangeProvider + ): HRESULT {.stdcall.} + ICustomNavigationProvider* {.pure.} = object lpVtbl*: ptr ICustomNavigationProviderVtbl + ICustomNavigationProviderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Navigate*: proc(self: ptr ICustomNavigationProvider, direction: NavigateDirection, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} + Navigate*: proc( + self: ptr ICustomNavigationProvider, + direction: NavigateDirection, + pRetVal: ptr ptr IRawElementProviderSimple, + ): HRESULT {.stdcall.} + IUIAutomationRegistrar* {.pure.} = object lpVtbl*: ptr IUIAutomationRegistrarVtbl + IUIAutomationRegistrarVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RegisterProperty*: proc(self: ptr IUIAutomationRegistrar, property: ptr UIAutomationPropertyInfo, propertyId: ptr PROPERTYID): HRESULT {.stdcall.} - RegisterEvent*: proc(self: ptr IUIAutomationRegistrar, event: ptr UIAutomationEventInfo, eventId: ptr EVENTID): HRESULT {.stdcall.} - RegisterPattern*: proc(self: ptr IUIAutomationRegistrar, pattern: ptr UIAutomationPatternInfo, pPatternId: ptr PATTERNID, pPatternAvailablePropertyId: ptr PROPERTYID, propertyIdCount: UINT, pPropertyIds: ptr PROPERTYID, eventIdCount: UINT, pEventIds: ptr EVENTID): HRESULT {.stdcall.} + RegisterProperty*: proc( + self: ptr IUIAutomationRegistrar, + property: ptr UIAutomationPropertyInfo, + propertyId: ptr PROPERTYID, + ): HRESULT {.stdcall.} + RegisterEvent*: proc( + self: ptr IUIAutomationRegistrar, + event: ptr UIAutomationEventInfo, + eventId: ptr EVENTID, + ): HRESULT {.stdcall.} + RegisterPattern*: proc( + self: ptr IUIAutomationRegistrar, + pattern: ptr UIAutomationPatternInfo, + pPatternId: ptr PATTERNID, + pPatternAvailablePropertyId: ptr PROPERTYID, + propertyIdCount: UINT, + pPropertyIds: ptr PROPERTYID, + eventIdCount: UINT, + pEventIds: ptr EVENTID, + ): HRESULT {.stdcall.} + IUIAutomationCondition* {.pure.} = object lpVtbl*: ptr IUIAutomationConditionVtbl + IUIAutomationConditionVtbl* {.pure, inheritable.} = object of IUnknownVtbl IUIAutomationElementArray* {.pure.} = object lpVtbl*: ptr IUIAutomationElementArrayVtbl + IUIAutomationElementArrayVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_Length*: proc(self: ptr IUIAutomationElementArray, length: ptr int32): HRESULT {.stdcall.} - GetElement*: proc(self: ptr IUIAutomationElementArray, index: int32, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + get_Length*: + proc(self: ptr IUIAutomationElementArray, length: ptr int32): HRESULT {.stdcall.} + GetElement*: proc( + self: ptr IUIAutomationElementArray, + index: int32, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + IUIAutomationCacheRequest* {.pure.} = object lpVtbl*: ptr IUIAutomationCacheRequestVtbl + IUIAutomationCacheRequestVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddProperty*: proc(self: ptr IUIAutomationCacheRequest, propertyId: PROPERTYID): HRESULT {.stdcall.} - AddPattern*: proc(self: ptr IUIAutomationCacheRequest, patternId: PATTERNID): HRESULT {.stdcall.} - Clone*: proc(self: ptr IUIAutomationCacheRequest, clonedRequest: ptr ptr IUIAutomationCacheRequest): HRESULT {.stdcall.} - get_TreeScope*: proc(self: ptr IUIAutomationCacheRequest, scope: ptr TreeScope): HRESULT {.stdcall.} - put_TreeScope*: proc(self: ptr IUIAutomationCacheRequest, scope: TreeScope): HRESULT {.stdcall.} - get_TreeFilter*: proc(self: ptr IUIAutomationCacheRequest, filter: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - put_TreeFilter*: proc(self: ptr IUIAutomationCacheRequest, filter: ptr IUIAutomationCondition): HRESULT {.stdcall.} - get_AutomationElementMode*: proc(self: ptr IUIAutomationCacheRequest, mode: ptr AutomationElementMode): HRESULT {.stdcall.} - put_AutomationElementMode*: proc(self: ptr IUIAutomationCacheRequest, mode: AutomationElementMode): HRESULT {.stdcall.} + AddProperty*: proc( + self: ptr IUIAutomationCacheRequest, propertyId: PROPERTYID + ): HRESULT {.stdcall.} + AddPattern*: proc( + self: ptr IUIAutomationCacheRequest, patternId: PATTERNID + ): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IUIAutomationCacheRequest, + clonedRequest: ptr ptr IUIAutomationCacheRequest, + ): HRESULT {.stdcall.} + get_TreeScope*: proc( + self: ptr IUIAutomationCacheRequest, scope: ptr TreeScope + ): HRESULT {.stdcall.} + put_TreeScope*: + proc(self: ptr IUIAutomationCacheRequest, scope: TreeScope): HRESULT {.stdcall.} + get_TreeFilter*: proc( + self: ptr IUIAutomationCacheRequest, filter: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + put_TreeFilter*: proc( + self: ptr IUIAutomationCacheRequest, filter: ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + get_AutomationElementMode*: proc( + self: ptr IUIAutomationCacheRequest, mode: ptr AutomationElementMode + ): HRESULT {.stdcall.} + put_AutomationElementMode*: proc( + self: ptr IUIAutomationCacheRequest, mode: AutomationElementMode + ): HRESULT {.stdcall.} + IUIAutomationElement* {.pure.} = object lpVtbl*: ptr IUIAutomationElementVtbl + IUIAutomationElementVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetFocus*: proc(self: ptr IUIAutomationElement): HRESULT {.stdcall.} - GetRuntimeId*: proc(self: ptr IUIAutomationElement, runtimeId: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - FindFirst*: proc(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, found: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - FindAll*: proc(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, found: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - FindFirstBuildCache*: proc(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, found: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - FindAllBuildCache*: proc(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, found: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - BuildUpdatedCache*: proc(self: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, updatedElement: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetCurrentPropertyValue*: proc(self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT): HRESULT {.stdcall.} - GetCurrentPropertyValueEx*: proc(self: ptr IUIAutomationElement, propertyId: PROPERTYID, ignoreDefaultValue: BOOL, retVal: ptr VARIANT): HRESULT {.stdcall.} - GetCachedPropertyValue*: proc(self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT): HRESULT {.stdcall.} - GetCachedPropertyValueEx*: proc(self: ptr IUIAutomationElement, propertyId: PROPERTYID, ignoreDefaultValue: BOOL, retVal: ptr VARIANT): HRESULT {.stdcall.} - GetCurrentPatternAs*: proc(self: ptr IUIAutomationElement, patternId: PATTERNID, riid: REFIID, patternObject: ptr pointer): HRESULT {.stdcall.} - GetCachedPatternAs*: proc(self: ptr IUIAutomationElement, patternId: PATTERNID, riid: REFIID, patternObject: ptr pointer): HRESULT {.stdcall.} - GetCurrentPattern*: proc(self: ptr IUIAutomationElement, patternId: PATTERNID, patternObject: ptr ptr IUnknown): HRESULT {.stdcall.} - GetCachedPattern*: proc(self: ptr IUIAutomationElement, patternId: PATTERNID, patternObject: ptr ptr IUnknown): HRESULT {.stdcall.} - GetCachedParent*: proc(self: ptr IUIAutomationElement, parent: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetCachedChildren*: proc(self: ptr IUIAutomationElement, children: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentProcessId*: proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentControlType*: proc(self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID): HRESULT {.stdcall.} - get_CurrentLocalizedControlType*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentName*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentAcceleratorKey*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentAccessKey*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentHasKeyboardFocus*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsKeyboardFocusable*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsEnabled*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentAutomationId*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentClassName*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentHelpText*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentCulture*: proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentIsControlElement*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsContentElement*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsPassword*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentNativeWindowHandle*: proc(self: ptr IUIAutomationElement, retVal: ptr UIA_HWND): HRESULT {.stdcall.} - get_CurrentItemType*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentIsOffscreen*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentOrientation*: proc(self: ptr IUIAutomationElement, retVal: ptr OrientationType): HRESULT {.stdcall.} - get_CurrentFrameworkId*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentIsRequiredForForm*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentItemStatus*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentBoundingRectangle*: proc(self: ptr IUIAutomationElement, retVal: ptr RECT): HRESULT {.stdcall.} - get_CurrentLabeledBy*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CurrentAriaRole*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentAriaProperties*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentIsDataValidForForm*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentControllerFor*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentDescribedBy*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentFlowsTo*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentProviderDescription*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedProcessId*: proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedControlType*: proc(self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID): HRESULT {.stdcall.} - get_CachedLocalizedControlType*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedName*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedAcceleratorKey*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedAccessKey*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedHasKeyboardFocus*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsKeyboardFocusable*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsEnabled*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedAutomationId*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedClassName*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedHelpText*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedCulture*: proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedIsControlElement*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsContentElement*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsPassword*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedNativeWindowHandle*: proc(self: ptr IUIAutomationElement, retVal: ptr UIA_HWND): HRESULT {.stdcall.} - get_CachedItemType*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedIsOffscreen*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedOrientation*: proc(self: ptr IUIAutomationElement, retVal: ptr OrientationType): HRESULT {.stdcall.} - get_CachedFrameworkId*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedIsRequiredForForm*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedItemStatus*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedBoundingRectangle*: proc(self: ptr IUIAutomationElement, retVal: ptr RECT): HRESULT {.stdcall.} - get_CachedLabeledBy*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedAriaRole*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedAriaProperties*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedIsDataValidForForm*: proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedControllerFor*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedDescribedBy*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedFlowsTo*: proc(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedProviderDescription*: proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} - GetClickablePoint*: proc(self: ptr IUIAutomationElement, clickable: ptr POINT, gotClickable: ptr BOOL): HRESULT {.stdcall.} + GetRuntimeId*: proc( + self: ptr IUIAutomationElement, runtimeId: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + FindFirst*: proc( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + found: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + FindAll*: proc( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + found: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + FindFirstBuildCache*: proc( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + found: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + FindAllBuildCache*: proc( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + found: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + BuildUpdatedCache*: proc( + self: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + updatedElement: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetCurrentPropertyValue*: proc( + self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetCurrentPropertyValueEx*: proc( + self: ptr IUIAutomationElement, + propertyId: PROPERTYID, + ignoreDefaultValue: BOOL, + retVal: ptr VARIANT, + ): HRESULT {.stdcall.} + GetCachedPropertyValue*: proc( + self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT + ): HRESULT {.stdcall.} + GetCachedPropertyValueEx*: proc( + self: ptr IUIAutomationElement, + propertyId: PROPERTYID, + ignoreDefaultValue: BOOL, + retVal: ptr VARIANT, + ): HRESULT {.stdcall.} + GetCurrentPatternAs*: proc( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + riid: REFIID, + patternObject: ptr pointer, + ): HRESULT {.stdcall.} + GetCachedPatternAs*: proc( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + riid: REFIID, + patternObject: ptr pointer, + ): HRESULT {.stdcall.} + GetCurrentPattern*: proc( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + patternObject: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + GetCachedPattern*: proc( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + patternObject: ptr ptr IUnknown, + ): HRESULT {.stdcall.} + GetCachedParent*: proc( + self: ptr IUIAutomationElement, parent: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + GetCachedChildren*: proc( + self: ptr IUIAutomationElement, children: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CurrentProcessId*: + proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentControlType*: proc( + self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID + ): HRESULT {.stdcall.} + get_CurrentLocalizedControlType*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentName*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentAcceleratorKey*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentAccessKey*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentHasKeyboardFocus*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsKeyboardFocusable*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsEnabled*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentAutomationId*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentClassName*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentHelpText*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentCulture*: + proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentIsControlElement*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsContentElement*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsPassword*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentNativeWindowHandle*: + proc(self: ptr IUIAutomationElement, retVal: ptr UIA_HWND): HRESULT {.stdcall.} + get_CurrentItemType*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentIsOffscreen*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentOrientation*: proc( + self: ptr IUIAutomationElement, retVal: ptr OrientationType + ): HRESULT {.stdcall.} + get_CurrentFrameworkId*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentIsRequiredForForm*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentItemStatus*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentBoundingRectangle*: + proc(self: ptr IUIAutomationElement, retVal: ptr RECT): HRESULT {.stdcall.} + get_CurrentLabeledBy*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CurrentAriaRole*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentAriaProperties*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentIsDataValidForForm*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentControllerFor*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CurrentDescribedBy*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CurrentFlowsTo*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CurrentProviderDescription*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedProcessId*: + proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedControlType*: proc( + self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID + ): HRESULT {.stdcall.} + get_CachedLocalizedControlType*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedName*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedAcceleratorKey*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedAccessKey*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedHasKeyboardFocus*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsKeyboardFocusable*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsEnabled*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedAutomationId*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedClassName*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedHelpText*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedCulture*: + proc(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedIsControlElement*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsContentElement*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsPassword*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedNativeWindowHandle*: + proc(self: ptr IUIAutomationElement, retVal: ptr UIA_HWND): HRESULT {.stdcall.} + get_CachedItemType*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedIsOffscreen*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedOrientation*: proc( + self: ptr IUIAutomationElement, retVal: ptr OrientationType + ): HRESULT {.stdcall.} + get_CachedFrameworkId*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedIsRequiredForForm*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedItemStatus*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedBoundingRectangle*: + proc(self: ptr IUIAutomationElement, retVal: ptr RECT): HRESULT {.stdcall.} + get_CachedLabeledBy*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedAriaRole*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedAriaProperties*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedIsDataValidForForm*: + proc(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedControllerFor*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedDescribedBy*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedFlowsTo*: proc( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedProviderDescription*: + proc(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.stdcall.} + GetClickablePoint*: proc( + self: ptr IUIAutomationElement, clickable: ptr POINT, gotClickable: ptr BOOL + ): HRESULT {.stdcall.} + IUIAutomationBoolCondition* {.pure.} = object lpVtbl*: ptr IUIAutomationBoolConditionVtbl + IUIAutomationBoolConditionVtbl* {.pure, inheritable.} = object of IUIAutomationConditionVtbl - get_BooleanValue*: proc(self: ptr IUIAutomationBoolCondition, boolVal: ptr BOOL): HRESULT {.stdcall.} + get_BooleanValue*: + proc(self: ptr IUIAutomationBoolCondition, boolVal: ptr BOOL): HRESULT {.stdcall.} + IUIAutomationPropertyCondition* {.pure.} = object lpVtbl*: ptr IUIAutomationPropertyConditionVtbl + IUIAutomationPropertyConditionVtbl* {.pure, inheritable.} = object of IUIAutomationConditionVtbl - get_PropertyId*: proc(self: ptr IUIAutomationPropertyCondition, propertyId: ptr PROPERTYID): HRESULT {.stdcall.} - get_PropertyValue*: proc(self: ptr IUIAutomationPropertyCondition, propertyValue: ptr VARIANT): HRESULT {.stdcall.} - get_PropertyConditionFlags*: proc(self: ptr IUIAutomationPropertyCondition, flags: ptr PropertyConditionFlags): HRESULT {.stdcall.} + get_PropertyId*: proc( + self: ptr IUIAutomationPropertyCondition, propertyId: ptr PROPERTYID + ): HRESULT {.stdcall.} + get_PropertyValue*: proc( + self: ptr IUIAutomationPropertyCondition, propertyValue: ptr VARIANT + ): HRESULT {.stdcall.} + get_PropertyConditionFlags*: proc( + self: ptr IUIAutomationPropertyCondition, flags: ptr PropertyConditionFlags + ): HRESULT {.stdcall.} + IUIAutomationAndCondition* {.pure.} = object lpVtbl*: ptr IUIAutomationAndConditionVtbl + IUIAutomationAndConditionVtbl* {.pure, inheritable.} = object of IUIAutomationConditionVtbl - get_ChildCount*: proc(self: ptr IUIAutomationAndCondition, childCount: ptr int32): HRESULT {.stdcall.} - GetChildrenAsNativeArray*: proc(self: ptr IUIAutomationAndCondition, childArray: ptr ptr ptr IUIAutomationCondition, childArrayCount: ptr int32): HRESULT {.stdcall.} - GetChildren*: proc(self: ptr IUIAutomationAndCondition, childArray: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_ChildCount*: proc( + self: ptr IUIAutomationAndCondition, childCount: ptr int32 + ): HRESULT {.stdcall.} + GetChildrenAsNativeArray*: proc( + self: ptr IUIAutomationAndCondition, + childArray: ptr ptr ptr IUIAutomationCondition, + childArrayCount: ptr int32, + ): HRESULT {.stdcall.} + GetChildren*: proc( + self: ptr IUIAutomationAndCondition, childArray: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IUIAutomationOrCondition* {.pure.} = object lpVtbl*: ptr IUIAutomationOrConditionVtbl + IUIAutomationOrConditionVtbl* {.pure, inheritable.} = object of IUIAutomationConditionVtbl - get_ChildCount*: proc(self: ptr IUIAutomationOrCondition, childCount: ptr int32): HRESULT {.stdcall.} - GetChildrenAsNativeArray*: proc(self: ptr IUIAutomationOrCondition, childArray: ptr ptr ptr IUIAutomationCondition, childArrayCount: ptr int32): HRESULT {.stdcall.} - GetChildren*: proc(self: ptr IUIAutomationOrCondition, childArray: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_ChildCount*: proc( + self: ptr IUIAutomationOrCondition, childCount: ptr int32 + ): HRESULT {.stdcall.} + GetChildrenAsNativeArray*: proc( + self: ptr IUIAutomationOrCondition, + childArray: ptr ptr ptr IUIAutomationCondition, + childArrayCount: ptr int32, + ): HRESULT {.stdcall.} + GetChildren*: proc( + self: ptr IUIAutomationOrCondition, childArray: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IUIAutomationNotCondition* {.pure.} = object lpVtbl*: ptr IUIAutomationNotConditionVtbl + IUIAutomationNotConditionVtbl* {.pure, inheritable.} = object of IUIAutomationConditionVtbl - GetChild*: proc(self: ptr IUIAutomationNotCondition, condition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} + GetChild*: proc( + self: ptr IUIAutomationNotCondition, condition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + IUIAutomationTreeWalker* {.pure.} = object lpVtbl*: ptr IUIAutomationTreeWalkerVtbl + IUIAutomationTreeWalkerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetParentElement*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, parent: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetFirstChildElement*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, first: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetLastChildElement*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, last: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetNextSiblingElement*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, next: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetPreviousSiblingElement*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, previous: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - NormalizeElement*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, normalized: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetParentElementBuildCache*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, parent: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetFirstChildElementBuildCache*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, first: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetLastChildElementBuildCache*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, last: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetNextSiblingElementBuildCache*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, next: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetPreviousSiblingElementBuildCache*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, previous: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - NormalizeElementBuildCache*: proc(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, normalized: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_Condition*: proc(self: ptr IUIAutomationTreeWalker, condition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} + GetParentElement*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + parent: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetFirstChildElement*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + first: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetLastChildElement*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + last: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetNextSiblingElement*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + next: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetPreviousSiblingElement*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + previous: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + NormalizeElement*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + normalized: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetParentElementBuildCache*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + parent: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetFirstChildElementBuildCache*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + first: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetLastChildElementBuildCache*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + last: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetNextSiblingElementBuildCache*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + next: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetPreviousSiblingElementBuildCache*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + previous: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + NormalizeElementBuildCache*: proc( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + normalized: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + get_Condition*: proc( + self: ptr IUIAutomationTreeWalker, condition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + IUIAutomationEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationEventHandlerVtbl + IUIAutomationEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleAutomationEvent*: proc(self: ptr IUIAutomationEventHandler, sender: ptr IUIAutomationElement, eventId: EVENTID): HRESULT {.stdcall.} + HandleAutomationEvent*: proc( + self: ptr IUIAutomationEventHandler, + sender: ptr IUIAutomationElement, + eventId: EVENTID, + ): HRESULT {.stdcall.} + IUIAutomationPropertyChangedEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationPropertyChangedEventHandlerVtbl + IUIAutomationPropertyChangedEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandlePropertyChangedEvent*: proc(self: ptr IUIAutomationPropertyChangedEventHandler, sender: ptr IUIAutomationElement, propertyId: PROPERTYID, newValue: VARIANT): HRESULT {.stdcall.} + HandlePropertyChangedEvent*: proc( + self: ptr IUIAutomationPropertyChangedEventHandler, + sender: ptr IUIAutomationElement, + propertyId: PROPERTYID, + newValue: VARIANT, + ): HRESULT {.stdcall.} + IUIAutomationStructureChangedEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationStructureChangedEventHandlerVtbl + IUIAutomationStructureChangedEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleStructureChangedEvent*: proc(self: ptr IUIAutomationStructureChangedEventHandler, sender: ptr IUIAutomationElement, changeType: StructureChangeType, runtimeId: ptr SAFEARRAY): HRESULT {.stdcall.} + HandleStructureChangedEvent*: proc( + self: ptr IUIAutomationStructureChangedEventHandler, + sender: ptr IUIAutomationElement, + changeType: StructureChangeType, + runtimeId: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IUIAutomationFocusChangedEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationFocusChangedEventHandlerVtbl + IUIAutomationFocusChangedEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleFocusChangedEvent*: proc(self: ptr IUIAutomationFocusChangedEventHandler, sender: ptr IUIAutomationElement): HRESULT {.stdcall.} + HandleFocusChangedEvent*: proc( + self: ptr IUIAutomationFocusChangedEventHandler, sender: ptr IUIAutomationElement + ): HRESULT {.stdcall.} + IUIAutomationTextEditTextChangedEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationTextEditTextChangedEventHandlerVtbl + IUIAutomationTextEditTextChangedEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleTextEditTextChangedEvent*: proc(self: ptr IUIAutomationTextEditTextChangedEventHandler, sender: ptr IUIAutomationElement, textEditChangeType: TextEditChangeType, eventStrings: ptr SAFEARRAY): HRESULT {.stdcall.} + HandleTextEditTextChangedEvent*: proc( + self: ptr IUIAutomationTextEditTextChangedEventHandler, + sender: ptr IUIAutomationElement, + textEditChangeType: TextEditChangeType, + eventStrings: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IUIAutomationChangesEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationChangesEventHandlerVtbl + IUIAutomationChangesEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleChangesEvent*: proc(self: ptr IUIAutomationChangesEventHandler, sender: ptr IUIAutomationElement, uiaChanges: ptr UiaChangeInfo, changesCount: int32): HRESULT {.stdcall.} + HandleChangesEvent*: proc( + self: ptr IUIAutomationChangesEventHandler, + sender: ptr IUIAutomationElement, + uiaChanges: ptr UiaChangeInfo, + changesCount: int32, + ): HRESULT {.stdcall.} + IUIAutomationNotificationEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationNotificationEventHandlerVtbl + IUIAutomationNotificationEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleNotificationEvent*: proc(self: ptr IUIAutomationNotificationEventHandler, sender: ptr IUIAutomationElement, notificationKind: NotificationKind, notificationProcessing: NotificationProcessing, displayString: BSTR, activityId: BSTR): HRESULT {.stdcall.} + HandleNotificationEvent*: proc( + self: ptr IUIAutomationNotificationEventHandler, + sender: ptr IUIAutomationElement, + notificationKind: NotificationKind, + notificationProcessing: NotificationProcessing, + displayString: BSTR, + activityId: BSTR, + ): HRESULT {.stdcall.} + IUIAutomationInvokePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationInvokePatternVtbl + IUIAutomationInvokePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl Invoke*: proc(self: ptr IUIAutomationInvokePattern): HRESULT {.stdcall.} + IUIAutomationDockPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationDockPatternVtbl + IUIAutomationDockPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetDockPosition*: proc(self: ptr IUIAutomationDockPattern, dockPos: DockPosition): HRESULT {.stdcall.} - get_CurrentDockPosition*: proc(self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition): HRESULT {.stdcall.} - get_CachedDockPosition*: proc(self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition): HRESULT {.stdcall.} + SetDockPosition*: proc( + self: ptr IUIAutomationDockPattern, dockPos: DockPosition + ): HRESULT {.stdcall.} + get_CurrentDockPosition*: proc( + self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition + ): HRESULT {.stdcall.} + get_CachedDockPosition*: proc( + self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition + ): HRESULT {.stdcall.} + IUIAutomationExpandCollapsePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationExpandCollapsePatternVtbl + IUIAutomationExpandCollapsePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl Expand*: proc(self: ptr IUIAutomationExpandCollapsePattern): HRESULT {.stdcall.} Collapse*: proc(self: ptr IUIAutomationExpandCollapsePattern): HRESULT {.stdcall.} - get_CurrentExpandCollapseState*: proc(self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState): HRESULT {.stdcall.} - get_CachedExpandCollapseState*: proc(self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState): HRESULT {.stdcall.} + get_CurrentExpandCollapseState*: proc( + self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState + ): HRESULT {.stdcall.} + get_CachedExpandCollapseState*: proc( + self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState + ): HRESULT {.stdcall.} + IUIAutomationGridPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationGridPatternVtbl + IUIAutomationGridPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetItem*: proc(self: ptr IUIAutomationGridPattern, row: int32, column: int32, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CurrentRowCount*: proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentColumnCount*: proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedRowCount*: proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedColumnCount*: proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} + GetItem*: proc( + self: ptr IUIAutomationGridPattern, + row: int32, + column: int32, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + get_CurrentRowCount*: + proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentColumnCount*: + proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedRowCount*: + proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedColumnCount*: + proc(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.stdcall.} + IUIAutomationGridItemPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationGridItemPatternVtbl + IUIAutomationGridItemPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_CurrentContainingGrid*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CurrentRow*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentColumn*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentRowSpan*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentColumnSpan*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedContainingGrid*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedRow*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedColumn*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedRowSpan*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedColumnSpan*: proc(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentContainingGrid*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CurrentRow*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CurrentColumn*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CurrentRowSpan*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CurrentColumnSpan*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedContainingGrid*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedRow*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedColumn*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedRowSpan*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedColumnSpan*: proc( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + IUIAutomationMultipleViewPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationMultipleViewPatternVtbl + IUIAutomationMultipleViewPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetViewName*: proc(self: ptr IUIAutomationMultipleViewPattern, view: int32, name: ptr BSTR): HRESULT {.stdcall.} - SetCurrentView*: proc(self: ptr IUIAutomationMultipleViewPattern, view: int32): HRESULT {.stdcall.} - get_CurrentCurrentView*: proc(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32): HRESULT {.stdcall.} - GetCurrentSupportedViews*: proc(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CachedCurrentView*: proc(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32): HRESULT {.stdcall.} - GetCachedSupportedViews*: proc(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetViewName*: proc( + self: ptr IUIAutomationMultipleViewPattern, view: int32, name: ptr BSTR + ): HRESULT {.stdcall.} + SetCurrentView*: + proc(self: ptr IUIAutomationMultipleViewPattern, view: int32): HRESULT {.stdcall.} + get_CurrentCurrentView*: proc( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + GetCurrentSupportedViews*: proc( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CachedCurrentView*: proc( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + GetCachedSupportedViews*: proc( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IUIAutomationObjectModelPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationObjectModelPatternVtbl + IUIAutomationObjectModelPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetUnderlyingObjectModel*: proc(self: ptr IUIAutomationObjectModelPattern, retVal: ptr ptr IUnknown): HRESULT {.stdcall.} + GetUnderlyingObjectModel*: proc( + self: ptr IUIAutomationObjectModelPattern, retVal: ptr ptr IUnknown + ): HRESULT {.stdcall.} + IUIAutomationRangeValuePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationRangeValuePatternVtbl + IUIAutomationRangeValuePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - SetValue*: proc(self: ptr IUIAutomationRangeValuePattern, val: float64): HRESULT {.stdcall.} - get_CurrentValue*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentIsReadOnly*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentMaximum*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentMinimum*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentLargeChange*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentSmallChange*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedValue*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedIsReadOnly*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedMaximum*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedMinimum*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedLargeChange*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedSmallChange*: proc(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.stdcall.} + SetValue*: + proc(self: ptr IUIAutomationRangeValuePattern, val: float64): HRESULT {.stdcall.} + get_CurrentValue*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentIsReadOnly*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CurrentMaximum*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentMinimum*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentLargeChange*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentSmallChange*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedValue*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedIsReadOnly*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedMaximum*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedMinimum*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedLargeChange*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedSmallChange*: proc( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + IUIAutomationScrollPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationScrollPatternVtbl + IUIAutomationScrollPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Scroll*: proc(self: ptr IUIAutomationScrollPattern, horizontalAmount: ScrollAmount, verticalAmount: ScrollAmount): HRESULT {.stdcall.} - SetScrollPercent*: proc(self: ptr IUIAutomationScrollPattern, horizontalPercent: float64, verticalPercent: float64): HRESULT {.stdcall.} - get_CurrentHorizontalScrollPercent*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentVerticalScrollPercent*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentHorizontalViewSize*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentVerticalViewSize*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentHorizontallyScrollable*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentVerticallyScrollable*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedHorizontalScrollPercent*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedVerticalScrollPercent*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedHorizontalViewSize*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedVerticalViewSize*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedHorizontallyScrollable*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedVerticallyScrollable*: proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + Scroll*: proc( + self: ptr IUIAutomationScrollPattern, + horizontalAmount: ScrollAmount, + verticalAmount: ScrollAmount, + ): HRESULT {.stdcall.} + SetScrollPercent*: proc( + self: ptr IUIAutomationScrollPattern, + horizontalPercent: float64, + verticalPercent: float64, + ): HRESULT {.stdcall.} + get_CurrentHorizontalScrollPercent*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentVerticalScrollPercent*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentHorizontalViewSize*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentVerticalViewSize*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentHorizontallyScrollable*: + proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentVerticallyScrollable*: + proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedHorizontalScrollPercent*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedVerticalScrollPercent*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedHorizontalViewSize*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedVerticalViewSize*: proc( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedHorizontallyScrollable*: + proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedVerticallyScrollable*: + proc(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + IUIAutomationScrollItemPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationScrollItemPatternVtbl + IUIAutomationScrollItemPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl ScrollIntoView*: proc(self: ptr IUIAutomationScrollItemPattern): HRESULT {.stdcall.} + IUIAutomationSelectionPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationSelectionPatternVtbl + IUIAutomationSelectionPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentSelection*: proc(self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentCanSelectMultiple*: proc(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsSelectionRequired*: proc(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - GetCachedSelection*: proc(self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedCanSelectMultiple*: proc(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsSelectionRequired*: proc(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + GetCurrentSelection*: proc( + self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CurrentCanSelectMultiple*: proc( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CurrentIsSelectionRequired*: proc( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + GetCachedSelection*: proc( + self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedCanSelectMultiple*: proc( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedIsSelectionRequired*: proc( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + IUIAutomationSelectionPattern2* {.pure.} = object lpVtbl*: ptr IUIAutomationSelectionPattern2Vtbl + IUIAutomationSelectionPattern2Vtbl* {.pure, inheritable.} = object of IUIAutomationSelectionPatternVtbl - get_CurrentFirstSelectedItem*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CurrentLastSelectedItem*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CurrentCurrentSelectedItem*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CurrentItemCount*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedFirstSelectedItem*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedLastSelectedItem*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedCurrentSelectedItem*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedItemCount*: proc(self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentFirstSelectedItem*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CurrentLastSelectedItem*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CurrentCurrentSelectedItem*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CurrentItemCount*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedFirstSelectedItem*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedLastSelectedItem*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedCurrentSelectedItem*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedItemCount*: proc( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32 + ): HRESULT {.stdcall.} + IUIAutomationSelectionItemPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationSelectionItemPatternVtbl + IUIAutomationSelectionItemPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl Select*: proc(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.stdcall.} - AddToSelection*: proc(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.stdcall.} - RemoveFromSelection*: proc(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.stdcall.} - get_CurrentIsSelected*: proc(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentSelectionContainer*: proc(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedIsSelected*: proc(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedSelectionContainer*: proc(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + AddToSelection*: + proc(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.stdcall.} + RemoveFromSelection*: + proc(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.stdcall.} + get_CurrentIsSelected*: proc( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CurrentSelectionContainer*: proc( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedIsSelected*: proc( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedSelectionContainer*: proc( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + IUIAutomationSynchronizedInputPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationSynchronizedInputPatternVtbl + IUIAutomationSynchronizedInputPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - StartListening*: proc(self: ptr IUIAutomationSynchronizedInputPattern, inputType: SynchronizedInputType): HRESULT {.stdcall.} + StartListening*: proc( + self: ptr IUIAutomationSynchronizedInputPattern, inputType: SynchronizedInputType + ): HRESULT {.stdcall.} Cancel*: proc(self: ptr IUIAutomationSynchronizedInputPattern): HRESULT {.stdcall.} + IUIAutomationTablePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTablePatternVtbl + IUIAutomationTablePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentRowHeaders*: proc(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCurrentColumnHeaders*: proc(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentRowOrColumnMajor*: proc(self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor): HRESULT {.stdcall.} - GetCachedRowHeaders*: proc(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCachedColumnHeaders*: proc(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedRowOrColumnMajor*: proc(self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor): HRESULT {.stdcall.} + GetCurrentRowHeaders*: proc( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + GetCurrentColumnHeaders*: proc( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CurrentRowOrColumnMajor*: proc( + self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor + ): HRESULT {.stdcall.} + GetCachedRowHeaders*: proc( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + GetCachedColumnHeaders*: proc( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedRowOrColumnMajor*: proc( + self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor + ): HRESULT {.stdcall.} + IUIAutomationTableItemPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTableItemPatternVtbl + IUIAutomationTableItemPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetCurrentRowHeaderItems*: proc(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCurrentColumnHeaderItems*: proc(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCachedRowHeaderItems*: proc(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCachedColumnHeaderItems*: proc(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} + GetCurrentRowHeaderItems*: proc( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + GetCurrentColumnHeaderItems*: proc( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + GetCachedRowHeaderItems*: proc( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + GetCachedColumnHeaderItems*: proc( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + IUIAutomationTogglePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTogglePatternVtbl + IUIAutomationTogglePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl Toggle*: proc(self: ptr IUIAutomationTogglePattern): HRESULT {.stdcall.} - get_CurrentToggleState*: proc(self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState): HRESULT {.stdcall.} - get_CachedToggleState*: proc(self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState): HRESULT {.stdcall.} + get_CurrentToggleState*: proc( + self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState + ): HRESULT {.stdcall.} + get_CachedToggleState*: proc( + self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState + ): HRESULT {.stdcall.} + IUIAutomationTransformPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTransformPatternVtbl + IUIAutomationTransformPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Move*: proc(self: ptr IUIAutomationTransformPattern, x: float64, y: float64): HRESULT {.stdcall.} - Resize*: proc(self: ptr IUIAutomationTransformPattern, width: float64, height: float64): HRESULT {.stdcall.} - Rotate*: proc(self: ptr IUIAutomationTransformPattern, degrees: float64): HRESULT {.stdcall.} - get_CurrentCanMove*: proc(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentCanResize*: proc(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentCanRotate*: proc(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedCanMove*: proc(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedCanResize*: proc(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedCanRotate*: proc(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + Move*: proc( + self: ptr IUIAutomationTransformPattern, x: float64, y: float64 + ): HRESULT {.stdcall.} + Resize*: proc( + self: ptr IUIAutomationTransformPattern, width: float64, height: float64 + ): HRESULT {.stdcall.} + Rotate*: proc(self: ptr IUIAutomationTransformPattern, degrees: float64): HRESULT {. + stdcall + .} + get_CurrentCanMove*: proc( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CurrentCanResize*: proc( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CurrentCanRotate*: proc( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedCanMove*: proc( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedCanResize*: proc( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedCanRotate*: proc( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL + ): HRESULT {.stdcall.} + IUIAutomationValuePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationValuePatternVtbl + IUIAutomationValuePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl SetValue*: proc(self: ptr IUIAutomationValuePattern, val: BSTR): HRESULT {.stdcall.} - get_CurrentValue*: proc(self: ptr IUIAutomationValuePattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentIsReadOnly*: proc(self: ptr IUIAutomationValuePattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedValue*: proc(self: ptr IUIAutomationValuePattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedIsReadOnly*: proc(self: ptr IUIAutomationValuePattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentValue*: + proc(self: ptr IUIAutomationValuePattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentIsReadOnly*: + proc(self: ptr IUIAutomationValuePattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedValue*: + proc(self: ptr IUIAutomationValuePattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedIsReadOnly*: + proc(self: ptr IUIAutomationValuePattern, retVal: ptr BOOL): HRESULT {.stdcall.} + IUIAutomationWindowPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationWindowPatternVtbl + IUIAutomationWindowPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl Close*: proc(self: ptr IUIAutomationWindowPattern): HRESULT {.stdcall.} - WaitForInputIdle*: proc(self: ptr IUIAutomationWindowPattern, milliseconds: int32, success: ptr BOOL): HRESULT {.stdcall.} - SetWindowVisualState*: proc(self: ptr IUIAutomationWindowPattern, state: WindowVisualState): HRESULT {.stdcall.} - get_CurrentCanMaximize*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentCanMinimize*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsModal*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentIsTopmost*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentWindowVisualState*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState): HRESULT {.stdcall.} - get_CurrentWindowInteractionState*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState): HRESULT {.stdcall.} - get_CachedCanMaximize*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedCanMinimize*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsModal*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsTopmost*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedWindowVisualState*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState): HRESULT {.stdcall.} - get_CachedWindowInteractionState*: proc(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState): HRESULT {.stdcall.} + WaitForInputIdle*: proc( + self: ptr IUIAutomationWindowPattern, milliseconds: int32, success: ptr BOOL + ): HRESULT {.stdcall.} + SetWindowVisualState*: proc( + self: ptr IUIAutomationWindowPattern, state: WindowVisualState + ): HRESULT {.stdcall.} + get_CurrentCanMaximize*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentCanMinimize*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsModal*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsTopmost*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentWindowVisualState*: proc( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState + ): HRESULT {.stdcall.} + get_CurrentWindowInteractionState*: proc( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState + ): HRESULT {.stdcall.} + get_CachedCanMaximize*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedCanMinimize*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsModal*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsTopmost*: + proc(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedWindowVisualState*: proc( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState + ): HRESULT {.stdcall.} + get_CachedWindowInteractionState*: proc( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState + ): HRESULT {.stdcall.} + IUIAutomationTextRange* {.pure.} = object lpVtbl*: ptr IUIAutomationTextRangeVtbl + IUIAutomationTextRangeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Clone*: proc(self: ptr IUIAutomationTextRange, clonedRange: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - Compare*: proc(self: ptr IUIAutomationTextRange, range: ptr IUIAutomationTextRange, areSame: ptr BOOL): HRESULT {.stdcall.} - CompareEndpoints*: proc(self: ptr IUIAutomationTextRange, srcEndPoint: TextPatternRangeEndpoint, range: ptr IUIAutomationTextRange, targetEndPoint: TextPatternRangeEndpoint, compValue: ptr int32): HRESULT {.stdcall.} - ExpandToEnclosingUnit*: proc(self: ptr IUIAutomationTextRange, textUnit: TextUnit): HRESULT {.stdcall.} - FindAttribute*: proc(self: ptr IUIAutomationTextRange, attr: TEXTATTRIBUTEID, val: VARIANT, backward: BOOL, found: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - FindText*: proc(self: ptr IUIAutomationTextRange, text: BSTR, backward: BOOL, ignoreCase: BOOL, found: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - GetAttributeValue*: proc(self: ptr IUIAutomationTextRange, attr: TEXTATTRIBUTEID, value: ptr VARIANT): HRESULT {.stdcall.} - GetBoundingRectangles*: proc(self: ptr IUIAutomationTextRange, boundingRects: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetEnclosingElement*: proc(self: ptr IUIAutomationTextRange, enclosingElement: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetText*: proc(self: ptr IUIAutomationTextRange, maxLength: int32, text: ptr BSTR): HRESULT {.stdcall.} - Move*: proc(self: ptr IUIAutomationTextRange, unit: TextUnit, count: int32, moved: ptr int32): HRESULT {.stdcall.} - MoveEndpointByUnit*: proc(self: ptr IUIAutomationTextRange, endpoint: TextPatternRangeEndpoint, unit: TextUnit, count: int32, moved: ptr int32): HRESULT {.stdcall.} - MoveEndpointByRange*: proc(self: ptr IUIAutomationTextRange, srcEndPoint: TextPatternRangeEndpoint, range: ptr IUIAutomationTextRange, targetEndPoint: TextPatternRangeEndpoint): HRESULT {.stdcall.} + Clone*: proc( + self: ptr IUIAutomationTextRange, clonedRange: ptr ptr IUIAutomationTextRange + ): HRESULT {.stdcall.} + Compare*: proc( + self: ptr IUIAutomationTextRange, + range: ptr IUIAutomationTextRange, + areSame: ptr BOOL, + ): HRESULT {.stdcall.} + CompareEndpoints*: proc( + self: ptr IUIAutomationTextRange, + srcEndPoint: TextPatternRangeEndpoint, + range: ptr IUIAutomationTextRange, + targetEndPoint: TextPatternRangeEndpoint, + compValue: ptr int32, + ): HRESULT {.stdcall.} + ExpandToEnclosingUnit*: + proc(self: ptr IUIAutomationTextRange, textUnit: TextUnit): HRESULT {.stdcall.} + FindAttribute*: proc( + self: ptr IUIAutomationTextRange, + attr: TEXTATTRIBUTEID, + val: VARIANT, + backward: BOOL, + found: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + FindText*: proc( + self: ptr IUIAutomationTextRange, + text: BSTR, + backward: BOOL, + ignoreCase: BOOL, + found: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + GetAttributeValue*: proc( + self: ptr IUIAutomationTextRange, attr: TEXTATTRIBUTEID, value: ptr VARIANT + ): HRESULT {.stdcall.} + GetBoundingRectangles*: proc( + self: ptr IUIAutomationTextRange, boundingRects: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetEnclosingElement*: proc( + self: ptr IUIAutomationTextRange, enclosingElement: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + GetText*: proc( + self: ptr IUIAutomationTextRange, maxLength: int32, text: ptr BSTR + ): HRESULT {.stdcall.} + Move*: proc( + self: ptr IUIAutomationTextRange, unit: TextUnit, count: int32, moved: ptr int32 + ): HRESULT {.stdcall.} + MoveEndpointByUnit*: proc( + self: ptr IUIAutomationTextRange, + endpoint: TextPatternRangeEndpoint, + unit: TextUnit, + count: int32, + moved: ptr int32, + ): HRESULT {.stdcall.} + MoveEndpointByRange*: proc( + self: ptr IUIAutomationTextRange, + srcEndPoint: TextPatternRangeEndpoint, + range: ptr IUIAutomationTextRange, + targetEndPoint: TextPatternRangeEndpoint, + ): HRESULT {.stdcall.} Select*: proc(self: ptr IUIAutomationTextRange): HRESULT {.stdcall.} AddToSelection*: proc(self: ptr IUIAutomationTextRange): HRESULT {.stdcall.} RemoveFromSelection*: proc(self: ptr IUIAutomationTextRange): HRESULT {.stdcall.} - ScrollIntoView*: proc(self: ptr IUIAutomationTextRange, alignToTop: BOOL): HRESULT {.stdcall.} - GetChildren*: proc(self: ptr IUIAutomationTextRange, children: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} + ScrollIntoView*: + proc(self: ptr IUIAutomationTextRange, alignToTop: BOOL): HRESULT {.stdcall.} + GetChildren*: proc( + self: ptr IUIAutomationTextRange, children: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + IUIAutomationTextRange2* {.pure.} = object lpVtbl*: ptr IUIAutomationTextRange2Vtbl + IUIAutomationTextRange2Vtbl* {.pure, inheritable.} = object of IUIAutomationTextRangeVtbl ShowContextMenu*: proc(self: ptr IUIAutomationTextRange2): HRESULT {.stdcall.} + IUIAutomationTextRange3* {.pure.} = object lpVtbl*: ptr IUIAutomationTextRange3Vtbl + IUIAutomationTextRange3Vtbl* {.pure, inheritable.} = object of IUIAutomationTextRange2Vtbl - GetEnclosingElementBuildCache*: proc(self: ptr IUIAutomationTextRange3, cacheRequest: ptr IUIAutomationCacheRequest, enclosingElement: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetChildrenBuildCache*: proc(self: ptr IUIAutomationTextRange3, cacheRequest: ptr IUIAutomationCacheRequest, children: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetAttributeValues*: proc(self: ptr IUIAutomationTextRange3, attributeIds: ptr TEXTATTRIBUTEID, attributeIdCount: int32, attributeValues: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + GetEnclosingElementBuildCache*: proc( + self: ptr IUIAutomationTextRange3, + cacheRequest: ptr IUIAutomationCacheRequest, + enclosingElement: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetChildrenBuildCache*: proc( + self: ptr IUIAutomationTextRange3, + cacheRequest: ptr IUIAutomationCacheRequest, + children: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + GetAttributeValues*: proc( + self: ptr IUIAutomationTextRange3, + attributeIds: ptr TEXTATTRIBUTEID, + attributeIdCount: int32, + attributeValues: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IUIAutomationTextRangeArray* {.pure.} = object lpVtbl*: ptr IUIAutomationTextRangeArrayVtbl + IUIAutomationTextRangeArrayVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_Length*: proc(self: ptr IUIAutomationTextRangeArray, length: ptr int32): HRESULT {.stdcall.} - GetElement*: proc(self: ptr IUIAutomationTextRangeArray, index: int32, element: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} + get_Length*: proc(self: ptr IUIAutomationTextRangeArray, length: ptr int32): HRESULT {. + stdcall + .} + GetElement*: proc( + self: ptr IUIAutomationTextRangeArray, + index: int32, + element: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + IUIAutomationTextPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTextPatternVtbl + IUIAutomationTextPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - RangeFromPoint*: proc(self: ptr IUIAutomationTextPattern, pt: POINT, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - RangeFromChild*: proc(self: ptr IUIAutomationTextPattern, child: ptr IUIAutomationElement, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - GetSelection*: proc(self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray): HRESULT {.stdcall.} - GetVisibleRanges*: proc(self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray): HRESULT {.stdcall.} - get_DocumentRange*: proc(self: ptr IUIAutomationTextPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - get_SupportedTextSelection*: proc(self: ptr IUIAutomationTextPattern, supportedTextSelection: ptr SupportedTextSelection): HRESULT {.stdcall.} + RangeFromPoint*: proc( + self: ptr IUIAutomationTextPattern, + pt: POINT, + range: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + RangeFromChild*: proc( + self: ptr IUIAutomationTextPattern, + child: ptr IUIAutomationElement, + range: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + GetSelection*: proc( + self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray + ): HRESULT {.stdcall.} + GetVisibleRanges*: proc( + self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray + ): HRESULT {.stdcall.} + get_DocumentRange*: proc( + self: ptr IUIAutomationTextPattern, range: ptr ptr IUIAutomationTextRange + ): HRESULT {.stdcall.} + get_SupportedTextSelection*: proc( + self: ptr IUIAutomationTextPattern, + supportedTextSelection: ptr SupportedTextSelection, + ): HRESULT {.stdcall.} + IUIAutomationTextPattern2* {.pure.} = object lpVtbl*: ptr IUIAutomationTextPattern2Vtbl + IUIAutomationTextPattern2Vtbl* {.pure, inheritable.} = object of IUIAutomationTextPatternVtbl - RangeFromAnnotation*: proc(self: ptr IUIAutomationTextPattern2, annotation: ptr IUIAutomationElement, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - GetCaretRange*: proc(self: ptr IUIAutomationTextPattern2, isActive: ptr BOOL, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} + RangeFromAnnotation*: proc( + self: ptr IUIAutomationTextPattern2, + annotation: ptr IUIAutomationElement, + range: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + GetCaretRange*: proc( + self: ptr IUIAutomationTextPattern2, + isActive: ptr BOOL, + range: ptr ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + IUIAutomationTextEditPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTextEditPatternVtbl + IUIAutomationTextEditPatternVtbl* {.pure, inheritable.} = object of IUIAutomationTextPatternVtbl - GetActiveComposition*: proc(self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} - GetConversionTarget*: proc(self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} + GetActiveComposition*: proc( + self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange + ): HRESULT {.stdcall.} + GetConversionTarget*: proc( + self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange + ): HRESULT {.stdcall.} + IUIAutomationCustomNavigationPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationCustomNavigationPatternVtbl + IUIAutomationCustomNavigationPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Navigate*: proc(self: ptr IUIAutomationCustomNavigationPattern, direction: NavigateDirection, pRetVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + Navigate*: proc( + self: ptr IUIAutomationCustomNavigationPattern, + direction: NavigateDirection, + pRetVal: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + IUIAutomationActiveTextPositionChangedEventHandler* {.pure.} = object lpVtbl*: ptr IUIAutomationActiveTextPositionChangedEventHandlerVtbl + IUIAutomationActiveTextPositionChangedEventHandlerVtbl* {.pure, inheritable.} = object of IUnknownVtbl - HandleActiveTextPositionChangedEvent*: proc(self: ptr IUIAutomationActiveTextPositionChangedEventHandler, sender: ptr IUIAutomationElement, range: ptr IUIAutomationTextRange): HRESULT {.stdcall.} + HandleActiveTextPositionChangedEvent*: proc( + self: ptr IUIAutomationActiveTextPositionChangedEventHandler, + sender: ptr IUIAutomationElement, + range: ptr IUIAutomationTextRange, + ): HRESULT {.stdcall.} + IUIAutomationLegacyIAccessiblePattern* {.pure.} = object lpVtbl*: ptr IUIAutomationLegacyIAccessiblePatternVtbl + IUIAutomationLegacyIAccessiblePatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Select*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, flagsSelect: int32): HRESULT {.stdcall.} - DoDefaultAction*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern): HRESULT {.stdcall.} - SetValue*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, szValue: LPCWSTR): HRESULT {.stdcall.} - get_CurrentChildId*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32): HRESULT {.stdcall.} - get_CurrentName*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR): HRESULT {.stdcall.} - get_CurrentValue*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR): HRESULT {.stdcall.} - get_CurrentDescription*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR): HRESULT {.stdcall.} - get_CurrentRole*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD): HRESULT {.stdcall.} - get_CurrentState*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD): HRESULT {.stdcall.} - get_CurrentHelp*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR): HRESULT {.stdcall.} - get_CurrentKeyboardShortcut*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR): HRESULT {.stdcall.} - GetCurrentSelection*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pvarSelectedChildren: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CurrentDefaultAction*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR): HRESULT {.stdcall.} - get_CachedChildId*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32): HRESULT {.stdcall.} - get_CachedName*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR): HRESULT {.stdcall.} - get_CachedValue*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR): HRESULT {.stdcall.} - get_CachedDescription*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR): HRESULT {.stdcall.} - get_CachedRole*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD): HRESULT {.stdcall.} - get_CachedState*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD): HRESULT {.stdcall.} - get_CachedHelp*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR): HRESULT {.stdcall.} - get_CachedKeyboardShortcut*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR): HRESULT {.stdcall.} - GetCachedSelection*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pvarSelectedChildren: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedDefaultAction*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR): HRESULT {.stdcall.} - GetIAccessible*: proc(self: ptr IUIAutomationLegacyIAccessiblePattern, ppAccessible: ptr ptr IAccessible): HRESULT {.stdcall.} + Select*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, flagsSelect: int32 + ): HRESULT {.stdcall.} + DoDefaultAction*: + proc(self: ptr IUIAutomationLegacyIAccessiblePattern): HRESULT {.stdcall.} + SetValue*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, szValue: LPCWSTR + ): HRESULT {.stdcall.} + get_CurrentChildId*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32 + ): HRESULT {.stdcall.} + get_CurrentName*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentValue*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentDescription*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentRole*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD + ): HRESULT {.stdcall.} + get_CurrentState*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD + ): HRESULT {.stdcall.} + get_CurrentHelp*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentKeyboardShortcut*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR + ): HRESULT {.stdcall.} + GetCurrentSelection*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, + pvarSelectedChildren: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + get_CurrentDefaultAction*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedChildId*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedName*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedValue*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedDescription*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedRole*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD + ): HRESULT {.stdcall.} + get_CachedState*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD + ): HRESULT {.stdcall.} + get_CachedHelp*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedKeyboardShortcut*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR + ): HRESULT {.stdcall.} + GetCachedSelection*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, + pvarSelectedChildren: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + get_CachedDefaultAction*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR + ): HRESULT {.stdcall.} + GetIAccessible*: proc( + self: ptr IUIAutomationLegacyIAccessiblePattern, ppAccessible: ptr ptr IAccessible + ): HRESULT {.stdcall.} + IUIAutomationItemContainerPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationItemContainerPatternVtbl + IUIAutomationItemContainerPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - FindItemByProperty*: proc(self: ptr IUIAutomationItemContainerPattern, pStartAfter: ptr IUIAutomationElement, propertyId: PROPERTYID, value: VARIANT, pFound: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + FindItemByProperty*: proc( + self: ptr IUIAutomationItemContainerPattern, + pStartAfter: ptr IUIAutomationElement, + propertyId: PROPERTYID, + value: VARIANT, + pFound: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + IUIAutomationVirtualizedItemPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationVirtualizedItemPatternVtbl + IUIAutomationVirtualizedItemPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl Realize*: proc(self: ptr IUIAutomationVirtualizedItemPattern): HRESULT {.stdcall.} + IUIAutomationAnnotationPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationAnnotationPatternVtbl + IUIAutomationAnnotationPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_CurrentAnnotationTypeId*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentAnnotationTypeName*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentAuthor*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentDateTime*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentTarget*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_CachedAnnotationTypeId*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedAnnotationTypeName*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedAuthor*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedDateTime*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedTarget*: proc(self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + get_CurrentAnnotationTypeId*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CurrentAnnotationTypeName*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentAuthor*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentDateTime*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentTarget*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_CachedAnnotationTypeId*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32 + ): HRESULT {.stdcall.} + get_CachedAnnotationTypeName*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedAuthor*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedDateTime*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedTarget*: proc( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + IUIAutomationStylesPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationStylesPatternVtbl + IUIAutomationStylesPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_CurrentStyleId*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentStyleName*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentFillColor*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentFillPatternStyle*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentShape*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentFillPatternColor*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentExtendedProperties*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - GetCurrentExtendedPropertiesAsArray*: proc(self: ptr IUIAutomationStylesPattern, propertyArray: ptr ptr TExtendedProperty, propertyCount: ptr int32): HRESULT {.stdcall.} - get_CachedStyleId*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedStyleName*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedFillColor*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedFillPatternStyle*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedShape*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedFillPatternColor*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedExtendedProperties*: proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - GetCachedExtendedPropertiesAsArray*: proc(self: ptr IUIAutomationStylesPattern, propertyArray: ptr ptr TExtendedProperty, propertyCount: ptr int32): HRESULT {.stdcall.} + get_CurrentStyleId*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentStyleName*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentFillColor*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentFillPatternStyle*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentShape*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentFillPatternColor*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentExtendedProperties*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + GetCurrentExtendedPropertiesAsArray*: proc( + self: ptr IUIAutomationStylesPattern, + propertyArray: ptr ptr TExtendedProperty, + propertyCount: ptr int32, + ): HRESULT {.stdcall.} + get_CachedStyleId*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedStyleName*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedFillColor*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedFillPatternStyle*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedShape*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedFillPatternColor*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedExtendedProperties*: + proc(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + GetCachedExtendedPropertiesAsArray*: proc( + self: ptr IUIAutomationStylesPattern, + propertyArray: ptr ptr TExtendedProperty, + propertyCount: ptr int32, + ): HRESULT {.stdcall.} + IUIAutomationSpreadsheetPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationSpreadsheetPatternVtbl + IUIAutomationSpreadsheetPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetItemByName*: proc(self: ptr IUIAutomationSpreadsheetPattern, name: BSTR, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + GetItemByName*: proc( + self: ptr IUIAutomationSpreadsheetPattern, + name: BSTR, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + IUIAutomationSpreadsheetItemPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationSpreadsheetItemPatternVtbl + IUIAutomationSpreadsheetItemPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_CurrentFormula*: proc(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - GetCurrentAnnotationObjects*: proc(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCurrentAnnotationTypes*: proc(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CachedFormula*: proc(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - GetCachedAnnotationObjects*: proc(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCachedAnnotationTypes*: proc(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_CurrentFormula*: proc( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + GetCurrentAnnotationObjects*: proc( + self: ptr IUIAutomationSpreadsheetItemPattern, + retVal: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + GetCurrentAnnotationTypes*: proc( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CachedFormula*: proc( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + GetCachedAnnotationObjects*: proc( + self: ptr IUIAutomationSpreadsheetItemPattern, + retVal: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + GetCachedAnnotationTypes*: proc( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IUIAutomationTransformPattern2* {.pure.} = object lpVtbl*: ptr IUIAutomationTransformPattern2Vtbl + IUIAutomationTransformPattern2Vtbl* {.pure, inheritable.} = object of IUIAutomationTransformPatternVtbl - Zoom*: proc(self: ptr IUIAutomationTransformPattern2, zoomValue: float64): HRESULT {.stdcall.} - ZoomByUnit*: proc(self: ptr IUIAutomationTransformPattern2, zoomUnit: ZoomUnit): HRESULT {.stdcall.} - get_CurrentCanZoom*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedCanZoom*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentZoomLevel*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedZoomLevel*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentZoomMinimum*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedZoomMinimum*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.stdcall.} - get_CurrentZoomMaximum*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.stdcall.} - get_CachedZoomMaximum*: proc(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.stdcall.} + Zoom*: proc(self: ptr IUIAutomationTransformPattern2, zoomValue: float64): HRESULT {. + stdcall + .} + ZoomByUnit*: proc( + self: ptr IUIAutomationTransformPattern2, zoomUnit: ZoomUnit + ): HRESULT {.stdcall.} + get_CurrentCanZoom*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CachedCanZoom*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL + ): HRESULT {.stdcall.} + get_CurrentZoomLevel*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedZoomLevel*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentZoomMinimum*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedZoomMinimum*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CurrentZoomMaximum*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 + ): HRESULT {.stdcall.} + get_CachedZoomMaximum*: proc( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 + ): HRESULT {.stdcall.} + IUIAutomationTextChildPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationTextChildPatternVtbl + IUIAutomationTextChildPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_TextContainer*: proc(self: ptr IUIAutomationTextChildPattern, container: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - get_TextRange*: proc(self: ptr IUIAutomationTextChildPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.stdcall.} + get_TextContainer*: proc( + self: ptr IUIAutomationTextChildPattern, container: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + get_TextRange*: proc( + self: ptr IUIAutomationTextChildPattern, range: ptr ptr IUIAutomationTextRange + ): HRESULT {.stdcall.} + IUIAutomationDragPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationDragPatternVtbl + IUIAutomationDragPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_CurrentIsGrabbed*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsGrabbed*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentDropEffect*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedDropEffect*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentDropEffects*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CachedDropEffects*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetCurrentGrabbedItems*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCachedGrabbedItems*: proc(self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} + get_CurrentIsGrabbed*: + proc(self: ptr IUIAutomationDragPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsGrabbed*: + proc(self: ptr IUIAutomationDragPattern, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentDropEffect*: + proc(self: ptr IUIAutomationDragPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedDropEffect*: + proc(self: ptr IUIAutomationDragPattern, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentDropEffects*: proc( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CachedDropEffects*: proc( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetCurrentGrabbedItems*: proc( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + GetCachedGrabbedItems*: proc( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + IUIAutomationDropTargetPattern* {.pure.} = object lpVtbl*: ptr IUIAutomationDropTargetPatternVtbl + IUIAutomationDropTargetPatternVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_CurrentDropTargetEffect*: proc(self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedDropTargetEffect*: proc(self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CurrentDropTargetEffects*: proc(self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CachedDropTargetEffects*: proc(self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_CurrentDropTargetEffect*: proc( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CachedDropTargetEffect*: proc( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR + ): HRESULT {.stdcall.} + get_CurrentDropTargetEffects*: proc( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CachedDropTargetEffects*: proc( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + IUIAutomationElement2* {.pure.} = object lpVtbl*: ptr IUIAutomationElement2Vtbl + IUIAutomationElement2Vtbl* {.pure, inheritable.} = object of IUIAutomationElementVtbl - get_CurrentOptimizeForVisualContent*: proc(self: ptr IUIAutomationElement2, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedOptimizeForVisualContent*: proc(self: ptr IUIAutomationElement2, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CurrentLiveSetting*: proc(self: ptr IUIAutomationElement2, retVal: ptr LiveSetting): HRESULT {.stdcall.} - get_CachedLiveSetting*: proc(self: ptr IUIAutomationElement2, retVal: ptr LiveSetting): HRESULT {.stdcall.} - get_CurrentFlowsFrom*: proc(self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedFlowsFrom*: proc(self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} + get_CurrentOptimizeForVisualContent*: + proc(self: ptr IUIAutomationElement2, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedOptimizeForVisualContent*: + proc(self: ptr IUIAutomationElement2, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentLiveSetting*: proc( + self: ptr IUIAutomationElement2, retVal: ptr LiveSetting + ): HRESULT {.stdcall.} + get_CachedLiveSetting*: proc( + self: ptr IUIAutomationElement2, retVal: ptr LiveSetting + ): HRESULT {.stdcall.} + get_CurrentFlowsFrom*: proc( + self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedFlowsFrom*: proc( + self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + IUIAutomationElement3* {.pure.} = object lpVtbl*: ptr IUIAutomationElement3Vtbl + IUIAutomationElement3Vtbl* {.pure, inheritable.} = object of IUIAutomationElement2Vtbl ShowContextMenu*: proc(self: ptr IUIAutomationElement3): HRESULT {.stdcall.} - get_CurrentIsPeripheral*: proc(self: ptr IUIAutomationElement3, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsPeripheral*: proc(self: ptr IUIAutomationElement3, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsPeripheral*: + proc(self: ptr IUIAutomationElement3, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsPeripheral*: + proc(self: ptr IUIAutomationElement3, retVal: ptr BOOL): HRESULT {.stdcall.} + IUIAutomationElement4* {.pure.} = object lpVtbl*: ptr IUIAutomationElement4Vtbl + IUIAutomationElement4Vtbl* {.pure, inheritable.} = object of IUIAutomationElement3Vtbl - get_CurrentPositionInSet*: proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentSizeOfSet*: proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentLevel*: proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} - get_CurrentAnnotationTypes*: proc(self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CurrentAnnotationObjects*: proc(self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - get_CachedPositionInSet*: proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedSizeOfSet*: proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedLevel*: proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} - get_CachedAnnotationTypes*: proc(self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - get_CachedAnnotationObjects*: proc(self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} + get_CurrentPositionInSet*: + proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentSizeOfSet*: + proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentLevel*: + proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} + get_CurrentAnnotationTypes*: proc( + self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CurrentAnnotationObjects*: proc( + self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + get_CachedPositionInSet*: + proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedSizeOfSet*: + proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedLevel*: + proc(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.stdcall.} + get_CachedAnnotationTypes*: proc( + self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + get_CachedAnnotationObjects*: proc( + self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray + ): HRESULT {.stdcall.} + IUIAutomationElement5* {.pure.} = object lpVtbl*: ptr IUIAutomationElement5Vtbl + IUIAutomationElement5Vtbl* {.pure, inheritable.} = object of IUIAutomationElement4Vtbl - get_CurrentLandmarkType*: proc(self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID): HRESULT {.stdcall.} - get_CurrentLocalizedLandmarkType*: proc(self: ptr IUIAutomationElement5, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedLandmarkType*: proc(self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID): HRESULT {.stdcall.} - get_CachedLocalizedLandmarkType*: proc(self: ptr IUIAutomationElement5, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentLandmarkType*: proc( + self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID + ): HRESULT {.stdcall.} + get_CurrentLocalizedLandmarkType*: + proc(self: ptr IUIAutomationElement5, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedLandmarkType*: proc( + self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID + ): HRESULT {.stdcall.} + get_CachedLocalizedLandmarkType*: + proc(self: ptr IUIAutomationElement5, retVal: ptr BSTR): HRESULT {.stdcall.} + IUIAutomationElement6* {.pure.} = object lpVtbl*: ptr IUIAutomationElement6Vtbl + IUIAutomationElement6Vtbl* {.pure, inheritable.} = object of IUIAutomationElement5Vtbl - get_CurrentFullDescription*: proc(self: ptr IUIAutomationElement6, retVal: ptr BSTR): HRESULT {.stdcall.} - get_CachedFullDescription*: proc(self: ptr IUIAutomationElement6, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CurrentFullDescription*: + proc(self: ptr IUIAutomationElement6, retVal: ptr BSTR): HRESULT {.stdcall.} + get_CachedFullDescription*: + proc(self: ptr IUIAutomationElement6, retVal: ptr BSTR): HRESULT {.stdcall.} + IUIAutomationElement7* {.pure.} = object lpVtbl*: ptr IUIAutomationElement7Vtbl + IUIAutomationElement7Vtbl* {.pure, inheritable.} = object of IUIAutomationElement6Vtbl - FindFirstWithOptions*: proc(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - FindAllWithOptions*: proc(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - FindFirstWithOptionsBuildCache*: proc(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - FindAllWithOptionsBuildCache*: proc(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElementArray): HRESULT {.stdcall.} - GetCurrentMetadataValue*: proc(self: ptr IUIAutomationElement7, targetId: int32, metadataId: METADATAID, returnVal: ptr VARIANT): HRESULT {.stdcall.} + FindFirstWithOptions*: proc( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + FindAllWithOptions*: proc( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + FindFirstWithOptionsBuildCache*: proc( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + FindAllWithOptionsBuildCache*: proc( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElementArray, + ): HRESULT {.stdcall.} + GetCurrentMetadataValue*: proc( + self: ptr IUIAutomationElement7, + targetId: int32, + metadataId: METADATAID, + returnVal: ptr VARIANT, + ): HRESULT {.stdcall.} + IUIAutomationElement8* {.pure.} = object lpVtbl*: ptr IUIAutomationElement8Vtbl + IUIAutomationElement8Vtbl* {.pure, inheritable.} = object of IUIAutomationElement7Vtbl - get_CurrentHeadingLevel*: proc(self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID): HRESULT {.stdcall.} - get_CachedHeadingLevel*: proc(self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID): HRESULT {.stdcall.} + get_CurrentHeadingLevel*: proc( + self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID + ): HRESULT {.stdcall.} + get_CachedHeadingLevel*: proc( + self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID + ): HRESULT {.stdcall.} + IUIAutomationElement9* {.pure.} = object lpVtbl*: ptr IUIAutomationElement9Vtbl + IUIAutomationElement9Vtbl* {.pure, inheritable.} = object of IUIAutomationElement8Vtbl - get_CurrentIsDialog*: proc(self: ptr IUIAutomationElement9, retVal: ptr BOOL): HRESULT {.stdcall.} - get_CachedIsDialog*: proc(self: ptr IUIAutomationElement9, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CurrentIsDialog*: + proc(self: ptr IUIAutomationElement9, retVal: ptr BOOL): HRESULT {.stdcall.} + get_CachedIsDialog*: + proc(self: ptr IUIAutomationElement9, retVal: ptr BOOL): HRESULT {.stdcall.} + IUIAutomationProxyFactory* {.pure.} = object lpVtbl*: ptr IUIAutomationProxyFactoryVtbl + IUIAutomationProxyFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateProvider*: proc(self: ptr IUIAutomationProxyFactory, hwnd: UIA_HWND, idObject: LONG, idChild: LONG, provider: ptr ptr IRawElementProviderSimple): HRESULT {.stdcall.} - get_ProxyFactoryId*: proc(self: ptr IUIAutomationProxyFactory, factoryId: ptr BSTR): HRESULT {.stdcall.} + CreateProvider*: proc( + self: ptr IUIAutomationProxyFactory, + hwnd: UIA_HWND, + idObject: LONG, + idChild: LONG, + provider: ptr ptr IRawElementProviderSimple, + ): HRESULT {.stdcall.} + get_ProxyFactoryId*: proc( + self: ptr IUIAutomationProxyFactory, factoryId: ptr BSTR + ): HRESULT {.stdcall.} + IUIAutomationProxyFactoryEntry* {.pure.} = object lpVtbl*: ptr IUIAutomationProxyFactoryEntryVtbl + IUIAutomationProxyFactoryEntryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_ProxyFactory*: proc(self: ptr IUIAutomationProxyFactoryEntry, factory: ptr ptr IUIAutomationProxyFactory): HRESULT {.stdcall.} - get_ClassName*: proc(self: ptr IUIAutomationProxyFactoryEntry, className: ptr BSTR): HRESULT {.stdcall.} - get_ImageName*: proc(self: ptr IUIAutomationProxyFactoryEntry, imageName: ptr BSTR): HRESULT {.stdcall.} - get_AllowSubstringMatch*: proc(self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: ptr BOOL): HRESULT {.stdcall.} - get_CanCheckBaseClass*: proc(self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: ptr BOOL): HRESULT {.stdcall.} - get_NeedsAdviseEvents*: proc(self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: ptr BOOL): HRESULT {.stdcall.} - put_ClassName*: proc(self: ptr IUIAutomationProxyFactoryEntry, className: LPCWSTR): HRESULT {.stdcall.} - put_ImageName*: proc(self: ptr IUIAutomationProxyFactoryEntry, imageName: LPCWSTR): HRESULT {.stdcall.} - put_AllowSubstringMatch*: proc(self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: BOOL): HRESULT {.stdcall.} - put_CanCheckBaseClass*: proc(self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: BOOL): HRESULT {.stdcall.} - put_NeedsAdviseEvents*: proc(self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: BOOL): HRESULT {.stdcall.} - SetWinEventsForAutomationEvent*: proc(self: ptr IUIAutomationProxyFactoryEntry, eventId: EVENTID, propertyId: PROPERTYID, winEvents: ptr SAFEARRAY): HRESULT {.stdcall.} - GetWinEventsForAutomationEvent*: proc(self: ptr IUIAutomationProxyFactoryEntry, eventId: EVENTID, propertyId: PROPERTYID, winEvents: ptr ptr SAFEARRAY): HRESULT {.stdcall.} + get_ProxyFactory*: proc( + self: ptr IUIAutomationProxyFactoryEntry, + factory: ptr ptr IUIAutomationProxyFactory, + ): HRESULT {.stdcall.} + get_ClassName*: proc( + self: ptr IUIAutomationProxyFactoryEntry, className: ptr BSTR + ): HRESULT {.stdcall.} + get_ImageName*: proc( + self: ptr IUIAutomationProxyFactoryEntry, imageName: ptr BSTR + ): HRESULT {.stdcall.} + get_AllowSubstringMatch*: proc( + self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: ptr BOOL + ): HRESULT {.stdcall.} + get_CanCheckBaseClass*: proc( + self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: ptr BOOL + ): HRESULT {.stdcall.} + get_NeedsAdviseEvents*: proc( + self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: ptr BOOL + ): HRESULT {.stdcall.} + put_ClassName*: proc( + self: ptr IUIAutomationProxyFactoryEntry, className: LPCWSTR + ): HRESULT {.stdcall.} + put_ImageName*: proc( + self: ptr IUIAutomationProxyFactoryEntry, imageName: LPCWSTR + ): HRESULT {.stdcall.} + put_AllowSubstringMatch*: proc( + self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: BOOL + ): HRESULT {.stdcall.} + put_CanCheckBaseClass*: proc( + self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: BOOL + ): HRESULT {.stdcall.} + put_NeedsAdviseEvents*: proc( + self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: BOOL + ): HRESULT {.stdcall.} + SetWinEventsForAutomationEvent*: proc( + self: ptr IUIAutomationProxyFactoryEntry, + eventId: EVENTID, + propertyId: PROPERTYID, + winEvents: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + GetWinEventsForAutomationEvent*: proc( + self: ptr IUIAutomationProxyFactoryEntry, + eventId: EVENTID, + propertyId: PROPERTYID, + winEvents: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IUIAutomationProxyFactoryMapping* {.pure.} = object lpVtbl*: ptr IUIAutomationProxyFactoryMappingVtbl + IUIAutomationProxyFactoryMappingVtbl* {.pure, inheritable.} = object of IUnknownVtbl - get_Count*: proc(self: ptr IUIAutomationProxyFactoryMapping, count: ptr UINT): HRESULT {.stdcall.} - GetTable*: proc(self: ptr IUIAutomationProxyFactoryMapping, table: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - GetEntry*: proc(self: ptr IUIAutomationProxyFactoryMapping, index: UINT, entry: ptr ptr IUIAutomationProxyFactoryEntry): HRESULT {.stdcall.} - SetTable*: proc(self: ptr IUIAutomationProxyFactoryMapping, factoryList: ptr SAFEARRAY): HRESULT {.stdcall.} - InsertEntries*: proc(self: ptr IUIAutomationProxyFactoryMapping, before: UINT, factoryList: ptr SAFEARRAY): HRESULT {.stdcall.} - InsertEntry*: proc(self: ptr IUIAutomationProxyFactoryMapping, before: UINT, factory: ptr IUIAutomationProxyFactoryEntry): HRESULT {.stdcall.} - RemoveEntry*: proc(self: ptr IUIAutomationProxyFactoryMapping, index: UINT): HRESULT {.stdcall.} + get_Count*: proc( + self: ptr IUIAutomationProxyFactoryMapping, count: ptr UINT + ): HRESULT {.stdcall.} + GetTable*: proc( + self: ptr IUIAutomationProxyFactoryMapping, table: ptr ptr SAFEARRAY + ): HRESULT {.stdcall.} + GetEntry*: proc( + self: ptr IUIAutomationProxyFactoryMapping, + index: UINT, + entry: ptr ptr IUIAutomationProxyFactoryEntry, + ): HRESULT {.stdcall.} + SetTable*: proc( + self: ptr IUIAutomationProxyFactoryMapping, factoryList: ptr SAFEARRAY + ): HRESULT {.stdcall.} + InsertEntries*: proc( + self: ptr IUIAutomationProxyFactoryMapping, + before: UINT, + factoryList: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + InsertEntry*: proc( + self: ptr IUIAutomationProxyFactoryMapping, + before: UINT, + factory: ptr IUIAutomationProxyFactoryEntry, + ): HRESULT {.stdcall.} + RemoveEntry*: + proc(self: ptr IUIAutomationProxyFactoryMapping, index: UINT): HRESULT {.stdcall.} ClearTable*: proc(self: ptr IUIAutomationProxyFactoryMapping): HRESULT {.stdcall.} - RestoreDefaultTable*: proc(self: ptr IUIAutomationProxyFactoryMapping): HRESULT {.stdcall.} + RestoreDefaultTable*: + proc(self: ptr IUIAutomationProxyFactoryMapping): HRESULT {.stdcall.} + IUIAutomationEventHandlerGroup* {.pure.} = object lpVtbl*: ptr IUIAutomationEventHandlerGroupVtbl + IUIAutomationEventHandlerGroupVtbl* {.pure, inheritable.} = object of IUnknownVtbl - AddActiveTextPositionChangedEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationActiveTextPositionChangedEventHandler): HRESULT {.stdcall.} - AddAutomationEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, eventId: EVENTID, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationEventHandler): HRESULT {.stdcall.} - AddChangesEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, changeTypes: ptr int32, changesCount: int32, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationChangesEventHandler): HRESULT {.stdcall.} - AddNotificationEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationNotificationEventHandler): HRESULT {.stdcall.} - AddPropertyChangedEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationPropertyChangedEventHandler, propertyArray: ptr PROPERTYID, propertyCount: int32): HRESULT {.stdcall.} - AddStructureChangedEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationStructureChangedEventHandler): HRESULT {.stdcall.} - AddTextEditTextChangedEventHandler*: proc(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, textEditChangeType: TextEditChangeType, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationTextEditTextChangedEventHandler): HRESULT {.stdcall.} + AddActiveTextPositionChangedEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationActiveTextPositionChangedEventHandler, + ): HRESULT {.stdcall.} + AddAutomationEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + eventId: EVENTID, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationEventHandler, + ): HRESULT {.stdcall.} + AddChangesEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + changeTypes: ptr int32, + changesCount: int32, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationChangesEventHandler, + ): HRESULT {.stdcall.} + AddNotificationEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationNotificationEventHandler, + ): HRESULT {.stdcall.} + AddPropertyChangedEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationPropertyChangedEventHandler, + propertyArray: ptr PROPERTYID, + propertyCount: int32, + ): HRESULT {.stdcall.} + AddStructureChangedEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationStructureChangedEventHandler, + ): HRESULT {.stdcall.} + AddTextEditTextChangedEventHandler*: proc( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + textEditChangeType: TextEditChangeType, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationTextEditTextChangedEventHandler, + ): HRESULT {.stdcall.} + IUIAutomation* {.pure.} = object lpVtbl*: ptr IUIAutomationVtbl + IUIAutomationVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CompareElements*: proc(self: ptr IUIAutomation, el1: ptr IUIAutomationElement, el2: ptr IUIAutomationElement, areSame: ptr BOOL): HRESULT {.stdcall.} - CompareRuntimeIds*: proc(self: ptr IUIAutomation, runtimeId1: ptr SAFEARRAY, runtimeId2: ptr SAFEARRAY, areSame: ptr BOOL): HRESULT {.stdcall.} - GetRootElement*: proc(self: ptr IUIAutomation, root: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - ElementFromHandle*: proc(self: ptr IUIAutomation, hwnd: UIA_HWND, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - ElementFromPoint*: proc(self: ptr IUIAutomation, pt: POINT, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetFocusedElement*: proc(self: ptr IUIAutomation, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetRootElementBuildCache*: proc(self: ptr IUIAutomation, cacheRequest: ptr IUIAutomationCacheRequest, root: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - ElementFromHandleBuildCache*: proc(self: ptr IUIAutomation, hwnd: UIA_HWND, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - ElementFromPointBuildCache*: proc(self: ptr IUIAutomation, pt: POINT, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - GetFocusedElementBuildCache*: proc(self: ptr IUIAutomation, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - CreateTreeWalker*: proc(self: ptr IUIAutomation, pCondition: ptr IUIAutomationCondition, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.stdcall.} - get_ControlViewWalker*: proc(self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.stdcall.} - get_ContentViewWalker*: proc(self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.stdcall.} - get_RawViewWalker*: proc(self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.stdcall.} - get_RawViewCondition*: proc(self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - get_ControlViewCondition*: proc(self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - get_ContentViewCondition*: proc(self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateCacheRequest*: proc(self: ptr IUIAutomation, cacheRequest: ptr ptr IUIAutomationCacheRequest): HRESULT {.stdcall.} - CreateTrueCondition*: proc(self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateFalseCondition*: proc(self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreatePropertyCondition*: proc(self: ptr IUIAutomation, propertyId: PROPERTYID, value: VARIANT, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreatePropertyConditionEx*: proc(self: ptr IUIAutomation, propertyId: PROPERTYID, value: VARIANT, flags: PropertyConditionFlags, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateAndCondition*: proc(self: ptr IUIAutomation, condition1: ptr IUIAutomationCondition, condition2: ptr IUIAutomationCondition, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateAndConditionFromArray*: proc(self: ptr IUIAutomation, conditions: ptr SAFEARRAY, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateAndConditionFromNativeArray*: proc(self: ptr IUIAutomation, conditions: ptr ptr IUIAutomationCondition, conditionCount: int32, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateOrCondition*: proc(self: ptr IUIAutomation, condition1: ptr IUIAutomationCondition, condition2: ptr IUIAutomationCondition, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateOrConditionFromArray*: proc(self: ptr IUIAutomation, conditions: ptr SAFEARRAY, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateOrConditionFromNativeArray*: proc(self: ptr IUIAutomation, conditions: ptr ptr IUIAutomationCondition, conditionCount: int32, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - CreateNotCondition*: proc(self: ptr IUIAutomation, condition: ptr IUIAutomationCondition, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.stdcall.} - AddAutomationEventHandler*: proc(self: ptr IUIAutomation, eventId: EVENTID, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationEventHandler): HRESULT {.stdcall.} - RemoveAutomationEventHandler*: proc(self: ptr IUIAutomation, eventId: EVENTID, element: ptr IUIAutomationElement, handler: ptr IUIAutomationEventHandler): HRESULT {.stdcall.} - AddPropertyChangedEventHandlerNativeArray*: proc(self: ptr IUIAutomation, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationPropertyChangedEventHandler, propertyArray: ptr PROPERTYID, propertyCount: int32): HRESULT {.stdcall.} - AddPropertyChangedEventHandler*: proc(self: ptr IUIAutomation, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationPropertyChangedEventHandler, propertyArray: ptr SAFEARRAY): HRESULT {.stdcall.} - RemovePropertyChangedEventHandler*: proc(self: ptr IUIAutomation, element: ptr IUIAutomationElement, handler: ptr IUIAutomationPropertyChangedEventHandler): HRESULT {.stdcall.} - AddStructureChangedEventHandler*: proc(self: ptr IUIAutomation, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationStructureChangedEventHandler): HRESULT {.stdcall.} - RemoveStructureChangedEventHandler*: proc(self: ptr IUIAutomation, element: ptr IUIAutomationElement, handler: ptr IUIAutomationStructureChangedEventHandler): HRESULT {.stdcall.} - AddFocusChangedEventHandler*: proc(self: ptr IUIAutomation, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationFocusChangedEventHandler): HRESULT {.stdcall.} - RemoveFocusChangedEventHandler*: proc(self: ptr IUIAutomation, handler: ptr IUIAutomationFocusChangedEventHandler): HRESULT {.stdcall.} + CompareElements*: proc( + self: ptr IUIAutomation, + el1: ptr IUIAutomationElement, + el2: ptr IUIAutomationElement, + areSame: ptr BOOL, + ): HRESULT {.stdcall.} + CompareRuntimeIds*: proc( + self: ptr IUIAutomation, + runtimeId1: ptr SAFEARRAY, + runtimeId2: ptr SAFEARRAY, + areSame: ptr BOOL, + ): HRESULT {.stdcall.} + GetRootElement*: proc( + self: ptr IUIAutomation, root: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + ElementFromHandle*: proc( + self: ptr IUIAutomation, hwnd: UIA_HWND, element: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + ElementFromPoint*: proc( + self: ptr IUIAutomation, pt: POINT, element: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + GetFocusedElement*: proc( + self: ptr IUIAutomation, element: ptr ptr IUIAutomationElement + ): HRESULT {.stdcall.} + GetRootElementBuildCache*: proc( + self: ptr IUIAutomation, + cacheRequest: ptr IUIAutomationCacheRequest, + root: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + ElementFromHandleBuildCache*: proc( + self: ptr IUIAutomation, + hwnd: UIA_HWND, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + ElementFromPointBuildCache*: proc( + self: ptr IUIAutomation, + pt: POINT, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + GetFocusedElementBuildCache*: proc( + self: ptr IUIAutomation, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + CreateTreeWalker*: proc( + self: ptr IUIAutomation, + pCondition: ptr IUIAutomationCondition, + walker: ptr ptr IUIAutomationTreeWalker, + ): HRESULT {.stdcall.} + get_ControlViewWalker*: proc( + self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker + ): HRESULT {.stdcall.} + get_ContentViewWalker*: proc( + self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker + ): HRESULT {.stdcall.} + get_RawViewWalker*: proc( + self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker + ): HRESULT {.stdcall.} + get_RawViewCondition*: proc( + self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + get_ControlViewCondition*: proc( + self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + get_ContentViewCondition*: proc( + self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + CreateCacheRequest*: proc( + self: ptr IUIAutomation, cacheRequest: ptr ptr IUIAutomationCacheRequest + ): HRESULT {.stdcall.} + CreateTrueCondition*: proc( + self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + CreateFalseCondition*: proc( + self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition + ): HRESULT {.stdcall.} + CreatePropertyCondition*: proc( + self: ptr IUIAutomation, + propertyId: PROPERTYID, + value: VARIANT, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreatePropertyConditionEx*: proc( + self: ptr IUIAutomation, + propertyId: PROPERTYID, + value: VARIANT, + flags: PropertyConditionFlags, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateAndCondition*: proc( + self: ptr IUIAutomation, + condition1: ptr IUIAutomationCondition, + condition2: ptr IUIAutomationCondition, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateAndConditionFromArray*: proc( + self: ptr IUIAutomation, + conditions: ptr SAFEARRAY, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateAndConditionFromNativeArray*: proc( + self: ptr IUIAutomation, + conditions: ptr ptr IUIAutomationCondition, + conditionCount: int32, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateOrCondition*: proc( + self: ptr IUIAutomation, + condition1: ptr IUIAutomationCondition, + condition2: ptr IUIAutomationCondition, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateOrConditionFromArray*: proc( + self: ptr IUIAutomation, + conditions: ptr SAFEARRAY, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateOrConditionFromNativeArray*: proc( + self: ptr IUIAutomation, + conditions: ptr ptr IUIAutomationCondition, + conditionCount: int32, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + CreateNotCondition*: proc( + self: ptr IUIAutomation, + condition: ptr IUIAutomationCondition, + newCondition: ptr ptr IUIAutomationCondition, + ): HRESULT {.stdcall.} + AddAutomationEventHandler*: proc( + self: ptr IUIAutomation, + eventId: EVENTID, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationEventHandler, + ): HRESULT {.stdcall.} + RemoveAutomationEventHandler*: proc( + self: ptr IUIAutomation, + eventId: EVENTID, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationEventHandler, + ): HRESULT {.stdcall.} + AddPropertyChangedEventHandlerNativeArray*: proc( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationPropertyChangedEventHandler, + propertyArray: ptr PROPERTYID, + propertyCount: int32, + ): HRESULT {.stdcall.} + AddPropertyChangedEventHandler*: proc( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationPropertyChangedEventHandler, + propertyArray: ptr SAFEARRAY, + ): HRESULT {.stdcall.} + RemovePropertyChangedEventHandler*: proc( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationPropertyChangedEventHandler, + ): HRESULT {.stdcall.} + AddStructureChangedEventHandler*: proc( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationStructureChangedEventHandler, + ): HRESULT {.stdcall.} + RemoveStructureChangedEventHandler*: proc( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationStructureChangedEventHandler, + ): HRESULT {.stdcall.} + AddFocusChangedEventHandler*: proc( + self: ptr IUIAutomation, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationFocusChangedEventHandler, + ): HRESULT {.stdcall.} + RemoveFocusChangedEventHandler*: proc( + self: ptr IUIAutomation, handler: ptr IUIAutomationFocusChangedEventHandler + ): HRESULT {.stdcall.} RemoveAllEventHandlers*: proc(self: ptr IUIAutomation): HRESULT {.stdcall.} - IntNativeArrayToSafeArray*: proc(self: ptr IUIAutomation, array: ptr int32, arrayCount: int32, safeArray: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - IntSafeArrayToNativeArray*: proc(self: ptr IUIAutomation, intArray: ptr SAFEARRAY, array: ptr ptr int32, arrayCount: ptr int32): HRESULT {.stdcall.} - RectToVariant*: proc(self: ptr IUIAutomation, rc: RECT, `var`: ptr VARIANT): HRESULT {.stdcall.} - VariantToRect*: proc(self: ptr IUIAutomation, `var`: VARIANT, rc: ptr RECT): HRESULT {.stdcall.} - SafeArrayToRectNativeArray*: proc(self: ptr IUIAutomation, rects: ptr SAFEARRAY, rectArray: ptr ptr RECT, rectArrayCount: ptr int32): HRESULT {.stdcall.} - CreateProxyFactoryEntry*: proc(self: ptr IUIAutomation, factory: ptr IUIAutomationProxyFactory, factoryEntry: ptr ptr IUIAutomationProxyFactoryEntry): HRESULT {.stdcall.} - get_ProxyFactoryMapping*: proc(self: ptr IUIAutomation, factoryMapping: ptr ptr IUIAutomationProxyFactoryMapping): HRESULT {.stdcall.} - GetPropertyProgrammaticName*: proc(self: ptr IUIAutomation, property: PROPERTYID, name: ptr BSTR): HRESULT {.stdcall.} - GetPatternProgrammaticName*: proc(self: ptr IUIAutomation, pattern: PATTERNID, name: ptr BSTR): HRESULT {.stdcall.} - PollForPotentialSupportedPatterns*: proc(self: ptr IUIAutomation, pElement: ptr IUIAutomationElement, patternIds: ptr ptr SAFEARRAY, patternNames: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - PollForPotentialSupportedProperties*: proc(self: ptr IUIAutomation, pElement: ptr IUIAutomationElement, propertyIds: ptr ptr SAFEARRAY, propertyNames: ptr ptr SAFEARRAY): HRESULT {.stdcall.} - CheckNotSupported*: proc(self: ptr IUIAutomation, value: VARIANT, isNotSupported: ptr BOOL): HRESULT {.stdcall.} - get_ReservedNotSupportedValue*: proc(self: ptr IUIAutomation, notSupportedValue: ptr ptr IUnknown): HRESULT {.stdcall.} - get_ReservedMixedAttributeValue*: proc(self: ptr IUIAutomation, mixedAttributeValue: ptr ptr IUnknown): HRESULT {.stdcall.} - ElementFromIAccessible*: proc(self: ptr IUIAutomation, accessible: ptr IAccessible, childId: int32, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} - ElementFromIAccessibleBuildCache*: proc(self: ptr IUIAutomation, accessible: ptr IAccessible, childId: int32, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.stdcall.} + IntNativeArrayToSafeArray*: proc( + self: ptr IUIAutomation, + array: ptr int32, + arrayCount: int32, + safeArray: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + IntSafeArrayToNativeArray*: proc( + self: ptr IUIAutomation, + intArray: ptr SAFEARRAY, + array: ptr ptr int32, + arrayCount: ptr int32, + ): HRESULT {.stdcall.} + RectToVariant*: + proc(self: ptr IUIAutomation, rc: RECT, `var`: ptr VARIANT): HRESULT {.stdcall.} + VariantToRect*: + proc(self: ptr IUIAutomation, `var`: VARIANT, rc: ptr RECT): HRESULT {.stdcall.} + SafeArrayToRectNativeArray*: proc( + self: ptr IUIAutomation, + rects: ptr SAFEARRAY, + rectArray: ptr ptr RECT, + rectArrayCount: ptr int32, + ): HRESULT {.stdcall.} + CreateProxyFactoryEntry*: proc( + self: ptr IUIAutomation, + factory: ptr IUIAutomationProxyFactory, + factoryEntry: ptr ptr IUIAutomationProxyFactoryEntry, + ): HRESULT {.stdcall.} + get_ProxyFactoryMapping*: proc( + self: ptr IUIAutomation, factoryMapping: ptr ptr IUIAutomationProxyFactoryMapping + ): HRESULT {.stdcall.} + GetPropertyProgrammaticName*: proc( + self: ptr IUIAutomation, property: PROPERTYID, name: ptr BSTR + ): HRESULT {.stdcall.} + GetPatternProgrammaticName*: proc( + self: ptr IUIAutomation, pattern: PATTERNID, name: ptr BSTR + ): HRESULT {.stdcall.} + PollForPotentialSupportedPatterns*: proc( + self: ptr IUIAutomation, + pElement: ptr IUIAutomationElement, + patternIds: ptr ptr SAFEARRAY, + patternNames: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + PollForPotentialSupportedProperties*: proc( + self: ptr IUIAutomation, + pElement: ptr IUIAutomationElement, + propertyIds: ptr ptr SAFEARRAY, + propertyNames: ptr ptr SAFEARRAY, + ): HRESULT {.stdcall.} + CheckNotSupported*: proc( + self: ptr IUIAutomation, value: VARIANT, isNotSupported: ptr BOOL + ): HRESULT {.stdcall.} + get_ReservedNotSupportedValue*: proc( + self: ptr IUIAutomation, notSupportedValue: ptr ptr IUnknown + ): HRESULT {.stdcall.} + get_ReservedMixedAttributeValue*: proc( + self: ptr IUIAutomation, mixedAttributeValue: ptr ptr IUnknown + ): HRESULT {.stdcall.} + ElementFromIAccessible*: proc( + self: ptr IUIAutomation, + accessible: ptr IAccessible, + childId: int32, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + ElementFromIAccessibleBuildCache*: proc( + self: ptr IUIAutomation, + accessible: ptr IAccessible, + childId: int32, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, + ): HRESULT {.stdcall.} + IUIAutomation2* {.pure.} = object lpVtbl*: ptr IUIAutomation2Vtbl + IUIAutomation2Vtbl* {.pure, inheritable.} = object of IUIAutomationVtbl - get_AutoSetFocus*: proc(self: ptr IUIAutomation2, autoSetFocus: ptr BOOL): HRESULT {.stdcall.} - put_AutoSetFocus*: proc(self: ptr IUIAutomation2, autoSetFocus: BOOL): HRESULT {.stdcall.} - get_ConnectionTimeout*: proc(self: ptr IUIAutomation2, timeout: ptr DWORD): HRESULT {.stdcall.} - put_ConnectionTimeout*: proc(self: ptr IUIAutomation2, timeout: DWORD): HRESULT {.stdcall.} - get_TransactionTimeout*: proc(self: ptr IUIAutomation2, timeout: ptr DWORD): HRESULT {.stdcall.} - put_TransactionTimeout*: proc(self: ptr IUIAutomation2, timeout: DWORD): HRESULT {.stdcall.} + get_AutoSetFocus*: + proc(self: ptr IUIAutomation2, autoSetFocus: ptr BOOL): HRESULT {.stdcall.} + put_AutoSetFocus*: + proc(self: ptr IUIAutomation2, autoSetFocus: BOOL): HRESULT {.stdcall.} + get_ConnectionTimeout*: + proc(self: ptr IUIAutomation2, timeout: ptr DWORD): HRESULT {.stdcall.} + put_ConnectionTimeout*: + proc(self: ptr IUIAutomation2, timeout: DWORD): HRESULT {.stdcall.} + get_TransactionTimeout*: + proc(self: ptr IUIAutomation2, timeout: ptr DWORD): HRESULT {.stdcall.} + put_TransactionTimeout*: + proc(self: ptr IUIAutomation2, timeout: DWORD): HRESULT {.stdcall.} + IUIAutomation3* {.pure.} = object lpVtbl*: ptr IUIAutomation3Vtbl + IUIAutomation3Vtbl* {.pure, inheritable.} = object of IUIAutomation2Vtbl - AddTextEditTextChangedEventHandler*: proc(self: ptr IUIAutomation3, element: ptr IUIAutomationElement, scope: TreeScope, textEditChangeType: TextEditChangeType, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationTextEditTextChangedEventHandler): HRESULT {.stdcall.} - RemoveTextEditTextChangedEventHandler*: proc(self: ptr IUIAutomation3, element: ptr IUIAutomationElement, handler: ptr IUIAutomationTextEditTextChangedEventHandler): HRESULT {.stdcall.} + AddTextEditTextChangedEventHandler*: proc( + self: ptr IUIAutomation3, + element: ptr IUIAutomationElement, + scope: TreeScope, + textEditChangeType: TextEditChangeType, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationTextEditTextChangedEventHandler, + ): HRESULT {.stdcall.} + RemoveTextEditTextChangedEventHandler*: proc( + self: ptr IUIAutomation3, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationTextEditTextChangedEventHandler, + ): HRESULT {.stdcall.} + IUIAutomation4* {.pure.} = object lpVtbl*: ptr IUIAutomation4Vtbl + IUIAutomation4Vtbl* {.pure, inheritable.} = object of IUIAutomation3Vtbl - AddChangesEventHandler*: proc(self: ptr IUIAutomation4, element: ptr IUIAutomationElement, scope: TreeScope, changeTypes: ptr int32, changesCount: int32, pCacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationChangesEventHandler): HRESULT {.stdcall.} - RemoveChangesEventHandler*: proc(self: ptr IUIAutomation4, element: ptr IUIAutomationElement, handler: ptr IUIAutomationChangesEventHandler): HRESULT {.stdcall.} + AddChangesEventHandler*: proc( + self: ptr IUIAutomation4, + element: ptr IUIAutomationElement, + scope: TreeScope, + changeTypes: ptr int32, + changesCount: int32, + pCacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationChangesEventHandler, + ): HRESULT {.stdcall.} + RemoveChangesEventHandler*: proc( + self: ptr IUIAutomation4, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationChangesEventHandler, + ): HRESULT {.stdcall.} + IUIAutomation5* {.pure.} = object lpVtbl*: ptr IUIAutomation5Vtbl + IUIAutomation5Vtbl* {.pure, inheritable.} = object of IUIAutomation4Vtbl - AddNotificationEventHandler*: proc(self: ptr IUIAutomation5, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationNotificationEventHandler): HRESULT {.stdcall.} - RemoveNotificationEventHandler*: proc(self: ptr IUIAutomation5, element: ptr IUIAutomationElement, handler: ptr IUIAutomationNotificationEventHandler): HRESULT {.stdcall.} + AddNotificationEventHandler*: proc( + self: ptr IUIAutomation5, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationNotificationEventHandler, + ): HRESULT {.stdcall.} + RemoveNotificationEventHandler*: proc( + self: ptr IUIAutomation5, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationNotificationEventHandler, + ): HRESULT {.stdcall.} + IUIAutomation6* {.pure.} = object lpVtbl*: ptr IUIAutomation6Vtbl + IUIAutomation6Vtbl* {.pure, inheritable.} = object of IUIAutomation5Vtbl - CreateEventHandlerGroup*: proc(self: ptr IUIAutomation6, handlerGroup: ptr ptr IUIAutomationEventHandlerGroup): HRESULT {.stdcall.} - AddEventHandlerGroup*: proc(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, handlerGroup: ptr IUIAutomationEventHandlerGroup): HRESULT {.stdcall.} - RemoveEventHandlerGroup*: proc(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, handlerGroup: ptr IUIAutomationEventHandlerGroup): HRESULT {.stdcall.} - get_ConnectionRecoveryBehavior*: proc(self: ptr IUIAutomation6, connectionRecoveryBehaviorOptions: ptr ConnectionRecoveryBehaviorOptions): HRESULT {.stdcall.} - put_ConnectionRecoveryBehavior*: proc(self: ptr IUIAutomation6, connectionRecoveryBehaviorOptions: ConnectionRecoveryBehaviorOptions): HRESULT {.stdcall.} - get_CoalesceEvents*: proc(self: ptr IUIAutomation6, coalesceEventsOptions: ptr CoalesceEventsOptions): HRESULT {.stdcall.} - put_CoalesceEvents*: proc(self: ptr IUIAutomation6, coalesceEventsOptions: CoalesceEventsOptions): HRESULT {.stdcall.} - AddActiveTextPositionChangedEventHandler*: proc(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationActiveTextPositionChangedEventHandler): HRESULT {.stdcall.} - RemoveActiveTextPositionChangedEventHandler*: proc(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, handler: ptr IUIAutomationActiveTextPositionChangedEventHandler): HRESULT {.stdcall.} -proc UiaGetErrorDescription*(pDescription: ptr BSTR): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaHUiaNodeFromVariant*(pvar: ptr VARIANT, phnode: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaHPatternObjectFromVariant*(pvar: ptr VARIANT, phobj: ptr HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaHTextRangeFromVariant*(pvar: ptr VARIANT, phtextrange: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaNodeRelease*(hnode: HUIANODE): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetPropertyValue*(hnode: HUIANODE, propertyId: PROPERTYID, pValue: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetPatternProvider*(hnode: HUIANODE, patternId: PATTERNID, phobj: ptr HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetRuntimeId*(hnode: HUIANODE, pruntimeId: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaSetFocus*(hnode: HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaNavigate*(hnode: HUIANODE, direction: NavigateDirection, pCondition: ptr UiaCondition, pRequest: ptr UiaCacheRequest, ppRequestedData: ptr ptr SAFEARRAY, ppTreeStructure: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetUpdatedCache*(hnode: HUIANODE, pRequest: ptr UiaCacheRequest, normalizeState: NormalizeState, pNormalizeCondition: ptr UiaCondition, ppRequestedData: ptr ptr SAFEARRAY, ppTreeStructure: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaFind*(hnode: HUIANODE, pParams: ptr UiaFindParams, pRequest: ptr UiaCacheRequest, ppRequestedData: ptr ptr SAFEARRAY, ppOffsets: ptr ptr SAFEARRAY, ppTreeStructures: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaNodeFromPoint*(x: float64, y: float64, pRequest: ptr UiaCacheRequest, ppRequestedData: ptr ptr SAFEARRAY, ppTreeStructure: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaNodeFromFocus*(pRequest: ptr UiaCacheRequest, ppRequestedData: ptr ptr SAFEARRAY, ppTreeStructure: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaNodeFromHandle*(hwnd: HWND, phnode: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaNodeFromProvider*(pProvider: ptr IRawElementProviderSimple, phnode: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetRootNode*(phnode: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRegisterProviderCallback*(pCallback: UiaProviderCallback): void {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaLookupId*(`type`: AutomationIdentifierType, pGuid: ptr GUID): int32 {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetReservedNotSupportedValue*(punkNotSupportedValue: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaGetReservedMixedAttributeValue*(punkMixedAttributeValue: ptr ptr IUnknown): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaClientsAreListening*(): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseAutomationPropertyChangedEvent*(pProvider: ptr IRawElementProviderSimple, id: PROPERTYID, oldValue: VARIANT, newValue: VARIANT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseAutomationEvent*(pProvider: ptr IRawElementProviderSimple, id: EVENTID): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseStructureChangedEvent*(pProvider: ptr IRawElementProviderSimple, structureChangeType: StructureChangeType, pRuntimeId: ptr int32, cRuntimeIdLen: int32): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseAsyncContentLoadedEvent*(pProvider: ptr IRawElementProviderSimple, asyncContentLoadedState: AsyncContentLoadedState, percentComplete: float64): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseTextEditTextChangedEvent*(pProvider: ptr IRawElementProviderSimple, textEditChangeType: TextEditChangeType, pChangedData: ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseChangesEvent*(pProvider: ptr IRawElementProviderSimple, eventIdCount: int32, pUiaChanges: ptr UiaChangeInfo): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseNotificationEvent*(provider: ptr IRawElementProviderSimple, notificationKind: NotificationKind, notificationProcessing: NotificationProcessing, displayString: BSTR, activityId: BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRaiseActiveTextPositionChangedEvent*(provider: ptr IRawElementProviderSimple, textRange: ptr ITextRangeProvider): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaAddEvent*(hnode: HUIANODE, eventId: EVENTID, pCallback: UiaEventCallback, scope: TreeScope, pProperties: ptr PROPERTYID, cProperties: int32, pRequest: ptr UiaCacheRequest, phEvent: ptr HUIAEVENT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaRemoveEvent*(hEvent: HUIAEVENT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaEventAddWindow*(hEvent: HUIAEVENT, hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaEventRemoveWindow*(hEvent: HUIAEVENT, hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc DockPattern_SetDockPosition*(hobj: HUIAPATTERNOBJECT, dockPosition: DockPosition): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ExpandCollapsePattern_Collapse*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ExpandCollapsePattern_Expand*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc GridPattern_GetItem*(hobj: HUIAPATTERNOBJECT, row: int32, column: int32, pResult: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc InvokePattern_Invoke*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc MultipleViewPattern_GetViewName*(hobj: HUIAPATTERNOBJECT, viewId: int32, ppStr: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc MultipleViewPattern_SetCurrentView*(hobj: HUIAPATTERNOBJECT, viewId: int32): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc RangeValuePattern_SetValue*(hobj: HUIAPATTERNOBJECT, val: float64): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ScrollItemPattern_ScrollIntoView*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ScrollPattern_Scroll*(hobj: HUIAPATTERNOBJECT, horizontalAmount: ScrollAmount, verticalAmount: ScrollAmount): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ScrollPattern_SetScrollPercent*(hobj: HUIAPATTERNOBJECT, horizontalPercent: float64, verticalPercent: float64): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc SelectionItemPattern_AddToSelection*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc SelectionItemPattern_RemoveFromSelection*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc SelectionItemPattern_Select*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TogglePattern_Toggle*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TransformPattern_Move*(hobj: HUIAPATTERNOBJECT, x: float64, y: float64): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TransformPattern_Resize*(hobj: HUIAPATTERNOBJECT, width: float64, height: float64): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TransformPattern_Rotate*(hobj: HUIAPATTERNOBJECT, degrees: float64): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ValuePattern_SetValue*(hobj: HUIAPATTERNOBJECT, pVal: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc WindowPattern_Close*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc WindowPattern_SetWindowVisualState*(hobj: HUIAPATTERNOBJECT, state: WindowVisualState): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc WindowPattern_WaitForInputIdle*(hobj: HUIAPATTERNOBJECT, milliseconds: int32, pResult: ptr BOOL): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextPattern_GetSelection*(hobj: HUIAPATTERNOBJECT, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextPattern_GetVisibleRanges*(hobj: HUIAPATTERNOBJECT, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextPattern_RangeFromChild*(hobj: HUIAPATTERNOBJECT, hnodeChild: HUIANODE, pRetVal: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextPattern_RangeFromPoint*(hobj: HUIAPATTERNOBJECT, point: UiaPoint, pRetVal: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextPattern_get_DocumentRange*(hobj: HUIAPATTERNOBJECT, pRetVal: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextPattern_get_SupportedTextSelection*(hobj: HUIAPATTERNOBJECT, pRetVal: ptr SupportedTextSelection): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_Clone*(hobj: HUIATEXTRANGE, pRetVal: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_Compare*(hobj: HUIATEXTRANGE, range: HUIATEXTRANGE, pRetVal: ptr BOOL): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_CompareEndpoints*(hobj: HUIATEXTRANGE, endpoint: TextPatternRangeEndpoint, targetRange: HUIATEXTRANGE, targetEndpoint: TextPatternRangeEndpoint, pRetVal: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_ExpandToEnclosingUnit*(hobj: HUIATEXTRANGE, unit: TextUnit): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_GetAttributeValue*(hobj: HUIATEXTRANGE, attributeId: TEXTATTRIBUTEID, pRetVal: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_FindAttribute*(hobj: HUIATEXTRANGE, attributeId: TEXTATTRIBUTEID, val: VARIANT, backward: BOOL, pRetVal: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_FindText*(hobj: HUIATEXTRANGE, text: BSTR, backward: BOOL, ignoreCase: BOOL, pRetVal: ptr HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_GetBoundingRectangles*(hobj: HUIATEXTRANGE, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_GetEnclosingElement*(hobj: HUIATEXTRANGE, pRetVal: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_GetText*(hobj: HUIATEXTRANGE, maxLength: int32, pRetVal: ptr BSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_Move*(hobj: HUIATEXTRANGE, unit: TextUnit, count: int32, pRetVal: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_MoveEndpointByUnit*(hobj: HUIATEXTRANGE, endpoint: TextPatternRangeEndpoint, unit: TextUnit, count: int32, pRetVal: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_MoveEndpointByRange*(hobj: HUIATEXTRANGE, endpoint: TextPatternRangeEndpoint, targetRange: HUIATEXTRANGE, targetEndpoint: TextPatternRangeEndpoint): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_Select*(hobj: HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_AddToSelection*(hobj: HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_RemoveFromSelection*(hobj: HUIATEXTRANGE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_ScrollIntoView*(hobj: HUIATEXTRANGE, alignToTop: BOOL): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc TextRange_GetChildren*(hobj: HUIATEXTRANGE, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc ItemContainerPattern_FindItemByProperty*(hobj: HUIAPATTERNOBJECT, hnodeStartAfter: HUIANODE, propertyId: PROPERTYID, value: VARIANT, pFound: ptr HUIANODE): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc LegacyIAccessiblePattern_Select*(hobj: HUIAPATTERNOBJECT, flagsSelect: int32): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc LegacyIAccessiblePattern_DoDefaultAction*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc LegacyIAccessiblePattern_SetValue*(hobj: HUIAPATTERNOBJECT, szValue: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc LegacyIAccessiblePattern_GetIAccessible*(hobj: HUIAPATTERNOBJECT, pAccessible: ptr ptr IAccessible): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc SynchronizedInputPattern_StartListening*(hobj: HUIAPATTERNOBJECT, inputType: SynchronizedInputType): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc SynchronizedInputPattern_Cancel*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc VirtualizedItemPattern_Realize*(hobj: HUIAPATTERNOBJECT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaPatternRelease*(hobj: HUIAPATTERNOBJECT): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaTextRangeRelease*(hobj: HUIATEXTRANGE): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaReturnRawElementProvider*(hwnd: HWND, wParam: WPARAM, lParam: LPARAM, el: ptr IRawElementProviderSimple): LRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaHostProviderFromHwnd*(hwnd: HWND, ppProvider: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaProviderForNonClient*(hwnd: HWND, idObject: int32, idChild: int32, ppProvider: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaIAccessibleFromProvider*(pProvider: ptr IRawElementProviderSimple, dwFlags: DWORD, ppAccessible: ptr ptr IAccessible, pvarChild: ptr VARIANT): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaProviderFromIAccessible*(pAccessible: ptr IAccessible, idChild: int32, dwFlags: DWORD, ppProvider: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaDisconnectAllProviders*(): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaDisconnectProvider*(pProvider: ptr IRawElementProviderSimple): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc UiaHasServerSideProvider*(hwnd: HWND): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} -proc get_ProviderOptions*(self: ptr IRawElementProviderSimple, pRetVal: ptr ProviderOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ProviderOptions(self, pRetVal) -proc GetPatternProvider*(self: ptr IRawElementProviderSimple, patternId: PATTERNID, pRetVal: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPatternProvider(self, patternId, pRetVal) -proc GetPropertyValue*(self: ptr IRawElementProviderSimple, propertyId: PROPERTYID, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyValue(self, propertyId, pRetVal) -proc get_HostRawElementProvider*(self: ptr IRawElementProviderSimple, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HostRawElementProvider(self, pRetVal) -proc GetObjectForChild*(self: ptr IAccessibleEx, idChild: int32, pRetVal: ptr ptr IAccessibleEx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectForChild(self, idChild, pRetVal) -proc GetIAccessiblePair*(self: ptr IAccessibleEx, ppAcc: ptr ptr IAccessible, pidChild: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIAccessiblePair(self, ppAcc, pidChild) -proc GetRuntimeId*(self: ptr IAccessibleEx, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRuntimeId(self, pRetVal) -proc ConvertReturnedElement*(self: ptr IAccessibleEx, pIn: ptr IRawElementProviderSimple, ppRetValOut: ptr ptr IAccessibleEx): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ConvertReturnedElement(self, pIn, ppRetValOut) -proc ShowContextMenu*(self: ptr IRawElementProviderSimple2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContextMenu(self) -proc GetMetadataValue*(self: ptr IRawElementProviderSimple3, targetId: int32, metadataId: METADATAID, returnVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataValue(self, targetId, metadataId, returnVal) -proc ElementProviderFromPoint*(self: ptr IRawElementProviderFragmentRoot, x: float64, y: float64, pRetVal: ptr ptr IRawElementProviderFragment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementProviderFromPoint(self, x, y, pRetVal) -proc GetFocus*(self: ptr IRawElementProviderFragmentRoot, pRetVal: ptr ptr IRawElementProviderFragment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFocus(self, pRetVal) -proc Navigate*(self: ptr IRawElementProviderFragment, direction: NavigateDirection, pRetVal: ptr ptr IRawElementProviderFragment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate(self, direction, pRetVal) -proc GetRuntimeId*(self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRuntimeId(self, pRetVal) -proc get_BoundingRectangle*(self: ptr IRawElementProviderFragment, pRetVal: ptr UiaRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BoundingRectangle(self, pRetVal) -proc GetEmbeddedFragmentRoots*(self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEmbeddedFragmentRoots(self, pRetVal) -proc SetFocus*(self: ptr IRawElementProviderFragment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFocus(self) -proc get_FragmentRoot*(self: ptr IRawElementProviderFragment, pRetVal: ptr ptr IRawElementProviderFragmentRoot): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FragmentRoot(self, pRetVal) -proc AdviseEventAdded*(self: ptr IRawElementProviderAdviseEvents, eventId: EVENTID, propertyIDs: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AdviseEventAdded(self, eventId, propertyIDs) -proc AdviseEventRemoved*(self: ptr IRawElementProviderAdviseEvents, eventId: EVENTID, propertyIDs: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AdviseEventRemoved(self, eventId, propertyIDs) -proc GetOverrideProviderForHwnd*(self: ptr IRawElementProviderHwndOverride, hwnd: HWND, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetOverrideProviderForHwnd(self, hwnd, pRetVal) -proc AddAutomationPropertyChangedEvent*(self: ptr IProxyProviderWinEventSink, pProvider: ptr IRawElementProviderSimple, id: PROPERTYID, newValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddAutomationPropertyChangedEvent(self, pProvider, id, newValue) -proc AddAutomationEvent*(self: ptr IProxyProviderWinEventSink, pProvider: ptr IRawElementProviderSimple, id: EVENTID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddAutomationEvent(self, pProvider, id) -proc AddStructureChangedEvent*(self: ptr IProxyProviderWinEventSink, pProvider: ptr IRawElementProviderSimple, structureChangeType: StructureChangeType, runtimeId: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddStructureChangedEvent(self, pProvider, structureChangeType, runtimeId) -proc RespondToWinEvent*(self: ptr IProxyProviderWinEventHandler, idWinEvent: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG, pSink: ptr IProxyProviderWinEventSink): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RespondToWinEvent(self, idWinEvent, hwnd, idObject, idChild, pSink) -proc GetAdjacentFragment*(self: ptr IRawElementProviderWindowlessSite, direction: NavigateDirection, ppParent: ptr ptr IRawElementProviderFragment): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAdjacentFragment(self, direction, ppParent) -proc GetRuntimeIdPrefix*(self: ptr IRawElementProviderWindowlessSite, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRuntimeIdPrefix(self, pRetVal) -proc GetEmbeddedFragmentRoots*(self: ptr IAccessibleHostingElementProviders, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEmbeddedFragmentRoots(self, pRetVal) -proc GetObjectIdForProvider*(self: ptr IAccessibleHostingElementProviders, pProvider: ptr IRawElementProviderSimple, pidObject: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetObjectIdForProvider(self, pProvider, pidObject) -proc GetEmbeddedAccessibles*(self: ptr IRawElementProviderHostingAccessibles, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEmbeddedAccessibles(self, pRetVal) -proc SetDockPosition*(self: ptr IDockProvider, dockPosition: DockPosition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDockPosition(self, dockPosition) -proc get_DockPosition*(self: ptr IDockProvider, pRetVal: ptr DockPosition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DockPosition(self, pRetVal) -proc Expand*(self: ptr IExpandCollapseProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Expand(self) -proc Collapse*(self: ptr IExpandCollapseProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Collapse(self) -proc get_ExpandCollapseState*(self: ptr IExpandCollapseProvider, pRetVal: ptr ExpandCollapseState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ExpandCollapseState(self, pRetVal) -proc GetItem*(self: ptr IGridProvider, row: int32, column: int32, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItem(self, row, column, pRetVal) -proc get_RowCount*(self: ptr IGridProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RowCount(self, pRetVal) -proc get_ColumnCount*(self: ptr IGridProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ColumnCount(self, pRetVal) -proc get_Row*(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Row(self, pRetVal) -proc get_Column*(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Column(self, pRetVal) -proc get_RowSpan*(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RowSpan(self, pRetVal) -proc get_ColumnSpan*(self: ptr IGridItemProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ColumnSpan(self, pRetVal) -proc get_ContainingGrid*(self: ptr IGridItemProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ContainingGrid(self, pRetVal) -proc Invoke*(self: ptr IInvokeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self) -proc GetViewName*(self: ptr IMultipleViewProvider, viewId: int32, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewName(self, viewId, pRetVal) -proc SetCurrentView*(self: ptr IMultipleViewProvider, viewId: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCurrentView(self, viewId) -proc get_CurrentView*(self: ptr IMultipleViewProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentView(self, pRetVal) -proc GetSupportedViews*(self: ptr IMultipleViewProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSupportedViews(self, pRetVal) -proc SetValue*(self: ptr IRangeValueProvider, val: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, val) -proc get_Value*(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Value(self, pRetVal) -proc get_IsReadOnly*(self: ptr IRangeValueProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsReadOnly(self, pRetVal) -proc get_Maximum*(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Maximum(self, pRetVal) -proc get_Minimum*(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Minimum(self, pRetVal) -proc get_LargeChange*(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LargeChange(self, pRetVal) -proc get_SmallChange*(self: ptr IRangeValueProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SmallChange(self, pRetVal) -proc ScrollIntoView*(self: ptr IScrollItemProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollIntoView(self) -proc GetSelection*(self: ptr ISelectionProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelection(self, pRetVal) -proc get_CanSelectMultiple*(self: ptr ISelectionProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanSelectMultiple(self, pRetVal) -proc get_IsSelectionRequired*(self: ptr ISelectionProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsSelectionRequired(self, pRetVal) -proc get_FirstSelectedItem*(self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FirstSelectedItem(self, retVal) -proc get_LastSelectedItem*(self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_LastSelectedItem(self, retVal) -proc get_CurrentSelectedItem*(self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentSelectedItem(self, retVal) -proc get_ItemCount*(self: ptr ISelectionProvider2, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ItemCount(self, retVal) -proc Scroll*(self: ptr IScrollProvider, horizontalAmount: ScrollAmount, verticalAmount: ScrollAmount): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Scroll(self, horizontalAmount, verticalAmount) -proc SetScrollPercent*(self: ptr IScrollProvider, horizontalPercent: float64, verticalPercent: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScrollPercent(self, horizontalPercent, verticalPercent) -proc get_HorizontalScrollPercent*(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HorizontalScrollPercent(self, pRetVal) -proc get_VerticalScrollPercent*(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_VerticalScrollPercent(self, pRetVal) -proc get_HorizontalViewSize*(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HorizontalViewSize(self, pRetVal) -proc get_VerticalViewSize*(self: ptr IScrollProvider, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_VerticalViewSize(self, pRetVal) -proc get_HorizontallyScrollable*(self: ptr IScrollProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_HorizontallyScrollable(self, pRetVal) -proc get_VerticallyScrollable*(self: ptr IScrollProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_VerticallyScrollable(self, pRetVal) -proc Select*(self: ptr ISelectionItemProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self) -proc AddToSelection*(self: ptr ISelectionItemProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddToSelection(self) -proc RemoveFromSelection*(self: ptr ISelectionItemProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFromSelection(self) -proc get_IsSelected*(self: ptr ISelectionItemProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsSelected(self, pRetVal) -proc get_SelectionContainer*(self: ptr ISelectionItemProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SelectionContainer(self, pRetVal) -proc StartListening*(self: ptr ISynchronizedInputProvider, inputType: SynchronizedInputType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartListening(self, inputType) -proc Cancel*(self: ptr ISynchronizedInputProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cancel(self) -proc GetRowHeaders*(self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRowHeaders(self, pRetVal) -proc GetColumnHeaders*(self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnHeaders(self, pRetVal) -proc get_RowOrColumnMajor*(self: ptr ITableProvider, pRetVal: ptr RowOrColumnMajor): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RowOrColumnMajor(self, pRetVal) -proc GetRowHeaderItems*(self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRowHeaderItems(self, pRetVal) -proc GetColumnHeaderItems*(self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColumnHeaderItems(self, pRetVal) -proc Toggle*(self: ptr IToggleProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Toggle(self) -proc get_ToggleState*(self: ptr IToggleProvider, pRetVal: ptr ToggleState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ToggleState(self, pRetVal) -proc Move*(self: ptr ITransformProvider, x: float64, y: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Move(self, x, y) -proc Resize*(self: ptr ITransformProvider, width: float64, height: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resize(self, width, height) -proc Rotate*(self: ptr ITransformProvider, degrees: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Rotate(self, degrees) -proc get_CanMove*(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanMove(self, pRetVal) -proc get_CanResize*(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanResize(self, pRetVal) -proc get_CanRotate*(self: ptr ITransformProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanRotate(self, pRetVal) -proc SetValue*(self: ptr IValueProvider, val: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, val) -proc get_Value*(self: ptr IValueProvider, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Value(self, pRetVal) -proc get_IsReadOnly*(self: ptr IValueProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsReadOnly(self, pRetVal) -proc SetVisualState*(self: ptr IWindowProvider, state: WindowVisualState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetVisualState(self, state) -proc Close*(self: ptr IWindowProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self) -proc WaitForInputIdle*(self: ptr IWindowProvider, milliseconds: int32, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WaitForInputIdle(self, milliseconds, pRetVal) -proc get_CanMaximize*(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanMaximize(self, pRetVal) -proc get_CanMinimize*(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanMinimize(self, pRetVal) -proc get_IsModal*(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsModal(self, pRetVal) -proc get_WindowVisualState*(self: ptr IWindowProvider, pRetVal: ptr WindowVisualState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_WindowVisualState(self, pRetVal) -proc get_WindowInteractionState*(self: ptr IWindowProvider, pRetVal: ptr WindowInteractionState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_WindowInteractionState(self, pRetVal) -proc get_IsTopmost*(self: ptr IWindowProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsTopmost(self, pRetVal) -proc Select*(self: ptr ILegacyIAccessibleProvider, flagsSelect: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self, flagsSelect) -proc DoDefaultAction*(self: ptr ILegacyIAccessibleProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoDefaultAction(self) -proc SetValue*(self: ptr ILegacyIAccessibleProvider, szValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, szValue) -proc GetIAccessible*(self: ptr ILegacyIAccessibleProvider, ppAccessible: ptr ptr IAccessible): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIAccessible(self, ppAccessible) -proc get_ChildId*(self: ptr ILegacyIAccessibleProvider, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ChildId(self, pRetVal) -proc get_Name*(self: ptr ILegacyIAccessibleProvider, pszName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Name(self, pszName) -proc get_Value*(self: ptr ILegacyIAccessibleProvider, pszValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Value(self, pszValue) -proc get_Description*(self: ptr ILegacyIAccessibleProvider, pszDescription: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Description(self, pszDescription) -proc get_Role*(self: ptr ILegacyIAccessibleProvider, pdwRole: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Role(self, pdwRole) -proc get_State*(self: ptr ILegacyIAccessibleProvider, pdwState: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_State(self, pdwState) -proc get_Help*(self: ptr ILegacyIAccessibleProvider, pszHelp: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Help(self, pszHelp) -proc get_KeyboardShortcut*(self: ptr ILegacyIAccessibleProvider, pszKeyboardShortcut: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_KeyboardShortcut(self, pszKeyboardShortcut) -proc GetSelection*(self: ptr ILegacyIAccessibleProvider, pvarSelectedChildren: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelection(self, pvarSelectedChildren) -proc get_DefaultAction*(self: ptr ILegacyIAccessibleProvider, pszDefaultAction: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DefaultAction(self, pszDefaultAction) -proc FindItemByProperty*(self: ptr IItemContainerProvider, pStartAfter: ptr IRawElementProviderSimple, propertyId: PROPERTYID, value: VARIANT, pFound: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindItemByProperty(self, pStartAfter, propertyId, value, pFound) -proc Realize*(self: ptr IVirtualizedItemProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Realize(self) -proc GetUnderlyingObjectModel*(self: ptr IObjectModelProvider, ppUnknown: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUnderlyingObjectModel(self, ppUnknown) -proc get_AnnotationTypeId*(self: ptr IAnnotationProvider, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AnnotationTypeId(self, retVal) -proc get_AnnotationTypeName*(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AnnotationTypeName(self, retVal) -proc get_Author*(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Author(self, retVal) -proc get_DateTime*(self: ptr IAnnotationProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DateTime(self, retVal) -proc get_Target*(self: ptr IAnnotationProvider, retVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Target(self, retVal) -proc get_StyleId*(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StyleId(self, retVal) -proc get_StyleName*(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_StyleName(self, retVal) -proc get_FillColor*(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FillColor(self, retVal) -proc get_FillPatternStyle*(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FillPatternStyle(self, retVal) -proc get_Shape*(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Shape(self, retVal) -proc get_FillPatternColor*(self: ptr IStylesProvider, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_FillPatternColor(self, retVal) -proc get_ExtendedProperties*(self: ptr IStylesProvider, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ExtendedProperties(self, retVal) -proc GetItemByName*(self: ptr ISpreadsheetProvider, name: LPCWSTR, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemByName(self, name, pRetVal) -proc get_Formula*(self: ptr ISpreadsheetItemProvider, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Formula(self, pRetVal) -proc GetAnnotationObjects*(self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAnnotationObjects(self, pRetVal) -proc GetAnnotationTypes*(self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAnnotationTypes(self, pRetVal) -proc Zoom*(self: ptr ITransformProvider2, zoom: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Zoom(self, zoom) -proc get_CanZoom*(self: ptr ITransformProvider2, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanZoom(self, pRetVal) -proc get_ZoomLevel*(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ZoomLevel(self, pRetVal) -proc get_ZoomMinimum*(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ZoomMinimum(self, pRetVal) -proc get_ZoomMaximum*(self: ptr ITransformProvider2, pRetVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ZoomMaximum(self, pRetVal) -proc ZoomByUnit*(self: ptr ITransformProvider2, zoomUnit: ZoomUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ZoomByUnit(self, zoomUnit) -proc get_IsGrabbed*(self: ptr IDragProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_IsGrabbed(self, pRetVal) -proc get_DropEffect*(self: ptr IDragProvider, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DropEffect(self, pRetVal) -proc get_DropEffects*(self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DropEffects(self, pRetVal) -proc GetGrabbedItems*(self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetGrabbedItems(self, pRetVal) -proc get_DropTargetEffect*(self: ptr IDropTargetProvider, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DropTargetEffect(self, pRetVal) -proc get_DropTargetEffects*(self: ptr IDropTargetProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DropTargetEffects(self, pRetVal) -proc Clone*(self: ptr ITextRangeProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, pRetVal) -proc Compare*(self: ptr ITextRangeProvider, range: ptr ITextRangeProvider, pRetVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Compare(self, range, pRetVal) -proc CompareEndpoints*(self: ptr ITextRangeProvider, endpoint: TextPatternRangeEndpoint, targetRange: ptr ITextRangeProvider, targetEndpoint: TextPatternRangeEndpoint, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareEndpoints(self, endpoint, targetRange, targetEndpoint, pRetVal) -proc ExpandToEnclosingUnit*(self: ptr ITextRangeProvider, unit: TextUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExpandToEnclosingUnit(self, unit) -proc FindAttribute*(self: ptr ITextRangeProvider, attributeId: TEXTATTRIBUTEID, val: VARIANT, backward: BOOL, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindAttribute(self, attributeId, val, backward, pRetVal) -proc FindText*(self: ptr ITextRangeProvider, text: BSTR, backward: BOOL, ignoreCase: BOOL, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindText(self, text, backward, ignoreCase, pRetVal) -proc GetAttributeValue*(self: ptr ITextRangeProvider, attributeId: TEXTATTRIBUTEID, pRetVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributeValue(self, attributeId, pRetVal) -proc GetBoundingRectangles*(self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBoundingRectangles(self, pRetVal) -proc GetEnclosingElement*(self: ptr ITextRangeProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnclosingElement(self, pRetVal) -proc GetText*(self: ptr ITextRangeProvider, maxLength: int32, pRetVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetText(self, maxLength, pRetVal) -proc Move*(self: ptr ITextRangeProvider, unit: TextUnit, count: int32, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Move(self, unit, count, pRetVal) -proc MoveEndpointByUnit*(self: ptr ITextRangeProvider, endpoint: TextPatternRangeEndpoint, unit: TextUnit, count: int32, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveEndpointByUnit(self, endpoint, unit, count, pRetVal) -proc MoveEndpointByRange*(self: ptr ITextRangeProvider, endpoint: TextPatternRangeEndpoint, targetRange: ptr ITextRangeProvider, targetEndpoint: TextPatternRangeEndpoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveEndpointByRange(self, endpoint, targetRange, targetEndpoint) -proc Select*(self: ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self) -proc AddToSelection*(self: ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddToSelection(self) -proc RemoveFromSelection*(self: ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFromSelection(self) -proc ScrollIntoView*(self: ptr ITextRangeProvider, alignToTop: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollIntoView(self, alignToTop) -proc GetChildren*(self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildren(self, pRetVal) -proc GetSelection*(self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelection(self, pRetVal) -proc GetVisibleRanges*(self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVisibleRanges(self, pRetVal) -proc RangeFromChild*(self: ptr ITextProvider, childElement: ptr IRawElementProviderSimple, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RangeFromChild(self, childElement, pRetVal) -proc RangeFromPoint*(self: ptr ITextProvider, point: UiaPoint, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RangeFromPoint(self, point, pRetVal) -proc get_DocumentRange*(self: ptr ITextProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DocumentRange(self, pRetVal) -proc get_SupportedTextSelection*(self: ptr ITextProvider, pRetVal: ptr SupportedTextSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SupportedTextSelection(self, pRetVal) -proc RangeFromAnnotation*(self: ptr ITextProvider2, annotationElement: ptr IRawElementProviderSimple, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RangeFromAnnotation(self, annotationElement, pRetVal) -proc GetCaretRange*(self: ptr ITextProvider2, isActive: ptr BOOL, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCaretRange(self, isActive, pRetVal) -proc GetActiveComposition*(self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetActiveComposition(self, pRetVal) -proc GetConversionTarget*(self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionTarget(self, pRetVal) -proc ShowContextMenu*(self: ptr ITextRangeProvider2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContextMenu(self) -proc get_TextContainer*(self: ptr ITextChildProvider, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextContainer(self, pRetVal) -proc get_TextRange*(self: ptr ITextChildProvider, pRetVal: ptr ptr ITextRangeProvider): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextRange(self, pRetVal) -proc Navigate*(self: ptr ICustomNavigationProvider, direction: NavigateDirection, pRetVal: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate(self, direction, pRetVal) -proc GetProperty*(self: ptr IUIAutomationPatternInstance, index: UINT, cached: BOOL, `type`: UIAutomationType, pPtr: pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProperty(self, index, cached, `type`, pPtr) -proc CallMethod*(self: ptr IUIAutomationPatternInstance, index: UINT, pParams: ptr UIAutomationParameter, cParams: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CallMethod(self, index, pParams, cParams) -proc CreateClientWrapper*(self: ptr IUIAutomationPatternHandler, pPatternInstance: ptr IUIAutomationPatternInstance, pClientWrapper: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateClientWrapper(self, pPatternInstance, pClientWrapper) -proc Dispatch*(self: ptr IUIAutomationPatternHandler, pTarget: ptr IUnknown, index: UINT, pParams: ptr UIAutomationParameter, cParams: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Dispatch(self, pTarget, index, pParams, cParams) -proc RegisterProperty*(self: ptr IUIAutomationRegistrar, property: ptr UIAutomationPropertyInfo, propertyId: ptr PROPERTYID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterProperty(self, property, propertyId) -proc RegisterEvent*(self: ptr IUIAutomationRegistrar, event: ptr UIAutomationEventInfo, eventId: ptr EVENTID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterEvent(self, event, eventId) -proc RegisterPattern*(self: ptr IUIAutomationRegistrar, pattern: ptr UIAutomationPatternInfo, pPatternId: ptr PATTERNID, pPatternAvailablePropertyId: ptr PROPERTYID, propertyIdCount: UINT, pPropertyIds: ptr PROPERTYID, eventIdCount: UINT, pEventIds: ptr EVENTID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RegisterPattern(self, pattern, pPatternId, pPatternAvailablePropertyId, propertyIdCount, pPropertyIds, eventIdCount, pEventIds) -proc SetFocus*(self: ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFocus(self) -proc GetRuntimeId*(self: ptr IUIAutomationElement, runtimeId: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRuntimeId(self, runtimeId) -proc FindFirst*(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, found: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFirst(self, scope, condition, found) -proc FindAll*(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, found: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindAll(self, scope, condition, found) -proc FindFirstBuildCache*(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, found: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFirstBuildCache(self, scope, condition, cacheRequest, found) -proc FindAllBuildCache*(self: ptr IUIAutomationElement, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, found: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindAllBuildCache(self, scope, condition, cacheRequest, found) -proc BuildUpdatedCache*(self: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, updatedElement: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.BuildUpdatedCache(self, cacheRequest, updatedElement) -proc GetCurrentPropertyValue*(self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPropertyValue(self, propertyId, retVal) -proc GetCurrentPropertyValueEx*(self: ptr IUIAutomationElement, propertyId: PROPERTYID, ignoreDefaultValue: BOOL, retVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPropertyValueEx(self, propertyId, ignoreDefaultValue, retVal) -proc GetCachedPropertyValue*(self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedPropertyValue(self, propertyId, retVal) -proc GetCachedPropertyValueEx*(self: ptr IUIAutomationElement, propertyId: PROPERTYID, ignoreDefaultValue: BOOL, retVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedPropertyValueEx(self, propertyId, ignoreDefaultValue, retVal) -proc GetCurrentPatternAs*(self: ptr IUIAutomationElement, patternId: PATTERNID, riid: REFIID, patternObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPatternAs(self, patternId, riid, patternObject) -proc GetCachedPatternAs*(self: ptr IUIAutomationElement, patternId: PATTERNID, riid: REFIID, patternObject: ptr pointer): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedPatternAs(self, patternId, riid, patternObject) -proc GetCurrentPattern*(self: ptr IUIAutomationElement, patternId: PATTERNID, patternObject: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentPattern(self, patternId, patternObject) -proc GetCachedPattern*(self: ptr IUIAutomationElement, patternId: PATTERNID, patternObject: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedPattern(self, patternId, patternObject) -proc GetCachedParent*(self: ptr IUIAutomationElement, parent: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedParent(self, parent) -proc GetCachedChildren*(self: ptr IUIAutomationElement, children: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedChildren(self, children) -proc get_CurrentProcessId*(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentProcessId(self, retVal) -proc get_CurrentControlType*(self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentControlType(self, retVal) -proc get_CurrentLocalizedControlType*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLocalizedControlType(self, retVal) -proc get_CurrentName*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentName(self, retVal) -proc get_CurrentAcceleratorKey*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAcceleratorKey(self, retVal) -proc get_CurrentAccessKey*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAccessKey(self, retVal) -proc get_CurrentHasKeyboardFocus*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHasKeyboardFocus(self, retVal) -proc get_CurrentIsKeyboardFocusable*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsKeyboardFocusable(self, retVal) -proc get_CurrentIsEnabled*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsEnabled(self, retVal) -proc get_CurrentAutomationId*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAutomationId(self, retVal) -proc get_CurrentClassName*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentClassName(self, retVal) -proc get_CurrentHelpText*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHelpText(self, retVal) -proc get_CurrentCulture*(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCulture(self, retVal) -proc get_CurrentIsControlElement*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsControlElement(self, retVal) -proc get_CurrentIsContentElement*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsContentElement(self, retVal) -proc get_CurrentIsPassword*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsPassword(self, retVal) -proc get_CurrentNativeWindowHandle*(self: ptr IUIAutomationElement, retVal: ptr UIA_HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentNativeWindowHandle(self, retVal) -proc get_CurrentItemType*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentItemType(self, retVal) -proc get_CurrentIsOffscreen*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsOffscreen(self, retVal) -proc get_CurrentOrientation*(self: ptr IUIAutomationElement, retVal: ptr OrientationType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentOrientation(self, retVal) -proc get_CurrentFrameworkId*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFrameworkId(self, retVal) -proc get_CurrentIsRequiredForForm*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsRequiredForForm(self, retVal) -proc get_CurrentItemStatus*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentItemStatus(self, retVal) -proc get_CurrentBoundingRectangle*(self: ptr IUIAutomationElement, retVal: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentBoundingRectangle(self, retVal) -proc get_CurrentLabeledBy*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLabeledBy(self, retVal) -proc get_CurrentAriaRole*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAriaRole(self, retVal) -proc get_CurrentAriaProperties*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAriaProperties(self, retVal) -proc get_CurrentIsDataValidForForm*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsDataValidForForm(self, retVal) -proc get_CurrentControllerFor*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentControllerFor(self, retVal) -proc get_CurrentDescribedBy*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDescribedBy(self, retVal) -proc get_CurrentFlowsTo*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFlowsTo(self, retVal) -proc get_CurrentProviderDescription*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentProviderDescription(self, retVal) -proc get_CachedProcessId*(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedProcessId(self, retVal) -proc get_CachedControlType*(self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedControlType(self, retVal) -proc get_CachedLocalizedControlType*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLocalizedControlType(self, retVal) -proc get_CachedName*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedName(self, retVal) -proc get_CachedAcceleratorKey*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAcceleratorKey(self, retVal) -proc get_CachedAccessKey*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAccessKey(self, retVal) -proc get_CachedHasKeyboardFocus*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHasKeyboardFocus(self, retVal) -proc get_CachedIsKeyboardFocusable*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsKeyboardFocusable(self, retVal) -proc get_CachedIsEnabled*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsEnabled(self, retVal) -proc get_CachedAutomationId*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAutomationId(self, retVal) -proc get_CachedClassName*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedClassName(self, retVal) -proc get_CachedHelpText*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHelpText(self, retVal) -proc get_CachedCulture*(self: ptr IUIAutomationElement, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCulture(self, retVal) -proc get_CachedIsControlElement*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsControlElement(self, retVal) -proc get_CachedIsContentElement*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsContentElement(self, retVal) -proc get_CachedIsPassword*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsPassword(self, retVal) -proc get_CachedNativeWindowHandle*(self: ptr IUIAutomationElement, retVal: ptr UIA_HWND): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedNativeWindowHandle(self, retVal) -proc get_CachedItemType*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedItemType(self, retVal) -proc get_CachedIsOffscreen*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsOffscreen(self, retVal) -proc get_CachedOrientation*(self: ptr IUIAutomationElement, retVal: ptr OrientationType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedOrientation(self, retVal) -proc get_CachedFrameworkId*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFrameworkId(self, retVal) -proc get_CachedIsRequiredForForm*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsRequiredForForm(self, retVal) -proc get_CachedItemStatus*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedItemStatus(self, retVal) -proc get_CachedBoundingRectangle*(self: ptr IUIAutomationElement, retVal: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedBoundingRectangle(self, retVal) -proc get_CachedLabeledBy*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLabeledBy(self, retVal) -proc get_CachedAriaRole*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAriaRole(self, retVal) -proc get_CachedAriaProperties*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAriaProperties(self, retVal) -proc get_CachedIsDataValidForForm*(self: ptr IUIAutomationElement, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsDataValidForForm(self, retVal) -proc get_CachedControllerFor*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedControllerFor(self, retVal) -proc get_CachedDescribedBy*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDescribedBy(self, retVal) -proc get_CachedFlowsTo*(self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFlowsTo(self, retVal) -proc get_CachedProviderDescription*(self: ptr IUIAutomationElement, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedProviderDescription(self, retVal) -proc GetClickablePoint*(self: ptr IUIAutomationElement, clickable: ptr POINT, gotClickable: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetClickablePoint(self, clickable, gotClickable) -proc get_Length*(self: ptr IUIAutomationElementArray, length: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Length(self, length) -proc GetElement*(self: ptr IUIAutomationElementArray, index: int32, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElement(self, index, element) -proc get_BooleanValue*(self: ptr IUIAutomationBoolCondition, boolVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_BooleanValue(self, boolVal) -proc get_PropertyId*(self: ptr IUIAutomationPropertyCondition, propertyId: ptr PROPERTYID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_PropertyId(self, propertyId) -proc get_PropertyValue*(self: ptr IUIAutomationPropertyCondition, propertyValue: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_PropertyValue(self, propertyValue) -proc get_PropertyConditionFlags*(self: ptr IUIAutomationPropertyCondition, flags: ptr PropertyConditionFlags): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_PropertyConditionFlags(self, flags) -proc get_ChildCount*(self: ptr IUIAutomationAndCondition, childCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ChildCount(self, childCount) -proc GetChildrenAsNativeArray*(self: ptr IUIAutomationAndCondition, childArray: ptr ptr ptr IUIAutomationCondition, childArrayCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildrenAsNativeArray(self, childArray, childArrayCount) -proc GetChildren*(self: ptr IUIAutomationAndCondition, childArray: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildren(self, childArray) -proc get_ChildCount*(self: ptr IUIAutomationOrCondition, childCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ChildCount(self, childCount) -proc GetChildrenAsNativeArray*(self: ptr IUIAutomationOrCondition, childArray: ptr ptr ptr IUIAutomationCondition, childArrayCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildrenAsNativeArray(self, childArray, childArrayCount) -proc GetChildren*(self: ptr IUIAutomationOrCondition, childArray: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildren(self, childArray) -proc GetChild*(self: ptr IUIAutomationNotCondition, condition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChild(self, condition) -proc AddProperty*(self: ptr IUIAutomationCacheRequest, propertyId: PROPERTYID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddProperty(self, propertyId) -proc AddPattern*(self: ptr IUIAutomationCacheRequest, patternId: PATTERNID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPattern(self, patternId) -proc Clone*(self: ptr IUIAutomationCacheRequest, clonedRequest: ptr ptr IUIAutomationCacheRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, clonedRequest) -proc get_TreeScope*(self: ptr IUIAutomationCacheRequest, scope: ptr TreeScope): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TreeScope(self, scope) -proc put_TreeScope*(self: ptr IUIAutomationCacheRequest, scope: TreeScope): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_TreeScope(self, scope) -proc get_TreeFilter*(self: ptr IUIAutomationCacheRequest, filter: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TreeFilter(self, filter) -proc put_TreeFilter*(self: ptr IUIAutomationCacheRequest, filter: ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_TreeFilter(self, filter) -proc get_AutomationElementMode*(self: ptr IUIAutomationCacheRequest, mode: ptr AutomationElementMode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AutomationElementMode(self, mode) -proc put_AutomationElementMode*(self: ptr IUIAutomationCacheRequest, mode: AutomationElementMode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_AutomationElementMode(self, mode) -proc GetParentElement*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, parent: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParentElement(self, element, parent) -proc GetFirstChildElement*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, first: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFirstChildElement(self, element, first) -proc GetLastChildElement*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, last: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastChildElement(self, element, last) -proc GetNextSiblingElement*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, next: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextSiblingElement(self, element, next) -proc GetPreviousSiblingElement*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, previous: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPreviousSiblingElement(self, element, previous) -proc NormalizeElement*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, normalized: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NormalizeElement(self, element, normalized) -proc GetParentElementBuildCache*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, parent: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetParentElementBuildCache(self, element, cacheRequest, parent) -proc GetFirstChildElementBuildCache*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, first: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFirstChildElementBuildCache(self, element, cacheRequest, first) -proc GetLastChildElementBuildCache*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, last: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLastChildElementBuildCache(self, element, cacheRequest, last) -proc GetNextSiblingElementBuildCache*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, next: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNextSiblingElementBuildCache(self, element, cacheRequest, next) -proc GetPreviousSiblingElementBuildCache*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, previous: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPreviousSiblingElementBuildCache(self, element, cacheRequest, previous) -proc NormalizeElementBuildCache*(self: ptr IUIAutomationTreeWalker, element: ptr IUIAutomationElement, cacheRequest: ptr IUIAutomationCacheRequest, normalized: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.NormalizeElementBuildCache(self, element, cacheRequest, normalized) -proc get_Condition*(self: ptr IUIAutomationTreeWalker, condition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Condition(self, condition) -proc HandleAutomationEvent*(self: ptr IUIAutomationEventHandler, sender: ptr IUIAutomationElement, eventId: EVENTID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleAutomationEvent(self, sender, eventId) -proc HandlePropertyChangedEvent*(self: ptr IUIAutomationPropertyChangedEventHandler, sender: ptr IUIAutomationElement, propertyId: PROPERTYID, newValue: VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandlePropertyChangedEvent(self, sender, propertyId, newValue) -proc HandleStructureChangedEvent*(self: ptr IUIAutomationStructureChangedEventHandler, sender: ptr IUIAutomationElement, changeType: StructureChangeType, runtimeId: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleStructureChangedEvent(self, sender, changeType, runtimeId) -proc HandleFocusChangedEvent*(self: ptr IUIAutomationFocusChangedEventHandler, sender: ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleFocusChangedEvent(self, sender) -proc HandleTextEditTextChangedEvent*(self: ptr IUIAutomationTextEditTextChangedEventHandler, sender: ptr IUIAutomationElement, textEditChangeType: TextEditChangeType, eventStrings: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleTextEditTextChangedEvent(self, sender, textEditChangeType, eventStrings) -proc HandleChangesEvent*(self: ptr IUIAutomationChangesEventHandler, sender: ptr IUIAutomationElement, uiaChanges: ptr UiaChangeInfo, changesCount: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleChangesEvent(self, sender, uiaChanges, changesCount) -proc HandleNotificationEvent*(self: ptr IUIAutomationNotificationEventHandler, sender: ptr IUIAutomationElement, notificationKind: NotificationKind, notificationProcessing: NotificationProcessing, displayString: BSTR, activityId: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleNotificationEvent(self, sender, notificationKind, notificationProcessing, displayString, activityId) -proc Invoke*(self: ptr IUIAutomationInvokePattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Invoke(self) -proc SetDockPosition*(self: ptr IUIAutomationDockPattern, dockPos: DockPosition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetDockPosition(self, dockPos) -proc get_CurrentDockPosition*(self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDockPosition(self, retVal) -proc get_CachedDockPosition*(self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDockPosition(self, retVal) -proc Expand*(self: ptr IUIAutomationExpandCollapsePattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Expand(self) -proc Collapse*(self: ptr IUIAutomationExpandCollapsePattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Collapse(self) -proc get_CurrentExpandCollapseState*(self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentExpandCollapseState(self, retVal) -proc get_CachedExpandCollapseState*(self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedExpandCollapseState(self, retVal) -proc GetItem*(self: ptr IUIAutomationGridPattern, row: int32, column: int32, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItem(self, row, column, element) -proc get_CurrentRowCount*(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentRowCount(self, retVal) -proc get_CurrentColumnCount*(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentColumnCount(self, retVal) -proc get_CachedRowCount*(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedRowCount(self, retVal) -proc get_CachedColumnCount*(self: ptr IUIAutomationGridPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedColumnCount(self, retVal) -proc get_CurrentContainingGrid*(self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentContainingGrid(self, retVal) -proc get_CurrentRow*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentRow(self, retVal) -proc get_CurrentColumn*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentColumn(self, retVal) -proc get_CurrentRowSpan*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentRowSpan(self, retVal) -proc get_CurrentColumnSpan*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentColumnSpan(self, retVal) -proc get_CachedContainingGrid*(self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedContainingGrid(self, retVal) -proc get_CachedRow*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedRow(self, retVal) -proc get_CachedColumn*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedColumn(self, retVal) -proc get_CachedRowSpan*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedRowSpan(self, retVal) -proc get_CachedColumnSpan*(self: ptr IUIAutomationGridItemPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedColumnSpan(self, retVal) -proc GetViewName*(self: ptr IUIAutomationMultipleViewPattern, view: int32, name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetViewName(self, view, name) -proc SetCurrentView*(self: ptr IUIAutomationMultipleViewPattern, view: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetCurrentView(self, view) -proc get_CurrentCurrentView*(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCurrentView(self, retVal) -proc GetCurrentSupportedViews*(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSupportedViews(self, retVal) -proc get_CachedCurrentView*(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCurrentView(self, retVal) -proc GetCachedSupportedViews*(self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedSupportedViews(self, retVal) -proc GetUnderlyingObjectModel*(self: ptr IUIAutomationObjectModelPattern, retVal: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetUnderlyingObjectModel(self, retVal) -proc SetValue*(self: ptr IUIAutomationRangeValuePattern, val: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, val) -proc get_CurrentValue*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentValue(self, retVal) -proc get_CurrentIsReadOnly*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsReadOnly(self, retVal) -proc get_CurrentMaximum*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentMaximum(self, retVal) -proc get_CurrentMinimum*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentMinimum(self, retVal) -proc get_CurrentLargeChange*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLargeChange(self, retVal) -proc get_CurrentSmallChange*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentSmallChange(self, retVal) -proc get_CachedValue*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedValue(self, retVal) -proc get_CachedIsReadOnly*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsReadOnly(self, retVal) -proc get_CachedMaximum*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedMaximum(self, retVal) -proc get_CachedMinimum*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedMinimum(self, retVal) -proc get_CachedLargeChange*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLargeChange(self, retVal) -proc get_CachedSmallChange*(self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedSmallChange(self, retVal) -proc Scroll*(self: ptr IUIAutomationScrollPattern, horizontalAmount: ScrollAmount, verticalAmount: ScrollAmount): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Scroll(self, horizontalAmount, verticalAmount) -proc SetScrollPercent*(self: ptr IUIAutomationScrollPattern, horizontalPercent: float64, verticalPercent: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetScrollPercent(self, horizontalPercent, verticalPercent) -proc get_CurrentHorizontalScrollPercent*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHorizontalScrollPercent(self, retVal) -proc get_CurrentVerticalScrollPercent*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentVerticalScrollPercent(self, retVal) -proc get_CurrentHorizontalViewSize*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHorizontalViewSize(self, retVal) -proc get_CurrentVerticalViewSize*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentVerticalViewSize(self, retVal) -proc get_CurrentHorizontallyScrollable*(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHorizontallyScrollable(self, retVal) -proc get_CurrentVerticallyScrollable*(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentVerticallyScrollable(self, retVal) -proc get_CachedHorizontalScrollPercent*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHorizontalScrollPercent(self, retVal) -proc get_CachedVerticalScrollPercent*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedVerticalScrollPercent(self, retVal) -proc get_CachedHorizontalViewSize*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHorizontalViewSize(self, retVal) -proc get_CachedVerticalViewSize*(self: ptr IUIAutomationScrollPattern, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedVerticalViewSize(self, retVal) -proc get_CachedHorizontallyScrollable*(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHorizontallyScrollable(self, retVal) -proc get_CachedVerticallyScrollable*(self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedVerticallyScrollable(self, retVal) -proc ScrollIntoView*(self: ptr IUIAutomationScrollItemPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollIntoView(self) -proc GetCurrentSelection*(self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSelection(self, retVal) -proc get_CurrentCanSelectMultiple*(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanSelectMultiple(self, retVal) -proc get_CurrentIsSelectionRequired*(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsSelectionRequired(self, retVal) -proc GetCachedSelection*(self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedSelection(self, retVal) -proc get_CachedCanSelectMultiple*(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanSelectMultiple(self, retVal) -proc get_CachedIsSelectionRequired*(self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsSelectionRequired(self, retVal) -proc get_CurrentFirstSelectedItem*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFirstSelectedItem(self, retVal) -proc get_CurrentLastSelectedItem*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLastSelectedItem(self, retVal) -proc get_CurrentCurrentSelectedItem*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCurrentSelectedItem(self, retVal) -proc get_CurrentItemCount*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentItemCount(self, retVal) -proc get_CachedFirstSelectedItem*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFirstSelectedItem(self, retVal) -proc get_CachedLastSelectedItem*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLastSelectedItem(self, retVal) -proc get_CachedCurrentSelectedItem*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCurrentSelectedItem(self, retVal) -proc get_CachedItemCount*(self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedItemCount(self, retVal) -proc Select*(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self) -proc AddToSelection*(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddToSelection(self) -proc RemoveFromSelection*(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFromSelection(self) -proc get_CurrentIsSelected*(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsSelected(self, retVal) -proc get_CurrentSelectionContainer*(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentSelectionContainer(self, retVal) -proc get_CachedIsSelected*(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsSelected(self, retVal) -proc get_CachedSelectionContainer*(self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedSelectionContainer(self, retVal) -proc StartListening*(self: ptr IUIAutomationSynchronizedInputPattern, inputType: SynchronizedInputType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.StartListening(self, inputType) -proc Cancel*(self: ptr IUIAutomationSynchronizedInputPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cancel(self) -proc GetCurrentRowHeaders*(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentRowHeaders(self, retVal) -proc GetCurrentColumnHeaders*(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentColumnHeaders(self, retVal) -proc get_CurrentRowOrColumnMajor*(self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentRowOrColumnMajor(self, retVal) -proc GetCachedRowHeaders*(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedRowHeaders(self, retVal) -proc GetCachedColumnHeaders*(self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedColumnHeaders(self, retVal) -proc get_CachedRowOrColumnMajor*(self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedRowOrColumnMajor(self, retVal) -proc GetCurrentRowHeaderItems*(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentRowHeaderItems(self, retVal) -proc GetCurrentColumnHeaderItems*(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentColumnHeaderItems(self, retVal) -proc GetCachedRowHeaderItems*(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedRowHeaderItems(self, retVal) -proc GetCachedColumnHeaderItems*(self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedColumnHeaderItems(self, retVal) -proc Toggle*(self: ptr IUIAutomationTogglePattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Toggle(self) -proc get_CurrentToggleState*(self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentToggleState(self, retVal) -proc get_CachedToggleState*(self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedToggleState(self, retVal) -proc Move*(self: ptr IUIAutomationTransformPattern, x: float64, y: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Move(self, x, y) -proc Resize*(self: ptr IUIAutomationTransformPattern, width: float64, height: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Resize(self, width, height) -proc Rotate*(self: ptr IUIAutomationTransformPattern, degrees: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Rotate(self, degrees) -proc get_CurrentCanMove*(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanMove(self, retVal) -proc get_CurrentCanResize*(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanResize(self, retVal) -proc get_CurrentCanRotate*(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanRotate(self, retVal) -proc get_CachedCanMove*(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanMove(self, retVal) -proc get_CachedCanResize*(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanResize(self, retVal) -proc get_CachedCanRotate*(self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanRotate(self, retVal) -proc SetValue*(self: ptr IUIAutomationValuePattern, val: BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, val) -proc get_CurrentValue*(self: ptr IUIAutomationValuePattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentValue(self, retVal) -proc get_CurrentIsReadOnly*(self: ptr IUIAutomationValuePattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsReadOnly(self, retVal) -proc get_CachedValue*(self: ptr IUIAutomationValuePattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedValue(self, retVal) -proc get_CachedIsReadOnly*(self: ptr IUIAutomationValuePattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsReadOnly(self, retVal) -proc Close*(self: ptr IUIAutomationWindowPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Close(self) -proc WaitForInputIdle*(self: ptr IUIAutomationWindowPattern, milliseconds: int32, success: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WaitForInputIdle(self, milliseconds, success) -proc SetWindowVisualState*(self: ptr IUIAutomationWindowPattern, state: WindowVisualState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWindowVisualState(self, state) -proc get_CurrentCanMaximize*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanMaximize(self, retVal) -proc get_CurrentCanMinimize*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanMinimize(self, retVal) -proc get_CurrentIsModal*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsModal(self, retVal) -proc get_CurrentIsTopmost*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsTopmost(self, retVal) -proc get_CurrentWindowVisualState*(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentWindowVisualState(self, retVal) -proc get_CurrentWindowInteractionState*(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentWindowInteractionState(self, retVal) -proc get_CachedCanMaximize*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanMaximize(self, retVal) -proc get_CachedCanMinimize*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanMinimize(self, retVal) -proc get_CachedIsModal*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsModal(self, retVal) -proc get_CachedIsTopmost*(self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsTopmost(self, retVal) -proc get_CachedWindowVisualState*(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedWindowVisualState(self, retVal) -proc get_CachedWindowInteractionState*(self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedWindowInteractionState(self, retVal) -proc Clone*(self: ptr IUIAutomationTextRange, clonedRange: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, clonedRange) -proc Compare*(self: ptr IUIAutomationTextRange, range: ptr IUIAutomationTextRange, areSame: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Compare(self, range, areSame) -proc CompareEndpoints*(self: ptr IUIAutomationTextRange, srcEndPoint: TextPatternRangeEndpoint, range: ptr IUIAutomationTextRange, targetEndPoint: TextPatternRangeEndpoint, compValue: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareEndpoints(self, srcEndPoint, range, targetEndPoint, compValue) -proc ExpandToEnclosingUnit*(self: ptr IUIAutomationTextRange, textUnit: TextUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ExpandToEnclosingUnit(self, textUnit) -proc FindAttribute*(self: ptr IUIAutomationTextRange, attr: TEXTATTRIBUTEID, val: VARIANT, backward: BOOL, found: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindAttribute(self, attr, val, backward, found) -proc FindText*(self: ptr IUIAutomationTextRange, text: BSTR, backward: BOOL, ignoreCase: BOOL, found: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindText(self, text, backward, ignoreCase, found) -proc GetAttributeValue*(self: ptr IUIAutomationTextRange, attr: TEXTATTRIBUTEID, value: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributeValue(self, attr, value) -proc GetBoundingRectangles*(self: ptr IUIAutomationTextRange, boundingRects: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBoundingRectangles(self, boundingRects) -proc GetEnclosingElement*(self: ptr IUIAutomationTextRange, enclosingElement: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnclosingElement(self, enclosingElement) -proc GetText*(self: ptr IUIAutomationTextRange, maxLength: int32, text: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetText(self, maxLength, text) -proc Move*(self: ptr IUIAutomationTextRange, unit: TextUnit, count: int32, moved: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Move(self, unit, count, moved) -proc MoveEndpointByUnit*(self: ptr IUIAutomationTextRange, endpoint: TextPatternRangeEndpoint, unit: TextUnit, count: int32, moved: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveEndpointByUnit(self, endpoint, unit, count, moved) -proc MoveEndpointByRange*(self: ptr IUIAutomationTextRange, srcEndPoint: TextPatternRangeEndpoint, range: ptr IUIAutomationTextRange, targetEndPoint: TextPatternRangeEndpoint): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MoveEndpointByRange(self, srcEndPoint, range, targetEndPoint) -proc Select*(self: ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self) -proc AddToSelection*(self: ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddToSelection(self) -proc RemoveFromSelection*(self: ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFromSelection(self) -proc ScrollIntoView*(self: ptr IUIAutomationTextRange, alignToTop: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ScrollIntoView(self, alignToTop) -proc GetChildren*(self: ptr IUIAutomationTextRange, children: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildren(self, children) -proc ShowContextMenu*(self: ptr IUIAutomationTextRange2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContextMenu(self) -proc GetEnclosingElementBuildCache*(self: ptr IUIAutomationTextRange3, cacheRequest: ptr IUIAutomationCacheRequest, enclosingElement: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnclosingElementBuildCache(self, cacheRequest, enclosingElement) -proc GetChildrenBuildCache*(self: ptr IUIAutomationTextRange3, cacheRequest: ptr IUIAutomationCacheRequest, children: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChildrenBuildCache(self, cacheRequest, children) -proc GetAttributeValues*(self: ptr IUIAutomationTextRange3, attributeIds: ptr TEXTATTRIBUTEID, attributeIdCount: int32, attributeValues: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAttributeValues(self, attributeIds, attributeIdCount, attributeValues) -proc get_Length*(self: ptr IUIAutomationTextRangeArray, length: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Length(self, length) -proc GetElement*(self: ptr IUIAutomationTextRangeArray, index: int32, element: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetElement(self, index, element) -proc RangeFromPoint*(self: ptr IUIAutomationTextPattern, pt: POINT, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RangeFromPoint(self, pt, range) -proc RangeFromChild*(self: ptr IUIAutomationTextPattern, child: ptr IUIAutomationElement, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RangeFromChild(self, child, range) -proc GetSelection*(self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSelection(self, ranges) -proc GetVisibleRanges*(self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVisibleRanges(self, ranges) -proc get_DocumentRange*(self: ptr IUIAutomationTextPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_DocumentRange(self, range) -proc get_SupportedTextSelection*(self: ptr IUIAutomationTextPattern, supportedTextSelection: ptr SupportedTextSelection): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_SupportedTextSelection(self, supportedTextSelection) -proc RangeFromAnnotation*(self: ptr IUIAutomationTextPattern2, annotation: ptr IUIAutomationElement, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RangeFromAnnotation(self, annotation, range) -proc GetCaretRange*(self: ptr IUIAutomationTextPattern2, isActive: ptr BOOL, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCaretRange(self, isActive, range) -proc GetActiveComposition*(self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetActiveComposition(self, range) -proc GetConversionTarget*(self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetConversionTarget(self, range) -proc Navigate*(self: ptr IUIAutomationCustomNavigationPattern, direction: NavigateDirection, pRetVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Navigate(self, direction, pRetVal) -proc HandleActiveTextPositionChangedEvent*(self: ptr IUIAutomationActiveTextPositionChangedEventHandler, sender: ptr IUIAutomationElement, range: ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HandleActiveTextPositionChangedEvent(self, sender, range) -proc Select*(self: ptr IUIAutomationLegacyIAccessiblePattern, flagsSelect: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Select(self, flagsSelect) -proc DoDefaultAction*(self: ptr IUIAutomationLegacyIAccessiblePattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoDefaultAction(self) -proc SetValue*(self: ptr IUIAutomationLegacyIAccessiblePattern, szValue: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetValue(self, szValue) -proc get_CurrentChildId*(self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentChildId(self, pRetVal) -proc get_CurrentName*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentName(self, pszName) -proc get_CurrentValue*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentValue(self, pszValue) -proc get_CurrentDescription*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDescription(self, pszDescription) -proc get_CurrentRole*(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentRole(self, pdwRole) -proc get_CurrentState*(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentState(self, pdwState) -proc get_CurrentHelp*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHelp(self, pszHelp) -proc get_CurrentKeyboardShortcut*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentKeyboardShortcut(self, pszKeyboardShortcut) -proc GetCurrentSelection*(self: ptr IUIAutomationLegacyIAccessiblePattern, pvarSelectedChildren: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentSelection(self, pvarSelectedChildren) -proc get_CurrentDefaultAction*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDefaultAction(self, pszDefaultAction) -proc get_CachedChildId*(self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedChildId(self, pRetVal) -proc get_CachedName*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedName(self, pszName) -proc get_CachedValue*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedValue(self, pszValue) -proc get_CachedDescription*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDescription(self, pszDescription) -proc get_CachedRole*(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedRole(self, pdwRole) -proc get_CachedState*(self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedState(self, pdwState) -proc get_CachedHelp*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHelp(self, pszHelp) -proc get_CachedKeyboardShortcut*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedKeyboardShortcut(self, pszKeyboardShortcut) -proc GetCachedSelection*(self: ptr IUIAutomationLegacyIAccessiblePattern, pvarSelectedChildren: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedSelection(self, pvarSelectedChildren) -proc get_CachedDefaultAction*(self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDefaultAction(self, pszDefaultAction) -proc GetIAccessible*(self: ptr IUIAutomationLegacyIAccessiblePattern, ppAccessible: ptr ptr IAccessible): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetIAccessible(self, ppAccessible) -proc FindItemByProperty*(self: ptr IUIAutomationItemContainerPattern, pStartAfter: ptr IUIAutomationElement, propertyId: PROPERTYID, value: VARIANT, pFound: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindItemByProperty(self, pStartAfter, propertyId, value, pFound) -proc Realize*(self: ptr IUIAutomationVirtualizedItemPattern): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Realize(self) -proc get_CurrentAnnotationTypeId*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAnnotationTypeId(self, retVal) -proc get_CurrentAnnotationTypeName*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAnnotationTypeName(self, retVal) -proc get_CurrentAuthor*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAuthor(self, retVal) -proc get_CurrentDateTime*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDateTime(self, retVal) -proc get_CurrentTarget*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentTarget(self, retVal) -proc get_CachedAnnotationTypeId*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAnnotationTypeId(self, retVal) -proc get_CachedAnnotationTypeName*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAnnotationTypeName(self, retVal) -proc get_CachedAuthor*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAuthor(self, retVal) -proc get_CachedDateTime*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDateTime(self, retVal) -proc get_CachedTarget*(self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedTarget(self, retVal) -proc get_CurrentStyleId*(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentStyleId(self, retVal) -proc get_CurrentStyleName*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentStyleName(self, retVal) -proc get_CurrentFillColor*(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFillColor(self, retVal) -proc get_CurrentFillPatternStyle*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFillPatternStyle(self, retVal) -proc get_CurrentShape*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentShape(self, retVal) -proc get_CurrentFillPatternColor*(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFillPatternColor(self, retVal) -proc get_CurrentExtendedProperties*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentExtendedProperties(self, retVal) -proc GetCurrentExtendedPropertiesAsArray*(self: ptr IUIAutomationStylesPattern, propertyArray: ptr ptr TExtendedProperty, propertyCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentExtendedPropertiesAsArray(self, propertyArray, propertyCount) -proc get_CachedStyleId*(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedStyleId(self, retVal) -proc get_CachedStyleName*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedStyleName(self, retVal) -proc get_CachedFillColor*(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFillColor(self, retVal) -proc get_CachedFillPatternStyle*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFillPatternStyle(self, retVal) -proc get_CachedShape*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedShape(self, retVal) -proc get_CachedFillPatternColor*(self: ptr IUIAutomationStylesPattern, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFillPatternColor(self, retVal) -proc get_CachedExtendedProperties*(self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedExtendedProperties(self, retVal) -proc GetCachedExtendedPropertiesAsArray*(self: ptr IUIAutomationStylesPattern, propertyArray: ptr ptr TExtendedProperty, propertyCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedExtendedPropertiesAsArray(self, propertyArray, propertyCount) -proc GetItemByName*(self: ptr IUIAutomationSpreadsheetPattern, name: BSTR, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetItemByName(self, name, element) -proc get_CurrentFormula*(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFormula(self, retVal) -proc GetCurrentAnnotationObjects*(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentAnnotationObjects(self, retVal) -proc GetCurrentAnnotationTypes*(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentAnnotationTypes(self, retVal) -proc get_CachedFormula*(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFormula(self, retVal) -proc GetCachedAnnotationObjects*(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedAnnotationObjects(self, retVal) -proc GetCachedAnnotationTypes*(self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedAnnotationTypes(self, retVal) -proc Zoom*(self: ptr IUIAutomationTransformPattern2, zoomValue: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Zoom(self, zoomValue) -proc ZoomByUnit*(self: ptr IUIAutomationTransformPattern2, zoomUnit: ZoomUnit): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ZoomByUnit(self, zoomUnit) -proc get_CurrentCanZoom*(self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentCanZoom(self, retVal) -proc get_CachedCanZoom*(self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedCanZoom(self, retVal) -proc get_CurrentZoomLevel*(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentZoomLevel(self, retVal) -proc get_CachedZoomLevel*(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedZoomLevel(self, retVal) -proc get_CurrentZoomMinimum*(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentZoomMinimum(self, retVal) -proc get_CachedZoomMinimum*(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedZoomMinimum(self, retVal) -proc get_CurrentZoomMaximum*(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentZoomMaximum(self, retVal) -proc get_CachedZoomMaximum*(self: ptr IUIAutomationTransformPattern2, retVal: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedZoomMaximum(self, retVal) -proc get_TextContainer*(self: ptr IUIAutomationTextChildPattern, container: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextContainer(self, container) -proc get_TextRange*(self: ptr IUIAutomationTextChildPattern, range: ptr ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TextRange(self, range) -proc get_CurrentIsGrabbed*(self: ptr IUIAutomationDragPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsGrabbed(self, retVal) -proc get_CachedIsGrabbed*(self: ptr IUIAutomationDragPattern, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsGrabbed(self, retVal) -proc get_CurrentDropEffect*(self: ptr IUIAutomationDragPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDropEffect(self, retVal) -proc get_CachedDropEffect*(self: ptr IUIAutomationDragPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDropEffect(self, retVal) -proc get_CurrentDropEffects*(self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDropEffects(self, retVal) -proc get_CachedDropEffects*(self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDropEffects(self, retVal) -proc GetCurrentGrabbedItems*(self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentGrabbedItems(self, retVal) -proc GetCachedGrabbedItems*(self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCachedGrabbedItems(self, retVal) -proc get_CurrentDropTargetEffect*(self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDropTargetEffect(self, retVal) -proc get_CachedDropTargetEffect*(self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDropTargetEffect(self, retVal) -proc get_CurrentDropTargetEffects*(self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentDropTargetEffects(self, retVal) -proc get_CachedDropTargetEffects*(self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedDropTargetEffects(self, retVal) -proc get_CurrentOptimizeForVisualContent*(self: ptr IUIAutomationElement2, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentOptimizeForVisualContent(self, retVal) -proc get_CachedOptimizeForVisualContent*(self: ptr IUIAutomationElement2, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedOptimizeForVisualContent(self, retVal) -proc get_CurrentLiveSetting*(self: ptr IUIAutomationElement2, retVal: ptr LiveSetting): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLiveSetting(self, retVal) -proc get_CachedLiveSetting*(self: ptr IUIAutomationElement2, retVal: ptr LiveSetting): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLiveSetting(self, retVal) -proc get_CurrentFlowsFrom*(self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFlowsFrom(self, retVal) -proc get_CachedFlowsFrom*(self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFlowsFrom(self, retVal) -proc ShowContextMenu*(self: ptr IUIAutomationElement3): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ShowContextMenu(self) -proc get_CurrentIsPeripheral*(self: ptr IUIAutomationElement3, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsPeripheral(self, retVal) -proc get_CachedIsPeripheral*(self: ptr IUIAutomationElement3, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsPeripheral(self, retVal) -proc get_CurrentPositionInSet*(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentPositionInSet(self, retVal) -proc get_CurrentSizeOfSet*(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentSizeOfSet(self, retVal) -proc get_CurrentLevel*(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLevel(self, retVal) -proc get_CurrentAnnotationTypes*(self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAnnotationTypes(self, retVal) -proc get_CurrentAnnotationObjects*(self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentAnnotationObjects(self, retVal) -proc get_CachedPositionInSet*(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedPositionInSet(self, retVal) -proc get_CachedSizeOfSet*(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedSizeOfSet(self, retVal) -proc get_CachedLevel*(self: ptr IUIAutomationElement4, retVal: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLevel(self, retVal) -proc get_CachedAnnotationTypes*(self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAnnotationTypes(self, retVal) -proc get_CachedAnnotationObjects*(self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedAnnotationObjects(self, retVal) -proc get_CurrentLandmarkType*(self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLandmarkType(self, retVal) -proc get_CurrentLocalizedLandmarkType*(self: ptr IUIAutomationElement5, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentLocalizedLandmarkType(self, retVal) -proc get_CachedLandmarkType*(self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLandmarkType(self, retVal) -proc get_CachedLocalizedLandmarkType*(self: ptr IUIAutomationElement5, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedLocalizedLandmarkType(self, retVal) -proc get_CurrentFullDescription*(self: ptr IUIAutomationElement6, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentFullDescription(self, retVal) -proc get_CachedFullDescription*(self: ptr IUIAutomationElement6, retVal: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedFullDescription(self, retVal) -proc FindFirstWithOptions*(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFirstWithOptions(self, scope, condition, traversalOptions, root, found) -proc FindAllWithOptions*(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindAllWithOptions(self, scope, condition, traversalOptions, root, found) -proc FindFirstWithOptionsBuildCache*(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindFirstWithOptionsBuildCache(self, scope, condition, cacheRequest, traversalOptions, root, found) -proc FindAllWithOptionsBuildCache*(self: ptr IUIAutomationElement7, scope: TreeScope, condition: ptr IUIAutomationCondition, cacheRequest: ptr IUIAutomationCacheRequest, traversalOptions: TreeTraversalOptions, root: ptr IUIAutomationElement, found: ptr ptr IUIAutomationElementArray): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindAllWithOptionsBuildCache(self, scope, condition, cacheRequest, traversalOptions, root, found) -proc GetCurrentMetadataValue*(self: ptr IUIAutomationElement7, targetId: int32, metadataId: METADATAID, returnVal: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCurrentMetadataValue(self, targetId, metadataId, returnVal) -proc get_CurrentHeadingLevel*(self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentHeadingLevel(self, retVal) -proc get_CachedHeadingLevel*(self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedHeadingLevel(self, retVal) -proc get_CurrentIsDialog*(self: ptr IUIAutomationElement9, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CurrentIsDialog(self, retVal) -proc get_CachedIsDialog*(self: ptr IUIAutomationElement9, retVal: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CachedIsDialog(self, retVal) -proc CreateProvider*(self: ptr IUIAutomationProxyFactory, hwnd: UIA_HWND, idObject: LONG, idChild: LONG, provider: ptr ptr IRawElementProviderSimple): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateProvider(self, hwnd, idObject, idChild, provider) -proc get_ProxyFactoryId*(self: ptr IUIAutomationProxyFactory, factoryId: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ProxyFactoryId(self, factoryId) -proc get_ProxyFactory*(self: ptr IUIAutomationProxyFactoryEntry, factory: ptr ptr IUIAutomationProxyFactory): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ProxyFactory(self, factory) -proc get_ClassName*(self: ptr IUIAutomationProxyFactoryEntry, className: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ClassName(self, className) -proc get_ImageName*(self: ptr IUIAutomationProxyFactoryEntry, imageName: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ImageName(self, imageName) -proc get_AllowSubstringMatch*(self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AllowSubstringMatch(self, allowSubstringMatch) -proc get_CanCheckBaseClass*(self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CanCheckBaseClass(self, canCheckBaseClass) -proc get_NeedsAdviseEvents*(self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_NeedsAdviseEvents(self, adviseEvents) -proc put_ClassName*(self: ptr IUIAutomationProxyFactoryEntry, className: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ClassName(self, className) -proc put_ImageName*(self: ptr IUIAutomationProxyFactoryEntry, imageName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ImageName(self, imageName) -proc put_AllowSubstringMatch*(self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_AllowSubstringMatch(self, allowSubstringMatch) -proc put_CanCheckBaseClass*(self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_CanCheckBaseClass(self, canCheckBaseClass) -proc put_NeedsAdviseEvents*(self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_NeedsAdviseEvents(self, adviseEvents) -proc SetWinEventsForAutomationEvent*(self: ptr IUIAutomationProxyFactoryEntry, eventId: EVENTID, propertyId: PROPERTYID, winEvents: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetWinEventsForAutomationEvent(self, eventId, propertyId, winEvents) -proc GetWinEventsForAutomationEvent*(self: ptr IUIAutomationProxyFactoryEntry, eventId: EVENTID, propertyId: PROPERTYID, winEvents: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetWinEventsForAutomationEvent(self, eventId, propertyId, winEvents) -proc get_Count*(self: ptr IUIAutomationProxyFactoryMapping, count: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_Count(self, count) -proc GetTable*(self: ptr IUIAutomationProxyFactoryMapping, table: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetTable(self, table) -proc GetEntry*(self: ptr IUIAutomationProxyFactoryMapping, index: UINT, entry: ptr ptr IUIAutomationProxyFactoryEntry): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEntry(self, index, entry) -proc SetTable*(self: ptr IUIAutomationProxyFactoryMapping, factoryList: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetTable(self, factoryList) -proc InsertEntries*(self: ptr IUIAutomationProxyFactoryMapping, before: UINT, factoryList: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertEntries(self, before, factoryList) -proc InsertEntry*(self: ptr IUIAutomationProxyFactoryMapping, before: UINT, factory: ptr IUIAutomationProxyFactoryEntry): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InsertEntry(self, before, factory) -proc RemoveEntry*(self: ptr IUIAutomationProxyFactoryMapping, index: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveEntry(self, index) -proc ClearTable*(self: ptr IUIAutomationProxyFactoryMapping): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ClearTable(self) -proc RestoreDefaultTable*(self: ptr IUIAutomationProxyFactoryMapping): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RestoreDefaultTable(self) -proc AddActiveTextPositionChangedEventHandler*(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationActiveTextPositionChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddActiveTextPositionChangedEventHandler(self, scope, cacheRequest, handler) -proc AddAutomationEventHandler*(self: ptr IUIAutomationEventHandlerGroup, eventId: EVENTID, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddAutomationEventHandler(self, eventId, scope, cacheRequest, handler) -proc AddChangesEventHandler*(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, changeTypes: ptr int32, changesCount: int32, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationChangesEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddChangesEventHandler(self, scope, changeTypes, changesCount, cacheRequest, handler) -proc AddNotificationEventHandler*(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationNotificationEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddNotificationEventHandler(self, scope, cacheRequest, handler) -proc AddPropertyChangedEventHandler*(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationPropertyChangedEventHandler, propertyArray: ptr PROPERTYID, propertyCount: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPropertyChangedEventHandler(self, scope, cacheRequest, handler, propertyArray, propertyCount) -proc AddStructureChangedEventHandler*(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationStructureChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddStructureChangedEventHandler(self, scope, cacheRequest, handler) -proc AddTextEditTextChangedEventHandler*(self: ptr IUIAutomationEventHandlerGroup, scope: TreeScope, textEditChangeType: TextEditChangeType, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationTextEditTextChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTextEditTextChangedEventHandler(self, scope, textEditChangeType, cacheRequest, handler) -proc CompareElements*(self: ptr IUIAutomation, el1: ptr IUIAutomationElement, el2: ptr IUIAutomationElement, areSame: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareElements(self, el1, el2, areSame) -proc CompareRuntimeIds*(self: ptr IUIAutomation, runtimeId1: ptr SAFEARRAY, runtimeId2: ptr SAFEARRAY, areSame: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CompareRuntimeIds(self, runtimeId1, runtimeId2, areSame) -proc GetRootElement*(self: ptr IUIAutomation, root: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRootElement(self, root) -proc ElementFromHandle*(self: ptr IUIAutomation, hwnd: UIA_HWND, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementFromHandle(self, hwnd, element) -proc ElementFromPoint*(self: ptr IUIAutomation, pt: POINT, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementFromPoint(self, pt, element) -proc GetFocusedElement*(self: ptr IUIAutomation, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFocusedElement(self, element) -proc GetRootElementBuildCache*(self: ptr IUIAutomation, cacheRequest: ptr IUIAutomationCacheRequest, root: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetRootElementBuildCache(self, cacheRequest, root) -proc ElementFromHandleBuildCache*(self: ptr IUIAutomation, hwnd: UIA_HWND, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementFromHandleBuildCache(self, hwnd, cacheRequest, element) -proc ElementFromPointBuildCache*(self: ptr IUIAutomation, pt: POINT, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementFromPointBuildCache(self, pt, cacheRequest, element) -proc GetFocusedElementBuildCache*(self: ptr IUIAutomation, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFocusedElementBuildCache(self, cacheRequest, element) -proc CreateTreeWalker*(self: ptr IUIAutomation, pCondition: ptr IUIAutomationCondition, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateTreeWalker(self, pCondition, walker) -proc get_ControlViewWalker*(self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ControlViewWalker(self, walker) -proc get_ContentViewWalker*(self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ContentViewWalker(self, walker) -proc get_RawViewWalker*(self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RawViewWalker(self, walker) -proc get_RawViewCondition*(self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_RawViewCondition(self, condition) -proc get_ControlViewCondition*(self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ControlViewCondition(self, condition) -proc get_ContentViewCondition*(self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ContentViewCondition(self, condition) -proc CreateCacheRequest*(self: ptr IUIAutomation, cacheRequest: ptr ptr IUIAutomationCacheRequest): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateCacheRequest(self, cacheRequest) -proc CreateTrueCondition*(self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateTrueCondition(self, newCondition) -proc CreateFalseCondition*(self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateFalseCondition(self, newCondition) -proc CreatePropertyCondition*(self: ptr IUIAutomation, propertyId: PROPERTYID, value: VARIANT, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreatePropertyCondition(self, propertyId, value, newCondition) -proc CreatePropertyConditionEx*(self: ptr IUIAutomation, propertyId: PROPERTYID, value: VARIANT, flags: PropertyConditionFlags, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreatePropertyConditionEx(self, propertyId, value, flags, newCondition) -proc CreateAndCondition*(self: ptr IUIAutomation, condition1: ptr IUIAutomationCondition, condition2: ptr IUIAutomationCondition, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateAndCondition(self, condition1, condition2, newCondition) -proc CreateAndConditionFromArray*(self: ptr IUIAutomation, conditions: ptr SAFEARRAY, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateAndConditionFromArray(self, conditions, newCondition) -proc CreateAndConditionFromNativeArray*(self: ptr IUIAutomation, conditions: ptr ptr IUIAutomationCondition, conditionCount: int32, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateAndConditionFromNativeArray(self, conditions, conditionCount, newCondition) -proc CreateOrCondition*(self: ptr IUIAutomation, condition1: ptr IUIAutomationCondition, condition2: ptr IUIAutomationCondition, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateOrCondition(self, condition1, condition2, newCondition) -proc CreateOrConditionFromArray*(self: ptr IUIAutomation, conditions: ptr SAFEARRAY, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateOrConditionFromArray(self, conditions, newCondition) -proc CreateOrConditionFromNativeArray*(self: ptr IUIAutomation, conditions: ptr ptr IUIAutomationCondition, conditionCount: int32, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateOrConditionFromNativeArray(self, conditions, conditionCount, newCondition) -proc CreateNotCondition*(self: ptr IUIAutomation, condition: ptr IUIAutomationCondition, newCondition: ptr ptr IUIAutomationCondition): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateNotCondition(self, condition, newCondition) -proc AddAutomationEventHandler*(self: ptr IUIAutomation, eventId: EVENTID, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddAutomationEventHandler(self, eventId, element, scope, cacheRequest, handler) -proc RemoveAutomationEventHandler*(self: ptr IUIAutomation, eventId: EVENTID, element: ptr IUIAutomationElement, handler: ptr IUIAutomationEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAutomationEventHandler(self, eventId, element, handler) -proc AddPropertyChangedEventHandlerNativeArray*(self: ptr IUIAutomation, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationPropertyChangedEventHandler, propertyArray: ptr PROPERTYID, propertyCount: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPropertyChangedEventHandlerNativeArray(self, element, scope, cacheRequest, handler, propertyArray, propertyCount) -proc AddPropertyChangedEventHandler*(self: ptr IUIAutomation, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationPropertyChangedEventHandler, propertyArray: ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddPropertyChangedEventHandler(self, element, scope, cacheRequest, handler, propertyArray) -proc RemovePropertyChangedEventHandler*(self: ptr IUIAutomation, element: ptr IUIAutomationElement, handler: ptr IUIAutomationPropertyChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemovePropertyChangedEventHandler(self, element, handler) -proc AddStructureChangedEventHandler*(self: ptr IUIAutomation, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationStructureChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddStructureChangedEventHandler(self, element, scope, cacheRequest, handler) -proc RemoveStructureChangedEventHandler*(self: ptr IUIAutomation, element: ptr IUIAutomationElement, handler: ptr IUIAutomationStructureChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveStructureChangedEventHandler(self, element, handler) -proc AddFocusChangedEventHandler*(self: ptr IUIAutomation, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationFocusChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddFocusChangedEventHandler(self, cacheRequest, handler) -proc RemoveFocusChangedEventHandler*(self: ptr IUIAutomation, handler: ptr IUIAutomationFocusChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveFocusChangedEventHandler(self, handler) -proc RemoveAllEventHandlers*(self: ptr IUIAutomation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveAllEventHandlers(self) -proc IntNativeArrayToSafeArray*(self: ptr IUIAutomation, array: ptr int32, arrayCount: int32, safeArray: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IntNativeArrayToSafeArray(self, array, arrayCount, safeArray) -proc IntSafeArrayToNativeArray*(self: ptr IUIAutomation, intArray: ptr SAFEARRAY, array: ptr ptr int32, arrayCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IntSafeArrayToNativeArray(self, intArray, array, arrayCount) -proc RectToVariant*(self: ptr IUIAutomation, rc: RECT, `var`: ptr VARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RectToVariant(self, rc, `var`) -proc VariantToRect*(self: ptr IUIAutomation, `var`: VARIANT, rc: ptr RECT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.VariantToRect(self, `var`, rc) -proc SafeArrayToRectNativeArray*(self: ptr IUIAutomation, rects: ptr SAFEARRAY, rectArray: ptr ptr RECT, rectArrayCount: ptr int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SafeArrayToRectNativeArray(self, rects, rectArray, rectArrayCount) -proc CreateProxyFactoryEntry*(self: ptr IUIAutomation, factory: ptr IUIAutomationProxyFactory, factoryEntry: ptr ptr IUIAutomationProxyFactoryEntry): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateProxyFactoryEntry(self, factory, factoryEntry) -proc get_ProxyFactoryMapping*(self: ptr IUIAutomation, factoryMapping: ptr ptr IUIAutomationProxyFactoryMapping): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ProxyFactoryMapping(self, factoryMapping) -proc GetPropertyProgrammaticName*(self: ptr IUIAutomation, property: PROPERTYID, name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPropertyProgrammaticName(self, property, name) -proc GetPatternProgrammaticName*(self: ptr IUIAutomation, pattern: PATTERNID, name: ptr BSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPatternProgrammaticName(self, pattern, name) -proc PollForPotentialSupportedPatterns*(self: ptr IUIAutomation, pElement: ptr IUIAutomationElement, patternIds: ptr ptr SAFEARRAY, patternNames: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PollForPotentialSupportedPatterns(self, pElement, patternIds, patternNames) -proc PollForPotentialSupportedProperties*(self: ptr IUIAutomation, pElement: ptr IUIAutomationElement, propertyIds: ptr ptr SAFEARRAY, propertyNames: ptr ptr SAFEARRAY): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.PollForPotentialSupportedProperties(self, pElement, propertyIds, propertyNames) -proc CheckNotSupported*(self: ptr IUIAutomation, value: VARIANT, isNotSupported: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CheckNotSupported(self, value, isNotSupported) -proc get_ReservedNotSupportedValue*(self: ptr IUIAutomation, notSupportedValue: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReservedNotSupportedValue(self, notSupportedValue) -proc get_ReservedMixedAttributeValue*(self: ptr IUIAutomation, mixedAttributeValue: ptr ptr IUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ReservedMixedAttributeValue(self, mixedAttributeValue) -proc ElementFromIAccessible*(self: ptr IUIAutomation, accessible: ptr IAccessible, childId: int32, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementFromIAccessible(self, accessible, childId, element) -proc ElementFromIAccessibleBuildCache*(self: ptr IUIAutomation, accessible: ptr IAccessible, childId: int32, cacheRequest: ptr IUIAutomationCacheRequest, element: ptr ptr IUIAutomationElement): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ElementFromIAccessibleBuildCache(self, accessible, childId, cacheRequest, element) -proc get_AutoSetFocus*(self: ptr IUIAutomation2, autoSetFocus: ptr BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_AutoSetFocus(self, autoSetFocus) -proc put_AutoSetFocus*(self: ptr IUIAutomation2, autoSetFocus: BOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_AutoSetFocus(self, autoSetFocus) -proc get_ConnectionTimeout*(self: ptr IUIAutomation2, timeout: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ConnectionTimeout(self, timeout) -proc put_ConnectionTimeout*(self: ptr IUIAutomation2, timeout: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ConnectionTimeout(self, timeout) -proc get_TransactionTimeout*(self: ptr IUIAutomation2, timeout: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_TransactionTimeout(self, timeout) -proc put_TransactionTimeout*(self: ptr IUIAutomation2, timeout: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_TransactionTimeout(self, timeout) -proc AddTextEditTextChangedEventHandler*(self: ptr IUIAutomation3, element: ptr IUIAutomationElement, scope: TreeScope, textEditChangeType: TextEditChangeType, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationTextEditTextChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddTextEditTextChangedEventHandler(self, element, scope, textEditChangeType, cacheRequest, handler) -proc RemoveTextEditTextChangedEventHandler*(self: ptr IUIAutomation3, element: ptr IUIAutomationElement, handler: ptr IUIAutomationTextEditTextChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveTextEditTextChangedEventHandler(self, element, handler) -proc AddChangesEventHandler*(self: ptr IUIAutomation4, element: ptr IUIAutomationElement, scope: TreeScope, changeTypes: ptr int32, changesCount: int32, pCacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationChangesEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddChangesEventHandler(self, element, scope, changeTypes, changesCount, pCacheRequest, handler) -proc RemoveChangesEventHandler*(self: ptr IUIAutomation4, element: ptr IUIAutomationElement, handler: ptr IUIAutomationChangesEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveChangesEventHandler(self, element, handler) -proc AddNotificationEventHandler*(self: ptr IUIAutomation5, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationNotificationEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddNotificationEventHandler(self, element, scope, cacheRequest, handler) -proc RemoveNotificationEventHandler*(self: ptr IUIAutomation5, element: ptr IUIAutomationElement, handler: ptr IUIAutomationNotificationEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveNotificationEventHandler(self, element, handler) -proc CreateEventHandlerGroup*(self: ptr IUIAutomation6, handlerGroup: ptr ptr IUIAutomationEventHandlerGroup): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateEventHandlerGroup(self, handlerGroup) -proc AddEventHandlerGroup*(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, handlerGroup: ptr IUIAutomationEventHandlerGroup): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddEventHandlerGroup(self, element, handlerGroup) -proc RemoveEventHandlerGroup*(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, handlerGroup: ptr IUIAutomationEventHandlerGroup): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveEventHandlerGroup(self, element, handlerGroup) -proc get_ConnectionRecoveryBehavior*(self: ptr IUIAutomation6, connectionRecoveryBehaviorOptions: ptr ConnectionRecoveryBehaviorOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_ConnectionRecoveryBehavior(self, connectionRecoveryBehaviorOptions) -proc put_ConnectionRecoveryBehavior*(self: ptr IUIAutomation6, connectionRecoveryBehaviorOptions: ConnectionRecoveryBehaviorOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_ConnectionRecoveryBehavior(self, connectionRecoveryBehaviorOptions) -proc get_CoalesceEvents*(self: ptr IUIAutomation6, coalesceEventsOptions: ptr CoalesceEventsOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.get_CoalesceEvents(self, coalesceEventsOptions) -proc put_CoalesceEvents*(self: ptr IUIAutomation6, coalesceEventsOptions: CoalesceEventsOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.put_CoalesceEvents(self, coalesceEventsOptions) -proc AddActiveTextPositionChangedEventHandler*(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, scope: TreeScope, cacheRequest: ptr IUIAutomationCacheRequest, handler: ptr IUIAutomationActiveTextPositionChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.AddActiveTextPositionChangedEventHandler(self, element, scope, cacheRequest, handler) -proc RemoveActiveTextPositionChangedEventHandler*(self: ptr IUIAutomation6, element: ptr IUIAutomationElement, handler: ptr IUIAutomationActiveTextPositionChangedEventHandler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveActiveTextPositionChangedEventHandler(self, element, handler) -converter winimConverterIRawElementProviderSimpleToIUnknown*(x: ptr IRawElementProviderSimple): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccessibleExToIUnknown*(x: ptr IAccessibleEx): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderSimple2ToIRawElementProviderSimple*(x: ptr IRawElementProviderSimple2): ptr IRawElementProviderSimple = cast[ptr IRawElementProviderSimple](x) -converter winimConverterIRawElementProviderSimple2ToIUnknown*(x: ptr IRawElementProviderSimple2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderSimple3ToIRawElementProviderSimple2*(x: ptr IRawElementProviderSimple3): ptr IRawElementProviderSimple2 = cast[ptr IRawElementProviderSimple2](x) -converter winimConverterIRawElementProviderSimple3ToIRawElementProviderSimple*(x: ptr IRawElementProviderSimple3): ptr IRawElementProviderSimple = cast[ptr IRawElementProviderSimple](x) -converter winimConverterIRawElementProviderSimple3ToIUnknown*(x: ptr IRawElementProviderSimple3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderFragmentRootToIUnknown*(x: ptr IRawElementProviderFragmentRoot): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderFragmentToIUnknown*(x: ptr IRawElementProviderFragment): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderAdviseEventsToIUnknown*(x: ptr IRawElementProviderAdviseEvents): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderHwndOverrideToIUnknown*(x: ptr IRawElementProviderHwndOverride): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProxyProviderWinEventSinkToIUnknown*(x: ptr IProxyProviderWinEventSink): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIProxyProviderWinEventHandlerToIUnknown*(x: ptr IProxyProviderWinEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderWindowlessSiteToIUnknown*(x: ptr IRawElementProviderWindowlessSite): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAccessibleHostingElementProvidersToIUnknown*(x: ptr IAccessibleHostingElementProviders): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRawElementProviderHostingAccessiblesToIUnknown*(x: ptr IRawElementProviderHostingAccessibles): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDockProviderToIUnknown*(x: ptr IDockProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIExpandCollapseProviderToIUnknown*(x: ptr IExpandCollapseProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGridProviderToIUnknown*(x: ptr IGridProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGridItemProviderToIUnknown*(x: ptr IGridItemProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIInvokeProviderToIUnknown*(x: ptr IInvokeProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIMultipleViewProviderToIUnknown*(x: ptr IMultipleViewProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIRangeValueProviderToIUnknown*(x: ptr IRangeValueProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIScrollItemProviderToIUnknown*(x: ptr IScrollItemProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISelectionProviderToIUnknown*(x: ptr ISelectionProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISelectionProvider2ToISelectionProvider*(x: ptr ISelectionProvider2): ptr ISelectionProvider = cast[ptr ISelectionProvider](x) -converter winimConverterISelectionProvider2ToIUnknown*(x: ptr ISelectionProvider2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIScrollProviderToIUnknown*(x: ptr IScrollProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISelectionItemProviderToIUnknown*(x: ptr ISelectionItemProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISynchronizedInputProviderToIUnknown*(x: ptr ISynchronizedInputProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITableProviderToIUnknown*(x: ptr ITableProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITableItemProviderToIUnknown*(x: ptr ITableItemProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIToggleProviderToIUnknown*(x: ptr IToggleProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITransformProviderToIUnknown*(x: ptr ITransformProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIValueProviderToIUnknown*(x: ptr IValueProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWindowProviderToIUnknown*(x: ptr IWindowProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterILegacyIAccessibleProviderToIUnknown*(x: ptr ILegacyIAccessibleProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIItemContainerProviderToIUnknown*(x: ptr IItemContainerProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIVirtualizedItemProviderToIUnknown*(x: ptr IVirtualizedItemProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIObjectModelProviderToIUnknown*(x: ptr IObjectModelProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAnnotationProviderToIUnknown*(x: ptr IAnnotationProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIStylesProviderToIUnknown*(x: ptr IStylesProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISpreadsheetProviderToIUnknown*(x: ptr ISpreadsheetProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterISpreadsheetItemProviderToIUnknown*(x: ptr ISpreadsheetItemProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITransformProvider2ToITransformProvider*(x: ptr ITransformProvider2): ptr ITransformProvider = cast[ptr ITransformProvider](x) -converter winimConverterITransformProvider2ToIUnknown*(x: ptr ITransformProvider2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDragProviderToIUnknown*(x: ptr IDragProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIDropTargetProviderToIUnknown*(x: ptr IDropTargetProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITextRangeProviderToIUnknown*(x: ptr ITextRangeProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITextProviderToIUnknown*(x: ptr ITextProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITextProvider2ToITextProvider*(x: ptr ITextProvider2): ptr ITextProvider = cast[ptr ITextProvider](x) -converter winimConverterITextProvider2ToIUnknown*(x: ptr ITextProvider2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITextEditProviderToITextProvider*(x: ptr ITextEditProvider): ptr ITextProvider = cast[ptr ITextProvider](x) -converter winimConverterITextEditProviderToIUnknown*(x: ptr ITextEditProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITextRangeProvider2ToITextRangeProvider*(x: ptr ITextRangeProvider2): ptr ITextRangeProvider = cast[ptr ITextRangeProvider](x) -converter winimConverterITextRangeProvider2ToIUnknown*(x: ptr ITextRangeProvider2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterITextChildProviderToIUnknown*(x: ptr ITextChildProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterICustomNavigationProviderToIUnknown*(x: ptr ICustomNavigationProvider): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationPatternInstanceToIUnknown*(x: ptr IUIAutomationPatternInstance): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationPatternHandlerToIUnknown*(x: ptr IUIAutomationPatternHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationRegistrarToIUnknown*(x: ptr IUIAutomationRegistrar): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElementToIUnknown*(x: ptr IUIAutomationElement): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElementArrayToIUnknown*(x: ptr IUIAutomationElementArray): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationConditionToIUnknown*(x: ptr IUIAutomationCondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationBoolConditionToIUIAutomationCondition*(x: ptr IUIAutomationBoolCondition): ptr IUIAutomationCondition = cast[ptr IUIAutomationCondition](x) -converter winimConverterIUIAutomationBoolConditionToIUnknown*(x: ptr IUIAutomationBoolCondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationPropertyConditionToIUIAutomationCondition*(x: ptr IUIAutomationPropertyCondition): ptr IUIAutomationCondition = cast[ptr IUIAutomationCondition](x) -converter winimConverterIUIAutomationPropertyConditionToIUnknown*(x: ptr IUIAutomationPropertyCondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationAndConditionToIUIAutomationCondition*(x: ptr IUIAutomationAndCondition): ptr IUIAutomationCondition = cast[ptr IUIAutomationCondition](x) -converter winimConverterIUIAutomationAndConditionToIUnknown*(x: ptr IUIAutomationAndCondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationOrConditionToIUIAutomationCondition*(x: ptr IUIAutomationOrCondition): ptr IUIAutomationCondition = cast[ptr IUIAutomationCondition](x) -converter winimConverterIUIAutomationOrConditionToIUnknown*(x: ptr IUIAutomationOrCondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationNotConditionToIUIAutomationCondition*(x: ptr IUIAutomationNotCondition): ptr IUIAutomationCondition = cast[ptr IUIAutomationCondition](x) -converter winimConverterIUIAutomationNotConditionToIUnknown*(x: ptr IUIAutomationNotCondition): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationCacheRequestToIUnknown*(x: ptr IUIAutomationCacheRequest): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTreeWalkerToIUnknown*(x: ptr IUIAutomationTreeWalker): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationEventHandlerToIUnknown*(x: ptr IUIAutomationEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationPropertyChangedEventHandlerToIUnknown*(x: ptr IUIAutomationPropertyChangedEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationStructureChangedEventHandlerToIUnknown*(x: ptr IUIAutomationStructureChangedEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationFocusChangedEventHandlerToIUnknown*(x: ptr IUIAutomationFocusChangedEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextEditTextChangedEventHandlerToIUnknown*(x: ptr IUIAutomationTextEditTextChangedEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationChangesEventHandlerToIUnknown*(x: ptr IUIAutomationChangesEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationNotificationEventHandlerToIUnknown*(x: ptr IUIAutomationNotificationEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationInvokePatternToIUnknown*(x: ptr IUIAutomationInvokePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationDockPatternToIUnknown*(x: ptr IUIAutomationDockPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationExpandCollapsePatternToIUnknown*(x: ptr IUIAutomationExpandCollapsePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationGridPatternToIUnknown*(x: ptr IUIAutomationGridPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationGridItemPatternToIUnknown*(x: ptr IUIAutomationGridItemPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationMultipleViewPatternToIUnknown*(x: ptr IUIAutomationMultipleViewPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationObjectModelPatternToIUnknown*(x: ptr IUIAutomationObjectModelPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationRangeValuePatternToIUnknown*(x: ptr IUIAutomationRangeValuePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationScrollPatternToIUnknown*(x: ptr IUIAutomationScrollPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationScrollItemPatternToIUnknown*(x: ptr IUIAutomationScrollItemPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationSelectionPatternToIUnknown*(x: ptr IUIAutomationSelectionPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationSelectionPattern2ToIUIAutomationSelectionPattern*(x: ptr IUIAutomationSelectionPattern2): ptr IUIAutomationSelectionPattern = cast[ptr IUIAutomationSelectionPattern](x) -converter winimConverterIUIAutomationSelectionPattern2ToIUnknown*(x: ptr IUIAutomationSelectionPattern2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationSelectionItemPatternToIUnknown*(x: ptr IUIAutomationSelectionItemPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationSynchronizedInputPatternToIUnknown*(x: ptr IUIAutomationSynchronizedInputPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTablePatternToIUnknown*(x: ptr IUIAutomationTablePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTableItemPatternToIUnknown*(x: ptr IUIAutomationTableItemPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTogglePatternToIUnknown*(x: ptr IUIAutomationTogglePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTransformPatternToIUnknown*(x: ptr IUIAutomationTransformPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationValuePatternToIUnknown*(x: ptr IUIAutomationValuePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationWindowPatternToIUnknown*(x: ptr IUIAutomationWindowPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextRangeToIUnknown*(x: ptr IUIAutomationTextRange): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextRange2ToIUIAutomationTextRange*(x: ptr IUIAutomationTextRange2): ptr IUIAutomationTextRange = cast[ptr IUIAutomationTextRange](x) -converter winimConverterIUIAutomationTextRange2ToIUnknown*(x: ptr IUIAutomationTextRange2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextRange3ToIUIAutomationTextRange2*(x: ptr IUIAutomationTextRange3): ptr IUIAutomationTextRange2 = cast[ptr IUIAutomationTextRange2](x) -converter winimConverterIUIAutomationTextRange3ToIUIAutomationTextRange*(x: ptr IUIAutomationTextRange3): ptr IUIAutomationTextRange = cast[ptr IUIAutomationTextRange](x) -converter winimConverterIUIAutomationTextRange3ToIUnknown*(x: ptr IUIAutomationTextRange3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextRangeArrayToIUnknown*(x: ptr IUIAutomationTextRangeArray): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextPatternToIUnknown*(x: ptr IUIAutomationTextPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextPattern2ToIUIAutomationTextPattern*(x: ptr IUIAutomationTextPattern2): ptr IUIAutomationTextPattern = cast[ptr IUIAutomationTextPattern](x) -converter winimConverterIUIAutomationTextPattern2ToIUnknown*(x: ptr IUIAutomationTextPattern2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextEditPatternToIUIAutomationTextPattern*(x: ptr IUIAutomationTextEditPattern): ptr IUIAutomationTextPattern = cast[ptr IUIAutomationTextPattern](x) -converter winimConverterIUIAutomationTextEditPatternToIUnknown*(x: ptr IUIAutomationTextEditPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationCustomNavigationPatternToIUnknown*(x: ptr IUIAutomationCustomNavigationPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationActiveTextPositionChangedEventHandlerToIUnknown*(x: ptr IUIAutomationActiveTextPositionChangedEventHandler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationLegacyIAccessiblePatternToIUnknown*(x: ptr IUIAutomationLegacyIAccessiblePattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationItemContainerPatternToIUnknown*(x: ptr IUIAutomationItemContainerPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationVirtualizedItemPatternToIUnknown*(x: ptr IUIAutomationVirtualizedItemPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationAnnotationPatternToIUnknown*(x: ptr IUIAutomationAnnotationPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationStylesPatternToIUnknown*(x: ptr IUIAutomationStylesPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationSpreadsheetPatternToIUnknown*(x: ptr IUIAutomationSpreadsheetPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationSpreadsheetItemPatternToIUnknown*(x: ptr IUIAutomationSpreadsheetItemPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTransformPattern2ToIUIAutomationTransformPattern*(x: ptr IUIAutomationTransformPattern2): ptr IUIAutomationTransformPattern = cast[ptr IUIAutomationTransformPattern](x) -converter winimConverterIUIAutomationTransformPattern2ToIUnknown*(x: ptr IUIAutomationTransformPattern2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationTextChildPatternToIUnknown*(x: ptr IUIAutomationTextChildPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationDragPatternToIUnknown*(x: ptr IUIAutomationDragPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationDropTargetPatternToIUnknown*(x: ptr IUIAutomationDropTargetPattern): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement2ToIUIAutomationElement*(x: ptr IUIAutomationElement2): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement2ToIUnknown*(x: ptr IUIAutomationElement2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement3ToIUIAutomationElement2*(x: ptr IUIAutomationElement3): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement3ToIUIAutomationElement*(x: ptr IUIAutomationElement3): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement3ToIUnknown*(x: ptr IUIAutomationElement3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement4ToIUIAutomationElement3*(x: ptr IUIAutomationElement4): ptr IUIAutomationElement3 = cast[ptr IUIAutomationElement3](x) -converter winimConverterIUIAutomationElement4ToIUIAutomationElement2*(x: ptr IUIAutomationElement4): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement4ToIUIAutomationElement*(x: ptr IUIAutomationElement4): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement4ToIUnknown*(x: ptr IUIAutomationElement4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement5ToIUIAutomationElement4*(x: ptr IUIAutomationElement5): ptr IUIAutomationElement4 = cast[ptr IUIAutomationElement4](x) -converter winimConverterIUIAutomationElement5ToIUIAutomationElement3*(x: ptr IUIAutomationElement5): ptr IUIAutomationElement3 = cast[ptr IUIAutomationElement3](x) -converter winimConverterIUIAutomationElement5ToIUIAutomationElement2*(x: ptr IUIAutomationElement5): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement5ToIUIAutomationElement*(x: ptr IUIAutomationElement5): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement5ToIUnknown*(x: ptr IUIAutomationElement5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement6ToIUIAutomationElement5*(x: ptr IUIAutomationElement6): ptr IUIAutomationElement5 = cast[ptr IUIAutomationElement5](x) -converter winimConverterIUIAutomationElement6ToIUIAutomationElement4*(x: ptr IUIAutomationElement6): ptr IUIAutomationElement4 = cast[ptr IUIAutomationElement4](x) -converter winimConverterIUIAutomationElement6ToIUIAutomationElement3*(x: ptr IUIAutomationElement6): ptr IUIAutomationElement3 = cast[ptr IUIAutomationElement3](x) -converter winimConverterIUIAutomationElement6ToIUIAutomationElement2*(x: ptr IUIAutomationElement6): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement6ToIUIAutomationElement*(x: ptr IUIAutomationElement6): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement6ToIUnknown*(x: ptr IUIAutomationElement6): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement7ToIUIAutomationElement6*(x: ptr IUIAutomationElement7): ptr IUIAutomationElement6 = cast[ptr IUIAutomationElement6](x) -converter winimConverterIUIAutomationElement7ToIUIAutomationElement5*(x: ptr IUIAutomationElement7): ptr IUIAutomationElement5 = cast[ptr IUIAutomationElement5](x) -converter winimConverterIUIAutomationElement7ToIUIAutomationElement4*(x: ptr IUIAutomationElement7): ptr IUIAutomationElement4 = cast[ptr IUIAutomationElement4](x) -converter winimConverterIUIAutomationElement7ToIUIAutomationElement3*(x: ptr IUIAutomationElement7): ptr IUIAutomationElement3 = cast[ptr IUIAutomationElement3](x) -converter winimConverterIUIAutomationElement7ToIUIAutomationElement2*(x: ptr IUIAutomationElement7): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement7ToIUIAutomationElement*(x: ptr IUIAutomationElement7): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement7ToIUnknown*(x: ptr IUIAutomationElement7): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement7*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement7 = cast[ptr IUIAutomationElement7](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement6*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement6 = cast[ptr IUIAutomationElement6](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement5*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement5 = cast[ptr IUIAutomationElement5](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement4*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement4 = cast[ptr IUIAutomationElement4](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement3*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement3 = cast[ptr IUIAutomationElement3](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement2*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement8ToIUIAutomationElement*(x: ptr IUIAutomationElement8): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement8ToIUnknown*(x: ptr IUIAutomationElement8): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement8*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement8 = cast[ptr IUIAutomationElement8](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement7*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement7 = cast[ptr IUIAutomationElement7](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement6*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement6 = cast[ptr IUIAutomationElement6](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement5*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement5 = cast[ptr IUIAutomationElement5](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement4*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement4 = cast[ptr IUIAutomationElement4](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement3*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement3 = cast[ptr IUIAutomationElement3](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement2*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement2 = cast[ptr IUIAutomationElement2](x) -converter winimConverterIUIAutomationElement9ToIUIAutomationElement*(x: ptr IUIAutomationElement9): ptr IUIAutomationElement = cast[ptr IUIAutomationElement](x) -converter winimConverterIUIAutomationElement9ToIUnknown*(x: ptr IUIAutomationElement9): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationProxyFactoryToIUnknown*(x: ptr IUIAutomationProxyFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationProxyFactoryEntryToIUnknown*(x: ptr IUIAutomationProxyFactoryEntry): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationProxyFactoryMappingToIUnknown*(x: ptr IUIAutomationProxyFactoryMapping): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationEventHandlerGroupToIUnknown*(x: ptr IUIAutomationEventHandlerGroup): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomationToIUnknown*(x: ptr IUIAutomation): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomation2ToIUIAutomation*(x: ptr IUIAutomation2): ptr IUIAutomation = cast[ptr IUIAutomation](x) -converter winimConverterIUIAutomation2ToIUnknown*(x: ptr IUIAutomation2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomation3ToIUIAutomation2*(x: ptr IUIAutomation3): ptr IUIAutomation2 = cast[ptr IUIAutomation2](x) -converter winimConverterIUIAutomation3ToIUIAutomation*(x: ptr IUIAutomation3): ptr IUIAutomation = cast[ptr IUIAutomation](x) -converter winimConverterIUIAutomation3ToIUnknown*(x: ptr IUIAutomation3): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomation4ToIUIAutomation3*(x: ptr IUIAutomation4): ptr IUIAutomation3 = cast[ptr IUIAutomation3](x) -converter winimConverterIUIAutomation4ToIUIAutomation2*(x: ptr IUIAutomation4): ptr IUIAutomation2 = cast[ptr IUIAutomation2](x) -converter winimConverterIUIAutomation4ToIUIAutomation*(x: ptr IUIAutomation4): ptr IUIAutomation = cast[ptr IUIAutomation](x) -converter winimConverterIUIAutomation4ToIUnknown*(x: ptr IUIAutomation4): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomation5ToIUIAutomation4*(x: ptr IUIAutomation5): ptr IUIAutomation4 = cast[ptr IUIAutomation4](x) -converter winimConverterIUIAutomation5ToIUIAutomation3*(x: ptr IUIAutomation5): ptr IUIAutomation3 = cast[ptr IUIAutomation3](x) -converter winimConverterIUIAutomation5ToIUIAutomation2*(x: ptr IUIAutomation5): ptr IUIAutomation2 = cast[ptr IUIAutomation2](x) -converter winimConverterIUIAutomation5ToIUIAutomation*(x: ptr IUIAutomation5): ptr IUIAutomation = cast[ptr IUIAutomation](x) -converter winimConverterIUIAutomation5ToIUnknown*(x: ptr IUIAutomation5): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIUIAutomation6ToIUIAutomation5*(x: ptr IUIAutomation6): ptr IUIAutomation5 = cast[ptr IUIAutomation5](x) -converter winimConverterIUIAutomation6ToIUIAutomation4*(x: ptr IUIAutomation6): ptr IUIAutomation4 = cast[ptr IUIAutomation4](x) -converter winimConverterIUIAutomation6ToIUIAutomation3*(x: ptr IUIAutomation6): ptr IUIAutomation3 = cast[ptr IUIAutomation3](x) -converter winimConverterIUIAutomation6ToIUIAutomation2*(x: ptr IUIAutomation6): ptr IUIAutomation2 = cast[ptr IUIAutomation2](x) -converter winimConverterIUIAutomation6ToIUIAutomation*(x: ptr IUIAutomation6): ptr IUIAutomation = cast[ptr IUIAutomation](x) -converter winimConverterIUIAutomation6ToIUnknown*(x: ptr IUIAutomation6): ptr IUnknown = cast[ptr IUnknown](x) + CreateEventHandlerGroup*: proc( + self: ptr IUIAutomation6, handlerGroup: ptr ptr IUIAutomationEventHandlerGroup + ): HRESULT {.stdcall.} + AddEventHandlerGroup*: proc( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + handlerGroup: ptr IUIAutomationEventHandlerGroup, + ): HRESULT {.stdcall.} + RemoveEventHandlerGroup*: proc( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + handlerGroup: ptr IUIAutomationEventHandlerGroup, + ): HRESULT {.stdcall.} + get_ConnectionRecoveryBehavior*: proc( + self: ptr IUIAutomation6, + connectionRecoveryBehaviorOptions: ptr ConnectionRecoveryBehaviorOptions, + ): HRESULT {.stdcall.} + put_ConnectionRecoveryBehavior*: proc( + self: ptr IUIAutomation6, + connectionRecoveryBehaviorOptions: ConnectionRecoveryBehaviorOptions, + ): HRESULT {.stdcall.} + get_CoalesceEvents*: proc( + self: ptr IUIAutomation6, coalesceEventsOptions: ptr CoalesceEventsOptions + ): HRESULT {.stdcall.} + put_CoalesceEvents*: proc( + self: ptr IUIAutomation6, coalesceEventsOptions: CoalesceEventsOptions + ): HRESULT {.stdcall.} + AddActiveTextPositionChangedEventHandler*: proc( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationActiveTextPositionChangedEventHandler, + ): HRESULT {.stdcall.} + RemoveActiveTextPositionChangedEventHandler*: proc( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationActiveTextPositionChangedEventHandler, + ): HRESULT {.stdcall.} + +proc UiaGetErrorDescription*( + pDescription: ptr BSTR +): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaHUiaNodeFromVariant*( + pvar: ptr VARIANT, phnode: ptr HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaHPatternObjectFromVariant*( + pvar: ptr VARIANT, phobj: ptr HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaHTextRangeFromVariant*( + pvar: ptr VARIANT, phtextrange: ptr HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaNodeRelease*( + hnode: HUIANODE +): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetPropertyValue*( + hnode: HUIANODE, propertyId: PROPERTYID, pValue: ptr VARIANT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetPatternProvider*( + hnode: HUIANODE, patternId: PATTERNID, phobj: ptr HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetRuntimeId*( + hnode: HUIANODE, pruntimeId: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaSetFocus*( + hnode: HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaNavigate*( + hnode: HUIANODE, + direction: NavigateDirection, + pCondition: ptr UiaCondition, + pRequest: ptr UiaCacheRequest, + ppRequestedData: ptr ptr SAFEARRAY, + ppTreeStructure: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetUpdatedCache*( + hnode: HUIANODE, + pRequest: ptr UiaCacheRequest, + normalizeState: NormalizeState, + pNormalizeCondition: ptr UiaCondition, + ppRequestedData: ptr ptr SAFEARRAY, + ppTreeStructure: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaFind*( + hnode: HUIANODE, + pParams: ptr UiaFindParams, + pRequest: ptr UiaCacheRequest, + ppRequestedData: ptr ptr SAFEARRAY, + ppOffsets: ptr ptr SAFEARRAY, + ppTreeStructures: ptr ptr SAFEARRAY, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaNodeFromPoint*( + x: float64, + y: float64, + pRequest: ptr UiaCacheRequest, + ppRequestedData: ptr ptr SAFEARRAY, + ppTreeStructure: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaNodeFromFocus*( + pRequest: ptr UiaCacheRequest, + ppRequestedData: ptr ptr SAFEARRAY, + ppTreeStructure: ptr BSTR, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaNodeFromHandle*( + hwnd: HWND, phnode: ptr HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaNodeFromProvider*( + pProvider: ptr IRawElementProviderSimple, phnode: ptr HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetRootNode*( + phnode: ptr HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRegisterProviderCallback*( + pCallback: UiaProviderCallback +): void {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaLookupId*( + `type`: AutomationIdentifierType, pGuid: ptr GUID +): int32 {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetReservedNotSupportedValue*( + punkNotSupportedValue: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaGetReservedMixedAttributeValue*( + punkMixedAttributeValue: ptr ptr IUnknown +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaClientsAreListening*(): BOOL {. + winapi, stdcall, dynlib: "uiautomationcore", importc +.} + +proc UiaRaiseAutomationPropertyChangedEvent*( + pProvider: ptr IRawElementProviderSimple, + id: PROPERTYID, + oldValue: VARIANT, + newValue: VARIANT, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseAutomationEvent*( + pProvider: ptr IRawElementProviderSimple, id: EVENTID +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseStructureChangedEvent*( + pProvider: ptr IRawElementProviderSimple, + structureChangeType: StructureChangeType, + pRuntimeId: ptr int32, + cRuntimeIdLen: int32, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseAsyncContentLoadedEvent*( + pProvider: ptr IRawElementProviderSimple, + asyncContentLoadedState: AsyncContentLoadedState, + percentComplete: float64, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseTextEditTextChangedEvent*( + pProvider: ptr IRawElementProviderSimple, + textEditChangeType: TextEditChangeType, + pChangedData: ptr SAFEARRAY, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseChangesEvent*( + pProvider: ptr IRawElementProviderSimple, + eventIdCount: int32, + pUiaChanges: ptr UiaChangeInfo, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseNotificationEvent*( + provider: ptr IRawElementProviderSimple, + notificationKind: NotificationKind, + notificationProcessing: NotificationProcessing, + displayString: BSTR, + activityId: BSTR, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRaiseActiveTextPositionChangedEvent*( + provider: ptr IRawElementProviderSimple, textRange: ptr ITextRangeProvider +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaAddEvent*( + hnode: HUIANODE, + eventId: EVENTID, + pCallback: UiaEventCallback, + scope: TreeScope, + pProperties: ptr PROPERTYID, + cProperties: int32, + pRequest: ptr UiaCacheRequest, + phEvent: ptr HUIAEVENT, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaRemoveEvent*( + hEvent: HUIAEVENT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaEventAddWindow*( + hEvent: HUIAEVENT, hwnd: HWND +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaEventRemoveWindow*( + hEvent: HUIAEVENT, hwnd: HWND +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc DockPattern_SetDockPosition*( + hobj: HUIAPATTERNOBJECT, dockPosition: DockPosition +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ExpandCollapsePattern_Collapse*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ExpandCollapsePattern_Expand*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc GridPattern_GetItem*( + hobj: HUIAPATTERNOBJECT, row: int32, column: int32, pResult: ptr HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc InvokePattern_Invoke*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc MultipleViewPattern_GetViewName*( + hobj: HUIAPATTERNOBJECT, viewId: int32, ppStr: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc MultipleViewPattern_SetCurrentView*( + hobj: HUIAPATTERNOBJECT, viewId: int32 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc RangeValuePattern_SetValue*( + hobj: HUIAPATTERNOBJECT, val: float64 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ScrollItemPattern_ScrollIntoView*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ScrollPattern_Scroll*( + hobj: HUIAPATTERNOBJECT, horizontalAmount: ScrollAmount, verticalAmount: ScrollAmount +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ScrollPattern_SetScrollPercent*( + hobj: HUIAPATTERNOBJECT, horizontalPercent: float64, verticalPercent: float64 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc SelectionItemPattern_AddToSelection*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc SelectionItemPattern_RemoveFromSelection*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc SelectionItemPattern_Select*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TogglePattern_Toggle*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TransformPattern_Move*( + hobj: HUIAPATTERNOBJECT, x: float64, y: float64 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TransformPattern_Resize*( + hobj: HUIAPATTERNOBJECT, width: float64, height: float64 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TransformPattern_Rotate*( + hobj: HUIAPATTERNOBJECT, degrees: float64 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ValuePattern_SetValue*( + hobj: HUIAPATTERNOBJECT, pVal: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc WindowPattern_Close*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc WindowPattern_SetWindowVisualState*( + hobj: HUIAPATTERNOBJECT, state: WindowVisualState +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc WindowPattern_WaitForInputIdle*( + hobj: HUIAPATTERNOBJECT, milliseconds: int32, pResult: ptr BOOL +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextPattern_GetSelection*( + hobj: HUIAPATTERNOBJECT, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextPattern_GetVisibleRanges*( + hobj: HUIAPATTERNOBJECT, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextPattern_RangeFromChild*( + hobj: HUIAPATTERNOBJECT, hnodeChild: HUIANODE, pRetVal: ptr HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextPattern_RangeFromPoint*( + hobj: HUIAPATTERNOBJECT, point: UiaPoint, pRetVal: ptr HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextPattern_get_DocumentRange*( + hobj: HUIAPATTERNOBJECT, pRetVal: ptr HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextPattern_get_SupportedTextSelection*( + hobj: HUIAPATTERNOBJECT, pRetVal: ptr SupportedTextSelection +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_Clone*( + hobj: HUIATEXTRANGE, pRetVal: ptr HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_Compare*( + hobj: HUIATEXTRANGE, range: HUIATEXTRANGE, pRetVal: ptr BOOL +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_CompareEndpoints*( + hobj: HUIATEXTRANGE, + endpoint: TextPatternRangeEndpoint, + targetRange: HUIATEXTRANGE, + targetEndpoint: TextPatternRangeEndpoint, + pRetVal: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_ExpandToEnclosingUnit*( + hobj: HUIATEXTRANGE, unit: TextUnit +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_GetAttributeValue*( + hobj: HUIATEXTRANGE, attributeId: TEXTATTRIBUTEID, pRetVal: ptr VARIANT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_FindAttribute*( + hobj: HUIATEXTRANGE, + attributeId: TEXTATTRIBUTEID, + val: VARIANT, + backward: BOOL, + pRetVal: ptr HUIATEXTRANGE, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_FindText*( + hobj: HUIATEXTRANGE, + text: BSTR, + backward: BOOL, + ignoreCase: BOOL, + pRetVal: ptr HUIATEXTRANGE, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_GetBoundingRectangles*( + hobj: HUIATEXTRANGE, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_GetEnclosingElement*( + hobj: HUIATEXTRANGE, pRetVal: ptr HUIANODE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_GetText*( + hobj: HUIATEXTRANGE, maxLength: int32, pRetVal: ptr BSTR +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_Move*( + hobj: HUIATEXTRANGE, unit: TextUnit, count: int32, pRetVal: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_MoveEndpointByUnit*( + hobj: HUIATEXTRANGE, + endpoint: TextPatternRangeEndpoint, + unit: TextUnit, + count: int32, + pRetVal: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_MoveEndpointByRange*( + hobj: HUIATEXTRANGE, + endpoint: TextPatternRangeEndpoint, + targetRange: HUIATEXTRANGE, + targetEndpoint: TextPatternRangeEndpoint, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_Select*( + hobj: HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_AddToSelection*( + hobj: HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_RemoveFromSelection*( + hobj: HUIATEXTRANGE +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_ScrollIntoView*( + hobj: HUIATEXTRANGE, alignToTop: BOOL +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc TextRange_GetChildren*( + hobj: HUIATEXTRANGE, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc ItemContainerPattern_FindItemByProperty*( + hobj: HUIAPATTERNOBJECT, + hnodeStartAfter: HUIANODE, + propertyId: PROPERTYID, + value: VARIANT, + pFound: ptr HUIANODE, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc LegacyIAccessiblePattern_Select*( + hobj: HUIAPATTERNOBJECT, flagsSelect: int32 +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc LegacyIAccessiblePattern_DoDefaultAction*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc LegacyIAccessiblePattern_SetValue*( + hobj: HUIAPATTERNOBJECT, szValue: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc LegacyIAccessiblePattern_GetIAccessible*( + hobj: HUIAPATTERNOBJECT, pAccessible: ptr ptr IAccessible +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc SynchronizedInputPattern_StartListening*( + hobj: HUIAPATTERNOBJECT, inputType: SynchronizedInputType +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc SynchronizedInputPattern_Cancel*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc VirtualizedItemPattern_Realize*( + hobj: HUIAPATTERNOBJECT +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaPatternRelease*( + hobj: HUIAPATTERNOBJECT +): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaTextRangeRelease*( + hobj: HUIATEXTRANGE +): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaReturnRawElementProvider*( + hwnd: HWND, wParam: WPARAM, lParam: LPARAM, el: ptr IRawElementProviderSimple +): LRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaHostProviderFromHwnd*( + hwnd: HWND, ppProvider: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaProviderForNonClient*( + hwnd: HWND, + idObject: int32, + idChild: int32, + ppProvider: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaIAccessibleFromProvider*( + pProvider: ptr IRawElementProviderSimple, + dwFlags: DWORD, + ppAccessible: ptr ptr IAccessible, + pvarChild: ptr VARIANT, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaProviderFromIAccessible*( + pAccessible: ptr IAccessible, + idChild: int32, + dwFlags: DWORD, + ppProvider: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaDisconnectAllProviders*(): HRESULT {. + winapi, stdcall, dynlib: "uiautomationcore", importc +.} + +proc UiaDisconnectProvider*( + pProvider: ptr IRawElementProviderSimple +): HRESULT {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc UiaHasServerSideProvider*( + hwnd: HWND +): BOOL {.winapi, stdcall, dynlib: "uiautomationcore", importc.} + +proc get_ProviderOptions*( + self: ptr IRawElementProviderSimple, pRetVal: ptr ProviderOptions +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ProviderOptions(self, pRetVal) + +proc GetPatternProvider*( + self: ptr IRawElementProviderSimple, patternId: PATTERNID, pRetVal: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPatternProvider(self, patternId, pRetVal) + +proc GetPropertyValue*( + self: ptr IRawElementProviderSimple, propertyId: PROPERTYID, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyValue(self, propertyId, pRetVal) + +proc get_HostRawElementProvider*( + self: ptr IRawElementProviderSimple, pRetVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HostRawElementProvider(self, pRetVal) + +proc GetObjectForChild*( + self: ptr IAccessibleEx, idChild: int32, pRetVal: ptr ptr IAccessibleEx +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectForChild(self, idChild, pRetVal) + +proc GetIAccessiblePair*( + self: ptr IAccessibleEx, ppAcc: ptr ptr IAccessible, pidChild: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIAccessiblePair(self, ppAcc, pidChild) + +proc GetRuntimeId*( + self: ptr IAccessibleEx, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRuntimeId(self, pRetVal) + +proc ConvertReturnedElement*( + self: ptr IAccessibleEx, + pIn: ptr IRawElementProviderSimple, + ppRetValOut: ptr ptr IAccessibleEx, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ConvertReturnedElement(self, pIn, ppRetValOut) + +proc ShowContextMenu*( + self: ptr IRawElementProviderSimple2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowContextMenu(self) + +proc GetMetadataValue*( + self: ptr IRawElementProviderSimple3, + targetId: int32, + metadataId: METADATAID, + returnVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataValue(self, targetId, metadataId, returnVal) + +proc ElementProviderFromPoint*( + self: ptr IRawElementProviderFragmentRoot, + x: float64, + y: float64, + pRetVal: ptr ptr IRawElementProviderFragment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementProviderFromPoint(self, x, y, pRetVal) + +proc GetFocus*( + self: ptr IRawElementProviderFragmentRoot, + pRetVal: ptr ptr IRawElementProviderFragment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFocus(self, pRetVal) + +proc Navigate*( + self: ptr IRawElementProviderFragment, + direction: NavigateDirection, + pRetVal: ptr ptr IRawElementProviderFragment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Navigate(self, direction, pRetVal) + +proc GetRuntimeId*( + self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRuntimeId(self, pRetVal) + +proc get_BoundingRectangle*( + self: ptr IRawElementProviderFragment, pRetVal: ptr UiaRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BoundingRectangle(self, pRetVal) + +proc GetEmbeddedFragmentRoots*( + self: ptr IRawElementProviderFragment, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEmbeddedFragmentRoots(self, pRetVal) + +proc SetFocus*(self: ptr IRawElementProviderFragment): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFocus(self) + +proc get_FragmentRoot*( + self: ptr IRawElementProviderFragment, + pRetVal: ptr ptr IRawElementProviderFragmentRoot, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FragmentRoot(self, pRetVal) + +proc AdviseEventAdded*( + self: ptr IRawElementProviderAdviseEvents, + eventId: EVENTID, + propertyIDs: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AdviseEventAdded(self, eventId, propertyIDs) + +proc AdviseEventRemoved*( + self: ptr IRawElementProviderAdviseEvents, + eventId: EVENTID, + propertyIDs: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AdviseEventRemoved(self, eventId, propertyIDs) + +proc GetOverrideProviderForHwnd*( + self: ptr IRawElementProviderHwndOverride, + hwnd: HWND, + pRetVal: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetOverrideProviderForHwnd(self, hwnd, pRetVal) + +proc AddAutomationPropertyChangedEvent*( + self: ptr IProxyProviderWinEventSink, + pProvider: ptr IRawElementProviderSimple, + id: PROPERTYID, + newValue: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddAutomationPropertyChangedEvent(self, pProvider, id, newValue) + +proc AddAutomationEvent*( + self: ptr IProxyProviderWinEventSink, + pProvider: ptr IRawElementProviderSimple, + id: EVENTID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddAutomationEvent(self, pProvider, id) + +proc AddStructureChangedEvent*( + self: ptr IProxyProviderWinEventSink, + pProvider: ptr IRawElementProviderSimple, + structureChangeType: StructureChangeType, + runtimeId: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddStructureChangedEvent( + self, pProvider, structureChangeType, runtimeId + ) + +proc RespondToWinEvent*( + self: ptr IProxyProviderWinEventHandler, + idWinEvent: DWORD, + hwnd: HWND, + idObject: LONG, + idChild: LONG, + pSink: ptr IProxyProviderWinEventSink, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RespondToWinEvent(self, idWinEvent, hwnd, idObject, idChild, pSink) + +proc GetAdjacentFragment*( + self: ptr IRawElementProviderWindowlessSite, + direction: NavigateDirection, + ppParent: ptr ptr IRawElementProviderFragment, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAdjacentFragment(self, direction, ppParent) + +proc GetRuntimeIdPrefix*( + self: ptr IRawElementProviderWindowlessSite, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRuntimeIdPrefix(self, pRetVal) + +proc GetEmbeddedFragmentRoots*( + self: ptr IAccessibleHostingElementProviders, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEmbeddedFragmentRoots(self, pRetVal) + +proc GetObjectIdForProvider*( + self: ptr IAccessibleHostingElementProviders, + pProvider: ptr IRawElementProviderSimple, + pidObject: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetObjectIdForProvider(self, pProvider, pidObject) + +proc GetEmbeddedAccessibles*( + self: ptr IRawElementProviderHostingAccessibles, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEmbeddedAccessibles(self, pRetVal) + +proc SetDockPosition*( + self: ptr IDockProvider, dockPosition: DockPosition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDockPosition(self, dockPosition) + +proc get_DockPosition*( + self: ptr IDockProvider, pRetVal: ptr DockPosition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DockPosition(self, pRetVal) + +proc Expand*(self: ptr IExpandCollapseProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Expand(self) + +proc Collapse*(self: ptr IExpandCollapseProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Collapse(self) + +proc get_ExpandCollapseState*( + self: ptr IExpandCollapseProvider, pRetVal: ptr ExpandCollapseState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ExpandCollapseState(self, pRetVal) + +proc GetItem*( + self: ptr IGridProvider, + row: int32, + column: int32, + pRetVal: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItem(self, row, column, pRetVal) + +proc get_RowCount*( + self: ptr IGridProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RowCount(self, pRetVal) + +proc get_ColumnCount*( + self: ptr IGridProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ColumnCount(self, pRetVal) + +proc get_Row*( + self: ptr IGridItemProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Row(self, pRetVal) + +proc get_Column*( + self: ptr IGridItemProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Column(self, pRetVal) + +proc get_RowSpan*( + self: ptr IGridItemProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RowSpan(self, pRetVal) + +proc get_ColumnSpan*( + self: ptr IGridItemProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ColumnSpan(self, pRetVal) + +proc get_ContainingGrid*( + self: ptr IGridItemProvider, pRetVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ContainingGrid(self, pRetVal) + +proc Invoke*(self: ptr IInvokeProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke(self) + +proc GetViewName*( + self: ptr IMultipleViewProvider, viewId: int32, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewName(self, viewId, pRetVal) + +proc SetCurrentView*( + self: ptr IMultipleViewProvider, viewId: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCurrentView(self, viewId) + +proc get_CurrentView*( + self: ptr IMultipleViewProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentView(self, pRetVal) + +proc GetSupportedViews*( + self: ptr IMultipleViewProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSupportedViews(self, pRetVal) + +proc SetValue*( + self: ptr IRangeValueProvider, val: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, val) + +proc get_Value*( + self: ptr IRangeValueProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Value(self, pRetVal) + +proc get_IsReadOnly*( + self: ptr IRangeValueProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsReadOnly(self, pRetVal) + +proc get_Maximum*( + self: ptr IRangeValueProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Maximum(self, pRetVal) + +proc get_Minimum*( + self: ptr IRangeValueProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Minimum(self, pRetVal) + +proc get_LargeChange*( + self: ptr IRangeValueProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_LargeChange(self, pRetVal) + +proc get_SmallChange*( + self: ptr IRangeValueProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SmallChange(self, pRetVal) + +proc ScrollIntoView*(self: ptr IScrollItemProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollIntoView(self) + +proc GetSelection*( + self: ptr ISelectionProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelection(self, pRetVal) + +proc get_CanSelectMultiple*( + self: ptr ISelectionProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanSelectMultiple(self, pRetVal) + +proc get_IsSelectionRequired*( + self: ptr ISelectionProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsSelectionRequired(self, pRetVal) + +proc get_FirstSelectedItem*( + self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FirstSelectedItem(self, retVal) + +proc get_LastSelectedItem*( + self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_LastSelectedItem(self, retVal) + +proc get_CurrentSelectedItem*( + self: ptr ISelectionProvider2, retVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentSelectedItem(self, retVal) + +proc get_ItemCount*( + self: ptr ISelectionProvider2, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ItemCount(self, retVal) + +proc Scroll*( + self: ptr IScrollProvider, + horizontalAmount: ScrollAmount, + verticalAmount: ScrollAmount, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Scroll(self, horizontalAmount, verticalAmount) + +proc SetScrollPercent*( + self: ptr IScrollProvider, horizontalPercent: float64, verticalPercent: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScrollPercent(self, horizontalPercent, verticalPercent) + +proc get_HorizontalScrollPercent*( + self: ptr IScrollProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HorizontalScrollPercent(self, pRetVal) + +proc get_VerticalScrollPercent*( + self: ptr IScrollProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_VerticalScrollPercent(self, pRetVal) + +proc get_HorizontalViewSize*( + self: ptr IScrollProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HorizontalViewSize(self, pRetVal) + +proc get_VerticalViewSize*( + self: ptr IScrollProvider, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_VerticalViewSize(self, pRetVal) + +proc get_HorizontallyScrollable*( + self: ptr IScrollProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_HorizontallyScrollable(self, pRetVal) + +proc get_VerticallyScrollable*( + self: ptr IScrollProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_VerticallyScrollable(self, pRetVal) + +proc Select*(self: ptr ISelectionItemProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self) + +proc AddToSelection*(self: ptr ISelectionItemProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddToSelection(self) + +proc RemoveFromSelection*( + self: ptr ISelectionItemProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFromSelection(self) + +proc get_IsSelected*( + self: ptr ISelectionItemProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsSelected(self, pRetVal) + +proc get_SelectionContainer*( + self: ptr ISelectionItemProvider, pRetVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SelectionContainer(self, pRetVal) + +proc StartListening*( + self: ptr ISynchronizedInputProvider, inputType: SynchronizedInputType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartListening(self, inputType) + +proc Cancel*(self: ptr ISynchronizedInputProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cancel(self) + +proc GetRowHeaders*( + self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRowHeaders(self, pRetVal) + +proc GetColumnHeaders*( + self: ptr ITableProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnHeaders(self, pRetVal) + +proc get_RowOrColumnMajor*( + self: ptr ITableProvider, pRetVal: ptr RowOrColumnMajor +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RowOrColumnMajor(self, pRetVal) + +proc GetRowHeaderItems*( + self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRowHeaderItems(self, pRetVal) + +proc GetColumnHeaderItems*( + self: ptr ITableItemProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColumnHeaderItems(self, pRetVal) + +proc Toggle*(self: ptr IToggleProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Toggle(self) + +proc get_ToggleState*( + self: ptr IToggleProvider, pRetVal: ptr ToggleState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ToggleState(self, pRetVal) + +proc Move*( + self: ptr ITransformProvider, x: float64, y: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Move(self, x, y) + +proc Resize*( + self: ptr ITransformProvider, width: float64, height: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resize(self, width, height) + +proc Rotate*( + self: ptr ITransformProvider, degrees: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Rotate(self, degrees) + +proc get_CanMove*( + self: ptr ITransformProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanMove(self, pRetVal) + +proc get_CanResize*( + self: ptr ITransformProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanResize(self, pRetVal) + +proc get_CanRotate*( + self: ptr ITransformProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanRotate(self, pRetVal) + +proc SetValue*(self: ptr IValueProvider, val: LPCWSTR): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, val) + +proc get_Value*( + self: ptr IValueProvider, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Value(self, pRetVal) + +proc get_IsReadOnly*( + self: ptr IValueProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsReadOnly(self, pRetVal) + +proc SetVisualState*( + self: ptr IWindowProvider, state: WindowVisualState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetVisualState(self, state) + +proc Close*(self: ptr IWindowProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self) + +proc WaitForInputIdle*( + self: ptr IWindowProvider, milliseconds: int32, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WaitForInputIdle(self, milliseconds, pRetVal) + +proc get_CanMaximize*( + self: ptr IWindowProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanMaximize(self, pRetVal) + +proc get_CanMinimize*( + self: ptr IWindowProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanMinimize(self, pRetVal) + +proc get_IsModal*( + self: ptr IWindowProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsModal(self, pRetVal) + +proc get_WindowVisualState*( + self: ptr IWindowProvider, pRetVal: ptr WindowVisualState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_WindowVisualState(self, pRetVal) + +proc get_WindowInteractionState*( + self: ptr IWindowProvider, pRetVal: ptr WindowInteractionState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_WindowInteractionState(self, pRetVal) + +proc get_IsTopmost*( + self: ptr IWindowProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsTopmost(self, pRetVal) + +proc Select*( + self: ptr ILegacyIAccessibleProvider, flagsSelect: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self, flagsSelect) + +proc DoDefaultAction*( + self: ptr ILegacyIAccessibleProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoDefaultAction(self) + +proc SetValue*( + self: ptr ILegacyIAccessibleProvider, szValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, szValue) + +proc GetIAccessible*( + self: ptr ILegacyIAccessibleProvider, ppAccessible: ptr ptr IAccessible +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIAccessible(self, ppAccessible) + +proc get_ChildId*( + self: ptr ILegacyIAccessibleProvider, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ChildId(self, pRetVal) + +proc get_Name*( + self: ptr ILegacyIAccessibleProvider, pszName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Name(self, pszName) + +proc get_Value*( + self: ptr ILegacyIAccessibleProvider, pszValue: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Value(self, pszValue) + +proc get_Description*( + self: ptr ILegacyIAccessibleProvider, pszDescription: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Description(self, pszDescription) + +proc get_Role*( + self: ptr ILegacyIAccessibleProvider, pdwRole: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Role(self, pdwRole) + +proc get_State*( + self: ptr ILegacyIAccessibleProvider, pdwState: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_State(self, pdwState) + +proc get_Help*( + self: ptr ILegacyIAccessibleProvider, pszHelp: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Help(self, pszHelp) + +proc get_KeyboardShortcut*( + self: ptr ILegacyIAccessibleProvider, pszKeyboardShortcut: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_KeyboardShortcut(self, pszKeyboardShortcut) + +proc GetSelection*( + self: ptr ILegacyIAccessibleProvider, pvarSelectedChildren: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelection(self, pvarSelectedChildren) + +proc get_DefaultAction*( + self: ptr ILegacyIAccessibleProvider, pszDefaultAction: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DefaultAction(self, pszDefaultAction) + +proc FindItemByProperty*( + self: ptr IItemContainerProvider, + pStartAfter: ptr IRawElementProviderSimple, + propertyId: PROPERTYID, + value: VARIANT, + pFound: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindItemByProperty(self, pStartAfter, propertyId, value, pFound) + +proc Realize*(self: ptr IVirtualizedItemProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Realize(self) + +proc GetUnderlyingObjectModel*( + self: ptr IObjectModelProvider, ppUnknown: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUnderlyingObjectModel(self, ppUnknown) + +proc get_AnnotationTypeId*( + self: ptr IAnnotationProvider, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AnnotationTypeId(self, retVal) + +proc get_AnnotationTypeName*( + self: ptr IAnnotationProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AnnotationTypeName(self, retVal) + +proc get_Author*( + self: ptr IAnnotationProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Author(self, retVal) + +proc get_DateTime*( + self: ptr IAnnotationProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DateTime(self, retVal) + +proc get_Target*( + self: ptr IAnnotationProvider, retVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Target(self, retVal) + +proc get_StyleId*( + self: ptr IStylesProvider, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StyleId(self, retVal) + +proc get_StyleName*( + self: ptr IStylesProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_StyleName(self, retVal) + +proc get_FillColor*( + self: ptr IStylesProvider, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FillColor(self, retVal) + +proc get_FillPatternStyle*( + self: ptr IStylesProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FillPatternStyle(self, retVal) + +proc get_Shape*( + self: ptr IStylesProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Shape(self, retVal) + +proc get_FillPatternColor*( + self: ptr IStylesProvider, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_FillPatternColor(self, retVal) + +proc get_ExtendedProperties*( + self: ptr IStylesProvider, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ExtendedProperties(self, retVal) + +proc GetItemByName*( + self: ptr ISpreadsheetProvider, + name: LPCWSTR, + pRetVal: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemByName(self, name, pRetVal) + +proc get_Formula*( + self: ptr ISpreadsheetItemProvider, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Formula(self, pRetVal) + +proc GetAnnotationObjects*( + self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAnnotationObjects(self, pRetVal) + +proc GetAnnotationTypes*( + self: ptr ISpreadsheetItemProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAnnotationTypes(self, pRetVal) + +proc Zoom*(self: ptr ITransformProvider2, zoom: float64): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Zoom(self, zoom) + +proc get_CanZoom*( + self: ptr ITransformProvider2, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanZoom(self, pRetVal) + +proc get_ZoomLevel*( + self: ptr ITransformProvider2, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ZoomLevel(self, pRetVal) + +proc get_ZoomMinimum*( + self: ptr ITransformProvider2, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ZoomMinimum(self, pRetVal) + +proc get_ZoomMaximum*( + self: ptr ITransformProvider2, pRetVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ZoomMaximum(self, pRetVal) + +proc ZoomByUnit*( + self: ptr ITransformProvider2, zoomUnit: ZoomUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ZoomByUnit(self, zoomUnit) + +proc get_IsGrabbed*( + self: ptr IDragProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_IsGrabbed(self, pRetVal) + +proc get_DropEffect*( + self: ptr IDragProvider, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DropEffect(self, pRetVal) + +proc get_DropEffects*( + self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DropEffects(self, pRetVal) + +proc GetGrabbedItems*( + self: ptr IDragProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetGrabbedItems(self, pRetVal) + +proc get_DropTargetEffect*( + self: ptr IDropTargetProvider, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DropTargetEffect(self, pRetVal) + +proc get_DropTargetEffects*( + self: ptr IDropTargetProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DropTargetEffects(self, pRetVal) + +proc Clone*( + self: ptr ITextRangeProvider, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, pRetVal) + +proc Compare*( + self: ptr ITextRangeProvider, range: ptr ITextRangeProvider, pRetVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Compare(self, range, pRetVal) + +proc CompareEndpoints*( + self: ptr ITextRangeProvider, + endpoint: TextPatternRangeEndpoint, + targetRange: ptr ITextRangeProvider, + targetEndpoint: TextPatternRangeEndpoint, + pRetVal: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareEndpoints(self, endpoint, targetRange, targetEndpoint, pRetVal) + +proc ExpandToEnclosingUnit*( + self: ptr ITextRangeProvider, unit: TextUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExpandToEnclosingUnit(self, unit) + +proc FindAttribute*( + self: ptr ITextRangeProvider, + attributeId: TEXTATTRIBUTEID, + val: VARIANT, + backward: BOOL, + pRetVal: ptr ptr ITextRangeProvider, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindAttribute(self, attributeId, val, backward, pRetVal) + +proc FindText*( + self: ptr ITextRangeProvider, + text: BSTR, + backward: BOOL, + ignoreCase: BOOL, + pRetVal: ptr ptr ITextRangeProvider, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindText(self, text, backward, ignoreCase, pRetVal) + +proc GetAttributeValue*( + self: ptr ITextRangeProvider, attributeId: TEXTATTRIBUTEID, pRetVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributeValue(self, attributeId, pRetVal) + +proc GetBoundingRectangles*( + self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBoundingRectangles(self, pRetVal) + +proc GetEnclosingElement*( + self: ptr ITextRangeProvider, pRetVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnclosingElement(self, pRetVal) + +proc GetText*( + self: ptr ITextRangeProvider, maxLength: int32, pRetVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetText(self, maxLength, pRetVal) + +proc Move*( + self: ptr ITextRangeProvider, unit: TextUnit, count: int32, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Move(self, unit, count, pRetVal) + +proc MoveEndpointByUnit*( + self: ptr ITextRangeProvider, + endpoint: TextPatternRangeEndpoint, + unit: TextUnit, + count: int32, + pRetVal: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveEndpointByUnit(self, endpoint, unit, count, pRetVal) + +proc MoveEndpointByRange*( + self: ptr ITextRangeProvider, + endpoint: TextPatternRangeEndpoint, + targetRange: ptr ITextRangeProvider, + targetEndpoint: TextPatternRangeEndpoint, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveEndpointByRange(self, endpoint, targetRange, targetEndpoint) + +proc Select*(self: ptr ITextRangeProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self) + +proc AddToSelection*(self: ptr ITextRangeProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddToSelection(self) + +proc RemoveFromSelection*(self: ptr ITextRangeProvider): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFromSelection(self) + +proc ScrollIntoView*( + self: ptr ITextRangeProvider, alignToTop: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollIntoView(self, alignToTop) + +proc GetChildren*( + self: ptr ITextRangeProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildren(self, pRetVal) + +proc GetSelection*( + self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelection(self, pRetVal) + +proc GetVisibleRanges*( + self: ptr ITextProvider, pRetVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVisibleRanges(self, pRetVal) + +proc RangeFromChild*( + self: ptr ITextProvider, + childElement: ptr IRawElementProviderSimple, + pRetVal: ptr ptr ITextRangeProvider, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RangeFromChild(self, childElement, pRetVal) + +proc RangeFromPoint*( + self: ptr ITextProvider, point: UiaPoint, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RangeFromPoint(self, point, pRetVal) + +proc get_DocumentRange*( + self: ptr ITextProvider, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DocumentRange(self, pRetVal) + +proc get_SupportedTextSelection*( + self: ptr ITextProvider, pRetVal: ptr SupportedTextSelection +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SupportedTextSelection(self, pRetVal) + +proc RangeFromAnnotation*( + self: ptr ITextProvider2, + annotationElement: ptr IRawElementProviderSimple, + pRetVal: ptr ptr ITextRangeProvider, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RangeFromAnnotation(self, annotationElement, pRetVal) + +proc GetCaretRange*( + self: ptr ITextProvider2, isActive: ptr BOOL, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCaretRange(self, isActive, pRetVal) + +proc GetActiveComposition*( + self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetActiveComposition(self, pRetVal) + +proc GetConversionTarget*( + self: ptr ITextEditProvider, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionTarget(self, pRetVal) + +proc ShowContextMenu*(self: ptr ITextRangeProvider2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowContextMenu(self) + +proc get_TextContainer*( + self: ptr ITextChildProvider, pRetVal: ptr ptr IRawElementProviderSimple +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextContainer(self, pRetVal) + +proc get_TextRange*( + self: ptr ITextChildProvider, pRetVal: ptr ptr ITextRangeProvider +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextRange(self, pRetVal) + +proc Navigate*( + self: ptr ICustomNavigationProvider, + direction: NavigateDirection, + pRetVal: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Navigate(self, direction, pRetVal) + +proc GetProperty*( + self: ptr IUIAutomationPatternInstance, + index: UINT, + cached: BOOL, + `type`: UIAutomationType, + pPtr: pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProperty(self, index, cached, `type`, pPtr) + +proc CallMethod*( + self: ptr IUIAutomationPatternInstance, + index: UINT, + pParams: ptr UIAutomationParameter, + cParams: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CallMethod(self, index, pParams, cParams) + +proc CreateClientWrapper*( + self: ptr IUIAutomationPatternHandler, + pPatternInstance: ptr IUIAutomationPatternInstance, + pClientWrapper: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateClientWrapper(self, pPatternInstance, pClientWrapper) + +proc Dispatch*( + self: ptr IUIAutomationPatternHandler, + pTarget: ptr IUnknown, + index: UINT, + pParams: ptr UIAutomationParameter, + cParams: UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Dispatch(self, pTarget, index, pParams, cParams) + +proc RegisterProperty*( + self: ptr IUIAutomationRegistrar, + property: ptr UIAutomationPropertyInfo, + propertyId: ptr PROPERTYID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterProperty(self, property, propertyId) + +proc RegisterEvent*( + self: ptr IUIAutomationRegistrar, + event: ptr UIAutomationEventInfo, + eventId: ptr EVENTID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterEvent(self, event, eventId) + +proc RegisterPattern*( + self: ptr IUIAutomationRegistrar, + pattern: ptr UIAutomationPatternInfo, + pPatternId: ptr PATTERNID, + pPatternAvailablePropertyId: ptr PROPERTYID, + propertyIdCount: UINT, + pPropertyIds: ptr PROPERTYID, + eventIdCount: UINT, + pEventIds: ptr EVENTID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RegisterPattern( + self, pattern, pPatternId, pPatternAvailablePropertyId, propertyIdCount, + pPropertyIds, eventIdCount, pEventIds, + ) + +proc SetFocus*(self: ptr IUIAutomationElement): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFocus(self) + +proc GetRuntimeId*( + self: ptr IUIAutomationElement, runtimeId: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRuntimeId(self, runtimeId) + +proc FindFirst*( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + found: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFirst(self, scope, condition, found) + +proc FindAll*( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + found: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindAll(self, scope, condition, found) + +proc FindFirstBuildCache*( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + found: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFirstBuildCache(self, scope, condition, cacheRequest, found) + +proc FindAllBuildCache*( + self: ptr IUIAutomationElement, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + found: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindAllBuildCache(self, scope, condition, cacheRequest, found) + +proc BuildUpdatedCache*( + self: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + updatedElement: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.BuildUpdatedCache(self, cacheRequest, updatedElement) + +proc GetCurrentPropertyValue*( + self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentPropertyValue(self, propertyId, retVal) + +proc GetCurrentPropertyValueEx*( + self: ptr IUIAutomationElement, + propertyId: PROPERTYID, + ignoreDefaultValue: BOOL, + retVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentPropertyValueEx(self, propertyId, ignoreDefaultValue, retVal) + +proc GetCachedPropertyValue*( + self: ptr IUIAutomationElement, propertyId: PROPERTYID, retVal: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedPropertyValue(self, propertyId, retVal) + +proc GetCachedPropertyValueEx*( + self: ptr IUIAutomationElement, + propertyId: PROPERTYID, + ignoreDefaultValue: BOOL, + retVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedPropertyValueEx(self, propertyId, ignoreDefaultValue, retVal) + +proc GetCurrentPatternAs*( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + riid: REFIID, + patternObject: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentPatternAs(self, patternId, riid, patternObject) + +proc GetCachedPatternAs*( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + riid: REFIID, + patternObject: ptr pointer, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedPatternAs(self, patternId, riid, patternObject) + +proc GetCurrentPattern*( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + patternObject: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentPattern(self, patternId, patternObject) + +proc GetCachedPattern*( + self: ptr IUIAutomationElement, + patternId: PATTERNID, + patternObject: ptr ptr IUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedPattern(self, patternId, patternObject) + +proc GetCachedParent*( + self: ptr IUIAutomationElement, parent: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedParent(self, parent) + +proc GetCachedChildren*( + self: ptr IUIAutomationElement, children: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedChildren(self, children) + +proc get_CurrentProcessId*( + self: ptr IUIAutomationElement, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentProcessId(self, retVal) + +proc get_CurrentControlType*( + self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentControlType(self, retVal) + +proc get_CurrentLocalizedControlType*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLocalizedControlType(self, retVal) + +proc get_CurrentName*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentName(self, retVal) + +proc get_CurrentAcceleratorKey*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAcceleratorKey(self, retVal) + +proc get_CurrentAccessKey*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAccessKey(self, retVal) + +proc get_CurrentHasKeyboardFocus*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHasKeyboardFocus(self, retVal) + +proc get_CurrentIsKeyboardFocusable*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsKeyboardFocusable(self, retVal) + +proc get_CurrentIsEnabled*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsEnabled(self, retVal) + +proc get_CurrentAutomationId*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAutomationId(self, retVal) + +proc get_CurrentClassName*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentClassName(self, retVal) + +proc get_CurrentHelpText*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHelpText(self, retVal) + +proc get_CurrentCulture*( + self: ptr IUIAutomationElement, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCulture(self, retVal) + +proc get_CurrentIsControlElement*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsControlElement(self, retVal) + +proc get_CurrentIsContentElement*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsContentElement(self, retVal) + +proc get_CurrentIsPassword*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsPassword(self, retVal) + +proc get_CurrentNativeWindowHandle*( + self: ptr IUIAutomationElement, retVal: ptr UIA_HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentNativeWindowHandle(self, retVal) + +proc get_CurrentItemType*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentItemType(self, retVal) + +proc get_CurrentIsOffscreen*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsOffscreen(self, retVal) + +proc get_CurrentOrientation*( + self: ptr IUIAutomationElement, retVal: ptr OrientationType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentOrientation(self, retVal) + +proc get_CurrentFrameworkId*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFrameworkId(self, retVal) + +proc get_CurrentIsRequiredForForm*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsRequiredForForm(self, retVal) + +proc get_CurrentItemStatus*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentItemStatus(self, retVal) + +proc get_CurrentBoundingRectangle*( + self: ptr IUIAutomationElement, retVal: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentBoundingRectangle(self, retVal) + +proc get_CurrentLabeledBy*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLabeledBy(self, retVal) + +proc get_CurrentAriaRole*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAriaRole(self, retVal) + +proc get_CurrentAriaProperties*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAriaProperties(self, retVal) + +proc get_CurrentIsDataValidForForm*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsDataValidForForm(self, retVal) + +proc get_CurrentControllerFor*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentControllerFor(self, retVal) + +proc get_CurrentDescribedBy*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDescribedBy(self, retVal) + +proc get_CurrentFlowsTo*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFlowsTo(self, retVal) + +proc get_CurrentProviderDescription*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentProviderDescription(self, retVal) + +proc get_CachedProcessId*( + self: ptr IUIAutomationElement, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedProcessId(self, retVal) + +proc get_CachedControlType*( + self: ptr IUIAutomationElement, retVal: ptr CONTROLTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedControlType(self, retVal) + +proc get_CachedLocalizedControlType*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLocalizedControlType(self, retVal) + +proc get_CachedName*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedName(self, retVal) + +proc get_CachedAcceleratorKey*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAcceleratorKey(self, retVal) + +proc get_CachedAccessKey*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAccessKey(self, retVal) + +proc get_CachedHasKeyboardFocus*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHasKeyboardFocus(self, retVal) + +proc get_CachedIsKeyboardFocusable*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsKeyboardFocusable(self, retVal) + +proc get_CachedIsEnabled*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsEnabled(self, retVal) + +proc get_CachedAutomationId*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAutomationId(self, retVal) + +proc get_CachedClassName*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedClassName(self, retVal) + +proc get_CachedHelpText*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHelpText(self, retVal) + +proc get_CachedCulture*( + self: ptr IUIAutomationElement, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCulture(self, retVal) + +proc get_CachedIsControlElement*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsControlElement(self, retVal) + +proc get_CachedIsContentElement*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsContentElement(self, retVal) + +proc get_CachedIsPassword*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsPassword(self, retVal) + +proc get_CachedNativeWindowHandle*( + self: ptr IUIAutomationElement, retVal: ptr UIA_HWND +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedNativeWindowHandle(self, retVal) + +proc get_CachedItemType*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedItemType(self, retVal) + +proc get_CachedIsOffscreen*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsOffscreen(self, retVal) + +proc get_CachedOrientation*( + self: ptr IUIAutomationElement, retVal: ptr OrientationType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedOrientation(self, retVal) + +proc get_CachedFrameworkId*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFrameworkId(self, retVal) + +proc get_CachedIsRequiredForForm*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsRequiredForForm(self, retVal) + +proc get_CachedItemStatus*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedItemStatus(self, retVal) + +proc get_CachedBoundingRectangle*( + self: ptr IUIAutomationElement, retVal: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedBoundingRectangle(self, retVal) + +proc get_CachedLabeledBy*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLabeledBy(self, retVal) + +proc get_CachedAriaRole*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAriaRole(self, retVal) + +proc get_CachedAriaProperties*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAriaProperties(self, retVal) + +proc get_CachedIsDataValidForForm*( + self: ptr IUIAutomationElement, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsDataValidForForm(self, retVal) + +proc get_CachedControllerFor*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedControllerFor(self, retVal) + +proc get_CachedDescribedBy*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDescribedBy(self, retVal) + +proc get_CachedFlowsTo*( + self: ptr IUIAutomationElement, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFlowsTo(self, retVal) + +proc get_CachedProviderDescription*( + self: ptr IUIAutomationElement, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedProviderDescription(self, retVal) + +proc GetClickablePoint*( + self: ptr IUIAutomationElement, clickable: ptr POINT, gotClickable: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetClickablePoint(self, clickable, gotClickable) + +proc get_Length*( + self: ptr IUIAutomationElementArray, length: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Length(self, length) + +proc GetElement*( + self: ptr IUIAutomationElementArray, + index: int32, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElement(self, index, element) + +proc get_BooleanValue*( + self: ptr IUIAutomationBoolCondition, boolVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_BooleanValue(self, boolVal) + +proc get_PropertyId*( + self: ptr IUIAutomationPropertyCondition, propertyId: ptr PROPERTYID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_PropertyId(self, propertyId) + +proc get_PropertyValue*( + self: ptr IUIAutomationPropertyCondition, propertyValue: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_PropertyValue(self, propertyValue) + +proc get_PropertyConditionFlags*( + self: ptr IUIAutomationPropertyCondition, flags: ptr PropertyConditionFlags +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_PropertyConditionFlags(self, flags) + +proc get_ChildCount*( + self: ptr IUIAutomationAndCondition, childCount: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ChildCount(self, childCount) + +proc GetChildrenAsNativeArray*( + self: ptr IUIAutomationAndCondition, + childArray: ptr ptr ptr IUIAutomationCondition, + childArrayCount: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildrenAsNativeArray(self, childArray, childArrayCount) + +proc GetChildren*( + self: ptr IUIAutomationAndCondition, childArray: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildren(self, childArray) + +proc get_ChildCount*( + self: ptr IUIAutomationOrCondition, childCount: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ChildCount(self, childCount) + +proc GetChildrenAsNativeArray*( + self: ptr IUIAutomationOrCondition, + childArray: ptr ptr ptr IUIAutomationCondition, + childArrayCount: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildrenAsNativeArray(self, childArray, childArrayCount) + +proc GetChildren*( + self: ptr IUIAutomationOrCondition, childArray: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildren(self, childArray) + +proc GetChild*( + self: ptr IUIAutomationNotCondition, condition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChild(self, condition) + +proc AddProperty*( + self: ptr IUIAutomationCacheRequest, propertyId: PROPERTYID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddProperty(self, propertyId) + +proc AddPattern*( + self: ptr IUIAutomationCacheRequest, patternId: PATTERNID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPattern(self, patternId) + +proc Clone*( + self: ptr IUIAutomationCacheRequest, + clonedRequest: ptr ptr IUIAutomationCacheRequest, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, clonedRequest) + +proc get_TreeScope*( + self: ptr IUIAutomationCacheRequest, scope: ptr TreeScope +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TreeScope(self, scope) + +proc put_TreeScope*( + self: ptr IUIAutomationCacheRequest, scope: TreeScope +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_TreeScope(self, scope) + +proc get_TreeFilter*( + self: ptr IUIAutomationCacheRequest, filter: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TreeFilter(self, filter) + +proc put_TreeFilter*( + self: ptr IUIAutomationCacheRequest, filter: ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_TreeFilter(self, filter) + +proc get_AutomationElementMode*( + self: ptr IUIAutomationCacheRequest, mode: ptr AutomationElementMode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AutomationElementMode(self, mode) + +proc put_AutomationElementMode*( + self: ptr IUIAutomationCacheRequest, mode: AutomationElementMode +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_AutomationElementMode(self, mode) + +proc GetParentElement*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + parent: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParentElement(self, element, parent) + +proc GetFirstChildElement*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + first: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFirstChildElement(self, element, first) + +proc GetLastChildElement*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + last: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastChildElement(self, element, last) + +proc GetNextSiblingElement*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + next: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextSiblingElement(self, element, next) + +proc GetPreviousSiblingElement*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + previous: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPreviousSiblingElement(self, element, previous) + +proc NormalizeElement*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + normalized: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NormalizeElement(self, element, normalized) + +proc GetParentElementBuildCache*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + parent: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetParentElementBuildCache(self, element, cacheRequest, parent) + +proc GetFirstChildElementBuildCache*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + first: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFirstChildElementBuildCache(self, element, cacheRequest, first) + +proc GetLastChildElementBuildCache*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + last: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLastChildElementBuildCache(self, element, cacheRequest, last) + +proc GetNextSiblingElementBuildCache*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + next: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNextSiblingElementBuildCache(self, element, cacheRequest, next) + +proc GetPreviousSiblingElementBuildCache*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + previous: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPreviousSiblingElementBuildCache( + self, element, cacheRequest, previous + ) + +proc NormalizeElementBuildCache*( + self: ptr IUIAutomationTreeWalker, + element: ptr IUIAutomationElement, + cacheRequest: ptr IUIAutomationCacheRequest, + normalized: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.NormalizeElementBuildCache(self, element, cacheRequest, normalized) + +proc get_Condition*( + self: ptr IUIAutomationTreeWalker, condition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Condition(self, condition) + +proc HandleAutomationEvent*( + self: ptr IUIAutomationEventHandler, + sender: ptr IUIAutomationElement, + eventId: EVENTID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleAutomationEvent(self, sender, eventId) + +proc HandlePropertyChangedEvent*( + self: ptr IUIAutomationPropertyChangedEventHandler, + sender: ptr IUIAutomationElement, + propertyId: PROPERTYID, + newValue: VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandlePropertyChangedEvent(self, sender, propertyId, newValue) + +proc HandleStructureChangedEvent*( + self: ptr IUIAutomationStructureChangedEventHandler, + sender: ptr IUIAutomationElement, + changeType: StructureChangeType, + runtimeId: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleStructureChangedEvent(self, sender, changeType, runtimeId) + +proc HandleFocusChangedEvent*( + self: ptr IUIAutomationFocusChangedEventHandler, sender: ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleFocusChangedEvent(self, sender) + +proc HandleTextEditTextChangedEvent*( + self: ptr IUIAutomationTextEditTextChangedEventHandler, + sender: ptr IUIAutomationElement, + textEditChangeType: TextEditChangeType, + eventStrings: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleTextEditTextChangedEvent( + self, sender, textEditChangeType, eventStrings + ) + +proc HandleChangesEvent*( + self: ptr IUIAutomationChangesEventHandler, + sender: ptr IUIAutomationElement, + uiaChanges: ptr UiaChangeInfo, + changesCount: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleChangesEvent(self, sender, uiaChanges, changesCount) + +proc HandleNotificationEvent*( + self: ptr IUIAutomationNotificationEventHandler, + sender: ptr IUIAutomationElement, + notificationKind: NotificationKind, + notificationProcessing: NotificationProcessing, + displayString: BSTR, + activityId: BSTR, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleNotificationEvent( + self, sender, notificationKind, notificationProcessing, displayString, activityId + ) + +proc Invoke*(self: ptr IUIAutomationInvokePattern): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Invoke(self) + +proc SetDockPosition*( + self: ptr IUIAutomationDockPattern, dockPos: DockPosition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetDockPosition(self, dockPos) + +proc get_CurrentDockPosition*( + self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDockPosition(self, retVal) + +proc get_CachedDockPosition*( + self: ptr IUIAutomationDockPattern, retVal: ptr DockPosition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDockPosition(self, retVal) + +proc Expand*(self: ptr IUIAutomationExpandCollapsePattern): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Expand(self) + +proc Collapse*( + self: ptr IUIAutomationExpandCollapsePattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Collapse(self) + +proc get_CurrentExpandCollapseState*( + self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentExpandCollapseState(self, retVal) + +proc get_CachedExpandCollapseState*( + self: ptr IUIAutomationExpandCollapsePattern, retVal: ptr ExpandCollapseState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedExpandCollapseState(self, retVal) + +proc GetItem*( + self: ptr IUIAutomationGridPattern, + row: int32, + column: int32, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItem(self, row, column, element) + +proc get_CurrentRowCount*( + self: ptr IUIAutomationGridPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentRowCount(self, retVal) + +proc get_CurrentColumnCount*( + self: ptr IUIAutomationGridPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentColumnCount(self, retVal) + +proc get_CachedRowCount*( + self: ptr IUIAutomationGridPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedRowCount(self, retVal) + +proc get_CachedColumnCount*( + self: ptr IUIAutomationGridPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedColumnCount(self, retVal) + +proc get_CurrentContainingGrid*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentContainingGrid(self, retVal) + +proc get_CurrentRow*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentRow(self, retVal) + +proc get_CurrentColumn*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentColumn(self, retVal) + +proc get_CurrentRowSpan*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentRowSpan(self, retVal) + +proc get_CurrentColumnSpan*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentColumnSpan(self, retVal) + +proc get_CachedContainingGrid*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedContainingGrid(self, retVal) + +proc get_CachedRow*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedRow(self, retVal) + +proc get_CachedColumn*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedColumn(self, retVal) + +proc get_CachedRowSpan*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedRowSpan(self, retVal) + +proc get_CachedColumnSpan*( + self: ptr IUIAutomationGridItemPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedColumnSpan(self, retVal) + +proc GetViewName*( + self: ptr IUIAutomationMultipleViewPattern, view: int32, name: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetViewName(self, view, name) + +proc SetCurrentView*( + self: ptr IUIAutomationMultipleViewPattern, view: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetCurrentView(self, view) + +proc get_CurrentCurrentView*( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCurrentView(self, retVal) + +proc GetCurrentSupportedViews*( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentSupportedViews(self, retVal) + +proc get_CachedCurrentView*( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCurrentView(self, retVal) + +proc GetCachedSupportedViews*( + self: ptr IUIAutomationMultipleViewPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedSupportedViews(self, retVal) + +proc GetUnderlyingObjectModel*( + self: ptr IUIAutomationObjectModelPattern, retVal: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetUnderlyingObjectModel(self, retVal) + +proc SetValue*( + self: ptr IUIAutomationRangeValuePattern, val: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, val) + +proc get_CurrentValue*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentValue(self, retVal) + +proc get_CurrentIsReadOnly*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsReadOnly(self, retVal) + +proc get_CurrentMaximum*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentMaximum(self, retVal) + +proc get_CurrentMinimum*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentMinimum(self, retVal) + +proc get_CurrentLargeChange*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLargeChange(self, retVal) + +proc get_CurrentSmallChange*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentSmallChange(self, retVal) + +proc get_CachedValue*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedValue(self, retVal) + +proc get_CachedIsReadOnly*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsReadOnly(self, retVal) + +proc get_CachedMaximum*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedMaximum(self, retVal) + +proc get_CachedMinimum*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedMinimum(self, retVal) + +proc get_CachedLargeChange*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLargeChange(self, retVal) + +proc get_CachedSmallChange*( + self: ptr IUIAutomationRangeValuePattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedSmallChange(self, retVal) + +proc Scroll*( + self: ptr IUIAutomationScrollPattern, + horizontalAmount: ScrollAmount, + verticalAmount: ScrollAmount, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Scroll(self, horizontalAmount, verticalAmount) + +proc SetScrollPercent*( + self: ptr IUIAutomationScrollPattern, + horizontalPercent: float64, + verticalPercent: float64, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetScrollPercent(self, horizontalPercent, verticalPercent) + +proc get_CurrentHorizontalScrollPercent*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHorizontalScrollPercent(self, retVal) + +proc get_CurrentVerticalScrollPercent*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentVerticalScrollPercent(self, retVal) + +proc get_CurrentHorizontalViewSize*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHorizontalViewSize(self, retVal) + +proc get_CurrentVerticalViewSize*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentVerticalViewSize(self, retVal) + +proc get_CurrentHorizontallyScrollable*( + self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHorizontallyScrollable(self, retVal) + +proc get_CurrentVerticallyScrollable*( + self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentVerticallyScrollable(self, retVal) + +proc get_CachedHorizontalScrollPercent*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHorizontalScrollPercent(self, retVal) + +proc get_CachedVerticalScrollPercent*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedVerticalScrollPercent(self, retVal) + +proc get_CachedHorizontalViewSize*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHorizontalViewSize(self, retVal) + +proc get_CachedVerticalViewSize*( + self: ptr IUIAutomationScrollPattern, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedVerticalViewSize(self, retVal) + +proc get_CachedHorizontallyScrollable*( + self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHorizontallyScrollable(self, retVal) + +proc get_CachedVerticallyScrollable*( + self: ptr IUIAutomationScrollPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedVerticallyScrollable(self, retVal) + +proc ScrollIntoView*( + self: ptr IUIAutomationScrollItemPattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollIntoView(self) + +proc GetCurrentSelection*( + self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentSelection(self, retVal) + +proc get_CurrentCanSelectMultiple*( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanSelectMultiple(self, retVal) + +proc get_CurrentIsSelectionRequired*( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsSelectionRequired(self, retVal) + +proc GetCachedSelection*( + self: ptr IUIAutomationSelectionPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedSelection(self, retVal) + +proc get_CachedCanSelectMultiple*( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanSelectMultiple(self, retVal) + +proc get_CachedIsSelectionRequired*( + self: ptr IUIAutomationSelectionPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsSelectionRequired(self, retVal) + +proc get_CurrentFirstSelectedItem*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFirstSelectedItem(self, retVal) + +proc get_CurrentLastSelectedItem*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLastSelectedItem(self, retVal) + +proc get_CurrentCurrentSelectedItem*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCurrentSelectedItem(self, retVal) + +proc get_CurrentItemCount*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentItemCount(self, retVal) + +proc get_CachedFirstSelectedItem*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFirstSelectedItem(self, retVal) + +proc get_CachedLastSelectedItem*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLastSelectedItem(self, retVal) + +proc get_CachedCurrentSelectedItem*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCurrentSelectedItem(self, retVal) + +proc get_CachedItemCount*( + self: ptr IUIAutomationSelectionPattern2, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedItemCount(self, retVal) + +proc Select*(self: ptr IUIAutomationSelectionItemPattern): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self) + +proc AddToSelection*( + self: ptr IUIAutomationSelectionItemPattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddToSelection(self) + +proc RemoveFromSelection*( + self: ptr IUIAutomationSelectionItemPattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFromSelection(self) + +proc get_CurrentIsSelected*( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsSelected(self, retVal) + +proc get_CurrentSelectionContainer*( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentSelectionContainer(self, retVal) + +proc get_CachedIsSelected*( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsSelected(self, retVal) + +proc get_CachedSelectionContainer*( + self: ptr IUIAutomationSelectionItemPattern, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedSelectionContainer(self, retVal) + +proc StartListening*( + self: ptr IUIAutomationSynchronizedInputPattern, inputType: SynchronizedInputType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.StartListening(self, inputType) + +proc Cancel*( + self: ptr IUIAutomationSynchronizedInputPattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cancel(self) + +proc GetCurrentRowHeaders*( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentRowHeaders(self, retVal) + +proc GetCurrentColumnHeaders*( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentColumnHeaders(self, retVal) + +proc get_CurrentRowOrColumnMajor*( + self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentRowOrColumnMajor(self, retVal) + +proc GetCachedRowHeaders*( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedRowHeaders(self, retVal) + +proc GetCachedColumnHeaders*( + self: ptr IUIAutomationTablePattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedColumnHeaders(self, retVal) + +proc get_CachedRowOrColumnMajor*( + self: ptr IUIAutomationTablePattern, retVal: ptr RowOrColumnMajor +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedRowOrColumnMajor(self, retVal) + +proc GetCurrentRowHeaderItems*( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentRowHeaderItems(self, retVal) + +proc GetCurrentColumnHeaderItems*( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentColumnHeaderItems(self, retVal) + +proc GetCachedRowHeaderItems*( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedRowHeaderItems(self, retVal) + +proc GetCachedColumnHeaderItems*( + self: ptr IUIAutomationTableItemPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedColumnHeaderItems(self, retVal) + +proc Toggle*(self: ptr IUIAutomationTogglePattern): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Toggle(self) + +proc get_CurrentToggleState*( + self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentToggleState(self, retVal) + +proc get_CachedToggleState*( + self: ptr IUIAutomationTogglePattern, retVal: ptr ToggleState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedToggleState(self, retVal) + +proc Move*( + self: ptr IUIAutomationTransformPattern, x: float64, y: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Move(self, x, y) + +proc Resize*( + self: ptr IUIAutomationTransformPattern, width: float64, height: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Resize(self, width, height) + +proc Rotate*( + self: ptr IUIAutomationTransformPattern, degrees: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Rotate(self, degrees) + +proc get_CurrentCanMove*( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanMove(self, retVal) + +proc get_CurrentCanResize*( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanResize(self, retVal) + +proc get_CurrentCanRotate*( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanRotate(self, retVal) + +proc get_CachedCanMove*( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanMove(self, retVal) + +proc get_CachedCanResize*( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanResize(self, retVal) + +proc get_CachedCanRotate*( + self: ptr IUIAutomationTransformPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanRotate(self, retVal) + +proc SetValue*( + self: ptr IUIAutomationValuePattern, val: BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, val) + +proc get_CurrentValue*( + self: ptr IUIAutomationValuePattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentValue(self, retVal) + +proc get_CurrentIsReadOnly*( + self: ptr IUIAutomationValuePattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsReadOnly(self, retVal) + +proc get_CachedValue*( + self: ptr IUIAutomationValuePattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedValue(self, retVal) + +proc get_CachedIsReadOnly*( + self: ptr IUIAutomationValuePattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsReadOnly(self, retVal) + +proc Close*(self: ptr IUIAutomationWindowPattern): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Close(self) + +proc WaitForInputIdle*( + self: ptr IUIAutomationWindowPattern, milliseconds: int32, success: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WaitForInputIdle(self, milliseconds, success) + +proc SetWindowVisualState*( + self: ptr IUIAutomationWindowPattern, state: WindowVisualState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWindowVisualState(self, state) + +proc get_CurrentCanMaximize*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanMaximize(self, retVal) + +proc get_CurrentCanMinimize*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanMinimize(self, retVal) + +proc get_CurrentIsModal*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsModal(self, retVal) + +proc get_CurrentIsTopmost*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsTopmost(self, retVal) + +proc get_CurrentWindowVisualState*( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentWindowVisualState(self, retVal) + +proc get_CurrentWindowInteractionState*( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentWindowInteractionState(self, retVal) + +proc get_CachedCanMaximize*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanMaximize(self, retVal) + +proc get_CachedCanMinimize*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanMinimize(self, retVal) + +proc get_CachedIsModal*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsModal(self, retVal) + +proc get_CachedIsTopmost*( + self: ptr IUIAutomationWindowPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsTopmost(self, retVal) + +proc get_CachedWindowVisualState*( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowVisualState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedWindowVisualState(self, retVal) + +proc get_CachedWindowInteractionState*( + self: ptr IUIAutomationWindowPattern, retVal: ptr WindowInteractionState +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedWindowInteractionState(self, retVal) + +proc Clone*( + self: ptr IUIAutomationTextRange, clonedRange: ptr ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, clonedRange) + +proc Compare*( + self: ptr IUIAutomationTextRange, + range: ptr IUIAutomationTextRange, + areSame: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Compare(self, range, areSame) + +proc CompareEndpoints*( + self: ptr IUIAutomationTextRange, + srcEndPoint: TextPatternRangeEndpoint, + range: ptr IUIAutomationTextRange, + targetEndPoint: TextPatternRangeEndpoint, + compValue: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareEndpoints(self, srcEndPoint, range, targetEndPoint, compValue) + +proc ExpandToEnclosingUnit*( + self: ptr IUIAutomationTextRange, textUnit: TextUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ExpandToEnclosingUnit(self, textUnit) + +proc FindAttribute*( + self: ptr IUIAutomationTextRange, + attr: TEXTATTRIBUTEID, + val: VARIANT, + backward: BOOL, + found: ptr ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindAttribute(self, attr, val, backward, found) + +proc FindText*( + self: ptr IUIAutomationTextRange, + text: BSTR, + backward: BOOL, + ignoreCase: BOOL, + found: ptr ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindText(self, text, backward, ignoreCase, found) + +proc GetAttributeValue*( + self: ptr IUIAutomationTextRange, attr: TEXTATTRIBUTEID, value: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributeValue(self, attr, value) + +proc GetBoundingRectangles*( + self: ptr IUIAutomationTextRange, boundingRects: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBoundingRectangles(self, boundingRects) + +proc GetEnclosingElement*( + self: ptr IUIAutomationTextRange, enclosingElement: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnclosingElement(self, enclosingElement) + +proc GetText*( + self: ptr IUIAutomationTextRange, maxLength: int32, text: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetText(self, maxLength, text) + +proc Move*( + self: ptr IUIAutomationTextRange, unit: TextUnit, count: int32, moved: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Move(self, unit, count, moved) + +proc MoveEndpointByUnit*( + self: ptr IUIAutomationTextRange, + endpoint: TextPatternRangeEndpoint, + unit: TextUnit, + count: int32, + moved: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveEndpointByUnit(self, endpoint, unit, count, moved) + +proc MoveEndpointByRange*( + self: ptr IUIAutomationTextRange, + srcEndPoint: TextPatternRangeEndpoint, + range: ptr IUIAutomationTextRange, + targetEndPoint: TextPatternRangeEndpoint, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MoveEndpointByRange(self, srcEndPoint, range, targetEndPoint) + +proc Select*(self: ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self) + +proc AddToSelection*(self: ptr IUIAutomationTextRange): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddToSelection(self) + +proc RemoveFromSelection*( + self: ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFromSelection(self) + +proc ScrollIntoView*( + self: ptr IUIAutomationTextRange, alignToTop: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ScrollIntoView(self, alignToTop) + +proc GetChildren*( + self: ptr IUIAutomationTextRange, children: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildren(self, children) + +proc ShowContextMenu*(self: ptr IUIAutomationTextRange2): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowContextMenu(self) + +proc GetEnclosingElementBuildCache*( + self: ptr IUIAutomationTextRange3, + cacheRequest: ptr IUIAutomationCacheRequest, + enclosingElement: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnclosingElementBuildCache(self, cacheRequest, enclosingElement) + +proc GetChildrenBuildCache*( + self: ptr IUIAutomationTextRange3, + cacheRequest: ptr IUIAutomationCacheRequest, + children: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChildrenBuildCache(self, cacheRequest, children) + +proc GetAttributeValues*( + self: ptr IUIAutomationTextRange3, + attributeIds: ptr TEXTATTRIBUTEID, + attributeIdCount: int32, + attributeValues: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAttributeValues( + self, attributeIds, attributeIdCount, attributeValues + ) + +proc get_Length*( + self: ptr IUIAutomationTextRangeArray, length: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Length(self, length) + +proc GetElement*( + self: ptr IUIAutomationTextRangeArray, + index: int32, + element: ptr ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetElement(self, index, element) + +proc RangeFromPoint*( + self: ptr IUIAutomationTextPattern, pt: POINT, range: ptr ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RangeFromPoint(self, pt, range) + +proc RangeFromChild*( + self: ptr IUIAutomationTextPattern, + child: ptr IUIAutomationElement, + range: ptr ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RangeFromChild(self, child, range) + +proc GetSelection*( + self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSelection(self, ranges) + +proc GetVisibleRanges*( + self: ptr IUIAutomationTextPattern, ranges: ptr ptr IUIAutomationTextRangeArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVisibleRanges(self, ranges) + +proc get_DocumentRange*( + self: ptr IUIAutomationTextPattern, range: ptr ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_DocumentRange(self, range) + +proc get_SupportedTextSelection*( + self: ptr IUIAutomationTextPattern, + supportedTextSelection: ptr SupportedTextSelection, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_SupportedTextSelection(self, supportedTextSelection) + +proc RangeFromAnnotation*( + self: ptr IUIAutomationTextPattern2, + annotation: ptr IUIAutomationElement, + range: ptr ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RangeFromAnnotation(self, annotation, range) + +proc GetCaretRange*( + self: ptr IUIAutomationTextPattern2, + isActive: ptr BOOL, + range: ptr ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCaretRange(self, isActive, range) + +proc GetActiveComposition*( + self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetActiveComposition(self, range) + +proc GetConversionTarget*( + self: ptr IUIAutomationTextEditPattern, range: ptr ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetConversionTarget(self, range) + +proc Navigate*( + self: ptr IUIAutomationCustomNavigationPattern, + direction: NavigateDirection, + pRetVal: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Navigate(self, direction, pRetVal) + +proc HandleActiveTextPositionChangedEvent*( + self: ptr IUIAutomationActiveTextPositionChangedEventHandler, + sender: ptr IUIAutomationElement, + range: ptr IUIAutomationTextRange, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HandleActiveTextPositionChangedEvent(self, sender, range) + +proc Select*( + self: ptr IUIAutomationLegacyIAccessiblePattern, flagsSelect: int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Select(self, flagsSelect) + +proc DoDefaultAction*( + self: ptr IUIAutomationLegacyIAccessiblePattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoDefaultAction(self) + +proc SetValue*( + self: ptr IUIAutomationLegacyIAccessiblePattern, szValue: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetValue(self, szValue) + +proc get_CurrentChildId*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentChildId(self, pRetVal) + +proc get_CurrentName*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentName(self, pszName) + +proc get_CurrentValue*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentValue(self, pszValue) + +proc get_CurrentDescription*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDescription(self, pszDescription) + +proc get_CurrentRole*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentRole(self, pdwRole) + +proc get_CurrentState*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentState(self, pdwState) + +proc get_CurrentHelp*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHelp(self, pszHelp) + +proc get_CurrentKeyboardShortcut*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentKeyboardShortcut(self, pszKeyboardShortcut) + +proc GetCurrentSelection*( + self: ptr IUIAutomationLegacyIAccessiblePattern, + pvarSelectedChildren: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentSelection(self, pvarSelectedChildren) + +proc get_CurrentDefaultAction*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDefaultAction(self, pszDefaultAction) + +proc get_CachedChildId*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pRetVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedChildId(self, pRetVal) + +proc get_CachedName*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedName(self, pszName) + +proc get_CachedValue*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszValue: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedValue(self, pszValue) + +proc get_CachedDescription*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDescription: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDescription(self, pszDescription) + +proc get_CachedRole*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwRole: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedRole(self, pdwRole) + +proc get_CachedState*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pdwState: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedState(self, pdwState) + +proc get_CachedHelp*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszHelp: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHelp(self, pszHelp) + +proc get_CachedKeyboardShortcut*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszKeyboardShortcut: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedKeyboardShortcut(self, pszKeyboardShortcut) + +proc GetCachedSelection*( + self: ptr IUIAutomationLegacyIAccessiblePattern, + pvarSelectedChildren: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedSelection(self, pvarSelectedChildren) + +proc get_CachedDefaultAction*( + self: ptr IUIAutomationLegacyIAccessiblePattern, pszDefaultAction: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDefaultAction(self, pszDefaultAction) + +proc GetIAccessible*( + self: ptr IUIAutomationLegacyIAccessiblePattern, ppAccessible: ptr ptr IAccessible +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetIAccessible(self, ppAccessible) + +proc FindItemByProperty*( + self: ptr IUIAutomationItemContainerPattern, + pStartAfter: ptr IUIAutomationElement, + propertyId: PROPERTYID, + value: VARIANT, + pFound: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindItemByProperty(self, pStartAfter, propertyId, value, pFound) + +proc Realize*( + self: ptr IUIAutomationVirtualizedItemPattern +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Realize(self) + +proc get_CurrentAnnotationTypeId*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAnnotationTypeId(self, retVal) + +proc get_CurrentAnnotationTypeName*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAnnotationTypeName(self, retVal) + +proc get_CurrentAuthor*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAuthor(self, retVal) + +proc get_CurrentDateTime*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDateTime(self, retVal) + +proc get_CurrentTarget*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentTarget(self, retVal) + +proc get_CachedAnnotationTypeId*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAnnotationTypeId(self, retVal) + +proc get_CachedAnnotationTypeName*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAnnotationTypeName(self, retVal) + +proc get_CachedAuthor*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAuthor(self, retVal) + +proc get_CachedDateTime*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDateTime(self, retVal) + +proc get_CachedTarget*( + self: ptr IUIAutomationAnnotationPattern, retVal: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedTarget(self, retVal) + +proc get_CurrentStyleId*( + self: ptr IUIAutomationStylesPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentStyleId(self, retVal) + +proc get_CurrentStyleName*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentStyleName(self, retVal) + +proc get_CurrentFillColor*( + self: ptr IUIAutomationStylesPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFillColor(self, retVal) + +proc get_CurrentFillPatternStyle*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFillPatternStyle(self, retVal) + +proc get_CurrentShape*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentShape(self, retVal) + +proc get_CurrentFillPatternColor*( + self: ptr IUIAutomationStylesPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFillPatternColor(self, retVal) + +proc get_CurrentExtendedProperties*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentExtendedProperties(self, retVal) + +proc GetCurrentExtendedPropertiesAsArray*( + self: ptr IUIAutomationStylesPattern, + propertyArray: ptr ptr TExtendedProperty, + propertyCount: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentExtendedPropertiesAsArray(self, propertyArray, propertyCount) + +proc get_CachedStyleId*( + self: ptr IUIAutomationStylesPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedStyleId(self, retVal) + +proc get_CachedStyleName*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedStyleName(self, retVal) + +proc get_CachedFillColor*( + self: ptr IUIAutomationStylesPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFillColor(self, retVal) + +proc get_CachedFillPatternStyle*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFillPatternStyle(self, retVal) + +proc get_CachedShape*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedShape(self, retVal) + +proc get_CachedFillPatternColor*( + self: ptr IUIAutomationStylesPattern, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFillPatternColor(self, retVal) + +proc get_CachedExtendedProperties*( + self: ptr IUIAutomationStylesPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedExtendedProperties(self, retVal) + +proc GetCachedExtendedPropertiesAsArray*( + self: ptr IUIAutomationStylesPattern, + propertyArray: ptr ptr TExtendedProperty, + propertyCount: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedExtendedPropertiesAsArray(self, propertyArray, propertyCount) + +proc GetItemByName*( + self: ptr IUIAutomationSpreadsheetPattern, + name: BSTR, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetItemByName(self, name, element) + +proc get_CurrentFormula*( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFormula(self, retVal) + +proc GetCurrentAnnotationObjects*( + self: ptr IUIAutomationSpreadsheetItemPattern, + retVal: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentAnnotationObjects(self, retVal) + +proc GetCurrentAnnotationTypes*( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentAnnotationTypes(self, retVal) + +proc get_CachedFormula*( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFormula(self, retVal) + +proc GetCachedAnnotationObjects*( + self: ptr IUIAutomationSpreadsheetItemPattern, + retVal: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedAnnotationObjects(self, retVal) + +proc GetCachedAnnotationTypes*( + self: ptr IUIAutomationSpreadsheetItemPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedAnnotationTypes(self, retVal) + +proc Zoom*( + self: ptr IUIAutomationTransformPattern2, zoomValue: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Zoom(self, zoomValue) + +proc ZoomByUnit*( + self: ptr IUIAutomationTransformPattern2, zoomUnit: ZoomUnit +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ZoomByUnit(self, zoomUnit) + +proc get_CurrentCanZoom*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentCanZoom(self, retVal) + +proc get_CachedCanZoom*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedCanZoom(self, retVal) + +proc get_CurrentZoomLevel*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentZoomLevel(self, retVal) + +proc get_CachedZoomLevel*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedZoomLevel(self, retVal) + +proc get_CurrentZoomMinimum*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentZoomMinimum(self, retVal) + +proc get_CachedZoomMinimum*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedZoomMinimum(self, retVal) + +proc get_CurrentZoomMaximum*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentZoomMaximum(self, retVal) + +proc get_CachedZoomMaximum*( + self: ptr IUIAutomationTransformPattern2, retVal: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedZoomMaximum(self, retVal) + +proc get_TextContainer*( + self: ptr IUIAutomationTextChildPattern, container: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextContainer(self, container) + +proc get_TextRange*( + self: ptr IUIAutomationTextChildPattern, range: ptr ptr IUIAutomationTextRange +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TextRange(self, range) + +proc get_CurrentIsGrabbed*( + self: ptr IUIAutomationDragPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsGrabbed(self, retVal) + +proc get_CachedIsGrabbed*( + self: ptr IUIAutomationDragPattern, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsGrabbed(self, retVal) + +proc get_CurrentDropEffect*( + self: ptr IUIAutomationDragPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDropEffect(self, retVal) + +proc get_CachedDropEffect*( + self: ptr IUIAutomationDragPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDropEffect(self, retVal) + +proc get_CurrentDropEffects*( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDropEffects(self, retVal) + +proc get_CachedDropEffects*( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDropEffects(self, retVal) + +proc GetCurrentGrabbedItems*( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentGrabbedItems(self, retVal) + +proc GetCachedGrabbedItems*( + self: ptr IUIAutomationDragPattern, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCachedGrabbedItems(self, retVal) + +proc get_CurrentDropTargetEffect*( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDropTargetEffect(self, retVal) + +proc get_CachedDropTargetEffect*( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDropTargetEffect(self, retVal) + +proc get_CurrentDropTargetEffects*( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentDropTargetEffects(self, retVal) + +proc get_CachedDropTargetEffects*( + self: ptr IUIAutomationDropTargetPattern, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedDropTargetEffects(self, retVal) + +proc get_CurrentOptimizeForVisualContent*( + self: ptr IUIAutomationElement2, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentOptimizeForVisualContent(self, retVal) + +proc get_CachedOptimizeForVisualContent*( + self: ptr IUIAutomationElement2, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedOptimizeForVisualContent(self, retVal) + +proc get_CurrentLiveSetting*( + self: ptr IUIAutomationElement2, retVal: ptr LiveSetting +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLiveSetting(self, retVal) + +proc get_CachedLiveSetting*( + self: ptr IUIAutomationElement2, retVal: ptr LiveSetting +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLiveSetting(self, retVal) + +proc get_CurrentFlowsFrom*( + self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFlowsFrom(self, retVal) + +proc get_CachedFlowsFrom*( + self: ptr IUIAutomationElement2, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFlowsFrom(self, retVal) + +proc ShowContextMenu*(self: ptr IUIAutomationElement3): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ShowContextMenu(self) + +proc get_CurrentIsPeripheral*( + self: ptr IUIAutomationElement3, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsPeripheral(self, retVal) + +proc get_CachedIsPeripheral*( + self: ptr IUIAutomationElement3, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsPeripheral(self, retVal) + +proc get_CurrentPositionInSet*( + self: ptr IUIAutomationElement4, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentPositionInSet(self, retVal) + +proc get_CurrentSizeOfSet*( + self: ptr IUIAutomationElement4, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentSizeOfSet(self, retVal) + +proc get_CurrentLevel*( + self: ptr IUIAutomationElement4, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLevel(self, retVal) + +proc get_CurrentAnnotationTypes*( + self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAnnotationTypes(self, retVal) + +proc get_CurrentAnnotationObjects*( + self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentAnnotationObjects(self, retVal) + +proc get_CachedPositionInSet*( + self: ptr IUIAutomationElement4, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedPositionInSet(self, retVal) + +proc get_CachedSizeOfSet*( + self: ptr IUIAutomationElement4, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedSizeOfSet(self, retVal) + +proc get_CachedLevel*( + self: ptr IUIAutomationElement4, retVal: ptr int32 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLevel(self, retVal) + +proc get_CachedAnnotationTypes*( + self: ptr IUIAutomationElement4, retVal: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAnnotationTypes(self, retVal) + +proc get_CachedAnnotationObjects*( + self: ptr IUIAutomationElement4, retVal: ptr ptr IUIAutomationElementArray +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedAnnotationObjects(self, retVal) + +proc get_CurrentLandmarkType*( + self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLandmarkType(self, retVal) + +proc get_CurrentLocalizedLandmarkType*( + self: ptr IUIAutomationElement5, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentLocalizedLandmarkType(self, retVal) + +proc get_CachedLandmarkType*( + self: ptr IUIAutomationElement5, retVal: ptr LANDMARKTYPEID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLandmarkType(self, retVal) + +proc get_CachedLocalizedLandmarkType*( + self: ptr IUIAutomationElement5, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedLocalizedLandmarkType(self, retVal) + +proc get_CurrentFullDescription*( + self: ptr IUIAutomationElement6, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentFullDescription(self, retVal) + +proc get_CachedFullDescription*( + self: ptr IUIAutomationElement6, retVal: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedFullDescription(self, retVal) + +proc FindFirstWithOptions*( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFirstWithOptions( + self, scope, condition, traversalOptions, root, found + ) + +proc FindAllWithOptions*( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindAllWithOptions( + self, scope, condition, traversalOptions, root, found + ) + +proc FindFirstWithOptionsBuildCache*( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindFirstWithOptionsBuildCache( + self, scope, condition, cacheRequest, traversalOptions, root, found + ) + +proc FindAllWithOptionsBuildCache*( + self: ptr IUIAutomationElement7, + scope: TreeScope, + condition: ptr IUIAutomationCondition, + cacheRequest: ptr IUIAutomationCacheRequest, + traversalOptions: TreeTraversalOptions, + root: ptr IUIAutomationElement, + found: ptr ptr IUIAutomationElementArray, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindAllWithOptionsBuildCache( + self, scope, condition, cacheRequest, traversalOptions, root, found + ) + +proc GetCurrentMetadataValue*( + self: ptr IUIAutomationElement7, + targetId: int32, + metadataId: METADATAID, + returnVal: ptr VARIANT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCurrentMetadataValue(self, targetId, metadataId, returnVal) + +proc get_CurrentHeadingLevel*( + self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentHeadingLevel(self, retVal) + +proc get_CachedHeadingLevel*( + self: ptr IUIAutomationElement8, retVal: ptr HEADINGLEVELID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedHeadingLevel(self, retVal) + +proc get_CurrentIsDialog*( + self: ptr IUIAutomationElement9, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CurrentIsDialog(self, retVal) + +proc get_CachedIsDialog*( + self: ptr IUIAutomationElement9, retVal: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CachedIsDialog(self, retVal) + +proc CreateProvider*( + self: ptr IUIAutomationProxyFactory, + hwnd: UIA_HWND, + idObject: LONG, + idChild: LONG, + provider: ptr ptr IRawElementProviderSimple, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateProvider(self, hwnd, idObject, idChild, provider) + +proc get_ProxyFactoryId*( + self: ptr IUIAutomationProxyFactory, factoryId: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ProxyFactoryId(self, factoryId) + +proc get_ProxyFactory*( + self: ptr IUIAutomationProxyFactoryEntry, factory: ptr ptr IUIAutomationProxyFactory +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ProxyFactory(self, factory) + +proc get_ClassName*( + self: ptr IUIAutomationProxyFactoryEntry, className: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ClassName(self, className) + +proc get_ImageName*( + self: ptr IUIAutomationProxyFactoryEntry, imageName: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ImageName(self, imageName) + +proc get_AllowSubstringMatch*( + self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AllowSubstringMatch(self, allowSubstringMatch) + +proc get_CanCheckBaseClass*( + self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CanCheckBaseClass(self, canCheckBaseClass) + +proc get_NeedsAdviseEvents*( + self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_NeedsAdviseEvents(self, adviseEvents) + +proc put_ClassName*( + self: ptr IUIAutomationProxyFactoryEntry, className: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ClassName(self, className) + +proc put_ImageName*( + self: ptr IUIAutomationProxyFactoryEntry, imageName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ImageName(self, imageName) + +proc put_AllowSubstringMatch*( + self: ptr IUIAutomationProxyFactoryEntry, allowSubstringMatch: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_AllowSubstringMatch(self, allowSubstringMatch) + +proc put_CanCheckBaseClass*( + self: ptr IUIAutomationProxyFactoryEntry, canCheckBaseClass: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_CanCheckBaseClass(self, canCheckBaseClass) + +proc put_NeedsAdviseEvents*( + self: ptr IUIAutomationProxyFactoryEntry, adviseEvents: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_NeedsAdviseEvents(self, adviseEvents) + +proc SetWinEventsForAutomationEvent*( + self: ptr IUIAutomationProxyFactoryEntry, + eventId: EVENTID, + propertyId: PROPERTYID, + winEvents: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetWinEventsForAutomationEvent(self, eventId, propertyId, winEvents) + +proc GetWinEventsForAutomationEvent*( + self: ptr IUIAutomationProxyFactoryEntry, + eventId: EVENTID, + propertyId: PROPERTYID, + winEvents: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetWinEventsForAutomationEvent(self, eventId, propertyId, winEvents) + +proc get_Count*( + self: ptr IUIAutomationProxyFactoryMapping, count: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_Count(self, count) + +proc GetTable*( + self: ptr IUIAutomationProxyFactoryMapping, table: ptr ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetTable(self, table) + +proc GetEntry*( + self: ptr IUIAutomationProxyFactoryMapping, + index: UINT, + entry: ptr ptr IUIAutomationProxyFactoryEntry, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEntry(self, index, entry) + +proc SetTable*( + self: ptr IUIAutomationProxyFactoryMapping, factoryList: ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetTable(self, factoryList) + +proc InsertEntries*( + self: ptr IUIAutomationProxyFactoryMapping, before: UINT, factoryList: ptr SAFEARRAY +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertEntries(self, before, factoryList) + +proc InsertEntry*( + self: ptr IUIAutomationProxyFactoryMapping, + before: UINT, + factory: ptr IUIAutomationProxyFactoryEntry, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InsertEntry(self, before, factory) + +proc RemoveEntry*( + self: ptr IUIAutomationProxyFactoryMapping, index: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveEntry(self, index) + +proc ClearTable*( + self: ptr IUIAutomationProxyFactoryMapping +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ClearTable(self) + +proc RestoreDefaultTable*( + self: ptr IUIAutomationProxyFactoryMapping +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RestoreDefaultTable(self) + +proc AddActiveTextPositionChangedEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationActiveTextPositionChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddActiveTextPositionChangedEventHandler( + self, scope, cacheRequest, handler + ) + +proc AddAutomationEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + eventId: EVENTID, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddAutomationEventHandler(self, eventId, scope, cacheRequest, handler) + +proc AddChangesEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + changeTypes: ptr int32, + changesCount: int32, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationChangesEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddChangesEventHandler( + self, scope, changeTypes, changesCount, cacheRequest, handler + ) + +proc AddNotificationEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationNotificationEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddNotificationEventHandler(self, scope, cacheRequest, handler) + +proc AddPropertyChangedEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationPropertyChangedEventHandler, + propertyArray: ptr PROPERTYID, + propertyCount: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPropertyChangedEventHandler( + self, scope, cacheRequest, handler, propertyArray, propertyCount + ) + +proc AddStructureChangedEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationStructureChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddStructureChangedEventHandler(self, scope, cacheRequest, handler) + +proc AddTextEditTextChangedEventHandler*( + self: ptr IUIAutomationEventHandlerGroup, + scope: TreeScope, + textEditChangeType: TextEditChangeType, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationTextEditTextChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddTextEditTextChangedEventHandler( + self, scope, textEditChangeType, cacheRequest, handler + ) + +proc CompareElements*( + self: ptr IUIAutomation, + el1: ptr IUIAutomationElement, + el2: ptr IUIAutomationElement, + areSame: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareElements(self, el1, el2, areSame) + +proc CompareRuntimeIds*( + self: ptr IUIAutomation, + runtimeId1: ptr SAFEARRAY, + runtimeId2: ptr SAFEARRAY, + areSame: ptr BOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CompareRuntimeIds(self, runtimeId1, runtimeId2, areSame) + +proc GetRootElement*( + self: ptr IUIAutomation, root: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRootElement(self, root) + +proc ElementFromHandle*( + self: ptr IUIAutomation, hwnd: UIA_HWND, element: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementFromHandle(self, hwnd, element) + +proc ElementFromPoint*( + self: ptr IUIAutomation, pt: POINT, element: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementFromPoint(self, pt, element) + +proc GetFocusedElement*( + self: ptr IUIAutomation, element: ptr ptr IUIAutomationElement +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFocusedElement(self, element) + +proc GetRootElementBuildCache*( + self: ptr IUIAutomation, + cacheRequest: ptr IUIAutomationCacheRequest, + root: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetRootElementBuildCache(self, cacheRequest, root) + +proc ElementFromHandleBuildCache*( + self: ptr IUIAutomation, + hwnd: UIA_HWND, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementFromHandleBuildCache(self, hwnd, cacheRequest, element) + +proc ElementFromPointBuildCache*( + self: ptr IUIAutomation, + pt: POINT, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementFromPointBuildCache(self, pt, cacheRequest, element) + +proc GetFocusedElementBuildCache*( + self: ptr IUIAutomation, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFocusedElementBuildCache(self, cacheRequest, element) + +proc CreateTreeWalker*( + self: ptr IUIAutomation, + pCondition: ptr IUIAutomationCondition, + walker: ptr ptr IUIAutomationTreeWalker, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateTreeWalker(self, pCondition, walker) + +proc get_ControlViewWalker*( + self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ControlViewWalker(self, walker) + +proc get_ContentViewWalker*( + self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ContentViewWalker(self, walker) + +proc get_RawViewWalker*( + self: ptr IUIAutomation, walker: ptr ptr IUIAutomationTreeWalker +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RawViewWalker(self, walker) + +proc get_RawViewCondition*( + self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_RawViewCondition(self, condition) + +proc get_ControlViewCondition*( + self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ControlViewCondition(self, condition) + +proc get_ContentViewCondition*( + self: ptr IUIAutomation, condition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ContentViewCondition(self, condition) + +proc CreateCacheRequest*( + self: ptr IUIAutomation, cacheRequest: ptr ptr IUIAutomationCacheRequest +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateCacheRequest(self, cacheRequest) + +proc CreateTrueCondition*( + self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateTrueCondition(self, newCondition) + +proc CreateFalseCondition*( + self: ptr IUIAutomation, newCondition: ptr ptr IUIAutomationCondition +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateFalseCondition(self, newCondition) + +proc CreatePropertyCondition*( + self: ptr IUIAutomation, + propertyId: PROPERTYID, + value: VARIANT, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreatePropertyCondition(self, propertyId, value, newCondition) + +proc CreatePropertyConditionEx*( + self: ptr IUIAutomation, + propertyId: PROPERTYID, + value: VARIANT, + flags: PropertyConditionFlags, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreatePropertyConditionEx(self, propertyId, value, flags, newCondition) + +proc CreateAndCondition*( + self: ptr IUIAutomation, + condition1: ptr IUIAutomationCondition, + condition2: ptr IUIAutomationCondition, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateAndCondition(self, condition1, condition2, newCondition) + +proc CreateAndConditionFromArray*( + self: ptr IUIAutomation, + conditions: ptr SAFEARRAY, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateAndConditionFromArray(self, conditions, newCondition) + +proc CreateAndConditionFromNativeArray*( + self: ptr IUIAutomation, + conditions: ptr ptr IUIAutomationCondition, + conditionCount: int32, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateAndConditionFromNativeArray( + self, conditions, conditionCount, newCondition + ) + +proc CreateOrCondition*( + self: ptr IUIAutomation, + condition1: ptr IUIAutomationCondition, + condition2: ptr IUIAutomationCondition, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateOrCondition(self, condition1, condition2, newCondition) + +proc CreateOrConditionFromArray*( + self: ptr IUIAutomation, + conditions: ptr SAFEARRAY, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateOrConditionFromArray(self, conditions, newCondition) + +proc CreateOrConditionFromNativeArray*( + self: ptr IUIAutomation, + conditions: ptr ptr IUIAutomationCondition, + conditionCount: int32, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateOrConditionFromNativeArray( + self, conditions, conditionCount, newCondition + ) + +proc CreateNotCondition*( + self: ptr IUIAutomation, + condition: ptr IUIAutomationCondition, + newCondition: ptr ptr IUIAutomationCondition, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateNotCondition(self, condition, newCondition) + +proc AddAutomationEventHandler*( + self: ptr IUIAutomation, + eventId: EVENTID, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddAutomationEventHandler( + self, eventId, element, scope, cacheRequest, handler + ) + +proc RemoveAutomationEventHandler*( + self: ptr IUIAutomation, + eventId: EVENTID, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAutomationEventHandler(self, eventId, element, handler) + +proc AddPropertyChangedEventHandlerNativeArray*( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationPropertyChangedEventHandler, + propertyArray: ptr PROPERTYID, + propertyCount: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPropertyChangedEventHandlerNativeArray( + self, element, scope, cacheRequest, handler, propertyArray, propertyCount + ) + +proc AddPropertyChangedEventHandler*( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationPropertyChangedEventHandler, + propertyArray: ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddPropertyChangedEventHandler( + self, element, scope, cacheRequest, handler, propertyArray + ) + +proc RemovePropertyChangedEventHandler*( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationPropertyChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemovePropertyChangedEventHandler(self, element, handler) + +proc AddStructureChangedEventHandler*( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationStructureChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddStructureChangedEventHandler( + self, element, scope, cacheRequest, handler + ) + +proc RemoveStructureChangedEventHandler*( + self: ptr IUIAutomation, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationStructureChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveStructureChangedEventHandler(self, element, handler) + +proc AddFocusChangedEventHandler*( + self: ptr IUIAutomation, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationFocusChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddFocusChangedEventHandler(self, cacheRequest, handler) + +proc RemoveFocusChangedEventHandler*( + self: ptr IUIAutomation, handler: ptr IUIAutomationFocusChangedEventHandler +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveFocusChangedEventHandler(self, handler) + +proc RemoveAllEventHandlers*(self: ptr IUIAutomation): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveAllEventHandlers(self) + +proc IntNativeArrayToSafeArray*( + self: ptr IUIAutomation, + array: ptr int32, + arrayCount: int32, + safeArray: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IntNativeArrayToSafeArray(self, array, arrayCount, safeArray) + +proc IntSafeArrayToNativeArray*( + self: ptr IUIAutomation, + intArray: ptr SAFEARRAY, + array: ptr ptr int32, + arrayCount: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IntSafeArrayToNativeArray(self, intArray, array, arrayCount) + +proc RectToVariant*( + self: ptr IUIAutomation, rc: RECT, `var`: ptr VARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RectToVariant(self, rc, `var`) + +proc VariantToRect*( + self: ptr IUIAutomation, `var`: VARIANT, rc: ptr RECT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.VariantToRect(self, `var`, rc) + +proc SafeArrayToRectNativeArray*( + self: ptr IUIAutomation, + rects: ptr SAFEARRAY, + rectArray: ptr ptr RECT, + rectArrayCount: ptr int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SafeArrayToRectNativeArray(self, rects, rectArray, rectArrayCount) + +proc CreateProxyFactoryEntry*( + self: ptr IUIAutomation, + factory: ptr IUIAutomationProxyFactory, + factoryEntry: ptr ptr IUIAutomationProxyFactoryEntry, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateProxyFactoryEntry(self, factory, factoryEntry) + +proc get_ProxyFactoryMapping*( + self: ptr IUIAutomation, factoryMapping: ptr ptr IUIAutomationProxyFactoryMapping +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ProxyFactoryMapping(self, factoryMapping) + +proc GetPropertyProgrammaticName*( + self: ptr IUIAutomation, property: PROPERTYID, name: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPropertyProgrammaticName(self, property, name) + +proc GetPatternProgrammaticName*( + self: ptr IUIAutomation, pattern: PATTERNID, name: ptr BSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPatternProgrammaticName(self, pattern, name) + +proc PollForPotentialSupportedPatterns*( + self: ptr IUIAutomation, + pElement: ptr IUIAutomationElement, + patternIds: ptr ptr SAFEARRAY, + patternNames: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PollForPotentialSupportedPatterns( + self, pElement, patternIds, patternNames + ) + +proc PollForPotentialSupportedProperties*( + self: ptr IUIAutomation, + pElement: ptr IUIAutomationElement, + propertyIds: ptr ptr SAFEARRAY, + propertyNames: ptr ptr SAFEARRAY, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.PollForPotentialSupportedProperties( + self, pElement, propertyIds, propertyNames + ) + +proc CheckNotSupported*( + self: ptr IUIAutomation, value: VARIANT, isNotSupported: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CheckNotSupported(self, value, isNotSupported) + +proc get_ReservedNotSupportedValue*( + self: ptr IUIAutomation, notSupportedValue: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ReservedNotSupportedValue(self, notSupportedValue) + +proc get_ReservedMixedAttributeValue*( + self: ptr IUIAutomation, mixedAttributeValue: ptr ptr IUnknown +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ReservedMixedAttributeValue(self, mixedAttributeValue) + +proc ElementFromIAccessible*( + self: ptr IUIAutomation, + accessible: ptr IAccessible, + childId: int32, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementFromIAccessible(self, accessible, childId, element) + +proc ElementFromIAccessibleBuildCache*( + self: ptr IUIAutomation, + accessible: ptr IAccessible, + childId: int32, + cacheRequest: ptr IUIAutomationCacheRequest, + element: ptr ptr IUIAutomationElement, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ElementFromIAccessibleBuildCache( + self, accessible, childId, cacheRequest, element + ) + +proc get_AutoSetFocus*( + self: ptr IUIAutomation2, autoSetFocus: ptr BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_AutoSetFocus(self, autoSetFocus) + +proc put_AutoSetFocus*( + self: ptr IUIAutomation2, autoSetFocus: BOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_AutoSetFocus(self, autoSetFocus) + +proc get_ConnectionTimeout*( + self: ptr IUIAutomation2, timeout: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ConnectionTimeout(self, timeout) + +proc put_ConnectionTimeout*( + self: ptr IUIAutomation2, timeout: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ConnectionTimeout(self, timeout) + +proc get_TransactionTimeout*( + self: ptr IUIAutomation2, timeout: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_TransactionTimeout(self, timeout) + +proc put_TransactionTimeout*( + self: ptr IUIAutomation2, timeout: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_TransactionTimeout(self, timeout) + +proc AddTextEditTextChangedEventHandler*( + self: ptr IUIAutomation3, + element: ptr IUIAutomationElement, + scope: TreeScope, + textEditChangeType: TextEditChangeType, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationTextEditTextChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddTextEditTextChangedEventHandler( + self, element, scope, textEditChangeType, cacheRequest, handler + ) + +proc RemoveTextEditTextChangedEventHandler*( + self: ptr IUIAutomation3, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationTextEditTextChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveTextEditTextChangedEventHandler(self, element, handler) + +proc AddChangesEventHandler*( + self: ptr IUIAutomation4, + element: ptr IUIAutomationElement, + scope: TreeScope, + changeTypes: ptr int32, + changesCount: int32, + pCacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationChangesEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddChangesEventHandler( + self, element, scope, changeTypes, changesCount, pCacheRequest, handler + ) + +proc RemoveChangesEventHandler*( + self: ptr IUIAutomation4, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationChangesEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveChangesEventHandler(self, element, handler) + +proc AddNotificationEventHandler*( + self: ptr IUIAutomation5, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationNotificationEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddNotificationEventHandler(self, element, scope, cacheRequest, handler) + +proc RemoveNotificationEventHandler*( + self: ptr IUIAutomation5, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationNotificationEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveNotificationEventHandler(self, element, handler) + +proc CreateEventHandlerGroup*( + self: ptr IUIAutomation6, handlerGroup: ptr ptr IUIAutomationEventHandlerGroup +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateEventHandlerGroup(self, handlerGroup) + +proc AddEventHandlerGroup*( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + handlerGroup: ptr IUIAutomationEventHandlerGroup, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddEventHandlerGroup(self, element, handlerGroup) + +proc RemoveEventHandlerGroup*( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + handlerGroup: ptr IUIAutomationEventHandlerGroup, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveEventHandlerGroup(self, element, handlerGroup) + +proc get_ConnectionRecoveryBehavior*( + self: ptr IUIAutomation6, + connectionRecoveryBehaviorOptions: ptr ConnectionRecoveryBehaviorOptions, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_ConnectionRecoveryBehavior(self, connectionRecoveryBehaviorOptions) + +proc put_ConnectionRecoveryBehavior*( + self: ptr IUIAutomation6, + connectionRecoveryBehaviorOptions: ConnectionRecoveryBehaviorOptions, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_ConnectionRecoveryBehavior(self, connectionRecoveryBehaviorOptions) + +proc get_CoalesceEvents*( + self: ptr IUIAutomation6, coalesceEventsOptions: ptr CoalesceEventsOptions +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.get_CoalesceEvents(self, coalesceEventsOptions) + +proc put_CoalesceEvents*( + self: ptr IUIAutomation6, coalesceEventsOptions: CoalesceEventsOptions +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.put_CoalesceEvents(self, coalesceEventsOptions) + +proc AddActiveTextPositionChangedEventHandler*( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + scope: TreeScope, + cacheRequest: ptr IUIAutomationCacheRequest, + handler: ptr IUIAutomationActiveTextPositionChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.AddActiveTextPositionChangedEventHandler( + self, element, scope, cacheRequest, handler + ) + +proc RemoveActiveTextPositionChangedEventHandler*( + self: ptr IUIAutomation6, + element: ptr IUIAutomationElement, + handler: ptr IUIAutomationActiveTextPositionChangedEventHandler, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveActiveTextPositionChangedEventHandler(self, element, handler) + +converter winimConverterIRawElementProviderSimpleToIUnknown*( + x: ptr IRawElementProviderSimple +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccessibleExToIUnknown*(x: ptr IAccessibleEx): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderSimple2ToIRawElementProviderSimple*( + x: ptr IRawElementProviderSimple2 +): ptr IRawElementProviderSimple = + cast[ptr IRawElementProviderSimple](x) + +converter winimConverterIRawElementProviderSimple2ToIUnknown*( + x: ptr IRawElementProviderSimple2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderSimple3ToIRawElementProviderSimple2*( + x: ptr IRawElementProviderSimple3 +): ptr IRawElementProviderSimple2 = + cast[ptr IRawElementProviderSimple2](x) + +converter winimConverterIRawElementProviderSimple3ToIRawElementProviderSimple*( + x: ptr IRawElementProviderSimple3 +): ptr IRawElementProviderSimple = + cast[ptr IRawElementProviderSimple](x) + +converter winimConverterIRawElementProviderSimple3ToIUnknown*( + x: ptr IRawElementProviderSimple3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderFragmentRootToIUnknown*( + x: ptr IRawElementProviderFragmentRoot +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderFragmentToIUnknown*( + x: ptr IRawElementProviderFragment +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderAdviseEventsToIUnknown*( + x: ptr IRawElementProviderAdviseEvents +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderHwndOverrideToIUnknown*( + x: ptr IRawElementProviderHwndOverride +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProxyProviderWinEventSinkToIUnknown*( + x: ptr IProxyProviderWinEventSink +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIProxyProviderWinEventHandlerToIUnknown*( + x: ptr IProxyProviderWinEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderWindowlessSiteToIUnknown*( + x: ptr IRawElementProviderWindowlessSite +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAccessibleHostingElementProvidersToIUnknown*( + x: ptr IAccessibleHostingElementProviders +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRawElementProviderHostingAccessiblesToIUnknown*( + x: ptr IRawElementProviderHostingAccessibles +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDockProviderToIUnknown*(x: ptr IDockProvider): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIExpandCollapseProviderToIUnknown*( + x: ptr IExpandCollapseProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGridProviderToIUnknown*(x: ptr IGridProvider): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGridItemProviderToIUnknown*( + x: ptr IGridItemProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIInvokeProviderToIUnknown*( + x: ptr IInvokeProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIMultipleViewProviderToIUnknown*( + x: ptr IMultipleViewProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIRangeValueProviderToIUnknown*( + x: ptr IRangeValueProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIScrollItemProviderToIUnknown*( + x: ptr IScrollItemProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISelectionProviderToIUnknown*( + x: ptr ISelectionProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISelectionProvider2ToISelectionProvider*( + x: ptr ISelectionProvider2 +): ptr ISelectionProvider = + cast[ptr ISelectionProvider](x) + +converter winimConverterISelectionProvider2ToIUnknown*( + x: ptr ISelectionProvider2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIScrollProviderToIUnknown*( + x: ptr IScrollProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISelectionItemProviderToIUnknown*( + x: ptr ISelectionItemProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISynchronizedInputProviderToIUnknown*( + x: ptr ISynchronizedInputProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITableProviderToIUnknown*(x: ptr ITableProvider): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITableItemProviderToIUnknown*( + x: ptr ITableItemProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIToggleProviderToIUnknown*( + x: ptr IToggleProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITransformProviderToIUnknown*( + x: ptr ITransformProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIValueProviderToIUnknown*(x: ptr IValueProvider): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWindowProviderToIUnknown*( + x: ptr IWindowProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterILegacyIAccessibleProviderToIUnknown*( + x: ptr ILegacyIAccessibleProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIItemContainerProviderToIUnknown*( + x: ptr IItemContainerProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIVirtualizedItemProviderToIUnknown*( + x: ptr IVirtualizedItemProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIObjectModelProviderToIUnknown*( + x: ptr IObjectModelProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAnnotationProviderToIUnknown*( + x: ptr IAnnotationProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIStylesProviderToIUnknown*( + x: ptr IStylesProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISpreadsheetProviderToIUnknown*( + x: ptr ISpreadsheetProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterISpreadsheetItemProviderToIUnknown*( + x: ptr ISpreadsheetItemProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITransformProvider2ToITransformProvider*( + x: ptr ITransformProvider2 +): ptr ITransformProvider = + cast[ptr ITransformProvider](x) + +converter winimConverterITransformProvider2ToIUnknown*( + x: ptr ITransformProvider2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDragProviderToIUnknown*(x: ptr IDragProvider): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIDropTargetProviderToIUnknown*( + x: ptr IDropTargetProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITextRangeProviderToIUnknown*( + x: ptr ITextRangeProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITextProviderToIUnknown*(x: ptr ITextProvider): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITextProvider2ToITextProvider*( + x: ptr ITextProvider2 +): ptr ITextProvider = + cast[ptr ITextProvider](x) + +converter winimConverterITextProvider2ToIUnknown*(x: ptr ITextProvider2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITextEditProviderToITextProvider*( + x: ptr ITextEditProvider +): ptr ITextProvider = + cast[ptr ITextProvider](x) + +converter winimConverterITextEditProviderToIUnknown*( + x: ptr ITextEditProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITextRangeProvider2ToITextRangeProvider*( + x: ptr ITextRangeProvider2 +): ptr ITextRangeProvider = + cast[ptr ITextRangeProvider](x) + +converter winimConverterITextRangeProvider2ToIUnknown*( + x: ptr ITextRangeProvider2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterITextChildProviderToIUnknown*( + x: ptr ITextChildProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterICustomNavigationProviderToIUnknown*( + x: ptr ICustomNavigationProvider +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationPatternInstanceToIUnknown*( + x: ptr IUIAutomationPatternInstance +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationPatternHandlerToIUnknown*( + x: ptr IUIAutomationPatternHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationRegistrarToIUnknown*( + x: ptr IUIAutomationRegistrar +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElementToIUnknown*( + x: ptr IUIAutomationElement +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElementArrayToIUnknown*( + x: ptr IUIAutomationElementArray +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationConditionToIUnknown*( + x: ptr IUIAutomationCondition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationBoolConditionToIUIAutomationCondition*( + x: ptr IUIAutomationBoolCondition +): ptr IUIAutomationCondition = + cast[ptr IUIAutomationCondition](x) + +converter winimConverterIUIAutomationBoolConditionToIUnknown*( + x: ptr IUIAutomationBoolCondition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationPropertyConditionToIUIAutomationCondition*( + x: ptr IUIAutomationPropertyCondition +): ptr IUIAutomationCondition = + cast[ptr IUIAutomationCondition](x) + +converter winimConverterIUIAutomationPropertyConditionToIUnknown*( + x: ptr IUIAutomationPropertyCondition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationAndConditionToIUIAutomationCondition*( + x: ptr IUIAutomationAndCondition +): ptr IUIAutomationCondition = + cast[ptr IUIAutomationCondition](x) + +converter winimConverterIUIAutomationAndConditionToIUnknown*( + x: ptr IUIAutomationAndCondition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationOrConditionToIUIAutomationCondition*( + x: ptr IUIAutomationOrCondition +): ptr IUIAutomationCondition = + cast[ptr IUIAutomationCondition](x) + +converter winimConverterIUIAutomationOrConditionToIUnknown*( + x: ptr IUIAutomationOrCondition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationNotConditionToIUIAutomationCondition*( + x: ptr IUIAutomationNotCondition +): ptr IUIAutomationCondition = + cast[ptr IUIAutomationCondition](x) + +converter winimConverterIUIAutomationNotConditionToIUnknown*( + x: ptr IUIAutomationNotCondition +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationCacheRequestToIUnknown*( + x: ptr IUIAutomationCacheRequest +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTreeWalkerToIUnknown*( + x: ptr IUIAutomationTreeWalker +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationEventHandlerToIUnknown*( + x: ptr IUIAutomationEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationPropertyChangedEventHandlerToIUnknown*( + x: ptr IUIAutomationPropertyChangedEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationStructureChangedEventHandlerToIUnknown*( + x: ptr IUIAutomationStructureChangedEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationFocusChangedEventHandlerToIUnknown*( + x: ptr IUIAutomationFocusChangedEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextEditTextChangedEventHandlerToIUnknown*( + x: ptr IUIAutomationTextEditTextChangedEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationChangesEventHandlerToIUnknown*( + x: ptr IUIAutomationChangesEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationNotificationEventHandlerToIUnknown*( + x: ptr IUIAutomationNotificationEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationInvokePatternToIUnknown*( + x: ptr IUIAutomationInvokePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationDockPatternToIUnknown*( + x: ptr IUIAutomationDockPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationExpandCollapsePatternToIUnknown*( + x: ptr IUIAutomationExpandCollapsePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationGridPatternToIUnknown*( + x: ptr IUIAutomationGridPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationGridItemPatternToIUnknown*( + x: ptr IUIAutomationGridItemPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationMultipleViewPatternToIUnknown*( + x: ptr IUIAutomationMultipleViewPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationObjectModelPatternToIUnknown*( + x: ptr IUIAutomationObjectModelPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationRangeValuePatternToIUnknown*( + x: ptr IUIAutomationRangeValuePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationScrollPatternToIUnknown*( + x: ptr IUIAutomationScrollPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationScrollItemPatternToIUnknown*( + x: ptr IUIAutomationScrollItemPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationSelectionPatternToIUnknown*( + x: ptr IUIAutomationSelectionPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationSelectionPattern2ToIUIAutomationSelectionPattern*( + x: ptr IUIAutomationSelectionPattern2 +): ptr IUIAutomationSelectionPattern = + cast[ptr IUIAutomationSelectionPattern](x) + +converter winimConverterIUIAutomationSelectionPattern2ToIUnknown*( + x: ptr IUIAutomationSelectionPattern2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationSelectionItemPatternToIUnknown*( + x: ptr IUIAutomationSelectionItemPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationSynchronizedInputPatternToIUnknown*( + x: ptr IUIAutomationSynchronizedInputPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTablePatternToIUnknown*( + x: ptr IUIAutomationTablePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTableItemPatternToIUnknown*( + x: ptr IUIAutomationTableItemPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTogglePatternToIUnknown*( + x: ptr IUIAutomationTogglePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTransformPatternToIUnknown*( + x: ptr IUIAutomationTransformPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationValuePatternToIUnknown*( + x: ptr IUIAutomationValuePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationWindowPatternToIUnknown*( + x: ptr IUIAutomationWindowPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextRangeToIUnknown*( + x: ptr IUIAutomationTextRange +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextRange2ToIUIAutomationTextRange*( + x: ptr IUIAutomationTextRange2 +): ptr IUIAutomationTextRange = + cast[ptr IUIAutomationTextRange](x) + +converter winimConverterIUIAutomationTextRange2ToIUnknown*( + x: ptr IUIAutomationTextRange2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextRange3ToIUIAutomationTextRange2*( + x: ptr IUIAutomationTextRange3 +): ptr IUIAutomationTextRange2 = + cast[ptr IUIAutomationTextRange2](x) + +converter winimConverterIUIAutomationTextRange3ToIUIAutomationTextRange*( + x: ptr IUIAutomationTextRange3 +): ptr IUIAutomationTextRange = + cast[ptr IUIAutomationTextRange](x) + +converter winimConverterIUIAutomationTextRange3ToIUnknown*( + x: ptr IUIAutomationTextRange3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextRangeArrayToIUnknown*( + x: ptr IUIAutomationTextRangeArray +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextPatternToIUnknown*( + x: ptr IUIAutomationTextPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextPattern2ToIUIAutomationTextPattern*( + x: ptr IUIAutomationTextPattern2 +): ptr IUIAutomationTextPattern = + cast[ptr IUIAutomationTextPattern](x) + +converter winimConverterIUIAutomationTextPattern2ToIUnknown*( + x: ptr IUIAutomationTextPattern2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextEditPatternToIUIAutomationTextPattern*( + x: ptr IUIAutomationTextEditPattern +): ptr IUIAutomationTextPattern = + cast[ptr IUIAutomationTextPattern](x) + +converter winimConverterIUIAutomationTextEditPatternToIUnknown*( + x: ptr IUIAutomationTextEditPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationCustomNavigationPatternToIUnknown*( + x: ptr IUIAutomationCustomNavigationPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationActiveTextPositionChangedEventHandlerToIUnknown*( + x: ptr IUIAutomationActiveTextPositionChangedEventHandler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationLegacyIAccessiblePatternToIUnknown*( + x: ptr IUIAutomationLegacyIAccessiblePattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationItemContainerPatternToIUnknown*( + x: ptr IUIAutomationItemContainerPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationVirtualizedItemPatternToIUnknown*( + x: ptr IUIAutomationVirtualizedItemPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationAnnotationPatternToIUnknown*( + x: ptr IUIAutomationAnnotationPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationStylesPatternToIUnknown*( + x: ptr IUIAutomationStylesPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationSpreadsheetPatternToIUnknown*( + x: ptr IUIAutomationSpreadsheetPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationSpreadsheetItemPatternToIUnknown*( + x: ptr IUIAutomationSpreadsheetItemPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTransformPattern2ToIUIAutomationTransformPattern*( + x: ptr IUIAutomationTransformPattern2 +): ptr IUIAutomationTransformPattern = + cast[ptr IUIAutomationTransformPattern](x) + +converter winimConverterIUIAutomationTransformPattern2ToIUnknown*( + x: ptr IUIAutomationTransformPattern2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationTextChildPatternToIUnknown*( + x: ptr IUIAutomationTextChildPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationDragPatternToIUnknown*( + x: ptr IUIAutomationDragPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationDropTargetPatternToIUnknown*( + x: ptr IUIAutomationDropTargetPattern +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement2ToIUIAutomationElement*( + x: ptr IUIAutomationElement2 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement2ToIUnknown*( + x: ptr IUIAutomationElement2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement3ToIUIAutomationElement2*( + x: ptr IUIAutomationElement3 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement3ToIUIAutomationElement*( + x: ptr IUIAutomationElement3 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement3ToIUnknown*( + x: ptr IUIAutomationElement3 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement4ToIUIAutomationElement3*( + x: ptr IUIAutomationElement4 +): ptr IUIAutomationElement3 = + cast[ptr IUIAutomationElement3](x) + +converter winimConverterIUIAutomationElement4ToIUIAutomationElement2*( + x: ptr IUIAutomationElement4 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement4ToIUIAutomationElement*( + x: ptr IUIAutomationElement4 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement4ToIUnknown*( + x: ptr IUIAutomationElement4 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement5ToIUIAutomationElement4*( + x: ptr IUIAutomationElement5 +): ptr IUIAutomationElement4 = + cast[ptr IUIAutomationElement4](x) + +converter winimConverterIUIAutomationElement5ToIUIAutomationElement3*( + x: ptr IUIAutomationElement5 +): ptr IUIAutomationElement3 = + cast[ptr IUIAutomationElement3](x) + +converter winimConverterIUIAutomationElement5ToIUIAutomationElement2*( + x: ptr IUIAutomationElement5 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement5ToIUIAutomationElement*( + x: ptr IUIAutomationElement5 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement5ToIUnknown*( + x: ptr IUIAutomationElement5 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement6ToIUIAutomationElement5*( + x: ptr IUIAutomationElement6 +): ptr IUIAutomationElement5 = + cast[ptr IUIAutomationElement5](x) + +converter winimConverterIUIAutomationElement6ToIUIAutomationElement4*( + x: ptr IUIAutomationElement6 +): ptr IUIAutomationElement4 = + cast[ptr IUIAutomationElement4](x) + +converter winimConverterIUIAutomationElement6ToIUIAutomationElement3*( + x: ptr IUIAutomationElement6 +): ptr IUIAutomationElement3 = + cast[ptr IUIAutomationElement3](x) + +converter winimConverterIUIAutomationElement6ToIUIAutomationElement2*( + x: ptr IUIAutomationElement6 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement6ToIUIAutomationElement*( + x: ptr IUIAutomationElement6 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement6ToIUnknown*( + x: ptr IUIAutomationElement6 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement7ToIUIAutomationElement6*( + x: ptr IUIAutomationElement7 +): ptr IUIAutomationElement6 = + cast[ptr IUIAutomationElement6](x) + +converter winimConverterIUIAutomationElement7ToIUIAutomationElement5*( + x: ptr IUIAutomationElement7 +): ptr IUIAutomationElement5 = + cast[ptr IUIAutomationElement5](x) + +converter winimConverterIUIAutomationElement7ToIUIAutomationElement4*( + x: ptr IUIAutomationElement7 +): ptr IUIAutomationElement4 = + cast[ptr IUIAutomationElement4](x) + +converter winimConverterIUIAutomationElement7ToIUIAutomationElement3*( + x: ptr IUIAutomationElement7 +): ptr IUIAutomationElement3 = + cast[ptr IUIAutomationElement3](x) + +converter winimConverterIUIAutomationElement7ToIUIAutomationElement2*( + x: ptr IUIAutomationElement7 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement7ToIUIAutomationElement*( + x: ptr IUIAutomationElement7 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement7ToIUnknown*( + x: ptr IUIAutomationElement7 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement7*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement7 = + cast[ptr IUIAutomationElement7](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement6*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement6 = + cast[ptr IUIAutomationElement6](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement5*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement5 = + cast[ptr IUIAutomationElement5](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement4*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement4 = + cast[ptr IUIAutomationElement4](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement3*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement3 = + cast[ptr IUIAutomationElement3](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement2*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement8ToIUIAutomationElement*( + x: ptr IUIAutomationElement8 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement8ToIUnknown*( + x: ptr IUIAutomationElement8 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement8*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement8 = + cast[ptr IUIAutomationElement8](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement7*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement7 = + cast[ptr IUIAutomationElement7](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement6*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement6 = + cast[ptr IUIAutomationElement6](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement5*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement5 = + cast[ptr IUIAutomationElement5](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement4*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement4 = + cast[ptr IUIAutomationElement4](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement3*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement3 = + cast[ptr IUIAutomationElement3](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement2*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement2 = + cast[ptr IUIAutomationElement2](x) + +converter winimConverterIUIAutomationElement9ToIUIAutomationElement*( + x: ptr IUIAutomationElement9 +): ptr IUIAutomationElement = + cast[ptr IUIAutomationElement](x) + +converter winimConverterIUIAutomationElement9ToIUnknown*( + x: ptr IUIAutomationElement9 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationProxyFactoryToIUnknown*( + x: ptr IUIAutomationProxyFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationProxyFactoryEntryToIUnknown*( + x: ptr IUIAutomationProxyFactoryEntry +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationProxyFactoryMappingToIUnknown*( + x: ptr IUIAutomationProxyFactoryMapping +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationEventHandlerGroupToIUnknown*( + x: ptr IUIAutomationEventHandlerGroup +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomationToIUnknown*(x: ptr IUIAutomation): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomation2ToIUIAutomation*( + x: ptr IUIAutomation2 +): ptr IUIAutomation = + cast[ptr IUIAutomation](x) + +converter winimConverterIUIAutomation2ToIUnknown*(x: ptr IUIAutomation2): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomation3ToIUIAutomation2*( + x: ptr IUIAutomation3 +): ptr IUIAutomation2 = + cast[ptr IUIAutomation2](x) + +converter winimConverterIUIAutomation3ToIUIAutomation*( + x: ptr IUIAutomation3 +): ptr IUIAutomation = + cast[ptr IUIAutomation](x) + +converter winimConverterIUIAutomation3ToIUnknown*(x: ptr IUIAutomation3): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomation4ToIUIAutomation3*( + x: ptr IUIAutomation4 +): ptr IUIAutomation3 = + cast[ptr IUIAutomation3](x) + +converter winimConverterIUIAutomation4ToIUIAutomation2*( + x: ptr IUIAutomation4 +): ptr IUIAutomation2 = + cast[ptr IUIAutomation2](x) + +converter winimConverterIUIAutomation4ToIUIAutomation*( + x: ptr IUIAutomation4 +): ptr IUIAutomation = + cast[ptr IUIAutomation](x) + +converter winimConverterIUIAutomation4ToIUnknown*(x: ptr IUIAutomation4): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomation5ToIUIAutomation4*( + x: ptr IUIAutomation5 +): ptr IUIAutomation4 = + cast[ptr IUIAutomation4](x) + +converter winimConverterIUIAutomation5ToIUIAutomation3*( + x: ptr IUIAutomation5 +): ptr IUIAutomation3 = + cast[ptr IUIAutomation3](x) + +converter winimConverterIUIAutomation5ToIUIAutomation2*( + x: ptr IUIAutomation5 +): ptr IUIAutomation2 = + cast[ptr IUIAutomation2](x) + +converter winimConverterIUIAutomation5ToIUIAutomation*( + x: ptr IUIAutomation5 +): ptr IUIAutomation = + cast[ptr IUIAutomation](x) + +converter winimConverterIUIAutomation5ToIUnknown*(x: ptr IUIAutomation5): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIUIAutomation6ToIUIAutomation5*( + x: ptr IUIAutomation6 +): ptr IUIAutomation5 = + cast[ptr IUIAutomation5](x) + +converter winimConverterIUIAutomation6ToIUIAutomation4*( + x: ptr IUIAutomation6 +): ptr IUIAutomation4 = + cast[ptr IUIAutomation4](x) + +converter winimConverterIUIAutomation6ToIUIAutomation3*( + x: ptr IUIAutomation6 +): ptr IUIAutomation3 = + cast[ptr IUIAutomation3](x) + +converter winimConverterIUIAutomation6ToIUIAutomation2*( + x: ptr IUIAutomation6 +): ptr IUIAutomation2 = + cast[ptr IUIAutomation2](x) + +converter winimConverterIUIAutomation6ToIUIAutomation*( + x: ptr IUIAutomation6 +): ptr IUIAutomation = + cast[ptr IUIAutomation](x) + +converter winimConverterIUIAutomation6ToIUnknown*(x: ptr IUIAutomation6): ptr IUnknown = + cast[ptr IUnknown](x) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/usp10.nim --- a/semicongine/thirdparty/winim/winim/inc/usp10.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/usp10.nim Thu Aug 22 18:32:21 2024 +0700 @@ -13,6 +13,7 @@ SCRIPT_CACHE* = pointer SCRIPT_STRING_ANALYSIS* = pointer OPENTYPE_TAG* = ULONG + const USPBUILD* = 0400 SCRIPT_UNDEFINED* = 0 @@ -66,75 +67,83 @@ SCRIPT_JUSTIFY_ARABIC_SEEN_M* = 15 type SCRIPT_CONTROL* {.pure.} = object - uDefaultLanguage* {.bitsize:16.}: DWORD - fContextDigits* {.bitsize:1.}: DWORD - fInvertPreBoundDir* {.bitsize:1.}: DWORD - fInvertPostBoundDir* {.bitsize:1.}: DWORD - fLinkStringBefore* {.bitsize:1.}: DWORD - fLinkStringAfter* {.bitsize:1.}: DWORD - fNeutralOverride* {.bitsize:1.}: DWORD - fNumericOverride* {.bitsize:1.}: DWORD - fLegacyBidiClass* {.bitsize:1.}: DWORD - fMergeNeutralItems* {.bitsize:1.}: DWORD - fUseStandardBidi* {.bitsize:1.}: DWORD - fReserved* {.bitsize:6.}: DWORD + uDefaultLanguage* {.bitsize: 16.}: DWORD + fContextDigits* {.bitsize: 1.}: DWORD + fInvertPreBoundDir* {.bitsize: 1.}: DWORD + fInvertPostBoundDir* {.bitsize: 1.}: DWORD + fLinkStringBefore* {.bitsize: 1.}: DWORD + fLinkStringAfter* {.bitsize: 1.}: DWORD + fNeutralOverride* {.bitsize: 1.}: DWORD + fNumericOverride* {.bitsize: 1.}: DWORD + fLegacyBidiClass* {.bitsize: 1.}: DWORD + fMergeNeutralItems* {.bitsize: 1.}: DWORD + fUseStandardBidi* {.bitsize: 1.}: DWORD + fReserved* {.bitsize: 6.}: DWORD + SCRIPT_STATE* {.pure.} = object - uBidiLevel* {.bitsize:5.}: WORD - fOverrideDirection* {.bitsize:1.}: WORD - fInhibitSymSwap* {.bitsize:1.}: WORD - fCharShape* {.bitsize:1.}: WORD - fDigitSubstitute* {.bitsize:1.}: WORD - fInhibitLigate* {.bitsize:1.}: WORD - fDisplayZWG* {.bitsize:1.}: WORD - fArabicNumContext* {.bitsize:1.}: WORD - fGcpClusters* {.bitsize:1.}: WORD - fReserved* {.bitsize:1.}: WORD - fEngineReserved* {.bitsize:2.}: WORD + uBidiLevel* {.bitsize: 5.}: WORD + fOverrideDirection* {.bitsize: 1.}: WORD + fInhibitSymSwap* {.bitsize: 1.}: WORD + fCharShape* {.bitsize: 1.}: WORD + fDigitSubstitute* {.bitsize: 1.}: WORD + fInhibitLigate* {.bitsize: 1.}: WORD + fDisplayZWG* {.bitsize: 1.}: WORD + fArabicNumContext* {.bitsize: 1.}: WORD + fGcpClusters* {.bitsize: 1.}: WORD + fReserved* {.bitsize: 1.}: WORD + fEngineReserved* {.bitsize: 2.}: WORD + SCRIPT_ANALYSIS* {.pure.} = object - eScript* {.bitsize:10.}: WORD - fRTL* {.bitsize:1.}: WORD - fLayoutRTL* {.bitsize:1.}: WORD - fLinkBefore* {.bitsize:1.}: WORD - fLinkAfter* {.bitsize:1.}: WORD - fLogicalOrder* {.bitsize:1.}: WORD - fNoGlyphIndex* {.bitsize:1.}: WORD + eScript* {.bitsize: 10.}: WORD + fRTL* {.bitsize: 1.}: WORD + fLayoutRTL* {.bitsize: 1.}: WORD + fLinkBefore* {.bitsize: 1.}: WORD + fLinkAfter* {.bitsize: 1.}: WORD + fLogicalOrder* {.bitsize: 1.}: WORD + fNoGlyphIndex* {.bitsize: 1.}: WORD s*: SCRIPT_STATE + SCRIPT_ITEM* {.pure.} = object iCharPos*: int32 a*: SCRIPT_ANALYSIS + SCRIPT_VISATTR* {.pure.} = object - uJustification* {.bitsize:4.}: WORD - fClusterStart* {.bitsize:1.}: WORD - fDiacritic* {.bitsize:1.}: WORD - fZeroWidth* {.bitsize:1.}: WORD - fReserved* {.bitsize:1.}: WORD - fShapeReserved* {.bitsize:8.}: WORD + uJustification* {.bitsize: 4.}: WORD + fClusterStart* {.bitsize: 1.}: WORD + fDiacritic* {.bitsize: 1.}: WORD + fZeroWidth* {.bitsize: 1.}: WORD + fReserved* {.bitsize: 1.}: WORD + fShapeReserved* {.bitsize: 8.}: WORD + GOFFSET* {.pure.} = object du*: LONG dv*: LONG + SCRIPT_LOGATTR* {.pure.} = object - fSoftBreak* {.bitsize:1.}: BYTE - fWhiteSpace* {.bitsize:1.}: BYTE - fCharStop* {.bitsize:1.}: BYTE - fWordStop* {.bitsize:1.}: BYTE - fInvalid* {.bitsize:1.}: BYTE - fReserved* {.bitsize:3.}: BYTE + fSoftBreak* {.bitsize: 1.}: BYTE + fWhiteSpace* {.bitsize: 1.}: BYTE + fCharStop* {.bitsize: 1.}: BYTE + fWordStop* {.bitsize: 1.}: BYTE + fInvalid* {.bitsize: 1.}: BYTE + fReserved* {.bitsize: 3.}: BYTE + SCRIPT_PROPERTIES* {.pure.} = object - langid* {.bitsize:16.}: DWORD - fNumeric* {.bitsize:1.}: DWORD - fComplex* {.bitsize:1.}: DWORD - fNeedsWordBreaking* {.bitsize:1.}: DWORD - fNeedsCaretInfo* {.bitsize:1.}: DWORD - bCharSet* {.bitsize:8.}: DWORD - fControl* {.bitsize:1.}: DWORD - fPrivateUseArea* {.bitsize:1.}: DWORD - fNeedsCharacterJustify* {.bitsize:1.}: DWORD - fInvalidGlyph* {.bitsize:1.}: DWORD - fInvalidLogAttr* {.bitsize:1.}: DWORD - fCDM* {.bitsize:1.}: DWORD - fAmbiguousCharSet* {.bitsize:1.}: DWORD - fClusterSizeVaries* {.bitsize:1.}: DWORD - fRejectInvalid* {.bitsize:1.}: DWORD + langid* {.bitsize: 16.}: DWORD + fNumeric* {.bitsize: 1.}: DWORD + fComplex* {.bitsize: 1.}: DWORD + fNeedsWordBreaking* {.bitsize: 1.}: DWORD + fNeedsCaretInfo* {.bitsize: 1.}: DWORD + bCharSet* {.bitsize: 8.}: DWORD + fControl* {.bitsize: 1.}: DWORD + fPrivateUseArea* {.bitsize: 1.}: DWORD + fNeedsCharacterJustify* {.bitsize: 1.}: DWORD + fInvalidGlyph* {.bitsize: 1.}: DWORD + fInvalidLogAttr* {.bitsize: 1.}: DWORD + fCDM* {.bitsize: 1.}: DWORD + fAmbiguousCharSet* {.bitsize: 1.}: DWORD + fClusterSizeVaries* {.bitsize: 1.}: DWORD + fRejectInvalid* {.bitsize: 1.}: DWORD + SCRIPT_FONTPROPERTIES* {.pure.} = object cBytes*: int32 wgBlank*: WORD @@ -142,65 +151,374 @@ wgInvalid*: WORD wgKashida*: WORD iKashidaWidth*: int32 + SCRIPT_TABDEF* {.pure.} = object cTabStops*: int32 iScale*: int32 pTabStops*: ptr int32 iTabOrigin*: int32 + SCRIPT_DIGITSUBSTITUTE* {.pure.} = object - NationalDigitLanguage* {.bitsize:16.}: DWORD - TraditionalDigitLanguage* {.bitsize:16.}: DWORD - DigitSubstitute* {.bitsize:8.}: DWORD + NationalDigitLanguage* {.bitsize: 16.}: DWORD + TraditionalDigitLanguage* {.bitsize: 16.}: DWORD + DigitSubstitute* {.bitsize: 8.}: DWORD dwReserved*: DWORD + OPENTYPE_FEATURE_RECORD* {.pure.} = object tagFeature*: OPENTYPE_TAG lParameter*: LONG + TEXTRANGE_PROPERTIES* {.pure.} = object potfRecords*: ptr OPENTYPE_FEATURE_RECORD cotfRecords*: int32 + SCRIPT_CHARPROP* {.pure.} = object - fCanGlyphAlone* {.bitsize:1.}: WORD - reserved* {.bitsize:15.}: WORD + fCanGlyphAlone* {.bitsize: 1.}: WORD + reserved* {.bitsize: 15.}: WORD + SCRIPT_GLYPHPROP* {.pure.} = object sva*: SCRIPT_VISATTR reserved*: WORD -proc ScriptFreeCache*(psc: ptr SCRIPT_CACHE): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptItemize*(pwcInChars: ptr WCHAR, cInChars: int32, cMaxItems: int32, psControl: ptr SCRIPT_CONTROL, psState: ptr SCRIPT_STATE, pItems: ptr SCRIPT_ITEM, pcItems: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptLayout*(cRuns: int32, pbLevel: ptr BYTE, piVisualToLogical: ptr int32, piLogicalToVisual: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptShape*(hdc: HDC, psc: ptr SCRIPT_CACHE, pwcChars: ptr WCHAR, cChars: int32, cMaxGlyphs: int32, psa: ptr SCRIPT_ANALYSIS, pwOutGlyphs: ptr WORD, pwLogClust: ptr WORD, psva: ptr SCRIPT_VISATTR, pcGlyphs: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptPlace*(hdc: HDC, psc: ptr SCRIPT_CACHE, pwGlyphs: ptr WORD, cGlyphs: int32, psva: ptr SCRIPT_VISATTR, psa: ptr SCRIPT_ANALYSIS, piAdvance: ptr int32, pGoffset: ptr GOFFSET, pABC: ptr ABC): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptTextOut*(hdc: HDC, psc: ptr SCRIPT_CACHE, x: int32, y: int32, fuOptions: UINT, lprc: ptr RECT, psa: ptr SCRIPT_ANALYSIS, pwcReserved: ptr WCHAR, iReserved: int32, pwGlyphs: ptr WORD, cGlyphs: int32, piAdvance: ptr int32, piJustify: ptr int32, pGoffset: ptr GOFFSET): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptJustify*(psva: ptr SCRIPT_VISATTR, piAdvance: ptr int32, cGlyphs: int32, iDx: int32, iMinKashida: int32, piJustify: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptBreak*(pwcChars: ptr WCHAR, cChars: int32, psa: ptr SCRIPT_ANALYSIS, psla: ptr SCRIPT_LOGATTR): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptCPtoX*(iCP: int32, fTrailing: WINBOOL, cChars: int32, cGlyphs: int32, pwLogClust: ptr WORD, psva: ptr SCRIPT_VISATTR, piAdvance: ptr int32, psa: ptr SCRIPT_ANALYSIS, piX: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptXtoCP*(iX: int32, cChars: int32, cGlyphs: int32, pwLogClust: ptr WORD, psva: ptr SCRIPT_VISATTR, piAdvance: ptr int32, psa: ptr SCRIPT_ANALYSIS, piCP: ptr int32, piTrailing: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetLogicalWidths*(psa: ptr SCRIPT_ANALYSIS, cChars: int32, cGlyphs: int32, piGlyphWidth: ptr int32, pwLogClust: ptr WORD, psva: ptr SCRIPT_VISATTR, piDx: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptApplyLogicalWidth*(piDx: ptr int32, cChars: int32, cGlyphs: int32, pwLogClust: ptr WORD, psva: ptr SCRIPT_VISATTR, piAdvance: ptr int32, psa: ptr SCRIPT_ANALYSIS, pABC: ptr ABC, piJustify: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetCMap*(hdc: HDC, psc: ptr SCRIPT_CACHE, pwcInChars: ptr WCHAR, cChars: int32, dwFlags: DWORD, pwOutGlyphs: ptr WORD): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetGlyphABCWidth*(hdc: HDC, psc: ptr SCRIPT_CACHE, wGlyph: WORD, pABC: ptr ABC): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetProperties*(ppSp: ptr ptr ptr SCRIPT_PROPERTIES, piNumScripts: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetFontProperties*(hdc: HDC, psc: ptr SCRIPT_CACHE, sfp: ptr SCRIPT_FONTPROPERTIES): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptCacheGetHeight*(hdc: HDC, psc: ptr SCRIPT_CACHE, tmHeight: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringAnalyse*(hdc: HDC, pString: pointer, cString: int32, cGlyphs: int32, iCharset: int32, dwFlags: DWORD, iReqWidth: int32, psControl: ptr SCRIPT_CONTROL, psState: ptr SCRIPT_STATE, piDx: ptr int32, pTabdef: ptr SCRIPT_TABDEF, pbInClass: ptr BYTE, pssa: ptr SCRIPT_STRING_ANALYSIS): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringFree*(pssa: ptr SCRIPT_STRING_ANALYSIS): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptString_pSize*(ssa: SCRIPT_STRING_ANALYSIS): ptr SIZE {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptString_pcOutChars*(ssa: SCRIPT_STRING_ANALYSIS): ptr int32 {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptString_pLogAttr*(ssa: SCRIPT_STRING_ANALYSIS): ptr SCRIPT_LOGATTR {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringGetOrder*(ssa: SCRIPT_STRING_ANALYSIS, puOrder: ptr UINT): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringCPtoX*(ssa: SCRIPT_STRING_ANALYSIS, icp: int32, fTrailing: WINBOOL, pX: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringXtoCP*(ssa: SCRIPT_STRING_ANALYSIS, iX: int32, piCh: ptr int32, piTrailing: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringGetLogicalWidths*(ssa: SCRIPT_STRING_ANALYSIS, piDx: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringValidate*(ssa: SCRIPT_STRING_ANALYSIS): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptStringOut*(ssa: SCRIPT_STRING_ANALYSIS, iX: int32, iY: int32, uOptions: UINT, prc: ptr RECT, iMinSel: int32, iMaxSel: int32, fDisabled: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptIsComplex*(pwcInChars: ptr WCHAR, cInChars: int32, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptRecordDigitSubstitution*(Locale: LCID, psds: ptr SCRIPT_DIGITSUBSTITUTE): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptApplyDigitSubstitution*(psds: ptr SCRIPT_DIGITSUBSTITUTE, psc: ptr SCRIPT_CONTROL, pss: ptr SCRIPT_STATE): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptShapeOpenType*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, tagLangSys: OPENTYPE_TAG, rcRangeChars: ptr int32, rpRangeProperties: ptr ptr TEXTRANGE_PROPERTIES, cRanges: int32, pwcChars: ptr WCHAR, cChars: int32, cMaxGlyphs: int32, pwLogClust: ptr WORD, pCharProps: ptr SCRIPT_CHARPROP, pwOutGlyphs: ptr WORD, pOutGlyphProps: ptr SCRIPT_GLYPHPROP, pcGlyphs: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptPlaceOpenType*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, tagLangSys: OPENTYPE_TAG, rcRangeChars: ptr int32, rpRangeProperties: ptr ptr TEXTRANGE_PROPERTIES, cRanges: int32, pwcChars: ptr WCHAR, pwLogClust: ptr WORD, pCharProps: ptr SCRIPT_CHARPROP, cChars: int32, pwGlyphs: ptr WORD, pGlyphProps: ptr SCRIPT_GLYPHPROP, cGlyphs: int32, piAdvance: ptr int32, pGoffset: ptr GOFFSET, pABC: ptr ABC): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptItemizeOpenType*(pwcInChars: ptr WCHAR, cInChars: int32, cMaxItems: int32, psControl: ptr SCRIPT_CONTROL, psState: ptr SCRIPT_STATE, pItems: ptr SCRIPT_ITEM, pScriptTags: ptr OPENTYPE_TAG, pcItems: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetFontScriptTags*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, cMaxTags: int32, pScriptTags: ptr OPENTYPE_TAG, pcTags: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetFontLanguageTags*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, cMaxTags: int32, pLangsysTags: ptr OPENTYPE_TAG, pcTags: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetFontFeatureTags*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, tagLangSys: OPENTYPE_TAG, cMaxTags: int32, pFeatureTags: ptr OPENTYPE_TAG, pcTags: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptGetFontAlternateGlyphs*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, tagLangSys: OPENTYPE_TAG, tagFeature: OPENTYPE_TAG, wGlyphId: WORD, cMaxAlternates: int32, pAlternateGlyphs: ptr WORD, pcAlternates: ptr int32): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptSubstituteSingleGlyph*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, tagLangSys: OPENTYPE_TAG, tagFeature: OPENTYPE_TAG, lParameter: LONG, wGlyphId: WORD, pwOutGlyphId: ptr WORD): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} -proc ScriptPositionSingleGlyph*(hdc: HDC, psc: ptr SCRIPT_CACHE, psa: ptr SCRIPT_ANALYSIS, tagScript: OPENTYPE_TAG, tagLangSys: OPENTYPE_TAG, tagFeature: OPENTYPE_TAG, lParameter: LONG, wGlyphId: WORD, iAdvance: int32, GOffset: GOFFSET, piOutAdvance: ptr int32, pOutGoffset: ptr GOFFSET): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptFreeCache*( + psc: ptr SCRIPT_CACHE +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptItemize*( + pwcInChars: ptr WCHAR, + cInChars: int32, + cMaxItems: int32, + psControl: ptr SCRIPT_CONTROL, + psState: ptr SCRIPT_STATE, + pItems: ptr SCRIPT_ITEM, + pcItems: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptLayout*( + cRuns: int32, + pbLevel: ptr BYTE, + piVisualToLogical: ptr int32, + piLogicalToVisual: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptShape*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + pwcChars: ptr WCHAR, + cChars: int32, + cMaxGlyphs: int32, + psa: ptr SCRIPT_ANALYSIS, + pwOutGlyphs: ptr WORD, + pwLogClust: ptr WORD, + psva: ptr SCRIPT_VISATTR, + pcGlyphs: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptPlace*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + pwGlyphs: ptr WORD, + cGlyphs: int32, + psva: ptr SCRIPT_VISATTR, + psa: ptr SCRIPT_ANALYSIS, + piAdvance: ptr int32, + pGoffset: ptr GOFFSET, + pABC: ptr ABC, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptTextOut*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + x: int32, + y: int32, + fuOptions: UINT, + lprc: ptr RECT, + psa: ptr SCRIPT_ANALYSIS, + pwcReserved: ptr WCHAR, + iReserved: int32, + pwGlyphs: ptr WORD, + cGlyphs: int32, + piAdvance: ptr int32, + piJustify: ptr int32, + pGoffset: ptr GOFFSET, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptJustify*( + psva: ptr SCRIPT_VISATTR, + piAdvance: ptr int32, + cGlyphs: int32, + iDx: int32, + iMinKashida: int32, + piJustify: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptBreak*( + pwcChars: ptr WCHAR, cChars: int32, psa: ptr SCRIPT_ANALYSIS, psla: ptr SCRIPT_LOGATTR +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptCPtoX*( + iCP: int32, + fTrailing: WINBOOL, + cChars: int32, + cGlyphs: int32, + pwLogClust: ptr WORD, + psva: ptr SCRIPT_VISATTR, + piAdvance: ptr int32, + psa: ptr SCRIPT_ANALYSIS, + piX: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptXtoCP*( + iX: int32, + cChars: int32, + cGlyphs: int32, + pwLogClust: ptr WORD, + psva: ptr SCRIPT_VISATTR, + piAdvance: ptr int32, + psa: ptr SCRIPT_ANALYSIS, + piCP: ptr int32, + piTrailing: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetLogicalWidths*( + psa: ptr SCRIPT_ANALYSIS, + cChars: int32, + cGlyphs: int32, + piGlyphWidth: ptr int32, + pwLogClust: ptr WORD, + psva: ptr SCRIPT_VISATTR, + piDx: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptApplyLogicalWidth*( + piDx: ptr int32, + cChars: int32, + cGlyphs: int32, + pwLogClust: ptr WORD, + psva: ptr SCRIPT_VISATTR, + piAdvance: ptr int32, + psa: ptr SCRIPT_ANALYSIS, + pABC: ptr ABC, + piJustify: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetCMap*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + pwcInChars: ptr WCHAR, + cChars: int32, + dwFlags: DWORD, + pwOutGlyphs: ptr WORD, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetGlyphABCWidth*( + hdc: HDC, psc: ptr SCRIPT_CACHE, wGlyph: WORD, pABC: ptr ABC +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetProperties*( + ppSp: ptr ptr ptr SCRIPT_PROPERTIES, piNumScripts: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetFontProperties*( + hdc: HDC, psc: ptr SCRIPT_CACHE, sfp: ptr SCRIPT_FONTPROPERTIES +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptCacheGetHeight*( + hdc: HDC, psc: ptr SCRIPT_CACHE, tmHeight: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringAnalyse*( + hdc: HDC, + pString: pointer, + cString: int32, + cGlyphs: int32, + iCharset: int32, + dwFlags: DWORD, + iReqWidth: int32, + psControl: ptr SCRIPT_CONTROL, + psState: ptr SCRIPT_STATE, + piDx: ptr int32, + pTabdef: ptr SCRIPT_TABDEF, + pbInClass: ptr BYTE, + pssa: ptr SCRIPT_STRING_ANALYSIS, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringFree*( + pssa: ptr SCRIPT_STRING_ANALYSIS +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptString_pSize*( + ssa: SCRIPT_STRING_ANALYSIS +): ptr SIZE {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptString_pcOutChars*( + ssa: SCRIPT_STRING_ANALYSIS +): ptr int32 {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptString_pLogAttr*( + ssa: SCRIPT_STRING_ANALYSIS +): ptr SCRIPT_LOGATTR {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringGetOrder*( + ssa: SCRIPT_STRING_ANALYSIS, puOrder: ptr UINT +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringCPtoX*( + ssa: SCRIPT_STRING_ANALYSIS, icp: int32, fTrailing: WINBOOL, pX: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringXtoCP*( + ssa: SCRIPT_STRING_ANALYSIS, iX: int32, piCh: ptr int32, piTrailing: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringGetLogicalWidths*( + ssa: SCRIPT_STRING_ANALYSIS, piDx: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringValidate*( + ssa: SCRIPT_STRING_ANALYSIS +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptStringOut*( + ssa: SCRIPT_STRING_ANALYSIS, + iX: int32, + iY: int32, + uOptions: UINT, + prc: ptr RECT, + iMinSel: int32, + iMaxSel: int32, + fDisabled: WINBOOL, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptIsComplex*( + pwcInChars: ptr WCHAR, cInChars: int32, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptRecordDigitSubstitution*( + Locale: LCID, psds: ptr SCRIPT_DIGITSUBSTITUTE +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptApplyDigitSubstitution*( + psds: ptr SCRIPT_DIGITSUBSTITUTE, psc: ptr SCRIPT_CONTROL, pss: ptr SCRIPT_STATE +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptShapeOpenType*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + tagLangSys: OPENTYPE_TAG, + rcRangeChars: ptr int32, + rpRangeProperties: ptr ptr TEXTRANGE_PROPERTIES, + cRanges: int32, + pwcChars: ptr WCHAR, + cChars: int32, + cMaxGlyphs: int32, + pwLogClust: ptr WORD, + pCharProps: ptr SCRIPT_CHARPROP, + pwOutGlyphs: ptr WORD, + pOutGlyphProps: ptr SCRIPT_GLYPHPROP, + pcGlyphs: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptPlaceOpenType*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + tagLangSys: OPENTYPE_TAG, + rcRangeChars: ptr int32, + rpRangeProperties: ptr ptr TEXTRANGE_PROPERTIES, + cRanges: int32, + pwcChars: ptr WCHAR, + pwLogClust: ptr WORD, + pCharProps: ptr SCRIPT_CHARPROP, + cChars: int32, + pwGlyphs: ptr WORD, + pGlyphProps: ptr SCRIPT_GLYPHPROP, + cGlyphs: int32, + piAdvance: ptr int32, + pGoffset: ptr GOFFSET, + pABC: ptr ABC, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptItemizeOpenType*( + pwcInChars: ptr WCHAR, + cInChars: int32, + cMaxItems: int32, + psControl: ptr SCRIPT_CONTROL, + psState: ptr SCRIPT_STATE, + pItems: ptr SCRIPT_ITEM, + pScriptTags: ptr OPENTYPE_TAG, + pcItems: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetFontScriptTags*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + cMaxTags: int32, + pScriptTags: ptr OPENTYPE_TAG, + pcTags: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetFontLanguageTags*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + cMaxTags: int32, + pLangsysTags: ptr OPENTYPE_TAG, + pcTags: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetFontFeatureTags*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + tagLangSys: OPENTYPE_TAG, + cMaxTags: int32, + pFeatureTags: ptr OPENTYPE_TAG, + pcTags: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptGetFontAlternateGlyphs*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + tagLangSys: OPENTYPE_TAG, + tagFeature: OPENTYPE_TAG, + wGlyphId: WORD, + cMaxAlternates: int32, + pAlternateGlyphs: ptr WORD, + pcAlternates: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptSubstituteSingleGlyph*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + tagLangSys: OPENTYPE_TAG, + tagFeature: OPENTYPE_TAG, + lParameter: LONG, + wGlyphId: WORD, + pwOutGlyphId: ptr WORD, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} + +proc ScriptPositionSingleGlyph*( + hdc: HDC, + psc: ptr SCRIPT_CACHE, + psa: ptr SCRIPT_ANALYSIS, + tagScript: OPENTYPE_TAG, + tagLangSys: OPENTYPE_TAG, + tagFeature: OPENTYPE_TAG, + lParameter: LONG, + wGlyphId: WORD, + iAdvance: int32, + GOffset: GOFFSET, + piOutAdvance: ptr int32, + pOutGoffset: ptr GOFFSET, +): HRESULT {.winapi, stdcall, dynlib: "usp10", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/uxtheme.nim --- a/semicongine/thirdparty/winim/winim/inc/uxtheme.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/uxtheme.nim Thu Aug 22 18:32:21 2024 +0700 @@ -23,18 +23,28 @@ dwFlags*: DWORD prcExclude*: ptr RECT pBlendFunction*: ptr BLENDFUNCTION + PBP_PAINTPARAMS* = ptr BP_PAINTPARAMS BP_ANIMATIONPARAMS* {.pure.} = object cbSize*: DWORD dwFlags*: DWORD style*: BP_ANIMATIONSTYLE dwDuration*: DWORD + PBP_ANIMATIONPARAMS* = ptr BP_ANIMATIONPARAMS WTA_OPTIONS* {.pure.} = object dwFlags*: DWORD dwMask*: DWORD + PWTA_OPTIONS* = ptr WTA_OPTIONS - DTT_CALLBACK_PROC* = proc (hdc: HDC, pszText: LPWSTR, cchText: int32, prc: LPRECT, dwFlags: UINT, lParam: LPARAM): int32 {.stdcall.} + DTT_CALLBACK_PROC* = proc( + hdc: HDC, + pszText: LPWSTR, + cchText: int32, + prc: LPRECT, + dwFlags: UINT, + lParam: LPARAM, + ): int32 {.stdcall.} DTTOPTS* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD @@ -51,25 +61,30 @@ iGlowSize*: int32 pfnDrawTextCallback*: DTT_CALLBACK_PROC lParam*: LPARAM + PDTTOPTS* = ptr DTTOPTS MARGINS* {.pure.} = object cxLeftWidth*: int32 cxRightWidth*: int32 cyTopHeight*: int32 cyBottomHeight*: int32 + PMARGINS* = ptr MARGINS -const - MAX_INTLIST_COUNT* = 402 + +const MAX_INTLIST_COUNT* = 402 type INTLIST* {.pure.} = object iValueCount*: int32 iValues*: array[MAX_INTLIST_COUNT, int32] + PINTLIST* = ptr INTLIST DTBGOPTS* {.pure.} = object dwSize*: DWORD dwFlags*: DWORD rcClip*: RECT + PDTBGOPTS* = ptr DTBGOPTS + const GBF_DIRECT* = 0x00000001 GBF_COPY* = 0x00000002 @@ -90,7 +105,8 @@ WTNCA_NODRAWICON* = 0x00000002 WTNCA_NOSYSMENU* = 0x00000004 WTNCA_NOMIRRORHELP* = 0x00000008 - WTNCA_VALIDBITS* = WTNCA_NODRAWCAPTION or WTNCA_NODRAWICON or WTNCA_NOSYSMENU or WTNCA_NOMIRRORHELP + WTNCA_VALIDBITS* = + WTNCA_NODRAWCAPTION or WTNCA_NODRAWICON or WTNCA_NOSYSMENU or WTNCA_NOMIRRORHELP OTD_FORCE_RECT_SIZING* = 0x00000001 OTD_NONCLIENT* = 0x00000002 OTD_VALIDBITS* = OTD_FORCE_RECT_SIZING or OTD_NONCLIENT @@ -109,7 +125,10 @@ DTT_GLOWSIZE* = 1 shl 11 DTT_CALLBACK* = 1 shl 12 DTT_COMPOSITED* = 1 shl 13 - DTT_VALIDBITS* = DTT_TEXTCOLOR or DTT_BORDERCOLOR or DTT_SHADOWCOLOR or DTT_SHADOWTYPE or DTT_SHADOWOFFSET or DTT_BORDERSIZE or DTT_FONTPROP or DTT_COLORPROP or DTT_STATEID or DTT_CALCRECT or DTT_APPLYOVERLAY or DTT_GLOWSIZE or DTT_COMPOSITED + DTT_VALIDBITS* = + DTT_TEXTCOLOR or DTT_BORDERCOLOR or DTT_SHADOWCOLOR or DTT_SHADOWTYPE or + DTT_SHADOWOFFSET or DTT_BORDERSIZE or DTT_FONTPROP or DTT_COLORPROP or DTT_STATEID or + DTT_CALCRECT or DTT_APPLYOVERLAY or DTT_GLOWSIZE or DTT_COMPOSITED TS_MIN* = 0 TS_TRUE* = 1 TS_DRAW* = 2 @@ -120,7 +139,9 @@ HTTB_RESIZINGBORDER_TOP* = 0x0020 HTTB_RESIZINGBORDER_RIGHT* = 0x0040 HTTB_RESIZINGBORDER_BOTTOM* = 0x0080 - HTTB_RESIZINGBORDER* = HTTB_RESIZINGBORDER_LEFT or HTTB_RESIZINGBORDER_TOP or HTTB_RESIZINGBORDER_RIGHT or HTTB_RESIZINGBORDER_BOTTOM + HTTB_RESIZINGBORDER* = + HTTB_RESIZINGBORDER_LEFT or HTTB_RESIZINGBORDER_TOP or HTTB_RESIZINGBORDER_RIGHT or + HTTB_RESIZINGBORDER_BOTTOM HTTB_SIZINGTEMPLATE* = 0x0100 HTTB_SYSTEMSIZINGMARGINS* = 0x0200 PO_STATE* = 0 @@ -134,7 +155,8 @@ ETDT_ENABLETAB* = ETDT_ENABLE or ETDT_USETABTEXTURE ETDT_USEAEROWIZARDTABTEXTURE* = 0x00000008 ETDT_ENABLEAEROWIZARDTAB* = ETDT_ENABLE or ETDT_USEAEROWIZARDTABTEXTURE - ETDT_VALIDBITS* = ETDT_DISABLE or ETDT_ENABLE or ETDT_USETABTEXTURE or ETDT_USEAEROWIZARDTABTEXTURE + ETDT_VALIDBITS* = + ETDT_DISABLE or ETDT_ENABLE or ETDT_USETABTEXTURE or ETDT_USEAEROWIZARDTABTEXTURE STAP_ALLOW_NONCLIENT* = 1 shl 0 STAP_ALLOW_CONTROLS* = 1 shl 1 STAP_ALLOW_WEBCONTENT* = 1 shl 2 @@ -152,77 +174,423 @@ DTBG_COMPUTINGREGION* = 0x00000010 DTBG_MIRRORDC* = 0x00000020 DTBG_NOMIRROR* = 0x00000040 - DTBG_VALIDBITS* = DTBG_CLIPRECT or DTBG_DRAWSOLID or DTBG_OMITBORDER or DTBG_OMITCONTENT or DTBG_COMPUTINGREGION or DTBG_MIRRORDC or DTBG_NOMIRROR -proc BeginPanningFeedback*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc UpdatePanningFeedback*(hwnd: HWND, lTotalOverpanOffsetX: LONG, lTotalOverpanOffsetY: LONG, fInInertia: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc EndPanningFeedback*(hwnd: HWND, fAnimateBack: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeBitmap*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, dwFlags: ULONG, phBitmap: ptr HBITMAP): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeStream*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, ppvStream: ptr pointer, pcbStream: ptr DWORD, hInst: HINSTANCE): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeTransitionDuration*(hTheme: HTHEME, iPartId: int32, iStateIdFrom: int32, iStateIdTo: int32, iPropId: int32, pdwDuration: ptr DWORD): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc BeginBufferedPaint*(hdcTarget: HDC, prcTarget: ptr RECT, dwFormat: BP_BUFFERFORMAT, pPaintParams: ptr BP_PAINTPARAMS, phdc: ptr HDC): HPAINTBUFFER {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc EndBufferedPaint*(hBufferedPaint: HPAINTBUFFER, fUpdateTarget: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetBufferedPaintTargetRect*(hBufferedPaint: HPAINTBUFFER, prc: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetBufferedPaintTargetDC*(hBufferedPaint: HPAINTBUFFER): HDC {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetBufferedPaintDC*(hBufferedPaint: HPAINTBUFFER): HDC {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetBufferedPaintBits*(hBufferedPaint: HPAINTBUFFER, ppbBuffer: ptr ptr RGBQUAD, pcxRow: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc BufferedPaintClear*(hBufferedPaint: HPAINTBUFFER, prc: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc BufferedPaintSetAlpha*(hBufferedPaint: HPAINTBUFFER, prc: ptr RECT, alpha: BYTE): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + DTBG_VALIDBITS* = + DTBG_CLIPRECT or DTBG_DRAWSOLID or DTBG_OMITBORDER or DTBG_OMITCONTENT or + DTBG_COMPUTINGREGION or DTBG_MIRRORDC or DTBG_NOMIRROR +proc BeginPanningFeedback*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc UpdatePanningFeedback*( + hwnd: HWND, + lTotalOverpanOffsetX: LONG, + lTotalOverpanOffsetY: LONG, + fInInertia: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc EndPanningFeedback*( + hwnd: HWND, fAnimateBack: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeBitmap*( + hTheme: HTHEME, + iPartId: int32, + iStateId: int32, + iPropId: int32, + dwFlags: ULONG, + phBitmap: ptr HBITMAP, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeStream*( + hTheme: HTHEME, + iPartId: int32, + iStateId: int32, + iPropId: int32, + ppvStream: ptr pointer, + pcbStream: ptr DWORD, + hInst: HINSTANCE, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeTransitionDuration*( + hTheme: HTHEME, + iPartId: int32, + iStateIdFrom: int32, + iStateIdTo: int32, + iPropId: int32, + pdwDuration: ptr DWORD, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc BeginBufferedPaint*( + hdcTarget: HDC, + prcTarget: ptr RECT, + dwFormat: BP_BUFFERFORMAT, + pPaintParams: ptr BP_PAINTPARAMS, + phdc: ptr HDC, +): HPAINTBUFFER {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc EndBufferedPaint*( + hBufferedPaint: HPAINTBUFFER, fUpdateTarget: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetBufferedPaintTargetRect*( + hBufferedPaint: HPAINTBUFFER, prc: ptr RECT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetBufferedPaintTargetDC*( + hBufferedPaint: HPAINTBUFFER +): HDC {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetBufferedPaintDC*( + hBufferedPaint: HPAINTBUFFER +): HDC {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetBufferedPaintBits*( + hBufferedPaint: HPAINTBUFFER, ppbBuffer: ptr ptr RGBQUAD, pcxRow: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc BufferedPaintClear*( + hBufferedPaint: HPAINTBUFFER, prc: ptr RECT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc BufferedPaintSetAlpha*( + hBufferedPaint: HPAINTBUFFER, prc: ptr RECT, alpha: BYTE +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + proc BufferedPaintInit*(): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} proc BufferedPaintUnInit*(): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc BeginBufferedAnimation*(hwnd: HWND, hdcTarget: HDC, rcTarget: ptr RECT, dwFormat: BP_BUFFERFORMAT, pPaintParams: ptr BP_PAINTPARAMS, pAnimationParams: ptr BP_ANIMATIONPARAMS, phdcFrom: ptr HDC, phdcTo: ptr HDC): HANIMATIONBUFFER {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc EndBufferedAnimation*(hbpAnimation: HANIMATIONBUFFER, fUpdateTarget: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc BufferedPaintRenderAnimation*(hwnd: HWND, hdcTarget: HDC): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc BufferedPaintStopAllAnimations*(hwnd: HWND): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} +proc BeginBufferedAnimation*( + hwnd: HWND, + hdcTarget: HDC, + rcTarget: ptr RECT, + dwFormat: BP_BUFFERFORMAT, + pPaintParams: ptr BP_PAINTPARAMS, + pAnimationParams: ptr BP_ANIMATIONPARAMS, + phdcFrom: ptr HDC, + phdcTo: ptr HDC, +): HANIMATIONBUFFER {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc EndBufferedAnimation*( + hbpAnimation: HANIMATIONBUFFER, fUpdateTarget: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc BufferedPaintRenderAnimation*( + hwnd: HWND, hdcTarget: HDC +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc BufferedPaintStopAllAnimations*( + hwnd: HWND +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + proc IsCompositionActive*(): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc SetWindowThemeAttribute*(hwnd: HWND, eAttribute: WINDOWTHEMEATTRIBUTETYPE, pvAttribute: PVOID, cbAttribute: DWORD): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc OpenThemeData*(hwnd: HWND, pszClassList: LPCWSTR): HTHEME {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc OpenThemeDataEx*(hwnd: HWND, pszClassList: LPCWSTR, dwFlags: DWORD): HTHEME {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc CloseThemeData*(hTheme: HTHEME): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeBackground*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pRect: ptr RECT, pClipRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeText*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pszText: LPCWSTR, iCharCount: int32, dwTextFlags: DWORD, dwTextFlags2: DWORD, pRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeTextEx*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pszText: LPCWSTR, iCharCount: int32, dwFlags: DWORD, pRect: LPRECT, pOptions: ptr DTTOPTS): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeBackgroundContentRect*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pBoundingRect: ptr RECT, pContentRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeBackgroundExtent*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pContentRect: ptr RECT, pExtentRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemePartSize*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, prc: ptr RECT, eSize: THEMESIZE, psz: ptr SIZE): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeTextExtent*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pszText: LPCWSTR, iCharCount: int32, dwTextFlags: DWORD, pBoundingRect: ptr RECT, pExtentRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeTextMetrics*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, ptm: ptr TEXTMETRIC): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeBackgroundRegion*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pRect: ptr RECT, pRegion: ptr HRGN): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc HitTestThemeBackground*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, dwOptions: DWORD, pRect: ptr RECT, hrgn: HRGN, ptTest: POINT, pwHitTestCode: ptr WORD): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeEdge*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pDestRect: ptr RECT, uEdge: UINT, uFlags: UINT, pContentRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeIcon*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pRect: ptr RECT, himl: HIMAGELIST, iImageIndex: int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc IsThemePartDefined*(hTheme: HTHEME, iPartId: int32, iStateId: int32): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc IsThemeBackgroundPartiallyTransparent*(hTheme: HTHEME, iPartId: int32, iStateId: int32): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeColor*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pColor: ptr COLORREF): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeMetric*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, iPropId: int32, piVal: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeString*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pszBuff: LPWSTR, cchMaxBuffChars: int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeBool*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pfVal: ptr WINBOOL): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeInt*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, piVal: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeEnumValue*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, piVal: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemePosition*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pPoint: ptr POINT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeFont*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, iPropId: int32, pFont: ptr LOGFONTW): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeRect*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pRect: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeMargins*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, iPropId: int32, prc: ptr RECT, pMargins: ptr MARGINS): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeIntList*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pIntList: ptr INTLIST): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemePropertyOrigin*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pOrigin: ptr PROPERTYORIGIN): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc SetWindowTheme*(hwnd: HWND, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeFilename*(hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pszThemeFileName: LPWSTR, cchMaxBuffChars: int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysColor*(hTheme: HTHEME, iColorId: int32): COLORREF {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysColorBrush*(hTheme: HTHEME, iColorId: int32): HBRUSH {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysBool*(hTheme: HTHEME, iBoolId: int32): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysSize*(hTheme: HTHEME, iSizeId: int32): int32 {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysFont*(hTheme: HTHEME, iFontId: int32, plf: ptr LOGFONT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysString*(hTheme: HTHEME, iStringId: int32, pszStringBuff: LPWSTR, cchMaxStringChars: int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeSysInt*(hTheme: HTHEME, iIntId: int32, piValue: ptr int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} +proc SetWindowThemeAttribute*( + hwnd: HWND, + eAttribute: WINDOWTHEMEATTRIBUTETYPE, + pvAttribute: PVOID, + cbAttribute: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc OpenThemeData*( + hwnd: HWND, pszClassList: LPCWSTR +): HTHEME {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc OpenThemeDataEx*( + hwnd: HWND, pszClassList: LPCWSTR, dwFlags: DWORD +): HTHEME {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc CloseThemeData*( + hTheme: HTHEME +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeBackground*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pRect: ptr RECT, + pClipRect: ptr RECT, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeText*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pszText: LPCWSTR, + iCharCount: int32, + dwTextFlags: DWORD, + dwTextFlags2: DWORD, + pRect: ptr RECT, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeTextEx*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pszText: LPCWSTR, + iCharCount: int32, + dwFlags: DWORD, + pRect: LPRECT, + pOptions: ptr DTTOPTS, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeBackgroundContentRect*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pBoundingRect: ptr RECT, + pContentRect: ptr RECT, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeBackgroundExtent*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pContentRect: ptr RECT, + pExtentRect: ptr RECT, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemePartSize*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + prc: ptr RECT, + eSize: THEMESIZE, + psz: ptr SIZE, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeTextExtent*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pszText: LPCWSTR, + iCharCount: int32, + dwTextFlags: DWORD, + pBoundingRect: ptr RECT, + pExtentRect: ptr RECT, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeTextMetrics*( + hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, ptm: ptr TEXTMETRIC +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeBackgroundRegion*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pRect: ptr RECT, + pRegion: ptr HRGN, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc HitTestThemeBackground*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + dwOptions: DWORD, + pRect: ptr RECT, + hrgn: HRGN, + ptTest: POINT, + pwHitTestCode: ptr WORD, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeEdge*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pDestRect: ptr RECT, + uEdge: UINT, + uFlags: UINT, + pContentRect: ptr RECT, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeIcon*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pRect: ptr RECT, + himl: HIMAGELIST, + iImageIndex: int32, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc IsThemePartDefined*( + hTheme: HTHEME, iPartId: int32, iStateId: int32 +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc IsThemeBackgroundPartiallyTransparent*( + hTheme: HTHEME, iPartId: int32, iStateId: int32 +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeColor*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pColor: ptr COLORREF +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeMetric*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + iPropId: int32, + piVal: ptr int32, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeString*( + hTheme: HTHEME, + iPartId: int32, + iStateId: int32, + iPropId: int32, + pszBuff: LPWSTR, + cchMaxBuffChars: int32, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeBool*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pfVal: ptr WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeInt*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, piVal: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeEnumValue*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, piVal: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemePosition*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pPoint: ptr POINT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeFont*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + iPropId: int32, + pFont: ptr LOGFONTW, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeRect*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pRect: ptr RECT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeMargins*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + iPropId: int32, + prc: ptr RECT, + pMargins: ptr MARGINS, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeIntList*( + hTheme: HTHEME, iPartId: int32, iStateId: int32, iPropId: int32, pIntList: ptr INTLIST +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemePropertyOrigin*( + hTheme: HTHEME, + iPartId: int32, + iStateId: int32, + iPropId: int32, + pOrigin: ptr PROPERTYORIGIN, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc SetWindowTheme*( + hwnd: HWND, pszSubAppName: LPCWSTR, pszSubIdList: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeFilename*( + hTheme: HTHEME, + iPartId: int32, + iStateId: int32, + iPropId: int32, + pszThemeFileName: LPWSTR, + cchMaxBuffChars: int32, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysColor*( + hTheme: HTHEME, iColorId: int32 +): COLORREF {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysColorBrush*( + hTheme: HTHEME, iColorId: int32 +): HBRUSH {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysBool*( + hTheme: HTHEME, iBoolId: int32 +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysSize*( + hTheme: HTHEME, iSizeId: int32 +): int32 {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysFont*( + hTheme: HTHEME, iFontId: int32, plf: ptr LOGFONT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysString*( + hTheme: HTHEME, iStringId: int32, pszStringBuff: LPWSTR, cchMaxStringChars: int32 +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeSysInt*( + hTheme: HTHEME, iIntId: int32, piValue: ptr int32 +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + proc IsThemeActive*(): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} proc IsAppThemed*(): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} proc GetWindowTheme*(hwnd: HWND): HTHEME {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc EnableThemeDialogTexture*(hwnd: HWND, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc IsThemeDialogTextureEnabled*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} +proc EnableThemeDialogTexture*( + hwnd: HWND, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc IsThemeDialogTextureEnabled*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "uxtheme", importc.} + proc GetThemeAppProperties*(): DWORD {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc SetThemeAppProperties*(dwFlags: DWORD): void {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetCurrentThemeName*(pszThemeFileName: LPWSTR, cchMaxNameChars: int32, pszColorBuff: LPWSTR, cchMaxColorChars: int32, pszSizeBuff: LPWSTR, cchMaxSizeChars: int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc GetThemeDocumentationProperty*(pszThemeName: LPCWSTR, pszPropertyName: LPCWSTR, pszValueBuff: LPWSTR, cchMaxValChars: int32): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeParentBackground*(hwnd: HWND, hdc: HDC, prc: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeParentBackgroundEx*(hwnd: HWND, hdc: HDC, dwFlags: DWORD, prc: ptr RECT): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc EnableTheming*(fEnable: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} -proc DrawThemeBackgroundEx*(hTheme: HTHEME, hdc: HDC, iPartId: int32, iStateId: int32, pRect: ptr RECT, pOptions: ptr DTBGOPTS): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} +proc SetThemeAppProperties*( + dwFlags: DWORD +): void {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetCurrentThemeName*( + pszThemeFileName: LPWSTR, + cchMaxNameChars: int32, + pszColorBuff: LPWSTR, + cchMaxColorChars: int32, + pszSizeBuff: LPWSTR, + cchMaxSizeChars: int32, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc GetThemeDocumentationProperty*( + pszThemeName: LPCWSTR, + pszPropertyName: LPCWSTR, + pszValueBuff: LPWSTR, + cchMaxValChars: int32, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeParentBackground*( + hwnd: HWND, hdc: HDC, prc: ptr RECT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeParentBackgroundEx*( + hwnd: HWND, hdc: HDC, dwFlags: DWORD, prc: ptr RECT +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc EnableTheming*( + fEnable: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} + +proc DrawThemeBackgroundEx*( + hTheme: HTHEME, + hdc: HDC, + iPartId: int32, + iStateId: int32, + pRect: ptr RECT, + pOptions: ptr DTBGOPTS, +): HRESULT {.winapi, stdcall, dynlib: "uxtheme", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/vfw.nim --- a/semicongine/thirdparty/winim/winim/inc/vfw.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/vfw.nim Thu Aug 22 18:32:21 2024 +0700 @@ -40,6 +40,7 @@ lKeyCount*: LONG lpState*: LPVOID cbState*: LONG + PCOMPVARS* = ptr COMPVARS TDRAWDIBTIME* {.pure.} = object timeCount*: LONG @@ -49,6 +50,7 @@ timeStretch*: LONG timeBlt*: LONG timeSetDIBits*: LONG + LPDRAWDIBTIME* = ptr TDRAWDIBTIME TAVISTREAMINFOW* {.pure.} = object fccType*: DWORD @@ -69,6 +71,7 @@ dwEditCount*: DWORD dwFormatChangeCount*: DWORD szName*: array[64, WCHAR] + LPAVISTREAMINFOW* = ptr TAVISTREAMINFOW TAVISTREAMINFOA* {.pure.} = object fccType*: DWORD @@ -89,6 +92,7 @@ dwEditCount*: DWORD dwFormatChangeCount*: DWORD szName*: array[64, char] + LPAVISTREAMINFOA* = ptr TAVISTREAMINFOA TAVIFILEINFOW* {.pure.} = object dwMaxBytesPerSec*: DWORD @@ -103,6 +107,7 @@ dwLength*: DWORD dwEditCount*: DWORD szFileType*: array[64, WCHAR] + LPAVIFILEINFOW* = ptr TAVIFILEINFOW TAVIFILEINFOA* {.pure.} = object dwMaxBytesPerSec*: DWORD @@ -117,6 +122,7 @@ dwLength*: DWORD dwEditCount*: DWORD szFileType*: array[64, char] + LPAVIFILEINFOA* = ptr TAVIFILEINFOA AVICOMPRESSOPTIONS* {.pure.} = object fccType*: DWORD @@ -130,60 +136,145 @@ lpParms*: LPVOID cbParms*: DWORD dwInterleaveEvery*: DWORD + LPAVICOMPRESSOPTIONS* = ptr AVICOMPRESSOPTIONS IAVIStream* {.pure.} = object lpVtbl*: ptr IAVIStreamVtbl + IAVIStreamVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Create*: proc(self: ptr IAVIStream, lParam1: LPARAM, lParam2: LPARAM): HRESULT {.stdcall.} - Info*: proc(self: ptr IAVIStream, psi: ptr TAVISTREAMINFOW, lSize: LONG): HRESULT {.stdcall.} + Create*: + proc(self: ptr IAVIStream, lParam1: LPARAM, lParam2: LPARAM): HRESULT {.stdcall.} + Info*: proc(self: ptr IAVIStream, psi: ptr TAVISTREAMINFOW, lSize: LONG): HRESULT {. + stdcall + .} FindSample*: proc(self: ptr IAVIStream, lPos: LONG, lFlags: LONG): LONG {.stdcall.} - ReadFormat*: proc(self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, lpcbFormat: ptr LONG): HRESULT {.stdcall.} - SetFormat*: proc(self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, cbFormat: LONG): HRESULT {.stdcall.} - Read*: proc(self: ptr IAVIStream, lStart: LONG, lSamples: LONG, lpBuffer: LPVOID, cbBuffer: LONG, plBytes: ptr LONG, plSamples: ptr LONG): HRESULT {.stdcall.} - Write*: proc(self: ptr IAVIStream, lStart: LONG, lSamples: LONG, lpBuffer: LPVOID, cbBuffer: LONG, dwFlags: DWORD, plSampWritten: ptr LONG, plBytesWritten: ptr LONG): HRESULT {.stdcall.} - Delete*: proc(self: ptr IAVIStream, lStart: LONG, lSamples: LONG): HRESULT {.stdcall.} - ReadData*: proc(self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, lpcb: ptr LONG): HRESULT {.stdcall.} - WriteData*: proc(self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, cb: LONG): HRESULT {.stdcall.} - SetInfo*: proc(self: ptr IAVIStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG): HRESULT {.stdcall.} + ReadFormat*: proc( + self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, lpcbFormat: ptr LONG + ): HRESULT {.stdcall.} + SetFormat*: proc( + self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, cbFormat: LONG + ): HRESULT {.stdcall.} + Read*: proc( + self: ptr IAVIStream, + lStart: LONG, + lSamples: LONG, + lpBuffer: LPVOID, + cbBuffer: LONG, + plBytes: ptr LONG, + plSamples: ptr LONG, + ): HRESULT {.stdcall.} + Write*: proc( + self: ptr IAVIStream, + lStart: LONG, + lSamples: LONG, + lpBuffer: LPVOID, + cbBuffer: LONG, + dwFlags: DWORD, + plSampWritten: ptr LONG, + plBytesWritten: ptr LONG, + ): HRESULT {.stdcall.} + Delete*: + proc(self: ptr IAVIStream, lStart: LONG, lSamples: LONG): HRESULT {.stdcall.} + ReadData*: proc( + self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, lpcb: ptr LONG + ): HRESULT {.stdcall.} + WriteData*: + proc(self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, cb: LONG): HRESULT {.stdcall.} + SetInfo*: proc( + self: ptr IAVIStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG + ): HRESULT {.stdcall.} + PAVISTREAM* = ptr IAVIStream IAVIStreaming* {.pure.} = object lpVtbl*: ptr IAVIStreamingVtbl + IAVIStreamingVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Begin*: proc(self: ptr IAVIStreaming, lStart: LONG, lEnd: LONG, lRate: LONG): HRESULT {.stdcall.} + Begin*: proc( + self: ptr IAVIStreaming, lStart: LONG, lEnd: LONG, lRate: LONG + ): HRESULT {.stdcall.} End*: proc(self: ptr IAVIStreaming): HRESULT {.stdcall.} + PAVISTREAMING* = ptr IAVIStreaming IAVIEditStream* {.pure.} = object lpVtbl*: ptr IAVIEditStreamVtbl + IAVIEditStreamVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Cut*: proc(self: ptr IAVIEditStream, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM): HRESULT {.stdcall.} - Copy*: proc(self: ptr IAVIEditStream, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM): HRESULT {.stdcall.} - Paste*: proc(self: ptr IAVIEditStream, plPos: ptr LONG, plLength: ptr LONG, pstream: PAVISTREAM, lStart: LONG, lEnd: LONG): HRESULT {.stdcall.} - Clone*: proc(self: ptr IAVIEditStream, ppResult: ptr PAVISTREAM): HRESULT {.stdcall.} - SetInfo*: proc(self: ptr IAVIEditStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG): HRESULT {.stdcall.} + Cut*: proc( + self: ptr IAVIEditStream, + plStart: ptr LONG, + plLength: ptr LONG, + ppResult: ptr PAVISTREAM, + ): HRESULT {.stdcall.} + Copy*: proc( + self: ptr IAVIEditStream, + plStart: ptr LONG, + plLength: ptr LONG, + ppResult: ptr PAVISTREAM, + ): HRESULT {.stdcall.} + Paste*: proc( + self: ptr IAVIEditStream, + plPos: ptr LONG, + plLength: ptr LONG, + pstream: PAVISTREAM, + lStart: LONG, + lEnd: LONG, + ): HRESULT {.stdcall.} + Clone*: + proc(self: ptr IAVIEditStream, ppResult: ptr PAVISTREAM): HRESULT {.stdcall.} + SetInfo*: proc( + self: ptr IAVIEditStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG + ): HRESULT {.stdcall.} + PAVIEDITSTREAM* = ptr IAVIEditStream IAVIPersistFile* {.pure.} = object lpVtbl*: ptr IAVIPersistFileVtbl + IAVIPersistFileVtbl* {.pure, inheritable.} = object of IPersistFileVtbl Reserved1*: proc(self: ptr IAVIPersistFile): HRESULT {.stdcall.} + PAVIPERSISTFILE* = ptr IAVIPersistFile IAVIFile* {.pure.} = object lpVtbl*: ptr IAVIFileVtbl + IAVIFileVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Info*: proc(self: ptr IAVIFile, pfi: ptr TAVIFILEINFOW, lSize: LONG): HRESULT {.stdcall.} - GetStream*: proc(self: ptr IAVIFile, ppStream: ptr PAVISTREAM, fccType: DWORD, lParam: LONG): HRESULT {.stdcall.} - CreateStream*: proc(self: ptr IAVIFile, ppStream: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW): HRESULT {.stdcall.} - WriteData*: proc(self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, cbData: LONG): HRESULT {.stdcall.} - ReadData*: proc(self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, lpcbData: ptr LONG): HRESULT {.stdcall.} + Info*: + proc(self: ptr IAVIFile, pfi: ptr TAVIFILEINFOW, lSize: LONG): HRESULT {.stdcall.} + GetStream*: proc( + self: ptr IAVIFile, ppStream: ptr PAVISTREAM, fccType: DWORD, lParam: LONG + ): HRESULT {.stdcall.} + CreateStream*: proc( + self: ptr IAVIFile, ppStream: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW + ): HRESULT {.stdcall.} + WriteData*: proc( + self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, cbData: LONG + ): HRESULT {.stdcall.} + ReadData*: proc( + self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, lpcbData: ptr LONG + ): HRESULT {.stdcall.} EndRecord*: proc(self: ptr IAVIFile): HRESULT {.stdcall.} - DeleteStream*: proc(self: ptr IAVIFile, fccType: DWORD, lParam: LONG): HRESULT {.stdcall.} + DeleteStream*: + proc(self: ptr IAVIFile, fccType: DWORD, lParam: LONG): HRESULT {.stdcall.} + PAVIFILE* = ptr IAVIFile IGetFrame* {.pure.} = object lpVtbl*: ptr IGetFrameVtbl + IGetFrameVtbl* {.pure, inheritable.} = object of IUnknownVtbl GetFrame*: proc(self: ptr IGetFrame, lPos: LONG): LPVOID {.stdcall.} - Begin*: proc(self: ptr IGetFrame, lStart: LONG, lEnd: LONG, lRate: LONG): HRESULT {.stdcall.} + Begin*: proc(self: ptr IGetFrame, lStart: LONG, lEnd: LONG, lRate: LONG): HRESULT {. + stdcall + .} End*: proc(self: ptr IGetFrame): HRESULT {.stdcall.} - SetFormat*: proc(self: ptr IGetFrame, lpbi: LPBITMAPINFOHEADER, lpBits: LPVOID, x: int32, y: int32, dx: int32, dy: int32): HRESULT {.stdcall.} + SetFormat*: proc( + self: ptr IGetFrame, + lpbi: LPBITMAPINFOHEADER, + lpBits: LPVOID, + x: int32, + y: int32, + dx: int32, + dy: int32, + ): HRESULT {.stdcall.} + PGETFRAME* = ptr IGetFrame LPHVIDEO* = ptr HVIDEO VIDEOHDR* {.pure.} = object @@ -194,6 +285,7 @@ dwUser*: DWORD_PTR dwFlags*: DWORD dwReserved*: array[4, DWORD_PTR] + PVIDEOHDR* = ptr VIDEOHDR LPVIDEOHDR* = ptr VIDEOHDR CHANNEL_CAPS* {.pure.} = object @@ -206,6 +298,7 @@ dwDstRectYMod*: DWORD dwDstRectWidthMod*: DWORD dwDstRectHeightMod*: DWORD + PCHANNEL_CAPS* = ptr CHANNEL_CAPS LPCHANNEL_CAPS* = ptr CHANNEL_CAPS CAPDRIVERCAPS* {.pure.} = object @@ -220,6 +313,7 @@ hVideoOut*: HANDLE hVideoExtIn*: HANDLE hVideoExtOut*: HANDLE + PCAPDRIVERCAPS* = ptr CAPDRIVERCAPS LPCAPDRIVERCAPS* = ptr CAPDRIVERCAPS CAPSTATUS* {.pure.} = object @@ -241,6 +335,7 @@ dwReturn*: DWORD wNumVideoAllocated*: UINT wNumAudioAllocated*: UINT + PCAPSTATUS* = ptr CAPSTATUS LPCAPSTATUS* = ptr CAPSTATUS CAPTUREPARMS* {.pure.} = object @@ -268,12 +363,14 @@ dwAudioBufferSize*: DWORD fDisableWriteCache*: WINBOOL AVStreamMaster*: UINT + PCAPTUREPARMS* = ptr CAPTUREPARMS LPCAPTUREPARMS* = ptr CAPTUREPARMS CAPINFOCHUNK* {.pure.} = object fccInfoID*: FOURCC lpData*: LPVOID cbData*: LONG + PCAPINFOCHUNK* = ptr CAPINFOCHUNK LPCAPINFOCHUNK* = ptr CAPINFOCHUNK PHACMDRIVERID* = ptr HACMDRIVERID @@ -284,8 +381,11 @@ LPHACMSTREAM* = ptr HACMSTREAM PHACMOBJ* = ptr HACMOBJ LPHACMOBJ* = ptr HACMOBJ - ACMDRIVERPROC* = proc (P1: DWORD_PTR, P2: HACMDRIVERID, P3: UINT, P4: LPARAM, P5: LPARAM): LRESULT {.stdcall.} + ACMDRIVERPROC* = proc( + P1: DWORD_PTR, P2: HACMDRIVERID, P3: UINT, P4: LPARAM, P5: LPARAM + ): LRESULT {.stdcall.} LPACMDRIVERPROC* = ptr ACMDRIVERPROC + const ACMDRIVERDETAILS_SHORTNAME_CHARS* = 32 ACMDRIVERDETAILS_LONGNAME_CHARS* = 128 @@ -310,6 +410,7 @@ szCopyright*: array[ACMDRIVERDETAILS_COPYRIGHT_CHARS, char] szLicensing*: array[ACMDRIVERDETAILS_LICENSING_CHARS, char] szFeatures*: array[ACMDRIVERDETAILS_FEATURES_CHARS, char] + PACMDRIVERDETAILSA* = ptr ACMDRIVERDETAILSA LPACMDRIVERDETAILSA* = ptr ACMDRIVERDETAILSA ACMDRIVERDETAILSW* {.pure, packed.} = object @@ -329,10 +430,11 @@ szCopyright*: array[ACMDRIVERDETAILS_COPYRIGHT_CHARS, WCHAR] szLicensing*: array[ACMDRIVERDETAILS_LICENSING_CHARS, WCHAR] szFeatures*: array[ACMDRIVERDETAILS_FEATURES_CHARS, WCHAR] + PACMDRIVERDETAILSW* = ptr ACMDRIVERDETAILSW LPACMDRIVERDETAILSW* = ptr ACMDRIVERDETAILSW -const - ACMFORMATTAGDETAILS_FORMATTAG_CHARS* = 48 + +const ACMFORMATTAGDETAILS_FORMATTAG_CHARS* = 48 type ACMFORMATTAGDETAILSA* {.pure.} = object cbStruct*: DWORD @@ -342,6 +444,7 @@ fdwSupport*: DWORD cStandardFormats*: DWORD szFormatTag*: array[ACMFORMATTAGDETAILS_FORMATTAG_CHARS, char] + PACMFORMATTAGDETAILSA* = ptr ACMFORMATTAGDETAILSA LPACMFORMATTAGDETAILSA* = ptr ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILSW* {.pure.} = object @@ -352,10 +455,11 @@ fdwSupport*: DWORD cStandardFormats*: DWORD szFormatTag*: array[ACMFORMATTAGDETAILS_FORMATTAG_CHARS, WCHAR] + PACMFORMATTAGDETAILSW* = ptr ACMFORMATTAGDETAILSW LPACMFORMATTAGDETAILSW* = ptr ACMFORMATTAGDETAILSW -const - ACMFORMATDETAILS_FORMAT_CHARS* = 128 + +const ACMFORMATDETAILS_FORMAT_CHARS* = 128 type ACMFORMATDETAILSA* {.pure, packed.} = object cbStruct*: DWORD @@ -365,6 +469,7 @@ pwfx*: LPWAVEFORMATEX cbwfx*: DWORD szFormat*: array[ACMFORMATDETAILS_FORMAT_CHARS, char] + PACMFORMATDETAILSA* = ptr ACMFORMATDETAILSA LPACMFORMATDETAILSA* = ptr ACMFORMATDETAILSA ACMFORMATDETAILSW* {.pure, packed.} = object @@ -375,9 +480,11 @@ pwfx*: LPWAVEFORMATEX cbwfx*: DWORD szFormat*: array[ACMFORMATDETAILS_FORMAT_CHARS, WCHAR] + PACMFORMATDETAILSW* = ptr ACMFORMATDETAILSW LPACMFORMATDETAILSW* = ptr ACMFORMATDETAILSW - ACMFORMATCHOOSEHOOKPROCA* = proc (hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} + ACMFORMATCHOOSEHOOKPROCA* = + proc(hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} ACMFORMATCHOOSEA* {.pure, packed.} = object cbStruct*: DWORD fdwStyle*: DWORD @@ -395,9 +502,11 @@ pszTemplateName*: LPCSTR lCustData*: LPARAM pfnHook*: ACMFORMATCHOOSEHOOKPROCA + PACMFORMATCHOOSEA* = ptr ACMFORMATCHOOSEA LPACMFORMATCHOOSEA* = ptr ACMFORMATCHOOSEA - ACMFORMATCHOOSEHOOKPROCW* = proc (hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} + ACMFORMATCHOOSEHOOKPROCW* = + proc(hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} ACMFORMATCHOOSEW* {.pure, packed.} = object cbStruct*: DWORD fdwStyle*: DWORD @@ -415,10 +524,11 @@ pszTemplateName*: LPCWSTR lCustData*: LPARAM pfnHook*: ACMFORMATCHOOSEHOOKPROCW + PACMFORMATCHOOSEW* = ptr ACMFORMATCHOOSEW LPACMFORMATCHOOSEW* = ptr ACMFORMATCHOOSEW -const - ACMFILTERTAGDETAILS_FILTERTAG_CHARS* = 48 + +const ACMFILTERTAGDETAILS_FILTERTAG_CHARS* = 48 type ACMFILTERTAGDETAILSA* {.pure.} = object cbStruct*: DWORD @@ -428,6 +538,7 @@ fdwSupport*: DWORD cStandardFilters*: DWORD szFilterTag*: array[ACMFILTERTAGDETAILS_FILTERTAG_CHARS, char] + PACMFILTERTAGDETAILSA* = ptr ACMFILTERTAGDETAILSA LPACMFILTERTAGDETAILSA* = ptr ACMFILTERTAGDETAILSA ACMFILTERTAGDETAILSW* {.pure.} = object @@ -438,10 +549,11 @@ fdwSupport*: DWORD cStandardFilters*: DWORD szFilterTag*: array[ACMFILTERTAGDETAILS_FILTERTAG_CHARS, WCHAR] + PACMFILTERTAGDETAILSW* = ptr ACMFILTERTAGDETAILSW LPACMFILTERTAGDETAILSW* = ptr ACMFILTERTAGDETAILSW -const - ACMFILTERDETAILS_FILTER_CHARS* = 128 + +const ACMFILTERDETAILS_FILTER_CHARS* = 128 type ACMFILTERDETAILSA* {.pure, packed.} = object cbStruct*: DWORD @@ -451,6 +563,7 @@ pwfltr*: LPWAVEFILTER cbwfltr*: DWORD szFilter*: array[ACMFILTERDETAILS_FILTER_CHARS, char] + PACMFILTERDETAILSA* = ptr ACMFILTERDETAILSA LPACMFILTERDETAILSA* = ptr ACMFILTERDETAILSA ACMFILTERDETAILSW* {.pure, packed.} = object @@ -461,9 +574,11 @@ pwfltr*: LPWAVEFILTER cbwfltr*: DWORD szFilter*: array[ACMFILTERDETAILS_FILTER_CHARS, WCHAR] + PACMFILTERDETAILSW* = ptr ACMFILTERDETAILSW LPACMFILTERDETAILSW* = ptr ACMFILTERDETAILSW - ACMFILTERCHOOSEHOOKPROCA* = proc (hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} + ACMFILTERCHOOSEHOOKPROCA* = + proc(hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} ACMFILTERCHOOSEA* {.pure, packed.} = object cbStruct*: DWORD fdwStyle*: DWORD @@ -481,9 +596,11 @@ pszTemplateName*: LPCSTR lCustData*: LPARAM pfnHook*: ACMFILTERCHOOSEHOOKPROCA + PACMFILTERCHOOSEA* = ptr ACMFILTERCHOOSEA LPACMFILTERCHOOSEA* = ptr ACMFILTERCHOOSEA - ACMFILTERCHOOSEHOOKPROCW* = proc (hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} + ACMFILTERCHOOSEHOOKPROCW* = + proc(hwnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): UINT {.stdcall.} ACMFILTERCHOOSEW* {.pure, packed.} = object cbStruct*: DWORD fdwStyle*: DWORD @@ -501,14 +618,14 @@ pszTemplateName*: LPCWSTR lCustData*: LPARAM pfnHook*: ACMFILTERCHOOSEHOOKPROCW + PACMFILTERCHOOSEW* = ptr ACMFILTERCHOOSEW LPACMFILTERCHOOSEW* = ptr ACMFILTERCHOOSEW + when winimCpu64: - const - VFW_DRVRESERVED* = 15 + const VFW_DRVRESERVED* = 15 when winimCpu32: - const - VFW_DRVRESERVED* = 10 + const VFW_DRVRESERVED* = 10 type ACMSTREAMHEADER* {.pure, packed.} = object cbStruct*: DWORD @@ -523,8 +640,10 @@ cbDstLengthUsed*: DWORD dwDstUser*: DWORD_PTR dwReservedDriver*: array[VFW_DRVRESERVED, DWORD] + PACMSTREAMHEADER* = ptr ACMSTREAMHEADER LPACMSTREAMHEADER* = ptr ACMSTREAMHEADER + const ICVERSION* = 0x0104 BI_1632* = 0x32333631 @@ -559,67 +678,67 @@ ICQUALITY_LOW* = 0 ICQUALITY_HIGH* = 10000 ICQUALITY_DEFAULT* = -1 - ICM_USER* = DRV_USER+0x0000 - ICM_RESERVED_LOW* = DRV_USER+0x1000 + ICM_USER* = DRV_USER + 0x0000 + ICM_RESERVED_LOW* = DRV_USER + 0x1000 ICM_RESERVED* = ICM_RESERVED_LOW - ICM_RESERVED_HIGH* = DRV_USER+0x2000 - ICM_GETSTATE* = ICM_RESERVED+0 - ICM_SETSTATE* = ICM_RESERVED+1 - ICM_GETINFO* = ICM_RESERVED+2 - ICM_CONFIGURE* = ICM_RESERVED+10 - ICM_ABOUT* = ICM_RESERVED+11 - ICM_GETERRORTEXT* = ICM_RESERVED+12 - ICM_GETFORMATNAME* = ICM_RESERVED+20 - ICM_ENUMFORMATS* = ICM_RESERVED+21 - ICM_GETDEFAULTQUALITY* = ICM_RESERVED+30 - ICM_GETQUALITY* = ICM_RESERVED+31 - ICM_SETQUALITY* = ICM_RESERVED+32 - ICM_SET* = ICM_RESERVED+40 - ICM_GET* = ICM_RESERVED+41 - ICM_FRAMERATE* = mmioFOURCC('F','r','m','R') - ICM_KEYFRAMERATE* = mmioFOURCC('K','e','y','R') - ICM_COMPRESS_GET_FORMAT* = ICM_USER+4 - ICM_COMPRESS_GET_SIZE* = ICM_USER+5 - ICM_COMPRESS_QUERY* = ICM_USER+6 - ICM_COMPRESS_BEGIN* = ICM_USER+7 - ICM_COMPRESS* = ICM_USER+8 - ICM_COMPRESS_END* = ICM_USER+9 - ICM_DECOMPRESS_GET_FORMAT* = ICM_USER+10 - ICM_DECOMPRESS_QUERY* = ICM_USER+11 - ICM_DECOMPRESS_BEGIN* = ICM_USER+12 - ICM_DECOMPRESS* = ICM_USER+13 - ICM_DECOMPRESS_END* = ICM_USER+14 - ICM_DECOMPRESS_SET_PALETTE* = ICM_USER+29 - ICM_DECOMPRESS_GET_PALETTE* = ICM_USER+30 - ICM_DRAW_QUERY* = ICM_USER+31 - ICM_DRAW_BEGIN* = ICM_USER+15 - ICM_DRAW_GET_PALETTE* = ICM_USER+16 - ICM_DRAW_UPDATE* = ICM_USER+17 - ICM_DRAW_START* = ICM_USER+18 - ICM_DRAW_STOP* = ICM_USER+19 - ICM_DRAW_BITS* = ICM_USER+20 - ICM_DRAW_END* = ICM_USER+21 - ICM_DRAW_GETTIME* = ICM_USER+32 - ICM_DRAW* = ICM_USER+33 - ICM_DRAW_WINDOW* = ICM_USER+34 - ICM_DRAW_SETTIME* = ICM_USER+35 - ICM_DRAW_REALIZE* = ICM_USER+36 - ICM_DRAW_FLUSH* = ICM_USER+37 - ICM_DRAW_RENDERBUFFER* = ICM_USER+38 - ICM_DRAW_START_PLAY* = ICM_USER+39 - ICM_DRAW_STOP_PLAY* = ICM_USER+40 - ICM_DRAW_SUGGESTFORMAT* = ICM_USER+50 - ICM_DRAW_CHANGEPALETTE* = ICM_USER+51 - ICM_DRAW_IDLE* = ICM_USER+52 - ICM_GETBUFFERSWANTED* = ICM_USER+41 - ICM_GETDEFAULTKEYFRAMERATE* = ICM_USER+42 - ICM_DECOMPRESSEX_BEGIN* = ICM_USER+60 - ICM_DECOMPRESSEX_QUERY* = ICM_USER+61 - ICM_DECOMPRESSEX* = ICM_USER+62 - ICM_DECOMPRESSEX_END* = ICM_USER+63 - ICM_COMPRESS_FRAMES_INFO* = ICM_USER+70 - ICM_COMPRESS_FRAMES* = ICM_USER+71 - ICM_SET_STATUS_PROC* = ICM_USER+72 + ICM_RESERVED_HIGH* = DRV_USER + 0x2000 + ICM_GETSTATE* = ICM_RESERVED + 0 + ICM_SETSTATE* = ICM_RESERVED + 1 + ICM_GETINFO* = ICM_RESERVED + 2 + ICM_CONFIGURE* = ICM_RESERVED + 10 + ICM_ABOUT* = ICM_RESERVED + 11 + ICM_GETERRORTEXT* = ICM_RESERVED + 12 + ICM_GETFORMATNAME* = ICM_RESERVED + 20 + ICM_ENUMFORMATS* = ICM_RESERVED + 21 + ICM_GETDEFAULTQUALITY* = ICM_RESERVED + 30 + ICM_GETQUALITY* = ICM_RESERVED + 31 + ICM_SETQUALITY* = ICM_RESERVED + 32 + ICM_SET* = ICM_RESERVED + 40 + ICM_GET* = ICM_RESERVED + 41 + ICM_FRAMERATE* = mmioFOURCC('F', 'r', 'm', 'R') + ICM_KEYFRAMERATE* = mmioFOURCC('K', 'e', 'y', 'R') + ICM_COMPRESS_GET_FORMAT* = ICM_USER + 4 + ICM_COMPRESS_GET_SIZE* = ICM_USER + 5 + ICM_COMPRESS_QUERY* = ICM_USER + 6 + ICM_COMPRESS_BEGIN* = ICM_USER + 7 + ICM_COMPRESS* = ICM_USER + 8 + ICM_COMPRESS_END* = ICM_USER + 9 + ICM_DECOMPRESS_GET_FORMAT* = ICM_USER + 10 + ICM_DECOMPRESS_QUERY* = ICM_USER + 11 + ICM_DECOMPRESS_BEGIN* = ICM_USER + 12 + ICM_DECOMPRESS* = ICM_USER + 13 + ICM_DECOMPRESS_END* = ICM_USER + 14 + ICM_DECOMPRESS_SET_PALETTE* = ICM_USER + 29 + ICM_DECOMPRESS_GET_PALETTE* = ICM_USER + 30 + ICM_DRAW_QUERY* = ICM_USER + 31 + ICM_DRAW_BEGIN* = ICM_USER + 15 + ICM_DRAW_GET_PALETTE* = ICM_USER + 16 + ICM_DRAW_UPDATE* = ICM_USER + 17 + ICM_DRAW_START* = ICM_USER + 18 + ICM_DRAW_STOP* = ICM_USER + 19 + ICM_DRAW_BITS* = ICM_USER + 20 + ICM_DRAW_END* = ICM_USER + 21 + ICM_DRAW_GETTIME* = ICM_USER + 32 + ICM_DRAW* = ICM_USER + 33 + ICM_DRAW_WINDOW* = ICM_USER + 34 + ICM_DRAW_SETTIME* = ICM_USER + 35 + ICM_DRAW_REALIZE* = ICM_USER + 36 + ICM_DRAW_FLUSH* = ICM_USER + 37 + ICM_DRAW_RENDERBUFFER* = ICM_USER + 38 + ICM_DRAW_START_PLAY* = ICM_USER + 39 + ICM_DRAW_STOP_PLAY* = ICM_USER + 40 + ICM_DRAW_SUGGESTFORMAT* = ICM_USER + 50 + ICM_DRAW_CHANGEPALETTE* = ICM_USER + 51 + ICM_DRAW_IDLE* = ICM_USER + 52 + ICM_GETBUFFERSWANTED* = ICM_USER + 41 + ICM_GETDEFAULTKEYFRAMERATE* = ICM_USER + 42 + ICM_DECOMPRESSEX_BEGIN* = ICM_USER + 60 + ICM_DECOMPRESSEX_QUERY* = ICM_USER + 61 + ICM_DECOMPRESSEX* = ICM_USER + 62 + ICM_DECOMPRESSEX_END* = ICM_USER + 63 + ICM_COMPRESS_FRAMES_INFO* = ICM_USER + 70 + ICM_COMPRESS_FRAMES* = ICM_USER + 71 + ICM_SET_STATUS_PROC* = ICM_USER + 72 VIDCF_QUALITY* = 0x0001 VIDCF_CRUNCH* = 0x0002 VIDCF_TEMPORAL* = 0x0004 @@ -689,29 +808,31 @@ PD_STRETCHDIB_1_1_OK* = 0x0004 PD_STRETCHDIB_1_2_OK* = 0x0008 PD_STRETCHDIB_1_N_OK* = 0x0010 - formtypeAVI* = mmioFOURCC('A','V','I',' ') - listtypeAVIHEADER* = mmioFOURCC('h','d','r','l') - ckidAVIMAINHDR* = mmioFOURCC('a','v','i','h') - listtypeSTREAMHEADER* = mmioFOURCC('s','t','r','l') - ckidSTREAMHEADER* = mmioFOURCC('s','t','r','h') - ckidSTREAMFORMAT* = mmioFOURCC('s','t','r','f') - ckidSTREAMHANDLERDATA* = mmioFOURCC('s','t','r','d') - ckidSTREAMNAME* = mmioFOURCC('s','t','r','n') - listtypeAVIMOVIE* = mmioFOURCC('m','o','v','i') - listtypeAVIRECORD* = mmioFOURCC('r','e','c',' ') - ckidAVINEWINDEX* = mmioFOURCC('i','d','x','1') + formtypeAVI* = mmioFOURCC('A', 'V', 'I', ' ') + listtypeAVIHEADER* = mmioFOURCC('h', 'd', 'r', 'l') + ckidAVIMAINHDR* = mmioFOURCC('a', 'v', 'i', 'h') + listtypeSTREAMHEADER* = mmioFOURCC('s', 't', 'r', 'l') + ckidSTREAMHEADER* = mmioFOURCC('s', 't', 'r', 'h') + ckidSTREAMFORMAT* = mmioFOURCC('s', 't', 'r', 'f') + ckidSTREAMHANDLERDATA* = mmioFOURCC('s', 't', 'r', 'd') + ckidSTREAMNAME* = mmioFOURCC('s', 't', 'r', 'n') + listtypeAVIMOVIE* = mmioFOURCC('m', 'o', 'v', 'i') + listtypeAVIRECORD* = mmioFOURCC('r', 'e', 'c', ' ') + ckidAVINEWINDEX* = mmioFOURCC('i', 'd', 'x', '1') streamtypeANY* = 0 - streamtypeVIDEO* = mmioFOURCC('v','i','d','s') - streamtypeAUDIO* = mmioFOURCC('a','u','d','s') - streamtypeMIDI* = mmioFOURCC('m','i','d','s') - streamtypeTEXT* = mmioFOURCC('t','x','t','s') -template aviTWOCC*(c0: untyped, c1: untyped): untyped = c0.DWORD or (c1.DWORD shl 8) + streamtypeVIDEO* = mmioFOURCC('v', 'i', 'd', 's') + streamtypeAUDIO* = mmioFOURCC('a', 'u', 'd', 's') + streamtypeMIDI* = mmioFOURCC('m', 'i', 'd', 's') + streamtypeTEXT* = mmioFOURCC('t', 'x', 't', 's') +template aviTWOCC*(c0: untyped, c1: untyped): untyped = + c0.DWORD or (c1.DWORD shl 8) + const - cktypeDIBbits* = aviTWOCC('d','b') - cktypeDIBcompressed* = aviTWOCC('d','c') - cktypePALchange* = aviTWOCC('p','c') - cktypeWAVEbytes* = aviTWOCC('w','b') - ckidAVIPADDING* = mmioFOURCC('J','U','N','K') + cktypeDIBbits* = aviTWOCC('d', 'b') + cktypeDIBcompressed* = aviTWOCC('d', 'c') + cktypePALchange* = aviTWOCC('p', 'c') + cktypeWAVEbytes* = aviTWOCC('w', 'b') + ckidAVIPADDING* = mmioFOURCC('J', 'U', 'N', 'K') AVIF_HASINDEX* = 0x00000010 AVIF_MUSTUSEINDEX* = 0x00000020 AVIF_ISINTERLEAVED* = 0x00000100 @@ -773,9 +894,11 @@ SEARCH_FORWARD* = FIND_NEXT SEARCH_KEY* = FIND_KEY SEARCH_ANY* = FIND_ANY - comptypeDIB* = mmioFOURCC('D','I','B',' ') + comptypeDIB* = mmioFOURCC('D', 'I', 'B', ' ') AVIERR_OK* = 0 -template MAKE_AVIERR*(error: untyped): SCODE = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, error + 0x4000) +template MAKE_AVIERR*(error: untyped): SCODE = + MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, error + 0x4000) + const AVIERR_UNSUPPORTED* = MAKE_AVIERR(101) AVIERR_BADFORMAT* = MAKE_AVIERR(102) @@ -817,108 +940,108 @@ MCIWNDF_RECORD* = 0x2000 MCIWNDF_NOERRORDLG* = 0x4000 MCIWNDF_NOOPEN* = 0x8000 - MCIWNDM_GETDEVICEID* = WM_USER+100 - MCIWNDM_GETSTART* = WM_USER+103 - MCIWNDM_GETLENGTH* = WM_USER+104 - MCIWNDM_GETEND* = WM_USER+105 - MCIWNDM_EJECT* = WM_USER+107 - MCIWNDM_SETZOOM* = WM_USER+108 - MCIWNDM_GETZOOM* = WM_USER+109 - MCIWNDM_SETVOLUME* = WM_USER+110 - MCIWNDM_GETVOLUME* = WM_USER+111 - MCIWNDM_SETSPEED* = WM_USER+112 - MCIWNDM_GETSPEED* = WM_USER+113 - MCIWNDM_SETREPEAT* = WM_USER+114 - MCIWNDM_GETREPEAT* = WM_USER+115 - MCIWNDM_REALIZE* = WM_USER+118 - MCIWNDM_VALIDATEMEDIA* = WM_USER+121 - MCIWNDM_PLAYFROM* = WM_USER+122 - MCIWNDM_PLAYTO* = WM_USER+123 - MCIWNDM_GETPALETTE* = WM_USER+126 - MCIWNDM_SETPALETTE* = WM_USER+127 - MCIWNDM_SETTIMERS* = WM_USER+129 - MCIWNDM_SETACTIVETIMER* = WM_USER+130 - MCIWNDM_SETINACTIVETIMER* = WM_USER+131 - MCIWNDM_GETACTIVETIMER* = WM_USER+132 - MCIWNDM_GETINACTIVETIMER* = WM_USER+133 - MCIWNDM_CHANGESTYLES* = WM_USER+135 - MCIWNDM_GETSTYLES* = WM_USER+136 - MCIWNDM_GETALIAS* = WM_USER+137 - MCIWNDM_PLAYREVERSE* = WM_USER+139 - MCIWNDM_GET_SOURCE* = WM_USER+140 - MCIWNDM_PUT_SOURCE* = WM_USER+141 - MCIWNDM_GET_DEST* = WM_USER+142 - MCIWNDM_PUT_DEST* = WM_USER+143 - MCIWNDM_CAN_PLAY* = WM_USER+144 - MCIWNDM_CAN_WINDOW* = WM_USER+145 - MCIWNDM_CAN_RECORD* = WM_USER+146 - MCIWNDM_CAN_SAVE* = WM_USER+147 - MCIWNDM_CAN_EJECT* = WM_USER+148 - MCIWNDM_CAN_CONFIG* = WM_USER+149 - MCIWNDM_PALETTEKICK* = WM_USER+150 - MCIWNDM_OPENINTERFACE* = WM_USER+151 - MCIWNDM_SETOWNER* = WM_USER+152 - MCIWNDM_SENDSTRINGA* = WM_USER+101 - MCIWNDM_GETPOSITIONA* = WM_USER+102 - MCIWNDM_GETMODEA* = WM_USER+106 - MCIWNDM_SETTIMEFORMATA* = WM_USER+119 - MCIWNDM_GETTIMEFORMATA* = WM_USER+120 - MCIWNDM_GETFILENAMEA* = WM_USER+124 - MCIWNDM_GETDEVICEA* = WM_USER+125 - MCIWNDM_GETERRORA* = WM_USER+128 - MCIWNDM_NEWA* = WM_USER+134 - MCIWNDM_RETURNSTRINGA* = WM_USER+138 - MCIWNDM_OPENA* = WM_USER+153 - MCIWNDM_SENDSTRINGW* = WM_USER+201 - MCIWNDM_GETPOSITIONW* = WM_USER+202 - MCIWNDM_GETMODEW* = WM_USER+206 - MCIWNDM_SETTIMEFORMATW* = WM_USER+219 - MCIWNDM_GETTIMEFORMATW* = WM_USER+220 - MCIWNDM_GETFILENAMEW* = WM_USER+224 - MCIWNDM_GETDEVICEW* = WM_USER+225 - MCIWNDM_GETERRORW* = WM_USER+228 - MCIWNDM_NEWW* = WM_USER+234 - MCIWNDM_RETURNSTRINGW* = WM_USER+238 - MCIWNDM_OPENW* = WM_USER+252 - MCIWNDM_NOTIFYMODE* = WM_USER+200 - MCIWNDM_NOTIFYPOS* = WM_USER+201 - MCIWNDM_NOTIFYSIZE* = WM_USER+202 - MCIWNDM_NOTIFYMEDIA* = WM_USER+203 - MCIWNDM_NOTIFYERROR* = WM_USER+205 + MCIWNDM_GETDEVICEID* = WM_USER + 100 + MCIWNDM_GETSTART* = WM_USER + 103 + MCIWNDM_GETLENGTH* = WM_USER + 104 + MCIWNDM_GETEND* = WM_USER + 105 + MCIWNDM_EJECT* = WM_USER + 107 + MCIWNDM_SETZOOM* = WM_USER + 108 + MCIWNDM_GETZOOM* = WM_USER + 109 + MCIWNDM_SETVOLUME* = WM_USER + 110 + MCIWNDM_GETVOLUME* = WM_USER + 111 + MCIWNDM_SETSPEED* = WM_USER + 112 + MCIWNDM_GETSPEED* = WM_USER + 113 + MCIWNDM_SETREPEAT* = WM_USER + 114 + MCIWNDM_GETREPEAT* = WM_USER + 115 + MCIWNDM_REALIZE* = WM_USER + 118 + MCIWNDM_VALIDATEMEDIA* = WM_USER + 121 + MCIWNDM_PLAYFROM* = WM_USER + 122 + MCIWNDM_PLAYTO* = WM_USER + 123 + MCIWNDM_GETPALETTE* = WM_USER + 126 + MCIWNDM_SETPALETTE* = WM_USER + 127 + MCIWNDM_SETTIMERS* = WM_USER + 129 + MCIWNDM_SETACTIVETIMER* = WM_USER + 130 + MCIWNDM_SETINACTIVETIMER* = WM_USER + 131 + MCIWNDM_GETACTIVETIMER* = WM_USER + 132 + MCIWNDM_GETINACTIVETIMER* = WM_USER + 133 + MCIWNDM_CHANGESTYLES* = WM_USER + 135 + MCIWNDM_GETSTYLES* = WM_USER + 136 + MCIWNDM_GETALIAS* = WM_USER + 137 + MCIWNDM_PLAYREVERSE* = WM_USER + 139 + MCIWNDM_GET_SOURCE* = WM_USER + 140 + MCIWNDM_PUT_SOURCE* = WM_USER + 141 + MCIWNDM_GET_DEST* = WM_USER + 142 + MCIWNDM_PUT_DEST* = WM_USER + 143 + MCIWNDM_CAN_PLAY* = WM_USER + 144 + MCIWNDM_CAN_WINDOW* = WM_USER + 145 + MCIWNDM_CAN_RECORD* = WM_USER + 146 + MCIWNDM_CAN_SAVE* = WM_USER + 147 + MCIWNDM_CAN_EJECT* = WM_USER + 148 + MCIWNDM_CAN_CONFIG* = WM_USER + 149 + MCIWNDM_PALETTEKICK* = WM_USER + 150 + MCIWNDM_OPENINTERFACE* = WM_USER + 151 + MCIWNDM_SETOWNER* = WM_USER + 152 + MCIWNDM_SENDSTRINGA* = WM_USER + 101 + MCIWNDM_GETPOSITIONA* = WM_USER + 102 + MCIWNDM_GETMODEA* = WM_USER + 106 + MCIWNDM_SETTIMEFORMATA* = WM_USER + 119 + MCIWNDM_GETTIMEFORMATA* = WM_USER + 120 + MCIWNDM_GETFILENAMEA* = WM_USER + 124 + MCIWNDM_GETDEVICEA* = WM_USER + 125 + MCIWNDM_GETERRORA* = WM_USER + 128 + MCIWNDM_NEWA* = WM_USER + 134 + MCIWNDM_RETURNSTRINGA* = WM_USER + 138 + MCIWNDM_OPENA* = WM_USER + 153 + MCIWNDM_SENDSTRINGW* = WM_USER + 201 + MCIWNDM_GETPOSITIONW* = WM_USER + 202 + MCIWNDM_GETMODEW* = WM_USER + 206 + MCIWNDM_SETTIMEFORMATW* = WM_USER + 219 + MCIWNDM_GETTIMEFORMATW* = WM_USER + 220 + MCIWNDM_GETFILENAMEW* = WM_USER + 224 + MCIWNDM_GETDEVICEW* = WM_USER + 225 + MCIWNDM_GETERRORW* = WM_USER + 228 + MCIWNDM_NEWW* = WM_USER + 234 + MCIWNDM_RETURNSTRINGW* = WM_USER + 238 + MCIWNDM_OPENW* = WM_USER + 252 + MCIWNDM_NOTIFYMODE* = WM_USER + 200 + MCIWNDM_NOTIFYPOS* = WM_USER + 201 + MCIWNDM_NOTIFYSIZE* = WM_USER + 202 + MCIWNDM_NOTIFYMEDIA* = WM_USER + 203 + MCIWNDM_NOTIFYERROR* = WM_USER + 205 MCIWND_START* = -1 MCIWND_END* = -2 DV_ERR_OK* = 0 DV_ERR_BASE* = 1 DV_ERR_NONSPECIFIC* = DV_ERR_BASE - DV_ERR_BADFORMAT* = DV_ERR_BASE+1 - DV_ERR_STILLPLAYING* = DV_ERR_BASE+2 - DV_ERR_UNPREPARED* = DV_ERR_BASE+3 - DV_ERR_SYNC* = DV_ERR_BASE+4 - DV_ERR_TOOMANYCHANNELS* = DV_ERR_BASE+5 - DV_ERR_NOTDETECTED* = DV_ERR_BASE+6 - DV_ERR_BADINSTALL* = DV_ERR_BASE+7 - DV_ERR_CREATEPALETTE* = DV_ERR_BASE+8 - DV_ERR_SIZEFIELD* = DV_ERR_BASE+9 - DV_ERR_PARAM1* = DV_ERR_BASE+10 - DV_ERR_PARAM2* = DV_ERR_BASE+11 - DV_ERR_CONFIG1* = DV_ERR_BASE+12 - DV_ERR_CONFIG2* = DV_ERR_BASE+13 - DV_ERR_FLAGS* = DV_ERR_BASE+14 - DV_ERR_13* = DV_ERR_BASE+15 - DV_ERR_NOTSUPPORTED* = DV_ERR_BASE+16 - DV_ERR_NOMEM* = DV_ERR_BASE+17 - DV_ERR_ALLOCATED* = DV_ERR_BASE+18 - DV_ERR_BADDEVICEID* = DV_ERR_BASE+19 - DV_ERR_INVALHANDLE* = DV_ERR_BASE+20 - DV_ERR_BADERRNUM* = DV_ERR_BASE+21 - DV_ERR_NO_BUFFERS* = DV_ERR_BASE+22 - DV_ERR_MEM_CONFLICT* = DV_ERR_BASE+23 - DV_ERR_IO_CONFLICT* = DV_ERR_BASE+24 - DV_ERR_DMA_CONFLICT* = DV_ERR_BASE+25 - DV_ERR_INT_CONFLICT* = DV_ERR_BASE+26 - DV_ERR_PROTECT_ONLY* = DV_ERR_BASE+27 - DV_ERR_LASTERROR* = DV_ERR_BASE+27 - DV_ERR_USER_MSG* = DV_ERR_BASE+1000 + DV_ERR_BADFORMAT* = DV_ERR_BASE + 1 + DV_ERR_STILLPLAYING* = DV_ERR_BASE + 2 + DV_ERR_UNPREPARED* = DV_ERR_BASE + 3 + DV_ERR_SYNC* = DV_ERR_BASE + 4 + DV_ERR_TOOMANYCHANNELS* = DV_ERR_BASE + 5 + DV_ERR_NOTDETECTED* = DV_ERR_BASE + 6 + DV_ERR_BADINSTALL* = DV_ERR_BASE + 7 + DV_ERR_CREATEPALETTE* = DV_ERR_BASE + 8 + DV_ERR_SIZEFIELD* = DV_ERR_BASE + 9 + DV_ERR_PARAM1* = DV_ERR_BASE + 10 + DV_ERR_PARAM2* = DV_ERR_BASE + 11 + DV_ERR_CONFIG1* = DV_ERR_BASE + 12 + DV_ERR_CONFIG2* = DV_ERR_BASE + 13 + DV_ERR_FLAGS* = DV_ERR_BASE + 14 + DV_ERR_13* = DV_ERR_BASE + 15 + DV_ERR_NOTSUPPORTED* = DV_ERR_BASE + 16 + DV_ERR_NOMEM* = DV_ERR_BASE + 17 + DV_ERR_ALLOCATED* = DV_ERR_BASE + 18 + DV_ERR_BADDEVICEID* = DV_ERR_BASE + 19 + DV_ERR_INVALHANDLE* = DV_ERR_BASE + 20 + DV_ERR_BADERRNUM* = DV_ERR_BASE + 21 + DV_ERR_NO_BUFFERS* = DV_ERR_BASE + 22 + DV_ERR_MEM_CONFLICT* = DV_ERR_BASE + 23 + DV_ERR_IO_CONFLICT* = DV_ERR_BASE + 24 + DV_ERR_DMA_CONFLICT* = DV_ERR_BASE + 25 + DV_ERR_INT_CONFLICT* = DV_ERR_BASE + 26 + DV_ERR_PROTECT_ONLY* = DV_ERR_BASE + 27 + DV_ERR_LASTERROR* = DV_ERR_BASE + 27 + DV_ERR_USER_MSG* = DV_ERR_BASE + 1000 DV_VM_OPEN* = MM_DRVM_OPEN DV_VM_CLOSE* = MM_DRVM_CLOSE DV_VM_DATA* = MM_DRVM_DATA @@ -948,87 +1071,87 @@ DVM_USER* = 0X4000 DVM_CONFIGURE_START* = 0x1000 DVM_CONFIGURE_END* = 0x1FFF - DVM_PALETTE* = DVM_CONFIGURE_START+1 - DVM_FORMAT* = DVM_CONFIGURE_START+2 - DVM_PALETTERGB555* = DVM_CONFIGURE_START+3 - DVM_SRC_RECT* = DVM_CONFIGURE_START+4 - DVM_DST_RECT* = DVM_CONFIGURE_START+5 + DVM_PALETTE* = DVM_CONFIGURE_START + 1 + DVM_FORMAT* = DVM_CONFIGURE_START + 2 + DVM_PALETTERGB555* = DVM_CONFIGURE_START + 3 + DVM_SRC_RECT* = DVM_CONFIGURE_START + 4 + DVM_DST_RECT* = DVM_CONFIGURE_START + 5 WM_CAP_START* = WM_USER - WM_CAP_UNICODE_START* = WM_USER+100 - WM_CAP_GET_CAPSTREAMPTR* = WM_CAP_START+1 - WM_CAP_SET_CALLBACK_ERRORW* = WM_CAP_UNICODE_START+2 - WM_CAP_SET_CALLBACK_STATUSW* = WM_CAP_UNICODE_START+3 - WM_CAP_SET_CALLBACK_ERRORA* = WM_CAP_START+2 - WM_CAP_SET_CALLBACK_STATUSA* = WM_CAP_START+3 - WM_CAP_SET_CALLBACK_YIELD* = WM_CAP_START+4 - WM_CAP_SET_CALLBACK_FRAME* = WM_CAP_START+5 - WM_CAP_SET_CALLBACK_VIDEOSTREAM* = WM_CAP_START+6 - WM_CAP_SET_CALLBACK_WAVESTREAM* = WM_CAP_START+7 - WM_CAP_GET_USER_DATA* = WM_CAP_START+8 - WM_CAP_SET_USER_DATA* = WM_CAP_START+9 - WM_CAP_DRIVER_CONNECT* = WM_CAP_START+10 - WM_CAP_DRIVER_DISCONNECT* = WM_CAP_START+11 - WM_CAP_DRIVER_GET_NAMEA* = WM_CAP_START+12 - WM_CAP_DRIVER_GET_VERSIONA* = WM_CAP_START+13 - WM_CAP_DRIVER_GET_NAMEW* = WM_CAP_UNICODE_START+12 - WM_CAP_DRIVER_GET_VERSIONW* = WM_CAP_UNICODE_START+13 - WM_CAP_DRIVER_GET_CAPS* = WM_CAP_START+14 - WM_CAP_FILE_SET_CAPTURE_FILEA* = WM_CAP_START+20 - WM_CAP_FILE_GET_CAPTURE_FILEA* = WM_CAP_START+21 - WM_CAP_FILE_SAVEASA* = WM_CAP_START+23 - WM_CAP_FILE_SAVEDIBA* = WM_CAP_START+25 - WM_CAP_FILE_SET_CAPTURE_FILEW* = WM_CAP_UNICODE_START+20 - WM_CAP_FILE_GET_CAPTURE_FILEW* = WM_CAP_UNICODE_START+21 - WM_CAP_FILE_SAVEASW* = WM_CAP_UNICODE_START+23 - WM_CAP_FILE_SAVEDIBW* = WM_CAP_UNICODE_START+25 - WM_CAP_FILE_ALLOCATE* = WM_CAP_START+22 - WM_CAP_FILE_SET_INFOCHUNK* = WM_CAP_START+24 - WM_CAP_EDIT_COPY* = WM_CAP_START+30 - WM_CAP_SET_AUDIOFORMAT* = WM_CAP_START+35 - WM_CAP_GET_AUDIOFORMAT* = WM_CAP_START+36 - WM_CAP_DLG_VIDEOFORMAT* = WM_CAP_START+41 - WM_CAP_DLG_VIDEOSOURCE* = WM_CAP_START+42 - WM_CAP_DLG_VIDEODISPLAY* = WM_CAP_START+43 - WM_CAP_GET_VIDEOFORMAT* = WM_CAP_START+44 - WM_CAP_SET_VIDEOFORMAT* = WM_CAP_START+45 - WM_CAP_DLG_VIDEOCOMPRESSION* = WM_CAP_START+46 - WM_CAP_SET_PREVIEW* = WM_CAP_START+50 - WM_CAP_SET_OVERLAY* = WM_CAP_START+51 - WM_CAP_SET_PREVIEWRATE* = WM_CAP_START+52 - WM_CAP_SET_SCALE* = WM_CAP_START+53 - WM_CAP_GET_STATUS* = WM_CAP_START+54 - WM_CAP_SET_SCROLL* = WM_CAP_START+55 - WM_CAP_GRAB_FRAME* = WM_CAP_START+60 - WM_CAP_GRAB_FRAME_NOSTOP* = WM_CAP_START+61 - WM_CAP_SEQUENCE* = WM_CAP_START+62 - WM_CAP_SEQUENCE_NOFILE* = WM_CAP_START+63 - WM_CAP_SET_SEQUENCE_SETUP* = WM_CAP_START+64 - WM_CAP_GET_SEQUENCE_SETUP* = WM_CAP_START+65 - WM_CAP_SET_MCI_DEVICEA* = WM_CAP_START+66 - WM_CAP_GET_MCI_DEVICEA* = WM_CAP_START+67 - WM_CAP_SET_MCI_DEVICEW* = WM_CAP_UNICODE_START+66 - WM_CAP_GET_MCI_DEVICEW* = WM_CAP_UNICODE_START+67 - WM_CAP_STOP* = WM_CAP_START+68 - WM_CAP_ABORT* = WM_CAP_START+69 - WM_CAP_SINGLE_FRAME_OPEN* = WM_CAP_START+70 - WM_CAP_SINGLE_FRAME_CLOSE* = WM_CAP_START+71 - WM_CAP_SINGLE_FRAME* = WM_CAP_START+72 - WM_CAP_PAL_OPENA* = WM_CAP_START+80 - WM_CAP_PAL_SAVEA* = WM_CAP_START+81 - WM_CAP_PAL_OPENW* = WM_CAP_UNICODE_START+80 - WM_CAP_PAL_SAVEW* = WM_CAP_UNICODE_START+81 - WM_CAP_PAL_PASTE* = WM_CAP_START+82 - WM_CAP_PAL_AUTOCREATE* = WM_CAP_START+83 - WM_CAP_PAL_MANUALCREATE* = WM_CAP_START+84 - WM_CAP_SET_CALLBACK_CAPCONTROL* = WM_CAP_START+85 + WM_CAP_UNICODE_START* = WM_USER + 100 + WM_CAP_GET_CAPSTREAMPTR* = WM_CAP_START + 1 + WM_CAP_SET_CALLBACK_ERRORW* = WM_CAP_UNICODE_START + 2 + WM_CAP_SET_CALLBACK_STATUSW* = WM_CAP_UNICODE_START + 3 + WM_CAP_SET_CALLBACK_ERRORA* = WM_CAP_START + 2 + WM_CAP_SET_CALLBACK_STATUSA* = WM_CAP_START + 3 + WM_CAP_SET_CALLBACK_YIELD* = WM_CAP_START + 4 + WM_CAP_SET_CALLBACK_FRAME* = WM_CAP_START + 5 + WM_CAP_SET_CALLBACK_VIDEOSTREAM* = WM_CAP_START + 6 + WM_CAP_SET_CALLBACK_WAVESTREAM* = WM_CAP_START + 7 + WM_CAP_GET_USER_DATA* = WM_CAP_START + 8 + WM_CAP_SET_USER_DATA* = WM_CAP_START + 9 + WM_CAP_DRIVER_CONNECT* = WM_CAP_START + 10 + WM_CAP_DRIVER_DISCONNECT* = WM_CAP_START + 11 + WM_CAP_DRIVER_GET_NAMEA* = WM_CAP_START + 12 + WM_CAP_DRIVER_GET_VERSIONA* = WM_CAP_START + 13 + WM_CAP_DRIVER_GET_NAMEW* = WM_CAP_UNICODE_START + 12 + WM_CAP_DRIVER_GET_VERSIONW* = WM_CAP_UNICODE_START + 13 + WM_CAP_DRIVER_GET_CAPS* = WM_CAP_START + 14 + WM_CAP_FILE_SET_CAPTURE_FILEA* = WM_CAP_START + 20 + WM_CAP_FILE_GET_CAPTURE_FILEA* = WM_CAP_START + 21 + WM_CAP_FILE_SAVEASA* = WM_CAP_START + 23 + WM_CAP_FILE_SAVEDIBA* = WM_CAP_START + 25 + WM_CAP_FILE_SET_CAPTURE_FILEW* = WM_CAP_UNICODE_START + 20 + WM_CAP_FILE_GET_CAPTURE_FILEW* = WM_CAP_UNICODE_START + 21 + WM_CAP_FILE_SAVEASW* = WM_CAP_UNICODE_START + 23 + WM_CAP_FILE_SAVEDIBW* = WM_CAP_UNICODE_START + 25 + WM_CAP_FILE_ALLOCATE* = WM_CAP_START + 22 + WM_CAP_FILE_SET_INFOCHUNK* = WM_CAP_START + 24 + WM_CAP_EDIT_COPY* = WM_CAP_START + 30 + WM_CAP_SET_AUDIOFORMAT* = WM_CAP_START + 35 + WM_CAP_GET_AUDIOFORMAT* = WM_CAP_START + 36 + WM_CAP_DLG_VIDEOFORMAT* = WM_CAP_START + 41 + WM_CAP_DLG_VIDEOSOURCE* = WM_CAP_START + 42 + WM_CAP_DLG_VIDEODISPLAY* = WM_CAP_START + 43 + WM_CAP_GET_VIDEOFORMAT* = WM_CAP_START + 44 + WM_CAP_SET_VIDEOFORMAT* = WM_CAP_START + 45 + WM_CAP_DLG_VIDEOCOMPRESSION* = WM_CAP_START + 46 + WM_CAP_SET_PREVIEW* = WM_CAP_START + 50 + WM_CAP_SET_OVERLAY* = WM_CAP_START + 51 + WM_CAP_SET_PREVIEWRATE* = WM_CAP_START + 52 + WM_CAP_SET_SCALE* = WM_CAP_START + 53 + WM_CAP_GET_STATUS* = WM_CAP_START + 54 + WM_CAP_SET_SCROLL* = WM_CAP_START + 55 + WM_CAP_GRAB_FRAME* = WM_CAP_START + 60 + WM_CAP_GRAB_FRAME_NOSTOP* = WM_CAP_START + 61 + WM_CAP_SEQUENCE* = WM_CAP_START + 62 + WM_CAP_SEQUENCE_NOFILE* = WM_CAP_START + 63 + WM_CAP_SET_SEQUENCE_SETUP* = WM_CAP_START + 64 + WM_CAP_GET_SEQUENCE_SETUP* = WM_CAP_START + 65 + WM_CAP_SET_MCI_DEVICEA* = WM_CAP_START + 66 + WM_CAP_GET_MCI_DEVICEA* = WM_CAP_START + 67 + WM_CAP_SET_MCI_DEVICEW* = WM_CAP_UNICODE_START + 66 + WM_CAP_GET_MCI_DEVICEW* = WM_CAP_UNICODE_START + 67 + WM_CAP_STOP* = WM_CAP_START + 68 + WM_CAP_ABORT* = WM_CAP_START + 69 + WM_CAP_SINGLE_FRAME_OPEN* = WM_CAP_START + 70 + WM_CAP_SINGLE_FRAME_CLOSE* = WM_CAP_START + 71 + WM_CAP_SINGLE_FRAME* = WM_CAP_START + 72 + WM_CAP_PAL_OPENA* = WM_CAP_START + 80 + WM_CAP_PAL_SAVEA* = WM_CAP_START + 81 + WM_CAP_PAL_OPENW* = WM_CAP_UNICODE_START + 80 + WM_CAP_PAL_SAVEW* = WM_CAP_UNICODE_START + 81 + WM_CAP_PAL_PASTE* = WM_CAP_START + 82 + WM_CAP_PAL_AUTOCREATE* = WM_CAP_START + 83 + WM_CAP_PAL_MANUALCREATE* = WM_CAP_START + 84 + WM_CAP_SET_CALLBACK_CAPCONTROL* = WM_CAP_START + 85 WM_CAP_UNICODE_END* = WM_CAP_PAL_SAVEW WM_CAP_END* = WM_CAP_UNICODE_END AVSTREAMMASTER_AUDIO* = 0 AVSTREAMMASTER_NONE* = 1 CONTROLCALLBACK_PREROLL* = 1 CONTROLCALLBACK_CAPTURING* = 2 - infotypeDIGITIZATION_TIME* = mmioFOURCC('I','D','I','T') - infotypeSMPTE_TIME* = mmioFOURCC('I','S','M','P') + infotypeDIGITIZATION_TIME* = mmioFOURCC('I', 'D', 'I', 'T') + infotypeSMPTE_TIME* = mmioFOURCC('I', 'S', 'M', 'P') IDS_CAP_BEGIN* = 300 IDS_CAP_END* = 301 IDS_CAP_INFO* = 401 @@ -1087,23 +1210,23 @@ IDS_CAP_STAT_VIDEOAUDIO* = 511 IDS_CAP_STAT_VIDEOONLY* = 512 IDS_CAP_STAT_FRAMESDROPPED* = 513 - DRV_MAPPER_PREFERRED_INPUT_GET* = DRV_USER+0 - DRV_MAPPER_PREFERRED_OUTPUT_GET* = DRV_USER+2 + DRV_MAPPER_PREFERRED_INPUT_GET* = DRV_USER + 0 + DRV_MAPPER_PREFERRED_OUTPUT_GET* = DRV_USER + 2 DRVM_MAPPER* = 0x2000 - DRVM_MAPPER_STATUS* = DRVM_MAPPER+0 - WIDM_MAPPER_STATUS* = DRVM_MAPPER_STATUS+0 + DRVM_MAPPER_STATUS* = DRVM_MAPPER + 0 + WIDM_MAPPER_STATUS* = DRVM_MAPPER_STATUS + 0 WAVEIN_MAPPER_STATUS_DEVICE* = 0 WAVEIN_MAPPER_STATUS_MAPPED* = 1 WAVEIN_MAPPER_STATUS_FORMAT* = 2 - WODM_MAPPER_STATUS* = DRVM_MAPPER_STATUS+0 + WODM_MAPPER_STATUS* = DRVM_MAPPER_STATUS + 0 WAVEOUT_MAPPER_STATUS_DEVICE* = 0 WAVEOUT_MAPPER_STATUS_MAPPED* = 1 WAVEOUT_MAPPER_STATUS_FORMAT* = 2 ACMERR_BASE* = 512 - ACMERR_NOTPOSSIBLE* = ACMERR_BASE+0 - ACMERR_BUSY* = ACMERR_BASE+1 - ACMERR_UNPREPARED* = ACMERR_BASE+2 - ACMERR_CANCELED* = ACMERR_BASE+3 + ACMERR_NOTPOSSIBLE* = ACMERR_BASE + 0 + ACMERR_BUSY* = ACMERR_BASE + 1 + ACMERR_UNPREPARED* = ACMERR_BASE + 2 + ACMERR_CANCELED* = ACMERR_BASE + 3 MM_ACM_OPEN* = MM_STREAM_OPEN MM_ACM_CLOSE* = MM_STREAM_CLOSE MM_ACM_DONE* = MM_STREAM_DONE @@ -1132,19 +1255,19 @@ ACM_DRIVERADDF_TYPEMASK* = 0x00000007 ACM_DRIVERADDF_LOCAL* = 0x00000000 ACM_DRIVERADDF_GLOBAL* = 0x00000008 - ACMDM_USER* = DRV_USER+0x0000 - ACMDM_RESERVED_LOW* = DRV_USER+0x2000 - ACMDM_RESERVED_HIGH* = DRV_USER+0x2FFF + ACMDM_USER* = DRV_USER + 0x0000 + ACMDM_RESERVED_LOW* = DRV_USER + 0x2000 + ACMDM_RESERVED_HIGH* = DRV_USER + 0x2FFF ACMDM_BASE* = ACMDM_RESERVED_LOW - ACMDM_DRIVER_ABOUT* = ACMDM_BASE+11 + ACMDM_DRIVER_ABOUT* = ACMDM_BASE + 11 ACM_DRIVERPRIORITYF_ENABLE* = 0x00000001 ACM_DRIVERPRIORITYF_DISABLE* = 0x00000002 ACM_DRIVERPRIORITYF_ABLEMASK* = 0x00000003 ACM_DRIVERPRIORITYF_BEGIN* = 0x00010000 ACM_DRIVERPRIORITYF_END* = 0x00020000 ACM_DRIVERPRIORITYF_DEFERMASK* = 0x00030000 - ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC* = mmioFOURCC('a','u','d','c') - ACMDRIVERDETAILS_FCCCOMP_UNDEFINED* = mmioFOURCC('\0','\0','\0','\0') + ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC* = mmioFOURCC('a', 'u', 'd', 'c') + ACMDRIVERDETAILS_FCCCOMP_UNDEFINED* = mmioFOURCC('\0', '\0', '\0', '\0') ACMDRIVERDETAILS_SUPPORTF_CODEC* = 0x00000001 ACMDRIVERDETAILS_SUPPORTF_CONVERTER* = 0x00000002 ACMDRIVERDETAILS_SUPPORTF_FILTER* = 0x00000004 @@ -1181,9 +1304,9 @@ ACMHELPMSGCONTEXTHELPW* = "acmchoose_contexthelp" MM_ACM_FORMATCHOOSE* = 0x8000 FORMATCHOOSE_MESSAGE* = 0 - FORMATCHOOSE_FORMATTAG_VERIFY* = FORMATCHOOSE_MESSAGE+0 - FORMATCHOOSE_FORMAT_VERIFY* = FORMATCHOOSE_MESSAGE+1 - FORMATCHOOSE_CUSTOM_VERIFY* = FORMATCHOOSE_MESSAGE+2 + FORMATCHOOSE_FORMATTAG_VERIFY* = FORMATCHOOSE_MESSAGE + 0 + FORMATCHOOSE_FORMAT_VERIFY* = FORMATCHOOSE_MESSAGE + 1 + FORMATCHOOSE_CUSTOM_VERIFY* = FORMATCHOOSE_MESSAGE + 2 ACMFORMATCHOOSE_STYLEF_SHOWHELP* = 0x00000004 ACMFORMATCHOOSE_STYLEF_ENABLEHOOK* = 0x00000008 ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE* = 0x00000010 @@ -1200,9 +1323,9 @@ ACM_FILTERENUMF_DWFILTERTAG* = 0x00010000 MM_ACM_FILTERCHOOSE* = 0x8000 FILTERCHOOSE_MESSAGE* = 0 - FILTERCHOOSE_FILTERTAG_VERIFY* = FILTERCHOOSE_MESSAGE+0 - FILTERCHOOSE_FILTER_VERIFY* = FILTERCHOOSE_MESSAGE+1 - FILTERCHOOSE_CUSTOM_VERIFY* = FILTERCHOOSE_MESSAGE+2 + FILTERCHOOSE_FILTERTAG_VERIFY* = FILTERCHOOSE_MESSAGE + 0 + FILTERCHOOSE_FILTER_VERIFY* = FILTERCHOOSE_MESSAGE + 1 + FILTERCHOOSE_CUSTOM_VERIFY* = FILTERCHOOSE_MESSAGE + 2 ACMFILTERCHOOSE_STYLEF_SHOWHELP* = 0x00000004 ACMFILTERCHOOSE_STYLEF_ENABLEHOOK* = 0x00000008 ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE* = 0x00000010 @@ -1222,24 +1345,66 @@ ACM_STREAMCONVERTF_START* = 0x00000010 ACM_STREAMCONVERTF_END* = 0x00000020 type - AVISAVECALLBACK* = proc (P1: int32): WINBOOL {.stdcall.} - CAPYIELDCALLBACK* = proc (hWnd: HWND): LRESULT {.stdcall.} - CAPSTATUSCALLBACKW* = proc (hWnd: HWND, nID: int32, lpsz: LPCWSTR): LRESULT {.stdcall.} - CAPERRORCALLBACKW* = proc (hWnd: HWND, nID: int32, lpsz: LPCWSTR): LRESULT {.stdcall.} - CAPSTATUSCALLBACKA* = proc (hWnd: HWND, nID: int32, lpsz: LPCSTR): LRESULT {.stdcall.} - CAPERRORCALLBACKA* = proc (hWnd: HWND, nID: int32, lpsz: LPCSTR): LRESULT {.stdcall.} - CAPVIDEOCALLBACK* = proc (hWnd: HWND, lpVHdr: LPVIDEOHDR): LRESULT {.stdcall.} - CAPWAVECALLBACK* = proc (hWnd: HWND, lpWHdr: LPWAVEHDR): LRESULT {.stdcall.} - CAPCONTROLCALLBACK* = proc (hWnd: HWND, nState: int32): LRESULT {.stdcall.} - ACMDRIVERENUMCB* = proc (hadid: HACMDRIVERID, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFORMATTAGENUMCBA* = proc (hadid: HACMDRIVERID, paftd: LPACMFORMATTAGDETAILSA, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFORMATTAGENUMCBW* = proc (hadid: HACMDRIVERID, paftd: LPACMFORMATTAGDETAILSW, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFORMATENUMCBA* = proc (hadid: HACMDRIVERID, pafd: LPACMFORMATDETAILSA, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFORMATENUMCBW* = proc (hadid: HACMDRIVERID, pafd: LPACMFORMATDETAILSW, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFILTERTAGENUMCBA* = proc (hadid: HACMDRIVERID, paftd: LPACMFILTERTAGDETAILSA, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFILTERTAGENUMCBW* = proc (hadid: HACMDRIVERID, paftd: LPACMFILTERTAGDETAILSW, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFILTERENUMCBA* = proc (hadid: HACMDRIVERID, pafd: LPACMFILTERDETAILSA, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} - ACMFILTERENUMCBW* = proc (hadid: HACMDRIVERID, pafd: LPACMFILTERDETAILSW, dwInstance: DWORD_PTR, fdwSupport: DWORD): WINBOOL {.stdcall.} + AVISAVECALLBACK* = proc(P1: int32): WINBOOL {.stdcall.} + CAPYIELDCALLBACK* = proc(hWnd: HWND): LRESULT {.stdcall.} + CAPSTATUSCALLBACKW* = proc(hWnd: HWND, nID: int32, lpsz: LPCWSTR): LRESULT {.stdcall.} + CAPERRORCALLBACKW* = proc(hWnd: HWND, nID: int32, lpsz: LPCWSTR): LRESULT {.stdcall.} + CAPSTATUSCALLBACKA* = proc(hWnd: HWND, nID: int32, lpsz: LPCSTR): LRESULT {.stdcall.} + CAPERRORCALLBACKA* = proc(hWnd: HWND, nID: int32, lpsz: LPCSTR): LRESULT {.stdcall.} + CAPVIDEOCALLBACK* = proc(hWnd: HWND, lpVHdr: LPVIDEOHDR): LRESULT {.stdcall.} + CAPWAVECALLBACK* = proc(hWnd: HWND, lpWHdr: LPWAVEHDR): LRESULT {.stdcall.} + CAPCONTROLCALLBACK* = proc(hWnd: HWND, nState: int32): LRESULT {.stdcall.} + ACMDRIVERENUMCB* = proc( + hadid: HACMDRIVERID, dwInstance: DWORD_PTR, fdwSupport: DWORD + ): WINBOOL {.stdcall.} + ACMFORMATTAGENUMCBA* = proc( + hadid: HACMDRIVERID, + paftd: LPACMFORMATTAGDETAILSA, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFORMATTAGENUMCBW* = proc( + hadid: HACMDRIVERID, + paftd: LPACMFORMATTAGDETAILSW, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFORMATENUMCBA* = proc( + hadid: HACMDRIVERID, + pafd: LPACMFORMATDETAILSA, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFORMATENUMCBW* = proc( + hadid: HACMDRIVERID, + pafd: LPACMFORMATDETAILSW, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFILTERTAGENUMCBA* = proc( + hadid: HACMDRIVERID, + paftd: LPACMFILTERTAGDETAILSA, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFILTERTAGENUMCBW* = proc( + hadid: HACMDRIVERID, + paftd: LPACMFILTERTAGDETAILSW, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFILTERENUMCBA* = proc( + hadid: HACMDRIVERID, + pafd: LPACMFILTERDETAILSA, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} + ACMFILTERENUMCBW* = proc( + hadid: HACMDRIVERID, + pafd: LPACMFILTERDETAILSW, + dwInstance: DWORD_PTR, + fdwSupport: DWORD, + ): WINBOOL {.stdcall.} TICOPEN* {.pure.} = object dwSize*: DWORD fccType*: DWORD @@ -1250,6 +1415,7 @@ pV1Reserved*: LPVOID pV2Reserved*: LPVOID dnDevNode*: DWORD + TICINFO* {.pure.} = object dwSize*: DWORD fccType*: DWORD @@ -1260,6 +1426,7 @@ szName*: array[16, WCHAR] szDescription*: array[128, WCHAR] szDriver*: array[128, WCHAR] + TICCOMPRESS* {.pure.} = object dwFlags*: DWORD lpbiOutput*: LPBITMAPINFOHEADER @@ -1273,6 +1440,7 @@ dwQuality*: DWORD lpbiPrev*: LPBITMAPINFOHEADER lpPrev*: LPVOID + ICCOMPRESSFRAMES* {.pure.} = object dwFlags*: DWORD lpbiOutput*: LPBITMAPINFOHEADER @@ -1288,12 +1456,16 @@ dwScale*: DWORD dwOverheadPerFrame*: DWORD dwReserved2*: DWORD - GetData*: proc(lInput: LPARAM, lFrame: LONG, lpBits: LPVOID, len: LONG): LONG {.stdcall.} - PutData*: proc(lOutput: LPARAM, lFrame: LONG, lpBits: LPVOID, len: LONG): LONG {.stdcall.} + GetData*: + proc(lInput: LPARAM, lFrame: LONG, lpBits: LPVOID, len: LONG): LONG {.stdcall.} + PutData*: + proc(lOutput: LPARAM, lFrame: LONG, lpBits: LPVOID, len: LONG): LONG {.stdcall.} + ICSETSTATUSPROC* {.pure.} = object dwFlags*: DWORD lParam*: LPARAM Status*: proc(lParam: LPARAM, message: UINT, l: LONG): LONG {.stdcall.} + TICDECOMPRESS* {.pure.} = object dwFlags*: DWORD lpbiInput*: LPBITMAPINFOHEADER @@ -1301,6 +1473,7 @@ lpbiOutput*: LPBITMAPINFOHEADER lpOutput*: LPVOID ckid*: DWORD + ICDECOMPRESSEX* {.pure.} = object dwFlags*: DWORD lpbiSrc*: LPBITMAPINFOHEADER @@ -1315,6 +1488,7 @@ ySrc*: int32 dxSrc*: int32 dySrc*: int32 + TICDRAWBEGIN* {.pure.} = object dwFlags*: DWORD hpal*: HPALETTE @@ -1331,12 +1505,14 @@ dySrc*: int32 dwRate*: DWORD dwScale*: DWORD + TICDRAW* {.pure.} = object dwFlags*: DWORD lpFormat*: LPVOID lpData*: LPVOID cbData*: DWORD lTime*: LONG + ICDRAWSUGGEST* {.pure.} = object lpbiIn*: LPBITMAPINFOHEADER lpbiSuggest*: LPBITMAPINFOHEADER @@ -1345,11 +1521,13 @@ dxDst*: int32 dyDst*: int32 hicDecompressor*: HIC + ICPALETTE* {.pure.} = object dwFlags*: DWORD iStart*: int32 iLen*: int32 lppe*: LPPALETTEENTRY + MainAVIHeader* {.pure.} = object dwMicroSecPerFrame*: DWORD dwMaxBytesPerSec*: DWORD @@ -1362,6 +1540,7 @@ dwWidth*: DWORD dwHeight*: DWORD dwReserved*: array[4, DWORD] + AVIStreamHeader* {.pure.} = object fccType*: FOURCC fccHandler*: FOURCC @@ -1377,532 +1556,1766 @@ dwQuality*: DWORD dwSampleSize*: DWORD rcFrame*: RECT + AVIINDEXENTRY* {.pure.} = object ckid*: DWORD dwFlags*: DWORD dwChunkOffset*: DWORD dwChunkLength*: DWORD + AVIPALCHANGE* {.pure.} = object bFirstEntry*: BYTE bNumEntries*: BYTE wFlags*: WORD peNew*: UncheckedArray[PALETTEENTRY] + proc VideoForWindowsVersion*(): DWORD {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICInfo*(fccType: DWORD, fccHandler: DWORD, lpicinfo: ptr TICINFO): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICInstall*(fccType: DWORD, fccHandler: DWORD, lParam: LPARAM, szDesc: LPSTR, wFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICRemove*(fccType: DWORD, fccHandler: DWORD, wFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICGetInfo*(hic: HIC, picinfo: ptr TICINFO, cb: DWORD): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICOpen*(fccType: DWORD, fccHandler: DWORD, wMode: UINT): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICOpenFunction*(fccType: DWORD, fccHandler: DWORD, wMode: UINT, lpfnHandler: FARPROC): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} +proc ICInfo*( + fccType: DWORD, fccHandler: DWORD, lpicinfo: ptr TICINFO +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICInstall*( + fccType: DWORD, fccHandler: DWORD, lParam: LPARAM, szDesc: LPSTR, wFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICRemove*( + fccType: DWORD, fccHandler: DWORD, wFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICGetInfo*( + hic: HIC, picinfo: ptr TICINFO, cb: DWORD +): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICOpen*( + fccType: DWORD, fccHandler: DWORD, wMode: UINT +): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICOpenFunction*( + fccType: DWORD, fccHandler: DWORD, wMode: UINT, lpfnHandler: FARPROC +): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} + proc ICClose*(hic: HIC): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICSendMessage*(hic: HIC, msg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICCompress*(hic: HIC, dwFlags: DWORD, lpbiOutput: LPBITMAPINFOHEADER, lpData: LPVOID, lpbiInput: LPBITMAPINFOHEADER, lpBits: LPVOID, lpckid: LPDWORD, lpdwFlags: LPDWORD, lFrameNum: LONG, dwFrameSize: DWORD, dwQuality: DWORD, lpbiPrev: LPBITMAPINFOHEADER, lpPrev: LPVOID): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} -proc ICDecompress*(hic: HIC, dwFlags: DWORD, lpbiFormat: LPBITMAPINFOHEADER, lpData: LPVOID, lpbi: LPBITMAPINFOHEADER, lpBits: LPVOID): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} -proc ICDrawBegin*(hic: HIC, dwFlags: DWORD, hpal: HPALETTE, hwnd: HWND, hdc: HDC, xDst: int32, yDst: int32, dxDst: int32, dyDst: int32, lpbi: LPBITMAPINFOHEADER, xSrc: int32, ySrc: int32, dxSrc: int32, dySrc: int32, dwRate: DWORD, dwScale: DWORD): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} -proc ICDraw*(hic: HIC, dwFlags: DWORD, lpFormat: LPVOID, lpData: LPVOID, cbData: DWORD, lTime: LONG): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} -proc ICLocate*(fccType: DWORD, fccHandler: DWORD, lpbiIn: LPBITMAPINFOHEADER, lpbiOut: LPBITMAPINFOHEADER, wFlags: WORD): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICGetDisplayFormat*(hic: HIC, lpbiIn: LPBITMAPINFOHEADER, lpbiOut: LPBITMAPINFOHEADER, BitDepth: int32, dx: int32, dy: int32): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICImageCompress*(hic: HIC, uiFlags: UINT, lpbiIn: LPBITMAPINFO, lpBits: LPVOID, lpbiOut: LPBITMAPINFO, lQuality: LONG, plSize: ptr LONG): HANDLE {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICImageDecompress*(hic: HIC, uiFlags: UINT, lpbiIn: LPBITMAPINFO, lpBits: LPVOID, lpbiOut: LPBITMAPINFO): HANDLE {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICCompressorChoose*(hwnd: HWND, uiFlags: UINT, pvIn: LPVOID, lpData: LPVOID, pc: PCOMPVARS, lpszTitle: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICSeqCompressFrameStart*(pc: PCOMPVARS, lpbiIn: LPBITMAPINFO): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICSeqCompressFrameEnd*(pc: PCOMPVARS): void {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICSeqCompressFrame*(pc: PCOMPVARS, uiFlags: UINT, lpBits: LPVOID, pfKey: ptr WINBOOL, plSize: ptr LONG): LPVOID {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc ICCompressorFree*(pc: PCOMPVARS): void {.winapi, stdcall, dynlib: "msvfw32", importc.} +proc ICSendMessage*( + hic: HIC, msg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR +): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICCompress*( + hic: HIC, + dwFlags: DWORD, + lpbiOutput: LPBITMAPINFOHEADER, + lpData: LPVOID, + lpbiInput: LPBITMAPINFOHEADER, + lpBits: LPVOID, + lpckid: LPDWORD, + lpdwFlags: LPDWORD, + lFrameNum: LONG, + dwFrameSize: DWORD, + dwQuality: DWORD, + lpbiPrev: LPBITMAPINFOHEADER, + lpPrev: LPVOID, +): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} + +proc ICDecompress*( + hic: HIC, + dwFlags: DWORD, + lpbiFormat: LPBITMAPINFOHEADER, + lpData: LPVOID, + lpbi: LPBITMAPINFOHEADER, + lpBits: LPVOID, +): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} + +proc ICDrawBegin*( + hic: HIC, + dwFlags: DWORD, + hpal: HPALETTE, + hwnd: HWND, + hdc: HDC, + xDst: int32, + yDst: int32, + dxDst: int32, + dyDst: int32, + lpbi: LPBITMAPINFOHEADER, + xSrc: int32, + ySrc: int32, + dxSrc: int32, + dySrc: int32, + dwRate: DWORD, + dwScale: DWORD, +): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} + +proc ICDraw*( + hic: HIC, dwFlags: DWORD, lpFormat: LPVOID, lpData: LPVOID, cbData: DWORD, lTime: LONG +): DWORD {.winapi, cdecl, dynlib: "msvfw32", importc.} + +proc ICLocate*( + fccType: DWORD, + fccHandler: DWORD, + lpbiIn: LPBITMAPINFOHEADER, + lpbiOut: LPBITMAPINFOHEADER, + wFlags: WORD, +): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICGetDisplayFormat*( + hic: HIC, + lpbiIn: LPBITMAPINFOHEADER, + lpbiOut: LPBITMAPINFOHEADER, + BitDepth: int32, + dx: int32, + dy: int32, +): HIC {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICImageCompress*( + hic: HIC, + uiFlags: UINT, + lpbiIn: LPBITMAPINFO, + lpBits: LPVOID, + lpbiOut: LPBITMAPINFO, + lQuality: LONG, + plSize: ptr LONG, +): HANDLE {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICImageDecompress*( + hic: HIC, uiFlags: UINT, lpbiIn: LPBITMAPINFO, lpBits: LPVOID, lpbiOut: LPBITMAPINFO +): HANDLE {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICCompressorChoose*( + hwnd: HWND, + uiFlags: UINT, + pvIn: LPVOID, + lpData: LPVOID, + pc: PCOMPVARS, + lpszTitle: LPSTR, +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICSeqCompressFrameStart*( + pc: PCOMPVARS, lpbiIn: LPBITMAPINFO +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICSeqCompressFrameEnd*( + pc: PCOMPVARS +): void {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICSeqCompressFrame*( + pc: PCOMPVARS, uiFlags: UINT, lpBits: LPVOID, pfKey: ptr WINBOOL, plSize: ptr LONG +): LPVOID {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc ICCompressorFree*( + pc: PCOMPVARS +): void {.winapi, stdcall, dynlib: "msvfw32", importc.} + proc DrawDibOpen*(): HDRAWDIB {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibClose*(hdd: HDRAWDIB): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibGetBuffer*(hdd: HDRAWDIB, lpbi: LPBITMAPINFOHEADER, dwSize: DWORD, dwFlags: DWORD): LPVOID {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibGetPalette*(hdd: HDRAWDIB): HPALETTE {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibSetPalette*(hdd: HDRAWDIB, hpal: HPALETTE): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibChangePalette*(hdd: HDRAWDIB, iStart: int32, iLen: int32, lppe: LPPALETTEENTRY): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibRealize*(hdd: HDRAWDIB, hdc: HDC, fBackground: WINBOOL): UINT {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibStart*(hdd: HDRAWDIB, rate: DWORD): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibStop*(hdd: HDRAWDIB): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibBegin*(hdd: HDRAWDIB, hdc: HDC, dxDst: int32, dyDst: int32, lpbi: LPBITMAPINFOHEADER, dxSrc: int32, dySrc: int32, wFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibDraw*(hdd: HDRAWDIB, hdc: HDC, xDst: int32, yDst: int32, dxDst: int32, dyDst: int32, lpbi: LPBITMAPINFOHEADER, lpBits: LPVOID, xSrc: int32, ySrc: int32, dxSrc: int32, dySrc: int32, wFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} +proc DrawDibClose*( + hdd: HDRAWDIB +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibGetBuffer*( + hdd: HDRAWDIB, lpbi: LPBITMAPINFOHEADER, dwSize: DWORD, dwFlags: DWORD +): LPVOID {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibGetPalette*( + hdd: HDRAWDIB +): HPALETTE {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibSetPalette*( + hdd: HDRAWDIB, hpal: HPALETTE +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibChangePalette*( + hdd: HDRAWDIB, iStart: int32, iLen: int32, lppe: LPPALETTEENTRY +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibRealize*( + hdd: HDRAWDIB, hdc: HDC, fBackground: WINBOOL +): UINT {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibStart*( + hdd: HDRAWDIB, rate: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibStop*( + hdd: HDRAWDIB +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibBegin*( + hdd: HDRAWDIB, + hdc: HDC, + dxDst: int32, + dyDst: int32, + lpbi: LPBITMAPINFOHEADER, + dxSrc: int32, + dySrc: int32, + wFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibDraw*( + hdd: HDRAWDIB, + hdc: HDC, + xDst: int32, + yDst: int32, + dxDst: int32, + dyDst: int32, + lpbi: LPBITMAPINFOHEADER, + lpBits: LPVOID, + xSrc: int32, + ySrc: int32, + dxSrc: int32, + dySrc: int32, + wFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + proc DrawDibEnd*(hdd: HDRAWDIB): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibTime*(hdd: HDRAWDIB, lpddtime: LPDRAWDIBTIME): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc DrawDibProfileDisplay*(lpbi: LPBITMAPINFOHEADER): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc StretchDIB*(biDst: LPBITMAPINFOHEADER, lpDst: LPVOID, DstX: int32, DstY: int32, DstXE: int32, DstYE: int32, biSrc: LPBITMAPINFOHEADER, lpSrc: LPVOID, SrcX: int32, SrcY: int32, SrcXE: int32, SrcYE: int32): void {.winapi, stdcall, dynlib: "msvfw32", importc.} +proc DrawDibTime*( + hdd: HDRAWDIB, lpddtime: LPDRAWDIBTIME +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc DrawDibProfileDisplay*( + lpbi: LPBITMAPINFOHEADER +): LRESULT {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc StretchDIB*( + biDst: LPBITMAPINFOHEADER, + lpDst: LPVOID, + DstX: int32, + DstY: int32, + DstXE: int32, + DstYE: int32, + biSrc: LPBITMAPINFOHEADER, + lpSrc: LPVOID, + SrcX: int32, + SrcY: int32, + SrcXE: int32, + SrcYE: int32, +): void {.winapi, stdcall, dynlib: "msvfw32", importc.} + proc AVIFileInit*(): void {.winapi, stdcall, dynlib: "avifil32", importc.} proc AVIFileExit*(): void {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileAddRef*(pfile: PAVIFILE): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileRelease*(pfile: PAVIFILE): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileOpenA*(ppfile: ptr PAVIFILE, szFile: LPCSTR, uMode: UINT, lpHandler: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileOpenW*(ppfile: ptr PAVIFILE, szFile: LPCWSTR, uMode: UINT, lpHandler: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileInfoW*(pfile: PAVIFILE, pfi: LPAVIFILEINFOW, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileInfoA*(pfile: PAVIFILE, pfi: LPAVIFILEINFOA, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileGetStream*(pfile: PAVIFILE, ppavi: ptr PAVISTREAM, fccType: DWORD, lParam: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileCreateStreamW*(pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileCreateStreamA*(pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOA): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileWriteData*(pfile: PAVIFILE, ckid: DWORD, lpData: LPVOID, cbData: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileReadData*(pfile: PAVIFILE, ckid: DWORD, lpData: LPVOID, lpcbData: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIFileEndRecord*(pfile: PAVIFILE): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamAddRef*(pavi: PAVISTREAM): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamRelease*(pavi: PAVISTREAM): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamInfoW*(pavi: PAVISTREAM, psi: LPAVISTREAMINFOW, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamInfoA*(pavi: PAVISTREAM, psi: LPAVISTREAMINFOA, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamFindSample*(pavi: PAVISTREAM, lPos: LONG, lFlags: LONG): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamReadFormat*(pavi: PAVISTREAM, lPos: LONG, lpFormat: LPVOID, lpcbFormat: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamSetFormat*(pavi: PAVISTREAM, lPos: LONG, lpFormat: LPVOID, cbFormat: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamReadData*(pavi: PAVISTREAM, fcc: DWORD, lp: LPVOID, lpcb: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamWriteData*(pavi: PAVISTREAM, fcc: DWORD, lp: LPVOID, cb: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamRead*(pavi: PAVISTREAM, lStart: LONG, lSamples: LONG, lpBuffer: LPVOID, cbBuffer: LONG, plBytes: ptr LONG, plSamples: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamWrite*(pavi: PAVISTREAM, lStart: LONG, lSamples: LONG, lpBuffer: LPVOID, cbBuffer: LONG, dwFlags: DWORD, plSampWritten: ptr LONG, plBytesWritten: ptr LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamStart*(pavi: PAVISTREAM): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamLength*(pavi: PAVISTREAM): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamTimeToSample*(pavi: PAVISTREAM, lTime: LONG): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamSampleToTime*(pavi: PAVISTREAM, lSample: LONG): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamBeginStreaming*(pavi: PAVISTREAM, lStart: LONG, lEnd: LONG, lRate: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamEndStreaming*(pavi: PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamGetFrameOpen*(pavi: PAVISTREAM, lpbiWanted: LPBITMAPINFOHEADER): PGETFRAME {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamGetFrame*(pg: PGETFRAME, lPos: LONG): LPVOID {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamGetFrameClose*(pg: PGETFRAME): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamOpenFromFileA*(ppavi: ptr PAVISTREAM, szFile: LPCSTR, fccType: DWORD, lParam: LONG, mode: UINT, pclsidHandler: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamOpenFromFileW*(ppavi: ptr PAVISTREAM, szFile: LPCWSTR, fccType: DWORD, lParam: LONG, mode: UINT, pclsidHandler: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamCreate*(ppavi: ptr PAVISTREAM, lParam1: LONG, lParam2: LONG, pclsidHandler: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIStreamFindKeyFrame*(pavi: PAVISTREAM, lPos: LONG, lFlags: LONG): LONG {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamFindSample".} -proc AVIStreamClose*(pavi: PAVISTREAM): ULONG {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamRelease".} -proc AVIFileClose*(pfile: PAVIFILE): ULONG {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileRelease".} -proc AVIStreamInit*(): void {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileInit".} -proc AVIStreamExit*(): void {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileExit".} -proc AVIMakeCompressedStream*(ppsCompressed: ptr PAVISTREAM, ppsSource: PAVISTREAM, lpOptions: ptr AVICOMPRESSOPTIONS, pclsidHandler: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVISaveVA*(szFile: LPCSTR, pclsidHandler: ptr CLSID, lpfnCallback: AVISAVECALLBACK, nStreams: int32, ppavi: ptr PAVISTREAM, plpOptions: ptr LPAVICOMPRESSOPTIONS): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVISaveVW*(szFile: LPCWSTR, pclsidHandler: ptr CLSID, lpfnCallback: AVISAVECALLBACK, nStreams: int32, ppavi: ptr PAVISTREAM, plpOptions: ptr LPAVICOMPRESSOPTIONS): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVISaveOptions*(hwnd: HWND, uiFlags: UINT, nStreams: int32, ppavi: ptr PAVISTREAM, plpOptions: ptr LPAVICOMPRESSOPTIONS): INT_PTR {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVISaveOptionsFree*(nStreams: int32, plpOptions: ptr LPAVICOMPRESSOPTIONS): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIBuildFilterW*(lpszFilter: LPWSTR, cbFilter: LONG, fSaving: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIBuildFilterA*(lpszFilter: LPSTR, cbFilter: LONG, fSaving: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIMakeFileFromStreams*(ppfile: ptr PAVIFILE, nStreams: int32, papStreams: ptr PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIMakeStreamFromClipboard*(cfFormat: UINT, hGlobal: HANDLE, ppstream: ptr PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIPutFileOnClipboard*(pf: PAVIFILE): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc AVIGetFromClipboard*(lppf: ptr PAVIFILE): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} +proc AVIFileAddRef*( + pfile: PAVIFILE +): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileRelease*( + pfile: PAVIFILE +): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileOpenA*( + ppfile: ptr PAVIFILE, szFile: LPCSTR, uMode: UINT, lpHandler: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileOpenW*( + ppfile: ptr PAVIFILE, szFile: LPCWSTR, uMode: UINT, lpHandler: LPCLSID +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileInfoW*( + pfile: PAVIFILE, pfi: LPAVIFILEINFOW, lSize: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileInfoA*( + pfile: PAVIFILE, pfi: LPAVIFILEINFOA, lSize: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileGetStream*( + pfile: PAVIFILE, ppavi: ptr PAVISTREAM, fccType: DWORD, lParam: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileCreateStreamW*( + pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileCreateStreamA*( + pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOA +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileWriteData*( + pfile: PAVIFILE, ckid: DWORD, lpData: LPVOID, cbData: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileReadData*( + pfile: PAVIFILE, ckid: DWORD, lpData: LPVOID, lpcbData: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIFileEndRecord*( + pfile: PAVIFILE +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamAddRef*( + pavi: PAVISTREAM +): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamRelease*( + pavi: PAVISTREAM +): ULONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamInfoW*( + pavi: PAVISTREAM, psi: LPAVISTREAMINFOW, lSize: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamInfoA*( + pavi: PAVISTREAM, psi: LPAVISTREAMINFOA, lSize: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamFindSample*( + pavi: PAVISTREAM, lPos: LONG, lFlags: LONG +): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamReadFormat*( + pavi: PAVISTREAM, lPos: LONG, lpFormat: LPVOID, lpcbFormat: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamSetFormat*( + pavi: PAVISTREAM, lPos: LONG, lpFormat: LPVOID, cbFormat: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamReadData*( + pavi: PAVISTREAM, fcc: DWORD, lp: LPVOID, lpcb: ptr LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamWriteData*( + pavi: PAVISTREAM, fcc: DWORD, lp: LPVOID, cb: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamRead*( + pavi: PAVISTREAM, + lStart: LONG, + lSamples: LONG, + lpBuffer: LPVOID, + cbBuffer: LONG, + plBytes: ptr LONG, + plSamples: ptr LONG, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamWrite*( + pavi: PAVISTREAM, + lStart: LONG, + lSamples: LONG, + lpBuffer: LPVOID, + cbBuffer: LONG, + dwFlags: DWORD, + plSampWritten: ptr LONG, + plBytesWritten: ptr LONG, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamStart*( + pavi: PAVISTREAM +): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamLength*( + pavi: PAVISTREAM +): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamTimeToSample*( + pavi: PAVISTREAM, lTime: LONG +): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamSampleToTime*( + pavi: PAVISTREAM, lSample: LONG +): LONG {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamBeginStreaming*( + pavi: PAVISTREAM, lStart: LONG, lEnd: LONG, lRate: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamEndStreaming*( + pavi: PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamGetFrameOpen*( + pavi: PAVISTREAM, lpbiWanted: LPBITMAPINFOHEADER +): PGETFRAME {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamGetFrame*( + pg: PGETFRAME, lPos: LONG +): LPVOID {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamGetFrameClose*( + pg: PGETFRAME +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamOpenFromFileA*( + ppavi: ptr PAVISTREAM, + szFile: LPCSTR, + fccType: DWORD, + lParam: LONG, + mode: UINT, + pclsidHandler: ptr CLSID, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamOpenFromFileW*( + ppavi: ptr PAVISTREAM, + szFile: LPCWSTR, + fccType: DWORD, + lParam: LONG, + mode: UINT, + pclsidHandler: ptr CLSID, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamCreate*( + ppavi: ptr PAVISTREAM, lParam1: LONG, lParam2: LONG, pclsidHandler: ptr CLSID +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIStreamFindKeyFrame*( + pavi: PAVISTREAM, lPos: LONG, lFlags: LONG +): LONG {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamFindSample".} + +proc AVIStreamClose*( + pavi: PAVISTREAM +): ULONG {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamRelease".} + +proc AVIFileClose*( + pfile: PAVIFILE +): ULONG {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileRelease".} + +proc AVIStreamInit*(): void {. + winapi, stdcall, dynlib: "avifil32", importc: "AVIFileInit" +.} + +proc AVIStreamExit*(): void {. + winapi, stdcall, dynlib: "avifil32", importc: "AVIFileExit" +.} + +proc AVIMakeCompressedStream*( + ppsCompressed: ptr PAVISTREAM, + ppsSource: PAVISTREAM, + lpOptions: ptr AVICOMPRESSOPTIONS, + pclsidHandler: ptr CLSID, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVISaveVA*( + szFile: LPCSTR, + pclsidHandler: ptr CLSID, + lpfnCallback: AVISAVECALLBACK, + nStreams: int32, + ppavi: ptr PAVISTREAM, + plpOptions: ptr LPAVICOMPRESSOPTIONS, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVISaveVW*( + szFile: LPCWSTR, + pclsidHandler: ptr CLSID, + lpfnCallback: AVISAVECALLBACK, + nStreams: int32, + ppavi: ptr PAVISTREAM, + plpOptions: ptr LPAVICOMPRESSOPTIONS, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVISaveOptions*( + hwnd: HWND, + uiFlags: UINT, + nStreams: int32, + ppavi: ptr PAVISTREAM, + plpOptions: ptr LPAVICOMPRESSOPTIONS, +): INT_PTR {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVISaveOptionsFree*( + nStreams: int32, plpOptions: ptr LPAVICOMPRESSOPTIONS +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIBuildFilterW*( + lpszFilter: LPWSTR, cbFilter: LONG, fSaving: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIBuildFilterA*( + lpszFilter: LPSTR, cbFilter: LONG, fSaving: WINBOOL +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIMakeFileFromStreams*( + ppfile: ptr PAVIFILE, nStreams: int32, papStreams: ptr PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIMakeStreamFromClipboard*( + cfFormat: UINT, hGlobal: HANDLE, ppstream: ptr PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIPutFileOnClipboard*( + pf: PAVIFILE +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc AVIGetFromClipboard*( + lppf: ptr PAVIFILE +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + proc AVIClearClipboard*(): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc CreateEditableStream*(ppsEditable: ptr PAVISTREAM, psSource: PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamCut*(pavi: PAVISTREAM, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamCopy*(pavi: PAVISTREAM, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamPaste*(pavi: PAVISTREAM, plPos: ptr LONG, plLength: ptr LONG, pstream: PAVISTREAM, lStart: LONG, lEnd: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamClone*(pavi: PAVISTREAM, ppResult: ptr PAVISTREAM): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamSetNameA*(pavi: PAVISTREAM, lpszName: LPCSTR): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamSetNameW*(pavi: PAVISTREAM, lpszName: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamSetInfoW*(pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOW, cbInfo: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc EditStreamSetInfoA*(pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOA, cbInfo: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} -proc MCIWndCreateA*(hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCSTR): HWND {.winapi, cdecl, dynlib: "msvfw32", importc.} -proc MCIWndCreateW*(hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCWSTR): HWND {.winapi, cdecl, dynlib: "msvfw32", importc.} +proc CreateEditableStream*( + ppsEditable: ptr PAVISTREAM, psSource: PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamCut*( + pavi: PAVISTREAM, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamCopy*( + pavi: PAVISTREAM, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamPaste*( + pavi: PAVISTREAM, + plPos: ptr LONG, + plLength: ptr LONG, + pstream: PAVISTREAM, + lStart: LONG, + lEnd: LONG, +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamClone*( + pavi: PAVISTREAM, ppResult: ptr PAVISTREAM +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamSetNameA*( + pavi: PAVISTREAM, lpszName: LPCSTR +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamSetNameW*( + pavi: PAVISTREAM, lpszName: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamSetInfoW*( + pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOW, cbInfo: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc EditStreamSetInfoA*( + pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOA, cbInfo: LONG +): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc.} + +proc MCIWndCreateA*( + hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCSTR +): HWND {.winapi, cdecl, dynlib: "msvfw32", importc.} + +proc MCIWndCreateW*( + hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCWSTR +): HWND {.winapi, cdecl, dynlib: "msvfw32", importc.} + proc MCIWndRegisterClass*(): WINBOOL {.winapi, cdecl, dynlib: "msvfw32", importc.} -proc capCreateCaptureWindowA*(lpszWindowName: LPCSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hwndParent: HWND, nID: int32): HWND {.winapi, stdcall, dynlib: "avicap32", importc.} -proc capGetDriverDescriptionA*(wDriverIndex: UINT, lpszName: LPSTR, cbName: int32, lpszVer: LPSTR, cbVer: int32): WINBOOL {.winapi, stdcall, dynlib: "avicap32", importc.} -proc capCreateCaptureWindowW*(lpszWindowName: LPCWSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hwndParent: HWND, nID: int32): HWND {.winapi, stdcall, dynlib: "avicap32", importc.} -proc capGetDriverDescriptionW*(wDriverIndex: UINT, lpszName: LPWSTR, cbName: int32, lpszVer: LPWSTR, cbVer: int32): WINBOOL {.winapi, stdcall, dynlib: "avicap32", importc.} +proc capCreateCaptureWindowA*( + lpszWindowName: LPCSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hwndParent: HWND, + nID: int32, +): HWND {.winapi, stdcall, dynlib: "avicap32", importc.} + +proc capGetDriverDescriptionA*( + wDriverIndex: UINT, lpszName: LPSTR, cbName: int32, lpszVer: LPSTR, cbVer: int32 +): WINBOOL {.winapi, stdcall, dynlib: "avicap32", importc.} + +proc capCreateCaptureWindowW*( + lpszWindowName: LPCWSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hwndParent: HWND, + nID: int32, +): HWND {.winapi, stdcall, dynlib: "avicap32", importc.} + +proc capGetDriverDescriptionW*( + wDriverIndex: UINT, lpszName: LPWSTR, cbName: int32, lpszVer: LPWSTR, cbVer: int32 +): WINBOOL {.winapi, stdcall, dynlib: "avicap32", importc.} + proc acmGetVersion*(): DWORD {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmMetrics*(hao: HACMOBJ, uMetric: UINT, pMetric: LPVOID): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverEnum*(fnCallback: ACMDRIVERENUMCB, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverID*(hao: HACMOBJ, phadid: LPHACMDRIVERID, fdwDriverID: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverAddA*(phadid: LPHACMDRIVERID, hinstModule: HINSTANCE, lParam: LPARAM, dwPriority: DWORD, fdwAdd: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverAddW*(phadid: LPHACMDRIVERID, hinstModule: HINSTANCE, lParam: LPARAM, dwPriority: DWORD, fdwAdd: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverRemove*(hadid: HACMDRIVERID, fdwRemove: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverOpen*(phad: LPHACMDRIVER, hadid: HACMDRIVERID, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverClose*(had: HACMDRIVER, fdwClose: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverMessage*(had: HACMDRIVER, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM): LRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverPriority*(hadid: HACMDRIVERID, dwPriority: DWORD, fdwPriority: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverDetailsA*(hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmDriverDetailsW*(hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatTagDetailsA*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatTagDetailsW*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatTagEnumA*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSA, fnCallback: ACMFORMATTAGENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatTagEnumW*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSW, fnCallback: ACMFORMATTAGENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatDetailsA*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatDetailsW*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatEnumA*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSA, fnCallback: ACMFORMATENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatEnumW*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSW, fnCallback: ACMFORMATENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatSuggest*(had: HACMDRIVER, pwfxSrc: LPWAVEFORMATEX, pwfxDst: LPWAVEFORMATEX, cbwfxDst: DWORD, fdwSuggest: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatChooseA*(pafmtc: LPACMFORMATCHOOSEA): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFormatChooseW*(pafmtc: LPACMFORMATCHOOSEW): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterTagDetailsA*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterTagDetailsW*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterTagEnumA*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSA, fnCallback: ACMFILTERTAGENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterTagEnumW*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSW, fnCallback: ACMFILTERTAGENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterDetailsA*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterDetailsW*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterEnumA*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSA, fnCallback: ACMFILTERENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterEnumW*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSW, fnCallback: ACMFILTERENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterChooseA*(pafltrc: LPACMFILTERCHOOSEA): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmFilterChooseW*(pafltrc: LPACMFILTERCHOOSEW): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamOpen*(phas: LPHACMSTREAM, had: HACMDRIVER, pwfxSrc: LPWAVEFORMATEX, pwfxDst: LPWAVEFORMATEX, pwfltr: LPWAVEFILTER, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamClose*(has: HACMSTREAM, fdwClose: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamSize*(has: HACMSTREAM, cbInput: DWORD, pdwOutputBytes: LPDWORD, fdwSize: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamReset*(has: HACMSTREAM, fdwReset: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamMessage*(has: HACMSTREAM, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamConvert*(has: HACMSTREAM, pash: LPACMSTREAMHEADER, fdwConvert: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamPrepareHeader*(has: HACMSTREAM, pash: LPACMSTREAMHEADER, fdwPrepare: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc acmStreamUnprepareHeader*(has: HACMSTREAM, pash: LPACMSTREAMHEADER, fdwUnprepare: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} -proc GetOpenFileNamePreviewA*(lpofn: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc GetSaveFileNamePreviewA*(lpofn: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc GetOpenFileNamePreviewW*(lpofn: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -proc GetSaveFileNamePreviewW*(lpofn: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} -template MCIWndCanPlay*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_PLAY, 0, 0) -template MCIWndCanRecord*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_RECORD, 0, 0) -template MCIWndCanSave*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_SAVE, 0, 0) -template MCIWndCanWindow*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_WINDOW, 0, 0) -template MCIWndCanEject*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_EJECT, 0, 0) -template MCIWndCanConfig*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_CONFIG, 0, 0) -template MCIWndPaletteKick*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_PALETTEKICK, 0, 0) -template MCIWndSave*(hwnd: HWND, szFile: PCWSTR): LONG = discardable LONG SendMessage(hwnd, MCI_SAVE, 0, cast[LPARAM](szFile)) -template MCIWndSaveDialog*(hwnd: HWND): LONG = discardable MCIWndSave(hwnd, cast[PCWSTR](-1)) +proc acmMetrics*( + hao: HACMOBJ, uMetric: UINT, pMetric: LPVOID +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverEnum*( + fnCallback: ACMDRIVERENUMCB, dwInstance: DWORD_PTR, fdwEnum: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverID*( + hao: HACMOBJ, phadid: LPHACMDRIVERID, fdwDriverID: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverAddA*( + phadid: LPHACMDRIVERID, + hinstModule: HINSTANCE, + lParam: LPARAM, + dwPriority: DWORD, + fdwAdd: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverAddW*( + phadid: LPHACMDRIVERID, + hinstModule: HINSTANCE, + lParam: LPARAM, + dwPriority: DWORD, + fdwAdd: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverRemove*( + hadid: HACMDRIVERID, fdwRemove: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverOpen*( + phad: LPHACMDRIVER, hadid: HACMDRIVERID, fdwOpen: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverClose*( + had: HACMDRIVER, fdwClose: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverMessage*( + had: HACMDRIVER, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverPriority*( + hadid: HACMDRIVERID, dwPriority: DWORD, fdwPriority: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverDetailsA*( + hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSA, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmDriverDetailsW*( + hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSW, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatTagDetailsA*( + had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSA, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatTagDetailsW*( + had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSW, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatTagEnumA*( + had: HACMDRIVER, + paftd: LPACMFORMATTAGDETAILSA, + fnCallback: ACMFORMATTAGENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatTagEnumW*( + had: HACMDRIVER, + paftd: LPACMFORMATTAGDETAILSW, + fnCallback: ACMFORMATTAGENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatDetailsA*( + had: HACMDRIVER, pafd: LPACMFORMATDETAILSA, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatDetailsW*( + had: HACMDRIVER, pafd: LPACMFORMATDETAILSW, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatEnumA*( + had: HACMDRIVER, + pafd: LPACMFORMATDETAILSA, + fnCallback: ACMFORMATENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatEnumW*( + had: HACMDRIVER, + pafd: LPACMFORMATDETAILSW, + fnCallback: ACMFORMATENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatSuggest*( + had: HACMDRIVER, + pwfxSrc: LPWAVEFORMATEX, + pwfxDst: LPWAVEFORMATEX, + cbwfxDst: DWORD, + fdwSuggest: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatChooseA*( + pafmtc: LPACMFORMATCHOOSEA +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFormatChooseW*( + pafmtc: LPACMFORMATCHOOSEW +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterTagDetailsA*( + had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSA, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterTagDetailsW*( + had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSW, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterTagEnumA*( + had: HACMDRIVER, + paftd: LPACMFILTERTAGDETAILSA, + fnCallback: ACMFILTERTAGENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterTagEnumW*( + had: HACMDRIVER, + paftd: LPACMFILTERTAGDETAILSW, + fnCallback: ACMFILTERTAGENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterDetailsA*( + had: HACMDRIVER, pafd: LPACMFILTERDETAILSA, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterDetailsW*( + had: HACMDRIVER, pafd: LPACMFILTERDETAILSW, fdwDetails: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterEnumA*( + had: HACMDRIVER, + pafd: LPACMFILTERDETAILSA, + fnCallback: ACMFILTERENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterEnumW*( + had: HACMDRIVER, + pafd: LPACMFILTERDETAILSW, + fnCallback: ACMFILTERENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterChooseA*( + pafltrc: LPACMFILTERCHOOSEA +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmFilterChooseW*( + pafltrc: LPACMFILTERCHOOSEW +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamOpen*( + phas: LPHACMSTREAM, + had: HACMDRIVER, + pwfxSrc: LPWAVEFORMATEX, + pwfxDst: LPWAVEFORMATEX, + pwfltr: LPWAVEFILTER, + dwCallback: DWORD_PTR, + dwInstance: DWORD_PTR, + fdwOpen: DWORD, +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamClose*( + has: HACMSTREAM, fdwClose: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamSize*( + has: HACMSTREAM, cbInput: DWORD, pdwOutputBytes: LPDWORD, fdwSize: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamReset*( + has: HACMSTREAM, fdwReset: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamMessage*( + has: HACMSTREAM, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamConvert*( + has: HACMSTREAM, pash: LPACMSTREAMHEADER, fdwConvert: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamPrepareHeader*( + has: HACMSTREAM, pash: LPACMSTREAMHEADER, fdwPrepare: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc acmStreamUnprepareHeader*( + has: HACMSTREAM, pash: LPACMSTREAMHEADER, fdwUnprepare: DWORD +): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc.} + +proc GetOpenFileNamePreviewA*( + lpofn: LPOPENFILENAMEA +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc GetSaveFileNamePreviewA*( + lpofn: LPOPENFILENAMEA +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc GetOpenFileNamePreviewW*( + lpofn: LPOPENFILENAMEW +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +proc GetSaveFileNamePreviewW*( + lpofn: LPOPENFILENAMEW +): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc.} + +template MCIWndCanPlay*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_PLAY, 0, 0) + +template MCIWndCanRecord*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_RECORD, 0, 0) + +template MCIWndCanSave*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_SAVE, 0, 0) + +template MCIWndCanWindow*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_WINDOW, 0, 0) + +template MCIWndCanEject*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_EJECT, 0, 0) + +template MCIWndCanConfig*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_CAN_CONFIG, 0, 0) + +template MCIWndPaletteKick*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_PALETTEKICK, 0, 0) + +template MCIWndSave*(hwnd: HWND, szFile: PCWSTR): LONG = + discardable LONG SendMessage(hwnd, MCI_SAVE, 0, cast[LPARAM](szFile)) + +template MCIWndSaveDialog*(hwnd: HWND): LONG = + discardable MCIWndSave(hwnd, cast[PCWSTR](-1)) + when winimUnicode: - const - MCIWNDM_NEW* = MCIWNDM_NEWW -when winimAnsi: - const - MCIWNDM_NEW* = MCIWNDM_NEWA -template MCIWndNew*(hwnd: HWND, lp: LPVOID): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_NEW, 0, cast[LPARAM](lp)) -template MCIWndRecord*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCI_RECORD, 0, 0) -when winimUnicode: - const - MCIWNDM_OPEN* = MCIWNDM_OPENW + const MCIWNDM_NEW* = MCIWNDM_NEWW when winimAnsi: - const - MCIWNDM_OPEN* = MCIWNDM_OPENA -template MCIWndOpen*(hwnd: HWND, sz: LPVOID, f: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_OPEN, cast[WPARAM](f), cast[LPARAM](sz)) -template MCIWndOpenDialog*(hwnd: HWND): LONG = discardable MCIWndOpen(hwnd, cast[LPVOID](-1), 0) -template MCIWndClose*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCI_CLOSE, 0, 0) -template MCIWndPlay*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCI_PLAY, 0, 0) -template MCIWndStop*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCI_STOP, 0, 0) -template MCIWndPause*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCI_PAUSE, 0, 0) -template MCIWndResume*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCI_RESUME, 0, 0) -template MCIWndSeek*(hwnd: HWND, lPos: LONG): LONG = discardable LONG SendMessage(hwnd, MCI_SEEK, 0, cast[LPARAM](lPos)) -template MCIWndEject*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_EJECT, 0, 0) -template MCIWndHome*(hwnd: HWND): LONG = discardable MCIWndSeek(hwnd, MCIWND_START) -template MCIWndToEnd*(hwnd: HWND): LONG = discardable MCIWndSeek(hwnd, MCIWND_END) -template MCIWndGetSource*(hwnd: HWND, prc: LPRECT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GET_SOURCE, 0, cast[LPARAM](prc)) -template MCIWndPutSource*(hwnd: HWND, prc: LPRECT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_PUT_SOURCE, 0, cast[LPARAM](prc)) -template MCIWndGetDest*(hwnd: HWND, prc: LPRECT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GET_DEST, 0, cast[LPARAM](prc)) -template MCIWndPutDest*(hwnd: HWND, prc: LPRECT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_PUT_DEST, 0, cast[LPARAM](prc)) -template MCIWndPlayReverse*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_PLAYREVERSE, 0, 0) -template MCIWndPlayFrom*(hwnd: HWND, lPos: LONG): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_PLAYFROM, 0, cast[LPARAM](lPos)) -template MCIWndPlayTo*(hwnd: HWND, lPos: LONG): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_PLAYTO, 0, cast[LPARAM](lPos)) -template MCIWndPlayFromTo*(hwnd: HWND, lStart: LONG, lEnd: LONG): LONG = MCIWndSeek(hwnd, lStart); discardable MCIWndPlayTo(hwnd, lEnd) -template MCIWndGetDeviceID*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, MCIWNDM_GETDEVICEID, 0, 0) -template MCIWndGetAlias*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, MCIWNDM_GETALIAS, 0, 0) + const MCIWNDM_NEW* = MCIWNDM_NEWA +template MCIWndNew*(hwnd: HWND, lp: LPVOID): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_NEW, 0, cast[LPARAM](lp)) + +template MCIWndRecord*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCI_RECORD, 0, 0) + when winimUnicode: - const - MCIWNDM_GETMODE* = MCIWNDM_GETMODEW -when winimAnsi: - const - MCIWNDM_GETMODE* = MCIWNDM_GETMODEA -template MCIWndGetMode*(hwnd: HWND, lp: LPTSTR, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETMODE, cast[WPARAM](L), cast[LPARAM](lp)) -when winimUnicode: - const - MCIWNDM_GETPOSITION* = MCIWNDM_GETPOSITIONW + const MCIWNDM_OPEN* = MCIWNDM_OPENW when winimAnsi: - const - MCIWNDM_GETPOSITION* = MCIWNDM_GETPOSITIONA -template MCIWndGetPosition*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETPOSITION, 0, 0) -template MCIWndGetPositionString*(hwnd: HWND, lp: LPTSTR, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETPOSITION, cast[WPARAM](L), cast[LPARAM](lp)) -template MCIWndGetStart*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETSTART, 0, 0) -template MCIWndGetLength*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETLENGTH, 0, 0) -template MCIWndGetEnd*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETEND, 0, 0) -template MCIWndStep*(hwnd: HWND, n: LONG): LONG = discardable LONG SendMessage(hwnd, MCI_STEP, 0, cast[LPARAM](n)) -template MCIWndDestroy*(hwnd: HWND): void = SendMessage(hwnd, WM_CLOSE, 0, 0) -template MCIWndSetZoom*(hwnd: HWND, iZoom: UINT): void = SendMessage(hwnd, MCIWNDM_SETZOOM, 0, cast[LPARAM](iZoom)) -template MCIWndGetZoom*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, MCIWNDM_GETZOOM, 0, 0) -template MCIWndSetVolume*(hwnd: HWND, iVol: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_SETVOLUME, 0, cast[LPARAM](iVol)) -template MCIWndGetVolume*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETVOLUME, 0, 0) -template MCIWndSetSpeed*(hwnd: HWND, iSpeed: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_SETSPEED, 0, cast[LPARAM](iSpeed)) -template MCIWndGetSpeed*(hwnd: HWND): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETSPEED, 0, 0) + const MCIWNDM_OPEN* = MCIWNDM_OPENA +template MCIWndOpen*(hwnd: HWND, sz: LPVOID, f: UINT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_OPEN, cast[WPARAM](f), cast[LPARAM](sz)) + +template MCIWndOpenDialog*(hwnd: HWND): LONG = + discardable MCIWndOpen(hwnd, cast[LPVOID](-1), 0) + +template MCIWndClose*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCI_CLOSE, 0, 0) + +template MCIWndPlay*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCI_PLAY, 0, 0) + +template MCIWndStop*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCI_STOP, 0, 0) + +template MCIWndPause*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCI_PAUSE, 0, 0) + +template MCIWndResume*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCI_RESUME, 0, 0) + +template MCIWndSeek*(hwnd: HWND, lPos: LONG): LONG = + discardable LONG SendMessage(hwnd, MCI_SEEK, 0, cast[LPARAM](lPos)) + +template MCIWndEject*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_EJECT, 0, 0) + +template MCIWndHome*(hwnd: HWND): LONG = + discardable MCIWndSeek(hwnd, MCIWND_START) + +template MCIWndToEnd*(hwnd: HWND): LONG = + discardable MCIWndSeek(hwnd, MCIWND_END) + +template MCIWndGetSource*(hwnd: HWND, prc: LPRECT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GET_SOURCE, 0, cast[LPARAM](prc)) + +template MCIWndPutSource*(hwnd: HWND, prc: LPRECT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_PUT_SOURCE, 0, cast[LPARAM](prc)) + +template MCIWndGetDest*(hwnd: HWND, prc: LPRECT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GET_DEST, 0, cast[LPARAM](prc)) + +template MCIWndPutDest*(hwnd: HWND, prc: LPRECT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_PUT_DEST, 0, cast[LPARAM](prc)) + +template MCIWndPlayReverse*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_PLAYREVERSE, 0, 0) + +template MCIWndPlayFrom*(hwnd: HWND, lPos: LONG): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_PLAYFROM, 0, cast[LPARAM](lPos)) + +template MCIWndPlayTo*(hwnd: HWND, lPos: LONG): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_PLAYTO, 0, cast[LPARAM](lPos)) + +template MCIWndPlayFromTo*(hwnd: HWND, lStart: LONG, lEnd: LONG): LONG = + MCIWndSeek(hwnd, lStart) + discardable MCIWndPlayTo(hwnd, lEnd) + +template MCIWndGetDeviceID*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, MCIWNDM_GETDEVICEID, 0, 0) + +template MCIWndGetAlias*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, MCIWNDM_GETALIAS, 0, 0) + +when winimUnicode: + const MCIWNDM_GETMODE* = MCIWNDM_GETMODEW +when winimAnsi: + const MCIWNDM_GETMODE* = MCIWNDM_GETMODEA +template MCIWndGetMode*(hwnd: HWND, lp: LPTSTR, L: UINT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETMODE, cast[WPARAM](L), cast[LPARAM](lp)) + when winimUnicode: - const - MCIWNDM_SETTIMEFORMAT* = MCIWNDM_SETTIMEFORMATW -when winimAnsi: - const - MCIWNDM_SETTIMEFORMAT* = MCIWNDM_SETTIMEFORMATA -template MCIWndSetTimeFormat*(hwnd: HWND, lp: LPTSTR): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_SETTIMEFORMAT, 0, cast[LPARAM](lp)) -when winimUnicode: - const - MCIWNDM_GETTIMEFORMAT* = MCIWNDM_GETTIMEFORMATW -when winimAnsi: - const - MCIWNDM_GETTIMEFORMAT* = MCIWNDM_GETTIMEFORMATA -template MCIWndGetTimeFormat*(hwnd: HWND, lp: LPTSTR, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETTIMEFORMAT, cast[WPARAM](L), cast[LPARAM](lp)) -template MCIWndValidateMedia*(hwnd: HWND): void = SendMessage(hwnd, MCIWNDM_VALIDATEMEDIA, 0, 0) -template MCIWndSetRepeat*(hwnd: HWND, f: BOOL): void = SendMessage(hwnd, MCIWNDM_SETREPEAT, 0, cast[LPARAM](f)) -template MCIWndGetRepeat*(hwnd: HWND): BOOL = discardable BOOL SendMessage(hwnd, MCIWNDM_GETREPEAT, 0, 0) -template MCIWndSetActiveTimer*(hwnd: HWND, active: UINT): void = SendMessage(hwnd, MCIWNDM_SETACTIVETIMER, cast[WPARAM](active), 0) -template MCIWndSetInactiveTimer*(hwnd: HWND, inactive: UINT): void = SendMessage(hwnd, MCIWNDM_SETINACTIVETIMER, cast[WPARAM](inactive), 0) -template MCIWndSetTimers*(hwnd: HWND, active: UINT, inactive: UINT): void = SendMessage(hwnd, MCIWNDM_SETTIMERS, cast[WPARAM](active), cast[LPARAM](inactive)) -template MCIWndGetActiveTimer*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, MCIWNDM_GETACTIVETIMER, 0, 0) -template MCIWndGetInactiveTimer*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0) -template MCIWndRealize*(hwnd: HWND, fBkgnd: BOOL): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_REALIZE, cast[WPARAM](fBkgnd), 0) -when winimUnicode: - const - MCIWNDM_SENDSTRING* = MCIWNDM_SENDSTRINGW + const MCIWNDM_GETPOSITION* = MCIWNDM_GETPOSITIONW when winimAnsi: - const - MCIWNDM_SENDSTRING* = MCIWNDM_SENDSTRINGA -template MCIWndSendString*(hwnd: HWND, sz: LPTSTR): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast[LPARAM](sz)) -when winimUnicode: - const - MCIWNDM_RETURNSTRING* = MCIWNDM_RETURNSTRINGW -when winimAnsi: - const - MCIWNDM_RETURNSTRING* = MCIWNDM_RETURNSTRINGA -template MCIWndReturnString*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_RETURNSTRING, cast[WPARAM](L), cast[LPARAM](lp)) + const MCIWNDM_GETPOSITION* = MCIWNDM_GETPOSITIONA +template MCIWndGetPosition*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETPOSITION, 0, 0) + +template MCIWndGetPositionString*(hwnd: HWND, lp: LPTSTR, L: UINT): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_GETPOSITION, cast[WPARAM](L), cast[LPARAM](lp) + ) + +template MCIWndGetStart*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETSTART, 0, 0) + +template MCIWndGetLength*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETLENGTH, 0, 0) + +template MCIWndGetEnd*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETEND, 0, 0) + +template MCIWndStep*(hwnd: HWND, n: LONG): LONG = + discardable LONG SendMessage(hwnd, MCI_STEP, 0, cast[LPARAM](n)) + +template MCIWndDestroy*(hwnd: HWND): void = + SendMessage(hwnd, WM_CLOSE, 0, 0) + +template MCIWndSetZoom*(hwnd: HWND, iZoom: UINT): void = + SendMessage(hwnd, MCIWNDM_SETZOOM, 0, cast[LPARAM](iZoom)) + +template MCIWndGetZoom*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, MCIWNDM_GETZOOM, 0, 0) + +template MCIWndSetVolume*(hwnd: HWND, iVol: UINT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_SETVOLUME, 0, cast[LPARAM](iVol)) + +template MCIWndGetVolume*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETVOLUME, 0, 0) + +template MCIWndSetSpeed*(hwnd: HWND, iSpeed: UINT): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_SETSPEED, 0, cast[LPARAM](iSpeed)) + +template MCIWndGetSpeed*(hwnd: HWND): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_GETSPEED, 0, 0) + when winimUnicode: - const - MCIWNDM_GETERROR* = MCIWNDM_GETERRORW + const MCIWNDM_SETTIMEFORMAT* = MCIWNDM_SETTIMEFORMATW +when winimAnsi: + const MCIWNDM_SETTIMEFORMAT* = MCIWNDM_SETTIMEFORMATA +template MCIWndSetTimeFormat*(hwnd: HWND, lp: LPTSTR): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_SETTIMEFORMAT, 0, cast[LPARAM](lp)) + +when winimUnicode: + const MCIWNDM_GETTIMEFORMAT* = MCIWNDM_GETTIMEFORMATW when winimAnsi: - const - MCIWNDM_GETERROR* = MCIWNDM_GETERRORA -template MCIWndGetError*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETERROR, cast[WPARAM](L), cast[LPARAM](lp)) -template MCIWndGetPalette*(hwnd: HWND): HPALETTE = discardable HPALETTE SendMessage(hwnd, MCIWNDM_GETPALETTE, 0, 0) -template MCIWndSetPalette*(hwnd: HWND, hpal: HPALETTE): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_SETPALETTE, cast[WPARAM](hpal), 0) -when winimUnicode: - const - MCIWNDM_GETFILENAME* = MCIWNDM_GETFILENAMEW -when winimAnsi: - const - MCIWNDM_GETFILENAME* = MCIWNDM_GETFILENAMEA -template MCIWndGetFileName*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETFILENAME, cast[WPARAM](L), cast[LPARAM](lp)) + const MCIWNDM_GETTIMEFORMAT* = MCIWNDM_GETTIMEFORMATA +template MCIWndGetTimeFormat*(hwnd: HWND, lp: LPTSTR, L: UINT): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_GETTIMEFORMAT, cast[WPARAM](L), cast[LPARAM](lp) + ) + +template MCIWndValidateMedia*(hwnd: HWND): void = + SendMessage(hwnd, MCIWNDM_VALIDATEMEDIA, 0, 0) + +template MCIWndSetRepeat*(hwnd: HWND, f: BOOL): void = + SendMessage(hwnd, MCIWNDM_SETREPEAT, 0, cast[LPARAM](f)) + +template MCIWndGetRepeat*(hwnd: HWND): BOOL = + discardable BOOL SendMessage(hwnd, MCIWNDM_GETREPEAT, 0, 0) + +template MCIWndSetActiveTimer*(hwnd: HWND, active: UINT): void = + SendMessage(hwnd, MCIWNDM_SETACTIVETIMER, cast[WPARAM](active), 0) + +template MCIWndSetInactiveTimer*(hwnd: HWND, inactive: UINT): void = + SendMessage(hwnd, MCIWNDM_SETINACTIVETIMER, cast[WPARAM](inactive), 0) + +template MCIWndSetTimers*(hwnd: HWND, active: UINT, inactive: UINT): void = + SendMessage(hwnd, MCIWNDM_SETTIMERS, cast[WPARAM](active), cast[LPARAM](inactive)) + +template MCIWndGetActiveTimer*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, MCIWNDM_GETACTIVETIMER, 0, 0) + +template MCIWndGetInactiveTimer*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, MCIWNDM_GETINACTIVETIMER, 0, 0) + +template MCIWndRealize*(hwnd: HWND, fBkgnd: BOOL): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_REALIZE, cast[WPARAM](fBkgnd), 0) + when winimUnicode: - const - MCIWNDM_GETDEVICE* = MCIWNDM_GETDEVICEW + const MCIWNDM_SENDSTRING* = MCIWNDM_SENDSTRINGW +when winimAnsi: + const MCIWNDM_SENDSTRING* = MCIWNDM_SENDSTRINGA +template MCIWndSendString*(hwnd: HWND, sz: LPTSTR): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_SENDSTRING, 0, cast[LPARAM](sz)) + +when winimUnicode: + const MCIWNDM_RETURNSTRING* = MCIWNDM_RETURNSTRINGW +when winimAnsi: + const MCIWNDM_RETURNSTRING* = MCIWNDM_RETURNSTRINGA +template MCIWndReturnString*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_RETURNSTRING, cast[WPARAM](L), cast[LPARAM](lp) + ) + +when winimUnicode: + const MCIWNDM_GETERROR* = MCIWNDM_GETERRORW +when winimAnsi: + const MCIWNDM_GETERROR* = MCIWNDM_GETERRORA +template MCIWndGetError*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_GETERROR, cast[WPARAM](L), cast[LPARAM](lp) + ) + +template MCIWndGetPalette*(hwnd: HWND): HPALETTE = + discardable HPALETTE SendMessage(hwnd, MCIWNDM_GETPALETTE, 0, 0) + +template MCIWndSetPalette*(hwnd: HWND, hpal: HPALETTE): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_SETPALETTE, cast[WPARAM](hpal), 0) + +when winimUnicode: + const MCIWNDM_GETFILENAME* = MCIWNDM_GETFILENAMEW +when winimAnsi: + const MCIWNDM_GETFILENAME* = MCIWNDM_GETFILENAMEA +template MCIWndGetFileName*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_GETFILENAME, cast[WPARAM](L), cast[LPARAM](lp) + ) + +when winimUnicode: + const MCIWNDM_GETDEVICE* = MCIWNDM_GETDEVICEW when winimAnsi: - const - MCIWNDM_GETDEVICE* = MCIWNDM_GETDEVICEA -template MCIWndGetDevice*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_GETDEVICE, cast[WPARAM](L), cast[LPARAM](lp)) -template MCIWndGetStyles*(hwnd: HWND): UINT = discardable UINT SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0) -template MCIWndChangeStyles*(hwnd: HWND, mask: UINT, value: LONG): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_CHANGESTYLES, cast[WPARAM](mask), cast[LPARAM](value)) -template MCIWndOpenInterface*(hwnd: HWND, pUnk): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast[LPARAM](pUnk)) -template MCIWndSetOwner*(hwnd: HWND, hwndP): LONG = discardable LONG SendMessage(hwnd, MCIWNDM_SETOWNER, cast[WPARAM](hwndP), 0) -template ICQueryAbout*(hic: HIC): bool = discardable ICSendMessage(hic, ICM_ABOUT, cast[DWORD_PTR](-1), ICMF_ABOUT_QUERY) == ICERR_OK -template ICAbout*(hic: HIC, hwnd: HWND): LRESULT = discardable ICSendMessage(hic, ICM_ABOUT, cast[DWORD_PTR](hwnd), 0) -template ICQueryConfigure*(hic: HIC): bool = discardable ICSendMessage(hic, ICM_CONFIGURE, cast[DWORD_PTR](-1), ICMF_CONFIGURE_QUERY) == ICERR_OK -template ICConfigure*(hic: HIC, hwnd: HWND): LRESULT = discardable ICSendMessage(hic, ICM_CONFIGURE, cast[DWORD_PTR](hwnd), 0) -template ICGetState*(hic: HIC, pv: LPVOID, cb: DWORD_PTR): LRESULT = discardable ICSendMessage(hic, ICM_GETSTATE, cast[DWORD_PTR](pv), cb) -template ICSetState*(hic: HIC, pv: LPVOID, cb: DWORD_PTR): LRESULT = discardable ICSendMessage(hic, ICM_SETSTATE, cast[DWORD_PTR](pv), cb) -template ICGetStateSize*(hic: HIC): DWORD = discardable DWORD ICGetState(hic, 0, 0) -template ICDrawWindow*(hic: HIC, prc: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_WINDOW, cast[DWORD_PTR](prc), cast[DWORD_PTR](sizeof(RECT))) -template ICCompressBegin*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_COMPRESS_BEGIN, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICCompressQuery*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_COMPRESS_QUERY, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICCompressGetFormat*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_COMPRESS_GET_FORMAT, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICCompressGetFormatSize*(hic: HIC, lpbi: LPVOID): DWORD = discardable DWORD ICCompressGetFormat(hic, lpbi, nil) -template ICCompressGetSize*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): DWORD = discardable DWORD ICSendMessage(hic, ICM_COMPRESS_GET_SIZE, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICCompressEnd*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_COMPRESS_END, 0, 0) -template ICDecompressBegin*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DECOMPRESS_BEGIN, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICDecompressQuery*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DECOMPRESS_QUERY, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICDecompressGetFormat*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LONG = discardable LONG ICSendMessage(hic, ICM_DECOMPRESS_GET_FORMAT, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICDecompressGetFormatSize*(hic: HIC, lpbi: LPVOID): LRESULT = discardable ICDecompressGetFormat(hic, lpbi, nil) -template ICDecompressGetPalette*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DECOMPRESS_GET_PALETTE, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput)) -template ICDecompressSetPalette*(hic: HIC, lpbiPalette: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DECOMPRESS_SET_PALETTE, cast[DWORD_PTR](lpbiPalette), 0) -template ICDecompressEnd*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0) -template ICDecompressExEnd*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DECOMPRESSEX_END, 0, 0) -template ICDrawQuery2*(hic: HIC, lpbiInput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_QUERY, cast[DWORD_PTR](lpbiInput), 0) -template ICDrawChangePalette*(hic: HIC, lpbiInput: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_CHANGEPALETTE, cast[DWORD_PTR](lpbiInput), 0) -template ICGetBuffersWanted*(hic: HIC, lpdwBuffers: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_GETBUFFERSWANTED, cast[DWORD_PTR](lpdwBuffers), 0) -template ICDrawEnd*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_END, 0, 0) -template ICDrawStart*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_START, 0, 0) -template ICDrawStartPlay*(hic: HIC, lFrom: LONG, lTo: LONG): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_START_PLAY, cast[DWORD_PTR](lFrom), cast[DWORD_PTR](lTo)) -template ICDrawStop*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_STOP, 0, 0) -template ICDrawStopPlay*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_STOP_PLAY, 0, 0) -template ICDrawGetTime*(hic: HIC, lplTime: LPVOID): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_GETTIME, cast[DWORD_PTR](lplTime), 0) -template ICDrawSetTime*(hic: HIC, lTime: LONG): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_SETTIME, cast[DWORD_PTR](lTime), 0) -template ICDrawRealize*(hic: HIC, hdc: HDC, fBackground: BOOL): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_REALIZE, cast[DWORD_PTR](hdc), cast[DWORD_PTR](fBackground)) -template ICDrawFlush*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_FLUSH, 0, 0) -template ICDrawRenderBuffer*(hic: HIC): LRESULT = discardable ICSendMessage(hic, ICM_DRAW_RENDERBUFFER, 0, 0) -template ICDecompressOpen*(fccType: DWORD, fccHandler: DWORD, lpbiIn: LPVOID, lpbiOut: LPVOID): HIC = discardable ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS) -template ICDrawOpen*(fccType: DWORD, fccHandler: DWORD, lpbiIn: LPVOID): HIC = discardable ICLocate(fccType, fccHandler, lpbiIn, nil, ICMODE_DRAW) -template DrawDibUpdate*(hdd: HDRAWDIB, hdc: HDC, x: int32, y: int32): WINBOOL = discardable DrawDibDraw(hdd, hdc, x, y, 0, 0, nil, nil, 0, 0, 0, 0, DDF_UPDATE) -template AVIStreamSampleToSample*(pavi1: PAVISTREAM, pavi2: PAVISTREAM, l: LONG): LONG = discardable AVIStreamTimeToSample(pavi1, AVIStreamSampleToTime(pavi2, l)) -template AVIStreamNextSample*(pavi: PAVISTREAM, l: LONG): LONG = discardable AVIStreamFindSample(pavi, l+1, FIND_NEXT or FIND_ANY) -template AVIStreamPrevSample*(pavi: PAVISTREAM, l: LONG): LONG = discardable AVIStreamFindSample(pavi, l-1, FIND_PREV or FIND_ANY) -template AVIStreamNearestSample*(pavi: PAVISTREAM, l: LONG): LONG = discardable AVIStreamFindSample(pavi, l, FIND_PREV or FIND_ANY) -template AVIStreamNextKeyFrame*(pavi: PAVISTREAM, l: LONG): LONG = discardable AVIStreamFindSample(pavi, l+1, FIND_NEXT or FIND_KEY) -template AVIStreamPrevKeyFrame*(pavi: PAVISTREAM, l: LONG): LONG = discardable AVIStreamFindSample(pavi, l-1, FIND_PREV or FIND_KEY) -template AVIStreamNearestKeyFrame*(pavi: PAVISTREAM, l: LONG): LONG = discardable AVIStreamFindSample(pavi, l, FIND_PREV or FIND_KEY) -template AVIStreamIsKeyFrame*(pavi: PAVISTREAM, l: LONG): bool = AVIStreamNearestKeyFrame(pavi, l) == l -template AVIStreamPrevSampleTime*(pavi: PAVISTREAM, t: LONG): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamPrevSample(pavi, AVIStreamTimeToSample(pavi, t))) -template AVIStreamNextSampleTime*(pavi: PAVISTREAM, t: LONG): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamNextSample(pavi, AVIStreamTimeToSample(pavi, t))) -template AVIStreamNearestSampleTime*(pavi: PAVISTREAM, t: LONG): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamNearestSample(pavi, AVIStreamTimeToSample(pavi, t))) -template AVIStreamNextKeyFrameTime*(pavi: PAVISTREAM, t: LONG): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamNextKeyFrame(pavi, AVIStreamTimeToSample(pavi, t))) -template AVIStreamPrevKeyFrameTime*(pavi: PAVISTREAM, t: LONG): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamPrevKeyFrame(pavi, AVIStreamTimeToSample(pavi, t))) -template AVIStreamNearestKeyFrameTime*(pavi: PAVISTREAM, t: LONG): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamNearestKeyFrame(pavi, AVIStreamTimeToSample(pavi, t))) -template AVIStreamStartTime*(pavi: PAVISTREAM): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamStart(pavi)) -template AVIStreamLengthTime*(pavi: PAVISTREAM): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamLength(pavi)) -template AVIStreamEnd*(pavi: PAVISTREAM): LONG = discardable(AVIStreamStart(pavi) + AVIStreamLength(pavi)) -template AVIStreamEndTime*(pavi: PAVISTREAM): LONG = discardable AVIStreamSampleToTime(pavi, AVIStreamEnd(pavi)) -template AVIStreamSampleSize*(pavi: PAVISTREAM, lPos: LONG, plSize: ptr LONG): HRESULT = discardable AVIStreamRead(pavi, lPos, 1, nil, 0, plSize, nil) -template AVIStreamFormatSize*(pavi: PAVISTREAM, lPos: LONG, plSize: ptr LONG): HRESULT = discardable AVIStreamReadFormat(pavi, lPos, nil, plSize) -template AVIStreamDataSize*(pavi: PAVISTREAM, fcc: DWORD, plSize: ptr LONG): HRESULT = discardable AVIStreamReadData(pavi, fcc, nil, plSize) -template AVStreamNextKeyFrame*(pavi: PAVISTREAM, pos: LONG): LONG = discardable AVIStreamFindSample(pavi, pos+1, FIND_NEXT or FIND_KEY) -template AVStreamPrevKeyFrame*(pavi: PAVISTREAM, pos: LONG): LONG = discardable AVIStreamFindSample(pavi, pos-1, FIND_NEXT or FIND_KEY) -template AVICapSM*(hwnd: HWND, msg: UINT, wparam: untyped, lparam: untyped): LRESULT = (if IsWindow(hwnd) != FALSE: SendMessage(hwnd, msg, cast[WPARAM](wparam), cast[LPARAM](lparam)) else: 0) + const MCIWNDM_GETDEVICE* = MCIWNDM_GETDEVICEA +template MCIWndGetDevice*(hwnd: HWND, lp: LPVOID, L: UINT): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_GETDEVICE, cast[WPARAM](L), cast[LPARAM](lp) + ) + +template MCIWndGetStyles*(hwnd: HWND): UINT = + discardable UINT SendMessage(hwnd, MCIWNDM_GETSTYLES, 0, 0) + +template MCIWndChangeStyles*(hwnd: HWND, mask: UINT, value: LONG): LONG = + discardable LONG SendMessage( + hwnd, MCIWNDM_CHANGESTYLES, cast[WPARAM](mask), cast[LPARAM](value) + ) + +template MCIWndOpenInterface*(hwnd: HWND, pUnk): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_OPENINTERFACE, 0, cast[LPARAM](pUnk)) + +template MCIWndSetOwner*(hwnd: HWND, hwndP): LONG = + discardable LONG SendMessage(hwnd, MCIWNDM_SETOWNER, cast[WPARAM](hwndP), 0) + +template ICQueryAbout*(hic: HIC): bool = + discardable ICSendMessage(hic, ICM_ABOUT, cast[DWORD_PTR](-1), ICMF_ABOUT_QUERY) == + ICERR_OK + +template ICAbout*(hic: HIC, hwnd: HWND): LRESULT = + discardable ICSendMessage(hic, ICM_ABOUT, cast[DWORD_PTR](hwnd), 0) + +template ICQueryConfigure*(hic: HIC): bool = + discardable ICSendMessage( + hic, ICM_CONFIGURE, cast[DWORD_PTR](-1), ICMF_CONFIGURE_QUERY + ) == ICERR_OK + +template ICConfigure*(hic: HIC, hwnd: HWND): LRESULT = + discardable ICSendMessage(hic, ICM_CONFIGURE, cast[DWORD_PTR](hwnd), 0) + +template ICGetState*(hic: HIC, pv: LPVOID, cb: DWORD_PTR): LRESULT = + discardable ICSendMessage(hic, ICM_GETSTATE, cast[DWORD_PTR](pv), cb) + +template ICSetState*(hic: HIC, pv: LPVOID, cb: DWORD_PTR): LRESULT = + discardable ICSendMessage(hic, ICM_SETSTATE, cast[DWORD_PTR](pv), cb) + +template ICGetStateSize*(hic: HIC): DWORD = + discardable DWORD ICGetState(hic, 0, 0) + +template ICDrawWindow*(hic: HIC, prc: LPVOID): LRESULT = + discardable ICSendMessage( + hic, ICM_DRAW_WINDOW, cast[DWORD_PTR](prc), cast[DWORD_PTR](sizeof(RECT)) + ) + +template ICCompressBegin*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = + discardable ICSendMessage( + hic, ICM_COMPRESS_BEGIN, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput) + ) + +template ICCompressQuery*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = + discardable ICSendMessage( + hic, ICM_COMPRESS_QUERY, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput) + ) + +template ICCompressGetFormat*( + hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID +): LRESULT = + discardable ICSendMessage( + hic, + ICM_COMPRESS_GET_FORMAT, + cast[DWORD_PTR](lpbiInput), + cast[DWORD_PTR](lpbiOutput), + ) + +template ICCompressGetFormatSize*(hic: HIC, lpbi: LPVOID): DWORD = + discardable DWORD ICCompressGetFormat(hic, lpbi, nil) + +template ICCompressGetSize*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): DWORD = + discardable DWORD ICSendMessage( + hic, ICM_COMPRESS_GET_SIZE, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput) + ) + +template ICCompressEnd*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_COMPRESS_END, 0, 0) + +template ICDecompressBegin*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = + discardable ICSendMessage( + hic, ICM_DECOMPRESS_BEGIN, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput) + ) + +template ICDecompressQuery*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LRESULT = + discardable ICSendMessage( + hic, ICM_DECOMPRESS_QUERY, cast[DWORD_PTR](lpbiInput), cast[DWORD_PTR](lpbiOutput) + ) + +template ICDecompressGetFormat*(hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID): LONG = + discardable LONG ICSendMessage( + hic, + ICM_DECOMPRESS_GET_FORMAT, + cast[DWORD_PTR](lpbiInput), + cast[DWORD_PTR](lpbiOutput), + ) + +template ICDecompressGetFormatSize*(hic: HIC, lpbi: LPVOID): LRESULT = + discardable ICDecompressGetFormat(hic, lpbi, nil) + +template ICDecompressGetPalette*( + hic: HIC, lpbiInput: LPVOID, lpbiOutput: LPVOID +): LRESULT = + discardable ICSendMessage( + hic, + ICM_DECOMPRESS_GET_PALETTE, + cast[DWORD_PTR](lpbiInput), + cast[DWORD_PTR](lpbiOutput), + ) + +template ICDecompressSetPalette*(hic: HIC, lpbiPalette: LPVOID): LRESULT = + discardable ICSendMessage( + hic, ICM_DECOMPRESS_SET_PALETTE, cast[DWORD_PTR](lpbiPalette), 0 + ) + +template ICDecompressEnd*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DECOMPRESS_END, 0, 0) + +template ICDecompressExEnd*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DECOMPRESSEX_END, 0, 0) + +template ICDrawQuery2*(hic: HIC, lpbiInput: LPVOID): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_QUERY, cast[DWORD_PTR](lpbiInput), 0) + +template ICDrawChangePalette*(hic: HIC, lpbiInput: LPVOID): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_CHANGEPALETTE, cast[DWORD_PTR](lpbiInput), 0) + +template ICGetBuffersWanted*(hic: HIC, lpdwBuffers: LPVOID): LRESULT = + discardable ICSendMessage(hic, ICM_GETBUFFERSWANTED, cast[DWORD_PTR](lpdwBuffers), 0) + +template ICDrawEnd*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_END, 0, 0) + +template ICDrawStart*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_START, 0, 0) + +template ICDrawStartPlay*(hic: HIC, lFrom: LONG, lTo: LONG): LRESULT = + discardable ICSendMessage( + hic, ICM_DRAW_START_PLAY, cast[DWORD_PTR](lFrom), cast[DWORD_PTR](lTo) + ) + +template ICDrawStop*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_STOP, 0, 0) + +template ICDrawStopPlay*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_STOP_PLAY, 0, 0) + +template ICDrawGetTime*(hic: HIC, lplTime: LPVOID): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_GETTIME, cast[DWORD_PTR](lplTime), 0) + +template ICDrawSetTime*(hic: HIC, lTime: LONG): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_SETTIME, cast[DWORD_PTR](lTime), 0) + +template ICDrawRealize*(hic: HIC, hdc: HDC, fBackground: BOOL): LRESULT = + discardable ICSendMessage( + hic, ICM_DRAW_REALIZE, cast[DWORD_PTR](hdc), cast[DWORD_PTR](fBackground) + ) + +template ICDrawFlush*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_FLUSH, 0, 0) + +template ICDrawRenderBuffer*(hic: HIC): LRESULT = + discardable ICSendMessage(hic, ICM_DRAW_RENDERBUFFER, 0, 0) + +template ICDecompressOpen*( + fccType: DWORD, fccHandler: DWORD, lpbiIn: LPVOID, lpbiOut: LPVOID +): HIC = + discardable ICLocate(fccType, fccHandler, lpbiIn, lpbiOut, ICMODE_DECOMPRESS) + +template ICDrawOpen*(fccType: DWORD, fccHandler: DWORD, lpbiIn: LPVOID): HIC = + discardable ICLocate(fccType, fccHandler, lpbiIn, nil, ICMODE_DRAW) + +template DrawDibUpdate*(hdd: HDRAWDIB, hdc: HDC, x: int32, y: int32): WINBOOL = + discardable DrawDibDraw(hdd, hdc, x, y, 0, 0, nil, nil, 0, 0, 0, 0, DDF_UPDATE) + +template AVIStreamSampleToSample*(pavi1: PAVISTREAM, pavi2: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamTimeToSample(pavi1, AVIStreamSampleToTime(pavi2, l)) + +template AVIStreamNextSample*(pavi: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamFindSample(pavi, l + 1, FIND_NEXT or FIND_ANY) + +template AVIStreamPrevSample*(pavi: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamFindSample(pavi, l - 1, FIND_PREV or FIND_ANY) + +template AVIStreamNearestSample*(pavi: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamFindSample(pavi, l, FIND_PREV or FIND_ANY) + +template AVIStreamNextKeyFrame*(pavi: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamFindSample(pavi, l + 1, FIND_NEXT or FIND_KEY) + +template AVIStreamPrevKeyFrame*(pavi: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamFindSample(pavi, l - 1, FIND_PREV or FIND_KEY) + +template AVIStreamNearestKeyFrame*(pavi: PAVISTREAM, l: LONG): LONG = + discardable AVIStreamFindSample(pavi, l, FIND_PREV or FIND_KEY) + +template AVIStreamIsKeyFrame*(pavi: PAVISTREAM, l: LONG): bool = + AVIStreamNearestKeyFrame(pavi, l) == l + +template AVIStreamPrevSampleTime*(pavi: PAVISTREAM, t: LONG): LONG = + discardable AVIStreamSampleToTime( + pavi, AVIStreamPrevSample(pavi, AVIStreamTimeToSample(pavi, t)) + ) + +template AVIStreamNextSampleTime*(pavi: PAVISTREAM, t: LONG): LONG = + discardable AVIStreamSampleToTime( + pavi, AVIStreamNextSample(pavi, AVIStreamTimeToSample(pavi, t)) + ) + +template AVIStreamNearestSampleTime*(pavi: PAVISTREAM, t: LONG): LONG = + discardable AVIStreamSampleToTime( + pavi, AVIStreamNearestSample(pavi, AVIStreamTimeToSample(pavi, t)) + ) + +template AVIStreamNextKeyFrameTime*(pavi: PAVISTREAM, t: LONG): LONG = + discardable AVIStreamSampleToTime( + pavi, AVIStreamNextKeyFrame(pavi, AVIStreamTimeToSample(pavi, t)) + ) + +template AVIStreamPrevKeyFrameTime*(pavi: PAVISTREAM, t: LONG): LONG = + discardable AVIStreamSampleToTime( + pavi, AVIStreamPrevKeyFrame(pavi, AVIStreamTimeToSample(pavi, t)) + ) + +template AVIStreamNearestKeyFrameTime*(pavi: PAVISTREAM, t: LONG): LONG = + discardable AVIStreamSampleToTime( + pavi, AVIStreamNearestKeyFrame(pavi, AVIStreamTimeToSample(pavi, t)) + ) + +template AVIStreamStartTime*(pavi: PAVISTREAM): LONG = + discardable AVIStreamSampleToTime(pavi, AVIStreamStart(pavi)) + +template AVIStreamLengthTime*(pavi: PAVISTREAM): LONG = + discardable AVIStreamSampleToTime(pavi, AVIStreamLength(pavi)) + +template AVIStreamEnd*(pavi: PAVISTREAM): LONG = + discardable(AVIStreamStart(pavi) + AVIStreamLength(pavi)) + +template AVIStreamEndTime*(pavi: PAVISTREAM): LONG = + discardable AVIStreamSampleToTime(pavi, AVIStreamEnd(pavi)) + +template AVIStreamSampleSize*(pavi: PAVISTREAM, lPos: LONG, plSize: ptr LONG): HRESULT = + discardable AVIStreamRead(pavi, lPos, 1, nil, 0, plSize, nil) + +template AVIStreamFormatSize*(pavi: PAVISTREAM, lPos: LONG, plSize: ptr LONG): HRESULT = + discardable AVIStreamReadFormat(pavi, lPos, nil, plSize) + +template AVIStreamDataSize*(pavi: PAVISTREAM, fcc: DWORD, plSize: ptr LONG): HRESULT = + discardable AVIStreamReadData(pavi, fcc, nil, plSize) + +template AVStreamNextKeyFrame*(pavi: PAVISTREAM, pos: LONG): LONG = + discardable AVIStreamFindSample(pavi, pos + 1, FIND_NEXT or FIND_KEY) + +template AVStreamPrevKeyFrame*(pavi: PAVISTREAM, pos: LONG): LONG = + discardable AVIStreamFindSample(pavi, pos - 1, FIND_NEXT or FIND_KEY) + +template AVICapSM*(hwnd: HWND, msg: UINT, wparam: untyped, lparam: untyped): LRESULT = + ( + if IsWindow(hwnd) != FALSE: + SendMessage(hwnd, msg, cast[WPARAM](wparam), cast[LPARAM](lparam)) + else: 0 + ) + when winimUnicode: - const - WM_CAP_SET_CALLBACK_ERROR* = WM_CAP_SET_CALLBACK_ERRORW + const WM_CAP_SET_CALLBACK_ERROR* = WM_CAP_SET_CALLBACK_ERRORW when winimAnsi: - const - WM_CAP_SET_CALLBACK_ERROR* = WM_CAP_SET_CALLBACK_ERRORA -template capSetCallbackOnError*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_ERROR, 0, fpProc) + const WM_CAP_SET_CALLBACK_ERROR* = WM_CAP_SET_CALLBACK_ERRORA +template capSetCallbackOnError*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_ERROR, 0, fpProc) + when winimUnicode: - const - WM_CAP_SET_CALLBACK_STATUS* = WM_CAP_SET_CALLBACK_STATUSW + const WM_CAP_SET_CALLBACK_STATUS* = WM_CAP_SET_CALLBACK_STATUSW when winimAnsi: - const - WM_CAP_SET_CALLBACK_STATUS* = WM_CAP_SET_CALLBACK_STATUSA -template capSetCallbackOnStatus*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_STATUS, 0, fpProc) -template capSetCallbackOnYield*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_YIELD, 0, fpProc) -template capSetCallbackOnFrame*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_FRAME, 0, fpProc) -template capSetCallbackOnVideoStream*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, fpProc) -template capSetCallbackOnWaveStream*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_WAVESTREAM, 0, fpProc) -template capSetCallbackOnCapControl*(hwnd: HWND, fpProc: LPVOID): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_CAPCONTROL, 0, fpProc) -template capSetUserData*(hwnd: HWND, lUser: LPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_USER_DATA, 0, lUser) -template capGetUserData*(hwnd: HWND): LPARAM = discardable LPARAM AVICapSM(hwnd, WM_CAP_GET_USER_DATA, 0, 0) -template capDriverConnect*(hwnd: HWND, i: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_CONNECT, i, 0) -template capDriverDisconnect*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0) + const WM_CAP_SET_CALLBACK_STATUS* = WM_CAP_SET_CALLBACK_STATUSA +template capSetCallbackOnStatus*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_STATUS, 0, fpProc) + +template capSetCallbackOnYield*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_YIELD, 0, fpProc) + +template capSetCallbackOnFrame*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_FRAME, 0, fpProc) + +template capSetCallbackOnVideoStream*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, fpProc) + +template capSetCallbackOnWaveStream*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_WAVESTREAM, 0, fpProc) + +template capSetCallbackOnCapControl*(hwnd: HWND, fpProc: LPVOID): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_CALLBACK_CAPCONTROL, 0, fpProc) + +template capSetUserData*(hwnd: HWND, lUser: LPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_USER_DATA, 0, lUser) + +template capGetUserData*(hwnd: HWND): LPARAM = + discardable LPARAM AVICapSM(hwnd, WM_CAP_GET_USER_DATA, 0, 0) + +template capDriverConnect*(hwnd: HWND, i: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_CONNECT, i, 0) + +template capDriverDisconnect*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0) + when winimUnicode: - const - WM_CAP_DRIVER_GET_NAME* = WM_CAP_DRIVER_GET_NAMEW + const WM_CAP_DRIVER_GET_NAME* = WM_CAP_DRIVER_GET_NAMEW when winimAnsi: - const - WM_CAP_DRIVER_GET_NAME* = WM_CAP_DRIVER_GET_NAMEA -template capDriverGetName*(hwnd: HWND, szName: LPTSTR, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_GET_NAME, wSize, szName) + const WM_CAP_DRIVER_GET_NAME* = WM_CAP_DRIVER_GET_NAMEA +template capDriverGetName*(hwnd: HWND, szName: LPTSTR, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_GET_NAME, wSize, szName) + when winimUnicode: - const - WM_CAP_DRIVER_GET_VERSION* = WM_CAP_DRIVER_GET_VERSIONW + const WM_CAP_DRIVER_GET_VERSION* = WM_CAP_DRIVER_GET_VERSIONW when winimAnsi: - const - WM_CAP_DRIVER_GET_VERSION* = WM_CAP_DRIVER_GET_VERSIONA -template capDriverGetVersion*(hwnd: HWND, szVer: LPTSTR, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_GET_VERSION, wSize, szVer) -template capDriverGetCaps*(hwnd: HWND, s: LPCAPDRIVERCAPS, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_GET_CAPS, wSize, s) + const WM_CAP_DRIVER_GET_VERSION* = WM_CAP_DRIVER_GET_VERSIONA +template capDriverGetVersion*(hwnd: HWND, szVer: LPTSTR, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_GET_VERSION, wSize, szVer) + +template capDriverGetCaps*(hwnd: HWND, s: LPCAPDRIVERCAPS, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DRIVER_GET_CAPS, wSize, s) + when winimUnicode: - const - WM_CAP_FILE_SET_CAPTURE_FILE* = WM_CAP_FILE_SET_CAPTURE_FILEW + const WM_CAP_FILE_SET_CAPTURE_FILE* = WM_CAP_FILE_SET_CAPTURE_FILEW when winimAnsi: - const - WM_CAP_FILE_SET_CAPTURE_FILE* = WM_CAP_FILE_SET_CAPTURE_FILEA -template capFileSetCaptureFile*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SET_CAPTURE_FILE, 0, szName) + const WM_CAP_FILE_SET_CAPTURE_FILE* = WM_CAP_FILE_SET_CAPTURE_FILEA +template capFileSetCaptureFile*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SET_CAPTURE_FILE, 0, szName) + +when winimUnicode: + const WM_CAP_FILE_GET_CAPTURE_FILE* = WM_CAP_FILE_GET_CAPTURE_FILEW +when winimAnsi: + const WM_CAP_FILE_GET_CAPTURE_FILE* = WM_CAP_FILE_GET_CAPTURE_FILEA +template capFileGetCaptureFile*(hwnd: HWND, szName: LPTSTR, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_GET_CAPTURE_FILE, wSize, szName) + +template capFileAlloc*(hwnd: HWND, dwSize: DWORD): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_ALLOCATE, 0, dwSize) + when winimUnicode: - const - WM_CAP_FILE_GET_CAPTURE_FILE* = WM_CAP_FILE_GET_CAPTURE_FILEW + const WM_CAP_FILE_SAVEAS* = WM_CAP_FILE_SAVEASW when winimAnsi: - const - WM_CAP_FILE_GET_CAPTURE_FILE* = WM_CAP_FILE_GET_CAPTURE_FILEA -template capFileGetCaptureFile*(hwnd: HWND, szName: LPTSTR, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_GET_CAPTURE_FILE, wSize, szName) -template capFileAlloc*(hwnd: HWND, dwSize: DWORD): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_ALLOCATE, 0, dwSize) + const WM_CAP_FILE_SAVEAS* = WM_CAP_FILE_SAVEASA +template capFileSaveAs*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SAVEAS, 0, szName) + +template capFileSetInfoChunk*(hwnd: HWND, lpInfoChunk: LPCAPINFOCHUNK): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SET_INFOCHUNK, 0, lpInfoChunk) + when winimUnicode: - const - WM_CAP_FILE_SAVEAS* = WM_CAP_FILE_SAVEASW -when winimAnsi: - const - WM_CAP_FILE_SAVEAS* = WM_CAP_FILE_SAVEASA -template capFileSaveAs*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SAVEAS, 0, szName) -template capFileSetInfoChunk*(hwnd: HWND, lpInfoChunk: LPCAPINFOCHUNK): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SET_INFOCHUNK, 0, lpInfoChunk) -when winimUnicode: - const - WM_CAP_FILE_SAVEDIB* = WM_CAP_FILE_SAVEDIBW + const WM_CAP_FILE_SAVEDIB* = WM_CAP_FILE_SAVEDIBW when winimAnsi: - const - WM_CAP_FILE_SAVEDIB* = WM_CAP_FILE_SAVEDIBA -template capFileSaveDIB*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SAVEDIB, 0, szName) -template capEditCopy*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_EDIT_COPY, 0, 0) -template capSetAudioFormat*(hwnd: HWND, s: LPWAVEFORMATEX, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_AUDIOFORMAT, wSize, s) -template capGetAudioFormat*(hwnd: HWND, s: LPWAVEFORMATEX, wSize: WPARAM): DWORD = discardable DWORD AVICapSM(hwnd, WM_CAP_GET_AUDIOFORMAT, wSize, s) -template capGetAudioFormatSize*(hwnd: HWND): DWORD = discardable DWORD AVICapSM(hwnd, WM_CAP_GET_AUDIOFORMAT, 0, 0) -template capDlgVideoFormat*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0) -template capDlgVideoSource*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEOSOURCE, 0, 0) -template capDlgVideoDisplay*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEODISPLAY, 0, 0) -template capDlgVideoCompression*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0) -template capGetVideoFormat*(hwnd: HWND, s: LPVOID, wSize: WPARAM): DWORD = discardable DWORD AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, wSize, s) -template capGetVideoFormatSize*(hwnd: HWND): DWORD = discardable DWORD AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, 0, 0) -template capSetVideoFormat*(hwnd: HWND, s: LPVOID, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_VIDEOFORMAT, wSize, s) -template capPreview*(hwnd: HWND, f: BOOL): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_PREVIEW, f, 0) -template capPreviewRate*(hwnd: HWND, wMS: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_PREVIEWRATE, wMS, 0) -template capOverlay*(hwnd: HWND, f: BOOL): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_OVERLAY, f, 0) -template capPreviewScale*(hwnd: HWND, f: BOOL): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_SCALE, f, 0) -template capGetStatus*(hwnd: HWND, s: LPCAPSTATUS, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_GET_STATUS, wSize, s) -template capSetScrollPos*(hwnd: HWND, lpP: LPPOINT): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_SCROLL, 0, lpP) -template capGrabFrame*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_GRAB_FRAME, 0, 0) -template capGrabFrameNoStop*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_GRAB_FRAME_NOSTOP, 0, 0) -template capCaptureSequence*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SEQUENCE, 0, 0) -template capCaptureSequenceNoFile*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SEQUENCE_NOFILE, 0, 0) -template capCaptureStop*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_STOP, 0, 0) -template capCaptureAbort*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_ABORT, 0, 0) -template capCaptureSingleFrameOpen*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SINGLE_FRAME_OPEN, 0, 0) -template capCaptureSingleFrameClose*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SINGLE_FRAME_CLOSE, 0, 0) -template capCaptureSingleFrame*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SINGLE_FRAME, 0, 0) -template capCaptureGetSetup*(hwnd: HWND, s: LPCAPTUREPARMS, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_GET_SEQUENCE_SETUP, wSize, s) -template capCaptureSetSetup*(hwnd: HWND, s: LPCAPTUREPARMS, wSize: WPARAM): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_SEQUENCE_SETUP, wSize, s) + const WM_CAP_FILE_SAVEDIB* = WM_CAP_FILE_SAVEDIBA +template capFileSaveDIB*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_FILE_SAVEDIB, 0, szName) + +template capEditCopy*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_EDIT_COPY, 0, 0) + +template capSetAudioFormat*(hwnd: HWND, s: LPWAVEFORMATEX, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_AUDIOFORMAT, wSize, s) + +template capGetAudioFormat*(hwnd: HWND, s: LPWAVEFORMATEX, wSize: WPARAM): DWORD = + discardable DWORD AVICapSM(hwnd, WM_CAP_GET_AUDIOFORMAT, wSize, s) + +template capGetAudioFormatSize*(hwnd: HWND): DWORD = + discardable DWORD AVICapSM(hwnd, WM_CAP_GET_AUDIOFORMAT, 0, 0) + +template capDlgVideoFormat*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEOFORMAT, 0, 0) + +template capDlgVideoSource*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEOSOURCE, 0, 0) + +template capDlgVideoDisplay*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEODISPLAY, 0, 0) + +template capDlgVideoCompression*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_DLG_VIDEOCOMPRESSION, 0, 0) + +template capGetVideoFormat*(hwnd: HWND, s: LPVOID, wSize: WPARAM): DWORD = + discardable DWORD AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, wSize, s) + +template capGetVideoFormatSize*(hwnd: HWND): DWORD = + discardable DWORD AVICapSM(hwnd, WM_CAP_GET_VIDEOFORMAT, 0, 0) + +template capSetVideoFormat*(hwnd: HWND, s: LPVOID, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_VIDEOFORMAT, wSize, s) + +template capPreview*(hwnd: HWND, f: BOOL): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_PREVIEW, f, 0) + +template capPreviewRate*(hwnd: HWND, wMS: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_PREVIEWRATE, wMS, 0) + +template capOverlay*(hwnd: HWND, f: BOOL): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_OVERLAY, f, 0) + +template capPreviewScale*(hwnd: HWND, f: BOOL): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_SCALE, f, 0) + +template capGetStatus*(hwnd: HWND, s: LPCAPSTATUS, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_GET_STATUS, wSize, s) + +template capSetScrollPos*(hwnd: HWND, lpP: LPPOINT): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_SCROLL, 0, lpP) + +template capGrabFrame*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_GRAB_FRAME, 0, 0) + +template capGrabFrameNoStop*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_GRAB_FRAME_NOSTOP, 0, 0) + +template capCaptureSequence*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SEQUENCE, 0, 0) + +template capCaptureSequenceNoFile*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SEQUENCE_NOFILE, 0, 0) + +template capCaptureStop*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_STOP, 0, 0) + +template capCaptureAbort*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_ABORT, 0, 0) + +template capCaptureSingleFrameOpen*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SINGLE_FRAME_OPEN, 0, 0) + +template capCaptureSingleFrameClose*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SINGLE_FRAME_CLOSE, 0, 0) + +template capCaptureSingleFrame*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SINGLE_FRAME, 0, 0) + +template capCaptureGetSetup*(hwnd: HWND, s: LPCAPTUREPARMS, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_GET_SEQUENCE_SETUP, wSize, s) + +template capCaptureSetSetup*(hwnd: HWND, s: LPCAPTUREPARMS, wSize: WPARAM): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_SEQUENCE_SETUP, wSize, s) + when winimUnicode: - const - WM_CAP_SET_MCI_DEVICE* = WM_CAP_SET_MCI_DEVICEW + const WM_CAP_SET_MCI_DEVICE* = WM_CAP_SET_MCI_DEVICEW +when winimAnsi: + const WM_CAP_SET_MCI_DEVICE* = WM_CAP_SET_MCI_DEVICEA +template capSetMCIDeviceName*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_SET_MCI_DEVICE, 0, szName) + +when winimUnicode: + const WM_CAP_GET_MCI_DEVICE* = WM_CAP_GET_MCI_DEVICEW when winimAnsi: - const - WM_CAP_SET_MCI_DEVICE* = WM_CAP_SET_MCI_DEVICEA -template capSetMCIDeviceName*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_SET_MCI_DEVICE, 0, szName) + const WM_CAP_GET_MCI_DEVICE* = WM_CAP_GET_MCI_DEVICEA +template capGetMCIDeviceName*(hwnd: HWND, szName: LPTSTR, wSize): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_GET_MCI_DEVICE, wSize, szName) + when winimUnicode: - const - WM_CAP_GET_MCI_DEVICE* = WM_CAP_GET_MCI_DEVICEW + const WM_CAP_PAL_OPEN* = WM_CAP_PAL_OPENW +when winimAnsi: + const WM_CAP_PAL_OPEN* = WM_CAP_PAL_OPENA +template capPaletteOpen*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_OPEN, 0, szName) + +when winimUnicode: + const WM_CAP_PAL_SAVE* = WM_CAP_PAL_SAVEW when winimAnsi: - const - WM_CAP_GET_MCI_DEVICE* = WM_CAP_GET_MCI_DEVICEA -template capGetMCIDeviceName*(hwnd: HWND, szName: LPTSTR, wSize): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_GET_MCI_DEVICE, wSize, szName) -when winimUnicode: - const - WM_CAP_PAL_OPEN* = WM_CAP_PAL_OPENW -when winimAnsi: - const - WM_CAP_PAL_OPEN* = WM_CAP_PAL_OPENA -template capPaletteOpen*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_OPEN, 0, szName) -when winimUnicode: - const - WM_CAP_PAL_SAVE* = WM_CAP_PAL_SAVEW -when winimAnsi: - const - WM_CAP_PAL_SAVE* = WM_CAP_PAL_SAVEA -template capPaletteSave*(hwnd: HWND, szName: LPTSTR): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_SAVE, 0, szName) -template capPalettePaste*(hwnd: HWND): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_PASTE, 0, 0) -template capPaletteAuto*(hwnd: HWND, iFrames: WPARAM, iColors: DWORD): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_AUTOCREATE, iFrames, iColors) -template capPaletteManual*(hwnd: HWND, fGrab: WPARAM, iColors: DWORD): BOOL = discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_MANUALCREATE, fGrab, iColors) -proc ICGetDefaultQuality*(hic: HIC): DWORD {.winapi, inline.} = discard ICSendMessage(hic, ICM_GETDEFAULTQUALITY, cast[DWORD_PTR](addr result), cast[DWORD_PTR](sizeof(DWORD))); result -proc ICGetDefaultKeyFrameRate*(hic: HIC): DWORD {.winapi, inline.} = discard ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, cast[DWORD_PTR](addr result), cast[DWORD_PTR](sizeof(DWORD))); result -proc Create*(self: ptr IAVIStream, lParam1: LPARAM, lParam2: LPARAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Create(self, lParam1, lParam2) -proc Info*(self: ptr IAVIStream, psi: ptr TAVISTREAMINFOW, lSize: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Info(self, psi, lSize) -proc FindSample*(self: ptr IAVIStream, lPos: LONG, lFlags: LONG): LONG {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.FindSample(self, lPos, lFlags) -proc ReadFormat*(self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, lpcbFormat: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadFormat(self, lPos, lpFormat, lpcbFormat) -proc SetFormat*(self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, cbFormat: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFormat(self, lPos, lpFormat, cbFormat) -proc Read*(self: ptr IAVIStream, lStart: LONG, lSamples: LONG, lpBuffer: LPVOID, cbBuffer: LONG, plBytes: ptr LONG, plSamples: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Read(self, lStart, lSamples, lpBuffer, cbBuffer, plBytes, plSamples) -proc Write*(self: ptr IAVIStream, lStart: LONG, lSamples: LONG, lpBuffer: LPVOID, cbBuffer: LONG, dwFlags: DWORD, plSampWritten: ptr LONG, plBytesWritten: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Write(self, lStart, lSamples, lpBuffer, cbBuffer, dwFlags, plSampWritten, plBytesWritten) -proc mDelete*(self: ptr IAVIStream, lStart: LONG, lSamples: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Delete(self, lStart, lSamples) -proc ReadData*(self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, lpcb: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadData(self, fcc, lp, lpcb) -proc WriteData*(self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, cb: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteData(self, fcc, lp, cb) -proc SetInfo*(self: ptr IAVIStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetInfo(self, lpInfo, cbInfo) -proc Begin*(self: ptr IAVIStreaming, lStart: LONG, lEnd: LONG, lRate: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin(self, lStart, lEnd, lRate) -proc End*(self: ptr IAVIStreaming): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.End(self) -proc Cut*(self: ptr IAVIEditStream, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Cut(self, plStart, plLength, ppResult) -proc Copy*(self: ptr IAVIEditStream, plStart: ptr LONG, plLength: ptr LONG, ppResult: ptr PAVISTREAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Copy(self, plStart, plLength, ppResult) -proc Paste*(self: ptr IAVIEditStream, plPos: ptr LONG, plLength: ptr LONG, pstream: PAVISTREAM, lStart: LONG, lEnd: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Paste(self, plPos, plLength, pstream, lStart, lEnd) -proc Clone*(self: ptr IAVIEditStream, ppResult: ptr PAVISTREAM): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppResult) -proc SetInfo*(self: ptr IAVIEditStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetInfo(self, lpInfo, cbInfo) -proc Reserved1*(self: ptr IAVIPersistFile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reserved1(self) -proc Info*(self: ptr IAVIFile, pfi: ptr TAVIFILEINFOW, lSize: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Info(self, pfi, lSize) -proc GetStream*(self: ptr IAVIFile, ppStream: ptr PAVISTREAM, fccType: DWORD, lParam: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStream(self, ppStream, fccType, lParam) -proc CreateStream*(self: ptr IAVIFile, ppStream: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStream(self, ppStream, psi) -proc WriteData*(self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, cbData: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteData(self, ckid, lpData, cbData) -proc ReadData*(self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, lpcbData: ptr LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.ReadData(self, ckid, lpData, lpcbData) -proc EndRecord*(self: ptr IAVIFile): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.EndRecord(self) -proc DeleteStream*(self: ptr IAVIFile, fccType: DWORD, lParam: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DeleteStream(self, fccType, lParam) -proc GetFrame*(self: ptr IGetFrame, lPos: LONG): LPVOID {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFrame(self, lPos) -proc Begin*(self: ptr IGetFrame, lStart: LONG, lEnd: LONG, lRate: LONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Begin(self, lStart, lEnd, lRate) -proc End*(self: ptr IGetFrame): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.End(self) -proc SetFormat*(self: ptr IGetFrame, lpbi: LPBITMAPINFOHEADER, lpBits: LPVOID, x: int32, y: int32, dx: int32, dy: int32): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetFormat(self, lpbi, lpBits, x, y, dx, dy) -converter winimConverterIAVIStreamToIUnknown*(x: ptr IAVIStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAVIStreamingToIUnknown*(x: ptr IAVIStreaming): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAVIEditStreamToIUnknown*(x: ptr IAVIEditStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAVIPersistFileToIPersistFile*(x: ptr IAVIPersistFile): ptr IPersistFile = cast[ptr IPersistFile](x) -converter winimConverterIAVIPersistFileToIPersist*(x: ptr IAVIPersistFile): ptr IPersist = cast[ptr IPersist](x) -converter winimConverterIAVIPersistFileToIUnknown*(x: ptr IAVIPersistFile): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIAVIFileToIUnknown*(x: ptr IAVIFile): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIGetFrameToIUnknown*(x: ptr IGetFrame): ptr IUnknown = cast[ptr IUnknown](x) + const WM_CAP_PAL_SAVE* = WM_CAP_PAL_SAVEA +template capPaletteSave*(hwnd: HWND, szName: LPTSTR): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_SAVE, 0, szName) + +template capPalettePaste*(hwnd: HWND): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_PASTE, 0, 0) + +template capPaletteAuto*(hwnd: HWND, iFrames: WPARAM, iColors: DWORD): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_AUTOCREATE, iFrames, iColors) + +template capPaletteManual*(hwnd: HWND, fGrab: WPARAM, iColors: DWORD): BOOL = + discardable BOOL AVICapSM(hwnd, WM_CAP_PAL_MANUALCREATE, fGrab, iColors) + +proc ICGetDefaultQuality*(hic: HIC): DWORD {.winapi, inline.} = + discard ICSendMessage( + hic, + ICM_GETDEFAULTQUALITY, + cast[DWORD_PTR](addr result), + cast[DWORD_PTR](sizeof(DWORD)), + ) + result + +proc ICGetDefaultKeyFrameRate*(hic: HIC): DWORD {.winapi, inline.} = + discard ICSendMessage( + hic, + ICM_GETDEFAULTKEYFRAMERATE, + cast[DWORD_PTR](addr result), + cast[DWORD_PTR](sizeof(DWORD)), + ) + result + +proc Create*( + self: ptr IAVIStream, lParam1: LPARAM, lParam2: LPARAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Create(self, lParam1, lParam2) + +proc Info*( + self: ptr IAVIStream, psi: ptr TAVISTREAMINFOW, lSize: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Info(self, psi, lSize) + +proc FindSample*( + self: ptr IAVIStream, lPos: LONG, lFlags: LONG +): LONG {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.FindSample(self, lPos, lFlags) + +proc ReadFormat*( + self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, lpcbFormat: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadFormat(self, lPos, lpFormat, lpcbFormat) + +proc SetFormat*( + self: ptr IAVIStream, lPos: LONG, lpFormat: LPVOID, cbFormat: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFormat(self, lPos, lpFormat, cbFormat) + +proc Read*( + self: ptr IAVIStream, + lStart: LONG, + lSamples: LONG, + lpBuffer: LPVOID, + cbBuffer: LONG, + plBytes: ptr LONG, + plSamples: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Read(self, lStart, lSamples, lpBuffer, cbBuffer, plBytes, plSamples) + +proc Write*( + self: ptr IAVIStream, + lStart: LONG, + lSamples: LONG, + lpBuffer: LPVOID, + cbBuffer: LONG, + dwFlags: DWORD, + plSampWritten: ptr LONG, + plBytesWritten: ptr LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Write( + self, lStart, lSamples, lpBuffer, cbBuffer, dwFlags, plSampWritten, plBytesWritten + ) + +proc mDelete*( + self: ptr IAVIStream, lStart: LONG, lSamples: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Delete(self, lStart, lSamples) + +proc ReadData*( + self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, lpcb: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadData(self, fcc, lp, lpcb) + +proc WriteData*( + self: ptr IAVIStream, fcc: DWORD, lp: LPVOID, cb: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteData(self, fcc, lp, cb) + +proc SetInfo*( + self: ptr IAVIStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetInfo(self, lpInfo, cbInfo) + +proc Begin*( + self: ptr IAVIStreaming, lStart: LONG, lEnd: LONG, lRate: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin(self, lStart, lEnd, lRate) + +proc End*(self: ptr IAVIStreaming): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.End(self) + +proc Cut*( + self: ptr IAVIEditStream, + plStart: ptr LONG, + plLength: ptr LONG, + ppResult: ptr PAVISTREAM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Cut(self, plStart, plLength, ppResult) + +proc Copy*( + self: ptr IAVIEditStream, + plStart: ptr LONG, + plLength: ptr LONG, + ppResult: ptr PAVISTREAM, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Copy(self, plStart, plLength, ppResult) + +proc Paste*( + self: ptr IAVIEditStream, + plPos: ptr LONG, + plLength: ptr LONG, + pstream: PAVISTREAM, + lStart: LONG, + lEnd: LONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Paste(self, plPos, plLength, pstream, lStart, lEnd) + +proc Clone*( + self: ptr IAVIEditStream, ppResult: ptr PAVISTREAM +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppResult) + +proc SetInfo*( + self: ptr IAVIEditStream, lpInfo: ptr TAVISTREAMINFOW, cbInfo: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetInfo(self, lpInfo, cbInfo) + +proc Reserved1*(self: ptr IAVIPersistFile): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reserved1(self) + +proc Info*( + self: ptr IAVIFile, pfi: ptr TAVIFILEINFOW, lSize: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Info(self, pfi, lSize) + +proc GetStream*( + self: ptr IAVIFile, ppStream: ptr PAVISTREAM, fccType: DWORD, lParam: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStream(self, ppStream, fccType, lParam) + +proc CreateStream*( + self: ptr IAVIFile, ppStream: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateStream(self, ppStream, psi) + +proc WriteData*( + self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, cbData: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteData(self, ckid, lpData, cbData) + +proc ReadData*( + self: ptr IAVIFile, ckid: DWORD, lpData: LPVOID, lpcbData: ptr LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.ReadData(self, ckid, lpData, lpcbData) + +proc EndRecord*(self: ptr IAVIFile): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.EndRecord(self) + +proc DeleteStream*( + self: ptr IAVIFile, fccType: DWORD, lParam: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DeleteStream(self, fccType, lParam) + +proc GetFrame*(self: ptr IGetFrame, lPos: LONG): LPVOID {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFrame(self, lPos) + +proc Begin*( + self: ptr IGetFrame, lStart: LONG, lEnd: LONG, lRate: LONG +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Begin(self, lStart, lEnd, lRate) + +proc End*(self: ptr IGetFrame): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.End(self) + +proc SetFormat*( + self: ptr IGetFrame, + lpbi: LPBITMAPINFOHEADER, + lpBits: LPVOID, + x: int32, + y: int32, + dx: int32, + dy: int32, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetFormat(self, lpbi, lpBits, x, y, dx, dy) + +converter winimConverterIAVIStreamToIUnknown*(x: ptr IAVIStream): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAVIStreamingToIUnknown*(x: ptr IAVIStreaming): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAVIEditStreamToIUnknown*(x: ptr IAVIEditStream): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAVIPersistFileToIPersistFile*( + x: ptr IAVIPersistFile +): ptr IPersistFile = + cast[ptr IPersistFile](x) + +converter winimConverterIAVIPersistFileToIPersist*( + x: ptr IAVIPersistFile +): ptr IPersist = + cast[ptr IPersist](x) + +converter winimConverterIAVIPersistFileToIUnknown*( + x: ptr IAVIPersistFile +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIAVIFileToIUnknown*(x: ptr IAVIFile): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIGetFrameToIUnknown*(x: ptr IGetFrame): ptr IUnknown = + cast[ptr IUnknown](x) + when winimUnicode: type ACMDRIVERDETAILS* = ACMDRIVERDETAILSW @@ -1938,37 +3351,155 @@ LPAVIFILEINFO* = LPAVIFILEINFOW CAPSTATUSCALLBACK* = CAPSTATUSCALLBACKW CAPERRORCALLBACK* = CAPERRORCALLBACKW + const ACMHELPMSGSTRING* = ACMHELPMSGSTRINGW ACMHELPMSGCONTEXTMENU* = ACMHELPMSGCONTEXTMENUW ACMHELPMSGCONTEXTHELP* = ACMHELPMSGCONTEXTHELPW MCIWNDF_NOTIFYMEDIA* = MCIWNDF_NOTIFYMEDIAW - proc acmDriverAdd*(phadid: LPHACMDRIVERID, hinstModule: HINSTANCE, lParam: LPARAM, dwPriority: DWORD, fdwAdd: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverAddW".} - proc acmDriverDetails*(hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverDetailsW".} - proc acmFormatTagDetails*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagDetailsW".} - proc acmFormatTagEnum*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSW, fnCallback: ACMFORMATTAGENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagEnumW".} - proc acmFormatDetails*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatDetailsW".} - proc acmFormatEnum*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSW, fnCallback: ACMFORMATENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatEnumW".} - proc acmFormatChoose*(pafmtc: LPACMFORMATCHOOSEW): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatChooseW".} - proc acmFilterTagDetails*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagDetailsW".} - proc acmFilterTagEnum*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSW, fnCallback: ACMFILTERTAGENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagEnumW".} - proc acmFilterDetails*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSW, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterDetailsW".} - proc acmFilterEnum*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSW, fnCallback: ACMFILTERENUMCBW, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterEnumW".} - proc acmFilterChoose*(pafltrc: LPACMFILTERCHOOSEW): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterChooseW".} - proc AVIFileOpen*(ppfile: ptr PAVIFILE, szFile: LPCWSTR, uMode: UINT, lpHandler: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileOpenW".} - proc AVIFileInfo*(pfile: PAVIFILE, pfi: LPAVIFILEINFOW, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileInfoW".} - proc AVIFileCreateStream*(pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileCreateStreamW".} - proc AVIStreamInfo*(pavi: PAVISTREAM, psi: LPAVISTREAMINFOW, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamInfoW".} - proc AVIStreamOpenFromFile*(ppavi: ptr PAVISTREAM, szFile: LPCWSTR, fccType: DWORD, lParam: LONG, mode: UINT, pclsidHandler: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamOpenFromFileW".} - proc AVISaveV*(szFile: LPCWSTR, pclsidHandler: ptr CLSID, lpfnCallback: AVISAVECALLBACK, nStreams: int32, ppavi: ptr PAVISTREAM, plpOptions: ptr LPAVICOMPRESSOPTIONS): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVISaveVW".} - proc AVIBuildFilter*(lpszFilter: LPWSTR, cbFilter: LONG, fSaving: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIBuildFilterW".} - proc EditStreamSetInfo*(pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOW, cbInfo: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetInfoW".} - proc EditStreamSetName*(pavi: PAVISTREAM, lpszName: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetNameW".} - proc MCIWndCreate*(hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCWSTR): HWND {.winapi, stdcall, dynlib: "msvfw32", importc: "MCIWndCreateW".} - proc capCreateCaptureWindow*(lpszWindowName: LPCWSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hwndParent: HWND, nID: int32): HWND {.winapi, stdcall, dynlib: "avicap32", importc: "capCreateCaptureWindowW".} - proc capGetDriverDescription*(wDriverIndex: UINT, lpszName: LPWSTR, cbName: int32, lpszVer: LPWSTR, cbVer: int32): WINBOOL {.winapi, stdcall, dynlib: "avicap32", importc: "capGetDriverDescriptionW".} - proc GetOpenFileNamePreview*(lpofn: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetOpenFileNamePreviewW".} - proc GetSaveFileNamePreview*(lpofn: LPOPENFILENAMEW): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetSaveFileNamePreviewW".} + proc acmDriverAdd*( + phadid: LPHACMDRIVERID, + hinstModule: HINSTANCE, + lParam: LPARAM, + dwPriority: DWORD, + fdwAdd: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverAddW".} + + proc acmDriverDetails*( + hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSW, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverDetailsW".} + + proc acmFormatTagDetails*( + had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSW, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagDetailsW".} + + proc acmFormatTagEnum*( + had: HACMDRIVER, + paftd: LPACMFORMATTAGDETAILSW, + fnCallback: ACMFORMATTAGENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagEnumW".} + + proc acmFormatDetails*( + had: HACMDRIVER, pafd: LPACMFORMATDETAILSW, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatDetailsW".} + + proc acmFormatEnum*( + had: HACMDRIVER, + pafd: LPACMFORMATDETAILSW, + fnCallback: ACMFORMATENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatEnumW".} + + proc acmFormatChoose*( + pafmtc: LPACMFORMATCHOOSEW + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatChooseW".} + + proc acmFilterTagDetails*( + had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSW, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagDetailsW".} + + proc acmFilterTagEnum*( + had: HACMDRIVER, + paftd: LPACMFILTERTAGDETAILSW, + fnCallback: ACMFILTERTAGENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagEnumW".} + + proc acmFilterDetails*( + had: HACMDRIVER, pafd: LPACMFILTERDETAILSW, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterDetailsW".} + + proc acmFilterEnum*( + had: HACMDRIVER, + pafd: LPACMFILTERDETAILSW, + fnCallback: ACMFILTERENUMCBW, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterEnumW".} + + proc acmFilterChoose*( + pafltrc: LPACMFILTERCHOOSEW + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterChooseW".} + + proc AVIFileOpen*( + ppfile: ptr PAVIFILE, szFile: LPCWSTR, uMode: UINT, lpHandler: LPCLSID + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileOpenW".} + + proc AVIFileInfo*( + pfile: PAVIFILE, pfi: LPAVIFILEINFOW, lSize: LONG + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileInfoW".} + + proc AVIFileCreateStream*( + pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOW + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileCreateStreamW".} + + proc AVIStreamInfo*( + pavi: PAVISTREAM, psi: LPAVISTREAMINFOW, lSize: LONG + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamInfoW".} + + proc AVIStreamOpenFromFile*( + ppavi: ptr PAVISTREAM, + szFile: LPCWSTR, + fccType: DWORD, + lParam: LONG, + mode: UINT, + pclsidHandler: ptr CLSID, + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamOpenFromFileW".} + + proc AVISaveV*( + szFile: LPCWSTR, + pclsidHandler: ptr CLSID, + lpfnCallback: AVISAVECALLBACK, + nStreams: int32, + ppavi: ptr PAVISTREAM, + plpOptions: ptr LPAVICOMPRESSOPTIONS, + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVISaveVW".} + + proc AVIBuildFilter*( + lpszFilter: LPWSTR, cbFilter: LONG, fSaving: WINBOOL + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIBuildFilterW".} + + proc EditStreamSetInfo*( + pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOW, cbInfo: LONG + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetInfoW".} + + proc EditStreamSetName*( + pavi: PAVISTREAM, lpszName: LPCWSTR + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetNameW".} + + proc MCIWndCreate*( + hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCWSTR + ): HWND {.winapi, stdcall, dynlib: "msvfw32", importc: "MCIWndCreateW".} + + proc capCreateCaptureWindow*( + lpszWindowName: LPCWSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hwndParent: HWND, + nID: int32, + ): HWND {.winapi, stdcall, dynlib: "avicap32", importc: "capCreateCaptureWindowW".} + + proc capGetDriverDescription*( + wDriverIndex: UINT, lpszName: LPWSTR, cbName: int32, lpszVer: LPWSTR, cbVer: int32 + ): WINBOOL {. + winapi, stdcall, dynlib: "avicap32", importc: "capGetDriverDescriptionW" + .} + + proc GetOpenFileNamePreview*( + lpofn: LPOPENFILENAMEW + ): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetOpenFileNamePreviewW".} + + proc GetSaveFileNamePreview*( + lpofn: LPOPENFILENAMEW + ): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetSaveFileNamePreviewW".} + when winimAnsi: type ACMDRIVERDETAILS* = ACMDRIVERDETAILSA @@ -2004,35 +3535,152 @@ LPAVIFILEINFO* = LPAVIFILEINFOA CAPSTATUSCALLBACK* = CAPSTATUSCALLBACKA CAPERRORCALLBACK* = CAPERRORCALLBACKA + const CLSID_AVISimpleUnMarshal* = DEFINE_GUID("00020009-0000-0000-c000-000000000046") ACMHELPMSGSTRING* = ACMHELPMSGSTRINGA ACMHELPMSGCONTEXTMENU* = ACMHELPMSGCONTEXTMENUA ACMHELPMSGCONTEXTHELP* = ACMHELPMSGCONTEXTHELPA MCIWNDF_NOTIFYMEDIA* = MCIWNDF_NOTIFYMEDIAA - proc acmDriverAdd*(phadid: LPHACMDRIVERID, hinstModule: HINSTANCE, lParam: LPARAM, dwPriority: DWORD, fdwAdd: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverAddA".} - proc acmDriverDetails*(hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverDetailsA".} - proc acmFormatTagDetails*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagDetailsA".} - proc acmFormatTagEnum*(had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSA, fnCallback: ACMFORMATTAGENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagEnumA".} - proc acmFormatDetails*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatDetailsA".} - proc acmFormatEnum*(had: HACMDRIVER, pafd: LPACMFORMATDETAILSA, fnCallback: ACMFORMATENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatEnumA".} - proc acmFormatChoose*(pafmtc: LPACMFORMATCHOOSEA): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatChooseA".} - proc acmFilterTagDetails*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagDetailsA".} - proc acmFilterTagEnum*(had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSA, fnCallback: ACMFILTERTAGENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagEnumA".} - proc acmFilterDetails*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSA, fdwDetails: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterDetailsA".} - proc acmFilterEnum*(had: HACMDRIVER, pafd: LPACMFILTERDETAILSA, fnCallback: ACMFILTERENUMCBA, dwInstance: DWORD_PTR, fdwEnum: DWORD): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterEnumA".} - proc acmFilterChoose*(pafltrc: LPACMFILTERCHOOSEA): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterChooseA".} - proc AVIFileOpen*(ppfile: ptr PAVIFILE, szFile: LPCSTR, uMode: UINT, lpHandler: LPCLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileOpenA".} - proc AVIFileInfo*(pfile: PAVIFILE, pfi: LPAVIFILEINFOA, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileInfoA".} - proc AVIFileCreateStream*(pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOA): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileCreateStreamA".} - proc AVIStreamInfo*(pavi: PAVISTREAM, psi: LPAVISTREAMINFOA, lSize: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamInfoA".} - proc AVIStreamOpenFromFile*(ppavi: ptr PAVISTREAM, szFile: LPCSTR, fccType: DWORD, lParam: LONG, mode: UINT, pclsidHandler: ptr CLSID): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamOpenFromFileA".} - proc AVISaveV*(szFile: LPCSTR, pclsidHandler: ptr CLSID, lpfnCallback: AVISAVECALLBACK, nStreams: int32, ppavi: ptr PAVISTREAM, plpOptions: ptr LPAVICOMPRESSOPTIONS): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVISaveVA".} - proc AVIBuildFilter*(lpszFilter: LPSTR, cbFilter: LONG, fSaving: WINBOOL): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIBuildFilterA".} - proc EditStreamSetInfo*(pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOA, cbInfo: LONG): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetInfoA".} - proc EditStreamSetName*(pavi: PAVISTREAM, lpszName: LPCSTR): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetNameA".} - proc MCIWndCreate*(hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCSTR): HWND {.winapi, stdcall, dynlib: "msvfw32", importc: "MCIWndCreateA".} - proc capCreateCaptureWindow*(lpszWindowName: LPCSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hwndParent: HWND, nID: int32): HWND {.winapi, stdcall, dynlib: "avicap32", importc: "capCreateCaptureWindowA".} - proc capGetDriverDescription*(wDriverIndex: UINT, lpszName: LPSTR, cbName: int32, lpszVer: LPSTR, cbVer: int32): WINBOOL {.winapi, stdcall, dynlib: "avicap32", importc: "capGetDriverDescriptionA".} - proc GetOpenFileNamePreview*(lpofn: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetOpenFileNamePreviewA".} - proc GetSaveFileNamePreview*(lpofn: LPOPENFILENAMEA): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetSaveFileNamePreviewA".} + proc acmDriverAdd*( + phadid: LPHACMDRIVERID, + hinstModule: HINSTANCE, + lParam: LPARAM, + dwPriority: DWORD, + fdwAdd: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverAddA".} + + proc acmDriverDetails*( + hadid: HACMDRIVERID, padd: LPACMDRIVERDETAILSA, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmDriverDetailsA".} + + proc acmFormatTagDetails*( + had: HACMDRIVER, paftd: LPACMFORMATTAGDETAILSA, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagDetailsA".} + + proc acmFormatTagEnum*( + had: HACMDRIVER, + paftd: LPACMFORMATTAGDETAILSA, + fnCallback: ACMFORMATTAGENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatTagEnumA".} + + proc acmFormatDetails*( + had: HACMDRIVER, pafd: LPACMFORMATDETAILSA, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatDetailsA".} + + proc acmFormatEnum*( + had: HACMDRIVER, + pafd: LPACMFORMATDETAILSA, + fnCallback: ACMFORMATENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatEnumA".} + + proc acmFormatChoose*( + pafmtc: LPACMFORMATCHOOSEA + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFormatChooseA".} + + proc acmFilterTagDetails*( + had: HACMDRIVER, paftd: LPACMFILTERTAGDETAILSA, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagDetailsA".} + + proc acmFilterTagEnum*( + had: HACMDRIVER, + paftd: LPACMFILTERTAGDETAILSA, + fnCallback: ACMFILTERTAGENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterTagEnumA".} + + proc acmFilterDetails*( + had: HACMDRIVER, pafd: LPACMFILTERDETAILSA, fdwDetails: DWORD + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterDetailsA".} + + proc acmFilterEnum*( + had: HACMDRIVER, + pafd: LPACMFILTERDETAILSA, + fnCallback: ACMFILTERENUMCBA, + dwInstance: DWORD_PTR, + fdwEnum: DWORD, + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterEnumA".} + + proc acmFilterChoose*( + pafltrc: LPACMFILTERCHOOSEA + ): MMRESULT {.winapi, stdcall, dynlib: "msacm32", importc: "acmFilterChooseA".} + + proc AVIFileOpen*( + ppfile: ptr PAVIFILE, szFile: LPCSTR, uMode: UINT, lpHandler: LPCLSID + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileOpenA".} + + proc AVIFileInfo*( + pfile: PAVIFILE, pfi: LPAVIFILEINFOA, lSize: LONG + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileInfoA".} + + proc AVIFileCreateStream*( + pfile: PAVIFILE, ppavi: ptr PAVISTREAM, psi: ptr TAVISTREAMINFOA + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIFileCreateStreamA".} + + proc AVIStreamInfo*( + pavi: PAVISTREAM, psi: LPAVISTREAMINFOA, lSize: LONG + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamInfoA".} + + proc AVIStreamOpenFromFile*( + ppavi: ptr PAVISTREAM, + szFile: LPCSTR, + fccType: DWORD, + lParam: LONG, + mode: UINT, + pclsidHandler: ptr CLSID, + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIStreamOpenFromFileA".} + + proc AVISaveV*( + szFile: LPCSTR, + pclsidHandler: ptr CLSID, + lpfnCallback: AVISAVECALLBACK, + nStreams: int32, + ppavi: ptr PAVISTREAM, + plpOptions: ptr LPAVICOMPRESSOPTIONS, + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVISaveVA".} + + proc AVIBuildFilter*( + lpszFilter: LPSTR, cbFilter: LONG, fSaving: WINBOOL + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "AVIBuildFilterA".} + + proc EditStreamSetInfo*( + pavi: PAVISTREAM, lpInfo: LPAVISTREAMINFOA, cbInfo: LONG + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetInfoA".} + + proc EditStreamSetName*( + pavi: PAVISTREAM, lpszName: LPCSTR + ): HRESULT {.winapi, stdcall, dynlib: "avifil32", importc: "EditStreamSetNameA".} + + proc MCIWndCreate*( + hwndParent: HWND, hInstance: HINSTANCE, dwStyle: DWORD, szFile: LPCSTR + ): HWND {.winapi, stdcall, dynlib: "msvfw32", importc: "MCIWndCreateA".} + + proc capCreateCaptureWindow*( + lpszWindowName: LPCSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hwndParent: HWND, + nID: int32, + ): HWND {.winapi, stdcall, dynlib: "avicap32", importc: "capCreateCaptureWindowA".} + + proc capGetDriverDescription*( + wDriverIndex: UINT, lpszName: LPSTR, cbName: int32, lpszVer: LPSTR, cbVer: int32 + ): WINBOOL {. + winapi, stdcall, dynlib: "avicap32", importc: "capGetDriverDescriptionA" + .} + + proc GetOpenFileNamePreview*( + lpofn: LPOPENFILENAMEA + ): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetOpenFileNamePreviewA".} + + proc GetSaveFileNamePreview*( + lpofn: LPOPENFILENAMEA + ): WINBOOL {.winapi, stdcall, dynlib: "msvfw32", importc: "GetSaveFileNamePreviewA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/virtdisk.nim --- a/semicongine/thirdparty/winim/winim/inc/virtdisk.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/virtdisk.nim Thu Aug 22 18:32:21 2024 +0700 @@ -31,22 +31,29 @@ VIRTUAL_STORAGE_TYPE* {.pure.} = object DeviceId*: ULONG VendorId*: GUID + PVIRTUAL_STORAGE_TYPE* = ptr VIRTUAL_STORAGE_TYPE ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1* {.pure.} = object Reserved*: ULONG + ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1* {.pure, union.} = object Version1*: ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 + ATTACH_VIRTUAL_DISK_PARAMETERS* {.pure.} = object Version*: ATTACH_VIRTUAL_DISK_VERSION union1*: ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1 + PATTACH_VIRTUAL_DISK_PARAMETERS* = ptr ATTACH_VIRTUAL_DISK_PARAMETERS COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1* {.pure.} = object Reserved*: ULONG + COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1* {.pure, union.} = object Version1*: COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 + COMPACT_VIRTUAL_DISK_PARAMETERS* {.pure.} = object Version*: COMPACT_VIRTUAL_DISK_VERSION union1*: COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1 + PCOMPACT_VIRTUAL_DISK_PARAMETERS* = ptr COMPACT_VIRTUAL_DISK_PARAMETERS CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1* {.pure.} = object UniqueId*: GUID @@ -55,28 +62,36 @@ SectorSizeInBytes*: ULONG ParentPath*: PCWSTR SourcePath*: PCWSTR + CREATE_VIRTUAL_DISK_PARAMETERS_UNION1* {.pure, union.} = object Version1*: CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 + CREATE_VIRTUAL_DISK_PARAMETERS* {.pure.} = object Version*: CREATE_VIRTUAL_DISK_VERSION union1*: CREATE_VIRTUAL_DISK_PARAMETERS_UNION1 + PCREATE_VIRTUAL_DISK_PARAMETERS* = ptr CREATE_VIRTUAL_DISK_PARAMETERS EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1* {.pure.} = object NewSize*: ULONGLONG + EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1* {.pure, union.} = object Version1*: EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 + EXPAND_VIRTUAL_DISK_PARAMETERS* {.pure.} = object Version*: EXPAND_VIRTUAL_DISK_VERSION union1*: EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1 + PEXPAND_VIRTUAL_DISK_PARAMETERS* = ptr EXPAND_VIRTUAL_DISK_PARAMETERS GET_VIRTUAL_DISK_INFO_UNION1_Size* {.pure.} = object VirtualSize*: ULONGLONG PhysicalSize*: ULONGLONG BlockSize*: ULONG SectorSize*: ULONG + GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation* {.pure.} = object ParentResolved*: BOOL ParentLocationBuffer*: array[1, WCHAR] + GET_VIRTUAL_DISK_INFO_UNION1* {.pure, union.} = object Size*: GET_VIRTUAL_DISK_INFO_UNION1_Size Identifier*: GUID @@ -85,37 +100,48 @@ ParentTimestamp*: ULONG VirtualStorageType*: VIRTUAL_STORAGE_TYPE ProviderSubtype*: ULONG + GET_VIRTUAL_DISK_INFO* {.pure.} = object Version*: GET_VIRTUAL_DISK_INFO_VERSION union1*: GET_VIRTUAL_DISK_INFO_UNION1 + PGET_VIRTUAL_DISK_INFO* = ptr GET_VIRTUAL_DISK_INFO MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1* {.pure.} = object MergeDepth*: ULONG + MERGE_VIRTUAL_DISK_PARAMETERS_UNION1* {.pure, union.} = object Version1*: MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 + MERGE_VIRTUAL_DISK_PARAMETERS* {.pure.} = object Version*: MERGE_VIRTUAL_DISK_VERSION union1*: MERGE_VIRTUAL_DISK_PARAMETERS_UNION1 + PMERGE_VIRTUAL_DISK_PARAMETERS* = ptr MERGE_VIRTUAL_DISK_PARAMETERS OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1* {.pure.} = object RWDepth*: ULONG + OPEN_VIRTUAL_DISK_PARAMETERS_UNION1* {.pure, union.} = object Version1*: OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 + OPEN_VIRTUAL_DISK_PARAMETERS* {.pure.} = object Version*: OPEN_VIRTUAL_DISK_VERSION union1*: OPEN_VIRTUAL_DISK_PARAMETERS_UNION1 + POPEN_VIRTUAL_DISK_PARAMETERS* = ptr OPEN_VIRTUAL_DISK_PARAMETERS SET_VIRTUAL_DISK_INFO_UNION1* {.pure, union.} = object ParentFilePath*: PCWSTR UniqueIdentifier*: GUID + SET_VIRTUAL_DISK_INFO* {.pure.} = object Version*: SET_VIRTUAL_DISK_INFO_VERSION union1*: SET_VIRTUAL_DISK_INFO_UNION1 + PSET_VIRTUAL_DISK_INFO* = ptr SET_VIRTUAL_DISK_INFO STORAGE_DEPENDENCY_INFO_TYPE_1* {.pure.} = object DependencyTypeFlags*: DEPENDENT_DISK_FLAG ProviderSpecificFlags*: ULONG VirtualStorageType*: VIRTUAL_STORAGE_TYPE + PSTORAGE_DEPENDENCY_INFO_TYPE_1* = ptr STORAGE_DEPENDENCY_INFO_TYPE_1 STORAGE_DEPENDENCY_INFO_TYPE_2* {.pure.} = object DependencyTypeFlags*: DEPENDENT_DISK_FLAG @@ -126,20 +152,25 @@ HostVolumeName*: PWSTR DependentVolumeName*: PWSTR DependentVolumeRelativePath*: PWSTR + PSTORAGE_DEPENDENCY_INFO_TYPE_2* = ptr STORAGE_DEPENDENCY_INFO_TYPE_2 STORAGE_DEPENDENCY_INFO_UNION1* {.pure, union.} = object Version1Entries*: array[1, STORAGE_DEPENDENCY_INFO_TYPE_1] Version2Entries*: array[1, STORAGE_DEPENDENCY_INFO_TYPE_2] + STORAGE_DEPENDENCY_INFO* {.pure.} = object Version*: STORAGE_DEPENDENCY_INFO_VERSION NumberEntries*: ULONG union1*: STORAGE_DEPENDENCY_INFO_UNION1 + PSTORAGE_DEPENDENCY_INFO* = ptr STORAGE_DEPENDENCY_INFO VIRTUAL_DISK_PROGRESS* {.pure.} = object OperationStatus*: DWORD CurrentValue*: ULONGLONG CompletionValue*: ULONGLONG + PVIRTUAL_DISK_PROGRESS* = ptr VIRTUAL_DISK_PROGRESS + const ATTACH_VIRTUAL_DISK_FLAG_NONE* = 0x00000000 ATTACH_VIRTUAL_DISK_FLAG_READ_ONLY* = 0x00000001 @@ -209,61 +240,283 @@ VIRTUAL_STORAGE_TYPE_DEVICE_UNKNOWN* = 0 VIRTUAL_STORAGE_TYPE_DEVICE_ISO* = 1 VIRTUAL_STORAGE_TYPE_DEVICE_VHD* = 2 - VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT* = DEFINE_GUID("ec984aec-a0f9-47e9-901f-71415a66345b") -proc AttachVirtualDisk*(VirtualDiskHandle: HANDLE, SecurityDescriptor: PSECURITY_DESCRIPTOR, Flags: ATTACH_VIRTUAL_DISK_FLAG, ProviderSpecificFlags: ULONG, Parameters: PATTACH_VIRTUAL_DISK_PARAMETERS, Overlapped: LPOVERLAPPED): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc CompactVirtualDisk*(VirtualDiskHandle: HANDLE, Flags: COMPACT_VIRTUAL_DISK_FLAG, Parameters: PCOMPACT_VIRTUAL_DISK_PARAMETERS, Overlapped: LPOVERLAPPED): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc CreateVirtualDisk*(VirtualStorageType: PVIRTUAL_STORAGE_TYPE, Path: PCWSTR, VirtualDiskAccessMask: VIRTUAL_DISK_ACCESS_MASK, SecurityDescriptor: PSECURITY_DESCRIPTOR, Flags: CREATE_VIRTUAL_DISK_FLAG, ProviderSpecificFlags: ULONG, Parameters: PCREATE_VIRTUAL_DISK_PARAMETERS, Overlapped: LPOVERLAPPED, Handle: PHANDLE): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc DetachVirtualDisk*(VirtualDiskHandle: HANDLE, Flags: DETACH_VIRTUAL_DISK_FLAG, ProviderSpecificFlags: ULONG): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc ExpandVirtualDisk*(VirtualDiskHandle: HANDLE, Flags: EXPAND_VIRTUAL_DISK_FLAG, Parameters: PEXPAND_VIRTUAL_DISK_PARAMETERS, Overlapped: LPOVERLAPPED): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc GetStorageDependencyInformation*(ObjectHandle: HANDLE, Flags: GET_STORAGE_DEPENDENCY_FLAG, StorageDependencyInfoSize: ULONG, StorageDependencyInfo: PSTORAGE_DEPENDENCY_INFO, SizeUsed: PULONG): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc GetVirtualDiskInformation*(VirtualDiskHandle: HANDLE, VirtualDiskInfoSize: PULONG, VirtualDiskInfo: PGET_VIRTUAL_DISK_INFO, SizeUsed: PULONG): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc GetVirtualDiskOperationProgress*(VirtualDiskHandle: HANDLE, Overlapped: LPOVERLAPPED, Progress: PVIRTUAL_DISK_PROGRESS): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc GetVirtualDiskPhysicalPath*(VirtualDiskHandle: HANDLE, DiskPathSizeInBytes: PULONG, DiskPath: PWSTR): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc MergeVirtualDisk*(VirtualDiskHandle: HANDLE, Flags: MERGE_VIRTUAL_DISK_FLAG, Parameters: PMERGE_VIRTUAL_DISK_PARAMETERS, Overlapped: LPOVERLAPPED): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc OpenVirtualDisk*(VirtualStorageType: PVIRTUAL_STORAGE_TYPE, Path: PCWSTR, VirtualDiskAccessMask: VIRTUAL_DISK_ACCESS_MASK, Flags: OPEN_VIRTUAL_DISK_FLAG, Parameters: POPEN_VIRTUAL_DISK_PARAMETERS, Handle: PHANDLE): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc SetVirtualDiskInformation*(VirtualDiskHandle: HANDLE, VirtualDiskInfo: PSET_VIRTUAL_DISK_INFO): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} -proc `Version1=`*(self: var ATTACH_VIRTUAL_DISK_PARAMETERS, x: ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1) {.inline.} = self.union1.Version1 = x -proc Version1*(self: ATTACH_VIRTUAL_DISK_PARAMETERS): ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc Version1*(self: var ATTACH_VIRTUAL_DISK_PARAMETERS): var ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc `Version1=`*(self: var COMPACT_VIRTUAL_DISK_PARAMETERS, x: COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1) {.inline.} = self.union1.Version1 = x -proc Version1*(self: COMPACT_VIRTUAL_DISK_PARAMETERS): COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc Version1*(self: var COMPACT_VIRTUAL_DISK_PARAMETERS): var COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc `Version1=`*(self: var CREATE_VIRTUAL_DISK_PARAMETERS, x: CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1) {.inline.} = self.union1.Version1 = x -proc Version1*(self: CREATE_VIRTUAL_DISK_PARAMETERS): CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc Version1*(self: var CREATE_VIRTUAL_DISK_PARAMETERS): var CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc `Version1=`*(self: var EXPAND_VIRTUAL_DISK_PARAMETERS, x: EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1) {.inline.} = self.union1.Version1 = x -proc Version1*(self: EXPAND_VIRTUAL_DISK_PARAMETERS): EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc Version1*(self: var EXPAND_VIRTUAL_DISK_PARAMETERS): var EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc `Identifier=`*(self: var GET_VIRTUAL_DISK_INFO, x: GUID) {.inline.} = self.union1.Identifier = x -proc Identifier*(self: GET_VIRTUAL_DISK_INFO): GUID {.inline.} = self.union1.Identifier -proc Identifier*(self: var GET_VIRTUAL_DISK_INFO): var GUID {.inline.} = self.union1.Identifier -proc `ParentLocation=`*(self: var GET_VIRTUAL_DISK_INFO, x: GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation) {.inline.} = self.union1.ParentLocation = x -proc ParentLocation*(self: GET_VIRTUAL_DISK_INFO): GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation {.inline.} = self.union1.ParentLocation -proc ParentLocation*(self: var GET_VIRTUAL_DISK_INFO): var GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation {.inline.} = self.union1.ParentLocation -proc `ParentIdentifier=`*(self: var GET_VIRTUAL_DISK_INFO, x: GUID) {.inline.} = self.union1.ParentIdentifier = x -proc ParentIdentifier*(self: GET_VIRTUAL_DISK_INFO): GUID {.inline.} = self.union1.ParentIdentifier -proc ParentIdentifier*(self: var GET_VIRTUAL_DISK_INFO): var GUID {.inline.} = self.union1.ParentIdentifier -proc `ParentTimestamp=`*(self: var GET_VIRTUAL_DISK_INFO, x: ULONG) {.inline.} = self.union1.ParentTimestamp = x -proc ParentTimestamp*(self: GET_VIRTUAL_DISK_INFO): ULONG {.inline.} = self.union1.ParentTimestamp -proc ParentTimestamp*(self: var GET_VIRTUAL_DISK_INFO): var ULONG {.inline.} = self.union1.ParentTimestamp -proc `ProviderSubtype=`*(self: var GET_VIRTUAL_DISK_INFO, x: ULONG) {.inline.} = self.union1.ProviderSubtype = x -proc ProviderSubtype*(self: GET_VIRTUAL_DISK_INFO): ULONG {.inline.} = self.union1.ProviderSubtype -proc ProviderSubtype*(self: var GET_VIRTUAL_DISK_INFO): var ULONG {.inline.} = self.union1.ProviderSubtype -proc `Version1=`*(self: var MERGE_VIRTUAL_DISK_PARAMETERS, x: MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1) {.inline.} = self.union1.Version1 = x -proc Version1*(self: MERGE_VIRTUAL_DISK_PARAMETERS): MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc Version1*(self: var MERGE_VIRTUAL_DISK_PARAMETERS): var MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc `Version1=`*(self: var OPEN_VIRTUAL_DISK_PARAMETERS, x: OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1) {.inline.} = self.union1.Version1 = x -proc Version1*(self: OPEN_VIRTUAL_DISK_PARAMETERS): OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc Version1*(self: var OPEN_VIRTUAL_DISK_PARAMETERS): var OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = self.union1.Version1 -proc `ParentFilePath=`*(self: var SET_VIRTUAL_DISK_INFO, x: PCWSTR) {.inline.} = self.union1.ParentFilePath = x -proc ParentFilePath*(self: SET_VIRTUAL_DISK_INFO): PCWSTR {.inline.} = self.union1.ParentFilePath -proc ParentFilePath*(self: var SET_VIRTUAL_DISK_INFO): var PCWSTR {.inline.} = self.union1.ParentFilePath -proc `UniqueIdentifier=`*(self: var SET_VIRTUAL_DISK_INFO, x: GUID) {.inline.} = self.union1.UniqueIdentifier = x -proc UniqueIdentifier*(self: SET_VIRTUAL_DISK_INFO): GUID {.inline.} = self.union1.UniqueIdentifier -proc UniqueIdentifier*(self: var SET_VIRTUAL_DISK_INFO): var GUID {.inline.} = self.union1.UniqueIdentifier -proc `Version1Entries=`*(self: var STORAGE_DEPENDENCY_INFO, x: array[1, STORAGE_DEPENDENCY_INFO_TYPE_1]) {.inline.} = self.union1.Version1Entries = x -proc Version1Entries*(self: STORAGE_DEPENDENCY_INFO): array[1, STORAGE_DEPENDENCY_INFO_TYPE_1] {.inline.} = self.union1.Version1Entries -proc Version1Entries*(self: var STORAGE_DEPENDENCY_INFO): var array[1, STORAGE_DEPENDENCY_INFO_TYPE_1] {.inline.} = self.union1.Version1Entries -proc `Version2Entries=`*(self: var STORAGE_DEPENDENCY_INFO, x: array[1, STORAGE_DEPENDENCY_INFO_TYPE_2]) {.inline.} = self.union1.Version2Entries = x -proc Version2Entries*(self: STORAGE_DEPENDENCY_INFO): array[1, STORAGE_DEPENDENCY_INFO_TYPE_2] {.inline.} = self.union1.Version2Entries -proc Version2Entries*(self: var STORAGE_DEPENDENCY_INFO): var array[1, STORAGE_DEPENDENCY_INFO_TYPE_2] {.inline.} = self.union1.Version2Entries + VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT* = + DEFINE_GUID("ec984aec-a0f9-47e9-901f-71415a66345b") +proc AttachVirtualDisk*( + VirtualDiskHandle: HANDLE, + SecurityDescriptor: PSECURITY_DESCRIPTOR, + Flags: ATTACH_VIRTUAL_DISK_FLAG, + ProviderSpecificFlags: ULONG, + Parameters: PATTACH_VIRTUAL_DISK_PARAMETERS, + Overlapped: LPOVERLAPPED, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc CompactVirtualDisk*( + VirtualDiskHandle: HANDLE, + Flags: COMPACT_VIRTUAL_DISK_FLAG, + Parameters: PCOMPACT_VIRTUAL_DISK_PARAMETERS, + Overlapped: LPOVERLAPPED, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc CreateVirtualDisk*( + VirtualStorageType: PVIRTUAL_STORAGE_TYPE, + Path: PCWSTR, + VirtualDiskAccessMask: VIRTUAL_DISK_ACCESS_MASK, + SecurityDescriptor: PSECURITY_DESCRIPTOR, + Flags: CREATE_VIRTUAL_DISK_FLAG, + ProviderSpecificFlags: ULONG, + Parameters: PCREATE_VIRTUAL_DISK_PARAMETERS, + Overlapped: LPOVERLAPPED, + Handle: PHANDLE, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc DetachVirtualDisk*( + VirtualDiskHandle: HANDLE, + Flags: DETACH_VIRTUAL_DISK_FLAG, + ProviderSpecificFlags: ULONG, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc ExpandVirtualDisk*( + VirtualDiskHandle: HANDLE, + Flags: EXPAND_VIRTUAL_DISK_FLAG, + Parameters: PEXPAND_VIRTUAL_DISK_PARAMETERS, + Overlapped: LPOVERLAPPED, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc GetStorageDependencyInformation*( + ObjectHandle: HANDLE, + Flags: GET_STORAGE_DEPENDENCY_FLAG, + StorageDependencyInfoSize: ULONG, + StorageDependencyInfo: PSTORAGE_DEPENDENCY_INFO, + SizeUsed: PULONG, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc GetVirtualDiskInformation*( + VirtualDiskHandle: HANDLE, + VirtualDiskInfoSize: PULONG, + VirtualDiskInfo: PGET_VIRTUAL_DISK_INFO, + SizeUsed: PULONG, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc GetVirtualDiskOperationProgress*( + VirtualDiskHandle: HANDLE, Overlapped: LPOVERLAPPED, Progress: PVIRTUAL_DISK_PROGRESS +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc GetVirtualDiskPhysicalPath*( + VirtualDiskHandle: HANDLE, DiskPathSizeInBytes: PULONG, DiskPath: PWSTR +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc MergeVirtualDisk*( + VirtualDiskHandle: HANDLE, + Flags: MERGE_VIRTUAL_DISK_FLAG, + Parameters: PMERGE_VIRTUAL_DISK_PARAMETERS, + Overlapped: LPOVERLAPPED, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc OpenVirtualDisk*( + VirtualStorageType: PVIRTUAL_STORAGE_TYPE, + Path: PCWSTR, + VirtualDiskAccessMask: VIRTUAL_DISK_ACCESS_MASK, + Flags: OPEN_VIRTUAL_DISK_FLAG, + Parameters: POPEN_VIRTUAL_DISK_PARAMETERS, + Handle: PHANDLE, +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc SetVirtualDiskInformation*( + VirtualDiskHandle: HANDLE, VirtualDiskInfo: PSET_VIRTUAL_DISK_INFO +): DWORD {.winapi, stdcall, dynlib: "virtdisk", importc.} + +proc `Version1=`*( + self: var ATTACH_VIRTUAL_DISK_PARAMETERS, + x: ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1, +) {.inline.} = + self.union1.Version1 = x + +proc Version1*( + self: ATTACH_VIRTUAL_DISK_PARAMETERS +): ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc Version1*( + self: var ATTACH_VIRTUAL_DISK_PARAMETERS +): var ATTACH_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc `Version1=`*( + self: var COMPACT_VIRTUAL_DISK_PARAMETERS, + x: COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1, +) {.inline.} = + self.union1.Version1 = x + +proc Version1*( + self: COMPACT_VIRTUAL_DISK_PARAMETERS +): COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc Version1*( + self: var COMPACT_VIRTUAL_DISK_PARAMETERS +): var COMPACT_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc `Version1=`*( + self: var CREATE_VIRTUAL_DISK_PARAMETERS, + x: CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1, +) {.inline.} = + self.union1.Version1 = x + +proc Version1*( + self: CREATE_VIRTUAL_DISK_PARAMETERS +): CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc Version1*( + self: var CREATE_VIRTUAL_DISK_PARAMETERS +): var CREATE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc `Version1=`*( + self: var EXPAND_VIRTUAL_DISK_PARAMETERS, + x: EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1, +) {.inline.} = + self.union1.Version1 = x + +proc Version1*( + self: EXPAND_VIRTUAL_DISK_PARAMETERS +): EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc Version1*( + self: var EXPAND_VIRTUAL_DISK_PARAMETERS +): var EXPAND_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc `Identifier=`*(self: var GET_VIRTUAL_DISK_INFO, x: GUID) {.inline.} = + self.union1.Identifier = x + +proc Identifier*(self: GET_VIRTUAL_DISK_INFO): GUID {.inline.} = + self.union1.Identifier + +proc Identifier*(self: var GET_VIRTUAL_DISK_INFO): var GUID {.inline.} = + self.union1.Identifier + +proc `ParentLocation=`*( + self: var GET_VIRTUAL_DISK_INFO, x: GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation +) {.inline.} = + self.union1.ParentLocation = x + +proc ParentLocation*( + self: GET_VIRTUAL_DISK_INFO +): GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation {.inline.} = + self.union1.ParentLocation + +proc ParentLocation*( + self: var GET_VIRTUAL_DISK_INFO +): var GET_VIRTUAL_DISK_INFO_UNION1_ParentLocation {.inline.} = + self.union1.ParentLocation + +proc `ParentIdentifier=`*(self: var GET_VIRTUAL_DISK_INFO, x: GUID) {.inline.} = + self.union1.ParentIdentifier = x + +proc ParentIdentifier*(self: GET_VIRTUAL_DISK_INFO): GUID {.inline.} = + self.union1.ParentIdentifier + +proc ParentIdentifier*(self: var GET_VIRTUAL_DISK_INFO): var GUID {.inline.} = + self.union1.ParentIdentifier + +proc `ParentTimestamp=`*(self: var GET_VIRTUAL_DISK_INFO, x: ULONG) {.inline.} = + self.union1.ParentTimestamp = x + +proc ParentTimestamp*(self: GET_VIRTUAL_DISK_INFO): ULONG {.inline.} = + self.union1.ParentTimestamp + +proc ParentTimestamp*(self: var GET_VIRTUAL_DISK_INFO): var ULONG {.inline.} = + self.union1.ParentTimestamp + +proc `ProviderSubtype=`*(self: var GET_VIRTUAL_DISK_INFO, x: ULONG) {.inline.} = + self.union1.ProviderSubtype = x + +proc ProviderSubtype*(self: GET_VIRTUAL_DISK_INFO): ULONG {.inline.} = + self.union1.ProviderSubtype + +proc ProviderSubtype*(self: var GET_VIRTUAL_DISK_INFO): var ULONG {.inline.} = + self.union1.ProviderSubtype + +proc `Version1=`*( + self: var MERGE_VIRTUAL_DISK_PARAMETERS, + x: MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1, +) {.inline.} = + self.union1.Version1 = x + +proc Version1*( + self: MERGE_VIRTUAL_DISK_PARAMETERS +): MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc Version1*( + self: var MERGE_VIRTUAL_DISK_PARAMETERS +): var MERGE_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc `Version1=`*( + self: var OPEN_VIRTUAL_DISK_PARAMETERS, + x: OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1, +) {.inline.} = + self.union1.Version1 = x + +proc Version1*( + self: OPEN_VIRTUAL_DISK_PARAMETERS +): OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc Version1*( + self: var OPEN_VIRTUAL_DISK_PARAMETERS +): var OPEN_VIRTUAL_DISK_PARAMETERS_UNION1_Version1 {.inline.} = + self.union1.Version1 + +proc `ParentFilePath=`*(self: var SET_VIRTUAL_DISK_INFO, x: PCWSTR) {.inline.} = + self.union1.ParentFilePath = x + +proc ParentFilePath*(self: SET_VIRTUAL_DISK_INFO): PCWSTR {.inline.} = + self.union1.ParentFilePath + +proc ParentFilePath*(self: var SET_VIRTUAL_DISK_INFO): var PCWSTR {.inline.} = + self.union1.ParentFilePath + +proc `UniqueIdentifier=`*(self: var SET_VIRTUAL_DISK_INFO, x: GUID) {.inline.} = + self.union1.UniqueIdentifier = x + +proc UniqueIdentifier*(self: SET_VIRTUAL_DISK_INFO): GUID {.inline.} = + self.union1.UniqueIdentifier + +proc UniqueIdentifier*(self: var SET_VIRTUAL_DISK_INFO): var GUID {.inline.} = + self.union1.UniqueIdentifier + +proc `Version1Entries=`*( + self: var STORAGE_DEPENDENCY_INFO, x: array[1, STORAGE_DEPENDENCY_INFO_TYPE_1] +) {.inline.} = + self.union1.Version1Entries = x + +proc Version1Entries*( + self: STORAGE_DEPENDENCY_INFO +): array[1, STORAGE_DEPENDENCY_INFO_TYPE_1] {.inline.} = + self.union1.Version1Entries + +proc Version1Entries*( + self: var STORAGE_DEPENDENCY_INFO +): var array[1, STORAGE_DEPENDENCY_INFO_TYPE_1] {.inline.} = + self.union1.Version1Entries + +proc `Version2Entries=`*( + self: var STORAGE_DEPENDENCY_INFO, x: array[1, STORAGE_DEPENDENCY_INFO_TYPE_2] +) {.inline.} = + self.union1.Version2Entries = x + +proc Version2Entries*( + self: STORAGE_DEPENDENCY_INFO +): array[1, STORAGE_DEPENDENCY_INFO_TYPE_2] {.inline.} = + self.union1.Version2Entries + +proc Version2Entries*( + self: var STORAGE_DEPENDENCY_INFO +): var array[1, STORAGE_DEPENDENCY_INFO_TYPE_2] {.inline.} = + self.union1.Version2Entries diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/vssym32.nim --- a/semicongine/thirdparty/winim/winim/inc/vssym32.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/vssym32.nim Thu Aug 22 18:32:21 2024 +0700 @@ -218,6 +218,7 @@ LOGOFFBUTTONSSTATES* = int32 MENUBANDPARTS* = int32 MENUBANDSTATES* = int32 + const TMTVS_RESERVEDLOW* = 100000 TMTVS_RESERVEDHIGH* = 19999 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winbase.nim --- a/semicongine/thirdparty/winim/winim/inc/winbase.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winbase.nim Thu Aug 22 18:32:21 2024 +0700 @@ -65,25 +65,30 @@ nLength*: DWORD lpSecurityDescriptor*: LPVOID bInheritHandle*: WINBOOL + PSECURITY_ATTRIBUTES* = ptr SECURITY_ATTRIBUTES LPSECURITY_ATTRIBUTES* = ptr SECURITY_ATTRIBUTES OVERLAPPED_UNION1_STRUCT1* {.pure.} = object Offset*: DWORD OffsetHigh*: DWORD + OVERLAPPED_UNION1* {.pure, union.} = object struct1*: OVERLAPPED_UNION1_STRUCT1 Pointer*: PVOID + OVERLAPPED* {.pure.} = object Internal*: ULONG_PTR InternalHigh*: ULONG_PTR union1*: OVERLAPPED_UNION1 hEvent*: HANDLE + LPOVERLAPPED* = ptr OVERLAPPED OVERLAPPED_ENTRY* {.pure.} = object lpCompletionKey*: ULONG_PTR lpOverlapped*: LPOVERLAPPED Internal*: ULONG_PTR dwNumberOfBytesTransferred*: DWORD + LPOVERLAPPED_ENTRY* = ptr OVERLAPPED_ENTRY SYSTEMTIME* {.pure.} = object wYear*: WORD @@ -94,6 +99,7 @@ wMinute*: WORD wSecond*: WORD wMilliseconds*: WORD + PSYSTEMTIME* = ptr SYSTEMTIME LPSYSTEMTIME* = ptr SYSTEMTIME WIN32_FIND_DATAA* {.pure.} = object @@ -107,6 +113,7 @@ dwReserved1*: DWORD cFileName*: array[MAX_PATH, CHAR] cAlternateFileName*: array[14, CHAR] + PWIN32_FIND_DATAA* = ptr WIN32_FIND_DATAA LPWIN32_FIND_DATAA* = ptr WIN32_FIND_DATAA WIN32_FIND_DATAW* {.pure.} = object @@ -120,6 +127,7 @@ dwReserved1*: DWORD cFileName*: array[MAX_PATH, WCHAR] cAlternateFileName*: array[14, WCHAR] + PWIN32_FIND_DATAW* = ptr WIN32_FIND_DATAW LPWIN32_FIND_DATAW* = ptr WIN32_FIND_DATAW CRITICAL_SECTION* = RTL_CRITICAL_SECTION @@ -131,14 +139,17 @@ PROCESS_HEAP_ENTRY_UNION1_Block* {.pure.} = object hMem*: HANDLE dwReserved*: array[3, DWORD] + PROCESS_HEAP_ENTRY_UNION1_Region* {.pure.} = object dwCommittedSize*: DWORD dwUnCommittedSize*: DWORD lpFirstBlock*: LPVOID lpLastBlock*: LPVOID + PROCESS_HEAP_ENTRY_UNION1* {.pure, union.} = object Block*: PROCESS_HEAP_ENTRY_UNION1_Block Region*: PROCESS_HEAP_ENTRY_UNION1_Region + PROCESS_HEAP_ENTRY* {.pure.} = object lpData*: PVOID cbData*: DWORD @@ -146,6 +157,7 @@ iRegionIndex*: BYTE wFlags*: WORD union1*: PROCESS_HEAP_ENTRY_UNION1 + LPPROCESS_HEAP_ENTRY* = ptr PROCESS_HEAP_ENTRY PPROCESS_HEAP_ENTRY* = ptr PROCESS_HEAP_ENTRY REASON_CONTEXT_Reason_Detailed* {.pure.} = object @@ -153,24 +165,29 @@ LocalizedReasonId*: ULONG ReasonStringCount*: ULONG ReasonStrings*: ptr LPWSTR + REASON_CONTEXT_Reason* {.pure, union.} = object Detailed*: REASON_CONTEXT_Reason_Detailed SimpleReasonString*: LPWSTR + REASON_CONTEXT* {.pure.} = object Version*: ULONG Flags*: DWORD Reason*: REASON_CONTEXT_Reason + PREASON_CONTEXT* = ptr REASON_CONTEXT - PTHREAD_START_ROUTINE* = proc (lpThreadParameter: LPVOID): DWORD {.stdcall.} + PTHREAD_START_ROUTINE* = proc(lpThreadParameter: LPVOID): DWORD {.stdcall.} LPTHREAD_START_ROUTINE* = PTHREAD_START_ROUTINE EXCEPTION_DEBUG_INFO* {.pure.} = object ExceptionRecord*: EXCEPTION_RECORD dwFirstChance*: DWORD + LPEXCEPTION_DEBUG_INFO* = ptr EXCEPTION_DEBUG_INFO CREATE_THREAD_DEBUG_INFO* {.pure.} = object hThread*: HANDLE lpThreadLocalBase*: LPVOID lpStartAddress*: LPTHREAD_START_ROUTINE + LPCREATE_THREAD_DEBUG_INFO* = ptr CREATE_THREAD_DEBUG_INFO CREATE_PROCESS_DEBUG_INFO* {.pure.} = object hFile*: HANDLE @@ -183,12 +200,15 @@ lpStartAddress*: LPTHREAD_START_ROUTINE lpImageName*: LPVOID fUnicode*: WORD + LPCREATE_PROCESS_DEBUG_INFO* = ptr CREATE_PROCESS_DEBUG_INFO EXIT_THREAD_DEBUG_INFO* {.pure.} = object dwExitCode*: DWORD + LPEXIT_THREAD_DEBUG_INFO* = ptr EXIT_THREAD_DEBUG_INFO EXIT_PROCESS_DEBUG_INFO* {.pure.} = object dwExitCode*: DWORD + LPEXIT_PROCESS_DEBUG_INFO* = ptr EXIT_PROCESS_DEBUG_INFO LOAD_DLL_DEBUG_INFO* {.pure.} = object hFile*: HANDLE @@ -197,18 +217,22 @@ nDebugInfoSize*: DWORD lpImageName*: LPVOID fUnicode*: WORD + LPLOAD_DLL_DEBUG_INFO* = ptr LOAD_DLL_DEBUG_INFO UNLOAD_DLL_DEBUG_INFO* {.pure.} = object lpBaseOfDll*: LPVOID + LPUNLOAD_DLL_DEBUG_INFO* = ptr UNLOAD_DLL_DEBUG_INFO OUTPUT_DEBUG_STRING_INFO* {.pure.} = object lpDebugStringData*: LPSTR fUnicode*: WORD nDebugStringLength*: WORD + LPOUTPUT_DEBUG_STRING_INFO* = ptr OUTPUT_DEBUG_STRING_INFO RIP_INFO* {.pure.} = object dwError*: DWORD dwType*: DWORD + LPRIP_INFO* = ptr RIP_INFO DEBUG_EVENT_u* {.pure, union.} = object Exception*: EXCEPTION_DEBUG_INFO @@ -220,14 +244,17 @@ UnloadDll*: UNLOAD_DLL_DEBUG_INFO DebugString*: OUTPUT_DEBUG_STRING_INFO RipInfo*: RIP_INFO + DEBUG_EVENT* {.pure.} = object dwDebugEventCode*: DWORD dwProcessId*: DWORD dwThreadId*: DWORD u*: DEBUG_EVENT_u + LPDEBUG_EVENT* = ptr DEBUG_EVENT LPCONTEXT* = PCONTEXT - PTOP_LEVEL_EXCEPTION_FILTER* = proc (ExceptionInfo: ptr EXCEPTION_POINTERS): LONG {.stdcall.} + PTOP_LEVEL_EXCEPTION_FILTER* = + proc(ExceptionInfo: ptr EXCEPTION_POINTERS): LONG {.stdcall.} LPTOP_LEVEL_EXCEPTION_FILTER* = PTOP_LEVEL_EXCEPTION_FILTER BY_HANDLE_FILE_INFORMATION* {.pure.} = object dwFileAttributes*: DWORD @@ -240,6 +267,7 @@ nNumberOfLinks*: DWORD nFileIndexHigh*: DWORD nFileIndexLow*: DWORD + PBY_HANDLE_FILE_INFORMATION* = ptr BY_HANDLE_FILE_INFORMATION LPBY_HANDLE_FILE_INFORMATION* = ptr BY_HANDLE_FILE_INFORMATION WIN32_FILE_ATTRIBUTE_DATA* {.pure.} = object @@ -249,6 +277,7 @@ ftLastWriteTime*: FILETIME nFileSizeHigh*: DWORD nFileSizeLow*: DWORD + LPWIN32_FILE_ATTRIBUTE_DATA* = ptr WIN32_FILE_ATTRIBUTE_DATA CREATEFILE2_EXTENDED_PARAMETERS* {.pure.} = object dwSize*: DWORD @@ -257,6 +286,7 @@ dwSecurityQosFlags*: DWORD lpSecurityAttributes*: LPSECURITY_ATTRIBUTES hTemplateFile*: HANDLE + PCREATEFILE2_EXTENDED_PARAMETERS* = ptr CREATEFILE2_EXTENDED_PARAMETERS LPCREATEFILE2_EXTENDED_PARAMETERS* = ptr CREATEFILE2_EXTENDED_PARAMETERS THEAP_SUMMARY* {.pure.} = object @@ -265,22 +295,26 @@ cbCommitted*: SIZE_T cbReserved*: SIZE_T cbMaxReserve*: SIZE_T + PHEAP_SUMMARY* = ptr THEAP_SUMMARY LPHEAP_SUMMARY* = PHEAP_SUMMARY ENUMUILANG* {.pure.} = object NumOfEnumUILang*: ULONG SizeOfEnumUIBuffer*: ULONG pEnumUIBuffer*: ptr LANGID + PENUMUILANG* = ptr ENUMUILANG WIN32_MEMORY_RANGE_ENTRY* {.pure.} = object VirtualAddress*: PVOID NumberOfBytes*: SIZE_T + PWIN32_MEMORY_RANGE_ENTRY* = ptr WIN32_MEMORY_RANGE_ENTRY PROCESS_INFORMATION* {.pure.} = object hProcess*: HANDLE hThread*: HANDLE dwProcessId*: DWORD dwThreadId*: DWORD + PPROCESS_INFORMATION* = ptr PROCESS_INFORMATION LPPROCESS_INFORMATION* = ptr PROCESS_INFORMATION STARTUPINFOA* {.pure.} = object @@ -302,6 +336,7 @@ hStdInput*: HANDLE hStdOutput*: HANDLE hStdError*: HANDLE + LPSTARTUPINFOA* = ptr STARTUPINFOA STARTUPINFOW* {.pure.} = object cb*: DWORD @@ -322,6 +357,7 @@ hStdInput*: HANDLE hStdOutput*: HANDLE hStdError*: HANDLE + LPSTARTUPINFOW* = ptr STARTUPINFOW PROC_THREAD_ATTRIBUTE_LIST* {.pure.} = object PPROC_THREAD_ATTRIBUTE_LIST* = ptr PROC_THREAD_ATTRIBUTE_LIST @@ -339,9 +375,11 @@ SYSTEM_INFO_UNION1_STRUCT1* {.pure.} = object wProcessorArchitecture*: WORD wReserved*: WORD + SYSTEM_INFO_UNION1* {.pure, union.} = object dwOemId*: DWORD struct1*: SYSTEM_INFO_UNION1_STRUCT1 + SYSTEM_INFO* {.pure.} = object union1*: SYSTEM_INFO_UNION1 dwPageSize*: DWORD @@ -353,6 +391,7 @@ dwAllocationGranularity*: DWORD wProcessorLevel*: WORD wProcessorRevision*: WORD + LPSYSTEM_INFO* = ptr SYSTEM_INFO MEMORYSTATUSEX* {.pure.} = object dwLength*: DWORD @@ -364,8 +403,9 @@ ullTotalVirtual*: DWORDLONG ullAvailVirtual*: DWORDLONG ullAvailExtendedVirtual*: DWORDLONG + LPMEMORYSTATUSEX* = ptr MEMORYSTATUSEX - PFIBER_START_ROUTINE* = proc (lpFiberParameter: LPVOID): VOID {.stdcall.} + PFIBER_START_ROUTINE* = proc(lpFiberParameter: LPVOID): VOID {.stdcall.} LPFIBER_START_ROUTINE* = PFIBER_START_ROUTINE COMMPROP* {.pure.} = object wPacketLength*: WORD @@ -386,36 +426,38 @@ dwProvSpec1*: DWORD dwProvSpec2*: DWORD wcProvChar*: array[1, WCHAR] + LPCOMMPROP* = ptr COMMPROP COMSTAT* {.pure.} = object - fCtsHold* {.bitsize:1.}: DWORD - fDsrHold* {.bitsize:1.}: DWORD - fRlsdHold* {.bitsize:1.}: DWORD - fXoffHold* {.bitsize:1.}: DWORD - fXoffSent* {.bitsize:1.}: DWORD - fEof* {.bitsize:1.}: DWORD - fTxim* {.bitsize:1.}: DWORD - fReserved* {.bitsize:25.}: DWORD + fCtsHold* {.bitsize: 1.}: DWORD + fDsrHold* {.bitsize: 1.}: DWORD + fRlsdHold* {.bitsize: 1.}: DWORD + fXoffHold* {.bitsize: 1.}: DWORD + fXoffSent* {.bitsize: 1.}: DWORD + fEof* {.bitsize: 1.}: DWORD + fTxim* {.bitsize: 1.}: DWORD + fReserved* {.bitsize: 25.}: DWORD cbInQue*: DWORD cbOutQue*: DWORD + LPCOMSTAT* = ptr COMSTAT DCB* {.pure.} = object DCBlength*: DWORD BaudRate*: DWORD - fBinary* {.bitsize:1.}: DWORD - fParity* {.bitsize:1.}: DWORD - fOutxCtsFlow* {.bitsize:1.}: DWORD - fOutxDsrFlow* {.bitsize:1.}: DWORD - fDtrControl* {.bitsize:2.}: DWORD - fDsrSensitivity* {.bitsize:1.}: DWORD - fTXContinueOnXoff* {.bitsize:1.}: DWORD - fOutX* {.bitsize:1.}: DWORD - fInX* {.bitsize:1.}: DWORD - fErrorChar* {.bitsize:1.}: DWORD - fNull* {.bitsize:1.}: DWORD - fRtsControl* {.bitsize:2.}: DWORD - fAbortOnError* {.bitsize:1.}: DWORD - fDummy2* {.bitsize:17.}: DWORD + fBinary* {.bitsize: 1.}: DWORD + fParity* {.bitsize: 1.}: DWORD + fOutxCtsFlow* {.bitsize: 1.}: DWORD + fOutxDsrFlow* {.bitsize: 1.}: DWORD + fDtrControl* {.bitsize: 2.}: DWORD + fDsrSensitivity* {.bitsize: 1.}: DWORD + fTXContinueOnXoff* {.bitsize: 1.}: DWORD + fOutX* {.bitsize: 1.}: DWORD + fInX* {.bitsize: 1.}: DWORD + fErrorChar* {.bitsize: 1.}: DWORD + fNull* {.bitsize: 1.}: DWORD + fRtsControl* {.bitsize: 2.}: DWORD + fAbortOnError* {.bitsize: 1.}: DWORD + fDummy2* {.bitsize: 17.}: DWORD wReserved*: WORD XonLim*: WORD XoffLim*: WORD @@ -428,6 +470,7 @@ EofChar*: char EvtChar*: char wReserved1*: WORD + LPDCB* = ptr DCB COMMTIMEOUTS* {.pure.} = object ReadIntervalTimeout*: DWORD @@ -435,6 +478,7 @@ ReadTotalTimeoutConstant*: DWORD WriteTotalTimeoutMultiplier*: DWORD WriteTotalTimeoutConstant*: DWORD + LPCOMMTIMEOUTS* = ptr COMMTIMEOUTS COMMCONFIG* {.pure.} = object dwSize*: DWORD @@ -445,6 +489,7 @@ dwProviderOffset*: DWORD dwProviderSize*: DWORD wcProviderData*: array[1, WCHAR] + LPCOMMCONFIG* = ptr COMMCONFIG MEMORYSTATUS* {.pure.} = object dwLength*: DWORD @@ -455,6 +500,7 @@ dwAvailPageFile*: SIZE_T dwTotalVirtual*: SIZE_T dwAvailVirtual*: SIZE_T + LPMEMORYSTATUS* = ptr MEMORYSTATUS JIT_DEBUG_INFO* {.pure.} = object dwSize*: DWORD @@ -464,6 +510,7 @@ lpExceptionAddress*: ULONG64 lpExceptionRecord*: ULONG64 lpContextRecord*: ULONG64 + LPJIT_DEBUG_INFO* = ptr JIT_DEBUG_INFO JIT_DEBUG_INFO32* = JIT_DEBUG_INFO LPJIT_DEBUG_INFO32* = ptr JIT_DEBUG_INFO @@ -471,8 +518,8 @@ LPJIT_DEBUG_INFO64* = ptr JIT_DEBUG_INFO LPEXCEPTION_RECORD* = PEXCEPTION_RECORD LPEXCEPTION_POINTERS* = PEXCEPTION_POINTERS -const - OFS_MAXPATHNAME* = 128 + +const OFS_MAXPATHNAME* = 128 type OFSTRUCT* {.pure.} = object cBytes*: BYTE @@ -481,10 +528,12 @@ Reserved1*: WORD Reserved2*: WORD szPathName*: array[OFS_MAXPATHNAME, CHAR] + LPOFSTRUCT* = ptr OFSTRUCT POFSTRUCT* = ptr OFSTRUCT MEMORY_PRIORITY_INFORMATION* {.pure.} = object MemoryPriority*: ULONG + PMEMORY_PRIORITY_INFORMATION* = ptr MEMORY_PRIORITY_INFORMATION POWER_REQUEST_CONTEXT* = REASON_CONTEXT PPOWER_REQUEST_CONTEXT* = ptr REASON_CONTEXT @@ -495,32 +544,40 @@ Size*: LARGE_INTEGER dwStreamNameSize*: DWORD cStreamName*: array[ANYSIZE_ARRAY, WCHAR] + LPWIN32_STREAM_ID* = ptr WIN32_STREAM_ID STARTUPINFOEXA* {.pure.} = object StartupInfo*: STARTUPINFOA lpAttributeList*: LPPROC_THREAD_ATTRIBUTE_LIST + LPSTARTUPINFOEXA* = ptr STARTUPINFOEXA STARTUPINFOEXW* {.pure.} = object StartupInfo*: STARTUPINFOW lpAttributeList*: LPPROC_THREAD_ATTRIBUTE_LIST + LPSTARTUPINFOEXW* = ptr STARTUPINFOEXW WIN32_FIND_STREAM_DATA* {.pure.} = object StreamSize*: LARGE_INTEGER cStreamName*: array[MAX_PATH + 36, WCHAR] + PWIN32_FIND_STREAM_DATA* = ptr WIN32_FIND_STREAM_DATA EVENTLOG_FULL_INFORMATION* {.pure.} = object dwFull*: DWORD + LPEVENTLOG_FULL_INFORMATION* = ptr EVENTLOG_FULL_INFORMATION OPERATION_START_PARAMETERS* {.pure.} = object Version*: ULONG OperationId*: OPERATION_ID Flags*: ULONG + POPERATION_START_PARAMETERS* = ptr OPERATION_START_PARAMETERS OPERATION_END_PARAMETERS* {.pure.} = object Version*: ULONG OperationId*: OPERATION_ID Flags*: ULONG + POPERATION_END_PARAMETERS* = ptr OPERATION_END_PARAMETERS + const HW_PROFILE_GUIDLEN* = 39 MAX_PROFILE_LEN* = 80 @@ -529,11 +586,13 @@ dwDockInfo*: DWORD szHwProfileGuid*: array[HW_PROFILE_GUIDLEN, CHAR] szHwProfileName*: array[MAX_PROFILE_LEN, CHAR] + LPHW_PROFILE_INFOA* = ptr HW_PROFILE_INFOA HW_PROFILE_INFOW* {.pure.} = object dwDockInfo*: DWORD szHwProfileGuid*: array[HW_PROFILE_GUIDLEN, WCHAR] szHwProfileName*: array[MAX_PROFILE_LEN, WCHAR] + LPHW_PROFILE_INFOW* = ptr HW_PROFILE_INFOW TIME_ZONE_INFORMATION* {.pure.} = object Bias*: LONG @@ -543,6 +602,7 @@ DaylightName*: array[32, WCHAR] DaylightDate*: SYSTEMTIME DaylightBias*: LONG + PTIME_ZONE_INFORMATION* = ptr TIME_ZONE_INFORMATION LPTIME_ZONE_INFORMATION* = ptr TIME_ZONE_INFORMATION DYNAMIC_TIME_ZONE_INFORMATION* {.pure.} = object @@ -555,6 +615,7 @@ DaylightBias*: LONG TimeZoneKeyName*: array[128, WCHAR] DynamicDaylightTimeDisabled*: BOOLEAN + PDYNAMIC_TIME_ZONE_INFORMATION* = ptr DYNAMIC_TIME_ZONE_INFORMATION SYSTEM_POWER_STATUS* {.pure.} = object ACLineStatus*: BYTE @@ -563,6 +624,7 @@ Reserved1*: BYTE BatteryLifeTime*: DWORD BatteryFullLifeTime*: DWORD + LPSYSTEM_POWER_STATUS* = ptr SYSTEM_POWER_STATUS PBAD_MEMORY_CALLBACK_ROUTINE* = ptr BAD_MEMORY_CALLBACK_ROUTINE ACTCTXA* {.pure.} = object @@ -575,6 +637,7 @@ lpResourceName*: LPCSTR lpApplicationName*: LPCSTR hModule*: HMODULE + PACTCTXA* = ptr ACTCTXA ACTCTXW* {.pure.} = object cbSize*: ULONG @@ -586,6 +649,7 @@ lpResourceName*: LPCWSTR lpApplicationName*: LPCWSTR hModule*: HMODULE + PACTCTXW* = ptr ACTCTXW PCACTCTXA* = ptr ACTCTXA PCACTCTXW* = ptr ACTCTXW @@ -600,6 +664,7 @@ ulSectionTotalLength*: ULONG hActCtx*: HANDLE ulAssemblyRosterIndex*: ULONG + PACTCTX_SECTION_KEYED_DATA_2600* = ptr ACTCTX_SECTION_KEYED_DATA_2600 PCACTCTX_SECTION_KEYED_DATA_2600* = ptr ACTCTX_SECTION_KEYED_DATA_2600 ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA* {.pure.} = object @@ -608,8 +673,11 @@ ulSectionLength*: ULONG lpSectionGlobalDataBase*: PVOID ulSectionGlobalDataLength*: ULONG - PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA* = ptr ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA - PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA* = ptr ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA + + PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA* = + ptr ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA + PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA* = + ptr ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA ACTCTX_SECTION_KEYED_DATA* {.pure.} = object cbSize*: ULONG ulDataFormatVersion*: ULONG @@ -623,11 +691,13 @@ ulAssemblyRosterIndex*: ULONG ulFlags*: ULONG AssemblyMetadata*: ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA + PACTCTX_SECTION_KEYED_DATA* = ptr ACTCTX_SECTION_KEYED_DATA PCACTCTX_SECTION_KEYED_DATA* = ptr ACTCTX_SECTION_KEYED_DATA ACTIVATION_CONTEXT_BASIC_INFORMATION* {.pure.} = object hActCtx*: HANDLE dwFlags*: DWORD + PACTIVATION_CONTEXT_BASIC_INFORMATION* = ptr ACTIVATION_CONTEXT_BASIC_INFORMATION PCACTIVATION_CONTEXT_BASIC_INFORMATION* = ptr ACTIVATION_CONTEXT_BASIC_INFORMATION FILE_BASIC_INFO* {.pure.} = object @@ -636,6 +706,7 @@ LastWriteTime*: LARGE_INTEGER ChangeTime*: LARGE_INTEGER FileAttributes*: DWORD + PFILE_BASIC_INFO* = ptr FILE_BASIC_INFO FILE_STANDARD_INFO* {.pure.} = object AllocationSize*: LARGE_INTEGER @@ -643,22 +714,27 @@ NumberOfLinks*: DWORD DeletePending*: BOOLEAN Directory*: BOOLEAN + PFILE_STANDARD_INFO* = ptr FILE_STANDARD_INFO FILE_NAME_INFO* {.pure.} = object FileNameLength*: DWORD FileName*: array[1, WCHAR] + PFILE_NAME_INFO* = ptr FILE_NAME_INFO FILE_RENAME_INFO* {.pure.} = object ReplaceIfExists*: BOOLEAN RootDirectory*: HANDLE FileNameLength*: DWORD FileName*: array[1, WCHAR] + PFILE_RENAME_INFO* = ptr FILE_RENAME_INFO FILE_ALLOCATION_INFO* {.pure.} = object AllocationSize*: LARGE_INTEGER + PFILE_ALLOCATION_INFO* = ptr FILE_ALLOCATION_INFO FILE_END_OF_FILE_INFO* {.pure.} = object EndOfFile*: LARGE_INTEGER + PFILE_END_OF_FILE_INFO* = ptr FILE_END_OF_FILE_INFO FILE_STREAM_INFO* {.pure.} = object NextEntryOffset*: DWORD @@ -666,6 +742,7 @@ StreamSize*: LARGE_INTEGER StreamAllocationSize*: LARGE_INTEGER StreamName*: array[1, WCHAR] + PFILE_STREAM_INFO* = ptr FILE_STREAM_INFO FILE_COMPRESSION_INFO* {.pure.} = object CompressedFileSize*: LARGE_INTEGER @@ -674,13 +751,16 @@ ChunkShift*: UCHAR ClusterShift*: UCHAR Reserved*: array[3, UCHAR] + PFILE_COMPRESSION_INFO* = ptr FILE_COMPRESSION_INFO FILE_ATTRIBUTE_TAG_INFO* {.pure.} = object FileAttributes*: DWORD ReparseTag*: DWORD + PFILE_ATTRIBUTE_TAG_INFO* = ptr FILE_ATTRIBUTE_TAG_INFO FILE_DISPOSITION_INFO* {.pure.} = object DeleteFile*: BOOLEAN + PFILE_DISPOSITION_INFO* = ptr FILE_DISPOSITION_INFO FILE_ID_BOTH_DIR_INFO* {.pure.} = object NextEntryOffset*: DWORD @@ -698,6 +778,7 @@ ShortName*: array[12, WCHAR] FileId*: LARGE_INTEGER FileName*: array[1, WCHAR] + PFILE_ID_BOTH_DIR_INFO* = ptr FILE_ID_BOTH_DIR_INFO FILE_FULL_DIR_INFO* {.pure.} = object NextEntryOffset*: ULONG @@ -712,12 +793,15 @@ FileNameLength*: ULONG EaSize*: ULONG FileName*: array[1, WCHAR] + PFILE_FULL_DIR_INFO* = ptr FILE_FULL_DIR_INFO FILE_IO_PRIORITY_HINT_INFO* {.pure.} = object PriorityHint*: PRIORITY_HINT + PFILE_IO_PRIORITY_HINT_INFO* = ptr FILE_IO_PRIORITY_HINT_INFO FILE_ALIGNMENT_INFO* {.pure.} = object AlignmentRequirement*: ULONG + PFILE_ALIGNMENT_INFO* = ptr FILE_ALIGNMENT_INFO FILE_STORAGE_INFO* {.pure.} = object LogicalBytesPerSector*: ULONG @@ -727,10 +811,12 @@ Flags*: ULONG ByteOffsetForSectorAlignment*: ULONG ByteOffsetForPartitionAlignment*: ULONG + PFILE_STORAGE_INFO* = ptr FILE_STORAGE_INFO FILE_ID_INFO* {.pure.} = object VolumeSerialNumber*: ULONGLONG FileId*: FILE_ID_128 + PFILE_ID_INFO* = ptr FILE_ID_INFO FILE_ID_EXTD_DIR_INFO* {.pure.} = object NextEntryOffset*: ULONG @@ -747,20 +833,26 @@ ReparsePointTag*: ULONG FileId*: FILE_ID_128 FileName*: array[1, WCHAR] + PFILE_ID_EXTD_DIR_INFO* = ptr FILE_ID_EXTD_DIR_INFO FILE_REMOTE_PROTOCOL_INFO_GenericReserved* {.pure.} = object Reserved*: array[8, ULONG] + FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific_Smb2_Server* {.pure.} = object Capabilities*: ULONG + FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific_Smb2_Share* {.pure.} = object Capabilities*: ULONG CachingFlags*: ULONG + FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific_Smb2* {.pure.} = object Server*: FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific_Smb2_Server Share*: FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific_Smb2_Share + FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific* {.pure, union.} = object Smb2*: FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific_Smb2 Reserved*: array[16, ULONG] + FILE_REMOTE_PROTOCOL_INFO* {.pure.} = object StructureVersion*: USHORT StructureSize*: USHORT @@ -772,16 +864,20 @@ Flags*: ULONG GenericReserved*: FILE_REMOTE_PROTOCOL_INFO_GenericReserved ProtocolSpecific*: FILE_REMOTE_PROTOCOL_INFO_ProtocolSpecific + PFILE_REMOTE_PROTOCOL_INFO* = ptr FILE_REMOTE_PROTOCOL_INFO FILE_ID_DESCRIPTOR_UNION1* {.pure, union.} = object FileId*: LARGE_INTEGER ObjectId*: GUID ExtendedFileId*: FILE_ID_128 + FILE_ID_DESCRIPTOR* {.pure.} = object dwSize*: DWORD Type*: FILE_ID_TYPE union1*: FILE_ID_DESCRIPTOR_UNION1 + LPFILE_ID_DESCRIPTOR* = ptr FILE_ID_DESCRIPTOR + const findExInfoStandard* = 0 findExInfoBasic* = 1 @@ -958,9 +1054,9 @@ FILE_CURRENT* = 1 FILE_END* = 2 WAIT_FAILED* = DWORD 0xffffffff'i32 - WAIT_OBJECT_0* = (STATUS_WAIT_0)+0 - WAIT_ABANDONED* = (STATUS_ABANDONED_WAIT_0)+0 - WAIT_ABANDONED_0* = (STATUS_ABANDONED_WAIT_0)+0 + WAIT_OBJECT_0* = (STATUS_WAIT_0) + 0 + WAIT_ABANDONED* = (STATUS_ABANDONED_WAIT_0) + 0 + WAIT_ABANDONED_0* = (STATUS_ABANDONED_WAIT_0) + 0 WAIT_IO_COMPLETION* = STATUS_USER_APC FILE_FLAG_WRITE_THROUGH* = 0x80000000'i32 FILE_FLAG_OVERLAPPED* = 0x40000000 @@ -1141,10 +1237,10 @@ CREATE_IGNORE_SYSTEM_DEFAULT* = 0x80000000'i32 STACK_SIZE_PARAM_IS_A_RESERVATION* = 0x10000 THREAD_PRIORITY_LOWEST* = THREAD_BASE_PRIORITY_MIN - THREAD_PRIORITY_BELOW_NORMAL* = THREAD_PRIORITY_LOWEST+1 + THREAD_PRIORITY_BELOW_NORMAL* = THREAD_PRIORITY_LOWEST + 1 THREAD_PRIORITY_NORMAL* = 0 THREAD_PRIORITY_HIGHEST* = THREAD_BASE_PRIORITY_MAX - THREAD_PRIORITY_ABOVE_NORMAL* = THREAD_PRIORITY_HIGHEST-1 + THREAD_PRIORITY_ABOVE_NORMAL* = THREAD_PRIORITY_HIGHEST - 1 THREAD_PRIORITY_ERROR_RETURN* = MAXLONG THREAD_PRIORITY_TIME_CRITICAL* = THREAD_BASE_PRIORITY_LOWRT THREAD_PRIORITY_IDLE* = THREAD_BASE_PRIORITY_IDLE @@ -1409,24 +1505,42 @@ procThreadAttributeUmsThread* = 6 procThreadAttributeMitigationPolicy* = 7 procThreadAttributeSecurityCapabilities* = 9 -template ProcThreadAttributeValue*(Number, Thread, Input, Additive: untyped): untyped = (((Number) and PROC_THREAD_ATTRIBUTE_NUMBER) or (if (Thread != FALSE): PROC_THREAD_ATTRIBUTE_THREAD else: 0) or (if (Input != FALSE): PROC_THREAD_ATTRIBUTE_INPUT else: 0) or (if (Additive != FALSE): PROC_THREAD_ATTRIBUTE_ADDITIVE else: 0)) +template ProcThreadAttributeValue*(Number, Thread, Input, Additive: untyped): untyped = + ( + ((Number) and PROC_THREAD_ATTRIBUTE_NUMBER) or + (if (Thread != FALSE): PROC_THREAD_ATTRIBUTE_THREAD else: 0) or + (if (Input != FALSE): PROC_THREAD_ATTRIBUTE_INPUT else: 0) or + (if (Additive != FALSE): PROC_THREAD_ATTRIBUTE_ADDITIVE else: 0) + ) + const - PROC_THREAD_ATTRIBUTE_PARENT_PROCESS* = ProcThreadAttributeValue(procThreadAttributeParentProcess, FALSE, TRUE, FALSE) - PROC_THREAD_ATTRIBUTE_HANDLE_LIST* = ProcThreadAttributeValue(procThreadAttributeHandleList, FALSE, TRUE, FALSE) - PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY* = ProcThreadAttributeValue(procThreadAttributeGroupAffinity, TRUE, TRUE, FALSE) - PROC_THREAD_ATTRIBUTE_PREFERRED_NODE* = ProcThreadAttributeValue(procThreadAttributePreferredNode, FALSE, TRUE, FALSE) - PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR* = ProcThreadAttributeValue(procThreadAttributeIdealProcessor, TRUE, TRUE, FALSE) - PROC_THREAD_ATTRIBUTE_UMS_THREAD* = ProcThreadAttributeValue(procThreadAttributeUmsThread, TRUE, TRUE, FALSE) - PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY* = ProcThreadAttributeValue(procThreadAttributeMitigationPolicy, FALSE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_PARENT_PROCESS* = + ProcThreadAttributeValue(procThreadAttributeParentProcess, FALSE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_HANDLE_LIST* = + ProcThreadAttributeValue(procThreadAttributeHandleList, FALSE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY* = + ProcThreadAttributeValue(procThreadAttributeGroupAffinity, TRUE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_PREFERRED_NODE* = + ProcThreadAttributeValue(procThreadAttributePreferredNode, FALSE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR* = + ProcThreadAttributeValue(procThreadAttributeIdealProcessor, TRUE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_UMS_THREAD* = + ProcThreadAttributeValue(procThreadAttributeUmsThread, TRUE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY* = + ProcThreadAttributeValue(procThreadAttributeMitigationPolicy, FALSE, TRUE, FALSE) PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE* = 0x01 PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE* = 0x02 PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE* = 0x04 - PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES* = ProcThreadAttributeValue(procThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE) + PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES* = ProcThreadAttributeValue( + procThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE + ) PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK* = 0x00000003 shl 8 PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_DEFER* = 0x00000000 shl 8 PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON* = 0x00000001 shl 8 - PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_OFF* = 0x00000002 shl 8 - PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON_REQ_RELOCS* = 0x00000003 shl 8 + PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_OFF* = + 0x00000002 shl 8 + PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_ALWAYS_ON_REQ_RELOCS* = + 0x00000003 shl 8 PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_MASK* = 0x00000003 shl 12 PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_DEFER* = 0x00000000 shl 12 PROCESS_CREATION_MITIGATION_POLICY_HEAP_TERMINATE_ALWAYS_ON* = 0x00000001 shl 12 @@ -1445,18 +1559,27 @@ PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_MASK* = 0x00000003 shl 24 PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_DEFER* = 0x00000000 shl 24 PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_ON* = 0x00000001 shl 24 - PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_OFF* = 0x00000002 shl 24 + PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_ALWAYS_OFF* = + 0x00000002 shl 24 PROCESS_CREATION_MITIGATION_POLICY_STRICT_HANDLE_CHECKS_RESERVED* = 0x00000003 shl 24 - PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_MASK* = 0x00000003 shl 28 - PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_DEFER* = 0x00000000 shl 28 - PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_ON* = 0x00000001 shl 28 - PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_OFF* = 0x00000002 shl 28 - PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_RESERVED* = 0x00000003 shl 28 + PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_MASK* = + 0x00000003 shl 28 + PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_DEFER* = + 0x00000000 shl 28 + PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_ON* = + 0x00000001 shl 28 + PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_ALWAYS_OFF* = + 0x00000002 shl 28 + PROCESS_CREATION_MITIGATION_POLICY_WIN32K_SYSTEM_CALL_DISABLE_RESERVED* = + 0x00000003 shl 28 PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_MASK* = 0x00000003 shl 32 PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_DEFER* = 0x00000000 shl 32 - PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_ON* = 0x00000001 shl 32 - PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF* = 0x00000002 shl 32 - PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED* = 0x00000003 shl 32 + PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_ON* = + 0x00000001 shl 32 + PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF* = + 0x00000002 shl 32 + PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED* = + 0x00000003 shl 32 ATOM_FLAG_GLOBAL* = 0x2 GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A* = "GetSystemWow64DirectoryA" GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W* = "GetSystemWow64DirectoryA" @@ -1565,7 +1688,7 @@ RESTART_NO_PATCH* = 4 RESTART_NO_REBOOT* = 8 RECOVERY_DEFAULT_PING_INTERVAL* = 5000 - RECOVERY_MAX_PING_INTERVAL* = 5*60*1000 + RECOVERY_MAX_PING_INTERVAL* = 5 * 60 * 1000 ioPriorityHintVeryLow* = 0 ioPriorityHintLow* = 1 ioPriorityHintNormal* = 2 @@ -1595,25 +1718,68 @@ VALID_SYMBOLIC_LINK_FLAGS* = SYMBOLIC_LINK_FLAG_DIRECTORY INVALID_HANDLE_VALUE* = HANDLE(-1) type - LPOVERLAPPED_COMPLETION_ROUTINE* = proc (dwErrorCode: DWORD, dwNumberOfBytesTransfered: DWORD, lpOverlapped: LPOVERLAPPED): VOID {.stdcall.} - BEM_FREE_INTERFACE_CALLBACK* = proc (interfaceInstance: pointer): void {.stdcall.} - PRESTORE_LAST_ERROR* = proc (P1: DWORD): VOID {.stdcall.} - ENUMRESLANGPROCA* = proc (hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD, lParam: LONG_PTR): WINBOOL {.stdcall.} - ENUMRESLANGPROCW* = proc (hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD, lParam: LONG_PTR): WINBOOL {.stdcall.} - ENUMRESNAMEPROCA* = proc (hModule: HMODULE, lpType: LPCSTR, lpName: LPSTR, lParam: LONG_PTR): WINBOOL {.stdcall.} - ENUMRESNAMEPROCW* = proc (hModule: HMODULE, lpType: LPCWSTR, lpName: LPWSTR, lParam: LONG_PTR): WINBOOL {.stdcall.} - ENUMRESTYPEPROCA* = proc (hModule: HMODULE, lpType: LPSTR, lParam: LONG_PTR): WINBOOL {.stdcall.} - ENUMRESTYPEPROCW* = proc (hModule: HMODULE, lpType: LPWSTR, lParam: LONG_PTR): WINBOOL {.stdcall.} - PGET_MODULE_HANDLE_EXA* = proc (dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ptr HMODULE): WINBOOL {.stdcall.} - PGET_MODULE_HANDLE_EXW* = proc (dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ptr HMODULE): WINBOOL {.stdcall.} - PINIT_ONCE_FN* = proc (InitOnce: PINIT_ONCE, Parameter: PVOID, Context: ptr PVOID): WINBOOL {.stdcall.} - PTIMERAPCROUTINE* = proc (lpArgToCompletionRoutine: LPVOID, dwTimerLowValue: DWORD, dwTimerHighValue: DWORD): VOID {.stdcall.} - PTP_WIN32_IO_CALLBACK* = proc (Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Overlapped: PVOID, IoResult: ULONG, NumberOfBytesTransferred: ULONG_PTR, Io: PTP_IO): VOID {.stdcall.} - PFE_EXPORT_FUNC* = proc (pbData: PBYTE, pvCallbackContext: PVOID, ulLength: ULONG): DWORD {.stdcall.} - PFE_IMPORT_FUNC* = proc (pbData: PBYTE, pvCallbackContext: PVOID, ulLength: PULONG): DWORD {.stdcall.} - PGET_SYSTEM_WOW64_DIRECTORY_A* = proc (lpBuffer: LPSTR, uSize: UINT): UINT {.stdcall.} - PGET_SYSTEM_WOW64_DIRECTORY_W* = proc (lpBuffer: LPWSTR, uSize: UINT): UINT {.stdcall.} - LPPROGRESS_ROUTINE* = proc (TotalFileSize: LARGE_INTEGER, TotalBytesTransferred: LARGE_INTEGER, StreamSize: LARGE_INTEGER, StreamBytesTransferred: LARGE_INTEGER, dwStreamNumber: DWORD, dwCallbackReason: DWORD, hSourceFile: HANDLE, hDestinationFile: HANDLE, lpData: LPVOID): DWORD {.stdcall.} + LPOVERLAPPED_COMPLETION_ROUTINE* = proc( + dwErrorCode: DWORD, dwNumberOfBytesTransfered: DWORD, lpOverlapped: LPOVERLAPPED + ): VOID {.stdcall.} + BEM_FREE_INTERFACE_CALLBACK* = proc(interfaceInstance: pointer): void {.stdcall.} + PRESTORE_LAST_ERROR* = proc(P1: DWORD): VOID {.stdcall.} + ENUMRESLANGPROCA* = proc( + hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD, lParam: LONG_PTR + ): WINBOOL {.stdcall.} + ENUMRESLANGPROCW* = proc( + hModule: HMODULE, + lpType: LPCWSTR, + lpName: LPCWSTR, + wLanguage: WORD, + lParam: LONG_PTR, + ): WINBOOL {.stdcall.} + ENUMRESNAMEPROCA* = proc( + hModule: HMODULE, lpType: LPCSTR, lpName: LPSTR, lParam: LONG_PTR + ): WINBOOL {.stdcall.} + ENUMRESNAMEPROCW* = proc( + hModule: HMODULE, lpType: LPCWSTR, lpName: LPWSTR, lParam: LONG_PTR + ): WINBOOL {.stdcall.} + ENUMRESTYPEPROCA* = + proc(hModule: HMODULE, lpType: LPSTR, lParam: LONG_PTR): WINBOOL {.stdcall.} + ENUMRESTYPEPROCW* = + proc(hModule: HMODULE, lpType: LPWSTR, lParam: LONG_PTR): WINBOOL {.stdcall.} + PGET_MODULE_HANDLE_EXA* = proc( + dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ptr HMODULE + ): WINBOOL {.stdcall.} + PGET_MODULE_HANDLE_EXW* = proc( + dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ptr HMODULE + ): WINBOOL {.stdcall.} + PINIT_ONCE_FN* = proc( + InitOnce: PINIT_ONCE, Parameter: PVOID, Context: ptr PVOID + ): WINBOOL {.stdcall.} + PTIMERAPCROUTINE* = proc( + lpArgToCompletionRoutine: LPVOID, dwTimerLowValue: DWORD, dwTimerHighValue: DWORD + ): VOID {.stdcall.} + PTP_WIN32_IO_CALLBACK* = proc( + Instance: PTP_CALLBACK_INSTANCE, + Context: PVOID, + Overlapped: PVOID, + IoResult: ULONG, + NumberOfBytesTransferred: ULONG_PTR, + Io: PTP_IO, + ): VOID {.stdcall.} + PFE_EXPORT_FUNC* = + proc(pbData: PBYTE, pvCallbackContext: PVOID, ulLength: ULONG): DWORD {.stdcall.} + PFE_IMPORT_FUNC* = + proc(pbData: PBYTE, pvCallbackContext: PVOID, ulLength: PULONG): DWORD {.stdcall.} + PGET_SYSTEM_WOW64_DIRECTORY_A* = proc(lpBuffer: LPSTR, uSize: UINT): UINT {.stdcall.} + PGET_SYSTEM_WOW64_DIRECTORY_W* = proc(lpBuffer: LPWSTR, uSize: UINT): UINT {.stdcall.} + LPPROGRESS_ROUTINE* = proc( + TotalFileSize: LARGE_INTEGER, + TotalBytesTransferred: LARGE_INTEGER, + StreamSize: LARGE_INTEGER, + StreamBytesTransferred: LARGE_INTEGER, + dwStreamNumber: DWORD, + dwCallbackReason: DWORD, + hSourceFile: HANDLE, + hDestinationFile: HANDLE, + lpData: LPVOID, + ): DWORD {.stdcall.} COPYFILE2_MESSAGE_Info_ChunkStarted* {.pure.} = object dwStreamNumber*: DWORD dwReserved*: DWORD @@ -1623,6 +1789,7 @@ uliChunkSize*: ULARGE_INTEGER uliStreamSize*: ULARGE_INTEGER uliTotalFileSize*: ULARGE_INTEGER + COPYFILE2_MESSAGE_Info_ChunkFinished* {.pure.} = object dwStreamNumber*: DWORD dwFlags*: DWORD @@ -1634,6 +1801,7 @@ uliStreamBytesTransferred*: ULARGE_INTEGER uliTotalFileSize*: ULARGE_INTEGER uliTotalBytesTransferred*: ULARGE_INTEGER + COPYFILE2_MESSAGE_Info_StreamStarted* {.pure.} = object dwStreamNumber*: DWORD dwReserved*: DWORD @@ -1641,6 +1809,7 @@ hDestinationFile*: HANDLE uliStreamSize*: ULARGE_INTEGER uliTotalFileSize*: ULARGE_INTEGER + COPYFILE2_MESSAGE_Info_StreamFinished* {.pure.} = object dwStreamNumber*: DWORD dwReserved*: DWORD @@ -1650,8 +1819,10 @@ uliStreamBytesTransferred*: ULARGE_INTEGER uliTotalFileSize*: ULARGE_INTEGER uliTotalBytesTransferred*: ULARGE_INTEGER + COPYFILE2_MESSAGE_Info_PollContinue* {.pure.} = object dwReserved*: DWORD + COPYFILE2_MESSAGE_Info_Error* {.pure.} = object CopyPhase*: COPYFILE2_COPY_PHASE dwStreamNumber*: DWORD @@ -1662,6 +1833,7 @@ uliStreamBytesTransferred*: ULARGE_INTEGER uliTotalFileSize*: ULARGE_INTEGER uliTotalBytesTransferred*: ULARGE_INTEGER + COPYFILE2_MESSAGE_Info* {.pure, union.} = object ChunkStarted*: COPYFILE2_MESSAGE_Info_ChunkStarted ChunkFinished*: COPYFILE2_MESSAGE_Info_ChunkFinished @@ -1669,1187 +1841,5891 @@ StreamFinished*: COPYFILE2_MESSAGE_Info_StreamFinished PollContinue*: COPYFILE2_MESSAGE_Info_PollContinue Error*: COPYFILE2_MESSAGE_Info_Error + COPYFILE2_MESSAGE* {.pure.} = object Type*: COPYFILE2_MESSAGE_TYPE dwPadding*: DWORD Info*: COPYFILE2_MESSAGE_Info - PCOPYFILE2_PROGRESS_ROUTINE* = proc (pMessage: ptr COPYFILE2_MESSAGE, pvCallbackContext: PVOID): COPYFILE2_MESSAGE_ACTION {.stdcall.} - PQUERYACTCTXW_FUNC* = proc (dwFlags: DWORD, hActCtx: HANDLE, pvSubInstance: PVOID, ulInfoClass: ULONG, pvBuffer: PVOID, cbBuffer: SIZE_T, pcbWrittenOrRequired: ptr SIZE_T): WINBOOL {.stdcall.} - APPLICATION_RECOVERY_CALLBACK* = proc (pvParameter: PVOID): DWORD {.stdcall.} + + PCOPYFILE2_PROGRESS_ROUTINE* = proc( + pMessage: ptr COPYFILE2_MESSAGE, pvCallbackContext: PVOID + ): COPYFILE2_MESSAGE_ACTION {.stdcall.} + PQUERYACTCTXW_FUNC* = proc( + dwFlags: DWORD, + hActCtx: HANDLE, + pvSubInstance: PVOID, + ulInfoClass: ULONG, + pvBuffer: PVOID, + cbBuffer: SIZE_T, + pcbWrittenOrRequired: ptr SIZE_T, + ): WINBOOL {.stdcall.} + APPLICATION_RECOVERY_CALLBACK* = proc(pvParameter: PVOID): DWORD {.stdcall.} COPYFILE2_EXTENDED_PARAMETERS* {.pure.} = object dwSize*: DWORD dwCopyFlags*: DWORD pfCancel*: ptr WINBOOL pProgressRoutine*: PCOPYFILE2_PROGRESS_ROUTINE pvCallbackContext*: PVOID + proc IsDebuggerPresent*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OutputDebugStringA*(lpOutputString: LPCSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OutputDebugStringW*(lpOutputString: LPCWSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc OutputDebugStringA*( + lpOutputString: LPCSTR +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OutputDebugStringW*( + lpOutputString: LPCWSTR +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc DebugBreak*(): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ContinueDebugEvent*(dwProcessId: DWORD, dwThreadId: DWORD, dwContinueStatus: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForDebugEvent*(lpDebugEvent: LPDEBUG_EVENT, dwMilliseconds: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DebugActiveProcess*(dwProcessId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DebugActiveProcessStop*(dwProcessId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CheckRemoteDebuggerPresent*(hProcess: HANDLE, pbDebuggerPresent: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnhandledExceptionFilter*(ExceptionInfo: ptr EXCEPTION_POINTERS): LONG {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetUnhandledExceptionFilter*(lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER): LPTOP_LEVEL_EXCEPTION_FILTER {.winapi, stdcall, dynlib: "kernel32", importc.} +proc ContinueDebugEvent*( + dwProcessId: DWORD, dwThreadId: DWORD, dwContinueStatus: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForDebugEvent*( + lpDebugEvent: LPDEBUG_EVENT, dwMilliseconds: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DebugActiveProcess*( + dwProcessId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DebugActiveProcessStop*( + dwProcessId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CheckRemoteDebuggerPresent*( + hProcess: HANDLE, pbDebuggerPresent: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnhandledExceptionFilter*( + ExceptionInfo: ptr EXCEPTION_POINTERS +): LONG {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetUnhandledExceptionFilter*( + lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER +): LPTOP_LEVEL_EXCEPTION_FILTER {.winapi, stdcall, dynlib: "kernel32", importc.} + proc SetErrorMode*(uMode: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddVectoredExceptionHandler*(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveVectoredExceptionHandler*(Handle: PVOID): ULONG {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddVectoredContinueHandler*(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveVectoredContinueHandler*(Handle: PVOID): ULONG {.winapi, stdcall, dynlib: "kernel32", importc.} +proc AddVectoredExceptionHandler*( + First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveVectoredExceptionHandler*( + Handle: PVOID +): ULONG {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddVectoredContinueHandler*( + First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveVectoredContinueHandler*( + Handle: PVOID +): ULONG {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetErrorMode*(): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RestoreLastError*(dwErrCode: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RaiseException*(dwExceptionCode: DWORD, dwExceptionFlags: DWORD, nNumberOfArguments: DWORD, lpArguments: ptr ULONG_PTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc RestoreLastError*( + dwErrCode: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RaiseException*( + dwExceptionCode: DWORD, + dwExceptionFlags: DWORD, + nNumberOfArguments: DWORD, + lpArguments: ptr ULONG_PTR, +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetLastError*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetLastError*(dwErrCode: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlsAlloc*(lpCallback: PFLS_CALLBACK_FUNCTION): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlsGetValue*(dwFlsIndex: DWORD): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlsSetValue*(dwFlsIndex: DWORD, lpFlsData: PVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlsFree*(dwFlsIndex: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetLastError*( + dwErrCode: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlsAlloc*( + lpCallback: PFLS_CALLBACK_FUNCTION +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlsGetValue*( + dwFlsIndex: DWORD +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlsSetValue*( + dwFlsIndex: DWORD, lpFlsData: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlsFree*( + dwFlsIndex: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc IsThreadAFiber*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CompareFileTime*(lpFileTime1: ptr FILETIME, lpFileTime2: ptr FILETIME): LONG {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileA*(lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileW*(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DefineDosDeviceW*(dwFlags: DWORD, lpDeviceName: LPCWSTR, lpTargetPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteVolumeMountPointW*(lpszVolumeMountPoint: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FileTimeToLocalFileTime*(lpFileTime: ptr FILETIME, lpLocalFileTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindCloseChangeNotification*(hChangeHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstChangeNotificationA*(lpPathName: LPCSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstChangeNotificationW*(lpPathName: LPCWSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileA*(lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileW*(lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstVolumeW*(lpszVolumeName: LPWSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextChangeNotification*(hChangeHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextVolumeW*(hFindVolume: HANDLE, lpszVolumeName: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindVolumeClose*(hFindVolume: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDiskFreeSpaceA*(lpRootPathName: LPCSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD, lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDiskFreeSpaceW*(lpRootPathName: LPCWSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD, lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDriveTypeA*(lpRootPathName: LPCSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDriveTypeW*(lpRootPathName: LPCWSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileAttributesA*(lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileAttributesW*(lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileInformationByHandle*(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileSize*(hFile: HANDLE, lpFileSizeHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileSizeEx*(hFile: HANDLE, lpFileSize: PLARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileTime*(hFile: HANDLE, lpCreationTime: LPFILETIME, lpLastAccessTime: LPFILETIME, lpLastWriteTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc CompareFileTime*( + lpFileTime1: ptr FILETIME, lpFileTime2: ptr FILETIME +): LONG {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileA*( + lpFileName: LPCSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileW*( + lpFileName: LPCWSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DefineDosDeviceW*( + dwFlags: DWORD, lpDeviceName: LPCWSTR, lpTargetPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteVolumeMountPointW*( + lpszVolumeMountPoint: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FileTimeToLocalFileTime*( + lpFileTime: ptr FILETIME, lpLocalFileTime: LPFILETIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindCloseChangeNotification*( + hChangeHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstChangeNotificationA*( + lpPathName: LPCSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstChangeNotificationW*( + lpPathName: LPCWSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileA*( + lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileW*( + lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstVolumeW*( + lpszVolumeName: LPWSTR, cchBufferLength: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextChangeNotification*( + hChangeHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextVolumeW*( + hFindVolume: HANDLE, lpszVolumeName: LPWSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindVolumeClose*( + hFindVolume: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDiskFreeSpaceA*( + lpRootPathName: LPCSTR, + lpSectorsPerCluster: LPDWORD, + lpBytesPerSector: LPDWORD, + lpNumberOfFreeClusters: LPDWORD, + lpTotalNumberOfClusters: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDiskFreeSpaceW*( + lpRootPathName: LPCWSTR, + lpSectorsPerCluster: LPDWORD, + lpBytesPerSector: LPDWORD, + lpNumberOfFreeClusters: LPDWORD, + lpTotalNumberOfClusters: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDriveTypeA*( + lpRootPathName: LPCSTR +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDriveTypeW*( + lpRootPathName: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileAttributesA*( + lpFileName: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileAttributesW*( + lpFileName: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileInformationByHandle*( + hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileSize*( + hFile: HANDLE, lpFileSizeHigh: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileSizeEx*( + hFile: HANDLE, lpFileSize: PLARGE_INTEGER +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileTime*( + hFile: HANDLE, + lpCreationTime: LPFILETIME, + lpLastAccessTime: LPFILETIME, + lpLastWriteTime: LPFILETIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetFileType*(hFile: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFullPathNameA*(lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFullPathNameW*(lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetFullPathNameA*( + lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFullPathNameW*( + lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetLogicalDrives*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLogicalDriveStringsW*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLongPathNameA*(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLongPathNameW*(lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetShortPathNameW*(lpszLongPath: LPCWSTR, lpszShortPath: LPWSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTempFileNameW*(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: LPWSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumeInformationW*(lpRootPathName: LPCWSTR, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumePathNameW*(lpszFileName: LPCWSTR, lpszVolumePathName: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalFileTimeToFileTime*(lpLocalFileTime: ptr FILETIME, lpFileTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LockFile*(hFile: HANDLE, dwFileOffsetLow: DWORD, dwFileOffsetHigh: DWORD, nNumberOfBytesToLockLow: DWORD, nNumberOfBytesToLockHigh: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryDosDeviceW*(lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadFileEx*(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadFileScatter*(hFile: HANDLE, aSegmentArray: ptr FILE_SEGMENT_ELEMENT, nNumberOfBytesToRead: DWORD, lpReserved: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFilePointer*(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: PLONG, dwMoveMethod: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileTime*(hFile: HANDLE, lpCreationTime: ptr FILETIME, lpLastAccessTime: ptr FILETIME, lpLastWriteTime: ptr FILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileValidData*(hFile: HANDLE, ValidDataLength: LONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnlockFile*(hFile: HANDLE, dwFileOffsetLow: DWORD, dwFileOffsetHigh: DWORD, nNumberOfBytesToUnlockLow: DWORD, nNumberOfBytesToUnlockHigh: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteFileEx*(hFile: HANDLE, lpBuffer: LPCVOID, nNumberOfBytesToWrite: DWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteFileGather*(hFile: HANDLE, aSegmentArray: ptr FILE_SEGMENT_ELEMENT, nNumberOfBytesToWrite: DWORD, lpReserved: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumeNameForVolumeMountPointW*(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumePathNamesForVolumeNameW*(lpszVolumeName: LPCWSTR, lpszVolumePathNames: LPWCH, cchBufferLength: DWORD, lpcchReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFinalPathNameByHandleA*(hFile: HANDLE, lpszFilePath: LPSTR, cchFilePath: DWORD, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFinalPathNameByHandleW*(hFile: HANDLE, lpszFilePath: LPWSTR, cchFilePath: DWORD, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumeInformationByHandleW*(hFile: HANDLE, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateDirectoryA*(lpPathName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateDirectoryW*(lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteFileA*(lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteFileW*(lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindClose*(hFindFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileExA*(lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileExW*(lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextFileA*(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextFileW*(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlushFileBuffers*(hFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDiskFreeSpaceExA*(lpDirectoryName: LPCSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER, lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDiskFreeSpaceExW*(lpDirectoryName: LPCWSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER, lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileAttributesExA*(lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileAttributesExW*(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTempPathW*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LockFileEx*(hFile: HANDLE, dwFlags: DWORD, dwReserved: DWORD, nNumberOfBytesToLockLow: DWORD, nNumberOfBytesToLockHigh: DWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadFile*(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveDirectoryA*(lpPathName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveDirectoryW*(lpPathName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetEndOfFile*(hFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileAttributesA*(lpFileName: LPCSTR, dwFileAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileAttributesW*(lpFileName: LPCWSTR, dwFileAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFilePointerEx*(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER, lpNewFilePointer: PLARGE_INTEGER, dwMoveMethod: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnlockFileEx*(hFile: HANDLE, dwReserved: DWORD, nNumberOfBytesToUnlockLow: DWORD, nNumberOfBytesToUnlockHigh: DWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteFile*(hFile: HANDLE, lpBuffer: LPCVOID, nNumberOfBytesToWrite: DWORD, lpNumberOfBytesWritten: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileInformationByHandle*(hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFile2*(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, dwCreationDisposition: DWORD, pCreateExParams: LPCREATEFILE2_EXTENDED_PARAMETERS): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseHandle*(hObject: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DuplicateHandle*(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: LPHANDLE, dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, dwOptions: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetHandleInformation*(hObject: HANDLE, lpdwFlags: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetHandleInformation*(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapCreate*(flOptions: DWORD, dwInitialSize: SIZE_T, dwMaximumSize: SIZE_T): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapDestroy*(hHeap: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapValidate*(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapCompact*(hHeap: HANDLE, dwFlags: DWORD): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapSummary*(hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessHeaps*(NumberOfHeaps: DWORD, ProcessHeaps: PHANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetLogicalDriveStringsW*( + nBufferLength: DWORD, lpBuffer: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLongPathNameA*( + lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLongPathNameW*( + lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetShortPathNameW*( + lpszLongPath: LPCWSTR, lpszShortPath: LPWSTR, cchBuffer: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTempFileNameW*( + lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: LPWSTR +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumeInformationW*( + lpRootPathName: LPCWSTR, + lpVolumeNameBuffer: LPWSTR, + nVolumeNameSize: DWORD, + lpVolumeSerialNumber: LPDWORD, + lpMaximumComponentLength: LPDWORD, + lpFileSystemFlags: LPDWORD, + lpFileSystemNameBuffer: LPWSTR, + nFileSystemNameSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumePathNameW*( + lpszFileName: LPCWSTR, lpszVolumePathName: LPWSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LocalFileTimeToFileTime*( + lpLocalFileTime: ptr FILETIME, lpFileTime: LPFILETIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LockFile*( + hFile: HANDLE, + dwFileOffsetLow: DWORD, + dwFileOffsetHigh: DWORD, + nNumberOfBytesToLockLow: DWORD, + nNumberOfBytesToLockHigh: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryDosDeviceW*( + lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadFileEx*( + hFile: HANDLE, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadFileScatter*( + hFile: HANDLE, + aSegmentArray: ptr FILE_SEGMENT_ELEMENT, + nNumberOfBytesToRead: DWORD, + lpReserved: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFilePointer*( + hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: PLONG, dwMoveMethod: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileTime*( + hFile: HANDLE, + lpCreationTime: ptr FILETIME, + lpLastAccessTime: ptr FILETIME, + lpLastWriteTime: ptr FILETIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileValidData*( + hFile: HANDLE, ValidDataLength: LONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnlockFile*( + hFile: HANDLE, + dwFileOffsetLow: DWORD, + dwFileOffsetHigh: DWORD, + nNumberOfBytesToUnlockLow: DWORD, + nNumberOfBytesToUnlockHigh: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteFileEx*( + hFile: HANDLE, + lpBuffer: LPCVOID, + nNumberOfBytesToWrite: DWORD, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteFileGather*( + hFile: HANDLE, + aSegmentArray: ptr FILE_SEGMENT_ELEMENT, + nNumberOfBytesToWrite: DWORD, + lpReserved: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumeNameForVolumeMountPointW*( + lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPWSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumePathNamesForVolumeNameW*( + lpszVolumeName: LPCWSTR, + lpszVolumePathNames: LPWCH, + cchBufferLength: DWORD, + lpcchReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFinalPathNameByHandleA*( + hFile: HANDLE, lpszFilePath: LPSTR, cchFilePath: DWORD, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFinalPathNameByHandleW*( + hFile: HANDLE, lpszFilePath: LPWSTR, cchFilePath: DWORD, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumeInformationByHandleW*( + hFile: HANDLE, + lpVolumeNameBuffer: LPWSTR, + nVolumeNameSize: DWORD, + lpVolumeSerialNumber: LPDWORD, + lpMaximumComponentLength: LPDWORD, + lpFileSystemFlags: LPDWORD, + lpFileSystemNameBuffer: LPWSTR, + nFileSystemNameSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateDirectoryA*( + lpPathName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateDirectoryW*( + lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteFileA*( + lpFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteFileW*( + lpFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindClose*( + hFindFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileExA*( + lpFileName: LPCSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileExW*( + lpFileName: LPCWSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextFileA*( + hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextFileW*( + hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlushFileBuffers*( + hFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDiskFreeSpaceExA*( + lpDirectoryName: LPCSTR, + lpFreeBytesAvailableToCaller: PULARGE_INTEGER, + lpTotalNumberOfBytes: PULARGE_INTEGER, + lpTotalNumberOfFreeBytes: PULARGE_INTEGER, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDiskFreeSpaceExW*( + lpDirectoryName: LPCWSTR, + lpFreeBytesAvailableToCaller: PULARGE_INTEGER, + lpTotalNumberOfBytes: PULARGE_INTEGER, + lpTotalNumberOfFreeBytes: PULARGE_INTEGER, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileAttributesExA*( + lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileAttributesExW*( + lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTempPathW*( + nBufferLength: DWORD, lpBuffer: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LockFileEx*( + hFile: HANDLE, + dwFlags: DWORD, + dwReserved: DWORD, + nNumberOfBytesToLockLow: DWORD, + nNumberOfBytesToLockHigh: DWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadFile*( + hFile: HANDLE, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + lpNumberOfBytesRead: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveDirectoryA*( + lpPathName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveDirectoryW*( + lpPathName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetEndOfFile*( + hFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileAttributesA*( + lpFileName: LPCSTR, dwFileAttributes: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileAttributesW*( + lpFileName: LPCWSTR, dwFileAttributes: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFilePointerEx*( + hFile: HANDLE, + liDistanceToMove: LARGE_INTEGER, + lpNewFilePointer: PLARGE_INTEGER, + dwMoveMethod: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnlockFileEx*( + hFile: HANDLE, + dwReserved: DWORD, + nNumberOfBytesToUnlockLow: DWORD, + nNumberOfBytesToUnlockHigh: DWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteFile*( + hFile: HANDLE, + lpBuffer: LPCVOID, + nNumberOfBytesToWrite: DWORD, + lpNumberOfBytesWritten: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileInformationByHandle*( + hFile: HANDLE, + FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, + lpFileInformation: LPVOID, + dwBufferSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFile2*( + lpFileName: LPCWSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + dwCreationDisposition: DWORD, + pCreateExParams: LPCREATEFILE2_EXTENDED_PARAMETERS, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseHandle*( + hObject: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DuplicateHandle*( + hSourceProcessHandle: HANDLE, + hSourceHandle: HANDLE, + hTargetProcessHandle: HANDLE, + lpTargetHandle: LPHANDLE, + dwDesiredAccess: DWORD, + bInheritHandle: WINBOOL, + dwOptions: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetHandleInformation*( + hObject: HANDLE, lpdwFlags: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetHandleInformation*( + hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapCreate*( + flOptions: DWORD, dwInitialSize: SIZE_T, dwMaximumSize: SIZE_T +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapDestroy*( + hHeap: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapValidate*( + hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapCompact*( + hHeap: HANDLE, dwFlags: DWORD +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapSummary*( + hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessHeaps*( + NumberOfHeaps: DWORD, ProcessHeaps: PHANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + proc HeapLock*(hHeap: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapUnlock*(hHeap: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapWalk*(hHeap: HANDLE, lpEntry: LPPROCESS_HEAP_ENTRY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapSetInformation*(HeapHandle: HANDLE, HeapInformationClass: HEAP_INFORMATION_CLASS, HeapInformation: PVOID, HeapInformationLength: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapQueryInformation*(HeapHandle: HANDLE, HeapInformationClass: HEAP_INFORMATION_CLASS, HeapInformation: PVOID, HeapInformationLength: SIZE_T, ReturnLength: PSIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapAlloc*(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapReAlloc*(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapFree*(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc HeapSize*(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} +proc HeapUnlock*( + hHeap: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapWalk*( + hHeap: HANDLE, lpEntry: LPPROCESS_HEAP_ENTRY +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapSetInformation*( + HeapHandle: HANDLE, + HeapInformationClass: HEAP_INFORMATION_CLASS, + HeapInformation: PVOID, + HeapInformationLength: SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapQueryInformation*( + HeapHandle: HANDLE, + HeapInformationClass: HEAP_INFORMATION_CLASS, + HeapInformation: PVOID, + HeapInformationLength: SIZE_T, + ReturnLength: PSIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapAlloc*( + hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapReAlloc*( + hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapFree*( + hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc HeapSize*( + hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetProcessHeap*(): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetOverlappedResult*(hFile: HANDLE, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, bWait: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateIoCompletionPort*(FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: ULONG_PTR, NumberOfConcurrentThreads: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetQueuedCompletionStatus*(CompletionPort: HANDLE, lpNumberOfBytesTransferred: LPDWORD, lpCompletionKey: PULONG_PTR, lpOverlapped: ptr LPOVERLAPPED, dwMilliseconds: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PostQueuedCompletionStatus*(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: ULONG_PTR, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeviceIoControl*(hDevice: HANDLE, dwIoControlCode: DWORD, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetOverlappedResult*( + hFile: HANDLE, + lpOverlapped: LPOVERLAPPED, + lpNumberOfBytesTransferred: LPDWORD, + bWait: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateIoCompletionPort*( + FileHandle: HANDLE, + ExistingCompletionPort: HANDLE, + CompletionKey: ULONG_PTR, + NumberOfConcurrentThreads: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetQueuedCompletionStatus*( + CompletionPort: HANDLE, + lpNumberOfBytesTransferred: LPDWORD, + lpCompletionKey: PULONG_PTR, + lpOverlapped: ptr LPOVERLAPPED, + dwMilliseconds: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PostQueuedCompletionStatus*( + CompletionPort: HANDLE, + dwNumberOfBytesTransferred: DWORD, + dwCompletionKey: ULONG_PTR, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeviceIoControl*( + hDevice: HANDLE, + dwIoControlCode: DWORD, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesReturned: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc CancelIo*(hFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetQueuedCompletionStatusEx*(CompletionPort: HANDLE, lpCompletionPortEntries: LPOVERLAPPED_ENTRY, ulCount: ULONG, ulNumEntriesRemoved: PULONG, dwMilliseconds: DWORD, fAlertable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CancelIoEx*(hFile: HANDLE, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CancelSynchronousIo*(hThread: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetOverlappedResultEx*(hFile: HANDLE, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, dwMilliseconds: DWORD, bAlertable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeSListHead*(ListHead: PSLIST_HEADER): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InterlockedPopEntrySList*(ListHead: PSLIST_HEADER): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InterlockedPushEntrySList*(ListHead: PSLIST_HEADER, ListEntry: PSLIST_ENTRY): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InterlockedFlushSList*(ListHead: PSLIST_HEADER): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryDepthSList*(ListHead: PSLIST_HEADER): USHORT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InterlockedPushListSListEx*(ListHead: PSLIST_HEADER, List: PSLIST_ENTRY, ListEnd: PSLIST_ENTRY, Count: ULONG): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsProcessInJob*(ProcessHandle: HANDLE, JobHandle: HANDLE, Result: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindResourceExW*(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeLibraryAndExitThread*(hLibModule: HMODULE, dwExitCode: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeResource*(hResData: HGLOBAL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetModuleFileNameA*(hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetModuleFileNameW*(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetModuleHandleA*(lpModuleName: LPCSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetModuleHandleW*(lpModuleName: LPCWSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadLibraryExA*(lpLibFileName: LPCSTR, hFile: HANDLE, dwFlags: DWORD): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadLibraryExW*(lpLibFileName: LPCWSTR, hFile: HANDLE, dwFlags: DWORD): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadResource*(hModule: HMODULE, hResInfo: HRSRC): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadStringA*(hInstance: HINSTANCE, uID: UINT, lpBuffer: LPSTR, cchBufferMax: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadStringW*(hInstance: HINSTANCE, uID: UINT, lpBuffer: LPWSTR, cchBufferMax: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc LockResource*(hResData: HGLOBAL): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SizeofResource*(hModule: HMODULE, hResInfo: HRSRC): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddDllDirectory*(NewDirectory: PCWSTR): DLL_DIRECTORY_COOKIE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveDllDirectory*(Cookie: DLL_DIRECTORY_COOKIE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetDefaultDllDirectories*(DirectoryFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetModuleHandleExA*(dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ptr HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetModuleHandleExW*(dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ptr HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceLanguagesA*(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, lpEnumFunc: ENUMRESLANGPROCA, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceLanguagesW*(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceLanguagesExA*(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, lpEnumFunc: ENUMRESLANGPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceLanguagesExW*(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceNamesExA*(hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceNamesExW*(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceTypesExA*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceTypesExW*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DisableThreadLibraryCalls*(hLibModule: HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeLibrary*(hLibModule: HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcAddress*(hModule: HMODULE, lpProcName: LPCSTR): FARPROC {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindStringOrdinal*(dwFindStringOrdinalFlags: DWORD, lpStringSource: LPCWSTR, cchSource: int32, lpStringValue: LPCWSTR, cchValue: int32, bIgnoreCase: WINBOOL): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualQuery*(lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlushViewOfFile*(lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnmapViewOfFile*(lpBaseAddress: LPCVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileMappingFromApp*(hFile: HANDLE, SecurityAttributes: PSECURITY_ATTRIBUTES, PageProtection: ULONG, MaximumSize: ULONG64, Name: PCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MapViewOfFileFromApp*(hFileMappingObject: HANDLE, DesiredAccess: ULONG, FileOffset: ULONG64, NumberOfBytesToMap: SIZE_T): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualAlloc*(lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualFree*(lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualProtect*(lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualAllocEx*(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualFreeEx*(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualProtectEx*(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualQueryEx*(hProcess: HANDLE, lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadProcessMemory*(hProcess: HANDLE, lpBaseAddress: LPCVOID, lpBuffer: LPVOID, nSize: SIZE_T, lpNumberOfBytesRead: ptr SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteProcessMemory*(hProcess: HANDLE, lpBaseAddress: LPVOID, lpBuffer: LPCVOID, nSize: SIZE_T, lpNumberOfBytesWritten: ptr SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileMappingW*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenFileMappingW*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MapViewOfFile*(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MapViewOfFileEx*(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T, lpBaseAddress: LPVOID): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetQueuedCompletionStatusEx*( + CompletionPort: HANDLE, + lpCompletionPortEntries: LPOVERLAPPED_ENTRY, + ulCount: ULONG, + ulNumEntriesRemoved: PULONG, + dwMilliseconds: DWORD, + fAlertable: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CancelIoEx*( + hFile: HANDLE, lpOverlapped: LPOVERLAPPED +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CancelSynchronousIo*( + hThread: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetOverlappedResultEx*( + hFile: HANDLE, + lpOverlapped: LPOVERLAPPED, + lpNumberOfBytesTransferred: LPDWORD, + dwMilliseconds: DWORD, + bAlertable: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeSListHead*( + ListHead: PSLIST_HEADER +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InterlockedPopEntrySList*( + ListHead: PSLIST_HEADER +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InterlockedPushEntrySList*( + ListHead: PSLIST_HEADER, ListEntry: PSLIST_ENTRY +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InterlockedFlushSList*( + ListHead: PSLIST_HEADER +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryDepthSList*( + ListHead: PSLIST_HEADER +): USHORT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InterlockedPushListSListEx*( + ListHead: PSLIST_HEADER, List: PSLIST_ENTRY, ListEnd: PSLIST_ENTRY, Count: ULONG +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsProcessInJob*( + ProcessHandle: HANDLE, JobHandle: HANDLE, Result: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindResourceExW*( + hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD +): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeLibraryAndExitThread*( + hLibModule: HMODULE, dwExitCode: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeResource*( + hResData: HGLOBAL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetModuleFileNameA*( + hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetModuleFileNameW*( + hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetModuleHandleA*( + lpModuleName: LPCSTR +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetModuleHandleW*( + lpModuleName: LPCWSTR +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadLibraryExA*( + lpLibFileName: LPCSTR, hFile: HANDLE, dwFlags: DWORD +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadLibraryExW*( + lpLibFileName: LPCWSTR, hFile: HANDLE, dwFlags: DWORD +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadResource*( + hModule: HMODULE, hResInfo: HRSRC +): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadStringA*( + hInstance: HINSTANCE, uID: UINT, lpBuffer: LPSTR, cchBufferMax: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadStringW*( + hInstance: HINSTANCE, uID: UINT, lpBuffer: LPWSTR, cchBufferMax: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc LockResource*( + hResData: HGLOBAL +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SizeofResource*( + hModule: HMODULE, hResInfo: HRSRC +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddDllDirectory*( + NewDirectory: PCWSTR +): DLL_DIRECTORY_COOKIE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveDllDirectory*( + Cookie: DLL_DIRECTORY_COOKIE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetDefaultDllDirectories*( + DirectoryFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetModuleHandleExA*( + dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ptr HMODULE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetModuleHandleExW*( + dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ptr HMODULE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceLanguagesA*( + hModule: HMODULE, + lpType: LPCSTR, + lpName: LPCSTR, + lpEnumFunc: ENUMRESLANGPROCA, + lParam: LONG_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceLanguagesW*( + hModule: HMODULE, + lpType: LPCWSTR, + lpName: LPCWSTR, + lpEnumFunc: ENUMRESLANGPROCW, + lParam: LONG_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceLanguagesExA*( + hModule: HMODULE, + lpType: LPCSTR, + lpName: LPCSTR, + lpEnumFunc: ENUMRESLANGPROCA, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceLanguagesExW*( + hModule: HMODULE, + lpType: LPCWSTR, + lpName: LPCWSTR, + lpEnumFunc: ENUMRESLANGPROCW, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceNamesExA*( + hModule: HMODULE, + lpType: LPCSTR, + lpEnumFunc: ENUMRESNAMEPROCA, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceNamesExW*( + hModule: HMODULE, + lpType: LPCWSTR, + lpEnumFunc: ENUMRESNAMEPROCW, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceTypesExA*( + hModule: HMODULE, + lpEnumFunc: ENUMRESTYPEPROCA, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceTypesExW*( + hModule: HMODULE, + lpEnumFunc: ENUMRESTYPEPROCW, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DisableThreadLibraryCalls*( + hLibModule: HMODULE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeLibrary*( + hLibModule: HMODULE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcAddress*( + hModule: HMODULE, lpProcName: LPCSTR +): FARPROC {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindStringOrdinal*( + dwFindStringOrdinalFlags: DWORD, + lpStringSource: LPCWSTR, + cchSource: int32, + lpStringValue: LPCWSTR, + cchValue: int32, + bIgnoreCase: WINBOOL, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualQuery*( + lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlushViewOfFile*( + lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnmapViewOfFile*( + lpBaseAddress: LPCVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileMappingFromApp*( + hFile: HANDLE, + SecurityAttributes: PSECURITY_ATTRIBUTES, + PageProtection: ULONG, + MaximumSize: ULONG64, + Name: PCWSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MapViewOfFileFromApp*( + hFileMappingObject: HANDLE, + DesiredAccess: ULONG, + FileOffset: ULONG64, + NumberOfBytesToMap: SIZE_T, +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualAlloc*( + lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualFree*( + lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualProtect*( + lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualAllocEx*( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualFreeEx*( + hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualProtectEx*( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + flNewProtect: DWORD, + lpflOldProtect: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualQueryEx*( + hProcess: HANDLE, + lpAddress: LPCVOID, + lpBuffer: PMEMORY_BASIC_INFORMATION, + dwLength: SIZE_T, +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadProcessMemory*( + hProcess: HANDLE, + lpBaseAddress: LPCVOID, + lpBuffer: LPVOID, + nSize: SIZE_T, + lpNumberOfBytesRead: ptr SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteProcessMemory*( + hProcess: HANDLE, + lpBaseAddress: LPVOID, + lpBuffer: LPCVOID, + nSize: SIZE_T, + lpNumberOfBytesWritten: ptr SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileMappingW*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCWSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenFileMappingW*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MapViewOfFile*( + hFileMappingObject: HANDLE, + dwDesiredAccess: DWORD, + dwFileOffsetHigh: DWORD, + dwFileOffsetLow: DWORD, + dwNumberOfBytesToMap: SIZE_T, +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MapViewOfFileEx*( + hFileMappingObject: HANDLE, + dwDesiredAccess: DWORD, + dwFileOffsetHigh: DWORD, + dwFileOffsetLow: DWORD, + dwNumberOfBytesToMap: SIZE_T, + lpBaseAddress: LPVOID, +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetLargePageMinimum*(): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessWorkingSetSizeEx*(hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T, Flags: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessWorkingSetSizeEx*(hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualLock*(lpAddress: LPVOID, dwSize: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualUnlock*(lpAddress: LPVOID, dwSize: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetWriteWatch*(dwFlags: DWORD, lpBaseAddress: PVOID, dwRegionSize: SIZE_T, lpAddresses: ptr PVOID, lpdwCount: ptr ULONG_PTR, lpdwGranularity: LPDWORD): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ResetWriteWatch*(lpBaseAddress: LPVOID, dwRegionSize: SIZE_T): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMemoryResourceNotification*(NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryMemoryResourceNotification*(ResourceNotificationHandle: HANDLE, ResourceState: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemFileCacheSize*(lpMinimumFileCacheSize: PSIZE_T, lpMaximumFileCacheSize: PSIZE_T, lpFlags: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetSystemFileCacheSize*(MinimumFileCacheSize: SIZE_T, MaximumFileCacheSize: SIZE_T, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileMappingNumaW*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR, nndPreferred: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PrefetchVirtualMemory*(hProcess: HANDLE, NumberOfEntries: ULONG_PTR, VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnmapViewOfFileEx*(BaseAddress: PVOID, UnmapFlags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DiscardVirtualMemory*(VirtualAddress: PVOID, Size: SIZE_T): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OfferVirtualMemory*(VirtualAddress: PVOID, Size: SIZE_T, Priority: OFFER_PRIORITY): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReclaimVirtualMemory*(VirtualAddress: PVOID, Size: SIZE_T): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ImpersonateNamedPipeClient*(hNamedPipe: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreatePipe*(hReadPipe: PHANDLE, hWritePipe: PHANDLE, lpPipeAttributes: LPSECURITY_ATTRIBUTES, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ConnectNamedPipe*(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DisconnectNamedPipe*(hNamedPipe: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetNamedPipeHandleState*(hNamedPipe: HANDLE, lpMode: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PeekNamedPipe*(hNamedPipe: HANDLE, lpBuffer: LPVOID, nBufferSize: DWORD, lpBytesRead: LPDWORD, lpTotalBytesAvail: LPDWORD, lpBytesLeftThisMessage: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TransactNamedPipe*(hNamedPipe: HANDLE, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateNamedPipeW*(lpName: LPCWSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitNamedPipeW*(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeClientComputerNameW*(Pipe: HANDLE, ClientComputerName: LPWSTR, ClientComputerNameLength: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreatePrivateNamespaceW*(lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenPrivateNamespaceW*(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ClosePrivateNamespace*(Handle: HANDLE, Flags: ULONG): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateBoundaryDescriptorW*(Name: LPCWSTR, Flags: ULONG): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddSIDToBoundaryDescriptor*(BoundaryDescriptor: ptr HANDLE, RequiredSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteBoundaryDescriptor*(BoundaryDescriptor: HANDLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetEnvironmentStringsA*(): LPCH {.winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentStrings".} +proc GetProcessWorkingSetSizeEx*( + hProcess: HANDLE, + lpMinimumWorkingSetSize: PSIZE_T, + lpMaximumWorkingSetSize: PSIZE_T, + Flags: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessWorkingSetSizeEx*( + hProcess: HANDLE, + dwMinimumWorkingSetSize: SIZE_T, + dwMaximumWorkingSetSize: SIZE_T, + Flags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualLock*( + lpAddress: LPVOID, dwSize: SIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualUnlock*( + lpAddress: LPVOID, dwSize: SIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetWriteWatch*( + dwFlags: DWORD, + lpBaseAddress: PVOID, + dwRegionSize: SIZE_T, + lpAddresses: ptr PVOID, + lpdwCount: ptr ULONG_PTR, + lpdwGranularity: LPDWORD, +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ResetWriteWatch*( + lpBaseAddress: LPVOID, dwRegionSize: SIZE_T +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMemoryResourceNotification*( + NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryMemoryResourceNotification*( + ResourceNotificationHandle: HANDLE, ResourceState: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemFileCacheSize*( + lpMinimumFileCacheSize: PSIZE_T, lpMaximumFileCacheSize: PSIZE_T, lpFlags: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetSystemFileCacheSize*( + MinimumFileCacheSize: SIZE_T, MaximumFileCacheSize: SIZE_T, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileMappingNumaW*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCWSTR, + nndPreferred: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PrefetchVirtualMemory*( + hProcess: HANDLE, + NumberOfEntries: ULONG_PTR, + VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, + Flags: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnmapViewOfFileEx*( + BaseAddress: PVOID, UnmapFlags: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DiscardVirtualMemory*( + VirtualAddress: PVOID, Size: SIZE_T +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OfferVirtualMemory*( + VirtualAddress: PVOID, Size: SIZE_T, Priority: OFFER_PRIORITY +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReclaimVirtualMemory*( + VirtualAddress: PVOID, Size: SIZE_T +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ImpersonateNamedPipeClient*( + hNamedPipe: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreatePipe*( + hReadPipe: PHANDLE, + hWritePipe: PHANDLE, + lpPipeAttributes: LPSECURITY_ATTRIBUTES, + nSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ConnectNamedPipe*( + hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DisconnectNamedPipe*( + hNamedPipe: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetNamedPipeHandleState*( + hNamedPipe: HANDLE, + lpMode: LPDWORD, + lpMaxCollectionCount: LPDWORD, + lpCollectDataTimeout: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PeekNamedPipe*( + hNamedPipe: HANDLE, + lpBuffer: LPVOID, + nBufferSize: DWORD, + lpBytesRead: LPDWORD, + lpTotalBytesAvail: LPDWORD, + lpBytesLeftThisMessage: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TransactNamedPipe*( + hNamedPipe: HANDLE, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesRead: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateNamedPipeW*( + lpName: LPCWSTR, + dwOpenMode: DWORD, + dwPipeMode: DWORD, + nMaxInstances: DWORD, + nOutBufferSize: DWORD, + nInBufferSize: DWORD, + nDefaultTimeOut: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitNamedPipeW*( + lpNamedPipeName: LPCWSTR, nTimeOut: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeClientComputerNameW*( + Pipe: HANDLE, ClientComputerName: LPWSTR, ClientComputerNameLength: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreatePrivateNamespaceW*( + lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, + lpBoundaryDescriptor: LPVOID, + lpAliasPrefix: LPCWSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenPrivateNamespaceW*( + lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ClosePrivateNamespace*( + Handle: HANDLE, Flags: ULONG +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateBoundaryDescriptorW*( + Name: LPCWSTR, Flags: ULONG +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddSIDToBoundaryDescriptor*( + BoundaryDescriptor: ptr HANDLE, RequiredSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteBoundaryDescriptor*( + BoundaryDescriptor: HANDLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetEnvironmentStringsA*(): LPCH {. + winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentStrings" +.} + proc GetEnvironmentStringsW*(): LPWCH {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetEnvironmentStringsW*(NewEnvironment: LPWCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeEnvironmentStringsA*(penv: LPCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeEnvironmentStringsW*(penv: LPWCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStdHandle*(nStdHandle: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetStdHandle*(nStdHandle: DWORD, hHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetStdHandleEx*(nStdHandle: DWORD, hHandle: HANDLE, phPrevValue: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetEnvironmentStringsW*( + NewEnvironment: LPWCH +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeEnvironmentStringsA*( + penv: LPCH +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeEnvironmentStringsW*( + penv: LPWCH +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStdHandle*( + nStdHandle: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetStdHandle*( + nStdHandle: DWORD, hHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetStdHandleEx*( + nStdHandle: DWORD, hHandle: HANDLE, phPrevValue: PHANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetCommandLineA*(): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetCommandLineW*(): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetEnvironmentVariableA*(lpName: LPCSTR, lpBuffer: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetEnvironmentVariableW*(lpName: LPCWSTR, lpBuffer: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetEnvironmentVariableA*(lpName: LPCSTR, lpValue: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetEnvironmentVariableW*(lpName: LPCWSTR, lpValue: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ExpandEnvironmentStringsA*(lpSrc: LPCSTR, lpDst: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ExpandEnvironmentStringsW*(lpSrc: LPCWSTR, lpDst: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCurrentDirectoryA*(lpPathName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCurrentDirectoryW*(lpPathName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentDirectoryA*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentDirectoryW*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SearchPathW*(lpPath: LPCWSTR, lpFileName: LPCWSTR, lpExtension: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SearchPathA*(lpPath: LPCSTR, lpFileName: LPCSTR, lpExtension: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc NeedCurrentDirectoryForExePathA*(ExeName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc NeedCurrentDirectoryForExePathW*(ExeName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueueUserAPC*(pfnAPC: PAPCFUNC, hThread: HANDLE, dwData: ULONG_PTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessTimes*(hProcess: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ExitProcess*(uExitCode: UINT): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TerminateProcess*(hProcess: HANDLE, uExitCode: UINT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetExitCodeProcess*(hProcess: HANDLE, lpExitCode: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetEnvironmentVariableA*( + lpName: LPCSTR, lpBuffer: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetEnvironmentVariableW*( + lpName: LPCWSTR, lpBuffer: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetEnvironmentVariableA*( + lpName: LPCSTR, lpValue: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetEnvironmentVariableW*( + lpName: LPCWSTR, lpValue: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ExpandEnvironmentStringsA*( + lpSrc: LPCSTR, lpDst: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ExpandEnvironmentStringsW*( + lpSrc: LPCWSTR, lpDst: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCurrentDirectoryA*( + lpPathName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCurrentDirectoryW*( + lpPathName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentDirectoryA*( + nBufferLength: DWORD, lpBuffer: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentDirectoryW*( + nBufferLength: DWORD, lpBuffer: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SearchPathW*( + lpPath: LPCWSTR, + lpFileName: LPCWSTR, + lpExtension: LPCWSTR, + nBufferLength: DWORD, + lpBuffer: LPWSTR, + lpFilePart: ptr LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SearchPathA*( + lpPath: LPCSTR, + lpFileName: LPCSTR, + lpExtension: LPCSTR, + nBufferLength: DWORD, + lpBuffer: LPSTR, + lpFilePart: ptr LPSTR, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc NeedCurrentDirectoryForExePathA*( + ExeName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc NeedCurrentDirectoryForExePathW*( + ExeName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueueUserAPC*( + pfnAPC: PAPCFUNC, hThread: HANDLE, dwData: ULONG_PTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessTimes*( + hProcess: HANDLE, + lpCreationTime: LPFILETIME, + lpExitTime: LPFILETIME, + lpKernelTime: LPFILETIME, + lpUserTime: LPFILETIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ExitProcess*( + uExitCode: UINT +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TerminateProcess*( + hProcess: HANDLE, uExitCode: UINT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetExitCodeProcess*( + hProcess: HANDLE, lpExitCode: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc SwitchToThread*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateRemoteThread*(hProcess: HANDLE, lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: LPTHREAD_START_ROUTINE, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenThread*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, dwThreadId: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadPriorityBoost*(hThread: HANDLE, bDisablePriorityBoost: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadPriorityBoost*(hThread: HANDLE, pDisablePriorityBoost: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TerminateThread*(hThread: HANDLE, dwExitCode: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessShutdownParameters*(dwLevel: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessVersion*(ProcessId: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStartupInfoW*(lpStartupInfo: LPSTARTUPINFOW): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadToken*(Thread: PHANDLE, Token: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenProcessToken*(ProcessHandle: HANDLE, DesiredAccess: DWORD, TokenHandle: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenThreadToken*(ThreadHandle: HANDLE, DesiredAccess: DWORD, OpenAsSelf: WINBOOL, TokenHandle: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetPriorityClass*(hProcess: HANDLE, dwPriorityClass: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadStackGuarantee*(StackSizeInBytes: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPriorityClass*(hProcess: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ProcessIdToSessionId*(dwProcessId: DWORD, pSessionId: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessId*(Process: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadId*(Thread: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc 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 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadContext*(hThread: HANDLE, lpContext: LPCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadContext*(hThread: HANDLE, lpContext: ptr CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlushInstructionCache*(hProcess: HANDLE, lpBaseAddress: LPCVOID, dwSize: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadTimes*(hThread: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenProcess*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, dwProcessId: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessHandleCount*(hProcess: HANDLE, pdwHandleCount: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentProcessorNumber*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateProcessA*(lpApplicationName: LPCSTR, lpCommandLine: LPSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCSTR, lpStartupInfo: LPSTARTUPINFOA, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateProcessW*(lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateProcessAsUserW*(hToken: HANDLE, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetProcessIdOfThread*(Thread: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeProcThreadAttributeList*(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, dwAttributeCount: DWORD, dwFlags: DWORD, lpSize: PSIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteProcThreadAttributeList*(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessAffinityUpdateMode*(hProcess: HANDLE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryProcessAffinityUpdateMode*(hProcess: HANDLE, lpdwFlags: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UpdateProcThreadAttribute*(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, dwFlags: DWORD, Attribute: DWORD_PTR, lpValue: PVOID, cbSize: SIZE_T, lpPreviousValue: PVOID, lpReturnSize: PSIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadIdealProcessorEx*(hThread: HANDLE, lpIdealProcessor: PPROCESSOR_NUMBER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentProcessorNumberEx*(ProcNumber: PPROCESSOR_NUMBER): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentThreadStackLimits*(LowLimit: PULONG_PTR, HighLimit: PULONG_PTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessMitigationPolicy*(MitigationPolicy: PROCESS_MITIGATION_POLICY, lpBuffer: PVOID, dwLength: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessMitigationPolicy*(hProcess: HANDLE, MitigationPolicy: PROCESS_MITIGATION_POLICY, lpBuffer: PVOID, dwLength: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc CreateRemoteThread*( + hProcess: HANDLE, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + dwStackSize: SIZE_T, + lpStartAddress: LPTHREAD_START_ROUTINE, + lpParameter: LPVOID, + dwCreationFlags: DWORD, + lpThreadId: LPDWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenThread*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, dwThreadId: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadPriorityBoost*( + hThread: HANDLE, bDisablePriorityBoost: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadPriorityBoost*( + hThread: HANDLE, pDisablePriorityBoost: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TerminateThread*( + hThread: HANDLE, dwExitCode: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessShutdownParameters*( + dwLevel: DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessVersion*( + ProcessId: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStartupInfoW*( + lpStartupInfo: LPSTARTUPINFOW +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadToken*( + Thread: PHANDLE, Token: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenProcessToken*( + ProcessHandle: HANDLE, DesiredAccess: DWORD, TokenHandle: PHANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenThreadToken*( + ThreadHandle: HANDLE, DesiredAccess: DWORD, OpenAsSelf: WINBOOL, TokenHandle: PHANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetPriorityClass*( + hProcess: HANDLE, dwPriorityClass: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadStackGuarantee*( + StackSizeInBytes: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPriorityClass*( + hProcess: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ProcessIdToSessionId*( + dwProcessId: DWORD, pSessionId: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessId*( + Process: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadId*( + Thread: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc 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 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadContext*( + hThread: HANDLE, lpContext: LPCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadContext*( + hThread: HANDLE, lpContext: ptr CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlushInstructionCache*( + hProcess: HANDLE, lpBaseAddress: LPCVOID, dwSize: SIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadTimes*( + hThread: HANDLE, + lpCreationTime: LPFILETIME, + lpExitTime: LPFILETIME, + lpKernelTime: LPFILETIME, + lpUserTime: LPFILETIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenProcess*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, dwProcessId: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessHandleCount*( + hProcess: HANDLE, pdwHandleCount: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentProcessorNumber*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc CreateProcessA*( + lpApplicationName: LPCSTR, + lpCommandLine: LPSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCSTR, + lpStartupInfo: LPSTARTUPINFOA, + lpProcessInformation: LPPROCESS_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateProcessW*( + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFOW, + lpProcessInformation: LPPROCESS_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateProcessAsUserW*( + hToken: HANDLE, + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFOW, + lpProcessInformation: LPPROCESS_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetProcessIdOfThread*( + Thread: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeProcThreadAttributeList*( + lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, + dwAttributeCount: DWORD, + dwFlags: DWORD, + lpSize: PSIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteProcThreadAttributeList*( + lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessAffinityUpdateMode*( + hProcess: HANDLE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryProcessAffinityUpdateMode*( + hProcess: HANDLE, lpdwFlags: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UpdateProcThreadAttribute*( + lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, + dwFlags: DWORD, + Attribute: DWORD_PTR, + lpValue: PVOID, + cbSize: SIZE_T, + lpPreviousValue: PVOID, + lpReturnSize: PSIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadIdealProcessorEx*( + hThread: HANDLE, lpIdealProcessor: PPROCESSOR_NUMBER +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentProcessorNumberEx*( + ProcNumber: PPROCESSOR_NUMBER +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentThreadStackLimits*( + LowLimit: PULONG_PTR, HighLimit: PULONG_PTR +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessMitigationPolicy*( + MitigationPolicy: PROCESS_MITIGATION_POLICY, lpBuffer: PVOID, dwLength: SIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessMitigationPolicy*( + hProcess: HANDLE, + MitigationPolicy: PROCESS_MITIGATION_POLICY, + lpBuffer: PVOID, + dwLength: SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetCurrentProcess*(): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetCurrentProcessId*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetCurrentThread*(): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetCurrentThreadId*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsProcessorFeaturePresent*(ProcessorFeature: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc IsProcessorFeaturePresent*( + ProcessorFeature: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc FlushProcessWriteBuffers*(): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThread*(lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: LPTHREAD_START_ROUTINE, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadPriority*(hThread: HANDLE, nPriority: int32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadPriority*(hThread: HANDLE): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ExitThread*(dwExitCode: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetExitCodeThread*(hThread: HANDLE, lpExitCode: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SuspendThread*(hThread: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ResumeThread*(hThread: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} +proc CreateThread*( + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + dwStackSize: SIZE_T, + lpStartAddress: LPTHREAD_START_ROUTINE, + lpParameter: LPVOID, + dwCreationFlags: DWORD, + lpThreadId: LPDWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadPriority*( + hThread: HANDLE, nPriority: int32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadPriority*( + hThread: HANDLE +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ExitThread*( + dwExitCode: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetExitCodeThread*( + hThread: HANDLE, lpExitCode: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SuspendThread*( + hThread: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ResumeThread*( + hThread: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + proc TlsAlloc*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TlsGetValue*(dwTlsIndex: DWORD): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TlsSetValue*(dwTlsIndex: DWORD, lpTlsValue: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TlsFree*(dwTlsIndex: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadIdealProcessorEx*(hThread: HANDLE, lpIdealProcessor: PPROCESSOR_NUMBER, lpPreviousIdealProcessor: PPROCESSOR_NUMBER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessGroupAffinity*(hProcess: HANDLE, GroupCount: PUSHORT, GroupArray: PUSHORT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadGroupAffinity*(hThread: HANDLE, GroupAffinity: PGROUP_AFFINITY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadGroupAffinity*(hThread: HANDLE, GroupAffinity: ptr GROUP_AFFINITY, PreviousGroupAffinity: PGROUP_AFFINITY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryPerformanceCounter*(lpPerformanceCount: ptr LARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryPerformanceFrequency*(lpFrequency: ptr LARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryThreadCycleTime*(ThreadHandle: HANDLE, CycleTime: PULONG64): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryProcessCycleTime*(ProcessHandle: HANDLE, CycleTime: PULONG64): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryIdleProcessorCycleTime*(BufferLength: PULONG, ProcessorIdleCycleTime: PULONG64): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryIdleProcessorCycleTimeEx*(Group: USHORT, BufferLength: PULONG, ProcessorIdleCycleTime: PULONG64): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryUnbiasedInterruptTime*(UnbiasedTime: PULONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetAppContainerNamedObjectPath*(Token: HANDLE, AppContainerSid: PSID, ObjectPathLength: ULONG, ObjectPath: LPWSTR, ReturnLength: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AccessCheck*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccess: LPDWORD, AccessStatus: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AccessCheckAndAuditAlarmW*(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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: WINBOOL, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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: WINBOOL, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAccessAllowedAce*(pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAccessAllowedAceEx*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAccessAllowedObjectAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: ptr GUID, InheritedObjectTypeGuid: ptr GUID, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAccessDeniedAce*(pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAccessDeniedAceEx*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAccessDeniedObjectAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: ptr GUID, InheritedObjectTypeGuid: ptr GUID, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAce*(pAcl: PACL, dwAceRevision: DWORD, dwStartingAceIndex: DWORD, pAceList: LPVOID, nAceListLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAuditAccessAce*(pAcl: PACL, dwAceRevision: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: WINBOOL, bAuditFailure: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAuditAccessAceEx*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: WINBOOL, bAuditFailure: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddAuditAccessObjectAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: ptr GUID, InheritedObjectTypeGuid: ptr GUID, pSid: PSID, bAuditSuccess: WINBOOL, bAuditFailure: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddMandatoryAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, MandatoryPolicy: DWORD, pLabelSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddResourceAttributeAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, pReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddScopedPolicyIDAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AdjustTokenGroups*(TokenHandle: HANDLE, ResetToDefault: WINBOOL, NewState: PTOKEN_GROUPS, BufferLength: DWORD, PreviousState: PTOKEN_GROUPS, ReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AdjustTokenPrivileges*(TokenHandle: HANDLE, DisableAllPrivileges: WINBOOL, NewState: PTOKEN_PRIVILEGES, BufferLength: DWORD, PreviousState: PTOKEN_PRIVILEGES, ReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AllocateAndInitializeSid*(pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE, nSubAuthority0: DWORD, nSubAuthority1: DWORD, nSubAuthority2: DWORD, nSubAuthority3: DWORD, nSubAuthority4: DWORD, nSubAuthority5: DWORD, nSubAuthority6: DWORD, nSubAuthority7: DWORD, pSid: ptr PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AllocateLocallyUniqueId*(Luid: PLUID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AreAllAccessesGranted*(GrantedAccess: DWORD, DesiredAccess: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AreAnyAccessesGranted*(GrantedAccess: DWORD, DesiredAccess: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CheckTokenMembership*(TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CheckTokenCapability*(TokenHandle: HANDLE, CapabilitySidToCheck: PSID, HasCapability: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetAppContainerAce*(Acl: PACL, StartingAceIndex: DWORD, AppContainerAce: ptr PVOID, AppContainerAceIndex: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CheckTokenMembershipEx*(TokenHandle: HANDLE, SidToCheck: PSID, Flags: DWORD, IsMember: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ConvertToAutoInheritPrivateObjectSecurity*(ParentDescriptor: PSECURITY_DESCRIPTOR, CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, ObjectType: ptr GUID, IsDirectoryObject: BOOLEAN, GenericMapping: PGENERIC_MAPPING): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CopySid*(nDestinationSidLength: DWORD, pDestinationSid: PSID, pSourceSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreatePrivateObjectSecurity*(ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: ptr PSECURITY_DESCRIPTOR, IsDirectoryObject: WINBOOL, Token: HANDLE, GenericMapping: PGENERIC_MAPPING): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreatePrivateObjectSecurityEx*(ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: ptr PSECURITY_DESCRIPTOR, ObjectType: ptr GUID, IsContainerObject: WINBOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreatePrivateObjectSecurityWithMultipleInheritance*(ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: ptr PSECURITY_DESCRIPTOR, ObjectTypes: ptr ptr GUID, GuidCount: ULONG, IsContainerObject: WINBOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreateWellKnownSid*(WellKnownSidType: WELL_KNOWN_SID_TYPE, DomainSid: PSID, pSid: PSID, cbSid: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EqualDomainSid*(pSid1: PSID, pSid2: PSID, pfEqual: ptr WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DeleteAce*(pAcl: PACL, dwAceIndex: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DestroyPrivateObjectSecurity*(ObjectDescriptor: ptr PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DuplicateToken*(ExistingTokenHandle: HANDLE, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, DuplicateTokenHandle: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DuplicateTokenEx*(hExistingToken: HANDLE, dwDesiredAccess: DWORD, lpTokenAttributes: LPSECURITY_ATTRIBUTES, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, TokenType: TOKEN_TYPE, phNewToken: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EqualPrefixSid*(pSid1: PSID, pSid2: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EqualSid*(pSid1: PSID, pSid2: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc FindFirstFreeAce*(pAcl: PACL, pAce: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} +proc TlsGetValue*( + dwTlsIndex: DWORD +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TlsSetValue*( + dwTlsIndex: DWORD, lpTlsValue: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TlsFree*( + dwTlsIndex: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadIdealProcessorEx*( + hThread: HANDLE, + lpIdealProcessor: PPROCESSOR_NUMBER, + lpPreviousIdealProcessor: PPROCESSOR_NUMBER, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessGroupAffinity*( + hProcess: HANDLE, GroupCount: PUSHORT, GroupArray: PUSHORT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadGroupAffinity*( + hThread: HANDLE, GroupAffinity: PGROUP_AFFINITY +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadGroupAffinity*( + hThread: HANDLE, + GroupAffinity: ptr GROUP_AFFINITY, + PreviousGroupAffinity: PGROUP_AFFINITY, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryPerformanceCounter*( + lpPerformanceCount: ptr LARGE_INTEGER +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryPerformanceFrequency*( + lpFrequency: ptr LARGE_INTEGER +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryThreadCycleTime*( + ThreadHandle: HANDLE, CycleTime: PULONG64 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryProcessCycleTime*( + ProcessHandle: HANDLE, CycleTime: PULONG64 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryIdleProcessorCycleTime*( + BufferLength: PULONG, ProcessorIdleCycleTime: PULONG64 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryIdleProcessorCycleTimeEx*( + Group: USHORT, BufferLength: PULONG, ProcessorIdleCycleTime: PULONG64 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryUnbiasedInterruptTime*( + UnbiasedTime: PULONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetAppContainerNamedObjectPath*( + Token: HANDLE, + AppContainerSid: PSID, + ObjectPathLength: ULONG, + ObjectPath: LPWSTR, + ReturnLength: PULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AccessCheck*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ClientToken: HANDLE, + DesiredAccess: DWORD, + GenericMapping: PGENERIC_MAPPING, + PrivilegeSet: PPRIVILEGE_SET, + PrivilegeSetLength: LPDWORD, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AccessCheckAndAuditAlarmW*( + SubsystemName: LPCWSTR, + HandleId: LPVOID, + ObjectTypeName: LPWSTR, + ObjectName: LPWSTR, + SecurityDescriptor: PSECURITY_DESCRIPTOR, + DesiredAccess: DWORD, + GenericMapping: PGENERIC_MAPPING, + ObjectCreation: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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: WINBOOL, + GrantedAccessList: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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: WINBOOL, + GrantedAccessList: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAccessAllowedAce*( + pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAccessAllowedAceEx*( + pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAccessAllowedObjectAce*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + AccessMask: DWORD, + ObjectTypeGuid: ptr GUID, + InheritedObjectTypeGuid: ptr GUID, + pSid: PSID, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAccessDeniedAce*( + pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAccessDeniedAceEx*( + pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAccessDeniedObjectAce*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + AccessMask: DWORD, + ObjectTypeGuid: ptr GUID, + InheritedObjectTypeGuid: ptr GUID, + pSid: PSID, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAce*( + pAcl: PACL, + dwAceRevision: DWORD, + dwStartingAceIndex: DWORD, + pAceList: LPVOID, + nAceListLength: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAuditAccessAce*( + pAcl: PACL, + dwAceRevision: DWORD, + dwAccessMask: DWORD, + pSid: PSID, + bAuditSuccess: WINBOOL, + bAuditFailure: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAuditAccessAceEx*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + dwAccessMask: DWORD, + pSid: PSID, + bAuditSuccess: WINBOOL, + bAuditFailure: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddAuditAccessObjectAce*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + AccessMask: DWORD, + ObjectTypeGuid: ptr GUID, + InheritedObjectTypeGuid: ptr GUID, + pSid: PSID, + bAuditSuccess: WINBOOL, + bAuditFailure: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddMandatoryAce*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + MandatoryPolicy: DWORD, + pLabelSid: PSID, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddResourceAttributeAce*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + AccessMask: DWORD, + pSid: PSID, + pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, + pReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddScopedPolicyIDAce*( + pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AdjustTokenGroups*( + TokenHandle: HANDLE, + ResetToDefault: WINBOOL, + NewState: PTOKEN_GROUPS, + BufferLength: DWORD, + PreviousState: PTOKEN_GROUPS, + ReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AdjustTokenPrivileges*( + TokenHandle: HANDLE, + DisableAllPrivileges: WINBOOL, + NewState: PTOKEN_PRIVILEGES, + BufferLength: DWORD, + PreviousState: PTOKEN_PRIVILEGES, + ReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AllocateAndInitializeSid*( + pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, + nSubAuthorityCount: BYTE, + nSubAuthority0: DWORD, + nSubAuthority1: DWORD, + nSubAuthority2: DWORD, + nSubAuthority3: DWORD, + nSubAuthority4: DWORD, + nSubAuthority5: DWORD, + nSubAuthority6: DWORD, + nSubAuthority7: DWORD, + pSid: ptr PSID, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AllocateLocallyUniqueId*( + Luid: PLUID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AreAllAccessesGranted*( + GrantedAccess: DWORD, DesiredAccess: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AreAnyAccessesGranted*( + GrantedAccess: DWORD, DesiredAccess: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CheckTokenMembership*( + TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CheckTokenCapability*( + TokenHandle: HANDLE, CapabilitySidToCheck: PSID, HasCapability: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetAppContainerAce*( + Acl: PACL, + StartingAceIndex: DWORD, + AppContainerAce: ptr PVOID, + AppContainerAceIndex: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CheckTokenMembershipEx*( + TokenHandle: HANDLE, SidToCheck: PSID, Flags: DWORD, IsMember: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ConvertToAutoInheritPrivateObjectSecurity*( + ParentDescriptor: PSECURITY_DESCRIPTOR, + CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, + NewSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + ObjectType: ptr GUID, + IsDirectoryObject: BOOLEAN, + GenericMapping: PGENERIC_MAPPING, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CopySid*( + nDestinationSidLength: DWORD, pDestinationSid: PSID, pSourceSid: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreatePrivateObjectSecurity*( + ParentDescriptor: PSECURITY_DESCRIPTOR, + CreatorDescriptor: PSECURITY_DESCRIPTOR, + NewDescriptor: ptr PSECURITY_DESCRIPTOR, + IsDirectoryObject: WINBOOL, + Token: HANDLE, + GenericMapping: PGENERIC_MAPPING, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreatePrivateObjectSecurityEx*( + ParentDescriptor: PSECURITY_DESCRIPTOR, + CreatorDescriptor: PSECURITY_DESCRIPTOR, + NewDescriptor: ptr PSECURITY_DESCRIPTOR, + ObjectType: ptr GUID, + IsContainerObject: WINBOOL, + AutoInheritFlags: ULONG, + Token: HANDLE, + GenericMapping: PGENERIC_MAPPING, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreatePrivateObjectSecurityWithMultipleInheritance*( + ParentDescriptor: PSECURITY_DESCRIPTOR, + CreatorDescriptor: PSECURITY_DESCRIPTOR, + NewDescriptor: ptr PSECURITY_DESCRIPTOR, + ObjectTypes: ptr ptr GUID, + GuidCount: ULONG, + IsContainerObject: WINBOOL, + AutoInheritFlags: ULONG, + Token: HANDLE, + GenericMapping: PGENERIC_MAPPING, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreateWellKnownSid*( + WellKnownSidType: WELL_KNOWN_SID_TYPE, DomainSid: PSID, pSid: PSID, cbSid: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EqualDomainSid*( + pSid1: PSID, pSid2: PSID, pfEqual: ptr WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DeleteAce*( + pAcl: PACL, dwAceIndex: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DestroyPrivateObjectSecurity*( + ObjectDescriptor: ptr PSECURITY_DESCRIPTOR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DuplicateToken*( + ExistingTokenHandle: HANDLE, + ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, + DuplicateTokenHandle: PHANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DuplicateTokenEx*( + hExistingToken: HANDLE, + dwDesiredAccess: DWORD, + lpTokenAttributes: LPSECURITY_ATTRIBUTES, + ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, + TokenType: TOKEN_TYPE, + phNewToken: PHANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EqualPrefixSid*( + pSid1: PSID, pSid2: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EqualSid*( + pSid1: PSID, pSid2: PSID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc FindFirstFreeAce*( + pAcl: PACL, pAce: ptr LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + proc FreeSid*(pSid: PSID): PVOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetAce*(pAcl: PACL, dwAceIndex: DWORD, pAce: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetAclInformation*(pAcl: PACL, pAclInformation: LPVOID, nAclInformationLength: DWORD, dwAclInformationClass: ACL_INFORMATION_CLASS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetFileSecurityW*(lpFileName: LPCWSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetKernelObjectSecurity*(Handle: HANDLE, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} +proc GetAce*( + pAcl: PACL, dwAceIndex: DWORD, pAce: ptr LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetAclInformation*( + pAcl: PACL, + pAclInformation: LPVOID, + nAclInformationLength: DWORD, + dwAclInformationClass: ACL_INFORMATION_CLASS, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetFileSecurityW*( + lpFileName: LPCWSTR, + RequestedInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + nLength: DWORD, + lpnLengthNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetKernelObjectSecurity*( + Handle: HANDLE, + RequestedInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + nLength: DWORD, + lpnLengthNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + proc GetLengthSid*(pSid: PSID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetPrivateObjectSecurity*(ObjectDescriptor: PSECURITY_DESCRIPTOR, SecurityInformation: SECURITY_INFORMATION, ResultantDescriptor: PSECURITY_DESCRIPTOR, DescriptorLength: DWORD, ReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorControl*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pControl: PSECURITY_DESCRIPTOR_CONTROL, lpdwRevision: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorDacl*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbDaclPresent: LPBOOL, pDacl: ptr PACL, lpbDaclDefaulted: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorGroup*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: ptr PSID, lpbGroupDefaulted: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorLength*(pSecurityDescriptor: PSECURITY_DESCRIPTOR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorOwner*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: ptr PSID, lpbOwnerDefaulted: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorRMControl*(SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSecurityDescriptorSacl*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbSaclPresent: LPBOOL, pSacl: ptr PACL, lpbSaclDefaulted: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSidIdentifierAuthority*(pSid: PSID): PSID_IDENTIFIER_AUTHORITY {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSidLengthRequired*(nSubAuthorityCount: UCHAR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSidSubAuthority*(pSid: PSID, nSubAuthority: DWORD): PDWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetSidSubAuthorityCount*(pSid: PSID): PUCHAR {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetTokenInformation*(TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD, ReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetWindowsAccountDomainSid*(pSid: PSID, pDomainSid: PSID, cbDomainSid: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ImpersonateAnonymousToken*(ThreadHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ImpersonateLoggedOnUser*(hToken: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ImpersonateSelf*(ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitializeAcl*(pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitializeSecurityDescriptor*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, dwRevision: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitializeSid*(Sid: PSID, pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc IsTokenRestricted*(TokenHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} +proc GetPrivateObjectSecurity*( + ObjectDescriptor: PSECURITY_DESCRIPTOR, + SecurityInformation: SECURITY_INFORMATION, + ResultantDescriptor: PSECURITY_DESCRIPTOR, + DescriptorLength: DWORD, + ReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorControl*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + pControl: PSECURITY_DESCRIPTOR_CONTROL, + lpdwRevision: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorDacl*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + lpbDaclPresent: LPBOOL, + pDacl: ptr PACL, + lpbDaclDefaulted: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorGroup*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: ptr PSID, lpbGroupDefaulted: LPBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorLength*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorOwner*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: ptr PSID, lpbOwnerDefaulted: LPBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorRMControl*( + SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSecurityDescriptorSacl*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + lpbSaclPresent: LPBOOL, + pSacl: ptr PACL, + lpbSaclDefaulted: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSidIdentifierAuthority*( + pSid: PSID +): PSID_IDENTIFIER_AUTHORITY {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSidLengthRequired*( + nSubAuthorityCount: UCHAR +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSidSubAuthority*( + pSid: PSID, nSubAuthority: DWORD +): PDWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetSidSubAuthorityCount*( + pSid: PSID +): PUCHAR {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetTokenInformation*( + TokenHandle: HANDLE, + TokenInformationClass: TOKEN_INFORMATION_CLASS, + TokenInformation: LPVOID, + TokenInformationLength: DWORD, + ReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetWindowsAccountDomainSid*( + pSid: PSID, pDomainSid: PSID, cbDomainSid: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ImpersonateAnonymousToken*( + ThreadHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ImpersonateLoggedOnUser*( + hToken: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ImpersonateSelf*( + ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitializeAcl*( + pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitializeSecurityDescriptor*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, dwRevision: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitializeSid*( + Sid: PSID, pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc IsTokenRestricted*( + TokenHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + proc IsValidAcl*(pAcl: PACL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc IsValidSecurityDescriptor*(pSecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} +proc IsValidSecurityDescriptor*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + proc IsValidSid*(pSid: PSID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc IsWellKnownSid*(pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc MakeSelfRelativeSD*(pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR, pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc MapGenericMask*(AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectCloseAuditAlarmW*(SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectDeleteAuditAlarmW*(SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectOpenAuditAlarmW*(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: WINBOOL, AccessGranted: WINBOOL, GenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectPrivilegeAuditAlarmW*(SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc PrivilegeCheck*(ClientToken: HANDLE, RequiredPrivileges: PPRIVILEGE_SET, pfResult: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc PrivilegedServiceAuditAlarmW*(SubsystemName: LPCWSTR, ServiceName: LPCWSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QuerySecurityAccessMask*(SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} +proc IsWellKnownSid*( + pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc MakeSelfRelativeSD*( + pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR, + pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR, + lpdwBufferLength: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc MapGenericMask*( + AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectCloseAuditAlarmW*( + SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectDeleteAuditAlarmW*( + SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectOpenAuditAlarmW*( + SubsystemName: LPCWSTR, + HandleId: LPVOID, + ObjectTypeName: LPWSTR, + ObjectName: LPWSTR, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ClientToken: HANDLE, + DesiredAccess: DWORD, + GrantedAccess: DWORD, + Privileges: PPRIVILEGE_SET, + ObjectCreation: WINBOOL, + AccessGranted: WINBOOL, + GenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectPrivilegeAuditAlarmW*( + SubsystemName: LPCWSTR, + HandleId: LPVOID, + ClientToken: HANDLE, + DesiredAccess: DWORD, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc PrivilegeCheck*( + ClientToken: HANDLE, RequiredPrivileges: PPRIVILEGE_SET, pfResult: LPBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc PrivilegedServiceAuditAlarmW*( + SubsystemName: LPCWSTR, + ServiceName: LPCWSTR, + ClientToken: HANDLE, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QuerySecurityAccessMask*( + SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + proc RevertToSelf*(): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetAclInformation*(pAcl: PACL, pAclInformation: LPVOID, nAclInformationLength: DWORD, dwAclInformationClass: ACL_INFORMATION_CLASS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetFileSecurityW*(lpFileName: LPCWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetKernelObjectSecurity*(Handle: HANDLE, SecurityInformation: SECURITY_INFORMATION, SecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetPrivateObjectSecurity*(SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, GenericMapping: PGENERIC_MAPPING, Token: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetPrivateObjectSecurityEx*(SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, AutoInheritFlags: ULONG, GenericMapping: PGENERIC_MAPPING, Token: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityAccessMask*(SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityDescriptorControl*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityDescriptorDacl*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, bDaclPresent: WINBOOL, pDacl: PACL, bDaclDefaulted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityDescriptorGroup*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: PSID, bGroupDefaulted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityDescriptorOwner*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: PSID, bOwnerDefaulted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityDescriptorRMControl*(SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetSecurityDescriptorSacl*(pSecurityDescriptor: PSECURITY_DESCRIPTOR, bSaclPresent: WINBOOL, pSacl: PACL, bSaclDefaulted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetTokenInformation*(TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetCachedSigningLevel*(SourceFiles: PHANDLE, SourceFileCount: ULONG, Flags: ULONG, TargetFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCachedSigningLevel*(File: HANDLE, Flags: PULONG, SigningLevel: PULONG, Thumbprint: PUCHAR, ThumbprintSize: PULONG, ThumbprintAlgorithm: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnterCriticalSection*(lpCriticalSection: LPCRITICAL_SECTION): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LeaveCriticalSection*(lpCriticalSection: LPCRITICAL_SECTION): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TryEnterCriticalSection*(lpCriticalSection: LPCRITICAL_SECTION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteCriticalSection*(lpCriticalSection: LPCRITICAL_SECTION): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetAclInformation*( + pAcl: PACL, + pAclInformation: LPVOID, + nAclInformationLength: DWORD, + dwAclInformationClass: ACL_INFORMATION_CLASS, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetFileSecurityW*( + lpFileName: LPCWSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetKernelObjectSecurity*( + Handle: HANDLE, + SecurityInformation: SECURITY_INFORMATION, + SecurityDescriptor: PSECURITY_DESCRIPTOR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetPrivateObjectSecurity*( + SecurityInformation: SECURITY_INFORMATION, + ModificationDescriptor: PSECURITY_DESCRIPTOR, + ObjectsSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + GenericMapping: PGENERIC_MAPPING, + Token: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetPrivateObjectSecurityEx*( + SecurityInformation: SECURITY_INFORMATION, + ModificationDescriptor: PSECURITY_DESCRIPTOR, + ObjectsSecurityDescriptor: ptr PSECURITY_DESCRIPTOR, + AutoInheritFlags: ULONG, + GenericMapping: PGENERIC_MAPPING, + Token: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityAccessMask*( + SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityDescriptorControl*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, + ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityDescriptorDacl*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + bDaclPresent: WINBOOL, + pDacl: PACL, + bDaclDefaulted: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityDescriptorGroup*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: PSID, bGroupDefaulted: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityDescriptorOwner*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: PSID, bOwnerDefaulted: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityDescriptorRMControl*( + SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetSecurityDescriptorSacl*( + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + bSaclPresent: WINBOOL, + pSacl: PACL, + bSaclDefaulted: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetTokenInformation*( + TokenHandle: HANDLE, + TokenInformationClass: TOKEN_INFORMATION_CLASS, + TokenInformation: LPVOID, + TokenInformationLength: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetCachedSigningLevel*( + SourceFiles: PHANDLE, SourceFileCount: ULONG, Flags: ULONG, TargetFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCachedSigningLevel*( + File: HANDLE, + Flags: PULONG, + SigningLevel: PULONG, + Thumbprint: PUCHAR, + ThumbprintSize: PULONG, + ThumbprintAlgorithm: PULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnterCriticalSection*( + lpCriticalSection: LPCRITICAL_SECTION +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LeaveCriticalSection*( + lpCriticalSection: LPCRITICAL_SECTION +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TryEnterCriticalSection*( + lpCriticalSection: LPCRITICAL_SECTION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteCriticalSection*( + lpCriticalSection: LPCRITICAL_SECTION +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc SetEvent*(hEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ResetEvent*(hEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseSemaphore*(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LPLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseMutex*(hMutex: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForSingleObjectEx*(hHandle: HANDLE, dwMilliseconds: DWORD, bAlertable: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForMultipleObjectsEx*(nCount: DWORD, lpHandles: ptr HANDLE, bWaitAll: WINBOOL, dwMilliseconds: DWORD, bAlertable: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenMutexW*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenEventA*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenEventW*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenSemaphoreW*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeSRWLock*(SRWLock: PSRWLOCK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseSRWLockExclusive*(SRWLock: PSRWLOCK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseSRWLockShared*(SRWLock: PSRWLOCK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AcquireSRWLockExclusive*(SRWLock: PSRWLOCK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AcquireSRWLockShared*(SRWLock: PSRWLOCK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TryAcquireSRWLockExclusive*(SRWLock: PSRWLOCK): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TryAcquireSRWLockShared*(SRWLock: PSRWLOCK): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeCriticalSectionEx*(lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitOnceInitialize*(InitOnce: PINIT_ONCE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitOnceExecuteOnce*(InitOnce: PINIT_ONCE, InitFn: PINIT_ONCE_FN, Parameter: PVOID, Context: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitOnceBeginInitialize*(lpInitOnce: LPINIT_ONCE, dwFlags: DWORD, fPending: PBOOL, lpContext: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitOnceComplete*(lpInitOnce: LPINIT_ONCE, dwFlags: DWORD, lpContext: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeConditionVariable*(ConditionVariable: PCONDITION_VARIABLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WakeConditionVariable*(ConditionVariable: PCONDITION_VARIABLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WakeAllConditionVariable*(ConditionVariable: PCONDITION_VARIABLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SleepConditionVariableCS*(ConditionVariable: PCONDITION_VARIABLE, CriticalSection: PCRITICAL_SECTION, dwMilliseconds: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SleepConditionVariableSRW*(ConditionVariable: PCONDITION_VARIABLE, SRWLock: PSRWLOCK, dwMilliseconds: DWORD, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMutexExA*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMutexExW*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateEventExA*(lpEventAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateEventExW*(lpEventAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSemaphoreExW*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeCriticalSection*(lpCriticalSection: LPCRITICAL_SECTION): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeCriticalSectionAndSpinCount*(lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCriticalSectionSpinCount*(lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForSingleObject*(hHandle: HANDLE, dwMilliseconds: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SleepEx*(dwMilliseconds: DWORD, bAlertable: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMutexA*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMutexW*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateEventA*(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, bInitialState: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateEventW*(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, bInitialState: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetWaitableTimer*(hTimer: HANDLE, lpDueTime: ptr LARGE_INTEGER, lPeriod: LONG, pfnCompletionRoutine: PTIMERAPCROUTINE, lpArgToCompletionRoutine: LPVOID, fResume: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CancelWaitableTimer*(hTimer: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenWaitableTimerW*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnterSynchronizationBarrier*(lpBarrier: LPSYNCHRONIZATION_BARRIER, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeSynchronizationBarrier*(lpBarrier: LPSYNCHRONIZATION_BARRIER, lTotalThreads: LONG, lSpinCount: LONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteSynchronizationBarrier*(lpBarrier: LPSYNCHRONIZATION_BARRIER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Sleep*(dwMilliseconds: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SignalObjectAndWait*(hObjectToSignal: HANDLE, hObjectToWaitOn: HANDLE, dwMilliseconds: DWORD, bAlertable: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateWaitableTimerExW*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetWaitableTimerEx*(hTimer: HANDLE, lpDueTime: ptr LARGE_INTEGER, lPeriod: LONG, pfnCompletionRoutine: PTIMERAPCROUTINE, lpArgToCompletionRoutine: LPVOID, WakeContext: PREASON_CONTEXT, TolerableDelay: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemTime*(lpSystemTime: LPSYSTEMTIME): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemTimeAsFileTime*(lpSystemTimeAsFileTime: LPFILETIME): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLocalTime*(lpSystemTime: LPSYSTEMTIME): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNativeSystemInfo*(lpSystemInfo: LPSYSTEM_INFO): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc ResetEvent*( + hEvent: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseSemaphore*( + hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LPLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseMutex*( + hMutex: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForSingleObjectEx*( + hHandle: HANDLE, dwMilliseconds: DWORD, bAlertable: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForMultipleObjectsEx*( + nCount: DWORD, + lpHandles: ptr HANDLE, + bWaitAll: WINBOOL, + dwMilliseconds: DWORD, + bAlertable: WINBOOL, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenMutexW*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenEventA*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenEventW*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenSemaphoreW*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeSRWLock*( + SRWLock: PSRWLOCK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseSRWLockExclusive*( + SRWLock: PSRWLOCK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseSRWLockShared*( + SRWLock: PSRWLOCK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AcquireSRWLockExclusive*( + SRWLock: PSRWLOCK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AcquireSRWLockShared*( + SRWLock: PSRWLOCK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TryAcquireSRWLockExclusive*( + SRWLock: PSRWLOCK +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TryAcquireSRWLockShared*( + SRWLock: PSRWLOCK +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeCriticalSectionEx*( + lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitOnceInitialize*( + InitOnce: PINIT_ONCE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitOnceExecuteOnce*( + InitOnce: PINIT_ONCE, InitFn: PINIT_ONCE_FN, Parameter: PVOID, Context: ptr LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitOnceBeginInitialize*( + lpInitOnce: LPINIT_ONCE, dwFlags: DWORD, fPending: PBOOL, lpContext: ptr LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitOnceComplete*( + lpInitOnce: LPINIT_ONCE, dwFlags: DWORD, lpContext: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeConditionVariable*( + ConditionVariable: PCONDITION_VARIABLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WakeConditionVariable*( + ConditionVariable: PCONDITION_VARIABLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WakeAllConditionVariable*( + ConditionVariable: PCONDITION_VARIABLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SleepConditionVariableCS*( + ConditionVariable: PCONDITION_VARIABLE, + CriticalSection: PCRITICAL_SECTION, + dwMilliseconds: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SleepConditionVariableSRW*( + ConditionVariable: PCONDITION_VARIABLE, + SRWLock: PSRWLOCK, + dwMilliseconds: DWORD, + Flags: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMutexExA*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMutexExW*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateEventExA*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateEventExW*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSemaphoreExW*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeCriticalSection*( + lpCriticalSection: LPCRITICAL_SECTION +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeCriticalSectionAndSpinCount*( + lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCriticalSectionSpinCount*( + lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForSingleObject*( + hHandle: HANDLE, dwMilliseconds: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SleepEx*( + dwMilliseconds: DWORD, bAlertable: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMutexA*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMutexW*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateEventA*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: WINBOOL, + bInitialState: WINBOOL, + lpName: LPCSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateEventW*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: WINBOOL, + bInitialState: WINBOOL, + lpName: LPCWSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetWaitableTimer*( + hTimer: HANDLE, + lpDueTime: ptr LARGE_INTEGER, + lPeriod: LONG, + pfnCompletionRoutine: PTIMERAPCROUTINE, + lpArgToCompletionRoutine: LPVOID, + fResume: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CancelWaitableTimer*( + hTimer: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenWaitableTimerW*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnterSynchronizationBarrier*( + lpBarrier: LPSYNCHRONIZATION_BARRIER, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeSynchronizationBarrier*( + lpBarrier: LPSYNCHRONIZATION_BARRIER, lTotalThreads: LONG, lSpinCount: LONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteSynchronizationBarrier*( + lpBarrier: LPSYNCHRONIZATION_BARRIER +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Sleep*( + dwMilliseconds: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SignalObjectAndWait*( + hObjectToSignal: HANDLE, + hObjectToWaitOn: HANDLE, + dwMilliseconds: DWORD, + bAlertable: WINBOOL, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateWaitableTimerExW*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + lpTimerName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetWaitableTimerEx*( + hTimer: HANDLE, + lpDueTime: ptr LARGE_INTEGER, + lPeriod: LONG, + pfnCompletionRoutine: PTIMERAPCROUTINE, + lpArgToCompletionRoutine: LPVOID, + WakeContext: PREASON_CONTEXT, + TolerableDelay: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemTime*( + lpSystemTime: LPSYSTEMTIME +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemTimeAsFileTime*( + lpSystemTimeAsFileTime: LPFILETIME +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLocalTime*( + lpSystemTime: LPSYSTEMTIME +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNativeSystemInfo*( + lpSystemInfo: LPSYSTEM_INFO +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetTickCount64*(): ULONGLONG {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetVersion*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalMemoryStatusEx*(lpBuffer: LPMEMORYSTATUSEX): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetLocalTime*(lpSystemTime: ptr SYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemInfo*(lpSystemInfo: LPSYSTEM_INFO): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GlobalMemoryStatusEx*( + lpBuffer: LPMEMORYSTATUSEX +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetLocalTime*( + lpSystemTime: ptr SYSTEMTIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemInfo*( + lpSystemInfo: LPSYSTEM_INFO +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetTickCount*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemTimeAdjustment*(lpTimeAdjustment: PDWORD, lpTimeIncrement: PDWORD, lpTimeAdjustmentDisabled: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemDirectoryA*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemDirectoryW*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetWindowsDirectoryA*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetWindowsDirectoryW*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemWindowsDirectoryA*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemWindowsDirectoryW*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetComputerNameExA*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetComputerNameExW*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPWSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetComputerNameExW*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetSystemTime*(lpSystemTime: ptr SYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVersionExA*(lpVersionInformation: LPOSVERSIONINFOA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVersionExW*(lpVersionInformation: LPOSVERSIONINFOW): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLogicalProcessorInformation*(Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, ReturnedLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemTimePreciseAsFileTime*(lpSystemTimeAsFileTime: LPFILETIME): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemFirmwareTables*(FirmwareTableProviderSignature: DWORD, pFirmwareTableEnumBuffer: PVOID, BufferSize: DWORD): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemFirmwareTable*(FirmwareTableProviderSignature: DWORD, FirmwareTableID: DWORD, pFirmwareTableBuffer: PVOID, BufferSize: DWORD): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProductInfo*(dwOSMajorVersion: DWORD, dwOSMinorVersion: DWORD, dwSpMajorVersion: DWORD, dwSpMinorVersion: DWORD, pdwReturnedProductType: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLogicalProcessorInformationEx*(RelationshipType: LOGICAL_PROCESSOR_RELATIONSHIP, Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, ReturnedLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaHighestNodeNumber*(HighestNodeNumber: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaNodeProcessorMaskEx*(Node: USHORT, ProcessorMask: PGROUP_AFFINITY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThreadpool*(reserved: PVOID): PTP_POOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolThreadMaximum*(ptpp: PTP_POOL, cthrdMost: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolThreadMinimum*(ptpp: PTP_POOL, cthrdMic: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolStackInformation*(ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryThreadpoolStackInformation*(ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpool*(ptpp: PTP_POOL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThreadpoolCleanupGroup*(): PTP_CLEANUP_GROUP {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpoolCleanupGroupMembers*(ptpcg: PTP_CLEANUP_GROUP, fCancelPendingCallbacks: WINBOOL, pvCleanupContext: PVOID): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpoolCleanupGroup*(ptpcg: PTP_CLEANUP_GROUP): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetEventWhenCallbackReturns*(pci: PTP_CALLBACK_INSTANCE, evt: HANDLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseSemaphoreWhenCallbackReturns*(pci: PTP_CALLBACK_INSTANCE, sem: HANDLE, crel: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseMutexWhenCallbackReturns*(pci: PTP_CALLBACK_INSTANCE, mut: HANDLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LeaveCriticalSectionWhenCallbackReturns*(pci: PTP_CALLBACK_INSTANCE, pcs: PCRITICAL_SECTION): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeLibraryWhenCallbackReturns*(pci: PTP_CALLBACK_INSTANCE, `mod`: HMODULE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CallbackMayRunLong*(pci: PTP_CALLBACK_INSTANCE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DisassociateCurrentThreadFromCallback*(pci: PTP_CALLBACK_INSTANCE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TrySubmitThreadpoolCallback*(pfns: PTP_SIMPLE_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThreadpoolWork*(pfnwk: PTP_WORK_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON): PTP_WORK {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SubmitThreadpoolWork*(pwk: PTP_WORK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForThreadpoolWorkCallbacks*(pwk: PTP_WORK, fCancelPendingCallbacks: WINBOOL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpoolWork*(pwk: PTP_WORK): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThreadpoolTimer*(pfnti: PTP_TIMER_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON): PTP_TIMER {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolTimer*(pti: PTP_TIMER, pftDueTime: PFILETIME, msPeriod: DWORD, msWindowLength: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsThreadpoolTimerSet*(pti: PTP_TIMER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForThreadpoolTimerCallbacks*(pti: PTP_TIMER, fCancelPendingCallbacks: WINBOOL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpoolTimer*(pti: PTP_TIMER): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThreadpoolWait*(pfnwa: PTP_WAIT_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON): PTP_WAIT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolWait*(pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForThreadpoolWaitCallbacks*(pwa: PTP_WAIT, fCancelPendingCallbacks: WINBOOL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpoolWait*(pwa: PTP_WAIT): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateThreadpoolIo*(fl: HANDLE, pfnio: PTP_WIN32_IO_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON): PTP_IO {.winapi, stdcall, dynlib: "kernel32", importc.} -proc StartThreadpoolIo*(pio: PTP_IO): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CancelThreadpoolIo*(pio: PTP_IO): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForThreadpoolIoCallbacks*(pio: PTP_IO, fCancelPendingCallbacks: WINBOOL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CloseThreadpoolIo*(pio: PTP_IO): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolTimerEx*(pti: PTP_TIMER, pftDueTime: PFILETIME, msPeriod: DWORD, msWindowLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadpoolWaitEx*(pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME, Reserved: PVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateTimerQueueTimer*(phNewTimer: PHANDLE, TimerQueue: HANDLE, Callback: WAITORTIMERCALLBACK, Parameter: PVOID, DueTime: DWORD, Period: DWORD, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteTimerQueueTimer*(TimerQueue: HANDLE, Timer: HANDLE, CompletionEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueueUserWorkItem*(Function: LPTHREAD_START_ROUTINE, Context: PVOID, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnregisterWaitEx*(WaitHandle: HANDLE, CompletionEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetSystemTimeAdjustment*( + lpTimeAdjustment: PDWORD, lpTimeIncrement: PDWORD, lpTimeAdjustmentDisabled: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemDirectoryA*( + lpBuffer: LPSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemDirectoryW*( + lpBuffer: LPWSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetWindowsDirectoryA*( + lpBuffer: LPSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetWindowsDirectoryW*( + lpBuffer: LPWSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemWindowsDirectoryA*( + lpBuffer: LPSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemWindowsDirectoryW*( + lpBuffer: LPWSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetComputerNameExA*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPSTR, nSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetComputerNameExW*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPWSTR, nSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetComputerNameExW*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetSystemTime*( + lpSystemTime: ptr SYSTEMTIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVersionExA*( + lpVersionInformation: LPOSVERSIONINFOA +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVersionExW*( + lpVersionInformation: LPOSVERSIONINFOW +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLogicalProcessorInformation*( + Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, ReturnedLength: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemTimePreciseAsFileTime*( + lpSystemTimeAsFileTime: LPFILETIME +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemFirmwareTables*( + FirmwareTableProviderSignature: DWORD, + pFirmwareTableEnumBuffer: PVOID, + BufferSize: DWORD, +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemFirmwareTable*( + FirmwareTableProviderSignature: DWORD, + FirmwareTableID: DWORD, + pFirmwareTableBuffer: PVOID, + BufferSize: DWORD, +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProductInfo*( + dwOSMajorVersion: DWORD, + dwOSMinorVersion: DWORD, + dwSpMajorVersion: DWORD, + dwSpMinorVersion: DWORD, + pdwReturnedProductType: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLogicalProcessorInformationEx*( + RelationshipType: LOGICAL_PROCESSOR_RELATIONSHIP, + Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, + ReturnedLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaHighestNodeNumber*( + HighestNodeNumber: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaNodeProcessorMaskEx*( + Node: USHORT, ProcessorMask: PGROUP_AFFINITY +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateThreadpool*( + reserved: PVOID +): PTP_POOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolThreadMaximum*( + ptpp: PTP_POOL, cthrdMost: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolThreadMinimum*( + ptpp: PTP_POOL, cthrdMic: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolStackInformation*( + ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryThreadpoolStackInformation*( + ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseThreadpool*( + ptpp: PTP_POOL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateThreadpoolCleanupGroup*(): PTP_CLEANUP_GROUP {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc CloseThreadpoolCleanupGroupMembers*( + ptpcg: PTP_CLEANUP_GROUP, fCancelPendingCallbacks: WINBOOL, pvCleanupContext: PVOID +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseThreadpoolCleanupGroup*( + ptpcg: PTP_CLEANUP_GROUP +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetEventWhenCallbackReturns*( + pci: PTP_CALLBACK_INSTANCE, evt: HANDLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseSemaphoreWhenCallbackReturns*( + pci: PTP_CALLBACK_INSTANCE, sem: HANDLE, crel: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseMutexWhenCallbackReturns*( + pci: PTP_CALLBACK_INSTANCE, mut: HANDLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LeaveCriticalSectionWhenCallbackReturns*( + pci: PTP_CALLBACK_INSTANCE, pcs: PCRITICAL_SECTION +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeLibraryWhenCallbackReturns*( + pci: PTP_CALLBACK_INSTANCE, `mod`: HMODULE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CallbackMayRunLong*( + pci: PTP_CALLBACK_INSTANCE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DisassociateCurrentThreadFromCallback*( + pci: PTP_CALLBACK_INSTANCE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TrySubmitThreadpoolCallback*( + pfns: PTP_SIMPLE_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateThreadpoolWork*( + pfnwk: PTP_WORK_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON +): PTP_WORK {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SubmitThreadpoolWork*( + pwk: PTP_WORK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForThreadpoolWorkCallbacks*( + pwk: PTP_WORK, fCancelPendingCallbacks: WINBOOL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseThreadpoolWork*( + pwk: PTP_WORK +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateThreadpoolTimer*( + pfnti: PTP_TIMER_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON +): PTP_TIMER {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolTimer*( + pti: PTP_TIMER, pftDueTime: PFILETIME, msPeriod: DWORD, msWindowLength: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsThreadpoolTimerSet*( + pti: PTP_TIMER +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForThreadpoolTimerCallbacks*( + pti: PTP_TIMER, fCancelPendingCallbacks: WINBOOL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseThreadpoolTimer*( + pti: PTP_TIMER +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateThreadpoolWait*( + pfnwa: PTP_WAIT_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON +): PTP_WAIT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolWait*( + pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForThreadpoolWaitCallbacks*( + pwa: PTP_WAIT, fCancelPendingCallbacks: WINBOOL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseThreadpoolWait*( + pwa: PTP_WAIT +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateThreadpoolIo*( + fl: HANDLE, pfnio: PTP_WIN32_IO_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON +): PTP_IO {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc StartThreadpoolIo*( + pio: PTP_IO +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CancelThreadpoolIo*( + pio: PTP_IO +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForThreadpoolIoCallbacks*( + pio: PTP_IO, fCancelPendingCallbacks: WINBOOL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CloseThreadpoolIo*( + pio: PTP_IO +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolTimerEx*( + pti: PTP_TIMER, pftDueTime: PFILETIME, msPeriod: DWORD, msWindowLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadpoolWaitEx*( + pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME, Reserved: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateTimerQueueTimer*( + phNewTimer: PHANDLE, + TimerQueue: HANDLE, + Callback: WAITORTIMERCALLBACK, + Parameter: PVOID, + DueTime: DWORD, + Period: DWORD, + Flags: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteTimerQueueTimer*( + TimerQueue: HANDLE, Timer: HANDLE, CompletionEvent: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueueUserWorkItem*( + Function: LPTHREAD_START_ROUTINE, Context: PVOID, Flags: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnregisterWaitEx*( + WaitHandle: HANDLE, CompletionEvent: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc CreateTimerQueue*(): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ChangeTimerQueueTimer*(TimerQueue: HANDLE, Timer: HANDLE, DueTime: ULONG, Period: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteTimerQueueEx*(TimerQueue: HANDLE, CompletionEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc ChangeTimerQueueTimer*( + TimerQueue: HANDLE, Timer: HANDLE, DueTime: ULONG, Period: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteTimerQueueEx*( + TimerQueue: HANDLE, CompletionEvent: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc EncodePointer*(Ptr: PVOID): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} proc DecodePointer*(Ptr: PVOID): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EncodeSystemPointer*(Ptr: PVOID): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DecodeSystemPointer*(Ptr: PVOID): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Beep*(dwFreq: DWORD, dwDuration: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64DisableWow64FsRedirection*(OldValue: ptr PVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64RevertWow64FsRedirection*(OlValue: PVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsWow64Process*(hProcess: HANDLE, Wow64Process: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalAlloc*(uFlags: UINT, dwBytes: SIZE_T): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalReAlloc*(hMem: HGLOBAL, dwBytes: SIZE_T, uFlags: UINT): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc EncodeSystemPointer*( + Ptr: PVOID +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DecodeSystemPointer*( + Ptr: PVOID +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Beep*( + dwFreq: DWORD, dwDuration: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64DisableWow64FsRedirection*( + OldValue: ptr PVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64RevertWow64FsRedirection*( + OlValue: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsWow64Process*( + hProcess: HANDLE, Wow64Process: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalAlloc*( + uFlags: UINT, dwBytes: SIZE_T +): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalReAlloc*( + hMem: HGLOBAL, dwBytes: SIZE_T, uFlags: UINT +): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GlobalSize*(hMem: HGLOBAL): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} proc GlobalFlags*(hMem: HGLOBAL): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} proc GlobalLock*(hMem: HGLOBAL): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalHandle*(pMem: LPCVOID): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalUnlock*(hMem: HGLOBAL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalFree*(hMem: HGLOBAL): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalCompact*(dwMinFree: DWORD): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GlobalHandle*( + pMem: LPCVOID +): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalUnlock*( + hMem: HGLOBAL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalFree*( + hMem: HGLOBAL +): HGLOBAL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalCompact*( + dwMinFree: DWORD +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GlobalFix*(hMem: HGLOBAL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} proc GlobalUnfix*(hMem: HGLOBAL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} proc GlobalWire*(hMem: HGLOBAL): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalUnWire*(hMem: HGLOBAL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalMemoryStatus*(lpBuffer: LPMEMORYSTATUS): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalAlloc*(uFlags: UINT, uBytes: SIZE_T): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalReAlloc*(hMem: HLOCAL, uBytes: SIZE_T, uFlags: UINT): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GlobalUnWire*( + hMem: HGLOBAL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalMemoryStatus*( + lpBuffer: LPMEMORYSTATUS +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LocalAlloc*( + uFlags: UINT, uBytes: SIZE_T +): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LocalReAlloc*( + hMem: HLOCAL, uBytes: SIZE_T, uFlags: UINT +): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc LocalLock*(hMem: HLOCAL): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalHandle*(pMem: LPCVOID): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalUnlock*(hMem: HLOCAL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc LocalHandle*( + pMem: LPCVOID +): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LocalUnlock*( + hMem: HLOCAL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc LocalSize*(hMem: HLOCAL): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} proc LocalFlags*(hMem: HLOCAL): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} proc LocalFree*(hMem: HLOCAL): HLOCAL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalShrink*(hMem: HLOCAL, cbNewSize: UINT): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocalCompact*(uMinFree: UINT): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VirtualAllocExNuma*(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD, nndPreferred: DWORD): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessorSystemCycleTime*(Group: USHORT, Buffer: PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, ReturnedLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPhysicallyInstalledSystemMemory*(TotalMemoryInKilobytes: PULONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetBinaryTypeA*(lpApplicationName: LPCSTR, lpBinaryType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetBinaryTypeW*(lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetShortPathNameA*(lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLongPathNameTransactedA*(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLongPathNameTransactedW*(lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessAffinityMask*(hProcess: HANDLE, lpProcessAffinityMask: PDWORD_PTR, lpSystemAffinityMask: PDWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessAffinityMask*(hProcess: HANDLE, dwProcessAffinityMask: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessIoCounters*(hProcess: HANDLE, lpIoCounters: PIO_COUNTERS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessWorkingSetSize*(hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessWorkingSetSize*(hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc LocalShrink*( + hMem: HLOCAL, cbNewSize: UINT +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LocalCompact*( + uMinFree: UINT +): SIZE_T {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VirtualAllocExNuma*( + hProcess: HANDLE, + lpAddress: LPVOID, + dwSize: SIZE_T, + flAllocationType: DWORD, + flProtect: DWORD, + nndPreferred: DWORD, +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessorSystemCycleTime*( + Group: USHORT, + Buffer: PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, + ReturnedLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPhysicallyInstalledSystemMemory*( + TotalMemoryInKilobytes: PULONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetBinaryTypeA*( + lpApplicationName: LPCSTR, lpBinaryType: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetBinaryTypeW*( + lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetShortPathNameA*( + lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLongPathNameTransactedA*( + lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD, hTransaction: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLongPathNameTransactedW*( + lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD, hTransaction: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessAffinityMask*( + hProcess: HANDLE, lpProcessAffinityMask: PDWORD_PTR, lpSystemAffinityMask: PDWORD_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessAffinityMask*( + hProcess: HANDLE, dwProcessAffinityMask: DWORD_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessIoCounters*( + hProcess: HANDLE, lpIoCounters: PIO_COUNTERS +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessWorkingSetSize*( + hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessWorkingSetSize*( + hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc FatalExit*(ExitCode: int32): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetEnvironmentStringsA*(NewEnvironment: LPCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RaiseFailFastException*(pExceptionRecord: PEXCEPTION_RECORD, pContextRecord: PCONTEXT, dwFlags: DWORD): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadIdealProcessor*(hThread: HANDLE, dwIdealProcessor: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFiber*(dwStackSize: SIZE_T, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFiberEx*(dwStackCommitSize: SIZE_T, dwStackReserveSize: SIZE_T, dwFlags: DWORD, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteFiber*(lpFiber: LPVOID): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ConvertThreadToFiber*(lpParameter: LPVOID): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ConvertThreadToFiberEx*(lpParameter: LPVOID, dwFlags: DWORD): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetEnvironmentStringsA*( + NewEnvironment: LPCH +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RaiseFailFastException*( + pExceptionRecord: PEXCEPTION_RECORD, pContextRecord: PCONTEXT, dwFlags: DWORD +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadIdealProcessor*( + hThread: HANDLE, dwIdealProcessor: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFiber*( + dwStackSize: SIZE_T, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFiberEx*( + dwStackCommitSize: SIZE_T, + dwStackReserveSize: SIZE_T, + dwFlags: DWORD, + lpStartAddress: LPFIBER_START_ROUTINE, + lpParameter: LPVOID, +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteFiber*( + lpFiber: LPVOID +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ConvertThreadToFiber*( + lpParameter: LPVOID +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ConvertThreadToFiberEx*( + lpParameter: LPVOID, dwFlags: DWORD +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc ConvertFiberToThread*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SwitchToFiber*(lpFiber: LPVOID): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadAffinityMask*(hThread: HANDLE, dwThreadAffinityMask: DWORD_PTR): DWORD_PTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadInformation*(hThread: HANDLE, ThreadInformationClass: THREAD_INFORMATION_CLASS, ThreadInformation: LPVOID, ThreadInformationSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadInformation*(hThread: HANDLE, ThreadInformationClass: THREAD_INFORMATION_CLASS, ThreadInformation: LPVOID, ThreadInformationSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessInformation*(hProcess: HANDLE, ProcessInformationClass: PROCESS_INFORMATION_CLASS, ProcessInformation: LPVOID, ProcessInformationSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessInformation*(hProcess: HANDLE, ProcessInformationClass: PROCESS_INFORMATION_CLASS, ProcessInformation: LPVOID, ProcessInformationSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessDEPPolicy*(dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessDEPPolicy*(hProcess: HANDLE, lpFlags: LPDWORD, lpPermanent: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessPriorityBoost*(hProcess: HANDLE, bDisablePriorityBoost: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessPriorityBoost*(hProcess: HANDLE, pDisablePriorityBoost: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RequestWakeupLatency*(latency: LATENCY_TIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsSystemResumeAutomatic*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadIOPendingFlag*(hThread: HANDLE, lpIOIsPending: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SwitchToFiber*( + lpFiber: LPVOID +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadAffinityMask*( + hThread: HANDLE, dwThreadAffinityMask: DWORD_PTR +): DWORD_PTR {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadInformation*( + hThread: HANDLE, + ThreadInformationClass: THREAD_INFORMATION_CLASS, + ThreadInformation: LPVOID, + ThreadInformationSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadInformation*( + hThread: HANDLE, + ThreadInformationClass: THREAD_INFORMATION_CLASS, + ThreadInformation: LPVOID, + ThreadInformationSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessInformation*( + hProcess: HANDLE, + ProcessInformationClass: PROCESS_INFORMATION_CLASS, + ProcessInformation: LPVOID, + ProcessInformationSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessInformation*( + hProcess: HANDLE, + ProcessInformationClass: PROCESS_INFORMATION_CLASS, + ProcessInformation: LPVOID, + ProcessInformationSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessDEPPolicy*( + dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessDEPPolicy*( + hProcess: HANDLE, lpFlags: LPDWORD, lpPermanent: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessPriorityBoost*( + hProcess: HANDLE, bDisablePriorityBoost: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessPriorityBoost*( + hProcess: HANDLE, pDisablePriorityBoost: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RequestWakeupLatency*( + latency: LATENCY_TIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsSystemResumeAutomatic*(): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetThreadIOPendingFlag*( + hThread: HANDLE, lpIOIsPending: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + when winimCpu64: - type - LPLDT_ENTRY* = LPVOID + type LPLDT_ENTRY* = LPVOID when winimCpu32: - type - LPLDT_ENTRY* = PLDT_ENTRY -proc GetThreadSelectorEntry*(hThread: HANDLE, dwSelector: DWORD, lpSelectorEntry: LPLDT_ENTRY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadExecutionState*(esFlags: EXECUTION_STATE): EXECUTION_STATE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PowerCreateRequest*(Context: PREASON_CONTEXT): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PowerSetRequest*(PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PowerClearRequest*(PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileCompletionNotificationModes*(FileHandle: HANDLE, Flags: UCHAR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileIoOverlappedRange*(FileHandle: HANDLE, OverlappedRangeStart: PUCHAR, Length: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + type LPLDT_ENTRY* = PLDT_ENTRY +proc GetThreadSelectorEntry*( + hThread: HANDLE, dwSelector: DWORD, lpSelectorEntry: LPLDT_ENTRY +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadExecutionState*( + esFlags: EXECUTION_STATE +): EXECUTION_STATE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PowerCreateRequest*( + Context: PREASON_CONTEXT +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PowerSetRequest*( + PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PowerClearRequest*( + PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileCompletionNotificationModes*( + FileHandle: HANDLE, Flags: UCHAR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileIoOverlappedRange*( + FileHandle: HANDLE, OverlappedRangeStart: PUCHAR, Length: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetThreadErrorMode*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadErrorMode*(dwNewMode: DWORD, lpOldMode: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64GetThreadContext*(hThread: HANDLE, lpContext: PWOW64_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64SetThreadContext*(hThread: HANDLE, lpContext: ptr WOW64_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64GetThreadSelectorEntry*(hThread: HANDLE, dwSelector: DWORD, lpSelectorEntry: PWOW64_LDT_ENTRY): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64SuspendThread*(hThread: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DebugSetProcessKillOnExit*(KillOnExit: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DebugBreakProcess*(Process: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PulseEvent*(hEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitForMultipleObjects*(nCount: DWORD, lpHandles: ptr HANDLE, bWaitAll: WINBOOL, dwMilliseconds: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalDeleteAtom*(nAtom: ATOM): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitAtomTable*(nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetThreadErrorMode*( + dwNewMode: DWORD, lpOldMode: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64GetThreadContext*( + hThread: HANDLE, lpContext: PWOW64_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64SetThreadContext*( + hThread: HANDLE, lpContext: ptr WOW64_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64GetThreadSelectorEntry*( + hThread: HANDLE, dwSelector: DWORD, lpSelectorEntry: PWOW64_LDT_ENTRY +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64SuspendThread*( + hThread: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DebugSetProcessKillOnExit*( + KillOnExit: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DebugBreakProcess*( + Process: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PulseEvent*( + hEvent: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitForMultipleObjects*( + nCount: DWORD, lpHandles: ptr HANDLE, bWaitAll: WINBOOL, dwMilliseconds: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalDeleteAtom*( + nAtom: ATOM +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitAtomTable*( + nSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc DeleteAtom*(nAtom: ATOM): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetHandleCount*(uNumber: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RequestDeviceWakeup*(hDevice: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CancelDeviceWakeupRequest*(hDevice: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDevicePowerState*(hDevice: HANDLE, pfOn: ptr WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetMessageWaitingIndicator*(hMsgIndicator: HANDLE, ulMsgCount: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileShortNameA*(hFile: HANDLE, lpShortName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileShortNameW*(hFile: HANDLE, lpShortName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadModule*(lpModuleName: LPCSTR, lpParameterBlock: LPVOID): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WinExec*(lpCmdLine: LPCSTR, uCmdShow: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ClearCommBreak*(hFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ClearCommError*(hFile: HANDLE, lpErrors: LPDWORD, lpStat: LPCOMSTAT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetupComm*(hFile: HANDLE, dwInQueue: DWORD, dwOutQueue: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EscapeCommFunction*(hFile: HANDLE, dwFunc: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCommConfig*(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCommMask*(hFile: HANDLE, lpEvtMask: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCommProperties*(hFile: HANDLE, lpCommProp: LPCOMMPROP): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCommModemStatus*(hFile: HANDLE, lpModemStat: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCommState*(hFile: HANDLE, lpDCB: LPDCB): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCommTimeouts*(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PurgeComm*(hFile: HANDLE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCommBreak*(hFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCommConfig*(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, dwSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCommMask*(hFile: HANDLE, dwEvtMask: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCommState*(hFile: HANDLE, lpDCB: LPDCB): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCommTimeouts*(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TransmitCommChar*(hFile: HANDLE, cChar: char): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitCommEvent*(hFile: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetTapePosition*(hDevice: HANDLE, dwPositionMethod: DWORD, dwPartition: DWORD, dwOffsetLow: DWORD, dwOffsetHigh: DWORD, bImmediate: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTapePosition*(hDevice: HANDLE, dwPositionType: DWORD, lpdwPartition: LPDWORD, lpdwOffsetLow: LPDWORD, lpdwOffsetHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PrepareTape*(hDevice: HANDLE, dwOperation: DWORD, bImmediate: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EraseTape*(hDevice: HANDLE, dwEraseType: DWORD, bImmediate: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateTapePartition*(hDevice: HANDLE, dwPartitionMethod: DWORD, dwCount: DWORD, dwSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteTapemark*(hDevice: HANDLE, dwTapemarkType: DWORD, dwTapemarkCount: DWORD, bImmediate: WINBOOL): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTapeStatus*(hDevice: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTapeParameters*(hDevice: HANDLE, dwOperation: DWORD, lpdwSize: LPDWORD, lpTapeInformation: LPVOID): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetTapeParameters*(hDevice: HANDLE, dwOperation: DWORD, lpTapeInformation: LPVOID): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemDEPPolicy*(): DEP_SYSTEM_POLICY_TYPE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemRegistryQuota*(pdwQuotaAllowed: PDWORD, pdwQuotaUsed: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemTimes*(lpIdleTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FileTimeToDosDateTime*(lpFileTime: ptr FILETIME, lpFatDate: LPWORD, lpFatTime: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DosDateTimeToFileTime*(wFatDate: WORD, wFatTime: WORD, lpFileTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetSystemTimeAdjustment*(dwTimeAdjustment: DWORD, bTimeAdjustmentDisabled: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MulDiv*(nNumber: int32, nNumerator: int32, nDenominator: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FormatMessageA*(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPSTR, nSize: DWORD, Arguments: ptr va_list): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FormatMessageW*(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPWSTR, nSize: DWORD, Arguments: ptr va_list): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeInfo*(hNamedPipe: HANDLE, lpFlags: LPDWORD, lpOutBufferSize: LPDWORD, lpInBufferSize: LPDWORD, lpMaxInstances: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMailslotA*(lpName: LPCSTR, nMaxMessageSize: DWORD, lReadTimeout: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateMailslotW*(lpName: LPCWSTR, nMaxMessageSize: DWORD, lReadTimeout: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetMailslotInfo*(hMailslot: HANDLE, lpMaxMessageSize: LPDWORD, lpNextSize: LPDWORD, lpMessageCount: LPDWORD, lpReadTimeout: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetMailslotInfo*(hMailslot: HANDLE, lReadTimeout: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EncryptFileA*(lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EncryptFileW*(lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DecryptFileA*(lpFileName: LPCSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DecryptFileW*(lpFileName: LPCWSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc FileEncryptionStatusA*(lpFileName: LPCSTR, lpStatus: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc FileEncryptionStatusW*(lpFileName: LPCWSTR, lpStatus: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenEncryptedFileRawA*(lpFileName: LPCSTR, ulFlags: ULONG, pvContext: ptr PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenEncryptedFileRawW*(lpFileName: LPCWSTR, ulFlags: ULONG, pvContext: ptr PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ReadEncryptedFileRaw*(pfExportCallback: PFE_EXPORT_FUNC, pvCallbackContext: PVOID, pvContext: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc WriteEncryptedFileRaw*(pfImportCallback: PFE_IMPORT_FUNC, pvCallbackContext: PVOID, pvContext: PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CloseEncryptedFileRaw*(pvContext: PVOID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc lstrcmpA*(lpString1: LPCSTR, lpString2: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcmpW*(lpString1: LPCWSTR, lpString2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcmpiA*(lpString1: LPCSTR, lpString2: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcmpiW*(lpString1: LPCWSTR, lpString2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcpynA*(lpString1: LPSTR, lpString2: LPCSTR, iMaxLength: int32): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcpynW*(lpString1: LPWSTR, lpString2: LPCWSTR, iMaxLength: int32): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcpyA*(lpString1: LPSTR, lpString2: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcpyW*(lpString1: LPWSTR, lpString2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcatA*(lpString1: LPSTR, lpString2: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrcatW*(lpString1: LPWSTR, lpString2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetHandleCount*( + uNumber: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RequestDeviceWakeup*( + hDevice: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CancelDeviceWakeupRequest*( + hDevice: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDevicePowerState*( + hDevice: HANDLE, pfOn: ptr WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetMessageWaitingIndicator*( + hMsgIndicator: HANDLE, ulMsgCount: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileShortNameA*( + hFile: HANDLE, lpShortName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileShortNameW*( + hFile: HANDLE, lpShortName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadModule*( + lpModuleName: LPCSTR, lpParameterBlock: LPVOID +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WinExec*( + lpCmdLine: LPCSTR, uCmdShow: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ClearCommBreak*( + hFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ClearCommError*( + hFile: HANDLE, lpErrors: LPDWORD, lpStat: LPCOMSTAT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetupComm*( + hFile: HANDLE, dwInQueue: DWORD, dwOutQueue: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EscapeCommFunction*( + hFile: HANDLE, dwFunc: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCommConfig*( + hCommDev: HANDLE, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCommMask*( + hFile: HANDLE, lpEvtMask: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCommProperties*( + hFile: HANDLE, lpCommProp: LPCOMMPROP +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCommModemStatus*( + hFile: HANDLE, lpModemStat: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCommState*( + hFile: HANDLE, lpDCB: LPDCB +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCommTimeouts*( + hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PurgeComm*( + hFile: HANDLE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCommBreak*( + hFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCommConfig*( + hCommDev: HANDLE, lpCC: LPCOMMCONFIG, dwSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCommMask*( + hFile: HANDLE, dwEvtMask: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCommState*( + hFile: HANDLE, lpDCB: LPDCB +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCommTimeouts*( + hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TransmitCommChar*( + hFile: HANDLE, cChar: char +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitCommEvent*( + hFile: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetTapePosition*( + hDevice: HANDLE, + dwPositionMethod: DWORD, + dwPartition: DWORD, + dwOffsetLow: DWORD, + dwOffsetHigh: DWORD, + bImmediate: WINBOOL, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTapePosition*( + hDevice: HANDLE, + dwPositionType: DWORD, + lpdwPartition: LPDWORD, + lpdwOffsetLow: LPDWORD, + lpdwOffsetHigh: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PrepareTape*( + hDevice: HANDLE, dwOperation: DWORD, bImmediate: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EraseTape*( + hDevice: HANDLE, dwEraseType: DWORD, bImmediate: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateTapePartition*( + hDevice: HANDLE, dwPartitionMethod: DWORD, dwCount: DWORD, dwSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteTapemark*( + hDevice: HANDLE, dwTapemarkType: DWORD, dwTapemarkCount: DWORD, bImmediate: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTapeStatus*( + hDevice: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTapeParameters*( + hDevice: HANDLE, dwOperation: DWORD, lpdwSize: LPDWORD, lpTapeInformation: LPVOID +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetTapeParameters*( + hDevice: HANDLE, dwOperation: DWORD, lpTapeInformation: LPVOID +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemDEPPolicy*(): DEP_SYSTEM_POLICY_TYPE {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetSystemRegistryQuota*( + pdwQuotaAllowed: PDWORD, pdwQuotaUsed: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemTimes*( + lpIdleTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FileTimeToDosDateTime*( + lpFileTime: ptr FILETIME, lpFatDate: LPWORD, lpFatTime: LPWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DosDateTimeToFileTime*( + wFatDate: WORD, wFatTime: WORD, lpFileTime: LPFILETIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetSystemTimeAdjustment*( + dwTimeAdjustment: DWORD, bTimeAdjustmentDisabled: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MulDiv*( + nNumber: int32, nNumerator: int32, nDenominator: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FormatMessageA*( + dwFlags: DWORD, + lpSource: LPCVOID, + dwMessageId: DWORD, + dwLanguageId: DWORD, + lpBuffer: LPSTR, + nSize: DWORD, + Arguments: ptr va_list, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FormatMessageW*( + dwFlags: DWORD, + lpSource: LPCVOID, + dwMessageId: DWORD, + dwLanguageId: DWORD, + lpBuffer: LPWSTR, + nSize: DWORD, + Arguments: ptr va_list, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeInfo*( + hNamedPipe: HANDLE, + lpFlags: LPDWORD, + lpOutBufferSize: LPDWORD, + lpInBufferSize: LPDWORD, + lpMaxInstances: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMailslotA*( + lpName: LPCSTR, + nMaxMessageSize: DWORD, + lReadTimeout: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateMailslotW*( + lpName: LPCWSTR, + nMaxMessageSize: DWORD, + lReadTimeout: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetMailslotInfo*( + hMailslot: HANDLE, + lpMaxMessageSize: LPDWORD, + lpNextSize: LPDWORD, + lpMessageCount: LPDWORD, + lpReadTimeout: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetMailslotInfo*( + hMailslot: HANDLE, lReadTimeout: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EncryptFileA*( + lpFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EncryptFileW*( + lpFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DecryptFileA*( + lpFileName: LPCSTR, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DecryptFileW*( + lpFileName: LPCWSTR, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc FileEncryptionStatusA*( + lpFileName: LPCSTR, lpStatus: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc FileEncryptionStatusW*( + lpFileName: LPCWSTR, lpStatus: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenEncryptedFileRawA*( + lpFileName: LPCSTR, ulFlags: ULONG, pvContext: ptr PVOID +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenEncryptedFileRawW*( + lpFileName: LPCWSTR, ulFlags: ULONG, pvContext: ptr PVOID +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ReadEncryptedFileRaw*( + pfExportCallback: PFE_EXPORT_FUNC, pvCallbackContext: PVOID, pvContext: PVOID +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc WriteEncryptedFileRaw*( + pfImportCallback: PFE_IMPORT_FUNC, pvCallbackContext: PVOID, pvContext: PVOID +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CloseEncryptedFileRaw*( + pvContext: PVOID +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc lstrcmpA*( + lpString1: LPCSTR, lpString2: LPCSTR +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcmpW*( + lpString1: LPCWSTR, lpString2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcmpiA*( + lpString1: LPCSTR, lpString2: LPCSTR +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcmpiW*( + lpString1: LPCWSTR, lpString2: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcpynA*( + lpString1: LPSTR, lpString2: LPCSTR, iMaxLength: int32 +): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcpynW*( + lpString1: LPWSTR, lpString2: LPCWSTR, iMaxLength: int32 +): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcpyA*( + lpString1: LPSTR, lpString2: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcpyW*( + lpString1: LPWSTR, lpString2: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcatA*( + lpString1: LPSTR, lpString2: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc lstrcatW*( + lpString1: LPWSTR, lpString2: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc.} + proc lstrlenA*(lpString: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc lstrlenW*(lpString: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenFile*(lpFileName: LPCSTR, lpReOpenBuff: LPOFSTRUCT, uStyle: UINT): HFILE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsTextUnicode*(lpv: pointer, iSize: int32, lpiResult: LPINT): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BackupRead*(hFile: HANDLE, lpBuffer: LPBYTE, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, bAbort: WINBOOL, bProcessSecurity: WINBOOL, lpContext: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BackupSeek*(hFile: HANDLE, dwLowBytesToSeek: DWORD, dwHighBytesToSeek: DWORD, lpdwLowByteSeeked: LPDWORD, lpdwHighByteSeeked: LPDWORD, lpContext: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BackupWrite*(hFile: HANDLE, lpBuffer: LPBYTE, nNumberOfBytesToWrite: DWORD, lpNumberOfBytesWritten: LPDWORD, bAbort: WINBOOL, bProcessSecurity: WINBOOL, lpContext: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSemaphoreW*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadLibraryW*(lpLibFileName: LPCWSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenMutexA*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSemaphoreA*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenSemaphoreA*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateWaitableTimerA*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateWaitableTimerW*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenWaitableTimerA*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileMappingA*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSemaphoreExA*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateWaitableTimerExA*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileMappingNumaA*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCSTR, nndPreferred: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenFileMappingA*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLogicalDriveStringsA*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadLibraryA*(lpLibFileName: LPCSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LoadPackagedLibrary*(lpwLibFileName: LPCWSTR, Reserved: DWORD): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryFullProcessImageNameA*(hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPSTR, lpdwSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryFullProcessImageNameW*(hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPWSTR, lpdwSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessShutdownParameters*(lpdwLevel: LPDWORD, lpdwFlags: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FatalAppExitA*(uAction: UINT, lpMessageText: LPCSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FatalAppExitW*(uAction: UINT, lpMessageText: LPCWSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStartupInfoA*(lpStartupInfo: LPSTARTUPINFOA): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFirmwareEnvironmentVariableA*(lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFirmwareEnvironmentVariableW*(lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFirmwareEnvironmentVariableA*(lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFirmwareEnvironmentVariableW*(lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindResourceA*(hModule: HMODULE, lpName: LPCSTR, lpType: LPCSTR): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindResourceW*(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindResourceExA*(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceTypesA*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceTypesW*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceNamesA*(hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumResourceNamesW*(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BeginUpdateResourceA*(pFileName: LPCSTR, bDeleteExistingResources: WINBOOL): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BeginUpdateResourceW*(pFileName: LPCWSTR, bDeleteExistingResources: WINBOOL): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UpdateResourceA*(hUpdate: HANDLE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD, lpData: LPVOID, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UpdateResourceW*(hUpdate: HANDLE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD, lpData: LPVOID, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EndUpdateResourceA*(hUpdate: HANDLE, fDiscard: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EndUpdateResourceW*(hUpdate: HANDLE, fDiscard: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFirmwareEnvironmentVariableExA*(lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFirmwareEnvironmentVariableExW*(lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFirmwareEnvironmentVariableExA*(lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFirmwareEnvironmentVariableExW*(lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFirmwareType*(FirmwareType: PFIRMWARE_TYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsNativeVhdBoot*(NativeVhdBoot: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalAddAtomA*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalAddAtomW*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalAddAtomExA*(lpString: LPCSTR, Flags: DWORD): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalAddAtomExW*(lpString: LPCWSTR, Flags: DWORD): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalFindAtomA*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalFindAtomW*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalGetAtomNameA*(nAtom: ATOM, lpBuffer: LPSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GlobalGetAtomNameW*(nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} +proc lstrlenW*( + lpString: LPCWSTR +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenFile*( + lpFileName: LPCSTR, lpReOpenBuff: LPOFSTRUCT, uStyle: UINT +): HFILE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsTextUnicode*( + lpv: pointer, iSize: int32, lpiResult: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BackupRead*( + hFile: HANDLE, + lpBuffer: LPBYTE, + nNumberOfBytesToRead: DWORD, + lpNumberOfBytesRead: LPDWORD, + bAbort: WINBOOL, + bProcessSecurity: WINBOOL, + lpContext: ptr LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BackupSeek*( + hFile: HANDLE, + dwLowBytesToSeek: DWORD, + dwHighBytesToSeek: DWORD, + lpdwLowByteSeeked: LPDWORD, + lpdwHighByteSeeked: LPDWORD, + lpContext: ptr LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BackupWrite*( + hFile: HANDLE, + lpBuffer: LPBYTE, + nNumberOfBytesToWrite: DWORD, + lpNumberOfBytesWritten: LPDWORD, + bAbort: WINBOOL, + bProcessSecurity: WINBOOL, + lpContext: ptr LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSemaphoreW*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCWSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadLibraryW*( + lpLibFileName: LPCWSTR +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenMutexA*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSemaphoreA*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenSemaphoreA*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateWaitableTimerA*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateWaitableTimerW*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenWaitableTimerA*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileMappingA*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSemaphoreExA*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateWaitableTimerExA*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + lpTimerName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileMappingNumaA*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCSTR, + nndPreferred: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenFileMappingA*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLogicalDriveStringsA*( + nBufferLength: DWORD, lpBuffer: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadLibraryA*( + lpLibFileName: LPCSTR +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LoadPackagedLibrary*( + lpwLibFileName: LPCWSTR, Reserved: DWORD +): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryFullProcessImageNameA*( + hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPSTR, lpdwSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryFullProcessImageNameW*( + hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPWSTR, lpdwSize: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProcessShutdownParameters*( + lpdwLevel: LPDWORD, lpdwFlags: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FatalAppExitA*( + uAction: UINT, lpMessageText: LPCSTR +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FatalAppExitW*( + uAction: UINT, lpMessageText: LPCWSTR +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStartupInfoA*( + lpStartupInfo: LPSTARTUPINFOA +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFirmwareEnvironmentVariableA*( + lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFirmwareEnvironmentVariableW*( + lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFirmwareEnvironmentVariableA*( + lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFirmwareEnvironmentVariableW*( + lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindResourceA*( + hModule: HMODULE, lpName: LPCSTR, lpType: LPCSTR +): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindResourceW*( + hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR +): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindResourceExA*( + hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD +): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceTypesA*( + hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceTypesW*( + hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceNamesA*( + hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumResourceNamesW*( + hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BeginUpdateResourceA*( + pFileName: LPCSTR, bDeleteExistingResources: WINBOOL +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BeginUpdateResourceW*( + pFileName: LPCWSTR, bDeleteExistingResources: WINBOOL +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UpdateResourceA*( + hUpdate: HANDLE, + lpType: LPCSTR, + lpName: LPCSTR, + wLanguage: WORD, + lpData: LPVOID, + cb: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UpdateResourceW*( + hUpdate: HANDLE, + lpType: LPCWSTR, + lpName: LPCWSTR, + wLanguage: WORD, + lpData: LPVOID, + cb: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EndUpdateResourceA*( + hUpdate: HANDLE, fDiscard: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EndUpdateResourceW*( + hUpdate: HANDLE, fDiscard: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFirmwareEnvironmentVariableExA*( + lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFirmwareEnvironmentVariableExW*( + lpName: LPCWSTR, + lpGuid: LPCWSTR, + pBuffer: PVOID, + nSize: DWORD, + pdwAttribubutes: PDWORD, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFirmwareEnvironmentVariableExA*( + lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFirmwareEnvironmentVariableExW*( + lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFirmwareType*( + FirmwareType: PFIRMWARE_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsNativeVhdBoot*( + NativeVhdBoot: PBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalAddAtomA*( + lpString: LPCSTR +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalAddAtomW*( + lpString: LPCWSTR +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalAddAtomExA*( + lpString: LPCSTR, Flags: DWORD +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalAddAtomExW*( + lpString: LPCWSTR, Flags: DWORD +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalFindAtomA*( + lpString: LPCSTR +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalFindAtomW*( + lpString: LPCWSTR +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalGetAtomNameA*( + nAtom: ATOM, lpBuffer: LPSTR, nSize: int32 +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GlobalGetAtomNameW*( + nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32 +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + proc AddAtomA*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} proc AddAtomW*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} proc FindAtomA*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindAtomW*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetAtomNameA*(nAtom: ATOM, lpBuffer: LPSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetAtomNameW*(nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProfileIntA*(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProfileIntW*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProfileStringA*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpDefault: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProfileStringW*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpDefault: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteProfileStringA*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteProfileStringW*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProfileSectionA*(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProfileSectionW*(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteProfileSectionA*(lpAppName: LPCSTR, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteProfileSectionW*(lpAppName: LPCWSTR, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileIntA*(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT, lpFileName: LPCSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileIntW*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT, lpFileName: LPCWSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileStringA*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpDefault: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileStringW*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpDefault: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WritePrivateProfileStringA*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WritePrivateProfileStringW*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileSectionA*(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileSectionW*(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WritePrivateProfileSectionA*(lpAppName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WritePrivateProfileSectionW*(lpAppName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileSectionNamesA*(lpszReturnBuffer: LPSTR, nSize: DWORD, lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileSectionNamesW*(lpszReturnBuffer: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileStructA*(lpszSection: LPCSTR, lpszKey: LPCSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetPrivateProfileStructW*(lpszSection: LPCWSTR, lpszKey: LPCWSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WritePrivateProfileStructA*(lpszSection: LPCSTR, lpszKey: LPCSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WritePrivateProfileStructW*(lpszSection: LPCWSTR, lpszKey: LPCWSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTempPathA*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTempFileNameA*(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: LPSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemWow64DirectoryA*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemWow64DirectoryW*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc Wow64EnableWow64FsRedirection*(Wow64FsEnableRedirection: BOOLEAN): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetDllDirectoryA*(lpPathName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetDllDirectoryW*(lpPathName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDllDirectoryA*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDllDirectoryW*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetSearchPathMode*(Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateDirectoryExA*(lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateDirectoryExW*(lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateDirectoryTransactedA*(lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateDirectoryTransactedW*(lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveDirectoryTransactedA*(lpPathName: LPCSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveDirectoryTransactedW*(lpPathName: LPCWSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFullPathNameTransactedA*(lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFullPathNameTransactedW*(lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DefineDosDeviceA*(dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryDosDeviceA*(lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileTransactedA*(lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE, hTransaction: HANDLE, pusMiniVersion: PUSHORT, lpExtendedParameter: PVOID): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateFileTransactedW*(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE, hTransaction: HANDLE, pusMiniVersion: PUSHORT, lpExtendedParameter: PVOID): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReOpenFile*(hOriginalFile: HANDLE, dwDesiredAccess: DWORD, dwShareMode: DWORD, dwFlagsAndAttributes: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileAttributesTransactedA*(lpFileName: LPCSTR, dwFileAttributes: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileAttributesTransactedW*(lpFileName: LPCWSTR, dwFileAttributes: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileAttributesTransactedA*(lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileAttributesTransactedW*(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCompressedFileSizeA*(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCompressedFileSizeW*(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCompressedFileSizeTransactedA*(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCompressedFileSizeTransactedW*(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteFileTransactedA*(lpFileName: LPCSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteFileTransactedW*(lpFileName: LPCWSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CheckNameLegalDOS8Dot3A*(lpName: LPCSTR, lpOemName: LPSTR, OemNameSize: DWORD, pbNameContainsSpaces: PBOOL, pbNameLegal: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CheckNameLegalDOS8Dot3W*(lpName: LPCWSTR, lpOemName: LPSTR, OemNameSize: DWORD, pbNameContainsSpaces: PBOOL, pbNameLegal: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFileA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFileW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFileExA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFileExW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileTransactedA*(lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD, hTransaction: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileTransactedW*(lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD, hTransaction: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFileTransactedA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFileTransactedW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyFile2*(pwszExistingFileName: PCWSTR, pwszNewFileName: PCWSTR, pExtendedParameters: ptr COPYFILE2_EXTENDED_PARAMETERS): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileExA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileExW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileWithProgressA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileWithProgressW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileTransactedA*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MoveFileTransactedW*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReplaceFileA*(lpReplacedFileName: LPCSTR, lpReplacementFileName: LPCSTR, lpBackupFileName: LPCSTR, dwReplaceFlags: DWORD, lpExclude: LPVOID, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReplaceFileW*(lpReplacedFileName: LPCWSTR, lpReplacementFileName: LPCWSTR, lpBackupFileName: LPCWSTR, dwReplaceFlags: DWORD, lpExclude: LPVOID, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateHardLinkA*(lpFileName: LPCSTR, lpExistingFileName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateHardLinkW*(lpFileName: LPCWSTR, lpExistingFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateHardLinkTransactedA*(lpFileName: LPCSTR, lpExistingFileName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateHardLinkTransactedW*(lpFileName: LPCWSTR, lpExistingFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstStreamW*(lpFileName: LPCWSTR, InfoLevel: STREAM_INFO_LEVELS, lpFindStreamData: LPVOID, dwFlags: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextStreamW*(hFindStream: HANDLE, lpFindStreamData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstStreamTransactedW*(lpFileName: LPCWSTR, InfoLevel: STREAM_INFO_LEVELS, lpFindStreamData: LPVOID, dwFlags: DWORD, hTransaction: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileNameW*(lpFileName: LPCWSTR, dwFlags: DWORD, StringLength: LPDWORD, LinkName: PWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextFileNameW*(hFindStream: HANDLE, StringLength: LPDWORD, LinkName: PWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstFileNameTransactedW*(lpFileName: LPCWSTR, dwFlags: DWORD, StringLength: LPDWORD, LinkName: PWSTR, hTransaction: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeClientComputerNameA*(Pipe: HANDLE, ClientComputerName: LPSTR, ClientComputerNameLength: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeClientProcessId*(Pipe: HANDLE, ClientProcessId: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeClientSessionId*(Pipe: HANDLE, ClientSessionId: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeServerProcessId*(Pipe: HANDLE, ServerProcessId: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeServerSessionId*(Pipe: HANDLE, ServerSessionId: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetFileBandwidthReservation*(hFile: HANDLE, nPeriodMilliseconds: DWORD, nBytesPerPeriod: DWORD, bDiscardable: WINBOOL, lpTransferSize: LPDWORD, lpNumOutstandingRequests: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileBandwidthReservation*(hFile: HANDLE, lpPeriodMilliseconds: LPDWORD, lpBytesPerPeriod: LPDWORD, pDiscardable: LPBOOL, lpTransferSize: LPDWORD, lpNumOutstandingRequests: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateNamedPipeA*(lpName: LPCSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeHandleStateA*(hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPSTR, nMaxUserNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNamedPipeHandleStateW*(hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPWSTR, nMaxUserNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CallNamedPipeA*(lpNamedPipeName: LPCSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CallNamedPipeW*(lpNamedPipeName: LPCWSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WaitNamedPipeA*(lpNamedPipeName: LPCSTR, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetVolumeLabelA*(lpRootPathName: LPCSTR, lpVolumeName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetVolumeLabelW*(lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc FindAtomW*( + lpString: LPCWSTR +): ATOM {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetAtomNameA*( + nAtom: ATOM, lpBuffer: LPSTR, nSize: int32 +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetAtomNameW*( + nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32 +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProfileIntA*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProfileIntW*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProfileStringA*( + lpAppName: LPCSTR, + lpKeyName: LPCSTR, + lpDefault: LPCSTR, + lpReturnedString: LPSTR, + nSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProfileStringW*( + lpAppName: LPCWSTR, + lpKeyName: LPCWSTR, + lpDefault: LPCWSTR, + lpReturnedString: LPWSTR, + nSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteProfileStringA*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteProfileStringW*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProfileSectionA*( + lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetProfileSectionW*( + lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteProfileSectionA*( + lpAppName: LPCSTR, lpString: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteProfileSectionW*( + lpAppName: LPCWSTR, lpString: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileIntA*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT, lpFileName: LPCSTR +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileIntW*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT, lpFileName: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileStringA*( + lpAppName: LPCSTR, + lpKeyName: LPCSTR, + lpDefault: LPCSTR, + lpReturnedString: LPSTR, + nSize: DWORD, + lpFileName: LPCSTR, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileStringW*( + lpAppName: LPCWSTR, + lpKeyName: LPCWSTR, + lpDefault: LPCWSTR, + lpReturnedString: LPWSTR, + nSize: DWORD, + lpFileName: LPCWSTR, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WritePrivateProfileStringA*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WritePrivateProfileStringW*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileSectionA*( + lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileSectionW*( + lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WritePrivateProfileSectionA*( + lpAppName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WritePrivateProfileSectionW*( + lpAppName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileSectionNamesA*( + lpszReturnBuffer: LPSTR, nSize: DWORD, lpFileName: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileSectionNamesW*( + lpszReturnBuffer: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileStructA*( + lpszSection: LPCSTR, + lpszKey: LPCSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetPrivateProfileStructW*( + lpszSection: LPCWSTR, + lpszKey: LPCWSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WritePrivateProfileStructA*( + lpszSection: LPCSTR, + lpszKey: LPCSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WritePrivateProfileStructW*( + lpszSection: LPCWSTR, + lpszKey: LPCWSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTempPathA*( + nBufferLength: DWORD, lpBuffer: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTempFileNameA*( + lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: LPSTR +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemWow64DirectoryA*( + lpBuffer: LPSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemWow64DirectoryW*( + lpBuffer: LPWSTR, uSize: UINT +): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc Wow64EnableWow64FsRedirection*( + Wow64FsEnableRedirection: BOOLEAN +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetDllDirectoryA*( + lpPathName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetDllDirectoryW*( + lpPathName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDllDirectoryA*( + nBufferLength: DWORD, lpBuffer: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDllDirectoryW*( + nBufferLength: DWORD, lpBuffer: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetSearchPathMode*( + Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateDirectoryExA*( + lpTemplateDirectory: LPCSTR, + lpNewDirectory: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateDirectoryExW*( + lpTemplateDirectory: LPCWSTR, + lpNewDirectory: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateDirectoryTransactedA*( + lpTemplateDirectory: LPCSTR, + lpNewDirectory: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateDirectoryTransactedW*( + lpTemplateDirectory: LPCWSTR, + lpNewDirectory: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveDirectoryTransactedA*( + lpPathName: LPCSTR, hTransaction: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveDirectoryTransactedW*( + lpPathName: LPCWSTR, hTransaction: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFullPathNameTransactedA*( + lpFileName: LPCSTR, + nBufferLength: DWORD, + lpBuffer: LPSTR, + lpFilePart: ptr LPSTR, + hTransaction: HANDLE, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFullPathNameTransactedW*( + lpFileName: LPCWSTR, + nBufferLength: DWORD, + lpBuffer: LPWSTR, + lpFilePart: ptr LPWSTR, + hTransaction: HANDLE, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DefineDosDeviceA*( + dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryDosDeviceA*( + lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileTransactedA*( + lpFileName: LPCSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + hTransaction: HANDLE, + pusMiniVersion: PUSHORT, + lpExtendedParameter: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateFileTransactedW*( + lpFileName: LPCWSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + hTransaction: HANDLE, + pusMiniVersion: PUSHORT, + lpExtendedParameter: PVOID, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReOpenFile*( + hOriginalFile: HANDLE, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + dwFlagsAndAttributes: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileAttributesTransactedA*( + lpFileName: LPCSTR, dwFileAttributes: DWORD, hTransaction: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileAttributesTransactedW*( + lpFileName: LPCWSTR, dwFileAttributes: DWORD, hTransaction: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileAttributesTransactedA*( + lpFileName: LPCSTR, + fInfoLevelId: GET_FILEEX_INFO_LEVELS, + lpFileInformation: LPVOID, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileAttributesTransactedW*( + lpFileName: LPCWSTR, + fInfoLevelId: GET_FILEEX_INFO_LEVELS, + lpFileInformation: LPVOID, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCompressedFileSizeA*( + lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCompressedFileSizeW*( + lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCompressedFileSizeTransactedA*( + lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCompressedFileSizeTransactedW*( + lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteFileTransactedA*( + lpFileName: LPCSTR, hTransaction: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteFileTransactedW*( + lpFileName: LPCWSTR, hTransaction: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CheckNameLegalDOS8Dot3A*( + lpName: LPCSTR, + lpOemName: LPSTR, + OemNameSize: DWORD, + pbNameContainsSpaces: PBOOL, + pbNameLegal: PBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CheckNameLegalDOS8Dot3W*( + lpName: LPCWSTR, + lpOemName: LPSTR, + OemNameSize: DWORD, + pbNameContainsSpaces: PBOOL, + pbNameLegal: PBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFileA*( + lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFileW*( + lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFileExA*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFileExW*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileTransactedA*( + lpFileName: LPCSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, + hTransaction: HANDLE, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileTransactedW*( + lpFileName: LPCWSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, + hTransaction: HANDLE, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFileTransactedA*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFileTransactedW*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyFile2*( + pwszExistingFileName: PCWSTR, + pwszNewFileName: PCWSTR, + pExtendedParameters: ptr COPYFILE2_EXTENDED_PARAMETERS, +): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileA*( + lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileW*( + lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileExA*( + lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileExW*( + lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileWithProgressA*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileWithProgressW*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileTransactedA*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MoveFileTransactedW*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReplaceFileA*( + lpReplacedFileName: LPCSTR, + lpReplacementFileName: LPCSTR, + lpBackupFileName: LPCSTR, + dwReplaceFlags: DWORD, + lpExclude: LPVOID, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReplaceFileW*( + lpReplacedFileName: LPCWSTR, + lpReplacementFileName: LPCWSTR, + lpBackupFileName: LPCWSTR, + dwReplaceFlags: DWORD, + lpExclude: LPVOID, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateHardLinkA*( + lpFileName: LPCSTR, + lpExistingFileName: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateHardLinkW*( + lpFileName: LPCWSTR, + lpExistingFileName: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateHardLinkTransactedA*( + lpFileName: LPCSTR, + lpExistingFileName: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateHardLinkTransactedW*( + lpFileName: LPCWSTR, + lpExistingFileName: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstStreamW*( + lpFileName: LPCWSTR, + InfoLevel: STREAM_INFO_LEVELS, + lpFindStreamData: LPVOID, + dwFlags: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextStreamW*( + hFindStream: HANDLE, lpFindStreamData: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstStreamTransactedW*( + lpFileName: LPCWSTR, + InfoLevel: STREAM_INFO_LEVELS, + lpFindStreamData: LPVOID, + dwFlags: DWORD, + hTransaction: HANDLE, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileNameW*( + lpFileName: LPCWSTR, dwFlags: DWORD, StringLength: LPDWORD, LinkName: PWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextFileNameW*( + hFindStream: HANDLE, StringLength: LPDWORD, LinkName: PWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstFileNameTransactedW*( + lpFileName: LPCWSTR, + dwFlags: DWORD, + StringLength: LPDWORD, + LinkName: PWSTR, + hTransaction: HANDLE, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeClientComputerNameA*( + Pipe: HANDLE, ClientComputerName: LPSTR, ClientComputerNameLength: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeClientProcessId*( + Pipe: HANDLE, ClientProcessId: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeClientSessionId*( + Pipe: HANDLE, ClientSessionId: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeServerProcessId*( + Pipe: HANDLE, ServerProcessId: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeServerSessionId*( + Pipe: HANDLE, ServerSessionId: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetFileBandwidthReservation*( + hFile: HANDLE, + nPeriodMilliseconds: DWORD, + nBytesPerPeriod: DWORD, + bDiscardable: WINBOOL, + lpTransferSize: LPDWORD, + lpNumOutstandingRequests: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileBandwidthReservation*( + hFile: HANDLE, + lpPeriodMilliseconds: LPDWORD, + lpBytesPerPeriod: LPDWORD, + pDiscardable: LPBOOL, + lpTransferSize: LPDWORD, + lpNumOutstandingRequests: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateNamedPipeA*( + lpName: LPCSTR, + dwOpenMode: DWORD, + dwPipeMode: DWORD, + nMaxInstances: DWORD, + nOutBufferSize: DWORD, + nInBufferSize: DWORD, + nDefaultTimeOut: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeHandleStateA*( + hNamedPipe: HANDLE, + lpState: LPDWORD, + lpCurInstances: LPDWORD, + lpMaxCollectionCount: LPDWORD, + lpCollectDataTimeout: LPDWORD, + lpUserName: LPSTR, + nMaxUserNameSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNamedPipeHandleStateW*( + hNamedPipe: HANDLE, + lpState: LPDWORD, + lpCurInstances: LPDWORD, + lpMaxCollectionCount: LPDWORD, + lpCollectDataTimeout: LPDWORD, + lpUserName: LPWSTR, + nMaxUserNameSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CallNamedPipeA*( + lpNamedPipeName: LPCSTR, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesRead: LPDWORD, + nTimeOut: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CallNamedPipeW*( + lpNamedPipeName: LPCWSTR, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesRead: LPDWORD, + nTimeOut: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WaitNamedPipeA*( + lpNamedPipeName: LPCSTR, nTimeOut: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetVolumeLabelA*( + lpRootPathName: LPCSTR, lpVolumeName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetVolumeLabelW*( + lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc SetFileApisToOEM*(): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} proc SetFileApisToANSI*(): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} proc AreFileApisANSI*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumeInformationA*(lpRootPathName: LPCSTR, lpVolumeNameBuffer: LPSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPSTR, nFileSystemNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ClearEventLogA*(hEventLog: HANDLE, lpBackupFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ClearEventLogW*(hEventLog: HANDLE, lpBackupFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BackupEventLogA*(hEventLog: HANDLE, lpBackupFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BackupEventLogW*(hEventLog: HANDLE, lpBackupFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CloseEventLog*(hEventLog: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DeregisterEventSource*(hEventLog: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc NotifyChangeEventLog*(hEventLog: HANDLE, hEvent: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetNumberOfEventLogRecords*(hEventLog: HANDLE, NumberOfRecords: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetOldestEventLogRecord*(hEventLog: HANDLE, OldestRecord: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenEventLogA*(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenEventLogW*(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterEventSourceA*(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterEventSourceW*(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenBackupEventLogA*(lpUNCServerName: LPCSTR, lpFileName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenBackupEventLogW*(lpUNCServerName: LPCWSTR, lpFileName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ReadEventLogA*(hEventLog: HANDLE, dwReadFlags: DWORD, dwRecordOffset: DWORD, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, pnBytesRead: ptr DWORD, pnMinNumberOfBytesNeeded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ReadEventLogW*(hEventLog: HANDLE, dwReadFlags: DWORD, dwRecordOffset: DWORD, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, pnBytesRead: ptr DWORD, pnMinNumberOfBytesNeeded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ReportEventA*(hEventLog: HANDLE, wType: WORD, wCategory: WORD, dwEventID: DWORD, lpUserSid: PSID, wNumStrings: WORD, dwDataSize: DWORD, lpStrings: ptr LPCSTR, lpRawData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ReportEventW*(hEventLog: HANDLE, wType: WORD, wCategory: WORD, dwEventID: DWORD, lpUserSid: PSID, wNumStrings: WORD, dwDataSize: DWORD, lpStrings: ptr LPCWSTR, lpRawData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetNamedPipeClientComputerName*(Pipe: HANDLE, ClientComputerName: LPSTR, ClientComputerNameLength: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeClientComputerNameA".} -proc GetEventLogInformation*(hEventLog: HANDLE, dwInfoLevel: DWORD, lpBuffer: LPVOID, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OperationStart*(OperationStartParams: ptr OPERATION_START_PARAMETERS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OperationEnd*(OperationEndParams: ptr OPERATION_END_PARAMETERS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AccessCheckAndAuditAlarmA*(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPSTR, ObjectName: LPSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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: WINBOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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: WINBOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectOpenAuditAlarmA*(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPSTR, ObjectName: LPSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: WINBOOL, AccessGranted: WINBOOL, GenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectPrivilegeAuditAlarmA*(SubsystemName: LPCSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectCloseAuditAlarmA*(SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ObjectDeleteAuditAlarmA*(SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc PrivilegedServiceAuditAlarmA*(SubsystemName: LPCSTR, ServiceName: LPCSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetFileSecurityA*(lpFileName: LPCSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetFileSecurityA*(lpFileName: LPCSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ReadDirectoryChangesW*(hDirectory: HANDLE, lpBuffer: LPVOID, nBufferLength: DWORD, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadReadPtr*(lp: pointer, ucb: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadWritePtr*(lp: LPVOID, ucb: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadHugeReadPtr*(lp: pointer, ucb: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadHugeWritePtr*(lp: LPVOID, ucb: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadCodePtr*(lpfn: FARPROC): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadStringPtrA*(lpsz: LPCSTR, ucchMax: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsBadStringPtrW*(lpsz: LPCWSTR, ucchMax: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MapViewOfFileExNuma*(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T, lpBaseAddress: LPVOID, nndPreferred: DWORD): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddConditionalAce*(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AceType: UCHAR, AccessMask: DWORD, pSid: PSID, ConditionStr: PWCHAR, ReturnLength: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupAccountSidA*(lpSystemName: LPCSTR, Sid: PSID, Name: LPSTR, cchName: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupAccountSidW*(lpSystemName: LPCWSTR, Sid: PSID, Name: LPWSTR, cchName: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupAccountNameA*(lpSystemName: LPCSTR, lpAccountName: LPCSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupAccountNameW*(lpSystemName: LPCWSTR, lpAccountName: LPCWSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupPrivilegeValueA*(lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupPrivilegeValueW*(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupPrivilegeNameA*(lpSystemName: LPCSTR, lpLuid: PLUID, lpName: LPSTR, cchName: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupPrivilegeNameW*(lpSystemName: LPCWSTR, lpLuid: PLUID, lpName: LPWSTR, cchName: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupPrivilegeDisplayNameA*(lpSystemName: LPCSTR, lpName: LPCSTR, lpDisplayName: LPSTR, cchDisplayName: LPDWORD, lpLanguageId: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LookupPrivilegeDisplayNameW*(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpDisplayName: LPWSTR, cchDisplayName: LPDWORD, lpLanguageId: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BuildCommDCBA*(lpDef: LPCSTR, lpDCB: LPDCB): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BuildCommDCBW*(lpDef: LPCWSTR, lpDCB: LPDCB): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BuildCommDCBAndTimeoutsA*(lpDef: LPCSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BuildCommDCBAndTimeoutsW*(lpDef: LPCWSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CommConfigDialogA*(lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CommConfigDialogW*(lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDefaultCommConfigA*(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDefaultCommConfigW*(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetDefaultCommConfigA*(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetDefaultCommConfigW*(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetComputerNameA*(lpBuffer: LPSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetComputerNameW*(lpBuffer: LPWSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetComputerNameA*(lpComputerName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetComputerNameW*(lpComputerName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetComputerNameExA*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCTSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DnsHostnameToComputerNameA*(Hostname: LPCSTR, ComputerName: LPSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DnsHostnameToComputerNameW*(Hostname: LPCWSTR, ComputerName: LPWSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetUserNameA*(lpBuffer: LPSTR, pcbBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetUserNameW*(lpBuffer: LPWSTR, pcbBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LogonUserA*(lpszUsername: LPCSTR, lpszDomain: LPCSTR, lpszPassword: LPCSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LogonUserW*(lpszUsername: LPCWSTR, lpszDomain: LPCWSTR, lpszPassword: LPCWSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LogonUserExA*(lpszUsername: LPCSTR, lpszDomain: LPCSTR, lpszPassword: LPCSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE, ppLogonSid: ptr PSID, ppProfileBuffer: ptr PVOID, pdwProfileLength: LPDWORD, pQuotaLimits: PQUOTA_LIMITS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LogonUserExW*(lpszUsername: LPCWSTR, lpszDomain: LPCWSTR, lpszPassword: LPCWSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE, ppLogonSid: ptr PSID, ppProfileBuffer: ptr PVOID, pdwProfileLength: LPDWORD, pQuotaLimits: PQUOTA_LIMITS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreateProcessAsUserA*(hToken: HANDLE, lpApplicationName: LPCSTR, lpCommandLine: LPSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCSTR, lpStartupInfo: LPSTARTUPINFOA, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreateProcessWithLogonW*(lpUsername: LPCWSTR, lpDomain: LPCWSTR, lpPassword: LPCWSTR, dwLogonFlags: DWORD, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreateProcessWithTokenW*(hToken: HANDLE, dwLogonFlags: DWORD, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc IsTokenUntrusted*(TokenHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterWaitForSingleObject*(phNewWaitObject: PHANDLE, hObject: HANDLE, Callback: WAITORTIMERCALLBACK, Context: PVOID, dwMilliseconds: ULONG, dwFlags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnregisterWait*(WaitHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc BindIoCompletionCallback*(FileHandle: HANDLE, Function: LPOVERLAPPED_COMPLETION_ROUTINE, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetTimerQueueTimer*(TimerQueue: HANDLE, Callback: WAITORTIMERCALLBACK, Parameter: PVOID, DueTime: DWORD, Period: DWORD, PreferIo: WINBOOL): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CancelTimerQueueTimer*(TimerQueue: HANDLE, Timer: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteTimerQueue*(TimerQueue: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreatePrivateNamespaceA*(lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenPrivateNamespaceA*(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateBoundaryDescriptorA*(Name: LPCSTR, Flags: ULONG): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddIntegrityLabelToBoundaryDescriptor*(BoundaryDescriptor: ptr HANDLE, IntegrityLabel: PSID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentHwProfileA*(lpHwProfileInfo: LPHW_PROFILE_INFOA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetCurrentHwProfileW*(lpHwProfileInfo: LPHW_PROFILE_INFOW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc VerifyVersionInfoA*(lpVersionInformation: LPOSVERSIONINFOEXA, dwTypeMask: DWORD, dwlConditionMask: DWORDLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VerifyVersionInfoW*(lpVersionInformation: LPOSVERSIONINFOEXW, dwTypeMask: DWORD, dwlConditionMask: DWORDLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SystemTimeToTzSpecificLocalTime*(lpTimeZoneInformation: ptr TIME_ZONE_INFORMATION, lpUniversalTime: ptr SYSTEMTIME, lpLocalTime: LPSYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TzSpecificLocalTimeToSystemTime*(lpTimeZoneInformation: ptr TIME_ZONE_INFORMATION, lpLocalTime: ptr SYSTEMTIME, lpUniversalTime: LPSYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FileTimeToSystemTime*(lpFileTime: ptr FILETIME, lpSystemTime: LPSYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SystemTimeToFileTime*(lpSystemTime: ptr SYSTEMTIME, lpFileTime: LPFILETIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTimeZoneInformation*(lpTimeZoneInformation: LPTIME_ZONE_INFORMATION): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDynamicTimeZoneInformation*(pTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTimeZoneInformationForYear*(wYear: USHORT, pdtzi: PDYNAMIC_TIME_ZONE_INFORMATION, ptzi: LPTIME_ZONE_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumDynamicTimeZoneInformation*(dwIndex: DWORD, lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetDynamicTimeZoneInformationEffectiveYears*(lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION, FirstYear: LPDWORD, LastYear: LPDWORD): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SystemTimeToTzSpecificLocalTimeEx*(lpTimeZoneInformation: ptr DYNAMIC_TIME_ZONE_INFORMATION, lpUniversalTime: ptr SYSTEMTIME, lpLocalTime: LPSYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TzSpecificLocalTimeToSystemTimeEx*(lpTimeZoneInformation: ptr DYNAMIC_TIME_ZONE_INFORMATION, lpLocalTime: ptr SYSTEMTIME, lpUniversalTime: LPSYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetTimeZoneInformation*(lpTimeZoneInformation: ptr TIME_ZONE_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetDynamicTimeZoneInformation*(lpTimeZoneInformation: ptr DYNAMIC_TIME_ZONE_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemPowerStatus*(lpSystemPowerStatus: LPSYSTEM_POWER_STATUS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetSystemPowerState*(fSuspend: WINBOOL, fForce: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RegisterBadMemoryNotification*(Callback: PBAD_MEMORY_CALLBACK_ROUTINE): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnregisterBadMemoryNotification*(RegistrationHandle: PVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetMemoryErrorHandlingCapabilities*(Capabilities: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AllocateUserPhysicalPages*(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FreeUserPhysicalPages*(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MapUserPhysicalPages*(VirtualAddress: PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MapUserPhysicalPagesScatter*(VirtualAddresses: ptr PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateJobObjectA*(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateJobObjectW*(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenJobObjectA*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenJobObjectW*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AssignProcessToJobObject*(hJob: HANDLE, hProcess: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc TerminateJobObject*(hJob: HANDLE, uExitCode: UINT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryInformationJobObject*(hJob: HANDLE, JobObjectInformationClass: JOBOBJECTINFOCLASS, lpJobObjectInformation: LPVOID, cbJobObjectInformationLength: DWORD, lpReturnLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetInformationJobObject*(hJob: HANDLE, JobObjectInformationClass: JOBOBJECTINFOCLASS, lpJobObjectInformation: LPVOID, cbJobObjectInformationLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateJobSet*(NumJob: ULONG, UserJobSet: PJOB_SET_ARRAY, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstVolumeA*(lpszVolumeName: LPSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextVolumeA*(hFindVolume: HANDLE, lpszVolumeName: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstVolumeMountPointA*(lpszRootPathName: LPCSTR, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindFirstVolumeMountPointW*(lpszRootPathName: LPCWSTR, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextVolumeMountPointA*(hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNextVolumeMountPointW*(hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindVolumeMountPointClose*(hFindVolumeMountPoint: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetVolumeMountPointA*(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetVolumeMountPointW*(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeleteVolumeMountPointA*(lpszVolumeMountPoint: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumeNameForVolumeMountPointA*(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumePathNameA*(lpszFileName: LPCSTR, lpszVolumePathName: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetVolumePathNamesForVolumeNameA*(lpszVolumeName: LPCSTR, lpszVolumePathNames: LPCH, cchBufferLength: DWORD, lpcchReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AllocateUserPhysicalPagesNuma*(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR, nndPreferred: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateActCtxA*(pActCtx: PCACTCTXA): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateActCtxW*(pActCtx: PCACTCTXW): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddRefActCtx*(hActCtx: HANDLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReleaseActCtx*(hActCtx: HANDLE): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ZombifyActCtx*(hActCtx: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ActivateActCtx*(hActCtx: HANDLE, lpCookie: ptr ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DeactivateActCtx*(dwFlags: DWORD, ulCookie: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentActCtx*(lphActCtx: ptr HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindActCtxSectionStringA*(dwFlags: DWORD, lpExtensionGuid: ptr GUID, ulSectionId: ULONG, lpStringToFind: LPCSTR, ReturnedData: PACTCTX_SECTION_KEYED_DATA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindActCtxSectionStringW*(dwFlags: DWORD, lpExtensionGuid: ptr GUID, ulSectionId: ULONG, lpStringToFind: LPCWSTR, ReturnedData: PACTCTX_SECTION_KEYED_DATA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindActCtxSectionGuid*(dwFlags: DWORD, lpExtensionGuid: ptr GUID, ulSectionId: ULONG, lpGuidToFind: ptr GUID, ReturnedData: PACTCTX_SECTION_KEYED_DATA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryActCtxW*(dwFlags: DWORD, hActCtx: HANDLE, pvSubInstance: PVOID, ulInfoClass: ULONG, pvBuffer: PVOID, cbBuffer: SIZE_T, pcbWrittenOrRequired: ptr SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WTSGetActiveConsoleSessionId*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaProcessorNode*(Processor: UCHAR, NodeNumber: PUCHAR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaNodeProcessorMask*(Node: UCHAR, ProcessorMask: PULONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaAvailableMemoryNode*(Node: UCHAR, AvailableBytes: PULONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaProximityNode*(ProximityId: ULONG, NodeNumber: PUCHAR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetActiveProcessorGroupCount*(): WORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetMaximumProcessorGroupCount*(): WORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetActiveProcessorCount*(GroupNumber: WORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetMaximumProcessorCount*(GroupNumber: WORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaNodeNumberFromHandle*(hFile: HANDLE, NodeNumber: PUSHORT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaProcessorNodeEx*(Processor: PPROCESSOR_NUMBER, NodeNumber: PUSHORT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaAvailableMemoryNodeEx*(Node: USHORT, AvailableBytes: PULONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumaProximityNodeEx*(ProximityId: ULONG, NodeNumber: PUSHORT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RegisterApplicationRecoveryCallback*(pRecoveyCallback: APPLICATION_RECOVERY_CALLBACK, pvParameter: PVOID, dwPingInterval: DWORD, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnregisterApplicationRecoveryCallback*(): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RegisterApplicationRestart*(pwzCommandline: PCWSTR, dwFlags: DWORD): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc UnregisterApplicationRestart*(): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetApplicationRecoveryCallback*(hProcess: HANDLE, pRecoveryCallback: ptr APPLICATION_RECOVERY_CALLBACK, ppvParameter: ptr PVOID, pdwPingInterval: PDWORD, pdwFlags: PDWORD): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetApplicationRestartSettings*(hProcess: HANDLE, pwzCommandline: PWSTR, pcchSize: PDWORD, pdwFlags: PDWORD): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ApplicationRecoveryInProgress*(pbCancelled: PBOOL): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ApplicationRecoveryFinished*(bSuccess: WINBOOL): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileInformationByHandleEx*(hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc OpenFileById*(hVolumeHint: HANDLE, lpFileId: LPFILE_ID_DESCRIPTOR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwFlagsAndAttributes: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSymbolicLinkA*(lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSymbolicLinkW*(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSymbolicLinkTransactedA*(lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD, hTransaction: HANDLE): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateSymbolicLinkTransactedW*(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD, hTransaction: HANDLE): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryActCtxSettingsW*(dwFlags: DWORD, hActCtx: HANDLE, settingsNameSpace: PCWSTR, settingName: PCWSTR, pvBuffer: PWSTR, dwBuffer: SIZE_T, pdwWrittenOrRequired: ptr SIZE_T): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReplacePartitionUnit*(TargetPartition: PWSTR, SparePartition: PWSTR, Flags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddSecureMemoryCacheCallback*(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RemoveSecureMemoryCacheCallback*(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CopyContext*(Destination: PCONTEXT, ContextFlags: DWORD, Source: PCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc InitializeContext*(Buffer: PVOID, ContextFlags: DWORD, Context: ptr PCONTEXT, ContextLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnableThreadProfiling*(ThreadHandle: HANDLE, Flags: DWORD, HardwareCounters: DWORD64, PerformanceDataHandle: ptr HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc DisableThreadProfiling*(PerformanceDataHandle: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc QueryThreadProfiling*(ThreadHandle: HANDLE, Enabled: PBOOLEAN): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadThreadProfilingData*(PerformanceDataHandle: HANDLE, Flags: DWORD, PerformanceData: PPERFORMANCE_DATA): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentTime*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetTickCount".} -proc LockSegment*(hMem: HGLOBAL): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalFix".} -proc UnlockSegment*(hMem: HGLOBAL): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalUnfix".} -proc FreeModule*(hLibModule: HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FreeLibrary".} -proc InterlockedPushListSList*(ListHead: PSLIST_HEADER, List: PSLIST_ENTRY, ListEnd: PSLIST_ENTRY, Count: ULONG): PSLIST_ENTRY {.winapi, stdcall, dynlib: "kernel32", importc: "InterlockedPushListSListEx".} -template HasOverlappedIoCompleted*(lpOverlapped: LPOVERLAPPED): bool = lpOverlapped.Internal != STATUS_PENDING -template RtlSecureZeroMemory*(Destination: PVOID, Length: SIZE_T) = zeroMem(Destination, Length) -template SecureZeroMemory*(Destination: PVOID, Length: SIZE_T) = zeroMem(Destination, Length) -template RtlZeroMemory*(Destination: PVOID, Length: SIZE_T) = zeroMem(Destination, Length) -template ZeroMemory*(Destination: PVOID, Length: SIZE_T) = zeroMem(Destination, Length) -template RtlCopyMemory*(Destination: PVOID, Source: PVOID, Length: SIZE_T) = copyMem(Destination, Source, Length) -template CopyMemory*(Destination: PVOID, Source: PVOID, Length: SIZE_T) = copyMem(Destination, Source, Length) -template MAKEINTATOM*(i: untyped): untyped = cast[LPTSTR](i and 0xffff) -proc LocalDiscard*(h: HLOCAL): HLOCAL {.winapi, inline.} = LocalReAlloc(h, 0, LMEM_MOVEABLE) -proc GlobalDiscard*(h: HGLOBAL): HGLOBAL {.winapi, inline.} = GlobalReAlloc(h, 0, GMEM_MOVEABLE) +proc GetVolumeInformationA*( + lpRootPathName: LPCSTR, + lpVolumeNameBuffer: LPSTR, + nVolumeNameSize: DWORD, + lpVolumeSerialNumber: LPDWORD, + lpMaximumComponentLength: LPDWORD, + lpFileSystemFlags: LPDWORD, + lpFileSystemNameBuffer: LPSTR, + nFileSystemNameSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ClearEventLogA*( + hEventLog: HANDLE, lpBackupFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ClearEventLogW*( + hEventLog: HANDLE, lpBackupFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BackupEventLogA*( + hEventLog: HANDLE, lpBackupFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BackupEventLogW*( + hEventLog: HANDLE, lpBackupFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CloseEventLog*( + hEventLog: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DeregisterEventSource*( + hEventLog: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc NotifyChangeEventLog*( + hEventLog: HANDLE, hEvent: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetNumberOfEventLogRecords*( + hEventLog: HANDLE, NumberOfRecords: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetOldestEventLogRecord*( + hEventLog: HANDLE, OldestRecord: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenEventLogA*( + lpUNCServerName: LPCSTR, lpSourceName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenEventLogW*( + lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterEventSourceA*( + lpUNCServerName: LPCSTR, lpSourceName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterEventSourceW*( + lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenBackupEventLogA*( + lpUNCServerName: LPCSTR, lpFileName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenBackupEventLogW*( + lpUNCServerName: LPCWSTR, lpFileName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ReadEventLogA*( + hEventLog: HANDLE, + dwReadFlags: DWORD, + dwRecordOffset: DWORD, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + pnBytesRead: ptr DWORD, + pnMinNumberOfBytesNeeded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ReadEventLogW*( + hEventLog: HANDLE, + dwReadFlags: DWORD, + dwRecordOffset: DWORD, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + pnBytesRead: ptr DWORD, + pnMinNumberOfBytesNeeded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ReportEventA*( + hEventLog: HANDLE, + wType: WORD, + wCategory: WORD, + dwEventID: DWORD, + lpUserSid: PSID, + wNumStrings: WORD, + dwDataSize: DWORD, + lpStrings: ptr LPCSTR, + lpRawData: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ReportEventW*( + hEventLog: HANDLE, + wType: WORD, + wCategory: WORD, + dwEventID: DWORD, + lpUserSid: PSID, + wNumStrings: WORD, + dwDataSize: DWORD, + lpStrings: ptr LPCWSTR, + lpRawData: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetNamedPipeClientComputerName*( + Pipe: HANDLE, ClientComputerName: LPSTR, ClientComputerNameLength: ULONG +): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeClientComputerNameA" +.} + +proc GetEventLogInformation*( + hEventLog: HANDLE, + dwInfoLevel: DWORD, + lpBuffer: LPVOID, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OperationStart*( + OperationStartParams: ptr OPERATION_START_PARAMETERS +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OperationEnd*( + OperationEndParams: ptr OPERATION_END_PARAMETERS +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AccessCheckAndAuditAlarmA*( + SubsystemName: LPCSTR, + HandleId: LPVOID, + ObjectTypeName: LPSTR, + ObjectName: LPSTR, + SecurityDescriptor: PSECURITY_DESCRIPTOR, + DesiredAccess: DWORD, + GenericMapping: PGENERIC_MAPPING, + ObjectCreation: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectOpenAuditAlarmA*( + SubsystemName: LPCSTR, + HandleId: LPVOID, + ObjectTypeName: LPSTR, + ObjectName: LPSTR, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ClientToken: HANDLE, + DesiredAccess: DWORD, + GrantedAccess: DWORD, + Privileges: PPRIVILEGE_SET, + ObjectCreation: WINBOOL, + AccessGranted: WINBOOL, + GenerateOnClose: LPBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectPrivilegeAuditAlarmA*( + SubsystemName: LPCSTR, + HandleId: LPVOID, + ClientToken: HANDLE, + DesiredAccess: DWORD, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectCloseAuditAlarmA*( + SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ObjectDeleteAuditAlarmA*( + SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc PrivilegedServiceAuditAlarmA*( + SubsystemName: LPCSTR, + ServiceName: LPCSTR, + ClientToken: HANDLE, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetFileSecurityA*( + lpFileName: LPCSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetFileSecurityA*( + lpFileName: LPCSTR, + RequestedInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + nLength: DWORD, + lpnLengthNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ReadDirectoryChangesW*( + hDirectory: HANDLE, + lpBuffer: LPVOID, + nBufferLength: DWORD, + bWatchSubtree: WINBOOL, + dwNotifyFilter: DWORD, + lpBytesReturned: LPDWORD, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadReadPtr*( + lp: pointer, ucb: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadWritePtr*( + lp: LPVOID, ucb: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadHugeReadPtr*( + lp: pointer, ucb: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadHugeWritePtr*( + lp: LPVOID, ucb: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadCodePtr*( + lpfn: FARPROC +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadStringPtrA*( + lpsz: LPCSTR, ucchMax: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsBadStringPtrW*( + lpsz: LPCWSTR, ucchMax: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MapViewOfFileExNuma*( + hFileMappingObject: HANDLE, + dwDesiredAccess: DWORD, + dwFileOffsetHigh: DWORD, + dwFileOffsetLow: DWORD, + dwNumberOfBytesToMap: SIZE_T, + lpBaseAddress: LPVOID, + nndPreferred: DWORD, +): LPVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddConditionalAce*( + pAcl: PACL, + dwAceRevision: DWORD, + AceFlags: DWORD, + AceType: UCHAR, + AccessMask: DWORD, + pSid: PSID, + ConditionStr: PWCHAR, + ReturnLength: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupAccountSidA*( + lpSystemName: LPCSTR, + Sid: PSID, + Name: LPSTR, + cchName: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupAccountSidW*( + lpSystemName: LPCWSTR, + Sid: PSID, + Name: LPWSTR, + cchName: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupAccountNameA*( + lpSystemName: LPCSTR, + lpAccountName: LPCSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupAccountNameW*( + lpSystemName: LPCWSTR, + lpAccountName: LPCWSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupPrivilegeValueA*( + lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupPrivilegeValueW*( + lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupPrivilegeNameA*( + lpSystemName: LPCSTR, lpLuid: PLUID, lpName: LPSTR, cchName: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupPrivilegeNameW*( + lpSystemName: LPCWSTR, lpLuid: PLUID, lpName: LPWSTR, cchName: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupPrivilegeDisplayNameA*( + lpSystemName: LPCSTR, + lpName: LPCSTR, + lpDisplayName: LPSTR, + cchDisplayName: LPDWORD, + lpLanguageId: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LookupPrivilegeDisplayNameW*( + lpSystemName: LPCWSTR, + lpName: LPCWSTR, + lpDisplayName: LPWSTR, + cchDisplayName: LPDWORD, + lpLanguageId: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BuildCommDCBA*( + lpDef: LPCSTR, lpDCB: LPDCB +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BuildCommDCBW*( + lpDef: LPCWSTR, lpDCB: LPDCB +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BuildCommDCBAndTimeoutsA*( + lpDef: LPCSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BuildCommDCBAndTimeoutsW*( + lpDef: LPCWSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CommConfigDialogA*( + lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CommConfigDialogW*( + lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDefaultCommConfigA*( + lpszName: LPCSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDefaultCommConfigW*( + lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetDefaultCommConfigA*( + lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetDefaultCommConfigW*( + lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetComputerNameA*( + lpBuffer: LPSTR, nSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetComputerNameW*( + lpBuffer: LPWSTR, nSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetComputerNameA*( + lpComputerName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetComputerNameW*( + lpComputerName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetComputerNameExA*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCTSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DnsHostnameToComputerNameA*( + Hostname: LPCSTR, ComputerName: LPSTR, nSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DnsHostnameToComputerNameW*( + Hostname: LPCWSTR, ComputerName: LPWSTR, nSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetUserNameA*( + lpBuffer: LPSTR, pcbBuffer: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetUserNameW*( + lpBuffer: LPWSTR, pcbBuffer: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LogonUserA*( + lpszUsername: LPCSTR, + lpszDomain: LPCSTR, + lpszPassword: LPCSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LogonUserW*( + lpszUsername: LPCWSTR, + lpszDomain: LPCWSTR, + lpszPassword: LPCWSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LogonUserExA*( + lpszUsername: LPCSTR, + lpszDomain: LPCSTR, + lpszPassword: LPCSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, + ppLogonSid: ptr PSID, + ppProfileBuffer: ptr PVOID, + pdwProfileLength: LPDWORD, + pQuotaLimits: PQUOTA_LIMITS, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LogonUserExW*( + lpszUsername: LPCWSTR, + lpszDomain: LPCWSTR, + lpszPassword: LPCWSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, + ppLogonSid: ptr PSID, + ppProfileBuffer: ptr PVOID, + pdwProfileLength: LPDWORD, + pQuotaLimits: PQUOTA_LIMITS, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreateProcessAsUserA*( + hToken: HANDLE, + lpApplicationName: LPCSTR, + lpCommandLine: LPSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCSTR, + lpStartupInfo: LPSTARTUPINFOA, + lpProcessInformation: LPPROCESS_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreateProcessWithLogonW*( + lpUsername: LPCWSTR, + lpDomain: LPCWSTR, + lpPassword: LPCWSTR, + dwLogonFlags: DWORD, + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFOW, + lpProcessInformation: LPPROCESS_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreateProcessWithTokenW*( + hToken: HANDLE, + dwLogonFlags: DWORD, + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFOW, + lpProcessInformation: LPPROCESS_INFORMATION, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc IsTokenUntrusted*( + TokenHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterWaitForSingleObject*( + phNewWaitObject: PHANDLE, + hObject: HANDLE, + Callback: WAITORTIMERCALLBACK, + Context: PVOID, + dwMilliseconds: ULONG, + dwFlags: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnregisterWait*( + WaitHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc BindIoCompletionCallback*( + FileHandle: HANDLE, Function: LPOVERLAPPED_COMPLETION_ROUTINE, Flags: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetTimerQueueTimer*( + TimerQueue: HANDLE, + Callback: WAITORTIMERCALLBACK, + Parameter: PVOID, + DueTime: DWORD, + Period: DWORD, + PreferIo: WINBOOL, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CancelTimerQueueTimer*( + TimerQueue: HANDLE, Timer: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteTimerQueue*( + TimerQueue: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreatePrivateNamespaceA*( + lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, + lpBoundaryDescriptor: LPVOID, + lpAliasPrefix: LPCSTR, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenPrivateNamespaceA*( + lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateBoundaryDescriptorA*( + Name: LPCSTR, Flags: ULONG +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddIntegrityLabelToBoundaryDescriptor*( + BoundaryDescriptor: ptr HANDLE, IntegrityLabel: PSID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentHwProfileA*( + lpHwProfileInfo: LPHW_PROFILE_INFOA +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetCurrentHwProfileW*( + lpHwProfileInfo: LPHW_PROFILE_INFOW +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc VerifyVersionInfoA*( + lpVersionInformation: LPOSVERSIONINFOEXA, + dwTypeMask: DWORD, + dwlConditionMask: DWORDLONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VerifyVersionInfoW*( + lpVersionInformation: LPOSVERSIONINFOEXW, + dwTypeMask: DWORD, + dwlConditionMask: DWORDLONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SystemTimeToTzSpecificLocalTime*( + lpTimeZoneInformation: ptr TIME_ZONE_INFORMATION, + lpUniversalTime: ptr SYSTEMTIME, + lpLocalTime: LPSYSTEMTIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TzSpecificLocalTimeToSystemTime*( + lpTimeZoneInformation: ptr TIME_ZONE_INFORMATION, + lpLocalTime: ptr SYSTEMTIME, + lpUniversalTime: LPSYSTEMTIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FileTimeToSystemTime*( + lpFileTime: ptr FILETIME, lpSystemTime: LPSYSTEMTIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SystemTimeToFileTime*( + lpSystemTime: ptr SYSTEMTIME, lpFileTime: LPFILETIME +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTimeZoneInformation*( + lpTimeZoneInformation: LPTIME_ZONE_INFORMATION +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDynamicTimeZoneInformation*( + pTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTimeZoneInformationForYear*( + wYear: USHORT, pdtzi: PDYNAMIC_TIME_ZONE_INFORMATION, ptzi: LPTIME_ZONE_INFORMATION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumDynamicTimeZoneInformation*( + dwIndex: DWORD, lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetDynamicTimeZoneInformationEffectiveYears*( + lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION, + FirstYear: LPDWORD, + LastYear: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SystemTimeToTzSpecificLocalTimeEx*( + lpTimeZoneInformation: ptr DYNAMIC_TIME_ZONE_INFORMATION, + lpUniversalTime: ptr SYSTEMTIME, + lpLocalTime: LPSYSTEMTIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TzSpecificLocalTimeToSystemTimeEx*( + lpTimeZoneInformation: ptr DYNAMIC_TIME_ZONE_INFORMATION, + lpLocalTime: ptr SYSTEMTIME, + lpUniversalTime: LPSYSTEMTIME, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetTimeZoneInformation*( + lpTimeZoneInformation: ptr TIME_ZONE_INFORMATION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetDynamicTimeZoneInformation*( + lpTimeZoneInformation: ptr DYNAMIC_TIME_ZONE_INFORMATION +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemPowerStatus*( + lpSystemPowerStatus: LPSYSTEM_POWER_STATUS +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetSystemPowerState*( + fSuspend: WINBOOL, fForce: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RegisterBadMemoryNotification*( + Callback: PBAD_MEMORY_CALLBACK_ROUTINE +): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnregisterBadMemoryNotification*( + RegistrationHandle: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetMemoryErrorHandlingCapabilities*( + Capabilities: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AllocateUserPhysicalPages*( + hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FreeUserPhysicalPages*( + hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MapUserPhysicalPages*( + VirtualAddress: PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MapUserPhysicalPagesScatter*( + VirtualAddresses: ptr PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateJobObjectA*( + lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateJobObjectW*( + lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenJobObjectA*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenJobObjectW*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AssignProcessToJobObject*( + hJob: HANDLE, hProcess: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc TerminateJobObject*( + hJob: HANDLE, uExitCode: UINT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryInformationJobObject*( + hJob: HANDLE, + JobObjectInformationClass: JOBOBJECTINFOCLASS, + lpJobObjectInformation: LPVOID, + cbJobObjectInformationLength: DWORD, + lpReturnLength: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetInformationJobObject*( + hJob: HANDLE, + JobObjectInformationClass: JOBOBJECTINFOCLASS, + lpJobObjectInformation: LPVOID, + cbJobObjectInformationLength: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateJobSet*( + NumJob: ULONG, UserJobSet: PJOB_SET_ARRAY, Flags: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstVolumeA*( + lpszVolumeName: LPSTR, cchBufferLength: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextVolumeA*( + hFindVolume: HANDLE, lpszVolumeName: LPSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstVolumeMountPointA*( + lpszRootPathName: LPCSTR, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindFirstVolumeMountPointW*( + lpszRootPathName: LPCWSTR, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextVolumeMountPointA*( + hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNextVolumeMountPointW*( + hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindVolumeMountPointClose*( + hFindVolumeMountPoint: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetVolumeMountPointA*( + lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetVolumeMountPointW*( + lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeleteVolumeMountPointA*( + lpszVolumeMountPoint: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumeNameForVolumeMountPointA*( + lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumePathNameA*( + lpszFileName: LPCSTR, lpszVolumePathName: LPSTR, cchBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetVolumePathNamesForVolumeNameA*( + lpszVolumeName: LPCSTR, + lpszVolumePathNames: LPCH, + cchBufferLength: DWORD, + lpcchReturnLength: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AllocateUserPhysicalPagesNuma*( + hProcess: HANDLE, + NumberOfPages: PULONG_PTR, + PageArray: PULONG_PTR, + nndPreferred: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateActCtxA*( + pActCtx: PCACTCTXA +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateActCtxW*( + pActCtx: PCACTCTXW +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddRefActCtx*( + hActCtx: HANDLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReleaseActCtx*( + hActCtx: HANDLE +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ZombifyActCtx*( + hActCtx: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ActivateActCtx*( + hActCtx: HANDLE, lpCookie: ptr ULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DeactivateActCtx*( + dwFlags: DWORD, ulCookie: ULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentActCtx*( + lphActCtx: ptr HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindActCtxSectionStringA*( + dwFlags: DWORD, + lpExtensionGuid: ptr GUID, + ulSectionId: ULONG, + lpStringToFind: LPCSTR, + ReturnedData: PACTCTX_SECTION_KEYED_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindActCtxSectionStringW*( + dwFlags: DWORD, + lpExtensionGuid: ptr GUID, + ulSectionId: ULONG, + lpStringToFind: LPCWSTR, + ReturnedData: PACTCTX_SECTION_KEYED_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindActCtxSectionGuid*( + dwFlags: DWORD, + lpExtensionGuid: ptr GUID, + ulSectionId: ULONG, + lpGuidToFind: ptr GUID, + ReturnedData: PACTCTX_SECTION_KEYED_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryActCtxW*( + dwFlags: DWORD, + hActCtx: HANDLE, + pvSubInstance: PVOID, + ulInfoClass: ULONG, + pvBuffer: PVOID, + cbBuffer: SIZE_T, + pcbWrittenOrRequired: ptr SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WTSGetActiveConsoleSessionId*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetNumaProcessorNode*( + Processor: UCHAR, NodeNumber: PUCHAR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaNodeProcessorMask*( + Node: UCHAR, ProcessorMask: PULONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaAvailableMemoryNode*( + Node: UCHAR, AvailableBytes: PULONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaProximityNode*( + ProximityId: ULONG, NodeNumber: PUCHAR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetActiveProcessorGroupCount*(): WORD {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetMaximumProcessorGroupCount*(): WORD {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetActiveProcessorCount*( + GroupNumber: WORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetMaximumProcessorCount*( + GroupNumber: WORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaNodeNumberFromHandle*( + hFile: HANDLE, NodeNumber: PUSHORT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaProcessorNodeEx*( + Processor: PPROCESSOR_NUMBER, NodeNumber: PUSHORT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaAvailableMemoryNodeEx*( + Node: USHORT, AvailableBytes: PULONGLONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumaProximityNodeEx*( + ProximityId: ULONG, NodeNumber: PUSHORT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RegisterApplicationRecoveryCallback*( + pRecoveyCallback: APPLICATION_RECOVERY_CALLBACK, + pvParameter: PVOID, + dwPingInterval: DWORD, + dwFlags: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnregisterApplicationRecoveryCallback*(): HRESULT {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc RegisterApplicationRestart*( + pwzCommandline: PCWSTR, dwFlags: DWORD +): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc UnregisterApplicationRestart*(): HRESULT {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetApplicationRecoveryCallback*( + hProcess: HANDLE, + pRecoveryCallback: ptr APPLICATION_RECOVERY_CALLBACK, + ppvParameter: ptr PVOID, + pdwPingInterval: PDWORD, + pdwFlags: PDWORD, +): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetApplicationRestartSettings*( + hProcess: HANDLE, pwzCommandline: PWSTR, pcchSize: PDWORD, pdwFlags: PDWORD +): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ApplicationRecoveryInProgress*( + pbCancelled: PBOOL +): HRESULT {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ApplicationRecoveryFinished*( + bSuccess: WINBOOL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileInformationByHandleEx*( + hFile: HANDLE, + FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, + lpFileInformation: LPVOID, + dwBufferSize: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc OpenFileById*( + hVolumeHint: HANDLE, + lpFileId: LPFILE_ID_DESCRIPTOR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwFlagsAndAttributes: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSymbolicLinkA*( + lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSymbolicLinkW*( + lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSymbolicLinkTransactedA*( + lpSymlinkFileName: LPCSTR, + lpTargetFileName: LPCSTR, + dwFlags: DWORD, + hTransaction: HANDLE, +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateSymbolicLinkTransactedW*( + lpSymlinkFileName: LPCWSTR, + lpTargetFileName: LPCWSTR, + dwFlags: DWORD, + hTransaction: HANDLE, +): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryActCtxSettingsW*( + dwFlags: DWORD, + hActCtx: HANDLE, + settingsNameSpace: PCWSTR, + settingName: PCWSTR, + pvBuffer: PWSTR, + dwBuffer: SIZE_T, + pdwWrittenOrRequired: ptr SIZE_T, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReplacePartitionUnit*( + TargetPartition: PWSTR, SparePartition: PWSTR, Flags: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddSecureMemoryCacheCallback*( + pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RemoveSecureMemoryCacheCallback*( + pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CopyContext*( + Destination: PCONTEXT, ContextFlags: DWORD, Source: PCONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc InitializeContext*( + Buffer: PVOID, ContextFlags: DWORD, Context: ptr PCONTEXT, ContextLength: PDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnableThreadProfiling*( + ThreadHandle: HANDLE, + Flags: DWORD, + HardwareCounters: DWORD64, + PerformanceDataHandle: ptr HANDLE, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc DisableThreadProfiling*( + PerformanceDataHandle: HANDLE +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc QueryThreadProfiling*( + ThreadHandle: HANDLE, Enabled: PBOOLEAN +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadThreadProfilingData*( + PerformanceDataHandle: HANDLE, Flags: DWORD, PerformanceData: PPERFORMANCE_DATA +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentTime*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetTickCount" +.} + +proc LockSegment*( + hMem: HGLOBAL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalFix".} + +proc UnlockSegment*( + hMem: HGLOBAL +): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalUnfix".} + +proc FreeModule*( + hLibModule: HMODULE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FreeLibrary".} + +proc InterlockedPushListSList*( + ListHead: PSLIST_HEADER, List: PSLIST_ENTRY, ListEnd: PSLIST_ENTRY, Count: ULONG +): PSLIST_ENTRY {. + winapi, stdcall, dynlib: "kernel32", importc: "InterlockedPushListSListEx" +.} + +template HasOverlappedIoCompleted*(lpOverlapped: LPOVERLAPPED): bool = + lpOverlapped.Internal != STATUS_PENDING + +template RtlSecureZeroMemory*(Destination: PVOID, Length: SIZE_T) = + zeroMem(Destination, Length) + +template SecureZeroMemory*(Destination: PVOID, Length: SIZE_T) = + zeroMem(Destination, Length) + +template RtlZeroMemory*(Destination: PVOID, Length: SIZE_T) = + zeroMem(Destination, Length) + +template ZeroMemory*(Destination: PVOID, Length: SIZE_T) = + zeroMem(Destination, Length) + +template RtlCopyMemory*(Destination: PVOID, Source: PVOID, Length: SIZE_T) = + copyMem(Destination, Source, Length) + +template CopyMemory*(Destination: PVOID, Source: PVOID, Length: SIZE_T) = + copyMem(Destination, Source, Length) + +template MAKEINTATOM*(i: untyped): untyped = + cast[LPTSTR](i and 0xffff) + +proc LocalDiscard*(h: HLOCAL): HLOCAL {.winapi, inline.} = + LocalReAlloc(h, 0, LMEM_MOVEABLE) + +proc GlobalDiscard*(h: HGLOBAL): HGLOBAL {.winapi, inline.} = + GlobalReAlloc(h, 0, GMEM_MOVEABLE) + when winimAnsi: - proc LookupAccountName*(lpSystemName: LPCSTR, lpAccountName: LPCSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountNameA".} -proc LookupAccountNameLocalA*(lpAccountName: LPCSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountNameA(nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) + proc LookupAccountName*( + lpSystemName: LPCSTR, + lpAccountName: LPCSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountNameA".} + +proc LookupAccountNameLocalA*( + lpAccountName: LPCSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, inline.} = + LookupAccountNameA( + nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse + ) + when winimUnicode: - proc LookupAccountName*(lpSystemName: LPCWSTR, lpAccountName: LPCWSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountNameW".} -proc LookupAccountNameLocalW*(lpAccountName: LPCWSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountNameW(nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) + proc LookupAccountName*( + lpSystemName: LPCWSTR, + lpAccountName: LPCWSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountNameW".} + +proc LookupAccountNameLocalW*( + lpAccountName: LPCWSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, inline.} = + LookupAccountNameW( + nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse + ) + when winimAnsi: - proc LookupAccountSid*(lpSystemName: LPCSTR, Sid: PSID, Name: LPSTR, cchName: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountSidA".} -proc LookupAccountSidLocalA*(Sid: PSID, Name: LPSTR, cchName: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountSidA(nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse) + proc LookupAccountSid*( + lpSystemName: LPCSTR, + Sid: PSID, + Name: LPSTR, + cchName: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountSidA".} + +proc LookupAccountSidLocalA*( + Sid: PSID, + Name: LPSTR, + cchName: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, inline.} = + LookupAccountSidA( + nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse + ) + when winimUnicode: - proc LookupAccountSid*(lpSystemName: LPCWSTR, Sid: PSID, Name: LPWSTR, cchName: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountSidW".} -proc LookupAccountSidLocalW*(Sid: PSID, Name: LPWSTR, cchName: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountSidW(nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse) -proc InterlockedOr*(Destination: ptr LONG, Value: LONG): LONG {.importc: "InterlockedOr", header: "".} -proc InterlockedOr8*(Destination: ptr byte, Value: byte): byte {.importc: "InterlockedOr8", header: "".} -proc InterlockedOr16*(Destination: ptr SHORT, Value: SHORT): SHORT {.importc: "InterlockedOr16", header: "".} -proc InterlockedOr64*(Destination: ptr LONGLONG, Value: LONGLONG): LONGLONG {.importc: "InterlockedOr64", header: "".} -proc InterlockedXor*(Destination: ptr LONG, Value: LONG): LONG {.importc: "InterlockedXor", header: "".} -proc InterlockedXor8*(Destination: ptr byte, Value: byte): byte {.importc: "InterlockedXor8", header: "".} -proc InterlockedXor16*(Destination: ptr SHORT, Value: SHORT): SHORT {.importc: "InterlockedXor16", header: "".} -proc InterlockedXor64*(Destination: ptr LONGLONG, Value: LONGLONG): LONGLONG {.importc: "InterlockedXor64", header: "".} -proc InterlockedAnd*(Destination: ptr LONG, Value: LONG): LONG {.importc: "InterlockedAnd", header: "".} -proc InterlockedAnd8*(Destination: ptr byte, Value: byte): byte {.importc: "InterlockedAnd8", header: "".} -proc InterlockedAnd16*(Destination: ptr SHORT, Value: SHORT): SHORT {.importc: "InterlockedAnd16", header: "".} -proc InterlockedAnd64*(Destination: ptr LONGLONG, Value: LONGLONG): LONGLONG {.importc: "InterlockedAnd64", header: "".} -proc InterlockedIncrement64*(Addend: ptr LONGLONG): LONGLONG {.importc: "InterlockedIncrement64", header: "".} -proc InterlockedDecrement64*(Addend: ptr LONGLONG): LONGLONG {.importc: "InterlockedDecrement64", header: "".} -proc InterlockedExchange64*(Target: ptr LONGLONG, Value: LONGLONG): LONGLONG {.importc: "InterlockedExchange64", header: "".} -proc InterlockedExchangeAdd64*(Addend: ptr LONGLONG, Value: LONGLONG): LONGLONG {.importc: "InterlockedExchangeAdd64", header: "".} -proc InterlockedCompareExchange64*(Destination: ptr LONGLONG, ExChange: LONGLONG, Comperand: LONGLONG): LONGLONG {.importc: "InterlockedCompareExchange64", header: "".} -proc InterlockedCompare64Exchange128*(Destination: ptr LONG64, ExchangeHigh: LONG64, ExchangeLow: LONG64, Comperand: LONG64): LONG64 {.importc: "InterlockedCompare64Exchange128", header: "".} -proc InterlockedIncrement*(Addend: ptr LONG): LONG {.importc: "InterlockedIncrement", header: "".} -proc InterlockedDecrement*(Addend: ptr LONG): LONG {.importc: "InterlockedDecrement", header: "".} -proc InterlockedExchange*(Target: ptr LONG, Value: LONG): LONG {.importc: "InterlockedExchange", header: "".} -proc InterlockedExchangeAdd*(Addend: ptr LONG, Value: LONG): LONG {.importc: "InterlockedExchangeAdd", header: "".} -proc InterlockedCompareExchange*(Destination: ptr LONG, ExChange: LONG, Comperand: LONG): LONG {.importc: "InterlockedCompareExchange", header: "".} -proc InterlockedExchangePointer*(Target: ptr PVOID, Value: PVOID): PVOID {.importc: "InterlockedExchangePointer", header: "".} -proc InterlockedCompareExchangePointer*(Destination: ptr PVOID, ExChange: PVOID, Comperand: PVOID): PVOID {.importc: "InterlockedCompareExchangePointer", header: "".} -proc `Offset=`*(self: var OVERLAPPED, x: DWORD) {.inline.} = self.union1.struct1.Offset = x -proc Offset*(self: OVERLAPPED): DWORD {.inline.} = self.union1.struct1.Offset -proc Offset*(self: var OVERLAPPED): var DWORD {.inline.} = self.union1.struct1.Offset -proc `OffsetHigh=`*(self: var OVERLAPPED, x: DWORD) {.inline.} = self.union1.struct1.OffsetHigh = x -proc OffsetHigh*(self: OVERLAPPED): DWORD {.inline.} = self.union1.struct1.OffsetHigh -proc OffsetHigh*(self: var OVERLAPPED): var DWORD {.inline.} = self.union1.struct1.OffsetHigh -proc `Pointer=`*(self: var OVERLAPPED, x: PVOID) {.inline.} = self.union1.Pointer = x -proc Pointer*(self: OVERLAPPED): PVOID {.inline.} = self.union1.Pointer -proc Pointer*(self: var OVERLAPPED): var PVOID {.inline.} = self.union1.Pointer -proc `Block=`*(self: var PROCESS_HEAP_ENTRY, x: PROCESS_HEAP_ENTRY_UNION1_Block) {.inline.} = self.union1.Block = x -proc Block*(self: PROCESS_HEAP_ENTRY): PROCESS_HEAP_ENTRY_UNION1_Block {.inline.} = self.union1.Block -proc Block*(self: var PROCESS_HEAP_ENTRY): var PROCESS_HEAP_ENTRY_UNION1_Block {.inline.} = self.union1.Block -proc `Region=`*(self: var PROCESS_HEAP_ENTRY, x: PROCESS_HEAP_ENTRY_UNION1_Region) {.inline.} = self.union1.Region = x -proc Region*(self: PROCESS_HEAP_ENTRY): PROCESS_HEAP_ENTRY_UNION1_Region {.inline.} = self.union1.Region -proc Region*(self: var PROCESS_HEAP_ENTRY): var PROCESS_HEAP_ENTRY_UNION1_Region {.inline.} = self.union1.Region -proc `dwOemId=`*(self: var SYSTEM_INFO, x: DWORD) {.inline.} = self.union1.dwOemId = x -proc dwOemId*(self: SYSTEM_INFO): DWORD {.inline.} = self.union1.dwOemId -proc dwOemId*(self: var SYSTEM_INFO): var DWORD {.inline.} = self.union1.dwOemId -proc `wProcessorArchitecture=`*(self: var SYSTEM_INFO, x: WORD) {.inline.} = self.union1.struct1.wProcessorArchitecture = x -proc wProcessorArchitecture*(self: SYSTEM_INFO): WORD {.inline.} = self.union1.struct1.wProcessorArchitecture -proc wProcessorArchitecture*(self: var SYSTEM_INFO): var WORD {.inline.} = self.union1.struct1.wProcessorArchitecture -proc `wReserved=`*(self: var SYSTEM_INFO, x: WORD) {.inline.} = self.union1.struct1.wReserved = x -proc wReserved*(self: SYSTEM_INFO): WORD {.inline.} = self.union1.struct1.wReserved -proc wReserved*(self: var SYSTEM_INFO): var WORD {.inline.} = self.union1.struct1.wReserved -proc `FileId=`*(self: var FILE_ID_DESCRIPTOR, x: LARGE_INTEGER) {.inline.} = self.union1.FileId = x -proc FileId*(self: FILE_ID_DESCRIPTOR): LARGE_INTEGER {.inline.} = self.union1.FileId -proc FileId*(self: var FILE_ID_DESCRIPTOR): var LARGE_INTEGER {.inline.} = self.union1.FileId -proc `ObjectId=`*(self: var FILE_ID_DESCRIPTOR, x: GUID) {.inline.} = self.union1.ObjectId = x -proc objectId*(self: FILE_ID_DESCRIPTOR): GUID {.inline.} = self.union1.ObjectId -proc objectId*(self: var FILE_ID_DESCRIPTOR): var GUID {.inline.} = self.union1.ObjectId -proc `ExtendedFileId=`*(self: var FILE_ID_DESCRIPTOR, x: FILE_ID_128) {.inline.} = self.union1.ExtendedFileId = x -proc ExtendedFileId*(self: FILE_ID_DESCRIPTOR): FILE_ID_128 {.inline.} = self.union1.ExtendedFileId -proc ExtendedFileId*(self: var FILE_ID_DESCRIPTOR): var FILE_ID_128 {.inline.} = self.union1.ExtendedFileId + proc LookupAccountSid*( + lpSystemName: LPCWSTR, + Sid: PSID, + Name: LPWSTR, + cchName: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupAccountSidW".} + +proc LookupAccountSidLocalW*( + Sid: PSID, + Name: LPWSTR, + cchName: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, +): WINBOOL {.winapi, inline.} = + LookupAccountSidW( + nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse + ) + +proc InterlockedOr*( + Destination: ptr LONG, Value: LONG +): LONG {.importc: "InterlockedOr", header: "".} + +proc InterlockedOr8*( + Destination: ptr byte, Value: byte +): byte {.importc: "InterlockedOr8", header: "".} + +proc InterlockedOr16*( + Destination: ptr SHORT, Value: SHORT +): SHORT {.importc: "InterlockedOr16", header: "".} + +proc InterlockedOr64*( + Destination: ptr LONGLONG, Value: LONGLONG +): LONGLONG {.importc: "InterlockedOr64", header: "".} + +proc InterlockedXor*( + Destination: ptr LONG, Value: LONG +): LONG {.importc: "InterlockedXor", header: "".} + +proc InterlockedXor8*( + Destination: ptr byte, Value: byte +): byte {.importc: "InterlockedXor8", header: "".} + +proc InterlockedXor16*( + Destination: ptr SHORT, Value: SHORT +): SHORT {.importc: "InterlockedXor16", header: "".} + +proc InterlockedXor64*( + Destination: ptr LONGLONG, Value: LONGLONG +): LONGLONG {.importc: "InterlockedXor64", header: "".} + +proc InterlockedAnd*( + Destination: ptr LONG, Value: LONG +): LONG {.importc: "InterlockedAnd", header: "".} + +proc InterlockedAnd8*( + Destination: ptr byte, Value: byte +): byte {.importc: "InterlockedAnd8", header: "".} + +proc InterlockedAnd16*( + Destination: ptr SHORT, Value: SHORT +): SHORT {.importc: "InterlockedAnd16", header: "".} + +proc InterlockedAnd64*( + Destination: ptr LONGLONG, Value: LONGLONG +): LONGLONG {.importc: "InterlockedAnd64", header: "".} + +proc InterlockedIncrement64*( + Addend: ptr LONGLONG +): LONGLONG {.importc: "InterlockedIncrement64", header: "".} + +proc InterlockedDecrement64*( + Addend: ptr LONGLONG +): LONGLONG {.importc: "InterlockedDecrement64", header: "".} + +proc InterlockedExchange64*( + Target: ptr LONGLONG, Value: LONGLONG +): LONGLONG {.importc: "InterlockedExchange64", header: "".} + +proc InterlockedExchangeAdd64*( + Addend: ptr LONGLONG, Value: LONGLONG +): LONGLONG {.importc: "InterlockedExchangeAdd64", header: "".} + +proc InterlockedCompareExchange64*( + Destination: ptr LONGLONG, ExChange: LONGLONG, Comperand: LONGLONG +): LONGLONG {.importc: "InterlockedCompareExchange64", header: "".} + +proc InterlockedCompare64Exchange128*( + Destination: ptr LONG64, ExchangeHigh: LONG64, ExchangeLow: LONG64, Comperand: LONG64 +): LONG64 {.importc: "InterlockedCompare64Exchange128", header: "".} + +proc InterlockedIncrement*( + Addend: ptr LONG +): LONG {.importc: "InterlockedIncrement", header: "".} + +proc InterlockedDecrement*( + Addend: ptr LONG +): LONG {.importc: "InterlockedDecrement", header: "".} + +proc InterlockedExchange*( + Target: ptr LONG, Value: LONG +): LONG {.importc: "InterlockedExchange", header: "".} + +proc InterlockedExchangeAdd*( + Addend: ptr LONG, Value: LONG +): LONG {.importc: "InterlockedExchangeAdd", header: "".} + +proc InterlockedCompareExchange*( + Destination: ptr LONG, ExChange: LONG, Comperand: LONG +): LONG {.importc: "InterlockedCompareExchange", header: "".} + +proc InterlockedExchangePointer*( + Target: ptr PVOID, Value: PVOID +): PVOID {.importc: "InterlockedExchangePointer", header: "".} + +proc InterlockedCompareExchangePointer*( + Destination: ptr PVOID, ExChange: PVOID, Comperand: PVOID +): PVOID {.importc: "InterlockedCompareExchangePointer", header: "".} + +proc `Offset=`*(self: var OVERLAPPED, x: DWORD) {.inline.} = + self.union1.struct1.Offset = x + +proc Offset*(self: OVERLAPPED): DWORD {.inline.} = + self.union1.struct1.Offset + +proc Offset*(self: var OVERLAPPED): var DWORD {.inline.} = + self.union1.struct1.Offset + +proc `OffsetHigh=`*(self: var OVERLAPPED, x: DWORD) {.inline.} = + self.union1.struct1.OffsetHigh = x + +proc OffsetHigh*(self: OVERLAPPED): DWORD {.inline.} = + self.union1.struct1.OffsetHigh + +proc OffsetHigh*(self: var OVERLAPPED): var DWORD {.inline.} = + self.union1.struct1.OffsetHigh + +proc `Pointer=`*(self: var OVERLAPPED, x: PVOID) {.inline.} = + self.union1.Pointer = x + +proc Pointer*(self: OVERLAPPED): PVOID {.inline.} = + self.union1.Pointer + +proc Pointer*(self: var OVERLAPPED): var PVOID {.inline.} = + self.union1.Pointer + +proc `Block=`*( + self: var PROCESS_HEAP_ENTRY, x: PROCESS_HEAP_ENTRY_UNION1_Block +) {.inline.} = + self.union1.Block = x + +proc Block*(self: PROCESS_HEAP_ENTRY): PROCESS_HEAP_ENTRY_UNION1_Block {.inline.} = + self.union1.Block + +proc Block*( + self: var PROCESS_HEAP_ENTRY +): var PROCESS_HEAP_ENTRY_UNION1_Block {.inline.} = + self.union1.Block + +proc `Region=`*( + self: var PROCESS_HEAP_ENTRY, x: PROCESS_HEAP_ENTRY_UNION1_Region +) {.inline.} = + self.union1.Region = x + +proc Region*(self: PROCESS_HEAP_ENTRY): PROCESS_HEAP_ENTRY_UNION1_Region {.inline.} = + self.union1.Region + +proc Region*( + self: var PROCESS_HEAP_ENTRY +): var PROCESS_HEAP_ENTRY_UNION1_Region {.inline.} = + self.union1.Region + +proc `dwOemId=`*(self: var SYSTEM_INFO, x: DWORD) {.inline.} = + self.union1.dwOemId = x + +proc dwOemId*(self: SYSTEM_INFO): DWORD {.inline.} = + self.union1.dwOemId + +proc dwOemId*(self: var SYSTEM_INFO): var DWORD {.inline.} = + self.union1.dwOemId + +proc `wProcessorArchitecture=`*(self: var SYSTEM_INFO, x: WORD) {.inline.} = + self.union1.struct1.wProcessorArchitecture = x + +proc wProcessorArchitecture*(self: SYSTEM_INFO): WORD {.inline.} = + self.union1.struct1.wProcessorArchitecture + +proc wProcessorArchitecture*(self: var SYSTEM_INFO): var WORD {.inline.} = + self.union1.struct1.wProcessorArchitecture + +proc `wReserved=`*(self: var SYSTEM_INFO, x: WORD) {.inline.} = + self.union1.struct1.wReserved = x + +proc wReserved*(self: SYSTEM_INFO): WORD {.inline.} = + self.union1.struct1.wReserved + +proc wReserved*(self: var SYSTEM_INFO): var WORD {.inline.} = + self.union1.struct1.wReserved + +proc `FileId=`*(self: var FILE_ID_DESCRIPTOR, x: LARGE_INTEGER) {.inline.} = + self.union1.FileId = x + +proc FileId*(self: FILE_ID_DESCRIPTOR): LARGE_INTEGER {.inline.} = + self.union1.FileId + +proc FileId*(self: var FILE_ID_DESCRIPTOR): var LARGE_INTEGER {.inline.} = + self.union1.FileId + +proc `ObjectId=`*(self: var FILE_ID_DESCRIPTOR, x: GUID) {.inline.} = + self.union1.ObjectId = x + +proc objectId*(self: FILE_ID_DESCRIPTOR): GUID {.inline.} = + self.union1.ObjectId + +proc objectId*(self: var FILE_ID_DESCRIPTOR): var GUID {.inline.} = + self.union1.ObjectId + +proc `ExtendedFileId=`*(self: var FILE_ID_DESCRIPTOR, x: FILE_ID_128) {.inline.} = + self.union1.ExtendedFileId = x + +proc ExtendedFileId*(self: FILE_ID_DESCRIPTOR): FILE_ID_128 {.inline.} = + self.union1.ExtendedFileId + +proc ExtendedFileId*(self: var FILE_ID_DESCRIPTOR): var FILE_ID_128 {.inline.} = + self.union1.ExtendedFileId + when winimUnicode: type WIN32_FIND_DATA* = WIN32_FIND_DATAW @@ -2868,214 +7744,1272 @@ ACTCTX* = ACTCTXW PACTCTX* = PACTCTXW PCACTCTX* = PCACTCTXW + const GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A* = GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W* = GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T* = GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T - proc DefineDosDevice*(dwFlags: DWORD, lpDeviceName: LPCWSTR, lpTargetPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DefineDosDeviceW".} - proc DeleteVolumeMountPoint*(lpszVolumeMountPoint: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteVolumeMountPointW".} - proc FindFirstVolume*(lpszVolumeName: LPWSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeW".} - proc FindNextVolume*(hFindVolume: HANDLE, lpszVolumeName: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeW".} - proc GetLogicalDriveStrings*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLogicalDriveStringsW".} - proc GetShortPathName*(lpszLongPath: LPCWSTR, lpszShortPath: LPWSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetShortPathNameW".} - proc GetTempFileName*(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: LPWSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempFileNameW".} - proc GetVolumeInformation*(lpRootPathName: LPCWSTR, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeInformationW".} - proc GetVolumePathName*(lpszFileName: LPCWSTR, lpszVolumePathName: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNameW".} - proc QueryDosDevice*(lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "QueryDosDeviceW".} - proc GetVolumeNameForVolumeMountPoint*(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeNameForVolumeMountPointW".} - proc GetVolumePathNamesForVolumeName*(lpszVolumeName: LPCWSTR, lpszVolumePathNames: LPWCH, cchBufferLength: DWORD, lpcchReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNamesForVolumeNameW".} - proc GetTempPath*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempPathW".} - proc FindResourceEx*(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceExW".} - proc CreateFileMapping*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingW".} - proc OpenFileMapping*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenFileMappingW".} - proc CreateFileMappingNuma*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR, nndPreferred: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingNumaW".} - proc CreateNamedPipe*(lpName: LPCWSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateNamedPipeW".} - proc WaitNamedPipe*(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WaitNamedPipeW".} - proc GetNamedPipeClientComputerName*(Pipe: HANDLE, ClientComputerName: LPWSTR, ClientComputerNameLength: ULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeClientComputerNameW".} - proc CreatePrivateNamespace*(lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreatePrivateNamespaceW".} - proc CreateBoundaryDescriptor*(Name: LPCWSTR, Flags: ULONG): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateBoundaryDescriptorW".} - proc GetEnvironmentStrings*(): LPWCH {.winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentStringsW".} - proc SetEnvironmentStrings*(NewEnvironment: LPWCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentStringsW".} - proc GetStartupInfo*(lpStartupInfo: LPSTARTUPINFOW): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GetStartupInfoW".} - proc CreateProcessAsUser*(hToken: HANDLE, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CreateProcessAsUserW".} - proc AccessCheckAndAuditAlarm*(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckAndAuditAlarmW".} - proc AccessCheckByTypeAndAuditAlarm*(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: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeAndAuditAlarmW".} - proc AccessCheckByTypeResultListAndAuditAlarm*(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: WINBOOL, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeResultListAndAuditAlarmW".} - proc AccessCheckByTypeResultListAndAuditAlarmByHandle*(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: WINBOOL, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeResultListAndAuditAlarmByHandleW".} - proc GetFileSecurity*(lpFileName: LPCWSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetFileSecurityW".} - proc ObjectCloseAuditAlarm*(SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectCloseAuditAlarmW".} - proc ObjectDeleteAuditAlarm*(SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectDeleteAuditAlarmW".} - proc ObjectOpenAuditAlarm*(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: WINBOOL, AccessGranted: WINBOOL, GenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectOpenAuditAlarmW".} - proc ObjectPrivilegeAuditAlarm*(SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectPrivilegeAuditAlarmW".} - proc PrivilegedServiceAuditAlarm*(SubsystemName: LPCWSTR, ServiceName: LPCWSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "PrivilegedServiceAuditAlarmW".} - proc SetFileSecurity*(lpFileName: LPCWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "SetFileSecurityW".} - proc CreateSemaphoreEx*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreExW".} - proc OpenMutex*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenMutexW".} - proc OpenSemaphore*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenSemaphoreW".} - proc CreateWaitableTimerEx*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerExW".} - proc OpenWaitableTimer*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenWaitableTimerW".} - proc SetComputerNameEx*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameExW".} - proc OutputDebugString*(lpOutputString: LPCWSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "OutputDebugStringW".} - proc CreateFile*(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileW".} - proc FindFirstChangeNotification*(lpPathName: LPCWSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstChangeNotificationW".} - proc FindFirstFile*(lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileW".} - proc GetDiskFreeSpace*(lpRootPathName: LPCWSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD, lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceW".} - proc GetDriveType*(lpRootPathName: LPCWSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetDriveTypeW".} - proc GetFileAttributes*(lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesW".} - proc GetFullPathName*(lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameW".} - proc GetLongPathName*(lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameW".} - proc GetFinalPathNameByHandle*(hFile: HANDLE, lpszFilePath: LPWSTR, cchFilePath: DWORD, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFinalPathNameByHandleW".} - proc CreateDirectory*(lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryW".} - proc DeleteFile*(lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileW".} - proc FindFirstFileEx*(lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileExW".} - proc FindNextFile*(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextFileW".} - proc GetDiskFreeSpaceEx*(lpDirectoryName: LPCWSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER, lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceExW".} - proc GetFileAttributesEx*(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesExW".} - proc RemoveDirectory*(lpPathName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryW".} - proc SetFileAttributes*(lpFileName: LPCWSTR, dwFileAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesW".} - proc GetModuleHandleEx*(dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ptr HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleExW".} - proc LoadString*(hInstance: HINSTANCE, uID: UINT, lpBuffer: LPWSTR, cchBufferMax: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "LoadStringW".} - proc GetModuleFileName*(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleFileNameW".} - proc GetModuleHandle*(lpModuleName: LPCWSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleW".} - proc LoadLibraryEx*(lpLibFileName: LPCWSTR, hFile: HANDLE, dwFlags: DWORD): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryExW".} - proc EnumResourceLanguages*(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesW".} - proc EnumResourceLanguagesEx*(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesExW".} - proc EnumResourceNamesEx*(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesExW".} - proc EnumResourceTypesEx*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesExW".} - proc ExpandEnvironmentStrings*(lpSrc: LPCWSTR, lpDst: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "ExpandEnvironmentStringsW".} - proc FreeEnvironmentStrings*(penv: LPWCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FreeEnvironmentStringsW".} - proc GetCommandLine*(): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "GetCommandLineW".} - proc GetCurrentDirectory*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrentDirectoryW".} - proc GetEnvironmentVariable*(lpName: LPCWSTR, lpBuffer: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentVariableW".} - proc NeedCurrentDirectoryForExePath*(ExeName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "NeedCurrentDirectoryForExePathW".} - proc SearchPath*(lpPath: LPCWSTR, lpFileName: LPCWSTR, lpExtension: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "SearchPathW".} - proc SetCurrentDirectory*(lpPathName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCurrentDirectoryW".} - proc SetEnvironmentVariable*(lpName: LPCWSTR, lpValue: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentVariableW".} - proc CreateProcess*(lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateProcessW".} - proc CreateMutexEx*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexExW".} - proc CreateEventEx*(lpEventAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventExW".} - proc OpenEvent*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenEventW".} - proc CreateMutex*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexW".} - proc CreateEvent*(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, bInitialState: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventW".} - proc GetSystemDirectory*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemDirectoryW".} - proc GetWindowsDirectory*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetWindowsDirectoryW".} - proc GetSystemWindowsDirectory*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWindowsDirectoryW".} - proc GetComputerNameEx*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPWSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameExW".} - proc GetVersionEx*(lpVersionInformation: LPOSVERSIONINFOW): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVersionExW".} - proc GetBinaryType*(lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetBinaryTypeW".} - proc GetLongPathNameTransacted*(lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameTransactedW".} - proc SetFileShortName*(hFile: HANDLE, lpShortName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileShortNameW".} - proc FormatMessage*(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPWSTR, nSize: DWORD, Arguments: ptr va_list): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "FormatMessageW".} - proc CreateMailslot*(lpName: LPCWSTR, nMaxMessageSize: DWORD, lReadTimeout: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMailslotW".} - proc EncryptFile*(lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EncryptFileW".} - proc DecryptFile*(lpFileName: LPCWSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "DecryptFileW".} - proc FileEncryptionStatus*(lpFileName: LPCWSTR, lpStatus: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "FileEncryptionStatusW".} - proc OpenEncryptedFileRaw*(lpFileName: LPCWSTR, ulFlags: ULONG, pvContext: ptr PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEncryptedFileRawW".} - proc lstrcmp*(lpString1: LPCWSTR, lpString2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpW".} - proc lstrcmpi*(lpString1: LPCWSTR, lpString2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpiW".} - proc lstrcpyn*(lpString1: LPWSTR, lpString2: LPCWSTR, iMaxLength: int32): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpynW".} - proc lstrcpy*(lpString1: LPWSTR, lpString2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpyW".} - proc lstrcat*(lpString1: LPWSTR, lpString2: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcatW".} - proc lstrlen*(lpString: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrlenW".} - proc CreateSemaphore*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreW".} - proc CreateWaitableTimer*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerW".} - proc LoadLibrary*(lpLibFileName: LPCWSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryW".} - proc QueryFullProcessImageName*(hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPWSTR, lpdwSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "QueryFullProcessImageNameW".} - proc FatalAppExit*(uAction: UINT, lpMessageText: LPCWSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "FatalAppExitW".} - proc GetFirmwareEnvironmentVariable*(lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableW".} - proc SetFirmwareEnvironmentVariable*(lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableW".} - proc FindResource*(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceW".} - proc EnumResourceTypes*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesW".} - proc EnumResourceNames*(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesW".} - proc BeginUpdateResource*(pFileName: LPCWSTR, bDeleteExistingResources: WINBOOL): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "BeginUpdateResourceW".} - proc UpdateResource*(hUpdate: HANDLE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD, lpData: LPVOID, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "UpdateResourceW".} - proc EndUpdateResource*(hUpdate: HANDLE, fDiscard: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EndUpdateResourceW".} - proc GlobalAddAtom*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomW".} - proc GlobalAddAtomEx*(lpString: LPCWSTR, Flags: DWORD): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomExW".} - proc GlobalFindAtom*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalFindAtomW".} - proc GlobalGetAtomName*(nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalGetAtomNameW".} - proc AddAtom*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "AddAtomW".} - proc FindAtom*(lpString: LPCWSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "FindAtomW".} - proc GetAtomName*(nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetAtomNameW".} - proc GetProfileInt*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileIntW".} - proc GetProfileString*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpDefault: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileStringW".} - proc WriteProfileString*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileStringW".} - proc GetProfileSection*(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileSectionW".} - proc WriteProfileSection*(lpAppName: LPCWSTR, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileSectionW".} - proc GetPrivateProfileInt*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT, lpFileName: LPCWSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileIntW".} - proc GetPrivateProfileString*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpDefault: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStringW".} - proc WritePrivateProfileString*(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStringW".} - proc GetPrivateProfileSection*(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionW".} - proc WritePrivateProfileSection*(lpAppName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileSectionW".} - proc GetPrivateProfileSectionNames*(lpszReturnBuffer: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionNamesW".} - proc GetPrivateProfileStruct*(lpszSection: LPCWSTR, lpszKey: LPCWSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStructW".} - proc WritePrivateProfileStruct*(lpszSection: LPCWSTR, lpszKey: LPCWSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStructW".} - proc GetFirmwareEnvironmentVariableEx*(lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableExW".} - proc SetFirmwareEnvironmentVariableEx*(lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableExW".} - proc GetSystemWow64Directory*(lpBuffer: LPWSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWow64DirectoryW".} - proc SetDllDirectory*(lpPathName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDllDirectoryW".} - proc GetDllDirectory*(nBufferLength: DWORD, lpBuffer: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetDllDirectoryW".} - proc CreateDirectoryEx*(lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryExW".} - proc CreateDirectoryTransacted*(lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryTransactedW".} - proc RemoveDirectoryTransacted*(lpPathName: LPCWSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryTransactedW".} - proc GetFullPathNameTransacted*(lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameTransactedW".} - proc CreateFileTransacted*(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE, hTransaction: HANDLE, pusMiniVersion: PUSHORT, lpExtendedParameter: PVOID): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileTransactedW".} - proc SetFileAttributesTransacted*(lpFileName: LPCWSTR, dwFileAttributes: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesTransactedW".} - proc GetFileAttributesTransacted*(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesTransactedW".} - proc GetCompressedFileSize*(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeW".} - proc DeleteFileTransacted*(lpFileName: LPCWSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileTransactedW".} - proc GetCompressedFileSizeTransacted*(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeTransactedW".} - proc FindFirstFileTransacted*(lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD, hTransaction: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileTransactedW".} - proc CopyFileTransacted*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileTransactedW".} - proc CheckNameLegalDOS8Dot3*(lpName: LPCWSTR, lpOemName: LPSTR, OemNameSize: DWORD, pbNameContainsSpaces: PBOOL, pbNameLegal: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CheckNameLegalDOS8Dot3W".} - proc CopyFile*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileW".} - proc CopyFileEx*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileExW".} - proc MoveFile*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileW".} - proc MoveFileEx*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileExW".} - proc MoveFileWithProgress*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileWithProgressW".} - proc MoveFileTransacted*(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileTransactedW".} - proc ReplaceFile*(lpReplacedFileName: LPCWSTR, lpReplacementFileName: LPCWSTR, lpBackupFileName: LPCWSTR, dwReplaceFlags: DWORD, lpExclude: LPVOID, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReplaceFileW".} - proc CreateHardLink*(lpFileName: LPCWSTR, lpExistingFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkW".} - proc CreateHardLinkTransacted*(lpFileName: LPCWSTR, lpExistingFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkTransactedW".} - proc GetNamedPipeHandleState*(hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPWSTR, nMaxUserNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeHandleStateW".} - proc CallNamedPipe*(lpNamedPipeName: LPCWSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CallNamedPipeW".} - proc SetVolumeLabel*(lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeLabelW".} - proc ClearEventLog*(hEventLog: HANDLE, lpBackupFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ClearEventLogW".} - proc BackupEventLog*(hEventLog: HANDLE, lpBackupFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "BackupEventLogW".} - proc OpenEventLog*(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEventLogW".} - proc RegisterEventSource*(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterEventSourceW".} - proc OpenBackupEventLog*(lpUNCServerName: LPCWSTR, lpFileName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenBackupEventLogW".} - proc ReadEventLog*(hEventLog: HANDLE, dwReadFlags: DWORD, dwRecordOffset: DWORD, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, pnBytesRead: ptr DWORD, pnMinNumberOfBytesNeeded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReadEventLogW".} - proc ReportEvent*(hEventLog: HANDLE, wType: WORD, wCategory: WORD, dwEventID: DWORD, lpUserSid: PSID, wNumStrings: WORD, dwDataSize: DWORD, lpStrings: ptr LPCWSTR, lpRawData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReportEventW".} - proc IsBadStringPtr*(lpsz: LPCWSTR, ucchMax: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "IsBadStringPtrW".} - proc LookupPrivilegeValue*(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeValueW".} - proc LookupPrivilegeName*(lpSystemName: LPCWSTR, lpLuid: PLUID, lpName: LPWSTR, cchName: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeNameW".} - proc LookupPrivilegeDisplayName*(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpDisplayName: LPWSTR, cchDisplayName: LPDWORD, lpLanguageId: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeDisplayNameW".} - proc BuildCommDCB*(lpDef: LPCWSTR, lpDCB: LPDCB): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBW".} - proc BuildCommDCBAndTimeouts*(lpDef: LPCWSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBAndTimeoutsW".} - proc CommConfigDialog*(lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CommConfigDialogW".} - proc GetDefaultCommConfig*(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDefaultCommConfigW".} - proc SetDefaultCommConfig*(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDefaultCommConfigW".} - proc GetComputerName*(lpBuffer: LPWSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameW".} - proc SetComputerName*(lpComputerName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameW".} - proc DnsHostnameToComputerName*(Hostname: LPCWSTR, ComputerName: LPWSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DnsHostnameToComputerNameW".} - proc GetUserName*(lpBuffer: LPWSTR, pcbBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetUserNameW".} - proc LogonUser*(lpszUsername: LPCWSTR, lpszDomain: LPCWSTR, lpszPassword: LPCWSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserW".} - proc LogonUserEx*(lpszUsername: LPCWSTR, lpszDomain: LPCWSTR, lpszPassword: LPCWSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE, ppLogonSid: ptr PSID, ppProfileBuffer: ptr PVOID, pdwProfileLength: LPDWORD, pQuotaLimits: PQUOTA_LIMITS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserExW".} - proc OpenPrivateNamespace*(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenPrivateNamespaceW".} - proc GetCurrentHwProfile*(lpHwProfileInfo: LPHW_PROFILE_INFOW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetCurrentHwProfileW".} - proc VerifyVersionInfo*(lpVersionInformation: LPOSVERSIONINFOEXW, dwTypeMask: DWORD, dwlConditionMask: DWORDLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "VerifyVersionInfoW".} - proc CreateJobObject*(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateJobObjectW".} - proc OpenJobObject*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenJobObjectW".} - proc FindFirstVolumeMountPoint*(lpszRootPathName: LPCWSTR, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeMountPointW".} - proc FindNextVolumeMountPoint*(hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeMountPointW".} - proc SetVolumeMountPoint*(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeMountPointW".} - proc CreateActCtx*(pActCtx: PCACTCTXW): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateActCtxW".} - proc FindActCtxSectionString*(dwFlags: DWORD, lpExtensionGuid: ptr GUID, ulSectionId: ULONG, lpStringToFind: LPCWSTR, ReturnedData: PACTCTX_SECTION_KEYED_DATA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindActCtxSectionStringW".} - proc CreateSymbolicLink*(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkW".} - proc CreateSymbolicLinkTransacted*(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD, hTransaction: HANDLE): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkTransactedW".} - proc LookupAccountNameLocal*(lpAccountName: LPCWSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountNameW(nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) - proc LookupAccountSidLocal*(Sid: PSID, Name: LPWSTR, cchName: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountSidW(nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse) + proc DefineDosDevice*( + dwFlags: DWORD, lpDeviceName: LPCWSTR, lpTargetPath: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DefineDosDeviceW".} + + proc DeleteVolumeMountPoint*( + lpszVolumeMountPoint: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteVolumeMountPointW".} + + proc FindFirstVolume*( + lpszVolumeName: LPWSTR, cchBufferLength: DWORD + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeW".} + + proc FindNextVolume*( + hFindVolume: HANDLE, lpszVolumeName: LPWSTR, cchBufferLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeW".} + + proc GetLogicalDriveStrings*( + nBufferLength: DWORD, lpBuffer: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLogicalDriveStringsW".} + + proc GetShortPathName*( + lpszLongPath: LPCWSTR, lpszShortPath: LPWSTR, cchBuffer: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetShortPathNameW".} + + proc GetTempFileName*( + lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempFileNameW".} + + proc GetVolumeInformation*( + lpRootPathName: LPCWSTR, + lpVolumeNameBuffer: LPWSTR, + nVolumeNameSize: DWORD, + lpVolumeSerialNumber: LPDWORD, + lpMaximumComponentLength: LPDWORD, + lpFileSystemFlags: LPDWORD, + lpFileSystemNameBuffer: LPWSTR, + nFileSystemNameSize: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeInformationW".} + + proc GetVolumePathName*( + lpszFileName: LPCWSTR, lpszVolumePathName: LPWSTR, cchBufferLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNameW".} + + proc QueryDosDevice*( + lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "QueryDosDeviceW".} + + proc GetVolumeNameForVolumeMountPoint*( + lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPWSTR, cchBufferLength: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeNameForVolumeMountPointW" + .} + + proc GetVolumePathNamesForVolumeName*( + lpszVolumeName: LPCWSTR, + lpszVolumePathNames: LPWCH, + cchBufferLength: DWORD, + lpcchReturnLength: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNamesForVolumeNameW" + .} + + proc GetTempPath*( + nBufferLength: DWORD, lpBuffer: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempPathW".} + + proc FindResourceEx*( + hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD + ): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceExW".} + + proc CreateFileMapping*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCWSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingW".} + + proc OpenFileMapping*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenFileMappingW".} + + proc CreateFileMappingNuma*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCWSTR, + nndPreferred: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingNumaW".} + + proc CreateNamedPipe*( + lpName: LPCWSTR, + dwOpenMode: DWORD, + dwPipeMode: DWORD, + nMaxInstances: DWORD, + nOutBufferSize: DWORD, + nInBufferSize: DWORD, + nDefaultTimeOut: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateNamedPipeW".} + + proc WaitNamedPipe*( + lpNamedPipeName: LPCWSTR, nTimeOut: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WaitNamedPipeW".} + + proc GetNamedPipeClientComputerName*( + Pipe: HANDLE, ClientComputerName: LPWSTR, ClientComputerNameLength: ULONG + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeClientComputerNameW" + .} + + proc CreatePrivateNamespace*( + lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, + lpBoundaryDescriptor: LPVOID, + lpAliasPrefix: LPCWSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreatePrivateNamespaceW".} + + proc CreateBoundaryDescriptor*( + Name: LPCWSTR, Flags: ULONG + ): HANDLE {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateBoundaryDescriptorW" + .} + + proc GetEnvironmentStrings*(): LPWCH {. + winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentStringsW" + .} + + proc SetEnvironmentStrings*( + NewEnvironment: LPWCH + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentStringsW".} + + proc GetStartupInfo*( + lpStartupInfo: LPSTARTUPINFOW + ): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GetStartupInfoW".} + + proc CreateProcessAsUser*( + hToken: HANDLE, + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFOW, + lpProcessInformation: LPPROCESS_INFORMATION, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CreateProcessAsUserW".} + + proc AccessCheckAndAuditAlarm*( + SubsystemName: LPCWSTR, + HandleId: LPVOID, + ObjectTypeName: LPWSTR, + ObjectName: LPWSTR, + SecurityDescriptor: PSECURITY_DESCRIPTOR, + DesiredAccess: DWORD, + GenericMapping: PGENERIC_MAPPING, + ObjectCreation: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckAndAuditAlarmW" + .} + + proc AccessCheckByTypeAndAuditAlarm*( + 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeAndAuditAlarmW" + .} + + proc AccessCheckByTypeResultListAndAuditAlarm*( + 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: WINBOOL, + GrantedAccessList: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "advapi32", + importc: "AccessCheckByTypeResultListAndAuditAlarmW" + .} + + proc AccessCheckByTypeResultListAndAuditAlarmByHandle*( + 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: WINBOOL, + GrantedAccessList: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "advapi32", + importc: "AccessCheckByTypeResultListAndAuditAlarmByHandleW" + .} + + proc GetFileSecurity*( + lpFileName: LPCWSTR, + RequestedInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + nLength: DWORD, + lpnLengthNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetFileSecurityW".} + + proc ObjectCloseAuditAlarm*( + SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectCloseAuditAlarmW".} + + proc ObjectDeleteAuditAlarm*( + SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectDeleteAuditAlarmW".} + + proc ObjectOpenAuditAlarm*( + SubsystemName: LPCWSTR, + HandleId: LPVOID, + ObjectTypeName: LPWSTR, + ObjectName: LPWSTR, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ClientToken: HANDLE, + DesiredAccess: DWORD, + GrantedAccess: DWORD, + Privileges: PPRIVILEGE_SET, + ObjectCreation: WINBOOL, + AccessGranted: WINBOOL, + GenerateOnClose: LPBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectOpenAuditAlarmW".} + + proc ObjectPrivilegeAuditAlarm*( + SubsystemName: LPCWSTR, + HandleId: LPVOID, + ClientToken: HANDLE, + DesiredAccess: DWORD, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "ObjectPrivilegeAuditAlarmW" + .} + + proc PrivilegedServiceAuditAlarm*( + SubsystemName: LPCWSTR, + ServiceName: LPCWSTR, + ClientToken: HANDLE, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "PrivilegedServiceAuditAlarmW" + .} + + proc SetFileSecurity*( + lpFileName: LPCWSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "SetFileSecurityW".} + + proc CreateSemaphoreEx*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreExW".} + + proc OpenMutex*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenMutexW".} + + proc OpenSemaphore*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenSemaphoreW".} + + proc CreateWaitableTimerEx*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + lpTimerName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerExW".} + + proc OpenWaitableTimer*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenWaitableTimerW".} + + proc SetComputerNameEx*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameExW".} + + proc OutputDebugString*( + lpOutputString: LPCWSTR + ): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "OutputDebugStringW".} + + proc CreateFile*( + lpFileName: LPCWSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileW".} + + proc FindFirstChangeNotification*( + lpPathName: LPCWSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD + ): HANDLE {. + winapi, stdcall, dynlib: "kernel32", importc: "FindFirstChangeNotificationW" + .} + + proc FindFirstFile*( + lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileW".} + + proc GetDiskFreeSpace*( + lpRootPathName: LPCWSTR, + lpSectorsPerCluster: LPDWORD, + lpBytesPerSector: LPDWORD, + lpNumberOfFreeClusters: LPDWORD, + lpTotalNumberOfClusters: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceW".} + + proc GetDriveType*( + lpRootPathName: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetDriveTypeW".} + + proc GetFileAttributes*( + lpFileName: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesW".} + + proc GetFullPathName*( + lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ptr LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameW".} + + proc GetLongPathName*( + lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameW".} + + proc GetFinalPathNameByHandle*( + hFile: HANDLE, lpszFilePath: LPWSTR, cchFilePath: DWORD, dwFlags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFinalPathNameByHandleW".} + + proc CreateDirectory*( + lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryW".} + + proc DeleteFile*( + lpFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileW".} + + proc FindFirstFileEx*( + lpFileName: LPCWSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileExW".} + + proc FindNextFile*( + hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextFileW".} + + proc GetDiskFreeSpaceEx*( + lpDirectoryName: LPCWSTR, + lpFreeBytesAvailableToCaller: PULARGE_INTEGER, + lpTotalNumberOfBytes: PULARGE_INTEGER, + lpTotalNumberOfFreeBytes: PULARGE_INTEGER, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceExW".} + + proc GetFileAttributesEx*( + lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesExW".} + + proc RemoveDirectory*( + lpPathName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryW".} + + proc SetFileAttributes*( + lpFileName: LPCWSTR, dwFileAttributes: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesW".} + + proc GetModuleHandleEx*( + dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ptr HMODULE + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleExW".} + + proc LoadString*( + hInstance: HINSTANCE, uID: UINT, lpBuffer: LPWSTR, cchBufferMax: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "LoadStringW".} + + proc GetModuleFileName*( + hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleFileNameW".} + + proc GetModuleHandle*( + lpModuleName: LPCWSTR + ): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleW".} + + proc LoadLibraryEx*( + lpLibFileName: LPCWSTR, hFile: HANDLE, dwFlags: DWORD + ): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryExW".} + + proc EnumResourceLanguages*( + hModule: HMODULE, + lpType: LPCWSTR, + lpName: LPCWSTR, + lpEnumFunc: ENUMRESLANGPROCW, + lParam: LONG_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesW".} + + proc EnumResourceLanguagesEx*( + hModule: HMODULE, + lpType: LPCWSTR, + lpName: LPCWSTR, + lpEnumFunc: ENUMRESLANGPROCW, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesExW" + .} + + proc EnumResourceNamesEx*( + hModule: HMODULE, + lpType: LPCWSTR, + lpEnumFunc: ENUMRESNAMEPROCW, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesExW".} + + proc EnumResourceTypesEx*( + hModule: HMODULE, + lpEnumFunc: ENUMRESTYPEPROCW, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesExW".} + + proc ExpandEnvironmentStrings*( + lpSrc: LPCWSTR, lpDst: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "ExpandEnvironmentStringsW".} + + proc FreeEnvironmentStrings*( + penv: LPWCH + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FreeEnvironmentStringsW".} + + proc GetCommandLine*(): LPWSTR {. + winapi, stdcall, dynlib: "kernel32", importc: "GetCommandLineW" + .} + + proc GetCurrentDirectory*( + nBufferLength: DWORD, lpBuffer: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrentDirectoryW".} + + proc GetEnvironmentVariable*( + lpName: LPCWSTR, lpBuffer: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentVariableW".} + + proc NeedCurrentDirectoryForExePath*( + ExeName: LPCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "NeedCurrentDirectoryForExePathW" + .} + + proc SearchPath*( + lpPath: LPCWSTR, + lpFileName: LPCWSTR, + lpExtension: LPCWSTR, + nBufferLength: DWORD, + lpBuffer: LPWSTR, + lpFilePart: ptr LPWSTR, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "SearchPathW".} + + proc SetCurrentDirectory*( + lpPathName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCurrentDirectoryW".} + + proc SetEnvironmentVariable*( + lpName: LPCWSTR, lpValue: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentVariableW".} + + proc CreateProcess*( + lpApplicationName: LPCWSTR, + lpCommandLine: LPWSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCWSTR, + lpStartupInfo: LPSTARTUPINFOW, + lpProcessInformation: LPPROCESS_INFORMATION, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateProcessW".} + + proc CreateMutexEx*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexExW".} + + proc CreateEventEx*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventExW".} + + proc OpenEvent*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenEventW".} + + proc CreateMutex*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexW".} + + proc CreateEvent*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: WINBOOL, + bInitialState: WINBOOL, + lpName: LPCWSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventW".} + + proc GetSystemDirectory*( + lpBuffer: LPWSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemDirectoryW".} + + proc GetWindowsDirectory*( + lpBuffer: LPWSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetWindowsDirectoryW".} + + proc GetSystemWindowsDirectory*( + lpBuffer: LPWSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWindowsDirectoryW".} + + proc GetComputerNameEx*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPWSTR, nSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameExW".} + + proc GetVersionEx*( + lpVersionInformation: LPOSVERSIONINFOW + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVersionExW".} + + proc GetBinaryType*( + lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetBinaryTypeW".} + + proc GetLongPathNameTransacted*( + lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD, hTransaction: HANDLE + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameTransactedW" + .} + + proc SetFileShortName*( + hFile: HANDLE, lpShortName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileShortNameW".} + + proc FormatMessage*( + dwFlags: DWORD, + lpSource: LPCVOID, + dwMessageId: DWORD, + dwLanguageId: DWORD, + lpBuffer: LPWSTR, + nSize: DWORD, + Arguments: ptr va_list, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "FormatMessageW".} + + proc CreateMailslot*( + lpName: LPCWSTR, + nMaxMessageSize: DWORD, + lReadTimeout: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMailslotW".} + + proc EncryptFile*( + lpFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EncryptFileW".} + + proc DecryptFile*( + lpFileName: LPCWSTR, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "DecryptFileW".} + + proc FileEncryptionStatus*( + lpFileName: LPCWSTR, lpStatus: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "FileEncryptionStatusW".} + + proc OpenEncryptedFileRaw*( + lpFileName: LPCWSTR, ulFlags: ULONG, pvContext: ptr PVOID + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEncryptedFileRawW".} + + proc lstrcmp*( + lpString1: LPCWSTR, lpString2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpW".} + + proc lstrcmpi*( + lpString1: LPCWSTR, lpString2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpiW".} + + proc lstrcpyn*( + lpString1: LPWSTR, lpString2: LPCWSTR, iMaxLength: int32 + ): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpynW".} + + proc lstrcpy*( + lpString1: LPWSTR, lpString2: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpyW".} + + proc lstrcat*( + lpString1: LPWSTR, lpString2: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcatW".} + + proc lstrlen*( + lpString: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrlenW".} + + proc CreateSemaphore*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCWSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreW".} + + proc CreateWaitableTimer*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: WINBOOL, + lpTimerName: LPCWSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerW".} + + proc LoadLibrary*( + lpLibFileName: LPCWSTR + ): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryW".} + + proc QueryFullProcessImageName*( + hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPWSTR, lpdwSize: PDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "QueryFullProcessImageNameW" + .} + + proc FatalAppExit*( + uAction: UINT, lpMessageText: LPCWSTR + ): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "FatalAppExitW".} + + proc GetFirmwareEnvironmentVariable*( + lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableW" + .} + + proc SetFirmwareEnvironmentVariable*( + lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableW" + .} + + proc FindResource*( + hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR + ): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceW".} + + proc EnumResourceTypes*( + hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesW".} + + proc EnumResourceNames*( + hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesW".} + + proc BeginUpdateResource*( + pFileName: LPCWSTR, bDeleteExistingResources: WINBOOL + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "BeginUpdateResourceW".} + + proc UpdateResource*( + hUpdate: HANDLE, + lpType: LPCWSTR, + lpName: LPCWSTR, + wLanguage: WORD, + lpData: LPVOID, + cb: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "UpdateResourceW".} + + proc EndUpdateResource*( + hUpdate: HANDLE, fDiscard: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EndUpdateResourceW".} + + proc GlobalAddAtom*( + lpString: LPCWSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomW".} + + proc GlobalAddAtomEx*( + lpString: LPCWSTR, Flags: DWORD + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomExW".} + + proc GlobalFindAtom*( + lpString: LPCWSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalFindAtomW".} + + proc GlobalGetAtomName*( + nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32 + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalGetAtomNameW".} + + proc AddAtom*( + lpString: LPCWSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "AddAtomW".} + + proc FindAtom*( + lpString: LPCWSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "FindAtomW".} + + proc GetAtomName*( + nAtom: ATOM, lpBuffer: LPWSTR, nSize: int32 + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetAtomNameW".} + + proc GetProfileInt*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileIntW".} + + proc GetProfileString*( + lpAppName: LPCWSTR, + lpKeyName: LPCWSTR, + lpDefault: LPCWSTR, + lpReturnedString: LPWSTR, + nSize: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileStringW".} + + proc WriteProfileString*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileStringW".} + + proc GetProfileSection*( + lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileSectionW".} + + proc WriteProfileSection*( + lpAppName: LPCWSTR, lpString: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileSectionW".} + + proc GetPrivateProfileInt*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT, lpFileName: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileIntW".} + + proc GetPrivateProfileString*( + lpAppName: LPCWSTR, + lpKeyName: LPCWSTR, + lpDefault: LPCWSTR, + lpReturnedString: LPWSTR, + nSize: DWORD, + lpFileName: LPCWSTR, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStringW".} + + proc WritePrivateProfileString*( + lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStringW" + .} + + proc GetPrivateProfileSection*( + lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionW".} + + proc WritePrivateProfileSection*( + lpAppName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileSectionW" + .} + + proc GetPrivateProfileSectionNames*( + lpszReturnBuffer: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionNamesW" + .} + + proc GetPrivateProfileStruct*( + lpszSection: LPCWSTR, + lpszKey: LPCWSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCWSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStructW" + .} + + proc WritePrivateProfileStruct*( + lpszSection: LPCWSTR, + lpszKey: LPCWSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCWSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStructW" + .} + + proc GetFirmwareEnvironmentVariableEx*( + lpName: LPCWSTR, + lpGuid: LPCWSTR, + pBuffer: PVOID, + nSize: DWORD, + pdwAttribubutes: PDWORD, + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableExW" + .} + + proc SetFirmwareEnvironmentVariableEx*( + lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableExW" + .} + + proc GetSystemWow64Directory*( + lpBuffer: LPWSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWow64DirectoryW".} + + proc SetDllDirectory*( + lpPathName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDllDirectoryW".} + + proc GetDllDirectory*( + nBufferLength: DWORD, lpBuffer: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetDllDirectoryW".} + + proc CreateDirectoryEx*( + lpTemplateDirectory: LPCWSTR, + lpNewDirectory: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryExW".} + + proc CreateDirectoryTransacted*( + lpTemplateDirectory: LPCWSTR, + lpNewDirectory: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryTransactedW" + .} + + proc RemoveDirectoryTransacted*( + lpPathName: LPCWSTR, hTransaction: HANDLE + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryTransactedW" + .} + + proc GetFullPathNameTransacted*( + lpFileName: LPCWSTR, + nBufferLength: DWORD, + lpBuffer: LPWSTR, + lpFilePart: ptr LPWSTR, + hTransaction: HANDLE, + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameTransactedW" + .} + + proc CreateFileTransacted*( + lpFileName: LPCWSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + hTransaction: HANDLE, + pusMiniVersion: PUSHORT, + lpExtendedParameter: PVOID, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileTransactedW".} + + proc SetFileAttributesTransacted*( + lpFileName: LPCWSTR, dwFileAttributes: DWORD, hTransaction: HANDLE + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesTransactedW" + .} + + proc GetFileAttributesTransacted*( + lpFileName: LPCWSTR, + fInfoLevelId: GET_FILEEX_INFO_LEVELS, + lpFileInformation: LPVOID, + hTransaction: HANDLE, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesTransactedW" + .} + + proc GetCompressedFileSize*( + lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeW".} + + proc DeleteFileTransacted*( + lpFileName: LPCWSTR, hTransaction: HANDLE + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileTransactedW".} + + proc GetCompressedFileSizeTransacted*( + lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeTransactedW" + .} + + proc FindFirstFileTransacted*( + lpFileName: LPCWSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, + hTransaction: HANDLE, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileTransactedW".} + + proc CopyFileTransacted*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + hTransaction: HANDLE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileTransactedW".} + + proc CheckNameLegalDOS8Dot3*( + lpName: LPCWSTR, + lpOemName: LPSTR, + OemNameSize: DWORD, + pbNameContainsSpaces: PBOOL, + pbNameLegal: PBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CheckNameLegalDOS8Dot3W".} + + proc CopyFile*( + lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileW".} + + proc CopyFileEx*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileExW".} + + proc MoveFile*( + lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileW".} + + proc MoveFileEx*( + lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileExW".} + + proc MoveFileWithProgress*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileWithProgressW".} + + proc MoveFileTransacted*( + lpExistingFileName: LPCWSTR, + lpNewFileName: LPCWSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, + hTransaction: HANDLE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileTransactedW".} + + proc ReplaceFile*( + lpReplacedFileName: LPCWSTR, + lpReplacementFileName: LPCWSTR, + lpBackupFileName: LPCWSTR, + dwReplaceFlags: DWORD, + lpExclude: LPVOID, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReplaceFileW".} + + proc CreateHardLink*( + lpFileName: LPCWSTR, + lpExistingFileName: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkW".} + + proc CreateHardLinkTransacted*( + lpFileName: LPCWSTR, + lpExistingFileName: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkTransactedW" + .} + + proc GetNamedPipeHandleState*( + hNamedPipe: HANDLE, + lpState: LPDWORD, + lpCurInstances: LPDWORD, + lpMaxCollectionCount: LPDWORD, + lpCollectDataTimeout: LPDWORD, + lpUserName: LPWSTR, + nMaxUserNameSize: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeHandleStateW" + .} + + proc CallNamedPipe*( + lpNamedPipeName: LPCWSTR, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesRead: LPDWORD, + nTimeOut: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CallNamedPipeW".} + + proc SetVolumeLabel*( + lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeLabelW".} + + proc ClearEventLog*( + hEventLog: HANDLE, lpBackupFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ClearEventLogW".} + + proc BackupEventLog*( + hEventLog: HANDLE, lpBackupFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "BackupEventLogW".} + + proc OpenEventLog*( + lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEventLogW".} + + proc RegisterEventSource*( + lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterEventSourceW".} + + proc OpenBackupEventLog*( + lpUNCServerName: LPCWSTR, lpFileName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenBackupEventLogW".} + + proc ReadEventLog*( + hEventLog: HANDLE, + dwReadFlags: DWORD, + dwRecordOffset: DWORD, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + pnBytesRead: ptr DWORD, + pnMinNumberOfBytesNeeded: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReadEventLogW".} + + proc ReportEvent*( + hEventLog: HANDLE, + wType: WORD, + wCategory: WORD, + dwEventID: DWORD, + lpUserSid: PSID, + wNumStrings: WORD, + dwDataSize: DWORD, + lpStrings: ptr LPCWSTR, + lpRawData: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReportEventW".} + + proc IsBadStringPtr*( + lpsz: LPCWSTR, ucchMax: UINT_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "IsBadStringPtrW".} + + proc LookupPrivilegeValue*( + lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeValueW".} + + proc LookupPrivilegeName*( + lpSystemName: LPCWSTR, lpLuid: PLUID, lpName: LPWSTR, cchName: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeNameW".} + + proc LookupPrivilegeDisplayName*( + lpSystemName: LPCWSTR, + lpName: LPCWSTR, + lpDisplayName: LPWSTR, + cchDisplayName: LPDWORD, + lpLanguageId: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeDisplayNameW" + .} + + proc BuildCommDCB*( + lpDef: LPCWSTR, lpDCB: LPDCB + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBW".} + + proc BuildCommDCBAndTimeouts*( + lpDef: LPCWSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBAndTimeoutsW" + .} + + proc CommConfigDialog*( + lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CommConfigDialogW".} + + proc GetDefaultCommConfig*( + lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDefaultCommConfigW".} + + proc SetDefaultCommConfig*( + lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDefaultCommConfigW".} + + proc GetComputerName*( + lpBuffer: LPWSTR, nSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameW".} + + proc SetComputerName*( + lpComputerName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameW".} + + proc DnsHostnameToComputerName*( + Hostname: LPCWSTR, ComputerName: LPWSTR, nSize: LPDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "DnsHostnameToComputerNameW" + .} + + proc GetUserName*( + lpBuffer: LPWSTR, pcbBuffer: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetUserNameW".} + + proc LogonUser*( + lpszUsername: LPCWSTR, + lpszDomain: LPCWSTR, + lpszPassword: LPCWSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserW".} + + proc LogonUserEx*( + lpszUsername: LPCWSTR, + lpszDomain: LPCWSTR, + lpszPassword: LPCWSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, + ppLogonSid: ptr PSID, + ppProfileBuffer: ptr PVOID, + pdwProfileLength: LPDWORD, + pQuotaLimits: PQUOTA_LIMITS, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserExW".} + + proc OpenPrivateNamespace*( + lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenPrivateNamespaceW".} + + proc GetCurrentHwProfile*( + lpHwProfileInfo: LPHW_PROFILE_INFOW + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetCurrentHwProfileW".} + + proc VerifyVersionInfo*( + lpVersionInformation: LPOSVERSIONINFOEXW, + dwTypeMask: DWORD, + dwlConditionMask: DWORDLONG, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "VerifyVersionInfoW".} + + proc CreateJobObject*( + lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateJobObjectW".} + + proc OpenJobObject*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenJobObjectW".} + + proc FindFirstVolumeMountPoint*( + lpszRootPathName: LPCWSTR, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD + ): HANDLE {. + winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeMountPointW" + .} + + proc FindNextVolumeMountPoint*( + hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeMountPointW" + .} + + proc SetVolumeMountPoint*( + lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeMountPointW".} + + proc CreateActCtx*( + pActCtx: PCACTCTXW + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateActCtxW".} + + proc FindActCtxSectionString*( + dwFlags: DWORD, + lpExtensionGuid: ptr GUID, + ulSectionId: ULONG, + lpStringToFind: LPCWSTR, + ReturnedData: PACTCTX_SECTION_KEYED_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "FindActCtxSectionStringW" + .} + + proc CreateSymbolicLink*( + lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD + ): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkW".} + + proc CreateSymbolicLinkTransacted*( + lpSymlinkFileName: LPCWSTR, + lpTargetFileName: LPCWSTR, + dwFlags: DWORD, + hTransaction: HANDLE, + ): BOOLEAN {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkTransactedW" + .} + + proc LookupAccountNameLocal*( + lpAccountName: LPCWSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, inline.} = + LookupAccountNameW( + nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, + peUse, + ) + + proc LookupAccountSidLocal*( + Sid: PSID, + Name: LPWSTR, + cchName: LPDWORD, + ReferencedDomainName: LPWSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, inline.} = + LookupAccountSidW( + nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse + ) + when winimAnsi: type WIN32_FIND_DATA* = WIN32_FIND_DATAA @@ -3094,220 +9028,1278 @@ ACTCTX* = ACTCTXA PACTCTX* = PACTCTXA PCACTCTX* = PCACTCTXA + const GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A* = GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W* = GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T* = GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T proc GetEnvironmentStrings*(): LPCH {.winapi, stdcall, dynlib: "kernel32", importc.} - proc SetEnvironmentStrings*(NewEnvironment: LPCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentStringsA".} - proc GetShortPathName*(lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetShortPathNameA".} - proc OpenMutex*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenMutexA".} - proc OpenSemaphore*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenSemaphoreA".} - proc OpenWaitableTimer*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenWaitableTimerA".} - proc CreateFileMapping*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingA".} - proc OpenFileMapping*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenFileMappingA".} - proc GetLogicalDriveStrings*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLogicalDriveStringsA".} - proc CreateSemaphoreEx*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreExA".} - proc CreateWaitableTimerEx*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerExA".} - proc CreateFileMappingNuma*(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCSTR, nndPreferred: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingNumaA".} - proc GetStartupInfo*(lpStartupInfo: LPSTARTUPINFOA): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GetStartupInfoA".} - proc FindResourceEx*(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceExA".} - proc GetTempPath*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempPathA".} - proc GetTempFileName*(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: LPSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempFileNameA".} - proc DefineDosDevice*(dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DefineDosDeviceA".} - proc QueryDosDevice*(lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "QueryDosDeviceA".} - proc CreateNamedPipe*(lpName: LPCSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateNamedPipeA".} - proc WaitNamedPipe*(lpNamedPipeName: LPCSTR, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WaitNamedPipeA".} - proc GetVolumeInformation*(lpRootPathName: LPCSTR, lpVolumeNameBuffer: LPSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPSTR, nFileSystemNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeInformationA".} - proc AccessCheckAndAuditAlarm*(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPSTR, ObjectName: LPSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckAndAuditAlarmA".} - proc AccessCheckByTypeAndAuditAlarm*(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: WINBOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeAndAuditAlarmA".} - proc AccessCheckByTypeResultListAndAuditAlarm*(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: WINBOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeResultListAndAuditAlarmA".} - proc AccessCheckByTypeResultListAndAuditAlarmByHandle*(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: WINBOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeResultListAndAuditAlarmByHandleA".} - proc ObjectOpenAuditAlarm*(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPSTR, ObjectName: LPSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: WINBOOL, AccessGranted: WINBOOL, GenerateOnClose: LPBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectOpenAuditAlarmA".} - proc ObjectPrivilegeAuditAlarm*(SubsystemName: LPCSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectPrivilegeAuditAlarmA".} - proc ObjectCloseAuditAlarm*(SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectCloseAuditAlarmA".} - proc ObjectDeleteAuditAlarm*(SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectDeleteAuditAlarmA".} - proc PrivilegedServiceAuditAlarm*(SubsystemName: LPCSTR, ServiceName: LPCSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "PrivilegedServiceAuditAlarmA".} - proc SetFileSecurity*(lpFileName: LPCSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "SetFileSecurityA".} - proc GetFileSecurity*(lpFileName: LPCSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetFileSecurityA".} - proc SetComputerNameEx*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCTSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameExA".} - proc CreateProcessAsUser*(hToken: HANDLE, lpApplicationName: LPCSTR, lpCommandLine: LPSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCSTR, lpStartupInfo: LPSTARTUPINFOA, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CreateProcessAsUserA".} - proc FindFirstVolume*(lpszVolumeName: LPSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeA".} - proc FindNextVolume*(hFindVolume: HANDLE, lpszVolumeName: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeA".} - proc DeleteVolumeMountPoint*(lpszVolumeMountPoint: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteVolumeMountPointA".} - proc GetVolumeNameForVolumeMountPoint*(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeNameForVolumeMountPointA".} - proc GetVolumePathName*(lpszFileName: LPCSTR, lpszVolumePathName: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNameA".} - proc GetVolumePathNamesForVolumeName*(lpszVolumeName: LPCSTR, lpszVolumePathNames: LPCH, cchBufferLength: DWORD, lpcchReturnLength: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNamesForVolumeNameA".} - proc OutputDebugString*(lpOutputString: LPCSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "OutputDebugStringA".} - proc CreateFile*(lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileA".} - proc FindFirstChangeNotification*(lpPathName: LPCSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstChangeNotificationA".} - proc FindFirstFile*(lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileA".} - proc GetDiskFreeSpace*(lpRootPathName: LPCSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD, lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceA".} - proc GetDriveType*(lpRootPathName: LPCSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetDriveTypeA".} - proc GetFileAttributes*(lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesA".} - proc GetFullPathName*(lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameA".} - proc GetLongPathName*(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameA".} - proc GetFinalPathNameByHandle*(hFile: HANDLE, lpszFilePath: LPSTR, cchFilePath: DWORD, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFinalPathNameByHandleA".} - proc CreateDirectory*(lpPathName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryA".} - proc DeleteFile*(lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileA".} - proc FindFirstFileEx*(lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileExA".} - proc FindNextFile*(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextFileA".} - proc GetDiskFreeSpaceEx*(lpDirectoryName: LPCSTR, lpFreeBytesAvailableToCaller: PULARGE_INTEGER, lpTotalNumberOfBytes: PULARGE_INTEGER, lpTotalNumberOfFreeBytes: PULARGE_INTEGER): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceExA".} - proc GetFileAttributesEx*(lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesExA".} - proc RemoveDirectory*(lpPathName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryA".} - proc SetFileAttributes*(lpFileName: LPCSTR, dwFileAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesA".} - proc GetModuleHandleEx*(dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ptr HMODULE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleExA".} - proc LoadString*(hInstance: HINSTANCE, uID: UINT, lpBuffer: LPSTR, cchBufferMax: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "LoadStringA".} - proc GetModuleFileName*(hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleFileNameA".} - proc GetModuleHandle*(lpModuleName: LPCSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleA".} - proc LoadLibraryEx*(lpLibFileName: LPCSTR, hFile: HANDLE, dwFlags: DWORD): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryExA".} - proc EnumResourceLanguages*(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, lpEnumFunc: ENUMRESLANGPROCA, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesA".} - proc EnumResourceLanguagesEx*(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, lpEnumFunc: ENUMRESLANGPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesExA".} - proc EnumResourceNamesEx*(hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesExA".} - proc EnumResourceTypesEx*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesExA".} - proc ExpandEnvironmentStrings*(lpSrc: LPCSTR, lpDst: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "ExpandEnvironmentStringsA".} - proc FreeEnvironmentStrings*(penv: LPCH): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FreeEnvironmentStringsA".} - proc GetCommandLine*(): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "GetCommandLineA".} - proc GetCurrentDirectory*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrentDirectoryA".} - proc GetEnvironmentVariable*(lpName: LPCSTR, lpBuffer: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentVariableA".} - proc NeedCurrentDirectoryForExePath*(ExeName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "NeedCurrentDirectoryForExePathA".} - proc SearchPath*(lpPath: LPCSTR, lpFileName: LPCSTR, lpExtension: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "SearchPathA".} - proc SetCurrentDirectory*(lpPathName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCurrentDirectoryA".} - proc SetEnvironmentVariable*(lpName: LPCSTR, lpValue: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentVariableA".} - proc CreateProcess*(lpApplicationName: LPCSTR, lpCommandLine: LPSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: WINBOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCSTR, lpStartupInfo: LPSTARTUPINFOA, lpProcessInformation: LPPROCESS_INFORMATION): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateProcessA".} - proc CreateMutexEx*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexExA".} - proc CreateEventEx*(lpEventAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventExA".} - proc OpenEvent*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenEventA".} - proc CreateMutex*(lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexA".} - proc CreateEvent*(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, bInitialState: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventA".} - proc GetSystemDirectory*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemDirectoryA".} - proc GetWindowsDirectory*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetWindowsDirectoryA".} - proc GetSystemWindowsDirectory*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWindowsDirectoryA".} - proc GetComputerNameEx*(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameExA".} - proc GetVersionEx*(lpVersionInformation: LPOSVERSIONINFOA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVersionExA".} - proc GetBinaryType*(lpApplicationName: LPCSTR, lpBinaryType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetBinaryTypeA".} - proc GetLongPathNameTransacted*(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameTransactedA".} - proc SetFileShortName*(hFile: HANDLE, lpShortName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileShortNameA".} - proc FormatMessage*(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPSTR, nSize: DWORD, Arguments: ptr va_list): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "FormatMessageA".} - proc CreateMailslot*(lpName: LPCSTR, nMaxMessageSize: DWORD, lReadTimeout: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMailslotA".} - proc EncryptFile*(lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EncryptFileA".} - proc DecryptFile*(lpFileName: LPCSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "DecryptFileA".} - proc FileEncryptionStatus*(lpFileName: LPCSTR, lpStatus: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "FileEncryptionStatusA".} - proc OpenEncryptedFileRaw*(lpFileName: LPCSTR, ulFlags: ULONG, pvContext: ptr PVOID): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEncryptedFileRawA".} - proc lstrcmp*(lpString1: LPCSTR, lpString2: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpA".} - proc lstrcmpi*(lpString1: LPCSTR, lpString2: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpiA".} - proc lstrcpyn*(lpString1: LPSTR, lpString2: LPCSTR, iMaxLength: int32): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpynA".} - proc lstrcpy*(lpString1: LPSTR, lpString2: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpyA".} - proc lstrcat*(lpString1: LPSTR, lpString2: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcatA".} - proc lstrlen*(lpString: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrlenA".} - proc CreateSemaphore*(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreA".} - proc CreateWaitableTimer*(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerA".} - proc LoadLibrary*(lpLibFileName: LPCSTR): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryA".} - proc QueryFullProcessImageName*(hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPSTR, lpdwSize: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "QueryFullProcessImageNameA".} - proc FatalAppExit*(uAction: UINT, lpMessageText: LPCSTR): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "FatalAppExitA".} - proc GetFirmwareEnvironmentVariable*(lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableA".} - proc SetFirmwareEnvironmentVariable*(lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableA".} - proc FindResource*(hModule: HMODULE, lpName: LPCSTR, lpType: LPCSTR): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceA".} - proc EnumResourceTypes*(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesA".} - proc EnumResourceNames*(hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesA".} - proc BeginUpdateResource*(pFileName: LPCSTR, bDeleteExistingResources: WINBOOL): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "BeginUpdateResourceA".} - proc UpdateResource*(hUpdate: HANDLE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD, lpData: LPVOID, cb: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "UpdateResourceA".} - proc EndUpdateResource*(hUpdate: HANDLE, fDiscard: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EndUpdateResourceA".} - proc GlobalAddAtom*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomA".} - proc GlobalAddAtomEx*(lpString: LPCSTR, Flags: DWORD): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomExA".} - proc GlobalFindAtom*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalFindAtomA".} - proc GlobalGetAtomName*(nAtom: ATOM, lpBuffer: LPSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalGetAtomNameA".} - proc AddAtom*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "AddAtomA".} - proc FindAtom*(lpString: LPCSTR): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "FindAtomA".} - proc GetAtomName*(nAtom: ATOM, lpBuffer: LPSTR, nSize: int32): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetAtomNameA".} - proc GetProfileInt*(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileIntA".} - proc GetProfileString*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpDefault: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileStringA".} - proc WriteProfileString*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileStringA".} - proc GetProfileSection*(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileSectionA".} - proc WriteProfileSection*(lpAppName: LPCSTR, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileSectionA".} - proc GetPrivateProfileInt*(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT, lpFileName: LPCSTR): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileIntA".} - proc GetPrivateProfileString*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpDefault: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStringA".} - proc WritePrivateProfileString*(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStringA".} - proc GetPrivateProfileSection*(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionA".} - proc WritePrivateProfileSection*(lpAppName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileSectionA".} - proc GetPrivateProfileSectionNames*(lpszReturnBuffer: LPSTR, nSize: DWORD, lpFileName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionNamesA".} - proc GetPrivateProfileStruct*(lpszSection: LPCSTR, lpszKey: LPCSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStructA".} - proc WritePrivateProfileStruct*(lpszSection: LPCSTR, lpszKey: LPCSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStructA".} - proc GetFirmwareEnvironmentVariableEx*(lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableExA".} - proc SetFirmwareEnvironmentVariableEx*(lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableExA".} - proc GetSystemWow64Directory*(lpBuffer: LPSTR, uSize: UINT): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWow64DirectoryA".} - proc SetDllDirectory*(lpPathName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDllDirectoryA".} - proc GetDllDirectory*(nBufferLength: DWORD, lpBuffer: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetDllDirectoryA".} - proc CreateDirectoryEx*(lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryExA".} - proc CreateDirectoryTransacted*(lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryTransactedA".} - proc RemoveDirectoryTransacted*(lpPathName: LPCSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryTransactedA".} - proc GetFullPathNameTransacted*(lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameTransactedA".} - proc CreateFileTransacted*(lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE, hTransaction: HANDLE, pusMiniVersion: PUSHORT, lpExtendedParameter: PVOID): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileTransactedA".} - proc SetFileAttributesTransacted*(lpFileName: LPCSTR, dwFileAttributes: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesTransactedA".} - proc GetFileAttributesTransacted*(lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesTransactedA".} - proc GetCompressedFileSize*(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeA".} - proc DeleteFileTransacted*(lpFileName: LPCSTR, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileTransactedA".} - proc GetCompressedFileSizeTransacted*(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeTransactedA".} - proc FindFirstFileTransacted*(lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD, hTransaction: HANDLE): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileTransactedA".} - proc CopyFileTransacted*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileTransactedA".} - proc CheckNameLegalDOS8Dot3*(lpName: LPCSTR, lpOemName: LPSTR, OemNameSize: DWORD, pbNameContainsSpaces: PBOOL, pbNameLegal: PBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CheckNameLegalDOS8Dot3A".} - proc CopyFile*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileA".} - proc CopyFileEx*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, pbCancel: LPBOOL, dwCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileExA".} - proc MoveFile*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileA".} - proc MoveFileEx*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileExA".} - proc MoveFileWithProgress*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileWithProgressA".} - proc MoveFileTransacted*(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, lpProgressRoutine: LPPROGRESS_ROUTINE, lpData: LPVOID, dwFlags: DWORD, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileTransactedA".} - proc ReplaceFile*(lpReplacedFileName: LPCSTR, lpReplacementFileName: LPCSTR, lpBackupFileName: LPCSTR, dwReplaceFlags: DWORD, lpExclude: LPVOID, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReplaceFileA".} - proc CreateHardLink*(lpFileName: LPCSTR, lpExistingFileName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkA".} - proc CreateHardLinkTransacted*(lpFileName: LPCSTR, lpExistingFileName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkTransactedA".} - proc GetNamedPipeHandleState*(hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPSTR, nMaxUserNameSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeHandleStateA".} - proc CallNamedPipe*(lpNamedPipeName: LPCSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CallNamedPipeA".} - proc SetVolumeLabel*(lpRootPathName: LPCSTR, lpVolumeName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeLabelA".} - proc ClearEventLog*(hEventLog: HANDLE, lpBackupFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ClearEventLogA".} - proc BackupEventLog*(hEventLog: HANDLE, lpBackupFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "BackupEventLogA".} - proc OpenEventLog*(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEventLogA".} - proc RegisterEventSource*(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterEventSourceA".} - proc OpenBackupEventLog*(lpUNCServerName: LPCSTR, lpFileName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenBackupEventLogA".} - proc ReadEventLog*(hEventLog: HANDLE, dwReadFlags: DWORD, dwRecordOffset: DWORD, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, pnBytesRead: ptr DWORD, pnMinNumberOfBytesNeeded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReadEventLogA".} - proc ReportEvent*(hEventLog: HANDLE, wType: WORD, wCategory: WORD, dwEventID: DWORD, lpUserSid: PSID, wNumStrings: WORD, dwDataSize: DWORD, lpStrings: ptr LPCSTR, lpRawData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReportEventA".} - proc IsBadStringPtr*(lpsz: LPCSTR, ucchMax: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "IsBadStringPtrA".} - proc LookupPrivilegeValue*(lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeValueA".} - proc LookupPrivilegeName*(lpSystemName: LPCSTR, lpLuid: PLUID, lpName: LPSTR, cchName: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeNameA".} - proc LookupPrivilegeDisplayName*(lpSystemName: LPCSTR, lpName: LPCSTR, lpDisplayName: LPSTR, cchDisplayName: LPDWORD, lpLanguageId: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeDisplayNameA".} - proc BuildCommDCB*(lpDef: LPCSTR, lpDCB: LPDCB): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBA".} - proc BuildCommDCBAndTimeouts*(lpDef: LPCSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBAndTimeoutsA".} - proc CommConfigDialog*(lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CommConfigDialogA".} - proc GetDefaultCommConfig*(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDefaultCommConfigA".} - proc SetDefaultCommConfig*(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDefaultCommConfigA".} - proc GetComputerName*(lpBuffer: LPSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameA".} - proc SetComputerName*(lpComputerName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameA".} - proc DnsHostnameToComputerName*(Hostname: LPCSTR, ComputerName: LPSTR, nSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DnsHostnameToComputerNameA".} - proc GetUserName*(lpBuffer: LPSTR, pcbBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetUserNameA".} - proc LogonUser*(lpszUsername: LPCSTR, lpszDomain: LPCSTR, lpszPassword: LPCSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserA".} - proc LogonUserEx*(lpszUsername: LPCSTR, lpszDomain: LPCSTR, lpszPassword: LPCSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE, ppLogonSid: ptr PSID, ppProfileBuffer: ptr PVOID, pdwProfileLength: LPDWORD, pQuotaLimits: PQUOTA_LIMITS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserExA".} - proc CreatePrivateNamespace*(lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreatePrivateNamespaceA".} - proc OpenPrivateNamespace*(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenPrivateNamespaceA".} - proc CreateBoundaryDescriptor*(Name: LPCSTR, Flags: ULONG): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateBoundaryDescriptorA".} - proc GetCurrentHwProfile*(lpHwProfileInfo: LPHW_PROFILE_INFOA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetCurrentHwProfileA".} - proc VerifyVersionInfo*(lpVersionInformation: LPOSVERSIONINFOEXA, dwTypeMask: DWORD, dwlConditionMask: DWORDLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "VerifyVersionInfoA".} - proc CreateJobObject*(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateJobObjectA".} - proc OpenJobObject*(dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenJobObjectA".} - proc FindFirstVolumeMountPoint*(lpszRootPathName: LPCSTR, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeMountPointA".} - proc FindNextVolumeMountPoint*(hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeMountPointA".} - proc SetVolumeMountPoint*(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeMountPointA".} - proc CreateActCtx*(pActCtx: PCACTCTXA): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateActCtxA".} - proc FindActCtxSectionString*(dwFlags: DWORD, lpExtensionGuid: ptr GUID, ulSectionId: ULONG, lpStringToFind: LPCSTR, ReturnedData: PACTCTX_SECTION_KEYED_DATA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindActCtxSectionStringA".} - proc CreateSymbolicLink*(lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkA".} - proc CreateSymbolicLinkTransacted*(lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD, hTransaction: HANDLE): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkTransactedA".} - proc LookupAccountNameLocal*(lpAccountName: LPCSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountNameA(nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, peUse) - proc LookupAccountSidLocal*(Sid: PSID, Name: LPSTR, cchName: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE): WINBOOL {.winapi, inline.} = LookupAccountSidA(nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse) + proc SetEnvironmentStrings*( + NewEnvironment: LPCH + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentStringsA".} + + proc GetShortPathName*( + lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetShortPathNameA".} + + proc OpenMutex*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenMutexA".} + + proc OpenSemaphore*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenSemaphoreA".} + + proc OpenWaitableTimer*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpTimerName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenWaitableTimerA".} + + proc CreateFileMapping*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingA".} + + proc OpenFileMapping*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenFileMappingA".} + + proc GetLogicalDriveStrings*( + nBufferLength: DWORD, lpBuffer: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLogicalDriveStringsA".} + + proc CreateSemaphoreEx*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreExA".} + + proc CreateWaitableTimerEx*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, + lpTimerName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerExA".} + + proc CreateFileMappingNuma*( + hFile: HANDLE, + lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, + flProtect: DWORD, + dwMaximumSizeHigh: DWORD, + dwMaximumSizeLow: DWORD, + lpName: LPCSTR, + nndPreferred: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileMappingNumaA".} + + proc GetStartupInfo*( + lpStartupInfo: LPSTARTUPINFOA + ): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "GetStartupInfoA".} + + proc FindResourceEx*( + hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD + ): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceExA".} + + proc GetTempPath*( + nBufferLength: DWORD, lpBuffer: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempPathA".} + + proc GetTempFileName*( + lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: LPSTR + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetTempFileNameA".} + + proc DefineDosDevice*( + dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DefineDosDeviceA".} + + proc QueryDosDevice*( + lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "QueryDosDeviceA".} + + proc CreateNamedPipe*( + lpName: LPCSTR, + dwOpenMode: DWORD, + dwPipeMode: DWORD, + nMaxInstances: DWORD, + nOutBufferSize: DWORD, + nInBufferSize: DWORD, + nDefaultTimeOut: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateNamedPipeA".} + + proc WaitNamedPipe*( + lpNamedPipeName: LPCSTR, nTimeOut: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WaitNamedPipeA".} + + proc GetVolumeInformation*( + lpRootPathName: LPCSTR, + lpVolumeNameBuffer: LPSTR, + nVolumeNameSize: DWORD, + lpVolumeSerialNumber: LPDWORD, + lpMaximumComponentLength: LPDWORD, + lpFileSystemFlags: LPDWORD, + lpFileSystemNameBuffer: LPSTR, + nFileSystemNameSize: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeInformationA".} + + proc AccessCheckAndAuditAlarm*( + SubsystemName: LPCSTR, + HandleId: LPVOID, + ObjectTypeName: LPSTR, + ObjectName: LPSTR, + SecurityDescriptor: PSECURITY_DESCRIPTOR, + DesiredAccess: DWORD, + GenericMapping: PGENERIC_MAPPING, + ObjectCreation: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckAndAuditAlarmA" + .} + + proc AccessCheckByTypeAndAuditAlarm*( + 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatus: LPBOOL, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "AccessCheckByTypeAndAuditAlarmA" + .} + + proc AccessCheckByTypeResultListAndAuditAlarm*( + 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "advapi32", + importc: "AccessCheckByTypeResultListAndAuditAlarmA" + .} + + proc AccessCheckByTypeResultListAndAuditAlarmByHandle*( + 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: WINBOOL, + GrantedAccess: LPDWORD, + AccessStatusList: LPDWORD, + pfGenerateOnClose: LPBOOL, + ): WINBOOL {. + winapi, + stdcall, + dynlib: "advapi32", + importc: "AccessCheckByTypeResultListAndAuditAlarmByHandleA" + .} + + proc ObjectOpenAuditAlarm*( + SubsystemName: LPCSTR, + HandleId: LPVOID, + ObjectTypeName: LPSTR, + ObjectName: LPSTR, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ClientToken: HANDLE, + DesiredAccess: DWORD, + GrantedAccess: DWORD, + Privileges: PPRIVILEGE_SET, + ObjectCreation: WINBOOL, + AccessGranted: WINBOOL, + GenerateOnClose: LPBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectOpenAuditAlarmA".} + + proc ObjectPrivilegeAuditAlarm*( + SubsystemName: LPCSTR, + HandleId: LPVOID, + ClientToken: HANDLE, + DesiredAccess: DWORD, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "ObjectPrivilegeAuditAlarmA" + .} + + proc ObjectCloseAuditAlarm*( + SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectCloseAuditAlarmA".} + + proc ObjectDeleteAuditAlarm*( + SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ObjectDeleteAuditAlarmA".} + + proc PrivilegedServiceAuditAlarm*( + SubsystemName: LPCSTR, + ServiceName: LPCSTR, + ClientToken: HANDLE, + Privileges: PPRIVILEGE_SET, + AccessGranted: WINBOOL, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "PrivilegedServiceAuditAlarmA" + .} + + proc SetFileSecurity*( + lpFileName: LPCSTR, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "SetFileSecurityA".} + + proc GetFileSecurity*( + lpFileName: LPCSTR, + RequestedInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + nLength: DWORD, + lpnLengthNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetFileSecurityA".} + + proc SetComputerNameEx*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCTSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameExA".} + + proc CreateProcessAsUser*( + hToken: HANDLE, + lpApplicationName: LPCSTR, + lpCommandLine: LPSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCSTR, + lpStartupInfo: LPSTARTUPINFOA, + lpProcessInformation: LPPROCESS_INFORMATION, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CreateProcessAsUserA".} + + proc FindFirstVolume*( + lpszVolumeName: LPSTR, cchBufferLength: DWORD + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeA".} + + proc FindNextVolume*( + hFindVolume: HANDLE, lpszVolumeName: LPSTR, cchBufferLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeA".} + + proc DeleteVolumeMountPoint*( + lpszVolumeMountPoint: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteVolumeMountPointA".} + + proc GetVolumeNameForVolumeMountPoint*( + lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPSTR, cchBufferLength: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetVolumeNameForVolumeMountPointA" + .} + + proc GetVolumePathName*( + lpszFileName: LPCSTR, lpszVolumePathName: LPSTR, cchBufferLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNameA".} + + proc GetVolumePathNamesForVolumeName*( + lpszVolumeName: LPCSTR, + lpszVolumePathNames: LPCH, + cchBufferLength: DWORD, + lpcchReturnLength: PDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetVolumePathNamesForVolumeNameA" + .} + + proc OutputDebugString*( + lpOutputString: LPCSTR + ): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "OutputDebugStringA".} + + proc CreateFile*( + lpFileName: LPCSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileA".} + + proc FindFirstChangeNotification*( + lpPathName: LPCSTR, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD + ): HANDLE {. + winapi, stdcall, dynlib: "kernel32", importc: "FindFirstChangeNotificationA" + .} + + proc FindFirstFile*( + lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileA".} + + proc GetDiskFreeSpace*( + lpRootPathName: LPCSTR, + lpSectorsPerCluster: LPDWORD, + lpBytesPerSector: LPDWORD, + lpNumberOfFreeClusters: LPDWORD, + lpTotalNumberOfClusters: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceA".} + + proc GetDriveType*( + lpRootPathName: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetDriveTypeA".} + + proc GetFileAttributes*( + lpFileName: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesA".} + + proc GetFullPathName*( + lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ptr LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameA".} + + proc GetLongPathName*( + lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameA".} + + proc GetFinalPathNameByHandle*( + hFile: HANDLE, lpszFilePath: LPSTR, cchFilePath: DWORD, dwFlags: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetFinalPathNameByHandleA".} + + proc CreateDirectory*( + lpPathName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryA".} + + proc DeleteFile*( + lpFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileA".} + + proc FindFirstFileEx*( + lpFileName: LPCSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileExA".} + + proc FindNextFile*( + hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FindNextFileA".} + + proc GetDiskFreeSpaceEx*( + lpDirectoryName: LPCSTR, + lpFreeBytesAvailableToCaller: PULARGE_INTEGER, + lpTotalNumberOfBytes: PULARGE_INTEGER, + lpTotalNumberOfFreeBytes: PULARGE_INTEGER, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDiskFreeSpaceExA".} + + proc GetFileAttributesEx*( + lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesExA".} + + proc RemoveDirectory*( + lpPathName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryA".} + + proc SetFileAttributes*( + lpFileName: LPCSTR, dwFileAttributes: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesA".} + + proc GetModuleHandleEx*( + dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ptr HMODULE + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleExA".} + + proc LoadString*( + hInstance: HINSTANCE, uID: UINT, lpBuffer: LPSTR, cchBufferMax: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "LoadStringA".} + + proc GetModuleFileName*( + hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleFileNameA".} + + proc GetModuleHandle*( + lpModuleName: LPCSTR + ): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "GetModuleHandleA".} + + proc LoadLibraryEx*( + lpLibFileName: LPCSTR, hFile: HANDLE, dwFlags: DWORD + ): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryExA".} + + proc EnumResourceLanguages*( + hModule: HMODULE, + lpType: LPCSTR, + lpName: LPCSTR, + lpEnumFunc: ENUMRESLANGPROCA, + lParam: LONG_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesA".} + + proc EnumResourceLanguagesEx*( + hModule: HMODULE, + lpType: LPCSTR, + lpName: LPCSTR, + lpEnumFunc: ENUMRESLANGPROCA, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceLanguagesExA" + .} + + proc EnumResourceNamesEx*( + hModule: HMODULE, + lpType: LPCSTR, + lpEnumFunc: ENUMRESNAMEPROCA, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesExA".} + + proc EnumResourceTypesEx*( + hModule: HMODULE, + lpEnumFunc: ENUMRESTYPEPROCA, + lParam: LONG_PTR, + dwFlags: DWORD, + LangId: LANGID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesExA".} + + proc ExpandEnvironmentStrings*( + lpSrc: LPCSTR, lpDst: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "ExpandEnvironmentStringsA".} + + proc FreeEnvironmentStrings*( + penv: LPCH + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FreeEnvironmentStringsA".} + + proc GetCommandLine*(): LPSTR {. + winapi, stdcall, dynlib: "kernel32", importc: "GetCommandLineA" + .} + + proc GetCurrentDirectory*( + nBufferLength: DWORD, lpBuffer: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrentDirectoryA".} + + proc GetEnvironmentVariable*( + lpName: LPCSTR, lpBuffer: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetEnvironmentVariableA".} + + proc NeedCurrentDirectoryForExePath*( + ExeName: LPCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "NeedCurrentDirectoryForExePathA" + .} + + proc SearchPath*( + lpPath: LPCSTR, + lpFileName: LPCSTR, + lpExtension: LPCSTR, + nBufferLength: DWORD, + lpBuffer: LPSTR, + lpFilePart: ptr LPSTR, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "SearchPathA".} + + proc SetCurrentDirectory*( + lpPathName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCurrentDirectoryA".} + + proc SetEnvironmentVariable*( + lpName: LPCSTR, lpValue: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetEnvironmentVariableA".} + + proc CreateProcess*( + lpApplicationName: LPCSTR, + lpCommandLine: LPSTR, + lpProcessAttributes: LPSECURITY_ATTRIBUTES, + lpThreadAttributes: LPSECURITY_ATTRIBUTES, + bInheritHandles: WINBOOL, + dwCreationFlags: DWORD, + lpEnvironment: LPVOID, + lpCurrentDirectory: LPCSTR, + lpStartupInfo: LPSTARTUPINFOA, + lpProcessInformation: LPPROCESS_INFORMATION, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateProcessA".} + + proc CreateMutexEx*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexExA".} + + proc CreateEventEx*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + lpName: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: DWORD, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventExA".} + + proc OpenEvent*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenEventA".} + + proc CreateMutex*( + lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: WINBOOL, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMutexA".} + + proc CreateEvent*( + lpEventAttributes: LPSECURITY_ATTRIBUTES, + bManualReset: WINBOOL, + bInitialState: WINBOOL, + lpName: LPCSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateEventA".} + + proc GetSystemDirectory*( + lpBuffer: LPSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemDirectoryA".} + + proc GetWindowsDirectory*( + lpBuffer: LPSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetWindowsDirectoryA".} + + proc GetSystemWindowsDirectory*( + lpBuffer: LPSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWindowsDirectoryA".} + + proc GetComputerNameEx*( + NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPSTR, nSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameExA".} + + proc GetVersionEx*( + lpVersionInformation: LPOSVERSIONINFOA + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetVersionExA".} + + proc GetBinaryType*( + lpApplicationName: LPCSTR, lpBinaryType: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetBinaryTypeA".} + + proc GetLongPathNameTransacted*( + lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD, hTransaction: HANDLE + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetLongPathNameTransactedA" + .} + + proc SetFileShortName*( + hFile: HANDLE, lpShortName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetFileShortNameA".} + + proc FormatMessage*( + dwFlags: DWORD, + lpSource: LPCVOID, + dwMessageId: DWORD, + dwLanguageId: DWORD, + lpBuffer: LPSTR, + nSize: DWORD, + Arguments: ptr va_list, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "FormatMessageA".} + + proc CreateMailslot*( + lpName: LPCSTR, + nMaxMessageSize: DWORD, + lReadTimeout: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateMailslotA".} + + proc EncryptFile*( + lpFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EncryptFileA".} + + proc DecryptFile*( + lpFileName: LPCSTR, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "DecryptFileA".} + + proc FileEncryptionStatus*( + lpFileName: LPCSTR, lpStatus: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "FileEncryptionStatusA".} + + proc OpenEncryptedFileRaw*( + lpFileName: LPCSTR, ulFlags: ULONG, pvContext: ptr PVOID + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEncryptedFileRawA".} + + proc lstrcmp*( + lpString1: LPCSTR, lpString2: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpA".} + + proc lstrcmpi*( + lpString1: LPCSTR, lpString2: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcmpiA".} + + proc lstrcpyn*( + lpString1: LPSTR, lpString2: LPCSTR, iMaxLength: int32 + ): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpynA".} + + proc lstrcpy*( + lpString1: LPSTR, lpString2: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcpyA".} + + proc lstrcat*( + lpString1: LPSTR, lpString2: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "kernel32", importc: "lstrcatA".} + + proc lstrlen*( + lpString: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "lstrlenA".} + + proc CreateSemaphore*( + lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, + lInitialCount: LONG, + lMaximumCount: LONG, + lpName: LPCSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSemaphoreA".} + + proc CreateWaitableTimer*( + lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: WINBOOL, lpTimerName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateWaitableTimerA".} + + proc LoadLibrary*( + lpLibFileName: LPCSTR + ): HMODULE {.winapi, stdcall, dynlib: "kernel32", importc: "LoadLibraryA".} + + proc QueryFullProcessImageName*( + hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPSTR, lpdwSize: PDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "QueryFullProcessImageNameA" + .} + + proc FatalAppExit*( + uAction: UINT, lpMessageText: LPCSTR + ): VOID {.winapi, stdcall, dynlib: "kernel32", importc: "FatalAppExitA".} + + proc GetFirmwareEnvironmentVariable*( + lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableA" + .} + + proc SetFirmwareEnvironmentVariable*( + lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableA" + .} + + proc FindResource*( + hModule: HMODULE, lpName: LPCSTR, lpType: LPCSTR + ): HRSRC {.winapi, stdcall, dynlib: "kernel32", importc: "FindResourceA".} + + proc EnumResourceTypes*( + hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceTypesA".} + + proc EnumResourceNames*( + hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumResourceNamesA".} + + proc BeginUpdateResource*( + pFileName: LPCSTR, bDeleteExistingResources: WINBOOL + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "BeginUpdateResourceA".} + + proc UpdateResource*( + hUpdate: HANDLE, + lpType: LPCSTR, + lpName: LPCSTR, + wLanguage: WORD, + lpData: LPVOID, + cb: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "UpdateResourceA".} + + proc EndUpdateResource*( + hUpdate: HANDLE, fDiscard: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EndUpdateResourceA".} + + proc GlobalAddAtom*( + lpString: LPCSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomA".} + + proc GlobalAddAtomEx*( + lpString: LPCSTR, Flags: DWORD + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalAddAtomExA".} + + proc GlobalFindAtom*( + lpString: LPCSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalFindAtomA".} + + proc GlobalGetAtomName*( + nAtom: ATOM, lpBuffer: LPSTR, nSize: int32 + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GlobalGetAtomNameA".} + + proc AddAtom*( + lpString: LPCSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "AddAtomA".} + + proc FindAtom*( + lpString: LPCSTR + ): ATOM {.winapi, stdcall, dynlib: "kernel32", importc: "FindAtomA".} + + proc GetAtomName*( + nAtom: ATOM, lpBuffer: LPSTR, nSize: int32 + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetAtomNameA".} + + proc GetProfileInt*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileIntA".} + + proc GetProfileString*( + lpAppName: LPCSTR, + lpKeyName: LPCSTR, + lpDefault: LPCSTR, + lpReturnedString: LPSTR, + nSize: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileStringA".} + + proc WriteProfileString*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileStringA".} + + proc GetProfileSection*( + lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetProfileSectionA".} + + proc WriteProfileSection*( + lpAppName: LPCSTR, lpString: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteProfileSectionA".} + + proc GetPrivateProfileInt*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT, lpFileName: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileIntA".} + + proc GetPrivateProfileString*( + lpAppName: LPCSTR, + lpKeyName: LPCSTR, + lpDefault: LPCSTR, + lpReturnedString: LPSTR, + nSize: DWORD, + lpFileName: LPCSTR, + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStringA".} + + proc WritePrivateProfileString*( + lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStringA" + .} + + proc GetPrivateProfileSection*( + lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionA".} + + proc WritePrivateProfileSection*( + lpAppName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileSectionA" + .} + + proc GetPrivateProfileSectionNames*( + lpszReturnBuffer: LPSTR, nSize: DWORD, lpFileName: LPCSTR + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileSectionNamesA" + .} + + proc GetPrivateProfileStruct*( + lpszSection: LPCSTR, + lpszKey: LPCSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetPrivateProfileStructA" + .} + + proc WritePrivateProfileStruct*( + lpszSection: LPCSTR, + lpszKey: LPCSTR, + lpStruct: LPVOID, + uSizeStruct: UINT, + szFile: LPCSTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WritePrivateProfileStructA" + .} + + proc GetFirmwareEnvironmentVariableEx*( + lpName: LPCSTR, + lpGuid: LPCSTR, + pBuffer: PVOID, + nSize: DWORD, + pdwAttribubutes: PDWORD, + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFirmwareEnvironmentVariableExA" + .} + + proc SetFirmwareEnvironmentVariableEx*( + lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "SetFirmwareEnvironmentVariableExA" + .} + + proc GetSystemWow64Directory*( + lpBuffer: LPSTR, uSize: UINT + ): UINT {.winapi, stdcall, dynlib: "kernel32", importc: "GetSystemWow64DirectoryA".} + + proc SetDllDirectory*( + lpPathName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDllDirectoryA".} + + proc GetDllDirectory*( + nBufferLength: DWORD, lpBuffer: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetDllDirectoryA".} + + proc CreateDirectoryEx*( + lpTemplateDirectory: LPCSTR, + lpNewDirectory: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryExA".} + + proc CreateDirectoryTransacted*( + lpTemplateDirectory: LPCSTR, + lpNewDirectory: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateDirectoryTransactedA" + .} + + proc RemoveDirectoryTransacted*( + lpPathName: LPCSTR, hTransaction: HANDLE + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "RemoveDirectoryTransactedA" + .} + + proc GetFullPathNameTransacted*( + lpFileName: LPCSTR, + nBufferLength: DWORD, + lpBuffer: LPSTR, + lpFilePart: ptr LPSTR, + hTransaction: HANDLE, + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFullPathNameTransactedA" + .} + + proc CreateFileTransacted*( + lpFileName: LPCSTR, + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + dwCreationDisposition: DWORD, + dwFlagsAndAttributes: DWORD, + hTemplateFile: HANDLE, + hTransaction: HANDLE, + pusMiniVersion: PUSHORT, + lpExtendedParameter: PVOID, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateFileTransactedA".} + + proc SetFileAttributesTransacted*( + lpFileName: LPCSTR, dwFileAttributes: DWORD, hTransaction: HANDLE + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "SetFileAttributesTransactedA" + .} + + proc GetFileAttributesTransacted*( + lpFileName: LPCSTR, + fInfoLevelId: GET_FILEEX_INFO_LEVELS, + lpFileInformation: LPVOID, + hTransaction: HANDLE, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetFileAttributesTransactedA" + .} + + proc GetCompressedFileSize*( + lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeA".} + + proc DeleteFileTransacted*( + lpFileName: LPCSTR, hTransaction: HANDLE + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "DeleteFileTransactedA".} + + proc GetCompressedFileSizeTransacted*( + lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE + ): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetCompressedFileSizeTransactedA" + .} + + proc FindFirstFileTransacted*( + lpFileName: LPCSTR, + fInfoLevelId: FINDEX_INFO_LEVELS, + lpFindFileData: LPVOID, + fSearchOp: FINDEX_SEARCH_OPS, + lpSearchFilter: LPVOID, + dwAdditionalFlags: DWORD, + hTransaction: HANDLE, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "FindFirstFileTransactedA".} + + proc CopyFileTransacted*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + hTransaction: HANDLE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileTransactedA".} + + proc CheckNameLegalDOS8Dot3*( + lpName: LPCSTR, + lpOemName: LPSTR, + OemNameSize: DWORD, + pbNameContainsSpaces: PBOOL, + pbNameLegal: PBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CheckNameLegalDOS8Dot3A".} + + proc CopyFile*( + lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: WINBOOL + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileA".} + + proc CopyFileEx*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + pbCancel: LPBOOL, + dwCopyFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CopyFileExA".} + + proc MoveFile*( + lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileA".} + + proc MoveFileEx*( + lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileExA".} + + proc MoveFileWithProgress*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileWithProgressA".} + + proc MoveFileTransacted*( + lpExistingFileName: LPCSTR, + lpNewFileName: LPCSTR, + lpProgressRoutine: LPPROGRESS_ROUTINE, + lpData: LPVOID, + dwFlags: DWORD, + hTransaction: HANDLE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "MoveFileTransactedA".} + + proc ReplaceFile*( + lpReplacedFileName: LPCSTR, + lpReplacementFileName: LPCSTR, + lpBackupFileName: LPCSTR, + dwReplaceFlags: DWORD, + lpExclude: LPVOID, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReplaceFileA".} + + proc CreateHardLink*( + lpFileName: LPCSTR, + lpExistingFileName: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkA".} + + proc CreateHardLinkTransacted*( + lpFileName: LPCSTR, + lpExistingFileName: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + hTransaction: HANDLE, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateHardLinkTransactedA" + .} + + proc GetNamedPipeHandleState*( + hNamedPipe: HANDLE, + lpState: LPDWORD, + lpCurInstances: LPDWORD, + lpMaxCollectionCount: LPDWORD, + lpCollectDataTimeout: LPDWORD, + lpUserName: LPSTR, + nMaxUserNameSize: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "GetNamedPipeHandleStateA" + .} + + proc CallNamedPipe*( + lpNamedPipeName: LPCSTR, + lpInBuffer: LPVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesRead: LPDWORD, + nTimeOut: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CallNamedPipeA".} + + proc SetVolumeLabel*( + lpRootPathName: LPCSTR, lpVolumeName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeLabelA".} + + proc ClearEventLog*( + hEventLog: HANDLE, lpBackupFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ClearEventLogA".} + + proc BackupEventLog*( + hEventLog: HANDLE, lpBackupFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "BackupEventLogA".} + + proc OpenEventLog*( + lpUNCServerName: LPCSTR, lpSourceName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenEventLogA".} + + proc RegisterEventSource*( + lpUNCServerName: LPCSTR, lpSourceName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterEventSourceA".} + + proc OpenBackupEventLog*( + lpUNCServerName: LPCSTR, lpFileName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenBackupEventLogA".} + + proc ReadEventLog*( + hEventLog: HANDLE, + dwReadFlags: DWORD, + dwRecordOffset: DWORD, + lpBuffer: LPVOID, + nNumberOfBytesToRead: DWORD, + pnBytesRead: ptr DWORD, + pnMinNumberOfBytesNeeded: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReadEventLogA".} + + proc ReportEvent*( + hEventLog: HANDLE, + wType: WORD, + wCategory: WORD, + dwEventID: DWORD, + lpUserSid: PSID, + wNumStrings: WORD, + dwDataSize: DWORD, + lpStrings: ptr LPCSTR, + lpRawData: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ReportEventA".} + + proc IsBadStringPtr*( + lpsz: LPCSTR, ucchMax: UINT_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "IsBadStringPtrA".} + + proc LookupPrivilegeValue*( + lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeValueA".} + + proc LookupPrivilegeName*( + lpSystemName: LPCSTR, lpLuid: PLUID, lpName: LPSTR, cchName: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeNameA".} + + proc LookupPrivilegeDisplayName*( + lpSystemName: LPCSTR, + lpName: LPCSTR, + lpDisplayName: LPSTR, + cchDisplayName: LPDWORD, + lpLanguageId: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "LookupPrivilegeDisplayNameA" + .} + + proc BuildCommDCB*( + lpDef: LPCSTR, lpDCB: LPDCB + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBA".} + + proc BuildCommDCBAndTimeouts*( + lpDef: LPCSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "BuildCommDCBAndTimeoutsA" + .} + + proc CommConfigDialog*( + lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "CommConfigDialogA".} + + proc GetDefaultCommConfig*( + lpszName: LPCSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetDefaultCommConfigA".} + + proc SetDefaultCommConfig*( + lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetDefaultCommConfigA".} + + proc GetComputerName*( + lpBuffer: LPSTR, nSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetComputerNameA".} + + proc SetComputerName*( + lpComputerName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetComputerNameA".} + + proc DnsHostnameToComputerName*( + Hostname: LPCSTR, ComputerName: LPSTR, nSize: LPDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "DnsHostnameToComputerNameA" + .} + + proc GetUserName*( + lpBuffer: LPSTR, pcbBuffer: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetUserNameA".} + + proc LogonUser*( + lpszUsername: LPCSTR, + lpszDomain: LPCSTR, + lpszPassword: LPCSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserA".} + + proc LogonUserEx*( + lpszUsername: LPCSTR, + lpszDomain: LPCSTR, + lpszPassword: LPCSTR, + dwLogonType: DWORD, + dwLogonProvider: DWORD, + phToken: PHANDLE, + ppLogonSid: ptr PSID, + ppProfileBuffer: ptr PVOID, + pdwProfileLength: LPDWORD, + pQuotaLimits: PQUOTA_LIMITS, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "LogonUserExA".} + + proc CreatePrivateNamespace*( + lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, + lpBoundaryDescriptor: LPVOID, + lpAliasPrefix: LPCSTR, + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreatePrivateNamespaceA".} + + proc OpenPrivateNamespace*( + lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenPrivateNamespaceA".} + + proc CreateBoundaryDescriptor*( + Name: LPCSTR, Flags: ULONG + ): HANDLE {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateBoundaryDescriptorA" + .} + + proc GetCurrentHwProfile*( + lpHwProfileInfo: LPHW_PROFILE_INFOA + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetCurrentHwProfileA".} + + proc VerifyVersionInfo*( + lpVersionInformation: LPOSVERSIONINFOEXA, + dwTypeMask: DWORD, + dwlConditionMask: DWORDLONG, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "VerifyVersionInfoA".} + + proc CreateJobObject*( + lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateJobObjectA".} + + proc OpenJobObject*( + dwDesiredAccess: DWORD, bInheritHandle: WINBOOL, lpName: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "OpenJobObjectA".} + + proc FindFirstVolumeMountPoint*( + lpszRootPathName: LPCSTR, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD + ): HANDLE {. + winapi, stdcall, dynlib: "kernel32", importc: "FindFirstVolumeMountPointA" + .} + + proc FindNextVolumeMountPoint*( + hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "FindNextVolumeMountPointA" + .} + + proc SetVolumeMountPoint*( + lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetVolumeMountPointA".} + + proc CreateActCtx*( + pActCtx: PCACTCTXA + ): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc: "CreateActCtxA".} + + proc FindActCtxSectionString*( + dwFlags: DWORD, + lpExtensionGuid: ptr GUID, + ulSectionId: ULONG, + lpStringToFind: LPCSTR, + ReturnedData: PACTCTX_SECTION_KEYED_DATA, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "FindActCtxSectionStringA" + .} + + proc CreateSymbolicLink*( + lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD + ): BOOLEAN {.winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkA".} + + proc CreateSymbolicLinkTransacted*( + lpSymlinkFileName: LPCSTR, + lpTargetFileName: LPCSTR, + dwFlags: DWORD, + hTransaction: HANDLE, + ): BOOLEAN {. + winapi, stdcall, dynlib: "kernel32", importc: "CreateSymbolicLinkTransactedA" + .} + + proc LookupAccountNameLocal*( + lpAccountName: LPCSTR, + Sid: PSID, + cbSid: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, inline.} = + LookupAccountNameA( + nil, lpAccountName, Sid, cbSid, ReferencedDomainName, cchReferencedDomainName, + peUse, + ) + + proc LookupAccountSidLocal*( + Sid: PSID, + Name: LPSTR, + cchName: LPDWORD, + ReferencedDomainName: LPSTR, + cchReferencedDomainName: LPDWORD, + peUse: PSID_NAME_USE, + ): WINBOOL {.winapi, inline.} = + LookupAccountSidA( + nil, Sid, Name, cchName, ReferencedDomainName, cchReferencedDomainName, peUse + ) + when winimCpu64: - const - SCS_THIS_PLATFORM_BINARY* = SCS_64BIT_BINARY - proc GetEnabledXStateFeatures*(): DWORD64 {.winapi, stdcall, dynlib: "kernel32", importc.} - proc GetXStateFeaturesMask*(Context: PCONTEXT, FeatureMask: PDWORD64): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} - proc LocateXStateFeature*(Context: PCONTEXT, FeatureId: DWORD, Length: PDWORD): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} - proc SetXStateFeaturesMask*(Context: PCONTEXT, FeatureMask: DWORD64): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + const SCS_THIS_PLATFORM_BINARY* = SCS_64BIT_BINARY + proc GetEnabledXStateFeatures*(): DWORD64 {. + winapi, stdcall, dynlib: "kernel32", importc + .} + + proc GetXStateFeaturesMask*( + Context: PCONTEXT, FeatureMask: PDWORD64 + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + + proc LocateXStateFeature*( + Context: PCONTEXT, FeatureId: DWORD, Length: PDWORD + ): PVOID {.winapi, stdcall, dynlib: "kernel32", importc.} + + proc SetXStateFeaturesMask*( + Context: PCONTEXT, FeatureMask: DWORD64 + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + when winimCpu32: - const - SCS_THIS_PLATFORM_BINARY* = SCS_32BIT_BINARY + const SCS_THIS_PLATFORM_BINARY* = SCS_32BIT_BINARY diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wincodec.nim --- a/semicongine/thirdparty/winim/winim/inc/wincodec.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wincodec.nim Thu Aug 22 18:32:21 2024 +0700 @@ -28,6 +28,7 @@ WICPixelFormatGUID* = GUID REFWICPixelFormatGUID* = REFGUID WICColor* = UINT32 + const WINCODEC_SDK_VERSION* = 0x0236 wICDecodeMetadataCacheOnDemand* = 0x0 @@ -139,7 +140,8 @@ GUID_WICPixelFormat16bppGray* = DEFINE_GUID("6fddc324-4e03-4bfe-b185-3d77768dc90b") GUID_WICPixelFormat16bppBGR555* = DEFINE_GUID("6fddc324-4e03-4bfe-b185-3d77768dc909") GUID_WICPixelFormat16bppBGR565* = DEFINE_GUID("6fddc324-4e03-4bfe-b185-3d77768dc90a") - GUID_WICPixelFormat16bppBGRA5551* = DEFINE_GUID("05ec7c2b-f1e6-4961-ad46-e1cc810a87d2") + GUID_WICPixelFormat16bppBGRA5551* = + DEFINE_GUID("05ec7c2b-f1e6-4961-ad46-e1cc810a87d2") GUID_WICPixelFormat24bppBGR* = DEFINE_GUID("6fddc324-4e03-4bfe-b185-3d77768dc90c") GUID_WICPixelFormat24bppRGB* = DEFINE_GUID("6fddc324-4e03-4bfe-b185-3d77768dc90d") GUID_WICPixelFormat32bppBGR* = DEFINE_GUID("6fddc324-4e03-4bfe-b185-3d77768dc90e") @@ -230,422 +232,1979 @@ Y*: INT Width*: INT Height*: INT + WICBitmapPattern* {.pure.} = object Position*: ULARGE_INTEGER Length*: ULONG Pattern*: ptr BYTE Mask*: ptr BYTE EndOfStream*: WINBOOL + IWICColorContext* {.pure.} = object lpVtbl*: ptr IWICColorContextVtbl + IWICColorContextVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InitializeFromFilename*: proc(self: ptr IWICColorContext, wzFilename: LPCWSTR): HRESULT {.stdcall.} - InitializeFromMemory*: proc(self: ptr IWICColorContext, pbBuffer: ptr BYTE, cbBufferSize: UINT): HRESULT {.stdcall.} - InitializeFromExifColorSpace*: proc(self: ptr IWICColorContext, value: UINT): HRESULT {.stdcall.} - GetType*: proc(self: ptr IWICColorContext, pType: ptr WICColorContextType): HRESULT {.stdcall.} - GetProfileBytes*: proc(self: ptr IWICColorContext, cbBuffer: UINT, pbBuffer: ptr BYTE, pcbActual: ptr UINT): HRESULT {.stdcall.} - GetExifColorSpace*: proc(self: ptr IWICColorContext, pValue: ptr UINT): HRESULT {.stdcall.} + InitializeFromFilename*: + proc(self: ptr IWICColorContext, wzFilename: LPCWSTR): HRESULT {.stdcall.} + InitializeFromMemory*: proc( + self: ptr IWICColorContext, pbBuffer: ptr BYTE, cbBufferSize: UINT + ): HRESULT {.stdcall.} + InitializeFromExifColorSpace*: + proc(self: ptr IWICColorContext, value: UINT): HRESULT {.stdcall.} + GetType*: proc(self: ptr IWICColorContext, pType: ptr WICColorContextType): HRESULT {. + stdcall + .} + GetProfileBytes*: proc( + self: ptr IWICColorContext, + cbBuffer: UINT, + pbBuffer: ptr BYTE, + pcbActual: ptr UINT, + ): HRESULT {.stdcall.} + GetExifColorSpace*: + proc(self: ptr IWICColorContext, pValue: ptr UINT): HRESULT {.stdcall.} + IWICPalette* {.pure.} = object lpVtbl*: ptr IWICPaletteVtbl + IWICPaletteVtbl* {.pure, inheritable.} = object of IUnknownVtbl - InitializePredefined*: proc(self: ptr IWICPalette, ePaletteType: WICBitmapPaletteType, fAddTransparentColor: WINBOOL): HRESULT {.stdcall.} - InitializeCustom*: proc(self: ptr IWICPalette, pColors: ptr WICColor, colorCount: UINT): HRESULT {.stdcall.} - InitializeFromBitmap*: proc(self: ptr IWICPalette, pISurface: ptr IWICBitmapSource, colorCount: UINT, fAddTransparentColor: WINBOOL): HRESULT {.stdcall.} - InitializeFromPalette*: proc(self: ptr IWICPalette, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} - GetType*: proc(self: ptr IWICPalette, pePaletteType: ptr WICBitmapPaletteType): HRESULT {.stdcall.} + InitializePredefined*: proc( + self: ptr IWICPalette, + ePaletteType: WICBitmapPaletteType, + fAddTransparentColor: WINBOOL, + ): HRESULT {.stdcall.} + InitializeCustom*: proc( + self: ptr IWICPalette, pColors: ptr WICColor, colorCount: UINT + ): HRESULT {.stdcall.} + InitializeFromBitmap*: proc( + self: ptr IWICPalette, + pISurface: ptr IWICBitmapSource, + colorCount: UINT, + fAddTransparentColor: WINBOOL, + ): HRESULT {.stdcall.} + InitializeFromPalette*: + proc(self: ptr IWICPalette, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} + GetType*: proc( + self: ptr IWICPalette, pePaletteType: ptr WICBitmapPaletteType + ): HRESULT {.stdcall.} GetColorCount*: proc(self: ptr IWICPalette, pcCount: ptr UINT): HRESULT {.stdcall.} - GetColors*: proc(self: ptr IWICPalette, colorCount: UINT, pColors: ptr WICColor, pcActualColors: ptr UINT): HRESULT {.stdcall.} - IsBlackWhite*: proc(self: ptr IWICPalette, pfIsBlackWhite: ptr WINBOOL): HRESULT {.stdcall.} - IsGrayscale*: proc(self: ptr IWICPalette, pfIsGrayscale: ptr WINBOOL): HRESULT {.stdcall.} + GetColors*: proc( + self: ptr IWICPalette, + colorCount: UINT, + pColors: ptr WICColor, + pcActualColors: ptr UINT, + ): HRESULT {.stdcall.} + IsBlackWhite*: + proc(self: ptr IWICPalette, pfIsBlackWhite: ptr WINBOOL): HRESULT {.stdcall.} + IsGrayscale*: + proc(self: ptr IWICPalette, pfIsGrayscale: ptr WINBOOL): HRESULT {.stdcall.} HasAlpha*: proc(self: ptr IWICPalette, pfHasAlpha: ptr WINBOOL): HRESULT {.stdcall.} + IWICBitmapSource* {.pure.} = object lpVtbl*: ptr IWICBitmapSourceVtbl + IWICBitmapSourceVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSize*: proc(self: ptr IWICBitmapSource, puiWidth: ptr UINT, puiHeight: ptr UINT): HRESULT {.stdcall.} - GetPixelFormat*: proc(self: ptr IWICBitmapSource, pPixelFormat: ptr WICPixelFormatGUID): HRESULT {.stdcall.} - GetResolution*: proc(self: ptr IWICBitmapSource, pDpiX: ptr float64, pDpiY: ptr float64): HRESULT {.stdcall.} - CopyPalette*: proc(self: ptr IWICBitmapSource, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} - CopyPixels*: proc(self: ptr IWICBitmapSource, prc: ptr WICRect, cbStride: UINT, cbBufferSize: UINT, pbBuffer: ptr BYTE): HRESULT {.stdcall.} + GetSize*: proc( + self: ptr IWICBitmapSource, puiWidth: ptr UINT, puiHeight: ptr UINT + ): HRESULT {.stdcall.} + GetPixelFormat*: proc( + self: ptr IWICBitmapSource, pPixelFormat: ptr WICPixelFormatGUID + ): HRESULT {.stdcall.} + GetResolution*: proc( + self: ptr IWICBitmapSource, pDpiX: ptr float64, pDpiY: ptr float64 + ): HRESULT {.stdcall.} + CopyPalette*: + proc(self: ptr IWICBitmapSource, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} + CopyPixels*: proc( + self: ptr IWICBitmapSource, + prc: ptr WICRect, + cbStride: UINT, + cbBufferSize: UINT, + pbBuffer: ptr BYTE, + ): HRESULT {.stdcall.} + IWICBitmapLock* {.pure.} = object lpVtbl*: ptr IWICBitmapLockVtbl + IWICBitmapLockVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetSize*: proc(self: ptr IWICBitmapLock, pWidth: ptr UINT, pHeight: ptr UINT): HRESULT {.stdcall.} + GetSize*: proc( + self: ptr IWICBitmapLock, pWidth: ptr UINT, pHeight: ptr UINT + ): HRESULT {.stdcall.} GetStride*: proc(self: ptr IWICBitmapLock, pcbStride: ptr UINT): HRESULT {.stdcall.} - GetDataPointer*: proc(self: ptr IWICBitmapLock, pcbBufferSize: ptr UINT, ppbData: ptr ptr BYTE): HRESULT {.stdcall.} - GetPixelFormat*: proc(self: ptr IWICBitmapLock, pPixelFormat: ptr WICPixelFormatGUID): HRESULT {.stdcall.} + GetDataPointer*: proc( + self: ptr IWICBitmapLock, pcbBufferSize: ptr UINT, ppbData: ptr ptr BYTE + ): HRESULT {.stdcall.} + GetPixelFormat*: proc( + self: ptr IWICBitmapLock, pPixelFormat: ptr WICPixelFormatGUID + ): HRESULT {.stdcall.} + IWICBitmapFlipRotator* {.pure.} = object lpVtbl*: ptr IWICBitmapFlipRotatorVtbl + IWICBitmapFlipRotatorVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - Initialize*: proc(self: ptr IWICBitmapFlipRotator, pISource: ptr IWICBitmapSource, options: WICBitmapTransformOptions): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICBitmapFlipRotator, + pISource: ptr IWICBitmapSource, + options: WICBitmapTransformOptions, + ): HRESULT {.stdcall.} + IWICBitmap* {.pure.} = object lpVtbl*: ptr IWICBitmapVtbl + IWICBitmapVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - Lock*: proc(self: ptr IWICBitmap, prcLock: ptr WICRect, flags: DWORD, ppILock: ptr ptr IWICBitmapLock): HRESULT {.stdcall.} - SetPalette*: proc(self: ptr IWICBitmap, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} - SetResolution*: proc(self: ptr IWICBitmap, dpiX: float64, dpiY: float64): HRESULT {.stdcall.} + Lock*: proc( + self: ptr IWICBitmap, + prcLock: ptr WICRect, + flags: DWORD, + ppILock: ptr ptr IWICBitmapLock, + ): HRESULT {.stdcall.} + SetPalette*: + proc(self: ptr IWICBitmap, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} + SetResolution*: + proc(self: ptr IWICBitmap, dpiX: float64, dpiY: float64): HRESULT {.stdcall.} + IWICComponentInfo* {.pure.} = object lpVtbl*: ptr IWICComponentInfoVtbl + IWICComponentInfoVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetComponentType*: proc(self: ptr IWICComponentInfo, pType: ptr WICComponentType): HRESULT {.stdcall.} + GetComponentType*: proc( + self: ptr IWICComponentInfo, pType: ptr WICComponentType + ): HRESULT {.stdcall.} GetCLSID*: proc(self: ptr IWICComponentInfo, pclsid: ptr CLSID): HRESULT {.stdcall.} - GetSigningStatus*: proc(self: ptr IWICComponentInfo, pStatus: ptr DWORD): HRESULT {.stdcall.} - GetAuthor*: proc(self: ptr IWICComponentInfo, cchAuthor: UINT, wzAuthor: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetVendorGUID*: proc(self: ptr IWICComponentInfo, pguidVendor: ptr GUID): HRESULT {.stdcall.} - GetVersion*: proc(self: ptr IWICComponentInfo, cchVersion: UINT, wzVersion: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetSpecVersion*: proc(self: ptr IWICComponentInfo, cchSpecVersion: UINT, wzSpecVersion: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetFriendlyName*: proc(self: ptr IWICComponentInfo, cchFriendlyName: UINT, wzFriendlyName: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} + GetSigningStatus*: + proc(self: ptr IWICComponentInfo, pStatus: ptr DWORD): HRESULT {.stdcall.} + GetAuthor*: proc( + self: ptr IWICComponentInfo, + cchAuthor: UINT, + wzAuthor: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetVendorGUID*: + proc(self: ptr IWICComponentInfo, pguidVendor: ptr GUID): HRESULT {.stdcall.} + GetVersion*: proc( + self: ptr IWICComponentInfo, + cchVersion: UINT, + wzVersion: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetSpecVersion*: proc( + self: ptr IWICComponentInfo, + cchSpecVersion: UINT, + wzSpecVersion: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetFriendlyName*: proc( + self: ptr IWICComponentInfo, + cchFriendlyName: UINT, + wzFriendlyName: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + IWICMetadataQueryReader* {.pure.} = object lpVtbl*: ptr IWICMetadataQueryReaderVtbl + IWICMetadataQueryReaderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - GetContainerFormat*: proc(self: ptr IWICMetadataQueryReader, pguidContainerFormat: ptr GUID): HRESULT {.stdcall.} - GetLocation*: proc(self: ptr IWICMetadataQueryReader, cchMaxLength: UINT, wzNamespace: ptr WCHAR, pcchActualLength: ptr UINT): HRESULT {.stdcall.} - GetMetadataByName*: proc(self: ptr IWICMetadataQueryReader, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT): HRESULT {.stdcall.} - GetEnumerator*: proc(self: ptr IWICMetadataQueryReader, ppIEnumString: ptr ptr IEnumString): HRESULT {.stdcall.} + GetContainerFormat*: proc( + self: ptr IWICMetadataQueryReader, pguidContainerFormat: ptr GUID + ): HRESULT {.stdcall.} + GetLocation*: proc( + self: ptr IWICMetadataQueryReader, + cchMaxLength: UINT, + wzNamespace: ptr WCHAR, + pcchActualLength: ptr UINT, + ): HRESULT {.stdcall.} + GetMetadataByName*: proc( + self: ptr IWICMetadataQueryReader, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT + ): HRESULT {.stdcall.} + GetEnumerator*: proc( + self: ptr IWICMetadataQueryReader, ppIEnumString: ptr ptr IEnumString + ): HRESULT {.stdcall.} + IWICMetadataQueryWriter* {.pure.} = object lpVtbl*: ptr IWICMetadataQueryWriterVtbl + IWICMetadataQueryWriterVtbl* {.pure, inheritable.} = object of IWICMetadataQueryReaderVtbl - SetMetadataByName*: proc(self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT): HRESULT {.stdcall.} - RemoveMetadataByName*: proc(self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR): HRESULT {.stdcall.} + SetMetadataByName*: proc( + self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT + ): HRESULT {.stdcall.} + RemoveMetadataByName*: + proc(self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR): HRESULT {.stdcall.} + IWICBitmapFrameDecode* {.pure.} = object lpVtbl*: ptr IWICBitmapFrameDecodeVtbl + IWICBitmapFrameDecodeVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - GetMetadataQueryReader*: proc(self: ptr IWICBitmapFrameDecode, ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader): HRESULT {.stdcall.} - GetColorContexts*: proc(self: ptr IWICBitmapFrameDecode, cCount: UINT, ppIColorContexts: ptr ptr IWICColorContext, pcActualCount: ptr UINT): HRESULT {.stdcall.} - GetThumbnail*: proc(self: ptr IWICBitmapFrameDecode, ppIThumbnail: ptr ptr IWICBitmapSource): HRESULT {.stdcall.} + GetMetadataQueryReader*: proc( + self: ptr IWICBitmapFrameDecode, + ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader, + ): HRESULT {.stdcall.} + GetColorContexts*: proc( + self: ptr IWICBitmapFrameDecode, + cCount: UINT, + ppIColorContexts: ptr ptr IWICColorContext, + pcActualCount: ptr UINT, + ): HRESULT {.stdcall.} + GetThumbnail*: proc( + self: ptr IWICBitmapFrameDecode, ppIThumbnail: ptr ptr IWICBitmapSource + ): HRESULT {.stdcall.} + IWICPixelFormatInfo* {.pure.} = object lpVtbl*: ptr IWICPixelFormatInfoVtbl + IWICPixelFormatInfoVtbl* {.pure, inheritable.} = object of IWICComponentInfoVtbl - GetFormatGUID*: proc(self: ptr IWICPixelFormatInfo, pFormat: ptr GUID): HRESULT {.stdcall.} - GetColorContext*: proc(self: ptr IWICPixelFormatInfo, ppIColorContext: ptr ptr IWICColorContext): HRESULT {.stdcall.} - GetBitsPerPixel*: proc(self: ptr IWICPixelFormatInfo, puiBitsPerPixel: ptr UINT): HRESULT {.stdcall.} - GetChannelCount*: proc(self: ptr IWICPixelFormatInfo, puiChannelCount: ptr UINT): HRESULT {.stdcall.} - GetChannelMask*: proc(self: ptr IWICPixelFormatInfo, uiChannelIndex: UINT, cbMaskBuffer: UINT, pbMaskBuffer: ptr BYTE, pcbActual: ptr UINT): HRESULT {.stdcall.} + GetFormatGUID*: + proc(self: ptr IWICPixelFormatInfo, pFormat: ptr GUID): HRESULT {.stdcall.} + GetColorContext*: proc( + self: ptr IWICPixelFormatInfo, ppIColorContext: ptr ptr IWICColorContext + ): HRESULT {.stdcall.} + GetBitsPerPixel*: proc( + self: ptr IWICPixelFormatInfo, puiBitsPerPixel: ptr UINT + ): HRESULT {.stdcall.} + GetChannelCount*: proc( + self: ptr IWICPixelFormatInfo, puiChannelCount: ptr UINT + ): HRESULT {.stdcall.} + GetChannelMask*: proc( + self: ptr IWICPixelFormatInfo, + uiChannelIndex: UINT, + cbMaskBuffer: UINT, + pbMaskBuffer: ptr BYTE, + pcbActual: ptr UINT, + ): HRESULT {.stdcall.} + IWICPixelFormatInfo2* {.pure.} = object lpVtbl*: ptr IWICPixelFormatInfo2Vtbl + IWICPixelFormatInfo2Vtbl* {.pure, inheritable.} = object of IWICPixelFormatInfoVtbl - SupportsTransparency*: proc(self: ptr IWICPixelFormatInfo2, pfSupportsTransparency: ptr WINBOOL): HRESULT {.stdcall.} - GetNumericRepresentation*: proc(self: ptr IWICPixelFormatInfo2, pNumericRepresentation: ptr WICPixelFormatNumericRepresentation): HRESULT {.stdcall.} + SupportsTransparency*: proc( + self: ptr IWICPixelFormatInfo2, pfSupportsTransparency: ptr WINBOOL + ): HRESULT {.stdcall.} + GetNumericRepresentation*: proc( + self: ptr IWICPixelFormatInfo2, + pNumericRepresentation: ptr WICPixelFormatNumericRepresentation, + ): HRESULT {.stdcall.} + IWICBitmapCodecInfo* {.pure.} = object lpVtbl*: ptr IWICBitmapCodecInfoVtbl + IWICBitmapCodecInfoVtbl* {.pure, inheritable.} = object of IWICComponentInfoVtbl - GetContainerFormat*: proc(self: ptr IWICBitmapCodecInfo, pguidContainerFormat: ptr GUID): HRESULT {.stdcall.} - GetPixelFormats*: proc(self: ptr IWICBitmapCodecInfo, cFormats: UINT, pguidPixelFormats: ptr GUID, pcActual: ptr UINT): HRESULT {.stdcall.} - GetColorManagementVersion*: proc(self: ptr IWICBitmapCodecInfo, cchColorManagementVersion: UINT, wzColorManagementVersion: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetDeviceManufacturer*: proc(self: ptr IWICBitmapCodecInfo, cchDeviceManufacturer: UINT, wzDeviceManufacturer: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetDeviceModels*: proc(self: ptr IWICBitmapCodecInfo, cchDeviceModels: UINT, wzDeviceModels: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetMimeTypes*: proc(self: ptr IWICBitmapCodecInfo, cchMimeTypes: UINT, wzMimeTypes: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - GetFileExtensions*: proc(self: ptr IWICBitmapCodecInfo, cchFileExtensions: UINT, wzFileExtensions: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.stdcall.} - DoesSupportAnimation*: proc(self: ptr IWICBitmapCodecInfo, pfSupportAnimation: ptr WINBOOL): HRESULT {.stdcall.} - DoesSupportChromaKey*: proc(self: ptr IWICBitmapCodecInfo, pfSupportChromaKey: ptr WINBOOL): HRESULT {.stdcall.} - DoesSupportLossless*: proc(self: ptr IWICBitmapCodecInfo, pfSupportLossless: ptr WINBOOL): HRESULT {.stdcall.} - DoesSupportMultiframe*: proc(self: ptr IWICBitmapCodecInfo, pfSupportMultiframe: ptr WINBOOL): HRESULT {.stdcall.} - MatchesMimeType*: proc(self: ptr IWICBitmapCodecInfo, wzMimeType: LPCWSTR, pfMatches: ptr WINBOOL): HRESULT {.stdcall.} + GetContainerFormat*: proc( + self: ptr IWICBitmapCodecInfo, pguidContainerFormat: ptr GUID + ): HRESULT {.stdcall.} + GetPixelFormats*: proc( + self: ptr IWICBitmapCodecInfo, + cFormats: UINT, + pguidPixelFormats: ptr GUID, + pcActual: ptr UINT, + ): HRESULT {.stdcall.} + GetColorManagementVersion*: proc( + self: ptr IWICBitmapCodecInfo, + cchColorManagementVersion: UINT, + wzColorManagementVersion: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetDeviceManufacturer*: proc( + self: ptr IWICBitmapCodecInfo, + cchDeviceManufacturer: UINT, + wzDeviceManufacturer: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetDeviceModels*: proc( + self: ptr IWICBitmapCodecInfo, + cchDeviceModels: UINT, + wzDeviceModels: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetMimeTypes*: proc( + self: ptr IWICBitmapCodecInfo, + cchMimeTypes: UINT, + wzMimeTypes: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + GetFileExtensions*: proc( + self: ptr IWICBitmapCodecInfo, + cchFileExtensions: UINT, + wzFileExtensions: ptr WCHAR, + pcchActual: ptr UINT, + ): HRESULT {.stdcall.} + DoesSupportAnimation*: proc( + self: ptr IWICBitmapCodecInfo, pfSupportAnimation: ptr WINBOOL + ): HRESULT {.stdcall.} + DoesSupportChromaKey*: proc( + self: ptr IWICBitmapCodecInfo, pfSupportChromaKey: ptr WINBOOL + ): HRESULT {.stdcall.} + DoesSupportLossless*: proc( + self: ptr IWICBitmapCodecInfo, pfSupportLossless: ptr WINBOOL + ): HRESULT {.stdcall.} + DoesSupportMultiframe*: proc( + self: ptr IWICBitmapCodecInfo, pfSupportMultiframe: ptr WINBOOL + ): HRESULT {.stdcall.} + MatchesMimeType*: proc( + self: ptr IWICBitmapCodecInfo, wzMimeType: LPCWSTR, pfMatches: ptr WINBOOL + ): HRESULT {.stdcall.} + IWICBitmapDecoder* {.pure.} = object lpVtbl*: ptr IWICBitmapDecoderVtbl + IWICBitmapDecoderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - QueryCapability*: proc(self: ptr IWICBitmapDecoder, pIStream: ptr IStream, pdwCapability: ptr DWORD): HRESULT {.stdcall.} - Initialize*: proc(self: ptr IWICBitmapDecoder, pIStream: ptr IStream, cacheOptions: WICDecodeOptions): HRESULT {.stdcall.} - GetContainerFormat*: proc(self: ptr IWICBitmapDecoder, pguidContainerFormat: ptr GUID): HRESULT {.stdcall.} - GetDecoderInfo*: proc(self: ptr IWICBitmapDecoder, ppIDecoderInfo: ptr ptr IWICBitmapDecoderInfo): HRESULT {.stdcall.} - CopyPalette*: proc(self: ptr IWICBitmapDecoder, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} - GetMetadataQueryReader*: proc(self: ptr IWICBitmapDecoder, ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader): HRESULT {.stdcall.} - GetPreview*: proc(self: ptr IWICBitmapDecoder, ppIBitmapSource: ptr ptr IWICBitmapSource): HRESULT {.stdcall.} - GetColorContexts*: proc(self: ptr IWICBitmapDecoder, cCount: UINT, ppIColorContexts: ptr ptr IWICColorContext, pcActualCount: ptr UINT): HRESULT {.stdcall.} - GetThumbnail*: proc(self: ptr IWICBitmapDecoder, ppIThumbnail: ptr ptr IWICBitmapSource): HRESULT {.stdcall.} - GetFrameCount*: proc(self: ptr IWICBitmapDecoder, pCount: ptr UINT): HRESULT {.stdcall.} - GetFrame*: proc(self: ptr IWICBitmapDecoder, index: UINT, ppIBitmapFrame: ptr ptr IWICBitmapFrameDecode): HRESULT {.stdcall.} + QueryCapability*: proc( + self: ptr IWICBitmapDecoder, pIStream: ptr IStream, pdwCapability: ptr DWORD + ): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICBitmapDecoder, pIStream: ptr IStream, cacheOptions: WICDecodeOptions + ): HRESULT {.stdcall.} + GetContainerFormat*: proc( + self: ptr IWICBitmapDecoder, pguidContainerFormat: ptr GUID + ): HRESULT {.stdcall.} + GetDecoderInfo*: proc( + self: ptr IWICBitmapDecoder, ppIDecoderInfo: ptr ptr IWICBitmapDecoderInfo + ): HRESULT {.stdcall.} + CopyPalette*: + proc(self: ptr IWICBitmapDecoder, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} + GetMetadataQueryReader*: proc( + self: ptr IWICBitmapDecoder, + ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader, + ): HRESULT {.stdcall.} + GetPreview*: proc( + self: ptr IWICBitmapDecoder, ppIBitmapSource: ptr ptr IWICBitmapSource + ): HRESULT {.stdcall.} + GetColorContexts*: proc( + self: ptr IWICBitmapDecoder, + cCount: UINT, + ppIColorContexts: ptr ptr IWICColorContext, + pcActualCount: ptr UINT, + ): HRESULT {.stdcall.} + GetThumbnail*: proc( + self: ptr IWICBitmapDecoder, ppIThumbnail: ptr ptr IWICBitmapSource + ): HRESULT {.stdcall.} + GetFrameCount*: + proc(self: ptr IWICBitmapDecoder, pCount: ptr UINT): HRESULT {.stdcall.} + GetFrame*: proc( + self: ptr IWICBitmapDecoder, + index: UINT, + ppIBitmapFrame: ptr ptr IWICBitmapFrameDecode, + ): HRESULT {.stdcall.} + IWICBitmapDecoderInfo* {.pure.} = object lpVtbl*: ptr IWICBitmapDecoderInfoVtbl + IWICBitmapDecoderInfoVtbl* {.pure, inheritable.} = object of IWICBitmapCodecInfoVtbl - GetPatterns*: proc(self: ptr IWICBitmapDecoderInfo, cbSizePatterns: UINT, pPatterns: ptr WICBitmapPattern, pcPatterns: ptr UINT, pcbPatternsActual: ptr UINT): HRESULT {.stdcall.} - MatchesPattern*: proc(self: ptr IWICBitmapDecoderInfo, pIStream: ptr IStream, pfMatches: ptr WINBOOL): HRESULT {.stdcall.} - CreateInstance*: proc(self: ptr IWICBitmapDecoderInfo, ppIBitmapDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.stdcall.} + GetPatterns*: proc( + self: ptr IWICBitmapDecoderInfo, + cbSizePatterns: UINT, + pPatterns: ptr WICBitmapPattern, + pcPatterns: ptr UINT, + pcbPatternsActual: ptr UINT, + ): HRESULT {.stdcall.} + MatchesPattern*: proc( + self: ptr IWICBitmapDecoderInfo, pIStream: ptr IStream, pfMatches: ptr WINBOOL + ): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr IWICBitmapDecoderInfo, ppIBitmapDecoder: ptr ptr IWICBitmapDecoder + ): HRESULT {.stdcall.} + IWICBitmapFrameEncode* {.pure.} = object lpVtbl*: ptr IWICBitmapFrameEncodeVtbl + IWICBitmapFrameEncodeVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IWICBitmapFrameEncode, pIEncoderOptions: ptr IPropertyBag2): HRESULT {.stdcall.} - SetSize*: proc(self: ptr IWICBitmapFrameEncode, uiWidth: UINT, uiHeight: UINT): HRESULT {.stdcall.} - SetResolution*: proc(self: ptr IWICBitmapFrameEncode, dpiX: float64, dpiY: float64): HRESULT {.stdcall.} - SetPixelFormat*: proc(self: ptr IWICBitmapFrameEncode, pPixelFormat: ptr WICPixelFormatGUID): HRESULT {.stdcall.} - SetColorContexts*: proc(self: ptr IWICBitmapFrameEncode, cCount: UINT, ppIColorContext: ptr ptr IWICColorContext): HRESULT {.stdcall.} - SetPalette*: proc(self: ptr IWICBitmapFrameEncode, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} - SetThumbnail*: proc(self: ptr IWICBitmapFrameEncode, pIThumbnail: ptr IWICBitmapSource): HRESULT {.stdcall.} - WritePixels*: proc(self: ptr IWICBitmapFrameEncode, lineCount: UINT, cbStride: UINT, cbBufferSize: UINT, pbPixels: ptr BYTE): HRESULT {.stdcall.} - WriteSource*: proc(self: ptr IWICBitmapFrameEncode, pIBitmapSource: ptr IWICBitmapSource, prc: ptr WICRect): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICBitmapFrameEncode, pIEncoderOptions: ptr IPropertyBag2 + ): HRESULT {.stdcall.} + SetSize*: proc( + self: ptr IWICBitmapFrameEncode, uiWidth: UINT, uiHeight: UINT + ): HRESULT {.stdcall.} + SetResolution*: proc( + self: ptr IWICBitmapFrameEncode, dpiX: float64, dpiY: float64 + ): HRESULT {.stdcall.} + SetPixelFormat*: proc( + self: ptr IWICBitmapFrameEncode, pPixelFormat: ptr WICPixelFormatGUID + ): HRESULT {.stdcall.} + SetColorContexts*: proc( + self: ptr IWICBitmapFrameEncode, + cCount: UINT, + ppIColorContext: ptr ptr IWICColorContext, + ): HRESULT {.stdcall.} + SetPalette*: proc( + self: ptr IWICBitmapFrameEncode, pIPalette: ptr IWICPalette + ): HRESULT {.stdcall.} + SetThumbnail*: proc( + self: ptr IWICBitmapFrameEncode, pIThumbnail: ptr IWICBitmapSource + ): HRESULT {.stdcall.} + WritePixels*: proc( + self: ptr IWICBitmapFrameEncode, + lineCount: UINT, + cbStride: UINT, + cbBufferSize: UINT, + pbPixels: ptr BYTE, + ): HRESULT {.stdcall.} + WriteSource*: proc( + self: ptr IWICBitmapFrameEncode, + pIBitmapSource: ptr IWICBitmapSource, + prc: ptr WICRect, + ): HRESULT {.stdcall.} Commit*: proc(self: ptr IWICBitmapFrameEncode): HRESULT {.stdcall.} - GetMetadataQueryWriter*: proc(self: ptr IWICBitmapFrameEncode, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.stdcall.} + GetMetadataQueryWriter*: proc( + self: ptr IWICBitmapFrameEncode, + ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter, + ): HRESULT {.stdcall.} + IWICBitmapEncoder* {.pure.} = object lpVtbl*: ptr IWICBitmapEncoderVtbl + IWICBitmapEncoderVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Initialize*: proc(self: ptr IWICBitmapEncoder, pIStream: ptr IStream, cacheOption: WICBitmapEncoderCacheOption): HRESULT {.stdcall.} - GetContainerFormat*: proc(self: ptr IWICBitmapEncoder, pguidContainerFormat: ptr GUID): HRESULT {.stdcall.} - GetEncoderInfo*: proc(self: ptr IWICBitmapEncoder, ppIEncoderInfo: ptr ptr IWICBitmapEncoderInfo): HRESULT {.stdcall.} - SetColorContexts*: proc(self: ptr IWICBitmapEncoder, cCount: UINT, ppIColorContext: ptr ptr IWICColorContext): HRESULT {.stdcall.} - SetPalette*: proc(self: ptr IWICBitmapEncoder, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} - SetThumbnail*: proc(self: ptr IWICBitmapEncoder, pIThumbnail: ptr IWICBitmapSource): HRESULT {.stdcall.} - SetPreview*: proc(self: ptr IWICBitmapEncoder, pIPreview: ptr IWICBitmapSource): HRESULT {.stdcall.} - CreateNewFrame*: proc(self: ptr IWICBitmapEncoder, ppIFrameEncode: ptr ptr IWICBitmapFrameEncode, ppIEncoderOptions: ptr ptr IPropertyBag2): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICBitmapEncoder, + pIStream: ptr IStream, + cacheOption: WICBitmapEncoderCacheOption, + ): HRESULT {.stdcall.} + GetContainerFormat*: proc( + self: ptr IWICBitmapEncoder, pguidContainerFormat: ptr GUID + ): HRESULT {.stdcall.} + GetEncoderInfo*: proc( + self: ptr IWICBitmapEncoder, ppIEncoderInfo: ptr ptr IWICBitmapEncoderInfo + ): HRESULT {.stdcall.} + SetColorContexts*: proc( + self: ptr IWICBitmapEncoder, + cCount: UINT, + ppIColorContext: ptr ptr IWICColorContext, + ): HRESULT {.stdcall.} + SetPalette*: + proc(self: ptr IWICBitmapEncoder, pIPalette: ptr IWICPalette): HRESULT {.stdcall.} + SetThumbnail*: proc( + self: ptr IWICBitmapEncoder, pIThumbnail: ptr IWICBitmapSource + ): HRESULT {.stdcall.} + SetPreview*: proc( + self: ptr IWICBitmapEncoder, pIPreview: ptr IWICBitmapSource + ): HRESULT {.stdcall.} + CreateNewFrame*: proc( + self: ptr IWICBitmapEncoder, + ppIFrameEncode: ptr ptr IWICBitmapFrameEncode, + ppIEncoderOptions: ptr ptr IPropertyBag2, + ): HRESULT {.stdcall.} Commit*: proc(self: ptr IWICBitmapEncoder): HRESULT {.stdcall.} - GetMetadataQueryWriter*: proc(self: ptr IWICBitmapEncoder, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.stdcall.} + GetMetadataQueryWriter*: proc( + self: ptr IWICBitmapEncoder, + ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter, + ): HRESULT {.stdcall.} + IWICBitmapEncoderInfo* {.pure.} = object lpVtbl*: ptr IWICBitmapEncoderInfoVtbl + IWICBitmapEncoderInfoVtbl* {.pure, inheritable.} = object of IWICBitmapCodecInfoVtbl - CreateInstance*: proc(self: ptr IWICBitmapEncoderInfo, ppIBitmapEncoder: ptr ptr IWICBitmapEncoder): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr IWICBitmapEncoderInfo, ppIBitmapEncoder: ptr ptr IWICBitmapEncoder + ): HRESULT {.stdcall.} + IWICFormatConverter* {.pure.} = object lpVtbl*: ptr IWICFormatConverterVtbl + IWICFormatConverterVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - Initialize*: proc(self: ptr IWICFormatConverter, pISource: ptr IWICBitmapSource, dstFormat: REFWICPixelFormatGUID, dither: WICBitmapDitherType, pIPalette: ptr IWICPalette, alphaThresholdPercent: float64, paletteTranslate: WICBitmapPaletteType): HRESULT {.stdcall.} - CanConvert*: proc(self: ptr IWICFormatConverter, srcPixelFormat: REFWICPixelFormatGUID, dstPixelFormat: REFWICPixelFormatGUID, pfCanConvert: ptr WINBOOL): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICFormatConverter, + pISource: ptr IWICBitmapSource, + dstFormat: REFWICPixelFormatGUID, + dither: WICBitmapDitherType, + pIPalette: ptr IWICPalette, + alphaThresholdPercent: float64, + paletteTranslate: WICBitmapPaletteType, + ): HRESULT {.stdcall.} + CanConvert*: proc( + self: ptr IWICFormatConverter, + srcPixelFormat: REFWICPixelFormatGUID, + dstPixelFormat: REFWICPixelFormatGUID, + pfCanConvert: ptr WINBOOL, + ): HRESULT {.stdcall.} + IWICFormatConverterInfo* {.pure.} = object lpVtbl*: ptr IWICFormatConverterInfoVtbl + IWICFormatConverterInfoVtbl* {.pure, inheritable.} = object of IWICComponentInfoVtbl - GetPixelFormats*: proc(self: ptr IWICFormatConverterInfo, cFormats: UINT, pPixelFormatGUIDs: ptr WICPixelFormatGUID, pcActual: ptr UINT): HRESULT {.stdcall.} - CreateInstance*: proc(self: ptr IWICFormatConverterInfo, ppIConverter: ptr ptr IWICFormatConverter): HRESULT {.stdcall.} + GetPixelFormats*: proc( + self: ptr IWICFormatConverterInfo, + cFormats: UINT, + pPixelFormatGUIDs: ptr WICPixelFormatGUID, + pcActual: ptr UINT, + ): HRESULT {.stdcall.} + CreateInstance*: proc( + self: ptr IWICFormatConverterInfo, ppIConverter: ptr ptr IWICFormatConverter + ): HRESULT {.stdcall.} + IWICStream* {.pure.} = object lpVtbl*: ptr IWICStreamVtbl + IWICStreamVtbl* {.pure, inheritable.} = object of IStreamVtbl - InitializeFromIStream*: proc(self: ptr IWICStream, pIStream: ptr IStream): HRESULT {.stdcall.} - InitializeFromFilename*: proc(self: ptr IWICStream, wzFileName: LPCWSTR, dwAccessMode: DWORD): HRESULT {.stdcall.} - InitializeFromMemory*: proc(self: ptr IWICStream, pbBuffer: ptr BYTE, cbBufferSize: DWORD): HRESULT {.stdcall.} - InitializeFromIStreamRegion*: proc(self: ptr IWICStream, pIStream: ptr IStream, ulOffset: ULARGE_INTEGER, ulMaxSize: ULARGE_INTEGER): HRESULT {.stdcall.} + InitializeFromIStream*: + proc(self: ptr IWICStream, pIStream: ptr IStream): HRESULT {.stdcall.} + InitializeFromFilename*: proc( + self: ptr IWICStream, wzFileName: LPCWSTR, dwAccessMode: DWORD + ): HRESULT {.stdcall.} + InitializeFromMemory*: proc( + self: ptr IWICStream, pbBuffer: ptr BYTE, cbBufferSize: DWORD + ): HRESULT {.stdcall.} + InitializeFromIStreamRegion*: proc( + self: ptr IWICStream, + pIStream: ptr IStream, + ulOffset: ULARGE_INTEGER, + ulMaxSize: ULARGE_INTEGER, + ): HRESULT {.stdcall.} + IWICBitmapScaler* {.pure.} = object lpVtbl*: ptr IWICBitmapScalerVtbl + IWICBitmapScalerVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - Initialize*: proc(self: ptr IWICBitmapScaler, pISource: ptr IWICBitmapSource, uiWidth: UINT, uiHeight: UINT, mode: WICBitmapInterpolationMode): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICBitmapScaler, + pISource: ptr IWICBitmapSource, + uiWidth: UINT, + uiHeight: UINT, + mode: WICBitmapInterpolationMode, + ): HRESULT {.stdcall.} + IWICBitmapClipper* {.pure.} = object lpVtbl*: ptr IWICBitmapClipperVtbl + IWICBitmapClipperVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - Initialize*: proc(self: ptr IWICBitmapClipper, pISource: ptr IWICBitmapSource, prc: ptr WICRect): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICBitmapClipper, pISource: ptr IWICBitmapSource, prc: ptr WICRect + ): HRESULT {.stdcall.} + IWICColorTransform* {.pure.} = object lpVtbl*: ptr IWICColorTransformVtbl + IWICColorTransformVtbl* {.pure, inheritable.} = object of IWICBitmapSourceVtbl - Initialize*: proc(self: ptr IWICColorTransform, pIBitmapSource: ptr IWICBitmapSource, pIContextSource: ptr IWICColorContext, pIContextDest: ptr IWICColorContext, pixelFmtDest: REFWICPixelFormatGUID): HRESULT {.stdcall.} + Initialize*: proc( + self: ptr IWICColorTransform, + pIBitmapSource: ptr IWICBitmapSource, + pIContextSource: ptr IWICColorContext, + pIContextDest: ptr IWICColorContext, + pixelFmtDest: REFWICPixelFormatGUID, + ): HRESULT {.stdcall.} + IWICFastMetadataEncoder* {.pure.} = object lpVtbl*: ptr IWICFastMetadataEncoderVtbl + IWICFastMetadataEncoderVtbl* {.pure, inheritable.} = object of IUnknownVtbl Commit*: proc(self: ptr IWICFastMetadataEncoder): HRESULT {.stdcall.} - GetMetadataQueryWriter*: proc(self: ptr IWICFastMetadataEncoder, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.stdcall.} + GetMetadataQueryWriter*: proc( + self: ptr IWICFastMetadataEncoder, + ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter, + ): HRESULT {.stdcall.} + IWICImagingFactory* {.pure.} = object lpVtbl*: ptr IWICImagingFactoryVtbl + IWICImagingFactoryVtbl* {.pure, inheritable.} = object of IUnknownVtbl - CreateDecoderFromFilename*: proc(self: ptr IWICImagingFactory, wzFilename: LPCWSTR, pguidVendor: ptr GUID, dwDesiredAccess: DWORD, metadataOptions: WICDecodeOptions, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.stdcall.} - CreateDecoderFromStream*: proc(self: ptr IWICImagingFactory, pIStream: ptr IStream, pguidVendor: ptr GUID, metadataOptions: WICDecodeOptions, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.stdcall.} - CreateDecoderFromFileHandle*: proc(self: ptr IWICImagingFactory, hFile: ULONG_PTR, pguidVendor: ptr GUID, metadataOptions: WICDecodeOptions, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.stdcall.} - CreateComponentInfo*: proc(self: ptr IWICImagingFactory, clsidComponent: REFCLSID, ppIInfo: ptr ptr IWICComponentInfo): HRESULT {.stdcall.} - CreateDecoder*: proc(self: ptr IWICImagingFactory, guidContainerFormat: REFGUID, pguidVendor: ptr GUID, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.stdcall.} - CreateEncoder*: proc(self: ptr IWICImagingFactory, guidContainerFormat: REFGUID, pguidVendor: ptr GUID, ppIEncoder: ptr ptr IWICBitmapEncoder): HRESULT {.stdcall.} - CreatePalette*: proc(self: ptr IWICImagingFactory, ppIPalette: ptr ptr IWICPalette): HRESULT {.stdcall.} - CreateFormatConverter*: proc(self: ptr IWICImagingFactory, ppIFormatConverter: ptr ptr IWICFormatConverter): HRESULT {.stdcall.} - CreateBitmapScaler*: proc(self: ptr IWICImagingFactory, ppIBitmapScaler: ptr ptr IWICBitmapScaler): HRESULT {.stdcall.} - CreateBitmapClipper*: proc(self: ptr IWICImagingFactory, ppIBitmapClipper: ptr ptr IWICBitmapClipper): HRESULT {.stdcall.} - CreateBitmapFlipRotator*: proc(self: ptr IWICImagingFactory, ppIBitmapFlipRotator: ptr ptr IWICBitmapFlipRotator): HRESULT {.stdcall.} - CreateStream*: proc(self: ptr IWICImagingFactory, ppIWICStream: ptr ptr IWICStream): HRESULT {.stdcall.} - CreateColorContext*: proc(self: ptr IWICImagingFactory, ppIWICColorContext: ptr ptr IWICColorContext): HRESULT {.stdcall.} - CreateColorTransformer*: proc(self: ptr IWICImagingFactory, ppIWICColorTransform: ptr ptr IWICColorTransform): HRESULT {.stdcall.} - CreateBitmap*: proc(self: ptr IWICImagingFactory, uiWidth: UINT, uiHeight: UINT, pixelFormat: REFWICPixelFormatGUID, option: WICBitmapCreateCacheOption, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.stdcall.} - CreateBitmapFromSource*: proc(self: ptr IWICImagingFactory, piBitmapSource: ptr IWICBitmapSource, option: WICBitmapCreateCacheOption, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.stdcall.} - CreateBitmapFromSourceRect*: proc(self: ptr IWICImagingFactory, piBitmapSource: ptr IWICBitmapSource, x: UINT, y: UINT, width: UINT, height: UINT, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.stdcall.} - CreateBitmapFromMemory*: proc(self: ptr IWICImagingFactory, uiWidth: UINT, uiHeight: UINT, pixelFormat: REFWICPixelFormatGUID, cbStride: UINT, cbBufferSize: UINT, pbBuffer: ptr BYTE, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.stdcall.} - CreateBitmapFromHBITMAP*: proc(self: ptr IWICImagingFactory, hBitmap: HBITMAP, hPalette: HPALETTE, options: WICBitmapAlphaChannelOption, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.stdcall.} - CreateBitmapFromHICON*: proc(self: ptr IWICImagingFactory, hIcon: HICON, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.stdcall.} - CreateComponentEnumerator*: proc(self: ptr IWICImagingFactory, componentTypes: DWORD, options: DWORD, ppIEnumUnknown: ptr ptr IEnumUnknown): HRESULT {.stdcall.} - CreateFastMetadataEncoderFromDecoder*: proc(self: ptr IWICImagingFactory, pIDecoder: ptr IWICBitmapDecoder, ppIFastEncoder: ptr ptr IWICFastMetadataEncoder): HRESULT {.stdcall.} - CreateFastMetadataEncoderFromFrameDecode*: proc(self: ptr IWICImagingFactory, pIFrameDecoder: ptr IWICBitmapFrameDecode, ppIFastEncoder: ptr ptr IWICFastMetadataEncoder): HRESULT {.stdcall.} - CreateQueryWriter*: proc(self: ptr IWICImagingFactory, guidMetadataFormat: REFGUID, pguidVendor: ptr GUID, ppIQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.stdcall.} - CreateQueryWriterFromReader*: proc(self: ptr IWICImagingFactory, pIQueryReader: ptr IWICMetadataQueryReader, pguidVendor: ptr GUID, ppIQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.stdcall.} + CreateDecoderFromFilename*: proc( + self: ptr IWICImagingFactory, + wzFilename: LPCWSTR, + pguidVendor: ptr GUID, + dwDesiredAccess: DWORD, + metadataOptions: WICDecodeOptions, + ppIDecoder: ptr ptr IWICBitmapDecoder, + ): HRESULT {.stdcall.} + CreateDecoderFromStream*: proc( + self: ptr IWICImagingFactory, + pIStream: ptr IStream, + pguidVendor: ptr GUID, + metadataOptions: WICDecodeOptions, + ppIDecoder: ptr ptr IWICBitmapDecoder, + ): HRESULT {.stdcall.} + CreateDecoderFromFileHandle*: proc( + self: ptr IWICImagingFactory, + hFile: ULONG_PTR, + pguidVendor: ptr GUID, + metadataOptions: WICDecodeOptions, + ppIDecoder: ptr ptr IWICBitmapDecoder, + ): HRESULT {.stdcall.} + CreateComponentInfo*: proc( + self: ptr IWICImagingFactory, + clsidComponent: REFCLSID, + ppIInfo: ptr ptr IWICComponentInfo, + ): HRESULT {.stdcall.} + CreateDecoder*: proc( + self: ptr IWICImagingFactory, + guidContainerFormat: REFGUID, + pguidVendor: ptr GUID, + ppIDecoder: ptr ptr IWICBitmapDecoder, + ): HRESULT {.stdcall.} + CreateEncoder*: proc( + self: ptr IWICImagingFactory, + guidContainerFormat: REFGUID, + pguidVendor: ptr GUID, + ppIEncoder: ptr ptr IWICBitmapEncoder, + ): HRESULT {.stdcall.} + CreatePalette*: proc( + self: ptr IWICImagingFactory, ppIPalette: ptr ptr IWICPalette + ): HRESULT {.stdcall.} + CreateFormatConverter*: proc( + self: ptr IWICImagingFactory, ppIFormatConverter: ptr ptr IWICFormatConverter + ): HRESULT {.stdcall.} + CreateBitmapScaler*: proc( + self: ptr IWICImagingFactory, ppIBitmapScaler: ptr ptr IWICBitmapScaler + ): HRESULT {.stdcall.} + CreateBitmapClipper*: proc( + self: ptr IWICImagingFactory, ppIBitmapClipper: ptr ptr IWICBitmapClipper + ): HRESULT {.stdcall.} + CreateBitmapFlipRotator*: proc( + self: ptr IWICImagingFactory, ppIBitmapFlipRotator: ptr ptr IWICBitmapFlipRotator + ): HRESULT {.stdcall.} + CreateStream*: proc( + self: ptr IWICImagingFactory, ppIWICStream: ptr ptr IWICStream + ): HRESULT {.stdcall.} + CreateColorContext*: proc( + self: ptr IWICImagingFactory, ppIWICColorContext: ptr ptr IWICColorContext + ): HRESULT {.stdcall.} + CreateColorTransformer*: proc( + self: ptr IWICImagingFactory, ppIWICColorTransform: ptr ptr IWICColorTransform + ): HRESULT {.stdcall.} + CreateBitmap*: proc( + self: ptr IWICImagingFactory, + uiWidth: UINT, + uiHeight: UINT, + pixelFormat: REFWICPixelFormatGUID, + option: WICBitmapCreateCacheOption, + ppIBitmap: ptr ptr IWICBitmap, + ): HRESULT {.stdcall.} + CreateBitmapFromSource*: proc( + self: ptr IWICImagingFactory, + piBitmapSource: ptr IWICBitmapSource, + option: WICBitmapCreateCacheOption, + ppIBitmap: ptr ptr IWICBitmap, + ): HRESULT {.stdcall.} + CreateBitmapFromSourceRect*: proc( + self: ptr IWICImagingFactory, + piBitmapSource: ptr IWICBitmapSource, + x: UINT, + y: UINT, + width: UINT, + height: UINT, + ppIBitmap: ptr ptr IWICBitmap, + ): HRESULT {.stdcall.} + CreateBitmapFromMemory*: proc( + self: ptr IWICImagingFactory, + uiWidth: UINT, + uiHeight: UINT, + pixelFormat: REFWICPixelFormatGUID, + cbStride: UINT, + cbBufferSize: UINT, + pbBuffer: ptr BYTE, + ppIBitmap: ptr ptr IWICBitmap, + ): HRESULT {.stdcall.} + CreateBitmapFromHBITMAP*: proc( + self: ptr IWICImagingFactory, + hBitmap: HBITMAP, + hPalette: HPALETTE, + options: WICBitmapAlphaChannelOption, + ppIBitmap: ptr ptr IWICBitmap, + ): HRESULT {.stdcall.} + CreateBitmapFromHICON*: proc( + self: ptr IWICImagingFactory, hIcon: HICON, ppIBitmap: ptr ptr IWICBitmap + ): HRESULT {.stdcall.} + CreateComponentEnumerator*: proc( + self: ptr IWICImagingFactory, + componentTypes: DWORD, + options: DWORD, + ppIEnumUnknown: ptr ptr IEnumUnknown, + ): HRESULT {.stdcall.} + CreateFastMetadataEncoderFromDecoder*: proc( + self: ptr IWICImagingFactory, + pIDecoder: ptr IWICBitmapDecoder, + ppIFastEncoder: ptr ptr IWICFastMetadataEncoder, + ): HRESULT {.stdcall.} + CreateFastMetadataEncoderFromFrameDecode*: proc( + self: ptr IWICImagingFactory, + pIFrameDecoder: ptr IWICBitmapFrameDecode, + ppIFastEncoder: ptr ptr IWICFastMetadataEncoder, + ): HRESULT {.stdcall.} + CreateQueryWriter*: proc( + self: ptr IWICImagingFactory, + guidMetadataFormat: REFGUID, + pguidVendor: ptr GUID, + ppIQueryWriter: ptr ptr IWICMetadataQueryWriter, + ): HRESULT {.stdcall.} + CreateQueryWriterFromReader*: proc( + self: ptr IWICImagingFactory, + pIQueryReader: ptr IWICMetadataQueryReader, + pguidVendor: ptr GUID, + ppIQueryWriter: ptr ptr IWICMetadataQueryWriter, + ): HRESULT {.stdcall.} + IWICEnumMetadataItem* {.pure.} = object lpVtbl*: ptr IWICEnumMetadataItemVtbl + IWICEnumMetadataItemVtbl* {.pure, inheritable.} = object of IUnknownVtbl - Next*: proc(self: ptr IWICEnumMetadataItem, celt: ULONG, rgeltSchema: ptr PROPVARIANT, rgeltId: ptr PROPVARIANT, rgeltValue: ptr PROPVARIANT, pceltFetched: ptr ULONG): HRESULT {.stdcall.} + Next*: proc( + self: ptr IWICEnumMetadataItem, + celt: ULONG, + rgeltSchema: ptr PROPVARIANT, + rgeltId: ptr PROPVARIANT, + rgeltValue: ptr PROPVARIANT, + pceltFetched: ptr ULONG, + ): HRESULT {.stdcall.} Skip*: proc(self: ptr IWICEnumMetadataItem, celt: ULONG): HRESULT {.stdcall.} Reset*: proc(self: ptr IWICEnumMetadataItem): HRESULT {.stdcall.} - Clone*: proc(self: ptr IWICEnumMetadataItem, ppIEnumMetadataItem: ptr ptr IWICEnumMetadataItem): HRESULT {.stdcall.} -proc InitializeFromFilename*(self: ptr IWICColorContext, wzFilename: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromFilename(self, wzFilename) -proc InitializeFromMemory*(self: ptr IWICColorContext, pbBuffer: ptr BYTE, cbBufferSize: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromMemory(self, pbBuffer, cbBufferSize) -proc InitializeFromExifColorSpace*(self: ptr IWICColorContext, value: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromExifColorSpace(self, value) -proc GetType*(self: ptr IWICColorContext, pType: ptr WICColorContextType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pType) -proc GetProfileBytes*(self: ptr IWICColorContext, cbBuffer: UINT, pbBuffer: ptr BYTE, pcbActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetProfileBytes(self, cbBuffer, pbBuffer, pcbActual) -proc GetExifColorSpace*(self: ptr IWICColorContext, pValue: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetExifColorSpace(self, pValue) -proc GetSize*(self: ptr IWICBitmapSource, puiWidth: ptr UINT, puiHeight: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, puiWidth, puiHeight) -proc GetPixelFormat*(self: ptr IWICBitmapSource, pPixelFormat: ptr WICPixelFormatGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPixelFormat(self, pPixelFormat) -proc GetResolution*(self: ptr IWICBitmapSource, pDpiX: ptr float64, pDpiY: ptr float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetResolution(self, pDpiX, pDpiY) -proc CopyPalette*(self: ptr IWICBitmapSource, pIPalette: ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyPalette(self, pIPalette) -proc CopyPixels*(self: ptr IWICBitmapSource, prc: ptr WICRect, cbStride: UINT, cbBufferSize: UINT, pbBuffer: ptr BYTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyPixels(self, prc, cbStride, cbBufferSize, pbBuffer) -proc GetSize*(self: ptr IWICBitmapLock, pWidth: ptr UINT, pHeight: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSize(self, pWidth, pHeight) -proc GetStride*(self: ptr IWICBitmapLock, pcbStride: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetStride(self, pcbStride) -proc GetDataPointer*(self: ptr IWICBitmapLock, pcbBufferSize: ptr UINT, ppbData: ptr ptr BYTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDataPointer(self, pcbBufferSize, ppbData) -proc GetPixelFormat*(self: ptr IWICBitmapLock, pPixelFormat: ptr WICPixelFormatGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPixelFormat(self, pPixelFormat) -proc Initialize*(self: ptr IWICBitmapFlipRotator, pISource: ptr IWICBitmapSource, options: WICBitmapTransformOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pISource, options) -proc Lock*(self: ptr IWICBitmap, prcLock: ptr WICRect, flags: DWORD, ppILock: ptr ptr IWICBitmapLock): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Lock(self, prcLock, flags, ppILock) -proc SetPalette*(self: ptr IWICBitmap, pIPalette: ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPalette(self, pIPalette) -proc SetResolution*(self: ptr IWICBitmap, dpiX: float64, dpiY: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetResolution(self, dpiX, dpiY) -proc InitializePredefined*(self: ptr IWICPalette, ePaletteType: WICBitmapPaletteType, fAddTransparentColor: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializePredefined(self, ePaletteType, fAddTransparentColor) -proc InitializeCustom*(self: ptr IWICPalette, pColors: ptr WICColor, colorCount: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeCustom(self, pColors, colorCount) -proc InitializeFromBitmap*(self: ptr IWICPalette, pISurface: ptr IWICBitmapSource, colorCount: UINT, fAddTransparentColor: WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromBitmap(self, pISurface, colorCount, fAddTransparentColor) -proc InitializeFromPalette*(self: ptr IWICPalette, pIPalette: ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromPalette(self, pIPalette) -proc GetType*(self: ptr IWICPalette, pePaletteType: ptr WICBitmapPaletteType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetType(self, pePaletteType) -proc GetColorCount*(self: ptr IWICPalette, pcCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColorCount(self, pcCount) -proc GetColors*(self: ptr IWICPalette, colorCount: UINT, pColors: ptr WICColor, pcActualColors: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColors(self, colorCount, pColors, pcActualColors) -proc IsBlackWhite*(self: ptr IWICPalette, pfIsBlackWhite: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsBlackWhite(self, pfIsBlackWhite) -proc IsGrayscale*(self: ptr IWICPalette, pfIsGrayscale: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.IsGrayscale(self, pfIsGrayscale) -proc HasAlpha*(self: ptr IWICPalette, pfHasAlpha: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.HasAlpha(self, pfHasAlpha) -proc GetComponentType*(self: ptr IWICComponentInfo, pType: ptr WICComponentType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetComponentType(self, pType) -proc GetCLSID*(self: ptr IWICComponentInfo, pclsid: ptr CLSID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetCLSID(self, pclsid) -proc GetSigningStatus*(self: ptr IWICComponentInfo, pStatus: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSigningStatus(self, pStatus) -proc GetAuthor*(self: ptr IWICComponentInfo, cchAuthor: UINT, wzAuthor: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetAuthor(self, cchAuthor, wzAuthor, pcchActual) -proc GetVendorGUID*(self: ptr IWICComponentInfo, pguidVendor: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVendorGUID(self, pguidVendor) -proc GetVersion*(self: ptr IWICComponentInfo, cchVersion: UINT, wzVersion: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetVersion(self, cchVersion, wzVersion, pcchActual) -proc GetSpecVersion*(self: ptr IWICComponentInfo, cchSpecVersion: UINT, wzSpecVersion: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetSpecVersion(self, cchSpecVersion, wzSpecVersion, pcchActual) -proc GetFriendlyName*(self: ptr IWICComponentInfo, cchFriendlyName: UINT, wzFriendlyName: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFriendlyName(self, cchFriendlyName, wzFriendlyName, pcchActual) -proc GetContainerFormat*(self: ptr IWICMetadataQueryReader, pguidContainerFormat: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) -proc GetLocation*(self: ptr IWICMetadataQueryReader, cchMaxLength: UINT, wzNamespace: ptr WCHAR, pcchActualLength: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetLocation(self, cchMaxLength, wzNamespace, pcchActualLength) -proc GetMetadataByName*(self: ptr IWICMetadataQueryReader, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataByName(self, wzName, pvarValue) -proc GetEnumerator*(self: ptr IWICMetadataQueryReader, ppIEnumString: ptr ptr IEnumString): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEnumerator(self, ppIEnumString) -proc SetMetadataByName*(self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetMetadataByName(self, wzName, pvarValue) -proc RemoveMetadataByName*(self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.RemoveMetadataByName(self, wzName) -proc GetMetadataQueryReader*(self: ptr IWICBitmapFrameDecode, ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataQueryReader(self, ppIMetadataQueryReader) -proc GetColorContexts*(self: ptr IWICBitmapFrameDecode, cCount: UINT, ppIColorContexts: ptr ptr IWICColorContext, pcActualCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColorContexts(self, cCount, ppIColorContexts, pcActualCount) -proc GetThumbnail*(self: ptr IWICBitmapFrameDecode, ppIThumbnail: ptr ptr IWICBitmapSource): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetThumbnail(self, ppIThumbnail) -proc GetFormatGUID*(self: ptr IWICPixelFormatInfo, pFormat: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFormatGUID(self, pFormat) -proc GetColorContext*(self: ptr IWICPixelFormatInfo, ppIColorContext: ptr ptr IWICColorContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColorContext(self, ppIColorContext) -proc GetBitsPerPixel*(self: ptr IWICPixelFormatInfo, puiBitsPerPixel: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetBitsPerPixel(self, puiBitsPerPixel) -proc GetChannelCount*(self: ptr IWICPixelFormatInfo, puiChannelCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChannelCount(self, puiChannelCount) -proc GetChannelMask*(self: ptr IWICPixelFormatInfo, uiChannelIndex: UINT, cbMaskBuffer: UINT, pbMaskBuffer: ptr BYTE, pcbActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetChannelMask(self, uiChannelIndex, cbMaskBuffer, pbMaskBuffer, pcbActual) -proc SupportsTransparency*(self: ptr IWICPixelFormatInfo2, pfSupportsTransparency: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SupportsTransparency(self, pfSupportsTransparency) -proc GetNumericRepresentation*(self: ptr IWICPixelFormatInfo2, pNumericRepresentation: ptr WICPixelFormatNumericRepresentation): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetNumericRepresentation(self, pNumericRepresentation) -proc GetContainerFormat*(self: ptr IWICBitmapCodecInfo, pguidContainerFormat: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) -proc GetPixelFormats*(self: ptr IWICBitmapCodecInfo, cFormats: UINT, pguidPixelFormats: ptr GUID, pcActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPixelFormats(self, cFormats, pguidPixelFormats, pcActual) -proc GetColorManagementVersion*(self: ptr IWICBitmapCodecInfo, cchColorManagementVersion: UINT, wzColorManagementVersion: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColorManagementVersion(self, cchColorManagementVersion, wzColorManagementVersion, pcchActual) -proc GetDeviceManufacturer*(self: ptr IWICBitmapCodecInfo, cchDeviceManufacturer: UINT, wzDeviceManufacturer: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDeviceManufacturer(self, cchDeviceManufacturer, wzDeviceManufacturer, pcchActual) -proc GetDeviceModels*(self: ptr IWICBitmapCodecInfo, cchDeviceModels: UINT, wzDeviceModels: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDeviceModels(self, cchDeviceModels, wzDeviceModels, pcchActual) -proc GetMimeTypes*(self: ptr IWICBitmapCodecInfo, cchMimeTypes: UINT, wzMimeTypes: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMimeTypes(self, cchMimeTypes, wzMimeTypes, pcchActual) -proc GetFileExtensions*(self: ptr IWICBitmapCodecInfo, cchFileExtensions: UINT, wzFileExtensions: ptr WCHAR, pcchActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFileExtensions(self, cchFileExtensions, wzFileExtensions, pcchActual) -proc DoesSupportAnimation*(self: ptr IWICBitmapCodecInfo, pfSupportAnimation: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoesSupportAnimation(self, pfSupportAnimation) -proc DoesSupportChromaKey*(self: ptr IWICBitmapCodecInfo, pfSupportChromaKey: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoesSupportChromaKey(self, pfSupportChromaKey) -proc DoesSupportLossless*(self: ptr IWICBitmapCodecInfo, pfSupportLossless: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoesSupportLossless(self, pfSupportLossless) -proc DoesSupportMultiframe*(self: ptr IWICBitmapCodecInfo, pfSupportMultiframe: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.DoesSupportMultiframe(self, pfSupportMultiframe) -proc MatchesMimeType*(self: ptr IWICBitmapCodecInfo, wzMimeType: LPCWSTR, pfMatches: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MatchesMimeType(self, wzMimeType, pfMatches) -proc GetPatterns*(self: ptr IWICBitmapDecoderInfo, cbSizePatterns: UINT, pPatterns: ptr WICBitmapPattern, pcPatterns: ptr UINT, pcbPatternsActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPatterns(self, cbSizePatterns, pPatterns, pcPatterns, pcbPatternsActual) -proc MatchesPattern*(self: ptr IWICBitmapDecoderInfo, pIStream: ptr IStream, pfMatches: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.MatchesPattern(self, pIStream, pfMatches) -proc CreateInstance*(self: ptr IWICBitmapDecoderInfo, ppIBitmapDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, ppIBitmapDecoder) -proc QueryCapability*(self: ptr IWICBitmapDecoder, pIStream: ptr IStream, pdwCapability: ptr DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.QueryCapability(self, pIStream, pdwCapability) -proc Initialize*(self: ptr IWICBitmapDecoder, pIStream: ptr IStream, cacheOptions: WICDecodeOptions): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pIStream, cacheOptions) -proc GetContainerFormat*(self: ptr IWICBitmapDecoder, pguidContainerFormat: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) -proc GetDecoderInfo*(self: ptr IWICBitmapDecoder, ppIDecoderInfo: ptr ptr IWICBitmapDecoderInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetDecoderInfo(self, ppIDecoderInfo) -proc CopyPalette*(self: ptr IWICBitmapDecoder, pIPalette: ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CopyPalette(self, pIPalette) -proc GetMetadataQueryReader*(self: ptr IWICBitmapDecoder, ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataQueryReader(self, ppIMetadataQueryReader) -proc GetPreview*(self: ptr IWICBitmapDecoder, ppIBitmapSource: ptr ptr IWICBitmapSource): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPreview(self, ppIBitmapSource) -proc GetColorContexts*(self: ptr IWICBitmapDecoder, cCount: UINT, ppIColorContexts: ptr ptr IWICColorContext, pcActualCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetColorContexts(self, cCount, ppIColorContexts, pcActualCount) -proc GetThumbnail*(self: ptr IWICBitmapDecoder, ppIThumbnail: ptr ptr IWICBitmapSource): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetThumbnail(self, ppIThumbnail) -proc GetFrameCount*(self: ptr IWICBitmapDecoder, pCount: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFrameCount(self, pCount) -proc GetFrame*(self: ptr IWICBitmapDecoder, index: UINT, ppIBitmapFrame: ptr ptr IWICBitmapFrameDecode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetFrame(self, index, ppIBitmapFrame) -proc Initialize*(self: ptr IWICBitmapFrameEncode, pIEncoderOptions: ptr IPropertyBag2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pIEncoderOptions) -proc SetSize*(self: ptr IWICBitmapFrameEncode, uiWidth: UINT, uiHeight: UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetSize(self, uiWidth, uiHeight) -proc SetResolution*(self: ptr IWICBitmapFrameEncode, dpiX: float64, dpiY: float64): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetResolution(self, dpiX, dpiY) -proc SetPixelFormat*(self: ptr IWICBitmapFrameEncode, pPixelFormat: ptr WICPixelFormatGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPixelFormat(self, pPixelFormat) -proc SetColorContexts*(self: ptr IWICBitmapFrameEncode, cCount: UINT, ppIColorContext: ptr ptr IWICColorContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColorContexts(self, cCount, ppIColorContext) -proc SetPalette*(self: ptr IWICBitmapFrameEncode, pIPalette: ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPalette(self, pIPalette) -proc SetThumbnail*(self: ptr IWICBitmapFrameEncode, pIThumbnail: ptr IWICBitmapSource): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThumbnail(self, pIThumbnail) -proc WritePixels*(self: ptr IWICBitmapFrameEncode, lineCount: UINT, cbStride: UINT, cbBufferSize: UINT, pbPixels: ptr BYTE): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WritePixels(self, lineCount, cbStride, cbBufferSize, pbPixels) -proc WriteSource*(self: ptr IWICBitmapFrameEncode, pIBitmapSource: ptr IWICBitmapSource, prc: ptr WICRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.WriteSource(self, pIBitmapSource, prc) -proc Commit*(self: ptr IWICBitmapFrameEncode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self) -proc GetMetadataQueryWriter*(self: ptr IWICBitmapFrameEncode, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataQueryWriter(self, ppIMetadataQueryWriter) -proc CreateInstance*(self: ptr IWICBitmapEncoderInfo, ppIBitmapEncoder: ptr ptr IWICBitmapEncoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, ppIBitmapEncoder) -proc Initialize*(self: ptr IWICBitmapEncoder, pIStream: ptr IStream, cacheOption: WICBitmapEncoderCacheOption): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pIStream, cacheOption) -proc GetContainerFormat*(self: ptr IWICBitmapEncoder, pguidContainerFormat: ptr GUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) -proc GetEncoderInfo*(self: ptr IWICBitmapEncoder, ppIEncoderInfo: ptr ptr IWICBitmapEncoderInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetEncoderInfo(self, ppIEncoderInfo) -proc SetColorContexts*(self: ptr IWICBitmapEncoder, cCount: UINT, ppIColorContext: ptr ptr IWICColorContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetColorContexts(self, cCount, ppIColorContext) -proc SetPalette*(self: ptr IWICBitmapEncoder, pIPalette: ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPalette(self, pIPalette) -proc SetThumbnail*(self: ptr IWICBitmapEncoder, pIThumbnail: ptr IWICBitmapSource): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetThumbnail(self, pIThumbnail) -proc SetPreview*(self: ptr IWICBitmapEncoder, pIPreview: ptr IWICBitmapSource): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.SetPreview(self, pIPreview) -proc CreateNewFrame*(self: ptr IWICBitmapEncoder, ppIFrameEncode: ptr ptr IWICBitmapFrameEncode, ppIEncoderOptions: ptr ptr IPropertyBag2): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateNewFrame(self, ppIFrameEncode, ppIEncoderOptions) -proc Commit*(self: ptr IWICBitmapEncoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self) -proc GetMetadataQueryWriter*(self: ptr IWICBitmapEncoder, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataQueryWriter(self, ppIMetadataQueryWriter) -proc Initialize*(self: ptr IWICFormatConverter, pISource: ptr IWICBitmapSource, dstFormat: REFWICPixelFormatGUID, dither: WICBitmapDitherType, pIPalette: ptr IWICPalette, alphaThresholdPercent: float64, paletteTranslate: WICBitmapPaletteType): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, paletteTranslate) -proc CanConvert*(self: ptr IWICFormatConverter, srcPixelFormat: REFWICPixelFormatGUID, dstPixelFormat: REFWICPixelFormatGUID, pfCanConvert: ptr WINBOOL): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CanConvert(self, srcPixelFormat, dstPixelFormat, pfCanConvert) -proc GetPixelFormats*(self: ptr IWICFormatConverterInfo, cFormats: UINT, pPixelFormatGUIDs: ptr WICPixelFormatGUID, pcActual: ptr UINT): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetPixelFormats(self, cFormats, pPixelFormatGUIDs, pcActual) -proc CreateInstance*(self: ptr IWICFormatConverterInfo, ppIConverter: ptr ptr IWICFormatConverter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateInstance(self, ppIConverter) -proc InitializeFromIStream*(self: ptr IWICStream, pIStream: ptr IStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromIStream(self, pIStream) -proc InitializeFromFilename*(self: ptr IWICStream, wzFileName: LPCWSTR, dwAccessMode: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromFilename(self, wzFileName, dwAccessMode) -proc InitializeFromMemory*(self: ptr IWICStream, pbBuffer: ptr BYTE, cbBufferSize: DWORD): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromMemory(self, pbBuffer, cbBufferSize) -proc InitializeFromIStreamRegion*(self: ptr IWICStream, pIStream: ptr IStream, ulOffset: ULARGE_INTEGER, ulMaxSize: ULARGE_INTEGER): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.InitializeFromIStreamRegion(self, pIStream, ulOffset, ulMaxSize) -proc Initialize*(self: ptr IWICBitmapScaler, pISource: ptr IWICBitmapSource, uiWidth: UINT, uiHeight: UINT, mode: WICBitmapInterpolationMode): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pISource, uiWidth, uiHeight, mode) -proc Initialize*(self: ptr IWICBitmapClipper, pISource: ptr IWICBitmapSource, prc: ptr WICRect): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pISource, prc) -proc Initialize*(self: ptr IWICColorTransform, pIBitmapSource: ptr IWICBitmapSource, pIContextSource: ptr IWICColorContext, pIContextDest: ptr IWICColorContext, pixelFmtDest: REFWICPixelFormatGUID): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Initialize(self, pIBitmapSource, pIContextSource, pIContextDest, pixelFmtDest) -proc Commit*(self: ptr IWICFastMetadataEncoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Commit(self) -proc GetMetadataQueryWriter*(self: ptr IWICFastMetadataEncoder, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.GetMetadataQueryWriter(self, ppIMetadataQueryWriter) -proc CreateDecoderFromFilename*(self: ptr IWICImagingFactory, wzFilename: LPCWSTR, pguidVendor: ptr GUID, dwDesiredAccess: DWORD, metadataOptions: WICDecodeOptions, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDecoderFromFilename(self, wzFilename, pguidVendor, dwDesiredAccess, metadataOptions, ppIDecoder) -proc CreateDecoderFromStream*(self: ptr IWICImagingFactory, pIStream: ptr IStream, pguidVendor: ptr GUID, metadataOptions: WICDecodeOptions, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDecoderFromStream(self, pIStream, pguidVendor, metadataOptions, ppIDecoder) -proc CreateDecoderFromFileHandle*(self: ptr IWICImagingFactory, hFile: ULONG_PTR, pguidVendor: ptr GUID, metadataOptions: WICDecodeOptions, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDecoderFromFileHandle(self, hFile, pguidVendor, metadataOptions, ppIDecoder) -proc CreateComponentInfo*(self: ptr IWICImagingFactory, clsidComponent: REFCLSID, ppIInfo: ptr ptr IWICComponentInfo): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateComponentInfo(self, clsidComponent, ppIInfo) -proc CreateDecoder*(self: ptr IWICImagingFactory, guidContainerFormat: REFGUID, pguidVendor: ptr GUID, ppIDecoder: ptr ptr IWICBitmapDecoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateDecoder(self, guidContainerFormat, pguidVendor, ppIDecoder) -proc CreateEncoder*(self: ptr IWICImagingFactory, guidContainerFormat: REFGUID, pguidVendor: ptr GUID, ppIEncoder: ptr ptr IWICBitmapEncoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateEncoder(self, guidContainerFormat, pguidVendor, ppIEncoder) -proc CreatePalette*(self: ptr IWICImagingFactory, ppIPalette: ptr ptr IWICPalette): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreatePalette(self, ppIPalette) -proc CreateFormatConverter*(self: ptr IWICImagingFactory, ppIFormatConverter: ptr ptr IWICFormatConverter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateFormatConverter(self, ppIFormatConverter) -proc CreateBitmapScaler*(self: ptr IWICImagingFactory, ppIBitmapScaler: ptr ptr IWICBitmapScaler): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapScaler(self, ppIBitmapScaler) -proc CreateBitmapClipper*(self: ptr IWICImagingFactory, ppIBitmapClipper: ptr ptr IWICBitmapClipper): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapClipper(self, ppIBitmapClipper) -proc CreateBitmapFlipRotator*(self: ptr IWICImagingFactory, ppIBitmapFlipRotator: ptr ptr IWICBitmapFlipRotator): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapFlipRotator(self, ppIBitmapFlipRotator) -proc CreateStream*(self: ptr IWICImagingFactory, ppIWICStream: ptr ptr IWICStream): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateStream(self, ppIWICStream) -proc CreateColorContext*(self: ptr IWICImagingFactory, ppIWICColorContext: ptr ptr IWICColorContext): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateColorContext(self, ppIWICColorContext) -proc CreateColorTransformer*(self: ptr IWICImagingFactory, ppIWICColorTransform: ptr ptr IWICColorTransform): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateColorTransformer(self, ppIWICColorTransform) -proc CreateBitmap*(self: ptr IWICImagingFactory, uiWidth: UINT, uiHeight: UINT, pixelFormat: REFWICPixelFormatGUID, option: WICBitmapCreateCacheOption, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmap(self, uiWidth, uiHeight, pixelFormat, option, ppIBitmap) -proc CreateBitmapFromSource*(self: ptr IWICImagingFactory, piBitmapSource: ptr IWICBitmapSource, option: WICBitmapCreateCacheOption, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapFromSource(self, piBitmapSource, option, ppIBitmap) -proc CreateBitmapFromSourceRect*(self: ptr IWICImagingFactory, piBitmapSource: ptr IWICBitmapSource, x: UINT, y: UINT, width: UINT, height: UINT, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapFromSourceRect(self, piBitmapSource, x, y, width, height, ppIBitmap) -proc CreateBitmapFromMemory*(self: ptr IWICImagingFactory, uiWidth: UINT, uiHeight: UINT, pixelFormat: REFWICPixelFormatGUID, cbStride: UINT, cbBufferSize: UINT, pbBuffer: ptr BYTE, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapFromMemory(self, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ppIBitmap) -proc CreateBitmapFromHBITMAP*(self: ptr IWICImagingFactory, hBitmap: HBITMAP, hPalette: HPALETTE, options: WICBitmapAlphaChannelOption, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapFromHBITMAP(self, hBitmap, hPalette, options, ppIBitmap) -proc CreateBitmapFromHICON*(self: ptr IWICImagingFactory, hIcon: HICON, ppIBitmap: ptr ptr IWICBitmap): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateBitmapFromHICON(self, hIcon, ppIBitmap) -proc CreateComponentEnumerator*(self: ptr IWICImagingFactory, componentTypes: DWORD, options: DWORD, ppIEnumUnknown: ptr ptr IEnumUnknown): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateComponentEnumerator(self, componentTypes, options, ppIEnumUnknown) -proc CreateFastMetadataEncoderFromDecoder*(self: ptr IWICImagingFactory, pIDecoder: ptr IWICBitmapDecoder, ppIFastEncoder: ptr ptr IWICFastMetadataEncoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateFastMetadataEncoderFromDecoder(self, pIDecoder, ppIFastEncoder) -proc CreateFastMetadataEncoderFromFrameDecode*(self: ptr IWICImagingFactory, pIFrameDecoder: ptr IWICBitmapFrameDecode, ppIFastEncoder: ptr ptr IWICFastMetadataEncoder): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateFastMetadataEncoderFromFrameDecode(self, pIFrameDecoder, ppIFastEncoder) -proc CreateQueryWriter*(self: ptr IWICImagingFactory, guidMetadataFormat: REFGUID, pguidVendor: ptr GUID, ppIQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateQueryWriter(self, guidMetadataFormat, pguidVendor, ppIQueryWriter) -proc CreateQueryWriterFromReader*(self: ptr IWICImagingFactory, pIQueryReader: ptr IWICMetadataQueryReader, pguidVendor: ptr GUID, ppIQueryWriter: ptr ptr IWICMetadataQueryWriter): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.CreateQueryWriterFromReader(self, pIQueryReader, pguidVendor, ppIQueryWriter) -proc Next*(self: ptr IWICEnumMetadataItem, celt: ULONG, rgeltSchema: ptr PROPVARIANT, rgeltId: ptr PROPVARIANT, rgeltValue: ptr PROPVARIANT, pceltFetched: ptr ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Next(self, celt, rgeltSchema, rgeltId, rgeltValue, pceltFetched) -proc Skip*(self: ptr IWICEnumMetadataItem, celt: ULONG): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Skip(self, celt) -proc Reset*(self: ptr IWICEnumMetadataItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Reset(self) -proc Clone*(self: ptr IWICEnumMetadataItem, ppIEnumMetadataItem: ptr ptr IWICEnumMetadataItem): HRESULT {.winapi, inline.} = {.gcsafe.}: self.lpVtbl.Clone(self, ppIEnumMetadataItem) -converter winimConverterIWICColorContextToIUnknown*(x: ptr IWICColorContext): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapSourceToIUnknown*(x: ptr IWICBitmapSource): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapLockToIUnknown*(x: ptr IWICBitmapLock): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapFlipRotatorToIWICBitmapSource*(x: ptr IWICBitmapFlipRotator): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICBitmapFlipRotatorToIUnknown*(x: ptr IWICBitmapFlipRotator): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapToIWICBitmapSource*(x: ptr IWICBitmap): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICBitmapToIUnknown*(x: ptr IWICBitmap): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICPaletteToIUnknown*(x: ptr IWICPalette): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICComponentInfoToIUnknown*(x: ptr IWICComponentInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICMetadataQueryReaderToIUnknown*(x: ptr IWICMetadataQueryReader): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICMetadataQueryWriterToIWICMetadataQueryReader*(x: ptr IWICMetadataQueryWriter): ptr IWICMetadataQueryReader = cast[ptr IWICMetadataQueryReader](x) -converter winimConverterIWICMetadataQueryWriterToIUnknown*(x: ptr IWICMetadataQueryWriter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapFrameDecodeToIWICBitmapSource*(x: ptr IWICBitmapFrameDecode): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICBitmapFrameDecodeToIUnknown*(x: ptr IWICBitmapFrameDecode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICPixelFormatInfoToIWICComponentInfo*(x: ptr IWICPixelFormatInfo): ptr IWICComponentInfo = cast[ptr IWICComponentInfo](x) -converter winimConverterIWICPixelFormatInfoToIUnknown*(x: ptr IWICPixelFormatInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICPixelFormatInfo2ToIWICPixelFormatInfo*(x: ptr IWICPixelFormatInfo2): ptr IWICPixelFormatInfo = cast[ptr IWICPixelFormatInfo](x) -converter winimConverterIWICPixelFormatInfo2ToIWICComponentInfo*(x: ptr IWICPixelFormatInfo2): ptr IWICComponentInfo = cast[ptr IWICComponentInfo](x) -converter winimConverterIWICPixelFormatInfo2ToIUnknown*(x: ptr IWICPixelFormatInfo2): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapCodecInfoToIWICComponentInfo*(x: ptr IWICBitmapCodecInfo): ptr IWICComponentInfo = cast[ptr IWICComponentInfo](x) -converter winimConverterIWICBitmapCodecInfoToIUnknown*(x: ptr IWICBitmapCodecInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapDecoderInfoToIWICBitmapCodecInfo*(x: ptr IWICBitmapDecoderInfo): ptr IWICBitmapCodecInfo = cast[ptr IWICBitmapCodecInfo](x) -converter winimConverterIWICBitmapDecoderInfoToIWICComponentInfo*(x: ptr IWICBitmapDecoderInfo): ptr IWICComponentInfo = cast[ptr IWICComponentInfo](x) -converter winimConverterIWICBitmapDecoderInfoToIUnknown*(x: ptr IWICBitmapDecoderInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapDecoderToIUnknown*(x: ptr IWICBitmapDecoder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapFrameEncodeToIUnknown*(x: ptr IWICBitmapFrameEncode): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapEncoderInfoToIWICBitmapCodecInfo*(x: ptr IWICBitmapEncoderInfo): ptr IWICBitmapCodecInfo = cast[ptr IWICBitmapCodecInfo](x) -converter winimConverterIWICBitmapEncoderInfoToIWICComponentInfo*(x: ptr IWICBitmapEncoderInfo): ptr IWICComponentInfo = cast[ptr IWICComponentInfo](x) -converter winimConverterIWICBitmapEncoderInfoToIUnknown*(x: ptr IWICBitmapEncoderInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapEncoderToIUnknown*(x: ptr IWICBitmapEncoder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICFormatConverterToIWICBitmapSource*(x: ptr IWICFormatConverter): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICFormatConverterToIUnknown*(x: ptr IWICFormatConverter): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICFormatConverterInfoToIWICComponentInfo*(x: ptr IWICFormatConverterInfo): ptr IWICComponentInfo = cast[ptr IWICComponentInfo](x) -converter winimConverterIWICFormatConverterInfoToIUnknown*(x: ptr IWICFormatConverterInfo): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICStreamToIStream*(x: ptr IWICStream): ptr IStream = cast[ptr IStream](x) -converter winimConverterIWICStreamToISequentialStream*(x: ptr IWICStream): ptr ISequentialStream = cast[ptr ISequentialStream](x) -converter winimConverterIWICStreamToIUnknown*(x: ptr IWICStream): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapScalerToIWICBitmapSource*(x: ptr IWICBitmapScaler): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICBitmapScalerToIUnknown*(x: ptr IWICBitmapScaler): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICBitmapClipperToIWICBitmapSource*(x: ptr IWICBitmapClipper): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICBitmapClipperToIUnknown*(x: ptr IWICBitmapClipper): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICColorTransformToIWICBitmapSource*(x: ptr IWICColorTransform): ptr IWICBitmapSource = cast[ptr IWICBitmapSource](x) -converter winimConverterIWICColorTransformToIUnknown*(x: ptr IWICColorTransform): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICFastMetadataEncoderToIUnknown*(x: ptr IWICFastMetadataEncoder): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICImagingFactoryToIUnknown*(x: ptr IWICImagingFactory): ptr IUnknown = cast[ptr IUnknown](x) -converter winimConverterIWICEnumMetadataItemToIUnknown*(x: ptr IWICEnumMetadataItem): ptr IUnknown = cast[ptr IUnknown](x) + Clone*: proc( + self: ptr IWICEnumMetadataItem, ppIEnumMetadataItem: ptr ptr IWICEnumMetadataItem + ): HRESULT {.stdcall.} + +proc InitializeFromFilename*( + self: ptr IWICColorContext, wzFilename: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromFilename(self, wzFilename) + +proc InitializeFromMemory*( + self: ptr IWICColorContext, pbBuffer: ptr BYTE, cbBufferSize: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromMemory(self, pbBuffer, cbBufferSize) + +proc InitializeFromExifColorSpace*( + self: ptr IWICColorContext, value: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromExifColorSpace(self, value) + +proc GetType*( + self: ptr IWICColorContext, pType: ptr WICColorContextType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pType) + +proc GetProfileBytes*( + self: ptr IWICColorContext, cbBuffer: UINT, pbBuffer: ptr BYTE, pcbActual: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetProfileBytes(self, cbBuffer, pbBuffer, pcbActual) + +proc GetExifColorSpace*( + self: ptr IWICColorContext, pValue: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetExifColorSpace(self, pValue) + +proc GetSize*( + self: ptr IWICBitmapSource, puiWidth: ptr UINT, puiHeight: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, puiWidth, puiHeight) + +proc GetPixelFormat*( + self: ptr IWICBitmapSource, pPixelFormat: ptr WICPixelFormatGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPixelFormat(self, pPixelFormat) + +proc GetResolution*( + self: ptr IWICBitmapSource, pDpiX: ptr float64, pDpiY: ptr float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetResolution(self, pDpiX, pDpiY) + +proc CopyPalette*( + self: ptr IWICBitmapSource, pIPalette: ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyPalette(self, pIPalette) + +proc CopyPixels*( + self: ptr IWICBitmapSource, + prc: ptr WICRect, + cbStride: UINT, + cbBufferSize: UINT, + pbBuffer: ptr BYTE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyPixels(self, prc, cbStride, cbBufferSize, pbBuffer) + +proc GetSize*( + self: ptr IWICBitmapLock, pWidth: ptr UINT, pHeight: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSize(self, pWidth, pHeight) + +proc GetStride*( + self: ptr IWICBitmapLock, pcbStride: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetStride(self, pcbStride) + +proc GetDataPointer*( + self: ptr IWICBitmapLock, pcbBufferSize: ptr UINT, ppbData: ptr ptr BYTE +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDataPointer(self, pcbBufferSize, ppbData) + +proc GetPixelFormat*( + self: ptr IWICBitmapLock, pPixelFormat: ptr WICPixelFormatGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPixelFormat(self, pPixelFormat) + +proc Initialize*( + self: ptr IWICBitmapFlipRotator, + pISource: ptr IWICBitmapSource, + options: WICBitmapTransformOptions, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pISource, options) + +proc Lock*( + self: ptr IWICBitmap, + prcLock: ptr WICRect, + flags: DWORD, + ppILock: ptr ptr IWICBitmapLock, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Lock(self, prcLock, flags, ppILock) + +proc SetPalette*( + self: ptr IWICBitmap, pIPalette: ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPalette(self, pIPalette) + +proc SetResolution*( + self: ptr IWICBitmap, dpiX: float64, dpiY: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetResolution(self, dpiX, dpiY) + +proc InitializePredefined*( + self: ptr IWICPalette, + ePaletteType: WICBitmapPaletteType, + fAddTransparentColor: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializePredefined(self, ePaletteType, fAddTransparentColor) + +proc InitializeCustom*( + self: ptr IWICPalette, pColors: ptr WICColor, colorCount: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeCustom(self, pColors, colorCount) + +proc InitializeFromBitmap*( + self: ptr IWICPalette, + pISurface: ptr IWICBitmapSource, + colorCount: UINT, + fAddTransparentColor: WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromBitmap(self, pISurface, colorCount, fAddTransparentColor) + +proc InitializeFromPalette*( + self: ptr IWICPalette, pIPalette: ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromPalette(self, pIPalette) + +proc GetType*( + self: ptr IWICPalette, pePaletteType: ptr WICBitmapPaletteType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetType(self, pePaletteType) + +proc GetColorCount*( + self: ptr IWICPalette, pcCount: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColorCount(self, pcCount) + +proc GetColors*( + self: ptr IWICPalette, + colorCount: UINT, + pColors: ptr WICColor, + pcActualColors: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColors(self, colorCount, pColors, pcActualColors) + +proc IsBlackWhite*( + self: ptr IWICPalette, pfIsBlackWhite: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsBlackWhite(self, pfIsBlackWhite) + +proc IsGrayscale*( + self: ptr IWICPalette, pfIsGrayscale: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.IsGrayscale(self, pfIsGrayscale) + +proc HasAlpha*( + self: ptr IWICPalette, pfHasAlpha: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.HasAlpha(self, pfHasAlpha) + +proc GetComponentType*( + self: ptr IWICComponentInfo, pType: ptr WICComponentType +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetComponentType(self, pType) + +proc GetCLSID*( + self: ptr IWICComponentInfo, pclsid: ptr CLSID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetCLSID(self, pclsid) + +proc GetSigningStatus*( + self: ptr IWICComponentInfo, pStatus: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSigningStatus(self, pStatus) + +proc GetAuthor*( + self: ptr IWICComponentInfo, + cchAuthor: UINT, + wzAuthor: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetAuthor(self, cchAuthor, wzAuthor, pcchActual) + +proc GetVendorGUID*( + self: ptr IWICComponentInfo, pguidVendor: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVendorGUID(self, pguidVendor) + +proc GetVersion*( + self: ptr IWICComponentInfo, + cchVersion: UINT, + wzVersion: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetVersion(self, cchVersion, wzVersion, pcchActual) + +proc GetSpecVersion*( + self: ptr IWICComponentInfo, + cchSpecVersion: UINT, + wzSpecVersion: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetSpecVersion(self, cchSpecVersion, wzSpecVersion, pcchActual) + +proc GetFriendlyName*( + self: ptr IWICComponentInfo, + cchFriendlyName: UINT, + wzFriendlyName: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFriendlyName(self, cchFriendlyName, wzFriendlyName, pcchActual) + +proc GetContainerFormat*( + self: ptr IWICMetadataQueryReader, pguidContainerFormat: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) + +proc GetLocation*( + self: ptr IWICMetadataQueryReader, + cchMaxLength: UINT, + wzNamespace: ptr WCHAR, + pcchActualLength: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetLocation(self, cchMaxLength, wzNamespace, pcchActualLength) + +proc GetMetadataByName*( + self: ptr IWICMetadataQueryReader, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataByName(self, wzName, pvarValue) + +proc GetEnumerator*( + self: ptr IWICMetadataQueryReader, ppIEnumString: ptr ptr IEnumString +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEnumerator(self, ppIEnumString) + +proc SetMetadataByName*( + self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR, pvarValue: ptr PROPVARIANT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetMetadataByName(self, wzName, pvarValue) + +proc RemoveMetadataByName*( + self: ptr IWICMetadataQueryWriter, wzName: LPCWSTR +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.RemoveMetadataByName(self, wzName) + +proc GetMetadataQueryReader*( + self: ptr IWICBitmapFrameDecode, + ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataQueryReader(self, ppIMetadataQueryReader) + +proc GetColorContexts*( + self: ptr IWICBitmapFrameDecode, + cCount: UINT, + ppIColorContexts: ptr ptr IWICColorContext, + pcActualCount: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColorContexts(self, cCount, ppIColorContexts, pcActualCount) + +proc GetThumbnail*( + self: ptr IWICBitmapFrameDecode, ppIThumbnail: ptr ptr IWICBitmapSource +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetThumbnail(self, ppIThumbnail) + +proc GetFormatGUID*( + self: ptr IWICPixelFormatInfo, pFormat: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFormatGUID(self, pFormat) + +proc GetColorContext*( + self: ptr IWICPixelFormatInfo, ppIColorContext: ptr ptr IWICColorContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColorContext(self, ppIColorContext) + +proc GetBitsPerPixel*( + self: ptr IWICPixelFormatInfo, puiBitsPerPixel: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetBitsPerPixel(self, puiBitsPerPixel) + +proc GetChannelCount*( + self: ptr IWICPixelFormatInfo, puiChannelCount: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChannelCount(self, puiChannelCount) + +proc GetChannelMask*( + self: ptr IWICPixelFormatInfo, + uiChannelIndex: UINT, + cbMaskBuffer: UINT, + pbMaskBuffer: ptr BYTE, + pcbActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetChannelMask( + self, uiChannelIndex, cbMaskBuffer, pbMaskBuffer, pcbActual + ) + +proc SupportsTransparency*( + self: ptr IWICPixelFormatInfo2, pfSupportsTransparency: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SupportsTransparency(self, pfSupportsTransparency) + +proc GetNumericRepresentation*( + self: ptr IWICPixelFormatInfo2, + pNumericRepresentation: ptr WICPixelFormatNumericRepresentation, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetNumericRepresentation(self, pNumericRepresentation) + +proc GetContainerFormat*( + self: ptr IWICBitmapCodecInfo, pguidContainerFormat: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) + +proc GetPixelFormats*( + self: ptr IWICBitmapCodecInfo, + cFormats: UINT, + pguidPixelFormats: ptr GUID, + pcActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPixelFormats(self, cFormats, pguidPixelFormats, pcActual) + +proc GetColorManagementVersion*( + self: ptr IWICBitmapCodecInfo, + cchColorManagementVersion: UINT, + wzColorManagementVersion: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColorManagementVersion( + self, cchColorManagementVersion, wzColorManagementVersion, pcchActual + ) + +proc GetDeviceManufacturer*( + self: ptr IWICBitmapCodecInfo, + cchDeviceManufacturer: UINT, + wzDeviceManufacturer: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDeviceManufacturer( + self, cchDeviceManufacturer, wzDeviceManufacturer, pcchActual + ) + +proc GetDeviceModels*( + self: ptr IWICBitmapCodecInfo, + cchDeviceModels: UINT, + wzDeviceModels: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDeviceModels(self, cchDeviceModels, wzDeviceModels, pcchActual) + +proc GetMimeTypes*( + self: ptr IWICBitmapCodecInfo, + cchMimeTypes: UINT, + wzMimeTypes: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMimeTypes(self, cchMimeTypes, wzMimeTypes, pcchActual) + +proc GetFileExtensions*( + self: ptr IWICBitmapCodecInfo, + cchFileExtensions: UINT, + wzFileExtensions: ptr WCHAR, + pcchActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFileExtensions(self, cchFileExtensions, wzFileExtensions, pcchActual) + +proc DoesSupportAnimation*( + self: ptr IWICBitmapCodecInfo, pfSupportAnimation: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoesSupportAnimation(self, pfSupportAnimation) + +proc DoesSupportChromaKey*( + self: ptr IWICBitmapCodecInfo, pfSupportChromaKey: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoesSupportChromaKey(self, pfSupportChromaKey) + +proc DoesSupportLossless*( + self: ptr IWICBitmapCodecInfo, pfSupportLossless: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoesSupportLossless(self, pfSupportLossless) + +proc DoesSupportMultiframe*( + self: ptr IWICBitmapCodecInfo, pfSupportMultiframe: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.DoesSupportMultiframe(self, pfSupportMultiframe) + +proc MatchesMimeType*( + self: ptr IWICBitmapCodecInfo, wzMimeType: LPCWSTR, pfMatches: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MatchesMimeType(self, wzMimeType, pfMatches) + +proc GetPatterns*( + self: ptr IWICBitmapDecoderInfo, + cbSizePatterns: UINT, + pPatterns: ptr WICBitmapPattern, + pcPatterns: ptr UINT, + pcbPatternsActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPatterns( + self, cbSizePatterns, pPatterns, pcPatterns, pcbPatternsActual + ) + +proc MatchesPattern*( + self: ptr IWICBitmapDecoderInfo, pIStream: ptr IStream, pfMatches: ptr WINBOOL +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.MatchesPattern(self, pIStream, pfMatches) + +proc CreateInstance*( + self: ptr IWICBitmapDecoderInfo, ppIBitmapDecoder: ptr ptr IWICBitmapDecoder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, ppIBitmapDecoder) + +proc QueryCapability*( + self: ptr IWICBitmapDecoder, pIStream: ptr IStream, pdwCapability: ptr DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.QueryCapability(self, pIStream, pdwCapability) + +proc Initialize*( + self: ptr IWICBitmapDecoder, pIStream: ptr IStream, cacheOptions: WICDecodeOptions +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pIStream, cacheOptions) + +proc GetContainerFormat*( + self: ptr IWICBitmapDecoder, pguidContainerFormat: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) + +proc GetDecoderInfo*( + self: ptr IWICBitmapDecoder, ppIDecoderInfo: ptr ptr IWICBitmapDecoderInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetDecoderInfo(self, ppIDecoderInfo) + +proc CopyPalette*( + self: ptr IWICBitmapDecoder, pIPalette: ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CopyPalette(self, pIPalette) + +proc GetMetadataQueryReader*( + self: ptr IWICBitmapDecoder, ppIMetadataQueryReader: ptr ptr IWICMetadataQueryReader +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataQueryReader(self, ppIMetadataQueryReader) + +proc GetPreview*( + self: ptr IWICBitmapDecoder, ppIBitmapSource: ptr ptr IWICBitmapSource +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPreview(self, ppIBitmapSource) + +proc GetColorContexts*( + self: ptr IWICBitmapDecoder, + cCount: UINT, + ppIColorContexts: ptr ptr IWICColorContext, + pcActualCount: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetColorContexts(self, cCount, ppIColorContexts, pcActualCount) + +proc GetThumbnail*( + self: ptr IWICBitmapDecoder, ppIThumbnail: ptr ptr IWICBitmapSource +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetThumbnail(self, ppIThumbnail) + +proc GetFrameCount*( + self: ptr IWICBitmapDecoder, pCount: ptr UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFrameCount(self, pCount) + +proc GetFrame*( + self: ptr IWICBitmapDecoder, + index: UINT, + ppIBitmapFrame: ptr ptr IWICBitmapFrameDecode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetFrame(self, index, ppIBitmapFrame) + +proc Initialize*( + self: ptr IWICBitmapFrameEncode, pIEncoderOptions: ptr IPropertyBag2 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pIEncoderOptions) + +proc SetSize*( + self: ptr IWICBitmapFrameEncode, uiWidth: UINT, uiHeight: UINT +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetSize(self, uiWidth, uiHeight) + +proc SetResolution*( + self: ptr IWICBitmapFrameEncode, dpiX: float64, dpiY: float64 +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetResolution(self, dpiX, dpiY) + +proc SetPixelFormat*( + self: ptr IWICBitmapFrameEncode, pPixelFormat: ptr WICPixelFormatGUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPixelFormat(self, pPixelFormat) + +proc SetColorContexts*( + self: ptr IWICBitmapFrameEncode, + cCount: UINT, + ppIColorContext: ptr ptr IWICColorContext, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetColorContexts(self, cCount, ppIColorContext) + +proc SetPalette*( + self: ptr IWICBitmapFrameEncode, pIPalette: ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPalette(self, pIPalette) + +proc SetThumbnail*( + self: ptr IWICBitmapFrameEncode, pIThumbnail: ptr IWICBitmapSource +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetThumbnail(self, pIThumbnail) + +proc WritePixels*( + self: ptr IWICBitmapFrameEncode, + lineCount: UINT, + cbStride: UINT, + cbBufferSize: UINT, + pbPixels: ptr BYTE, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WritePixels(self, lineCount, cbStride, cbBufferSize, pbPixels) + +proc WriteSource*( + self: ptr IWICBitmapFrameEncode, + pIBitmapSource: ptr IWICBitmapSource, + prc: ptr WICRect, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.WriteSource(self, pIBitmapSource, prc) + +proc Commit*(self: ptr IWICBitmapFrameEncode): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self) + +proc GetMetadataQueryWriter*( + self: ptr IWICBitmapFrameEncode, + ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataQueryWriter(self, ppIMetadataQueryWriter) + +proc CreateInstance*( + self: ptr IWICBitmapEncoderInfo, ppIBitmapEncoder: ptr ptr IWICBitmapEncoder +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, ppIBitmapEncoder) + +proc Initialize*( + self: ptr IWICBitmapEncoder, + pIStream: ptr IStream, + cacheOption: WICBitmapEncoderCacheOption, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pIStream, cacheOption) + +proc GetContainerFormat*( + self: ptr IWICBitmapEncoder, pguidContainerFormat: ptr GUID +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetContainerFormat(self, pguidContainerFormat) + +proc GetEncoderInfo*( + self: ptr IWICBitmapEncoder, ppIEncoderInfo: ptr ptr IWICBitmapEncoderInfo +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetEncoderInfo(self, ppIEncoderInfo) + +proc SetColorContexts*( + self: ptr IWICBitmapEncoder, cCount: UINT, ppIColorContext: ptr ptr IWICColorContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetColorContexts(self, cCount, ppIColorContext) + +proc SetPalette*( + self: ptr IWICBitmapEncoder, pIPalette: ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPalette(self, pIPalette) + +proc SetThumbnail*( + self: ptr IWICBitmapEncoder, pIThumbnail: ptr IWICBitmapSource +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetThumbnail(self, pIThumbnail) + +proc SetPreview*( + self: ptr IWICBitmapEncoder, pIPreview: ptr IWICBitmapSource +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.SetPreview(self, pIPreview) + +proc CreateNewFrame*( + self: ptr IWICBitmapEncoder, + ppIFrameEncode: ptr ptr IWICBitmapFrameEncode, + ppIEncoderOptions: ptr ptr IPropertyBag2, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateNewFrame(self, ppIFrameEncode, ppIEncoderOptions) + +proc Commit*(self: ptr IWICBitmapEncoder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self) + +proc GetMetadataQueryWriter*( + self: ptr IWICBitmapEncoder, ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataQueryWriter(self, ppIMetadataQueryWriter) + +proc Initialize*( + self: ptr IWICFormatConverter, + pISource: ptr IWICBitmapSource, + dstFormat: REFWICPixelFormatGUID, + dither: WICBitmapDitherType, + pIPalette: ptr IWICPalette, + alphaThresholdPercent: float64, + paletteTranslate: WICBitmapPaletteType, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize( + self, pISource, dstFormat, dither, pIPalette, alphaThresholdPercent, + paletteTranslate, + ) + +proc CanConvert*( + self: ptr IWICFormatConverter, + srcPixelFormat: REFWICPixelFormatGUID, + dstPixelFormat: REFWICPixelFormatGUID, + pfCanConvert: ptr WINBOOL, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CanConvert(self, srcPixelFormat, dstPixelFormat, pfCanConvert) + +proc GetPixelFormats*( + self: ptr IWICFormatConverterInfo, + cFormats: UINT, + pPixelFormatGUIDs: ptr WICPixelFormatGUID, + pcActual: ptr UINT, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetPixelFormats(self, cFormats, pPixelFormatGUIDs, pcActual) + +proc CreateInstance*( + self: ptr IWICFormatConverterInfo, ppIConverter: ptr ptr IWICFormatConverter +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateInstance(self, ppIConverter) + +proc InitializeFromIStream*( + self: ptr IWICStream, pIStream: ptr IStream +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromIStream(self, pIStream) + +proc InitializeFromFilename*( + self: ptr IWICStream, wzFileName: LPCWSTR, dwAccessMode: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromFilename(self, wzFileName, dwAccessMode) + +proc InitializeFromMemory*( + self: ptr IWICStream, pbBuffer: ptr BYTE, cbBufferSize: DWORD +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromMemory(self, pbBuffer, cbBufferSize) + +proc InitializeFromIStreamRegion*( + self: ptr IWICStream, + pIStream: ptr IStream, + ulOffset: ULARGE_INTEGER, + ulMaxSize: ULARGE_INTEGER, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.InitializeFromIStreamRegion(self, pIStream, ulOffset, ulMaxSize) + +proc Initialize*( + self: ptr IWICBitmapScaler, + pISource: ptr IWICBitmapSource, + uiWidth: UINT, + uiHeight: UINT, + mode: WICBitmapInterpolationMode, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pISource, uiWidth, uiHeight, mode) + +proc Initialize*( + self: ptr IWICBitmapClipper, pISource: ptr IWICBitmapSource, prc: ptr WICRect +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize(self, pISource, prc) + +proc Initialize*( + self: ptr IWICColorTransform, + pIBitmapSource: ptr IWICBitmapSource, + pIContextSource: ptr IWICColorContext, + pIContextDest: ptr IWICColorContext, + pixelFmtDest: REFWICPixelFormatGUID, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Initialize( + self, pIBitmapSource, pIContextSource, pIContextDest, pixelFmtDest + ) + +proc Commit*(self: ptr IWICFastMetadataEncoder): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Commit(self) + +proc GetMetadataQueryWriter*( + self: ptr IWICFastMetadataEncoder, + ppIMetadataQueryWriter: ptr ptr IWICMetadataQueryWriter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.GetMetadataQueryWriter(self, ppIMetadataQueryWriter) + +proc CreateDecoderFromFilename*( + self: ptr IWICImagingFactory, + wzFilename: LPCWSTR, + pguidVendor: ptr GUID, + dwDesiredAccess: DWORD, + metadataOptions: WICDecodeOptions, + ppIDecoder: ptr ptr IWICBitmapDecoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDecoderFromFilename( + self, wzFilename, pguidVendor, dwDesiredAccess, metadataOptions, ppIDecoder + ) + +proc CreateDecoderFromStream*( + self: ptr IWICImagingFactory, + pIStream: ptr IStream, + pguidVendor: ptr GUID, + metadataOptions: WICDecodeOptions, + ppIDecoder: ptr ptr IWICBitmapDecoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDecoderFromStream( + self, pIStream, pguidVendor, metadataOptions, ppIDecoder + ) + +proc CreateDecoderFromFileHandle*( + self: ptr IWICImagingFactory, + hFile: ULONG_PTR, + pguidVendor: ptr GUID, + metadataOptions: WICDecodeOptions, + ppIDecoder: ptr ptr IWICBitmapDecoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDecoderFromFileHandle( + self, hFile, pguidVendor, metadataOptions, ppIDecoder + ) + +proc CreateComponentInfo*( + self: ptr IWICImagingFactory, + clsidComponent: REFCLSID, + ppIInfo: ptr ptr IWICComponentInfo, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateComponentInfo(self, clsidComponent, ppIInfo) + +proc CreateDecoder*( + self: ptr IWICImagingFactory, + guidContainerFormat: REFGUID, + pguidVendor: ptr GUID, + ppIDecoder: ptr ptr IWICBitmapDecoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateDecoder(self, guidContainerFormat, pguidVendor, ppIDecoder) + +proc CreateEncoder*( + self: ptr IWICImagingFactory, + guidContainerFormat: REFGUID, + pguidVendor: ptr GUID, + ppIEncoder: ptr ptr IWICBitmapEncoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateEncoder(self, guidContainerFormat, pguidVendor, ppIEncoder) + +proc CreatePalette*( + self: ptr IWICImagingFactory, ppIPalette: ptr ptr IWICPalette +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreatePalette(self, ppIPalette) + +proc CreateFormatConverter*( + self: ptr IWICImagingFactory, ppIFormatConverter: ptr ptr IWICFormatConverter +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateFormatConverter(self, ppIFormatConverter) + +proc CreateBitmapScaler*( + self: ptr IWICImagingFactory, ppIBitmapScaler: ptr ptr IWICBitmapScaler +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapScaler(self, ppIBitmapScaler) + +proc CreateBitmapClipper*( + self: ptr IWICImagingFactory, ppIBitmapClipper: ptr ptr IWICBitmapClipper +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapClipper(self, ppIBitmapClipper) + +proc CreateBitmapFlipRotator*( + self: ptr IWICImagingFactory, ppIBitmapFlipRotator: ptr ptr IWICBitmapFlipRotator +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapFlipRotator(self, ppIBitmapFlipRotator) + +proc CreateStream*( + self: ptr IWICImagingFactory, ppIWICStream: ptr ptr IWICStream +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateStream(self, ppIWICStream) + +proc CreateColorContext*( + self: ptr IWICImagingFactory, ppIWICColorContext: ptr ptr IWICColorContext +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateColorContext(self, ppIWICColorContext) + +proc CreateColorTransformer*( + self: ptr IWICImagingFactory, ppIWICColorTransform: ptr ptr IWICColorTransform +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateColorTransformer(self, ppIWICColorTransform) + +proc CreateBitmap*( + self: ptr IWICImagingFactory, + uiWidth: UINT, + uiHeight: UINT, + pixelFormat: REFWICPixelFormatGUID, + option: WICBitmapCreateCacheOption, + ppIBitmap: ptr ptr IWICBitmap, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmap(self, uiWidth, uiHeight, pixelFormat, option, ppIBitmap) + +proc CreateBitmapFromSource*( + self: ptr IWICImagingFactory, + piBitmapSource: ptr IWICBitmapSource, + option: WICBitmapCreateCacheOption, + ppIBitmap: ptr ptr IWICBitmap, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapFromSource(self, piBitmapSource, option, ppIBitmap) + +proc CreateBitmapFromSourceRect*( + self: ptr IWICImagingFactory, + piBitmapSource: ptr IWICBitmapSource, + x: UINT, + y: UINT, + width: UINT, + height: UINT, + ppIBitmap: ptr ptr IWICBitmap, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapFromSourceRect( + self, piBitmapSource, x, y, width, height, ppIBitmap + ) + +proc CreateBitmapFromMemory*( + self: ptr IWICImagingFactory, + uiWidth: UINT, + uiHeight: UINT, + pixelFormat: REFWICPixelFormatGUID, + cbStride: UINT, + cbBufferSize: UINT, + pbBuffer: ptr BYTE, + ppIBitmap: ptr ptr IWICBitmap, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapFromMemory( + self, uiWidth, uiHeight, pixelFormat, cbStride, cbBufferSize, pbBuffer, ppIBitmap + ) + +proc CreateBitmapFromHBITMAP*( + self: ptr IWICImagingFactory, + hBitmap: HBITMAP, + hPalette: HPALETTE, + options: WICBitmapAlphaChannelOption, + ppIBitmap: ptr ptr IWICBitmap, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapFromHBITMAP(self, hBitmap, hPalette, options, ppIBitmap) + +proc CreateBitmapFromHICON*( + self: ptr IWICImagingFactory, hIcon: HICON, ppIBitmap: ptr ptr IWICBitmap +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateBitmapFromHICON(self, hIcon, ppIBitmap) + +proc CreateComponentEnumerator*( + self: ptr IWICImagingFactory, + componentTypes: DWORD, + options: DWORD, + ppIEnumUnknown: ptr ptr IEnumUnknown, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateComponentEnumerator(self, componentTypes, options, ppIEnumUnknown) + +proc CreateFastMetadataEncoderFromDecoder*( + self: ptr IWICImagingFactory, + pIDecoder: ptr IWICBitmapDecoder, + ppIFastEncoder: ptr ptr IWICFastMetadataEncoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateFastMetadataEncoderFromDecoder(self, pIDecoder, ppIFastEncoder) + +proc CreateFastMetadataEncoderFromFrameDecode*( + self: ptr IWICImagingFactory, + pIFrameDecoder: ptr IWICBitmapFrameDecode, + ppIFastEncoder: ptr ptr IWICFastMetadataEncoder, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateFastMetadataEncoderFromFrameDecode( + self, pIFrameDecoder, ppIFastEncoder + ) + +proc CreateQueryWriter*( + self: ptr IWICImagingFactory, + guidMetadataFormat: REFGUID, + pguidVendor: ptr GUID, + ppIQueryWriter: ptr ptr IWICMetadataQueryWriter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateQueryWriter(self, guidMetadataFormat, pguidVendor, ppIQueryWriter) + +proc CreateQueryWriterFromReader*( + self: ptr IWICImagingFactory, + pIQueryReader: ptr IWICMetadataQueryReader, + pguidVendor: ptr GUID, + ppIQueryWriter: ptr ptr IWICMetadataQueryWriter, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.CreateQueryWriterFromReader( + self, pIQueryReader, pguidVendor, ppIQueryWriter + ) + +proc Next*( + self: ptr IWICEnumMetadataItem, + celt: ULONG, + rgeltSchema: ptr PROPVARIANT, + rgeltId: ptr PROPVARIANT, + rgeltValue: ptr PROPVARIANT, + pceltFetched: ptr ULONG, +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Next(self, celt, rgeltSchema, rgeltId, rgeltValue, pceltFetched) + +proc Skip*(self: ptr IWICEnumMetadataItem, celt: ULONG): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Skip(self, celt) + +proc Reset*(self: ptr IWICEnumMetadataItem): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Reset(self) + +proc Clone*( + self: ptr IWICEnumMetadataItem, ppIEnumMetadataItem: ptr ptr IWICEnumMetadataItem +): HRESULT {.winapi, inline.} = + {.gcsafe.}: + self.lpVtbl.Clone(self, ppIEnumMetadataItem) + +converter winimConverterIWICColorContextToIUnknown*( + x: ptr IWICColorContext +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapSourceToIUnknown*( + x: ptr IWICBitmapSource +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapLockToIUnknown*(x: ptr IWICBitmapLock): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapFlipRotatorToIWICBitmapSource*( + x: ptr IWICBitmapFlipRotator +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICBitmapFlipRotatorToIUnknown*( + x: ptr IWICBitmapFlipRotator +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapToIWICBitmapSource*( + x: ptr IWICBitmap +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICBitmapToIUnknown*(x: ptr IWICBitmap): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICPaletteToIUnknown*(x: ptr IWICPalette): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICComponentInfoToIUnknown*( + x: ptr IWICComponentInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICMetadataQueryReaderToIUnknown*( + x: ptr IWICMetadataQueryReader +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICMetadataQueryWriterToIWICMetadataQueryReader*( + x: ptr IWICMetadataQueryWriter +): ptr IWICMetadataQueryReader = + cast[ptr IWICMetadataQueryReader](x) + +converter winimConverterIWICMetadataQueryWriterToIUnknown*( + x: ptr IWICMetadataQueryWriter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapFrameDecodeToIWICBitmapSource*( + x: ptr IWICBitmapFrameDecode +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICBitmapFrameDecodeToIUnknown*( + x: ptr IWICBitmapFrameDecode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICPixelFormatInfoToIWICComponentInfo*( + x: ptr IWICPixelFormatInfo +): ptr IWICComponentInfo = + cast[ptr IWICComponentInfo](x) + +converter winimConverterIWICPixelFormatInfoToIUnknown*( + x: ptr IWICPixelFormatInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICPixelFormatInfo2ToIWICPixelFormatInfo*( + x: ptr IWICPixelFormatInfo2 +): ptr IWICPixelFormatInfo = + cast[ptr IWICPixelFormatInfo](x) + +converter winimConverterIWICPixelFormatInfo2ToIWICComponentInfo*( + x: ptr IWICPixelFormatInfo2 +): ptr IWICComponentInfo = + cast[ptr IWICComponentInfo](x) + +converter winimConverterIWICPixelFormatInfo2ToIUnknown*( + x: ptr IWICPixelFormatInfo2 +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapCodecInfoToIWICComponentInfo*( + x: ptr IWICBitmapCodecInfo +): ptr IWICComponentInfo = + cast[ptr IWICComponentInfo](x) + +converter winimConverterIWICBitmapCodecInfoToIUnknown*( + x: ptr IWICBitmapCodecInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapDecoderInfoToIWICBitmapCodecInfo*( + x: ptr IWICBitmapDecoderInfo +): ptr IWICBitmapCodecInfo = + cast[ptr IWICBitmapCodecInfo](x) + +converter winimConverterIWICBitmapDecoderInfoToIWICComponentInfo*( + x: ptr IWICBitmapDecoderInfo +): ptr IWICComponentInfo = + cast[ptr IWICComponentInfo](x) + +converter winimConverterIWICBitmapDecoderInfoToIUnknown*( + x: ptr IWICBitmapDecoderInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapDecoderToIUnknown*( + x: ptr IWICBitmapDecoder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapFrameEncodeToIUnknown*( + x: ptr IWICBitmapFrameEncode +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapEncoderInfoToIWICBitmapCodecInfo*( + x: ptr IWICBitmapEncoderInfo +): ptr IWICBitmapCodecInfo = + cast[ptr IWICBitmapCodecInfo](x) + +converter winimConverterIWICBitmapEncoderInfoToIWICComponentInfo*( + x: ptr IWICBitmapEncoderInfo +): ptr IWICComponentInfo = + cast[ptr IWICComponentInfo](x) + +converter winimConverterIWICBitmapEncoderInfoToIUnknown*( + x: ptr IWICBitmapEncoderInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapEncoderToIUnknown*( + x: ptr IWICBitmapEncoder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICFormatConverterToIWICBitmapSource*( + x: ptr IWICFormatConverter +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICFormatConverterToIUnknown*( + x: ptr IWICFormatConverter +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICFormatConverterInfoToIWICComponentInfo*( + x: ptr IWICFormatConverterInfo +): ptr IWICComponentInfo = + cast[ptr IWICComponentInfo](x) + +converter winimConverterIWICFormatConverterInfoToIUnknown*( + x: ptr IWICFormatConverterInfo +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICStreamToIStream*(x: ptr IWICStream): ptr IStream = + cast[ptr IStream](x) + +converter winimConverterIWICStreamToISequentialStream*( + x: ptr IWICStream +): ptr ISequentialStream = + cast[ptr ISequentialStream](x) + +converter winimConverterIWICStreamToIUnknown*(x: ptr IWICStream): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapScalerToIWICBitmapSource*( + x: ptr IWICBitmapScaler +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICBitmapScalerToIUnknown*( + x: ptr IWICBitmapScaler +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICBitmapClipperToIWICBitmapSource*( + x: ptr IWICBitmapClipper +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICBitmapClipperToIUnknown*( + x: ptr IWICBitmapClipper +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICColorTransformToIWICBitmapSource*( + x: ptr IWICColorTransform +): ptr IWICBitmapSource = + cast[ptr IWICBitmapSource](x) + +converter winimConverterIWICColorTransformToIUnknown*( + x: ptr IWICColorTransform +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICFastMetadataEncoderToIUnknown*( + x: ptr IWICFastMetadataEncoder +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICImagingFactoryToIUnknown*( + x: ptr IWICImagingFactory +): ptr IUnknown = + cast[ptr IUnknown](x) + +converter winimConverterIWICEnumMetadataItemToIUnknown*( + x: ptr IWICEnumMetadataItem +): ptr IUnknown = + cast[ptr IUnknown](x) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wincon.nim --- a/semicongine/thirdparty/winim/winim/inc/wincon.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wincon.nim Thu Aug 22 18:32:21 2024 +0700 @@ -13,16 +13,19 @@ COORD* {.pure.} = object X*: SHORT Y*: SHORT + PCOORD* = ptr COORD SMALL_RECT* {.pure.} = object Left*: SHORT Top*: SHORT Right*: SHORT Bottom*: SHORT + PSMALL_RECT* = ptr SMALL_RECT KEY_EVENT_RECORD_uChar* {.pure, union.} = object UnicodeChar*: WCHAR AsciiChar*: CHAR + KEY_EVENT_RECORD* {.pure.} = object bKeyDown*: WINBOOL wRepeatCount*: WORD @@ -30,21 +33,26 @@ wVirtualScanCode*: WORD uChar*: KEY_EVENT_RECORD_uChar dwControlKeyState*: DWORD + PKEY_EVENT_RECORD* = ptr KEY_EVENT_RECORD MOUSE_EVENT_RECORD* {.pure.} = object dwMousePosition*: COORD dwButtonState*: DWORD dwControlKeyState*: DWORD dwEventFlags*: DWORD + PMOUSE_EVENT_RECORD* = ptr MOUSE_EVENT_RECORD WINDOW_BUFFER_SIZE_RECORD* {.pure.} = object dwSize*: COORD + PWINDOW_BUFFER_SIZE_RECORD* = ptr WINDOW_BUFFER_SIZE_RECORD MENU_EVENT_RECORD* {.pure.} = object dwCommandId*: UINT + PMENU_EVENT_RECORD* = ptr MENU_EVENT_RECORD FOCUS_EVENT_RECORD* {.pure.} = object bSetFocus*: WINBOOL + PFOCUS_EVENT_RECORD* = ptr FOCUS_EVENT_RECORD INPUT_RECORD_Event* {.pure, union.} = object KeyEvent*: KEY_EVENT_RECORD @@ -52,16 +60,20 @@ WindowBufferSizeEvent*: WINDOW_BUFFER_SIZE_RECORD MenuEvent*: MENU_EVENT_RECORD FocusEvent*: FOCUS_EVENT_RECORD + INPUT_RECORD* {.pure.} = object EventType*: WORD Event*: INPUT_RECORD_Event + PINPUT_RECORD* = ptr INPUT_RECORD CHAR_INFO_Char* {.pure, union.} = object UnicodeChar*: WCHAR AsciiChar*: CHAR + CHAR_INFO* {.pure.} = object Char*: CHAR_INFO_Char Attributes*: WORD + PCHAR_INFO* = ptr CHAR_INFO CONSOLE_SCREEN_BUFFER_INFO* {.pure.} = object dwSize*: COORD @@ -69,19 +81,23 @@ wAttributes*: WORD srWindow*: SMALL_RECT dwMaximumWindowSize*: COORD + PCONSOLE_SCREEN_BUFFER_INFO* = ptr CONSOLE_SCREEN_BUFFER_INFO CONSOLE_CURSOR_INFO* {.pure.} = object dwSize*: DWORD bVisible*: WINBOOL + PCONSOLE_CURSOR_INFO* = ptr CONSOLE_CURSOR_INFO CONSOLE_FONT_INFO* {.pure.} = object nFont*: DWORD dwFontSize*: COORD + PCONSOLE_FONT_INFO* = ptr CONSOLE_FONT_INFO CONSOLE_SELECTION_INFO* {.pure.} = object dwFlags*: DWORD dwSelectionAnchor*: COORD srSelection*: SMALL_RECT + PCONSOLE_SELECTION_INFO* = ptr CONSOLE_SELECTION_INFO CONSOLE_FONT_INFOEX* {.pure.} = object cbSize*: ULONG @@ -90,18 +106,21 @@ FontFamily*: UINT FontWeight*: UINT FaceName*: array[LF_FACESIZE, WCHAR] + PCONSOLE_FONT_INFOEX* = ptr CONSOLE_FONT_INFOEX CONSOLE_HISTORY_INFO* {.pure.} = object cbSize*: UINT HistoryBufferSize*: UINT NumberOfHistoryBuffers*: UINT dwFlags*: DWORD + PCONSOLE_HISTORY_INFO* = ptr CONSOLE_HISTORY_INFO CONSOLE_READCONSOLE_CONTROL* {.pure.} = object nLength*: ULONG nInitialChars*: ULONG dwCtrlWakeupMask*: ULONG dwControlKeyState*: ULONG + PCONSOLE_READCONSOLE_CONTROL* = ptr CONSOLE_READCONSOLE_CONTROL CONSOLE_SCREEN_BUFFER_INFOEX* {.pure.} = object cbSize*: ULONG @@ -113,7 +132,9 @@ wPopupAttributes*: WORD bFullscreenSupported*: WINBOOL ColorTable*: array[16, COLORREF] + PCONSOLE_SCREEN_BUFFER_INFOEX* = ptr CONSOLE_SCREEN_BUFFER_INFOEX + const RIGHT_ALT_PRESSED* = 0x1 LEFT_ALT_PRESSED* = 0x2 @@ -188,127 +209,672 @@ CONSOLE_FULLSCREEN_HARDWARE* = 2 CONSOLE_FULLSCREEN_MODE* = 1 CONSOLE_WINDOWED_MODE* = 2 -type - PHANDLER_ROUTINE* = proc (CtrlType: DWORD): WINBOOL {.stdcall.} -proc PeekConsoleInputA*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc PeekConsoleInputW*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleInputA*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleInputW*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleInputA*(hConsoleInput: HANDLE, lpBuffer: ptr INPUT_RECORD, nLength: DWORD, lpNumberOfEventsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleInputW*(hConsoleInput: HANDLE, lpBuffer: ptr INPUT_RECORD, nLength: DWORD, lpNumberOfEventsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleOutputA*(hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpReadRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleOutputW*(hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpReadRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleOutputA*(hConsoleOutput: HANDLE, lpBuffer: ptr CHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleOutputW*(hConsoleOutput: HANDLE, lpBuffer: ptr CHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleOutputCharacterA*(hConsoleOutput: HANDLE, lpCharacter: LPSTR, nLength: DWORD, dwReadCoord: COORD, lpNumberOfCharsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleOutputCharacterW*(hConsoleOutput: HANDLE, lpCharacter: LPWSTR, nLength: DWORD, dwReadCoord: COORD, lpNumberOfCharsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleOutputAttribute*(hConsoleOutput: HANDLE, lpAttribute: LPWORD, nLength: DWORD, dwReadCoord: COORD, lpNumberOfAttrsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleOutputCharacterA*(hConsoleOutput: HANDLE, lpCharacter: LPCSTR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleOutputCharacterW*(hConsoleOutput: HANDLE, lpCharacter: LPCWSTR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleOutputAttribute*(hConsoleOutput: HANDLE, lpAttribute: ptr WORD, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfAttrsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FillConsoleOutputCharacterA*(hConsoleOutput: HANDLE, cCharacter: CHAR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FillConsoleOutputCharacterW*(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FillConsoleOutputAttribute*(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfAttrsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleMode*(hConsoleHandle: HANDLE, lpMode: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumberOfConsoleInputEvents*(hConsoleInput: HANDLE, lpNumberOfEvents: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleScreenBufferInfo*(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLargestConsoleWindowSize*(hConsoleOutput: HANDLE): COORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleCursorInfo*(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentConsoleFont*(hConsoleOutput: HANDLE, bMaximumWindow: WINBOOL, lpConsoleCurrentFont: PCONSOLE_FONT_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleFontSize*(hConsoleOutput: HANDLE, nFont: DWORD): COORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleSelectionInfo*(lpConsoleSelectionInfo: PCONSOLE_SELECTION_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumberOfConsoleMouseButtons*(lpNumberOfMouseButtons: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleMode*(hConsoleHandle: HANDLE, dwMode: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleActiveScreenBuffer*(hConsoleOutput: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FlushConsoleInputBuffer*(hConsoleInput: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleScreenBufferSize*(hConsoleOutput: HANDLE, dwSize: COORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleCursorPosition*(hConsoleOutput: HANDLE, dwCursorPosition: COORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleCursorInfo*(hConsoleOutput: HANDLE, lpConsoleCursorInfo: ptr CONSOLE_CURSOR_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ScrollConsoleScreenBufferA*(hConsoleOutput: HANDLE, lpScrollRectangle: ptr SMALL_RECT, lpClipRectangle: ptr SMALL_RECT, dwDestinationOrigin: COORD, lpFill: ptr CHAR_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ScrollConsoleScreenBufferW*(hConsoleOutput: HANDLE, lpScrollRectangle: ptr SMALL_RECT, lpClipRectangle: ptr SMALL_RECT, dwDestinationOrigin: COORD, lpFill: ptr CHAR_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleWindowInfo*(hConsoleOutput: HANDLE, bAbsolute: WINBOOL, lpConsoleWindow: ptr SMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleTextAttribute*(hConsoleOutput: HANDLE, wAttributes: WORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleCtrlHandler*(HandlerRoutine: PHANDLER_ROUTINE, Add: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GenerateConsoleCtrlEvent*(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +type PHANDLER_ROUTINE* = proc(CtrlType: DWORD): WINBOOL {.stdcall.} +proc PeekConsoleInputA*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc PeekConsoleInputW*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleInputA*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleInputW*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleInputA*( + hConsoleInput: HANDLE, + lpBuffer: ptr INPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleInputW*( + hConsoleInput: HANDLE, + lpBuffer: ptr INPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleOutputA*( + hConsoleOutput: HANDLE, + lpBuffer: PCHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpReadRegion: PSMALL_RECT, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleOutputW*( + hConsoleOutput: HANDLE, + lpBuffer: PCHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpReadRegion: PSMALL_RECT, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleOutputA*( + hConsoleOutput: HANDLE, + lpBuffer: ptr CHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpWriteRegion: PSMALL_RECT, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleOutputW*( + hConsoleOutput: HANDLE, + lpBuffer: ptr CHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpWriteRegion: PSMALL_RECT, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleOutputCharacterA*( + hConsoleOutput: HANDLE, + lpCharacter: LPSTR, + nLength: DWORD, + dwReadCoord: COORD, + lpNumberOfCharsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleOutputCharacterW*( + hConsoleOutput: HANDLE, + lpCharacter: LPWSTR, + nLength: DWORD, + dwReadCoord: COORD, + lpNumberOfCharsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleOutputAttribute*( + hConsoleOutput: HANDLE, + lpAttribute: LPWORD, + nLength: DWORD, + dwReadCoord: COORD, + lpNumberOfAttrsRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleOutputCharacterA*( + hConsoleOutput: HANDLE, + lpCharacter: LPCSTR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleOutputCharacterW*( + hConsoleOutput: HANDLE, + lpCharacter: LPCWSTR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleOutputAttribute*( + hConsoleOutput: HANDLE, + lpAttribute: ptr WORD, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfAttrsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FillConsoleOutputCharacterA*( + hConsoleOutput: HANDLE, + cCharacter: CHAR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FillConsoleOutputCharacterW*( + hConsoleOutput: HANDLE, + cCharacter: WCHAR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FillConsoleOutputAttribute*( + hConsoleOutput: HANDLE, + wAttribute: WORD, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfAttrsWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleMode*( + hConsoleHandle: HANDLE, lpMode: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumberOfConsoleInputEvents*( + hConsoleInput: HANDLE, lpNumberOfEvents: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleScreenBufferInfo*( + hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLargestConsoleWindowSize*( + hConsoleOutput: HANDLE +): COORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleCursorInfo*( + hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentConsoleFont*( + hConsoleOutput: HANDLE, + bMaximumWindow: WINBOOL, + lpConsoleCurrentFont: PCONSOLE_FONT_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleFontSize*( + hConsoleOutput: HANDLE, nFont: DWORD +): COORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleSelectionInfo*( + lpConsoleSelectionInfo: PCONSOLE_SELECTION_INFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumberOfConsoleMouseButtons*( + lpNumberOfMouseButtons: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleMode*( + hConsoleHandle: HANDLE, dwMode: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleActiveScreenBuffer*( + hConsoleOutput: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FlushConsoleInputBuffer*( + hConsoleInput: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleScreenBufferSize*( + hConsoleOutput: HANDLE, dwSize: COORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleCursorPosition*( + hConsoleOutput: HANDLE, dwCursorPosition: COORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleCursorInfo*( + hConsoleOutput: HANDLE, lpConsoleCursorInfo: ptr CONSOLE_CURSOR_INFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ScrollConsoleScreenBufferA*( + hConsoleOutput: HANDLE, + lpScrollRectangle: ptr SMALL_RECT, + lpClipRectangle: ptr SMALL_RECT, + dwDestinationOrigin: COORD, + lpFill: ptr CHAR_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ScrollConsoleScreenBufferW*( + hConsoleOutput: HANDLE, + lpScrollRectangle: ptr SMALL_RECT, + lpClipRectangle: ptr SMALL_RECT, + dwDestinationOrigin: COORD, + lpFill: ptr CHAR_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleWindowInfo*( + hConsoleOutput: HANDLE, bAbsolute: WINBOOL, lpConsoleWindow: ptr SMALL_RECT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleTextAttribute*( + hConsoleOutput: HANDLE, wAttributes: WORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleCtrlHandler*( + HandlerRoutine: PHANDLER_ROUTINE, Add: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GenerateConsoleCtrlEvent*( + dwCtrlEvent: DWORD, dwProcessGroupId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc AllocConsole*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} proc FreeConsole*(): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AttachConsole*(dwProcessId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleTitleA*(lpConsoleTitle: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleTitleW*(lpConsoleTitle: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleTitleA*(lpConsoleTitle: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleTitleW*(lpConsoleTitle: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleA*(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ReadConsoleW*(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleA*(hConsoleOutput: HANDLE, lpBuffer: pointer, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WriteConsoleW*(hConsoleOutput: HANDLE, lpBuffer: pointer, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CreateConsoleScreenBuffer*(dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: ptr SECURITY_ATTRIBUTES, dwFlags: DWORD, lpScreenBufferData: LPVOID): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} +proc AttachConsole*( + dwProcessId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleTitleA*( + lpConsoleTitle: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleTitleW*( + lpConsoleTitle: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleTitleA*( + lpConsoleTitle: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleTitleW*( + lpConsoleTitle: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleA*( + hConsoleInput: HANDLE, + lpBuffer: LPVOID, + nNumberOfCharsToRead: DWORD, + lpNumberOfCharsRead: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ReadConsoleW*( + hConsoleInput: HANDLE, + lpBuffer: LPVOID, + nNumberOfCharsToRead: DWORD, + lpNumberOfCharsRead: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleA*( + hConsoleOutput: HANDLE, + lpBuffer: pointer, + nNumberOfCharsToWrite: DWORD, + lpNumberOfCharsWritten: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WriteConsoleW*( + hConsoleOutput: HANDLE, + lpBuffer: pointer, + nNumberOfCharsToWrite: DWORD, + lpNumberOfCharsWritten: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CreateConsoleScreenBuffer*( + dwDesiredAccess: DWORD, + dwShareMode: DWORD, + lpSecurityAttributes: ptr SECURITY_ATTRIBUTES, + dwFlags: DWORD, + lpScreenBufferData: LPVOID, +): HANDLE {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetConsoleCP*(): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleCP*(wCodePageID: UINT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetConsoleCP*( + wCodePageID: UINT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetConsoleOutputCP*(): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleOutputCP*(wCodePageID: UINT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleDisplayMode*(lpModeFlags: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleDisplayMode*(hConsoleOutput: HANDLE, dwFlags: DWORD, lpNewScreenBufferDimensions: PCOORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetConsoleOutputCP*( + wCodePageID: UINT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleDisplayMode*( + lpModeFlags: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleDisplayMode*( + hConsoleOutput: HANDLE, dwFlags: DWORD, lpNewScreenBufferDimensions: PCOORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetConsoleWindow*(): HWND {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleProcessList*(lpdwProcessList: LPDWORD, dwProcessCount: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddConsoleAliasA*(Source: LPSTR, Target: LPSTR, ExeName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc AddConsoleAliasW*(Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasA*(Source: LPSTR, TargetBuffer: LPSTR, TargetBufferLength: DWORD, ExeName: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasW*(Source: LPWSTR, TargetBuffer: LPWSTR, TargetBufferLength: DWORD, ExeName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasesLengthA*(ExeName: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasesLengthW*(ExeName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasExesLengthA*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasExesLengthW*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasesA*(AliasBuffer: LPSTR, AliasBufferLength: DWORD, ExeName: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasesW*(AliasBuffer: LPWSTR, AliasBufferLength: DWORD, ExeName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasExesA*(ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleAliasExesW*(ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleHistoryInfo*(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleOriginalTitleA*(lpConsoleTitle: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleOriginalTitleW*(lpConsoleTitle: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetConsoleScreenBufferInfoEx*(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrentConsoleFontEx*(hConsoleOutput: HANDLE, bMaximumWindow: WINBOOL, lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleHistoryInfo*(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetConsoleScreenBufferInfoEx*(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCurrentConsoleFontEx*(hConsoleOutput: HANDLE, bMaximumWindow: WINBOOL, lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc GetConsoleProcessList*( + lpdwProcessList: LPDWORD, dwProcessCount: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddConsoleAliasA*( + Source: LPSTR, Target: LPSTR, ExeName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc AddConsoleAliasW*( + Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasA*( + Source: LPSTR, TargetBuffer: LPSTR, TargetBufferLength: DWORD, ExeName: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasW*( + Source: LPWSTR, TargetBuffer: LPWSTR, TargetBufferLength: DWORD, ExeName: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasesLengthA*( + ExeName: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasesLengthW*( + ExeName: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasExesLengthA*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetConsoleAliasExesLengthW*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetConsoleAliasesA*( + AliasBuffer: LPSTR, AliasBufferLength: DWORD, ExeName: LPSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasesW*( + AliasBuffer: LPWSTR, AliasBufferLength: DWORD, ExeName: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasExesA*( + ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleAliasExesW*( + ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleHistoryInfo*( + lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleOriginalTitleA*( + lpConsoleTitle: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleOriginalTitleW*( + lpConsoleTitle: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetConsoleScreenBufferInfoEx*( + hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrentConsoleFontEx*( + hConsoleOutput: HANDLE, + bMaximumWindow: WINBOOL, + lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleHistoryInfo*( + lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetConsoleScreenBufferInfoEx*( + hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCurrentConsoleFontEx*( + hConsoleOutput: HANDLE, + bMaximumWindow: WINBOOL, + lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + when winimUnicode: - proc PeekConsoleInput*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "PeekConsoleInputW".} - proc ReadConsoleInput*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleInputW".} - proc WriteConsoleInput*(hConsoleInput: HANDLE, lpBuffer: ptr INPUT_RECORD, nLength: DWORD, lpNumberOfEventsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleInputW".} - proc ReadConsoleOutput*(hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpReadRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputW".} - proc WriteConsoleOutput*(hConsoleOutput: HANDLE, lpBuffer: ptr CHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputW".} - proc ReadConsoleOutputCharacter*(hConsoleOutput: HANDLE, lpCharacter: LPWSTR, nLength: DWORD, dwReadCoord: COORD, lpNumberOfCharsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputCharacterW".} - proc WriteConsoleOutputCharacter*(hConsoleOutput: HANDLE, lpCharacter: LPCWSTR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputCharacterW".} - proc FillConsoleOutputCharacter*(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FillConsoleOutputCharacterW".} - proc ScrollConsoleScreenBuffer*(hConsoleOutput: HANDLE, lpScrollRectangle: ptr SMALL_RECT, lpClipRectangle: ptr SMALL_RECT, dwDestinationOrigin: COORD, lpFill: ptr CHAR_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ScrollConsoleScreenBufferW".} - proc GetConsoleTitle*(lpConsoleTitle: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleTitleW".} - proc SetConsoleTitle*(lpConsoleTitle: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetConsoleTitleW".} - proc ReadConsole*(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleW".} - proc WriteConsole*(hConsoleOutput: HANDLE, lpBuffer: pointer, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleW".} - proc AddConsoleAlias*(Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "AddConsoleAliasW".} - proc GetConsoleAlias*(Source: LPWSTR, TargetBuffer: LPWSTR, TargetBufferLength: DWORD, ExeName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasW".} - proc GetConsoleAliasesLength*(ExeName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesLengthW".} - proc GetConsoleAliasExesLength*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesLengthW".} - proc GetConsoleAliases*(AliasBuffer: LPWSTR, AliasBufferLength: DWORD, ExeName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesW".} - proc GetConsoleAliasExes*(ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesW".} - proc GetConsoleOriginalTitle*(lpConsoleTitle: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleOriginalTitleW".} + proc PeekConsoleInput*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "PeekConsoleInputW".} + + proc ReadConsoleInput*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleInputW".} + + proc WriteConsoleInput*( + hConsoleInput: HANDLE, + lpBuffer: ptr INPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsWritten: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleInputW".} + + proc ReadConsoleOutput*( + hConsoleOutput: HANDLE, + lpBuffer: PCHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpReadRegion: PSMALL_RECT, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputW".} + + proc WriteConsoleOutput*( + hConsoleOutput: HANDLE, + lpBuffer: ptr CHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpWriteRegion: PSMALL_RECT, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputW".} + + proc ReadConsoleOutputCharacter*( + hConsoleOutput: HANDLE, + lpCharacter: LPWSTR, + nLength: DWORD, + dwReadCoord: COORD, + lpNumberOfCharsRead: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputCharacterW" + .} + + proc WriteConsoleOutputCharacter*( + hConsoleOutput: HANDLE, + lpCharacter: LPCWSTR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputCharacterW" + .} + + proc FillConsoleOutputCharacter*( + hConsoleOutput: HANDLE, + cCharacter: WCHAR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "FillConsoleOutputCharacterW" + .} + + proc ScrollConsoleScreenBuffer*( + hConsoleOutput: HANDLE, + lpScrollRectangle: ptr SMALL_RECT, + lpClipRectangle: ptr SMALL_RECT, + dwDestinationOrigin: COORD, + lpFill: ptr CHAR_INFO, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "ScrollConsoleScreenBufferW" + .} + + proc GetConsoleTitle*( + lpConsoleTitle: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleTitleW".} + + proc SetConsoleTitle*( + lpConsoleTitle: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetConsoleTitleW".} + + proc ReadConsole*( + hConsoleInput: HANDLE, + lpBuffer: LPVOID, + nNumberOfCharsToRead: DWORD, + lpNumberOfCharsRead: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleW".} + + proc WriteConsole*( + hConsoleOutput: HANDLE, + lpBuffer: pointer, + nNumberOfCharsToWrite: DWORD, + lpNumberOfCharsWritten: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleW".} + + proc AddConsoleAlias*( + Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "AddConsoleAliasW".} + + proc GetConsoleAlias*( + Source: LPWSTR, TargetBuffer: LPWSTR, TargetBufferLength: DWORD, ExeName: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasW".} + + proc GetConsoleAliasesLength*( + ExeName: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesLengthW".} + + proc GetConsoleAliasExesLength*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesLengthW" + .} + + proc GetConsoleAliases*( + AliasBuffer: LPWSTR, AliasBufferLength: DWORD, ExeName: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesW".} + + proc GetConsoleAliasExes*( + ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesW".} + + proc GetConsoleOriginalTitle*( + lpConsoleTitle: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleOriginalTitleW".} + when winimAnsi: - proc PeekConsoleInput*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "PeekConsoleInputA".} - proc ReadConsoleInput*(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleInputA".} - proc WriteConsoleInput*(hConsoleInput: HANDLE, lpBuffer: ptr INPUT_RECORD, nLength: DWORD, lpNumberOfEventsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleInputA".} - proc ReadConsoleOutput*(hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpReadRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputA".} - proc WriteConsoleOutput*(hConsoleOutput: HANDLE, lpBuffer: ptr CHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputA".} - proc ReadConsoleOutputCharacter*(hConsoleOutput: HANDLE, lpCharacter: LPSTR, nLength: DWORD, dwReadCoord: COORD, lpNumberOfCharsRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputCharacterA".} - proc WriteConsoleOutputCharacter*(hConsoleOutput: HANDLE, lpCharacter: LPCSTR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputCharacterA".} - proc FillConsoleOutputCharacter*(hConsoleOutput: HANDLE, cCharacter: CHAR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "FillConsoleOutputCharacterA".} - proc ScrollConsoleScreenBuffer*(hConsoleOutput: HANDLE, lpScrollRectangle: ptr SMALL_RECT, lpClipRectangle: ptr SMALL_RECT, dwDestinationOrigin: COORD, lpFill: ptr CHAR_INFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ScrollConsoleScreenBufferA".} - proc GetConsoleTitle*(lpConsoleTitle: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleTitleA".} - proc SetConsoleTitle*(lpConsoleTitle: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetConsoleTitleA".} - proc ReadConsole*(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleA".} - proc WriteConsole*(hConsoleOutput: HANDLE, lpBuffer: pointer, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleA".} - proc AddConsoleAlias*(Source: LPSTR, Target: LPSTR, ExeName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "AddConsoleAliasA".} - proc GetConsoleAlias*(Source: LPSTR, TargetBuffer: LPSTR, TargetBufferLength: DWORD, ExeName: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasA".} - proc GetConsoleAliasesLength*(ExeName: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesLengthA".} - proc GetConsoleAliasExesLength*(): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesLengthA".} - proc GetConsoleAliases*(AliasBuffer: LPSTR, AliasBufferLength: DWORD, ExeName: LPSTR): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesA".} - proc GetConsoleAliasExes*(ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesA".} - proc GetConsoleOriginalTitle*(lpConsoleTitle: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleOriginalTitleA".} + proc PeekConsoleInput*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "PeekConsoleInputA".} + + proc ReadConsoleInput*( + hConsoleInput: HANDLE, + lpBuffer: PINPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsRead: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleInputA".} + + proc WriteConsoleInput*( + hConsoleInput: HANDLE, + lpBuffer: ptr INPUT_RECORD, + nLength: DWORD, + lpNumberOfEventsWritten: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleInputA".} + + proc ReadConsoleOutput*( + hConsoleOutput: HANDLE, + lpBuffer: PCHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpReadRegion: PSMALL_RECT, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputA".} + + proc WriteConsoleOutput*( + hConsoleOutput: HANDLE, + lpBuffer: ptr CHAR_INFO, + dwBufferSize: COORD, + dwBufferCoord: COORD, + lpWriteRegion: PSMALL_RECT, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputA".} + + proc ReadConsoleOutputCharacter*( + hConsoleOutput: HANDLE, + lpCharacter: LPSTR, + nLength: DWORD, + dwReadCoord: COORD, + lpNumberOfCharsRead: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleOutputCharacterA" + .} + + proc WriteConsoleOutputCharacter*( + hConsoleOutput: HANDLE, + lpCharacter: LPCSTR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleOutputCharacterA" + .} + + proc FillConsoleOutputCharacter*( + hConsoleOutput: HANDLE, + cCharacter: CHAR, + nLength: DWORD, + dwWriteCoord: COORD, + lpNumberOfCharsWritten: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "FillConsoleOutputCharacterA" + .} + + proc ScrollConsoleScreenBuffer*( + hConsoleOutput: HANDLE, + lpScrollRectangle: ptr SMALL_RECT, + lpClipRectangle: ptr SMALL_RECT, + dwDestinationOrigin: COORD, + lpFill: ptr CHAR_INFO, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "ScrollConsoleScreenBufferA" + .} + + proc GetConsoleTitle*( + lpConsoleTitle: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleTitleA".} + + proc SetConsoleTitle*( + lpConsoleTitle: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetConsoleTitleA".} + + proc ReadConsole*( + hConsoleInput: HANDLE, + lpBuffer: LPVOID, + nNumberOfCharsToRead: DWORD, + lpNumberOfCharsRead: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "ReadConsoleA".} + + proc WriteConsole*( + hConsoleOutput: HANDLE, + lpBuffer: pointer, + nNumberOfCharsToWrite: DWORD, + lpNumberOfCharsWritten: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "WriteConsoleA".} + + proc AddConsoleAlias*( + Source: LPSTR, Target: LPSTR, ExeName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "AddConsoleAliasA".} + + proc GetConsoleAlias*( + Source: LPSTR, TargetBuffer: LPSTR, TargetBufferLength: DWORD, ExeName: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasA".} + + proc GetConsoleAliasesLength*( + ExeName: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesLengthA".} + + proc GetConsoleAliasExesLength*(): DWORD {. + winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesLengthA" + .} + + proc GetConsoleAliases*( + AliasBuffer: LPSTR, AliasBufferLength: DWORD, ExeName: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasesA".} + + proc GetConsoleAliasExes*( + ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleAliasExesA".} + + proc GetConsoleOriginalTitle*( + lpConsoleTitle: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "kernel32", importc: "GetConsoleOriginalTitleA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wincred.nim --- a/semicongine/thirdparty/winim/winim/inc/wincred.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wincred.nim Thu Aug 22 18:32:21 2024 +0700 @@ -18,12 +18,14 @@ Flags*: DWORD ValueSize*: DWORD Value*: LPBYTE + PCREDENTIAL_ATTRIBUTEA* = ptr CREDENTIAL_ATTRIBUTEA CREDENTIAL_ATTRIBUTEW* {.pure.} = object Keyword*: LPWSTR Flags*: DWORD ValueSize*: DWORD Value*: LPBYTE + PCREDENTIAL_ATTRIBUTEW* = ptr CREDENTIAL_ATTRIBUTEW CREDENTIALA* {.pure.} = object Flags*: DWORD @@ -38,6 +40,7 @@ Attributes*: PCREDENTIAL_ATTRIBUTEA TargetAlias*: LPSTR UserName*: LPSTR + PCREDENTIALA* = ptr CREDENTIALA CREDENTIALW* {.pure.} = object Flags*: DWORD @@ -52,6 +55,7 @@ Attributes*: PCREDENTIAL_ATTRIBUTEW TargetAlias*: LPWSTR UserName*: LPWSTR + PCREDENTIALW* = ptr CREDENTIALW CREDENTIAL_TARGET_INFORMATIONA* {.pure.} = object TargetName*: LPSTR @@ -64,6 +68,7 @@ Flags*: ULONG CredTypeCount*: DWORD CredTypes*: LPDWORD + PCREDENTIAL_TARGET_INFORMATIONA* = ptr CREDENTIAL_TARGET_INFORMATIONA CREDENTIAL_TARGET_INFORMATIONW* {.pure.} = object TargetName*: LPWSTR @@ -76,16 +81,19 @@ Flags*: ULONG CredTypeCount*: DWORD CredTypes*: LPDWORD + PCREDENTIAL_TARGET_INFORMATIONW* = ptr CREDENTIAL_TARGET_INFORMATIONW -const - CERT_HASH_LENGTH* = 20 + +const CERT_HASH_LENGTH* = 20 type CERT_CREDENTIAL_INFO* {.pure.} = object cbSize*: ULONG rgbHashOfCert*: array[CERT_HASH_LENGTH, UCHAR] + PCERT_CREDENTIAL_INFO* = ptr CERT_CREDENTIAL_INFO USERNAME_TARGET_CREDENTIAL_INFO* {.pure.} = object UserName*: LPWSTR + PUSERNAME_TARGET_CREDENTIAL_INFO* = ptr USERNAME_TARGET_CREDENTIAL_INFO CREDUI_INFOA* {.pure.} = object cbSize*: DWORD @@ -93,6 +101,7 @@ pszMessageText*: PCSTR pszCaptionText*: PCSTR hbmBanner*: HBITMAP + PCREDUI_INFOA* = ptr CREDUI_INFOA CREDUI_INFOW* {.pure.} = object cbSize*: DWORD @@ -100,12 +109,14 @@ pszMessageText*: PCWSTR pszCaptionText*: PCWSTR hbmBanner*: HBITMAP + PCREDUI_INFOW* = ptr CREDUI_INFOW + const CRED_MAX_STRING_LENGTH* = 256 - CRED_MAX_USERNAME_LENGTH* = 256+1+256 + CRED_MAX_USERNAME_LENGTH* = 256 + 1 + 256 CRED_MAX_GENERIC_TARGET_NAME_LENGTH* = 32767 - CRED_MAX_DOMAIN_TARGET_NAME_LENGTH* = 256+1+80 + CRED_MAX_DOMAIN_TARGET_NAME_LENGTH* = 256 + 1 + 80 CRED_MAX_VALUE_SIZE* = 256 CRED_MAX_ATTRIBUTES* = 64 CRED_SESSION_WILDCARD_NAME_W* = "*Session" @@ -120,7 +131,7 @@ CRED_TYPE_DOMAIN_CERTIFICATE* = 3 CRED_TYPE_DOMAIN_VISIBLE_PASSWORD* = 4 CRED_TYPE_MAXIMUM* = 5 - CRED_TYPE_MAXIMUM_EX* = CRED_TYPE_MAXIMUM+1000 + CRED_TYPE_MAXIMUM_EX* = CRED_TYPE_MAXIMUM + 1000 CRED_MAX_CREDENTIAL_BLOB_SIZE* = 512 CRED_PERSIST_NONE* = 0 CRED_PERSIST_SESSION* = 1 @@ -140,7 +151,7 @@ CREDUI_MAX_GENERIC_TARGET_LENGTH* = CRED_MAX_GENERIC_TARGET_NAME_LENGTH CREDUI_MAX_DOMAIN_TARGET_LENGTH* = CRED_MAX_DOMAIN_TARGET_NAME_LENGTH CREDUI_MAX_USERNAME_LENGTH* = CRED_MAX_USERNAME_LENGTH - CREDUI_MAX_PASSWORD_LENGTH* = CRED_MAX_CREDENTIAL_BLOB_SIZE/2 + CREDUI_MAX_PASSWORD_LENGTH* = CRED_MAX_CREDENTIAL_BLOB_SIZE / 2 CREDUI_FLAGS_INCORRECT_PASSWORD* = 0x00001 CREDUI_FLAGS_DO_NOT_PERSIST* = 0x00002 CREDUI_FLAGS_REQUEST_ADMINISTRATOR* = 0x00004 @@ -158,7 +169,16 @@ CREDUI_FLAGS_GENERIC_CREDENTIALS* = 0x40000 CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS* = 0x80000 CREDUI_FLAGS_KEEP_USERNAME* = 0x100000 - CREDUI_FLAGS_PROMPT_VALID* = CREDUI_FLAGS_INCORRECT_PASSWORD or CREDUI_FLAGS_DO_NOT_PERSIST or CREDUI_FLAGS_REQUEST_ADMINISTRATOR or CREDUI_FLAGS_EXCLUDE_CERTIFICATES or CREDUI_FLAGS_REQUIRE_CERTIFICATE or CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX or CREDUI_FLAGS_ALWAYS_SHOW_UI or CREDUI_FLAGS_REQUIRE_SMARTCARD or CREDUI_FLAGS_PASSWORD_ONLY_OK or CREDUI_FLAGS_VALIDATE_USERNAME or CREDUI_FLAGS_COMPLETE_USERNAME or CREDUI_FLAGS_PERSIST or CREDUI_FLAGS_SERVER_CREDENTIAL or CREDUI_FLAGS_EXPECT_CONFIRMATION or CREDUI_FLAGS_GENERIC_CREDENTIALS or CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS or CREDUI_FLAGS_KEEP_USERNAME + CREDUI_FLAGS_PROMPT_VALID* = + CREDUI_FLAGS_INCORRECT_PASSWORD or CREDUI_FLAGS_DO_NOT_PERSIST or + CREDUI_FLAGS_REQUEST_ADMINISTRATOR or CREDUI_FLAGS_EXCLUDE_CERTIFICATES or + CREDUI_FLAGS_REQUIRE_CERTIFICATE or CREDUI_FLAGS_SHOW_SAVE_CHECK_BOX or + CREDUI_FLAGS_ALWAYS_SHOW_UI or CREDUI_FLAGS_REQUIRE_SMARTCARD or + CREDUI_FLAGS_PASSWORD_ONLY_OK or CREDUI_FLAGS_VALIDATE_USERNAME or + CREDUI_FLAGS_COMPLETE_USERNAME or CREDUI_FLAGS_PERSIST or + CREDUI_FLAGS_SERVER_CREDENTIAL or CREDUI_FLAGS_EXPECT_CONFIRMATION or + CREDUI_FLAGS_GENERIC_CREDENTIALS or CREDUI_FLAGS_USERNAME_TARGET_CREDENTIALS or + CREDUI_FLAGS_KEEP_USERNAME CRED_PRESERVE_CREDENTIAL_BLOB* = 0x1 CRED_CACHE_TARGET_INFORMATION* = 0x1 CRED_ALLOW_NAME_RESOLUTION* = 0x1 @@ -174,61 +194,305 @@ credUserProtection* = 1 credTrustedProtection* = 2 when winimUnicode: - const - CRED_SESSION_WILDCARD_NAME* = CRED_SESSION_WILDCARD_NAME_W + const CRED_SESSION_WILDCARD_NAME* = CRED_SESSION_WILDCARD_NAME_W when winimAnsi: - const - CRED_SESSION_WILDCARD_NAME* = CRED_SESSION_WILDCARD_NAME_A -const - CRED_SESSION_WILDCARD_NAME_LENGTH* = CRED_SESSION_WILDCARD_NAME.len -proc CredWriteW*(Credential: PCREDENTIALW, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredWriteA*(Credential: PCREDENTIALA, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredReadW*(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredReadA*(TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredEnumerateW*(Filter: LPCWSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredEnumerateA*(Filter: LPCSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredWriteDomainCredentialsW*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, Credential: PCREDENTIALW, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredWriteDomainCredentialsA*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, Credential: PCREDENTIALA, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredReadDomainCredentialsW*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredReadDomainCredentialsA*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredDeleteW*(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredDeleteA*(TargetName: LPCSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredRenameW*(OldTargetName: LPCWSTR, NewTargetName: LPCWSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredRenameA*(OldTargetName: LPCSTR, NewTargetName: LPCSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredGetTargetInfoW*(TargetName: LPCWSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredGetTargetInfoA*(TargetName: LPCSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredMarshalCredentialW*(CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredMarshalCredentialA*(CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredUnmarshalCredentialW*(MarshaledCredential: LPCWSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredUnmarshalCredentialA*(MarshaledCredential: LPCSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredIsMarshaledCredentialW*(MarshaledCredential: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredIsMarshaledCredentialA*(MarshaledCredential: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredGetSessionTypes*(MaximumPersistCount: DWORD, MaximumPersist: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + const CRED_SESSION_WILDCARD_NAME* = CRED_SESSION_WILDCARD_NAME_A +const CRED_SESSION_WILDCARD_NAME_LENGTH* = CRED_SESSION_WILDCARD_NAME.len +proc CredWriteW*( + Credential: PCREDENTIALW, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredWriteA*( + Credential: PCREDENTIALA, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredReadW*( + TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredReadA*( + TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredEnumerateW*( + Filter: LPCWSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALW +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredEnumerateA*( + Filter: LPCSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALA +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredWriteDomainCredentialsW*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, Credential: PCREDENTIALW, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredWriteDomainCredentialsA*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, Credential: PCREDENTIALA, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredReadDomainCredentialsW*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, + Flags: DWORD, + Count: ptr DWORD, + Credential: ptr ptr PCREDENTIALW, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredReadDomainCredentialsA*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, + Flags: DWORD, + Count: ptr DWORD, + Credential: ptr ptr PCREDENTIALA, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredDeleteW*( + TargetName: LPCWSTR, Type: DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredDeleteA*( + TargetName: LPCSTR, Type: DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredRenameW*( + OldTargetName: LPCWSTR, NewTargetName: LPCWSTR, Type: DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredRenameA*( + OldTargetName: LPCSTR, NewTargetName: LPCSTR, Type: DWORD, Flags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredGetTargetInfoW*( + TargetName: LPCWSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONW +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredGetTargetInfoA*( + TargetName: LPCSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONA +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredMarshalCredentialW*( + CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredMarshalCredentialA*( + CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredUnmarshalCredentialW*( + MarshaledCredential: LPCWSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredUnmarshalCredentialA*( + MarshaledCredential: LPCSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredIsMarshaledCredentialW*( + MarshaledCredential: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredIsMarshaledCredentialA*( + MarshaledCredential: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredGetSessionTypes*( + MaximumPersistCount: DWORD, MaximumPersist: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + proc CredFree*(Buffer: PVOID): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredUIPromptForCredentialsW*(pUiInfo: PCREDUI_INFOW, pszTargetName: PCWSTR, pContext: PCtxtHandle, dwAuthError: DWORD, pszUserName: PWSTR, ulUserNameBufferSize: ULONG, pszPassword: PWSTR, ulPasswordBufferSize: ULONG, save: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIPromptForCredentialsA*(pUiInfo: PCREDUI_INFOA, pszTargetName: PCSTR, pContext: PCtxtHandle, dwAuthError: DWORD, pszUserName: PSTR, ulUserNameBufferSize: ULONG, pszPassword: PSTR, ulPasswordBufferSize: ULONG, save: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIParseUserNameW*(UserName: ptr WCHAR, user: ptr WCHAR, userBufferSize: ULONG, domain: ptr WCHAR, domainBufferSize: ULONG): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIParseUserNameA*(userName: ptr CHAR, user: ptr CHAR, userBufferSize: ULONG, domain: ptr CHAR, domainBufferSize: ULONG): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUICmdLinePromptForCredentialsW*(pszTargetName: PCWSTR, pContext: PCtxtHandle, dwAuthError: DWORD, UserName: PWSTR, ulUserBufferSize: ULONG, pszPassword: PWSTR, ulPasswordBufferSize: ULONG, pfSave: PBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUICmdLinePromptForCredentialsA*(pszTargetName: PCSTR, pContext: PCtxtHandle, dwAuthError: DWORD, UserName: PSTR, ulUserBufferSize: ULONG, pszPassword: PSTR, ulPasswordBufferSize: ULONG, pfSave: PBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIConfirmCredentialsW*(pszTargetName: PCWSTR, bConfirm: WINBOOL): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIConfirmCredentialsA*(pszTargetName: PCSTR, bConfirm: WINBOOL): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIStoreSSOCredW*(pszRealm: PCWSTR, pszUsername: PCWSTR, pszPassword: PCWSTR, bPersist: WINBOOL): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIReadSSOCredW*(pszRealm: PCWSTR, ppszUsername: ptr PWSTR): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredFindBestCredentialA*(TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredFindBestCredentialW*(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredIsProtectedA*(pszProtectedCredentials: LPSTR, pProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredIsProtectedW*(pszProtectedCredentials: LPWSTR, pProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredPackAuthenticationBufferA*(dwFlags: DWORD, pszUserName: LPSTR, pszPassword: LPSTR, pPackedCredentials: PBYTE, pcbPackedCredentials: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} -proc CredPackAuthenticationBufferW*(dwFlags: DWORD, pszUserName: LPWSTR, pszPassword: LPWSTR, pPackedCredentials: PBYTE, pcbPackedCredentials: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} -proc CredProtectW*(fAsSelf: WINBOOL, pszCredentials: LPWSTR, cchCredentials: DWORD, pszProtectedCredentials: LPWSTR, pcchMaxChars: ptr DWORD, ProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredProtectA*(fAsSelf: WINBOOL, pszCredentials: LPSTR, cchCredentials: DWORD, pszProtectedCredentials: LPSTR, pcchMaxChars: ptr DWORD, ProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredUIPromptForWindowsCredentialsA*(pUiInfo: PCREDUI_INFOA, dwAuthError: DWORD, pulAuthPackage: ptr ULONG, pvInAuthBuffer: LPCVOID, ulInAuthBufferSize: ULONG, ppvOutAuthBuffer: ptr LPVOID, pulOutAuthBufferSize: ptr ULONG, pfSave: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUIPromptForWindowsCredentialsW*(pUiInfo: PCREDUI_INFOW, dwAuthError: DWORD, pulAuthPackage: ptr ULONG, pvInAuthBuffer: LPCVOID, ulInAuthBufferSize: ULONG, ppvOutAuthBuffer: ptr LPVOID, pulOutAuthBufferSize: ptr ULONG, pfSave: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUnPackAuthenticationBufferA*(dwFlags: DWORD, pAuthBuffer: PVOID, cbAuthBuffer: DWORD, pszUserName: LPSTR, pcchMaxUserName: ptr DWORD, pszDomainName: LPSTR, pcchMaxDomainame: ptr DWORD, pszPassword: LPSTR, pcchMaxPassword: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUnPackAuthenticationBufferW*(dwFlags: DWORD, pAuthBuffer: PVOID, cbAuthBuffer: DWORD, pszUserName: LPWSTR, pcchMaxUserName: ptr DWORD, pszDomainName: LPWSTR, pcchMaxDomainame: ptr DWORD, pszPassword: LPWSTR, pcchMaxPassword: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} -proc CredUnprotectA*(fAsSelf: WINBOOL, pszProtectedCredentials: LPSTR, cchCredentials: DWORD, pszCredentials: LPSTR, pcchMaxChars: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CredUnprotectW*(fAsSelf: WINBOOL, pszProtectedCredentials: LPWSTR, cchCredentials: DWORD, pszCredentials: LPWSTR, pcchMaxChars: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} +proc CredUIPromptForCredentialsW*( + pUiInfo: PCREDUI_INFOW, + pszTargetName: PCWSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + pszUserName: PWSTR, + ulUserNameBufferSize: ULONG, + pszPassword: PWSTR, + ulPasswordBufferSize: ULONG, + save: ptr WINBOOL, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIPromptForCredentialsA*( + pUiInfo: PCREDUI_INFOA, + pszTargetName: PCSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + pszUserName: PSTR, + ulUserNameBufferSize: ULONG, + pszPassword: PSTR, + ulPasswordBufferSize: ULONG, + save: ptr WINBOOL, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIParseUserNameW*( + UserName: ptr WCHAR, + user: ptr WCHAR, + userBufferSize: ULONG, + domain: ptr WCHAR, + domainBufferSize: ULONG, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIParseUserNameA*( + userName: ptr CHAR, + user: ptr CHAR, + userBufferSize: ULONG, + domain: ptr CHAR, + domainBufferSize: ULONG, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUICmdLinePromptForCredentialsW*( + pszTargetName: PCWSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + UserName: PWSTR, + ulUserBufferSize: ULONG, + pszPassword: PWSTR, + ulPasswordBufferSize: ULONG, + pfSave: PBOOL, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUICmdLinePromptForCredentialsA*( + pszTargetName: PCSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + UserName: PSTR, + ulUserBufferSize: ULONG, + pszPassword: PSTR, + ulPasswordBufferSize: ULONG, + pfSave: PBOOL, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIConfirmCredentialsW*( + pszTargetName: PCWSTR, bConfirm: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIConfirmCredentialsA*( + pszTargetName: PCSTR, bConfirm: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIStoreSSOCredW*( + pszRealm: PCWSTR, pszUsername: PCWSTR, pszPassword: PCWSTR, bPersist: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIReadSSOCredW*( + pszRealm: PCWSTR, ppszUsername: ptr PWSTR +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredFindBestCredentialA*( + TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredFindBestCredentialW*( + TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredIsProtectedA*( + pszProtectedCredentials: LPSTR, pProtectionType: ptr CRED_PROTECTION_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredIsProtectedW*( + pszProtectedCredentials: LPWSTR, pProtectionType: ptr CRED_PROTECTION_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredPackAuthenticationBufferA*( + dwFlags: DWORD, + pszUserName: LPSTR, + pszPassword: LPSTR, + pPackedCredentials: PBYTE, + pcbPackedCredentials: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredPackAuthenticationBufferW*( + dwFlags: DWORD, + pszUserName: LPWSTR, + pszPassword: LPWSTR, + pPackedCredentials: PBYTE, + pcbPackedCredentials: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredProtectW*( + fAsSelf: WINBOOL, + pszCredentials: LPWSTR, + cchCredentials: DWORD, + pszProtectedCredentials: LPWSTR, + pcchMaxChars: ptr DWORD, + ProtectionType: ptr CRED_PROTECTION_TYPE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredProtectA*( + fAsSelf: WINBOOL, + pszCredentials: LPSTR, + cchCredentials: DWORD, + pszProtectedCredentials: LPSTR, + pcchMaxChars: ptr DWORD, + ProtectionType: ptr CRED_PROTECTION_TYPE, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredUIPromptForWindowsCredentialsA*( + pUiInfo: PCREDUI_INFOA, + dwAuthError: DWORD, + pulAuthPackage: ptr ULONG, + pvInAuthBuffer: LPCVOID, + ulInAuthBufferSize: ULONG, + ppvOutAuthBuffer: ptr LPVOID, + pulOutAuthBufferSize: ptr ULONG, + pfSave: ptr WINBOOL, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUIPromptForWindowsCredentialsW*( + pUiInfo: PCREDUI_INFOW, + dwAuthError: DWORD, + pulAuthPackage: ptr ULONG, + pvInAuthBuffer: LPCVOID, + ulInAuthBufferSize: ULONG, + ppvOutAuthBuffer: ptr LPVOID, + pulOutAuthBufferSize: ptr ULONG, + pfSave: ptr WINBOOL, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUnPackAuthenticationBufferA*( + dwFlags: DWORD, + pAuthBuffer: PVOID, + cbAuthBuffer: DWORD, + pszUserName: LPSTR, + pcchMaxUserName: ptr DWORD, + pszDomainName: LPSTR, + pcchMaxDomainame: ptr DWORD, + pszPassword: LPSTR, + pcchMaxPassword: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUnPackAuthenticationBufferW*( + dwFlags: DWORD, + pAuthBuffer: PVOID, + cbAuthBuffer: DWORD, + pszUserName: LPWSTR, + pcchMaxUserName: ptr DWORD, + pszDomainName: LPWSTR, + pcchMaxDomainame: ptr DWORD, + pszPassword: LPWSTR, + pcchMaxPassword: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "credui", importc.} + +proc CredUnprotectA*( + fAsSelf: WINBOOL, + pszProtectedCredentials: LPSTR, + cchCredentials: DWORD, + pszCredentials: LPSTR, + pcchMaxChars: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CredUnprotectW*( + fAsSelf: WINBOOL, + pszProtectedCredentials: LPWSTR, + cchCredentials: DWORD, + pszCredentials: LPWSTR, + pcchMaxChars: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + when winimUnicode: type CREDENTIAL_ATTRIBUTE* = CREDENTIAL_ATTRIBUTEW @@ -239,28 +503,164 @@ PCREDENTIAL_TARGET_INFORMATION* = PCREDENTIAL_TARGET_INFORMATIONW CREDUI_INFO* = CREDUI_INFOW PCREDUI_INFO* = PCREDUI_INFOW - proc CredWrite*(Credential: PCREDENTIALW, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredWriteW".} - proc CredRead*(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredReadW".} - proc CredEnumerate*(Filter: LPCWSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredEnumerateW".} - proc CredWriteDomainCredentials*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, Credential: PCREDENTIALW, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredWriteDomainCredentialsW".} - proc CredReadDomainCredentials*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredReadDomainCredentialsW".} - proc CredDelete*(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredDeleteW".} - proc CredRename*(OldTargetName: LPCWSTR, NewTargetName: LPCWSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredRenameW".} - proc CredGetTargetInfo*(TargetName: LPCWSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredGetTargetInfoW".} - proc CredMarshalCredential*(CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredMarshalCredentialW".} - proc CredUnmarshalCredential*(MarshaledCredential: LPCWSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredUnmarshalCredentialW".} - proc CredIsMarshaledCredential*(MarshaledCredential: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredIsMarshaledCredentialW".} - proc CredUIPromptForCredentials*(pUiInfo: PCREDUI_INFOW, pszTargetName: PCWSTR, pContext: PCtxtHandle, dwAuthError: DWORD, pszUserName: PWSTR, ulUserNameBufferSize: ULONG, pszPassword: PWSTR, ulPasswordBufferSize: ULONG, save: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForCredentialsW".} - proc CredUIParseUserName*(UserName: ptr WCHAR, user: ptr WCHAR, userBufferSize: ULONG, domain: ptr WCHAR, domainBufferSize: ULONG): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIParseUserNameW".} - proc CredUICmdLinePromptForCredentials*(pszTargetName: PCWSTR, pContext: PCtxtHandle, dwAuthError: DWORD, UserName: PWSTR, ulUserBufferSize: ULONG, pszPassword: PWSTR, ulPasswordBufferSize: ULONG, pfSave: PBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUICmdLinePromptForCredentialsW".} - proc CredUIConfirmCredentials*(pszTargetName: PCWSTR, bConfirm: WINBOOL): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIConfirmCredentialsW".} - proc CredFindBestCredential*(TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredFindBestCredentialW".} - proc CredIsProtected*(pszProtectedCredentials: LPWSTR, pProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredIsProtectedW".} - proc CredPackAuthenticationBuffer*(dwFlags: DWORD, pszUserName: LPWSTR, pszPassword: LPWSTR, pPackedCredentials: PBYTE, pcbPackedCredentials: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc: "CredPackAuthenticationBufferW".} - proc CredProtect*(fAsSelf: WINBOOL, pszCredentials: LPWSTR, cchCredentials: DWORD, pszProtectedCredentials: LPWSTR, pcchMaxChars: ptr DWORD, ProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredProtectW".} - proc CredUIPromptForWindowsCredentials*(pUiInfo: PCREDUI_INFOW, dwAuthError: DWORD, pulAuthPackage: ptr ULONG, pvInAuthBuffer: LPCVOID, ulInAuthBufferSize: ULONG, ppvOutAuthBuffer: ptr LPVOID, pulOutAuthBufferSize: ptr ULONG, pfSave: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForWindowsCredentialsW".} - proc CredUnPackAuthenticationBuffer*(dwFlags: DWORD, pAuthBuffer: PVOID, cbAuthBuffer: DWORD, pszUserName: LPWSTR, pcchMaxUserName: ptr DWORD, pszDomainName: LPWSTR, pcchMaxDomainame: ptr DWORD, pszPassword: LPWSTR, pcchMaxPassword: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc: "CredUnPackAuthenticationBufferW".} - proc CredUnprotect*(fAsSelf: WINBOOL, pszProtectedCredentials: LPWSTR, cchCredentials: DWORD, pszCredentials: LPWSTR, pcchMaxChars: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredUnprotectW".} + + proc CredWrite*( + Credential: PCREDENTIALW, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredWriteW".} + + proc CredRead*( + TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredReadW".} + + proc CredEnumerate*( + Filter: LPCWSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALW + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredEnumerateW".} + + proc CredWriteDomainCredentials*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, Credential: PCREDENTIALW, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredWriteDomainCredentialsW" + .} + + proc CredReadDomainCredentials*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONW, + Flags: DWORD, + Count: ptr DWORD, + Credential: ptr ptr PCREDENTIALW, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredReadDomainCredentialsW" + .} + + proc CredDelete*( + TargetName: LPCWSTR, Type: DWORD, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredDeleteW".} + + proc CredRename*( + OldTargetName: LPCWSTR, NewTargetName: LPCWSTR, Type: DWORD, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredRenameW".} + + proc CredGetTargetInfo*( + TargetName: LPCWSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONW + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredGetTargetInfoW".} + + proc CredMarshalCredential*( + CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredMarshalCredentialW".} + + proc CredUnmarshalCredential*( + MarshaledCredential: LPCWSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredUnmarshalCredentialW" + .} + + proc CredIsMarshaledCredential*( + MarshaledCredential: LPCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredIsMarshaledCredentialW" + .} + + proc CredUIPromptForCredentials*( + pUiInfo: PCREDUI_INFOW, + pszTargetName: PCWSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + pszUserName: PWSTR, + ulUserNameBufferSize: ULONG, + pszPassword: PWSTR, + ulPasswordBufferSize: ULONG, + save: ptr WINBOOL, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForCredentialsW".} + + proc CredUIParseUserName*( + UserName: ptr WCHAR, + user: ptr WCHAR, + userBufferSize: ULONG, + domain: ptr WCHAR, + domainBufferSize: ULONG, + ): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIParseUserNameW".} + + proc CredUICmdLinePromptForCredentials*( + pszTargetName: PCWSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + UserName: PWSTR, + ulUserBufferSize: ULONG, + pszPassword: PWSTR, + ulPasswordBufferSize: ULONG, + pfSave: PBOOL, + dwFlags: DWORD, + ): DWORD {. + winapi, stdcall, dynlib: "credui", importc: "CredUICmdLinePromptForCredentialsW" + .} + + proc CredUIConfirmCredentials*( + pszTargetName: PCWSTR, bConfirm: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIConfirmCredentialsW".} + + proc CredFindBestCredential*( + TargetName: LPCWSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALW + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredFindBestCredentialW".} + + proc CredIsProtected*( + pszProtectedCredentials: LPWSTR, pProtectionType: ptr CRED_PROTECTION_TYPE + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredIsProtectedW".} + + proc CredPackAuthenticationBuffer*( + dwFlags: DWORD, + pszUserName: LPWSTR, + pszPassword: LPWSTR, + pPackedCredentials: PBYTE, + pcbPackedCredentials: ptr DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "credui", importc: "CredPackAuthenticationBufferW" + .} + + proc CredProtect*( + fAsSelf: WINBOOL, + pszCredentials: LPWSTR, + cchCredentials: DWORD, + pszProtectedCredentials: LPWSTR, + pcchMaxChars: ptr DWORD, + ProtectionType: ptr CRED_PROTECTION_TYPE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredProtectW".} + + proc CredUIPromptForWindowsCredentials*( + pUiInfo: PCREDUI_INFOW, + dwAuthError: DWORD, + pulAuthPackage: ptr ULONG, + pvInAuthBuffer: LPCVOID, + ulInAuthBufferSize: ULONG, + ppvOutAuthBuffer: ptr LPVOID, + pulOutAuthBufferSize: ptr ULONG, + pfSave: ptr WINBOOL, + dwFlags: DWORD, + ): DWORD {. + winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForWindowsCredentialsW" + .} + + proc CredUnPackAuthenticationBuffer*( + dwFlags: DWORD, + pAuthBuffer: PVOID, + cbAuthBuffer: DWORD, + pszUserName: LPWSTR, + pcchMaxUserName: ptr DWORD, + pszDomainName: LPWSTR, + pcchMaxDomainame: ptr DWORD, + pszPassword: LPWSTR, + pcchMaxPassword: ptr DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "credui", importc: "CredUnPackAuthenticationBufferW" + .} + + proc CredUnprotect*( + fAsSelf: WINBOOL, + pszProtectedCredentials: LPWSTR, + cchCredentials: DWORD, + pszCredentials: LPWSTR, + pcchMaxChars: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredUnprotectW".} + when winimAnsi: type CREDENTIAL_ATTRIBUTE* = CREDENTIAL_ATTRIBUTEA @@ -271,25 +671,160 @@ PCREDENTIAL_TARGET_INFORMATION* = PCREDENTIAL_TARGET_INFORMATIONA CREDUI_INFO* = CREDUI_INFOA PCREDUI_INFO* = PCREDUI_INFOA - proc CredWrite*(Credential: PCREDENTIALA, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredWriteA".} - proc CredRead*(TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredReadA".} - proc CredEnumerate*(Filter: LPCSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredEnumerateA".} - proc CredWriteDomainCredentials*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, Credential: PCREDENTIALA, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredWriteDomainCredentialsA".} - proc CredReadDomainCredentials*(TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredReadDomainCredentialsA".} - proc CredDelete*(TargetName: LPCSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredDeleteA".} - proc CredRename*(OldTargetName: LPCSTR, NewTargetName: LPCSTR, Type: DWORD, Flags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredRenameA".} - proc CredGetTargetInfo*(TargetName: LPCSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredGetTargetInfoA".} - proc CredMarshalCredential*(CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredMarshalCredentialA".} - proc CredUnmarshalCredential*(MarshaledCredential: LPCSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredUnmarshalCredentialA".} - proc CredIsMarshaledCredential*(MarshaledCredential: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredIsMarshaledCredentialA".} - proc CredUIPromptForCredentials*(pUiInfo: PCREDUI_INFOA, pszTargetName: PCSTR, pContext: PCtxtHandle, dwAuthError: DWORD, pszUserName: PSTR, ulUserNameBufferSize: ULONG, pszPassword: PSTR, ulPasswordBufferSize: ULONG, save: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForCredentialsA".} - proc CredUIParseUserName*(userName: ptr CHAR, user: ptr CHAR, userBufferSize: ULONG, domain: ptr CHAR, domainBufferSize: ULONG): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIParseUserNameA".} - proc CredUICmdLinePromptForCredentials*(pszTargetName: PCSTR, pContext: PCtxtHandle, dwAuthError: DWORD, UserName: PSTR, ulUserBufferSize: ULONG, pszPassword: PSTR, ulPasswordBufferSize: ULONG, pfSave: PBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUICmdLinePromptForCredentialsA".} - proc CredUIConfirmCredentials*(pszTargetName: PCSTR, bConfirm: WINBOOL): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIConfirmCredentialsA".} - proc CredFindBestCredential*(TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredFindBestCredentialA".} - proc CredIsProtected*(pszProtectedCredentials: LPSTR, pProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredIsProtectedA".} - proc CredPackAuthenticationBuffer*(dwFlags: DWORD, pszUserName: LPSTR, pszPassword: LPSTR, pPackedCredentials: PBYTE, pcbPackedCredentials: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc: "CredPackAuthenticationBufferA".} - proc CredProtect*(fAsSelf: WINBOOL, pszCredentials: LPSTR, cchCredentials: DWORD, pszProtectedCredentials: LPSTR, pcchMaxChars: ptr DWORD, ProtectionType: ptr CRED_PROTECTION_TYPE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredProtectA".} - proc CredUIPromptForWindowsCredentials*(pUiInfo: PCREDUI_INFOA, dwAuthError: DWORD, pulAuthPackage: ptr ULONG, pvInAuthBuffer: LPCVOID, ulInAuthBufferSize: ULONG, ppvOutAuthBuffer: ptr LPVOID, pulOutAuthBufferSize: ptr ULONG, pfSave: ptr WINBOOL, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForWindowsCredentialsA".} - proc CredUnPackAuthenticationBuffer*(dwFlags: DWORD, pAuthBuffer: PVOID, cbAuthBuffer: DWORD, pszUserName: LPSTR, pcchMaxUserName: ptr DWORD, pszDomainName: LPSTR, pcchMaxDomainame: ptr DWORD, pszPassword: LPSTR, pcchMaxPassword: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "credui", importc: "CredUnPackAuthenticationBufferA".} - proc CredUnprotect*(fAsSelf: WINBOOL, pszProtectedCredentials: LPSTR, cchCredentials: DWORD, pszCredentials: LPSTR, pcchMaxChars: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredUnprotectA".} + + proc CredWrite*( + Credential: PCREDENTIALA, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredWriteA".} + + proc CredRead*( + TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredReadA".} + + proc CredEnumerate*( + Filter: LPCSTR, Flags: DWORD, Count: ptr DWORD, Credential: ptr ptr PCREDENTIALA + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredEnumerateA".} + + proc CredWriteDomainCredentials*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, Credential: PCREDENTIALA, Flags: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredWriteDomainCredentialsA" + .} + + proc CredReadDomainCredentials*( + TargetInfo: PCREDENTIAL_TARGET_INFORMATIONA, + Flags: DWORD, + Count: ptr DWORD, + Credential: ptr ptr PCREDENTIALA, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredReadDomainCredentialsA" + .} + + proc CredDelete*( + TargetName: LPCSTR, Type: DWORD, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredDeleteA".} + + proc CredRename*( + OldTargetName: LPCSTR, NewTargetName: LPCSTR, Type: DWORD, Flags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredRenameA".} + + proc CredGetTargetInfo*( + TargetName: LPCSTR, Flags: DWORD, TargetInfo: ptr PCREDENTIAL_TARGET_INFORMATIONA + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredGetTargetInfoA".} + + proc CredMarshalCredential*( + CredType: CRED_MARSHAL_TYPE, Credential: PVOID, MarshaledCredential: ptr LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredMarshalCredentialA".} + + proc CredUnmarshalCredential*( + MarshaledCredential: LPCSTR, CredType: PCRED_MARSHAL_TYPE, Credential: ptr PVOID + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredUnmarshalCredentialA" + .} + + proc CredIsMarshaledCredential*( + MarshaledCredential: LPCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CredIsMarshaledCredentialA" + .} + + proc CredUIPromptForCredentials*( + pUiInfo: PCREDUI_INFOA, + pszTargetName: PCSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + pszUserName: PSTR, + ulUserNameBufferSize: ULONG, + pszPassword: PSTR, + ulPasswordBufferSize: ULONG, + save: ptr WINBOOL, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForCredentialsA".} + + proc CredUIParseUserName*( + userName: ptr CHAR, + user: ptr CHAR, + userBufferSize: ULONG, + domain: ptr CHAR, + domainBufferSize: ULONG, + ): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIParseUserNameA".} + + proc CredUICmdLinePromptForCredentials*( + pszTargetName: PCSTR, + pContext: PCtxtHandle, + dwAuthError: DWORD, + UserName: PSTR, + ulUserBufferSize: ULONG, + pszPassword: PSTR, + ulPasswordBufferSize: ULONG, + pfSave: PBOOL, + dwFlags: DWORD, + ): DWORD {. + winapi, stdcall, dynlib: "credui", importc: "CredUICmdLinePromptForCredentialsA" + .} + + proc CredUIConfirmCredentials*( + pszTargetName: PCSTR, bConfirm: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "credui", importc: "CredUIConfirmCredentialsA".} + + proc CredFindBestCredential*( + TargetName: LPCSTR, Type: DWORD, Flags: DWORD, Credential: ptr PCREDENTIALA + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredFindBestCredentialA".} + + proc CredIsProtected*( + pszProtectedCredentials: LPSTR, pProtectionType: ptr CRED_PROTECTION_TYPE + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredIsProtectedA".} + + proc CredPackAuthenticationBuffer*( + dwFlags: DWORD, + pszUserName: LPSTR, + pszPassword: LPSTR, + pPackedCredentials: PBYTE, + pcbPackedCredentials: ptr DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "credui", importc: "CredPackAuthenticationBufferA" + .} + + proc CredProtect*( + fAsSelf: WINBOOL, + pszCredentials: LPSTR, + cchCredentials: DWORD, + pszProtectedCredentials: LPSTR, + pcchMaxChars: ptr DWORD, + ProtectionType: ptr CRED_PROTECTION_TYPE, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredProtectA".} + + proc CredUIPromptForWindowsCredentials*( + pUiInfo: PCREDUI_INFOA, + dwAuthError: DWORD, + pulAuthPackage: ptr ULONG, + pvInAuthBuffer: LPCVOID, + ulInAuthBufferSize: ULONG, + ppvOutAuthBuffer: ptr LPVOID, + pulOutAuthBufferSize: ptr ULONG, + pfSave: ptr WINBOOL, + dwFlags: DWORD, + ): DWORD {. + winapi, stdcall, dynlib: "credui", importc: "CredUIPromptForWindowsCredentialsA" + .} + + proc CredUnPackAuthenticationBuffer*( + dwFlags: DWORD, + pAuthBuffer: PVOID, + cbAuthBuffer: DWORD, + pszUserName: LPSTR, + pcchMaxUserName: ptr DWORD, + pszDomainName: LPSTR, + pcchMaxDomainame: ptr DWORD, + pszPassword: LPSTR, + pcchMaxPassword: ptr DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "credui", importc: "CredUnPackAuthenticationBufferA" + .} + + proc CredUnprotect*( + fAsSelf: WINBOOL, + pszProtectedCredentials: LPSTR, + cchCredentials: DWORD, + pszCredentials: LPSTR, + pcchMaxChars: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CredUnprotectA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wincrypt.nim --- a/semicongine/thirdparty/winim/winim/inc/wincrypt.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wincrypt.nim Thu Aug 22 18:32:21 2024 +0700 @@ -47,6 +47,7 @@ Algid*: ALG_ID pbOID*: ptr BYTE cbOID*: DWORD + PCMS_KEY_INFO* = ptr CMS_KEY_INFO HMAC_INFO* {.pure.} = object HashAlgid*: ALG_ID @@ -54,6 +55,7 @@ cbInnerString*: DWORD pbOuterString*: ptr BYTE cbOuterString*: DWORD + PHMAC_INFO* = ptr HMAC_INFO SCHANNEL_ALG* {.pure.} = object dwUse*: DWORD @@ -61,28 +63,33 @@ cBits*: DWORD dwFlags*: DWORD dwReserved*: DWORD + PSCHANNEL_ALG* = ptr SCHANNEL_ALG BLOBHEADER* {.pure.} = object bType*: BYTE bVersion*: BYTE reserved*: WORD aiKeyAlg*: ALG_ID + PUBLICKEYSTRUC* = BLOBHEADER DHPUBKEY* {.pure.} = object magic*: DWORD bitlen*: DWORD + DSSPUBKEY* = DHPUBKEY KEAPUBKEY* = DHPUBKEY TEKPUBKEY* = DHPUBKEY DSSSEED* {.pure.} = object counter*: DWORD seed*: array[20, BYTE] + DHPUBKEY_VER3* {.pure.} = object magic*: DWORD bitlenP*: DWORD bitlenQ*: DWORD bitlenJ*: DWORD DSSSeed*: DSSSEED + DSSPUBKEY_VER3* = DHPUBKEY_VER3 DHPRIVKEY_VER3* {.pure.} = object magic*: DWORD @@ -91,27 +98,32 @@ bitlenJ*: DWORD bitlenX*: DWORD DSSSeed*: DSSSEED + DSSPRIVKEY_VER3* = DHPRIVKEY_VER3 KEY_TYPE_SUBTYPE* {.pure.} = object dwKeySpec*: DWORD Type*: GUID Subtype*: GUID + PKEY_TYPE_SUBTYPE* = ptr KEY_TYPE_SUBTYPE CRYPT_RC4_KEY_STATE* {.pure.} = object Key*: array[16, uint8] SBox*: array[256, uint8] i*: uint8 j*: uint8 + PCRYPT_RC4_KEY_STATE* = ptr CRYPT_RC4_KEY_STATE CRYPT_DES_KEY_STATE* {.pure.} = object Key*: array[8, uint8] IV*: array[8, uint8] Feedback*: array[8, uint8] + PCRYPT_DES_KEY_STATE* = ptr CRYPT_DES_KEY_STATE CRYPT_3DES_KEY_STATE* {.pure.} = object Key*: array[24, uint8] IV*: array[8, uint8] Feedback*: array[8, uint8] + PCRYPT_3DES_KEY_STATE* = ptr CRYPT_3DES_KEY_STATE CRYPT_AES_128_KEY_STATE* {.pure.} = object Key*: array[16, uint8] @@ -119,6 +131,7 @@ EncryptionState*: array[11, array[16, uint8]] DecryptionState*: array[11, array[16, uint8]] Feedback*: array[16, uint8] + PCRYPT_AES_128_KEY_STATE* = ptr CRYPT_AES_128_KEY_STATE CRYPT_AES_256_KEY_STATE* {.pure.} = object Key*: array[32, uint8] @@ -126,10 +139,12 @@ EncryptionState*: array[15, array[16, uint8]] DecryptionState*: array[15, array[16, uint8]] Feedback*: array[16, uint8] + PCRYPT_AES_256_KEY_STATE* = ptr CRYPT_AES_256_KEY_STATE CRYPT_INTEGER_BLOB* {.pure.} = object cbData*: DWORD pbData*: ptr BYTE + PCRYPT_INTEGER_BLOB* = ptr CRYPT_INTEGER_BLOB CRYPT_UINT_BLOB* = CRYPT_INTEGER_BLOB PCRYPT_UINT_BLOB* = ptr CRYPT_INTEGER_BLOB @@ -161,11 +176,13 @@ pszContentEncObjId*: LPSTR PubInfo*: CRYPT_DATA_BLOB pReserved*: pointer + PCMS_DH_KEY_INFO* = ptr CMS_DH_KEY_INFO BCRYPT_KEY_LENGTHS_STRUCT* {.pure.} = object dwMinLength*: ULONG dwMaxLength*: ULONG dwIncrement*: ULONG + BCRYPT_AUTH_TAG_LENGTHS_STRUCT* = BCRYPT_KEY_LENGTHS_STRUCT BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO* {.pure.} = object cbSize*: ULONG @@ -181,24 +198,29 @@ cbAAD*: ULONG cbData*: ULONGLONG dwFlags*: ULONG + PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO* = ptr BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO BCryptBuffer* {.pure.} = object cbBuffer*: ULONG BufferType*: ULONG pvBuffer*: PVOID + PBCryptBuffer* = ptr BCryptBuffer BCryptBufferDesc* {.pure.} = object ulVersion*: ULONG cBuffers*: ULONG pBuffers*: PBCryptBuffer + PBCryptBufferDesc* = ptr BCryptBufferDesc BCRYPT_ECCKEY_BLOB* {.pure.} = object dwMagic*: ULONG cbKey*: ULONG + PBCRYPT_ECCKEY_BLOB* = ptr BCRYPT_ECCKEY_BLOB BCRYPT_DH_KEY_BLOB* {.pure.} = object dwMagic*: ULONG cbKey*: ULONG + PBCRYPT_DH_KEY_BLOB* = ptr BCRYPT_DH_KEY_BLOB BCRYPT_DSA_KEY_BLOB* {.pure.} = object dwMagic*: ULONG @@ -206,6 +228,7 @@ Count*: array[4, UCHAR] Seed*: array[20, UCHAR] q*: array[20, UCHAR] + PBCRYPT_DSA_KEY_BLOB* = ptr BCRYPT_DSA_KEY_BLOB BCRYPT_DSA_KEY_BLOB_V2* {.pure.} = object dwMagic*: ULONG @@ -215,65 +238,79 @@ cbSeedLength*: ULONG cbGroupSize*: ULONG Count*: array[4, UCHAR] + PBCRYPT_DSA_KEY_BLOB_V2* = ptr BCRYPT_DSA_KEY_BLOB_V2 BCRYPT_KEY_DATA_BLOB_HEADER* {.pure.} = object dwMagic*: ULONG dwVersion*: ULONG cbKeyData*: ULONG + PBCRYPT_KEY_DATA_BLOB_HEADER* = ptr BCRYPT_KEY_DATA_BLOB_HEADER BCRYPT_INTERFACE_VERSION* {.pure.} = object MajorVersion*: USHORT MinorVersion*: USHORT + PBCRYPT_INTERFACE_VERSION* = ptr BCRYPT_INTERFACE_VERSION CRYPT_INTERFACE_REG* {.pure.} = object dwInterface*: ULONG dwFlags*: ULONG cFunctions*: ULONG rgpszFunctions*: ptr PWSTR + PCRYPT_INTERFACE_REG* = ptr CRYPT_INTERFACE_REG CRYPT_IMAGE_REG* {.pure.} = object pszImage*: PWSTR cInterfaces*: ULONG rgpInterfaces*: ptr PCRYPT_INTERFACE_REG + PCRYPT_IMAGE_REG* = ptr CRYPT_IMAGE_REG CRYPT_PROVIDER_REG* {.pure.} = object cAliases*: ULONG rgpszAliases*: ptr PWSTR pUM*: PCRYPT_IMAGE_REG pKM*: PCRYPT_IMAGE_REG + PCRYPT_PROVIDER_REG* = ptr CRYPT_PROVIDER_REG CRYPT_PROVIDERS* {.pure.} = object cProviders*: ULONG rgpszProviders*: ptr PWSTR + PCRYPT_PROVIDERS* = ptr CRYPT_PROVIDERS CRYPT_CONTEXT_CONFIG* {.pure.} = object dwFlags*: ULONG dwReserved*: ULONG + PCRYPT_CONTEXT_CONFIG* = ptr CRYPT_CONTEXT_CONFIG CRYPT_CONTEXT_FUNCTION_CONFIG* {.pure.} = object dwFlags*: ULONG dwReserved*: ULONG + PCRYPT_CONTEXT_FUNCTION_CONFIG* = ptr CRYPT_CONTEXT_FUNCTION_CONFIG CRYPT_CONTEXTS* {.pure.} = object cContexts*: ULONG rgpszContexts*: ptr PWSTR + PCRYPT_CONTEXTS* = ptr CRYPT_CONTEXTS CRYPT_CONTEXT_FUNCTIONS* {.pure.} = object cFunctions*: ULONG rgpszFunctions*: ptr PWSTR + PCRYPT_CONTEXT_FUNCTIONS* = ptr CRYPT_CONTEXT_FUNCTIONS CRYPT_CONTEXT_FUNCTION_PROVIDERS* {.pure.} = object cProviders*: ULONG rgpszProviders*: ptr PWSTR + PCRYPT_CONTEXT_FUNCTION_PROVIDERS* = ptr CRYPT_CONTEXT_FUNCTION_PROVIDERS CRYPT_PROPERTY_REF* {.pure.} = object pszProperty*: PWSTR cbValue*: ULONG pbValue*: PUCHAR + PCRYPT_PROPERTY_REF* = ptr CRYPT_PROPERTY_REF CRYPT_IMAGE_REF* {.pure.} = object pszImage*: PWSTR dwFlags*: ULONG + PCRYPT_IMAGE_REF* = ptr CRYPT_IMAGE_REF CRYPT_PROVIDER_REF* {.pure.} = object dwInterface*: ULONG @@ -283,10 +320,12 @@ rgpProperties*: ptr PCRYPT_PROPERTY_REF pUM*: PCRYPT_IMAGE_REF pKM*: PCRYPT_IMAGE_REF + PCRYPT_PROVIDER_REF* = ptr CRYPT_PROVIDER_REF CRYPT_PROVIDER_REFS* {.pure.} = object cProviders*: ULONG rgpProviders*: ptr PCRYPT_PROVIDER_REF + PCRYPT_PROVIDER_REFS* = ptr CRYPT_PROVIDER_REFS NCryptBuffer* = BCryptBuffer PNCryptBuffer* = ptr BCryptBuffer @@ -299,104 +338,140 @@ cbIV*: ULONG pbOtherInfo*: PUCHAR cbOtherInfo*: ULONG + PNCRYPT_CIPHER_PADDING_INFO* = ptr NCRYPT_CIPHER_PADDING_INFO NCRYPT_KEY_BLOB_HEADER* {.pure.} = object cbSize*: ULONG dwMagic*: ULONG cbAlgName*: ULONG cbKeyData*: ULONG + PNCRYPT_KEY_BLOB_HEADER* = ptr NCRYPT_KEY_BLOB_HEADER CRYPT_BIT_BLOB* {.pure.} = object cbData*: DWORD pbData*: ptr BYTE cUnusedBits*: DWORD + PCRYPT_BIT_BLOB* = ptr CRYPT_BIT_BLOB CRYPT_ALGORITHM_IDENTIFIER* {.pure.} = object pszObjId*: LPSTR Parameters*: CRYPT_OBJID_BLOB + PCRYPT_ALGORITHM_IDENTIFIER* = ptr CRYPT_ALGORITHM_IDENTIFIER CRYPT_OBJID_TABLE* {.pure.} = object dwAlgId*: DWORD pszObjId*: LPCSTR + PCRYPT_OBJID_TABLE* = ptr CRYPT_OBJID_TABLE CRYPT_HASH_INFO* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Hash*: CRYPT_HASH_BLOB + PCRYPT_HASH_INFO* = ptr CRYPT_HASH_INFO CERT_EXTENSION* {.pure.} = object pszObjId*: LPSTR fCritical*: WINBOOL Value*: CRYPT_OBJID_BLOB + PCERT_EXTENSION* = ptr CERT_EXTENSION PCCERT_EXTENSION* = ptr CERT_EXTENSION CRYPT_ATTRIBUTE_TYPE_VALUE* {.pure.} = object pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB + PCRYPT_ATTRIBUTE_TYPE_VALUE* = ptr CRYPT_ATTRIBUTE_TYPE_VALUE CRYPT_ATTRIBUTE* {.pure.} = object pszObjId*: LPSTR cValue*: DWORD rgValue*: PCRYPT_ATTR_BLOB + PCRYPT_ATTRIBUTE* = ptr CRYPT_ATTRIBUTE CRYPT_ATTRIBUTES* {.pure.} = object cAttr*: DWORD rgAttr*: PCRYPT_ATTRIBUTE + PCRYPT_ATTRIBUTES* = ptr CRYPT_ATTRIBUTES CERT_RDN_ATTR* {.pure.} = object pszObjId*: LPSTR dwValueType*: DWORD Value*: CERT_RDN_VALUE_BLOB + PCERT_RDN_ATTR* = ptr CERT_RDN_ATTR CERT_RDN* {.pure.} = object cRDNAttr*: DWORD rgRDNAttr*: PCERT_RDN_ATTR + PCERT_RDN* = ptr CERT_RDN CERT_NAME_INFO* {.pure.} = object cRDN*: DWORD rgRDN*: PCERT_RDN + PCERT_NAME_INFO* = ptr CERT_NAME_INFO CERT_NAME_VALUE* {.pure.} = object dwValueType*: DWORD Value*: CERT_RDN_VALUE_BLOB + PCERT_NAME_VALUE* = ptr CERT_NAME_VALUE CERT_PUBLIC_KEY_INFO* {.pure.} = object Algorithm*: CRYPT_ALGORITHM_IDENTIFIER PublicKey*: CRYPT_BIT_BLOB + PCERT_PUBLIC_KEY_INFO* = ptr CERT_PUBLIC_KEY_INFO CRYPT_ECC_PRIVATE_KEY_INFO* {.pure.} = object dwVersion*: DWORD PrivateKey*: CRYPT_DER_BLOB szCurveOid*: LPSTR PublicKey*: CRYPT_BIT_BLOB + PCRYPT_ECC_PRIVATE_KEY_INFO* = ptr CRYPT_ECC_PRIVATE_KEY_INFO CRYPT_PRIVATE_KEY_INFO* {.pure.} = object Version*: DWORD Algorithm*: CRYPT_ALGORITHM_IDENTIFIER PrivateKey*: CRYPT_DER_BLOB pAttributes*: PCRYPT_ATTRIBUTES + PCRYPT_PRIVATE_KEY_INFO* = ptr CRYPT_PRIVATE_KEY_INFO CRYPT_ENCRYPTED_PRIVATE_KEY_INFO* {.pure.} = object EncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedPrivateKey*: CRYPT_DATA_BLOB + PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO* = ptr CRYPT_ENCRYPTED_PRIVATE_KEY_INFO - PCRYPT_RESOLVE_HCRYPTPROV_FUNC* = proc (pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, phCryptProv: ptr HCRYPTPROV, pVoidResolveFunc: LPVOID): WINBOOL {.stdcall.} - PCRYPT_DECRYPT_PRIVATE_KEY_FUNC* = proc (Algorithm: CRYPT_ALGORITHM_IDENTIFIER, EncryptedPrivateKey: CRYPT_DATA_BLOB, pbClearTextKey: ptr BYTE, pcbClearTextKey: ptr DWORD, pVoidDecryptFunc: LPVOID): WINBOOL {.stdcall.} + PCRYPT_RESOLVE_HCRYPTPROV_FUNC* = proc( + pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, + phCryptProv: ptr HCRYPTPROV, + pVoidResolveFunc: LPVOID, + ): WINBOOL {.stdcall.} + PCRYPT_DECRYPT_PRIVATE_KEY_FUNC* = proc( + Algorithm: CRYPT_ALGORITHM_IDENTIFIER, + EncryptedPrivateKey: CRYPT_DATA_BLOB, + pbClearTextKey: ptr BYTE, + pcbClearTextKey: ptr DWORD, + pVoidDecryptFunc: LPVOID, + ): WINBOOL {.stdcall.} CRYPT_PKCS8_IMPORT_PARAMS* {.pure.} = object PrivateKey*: CRYPT_DIGEST_BLOB pResolvehCryptProvFunc*: PCRYPT_RESOLVE_HCRYPTPROV_FUNC pVoidResolveFunc*: LPVOID pDecryptPrivateKeyFunc*: PCRYPT_DECRYPT_PRIVATE_KEY_FUNC pVoidDecryptFunc*: LPVOID + PCRYPT_PKCS8_IMPORT_PARAMS* = ptr CRYPT_PKCS8_IMPORT_PARAMS CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS* = CRYPT_PKCS8_IMPORT_PARAMS PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS* = ptr CRYPT_PKCS8_IMPORT_PARAMS - PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC* = proc (pAlgorithm: ptr CRYPT_ALGORITHM_IDENTIFIER, pClearTextPrivateKey: ptr CRYPT_DATA_BLOB, pbEncryptedKey: ptr BYTE, pcbEncryptedKey: ptr DWORD, pVoidEncryptFunc: LPVOID): WINBOOL {.stdcall.} + PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC* = proc( + pAlgorithm: ptr CRYPT_ALGORITHM_IDENTIFIER, + pClearTextPrivateKey: ptr CRYPT_DATA_BLOB, + pbEncryptedKey: ptr BYTE, + pcbEncryptedKey: ptr DWORD, + pVoidEncryptFunc: LPVOID, + ): WINBOOL {.stdcall.} CRYPT_PKCS8_EXPORT_PARAMS* {.pure.} = object hCryptProv*: HCRYPTPROV dwKeySpec*: DWORD pszPrivateKeyObjId*: LPSTR pEncryptPrivateKeyFunc*: PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC pVoidEncryptFunc*: LPVOID + PCRYPT_PKCS8_EXPORT_PARAMS* = ptr CRYPT_PKCS8_EXPORT_PARAMS CERT_INFO* {.pure.} = object dwVersion*: DWORD @@ -411,12 +486,14 @@ SubjectUniqueId*: CRYPT_BIT_BLOB cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCERT_INFO* = ptr CERT_INFO CRL_ENTRY* {.pure.} = object SerialNumber*: CRYPT_INTEGER_BLOB RevocationDate*: FILETIME cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCRL_ENTRY* = ptr CRL_ENTRY CRL_INFO* {.pure.} = object dwVersion*: DWORD @@ -428,15 +505,18 @@ rgCRLEntry*: PCRL_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCRL_INFO* = ptr CRL_INFO CERT_OR_CRL_BLOB* {.pure.} = object dwChoice*: DWORD cbEncoded*: DWORD pbEncoded*: ptr BYTE + PCERT_OR_CRL_BLOB* = ptr CERT_OR_CRL_BLOB CERT_OR_CRL_BUNDLE* {.pure.} = object cItem*: DWORD rgItem*: PCERT_OR_CRL_BLOB + PCERT_OR_CRL_BUNDLE* = ptr CERT_OR_CRL_BUNDLE CERT_REQUEST_INFO* {.pure.} = object dwVersion*: DWORD @@ -444,20 +524,24 @@ SubjectPublicKeyInfo*: CERT_PUBLIC_KEY_INFO cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE + PCERT_REQUEST_INFO* = ptr CERT_REQUEST_INFO CERT_KEYGEN_REQUEST_INFO* {.pure.} = object dwVersion*: DWORD SubjectPublicKeyInfo*: CERT_PUBLIC_KEY_INFO pwszChallengeString*: LPWSTR + PCERT_KEYGEN_REQUEST_INFO* = ptr CERT_KEYGEN_REQUEST_INFO CERT_SIGNED_CONTENT_INFO* {.pure.} = object ToBeSigned*: CRYPT_DER_BLOB SignatureAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Signature*: CRYPT_BIT_BLOB + PCERT_SIGNED_CONTENT_INFO* = ptr CERT_SIGNED_CONTENT_INFO CTL_USAGE* {.pure.} = object cUsageIdentifier*: DWORD rgpszUsageIdentifier*: ptr LPSTR + PCTL_USAGE* = ptr CTL_USAGE CERT_ENHKEY_USAGE* = CTL_USAGE PCERT_ENHKEY_USAGE* = ptr CTL_USAGE @@ -467,6 +551,7 @@ SubjectIdentifier*: CRYPT_DATA_BLOB cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE + PCTL_ENTRY* = ptr CTL_ENTRY CTL_INFO* {.pure.} = object dwVersion*: DWORD @@ -480,6 +565,7 @@ rgCTLEntry*: PCTL_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCTL_INFO* = ptr CTL_INFO CRYPT_TIME_STAMP_REQUEST_INFO* {.pure.} = object pszTimeStampAlgorithm*: LPSTR @@ -487,58 +573,70 @@ Content*: CRYPT_OBJID_BLOB cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE + PCRYPT_TIME_STAMP_REQUEST_INFO* = ptr CRYPT_TIME_STAMP_REQUEST_INFO CRYPT_ENROLLMENT_NAME_VALUE_PAIR* {.pure.} = object pwszName*: LPWSTR pwszValue*: LPWSTR + PCRYPT_ENROLLMENT_NAME_VALUE_PAIR* = ptr CRYPT_ENROLLMENT_NAME_VALUE_PAIR CRYPT_CSP_PROVIDER* {.pure.} = object dwKeySpec*: DWORD pwszProviderName*: LPWSTR Signature*: CRYPT_BIT_BLOB + PCRYPT_CSP_PROVIDER* = ptr CRYPT_CSP_PROVIDER - PFN_CRYPT_ALLOC* = proc (cbSize: int): LPVOID {.stdcall.} - PFN_CRYPT_FREE* = proc (pv: LPVOID): VOID {.stdcall.} + PFN_CRYPT_ALLOC* = proc(cbSize: int): LPVOID {.stdcall.} + PFN_CRYPT_FREE* = proc(pv: LPVOID): VOID {.stdcall.} CRYPT_ENCODE_PARA* {.pure.} = object cbSize*: DWORD pfnAlloc*: PFN_CRYPT_ALLOC pfnFree*: PFN_CRYPT_FREE + PCRYPT_ENCODE_PARA* = ptr CRYPT_ENCODE_PARA CRYPT_DECODE_PARA* {.pure.} = object cbSize*: DWORD pfnAlloc*: PFN_CRYPT_ALLOC pfnFree*: PFN_CRYPT_FREE + PCRYPT_DECODE_PARA* = ptr CRYPT_DECODE_PARA CERT_EXTENSIONS* {.pure.} = object cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCERT_EXTENSIONS* = ptr CERT_EXTENSIONS CERT_AUTHORITY_KEY_ID_INFO* {.pure.} = object KeyId*: CRYPT_DATA_BLOB CertIssuer*: CERT_NAME_BLOB CertSerialNumber*: CRYPT_INTEGER_BLOB + PCERT_AUTHORITY_KEY_ID_INFO* = ptr CERT_AUTHORITY_KEY_ID_INFO CERT_PRIVATE_KEY_VALIDITY* {.pure.} = object NotBefore*: FILETIME NotAfter*: FILETIME + PCERT_PRIVATE_KEY_VALIDITY* = ptr CERT_PRIVATE_KEY_VALIDITY CERT_KEY_ATTRIBUTES_INFO* {.pure.} = object KeyId*: CRYPT_DATA_BLOB IntendedKeyUsage*: CRYPT_BIT_BLOB pPrivateKeyUsagePeriod*: PCERT_PRIVATE_KEY_VALIDITY + PCERT_KEY_ATTRIBUTES_INFO* = ptr CERT_KEY_ATTRIBUTES_INFO CERT_POLICY_ID* {.pure.} = object cCertPolicyElementId*: DWORD rgpszCertPolicyElementId*: ptr LPSTR + PCERT_POLICY_ID* = ptr CERT_POLICY_ID CERT_KEY_USAGE_RESTRICTION_INFO* {.pure.} = object cCertPolicyId*: DWORD rgCertPolicyId*: PCERT_POLICY_ID RestrictedKeyUsage*: CRYPT_BIT_BLOB + PCERT_KEY_USAGE_RESTRICTION_INFO* = ptr CERT_KEY_USAGE_RESTRICTION_INFO CERT_OTHER_NAME* {.pure.} = object pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB + PCERT_OTHER_NAME* = ptr CERT_OTHER_NAME CERT_ALT_NAME_ENTRY_UNION1* {.pure, union.} = object pOtherName*: PCERT_OTHER_NAME @@ -548,13 +646,16 @@ pwszURL*: LPWSTR IPAddress*: CRYPT_DATA_BLOB pszRegisteredID*: LPSTR + CERT_ALT_NAME_ENTRY* {.pure.} = object dwAltNameChoice*: DWORD union1*: CERT_ALT_NAME_ENTRY_UNION1 + PCERT_ALT_NAME_ENTRY* = ptr CERT_ALT_NAME_ENTRY CERT_ALT_NAME_INFO* {.pure.} = object cAltEntry*: DWORD rgAltEntry*: PCERT_ALT_NAME_ENTRY + PCERT_ALT_NAME_INFO* = ptr CERT_ALT_NAME_INFO CERT_BASIC_CONSTRAINTS_INFO* {.pure.} = object SubjectType*: CRYPT_BIT_BLOB @@ -562,38 +663,46 @@ dwPathLenConstraint*: DWORD cSubtreesConstraint*: DWORD rgSubtreesConstraint*: ptr CERT_NAME_BLOB + PCERT_BASIC_CONSTRAINTS_INFO* = ptr CERT_BASIC_CONSTRAINTS_INFO CERT_BASIC_CONSTRAINTS2_INFO* {.pure.} = object fCA*: WINBOOL fPathLenConstraint*: WINBOOL dwPathLenConstraint*: DWORD + PCERT_BASIC_CONSTRAINTS2_INFO* = ptr CERT_BASIC_CONSTRAINTS2_INFO CERT_POLICY_QUALIFIER_INFO* {.pure.} = object pszPolicyQualifierId*: LPSTR Qualifier*: CRYPT_OBJID_BLOB + PCERT_POLICY_QUALIFIER_INFO* = ptr CERT_POLICY_QUALIFIER_INFO CERT_POLICY_INFO* {.pure.} = object pszPolicyIdentifier*: LPSTR cPolicyQualifier*: DWORD rgPolicyQualifier*: ptr CERT_POLICY_QUALIFIER_INFO + PCERT_POLICY_INFO* = ptr CERT_POLICY_INFO CERT_POLICIES_INFO* {.pure.} = object cPolicyInfo*: DWORD rgPolicyInfo*: ptr CERT_POLICY_INFO + PCERT_POLICIES_INFO* = ptr CERT_POLICIES_INFO CERT_POLICY_QUALIFIER_NOTICE_REFERENCE* {.pure.} = object pszOrganization*: LPSTR cNoticeNumbers*: DWORD rgNoticeNumbers*: ptr int32 + PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE* = ptr CERT_POLICY_QUALIFIER_NOTICE_REFERENCE CERT_POLICY_QUALIFIER_USER_NOTICE* {.pure.} = object pNoticeReference*: ptr CERT_POLICY_QUALIFIER_NOTICE_REFERENCE pszDisplayText*: LPWSTR + PCERT_POLICY_QUALIFIER_USER_NOTICE* = ptr CERT_POLICY_QUALIFIER_USER_NOTICE CPS_URLS* {.pure.} = object pszURL*: LPWSTR pAlgorithm*: ptr CRYPT_ALGORITHM_IDENTIFIER pDigest*: ptr CRYPT_DATA_BLOB + PCPS_URLS* = ptr CPS_URLS CERT_POLICY95_QUALIFIER1* {.pure.} = object pszPracticesReference*: LPWSTR @@ -601,72 +710,88 @@ pszNSINoticeIdentifier*: LPSTR cCPSURLs*: DWORD rgCPSURLs*: ptr CPS_URLS + PCERT_POLICY95_QUALIFIER1* = ptr CERT_POLICY95_QUALIFIER1 CERT_POLICY_MAPPING* {.pure.} = object pszIssuerDomainPolicy*: LPSTR pszSubjectDomainPolicy*: LPSTR + PCERT_POLICY_MAPPING* = ptr CERT_POLICY_MAPPING CERT_POLICY_MAPPINGS_INFO* {.pure.} = object cPolicyMapping*: DWORD rgPolicyMapping*: PCERT_POLICY_MAPPING + PCERT_POLICY_MAPPINGS_INFO* = ptr CERT_POLICY_MAPPINGS_INFO CERT_POLICY_CONSTRAINTS_INFO* {.pure.} = object fRequireExplicitPolicy*: WINBOOL dwRequireExplicitPolicySkipCerts*: DWORD fInhibitPolicyMapping*: WINBOOL dwInhibitPolicyMappingSkipCerts*: DWORD + PCERT_POLICY_CONSTRAINTS_INFO* = ptr CERT_POLICY_CONSTRAINTS_INFO CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY* {.pure.} = object pszObjId*: LPSTR cValue*: DWORD rgValue*: PCRYPT_DER_BLOB + PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY* = ptr CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY CRYPT_CONTENT_INFO* {.pure.} = object pszObjId*: LPSTR Content*: CRYPT_DER_BLOB + PCRYPT_CONTENT_INFO* = ptr CRYPT_CONTENT_INFO CRYPT_SEQUENCE_OF_ANY* {.pure.} = object cValue*: DWORD rgValue*: PCRYPT_DER_BLOB + PCRYPT_SEQUENCE_OF_ANY* = ptr CRYPT_SEQUENCE_OF_ANY CERT_AUTHORITY_KEY_ID2_INFO* {.pure.} = object KeyId*: CRYPT_DATA_BLOB AuthorityCertIssuer*: CERT_ALT_NAME_INFO AuthorityCertSerialNumber*: CRYPT_INTEGER_BLOB + PCERT_AUTHORITY_KEY_ID2_INFO* = ptr CERT_AUTHORITY_KEY_ID2_INFO CERT_ACCESS_DESCRIPTION* {.pure.} = object pszAccessMethod*: LPSTR AccessLocation*: CERT_ALT_NAME_ENTRY + PCERT_ACCESS_DESCRIPTION* = ptr CERT_ACCESS_DESCRIPTION CERT_AUTHORITY_INFO_ACCESS* {.pure.} = object cAccDescr*: DWORD rgAccDescr*: PCERT_ACCESS_DESCRIPTION + PCERT_AUTHORITY_INFO_ACCESS* = ptr CERT_AUTHORITY_INFO_ACCESS CERT_SUBJECT_INFO_ACCESS* = CERT_AUTHORITY_INFO_ACCESS PCERT_SUBJECT_INFO_ACCESS* = ptr CERT_AUTHORITY_INFO_ACCESS CRL_DIST_POINT_NAME_UNION1* {.pure, union.} = object FullName*: CERT_ALT_NAME_INFO + CRL_DIST_POINT_NAME* {.pure.} = object dwDistPointNameChoice*: DWORD union1*: CRL_DIST_POINT_NAME_UNION1 + PCRL_DIST_POINT_NAME* = ptr CRL_DIST_POINT_NAME CRL_DIST_POINT* {.pure.} = object DistPointName*: CRL_DIST_POINT_NAME ReasonFlags*: CRYPT_BIT_BLOB CRLIssuer*: CERT_ALT_NAME_INFO + PCRL_DIST_POINT* = ptr CRL_DIST_POINT CRL_DIST_POINTS_INFO* {.pure.} = object cDistPoint*: DWORD rgDistPoint*: PCRL_DIST_POINT + PCRL_DIST_POINTS_INFO* = ptr CRL_DIST_POINTS_INFO CROSS_CERT_DIST_POINTS_INFO* {.pure.} = object dwSyncDeltaTime*: DWORD cDistPoint*: DWORD rgDistPoint*: PCERT_ALT_NAME_INFO + PCROSS_CERT_DIST_POINTS_INFO* = ptr CROSS_CERT_DIST_POINTS_INFO CERT_PAIR* {.pure.} = object Forward*: CERT_BLOB Reverse*: CERT_BLOB + PCERT_PAIR* = ptr CERT_PAIR CRL_ISSUING_DIST_POINT* {.pure.} = object DistPointName*: CRL_DIST_POINT_NAME @@ -674,35 +799,42 @@ fOnlyContainsCACerts*: WINBOOL OnlySomeReasonFlags*: CRYPT_BIT_BLOB fIndirectCRL*: WINBOOL + PCRL_ISSUING_DIST_POINT* = ptr CRL_ISSUING_DIST_POINT CERT_GENERAL_SUBTREE* {.pure.} = object Base*: CERT_ALT_NAME_ENTRY dwMinimum*: DWORD fMaximum*: WINBOOL dwMaximum*: DWORD + PCERT_GENERAL_SUBTREE* = ptr CERT_GENERAL_SUBTREE CERT_NAME_CONSTRAINTS_INFO* {.pure.} = object cPermittedSubtree*: DWORD rgPermittedSubtree*: PCERT_GENERAL_SUBTREE cExcludedSubtree*: DWORD rgExcludedSubtree*: PCERT_GENERAL_SUBTREE + PCERT_NAME_CONSTRAINTS_INFO* = ptr CERT_NAME_CONSTRAINTS_INFO CERT_DSS_PARAMETERS* {.pure.} = object p*: CRYPT_UINT_BLOB q*: CRYPT_UINT_BLOB g*: CRYPT_UINT_BLOB + PCERT_DSS_PARAMETERS* = ptr CERT_DSS_PARAMETERS CERT_DH_PARAMETERS* {.pure.} = object p*: CRYPT_UINT_BLOB g*: CRYPT_UINT_BLOB + PCERT_DH_PARAMETERS* = ptr CERT_DH_PARAMETERS CERT_ECC_SIGNATURE* {.pure.} = object r*: CRYPT_UINT_BLOB s*: CRYPT_UINT_BLOB + PCERT_ECC_SIGNATURE* = ptr CERT_ECC_SIGNATURE CERT_X942_DH_VALIDATION_PARAMS* {.pure.} = object seed*: CRYPT_BIT_BLOB pgenCounter*: DWORD + PCERT_X942_DH_VALIDATION_PARAMS* = ptr CERT_X942_DH_VALIDATION_PARAMS CERT_X942_DH_PARAMETERS* {.pure.} = object p*: CRYPT_UINT_BLOB @@ -710,7 +842,9 @@ q*: CRYPT_UINT_BLOB j*: CRYPT_UINT_BLOB pValidationParams*: PCERT_X942_DH_VALIDATION_PARAMS + PCERT_X942_DH_PARAMETERS* = ptr CERT_X942_DH_PARAMETERS + const CRYPT_X942_COUNTER_BYTE_LENGTH* = 4 CRYPT_X942_KEY_LENGTH_BYTE_LENGTH* = 4 @@ -720,77 +854,94 @@ rgbCounter*: array[CRYPT_X942_COUNTER_BYTE_LENGTH, BYTE] rgbKeyLength*: array[CRYPT_X942_KEY_LENGTH_BYTE_LENGTH, BYTE] PubInfo*: CRYPT_DATA_BLOB + PCRYPT_X942_OTHER_INFO* = ptr CRYPT_X942_OTHER_INFO -const - CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH* = 4 + +const CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH* = 4 type CRYPT_ECC_CMS_SHARED_INFO* {.pure.} = object Algorithm*: CRYPT_ALGORITHM_IDENTIFIER EntityUInfo*: CRYPT_DATA_BLOB rgbSuppPubInfo*: array[CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH, BYTE] + PCRYPT_ECC_CMS_SHARED_INFO* = ptr CRYPT_ECC_CMS_SHARED_INFO CRYPT_RC2_CBC_PARAMETERS* {.pure.} = object dwVersion*: DWORD fIV*: WINBOOL rgbIV*: array[8, BYTE] + PCRYPT_RC2_CBC_PARAMETERS* = ptr CRYPT_RC2_CBC_PARAMETERS CRYPT_SMIME_CAPABILITY* {.pure.} = object pszObjId*: LPSTR Parameters*: CRYPT_OBJID_BLOB + PCRYPT_SMIME_CAPABILITY* = ptr CRYPT_SMIME_CAPABILITY CRYPT_SMIME_CAPABILITIES* {.pure.} = object cCapability*: DWORD rgCapability*: PCRYPT_SMIME_CAPABILITY + PCRYPT_SMIME_CAPABILITIES* = ptr CRYPT_SMIME_CAPABILITIES CERT_QC_STATEMENT* {.pure.} = object pszStatementId*: LPSTR StatementInfo*: CRYPT_OBJID_BLOB + PCERT_QC_STATEMENT* = ptr CERT_QC_STATEMENT CERT_QC_STATEMENTS_EXT_INFO* {.pure.} = object cStatement*: DWORD rgStatement*: PCERT_QC_STATEMENT + PCERT_QC_STATEMENTS_EXT_INFO* = ptr CERT_QC_STATEMENTS_EXT_INFO CRYPT_MASK_GEN_ALGORITHM* {.pure.} = object pszObjId*: LPSTR HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER + PCRYPT_MASK_GEN_ALGORITHM* = ptr CRYPT_MASK_GEN_ALGORITHM CRYPT_RSA_SSA_PSS_PARAMETERS* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER MaskGenAlgorithm*: CRYPT_MASK_GEN_ALGORITHM dwSaltLength*: DWORD dwTrailerField*: DWORD + PCRYPT_RSA_SSA_PSS_PARAMETERS* = ptr CRYPT_RSA_SSA_PSS_PARAMETERS CRYPT_PSOURCE_ALGORITHM* {.pure.} = object pszObjId*: LPSTR EncodingParameters*: CRYPT_DATA_BLOB + PCRYPT_PSOURCE_ALGORITHM* = ptr CRYPT_PSOURCE_ALGORITHM CRYPT_RSAES_OAEP_PARAMETERS* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER MaskGenAlgorithm*: CRYPT_MASK_GEN_ALGORITHM PSourceAlgorithm*: CRYPT_PSOURCE_ALGORITHM + PCRYPT_RSAES_OAEP_PARAMETERS* = ptr CRYPT_RSAES_OAEP_PARAMETERS CMC_TAGGED_ATTRIBUTE* {.pure.} = object dwBodyPartID*: DWORD Attribute*: CRYPT_ATTRIBUTE + PCMC_TAGGED_ATTRIBUTE* = ptr CMC_TAGGED_ATTRIBUTE CMC_TAGGED_CERT_REQUEST* {.pure.} = object dwBodyPartID*: DWORD SignedCertRequest*: CRYPT_DER_BLOB + PCMC_TAGGED_CERT_REQUEST* = ptr CMC_TAGGED_CERT_REQUEST CMC_TAGGED_REQUEST_UNION1* {.pure, union.} = object pTaggedCertRequest*: PCMC_TAGGED_CERT_REQUEST + CMC_TAGGED_REQUEST* {.pure.} = object dwTaggedRequestChoice*: DWORD union1*: CMC_TAGGED_REQUEST_UNION1 + PCMC_TAGGED_REQUEST* = ptr CMC_TAGGED_REQUEST CMC_TAGGED_CONTENT_INFO* {.pure.} = object dwBodyPartID*: DWORD EncodedContentInfo*: CRYPT_DER_BLOB + PCMC_TAGGED_CONTENT_INFO* = ptr CMC_TAGGED_CONTENT_INFO CMC_TAGGED_OTHER_MSG* {.pure.} = object dwBodyPartID*: DWORD pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB + PCMC_TAGGED_OTHER_MSG* = ptr CMC_TAGGED_OTHER_MSG CMC_DATA_INFO* {.pure.} = object cTaggedAttribute*: DWORD @@ -801,6 +952,7 @@ rgTaggedContentInfo*: PCMC_TAGGED_CONTENT_INFO cTaggedOtherMsg*: DWORD rgTaggedOtherMsg*: PCMC_TAGGED_OTHER_MSG + PCMC_DATA_INFO* = ptr CMC_DATA_INFO CMC_RESPONSE_INFO* {.pure.} = object cTaggedAttribute*: DWORD @@ -809,14 +961,17 @@ rgTaggedContentInfo*: PCMC_TAGGED_CONTENT_INFO cTaggedOtherMsg*: DWORD rgTaggedOtherMsg*: PCMC_TAGGED_OTHER_MSG + PCMC_RESPONSE_INFO* = ptr CMC_RESPONSE_INFO CMC_PEND_INFO* {.pure.} = object PendToken*: CRYPT_DATA_BLOB PendTime*: FILETIME + PCMC_PEND_INFO* = ptr CMC_PEND_INFO CMC_STATUS_INFO_UNION1* {.pure, union.} = object dwFailInfo*: DWORD pPendInfo*: PCMC_PEND_INFO + CMC_STATUS_INFO* {.pure.} = object dwStatus*: DWORD cBodyList*: DWORD @@ -824,6 +979,7 @@ pwszStatusString*: LPWSTR dwOtherInfoChoice*: DWORD union1*: CMC_STATUS_INFO_UNION1 + PCMC_STATUS_INFO* = ptr CMC_STATUS_INFO CMC_ADD_EXTENSIONS_INFO* {.pure.} = object dwCmcDataReference*: DWORD @@ -831,6 +987,7 @@ rgdwCertReference*: ptr DWORD cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCMC_ADD_EXTENSIONS_INFO* = ptr CMC_ADD_EXTENSIONS_INFO CMC_ADD_ATTRIBUTES_INFO* {.pure.} = object dwCmcDataReference*: DWORD @@ -838,30 +995,36 @@ rgdwCertReference*: ptr DWORD cAttribute*: DWORD rgAttribute*: PCRYPT_ATTRIBUTE + PCMC_ADD_ATTRIBUTES_INFO* = ptr CMC_ADD_ATTRIBUTES_INFO CERT_TEMPLATE_EXT* {.pure.} = object pszObjId*: LPSTR dwMajorVersion*: DWORD fMinorVersion*: WINBOOL dwMinorVersion*: DWORD + PCERT_TEMPLATE_EXT* = ptr CERT_TEMPLATE_EXT CERT_HASHED_URL* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Hash*: CRYPT_HASH_BLOB pwszUrl*: LPWSTR + PCERT_HASHED_URL* = ptr CERT_HASHED_URL CERT_LOGOTYPE_DETAILS* {.pure.} = object pwszMimeType*: LPWSTR cHashedUrl*: DWORD rgHashedUrl*: PCERT_HASHED_URL + PCERT_LOGOTYPE_DETAILS* = ptr CERT_LOGOTYPE_DETAILS CERT_LOGOTYPE_REFERENCE* {.pure.} = object cHashedUrl*: DWORD rgHashedUrl*: PCERT_HASHED_URL + PCERT_LOGOTYPE_REFERENCE* = ptr CERT_LOGOTYPE_REFERENCE CERT_LOGOTYPE_IMAGE_INFO_UNION1* {.pure, union.} = object dwNumBits*: DWORD dwTableSize*: DWORD + CERT_LOGOTYPE_IMAGE_INFO* {.pure.} = object dwLogotypeImageInfoChoice*: DWORD dwFileSize*: DWORD @@ -870,10 +1033,12 @@ dwLogotypeImageResolutionChoice*: DWORD union1*: CERT_LOGOTYPE_IMAGE_INFO_UNION1 pwszLanguage*: LPWSTR + PCERT_LOGOTYPE_IMAGE_INFO* = ptr CERT_LOGOTYPE_IMAGE_INFO CERT_LOGOTYPE_IMAGE* {.pure.} = object LogotypeDetails*: CERT_LOGOTYPE_DETAILS pLogotypeImageInfo*: PCERT_LOGOTYPE_IMAGE_INFO + PCERT_LOGOTYPE_IMAGE* = ptr CERT_LOGOTYPE_IMAGE CERT_LOGOTYPE_AUDIO_INFO* {.pure.} = object dwFileSize*: DWORD @@ -881,27 +1046,33 @@ dwChannels*: DWORD dwSampleRate*: DWORD pwszLanguage*: LPWSTR + PCERT_LOGOTYPE_AUDIO_INFO* = ptr CERT_LOGOTYPE_AUDIO_INFO CERT_LOGOTYPE_AUDIO* {.pure.} = object LogotypeDetails*: CERT_LOGOTYPE_DETAILS pLogotypeAudioInfo*: PCERT_LOGOTYPE_AUDIO_INFO + PCERT_LOGOTYPE_AUDIO* = ptr CERT_LOGOTYPE_AUDIO CERT_LOGOTYPE_DATA* {.pure.} = object cLogotypeImage*: DWORD rgLogotypeImage*: PCERT_LOGOTYPE_IMAGE cLogotypeAudio*: DWORD rgLogotypeAudio*: PCERT_LOGOTYPE_AUDIO + PCERT_LOGOTYPE_DATA* = ptr CERT_LOGOTYPE_DATA CERT_LOGOTYPE_INFO_UNION1* {.pure, union.} = object pLogotypeDirectInfo*: PCERT_LOGOTYPE_DATA pLogotypeIndirectInfo*: PCERT_LOGOTYPE_REFERENCE + CERT_LOGOTYPE_INFO* {.pure.} = object dwLogotypeInfoChoice*: DWORD union1*: CERT_LOGOTYPE_INFO_UNION1 + PCERT_LOGOTYPE_INFO* = ptr CERT_LOGOTYPE_INFO CERT_OTHER_LOGOTYPE_INFO* {.pure.} = object pszObjId*: LPSTR LogotypeInfo*: CERT_LOGOTYPE_INFO + PCERT_OTHER_LOGOTYPE_INFO* = ptr CERT_OTHER_LOGOTYPE_INFO CERT_LOGOTYPE_EXT_INFO* {.pure.} = object cCommunityLogo*: DWORD @@ -910,39 +1081,47 @@ pSubjectLogo*: PCERT_LOGOTYPE_INFO cOtherLogo*: DWORD rgOtherLogo*: PCERT_OTHER_LOGOTYPE_INFO + PCERT_LOGOTYPE_EXT_INFO* = ptr CERT_LOGOTYPE_EXT_INFO CERT_BIOMETRIC_DATA_UNION1* {.pure, union.} = object dwPredefined*: DWORD pszObjId*: LPSTR + CERT_BIOMETRIC_DATA* {.pure.} = object dwTypeOfBiometricDataChoice*: DWORD union1*: CERT_BIOMETRIC_DATA_UNION1 HashedUrl*: CERT_HASHED_URL + PCERT_BIOMETRIC_DATA* = ptr CERT_BIOMETRIC_DATA CERT_BIOMETRIC_EXT_INFO* {.pure.} = object cBiometricData*: DWORD rgBiometricData*: PCERT_BIOMETRIC_DATA + PCERT_BIOMETRIC_EXT_INFO* = ptr CERT_BIOMETRIC_EXT_INFO OCSP_SIGNATURE_INFO* {.pure.} = object SignatureAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Signature*: CRYPT_BIT_BLOB cCertEncoded*: DWORD rgCertEncoded*: PCERT_BLOB + POCSP_SIGNATURE_INFO* = ptr OCSP_SIGNATURE_INFO OCSP_SIGNED_REQUEST_INFO* {.pure.} = object ToBeSigned*: CRYPT_DER_BLOB pOptionalSignatureInfo*: POCSP_SIGNATURE_INFO + POCSP_SIGNED_REQUEST_INFO* = ptr OCSP_SIGNED_REQUEST_INFO OCSP_CERT_ID* {.pure.} = object HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER IssuerNameHash*: CRYPT_HASH_BLOB IssuerKeyHash*: CRYPT_HASH_BLOB SerialNumber*: CRYPT_INTEGER_BLOB + POCSP_CERT_ID* = ptr OCSP_CERT_ID OCSP_REQUEST_ENTRY* {.pure.} = object CertId*: OCSP_CERT_ID cExtension*: DWORD rgExtension*: PCERT_EXTENSION + POCSP_REQUEST_ENTRY* = ptr OCSP_REQUEST_ENTRY OCSP_REQUEST_INFO* {.pure.} = object dwVersion*: DWORD @@ -951,22 +1130,27 @@ rgRequestEntry*: POCSP_REQUEST_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION + POCSP_REQUEST_INFO* = ptr OCSP_REQUEST_INFO OCSP_RESPONSE_INFO* {.pure.} = object dwStatus*: DWORD pszObjId*: LPSTR Value*: CRYPT_OBJID_BLOB + POCSP_RESPONSE_INFO* = ptr OCSP_RESPONSE_INFO OCSP_BASIC_SIGNED_RESPONSE_INFO* {.pure.} = object ToBeSigned*: CRYPT_DER_BLOB SignatureInfo*: OCSP_SIGNATURE_INFO + POCSP_BASIC_SIGNED_RESPONSE_INFO* = ptr OCSP_BASIC_SIGNED_RESPONSE_INFO OCSP_BASIC_REVOKED_INFO* {.pure.} = object RevocationDate*: FILETIME dwCrlReasonCode*: DWORD + POCSP_BASIC_REVOKED_INFO* = ptr OCSP_BASIC_REVOKED_INFO OCSP_BASIC_RESPONSE_ENTRY_UNION1* {.pure, union.} = object pRevokedInfo*: POCSP_BASIC_REVOKED_INFO + OCSP_BASIC_RESPONSE_ENTRY* {.pure.} = object CertId*: OCSP_CERT_ID dwCertStatus*: DWORD @@ -975,10 +1159,12 @@ NextUpdate*: FILETIME cExtension*: DWORD rgExtension*: PCERT_EXTENSION + POCSP_BASIC_RESPONSE_ENTRY* = ptr OCSP_BASIC_RESPONSE_ENTRY OCSP_BASIC_RESPONSE_INFO_UNION1* {.pure, union.} = object ByNameResponderId*: CERT_NAME_BLOB ByKeyResponderId*: CRYPT_HASH_BLOB + OCSP_BASIC_RESPONSE_INFO* {.pure.} = object dwVersion*: DWORD dwResponderIdChoice*: DWORD @@ -988,37 +1174,40 @@ rgResponseEntry*: POCSP_BASIC_RESPONSE_ENTRY cExtension*: DWORD rgExtension*: PCERT_EXTENSION + POCSP_BASIC_RESPONSE_INFO* = ptr OCSP_BASIC_RESPONSE_INFO CRYPT_OID_FUNC_ENTRY* {.pure.} = object pszOID*: LPCSTR pvFuncAddr*: pointer + PCRYPT_OID_FUNC_ENTRY* = ptr CRYPT_OID_FUNC_ENTRY CRYPT_OID_INFO_UNION1* {.pure, union.} = object dwValue*: DWORD Algid*: ALG_ID dwLength*: DWORD + when winimCpu64: - type - CRYPT_OID_INFO* {.pure.} = object - cbSize*: DWORD - pszOID*: LPCSTR - pwszName*: LPCWSTR - dwGroupId*: DWORD - union1*: CRYPT_OID_INFO_UNION1 - ExtraInfo*: CRYPT_DATA_BLOB - pwszCNGAlgid*: LPCWSTR - pwszCNGExtraAlgid*: LPCWSTR + type CRYPT_OID_INFO* {.pure.} = object + cbSize*: DWORD + pszOID*: LPCSTR + pwszName*: LPCWSTR + dwGroupId*: DWORD + union1*: CRYPT_OID_INFO_UNION1 + ExtraInfo*: CRYPT_DATA_BLOB + pwszCNGAlgid*: LPCWSTR + pwszCNGExtraAlgid*: LPCWSTR + when winimCpu32: - type - CRYPT_OID_INFO* {.pure, packed.} = object - cbSize*: DWORD - pszOID*: LPCSTR - pwszName*: LPCWSTR - dwGroupId*: DWORD - union1*: CRYPT_OID_INFO_UNION1 - ExtraInfo*: CRYPT_DATA_BLOB - pwszCNGAlgid*: LPCWSTR - pwszCNGExtraAlgid*: LPCWSTR + type CRYPT_OID_INFO* {.pure, packed.} = object + cbSize*: DWORD + pszOID*: LPCSTR + pwszName*: LPCWSTR + dwGroupId*: DWORD + union1*: CRYPT_OID_INFO_UNION1 + ExtraInfo*: CRYPT_DATA_BLOB + pwszCNGAlgid*: LPCWSTR + pwszCNGExtraAlgid*: LPCWSTR + type PCRYPT_OID_INFO* = ptr CRYPT_OID_INFO CCRYPT_OID_INFO* = CRYPT_OID_INFO @@ -1027,32 +1216,39 @@ dwFlags*: DWORD pwszCNGSignHashAlgids*: LPWSTR pwszCNGPubKeyMinBitLengths*: LPWSTR + PCERT_STRONG_SIGN_SERIALIZED_INFO* = ptr CERT_STRONG_SIGN_SERIALIZED_INFO CERT_STRONG_SIGN_PARA_UNION1* {.pure, union.} = object pvInfo*: pointer pSerializedInfo*: PCERT_STRONG_SIGN_SERIALIZED_INFO pszOID*: LPSTR + CERT_STRONG_SIGN_PARA* {.pure.} = object cbSize*: DWORD dwInfoChoice*: DWORD union1*: CERT_STRONG_SIGN_PARA_UNION1 + PCERT_STRONG_SIGN_PARA* = ptr CERT_STRONG_SIGN_PARA PCCERT_STRONG_SIGN_PARA* = ptr CERT_STRONG_SIGN_PARA CERT_ISSUER_SERIAL_NUMBER* {.pure.} = object Issuer*: CERT_NAME_BLOB SerialNumber*: CRYPT_INTEGER_BLOB + PCERT_ISSUER_SERIAL_NUMBER* = ptr CERT_ISSUER_SERIAL_NUMBER CERT_ID_UNION1* {.pure, union.} = object IssuerSerialNumber*: CERT_ISSUER_SERIAL_NUMBER KeyId*: CRYPT_HASH_BLOB HashId*: CRYPT_HASH_BLOB + CERT_ID* {.pure.} = object dwIdChoice*: DWORD union1*: CERT_ID_UNION1 + PCERT_ID* = ptr CERT_ID CMSG_SIGNER_ENCODE_INFO_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE + CMSG_SIGNER_ENCODE_INFO* {.pure.} = object cbSize*: DWORD pCertInfo*: PCERT_INFO @@ -1067,6 +1263,7 @@ SignerId*: CERT_ID HashEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashEncryptionAuxInfo*: pointer + PCMSG_SIGNER_ENCODE_INFO* = ptr CMSG_SIGNER_ENCODE_INFO CMSG_SIGNED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD @@ -1078,6 +1275,7 @@ rgCrlEncoded*: PCRL_BLOB cAttrCertEncoded*: DWORD rgAttrCertEncoded*: PCERT_BLOB + PCMSG_SIGNED_ENCODE_INFO* = ptr CMSG_SIGNED_ENCODE_INFO CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO* {.pure.} = object cbSize*: DWORD @@ -1086,17 +1284,21 @@ hCryptProv*: HCRYPTPROV_LEGACY RecipientPublicKey*: CRYPT_BIT_BLOB RecipientId*: CERT_ID + PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO* = ptr CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO_UNION1* {.pure, union.} = object pEphemeralAlgorithm*: PCRYPT_ALGORITHM_IDENTIFIER pSenderId*: PCERT_ID + CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO* {.pure.} = object cbSize*: DWORD RecipientPublicKey*: CRYPT_BIT_BLOB RecipientId*: CERT_ID Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE - PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO* = ptr CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO + + PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO* = + ptr CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO* {.pure.} = object cbSize*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER @@ -1110,10 +1312,12 @@ UserKeyingMaterial*: CRYPT_DATA_BLOB cRecipientEncryptedKeys*: DWORD rgpRecipientEncryptedKeys*: ptr PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO + PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO* = ptr CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO_UNION1* {.pure, union.} = object hKeyEncryptionKey*: HCRYPTKEY pvKeyEncryptionKey*: pointer + CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO* {.pure.} = object cbSize*: DWORD KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER @@ -1124,14 +1328,17 @@ KeyId*: CRYPT_DATA_BLOB Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE + PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO* = ptr CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO CMSG_RECIPIENT_ENCODE_INFO_UNION1* {.pure, union.} = object pKeyTrans*: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO pKeyAgree*: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pMailList*: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO + CMSG_RECIPIENT_ENCODE_INFO* {.pure.} = object dwRecipientChoice*: DWORD union1*: CMSG_RECIPIENT_ENCODE_INFO_UNION1 + PCMSG_RECIPIENT_ENCODE_INFO* = ptr CMSG_RECIPIENT_ENCODE_INFO CMSG_ENVELOPED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD @@ -1149,40 +1356,50 @@ rgAttrCertEncoded*: PCERT_BLOB cUnprotectedAttr*: DWORD rgUnprotectedAttr*: PCRYPT_ATTRIBUTE + PCMSG_ENVELOPED_ENCODE_INFO* = ptr CMSG_ENVELOPED_ENCODE_INFO CMSG_RC2_AUX_INFO* {.pure.} = object cbSize*: DWORD dwBitLen*: DWORD + PCMSG_RC2_AUX_INFO* = ptr CMSG_RC2_AUX_INFO CMSG_SP3_COMPATIBLE_AUX_INFO* {.pure.} = object cbSize*: DWORD dwFlags*: DWORD + PCMSG_SP3_COMPATIBLE_AUX_INFO* = ptr CMSG_SP3_COMPATIBLE_AUX_INFO CMSG_RC4_AUX_INFO* {.pure.} = object cbSize*: DWORD dwBitLen*: DWORD + PCMSG_RC4_AUX_INFO* = ptr CMSG_RC4_AUX_INFO CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD SignedInfo*: CMSG_SIGNED_ENCODE_INFO EnvelopedInfo*: CMSG_ENVELOPED_ENCODE_INFO + PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO* = ptr CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO CMSG_HASHED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV_LEGACY HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer + PCMSG_HASHED_ENCODE_INFO* = ptr CMSG_HASHED_ENCODE_INFO CMSG_ENCRYPTED_ENCODE_INFO* {.pure.} = object cbSize*: DWORD ContentEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvEncryptionAuxInfo*: pointer + PCMSG_ENCRYPTED_ENCODE_INFO* = ptr CMSG_ENCRYPTED_ENCODE_INFO - PFN_CMSG_STREAM_OUTPUT* = proc (pvArg: pointer, pbData: ptr BYTE, cbData: DWORD, fFinal: WINBOOL): WINBOOL {.stdcall.} + PFN_CMSG_STREAM_OUTPUT* = proc( + pvArg: pointer, pbData: ptr BYTE, cbData: DWORD, fFinal: WINBOOL + ): WINBOOL {.stdcall.} CMSG_STREAM_INFO* {.pure.} = object cbContent*: DWORD pfnStreamOutput*: PFN_CMSG_STREAM_OUTPUT pvArg*: pointer + PCMSG_STREAM_INFO* = ptr CMSG_STREAM_INFO CMSG_SIGNER_INFO* {.pure.} = object dwVersion*: DWORD @@ -1193,6 +1410,7 @@ EncryptedHash*: CRYPT_DATA_BLOB AuthAttrs*: CRYPT_ATTRIBUTES UnauthAttrs*: CRYPT_ATTRIBUTES + PCMSG_SIGNER_INFO* = ptr CMSG_SIGNER_INFO CMSG_CMS_SIGNER_INFO* {.pure.} = object dwVersion*: DWORD @@ -1202,6 +1420,7 @@ EncryptedHash*: CRYPT_DATA_BLOB AuthAttrs*: CRYPT_ATTRIBUTES UnauthAttrs*: CRYPT_ATTRIBUTES + PCMSG_CMS_SIGNER_INFO* = ptr CMSG_CMS_SIGNER_INFO CMSG_ATTR* = CRYPT_ATTRIBUTES PCMSG_ATTR* = ptr CRYPT_ATTRIBUTES @@ -1210,16 +1429,19 @@ RecipientId*: CERT_ID KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB + PCMSG_KEY_TRANS_RECIPIENT_INFO* = ptr CMSG_KEY_TRANS_RECIPIENT_INFO CMSG_RECIPIENT_ENCRYPTED_KEY_INFO* {.pure.} = object RecipientId*: CERT_ID EncryptedKey*: CRYPT_DATA_BLOB Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE + PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO* = ptr CMSG_RECIPIENT_ENCRYPTED_KEY_INFO CMSG_KEY_AGREE_RECIPIENT_INFO_UNION1* {.pure, union.} = object OriginatorCertId*: CERT_ID OriginatorPublicKeyInfo*: CERT_PUBLIC_KEY_INFO + CMSG_KEY_AGREE_RECIPIENT_INFO* {.pure.} = object dwVersion*: DWORD dwOriginatorChoice*: DWORD @@ -1228,6 +1450,7 @@ KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER cRecipientEncryptedKeys*: DWORD rgpRecipientEncryptedKeys*: ptr PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO + PCMSG_KEY_AGREE_RECIPIENT_INFO* = ptr CMSG_KEY_AGREE_RECIPIENT_INFO CMSG_MAIL_LIST_RECIPIENT_INFO* {.pure.} = object dwVersion*: DWORD @@ -1236,14 +1459,17 @@ EncryptedKey*: CRYPT_DATA_BLOB Date*: FILETIME pOtherAttr*: PCRYPT_ATTRIBUTE_TYPE_VALUE + PCMSG_MAIL_LIST_RECIPIENT_INFO* = ptr CMSG_MAIL_LIST_RECIPIENT_INFO CMSG_CMS_RECIPIENT_INFO_UNION1* {.pure, union.} = object pKeyTrans*: PCMSG_KEY_TRANS_RECIPIENT_INFO pKeyAgree*: PCMSG_KEY_AGREE_RECIPIENT_INFO pMailList*: PCMSG_MAIL_LIST_RECIPIENT_INFO + CMSG_CMS_RECIPIENT_INFO* {.pure.} = object dwRecipientChoice*: DWORD union1*: CMSG_CMS_RECIPIENT_INFO_UNION1 + PCMSG_CMS_RECIPIENT_INFO* = ptr CMSG_CMS_RECIPIENT_INFO CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA* {.pure.} = object cbSize*: DWORD @@ -1251,29 +1477,35 @@ dwSignerIndex*: DWORD dwSignerType*: DWORD pvSigner*: pointer + PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA* = ptr CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA CMSG_CTRL_DECRYPT_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE + CMSG_CTRL_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD union1*: CMSG_CTRL_DECRYPT_PARA_UNION1 dwKeySpec*: DWORD dwRecipientIndex*: DWORD + PCMSG_CTRL_DECRYPT_PARA* = ptr CMSG_CTRL_DECRYPT_PARA CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE + CMSG_CTRL_KEY_TRANS_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD union1*: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA_UNION1 dwKeySpec*: DWORD pKeyTrans*: PCMSG_KEY_TRANS_RECIPIENT_INFO dwRecipientIndex*: DWORD + PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA* = ptr CMSG_CTRL_KEY_TRANS_DECRYPT_PARA CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE + CMSG_CTRL_KEY_AGREE_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD union1*: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA_UNION1 @@ -1282,10 +1514,12 @@ dwRecipientIndex*: DWORD dwRecipientEncryptedKeyIndex*: DWORD OriginatorPublicKey*: CRYPT_BIT_BLOB + PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA* = ptr CMSG_CTRL_KEY_AGREE_DECRYPT_PARA CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_UNION1* {.pure, union.} = object hKeyEncryptionKey*: HCRYPTKEY pvKeyEncryptionKey*: pointer + CMSG_CTRL_MAIL_LIST_DECRYPT_PARA* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV @@ -1293,22 +1527,26 @@ dwRecipientIndex*: DWORD dwKeyChoice*: DWORD union1*: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA_UNION1 + PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA* = ptr CMSG_CTRL_MAIL_LIST_DECRYPT_PARA CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA* {.pure.} = object cbSize*: DWORD dwSignerIndex*: DWORD blob*: CRYPT_DATA_BLOB + PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA* = ptr CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA* {.pure.} = object cbSize*: DWORD dwSignerIndex*: DWORD dwUnauthAttrIndex*: DWORD + PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA* = ptr CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA - PFN_CMSG_ALLOC* = proc (cb: int): pointer {.stdcall.} - PFN_CMSG_FREE* = proc (pv: pointer): void {.stdcall.} + PFN_CMSG_ALLOC* = proc(cb: int): pointer {.stdcall.} + PFN_CMSG_FREE* = proc(pv: pointer): void {.stdcall.} CMSG_CONTENT_ENCRYPT_INFO_UNION1* {.pure, union.} = object hContentEncryptKey*: HCRYPTKEY hCNGContentEncryptKey*: BCRYPT_KEY_HANDLE + CMSG_CONTENT_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD hCryptProv*: HCRYPTPROV_LEGACY @@ -1325,6 +1563,7 @@ pbCNGContentEncryptKeyObject*: ptr BYTE pbContentEncryptKey*: ptr BYTE cbContentEncryptKey*: DWORD + PCMSG_CONTENT_ENCRYPT_INFO* = ptr CMSG_CONTENT_ENCRYPT_INFO CMSG_KEY_TRANS_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD @@ -1332,14 +1571,17 @@ KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB dwFlags*: DWORD + PCMSG_KEY_TRANS_ENCRYPT_INFO* = ptr CMSG_KEY_TRANS_ENCRYPT_INFO CMSG_KEY_AGREE_KEY_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD EncryptedKey*: CRYPT_DATA_BLOB + PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO* = ptr CMSG_KEY_AGREE_KEY_ENCRYPT_INFO CMSG_KEY_AGREE_ENCRYPT_INFO_UNION1* {.pure, union.} = object OriginatorCertId*: CERT_ID OriginatorPublicKeyInfo*: CERT_PUBLIC_KEY_INFO + CMSG_KEY_AGREE_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD dwRecipientIndex*: DWORD @@ -1350,6 +1592,7 @@ cKeyAgreeKeyEncryptInfo*: DWORD rgpKeyAgreeKeyEncryptInfo*: ptr PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO dwFlags*: DWORD + PCMSG_KEY_AGREE_ENCRYPT_INFO* = ptr CMSG_KEY_AGREE_ENCRYPT_INFO CMSG_MAIL_LIST_ENCRYPT_INFO* {.pure.} = object cbSize*: DWORD @@ -1357,6 +1600,7 @@ KeyEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER EncryptedKey*: CRYPT_DATA_BLOB dwFlags*: DWORD + PCMSG_MAIL_LIST_ENCRYPT_INFO* = ptr CMSG_MAIL_LIST_ENCRYPT_INFO CMSG_CNG_CONTENT_DECRYPT_INFO* {.pure.} = object cbSize*: DWORD @@ -1368,6 +1612,7 @@ cbContentEncryptKey*: DWORD hCNGContentEncryptKey*: BCRYPT_KEY_HANDLE pbCNGContentEncryptKeyObject*: ptr BYTE + PCMSG_CNG_CONTENT_DECRYPT_INFO* = ptr CMSG_CNG_CONTENT_DECRYPT_INFO CERT_CONTEXT* {.pure.} = object dwCertEncodingType*: DWORD @@ -1375,6 +1620,7 @@ cbCertEncoded*: DWORD pCertInfo*: PCERT_INFO hCertStore*: HCERTSTORE + PCERT_CONTEXT* = ptr CERT_CONTEXT PCCERT_CONTEXT* = ptr CERT_CONTEXT CRL_CONTEXT* {.pure.} = object @@ -1383,6 +1629,7 @@ cbCrlEncoded*: DWORD pCrlInfo*: PCRL_INFO hCertStore*: HCERTSTORE + PCRL_CONTEXT* = ptr CRL_CONTEXT PCCRL_CONTEXT* = ptr CRL_CONTEXT CTL_CONTEXT* {.pure.} = object @@ -1394,6 +1641,7 @@ hCryptMsg*: HCRYPTMSG pbCtlContent*: ptr BYTE cbCtlContent*: DWORD + PCTL_CONTEXT* = ptr CTL_CONTEXT PCCTL_CONTEXT* = ptr CTL_CONTEXT CRYPT_KEY_PROV_PARAM* {.pure.} = object @@ -1401,6 +1649,7 @@ pbData*: ptr BYTE cbData*: DWORD dwFlags*: DWORD + PCRYPT_KEY_PROV_PARAM* = ptr CRYPT_KEY_PROV_PARAM CRYPT_KEY_PROV_INFO* {.pure.} = object pwszContainerName*: LPWSTR @@ -1410,45 +1659,56 @@ cProvParam*: DWORD rgProvParam*: PCRYPT_KEY_PROV_PARAM dwKeySpec*: DWORD + PCRYPT_KEY_PROV_INFO* = ptr CRYPT_KEY_PROV_INFO CERT_KEY_CONTEXT_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE + CERT_KEY_CONTEXT* {.pure.} = object cbSize*: DWORD union1*: CERT_KEY_CONTEXT_UNION1 dwKeySpec*: DWORD + PCERT_KEY_CONTEXT* = ptr CERT_KEY_CONTEXT ROOT_INFO_LUID* {.pure.} = object LowPart*: DWORD HighPart*: LONG + PROOT_INFO_LUID* = ptr ROOT_INFO_LUID CRYPT_SMART_CARD_ROOT_INFO* {.pure.} = object rgbCardID*: array[16, BYTE] luid*: ROOT_INFO_LUID + PCRYPT_SMART_CARD_ROOT_INFO* = ptr CRYPT_SMART_CARD_ROOT_INFO CERT_SYSTEM_STORE_RELOCATE_PARA_UNION1* {.pure, union.} = object hKeyBase*: HKEY pvBase*: pointer + CERT_SYSTEM_STORE_RELOCATE_PARA_UNION2* {.pure, union.} = object pvSystemStore*: pointer pszSystemStore*: LPCSTR pwszSystemStore*: LPCWSTR + CERT_SYSTEM_STORE_RELOCATE_PARA* {.pure.} = object union1*: CERT_SYSTEM_STORE_RELOCATE_PARA_UNION1 union2*: CERT_SYSTEM_STORE_RELOCATE_PARA_UNION2 + PCERT_SYSTEM_STORE_RELOCATE_PARA* = ptr CERT_SYSTEM_STORE_RELOCATE_PARA CERT_REGISTRY_STORE_CLIENT_GPT_PARA* {.pure.} = object hKeyBase*: HKEY pwszRegPath*: LPWSTR + PCERT_REGISTRY_STORE_CLIENT_GPT_PARA* = ptr CERT_REGISTRY_STORE_CLIENT_GPT_PARA CERT_REGISTRY_STORE_ROAMING_PARA* {.pure.} = object hKey*: HKEY pwszStoreDirectory*: LPWSTR + PCERT_REGISTRY_STORE_ROAMING_PARA* = ptr CERT_REGISTRY_STORE_ROAMING_PARA CERT_LDAP_STORE_OPENED_PARA* {.pure.} = object pvLdapSessionHandle*: pointer pwszLdapUrl*: LPCWSTR + PCERT_LDAP_STORE_OPENED_PARA* = ptr CERT_LDAP_STORE_OPENED_PARA CERT_STORE_PROV_INFO* {.pure.} = object cbSize*: DWORD @@ -1457,6 +1717,7 @@ hStoreProv*: HCERTSTOREPROV dwStoreProvFlags*: DWORD hStoreProvFuncAddr2*: HCRYPTOIDFUNCADDR + PCERT_STORE_PROV_INFO* = ptr CERT_STORE_PROV_INFO CERT_STORE_PROV_FIND_INFO* {.pure.} = object cbSize*: DWORD @@ -1464,39 +1725,48 @@ dwFindFlags*: DWORD dwFindType*: DWORD pvFindPara*: pointer + PCERT_STORE_PROV_FIND_INFO* = ptr CERT_STORE_PROV_FIND_INFO CCERT_STORE_PROV_FIND_INFO* = CERT_STORE_PROV_FIND_INFO PCCERT_STORE_PROV_FIND_INFO* = ptr CERT_STORE_PROV_FIND_INFO CRL_FIND_ISSUED_FOR_PARA* {.pure.} = object pSubjectCert*: PCCERT_CONTEXT pIssuerCert*: PCCERT_CONTEXT + PCRL_FIND_ISSUED_FOR_PARA* = ptr CRL_FIND_ISSUED_FOR_PARA CTL_ANY_SUBJECT_INFO* {.pure.} = object SubjectAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER SubjectIdentifier*: CRYPT_DATA_BLOB + PCTL_ANY_SUBJECT_INFO* = ptr CTL_ANY_SUBJECT_INFO CTL_FIND_USAGE_PARA* {.pure.} = object cbSize*: DWORD SubjectUsage*: CTL_USAGE ListIdentifier*: CRYPT_DATA_BLOB pSigner*: PCERT_INFO + PCTL_FIND_USAGE_PARA* = ptr CTL_FIND_USAGE_PARA CTL_FIND_SUBJECT_PARA* {.pure.} = object cbSize*: DWORD pUsagePara*: PCTL_FIND_USAGE_PARA dwSubjectType*: DWORD pvSubject*: pointer + PCTL_FIND_SUBJECT_PARA* = ptr CTL_FIND_SUBJECT_PARA - PFN_CERT_CREATE_CONTEXT_SORT_FUNC* = proc (cbTotalEncoded: DWORD, cbRemainEncoded: DWORD, cEntry: DWORD, pvSort: pointer): WINBOOL {.stdcall.} + PFN_CERT_CREATE_CONTEXT_SORT_FUNC* = proc( + cbTotalEncoded: DWORD, cbRemainEncoded: DWORD, cEntry: DWORD, pvSort: pointer + ): WINBOOL {.stdcall.} CERT_CREATE_CONTEXT_PARA* {.pure.} = object cbSize*: DWORD pfnFree*: PFN_CRYPT_FREE pvFree*: pointer pfnSort*: PFN_CERT_CREATE_CONTEXT_SORT_FUNC pvSort*: pointer + PCERT_CREATE_CONTEXT_PARA* = ptr CERT_CREATE_CONTEXT_PARA CERT_SYSTEM_STORE_INFO* {.pure.} = object cbSize*: DWORD + PCERT_SYSTEM_STORE_INFO* = ptr CERT_SYSTEM_STORE_INFO CERT_PHYSICAL_STORE_INFO* {.pure.} = object cbSize*: DWORD @@ -1506,6 +1776,7 @@ OpenParameters*: CRYPT_DATA_BLOB dwFlags*: DWORD dwPriority*: DWORD + PCERT_PHYSICAL_STORE_INFO* = ptr CERT_PHYSICAL_STORE_INFO CTL_VERIFY_USAGE_PARA* {.pure.} = object cbSize*: DWORD @@ -1514,6 +1785,7 @@ rghCtlStore*: ptr HCERTSTORE cSignerStore*: DWORD rghSignerStore*: ptr HCERTSTORE + PCTL_VERIFY_USAGE_PARA* = ptr CTL_VERIFY_USAGE_PARA CTL_VERIFY_USAGE_STATUS* {.pure.} = object cbSize*: DWORD @@ -1523,6 +1795,7 @@ dwCtlEntryIndex*: DWORD ppSigner*: ptr PCCERT_CONTEXT dwSignerIndex*: DWORD + PCTL_VERIFY_USAGE_STATUS* = ptr CTL_VERIFY_USAGE_STATUS CERT_REVOCATION_CRL_INFO* {.pure.} = object cbSize*: DWORD @@ -1530,6 +1803,7 @@ pDeltaCrlContext*: PCCRL_CONTEXT pCrlEntry*: PCRL_ENTRY fDeltaCrlEntry*: WINBOOL + PCERT_REVOCATION_CRL_INFO* = ptr CERT_REVOCATION_CRL_INFO CERT_REVOCATION_CHAIN_PARA* {.pure.} = object cbSize*: DWORD @@ -1540,6 +1814,7 @@ pftCurrentTime*: LPFILETIME pftCacheResync*: LPFILETIME cbMaxUrlRetrievalByteCount*: DWORD + PCERT_REVOCATION_CHAIN_PARA* = ptr CERT_REVOCATION_CHAIN_PARA CERT_REVOCATION_PARA* {.pure.} = object cbSize*: DWORD @@ -1555,6 +1830,7 @@ pCrlInfo*: PCERT_REVOCATION_CRL_INFO pftCacheResync*: LPFILETIME pChainPara*: PCERT_REVOCATION_CHAIN_PARA + PCERT_REVOCATION_PARA* = ptr CERT_REVOCATION_PARA CERT_REVOCATION_STATUS* {.pure.} = object cbSize*: DWORD @@ -1563,14 +1839,18 @@ dwReason*: DWORD fHasFreshnessTime*: WINBOOL dwFreshnessTime*: DWORD + PCERT_REVOCATION_STATUS* = ptr CERT_REVOCATION_STATUS CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO* {.pure.} = object CertSignHashCNGAlgPropData*: CRYPT_DATA_BLOB CertIssuerPubKeyBitLengthPropData*: CRYPT_DATA_BLOB - PCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO* = ptr CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO + + PCRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO* = + ptr CRYPT_VERIFY_CERT_SIGN_STRONG_PROPERTIES_INFO CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA* {.pure.} = object cOID*: DWORD rgpszOID*: ptr LPSTR + PCRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA* = ptr CRYPT_DEFAULT_CONTEXT_MULTI_OID_PARA CRYPT_SIGN_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD @@ -1590,8 +1870,14 @@ dwInnerContentType*: DWORD HashEncryptionAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashEncryptionAuxInfo*: pointer + PCRYPT_SIGN_MESSAGE_PARA* = ptr CRYPT_SIGN_MESSAGE_PARA - PFN_CRYPT_GET_SIGNER_CERTIFICATE* = proc (pvGetArg: pointer, dwCertEncodingType: DWORD, pSignerId: PCERT_INFO, hMsgCertStore: HCERTSTORE): PCCERT_CONTEXT {.stdcall.} + PFN_CRYPT_GET_SIGNER_CERTIFICATE* = proc( + pvGetArg: pointer, + dwCertEncodingType: DWORD, + pSignerId: PCERT_INFO, + hMsgCertStore: HCERTSTORE, + ): PCCERT_CONTEXT {.stdcall.} CRYPT_VERIFY_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgAndCertEncodingType*: DWORD @@ -1599,6 +1885,7 @@ pfnGetSignerCertificate*: PFN_CRYPT_GET_SIGNER_CERTIFICATE pvGetArg*: pointer pStrongSignPara*: PCCERT_STRONG_SIGN_PARA + PCRYPT_VERIFY_MESSAGE_PARA* = ptr CRYPT_VERIFY_MESSAGE_PARA CRYPT_ENCRYPT_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD @@ -1608,6 +1895,7 @@ pvEncryptionAuxInfo*: pointer dwFlags*: DWORD dwInnerContentType*: DWORD + PCRYPT_ENCRYPT_MESSAGE_PARA* = ptr CRYPT_ENCRYPT_MESSAGE_PARA CRYPT_DECRYPT_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD @@ -1615,6 +1903,7 @@ cCertStore*: DWORD rghCertStore*: ptr HCERTSTORE dwFlags*: DWORD + PCRYPT_DECRYPT_MESSAGE_PARA* = ptr CRYPT_DECRYPT_MESSAGE_PARA CRYPT_HASH_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD @@ -1622,10 +1911,12 @@ hCryptProv*: HCRYPTPROV_LEGACY HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer + PCRYPT_HASH_MESSAGE_PARA* = ptr CRYPT_HASH_MESSAGE_PARA CRYPT_KEY_SIGN_MESSAGE_PARA_UNION1* {.pure, union.} = object hCryptProv*: HCRYPTPROV hNCryptKey*: NCRYPT_KEY_HANDLE + CRYPT_KEY_SIGN_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgAndCertEncodingType*: DWORD @@ -1634,35 +1925,42 @@ HashAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER pvHashAuxInfo*: pointer PubKeyAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER + PCRYPT_KEY_SIGN_MESSAGE_PARA* = ptr CRYPT_KEY_SIGN_MESSAGE_PARA CRYPT_KEY_VERIFY_MESSAGE_PARA* {.pure.} = object cbSize*: DWORD dwMsgEncodingType*: DWORD hCryptProv*: HCRYPTPROV_LEGACY + PCRYPT_KEY_VERIFY_MESSAGE_PARA* = ptr CRYPT_KEY_VERIFY_MESSAGE_PARA CERT_CHAIN* {.pure.} = object cCerts*: DWORD certs*: PCERT_BLOB keyLocatorInfo*: CRYPT_KEY_PROV_INFO + PCERT_CHAIN* = ptr CERT_CHAIN CRYPT_BLOB_ARRAY* {.pure.} = object cBlob*: DWORD rgBlob*: PCRYPT_DATA_BLOB + PCRYPT_BLOB_ARRAY* = ptr CRYPT_BLOB_ARRAY CRYPT_CREDENTIALS* {.pure.} = object cbSize*: DWORD pszCredentialsOid*: LPCSTR pvCredentials*: LPVOID + PCRYPT_CREDENTIALS* = ptr CRYPT_CREDENTIALS CRYPT_PASSWORD_CREDENTIALSA* {.pure.} = object cbSize*: DWORD pszUsername*: LPSTR pszPassword*: LPSTR + PCRYPT_PASSWORD_CREDENTIALSA* = ptr CRYPT_PASSWORD_CREDENTIALSA CRYPT_PASSWORD_CREDENTIALSW* {.pure.} = object cbSize*: DWORD pszUsername*: LPWSTR pszPassword*: LPWSTR + PCRYPT_PASSWORD_CREDENTIALSW* = ptr CRYPT_PASSWORD_CREDENTIALSW CRYPTNET_URL_CACHE_PRE_FETCH_INFO* {.pure.} = object cbSize*: DWORD @@ -1672,11 +1970,13 @@ ThisUpdateTime*: FILETIME NextUpdateTime*: FILETIME PublishTime*: FILETIME + PCRYPTNET_URL_CACHE_PRE_FETCH_INFO* = ptr CRYPTNET_URL_CACHE_PRE_FETCH_INFO CRYPTNET_URL_CACHE_FLUSH_INFO* {.pure.} = object cbSize*: DWORD dwExemptSeconds*: DWORD ExpireTime*: FILETIME + PCRYPTNET_URL_CACHE_FLUSH_INFO* = ptr CRYPTNET_URL_CACHE_FLUSH_INFO CRYPTNET_URL_CACHE_RESPONSE_INFO* {.pure.} = object cbSize*: DWORD @@ -1686,6 +1986,7 @@ dwMaxAge*: DWORD pwszETag*: LPCWSTR dwProxyId*: DWORD + PCRYPTNET_URL_CACHE_RESPONSE_INFO* = ptr CRYPTNET_URL_CACHE_RESPONSE_INFO CRYPT_RETRIEVE_AUX_INFO* {.pure.} = object cbSize*: DWORD @@ -1698,25 +1999,36 @@ pftCacheResync*: LPFILETIME fProxyCacheRetrieval*: WINBOOL dwHttpStatusCode*: DWORD + PCRYPT_RETRIEVE_AUX_INFO* = ptr CRYPT_RETRIEVE_AUX_INFO - PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC* = proc (pvCompletion: LPVOID, dwCompletionCode: DWORD, pszUrl: LPCSTR, pszObjectOid: LPSTR, pvObject: LPVOID): VOID {.stdcall.} + PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC* = proc( + pvCompletion: LPVOID, + dwCompletionCode: DWORD, + pszUrl: LPCSTR, + pszObjectOid: LPSTR, + pvObject: LPVOID, + ): VOID {.stdcall.} CRYPT_ASYNC_RETRIEVAL_COMPLETION* {.pure.} = object pfnCompletion*: PFN_CRYPT_ASYNC_RETRIEVAL_COMPLETION_FUNC pvCompletion*: LPVOID + PCRYPT_ASYNC_RETRIEVAL_COMPLETION* = ptr CRYPT_ASYNC_RETRIEVAL_COMPLETION CRYPT_URL_ARRAY* {.pure.} = object cUrl*: DWORD rgwszUrl*: ptr LPWSTR + PCRYPT_URL_ARRAY* = ptr CRYPT_URL_ARRAY CRYPT_URL_INFO* {.pure.} = object cbSize*: DWORD dwSyncDeltaTime*: DWORD cGroup*: DWORD rgcGroupEntry*: ptr DWORD + PCRYPT_URL_INFO* = ptr CRYPT_URL_INFO CERT_CRL_CONTEXT_PAIR* {.pure.} = object pCertContext*: PCCERT_CONTEXT pCrlContext*: PCCRL_CONTEXT + PCERT_CRL_CONTEXT_PAIR* = ptr CERT_CRL_CONTEXT_PAIR PCCERT_CRL_CONTEXT_PAIR* = ptr CERT_CRL_CONTEXT_PAIR CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO* {.pure.} = object @@ -1727,6 +2039,7 @@ pMaxAgeTime*: LPFILETIME pChainPara*: PCERT_REVOCATION_CHAIN_PARA pDeltaCrlIndicator*: PCRYPT_INTEGER_BLOB + PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO* = ptr CRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO CERT_CHAIN_ENGINE_CONFIG* {.pure.} = object cbSize*: DWORD @@ -1742,10 +2055,12 @@ hExclusiveRoot*: HCERTSTORE hExclusiveTrustedPeople*: HCERTSTORE dwExclusiveFlags*: DWORD + PCERT_CHAIN_ENGINE_CONFIG* = ptr CERT_CHAIN_ENGINE_CONFIG CERT_TRUST_STATUS* {.pure.} = object dwErrorStatus*: DWORD dwInfoStatus*: DWORD + PCERT_TRUST_STATUS* = ptr CERT_TRUST_STATUS CERT_REVOCATION_INFO* {.pure.} = object cbSize*: DWORD @@ -1755,11 +2070,13 @@ fHasFreshnessTime*: WINBOOL dwFreshnessTime*: DWORD pCrlInfo*: PCERT_REVOCATION_CRL_INFO + PCERT_REVOCATION_INFO* = ptr CERT_REVOCATION_INFO CERT_TRUST_LIST_INFO* {.pure.} = object cbSize*: DWORD pCtlEntry*: PCTL_ENTRY pCtlContext*: PCCTL_CONTEXT + PCERT_TRUST_LIST_INFO* = ptr CERT_TRUST_LIST_INFO CERT_CHAIN_ELEMENT* {.pure.} = object cbSize*: DWORD @@ -1769,6 +2086,7 @@ pIssuanceUsage*: PCERT_ENHKEY_USAGE pApplicationUsage*: PCERT_ENHKEY_USAGE pwszExtendedErrorInfo*: LPCWSTR + PCERT_CHAIN_ELEMENT* = ptr CERT_CHAIN_ELEMENT PCCERT_CHAIN_ELEMENT* = ptr CERT_CHAIN_ELEMENT CERT_SIMPLE_CHAIN* {.pure.} = object @@ -1779,6 +2097,7 @@ pTrustListInfo*: PCERT_TRUST_LIST_INFO fHasRevocationFreshnessTime*: WINBOOL dwRevocationFreshnessTime*: DWORD + PCERT_SIMPLE_CHAIN* = ptr CERT_SIMPLE_CHAIN PCCERT_SIMPLE_CHAIN* = ptr CERT_SIMPLE_CHAIN PCCERT_CHAIN_CONTEXT* = ptr CERT_CHAIN_CONTEXT @@ -1793,14 +2112,17 @@ dwRevocationFreshnessTime*: DWORD dwCreateFlags*: DWORD ChainId*: GUID + PCERT_CHAIN_CONTEXT* = ptr CERT_CHAIN_CONTEXT CERT_USAGE_MATCH* {.pure.} = object dwType*: DWORD Usage*: CERT_ENHKEY_USAGE + PCERT_USAGE_MATCH* = ptr CERT_USAGE_MATCH CTL_USAGE_MATCH* {.pure.} = object dwType*: DWORD Usage*: CTL_USAGE + PCTL_USAGE_MATCH* = ptr CTL_USAGE_MATCH CERT_CHAIN_PARA* {.pure.} = object cbSize*: DWORD @@ -1812,13 +2134,16 @@ pftCacheResync*: LPFILETIME pStrongSignPara*: PCCERT_STRONG_SIGN_PARA dwStrongSignFlags*: DWORD + PCERT_CHAIN_PARA* = ptr CERT_CHAIN_PARA CRL_REVOCATION_INFO* {.pure.} = object pCrlEntry*: PCRL_ENTRY pCrlContext*: PCCRL_CONTEXT pCrlIssuerChain*: PCCERT_CHAIN_CONTEXT + PCRL_REVOCATION_INFO* = ptr CRL_REVOCATION_INFO - PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK* = proc (pCert: PCCERT_CONTEXT, pvFindArg: pointer): WINBOOL {.stdcall.} + PFN_CERT_CHAIN_FIND_BY_ISSUER_CALLBACK* = + proc(pCert: PCCERT_CONTEXT, pvFindArg: pointer): WINBOOL {.stdcall.} CERT_CHAIN_FIND_ISSUER_PARA* {.pure.} = object cbSize*: DWORD pszUsageIdentifier*: LPCSTR @@ -1830,6 +2155,7 @@ pvFindArg*: pointer pdwIssuerChainIndex*: ptr DWORD pdwIssuerElementIndex*: ptr DWORD + PCERT_CHAIN_FIND_ISSUER_PARA* = ptr CERT_CHAIN_FIND_ISSUER_PARA CERT_CHAIN_FIND_BY_ISSUER_PARA* = CERT_CHAIN_FIND_ISSUER_PARA PCERT_CHAIN_FIND_BY_ISSUER_PARA* = ptr CERT_CHAIN_FIND_ISSUER_PARA @@ -1837,6 +2163,7 @@ cbSize*: DWORD dwFlags*: DWORD pvExtraPolicyPara*: pointer + PCERT_CHAIN_POLICY_PARA* = ptr CERT_CHAIN_POLICY_PARA CERT_CHAIN_POLICY_STATUS* {.pure.} = object cbSize*: DWORD @@ -1844,45 +2171,57 @@ lChainIndex*: LONG lElementIndex*: LONG pvExtraPolicyStatus*: pointer + PCERT_CHAIN_POLICY_STATUS* = ptr CERT_CHAIN_POLICY_STATUS AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwRegPolicySettings*: DWORD pSignerInfo*: PCMSG_SIGNER_INFO - PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA + + PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA* = + ptr AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS* {.pure.} = object cbSize*: DWORD fCommercial*: WINBOOL - PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS* = ptr AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS + + PAUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS* = + ptr AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwRegPolicySettings*: DWORD fCommercial*: WINBOOL - PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA + + PAUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA* = + ptr AUTHENTICODE_TS_EXTRA_CERT_CHAIN_POLICY_PARA HTTPSPolicyCallbackData_UNION1* {.pure, union.} = object cbStruct*: DWORD cbSize*: DWORD + HTTPSPolicyCallbackData* {.pure.} = object union1*: HTTPSPolicyCallbackData_UNION1 dwAuthType*: DWORD fdwChecks*: DWORD pwszServerName*: ptr WCHAR + PHTTPSPolicyCallbackData* = ptr HTTPSPolicyCallbackData SSL_EXTRA_CERT_CHAIN_POLICY_PARA* = HTTPSPolicyCallbackData PSSL_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr HTTPSPolicyCallbackData EV_EXTRA_CERT_CHAIN_POLICY_PARA* {.pure.} = object cbSize*: DWORD dwRootProgramQualifierFlags*: DWORD + PEV_EXTRA_CERT_CHAIN_POLICY_PARA* = ptr EV_EXTRA_CERT_CHAIN_POLICY_PARA EV_EXTRA_CERT_CHAIN_POLICY_STATUS* {.pure.} = object cbSize*: DWORD dwQualifiers*: DWORD dwIssuanceUsageIndex*: DWORD + PEV_EXTRA_CERT_CHAIN_POLICY_STATUS* = ptr EV_EXTRA_CERT_CHAIN_POLICY_STATUS CERT_SERVER_OCSP_RESPONSE_CONTEXT* {.pure.} = object cbSize*: DWORD pbEncodedOcspResponse*: ptr BYTE cbEncodedOcspResponse*: DWORD + PCERT_SERVER_OCSP_RESPONSE_CONTEXT* = ptr CERT_SERVER_OCSP_RESPONSE_CONTEXT PCCERT_SERVER_OCSP_RESPONSE_CONTEXT* = ptr CERT_SERVER_OCSP_RESPONSE_CONTEXT CERT_SELECT_CHAIN_PARA* {.pure.} = object @@ -1891,12 +2230,14 @@ hAdditionalStore*: HCERTSTORE pChainPara*: PCERT_CHAIN_PARA dwFlags*: DWORD + PCERT_SELECT_CHAIN_PARA* = ptr CERT_SELECT_CHAIN_PARA PCCERT_SELECT_CHAIN_PARA* = ptr CERT_SELECT_CHAIN_PARA CERT_SELECT_CRITERIA* {.pure.} = object dwType*: DWORD cPara*: DWORD ppPara*: ptr pointer + PCERT_SELECT_CRITERIA* = ptr CERT_SELECT_CRITERIA PCCERT_SELECT_CRITERIA* = ptr CERT_SELECT_CRITERIA CRYPT_TIMESTAMP_REQUEST* {.pure.} = object @@ -1908,6 +2249,7 @@ fCertReq*: WINBOOL cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCRYPT_TIMESTAMP_REQUEST* = ptr CRYPT_TIMESTAMP_REQUEST CRYPT_TIMESTAMP_RESPONSE* {.pure.} = object dwStatus*: DWORD @@ -1915,11 +2257,13 @@ rgFreeText*: ptr LPWSTR FailureInfo*: CRYPT_BIT_BLOB ContentInfo*: CRYPT_DER_BLOB + PCRYPT_TIMESTAMP_RESPONSE* = ptr CRYPT_TIMESTAMP_RESPONSE CRYPT_TIMESTAMP_ACCURACY* {.pure.} = object dwSeconds*: DWORD dwMillis*: DWORD dwMicros*: DWORD + PCRYPT_TIMESTAMP_ACCURACY* = ptr CRYPT_TIMESTAMP_ACCURACY CRYPT_TIMESTAMP_INFO* {.pure.} = object dwVersion*: DWORD @@ -1934,11 +2278,13 @@ Tsa*: CRYPT_DER_BLOB cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCRYPT_TIMESTAMP_INFO* = ptr CRYPT_TIMESTAMP_INFO CRYPT_TIMESTAMP_CONTEXT* {.pure.} = object cbEncoded*: DWORD pbEncoded*: ptr BYTE pTimeStamp*: PCRYPT_TIMESTAMP_INFO + PCRYPT_TIMESTAMP_CONTEXT* = ptr CRYPT_TIMESTAMP_CONTEXT CRYPT_TIMESTAMP_PARA* {.pure.} = object pszTSAPolicyId*: LPCSTR @@ -1946,12 +2292,26 @@ Nonce*: CRYPT_INTEGER_BLOB cExtension*: DWORD rgExtension*: PCERT_EXTENSION + PCRYPT_TIMESTAMP_PARA* = ptr CRYPT_TIMESTAMP_PARA - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET* = proc (pPluginContext: LPVOID, pIdentifier: PCRYPT_DATA_BLOB, dwNameType: DWORD, pNameBlob: PCERT_NAME_BLOB, ppbContent: ptr PBYTE, pcbContent: ptr DWORD, ppwszPassword: ptr PCWSTR, ppIdentifier: ptr PCRYPT_DATA_BLOB): WINBOOL {.stdcall.} - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE* = proc (dwReason: DWORD, pPluginContext: LPVOID): void {.stdcall.} - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD* = proc (pPluginContext: LPVOID, pwszPassword: PCWSTR): void {.stdcall.} - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE* = proc (pPluginContext: LPVOID, pbData: PBYTE): void {.stdcall.} - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER* = proc (pPluginContext: LPVOID, pIdentifier: PCRYPT_DATA_BLOB): void {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET* = proc( + pPluginContext: LPVOID, + pIdentifier: PCRYPT_DATA_BLOB, + dwNameType: DWORD, + pNameBlob: PCERT_NAME_BLOB, + ppbContent: ptr PBYTE, + pcbContent: ptr DWORD, + ppwszPassword: ptr PCWSTR, + ppIdentifier: ptr PCRYPT_DATA_BLOB, + ): WINBOOL {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_RELEASE* = + proc(dwReason: DWORD, pPluginContext: LPVOID): void {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD* = + proc(pPluginContext: LPVOID, pwszPassword: PCWSTR): void {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE* = + proc(pPluginContext: LPVOID, pbData: PBYTE): void {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER* = + proc(pPluginContext: LPVOID, pIdentifier: PCRYPT_DATA_BLOB): void {.stdcall.} CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE* {.pure.} = object cbSize*: DWORD pfnGet*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_GET @@ -1959,13 +2319,16 @@ pfnFreePassword*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_PASSWORD pfnFree*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE pfnFreeIdentifier*: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FREE_IDENTIFIER + PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE* = ptr CRYPT_OBJECT_LOCATOR_PROVIDER_TABLE CRYPTPROTECT_PROMPTSTRUCT* {.pure.} = object cbSize*: DWORD dwPromptFlags*: DWORD hwndApp*: HWND szPrompt*: LPCWSTR + PCRYPTPROTECT_PROMPTSTRUCT* = ptr CRYPTPROTECT_PROMPTSTRUCT + const ALG_CLASS_ANY* = 0 ALG_CLASS_SIGNATURE* = 1 shl 13 @@ -2070,13 +2433,20 @@ CALG_TEK* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_TEK CALG_CYLINK_MEK* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_CYLINK_MEK CALG_SSL3_SHAMD5* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SSL3SHAMD5 - CALG_SSL3_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SSL3_MASTER - CALG_SCHANNEL_MASTER_HASH* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_MASTER_HASH - CALG_SCHANNEL_MAC_KEY* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_MAC_KEY - CALG_SCHANNEL_ENC_KEY* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_ENC_KEY - CALG_PCT1_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_PCT1_MASTER - CALG_SSL2_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SSL2_MASTER - CALG_TLS1_MASTER* = ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_TLS1_MASTER + CALG_SSL3_MASTER* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SSL3_MASTER + CALG_SCHANNEL_MASTER_HASH* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_MASTER_HASH + CALG_SCHANNEL_MAC_KEY* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_MAC_KEY + CALG_SCHANNEL_ENC_KEY* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SCHANNEL_ENC_KEY + CALG_PCT1_MASTER* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_PCT1_MASTER + CALG_SSL2_MASTER* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_SSL2_MASTER + CALG_TLS1_MASTER* = + ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNEL or ALG_SID_TLS1_MASTER CALG_RC5* = ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_RC5 CALG_HMAC* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_HMAC CALG_TLS1PRF* = ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_TLS1PRF @@ -2316,8 +2686,10 @@ MS_DEF_DSS_PROV_W* = "Microsoft Base DSS Cryptographic Provider" MS_DEF_DSS_DH_PROV_A* = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" MS_DEF_DSS_DH_PROV_W* = "Microsoft Base DSS and Diffie-Hellman Cryptographic Provider" - MS_ENH_DSS_DH_PROV_A* = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" - MS_ENH_DSS_DH_PROV_W* = "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" + MS_ENH_DSS_DH_PROV_A* = + "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" + MS_ENH_DSS_DH_PROV_W* = + "Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider" MS_DEF_DH_SCHANNEL_PROV_A* = "Microsoft DH SChannel Cryptographic Provider" MS_DEF_DH_SCHANNEL_PROV_W* = "Microsoft DH SChannel Cryptographic Provider" MS_SCARD_PROV_A* = "Microsoft Base Smart Card Crypto Provider" @@ -2688,13 +3060,15 @@ NCRYPT_PCP_PROVIDERHANDLE_PROPERTY* = "PCP_PROVIDERMHANDLE" NCRYPT_PCP_PLATFORMHANDLE_PROPERTY* = "PCP_PLATFORMHANDLE" NCRYPT_PCP_PLATFORM_BINDING_PCRMASK_PROPERTY* = "PCP_PLATFORM_BINDING_PCRMASK" - NCRYPT_PCP_PLATFORM_BINDING_PCRDIGESTLIST_PROPERTY* = "PCP_PLATFORM_BINDING_PCRDIGESTLIST" + NCRYPT_PCP_PLATFORM_BINDING_PCRDIGESTLIST_PROPERTY* = + "PCP_PLATFORM_BINDING_PCRDIGESTLIST" NCRYPT_PCP_PLATFORM_BINDING_PCRDIGEST_PROPERTY* = "PCP_PLATFORM_BINDING_PCRDIGEST" NCRYPT_PCP_KEY_USAGE_POLICY_PROPERTY* = "PCP_KEY_USAGE_POLICY" NCRYPT_PCP_TPM12_IDBINDING_PROPERTY* = "PCP_TPM12_IDBINDING" NCRYPT_PCP_TPM12_IDACTIVATION_PROPERTY* = "PCP_TPM12_IDACTIVATION" NCRYPT_PCP_KEYATTESTATION_PROPERTY* = "PCP_TPM12_KEYATTESTATION" - NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY* = "PCP_ALTERNATE_KEY_STORAGE_LOCATION" + NCRYPT_PCP_ALTERNATE_KEY_STORAGE_LOCATION_PROPERTY* = + "PCP_ALTERNATE_KEY_STORAGE_LOCATION" NCRYPT_TPM12_PROVIDER* = 0x00010000 NCRYPT_PCP_SIGNATURE_KEY* = 0x1 NCRYPT_PCP_ENCRYPTION_KEY* = 0x2 @@ -3002,13 +3376,15 @@ CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG* = 0x8 CRYPT_ENCODE_ALLOC_FLAG* = 0x8000 CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG* = CERT_RDN_ENABLE_T61_UNICODE_FLAG - CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG* = CERT_RDN_ENABLE_UTF8_UNICODE_FLAG + CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG* = + CERT_RDN_ENABLE_UTF8_UNICODE_FLAG CRYPT_UNICODE_NAME_ENCODE_FORCE_UTF8_UNICODE_FLAG* = CERT_RDN_FORCE_UTF8_UNICODE_FLAG CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG* = CERT_RDN_DISABLE_CHECK_TYPE_FLAG CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG* = 0x10000 CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG* = 0x20000 CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG* = 0x40000 - CRYPT_ENCODE_ENABLE_IA5CONVERSION_FLAG* = CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG or CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG + CRYPT_ENCODE_ENABLE_IA5CONVERSION_FLAG* = + CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG or CRYPT_ENCODE_ENABLE_UTF8PERCENT_FLAG CRYPT_DECODE_NOCOPY_FLAG* = 0x1 CRYPT_DECODE_TO_BE_SIGNED_FLAG* = 0x2 CRYPT_DECODE_SHARE_OID_STRING_FLAG* = 0x4 @@ -3017,7 +3393,8 @@ CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG* = CERT_RDN_DISABLE_IE4_UTF8_FLAG CRYPT_DECODE_ENABLE_PUNYCODE_FLAG* = 0x2000000 CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG* = 0x4000000 - CRYPT_DECODE_ENABLE_IA5CONVERSION_FLAG* = CRYPT_DECODE_ENABLE_PUNYCODE_FLAG or CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG + CRYPT_DECODE_ENABLE_IA5CONVERSION_FLAG* = + CRYPT_DECODE_ENABLE_PUNYCODE_FLAG or CRYPT_DECODE_ENABLE_UTF8PERCENT_FLAG CRYPT_ENCODE_DECODE_NONE* = 0 X509_CERT* = cast[LPCSTR](1) X509_CERT_TO_BE_SIGNED* = cast[LPCSTR](2) @@ -3309,9 +3686,9 @@ SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG* = 0x1 CERT_DSS_R_LEN* = 20 CERT_DSS_S_LEN* = 20 - CERT_DSS_SIGNATURE_LEN* = CERT_DSS_R_LEN+CERT_DSS_S_LEN + CERT_DSS_SIGNATURE_LEN* = CERT_DSS_R_LEN + CERT_DSS_S_LEN CERT_MAX_ASN_ENCODED_DSS_SIGNATURE_LEN* = 48 - CRYPT_X942_PUB_INFO_BYTE_LENGTH* = 512/8 + CRYPT_X942_PUB_INFO_BYTE_LENGTH* = 512 / 8 CRYPT_RC2_40BIT_VERSION* = 160 CRYPT_RC2_56BIT_VERSION* = 52 CRYPT_RC2_64BIT_VERSION* = 120 @@ -3655,7 +4032,8 @@ CMSG_OID_CAPI1_IMPORT_MAIL_LIST_FUNC* = CMSG_OID_IMPORT_MAIL_LIST_FUNC CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC* = "CryptMsgDllCNGImportKeyTrans" CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC* = "CryptMsgDllCNGImportKeyAgree" - CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC* = "CryptMsgDllCNGImportContentEncryptKey" + CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC* = + "CryptMsgDllCNGImportContentEncryptKey" CERT_KEY_PROV_HANDLE_PROP_ID* = 1 CERT_KEY_PROV_INFO_PROP_ID* = 2 CERT_SHA1_HASH_PROP_ID* = 3 @@ -3829,15 +4207,24 @@ CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID* = 7 CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID* = 8 CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID* = 9 - CERT_SYSTEM_STORE_CURRENT_USER* = CERT_SYSTEM_STORE_CURRENT_USER_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_LOCAL_MACHINE* = CERT_SYSTEM_STORE_LOCAL_MACHINE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_CURRENT_SERVICE* = CERT_SYSTEM_STORE_CURRENT_SERVICE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_SERVICES* = CERT_SYSTEM_STORE_SERVICES_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_USERS* = CERT_SYSTEM_STORE_USERS_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY* = CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY* = CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE* = CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT - CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH* = "Software\\Policies\\Microsoft\\SystemCertificates" + CERT_SYSTEM_STORE_CURRENT_USER* = + CERT_SYSTEM_STORE_CURRENT_USER_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_LOCAL_MACHINE* = + CERT_SYSTEM_STORE_LOCAL_MACHINE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_CURRENT_SERVICE* = + CERT_SYSTEM_STORE_CURRENT_SERVICE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_SERVICES* = + CERT_SYSTEM_STORE_SERVICES_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_USERS* = + CERT_SYSTEM_STORE_USERS_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY* = + CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY* = + CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE* = + CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID shl CERT_SYSTEM_STORE_LOCATION_SHIFT + CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH* = + "Software\\Policies\\Microsoft\\SystemCertificates" CERT_EFSBLOB_VALUE_NAME* = "EFSBlob" CERT_PROT_ROOT_FLAGS_VALUE_NAME* = "Flags" CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG* = 0x1 @@ -3858,13 +4245,17 @@ CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST* = 0x2 CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG* = 0x100 CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG* = 0x200 - CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH* = "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\OC Manager\\Subcomponents" + CERT_OCM_SUBCOMPONENTS_LOCAL_MACHINE_REGPATH* = + "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\OC Manager\\Subcomponents" CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME* = "RootAutoUpdate" CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME* = "DisableRootAutoUpdate" CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME* = "RootDirUrl" - CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH* = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH & "\\AuthRoot\\AutoUpdate" - CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH* = CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH - CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME* = CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME + CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH* = + CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH & "\\AuthRoot\\AutoUpdate" + CERT_AUTH_ROOT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH* = + CERT_AUTO_UPDATE_LOCAL_MACHINE_REGPATH + CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME* = + CERT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME* = "SyncDeltaTime" CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME* = "Flags" CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG* = 0x1 @@ -3877,8 +4268,10 @@ CERT_AUTH_ROOT_CAB_FILENAME* = "authrootstl.cab" CERT_AUTH_ROOT_SEQ_FILENAME* = "authrootseq.txt" CERT_AUTH_ROOT_CERT_EXT* = ".crt" - CERT_DISALLOWED_CERT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME* = "DisallowedCertSyncDeltaTime" - CERT_DISALLOWED_CERT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME* = "DisallowedCertLastSyncTime" + CERT_DISALLOWED_CERT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME* = + "DisallowedCertSyncDeltaTime" + CERT_DISALLOWED_CERT_AUTO_UPDATE_LAST_SYNC_TIME_VALUE_NAME* = + "DisallowedCertLastSyncTime" CERT_DISALLOWED_CERT_AUTO_UPDATE_ENCODED_CTL_VALUE_NAME* = "DisallowedCertEncodedCtl" CERT_DISALLOWED_CERT_CTL_FILENAME* = "disallowedcert.stl" CERT_DISALLOWED_CERT_CTL_FILENAME_A* = "disallowedcert.stl" @@ -3973,15 +4366,23 @@ CERT_FIND_HASH* = CERT_FIND_SHA1_HASH CERT_FIND_PROPERTY* = CERT_COMPARE_PROPERTY shl CERT_COMPARE_SHIFT CERT_FIND_PUBLIC_KEY* = CERT_COMPARE_PUBLIC_KEY shl CERT_COMPARE_SHIFT - CERT_FIND_SUBJECT_NAME* = CERT_COMPARE_NAME shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG - CERT_FIND_SUBJECT_ATTR* = CERT_COMPARE_ATTR shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG - CERT_FIND_ISSUER_NAME* = CERT_COMPARE_NAME shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG - CERT_FIND_ISSUER_ATTR* = CERT_COMPARE_ATTR shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG - CERT_FIND_SUBJECT_STR_A* = CERT_COMPARE_NAME_STR_A shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG - CERT_FIND_SUBJECT_STR_W* = CERT_COMPARE_NAME_STR_W shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG + CERT_FIND_SUBJECT_NAME* = + CERT_COMPARE_NAME shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG + CERT_FIND_SUBJECT_ATTR* = + CERT_COMPARE_ATTR shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG + CERT_FIND_ISSUER_NAME* = + CERT_COMPARE_NAME shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG + CERT_FIND_ISSUER_ATTR* = + CERT_COMPARE_ATTR shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG + CERT_FIND_SUBJECT_STR_A* = + CERT_COMPARE_NAME_STR_A shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG + CERT_FIND_SUBJECT_STR_W* = + CERT_COMPARE_NAME_STR_W shl CERT_COMPARE_SHIFT or CERT_INFO_SUBJECT_FLAG CERT_FIND_SUBJECT_STR* = CERT_FIND_SUBJECT_STR_W - CERT_FIND_ISSUER_STR_A* = CERT_COMPARE_NAME_STR_A shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG - CERT_FIND_ISSUER_STR_W* = CERT_COMPARE_NAME_STR_W shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG + CERT_FIND_ISSUER_STR_A* = + CERT_COMPARE_NAME_STR_A shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG + CERT_FIND_ISSUER_STR_W* = + CERT_COMPARE_NAME_STR_W shl CERT_COMPARE_SHIFT or CERT_INFO_ISSUER_FLAG CERT_FIND_ISSUER_STR* = CERT_FIND_ISSUER_STR_W CERT_FIND_KEY_SPEC* = CERT_COMPARE_KEY_SPEC shl CERT_COMPARE_SHIFT CERT_FIND_ENHKEY_USAGE* = CERT_COMPARE_ENHKEY_USAGE shl CERT_COMPARE_SHIFT @@ -3990,9 +4391,11 @@ CERT_FIND_ISSUER_OF* = CERT_COMPARE_ISSUER_OF shl CERT_COMPARE_SHIFT CERT_FIND_EXISTING* = CERT_COMPARE_EXISTING shl CERT_COMPARE_SHIFT CERT_FIND_CERT_ID* = CERT_COMPARE_CERT_ID shl CERT_COMPARE_SHIFT - CERT_FIND_CROSS_CERT_DIST_POINTS* = CERT_COMPARE_CROSS_CERT_DIST_POINTS shl CERT_COMPARE_SHIFT + CERT_FIND_CROSS_CERT_DIST_POINTS* = + CERT_COMPARE_CROSS_CERT_DIST_POINTS shl CERT_COMPARE_SHIFT CERT_FIND_PUBKEY_MD5_HASH* = CERT_COMPARE_PUBKEY_MD5_HASH shl CERT_COMPARE_SHIFT - CERT_FIND_SUBJECT_INFO_ACCESS* = CERT_COMPARE_SUBJECT_INFO_ACCESS shl CERT_COMPARE_SHIFT + CERT_FIND_SUBJECT_INFO_ACCESS* = + CERT_COMPARE_SUBJECT_INFO_ACCESS shl CERT_COMPARE_SHIFT CERT_FIND_HASH_STR* = CERT_COMPARE_HASH_STR shl CERT_COMPARE_SHIFT CERT_FIND_HAS_PRIVATE_KEY* = CERT_COMPARE_HAS_PRIVATE_KEY shl CERT_COMPARE_SHIFT CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG* = 0x1 @@ -4107,7 +4510,8 @@ CRYPT_VERIFY_CERT_SIGN_DISABLE_MD2_MD4_FLAG* = 0x1 CRYPT_VERIFY_CERT_SIGN_SET_STRONG_PROPERTIES_FLAG* = 0x2 CRYPT_VERIFY_CERT_SIGN_RETURN_STRONG_PROPERTIES_FLAG* = 0x4 - CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC* = "CryptDllExtractEncodedSignatureParameters" + CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC* = + "CryptDllExtractEncodedSignatureParameters" CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC* = "CryptDllSignAndEncodeHash" CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC* = "CryptDllVerifyEncodedSignature" CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG* = 0x1 @@ -4116,7 +4520,8 @@ CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID* = 2 CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC* = "CryptDllExportPublicKeyInfoEx" CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC* = "CryptDllExportPublicKeyInfoEx2" - CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC* = "CryptDllExportPublicKeyInfoFromBCryptKeyHandle" + CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC* = + "CryptDllExportPublicKeyInfoFromBCryptKeyHandle" CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC* = "CryptDllImportPublicKeyInfoEx" CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC* = "CryptDllImportPrivateKeyInfoEx" CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC* = "CryptDllExportPrivateKeyInfoEx" @@ -4192,20 +4597,34 @@ CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL* = 1 shl CERT_QUERY_CONTENT_SERIALIZED_CRL CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED* = 1 shl CERT_QUERY_CONTENT_PKCS7_SIGNED CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED* = 1 shl CERT_QUERY_CONTENT_PKCS7_UNSIGNED - CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED* = 1 shl CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED + CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED* = + 1 shl CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED CERT_QUERY_CONTENT_FLAG_PKCS10* = 1 shl CERT_QUERY_CONTENT_PKCS10 CERT_QUERY_CONTENT_FLAG_PFX* = 1 shl CERT_QUERY_CONTENT_PFX CERT_QUERY_CONTENT_FLAG_CERT_PAIR* = 1 shl CERT_QUERY_CONTENT_CERT_PAIR CERT_QUERY_CONTENT_FLAG_PFX_AND_LOAD* = 1 shl CERT_QUERY_CONTENT_PFX_AND_LOAD - CERT_QUERY_CONTENT_FLAG_ALL* = CERT_QUERY_CONTENT_FLAG_CERT or CERT_QUERY_CONTENT_FLAG_CTL or CERT_QUERY_CONTENT_FLAG_CRL or CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED or CERT_QUERY_CONTENT_FLAG_PKCS10 or CERT_QUERY_CONTENT_FLAG_PFX or CERT_QUERY_CONTENT_FLAG_CERT_PAIR - CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT* = CERT_QUERY_CONTENT_FLAG_CERT or CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED + CERT_QUERY_CONTENT_FLAG_ALL* = + CERT_QUERY_CONTENT_FLAG_CERT or CERT_QUERY_CONTENT_FLAG_CTL or + CERT_QUERY_CONTENT_FLAG_CRL or CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE or + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT or CERT_QUERY_CONTENT_FLAG_SERIALIZED_CTL or + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CRL or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED or + CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED_EMBED or + CERT_QUERY_CONTENT_FLAG_PKCS10 or CERT_QUERY_CONTENT_FLAG_PFX or + CERT_QUERY_CONTENT_FLAG_CERT_PAIR + CERT_QUERY_CONTENT_FLAG_ALL_ISSUER_CERT* = + CERT_QUERY_CONTENT_FLAG_CERT or CERT_QUERY_CONTENT_FLAG_SERIALIZED_STORE or + CERT_QUERY_CONTENT_FLAG_SERIALIZED_CERT or CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED or + CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED CERT_QUERY_FORMAT_BINARY* = 1 CERT_QUERY_FORMAT_BASE64_ENCODED* = 2 CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED* = 3 CERT_QUERY_FORMAT_FLAG_BINARY* = 1 shl CERT_QUERY_FORMAT_BINARY CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED* = 1 shl CERT_QUERY_FORMAT_BASE64_ENCODED - CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED* = 1 shl CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED - CERT_QUERY_FORMAT_FLAG_ALL* = CERT_QUERY_FORMAT_FLAG_BINARY or CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED or CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED + CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED* = + 1 shl CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED + CERT_QUERY_FORMAT_FLAG_ALL* = + CERT_QUERY_FORMAT_FLAG_BINARY or CERT_QUERY_FORMAT_FLAG_BASE64_ENCODED or + CERT_QUERY_FORMAT_FLAG_ASN_ASCII_HEX_ENCODED CREDENTIAL_OID_PASSWORD_CREDENTIALS_A* = cast[LPCSTR](1) CREDENTIAL_OID_PASSWORD_CREDENTIALS_W* = cast[LPCSTR](2) SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC* = "SchemeDllRetrieveEncodedObject" @@ -4276,7 +4695,8 @@ URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS* = cast[LPCSTR](12) URL_OID_CERTIFICATE_ONLY_OCSP* = cast[LPCSTR](13) TIME_VALID_OID_GET_OBJECT_FUNC* = "TimeValidDllGetObject" - CERT_CHAIN_CONFIG_REGPATH* = "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CertDllCreateCertificateChainEngine\\Config" + CERT_CHAIN_CONFIG_REGPATH* = + "Software\\Microsoft\\Cryptography\\OID\\EncodingType 0\\CertDllCreateCertificateChainEngine\\Config" TIME_VALID_OID_GET_CTL* = cast[LPCSTR](1) TIME_VALID_OID_GET_CRL* = cast[LPCSTR](2) TIME_VALID_OID_GET_CRL_FROM_CERT* = cast[LPCSTR](3) @@ -4295,21 +4715,26 @@ CRYPT_KEYID_SET_NEW_FLAG* = 0x2000 CRYPT_KEYID_ALLOC_FLAG* = 0x8000 CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME* = "MaxUrlRetrievalByteCount" - CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_DEFAULT* = 100*1024*1024 + CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_DEFAULT* = 100 * 1024 * 1024 CERT_CHAIN_CACHE_RESYNC_FILETIME_VALUE_NAME* = "ChainCacheResyncFiletime" - CERT_CHAIN_DISABLE_MANDATORY_BASIC_CONSTRAINTS_VALUE_NAME* = "DisableMandatoryBasicConstraints" + CERT_CHAIN_DISABLE_MANDATORY_BASIC_CONSTRAINTS_VALUE_NAME* = + "DisableMandatoryBasicConstraints" CERT_CHAIN_DISABLE_CA_NAME_CONSTRAINTS_VALUE_NAME* = "DisableCANameConstraints" - CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME* = "DisableUnsupportedCriticalExtensions" + CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME* = + "DisableUnsupportedCriticalExtensions" CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_VALUE_NAME* = "MaxAIAUrlCountInCert" CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT* = 5 - CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME* = "MaxAIAUrlRetrievalCountPerChain" + CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME* = + "MaxAIAUrlRetrievalCountPerChain" CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT* = 3 - CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME* = "MaxAIAUrlRetrievalByteCount" + CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME* = + "MaxAIAUrlRetrievalByteCount" CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT* = 100000 - CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME* = "MaxAIAUrlRetrievalCertCount" + CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME* = + "MaxAIAUrlRetrievalCertCount" CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT* = 10 CERT_CHAIN_OCSP_VALIDITY_SECONDS_VALUE_NAME* = "OcspValiditySeconds" - CERT_CHAIN_OCSP_VALIDITY_SECONDS_DEFAULT* = 12*60*60 + CERT_CHAIN_OCSP_VALIDITY_SECONDS_DEFAULT* = 12 * 60 * 60 CERT_CHAIN_ENABLE_WEAK_SIGNATURE_FLAGS_VALUE_NAME* = "EnableWeakSignatureFlags" CERT_CHAIN_ENABLE_MD2_MD4_FLAG* = 0x1 CERT_CHAIN_ENABLE_WEAK_RSA_ROOT_FLAG* = 0x2 @@ -4322,64 +4747,89 @@ CERT_CHAIN_WEAK_RSA_PUB_KEY_TIME_DEFAULT* = 0x01ca8a755c6e0000 CERT_CHAIN_WEAK_SIGNATURE_LOG_DIR_VALUE_NAME* = "WeakSignatureLogDir" CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME* = "SrvOcspRespMinValiditySeconds" - CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT* = 10*60 - CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = "SrvOcspRespUrlRetrievalTimeoutMilliseconds" - CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 15*1000 - CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME* = "SrvOcspRespMaxBeforeNextUpdateSeconds" - CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT* = 4*60*60 - CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME* = "SrvOcspRespMinBeforeNextUpdateSeconds" - CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT* = 2*60 - CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME* = "SrvOcspRespMinAfterNextUpdateSeconds" - CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT* = 1*60 - CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME* = "CryptnetMaxCachedOcspPerCrlCount" + CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_DEFAULT* = 10 * 60 + CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = + "SrvOcspRespUrlRetrievalTimeoutMilliseconds" + CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 15 * 1000 + CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME* = + "SrvOcspRespMaxBeforeNextUpdateSeconds" + CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT* = 4 * 60 * 60 + CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME* = + "SrvOcspRespMinBeforeNextUpdateSeconds" + CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_DEFAULT* = 2 * 60 + CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME* = + "SrvOcspRespMinAfterNextUpdateSeconds" + CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_DEFAULT* = 1 * 60 + CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME* = + "CryptnetMaxCachedOcspPerCrlCount" CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_DEFAULT* = 500 CRYPTNET_OCSP_AFTER_CRL_DISABLE* = 0xffffffff'i32 - CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME* = "CryptnetDefaultFlushExemptSeconds" - CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_DEFAULT* = 28*24*60*60 - CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinMaxAgeSeconds" - CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_DEFAULT* = 1*60*60 - CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME* = "CryptnetPreFetchMaxMaxAgeSeconds" - CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_DEFAULT* = 14*24*60*60 - CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinOcspValidityPeriodSeconds" - CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_DEFAULT* = 14*24*60*60 - CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME* = "CryptnetPreFetchAfterPublishPreFetchDivisor" + CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME* = + "CryptnetDefaultFlushExemptSeconds" + CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_DEFAULT* = 28 * 24 * 60 * 60 + CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME* = + "CryptnetPreFetchMinMaxAgeSeconds" + CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_DEFAULT* = 1 * 60 * 60 + CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME* = + "CryptnetPreFetchMaxMaxAgeSeconds" + CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_DEFAULT* = 14 * 24 * 60 * 60 + CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_VALUE_NAME* = + "CryptnetPreFetchMinOcspValidityPeriodSeconds" + CRYPTNET_PRE_FETCH_MIN_OCSP_VALIDITY_PERIOD_SECONDS_DEFAULT* = 14 * 24 * 60 * 60 + CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME* = + "CryptnetPreFetchAfterPublishPreFetchDivisor" CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_DEFAULT* = 10 - CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME* = "CryptnetPreFetchBeforeNextUpdatePreFetchDivisor" + CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME* = + "CryptnetPreFetchBeforeNextUpdatePreFetchDivisor" CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT* = 20 - CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinBeforeNextUpdatePreFetchSeconds" - CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 1*60*60 - CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME* = "CryptnetPreFetchValidityPeriodAfterNextUpdatePreFetchDivisor" + CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = + "CryptnetPreFetchMinBeforeNextUpdatePreFetchSeconds" + CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = + 1 * 60 * 60 + CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME* = + "CryptnetPreFetchValidityPeriodAfterNextUpdatePreFetchDivisor" CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT* = 10 - CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMaxAfterNextUpdatePreFetchPeriodSeconds" - CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 4*60*60 - CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchMinAfterNextUpdatePreFetchPeriodSeconds" - CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 30*60 - CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchAfterCurrentTimePreFetchPeriodSeconds" - CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 30*60 - CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME* = "CryptnetPreFetchTriggerPeriodSeconds" - CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_DEFAULT* = 10*60 + CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = + "CryptnetPreFetchMaxAfterNextUpdatePreFetchPeriodSeconds" + CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = + 4 * 60 * 60 + CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = + "CryptnetPreFetchMinAfterNextUpdatePreFetchPeriodSeconds" + CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 30 * 60 + CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME* = + "CryptnetPreFetchAfterCurrentTimePreFetchPeriodSeconds" + CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_DEFAULT* = 30 * 60 + CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME* = + "CryptnetPreFetchTriggerPeriodSeconds" + CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_DEFAULT* = 10 * 60 CRYPTNET_PRE_FETCH_TRIGGER_DISABLE* = 0xffffffff'i32 - CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME* = "CryptnetPreFetchScanAfterTriggerDelaySeconds" + CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME* = + "CryptnetPreFetchScanAfterTriggerDelaySeconds" CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_DEFAULT* = 30 - CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME* = "CryptnetPreFetchRetrievalTimeoutSeconds" - CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_DEFAULT* = 5*60 - CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = "ChainUrlRetrievalTimeoutMilliseconds" - CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 15*1000 - CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = "ChainRevAccumulativeUrlRetrievalTimeoutMilliseconds" - CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 20*1000 + CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME* = + "CryptnetPreFetchRetrievalTimeoutSeconds" + CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_DEFAULT* = 5 * 60 + CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = + "ChainUrlRetrievalTimeoutMilliseconds" + CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 15 * 1000 + CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME* = + "ChainRevAccumulativeUrlRetrievalTimeoutMilliseconds" + CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_DEFAULT* = 20 * 1000 CERT_RETR_BEHAVIOR_INET_AUTH_VALUE_NAME* = "EnableInetUnknownAuth" CERT_RETR_BEHAVIOR_INET_STATUS_VALUE_NAME* = "EnableInetLocal" CERT_RETR_BEHAVIOR_FILE_VALUE_NAME* = "AllowFileUrlScheme" CERT_RETR_BEHAVIOR_LDAP_VALUE_NAME* = "DisableLDAPSignAndEncrypt" - CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME* = "CryptnetCachedOcspSwitchToCrlCount" + CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME* = + "CryptnetCachedOcspSwitchToCrlCount" CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_DEFAULT* = 50 CRYPTNET_CRL_BEFORE_OCSP_ENABLE* = 0xffffffff'i32 CERT_CHAIN_DISABLE_AIA_URL_RETRIEVAL_VALUE_NAME* = "DisableAIAUrlRetrieval" CERT_CHAIN_OPTIONS_VALUE_NAME* = "Options" CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL* = 0x2 CERT_CHAIN_OPTION_ENABLE_SIA_URL_RETRIEVAL* = 0x4 - CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME* = "CrossCertDownloadIntervalHours" - CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_DEFAULT* = 24*7 + CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME* = + "CrossCertDownloadIntervalHours" + CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_DEFAULT* = 24 * 7 CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_VALUE_NAME* = "CRLValidityExtensionPeriod" CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_DEFAULT* = 12 HCCE_LOCAL_MACHINE* = HCERTCHAINENGINE 0x1 @@ -4459,7 +4909,10 @@ CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG* = 0x2 CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG* = 0x4 CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG* = 0x8 - CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS* = CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG or CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG or CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG + CERT_CHAIN_POLICY_IGNORE_ALL_NOT_TIME_VALID_FLAGS* = + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG or + CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG or + CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG* = 0x10 CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG* = 0x20 CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG* = 0x40 @@ -4468,12 +4921,17 @@ CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG* = 0x200 CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG* = 0x400 CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG* = 0x800 - CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS* = CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG or CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG or CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG or CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG + CERT_CHAIN_POLICY_IGNORE_ALL_REV_UNKNOWN_FLAGS* = + CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG or + CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG or + CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG or + CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG* = 0x1000 CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG* = 0x2000 CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG* = 0x4000 CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG* = 0x8000 - CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC* = "CertDllVerifyCertificateChainPolicy" + CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC* = + "CertDllVerifyCertificateChainPolicy" CERT_CHAIN_POLICY_BASE* = cast[LPCSTR](1) CERT_CHAIN_POLICY_AUTHENTICODE* = cast[LPCSTR](2) CERT_CHAIN_POLICY_AUTHENTICODE_TS* = cast[LPCSTR](3) @@ -4520,7 +4978,9 @@ PKCS12_NO_PERSIST_KEY* = 0x8000 PKCS12_IMPORT_RESERVED_MASK* = 0xffff0000'i32 PKCS12_INCLUDE_EXTENDED_PROPERTIES* = 0x10 - PKCS12_OBJECT_LOCATOR_ALL_IMPORT_FLAGS* = PKCS12_ALWAYS_CNG_KSP or PKCS12_NO_PERSIST_KEY or PKCS12_IMPORT_SILENT or PKCS12_INCLUDE_EXTENDED_PROPERTIES + PKCS12_OBJECT_LOCATOR_ALL_IMPORT_FLAGS* = + PKCS12_ALWAYS_CNG_KSP or PKCS12_NO_PERSIST_KEY or PKCS12_IMPORT_SILENT or + PKCS12_INCLUDE_EXTENDED_PROPERTIES REPORT_NO_PRIVATE_KEY* = 0x1 REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY* = 0x2 EXPORT_PRIVATE_KEYS* = 0x4 @@ -4545,7 +5005,7 @@ CERT_SELECT_BY_PUBLIC_KEY* = 10 CERT_SELECT_BY_TLS_SIGNATURES* = 11 CERT_SELECT_LAST* = CERT_SELECT_BY_TLS_SIGNATURES - CERT_SELECT_MAX* = CERT_SELECT_LAST*3 + CERT_SELECT_MAX* = CERT_SELECT_LAST * 3 CERT_SELECT_ALLOW_EXPIRED* = 0x1 CERT_SELECT_TRUSTED_ROOT* = 0x2 CERT_SELECT_DISALLOW_SELFSIGNED* = 0x4 @@ -4578,7 +5038,8 @@ CRYPT_OBJECT_LOCATOR_LAST_RESERVED_USER_NAME_TYPE* = 0x0000ffff SSL_OBJECT_LOCATOR_PFX_FUNC* = "SslObjectLocatorInitializePfx" SSL_OBJECT_LOCATOR_ISSUER_LIST_FUNC* = "SslObjectLocatorInitializeIssuerList" - SSL_OBJECT_LOCATOR_CERT_VALIDATION_CONFIG_FUNC* = "SslObjectLocatorInitializeCertValidationConfig" + SSL_OBJECT_LOCATOR_CERT_VALIDATION_CONFIG_FUNC* = + "SslObjectLocatorInitializeCertValidationConfig" CRYPT_OBJECT_LOCATOR_RELEASE_SYSTEM_SHUTDOWN* = 1 CRYPT_OBJECT_LOCATOR_RELEASE_SERVICE_STOP* = 2 CRYPT_OBJECT_LOCATOR_RELEASE_PROCESS_EXIT* = 3 @@ -4606,8 +5067,10 @@ CRYPTPROTECTMEMORY_SAME_PROCESS* = 0x0 CRYPTPROTECTMEMORY_CROSS_PROCESS* = 0x1 CRYPTPROTECTMEMORY_SAME_LOGON* = 0x2 - MS_ENH_RSA_AES_PROV_XP_A* = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" - MS_ENH_RSA_AES_PROV_XP_W* = "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" + MS_ENH_RSA_AES_PROV_XP_A* = + "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" + MS_ENH_RSA_AES_PROV_XP_W* = + "Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype)" BCRYPT_CIPHER_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_HASH_INTERFACE_VERSION_1* = [1'u16, 0] BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE_VERSION_1* = [1'u16, 0] @@ -4619,79 +5082,387 @@ CTL_FIND_NO_SIGNER_PTR* = cast[PCERT_INFO](-1) HCCE_CURRENT_USER* = HCERTCHAINENGINE(0) CERT_EFSBLOB_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\EFS" - CERT_PROT_ROOT_FLAGS_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\Root\\ProtectedRoots" - CERT_PROT_ROOT_PEER_USAGES_DEFAULT_A* = szOID_PKIX_KP_CLIENT_AUTH & "\0" & szOID_PKIX_KP_EMAIL_PROTECTION & "\0" & szOID_KP_EFS & "\0" - CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\TrustedPublisher\\Safer" - CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH* = CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH & "\\TrustedPublisher\\Safer" - CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\AuthRoot" - CERT_GROUP_POLICY_CHAIN_CONFIG_REGPATH* = CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\ChainEngine\\Config" + CERT_PROT_ROOT_FLAGS_REGPATH* = + CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\Root\\ProtectedRoots" + CERT_PROT_ROOT_PEER_USAGES_DEFAULT_A* = + szOID_PKIX_KP_CLIENT_AUTH & "\0" & szOID_PKIX_KP_EMAIL_PROTECTION & "\0" & + szOID_KP_EFS & "\0" + CERT_TRUST_PUB_SAFER_GROUP_POLICY_REGPATH* = + CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\TrustedPublisher\\Safer" + CERT_TRUST_PUB_SAFER_LOCAL_MACHINE_REGPATH* = + CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH & "\\TrustedPublisher\\Safer" + CERT_DISABLE_ROOT_AUTO_UPDATE_REGPATH* = + CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\AuthRoot" + CERT_GROUP_POLICY_CHAIN_CONFIG_REGPATH* = + CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH & "\\ChainEngine\\Config" CERT_RETRIEVE_BIOMETRIC_PICTURE_TYPE* = cast[LPCSTR](1000) CERT_RETRIEVE_BIOMETRIC_SIGNATURE_TYPE* = cast[LPCSTR](1001) type - PFN_NCRYPT_ALLOC* = proc (cbSize: SIZE_T): LPVOID {.stdcall.} - PFN_NCRYPT_FREE* = proc (pv: LPVOID): VOID {.stdcall.} - PFN_CRYPT_ENUM_OID_FUNC* = proc (dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, cValue: DWORD, rgdwValueType: ptr DWORD, rgpwszValueName: ptr LPCWSTR, rgpbValueData: ptr ptr BYTE, rgcbValueData: ptr DWORD, pvArg: pointer): WINBOOL {.stdcall.} - PFN_CRYPT_ENUM_OID_INFO* = proc (pInfo: PCCRYPT_OID_INFO, pvArg: pointer): WINBOOL {.stdcall.} - PFN_CMSG_GEN_ENCRYPT_KEY* = proc (phCryptProv: ptr HCRYPTPROV, paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER, pvEncryptAuxInfo: PVOID, pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, pfnAlloc: PFN_CMSG_ALLOC, phEncryptKey: ptr HCRYPTKEY, ppbEncryptParameters: ptr PBYTE, pcbEncryptParameters: PDWORD): WINBOOL {.stdcall.} - PFN_CMSG_EXPORT_ENCRYPT_KEY* = proc (hCryptProv: HCRYPTPROV, hEncryptKey: HCRYPTKEY, pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, pbData: PBYTE, pcbData: PDWORD): WINBOOL {.stdcall.} - PFN_CMSG_IMPORT_ENCRYPT_KEY* = proc (hCryptProv: HCRYPTPROV, dwKeySpec: DWORD, paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER, paiPubKey: PCRYPT_ALGORITHM_IDENTIFIER, pbEncodedKey: PBYTE, cbEncodedKey: DWORD, phEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} - PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CMSG_EXPORT_KEY_TRANS* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, pKeyTransEncodeInfo: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, pKeyTransEncryptInfo: PCMSG_KEY_TRANS_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CMSG_EXPORT_KEY_AGREE* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, pKeyAgreeEncodeInfo: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, pKeyAgreeEncryptInfo: PCMSG_KEY_AGREE_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CMSG_EXPORT_MAIL_LIST* = proc (pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, pMailListEncodeInfo: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, pMailListEncryptInfo: PCMSG_MAIL_LIST_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CMSG_IMPORT_KEY_TRANS* = proc (pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer, phContentEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} - PFN_CMSG_IMPORT_KEY_AGREE* = proc (pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer, phContentEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} - PFN_CMSG_IMPORT_MAIL_LIST* = proc (pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pMailListDecryptPara: PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer, phContentEncryptKey: ptr HCRYPTKEY): WINBOOL {.stdcall.} - PFN_CMSG_CNG_IMPORT_KEY_TRANS* = proc (pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CMSG_CNG_IMPORT_KEY_AGREE* = proc (pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY* = proc (pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.stdcall.} - PFN_CERT_DLL_OPEN_STORE_PROV_FUNC* = proc (lpszStoreProvider: LPCSTR, dwEncodingType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, dwFlags: DWORD, pvPara: pointer, hCertStore: HCERTSTORE, pStoreProvInfo: PCERT_STORE_PROV_INFO): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_CLOSE* = proc (hStoreProv: HCERTSTOREPROV, dwFlags: DWORD): void {.stdcall.} - PFN_CERT_STORE_PROV_READ_CERT* = proc (hStoreProv: HCERTSTOREPROV, pStoreCertContext: PCCERT_CONTEXT, dwFlags: DWORD, ppProvCertContext: ptr PCCERT_CONTEXT): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_WRITE_CERT* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_DELETE_CERT* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_SET_CERT_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_READ_CRL* = proc (hStoreProv: HCERTSTOREPROV, pStoreCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, ppProvCrlContext: ptr PCCRL_CONTEXT): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_WRITE_CRL* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_DELETE_CRL* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_SET_CRL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_READ_CTL* = proc (hStoreProv: HCERTSTOREPROV, pStoreCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, ppProvCtlContext: ptr PCCTL_CONTEXT): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_WRITE_CTL* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_DELETE_CTL* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_SET_CTL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_CONTROL* = proc (hStoreProv: HCERTSTOREPROV, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_FIND_CERT* = proc (hStoreProv: HCERTSTOREPROV, pFindInfo: PCCERT_STORE_PROV_FIND_INFO, pPrevCertContext: PCCERT_CONTEXT, dwFlags: DWORD, ppvStoreProvFindInfo: ptr pointer, ppProvCertContext: ptr PCCERT_CONTEXT): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_FREE_FIND_CERT* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, pvStoreProvFindInfo: pointer, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_GET_CERT_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_FIND_CRL* = proc (hStoreProv: HCERTSTOREPROV, pFindInfo: PCCERT_STORE_PROV_FIND_INFO, pPrevCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, ppvStoreProvFindInfo: ptr pointer, ppProvCrlContext: ptr PCCRL_CONTEXT): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_FREE_FIND_CRL* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, pvStoreProvFindInfo: pointer, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_GET_CRL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_FIND_CTL* = proc (hStoreProv: HCERTSTOREPROV, pFindInfo: PCCERT_STORE_PROV_FIND_INFO, pPrevCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, ppvStoreProvFindInfo: ptr pointer, ppProvCtlContext: ptr PCCTL_CONTEXT): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_FREE_FIND_CTL* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, pvStoreProvFindInfo: pointer, dwFlags: DWORD): WINBOOL {.stdcall.} - PFN_CERT_STORE_PROV_GET_CTL_PROPERTY* = proc (hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.stdcall.} - PFN_CERT_ENUM_SYSTEM_STORE_LOCATION* = proc (pwszStoreLocation: LPCWSTR, dwFlags: DWORD, pvReserved: pointer, pvArg: pointer): WINBOOL {.stdcall.} - PFN_CERT_ENUM_SYSTEM_STORE* = proc (pvSystemStore: pointer, dwFlags: DWORD, pStoreInfo: PCERT_SYSTEM_STORE_INFO, pvReserved: pointer, pvArg: pointer): WINBOOL {.stdcall.} - PFN_CERT_ENUM_PHYSICAL_STORE* = proc (pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR, pStoreInfo: PCERT_PHYSICAL_STORE_INFO, pvReserved: pointer, pvArg: pointer): WINBOOL {.stdcall.} - PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC* = proc (dwCertEncodingType: DWORD, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, ppvDecodedSignPara: ptr pointer, ppwszCNGHashAlgid: ptr LPWSTR): WINBOOL {.stdcall.} - PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC* = proc (hKey: NCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvDecodedSignPara: pointer, pwszCNGPubKeyAlgid: LPCWSTR, pwszCNGHashAlgid: LPCWSTR, pbComputedHash: ptr BYTE, cbComputedHash: DWORD, pbSignature: ptr BYTE, pcbSignature: ptr DWORD): WINBOOL {.stdcall.} - PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC* = proc (dwCertEncodingType: DWORD, pPubKeyInfo: PCERT_PUBLIC_KEY_INFO, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvDecodedSignPara: pointer, pwszCNGPubKeyAlgid: LPCWSTR, pwszCNGHashAlgid: LPCWSTR, pbComputedHash: ptr BYTE, cbComputedHash: DWORD, pbSignature: ptr BYTE, cbSignature: DWORD): WINBOOL {.stdcall.} - PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC* = proc (hNCryptKey: NCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.stdcall.} - PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC* = proc (hBCryptKey: BCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.stdcall.} - PFN_IMPORT_PRIV_KEY_FUNC* = proc (hCryptProv: HCRYPTPROV, pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, dwFlags: DWORD, pvAuxInfo: pointer): WINBOOL {.stdcall.} - PFN_EXPORT_PRIV_KEY_FUNC* = proc (hCryptProv: HCRYPTPROV, dwKeySpec: DWORD, pszPrivateKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, pcbPrivateKeyInfo: ptr DWORD): WINBOOL {.stdcall.} - PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC* = proc (dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, dwFlags: DWORD, pvAuxInfo: pointer, phKey: ptr BCRYPT_KEY_HANDLE): WINBOOL {.stdcall.} - PFN_CRYPT_ASYNC_PARAM_FREE_FUNC* = proc (pszParamOid: LPSTR, pvParam: LPVOID): VOID {.stdcall.} - PFN_FREE_ENCODED_OBJECT_FUNC* = proc (pszObjectOid: LPCSTR, pObject: PCRYPT_BLOB_ARRAY, pvFreeContext: LPVOID): VOID {.stdcall.} - PFN_CRYPT_CANCEL_RETRIEVAL* = proc (dwFlags: DWORD, pvArg: pointer): WINBOOL {.stdcall.} - PFN_CANCEL_ASYNC_RETRIEVAL_FUNC* = proc (hAsyncRetrieve: HCRYPTASYNC): WINBOOL {.stdcall.} - PFN_CRYPT_ENUM_KEYID_PROP* = proc (pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwFlags: DWORD, pvReserved: pointer, pvArg: pointer, cProp: DWORD, rgdwPropId: ptr DWORD, rgpvData: ptr pointer, rgcbData: ptr DWORD): WINBOOL {.stdcall.} - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH* = proc (pContext: LPVOID, rgIdentifierOrNameList: ptr PCERT_NAME_BLOB, dwIdentifierOrNameListCount: DWORD): WINBOOL {.stdcall.} - PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE* = proc (pfnFlush: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH, pContext: LPVOID, pdwExpectedObjectCount: ptr DWORD, ppFuncTable: ptr PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE, ppPluginContext: ptr pointer): WINBOOL {.stdcall.} + PFN_NCRYPT_ALLOC* = proc(cbSize: SIZE_T): LPVOID {.stdcall.} + PFN_NCRYPT_FREE* = proc(pv: LPVOID): VOID {.stdcall.} + PFN_CRYPT_ENUM_OID_FUNC* = proc( + dwEncodingType: DWORD, + pszFuncName: LPCSTR, + pszOID: LPCSTR, + cValue: DWORD, + rgdwValueType: ptr DWORD, + rgpwszValueName: ptr LPCWSTR, + rgpbValueData: ptr ptr BYTE, + rgcbValueData: ptr DWORD, + pvArg: pointer, + ): WINBOOL {.stdcall.} + PFN_CRYPT_ENUM_OID_INFO* = + proc(pInfo: PCCRYPT_OID_INFO, pvArg: pointer): WINBOOL {.stdcall.} + PFN_CMSG_GEN_ENCRYPT_KEY* = proc( + phCryptProv: ptr HCRYPTPROV, + paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER, + pvEncryptAuxInfo: PVOID, + pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, + pfnAlloc: PFN_CMSG_ALLOC, + phEncryptKey: ptr HCRYPTKEY, + ppbEncryptParameters: ptr PBYTE, + pcbEncryptParameters: PDWORD, + ): WINBOOL {.stdcall.} + PFN_CMSG_EXPORT_ENCRYPT_KEY* = proc( + hCryptProv: HCRYPTPROV, + hEncryptKey: HCRYPTKEY, + pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, + pbData: PBYTE, + pcbData: PDWORD, + ): WINBOOL {.stdcall.} + PFN_CMSG_IMPORT_ENCRYPT_KEY* = proc( + hCryptProv: HCRYPTPROV, + dwKeySpec: DWORD, + paiEncrypt: PCRYPT_ALGORITHM_IDENTIFIER, + paiPubKey: PCRYPT_ALGORITHM_IDENTIFIER, + pbEncodedKey: PBYTE, + cbEncodedKey: DWORD, + phEncryptKey: ptr HCRYPTKEY, + ): WINBOOL {.stdcall.} + PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY* = proc( + pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, dwFlags: DWORD, pvReserved: pointer + ): WINBOOL {.stdcall.} + PFN_CMSG_EXPORT_KEY_TRANS* = proc( + pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, + pKeyTransEncodeInfo: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, + pKeyTransEncryptInfo: PCMSG_KEY_TRANS_ENCRYPT_INFO, + dwFlags: DWORD, + pvReserved: pointer, + ): WINBOOL {.stdcall.} + PFN_CMSG_EXPORT_KEY_AGREE* = proc( + pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, + pKeyAgreeEncodeInfo: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, + pKeyAgreeEncryptInfo: PCMSG_KEY_AGREE_ENCRYPT_INFO, + dwFlags: DWORD, + pvReserved: pointer, + ): WINBOOL {.stdcall.} + PFN_CMSG_EXPORT_MAIL_LIST* = proc( + pContentEncryptInfo: PCMSG_CONTENT_ENCRYPT_INFO, + pMailListEncodeInfo: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, + pMailListEncryptInfo: PCMSG_MAIL_LIST_ENCRYPT_INFO, + dwFlags: DWORD, + pvReserved: pointer, + ): WINBOOL {.stdcall.} + PFN_CMSG_IMPORT_KEY_TRANS* = proc( + pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, + dwFlags: DWORD, + pvReserved: pointer, + phContentEncryptKey: ptr HCRYPTKEY, + ): WINBOOL {.stdcall.} + PFN_CMSG_IMPORT_KEY_AGREE* = proc( + pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, + dwFlags: DWORD, + pvReserved: pointer, + phContentEncryptKey: ptr HCRYPTKEY, + ): WINBOOL {.stdcall.} + PFN_CMSG_IMPORT_MAIL_LIST* = proc( + pContentEncryptionAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pMailListDecryptPara: PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA, + dwFlags: DWORD, + pvReserved: pointer, + phContentEncryptKey: ptr HCRYPTKEY, + ): WINBOOL {.stdcall.} + PFN_CMSG_CNG_IMPORT_KEY_TRANS* = proc( + pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, + pKeyTransDecryptPara: PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, + dwFlags: DWORD, + pvReserved: pointer, + ): WINBOOL {.stdcall.} + PFN_CMSG_CNG_IMPORT_KEY_AGREE* = proc( + pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, + pKeyAgreeDecryptPara: PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, + dwFlags: DWORD, + pvReserved: pointer, + ): WINBOOL {.stdcall.} + PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY* = proc( + pCNGContentDecryptInfo: PCMSG_CNG_CONTENT_DECRYPT_INFO, + dwFlags: DWORD, + pvReserved: pointer, + ): WINBOOL {.stdcall.} + PFN_CERT_DLL_OPEN_STORE_PROV_FUNC* = proc( + lpszStoreProvider: LPCSTR, + dwEncodingType: DWORD, + hCryptProv: HCRYPTPROV_LEGACY, + dwFlags: DWORD, + pvPara: pointer, + hCertStore: HCERTSTORE, + pStoreProvInfo: PCERT_STORE_PROV_INFO, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_CLOSE* = + proc(hStoreProv: HCERTSTOREPROV, dwFlags: DWORD): void {.stdcall.} + PFN_CERT_STORE_PROV_READ_CERT* = proc( + hStoreProv: HCERTSTOREPROV, + pStoreCertContext: PCCERT_CONTEXT, + dwFlags: DWORD, + ppProvCertContext: ptr PCCERT_CONTEXT, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_WRITE_CERT* = proc( + hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwFlags: DWORD + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_DELETE_CERT* = proc( + hStoreProv: HCERTSTOREPROV, pCertContext: PCCERT_CONTEXT, dwFlags: DWORD + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_SET_CERT_PROPERTY* = proc( + hStoreProv: HCERTSTOREPROV, + pCertContext: PCCERT_CONTEXT, + dwPropId: DWORD, + dwFlags: DWORD, + pvData: pointer, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_READ_CRL* = proc( + hStoreProv: HCERTSTOREPROV, + pStoreCrlContext: PCCRL_CONTEXT, + dwFlags: DWORD, + ppProvCrlContext: ptr PCCRL_CONTEXT, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_WRITE_CRL* = proc( + hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_DELETE_CRL* = proc( + hStoreProv: HCERTSTOREPROV, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_SET_CRL_PROPERTY* = proc( + hStoreProv: HCERTSTOREPROV, + pCrlContext: PCCRL_CONTEXT, + dwPropId: DWORD, + dwFlags: DWORD, + pvData: pointer, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_READ_CTL* = proc( + hStoreProv: HCERTSTOREPROV, + pStoreCtlContext: PCCTL_CONTEXT, + dwFlags: DWORD, + ppProvCtlContext: ptr PCCTL_CONTEXT, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_WRITE_CTL* = proc( + hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_DELETE_CTL* = proc( + hStoreProv: HCERTSTOREPROV, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_SET_CTL_PROPERTY* = proc( + hStoreProv: HCERTSTOREPROV, + pCtlContext: PCCTL_CONTEXT, + dwPropId: DWORD, + dwFlags: DWORD, + pvData: pointer, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_CONTROL* = proc( + hStoreProv: HCERTSTOREPROV, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_FIND_CERT* = proc( + hStoreProv: HCERTSTOREPROV, + pFindInfo: PCCERT_STORE_PROV_FIND_INFO, + pPrevCertContext: PCCERT_CONTEXT, + dwFlags: DWORD, + ppvStoreProvFindInfo: ptr pointer, + ppProvCertContext: ptr PCCERT_CONTEXT, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_FREE_FIND_CERT* = proc( + hStoreProv: HCERTSTOREPROV, + pCertContext: PCCERT_CONTEXT, + pvStoreProvFindInfo: pointer, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_GET_CERT_PROPERTY* = proc( + hStoreProv: HCERTSTOREPROV, + pCertContext: PCCERT_CONTEXT, + dwPropId: DWORD, + dwFlags: DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_FIND_CRL* = proc( + hStoreProv: HCERTSTOREPROV, + pFindInfo: PCCERT_STORE_PROV_FIND_INFO, + pPrevCrlContext: PCCRL_CONTEXT, + dwFlags: DWORD, + ppvStoreProvFindInfo: ptr pointer, + ppProvCrlContext: ptr PCCRL_CONTEXT, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_FREE_FIND_CRL* = proc( + hStoreProv: HCERTSTOREPROV, + pCrlContext: PCCRL_CONTEXT, + pvStoreProvFindInfo: pointer, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_GET_CRL_PROPERTY* = proc( + hStoreProv: HCERTSTOREPROV, + pCrlContext: PCCRL_CONTEXT, + dwPropId: DWORD, + dwFlags: DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_FIND_CTL* = proc( + hStoreProv: HCERTSTOREPROV, + pFindInfo: PCCERT_STORE_PROV_FIND_INFO, + pPrevCtlContext: PCCTL_CONTEXT, + dwFlags: DWORD, + ppvStoreProvFindInfo: ptr pointer, + ppProvCtlContext: ptr PCCTL_CONTEXT, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_FREE_FIND_CTL* = proc( + hStoreProv: HCERTSTOREPROV, + pCtlContext: PCCTL_CONTEXT, + pvStoreProvFindInfo: pointer, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + PFN_CERT_STORE_PROV_GET_CTL_PROPERTY* = proc( + hStoreProv: HCERTSTOREPROV, + pCtlContext: PCCTL_CONTEXT, + dwPropId: DWORD, + dwFlags: DWORD, + pvData: pointer, + pcbData: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_CERT_ENUM_SYSTEM_STORE_LOCATION* = proc( + pwszStoreLocation: LPCWSTR, dwFlags: DWORD, pvReserved: pointer, pvArg: pointer + ): WINBOOL {.stdcall.} + PFN_CERT_ENUM_SYSTEM_STORE* = proc( + pvSystemStore: pointer, + dwFlags: DWORD, + pStoreInfo: PCERT_SYSTEM_STORE_INFO, + pvReserved: pointer, + pvArg: pointer, + ): WINBOOL {.stdcall.} + PFN_CERT_ENUM_PHYSICAL_STORE* = proc( + pvSystemStore: pointer, + dwFlags: DWORD, + pwszStoreName: LPCWSTR, + pStoreInfo: PCERT_PHYSICAL_STORE_INFO, + pvReserved: pointer, + pvArg: pointer, + ): WINBOOL {.stdcall.} + PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC* = proc( + dwCertEncodingType: DWORD, + pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + ppvDecodedSignPara: ptr pointer, + ppwszCNGHashAlgid: ptr LPWSTR, + ): WINBOOL {.stdcall.} + PFN_CRYPT_SIGN_AND_ENCODE_HASH_FUNC* = proc( + hKey: NCRYPT_KEY_HANDLE, + dwCertEncodingType: DWORD, + pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pvDecodedSignPara: pointer, + pwszCNGPubKeyAlgid: LPCWSTR, + pwszCNGHashAlgid: LPCWSTR, + pbComputedHash: ptr BYTE, + cbComputedHash: DWORD, + pbSignature: ptr BYTE, + pcbSignature: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_CRYPT_VERIFY_ENCODED_SIGNATURE_FUNC* = proc( + dwCertEncodingType: DWORD, + pPubKeyInfo: PCERT_PUBLIC_KEY_INFO, + pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pvDecodedSignPara: pointer, + pwszCNGPubKeyAlgid: LPCWSTR, + pwszCNGHashAlgid: LPCWSTR, + pbComputedHash: ptr BYTE, + cbComputedHash: DWORD, + pbSignature: ptr BYTE, + cbSignature: DWORD, + ): WINBOOL {.stdcall.} + PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC* = proc( + hNCryptKey: NCRYPT_KEY_HANDLE, + dwCertEncodingType: DWORD, + pszPublicKeyObjId: LPSTR, + dwFlags: DWORD, + pvAuxInfo: pointer, + pInfo: PCERT_PUBLIC_KEY_INFO, + pcbInfo: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_CRYPT_EXPORT_PUBLIC_KEY_INFO_FROM_BCRYPT_HANDLE_FUNC* = proc( + hBCryptKey: BCRYPT_KEY_HANDLE, + dwCertEncodingType: DWORD, + pszPublicKeyObjId: LPSTR, + dwFlags: DWORD, + pvAuxInfo: pointer, + pInfo: PCERT_PUBLIC_KEY_INFO, + pcbInfo: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_IMPORT_PRIV_KEY_FUNC* = proc( + hCryptProv: HCRYPTPROV, + pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, + dwFlags: DWORD, + pvAuxInfo: pointer, + ): WINBOOL {.stdcall.} + PFN_EXPORT_PRIV_KEY_FUNC* = proc( + hCryptProv: HCRYPTPROV, + dwKeySpec: DWORD, + pszPrivateKeyObjId: LPSTR, + dwFlags: DWORD, + pvAuxInfo: pointer, + pPrivateKeyInfo: ptr CRYPT_PRIVATE_KEY_INFO, + pcbPrivateKeyInfo: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC* = proc( + dwCertEncodingType: DWORD, + pInfo: PCERT_PUBLIC_KEY_INFO, + dwFlags: DWORD, + pvAuxInfo: pointer, + phKey: ptr BCRYPT_KEY_HANDLE, + ): WINBOOL {.stdcall.} + PFN_CRYPT_ASYNC_PARAM_FREE_FUNC* = + proc(pszParamOid: LPSTR, pvParam: LPVOID): VOID {.stdcall.} + PFN_FREE_ENCODED_OBJECT_FUNC* = proc( + pszObjectOid: LPCSTR, pObject: PCRYPT_BLOB_ARRAY, pvFreeContext: LPVOID + ): VOID {.stdcall.} + PFN_CRYPT_CANCEL_RETRIEVAL* = + proc(dwFlags: DWORD, pvArg: pointer): WINBOOL {.stdcall.} + PFN_CANCEL_ASYNC_RETRIEVAL_FUNC* = + proc(hAsyncRetrieve: HCRYPTASYNC): WINBOOL {.stdcall.} + PFN_CRYPT_ENUM_KEYID_PROP* = proc( + pKeyIdentifier: ptr CRYPT_HASH_BLOB, + dwFlags: DWORD, + pvReserved: pointer, + pvArg: pointer, + cProp: DWORD, + rgdwPropId: ptr DWORD, + rgpvData: ptr pointer, + rgcbData: ptr DWORD, + ): WINBOOL {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH* = proc( + pContext: LPVOID, + rgIdentifierOrNameList: ptr PCERT_NAME_BLOB, + dwIdentifierOrNameListCount: DWORD, + ): WINBOOL {.stdcall.} + PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_INITIALIZE* = proc( + pfnFlush: PFN_CRYPT_OBJECT_LOCATOR_PROVIDER_FLUSH, + pContext: LPVOID, + pdwExpectedObjectCount: ptr DWORD, + ppFuncTable: ptr PCRYPT_OBJECT_LOCATOR_PROVIDER_TABLE, + ppPluginContext: ptr pointer, + ): WINBOOL {.stdcall.} PROV_ENUMALGS* {.pure.} = object aiAlgid*: ALG_ID dwBitLen*: DWORD dwNameLen*: DWORD szName*: array[20, CHAR] + PROV_ENUMALGS_EX* {.pure.} = object aiAlgid*: ALG_ID dwDefaultLen*: DWORD @@ -4702,31 +5473,40 @@ szName*: array[20, CHAR] dwLongNameLen*: DWORD szLongName*: array[40, CHAR] + RSAPUBKEY* {.pure.} = object magic*: DWORD bitlen*: DWORD pubexp*: DWORD + CERT_FORTEZZA_DATA_PROP* {.pure.} = object SerialNumber*: array[8, uint8] CertIndex*: int32 CertLabel*: array[36, uint8] + BCRYPT_OID* {.pure.} = object cbOID*: ULONG pbOID*: PUCHAR + BCRYPT_OID_LIST* {.pure.} = object dwOIDCount*: ULONG pOIDs*: ptr BCRYPT_OID + BCRYPT_PKCS1_PADDING_INFO* {.pure.} = object pszAlgId*: LPCWSTR + BCRYPT_PSS_PADDING_INFO* {.pure.} = object pszAlgId*: LPCWSTR cbSalt*: ULONG + BCRYPT_OAEP_PADDING_INFO* {.pure.} = object pszAlgId*: LPCWSTR pbLabel*: PUCHAR cbLabel*: ULONG + BCRYPT_KEY_BLOB* {.pure.} = object Magic*: ULONG + BCRYPT_RSAKEY_BLOB* {.pure.} = object Magic*: ULONG BitLength*: ULONG @@ -4734,10 +5514,12 @@ cbModulus*: ULONG cbPrime1*: ULONG cbPrime2*: ULONG + BCRYPT_DH_PARAMETER_HEADER* {.pure.} = object cbLength*: ULONG dwMagic*: ULONG cbKeyLength*: ULONG + BCRYPT_DSA_PARAMETER_HEADER* {.pure.} = object cbLength*: ULONG dwMagic*: ULONG @@ -4745,6 +5527,7 @@ Count*: array[4, UCHAR] Seed*: array[20, UCHAR] q*: array[20, UCHAR] + BCRYPT_DSA_PARAMETER_HEADER_V2* {.pure.} = object cbLength*: ULONG dwMagic*: ULONG @@ -4754,592 +5537,3218 @@ cbSeedLength*: ULONG cbGroupSize*: ULONG Count*: array[4, UCHAR] + BCRYPT_ALGORITHM_IDENTIFIER* {.pure.} = object pszName*: LPWSTR dwClass*: ULONG dwFlags*: ULONG + BCRYPT_PROVIDER_NAME* {.pure.} = object pszProviderName*: LPWSTR + NCRYPT_ALLOC_PARA* {.pure.} = object cbSize*: DWORD pfnAlloc*: PFN_NCRYPT_ALLOC pfnFree*: PFN_NCRYPT_FREE + NCryptAlgorithmName* {.pure.} = object pszName*: LPWSTR dwClass*: DWORD dwAlgOperations*: DWORD dwFlags*: DWORD + NCryptKeyName* {.pure.} = object pszName*: LPWSTR pszAlgid*: LPWSTR dwLegacyKeySpec*: DWORD dwFlags*: DWORD + NCryptProviderName* {.pure.} = object pszName*: LPWSTR pszComment*: LPWSTR + NCRYPT_UI_POLICY* {.pure.} = object dwVersion*: DWORD dwFlags*: DWORD pszCreationTitle*: LPCWSTR pszFriendlyName*: LPCWSTR pszDescription*: LPCWSTR + NCRYPT_SUPPORTED_LENGTHS* {.pure.} = object dwMinLength*: DWORD dwMaxLength*: DWORD dwIncrement*: DWORD dwDefaultLength*: DWORD + CRYPT_PKCS12_PBE_PARAMS* {.pure.} = object iIterations*: int32 cbSalt*: ULONG -proc CryptAcquireContextA*(phProv: ptr HCRYPTPROV, szContainer: LPCSTR, szProvider: LPCSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptAcquireContextW*(phProv: ptr HCRYPTPROV, szContainer: LPCWSTR, szProvider: LPCWSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptReleaseContext*(hProv: HCRYPTPROV, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGenKey*(hProv: HCRYPTPROV, Algid: ALG_ID, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptDeriveKey*(hProv: HCRYPTPROV, Algid: ALG_ID, hBaseData: HCRYPTHASH, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptDestroyKey*(hKey: HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetKeyParam*(hKey: HCRYPTKEY, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGetKeyParam*(hKey: HCRYPTKEY, dwParam: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetHashParam*(hHash: HCRYPTHASH, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGetHashParam*(hHash: HCRYPTHASH, dwParam: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetProvParam*(hProv: HCRYPTPROV, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGetProvParam*(hProv: HCRYPTPROV, dwParam: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGenRandom*(hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: ptr BYTE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGetUserKey*(hProv: HCRYPTPROV, dwKeySpec: DWORD, phUserKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptExportKey*(hKey: HCRYPTKEY, hExpKey: HCRYPTKEY, dwBlobType: DWORD, dwFlags: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptImportKey*(hProv: HCRYPTPROV, pbData: ptr BYTE, dwDataLen: DWORD, hPubKey: HCRYPTKEY, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptEncrypt*(hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: WINBOOL, dwFlags: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD, dwBufLen: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptDecrypt*(hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: WINBOOL, dwFlags: DWORD, pbData: ptr BYTE, pdwDataLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptCreateHash*(hProv: HCRYPTPROV, Algid: ALG_ID, hKey: HCRYPTKEY, dwFlags: DWORD, phHash: ptr HCRYPTHASH): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptHashData*(hHash: HCRYPTHASH, pbData: ptr BYTE, dwDataLen: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptHashSessionKey*(hHash: HCRYPTHASH, hKey: HCRYPTKEY, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptDestroyHash*(hHash: HCRYPTHASH): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSignHashA*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSignHashW*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCWSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptVerifySignatureA*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptVerifySignatureW*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetProviderA*(pszProvName: LPCSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetProviderW*(pszProvName: LPCWSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetProviderExA*(pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptSetProviderExW*(pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGetDefaultProviderA*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptGetDefaultProviderW*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptEnumProviderTypesA*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptEnumProviderTypesW*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPWSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptEnumProvidersA*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptEnumProvidersW*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptContextAddRef*(hProv: HCRYPTPROV, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptDuplicateKey*(hKey: HCRYPTKEY, pdwReserved: ptr DWORD, dwFlags: DWORD, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CryptDuplicateHash*(hHash: HCRYPTHASH, pdwReserved: ptr DWORD, dwFlags: DWORD, phHash: ptr HCRYPTHASH): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc BCryptOpenAlgorithmProvider*(phAlgorithm: ptr BCRYPT_ALG_HANDLE, pszAlgId: LPCWSTR, pszImplementation: LPCWSTR, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEnumAlgorithms*(dwAlgOperations: ULONG, pAlgCount: ptr ULONG, ppAlgList: ptr ptr BCRYPT_ALGORITHM_IDENTIFIER, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEnumProviders*(pszAlgId: LPCWSTR, pImplCount: ptr ULONG, ppImplList: ptr ptr BCRYPT_PROVIDER_NAME, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptGetProperty*(hObject: BCRYPT_HANDLE, pszProperty: LPCWSTR, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptSetProperty*(hObject: BCRYPT_HANDLE, pszProperty: LPCWSTR, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptCloseAlgorithmProvider*(hAlgorithm: BCRYPT_ALG_HANDLE, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptFreeBuffer*(pvBuffer: PVOID): VOID {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptGenerateSymmetricKey*(hAlgorithm: BCRYPT_ALG_HANDLE, phKey: ptr BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, pbSecret: PUCHAR, cbSecret: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptGenerateKeyPair*(hAlgorithm: BCRYPT_ALG_HANDLE, phKey: ptr BCRYPT_KEY_HANDLE, dwLength: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEncrypt*(hKey: BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, pPaddingInfo: pointer, pbIV: PUCHAR, cbIV: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDecrypt*(hKey: BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, pPaddingInfo: pointer, pbIV: PUCHAR, cbIV: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptExportKey*(hKey: BCRYPT_KEY_HANDLE, hExportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptImportKey*(hAlgorithm: BCRYPT_ALG_HANDLE, hImportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, phKey: ptr BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptImportKeyPair*(hAlgorithm: BCRYPT_ALG_HANDLE, hImportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, phKey: ptr BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDuplicateKey*(hKey: BCRYPT_KEY_HANDLE, phNewKey: ptr BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptFinalizeKeyPair*(hKey: BCRYPT_KEY_HANDLE, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDestroyKey*(hKey: BCRYPT_KEY_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDestroySecret*(hSecret: BCRYPT_SECRET_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptSignHash*(hKey: BCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbInput: PUCHAR, cbInput: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptVerifySignature*(hKey: BCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbHash: PUCHAR, cbHash: ULONG, pbSignature: PUCHAR, cbSignature: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptSecretAgreement*(hPrivKey: BCRYPT_KEY_HANDLE, hPubKey: BCRYPT_KEY_HANDLE, phAgreedSecret: ptr BCRYPT_SECRET_HANDLE, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDeriveKey*(hSharedSecret: BCRYPT_SECRET_HANDLE, pwszKDF: LPCWSTR, pParameterList: ptr BCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptKeyDerivation*(hKey: BCRYPT_KEY_HANDLE, pParameterList: ptr BCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, pcbResult: ptr ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptCreateHash*(hAlgorithm: BCRYPT_ALG_HANDLE, phHash: ptr BCRYPT_HASH_HANDLE, pbHashObject: PUCHAR, cbHashObject: ULONG, pbSecret: PUCHAR, cbSecret: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptHashData*(hHash: BCRYPT_HASH_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptFinishHash*(hHash: BCRYPT_HASH_HANDLE, pbOutput: PUCHAR, cbOutput: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDuplicateHash*(hHash: BCRYPT_HASH_HANDLE, phNewHash: ptr BCRYPT_HASH_HANDLE, pbHashObject: PUCHAR, cbHashObject: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDestroyHash*(hHash: BCRYPT_HASH_HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptGenRandom*(hAlgorithm: BCRYPT_ALG_HANDLE, pbBuffer: PUCHAR, cbBuffer: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDeriveKeyCapi*(hHash: BCRYPT_HASH_HANDLE, hTargetAlg: BCRYPT_ALG_HANDLE, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDeriveKeyPBKDF2*(hPrf: BCRYPT_ALG_HANDLE, pbPassword: PUCHAR, cbPassword: ULONG, pbSalt: PUCHAR, cbSalt: ULONG, cIterations: ULONGLONG, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, dwFlags: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptResolveProviders*(pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProvider: LPCWSTR, dwMode: ULONG, dwFlags: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDER_REFS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptGetFipsAlgorithmMode*(pfEnabled: ptr BOOLEAN): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptRegisterConfigChangeNotify*(pEvent: PRKEVENT): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptUnregisterConfigChangeNotify*(pEvent: PRKEVENT): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptUnregisterConfigChangeNotify*(hEvent: HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptQueryProviderRegistration*(pszProvider: LPCWSTR, dwMode: ULONG, dwInterface: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDER_REG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEnumRegisteredProviders*(pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDERS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptCreateContext*(dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptDeleteContext*(dwTable: ULONG, pszContext: LPCWSTR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEnumContexts*(dwTable: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXTS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptConfigureContext*(dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptQueryContextConfiguration*(dwTable: ULONG, pszContext: LPCWSTR, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptAddContextFunction*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, dwPosition: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptRemoveContextFunction*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEnumContextFunctions*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_FUNCTIONS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptConfigureContextFunction*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptQueryContextFunctionConfiguration*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_FUNCTION_CONFIG): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptEnumContextFunctionProviders*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXT_FUNCTION_PROVIDERS): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptSetContextFunctionProperty*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProperty: LPCWSTR, cbValue: ULONG, pbValue: PUCHAR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptQueryContextFunctionProperty*(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProperty: LPCWSTR, pcbValue: ptr ULONG, ppbValue: ptr PUCHAR): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc BCryptRegisterConfigChangeNotify*(phEvent: ptr HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} -proc NCryptOpenStorageProvider*(phProvider: ptr NCRYPT_PROV_HANDLE, pszProviderName: LPCWSTR, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptEnumAlgorithms*(hProvider: NCRYPT_PROV_HANDLE, dwAlgOperations: DWORD, pdwAlgCount: ptr DWORD, ppAlgList: ptr ptr NCryptAlgorithmName, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptIsAlgSupported*(hProvider: NCRYPT_PROV_HANDLE, pszAlgId: LPCWSTR, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptEnumKeys*(hProvider: NCRYPT_PROV_HANDLE, pszScope: LPCWSTR, ppKeyName: ptr ptr NCryptKeyName, ppEnumState: ptr PVOID, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptEnumStorageProviders*(pdwProviderCount: ptr DWORD, ppProviderList: ptr ptr NCryptProviderName, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptFreeBuffer*(pvInput: PVOID): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptOpenKey*(hProvider: NCRYPT_PROV_HANDLE, phKey: ptr NCRYPT_KEY_HANDLE, pszKeyName: LPCWSTR, dwLegacyKeySpec: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptCreatePersistedKey*(hProvider: NCRYPT_PROV_HANDLE, phKey: ptr NCRYPT_KEY_HANDLE, pszAlgId: LPCWSTR, pszKeyName: LPCWSTR, dwLegacyKeySpec: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptGetProperty*(hObject: NCRYPT_HANDLE, pszProperty: LPCWSTR, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptSetProperty*(hObject: NCRYPT_HANDLE, pszProperty: LPCWSTR, pbInput: PBYTE, cbInput: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptFinalizeKey*(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptEncrypt*(hKey: NCRYPT_KEY_HANDLE, pbInput: PBYTE, cbInput: DWORD, pPaddingInfo: pointer, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptDecrypt*(hKey: NCRYPT_KEY_HANDLE, pbInput: PBYTE, cbInput: DWORD, pPaddingInfo: pointer, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptImportKey*(hProvider: NCRYPT_PROV_HANDLE, hImportKey: NCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pParameterList: ptr NCryptBufferDesc, phKey: ptr NCRYPT_KEY_HANDLE, pbData: PBYTE, cbData: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptExportKey*(hKey: NCRYPT_KEY_HANDLE, hExportKey: NCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pParameterList: ptr NCryptBufferDesc, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptSignHash*(hKey: NCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbHashValue: PBYTE, cbHashValue: DWORD, pbSignature: PBYTE, cbSignature: DWORD, pcbResult: ptr DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptVerifySignature*(hKey: NCRYPT_KEY_HANDLE, pPaddingInfo: pointer, pbHashValue: PBYTE, cbHashValue: DWORD, pbSignature: PBYTE, cbSignature: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptDeleteKey*(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptFreeObject*(hObject: NCRYPT_HANDLE): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptIsKeyHandle*(hKey: NCRYPT_KEY_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptTranslateHandle*(phProvider: ptr NCRYPT_PROV_HANDLE, phKey: ptr NCRYPT_KEY_HANDLE, hLegacyProv: HCRYPTPROV, hLegacyKey: HCRYPTKEY, dwLegacyKeySpec: DWORD, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptNotifyChangeKey*(hProvider: NCRYPT_PROV_HANDLE, phEvent: ptr HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptSecretAgreement*(hPrivKey: NCRYPT_KEY_HANDLE, hPubKey: NCRYPT_KEY_HANDLE, phAgreedSecret: ptr NCRYPT_SECRET_HANDLE, dwFlags: DWORD): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptDeriveKey*(hSharedSecret: NCRYPT_SECRET_HANDLE, pwszKDF: LPCWSTR, pParameterList: ptr NCryptBufferDesc, pbDerivedKey: PBYTE, cbDerivedKey: DWORD, pcbResult: ptr DWORD, dwFlags: ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc NCryptKeyDerivation*(hKey: NCRYPT_KEY_HANDLE, pParameterList: ptr NCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: DWORD, pcbResult: ptr DWORD, dwFlags: ULONG): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} -proc CryptFormatObject*(dwCertEncodingType: DWORD, dwFormatType: DWORD, dwFormatStrType: DWORD, pFormatStruct: pointer, lpszStructType: LPCSTR, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbFormat: pointer, pcbFormat: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptEncodeObjectEx*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: pointer, dwFlags: DWORD, pEncodePara: PCRYPT_ENCODE_PARA, pvEncoded: pointer, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptEncodeObject*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptDecodeObjectEx*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pbEncoded: ptr BYTE, cbEncoded: DWORD, dwFlags: DWORD, pDecodePara: PCRYPT_DECODE_PARA, pvStructInfo: pointer, pcbStructInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptDecodeObject*(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pbEncoded: ptr BYTE, cbEncoded: DWORD, dwFlags: DWORD, pvStructInfo: pointer, pcbStructInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptInstallOIDFunctionAddress*(hModule: HMODULE, dwEncodingType: DWORD, pszFuncName: LPCSTR, cFuncEntry: DWORD, rgFuncEntry: ptr CRYPT_OID_FUNC_ENTRY, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptInitOIDFunctionSet*(pszFuncName: LPCSTR, dwFlags: DWORD): HCRYPTOIDFUNCSET {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetOIDFunctionAddress*(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pszOID: LPCSTR, dwFlags: DWORD, ppvFuncAddr: ptr pointer, phFuncAddr: ptr HCRYPTOIDFUNCADDR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetDefaultOIDDllList*(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pwszDllList: ptr WCHAR, pcchDllList: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetDefaultOIDFunctionAddress*(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pwszDll: LPCWSTR, dwFlags: DWORD, ppvFuncAddr: ptr pointer, phFuncAddr: ptr HCRYPTOIDFUNCADDR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptFreeOIDFunctionAddress*(hFuncAddr: HCRYPTOIDFUNCADDR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptRegisterOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszDll: LPCWSTR, pszOverrideFuncName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUnregisterOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptRegisterDefaultOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, dwIndex: DWORD, pwszDll: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUnregisterDefaultOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pwszDll: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSetOIDFunctionValue*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszValueName: LPCWSTR, dwValueType: DWORD, pbValueData: ptr BYTE, cbValueData: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetOIDFunctionValue*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszValueName: LPCWSTR, pdwValueType: ptr DWORD, pbValueData: ptr BYTE, pcbValueData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptEnumOIDFunction*(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, dwFlags: DWORD, pvArg: pointer, pfnEnumOIDFunc: PFN_CRYPT_ENUM_OID_FUNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptFindOIDInfo*(dwKeyType: DWORD, pvKey: pointer, dwGroupId: DWORD): PCCRYPT_OID_INFO {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptRegisterOIDInfo*(pInfo: PCCRYPT_OID_INFO, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUnregisterOIDInfo*(pInfo: PCCRYPT_OID_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptEnumOIDInfo*(dwGroupId: DWORD, dwFlags: DWORD, pvArg: pointer, pfnEnumOIDInfo: PFN_CRYPT_ENUM_OID_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptFindLocalizedName*(pwszCryptName: LPCWSTR): LPCWSTR {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgOpenToEncode*(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, pvMsgEncodeInfo: pointer, pszInnerContentObjID: LPSTR, pStreamInfo: PCMSG_STREAM_INFO): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgCalculateEncodedLength*(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, pvMsgEncodeInfo: pointer, pszInnerContentObjID: LPSTR, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgOpenToDecode*(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, pRecipientInfo: PCERT_INFO, pStreamInfo: PCMSG_STREAM_INFO): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgDuplicate*(hCryptMsg: HCRYPTMSG): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgClose*(hCryptMsg: HCRYPTMSG): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgUpdate*(hCryptMsg: HCRYPTMSG, pbData: ptr BYTE, cbData: DWORD, fFinal: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgGetParam*(hCryptMsg: HCRYPTMSG, dwParamType: DWORD, dwIndex: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgControl*(hCryptMsg: HCRYPTMSG, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgVerifyCountersignatureEncoded*(hCryptProv: HCRYPTPROV_LEGACY, dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, pbSignerInfoCountersignature: PBYTE, cbSignerInfoCountersignature: DWORD, pciCountersigner: PCERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgVerifyCountersignatureEncodedEx*(hCryptProv: HCRYPTPROV_LEGACY, dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, pbSignerInfoCountersignature: PBYTE, cbSignerInfoCountersignature: DWORD, dwSignerType: DWORD, pvSigner: pointer, dwFlags: DWORD, pvExtra: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgCountersign*(hCryptMsg: HCRYPTMSG, dwIndex: DWORD, cCountersigners: DWORD, rgCountersigners: PCMSG_SIGNER_ENCODE_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgCountersignEncoded*(dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, cCountersigners: DWORD, rgCountersigners: PCMSG_SIGNER_ENCODE_INFO, pbCountersignature: PBYTE, pcbCountersignature: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertOpenStore*(lpszStoreProvider: LPCSTR, dwEncodingType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, dwFlags: DWORD, pvPara: pointer): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDuplicateStore*(hCertStore: HCERTSTORE): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSaveStore*(hCertStore: HCERTSTORE, dwEncodingType: DWORD, dwSaveAs: DWORD, dwSaveTo: DWORD, pvSaveToPara: pointer, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCloseStore*(hCertStore: HCERTSTORE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetSubjectCertificateFromStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pCertId: PCERT_INFO): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumCertificatesInStore*(hCertStore: HCERTSTORE, pPrevCertContext: PCCERT_CONTEXT): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindCertificateInStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevCertContext: PCCERT_CONTEXT): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetIssuerCertificateFromStore*(hCertStore: HCERTSTORE, pSubjectContext: PCCERT_CONTEXT, pPrevIssuerContext: PCCERT_CONTEXT, pdwFlags: ptr DWORD): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifySubjectCertificateContext*(pSubject: PCCERT_CONTEXT, pIssuer: PCCERT_CONTEXT, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDuplicateCertificateContext*(pCertContext: PCCERT_CONTEXT): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCreateCertificateContext*(dwCertEncodingType: DWORD, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeCertificateContext*(pCertContext: PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSetCertificateContextProperty*(pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumCRLsInStore*(hCertStore: HCERTSTORE, pPrevCrlContext: PCCRL_CONTEXT): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDeleteCRLFromStore*(pCrlContext: PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDuplicateCRLContext*(pCrlContext: PCCRL_CONTEXT): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindCRLInStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevCrlContext: PCCRL_CONTEXT): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeCRLContext*(pCrlContext: PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetCertificateContextProperty*(pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumCertificateContextProperties*(pCertContext: PCCERT_CONTEXT, dwPropId: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCreateCTLEntryFromCertificateContextProperties*(pCertContext: PCCERT_CONTEXT, cOptAttr: DWORD, rgOptAttr: PCRYPT_ATTRIBUTE, dwFlags: DWORD, pvReserved: pointer, pCtlEntry: PCTL_ENTRY, pcbCtlEntry: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSetCertificateContextPropertiesFromCTLEntry*(pCertContext: PCCERT_CONTEXT, pCtlEntry: PCTL_ENTRY, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetCRLFromStore*(hCertStore: HCERTSTORE, pIssuerContext: PCCERT_CONTEXT, pPrevCrlContext: PCCRL_CONTEXT, pdwFlags: ptr DWORD): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCreateCRLContext*(dwCertEncodingType: DWORD, pbCrlEncoded: ptr BYTE, cbCrlEncoded: DWORD): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSetCRLContextProperty*(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetCRLContextProperty*(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumCRLContextProperties*(pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindCertificateInCRL*(pCert: PCCERT_CONTEXT, pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, pvReserved: pointer, ppCrlEntry: ptr PCRL_ENTRY): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertIsValidCRLForCertificate*(pCert: PCCERT_CONTEXT, pCrl: PCCRL_CONTEXT, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddEncodedCertificateToStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD, dwAddDisposition: DWORD, ppCertContext: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddCertificateContextToStore*(hCertStore: HCERTSTORE, pCertContext: PCCERT_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddSerializedElementToStore*(hCertStore: HCERTSTORE, pbElement: ptr BYTE, cbElement: DWORD, dwAddDisposition: DWORD, dwFlags: DWORD, dwContextTypeFlags: DWORD, pdwContextType: ptr DWORD, ppvContext: ptr pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDeleteCertificateFromStore*(pCertContext: PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddEncodedCRLToStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pbCrlEncoded: ptr BYTE, cbCrlEncoded: DWORD, dwAddDisposition: DWORD, ppCrlContext: ptr PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddCRLContextToStore*(hCertStore: HCERTSTORE, pCrlContext: PCCRL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSerializeCertificateStoreElement*(pCertContext: PCCERT_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSerializeCRLStoreElement*(pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDuplicateCTLContext*(pCtlContext: PCCTL_CONTEXT): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCreateCTLContext*(dwMsgAndCertEncodingType: DWORD, pbCtlEncoded: ptr BYTE, cbCtlEncoded: DWORD): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeCTLContext*(pCtlContext: PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSetCTLContextProperty*(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetCTLContextProperty*(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumCTLContextProperties*(pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumCTLsInStore*(hCertStore: HCERTSTORE, pPrevCtlContext: PCCTL_CONTEXT): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindSubjectInCTL*(dwEncodingType: DWORD, dwSubjectType: DWORD, pvSubject: pointer, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD): PCTL_ENTRY {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindCTLInStore*(hCertStore: HCERTSTORE, dwMsgAndCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevCtlContext: PCCTL_CONTEXT): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddEncodedCTLToStore*(hCertStore: HCERTSTORE, dwMsgAndCertEncodingType: DWORD, pbCtlEncoded: ptr BYTE, cbCtlEncoded: DWORD, dwAddDisposition: DWORD, ppCtlContext: ptr PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddCTLContextToStore*(hCertStore: HCERTSTORE, pCtlContext: PCCTL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSerializeCTLStoreElement*(pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDeleteCTLFromStore*(pCtlContext: PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddCertificateLinkToStore*(hCertStore: HCERTSTORE, pCertContext: PCCERT_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddCRLLinkToStore*(hCertStore: HCERTSTORE, pCrlContext: PCCRL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCRL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddCTLLinkToStore*(hCertStore: HCERTSTORE, pCtlContext: PCCTL_CONTEXT, dwAddDisposition: DWORD, ppStoreContext: ptr PCCTL_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddStoreToCollection*(hCollectionStore: HCERTSTORE, hSiblingStore: HCERTSTORE, dwUpdateFlags: DWORD, dwPriority: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRemoveStoreFromCollection*(hCollectionStore: HCERTSTORE, hSiblingStore: HCERTSTORE): void {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertControlStore*(hCertStore: HCERTSTORE, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSetStoreProperty*(hCertStore: HCERTSTORE, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetStoreProperty*(hCertStore: HCERTSTORE, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRegisterSystemStore*(pvSystemStore: pointer, dwFlags: DWORD, pStoreInfo: PCERT_SYSTEM_STORE_INFO, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRegisterPhysicalStore*(pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR, pStoreInfo: PCERT_PHYSICAL_STORE_INFO, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertUnregisterSystemStore*(pvSystemStore: pointer, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertUnregisterPhysicalStore*(pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumSystemStoreLocation*(dwFlags: DWORD, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE_LOCATION): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumSystemStore*(dwFlags: DWORD, pvSystemStoreLocationPara: pointer, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumPhysicalStore*(pvSystemStore: pointer, dwFlags: DWORD, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_PHYSICAL_STORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetEnhancedKeyUsage*(pCertContext: PCCERT_CONTEXT, dwFlags: DWORD, pUsage: PCERT_ENHKEY_USAGE, pcbUsage: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSetEnhancedKeyUsage*(pCertContext: PCCERT_CONTEXT, pUsage: PCERT_ENHKEY_USAGE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddEnhancedKeyUsageIdentifier*(pCertContext: PCCERT_CONTEXT, pszUsageIdentifier: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRemoveEnhancedKeyUsageIdentifier*(pCertContext: PCCERT_CONTEXT, pszUsageIdentifier: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetValidUsages*(cCerts: DWORD, rghCerts: ptr PCCERT_CONTEXT, cNumOIDs: ptr int32, rghOIDs: ptr LPSTR, pcbOIDs: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgGetAndVerifySigner*(hCryptMsg: HCRYPTMSG, cSignerStore: DWORD, rghSignerStore: ptr HCERTSTORE, dwFlags: DWORD, ppSigner: ptr PCCERT_CONTEXT, pdwSignerIndex: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgSignCTL*(dwMsgEncodingType: DWORD, pbCtlContent: ptr BYTE, cbCtlContent: DWORD, pSignInfo: PCMSG_SIGNED_ENCODE_INFO, dwFlags: DWORD, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMsgEncodeAndSignCTL*(dwMsgEncodingType: DWORD, pCtlInfo: PCTL_INFO, pSignInfo: PCMSG_SIGNED_ENCODE_INFO, dwFlags: DWORD, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindSubjectInSortedCTL*(pSubjectIdentifier: PCRYPT_DATA_BLOB, pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, pvReserved: pointer, pEncodedAttributes: PCRYPT_DER_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertEnumSubjectInSortedCTL*(pCtlContext: PCCTL_CONTEXT, ppvNextSubject: ptr pointer, pSubjectIdentifier: PCRYPT_DER_BLOB, pEncodedAttributes: PCRYPT_DER_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyCTLUsage*(dwEncodingType: DWORD, dwSubjectType: DWORD, pvSubject: pointer, pSubjectUsage: PCTL_USAGE, dwFlags: DWORD, pVerifyUsagePara: PCTL_VERIFY_USAGE_PARA, pVerifyUsageStatus: PCTL_VERIFY_USAGE_STATUS): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyRevocation*(dwEncodingType: DWORD, dwRevType: DWORD, cContext: DWORD, rgpvContext: ptr PVOID, dwFlags: DWORD, pRevPara: PCERT_REVOCATION_PARA, pRevStatus: PCERT_REVOCATION_STATUS): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCompareIntegerBlob*(pInt1: PCRYPT_INTEGER_BLOB, pInt2: PCRYPT_INTEGER_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCompareCertificate*(dwCertEncodingType: DWORD, pCertId1: PCERT_INFO, pCertId2: PCERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCompareCertificateName*(dwCertEncodingType: DWORD, pCertName1: PCERT_NAME_BLOB, pCertName2: PCERT_NAME_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertIsRDNAttrsInCertificateName*(dwCertEncodingType: DWORD, dwFlags: DWORD, pCertName: PCERT_NAME_BLOB, pRDN: PCERT_RDN): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertComparePublicKeyInfo*(dwCertEncodingType: DWORD, pPublicKey1: PCERT_PUBLIC_KEY_INFO, pPublicKey2: PCERT_PUBLIC_KEY_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetPublicKeyLength*(dwCertEncodingType: DWORD, pPublicKey: PCERT_PUBLIC_KEY_INFO): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyCertificateSignature*(hCryptProv: HCRYPTPROV_LEGACY, dwCertEncodingType: DWORD, pbEncoded: ptr BYTE, cbEncoded: DWORD, pPublicKey: PCERT_PUBLIC_KEY_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyCertificateSignatureEx*(hCryptProv: HCRYPTPROV_LEGACY, dwCertEncodingType: DWORD, dwSubjectType: DWORD, pvSubject: pointer, dwIssuerType: DWORD, pvIssuer: pointer, dwFlags: DWORD, pvExtra: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertIsStrongHashToSign*(pStrongSignPara: PCCERT_STRONG_SIGN_PARA, pwszCNGHashAlgid: LPCWSTR, pSigningCert: PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptHashToBeSigned*(hCryptProv: HCRYPTPROV_LEGACY, dwCertEncodingType: DWORD, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptHashCertificate*(hCryptProv: HCRYPTPROV_LEGACY, Algid: ALG_ID, dwFlags: DWORD, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptHashCertificate2*(pwszCNGHashAlgid: LPCWSTR, dwFlags: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, cbEncoded: DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSignCertificate*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, pbEncodedToBeSigned: ptr BYTE, cbEncodedToBeSigned: DWORD, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvHashAuxInfo: pointer, pbSignature: ptr BYTE, pcbSignature: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSignAndEncodeCertificate*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: pointer, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pvHashAuxInfo: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyTimeValidity*(pTimeToVerify: LPFILETIME, pCertInfo: PCERT_INFO): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyCRLTimeValidity*(pTimeToVerify: LPFILETIME, pCrlInfo: PCRL_INFO): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyValidityNesting*(pSubjectInfo: PCERT_INFO, pIssuerInfo: PCERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyCRLRevocation*(dwCertEncodingType: DWORD, pCertId: PCERT_INFO, cCrlInfo: DWORD, rgpCrlInfo: ptr PCRL_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAlgIdToOID*(dwAlgId: DWORD): LPCSTR {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertOIDToAlgId*(pszObjId: LPCSTR): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindExtension*(pszObjId: LPCSTR, cExtensions: DWORD, rgExtensions: ptr CERT_EXTENSION): PCERT_EXTENSION {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindAttribute*(pszObjId: LPCSTR, cAttr: DWORD, rgAttr: ptr CRYPT_ATTRIBUTE): PCRYPT_ATTRIBUTE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindRDNAttr*(pszObjId: LPCSTR, pName: PCERT_NAME_INFO): PCERT_RDN_ATTR {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetIntendedKeyUsage*(dwCertEncodingType: DWORD, pCertInfo: PCERT_INFO, pbKeyUsage: ptr BYTE, cbKeyUsage: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptInstallDefaultContext*(hCryptProv: HCRYPTPROV, dwDefaultType: DWORD, pvDefaultPara: pointer, dwFlags: DWORD, pvReserved: pointer, phDefaultContext: ptr HCRYPTDEFAULTCONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUninstallDefaultContext*(hDefaultContext: HCRYPTDEFAULTCONTEXT, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptExportPublicKeyInfo*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptExportPublicKeyInfoEx*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, dwKeySpec: DWORD, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptExportPublicKeyInfoFromBCryptKeyHandle*(hBCryptKey: BCRYPT_KEY_HANDLE, dwCertEncodingType: DWORD, pszPublicKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pInfo: PCERT_PUBLIC_KEY_INFO, pcbInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptImportPublicKeyInfo*(hCryptProv: HCRYPTPROV, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptImportPublicKeyInfoEx*(hCryptProv: HCRYPTPROV, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, aiKeyAlg: ALG_ID, dwFlags: DWORD, pvAuxInfo: pointer, phKey: ptr HCRYPTKEY): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptImportPublicKeyInfoEx2*(dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, dwFlags: DWORD, pvAuxInfo: pointer, phKey: ptr BCRYPT_KEY_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptAcquireCertificatePrivateKey*(pCert: PCCERT_CONTEXT, dwFlags: DWORD, pvParameters: pointer, phCryptProvOrNCryptKey: ptr HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, pdwKeySpec: ptr DWORD, pfCallerFreeProvOrNCryptKey: ptr WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptFindCertificateKeyProvInfo*(pCert: PCCERT_CONTEXT, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptImportPKCS8*(sPrivateKeyAndParams: CRYPT_PKCS8_IMPORT_PARAMS, dwFlags: DWORD, phCryptProv: ptr HCRYPTPROV, pvAuxInfo: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptExportPKCS8*(hCryptProv: HCRYPTPROV, dwKeySpec: DWORD, pszPrivateKeyObjId: LPSTR, dwFlags: DWORD, pvAuxInfo: pointer, pbPrivateKeyBlob: ptr BYTE, pcbPrivateKeyBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptHashPublicKeyInfo*(hCryptProv: HCRYPTPROV_LEGACY, Algid: ALG_ID, dwFlags: DWORD, dwCertEncodingType: DWORD, pInfo: PCERT_PUBLIC_KEY_INFO, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRDNValueToStrA*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRDNValueToStrW*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertNameToStrA*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertNameToStrW*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertStrToNameA*(dwCertEncodingType: DWORD, pszX500: LPCSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertStrToNameW*(dwCertEncodingType: DWORD, pszX500: LPCWSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetNameStringA*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetNameStringW*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPWSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSignMessage*(pSignPara: PCRYPT_SIGN_MESSAGE_PARA, fDetachedSignature: WINBOOL, cToBeSigned: DWORD, rgpbToBeSigned: ptr ptr BYTE, rgcbToBeSigned: ptr DWORD, pbSignedBlob: ptr BYTE, pcbSignedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyMessageSignature*(pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD, pbDecoded: ptr BYTE, pcbDecoded: ptr DWORD, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetMessageSignerCount*(dwMsgEncodingType: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetMessageCertificates*(dwMsgAndCertEncodingType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, dwFlags: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyDetachedMessageSignature*(pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbDetachedSignBlob: ptr BYTE, cbDetachedSignBlob: DWORD, cToBeSigned: DWORD, rgpbToBeSigned: ptr ptr BYTE, rgcbToBeSigned: ptr DWORD, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptEncryptMessage*(pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA, cRecipientCert: DWORD, rgpRecipientCert: ptr PCCERT_CONTEXT, pbToBeEncrypted: ptr BYTE, cbToBeEncrypted: DWORD, pbEncryptedBlob: ptr BYTE, pcbEncryptedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptDecryptMessage*(pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, pbEncryptedBlob: ptr BYTE, cbEncryptedBlob: DWORD, pbDecrypted: ptr BYTE, pcbDecrypted: ptr DWORD, ppXchgCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSignAndEncryptMessage*(pSignPara: PCRYPT_SIGN_MESSAGE_PARA, pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA, cRecipientCert: DWORD, rgpRecipientCert: ptr PCCERT_CONTEXT, pbToBeSignedAndEncrypted: ptr BYTE, cbToBeSignedAndEncrypted: DWORD, pbSignedAndEncryptedBlob: ptr BYTE, pcbSignedAndEncryptedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptDecryptAndVerifyMessageSignature*(pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbEncryptedBlob: ptr BYTE, cbEncryptedBlob: DWORD, pbDecrypted: ptr BYTE, pcbDecrypted: ptr DWORD, ppXchgCert: ptr PCCERT_CONTEXT, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptDecodeMessage*(dwMsgTypeFlags: DWORD, pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, dwSignerIndex: DWORD, pbEncodedBlob: ptr BYTE, cbEncodedBlob: DWORD, dwPrevInnerContentType: DWORD, pdwMsgType: ptr DWORD, pdwInnerContentType: ptr DWORD, pbDecoded: ptr BYTE, pcbDecoded: ptr DWORD, ppXchgCert: ptr PCCERT_CONTEXT, ppSignerCert: ptr PCCERT_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptHashMessage*(pHashPara: PCRYPT_HASH_MESSAGE_PARA, fDetachedHash: WINBOOL, cToBeHashed: DWORD, rgpbToBeHashed: ptr ptr BYTE, rgcbToBeHashed: ptr DWORD, pbHashedBlob: ptr BYTE, pcbHashedBlob: ptr DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyMessageHash*(pHashPara: PCRYPT_HASH_MESSAGE_PARA, pbHashedBlob: ptr BYTE, cbHashedBlob: DWORD, pbToBeHashed: ptr BYTE, pcbToBeHashed: ptr DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyDetachedMessageHash*(pHashPara: PCRYPT_HASH_MESSAGE_PARA, pbDetachedHashBlob: ptr BYTE, cbDetachedHashBlob: DWORD, cToBeHashed: DWORD, rgpbToBeHashed: ptr ptr BYTE, rgcbToBeHashed: ptr DWORD, pbComputedHash: ptr BYTE, pcbComputedHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSignMessageWithKey*(pSignPara: PCRYPT_KEY_SIGN_MESSAGE_PARA, pbToBeSigned: ptr BYTE, cbToBeSigned: DWORD, pbSignedBlob: ptr BYTE, pcbSignedBlob: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyMessageSignatureWithKey*(pVerifyPara: PCRYPT_KEY_VERIFY_MESSAGE_PARA, pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD, pbDecoded: ptr BYTE, pcbDecoded: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertOpenSystemStoreA*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertOpenSystemStoreW*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCWSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddEncodedCertificateToSystemStoreA*(szCertStoreName: LPCSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddEncodedCertificateToSystemStoreW*(szCertStoreName: LPCWSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc FindCertsByIssuer*(pCertChains: PCERT_CHAIN, pcbCertChains: ptr DWORD, pcCertChains: ptr DWORD, pbEncodedIssuerName: ptr BYTE, cbEncodedIssuerName: DWORD, pwszPurpose: LPCWSTR, dwKeySpec: DWORD): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptQueryObject*(dwObjectType: DWORD, pvObject: pointer, dwExpectedContentTypeFlags: DWORD, dwExpectedFormatTypeFlags: DWORD, dwFlags: DWORD, pdwMsgAndCertEncodingType: ptr DWORD, pdwContentType: ptr DWORD, pdwFormatType: ptr DWORD, phCertStore: ptr HCERTSTORE, phMsg: ptr HCRYPTMSG, ppvContext: ptr pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMemAlloc*(cbSize: ULONG): LPVOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptMemRealloc*(pv: LPVOID, cbSize: ULONG): LPVOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptAcquireContextA*( + phProv: ptr HCRYPTPROV, + szContainer: LPCSTR, + szProvider: LPCSTR, + dwProvType: DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptAcquireContextW*( + phProv: ptr HCRYPTPROV, + szContainer: LPCWSTR, + szProvider: LPCWSTR, + dwProvType: DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptReleaseContext*( + hProv: HCRYPTPROV, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGenKey*( + hProv: HCRYPTPROV, Algid: ALG_ID, dwFlags: DWORD, phKey: ptr HCRYPTKEY +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptDeriveKey*( + hProv: HCRYPTPROV, + Algid: ALG_ID, + hBaseData: HCRYPTHASH, + dwFlags: DWORD, + phKey: ptr HCRYPTKEY, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptDestroyKey*( + hKey: HCRYPTKEY +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetKeyParam*( + hKey: HCRYPTKEY, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGetKeyParam*( + hKey: HCRYPTKEY, + dwParam: DWORD, + pbData: ptr BYTE, + pdwDataLen: ptr DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetHashParam*( + hHash: HCRYPTHASH, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGetHashParam*( + hHash: HCRYPTHASH, + dwParam: DWORD, + pbData: ptr BYTE, + pdwDataLen: ptr DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetProvParam*( + hProv: HCRYPTPROV, dwParam: DWORD, pbData: ptr BYTE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGetProvParam*( + hProv: HCRYPTPROV, + dwParam: DWORD, + pbData: ptr BYTE, + pdwDataLen: ptr DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGenRandom*( + hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: ptr BYTE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGetUserKey*( + hProv: HCRYPTPROV, dwKeySpec: DWORD, phUserKey: ptr HCRYPTKEY +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptExportKey*( + hKey: HCRYPTKEY, + hExpKey: HCRYPTKEY, + dwBlobType: DWORD, + dwFlags: DWORD, + pbData: ptr BYTE, + pdwDataLen: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptImportKey*( + hProv: HCRYPTPROV, + pbData: ptr BYTE, + dwDataLen: DWORD, + hPubKey: HCRYPTKEY, + dwFlags: DWORD, + phKey: ptr HCRYPTKEY, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptEncrypt*( + hKey: HCRYPTKEY, + hHash: HCRYPTHASH, + Final: WINBOOL, + dwFlags: DWORD, + pbData: ptr BYTE, + pdwDataLen: ptr DWORD, + dwBufLen: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptDecrypt*( + hKey: HCRYPTKEY, + hHash: HCRYPTHASH, + Final: WINBOOL, + dwFlags: DWORD, + pbData: ptr BYTE, + pdwDataLen: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptCreateHash*( + hProv: HCRYPTPROV, + Algid: ALG_ID, + hKey: HCRYPTKEY, + dwFlags: DWORD, + phHash: ptr HCRYPTHASH, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptHashData*( + hHash: HCRYPTHASH, pbData: ptr BYTE, dwDataLen: DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptHashSessionKey*( + hHash: HCRYPTHASH, hKey: HCRYPTKEY, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptDestroyHash*( + hHash: HCRYPTHASH +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSignHashA*( + hHash: HCRYPTHASH, + dwKeySpec: DWORD, + szDescription: LPCSTR, + dwFlags: DWORD, + pbSignature: ptr BYTE, + pdwSigLen: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSignHashW*( + hHash: HCRYPTHASH, + dwKeySpec: DWORD, + szDescription: LPCWSTR, + dwFlags: DWORD, + pbSignature: ptr BYTE, + pdwSigLen: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptVerifySignatureA*( + hHash: HCRYPTHASH, + pbSignature: ptr BYTE, + dwSigLen: DWORD, + hPubKey: HCRYPTKEY, + szDescription: LPCSTR, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptVerifySignatureW*( + hHash: HCRYPTHASH, + pbSignature: ptr BYTE, + dwSigLen: DWORD, + hPubKey: HCRYPTKEY, + szDescription: LPCWSTR, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetProviderA*( + pszProvName: LPCSTR, dwProvType: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetProviderW*( + pszProvName: LPCWSTR, dwProvType: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetProviderExA*( + pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptSetProviderExW*( + pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGetDefaultProviderA*( + dwProvType: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pszProvName: LPSTR, + pcbProvName: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptGetDefaultProviderW*( + dwProvType: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pszProvName: LPWSTR, + pcbProvName: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptEnumProviderTypesA*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szTypeName: LPSTR, + pcbTypeName: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptEnumProviderTypesW*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szTypeName: LPWSTR, + pcbTypeName: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptEnumProvidersA*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szProvName: LPSTR, + pcbProvName: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptEnumProvidersW*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szProvName: LPWSTR, + pcbProvName: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptContextAddRef*( + hProv: HCRYPTPROV, pdwReserved: ptr DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptDuplicateKey*( + hKey: HCRYPTKEY, pdwReserved: ptr DWORD, dwFlags: DWORD, phKey: ptr HCRYPTKEY +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CryptDuplicateHash*( + hHash: HCRYPTHASH, pdwReserved: ptr DWORD, dwFlags: DWORD, phHash: ptr HCRYPTHASH +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc BCryptOpenAlgorithmProvider*( + phAlgorithm: ptr BCRYPT_ALG_HANDLE, + pszAlgId: LPCWSTR, + pszImplementation: LPCWSTR, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEnumAlgorithms*( + dwAlgOperations: ULONG, + pAlgCount: ptr ULONG, + ppAlgList: ptr ptr BCRYPT_ALGORITHM_IDENTIFIER, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEnumProviders*( + pszAlgId: LPCWSTR, + pImplCount: ptr ULONG, + ppImplList: ptr ptr BCRYPT_PROVIDER_NAME, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptGetProperty*( + hObject: BCRYPT_HANDLE, + pszProperty: LPCWSTR, + pbOutput: PUCHAR, + cbOutput: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptSetProperty*( + hObject: BCRYPT_HANDLE, + pszProperty: LPCWSTR, + pbInput: PUCHAR, + cbInput: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptCloseAlgorithmProvider*( + hAlgorithm: BCRYPT_ALG_HANDLE, dwFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptFreeBuffer*( + pvBuffer: PVOID +): VOID {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptGenerateSymmetricKey*( + hAlgorithm: BCRYPT_ALG_HANDLE, + phKey: ptr BCRYPT_KEY_HANDLE, + pbKeyObject: PUCHAR, + cbKeyObject: ULONG, + pbSecret: PUCHAR, + cbSecret: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptGenerateKeyPair*( + hAlgorithm: BCRYPT_ALG_HANDLE, + phKey: ptr BCRYPT_KEY_HANDLE, + dwLength: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEncrypt*( + hKey: BCRYPT_KEY_HANDLE, + pbInput: PUCHAR, + cbInput: ULONG, + pPaddingInfo: pointer, + pbIV: PUCHAR, + cbIV: ULONG, + pbOutput: PUCHAR, + cbOutput: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDecrypt*( + hKey: BCRYPT_KEY_HANDLE, + pbInput: PUCHAR, + cbInput: ULONG, + pPaddingInfo: pointer, + pbIV: PUCHAR, + cbIV: ULONG, + pbOutput: PUCHAR, + cbOutput: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptExportKey*( + hKey: BCRYPT_KEY_HANDLE, + hExportKey: BCRYPT_KEY_HANDLE, + pszBlobType: LPCWSTR, + pbOutput: PUCHAR, + cbOutput: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptImportKey*( + hAlgorithm: BCRYPT_ALG_HANDLE, + hImportKey: BCRYPT_KEY_HANDLE, + pszBlobType: LPCWSTR, + phKey: ptr BCRYPT_KEY_HANDLE, + pbKeyObject: PUCHAR, + cbKeyObject: ULONG, + pbInput: PUCHAR, + cbInput: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptImportKeyPair*( + hAlgorithm: BCRYPT_ALG_HANDLE, + hImportKey: BCRYPT_KEY_HANDLE, + pszBlobType: LPCWSTR, + phKey: ptr BCRYPT_KEY_HANDLE, + pbInput: PUCHAR, + cbInput: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDuplicateKey*( + hKey: BCRYPT_KEY_HANDLE, + phNewKey: ptr BCRYPT_KEY_HANDLE, + pbKeyObject: PUCHAR, + cbKeyObject: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptFinalizeKeyPair*( + hKey: BCRYPT_KEY_HANDLE, dwFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDestroyKey*( + hKey: BCRYPT_KEY_HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDestroySecret*( + hSecret: BCRYPT_SECRET_HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptSignHash*( + hKey: BCRYPT_KEY_HANDLE, + pPaddingInfo: pointer, + pbInput: PUCHAR, + cbInput: ULONG, + pbOutput: PUCHAR, + cbOutput: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptVerifySignature*( + hKey: BCRYPT_KEY_HANDLE, + pPaddingInfo: pointer, + pbHash: PUCHAR, + cbHash: ULONG, + pbSignature: PUCHAR, + cbSignature: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptSecretAgreement*( + hPrivKey: BCRYPT_KEY_HANDLE, + hPubKey: BCRYPT_KEY_HANDLE, + phAgreedSecret: ptr BCRYPT_SECRET_HANDLE, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDeriveKey*( + hSharedSecret: BCRYPT_SECRET_HANDLE, + pwszKDF: LPCWSTR, + pParameterList: ptr BCryptBufferDesc, + pbDerivedKey: PUCHAR, + cbDerivedKey: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptKeyDerivation*( + hKey: BCRYPT_KEY_HANDLE, + pParameterList: ptr BCryptBufferDesc, + pbDerivedKey: PUCHAR, + cbDerivedKey: ULONG, + pcbResult: ptr ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptCreateHash*( + hAlgorithm: BCRYPT_ALG_HANDLE, + phHash: ptr BCRYPT_HASH_HANDLE, + pbHashObject: PUCHAR, + cbHashObject: ULONG, + pbSecret: PUCHAR, + cbSecret: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptHashData*( + hHash: BCRYPT_HASH_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptFinishHash*( + hHash: BCRYPT_HASH_HANDLE, pbOutput: PUCHAR, cbOutput: ULONG, dwFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDuplicateHash*( + hHash: BCRYPT_HASH_HANDLE, + phNewHash: ptr BCRYPT_HASH_HANDLE, + pbHashObject: PUCHAR, + cbHashObject: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDestroyHash*( + hHash: BCRYPT_HASH_HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptGenRandom*( + hAlgorithm: BCRYPT_ALG_HANDLE, pbBuffer: PUCHAR, cbBuffer: ULONG, dwFlags: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDeriveKeyCapi*( + hHash: BCRYPT_HASH_HANDLE, + hTargetAlg: BCRYPT_ALG_HANDLE, + pbDerivedKey: PUCHAR, + cbDerivedKey: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDeriveKeyPBKDF2*( + hPrf: BCRYPT_ALG_HANDLE, + pbPassword: PUCHAR, + cbPassword: ULONG, + pbSalt: PUCHAR, + cbSalt: ULONG, + cIterations: ULONGLONG, + pbDerivedKey: PUCHAR, + cbDerivedKey: ULONG, + dwFlags: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptResolveProviders*( + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + pszProvider: LPCWSTR, + dwMode: ULONG, + dwFlags: ULONG, + pcbBuffer: ptr ULONG, + ppBuffer: ptr PCRYPT_PROVIDER_REFS, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptGetFipsAlgorithmMode*( + pfEnabled: ptr BOOLEAN +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptRegisterConfigChangeNotify*( + pEvent: PRKEVENT +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptUnregisterConfigChangeNotify*( + pEvent: PRKEVENT +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptUnregisterConfigChangeNotify*( + hEvent: HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptQueryProviderRegistration*( + pszProvider: LPCWSTR, + dwMode: ULONG, + dwInterface: ULONG, + pcbBuffer: ptr ULONG, + ppBuffer: ptr PCRYPT_PROVIDER_REG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEnumRegisteredProviders*( + pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_PROVIDERS +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptCreateContext*( + dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptDeleteContext*( + dwTable: ULONG, pszContext: LPCWSTR +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEnumContexts*( + dwTable: ULONG, pcbBuffer: ptr ULONG, ppBuffer: ptr PCRYPT_CONTEXTS +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptConfigureContext*( + dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptQueryContextConfiguration*( + dwTable: ULONG, + pszContext: LPCWSTR, + pcbBuffer: ptr ULONG, + ppBuffer: ptr PCRYPT_CONTEXT_CONFIG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptAddContextFunction*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + dwPosition: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptRemoveContextFunction*( + dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEnumContextFunctions*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pcbBuffer: ptr ULONG, + ppBuffer: ptr PCRYPT_CONTEXT_FUNCTIONS, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptConfigureContextFunction*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptQueryContextFunctionConfiguration*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + pcbBuffer: ptr ULONG, + ppBuffer: ptr PCRYPT_CONTEXT_FUNCTION_CONFIG, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptEnumContextFunctionProviders*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + pcbBuffer: ptr ULONG, + ppBuffer: ptr PCRYPT_CONTEXT_FUNCTION_PROVIDERS, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptSetContextFunctionProperty*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + pszProperty: LPCWSTR, + cbValue: ULONG, + pbValue: PUCHAR, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptQueryContextFunctionProperty*( + dwTable: ULONG, + pszContext: LPCWSTR, + dwInterface: ULONG, + pszFunction: LPCWSTR, + pszProperty: LPCWSTR, + pcbValue: ptr ULONG, + ppbValue: ptr PUCHAR, +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc BCryptRegisterConfigChangeNotify*( + phEvent: ptr HANDLE +): NTSTATUS {.winapi, stdcall, dynlib: "bcrypt", importc.} + +proc NCryptOpenStorageProvider*( + phProvider: ptr NCRYPT_PROV_HANDLE, pszProviderName: LPCWSTR, dwFlags: DWORD +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptEnumAlgorithms*( + hProvider: NCRYPT_PROV_HANDLE, + dwAlgOperations: DWORD, + pdwAlgCount: ptr DWORD, + ppAlgList: ptr ptr NCryptAlgorithmName, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptIsAlgSupported*( + hProvider: NCRYPT_PROV_HANDLE, pszAlgId: LPCWSTR, dwFlags: DWORD +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptEnumKeys*( + hProvider: NCRYPT_PROV_HANDLE, + pszScope: LPCWSTR, + ppKeyName: ptr ptr NCryptKeyName, + ppEnumState: ptr PVOID, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptEnumStorageProviders*( + pdwProviderCount: ptr DWORD, + ppProviderList: ptr ptr NCryptProviderName, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptFreeBuffer*( + pvInput: PVOID +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptOpenKey*( + hProvider: NCRYPT_PROV_HANDLE, + phKey: ptr NCRYPT_KEY_HANDLE, + pszKeyName: LPCWSTR, + dwLegacyKeySpec: DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptCreatePersistedKey*( + hProvider: NCRYPT_PROV_HANDLE, + phKey: ptr NCRYPT_KEY_HANDLE, + pszAlgId: LPCWSTR, + pszKeyName: LPCWSTR, + dwLegacyKeySpec: DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptGetProperty*( + hObject: NCRYPT_HANDLE, + pszProperty: LPCWSTR, + pbOutput: PBYTE, + cbOutput: DWORD, + pcbResult: ptr DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptSetProperty*( + hObject: NCRYPT_HANDLE, + pszProperty: LPCWSTR, + pbInput: PBYTE, + cbInput: DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptFinalizeKey*( + hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptEncrypt*( + hKey: NCRYPT_KEY_HANDLE, + pbInput: PBYTE, + cbInput: DWORD, + pPaddingInfo: pointer, + pbOutput: PBYTE, + cbOutput: DWORD, + pcbResult: ptr DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptDecrypt*( + hKey: NCRYPT_KEY_HANDLE, + pbInput: PBYTE, + cbInput: DWORD, + pPaddingInfo: pointer, + pbOutput: PBYTE, + cbOutput: DWORD, + pcbResult: ptr DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptImportKey*( + hProvider: NCRYPT_PROV_HANDLE, + hImportKey: NCRYPT_KEY_HANDLE, + pszBlobType: LPCWSTR, + pParameterList: ptr NCryptBufferDesc, + phKey: ptr NCRYPT_KEY_HANDLE, + pbData: PBYTE, + cbData: DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptExportKey*( + hKey: NCRYPT_KEY_HANDLE, + hExportKey: NCRYPT_KEY_HANDLE, + pszBlobType: LPCWSTR, + pParameterList: ptr NCryptBufferDesc, + pbOutput: PBYTE, + cbOutput: DWORD, + pcbResult: ptr DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptSignHash*( + hKey: NCRYPT_KEY_HANDLE, + pPaddingInfo: pointer, + pbHashValue: PBYTE, + cbHashValue: DWORD, + pbSignature: PBYTE, + cbSignature: DWORD, + pcbResult: ptr DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptVerifySignature*( + hKey: NCRYPT_KEY_HANDLE, + pPaddingInfo: pointer, + pbHashValue: PBYTE, + cbHashValue: DWORD, + pbSignature: PBYTE, + cbSignature: DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptDeleteKey*( + hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptFreeObject*( + hObject: NCRYPT_HANDLE +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptIsKeyHandle*( + hKey: NCRYPT_KEY_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptTranslateHandle*( + phProvider: ptr NCRYPT_PROV_HANDLE, + phKey: ptr NCRYPT_KEY_HANDLE, + hLegacyProv: HCRYPTPROV, + hLegacyKey: HCRYPTKEY, + dwLegacyKeySpec: DWORD, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptNotifyChangeKey*( + hProvider: NCRYPT_PROV_HANDLE, phEvent: ptr HANDLE, dwFlags: DWORD +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptSecretAgreement*( + hPrivKey: NCRYPT_KEY_HANDLE, + hPubKey: NCRYPT_KEY_HANDLE, + phAgreedSecret: ptr NCRYPT_SECRET_HANDLE, + dwFlags: DWORD, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptDeriveKey*( + hSharedSecret: NCRYPT_SECRET_HANDLE, + pwszKDF: LPCWSTR, + pParameterList: ptr NCryptBufferDesc, + pbDerivedKey: PBYTE, + cbDerivedKey: DWORD, + pcbResult: ptr DWORD, + dwFlags: ULONG, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc NCryptKeyDerivation*( + hKey: NCRYPT_KEY_HANDLE, + pParameterList: ptr NCryptBufferDesc, + pbDerivedKey: PUCHAR, + cbDerivedKey: DWORD, + pcbResult: ptr DWORD, + dwFlags: ULONG, +): SECURITY_STATUS {.winapi, stdcall, dynlib: "ncrypt", importc.} + +proc CryptFormatObject*( + dwCertEncodingType: DWORD, + dwFormatType: DWORD, + dwFormatStrType: DWORD, + pFormatStruct: pointer, + lpszStructType: LPCSTR, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + pbFormat: pointer, + pcbFormat: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptEncodeObjectEx*( + dwCertEncodingType: DWORD, + lpszStructType: LPCSTR, + pvStructInfo: pointer, + dwFlags: DWORD, + pEncodePara: PCRYPT_ENCODE_PARA, + pvEncoded: pointer, + pcbEncoded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptEncodeObject*( + dwCertEncodingType: DWORD, + lpszStructType: LPCSTR, + pvStructInfo: pointer, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptDecodeObjectEx*( + dwCertEncodingType: DWORD, + lpszStructType: LPCSTR, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + dwFlags: DWORD, + pDecodePara: PCRYPT_DECODE_PARA, + pvStructInfo: pointer, + pcbStructInfo: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptDecodeObject*( + dwCertEncodingType: DWORD, + lpszStructType: LPCSTR, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + dwFlags: DWORD, + pvStructInfo: pointer, + pcbStructInfo: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptInstallOIDFunctionAddress*( + hModule: HMODULE, + dwEncodingType: DWORD, + pszFuncName: LPCSTR, + cFuncEntry: DWORD, + rgFuncEntry: ptr CRYPT_OID_FUNC_ENTRY, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptInitOIDFunctionSet*( + pszFuncName: LPCSTR, dwFlags: DWORD +): HCRYPTOIDFUNCSET {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetOIDFunctionAddress*( + hFuncSet: HCRYPTOIDFUNCSET, + dwEncodingType: DWORD, + pszOID: LPCSTR, + dwFlags: DWORD, + ppvFuncAddr: ptr pointer, + phFuncAddr: ptr HCRYPTOIDFUNCADDR, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetDefaultOIDDllList*( + hFuncSet: HCRYPTOIDFUNCSET, + dwEncodingType: DWORD, + pwszDllList: ptr WCHAR, + pcchDllList: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetDefaultOIDFunctionAddress*( + hFuncSet: HCRYPTOIDFUNCSET, + dwEncodingType: DWORD, + pwszDll: LPCWSTR, + dwFlags: DWORD, + ppvFuncAddr: ptr pointer, + phFuncAddr: ptr HCRYPTOIDFUNCADDR, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptFreeOIDFunctionAddress*( + hFuncAddr: HCRYPTOIDFUNCADDR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptRegisterOIDFunction*( + dwEncodingType: DWORD, + pszFuncName: LPCSTR, + pszOID: LPCSTR, + pwszDll: LPCWSTR, + pszOverrideFuncName: LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUnregisterOIDFunction*( + dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptRegisterDefaultOIDFunction*( + dwEncodingType: DWORD, pszFuncName: LPCSTR, dwIndex: DWORD, pwszDll: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUnregisterDefaultOIDFunction*( + dwEncodingType: DWORD, pszFuncName: LPCSTR, pwszDll: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSetOIDFunctionValue*( + dwEncodingType: DWORD, + pszFuncName: LPCSTR, + pszOID: LPCSTR, + pwszValueName: LPCWSTR, + dwValueType: DWORD, + pbValueData: ptr BYTE, + cbValueData: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetOIDFunctionValue*( + dwEncodingType: DWORD, + pszFuncName: LPCSTR, + pszOID: LPCSTR, + pwszValueName: LPCWSTR, + pdwValueType: ptr DWORD, + pbValueData: ptr BYTE, + pcbValueData: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptEnumOIDFunction*( + dwEncodingType: DWORD, + pszFuncName: LPCSTR, + pszOID: LPCSTR, + dwFlags: DWORD, + pvArg: pointer, + pfnEnumOIDFunc: PFN_CRYPT_ENUM_OID_FUNC, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptFindOIDInfo*( + dwKeyType: DWORD, pvKey: pointer, dwGroupId: DWORD +): PCCRYPT_OID_INFO {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptRegisterOIDInfo*( + pInfo: PCCRYPT_OID_INFO, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUnregisterOIDInfo*( + pInfo: PCCRYPT_OID_INFO +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptEnumOIDInfo*( + dwGroupId: DWORD, + dwFlags: DWORD, + pvArg: pointer, + pfnEnumOIDInfo: PFN_CRYPT_ENUM_OID_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptFindLocalizedName*( + pwszCryptName: LPCWSTR +): LPCWSTR {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgOpenToEncode*( + dwMsgEncodingType: DWORD, + dwFlags: DWORD, + dwMsgType: DWORD, + pvMsgEncodeInfo: pointer, + pszInnerContentObjID: LPSTR, + pStreamInfo: PCMSG_STREAM_INFO, +): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgCalculateEncodedLength*( + dwMsgEncodingType: DWORD, + dwFlags: DWORD, + dwMsgType: DWORD, + pvMsgEncodeInfo: pointer, + pszInnerContentObjID: LPSTR, + cbData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgOpenToDecode*( + dwMsgEncodingType: DWORD, + dwFlags: DWORD, + dwMsgType: DWORD, + hCryptProv: HCRYPTPROV_LEGACY, + pRecipientInfo: PCERT_INFO, + pStreamInfo: PCMSG_STREAM_INFO, +): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgDuplicate*( + hCryptMsg: HCRYPTMSG +): HCRYPTMSG {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgClose*( + hCryptMsg: HCRYPTMSG +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgUpdate*( + hCryptMsg: HCRYPTMSG, pbData: ptr BYTE, cbData: DWORD, fFinal: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgGetParam*( + hCryptMsg: HCRYPTMSG, + dwParamType: DWORD, + dwIndex: DWORD, + pvData: pointer, + pcbData: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgControl*( + hCryptMsg: HCRYPTMSG, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgVerifyCountersignatureEncoded*( + hCryptProv: HCRYPTPROV_LEGACY, + dwEncodingType: DWORD, + pbSignerInfo: PBYTE, + cbSignerInfo: DWORD, + pbSignerInfoCountersignature: PBYTE, + cbSignerInfoCountersignature: DWORD, + pciCountersigner: PCERT_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgVerifyCountersignatureEncodedEx*( + hCryptProv: HCRYPTPROV_LEGACY, + dwEncodingType: DWORD, + pbSignerInfo: PBYTE, + cbSignerInfo: DWORD, + pbSignerInfoCountersignature: PBYTE, + cbSignerInfoCountersignature: DWORD, + dwSignerType: DWORD, + pvSigner: pointer, + dwFlags: DWORD, + pvExtra: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgCountersign*( + hCryptMsg: HCRYPTMSG, + dwIndex: DWORD, + cCountersigners: DWORD, + rgCountersigners: PCMSG_SIGNER_ENCODE_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgCountersignEncoded*( + dwEncodingType: DWORD, + pbSignerInfo: PBYTE, + cbSignerInfo: DWORD, + cCountersigners: DWORD, + rgCountersigners: PCMSG_SIGNER_ENCODE_INFO, + pbCountersignature: PBYTE, + pcbCountersignature: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertOpenStore*( + lpszStoreProvider: LPCSTR, + dwEncodingType: DWORD, + hCryptProv: HCRYPTPROV_LEGACY, + dwFlags: DWORD, + pvPara: pointer, +): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDuplicateStore*( + hCertStore: HCERTSTORE +): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSaveStore*( + hCertStore: HCERTSTORE, + dwEncodingType: DWORD, + dwSaveAs: DWORD, + dwSaveTo: DWORD, + pvSaveToPara: pointer, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCloseStore*( + hCertStore: HCERTSTORE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetSubjectCertificateFromStore*( + hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, pCertId: PCERT_INFO +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumCertificatesInStore*( + hCertStore: HCERTSTORE, pPrevCertContext: PCCERT_CONTEXT +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindCertificateInStore*( + hCertStore: HCERTSTORE, + dwCertEncodingType: DWORD, + dwFindFlags: DWORD, + dwFindType: DWORD, + pvFindPara: pointer, + pPrevCertContext: PCCERT_CONTEXT, +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetIssuerCertificateFromStore*( + hCertStore: HCERTSTORE, + pSubjectContext: PCCERT_CONTEXT, + pPrevIssuerContext: PCCERT_CONTEXT, + pdwFlags: ptr DWORD, +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifySubjectCertificateContext*( + pSubject: PCCERT_CONTEXT, pIssuer: PCCERT_CONTEXT, pdwFlags: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDuplicateCertificateContext*( + pCertContext: PCCERT_CONTEXT +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCreateCertificateContext*( + dwCertEncodingType: DWORD, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeCertificateContext*( + pCertContext: PCCERT_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSetCertificateContextProperty*( + pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumCRLsInStore*( + hCertStore: HCERTSTORE, pPrevCrlContext: PCCRL_CONTEXT +): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDeleteCRLFromStore*( + pCrlContext: PCCRL_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDuplicateCRLContext*( + pCrlContext: PCCRL_CONTEXT +): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindCRLInStore*( + hCertStore: HCERTSTORE, + dwCertEncodingType: DWORD, + dwFindFlags: DWORD, + dwFindType: DWORD, + pvFindPara: pointer, + pPrevCrlContext: PCCRL_CONTEXT, +): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeCRLContext*( + pCrlContext: PCCRL_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetCertificateContextProperty*( + pCertContext: PCCERT_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumCertificateContextProperties*( + pCertContext: PCCERT_CONTEXT, dwPropId: DWORD +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCreateCTLEntryFromCertificateContextProperties*( + pCertContext: PCCERT_CONTEXT, + cOptAttr: DWORD, + rgOptAttr: PCRYPT_ATTRIBUTE, + dwFlags: DWORD, + pvReserved: pointer, + pCtlEntry: PCTL_ENTRY, + pcbCtlEntry: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSetCertificateContextPropertiesFromCTLEntry*( + pCertContext: PCCERT_CONTEXT, pCtlEntry: PCTL_ENTRY, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetCRLFromStore*( + hCertStore: HCERTSTORE, + pIssuerContext: PCCERT_CONTEXT, + pPrevCrlContext: PCCRL_CONTEXT, + pdwFlags: ptr DWORD, +): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCreateCRLContext*( + dwCertEncodingType: DWORD, pbCrlEncoded: ptr BYTE, cbCrlEncoded: DWORD +): PCCRL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSetCRLContextProperty*( + pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetCRLContextProperty*( + pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumCRLContextProperties*( + pCrlContext: PCCRL_CONTEXT, dwPropId: DWORD +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindCertificateInCRL*( + pCert: PCCERT_CONTEXT, + pCrlContext: PCCRL_CONTEXT, + dwFlags: DWORD, + pvReserved: pointer, + ppCrlEntry: ptr PCRL_ENTRY, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertIsValidCRLForCertificate*( + pCert: PCCERT_CONTEXT, pCrl: PCCRL_CONTEXT, dwFlags: DWORD, pvReserved: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddEncodedCertificateToStore*( + hCertStore: HCERTSTORE, + dwCertEncodingType: DWORD, + pbCertEncoded: ptr BYTE, + cbCertEncoded: DWORD, + dwAddDisposition: DWORD, + ppCertContext: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddCertificateContextToStore*( + hCertStore: HCERTSTORE, + pCertContext: PCCERT_CONTEXT, + dwAddDisposition: DWORD, + ppStoreContext: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddSerializedElementToStore*( + hCertStore: HCERTSTORE, + pbElement: ptr BYTE, + cbElement: DWORD, + dwAddDisposition: DWORD, + dwFlags: DWORD, + dwContextTypeFlags: DWORD, + pdwContextType: ptr DWORD, + ppvContext: ptr pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDeleteCertificateFromStore*( + pCertContext: PCCERT_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddEncodedCRLToStore*( + hCertStore: HCERTSTORE, + dwCertEncodingType: DWORD, + pbCrlEncoded: ptr BYTE, + cbCrlEncoded: DWORD, + dwAddDisposition: DWORD, + ppCrlContext: ptr PCCRL_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddCRLContextToStore*( + hCertStore: HCERTSTORE, + pCrlContext: PCCRL_CONTEXT, + dwAddDisposition: DWORD, + ppStoreContext: ptr PCCRL_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSerializeCertificateStoreElement*( + pCertContext: PCCERT_CONTEXT, + dwFlags: DWORD, + pbElement: ptr BYTE, + pcbElement: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSerializeCRLStoreElement*( + pCrlContext: PCCRL_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDuplicateCTLContext*( + pCtlContext: PCCTL_CONTEXT +): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCreateCTLContext*( + dwMsgAndCertEncodingType: DWORD, pbCtlEncoded: ptr BYTE, cbCtlEncoded: DWORD +): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeCTLContext*( + pCtlContext: PCCTL_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSetCTLContextProperty*( + pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetCTLContextProperty*( + pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumCTLContextProperties*( + pCtlContext: PCCTL_CONTEXT, dwPropId: DWORD +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumCTLsInStore*( + hCertStore: HCERTSTORE, pPrevCtlContext: PCCTL_CONTEXT +): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindSubjectInCTL*( + dwEncodingType: DWORD, + dwSubjectType: DWORD, + pvSubject: pointer, + pCtlContext: PCCTL_CONTEXT, + dwFlags: DWORD, +): PCTL_ENTRY {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindCTLInStore*( + hCertStore: HCERTSTORE, + dwMsgAndCertEncodingType: DWORD, + dwFindFlags: DWORD, + dwFindType: DWORD, + pvFindPara: pointer, + pPrevCtlContext: PCCTL_CONTEXT, +): PCCTL_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddEncodedCTLToStore*( + hCertStore: HCERTSTORE, + dwMsgAndCertEncodingType: DWORD, + pbCtlEncoded: ptr BYTE, + cbCtlEncoded: DWORD, + dwAddDisposition: DWORD, + ppCtlContext: ptr PCCTL_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddCTLContextToStore*( + hCertStore: HCERTSTORE, + pCtlContext: PCCTL_CONTEXT, + dwAddDisposition: DWORD, + ppStoreContext: ptr PCCTL_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSerializeCTLStoreElement*( + pCtlContext: PCCTL_CONTEXT, dwFlags: DWORD, pbElement: ptr BYTE, pcbElement: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDeleteCTLFromStore*( + pCtlContext: PCCTL_CONTEXT +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddCertificateLinkToStore*( + hCertStore: HCERTSTORE, + pCertContext: PCCERT_CONTEXT, + dwAddDisposition: DWORD, + ppStoreContext: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddCRLLinkToStore*( + hCertStore: HCERTSTORE, + pCrlContext: PCCRL_CONTEXT, + dwAddDisposition: DWORD, + ppStoreContext: ptr PCCRL_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddCTLLinkToStore*( + hCertStore: HCERTSTORE, + pCtlContext: PCCTL_CONTEXT, + dwAddDisposition: DWORD, + ppStoreContext: ptr PCCTL_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddStoreToCollection*( + hCollectionStore: HCERTSTORE, + hSiblingStore: HCERTSTORE, + dwUpdateFlags: DWORD, + dwPriority: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRemoveStoreFromCollection*( + hCollectionStore: HCERTSTORE, hSiblingStore: HCERTSTORE +): void {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertControlStore*( + hCertStore: HCERTSTORE, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSetStoreProperty*( + hCertStore: HCERTSTORE, dwPropId: DWORD, dwFlags: DWORD, pvData: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetStoreProperty*( + hCertStore: HCERTSTORE, dwPropId: DWORD, pvData: pointer, pcbData: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRegisterSystemStore*( + pvSystemStore: pointer, + dwFlags: DWORD, + pStoreInfo: PCERT_SYSTEM_STORE_INFO, + pvReserved: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRegisterPhysicalStore*( + pvSystemStore: pointer, + dwFlags: DWORD, + pwszStoreName: LPCWSTR, + pStoreInfo: PCERT_PHYSICAL_STORE_INFO, + pvReserved: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertUnregisterSystemStore*( + pvSystemStore: pointer, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertUnregisterPhysicalStore*( + pvSystemStore: pointer, dwFlags: DWORD, pwszStoreName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumSystemStoreLocation*( + dwFlags: DWORD, pvArg: pointer, pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE_LOCATION +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumSystemStore*( + dwFlags: DWORD, + pvSystemStoreLocationPara: pointer, + pvArg: pointer, + pfnEnum: PFN_CERT_ENUM_SYSTEM_STORE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumPhysicalStore*( + pvSystemStore: pointer, + dwFlags: DWORD, + pvArg: pointer, + pfnEnum: PFN_CERT_ENUM_PHYSICAL_STORE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetEnhancedKeyUsage*( + pCertContext: PCCERT_CONTEXT, + dwFlags: DWORD, + pUsage: PCERT_ENHKEY_USAGE, + pcbUsage: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSetEnhancedKeyUsage*( + pCertContext: PCCERT_CONTEXT, pUsage: PCERT_ENHKEY_USAGE +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddEnhancedKeyUsageIdentifier*( + pCertContext: PCCERT_CONTEXT, pszUsageIdentifier: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRemoveEnhancedKeyUsageIdentifier*( + pCertContext: PCCERT_CONTEXT, pszUsageIdentifier: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetValidUsages*( + cCerts: DWORD, + rghCerts: ptr PCCERT_CONTEXT, + cNumOIDs: ptr int32, + rghOIDs: ptr LPSTR, + pcbOIDs: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgGetAndVerifySigner*( + hCryptMsg: HCRYPTMSG, + cSignerStore: DWORD, + rghSignerStore: ptr HCERTSTORE, + dwFlags: DWORD, + ppSigner: ptr PCCERT_CONTEXT, + pdwSignerIndex: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgSignCTL*( + dwMsgEncodingType: DWORD, + pbCtlContent: ptr BYTE, + cbCtlContent: DWORD, + pSignInfo: PCMSG_SIGNED_ENCODE_INFO, + dwFlags: DWORD, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMsgEncodeAndSignCTL*( + dwMsgEncodingType: DWORD, + pCtlInfo: PCTL_INFO, + pSignInfo: PCMSG_SIGNED_ENCODE_INFO, + dwFlags: DWORD, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindSubjectInSortedCTL*( + pSubjectIdentifier: PCRYPT_DATA_BLOB, + pCtlContext: PCCTL_CONTEXT, + dwFlags: DWORD, + pvReserved: pointer, + pEncodedAttributes: PCRYPT_DER_BLOB, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertEnumSubjectInSortedCTL*( + pCtlContext: PCCTL_CONTEXT, + ppvNextSubject: ptr pointer, + pSubjectIdentifier: PCRYPT_DER_BLOB, + pEncodedAttributes: PCRYPT_DER_BLOB, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyCTLUsage*( + dwEncodingType: DWORD, + dwSubjectType: DWORD, + pvSubject: pointer, + pSubjectUsage: PCTL_USAGE, + dwFlags: DWORD, + pVerifyUsagePara: PCTL_VERIFY_USAGE_PARA, + pVerifyUsageStatus: PCTL_VERIFY_USAGE_STATUS, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyRevocation*( + dwEncodingType: DWORD, + dwRevType: DWORD, + cContext: DWORD, + rgpvContext: ptr PVOID, + dwFlags: DWORD, + pRevPara: PCERT_REVOCATION_PARA, + pRevStatus: PCERT_REVOCATION_STATUS, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCompareIntegerBlob*( + pInt1: PCRYPT_INTEGER_BLOB, pInt2: PCRYPT_INTEGER_BLOB +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCompareCertificate*( + dwCertEncodingType: DWORD, pCertId1: PCERT_INFO, pCertId2: PCERT_INFO +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCompareCertificateName*( + dwCertEncodingType: DWORD, pCertName1: PCERT_NAME_BLOB, pCertName2: PCERT_NAME_BLOB +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertIsRDNAttrsInCertificateName*( + dwCertEncodingType: DWORD, dwFlags: DWORD, pCertName: PCERT_NAME_BLOB, pRDN: PCERT_RDN +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertComparePublicKeyInfo*( + dwCertEncodingType: DWORD, + pPublicKey1: PCERT_PUBLIC_KEY_INFO, + pPublicKey2: PCERT_PUBLIC_KEY_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetPublicKeyLength*( + dwCertEncodingType: DWORD, pPublicKey: PCERT_PUBLIC_KEY_INFO +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyCertificateSignature*( + hCryptProv: HCRYPTPROV_LEGACY, + dwCertEncodingType: DWORD, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + pPublicKey: PCERT_PUBLIC_KEY_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyCertificateSignatureEx*( + hCryptProv: HCRYPTPROV_LEGACY, + dwCertEncodingType: DWORD, + dwSubjectType: DWORD, + pvSubject: pointer, + dwIssuerType: DWORD, + pvIssuer: pointer, + dwFlags: DWORD, + pvExtra: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertIsStrongHashToSign*( + pStrongSignPara: PCCERT_STRONG_SIGN_PARA, + pwszCNGHashAlgid: LPCWSTR, + pSigningCert: PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptHashToBeSigned*( + hCryptProv: HCRYPTPROV_LEGACY, + dwCertEncodingType: DWORD, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptHashCertificate*( + hCryptProv: HCRYPTPROV_LEGACY, + Algid: ALG_ID, + dwFlags: DWORD, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptHashCertificate2*( + pwszCNGHashAlgid: LPCWSTR, + dwFlags: DWORD, + pvReserved: pointer, + pbEncoded: ptr BYTE, + cbEncoded: DWORD, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSignCertificate*( + hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, + dwKeySpec: DWORD, + dwCertEncodingType: DWORD, + pbEncodedToBeSigned: ptr BYTE, + cbEncodedToBeSigned: DWORD, + pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pvHashAuxInfo: pointer, + pbSignature: ptr BYTE, + pcbSignature: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSignAndEncodeCertificate*( + hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, + dwKeySpec: DWORD, + dwCertEncodingType: DWORD, + lpszStructType: LPCSTR, + pvStructInfo: pointer, + pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pvHashAuxInfo: pointer, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyTimeValidity*( + pTimeToVerify: LPFILETIME, pCertInfo: PCERT_INFO +): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyCRLTimeValidity*( + pTimeToVerify: LPFILETIME, pCrlInfo: PCRL_INFO +): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyValidityNesting*( + pSubjectInfo: PCERT_INFO, pIssuerInfo: PCERT_INFO +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyCRLRevocation*( + dwCertEncodingType: DWORD, + pCertId: PCERT_INFO, + cCrlInfo: DWORD, + rgpCrlInfo: ptr PCRL_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAlgIdToOID*( + dwAlgId: DWORD +): LPCSTR {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertOIDToAlgId*( + pszObjId: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindExtension*( + pszObjId: LPCSTR, cExtensions: DWORD, rgExtensions: ptr CERT_EXTENSION +): PCERT_EXTENSION {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindAttribute*( + pszObjId: LPCSTR, cAttr: DWORD, rgAttr: ptr CRYPT_ATTRIBUTE +): PCRYPT_ATTRIBUTE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindRDNAttr*( + pszObjId: LPCSTR, pName: PCERT_NAME_INFO +): PCERT_RDN_ATTR {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetIntendedKeyUsage*( + dwCertEncodingType: DWORD, + pCertInfo: PCERT_INFO, + pbKeyUsage: ptr BYTE, + cbKeyUsage: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptInstallDefaultContext*( + hCryptProv: HCRYPTPROV, + dwDefaultType: DWORD, + pvDefaultPara: pointer, + dwFlags: DWORD, + pvReserved: pointer, + phDefaultContext: ptr HCRYPTDEFAULTCONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUninstallDefaultContext*( + hDefaultContext: HCRYPTDEFAULTCONTEXT, dwFlags: DWORD, pvReserved: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptExportPublicKeyInfo*( + hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, + dwKeySpec: DWORD, + dwCertEncodingType: DWORD, + pInfo: PCERT_PUBLIC_KEY_INFO, + pcbInfo: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptExportPublicKeyInfoEx*( + hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, + dwKeySpec: DWORD, + dwCertEncodingType: DWORD, + pszPublicKeyObjId: LPSTR, + dwFlags: DWORD, + pvAuxInfo: pointer, + pInfo: PCERT_PUBLIC_KEY_INFO, + pcbInfo: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptExportPublicKeyInfoFromBCryptKeyHandle*( + hBCryptKey: BCRYPT_KEY_HANDLE, + dwCertEncodingType: DWORD, + pszPublicKeyObjId: LPSTR, + dwFlags: DWORD, + pvAuxInfo: pointer, + pInfo: PCERT_PUBLIC_KEY_INFO, + pcbInfo: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptImportPublicKeyInfo*( + hCryptProv: HCRYPTPROV, + dwCertEncodingType: DWORD, + pInfo: PCERT_PUBLIC_KEY_INFO, + phKey: ptr HCRYPTKEY, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptImportPublicKeyInfoEx*( + hCryptProv: HCRYPTPROV, + dwCertEncodingType: DWORD, + pInfo: PCERT_PUBLIC_KEY_INFO, + aiKeyAlg: ALG_ID, + dwFlags: DWORD, + pvAuxInfo: pointer, + phKey: ptr HCRYPTKEY, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptImportPublicKeyInfoEx2*( + dwCertEncodingType: DWORD, + pInfo: PCERT_PUBLIC_KEY_INFO, + dwFlags: DWORD, + pvAuxInfo: pointer, + phKey: ptr BCRYPT_KEY_HANDLE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptAcquireCertificatePrivateKey*( + pCert: PCCERT_CONTEXT, + dwFlags: DWORD, + pvParameters: pointer, + phCryptProvOrNCryptKey: ptr HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, + pdwKeySpec: ptr DWORD, + pfCallerFreeProvOrNCryptKey: ptr WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptFindCertificateKeyProvInfo*( + pCert: PCCERT_CONTEXT, dwFlags: DWORD, pvReserved: pointer +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptImportPKCS8*( + sPrivateKeyAndParams: CRYPT_PKCS8_IMPORT_PARAMS, + dwFlags: DWORD, + phCryptProv: ptr HCRYPTPROV, + pvAuxInfo: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptExportPKCS8*( + hCryptProv: HCRYPTPROV, + dwKeySpec: DWORD, + pszPrivateKeyObjId: LPSTR, + dwFlags: DWORD, + pvAuxInfo: pointer, + pbPrivateKeyBlob: ptr BYTE, + pcbPrivateKeyBlob: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptHashPublicKeyInfo*( + hCryptProv: HCRYPTPROV_LEGACY, + Algid: ALG_ID, + dwFlags: DWORD, + dwCertEncodingType: DWORD, + pInfo: PCERT_PUBLIC_KEY_INFO, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRDNValueToStrA*( + dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPSTR, csz: DWORD +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRDNValueToStrW*( + dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPWSTR, csz: DWORD +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertNameToStrA*( + dwCertEncodingType: DWORD, + pName: PCERT_NAME_BLOB, + dwStrType: DWORD, + psz: LPSTR, + csz: DWORD, +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertNameToStrW*( + dwCertEncodingType: DWORD, + pName: PCERT_NAME_BLOB, + dwStrType: DWORD, + psz: LPWSTR, + csz: DWORD, +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertStrToNameA*( + dwCertEncodingType: DWORD, + pszX500: LPCSTR, + dwStrType: DWORD, + pvReserved: pointer, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, + ppszError: ptr LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertStrToNameW*( + dwCertEncodingType: DWORD, + pszX500: LPCWSTR, + dwStrType: DWORD, + pvReserved: pointer, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, + ppszError: ptr LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetNameStringA*( + pCertContext: PCCERT_CONTEXT, + dwType: DWORD, + dwFlags: DWORD, + pvTypePara: pointer, + pszNameString: LPSTR, + cchNameString: DWORD, +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetNameStringW*( + pCertContext: PCCERT_CONTEXT, + dwType: DWORD, + dwFlags: DWORD, + pvTypePara: pointer, + pszNameString: LPWSTR, + cchNameString: DWORD, +): DWORD {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSignMessage*( + pSignPara: PCRYPT_SIGN_MESSAGE_PARA, + fDetachedSignature: WINBOOL, + cToBeSigned: DWORD, + rgpbToBeSigned: ptr ptr BYTE, + rgcbToBeSigned: ptr DWORD, + pbSignedBlob: ptr BYTE, + pcbSignedBlob: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyMessageSignature*( + pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, + dwSignerIndex: DWORD, + pbSignedBlob: ptr BYTE, + cbSignedBlob: DWORD, + pbDecoded: ptr BYTE, + pcbDecoded: ptr DWORD, + ppSignerCert: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetMessageSignerCount*( + dwMsgEncodingType: DWORD, pbSignedBlob: ptr BYTE, cbSignedBlob: DWORD +): LONG {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetMessageCertificates*( + dwMsgAndCertEncodingType: DWORD, + hCryptProv: HCRYPTPROV_LEGACY, + dwFlags: DWORD, + pbSignedBlob: ptr BYTE, + cbSignedBlob: DWORD, +): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyDetachedMessageSignature*( + pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, + dwSignerIndex: DWORD, + pbDetachedSignBlob: ptr BYTE, + cbDetachedSignBlob: DWORD, + cToBeSigned: DWORD, + rgpbToBeSigned: ptr ptr BYTE, + rgcbToBeSigned: ptr DWORD, + ppSignerCert: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptEncryptMessage*( + pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA, + cRecipientCert: DWORD, + rgpRecipientCert: ptr PCCERT_CONTEXT, + pbToBeEncrypted: ptr BYTE, + cbToBeEncrypted: DWORD, + pbEncryptedBlob: ptr BYTE, + pcbEncryptedBlob: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptDecryptMessage*( + pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, + pbEncryptedBlob: ptr BYTE, + cbEncryptedBlob: DWORD, + pbDecrypted: ptr BYTE, + pcbDecrypted: ptr DWORD, + ppXchgCert: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSignAndEncryptMessage*( + pSignPara: PCRYPT_SIGN_MESSAGE_PARA, + pEncryptPara: PCRYPT_ENCRYPT_MESSAGE_PARA, + cRecipientCert: DWORD, + rgpRecipientCert: ptr PCCERT_CONTEXT, + pbToBeSignedAndEncrypted: ptr BYTE, + cbToBeSignedAndEncrypted: DWORD, + pbSignedAndEncryptedBlob: ptr BYTE, + pcbSignedAndEncryptedBlob: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptDecryptAndVerifyMessageSignature*( + pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, + pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, + dwSignerIndex: DWORD, + pbEncryptedBlob: ptr BYTE, + cbEncryptedBlob: DWORD, + pbDecrypted: ptr BYTE, + pcbDecrypted: ptr DWORD, + ppXchgCert: ptr PCCERT_CONTEXT, + ppSignerCert: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptDecodeMessage*( + dwMsgTypeFlags: DWORD, + pDecryptPara: PCRYPT_DECRYPT_MESSAGE_PARA, + pVerifyPara: PCRYPT_VERIFY_MESSAGE_PARA, + dwSignerIndex: DWORD, + pbEncodedBlob: ptr BYTE, + cbEncodedBlob: DWORD, + dwPrevInnerContentType: DWORD, + pdwMsgType: ptr DWORD, + pdwInnerContentType: ptr DWORD, + pbDecoded: ptr BYTE, + pcbDecoded: ptr DWORD, + ppXchgCert: ptr PCCERT_CONTEXT, + ppSignerCert: ptr PCCERT_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptHashMessage*( + pHashPara: PCRYPT_HASH_MESSAGE_PARA, + fDetachedHash: WINBOOL, + cToBeHashed: DWORD, + rgpbToBeHashed: ptr ptr BYTE, + rgcbToBeHashed: ptr DWORD, + pbHashedBlob: ptr BYTE, + pcbHashedBlob: ptr DWORD, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyMessageHash*( + pHashPara: PCRYPT_HASH_MESSAGE_PARA, + pbHashedBlob: ptr BYTE, + cbHashedBlob: DWORD, + pbToBeHashed: ptr BYTE, + pcbToBeHashed: ptr DWORD, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyDetachedMessageHash*( + pHashPara: PCRYPT_HASH_MESSAGE_PARA, + pbDetachedHashBlob: ptr BYTE, + cbDetachedHashBlob: DWORD, + cToBeHashed: DWORD, + rgpbToBeHashed: ptr ptr BYTE, + rgcbToBeHashed: ptr DWORD, + pbComputedHash: ptr BYTE, + pcbComputedHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSignMessageWithKey*( + pSignPara: PCRYPT_KEY_SIGN_MESSAGE_PARA, + pbToBeSigned: ptr BYTE, + cbToBeSigned: DWORD, + pbSignedBlob: ptr BYTE, + pcbSignedBlob: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyMessageSignatureWithKey*( + pVerifyPara: PCRYPT_KEY_VERIFY_MESSAGE_PARA, + pPublicKeyInfo: PCERT_PUBLIC_KEY_INFO, + pbSignedBlob: ptr BYTE, + cbSignedBlob: DWORD, + pbDecoded: ptr BYTE, + pcbDecoded: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertOpenSystemStoreA*( + hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCSTR +): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertOpenSystemStoreW*( + hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCWSTR +): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddEncodedCertificateToSystemStoreA*( + szCertStoreName: LPCSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddEncodedCertificateToSystemStoreW*( + szCertStoreName: LPCWSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc FindCertsByIssuer*( + pCertChains: PCERT_CHAIN, + pcbCertChains: ptr DWORD, + pcCertChains: ptr DWORD, + pbEncodedIssuerName: ptr BYTE, + cbEncodedIssuerName: DWORD, + pwszPurpose: LPCWSTR, + dwKeySpec: DWORD, +): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptQueryObject*( + dwObjectType: DWORD, + pvObject: pointer, + dwExpectedContentTypeFlags: DWORD, + dwExpectedFormatTypeFlags: DWORD, + dwFlags: DWORD, + pdwMsgAndCertEncodingType: ptr DWORD, + pdwContentType: ptr DWORD, + pdwFormatType: ptr DWORD, + phCertStore: ptr HCERTSTORE, + phMsg: ptr HCRYPTMSG, + ppvContext: ptr pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMemAlloc*( + cbSize: ULONG +): LPVOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptMemRealloc*( + pv: LPVOID, cbSize: ULONG +): LPVOID {.winapi, stdcall, dynlib: "crypt32", importc.} + proc CryptMemFree*(pv: LPVOID): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptCreateAsyncHandle*(dwFlags: DWORD, phAsync: PHCRYPTASYNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSetAsyncParam*(hAsync: HCRYPTASYNC, pszParamOid: LPSTR, pvParam: LPVOID, pfnFree: PFN_CRYPT_ASYNC_PARAM_FREE_FUNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetAsyncParam*(hAsync: HCRYPTASYNC, pszParamOid: LPSTR, ppvParam: ptr LPVOID, ppfnFree: ptr PFN_CRYPT_ASYNC_PARAM_FREE_FUNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptCloseAsyncHandle*(hAsync: HCRYPTASYNC): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptRetrieveObjectByUrlA*(pszUrl: LPCSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptRetrieveObjectByUrlW*(pszUrl: LPCWSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptInstallCancelRetrieval*(pfnCancel: PFN_CRYPT_CANCEL_RETRIEVAL, pvArg: pointer, dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptUninstallCancelRetrieval*(dwFlags: DWORD, pvReserved: pointer): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptCancelAsyncRetrieval*(hAsyncRetrieval: HCRYPTASYNC): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptGetObjectUrl*(pszUrlOid: LPCSTR, pvPara: LPVOID, dwFlags: DWORD, pUrlArray: PCRYPT_URL_ARRAY, pcbUrlArray: ptr DWORD, pUrlInfo: PCRYPT_URL_INFO, pcbUrlInfo: ptr DWORD, pvReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptGetTimeValidObject*(pszTimeValidOid: LPCSTR, pvPara: LPVOID, pIssuer: PCCERT_CONTEXT, pftValidFor: LPFILETIME, dwFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, pCredentials: PCRYPT_CREDENTIALS, pExtraInfo: PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CryptFlushTimeValidObject*(pszFlushTimeValidOid: LPCSTR, pvPara: LPVOID, pIssuer: PCCERT_CONTEXT, dwFlags: DWORD, pvReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} -proc CertCreateSelfSignCertificate*(hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, pSubjectIssuerBlob: PCERT_NAME_BLOB, dwFlags: DWORD, pKeyProvInfo: PCRYPT_KEY_PROV_INFO, pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, pStartTime: PSYSTEMTIME, pEndTime: PSYSTEMTIME, pExtensions: PCERT_EXTENSIONS): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptGetKeyIdentifierProperty*(pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwPropId: DWORD, dwFlags: DWORD, pwszComputerName: LPCWSTR, pvReserved: pointer, pvData: pointer, pcbData: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSetKeyIdentifierProperty*(pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwPropId: DWORD, dwFlags: DWORD, pwszComputerName: LPCWSTR, pvReserved: pointer, pvData: pointer): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptEnumKeyIdentifierProperties*(pKeyIdentifier: ptr CRYPT_HASH_BLOB, dwPropId: DWORD, dwFlags: DWORD, pwszComputerName: LPCWSTR, pvReserved: pointer, pvArg: pointer, pfnEnum: PFN_CRYPT_ENUM_KEYID_PROP): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptCreateKeyIdentifierFromCSP*(dwCertEncodingType: DWORD, pszPubKeyOID: LPCSTR, pPubKeyStruc: ptr PUBLICKEYSTRUC, cbPubKeyStruc: DWORD, dwFlags: DWORD, pvReserved: pointer, pbHash: ptr BYTE, pcbHash: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCreateCertificateChainEngine*(pConfig: PCERT_CHAIN_ENGINE_CONFIG, phChainEngine: ptr HCERTCHAINENGINE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeCertificateChainEngine*(hChainEngine: HCERTCHAINENGINE): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertResyncCertificateChainEngine*(hChainEngine: HCERTCHAINENGINE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetCertificateChain*(hChainEngine: HCERTCHAINENGINE, pCertContext: PCCERT_CONTEXT, pTime: LPFILETIME, hAdditionalStore: HCERTSTORE, pChainPara: PCERT_CHAIN_PARA, dwFlags: DWORD, pvReserved: LPVOID, ppChainContext: ptr PCCERT_CHAIN_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeCertificateChain*(pChainContext: PCCERT_CHAIN_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertDuplicateCertificateChain*(pChainContext: PCCERT_CHAIN_CONTEXT): PCCERT_CHAIN_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFindChainInStore*(hCertStore: HCERTSTORE, dwCertEncodingType: DWORD, dwFindFlags: DWORD, dwFindType: DWORD, pvFindPara: pointer, pPrevChainContext: PCCERT_CHAIN_CONTEXT): PCCERT_CHAIN_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertVerifyCertificateChainPolicy*(pszPolicyOID: LPCSTR, pChainContext: PCCERT_CHAIN_CONTEXT, pPolicyPara: PCERT_CHAIN_POLICY_PARA, pPolicyStatus: PCERT_CHAIN_POLICY_STATUS): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptStringToBinaryA*(pszString: LPCSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptStringToBinaryW*(pszString: LPCWSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptBinaryToStringA*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptBinaryToStringW*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPWSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc PFXImportCertStore*(pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc PFXIsPFXBlob*(pPFX: ptr CRYPT_DATA_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc PFXVerifyPassword*(pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc PFXExportCertStoreEx*(hStore: HCERTSTORE, pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, pvPara: pointer, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc PFXExportCertStore*(hStore: HCERTSTORE, pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertOpenServerOcspResponse*(pChainContext: PCCERT_CHAIN_CONTEXT, dwFlags: DWORD, pvReserved: LPVOID): HCERT_SERVER_OCSP_RESPONSE {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddRefServerOcspResponse*(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertCloseServerOcspResponse*(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE, dwFlags: DWORD): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertGetServerOcspResponseContext*(hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE, dwFlags: DWORD, pvReserved: LPVOID): PCCERT_SERVER_OCSP_RESPONSE_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertAddRefServerOcspResponseContext*(pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeServerOcspResponseContext*(pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertRetrieveLogoOrBiometricInfo*(pCertContext: PCCERT_CONTEXT, lpszLogoOrBiometricType: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, dwFlags: DWORD, pvReserved: pointer, ppbData: ptr ptr BYTE, pcbData: ptr DWORD, ppwszMimeType: ptr LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertSelectCertificateChains*(pSelectionContext: LPCGUID, dwFlags: DWORD, pChainParameters: PCCERT_SELECT_CHAIN_PARA, cCriteria: DWORD, rgpCriteria: PCCERT_SELECT_CRITERIA, hStore: HCERTSTORE, pcSelection: PDWORD, pprgpSelection: ptr ptr PCCERT_CHAIN_CONTEXT): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CertFreeCertificateChainList*(prgpSelection: ptr PCCERT_CHAIN_CONTEXT): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptRetrieveTimeStamp*(wszUrl: LPCWSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, pszHashId: LPCSTR, pPara: ptr CRYPT_TIMESTAMP_PARA, pbData: ptr BYTE, cbData: DWORD, ppTsContext: ptr PCRYPT_TIMESTAMP_CONTEXT, ppTsSigner: ptr PCCERT_CONTEXT, phStore: ptr HCERTSTORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptVerifyTimeStampSignature*(pbTSContentInfo: ptr BYTE, cbTSContentInfo: DWORD, pbData: ptr BYTE, cbData: DWORD, hAdditionalStore: HCERTSTORE, ppTsContext: ptr PCRYPT_TIMESTAMP_CONTEXT, ppTsSigner: ptr PCCERT_CONTEXT, phStore: ptr HCERTSTORE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptProtectData*(pDataIn: ptr DATA_BLOB, szDataDescr: LPCWSTR, pOptionalEntropy: ptr DATA_BLOB, pvReserved: PVOID, pPromptStruct: ptr CRYPTPROTECT_PROMPTSTRUCT, dwFlags: DWORD, pDataOut: ptr DATA_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUnprotectData*(pDataIn: ptr DATA_BLOB, ppszDataDescr: ptr LPWSTR, pOptionalEntropy: ptr DATA_BLOB, pvReserved: PVOID, pPromptStruct: ptr CRYPTPROTECT_PROMPTSTRUCT, dwFlags: DWORD, pDataOut: ptr DATA_BLOB): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptProtectMemory*(pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUnprotectMemory*(pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptUpdateProtectedState*(pOldSid: PSID, pwszOldPassword: LPCWSTR, dwFlags: DWORD, pdwSuccessCount: ptr DWORD, pdwFailureCount: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc `pOtherName=`*(self: var CERT_ALT_NAME_ENTRY, x: PCERT_OTHER_NAME) {.inline.} = self.union1.pOtherName = x -proc pOtherName*(self: CERT_ALT_NAME_ENTRY): PCERT_OTHER_NAME {.inline.} = self.union1.pOtherName -proc pOtherName*(self: var CERT_ALT_NAME_ENTRY): var PCERT_OTHER_NAME {.inline.} = self.union1.pOtherName -proc `pwszRfc822Name=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = self.union1.pwszRfc822Name = x -proc pwszRfc822Name*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = self.union1.pwszRfc822Name -proc pwszRfc822Name*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = self.union1.pwszRfc822Name -proc `pwszDNSName=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = self.union1.pwszDNSName = x -proc pwszDNSName*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = self.union1.pwszDNSName -proc pwszDNSName*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = self.union1.pwszDNSName -proc `DirectoryName=`*(self: var CERT_ALT_NAME_ENTRY, x: CERT_NAME_BLOB) {.inline.} = self.union1.DirectoryName = x -proc DirectoryName*(self: CERT_ALT_NAME_ENTRY): CERT_NAME_BLOB {.inline.} = self.union1.DirectoryName -proc DirectoryName*(self: var CERT_ALT_NAME_ENTRY): var CERT_NAME_BLOB {.inline.} = self.union1.DirectoryName -proc `pwszURL=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = self.union1.pwszURL = x -proc pwszURL*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = self.union1.pwszURL -proc pwszURL*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = self.union1.pwszURL -proc `IPAddress=`*(self: var CERT_ALT_NAME_ENTRY, x: CRYPT_DATA_BLOB) {.inline.} = self.union1.IPAddress = x -proc IPAddress*(self: CERT_ALT_NAME_ENTRY): CRYPT_DATA_BLOB {.inline.} = self.union1.IPAddress -proc IPAddress*(self: var CERT_ALT_NAME_ENTRY): var CRYPT_DATA_BLOB {.inline.} = self.union1.IPAddress -proc `pszRegisteredID=`*(self: var CERT_ALT_NAME_ENTRY, x: LPSTR) {.inline.} = self.union1.pszRegisteredID = x -proc pszRegisteredID*(self: CERT_ALT_NAME_ENTRY): LPSTR {.inline.} = self.union1.pszRegisteredID -proc pszRegisteredID*(self: var CERT_ALT_NAME_ENTRY): var LPSTR {.inline.} = self.union1.pszRegisteredID -proc `FullName=`*(self: var CRL_DIST_POINT_NAME, x: CERT_ALT_NAME_INFO) {.inline.} = self.union1.FullName = x -proc FullName*(self: CRL_DIST_POINT_NAME): CERT_ALT_NAME_INFO {.inline.} = self.union1.FullName -proc FullName*(self: var CRL_DIST_POINT_NAME): var CERT_ALT_NAME_INFO {.inline.} = self.union1.FullName -proc `pTaggedCertRequest=`*(self: var CMC_TAGGED_REQUEST, x: PCMC_TAGGED_CERT_REQUEST) {.inline.} = self.union1.pTaggedCertRequest = x -proc pTaggedCertRequest*(self: CMC_TAGGED_REQUEST): PCMC_TAGGED_CERT_REQUEST {.inline.} = self.union1.pTaggedCertRequest -proc pTaggedCertRequest*(self: var CMC_TAGGED_REQUEST): var PCMC_TAGGED_CERT_REQUEST {.inline.} = self.union1.pTaggedCertRequest -proc `dwFailInfo=`*(self: var CMC_STATUS_INFO, x: DWORD) {.inline.} = self.union1.dwFailInfo = x -proc dwFailInfo*(self: CMC_STATUS_INFO): DWORD {.inline.} = self.union1.dwFailInfo -proc dwFailInfo*(self: var CMC_STATUS_INFO): var DWORD {.inline.} = self.union1.dwFailInfo -proc `pPendInfo=`*(self: var CMC_STATUS_INFO, x: PCMC_PEND_INFO) {.inline.} = self.union1.pPendInfo = x -proc pPendInfo*(self: CMC_STATUS_INFO): PCMC_PEND_INFO {.inline.} = self.union1.pPendInfo -proc pPendInfo*(self: var CMC_STATUS_INFO): var PCMC_PEND_INFO {.inline.} = self.union1.pPendInfo -proc `dwNumBits=`*(self: var CERT_LOGOTYPE_IMAGE_INFO, x: DWORD) {.inline.} = self.union1.dwNumBits = x -proc dwNumBits*(self: CERT_LOGOTYPE_IMAGE_INFO): DWORD {.inline.} = self.union1.dwNumBits -proc dwNumBits*(self: var CERT_LOGOTYPE_IMAGE_INFO): var DWORD {.inline.} = self.union1.dwNumBits -proc `dwTableSize=`*(self: var CERT_LOGOTYPE_IMAGE_INFO, x: DWORD) {.inline.} = self.union1.dwTableSize = x -proc dwTableSize*(self: CERT_LOGOTYPE_IMAGE_INFO): DWORD {.inline.} = self.union1.dwTableSize -proc dwTableSize*(self: var CERT_LOGOTYPE_IMAGE_INFO): var DWORD {.inline.} = self.union1.dwTableSize -proc `pLogotypeDirectInfo=`*(self: var CERT_LOGOTYPE_INFO, x: PCERT_LOGOTYPE_DATA) {.inline.} = self.union1.pLogotypeDirectInfo = x -proc pLogotypeDirectInfo*(self: CERT_LOGOTYPE_INFO): PCERT_LOGOTYPE_DATA {.inline.} = self.union1.pLogotypeDirectInfo -proc pLogotypeDirectInfo*(self: var CERT_LOGOTYPE_INFO): var PCERT_LOGOTYPE_DATA {.inline.} = self.union1.pLogotypeDirectInfo -proc `pLogotypeIndirectInfo=`*(self: var CERT_LOGOTYPE_INFO, x: PCERT_LOGOTYPE_REFERENCE) {.inline.} = self.union1.pLogotypeIndirectInfo = x -proc pLogotypeIndirectInfo*(self: CERT_LOGOTYPE_INFO): PCERT_LOGOTYPE_REFERENCE {.inline.} = self.union1.pLogotypeIndirectInfo -proc pLogotypeIndirectInfo*(self: var CERT_LOGOTYPE_INFO): var PCERT_LOGOTYPE_REFERENCE {.inline.} = self.union1.pLogotypeIndirectInfo -proc `dwPredefined=`*(self: var CERT_BIOMETRIC_DATA, x: DWORD) {.inline.} = self.union1.dwPredefined = x -proc dwPredefined*(self: CERT_BIOMETRIC_DATA): DWORD {.inline.} = self.union1.dwPredefined -proc dwPredefined*(self: var CERT_BIOMETRIC_DATA): var DWORD {.inline.} = self.union1.dwPredefined -proc `pszObjId=`*(self: var CERT_BIOMETRIC_DATA, x: LPSTR) {.inline.} = self.union1.pszObjId = x -proc pszObjId*(self: CERT_BIOMETRIC_DATA): LPSTR {.inline.} = self.union1.pszObjId -proc pszObjId*(self: var CERT_BIOMETRIC_DATA): var LPSTR {.inline.} = self.union1.pszObjId -proc `pRevokedInfo=`*(self: var OCSP_BASIC_RESPONSE_ENTRY, x: POCSP_BASIC_REVOKED_INFO) {.inline.} = self.union1.pRevokedInfo = x -proc pRevokedInfo*(self: OCSP_BASIC_RESPONSE_ENTRY): POCSP_BASIC_REVOKED_INFO {.inline.} = self.union1.pRevokedInfo -proc pRevokedInfo*(self: var OCSP_BASIC_RESPONSE_ENTRY): var POCSP_BASIC_REVOKED_INFO {.inline.} = self.union1.pRevokedInfo -proc `ByNameResponderId=`*(self: var OCSP_BASIC_RESPONSE_INFO, x: CERT_NAME_BLOB) {.inline.} = self.union1.ByNameResponderId = x -proc ByNameResponderId*(self: OCSP_BASIC_RESPONSE_INFO): CERT_NAME_BLOB {.inline.} = self.union1.ByNameResponderId -proc ByNameResponderId*(self: var OCSP_BASIC_RESPONSE_INFO): var CERT_NAME_BLOB {.inline.} = self.union1.ByNameResponderId -proc `ByKeyResponderId=`*(self: var OCSP_BASIC_RESPONSE_INFO, x: CRYPT_HASH_BLOB) {.inline.} = self.union1.ByKeyResponderId = x -proc ByKeyResponderId*(self: OCSP_BASIC_RESPONSE_INFO): CRYPT_HASH_BLOB {.inline.} = self.union1.ByKeyResponderId -proc ByKeyResponderId*(self: var OCSP_BASIC_RESPONSE_INFO): var CRYPT_HASH_BLOB {.inline.} = self.union1.ByKeyResponderId -proc `dwValue=`*(self: var CRYPT_OID_INFO, x: DWORD) {.inline.} = self.union1.dwValue = x -proc dwValue*(self: CRYPT_OID_INFO): DWORD {.inline.} = self.union1.dwValue -proc dwValue*(self: var CRYPT_OID_INFO): var DWORD {.inline.} = self.union1.dwValue -proc `Algid=`*(self: var CRYPT_OID_INFO, x: ALG_ID) {.inline.} = self.union1.Algid = x -proc algid*(self: CRYPT_OID_INFO): ALG_ID {.inline.} = self.union1.Algid -proc algid*(self: var CRYPT_OID_INFO): var ALG_ID {.inline.} = self.union1.Algid -proc `dwLength=`*(self: var CRYPT_OID_INFO, x: DWORD) {.inline.} = self.union1.dwLength = x -proc dwLength*(self: CRYPT_OID_INFO): DWORD {.inline.} = self.union1.dwLength -proc dwLength*(self: var CRYPT_OID_INFO): var DWORD {.inline.} = self.union1.dwLength -proc `pvInfo=`*(self: var CERT_STRONG_SIGN_PARA, x: pointer) {.inline.} = self.union1.pvInfo = x -proc pvInfo*(self: CERT_STRONG_SIGN_PARA): pointer {.inline.} = self.union1.pvInfo -proc pvInfo*(self: var CERT_STRONG_SIGN_PARA): var pointer {.inline.} = self.union1.pvInfo -proc `pSerializedInfo=`*(self: var CERT_STRONG_SIGN_PARA, x: PCERT_STRONG_SIGN_SERIALIZED_INFO) {.inline.} = self.union1.pSerializedInfo = x -proc pSerializedInfo*(self: CERT_STRONG_SIGN_PARA): PCERT_STRONG_SIGN_SERIALIZED_INFO {.inline.} = self.union1.pSerializedInfo -proc pSerializedInfo*(self: var CERT_STRONG_SIGN_PARA): var PCERT_STRONG_SIGN_SERIALIZED_INFO {.inline.} = self.union1.pSerializedInfo -proc `pszOID=`*(self: var CERT_STRONG_SIGN_PARA, x: LPSTR) {.inline.} = self.union1.pszOID = x -proc pszOID*(self: CERT_STRONG_SIGN_PARA): LPSTR {.inline.} = self.union1.pszOID -proc pszOID*(self: var CERT_STRONG_SIGN_PARA): var LPSTR {.inline.} = self.union1.pszOID -proc `IssuerSerialNumber=`*(self: var CERT_ID, x: CERT_ISSUER_SERIAL_NUMBER) {.inline.} = self.union1.IssuerSerialNumber = x -proc IssuerSerialNumber*(self: CERT_ID): CERT_ISSUER_SERIAL_NUMBER {.inline.} = self.union1.IssuerSerialNumber -proc IssuerSerialNumber*(self: var CERT_ID): var CERT_ISSUER_SERIAL_NUMBER {.inline.} = self.union1.IssuerSerialNumber -proc `KeyId=`*(self: var CERT_ID, x: CRYPT_HASH_BLOB) {.inline.} = self.union1.KeyId = x -proc KeyId*(self: CERT_ID): CRYPT_HASH_BLOB {.inline.} = self.union1.KeyId -proc KeyId*(self: var CERT_ID): var CRYPT_HASH_BLOB {.inline.} = self.union1.KeyId -proc `HashId=`*(self: var CERT_ID, x: CRYPT_HASH_BLOB) {.inline.} = self.union1.HashId = x -proc HashId*(self: CERT_ID): CRYPT_HASH_BLOB {.inline.} = self.union1.HashId -proc HashId*(self: var CERT_ID): var CRYPT_HASH_BLOB {.inline.} = self.union1.HashId -proc `hCryptProv=`*(self: var CMSG_SIGNER_ENCODE_INFO, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x -proc hCryptProv*(self: CMSG_SIGNER_ENCODE_INFO): HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc hCryptProv*(self: var CMSG_SIGNER_ENCODE_INFO): var HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc `hNCryptKey=`*(self: var CMSG_SIGNER_ENCODE_INFO, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x -proc hNCryptKey*(self: CMSG_SIGNER_ENCODE_INFO): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc hNCryptKey*(self: var CMSG_SIGNER_ENCODE_INFO): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc `pEphemeralAlgorithm=`*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, x: PCRYPT_ALGORITHM_IDENTIFIER) {.inline.} = self.union1.pEphemeralAlgorithm = x -proc pEphemeralAlgorithm*(self: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): PCRYPT_ALGORITHM_IDENTIFIER {.inline.} = self.union1.pEphemeralAlgorithm -proc pEphemeralAlgorithm*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): var PCRYPT_ALGORITHM_IDENTIFIER {.inline.} = self.union1.pEphemeralAlgorithm -proc `pSenderId=`*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, x: PCERT_ID) {.inline.} = self.union1.pSenderId = x -proc pSenderId*(self: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): PCERT_ID {.inline.} = self.union1.pSenderId -proc pSenderId*(self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): var PCERT_ID {.inline.} = self.union1.pSenderId -proc `hKeyEncryptionKey=`*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, x: HCRYPTKEY) {.inline.} = self.union1.hKeyEncryptionKey = x -proc hKeyEncryptionKey*(self: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey -proc hKeyEncryptionKey*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): var HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey -proc `pvKeyEncryptionKey=`*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, x: pointer) {.inline.} = self.union1.pvKeyEncryptionKey = x -proc pvKeyEncryptionKey*(self: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): pointer {.inline.} = self.union1.pvKeyEncryptionKey -proc pvKeyEncryptionKey*(self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO): var pointer {.inline.} = self.union1.pvKeyEncryptionKey -proc `pKeyTrans=`*(self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO) {.inline.} = self.union1.pKeyTrans = x -proc pKeyTrans*(self: CMSG_RECIPIENT_ENCODE_INFO): PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyTrans -proc pKeyTrans*(self: var CMSG_RECIPIENT_ENCODE_INFO): var PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyTrans -proc `pKeyAgree=`*(self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO) {.inline.} = self.union1.pKeyAgree = x -proc pKeyAgree*(self: CMSG_RECIPIENT_ENCODE_INFO): PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyAgree -proc pKeyAgree*(self: var CMSG_RECIPIENT_ENCODE_INFO): var PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pKeyAgree -proc `pMailList=`*(self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO) {.inline.} = self.union1.pMailList = x -proc pMailList*(self: CMSG_RECIPIENT_ENCODE_INFO): PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pMailList -proc pMailList*(self: var CMSG_RECIPIENT_ENCODE_INFO): var PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {.inline.} = self.union1.pMailList -proc `OriginatorCertId=`*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO, x: CERT_ID) {.inline.} = self.union1.OriginatorCertId = x -proc OriginatorCertId*(self: CMSG_KEY_AGREE_RECIPIENT_INFO): CERT_ID {.inline.} = self.union1.OriginatorCertId -proc OriginatorCertId*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO): var CERT_ID {.inline.} = self.union1.OriginatorCertId -proc `OriginatorPublicKeyInfo=`*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO, x: CERT_PUBLIC_KEY_INFO) {.inline.} = self.union1.OriginatorPublicKeyInfo = x -proc OriginatorPublicKeyInfo*(self: CMSG_KEY_AGREE_RECIPIENT_INFO): CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo -proc OriginatorPublicKeyInfo*(self: var CMSG_KEY_AGREE_RECIPIENT_INFO): var CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo -proc `pKeyTrans=`*(self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_KEY_TRANS_RECIPIENT_INFO) {.inline.} = self.union1.pKeyTrans = x -proc pKeyTrans*(self: CMSG_CMS_RECIPIENT_INFO): PCMSG_KEY_TRANS_RECIPIENT_INFO {.inline.} = self.union1.pKeyTrans -proc pKeyTrans*(self: var CMSG_CMS_RECIPIENT_INFO): var PCMSG_KEY_TRANS_RECIPIENT_INFO {.inline.} = self.union1.pKeyTrans -proc `pKeyAgree=`*(self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_KEY_AGREE_RECIPIENT_INFO) {.inline.} = self.union1.pKeyAgree = x -proc pKeyAgree*(self: CMSG_CMS_RECIPIENT_INFO): PCMSG_KEY_AGREE_RECIPIENT_INFO {.inline.} = self.union1.pKeyAgree -proc pKeyAgree*(self: var CMSG_CMS_RECIPIENT_INFO): var PCMSG_KEY_AGREE_RECIPIENT_INFO {.inline.} = self.union1.pKeyAgree -proc `pMailList=`*(self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_MAIL_LIST_RECIPIENT_INFO) {.inline.} = self.union1.pMailList = x -proc pMailList*(self: CMSG_CMS_RECIPIENT_INFO): PCMSG_MAIL_LIST_RECIPIENT_INFO {.inline.} = self.union1.pMailList -proc pMailList*(self: var CMSG_CMS_RECIPIENT_INFO): var PCMSG_MAIL_LIST_RECIPIENT_INFO {.inline.} = self.union1.pMailList -proc `hCryptProv=`*(self: var CMSG_CTRL_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x -proc hCryptProv*(self: CMSG_CTRL_DECRYPT_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc hCryptProv*(self: var CMSG_CTRL_DECRYPT_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc `hNCryptKey=`*(self: var CMSG_CTRL_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x -proc hNCryptKey*(self: CMSG_CTRL_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc hNCryptKey*(self: var CMSG_CTRL_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc `hCryptProv=`*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x -proc hCryptProv*(self: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc hCryptProv*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc `hNCryptKey=`*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x -proc hNCryptKey*(self: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc hNCryptKey*(self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc `hCryptProv=`*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x -proc hCryptProv*(self: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc hCryptProv*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc `hNCryptKey=`*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x -proc hNCryptKey*(self: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc hNCryptKey*(self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc `hKeyEncryptionKey=`*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, x: HCRYPTKEY) {.inline.} = self.union1.hKeyEncryptionKey = x -proc hKeyEncryptionKey*(self: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey -proc hKeyEncryptionKey*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): var HCRYPTKEY {.inline.} = self.union1.hKeyEncryptionKey -proc `pvKeyEncryptionKey=`*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, x: pointer) {.inline.} = self.union1.pvKeyEncryptionKey = x -proc pvKeyEncryptionKey*(self: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): pointer {.inline.} = self.union1.pvKeyEncryptionKey -proc pvKeyEncryptionKey*(self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): var pointer {.inline.} = self.union1.pvKeyEncryptionKey -proc `hContentEncryptKey=`*(self: var CMSG_CONTENT_ENCRYPT_INFO, x: HCRYPTKEY) {.inline.} = self.union1.hContentEncryptKey = x -proc hContentEncryptKey*(self: CMSG_CONTENT_ENCRYPT_INFO): HCRYPTKEY {.inline.} = self.union1.hContentEncryptKey -proc hContentEncryptKey*(self: var CMSG_CONTENT_ENCRYPT_INFO): var HCRYPTKEY {.inline.} = self.union1.hContentEncryptKey -proc `hCNGContentEncryptKey=`*(self: var CMSG_CONTENT_ENCRYPT_INFO, x: BCRYPT_KEY_HANDLE) {.inline.} = self.union1.hCNGContentEncryptKey = x -proc hCNGContentEncryptKey*(self: CMSG_CONTENT_ENCRYPT_INFO): BCRYPT_KEY_HANDLE {.inline.} = self.union1.hCNGContentEncryptKey -proc hCNGContentEncryptKey*(self: var CMSG_CONTENT_ENCRYPT_INFO): var BCRYPT_KEY_HANDLE {.inline.} = self.union1.hCNGContentEncryptKey -proc `OriginatorCertId=`*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO, x: CERT_ID) {.inline.} = self.union1.OriginatorCertId = x -proc OriginatorCertId*(self: CMSG_KEY_AGREE_ENCRYPT_INFO): CERT_ID {.inline.} = self.union1.OriginatorCertId -proc OriginatorCertId*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO): var CERT_ID {.inline.} = self.union1.OriginatorCertId -proc `OriginatorPublicKeyInfo=`*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO, x: CERT_PUBLIC_KEY_INFO) {.inline.} = self.union1.OriginatorPublicKeyInfo = x -proc OriginatorPublicKeyInfo*(self: CMSG_KEY_AGREE_ENCRYPT_INFO): CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo -proc OriginatorPublicKeyInfo*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO): var CERT_PUBLIC_KEY_INFO {.inline.} = self.union1.OriginatorPublicKeyInfo -proc `hCryptProv=`*(self: var CERT_KEY_CONTEXT, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x -proc hCryptProv*(self: CERT_KEY_CONTEXT): HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc hCryptProv*(self: var CERT_KEY_CONTEXT): var HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc `hNCryptKey=`*(self: var CERT_KEY_CONTEXT, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x -proc hNCryptKey*(self: CERT_KEY_CONTEXT): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc hNCryptKey*(self: var CERT_KEY_CONTEXT): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc `hKeyBase=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: HKEY) {.inline.} = self.union1.hKeyBase = x -proc hKeyBase*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): HKEY {.inline.} = self.union1.hKeyBase -proc hKeyBase*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var HKEY {.inline.} = self.union1.hKeyBase -proc `pvBase=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: pointer) {.inline.} = self.union1.pvBase = x -proc pvBase*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): pointer {.inline.} = self.union1.pvBase -proc pvBase*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var pointer {.inline.} = self.union1.pvBase -proc `pvSystemStore=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: pointer) {.inline.} = self.union2.pvSystemStore = x -proc pvSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): pointer {.inline.} = self.union2.pvSystemStore -proc pvSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var pointer {.inline.} = self.union2.pvSystemStore -proc `pszSystemStore=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: LPCSTR) {.inline.} = self.union2.pszSystemStore = x -proc pszSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): LPCSTR {.inline.} = self.union2.pszSystemStore -proc pszSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var LPCSTR {.inline.} = self.union2.pszSystemStore -proc `pwszSystemStore=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: LPCWSTR) {.inline.} = self.union2.pwszSystemStore = x -proc pwszSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): LPCWSTR {.inline.} = self.union2.pwszSystemStore -proc pwszSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var LPCWSTR {.inline.} = self.union2.pwszSystemStore -proc `hCryptProv=`*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA, x: HCRYPTPROV) {.inline.} = self.union1.hCryptProv = x -proc hCryptProv*(self: CRYPT_KEY_SIGN_MESSAGE_PARA): HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc hCryptProv*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA): var HCRYPTPROV {.inline.} = self.union1.hCryptProv -proc `hNCryptKey=`*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = self.union1.hNCryptKey = x -proc hNCryptKey*(self: CRYPT_KEY_SIGN_MESSAGE_PARA): NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc hNCryptKey*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA): var NCRYPT_KEY_HANDLE {.inline.} = self.union1.hNCryptKey -proc `cbStruct=`*(self: var HTTPSPolicyCallbackData, x: DWORD) {.inline.} = self.union1.cbStruct = x -proc cbStruct*(self: HTTPSPolicyCallbackData): DWORD {.inline.} = self.union1.cbStruct -proc cbStruct*(self: var HTTPSPolicyCallbackData): var DWORD {.inline.} = self.union1.cbStruct -proc `cbSize=`*(self: var HTTPSPolicyCallbackData, x: DWORD) {.inline.} = self.union1.cbSize = x -proc cbSize*(self: HTTPSPolicyCallbackData): DWORD {.inline.} = self.union1.cbSize -proc cbSize*(self: var HTTPSPolicyCallbackData): var DWORD {.inline.} = self.union1.cbSize +proc CryptCreateAsyncHandle*( + dwFlags: DWORD, phAsync: PHCRYPTASYNC +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSetAsyncParam*( + hAsync: HCRYPTASYNC, + pszParamOid: LPSTR, + pvParam: LPVOID, + pfnFree: PFN_CRYPT_ASYNC_PARAM_FREE_FUNC, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetAsyncParam*( + hAsync: HCRYPTASYNC, + pszParamOid: LPSTR, + ppvParam: ptr LPVOID, + ppfnFree: ptr PFN_CRYPT_ASYNC_PARAM_FREE_FUNC, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptCloseAsyncHandle*( + hAsync: HCRYPTASYNC +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptRetrieveObjectByUrlA*( + pszUrl: LPCSTR, + pszObjectOid: LPCSTR, + dwRetrievalFlags: DWORD, + dwTimeout: DWORD, + ppvObject: ptr LPVOID, + hAsyncRetrieve: HCRYPTASYNC, + pCredentials: PCRYPT_CREDENTIALS, + pvVerify: LPVOID, + pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptRetrieveObjectByUrlW*( + pszUrl: LPCWSTR, + pszObjectOid: LPCSTR, + dwRetrievalFlags: DWORD, + dwTimeout: DWORD, + ppvObject: ptr LPVOID, + hAsyncRetrieve: HCRYPTASYNC, + pCredentials: PCRYPT_CREDENTIALS, + pvVerify: LPVOID, + pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptInstallCancelRetrieval*( + pfnCancel: PFN_CRYPT_CANCEL_RETRIEVAL, + pvArg: pointer, + dwFlags: DWORD, + pvReserved: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptUninstallCancelRetrieval*( + dwFlags: DWORD, pvReserved: pointer +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptCancelAsyncRetrieval*( + hAsyncRetrieval: HCRYPTASYNC +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptGetObjectUrl*( + pszUrlOid: LPCSTR, + pvPara: LPVOID, + dwFlags: DWORD, + pUrlArray: PCRYPT_URL_ARRAY, + pcbUrlArray: ptr DWORD, + pUrlInfo: PCRYPT_URL_INFO, + pcbUrlInfo: ptr DWORD, + pvReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptGetTimeValidObject*( + pszTimeValidOid: LPCSTR, + pvPara: LPVOID, + pIssuer: PCCERT_CONTEXT, + pftValidFor: LPFILETIME, + dwFlags: DWORD, + dwTimeout: DWORD, + ppvObject: ptr LPVOID, + pCredentials: PCRYPT_CREDENTIALS, + pExtraInfo: PCRYPT_GET_TIME_VALID_OBJECT_EXTRA_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CryptFlushTimeValidObject*( + pszFlushTimeValidOid: LPCSTR, + pvPara: LPVOID, + pIssuer: PCCERT_CONTEXT, + dwFlags: DWORD, + pvReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc.} + +proc CertCreateSelfSignCertificate*( + hCryptProvOrNCryptKey: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE, + pSubjectIssuerBlob: PCERT_NAME_BLOB, + dwFlags: DWORD, + pKeyProvInfo: PCRYPT_KEY_PROV_INFO, + pSignatureAlgorithm: PCRYPT_ALGORITHM_IDENTIFIER, + pStartTime: PSYSTEMTIME, + pEndTime: PSYSTEMTIME, + pExtensions: PCERT_EXTENSIONS, +): PCCERT_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptGetKeyIdentifierProperty*( + pKeyIdentifier: ptr CRYPT_HASH_BLOB, + dwPropId: DWORD, + dwFlags: DWORD, + pwszComputerName: LPCWSTR, + pvReserved: pointer, + pvData: pointer, + pcbData: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSetKeyIdentifierProperty*( + pKeyIdentifier: ptr CRYPT_HASH_BLOB, + dwPropId: DWORD, + dwFlags: DWORD, + pwszComputerName: LPCWSTR, + pvReserved: pointer, + pvData: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptEnumKeyIdentifierProperties*( + pKeyIdentifier: ptr CRYPT_HASH_BLOB, + dwPropId: DWORD, + dwFlags: DWORD, + pwszComputerName: LPCWSTR, + pvReserved: pointer, + pvArg: pointer, + pfnEnum: PFN_CRYPT_ENUM_KEYID_PROP, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptCreateKeyIdentifierFromCSP*( + dwCertEncodingType: DWORD, + pszPubKeyOID: LPCSTR, + pPubKeyStruc: ptr PUBLICKEYSTRUC, + cbPubKeyStruc: DWORD, + dwFlags: DWORD, + pvReserved: pointer, + pbHash: ptr BYTE, + pcbHash: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCreateCertificateChainEngine*( + pConfig: PCERT_CHAIN_ENGINE_CONFIG, phChainEngine: ptr HCERTCHAINENGINE +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeCertificateChainEngine*( + hChainEngine: HCERTCHAINENGINE +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertResyncCertificateChainEngine*( + hChainEngine: HCERTCHAINENGINE +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetCertificateChain*( + hChainEngine: HCERTCHAINENGINE, + pCertContext: PCCERT_CONTEXT, + pTime: LPFILETIME, + hAdditionalStore: HCERTSTORE, + pChainPara: PCERT_CHAIN_PARA, + dwFlags: DWORD, + pvReserved: LPVOID, + ppChainContext: ptr PCCERT_CHAIN_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeCertificateChain*( + pChainContext: PCCERT_CHAIN_CONTEXT +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertDuplicateCertificateChain*( + pChainContext: PCCERT_CHAIN_CONTEXT +): PCCERT_CHAIN_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFindChainInStore*( + hCertStore: HCERTSTORE, + dwCertEncodingType: DWORD, + dwFindFlags: DWORD, + dwFindType: DWORD, + pvFindPara: pointer, + pPrevChainContext: PCCERT_CHAIN_CONTEXT, +): PCCERT_CHAIN_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertVerifyCertificateChainPolicy*( + pszPolicyOID: LPCSTR, + pChainContext: PCCERT_CHAIN_CONTEXT, + pPolicyPara: PCERT_CHAIN_POLICY_PARA, + pPolicyStatus: PCERT_CHAIN_POLICY_STATUS, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptStringToBinaryA*( + pszString: LPCSTR, + cchString: DWORD, + dwFlags: DWORD, + pbBinary: ptr BYTE, + pcbBinary: ptr DWORD, + pdwSkip: ptr DWORD, + pdwFlags: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptStringToBinaryW*( + pszString: LPCWSTR, + cchString: DWORD, + dwFlags: DWORD, + pbBinary: ptr BYTE, + pcbBinary: ptr DWORD, + pdwSkip: ptr DWORD, + pdwFlags: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptBinaryToStringA*( + pbBinary: ptr BYTE, + cbBinary: DWORD, + dwFlags: DWORD, + pszString: LPSTR, + pcchString: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptBinaryToStringW*( + pbBinary: ptr BYTE, + cbBinary: DWORD, + dwFlags: DWORD, + pszString: LPWSTR, + pcchString: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc PFXImportCertStore*( + pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD +): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc PFXIsPFXBlob*( + pPFX: ptr CRYPT_DATA_BLOB +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc PFXVerifyPassword*( + pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc PFXExportCertStoreEx*( + hStore: HCERTSTORE, + pPFX: ptr CRYPT_DATA_BLOB, + szPassword: LPCWSTR, + pvPara: pointer, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc PFXExportCertStore*( + hStore: HCERTSTORE, pPFX: ptr CRYPT_DATA_BLOB, szPassword: LPCWSTR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertOpenServerOcspResponse*( + pChainContext: PCCERT_CHAIN_CONTEXT, dwFlags: DWORD, pvReserved: LPVOID +): HCERT_SERVER_OCSP_RESPONSE {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddRefServerOcspResponse*( + hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertCloseServerOcspResponse*( + hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE, dwFlags: DWORD +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertGetServerOcspResponseContext*( + hServerOcspResponse: HCERT_SERVER_OCSP_RESPONSE, dwFlags: DWORD, pvReserved: LPVOID +): PCCERT_SERVER_OCSP_RESPONSE_CONTEXT {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertAddRefServerOcspResponseContext*( + pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeServerOcspResponseContext*( + pServerOcspResponseContext: PCCERT_SERVER_OCSP_RESPONSE_CONTEXT +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertRetrieveLogoOrBiometricInfo*( + pCertContext: PCCERT_CONTEXT, + lpszLogoOrBiometricType: LPCSTR, + dwRetrievalFlags: DWORD, + dwTimeout: DWORD, + dwFlags: DWORD, + pvReserved: pointer, + ppbData: ptr ptr BYTE, + pcbData: ptr DWORD, + ppwszMimeType: ptr LPWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertSelectCertificateChains*( + pSelectionContext: LPCGUID, + dwFlags: DWORD, + pChainParameters: PCCERT_SELECT_CHAIN_PARA, + cCriteria: DWORD, + rgpCriteria: PCCERT_SELECT_CRITERIA, + hStore: HCERTSTORE, + pcSelection: PDWORD, + pprgpSelection: ptr ptr PCCERT_CHAIN_CONTEXT, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CertFreeCertificateChainList*( + prgpSelection: ptr PCCERT_CHAIN_CONTEXT +): VOID {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptRetrieveTimeStamp*( + wszUrl: LPCWSTR, + dwRetrievalFlags: DWORD, + dwTimeout: DWORD, + pszHashId: LPCSTR, + pPara: ptr CRYPT_TIMESTAMP_PARA, + pbData: ptr BYTE, + cbData: DWORD, + ppTsContext: ptr PCRYPT_TIMESTAMP_CONTEXT, + ppTsSigner: ptr PCCERT_CONTEXT, + phStore: ptr HCERTSTORE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptVerifyTimeStampSignature*( + pbTSContentInfo: ptr BYTE, + cbTSContentInfo: DWORD, + pbData: ptr BYTE, + cbData: DWORD, + hAdditionalStore: HCERTSTORE, + ppTsContext: ptr PCRYPT_TIMESTAMP_CONTEXT, + ppTsSigner: ptr PCCERT_CONTEXT, + phStore: ptr HCERTSTORE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptProtectData*( + pDataIn: ptr DATA_BLOB, + szDataDescr: LPCWSTR, + pOptionalEntropy: ptr DATA_BLOB, + pvReserved: PVOID, + pPromptStruct: ptr CRYPTPROTECT_PROMPTSTRUCT, + dwFlags: DWORD, + pDataOut: ptr DATA_BLOB, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUnprotectData*( + pDataIn: ptr DATA_BLOB, + ppszDataDescr: ptr LPWSTR, + pOptionalEntropy: ptr DATA_BLOB, + pvReserved: PVOID, + pPromptStruct: ptr CRYPTPROTECT_PROMPTSTRUCT, + dwFlags: DWORD, + pDataOut: ptr DATA_BLOB, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptProtectMemory*( + pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUnprotectMemory*( + pDataIn: LPVOID, cbDataIn: DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptUpdateProtectedState*( + pOldSid: PSID, + pwszOldPassword: LPCWSTR, + dwFlags: DWORD, + pdwSuccessCount: ptr DWORD, + pdwFailureCount: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc `pOtherName=`*(self: var CERT_ALT_NAME_ENTRY, x: PCERT_OTHER_NAME) {.inline.} = + self.union1.pOtherName = x + +proc pOtherName*(self: CERT_ALT_NAME_ENTRY): PCERT_OTHER_NAME {.inline.} = + self.union1.pOtherName + +proc pOtherName*(self: var CERT_ALT_NAME_ENTRY): var PCERT_OTHER_NAME {.inline.} = + self.union1.pOtherName + +proc `pwszRfc822Name=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = + self.union1.pwszRfc822Name = x + +proc pwszRfc822Name*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = + self.union1.pwszRfc822Name + +proc pwszRfc822Name*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = + self.union1.pwszRfc822Name + +proc `pwszDNSName=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = + self.union1.pwszDNSName = x + +proc pwszDNSName*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = + self.union1.pwszDNSName + +proc pwszDNSName*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = + self.union1.pwszDNSName + +proc `DirectoryName=`*(self: var CERT_ALT_NAME_ENTRY, x: CERT_NAME_BLOB) {.inline.} = + self.union1.DirectoryName = x + +proc DirectoryName*(self: CERT_ALT_NAME_ENTRY): CERT_NAME_BLOB {.inline.} = + self.union1.DirectoryName + +proc DirectoryName*(self: var CERT_ALT_NAME_ENTRY): var CERT_NAME_BLOB {.inline.} = + self.union1.DirectoryName + +proc `pwszURL=`*(self: var CERT_ALT_NAME_ENTRY, x: LPWSTR) {.inline.} = + self.union1.pwszURL = x + +proc pwszURL*(self: CERT_ALT_NAME_ENTRY): LPWSTR {.inline.} = + self.union1.pwszURL + +proc pwszURL*(self: var CERT_ALT_NAME_ENTRY): var LPWSTR {.inline.} = + self.union1.pwszURL + +proc `IPAddress=`*(self: var CERT_ALT_NAME_ENTRY, x: CRYPT_DATA_BLOB) {.inline.} = + self.union1.IPAddress = x + +proc IPAddress*(self: CERT_ALT_NAME_ENTRY): CRYPT_DATA_BLOB {.inline.} = + self.union1.IPAddress + +proc IPAddress*(self: var CERT_ALT_NAME_ENTRY): var CRYPT_DATA_BLOB {.inline.} = + self.union1.IPAddress + +proc `pszRegisteredID=`*(self: var CERT_ALT_NAME_ENTRY, x: LPSTR) {.inline.} = + self.union1.pszRegisteredID = x + +proc pszRegisteredID*(self: CERT_ALT_NAME_ENTRY): LPSTR {.inline.} = + self.union1.pszRegisteredID + +proc pszRegisteredID*(self: var CERT_ALT_NAME_ENTRY): var LPSTR {.inline.} = + self.union1.pszRegisteredID + +proc `FullName=`*(self: var CRL_DIST_POINT_NAME, x: CERT_ALT_NAME_INFO) {.inline.} = + self.union1.FullName = x + +proc FullName*(self: CRL_DIST_POINT_NAME): CERT_ALT_NAME_INFO {.inline.} = + self.union1.FullName + +proc FullName*(self: var CRL_DIST_POINT_NAME): var CERT_ALT_NAME_INFO {.inline.} = + self.union1.FullName + +proc `pTaggedCertRequest=`*( + self: var CMC_TAGGED_REQUEST, x: PCMC_TAGGED_CERT_REQUEST +) {.inline.} = + self.union1.pTaggedCertRequest = x + +proc pTaggedCertRequest*( + self: CMC_TAGGED_REQUEST +): PCMC_TAGGED_CERT_REQUEST {.inline.} = + self.union1.pTaggedCertRequest + +proc pTaggedCertRequest*( + self: var CMC_TAGGED_REQUEST +): var PCMC_TAGGED_CERT_REQUEST {.inline.} = + self.union1.pTaggedCertRequest + +proc `dwFailInfo=`*(self: var CMC_STATUS_INFO, x: DWORD) {.inline.} = + self.union1.dwFailInfo = x + +proc dwFailInfo*(self: CMC_STATUS_INFO): DWORD {.inline.} = + self.union1.dwFailInfo + +proc dwFailInfo*(self: var CMC_STATUS_INFO): var DWORD {.inline.} = + self.union1.dwFailInfo + +proc `pPendInfo=`*(self: var CMC_STATUS_INFO, x: PCMC_PEND_INFO) {.inline.} = + self.union1.pPendInfo = x + +proc pPendInfo*(self: CMC_STATUS_INFO): PCMC_PEND_INFO {.inline.} = + self.union1.pPendInfo + +proc pPendInfo*(self: var CMC_STATUS_INFO): var PCMC_PEND_INFO {.inline.} = + self.union1.pPendInfo + +proc `dwNumBits=`*(self: var CERT_LOGOTYPE_IMAGE_INFO, x: DWORD) {.inline.} = + self.union1.dwNumBits = x + +proc dwNumBits*(self: CERT_LOGOTYPE_IMAGE_INFO): DWORD {.inline.} = + self.union1.dwNumBits + +proc dwNumBits*(self: var CERT_LOGOTYPE_IMAGE_INFO): var DWORD {.inline.} = + self.union1.dwNumBits + +proc `dwTableSize=`*(self: var CERT_LOGOTYPE_IMAGE_INFO, x: DWORD) {.inline.} = + self.union1.dwTableSize = x + +proc dwTableSize*(self: CERT_LOGOTYPE_IMAGE_INFO): DWORD {.inline.} = + self.union1.dwTableSize + +proc dwTableSize*(self: var CERT_LOGOTYPE_IMAGE_INFO): var DWORD {.inline.} = + self.union1.dwTableSize + +proc `pLogotypeDirectInfo=`*( + self: var CERT_LOGOTYPE_INFO, x: PCERT_LOGOTYPE_DATA +) {.inline.} = + self.union1.pLogotypeDirectInfo = x + +proc pLogotypeDirectInfo*(self: CERT_LOGOTYPE_INFO): PCERT_LOGOTYPE_DATA {.inline.} = + self.union1.pLogotypeDirectInfo + +proc pLogotypeDirectInfo*( + self: var CERT_LOGOTYPE_INFO +): var PCERT_LOGOTYPE_DATA {.inline.} = + self.union1.pLogotypeDirectInfo + +proc `pLogotypeIndirectInfo=`*( + self: var CERT_LOGOTYPE_INFO, x: PCERT_LOGOTYPE_REFERENCE +) {.inline.} = + self.union1.pLogotypeIndirectInfo = x + +proc pLogotypeIndirectInfo*( + self: CERT_LOGOTYPE_INFO +): PCERT_LOGOTYPE_REFERENCE {.inline.} = + self.union1.pLogotypeIndirectInfo + +proc pLogotypeIndirectInfo*( + self: var CERT_LOGOTYPE_INFO +): var PCERT_LOGOTYPE_REFERENCE {.inline.} = + self.union1.pLogotypeIndirectInfo + +proc `dwPredefined=`*(self: var CERT_BIOMETRIC_DATA, x: DWORD) {.inline.} = + self.union1.dwPredefined = x + +proc dwPredefined*(self: CERT_BIOMETRIC_DATA): DWORD {.inline.} = + self.union1.dwPredefined + +proc dwPredefined*(self: var CERT_BIOMETRIC_DATA): var DWORD {.inline.} = + self.union1.dwPredefined + +proc `pszObjId=`*(self: var CERT_BIOMETRIC_DATA, x: LPSTR) {.inline.} = + self.union1.pszObjId = x + +proc pszObjId*(self: CERT_BIOMETRIC_DATA): LPSTR {.inline.} = + self.union1.pszObjId + +proc pszObjId*(self: var CERT_BIOMETRIC_DATA): var LPSTR {.inline.} = + self.union1.pszObjId + +proc `pRevokedInfo=`*( + self: var OCSP_BASIC_RESPONSE_ENTRY, x: POCSP_BASIC_REVOKED_INFO +) {.inline.} = + self.union1.pRevokedInfo = x + +proc pRevokedInfo*( + self: OCSP_BASIC_RESPONSE_ENTRY +): POCSP_BASIC_REVOKED_INFO {.inline.} = + self.union1.pRevokedInfo + +proc pRevokedInfo*( + self: var OCSP_BASIC_RESPONSE_ENTRY +): var POCSP_BASIC_REVOKED_INFO {.inline.} = + self.union1.pRevokedInfo + +proc `ByNameResponderId=`*( + self: var OCSP_BASIC_RESPONSE_INFO, x: CERT_NAME_BLOB +) {.inline.} = + self.union1.ByNameResponderId = x + +proc ByNameResponderId*(self: OCSP_BASIC_RESPONSE_INFO): CERT_NAME_BLOB {.inline.} = + self.union1.ByNameResponderId + +proc ByNameResponderId*( + self: var OCSP_BASIC_RESPONSE_INFO +): var CERT_NAME_BLOB {.inline.} = + self.union1.ByNameResponderId + +proc `ByKeyResponderId=`*( + self: var OCSP_BASIC_RESPONSE_INFO, x: CRYPT_HASH_BLOB +) {.inline.} = + self.union1.ByKeyResponderId = x + +proc ByKeyResponderId*(self: OCSP_BASIC_RESPONSE_INFO): CRYPT_HASH_BLOB {.inline.} = + self.union1.ByKeyResponderId + +proc ByKeyResponderId*( + self: var OCSP_BASIC_RESPONSE_INFO +): var CRYPT_HASH_BLOB {.inline.} = + self.union1.ByKeyResponderId + +proc `dwValue=`*(self: var CRYPT_OID_INFO, x: DWORD) {.inline.} = + self.union1.dwValue = x + +proc dwValue*(self: CRYPT_OID_INFO): DWORD {.inline.} = + self.union1.dwValue + +proc dwValue*(self: var CRYPT_OID_INFO): var DWORD {.inline.} = + self.union1.dwValue + +proc `Algid=`*(self: var CRYPT_OID_INFO, x: ALG_ID) {.inline.} = + self.union1.Algid = x + +proc algid*(self: CRYPT_OID_INFO): ALG_ID {.inline.} = + self.union1.Algid + +proc algid*(self: var CRYPT_OID_INFO): var ALG_ID {.inline.} = + self.union1.Algid + +proc `dwLength=`*(self: var CRYPT_OID_INFO, x: DWORD) {.inline.} = + self.union1.dwLength = x + +proc dwLength*(self: CRYPT_OID_INFO): DWORD {.inline.} = + self.union1.dwLength + +proc dwLength*(self: var CRYPT_OID_INFO): var DWORD {.inline.} = + self.union1.dwLength + +proc `pvInfo=`*(self: var CERT_STRONG_SIGN_PARA, x: pointer) {.inline.} = + self.union1.pvInfo = x + +proc pvInfo*(self: CERT_STRONG_SIGN_PARA): pointer {.inline.} = + self.union1.pvInfo + +proc pvInfo*(self: var CERT_STRONG_SIGN_PARA): var pointer {.inline.} = + self.union1.pvInfo + +proc `pSerializedInfo=`*( + self: var CERT_STRONG_SIGN_PARA, x: PCERT_STRONG_SIGN_SERIALIZED_INFO +) {.inline.} = + self.union1.pSerializedInfo = x + +proc pSerializedInfo*( + self: CERT_STRONG_SIGN_PARA +): PCERT_STRONG_SIGN_SERIALIZED_INFO {.inline.} = + self.union1.pSerializedInfo + +proc pSerializedInfo*( + self: var CERT_STRONG_SIGN_PARA +): var PCERT_STRONG_SIGN_SERIALIZED_INFO {.inline.} = + self.union1.pSerializedInfo + +proc `pszOID=`*(self: var CERT_STRONG_SIGN_PARA, x: LPSTR) {.inline.} = + self.union1.pszOID = x + +proc pszOID*(self: CERT_STRONG_SIGN_PARA): LPSTR {.inline.} = + self.union1.pszOID + +proc pszOID*(self: var CERT_STRONG_SIGN_PARA): var LPSTR {.inline.} = + self.union1.pszOID + +proc `IssuerSerialNumber=`*( + self: var CERT_ID, x: CERT_ISSUER_SERIAL_NUMBER +) {.inline.} = + self.union1.IssuerSerialNumber = x + +proc IssuerSerialNumber*(self: CERT_ID): CERT_ISSUER_SERIAL_NUMBER {.inline.} = + self.union1.IssuerSerialNumber + +proc IssuerSerialNumber*(self: var CERT_ID): var CERT_ISSUER_SERIAL_NUMBER {.inline.} = + self.union1.IssuerSerialNumber + +proc `KeyId=`*(self: var CERT_ID, x: CRYPT_HASH_BLOB) {.inline.} = + self.union1.KeyId = x + +proc KeyId*(self: CERT_ID): CRYPT_HASH_BLOB {.inline.} = + self.union1.KeyId + +proc KeyId*(self: var CERT_ID): var CRYPT_HASH_BLOB {.inline.} = + self.union1.KeyId + +proc `HashId=`*(self: var CERT_ID, x: CRYPT_HASH_BLOB) {.inline.} = + self.union1.HashId = x + +proc HashId*(self: CERT_ID): CRYPT_HASH_BLOB {.inline.} = + self.union1.HashId + +proc HashId*(self: var CERT_ID): var CRYPT_HASH_BLOB {.inline.} = + self.union1.HashId + +proc `hCryptProv=`*(self: var CMSG_SIGNER_ENCODE_INFO, x: HCRYPTPROV) {.inline.} = + self.union1.hCryptProv = x + +proc hCryptProv*(self: CMSG_SIGNER_ENCODE_INFO): HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc hCryptProv*(self: var CMSG_SIGNER_ENCODE_INFO): var HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc `hNCryptKey=`*( + self: var CMSG_SIGNER_ENCODE_INFO, x: NCRYPT_KEY_HANDLE +) {.inline.} = + self.union1.hNCryptKey = x + +proc hNCryptKey*(self: CMSG_SIGNER_ENCODE_INFO): NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc hNCryptKey*(self: var CMSG_SIGNER_ENCODE_INFO): var NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc `pEphemeralAlgorithm=`*( + self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, x: PCRYPT_ALGORITHM_IDENTIFIER +) {.inline.} = + self.union1.pEphemeralAlgorithm = x + +proc pEphemeralAlgorithm*( + self: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO +): PCRYPT_ALGORITHM_IDENTIFIER {.inline.} = + self.union1.pEphemeralAlgorithm + +proc pEphemeralAlgorithm*( + self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO +): var PCRYPT_ALGORITHM_IDENTIFIER {.inline.} = + self.union1.pEphemeralAlgorithm + +proc `pSenderId=`*( + self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, x: PCERT_ID +) {.inline.} = + self.union1.pSenderId = x + +proc pSenderId*(self: CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO): PCERT_ID {.inline.} = + self.union1.pSenderId + +proc pSenderId*( + self: var CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO +): var PCERT_ID {.inline.} = + self.union1.pSenderId + +proc `hKeyEncryptionKey=`*( + self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, x: HCRYPTKEY +) {.inline.} = + self.union1.hKeyEncryptionKey = x + +proc hKeyEncryptionKey*( + self: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO +): HCRYPTKEY {.inline.} = + self.union1.hKeyEncryptionKey + +proc hKeyEncryptionKey*( + self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO +): var HCRYPTKEY {.inline.} = + self.union1.hKeyEncryptionKey + +proc `pvKeyEncryptionKey=`*( + self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, x: pointer +) {.inline.} = + self.union1.pvKeyEncryptionKey = x + +proc pvKeyEncryptionKey*( + self: CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO +): pointer {.inline.} = + self.union1.pvKeyEncryptionKey + +proc pvKeyEncryptionKey*( + self: var CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO +): var pointer {.inline.} = + self.union1.pvKeyEncryptionKey + +proc `pKeyTrans=`*( + self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO +) {.inline.} = + self.union1.pKeyTrans = x + +proc pKeyTrans*( + self: CMSG_RECIPIENT_ENCODE_INFO +): PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {.inline.} = + self.union1.pKeyTrans + +proc pKeyTrans*( + self: var CMSG_RECIPIENT_ENCODE_INFO +): var PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO {.inline.} = + self.union1.pKeyTrans + +proc `pKeyAgree=`*( + self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO +) {.inline.} = + self.union1.pKeyAgree = x + +proc pKeyAgree*( + self: CMSG_RECIPIENT_ENCODE_INFO +): PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {.inline.} = + self.union1.pKeyAgree + +proc pKeyAgree*( + self: var CMSG_RECIPIENT_ENCODE_INFO +): var PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {.inline.} = + self.union1.pKeyAgree + +proc `pMailList=`*( + self: var CMSG_RECIPIENT_ENCODE_INFO, x: PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO +) {.inline.} = + self.union1.pMailList = x + +proc pMailList*( + self: CMSG_RECIPIENT_ENCODE_INFO +): PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {.inline.} = + self.union1.pMailList + +proc pMailList*( + self: var CMSG_RECIPIENT_ENCODE_INFO +): var PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO {.inline.} = + self.union1.pMailList + +proc `OriginatorCertId=`*( + self: var CMSG_KEY_AGREE_RECIPIENT_INFO, x: CERT_ID +) {.inline.} = + self.union1.OriginatorCertId = x + +proc OriginatorCertId*(self: CMSG_KEY_AGREE_RECIPIENT_INFO): CERT_ID {.inline.} = + self.union1.OriginatorCertId + +proc OriginatorCertId*( + self: var CMSG_KEY_AGREE_RECIPIENT_INFO +): var CERT_ID {.inline.} = + self.union1.OriginatorCertId + +proc `OriginatorPublicKeyInfo=`*( + self: var CMSG_KEY_AGREE_RECIPIENT_INFO, x: CERT_PUBLIC_KEY_INFO +) {.inline.} = + self.union1.OriginatorPublicKeyInfo = x + +proc OriginatorPublicKeyInfo*( + self: CMSG_KEY_AGREE_RECIPIENT_INFO +): CERT_PUBLIC_KEY_INFO {.inline.} = + self.union1.OriginatorPublicKeyInfo + +proc OriginatorPublicKeyInfo*( + self: var CMSG_KEY_AGREE_RECIPIENT_INFO +): var CERT_PUBLIC_KEY_INFO {.inline.} = + self.union1.OriginatorPublicKeyInfo + +proc `pKeyTrans=`*( + self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_KEY_TRANS_RECIPIENT_INFO +) {.inline.} = + self.union1.pKeyTrans = x + +proc pKeyTrans*( + self: CMSG_CMS_RECIPIENT_INFO +): PCMSG_KEY_TRANS_RECIPIENT_INFO {.inline.} = + self.union1.pKeyTrans + +proc pKeyTrans*( + self: var CMSG_CMS_RECIPIENT_INFO +): var PCMSG_KEY_TRANS_RECIPIENT_INFO {.inline.} = + self.union1.pKeyTrans + +proc `pKeyAgree=`*( + self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_KEY_AGREE_RECIPIENT_INFO +) {.inline.} = + self.union1.pKeyAgree = x + +proc pKeyAgree*( + self: CMSG_CMS_RECIPIENT_INFO +): PCMSG_KEY_AGREE_RECIPIENT_INFO {.inline.} = + self.union1.pKeyAgree + +proc pKeyAgree*( + self: var CMSG_CMS_RECIPIENT_INFO +): var PCMSG_KEY_AGREE_RECIPIENT_INFO {.inline.} = + self.union1.pKeyAgree + +proc `pMailList=`*( + self: var CMSG_CMS_RECIPIENT_INFO, x: PCMSG_MAIL_LIST_RECIPIENT_INFO +) {.inline.} = + self.union1.pMailList = x + +proc pMailList*( + self: CMSG_CMS_RECIPIENT_INFO +): PCMSG_MAIL_LIST_RECIPIENT_INFO {.inline.} = + self.union1.pMailList + +proc pMailList*( + self: var CMSG_CMS_RECIPIENT_INFO +): var PCMSG_MAIL_LIST_RECIPIENT_INFO {.inline.} = + self.union1.pMailList + +proc `hCryptProv=`*(self: var CMSG_CTRL_DECRYPT_PARA, x: HCRYPTPROV) {.inline.} = + self.union1.hCryptProv = x + +proc hCryptProv*(self: CMSG_CTRL_DECRYPT_PARA): HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc hCryptProv*(self: var CMSG_CTRL_DECRYPT_PARA): var HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc `hNCryptKey=`*(self: var CMSG_CTRL_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE) {.inline.} = + self.union1.hNCryptKey = x + +proc hNCryptKey*(self: CMSG_CTRL_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc hNCryptKey*(self: var CMSG_CTRL_DECRYPT_PARA): var NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc `hCryptProv=`*( + self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, x: HCRYPTPROV +) {.inline.} = + self.union1.hCryptProv = x + +proc hCryptProv*(self: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc hCryptProv*( + self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA +): var HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc `hNCryptKey=`*( + self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE +) {.inline.} = + self.union1.hNCryptKey = x + +proc hNCryptKey*(self: CMSG_CTRL_KEY_TRANS_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc hNCryptKey*( + self: var CMSG_CTRL_KEY_TRANS_DECRYPT_PARA +): var NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc `hCryptProv=`*( + self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, x: HCRYPTPROV +) {.inline.} = + self.union1.hCryptProv = x + +proc hCryptProv*(self: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc hCryptProv*( + self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA +): var HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc `hNCryptKey=`*( + self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA, x: NCRYPT_KEY_HANDLE +) {.inline.} = + self.union1.hNCryptKey = x + +proc hNCryptKey*(self: CMSG_CTRL_KEY_AGREE_DECRYPT_PARA): NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc hNCryptKey*( + self: var CMSG_CTRL_KEY_AGREE_DECRYPT_PARA +): var NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc `hKeyEncryptionKey=`*( + self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, x: HCRYPTKEY +) {.inline.} = + self.union1.hKeyEncryptionKey = x + +proc hKeyEncryptionKey*(self: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): HCRYPTKEY {.inline.} = + self.union1.hKeyEncryptionKey + +proc hKeyEncryptionKey*( + self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA +): var HCRYPTKEY {.inline.} = + self.union1.hKeyEncryptionKey + +proc `pvKeyEncryptionKey=`*( + self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA, x: pointer +) {.inline.} = + self.union1.pvKeyEncryptionKey = x + +proc pvKeyEncryptionKey*(self: CMSG_CTRL_MAIL_LIST_DECRYPT_PARA): pointer {.inline.} = + self.union1.pvKeyEncryptionKey + +proc pvKeyEncryptionKey*( + self: var CMSG_CTRL_MAIL_LIST_DECRYPT_PARA +): var pointer {.inline.} = + self.union1.pvKeyEncryptionKey + +proc `hContentEncryptKey=`*( + self: var CMSG_CONTENT_ENCRYPT_INFO, x: HCRYPTKEY +) {.inline.} = + self.union1.hContentEncryptKey = x + +proc hContentEncryptKey*(self: CMSG_CONTENT_ENCRYPT_INFO): HCRYPTKEY {.inline.} = + self.union1.hContentEncryptKey + +proc hContentEncryptKey*( + self: var CMSG_CONTENT_ENCRYPT_INFO +): var HCRYPTKEY {.inline.} = + self.union1.hContentEncryptKey + +proc `hCNGContentEncryptKey=`*( + self: var CMSG_CONTENT_ENCRYPT_INFO, x: BCRYPT_KEY_HANDLE +) {.inline.} = + self.union1.hCNGContentEncryptKey = x + +proc hCNGContentEncryptKey*( + self: CMSG_CONTENT_ENCRYPT_INFO +): BCRYPT_KEY_HANDLE {.inline.} = + self.union1.hCNGContentEncryptKey + +proc hCNGContentEncryptKey*( + self: var CMSG_CONTENT_ENCRYPT_INFO +): var BCRYPT_KEY_HANDLE {.inline.} = + self.union1.hCNGContentEncryptKey + +proc `OriginatorCertId=`*( + self: var CMSG_KEY_AGREE_ENCRYPT_INFO, x: CERT_ID +) {.inline.} = + self.union1.OriginatorCertId = x + +proc OriginatorCertId*(self: CMSG_KEY_AGREE_ENCRYPT_INFO): CERT_ID {.inline.} = + self.union1.OriginatorCertId + +proc OriginatorCertId*(self: var CMSG_KEY_AGREE_ENCRYPT_INFO): var CERT_ID {.inline.} = + self.union1.OriginatorCertId + +proc `OriginatorPublicKeyInfo=`*( + self: var CMSG_KEY_AGREE_ENCRYPT_INFO, x: CERT_PUBLIC_KEY_INFO +) {.inline.} = + self.union1.OriginatorPublicKeyInfo = x + +proc OriginatorPublicKeyInfo*( + self: CMSG_KEY_AGREE_ENCRYPT_INFO +): CERT_PUBLIC_KEY_INFO {.inline.} = + self.union1.OriginatorPublicKeyInfo + +proc OriginatorPublicKeyInfo*( + self: var CMSG_KEY_AGREE_ENCRYPT_INFO +): var CERT_PUBLIC_KEY_INFO {.inline.} = + self.union1.OriginatorPublicKeyInfo + +proc `hCryptProv=`*(self: var CERT_KEY_CONTEXT, x: HCRYPTPROV) {.inline.} = + self.union1.hCryptProv = x + +proc hCryptProv*(self: CERT_KEY_CONTEXT): HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc hCryptProv*(self: var CERT_KEY_CONTEXT): var HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc `hNCryptKey=`*(self: var CERT_KEY_CONTEXT, x: NCRYPT_KEY_HANDLE) {.inline.} = + self.union1.hNCryptKey = x + +proc hNCryptKey*(self: CERT_KEY_CONTEXT): NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc hNCryptKey*(self: var CERT_KEY_CONTEXT): var NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc `hKeyBase=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: HKEY) {.inline.} = + self.union1.hKeyBase = x + +proc hKeyBase*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): HKEY {.inline.} = + self.union1.hKeyBase + +proc hKeyBase*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var HKEY {.inline.} = + self.union1.hKeyBase + +proc `pvBase=`*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: pointer) {.inline.} = + self.union1.pvBase = x + +proc pvBase*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): pointer {.inline.} = + self.union1.pvBase + +proc pvBase*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var pointer {.inline.} = + self.union1.pvBase + +proc `pvSystemStore=`*( + self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: pointer +) {.inline.} = + self.union2.pvSystemStore = x + +proc pvSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): pointer {.inline.} = + self.union2.pvSystemStore + +proc pvSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var pointer {.inline.} = + self.union2.pvSystemStore + +proc `pszSystemStore=`*( + self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: LPCSTR +) {.inline.} = + self.union2.pszSystemStore = x + +proc pszSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): LPCSTR {.inline.} = + self.union2.pszSystemStore + +proc pszSystemStore*(self: var CERT_SYSTEM_STORE_RELOCATE_PARA): var LPCSTR {.inline.} = + self.union2.pszSystemStore + +proc `pwszSystemStore=`*( + self: var CERT_SYSTEM_STORE_RELOCATE_PARA, x: LPCWSTR +) {.inline.} = + self.union2.pwszSystemStore = x + +proc pwszSystemStore*(self: CERT_SYSTEM_STORE_RELOCATE_PARA): LPCWSTR {.inline.} = + self.union2.pwszSystemStore + +proc pwszSystemStore*( + self: var CERT_SYSTEM_STORE_RELOCATE_PARA +): var LPCWSTR {.inline.} = + self.union2.pwszSystemStore + +proc `hCryptProv=`*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA, x: HCRYPTPROV) {.inline.} = + self.union1.hCryptProv = x + +proc hCryptProv*(self: CRYPT_KEY_SIGN_MESSAGE_PARA): HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc hCryptProv*(self: var CRYPT_KEY_SIGN_MESSAGE_PARA): var HCRYPTPROV {.inline.} = + self.union1.hCryptProv + +proc `hNCryptKey=`*( + self: var CRYPT_KEY_SIGN_MESSAGE_PARA, x: NCRYPT_KEY_HANDLE +) {.inline.} = + self.union1.hNCryptKey = x + +proc hNCryptKey*(self: CRYPT_KEY_SIGN_MESSAGE_PARA): NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc hNCryptKey*( + self: var CRYPT_KEY_SIGN_MESSAGE_PARA +): var NCRYPT_KEY_HANDLE {.inline.} = + self.union1.hNCryptKey + +proc `cbStruct=`*(self: var HTTPSPolicyCallbackData, x: DWORD) {.inline.} = + self.union1.cbStruct = x + +proc cbStruct*(self: HTTPSPolicyCallbackData): DWORD {.inline.} = + self.union1.cbStruct + +proc cbStruct*(self: var HTTPSPolicyCallbackData): var DWORD {.inline.} = + self.union1.cbStruct + +proc `cbSize=`*(self: var HTTPSPolicyCallbackData, x: DWORD) {.inline.} = + self.union1.cbSize = x + +proc cbSize*(self: HTTPSPolicyCallbackData): DWORD {.inline.} = + self.union1.cbSize + +proc cbSize*(self: var HTTPSPolicyCallbackData): var DWORD {.inline.} = + self.union1.cbSize + when winimUnicode: type CRYPT_PASSWORD_CREDENTIALS* = CRYPT_PASSWORD_CREDENTIALSW PCRYPT_PASSWORD_CREDENTIALS* = PCRYPT_PASSWORD_CREDENTIALSW + const MS_DEF_PROV* = MS_DEF_PROV_W MS_ENHANCED_PROV* = MS_ENHANCED_PROV_W @@ -5354,27 +8763,149 @@ MS_ENH_RSA_AES_PROV_XP* = MS_ENH_RSA_AES_PROV_XP_W MS_ENH_RSA_AES_PROV* = MS_ENH_RSA_AES_PROV_W CREDENTIAL_OID_PASSWORD_CREDENTIALS* = CREDENTIAL_OID_PASSWORD_CREDENTIALS_W - proc CryptAcquireContext*(phProv: ptr HCRYPTPROV, szContainer: LPCWSTR, szProvider: LPCWSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptAcquireContextW".} - proc CryptSignHash*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCWSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSignHashW".} - proc CryptVerifySignature*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptVerifySignatureW".} - proc CryptSetProvider*(pszProvName: LPCWSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderW".} - proc CryptSetProviderEx*(pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderExW".} - proc CryptGetDefaultProvider*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptGetDefaultProviderW".} - proc CryptEnumProviderTypes*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPWSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProviderTypesW".} - proc CryptEnumProviders*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPWSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProvidersW".} - proc CertRDNValueToStr*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertRDNValueToStrW".} - proc CertNameToStr*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPWSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertNameToStrW".} - proc CertStrToName*(dwCertEncodingType: DWORD, pszX500: LPCWSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertStrToNameW".} - proc CertGetNameString*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPWSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertGetNameStringW".} - proc CertOpenSystemStore*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCWSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc: "CertOpenSystemStoreW".} - proc CertAddEncodedCertificateToSystemStore*(szCertStoreName: LPCWSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertAddEncodedCertificateToSystemStoreW".} - proc CryptRetrieveObjectByUrl*(pszUrl: LPCWSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc: "CryptRetrieveObjectByUrlW".} - proc CryptStringToBinary*(pszString: LPCWSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptStringToBinaryW".} - proc CryptBinaryToString*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPWSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptBinaryToStringW".} + proc CryptAcquireContext*( + phProv: ptr HCRYPTPROV, + szContainer: LPCWSTR, + szProvider: LPCWSTR, + dwProvType: DWORD, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptAcquireContextW".} + + proc CryptSignHash*( + hHash: HCRYPTHASH, + dwKeySpec: DWORD, + szDescription: LPCWSTR, + dwFlags: DWORD, + pbSignature: ptr BYTE, + pdwSigLen: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSignHashW".} + + proc CryptVerifySignature*( + hHash: HCRYPTHASH, + pbSignature: ptr BYTE, + dwSigLen: DWORD, + hPubKey: HCRYPTKEY, + szDescription: LPCWSTR, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptVerifySignatureW".} + + proc CryptSetProvider*( + pszProvName: LPCWSTR, dwProvType: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderW".} + + proc CryptSetProviderEx*( + pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderExW".} + + proc CryptGetDefaultProvider*( + dwProvType: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pszProvName: LPWSTR, + pcbProvName: ptr DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CryptGetDefaultProviderW" + .} + + proc CryptEnumProviderTypes*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szTypeName: LPWSTR, + pcbTypeName: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProviderTypesW".} + + proc CryptEnumProviders*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szProvName: LPWSTR, + pcbProvName: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProvidersW".} + + proc CertRDNValueToStr*( + dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPWSTR, csz: DWORD + ): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertRDNValueToStrW".} + + proc CertNameToStr*( + dwCertEncodingType: DWORD, + pName: PCERT_NAME_BLOB, + dwStrType: DWORD, + psz: LPWSTR, + csz: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertNameToStrW".} + + proc CertStrToName*( + dwCertEncodingType: DWORD, + pszX500: LPCWSTR, + dwStrType: DWORD, + pvReserved: pointer, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, + ppszError: ptr LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertStrToNameW".} + + proc CertGetNameString*( + pCertContext: PCCERT_CONTEXT, + dwType: DWORD, + dwFlags: DWORD, + pvTypePara: pointer, + pszNameString: LPWSTR, + cchNameString: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertGetNameStringW".} + + proc CertOpenSystemStore*( + hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCWSTR + ): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc: "CertOpenSystemStoreW".} + + proc CertAddEncodedCertificateToSystemStore*( + szCertStoreName: LPCWSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD + ): WINBOOL {. + winapi, + stdcall, + dynlib: "crypt32", + importc: "CertAddEncodedCertificateToSystemStoreW" + .} + + proc CryptRetrieveObjectByUrl*( + pszUrl: LPCWSTR, + pszObjectOid: LPCSTR, + dwRetrievalFlags: DWORD, + dwTimeout: DWORD, + ppvObject: ptr LPVOID, + hAsyncRetrieve: HCRYPTASYNC, + pCredentials: PCRYPT_CREDENTIALS, + pvVerify: LPVOID, + pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO, + ): WINBOOL {. + winapi, stdcall, dynlib: "cryptnet", importc: "CryptRetrieveObjectByUrlW" + .} + + proc CryptStringToBinary*( + pszString: LPCWSTR, + cchString: DWORD, + dwFlags: DWORD, + pbBinary: ptr BYTE, + pcbBinary: ptr DWORD, + pdwSkip: ptr DWORD, + pdwFlags: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptStringToBinaryW".} + + proc CryptBinaryToString*( + pbBinary: ptr BYTE, + cbBinary: DWORD, + dwFlags: DWORD, + pszString: LPWSTR, + pcchString: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptBinaryToStringW".} + when winimAnsi: type CRYPT_PASSWORD_CREDENTIALS* = CRYPT_PASSWORD_CREDENTIALSA PCRYPT_PASSWORD_CREDENTIALS* = PCRYPT_PASSWORD_CREDENTIALSA + const MS_DEF_PROV* = MS_DEF_PROV_A MS_ENHANCED_PROV* = MS_ENHANCED_PROV_A @@ -5389,20 +8920,140 @@ MS_ENH_RSA_AES_PROV_XP* = MS_ENH_RSA_AES_PROV_XP_A MS_ENH_RSA_AES_PROV* = MS_ENH_RSA_AES_PROV_A CREDENTIAL_OID_PASSWORD_CREDENTIALS* = CREDENTIAL_OID_PASSWORD_CREDENTIALS_A - proc CryptAcquireContext*(phProv: ptr HCRYPTPROV, szContainer: LPCSTR, szProvider: LPCSTR, dwProvType: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptAcquireContextA".} - proc CryptSignHash*(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCSTR, dwFlags: DWORD, pbSignature: ptr BYTE, pdwSigLen: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSignHashA".} - proc CryptVerifySignature*(hHash: HCRYPTHASH, pbSignature: ptr BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptVerifySignatureA".} - proc CryptSetProvider*(pszProvName: LPCSTR, dwProvType: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderA".} - proc CryptSetProviderEx*(pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderExA".} - proc CryptGetDefaultProvider*(dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pszProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptGetDefaultProviderA".} - proc CryptEnumProviderTypes*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szTypeName: LPSTR, pcbTypeName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProviderTypesA".} - proc CryptEnumProviders*(dwIndex: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD, pdwProvType: ptr DWORD, szProvName: LPSTR, pcbProvName: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProvidersA".} - proc CertRDNValueToStr*(dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertRDNValueToStrA".} - proc CertNameToStr*(dwCertEncodingType: DWORD, pName: PCERT_NAME_BLOB, dwStrType: DWORD, psz: LPSTR, csz: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertNameToStrA".} - proc CertStrToName*(dwCertEncodingType: DWORD, pszX500: LPCSTR, dwStrType: DWORD, pvReserved: pointer, pbEncoded: ptr BYTE, pcbEncoded: ptr DWORD, ppszError: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertStrToNameA".} - proc CertGetNameString*(pCertContext: PCCERT_CONTEXT, dwType: DWORD, dwFlags: DWORD, pvTypePara: pointer, pszNameString: LPSTR, cchNameString: DWORD): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertGetNameStringA".} - proc CertOpenSystemStore*(hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCSTR): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc: "CertOpenSystemStoreA".} - proc CertAddEncodedCertificateToSystemStore*(szCertStoreName: LPCSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertAddEncodedCertificateToSystemStoreA".} - proc CryptRetrieveObjectByUrl*(pszUrl: LPCSTR, pszObjectOid: LPCSTR, dwRetrievalFlags: DWORD, dwTimeout: DWORD, ppvObject: ptr LPVOID, hAsyncRetrieve: HCRYPTASYNC, pCredentials: PCRYPT_CREDENTIALS, pvVerify: LPVOID, pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO): WINBOOL {.winapi, stdcall, dynlib: "cryptnet", importc: "CryptRetrieveObjectByUrlA".} - proc CryptStringToBinary*(pszString: LPCSTR, cchString: DWORD, dwFlags: DWORD, pbBinary: ptr BYTE, pcbBinary: ptr DWORD, pdwSkip: ptr DWORD, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptStringToBinaryA".} - proc CryptBinaryToString*(pbBinary: ptr BYTE, cbBinary: DWORD, dwFlags: DWORD, pszString: LPSTR, pcchString: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptBinaryToStringA".} + proc CryptAcquireContext*( + phProv: ptr HCRYPTPROV, + szContainer: LPCSTR, + szProvider: LPCSTR, + dwProvType: DWORD, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptAcquireContextA".} + + proc CryptSignHash*( + hHash: HCRYPTHASH, + dwKeySpec: DWORD, + szDescription: LPCSTR, + dwFlags: DWORD, + pbSignature: ptr BYTE, + pdwSigLen: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSignHashA".} + + proc CryptVerifySignature*( + hHash: HCRYPTHASH, + pbSignature: ptr BYTE, + dwSigLen: DWORD, + hPubKey: HCRYPTKEY, + szDescription: LPCSTR, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptVerifySignatureA".} + + proc CryptSetProvider*( + pszProvName: LPCSTR, dwProvType: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderA".} + + proc CryptSetProviderEx*( + pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ptr DWORD, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptSetProviderExA".} + + proc CryptGetDefaultProvider*( + dwProvType: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pszProvName: LPSTR, + pcbProvName: ptr DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "CryptGetDefaultProviderA" + .} + + proc CryptEnumProviderTypes*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szTypeName: LPSTR, + pcbTypeName: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProviderTypesA".} + + proc CryptEnumProviders*( + dwIndex: DWORD, + pdwReserved: ptr DWORD, + dwFlags: DWORD, + pdwProvType: ptr DWORD, + szProvName: LPSTR, + pcbProvName: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "CryptEnumProvidersA".} + + proc CertRDNValueToStr*( + dwValueType: DWORD, pValue: PCERT_RDN_VALUE_BLOB, psz: LPSTR, csz: DWORD + ): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertRDNValueToStrA".} + + proc CertNameToStr*( + dwCertEncodingType: DWORD, + pName: PCERT_NAME_BLOB, + dwStrType: DWORD, + psz: LPSTR, + csz: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertNameToStrA".} + + proc CertStrToName*( + dwCertEncodingType: DWORD, + pszX500: LPCSTR, + dwStrType: DWORD, + pvReserved: pointer, + pbEncoded: ptr BYTE, + pcbEncoded: ptr DWORD, + ppszError: ptr LPCSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CertStrToNameA".} + + proc CertGetNameString*( + pCertContext: PCCERT_CONTEXT, + dwType: DWORD, + dwFlags: DWORD, + pvTypePara: pointer, + pszNameString: LPSTR, + cchNameString: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "crypt32", importc: "CertGetNameStringA".} + + proc CertOpenSystemStore*( + hProv: HCRYPTPROV_LEGACY, szSubsystemProtocol: LPCSTR + ): HCERTSTORE {.winapi, stdcall, dynlib: "crypt32", importc: "CertOpenSystemStoreA".} + + proc CertAddEncodedCertificateToSystemStore*( + szCertStoreName: LPCSTR, pbCertEncoded: ptr BYTE, cbCertEncoded: DWORD + ): WINBOOL {. + winapi, + stdcall, + dynlib: "crypt32", + importc: "CertAddEncodedCertificateToSystemStoreA" + .} + + proc CryptRetrieveObjectByUrl*( + pszUrl: LPCSTR, + pszObjectOid: LPCSTR, + dwRetrievalFlags: DWORD, + dwTimeout: DWORD, + ppvObject: ptr LPVOID, + hAsyncRetrieve: HCRYPTASYNC, + pCredentials: PCRYPT_CREDENTIALS, + pvVerify: LPVOID, + pAuxInfo: PCRYPT_RETRIEVE_AUX_INFO, + ): WINBOOL {. + winapi, stdcall, dynlib: "cryptnet", importc: "CryptRetrieveObjectByUrlA" + .} + + proc CryptStringToBinary*( + pszString: LPCSTR, + cchString: DWORD, + dwFlags: DWORD, + pbBinary: ptr BYTE, + pcbBinary: ptr DWORD, + pdwSkip: ptr DWORD, + pdwFlags: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptStringToBinaryA".} + + proc CryptBinaryToString*( + pbBinary: ptr BYTE, + cbBinary: DWORD, + dwFlags: DWORD, + pszString: LPSTR, + pcchString: ptr DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc: "CryptBinaryToStringA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/windef.nim --- a/semicongine/thirdparty/winim/winim/inc/windef.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/windef.nim Thu Aug 22 18:32:21 2024 +0700 @@ -177,12 +177,14 @@ EXCEPTION_DISPOSITION* = int QWORD* = int64 PQWORD* = ptr int64 + when winimAnsi: type TCHAR* = char PTCHAR* = ptr char TBYTE* = uint8 PTBYTE* = ptr uint8 + when winimCpu64: type INT_PTR* = int64 @@ -199,6 +201,7 @@ PUHALF_PTR* = ptr int32 HALF_PTR* = int32 PHALF_PTR* = ptr int32 + when winimCpu32: type INT_PTR* = int32 @@ -213,6 +216,7 @@ PUHALF_PTR* = ptr uint16 SHANDLE_PTR* = int32 HANDLE_PTR* = int32 + type SIZE_T* = ULONG_PTR PSIZE_T* = ptr ULONG_PTR @@ -380,6 +384,7 @@ KPRIORITY* = LONG HGDIOBJ* = HANDLE OLECHAR* = WCHAR + when winimUnicode: type TCHAR* = WCHAR @@ -401,6 +406,7 @@ PUZZTSTR* = PUZZWSTR PZPTSTR* = PZPWSTR PUNZTCH* = PUNZWCH + when winimAnsi: type LPTCH* = LPSTR @@ -418,12 +424,13 @@ PZZTSTR* = PZZSTR PUZZTSTR* = PZZSTR PZPTSTR* = PZPSTR + type INT16* = int16 PINT16* = ptr int16 PKAFFINITY* = ptr KAFFINITY -const - EXCEPTION_MAXIMUM_PARAMETERS* = 15 + +const EXCEPTION_MAXIMUM_PARAMETERS* = 15 type EXCEPTION_RECORD* {.pure.} = object ExceptionCode*: DWORD @@ -432,10 +439,12 @@ ExceptionAddress*: PVOID NumberParameters*: DWORD ExceptionInformation*: array[EXCEPTION_MAXIMUM_PARAMETERS, ULONG_PTR] + PEXCEPTION_RECORD* = ptr EXCEPTION_RECORD M128A* {.pure.} = object Low*: ULONGLONG High*: LONGLONG + when winimCpu64: type XMM_SAVE_AREA32* {.pure.} = object @@ -455,6 +464,7 @@ FloatRegisters*: array[8, M128A] XmmRegisters*: array[16, M128A] Reserved4*: array[96, BYTE] + CONTEXT_UNION1_STRUCT1* {.pure.} = object Header*: array[2, M128A] Legacy*: array[8, M128A] @@ -474,10 +484,12 @@ Xmm13*: M128A Xmm14*: M128A Xmm15*: M128A + CONTEXT_UNION1* {.pure, union.} = object FltSave*: XMM_SAVE_AREA32 FloatSave*: XMM_SAVE_AREA32 struct1*: CONTEXT_UNION1_STRUCT1 + CONTEXT* {.pure.} = object P1Home*: DWORD64 P2Home*: DWORD64 @@ -525,59 +537,57 @@ LastBranchFromRip*: DWORD64 LastExceptionToRip*: DWORD64 LastExceptionFromRip*: DWORD64 + when winimCpu32: - const - SIZE_OF_80387_REGISTERS* = 80 - type - FLOATING_SAVE_AREA* {.pure.} = object - ControlWord*: DWORD - StatusWord*: DWORD - TagWord*: DWORD - ErrorOffset*: DWORD - ErrorSelector*: DWORD - DataOffset*: DWORD - DataSelector*: DWORD - RegisterArea*: array[SIZE_OF_80387_REGISTERS, BYTE] - Cr0NpxState*: DWORD - const - MAXIMUM_SUPPORTED_EXTENSION* = 512 - type - CONTEXT* {.pure.} = object - ContextFlags*: DWORD - Dr0*: DWORD - Dr1*: DWORD - Dr2*: DWORD - Dr3*: DWORD - Dr6*: DWORD - Dr7*: DWORD - FloatSave*: 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*: array[MAXIMUM_SUPPORTED_EXTENSION, BYTE] + const SIZE_OF_80387_REGISTERS* = 80 + type FLOATING_SAVE_AREA* {.pure.} = object + ControlWord*: DWORD + StatusWord*: DWORD + TagWord*: DWORD + ErrorOffset*: DWORD + ErrorSelector*: DWORD + DataOffset*: DWORD + DataSelector*: DWORD + RegisterArea*: array[SIZE_OF_80387_REGISTERS, BYTE] + Cr0NpxState*: DWORD + + const MAXIMUM_SUPPORTED_EXTENSION* = 512 + type CONTEXT* {.pure.} = object + ContextFlags*: DWORD + Dr0*: DWORD + Dr1*: DWORD + Dr2*: DWORD + Dr3*: DWORD + Dr6*: DWORD + Dr7*: DWORD + FloatSave*: 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*: array[MAXIMUM_SUPPORTED_EXTENSION, BYTE] + when winimCpu64: - type - PCONTEXT* = ptr CONTEXT + type PCONTEXT* = ptr CONTEXT when winimCpu32: - type - PCONTEXT* = ptr CONTEXT + type PCONTEXT* = ptr CONTEXT type EXCEPTION_POINTERS* {.pure.} = object ExceptionRecord*: PEXCEPTION_RECORD ContextRecord*: PCONTEXT + Exception_info_ptr* = ptr EXCEPTION_POINTERS DOUBLE* = float64 PNTSTATUS* = ptr NTSTATUS @@ -586,36 +596,45 @@ QUAD_UNION1* {.pure, union.} = object UseThisFieldToCopy*: int64 DoNotUseThisField*: float64 + QUAD* {.pure.} = object union1*: QUAD_UNION1 + PQUAD* = ptr QUAD UQUAD* = QUAD PUQUAD* = ptr QUAD LARGE_INTEGER_STRUCT1* {.pure.} = object LowPart*: ULONG HighPart*: LONG + LARGE_INTEGER_u* {.pure.} = object LowPart*: ULONG HighPart*: LONG + LARGE_INTEGER* {.pure, union.} = object struct1*: LARGE_INTEGER_STRUCT1 u*: LARGE_INTEGER_u QuadPart*: LONGLONG + PLARGE_INTEGER* = ptr LARGE_INTEGER ULARGE_INTEGER_STRUCT1* {.pure.} = object LowPart*: ULONG HighPart*: ULONG + ULARGE_INTEGER_u* {.pure.} = object LowPart*: ULONG HighPart*: ULONG + ULARGE_INTEGER* {.pure, union.} = object struct1*: ULARGE_INTEGER_STRUCT1 u*: ULARGE_INTEGER_u QuadPart*: ULONGLONG + PULARGE_INTEGER* = ptr ULARGE_INTEGER LUID* {.pure.} = object LowPart*: ULONG HighPart*: LONG + PLUID* = ptr LUID PHYSICAL_ADDRESS* = LARGE_INTEGER PPHYSICAL_ADDRESS* = ptr LARGE_INTEGER @@ -623,17 +642,20 @@ Length*: USHORT MaximumLength*: USHORT Buffer*: PWSTR + PUNICODE_STRING* = ptr UNICODE_STRING PCUNICODE_STRING* = ptr UNICODE_STRING CSTRING* {.pure.} = object Length*: USHORT MaximumLength*: USHORT Buffer*: ptr CHAR + PCSTRING* = ptr CSTRING STRING* {.pure.} = object Length*: USHORT MaximumLength*: USHORT Buffer*: PCHAR + PSTRING* = ptr STRING ANSI_STRING* = STRING PANSI_STRING* = PSTRING @@ -646,6 +668,7 @@ Length*: USHORT MaximumLength*: USHORT Buffer*: ULONG + PSTRING32* = ptr STRING32 UNICODE_STRING32* = STRING32 PUNICODE_STRING32* = ptr STRING32 @@ -655,6 +678,7 @@ Length*: USHORT MaximumLength*: USHORT Buffer*: ULONGLONG + PSTRING64* = ptr STRING64 UNICODE_STRING64* = STRING64 PUNICODE_STRING64* = ptr STRING64 @@ -667,33 +691,40 @@ Attributes*: ULONG SecurityDescriptor*: PVOID SecurityQualityOfService*: PVOID + POBJECT_ATTRIBUTES* = ptr OBJECT_ATTRIBUTES PCOBJECT_ATTRIBUTES* = ptr OBJECT_ATTRIBUTES LIST_ENTRY* {.pure.} = object Flink*: ptr LIST_ENTRY Blink*: ptr LIST_ENTRY + PLIST_ENTRY* = ptr LIST_ENTRY PRLIST_ENTRY* = ptr LIST_ENTRY LIST_ENTRY32* {.pure.} = object Flink*: ULONG Blink*: ULONG + PLIST_ENTRY32* = ptr LIST_ENTRY32 LIST_ENTRY64* {.pure.} = object Flink*: ULONGLONG Blink*: ULONGLONG + PLIST_ENTRY64* = ptr LIST_ENTRY64 SINGLE_LIST_ENTRY* {.pure.} = object Next*: ptr SINGLE_LIST_ENTRY + PSINGLE_LIST_ENTRY* = ptr SINGLE_LIST_ENTRY PROCESSOR_NUMBER* {.pure.} = object Group*: USHORT Number*: UCHAR Reserved*: UCHAR + PPROCESSOR_NUMBER* = ptr PROCESSOR_NUMBER GROUP_AFFINITY* {.pure.} = object Mask*: KAFFINITY Group*: USHORT Reserved*: array[3, USHORT] + PGROUP_AFFINITY* = ptr GROUP_AFFINITY REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer* {.pure.} = object SubstituteNameOffset*: USHORT @@ -702,33 +733,40 @@ PrintNameLength*: USHORT Flags*: ULONG PathBuffer*: array[1, WCHAR] + REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer* {.pure.} = object SubstituteNameOffset*: USHORT SubstituteNameLength*: USHORT PrintNameOffset*: USHORT PrintNameLength*: USHORT PathBuffer*: array[1, WCHAR] + REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer* {.pure.} = object DataBuffer*: array[1, UCHAR] + REPARSE_DATA_BUFFER_UNION1* {.pure, union.} = object SymbolicLinkReparseBuffer*: REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer MountPointReparseBuffer*: REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer GenericReparseBuffer*: REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer + REPARSE_DATA_BUFFER* {.pure.} = object ReparseTag*: ULONG ReparseDataLength*: USHORT Reserved*: USHORT union1*: REPARSE_DATA_BUFFER_UNION1 + PREPARSE_DATA_BUFFER* = ptr REPARSE_DATA_BUFFER FLOAT128* {.pure.} = object LowPart*: int64 HighPart*: int64 + PFLOAT128* = ptr FLOAT128 GUID* {.pure.} = object Data1*: int32 Data2*: uint16 Data3*: uint16 Data4*: array[8, uint8] + LPGUID* = ptr GUID LPCGUID* = ptr GUID IID* = GUID @@ -741,90 +779,104 @@ REFIID* = ptr IID REFCLSID* = ptr IID REFFMTID* = ptr IID - EXCEPTION_ROUTINE* = proc (ExceptionRecord: ptr EXCEPTION_RECORD, EstablisherFrame: PVOID, ContextRecord: ptr CONTEXT, DispatcherContext: PVOID): EXCEPTION_DISPOSITION {.stdcall.} + EXCEPTION_ROUTINE* = proc( + ExceptionRecord: ptr EXCEPTION_RECORD, + EstablisherFrame: PVOID, + ContextRecord: ptr CONTEXT, + DispatcherContext: PVOID, + ): EXCEPTION_DISPOSITION {.stdcall.} PEXCEPTION_ROUTINE* = EXCEPTION_ROUTINE PKSPIN_LOCK* = ptr KSPIN_LOCK PM128A* = ptr M128A XSAVE_AREA_HEADER* {.pure.} = object Mask*: DWORD64 Reserved*: array[7, DWORD64] + PXSAVE_AREA_HEADER* = ptr XSAVE_AREA_HEADER + when winimCpu64: - type - XSAVE_FORMAT* {.pure.} = object - 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*: array[8, M128A] - XmmRegisters*: array[16, M128A] - Reserved4*: array[96, BYTE] + type XSAVE_FORMAT* {.pure.} = object + 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*: array[8, M128A] + XmmRegisters*: array[16, M128A] + Reserved4*: array[96, BYTE] + when winimCpu32: - type - XSAVE_FORMAT* {.pure.} = object - 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*: array[8, M128A] - XmmRegisters*: array[8, M128A] - Reserved4*: array[220, BYTE] - Cr0NpxState*: DWORD + type XSAVE_FORMAT* {.pure.} = object + 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*: array[8, M128A] + XmmRegisters*: array[8, M128A] + Reserved4*: array[220, BYTE] + Cr0NpxState*: DWORD + type XSAVE_AREA* {.pure.} = object LegacyState*: XSAVE_FORMAT Header*: XSAVE_AREA_HEADER + PXSAVE_AREA* = ptr XSAVE_AREA SCOPE_TABLE_AMD64_ScopeRecord* {.pure.} = object BeginAddress*: DWORD EndAddress*: DWORD HandlerAddress*: DWORD JumpTarget*: DWORD + SCOPE_TABLE_AMD64* {.pure.} = object Count*: DWORD ScopeRecord*: array[1, SCOPE_TABLE_AMD64_ScopeRecord] + PSCOPE_TABLE_AMD64* = ptr SCOPE_TABLE_AMD64 LDT_ENTRY_HighWord_Bytes* {.pure.} = object BaseMid*: BYTE Flags1*: BYTE Flags2*: BYTE BaseHi*: BYTE + LDT_ENTRY_HighWord_Bits* {.pure.} = object - BaseMid* {.bitsize:8.}: DWORD - Type* {.bitsize:5.}: DWORD - Dpl* {.bitsize:2.}: DWORD - Pres* {.bitsize:1.}: DWORD - LimitHi* {.bitsize:4.}: DWORD - Sys* {.bitsize:1.}: DWORD - Reserved_0* {.bitsize:1.}: DWORD - Default_Big* {.bitsize:1.}: DWORD - Granularity* {.bitsize:1.}: DWORD - BaseHi* {.bitsize:8.}: DWORD + BaseMid* {.bitsize: 8.}: DWORD + Type* {.bitsize: 5.}: DWORD + Dpl* {.bitsize: 2.}: DWORD + Pres* {.bitsize: 1.}: DWORD + LimitHi* {.bitsize: 4.}: DWORD + Sys* {.bitsize: 1.}: DWORD + Reserved_0* {.bitsize: 1.}: DWORD + Default_Big* {.bitsize: 1.}: DWORD + Granularity* {.bitsize: 1.}: DWORD + BaseHi* {.bitsize: 8.}: DWORD + LDT_ENTRY_HighWord* {.pure, union.} = object Bytes*: LDT_ENTRY_HighWord_Bytes Bits*: LDT_ENTRY_HighWord_Bits + LDT_ENTRY* {.pure.} = object LimitLow*: WORD BaseLow*: WORD HighWord*: LDT_ENTRY_HighWord + PLDT_ENTRY* = ptr LDT_ENTRY EXCEPTION_RECORD32* {.pure.} = object ExceptionCode*: DWORD @@ -833,6 +885,7 @@ ExceptionAddress*: DWORD NumberParameters*: DWORD ExceptionInformation*: array[EXCEPTION_MAXIMUM_PARAMETERS, DWORD] + PEXCEPTION_RECORD32* = ptr EXCEPTION_RECORD32 EXCEPTION_RECORD64* {.pure.} = object ExceptionCode*: DWORD @@ -842,6 +895,7 @@ NumberParameters*: DWORD unusedAlignment*: DWORD ExceptionInformation*: array[EXCEPTION_MAXIMUM_PARAMETERS, DWORD64] + PEXCEPTION_RECORD64* = ptr EXCEPTION_RECORD64 PEXCEPTION_POINTERS* = ptr EXCEPTION_POINTERS PACCESS_MASK* = ptr ACCESS_MASK @@ -850,38 +904,44 @@ GenericWrite*: ACCESS_MASK GenericExecute*: ACCESS_MASK GenericAll*: ACCESS_MASK + PGENERIC_MAPPING* = ptr GENERIC_MAPPING LUID_AND_ATTRIBUTES* {.pure.} = object Luid*: LUID Attributes*: DWORD + PLUID_AND_ATTRIBUTES* = ptr LUID_AND_ATTRIBUTES -const - ANYSIZE_ARRAY* = 1 + +const ANYSIZE_ARRAY* = 1 type LUID_AND_ATTRIBUTES_ARRAY* = array[ANYSIZE_ARRAY, LUID_AND_ATTRIBUTES] PLUID_AND_ATTRIBUTES_ARRAY* = ptr LUID_AND_ATTRIBUTES_ARRAY SID_IDENTIFIER_AUTHORITY* {.pure.} = object Value*: array[6, BYTE] + PSID_IDENTIFIER_AUTHORITY* = ptr SID_IDENTIFIER_AUTHORITY SID* {.pure.} = object Revision*: BYTE SubAuthorityCount*: BYTE IdentifierAuthority*: SID_IDENTIFIER_AUTHORITY SubAuthority*: array[ANYSIZE_ARRAY, DWORD] + PISID* = ptr SID SID_AND_ATTRIBUTES* {.pure.} = object Sid*: PSID Attributes*: DWORD + PSID_AND_ATTRIBUTES* = ptr SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY* = array[ANYSIZE_ARRAY, SID_AND_ATTRIBUTES] PSID_AND_ATTRIBUTES_ARRAY* = ptr SID_AND_ATTRIBUTES_ARRAY -const - SID_HASH_SIZE* = 32 + +const SID_HASH_SIZE* = 32 type SID_AND_ATTRIBUTES_HASH* {.pure.} = object SidCount*: DWORD SidAttr*: PSID_AND_ATTRIBUTES Hash*: array[SID_HASH_SIZE, SID_HASH_ENTRY] + PSID_AND_ATTRIBUTES_HASH* = ptr SID_AND_ATTRIBUTES_HASH ACL* {.pure.} = object AclRevision*: BYTE @@ -889,46 +949,55 @@ AclSize*: WORD AceCount*: WORD Sbz2*: WORD + PACL* = ptr ACL ACE_HEADER* {.pure.} = object AceType*: BYTE AceFlags*: BYTE AceSize*: WORD + PACE_HEADER* = ptr ACE_HEADER ACCESS_ALLOWED_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PACCESS_ALLOWED_ACE* = ptr ACCESS_ALLOWED_ACE ACCESS_DENIED_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PACCESS_DENIED_ACE* = ptr ACCESS_DENIED_ACE SYSTEM_AUDIT_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_AUDIT_ACE* = ptr SYSTEM_AUDIT_ACE SYSTEM_ALARM_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_ALARM_ACE* = ptr SYSTEM_ALARM_ACE SYSTEM_RESOURCE_ATTRIBUTE_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_RESOURCE_ATTRIBUTE_ACE* = ptr SYSTEM_RESOURCE_ATTRIBUTE_ACE SYSTEM_SCOPED_POLICY_ID_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_SCOPED_POLICY_ID_ACE* = ptr SYSTEM_SCOPED_POLICY_ID_ACE SYSTEM_MANDATORY_LABEL_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_MANDATORY_LABEL_ACE* = ptr SYSTEM_MANDATORY_LABEL_ACE ACCESS_ALLOWED_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -937,6 +1006,7 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PACCESS_ALLOWED_OBJECT_ACE* = ptr ACCESS_ALLOWED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -945,6 +1015,7 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PACCESS_DENIED_OBJECT_ACE* = ptr ACCESS_DENIED_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -953,6 +1024,7 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PSYSTEM_AUDIT_OBJECT_ACE* = ptr SYSTEM_AUDIT_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -961,26 +1033,31 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PSYSTEM_ALARM_OBJECT_ACE* = ptr SYSTEM_ALARM_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PACCESS_ALLOWED_CALLBACK_ACE* = ptr ACCESS_ALLOWED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PACCESS_DENIED_CALLBACK_ACE* = ptr ACCESS_DENIED_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_AUDIT_CALLBACK_ACE* = ptr SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE* {.pure.} = object Header*: ACE_HEADER Mask*: ACCESS_MASK SidStart*: DWORD + PSYSTEM_ALARM_CALLBACK_ACE* = ptr SYSTEM_ALARM_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -989,6 +1066,7 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PACCESS_ALLOWED_CALLBACK_OBJECT_ACE* = ptr ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -997,6 +1075,7 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PACCESS_DENIED_CALLBACK_OBJECT_ACE* = ptr ACCESS_DENIED_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -1005,6 +1084,7 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE* = ptr SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE* {.pure.} = object Header*: ACE_HEADER @@ -1013,14 +1093,17 @@ ObjectType*: GUID InheritedObjectType*: GUID SidStart*: DWORD + PSYSTEM_ALARM_CALLBACK_OBJECT_ACE* = ptr SYSTEM_ALARM_CALLBACK_OBJECT_ACE ACL_REVISION_INFORMATION* {.pure.} = object AclRevision*: DWORD + PACL_REVISION_INFORMATION* = ptr ACL_REVISION_INFORMATION ACL_SIZE_INFORMATION* {.pure.} = object AceCount*: DWORD AclBytesInUse*: DWORD AclBytesFree*: DWORD + PACL_SIZE_INFORMATION* = ptr ACL_SIZE_INFORMATION SECURITY_DESCRIPTOR_RELATIVE* {.pure.} = object Revision*: BYTE @@ -1030,6 +1113,7 @@ Group*: DWORD Sacl*: DWORD Dacl*: DWORD + PISECURITY_DESCRIPTOR_RELATIVE* = ptr SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR* {.pure.} = object Revision*: BYTE @@ -1039,24 +1123,29 @@ Group*: PSID Sacl*: PACL Dacl*: PACL + PISECURITY_DESCRIPTOR* = ptr SECURITY_DESCRIPTOR OBJECT_TYPE_LIST* {.pure.} = object Level*: WORD Sbz*: WORD ObjectType*: ptr GUID + POBJECT_TYPE_LIST* = ptr OBJECT_TYPE_LIST PRIVILEGE_SET* {.pure.} = object PrivilegeCount*: DWORD Control*: DWORD Privilege*: array[ANYSIZE_ARRAY, LUID_AND_ATTRIBUTES] + PPRIVILEGE_SET* = ptr PRIVILEGE_SET ACCESS_REASONS* {.pure.} = object Data*: array[32, ACCESS_REASON] + PACCESS_REASONS* = ptr ACCESS_REASONS SE_SECURITY_DESCRIPTOR* {.pure.} = object Size*: DWORD Flags*: DWORD SecurityDescriptor*: PSECURITY_DESCRIPTOR + PSE_SECURITY_DESCRIPTOR* = ptr SE_SECURITY_DESCRIPTOR SE_ACCESS_REQUEST* {.pure.} = object Size*: DWORD @@ -1067,6 +1156,7 @@ GenericMapping*: PGENERIC_MAPPING ObjectTypeListCount*: DWORD ObjectTypeList*: POBJECT_TYPE_LIST + PSE_ACCESS_REQUEST* = ptr SE_ACCESS_REQUEST SE_ACCESS_REPLY* {.pure.} = object Size*: DWORD @@ -1075,33 +1165,42 @@ AccessStatus*: PDWORD AccessReason*: PACCESS_REASONS Privileges*: ptr PPRIVILEGE_SET + PSE_ACCESS_REPLY* = ptr SE_ACCESS_REPLY PTOKEN_TYPE* = ptr TOKEN_TYPE TOKEN_USER* {.pure.} = object User*: SID_AND_ATTRIBUTES + PTOKEN_USER* = ptr TOKEN_USER TOKEN_GROUPS* {.pure.} = object GroupCount*: DWORD Groups*: array[ANYSIZE_ARRAY, SID_AND_ATTRIBUTES] + PTOKEN_GROUPS* = ptr TOKEN_GROUPS TOKEN_PRIVILEGES* {.pure.} = object PrivilegeCount*: DWORD Privileges*: array[ANYSIZE_ARRAY, LUID_AND_ATTRIBUTES] + PTOKEN_PRIVILEGES* = ptr TOKEN_PRIVILEGES TOKEN_OWNER* {.pure.} = object Owner*: PSID + PTOKEN_OWNER* = ptr TOKEN_OWNER TOKEN_PRIMARY_GROUP* {.pure.} = object PrimaryGroup*: PSID + PTOKEN_PRIMARY_GROUP* = ptr TOKEN_PRIMARY_GROUP TOKEN_DEFAULT_DACL* {.pure.} = object DefaultDacl*: PACL + PTOKEN_DEFAULT_DACL* = ptr TOKEN_DEFAULT_DACL TOKEN_USER_CLAIMS* {.pure.} = object UserClaims*: PCLAIMS_BLOB + PTOKEN_USER_CLAIMS* = ptr TOKEN_USER_CLAIMS TOKEN_DEVICE_CLAIMS* {.pure.} = object DeviceClaims*: PCLAIMS_BLOB + PTOKEN_DEVICE_CLAIMS* = ptr TOKEN_DEVICE_CLAIMS TOKEN_GROUPS_AND_PRIVILEGES* {.pure.} = object SidCount*: DWORD @@ -1114,18 +1213,23 @@ PrivilegeLength*: DWORD Privileges*: PLUID_AND_ATTRIBUTES AuthenticationId*: LUID + PTOKEN_GROUPS_AND_PRIVILEGES* = ptr TOKEN_GROUPS_AND_PRIVILEGES TOKEN_LINKED_TOKEN* {.pure.} = object LinkedToken*: HANDLE + PTOKEN_LINKED_TOKEN* = ptr TOKEN_LINKED_TOKEN TOKEN_ELEVATION* {.pure.} = object TokenIsElevated*: DWORD + PTOKEN_ELEVATION* = ptr TOKEN_ELEVATION TOKEN_MANDATORY_LABEL* {.pure.} = object Label*: SID_AND_ATTRIBUTES + PTOKEN_MANDATORY_LABEL* = ptr TOKEN_MANDATORY_LABEL TOKEN_MANDATORY_POLICY* {.pure.} = object Policy*: DWORD + PTOKEN_MANDATORY_POLICY* = ptr TOKEN_MANDATORY_POLICY TOKEN_ACCESS_INFORMATION* {.pure.} = object SidHash*: PSID_AND_ATTRIBUTES_HASH @@ -1139,19 +1243,22 @@ AppContainerNumber*: DWORD PackageSid*: PSID CapabilitiesHash*: PSID_AND_ATTRIBUTES_HASH + PTOKEN_ACCESS_INFORMATION* = ptr TOKEN_ACCESS_INFORMATION -const - POLICY_AUDIT_SUBCATEGORY_COUNT* = 56 + +const POLICY_AUDIT_SUBCATEGORY_COUNT* = 56 type TOKEN_AUDIT_POLICY* {.pure.} = object PerUserPolicy*: array[((POLICY_AUDIT_SUBCATEGORY_COUNT) shr 1) + 1, UCHAR] + PTOKEN_AUDIT_POLICY* = ptr TOKEN_AUDIT_POLICY -const - TOKEN_SOURCE_LENGTH* = 8 + +const TOKEN_SOURCE_LENGTH* = 8 type TOKEN_SOURCE* {.pure.} = object SourceName*: array[TOKEN_SOURCE_LENGTH, CHAR] SourceIdentifier*: LUID + PTOKEN_SOURCE* = ptr TOKEN_SOURCE TOKEN_STATISTICS* {.pure.} = object TokenId*: LUID @@ -1164,33 +1271,41 @@ GroupCount*: DWORD PrivilegeCount*: DWORD ModifiedId*: LUID + PTOKEN_STATISTICS* = ptr TOKEN_STATISTICS TOKEN_CONTROL* {.pure.} = object TokenId*: LUID AuthenticationId*: LUID ModifiedId*: LUID TokenSource*: TOKEN_SOURCE + PTOKEN_CONTROL* = ptr TOKEN_CONTROL TOKEN_ORIGIN* {.pure.} = object OriginatingLogonSession*: LUID + PTOKEN_ORIGIN* = ptr TOKEN_ORIGIN TOKEN_APPCONTAINER_INFORMATION* {.pure.} = object TokenAppContainer*: PSID + PTOKEN_APPCONTAINER_INFORMATION* = ptr TOKEN_APPCONTAINER_INFORMATION CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE* {.pure.} = object Version*: DWORD64 Name*: PWSTR + PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE* = ptr CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE* {.pure.} = object pValue*: PVOID ValueLength*: DWORD - PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE* = ptr CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE + + PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE* = + ptr CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE CLAIM_SECURITY_ATTRIBUTE_V1_Values* {.pure, union.} = object pInt64*: PLONG64 pUint64*: PDWORD64 ppString*: ptr PWSTR pFqbn*: PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE pOctetString*: PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE + CLAIM_SECURITY_ATTRIBUTE_V1* {.pure.} = object Name*: PWSTR ValueType*: WORD @@ -1198,6 +1313,7 @@ Flags*: DWORD ValueCount*: DWORD Values*: CLAIM_SECURITY_ATTRIBUTE_V1_Values + PCLAIM_SECURITY_ATTRIBUTE_V1* = ptr CLAIM_SECURITY_ATTRIBUTE_V1 CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_Values* {.pure, union.} = object pInt64*: array[ANYSIZE_ARRAY, DWORD] @@ -1205,6 +1321,7 @@ ppString*: array[ANYSIZE_ARRAY, DWORD] pFqbn*: array[ANYSIZE_ARRAY, DWORD] pOctetString*: array[ANYSIZE_ARRAY, DWORD] + CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1* {.pure.} = object Name*: DWORD ValueType*: WORD @@ -1212,43 +1329,51 @@ Flags*: DWORD ValueCount*: DWORD Values*: CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1_Values + PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1* = ptr CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 CLAIM_SECURITY_ATTRIBUTES_INFORMATION_Attribute* {.pure, union.} = object pAttributeV1*: PCLAIM_SECURITY_ATTRIBUTE_V1 + CLAIM_SECURITY_ATTRIBUTES_INFORMATION* {.pure.} = object Version*: WORD Reserved*: WORD AttributeCount*: DWORD Attribute*: CLAIM_SECURITY_ATTRIBUTES_INFORMATION_Attribute + PCLAIM_SECURITY_ATTRIBUTES_INFORMATION* = ptr CLAIM_SECURITY_ATTRIBUTES_INFORMATION SECURITY_QUALITY_OF_SERVICE* {.pure.} = object Length*: DWORD ImpersonationLevel*: SECURITY_IMPERSONATION_LEVEL ContextTrackingMode*: SECURITY_CONTEXT_TRACKING_MODE EffectiveOnly*: BOOLEAN + PSECURITY_QUALITY_OF_SERVICE* = ptr SECURITY_QUALITY_OF_SERVICE SE_IMPERSONATION_STATE* {.pure.} = object Token*: PACCESS_TOKEN CopyOnOpen*: BOOLEAN EffectiveOnly*: BOOLEAN Level*: SECURITY_IMPERSONATION_LEVEL + PSE_IMPERSONATION_STATE* = ptr SE_IMPERSONATION_STATE SECURITY_CAPABILITIES* {.pure.} = object AppContainerSid*: PSID Capabilities*: PSID_AND_ATTRIBUTES CapabilityCount*: DWORD Reserved*: DWORD + PSECURITY_CAPABILITIES* = ptr SECURITY_CAPABILITIES LPSECURITY_CAPABILITIES* = ptr SECURITY_CAPABILITIES JOB_SET_ARRAY* {.pure.} = object JobHandle*: HANDLE MemberLevel*: DWORD Flags*: DWORD + PJOB_SET_ARRAY* = ptr JOB_SET_ARRAY EXCEPTION_REGISTRATION_RECORD* {.pure.} = object NT_TIB_UNION1* {.pure, union.} = object FiberData*: PVOID Version*: DWORD + NT_TIB* {.pure.} = object ExceptionList*: ptr EXCEPTION_REGISTRATION_RECORD StackBase*: PVOID @@ -1257,10 +1382,12 @@ union1*: NT_TIB_UNION1 ArbitraryUserPointer*: PVOID Self*: ptr NT_TIB + PNT_TIB* = ptr NT_TIB NT_TIB32_UNION1* {.pure, union.} = object FiberData*: DWORD Version*: DWORD + NT_TIB32* {.pure.} = object ExceptionList*: DWORD StackBase*: DWORD @@ -1269,10 +1396,12 @@ union1*: NT_TIB32_UNION1 ArbitraryUserPointer*: DWORD Self*: DWORD + PNT_TIB32* = ptr NT_TIB32 NT_TIB64_UNION1* {.pure, union.} = object FiberData*: DWORD64 Version*: DWORD + NT_TIB64* {.pure.} = object ExceptionList*: DWORD64 StackBase*: DWORD64 @@ -1281,11 +1410,13 @@ union1*: NT_TIB64_UNION1 ArbitraryUserPointer*: DWORD64 Self*: DWORD64 + PNT_TIB64* = ptr NT_TIB64 UMS_CREATE_THREAD_ATTRIBUTES* {.pure.} = object UmsVersion*: DWORD UmsContext*: PVOID UmsCompletionList*: PVOID + PUMS_CREATE_THREAD_ATTRIBUTES* = ptr UMS_CREATE_THREAD_ATTRIBUTES QUOTA_LIMITS* {.pure.} = object PagedPoolLimit*: SIZE_T @@ -1294,13 +1425,16 @@ MaximumWorkingSetSize*: SIZE_T PagefileLimit*: SIZE_T TimeLimit*: LARGE_INTEGER + PQUOTA_LIMITS* = ptr QUOTA_LIMITS RATE_QUOTA_LIMIT_STRUCT1* {.pure.} = object - RatePercent* {.bitsize:7.}: DWORD - Reserved0* {.bitsize:25.}: DWORD + RatePercent* {.bitsize: 7.}: DWORD + Reserved0* {.bitsize: 25.}: DWORD + RATE_QUOTA_LIMIT* {.pure, union.} = object RateData*: DWORD struct1*: RATE_QUOTA_LIMIT_STRUCT1 + PRATE_QUOTA_LIMIT* = ptr RATE_QUOTA_LIMIT QUOTA_LIMITS_EX* {.pure.} = object PagedPoolLimit*: SIZE_T @@ -1315,6 +1449,7 @@ Reserved4*: SIZE_T Flags*: DWORD CpuRateLimit*: RATE_QUOTA_LIMIT + PQUOTA_LIMITS_EX* = ptr QUOTA_LIMITS_EX IO_COUNTERS* {.pure.} = object ReadOperationCount*: ULONGLONG @@ -1323,58 +1458,77 @@ ReadTransferCount*: ULONGLONG WriteTransferCount*: ULONGLONG OtherTransferCount*: ULONGLONG + PIO_COUNTERS* = ptr IO_COUNTERS PROCESS_MITIGATION_ASLR_POLICY_UNION1_STRUCT1* {.pure.} = object - EnableBottomUpRandomization* {.bitsize:1.}: DWORD - EnableForceRelocateImages* {.bitsize:1.}: DWORD - EnableHighEntropy* {.bitsize:1.}: DWORD - DisallowStrippedImages* {.bitsize:1.}: DWORD - ReservedFlags* {.bitsize:28.}: DWORD + EnableBottomUpRandomization* {.bitsize: 1.}: DWORD + EnableForceRelocateImages* {.bitsize: 1.}: DWORD + EnableHighEntropy* {.bitsize: 1.}: DWORD + DisallowStrippedImages* {.bitsize: 1.}: DWORD + ReservedFlags* {.bitsize: 28.}: DWORD + PROCESS_MITIGATION_ASLR_POLICY_UNION1* {.pure, union.} = object Flags*: DWORD struct1*: PROCESS_MITIGATION_ASLR_POLICY_UNION1_STRUCT1 + PROCESS_MITIGATION_ASLR_POLICY* {.pure.} = object union1*: PROCESS_MITIGATION_ASLR_POLICY_UNION1 + PPROCESS_MITIGATION_ASLR_POLICY* = ptr PROCESS_MITIGATION_ASLR_POLICY PROCESS_MITIGATION_DEP_POLICY_UNION1_STRUCT1* {.pure.} = object - Enable* {.bitsize:1.}: DWORD - DisableAtlThunkEmulation* {.bitsize:1.}: DWORD - ReservedFlags* {.bitsize:30.}: DWORD + Enable* {.bitsize: 1.}: DWORD + DisableAtlThunkEmulation* {.bitsize: 1.}: DWORD + ReservedFlags* {.bitsize: 30.}: DWORD + PROCESS_MITIGATION_DEP_POLICY_UNION1* {.pure, union.} = object Flags*: DWORD struct1*: PROCESS_MITIGATION_DEP_POLICY_UNION1_STRUCT1 + PROCESS_MITIGATION_DEP_POLICY* {.pure.} = object union1*: PROCESS_MITIGATION_DEP_POLICY_UNION1 Permanent*: BOOLEAN + PPROCESS_MITIGATION_DEP_POLICY* = ptr PROCESS_MITIGATION_DEP_POLICY PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_UNION1_STRUCT1* {.pure.} = object - RaiseExceptionOnInvalidHandleReference* {.bitsize:1.}: DWORD - HandleExceptionsPermanentlyEnabled* {.bitsize:1.}: DWORD - ReservedFlags* {.bitsize:30.}: DWORD + RaiseExceptionOnInvalidHandleReference* {.bitsize: 1.}: DWORD + HandleExceptionsPermanentlyEnabled* {.bitsize: 1.}: DWORD + ReservedFlags* {.bitsize: 30.}: DWORD + PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_UNION1* {.pure, union.} = object Flags*: DWORD struct1*: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_UNION1_STRUCT1 + PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY* {.pure.} = object union1*: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY_UNION1 - PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY* = ptr PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY + + PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY* = + ptr PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_UNION1_STRUCT1* {.pure.} = object - DisallowWin32kSystemCalls* {.bitsize:1.}: DWORD - ReservedFlags* {.bitsize:31.}: DWORD + DisallowWin32kSystemCalls* {.bitsize: 1.}: DWORD + ReservedFlags* {.bitsize: 31.}: DWORD + PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_UNION1* {.pure, union.} = object Flags*: DWORD struct1*: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_UNION1_STRUCT1 + PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY* {.pure.} = object union1*: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY_UNION1 - PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY* = ptr PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY + + PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY* = + ptr PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_UNION1_STRUCT1* {.pure.} = object - DisableExtensionPoints* {.bitsize:1.}: DWORD - ReservedFlags* {.bitsize:31.}: DWORD + DisableExtensionPoints* {.bitsize: 1.}: DWORD + ReservedFlags* {.bitsize: 31.}: DWORD + PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_UNION1* {.pure, union.} = object Flags*: DWORD struct1*: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_UNION1_STRUCT1 + PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY* {.pure.} = object union1*: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY_UNION1 - PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY* = ptr PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY + + PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY* = + ptr PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* {.pure.} = object TotalUserTime*: LARGE_INTEGER TotalKernelTime*: LARGE_INTEGER @@ -1384,6 +1538,7 @@ TotalProcesses*: DWORD ActiveProcesses*: DWORD TotalTerminatedProcesses*: DWORD + PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION* = ptr JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION* {.pure.} = object PerProcessUserTimeLimit*: LARGE_INTEGER @@ -1395,6 +1550,7 @@ Affinity*: ULONG_PTR PriorityClass*: DWORD SchedulingClass*: DWORD + PJOBOBJECT_BASIC_LIMIT_INFORMATION* = ptr JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION* {.pure.} = object BasicLimitInformation*: JOBOBJECT_BASIC_LIMIT_INFORMATION @@ -1403,14 +1559,17 @@ JobMemoryLimit*: SIZE_T PeakProcessMemoryUsed*: SIZE_T PeakJobMemoryUsed*: SIZE_T + PJOBOBJECT_EXTENDED_LIMIT_INFORMATION* = ptr JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_BASIC_PROCESS_ID_LIST* {.pure.} = object NumberOfAssignedProcesses*: DWORD NumberOfProcessIdsInList*: DWORD ProcessIdList*: array[1, ULONG_PTR] + PJOBOBJECT_BASIC_PROCESS_ID_LIST* = ptr JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_UI_RESTRICTIONS* {.pure.} = object UIRestrictionsClass*: DWORD + PJOBOBJECT_BASIC_UI_RESTRICTIONS* = ptr JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_SECURITY_LIMIT_INFORMATION* {.pure.} = object SecurityLimitFlags*: DWORD @@ -1418,20 +1577,26 @@ SidsToDisable*: PTOKEN_GROUPS PrivilegesToDelete*: PTOKEN_PRIVILEGES RestrictedSids*: PTOKEN_GROUPS + PJOBOBJECT_SECURITY_LIMIT_INFORMATION* = ptr JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATION* {.pure.} = object EndOfJobTimeAction*: DWORD + PJOBOBJECT_END_OF_JOB_TIME_INFORMATION* = ptr JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_ASSOCIATE_COMPLETION_PORT* {.pure.} = object CompletionKey*: PVOID CompletionPort*: HANDLE + PJOBOBJECT_ASSOCIATE_COMPLETION_PORT* = ptr JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* {.pure.} = object BasicInfo*: JOBOBJECT_BASIC_ACCOUNTING_INFORMATION IoInfo*: IO_COUNTERS - PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* = ptr JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION + + PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* = + ptr JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_JOBSET_INFORMATION* {.pure.} = object MemberLevel*: DWORD + PJOBOBJECT_JOBSET_INFORMATION* = ptr JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION* {.pure.} = object IoReadBytesLimit*: DWORD64 @@ -1441,7 +1606,9 @@ RateControlTolerance*: JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceInterval*: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL LimitFlags*: DWORD - PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION* = ptr JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION + + PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION* = + ptr JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION JOBOBJECT_LIMIT_VIOLATION_INFORMATION* {.pure.} = object LimitFlags*: DWORD ViolationLimitFlags*: DWORD @@ -1455,13 +1622,16 @@ JobMemoryLimit*: DWORD64 RateControlTolerance*: JOBOBJECT_RATE_CONTROL_TOLERANCE RateControlToleranceLimit*: JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL + PJOBOBJECT_LIMIT_VIOLATION_INFORMATION* = ptr JOBOBJECT_LIMIT_VIOLATION_INFORMATION JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_UNION1* {.pure, union.} = object CpuRate*: DWORD Weight*: DWORD + JOBOBJECT_CPU_RATE_CONTROL_INFORMATION* {.pure.} = object ControlFlags*: DWORD union1*: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION_UNION1 + PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION* = ptr JOBOBJECT_CPU_RATE_CONTROL_INFORMATION CACHE_DESCRIPTOR* {.pure.} = object Level*: BYTE @@ -1469,31 +1639,38 @@ LineSize*: WORD Size*: DWORD Type*: PROCESSOR_CACHE_TYPE + PCACHE_DESCRIPTOR* = ptr CACHE_DESCRIPTOR SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore* {.pure.} = object Flags*: BYTE + SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode* {.pure.} = object NodeNumber*: DWORD + SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1* {.pure, union.} = object ProcessorCore*: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore NumaNode*: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode Cache*: CACHE_DESCRIPTOR Reserved*: array[2, ULONGLONG] + SYSTEM_LOGICAL_PROCESSOR_INFORMATION* {.pure.} = object ProcessorMask*: ULONG_PTR Relationship*: LOGICAL_PROCESSOR_RELATIONSHIP union1*: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1 + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION* = ptr SYSTEM_LOGICAL_PROCESSOR_INFORMATION PROCESSOR_RELATIONSHIP* {.pure.} = object Flags*: BYTE Reserved*: array[21, BYTE] GroupCount*: WORD GroupMask*: array[ANYSIZE_ARRAY, GROUP_AFFINITY] + PPROCESSOR_RELATIONSHIP* = ptr PROCESSOR_RELATIONSHIP NUMA_NODE_RELATIONSHIP* {.pure.} = object NodeNumber*: DWORD Reserved*: array[20, BYTE] GroupMask*: GROUP_AFFINITY + PNUMA_NODE_RELATIONSHIP* = ptr NUMA_NODE_RELATIONSHIP CACHE_RELATIONSHIP* {.pure.} = object Level*: BYTE @@ -1503,45 +1680,55 @@ Type*: PROCESSOR_CACHE_TYPE Reserved*: array[20, BYTE] GroupMask*: GROUP_AFFINITY + PCACHE_RELATIONSHIP* = ptr CACHE_RELATIONSHIP PROCESSOR_GROUP_INFO* {.pure.} = object MaximumProcessorCount*: BYTE ActiveProcessorCount*: BYTE Reserved*: array[38, BYTE] ActiveProcessorMask*: KAFFINITY + PPROCESSOR_GROUP_INFO* = ptr PROCESSOR_GROUP_INFO GROUP_RELATIONSHIP* {.pure.} = object MaximumGroupCount*: WORD ActiveGroupCount*: WORD Reserved*: array[20, BYTE] GroupInfo*: array[ANYSIZE_ARRAY, PROCESSOR_GROUP_INFO] + PGROUP_RELATIONSHIP* = ptr GROUP_RELATIONSHIP SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX_UNION1* {.pure, union.} = object Processor*: PROCESSOR_RELATIONSHIP NumaNode*: NUMA_NODE_RELATIONSHIP Cache*: CACHE_RELATIONSHIP Group*: GROUP_RELATIONSHIP + SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX* {.pure.} = object Relationship*: LOGICAL_PROCESSOR_RELATIONSHIP Size*: DWORD union1*: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX_UNION1 - PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX* = ptr SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX + + PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX* = + ptr SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION* {.pure.} = object CycleTime*: DWORD64 - PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION* = ptr SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION + + PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION* = + ptr SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION XSTATE_FEATURE* {.pure.} = object Offset*: DWORD Size*: DWORD + PXSTATE_FEATURE* = ptr XSTATE_FEATURE -const - MAXIMUM_XSTATE_FEATURES* = 64 + +const MAXIMUM_XSTATE_FEATURES* = 64 type XSTATE_CONFIGURATION* {.pure.} = object EnabledFeatures*: DWORD64 EnabledVolatileFeatures*: DWORD64 Size*: DWORD - OptimizedSave* {.bitsize:1.}: DWORD + OptimizedSave* {.bitsize: 1.}: DWORD Features*: array[MAXIMUM_XSTATE_FEATURES, XSTATE_FEATURE] + PXSTATE_CONFIGURATION* = ptr XSTATE_CONFIGURATION MEMORY_BASIC_INFORMATION* {.pure.} = object BaseAddress*: PVOID @@ -1551,6 +1738,7 @@ State*: DWORD Protect*: DWORD Type*: DWORD + PMEMORY_BASIC_INFORMATION* = ptr MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION32* {.pure.} = object BaseAddress*: DWORD @@ -1560,6 +1748,7 @@ State*: DWORD Protect*: DWORD Type*: DWORD + PMEMORY_BASIC_INFORMATION32* = ptr MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION64* {.pure.} = object BaseAddress*: ULONGLONG @@ -1571,29 +1760,35 @@ Protect*: DWORD Type*: DWORD alignment2*: DWORD + PMEMORY_BASIC_INFORMATION64* = ptr MEMORY_BASIC_INFORMATION64 FILE_ID_128* {.pure.} = object LowPart*: ULONGLONG HighPart*: ULONGLONG + PFILE_ID_128* = ptr FILE_ID_128 FILE_NOTIFY_INFORMATION* {.pure.} = object NextEntryOffset*: DWORD Action*: DWORD FileNameLength*: DWORD FileName*: array[1, WCHAR] + PFILE_NOTIFY_INFORMATION* = ptr FILE_NOTIFY_INFORMATION FILE_SEGMENT_ELEMENT* {.pure, union.} = object Buffer*: PVOID64 Alignment*: ULONGLONG + PFILE_SEGMENT_ELEMENT* = ptr FILE_SEGMENT_ELEMENT REPARSE_GUID_DATA_BUFFER_GenericReparseBuffer* {.pure.} = object DataBuffer*: array[1, BYTE] + REPARSE_GUID_DATA_BUFFER* {.pure.} = object ReparseTag*: DWORD ReparseDataLength*: WORD Reserved*: WORD ReparseGuid*: GUID GenericReparseBuffer*: REPARSE_GUID_DATA_BUFFER_GenericReparseBuffer + PREPARSE_GUID_DATA_BUFFER* = ptr REPARSE_GUID_DATA_BUFFER SCRUB_DATA_INPUT* {.pure.} = object Size*: DWORD @@ -1601,6 +1796,7 @@ MaximumIos*: DWORD Reserved*: array[17, DWORD] ResumeContext*: array[816, BYTE] + PSCRUB_DATA_INPUT* = ptr SCRUB_DATA_INPUT SCRUB_DATA_OUTPUT* {.pure.} = object Size*: DWORD @@ -1613,9 +1809,10 @@ InternalFileReference*: ULONGLONG Reserved*: array[6, DWORD] ResumeContext*: array[816, BYTE] + PSCRUB_DATA_OUTPUT* = ptr SCRUB_DATA_OUTPUT -const - POWER_SYSTEM_MAXIMUM* = 7 + +const POWER_SYSTEM_MAXIMUM* = 7 type CM_POWER_DATA* {.pure.} = object PD_Size*: DWORD @@ -1626,40 +1823,49 @@ PD_D3Latency*: DWORD PD_PowerStateMapping*: array[POWER_SYSTEM_MAXIMUM, DEVICE_POWER_STATE] PD_DeepestSystemWake*: SYSTEM_POWER_STATE + PCM_POWER_DATA* = ptr CM_POWER_DATA POWER_USER_PRESENCE* {.pure.} = object UserPresence*: POWER_USER_PRESENCE_TYPE + PPOWER_USER_PRESENCE* = ptr POWER_USER_PRESENCE POWER_SESSION_CONNECT* {.pure.} = object Connected*: BOOLEAN Console*: BOOLEAN + PPOWER_SESSION_CONNECT* = ptr POWER_SESSION_CONNECT POWER_SESSION_TIMEOUTS* {.pure.} = object InputTimeout*: DWORD DisplayTimeout*: DWORD + PPOWER_SESSION_TIMEOUTS* = ptr POWER_SESSION_TIMEOUTS POWER_SESSION_RIT_STATE* {.pure.} = object Active*: BOOLEAN LastInputTime*: DWORD + PPOWER_SESSION_RIT_STATE* = ptr POWER_SESSION_RIT_STATE POWER_SESSION_WINLOGON* {.pure.} = object SessionId*: DWORD Console*: BOOLEAN Locked*: BOOLEAN + PPOWER_SESSION_WINLOGON* = ptr POWER_SESSION_WINLOGON POWER_IDLE_RESILIENCY* {.pure.} = object CoalescingTimeout*: DWORD IdleResiliencyPeriod*: DWORD + PPOWER_IDLE_RESILIENCY* = ptr POWER_IDLE_RESILIENCY POWER_MONITOR_INVOCATION* {.pure.} = object On*: BOOLEAN Console*: BOOLEAN RequestReason*: POWER_MONITOR_REQUEST_REASON + PPOWER_MONITOR_INVOCATION* = ptr POWER_MONITOR_INVOCATION RESUME_PERFORMANCE* {.pure.} = object PostTimeMs*: DWORD TotalResumeTimeMs*: ULONGLONG ResumeCompleteTimestamp*: ULONGLONG + PRESUME_PERFORMANCE* = ptr RESUME_PERFORMANCE SET_POWER_SETTING_VALUE* {.pure.} = object Version*: DWORD @@ -1667,26 +1873,32 @@ PowerCondition*: SYSTEM_POWER_CONDITION DataLength*: DWORD Data*: array[ANYSIZE_ARRAY, BYTE] + PSET_POWER_SETTING_VALUE* = ptr SET_POWER_SETTING_VALUE NOTIFY_USER_POWER_SETTING* {.pure.} = object Guid*: GUID + PNOTIFY_USER_POWER_SETTING* = ptr NOTIFY_USER_POWER_SETTING APPLICATIONLAUNCH_SETTING_VALUE* {.pure.} = object ActivationTime*: LARGE_INTEGER Flags*: DWORD ButtonInstanceID*: DWORD + PAPPLICATIONLAUNCH_SETTING_VALUE* = ptr APPLICATIONLAUNCH_SETTING_VALUE POWER_PLATFORM_INFORMATION* {.pure.} = object AoAc*: BOOLEAN + PPOWER_PLATFORM_INFORMATION* = ptr POWER_PLATFORM_INFORMATION BATTERY_REPORTING_SCALE* {.pure.} = object Granularity*: DWORD Capacity*: DWORD + PBATTERY_REPORTING_SCALE* = ptr BATTERY_REPORTING_SCALE PPM_WMI_LEGACY_PERFSTATE* {.pure.} = object Frequency*: DWORD Flags*: DWORD PercentFrequency*: DWORD + PPPM_WMI_LEGACY_PERFSTATE* = ptr PPM_WMI_LEGACY_PERFSTATE PPM_WMI_IDLE_STATE* {.pure.} = object Latency*: DWORD @@ -1700,6 +1912,7 @@ Context*: DWORD IdleHandler*: DWORD Reserved1*: DWORD + PPPM_WMI_IDLE_STATE* = ptr PPM_WMI_IDLE_STATE PPM_WMI_IDLE_STATES* {.pure.} = object Type*: DWORD @@ -1708,6 +1921,7 @@ OldState*: DWORD TargetProcessors*: DWORD64 State*: array[ANYSIZE_ARRAY, PPM_WMI_IDLE_STATE] + PPPM_WMI_IDLE_STATES* = ptr PPM_WMI_IDLE_STATES PPM_WMI_IDLE_STATES_EX* {.pure.} = object Type*: DWORD @@ -1716,6 +1930,7 @@ OldState*: DWORD TargetProcessors*: PVOID State*: array[ANYSIZE_ARRAY, PPM_WMI_IDLE_STATE] + PPPM_WMI_IDLE_STATES_EX* = ptr PPM_WMI_IDLE_STATES_EX PPM_WMI_PERF_STATE* {.pure.} = object Frequency*: DWORD @@ -1732,6 +1947,7 @@ Reserved1*: DWORD Reserved2*: DWORD64 Reserved3*: DWORD64 + PPPM_WMI_PERF_STATE* = ptr PPM_WMI_PERF_STATE PPM_WMI_PERF_STATES* {.pure.} = object Count*: DWORD @@ -1755,6 +1971,7 @@ Reserved1*: DWORD Reserved2*: DWORD64 State*: array[ANYSIZE_ARRAY, PPM_WMI_PERF_STATE] + PPPM_WMI_PERF_STATES* = ptr PPM_WMI_PERF_STATES PPM_WMI_PERF_STATES_EX* {.pure.} = object Count*: DWORD @@ -1778,9 +1995,10 @@ Reserved1*: DWORD Reserved2*: DWORD64 State*: array[ANYSIZE_ARRAY, PPM_WMI_PERF_STATE] + PPPM_WMI_PERF_STATES_EX* = ptr PPM_WMI_PERF_STATES_EX -const - PROC_IDLE_BUCKET_COUNT* = 6 + +const PROC_IDLE_BUCKET_COUNT* = 6 type PPM_IDLE_STATE_ACCOUNTING* {.pure.} = object IdleTransitions*: DWORD @@ -1788,6 +2006,7 @@ InvalidBucketIndex*: DWORD TotalTime*: DWORD64 IdleTimeBuckets*: array[PROC_IDLE_BUCKET_COUNT, DWORD] + PPPM_IDLE_STATE_ACCOUNTING* = ptr PPM_IDLE_STATE_ACCOUNTING PPM_IDLE_ACCOUNTING* {.pure.} = object StateCount*: DWORD @@ -1795,15 +2014,17 @@ ResetCount*: DWORD StartTime*: DWORD64 State*: array[ANYSIZE_ARRAY, PPM_IDLE_STATE_ACCOUNTING] + PPPM_IDLE_ACCOUNTING* = ptr PPM_IDLE_ACCOUNTING PPM_IDLE_STATE_BUCKET_EX* {.pure.} = object TotalTimeUs*: DWORD64 MinTimeUs*: DWORD MaxTimeUs*: DWORD Count*: DWORD + PPPM_IDLE_STATE_BUCKET_EX* = ptr PPM_IDLE_STATE_BUCKET_EX -const - PROC_IDLE_BUCKET_COUNT_EX* = 16 + +const PROC_IDLE_BUCKET_COUNT_EX* = 16 type PPM_IDLE_STATE_ACCOUNTING_EX* {.pure.} = object TotalTime*: DWORD64 @@ -1814,6 +2035,7 @@ MaxTimeUs*: DWORD CancelledTransitions*: DWORD IdleTimeBuckets*: array[PROC_IDLE_BUCKET_COUNT_EX, PPM_IDLE_STATE_BUCKET_EX] + PPPM_IDLE_STATE_ACCOUNTING_EX* = ptr PPM_IDLE_STATE_ACCOUNTING_EX PPM_IDLE_ACCOUNTING_EX* {.pure.} = object StateCount*: DWORD @@ -1822,6 +2044,7 @@ AbortCount*: DWORD StartTime*: DWORD64 State*: array[ANYSIZE_ARRAY, PPM_IDLE_STATE_ACCOUNTING_EX] + PPPM_IDLE_ACCOUNTING_EX* = ptr PPM_IDLE_ACCOUNTING_EX PPM_PERFSTATE_EVENT* {.pure.} = object State*: DWORD @@ -1829,36 +2052,43 @@ Latency*: DWORD Speed*: DWORD Processor*: DWORD + PPPM_PERFSTATE_EVENT* = ptr PPM_PERFSTATE_EVENT PPM_PERFSTATE_DOMAIN_EVENT* {.pure.} = object State*: DWORD Latency*: DWORD Speed*: DWORD Processors*: DWORD64 + PPPM_PERFSTATE_DOMAIN_EVENT* = ptr PPM_PERFSTATE_DOMAIN_EVENT PPM_IDLESTATE_EVENT* {.pure.} = object NewState*: DWORD OldState*: DWORD Processors*: DWORD64 + PPPM_IDLESTATE_EVENT* = ptr PPM_IDLESTATE_EVENT PPM_THERMALCHANGE_EVENT* {.pure.} = object ThermalConstraint*: DWORD Processors*: DWORD64 + PPPM_THERMALCHANGE_EVENT* = ptr PPM_THERMALCHANGE_EVENT PPM_THERMAL_POLICY_EVENT* {.pure.} = object Mode*: BYTE Processors*: DWORD64 + PPPM_THERMAL_POLICY_EVENT* = ptr PPM_THERMAL_POLICY_EVENT POWER_ACTION_POLICY* {.pure.} = object Action*: POWER_ACTION Flags*: DWORD EventCode*: DWORD + PPOWER_ACTION_POLICY* = ptr POWER_ACTION_POLICY PROCESSOR_IDLESTATE_INFO* {.pure.} = object TimeCheck*: DWORD DemotePercent*: BYTE PromotePercent*: BYTE Spare*: array[2, BYTE] + PPROCESSOR_IDLESTATE_INFO* = ptr PROCESSOR_IDLESTATE_INFO SYSTEM_POWER_LEVEL* {.pure.} = object Enable*: BOOLEAN @@ -1866,9 +2096,10 @@ BatteryLevel*: DWORD PowerPolicy*: POWER_ACTION_POLICY MinSystemState*: SYSTEM_POWER_STATE + PSYSTEM_POWER_LEVEL* = ptr SYSTEM_POWER_LEVEL -const - NUM_DISCHARGE_POLICIES* = 4 + +const NUM_DISCHARGE_POLICIES* = 4 type SYSTEM_POWER_POLICY* {.pure.} = object Revision*: DWORD @@ -1899,22 +2130,25 @@ ForcedThrottle*: BYTE MinThrottle*: BYTE OverThrottled*: POWER_ACTION_POLICY + PSYSTEM_POWER_POLICY* = ptr SYSTEM_POWER_POLICY PROCESSOR_IDLESTATE_POLICY_Flags_STRUCT1* {.pure.} = object - AllowScaling* {.bitsize:1.}: WORD - Disabled* {.bitsize:1.}: WORD - Reserved* {.bitsize:14.}: WORD + AllowScaling* {.bitsize: 1.}: WORD + Disabled* {.bitsize: 1.}: WORD + Reserved* {.bitsize: 14.}: WORD + PROCESSOR_IDLESTATE_POLICY_Flags* {.pure, union.} = object AsWORD*: WORD struct1*: PROCESSOR_IDLESTATE_POLICY_Flags_STRUCT1 -const - PROCESSOR_IDLESTATE_POLICY_COUNT* = 0x3 + +const PROCESSOR_IDLESTATE_POLICY_COUNT* = 0x3 type PROCESSOR_IDLESTATE_POLICY* {.pure.} = object Revision*: WORD Flags*: PROCESSOR_IDLESTATE_POLICY_Flags PolicyCount*: DWORD Policy*: array[PROCESSOR_IDLESTATE_POLICY_COUNT, PROCESSOR_IDLESTATE_INFO] + PPROCESSOR_IDLESTATE_POLICY* = ptr PROCESSOR_IDLESTATE_POLICY PROCESSOR_POWER_POLICY_INFO* {.pure.} = object TimeCheck*: DWORD @@ -1923,30 +2157,35 @@ DemotePercent*: BYTE PromotePercent*: BYTE Spare*: array[2, BYTE] - AllowDemotion* {.bitsize:1.}: DWORD - AllowPromotion* {.bitsize:1.}: DWORD - Reserved* {.bitsize:30.}: DWORD + AllowDemotion* {.bitsize: 1.}: DWORD + AllowPromotion* {.bitsize: 1.}: DWORD + Reserved* {.bitsize: 30.}: DWORD + PPROCESSOR_POWER_POLICY_INFO* = ptr PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY* {.pure.} = object Revision*: DWORD DynamicThrottle*: BYTE Spare*: array[3, BYTE] - DisableCStates* {.bitsize:1.}: DWORD - Reserved* {.bitsize:31.}: DWORD + DisableCStates* {.bitsize: 1.}: DWORD + Reserved* {.bitsize: 31.}: DWORD PolicyCount*: DWORD Policy*: array[3, PROCESSOR_POWER_POLICY_INFO] + PPROCESSOR_POWER_POLICY* = ptr PROCESSOR_POWER_POLICY PROCESSOR_PERFSTATE_POLICY_UNION1_Flags_STRUCT1* {.pure.} = object - NoDomainAccounting* {.bitsize:1.}: BYTE - IncreasePolicy* {.bitsize:2.}: BYTE - DecreasePolicy* {.bitsize:2.}: BYTE - Reserved* {.bitsize:3.}: BYTE + NoDomainAccounting* {.bitsize: 1.}: BYTE + IncreasePolicy* {.bitsize: 2.}: BYTE + DecreasePolicy* {.bitsize: 2.}: BYTE + Reserved* {.bitsize: 3.}: BYTE + PROCESSOR_PERFSTATE_POLICY_UNION1_Flags* {.pure, union.} = object AsBYTE*: BYTE struct1*: PROCESSOR_PERFSTATE_POLICY_UNION1_Flags_STRUCT1 + PROCESSOR_PERFSTATE_POLICY_UNION1* {.pure, union.} = object Spare*: BYTE Flags*: PROCESSOR_PERFSTATE_POLICY_UNION1_Flags + PROCESSOR_PERFSTATE_POLICY* {.pure.} = object Revision*: DWORD MaxThrottle*: BYTE @@ -1958,6 +2197,7 @@ DecreaseTime*: DWORD IncreasePercent*: DWORD DecreasePercent*: DWORD + PPROCESSOR_PERFSTATE_POLICY* = ptr PROCESSOR_PERFSTATE_POLICY ADMINISTRATOR_POWER_POLICY* {.pure.} = object MinSleep*: SYSTEM_POWER_STATE @@ -1966,6 +2206,7 @@ MaxVideoTimeout*: DWORD MinSpindownTimeout*: DWORD MaxSpindownTimeout*: DWORD + PADMINISTRATOR_POWER_POLICY* = ptr ADMINISTRATOR_POWER_POLICY SYSTEM_POWER_CAPABILITIES* {.pure.} = object PowerButtonPresent*: BOOLEAN @@ -1997,6 +2238,7 @@ RtcWake*: SYSTEM_POWER_STATE MinDeviceWakeState*: SYSTEM_POWER_STATE DefaultLowLatencyWake*: SYSTEM_POWER_STATE + PSYSTEM_POWER_CAPABILITIES* = ptr SYSTEM_POWER_CAPABILITIES SYSTEM_BATTERY_STATE* {.pure.} = object AcOnLine*: BOOLEAN @@ -2010,6 +2252,7 @@ EstimatedTime*: DWORD DefaultAlert1*: DWORD DefaultAlert2*: DWORD + PSYSTEM_BATTERY_STATE* = ptr SYSTEM_BATTERY_STATE IMAGE_DOS_HEADER* {.pure.} = object e_magic*: WORD @@ -2031,6 +2274,7 @@ e_oeminfo*: WORD e_res2*: array[10, WORD] e_lfanew*: LONG + PIMAGE_DOS_HEADER* = ptr IMAGE_DOS_HEADER IMAGE_OS2_HEADER* {.pure.} = object ne_magic*: WORD @@ -2063,6 +2307,7 @@ ne_psegrefbytes*: WORD ne_swaparea*: WORD ne_expver*: WORD + PIMAGE_OS2_HEADER* = ptr IMAGE_OS2_HEADER IMAGE_VXD_HEADER* {.pure.} = object e32_magic*: WORD @@ -2116,6 +2361,7 @@ e32_winreslen*: DWORD e32_devid*: WORD e32_ddkver*: WORD + PIMAGE_VXD_HEADER* = ptr IMAGE_VXD_HEADER IMAGE_FILE_HEADER* {.pure.} = object Machine*: WORD @@ -2125,13 +2371,15 @@ NumberOfSymbols*: DWORD SizeOfOptionalHeader*: WORD Characteristics*: WORD + PIMAGE_FILE_HEADER* = ptr IMAGE_FILE_HEADER IMAGE_DATA_DIRECTORY* {.pure.} = object VirtualAddress*: DWORD Size*: DWORD + PIMAGE_DATA_DIRECTORY* = ptr IMAGE_DATA_DIRECTORY -const - IMAGE_NUMBEROF_DIRECTORY_ENTRIES* = 16 + +const IMAGE_NUMBEROF_DIRECTORY_ENTRIES* = 16 type IMAGE_OPTIONAL_HEADER32* {.pure.} = object Magic*: WORD @@ -2165,6 +2413,7 @@ LoaderFlags*: DWORD NumberOfRvaAndSizes*: DWORD DataDirectory*: array[IMAGE_NUMBEROF_DIRECTORY_ENTRIES, IMAGE_DATA_DIRECTORY] + PIMAGE_OPTIONAL_HEADER32* = ptr IMAGE_OPTIONAL_HEADER32 IMAGE_ROM_OPTIONAL_HEADER* {.pure.} = object Magic*: WORD @@ -2180,6 +2429,7 @@ GprMask*: DWORD CprMask*: array[4, DWORD] GpValue*: DWORD + PIMAGE_ROM_OPTIONAL_HEADER* = ptr IMAGE_ROM_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER64* {.pure.} = object Magic*: WORD @@ -2212,27 +2462,32 @@ LoaderFlags*: DWORD NumberOfRvaAndSizes*: DWORD DataDirectory*: array[IMAGE_NUMBEROF_DIRECTORY_ENTRIES, IMAGE_DATA_DIRECTORY] + PIMAGE_OPTIONAL_HEADER64* = ptr IMAGE_OPTIONAL_HEADER64 IMAGE_NT_HEADERS64* {.pure.} = object Signature*: DWORD FileHeader*: IMAGE_FILE_HEADER OptionalHeader*: IMAGE_OPTIONAL_HEADER64 + PIMAGE_NT_HEADERS64* = ptr IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS32* {.pure.} = object Signature*: DWORD FileHeader*: IMAGE_FILE_HEADER OptionalHeader*: IMAGE_OPTIONAL_HEADER32 + PIMAGE_NT_HEADERS32* = ptr IMAGE_NT_HEADERS32 IMAGE_ROM_HEADERS* {.pure.} = object FileHeader*: IMAGE_FILE_HEADER OptionalHeader*: IMAGE_ROM_OPTIONAL_HEADER + PIMAGE_ROM_HEADERS* = ptr IMAGE_ROM_HEADERS -const - IMAGE_SIZEOF_SHORT_NAME* = 8 + +const IMAGE_SIZEOF_SHORT_NAME* = 8 type IMAGE_SECTION_HEADER_Misc* {.pure, union.} = object PhysicalAddress*: DWORD VirtualSize*: DWORD + IMAGE_SECTION_HEADER* {.pure.} = object Name*: array[IMAGE_SIZEOF_SHORT_NAME, BYTE] Misc*: IMAGE_SECTION_HEADER_Misc @@ -2244,14 +2499,17 @@ NumberOfRelocations*: WORD NumberOfLinenumbers*: WORD Characteristics*: DWORD + PIMAGE_SECTION_HEADER* = ptr IMAGE_SECTION_HEADER IMAGE_SYMBOL_N_Name* {.pure.} = object Short*: DWORD Long*: DWORD + IMAGE_SYMBOL_N* {.pure, union.} = object ShortName*: array[8, BYTE] Name*: IMAGE_SYMBOL_N_Name LongName*: array[2, DWORD] + IMAGE_SYMBOL* {.pure, packed.} = object N*: IMAGE_SYMBOL_N Value*: DWORD @@ -2259,14 +2517,17 @@ Type*: WORD StorageClass*: BYTE NumberOfAuxSymbols*: BYTE + PIMAGE_SYMBOL* = ptr IMAGE_SYMBOL IMAGE_SYMBOL_EX_N_Name* {.pure.} = object Short*: DWORD Long*: DWORD + IMAGE_SYMBOL_EX_N* {.pure, union.} = object ShortName*: array[8, BYTE] Name*: IMAGE_SYMBOL_EX_N_Name LongName*: array[2, DWORD] + IMAGE_SYMBOL_EX* {.pure.} = object N*: IMAGE_SYMBOL_EX_N Value*: DWORD @@ -2274,37 +2535,45 @@ Type*: WORD StorageClass*: BYTE NumberOfAuxSymbols*: BYTE + PIMAGE_SYMBOL_EX* = ptr IMAGE_SYMBOL_EX IMAGE_AUX_SYMBOL_TOKEN_DEF* {.pure, packed.} = object bAuxType*: BYTE bReserved*: BYTE SymbolTableIndex*: DWORD rgbReserved*: array[12, BYTE] + PIMAGE_AUX_SYMBOL_TOKEN_DEF* = ptr IMAGE_AUX_SYMBOL_TOKEN_DEF IMAGE_AUX_SYMBOL_Sym_Misc_LnSz* {.pure.} = object Linenumber*: WORD Size*: WORD + IMAGE_AUX_SYMBOL_Sym_Misc* {.pure, union.} = object LnSz*: IMAGE_AUX_SYMBOL_Sym_Misc_LnSz TotalSize*: DWORD + IMAGE_AUX_SYMBOL_Sym_FcnAry_Function* {.pure.} = object PointerToLinenumber*: DWORD PointerToNextFunction*: DWORD + IMAGE_AUX_SYMBOL_Sym_FcnAry_Array* {.pure.} = object Dimension*: array[4, WORD] + IMAGE_AUX_SYMBOL_Sym_FcnAry* {.pure, union.} = object Function*: IMAGE_AUX_SYMBOL_Sym_FcnAry_Function Array*: IMAGE_AUX_SYMBOL_Sym_FcnAry_Array + IMAGE_AUX_SYMBOL_Sym* {.pure.} = object TagIndex*: DWORD Misc*: IMAGE_AUX_SYMBOL_Sym_Misc FcnAry*: IMAGE_AUX_SYMBOL_Sym_FcnAry TvIndex*: WORD -const - IMAGE_SIZEOF_SYMBOL* = 18 + +const IMAGE_SIZEOF_SYMBOL* = 18 type IMAGE_AUX_SYMBOL_File* {.pure.} = object Name*: array[IMAGE_SIZEOF_SYMBOL, BYTE] + IMAGE_AUX_SYMBOL_Section* {.pure.} = object Length*: DWORD NumberOfRelocations*: WORD @@ -2312,22 +2581,27 @@ CheckSum*: DWORD Number*: SHORT Selection*: BYTE + IMAGE_AUX_SYMBOL_CRC* {.pure.} = object crc*: DWORD rgbReserved*: array[14, BYTE] + IMAGE_AUX_SYMBOL* {.pure, union.} = object Sym*: IMAGE_AUX_SYMBOL_Sym File*: IMAGE_AUX_SYMBOL_File Section*: IMAGE_AUX_SYMBOL_Section TokenDef*: IMAGE_AUX_SYMBOL_TOKEN_DEF CRC*: IMAGE_AUX_SYMBOL_CRC + PIMAGE_AUX_SYMBOL* = ptr IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL_EX_Sym* {.pure.} = object WeakDefaultSymIndex*: DWORD WeakSearchType*: DWORD rgbReserved*: array[12, BYTE] + IMAGE_AUX_SYMBOL_EX_File* {.pure.} = object Name*: array[20, BYTE] + IMAGE_AUX_SYMBOL_EX_Section* {.pure.} = object Length*: DWORD NumberOfRelocations*: WORD @@ -2338,37 +2612,46 @@ bReserved*: BYTE HighNumber*: SHORT rgbReserved*: array[2, BYTE] + IMAGE_AUX_SYMBOL_EX_STRUCT4* {.pure.} = object TokenDef*: IMAGE_AUX_SYMBOL_TOKEN_DEF rgbReserved*: array[2, BYTE] + IMAGE_AUX_SYMBOL_EX_CRC* {.pure.} = object crc*: DWORD rgbReserved*: array[16, BYTE] + IMAGE_AUX_SYMBOL_EX* {.pure, union.} = object Sym*: IMAGE_AUX_SYMBOL_EX_Sym File*: IMAGE_AUX_SYMBOL_EX_File Section*: IMAGE_AUX_SYMBOL_EX_Section struct4*: IMAGE_AUX_SYMBOL_EX_STRUCT4 CRC*: IMAGE_AUX_SYMBOL_EX_CRC + PIMAGE_AUX_SYMBOL_EX* = ptr IMAGE_AUX_SYMBOL_EX IMAGE_RELOCATION_UNION1* {.pure, union.} = object VirtualAddress*: DWORD RelocCount*: DWORD + IMAGE_RELOCATION* {.pure, packed.} = object union1*: IMAGE_RELOCATION_UNION1 SymbolTableIndex*: DWORD Type*: WORD + PIMAGE_RELOCATION* = ptr IMAGE_RELOCATION IMAGE_LINENUMBER_Type* {.pure, union.} = object SymbolTableIndex*: DWORD VirtualAddress*: DWORD + IMAGE_LINENUMBER* {.pure, packed.} = object Type*: IMAGE_LINENUMBER_Type Linenumber*: WORD + PIMAGE_LINENUMBER* = ptr IMAGE_LINENUMBER IMAGE_BASE_RELOCATION* {.pure.} = object VirtualAddress*: DWORD SizeOfBlock*: DWORD + PIMAGE_BASE_RELOCATION* = ptr IMAGE_BASE_RELOCATION IMAGE_ARCHIVE_MEMBER_HEADER* {.pure.} = object Name*: array[16, BYTE] @@ -2378,6 +2661,7 @@ Mode*: array[8, BYTE] Size*: array[10, BYTE] EndHeader*: array[2, BYTE] + PIMAGE_ARCHIVE_MEMBER_HEADER* = ptr IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_EXPORT_DIRECTORY* {.pure.} = object Characteristics*: DWORD @@ -2391,26 +2675,32 @@ AddressOfFunctions*: DWORD AddressOfNames*: DWORD AddressOfNameOrdinals*: DWORD + PIMAGE_EXPORT_DIRECTORY* = ptr IMAGE_EXPORT_DIRECTORY IMAGE_IMPORT_BY_NAME* {.pure.} = object Hint*: WORD Name*: array[1, BYTE] + PIMAGE_IMPORT_BY_NAME* = ptr IMAGE_IMPORT_BY_NAME IMAGE_THUNK_DATA64_u1* {.pure, union.} = object ForwarderString*: ULONGLONG Function*: ULONGLONG Ordinal*: ULONGLONG AddressOfData*: ULONGLONG + IMAGE_THUNK_DATA64* {.pure.} = object u1*: IMAGE_THUNK_DATA64_u1 + PIMAGE_THUNK_DATA64* = ptr IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA32_u1* {.pure, union.} = object ForwarderString*: DWORD Function*: DWORD Ordinal*: DWORD AddressOfData*: DWORD + IMAGE_THUNK_DATA32* {.pure.} = object u1*: IMAGE_THUNK_DATA32_u1 + PIMAGE_THUNK_DATA32* = ptr IMAGE_THUNK_DATA32 IMAGE_TLS_DIRECTORY64* {.pure.} = object StartAddressOfRawData*: ULONGLONG @@ -2419,6 +2709,7 @@ AddressOfCallBacks*: ULONGLONG SizeOfZeroFill*: DWORD Characteristics*: DWORD + PIMAGE_TLS_DIRECTORY64* = ptr IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY32* {.pure.} = object StartAddressOfRawData*: DWORD @@ -2427,33 +2718,40 @@ AddressOfCallBacks*: DWORD SizeOfZeroFill*: DWORD Characteristics*: DWORD + PIMAGE_TLS_DIRECTORY32* = ptr IMAGE_TLS_DIRECTORY32 IMAGE_IMPORT_DESCRIPTOR_UNION1* {.pure, union.} = object Characteristics*: DWORD OriginalFirstThunk*: DWORD + IMAGE_IMPORT_DESCRIPTOR* {.pure.} = object union1*: IMAGE_IMPORT_DESCRIPTOR_UNION1 TimeDateStamp*: DWORD ForwarderChain*: DWORD Name*: DWORD FirstThunk*: DWORD + PIMAGE_IMPORT_DESCRIPTOR* = ptr IMAGE_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR* {.pure.} = object TimeDateStamp*: DWORD OffsetModuleName*: WORD NumberOfModuleForwarderRefs*: WORD + PIMAGE_BOUND_IMPORT_DESCRIPTOR* = ptr IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_FORWARDER_REF* {.pure.} = object TimeDateStamp*: DWORD OffsetModuleName*: WORD Reserved*: WORD + PIMAGE_BOUND_FORWARDER_REF* = ptr IMAGE_BOUND_FORWARDER_REF IMAGE_DELAYLOAD_DESCRIPTOR_Attributes_STRUCT1* {.pure.} = object - RvaBased* {.bitsize:1.}: DWORD - ReservedAttributes* {.bitsize:31.}: DWORD + RvaBased* {.bitsize: 1.}: DWORD + ReservedAttributes* {.bitsize: 31.}: DWORD + IMAGE_DELAYLOAD_DESCRIPTOR_Attributes* {.pure, union.} = object AllAttributes*: DWORD struct1*: IMAGE_DELAYLOAD_DESCRIPTOR_Attributes_STRUCT1 + IMAGE_DELAYLOAD_DESCRIPTOR* {.pure.} = object Attributes*: IMAGE_DELAYLOAD_DESCRIPTOR_Attributes DllNameRVA*: DWORD @@ -2463,6 +2761,7 @@ BoundImportAddressTableRVA*: DWORD UnloadInformationTableRVA*: DWORD TimeDateStamp*: DWORD + PIMAGE_DELAYLOAD_DESCRIPTOR* = ptr IMAGE_DELAYLOAD_DESCRIPTOR PCIMAGE_DELAYLOAD_DESCRIPTOR* = ptr IMAGE_DELAYLOAD_DESCRIPTOR IMAGE_RESOURCE_DIRECTORY* {.pure.} = object @@ -2472,37 +2771,46 @@ MinorVersion*: WORD NumberOfNamedEntries*: WORD NumberOfIdEntries*: WORD + PIMAGE_RESOURCE_DIRECTORY* = ptr IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION1_STRUCT1* {.pure.} = object - NameOffset* {.bitsize:31.}: DWORD - NameIsString* {.bitsize:1.}: DWORD + NameOffset* {.bitsize: 31.}: DWORD + NameIsString* {.bitsize: 1.}: DWORD + IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION1* {.pure, union.} = object struct1*: IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION1_STRUCT1 Name*: DWORD Id*: WORD + IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION2_STRUCT1* {.pure.} = object - OffsetToDirectory* {.bitsize:31.}: DWORD - DataIsDirectory* {.bitsize:1.}: DWORD + OffsetToDirectory* {.bitsize: 31.}: DWORD + DataIsDirectory* {.bitsize: 1.}: DWORD + IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION2* {.pure, union.} = object OffsetToData*: DWORD struct1*: IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION2_STRUCT1 + IMAGE_RESOURCE_DIRECTORY_ENTRY* {.pure.} = object union1*: IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION1 union2*: IMAGE_RESOURCE_DIRECTORY_ENTRY_UNION2 + PIMAGE_RESOURCE_DIRECTORY_ENTRY* = ptr IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_STRING* {.pure.} = object Length*: WORD NameString*: array[1, CHAR] + PIMAGE_RESOURCE_DIRECTORY_STRING* = ptr IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIR_STRING_U* {.pure.} = object Length*: WORD NameString*: array[1, WCHAR] + PIMAGE_RESOURCE_DIR_STRING_U* = ptr IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DATA_ENTRY* {.pure.} = object OffsetToData*: DWORD Size*: DWORD CodePage*: DWORD Reserved*: DWORD + PIMAGE_RESOURCE_DATA_ENTRY* = ptr IMAGE_RESOURCE_DATA_ENTRY IMAGE_LOAD_CONFIG_DIRECTORY32* {.pure.} = object Size*: DWORD @@ -2525,6 +2833,7 @@ SecurityCookie*: DWORD SEHandlerTable*: DWORD SEHandlerCount*: DWORD + PIMAGE_LOAD_CONFIG_DIRECTORY32* = ptr IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY64* {.pure.} = object Size*: DWORD @@ -2547,6 +2856,7 @@ SecurityCookie*: ULONGLONG SEHandlerTable*: ULONGLONG SEHandlerCount*: ULONGLONG + PIMAGE_LOAD_CONFIG_DIRECTORY64* = ptr IMAGE_LOAD_CONFIG_DIRECTORY64 IMAGE_DEBUG_DIRECTORY* {.pure.} = object Characteristics*: DWORD @@ -2557,6 +2867,7 @@ SizeOfData*: DWORD AddressOfRawData*: DWORD PointerToRawData*: DWORD + PIMAGE_DEBUG_DIRECTORY* = ptr IMAGE_DEBUG_DIRECTORY IMAGE_COFF_SYMBOLS_HEADER* {.pure.} = object NumberOfSymbols*: DWORD @@ -2567,18 +2878,20 @@ RvaToLastByteOfCode*: DWORD RvaToFirstByteOfData*: DWORD RvaToLastByteOfData*: DWORD + PIMAGE_COFF_SYMBOLS_HEADER* = ptr IMAGE_COFF_SYMBOLS_HEADER FPO_DATA* {.pure.} = object ulOffStart*: DWORD cbProcSize*: DWORD cdwLocals*: DWORD cdwParams*: WORD - cbProlog* {.bitsize:8.}: WORD - cbRegs* {.bitsize:3.}: WORD - fHasSEH* {.bitsize:1.}: WORD - fUseBP* {.bitsize:1.}: WORD - reserved* {.bitsize:1.}: WORD - cbFrame* {.bitsize:2.}: WORD + cbProlog* {.bitsize: 8.}: WORD + cbRegs* {.bitsize: 3.}: WORD + fHasSEH* {.bitsize: 1.}: WORD + fUseBP* {.bitsize: 1.}: WORD + reserved* {.bitsize: 1.}: WORD + cbFrame* {.bitsize: 2.}: WORD + PFPO_DATA* = ptr FPO_DATA IMAGE_DEBUG_MISC* {.pure.} = object DataType*: DWORD @@ -2586,19 +2899,23 @@ Unicode*: BOOLEAN Reserved*: array[3, BYTE] Data*: array[1, BYTE] + PIMAGE_DEBUG_MISC* = ptr IMAGE_DEBUG_MISC IMAGE_FUNCTION_ENTRY* {.pure.} = object StartingAddress*: DWORD EndingAddress*: DWORD EndOfPrologue*: DWORD + PIMAGE_FUNCTION_ENTRY* = ptr IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY64_UNION1* {.pure, union.} = object EndOfPrologue*: ULONGLONG UnwindInfoAddress*: ULONGLONG + IMAGE_FUNCTION_ENTRY64* {.pure.} = object StartingAddress*: ULONGLONG EndingAddress*: ULONGLONG union1*: IMAGE_FUNCTION_ENTRY64_UNION1 + PIMAGE_FUNCTION_ENTRY64* = ptr IMAGE_FUNCTION_ENTRY64 IMAGE_SEPARATE_DEBUG_HEADER* {.pure.} = object Signature*: WORD @@ -2614,6 +2931,7 @@ DebugDirectorySize*: DWORD SectionAlignment*: DWORD Reserved*: array[2, DWORD] + PIMAGE_SEPARATE_DEBUG_HEADER* = ptr IMAGE_SEPARATE_DEBUG_HEADER NON_PAGED_DEBUG_INFO* {.pure.} = object Signature*: WORD @@ -2625,21 +2943,25 @@ CheckSum*: DWORD SizeOfImage*: DWORD ImageBase*: ULONGLONG + PNON_PAGED_DEBUG_INFO* = ptr NON_PAGED_DEBUG_INFO IMAGE_ARCHITECTURE_HEADER* {.pure.} = object - AmaskValue* {.bitsize:1.}: int32 - Adummy1* {.bitsize:7.}: int32 - AmaskShift* {.bitsize:8.}: int32 - Adummy2* {.bitsize:16.}: int32 + AmaskValue* {.bitsize: 1.}: int32 + Adummy1* {.bitsize: 7.}: int32 + AmaskShift* {.bitsize: 8.}: int32 + Adummy2* {.bitsize: 16.}: int32 FirstEntryRVA*: DWORD + PIMAGE_ARCHITECTURE_HEADER* = ptr IMAGE_ARCHITECTURE_HEADER IMAGE_ARCHITECTURE_ENTRY* {.pure.} = object FixupInstRVA*: DWORD NewInst*: DWORD + PIMAGE_ARCHITECTURE_ENTRY* = ptr IMAGE_ARCHITECTURE_ENTRY IMAGE_COR20_HEADER_UNION1* {.pure, union.} = object EntryPointToken*: DWORD EntryPointRVA*: DWORD + IMAGE_COR20_HEADER* {.pure.} = object cb*: DWORD MajorRuntimeVersion*: WORD @@ -2653,9 +2975,11 @@ VTableFixups*: IMAGE_DATA_DIRECTORY ExportAddressTableJumps*: IMAGE_DATA_DIRECTORY ManagedNativeHeader*: IMAGE_DATA_DIRECTORY + PIMAGE_COR20_HEADER* = ptr IMAGE_COR20_HEADER RTL_RUN_ONCE* {.pure.} = object Ptr*: PVOID + PRTL_RUN_ONCE* = ptr RTL_RUN_ONCE RTL_BARRIER* {.pure.} = object Reserved1*: DWORD @@ -2663,20 +2987,24 @@ Reserved3*: array[2, ULONG_PTR] Reserved4*: DWORD Reserved5*: DWORD + PRTL_BARRIER* = ptr RTL_BARRIER MESSAGE_RESOURCE_ENTRY* {.pure.} = object Length*: WORD Flags*: WORD Text*: array[1, BYTE] + PMESSAGE_RESOURCE_ENTRY* = ptr MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_BLOCK* {.pure.} = object LowId*: DWORD HighId*: DWORD OffsetToEntries*: DWORD + PMESSAGE_RESOURCE_BLOCK* = ptr MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_DATA* {.pure.} = object NumberOfBlocks*: DWORD Blocks*: array[1, MESSAGE_RESOURCE_BLOCK] + PMESSAGE_RESOURCE_DATA* = ptr MESSAGE_RESOURCE_DATA OSVERSIONINFOA* {.pure.} = object dwOSVersionInfoSize*: DWORD @@ -2685,6 +3013,7 @@ dwBuildNumber*: DWORD dwPlatformId*: DWORD szCSDVersion*: array[128, CHAR] + POSVERSIONINFOA* = ptr OSVERSIONINFOA LPOSVERSIONINFOA* = ptr OSVERSIONINFOA OSVERSIONINFOW* {.pure.} = object @@ -2694,6 +3023,7 @@ dwBuildNumber*: DWORD dwPlatformId*: DWORD szCSDVersion*: array[128, WCHAR] + POSVERSIONINFOW* = ptr OSVERSIONINFOW LPOSVERSIONINFOW* = ptr OSVERSIONINFOW RTL_OSVERSIONINFOW* = OSVERSIONINFOW @@ -2710,6 +3040,7 @@ wSuiteMask*: WORD wProductType*: BYTE wReserved*: BYTE + POSVERSIONINFOEXA* = ptr OSVERSIONINFOEXA LPOSVERSIONINFOEXA* = ptr OSVERSIONINFOEXA OSVERSIONINFOEXW* {.pure.} = object @@ -2724,11 +3055,16 @@ wSuiteMask*: WORD wProductType*: BYTE wReserved*: BYTE + POSVERSIONINFOEXW* = ptr OSVERSIONINFOEXW LPOSVERSIONINFOEXW* = ptr OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW* = OSVERSIONINFOEXW PRTL_OSVERSIONINFOEXW* = ptr OSVERSIONINFOEXW - RTL_UMS_SCHEDULER_ENTRY_POINT* = proc (Reason: RTL_UMS_SCHEDULER_REASON, ActivationPayload: ULONG_PTR, SchedulerParam: PVOID): VOID {.stdcall.} + RTL_UMS_SCHEDULER_ENTRY_POINT* = proc( + Reason: RTL_UMS_SCHEDULER_REASON, + ActivationPayload: ULONG_PTR, + SchedulerParam: PVOID, + ): VOID {.stdcall.} PRTL_UMS_SCHEDULER_ENTRY_POINT* = RTL_UMS_SCHEDULER_ENTRY_POINT RTL_CRITICAL_SECTION* {.pure.} = object DebugInfo*: PRTL_CRITICAL_SECTION_DEBUG @@ -2737,6 +3073,7 @@ OwningThread*: HANDLE LockSemaphore*: HANDLE SpinCount*: ULONG_PTR + RTL_CRITICAL_SECTION_DEBUG* {.pure.} = object Type*: WORD CreatorBackTraceIndex*: WORD @@ -2747,21 +3084,25 @@ Flags*: DWORD CreatorBackTraceIndexHigh*: WORD SpareWORD*: WORD + PRTL_CRITICAL_SECTION_DEBUG* = ptr RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG* = RTL_CRITICAL_SECTION_DEBUG PRTL_RESOURCE_DEBUG* = ptr RTL_CRITICAL_SECTION_DEBUG PRTL_CRITICAL_SECTION* = ptr RTL_CRITICAL_SECTION RTL_SRWLOCK* {.pure.} = object Ptr*: PVOID + PRTL_SRWLOCK* = ptr RTL_SRWLOCK RTL_CONDITION_VARIABLE* {.pure.} = object Ptr*: PVOID + PRTL_CONDITION_VARIABLE* = ptr RTL_CONDITION_VARIABLE - WAITORTIMERCALLBACKFUNC* = proc (P1: PVOID, P2: BOOLEAN): VOID {.stdcall.} + WAITORTIMERCALLBACKFUNC* = proc(P1: PVOID, P2: BOOLEAN): VOID {.stdcall.} WAITORTIMERCALLBACK* = WAITORTIMERCALLBACKFUNC ACTIVATION_CONTEXT_QUERY_INDEX* {.pure.} = object ulAssemblyIndex*: DWORD ulFileIndexInAssembly*: DWORD + PACTIVATION_CONTEXT_QUERY_INDEX* = ptr ACTIVATION_CONTEXT_QUERY_INDEX ASSEMBLY_FILE_DETAILED_INFORMATION* {.pure.} = object ulFlags*: DWORD @@ -2769,6 +3110,7 @@ ulPathLength*: DWORD lpFileName*: PCWSTR lpFilePath*: PCWSTR + PASSEMBLY_FILE_DETAILED_INFORMATION* = ptr ASSEMBLY_FILE_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* {.pure.} = object ulFlags*: DWORD @@ -2790,27 +3132,35 @@ lpAssemblyPolicyPath*: PCWSTR lpAssemblyDirectoryName*: PCWSTR ulFileCount*: DWORD - PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* = ptr ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION + + PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* = + ptr ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION* {.pure.} = object ulFlags*: DWORD RunLevel*: ACTCTX_REQUESTED_RUN_LEVEL UiAccess*: DWORD - PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION* = ptr ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION + + PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION* = + ptr ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION COMPATIBILITY_CONTEXT_ELEMENT* {.pure.} = object Id*: GUID Type*: ACTCTX_COMPATIBILITY_ELEMENT_TYPE + PCOMPATIBILITY_CONTEXT_ELEMENT* = ptr COMPATIBILITY_CONTEXT_ELEMENT ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION* {.pure.} = object ElementCount*: DWORD Elements*: UncheckedArray[COMPATIBILITY_CONTEXT_ELEMENT] - PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION* = ptr ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION -const - MAX_SUPPORTED_OS_NUM* = 4 + + PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION* = + ptr ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION + +const MAX_SUPPORTED_OS_NUM* = 4 type SUPPORTED_OS_INFO* {.pure.} = object OsCount*: WORD MitigationExist*: WORD OsList*: array[MAX_SUPPORTED_OS_NUM, WORD] + PSUPPORTED_OS_INFO* = ptr SUPPORTED_OS_INFO ACTIVATION_CONTEXT_DETAILED_INFORMATION* {.pure.} = object dwFlags*: DWORD @@ -2825,31 +3175,45 @@ lpRootManifestPath*: PCWSTR lpRootConfigurationPath*: PCWSTR lpAppDirPath*: PCWSTR - PACTIVATION_CONTEXT_DETAILED_INFORMATION* = ptr ACTIVATION_CONTEXT_DETAILED_INFORMATION + + PACTIVATION_CONTEXT_DETAILED_INFORMATION* = + ptr ACTIVATION_CONTEXT_DETAILED_INFORMATION PCACTIVATION_CONTEXT_QUERY_INDEX* = ptr ACTIVATION_CONTEXT_QUERY_INDEX PCASSEMBLY_FILE_DETAILED_INFORMATION* = ptr ASSEMBLY_FILE_DETAILED_INFORMATION - PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* = ptr ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION - PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION* = ptr ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION + PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* = + ptr ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION + PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION* = + ptr ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION PCCOMPATIBILITY_CONTEXT_ELEMENT* = ptr COMPATIBILITY_CONTEXT_ELEMENT - PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION* = ptr ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION - PCACTIVATION_CONTEXT_DETAILED_INFORMATION* = ptr ACTIVATION_CONTEXT_DETAILED_INFORMATION + PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION* = + ptr ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION + PCACTIVATION_CONTEXT_DETAILED_INFORMATION* = + ptr ACTIVATION_CONTEXT_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION* = ASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION* = PASSEMBLY_FILE_DETAILED_INFORMATION - PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION* = PCASSEMBLY_FILE_DETAILED_INFORMATION + PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION* = + PCASSEMBLY_FILE_DETAILED_INFORMATION RTL_VERIFIER_THUNK_DESCRIPTOR* {.pure.} = object ThunkName*: PCHAR ThunkOldAddress*: PVOID ThunkNewAddress*: PVOID + PRTL_VERIFIER_THUNK_DESCRIPTOR* = ptr RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR* {.pure.} = object DllName*: PWCHAR DllFlags*: DWORD DllAddress*: PVOID DllThunks*: PRTL_VERIFIER_THUNK_DESCRIPTOR + PRTL_VERIFIER_DLL_DESCRIPTOR* = ptr RTL_VERIFIER_DLL_DESCRIPTOR - RTL_VERIFIER_DLL_LOAD_CALLBACK* = proc (DllName: PWSTR, DllBase: PVOID, DllSize: SIZE_T, Reserved: PVOID): VOID {.stdcall.} - RTL_VERIFIER_DLL_UNLOAD_CALLBACK* = proc (DllName: PWSTR, DllBase: PVOID, DllSize: SIZE_T, Reserved: PVOID): VOID {.stdcall.} - RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK* = proc (AllocationBase: PVOID, AllocationSize: SIZE_T): VOID {.stdcall.} + RTL_VERIFIER_DLL_LOAD_CALLBACK* = proc( + DllName: PWSTR, DllBase: PVOID, DllSize: SIZE_T, Reserved: PVOID + ): VOID {.stdcall.} + RTL_VERIFIER_DLL_UNLOAD_CALLBACK* = proc( + DllName: PWSTR, DllBase: PVOID, DllSize: SIZE_T, Reserved: PVOID + ): VOID {.stdcall.} + RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK* = + proc(AllocationBase: PVOID, AllocationSize: SIZE_T): VOID {.stdcall.} RTL_VERIFIER_PROVIDER_DESCRIPTOR* {.pure.} = object Length*: DWORD ProviderDlls*: PRTL_VERIFIER_DLL_DESCRIPTOR @@ -2862,14 +3226,16 @@ RtlpDebugPageHeapCreate*: PVOID RtlpDebugPageHeapDestroy*: PVOID ProviderNtdllHeapFreeCallback*: RTL_VERIFIER_NTDLLHEAPFREE_CALLBACK + PRTL_VERIFIER_PROVIDER_DESCRIPTOR* = ptr RTL_VERIFIER_PROVIDER_DESCRIPTOR HARDWARE_COUNTER_DATA* {.pure.} = object Type*: HARDWARE_COUNTER_TYPE Reserved*: DWORD Value*: DWORD64 + PHARDWARE_COUNTER_DATA* = ptr HARDWARE_COUNTER_DATA -const - MAX_HW_COUNTERS* = 16 + +const MAX_HW_COUNTERS* = 16 type PERFORMANCE_DATA* {.pure.} = object Size*: WORD @@ -2881,6 +3247,7 @@ RetryCount*: DWORD Reserved*: DWORD HwCounters*: array[MAX_HW_COUNTERS, HARDWARE_COUNTER_DATA] + PPERFORMANCE_DATA* = ptr PERFORMANCE_DATA EVENTLOGRECORD* {.pure.} = object Length*: DWORD @@ -2899,44 +3266,52 @@ UserSidOffset*: DWORD DataLength*: DWORD DataOffset*: DWORD + PEVENTLOGRECORD* = ptr EVENTLOGRECORD -const - MAXLOGICALLOGNAMESIZE* = 256 + +const MAXLOGICALLOGNAMESIZE* = 256 type EVENTSFORLOGFILE* {.pure.} = object ulSize*: DWORD szLogicalLogFile*: array[MAXLOGICALLOGNAMESIZE, WCHAR] ulNumRecords*: DWORD pEventLogRecords*: UncheckedArray[EVENTLOGRECORD] + PEVENTSFORLOGFILE* = ptr EVENTSFORLOGFILE PACKEDEVENTINFO* {.pure.} = object ulSize*: DWORD ulNumEventsForLogFile*: DWORD ulOffsets*: UncheckedArray[DWORD] + PPACKEDEVENTINFO* = ptr PACKEDEVENTINFO TAPE_ERASE* {.pure.} = object Type*: DWORD Immediate*: BOOLEAN + PTAPE_ERASE* = ptr TAPE_ERASE TAPE_PREPARE* {.pure.} = object Operation*: DWORD Immediate*: BOOLEAN + PTAPE_PREPARE* = ptr TAPE_PREPARE TAPE_WRITE_MARKS* {.pure.} = object Type*: DWORD Count*: DWORD Immediate*: BOOLEAN + PTAPE_WRITE_MARKS* = ptr TAPE_WRITE_MARKS TAPE_GET_POSITION* {.pure.} = object Type*: DWORD Partition*: DWORD Offset*: LARGE_INTEGER + PTAPE_GET_POSITION* = ptr TAPE_GET_POSITION TAPE_SET_POSITION* {.pure.} = object Method*: DWORD Partition*: DWORD Offset*: LARGE_INTEGER Immediate*: BOOLEAN + PTAPE_SET_POSITION* = ptr TAPE_SET_POSITION TAPE_GET_DRIVE_PARAMETERS* {.pure.} = object ECC*: BOOLEAN @@ -2950,6 +3325,7 @@ FeaturesLow*: DWORD FeaturesHigh*: DWORD EOTWarningZoneSize*: DWORD + PTAPE_GET_DRIVE_PARAMETERS* = ptr TAPE_GET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS* {.pure.} = object ECC*: BOOLEAN @@ -2957,6 +3333,7 @@ DataPadding*: BOOLEAN ReportSetmarks*: BOOLEAN EOTWarningZoneSize*: DWORD + PTAPE_SET_DRIVE_PARAMETERS* = ptr TAPE_SET_DRIVE_PARAMETERS TAPE_GET_MEDIA_PARAMETERS* {.pure.} = object Capacity*: LARGE_INTEGER @@ -2964,19 +3341,23 @@ BlockSize*: DWORD PartitionCount*: DWORD WriteProtected*: BOOLEAN + PTAPE_GET_MEDIA_PARAMETERS* = ptr TAPE_GET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS* {.pure.} = object BlockSize*: DWORD + PTAPE_SET_MEDIA_PARAMETERS* = ptr TAPE_SET_MEDIA_PARAMETERS TAPE_CREATE_PARTITION* {.pure.} = object Method*: DWORD Count*: DWORD Size*: DWORD + PTAPE_CREATE_PARTITION* = ptr TAPE_CREATE_PARTITION TAPE_WMI_OPERATIONS* {.pure.} = object Method*: DWORD DataBufferSize*: DWORD DataBuffer*: PVOID + PTAPE_WMI_OPERATIONS* = ptr TAPE_WMI_OPERATIONS TP_CALLBACK_INSTANCE* {.pure.} = object PTP_CALLBACK_INSTANCE* = ptr TP_CALLBACK_INSTANCE @@ -2985,19 +3366,24 @@ TP_POOL_STACK_INFORMATION* {.pure.} = object StackReserve*: SIZE_T StackCommit*: SIZE_T + PTP_POOL_STACK_INFORMATION* = ptr TP_POOL_STACK_INFORMATION TP_CLEANUP_GROUP* {.pure.} = object PTP_CLEANUP_GROUP* = ptr TP_CLEANUP_GROUP - PTP_CLEANUP_GROUP_CANCEL_CALLBACK* = proc (ObjectContext: PVOID, CleanupContext: PVOID): VOID {.stdcall.} + PTP_CLEANUP_GROUP_CANCEL_CALLBACK* = + proc(ObjectContext: PVOID, CleanupContext: PVOID): VOID {.stdcall.} ACTIVATION_CONTEXT* {.pure.} = object - PTP_SIMPLE_CALLBACK* = proc (Instance: PTP_CALLBACK_INSTANCE, Context: PVOID): VOID {.stdcall.} + PTP_SIMPLE_CALLBACK* = + proc(Instance: PTP_CALLBACK_INSTANCE, Context: PVOID): VOID {.stdcall.} TP_CALLBACK_ENVIRON_V3_u_s* {.pure.} = object - LongFunction* {.bitsize:1.}: DWORD - Persistent* {.bitsize:1.}: DWORD - Private* {.bitsize:30.}: DWORD + LongFunction* {.bitsize: 1.}: DWORD + Persistent* {.bitsize: 1.}: DWORD + Private* {.bitsize: 30.}: DWORD + TP_CALLBACK_ENVIRON_V3_u* {.pure, union.} = object Flags*: DWORD s*: TP_CALLBACK_ENVIRON_V3_u_s + TP_CALLBACK_ENVIRON_V3* {.pure.} = object Version*: TP_VERSION Pool*: PTP_POOL @@ -3009,6 +3395,7 @@ u*: TP_CALLBACK_ENVIRON_V3_u CallbackPriority*: TP_CALLBACK_PRIORITY Size*: DWORD + TP_CALLBACK_ENVIRON* = TP_CALLBACK_ENVIRON_V3 PTP_CALLBACK_ENVIRON* = ptr TP_CALLBACK_ENVIRON_V3 TP_WORK* {.pure.} = object @@ -3026,39 +3413,53 @@ TransactionNotification*: ULONG TmVirtualClock*: LARGE_INTEGER ArgumentLength*: ULONG + PTRANSACTION_NOTIFICATION* = ptr TRANSACTION_NOTIFICATION TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT* {.pure.} = object EnlistmentId*: GUID UOW*: GUID - PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT* = ptr TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT + + PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT* = + ptr TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT* {.pure.} = object TmIdentity*: GUID Flags*: ULONG - PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT* = ptr TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT + + PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT* = + ptr TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT* {.pure.} = object SavepointId*: SAVEPOINT_ID - PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT* = ptr TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT + + PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT* = + ptr TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT* {.pure.} = object PropagationCookie*: ULONG UOW*: GUID TmIdentity*: GUID BufferLength*: ULONG - PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT* = ptr TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT + + PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT* = + ptr TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT* {.pure.} = object MarshalCookie*: ULONG UOW*: GUID - PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT* = ptr TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT - TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT* = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT - PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT* = ptr TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT + + PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT* = + ptr TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT + TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT* = + TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT + PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT* = + ptr TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT KCRM_MARSHAL_HEADER* {.pure.} = object VersionMajor*: ULONG VersionMinor*: ULONG NumProtocols*: ULONG Unused*: ULONG + PKCRM_MARSHAL_HEADER* = ptr KCRM_MARSHAL_HEADER PRKCRM_MARSHAL_HEADER* = ptr KCRM_MARSHAL_HEADER -const - MAX_TRANSACTION_DESCRIPTION_LENGTH* = 64 + +const MAX_TRANSACTION_DESCRIPTION_LENGTH* = 64 type KCRM_TRANSACTION_BLOB* {.pure.} = object UOW*: GUID @@ -3067,6 +3468,7 @@ IsolationFlags*: ULONG Timeout*: ULONG Description*: array[MAX_TRANSACTION_DESCRIPTION_LENGTH, WCHAR] + PKCRM_TRANSACTION_BLOB* = ptr KCRM_TRANSACTION_BLOB PRKCRM_TRANSACTION_BLOB* = ptr KCRM_TRANSACTION_BLOB KCRM_PROTOCOL_BLOB* {.pure.} = object @@ -3075,29 +3477,37 @@ TransactionIdInfoLength*: ULONG Unused1*: ULONG Unused2*: ULONG + PKCRM_PROTOCOL_BLOB* = ptr KCRM_PROTOCOL_BLOB PRKCRM_PROTOCOL_BLOB* = ptr KCRM_PROTOCOL_BLOB TRANSACTION_BASIC_INFORMATION* {.pure.} = object TransactionId*: GUID State*: DWORD Outcome*: DWORD + PTRANSACTION_BASIC_INFORMATION* = ptr TRANSACTION_BASIC_INFORMATION TRANSACTIONMANAGER_BASIC_INFORMATION* {.pure.} = object TmIdentity*: GUID VirtualClock*: LARGE_INTEGER + PTRANSACTIONMANAGER_BASIC_INFORMATION* = ptr TRANSACTIONMANAGER_BASIC_INFORMATION TRANSACTIONMANAGER_LOG_INFORMATION* {.pure.} = object LogIdentity*: GUID + PTRANSACTIONMANAGER_LOG_INFORMATION* = ptr TRANSACTIONMANAGER_LOG_INFORMATION TRANSACTIONMANAGER_LOGPATH_INFORMATION* {.pure.} = object LogPathLength*: DWORD LogPath*: array[1, WCHAR] + PTRANSACTIONMANAGER_LOGPATH_INFORMATION* = ptr TRANSACTIONMANAGER_LOGPATH_INFORMATION TRANSACTIONMANAGER_RECOVERY_INFORMATION* {.pure.} = object LastRecoveredLsn*: ULONGLONG - PTRANSACTIONMANAGER_RECOVERY_INFORMATION* = ptr TRANSACTIONMANAGER_RECOVERY_INFORMATION + + PTRANSACTIONMANAGER_RECOVERY_INFORMATION* = + ptr TRANSACTIONMANAGER_RECOVERY_INFORMATION TRANSACTIONMANAGER_OLDEST_INFORMATION* {.pure.} = object OldestTransactionGuid*: GUID + PTRANSACTIONMANAGER_OLDEST_INFORMATION* = ptr TRANSACTIONMANAGER_OLDEST_INFORMATION TRANSACTION_PROPERTIES_INFORMATION* {.pure.} = object IsolationLevel*: DWORD @@ -3106,54 +3516,67 @@ Outcome*: DWORD DescriptionLength*: DWORD Description*: array[1, WCHAR] + PTRANSACTION_PROPERTIES_INFORMATION* = ptr TRANSACTION_PROPERTIES_INFORMATION TRANSACTION_BIND_INFORMATION* {.pure.} = object TmHandle*: HANDLE + PTRANSACTION_BIND_INFORMATION* = ptr TRANSACTION_BIND_INFORMATION TRANSACTION_ENLISTMENT_PAIR* {.pure.} = object EnlistmentId*: GUID ResourceManagerId*: GUID + PTRANSACTION_ENLISTMENT_PAIR* = ptr TRANSACTION_ENLISTMENT_PAIR TRANSACTION_ENLISTMENTS_INFORMATION* {.pure.} = object NumberOfEnlistments*: DWORD EnlistmentPair*: array[1, TRANSACTION_ENLISTMENT_PAIR] + PTRANSACTION_ENLISTMENTS_INFORMATION* = ptr TRANSACTION_ENLISTMENTS_INFORMATION TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION* {.pure.} = object SuperiorEnlistmentPair*: TRANSACTION_ENLISTMENT_PAIR - PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION* = ptr TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION + + PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION* = + ptr TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION RESOURCEMANAGER_BASIC_INFORMATION* {.pure.} = object ResourceManagerId*: GUID DescriptionLength*: DWORD Description*: array[1, WCHAR] + PRESOURCEMANAGER_BASIC_INFORMATION* = ptr RESOURCEMANAGER_BASIC_INFORMATION RESOURCEMANAGER_COMPLETION_INFORMATION* {.pure.} = object IoCompletionPortHandle*: HANDLE CompletionKey*: ULONG_PTR + PRESOURCEMANAGER_COMPLETION_INFORMATION* = ptr RESOURCEMANAGER_COMPLETION_INFORMATION ENLISTMENT_BASIC_INFORMATION* {.pure.} = object EnlistmentId*: GUID TransactionId*: GUID ResourceManagerId*: GUID + PENLISTMENT_BASIC_INFORMATION* = ptr ENLISTMENT_BASIC_INFORMATION ENLISTMENT_CRM_INFORMATION* {.pure.} = object CrmTransactionManagerId*: GUID CrmResourceManagerId*: GUID CrmEnlistmentId*: GUID + PENLISTMENT_CRM_INFORMATION* = ptr ENLISTMENT_CRM_INFORMATION TRANSACTION_LIST_ENTRY* {.pure.} = object UOW*: GUID + PTRANSACTION_LIST_ENTRY* = ptr TRANSACTION_LIST_ENTRY TRANSACTION_LIST_INFORMATION* {.pure.} = object NumberOfTransactions*: DWORD TransactionInformation*: array[1, TRANSACTION_LIST_ENTRY] + PTRANSACTION_LIST_INFORMATION* = ptr TRANSACTION_LIST_INFORMATION KTMOBJECT_CURSOR* {.pure.} = object LastQuery*: GUID ObjectIdCount*: DWORD ObjectIds*: array[1, GUID] + PKTMOBJECT_CURSOR* = ptr KTMOBJECT_CURSOR -const - WOW64_SIZE_OF_80387_REGISTERS* = 80 + +const WOW64_SIZE_OF_80387_REGISTERS* = 80 type WOW64_FLOATING_SAVE_AREA* {.pure.} = object ControlWord*: DWORD @@ -3165,9 +3588,10 @@ DataSelector*: DWORD RegisterArea*: array[WOW64_SIZE_OF_80387_REGISTERS, BYTE] Cr0NpxState*: DWORD + PWOW64_FLOATING_SAVE_AREA* = ptr WOW64_FLOATING_SAVE_AREA -const - WOW64_MAXIMUM_SUPPORTED_EXTENSION* = 512 + +const WOW64_MAXIMUM_SUPPORTED_EXTENSION* = 512 type WOW64_CONTEXT* {.pure.} = object ContextFlags*: DWORD @@ -3195,39 +3619,46 @@ Esp*: DWORD SegSs*: DWORD ExtendedRegisters*: array[WOW64_MAXIMUM_SUPPORTED_EXTENSION, BYTE] + PWOW64_CONTEXT* = ptr WOW64_CONTEXT WOW64_LDT_ENTRY_HighWord_Bytes* {.pure.} = object BaseMid*: BYTE Flags1*: BYTE Flags2*: BYTE BaseHi*: BYTE + WOW64_LDT_ENTRY_HighWord_Bits* {.pure.} = object - BaseMid* {.bitsize:8.}: DWORD - Type* {.bitsize:5.}: DWORD - Dpl* {.bitsize:2.}: DWORD - Pres* {.bitsize:1.}: DWORD - LimitHi* {.bitsize:4.}: DWORD - Sys* {.bitsize:1.}: DWORD - Reserved_0* {.bitsize:1.}: DWORD - Default_Big* {.bitsize:1.}: DWORD - Granularity* {.bitsize:1.}: DWORD - BaseHi* {.bitsize:8.}: DWORD + BaseMid* {.bitsize: 8.}: DWORD + Type* {.bitsize: 5.}: DWORD + Dpl* {.bitsize: 2.}: DWORD + Pres* {.bitsize: 1.}: DWORD + LimitHi* {.bitsize: 4.}: DWORD + Sys* {.bitsize: 1.}: DWORD + Reserved_0* {.bitsize: 1.}: DWORD + Default_Big* {.bitsize: 1.}: DWORD + Granularity* {.bitsize: 1.}: DWORD + BaseHi* {.bitsize: 8.}: DWORD + WOW64_LDT_ENTRY_HighWord* {.pure, union.} = object Bytes*: WOW64_LDT_ENTRY_HighWord_Bytes Bits*: WOW64_LDT_ENTRY_HighWord_Bits + WOW64_LDT_ENTRY* {.pure.} = object LimitLow*: WORD BaseLow*: WORD HighWord*: WOW64_LDT_ENTRY_HighWord + PWOW64_LDT_ENTRY* = ptr WOW64_LDT_ENTRY WOW64_DESCRIPTOR_TABLE_ENTRY* {.pure.} = object Selector*: DWORD Descriptor*: WOW64_LDT_ENTRY + PWOW64_DESCRIPTOR_TABLE_ENTRY* = ptr WOW64_DESCRIPTOR_TABLE_ENTRY PHKEY* = ptr HKEY FILETIME* {.pure.} = object dwLowDateTime*: DWORD dwHighDateTime*: DWORD + PFILETIME* = ptr FILETIME LPFILETIME* = ptr FILETIME RECT* {.pure.} = object @@ -3235,6 +3666,7 @@ top*: LONG right*: LONG bottom*: LONG + PRECT* = ptr RECT NPRECT* = ptr RECT LPRECT* = ptr RECT @@ -3244,22 +3676,26 @@ top*: LONG right*: LONG bottom*: LONG + PRECTL* = ptr RECTL LPRECTL* = ptr RECTL LPCRECTL* = ptr RECTL POINT* {.pure.} = object x*: LONG y*: LONG + PPOINT* = ptr POINT NPPOINT* = ptr POINT LPPOINT* = ptr POINT POINTL* {.pure.} = object x*: LONG y*: LONG + PPOINTL* = ptr POINTL SIZE* {.pure.} = object cx*: LONG cy*: LONG + PSIZE* = ptr SIZE LPSIZE* = ptr SIZE SIZEL* = SIZE @@ -3268,16 +3704,19 @@ POINTS* {.pure.} = object x*: SHORT y*: SHORT + PPOINTS* = ptr POINTS LPPOINTS* = ptr POINTS PEB_LDR_DATA* {.pure.} = object Reserved1*: array[8, BYTE] Reserved2*: array[3, PVOID] InMemoryOrderModuleList*: LIST_ENTRY + PPEB_LDR_DATA* = ptr PEB_LDR_DATA LDR_DATA_TABLE_ENTRY_UNION1* {.pure, union.} = object CheckSum*: ULONG Reserved6*: PVOID + LDR_DATA_TABLE_ENTRY* {.pure.} = object Reserved1*: array[2, PVOID] InMemoryOrderLinks*: LIST_ENTRY @@ -3289,14 +3728,16 @@ Reserved5*: array[3, PVOID] union1*: LDR_DATA_TABLE_ENTRY_UNION1 TimeDateStamp*: ULONG + PLDR_DATA_TABLE_ENTRY* = ptr LDR_DATA_TABLE_ENTRY RTL_USER_PROCESS_PARAMETERS* {.pure.} = object Reserved1*: array[16, BYTE] Reserved2*: array[10, PVOID] ImagePathName*: UNICODE_STRING CommandLine*: UNICODE_STRING + PRTL_USER_PROCESS_PARAMETERS* = ptr RTL_USER_PROCESS_PARAMETERS - PPS_POST_PROCESS_INIT_ROUTINE* = proc (): VOID {.stdcall.} + PPS_POST_PROCESS_INIT_ROUTINE* = proc(): VOID {.stdcall.} PEB* {.pure.} = object Reserved1*: array[2, BYTE] BeingDebugged*: BYTE @@ -3310,6 +3751,7 @@ Reserved6*: array[128, BYTE] Reserved7*: array[1, PVOID] SessionId*: ULONG + PPEB* = ptr PEB TEB* {.pure.} = object Reserved1*: array[1952, BYTE] @@ -3320,10 +3762,12 @@ ReservedForOle*: PVOID Reserved5*: array[4, PVOID] TlsExpansionSlots*: PVOID + PTEB* = ptr TEB OBJECT_DATA_INFORMATION* {.pure.} = object InheritHandle*: BOOLEAN ProtectFromClose*: BOOLEAN + POBJECT_DATA_INFORMATION* = ptr OBJECT_DATA_INFORMATION OBJECT_BASIC_INFORMATION* {.pure.} = object Attributes*: ULONG @@ -3337,9 +3781,11 @@ TypeInformationLength*: ULONG SecurityDescriptorLength*: ULONG CreateTime*: LARGE_INTEGER + POBJECT_BASIC_INFORMATION* = ptr OBJECT_BASIC_INFORMATION OBJECT_NAME_INFORMATION* {.pure.} = object Name*: UNICODE_STRING + POBJECT_NAME_INFORMATION* = ptr OBJECT_NAME_INFORMATION OBJECT_TYPE_INFORMATION* {.pure.} = object TypeName*: UNICODE_STRING @@ -3363,10 +3809,12 @@ PoolType*: ULONG DefaultPagedPoolCharge*: ULONG DefaultNonPagedPoolCharge*: ULONG + POBJECT_TYPE_INFORMATION* = ptr OBJECT_TYPE_INFORMATION OBJECT_ALL_INFORMATION* {.pure.} = object NumberOfObjects*: ULONG ObjectTypeInformation*: array[1, OBJECT_TYPE_INFORMATION] + POBJECT_ALL_INFORMATION* = ptr OBJECT_ALL_INFORMATION FILE_DIRECTORY_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3380,6 +3828,7 @@ FileAttributes*: ULONG FileNameLength*: ULONG FileName*: array[ANYSIZE_ARRAY, WCHAR] + PFILE_DIRECTORY_INFORMATION* = ptr FILE_DIRECTORY_INFORMATION FILE_FULL_DIR_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3394,6 +3843,7 @@ FileNameLength*: ULONG EaSize*: ULONG FileName*: array[ANYSIZE_ARRAY, WCHAR] + PFILE_FULL_DIR_INFORMATION* = ptr FILE_FULL_DIR_INFORMATION FILE_ID_FULL_DIR_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3409,6 +3859,7 @@ EaSize*: ULONG FileId*: LARGE_INTEGER FileName*: array[ANYSIZE_ARRAY, WCHAR] + PFILE_ID_FULL_DIR_INFORMATION* = ptr FILE_ID_FULL_DIR_INFORMATION FILE_BOTH_DIR_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3425,6 +3876,7 @@ ShortNameLength*: CHAR ShortName*: array[12, WCHAR] FileName*: array[ANYSIZE_ARRAY, WCHAR] + PFILE_BOTH_DIR_INFORMATION* = ptr FILE_BOTH_DIR_INFORMATION FILE_ID_BOTH_DIR_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3442,6 +3894,7 @@ ShortName*: array[12, WCHAR] FileId*: LARGE_INTEGER FileName*: array[ANYSIZE_ARRAY, WCHAR] + PFILE_ID_BOTH_DIR_INFORMATION* = ptr FILE_ID_BOTH_DIR_INFORMATION FILE_FULL_DIRECTORY_INFORMATION* = FILE_FULL_DIR_INFORMATION PFILE_FULL_DIRECTORY_INFORMATION* = ptr FILE_FULL_DIR_INFORMATION @@ -3457,6 +3910,7 @@ LastWriteTime*: LARGE_INTEGER ChangeTime*: LARGE_INTEGER FileAttributes*: ULONG + PFILE_BASIC_INFORMATION* = ptr FILE_BASIC_INFORMATION FILE_STANDARD_INFORMATION* {.pure.} = object AllocationSize*: LARGE_INTEGER @@ -3464,52 +3918,65 @@ NumberOfLinks*: ULONG DeletePending*: BOOLEAN Directory*: BOOLEAN + PFILE_STANDARD_INFORMATION* = ptr FILE_STANDARD_INFORMATION FILE_INTERNAL_INFORMATION* {.pure.} = object IndexNumber*: LARGE_INTEGER + PFILE_INTERNAL_INFORMATION* = ptr FILE_INTERNAL_INFORMATION FILE_EA_INFORMATION* {.pure.} = object EaSize*: ULONG + PFILE_EA_INFORMATION* = ptr FILE_EA_INFORMATION FILE_ACCESS_INFORMATION* {.pure.} = object AccessFlags*: ACCESS_MASK + PFILE_ACCESS_INFORMATION* = ptr FILE_ACCESS_INFORMATION FILE_LINK_INFORMATION* {.pure.} = object ReplaceIfExists*: BOOLEAN RootDirectory*: HANDLE FileNameLength*: ULONG FileName*: array[1, WCHAR] + PFILE_LINK_INFORMATION* = ptr FILE_LINK_INFORMATION FILE_NAME_INFORMATION* {.pure.} = object FileNameLength*: ULONG FileName*: array[1, WCHAR] + PFILE_NAME_INFORMATION* = ptr FILE_NAME_INFORMATION FILE_RENAME_INFORMATION* {.pure.} = object ReplaceIfExists*: BOOLEAN RootDirectory*: HANDLE FileNameLength*: ULONG FileName*: array[1, WCHAR] + PFILE_RENAME_INFORMATION* = ptr FILE_RENAME_INFORMATION FILE_NAMES_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG FileIndex*: ULONG FileNameLength*: ULONG FileName*: array[1, WCHAR] + PFILE_NAMES_INFORMATION* = ptr FILE_NAMES_INFORMATION FILE_DISPOSITION_INFORMATION* {.pure.} = object DoDeleteFile*: BOOLEAN + PFILE_DISPOSITION_INFORMATION* = ptr FILE_DISPOSITION_INFORMATION FILE_POSITION_INFORMATION* {.pure.} = object CurrentByteOffset*: LARGE_INTEGER + PFILE_POSITION_INFORMATION* = ptr FILE_POSITION_INFORMATION FILE_ALIGNMENT_INFORMATION* {.pure.} = object AlignmentRequirement*: ULONG + PFILE_ALIGNMENT_INFORMATION* = ptr FILE_ALIGNMENT_INFORMATION FILE_ALLOCATION_INFORMATION* {.pure.} = object AllocationSize*: LARGE_INTEGER + PFILE_ALLOCATION_INFORMATION* = ptr FILE_ALLOCATION_INFORMATION FILE_END_OF_FILE_INFORMATION* {.pure.} = object EndOfFile*: LARGE_INTEGER + PFILE_END_OF_FILE_INFORMATION* = ptr FILE_END_OF_FILE_INFORMATION FILE_NETWORK_OPEN_INFORMATION* {.pure.} = object CreationTime*: LARGE_INTEGER @@ -3519,6 +3986,7 @@ AllocationSize*: LARGE_INTEGER EndOfFile*: LARGE_INTEGER FileAttributes*: ULONG + PFILE_NETWORK_OPEN_INFORMATION* = ptr FILE_NETWORK_OPEN_INFORMATION FILE_FULL_EA_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3526,9 +3994,11 @@ EaNameLength*: UCHAR EaValueLength*: USHORT EaName*: array[1, CHAR] + PFILE_FULL_EA_INFORMATION* = ptr FILE_FULL_EA_INFORMATION FILE_MODE_INFORMATION* {.pure.} = object Mode*: ULONG + PFILE_MODE_INFORMATION* = ptr FILE_MODE_INFORMATION FILE_STREAM_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3536,10 +4006,12 @@ StreamSize*: LARGE_INTEGER StreamAllocationSize*: LARGE_INTEGER StreamName*: array[1, WCHAR] + PFILE_STREAM_INFORMATION* = ptr FILE_STREAM_INFORMATION FILE_ATTRIBUTE_TAG_INFORMATION* {.pure.} = object FileAttributes*: ULONG ReparseTag*: ULONG + PFILE_ATTRIBUTE_TAG_INFORMATION* = ptr FILE_ATTRIBUTE_TAG_INFORMATION FILE_MAILSLOT_QUERY_INFORMATION* {.pure.} = object MaximumMessageSize*: ULONG @@ -3547,9 +4019,11 @@ NextMessageSize*: ULONG MessagesAvailable*: ULONG ReadTimeout*: LARGE_INTEGER + PFILE_MAILSLOT_QUERY_INFORMATION* = ptr FILE_MAILSLOT_QUERY_INFORMATION FILE_MAILSLOT_SET_INFORMATION* {.pure.} = object ReadTimeout*: LARGE_INTEGER + PFILE_MAILSLOT_SET_INFORMATION* = ptr FILE_MAILSLOT_SET_INFORMATION FILE_PIPE_LOCAL_INFORMATION* {.pure.} = object NamedPipeType*: ULONG @@ -3562,6 +4036,7 @@ WriteQuotaAvailable*: ULONG NamedPipeState*: ULONG NamedPipeEnd*: ULONG + PFILE_PIPE_LOCAL_INFORMATION* = ptr FILE_PIPE_LOCAL_INFORMATION FILE_ALL_INFORMATION* {.pure.} = object BasicInformation*: FILE_BASIC_INFORMATION @@ -3573,6 +4048,7 @@ ModeInformation*: FILE_MODE_INFORMATION AlignmentInformation*: FILE_ALIGNMENT_INFORMATION NameInformation*: FILE_NAME_INFORMATION + PFILE_ALL_INFORMATION* = ptr FILE_ALL_INFORMATION FILE_FS_VOLUME_INFORMATION* {.pure.} = object VolumeCreationTime*: LARGE_INTEGER @@ -3580,26 +4056,31 @@ VolumeLabelLength*: ULONG SupportsObjects*: BOOLEAN VolumeLabel*: array[1, WCHAR] + PFILE_FS_VOLUME_INFORMATION* = ptr FILE_FS_VOLUME_INFORMATION FILE_FS_LABEL_INFORMATION* {.pure.} = object VolumeLabelLength*: ULONG VolumeLabel*: array[1, WCHAR] + PFILE_FS_LABEL_INFORMATION* = ptr FILE_FS_LABEL_INFORMATION FILE_FS_SIZE_INFORMATION* {.pure.} = object TotalAllocationUnits*: LARGE_INTEGER AvailableAllocationUnits*: LARGE_INTEGER SectorsPerAllocationUnit*: ULONG BytesPerSector*: ULONG + PFILE_FS_SIZE_INFORMATION* = ptr FILE_FS_SIZE_INFORMATION FILE_FS_DEVICE_INFORMATION* {.pure.} = object DeviceType*: DEVICE_TYPE Characteristics*: ULONG + PFILE_FS_DEVICE_INFORMATION* = ptr FILE_FS_DEVICE_INFORMATION FILE_FS_ATTRIBUTE_INFORMATION* {.pure.} = object FileSystemAttributes*: ULONG MaximumComponentNameLength*: ULONG FileSystemNameLength*: ULONG FileSystemName*: array[1, WCHAR] + PFILE_FS_ATTRIBUTE_INFORMATION* = ptr FILE_FS_ATTRIBUTE_INFORMATION FILE_FS_FULL_SIZE_INFORMATION* {.pure.} = object TotalAllocationUnits*: LARGE_INTEGER @@ -3607,17 +4088,21 @@ ActualAvailableAllocationUnits*: LARGE_INTEGER SectorsPerAllocationUnit*: ULONG BytesPerSector*: ULONG + PFILE_FS_FULL_SIZE_INFORMATION* = ptr FILE_FS_FULL_SIZE_INFORMATION FILE_FS_OBJECTID_INFORMATION* {.pure.} = object ObjectId*: array[16, UCHAR] ExtendedInfo*: array[48, UCHAR] + PFILE_FS_OBJECTID_INFORMATION* = ptr FILE_FS_OBJECTID_INFORMATION IO_STATUS_BLOCK_UNION1* {.pure, union.} = object Status*: NTSTATUS Pointer*: PVOID + IO_STATUS_BLOCK* {.pure.} = object union1*: IO_STATUS_BLOCK_UNION1 Information*: ULONG_PTR + PIO_STATUS_BLOCK* = ptr IO_STATUS_BLOCK VM_COUNTERS* {.pure.} = object PeakVirtualSize*: SIZE_T @@ -3631,10 +4116,12 @@ QuotaNonPagedPoolUsage*: SIZE_T PagefileUsage*: SIZE_T PeakPagefileUsage*: SIZE_T + PVM_COUNTERS* = ptr VM_COUNTERS CLIENT_ID* {.pure.} = object UniqueProcess*: HANDLE UniqueThread*: HANDLE + PCLIENT_ID* = ptr CLIENT_ID SYSTEM_THREADS* {.pure.} = object KernelTime*: LARGE_INTEGER @@ -3648,6 +4135,7 @@ ContextSwitchCount*: ULONG State*: THREAD_STATE WaitReason*: KWAIT_REASON + PSYSTEM_THREADS* = ptr SYSTEM_THREADS PROCESS_BASIC_INFORMATION* {.pure.} = object ExitStatus*: NTSTATUS @@ -3656,12 +4144,14 @@ BasePriority*: KPRIORITY UniqueProcessId*: ULONG_PTR InheritedFromUniqueProcessId*: ULONG_PTR + PPROCESS_BASIC_INFORMATION* = ptr PROCESS_BASIC_INFORMATION KERNEL_USER_TIMES* {.pure.} = object CreateTime*: FILETIME ExitTime*: FILETIME KernelTime*: LARGE_INTEGER UserTime*: LARGE_INTEGER + PKERNEL_USER_TIMES* = ptr KERNEL_USER_TIMES SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION* {.pure.} = object IdleTime*: LARGE_INTEGER @@ -3669,7 +4159,9 @@ UserTime*: LARGE_INTEGER Reserved1*: array[2, LARGE_INTEGER] Reserved2*: ULONG - PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION* = ptr SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION + + PSYSTEM_PROCESSOR_PERFORMANCE_INFORMATION* = + ptr SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION SYSTEM_PROCESS_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG NumberOfThreads*: ULONG @@ -3687,11 +4179,13 @@ VirtualMemoryCounters*: VM_COUNTERS PrivatePageCount*: SIZE_T IoCounters*: IO_COUNTERS + PSYSTEM_PROCESS_INFORMATION* = ptr SYSTEM_PROCESS_INFORMATION SYSTEM_REGISTRY_QUOTA_INFORMATION* {.pure.} = object RegistryQuotaAllowed*: ULONG RegistryQuotaUsed*: ULONG Reserved1*: PVOID + PSYSTEM_REGISTRY_QUOTA_INFORMATION* = ptr SYSTEM_REGISTRY_QUOTA_INFORMATION SYSTEM_BASIC_INFORMATION* {.pure.} = object Reserved1*: array[4, BYTE] @@ -3705,6 +4199,7 @@ HighestUserAddress*: ULONG_PTR ActiveProcessors*: ULONG_PTR NumberOfProcessors*: CCHAR + PSYSTEM_BASIC_INFORMATION* = ptr SYSTEM_BASIC_INFORMATION SYSTEM_PROCESSOR_INFORMATION* {.pure.} = object ProcessorArchitecture*: USHORT @@ -3712,6 +4207,7 @@ ProcessorRevision*: USHORT Unknown*: USHORT FeatureBits*: ULONG + PSYSTEM_PROCESSOR_INFORMATION* = ptr SYSTEM_PROCESSOR_INFORMATION SYSTEM_TIMEOFDAY_INFORMATION* {.pure.} = object BootTime*: LARGE_INTEGER @@ -3719,6 +4215,7 @@ TimeZoneBias*: LARGE_INTEGER CurrentTimeZoneId*: ULONG Reserved1*: array[20, BYTE] + PSYSTEM_TIMEOFDAY_INFORMATION* = ptr SYSTEM_TIMEOFDAY_INFORMATION SYSTEM_PERFORMANCE_INFORMATION* {.pure.} = object IdleTime*: LARGE_INTEGER @@ -3795,15 +4292,19 @@ FirstLevelTbFills*: ULONG SecondLevelTbFills*: ULONG SystemCalls*: ULONG + PSYSTEM_PERFORMANCE_INFORMATION* = ptr SYSTEM_PERFORMANCE_INFORMATION SYSTEM_EXCEPTION_INFORMATION* {.pure.} = object Reserved1*: array[16, BYTE] + PSYSTEM_EXCEPTION_INFORMATION* = ptr SYSTEM_EXCEPTION_INFORMATION SYSTEM_LOOKASIDE_INFORMATION* {.pure.} = object Reserved1*: array[32, BYTE] + PSYSTEM_LOOKASIDE_INFORMATION* = ptr SYSTEM_LOOKASIDE_INFORMATION SYSTEM_INTERRUPT_INFORMATION* {.pure.} = object Reserved1*: array[24, BYTE] + PSYSTEM_INTERRUPT_INFORMATION* = ptr SYSTEM_INTERRUPT_INFORMATION SYSTEM_HANDLE_ENTRY* {.pure.} = object OwnerPid*: ULONG @@ -3812,10 +4313,12 @@ HandleValue*: USHORT ObjectPointer*: PVOID AccessMask*: ULONG + PSYSTEM_HANDLE_ENTRY* = ptr SYSTEM_HANDLE_ENTRY SYSTEM_HANDLE_INFORMATION* {.pure.} = object Count*: ULONG Handle*: array[1, SYSTEM_HANDLE_ENTRY] + PSYSTEM_HANDLE_INFORMATION* = ptr SYSTEM_HANDLE_INFORMATION SYSTEM_PAGEFILE_INFORMATION* {.pure.} = object NextEntryOffset*: ULONG @@ -3823,8 +4326,11 @@ TotalUsed*: ULONG PeakUsed*: ULONG FileName*: UNICODE_STRING + PSYSTEM_PAGEFILE_INFORMATION* = ptr SYSTEM_PAGEFILE_INFORMATION - PRTL_HEAP_COMMIT_ROUTINE* = proc (Base: PVOID, CommitAddress: ptr PVOID, CommitSize: PSIZE_T): NTSTATUS {.stdcall.} + PRTL_HEAP_COMMIT_ROUTINE* = proc( + Base: PVOID, CommitAddress: ptr PVOID, CommitSize: PSIZE_T + ): NTSTATUS {.stdcall.} RTL_HEAP_PARAMETERS* {.pure.} = object Length*: ULONG SegmentReserve*: SIZE_T @@ -3836,14 +4342,17 @@ InitialCommit*: SIZE_T InitialReserve*: SIZE_T CommitRoutine*: PRTL_HEAP_COMMIT_ROUTINE - Reserved*: array[ 2 , SIZE_T] + Reserved*: array[2, SIZE_T] + PRTL_HEAP_PARAMETERS* = ptr RTL_HEAP_PARAMETERS WINSTATIONINFORMATIONW* {.pure.} = object Reserved2*: array[70, BYTE] LogonId*: ULONG Reserved3*: array[1140, BYTE] + PWINSTATIONINFORMATIONW* = ptr WINSTATIONINFORMATIONW BSTR* = distinct ptr OLECHAR + const exceptionContinueExecution* = 0 exceptionContinueSearch* = 1 @@ -5013,7 +5522,8 @@ STATUS_AUTHENTICATION_FIREWALL_FAILED* = NTSTATUS 0xC0000413'i32 STATUS_VDM_DISALLOWED* = NTSTATUS 0xC0000414'i32 STATUS_HUNG_DISPLAY_DRIVER_THREAD* = NTSTATUS 0xC0000415'i32 - STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE* = NTSTATUS 0xC0000416'i32 + STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE* = + NTSTATUS 0xC0000416'i32 STATUS_INVALID_CRUNTIME_PARAMETER* = NTSTATUS 0xC0000417'i32 STATUS_NTLM_BLOCKED* = NTSTATUS 0xC0000418'i32 STATUS_DS_SRC_SID_EXISTS_IN_FOREST* = NTSTATUS 0xC0000419'i32 @@ -5589,7 +6099,8 @@ STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE* = NTSTATUS 0xC01E0322'i32 STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN* = NTSTATUS 0xC01E0323'i32 STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE* = NTSTATUS 0xC01E0324'i32 - STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION* = NTSTATUS 0xC01E0325'i32 + STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION* = + NTSTATUS 0xC01E0325'i32 STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES* = NTSTATUS 0xC01E0326'i32 STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY* = NTSTATUS 0xC01E0327'i32 STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE* = NTSTATUS 0xC01E0328'i32 @@ -5604,7 +6115,8 @@ STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE* = NTSTATUS 0xC01E0331'i32 STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE* = NTSTATUS 0xC01E0332'i32 STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET* = NTSTATUS 0xC01E0333'i32 - STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER* = NTSTATUS 0xC01E0334'i32 + STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER* = + NTSTATUS 0xC01E0334'i32 STATUS_GRAPHICS_NO_VIDPNMGR* = NTSTATUS 0xC01E0335'i32 STATUS_GRAPHICS_NO_ACTIVE_VIDPN* = NTSTATUS 0xC01E0336'i32 STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY* = NTSTATUS 0xC01E0337'i32 @@ -5621,13 +6133,16 @@ STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE* = NTSTATUS 0xC01E0342'i32 STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN* = NTSTATUS 0xC01E0343'i32 STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL* = NTSTATUS 0xC01E0344'i32 - STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION* = NTSTATUS 0xC01E0345'i32 - STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED* = NTSTATUS 0xC01E0346'i32 + STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION* = + NTSTATUS 0xC01E0345'i32 + STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED* = + NTSTATUS 0xC01E0346'i32 STATUS_GRAPHICS_INVALID_GAMMA_RAMP* = NTSTATUS 0xC01E0347'i32 STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED* = NTSTATUS 0xC01E0348'i32 STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED* = NTSTATUS 0xC01E0349'i32 STATUS_GRAPHICS_MODE_NOT_IN_MODESET* = NTSTATUS 0xC01E034A'i32 - STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON* = NTSTATUS 0xC01E034D'i32 + STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON* = + NTSTATUS 0xC01E034D'i32 STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE* = NTSTATUS 0xC01E034E'i32 STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE* = NTSTATUS 0xC01E034F'i32 STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS* = NTSTATUS 0xC01E0350'i32 @@ -5665,7 +6180,8 @@ STATUS_GRAPHICS_OPM_INVALID_POINTER* = NTSTATUS 0xC01E050A'i32 STATUS_GRAPHICS_OPM_INTERNAL_ERROR* = NTSTATUS 0xC01E050B'i32 STATUS_GRAPHICS_OPM_INVALID_HANDLE* = NTSTATUS 0xC01E050C'i32 - STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE* = NTSTATUS 0xC01E050D'i32 + STATUS_GRAPHICS_PVP_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE* = + NTSTATUS 0xC01E050D'i32 STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH* = NTSTATUS 0xC01E050E'i32 STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED* = NTSTATUS 0xC01E050F'i32 STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED* = NTSTATUS 0xC01E0510'i32 @@ -5679,10 +6195,12 @@ STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE* = NTSTATUS 0xC01E0518'i32 STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS* = NTSTATUS 0xC01E051A'i32 STATUS_GRAPHICS_OPM_SESSION_TYPE_CHANGE_IN_PROGRESS* = NTSTATUS 0xC01E051B'i32 - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS* = NTSTATUS 0xC01E051C'i32 + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS* = + NTSTATUS 0xC01E051C'i32 STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST* = NTSTATUS 0xC01E051D'i32 STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR* = NTSTATUS 0xC01E051E'i32 - STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS* = NTSTATUS 0xC01E051F'i32 + STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS* = + NTSTATUS 0xC01E051F'i32 STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED* = NTSTATUS 0xC01E0520'i32 STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST* = NTSTATUS 0xC01E0521'i32 STATUS_GRAPHICS_I2C_NOT_SUPPORTED* = NTSTATUS 0xC01E0580'i32 @@ -5691,7 +6209,8 @@ STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA* = NTSTATUS 0xC01E0583'i32 STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED* = NTSTATUS 0xC01E0584'i32 STATUS_GRAPHICS_DDCCI_INVALID_DATA* = NTSTATUS 0xC01E0585'i32 - STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE* = NTSTATUS 0xC01E0586'i32 + STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE* = + NTSTATUS 0xC01E0586'i32 STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING* = NTSTATUS 0xC01E0587'i32 STATUS_GRAPHICS_MCA_INTERNAL_ERROR* = NTSTATUS 0xC01E0588'i32 STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND* = NTSTATUS 0xC01E0589'i32 @@ -5892,7 +6411,11 @@ ERROR_SEVERITY_ERROR* = 0xC0000000'i32 UNICODE_STRING_MAX_BYTES* = WORD 65534 UNICODE_STRING_MAX_CHARS* = 32767 -template DEFINE_GUID*(data1: int32, data2: uint16, data3: uint16, data4: array[8, uint8]): GUID = GUID(Data1: data1, Data2: data2, Data3: data3, Data4: data4) +template DEFINE_GUID*( + data1: int32, data2: uint16, data3: uint16, data4: array[8, uint8] +): GUID = + GUID(Data1: data1, Data2: data2, Data3: data3, Data4: data4) + const GUID_NULL* = DEFINE_GUID("00000000-0000-0000-0000-000000000000") IID_NULL* = GUID_NULL @@ -6279,19 +6802,27 @@ SORT_GEORGIAN_TRADITIONAL* = 0x0 SORT_GEORGIAN_MODERN* = 0x1 LOCALE_NAME_MAX_LENGTH* = 85 -template MAKELANGID*(p: untyped, s: untyped): WORD = s.WORD shl 10 or p.WORD +template MAKELANGID*(p: untyped, s: untyped): WORD = + s.WORD shl 10 or p.WORD + const - LANG_SYSTEM_DEFAULT* = MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT) - LANG_USER_DEFAULT* = MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT) -template MAKELCID*(l: untyped, s: untyped): DWORD = (s.DWORD shl 16) or l.DWORD + LANG_SYSTEM_DEFAULT* = MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT) + LANG_USER_DEFAULT* = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT) +template MAKELCID*(l: untyped, s: untyped): DWORD = + (s.DWORD shl 16) or l.DWORD + const - LOCALE_SYSTEM_DEFAULT* = MAKELCID(LANG_SYSTEM_DEFAULT,SORT_DEFAULT) - LOCALE_USER_DEFAULT* = MAKELCID(LANG_USER_DEFAULT,SORT_DEFAULT) - LOCALE_NEUTRAL* = MAKELCID(MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL),SORT_DEFAULT) - LOCALE_CUSTOM_DEFAULT* = MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT) - LOCALE_CUSTOM_UNSPECIFIED* = MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT) - LOCALE_CUSTOM_UI_DEFAULT* = MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT) - LOCALE_INVARIANT* = MAKELCID(MAKELANGID(LANG_INVARIANT,SUBLANG_NEUTRAL),SORT_DEFAULT) + LOCALE_SYSTEM_DEFAULT* = MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT) + LOCALE_USER_DEFAULT* = MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT) + LOCALE_NEUTRAL* = MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), SORT_DEFAULT) + LOCALE_CUSTOM_DEFAULT* = + MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_DEFAULT), SORT_DEFAULT) + LOCALE_CUSTOM_UNSPECIFIED* = + MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_CUSTOM_UNSPECIFIED), SORT_DEFAULT) + LOCALE_CUSTOM_UI_DEFAULT* = + MAKELCID(MAKELANGID(LANG_NEUTRAL, SUBLANG_UI_CUSTOM_DEFAULT), SORT_DEFAULT) + LOCALE_INVARIANT* = + MAKELCID(MAKELANGID(LANG_INVARIANT, SUBLANG_NEUTRAL), SORT_DEFAULT) MAXIMUM_WAIT_OBJECTS* = 64 MAXIMUM_SUSPEND_COUNT* = MAXCHAR EXCEPTION_NONCONTINUABLE* = 0x1 @@ -6332,12 +6863,12 @@ sidTypeUnknown* = 8 sidTypeComputer* = 9 sidTypeLabel* = 10 - SECURITY_NULL_SID_AUTHORITY* = [0'u8,0,0,0,0,0] - SECURITY_WORLD_SID_AUTHORITY* = [0'u8,0,0,0,0,1] - SECURITY_LOCAL_SID_AUTHORITY* = [0'u8,0,0,0,0,2] - SECURITY_CREATOR_SID_AUTHORITY* = [0'u8,0,0,0,0,3] - SECURITY_NON_UNIQUE_AUTHORITY* = [0'u8,0,0,0,0,4] - SECURITY_RESOURCE_MANAGER_AUTHORITY* = [0'u8,0,0,0,0,9] + SECURITY_NULL_SID_AUTHORITY* = [0'u8, 0, 0, 0, 0, 0] + SECURITY_WORLD_SID_AUTHORITY* = [0'u8, 0, 0, 0, 0, 1] + SECURITY_LOCAL_SID_AUTHORITY* = [0'u8, 0, 0, 0, 0, 2] + SECURITY_CREATOR_SID_AUTHORITY* = [0'u8, 0, 0, 0, 0, 3] + SECURITY_NON_UNIQUE_AUTHORITY* = [0'u8, 0, 0, 0, 0, 4] + SECURITY_RESOURCE_MANAGER_AUTHORITY* = [0'u8, 0, 0, 0, 0, 9] SECURITY_NULL_RID* = 0x00000000 SECURITY_WORLD_RID* = 0x00000000 SECURITY_LOCAL_RID* = 0x00000000 @@ -6347,7 +6878,7 @@ SECURITY_CREATOR_OWNER_SERVER_RID* = 0x00000002 SECURITY_CREATOR_GROUP_SERVER_RID* = 0x00000003 SECURITY_CREATOR_OWNER_RIGHTS_RID* = 0x00000004 - SECURITY_NT_AUTHORITY* = [0'u8,0,0,0,0,5] + SECURITY_NT_AUTHORITY* = [0'u8, 0, 0, 0, 0, 5] SECURITY_DIALUP_RID* = 0x00000001 SECURITY_NETWORK_RID* = 0x00000002 SECURITY_BATCH_RID* = 0x00000003 @@ -6478,7 +7009,7 @@ SECURITY_CAPABILITY_SHARED_USER_CERTIFICATES* = 0x00000009 SECURITY_CAPABILITY_REMOVABLE_STORAGE* = 0x0000000a SECURITY_CAPABILITY_INTERNET_EXPLORER* = 0x00001000 - SECURITY_MANDATORY_LABEL_AUTHORITY* = [0'u8,0,0,0,0,16] + SECURITY_MANDATORY_LABEL_AUTHORITY* = [0'u8, 0, 0, 0, 0, 16] SECURITY_MANDATORY_UNTRUSTED_RID* = 0x00000000 SECURITY_MANDATORY_LOW_RID* = 0x00001000 SECURITY_MANDATORY_MEDIUM_RID* = 0x00002000 @@ -6610,7 +7141,10 @@ SE_GROUP_INTEGRITY_ENABLED* = 0x00000040 SE_GROUP_LOGON_ID* = 0xC0000000'i32 SE_GROUP_RESOURCE* = 0x20000000 - SE_GROUP_VALID_ATTRIBUTES* = SE_GROUP_MANDATORY or SE_GROUP_ENABLED_BY_DEFAULT or SE_GROUP_ENABLED or SE_GROUP_OWNER or SE_GROUP_USE_FOR_DENY_ONLY or SE_GROUP_LOGON_ID or SE_GROUP_RESOURCE or SE_GROUP_INTEGRITY or SE_GROUP_INTEGRITY_ENABLED + SE_GROUP_VALID_ATTRIBUTES* = + SE_GROUP_MANDATORY or SE_GROUP_ENABLED_BY_DEFAULT or SE_GROUP_ENABLED or + SE_GROUP_OWNER or SE_GROUP_USE_FOR_DENY_ONLY or SE_GROUP_LOGON_ID or + SE_GROUP_RESOURCE or SE_GROUP_INTEGRITY or SE_GROUP_INTEGRITY_ENABLED ACL_REVISION* = 2 ACL_REVISION_DS* = 4 ACL_REVISION1* = 1 @@ -6658,7 +7192,9 @@ SYSTEM_MANDATORY_LABEL_NO_WRITE_UP* = 0x1 SYSTEM_MANDATORY_LABEL_NO_READ_UP* = 0x2 SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP* = 0x4 - SYSTEM_MANDATORY_LABEL_VALID_MASK* = SYSTEM_MANDATORY_LABEL_NO_WRITE_UP or SYSTEM_MANDATORY_LABEL_NO_READ_UP or SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP + SYSTEM_MANDATORY_LABEL_VALID_MASK* = + SYSTEM_MANDATORY_LABEL_NO_WRITE_UP or SYSTEM_MANDATORY_LABEL_NO_READ_UP or + SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP ACE_OBJECT_TYPE_PRESENT* = 0x1 ACE_INHERITED_OBJECT_TYPE_PRESENT* = 0x2 aclRevisionInformation* = 1 @@ -6694,7 +7230,9 @@ SE_PRIVILEGE_ENABLED* = 0x00000002 SE_PRIVILEGE_REMOVED* = 0X00000004 SE_PRIVILEGE_USED_FOR_ACCESS* = 0x80000000'i32 - SE_PRIVILEGE_VALID_ATTRIBUTES* = SE_PRIVILEGE_ENABLED_BY_DEFAULT or SE_PRIVILEGE_ENABLED or SE_PRIVILEGE_REMOVED or SE_PRIVILEGE_USED_FOR_ACCESS + SE_PRIVILEGE_VALID_ATTRIBUTES* = + SE_PRIVILEGE_ENABLED_BY_DEFAULT or SE_PRIVILEGE_ENABLED or SE_PRIVILEGE_REMOVED or + SE_PRIVILEGE_USED_FOR_ACCESS PRIVILEGE_SET_ALL_NECESSARY* = 1 ACCESS_REASON_TYPE_MASK* = 0x00ff0000 ACCESS_REASON_DATA_MASK* = 0x0000ffff @@ -6770,10 +7308,15 @@ TOKEN_ADJUST_GROUPS* = 0x0040 TOKEN_ADJUST_DEFAULT* = 0x0080 TOKEN_ADJUST_SESSIONID* = 0x0100 - TOKEN_ALL_ACCESS_P* = STANDARD_RIGHTS_REQUIRED or TOKEN_ASSIGN_PRIMARY or TOKEN_DUPLICATE or TOKEN_IMPERSONATE or TOKEN_QUERY or TOKEN_QUERY_SOURCE or TOKEN_ADJUST_PRIVILEGES or TOKEN_ADJUST_GROUPS or TOKEN_ADJUST_DEFAULT + TOKEN_ALL_ACCESS_P* = + STANDARD_RIGHTS_REQUIRED or TOKEN_ASSIGN_PRIMARY or TOKEN_DUPLICATE or + TOKEN_IMPERSONATE or TOKEN_QUERY or TOKEN_QUERY_SOURCE or TOKEN_ADJUST_PRIVILEGES or + TOKEN_ADJUST_GROUPS or TOKEN_ADJUST_DEFAULT TOKEN_ALL_ACCESS* = TOKEN_ALL_ACCESS_P or TOKEN_ADJUST_SESSIONID TOKEN_READ* = STANDARD_RIGHTS_READ or TOKEN_QUERY - TOKEN_WRITE* = STANDARD_RIGHTS_WRITE or TOKEN_ADJUST_PRIVILEGES or TOKEN_ADJUST_GROUPS or TOKEN_ADJUST_DEFAULT + TOKEN_WRITE* = + STANDARD_RIGHTS_WRITE or TOKEN_ADJUST_PRIVILEGES or TOKEN_ADJUST_GROUPS or + TOKEN_ADJUST_DEFAULT TOKEN_EXECUTE* = STANDARD_RIGHTS_EXECUTE tokenPrimary* = 1 tokenImpersonation* = 2 @@ -6824,7 +7367,8 @@ TOKEN_MANDATORY_POLICY_OFF* = 0x0 TOKEN_MANDATORY_POLICY_NO_WRITE_UP* = 0x1 TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN* = 0x2 - TOKEN_MANDATORY_POLICY_VALID_MASK* = TOKEN_MANDATORY_POLICY_NO_WRITE_UP or TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN + TOKEN_MANDATORY_POLICY_VALID_MASK* = + TOKEN_MANDATORY_POLICY_NO_WRITE_UP or TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN mandatoryLevelUntrusted* = 0 mandatoryLevelLow* = 1 mandatoryLevelMedium* = 2 @@ -6846,10 +7390,16 @@ CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT* = 0x0008 CLAIM_SECURITY_ATTRIBUTE_DISABLED* = 0x0010 CLAIM_SECURITY_ATTRIBUTE_MANDATORY* = 0x0020 - CLAIM_SECURITY_ATTRIBUTE_VALID_FLAGS* = CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE or CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE or CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY or CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT or CLAIM_SECURITY_ATTRIBUTE_DISABLED or CLAIM_SECURITY_ATTRIBUTE_MANDATORY + CLAIM_SECURITY_ATTRIBUTE_VALID_FLAGS* = + CLAIM_SECURITY_ATTRIBUTE_NON_INHERITABLE or + CLAIM_SECURITY_ATTRIBUTE_VALUE_CASE_SENSITIVE or + CLAIM_SECURITY_ATTRIBUTE_USE_FOR_DENY_ONLY or + CLAIM_SECURITY_ATTRIBUTE_DISABLED_BY_DEFAULT or CLAIM_SECURITY_ATTRIBUTE_DISABLED or + CLAIM_SECURITY_ATTRIBUTE_MANDATORY CLAIM_SECURITY_ATTRIBUTE_CUSTOM_FLAGS* = 0xffff0000'i32 CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1* = 1 - CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION* = CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 + CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION* = + CLAIM_SECURITY_ATTRIBUTES_INFORMATION_VERSION_V1 SECURITY_DYNAMIC_TRACKING* = TRUE SECURITY_STATIC_TRACKING* = FALSE DISABLE_MAX_PRIVILEGE* = 0x1 @@ -6887,11 +7437,9 @@ PROCESS_QUERY_LIMITED_INFORMATION* = 0x1000 PROCESS_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0xffff when winimCpu64: - const - MAXIMUM_PROC_PER_GROUP* = 64 + const MAXIMUM_PROC_PER_GROUP* = 64 when winimCpu32: - const - MAXIMUM_PROC_PER_GROUP* = 32 + const MAXIMUM_PROC_PER_GROUP* = 32 const MAXIMUM_PROCESSORS* = MAXIMUM_PROC_PER_GROUP THREAD_TERMINATE* = 0x0001 @@ -7041,7 +7589,8 @@ SEMAPHORE_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0x3 TIMER_QUERY_STATE* = 0x0001 TIMER_MODIFY_STATE* = 0x0002 - TIMER_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or TIMER_QUERY_STATE or TIMER_MODIFY_STATE + TIMER_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or TIMER_QUERY_STATE or TIMER_MODIFY_STATE TIME_ZONE_ID_UNKNOWN* = 0 TIME_ZONE_ID_STANDARD* = 1 TIME_ZONE_ID_DAYLIGHT* = 2 @@ -7136,10 +7685,13 @@ SECTION_MAP_EXECUTE* = 0x0008 SECTION_EXTEND_SIZE* = 0x0010 SECTION_MAP_EXECUTE_EXPLICIT* = 0x0020 - SECTION_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SECTION_QUERY or SECTION_MAP_WRITE or SECTION_MAP_READ or SECTION_MAP_EXECUTE or SECTION_EXTEND_SIZE + SECTION_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or SECTION_QUERY or SECTION_MAP_WRITE or SECTION_MAP_READ or + SECTION_MAP_EXECUTE or SECTION_EXTEND_SIZE SESSION_QUERY_ACCESS* = 0x1 SESSION_MODIFY_ACCESS* = 0x2 - SESSION_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SESSION_QUERY_ACCESS or SESSION_MODIFY_ACCESS + SESSION_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or SESSION_QUERY_ACCESS or SESSION_MODIFY_ACCESS PAGE_NOACCESS* = 0x01 PAGE_READONLY* = 0x02 PAGE_READWRITE* = 0x04 @@ -7192,9 +7744,14 @@ FILE_READ_ATTRIBUTES* = 0x0080 FILE_WRITE_ATTRIBUTES* = 0x0100 FILE_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SYNCHRONIZE or 0x1FF - FILE_GENERIC_READ* = STANDARD_RIGHTS_READ or FILE_READ_DATA or FILE_READ_ATTRIBUTES or FILE_READ_EA or SYNCHRONIZE - FILE_GENERIC_WRITE* = STANDARD_RIGHTS_WRITE or FILE_WRITE_DATA or FILE_WRITE_ATTRIBUTES or FILE_WRITE_EA or FILE_APPEND_DATA or SYNCHRONIZE - FILE_GENERIC_EXECUTE* = STANDARD_RIGHTS_EXECUTE or FILE_READ_ATTRIBUTES or FILE_EXECUTE or SYNCHRONIZE + FILE_GENERIC_READ* = + STANDARD_RIGHTS_READ or FILE_READ_DATA or FILE_READ_ATTRIBUTES or FILE_READ_EA or + SYNCHRONIZE + FILE_GENERIC_WRITE* = + STANDARD_RIGHTS_WRITE or FILE_WRITE_DATA or FILE_WRITE_ATTRIBUTES or FILE_WRITE_EA or + FILE_APPEND_DATA or SYNCHRONIZE + FILE_GENERIC_EXECUTE* = + STANDARD_RIGHTS_EXECUTE or FILE_READ_ATTRIBUTES or FILE_EXECUTE or SYNCHRONIZE FILE_ATTRIBUTE_READONLY* = 0x00000001 FILE_ATTRIBUTE_HIDDEN* = 0x00000002 FILE_ATTRIBUTE_SYSTEM* = 0x00000004 @@ -7246,7 +7803,7 @@ FILE_SUPPORTS_OPEN_BY_FILE_ID* = 0x01000000 FILE_SUPPORTS_USN_JOURNAL* = 0x02000000 FILE_SUPPORTS_INTEGRITY_STREAMS* = 0x04000000 - MAXIMUM_REPARSE_DATA_BUFFER_SIZE* = 16*1024 + MAXIMUM_REPARSE_DATA_BUFFER_SIZE* = 16 * 1024 SYMLINK_FLAG_RELATIVE* = 1 IO_REPARSE_TAG_RESERVED_ZERO* = 0 IO_REPARSE_TAG_RESERVED_ONE* = 1 @@ -7310,28 +7867,37 @@ GUID_ACTIVE_POWERSCHEME* = DEFINE_GUID("31f9f286-5084-42fe-b720-2b0264993763") GUID_IDLE_RESILIENCY_SUBGROUP* = DEFINE_GUID("2e601130-5351-4d9d-8e04-252966bad054") GUID_IDLE_RESILIENCY_PERIOD* = DEFINE_GUID("c42b79aa-aa3a-484b-a98f-2cf32aa90a28") - GUID_DISK_COALESCING_POWERDOWN_TIMEOUT* = DEFINE_GUID("c36f0eb4-2988-4a70-8eee-0884fc2c2433") - GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT* = DEFINE_GUID("3166bc41-7e98-4e03-b34e-ec0f5f2b218e") + GUID_DISK_COALESCING_POWERDOWN_TIMEOUT* = + DEFINE_GUID("c36f0eb4-2988-4a70-8eee-0884fc2c2433") + GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT* = + DEFINE_GUID("3166bc41-7e98-4e03-b34e-ec0f5f2b218e") GUID_VIDEO_SUBGROUP* = DEFINE_GUID("7516b95f-f776-4464-8c53-06167f40cc99") GUID_VIDEO_POWERDOWN_TIMEOUT* = DEFINE_GUID("3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e") GUID_VIDEO_ANNOYANCE_TIMEOUT* = DEFINE_GUID("82dbcf2d-cd67-40c5-bfdc-9f1a5ccd4663") - GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE* = DEFINE_GUID("eed904df-b142-4183-b10b-5a1197a37864") + GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE* = + DEFINE_GUID("eed904df-b142-4183-b10b-5a1197a37864") GUID_VIDEO_DIM_TIMEOUT* = DEFINE_GUID("17aaa29b-8b43-4b94-aafe-35f64daaf1ee") GUID_VIDEO_ADAPTIVE_POWERDOWN* = DEFINE_GUID("90959d22-d6a1-49b9-af93-bce885ad335b") GUID_MONITOR_POWER_ON* = DEFINE_GUID("02731015-4510-4526-99e6-e5a17ebd1aea") - GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS* = DEFINE_GUID("aded5e82-b909-4619-9949-f5d71dac0bcb") - GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS* = DEFINE_GUID("f1fbfde2-a960-4165-9f88-50667911ce96") - GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS* = DEFINE_GUID("8ffee2c6-2d01-46be-adb9-398addc5b4ff") - GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS* = DEFINE_GUID("fbd9aa66-9553-4097-ba44-ed6e9d65eab8") + GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS* = + DEFINE_GUID("aded5e82-b909-4619-9949-f5d71dac0bcb") + GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS* = + DEFINE_GUID("f1fbfde2-a960-4165-9f88-50667911ce96") + GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS* = + DEFINE_GUID("8ffee2c6-2d01-46be-adb9-398addc5b4ff") + GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS* = + DEFINE_GUID("fbd9aa66-9553-4097-ba44-ed6e9d65eab8") GUID_CONSOLE_DISPLAY_STATE* = DEFINE_GUID("6fe69556-704a-47a0-8f24-c28d936fda47") GUID_ALLOW_DISPLAY_REQUIRED* = DEFINE_GUID("a9ceb8da-cd46-44fb-a98b-02af69de4623") GUID_VIDEO_CONSOLE_LOCK_TIMEOUT* = DEFINE_GUID("8ec4b3a5-6868-48c2-be75-4f3044be88a7") - GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP* = DEFINE_GUID("8619b916-e004-4dd8-9b66-dae86f806698") + GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP* = + DEFINE_GUID("8619b916-e004-4dd8-9b66-dae86f806698") GUID_NON_ADAPTIVE_INPUT_TIMEOUT* = DEFINE_GUID("5adbbfbc-074e-4da1-ba38-db8b36b2c8f3") GUID_DISK_SUBGROUP* = DEFINE_GUID("0012ee47-9041-4b5d-9b77-535fba8b1442") GUID_DISK_POWERDOWN_TIMEOUT* = DEFINE_GUID("6738e2c4-e8a5-4a42-b16a-e040e769756e") GUID_DISK_IDLE_TIMEOUT* = DEFINE_GUID("58e39ba8-b8e6-4ef6-90d0-89ae32b258d6") - GUID_DISK_BURST_IGNORE_THRESHOLD* = DEFINE_GUID("80e3c60e-bb94-4ad8-bbe0-0d3195efc663") + GUID_DISK_BURST_IGNORE_THRESHOLD* = + DEFINE_GUID("80e3c60e-bb94-4ad8-bbe0-0d3195efc663") GUID_DISK_ADAPTIVE_POWERDOWN* = DEFINE_GUID("396a32e1-499a-40b2-9124-a96afe707667") GUID_SLEEP_SUBGROUP* = DEFINE_GUID("238c9fa8-0aad-41ed-83f4-97be242c8f20") GUID_SLEEP_IDLE_THRESHOLD* = DEFINE_GUID("81cd32e0-7833-44f3-8737-7081f38d1f70") @@ -7364,65 +7930,102 @@ GUID_BATTERY_DISCHARGE_ACTION_3* = DEFINE_GUID("80472613-9780-455e-b308-72d3003cf2f8") GUID_BATTERY_DISCHARGE_LEVEL_3* = DEFINE_GUID("58afd5a6-c2dd-47d2-9fbf-ef70cc5c5965") GUID_BATTERY_DISCHARGE_FLAGS_3* = DEFINE_GUID("73613ccf-dbfa-4279-8356-4935f6bf62f3") - GUID_PROCESSOR_SETTINGS_SUBGROUP* = DEFINE_GUID("54533251-82be-4824-96c1-47b60b740d00") + GUID_PROCESSOR_SETTINGS_SUBGROUP* = + DEFINE_GUID("54533251-82be-4824-96c1-47b60b740d00") GUID_PROCESSOR_THROTTLE_POLICY* = DEFINE_GUID("57027304-4af6-4104-9260-e3d95248fc36") GUID_PROCESSOR_THROTTLE_MAXIMUM* = DEFINE_GUID("bc5038f7-23e0-4960-96da-33abaf5935ec") GUID_PROCESSOR_THROTTLE_MINIMUM* = DEFINE_GUID("893dee8e-2bef-41e0-89c6-b55d0929964c") GUID_PROCESSOR_ALLOW_THROTTLING* = DEFINE_GUID("3b04d4fd-1cc7-4f23-ab1c-d1337819c4bb") GUID_PROCESSOR_IDLESTATE_POLICY* = DEFINE_GUID("68f262a7-f621-4069-b9a5-4874169be23c") GUID_PROCESSOR_PERFSTATE_POLICY* = DEFINE_GUID("bbdc3814-18e9-4463-8a55-d197327c45c0") - GUID_PROCESSOR_PERF_INCREASE_THRESHOLD* = DEFINE_GUID("06cadf0e-64ed-448a-8927-ce7bf90eb35d") - GUID_PROCESSOR_PERF_DECREASE_THRESHOLD* = DEFINE_GUID("12a0ab44-fe28-4fa9-b3bd-4b64f44960a6") - GUID_PROCESSOR_PERF_INCREASE_POLICY* = DEFINE_GUID("465e1f50-b610-473a-ab58-00d1077dc418") - GUID_PROCESSOR_PERF_DECREASE_POLICY* = DEFINE_GUID("40fbefc7-2e9d-4d25-a185-0cfd8574bac6") - GUID_PROCESSOR_PERF_INCREASE_TIME* = DEFINE_GUID("984cf492-3bed-4488-a8f9-4286c97bf5aa") - GUID_PROCESSOR_PERF_DECREASE_TIME* = DEFINE_GUID("d8edeb9b-95cf-4f95-a73c-b061973693c8") + GUID_PROCESSOR_PERF_INCREASE_THRESHOLD* = + DEFINE_GUID("06cadf0e-64ed-448a-8927-ce7bf90eb35d") + GUID_PROCESSOR_PERF_DECREASE_THRESHOLD* = + DEFINE_GUID("12a0ab44-fe28-4fa9-b3bd-4b64f44960a6") + GUID_PROCESSOR_PERF_INCREASE_POLICY* = + DEFINE_GUID("465e1f50-b610-473a-ab58-00d1077dc418") + GUID_PROCESSOR_PERF_DECREASE_POLICY* = + DEFINE_GUID("40fbefc7-2e9d-4d25-a185-0cfd8574bac6") + GUID_PROCESSOR_PERF_INCREASE_TIME* = + DEFINE_GUID("984cf492-3bed-4488-a8f9-4286c97bf5aa") + GUID_PROCESSOR_PERF_DECREASE_TIME* = + DEFINE_GUID("d8edeb9b-95cf-4f95-a73c-b061973693c8") GUID_PROCESSOR_PERF_TIME_CHECK* = DEFINE_GUID("4d2b0152-7d5c-498b-88e2-34345392a2c5") - GUID_PROCESSOR_PERF_BOOST_POLICY* = DEFINE_GUID("45bcc044-d885-43e2-8605-ee0ec6e96b59") + GUID_PROCESSOR_PERF_BOOST_POLICY* = + DEFINE_GUID("45bcc044-d885-43e2-8605-ee0ec6e96b59") GUID_PROCESSOR_PERF_BOOST_MODE* = DEFINE_GUID("be337238-0d82-4146-a960-4f3749d470c7") - GUID_PROCESSOR_IDLE_ALLOW_SCALING* = DEFINE_GUID("6c2993b0-8f48-481f-bcc6-00dd2742aa06") + GUID_PROCESSOR_IDLE_ALLOW_SCALING* = + DEFINE_GUID("6c2993b0-8f48-481f-bcc6-00dd2742aa06") GUID_PROCESSOR_IDLE_DISABLE* = DEFINE_GUID("5d76a2ca-e8c0-402f-a133-2158492d58ad") - GUID_PROCESSOR_IDLE_STATE_MAXIMUM* = DEFINE_GUID("9943e905-9a30-4ec1-9b99-44dd3b76f7a2") + GUID_PROCESSOR_IDLE_STATE_MAXIMUM* = + DEFINE_GUID("9943e905-9a30-4ec1-9b99-44dd3b76f7a2") GUID_PROCESSOR_IDLE_TIME_CHECK* = DEFINE_GUID("c4581c31-89ab-4597-8e2b-9c9cab440e6b") - GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD* = DEFINE_GUID("4b92d758-5a24-4851-a470-815d78aee119") - GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD* = DEFINE_GUID("7b224883-b3cc-4d79-819f-8374152cbe7c") - GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD* = DEFINE_GUID("df142941-20f3-4edf-9a4a-9c83d3d717d1") - GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD* = DEFINE_GUID("68dd2f27-a4ce-4e11-8487-3794e4135dfa") - GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY* = DEFINE_GUID("c7be0679-2817-4d69-9d02-519a537ed0c6") - GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY* = DEFINE_GUID("71021b41-c749-4d21-be74-a00f335d582b") - GUID_PROCESSOR_CORE_PARKING_MAX_CORES* = DEFINE_GUID("ea062031-0e34-4ff1-9b6d-eb1059334028") - GUID_PROCESSOR_CORE_PARKING_MIN_CORES* = DEFINE_GUID("0cc5b647-c1df-4637-891a-dec35c318583") - GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME* = DEFINE_GUID("2ddd5a84-5a71-437e-912a-db0b8c788732") - GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME* = DEFINE_GUID("dfd10d17-d5eb-45dd-877a-9a34ddd15c82") - GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR* = DEFINE_GUID("8f7b45e3-c393-480a-878c-f67ac3d07082") - GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD* = DEFINE_GUID("5b33697b-e89d-4d38-aa46-9e7dfb7cd2f9") - GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING* = DEFINE_GUID("e70867f1-fa2f-4f4e-aea1-4d8a0ba23b20") - GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR* = DEFINE_GUID("1299023c-bc28-4f0a-81ec-d3295a8d815d") - GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD* = DEFINE_GUID("9ac18e92-aa3c-4e27-b307-01ae37307129") - GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING* = DEFINE_GUID("8809c2d8-b155-42d4-bcda-0d345651b1db") - GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD* = DEFINE_GUID("943c8cb6-6f93-4227-ad87-e9a3feec08d1") - GUID_PROCESSOR_PARKING_CORE_OVERRIDE* = DEFINE_GUID("a55612aa-f624-42c6-a443-7397d064c04f") - GUID_PROCESSOR_PARKING_PERF_STATE* = DEFINE_GUID("447235c7-6a8d-4cc0-8e24-9eaf70b96e2b") - GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD* = DEFINE_GUID("2430ab6f-a520-44a2-9601-f7f23b5134b1") - GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD* = DEFINE_GUID("f735a673-2066-4f80-a0c5-ddee0cf1bf5d") + GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD* = + DEFINE_GUID("4b92d758-5a24-4851-a470-815d78aee119") + GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD* = + DEFINE_GUID("7b224883-b3cc-4d79-819f-8374152cbe7c") + GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD* = + DEFINE_GUID("df142941-20f3-4edf-9a4a-9c83d3d717d1") + GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD* = + DEFINE_GUID("68dd2f27-a4ce-4e11-8487-3794e4135dfa") + GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY* = + DEFINE_GUID("c7be0679-2817-4d69-9d02-519a537ed0c6") + GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY* = + DEFINE_GUID("71021b41-c749-4d21-be74-a00f335d582b") + GUID_PROCESSOR_CORE_PARKING_MAX_CORES* = + DEFINE_GUID("ea062031-0e34-4ff1-9b6d-eb1059334028") + GUID_PROCESSOR_CORE_PARKING_MIN_CORES* = + DEFINE_GUID("0cc5b647-c1df-4637-891a-dec35c318583") + GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME* = + DEFINE_GUID("2ddd5a84-5a71-437e-912a-db0b8c788732") + GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME* = + DEFINE_GUID("dfd10d17-d5eb-45dd-877a-9a34ddd15c82") + GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR* = + DEFINE_GUID("8f7b45e3-c393-480a-878c-f67ac3d07082") + GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD* = + DEFINE_GUID("5b33697b-e89d-4d38-aa46-9e7dfb7cd2f9") + GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING* = + DEFINE_GUID("e70867f1-fa2f-4f4e-aea1-4d8a0ba23b20") + GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR* = + DEFINE_GUID("1299023c-bc28-4f0a-81ec-d3295a8d815d") + GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD* = + DEFINE_GUID("9ac18e92-aa3c-4e27-b307-01ae37307129") + GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING* = + DEFINE_GUID("8809c2d8-b155-42d4-bcda-0d345651b1db") + GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD* = + DEFINE_GUID("943c8cb6-6f93-4227-ad87-e9a3feec08d1") + GUID_PROCESSOR_PARKING_CORE_OVERRIDE* = + DEFINE_GUID("a55612aa-f624-42c6-a443-7397d064c04f") + GUID_PROCESSOR_PARKING_PERF_STATE* = + DEFINE_GUID("447235c7-6a8d-4cc0-8e24-9eaf70b96e2b") + GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD* = + DEFINE_GUID("2430ab6f-a520-44a2-9601-f7f23b5134b1") + GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD* = + DEFINE_GUID("f735a673-2066-4f80-a0c5-ddee0cf1bf5d") GUID_PROCESSOR_PERF_HISTORY* = DEFINE_GUID("7d24baa7-0b84-480f-840c-1b0743c00f5f") - GUID_PROCESSOR_PERF_LATENCY_HINT* = DEFINE_GUID("0822df31-9c83-441c-a079-0de4cf009c7b") - GUID_PROCESSOR_DISTRIBUTE_UTILITY* = DEFINE_GUID("e0007330-f589-42ed-a401-5ddb10e785d3") + GUID_PROCESSOR_PERF_LATENCY_HINT* = + DEFINE_GUID("0822df31-9c83-441c-a079-0de4cf009c7b") + GUID_PROCESSOR_DISTRIBUTE_UTILITY* = + DEFINE_GUID("e0007330-f589-42ed-a401-5ddb10e785d3") GUID_SYSTEM_COOLING_POLICY* = DEFINE_GUID("94d3a615-a899-4ac5-ae2b-e4d8f634367f") GUID_LOCK_CONSOLE_ON_WAKE* = DEFINE_GUID("0e796bdb-100d-47d6-a2d5-f7d2daa51f51") GUID_DEVICE_IDLE_POLICY* = DEFINE_GUID("4faab71a-92e5-4726-b531-224559672d19") GUID_ACDC_POWER_SOURCE* = DEFINE_GUID("5d3e9a59-e9d5-4b00-a6bd-ff34ff516548") GUID_LIDSWITCH_STATE_CHANGE* = DEFINE_GUID("ba3e0f4d-b817-4094-a2d1-d56379e6a0f3") - GUID_BATTERY_PERCENTAGE_REMAINING* = DEFINE_GUID("a7ad8041-b45a-4cae-87a3-eecbb468a9e1") + GUID_BATTERY_PERCENTAGE_REMAINING* = + DEFINE_GUID("a7ad8041-b45a-4cae-87a3-eecbb468a9e1") GUID_GLOBAL_USER_PRESENCE* = DEFINE_GUID("786e8a1d-b427-4344-9207-09e70bdcbea9") GUID_SESSION_DISPLAY_STATUS* = DEFINE_GUID("2b84c20e-ad23-4ddf-93db-05ffbd7efca5") GUID_SESSION_USER_PRESENCE* = DEFINE_GUID("3c0f4548-c03f-4c4d-b9f2-237ede686376") GUID_IDLE_BACKGROUND_TASK* = DEFINE_GUID("515c31d8-f734-163d-a0fd-11a08c91e8f1") - GUID_BACKGROUND_TASK_NOTIFICATION* = DEFINE_GUID("cf23f240-2a54-48d8-b114-de1518ff052e") + GUID_BACKGROUND_TASK_NOTIFICATION* = + DEFINE_GUID("cf23f240-2a54-48d8-b114-de1518ff052e") GUID_APPLAUNCH_BUTTON* = DEFINE_GUID("1a689231-7399-4e9a-8f99-b71f999db3fa") - GUID_PCIEXPRESS_SETTINGS_SUBGROUP* = DEFINE_GUID("501a4d13-42af-4429-9fd1-a8218c268e20") + GUID_PCIEXPRESS_SETTINGS_SUBGROUP* = + DEFINE_GUID("501a4d13-42af-4429-9fd1-a8218c268e20") GUID_PCIEXPRESS_ASPM_POLICY* = DEFINE_GUID("ee12f906-d277-404b-b6da-e5fa1a576df5") - GUID_ENABLE_SWITCH_FORCED_SHUTDOWN* = DEFINE_GUID("833a6b62-dfa4-46d1-82f8-e09e34d029d6") + GUID_ENABLE_SWITCH_FORCED_SHUTDOWN* = + DEFINE_GUID("833a6b62-dfa4-46d1-82f8-e09e34d029d6") powerSystemUnspecified* = 0 powerSystemWorking* = 1 powerSystemSleeping1* = 2 @@ -7596,9 +8199,9 @@ platformRoleSlate* = 8 platformRoleMaximum* = 9 POWER_PLATFORM_ROLE_V1* = 0x00000001 - POWER_PLATFORM_ROLE_V1_MAX* = platformRolePerformanceServer+1 + POWER_PLATFORM_ROLE_V1_MAX* = platformRolePerformanceServer + 1 POWER_PLATFORM_ROLE_V2* = 0x00000002 - POWER_PLATFORM_ROLE_V2_MAX* = platformRoleSlate+1 + POWER_PLATFORM_ROLE_V2_MAX* = platformRoleSlate + 1 POWER_PLATFORM_ROLE_VERSION* = POWER_PLATFORM_ROLE_V2 POWER_PLATFORM_ROLE_VERSION_MAX* = POWER_PLATFORM_ROLE_V2_MAX ACPI_PPM_SOFTWARE_ALL* = 0xfc @@ -7633,7 +8236,8 @@ PPM_IDLE_IMPLEMENTATION_CSTATES* = 0x1 PPM_IDLE_IMPLEMENTATION_PEP* = 0x2 PPM_PERFSTATE_CHANGE_GUID* = DEFINE_GUID("a5b32ddd-7f39-4abc-b892-900e43b59ebb") - PPM_PERFSTATE_DOMAIN_CHANGE_GUID* = DEFINE_GUID("995e6b7f-d653-497a-b978-36a30c29bf01") + PPM_PERFSTATE_DOMAIN_CHANGE_GUID* = + DEFINE_GUID("995e6b7f-d653-497a-b978-36a30c29bf01") PPM_IDLESTATE_CHANGE_GUID* = DEFINE_GUID("4838fe4f-f71c-4e51-9ecc-8430a7ac4c6c") PPM_PERFSTATES_DATA_GUID* = DEFINE_GUID("5708cc20-7d40-4bf4-b4aa-2b01338d0126") PPM_IDLESTATES_DATA_GUID* = DEFINE_GUID("ba138e10-e250-4ad7-8616-cf1a7ad410e7") @@ -8308,7 +8912,8 @@ SEF_MACL_NO_READ_UP* = 0x200 SEF_MACL_NO_EXECUTE_UP* = 0x400 SEF_AVOID_OWNER_RESTRICTION* = 0x1000 - SEF_MACL_VALID_FLAGS* = SEF_MACL_NO_WRITE_UP or SEF_MACL_NO_READ_UP or SEF_MACL_NO_EXECUTE_UP + SEF_MACL_VALID_FLAGS* = + SEF_MACL_NO_WRITE_UP or SEF_MACL_NO_READ_UP or SEF_MACL_NO_EXECUTE_UP MESSAGE_RESOURCE_UNICODE* = 0x0001 VER_EQUAL* = 1 VER_GREATER* = 2 @@ -8359,7 +8964,14 @@ RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE* = 0x08000000 RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO* = 0x10000000 RTL_CRITICAL_SECTION_ALL_FLAG_BITS* = 0xff000000'i32 - RTL_CRITICAL_SECTION_FLAG_RESERVED* = RTL_CRITICAL_SECTION_ALL_FLAG_BITS and (not (RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO or RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN or RTL_CRITICAL_SECTION_FLAG_STATIC_INIT or RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE or RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO)) + RTL_CRITICAL_SECTION_FLAG_RESERVED* = + RTL_CRITICAL_SECTION_ALL_FLAG_BITS and ( + not ( + RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO or RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN or + RTL_CRITICAL_SECTION_FLAG_STATIC_INIT or RTL_CRITICAL_SECTION_FLAG_RESOURCE_TYPE or + RTL_CRITICAL_SECTION_FLAG_FORCE_DEBUG_INFO + ) + ) RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT* = 0x00000001 RTL_SRWLOCK_INIT* = [0'u8] RTL_CONDITION_VARIABLE_INIT* = [0'u8] @@ -8528,17 +9140,26 @@ KEY_WOW64_64KEY* = 0x0100 KEY_WOW64_32KEY* = 0x0200 KEY_WOW64_RES* = 0x0300 - KEY_READ* = (STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY) and (not SYNCHRONIZE) - KEY_WRITE* = (STANDARD_RIGHTS_WRITE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY) and (not SYNCHRONIZE) + KEY_READ* = + (STANDARD_RIGHTS_READ or KEY_QUERY_VALUE or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY) and + (not SYNCHRONIZE) + KEY_WRITE* = + (STANDARD_RIGHTS_WRITE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY) and (not SYNCHRONIZE) KEY_EXECUTE* = (KEY_READ) and (not SYNCHRONIZE) - KEY_ALL_ACCESS* = (STANDARD_RIGHTS_ALL or KEY_QUERY_VALUE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY or KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY or KEY_CREATE_LINK) and (not SYNCHRONIZE) + KEY_ALL_ACCESS* = + ( + STANDARD_RIGHTS_ALL or KEY_QUERY_VALUE or KEY_SET_VALUE or KEY_CREATE_SUB_KEY or + KEY_ENUMERATE_SUB_KEYS or KEY_NOTIFY or KEY_CREATE_LINK + ) and (not SYNCHRONIZE) REG_OPTION_RESERVED* = 0x00000000 REG_OPTION_NON_VOLATILE* = 0x00000000 REG_OPTION_VOLATILE* = 0x00000001 REG_OPTION_CREATE_LINK* = 0x00000002 REG_OPTION_BACKUP_RESTORE* = 0x00000004 REG_OPTION_OPEN_LINK* = 0x00000008 - REG_LEGAL_OPTION* = REG_OPTION_RESERVED or REG_OPTION_NON_VOLATILE or REG_OPTION_VOLATILE or REG_OPTION_CREATE_LINK or REG_OPTION_BACKUP_RESTORE or REG_OPTION_OPEN_LINK + REG_LEGAL_OPTION* = + REG_OPTION_RESERVED or REG_OPTION_NON_VOLATILE or REG_OPTION_VOLATILE or + REG_OPTION_CREATE_LINK or REG_OPTION_BACKUP_RESTORE or REG_OPTION_OPEN_LINK REG_CREATED_NEW_KEY* = 0x00000001 REG_OPENED_EXISTING_KEY* = 0x00000002 REG_STANDARD_FORMAT* = 1 @@ -8561,7 +9182,9 @@ REG_NOTIFY_CHANGE_LAST_SET* = 0x00000004 REG_NOTIFY_CHANGE_SECURITY* = 0x00000008 REG_NOTIFY_THREAD_AGNOSTIC* = 0x10000000 - REG_LEGAL_CHANGE_FILTER* = REG_NOTIFY_CHANGE_NAME or REG_NOTIFY_CHANGE_ATTRIBUTES or REG_NOTIFY_CHANGE_LAST_SET or REG_NOTIFY_CHANGE_SECURITY or REG_NOTIFY_THREAD_AGNOSTIC + REG_LEGAL_CHANGE_FILTER* = + REG_NOTIFY_CHANGE_NAME or REG_NOTIFY_CHANGE_ATTRIBUTES or REG_NOTIFY_CHANGE_LAST_SET or + REG_NOTIFY_CHANGE_SECURITY or REG_NOTIFY_THREAD_AGNOSTIC REG_NONE* = 0 REG_SZ* = 1 REG_EXPAND_SZ* = 2 @@ -8580,12 +9203,14 @@ SERVICE_FILE_SYSTEM_DRIVER* = 0x00000002 SERVICE_ADAPTER* = 0x00000004 SERVICE_RECOGNIZER_DRIVER* = 0x00000008 - SERVICE_DRIVER* = SERVICE_KERNEL_DRIVER or SERVICE_FILE_SYSTEM_DRIVER or SERVICE_RECOGNIZER_DRIVER + SERVICE_DRIVER* = + SERVICE_KERNEL_DRIVER or SERVICE_FILE_SYSTEM_DRIVER or SERVICE_RECOGNIZER_DRIVER SERVICE_WIN32_OWN_PROCESS* = 0x00000010 SERVICE_WIN32_SHARE_PROCESS* = 0x00000020 SERVICE_WIN32* = SERVICE_WIN32_OWN_PROCESS or SERVICE_WIN32_SHARE_PROCESS SERVICE_INTERACTIVE_PROCESS* = 0x00000100 - SERVICE_TYPE_ALL* = SERVICE_WIN32 or SERVICE_ADAPTER or SERVICE_DRIVER or SERVICE_INTERACTIVE_PROCESS + SERVICE_TYPE_ALL* = + SERVICE_WIN32 or SERVICE_ADAPTER or SERVICE_DRIVER or SERVICE_INTERACTIVE_PROCESS SERVICE_BOOT_START* = 0x00000000 SERVICE_SYSTEM_START* = 0x00000001 SERVICE_AUTO_START* = 0x00000002 @@ -8618,7 +9243,11 @@ CM_SERVICE_MEASURED_BOOT_LOAD* = 0x00000020 CM_SERVICE_VERIFIER_BOOT_LOAD* = 0x00000040 CM_SERVICE_WINPE_BOOT_LOAD* = 0x00000080 - CM_SERVICE_VALID_PROMOTION_MASK* = CM_SERVICE_NETWORK_BOOT_LOAD or CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD or CM_SERVICE_USB_DISK_BOOT_LOAD or CM_SERVICE_SD_DISK_BOOT_LOAD or CM_SERVICE_USB3_DISK_BOOT_LOAD or CM_SERVICE_MEASURED_BOOT_LOAD or CM_SERVICE_VERIFIER_BOOT_LOAD or CM_SERVICE_WINPE_BOOT_LOAD + CM_SERVICE_VALID_PROMOTION_MASK* = + CM_SERVICE_NETWORK_BOOT_LOAD or CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD or + CM_SERVICE_USB_DISK_BOOT_LOAD or CM_SERVICE_SD_DISK_BOOT_LOAD or + CM_SERVICE_USB3_DISK_BOOT_LOAD or CM_SERVICE_MEASURED_BOOT_LOAD or + CM_SERVICE_VERIFIER_BOOT_LOAD or CM_SERVICE_WINPE_BOOT_LOAD TAPE_ERASE_SHORT* = 0 TAPE_ERASE_LONG* = 1 TAPE_LOAD* = 0 @@ -8786,10 +9415,17 @@ TRANSACTIONMANAGER_RENAME* = 0x00008 TRANSACTIONMANAGER_CREATE_RM* = 0x00010 TRANSACTIONMANAGER_BIND_TRANSACTION* = 0x00020 - TRANSACTIONMANAGER_GENERIC_READ* = STANDARD_RIGHTS_READ or TRANSACTIONMANAGER_QUERY_INFORMATION - TRANSACTIONMANAGER_GENERIC_WRITE* = STANDARD_RIGHTS_WRITE or TRANSACTIONMANAGER_SET_INFORMATION or TRANSACTIONMANAGER_RECOVER or TRANSACTIONMANAGER_RENAME or TRANSACTIONMANAGER_CREATE_RM + TRANSACTIONMANAGER_GENERIC_READ* = + STANDARD_RIGHTS_READ or TRANSACTIONMANAGER_QUERY_INFORMATION + TRANSACTIONMANAGER_GENERIC_WRITE* = + STANDARD_RIGHTS_WRITE or TRANSACTIONMANAGER_SET_INFORMATION or + TRANSACTIONMANAGER_RECOVER or TRANSACTIONMANAGER_RENAME or + TRANSACTIONMANAGER_CREATE_RM TRANSACTIONMANAGER_GENERIC_EXECUTE* = STANDARD_RIGHTS_EXECUTE - TRANSACTIONMANAGER_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or TRANSACTIONMANAGER_GENERIC_READ or TRANSACTIONMANAGER_GENERIC_WRITE or TRANSACTIONMANAGER_GENERIC_EXECUTE or TRANSACTIONMANAGER_BIND_TRANSACTION + TRANSACTIONMANAGER_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or TRANSACTIONMANAGER_GENERIC_READ or + TRANSACTIONMANAGER_GENERIC_WRITE or TRANSACTIONMANAGER_GENERIC_EXECUTE or + TRANSACTIONMANAGER_BIND_TRANSACTION TRANSACTION_QUERY_INFORMATION* = 0x0001 TRANSACTION_SET_INFORMATION* = 0x0002 TRANSACTION_ENLIST* = 0x0004 @@ -8797,11 +9433,19 @@ TRANSACTION_ROLLBACK* = 0x0010 TRANSACTION_PROPAGATE* = 0x0020 TRANSACTION_RIGHT_RESERVED1* = 0x0040 - TRANSACTION_GENERIC_READ* = STANDARD_RIGHTS_READ or TRANSACTION_QUERY_INFORMATION or SYNCHRONIZE - TRANSACTION_GENERIC_WRITE* = STANDARD_RIGHTS_WRITE or TRANSACTION_SET_INFORMATION or TRANSACTION_COMMIT or TRANSACTION_ENLIST or TRANSACTION_ROLLBACK or TRANSACTION_PROPAGATE or SYNCHRONIZE - TRANSACTION_GENERIC_EXECUTE* = STANDARD_RIGHTS_EXECUTE or TRANSACTION_COMMIT or TRANSACTION_ROLLBACK or SYNCHRONIZE - TRANSACTION_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or TRANSACTION_GENERIC_READ or TRANSACTION_GENERIC_WRITE or TRANSACTION_GENERIC_EXECUTE - TRANSACTION_RESOURCE_MANAGER_RIGHTS* = TRANSACTION_GENERIC_READ or STANDARD_RIGHTS_WRITE or TRANSACTION_SET_INFORMATION or TRANSACTION_ENLIST or TRANSACTION_ROLLBACK or TRANSACTION_PROPAGATE or SYNCHRONIZE + TRANSACTION_GENERIC_READ* = + STANDARD_RIGHTS_READ or TRANSACTION_QUERY_INFORMATION or SYNCHRONIZE + TRANSACTION_GENERIC_WRITE* = + STANDARD_RIGHTS_WRITE or TRANSACTION_SET_INFORMATION or TRANSACTION_COMMIT or + TRANSACTION_ENLIST or TRANSACTION_ROLLBACK or TRANSACTION_PROPAGATE or SYNCHRONIZE + TRANSACTION_GENERIC_EXECUTE* = + STANDARD_RIGHTS_EXECUTE or TRANSACTION_COMMIT or TRANSACTION_ROLLBACK or SYNCHRONIZE + TRANSACTION_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or TRANSACTION_GENERIC_READ or TRANSACTION_GENERIC_WRITE or + TRANSACTION_GENERIC_EXECUTE + TRANSACTION_RESOURCE_MANAGER_RIGHTS* = + TRANSACTION_GENERIC_READ or STANDARD_RIGHTS_WRITE or TRANSACTION_SET_INFORMATION or + TRANSACTION_ENLIST or TRANSACTION_ROLLBACK or TRANSACTION_PROPAGATE or SYNCHRONIZE RESOURCEMANAGER_QUERY_INFORMATION* = 0x0001 RESOURCEMANAGER_SET_INFORMATION* = 0x0002 RESOURCEMANAGER_RECOVER* = 0x0004 @@ -8809,19 +9453,35 @@ RESOURCEMANAGER_GET_NOTIFICATION* = 0x0010 RESOURCEMANAGER_REGISTER_PROTOCOL* = 0x0020 RESOURCEMANAGER_COMPLETE_PROPAGATION* = 0x0040 - RESOURCEMANAGER_GENERIC_READ* = STANDARD_RIGHTS_READ or RESOURCEMANAGER_QUERY_INFORMATION or SYNCHRONIZE - RESOURCEMANAGER_GENERIC_WRITE* = STANDARD_RIGHTS_WRITE or RESOURCEMANAGER_SET_INFORMATION or RESOURCEMANAGER_RECOVER or RESOURCEMANAGER_ENLIST or RESOURCEMANAGER_GET_NOTIFICATION or RESOURCEMANAGER_REGISTER_PROTOCOL or RESOURCEMANAGER_COMPLETE_PROPAGATION or SYNCHRONIZE - RESOURCEMANAGER_GENERIC_EXECUTE* = STANDARD_RIGHTS_EXECUTE or RESOURCEMANAGER_RECOVER or RESOURCEMANAGER_ENLIST or RESOURCEMANAGER_GET_NOTIFICATION or RESOURCEMANAGER_COMPLETE_PROPAGATION or SYNCHRONIZE - RESOURCEMANAGER_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or RESOURCEMANAGER_GENERIC_READ or RESOURCEMANAGER_GENERIC_WRITE or RESOURCEMANAGER_GENERIC_EXECUTE + RESOURCEMANAGER_GENERIC_READ* = + STANDARD_RIGHTS_READ or RESOURCEMANAGER_QUERY_INFORMATION or SYNCHRONIZE + RESOURCEMANAGER_GENERIC_WRITE* = + STANDARD_RIGHTS_WRITE or RESOURCEMANAGER_SET_INFORMATION or RESOURCEMANAGER_RECOVER or + RESOURCEMANAGER_ENLIST or RESOURCEMANAGER_GET_NOTIFICATION or + RESOURCEMANAGER_REGISTER_PROTOCOL or RESOURCEMANAGER_COMPLETE_PROPAGATION or + SYNCHRONIZE + RESOURCEMANAGER_GENERIC_EXECUTE* = + STANDARD_RIGHTS_EXECUTE or RESOURCEMANAGER_RECOVER or RESOURCEMANAGER_ENLIST or + RESOURCEMANAGER_GET_NOTIFICATION or RESOURCEMANAGER_COMPLETE_PROPAGATION or + SYNCHRONIZE + RESOURCEMANAGER_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or RESOURCEMANAGER_GENERIC_READ or + RESOURCEMANAGER_GENERIC_WRITE or RESOURCEMANAGER_GENERIC_EXECUTE ENLISTMENT_QUERY_INFORMATION* = 1 ENLISTMENT_SET_INFORMATION* = 2 ENLISTMENT_RECOVER* = 4 ENLISTMENT_SUBORDINATE_RIGHTS* = 8 ENLISTMENT_SUPERIOR_RIGHTS* = 0x10 ENLISTMENT_GENERIC_READ* = STANDARD_RIGHTS_READ or ENLISTMENT_QUERY_INFORMATION - ENLISTMENT_GENERIC_WRITE* = STANDARD_RIGHTS_WRITE or ENLISTMENT_SET_INFORMATION or ENLISTMENT_RECOVER or ENLISTMENT_SUBORDINATE_RIGHTS or ENLISTMENT_SUPERIOR_RIGHTS - ENLISTMENT_GENERIC_EXECUTE* = STANDARD_RIGHTS_EXECUTE or ENLISTMENT_RECOVER or ENLISTMENT_SUBORDINATE_RIGHTS or ENLISTMENT_SUPERIOR_RIGHTS - ENLISTMENT_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or ENLISTMENT_GENERIC_READ or ENLISTMENT_GENERIC_WRITE or ENLISTMENT_GENERIC_EXECUTE + ENLISTMENT_GENERIC_WRITE* = + STANDARD_RIGHTS_WRITE or ENLISTMENT_SET_INFORMATION or ENLISTMENT_RECOVER or + ENLISTMENT_SUBORDINATE_RIGHTS or ENLISTMENT_SUPERIOR_RIGHTS + ENLISTMENT_GENERIC_EXECUTE* = + STANDARD_RIGHTS_EXECUTE or ENLISTMENT_RECOVER or ENLISTMENT_SUBORDINATE_RIGHTS or + ENLISTMENT_SUPERIOR_RIGHTS + ENLISTMENT_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or ENLISTMENT_GENERIC_READ or ENLISTMENT_GENERIC_WRITE or + ENLISTMENT_GENERIC_EXECUTE transactionOutcomeUndetermined* = 1 transactionOutcomeCommitted* = 2 transactionOutcomeAborted* = 3 @@ -8858,8 +9518,12 @@ WOW64_CONTEXT_FLOATING_POINT* = WOW64_CONTEXT_i386 or 0x00000008 WOW64_CONTEXT_DEBUG_REGISTERS* = WOW64_CONTEXT_i386 or 0x00000010 WOW64_CONTEXT_EXTENDED_REGISTERS* = WOW64_CONTEXT_i386 or 0x00000020 - WOW64_CONTEXT_FULL* = WOW64_CONTEXT_CONTROL or WOW64_CONTEXT_INTEGER or WOW64_CONTEXT_SEGMENTS - WOW64_CONTEXT_ALL* = WOW64_CONTEXT_CONTROL or WOW64_CONTEXT_INTEGER or WOW64_CONTEXT_SEGMENTS or WOW64_CONTEXT_FLOATING_POINT or WOW64_CONTEXT_DEBUG_REGISTERS or WOW64_CONTEXT_EXTENDED_REGISTERS + WOW64_CONTEXT_FULL* = + WOW64_CONTEXT_CONTROL or WOW64_CONTEXT_INTEGER or WOW64_CONTEXT_SEGMENTS + WOW64_CONTEXT_ALL* = + WOW64_CONTEXT_CONTROL or WOW64_CONTEXT_INTEGER or WOW64_CONTEXT_SEGMENTS or + WOW64_CONTEXT_FLOATING_POINT or WOW64_CONTEXT_DEBUG_REGISTERS or + WOW64_CONTEXT_EXTENDED_REGISTERS WOW64_CONTEXT_XSTATE* = WOW64_CONTEXT_i386 or 0x00000040 WOW64_CONTEXT_EXCEPTION_ACTIVE* = 0x08000000 WOW64_CONTEXT_SERVICE_ACTIVE* = 0x10000000 @@ -9098,34 +9762,58 @@ NETWORKSERVICE_LUID* = LUID(LowPart: 0x3e4, HighPart: 0x0) IUSER_LUID* = LUID(LowPart: 0x3e3, HighPart: 0x0) SERVERNAME_CURRENT* = HANDLE 0 - TRANSACTIONMANAGER_OBJECT_NAME_LENGTH_IN_BYTES* = (len(TRANSACTIONMANAGER_OBJECT_PATH)+1)+(38*sizeof(WCHAR)) - TRANSACTION_OBJECT_NAME_LENGTH_IN_BYTES* = (len(TRANSACTION_OBJECT_PATH)+1)+(38*sizeof(WCHAR)) - ENLISTMENT_OBJECT_NAME_LENGTH_IN_BYTES* = (len(ENLISTMENT_OBJECT_PATH)+1)+(38*sizeof(WCHAR)) - RESOURCE_MANAGER_OBJECT_NAME_LENGTH_IN_BYTES* = (len(RESOURCE_MANAGER_OBJECT_PATH)+1)+(38*sizeof(WCHAR)) + TRANSACTIONMANAGER_OBJECT_NAME_LENGTH_IN_BYTES* = + (len(TRANSACTIONMANAGER_OBJECT_PATH) + 1) + (38 * sizeof(WCHAR)) + TRANSACTION_OBJECT_NAME_LENGTH_IN_BYTES* = + (len(TRANSACTION_OBJECT_PATH) + 1) + (38 * sizeof(WCHAR)) + ENLISTMENT_OBJECT_NAME_LENGTH_IN_BYTES* = + (len(ENLISTMENT_OBJECT_PATH) + 1) + (38 * sizeof(WCHAR)) + RESOURCE_MANAGER_OBJECT_NAME_LENGTH_IN_BYTES* = + (len(RESOURCE_MANAGER_OBJECT_PATH) + 1) + (38 * sizeof(WCHAR)) IMAGE_SYM_CLASS_END_OF_FUNCTION* = not BYTE(0) type - PHNDLR* = proc (P1: int32): void {.stdcall.} - PEXCEPTION_HANDLER* = proc (P1: ptr EXCEPTION_RECORD, P2: pointer, P3: ptr CONTEXT, P4: pointer): EXCEPTION_DISPOSITION {.stdcall.} - PIMAGE_TLS_CALLBACK* = proc (DllHandle: PVOID, Reason: DWORD, Reserved: PVOID): VOID {.stdcall.} - PRTL_RUN_ONCE_INIT_FN* = proc (P1: PRTL_RUN_ONCE, P2: PVOID, P3: ptr PVOID): DWORD {.stdcall.} - PAPCFUNC* = proc (Parameter: ULONG_PTR): VOID {.stdcall.} - PVECTORED_EXCEPTION_HANDLER* = proc (ExceptionInfo: ptr EXCEPTION_POINTERS): LONG {.stdcall.} - WORKERCALLBACKFUNC* = proc (P1: PVOID): VOID {.stdcall.} - APC_CALLBACK_FUNCTION* = proc (P1: DWORD, P2: PVOID, P3: PVOID): VOID {.stdcall.} - PFLS_CALLBACK_FUNCTION* = proc (lpFlsData: PVOID): VOID {.stdcall.} - PSECURE_MEMORY_CACHE_CALLBACK* = proc (Addr: PVOID, Range: SIZE_T): BOOLEAN {.stdcall.} - PTP_WORK_CALLBACK* = proc (Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Work: PTP_WORK): VOID {.stdcall.} - PTP_TIMER_CALLBACK* = proc (Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Timer: PTP_TIMER): VOID {.stdcall.} - PTP_WAIT_CALLBACK* = proc (Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Wait: PTP_WAIT, WaitResult: TP_WAIT_RESULT): VOID {.stdcall.} - PIO_APC_ROUTINE* = proc (ApcContext: PVOID, IoStatusBlock: PIO_STATUS_BLOCK, Reserved: ULONG): VOID {.stdcall.} - PWINSTATIONQUERYINFORMATIONW* = proc (P1: HANDLE, P2: ULONG, P3: WINSTATIONINFOCLASS, P4: PVOID, P5: ULONG, P6: PULONG): BOOLEAN {.stdcall.} + PHNDLR* = proc(P1: int32): void {.stdcall.} + PEXCEPTION_HANDLER* = proc( + P1: ptr EXCEPTION_RECORD, P2: pointer, P3: ptr CONTEXT, P4: pointer + ): EXCEPTION_DISPOSITION {.stdcall.} + PIMAGE_TLS_CALLBACK* = + proc(DllHandle: PVOID, Reason: DWORD, Reserved: PVOID): VOID {.stdcall.} + PRTL_RUN_ONCE_INIT_FN* = + proc(P1: PRTL_RUN_ONCE, P2: PVOID, P3: ptr PVOID): DWORD {.stdcall.} + PAPCFUNC* = proc(Parameter: ULONG_PTR): VOID {.stdcall.} + PVECTORED_EXCEPTION_HANDLER* = + proc(ExceptionInfo: ptr EXCEPTION_POINTERS): LONG {.stdcall.} + WORKERCALLBACKFUNC* = proc(P1: PVOID): VOID {.stdcall.} + APC_CALLBACK_FUNCTION* = proc(P1: DWORD, P2: PVOID, P3: PVOID): VOID {.stdcall.} + PFLS_CALLBACK_FUNCTION* = proc(lpFlsData: PVOID): VOID {.stdcall.} + PSECURE_MEMORY_CACHE_CALLBACK* = proc(Addr: PVOID, Range: SIZE_T): BOOLEAN {.stdcall.} + PTP_WORK_CALLBACK* = proc( + Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Work: PTP_WORK + ): VOID {.stdcall.} + PTP_TIMER_CALLBACK* = proc( + Instance: PTP_CALLBACK_INSTANCE, Context: PVOID, Timer: PTP_TIMER + ): VOID {.stdcall.} + PTP_WAIT_CALLBACK* = proc( + Instance: PTP_CALLBACK_INSTANCE, + Context: PVOID, + Wait: PTP_WAIT, + WaitResult: TP_WAIT_RESULT, + ): VOID {.stdcall.} + PIO_APC_ROUTINE* = proc( + ApcContext: PVOID, IoStatusBlock: PIO_STATUS_BLOCK, Reserved: ULONG + ): VOID {.stdcall.} + PWINSTATIONQUERYINFORMATIONW* = proc( + P1: HANDLE, P2: ULONG, P3: WINSTATIONINFOCLASS, P4: PVOID, P5: ULONG, P6: PULONG + ): BOOLEAN {.stdcall.} XCPT_ACTION* {.pure.} = object XcptNum*: int32 SigNum*: int32 XcptAction*: PHNDLR + OBJECTID* {.pure.} = object Lineage*: GUID Uniquifier*: DWORD + ANON_OBJECT_HEADER* {.pure.} = object Sig1*: WORD Sig2*: WORD @@ -9134,6 +9822,7 @@ TimeDateStamp*: DWORD ClassID*: CLSID SizeOfData*: DWORD + ANON_OBJECT_HEADER_V2* {.pure.} = object Sig1*: WORD Sig2*: WORD @@ -9145,6 +9834,7 @@ Flags*: DWORD MetaDataSize*: DWORD MetaDataOffset*: DWORD + ANON_OBJECT_HEADER_BIGOBJ* {.pure.} = object Sig1*: WORD Sig2*: WORD @@ -9159,9 +9849,11 @@ NumberOfSections*: DWORD PointerToSymbolTable*: DWORD NumberOfSymbols*: DWORD + IMPORT_OBJECT_HEADER_UNION1* {.pure, union.} = object Ordinal*: WORD Hint*: WORD + IMPORT_OBJECT_HEADER* {.pure.} = object Sig1*: WORD Sig2*: WORD @@ -9170,16 +9862,19 @@ TimeDateStamp*: DWORD SizeOfData*: DWORD union1*: IMPORT_OBJECT_HEADER_UNION1 - Type* {.bitsize:2.}: WORD - NameType* {.bitsize:3.}: WORD - Reserved* {.bitsize:11.}: WORD + Type* {.bitsize: 2.}: WORD + NameType* {.bitsize: 3.}: WORD + Reserved* {.bitsize: 11.}: WORD + TP_CALLBACK_ENVIRON_V1_u_s* {.pure.} = object - LongFunction* {.bitsize:1.}: DWORD - Persistent* {.bitsize:1.}: DWORD - Private* {.bitsize:30.}: DWORD + LongFunction* {.bitsize: 1.}: DWORD + Persistent* {.bitsize: 1.}: DWORD + Private* {.bitsize: 30.}: DWORD + TP_CALLBACK_ENVIRON_V1_u* {.pure, union.} = object Flags*: DWORD s*: TP_CALLBACK_ENVIRON_V1_u_s + TP_CALLBACK_ENVIRON_V1* {.pure.} = object Version*: TP_VERSION Pool*: PTP_POOL @@ -9189,390 +9884,1350 @@ ActivationContext*: ptr ACTIVATION_CONTEXT FinalizationCallback*: PTP_SIMPLE_CALLBACK u*: TP_CALLBACK_ENVIRON_V1_u -proc IsEqualGUID*(rguid1: REFGUID, rguid2: REFGUID): BOOL {.winapi, stdcall, dynlib: "ole32", importc.} -proc IsEqualIID*(rguid1: REFIID, rguid2: REFIID): BOOL {.winapi, stdcall, dynlib: "ole32", importc: "IsEqualGUID".} -proc IsEqualCLSID*(rguid1: REFCLSID, rguid2: REFCLSID): BOOL {.winapi, stdcall, dynlib: "ole32", importc: "IsEqualGUID".} -proc IsEqualFMTID*(rguid1: REFFMTID, rguid2: REFFMTID): BOOL {.winapi, stdcall, dynlib: "ole32", importc: "IsEqualGUID".} -proc RtlCaptureStackBackTrace*(FramesToSkip: DWORD, FramesToCapture: DWORD, BackTrace: ptr PVOID, BackTraceHash: PDWORD): WORD {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCaptureContext*(ContextRecord: PCONTEXT): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCompareMemory*(Source1: pointer, Source2: pointer, Length: SIZE_T): SIZE_T {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlUnwind*(TargetFrame: PVOID, TargetIp: PVOID, ExceptionRecord: PEXCEPTION_RECORD, ReturnValue: PVOID): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlPcToFileHeader*(PcValue: PVOID, BaseOfImage: ptr PVOID): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc IsEqualGUID*( + rguid1: REFGUID, rguid2: REFGUID +): BOOL {.winapi, stdcall, dynlib: "ole32", importc.} + +proc IsEqualIID*( + rguid1: REFIID, rguid2: REFIID +): BOOL {.winapi, stdcall, dynlib: "ole32", importc: "IsEqualGUID".} + +proc IsEqualCLSID*( + rguid1: REFCLSID, rguid2: REFCLSID +): BOOL {.winapi, stdcall, dynlib: "ole32", importc: "IsEqualGUID".} + +proc IsEqualFMTID*( + rguid1: REFFMTID, rguid2: REFFMTID +): BOOL {.winapi, stdcall, dynlib: "ole32", importc: "IsEqualGUID".} + +proc RtlCaptureStackBackTrace*( + FramesToSkip: DWORD, + FramesToCapture: DWORD, + BackTrace: ptr PVOID, + BackTraceHash: PDWORD, +): WORD {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCaptureContext*( + ContextRecord: PCONTEXT +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCompareMemory*( + Source1: pointer, Source2: pointer, Length: SIZE_T +): SIZE_T {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlUnwind*( + TargetFrame: PVOID, + TargetIp: PVOID, + ExceptionRecord: PEXCEPTION_RECORD, + ReturnValue: PVOID, +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlPcToFileHeader*( + PcValue: PVOID, BaseOfImage: ptr PVOID +): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} + when winimCpu64: - type - SLIST_HEADER_STRUCT1* {.pure.} = object - Alignment*: ULONGLONG - Region*: ULONGLONG + type SLIST_HEADER_STRUCT1* {.pure.} = object + Alignment*: ULONGLONG + Region*: ULONGLONG + when winimCpu32: - type - SLIST_ENTRY* = SINGLE_LIST_ENTRY + type SLIST_ENTRY* = SINGLE_LIST_ENTRY when winimCpu64: - type - SLIST_ENTRY* {.pure.} = object - Next*: ptr SLIST_ENTRY - padding*: array[8, byte] + type SLIST_ENTRY* {.pure.} = object + Next*: ptr SLIST_ENTRY + padding*: array[8, byte] + when winimCpu32: - type - SLIST_HEADER_STRUCT1* {.pure.} = object - Next*: SLIST_ENTRY - Depth*: WORD - Sequence*: WORD + type SLIST_HEADER_STRUCT1* {.pure.} = object + Next*: SLIST_ENTRY + Depth*: WORD + Sequence*: WORD + when winimCpu64: type SLIST_HEADER_Header8* {.pure.} = object - Depth* {.bitsize:16.}: ULONGLONG - Sequence* {.bitsize:9.}: ULONGLONG - NextEntry* {.bitsize:39.}: ULONGLONG - HeaderType* {.bitsize:1.}: ULONGLONG - Init* {.bitsize:1.}: ULONGLONG - Reserved* {.bitsize:59.}: ULONGLONG - Region* {.bitsize:3.}: ULONGLONG + Depth* {.bitsize: 16.}: ULONGLONG + Sequence* {.bitsize: 9.}: ULONGLONG + NextEntry* {.bitsize: 39.}: ULONGLONG + HeaderType* {.bitsize: 1.}: ULONGLONG + Init* {.bitsize: 1.}: ULONGLONG + Reserved* {.bitsize: 59.}: ULONGLONG + Region* {.bitsize: 3.}: ULONGLONG + SLIST_HEADER_HeaderX64* {.pure.} = object - Depth* {.bitsize:16.}: ULONGLONG - Sequence* {.bitsize:48.}: ULONGLONG - HeaderType* {.bitsize:1.}: ULONGLONG - Reserved* {.bitsize:3.}: ULONGLONG - NextEntry* {.bitsize:60.}: ULONGLONG + Depth* {.bitsize: 16.}: ULONGLONG + Sequence* {.bitsize: 48.}: ULONGLONG + HeaderType* {.bitsize: 1.}: ULONGLONG + Reserved* {.bitsize: 3.}: ULONGLONG + NextEntry* {.bitsize: 60.}: ULONGLONG + SLIST_HEADER* {.pure, union.} = object struct1*: SLIST_HEADER_STRUCT1 Header8*: SLIST_HEADER_Header8 HeaderX64*: SLIST_HEADER_HeaderX64 + when winimCpu32: - type - SLIST_HEADER* {.pure, union.} = object - Alignment*: ULONGLONG - struct1*: SLIST_HEADER_STRUCT1 + type SLIST_HEADER* {.pure, union.} = object + Alignment*: ULONGLONG + struct1*: SLIST_HEADER_STRUCT1 + when winimCpu64: - type - PSLIST_HEADER* = ptr SLIST_HEADER + type PSLIST_HEADER* = ptr SLIST_HEADER when winimCpu32: - type - PSLIST_HEADER* = ptr SLIST_HEADER -proc RtlInitializeSListHead*(ListHead: PSLIST_HEADER): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + type PSLIST_HEADER* = ptr SLIST_HEADER +proc RtlInitializeSListHead*( + ListHead: PSLIST_HEADER +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + when winimCpu64: - type - PSLIST_ENTRY* = ptr SLIST_ENTRY + type PSLIST_ENTRY* = ptr SLIST_ENTRY when winimCpu32: - type - PSLIST_ENTRY* = ptr SINGLE_LIST_ENTRY -proc RtlFirstEntrySList*(ListHead: ptr SLIST_HEADER): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInterlockedPopEntrySList*(ListHead: PSLIST_HEADER): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInterlockedPushEntrySList*(ListHead: PSLIST_HEADER, ListEntry: PSLIST_ENTRY): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInterlockedPushListSListEx*(ListHead: PSLIST_HEADER, List: PSLIST_ENTRY, ListEnd: PSLIST_ENTRY, Count: DWORD): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInterlockedFlushSList*(ListHead: PSLIST_HEADER): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlQueryDepthSList*(ListHead: PSLIST_HEADER): WORD {.winapi, stdcall, dynlib: "ntdll", importc.} -proc VerSetConditionMask*(ConditionMask: ULONGLONG, TypeMask: DWORD, Condition: BYTE): ULONGLONG {.winapi, stdcall, dynlib: "kernel32", importc.} -proc RtlGetProductInfo*(OSMajorVersion: DWORD, OSMinorVersion: DWORD, SpMajorVersion: DWORD, SpMinorVersion: DWORD, ReturnedProductType: PDWORD): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCrc32*(Buffer: pointer, Size: int, InitialCrc: DWORD): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCrc64*(Buffer: pointer, Size: int, InitialCrc: ULONGLONG): ULONGLONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlApplicationVerifierStop*(Code: ULONG_PTR, Message: PSTR, Param1: ULONG_PTR, Description1: PSTR, Param2: ULONG_PTR, Description2: PSTR, Param3: ULONG_PTR, Description3: PSTR, Param4: ULONG_PTR, Description4: PSTR): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlSetHeapInformation*(HeapHandle: PVOID, HeapInformationClass: HEAP_INFORMATION_CLASS, HeapInformation: PVOID, HeapInformationLength: SIZE_T): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlQueryHeapInformation*(HeapHandle: PVOID, HeapInformationClass: HEAP_INFORMATION_CLASS, HeapInformation: PVOID, HeapInformationLength: SIZE_T, ReturnLength: PSIZE_T): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlMultipleAllocateHeap*(HeapHandle: PVOID, Flags: DWORD, Size: SIZE_T, Count: DWORD, Array: ptr PVOID): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlMultipleFreeHeap*(HeapHandle: PVOID, Flags: DWORD, Count: DWORD, Array: ptr PVOID): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + type PSLIST_ENTRY* = ptr SINGLE_LIST_ENTRY +proc RtlFirstEntrySList*( + ListHead: ptr SLIST_HEADER +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInterlockedPopEntrySList*( + ListHead: PSLIST_HEADER +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInterlockedPushEntrySList*( + ListHead: PSLIST_HEADER, ListEntry: PSLIST_ENTRY +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInterlockedPushListSListEx*( + ListHead: PSLIST_HEADER, List: PSLIST_ENTRY, ListEnd: PSLIST_ENTRY, Count: DWORD +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInterlockedFlushSList*( + ListHead: PSLIST_HEADER +): PSLIST_ENTRY {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlQueryDepthSList*( + ListHead: PSLIST_HEADER +): WORD {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc VerSetConditionMask*( + ConditionMask: ULONGLONG, TypeMask: DWORD, Condition: BYTE +): ULONGLONG {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc RtlGetProductInfo*( + OSMajorVersion: DWORD, + OSMinorVersion: DWORD, + SpMajorVersion: DWORD, + SpMinorVersion: DWORD, + ReturnedProductType: PDWORD, +): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCrc32*( + Buffer: pointer, Size: int, InitialCrc: DWORD +): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCrc64*( + Buffer: pointer, Size: int, InitialCrc: ULONGLONG +): ULONGLONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlApplicationVerifierStop*( + Code: ULONG_PTR, + Message: PSTR, + Param1: ULONG_PTR, + Description1: PSTR, + Param2: ULONG_PTR, + Description2: PSTR, + Param3: ULONG_PTR, + Description3: PSTR, + Param4: ULONG_PTR, + Description4: PSTR, +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlSetHeapInformation*( + HeapHandle: PVOID, + HeapInformationClass: HEAP_INFORMATION_CLASS, + HeapInformation: PVOID, + HeapInformationLength: SIZE_T, +): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlQueryHeapInformation*( + HeapHandle: PVOID, + HeapInformationClass: HEAP_INFORMATION_CLASS, + HeapInformation: PVOID, + HeapInformationLength: SIZE_T, + ReturnLength: PSIZE_T, +): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlMultipleAllocateHeap*( + HeapHandle: PVOID, Flags: DWORD, Size: SIZE_T, Count: DWORD, Array: ptr PVOID +): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlMultipleFreeHeap*( + HeapHandle: PVOID, Flags: DWORD, Count: DWORD, Array: ptr PVOID +): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + proc NtClose*(Handle: HANDLE): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtCreateFile*(FileHandle: PHANDLE, DesiredAccess: ACCESS_MASK, ObjectAttributes: POBJECT_ATTRIBUTES, IoStatusBlock: PIO_STATUS_BLOCK, AllocationSize: PLARGE_INTEGER, FileAttributes: ULONG, ShareAccess: ULONG, CreateDisposition: ULONG, CreateOptions: ULONG, EaBuffer: PVOID, EaLength: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtOpenFile*(FileHandle: PHANDLE, DesiredAccess: ACCESS_MASK, ObjectAttributes: POBJECT_ATTRIBUTES, IoStatusBlock: PIO_STATUS_BLOCK, ShareAccess: ULONG, OpenOptions: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtFsControlFile*(FileHandle: HANDLE, Event: HANDLE, ApcRoutine: PIO_APC_ROUTINE, ApcContext: PVOID, IoStatusBlock: PIO_STATUS_BLOCK, IoControlCode: ULONG, InputBuffer: PVOID, InputBufferLength: ULONG, OutputBuffer: PVOID, OutputBufferLength: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtDeviceIoControlFile*(FileHandle: HANDLE, Event: HANDLE, ApcRoutine: PIO_APC_ROUTINE, ApcContext: PVOID, IoStatusBlock: PIO_STATUS_BLOCK, IoControlCode: ULONG, InputBuffer: PVOID, InputBufferLength: ULONG, OutputBuffer: PVOID, OutputBufferLength: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtWaitForSingleObject*(Handle: HANDLE, Alertable: BOOLEAN, Timeout: PLARGE_INTEGER): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIsNameLegalDOS8Dot3*(Name: PUNICODE_STRING, OemName: POEM_STRING, NameContainsSpaces: PBOOLEAN): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlNtStatusToDosError*(Status: NTSTATUS): ULONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQueryInformationProcess*(ProcessHandle: HANDLE, ProcessInformationClass: PROCESSINFOCLASS, ProcessInformation: PVOID, ProcessInformationLength: ULONG, ReturnLength: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQueryInformationThread*(ThreadHandle: HANDLE, ThreadInformationClass: THREADINFOCLASS, ThreadInformation: PVOID, ThreadInformationLength: ULONG, ReturnLength: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQueryInformationFile*(hFile: HANDLE, io: PIO_STATUS_BLOCK, `ptr`: PVOID, len: ULONG, FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQueryObject*(Handle: HANDLE, ObjectInformationClass: OBJECT_INFORMATION_CLASS, ObjectInformation: PVOID, ObjectInformationLength: ULONG, ReturnLength: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQuerySystemInformation*(SystemInformationClass: SYSTEM_INFORMATION_CLASS, SystemInformation: PVOID, SystemInformationLength: ULONG, ReturnLength: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQuerySystemTime*(SystemTime: PLARGE_INTEGER): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtQueryVolumeInformationFile*(hFile: HANDLE, io: PIO_STATUS_BLOCK, `ptr`: PVOID, len: ULONG, FsInformationClass: FS_INFORMATION_CLASS): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtSetInformationFile*(hFile: HANDLE, io: PIO_STATUS_BLOCK, `ptr`: PVOID, len: ULONG, FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtSetInformationProcess*(ProcessHandle: HANDLE, ProcessInformationClass: PROCESSINFOCLASS, ProcessInformation: PVOID, ProcessInformationLength: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc NtSetVolumeInformationFile*(hFile: HANDLE, io: PIO_STATUS_BLOCK, `ptr`: PVOID, len: ULONG, FileInformationClass: FILE_INFORMATION_CLASS): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlLocalTimeToSystemTime*(LocalTime: PLARGE_INTEGER, SystemTime: PLARGE_INTEGER): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlTimeToSecondsSince1970*(Time: PLARGE_INTEGER, ElapsedSeconds: PULONG): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlFreeAnsiString*(AnsiString: PANSI_STRING): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlFreeUnicodeString*(UnicodeString: PUNICODE_STRING): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlFreeOemString*(OemString: POEM_STRING): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInitString*(DestinationString: PSTRING, SourceString: PCSZ): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInitAnsiString*(DestinationString: PANSI_STRING, SourceString: PCSZ): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlInitUnicodeString*(DestinationString: PUNICODE_STRING, SourceString: PCWSTR): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlAnsiStringToUnicodeString*(DestinationString: PUNICODE_STRING, SourceString: PCANSI_STRING, AllocateDestinationString: BOOLEAN): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlUnicodeStringToAnsiString*(DestinationString: PANSI_STRING, SourceString: PCUNICODE_STRING, AllocateDestinationString: BOOLEAN): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlUnicodeStringToOemString*(DestinationString: POEM_STRING, SourceString: PCUNICODE_STRING, AllocateDestinationString: BOOLEAN): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlUnicodeToMultiByteSize*(BytesInMultiByteString: PULONG, UnicodeString: PWCH, BytesInUnicodeString: ULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCharToInteger*(String: PCSZ, Base: ULONG, Value: PULONG): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlConvertSidToUnicodeString*(UnicodeString: PUNICODE_STRING, Sid: PSID, AllocateDestinationString: BOOLEAN): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} +proc NtCreateFile*( + FileHandle: PHANDLE, + DesiredAccess: ACCESS_MASK, + ObjectAttributes: POBJECT_ATTRIBUTES, + IoStatusBlock: PIO_STATUS_BLOCK, + AllocationSize: PLARGE_INTEGER, + FileAttributes: ULONG, + ShareAccess: ULONG, + CreateDisposition: ULONG, + CreateOptions: ULONG, + EaBuffer: PVOID, + EaLength: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtOpenFile*( + FileHandle: PHANDLE, + DesiredAccess: ACCESS_MASK, + ObjectAttributes: POBJECT_ATTRIBUTES, + IoStatusBlock: PIO_STATUS_BLOCK, + ShareAccess: ULONG, + OpenOptions: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtFsControlFile*( + FileHandle: HANDLE, + Event: HANDLE, + ApcRoutine: PIO_APC_ROUTINE, + ApcContext: PVOID, + IoStatusBlock: PIO_STATUS_BLOCK, + IoControlCode: ULONG, + InputBuffer: PVOID, + InputBufferLength: ULONG, + OutputBuffer: PVOID, + OutputBufferLength: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtDeviceIoControlFile*( + FileHandle: HANDLE, + Event: HANDLE, + ApcRoutine: PIO_APC_ROUTINE, + ApcContext: PVOID, + IoStatusBlock: PIO_STATUS_BLOCK, + IoControlCode: ULONG, + InputBuffer: PVOID, + InputBufferLength: ULONG, + OutputBuffer: PVOID, + OutputBufferLength: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtWaitForSingleObject*( + Handle: HANDLE, Alertable: BOOLEAN, Timeout: PLARGE_INTEGER +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIsNameLegalDOS8Dot3*( + Name: PUNICODE_STRING, OemName: POEM_STRING, NameContainsSpaces: PBOOLEAN +): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlNtStatusToDosError*( + Status: NTSTATUS +): ULONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQueryInformationProcess*( + ProcessHandle: HANDLE, + ProcessInformationClass: PROCESSINFOCLASS, + ProcessInformation: PVOID, + ProcessInformationLength: ULONG, + ReturnLength: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQueryInformationThread*( + ThreadHandle: HANDLE, + ThreadInformationClass: THREADINFOCLASS, + ThreadInformation: PVOID, + ThreadInformationLength: ULONG, + ReturnLength: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQueryInformationFile*( + hFile: HANDLE, + io: PIO_STATUS_BLOCK, + `ptr`: PVOID, + len: ULONG, + FileInformationClass: FILE_INFORMATION_CLASS, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQueryObject*( + Handle: HANDLE, + ObjectInformationClass: OBJECT_INFORMATION_CLASS, + ObjectInformation: PVOID, + ObjectInformationLength: ULONG, + ReturnLength: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQuerySystemInformation*( + SystemInformationClass: SYSTEM_INFORMATION_CLASS, + SystemInformation: PVOID, + SystemInformationLength: ULONG, + ReturnLength: PULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQuerySystemTime*( + SystemTime: PLARGE_INTEGER +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtQueryVolumeInformationFile*( + hFile: HANDLE, + io: PIO_STATUS_BLOCK, + `ptr`: PVOID, + len: ULONG, + FsInformationClass: FS_INFORMATION_CLASS, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtSetInformationFile*( + hFile: HANDLE, + io: PIO_STATUS_BLOCK, + `ptr`: PVOID, + len: ULONG, + FileInformationClass: FILE_INFORMATION_CLASS, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtSetInformationProcess*( + ProcessHandle: HANDLE, + ProcessInformationClass: PROCESSINFOCLASS, + ProcessInformation: PVOID, + ProcessInformationLength: ULONG, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc NtSetVolumeInformationFile*( + hFile: HANDLE, + io: PIO_STATUS_BLOCK, + `ptr`: PVOID, + len: ULONG, + FileInformationClass: FILE_INFORMATION_CLASS, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlLocalTimeToSystemTime*( + LocalTime: PLARGE_INTEGER, SystemTime: PLARGE_INTEGER +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlTimeToSecondsSince1970*( + Time: PLARGE_INTEGER, ElapsedSeconds: PULONG +): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlFreeAnsiString*( + AnsiString: PANSI_STRING +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlFreeUnicodeString*( + UnicodeString: PUNICODE_STRING +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlFreeOemString*( + OemString: POEM_STRING +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInitString*( + DestinationString: PSTRING, SourceString: PCSZ +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInitAnsiString*( + DestinationString: PANSI_STRING, SourceString: PCSZ +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlInitUnicodeString*( + DestinationString: PUNICODE_STRING, SourceString: PCWSTR +): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlAnsiStringToUnicodeString*( + DestinationString: PUNICODE_STRING, + SourceString: PCANSI_STRING, + AllocateDestinationString: BOOLEAN, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlUnicodeStringToAnsiString*( + DestinationString: PANSI_STRING, + SourceString: PCUNICODE_STRING, + AllocateDestinationString: BOOLEAN, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlUnicodeStringToOemString*( + DestinationString: POEM_STRING, + SourceString: PCUNICODE_STRING, + AllocateDestinationString: BOOLEAN, +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlUnicodeToMultiByteSize*( + BytesInMultiByteString: PULONG, UnicodeString: PWCH, BytesInUnicodeString: ULONG +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCharToInteger*( + String: PCSZ, Base: ULONG, Value: PULONG +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlConvertSidToUnicodeString*( + UnicodeString: PUNICODE_STRING, Sid: PSID, AllocateDestinationString: BOOLEAN +): NTSTATUS {.winapi, stdcall, dynlib: "ntdll", importc.} + proc RtlUniform*(Seed: PULONG): ULONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlDosPathNameToNtPathName_U*(DosPathName: PCWSTR, NtPathName: PUNICODE_STRING, NtFileNamePart: ptr PCWSTR, DirectoryInfo: pointer): BOOL {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlPrefixUnicodeString*(String1: PCUNICODE_STRING, String2: PCUNICODE_STRING, CaseInSensitive: BOOLEAN): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCreateUnicodeStringFromAsciiz*(target: PUNICODE_STRING, src: LPCSTR): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlFreeHeap*(HeapHandle: PVOID, Flags: ULONG, HeapBase: PVOID): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlAllocateHeap*(HeapHandle: PVOID, Flags: ULONG, Size: SIZE_T): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlCreateHeap*(Flags: ULONG, HeapBase: PVOID, ReserveSize: SIZE_T, CommitSize: SIZE_T, Lock: PVOID, Parameters: PRTL_HEAP_PARAMETERS): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlDestroyHeap*(HeapHandle: PVOID): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} -proc CaptureStackBackTrace*(FramesToSkip: DWORD, FramesToCapture: DWORD, BackTrace: ptr PVOID, BackTraceHash: PDWORD): WORD {.winapi, stdcall, dynlib: "ntdll", importc: "RtlCaptureStackBackTrace".} -template NT_SUCCESS*(status: untyped): bool = status.NTSTATUS >= 0 -template NT_INFORMATION*(status: untyped): bool = status.NTSTATUS shr 30 == 1 -template NT_WARNING*(status: untyped): bool = status.NTSTATUS shr 30 == 2 -template NT_ERROR*(status: untyped): bool = status.NTSTATUS shr 30 == 3 -template PRIMARYLANGID*(lgid: untyped): WORD = lgid.WORD and 0x3ff -template SUBLANGID*(lgid: untyped): WORD = lgid.WORD shr 10 -template MAKESORTLCID*(lgid: untyped, srtid: untyped, ver: untyped): DWORD = MAKELCID(lgid, srtid) or (ver.DWORD shl 20) -template LANGIDFROMLCID*(lcid: untyped): WORD = WORD(lcid and 0xffff) -template SORTIDFROMLCID*(lcid: untyped): WORD = WORD((lcid shr 16) and 0xf) -template SORTVERSIONFROMLCID*(lcid: untyped): WORD = WORD((lcid shr 20) and 0xf) -template MAKEWORD*(a: untyped, b: untyped): WORD = WORD((b and 0xff) shl 8) or WORD(a and 0xff) -template MAKELONG*(a: untyped, b: untyped): DWORD = cast[DWORD](b shl 16) or DWORD(a and 0xffff) -template LOWORD*(l: untyped): WORD = WORD(l and 0xffff) -template HIWORD*(l: untyped): WORD = WORD((l shr 16) and 0xffff) -template LOBYTE*(w: untyped): BYTE = BYTE(w and 0xff) -template HIBYTE*(w: untyped): BYTE = BYTE((w shr 8) and 0xff) -template GET_X_LPARAM*(x: untyped): int = int cast[int16](LOWORD(x)) -template GET_Y_LPARAM*(x: untyped): int = int cast[int16](HIWORD(x)) -template IS_UNWINDING*(f: untyped): bool = (f and EXCEPTION_UNWIND) != 0 -template IS_DISPATCHING*(f: untyped): bool = (f and EXCEPTION_UNWIND) == 0 -template IS_TARGET_UNWIND*(f: untyped): bool = (f and EXCEPTION_TARGET_UNWIND) != 0 -template MANDATORY_LEVEL_TO_MANDATORY_RID*(IL: untyped): DWORD = IL.DWORD * 0x1000 -template VALID_IMPERSONATION_LEVEL*(L: untyped): bool = (L >= SECURITY_MIN_IMPERSONATION_LEVEL) and (L <= SECURITY_MAX_IMPERSONATION_LEVEL) -template IsReparseTagMicrosoft*(tag: untyped): ULONG = tag.ULONG and 0x80000000'i32 -template IsReparseTagNameSurrogate*(tag: untyped): ULONG = tag.ULONG and 0x20000000'i32 +proc RtlDosPathNameToNtPathName_U*( + DosPathName: PCWSTR, + NtPathName: PUNICODE_STRING, + NtFileNamePart: ptr PCWSTR, + DirectoryInfo: pointer, +): BOOL {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlPrefixUnicodeString*( + String1: PCUNICODE_STRING, String2: PCUNICODE_STRING, CaseInSensitive: BOOLEAN +): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCreateUnicodeStringFromAsciiz*( + target: PUNICODE_STRING, src: LPCSTR +): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlFreeHeap*( + HeapHandle: PVOID, Flags: ULONG, HeapBase: PVOID +): BOOLEAN {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlAllocateHeap*( + HeapHandle: PVOID, Flags: ULONG, Size: SIZE_T +): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlCreateHeap*( + Flags: ULONG, + HeapBase: PVOID, + ReserveSize: SIZE_T, + CommitSize: SIZE_T, + Lock: PVOID, + Parameters: PRTL_HEAP_PARAMETERS, +): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlDestroyHeap*( + HeapHandle: PVOID +): PVOID {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc CaptureStackBackTrace*( + FramesToSkip: DWORD, + FramesToCapture: DWORD, + BackTrace: ptr PVOID, + BackTraceHash: PDWORD, +): WORD {.winapi, stdcall, dynlib: "ntdll", importc: "RtlCaptureStackBackTrace".} + +template NT_SUCCESS*(status: untyped): bool = + status.NTSTATUS >= 0 + +template NT_INFORMATION*(status: untyped): bool = + status.NTSTATUS shr 30 == 1 + +template NT_WARNING*(status: untyped): bool = + status.NTSTATUS shr 30 == 2 + +template NT_ERROR*(status: untyped): bool = + status.NTSTATUS shr 30 == 3 + +template PRIMARYLANGID*(lgid: untyped): WORD = + lgid.WORD and 0x3ff + +template SUBLANGID*(lgid: untyped): WORD = + lgid.WORD shr 10 + +template MAKESORTLCID*(lgid: untyped, srtid: untyped, ver: untyped): DWORD = + MAKELCID(lgid, srtid) or (ver.DWORD shl 20) + +template LANGIDFROMLCID*(lcid: untyped): WORD = + WORD(lcid and 0xffff) + +template SORTIDFROMLCID*(lcid: untyped): WORD = + WORD((lcid shr 16) and 0xf) + +template SORTVERSIONFROMLCID*(lcid: untyped): WORD = + WORD((lcid shr 20) and 0xf) + +template MAKEWORD*(a: untyped, b: untyped): WORD = + WORD((b and 0xff) shl 8) or WORD(a and 0xff) + +template MAKELONG*(a: untyped, b: untyped): DWORD = + cast[DWORD](b shl 16) or DWORD(a and 0xffff) + +template LOWORD*(l: untyped): WORD = + WORD(l and 0xffff) + +template HIWORD*(l: untyped): WORD = + WORD((l shr 16) and 0xffff) + +template LOBYTE*(w: untyped): BYTE = + BYTE(w and 0xff) + +template HIBYTE*(w: untyped): BYTE = + BYTE((w shr 8) and 0xff) + +template GET_X_LPARAM*(x: untyped): int = + int cast[int16](LOWORD(x)) + +template GET_Y_LPARAM*(x: untyped): int = + int cast[int16](HIWORD(x)) + +template IS_UNWINDING*(f: untyped): bool = + (f and EXCEPTION_UNWIND) != 0 + +template IS_DISPATCHING*(f: untyped): bool = + (f and EXCEPTION_UNWIND) == 0 + +template IS_TARGET_UNWIND*(f: untyped): bool = + (f and EXCEPTION_TARGET_UNWIND) != 0 + +template MANDATORY_LEVEL_TO_MANDATORY_RID*(IL: untyped): DWORD = + IL.DWORD * 0x1000 + +template VALID_IMPERSONATION_LEVEL*(L: untyped): bool = + (L >= SECURITY_MIN_IMPERSONATION_LEVEL) and (L <= SECURITY_MAX_IMPERSONATION_LEVEL) + +template IsReparseTagMicrosoft*(tag: untyped): ULONG = + tag.ULONG and 0x80000000'i32 + +template IsReparseTagNameSurrogate*(tag: untyped): ULONG = + tag.ULONG and 0x20000000'i32 + when winimCpu64: - type - PIMAGE_NT_HEADERS* = PIMAGE_NT_HEADERS64 + type PIMAGE_NT_HEADERS* = PIMAGE_NT_HEADERS64 when winimCpu32: - type - PIMAGE_NT_HEADERS* = PIMAGE_NT_HEADERS32 -template IMAGE_FIRST_SECTION*(ntheader: PIMAGE_NT_HEADERS): PIMAGE_SECTION_HEADER = cast[PIMAGE_SECTION_HEADER](cast[int](addr ntheader.OptionalHeader) + int(ntheader.FileHeader.SizeOfOptionalHeader)) -template BTYPE*(x: untyped): DWORD = x.DWORD and N_BTMASK -template ISPTR*(x: untyped): bool = DWORD(x and N_TMASK) == DWORD(IMAGE_SYM_DTYPE_POINTER shl N_BTSHFT) -template ISFCN*(x: untyped): bool = DWORD(x and N_TMASK) == DWORD(IMAGE_SYM_DTYPE_FUNCTION shl N_BTSHFT) -template ISARY*(x: untyped): bool = DWORD(x and N_TMASK) == DWORD(IMAGE_SYM_DTYPE_ARRAY shl N_BTSHFT) -template ISTAG*(x: untyped): bool = (x == IMAGE_SYM_CLASS_STRUCT_TAG) or (x == IMAGE_SYM_CLASS_UNION_TAG) or (x == IMAGE_SYM_CLASS_ENUM_TAG) -template INCREF*(x: untyped): DWORD = ((x.DWORD and (not N_BTMASK)) shl N_TSHIFT) or DWORD(IMAGE_SYM_DTYPE_POINTER shl N_BTSHFT) or DWORD(x and N_BTMASK) -template DECREF*(x: untyped): DWORD = (x.DWORD shr N_TSHIFT) and DWORD(not N_BTMASK) or (x.DWORD and N_BTMASK) -template IMAGE_ORDINAL64*(Ordinal: untyped): int64 = Ordinal.int64 and 0xffff'i64 -template IMAGE_ORDINAL32*(Ordinal: untyped): int32 = Ordinal.int32 and 0xffff'i32 -template IMAGE_SNAP_BY_ORDINAL64*(Ordinal: untyped): bool = (Ordinal and IMAGE_ORDINAL_FLAG64) != 0 -template IMAGE_SNAP_BY_ORDINAL32*(Ordinal: untyped): bool = (Ordinal and IMAGE_ORDINAL_FLAG32) != 0 -template HEAP_MAKE_TAG_FLAGS*(b: untyped, o: untyped): DWORD = b.DWORD + (o.DWORD shl 18) -template InitializeObjectAttributes*(p: POBJECT_ATTRIBUTES, n: PUNICODE_STRING, a: ULONG, r: HANDLE, s: PSECURITY_DESCRIPTOR) = p.Length = int32 sizeof(OBJECT_ATTRIBUTES); p.RootDirectory = r; p.Attributes = a; p.ObjectName = n; p.SecurityDescriptor = s; p.SecurityQualityOfService = nil + type PIMAGE_NT_HEADERS* = PIMAGE_NT_HEADERS32 +template IMAGE_FIRST_SECTION*(ntheader: PIMAGE_NT_HEADERS): PIMAGE_SECTION_HEADER = + cast[PIMAGE_SECTION_HEADER](cast[int](addr ntheader.OptionalHeader) + + int(ntheader.FileHeader.SizeOfOptionalHeader)) + +template BTYPE*(x: untyped): DWORD = + x.DWORD and N_BTMASK + +template ISPTR*(x: untyped): bool = + DWORD(x and N_TMASK) == DWORD(IMAGE_SYM_DTYPE_POINTER shl N_BTSHFT) + +template ISFCN*(x: untyped): bool = + DWORD(x and N_TMASK) == DWORD(IMAGE_SYM_DTYPE_FUNCTION shl N_BTSHFT) + +template ISARY*(x: untyped): bool = + DWORD(x and N_TMASK) == DWORD(IMAGE_SYM_DTYPE_ARRAY shl N_BTSHFT) + +template ISTAG*(x: untyped): bool = + (x == IMAGE_SYM_CLASS_STRUCT_TAG) or (x == IMAGE_SYM_CLASS_UNION_TAG) or + (x == IMAGE_SYM_CLASS_ENUM_TAG) + +template INCREF*(x: untyped): DWORD = + ((x.DWORD and (not N_BTMASK)) shl N_TSHIFT) or + DWORD(IMAGE_SYM_DTYPE_POINTER shl N_BTSHFT) or DWORD(x and N_BTMASK) + +template DECREF*(x: untyped): DWORD = + (x.DWORD shr N_TSHIFT) and DWORD(not N_BTMASK) or (x.DWORD and N_BTMASK) + +template IMAGE_ORDINAL64*(Ordinal: untyped): int64 = + Ordinal.int64 and 0xffff'i64 + +template IMAGE_ORDINAL32*(Ordinal: untyped): int32 = + Ordinal.int32 and 0xffff'i32 + +template IMAGE_SNAP_BY_ORDINAL64*(Ordinal: untyped): bool = + (Ordinal and IMAGE_ORDINAL_FLAG64) != 0 + +template IMAGE_SNAP_BY_ORDINAL32*(Ordinal: untyped): bool = + (Ordinal and IMAGE_ORDINAL_FLAG32) != 0 + +template HEAP_MAKE_TAG_FLAGS*(b: untyped, o: untyped): DWORD = + b.DWORD + (o.DWORD shl 18) + +template InitializeObjectAttributes*( + p: POBJECT_ATTRIBUTES, + n: PUNICODE_STRING, + a: ULONG, + r: HANDLE, + s: PSECURITY_DESCRIPTOR, +) = + p.Length = int32 sizeof(OBJECT_ATTRIBUTES) + p.RootDirectory = r + p.Attributes = a + p.ObjectName = n + p.SecurityDescriptor = s + p.SecurityQualityOfService = nil + proc ReadTimeStampCounter*(): int64 {.importc: "__rdtsc".} -proc RtlEqualMemory*(Destination: pointer, Source: pointer, Length: Natural): bool {.importc: "RtlEqualMemory", header: "".} -proc RtlMoveMemory*(Destination: pointer, Source: pointer, Length: Natural) {.importc: "RtlMoveMemory", header: "".} -proc RtlCopyMemory*(Destination: pointer, Source: pointer, Length: Natural) {.importc: "RtlCopyMemory", header: "".} -proc RtlZeroMemory*(Destination: pointer, Length: Natural) {.importc: "RtlZeroMemory", header: "".} -proc RtlSecureZeroMemory*(Destination: pointer, Length: Natural) {.importc: "RtlSecureZeroMemory", header: "".} -proc RtlFillMemory*(Destination: pointer, Length: Natural, Fill: byte): void {.importc: "RtlFillMemory", header: "".} -proc `UseThisFieldToCopy=`*(self: var QUAD, x: int64) {.inline.} = self.union1.UseThisFieldToCopy = x -proc UseThisFieldToCopy*(self: QUAD): int64 {.inline.} = self.union1.UseThisFieldToCopy -proc UseThisFieldToCopy*(self: var QUAD): var int64 {.inline.} = self.union1.UseThisFieldToCopy -proc `DoNotUseThisField=`*(self: var QUAD, x: float64) {.inline.} = self.union1.DoNotUseThisField = x -proc DoNotUseThisField*(self: QUAD): float64 {.inline.} = self.union1.DoNotUseThisField -proc DoNotUseThisField*(self: var QUAD): var float64 {.inline.} = self.union1.DoNotUseThisField -proc `LowPart=`*(self: var LARGE_INTEGER, x: ULONG) {.inline.} = self.struct1.LowPart = x -proc LowPart*(self: LARGE_INTEGER): ULONG {.inline.} = self.struct1.LowPart -proc LowPart*(self: var LARGE_INTEGER): var ULONG {.inline.} = self.struct1.LowPart -proc `HighPart=`*(self: var LARGE_INTEGER, x: LONG) {.inline.} = self.struct1.HighPart = x -proc HighPart*(self: LARGE_INTEGER): LONG {.inline.} = self.struct1.HighPart -proc HighPart*(self: var LARGE_INTEGER): var LONG {.inline.} = self.struct1.HighPart -proc `LowPart=`*(self: var ULARGE_INTEGER, x: ULONG) {.inline.} = self.struct1.LowPart = x -proc LowPart*(self: ULARGE_INTEGER): ULONG {.inline.} = self.struct1.LowPart -proc LowPart*(self: var ULARGE_INTEGER): var ULONG {.inline.} = self.struct1.LowPart -proc `HighPart=`*(self: var ULARGE_INTEGER, x: ULONG) {.inline.} = self.struct1.HighPart = x -proc HighPart*(self: ULARGE_INTEGER): ULONG {.inline.} = self.struct1.HighPart -proc HighPart*(self: var ULARGE_INTEGER): var ULONG {.inline.} = self.struct1.HighPart -proc `SymbolicLinkReparseBuffer=`*(self: var REPARSE_DATA_BUFFER, x: REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer) {.inline.} = self.union1.SymbolicLinkReparseBuffer = x -proc SymbolicLinkReparseBuffer*(self: REPARSE_DATA_BUFFER): REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer {.inline.} = self.union1.SymbolicLinkReparseBuffer -proc SymbolicLinkReparseBuffer*(self: var REPARSE_DATA_BUFFER): var REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer {.inline.} = self.union1.SymbolicLinkReparseBuffer -proc `MountPointReparseBuffer=`*(self: var REPARSE_DATA_BUFFER, x: REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer) {.inline.} = self.union1.MountPointReparseBuffer = x -proc MountPointReparseBuffer*(self: REPARSE_DATA_BUFFER): REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer {.inline.} = self.union1.MountPointReparseBuffer -proc MountPointReparseBuffer*(self: var REPARSE_DATA_BUFFER): var REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer {.inline.} = self.union1.MountPointReparseBuffer -proc `GenericReparseBuffer=`*(self: var REPARSE_DATA_BUFFER, x: REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer) {.inline.} = self.union1.GenericReparseBuffer = x -proc GenericReparseBuffer*(self: REPARSE_DATA_BUFFER): REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer {.inline.} = self.union1.GenericReparseBuffer -proc GenericReparseBuffer*(self: var REPARSE_DATA_BUFFER): var REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer {.inline.} = self.union1.GenericReparseBuffer -proc `FiberData=`*(self: var NT_TIB, x: PVOID) {.inline.} = self.union1.FiberData = x -proc FiberData*(self: NT_TIB): PVOID {.inline.} = self.union1.FiberData -proc FiberData*(self: var NT_TIB): var PVOID {.inline.} = self.union1.FiberData -proc `Version=`*(self: var NT_TIB, x: DWORD) {.inline.} = self.union1.Version = x -proc Version*(self: NT_TIB): DWORD {.inline.} = self.union1.Version -proc Version*(self: var NT_TIB): var DWORD {.inline.} = self.union1.Version -proc `FiberData=`*(self: var NT_TIB32, x: DWORD) {.inline.} = self.union1.FiberData = x -proc FiberData*(self: NT_TIB32): DWORD {.inline.} = self.union1.FiberData -proc FiberData*(self: var NT_TIB32): var DWORD {.inline.} = self.union1.FiberData -proc `Version=`*(self: var NT_TIB32, x: DWORD) {.inline.} = self.union1.Version = x -proc Version*(self: NT_TIB32): DWORD {.inline.} = self.union1.Version -proc Version*(self: var NT_TIB32): var DWORD {.inline.} = self.union1.Version -proc `FiberData=`*(self: var NT_TIB64, x: DWORD64) {.inline.} = self.union1.FiberData = x -proc FiberData*(self: NT_TIB64): DWORD64 {.inline.} = self.union1.FiberData -proc FiberData*(self: var NT_TIB64): var DWORD64 {.inline.} = self.union1.FiberData -proc `Version=`*(self: var NT_TIB64, x: DWORD) {.inline.} = self.union1.Version = x -proc Version*(self: NT_TIB64): DWORD {.inline.} = self.union1.Version -proc Version*(self: var NT_TIB64): var DWORD {.inline.} = self.union1.Version -proc `RatePercent=`*(self: var RATE_QUOTA_LIMIT, x: DWORD) {.inline.} = self.struct1.RatePercent = x -proc RatePercent*(self: RATE_QUOTA_LIMIT): DWORD {.inline.} = self.struct1.RatePercent -proc `Reserved0=`*(self: var RATE_QUOTA_LIMIT, x: DWORD) {.inline.} = self.struct1.Reserved0 = x -proc Reserved0*(self: RATE_QUOTA_LIMIT): DWORD {.inline.} = self.struct1.Reserved0 -proc `Flags=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = self.union1.Flags = x -proc Flags*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = self.union1.Flags -proc Flags*(self: var PROCESS_MITIGATION_ASLR_POLICY): var DWORD {.inline.} = self.union1.Flags -proc `EnableBottomUpRandomization=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = self.union1.struct1.EnableBottomUpRandomization = x -proc EnableBottomUpRandomization*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = self.union1.struct1.EnableBottomUpRandomization -proc `EnableForceRelocateImages=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = self.union1.struct1.EnableForceRelocateImages = x -proc EnableForceRelocateImages*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = self.union1.struct1.EnableForceRelocateImages -proc `EnableHighEntropy=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = self.union1.struct1.EnableHighEntropy = x -proc EnableHighEntropy*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = self.union1.struct1.EnableHighEntropy -proc `DisallowStrippedImages=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = self.union1.struct1.DisallowStrippedImages = x -proc DisallowStrippedImages*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = self.union1.struct1.DisallowStrippedImages -proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = self.union1.struct1.ReservedFlags = x -proc ReservedFlags*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = self.union1.struct1.ReservedFlags -proc `Flags=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = self.union1.Flags = x -proc Flags*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = self.union1.Flags -proc Flags*(self: var PROCESS_MITIGATION_DEP_POLICY): var DWORD {.inline.} = self.union1.Flags -proc `Enable=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = self.union1.struct1.Enable = x -proc Enable*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = self.union1.struct1.Enable -proc `DisableAtlThunkEmulation=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = self.union1.struct1.DisableAtlThunkEmulation = x -proc DisableAtlThunkEmulation*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = self.union1.struct1.DisableAtlThunkEmulation -proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = self.union1.struct1.ReservedFlags = x -proc ReservedFlags*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = self.union1.struct1.ReservedFlags -proc `Flags=`*(self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD) {.inline.} = self.union1.Flags = x -proc Flags*(self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY): DWORD {.inline.} = self.union1.Flags -proc Flags*(self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY): var DWORD {.inline.} = self.union1.Flags -proc `RaiseExceptionOnInvalidHandleReference=`*(self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD) {.inline.} = self.union1.struct1.RaiseExceptionOnInvalidHandleReference = x -proc RaiseExceptionOnInvalidHandleReference*(self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY): DWORD {.inline.} = self.union1.struct1.RaiseExceptionOnInvalidHandleReference -proc `HandleExceptionsPermanentlyEnabled=`*(self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD) {.inline.} = self.union1.struct1.HandleExceptionsPermanentlyEnabled = x -proc HandleExceptionsPermanentlyEnabled*(self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY): DWORD {.inline.} = self.union1.struct1.HandleExceptionsPermanentlyEnabled -proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD) {.inline.} = self.union1.struct1.ReservedFlags = x -proc ReservedFlags*(self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY): DWORD {.inline.} = self.union1.struct1.ReservedFlags -proc `Flags=`*(self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, x: DWORD) {.inline.} = self.union1.Flags = x -proc Flags*(self: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY): DWORD {.inline.} = self.union1.Flags -proc Flags*(self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY): var DWORD {.inline.} = self.union1.Flags -proc `DisallowWin32kSystemCalls=`*(self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, x: DWORD) {.inline.} = self.union1.struct1.DisallowWin32kSystemCalls = x -proc DisallowWin32kSystemCalls*(self: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY): DWORD {.inline.} = self.union1.struct1.DisallowWin32kSystemCalls -proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, x: DWORD) {.inline.} = self.union1.struct1.ReservedFlags = x -proc ReservedFlags*(self: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY): DWORD {.inline.} = self.union1.struct1.ReservedFlags -proc `Flags=`*(self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, x: DWORD) {.inline.} = self.union1.Flags = x -proc Flags*(self: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY): DWORD {.inline.} = self.union1.Flags -proc Flags*(self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY): var DWORD {.inline.} = self.union1.Flags -proc `DisableExtensionPoints=`*(self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, x: DWORD) {.inline.} = self.union1.struct1.DisableExtensionPoints = x -proc DisableExtensionPoints*(self: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY): DWORD {.inline.} = self.union1.struct1.DisableExtensionPoints -proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, x: DWORD) {.inline.} = self.union1.struct1.ReservedFlags = x -proc ReservedFlags*(self: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY): DWORD {.inline.} = self.union1.struct1.ReservedFlags -proc `CpuRate=`*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, x: DWORD) {.inline.} = self.union1.CpuRate = x -proc CpuRate*(self: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): DWORD {.inline.} = self.union1.CpuRate -proc CpuRate*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): var DWORD {.inline.} = self.union1.CpuRate -proc `Weight=`*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, x: DWORD) {.inline.} = self.union1.Weight = x -proc Weight*(self: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): DWORD {.inline.} = self.union1.Weight -proc Weight*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): var DWORD {.inline.} = self.union1.Weight -proc `ProcessorCore=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, x: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore) {.inline.} = self.union1.ProcessorCore = x -proc ProcessorCore*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION): SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore {.inline.} = self.union1.ProcessorCore -proc ProcessorCore*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION): var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore {.inline.} = self.union1.ProcessorCore -proc `NumaNode=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, x: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode) {.inline.} = self.union1.NumaNode = x -proc NumaNode*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION): SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode {.inline.} = self.union1.NumaNode -proc NumaNode*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION): var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode {.inline.} = self.union1.NumaNode -proc `Cache=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, x: CACHE_DESCRIPTOR) {.inline.} = self.union1.Cache = x -proc Cache*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION): CACHE_DESCRIPTOR {.inline.} = self.union1.Cache -proc Cache*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION): var CACHE_DESCRIPTOR {.inline.} = self.union1.Cache -proc `Reserved=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, x: array[2, ULONGLONG]) {.inline.} = self.union1.Reserved = x -proc Reserved*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION): array[2, ULONGLONG] {.inline.} = self.union1.Reserved -proc Reserved*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION): var array[2, ULONGLONG] {.inline.} = self.union1.Reserved -proc `Processor=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, x: PROCESSOR_RELATIONSHIP) {.inline.} = self.union1.Processor = x -proc Processor*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): PROCESSOR_RELATIONSHIP {.inline.} = self.union1.Processor -proc Processor*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): var PROCESSOR_RELATIONSHIP {.inline.} = self.union1.Processor -proc `NumaNode=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, x: NUMA_NODE_RELATIONSHIP) {.inline.} = self.union1.NumaNode = x -proc NumaNode*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): NUMA_NODE_RELATIONSHIP {.inline.} = self.union1.NumaNode -proc NumaNode*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): var NUMA_NODE_RELATIONSHIP {.inline.} = self.union1.NumaNode -proc `Cache=`*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, x: CACHE_RELATIONSHIP) {.inline.} = self.union1.Cache = x -proc Cache*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): CACHE_RELATIONSHIP {.inline.} = self.union1.Cache -proc Cache*(self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX): var CACHE_RELATIONSHIP {.inline.} = self.union1.Cache -proc `AllowScaling=`*(self: var PROCESSOR_IDLESTATE_POLICY, x: WORD) {.inline.} = self.Flags.struct1.AllowScaling = x -proc AllowScaling*(self: PROCESSOR_IDLESTATE_POLICY): WORD {.inline.} = self.Flags.struct1.AllowScaling -proc `Disabled=`*(self: var PROCESSOR_IDLESTATE_POLICY, x: WORD) {.inline.} = self.Flags.struct1.Disabled = x -proc Disabled*(self: PROCESSOR_IDLESTATE_POLICY): WORD {.inline.} = self.Flags.struct1.Disabled -proc `Reserved=`*(self: var PROCESSOR_IDLESTATE_POLICY, x: WORD) {.inline.} = self.Flags.struct1.Reserved = x -proc Reserved*(self: PROCESSOR_IDLESTATE_POLICY): WORD {.inline.} = self.Flags.struct1.Reserved -proc `Spare=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = self.union1.Spare = x -proc Spare*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = self.union1.Spare -proc Spare*(self: var PROCESSOR_PERFSTATE_POLICY): var BYTE {.inline.} = self.union1.Spare -proc `NoDomainAccounting=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = self.union1.Flags.struct1.NoDomainAccounting = x -proc NoDomainAccounting*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = self.union1.Flags.struct1.NoDomainAccounting -proc `IncreasePolicy=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = self.union1.Flags.struct1.IncreasePolicy = x -proc IncreasePolicy*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = self.union1.Flags.struct1.IncreasePolicy -proc `DecreasePolicy=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = self.union1.Flags.struct1.DecreasePolicy = x -proc DecreasePolicy*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = self.union1.Flags.struct1.DecreasePolicy -proc `Reserved=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = self.union1.Flags.struct1.Reserved = x -proc Reserved*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = self.union1.Flags.struct1.Reserved -proc `Flags=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: PROCESSOR_PERFSTATE_POLICY_UNION1_Flags) {.inline.} = self.union1.Flags = x -proc Flags*(self: PROCESSOR_PERFSTATE_POLICY): PROCESSOR_PERFSTATE_POLICY_UNION1_Flags {.inline.} = self.union1.Flags -proc Flags*(self: var PROCESSOR_PERFSTATE_POLICY): var PROCESSOR_PERFSTATE_POLICY_UNION1_Flags {.inline.} = self.union1.Flags -proc `TokenDef=`*(self: var IMAGE_AUX_SYMBOL_EX, x: IMAGE_AUX_SYMBOL_TOKEN_DEF) {.inline.} = self.struct4.TokenDef = x -proc TokenDef*(self: IMAGE_AUX_SYMBOL_EX): IMAGE_AUX_SYMBOL_TOKEN_DEF {.inline.} = self.struct4.TokenDef -proc TokenDef*(self: var IMAGE_AUX_SYMBOL_EX): var IMAGE_AUX_SYMBOL_TOKEN_DEF {.inline.} = self.struct4.TokenDef -proc `rgbReserved=`*(self: var IMAGE_AUX_SYMBOL_EX, x: array[2, BYTE]) {.inline.} = self.struct4.rgbReserved = x -proc rgbReserved*(self: IMAGE_AUX_SYMBOL_EX): array[2, BYTE] {.inline.} = self.struct4.rgbReserved -proc rgbReserved*(self: var IMAGE_AUX_SYMBOL_EX): var array[2, BYTE] {.inline.} = self.struct4.rgbReserved -proc `VirtualAddress=`*(self: var IMAGE_RELOCATION, x: DWORD) {.inline.} = self.union1.VirtualAddress = x -proc VirtualAddress*(self: IMAGE_RELOCATION): DWORD {.inline.} = self.union1.VirtualAddress -proc VirtualAddress*(self: var IMAGE_RELOCATION): var DWORD {.inline.} = self.union1.VirtualAddress -proc `RelocCount=`*(self: var IMAGE_RELOCATION, x: DWORD) {.inline.} = self.union1.RelocCount = x -proc RelocCount*(self: IMAGE_RELOCATION): DWORD {.inline.} = self.union1.RelocCount -proc RelocCount*(self: var IMAGE_RELOCATION): var DWORD {.inline.} = self.union1.RelocCount -proc `Characteristics=`*(self: var IMAGE_IMPORT_DESCRIPTOR, x: DWORD) {.inline.} = self.union1.Characteristics = x -proc Characteristics*(self: IMAGE_IMPORT_DESCRIPTOR): DWORD {.inline.} = self.union1.Characteristics -proc Characteristics*(self: var IMAGE_IMPORT_DESCRIPTOR): var DWORD {.inline.} = self.union1.Characteristics -proc `OriginalFirstThunk=`*(self: var IMAGE_IMPORT_DESCRIPTOR, x: DWORD) {.inline.} = self.union1.OriginalFirstThunk = x -proc OriginalFirstThunk*(self: IMAGE_IMPORT_DESCRIPTOR): DWORD {.inline.} = self.union1.OriginalFirstThunk -proc OriginalFirstThunk*(self: var IMAGE_IMPORT_DESCRIPTOR): var DWORD {.inline.} = self.union1.OriginalFirstThunk -proc `RvaBased=`*(self: var IMAGE_DELAYLOAD_DESCRIPTOR, x: DWORD) {.inline.} = self.Attributes.struct1.RvaBased = x -proc RvaBased*(self: IMAGE_DELAYLOAD_DESCRIPTOR): DWORD {.inline.} = self.Attributes.struct1.RvaBased -proc `ReservedAttributes=`*(self: var IMAGE_DELAYLOAD_DESCRIPTOR, x: DWORD) {.inline.} = self.Attributes.struct1.ReservedAttributes = x -proc ReservedAttributes*(self: IMAGE_DELAYLOAD_DESCRIPTOR): DWORD {.inline.} = self.Attributes.struct1.ReservedAttributes -proc `NameOffset=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = self.union1.struct1.NameOffset = x -proc NameOffset*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = self.union1.struct1.NameOffset -proc `NameIsString=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = self.union1.struct1.NameIsString = x -proc NameIsString*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = self.union1.struct1.NameIsString -proc `Name=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = self.union1.Name = x -proc Name*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = self.union1.Name -proc Name*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY): var DWORD {.inline.} = self.union1.Name -proc `Id=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: WORD) {.inline.} = self.union1.Id = x -proc Id*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): WORD {.inline.} = self.union1.Id -proc Id*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY): var WORD {.inline.} = self.union1.Id -proc `OffsetToData=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = self.union2.OffsetToData = x -proc OffsetToData*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = self.union2.OffsetToData -proc OffsetToData*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY): var DWORD {.inline.} = self.union2.OffsetToData -proc `OffsetToDirectory=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = self.union2.struct1.OffsetToDirectory = x -proc OffsetToDirectory*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = self.union2.struct1.OffsetToDirectory -proc `DataIsDirectory=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = self.union2.struct1.DataIsDirectory = x -proc DataIsDirectory*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = self.union2.struct1.DataIsDirectory -proc `EndOfPrologue=`*(self: var IMAGE_FUNCTION_ENTRY64, x: ULONGLONG) {.inline.} = self.union1.EndOfPrologue = x -proc EndOfPrologue*(self: IMAGE_FUNCTION_ENTRY64): ULONGLONG {.inline.} = self.union1.EndOfPrologue -proc EndOfPrologue*(self: var IMAGE_FUNCTION_ENTRY64): var ULONGLONG {.inline.} = self.union1.EndOfPrologue -proc `UnwindInfoAddress=`*(self: var IMAGE_FUNCTION_ENTRY64, x: ULONGLONG) {.inline.} = self.union1.UnwindInfoAddress = x -proc UnwindInfoAddress*(self: IMAGE_FUNCTION_ENTRY64): ULONGLONG {.inline.} = self.union1.UnwindInfoAddress -proc UnwindInfoAddress*(self: var IMAGE_FUNCTION_ENTRY64): var ULONGLONG {.inline.} = self.union1.UnwindInfoAddress -proc `Ordinal=`*(self: var IMPORT_OBJECT_HEADER, x: WORD) {.inline.} = self.union1.Ordinal = x -proc Ordinal*(self: IMPORT_OBJECT_HEADER): WORD {.inline.} = self.union1.Ordinal -proc Ordinal*(self: var IMPORT_OBJECT_HEADER): var WORD {.inline.} = self.union1.Ordinal -proc `Hint=`*(self: var IMPORT_OBJECT_HEADER, x: WORD) {.inline.} = self.union1.Hint = x -proc Hint*(self: IMPORT_OBJECT_HEADER): WORD {.inline.} = self.union1.Hint -proc Hint*(self: var IMPORT_OBJECT_HEADER): var WORD {.inline.} = self.union1.Hint -proc `EntryPointToken=`*(self: var IMAGE_COR20_HEADER, x: DWORD) {.inline.} = self.union1.EntryPointToken = x -proc EntryPointToken*(self: IMAGE_COR20_HEADER): DWORD {.inline.} = self.union1.EntryPointToken -proc EntryPointToken*(self: var IMAGE_COR20_HEADER): var DWORD {.inline.} = self.union1.EntryPointToken -proc `EntryPointRVA=`*(self: var IMAGE_COR20_HEADER, x: DWORD) {.inline.} = self.union1.EntryPointRVA = x -proc EntryPointRVA*(self: IMAGE_COR20_HEADER): DWORD {.inline.} = self.union1.EntryPointRVA -proc EntryPointRVA*(self: var IMAGE_COR20_HEADER): var DWORD {.inline.} = self.union1.EntryPointRVA -proc `CheckSum=`*(self: var LDR_DATA_TABLE_ENTRY, x: ULONG) {.inline.} = self.union1.CheckSum = x -proc CheckSum*(self: LDR_DATA_TABLE_ENTRY): ULONG {.inline.} = self.union1.CheckSum -proc CheckSum*(self: var LDR_DATA_TABLE_ENTRY): var ULONG {.inline.} = self.union1.CheckSum -proc `Reserved6=`*(self: var LDR_DATA_TABLE_ENTRY, x: PVOID) {.inline.} = self.union1.Reserved6 = x -proc Reserved6*(self: LDR_DATA_TABLE_ENTRY): PVOID {.inline.} = self.union1.Reserved6 -proc Reserved6*(self: var LDR_DATA_TABLE_ENTRY): var PVOID {.inline.} = self.union1.Reserved6 -proc `Status=`*(self: var IO_STATUS_BLOCK, x: NTSTATUS) {.inline.} = self.union1.Status = x -proc Status*(self: IO_STATUS_BLOCK): NTSTATUS {.inline.} = self.union1.Status -proc Status*(self: var IO_STATUS_BLOCK): var NTSTATUS {.inline.} = self.union1.Status -proc `Pointer=`*(self: var IO_STATUS_BLOCK, x: PVOID) {.inline.} = self.union1.Pointer = x -proc Pointer*(self: IO_STATUS_BLOCK): PVOID {.inline.} = self.union1.Pointer -proc Pointer*(self: var IO_STATUS_BLOCK): var PVOID {.inline.} = self.union1.Pointer +proc RtlEqualMemory*( + Destination: pointer, Source: pointer, Length: Natural +): bool {.importc: "RtlEqualMemory", header: "".} + +proc RtlMoveMemory*( + Destination: pointer, Source: pointer, Length: Natural +) {.importc: "RtlMoveMemory", header: "".} + +proc RtlCopyMemory*( + Destination: pointer, Source: pointer, Length: Natural +) {.importc: "RtlCopyMemory", header: "".} + +proc RtlZeroMemory*( + Destination: pointer, Length: Natural +) {.importc: "RtlZeroMemory", header: "".} + +proc RtlSecureZeroMemory*( + Destination: pointer, Length: Natural +) {.importc: "RtlSecureZeroMemory", header: "".} + +proc RtlFillMemory*( + Destination: pointer, Length: Natural, Fill: byte +): void {.importc: "RtlFillMemory", header: "".} + +proc `UseThisFieldToCopy=`*(self: var QUAD, x: int64) {.inline.} = + self.union1.UseThisFieldToCopy = x + +proc UseThisFieldToCopy*(self: QUAD): int64 {.inline.} = + self.union1.UseThisFieldToCopy + +proc UseThisFieldToCopy*(self: var QUAD): var int64 {.inline.} = + self.union1.UseThisFieldToCopy + +proc `DoNotUseThisField=`*(self: var QUAD, x: float64) {.inline.} = + self.union1.DoNotUseThisField = x + +proc DoNotUseThisField*(self: QUAD): float64 {.inline.} = + self.union1.DoNotUseThisField + +proc DoNotUseThisField*(self: var QUAD): var float64 {.inline.} = + self.union1.DoNotUseThisField + +proc `LowPart=`*(self: var LARGE_INTEGER, x: ULONG) {.inline.} = + self.struct1.LowPart = x + +proc LowPart*(self: LARGE_INTEGER): ULONG {.inline.} = + self.struct1.LowPart + +proc LowPart*(self: var LARGE_INTEGER): var ULONG {.inline.} = + self.struct1.LowPart + +proc `HighPart=`*(self: var LARGE_INTEGER, x: LONG) {.inline.} = + self.struct1.HighPart = x + +proc HighPart*(self: LARGE_INTEGER): LONG {.inline.} = + self.struct1.HighPart + +proc HighPart*(self: var LARGE_INTEGER): var LONG {.inline.} = + self.struct1.HighPart + +proc `LowPart=`*(self: var ULARGE_INTEGER, x: ULONG) {.inline.} = + self.struct1.LowPart = x + +proc LowPart*(self: ULARGE_INTEGER): ULONG {.inline.} = + self.struct1.LowPart + +proc LowPart*(self: var ULARGE_INTEGER): var ULONG {.inline.} = + self.struct1.LowPart + +proc `HighPart=`*(self: var ULARGE_INTEGER, x: ULONG) {.inline.} = + self.struct1.HighPart = x + +proc HighPart*(self: ULARGE_INTEGER): ULONG {.inline.} = + self.struct1.HighPart + +proc HighPart*(self: var ULARGE_INTEGER): var ULONG {.inline.} = + self.struct1.HighPart + +proc `SymbolicLinkReparseBuffer=`*( + self: var REPARSE_DATA_BUFFER, + x: REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer, +) {.inline.} = + self.union1.SymbolicLinkReparseBuffer = x + +proc SymbolicLinkReparseBuffer*( + self: REPARSE_DATA_BUFFER +): REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer {.inline.} = + self.union1.SymbolicLinkReparseBuffer + +proc SymbolicLinkReparseBuffer*( + self: var REPARSE_DATA_BUFFER +): var REPARSE_DATA_BUFFER_UNION1_SymbolicLinkReparseBuffer {.inline.} = + self.union1.SymbolicLinkReparseBuffer + +proc `MountPointReparseBuffer=`*( + self: var REPARSE_DATA_BUFFER, x: REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer +) {.inline.} = + self.union1.MountPointReparseBuffer = x + +proc MountPointReparseBuffer*( + self: REPARSE_DATA_BUFFER +): REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer {.inline.} = + self.union1.MountPointReparseBuffer + +proc MountPointReparseBuffer*( + self: var REPARSE_DATA_BUFFER +): var REPARSE_DATA_BUFFER_UNION1_MountPointReparseBuffer {.inline.} = + self.union1.MountPointReparseBuffer + +proc `GenericReparseBuffer=`*( + self: var REPARSE_DATA_BUFFER, x: REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer +) {.inline.} = + self.union1.GenericReparseBuffer = x + +proc GenericReparseBuffer*( + self: REPARSE_DATA_BUFFER +): REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer {.inline.} = + self.union1.GenericReparseBuffer + +proc GenericReparseBuffer*( + self: var REPARSE_DATA_BUFFER +): var REPARSE_DATA_BUFFER_UNION1_GenericReparseBuffer {.inline.} = + self.union1.GenericReparseBuffer + +proc `FiberData=`*(self: var NT_TIB, x: PVOID) {.inline.} = + self.union1.FiberData = x + +proc FiberData*(self: NT_TIB): PVOID {.inline.} = + self.union1.FiberData + +proc FiberData*(self: var NT_TIB): var PVOID {.inline.} = + self.union1.FiberData + +proc `Version=`*(self: var NT_TIB, x: DWORD) {.inline.} = + self.union1.Version = x + +proc Version*(self: NT_TIB): DWORD {.inline.} = + self.union1.Version + +proc Version*(self: var NT_TIB): var DWORD {.inline.} = + self.union1.Version + +proc `FiberData=`*(self: var NT_TIB32, x: DWORD) {.inline.} = + self.union1.FiberData = x + +proc FiberData*(self: NT_TIB32): DWORD {.inline.} = + self.union1.FiberData + +proc FiberData*(self: var NT_TIB32): var DWORD {.inline.} = + self.union1.FiberData + +proc `Version=`*(self: var NT_TIB32, x: DWORD) {.inline.} = + self.union1.Version = x + +proc Version*(self: NT_TIB32): DWORD {.inline.} = + self.union1.Version + +proc Version*(self: var NT_TIB32): var DWORD {.inline.} = + self.union1.Version + +proc `FiberData=`*(self: var NT_TIB64, x: DWORD64) {.inline.} = + self.union1.FiberData = x + +proc FiberData*(self: NT_TIB64): DWORD64 {.inline.} = + self.union1.FiberData + +proc FiberData*(self: var NT_TIB64): var DWORD64 {.inline.} = + self.union1.FiberData + +proc `Version=`*(self: var NT_TIB64, x: DWORD) {.inline.} = + self.union1.Version = x + +proc Version*(self: NT_TIB64): DWORD {.inline.} = + self.union1.Version + +proc Version*(self: var NT_TIB64): var DWORD {.inline.} = + self.union1.Version + +proc `RatePercent=`*(self: var RATE_QUOTA_LIMIT, x: DWORD) {.inline.} = + self.struct1.RatePercent = x + +proc RatePercent*(self: RATE_QUOTA_LIMIT): DWORD {.inline.} = + self.struct1.RatePercent + +proc `Reserved0=`*(self: var RATE_QUOTA_LIMIT, x: DWORD) {.inline.} = + self.struct1.Reserved0 = x + +proc Reserved0*(self: RATE_QUOTA_LIMIT): DWORD {.inline.} = + self.struct1.Reserved0 + +proc `Flags=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = + self.union1.Flags = x + +proc Flags*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = + self.union1.Flags + +proc Flags*(self: var PROCESS_MITIGATION_ASLR_POLICY): var DWORD {.inline.} = + self.union1.Flags + +proc `EnableBottomUpRandomization=`*( + self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.EnableBottomUpRandomization = x + +proc EnableBottomUpRandomization*( + self: PROCESS_MITIGATION_ASLR_POLICY +): DWORD {.inline.} = + self.union1.struct1.EnableBottomUpRandomization + +proc `EnableForceRelocateImages=`*( + self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.EnableForceRelocateImages = x + +proc EnableForceRelocateImages*( + self: PROCESS_MITIGATION_ASLR_POLICY +): DWORD {.inline.} = + self.union1.struct1.EnableForceRelocateImages + +proc `EnableHighEntropy=`*( + self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.EnableHighEntropy = x + +proc EnableHighEntropy*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = + self.union1.struct1.EnableHighEntropy + +proc `DisallowStrippedImages=`*( + self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.DisallowStrippedImages = x + +proc DisallowStrippedImages*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = + self.union1.struct1.DisallowStrippedImages + +proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_ASLR_POLICY, x: DWORD) {.inline.} = + self.union1.struct1.ReservedFlags = x + +proc ReservedFlags*(self: PROCESS_MITIGATION_ASLR_POLICY): DWORD {.inline.} = + self.union1.struct1.ReservedFlags + +proc `Flags=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = + self.union1.Flags = x + +proc Flags*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = + self.union1.Flags + +proc Flags*(self: var PROCESS_MITIGATION_DEP_POLICY): var DWORD {.inline.} = + self.union1.Flags + +proc `Enable=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = + self.union1.struct1.Enable = x + +proc Enable*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = + self.union1.struct1.Enable + +proc `DisableAtlThunkEmulation=`*( + self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.DisableAtlThunkEmulation = x + +proc DisableAtlThunkEmulation*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = + self.union1.struct1.DisableAtlThunkEmulation + +proc `ReservedFlags=`*(self: var PROCESS_MITIGATION_DEP_POLICY, x: DWORD) {.inline.} = + self.union1.struct1.ReservedFlags = x + +proc ReservedFlags*(self: PROCESS_MITIGATION_DEP_POLICY): DWORD {.inline.} = + self.union1.struct1.ReservedFlags + +proc `Flags=`*( + self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD +) {.inline.} = + self.union1.Flags = x + +proc Flags*(self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY): DWORD {.inline.} = + self.union1.Flags + +proc Flags*( + self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY +): var DWORD {.inline.} = + self.union1.Flags + +proc `RaiseExceptionOnInvalidHandleReference=`*( + self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.RaiseExceptionOnInvalidHandleReference = x + +proc RaiseExceptionOnInvalidHandleReference*( + self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY +): DWORD {.inline.} = + self.union1.struct1.RaiseExceptionOnInvalidHandleReference + +proc `HandleExceptionsPermanentlyEnabled=`*( + self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.HandleExceptionsPermanentlyEnabled = x + +proc HandleExceptionsPermanentlyEnabled*( + self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY +): DWORD {.inline.} = + self.union1.struct1.HandleExceptionsPermanentlyEnabled + +proc `ReservedFlags=`*( + self: var PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.ReservedFlags = x + +proc ReservedFlags*( + self: PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY +): DWORD {.inline.} = + self.union1.struct1.ReservedFlags + +proc `Flags=`*( + self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, x: DWORD +) {.inline.} = + self.union1.Flags = x + +proc Flags*(self: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY): DWORD {.inline.} = + self.union1.Flags + +proc Flags*( + self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY +): var DWORD {.inline.} = + self.union1.Flags + +proc `DisallowWin32kSystemCalls=`*( + self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.DisallowWin32kSystemCalls = x + +proc DisallowWin32kSystemCalls*( + self: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY +): DWORD {.inline.} = + self.union1.struct1.DisallowWin32kSystemCalls + +proc `ReservedFlags=`*( + self: var PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.ReservedFlags = x + +proc ReservedFlags*( + self: PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY +): DWORD {.inline.} = + self.union1.struct1.ReservedFlags + +proc `Flags=`*( + self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, x: DWORD +) {.inline.} = + self.union1.Flags = x + +proc Flags*(self: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY): DWORD {.inline.} = + self.union1.Flags + +proc Flags*( + self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY +): var DWORD {.inline.} = + self.union1.Flags + +proc `DisableExtensionPoints=`*( + self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.DisableExtensionPoints = x + +proc DisableExtensionPoints*( + self: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY +): DWORD {.inline.} = + self.union1.struct1.DisableExtensionPoints + +proc `ReservedFlags=`*( + self: var PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY, x: DWORD +) {.inline.} = + self.union1.struct1.ReservedFlags = x + +proc ReservedFlags*( + self: PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY +): DWORD {.inline.} = + self.union1.struct1.ReservedFlags + +proc `CpuRate=`*( + self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, x: DWORD +) {.inline.} = + self.union1.CpuRate = x + +proc CpuRate*(self: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): DWORD {.inline.} = + self.union1.CpuRate + +proc CpuRate*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): var DWORD {.inline.} = + self.union1.CpuRate + +proc `Weight=`*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, x: DWORD) {.inline.} = + self.union1.Weight = x + +proc Weight*(self: JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): DWORD {.inline.} = + self.union1.Weight + +proc Weight*(self: var JOBOBJECT_CPU_RATE_CONTROL_INFORMATION): var DWORD {.inline.} = + self.union1.Weight + +proc `ProcessorCore=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, + x: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore, +) {.inline.} = + self.union1.ProcessorCore = x + +proc ProcessorCore*( + self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore {.inline.} = + self.union1.ProcessorCore + +proc ProcessorCore*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_ProcessorCore {.inline.} = + self.union1.ProcessorCore + +proc `NumaNode=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, + x: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode, +) {.inline.} = + self.union1.NumaNode = x + +proc NumaNode*( + self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode {.inline.} = + self.union1.NumaNode + +proc NumaNode*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_UNION1_NumaNode {.inline.} = + self.union1.NumaNode + +proc `Cache=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, x: CACHE_DESCRIPTOR +) {.inline.} = + self.union1.Cache = x + +proc Cache*(self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION): CACHE_DESCRIPTOR {.inline.} = + self.union1.Cache + +proc Cache*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): var CACHE_DESCRIPTOR {.inline.} = + self.union1.Cache + +proc `Reserved=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION, x: array[2, ULONGLONG] +) {.inline.} = + self.union1.Reserved = x + +proc Reserved*( + self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): array[2, ULONGLONG] {.inline.} = + self.union1.Reserved + +proc Reserved*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION +): var array[2, ULONGLONG] {.inline.} = + self.union1.Reserved + +proc `Processor=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, x: PROCESSOR_RELATIONSHIP +) {.inline.} = + self.union1.Processor = x + +proc Processor*( + self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX +): PROCESSOR_RELATIONSHIP {.inline.} = + self.union1.Processor + +proc Processor*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX +): var PROCESSOR_RELATIONSHIP {.inline.} = + self.union1.Processor + +proc `NumaNode=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, x: NUMA_NODE_RELATIONSHIP +) {.inline.} = + self.union1.NumaNode = x + +proc NumaNode*( + self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX +): NUMA_NODE_RELATIONSHIP {.inline.} = + self.union1.NumaNode + +proc NumaNode*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX +): var NUMA_NODE_RELATIONSHIP {.inline.} = + self.union1.NumaNode + +proc `Cache=`*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, x: CACHE_RELATIONSHIP +) {.inline.} = + self.union1.Cache = x + +proc Cache*( + self: SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX +): CACHE_RELATIONSHIP {.inline.} = + self.union1.Cache + +proc Cache*( + self: var SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX +): var CACHE_RELATIONSHIP {.inline.} = + self.union1.Cache + +proc `AllowScaling=`*(self: var PROCESSOR_IDLESTATE_POLICY, x: WORD) {.inline.} = + self.Flags.struct1.AllowScaling = x + +proc AllowScaling*(self: PROCESSOR_IDLESTATE_POLICY): WORD {.inline.} = + self.Flags.struct1.AllowScaling + +proc `Disabled=`*(self: var PROCESSOR_IDLESTATE_POLICY, x: WORD) {.inline.} = + self.Flags.struct1.Disabled = x + +proc Disabled*(self: PROCESSOR_IDLESTATE_POLICY): WORD {.inline.} = + self.Flags.struct1.Disabled + +proc `Reserved=`*(self: var PROCESSOR_IDLESTATE_POLICY, x: WORD) {.inline.} = + self.Flags.struct1.Reserved = x + +proc Reserved*(self: PROCESSOR_IDLESTATE_POLICY): WORD {.inline.} = + self.Flags.struct1.Reserved + +proc `Spare=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = + self.union1.Spare = x + +proc Spare*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = + self.union1.Spare + +proc Spare*(self: var PROCESSOR_PERFSTATE_POLICY): var BYTE {.inline.} = + self.union1.Spare + +proc `NoDomainAccounting=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = + self.union1.Flags.struct1.NoDomainAccounting = x + +proc NoDomainAccounting*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = + self.union1.Flags.struct1.NoDomainAccounting + +proc `IncreasePolicy=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = + self.union1.Flags.struct1.IncreasePolicy = x + +proc IncreasePolicy*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = + self.union1.Flags.struct1.IncreasePolicy + +proc `DecreasePolicy=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = + self.union1.Flags.struct1.DecreasePolicy = x + +proc DecreasePolicy*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = + self.union1.Flags.struct1.DecreasePolicy + +proc `Reserved=`*(self: var PROCESSOR_PERFSTATE_POLICY, x: BYTE) {.inline.} = + self.union1.Flags.struct1.Reserved = x + +proc Reserved*(self: PROCESSOR_PERFSTATE_POLICY): BYTE {.inline.} = + self.union1.Flags.struct1.Reserved + +proc `Flags=`*( + self: var PROCESSOR_PERFSTATE_POLICY, x: PROCESSOR_PERFSTATE_POLICY_UNION1_Flags +) {.inline.} = + self.union1.Flags = x + +proc Flags*( + self: PROCESSOR_PERFSTATE_POLICY +): PROCESSOR_PERFSTATE_POLICY_UNION1_Flags {.inline.} = + self.union1.Flags + +proc Flags*( + self: var PROCESSOR_PERFSTATE_POLICY +): var PROCESSOR_PERFSTATE_POLICY_UNION1_Flags {.inline.} = + self.union1.Flags + +proc `TokenDef=`*( + self: var IMAGE_AUX_SYMBOL_EX, x: IMAGE_AUX_SYMBOL_TOKEN_DEF +) {.inline.} = + self.struct4.TokenDef = x + +proc TokenDef*(self: IMAGE_AUX_SYMBOL_EX): IMAGE_AUX_SYMBOL_TOKEN_DEF {.inline.} = + self.struct4.TokenDef + +proc TokenDef*( + self: var IMAGE_AUX_SYMBOL_EX +): var IMAGE_AUX_SYMBOL_TOKEN_DEF {.inline.} = + self.struct4.TokenDef + +proc `rgbReserved=`*(self: var IMAGE_AUX_SYMBOL_EX, x: array[2, BYTE]) {.inline.} = + self.struct4.rgbReserved = x + +proc rgbReserved*(self: IMAGE_AUX_SYMBOL_EX): array[2, BYTE] {.inline.} = + self.struct4.rgbReserved + +proc rgbReserved*(self: var IMAGE_AUX_SYMBOL_EX): var array[2, BYTE] {.inline.} = + self.struct4.rgbReserved + +proc `VirtualAddress=`*(self: var IMAGE_RELOCATION, x: DWORD) {.inline.} = + self.union1.VirtualAddress = x + +proc VirtualAddress*(self: IMAGE_RELOCATION): DWORD {.inline.} = + self.union1.VirtualAddress + +proc VirtualAddress*(self: var IMAGE_RELOCATION): var DWORD {.inline.} = + self.union1.VirtualAddress + +proc `RelocCount=`*(self: var IMAGE_RELOCATION, x: DWORD) {.inline.} = + self.union1.RelocCount = x + +proc RelocCount*(self: IMAGE_RELOCATION): DWORD {.inline.} = + self.union1.RelocCount + +proc RelocCount*(self: var IMAGE_RELOCATION): var DWORD {.inline.} = + self.union1.RelocCount + +proc `Characteristics=`*(self: var IMAGE_IMPORT_DESCRIPTOR, x: DWORD) {.inline.} = + self.union1.Characteristics = x + +proc Characteristics*(self: IMAGE_IMPORT_DESCRIPTOR): DWORD {.inline.} = + self.union1.Characteristics + +proc Characteristics*(self: var IMAGE_IMPORT_DESCRIPTOR): var DWORD {.inline.} = + self.union1.Characteristics + +proc `OriginalFirstThunk=`*(self: var IMAGE_IMPORT_DESCRIPTOR, x: DWORD) {.inline.} = + self.union1.OriginalFirstThunk = x + +proc OriginalFirstThunk*(self: IMAGE_IMPORT_DESCRIPTOR): DWORD {.inline.} = + self.union1.OriginalFirstThunk + +proc OriginalFirstThunk*(self: var IMAGE_IMPORT_DESCRIPTOR): var DWORD {.inline.} = + self.union1.OriginalFirstThunk + +proc `RvaBased=`*(self: var IMAGE_DELAYLOAD_DESCRIPTOR, x: DWORD) {.inline.} = + self.Attributes.struct1.RvaBased = x + +proc RvaBased*(self: IMAGE_DELAYLOAD_DESCRIPTOR): DWORD {.inline.} = + self.Attributes.struct1.RvaBased + +proc `ReservedAttributes=`*(self: var IMAGE_DELAYLOAD_DESCRIPTOR, x: DWORD) {.inline.} = + self.Attributes.struct1.ReservedAttributes = x + +proc ReservedAttributes*(self: IMAGE_DELAYLOAD_DESCRIPTOR): DWORD {.inline.} = + self.Attributes.struct1.ReservedAttributes + +proc `NameOffset=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = + self.union1.struct1.NameOffset = x + +proc NameOffset*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = + self.union1.struct1.NameOffset + +proc `NameIsString=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = + self.union1.struct1.NameIsString = x + +proc NameIsString*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = + self.union1.struct1.NameIsString + +proc `Name=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = + self.union1.Name = x + +proc Name*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = + self.union1.Name + +proc Name*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY): var DWORD {.inline.} = + self.union1.Name + +proc `Id=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: WORD) {.inline.} = + self.union1.Id = x + +proc Id*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): WORD {.inline.} = + self.union1.Id + +proc Id*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY): var WORD {.inline.} = + self.union1.Id + +proc `OffsetToData=`*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD) {.inline.} = + self.union2.OffsetToData = x + +proc OffsetToData*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = + self.union2.OffsetToData + +proc OffsetToData*(self: var IMAGE_RESOURCE_DIRECTORY_ENTRY): var DWORD {.inline.} = + self.union2.OffsetToData + +proc `OffsetToDirectory=`*( + self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD +) {.inline.} = + self.union2.struct1.OffsetToDirectory = x + +proc OffsetToDirectory*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = + self.union2.struct1.OffsetToDirectory + +proc `DataIsDirectory=`*( + self: var IMAGE_RESOURCE_DIRECTORY_ENTRY, x: DWORD +) {.inline.} = + self.union2.struct1.DataIsDirectory = x + +proc DataIsDirectory*(self: IMAGE_RESOURCE_DIRECTORY_ENTRY): DWORD {.inline.} = + self.union2.struct1.DataIsDirectory + +proc `EndOfPrologue=`*(self: var IMAGE_FUNCTION_ENTRY64, x: ULONGLONG) {.inline.} = + self.union1.EndOfPrologue = x + +proc EndOfPrologue*(self: IMAGE_FUNCTION_ENTRY64): ULONGLONG {.inline.} = + self.union1.EndOfPrologue + +proc EndOfPrologue*(self: var IMAGE_FUNCTION_ENTRY64): var ULONGLONG {.inline.} = + self.union1.EndOfPrologue + +proc `UnwindInfoAddress=`*(self: var IMAGE_FUNCTION_ENTRY64, x: ULONGLONG) {.inline.} = + self.union1.UnwindInfoAddress = x + +proc UnwindInfoAddress*(self: IMAGE_FUNCTION_ENTRY64): ULONGLONG {.inline.} = + self.union1.UnwindInfoAddress + +proc UnwindInfoAddress*(self: var IMAGE_FUNCTION_ENTRY64): var ULONGLONG {.inline.} = + self.union1.UnwindInfoAddress + +proc `Ordinal=`*(self: var IMPORT_OBJECT_HEADER, x: WORD) {.inline.} = + self.union1.Ordinal = x + +proc Ordinal*(self: IMPORT_OBJECT_HEADER): WORD {.inline.} = + self.union1.Ordinal + +proc Ordinal*(self: var IMPORT_OBJECT_HEADER): var WORD {.inline.} = + self.union1.Ordinal + +proc `Hint=`*(self: var IMPORT_OBJECT_HEADER, x: WORD) {.inline.} = + self.union1.Hint = x + +proc Hint*(self: IMPORT_OBJECT_HEADER): WORD {.inline.} = + self.union1.Hint + +proc Hint*(self: var IMPORT_OBJECT_HEADER): var WORD {.inline.} = + self.union1.Hint + +proc `EntryPointToken=`*(self: var IMAGE_COR20_HEADER, x: DWORD) {.inline.} = + self.union1.EntryPointToken = x + +proc EntryPointToken*(self: IMAGE_COR20_HEADER): DWORD {.inline.} = + self.union1.EntryPointToken + +proc EntryPointToken*(self: var IMAGE_COR20_HEADER): var DWORD {.inline.} = + self.union1.EntryPointToken + +proc `EntryPointRVA=`*(self: var IMAGE_COR20_HEADER, x: DWORD) {.inline.} = + self.union1.EntryPointRVA = x + +proc EntryPointRVA*(self: IMAGE_COR20_HEADER): DWORD {.inline.} = + self.union1.EntryPointRVA + +proc EntryPointRVA*(self: var IMAGE_COR20_HEADER): var DWORD {.inline.} = + self.union1.EntryPointRVA + +proc `CheckSum=`*(self: var LDR_DATA_TABLE_ENTRY, x: ULONG) {.inline.} = + self.union1.CheckSum = x + +proc CheckSum*(self: LDR_DATA_TABLE_ENTRY): ULONG {.inline.} = + self.union1.CheckSum + +proc CheckSum*(self: var LDR_DATA_TABLE_ENTRY): var ULONG {.inline.} = + self.union1.CheckSum + +proc `Reserved6=`*(self: var LDR_DATA_TABLE_ENTRY, x: PVOID) {.inline.} = + self.union1.Reserved6 = x + +proc Reserved6*(self: LDR_DATA_TABLE_ENTRY): PVOID {.inline.} = + self.union1.Reserved6 + +proc Reserved6*(self: var LDR_DATA_TABLE_ENTRY): var PVOID {.inline.} = + self.union1.Reserved6 + +proc `Status=`*(self: var IO_STATUS_BLOCK, x: NTSTATUS) {.inline.} = + self.union1.Status = x + +proc Status*(self: IO_STATUS_BLOCK): NTSTATUS {.inline.} = + self.union1.Status + +proc Status*(self: var IO_STATUS_BLOCK): var NTSTATUS {.inline.} = + self.union1.Status + +proc `Pointer=`*(self: var IO_STATUS_BLOCK, x: PVOID) {.inline.} = + self.union1.Pointer = x + +proc Pointer*(self: IO_STATUS_BLOCK): PVOID {.inline.} = + self.union1.Pointer + +proc Pointer*(self: var IO_STATUS_BLOCK): var PVOID {.inline.} = + self.union1.Pointer + when winimUnicode: type PCZZTSTR* = PCZZWSTR @@ -9586,6 +11241,7 @@ OSVERSIONINFOEX* = OSVERSIONINFOEXW POSVERSIONINFOEX* = POSVERSIONINFOEXW LPOSVERSIONINFOEX* = LPOSVERSIONINFOEXW + when winimAnsi: type PCZZTSTR* = PCZZSTR @@ -9600,6 +11256,7 @@ OSVERSIONINFOEX* = OSVERSIONINFOEXA POSVERSIONINFOEX* = POSVERSIONINFOEXA LPOSVERSIONINFOEX* = LPOSVERSIONINFOEXA + when winimCpu64: type PXSAVE_FORMAT* = ptr XSAVE_FORMAT @@ -9609,16 +11266,17 @@ Reserved1*: DWORD Area*: PXSAVE_AREA Buffer*: PVOID + when winimCpu32: - type - XSTATE_CONTEXT* {.pure.} = object - Mask*: DWORD64 - Length*: DWORD - Reserved1*: DWORD - Area*: PXSAVE_AREA - Reserved2*: DWORD - Buffer*: PVOID - Reserved3*: DWORD + type XSTATE_CONTEXT* {.pure.} = object + Mask*: DWORD64 + Length*: DWORD + Reserved1*: DWORD + Area*: PXSAVE_AREA + Reserved2*: DWORD + Buffer*: PVOID + Reserved3*: DWORD + when winimCpu64: type PXSTATE_CONTEXT* = ptr XSTATE_CONTEXT @@ -9627,13 +11285,15 @@ BeginAddress*: DWORD EndAddress*: DWORD UnwindData*: DWORD + PRUNTIME_FUNCTION* = ptr RUNTIME_FUNCTION UNWIND_HISTORY_TABLE_ENTRY* {.pure.} = object ImageBase*: ULONG64 FunctionEntry*: PRUNTIME_FUNCTION + PUNWIND_HISTORY_TABLE_ENTRY* = ptr UNWIND_HISTORY_TABLE_ENTRY - const - UNWIND_HISTORY_TABLE_SIZE* = 12 + + const UNWIND_HISTORY_TABLE_SIZE* = 12 type UNWIND_HISTORY_TABLE* {.pure.} = object Count*: ULONG @@ -9641,6 +11301,7 @@ LowAddress*: ULONG64 HighAddress*: ULONG64 Entry*: array[UNWIND_HISTORY_TABLE_SIZE, UNWIND_HISTORY_TABLE_ENTRY] + PUNWIND_HISTORY_TABLE* = ptr UNWIND_HISTORY_TABLE DISPATCHER_CONTEXT* {.pure.} = object ControlPc*: ULONG64 @@ -9654,10 +11315,12 @@ HistoryTable*: PUNWIND_HISTORY_TABLE ScopeIndex*: ULONG Fill0*: ULONG + PDISPATCHER_CONTEXT* = ptr DISPATCHER_CONTEXT KNONVOLATILE_CONTEXT_POINTERS* {.pure.} = object FloatingContext*: array[16, PM128A] IntegerContext*: array[16, PULONG64] + PKNONVOLATILE_CONTEXT_POINTERS* = ptr KNONVOLATILE_CONTEXT_POINTERS IMAGE_OPTIONAL_HEADER* = IMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER* = PIMAGE_OPTIONAL_HEADER64 @@ -9668,6 +11331,7 @@ PIMAGE_TLS_DIRECTORY* = PIMAGE_TLS_DIRECTORY64 IMAGE_LOAD_CONFIG_DIRECTORY* = IMAGE_LOAD_CONFIG_DIRECTORY64 PIMAGE_LOAD_CONFIG_DIRECTORY* = PIMAGE_LOAD_CONFIG_DIRECTORY64 + const ADDRESS_TAG_BIT* = 0x40000000000 EXCEPTION_READ_FAULT* = 0 @@ -9686,15 +11350,16 @@ CONTEXT_INTEGER* = CONTEXT_i386 or 0x00000002 CONTEXT_FLOATING_POINT* = CONTEXT_i386 or 0x00000008 when winimCpu64: - const - CONTEXT_FULL* = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_FLOATING_POINT + const CONTEXT_FULL* = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_FLOATING_POINT when winimCpu32: const CONTEXT_SEGMENTS* = CONTEXT_i386 or 0x00000004 CONTEXT_DEBUG_REGISTERS* = CONTEXT_i386 or 0x00000010 when winimCpu64: const - CONTEXT_ALL* = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or CONTEXT_DEBUG_REGISTERS + CONTEXT_ALL* = + CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or + CONTEXT_DEBUG_REGISTERS CONTEXT_EXCEPTION_ACTIVE* = 0x8000000 CONTEXT_SERVICE_ACTIVE* = 0x10000000 CONTEXT_EXCEPTION_REQUEST* = 0x40000000 @@ -9703,7 +11368,8 @@ INITIAL_FPCSR* = 0x027f LEGACY_SAVE_AREA_LENGTH* = sizeof(XMM_SAVE_AREA32) RUNTIME_FUNCTION_INDIRECT* = 0x1 - OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME* = "OutOfProcessFunctionTableCallback" + OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME* = + "OutOfProcessFunctionTableCallback" UNW_FLAG_NHANDLER* = 0x0 UNW_FLAG_EHANDLER* = 0x1 UNW_FLAG_UHANDLER* = 0x2 @@ -9715,86 +11381,281 @@ IMAGE_NT_OPTIONAL_HDR_MAGIC* = IMAGE_NT_OPTIONAL_HDR64_MAGIC IMAGE_ORDINAL_FLAG* = IMAGE_ORDINAL_FLAG64 type - PGET_RUNTIME_FUNCTION_CALLBACK* = proc (ControlPc: DWORD64, Context: PVOID): PRUNTIME_FUNCTION {.stdcall.} - POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK* = proc (Process: HANDLE, TableAddress: PVOID, Entries: PDWORD, Functions: ptr PRUNTIME_FUNCTION): DWORD {.stdcall.} - proc RtlAddGrowableFunctionTable*(DynamicTable: ptr PVOID, FunctionTable: PRUNTIME_FUNCTION, EntryCount: DWORD, MaximumEntryCount: DWORD, RangeBase: ULONG_PTR, RangeEnd: ULONG_PTR): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} - proc RtlGrowFunctionTable*(DynamicTable: PVOID, NewEntryCount: DWORD): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} - proc RtlDeleteGrowableFunctionTable*(DynamicTable: PVOID): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} - proc RtlAddFunctionTable*(FunctionTable: PRUNTIME_FUNCTION, EntryCount: DWORD, BaseAddress: DWORD64): BOOLEAN {.winapi, cdecl, dynlib: "ntdll", importc.} - proc RtlDeleteFunctionTable*(FunctionTable: PRUNTIME_FUNCTION): BOOLEAN {.winapi, cdecl, dynlib: "ntdll", importc.} - proc RtlInstallFunctionTableCallback*(TableIdentifier: DWORD64, BaseAddress: DWORD64, Length: DWORD, Callback: PGET_RUNTIME_FUNCTION_CALLBACK, Context: PVOID, OutOfProcessCallbackDll: PCWSTR): BOOLEAN {.winapi, cdecl, dynlib: "ntdll", importc.} - proc RtlRestoreContext*(ContextRecord: PCONTEXT, ExceptionRecord: ptr EXCEPTION_RECORD): VOID {.winapi, cdecl, dynlib: "ntdll", importc.} - proc RtlVirtualUnwind*(HandlerType: DWORD, ImageBase: DWORD64, ControlPc: DWORD64, FunctionEntry: PRUNTIME_FUNCTION, ContextRecord: PCONTEXT, HandlerData: ptr PVOID, EstablisherFrame: PDWORD64, ContextPointers: PKNONVOLATILE_CONTEXT_POINTERS): PEXCEPTION_ROUTINE {.winapi, stdcall, dynlib: "ntdll", importc.} - proc RtlLookupFunctionEntry*(ControlPc: DWORD64, ImageBase: PDWORD64, HistoryTable: PUNWIND_HISTORY_TABLE): PRUNTIME_FUNCTION {.winapi, stdcall, dynlib: "ntdll", importc.} - proc RtlUnwindEx*(TargetFrame: PVOID, TargetIp: PVOID, ExceptionRecord: PEXCEPTION_RECORD, ReturnValue: PVOID, ContextRecord: PCONTEXT, HistoryTable: PUNWIND_HISTORY_TABLE): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} - template IMAGE_ORDINAL*(Ordinal: untyped): int64 = Ordinal.int64 and 0xffff'i64 - template IMAGE_SNAP_BY_ORDINAL*(Ordinal: untyped): bool = (Ordinal and IMAGE_ORDINAL_FLAG64) != 0 - proc `FltSave=`*(self: var CONTEXT, x: XMM_SAVE_AREA32) {.inline.} = self.union1.FltSave = x - proc FltSave*(self: CONTEXT): XMM_SAVE_AREA32 {.inline.} = self.union1.FltSave - proc FltSave*(self: var CONTEXT): var XMM_SAVE_AREA32 {.inline.} = self.union1.FltSave - proc `FloatSave=`*(self: var CONTEXT, x: XMM_SAVE_AREA32) {.inline.} = self.union1.FloatSave = x - proc FloatSave*(self: CONTEXT): XMM_SAVE_AREA32 {.inline.} = self.union1.FloatSave - proc FloatSave*(self: var CONTEXT): var XMM_SAVE_AREA32 {.inline.} = self.union1.FloatSave - proc `Header=`*(self: var CONTEXT, x: array[2, M128A]) {.inline.} = self.union1.struct1.Header = x - proc Header*(self: CONTEXT): array[2, M128A] {.inline.} = self.union1.struct1.Header - proc Header*(self: var CONTEXT): var array[2, M128A] {.inline.} = self.union1.struct1.Header - proc `Legacy=`*(self: var CONTEXT, x: array[8, M128A]) {.inline.} = self.union1.struct1.Legacy = x - proc Legacy*(self: CONTEXT): array[8, M128A] {.inline.} = self.union1.struct1.Legacy - proc Legacy*(self: var CONTEXT): var array[8, M128A] {.inline.} = self.union1.struct1.Legacy - proc `Xmm0=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm0 = x - proc Xmm0*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm0 - proc Xmm0*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm0 - proc `Xmm1=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm1 = x - proc Xmm1*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm1 - proc Xmm1*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm1 - proc `Xmm2=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm2 = x - proc Xmm2*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm2 - proc Xmm2*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm2 - proc `Xmm3=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm3 = x - proc Xmm3*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm3 - proc Xmm3*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm3 - proc `Xmm4=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm4 = x - proc Xmm4*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm4 - proc Xmm4*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm4 - proc `Xmm5=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm5 = x - proc Xmm5*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm5 - proc Xmm5*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm5 - proc `Xmm6=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm6 = x - proc Xmm6*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm6 - proc Xmm6*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm6 - proc `Xmm7=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm7 = x - proc Xmm7*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm7 - proc Xmm7*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm7 - proc `Xmm8=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm8 = x - proc Xmm8*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm8 - proc Xmm8*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm8 - proc `Xmm9=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm9 = x - proc Xmm9*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm9 - proc Xmm9*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm9 - proc `Xmm10=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm10 = x - proc Xmm10*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm10 - proc Xmm10*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm10 - proc `Xmm11=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm11 = x - proc Xmm11*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm11 - proc Xmm11*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm11 - proc `Xmm12=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm12 = x - proc Xmm12*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm12 - proc Xmm12*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm12 - proc `Xmm13=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm13 = x - proc Xmm13*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm13 - proc Xmm13*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm13 - proc `Xmm14=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm14 = x - proc Xmm14*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm14 - proc Xmm14*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm14 - proc `Xmm15=`*(self: var CONTEXT, x: M128A) {.inline.} = self.union1.struct1.Xmm15 = x - proc Xmm15*(self: CONTEXT): M128A {.inline.} = self.union1.struct1.Xmm15 - proc Xmm15*(self: var CONTEXT): var M128A {.inline.} = self.union1.struct1.Xmm15 - proc `Alignment=`*(self: var SLIST_HEADER, x: ULONGLONG) {.inline.} = self.struct1.Alignment = x - proc Alignment*(self: SLIST_HEADER): ULONGLONG {.inline.} = self.struct1.Alignment - proc Alignment*(self: var SLIST_HEADER): var ULONGLONG {.inline.} = self.struct1.Alignment - proc `Region=`*(self: var SLIST_HEADER, x: ULONGLONG) {.inline.} = self.struct1.Region = x - proc Region*(self: SLIST_HEADER): ULONGLONG {.inline.} = self.struct1.Region - proc Region*(self: var SLIST_HEADER): var ULONGLONG {.inline.} = self.struct1.Region + PGET_RUNTIME_FUNCTION_CALLBACK* = + proc(ControlPc: DWORD64, Context: PVOID): PRUNTIME_FUNCTION {.stdcall.} + POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK* = proc( + Process: HANDLE, + TableAddress: PVOID, + Entries: PDWORD, + Functions: ptr PRUNTIME_FUNCTION, + ): DWORD {.stdcall.} + + proc RtlAddGrowableFunctionTable*( + DynamicTable: ptr PVOID, + FunctionTable: PRUNTIME_FUNCTION, + EntryCount: DWORD, + MaximumEntryCount: DWORD, + RangeBase: ULONG_PTR, + RangeEnd: ULONG_PTR, + ): DWORD {.winapi, stdcall, dynlib: "ntdll", importc.} + + proc RtlGrowFunctionTable*( + DynamicTable: PVOID, NewEntryCount: DWORD + ): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + + proc RtlDeleteGrowableFunctionTable*( + DynamicTable: PVOID + ): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + + proc RtlAddFunctionTable*( + FunctionTable: PRUNTIME_FUNCTION, EntryCount: DWORD, BaseAddress: DWORD64 + ): BOOLEAN {.winapi, cdecl, dynlib: "ntdll", importc.} + + proc RtlDeleteFunctionTable*( + FunctionTable: PRUNTIME_FUNCTION + ): BOOLEAN {.winapi, cdecl, dynlib: "ntdll", importc.} + + proc RtlInstallFunctionTableCallback*( + TableIdentifier: DWORD64, + BaseAddress: DWORD64, + Length: DWORD, + Callback: PGET_RUNTIME_FUNCTION_CALLBACK, + Context: PVOID, + OutOfProcessCallbackDll: PCWSTR, + ): BOOLEAN {.winapi, cdecl, dynlib: "ntdll", importc.} + + proc RtlRestoreContext*( + ContextRecord: PCONTEXT, ExceptionRecord: ptr EXCEPTION_RECORD + ): VOID {.winapi, cdecl, dynlib: "ntdll", importc.} + + proc RtlVirtualUnwind*( + HandlerType: DWORD, + ImageBase: DWORD64, + ControlPc: DWORD64, + FunctionEntry: PRUNTIME_FUNCTION, + ContextRecord: PCONTEXT, + HandlerData: ptr PVOID, + EstablisherFrame: PDWORD64, + ContextPointers: PKNONVOLATILE_CONTEXT_POINTERS, + ): PEXCEPTION_ROUTINE {.winapi, stdcall, dynlib: "ntdll", importc.} + + proc RtlLookupFunctionEntry*( + ControlPc: DWORD64, ImageBase: PDWORD64, HistoryTable: PUNWIND_HISTORY_TABLE + ): PRUNTIME_FUNCTION {.winapi, stdcall, dynlib: "ntdll", importc.} + + proc RtlUnwindEx*( + TargetFrame: PVOID, + TargetIp: PVOID, + ExceptionRecord: PEXCEPTION_RECORD, + ReturnValue: PVOID, + ContextRecord: PCONTEXT, + HistoryTable: PUNWIND_HISTORY_TABLE, + ): VOID {.winapi, stdcall, dynlib: "ntdll", importc.} + + template IMAGE_ORDINAL*(Ordinal: untyped): int64 = + Ordinal.int64 and 0xffff'i64 + + template IMAGE_SNAP_BY_ORDINAL*(Ordinal: untyped): bool = + (Ordinal and IMAGE_ORDINAL_FLAG64) != 0 + + proc `FltSave=`*(self: var CONTEXT, x: XMM_SAVE_AREA32) {.inline.} = + self.union1.FltSave = x + + proc FltSave*(self: CONTEXT): XMM_SAVE_AREA32 {.inline.} = + self.union1.FltSave + + proc FltSave*(self: var CONTEXT): var XMM_SAVE_AREA32 {.inline.} = + self.union1.FltSave + + proc `FloatSave=`*(self: var CONTEXT, x: XMM_SAVE_AREA32) {.inline.} = + self.union1.FloatSave = x + + proc FloatSave*(self: CONTEXT): XMM_SAVE_AREA32 {.inline.} = + self.union1.FloatSave + + proc FloatSave*(self: var CONTEXT): var XMM_SAVE_AREA32 {.inline.} = + self.union1.FloatSave + + proc `Header=`*(self: var CONTEXT, x: array[2, M128A]) {.inline.} = + self.union1.struct1.Header = x + + proc Header*(self: CONTEXT): array[2, M128A] {.inline.} = + self.union1.struct1.Header + + proc Header*(self: var CONTEXT): var array[2, M128A] {.inline.} = + self.union1.struct1.Header + + proc `Legacy=`*(self: var CONTEXT, x: array[8, M128A]) {.inline.} = + self.union1.struct1.Legacy = x + + proc Legacy*(self: CONTEXT): array[8, M128A] {.inline.} = + self.union1.struct1.Legacy + + proc Legacy*(self: var CONTEXT): var array[8, M128A] {.inline.} = + self.union1.struct1.Legacy + + proc `Xmm0=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm0 = x + + proc Xmm0*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm0 + + proc Xmm0*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm0 + + proc `Xmm1=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm1 = x + + proc Xmm1*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm1 + + proc Xmm1*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm1 + + proc `Xmm2=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm2 = x + + proc Xmm2*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm2 + + proc Xmm2*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm2 + + proc `Xmm3=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm3 = x + + proc Xmm3*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm3 + + proc Xmm3*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm3 + + proc `Xmm4=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm4 = x + + proc Xmm4*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm4 + + proc Xmm4*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm4 + + proc `Xmm5=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm5 = x + + proc Xmm5*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm5 + + proc Xmm5*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm5 + + proc `Xmm6=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm6 = x + + proc Xmm6*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm6 + + proc Xmm6*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm6 + + proc `Xmm7=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm7 = x + + proc Xmm7*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm7 + + proc Xmm7*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm7 + + proc `Xmm8=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm8 = x + + proc Xmm8*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm8 + + proc Xmm8*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm8 + + proc `Xmm9=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm9 = x + + proc Xmm9*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm9 + + proc Xmm9*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm9 + + proc `Xmm10=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm10 = x + + proc Xmm10*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm10 + + proc Xmm10*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm10 + + proc `Xmm11=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm11 = x + + proc Xmm11*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm11 + + proc Xmm11*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm11 + + proc `Xmm12=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm12 = x + + proc Xmm12*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm12 + + proc Xmm12*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm12 + + proc `Xmm13=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm13 = x + + proc Xmm13*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm13 + + proc Xmm13*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm13 + + proc `Xmm14=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm14 = x + + proc Xmm14*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm14 + + proc Xmm14*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm14 + + proc `Xmm15=`*(self: var CONTEXT, x: M128A) {.inline.} = + self.union1.struct1.Xmm15 = x + + proc Xmm15*(self: CONTEXT): M128A {.inline.} = + self.union1.struct1.Xmm15 + + proc Xmm15*(self: var CONTEXT): var M128A {.inline.} = + self.union1.struct1.Xmm15 + + proc `Alignment=`*(self: var SLIST_HEADER, x: ULONGLONG) {.inline.} = + self.struct1.Alignment = x + + proc Alignment*(self: SLIST_HEADER): ULONGLONG {.inline.} = + self.struct1.Alignment + + proc Alignment*(self: var SLIST_HEADER): var ULONGLONG {.inline.} = + self.struct1.Alignment + + proc `Region=`*(self: var SLIST_HEADER, x: ULONGLONG) {.inline.} = + self.struct1.Region = x + + proc Region*(self: SLIST_HEADER): ULONGLONG {.inline.} = + self.struct1.Region + + proc Region*(self: var SLIST_HEADER): var ULONGLONG {.inline.} = + self.struct1.Region + when winimCpu32: type HALF_PTR* = int16 @@ -9811,6 +11672,7 @@ PIMAGE_TLS_DIRECTORY* = PIMAGE_TLS_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY* = IMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY* = PIMAGE_LOAD_CONFIG_DIRECTORY32 + const ADDRESS_TAG_BIT* = 0x80000000'i32 pcTeb* = 0x18 @@ -9820,18 +11682,41 @@ CONTEXT_i486* = 0x00010000 CONTEXT_EXTENDED_REGISTERS* = CONTEXT_i386 or 0x00000020 CONTEXT_FULL* = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS - CONTEXT_ALL* = CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or CONTEXT_DEBUG_REGISTERS or CONTEXT_EXTENDED_REGISTERS + CONTEXT_ALL* = + CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or + CONTEXT_DEBUG_REGISTERS or CONTEXT_EXTENDED_REGISTERS IMAGE_SIZEOF_NT_OPTIONAL_HEADER* = IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_NT_OPTIONAL_HDR_MAGIC* = IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_ORDINAL_FLAG* = IMAGE_ORDINAL_FLAG32 - template IMAGE_ORDINAL*(Ordinal: untyped): int32 = Ordinal.int32 and 0xffff'i32 - template IMAGE_SNAP_BY_ORDINAL*(Ordinal: untyped): bool = (Ordinal and IMAGE_ORDINAL_FLAG32) != 0 - proc `Next=`*(self: var SLIST_HEADER, x: SLIST_ENTRY) {.inline.} = self.struct1.Next = x - proc Next*(self: SLIST_HEADER): SLIST_ENTRY {.inline.} = self.struct1.Next - proc Next*(self: var SLIST_HEADER): var SLIST_ENTRY {.inline.} = self.struct1.Next - proc `Depth=`*(self: var SLIST_HEADER, x: WORD) {.inline.} = self.struct1.Depth = x - proc Depth*(self: SLIST_HEADER): WORD {.inline.} = self.struct1.Depth - proc Depth*(self: var SLIST_HEADER): var WORD {.inline.} = self.struct1.Depth - proc `Sequence=`*(self: var SLIST_HEADER, x: WORD) {.inline.} = self.struct1.Sequence = x - proc Sequence*(self: SLIST_HEADER): WORD {.inline.} = self.struct1.Sequence - proc Sequence*(self: var SLIST_HEADER): var WORD {.inline.} = self.struct1.Sequence + template IMAGE_ORDINAL*(Ordinal: untyped): int32 = + Ordinal.int32 and 0xffff'i32 + + template IMAGE_SNAP_BY_ORDINAL*(Ordinal: untyped): bool = + (Ordinal and IMAGE_ORDINAL_FLAG32) != 0 + + proc `Next=`*(self: var SLIST_HEADER, x: SLIST_ENTRY) {.inline.} = + self.struct1.Next = x + + proc Next*(self: SLIST_HEADER): SLIST_ENTRY {.inline.} = + self.struct1.Next + + proc Next*(self: var SLIST_HEADER): var SLIST_ENTRY {.inline.} = + self.struct1.Next + + proc `Depth=`*(self: var SLIST_HEADER, x: WORD) {.inline.} = + self.struct1.Depth = x + + proc Depth*(self: SLIST_HEADER): WORD {.inline.} = + self.struct1.Depth + + proc Depth*(self: var SLIST_HEADER): var WORD {.inline.} = + self.struct1.Depth + + proc `Sequence=`*(self: var SLIST_HEADER, x: WORD) {.inline.} = + self.struct1.Sequence = x + + proc Sequence*(self: SLIST_HEADER): WORD {.inline.} = + self.struct1.Sequence + + proc Sequence*(self: var SLIST_HEADER): var WORD {.inline.} = + self.struct1.Sequence diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/windns.nim --- a/semicongine/thirdparty/winim/winim/inc/windns.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/windns.nim Thu Aug 22 18:32:21 2024 +0700 @@ -21,6 +21,7 @@ IP4_ARRAY* {.pure.} = object AddrCount*: DWORD AddrArray*: array[1, IP4_ADDRESS] + PIP4_ARRAY* = ptr IP4_ARRAY IP6_ADDRESS* {.pure, union.} = object IP6Qword*: array[2, QWORD] @@ -28,40 +29,47 @@ IP6Word*: array[8, WORD] IP6Byte*: array[16, BYTE] In6*: IN6_ADDR + PIP6_ADDRESS* = ptr IP6_ADDRESS DNS_HEADER* {.pure.} = object Xid*: WORD - RecursionDesired* {.bitsize:1.}: BYTE - Truncation* {.bitsize:1.}: BYTE - Authoritative* {.bitsize:1.}: BYTE - Opcode* {.bitsize:4.}: BYTE - IsResponse* {.bitsize:1.}: BYTE - ResponseCode* {.bitsize:4.}: BYTE - Reserved* {.bitsize:3.}: BYTE - RecursionAvailable* {.bitsize:1.}: BYTE + RecursionDesired* {.bitsize: 1.}: BYTE + Truncation* {.bitsize: 1.}: BYTE + Authoritative* {.bitsize: 1.}: BYTE + Opcode* {.bitsize: 4.}: BYTE + IsResponse* {.bitsize: 1.}: BYTE + ResponseCode* {.bitsize: 4.}: BYTE + Reserved* {.bitsize: 3.}: BYTE + RecursionAvailable* {.bitsize: 1.}: BYTE QuestionCount*: WORD AnswerCount*: WORD NameServerCount*: WORD AdditionalCount*: WORD + PDNS_HEADER* = ptr DNS_HEADER DNS_WIRE_QUESTION* {.pure.} = object QuestionType*: WORD QuestionClass*: WORD + PDNS_WIRE_QUESTION* = ptr DNS_WIRE_QUESTION DNS_WIRE_RECORD* {.pure, packed.} = object RecordType*: WORD RecordClass*: WORD TimeToLive*: DWORD DataLength*: WORD + PDNS_WIRE_RECORD* = ptr DNS_WIRE_RECORD DNS_A_DATA* {.pure.} = object IpAddress*: IP4_ADDRESS + PDNS_A_DATA* = ptr DNS_A_DATA DNS_PTR_DATAW* {.pure.} = object pNameHost*: PWSTR + PDNS_PTR_DATAW* = ptr DNS_PTR_DATAW DNS_PTR_DATAA* {.pure.} = object pNameHost*: PSTR + PDNS_PTR_DATAA* = ptr DNS_PTR_DATAA DNS_SOA_DATAW* {.pure.} = object pNamePrimaryServer*: PWSTR @@ -71,6 +79,7 @@ dwRetry*: DWORD dwExpire*: DWORD dwDefaultTtl*: DWORD + PDNS_SOA_DATAW* = ptr DNS_SOA_DATAW DNS_SOA_DATAA* {.pure.} = object pNamePrimaryServer*: PSTR @@ -80,44 +89,54 @@ dwRetry*: DWORD dwExpire*: DWORD dwDefaultTtl*: DWORD + PDNS_SOA_DATAA* = ptr DNS_SOA_DATAA DNS_MINFO_DATAW* {.pure.} = object pNameMailbox*: PWSTR pNameErrorsMailbox*: PWSTR + PDNS_MINFO_DATAW* = ptr DNS_MINFO_DATAW DNS_MINFO_DATAA* {.pure.} = object pNameMailbox*: PSTR pNameErrorsMailbox*: PSTR + PDNS_MINFO_DATAA* = ptr DNS_MINFO_DATAA DNS_MX_DATAW* {.pure.} = object pNameExchange*: PWSTR wPreference*: WORD Pad*: WORD + PDNS_MX_DATAW* = ptr DNS_MX_DATAW DNS_MX_DATAA* {.pure.} = object pNameExchange*: PSTR wPreference*: WORD Pad*: WORD + PDNS_MX_DATAA* = ptr DNS_MX_DATAA DNS_TXT_DATAW* {.pure.} = object dwStringCount*: DWORD pStringArray*: array[1, PWSTR] + PDNS_TXT_DATAW* = ptr DNS_TXT_DATAW DNS_TXT_DATAA* {.pure.} = object dwStringCount*: DWORD pStringArray*: array[1, PSTR] + PDNS_TXT_DATAA* = ptr DNS_TXT_DATAA DNS_NULL_DATA* {.pure.} = object dwByteCount*: DWORD Data*: array[1, BYTE] + PDNS_NULL_DATA* = ptr DNS_NULL_DATA DNS_WKS_DATA* {.pure.} = object IpAddress*: IP4_ADDRESS chProtocol*: UCHAR BitMask*: array[1, BYTE] + PDNS_WKS_DATA* = ptr DNS_WKS_DATA DNS_AAAA_DATA* {.pure.} = object Ip6Address*: IP6_ADDRESS + PDNS_AAAA_DATA* = ptr DNS_AAAA_DATA DNS_SIG_DATAW* {.pure.} = object pNameSigner*: PWSTR @@ -130,6 +149,7 @@ wKeyTag*: WORD Pad*: WORD Signature*: array[1, BYTE] + PDNS_SIG_DATAW* = ptr DNS_SIG_DATAW DNS_SIG_DATAA* {.pure.} = object pNameSigner*: PSTR @@ -142,12 +162,14 @@ wKeyTag*: WORD Pad*: WORD Signature*: array[1, BYTE] + PDNS_SIG_DATAA* = ptr DNS_SIG_DATAA DNS_KEY_DATA* {.pure.} = object wFlags*: WORD chProtocol*: BYTE chAlgorithm*: BYTE Key*: array[1, BYTE] + PDNS_KEY_DATA* = ptr DNS_KEY_DATA DNS_LOC_DATA* {.pure.} = object wVersion*: WORD @@ -157,16 +179,19 @@ dwLatitude*: DWORD dwLongitude*: DWORD dwAltitude*: DWORD + PDNS_LOC_DATA* = ptr DNS_LOC_DATA DNS_NXT_DATAW* {.pure.} = object pNameNext*: PWSTR wNumTypes*: WORD wTypes*: array[1, WORD] + PDNS_NXT_DATAW* = ptr DNS_NXT_DATAW DNS_NXT_DATAA* {.pure.} = object pNameNext*: PSTR wNumTypes*: WORD wTypes*: array[1, WORD] + PDNS_NXT_DATAA* = ptr DNS_NXT_DATAA DNS_SRV_DATAW* {.pure.} = object pNameTarget*: PWSTR @@ -174,6 +199,7 @@ wWeight*: WORD wPort*: WORD Pad*: WORD + PDNS_SRV_DATAW* = ptr DNS_SRV_DATAW DNS_SRV_DATAA* {.pure.} = object pNameTarget*: PSTR @@ -181,13 +207,15 @@ wWeight*: WORD wPort*: WORD Pad*: WORD + PDNS_SRV_DATAA* = ptr DNS_SRV_DATAA -const - DNS_ATMA_MAX_ADDR_LENGTH* = 20 + +const DNS_ATMA_MAX_ADDR_LENGTH* = 20 type DNS_ATMA_DATA* {.pure.} = object AddressType*: BYTE - Address*: array[DNS_ATMA_MAX_ADDR_LENGTH , BYTE] + Address*: array[DNS_ATMA_MAX_ADDR_LENGTH, BYTE] + PDNS_ATMA_DATA* = ptr DNS_ATMA_DATA DNS_TKEY_DATAW* {.pure.} = object pNameAlgorithm*: PWSTR @@ -202,6 +230,7 @@ wOtherLength*: WORD cAlgNameLength*: UCHAR bPacketPointers*: WINBOOL + PDNS_TKEY_DATAW* = ptr DNS_TKEY_DATAW DNS_TKEY_DATAA* {.pure.} = object pNameAlgorithm*: PSTR @@ -216,6 +245,7 @@ wOtherLength*: WORD cAlgNameLength*: UCHAR bPacketPointers*: WINBOOL + PDNS_TKEY_DATAA* = ptr DNS_TKEY_DATAA DNS_TSIG_DATAW* {.pure.} = object pNameAlgorithm*: PWSTR @@ -230,6 +260,7 @@ wOtherLength*: WORD cAlgNameLength*: UCHAR bPacketPointers*: WINBOOL + PDNS_TSIG_DATAW* = ptr DNS_TSIG_DATAW DNS_TSIG_DATAA* {.pure.} = object pNameAlgorithm*: PSTR @@ -244,6 +275,7 @@ wOtherLength*: WORD cAlgNameLength*: UCHAR bPacketPointers*: WINBOOL + PDNS_TSIG_DATAA* = ptr DNS_TSIG_DATAA DNS_WINS_DATA* {.pure.} = object dwMappingFlag*: DWORD @@ -251,28 +283,33 @@ dwCacheTimeout*: DWORD cWinsServerCount*: DWORD WinsServers*: array[1, IP4_ADDRESS] + PDNS_WINS_DATA* = ptr DNS_WINS_DATA DNS_WINSR_DATAW* {.pure.} = object dwMappingFlag*: DWORD dwLookupTimeout*: DWORD dwCacheTimeout*: DWORD pNameResultDomain*: PWSTR + PDNS_WINSR_DATAW* = ptr DNS_WINSR_DATAW DNS_WINSR_DATAA* {.pure.} = object dwMappingFlag*: DWORD dwLookupTimeout*: DWORD dwCacheTimeout*: DWORD pNameResultDomain*: PSTR + PDNS_WINSR_DATAA* = ptr DNS_WINSR_DATAA DNS_RECORD_FLAGS* {.pure.} = object - Section* {.bitsize:2.}: DWORD - Delete* {.bitsize:1.}: DWORD - CharSet* {.bitsize:2.}: DWORD - Unused* {.bitsize:3.}: DWORD - Reserved* {.bitsize:24.}: DWORD + Section* {.bitsize: 2.}: DWORD + Delete* {.bitsize: 1.}: DWORD + CharSet* {.bitsize: 2.}: DWORD + Unused* {.bitsize: 3.}: DWORD + Reserved* {.bitsize: 24.}: DWORD + DNS_RECORDW_Flags* {.pure, union.} = object DW*: DWORD S*: DNS_RECORD_FLAGS + DNS_RECORDW_Data* {.pure, union.} = object A*: DNS_A_DATA SOA*: DNS_SOA_DATAW @@ -334,6 +371,7 @@ winsr*: DNS_WINSR_DATAW NBSTAT*: DNS_WINSR_DATAW nbstat*: DNS_WINSR_DATAW + DNS_RECORDW* {.pure.} = object pNext*: ptr DnsRecordW pName*: PWSTR @@ -343,10 +381,12 @@ dwTtl*: DWORD dwReserved*: DWORD Data*: DNS_RECORDW_Data + PDNS_RECORDW* = ptr DNS_RECORDW DNS_RECORDA_Flags* {.pure, union.} = object DW*: DWORD S*: DNS_RECORD_FLAGS + DNS_RECORDA_Data* {.pure, union.} = object A*: DNS_A_DATA SOA*: DNS_SOA_DATAA @@ -408,6 +448,7 @@ winsr*: DNS_WINSR_DATAA NBSTAT*: DNS_WINSR_DATAA nbstat*: DNS_WINSR_DATAA + DNS_RECORDA* {.pure.} = object pNext*: ptr DnsRecordA pName*: PSTR @@ -417,22 +458,25 @@ dwTtl*: DWORD dwReserved*: DWORD Data*: DNS_RECORDA_Data + PDNS_RECORDA* = ptr DNS_RECORDA + when winimUnicode: - type - PDNS_RECORD* = ptr DNS_RECORDW + type PDNS_RECORD* = ptr DNS_RECORDW when winimAnsi: - type - PDNS_RECORD* = ptr DNS_RECORDA + type PDNS_RECORD* = ptr DNS_RECORDA type DNS_RRSET* {.pure.} = object pFirstRR*: PDNS_RECORD pLastRR*: PDNS_RECORD + PDNS_RRSET* = ptr DNS_RRSET DNS_MESSAGE_BUFFER* {.pure, packed.} = object MessageHead*: DNS_HEADER MessageBody*: array[1, CHAR] + PDNS_MESSAGE_BUFFER* = ptr DNS_MESSAGE_BUFFER + const SIZEOF_IP4_ADDRESS* = 4 IP4_ADDRESS_STRING_LENGTH* = 15 @@ -448,12 +492,13 @@ DNS_MAX_LABEL_BUFFER_LENGTH* = 64 DNS_IP4_REVERSE_DOMAIN_STRING_A* = "in-addr.arpa." DNS_IP4_REVERSE_DOMAIN_STRING_W* = "in-addr.arpa." - DNS_MAX_IP4_REVERSE_NAME_LENGTH* = IP4_ADDRESS_STRING_LENGTH+1+(len(DNS_IP4_REVERSE_DOMAIN_STRING_A)+1) - DNS_MAX_IP4_REVERSE_NAME_BUFFER_LENGTH* = DNS_MAX_IP4_REVERSE_NAME_LENGTH+1 + DNS_MAX_IP4_REVERSE_NAME_LENGTH* = + IP4_ADDRESS_STRING_LENGTH + 1 + (len(DNS_IP4_REVERSE_DOMAIN_STRING_A) + 1) + DNS_MAX_IP4_REVERSE_NAME_BUFFER_LENGTH* = DNS_MAX_IP4_REVERSE_NAME_LENGTH + 1 DNS_IP6_REVERSE_DOMAIN_STRING_A* = "ip6.arpa." DNS_IP6_REVERSE_DOMAIN_STRING_W* = "ip6.arpa." - DNS_MAX_IP6_REVERSE_NAME_LENGTH* = 64+(len(DNS_IP6_REVERSE_DOMAIN_STRING_A)+1) - DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENGTH* = DNS_MAX_IP6_REVERSE_NAME_LENGTH+1 + DNS_MAX_IP6_REVERSE_NAME_LENGTH* = 64 + (len(DNS_IP6_REVERSE_DOMAIN_STRING_A) + 1) + DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENGTH* = DNS_MAX_IP6_REVERSE_NAME_LENGTH + 1 DNS_MAX_REVERSE_NAME_LENGTH* = DNS_MAX_IP6_REVERSE_NAME_LENGTH DNS_MAX_REVERSE_NAME_BUFFER_LENGTH* = DNS_MAX_IP6_REVERSE_NAME_BUFFER_LENGTH DNS_MAX_TEXT_STRING_LENGTH* = 255 @@ -614,7 +659,7 @@ DNS_ATMA_FORMAT_E164* = 1 DNS_ATMA_FORMAT_AESA* = 2 DNS_ATMA_AESA_ADDR_LENGTH* = 20 - DNS_ATMA_MAX_RECORD_LENGTH* = DNS_ATMA_MAX_ADDR_LENGTH+1 + DNS_ATMA_MAX_RECORD_LENGTH* = DNS_ATMA_MAX_ADDR_LENGTH + 1 DNSSEC_ALGORITHM_RSAMD5* = 1 DNSSEC_ALGORITHM_NULL* = 253 DNSSEC_ALGORITHM_PRIVATE* = 254 @@ -741,35 +786,182 @@ dnsNameWildcard* = 4 dnsNameSrvRecord* = 5 DNS_OFFSET_TO_QUESTION_NAME* = 12 -proc DnsQueryConfig*(Config: DNS_CONFIG_TYPE, Flag: DWORD, pwsAdapterName: PWSTR, pReserved: PVOID, pBuffer: PVOID, pBufferLength: PDWORD): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsRecordCopyEx*(pRecord: PDNS_RECORD, CharSetIn: DNS_CHARSET, CharSetOut: DNS_CHARSET): PDNS_RECORD {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsRecordSetCopyEx*(pRecordSet: PDNS_RECORD, CharSetIn: DNS_CHARSET, CharSetOut: DNS_CHARSET): PDNS_RECORD {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsRecordCompare*(pRecord1: PDNS_RECORD, pRecord2: PDNS_RECORD): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsRecordSetCompare*(pRR1: PDNS_RECORD, pRR2: PDNS_RECORD, ppDiff1: ptr PDNS_RECORD, ppDiff2: ptr PDNS_RECORD): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsRecordSetDetach*(pRecordList: PDNS_RECORD): PDNS_RECORD {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsFree*(pData: PVOID, FreeType: DNS_FREE_TYPE): VOID {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsRecordListFree*(pRecordList: PDNS_RECORD, FreeType: DNS_FREE_TYPE): VOID {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsQuery_A*(pszName: PCSTR, wType: WORD, Options: DWORD, aipServers: PIP4_ARRAY, ppQueryResults: ptr PDNS_RECORD, pReserved: ptr PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsQuery_UTF8*(pszName: PCSTR, wType: WORD, Options: DWORD, aipServers: PIP4_ARRAY, ppQueryResults: ptr PDNS_RECORDA, pReserved: ptr PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsQuery_W*(pszName: PCWSTR, wType: WORD, Options: DWORD, aipServers: PIP4_ARRAY, ppQueryResults: ptr PDNS_RECORD, pReserved: ptr PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsAcquireContextHandle_W*(CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsAcquireContextHandle_A*(CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsReleaseContextHandle*(hContext: HANDLE): VOID {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsModifyRecordsInSet_W*(pAddRecords: PDNS_RECORD, pDeleteRecords: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsModifyRecordsInSet_A*(pAddRecords: PDNS_RECORD, pDeleteRecords: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsModifyRecordsInSet_UTF8*(pAddRecords: PDNS_RECORDA, pDeleteRecords: PDNS_RECORDA, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsReplaceRecordSetW*(pNewSet: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsReplaceRecordSetA*(pNewSet: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsReplaceRecordSetUTF8*(pNewSet: PDNS_RECORDA, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsValidateName_UTF8*(pszName: LPCSTR, Format: DNS_NAME_FORMAT): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsValidateName_W*(pwszName: LPCWSTR, Format: DNS_NAME_FORMAT): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsValidateName_A*(pszName: LPCSTR, Format: DNS_NAME_FORMAT): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsNameCompare_A*(pName1: LPSTR, pName2: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsNameCompare_W*(pName1: LPWSTR, pName2: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsWriteQuestionToBuffer_W*(pDnsBuffer: PDNS_MESSAGE_BUFFER, pdwBufferSize: PDWORD, pszName: LPWSTR, wType: WORD, Xid: WORD, fRecursionDesired: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsWriteQuestionToBuffer_UTF8*(pDnsBuffer: PDNS_MESSAGE_BUFFER, pdwBufferSize: LPDWORD, pszName: LPSTR, wType: WORD, Xid: WORD, fRecursionDesired: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsExtractRecordsFromMessage_W*(pDnsBuffer: PDNS_MESSAGE_BUFFER, wMessageLength: WORD, ppRecord: ptr PDNS_RECORD): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} -proc DnsExtractRecordsFromMessage_UTF8*(pDnsBuffer: PDNS_MESSAGE_BUFFER, wMessageLength: WORD, ppRecord: ptr PDNS_RECORDA): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} +proc DnsQueryConfig*( + Config: DNS_CONFIG_TYPE, + Flag: DWORD, + pwsAdapterName: PWSTR, + pReserved: PVOID, + pBuffer: PVOID, + pBufferLength: PDWORD, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsRecordCopyEx*( + pRecord: PDNS_RECORD, CharSetIn: DNS_CHARSET, CharSetOut: DNS_CHARSET +): PDNS_RECORD {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsRecordSetCopyEx*( + pRecordSet: PDNS_RECORD, CharSetIn: DNS_CHARSET, CharSetOut: DNS_CHARSET +): PDNS_RECORD {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsRecordCompare*( + pRecord1: PDNS_RECORD, pRecord2: PDNS_RECORD +): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsRecordSetCompare*( + pRR1: PDNS_RECORD, + pRR2: PDNS_RECORD, + ppDiff1: ptr PDNS_RECORD, + ppDiff2: ptr PDNS_RECORD, +): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsRecordSetDetach*( + pRecordList: PDNS_RECORD +): PDNS_RECORD {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsFree*( + pData: PVOID, FreeType: DNS_FREE_TYPE +): VOID {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsRecordListFree*( + pRecordList: PDNS_RECORD, FreeType: DNS_FREE_TYPE +): VOID {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsQuery_A*( + pszName: PCSTR, + wType: WORD, + Options: DWORD, + aipServers: PIP4_ARRAY, + ppQueryResults: ptr PDNS_RECORD, + pReserved: ptr PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsQuery_UTF8*( + pszName: PCSTR, + wType: WORD, + Options: DWORD, + aipServers: PIP4_ARRAY, + ppQueryResults: ptr PDNS_RECORDA, + pReserved: ptr PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsQuery_W*( + pszName: PCWSTR, + wType: WORD, + Options: DWORD, + aipServers: PIP4_ARRAY, + ppQueryResults: ptr PDNS_RECORD, + pReserved: ptr PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsAcquireContextHandle_W*( + CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsAcquireContextHandle_A*( + CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsReleaseContextHandle*( + hContext: HANDLE +): VOID {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsModifyRecordsInSet_W*( + pAddRecords: PDNS_RECORD, + pDeleteRecords: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsModifyRecordsInSet_A*( + pAddRecords: PDNS_RECORD, + pDeleteRecords: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsModifyRecordsInSet_UTF8*( + pAddRecords: PDNS_RECORDA, + pDeleteRecords: PDNS_RECORDA, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsReplaceRecordSetW*( + pNewSet: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsReplaceRecordSetA*( + pNewSet: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsReplaceRecordSetUTF8*( + pNewSet: PDNS_RECORDA, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsValidateName_UTF8*( + pszName: LPCSTR, Format: DNS_NAME_FORMAT +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsValidateName_W*( + pwszName: LPCWSTR, Format: DNS_NAME_FORMAT +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsValidateName_A*( + pszName: LPCSTR, Format: DNS_NAME_FORMAT +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsNameCompare_A*( + pName1: LPSTR, pName2: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsNameCompare_W*( + pName1: LPWSTR, pName2: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsWriteQuestionToBuffer_W*( + pDnsBuffer: PDNS_MESSAGE_BUFFER, + pdwBufferSize: PDWORD, + pszName: LPWSTR, + wType: WORD, + Xid: WORD, + fRecursionDesired: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsWriteQuestionToBuffer_UTF8*( + pDnsBuffer: PDNS_MESSAGE_BUFFER, + pdwBufferSize: LPDWORD, + pszName: LPSTR, + wType: WORD, + Xid: WORD, + fRecursionDesired: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsExtractRecordsFromMessage_W*( + pDnsBuffer: PDNS_MESSAGE_BUFFER, wMessageLength: WORD, ppRecord: ptr PDNS_RECORD +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + +proc DnsExtractRecordsFromMessage_UTF8*( + pDnsBuffer: PDNS_MESSAGE_BUFFER, wMessageLength: WORD, ppRecord: ptr PDNS_RECORDA +): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc.} + when winimUnicode: type DNS_RECORD* = DNS_RECORDW @@ -795,13 +987,44 @@ PDNS_TSIG_DATA* = PDNS_TSIG_DATAW DNS_WINSR_DATA* = DNS_WINSR_DATAW PDNS_WINSR_DATA* = PDNS_WINSR_DATAW + const DNS_IP4_REVERSE_DOMAIN_STRING* = DNS_IP4_REVERSE_DOMAIN_STRING_W DNS_IP6_REVERSE_DOMAIN_STRING* = DNS_IP6_REVERSE_DOMAIN_STRING_W - proc DnsQuery*(pszName: PCWSTR, wType: WORD, Options: DWORD, aipServers: PIP4_ARRAY, ppQueryResults: ptr PDNS_RECORD, pReserved: ptr PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsQuery_W".} - proc DnsAcquireContextHandle*(CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsAcquireContextHandle_W".} - proc DnsModifyRecordsInSet*(pAddRecords: PDNS_RECORD, pDeleteRecords: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsModifyRecordsInSet_W".} - proc DnsReplaceRecordSet*(pNewSet: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsReplaceRecordSetW".} + proc DnsQuery*( + pszName: PCWSTR, + wType: WORD, + Options: DWORD, + aipServers: PIP4_ARRAY, + ppQueryResults: ptr PDNS_RECORD, + pReserved: ptr PVOID, + ): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsQuery_W".} + + proc DnsAcquireContextHandle*( + CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE + ): DNS_STATUS {. + winapi, stdcall, dynlib: "dnsapi", importc: "DnsAcquireContextHandle_W" + .} + + proc DnsModifyRecordsInSet*( + pAddRecords: PDNS_RECORD, + pDeleteRecords: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, + ): DNS_STATUS {. + winapi, stdcall, dynlib: "dnsapi", importc: "DnsModifyRecordsInSet_W" + .} + + proc DnsReplaceRecordSet*( + pNewSet: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, + ): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsReplaceRecordSetW".} + when winimAnsi: type DNS_RECORD* = DNS_RECORDA @@ -827,10 +1050,40 @@ PDNS_TSIG_DATA* = PDNS_TSIG_DATAA DNS_WINSR_DATA* = DNS_WINSR_DATAA PDNS_WINSR_DATA* = PDNS_WINSR_DATAA + const DNS_IP4_REVERSE_DOMAIN_STRING* = DNS_IP4_REVERSE_DOMAIN_STRING_A DNS_IP6_REVERSE_DOMAIN_STRING* = DNS_IP6_REVERSE_DOMAIN_STRING_A - proc DnsQuery*(pszName: PCSTR, wType: WORD, Options: DWORD, aipServers: PIP4_ARRAY, ppQueryResults: ptr PDNS_RECORD, pReserved: ptr PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsQuery_A".} - proc DnsAcquireContextHandle*(CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsAcquireContextHandle_A".} - proc DnsModifyRecordsInSet*(pAddRecords: PDNS_RECORD, pDeleteRecords: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsModifyRecordsInSet_A".} - proc DnsReplaceRecordSet*(pNewSet: PDNS_RECORD, Options: DWORD, hContext: HANDLE, pServerList: PIP4_ARRAY, pReserved: PVOID): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsReplaceRecordSetA".} + proc DnsQuery*( + pszName: PCSTR, + wType: WORD, + Options: DWORD, + aipServers: PIP4_ARRAY, + ppQueryResults: ptr PDNS_RECORD, + pReserved: ptr PVOID, + ): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsQuery_A".} + + proc DnsAcquireContextHandle*( + CredentialFlags: DWORD, pCredentials: PVOID, pContextHandle: PHANDLE + ): DNS_STATUS {. + winapi, stdcall, dynlib: "dnsapi", importc: "DnsAcquireContextHandle_A" + .} + + proc DnsModifyRecordsInSet*( + pAddRecords: PDNS_RECORD, + pDeleteRecords: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, + ): DNS_STATUS {. + winapi, stdcall, dynlib: "dnsapi", importc: "DnsModifyRecordsInSet_A" + .} + + proc DnsReplaceRecordSet*( + pNewSet: PDNS_RECORD, + Options: DWORD, + hContext: HANDLE, + pServerList: PIP4_ARRAY, + pReserved: PVOID, + ): DNS_STATUS {.winapi, stdcall, dynlib: "dnsapi", importc: "DnsReplaceRecordSetA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winefs.nim --- a/semicongine/thirdparty/winim/winim/inc/winefs.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winefs.nim Thu Aug 22 18:32:21 2024 +0700 @@ -14,47 +14,82 @@ dwCertEncodingType*: DWORD cbData*: DWORD pbData*: PBYTE + PEFS_CERTIFICATE_BLOB* = ptr EFS_CERTIFICATE_BLOB EFS_HASH_BLOB* {.pure.} = object cbData*: DWORD pbData*: PBYTE + PEFS_HASH_BLOB* = ptr EFS_HASH_BLOB EFS_RPC_BLOB* {.pure.} = object cbData*: DWORD pbData*: PBYTE + PEFS_RPC_BLOB* = ptr EFS_RPC_BLOB EFS_KEY_INFO* {.pure.} = object dwVersion*: DWORD Entropy*: ULONG Algorithm*: ALG_ID KeyLength*: ULONG + PEFS_KEY_INFO* = ptr EFS_KEY_INFO ENCRYPTION_CERTIFICATE* {.pure.} = object cbTotalLength*: DWORD pUserSid*: ptr SID pCertBlob*: PEFS_CERTIFICATE_BLOB + PENCRYPTION_CERTIFICATE* = ptr ENCRYPTION_CERTIFICATE ENCRYPTION_CERTIFICATE_HASH* {.pure.} = object cbTotalLength*: DWORD pUserSid*: ptr SID pHash*: PEFS_HASH_BLOB lpDisplayInformation*: LPWSTR + PENCRYPTION_CERTIFICATE_HASH* = ptr ENCRYPTION_CERTIFICATE_HASH ENCRYPTION_CERTIFICATE_HASH_LIST* {.pure.} = object nCert_Hash*: DWORD pUsers*: ptr PENCRYPTION_CERTIFICATE_HASH + PENCRYPTION_CERTIFICATE_HASH_LIST* = ptr ENCRYPTION_CERTIFICATE_HASH_LIST ENCRYPTION_CERTIFICATE_LIST* {.pure.} = object nUsers*: DWORD pUsers*: ptr PENCRYPTION_CERTIFICATE + PENCRYPTION_CERTIFICATE_LIST* = ptr ENCRYPTION_CERTIFICATE_LIST -const - MAX_SID_SIZE* = 256 -proc QueryUsersOnEncryptedFile*(lpFileName: LPCWSTR, pUsers: ptr PENCRYPTION_CERTIFICATE_HASH_LIST): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryRecoveryAgentsOnEncryptedFile*(lpFileName: LPCWSTR, pRecoveryAgents: ptr PENCRYPTION_CERTIFICATE_HASH_LIST): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RemoveUsersFromEncryptedFile*(lpFileName: LPCWSTR, pHashes: PENCRYPTION_CERTIFICATE_HASH_LIST): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AddUsersToEncryptedFile*(lpFileName: LPCWSTR, pUsers: PENCRYPTION_CERTIFICATE_LIST): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetUserFileEncryptionKey*(pEncryptionCertificate: PENCRYPTION_CERTIFICATE): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc FreeEncryptionCertificateHashList*(pHashes: PENCRYPTION_CERTIFICATE_HASH_LIST): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EncryptionDisable*(DirPath: LPCWSTR, Disable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DuplicateEncryptionInfoFile*(SrcFileName: LPCWSTR, DstFileName: LPCWSTR, dwCreationDistribution: DWORD, dwAttributes: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +const MAX_SID_SIZE* = 256 +proc QueryUsersOnEncryptedFile*( + lpFileName: LPCWSTR, pUsers: ptr PENCRYPTION_CERTIFICATE_HASH_LIST +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryRecoveryAgentsOnEncryptedFile*( + lpFileName: LPCWSTR, pRecoveryAgents: ptr PENCRYPTION_CERTIFICATE_HASH_LIST +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RemoveUsersFromEncryptedFile*( + lpFileName: LPCWSTR, pHashes: PENCRYPTION_CERTIFICATE_HASH_LIST +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AddUsersToEncryptedFile*( + lpFileName: LPCWSTR, pUsers: PENCRYPTION_CERTIFICATE_LIST +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetUserFileEncryptionKey*( + pEncryptionCertificate: PENCRYPTION_CERTIFICATE +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc FreeEncryptionCertificateHashList*( + pHashes: PENCRYPTION_CERTIFICATE_HASH_LIST +): VOID {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EncryptionDisable*( + DirPath: LPCWSTR, Disable: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DuplicateEncryptionInfoFile*( + SrcFileName: LPCWSTR, + DstFileName: LPCWSTR, + dwCreationDistribution: DWORD, + dwAttributes: DWORD, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winerror.nim --- a/semicongine/thirdparty/winim/winim/inc/winerror.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winerror.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1706,94 +1706,94 @@ DNS_ERROR_DP_NOT_AVAILABLE* = 9905 DNS_ERROR_DP_FSMO_ERROR* = 9906 WSABASEERR* = 10000 - WSAEINTR* = WSABASEERR+4 - WSAEBADF* = WSABASEERR+9 - WSAEACCES* = WSABASEERR+13 - WSAEFAULT* = WSABASEERR+14 - WSAEINVAL* = WSABASEERR+22 - WSAEMFILE* = WSABASEERR+24 - WSAEWOULDBLOCK* = WSABASEERR+35 - WSAEINPROGRESS* = WSABASEERR+36 - WSAEALREADY* = WSABASEERR+37 - WSAENOTSOCK* = WSABASEERR+38 - WSAEDESTADDRREQ* = WSABASEERR+39 - WSAEMSGSIZE* = WSABASEERR+40 - WSAEPROTOTYPE* = WSABASEERR+41 - WSAENOPROTOOPT* = WSABASEERR+42 - WSAEPROTONOSUPPORT* = WSABASEERR+43 - WSAESOCKTNOSUPPORT* = WSABASEERR+44 - WSAEOPNOTSUPP* = WSABASEERR+45 - WSAEPFNOSUPPORT* = WSABASEERR+46 - WSAEAFNOSUPPORT* = WSABASEERR+47 - WSAEADDRINUSE* = WSABASEERR+48 - WSAEADDRNOTAVAIL* = WSABASEERR+49 - WSAENETDOWN* = WSABASEERR+50 - WSAENETUNREACH* = WSABASEERR+51 - WSAENETRESET* = WSABASEERR+52 - WSAECONNABORTED* = WSABASEERR+53 - WSAECONNRESET* = WSABASEERR+54 - WSAENOBUFS* = WSABASEERR+55 - WSAEISCONN* = WSABASEERR+56 - WSAENOTCONN* = WSABASEERR+57 - WSAESHUTDOWN* = WSABASEERR+58 - WSAETOOMANYREFS* = WSABASEERR+59 - WSAETIMEDOUT* = WSABASEERR+60 - WSAECONNREFUSED* = WSABASEERR+61 - WSAELOOP* = WSABASEERR+62 - WSAENAMETOOLONG* = WSABASEERR+63 - WSAEHOSTDOWN* = WSABASEERR+64 - WSAEHOSTUNREACH* = WSABASEERR+65 - WSAENOTEMPTY* = WSABASEERR+66 - WSAEPROCLIM* = WSABASEERR+67 - WSAEUSERS* = WSABASEERR+68 - WSAEDQUOT* = WSABASEERR+69 - WSAESTALE* = WSABASEERR+70 - WSAEREMOTE* = WSABASEERR+71 - WSASYSNOTREADY* = WSABASEERR+91 - WSAVERNOTSUPPORTED* = WSABASEERR+92 - WSANOTINITIALISED* = WSABASEERR+93 - WSAEDISCON* = WSABASEERR+101 - WSAEINVALIDPROCTABLE* = WSABASEERR+104 - WSAEINVALIDPROVIDER* = WSABASEERR+105 - WSAEPROVIDERFAILEDINIT* = WSABASEERR+106 - WSASYSCALLFAILURE* = WSABASEERR+107 - WSASERVICE_NOT_FOUND* = WSABASEERR+108 - WSATYPE_NOT_FOUND* = WSABASEERR+109 - WSA_E_NO_MORE* = WSABASEERR+110 - WSA_E_CANCELLED* = WSABASEERR+111 - WSAEREFUSED* = WSABASEERR+112 - WSAHOST_NOT_FOUND* = WSABASEERR+1001 - WSATRY_AGAIN* = WSABASEERR+1002 - WSANO_RECOVERY* = WSABASEERR+1003 - WSANO_DATA* = WSABASEERR+1004 - WSA_QOS_RECEIVERS* = WSABASEERR+1005 - WSA_QOS_SENDERS* = WSABASEERR+1006 - WSA_QOS_NO_SENDERS* = WSABASEERR+1007 - WSA_QOS_NO_RECEIVERS* = WSABASEERR+1008 - WSA_QOS_REQUEST_CONFIRMED* = WSABASEERR+1009 - WSA_QOS_ADMISSION_FAILURE* = WSABASEERR+1010 - WSA_QOS_POLICY_FAILURE* = WSABASEERR+1011 - WSA_QOS_BAD_STYLE* = WSABASEERR+1012 - WSA_QOS_BAD_OBJECT* = WSABASEERR+1013 - WSA_QOS_TRAFFIC_CTRL_ERROR* = WSABASEERR+1014 - WSA_QOS_GENERIC_ERROR* = WSABASEERR+1015 - WSA_QOS_ESERVICETYPE* = WSABASEERR+1016 - WSA_QOS_EFLOWSPEC* = WSABASEERR+1017 - WSA_QOS_EPROVSPECBUF* = WSABASEERR+1018 - WSA_QOS_EFILTERSTYLE* = WSABASEERR+1019 - WSA_QOS_EFILTERTYPE* = WSABASEERR+1020 - WSA_QOS_EFILTERCOUNT* = WSABASEERR+1021 - WSA_QOS_EOBJLENGTH* = WSABASEERR+1022 - WSA_QOS_EFLOWCOUNT* = WSABASEERR+1023 - WSA_QOS_EUNKNOWNPSOBJ* = WSABASEERR+1024 + WSAEINTR* = WSABASEERR + 4 + WSAEBADF* = WSABASEERR + 9 + WSAEACCES* = WSABASEERR + 13 + WSAEFAULT* = WSABASEERR + 14 + WSAEINVAL* = WSABASEERR + 22 + WSAEMFILE* = WSABASEERR + 24 + WSAEWOULDBLOCK* = WSABASEERR + 35 + WSAEINPROGRESS* = WSABASEERR + 36 + WSAEALREADY* = WSABASEERR + 37 + WSAENOTSOCK* = WSABASEERR + 38 + WSAEDESTADDRREQ* = WSABASEERR + 39 + WSAEMSGSIZE* = WSABASEERR + 40 + WSAEPROTOTYPE* = WSABASEERR + 41 + WSAENOPROTOOPT* = WSABASEERR + 42 + WSAEPROTONOSUPPORT* = WSABASEERR + 43 + WSAESOCKTNOSUPPORT* = WSABASEERR + 44 + WSAEOPNOTSUPP* = WSABASEERR + 45 + WSAEPFNOSUPPORT* = WSABASEERR + 46 + WSAEAFNOSUPPORT* = WSABASEERR + 47 + WSAEADDRINUSE* = WSABASEERR + 48 + WSAEADDRNOTAVAIL* = WSABASEERR + 49 + WSAENETDOWN* = WSABASEERR + 50 + WSAENETUNREACH* = WSABASEERR + 51 + WSAENETRESET* = WSABASEERR + 52 + WSAECONNABORTED* = WSABASEERR + 53 + WSAECONNRESET* = WSABASEERR + 54 + WSAENOBUFS* = WSABASEERR + 55 + WSAEISCONN* = WSABASEERR + 56 + WSAENOTCONN* = WSABASEERR + 57 + WSAESHUTDOWN* = WSABASEERR + 58 + WSAETOOMANYREFS* = WSABASEERR + 59 + WSAETIMEDOUT* = WSABASEERR + 60 + WSAECONNREFUSED* = WSABASEERR + 61 + WSAELOOP* = WSABASEERR + 62 + WSAENAMETOOLONG* = WSABASEERR + 63 + WSAEHOSTDOWN* = WSABASEERR + 64 + WSAEHOSTUNREACH* = WSABASEERR + 65 + WSAENOTEMPTY* = WSABASEERR + 66 + WSAEPROCLIM* = WSABASEERR + 67 + WSAEUSERS* = WSABASEERR + 68 + WSAEDQUOT* = WSABASEERR + 69 + WSAESTALE* = WSABASEERR + 70 + WSAEREMOTE* = WSABASEERR + 71 + WSASYSNOTREADY* = WSABASEERR + 91 + WSAVERNOTSUPPORTED* = WSABASEERR + 92 + WSANOTINITIALISED* = WSABASEERR + 93 + WSAEDISCON* = WSABASEERR + 101 + WSAEINVALIDPROCTABLE* = WSABASEERR + 104 + WSAEINVALIDPROVIDER* = WSABASEERR + 105 + WSAEPROVIDERFAILEDINIT* = WSABASEERR + 106 + WSASYSCALLFAILURE* = WSABASEERR + 107 + WSASERVICE_NOT_FOUND* = WSABASEERR + 108 + WSATYPE_NOT_FOUND* = WSABASEERR + 109 + WSA_E_NO_MORE* = WSABASEERR + 110 + WSA_E_CANCELLED* = WSABASEERR + 111 + WSAEREFUSED* = WSABASEERR + 112 + WSAHOST_NOT_FOUND* = WSABASEERR + 1001 + WSATRY_AGAIN* = WSABASEERR + 1002 + WSANO_RECOVERY* = WSABASEERR + 1003 + WSANO_DATA* = WSABASEERR + 1004 + WSA_QOS_RECEIVERS* = WSABASEERR + 1005 + WSA_QOS_SENDERS* = WSABASEERR + 1006 + WSA_QOS_NO_SENDERS* = WSABASEERR + 1007 + WSA_QOS_NO_RECEIVERS* = WSABASEERR + 1008 + WSA_QOS_REQUEST_CONFIRMED* = WSABASEERR + 1009 + WSA_QOS_ADMISSION_FAILURE* = WSABASEERR + 1010 + WSA_QOS_POLICY_FAILURE* = WSABASEERR + 1011 + WSA_QOS_BAD_STYLE* = WSABASEERR + 1012 + WSA_QOS_BAD_OBJECT* = WSABASEERR + 1013 + WSA_QOS_TRAFFIC_CTRL_ERROR* = WSABASEERR + 1014 + WSA_QOS_GENERIC_ERROR* = WSABASEERR + 1015 + WSA_QOS_ESERVICETYPE* = WSABASEERR + 1016 + WSA_QOS_EFLOWSPEC* = WSABASEERR + 1017 + WSA_QOS_EPROVSPECBUF* = WSABASEERR + 1018 + WSA_QOS_EFILTERSTYLE* = WSABASEERR + 1019 + WSA_QOS_EFILTERTYPE* = WSABASEERR + 1020 + WSA_QOS_EFILTERCOUNT* = WSABASEERR + 1021 + WSA_QOS_EOBJLENGTH* = WSABASEERR + 1022 + WSA_QOS_EFLOWCOUNT* = WSABASEERR + 1023 + WSA_QOS_EUNKNOWNPSOBJ* = WSABASEERR + 1024 WSA_QOS_EUNKOWNPSOBJ* = WSA_QOS_EUNKNOWNPSOBJ - WSA_QOS_EPOLICYOBJ* = WSABASEERR+1025 - WSA_QOS_EFLOWDESC* = WSABASEERR+1026 - WSA_QOS_EPSFLOWSPEC* = WSABASEERR+1027 - WSA_QOS_EPSFILTERSPEC* = WSABASEERR+1028 - WSA_QOS_ESDMODEOBJ* = WSABASEERR+1029 - WSA_QOS_ESHAPERATEOBJ* = WSABASEERR+1030 - WSA_QOS_RESERVED_PETYPE* = WSABASEERR+1031 + WSA_QOS_EPOLICYOBJ* = WSABASEERR + 1025 + WSA_QOS_EFLOWDESC* = WSABASEERR + 1026 + WSA_QOS_EPSFLOWSPEC* = WSABASEERR + 1027 + WSA_QOS_EPSFILTERSPEC* = WSABASEERR + 1028 + WSA_QOS_ESDMODEOBJ* = WSABASEERR + 1029 + WSA_QOS_ESHAPERATEOBJ* = WSABASEERR + 1030 + WSA_QOS_RESERVED_PETYPE* = WSABASEERR + 1031 ERROR_SXS_SECTION_NOT_FOUND* = 14000 ERROR_SXS_CANT_GEN_ACTCTX* = 14001 ERROR_SXS_INVALID_ACTCTXDATA_FORMAT* = 14002 @@ -2220,7 +2220,14 @@ E_FAIL* = HRESULT 0x80004005'i32 E_ACCESSDENIED* = HRESULT 0x80070005'i32 E_PENDING* = HRESULT 0x8000000A'i32 -template HRESULT_FROM_WIN32*(x: untyped): HRESULT = (if x <= 0: HRESULT x else: HRESULT(x and 0x0000ffff) or HRESULT(FACILITY_WIN32 shl 16) or HRESULT(0x80000000'i32)) +template HRESULT_FROM_WIN32*(x: untyped): HRESULT = + ( + if x <= 0: HRESULT x + else: + HRESULT(x and 0x0000ffff) or HRESULT(FACILITY_WIN32 shl 16) or + HRESULT(0x80000000'i32) + ) + const E_NOT_SUFFICIENT_BUFFER* = HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) CO_E_INIT_TLS* = HRESULT 0x80004006'i32 @@ -3551,15 +3558,38 @@ ERROR_FLT_CONTEXT_ALREADY_LINKED* = HRESULT 0x801F001c'i32 ERROR_FLT_NO_WAITER_FOR_REPLY* = HRESULT 0x801f0020'i32 ERROR_FLT_REGISTRATION_BUSY* = HRESULT 0x801F0023'i32 -template SUCCEEDED*(hr: untyped): bool = hr.HRESULT >= 0 -template FAILED*(hr: untyped): bool = hr.HRESULT < 0 -template IS_ERROR*(Status: untyped): bool = Status shr 31 == SEVERITY_ERROR -template HRESULT_CODE*(hr: untyped): WORD = WORD(hr and 0xFFFF) -template SCODE_CODE*(sc: untyped): WORD = WORD(sc and 0xFFFF) -template HRESULT_FACILITY*(hr: untyped): WORD = WORD((hr shr 16) and 0x1fff) -template SCODE_FACILITY*(sc: untyped): WORD = WORD((sc shr 16) and 0x1fff) -template HRESULT_SEVERITY*(hr: untyped): DWORD = DWORD((hr shr 31) and 0x1) -template SCODE_SEVERITY*(sc: untyped): DWORD = DWORD((hr shr 31) and 0x1) -template MAKE_HRESULT*(sev: untyped, fac: untyped, code: untyped): HRESULT = (sev.HRESULT shl 31) or (fac.HRESULT shl 16) or (code.HRESULT) -template MAKE_SCODE*(sev: untyped, fac: untyped, code: untyped): HRESULT = (sev.HRESULT shl 31) or (fac.HRESULT shl 16) or (code.HRESULT) -template HRESULT_FROM_NT*(x: untyped): HRESULT = HRESULT(x or FACILITY_NT_BIT) +template SUCCEEDED*(hr: untyped): bool = + hr.HRESULT >= 0 + +template FAILED*(hr: untyped): bool = + hr.HRESULT < 0 + +template IS_ERROR*(Status: untyped): bool = + Status shr 31 == SEVERITY_ERROR + +template HRESULT_CODE*(hr: untyped): WORD = + WORD(hr and 0xFFFF) + +template SCODE_CODE*(sc: untyped): WORD = + WORD(sc and 0xFFFF) + +template HRESULT_FACILITY*(hr: untyped): WORD = + WORD((hr shr 16) and 0x1fff) + +template SCODE_FACILITY*(sc: untyped): WORD = + WORD((sc shr 16) and 0x1fff) + +template HRESULT_SEVERITY*(hr: untyped): DWORD = + DWORD((hr shr 31) and 0x1) + +template SCODE_SEVERITY*(sc: untyped): DWORD = + DWORD((hr shr 31) and 0x1) + +template MAKE_HRESULT*(sev: untyped, fac: untyped, code: untyped): HRESULT = + (sev.HRESULT shl 31) or (fac.HRESULT shl 16) or (code.HRESULT) + +template MAKE_SCODE*(sev: untyped, fac: untyped, code: untyped): HRESULT = + (sev.HRESULT shl 31) or (fac.HRESULT shl 16) or (code.HRESULT) + +template HRESULT_FROM_NT*(x: untyped): HRESULT = + HRESULT(x or FACILITY_NT_BIT) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wingdi.nim --- a/semicongine/thirdparty/winim/winim/inc/wingdi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wingdi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -23,27 +23,29 @@ LCSCSTYPE* = LONG LCSGAMUTMATCH* = LONG COLOR16* = USHORT + when winimUnicode: - type - BCHAR* = WCHAR + type BCHAR* = WCHAR when winimAnsi: - type - BCHAR* = BYTE + type BCHAR* = BYTE type DRAWPATRECT* {.pure.} = object ptPosition*: POINT ptSize*: POINT wStyle*: WORD wPattern*: WORD + PDRAWPATRECT* = ptr DRAWPATRECT PSINJECTDATA* {.pure.} = object DataBytes*: DWORD InjectionPoint*: WORD PageNumber*: WORD + PPSINJECTDATA* = ptr PSINJECTDATA PSFEATURE_OUTPUT* {.pure.} = object bPageIndependent*: WINBOOL bSetPageDevice*: WINBOOL + PPSFEATURE_OUTPUT* = ptr PSFEATURE_OUTPUT PSFEATURE_CUSTPAPER* {.pure.} = object lOrientation*: LONG @@ -51,6 +53,7 @@ lHeight*: LONG lWidthOffset*: LONG lHeightOffset*: LONG + PPSFEATURE_CUSTPAPER* = ptr PSFEATURE_CUSTPAPER XFORM* {.pure.} = object eM11*: FLOAT @@ -59,6 +62,7 @@ eM22*: FLOAT eDx*: FLOAT eDy*: FLOAT + PXFORM* = ptr XFORM LPXFORM* = ptr XFORM BITMAP* {.pure.} = object @@ -69,6 +73,7 @@ bmPlanes*: WORD bmBitsPixel*: WORD bmBits*: LPVOID + PBITMAP* = ptr BITMAP NPBITMAP* = ptr BITMAP LPBITMAP* = ptr BITMAP @@ -77,16 +82,19 @@ rgbGreen*: BYTE rgbRed*: BYTE rgbReserved*: BYTE + LPRGBQUAD* = ptr RGBQUAD CIEXYZ* {.pure.} = object ciexyzX*: FXPT2DOT30 ciexyzY*: FXPT2DOT30 ciexyzZ*: FXPT2DOT30 + LPCIEXYZ* = ptr CIEXYZ CIEXYZTRIPLE* {.pure.} = object ciexyzRed*: CIEXYZ ciexyzGreen*: CIEXYZ ciexyzBlue*: CIEXYZ + LPCIEXYZTRIPLE* = ptr CIEXYZTRIPLE LOGCOLORSPACEA* {.pure.} = object lcsSignature*: DWORD @@ -99,6 +107,7 @@ lcsGammaGreen*: DWORD lcsGammaBlue*: DWORD lcsFilename*: array[MAX_PATH, CHAR] + LPLOGCOLORSPACEA* = ptr LOGCOLORSPACEA LOGCOLORSPACEW* {.pure.} = object lcsSignature*: DWORD @@ -111,6 +120,7 @@ lcsGammaGreen*: DWORD lcsGammaBlue*: DWORD lcsFilename*: array[MAX_PATH, WCHAR] + LPLOGCOLORSPACEW* = ptr LOGCOLORSPACEW BITMAPCOREHEADER* {.pure.} = object bcSize*: DWORD @@ -118,6 +128,7 @@ bcHeight*: WORD bcPlanes*: WORD bcBitCount*: WORD + LPBITMAPCOREHEADER* = ptr BITMAPCOREHEADER PBITMAPCOREHEADER* = ptr BITMAPCOREHEADER BITMAPINFOHEADER* {.pure.} = object @@ -132,6 +143,7 @@ biYPelsPerMeter*: LONG biClrUsed*: DWORD biClrImportant*: DWORD + LPBITMAPINFOHEADER* = ptr BITMAPINFOHEADER PBITMAPINFOHEADER* = ptr BITMAPINFOHEADER BITMAPV4HEADER* {.pure.} = object @@ -155,6 +167,7 @@ bV4GammaRed*: DWORD bV4GammaGreen*: DWORD bV4GammaBlue*: DWORD + LPBITMAPV4HEADER* = ptr BITMAPV4HEADER PBITMAPV4HEADER* = ptr BITMAPV4HEADER BITMAPV5HEADER* {.pure.} = object @@ -182,20 +195,24 @@ bV5ProfileData*: DWORD bV5ProfileSize*: DWORD bV5Reserved*: DWORD + LPBITMAPV5HEADER* = ptr BITMAPV5HEADER PBITMAPV5HEADER* = ptr BITMAPV5HEADER BITMAPINFO* {.pure.} = object bmiHeader*: BITMAPINFOHEADER bmiColors*: array[1, RGBQUAD] + LPBITMAPINFO* = ptr BITMAPINFO PBITMAPINFO* = ptr BITMAPINFO RGBTRIPLE* {.pure.} = object rgbtBlue*: BYTE rgbtGreen*: BYTE rgbtRed*: BYTE + BITMAPCOREINFO* {.pure.} = object bmciHeader*: BITMAPCOREHEADER bmciColors*: array[1, RGBTRIPLE] + LPBITMAPCOREINFO* = ptr BITMAPCOREINFO PBITMAPCOREINFO* = ptr BITMAPCOREINFO BITMAPFILEHEADER* {.pure, packed.} = object @@ -204,17 +221,20 @@ bfReserved1*: WORD bfReserved2*: WORD bfOffBits*: DWORD + LPBITMAPFILEHEADER* = ptr BITMAPFILEHEADER PBITMAPFILEHEADER* = ptr BITMAPFILEHEADER FONTSIGNATURE* {.pure.} = object fsUsb*: array[4, DWORD] fsCsb*: array[2, DWORD] + PFONTSIGNATURE* = ptr FONTSIGNATURE LPFONTSIGNATURE* = ptr FONTSIGNATURE CHARSETINFO* {.pure.} = object ciCharset*: UINT ciACP*: UINT fs*: FONTSIGNATURE + PCHARSETINFO* = ptr CHARSETINFO NPCHARSETINFO* = ptr CHARSETINFO LPCHARSETINFO* = ptr CHARSETINFO @@ -222,16 +242,19 @@ lsUsb*: array[4, DWORD] lsCsbDefault*: array[2, DWORD] lsCsbSupported*: array[2, DWORD] + PLOCALESIGNATURE* = ptr LOCALESIGNATURE LPLOCALESIGNATURE* = ptr LOCALESIGNATURE HANDLETABLE* {.pure.} = object objectHandle*: array[1, HGDIOBJ] + PHANDLETABLE* = ptr HANDLETABLE LPHANDLETABLE* = ptr HANDLETABLE METARECORD* {.pure.} = object rdSize*: DWORD rdFunction*: WORD rdParm*: array[1, WORD] + PMETARECORD* = ptr METARECORD LPMETARECORD* = ptr METARECORD METAFILEPICT* {.pure.} = object @@ -239,6 +262,7 @@ xExt*: LONG yExt*: LONG hMF*: HMETAFILE + LPMETAFILEPICT* = ptr METAFILEPICT METAHEADER* {.pure, packed.} = object mtType*: WORD @@ -248,12 +272,14 @@ mtNoObjects*: WORD mtMaxRecord*: DWORD mtNoParameters*: WORD + PMETAHEADER* = ptr METAHEADER LPMETAHEADER* = ptr METAHEADER ENHMETARECORD* {.pure.} = object iType*: DWORD nSize*: DWORD dParm*: array[1, DWORD] + PENHMETARECORD* = ptr ENHMETARECORD LPENHMETARECORD* = ptr ENHMETARECORD ENHMETAHEADER* {.pure.} = object @@ -276,6 +302,7 @@ offPixelFormat*: DWORD bOpenGL*: DWORD szlMicrometers*: SIZEL + PENHMETAHEADER* = ptr ENHMETAHEADER LPENHMETAHEADER* = ptr ENHMETAHEADER TEXTMETRICA* {.pure.} = object @@ -299,6 +326,7 @@ tmStruckOut*: BYTE tmPitchAndFamily*: BYTE tmCharSet*: BYTE + PTEXTMETRICA* = ptr TEXTMETRICA NPTEXTMETRICA* = ptr TEXTMETRICA LPTEXTMETRICA* = ptr TEXTMETRICA @@ -323,6 +351,7 @@ tmStruckOut*: BYTE tmPitchAndFamily*: BYTE tmCharSet*: BYTE + PTEXTMETRICW* = ptr TEXTMETRICW NPTEXTMETRICW* = ptr TEXTMETRICW LPTEXTMETRICW* = ptr TEXTMETRICW @@ -351,6 +380,7 @@ ntmSizeEM*: UINT ntmCellHeight*: UINT ntmAvgWidth*: UINT + PNEWTEXTMETRICA* = ptr NEWTEXTMETRICA NPNEWTEXTMETRICA* = ptr NEWTEXTMETRICA LPNEWTEXTMETRICA* = ptr NEWTEXTMETRICA @@ -379,6 +409,7 @@ ntmSizeEM*: UINT ntmCellHeight*: UINT ntmAvgWidth*: UINT + PNEWTEXTMETRICW* = ptr NEWTEXTMETRICW NPNEWTEXTMETRICW* = ptr NEWTEXTMETRICW LPNEWTEXTMETRICW* = ptr NEWTEXTMETRICW @@ -388,6 +419,7 @@ paXExt*: LONG paYExt*: LONG paRGBs*: BYTE + PPELARRAY* = ptr PELARRAY NPPELARRAY* = ptr PELARRAY LPPELARRAY* = ptr PELARRAY @@ -395,6 +427,7 @@ lbStyle*: UINT lbColor*: COLORREF lbHatch*: ULONG_PTR + PLOGBRUSH* = ptr LOGBRUSH NPLOGBRUSH* = ptr LOGBRUSH LPLOGBRUSH* = ptr LOGBRUSH @@ -402,6 +435,7 @@ lbStyle*: UINT lbColor*: COLORREF lbHatch*: ULONG + PLOGBRUSH32* = ptr LOGBRUSH32 NPLOGBRUSH32* = ptr LOGBRUSH32 LPLOGBRUSH32* = ptr LOGBRUSH32 @@ -413,6 +447,7 @@ lopnStyle*: UINT lopnWidth*: POINT lopnColor*: COLORREF + PLOGPEN* = ptr LOGPEN NPLOGPEN* = ptr LOGPEN LPLOGPEN* = ptr LOGPEN @@ -424,6 +459,7 @@ elpHatch*: ULONG_PTR elpNumEntries*: DWORD elpStyleEntry*: array[1, DWORD] + PEXTLOGPEN* = ptr EXTLOGPEN NPEXTLOGPEN* = ptr EXTLOGPEN LPEXTLOGPEN* = ptr EXTLOGPEN @@ -435,6 +471,7 @@ elpHatch*: ULONG elpNumEntries*: DWORD elpStyleEntry*: array[1, DWORD] + PEXTLOGPEN32* = ptr EXTLOGPEN32 NPEXTLOGPEN32* = ptr EXTLOGPEN32 LPEXTLOGPEN32* = ptr EXTLOGPEN32 @@ -443,17 +480,19 @@ peGreen*: BYTE peBlue*: BYTE peFlags*: BYTE + PPALETTEENTRY* = ptr PALETTEENTRY LPPALETTEENTRY* = ptr PALETTEENTRY LOGPALETTE* {.pure.} = object palVersion*: WORD palNumEntries*: WORD palPalEntry*: array[1, PALETTEENTRY] + PLOGPALETTE* = ptr LOGPALETTE NPLOGPALETTE* = ptr LOGPALETTE LPLOGPALETTE* = ptr LOGPALETTE -const - LF_FACESIZE* = 32 + +const LF_FACESIZE* = 32 type LOGFONTA* {.pure.} = object lfHeight*: LONG @@ -470,6 +509,7 @@ lfQuality*: BYTE lfPitchAndFamily*: BYTE lfFaceName*: array[LF_FACESIZE, CHAR] + PLOGFONTA* = ptr LOGFONTA NPLOGFONTA* = ptr LOGFONTA LPLOGFONTA* = ptr LOGFONTA @@ -488,33 +528,38 @@ lfQuality*: BYTE lfPitchAndFamily*: BYTE lfFaceName*: array[LF_FACESIZE, WCHAR] + PLOGFONTW* = ptr LOGFONTW NPLOGFONTW* = ptr LOGFONTW LPLOGFONTW* = ptr LOGFONTW -const - LF_FULLFACESIZE* = 64 + +const LF_FULLFACESIZE* = 64 type ENUMLOGFONTA* {.pure.} = object elfLogFont*: LOGFONTA elfFullName*: array[LF_FULLFACESIZE, BYTE] elfStyle*: array[LF_FACESIZE, BYTE] + LPENUMLOGFONTA* = ptr ENUMLOGFONTA ENUMLOGFONTW* {.pure.} = object elfLogFont*: LOGFONTW elfFullName*: array[LF_FULLFACESIZE, WCHAR] elfStyle*: array[LF_FACESIZE, WCHAR] + LPENUMLOGFONTW* = ptr ENUMLOGFONTW ENUMLOGFONTEXA* {.pure.} = object elfLogFont*: LOGFONTA elfFullName*: array[LF_FULLFACESIZE, BYTE] elfStyle*: array[LF_FACESIZE, BYTE] elfScript*: array[LF_FACESIZE, BYTE] + LPENUMLOGFONTEXA* = ptr ENUMLOGFONTEXA ENUMLOGFONTEXW* {.pure.} = object elfLogFont*: LOGFONTW elfFullName*: array[LF_FULLFACESIZE, WCHAR] elfStyle*: array[LF_FACESIZE, WCHAR] elfScript*: array[LF_FACESIZE, WCHAR] + LPENUMLOGFONTEXW* = ptr ENUMLOGFONTEXW PANOSE* {.pure.} = object bFamilyType*: BYTE @@ -527,9 +572,10 @@ bLetterform*: BYTE bMidline*: BYTE bXHeight*: BYTE + LPPANOSE* = ptr PANOSE -const - ELF_VENDOR_SIZE* = 4 + +const ELF_VENDOR_SIZE* = 4 type EXTLOGFONTA* {.pure.} = object elfLogFont*: LOGFONTA @@ -542,6 +588,7 @@ elfVendorId*: array[ELF_VENDOR_SIZE, BYTE] elfCulture*: DWORD elfPanose*: PANOSE + PEXTLOGFONTA* = ptr EXTLOGFONTA NPEXTLOGFONTA* = ptr EXTLOGFONTA LPEXTLOGFONTA* = ptr EXTLOGFONTA @@ -556,11 +603,12 @@ elfVendorId*: array[ELF_VENDOR_SIZE, BYTE] elfCulture*: DWORD elfPanose*: PANOSE + PEXTLOGFONTW* = ptr EXTLOGFONTW NPEXTLOGFONTW* = ptr EXTLOGFONTW LPEXTLOGFONTW* = ptr EXTLOGFONTW -const - CCHDEVICENAME* = 32 + +const CCHDEVICENAME* = 32 type DEVMODEA_UNION1_STRUCT1* {.pure.} = object dmOrientation*: int16 @@ -571,19 +619,22 @@ dmCopies*: int16 dmDefaultSource*: int16 dmPrintQuality*: int16 + DEVMODEA_UNION1_STRUCT2* {.pure.} = object dmPosition*: POINTL dmDisplayOrientation*: DWORD dmDisplayFixedOutput*: DWORD + DEVMODEA_UNION1* {.pure, union.} = object struct1*: DEVMODEA_UNION1_STRUCT1 struct2*: DEVMODEA_UNION1_STRUCT2 -const - CCHFORMNAME* = 32 + +const CCHFORMNAME* = 32 type DEVMODEA_UNION2* {.pure, union.} = object dmDisplayFlags*: DWORD dmNup*: DWORD + DEVMODEA* {.pure.} = object dmDeviceName*: array[CCHDEVICENAME, BYTE] dmSpecVersion*: WORD @@ -612,6 +663,7 @@ dmReserved2*: DWORD dmPanningWidth*: DWORD dmPanningHeight*: DWORD + PDEVMODEA* = ptr DEVMODEA NPDEVMODEA* = ptr DEVMODEA LPDEVMODEA* = ptr DEVMODEA @@ -624,16 +676,20 @@ dmCopies*: int16 dmDefaultSource*: int16 dmPrintQuality*: int16 + DEVMODEW_UNION1_STRUCT2* {.pure.} = object dmPosition*: POINTL dmDisplayOrientation*: DWORD dmDisplayFixedOutput*: DWORD + DEVMODEW_UNION1* {.pure, union.} = object struct1*: DEVMODEW_UNION1_STRUCT1 struct2*: DEVMODEW_UNION1_STRUCT2 + DEVMODEW_UNION2* {.pure, union.} = object dmDisplayFlags*: DWORD dmNup*: DWORD + DEVMODEW* {.pure.} = object dmDeviceName*: array[CCHDEVICENAME, WCHAR] dmSpecVersion*: WORD @@ -662,6 +718,7 @@ dmReserved2*: DWORD dmPanningWidth*: DWORD dmPanningHeight*: DWORD + PDEVMODEW* = ptr DEVMODEW NPDEVMODEW* = ptr DEVMODEW LPDEVMODEW* = ptr DEVMODEW @@ -672,6 +729,7 @@ StateFlags*: DWORD DeviceID*: array[128, CHAR] DeviceKey*: array[128, CHAR] + PDISPLAY_DEVICEA* = ptr DISPLAY_DEVICEA LPDISPLAY_DEVICEA* = ptr DISPLAY_DEVICEA DISPLAY_DEVICEW* {.pure.} = object @@ -681,6 +739,7 @@ StateFlags*: DWORD DeviceID*: array[128, WCHAR] DeviceKey*: array[128, WCHAR] + PDISPLAY_DEVICEW* = ptr DISPLAY_DEVICEW LPDISPLAY_DEVICEW* = ptr DISPLAY_DEVICEW RGNDATAHEADER* {.pure.} = object @@ -689,10 +748,12 @@ nCount*: DWORD nRgnSize*: DWORD rcBound*: RECT + PRGNDATAHEADER* = ptr RGNDATAHEADER RGNDATA* {.pure.} = object rdh*: RGNDATAHEADER Buffer*: array[1, char] + PRGNDATA* = ptr RGNDATA NPRGNDATA* = ptr RGNDATA LPRGNDATA* = ptr RGNDATA @@ -700,6 +761,7 @@ abcA*: int32 abcB*: UINT abcC*: int32 + PABC* = ptr ABC NPABC* = ptr ABC LPABC* = ptr ABC @@ -707,6 +769,7 @@ abcfA*: FLOAT abcfB*: FLOAT abcfC*: FLOAT + PABCFLOAT* = ptr ABCFLOAT NPABCFLOAT* = ptr ABCFLOAT LPABCFLOAT* = ptr ABCFLOAT @@ -743,6 +806,7 @@ otmpFaceName*: PSTR otmpStyleName*: PSTR otmpFullName*: PSTR + POUTLINETEXTMETRICA* = ptr OUTLINETEXTMETRICA NPOUTLINETEXTMETRICA* = ptr OUTLINETEXTMETRICA LPOUTLINETEXTMETRICA* = ptr OUTLINETEXTMETRICA @@ -779,6 +843,7 @@ otmpFaceName*: PSTR otmpStyleName*: PSTR otmpFullName*: PSTR + POUTLINETEXTMETRICW* = ptr OUTLINETEXTMETRICW NPOUTLINETEXTMETRICW* = ptr OUTLINETEXTMETRICW LPOUTLINETEXTMETRICW* = ptr OUTLINETEXTMETRICW @@ -790,6 +855,7 @@ uiFlags*: UINT rcl*: RECT pdx*: ptr int32 + PPOLYTEXTA* = ptr POLYTEXTA NPPOLYTEXTA* = ptr POLYTEXTA LPPOLYTEXTA* = ptr POLYTEXTA @@ -801,17 +867,20 @@ uiFlags*: UINT rcl*: RECT pdx*: ptr int32 + PPOLYTEXTW* = ptr POLYTEXTW NPPOLYTEXTW* = ptr POLYTEXTW LPPOLYTEXTW* = ptr POLYTEXTW FIXED* {.pure.} = object fract*: WORD value*: int16 + MAT2* {.pure.} = object eM11*: FIXED eM12*: FIXED eM21*: FIXED eM22*: FIXED + LPMAT2* = ptr MAT2 GLYPHMETRICS* {.pure.} = object gmBlackBoxX*: UINT @@ -819,20 +888,24 @@ gmptGlyphOrigin*: POINT gmCellIncX*: int16 gmCellIncY*: int16 + LPGLYPHMETRICS* = ptr GLYPHMETRICS POINTFX* {.pure.} = object x*: FIXED y*: FIXED + LPPOINTFX* = ptr POINTFX TTPOLYCURVE* {.pure.} = object wType*: WORD cpfx*: WORD apfx*: array[1, POINTFX] + LPTTPOLYCURVE* = ptr TTPOLYCURVE TTPOLYGONHEADER* {.pure.} = object cb*: DWORD dwType*: DWORD pfxStart*: POINTFX + LPTTPOLYGONHEADER* = ptr TTPOLYGONHEADER GCP_RESULTSA* {.pure.} = object lStructSize*: DWORD @@ -844,6 +917,7 @@ lpGlyphs*: LPWSTR nGlyphs*: UINT nMaxFit*: int32 + LPGCP_RESULTSA* = ptr GCP_RESULTSA GCP_RESULTSW* {.pure.} = object lStructSize*: DWORD @@ -855,11 +929,13 @@ lpGlyphs*: LPWSTR nGlyphs*: UINT nMaxFit*: int32 + LPGCP_RESULTSW* = ptr GCP_RESULTSW RASTERIZER_STATUS* {.pure.} = object nSize*: int16 wFlags*: int16 nLanguageID*: int16 + LPRASTERIZER_STATUS* = ptr RASTERIZER_STATUS PIXELFORMATDESCRIPTOR* {.pure.} = object nSize*: WORD @@ -888,15 +964,21 @@ dwLayerMask*: DWORD dwVisibleMask*: DWORD dwDamageMask*: DWORD + PPIXELFORMATDESCRIPTOR* = ptr PIXELFORMATDESCRIPTOR LPPIXELFORMATDESCRIPTOR* = ptr PIXELFORMATDESCRIPTOR - OLDFONTENUMPROCA* = proc (P1: ptr LOGFONTA, P2: ptr TEXTMETRICA, P3: DWORD, P4: LPARAM): int32 {.stdcall.} + OLDFONTENUMPROCA* = proc( + P1: ptr LOGFONTA, P2: ptr TEXTMETRICA, P3: DWORD, P4: LPARAM + ): int32 {.stdcall.} FONTENUMPROCA* = OLDFONTENUMPROCA - OLDFONTENUMPROCW* = proc (P1: ptr LOGFONTW, P2: ptr TEXTMETRICW, P3: DWORD, P4: LPARAM): int32 {.stdcall.} + OLDFONTENUMPROCW* = proc( + P1: ptr LOGFONTW, P2: ptr TEXTMETRICW, P3: DWORD, P4: LPARAM + ): int32 {.stdcall.} FONTENUMPROCW* = OLDFONTENUMPROCW WCRANGE* {.pure.} = object wcLow*: WCHAR cGlyphs*: USHORT + PWCRANGE* = ptr WCRANGE LPWCRANGE* = ptr WCRANGE GLYPHSET* {.pure.} = object @@ -905,79 +987,94 @@ cGlyphsSupported*: DWORD cRanges*: DWORD ranges*: array[1, WCRANGE] + PGLYPHSET* = ptr GLYPHSET LPGLYPHSET* = ptr GLYPHSET -const - MM_MAX_NUMAXES* = 16 + +const MM_MAX_NUMAXES* = 16 type DESIGNVECTOR* {.pure.} = object dvReserved*: DWORD dvNumAxes*: DWORD dvValues*: array[MM_MAX_NUMAXES, LONG] + PDESIGNVECTOR* = ptr DESIGNVECTOR LPDESIGNVECTOR* = ptr DESIGNVECTOR -const - MM_MAX_AXES_NAMELEN* = 16 + +const MM_MAX_AXES_NAMELEN* = 16 type AXISINFOA* {.pure.} = object axMinValue*: LONG axMaxValue*: LONG axAxisName*: array[MM_MAX_AXES_NAMELEN, BYTE] + PAXISINFOA* = ptr AXISINFOA LPAXISINFOA* = ptr AXISINFOA AXISINFOW* {.pure.} = object axMinValue*: LONG axMaxValue*: LONG axAxisName*: array[MM_MAX_AXES_NAMELEN, WCHAR] + PAXISINFOW* = ptr AXISINFOW LPAXISINFOW* = ptr AXISINFOW AXESLISTA* {.pure.} = object axlReserved*: DWORD axlNumAxes*: DWORD axlAxisInfo*: array[MM_MAX_NUMAXES, AXISINFOA] + PAXESLISTA* = ptr AXESLISTA LPAXESLISTA* = ptr AXESLISTA AXESLISTW* {.pure.} = object axlReserved*: DWORD axlNumAxes*: DWORD axlAxisInfo*: array[MM_MAX_NUMAXES, AXISINFOW] + PAXESLISTW* = ptr AXESLISTW LPAXESLISTW* = ptr AXESLISTW ENUMLOGFONTEXDVA* {.pure.} = object elfEnumLogfontEx*: ENUMLOGFONTEXA elfDesignVector*: DESIGNVECTOR + PENUMLOGFONTEXDVA* = ptr ENUMLOGFONTEXDVA LPENUMLOGFONTEXDVA* = ptr ENUMLOGFONTEXDVA ENUMLOGFONTEXDVW* {.pure.} = object elfEnumLogfontEx*: ENUMLOGFONTEXW elfDesignVector*: DESIGNVECTOR + PENUMLOGFONTEXDVW* = ptr ENUMLOGFONTEXDVW LPENUMLOGFONTEXDVW* = ptr ENUMLOGFONTEXDVW NEWTEXTMETRICEXA* {.pure.} = object ntmTm*: NEWTEXTMETRICA ntmFontSig*: FONTSIGNATURE + ENUMTEXTMETRICA* {.pure.} = object etmNewTextMetricEx*: NEWTEXTMETRICEXA etmAxesList*: AXESLISTA + PENUMTEXTMETRICA* = ptr ENUMTEXTMETRICA LPENUMTEXTMETRICA* = ptr ENUMTEXTMETRICA NEWTEXTMETRICEXW* {.pure.} = object ntmTm*: NEWTEXTMETRICW ntmFontSig*: FONTSIGNATURE + ENUMTEXTMETRICW* {.pure.} = object etmNewTextMetricEx*: NEWTEXTMETRICEXW etmAxesList*: AXESLISTW + PENUMTEXTMETRICW* = ptr ENUMTEXTMETRICW LPENUMTEXTMETRICW* = ptr ENUMTEXTMETRICW - DDRAWMARSHCALLBACKMARSHAL* = proc (hGdiObj: HGDIOBJ, pGdiRef: LPVOID, ppDDrawRef: ptr LPVOID): HRESULT {.stdcall.} - DDRAWMARSHCALLBACKUNMARSHAL* = proc (pData: LPVOID, phdc: ptr HDC, ppDDrawRef: ptr LPVOID): HRESULT {.stdcall.} - DDRAWMARSHCALLBACKRELEASE* = proc (pDDrawRef: LPVOID): HRESULT {.stdcall.} + DDRAWMARSHCALLBACKMARSHAL* = + proc(hGdiObj: HGDIOBJ, pGdiRef: LPVOID, ppDDrawRef: ptr LPVOID): HRESULT {.stdcall.} + DDRAWMARSHCALLBACKUNMARSHAL* = + proc(pData: LPVOID, phdc: ptr HDC, ppDDrawRef: ptr LPVOID): HRESULT {.stdcall.} + DDRAWMARSHCALLBACKRELEASE* = proc(pDDrawRef: LPVOID): HRESULT {.stdcall.} GDIREGISTERDDRAWPACKET* {.pure.} = object dwSize*: DWORD dwVersion*: DWORD pfnDdMarshal*: DDRAWMARSHCALLBACKMARSHAL pfnDdUnmarshal*: DDRAWMARSHCALLBACKUNMARSHAL pfnDdRelease*: DDRAWMARSHCALLBACKRELEASE + PGDIREGISTERDDRAWPACKET* = ptr GDIREGISTERDDRAWPACKET TRIVERTEX* {.pure.} = object x*: LONG @@ -986,17 +1083,20 @@ Green*: COLOR16 Blue*: COLOR16 Alpha*: COLOR16 + PTRIVERTEX* = ptr TRIVERTEX LPTRIVERTEX* = ptr TRIVERTEX GRADIENT_TRIANGLE* {.pure.} = object Vertex1*: ULONG Vertex2*: ULONG Vertex3*: ULONG + PGRADIENT_TRIANGLE* = ptr GRADIENT_TRIANGLE LPGRADIENT_TRIANGLE* = ptr GRADIENT_TRIANGLE GRADIENT_RECT* {.pure.} = object UpperLeft*: ULONG LowerRight*: ULONG + PGRADIENT_RECT* = ptr GRADIENT_RECT LPGRADIENT_RECT* = ptr GRADIENT_RECT BLENDFUNCTION* {.pure.} = object @@ -1004,6 +1104,7 @@ BlendFlags*: BYTE SourceConstantAlpha*: BYTE AlphaFormat*: BYTE + PBLENDFUNCTION* = ptr BLENDFUNCTION DIBSECTION* {.pure.} = object dsBm*: BITMAP @@ -1011,6 +1112,7 @@ dsBitfields*: array[3, DWORD] dshSection*: HANDLE dsOffset*: DWORD + LPDIBSECTION* = ptr DIBSECTION PDIBSECTION* = ptr DIBSECTION COLORADJUSTMENT* {.pure.} = object @@ -1026,6 +1128,7 @@ caBrightness*: SHORT caColorfulness*: SHORT caRedGreenTint*: SHORT + PCOLORADJUSTMENT* = ptr COLORADJUSTMENT LPCOLORADJUSTMENT* = ptr COLORADJUSTMENT DOCINFOA* {.pure.} = object @@ -1034,6 +1137,7 @@ lpszOutput*: LPCSTR lpszDatatype*: LPCSTR fwType*: DWORD + LPDOCINFOA* = ptr DOCINFOA DOCINFOW* {.pure.} = object cbSize*: int32 @@ -1041,15 +1145,18 @@ lpszOutput*: LPCWSTR lpszDatatype*: LPCWSTR fwType*: DWORD + LPDOCINFOW* = ptr DOCINFOW KERNINGPAIR* {.pure.} = object wFirst*: WORD wSecond*: WORD iKernAmount*: int32 + LPKERNINGPAIR* = ptr KERNINGPAIR EMR* {.pure.} = object iType*: DWORD nSize*: DWORD + PEMR* = ptr EMR EMRTEXT* {.pure.} = object ptlReference*: POINTL @@ -1058,9 +1165,11 @@ fOptions*: DWORD rcl*: RECTL offDx*: DWORD + PEMRTEXT* = ptr EMRTEXT EMRABORTPATH* {.pure.} = object emr*: EMR + PEMRABORTPATH* = ptr EMRABORTPATH EMRBEGINPATH* = EMRABORTPATH PEMRBEGINPATH* = ptr EMRABORTPATH @@ -1081,6 +1190,7 @@ EMRSELECTCLIPPATH* {.pure.} = object emr*: EMR iMode*: DWORD + PEMRSELECTCLIPPATH* = ptr EMRSELECTCLIPPATH EMRSETBKMODE* = EMRSELECTCLIPPATH PEMRSETBKMODE* = ptr EMRSELECTCLIPPATH @@ -1101,39 +1211,47 @@ EMRSETMITERLIMIT* {.pure.} = object emr*: EMR eMiterLimit*: FLOAT + PEMRSETMITERLIMIT* = ptr EMRSETMITERLIMIT EMRRESTOREDC* {.pure.} = object emr*: EMR iRelative*: LONG + PEMRRESTOREDC* = ptr EMRRESTOREDC EMRSETARCDIRECTION* {.pure.} = object emr*: EMR iArcDirection*: DWORD + PEMRSETARCDIRECTION* = ptr EMRSETARCDIRECTION EMRSETMAPPERFLAGS* {.pure.} = object emr*: EMR dwFlags*: DWORD + PEMRSETMAPPERFLAGS* = ptr EMRSETMAPPERFLAGS EMRSETBKCOLOR* {.pure.} = object emr*: EMR crColor*: COLORREF + PEMRSETBKCOLOR* = ptr EMRSETBKCOLOR EMRSETTEXTCOLOR* = EMRSETBKCOLOR PEMRSETTEXTCOLOR* = ptr EMRSETBKCOLOR EMRSELECTOBJECT* {.pure.} = object emr*: EMR ihObject*: DWORD + PEMRSELECTOBJECT* = ptr EMRSELECTOBJECT EMRDELETEOBJECT* = EMRSELECTOBJECT PEMRDELETEOBJECT* = ptr EMRSELECTOBJECT EMRSELECTPALETTE* {.pure.} = object emr*: EMR ihPal*: DWORD + PEMRSELECTPALETTE* = ptr EMRSELECTPALETTE EMRRESIZEPALETTE* {.pure.} = object emr*: EMR ihPal*: DWORD cEntries*: DWORD + PEMRRESIZEPALETTE* = ptr EMRRESIZEPALETTE EMRSETPALETTEENTRIES* {.pure.} = object emr*: EMR @@ -1141,35 +1259,42 @@ iStart*: DWORD cEntries*: DWORD aPalEntries*: array[1, PALETTEENTRY] + PEMRSETPALETTEENTRIES* = ptr EMRSETPALETTEENTRIES EMRSETCOLORADJUSTMENT* {.pure.} = object emr*: EMR ColorAdjustment*: COLORADJUSTMENT + PEMRSETCOLORADJUSTMENT* = ptr EMRSETCOLORADJUSTMENT EMRGDICOMMENT* {.pure.} = object emr*: EMR cbData*: DWORD Data*: array[1, BYTE] + PEMRGDICOMMENT* = ptr EMRGDICOMMENT EMREOF* {.pure.} = object emr*: EMR nPalEntries*: DWORD offPalEntries*: DWORD nSizeLast*: DWORD + PEMREOF* = ptr EMREOF EMRLINETO* {.pure.} = object emr*: EMR ptl*: POINTL + PEMRLINETO* = ptr EMRLINETO EMRMOVETOEX* = EMRLINETO PEMRMOVETOEX* = ptr EMRLINETO EMROFFSETCLIPRGN* {.pure.} = object emr*: EMR ptlOffset*: POINTL + PEMROFFSETCLIPRGN* = ptr EMROFFSETCLIPRGN EMRFILLPATH* {.pure.} = object emr*: EMR rclBounds*: RECTL + PEMRFILLPATH* = ptr EMRFILLPATH EMRSTROKEANDFILLPATH* = EMRFILLPATH PEMRSTROKEANDFILLPATH* = ptr EMRFILLPATH @@ -1178,12 +1303,14 @@ EMREXCLUDECLIPRECT* {.pure.} = object emr*: EMR rclClip*: RECTL + PEMREXCLUDECLIPRECT* = ptr EMREXCLUDECLIPRECT EMRINTERSECTCLIPRECT* = EMREXCLUDECLIPRECT PEMRINTERSECTCLIPRECT* = ptr EMREXCLUDECLIPRECT EMRSETVIEWPORTORGEX* {.pure.} = object emr*: EMR ptlOrigin*: POINTL + PEMRSETVIEWPORTORGEX* = ptr EMRSETVIEWPORTORGEX EMRSETWINDOWORGEX* = EMRSETVIEWPORTORGEX PEMRSETWINDOWORGEX* = ptr EMRSETVIEWPORTORGEX @@ -1192,6 +1319,7 @@ EMRSETVIEWPORTEXTEX* {.pure.} = object emr*: EMR szlExtent*: SIZEL + PEMRSETVIEWPORTEXTEX* = ptr EMRSETVIEWPORTEXTEX EMRSETWINDOWEXTEX* = EMRSETVIEWPORTEXTEX PEMRSETWINDOWEXTEX* = ptr EMRSETVIEWPORTEXTEX @@ -1201,32 +1329,38 @@ xDenom*: LONG yNum*: LONG yDenom*: LONG + PEMRSCALEVIEWPORTEXTEX* = ptr EMRSCALEVIEWPORTEXTEX EMRSCALEWINDOWEXTEX* = EMRSCALEVIEWPORTEXTEX PEMRSCALEWINDOWEXTEX* = ptr EMRSCALEVIEWPORTEXTEX EMRSETWORLDTRANSFORM* {.pure.} = object emr*: EMR xform*: XFORM + PEMRSETWORLDTRANSFORM* = ptr EMRSETWORLDTRANSFORM EMRMODIFYWORLDTRANSFORM* {.pure.} = object emr*: EMR xform*: XFORM iMode*: DWORD + PEMRMODIFYWORLDTRANSFORM* = ptr EMRMODIFYWORLDTRANSFORM EMRSETPIXELV* {.pure.} = object emr*: EMR ptlPixel*: POINTL crColor*: COLORREF + PEMRSETPIXELV* = ptr EMRSETPIXELV EMREXTFLOODFILL* {.pure.} = object emr*: EMR ptlStart*: POINTL crColor*: COLORREF iMode*: DWORD + PEMREXTFLOODFILL* = ptr EMREXTFLOODFILL EMRELLIPSE* {.pure.} = object emr*: EMR rclBox*: RECTL + PEMRELLIPSE* = ptr EMRELLIPSE EMRRECTANGLE* = EMRELLIPSE PEMRRECTANGLE* = ptr EMRELLIPSE @@ -1234,12 +1368,14 @@ emr*: EMR rclBox*: RECTL szlCorner*: SIZEL + PEMRROUNDRECT* = ptr EMRROUNDRECT EMRARC* {.pure.} = object emr*: EMR rclBox*: RECTL ptlStart*: POINTL ptlEnd*: POINTL + PEMRARC* = ptr EMRARC EMRARCTO* = EMRARC PEMRARCTO* = ptr EMRARC @@ -1253,12 +1389,14 @@ nRadius*: DWORD eStartAngle*: FLOAT eSweepAngle*: FLOAT + PEMRANGLEARC* = ptr EMRANGLEARC EMRPOLYLINE* {.pure.} = object emr*: EMR rclBounds*: RECTL cptl*: DWORD aptl*: array[1, POINTL] + PEMRPOLYLINE* = ptr EMRPOLYLINE EMRPOLYBEZIER* = EMRPOLYLINE PEMRPOLYBEZIER* = ptr EMRPOLYLINE @@ -1273,6 +1411,7 @@ rclBounds*: RECTL cpts*: DWORD apts*: array[1, POINTS] + PEMRPOLYLINE16* = ptr EMRPOLYLINE16 EMRPOLYBEZIER16* = EMRPOLYLINE16 PEMRPOLYBEZIER16* = ptr EMRPOLYLINE16 @@ -1288,6 +1427,7 @@ cptl*: DWORD aptl*: array[1, POINTL] abTypes*: array[1, BYTE] + PEMRPOLYDRAW* = ptr EMRPOLYDRAW EMRPOLYDRAW16* {.pure.} = object emr*: EMR @@ -1295,6 +1435,7 @@ cpts*: DWORD apts*: array[1, POINTS] abTypes*: array[1, BYTE] + PEMRPOLYDRAW16* = ptr EMRPOLYDRAW16 EMRPOLYPOLYLINE* {.pure.} = object emr*: EMR @@ -1303,6 +1444,7 @@ cptl*: DWORD aPolyCounts*: array[1, DWORD] aptl*: array[1, POINTL] + PEMRPOLYPOLYLINE* = ptr EMRPOLYPOLYLINE EMRPOLYPOLYGON* = EMRPOLYPOLYLINE PEMRPOLYPOLYGON* = ptr EMRPOLYPOLYLINE @@ -1313,6 +1455,7 @@ cpts*: DWORD aPolyCounts*: array[1, DWORD] apts*: array[1, POINTS] + PEMRPOLYPOLYLINE16* = ptr EMRPOLYPOLYLINE16 EMRPOLYPOLYGON16* = EMRPOLYPOLYLINE16 PEMRPOLYPOLYGON16* = ptr EMRPOLYPOLYLINE16 @@ -1321,6 +1464,7 @@ rclBounds*: RECTL cbRgnData*: DWORD RgnData*: array[1, BYTE] + PEMRINVERTRGN* = ptr EMRINVERTRGN EMRPAINTRGN* = EMRINVERTRGN PEMRPAINTRGN* = ptr EMRINVERTRGN @@ -1330,6 +1474,7 @@ cbRgnData*: DWORD ihBrush*: DWORD RgnData*: array[1, BYTE] + PEMRFILLRGN* = ptr EMRFILLRGN EMRFRAMERGN* {.pure.} = object emr*: EMR @@ -1338,12 +1483,14 @@ ihBrush*: DWORD szlStroke*: SIZEL RgnData*: array[1, BYTE] + PEMRFRAMERGN* = ptr EMRFRAMERGN EMREXTSELECTCLIPRGN* {.pure.} = object emr*: EMR cbRgnData*: DWORD iMode*: DWORD RgnData*: array[1, BYTE] + PEMREXTSELECTCLIPRGN* = ptr EMREXTSELECTCLIPRGN EMREXTTEXTOUTA* {.pure.} = object emr*: EMR @@ -1352,6 +1499,7 @@ exScale*: FLOAT eyScale*: FLOAT emrtext*: EMRTEXT + PEMREXTTEXTOUTA* = ptr EMREXTTEXTOUTA EMREXTTEXTOUTW* = EMREXTTEXTOUTA PEMREXTTEXTOUTW* = ptr EMREXTTEXTOUTA @@ -1363,6 +1511,7 @@ eyScale*: FLOAT cStrings*: LONG aemrtext*: array[1, EMRTEXT] + PEMRPOLYTEXTOUTA* = ptr EMRPOLYTEXTOUTA EMRPOLYTEXTOUTW* = EMRPOLYTEXTOUTA PEMRPOLYTEXTOUTW* = ptr EMRPOLYTEXTOUTA @@ -1383,6 +1532,7 @@ cbBmiSrc*: DWORD offBitsSrc*: DWORD cbBitsSrc*: DWORD + PEMRBITBLT* = ptr EMRBITBLT EMRSTRETCHBLT* {.pure.} = object emr*: EMR @@ -1403,6 +1553,7 @@ cbBitsSrc*: DWORD cxSrc*: LONG cySrc*: LONG + PEMRSTRETCHBLT* = ptr EMRSTRETCHBLT EMRMASKBLT* {.pure.} = object emr*: EMR @@ -1428,6 +1579,7 @@ cbBmiMask*: DWORD offBitsMask*: DWORD cbBitsMask*: DWORD + PEMRMASKBLT* = ptr EMRMASKBLT EMRPLGBLT* {.pure.} = object emr*: EMR @@ -1451,6 +1603,7 @@ cbBmiMask*: DWORD offBitsMask*: DWORD cbBitsMask*: DWORD + PEMRPLGBLT* = ptr EMRPLGBLT EMRSETDIBITSTODEVICE* {.pure.} = object emr*: EMR @@ -1468,6 +1621,7 @@ iUsageSrc*: DWORD iStartScan*: DWORD cScans*: DWORD + PEMRSETDIBITSTODEVICE* = ptr EMRSETDIBITSTODEVICE EMRSTRETCHDIBITS* {.pure.} = object emr*: EMR @@ -1486,21 +1640,25 @@ dwRop*: DWORD cxDest*: LONG cyDest*: LONG + PEMRSTRETCHDIBITS* = ptr EMRSTRETCHDIBITS EMREXTCREATEFONTINDIRECTW* {.pure.} = object emr*: EMR ihFont*: DWORD elfw*: EXTLOGFONTW + PEMREXTCREATEFONTINDIRECTW* = ptr EMREXTCREATEFONTINDIRECTW EMRCREATEPALETTE* {.pure.} = object emr*: EMR ihPal*: DWORD lgpl*: LOGPALETTE + PEMRCREATEPALETTE* = ptr EMRCREATEPALETTE EMRCREATEPEN* {.pure.} = object emr*: EMR ihPen*: DWORD lopn*: LOGPEN + PEMRCREATEPEN* = ptr EMRCREATEPEN EMREXTCREATEPEN* {.pure.} = object emr*: EMR @@ -1510,11 +1668,13 @@ offBits*: DWORD cbBits*: DWORD elp*: EXTLOGPEN + PEMREXTCREATEPEN* = ptr EMREXTCREATEPEN EMRCREATEBRUSHINDIRECT* {.pure.} = object emr*: EMR ihBrush*: DWORD lb*: LOGBRUSH32 + PEMRCREATEBRUSHINDIRECT* = ptr EMRCREATEBRUSHINDIRECT EMRCREATEMONOBRUSH* {.pure.} = object emr*: EMR @@ -1524,6 +1684,7 @@ cbBmi*: DWORD offBits*: DWORD cbBits*: DWORD + PEMRCREATEMONOBRUSH* = ptr EMRCREATEMONOBRUSH EMRCREATEDIBPATTERNBRUSHPT* {.pure.} = object emr*: EMR @@ -1533,36 +1694,43 @@ cbBmi*: DWORD offBits*: DWORD cbBits*: DWORD + PEMRCREATEDIBPATTERNBRUSHPT* = ptr EMRCREATEDIBPATTERNBRUSHPT EMRFORMAT* {.pure.} = object dSignature*: DWORD nVersion*: DWORD cbData*: DWORD offData*: DWORD + PEMRFORMAT* = ptr EMRFORMAT EMRGLSRECORD* {.pure.} = object emr*: EMR cbData*: DWORD Data*: array[1, BYTE] + PEMRGLSRECORD* = ptr EMRGLSRECORD EMRGLSBOUNDEDRECORD* {.pure.} = object emr*: EMR rclBounds*: RECTL cbData*: DWORD Data*: array[1, BYTE] + PEMRGLSBOUNDEDRECORD* = ptr EMRGLSBOUNDEDRECORD EMRPIXELFORMAT* {.pure.} = object emr*: EMR pfd*: PIXELFORMATDESCRIPTOR + PEMRPIXELFORMAT* = ptr EMRPIXELFORMAT EMRCREATECOLORSPACE* {.pure.} = object emr*: EMR ihCS*: DWORD lcs*: LOGCOLORSPACEA + PEMRCREATECOLORSPACE* = ptr EMRCREATECOLORSPACE EMRSETCOLORSPACE* {.pure.} = object emr*: EMR ihCS*: DWORD + PEMRSETCOLORSPACE* = ptr EMRSETCOLORSPACE EMRSELECTCOLORSPACE* = EMRSETCOLORSPACE PEMRSELECTCOLORSPACE* = ptr EMRSETCOLORSPACE @@ -1573,6 +1741,7 @@ iEscape*: INT cbEscData*: INT EscData*: array[1, BYTE] + PEMREXTESCAPE* = ptr EMREXTESCAPE EMRDRAWESCAPE* = EMREXTESCAPE PEMRDRAWESCAPE* = ptr EMREXTESCAPE @@ -1582,6 +1751,7 @@ cbDriver*: INT cbEscData*: INT EscData*: array[1, BYTE] + PEMRNAMEDESCAPE* = ptr EMRNAMEDESCAPE EMRSETICMPROFILE* {.pure.} = object emr*: EMR @@ -1589,6 +1759,7 @@ cbName*: DWORD cbData*: DWORD Data*: array[1, BYTE] + PEMRSETICMPROFILE* = ptr EMRSETICMPROFILE EMRSETICMPROFILEA* = EMRSETICMPROFILE PEMRSETICMPROFILEA* = ptr EMRSETICMPROFILE @@ -1601,6 +1772,7 @@ dwFlags*: DWORD cbData*: DWORD Data*: array[1, BYTE] + PEMRCREATECOLORSPACEW* = ptr EMRCREATECOLORSPACEW EMRCOLORMATCHTOTARGET* {.pure.} = object emr*: EMR @@ -1609,6 +1781,7 @@ cbName*: DWORD cbData*: DWORD Data*: array[1, BYTE] + PEMRCOLORMATCHTOTARGET* = ptr EMRCOLORMATCHTOTARGET EMRCOLORCORRECTPALETTE* {.pure.} = object emr*: EMR @@ -1616,6 +1789,7 @@ nFirstEntry*: DWORD nPalEntries*: DWORD nReserved*: DWORD + PEMRCOLORCORRECTPALETTE* = ptr EMRCOLORCORRECTPALETTE EMRALPHABLEND* {.pure.} = object emr*: EMR @@ -1636,6 +1810,7 @@ cbBitsSrc*: DWORD cxSrc*: LONG cySrc*: LONG + PEMRALPHABLEND* = ptr EMRALPHABLEND EMRGRADIENTFILL* {.pure.} = object emr*: EMR @@ -1644,6 +1819,7 @@ nTri*: DWORD ulMode*: ULONG Ver*: array[1, TRIVERTEX] + PEMRGRADIENTFILL* = ptr EMRGRADIENTFILL EMRTRANSPARENTBLT* {.pure.} = object emr*: EMR @@ -1664,10 +1840,12 @@ cbBitsSrc*: DWORD cxSrc*: LONG cySrc*: LONG + PEMRTRANSPARENTBLT* = ptr EMRTRANSPARENTBLT POINTFLOAT* {.pure.} = object x*: FLOAT y*: FLOAT + PPOINTFLOAT* = ptr POINTFLOAT GLYPHMETRICSFLOAT* {.pure.} = object gmfBlackBoxX*: FLOAT @@ -1675,6 +1853,7 @@ gmfptGlyphOrigin*: POINTFLOAT gmfCellIncX*: FLOAT gmfCellIncY*: FLOAT + PGLYPHMETRICSFLOAT* = ptr GLYPHMETRICSFLOAT LPGLYPHMETRICSFLOAT* = ptr GLYPHMETRICSFLOAT LAYERPLANEDESCRIPTOR* {.pure.} = object @@ -1702,13 +1881,16 @@ iLayerPlane*: BYTE bReserved*: BYTE crTransparent*: COLORREF + PLAYERPLANEDESCRIPTOR* = ptr LAYERPLANEDESCRIPTOR LPLAYERPLANEDESCRIPTOR* = ptr LAYERPLANEDESCRIPTOR WGLSWAP* {.pure.} = object hdc*: HDC uiFlags*: UINT + PWGLSWAP* = ptr WGLSWAP LPWGLSWAP* = ptr WGLSWAP + const R2_BLACK* = 1 R2_NOTMERGEPEN* = 2 @@ -1784,7 +1966,7 @@ TA_BOTTOM* = 8 TA_BASELINE* = 24 TA_RTLREADING* = 256 - TA_MASK* = TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING + TA_MASK* = TA_BASELINE + TA_CENTER + TA_UPDATECP + TA_RTLREADING VTA_BASELINE* = TA_BASELINE VTA_LEFT* = TA_BOTTOM VTA_RIGHT* = TA_TOP @@ -2813,7 +2995,9 @@ SDC_TOPOLOGY_EXTEND* = 0x00000004 SDC_TOPOLOGY_EXTERNAL* = 0x00000008 SDC_TOPOLOGY_SUPPLIED* = 0x00000010 - SDC_USE_DATABASE_CURRENT* = SDC_TOPOLOGY_INTERNAL or SDC_TOPOLOGY_CLONE or SDC_TOPOLOGY_EXTEND or SDC_TOPOLOGY_EXTERNAL + SDC_USE_DATABASE_CURRENT* = + SDC_TOPOLOGY_INTERNAL or SDC_TOPOLOGY_CLONE or SDC_TOPOLOGY_EXTEND or + SDC_TOPOLOGY_EXTERNAL SDC_USE_SUPPLIED_DISPLAY_CONFIG* = 0x00000020 SDC_VALIDATE* = 0x00000040 SDC_APPLY* = 0x00000080 @@ -3159,29 +3343,48 @@ STAMP_AXESLIST* = 0x08006C61 STAMP_DESIGNVECTOR* = 0x08007664 type - GOBJENUMPROC* = proc (P1: LPVOID, P2: LPARAM): int32 {.stdcall.} - LINEDDAPROC* = proc (P1: int32, P2: int32, P3: LPARAM): VOID {.stdcall.} + GOBJENUMPROC* = proc(P1: LPVOID, P2: LPARAM): int32 {.stdcall.} + LINEDDAPROC* = proc(P1: int32, P2: int32, P3: LPARAM): VOID {.stdcall.} + when winimUnicode: - type - LPDEVMODE* = LPDEVMODEW + type LPDEVMODE* = LPDEVMODEW when winimAnsi: - type - LPDEVMODE* = LPDEVMODEA + type LPDEVMODE* = LPDEVMODEA type - LPFNDEVMODE* = proc (P1: HWND, P2: HMODULE, P3: LPDEVMODE, P4: LPSTR, P5: LPSTR, P6: LPDEVMODE, P7: LPSTR, P8: UINT): UINT {.stdcall.} - LPFNDEVCAPS* = proc (P1: LPSTR, P2: LPSTR, P3: UINT, P4: LPSTR, P5: LPDEVMODE): DWORD {.stdcall.} - GDIMARSHALLOC* = proc (dwSize: DWORD, pGdiRef: LPVOID): PVOID {.stdcall.} - MFENUMPROC* = proc (hdc: HDC, lpht: ptr HANDLETABLE, lpMR: ptr METARECORD, nObj: int32, lParam: LPARAM): int32 {.stdcall.} - ENHMFENUMPROC* = proc (hdc: HDC, lpht: ptr HANDLETABLE, lpmr: ptr ENHMETARECORD, hHandles: int32, data: LPARAM): int32 {.stdcall.} - ABORTPROC* = proc (P1: HDC, P2: int32): WINBOOL {.stdcall.} - ICMENUMPROCA* = proc (P1: LPSTR, P2: LPARAM): int32 {.stdcall.} - ICMENUMPROCW* = proc (P1: LPWSTR, P2: LPARAM): int32 {.stdcall.} + LPFNDEVMODE* = proc( + P1: HWND, + P2: HMODULE, + P3: LPDEVMODE, + P4: LPSTR, + P5: LPSTR, + P6: LPDEVMODE, + P7: LPSTR, + P8: UINT, + ): UINT {.stdcall.} + LPFNDEVCAPS* = + proc(P1: LPSTR, P2: LPSTR, P3: UINT, P4: LPSTR, P5: LPDEVMODE): DWORD {.stdcall.} + GDIMARSHALLOC* = proc(dwSize: DWORD, pGdiRef: LPVOID): PVOID {.stdcall.} + MFENUMPROC* = proc( + hdc: HDC, lpht: ptr HANDLETABLE, lpMR: ptr METARECORD, nObj: int32, lParam: LPARAM + ): int32 {.stdcall.} + ENHMFENUMPROC* = proc( + hdc: HDC, + lpht: ptr HANDLETABLE, + lpmr: ptr ENHMETARECORD, + hHandles: int32, + data: LPARAM, + ): int32 {.stdcall.} + ABORTPROC* = proc(P1: HDC, P2: int32): WINBOOL {.stdcall.} + ICMENUMPROCA* = proc(P1: LPSTR, P2: LPARAM): int32 {.stdcall.} + ICMENUMPROCW* = proc(P1: LPWSTR, P2: LPARAM): int32 {.stdcall.} DISPLAYCONFIG_RATIONAL* {.pure.} = object Numerator*: UINT32 Denominator*: UINT32 + DISPLAYCONFIG_2DREGION* {.pure.} = object cx*: UINT32 cy*: UINT32 + DISPLAYCONFIG_VIDEO_SIGNAL_INFO* {.pure.} = object pixelRate*: UINT64 hSyncFreq*: DISPLAYCONFIG_RATIONAL @@ -3190,26 +3393,32 @@ totalSize*: DISPLAYCONFIG_2DREGION videoStandard*: UINT32 scanLineOrdering*: DISPLAYCONFIG_SCANLINE_ORDERING + DISPLAYCONFIG_SOURCE_MODE* {.pure.} = object width*: UINT32 height*: UINT32 pixelFormat*: DISPLAYCONFIG_PIXELFORMAT position*: POINTL + DISPLAYCONFIG_TARGET_MODE* {.pure.} = object targetVideoSignalInfo*: DISPLAYCONFIG_VIDEO_SIGNAL_INFO + DISPLAYCONFIG_MODE_INFO_UNION1* {.pure, union.} = object targetMode*: DISPLAYCONFIG_TARGET_MODE sourceMode*: DISPLAYCONFIG_SOURCE_MODE + DISPLAYCONFIG_MODE_INFO* {.pure.} = object infoType*: DISPLAYCONFIG_MODE_INFO_TYPE id*: UINT32 adapterId*: LUID union1*: DISPLAYCONFIG_MODE_INFO_UNION1 + DISPLAYCONFIG_PATH_SOURCE_INFO* {.pure.} = object adapterId*: LUID id*: UINT32 modeInfoIdx*: UINT32 statusFlags*: UINT32 + DISPLAYCONFIG_PATH_TARGET_INFO* {.pure.} = object adapterId*: LUID id*: UINT32 @@ -3221,28 +3430,35 @@ scanLineOrdering*: DISPLAYCONFIG_SCANLINE_ORDERING targetAvailable*: WINBOOL statusFlags*: UINT32 + DISPLAYCONFIG_PATH_INFO* {.pure.} = object sourceInfo*: DISPLAYCONFIG_PATH_SOURCE_INFO targetInfo*: DISPLAYCONFIG_PATH_TARGET_INFO flags*: UINT32 + DISPLAYCONFIG_DEVICE_INFO_HEADER* {.pure.} = object `type`*: DISPLAYCONFIG_DEVICE_INFO_TYPE size*: UINT32 adapterId*: LUID id*: UINT32 + DISPLAYCONFIG_SOURCE_DEVICE_NAME* {.pure.} = object header*: DISPLAYCONFIG_DEVICE_INFO_HEADER viewGdiDeviceName*: array[CCHDEVICENAME, WCHAR] + DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_UNION1_STRUCT1* {.pure.} = object - friendlyNameFromEdid* {.bitsize:1.}: UINT32 - friendlyNameForced* {.bitsize:1.}: UINT32 - edidIdsValid* {.bitsize:1.}: UINT32 - reserved* {.bitsize:29.}: UINT32 + friendlyNameFromEdid* {.bitsize: 1.}: UINT32 + friendlyNameForced* {.bitsize: 1.}: UINT32 + edidIdsValid* {.bitsize: 1.}: UINT32 + reserved* {.bitsize: 29.}: UINT32 + DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_UNION1* {.pure, union.} = object struct1*: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_UNION1_STRUCT1 value*: UINT32 + DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS* {.pure.} = object union1*: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS_UNION1 + DISPLAYCONFIG_TARGET_DEVICE_NAME* {.pure.} = object header*: DISPLAYCONFIG_DEVICE_INFO_HEADER flags*: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS @@ -3252,502 +3468,1983 @@ connectorInstance*: UINT32 monitorFriendlyDeviceName*: array[64, WCHAR] monitorDevicePath*: array[128, WCHAR] + DISPLAYCONFIG_TARGET_PREFERRED_MODE* {.pure.} = object header*: DISPLAYCONFIG_DEVICE_INFO_HEADER width*: UINT32 height*: UINT32 targetMode*: DISPLAYCONFIG_TARGET_MODE + DISPLAYCONFIG_ADAPTER_NAME* {.pure.} = object header*: DISPLAYCONFIG_DEVICE_INFO_HEADER adapterDevicePath*: array[128, WCHAR] + DISPLAYCONFIG_SET_TARGET_PERSISTENCE_UNION1_STRUCT1* {.pure.} = object - bootPersistenceOn* {.bitsize:1.}: UINT32 - reserved* {.bitsize:31.}: UINT32 + bootPersistenceOn* {.bitsize: 1.}: UINT32 + reserved* {.bitsize: 31.}: UINT32 + DISPLAYCONFIG_SET_TARGET_PERSISTENCE_UNION1* {.pure, union.} = object struct1*: DISPLAYCONFIG_SET_TARGET_PERSISTENCE_UNION1_STRUCT1 value*: UINT32 + DISPLAYCONFIG_SET_TARGET_PERSISTENCE* {.pure.} = object header*: DISPLAYCONFIG_DEVICE_INFO_HEADER union1*: DISPLAYCONFIG_SET_TARGET_PERSISTENCE_UNION1 + proc AddFontResourceA*(P1: LPCSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} proc AddFontResourceW*(P1: LPCWSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc AnimatePalette*(hPal: HPALETTE, iStartIndex: UINT, cEntries: UINT, ppe: ptr PALETTEENTRY): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Arc*(hdc: HDC, x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, x4: int32, y4: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc BitBlt*(hdc: HDC, x: int32, y: int32, cx: int32, cy: int32, hdcSrc: HDC, x1: int32, y1: int32, rop: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc AnimatePalette*( + hPal: HPALETTE, iStartIndex: UINT, cEntries: UINT, ppe: ptr PALETTEENTRY +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Arc*( + hdc: HDC, + x1: int32, + y1: int32, + x2: int32, + y2: int32, + x3: int32, + y3: int32, + x4: int32, + y4: int32, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc BitBlt*( + hdc: HDC, + x: int32, + y: int32, + cx: int32, + cy: int32, + hdcSrc: HDC, + x1: int32, + y1: int32, + rop: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc CancelDC*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Chord*(hdc: HDC, x1: int32, y1: int32, x2: int32, y2: int32, x3: int32, y3: int32, x4: int32, y4: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ChoosePixelFormat*(hdc: HDC, ppfd: ptr PIXELFORMATDESCRIPTOR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc Chord*( + hdc: HDC, + x1: int32, + y1: int32, + x2: int32, + y2: int32, + x3: int32, + y3: int32, + x4: int32, + y4: int32, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ChoosePixelFormat*( + hdc: HDC, ppfd: ptr PIXELFORMATDESCRIPTOR +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc CloseMetaFile*(hdc: HDC): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CombineRgn*(hrgnDst: HRGN, hrgnSrc1: HRGN, hrgnSrc2: HRGN, iMode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CopyMetaFileA*(P1: HMETAFILE, P2: LPCSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CopyMetaFileW*(P1: HMETAFILE, P2: LPCWSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateBitmap*(nWidth: int32, nHeight: int32, nPlanes: UINT, nBitCount: UINT, lpBits: pointer): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateBitmapIndirect*(pbm: ptr BITMAP): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateBrushIndirect*(plbrush: ptr LOGBRUSH): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateCompatibleBitmap*(hdc: HDC, cx: int32, cy: int32): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDiscardableBitmap*(hdc: HDC, cx: int32, cy: int32): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} +proc CombineRgn*( + hrgnDst: HRGN, hrgnSrc1: HRGN, hrgnSrc2: HRGN, iMode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CopyMetaFileA*( + P1: HMETAFILE, P2: LPCSTR +): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CopyMetaFileW*( + P1: HMETAFILE, P2: LPCWSTR +): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateBitmap*( + nWidth: int32, nHeight: int32, nPlanes: UINT, nBitCount: UINT, lpBits: pointer +): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateBitmapIndirect*( + pbm: ptr BITMAP +): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateBrushIndirect*( + plbrush: ptr LOGBRUSH +): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateCompatibleBitmap*( + hdc: HDC, cx: int32, cy: int32 +): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateDiscardableBitmap*( + hdc: HDC, cx: int32, cy: int32 +): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} + proc CreateCompatibleDC*(hdc: HDC): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDCA*(pwszDriver: LPCSTR, pwszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDCW*(pwszDriver: LPCWSTR, pwszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDIBitmap*(hdc: HDC, pbmih: ptr BITMAPINFOHEADER, flInit: DWORD, pjBits: pointer, pbmi: ptr BITMAPINFO, iUsage: UINT): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDIBPatternBrush*(h: HGLOBAL, iUsage: UINT): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDIBPatternBrushPt*(lpPackedDIB: pointer, iUsage: UINT): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateEllipticRgn*(x1: int32, y1: int32, x2: int32, y2: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateEllipticRgnIndirect*(lprect: ptr RECT): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateFontIndirectA*(lplf: ptr LOGFONTA): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateFontIndirectW*(lplf: ptr LOGFONTW): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateFontA*(cHeight: int32, cWidth: int32, cEscapement: int32, cOrientation: int32, cWeight: int32, bItalic: DWORD, bUnderline: DWORD, bStrikeOut: DWORD, iCharSet: DWORD, iOutPrecision: DWORD, iClipPrecision: DWORD, iQuality: DWORD, iPitchAndFamily: DWORD, pszFaceName: LPCSTR): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateFontW*(cHeight: int32, cWidth: int32, cEscapement: int32, cOrientation: int32, cWeight: int32, bItalic: DWORD, bUnderline: DWORD, bStrikeOut: DWORD, iCharSet: DWORD, iOutPrecision: DWORD, iClipPrecision: DWORD, iQuality: DWORD, iPitchAndFamily: DWORD, pszFaceName: LPCWSTR): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateHatchBrush*(iHatch: int32, color: COLORREF): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateICA*(pszDriver: LPCSTR, pszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateICW*(pszDriver: LPCWSTR, pszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateMetaFileA*(pszFile: LPCSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateMetaFileW*(pszFile: LPCWSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreatePalette*(plpal: ptr LOGPALETTE): HPALETTE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreatePen*(iStyle: int32, cWidth: int32, color: COLORREF): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreatePenIndirect*(plpen: ptr LOGPEN): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreatePolyPolygonRgn*(pptl: ptr POINT, pc: ptr INT, cPoly: int32, iMode: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreatePatternBrush*(hbm: HBITMAP): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateRectRgn*(x1: int32, y1: int32, x2: int32, y2: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateRectRgnIndirect*(lprect: ptr RECT): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateRoundRectRgn*(x1: int32, y1: int32, x2: int32, y2: int32, w: int32, h: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateScalableFontResourceA*(fdwHidden: DWORD, lpszFont: LPCSTR, lpszFile: LPCSTR, lpszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateScalableFontResourceW*(fdwHidden: DWORD, lpszFont: LPCWSTR, lpszFile: LPCWSTR, lpszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateSolidBrush*(color: COLORREF): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} +proc CreateDCA*( + pwszDriver: LPCSTR, pwszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateDCW*( + pwszDriver: LPCWSTR, pwszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateDIBitmap*( + hdc: HDC, + pbmih: ptr BITMAPINFOHEADER, + flInit: DWORD, + pjBits: pointer, + pbmi: ptr BITMAPINFO, + iUsage: UINT, +): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateDIBPatternBrush*( + h: HGLOBAL, iUsage: UINT +): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateDIBPatternBrushPt*( + lpPackedDIB: pointer, iUsage: UINT +): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateEllipticRgn*( + x1: int32, y1: int32, x2: int32, y2: int32 +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateEllipticRgnIndirect*( + lprect: ptr RECT +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateFontIndirectA*( + lplf: ptr LOGFONTA +): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateFontIndirectW*( + lplf: ptr LOGFONTW +): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateFontA*( + cHeight: int32, + cWidth: int32, + cEscapement: int32, + cOrientation: int32, + cWeight: int32, + bItalic: DWORD, + bUnderline: DWORD, + bStrikeOut: DWORD, + iCharSet: DWORD, + iOutPrecision: DWORD, + iClipPrecision: DWORD, + iQuality: DWORD, + iPitchAndFamily: DWORD, + pszFaceName: LPCSTR, +): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateFontW*( + cHeight: int32, + cWidth: int32, + cEscapement: int32, + cOrientation: int32, + cWeight: int32, + bItalic: DWORD, + bUnderline: DWORD, + bStrikeOut: DWORD, + iCharSet: DWORD, + iOutPrecision: DWORD, + iClipPrecision: DWORD, + iQuality: DWORD, + iPitchAndFamily: DWORD, + pszFaceName: LPCWSTR, +): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateHatchBrush*( + iHatch: int32, color: COLORREF +): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateICA*( + pszDriver: LPCSTR, pszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateICW*( + pszDriver: LPCWSTR, pszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateMetaFileA*( + pszFile: LPCSTR +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateMetaFileW*( + pszFile: LPCWSTR +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreatePalette*( + plpal: ptr LOGPALETTE +): HPALETTE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreatePen*( + iStyle: int32, cWidth: int32, color: COLORREF +): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreatePenIndirect*( + plpen: ptr LOGPEN +): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreatePolyPolygonRgn*( + pptl: ptr POINT, pc: ptr INT, cPoly: int32, iMode: int32 +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreatePatternBrush*( + hbm: HBITMAP +): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateRectRgn*( + x1: int32, y1: int32, x2: int32, y2: int32 +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateRectRgnIndirect*( + lprect: ptr RECT +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateRoundRectRgn*( + x1: int32, y1: int32, x2: int32, y2: int32, w: int32, h: int32 +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateScalableFontResourceA*( + fdwHidden: DWORD, lpszFont: LPCSTR, lpszFile: LPCSTR, lpszPath: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateScalableFontResourceW*( + fdwHidden: DWORD, lpszFont: LPCWSTR, lpszFile: LPCWSTR, lpszPath: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateSolidBrush*( + color: COLORREF +): HBRUSH {.winapi, stdcall, dynlib: "gdi32", importc.} + proc DeleteDC*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc DeleteMetaFile*(hmf: HMETAFILE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc DeleteMetaFile*( + hmf: HMETAFILE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc DeleteObject*(ho: HGDIOBJ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc DescribePixelFormat*(hdc: HDC, iPixelFormat: int32, nBytes: UINT, ppfd: LPPIXELFORMATDESCRIPTOR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc DeviceCapabilitiesA*(pDevice: LPCSTR, pPort: LPCSTR, fwCapability: WORD, pOutput: LPSTR, pDevMode: ptr DEVMODEA): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeviceCapabilitiesW*(pDevice: LPCWSTR, pPort: LPCWSTR, fwCapability: WORD, pOutput: LPWSTR, pDevMode: ptr DEVMODEW): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DrawEscape*(hdc: HDC, iEscape: int32, cjIn: int32, lpIn: LPCSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Ellipse*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumFontFamiliesExA*(hdc: HDC, lpLogfont: LPLOGFONTA, lpProc: FONTENUMPROCA, lParam: LPARAM, dwFlags: DWORD): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumFontFamiliesExW*(hdc: HDC, lpLogfont: LPLOGFONTW, lpProc: FONTENUMPROCW, lParam: LPARAM, dwFlags: DWORD): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumFontFamiliesA*(hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumFontFamiliesW*(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumFontsA*(hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumFontsW*(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumObjects*(hdc: HDC, nType: int32, lpFunc: GOBJENUMPROC, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EqualRgn*(hrgn1: HRGN, hrgn2: HRGN): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Escape*(hdc: HDC, iEscape: int32, cjIn: int32, pvIn: LPCSTR, pvOut: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtEscape*(hdc: HDC, iEscape: int32, cjInput: int32, lpInData: LPCSTR, cjOutput: int32, lpOutData: LPSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExcludeClipRect*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtCreateRegion*(lpx: ptr XFORM, nCount: DWORD, lpData: ptr RGNDATA): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtFloodFill*(hdc: HDC, x: int32, y: int32, color: COLORREF, `type`: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc FillRgn*(hdc: HDC, hrgn: HRGN, hbr: HBRUSH): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc FloodFill*(hdc: HDC, x: int32, y: int32, color: COLORREF): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc FrameRgn*(hdc: HDC, hrgn: HRGN, hbr: HBRUSH, w: int32, h: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc DescribePixelFormat*( + hdc: HDC, iPixelFormat: int32, nBytes: UINT, ppfd: LPPIXELFORMATDESCRIPTOR +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc DeviceCapabilitiesA*( + pDevice: LPCSTR, + pPort: LPCSTR, + fwCapability: WORD, + pOutput: LPSTR, + pDevMode: ptr DEVMODEA, +): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeviceCapabilitiesW*( + pDevice: LPCWSTR, + pPort: LPCWSTR, + fwCapability: WORD, + pOutput: LPWSTR, + pDevMode: ptr DEVMODEW, +): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DrawEscape*( + hdc: HDC, iEscape: int32, cjIn: int32, lpIn: LPCSTR +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Ellipse*( + hdc: HDC, left: int32, top: int32, right: int32, bottom: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumFontFamiliesExA*( + hdc: HDC, lpLogfont: LPLOGFONTA, lpProc: FONTENUMPROCA, lParam: LPARAM, dwFlags: DWORD +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumFontFamiliesExW*( + hdc: HDC, lpLogfont: LPLOGFONTW, lpProc: FONTENUMPROCW, lParam: LPARAM, dwFlags: DWORD +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumFontFamiliesA*( + hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumFontFamiliesW*( + hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumFontsA*( + hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumFontsW*( + hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumObjects*( + hdc: HDC, nType: int32, lpFunc: GOBJENUMPROC, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EqualRgn*( + hrgn1: HRGN, hrgn2: HRGN +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Escape*( + hdc: HDC, iEscape: int32, cjIn: int32, pvIn: LPCSTR, pvOut: LPVOID +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExtEscape*( + hdc: HDC, + iEscape: int32, + cjInput: int32, + lpInData: LPCSTR, + cjOutput: int32, + lpOutData: LPSTR, +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExcludeClipRect*( + hdc: HDC, left: int32, top: int32, right: int32, bottom: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExtCreateRegion*( + lpx: ptr XFORM, nCount: DWORD, lpData: ptr RGNDATA +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExtFloodFill*( + hdc: HDC, x: int32, y: int32, color: COLORREF, `type`: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc FillRgn*( + hdc: HDC, hrgn: HRGN, hbr: HBRUSH +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc FloodFill*( + hdc: HDC, x: int32, y: int32, color: COLORREF +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc FrameRgn*( + hdc: HDC, hrgn: HRGN, hbr: HBRUSH, w: int32, h: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetROP2*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetAspectRatioFilterEx*(hdc: HDC, lpsize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetAspectRatioFilterEx*( + hdc: HDC, lpsize: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetBkColor*(hdc: HDC): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetDCBrushColor*(hdc: HDC): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetDCPenColor*(hdc: HDC): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetBkMode*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetBitmapBits*(hbit: HBITMAP, cb: LONG, lpvBits: LPVOID): LONG {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetBitmapDimensionEx*(hbit: HBITMAP, lpsize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetBoundsRect*(hdc: HDC, lprect: LPRECT, flags: UINT): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetBrushOrgEx*(hdc: HDC, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidthA*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidthW*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidth32A*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidth32W*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidthFloatA*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidthFloatW*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharABCWidthsA*(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharABCWidthsW*(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharABCWidthsFloatA*(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharABCWidthsFloatW*(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetClipBox*(hdc: HDC, lprect: LPRECT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetClipRgn*(hdc: HDC, hrgn: HRGN): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetMetaRgn*(hdc: HDC, hrgn: HRGN): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCurrentObject*(hdc: HDC, `type`: UINT): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCurrentPositionEx*(hdc: HDC, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetDeviceCaps*(hdc: HDC, index: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetDIBits*(hdc: HDC, hbm: HBITMAP, start: UINT, cLines: UINT, lpvBits: LPVOID, lpbmi: LPBITMAPINFO, usage: UINT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetFontData*(hdc: HDC, dwTable: DWORD, dwOffset: DWORD, pvBuffer: PVOID, cjBuffer: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetGlyphOutlineA*(hdc: HDC, uChar: UINT, fuFormat: UINT, lpgm: LPGLYPHMETRICS, cjBuffer: DWORD, pvBuffer: LPVOID, lpmat2: ptr MAT2): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetGlyphOutlineW*(hdc: HDC, uChar: UINT, fuFormat: UINT, lpgm: LPGLYPHMETRICS, cjBuffer: DWORD, pvBuffer: LPVOID, lpmat2: ptr MAT2): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetBitmapBits*( + hbit: HBITMAP, cb: LONG, lpvBits: LPVOID +): LONG {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetBitmapDimensionEx*( + hbit: HBITMAP, lpsize: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetBoundsRect*( + hdc: HDC, lprect: LPRECT, flags: UINT +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetBrushOrgEx*( + hdc: HDC, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidthA*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidthW*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidth32A*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidth32W*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidthFloatA*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidthFloatW*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharABCWidthsA*( + hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharABCWidthsW*( + hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharABCWidthsFloatA*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharABCWidthsFloatW*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetClipBox*( + hdc: HDC, lprect: LPRECT +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetClipRgn*( + hdc: HDC, hrgn: HRGN +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetMetaRgn*( + hdc: HDC, hrgn: HRGN +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCurrentObject*( + hdc: HDC, `type`: UINT +): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCurrentPositionEx*( + hdc: HDC, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetDeviceCaps*( + hdc: HDC, index: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetDIBits*( + hdc: HDC, + hbm: HBITMAP, + start: UINT, + cLines: UINT, + lpvBits: LPVOID, + lpbmi: LPBITMAPINFO, + usage: UINT, +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetFontData*( + hdc: HDC, dwTable: DWORD, dwOffset: DWORD, pvBuffer: PVOID, cjBuffer: DWORD +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetGlyphOutlineA*( + hdc: HDC, + uChar: UINT, + fuFormat: UINT, + lpgm: LPGLYPHMETRICS, + cjBuffer: DWORD, + pvBuffer: LPVOID, + lpmat2: ptr MAT2, +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetGlyphOutlineW*( + hdc: HDC, + uChar: UINT, + fuFormat: UINT, + lpgm: LPGLYPHMETRICS, + cjBuffer: DWORD, + pvBuffer: LPVOID, + lpmat2: ptr MAT2, +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetGraphicsMode*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetMapMode*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetMetaFileBitsEx*(hMF: HMETAFILE, cbBuffer: UINT, lpData: LPVOID): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetMetaFileA*(lpName: LPCSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetMetaFileW*(lpName: LPCWSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetNearestColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetNearestPaletteIndex*(h: HPALETTE, color: COLORREF): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetMetaFileBitsEx*( + hMF: HMETAFILE, cbBuffer: UINT, lpData: LPVOID +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetMetaFileA*( + lpName: LPCSTR +): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetMetaFileW*( + lpName: LPCWSTR +): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetNearestColor*( + hdc: HDC, color: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetNearestPaletteIndex*( + h: HPALETTE, color: COLORREF +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetObjectType*(h: HGDIOBJ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetOutlineTextMetricsA*(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICA): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetOutlineTextMetricsW*(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICW): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetPaletteEntries*(hpal: HPALETTE, iStart: UINT, cEntries: UINT, pPalEntries: LPPALETTEENTRY): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetPixel*(hdc: HDC, x: int32, y: int32): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetOutlineTextMetricsA*( + hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICA +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetOutlineTextMetricsW*( + hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICW +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetPaletteEntries*( + hpal: HPALETTE, iStart: UINT, cEntries: UINT, pPalEntries: LPPALETTEENTRY +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetPixel*( + hdc: HDC, x: int32, y: int32 +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetPixelFormat*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetPolyFillMode*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetRasterizerCaps*(lpraststat: LPRASTERIZER_STATUS, cjBytes: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetRandomRgn*(hdc: HDC, hrgn: HRGN, i: INT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetRegionData*(hrgn: HRGN, nCount: DWORD, lpRgnData: LPRGNDATA): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetRgnBox*(hrgn: HRGN, lprc: LPRECT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetRasterizerCaps*( + lpraststat: LPRASTERIZER_STATUS, cjBytes: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetRandomRgn*( + hdc: HDC, hrgn: HRGN, i: INT +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetRegionData*( + hrgn: HRGN, nCount: DWORD, lpRgnData: LPRGNDATA +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetRgnBox*( + hrgn: HRGN, lprc: LPRECT +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetStockObject*(i: int32): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetStretchBltMode*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetSystemPaletteEntries*(hdc: HDC, iStart: UINT, cEntries: UINT, pPalEntries: LPPALETTEENTRY): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetSystemPaletteEntries*( + hdc: HDC, iStart: UINT, cEntries: UINT, pPalEntries: LPPALETTEENTRY +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetSystemPaletteUse*(hdc: HDC): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextCharacterExtra*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetTextCharacterExtra*( + hdc: HDC +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetTextAlign*(hdc: HDC): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetTextColor*(hdc: HDC): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentPointA*(hdc: HDC, lpString: LPCSTR, c: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentPointW*(hdc: HDC, lpString: LPCWSTR, c: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentPoint32A*(hdc: HDC, lpString: LPCSTR, c: int32, psizl: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentPoint32W*(hdc: HDC, lpString: LPCWSTR, c: int32, psizl: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentExPointA*(hdc: HDC, lpszString: LPCSTR, cchString: int32, nMaxExtent: int32, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentExPointW*(hdc: HDC, lpszString: LPCWSTR, cchString: int32, nMaxExtent: int32, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetTextExtentPointA*( + hdc: HDC, lpString: LPCSTR, c: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentPointW*( + hdc: HDC, lpString: LPCWSTR, c: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentPoint32A*( + hdc: HDC, lpString: LPCSTR, c: int32, psizl: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentPoint32W*( + hdc: HDC, lpString: LPCWSTR, c: int32, psizl: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentExPointA*( + hdc: HDC, + lpszString: LPCSTR, + cchString: int32, + nMaxExtent: int32, + lpnFit: LPINT, + lpnDx: LPINT, + lpSize: LPSIZE, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentExPointW*( + hdc: HDC, + lpszString: LPCWSTR, + cchString: int32, + nMaxExtent: int32, + lpnFit: LPINT, + lpnDx: LPINT, + lpSize: LPSIZE, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetTextCharset*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextCharsetInfo*(hdc: HDC, lpSig: LPFONTSIGNATURE, dwFlags: DWORD): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc TranslateCharsetInfo*(lpSrc: ptr DWORD, lpCs: LPCHARSETINFO, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetTextCharsetInfo*( + hdc: HDC, lpSig: LPFONTSIGNATURE, dwFlags: DWORD +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc TranslateCharsetInfo*( + lpSrc: ptr DWORD, lpCs: LPCHARSETINFO, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetFontLanguageInfo*(hdc: HDC): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharacterPlacementA*(hdc: HDC, lpString: LPCSTR, nCount: int32, nMexExtent: int32, lpResults: LPGCP_RESULTSA, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharacterPlacementW*(hdc: HDC, lpString: LPCWSTR, nCount: int32, nMexExtent: int32, lpResults: LPGCP_RESULTSW, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetFontUnicodeRanges*(hdc: HDC, lpgs: LPGLYPHSET): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetGlyphIndicesA*(hdc: HDC, lpstr: LPCSTR, c: int32, pgi: LPWORD, fl: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetGlyphIndicesW*(hdc: HDC, lpstr: LPCWSTR, c: int32, pgi: LPWORD, fl: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentPointI*(hdc: HDC, pgiIn: LPWORD, cgi: int32, psize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextExtentExPointI*(hdc: HDC, lpwszString: LPWORD, cwchString: int32, nMaxExtent: int32, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharWidthI*(hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, piWidths: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetCharABCWidthsI*(hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, pabc: LPABC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc AddFontResourceExA*(name: LPCSTR, fl: DWORD, res: PVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc AddFontResourceExW*(name: LPCWSTR, fl: DWORD, res: PVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RemoveFontResourceExA*(name: LPCSTR, fl: DWORD, pdv: PVOID): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RemoveFontResourceExW*(name: LPCWSTR, fl: DWORD, pdv: PVOID): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc AddFontMemResourceEx*(pFileView: PVOID, cjSize: DWORD, pvResrved: PVOID, pNumFonts: ptr DWORD): HANDLE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RemoveFontMemResourceEx*(h: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateFontIndirectExA*(P1: ptr ENUMLOGFONTEXDVA): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateFontIndirectExW*(P1: ptr ENUMLOGFONTEXDVW): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetViewportExtEx*(hdc: HDC, lpsize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetViewportOrgEx*(hdc: HDC, lppoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetWindowExtEx*(hdc: HDC, lpsize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetWindowOrgEx*(hdc: HDC, lppoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc IntersectClipRect*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc InvertRgn*(hdc: HDC, hrgn: HRGN): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc LineDDA*(xStart: int32, yStart: int32, xEnd: int32, yEnd: int32, lpProc: LINEDDAPROC, data: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc LineTo*(hdc: HDC, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc MaskBlt*(hdcDest: HDC, xDest: int32, yDest: int32, width: int32, height: int32, hdcSrc: HDC, xSrc: int32, ySrc: int32, hbmMask: HBITMAP, xMask: int32, yMask: int32, rop: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PlgBlt*(hdcDest: HDC, lpPoint: ptr POINT, hdcSrc: HDC, xSrc: int32, ySrc: int32, width: int32, height: int32, hbmMask: HBITMAP, xMask: int32, yMask: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc OffsetClipRgn*(hdc: HDC, x: int32, y: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc OffsetRgn*(hrgn: HRGN, x: int32, y: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PatBlt*(hdc: HDC, x: int32, y: int32, w: int32, h: int32, rop: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Pie*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32, xr1: int32, yr1: int32, xr2: int32, yr2: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PlayMetaFile*(hdc: HDC, hmf: HMETAFILE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PaintRgn*(hdc: HDC, hrgn: HRGN): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyPolygon*(hdc: HDC, apt: ptr POINT, asz: ptr INT, csz: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PtInRegion*(hrgn: HRGN, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PtVisible*(hdc: HDC, x: int32, y: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RectInRegion*(hrgn: HRGN, lprect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RectVisible*(hdc: HDC, lprect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Rectangle*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RestoreDC*(hdc: HDC, nSavedDC: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ResetDCA*(hdc: HDC, lpdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ResetDCW*(hdc: HDC, lpdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetCharacterPlacementA*( + hdc: HDC, + lpString: LPCSTR, + nCount: int32, + nMexExtent: int32, + lpResults: LPGCP_RESULTSA, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharacterPlacementW*( + hdc: HDC, + lpString: LPCWSTR, + nCount: int32, + nMexExtent: int32, + lpResults: LPGCP_RESULTSW, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetFontUnicodeRanges*( + hdc: HDC, lpgs: LPGLYPHSET +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetGlyphIndicesA*( + hdc: HDC, lpstr: LPCSTR, c: int32, pgi: LPWORD, fl: DWORD +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetGlyphIndicesW*( + hdc: HDC, lpstr: LPCWSTR, c: int32, pgi: LPWORD, fl: DWORD +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentPointI*( + hdc: HDC, pgiIn: LPWORD, cgi: int32, psize: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextExtentExPointI*( + hdc: HDC, + lpwszString: LPWORD, + cwchString: int32, + nMaxExtent: int32, + lpnFit: LPINT, + lpnDx: LPINT, + lpSize: LPSIZE, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharWidthI*( + hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, piWidths: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetCharABCWidthsI*( + hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, pabc: LPABC +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc AddFontResourceExA*( + name: LPCSTR, fl: DWORD, res: PVOID +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc AddFontResourceExW*( + name: LPCWSTR, fl: DWORD, res: PVOID +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RemoveFontResourceExA*( + name: LPCSTR, fl: DWORD, pdv: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RemoveFontResourceExW*( + name: LPCWSTR, fl: DWORD, pdv: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc AddFontMemResourceEx*( + pFileView: PVOID, cjSize: DWORD, pvResrved: PVOID, pNumFonts: ptr DWORD +): HANDLE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RemoveFontMemResourceEx*( + h: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateFontIndirectExA*( + P1: ptr ENUMLOGFONTEXDVA +): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateFontIndirectExW*( + P1: ptr ENUMLOGFONTEXDVW +): HFONT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetViewportExtEx*( + hdc: HDC, lpsize: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetViewportOrgEx*( + hdc: HDC, lppoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetWindowExtEx*( + hdc: HDC, lpsize: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetWindowOrgEx*( + hdc: HDC, lppoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc IntersectClipRect*( + hdc: HDC, left: int32, top: int32, right: int32, bottom: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc InvertRgn*( + hdc: HDC, hrgn: HRGN +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc LineDDA*( + xStart: int32, + yStart: int32, + xEnd: int32, + yEnd: int32, + lpProc: LINEDDAPROC, + data: LPARAM, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc LineTo*( + hdc: HDC, x: int32, y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc MaskBlt*( + hdcDest: HDC, + xDest: int32, + yDest: int32, + width: int32, + height: int32, + hdcSrc: HDC, + xSrc: int32, + ySrc: int32, + hbmMask: HBITMAP, + xMask: int32, + yMask: int32, + rop: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PlgBlt*( + hdcDest: HDC, + lpPoint: ptr POINT, + hdcSrc: HDC, + xSrc: int32, + ySrc: int32, + width: int32, + height: int32, + hbmMask: HBITMAP, + xMask: int32, + yMask: int32, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc OffsetClipRgn*( + hdc: HDC, x: int32, y: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc OffsetRgn*( + hrgn: HRGN, x: int32, y: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PatBlt*( + hdc: HDC, x: int32, y: int32, w: int32, h: int32, rop: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Pie*( + hdc: HDC, + left: int32, + top: int32, + right: int32, + bottom: int32, + xr1: int32, + yr1: int32, + xr2: int32, + yr2: int32, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PlayMetaFile*( + hdc: HDC, hmf: HMETAFILE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PaintRgn*( + hdc: HDC, hrgn: HRGN +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolyPolygon*( + hdc: HDC, apt: ptr POINT, asz: ptr INT, csz: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PtInRegion*( + hrgn: HRGN, x: int32, y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PtVisible*( + hdc: HDC, x: int32, y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RectInRegion*( + hrgn: HRGN, lprect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RectVisible*( + hdc: HDC, lprect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Rectangle*( + hdc: HDC, left: int32, top: int32, right: int32, bottom: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RestoreDC*( + hdc: HDC, nSavedDC: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ResetDCA*( + hdc: HDC, lpdm: ptr DEVMODEA +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ResetDCW*( + hdc: HDC, lpdm: ptr DEVMODEW +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + proc RealizePalette*(hdc: HDC): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RemoveFontResourceA*(lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RemoveFontResourceW*(lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc RoundRect*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32, width: int32, height: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ResizePalette*(hpal: HPALETTE, n: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc RemoveFontResourceA*( + lpFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RemoveFontResourceW*( + lpFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc RoundRect*( + hdc: HDC, + left: int32, + top: int32, + right: int32, + bottom: int32, + width: int32, + height: int32, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ResizePalette*( + hpal: HPALETTE, n: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc SaveDC*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SelectClipRgn*(hdc: HDC, hrgn: HRGN): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtSelectClipRgn*(hdc: HDC, hrgn: HRGN, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc SelectClipRgn*( + hdc: HDC, hrgn: HRGN +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExtSelectClipRgn*( + hdc: HDC, hrgn: HRGN, mode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc SetMetaRgn*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SelectObject*(hdc: HDC, h: HGDIOBJ): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SelectPalette*(hdc: HDC, hPal: HPALETTE, bForceBkgd: WINBOOL): HPALETTE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetBkColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetDCBrushColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetDCPenColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetBkMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetBitmapBits*(hbm: HBITMAP, cb: DWORD, pvBits: pointer): LONG {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetBoundsRect*(hdc: HDC, lprect: ptr RECT, flags: UINT): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetDIBits*(hdc: HDC, hbm: HBITMAP, start: UINT, cLines: UINT, lpBits: pointer, lpbmi: ptr BITMAPINFO, ColorUse: UINT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetDIBitsToDevice*(hdc: HDC, xDest: int32, yDest: int32, w: DWORD, h: DWORD, xSrc: int32, ySrc: int32, StartScan: UINT, cLines: UINT, lpvBits: pointer, lpbmi: ptr BITMAPINFO, ColorUse: UINT): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetMapperFlags*(hdc: HDC, flags: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetGraphicsMode*(hdc: HDC, iMode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetMapMode*(hdc: HDC, iMode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc SelectObject*( + hdc: HDC, h: HGDIOBJ +): HGDIOBJ {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SelectPalette*( + hdc: HDC, hPal: HPALETTE, bForceBkgd: WINBOOL +): HPALETTE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetBkColor*( + hdc: HDC, color: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetDCBrushColor*( + hdc: HDC, color: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetDCPenColor*( + hdc: HDC, color: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetBkMode*( + hdc: HDC, mode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetBitmapBits*( + hbm: HBITMAP, cb: DWORD, pvBits: pointer +): LONG {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetBoundsRect*( + hdc: HDC, lprect: ptr RECT, flags: UINT +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetDIBits*( + hdc: HDC, + hbm: HBITMAP, + start: UINT, + cLines: UINT, + lpBits: pointer, + lpbmi: ptr BITMAPINFO, + ColorUse: UINT, +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetDIBitsToDevice*( + hdc: HDC, + xDest: int32, + yDest: int32, + w: DWORD, + h: DWORD, + xSrc: int32, + ySrc: int32, + StartScan: UINT, + cLines: UINT, + lpvBits: pointer, + lpbmi: ptr BITMAPINFO, + ColorUse: UINT, +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetMapperFlags*( + hdc: HDC, flags: DWORD +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetGraphicsMode*( + hdc: HDC, iMode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetMapMode*( + hdc: HDC, iMode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc SetLayout*(hdc: HDC, l: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} proc GetLayout*(hdc: HDC): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetMetaFileBitsEx*(cbBuffer: UINT, lpData: ptr BYTE): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetPaletteEntries*(hpal: HPALETTE, iStart: UINT, cEntries: UINT, pPalEntries: ptr PALETTEENTRY): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetPixel*(hdc: HDC, x: int32, y: int32, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetPixelV*(hdc: HDC, x: int32, y: int32, color: COLORREF): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetPixelFormat*(hdc: HDC, format: int32, ppfd: ptr PIXELFORMATDESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetPolyFillMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc StretchBlt*(hdcDest: HDC, xDest: int32, yDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xSrc: int32, ySrc: int32, wSrc: int32, hSrc: int32, rop: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetRectRgn*(hrgn: HRGN, left: int32, top: int32, right: int32, bottom: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc StretchDIBits*(hdc: HDC, xDest: int32, yDest: int32, DestWidth: int32, DestHeight: int32, xSrc: int32, ySrc: int32, SrcWidth: int32, SrcHeight: int32, lpBits: pointer, lpbmi: ptr BITMAPINFO, iUsage: UINT, rop: DWORD): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetROP2*(hdc: HDC, rop2: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetStretchBltMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetSystemPaletteUse*(hdc: HDC, use: UINT): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetTextCharacterExtra*(hdc: HDC, extra: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetTextColor*(hdc: HDC, color: COLORREF): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetTextAlign*(hdc: HDC, align: UINT): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetTextJustification*(hdc: HDC, extra: int32, count: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc SetMetaFileBitsEx*( + cbBuffer: UINT, lpData: ptr BYTE +): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetPaletteEntries*( + hpal: HPALETTE, iStart: UINT, cEntries: UINT, pPalEntries: ptr PALETTEENTRY +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetPixel*( + hdc: HDC, x: int32, y: int32, color: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetPixelV*( + hdc: HDC, x: int32, y: int32, color: COLORREF +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetPixelFormat*( + hdc: HDC, format: int32, ppfd: ptr PIXELFORMATDESCRIPTOR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetPolyFillMode*( + hdc: HDC, mode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc StretchBlt*( + hdcDest: HDC, + xDest: int32, + yDest: int32, + wDest: int32, + hDest: int32, + hdcSrc: HDC, + xSrc: int32, + ySrc: int32, + wSrc: int32, + hSrc: int32, + rop: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetRectRgn*( + hrgn: HRGN, left: int32, top: int32, right: int32, bottom: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc StretchDIBits*( + hdc: HDC, + xDest: int32, + yDest: int32, + DestWidth: int32, + DestHeight: int32, + xSrc: int32, + ySrc: int32, + SrcWidth: int32, + SrcHeight: int32, + lpBits: pointer, + lpbmi: ptr BITMAPINFO, + iUsage: UINT, + rop: DWORD, +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetROP2*( + hdc: HDC, rop2: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetStretchBltMode*( + hdc: HDC, mode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetSystemPaletteUse*( + hdc: HDC, use: UINT +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetTextCharacterExtra*( + hdc: HDC, extra: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetTextColor*( + hdc: HDC, color: COLORREF +): COLORREF {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetTextAlign*( + hdc: HDC, align: UINT +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetTextJustification*( + hdc: HDC, extra: int32, count: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc UpdateColors*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc AlphaBlend*(hdcDest: HDC, xoriginDest: int32, yoriginDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xoriginSrc: int32, yoriginSrc: int32, wSrc: int32, hSrc: int32, ftn: BLENDFUNCTION): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.} -proc GdiAlphaBlend*(hdcDest: HDC, xoriginDest: int32, yoriginDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xoriginSrc: int32, yoriginSrc: int32, wSrc: int32, hSrc: int32, ftn: BLENDFUNCTION): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc TransparentBlt*(hdcDest: HDC, xoriginDest: int32, yoriginDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xoriginSrc: int32, yoriginSrc: int32, wSrc: int32, hSrc: int32, crTransparent: UINT): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.} -proc GdiTransparentBlt*(hdcDest: HDC, xoriginDest: int32, yoriginDest: int32, wDest: int32, hDest: int32, hdcSrc: HDC, xoriginSrc: int32, yoriginSrc: int32, wSrc: int32, hSrc: int32, crTransparent: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GradientFill*(hdc: HDC, pVertex: PTRIVERTEX, nVertex: ULONG, pMesh: PVOID, nMesh: ULONG, ulMode: ULONG): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.} -proc GdiGradientFill*(hdc: HDC, pVertex: PTRIVERTEX, nVertex: ULONG, pMesh: PVOID, nMesh: ULONG, ulMode: ULONG): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PlayMetaFileRecord*(hdc: HDC, lpHandleTable: LPHANDLETABLE, lpMR: LPMETARECORD, noObjs: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumMetaFile*(hdc: HDC, hmf: HMETAFILE, lpProc: MFENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CloseEnhMetaFile*(hdc: HDC): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CopyEnhMetaFileA*(hEnh: HENHMETAFILE, lpFileName: LPCSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CopyEnhMetaFileW*(hEnh: HENHMETAFILE, lpFileName: LPCWSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateEnhMetaFileA*(hdc: HDC, lpFilename: LPCSTR, lprc: ptr RECT, lpDesc: LPCSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateEnhMetaFileW*(hdc: HDC, lpFilename: LPCWSTR, lprc: ptr RECT, lpDesc: LPCWSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} -proc DeleteEnhMetaFile*(hmf: HENHMETAFILE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumEnhMetaFile*(hdc: HDC, hmf: HENHMETAFILE, lpProc: ENHMFENUMPROC, lpParam: LPVOID, lpRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFileA*(lpName: LPCSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFileW*(lpName: LPCWSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFileBits*(hEMF: HENHMETAFILE, nSize: UINT, lpData: LPBYTE): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFileDescriptionA*(hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPSTR): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFileDescriptionW*(hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPWSTR): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFileHeader*(hemf: HENHMETAFILE, nSize: UINT, lpEnhMetaHeader: LPENHMETAHEADER): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFilePaletteEntries*(hemf: HENHMETAFILE, nNumEntries: UINT, lpPaletteEntries: LPPALETTEENTRY): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetEnhMetaFilePixelFormat*(hemf: HENHMETAFILE, cbBuffer: UINT, ppfd: ptr PIXELFORMATDESCRIPTOR): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetWinMetaFileBits*(hemf: HENHMETAFILE, cbData16: UINT, pData16: LPBYTE, iMapMode: INT, hdcRef: HDC): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PlayEnhMetaFile*(hdc: HDC, hmf: HENHMETAFILE, lprect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PlayEnhMetaFileRecord*(hdc: HDC, pht: LPHANDLETABLE, pmr: ptr ENHMETARECORD, cht: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetEnhMetaFileBits*(nSize: UINT, pb: ptr BYTE): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetWinMetaFileBits*(nSize: UINT, lpMeta16Data: ptr BYTE, hdcRef: HDC, lpMFP: ptr METAFILEPICT): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GdiComment*(hdc: HDC, nSize: UINT, lpData: ptr BYTE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextMetricsA*(hdc: HDC, lptm: LPTEXTMETRICA): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextMetricsW*(hdc: HDC, lptm: LPTEXTMETRICW): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc AngleArc*(hdc: HDC, x: int32, y: int32, r: DWORD, StartAngle: FLOAT, SweepAngle: FLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyPolyline*(hdc: HDC, apt: ptr POINT, asz: ptr DWORD, csz: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetWorldTransform*(hdc: HDC, lpxf: LPXFORM): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetWorldTransform*(hdc: HDC, lpxf: ptr XFORM): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ModifyWorldTransform*(hdc: HDC, lpxf: ptr XFORM, mode: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CombineTransform*(lpxfOut: LPXFORM, lpxf1: ptr XFORM, lpxf2: ptr XFORM): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateDIBSection*(hdc: HDC, lpbmi: ptr BITMAPINFO, usage: UINT, ppvBits: ptr pointer, hSection: HANDLE, offset: DWORD): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetDIBColorTable*(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ptr RGBQUAD): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetDIBColorTable*(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ptr RGBQUAD): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetColorAdjustment*(hdc: HDC, lpca: ptr COLORADJUSTMENT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetColorAdjustment*(hdc: HDC, lpca: LPCOLORADJUSTMENT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateHalftonePalette*(hdc: HDC): HPALETTE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc StartDocA*(hdc: HDC, lpdi: ptr DOCINFOA): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc StartDocW*(hdc: HDC, lpdi: ptr DOCINFOW): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc AlphaBlend*( + hdcDest: HDC, + xoriginDest: int32, + yoriginDest: int32, + wDest: int32, + hDest: int32, + hdcSrc: HDC, + xoriginSrc: int32, + yoriginSrc: int32, + wSrc: int32, + hSrc: int32, + ftn: BLENDFUNCTION, +): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.} + +proc GdiAlphaBlend*( + hdcDest: HDC, + xoriginDest: int32, + yoriginDest: int32, + wDest: int32, + hDest: int32, + hdcSrc: HDC, + xoriginSrc: int32, + yoriginSrc: int32, + wSrc: int32, + hSrc: int32, + ftn: BLENDFUNCTION, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc TransparentBlt*( + hdcDest: HDC, + xoriginDest: int32, + yoriginDest: int32, + wDest: int32, + hDest: int32, + hdcSrc: HDC, + xoriginSrc: int32, + yoriginSrc: int32, + wSrc: int32, + hSrc: int32, + crTransparent: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.} + +proc GdiTransparentBlt*( + hdcDest: HDC, + xoriginDest: int32, + yoriginDest: int32, + wDest: int32, + hDest: int32, + hdcSrc: HDC, + xoriginSrc: int32, + yoriginSrc: int32, + wSrc: int32, + hSrc: int32, + crTransparent: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GradientFill*( + hdc: HDC, + pVertex: PTRIVERTEX, + nVertex: ULONG, + pMesh: PVOID, + nMesh: ULONG, + ulMode: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "msimg32", importc.} + +proc GdiGradientFill*( + hdc: HDC, + pVertex: PTRIVERTEX, + nVertex: ULONG, + pMesh: PVOID, + nMesh: ULONG, + ulMode: ULONG, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PlayMetaFileRecord*( + hdc: HDC, lpHandleTable: LPHANDLETABLE, lpMR: LPMETARECORD, noObjs: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumMetaFile*( + hdc: HDC, hmf: HMETAFILE, lpProc: MFENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CloseEnhMetaFile*( + hdc: HDC +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CopyEnhMetaFileA*( + hEnh: HENHMETAFILE, lpFileName: LPCSTR +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CopyEnhMetaFileW*( + hEnh: HENHMETAFILE, lpFileName: LPCWSTR +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateEnhMetaFileA*( + hdc: HDC, lpFilename: LPCSTR, lprc: ptr RECT, lpDesc: LPCSTR +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateEnhMetaFileW*( + hdc: HDC, lpFilename: LPCWSTR, lprc: ptr RECT, lpDesc: LPCWSTR +): HDC {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc DeleteEnhMetaFile*( + hmf: HENHMETAFILE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumEnhMetaFile*( + hdc: HDC, hmf: HENHMETAFILE, lpProc: ENHMFENUMPROC, lpParam: LPVOID, lpRect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFileA*( + lpName: LPCSTR +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFileW*( + lpName: LPCWSTR +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFileBits*( + hEMF: HENHMETAFILE, nSize: UINT, lpData: LPBYTE +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFileDescriptionA*( + hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPSTR +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFileDescriptionW*( + hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPWSTR +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFileHeader*( + hemf: HENHMETAFILE, nSize: UINT, lpEnhMetaHeader: LPENHMETAHEADER +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFilePaletteEntries*( + hemf: HENHMETAFILE, nNumEntries: UINT, lpPaletteEntries: LPPALETTEENTRY +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetEnhMetaFilePixelFormat*( + hemf: HENHMETAFILE, cbBuffer: UINT, ppfd: ptr PIXELFORMATDESCRIPTOR +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetWinMetaFileBits*( + hemf: HENHMETAFILE, cbData16: UINT, pData16: LPBYTE, iMapMode: INT, hdcRef: HDC +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PlayEnhMetaFile*( + hdc: HDC, hmf: HENHMETAFILE, lprect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PlayEnhMetaFileRecord*( + hdc: HDC, pht: LPHANDLETABLE, pmr: ptr ENHMETARECORD, cht: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetEnhMetaFileBits*( + nSize: UINT, pb: ptr BYTE +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetWinMetaFileBits*( + nSize: UINT, lpMeta16Data: ptr BYTE, hdcRef: HDC, lpMFP: ptr METAFILEPICT +): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GdiComment*( + hdc: HDC, nSize: UINT, lpData: ptr BYTE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextMetricsA*( + hdc: HDC, lptm: LPTEXTMETRICA +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextMetricsW*( + hdc: HDC, lptm: LPTEXTMETRICW +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc AngleArc*( + hdc: HDC, x: int32, y: int32, r: DWORD, StartAngle: FLOAT, SweepAngle: FLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolyPolyline*( + hdc: HDC, apt: ptr POINT, asz: ptr DWORD, csz: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetWorldTransform*( + hdc: HDC, lpxf: LPXFORM +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetWorldTransform*( + hdc: HDC, lpxf: ptr XFORM +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ModifyWorldTransform*( + hdc: HDC, lpxf: ptr XFORM, mode: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CombineTransform*( + lpxfOut: LPXFORM, lpxf1: ptr XFORM, lpxf2: ptr XFORM +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateDIBSection*( + hdc: HDC, + lpbmi: ptr BITMAPINFO, + usage: UINT, + ppvBits: ptr pointer, + hSection: HANDLE, + offset: DWORD, +): HBITMAP {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetDIBColorTable*( + hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ptr RGBQUAD +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetDIBColorTable*( + hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ptr RGBQUAD +): UINT {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetColorAdjustment*( + hdc: HDC, lpca: ptr COLORADJUSTMENT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetColorAdjustment*( + hdc: HDC, lpca: LPCOLORADJUSTMENT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateHalftonePalette*( + hdc: HDC +): HPALETTE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc StartDocA*( + hdc: HDC, lpdi: ptr DOCINFOA +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc StartDocW*( + hdc: HDC, lpdi: ptr DOCINFOW +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc EndDoc*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} proc StartPage*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} proc EndPage*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} proc AbortDoc*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetAbortProc*(hdc: HDC, lpProc: ABORTPROC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc SetAbortProc*( + hdc: HDC, lpProc: ABORTPROC +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc AbortPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ArcTo*(hdc: HDC, left: int32, top: int32, right: int32, bottom: int32, xr1: int32, yr1: int32, xr2: int32, yr2: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc ArcTo*( + hdc: HDC, + left: int32, + top: int32, + right: int32, + bottom: int32, + xr1: int32, + yr1: int32, + xr2: int32, + yr2: int32, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc BeginPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc CloseFigure*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc EndPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc FillPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc FlattenPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetPath*(hdc: HDC, apt: LPPOINT, aj: LPBYTE, cpt: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetPath*( + hdc: HDC, apt: LPPOINT, aj: LPBYTE, cpt: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + proc PathToRegion*(hdc: HDC): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyDraw*(hdc: HDC, apt: ptr POINT, aj: ptr BYTE, cpt: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SelectClipPath*(hdc: HDC, mode: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetArcDirection*(hdc: HDC, dir: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetMiterLimit*(hdc: HDC, limit: FLOAT, old: PFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc PolyDraw*( + hdc: HDC, apt: ptr POINT, aj: ptr BYTE, cpt: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SelectClipPath*( + hdc: HDC, mode: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetArcDirection*( + hdc: HDC, dir: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetMiterLimit*( + hdc: HDC, limit: FLOAT, old: PFLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc StrokeAndFillPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc StrokePath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc WidenPath*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtCreatePen*(iPenStyle: DWORD, cWidth: DWORD, plbrush: ptr LOGBRUSH, cStyle: DWORD, pstyle: ptr DWORD): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetMiterLimit*(hdc: HDC, plimit: PFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc ExtCreatePen*( + iPenStyle: DWORD, + cWidth: DWORD, + plbrush: ptr LOGBRUSH, + cStyle: DWORD, + pstyle: ptr DWORD, +): HPEN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetMiterLimit*( + hdc: HDC, plimit: PFLOAT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetArcDirection*(hdc: HDC): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetObjectA*(h: HANDLE, c: int32, pv: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetObjectW*(h: HANDLE, c: int32, pv: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc MoveToEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc TextOutA*(hdc: HDC, x: int32, y: int32, lpString: LPCSTR, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc TextOutW*(hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtTextOutA*(hdc: HDC, x: int32, y: int32, options: UINT, lprect: ptr RECT, lpString: LPCSTR, c: UINT, lpDx: ptr INT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ExtTextOutW*(hdc: HDC, x: int32, y: int32, options: UINT, lprect: ptr RECT, lpString: LPCWSTR, c: UINT, lpDx: ptr INT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyTextOutA*(hdc: HDC, ppt: ptr POLYTEXTA, nstrings: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyTextOutW*(hdc: HDC, ppt: ptr POLYTEXTW, nstrings: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreatePolygonRgn*(pptl: ptr POINT, cPoint: int32, iMode: int32): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} -proc DPtoLP*(hdc: HDC, lppt: LPPOINT, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc LPtoDP*(hdc: HDC, lppt: LPPOINT, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Polygon*(hdc: HDC, apt: ptr POINT, cpt: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc Polyline*(hdc: HDC, apt: ptr POINT, cpt: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyBezier*(hdc: HDC, apt: ptr POINT, cpt: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolyBezierTo*(hdc: HDC, apt: ptr POINT, cpt: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc PolylineTo*(hdc: HDC, apt: ptr POINT, cpt: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetViewportExtEx*(hdc: HDC, x: int32, y: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetViewportOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetWindowExtEx*(hdc: HDC, x: int32, y: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetWindowOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc OffsetViewportOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc OffsetWindowOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ScaleViewportExtEx*(hdc: HDC, xn: int32, dx: int32, yn: int32, yd: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ScaleWindowExtEx*(hdc: HDC, xn: int32, xd: int32, yn: int32, yd: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetBitmapDimensionEx*(hbm: HBITMAP, w: int32, h: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetBrushOrgEx*(hdc: HDC, x: int32, y: int32, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextFaceA*(hdc: HDC, c: int32, lpName: LPSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetTextFaceW*(hdc: HDC, c: int32, lpName: LPWSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetKerningPairsA*(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetKerningPairsW*(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetDCOrgEx*(hdc: HDC, lppt: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc FixBrushOrgEx*(hdc: HDC, x: int32, y: int32, ptl: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc GetObjectA*( + h: HANDLE, c: int32, pv: LPVOID +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetObjectW*( + h: HANDLE, c: int32, pv: LPVOID +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc MoveToEx*( + hdc: HDC, x: int32, y: int32, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc TextOutA*( + hdc: HDC, x: int32, y: int32, lpString: LPCSTR, c: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc TextOutW*( + hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, c: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExtTextOutA*( + hdc: HDC, + x: int32, + y: int32, + options: UINT, + lprect: ptr RECT, + lpString: LPCSTR, + c: UINT, + lpDx: ptr INT, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ExtTextOutW*( + hdc: HDC, + x: int32, + y: int32, + options: UINT, + lprect: ptr RECT, + lpString: LPCWSTR, + c: UINT, + lpDx: ptr INT, +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolyTextOutA*( + hdc: HDC, ppt: ptr POLYTEXTA, nstrings: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolyTextOutW*( + hdc: HDC, ppt: ptr POLYTEXTW, nstrings: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreatePolygonRgn*( + pptl: ptr POINT, cPoint: int32, iMode: int32 +): HRGN {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc DPtoLP*( + hdc: HDC, lppt: LPPOINT, c: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc LPtoDP*( + hdc: HDC, lppt: LPPOINT, c: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Polygon*( + hdc: HDC, apt: ptr POINT, cpt: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc Polyline*( + hdc: HDC, apt: ptr POINT, cpt: int32 +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolyBezier*( + hdc: HDC, apt: ptr POINT, cpt: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolyBezierTo*( + hdc: HDC, apt: ptr POINT, cpt: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc PolylineTo*( + hdc: HDC, apt: ptr POINT, cpt: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetViewportExtEx*( + hdc: HDC, x: int32, y: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetViewportOrgEx*( + hdc: HDC, x: int32, y: int32, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetWindowExtEx*( + hdc: HDC, x: int32, y: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetWindowOrgEx*( + hdc: HDC, x: int32, y: int32, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc OffsetViewportOrgEx*( + hdc: HDC, x: int32, y: int32, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc OffsetWindowOrgEx*( + hdc: HDC, x: int32, y: int32, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ScaleViewportExtEx*( + hdc: HDC, xn: int32, dx: int32, yn: int32, yd: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ScaleWindowExtEx*( + hdc: HDC, xn: int32, xd: int32, yn: int32, yd: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetBitmapDimensionEx*( + hbm: HBITMAP, w: int32, h: int32, lpsz: LPSIZE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetBrushOrgEx*( + hdc: HDC, x: int32, y: int32, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextFaceA*( + hdc: HDC, c: int32, lpName: LPSTR +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetTextFaceW*( + hdc: HDC, c: int32, lpName: LPWSTR +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetKerningPairsA*( + hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetKerningPairsW*( + hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR +): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetDCOrgEx*( + hdc: HDC, lppt: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc FixBrushOrgEx*( + hdc: HDC, x: int32, y: int32, ptl: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc UnrealizeObject*(h: HGDIOBJ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc GdiFlush*(): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} proc GdiSetBatchLimit*(dw: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} proc GdiGetBatchLimit*(): DWORD {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetICMMode*(hdc: HDC, mode: int32): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CheckColorsInGamut*(hdc: HDC, lpRGBTriple: LPVOID, dlpBuffer: LPVOID, nCount: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} +proc SetICMMode*( + hdc: HDC, mode: int32 +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CheckColorsInGamut*( + hdc: HDC, lpRGBTriple: LPVOID, dlpBuffer: LPVOID, nCount: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + proc GetColorSpace*(hdc: HDC): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetLogColorSpaceA*(hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEA, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetLogColorSpaceW*(hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEW, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateColorSpaceA*(lplcs: LPLOGCOLORSPACEA): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc CreateColorSpaceW*(lplcs: LPLOGCOLORSPACEW): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetColorSpace*(hdc: HDC, hcs: HCOLORSPACE): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} -proc DeleteColorSpace*(hcs: HCOLORSPACE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetICMProfileA*(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetICMProfileW*(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetICMProfileA*(hdc: HDC, lpFileName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetICMProfileW*(hdc: HDC, lpFileName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc GetDeviceGammaRamp*(hdc: HDC, lpRamp: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc SetDeviceGammaRamp*(hdc: HDC, lpRamp: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ColorMatchToTarget*(hdc: HDC, hdcTarget: HDC, action: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumICMProfilesA*(hdc: HDC, lpProc: ICMENUMPROCA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc EnumICMProfilesW*(hdc: HDC, lpProc: ICMENUMPROCW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} -proc UpdateICMRegKeyA*(reserved: DWORD, lpszCMID: LPSTR, lpszFileName: LPSTR, command: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc UpdateICMRegKeyW*(reserved: DWORD, lpszCMID: LPWSTR, lpszFileName: LPWSTR, command: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc ColorCorrectPalette*(hdc: HDC, hPal: HPALETTE, deFirst: DWORD, num: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc wglCopyContext*(P1: HGLRC, P2: HGLRC, P3: UINT): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} +proc GetLogColorSpaceA*( + hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEA, nSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetLogColorSpaceW*( + hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEW, nSize: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateColorSpaceA*( + lplcs: LPLOGCOLORSPACEA +): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc CreateColorSpaceW*( + lplcs: LPLOGCOLORSPACEW +): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetColorSpace*( + hdc: HDC, hcs: HCOLORSPACE +): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc DeleteColorSpace*( + hcs: HCOLORSPACE +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetICMProfileA*( + hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetICMProfileW*( + hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetICMProfileA*( + hdc: HDC, lpFileName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetICMProfileW*( + hdc: HDC, lpFileName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc GetDeviceGammaRamp*( + hdc: HDC, lpRamp: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc SetDeviceGammaRamp*( + hdc: HDC, lpRamp: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ColorMatchToTarget*( + hdc: HDC, hdcTarget: HDC, action: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumICMProfilesA*( + hdc: HDC, lpProc: ICMENUMPROCA, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc EnumICMProfilesW*( + hdc: HDC, lpProc: ICMENUMPROCW, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc UpdateICMRegKeyA*( + reserved: DWORD, lpszCMID: LPSTR, lpszFileName: LPSTR, command: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc UpdateICMRegKeyW*( + reserved: DWORD, lpszCMID: LPWSTR, lpszFileName: LPWSTR, command: UINT +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc ColorCorrectPalette*( + hdc: HDC, hPal: HPALETTE, deFirst: DWORD, num: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} + +proc wglCopyContext*( + P1: HGLRC, P2: HGLRC, P3: UINT +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + proc wglCreateContext*(P1: HDC): HGLRC {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglCreateLayerContext*(P1: HDC, P2: int32): HGLRC {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglDeleteContext*(P1: HGLRC): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} +proc wglCreateLayerContext*( + P1: HDC, P2: int32 +): HGLRC {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglDeleteContext*( + P1: HGLRC +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + proc wglGetCurrentContext*(): HGLRC {.winapi, stdcall, dynlib: "opengl32", importc.} proc wglGetCurrentDC*(): HDC {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglGetProcAddress*(P1: LPCSTR): PROC {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglMakeCurrent*(P1: HDC, P2: HGLRC): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglShareLists*(P1: HGLRC, P2: HGLRC): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglUseFontBitmapsA*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglUseFontBitmapsW*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} +proc wglGetProcAddress*( + P1: LPCSTR +): PROC {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglMakeCurrent*( + P1: HDC, P2: HGLRC +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglShareLists*( + P1: HGLRC, P2: HGLRC +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglUseFontBitmapsA*( + P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglUseFontBitmapsW*( + P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + proc SwapBuffers*(P1: HDC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc.} -proc wglUseFontOutlinesA*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD, P5: FLOAT, P6: FLOAT, P7: int32, P8: LPGLYPHMETRICSFLOAT): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglUseFontOutlinesW*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD, P5: FLOAT, P6: FLOAT, P7: int32, P8: LPGLYPHMETRICSFLOAT): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglDescribeLayerPlane*(P1: HDC, P2: int32, P3: int32, P4: UINT, P5: LPLAYERPLANEDESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglSetLayerPaletteEntries*(P1: HDC, P2: int32, P3: int32, P4: int32, P5: ptr COLORREF): int32 {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglGetLayerPaletteEntries*(P1: HDC, P2: int32, P3: int32, P4: int32, P5: ptr COLORREF): int32 {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglRealizeLayerPalette*(P1: HDC, P2: int32, P3: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglSwapLayerBuffers*(P1: HDC, P2: UINT): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} -proc wglSwapMultipleBuffers*(P1: UINT, P2: ptr WGLSWAP): DWORD {.winapi, stdcall, dynlib: "opengl32", importc.} -template MAKEROP4*(fore: untyped, back: untyped): DWORD = DWORD((back shl 8) and 0xff000000) or DWORD(fore) -template GetCValue*(cmyk: untyped): BYTE = BYTE((cmyk shr 24) and 0xff) -template GetMValue*(cmyk: untyped): BYTE = BYTE((cmyk shr 16) and 0xff) -template GetYValue*(cmyk: untyped): BYTE = BYTE((cmyk shr 8) and 0xff) -template GetKValue*(cmyk: untyped): BYTE = BYTE((cmyk) and 0xff) -template CMYK*(c: untyped, m: untyped, y: untyped, k: untyped): COLORREF = COLORREF(COLORREF(k) or COLORREF(y shl 8) or COLORREF(m shl 16) or COLORREF(c shl 24)) -template MAKEPOINTS*(l: untyped): POINTS = POINTS(x: SHORT(l and 0xffff), y: SHORT(l shr 16 and 0xffff)) -template RGB*(r: untyped, g: untyped, b: untyped): COLORREF = COLORREF(COLORREF(r and 0xff) or (COLORREF(g and 0xff) shl 8) or (COLORREF(b and 0xff) shl 16)) -template PALETTERGB*(r: untyped, g: untyped, b: untyped): COLORREF = COLORREF(RGB(r, g, b) or 0x02000000) -template GetRValue*(c: untyped): BYTE = BYTE((c) and 0xff) -template GetGValue*(c: untyped): BYTE = BYTE((c shr 8) and 0xff) -template GetBValue*(c: untyped): BYTE = BYTE((c shr 16) and 0xff) -template PALETTEINDEX*(i: untyped): COLORREF = COLORREF(i and 0xff) or 0x01000000 -proc `dmOrientation=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmOrientation = x -proc dmOrientation*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmOrientation -proc dmOrientation*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmOrientation -proc `dmPaperSize=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPaperSize = x -proc dmPaperSize*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPaperSize -proc dmPaperSize*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPaperSize -proc `dmPaperLength=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPaperLength = x -proc dmPaperLength*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPaperLength -proc dmPaperLength*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPaperLength -proc `dmPaperWidth=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPaperWidth = x -proc dmPaperWidth*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPaperWidth -proc dmPaperWidth*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPaperWidth -proc `dmScale=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmScale = x -proc dmScale*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmScale -proc dmScale*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmScale -proc `dmCopies=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmCopies = x -proc dmCopies*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmCopies -proc dmCopies*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmCopies -proc `dmDefaultSource=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmDefaultSource = x -proc dmDefaultSource*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmDefaultSource -proc dmDefaultSource*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmDefaultSource -proc `dmPrintQuality=`*(self: var DEVMODEA, x: int16) {.inline.} = self.union1.struct1.dmPrintQuality = x -proc dmPrintQuality*(self: DEVMODEA): int16 {.inline.} = self.union1.struct1.dmPrintQuality -proc dmPrintQuality*(self: var DEVMODEA): var int16 {.inline.} = self.union1.struct1.dmPrintQuality -proc `dmPosition=`*(self: var DEVMODEA, x: POINTL) {.inline.} = self.union1.struct2.dmPosition = x -proc dmPosition*(self: DEVMODEA): POINTL {.inline.} = self.union1.struct2.dmPosition -proc dmPosition*(self: var DEVMODEA): var POINTL {.inline.} = self.union1.struct2.dmPosition -proc `dmDisplayOrientation=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayOrientation = x -proc dmDisplayOrientation*(self: DEVMODEA): DWORD {.inline.} = self.union1.struct2.dmDisplayOrientation -proc dmDisplayOrientation*(self: var DEVMODEA): var DWORD {.inline.} = self.union1.struct2.dmDisplayOrientation -proc `dmDisplayFixedOutput=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayFixedOutput = x -proc dmDisplayFixedOutput*(self: DEVMODEA): DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutput -proc dmDisplayFixedOutput*(self: var DEVMODEA): var DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutput -proc `dmDisplayFlags=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union2.dmDisplayFlags = x -proc dmDisplayFlags*(self: DEVMODEA): DWORD {.inline.} = self.union2.dmDisplayFlags -proc dmDisplayFlags*(self: var DEVMODEA): var DWORD {.inline.} = self.union2.dmDisplayFlags -proc `dmNup=`*(self: var DEVMODEA, x: DWORD) {.inline.} = self.union2.dmNup = x -proc dmNup*(self: DEVMODEA): DWORD {.inline.} = self.union2.dmNup -proc dmNup*(self: var DEVMODEA): var DWORD {.inline.} = self.union2.dmNup -proc `dmOrientation=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmOrientation = x -proc dmOrientation*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmOrientation -proc dmOrientation*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmOrientation -proc `dmPaperSize=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPaperSize = x -proc dmPaperSize*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPaperSize -proc dmPaperSize*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPaperSize -proc `dmPaperLength=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPaperLength = x -proc dmPaperLength*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPaperLength -proc dmPaperLength*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPaperLength -proc `dmPaperWidth=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPaperWidth = x -proc dmPaperWidth*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPaperWidth -proc dmPaperWidth*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPaperWidth -proc `dmScale=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmScale = x -proc dmScale*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmScale -proc dmScale*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmScale -proc `dmCopies=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmCopies = x -proc dmCopies*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmCopies -proc dmCopies*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmCopies -proc `dmDefaultSource=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmDefaultSource = x -proc dmDefaultSource*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmDefaultSource -proc dmDefaultSource*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmDefaultSource -proc `dmPrintQuality=`*(self: var DEVMODEW, x: int16) {.inline.} = self.union1.struct1.dmPrintQuality = x -proc dmPrintQuality*(self: DEVMODEW): int16 {.inline.} = self.union1.struct1.dmPrintQuality -proc dmPrintQuality*(self: var DEVMODEW): var int16 {.inline.} = self.union1.struct1.dmPrintQuality -proc `dmPosition=`*(self: var DEVMODEW, x: POINTL) {.inline.} = self.union1.struct2.dmPosition = x -proc dmPosition*(self: DEVMODEW): POINTL {.inline.} = self.union1.struct2.dmPosition -proc dmPosition*(self: var DEVMODEW): var POINTL {.inline.} = self.union1.struct2.dmPosition -proc `dmDisplayOrientation=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayOrientation = x -proc dmDisplayOrientation*(self: DEVMODEW): DWORD {.inline.} = self.union1.struct2.dmDisplayOrientation -proc dmDisplayOrientation*(self: var DEVMODEW): var DWORD {.inline.} = self.union1.struct2.dmDisplayOrientation -proc `dmDisplayFixedOutput=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union1.struct2.dmDisplayFixedOutput = x -proc dmDisplayFixedOutput*(self: DEVMODEW): DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutput -proc dmDisplayFixedOutput*(self: var DEVMODEW): var DWORD {.inline.} = self.union1.struct2.dmDisplayFixedOutput -proc `dmDisplayFlags=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union2.dmDisplayFlags = x -proc dmDisplayFlags*(self: DEVMODEW): DWORD {.inline.} = self.union2.dmDisplayFlags -proc dmDisplayFlags*(self: var DEVMODEW): var DWORD {.inline.} = self.union2.dmDisplayFlags -proc `dmNup=`*(self: var DEVMODEW, x: DWORD) {.inline.} = self.union2.dmNup = x -proc dmNup*(self: DEVMODEW): DWORD {.inline.} = self.union2.dmNup -proc dmNup*(self: var DEVMODEW): var DWORD {.inline.} = self.union2.dmNup -proc `targetMode=`*(self: var DISPLAYCONFIG_MODE_INFO, x: DISPLAYCONFIG_TARGET_MODE) {.inline.} = self.union1.targetMode = x -proc targetMode*(self: DISPLAYCONFIG_MODE_INFO): DISPLAYCONFIG_TARGET_MODE {.inline.} = self.union1.targetMode -proc targetMode*(self: var DISPLAYCONFIG_MODE_INFO): var DISPLAYCONFIG_TARGET_MODE {.inline.} = self.union1.targetMode -proc `sourceMode=`*(self: var DISPLAYCONFIG_MODE_INFO, x: DISPLAYCONFIG_SOURCE_MODE) {.inline.} = self.union1.sourceMode = x -proc sourceMode*(self: DISPLAYCONFIG_MODE_INFO): DISPLAYCONFIG_SOURCE_MODE {.inline.} = self.union1.sourceMode -proc sourceMode*(self: var DISPLAYCONFIG_MODE_INFO): var DISPLAYCONFIG_SOURCE_MODE {.inline.} = self.union1.sourceMode -proc `friendlyNameFromEdid=`*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32) {.inline.} = self.union1.struct1.friendlyNameFromEdid = x -proc friendlyNameFromEdid*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = self.union1.struct1.friendlyNameFromEdid -proc `friendlyNameForced=`*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32) {.inline.} = self.union1.struct1.friendlyNameForced = x -proc friendlyNameForced*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = self.union1.struct1.friendlyNameForced -proc `edidIdsValid=`*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32) {.inline.} = self.union1.struct1.edidIdsValid = x -proc edidIdsValid*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = self.union1.struct1.edidIdsValid -proc `reserved=`*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32) {.inline.} = self.union1.struct1.reserved = x -proc reserved*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = self.union1.struct1.reserved -proc `value=`*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32) {.inline.} = self.union1.value = x -proc value*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = self.union1.value -proc value*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): var UINT32 {.inline.} = self.union1.value -proc `bootPersistenceOn=`*(self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE, x: UINT32) {.inline.} = self.union1.struct1.bootPersistenceOn = x -proc bootPersistenceOn*(self: DISPLAYCONFIG_SET_TARGET_PERSISTENCE): UINT32 {.inline.} = self.union1.struct1.bootPersistenceOn -proc `reserved=`*(self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE, x: UINT32) {.inline.} = self.union1.struct1.reserved = x -proc reserved*(self: DISPLAYCONFIG_SET_TARGET_PERSISTENCE): UINT32 {.inline.} = self.union1.struct1.reserved -proc `value=`*(self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE, x: UINT32) {.inline.} = self.union1.value = x -proc value*(self: DISPLAYCONFIG_SET_TARGET_PERSISTENCE): UINT32 {.inline.} = self.union1.value -proc value*(self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE): var UINT32 {.inline.} = self.union1.value +proc wglUseFontOutlinesA*( + P1: HDC, + P2: DWORD, + P3: DWORD, + P4: DWORD, + P5: FLOAT, + P6: FLOAT, + P7: int32, + P8: LPGLYPHMETRICSFLOAT, +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglUseFontOutlinesW*( + P1: HDC, + P2: DWORD, + P3: DWORD, + P4: DWORD, + P5: FLOAT, + P6: FLOAT, + P7: int32, + P8: LPGLYPHMETRICSFLOAT, +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglDescribeLayerPlane*( + P1: HDC, P2: int32, P3: int32, P4: UINT, P5: LPLAYERPLANEDESCRIPTOR +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglSetLayerPaletteEntries*( + P1: HDC, P2: int32, P3: int32, P4: int32, P5: ptr COLORREF +): int32 {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglGetLayerPaletteEntries*( + P1: HDC, P2: int32, P3: int32, P4: int32, P5: ptr COLORREF +): int32 {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglRealizeLayerPalette*( + P1: HDC, P2: int32, P3: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglSwapLayerBuffers*( + P1: HDC, P2: UINT +): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc.} + +proc wglSwapMultipleBuffers*( + P1: UINT, P2: ptr WGLSWAP +): DWORD {.winapi, stdcall, dynlib: "opengl32", importc.} + +template MAKEROP4*(fore: untyped, back: untyped): DWORD = + DWORD((back shl 8) and 0xff000000) or DWORD(fore) + +template GetCValue*(cmyk: untyped): BYTE = + BYTE((cmyk shr 24) and 0xff) + +template GetMValue*(cmyk: untyped): BYTE = + BYTE((cmyk shr 16) and 0xff) + +template GetYValue*(cmyk: untyped): BYTE = + BYTE((cmyk shr 8) and 0xff) + +template GetKValue*(cmyk: untyped): BYTE = + BYTE((cmyk) and 0xff) + +template CMYK*(c: untyped, m: untyped, y: untyped, k: untyped): COLORREF = + COLORREF(COLORREF(k) or COLORREF(y shl 8) or COLORREF(m shl 16) or COLORREF(c shl 24)) + +template MAKEPOINTS*(l: untyped): POINTS = + POINTS(x: SHORT(l and 0xffff), y: SHORT(l shr 16 and 0xffff)) + +template RGB*(r: untyped, g: untyped, b: untyped): COLORREF = + COLORREF( + COLORREF(r and 0xff) or (COLORREF(g and 0xff) shl 8) or ( + COLORREF(b and 0xff) shl 16 + ) + ) + +template PALETTERGB*(r: untyped, g: untyped, b: untyped): COLORREF = + COLORREF(RGB(r, g, b) or 0x02000000) + +template GetRValue*(c: untyped): BYTE = + BYTE((c) and 0xff) + +template GetGValue*(c: untyped): BYTE = + BYTE((c shr 8) and 0xff) + +template GetBValue*(c: untyped): BYTE = + BYTE((c shr 16) and 0xff) + +template PALETTEINDEX*(i: untyped): COLORREF = + COLORREF(i and 0xff) or 0x01000000 + +proc `dmOrientation=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmOrientation = x + +proc dmOrientation*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmOrientation + +proc dmOrientation*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmOrientation + +proc `dmPaperSize=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmPaperSize = x + +proc dmPaperSize*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmPaperSize + +proc dmPaperSize*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmPaperSize + +proc `dmPaperLength=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmPaperLength = x + +proc dmPaperLength*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmPaperLength + +proc dmPaperLength*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmPaperLength + +proc `dmPaperWidth=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmPaperWidth = x + +proc dmPaperWidth*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmPaperWidth + +proc dmPaperWidth*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmPaperWidth + +proc `dmScale=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmScale = x + +proc dmScale*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmScale + +proc dmScale*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmScale + +proc `dmCopies=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmCopies = x + +proc dmCopies*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmCopies + +proc dmCopies*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmCopies + +proc `dmDefaultSource=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmDefaultSource = x + +proc dmDefaultSource*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmDefaultSource + +proc dmDefaultSource*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmDefaultSource + +proc `dmPrintQuality=`*(self: var DEVMODEA, x: int16) {.inline.} = + self.union1.struct1.dmPrintQuality = x + +proc dmPrintQuality*(self: DEVMODEA): int16 {.inline.} = + self.union1.struct1.dmPrintQuality + +proc dmPrintQuality*(self: var DEVMODEA): var int16 {.inline.} = + self.union1.struct1.dmPrintQuality + +proc `dmPosition=`*(self: var DEVMODEA, x: POINTL) {.inline.} = + self.union1.struct2.dmPosition = x + +proc dmPosition*(self: DEVMODEA): POINTL {.inline.} = + self.union1.struct2.dmPosition + +proc dmPosition*(self: var DEVMODEA): var POINTL {.inline.} = + self.union1.struct2.dmPosition + +proc `dmDisplayOrientation=`*(self: var DEVMODEA, x: DWORD) {.inline.} = + self.union1.struct2.dmDisplayOrientation = x + +proc dmDisplayOrientation*(self: DEVMODEA): DWORD {.inline.} = + self.union1.struct2.dmDisplayOrientation + +proc dmDisplayOrientation*(self: var DEVMODEA): var DWORD {.inline.} = + self.union1.struct2.dmDisplayOrientation + +proc `dmDisplayFixedOutput=`*(self: var DEVMODEA, x: DWORD) {.inline.} = + self.union1.struct2.dmDisplayFixedOutput = x + +proc dmDisplayFixedOutput*(self: DEVMODEA): DWORD {.inline.} = + self.union1.struct2.dmDisplayFixedOutput + +proc dmDisplayFixedOutput*(self: var DEVMODEA): var DWORD {.inline.} = + self.union1.struct2.dmDisplayFixedOutput + +proc `dmDisplayFlags=`*(self: var DEVMODEA, x: DWORD) {.inline.} = + self.union2.dmDisplayFlags = x + +proc dmDisplayFlags*(self: DEVMODEA): DWORD {.inline.} = + self.union2.dmDisplayFlags + +proc dmDisplayFlags*(self: var DEVMODEA): var DWORD {.inline.} = + self.union2.dmDisplayFlags + +proc `dmNup=`*(self: var DEVMODEA, x: DWORD) {.inline.} = + self.union2.dmNup = x + +proc dmNup*(self: DEVMODEA): DWORD {.inline.} = + self.union2.dmNup + +proc dmNup*(self: var DEVMODEA): var DWORD {.inline.} = + self.union2.dmNup + +proc `dmOrientation=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmOrientation = x + +proc dmOrientation*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmOrientation + +proc dmOrientation*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmOrientation + +proc `dmPaperSize=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmPaperSize = x + +proc dmPaperSize*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmPaperSize + +proc dmPaperSize*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmPaperSize + +proc `dmPaperLength=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmPaperLength = x + +proc dmPaperLength*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmPaperLength + +proc dmPaperLength*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmPaperLength + +proc `dmPaperWidth=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmPaperWidth = x + +proc dmPaperWidth*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmPaperWidth + +proc dmPaperWidth*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmPaperWidth + +proc `dmScale=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmScale = x + +proc dmScale*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmScale + +proc dmScale*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmScale + +proc `dmCopies=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmCopies = x + +proc dmCopies*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmCopies + +proc dmCopies*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmCopies + +proc `dmDefaultSource=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmDefaultSource = x + +proc dmDefaultSource*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmDefaultSource + +proc dmDefaultSource*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmDefaultSource + +proc `dmPrintQuality=`*(self: var DEVMODEW, x: int16) {.inline.} = + self.union1.struct1.dmPrintQuality = x + +proc dmPrintQuality*(self: DEVMODEW): int16 {.inline.} = + self.union1.struct1.dmPrintQuality + +proc dmPrintQuality*(self: var DEVMODEW): var int16 {.inline.} = + self.union1.struct1.dmPrintQuality + +proc `dmPosition=`*(self: var DEVMODEW, x: POINTL) {.inline.} = + self.union1.struct2.dmPosition = x + +proc dmPosition*(self: DEVMODEW): POINTL {.inline.} = + self.union1.struct2.dmPosition + +proc dmPosition*(self: var DEVMODEW): var POINTL {.inline.} = + self.union1.struct2.dmPosition + +proc `dmDisplayOrientation=`*(self: var DEVMODEW, x: DWORD) {.inline.} = + self.union1.struct2.dmDisplayOrientation = x + +proc dmDisplayOrientation*(self: DEVMODEW): DWORD {.inline.} = + self.union1.struct2.dmDisplayOrientation + +proc dmDisplayOrientation*(self: var DEVMODEW): var DWORD {.inline.} = + self.union1.struct2.dmDisplayOrientation + +proc `dmDisplayFixedOutput=`*(self: var DEVMODEW, x: DWORD) {.inline.} = + self.union1.struct2.dmDisplayFixedOutput = x + +proc dmDisplayFixedOutput*(self: DEVMODEW): DWORD {.inline.} = + self.union1.struct2.dmDisplayFixedOutput + +proc dmDisplayFixedOutput*(self: var DEVMODEW): var DWORD {.inline.} = + self.union1.struct2.dmDisplayFixedOutput + +proc `dmDisplayFlags=`*(self: var DEVMODEW, x: DWORD) {.inline.} = + self.union2.dmDisplayFlags = x + +proc dmDisplayFlags*(self: DEVMODEW): DWORD {.inline.} = + self.union2.dmDisplayFlags + +proc dmDisplayFlags*(self: var DEVMODEW): var DWORD {.inline.} = + self.union2.dmDisplayFlags + +proc `dmNup=`*(self: var DEVMODEW, x: DWORD) {.inline.} = + self.union2.dmNup = x + +proc dmNup*(self: DEVMODEW): DWORD {.inline.} = + self.union2.dmNup + +proc dmNup*(self: var DEVMODEW): var DWORD {.inline.} = + self.union2.dmNup + +proc `targetMode=`*( + self: var DISPLAYCONFIG_MODE_INFO, x: DISPLAYCONFIG_TARGET_MODE +) {.inline.} = + self.union1.targetMode = x + +proc targetMode*(self: DISPLAYCONFIG_MODE_INFO): DISPLAYCONFIG_TARGET_MODE {.inline.} = + self.union1.targetMode + +proc targetMode*( + self: var DISPLAYCONFIG_MODE_INFO +): var DISPLAYCONFIG_TARGET_MODE {.inline.} = + self.union1.targetMode + +proc `sourceMode=`*( + self: var DISPLAYCONFIG_MODE_INFO, x: DISPLAYCONFIG_SOURCE_MODE +) {.inline.} = + self.union1.sourceMode = x + +proc sourceMode*(self: DISPLAYCONFIG_MODE_INFO): DISPLAYCONFIG_SOURCE_MODE {.inline.} = + self.union1.sourceMode + +proc sourceMode*( + self: var DISPLAYCONFIG_MODE_INFO +): var DISPLAYCONFIG_SOURCE_MODE {.inline.} = + self.union1.sourceMode + +proc `friendlyNameFromEdid=`*( + self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32 +) {.inline.} = + self.union1.struct1.friendlyNameFromEdid = x + +proc friendlyNameFromEdid*( + self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS +): UINT32 {.inline.} = + self.union1.struct1.friendlyNameFromEdid + +proc `friendlyNameForced=`*( + self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32 +) {.inline.} = + self.union1.struct1.friendlyNameForced = x + +proc friendlyNameForced*( + self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS +): UINT32 {.inline.} = + self.union1.struct1.friendlyNameForced + +proc `edidIdsValid=`*( + self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32 +) {.inline.} = + self.union1.struct1.edidIdsValid = x + +proc edidIdsValid*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = + self.union1.struct1.edidIdsValid + +proc `reserved=`*( + self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32 +) {.inline.} = + self.union1.struct1.reserved = x + +proc reserved*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = + self.union1.struct1.reserved + +proc `value=`*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS, x: UINT32) {.inline.} = + self.union1.value = x + +proc value*(self: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): UINT32 {.inline.} = + self.union1.value + +proc value*(self: var DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS): var UINT32 {.inline.} = + self.union1.value + +proc `bootPersistenceOn=`*( + self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE, x: UINT32 +) {.inline.} = + self.union1.struct1.bootPersistenceOn = x + +proc bootPersistenceOn*(self: DISPLAYCONFIG_SET_TARGET_PERSISTENCE): UINT32 {.inline.} = + self.union1.struct1.bootPersistenceOn + +proc `reserved=`*( + self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE, x: UINT32 +) {.inline.} = + self.union1.struct1.reserved = x + +proc reserved*(self: DISPLAYCONFIG_SET_TARGET_PERSISTENCE): UINT32 {.inline.} = + self.union1.struct1.reserved + +proc `value=`*(self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE, x: UINT32) {.inline.} = + self.union1.value = x + +proc value*(self: DISPLAYCONFIG_SET_TARGET_PERSISTENCE): UINT32 {.inline.} = + self.union1.value + +proc value*(self: var DISPLAYCONFIG_SET_TARGET_PERSISTENCE): var UINT32 {.inline.} = + self.union1.value + when winimUnicode: type LOGCOLORSPACE* = LOGCOLORSPACEW @@ -3806,56 +5503,261 @@ DOCINFO* = DOCINFOW LPDOCINFO* = LPDOCINFOW ICMENUMPROC* = ICMENUMPROCW - proc AddFontResource*(P1: LPCWSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceW".} - proc CopyMetaFile*(P1: HMETAFILE, P2: LPCWSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyMetaFileW".} - proc CreateDC*(pwszDriver: LPCWSTR, pwszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateDCW".} - proc CreateFontIndirect*(lplf: ptr LOGFONTW): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectW".} - proc CreateFont*(cHeight: int32, cWidth: int32, cEscapement: int32, cOrientation: int32, cWeight: int32, bItalic: DWORD, bUnderline: DWORD, bStrikeOut: DWORD, iCharSet: DWORD, iOutPrecision: DWORD, iClipPrecision: DWORD, iQuality: DWORD, iPitchAndFamily: DWORD, pszFaceName: LPCWSTR): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontW".} - proc CreateIC*(pszDriver: LPCWSTR, pszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateICW".} - proc CreateMetaFile*(pszFile: LPCWSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateMetaFileW".} - proc CreateScalableFontResource*(fdwHidden: DWORD, lpszFont: LPCWSTR, lpszFile: LPCWSTR, lpszPath: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "CreateScalableFontResourceW".} - proc DeviceCapabilities*(pDevice: LPCWSTR, pPort: LPCWSTR, fwCapability: WORD, pOutput: LPWSTR, pDevMode: ptr DEVMODEW): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeviceCapabilitiesW".} - proc EnumFontFamiliesEx*(hdc: HDC, lpLogfont: LPLOGFONTW, lpProc: FONTENUMPROCW, lParam: LPARAM, dwFlags: DWORD): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesExW".} - proc EnumFontFamilies*(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesW".} - proc EnumFonts*(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontsW".} - proc GetCharWidth*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthW".} - proc GetCharWidth32*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidth32W".} - proc GetCharWidthFloat*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthFloatW".} - proc GetCharABCWidths*(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsW".} - proc GetCharABCWidthsFloat*(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsFloatW".} - proc GetGlyphOutline*(hdc: HDC, uChar: UINT, fuFormat: UINT, lpgm: LPGLYPHMETRICS, cjBuffer: DWORD, pvBuffer: LPVOID, lpmat2: ptr MAT2): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphOutlineW".} - proc GetMetaFile*(lpName: LPCWSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetMetaFileW".} - proc GetOutlineTextMetrics*(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICW): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetOutlineTextMetricsW".} - proc GetTextExtentPoint*(hdc: HDC, lpString: LPCWSTR, c: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPointW".} - proc GetTextExtentPoint32*(hdc: HDC, lpString: LPCWSTR, c: int32, psizl: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPoint32W".} - proc GetTextExtentExPoint*(hdc: HDC, lpszString: LPCWSTR, cchString: int32, nMaxExtent: int32, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentExPointW".} - proc GetCharacterPlacement*(hdc: HDC, lpString: LPCWSTR, nCount: int32, nMexExtent: int32, lpResults: LPGCP_RESULTSW, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharacterPlacementW".} - proc GetGlyphIndices*(hdc: HDC, lpstr: LPCWSTR, c: int32, pgi: LPWORD, fl: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphIndicesW".} - proc AddFontResourceEx*(name: LPCWSTR, fl: DWORD, res: PVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceExW".} - proc RemoveFontResourceEx*(name: LPCWSTR, fl: DWORD, pdv: PVOID): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceExW".} - proc CreateFontIndirectEx*(P1: ptr ENUMLOGFONTEXDVW): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectExW".} - proc ResetDC*(hdc: HDC, lpdm: ptr DEVMODEW): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "ResetDCW".} - proc RemoveFontResource*(lpFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceW".} - proc CopyEnhMetaFile*(hEnh: HENHMETAFILE, lpFileName: LPCWSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyEnhMetaFileW".} - proc CreateEnhMetaFile*(hdc: HDC, lpFilename: LPCWSTR, lprc: ptr RECT, lpDesc: LPCWSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateEnhMetaFileW".} - proc GetEnhMetaFile*(lpName: LPCWSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileW".} - proc GetEnhMetaFileDescription*(hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPWSTR): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileDescriptionW".} - proc GetTextMetrics*(hdc: HDC, lptm: LPTEXTMETRICW): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextMetricsW".} - proc StartDoc*(hdc: HDC, lpdi: ptr DOCINFOW): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "StartDocW".} - proc GetObject*(h: HANDLE, c: int32, pv: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetObjectW".} - proc TextOut*(hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "TextOutW".} - proc ExtTextOut*(hdc: HDC, x: int32, y: int32, options: UINT, lprect: ptr RECT, lpString: LPCWSTR, c: UINT, lpDx: ptr INT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "ExtTextOutW".} - proc PolyTextOut*(hdc: HDC, ppt: ptr POLYTEXTW, nstrings: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "PolyTextOutW".} - proc GetTextFace*(hdc: HDC, c: int32, lpName: LPWSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextFaceW".} - proc GetKerningPairs*(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetKerningPairsW".} - proc EnumICMProfiles*(hdc: HDC, lpProc: ICMENUMPROCW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumICMProfilesW".} - proc UpdateICMRegKey*(reserved: DWORD, lpszCMID: LPWSTR, lpszFileName: LPWSTR, command: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "UpdateICMRegKeyW".} - proc GetLogColorSpace*(hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEW, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetLogColorSpaceW".} - proc CreateColorSpace*(lplcs: LPLOGCOLORSPACEW): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc: "CreateColorSpaceW".} - proc GetICMProfile*(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetICMProfileW".} - proc SetICMProfile*(hdc: HDC, lpFileName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "SetICMProfileW".} - proc wglUseFontBitmaps*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontBitmapsW".} - proc wglUseFontOutlines*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD, P5: FLOAT, P6: FLOAT, P7: int32, P8: LPGLYPHMETRICSFLOAT): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontOutlinesW".} + + proc AddFontResource*( + P1: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceW".} + + proc CopyMetaFile*( + P1: HMETAFILE, P2: LPCWSTR + ): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyMetaFileW".} + + proc CreateDC*( + pwszDriver: LPCWSTR, pwszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateDCW".} + + proc CreateFontIndirect*( + lplf: ptr LOGFONTW + ): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectW".} + + proc CreateFont*( + cHeight: int32, + cWidth: int32, + cEscapement: int32, + cOrientation: int32, + cWeight: int32, + bItalic: DWORD, + bUnderline: DWORD, + bStrikeOut: DWORD, + iCharSet: DWORD, + iOutPrecision: DWORD, + iClipPrecision: DWORD, + iQuality: DWORD, + iPitchAndFamily: DWORD, + pszFaceName: LPCWSTR, + ): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontW".} + + proc CreateIC*( + pszDriver: LPCWSTR, pszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ptr DEVMODEW + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateICW".} + + proc CreateMetaFile*( + pszFile: LPCWSTR + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateMetaFileW".} + + proc CreateScalableFontResource*( + fdwHidden: DWORD, lpszFont: LPCWSTR, lpszFile: LPCWSTR, lpszPath: LPCWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "gdi32", importc: "CreateScalableFontResourceW" + .} + + proc DeviceCapabilities*( + pDevice: LPCWSTR, + pPort: LPCWSTR, + fwCapability: WORD, + pOutput: LPWSTR, + pDevMode: ptr DEVMODEW, + ): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeviceCapabilitiesW".} + + proc EnumFontFamiliesEx*( + hdc: HDC, + lpLogfont: LPLOGFONTW, + lpProc: FONTENUMPROCW, + lParam: LPARAM, + dwFlags: DWORD, + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesExW".} + + proc EnumFontFamilies*( + hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesW".} + + proc EnumFonts*( + hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontsW".} + + proc GetCharWidth*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthW".} + + proc GetCharWidth32*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidth32W".} + + proc GetCharWidthFloat*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthFloatW".} + + proc GetCharABCWidths*( + hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsW".} + + proc GetCharABCWidthsFloat*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsFloatW".} + + proc GetGlyphOutline*( + hdc: HDC, + uChar: UINT, + fuFormat: UINT, + lpgm: LPGLYPHMETRICS, + cjBuffer: DWORD, + pvBuffer: LPVOID, + lpmat2: ptr MAT2, + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphOutlineW".} + + proc GetMetaFile*( + lpName: LPCWSTR + ): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetMetaFileW".} + + proc GetOutlineTextMetrics*( + hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICW + ): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetOutlineTextMetricsW".} + + proc GetTextExtentPoint*( + hdc: HDC, lpString: LPCWSTR, c: int32, lpsz: LPSIZE + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPointW".} + + proc GetTextExtentPoint32*( + hdc: HDC, lpString: LPCWSTR, c: int32, psizl: LPSIZE + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPoint32W".} + + proc GetTextExtentExPoint*( + hdc: HDC, + lpszString: LPCWSTR, + cchString: int32, + nMaxExtent: int32, + lpnFit: LPINT, + lpnDx: LPINT, + lpSize: LPSIZE, + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentExPointW".} + + proc GetCharacterPlacement*( + hdc: HDC, + lpString: LPCWSTR, + nCount: int32, + nMexExtent: int32, + lpResults: LPGCP_RESULTSW, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharacterPlacementW".} + + proc GetGlyphIndices*( + hdc: HDC, lpstr: LPCWSTR, c: int32, pgi: LPWORD, fl: DWORD + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphIndicesW".} + + proc AddFontResourceEx*( + name: LPCWSTR, fl: DWORD, res: PVOID + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceExW".} + + proc RemoveFontResourceEx*( + name: LPCWSTR, fl: DWORD, pdv: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceExW".} + + proc CreateFontIndirectEx*( + P1: ptr ENUMLOGFONTEXDVW + ): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectExW".} + + proc ResetDC*( + hdc: HDC, lpdm: ptr DEVMODEW + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "ResetDCW".} + + proc RemoveFontResource*( + lpFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceW".} + + proc CopyEnhMetaFile*( + hEnh: HENHMETAFILE, lpFileName: LPCWSTR + ): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyEnhMetaFileW".} + + proc CreateEnhMetaFile*( + hdc: HDC, lpFilename: LPCWSTR, lprc: ptr RECT, lpDesc: LPCWSTR + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateEnhMetaFileW".} + + proc GetEnhMetaFile*( + lpName: LPCWSTR + ): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileW".} + + proc GetEnhMetaFileDescription*( + hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPWSTR + ): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileDescriptionW".} + + proc GetTextMetrics*( + hdc: HDC, lptm: LPTEXTMETRICW + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextMetricsW".} + + proc StartDoc*( + hdc: HDC, lpdi: ptr DOCINFOW + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "StartDocW".} + + proc GetObject*( + h: HANDLE, c: int32, pv: LPVOID + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetObjectW".} + + proc TextOut*( + hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, c: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "TextOutW".} + + proc ExtTextOut*( + hdc: HDC, + x: int32, + y: int32, + options: UINT, + lprect: ptr RECT, + lpString: LPCWSTR, + c: UINT, + lpDx: ptr INT, + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "ExtTextOutW".} + + proc PolyTextOut*( + hdc: HDC, ppt: ptr POLYTEXTW, nstrings: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "PolyTextOutW".} + + proc GetTextFace*( + hdc: HDC, c: int32, lpName: LPWSTR + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextFaceW".} + + proc GetKerningPairs*( + hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetKerningPairsW".} + + proc EnumICMProfiles*( + hdc: HDC, lpProc: ICMENUMPROCW, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumICMProfilesW".} + + proc UpdateICMRegKey*( + reserved: DWORD, lpszCMID: LPWSTR, lpszFileName: LPWSTR, command: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "UpdateICMRegKeyW".} + + proc GetLogColorSpace*( + hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEW, nSize: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetLogColorSpaceW".} + + proc CreateColorSpace*( + lplcs: LPLOGCOLORSPACEW + ): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc: "CreateColorSpaceW".} + + proc GetICMProfile*( + hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetICMProfileW".} + + proc SetICMProfile*( + hdc: HDC, lpFileName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "SetICMProfileW".} + + proc wglUseFontBitmaps*( + P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontBitmapsW".} + + proc wglUseFontOutlines*( + P1: HDC, + P2: DWORD, + P3: DWORD, + P4: DWORD, + P5: FLOAT, + P6: FLOAT, + P7: int32, + P8: LPGLYPHMETRICSFLOAT, + ): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontOutlinesW".} + when winimAnsi: type LOGCOLORSPACE* = LOGCOLORSPACEA @@ -3914,53 +5816,257 @@ DOCINFO* = DOCINFOA LPDOCINFO* = LPDOCINFOA ICMENUMPROC* = ICMENUMPROCA - proc AddFontResource*(P1: LPCSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceA".} - proc CopyMetaFile*(P1: HMETAFILE, P2: LPCSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyMetaFileA".} - proc CreateDC*(pwszDriver: LPCSTR, pwszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateDCA".} - proc CreateFontIndirect*(lplf: ptr LOGFONTA): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectA".} - proc CreateFont*(cHeight: int32, cWidth: int32, cEscapement: int32, cOrientation: int32, cWeight: int32, bItalic: DWORD, bUnderline: DWORD, bStrikeOut: DWORD, iCharSet: DWORD, iOutPrecision: DWORD, iClipPrecision: DWORD, iQuality: DWORD, iPitchAndFamily: DWORD, pszFaceName: LPCSTR): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontA".} - proc CreateIC*(pszDriver: LPCSTR, pszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateICA".} - proc CreateMetaFile*(pszFile: LPCSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateMetaFileA".} - proc CreateScalableFontResource*(fdwHidden: DWORD, lpszFont: LPCSTR, lpszFile: LPCSTR, lpszPath: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "CreateScalableFontResourceA".} - proc DeviceCapabilities*(pDevice: LPCSTR, pPort: LPCSTR, fwCapability: WORD, pOutput: LPSTR, pDevMode: ptr DEVMODEA): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeviceCapabilitiesA".} - proc EnumFontFamiliesEx*(hdc: HDC, lpLogfont: LPLOGFONTA, lpProc: FONTENUMPROCA, lParam: LPARAM, dwFlags: DWORD): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesExA".} - proc EnumFontFamilies*(hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesA".} - proc EnumFonts*(hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontsA".} - proc GetCharWidth*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthA".} - proc GetCharWidth32*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidth32A".} - proc GetCharWidthFloat*(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthFloatA".} - proc GetCharABCWidths*(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsA".} - proc GetCharABCWidthsFloat*(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsFloatA".} - proc GetGlyphOutline*(hdc: HDC, uChar: UINT, fuFormat: UINT, lpgm: LPGLYPHMETRICS, cjBuffer: DWORD, pvBuffer: LPVOID, lpmat2: ptr MAT2): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphOutlineA".} - proc GetMetaFile*(lpName: LPCSTR): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetMetaFileA".} - proc GetOutlineTextMetrics*(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICA): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetOutlineTextMetricsA".} - proc GetTextExtentPoint*(hdc: HDC, lpString: LPCSTR, c: int32, lpsz: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPointA".} - proc GetTextExtentPoint32*(hdc: HDC, lpString: LPCSTR, c: int32, psizl: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPoint32A".} - proc GetTextExtentExPoint*(hdc: HDC, lpszString: LPCSTR, cchString: int32, nMaxExtent: int32, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentExPointA".} - proc GetCharacterPlacement*(hdc: HDC, lpString: LPCSTR, nCount: int32, nMexExtent: int32, lpResults: LPGCP_RESULTSA, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharacterPlacementA".} - proc GetGlyphIndices*(hdc: HDC, lpstr: LPCSTR, c: int32, pgi: LPWORD, fl: DWORD): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphIndicesA".} - proc AddFontResourceEx*(name: LPCSTR, fl: DWORD, res: PVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceExA".} - proc RemoveFontResourceEx*(name: LPCSTR, fl: DWORD, pdv: PVOID): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceExA".} - proc CreateFontIndirectEx*(P1: ptr ENUMLOGFONTEXDVA): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectExA".} - proc ResetDC*(hdc: HDC, lpdm: ptr DEVMODEA): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "ResetDCA".} - proc RemoveFontResource*(lpFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceA".} - proc CopyEnhMetaFile*(hEnh: HENHMETAFILE, lpFileName: LPCSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyEnhMetaFileA".} - proc CreateEnhMetaFile*(hdc: HDC, lpFilename: LPCSTR, lprc: ptr RECT, lpDesc: LPCSTR): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateEnhMetaFileA".} - proc GetEnhMetaFile*(lpName: LPCSTR): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileA".} - proc GetEnhMetaFileDescription*(hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPSTR): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileDescriptionA".} - proc GetTextMetrics*(hdc: HDC, lptm: LPTEXTMETRICA): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextMetricsA".} - proc StartDoc*(hdc: HDC, lpdi: ptr DOCINFOA): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "StartDocA".} - proc GetObject*(h: HANDLE, c: int32, pv: LPVOID): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetObjectA".} - proc TextOut*(hdc: HDC, x: int32, y: int32, lpString: LPCSTR, c: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "TextOutA".} - proc ExtTextOut*(hdc: HDC, x: int32, y: int32, options: UINT, lprect: ptr RECT, lpString: LPCSTR, c: UINT, lpDx: ptr INT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "ExtTextOutA".} - proc PolyTextOut*(hdc: HDC, ppt: ptr POLYTEXTA, nstrings: int32): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "PolyTextOutA".} - proc GetTextFace*(hdc: HDC, c: int32, lpName: LPSTR): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextFaceA".} - proc GetKerningPairs*(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetKerningPairsA".} - proc EnumICMProfiles*(hdc: HDC, lpProc: ICMENUMPROCA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumICMProfilesA".} - proc UpdateICMRegKey*(reserved: DWORD, lpszCMID: LPSTR, lpszFileName: LPSTR, command: UINT): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "UpdateICMRegKeyA".} - proc GetLogColorSpace*(hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEA, nSize: DWORD): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetLogColorSpaceA".} - proc CreateColorSpace*(lplcs: LPLOGCOLORSPACEA): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc: "CreateColorSpaceA".} - proc GetICMProfile*(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetICMProfileA".} - proc SetICMProfile*(hdc: HDC, lpFileName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "SetICMProfileA".} - proc wglUseFontBitmaps*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontBitmapsA".} - proc wglUseFontOutlines*(P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD, P5: FLOAT, P6: FLOAT, P7: int32, P8: LPGLYPHMETRICSFLOAT): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontOutlinesA".} + + proc AddFontResource*( + P1: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceA".} + + proc CopyMetaFile*( + P1: HMETAFILE, P2: LPCSTR + ): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyMetaFileA".} + + proc CreateDC*( + pwszDriver: LPCSTR, pwszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateDCA".} + + proc CreateFontIndirect*( + lplf: ptr LOGFONTA + ): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectA".} + + proc CreateFont*( + cHeight: int32, + cWidth: int32, + cEscapement: int32, + cOrientation: int32, + cWeight: int32, + bItalic: DWORD, + bUnderline: DWORD, + bStrikeOut: DWORD, + iCharSet: DWORD, + iOutPrecision: DWORD, + iClipPrecision: DWORD, + iQuality: DWORD, + iPitchAndFamily: DWORD, + pszFaceName: LPCSTR, + ): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontA".} + + proc CreateIC*( + pszDriver: LPCSTR, pszDevice: LPCSTR, pszPort: LPCSTR, pdm: ptr DEVMODEA + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateICA".} + + proc CreateMetaFile*( + pszFile: LPCSTR + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateMetaFileA".} + + proc CreateScalableFontResource*( + fdwHidden: DWORD, lpszFont: LPCSTR, lpszFile: LPCSTR, lpszPath: LPCSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "gdi32", importc: "CreateScalableFontResourceA" + .} + + proc DeviceCapabilities*( + pDevice: LPCSTR, + pPort: LPCSTR, + fwCapability: WORD, + pOutput: LPSTR, + pDevMode: ptr DEVMODEA, + ): int32 {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeviceCapabilitiesA".} + + proc EnumFontFamiliesEx*( + hdc: HDC, + lpLogfont: LPLOGFONTA, + lpProc: FONTENUMPROCA, + lParam: LPARAM, + dwFlags: DWORD, + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesExA".} + + proc EnumFontFamilies*( + hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontFamiliesA".} + + proc EnumFonts*( + hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumFontsA".} + + proc GetCharWidth*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthA".} + + proc GetCharWidth32*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidth32A".} + + proc GetCharWidthFloat*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharWidthFloatA".} + + proc GetCharABCWidths*( + hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsA".} + + proc GetCharABCWidthsFloat*( + hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharABCWidthsFloatA".} + + proc GetGlyphOutline*( + hdc: HDC, + uChar: UINT, + fuFormat: UINT, + lpgm: LPGLYPHMETRICS, + cjBuffer: DWORD, + pvBuffer: LPVOID, + lpmat2: ptr MAT2, + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphOutlineA".} + + proc GetMetaFile*( + lpName: LPCSTR + ): HMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetMetaFileA".} + + proc GetOutlineTextMetrics*( + hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICA + ): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetOutlineTextMetricsA".} + + proc GetTextExtentPoint*( + hdc: HDC, lpString: LPCSTR, c: int32, lpsz: LPSIZE + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPointA".} + + proc GetTextExtentPoint32*( + hdc: HDC, lpString: LPCSTR, c: int32, psizl: LPSIZE + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentPoint32A".} + + proc GetTextExtentExPoint*( + hdc: HDC, + lpszString: LPCSTR, + cchString: int32, + nMaxExtent: int32, + lpnFit: LPINT, + lpnDx: LPINT, + lpSize: LPSIZE, + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextExtentExPointA".} + + proc GetCharacterPlacement*( + hdc: HDC, + lpString: LPCSTR, + nCount: int32, + nMexExtent: int32, + lpResults: LPGCP_RESULTSA, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetCharacterPlacementA".} + + proc GetGlyphIndices*( + hdc: HDC, lpstr: LPCSTR, c: int32, pgi: LPWORD, fl: DWORD + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetGlyphIndicesA".} + + proc AddFontResourceEx*( + name: LPCSTR, fl: DWORD, res: PVOID + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "AddFontResourceExA".} + + proc RemoveFontResourceEx*( + name: LPCSTR, fl: DWORD, pdv: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceExA".} + + proc CreateFontIndirectEx*( + P1: ptr ENUMLOGFONTEXDVA + ): HFONT {.winapi, stdcall, dynlib: "gdi32", importc: "CreateFontIndirectExA".} + + proc ResetDC*( + hdc: HDC, lpdm: ptr DEVMODEA + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "ResetDCA".} + + proc RemoveFontResource*( + lpFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "RemoveFontResourceA".} + + proc CopyEnhMetaFile*( + hEnh: HENHMETAFILE, lpFileName: LPCSTR + ): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "CopyEnhMetaFileA".} + + proc CreateEnhMetaFile*( + hdc: HDC, lpFilename: LPCSTR, lprc: ptr RECT, lpDesc: LPCSTR + ): HDC {.winapi, stdcall, dynlib: "gdi32", importc: "CreateEnhMetaFileA".} + + proc GetEnhMetaFile*( + lpName: LPCSTR + ): HENHMETAFILE {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileA".} + + proc GetEnhMetaFileDescription*( + hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPSTR + ): UINT {.winapi, stdcall, dynlib: "gdi32", importc: "GetEnhMetaFileDescriptionA".} + + proc GetTextMetrics*( + hdc: HDC, lptm: LPTEXTMETRICA + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextMetricsA".} + + proc StartDoc*( + hdc: HDC, lpdi: ptr DOCINFOA + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "StartDocA".} + + proc GetObject*( + h: HANDLE, c: int32, pv: LPVOID + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetObjectA".} + + proc TextOut*( + hdc: HDC, x: int32, y: int32, lpString: LPCSTR, c: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "TextOutA".} + + proc ExtTextOut*( + hdc: HDC, + x: int32, + y: int32, + options: UINT, + lprect: ptr RECT, + lpString: LPCSTR, + c: UINT, + lpDx: ptr INT, + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "ExtTextOutA".} + + proc PolyTextOut*( + hdc: HDC, ppt: ptr POLYTEXTA, nstrings: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "PolyTextOutA".} + + proc GetTextFace*( + hdc: HDC, c: int32, lpName: LPSTR + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "GetTextFaceA".} + + proc GetKerningPairs*( + hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR + ): DWORD {.winapi, stdcall, dynlib: "gdi32", importc: "GetKerningPairsA".} + + proc EnumICMProfiles*( + hdc: HDC, lpProc: ICMENUMPROCA, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "gdi32", importc: "EnumICMProfilesA".} + + proc UpdateICMRegKey*( + reserved: DWORD, lpszCMID: LPSTR, lpszFileName: LPSTR, command: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "UpdateICMRegKeyA".} + + proc GetLogColorSpace*( + hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEA, nSize: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetLogColorSpaceA".} + + proc CreateColorSpace*( + lplcs: LPLOGCOLORSPACEA + ): HCOLORSPACE {.winapi, stdcall, dynlib: "gdi32", importc: "CreateColorSpaceA".} + + proc GetICMProfile*( + hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "GetICMProfileA".} + + proc SetICMProfile*( + hdc: HDC, lpFileName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "gdi32", importc: "SetICMProfileA".} + + proc wglUseFontBitmaps*( + P1: HDC, P2: DWORD, P3: DWORD, P4: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontBitmapsA".} + + proc wglUseFontOutlines*( + P1: HDC, + P2: DWORD, + P3: DWORD, + P4: DWORD, + P5: FLOAT, + P6: FLOAT, + P7: int32, + P8: LPGLYPHMETRICSFLOAT, + ): WINBOOL {.winapi, stdcall, dynlib: "opengl32", importc: "wglUseFontOutlinesA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winhttp.nim --- a/semicongine/thirdparty/winim/winim/inc/winhttp.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winhttp.nim Thu Aug 22 18:32:21 2024 +0700 @@ -32,24 +32,29 @@ dwUrlPathLength*: DWORD lpszExtraInfo*: LPWSTR dwExtraInfoLength*: DWORD + LPURL_COMPONENTS* = ptr URL_COMPONENTS URL_COMPONENTSW* = URL_COMPONENTS LPURL_COMPONENTSW* = LPURL_COMPONENTS WINHTTP_ASYNC_RESULT* {.pure.} = object dwResult*: DWORD_PTR dwError*: DWORD + LPWINHTTP_ASYNC_RESULT* = ptr WINHTTP_ASYNC_RESULT WINHTTP_PROXY_INFO* {.pure.} = object dwAccessType*: DWORD lpszProxy*: LPWSTR lpszProxyBypass*: LPWSTR + LPWINHTTP_PROXY_INFO* = ptr WINHTTP_PROXY_INFO WINHTTP_PROXY_INFOW* = WINHTTP_PROXY_INFO LPWINHTTP_PROXY_INFOW* = LPWINHTTP_PROXY_INFO HTTP_VERSION_INFO* {.pure.} = object dwMajorVersion*: DWORD dwMinorVersion*: DWORD + LPHTTP_VERSION_INFO* = ptr HTTP_VERSION_INFO + const INTERNET_DEFAULT_PORT* = 0 INTERNET_DEFAULT_HTTP_PORT* = 80 @@ -151,7 +156,8 @@ WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP* = 1 WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS* = 2 WINHTTP_OPTION_REDIRECT_POLICY_LAST* = WINHTTP_OPTION_REDIRECT_POLICY_ALWAYS - WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT* = WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP + WINHTTP_OPTION_REDIRECT_POLICY_DEFAULT* = + WINHTTP_OPTION_REDIRECT_POLICY_DISALLOW_HTTPS_TO_HTTP WINHTTP_DISABLE_PASSPORT_AUTH* = 0x00000000 WINHTTP_ENABLE_PASSPORT_AUTH* = 0x10000000 WINHTTP_DISABLE_PASSPORT_KEYRING* = 0x20000000 @@ -166,54 +172,54 @@ WINHTTP_ENABLE_SPN_SERVER_PORT* = 0x00000001 WINHTTP_OPTION_SPN_MASK* = WINHTTP_ENABLE_SPN_SERVER_PORT WINHTTP_ERROR_BASE* = 12000 - ERROR_WINHTTP_OUT_OF_HANDLES* = WINHTTP_ERROR_BASE+1 - ERROR_WINHTTP_TIMEOUT* = WINHTTP_ERROR_BASE+2 - ERROR_WINHTTP_INTERNAL_ERROR* = WINHTTP_ERROR_BASE+4 - ERROR_WINHTTP_INVALID_URL* = WINHTTP_ERROR_BASE+5 - ERROR_WINHTTP_UNRECOGNIZED_SCHEME* = WINHTTP_ERROR_BASE+6 - ERROR_WINHTTP_NAME_NOT_RESOLVED* = WINHTTP_ERROR_BASE+7 - ERROR_WINHTTP_INVALID_OPTION* = WINHTTP_ERROR_BASE+9 - ERROR_WINHTTP_OPTION_NOT_SETTABLE* = WINHTTP_ERROR_BASE+11 - ERROR_WINHTTP_SHUTDOWN* = WINHTTP_ERROR_BASE+12 - ERROR_WINHTTP_LOGIN_FAILURE* = WINHTTP_ERROR_BASE+15 - ERROR_WINHTTP_OPERATION_CANCELLED* = WINHTTP_ERROR_BASE+17 - ERROR_WINHTTP_INCORRECT_HANDLE_TYPE* = WINHTTP_ERROR_BASE+18 - ERROR_WINHTTP_INCORRECT_HANDLE_STATE* = WINHTTP_ERROR_BASE+19 - ERROR_WINHTTP_CANNOT_CONNECT* = WINHTTP_ERROR_BASE+29 - ERROR_WINHTTP_CONNECTION_ERROR* = WINHTTP_ERROR_BASE+30 - ERROR_WINHTTP_RESEND_REQUEST* = WINHTTP_ERROR_BASE+32 - ERROR_WINHTTP_SECURE_CERT_DATE_INVALID* = WINHTTP_ERROR_BASE+37 - ERROR_WINHTTP_SECURE_CERT_CN_INVALID* = WINHTTP_ERROR_BASE+38 - ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED* = WINHTTP_ERROR_BASE+44 - ERROR_WINHTTP_SECURE_INVALID_CA* = WINHTTP_ERROR_BASE+45 - ERROR_WINHTTP_SECURE_CERT_REV_FAILED* = WINHTTP_ERROR_BASE+57 - ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN* = WINHTTP_ERROR_BASE+100 - ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND* = WINHTTP_ERROR_BASE+101 - ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND* = WINHTTP_ERROR_BASE+102 - ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN* = WINHTTP_ERROR_BASE+103 - ERROR_WINHTTP_HEADER_NOT_FOUND* = WINHTTP_ERROR_BASE+150 - ERROR_WINHTTP_INVALID_SERVER_RESPONSE* = WINHTTP_ERROR_BASE+152 - ERROR_WINHTTP_INVALID_HEADER* = WINHTTP_ERROR_BASE+153 - ERROR_WINHTTP_INVALID_QUERY_REQUEST* = WINHTTP_ERROR_BASE+154 - ERROR_WINHTTP_HEADER_ALREADY_EXISTS* = WINHTTP_ERROR_BASE+155 - ERROR_WINHTTP_REDIRECT_FAILED* = WINHTTP_ERROR_BASE+156 - ERROR_WINHTTP_SECURE_CHANNEL_ERROR* = WINHTTP_ERROR_BASE+157 - ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT* = WINHTTP_ERROR_BASE+166 - ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT* = WINHTTP_ERROR_BASE+167 - ERROR_WINHTTP_SECURE_INVALID_CERT* = WINHTTP_ERROR_BASE+169 - ERROR_WINHTTP_SECURE_CERT_REVOKED* = WINHTTP_ERROR_BASE+170 - ERROR_WINHTTP_NOT_INITIALIZED* = WINHTTP_ERROR_BASE+172 - ERROR_WINHTTP_SECURE_FAILURE* = WINHTTP_ERROR_BASE+175 - ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR* = WINHTTP_ERROR_BASE+178 - ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE* = WINHTTP_ERROR_BASE+179 - ERROR_WINHTTP_AUTODETECTION_FAILED* = WINHTTP_ERROR_BASE+180 - ERROR_WINHTTP_HEADER_COUNT_EXCEEDED* = WINHTTP_ERROR_BASE+181 - ERROR_WINHTTP_HEADER_SIZE_OVERFLOW* = WINHTTP_ERROR_BASE+182 - ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW* = WINHTTP_ERROR_BASE+183 - ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW* = WINHTTP_ERROR_BASE+184 - ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY* = WINHTTP_ERROR_BASE+185 - ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY* = WINHTTP_ERROR_BASE+186 - WINHTTP_ERROR_LAST* = WINHTTP_ERROR_BASE+186 + ERROR_WINHTTP_OUT_OF_HANDLES* = WINHTTP_ERROR_BASE + 1 + ERROR_WINHTTP_TIMEOUT* = WINHTTP_ERROR_BASE + 2 + ERROR_WINHTTP_INTERNAL_ERROR* = WINHTTP_ERROR_BASE + 4 + ERROR_WINHTTP_INVALID_URL* = WINHTTP_ERROR_BASE + 5 + ERROR_WINHTTP_UNRECOGNIZED_SCHEME* = WINHTTP_ERROR_BASE + 6 + ERROR_WINHTTP_NAME_NOT_RESOLVED* = WINHTTP_ERROR_BASE + 7 + ERROR_WINHTTP_INVALID_OPTION* = WINHTTP_ERROR_BASE + 9 + ERROR_WINHTTP_OPTION_NOT_SETTABLE* = WINHTTP_ERROR_BASE + 11 + ERROR_WINHTTP_SHUTDOWN* = WINHTTP_ERROR_BASE + 12 + ERROR_WINHTTP_LOGIN_FAILURE* = WINHTTP_ERROR_BASE + 15 + ERROR_WINHTTP_OPERATION_CANCELLED* = WINHTTP_ERROR_BASE + 17 + ERROR_WINHTTP_INCORRECT_HANDLE_TYPE* = WINHTTP_ERROR_BASE + 18 + ERROR_WINHTTP_INCORRECT_HANDLE_STATE* = WINHTTP_ERROR_BASE + 19 + ERROR_WINHTTP_CANNOT_CONNECT* = WINHTTP_ERROR_BASE + 29 + ERROR_WINHTTP_CONNECTION_ERROR* = WINHTTP_ERROR_BASE + 30 + ERROR_WINHTTP_RESEND_REQUEST* = WINHTTP_ERROR_BASE + 32 + ERROR_WINHTTP_SECURE_CERT_DATE_INVALID* = WINHTTP_ERROR_BASE + 37 + ERROR_WINHTTP_SECURE_CERT_CN_INVALID* = WINHTTP_ERROR_BASE + 38 + ERROR_WINHTTP_CLIENT_AUTH_CERT_NEEDED* = WINHTTP_ERROR_BASE + 44 + ERROR_WINHTTP_SECURE_INVALID_CA* = WINHTTP_ERROR_BASE + 45 + ERROR_WINHTTP_SECURE_CERT_REV_FAILED* = WINHTTP_ERROR_BASE + 57 + ERROR_WINHTTP_CANNOT_CALL_BEFORE_OPEN* = WINHTTP_ERROR_BASE + 100 + ERROR_WINHTTP_CANNOT_CALL_BEFORE_SEND* = WINHTTP_ERROR_BASE + 101 + ERROR_WINHTTP_CANNOT_CALL_AFTER_SEND* = WINHTTP_ERROR_BASE + 102 + ERROR_WINHTTP_CANNOT_CALL_AFTER_OPEN* = WINHTTP_ERROR_BASE + 103 + ERROR_WINHTTP_HEADER_NOT_FOUND* = WINHTTP_ERROR_BASE + 150 + ERROR_WINHTTP_INVALID_SERVER_RESPONSE* = WINHTTP_ERROR_BASE + 152 + ERROR_WINHTTP_INVALID_HEADER* = WINHTTP_ERROR_BASE + 153 + ERROR_WINHTTP_INVALID_QUERY_REQUEST* = WINHTTP_ERROR_BASE + 154 + ERROR_WINHTTP_HEADER_ALREADY_EXISTS* = WINHTTP_ERROR_BASE + 155 + ERROR_WINHTTP_REDIRECT_FAILED* = WINHTTP_ERROR_BASE + 156 + ERROR_WINHTTP_SECURE_CHANNEL_ERROR* = WINHTTP_ERROR_BASE + 157 + ERROR_WINHTTP_BAD_AUTO_PROXY_SCRIPT* = WINHTTP_ERROR_BASE + 166 + ERROR_WINHTTP_UNABLE_TO_DOWNLOAD_SCRIPT* = WINHTTP_ERROR_BASE + 167 + ERROR_WINHTTP_SECURE_INVALID_CERT* = WINHTTP_ERROR_BASE + 169 + ERROR_WINHTTP_SECURE_CERT_REVOKED* = WINHTTP_ERROR_BASE + 170 + ERROR_WINHTTP_NOT_INITIALIZED* = WINHTTP_ERROR_BASE + 172 + ERROR_WINHTTP_SECURE_FAILURE* = WINHTTP_ERROR_BASE + 175 + ERROR_WINHTTP_AUTO_PROXY_SERVICE_ERROR* = WINHTTP_ERROR_BASE + 178 + ERROR_WINHTTP_SECURE_CERT_WRONG_USAGE* = WINHTTP_ERROR_BASE + 179 + ERROR_WINHTTP_AUTODETECTION_FAILED* = WINHTTP_ERROR_BASE + 180 + ERROR_WINHTTP_HEADER_COUNT_EXCEEDED* = WINHTTP_ERROR_BASE + 181 + ERROR_WINHTTP_HEADER_SIZE_OVERFLOW* = WINHTTP_ERROR_BASE + 182 + ERROR_WINHTTP_CHUNKED_ENCODING_HEADER_SIZE_OVERFLOW* = WINHTTP_ERROR_BASE + 183 + ERROR_WINHTTP_RESPONSE_DRAIN_OVERFLOW* = WINHTTP_ERROR_BASE + 184 + ERROR_WINHTTP_CLIENT_CERT_NO_PRIVATE_KEY* = WINHTTP_ERROR_BASE + 185 + ERROR_WINHTTP_CLIENT_CERT_NO_ACCESS_PRIVATE_KEY* = WINHTTP_ERROR_BASE + 186 + WINHTTP_ERROR_LAST* = WINHTTP_ERROR_BASE + 186 HTTP_STATUS_CONTINUE* = 100 HTTP_STATUS_SWITCH_PROTOCOLS* = 101 HTTP_STATUS_OK* = 200 @@ -372,23 +378,38 @@ WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE* = 0x00100000 WINHTTP_CALLBACK_STATUS_REQUEST_ERROR* = 0x00200000 WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE* = 0x00400000 - WINHTTP_CALLBACK_FLAG_RESOLVE_NAME* = WINHTTP_CALLBACK_STATUS_RESOLVING_NAME or WINHTTP_CALLBACK_STATUS_NAME_RESOLVED - WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER* = WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER or WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER - WINHTTP_CALLBACK_FLAG_SEND_REQUEST* = WINHTTP_CALLBACK_STATUS_SENDING_REQUEST or WINHTTP_CALLBACK_STATUS_REQUEST_SENT - WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE* = WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE or WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED - WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION* = WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION or WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED - WINHTTP_CALLBACK_FLAG_HANDLES* = WINHTTP_CALLBACK_STATUS_HANDLE_CREATED or WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING + WINHTTP_CALLBACK_FLAG_RESOLVE_NAME* = + WINHTTP_CALLBACK_STATUS_RESOLVING_NAME or WINHTTP_CALLBACK_STATUS_NAME_RESOLVED + WINHTTP_CALLBACK_FLAG_CONNECT_TO_SERVER* = + WINHTTP_CALLBACK_STATUS_CONNECTING_TO_SERVER or + WINHTTP_CALLBACK_STATUS_CONNECTED_TO_SERVER + WINHTTP_CALLBACK_FLAG_SEND_REQUEST* = + WINHTTP_CALLBACK_STATUS_SENDING_REQUEST or WINHTTP_CALLBACK_STATUS_REQUEST_SENT + WINHTTP_CALLBACK_FLAG_RECEIVE_RESPONSE* = + WINHTTP_CALLBACK_STATUS_RECEIVING_RESPONSE or + WINHTTP_CALLBACK_STATUS_RESPONSE_RECEIVED + WINHTTP_CALLBACK_FLAG_CLOSE_CONNECTION* = + WINHTTP_CALLBACK_STATUS_CLOSING_CONNECTION or + WINHTTP_CALLBACK_STATUS_CONNECTION_CLOSED + WINHTTP_CALLBACK_FLAG_HANDLES* = + WINHTTP_CALLBACK_STATUS_HANDLE_CREATED or WINHTTP_CALLBACK_STATUS_HANDLE_CLOSING WINHTTP_CALLBACK_FLAG_DETECTING_PROXY* = WINHTTP_CALLBACK_STATUS_DETECTING_PROXY WINHTTP_CALLBACK_FLAG_REDIRECT* = WINHTTP_CALLBACK_STATUS_REDIRECT - WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE* = WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE + WINHTTP_CALLBACK_FLAG_INTERMEDIATE_RESPONSE* = + WINHTTP_CALLBACK_STATUS_INTERMEDIATE_RESPONSE WINHTTP_CALLBACK_FLAG_SECURE_FAILURE* = WINHTTP_CALLBACK_STATUS_SECURE_FAILURE - WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE* = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE + WINHTTP_CALLBACK_FLAG_SENDREQUEST_COMPLETE* = + WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE WINHTTP_CALLBACK_FLAG_HEADERS_AVAILABLE* = WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE WINHTTP_CALLBACK_FLAG_DATA_AVAILABLE* = WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE WINHTTP_CALLBACK_FLAG_READ_COMPLETE* = WINHTTP_CALLBACK_STATUS_READ_COMPLETE WINHTTP_CALLBACK_FLAG_WRITE_COMPLETE* = WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE WINHTTP_CALLBACK_FLAG_REQUEST_ERROR* = WINHTTP_CALLBACK_STATUS_REQUEST_ERROR - WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS* = WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE or WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE or WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE or WINHTTP_CALLBACK_STATUS_READ_COMPLETE or WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE or WINHTTP_CALLBACK_STATUS_REQUEST_ERROR + WINHTTP_CALLBACK_FLAG_ALL_COMPLETIONS* = + WINHTTP_CALLBACK_STATUS_SENDREQUEST_COMPLETE or + WINHTTP_CALLBACK_STATUS_HEADERS_AVAILABLE or WINHTTP_CALLBACK_STATUS_DATA_AVAILABLE or + WINHTTP_CALLBACK_STATUS_READ_COMPLETE or WINHTTP_CALLBACK_STATUS_WRITE_COMPLETE or + WINHTTP_CALLBACK_STATUS_REQUEST_ERROR WINHTTP_CALLBACK_FLAG_ALL_NOTIFICATIONS* = 0xffffffff'i32 API_RECEIVE_RESPONSE* = 1 API_QUERY_DATA_AVAILABLE* = 2 @@ -409,7 +430,9 @@ WINHTTP_FLAG_SECURE_PROTOCOL_SSL2* = 0x00000008 WINHTTP_FLAG_SECURE_PROTOCOL_SSL3* = 0x00000020 WINHTTP_FLAG_SECURE_PROTOCOL_TLS1* = 0x00000080 - WINHTTP_FLAG_SECURE_PROTOCOL_ALL* = WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 or WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 or WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 + WINHTTP_FLAG_SECURE_PROTOCOL_ALL* = + WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 or WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 or + WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 WINHTTP_AUTH_SCHEME_BASIC* = 0x00000001 WINHTTP_AUTH_SCHEME_NTLM* = 0x00000002 WINHTTP_AUTH_SCHEME_PASSPORT* = 0x00000004 @@ -424,10 +447,10 @@ WINHTTP_AUTOPROXY_CONFIG_URL* = 0x00000002 WINHTTP_AUTOPROXY_RUN_INPROCESS* = 0x00010000 WINHTTP_AUTOPROXY_RUN_OUTPROCESS_ONLY* = 0x00020000 -type - WINHTTP_STATUS_CALLBACK* = proc (P1: HINTERNET, P2: DWORD_PTR, P3: DWORD, P4: LPVOID, P5: DWORD): VOID {.stdcall.} -const - WINHTTP_INVALID_STATUS_CALLBACK* = cast[WINHTTP_STATUS_CALLBACK](-1) +type WINHTTP_STATUS_CALLBACK* = + proc(P1: HINTERNET, P2: DWORD_PTR, P3: DWORD, P4: LPVOID, P5: DWORD): VOID {.stdcall.} + +const WINHTTP_INVALID_STATUS_CALLBACK* = cast[WINHTTP_STATUS_CALLBACK](-1) type WINHTTP_CERTIFICATE_INFO* {.pure.} = object ftExpiry*: FILETIME @@ -438,11 +461,13 @@ lpszSignatureAlgName*: LPWSTR lpszEncryptionAlgName*: LPWSTR dwKeySize*: DWORD + WINHTTP_CURRENT_USER_IE_PROXY_CONFIG* {.pure.} = object fAutoDetect*: WINBOOL lpszAutoConfigUrl*: LPWSTR lpszProxy*: LPWSTR lpszProxyBypass*: LPWSTR + WINHTTP_AUTOPROXY_OPTIONS* {.pure.} = object dwFlags*: DWORD dwAutoDetectFlags*: DWORD @@ -450,42 +475,129 @@ lpvReserved*: LPVOID dwReserved*: DWORD fAutoLogonIfChallenged*: WINBOOL -proc WinHttpAddRequestHeaders*(P1: HINTERNET, P2: LPCWSTR, P3: DWORD, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpDetectAutoProxyConfigUrl*(P1: DWORD, P2: ptr LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpAddRequestHeaders*( + P1: HINTERNET, P2: LPCWSTR, P3: DWORD, P4: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpDetectAutoProxyConfigUrl*( + P1: DWORD, P2: ptr LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + proc WinHttpCheckPlatform*(): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpCloseHandle*(P1: HINTERNET): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpConnect*(P1: HINTERNET, P2: LPCWSTR, P3: INTERNET_PORT, P4: DWORD): HINTERNET {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpCrackUrl*(P1: LPCWSTR, P2: DWORD, P3: DWORD, P4: LPURL_COMPONENTS): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpCreateUrl*(P1: LPURL_COMPONENTS, P2: DWORD, P3: LPWSTR, P4: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpGetDefaultProxyConfiguration*(P1: ptr WINHTTP_PROXY_INFO): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpGetIEProxyConfigForCurrentUser*(P1: ptr WINHTTP_CURRENT_USER_IE_PROXY_CONFIG): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpGetProxyForUrl*(P1: HINTERNET, P2: LPCWSTR, P3: ptr WINHTTP_AUTOPROXY_OPTIONS, P4: ptr WINHTTP_PROXY_INFO): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpOpen*(P1: LPCWSTR, P2: DWORD, P3: LPCWSTR, P4: LPCWSTR, P5: DWORD): HINTERNET {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpOpenRequest*(P1: HINTERNET, P2: LPCWSTR, P3: LPCWSTR, P4: LPCWSTR, P5: LPCWSTR, P6: ptr LPCWSTR, P7: DWORD): HINTERNET {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpQueryAuthSchemes*(P1: HINTERNET, P2: LPDWORD, P3: LPDWORD, P4: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpQueryDataAvailable*(P1: HINTERNET, P2: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpQueryHeaders*(P1: HINTERNET, P2: DWORD, P3: LPCWSTR, P4: LPVOID, P5: LPDWORD, P6: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpQueryOption*(P1: HINTERNET, P2: DWORD, P3: LPVOID, P4: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpReadData*(P1: HINTERNET, P2: LPVOID, P3: DWORD, P4: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpReceiveResponse*(P1: HINTERNET, P2: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpSendRequest*(P1: HINTERNET, P2: LPCWSTR, P3: DWORD, P4: LPVOID, P5: DWORD, P6: DWORD, P7: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpSetDefaultProxyConfiguration*(P1: ptr WINHTTP_PROXY_INFO): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpSetCredentials*(P1: HINTERNET, P2: DWORD, P3: DWORD, P4: LPCWSTR, P5: LPCWSTR, P6: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpSetOption*(P1: HINTERNET, P2: DWORD, P3: LPVOID, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpSetStatusCallback*(P1: HINTERNET, P2: WINHTTP_STATUS_CALLBACK, P3: DWORD, P4: DWORD_PTR): WINHTTP_STATUS_CALLBACK {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpSetTimeouts*(P1: HINTERNET, P2: int32, P3: int32, P4: int32, P5: int32): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpTimeFromSystemTime*(P1: ptr SYSTEMTIME, P2: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpTimeToSystemTime*(P1: LPCWSTR, P2: ptr SYSTEMTIME): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} -proc WinHttpWriteData*(P1: HINTERNET, P2: LPCVOID, P3: DWORD, P4: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} +proc WinHttpCloseHandle*( + P1: HINTERNET +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpConnect*( + P1: HINTERNET, P2: LPCWSTR, P3: INTERNET_PORT, P4: DWORD +): HINTERNET {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpCrackUrl*( + P1: LPCWSTR, P2: DWORD, P3: DWORD, P4: LPURL_COMPONENTS +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpCreateUrl*( + P1: LPURL_COMPONENTS, P2: DWORD, P3: LPWSTR, P4: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpGetDefaultProxyConfiguration*( + P1: ptr WINHTTP_PROXY_INFO +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpGetIEProxyConfigForCurrentUser*( + P1: ptr WINHTTP_CURRENT_USER_IE_PROXY_CONFIG +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpGetProxyForUrl*( + P1: HINTERNET, + P2: LPCWSTR, + P3: ptr WINHTTP_AUTOPROXY_OPTIONS, + P4: ptr WINHTTP_PROXY_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpOpen*( + P1: LPCWSTR, P2: DWORD, P3: LPCWSTR, P4: LPCWSTR, P5: DWORD +): HINTERNET {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpOpenRequest*( + P1: HINTERNET, + P2: LPCWSTR, + P3: LPCWSTR, + P4: LPCWSTR, + P5: LPCWSTR, + P6: ptr LPCWSTR, + P7: DWORD, +): HINTERNET {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpQueryAuthSchemes*( + P1: HINTERNET, P2: LPDWORD, P3: LPDWORD, P4: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpQueryDataAvailable*( + P1: HINTERNET, P2: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpQueryHeaders*( + P1: HINTERNET, P2: DWORD, P3: LPCWSTR, P4: LPVOID, P5: LPDWORD, P6: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpQueryOption*( + P1: HINTERNET, P2: DWORD, P3: LPVOID, P4: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpReadData*( + P1: HINTERNET, P2: LPVOID, P3: DWORD, P4: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpReceiveResponse*( + P1: HINTERNET, P2: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpSendRequest*( + P1: HINTERNET, P2: LPCWSTR, P3: DWORD, P4: LPVOID, P5: DWORD, P6: DWORD, P7: DWORD_PTR +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpSetDefaultProxyConfiguration*( + P1: ptr WINHTTP_PROXY_INFO +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpSetCredentials*( + P1: HINTERNET, P2: DWORD, P3: DWORD, P4: LPCWSTR, P5: LPCWSTR, P6: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpSetOption*( + P1: HINTERNET, P2: DWORD, P3: LPVOID, P4: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpSetStatusCallback*( + P1: HINTERNET, P2: WINHTTP_STATUS_CALLBACK, P3: DWORD, P4: DWORD_PTR +): WINHTTP_STATUS_CALLBACK {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpSetTimeouts*( + P1: HINTERNET, P2: int32, P3: int32, P4: int32, P5: int32 +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpTimeFromSystemTime*( + P1: ptr SYSTEMTIME, P2: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpTimeToSystemTime*( + P1: LPCWSTR, P2: ptr SYSTEMTIME +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + +proc WinHttpWriteData*( + P1: HINTERNET, P2: LPCVOID, P3: DWORD, P4: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winhttp", importc.} + when winimCpu64: - type - WINHTTP_CONNECTION_INFO* {.pure.} = object - cbSize*: DWORD - LocalAddress*: SOCKADDR_STORAGE - RemoteAddress*: SOCKADDR_STORAGE + type WINHTTP_CONNECTION_INFO* {.pure.} = object + cbSize*: DWORD + LocalAddress*: SOCKADDR_STORAGE + RemoteAddress*: SOCKADDR_STORAGE + when winimCpu32: - type - WINHTTP_CONNECTION_INFO* {.pure, packed.} = object - cbSize*: DWORD - LocalAddress*: SOCKADDR_STORAGE - RemoteAddress*: SOCKADDR_STORAGE + type WINHTTP_CONNECTION_INFO* {.pure, packed.} = object + cbSize*: DWORD + LocalAddress*: SOCKADDR_STORAGE + RemoteAddress*: SOCKADDR_STORAGE diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winimbase.nim --- a/semicongine/thirdparty/winim/winim/inc/winimbase.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winimbase.nim Thu Aug 22 18:32:21 2024 +0700 @@ -10,10 +10,8 @@ when not defined(noRes): when defined(vcc): {.link: "../lib/winimvcc.res".} - elif defined(cpu64): {.link: "../lib/winim64.res".} - else: {.link: "../lib/winim32.res".} @@ -23,18 +21,34 @@ result = x -proc discardable*[T](x: T): T {.discardable, inline.} = x +proc discardable*[T](x: T): T {.discardable, inline.} = + x macro DEFINE_GUID*(guid: string): untyped = const - ranges = [0..7, 9..12, 14..17, 19..20, 21..22, 24..25, 26..27, 28..29, 30..31, 32..33, 34..35] - parts = ["'i32, 0x", ", 0x", ", [0x", "'u8, 0x", ", 0x", ", 0x", ", 0x", ", 0x", ", 0x", ", 0x", "])"] + ranges = [ + 0 .. 7, + 9 .. 12, + 14 .. 17, + 19 .. 20, + 21 .. 22, + 24 .. 25, + 26 .. 27, + 28 .. 29, + 30 .. 31, + 32 .. 33, + 34 .. 35, + ] + parts = [ + "'i32, 0x", ", 0x", ", [0x", "'u8, 0x", ", 0x", ", 0x", ", 0x", ", 0x", ", 0x", + ", 0x", "])", + ] let guid = guid.strVal assert guid.len == 36 var code = "DEFINE_GUID(0x" - for i in 0..10: + for i in 0 .. 10: code.add guid[ranges[i]] code.add parts[i] result = parseStmt(code) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wininet.nim --- a/semicongine/thirdparty/winim/winim/inc/wininet.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wininet.nim Thu Aug 22 18:32:21 2024 +0700 @@ -20,33 +20,40 @@ INTERNET_ASYNC_RESULT* {.pure.} = object dwResult*: DWORD_PTR dwError*: DWORD + LPINTERNET_ASYNC_RESULT* = ptr INTERNET_ASYNC_RESULT INTERNET_DIAGNOSTIC_SOCKET_INFO* {.pure.} = object Socket*: DWORD_PTR SourcePort*: DWORD DestPort*: DWORD Flags*: DWORD + LPINTERNET_DIAGNOSTIC_SOCKET_INFO* = ptr INTERNET_DIAGNOSTIC_SOCKET_INFO INTERNET_PROXY_INFO* {.pure.} = object dwAccessType*: DWORD lpszProxy*: LPCTSTR lpszProxyBypass*: LPCTSTR + LPINTERNET_PROXY_INFO* = ptr INTERNET_PROXY_INFO INTERNET_PER_CONN_OPTIONA_Value* {.pure, union.} = object dwValue*: DWORD pszValue*: LPSTR ftValue*: FILETIME + INTERNET_PER_CONN_OPTIONA* {.pure.} = object dwOption*: DWORD Value*: INTERNET_PER_CONN_OPTIONA_Value + LPINTERNET_PER_CONN_OPTIONA* = ptr INTERNET_PER_CONN_OPTIONA INTERNET_PER_CONN_OPTIONW_Value* {.pure, union.} = object dwValue*: DWORD pszValue*: LPWSTR ftValue*: FILETIME + INTERNET_PER_CONN_OPTIONW* {.pure.} = object dwOption*: DWORD Value*: INTERNET_PER_CONN_OPTIONW_Value + LPINTERNET_PER_CONN_OPTIONW* = ptr INTERNET_PER_CONN_OPTIONW INTERNET_PER_CONN_OPTION_LISTA* {.pure.} = object dwSize*: DWORD @@ -54,6 +61,7 @@ dwOptionCount*: DWORD dwOptionError*: DWORD pOptions*: LPINTERNET_PER_CONN_OPTIONA + LPINTERNET_PER_CONN_OPTION_LISTA* = ptr INTERNET_PER_CONN_OPTION_LISTA INTERNET_PER_CONN_OPTION_LISTW* {.pure.} = object dwSize*: DWORD @@ -61,18 +69,22 @@ dwOptionCount*: DWORD dwOptionError*: DWORD pOptions*: LPINTERNET_PER_CONN_OPTIONW + LPINTERNET_PER_CONN_OPTION_LISTW* = ptr INTERNET_PER_CONN_OPTION_LISTW INTERNET_VERSION_INFO* {.pure.} = object dwMajorVersion*: DWORD dwMinorVersion*: DWORD + LPINTERNET_VERSION_INFO* = ptr INTERNET_VERSION_INFO HTTP_VERSION_INFO* {.pure.} = object dwMajorVersion*: DWORD dwMinorVersion*: DWORD + LPHTTP_VERSION_INFO* = ptr HTTP_VERSION_INFO INTERNET_CONNECTED_INFO* {.pure.} = object dwConnectedState*: DWORD dwFlags*: DWORD + LPINTERNET_CONNECTED_INFO* = ptr INTERNET_CONNECTED_INFO URL_COMPONENTSA* {.pure.} = object dwStructSize*: DWORD @@ -90,6 +102,7 @@ dwUrlPathLength*: DWORD lpszExtraInfo*: LPSTR dwExtraInfoLength*: DWORD + LPURL_COMPONENTSA* = ptr URL_COMPONENTSA URL_COMPONENTSW* {.pure.} = object dwStructSize*: DWORD @@ -107,6 +120,7 @@ dwUrlPathLength*: DWORD lpszExtraInfo*: LPWSTR dwExtraInfoLength*: DWORD + LPURL_COMPONENTSW* = ptr URL_COMPONENTSW INTERNET_CERTIFICATE_INFO* {.pure.} = object ftExpiry*: FILETIME @@ -117,6 +131,7 @@ lpszSignatureAlgName*: LPTSTR lpszEncryptionAlgName*: LPTSTR dwKeySize*: DWORD + LPINTERNET_CERTIFICATE_INFO* = ptr INTERNET_CERTIFICATE_INFO INTERNET_BUFFERSA* {.pure.} = object dwStructSize*: DWORD @@ -129,6 +144,7 @@ dwBufferTotal*: DWORD dwOffsetLow*: DWORD dwOffsetHigh*: DWORD + LPINTERNET_BUFFERSA* = ptr INTERNET_BUFFERSA INTERNET_BUFFERSW* {.pure.} = object dwStructSize*: DWORD @@ -141,16 +157,26 @@ dwBufferTotal*: DWORD dwOffsetLow*: DWORD dwOffsetHigh*: DWORD + LPINTERNET_BUFFERSW* = ptr INTERNET_BUFFERSW - INTERNET_STATUS_CALLBACK* = proc (hInternet: HINTERNET, dwContext: DWORD_PTR, dwInternetStatus: DWORD, lpvStatusInformation: LPVOID, dwStatusInformationLength: DWORD): VOID {.stdcall.} + INTERNET_STATUS_CALLBACK* = proc( + hInternet: HINTERNET, + dwContext: DWORD_PTR, + dwInternetStatus: DWORD, + lpvStatusInformation: LPVOID, + dwStatusInformationLength: DWORD, + ): VOID {.stdcall.} LPINTERNET_STATUS_CALLBACK* = ptr INTERNET_STATUS_CALLBACK + const MAX_GOPHER_DISPLAY_TEXT* = 128 MAX_GOPHER_SELECTOR_TEXT* = 256 INTERNET_MAX_HOST_NAME_LENGTH* = 256 MAX_GOPHER_HOST_NAME* = INTERNET_MAX_HOST_NAME_LENGTH INTERNET_MAX_PORT_NUMBER_LENGTH* = 5 - MAX_GOPHER_LOCATOR_LENGTH* = 1+MAX_GOPHER_DISPLAY_TEXT+1+MAX_GOPHER_SELECTOR_TEXT+1+MAX_GOPHER_HOST_NAME+1+INTERNET_MAX_PORT_NUMBER_LENGTH+1+1+2 + MAX_GOPHER_LOCATOR_LENGTH* = + 1 + MAX_GOPHER_DISPLAY_TEXT + 1 + MAX_GOPHER_SELECTOR_TEXT + 1 + MAX_GOPHER_HOST_NAME + + 1 + INTERNET_MAX_PORT_NUMBER_LENGTH + 1 + 1 + 2 type GOPHER_FIND_DATAA* {.pure.} = object DisplayString*: array[MAX_GOPHER_DISPLAY_TEXT + 1, CHAR] @@ -159,6 +185,7 @@ SizeHigh*: DWORD LastModificationTime*: FILETIME Locator*: array[MAX_GOPHER_LOCATOR_LENGTH + 1, CHAR] + LPGOPHER_FIND_DATAA* = ptr GOPHER_FIND_DATAA GOPHER_FIND_DATAW* {.pure.} = object DisplayString*: array[MAX_GOPHER_DISPLAY_TEXT + 1, WCHAR] @@ -167,32 +194,41 @@ SizeHigh*: DWORD LastModificationTime*: FILETIME Locator*: array[MAX_GOPHER_LOCATOR_LENGTH + 1, WCHAR] + LPGOPHER_FIND_DATAW* = ptr GOPHER_FIND_DATAW GOPHER_ADMIN_ATTRIBUTE_TYPE* {.pure.} = object Comment*: LPCTSTR EmailAddress*: LPCTSTR + LPGOPHER_ADMIN_ATTRIBUTE_TYPE* = ptr GOPHER_ADMIN_ATTRIBUTE_TYPE GOPHER_MOD_DATE_ATTRIBUTE_TYPE* {.pure.} = object DateAndTime*: FILETIME + LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE* = ptr GOPHER_MOD_DATE_ATTRIBUTE_TYPE GOPHER_TTL_ATTRIBUTE_TYPE* {.pure.} = object Ttl*: DWORD + LPGOPHER_TTL_ATTRIBUTE_TYPE* = ptr GOPHER_TTL_ATTRIBUTE_TYPE GOPHER_SCORE_ATTRIBUTE_TYPE* {.pure.} = object Score*: INT + LPGOPHER_SCORE_ATTRIBUTE_TYPE* = ptr GOPHER_SCORE_ATTRIBUTE_TYPE GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE* {.pure.} = object LowerBound*: INT UpperBound*: INT + LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE* = ptr GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE GOPHER_SITE_ATTRIBUTE_TYPE* {.pure.} = object Site*: LPCTSTR + LPGOPHER_SITE_ATTRIBUTE_TYPE* = ptr GOPHER_SITE_ATTRIBUTE_TYPE GOPHER_ORGANIZATION_ATTRIBUTE_TYPE* {.pure.} = object Organization*: LPCTSTR + LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE* = ptr GOPHER_ORGANIZATION_ATTRIBUTE_TYPE GOPHER_LOCATION_ATTRIBUTE_TYPE* {.pure.} = object Location*: LPCTSTR + LPGOPHER_LOCATION_ATTRIBUTE_TYPE* = ptr GOPHER_LOCATION_ATTRIBUTE_TYPE GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE* {.pure.} = object DegreesNorth*: INT @@ -201,34 +237,44 @@ DegreesEast*: INT MinutesEast*: INT SecondsEast*: INT - LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE* = ptr GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE + + LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE* = + ptr GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GOPHER_TIMEZONE_ATTRIBUTE_TYPE* {.pure.} = object Zone*: INT + LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE* = ptr GOPHER_TIMEZONE_ATTRIBUTE_TYPE GOPHER_PROVIDER_ATTRIBUTE_TYPE* {.pure.} = object Provider*: LPCTSTR + LPGOPHER_PROVIDER_ATTRIBUTE_TYPE* = ptr GOPHER_PROVIDER_ATTRIBUTE_TYPE GOPHER_VERSION_ATTRIBUTE_TYPE* {.pure.} = object Version*: LPCTSTR + LPGOPHER_VERSION_ATTRIBUTE_TYPE* = ptr GOPHER_VERSION_ATTRIBUTE_TYPE GOPHER_ABSTRACT_ATTRIBUTE_TYPE* {.pure.} = object ShortAbstract*: LPCTSTR AbstractFile*: LPCTSTR + LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE* = ptr GOPHER_ABSTRACT_ATTRIBUTE_TYPE GOPHER_VIEW_ATTRIBUTE_TYPE* {.pure.} = object ContentType*: LPCTSTR Language*: LPCTSTR Size*: DWORD + LPGOPHER_VIEW_ATTRIBUTE_TYPE* = ptr GOPHER_VIEW_ATTRIBUTE_TYPE GOPHER_VERONICA_ATTRIBUTE_TYPE* {.pure.} = object TreeWalk*: WINBOOL + LPGOPHER_VERONICA_ATTRIBUTE_TYPE* = ptr GOPHER_VERONICA_ATTRIBUTE_TYPE GOPHER_ASK_ATTRIBUTE_TYPE* {.pure.} = object QuestionType*: LPCTSTR QuestionText*: LPCTSTR + LPGOPHER_ASK_ATTRIBUTE_TYPE* = ptr GOPHER_ASK_ATTRIBUTE_TYPE GOPHER_UNKNOWN_ATTRIBUTE_TYPE* {.pure.} = object Text*: LPCTSTR + LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE* = ptr GOPHER_UNKNOWN_ATTRIBUTE_TYPE GOPHER_ATTRIBUTE_TYPE_AttributeType* {.pure, union.} = object Admin*: GOPHER_ADMIN_ATTRIBUTE_TYPE @@ -248,14 +294,17 @@ Veronica*: GOPHER_VERONICA_ATTRIBUTE_TYPE Ask*: GOPHER_ASK_ATTRIBUTE_TYPE Unknown*: GOPHER_UNKNOWN_ATTRIBUTE_TYPE + GOPHER_ATTRIBUTE_TYPE* {.pure.} = object CategoryId*: DWORD AttributeId*: DWORD AttributeType*: GOPHER_ATTRIBUTE_TYPE_AttributeType + LPGOPHER_ATTRIBUTE_TYPE* = ptr GOPHER_ATTRIBUTE_TYPE INTERNET_CACHE_ENTRY_INFOA_UNION1* {.pure, union.} = object dwReserved*: DWORD dwExemptDelta*: DWORD + INTERNET_CACHE_ENTRY_INFOA* {.pure.} = object dwStructSize*: DWORD lpszSourceUrlName*: LPSTR @@ -273,10 +322,12 @@ dwHeaderInfoSize*: DWORD lpszFileExtension*: LPSTR union1*: INTERNET_CACHE_ENTRY_INFOA_UNION1 + LPINTERNET_CACHE_ENTRY_INFOA* = ptr INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFOW_UNION1* {.pure, union.} = object dwReserved*: DWORD dwExemptDelta*: DWORD + INTERNET_CACHE_ENTRY_INFOW* {.pure.} = object dwStructSize*: DWORD lpszSourceUrlName*: LPWSTR @@ -294,11 +345,14 @@ dwHeaderInfoSize*: DWORD lpszFileExtension*: LPWSTR union1*: INTERNET_CACHE_ENTRY_INFOW_UNION1 + LPINTERNET_CACHE_ENTRY_INFOW* = ptr INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_TIMESTAMPS* {.pure.} = object ftExpires*: FILETIME ftLastModified*: FILETIME + LPINTERNET_CACHE_TIMESTAMPS* = ptr INTERNET_CACHE_TIMESTAMPS + const GROUP_OWNER_STORAGE_SIZE* = 4 GROUPNAME_MAX_LENGTH* = 120 @@ -311,6 +365,7 @@ dwDiskQuota*: DWORD dwOwnerStorage*: array[GROUP_OWNER_STORAGE_SIZE, DWORD] szGroupName*: array[GROUPNAME_MAX_LENGTH, CHAR] + LPINTERNET_CACHE_GROUP_INFOA* = ptr INTERNET_CACHE_GROUP_INFOA INTERNET_CACHE_GROUP_INFOW* {.pure.} = object dwGroupSize*: DWORD @@ -320,12 +375,15 @@ dwDiskQuota*: DWORD dwOwnerStorage*: array[GROUP_OWNER_STORAGE_SIZE, DWORD] szGroupName*: array[GROUPNAME_MAX_LENGTH, WCHAR] + LPINTERNET_CACHE_GROUP_INFOW* = ptr INTERNET_CACHE_GROUP_INFOW AUTO_PROXY_SCRIPT_BUFFER* {.pure.} = object dwStructSize*: DWORD lpszScriptBuffer*: LPSTR dwScriptBufferSize*: DWORD + LPAUTO_PROXY_SCRIPT_BUFFER* = ptr AUTO_PROXY_SCRIPT_BUFFER + const INTERNET_INVALID_PORT_NUMBER* = 0 INTERNET_DEFAULT_FTP_PORT* = 21 @@ -383,9 +441,22 @@ INTERNET_FLAG_TRANSFER_ASCII* = FTP_TRANSFER_TYPE_ASCII FTP_TRANSFER_TYPE_BINARY* = 0x00000002 INTERNET_FLAG_TRANSFER_BINARY* = FTP_TRANSFER_TYPE_BINARY - SECURITY_INTERNET_MASK* = INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID or INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS or INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP + SECURITY_INTERNET_MASK* = + INTERNET_FLAG_IGNORE_CERT_CN_INVALID or INTERNET_FLAG_IGNORE_CERT_DATE_INVALID or + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS or INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP INTERNET_FLAG_BGUPDATE* = 8 - INTERNET_FLAGS_MASK* = INTERNET_FLAG_RELOAD or INTERNET_FLAG_RAW_DATA or INTERNET_FLAG_EXISTING_CONNECT or INTERNET_FLAG_ASYNC or INTERNET_FLAG_PASSIVE or INTERNET_FLAG_NO_CACHE_WRITE or INTERNET_FLAG_MAKE_PERSISTENT or INTERNET_FLAG_FROM_CACHE or INTERNET_FLAG_SECURE or INTERNET_FLAG_KEEP_CONNECTION or INTERNET_FLAG_NO_AUTO_REDIRECT or INTERNET_FLAG_READ_PREFETCH or INTERNET_FLAG_NO_COOKIES or INTERNET_FLAG_NO_AUTH or INTERNET_FLAG_CACHE_IF_NET_FAIL or SECURITY_INTERNET_MASK or INTERNET_FLAG_RESYNCHRONIZE or INTERNET_FLAG_HYPERLINK or INTERNET_FLAG_NO_UI or INTERNET_FLAG_PRAGMA_NOCACHE or INTERNET_FLAG_CACHE_ASYNC or INTERNET_FLAG_FORMS_SUBMIT or INTERNET_FLAG_NEED_FILE or INTERNET_FLAG_RESTRICTED_ZONE or INTERNET_FLAG_TRANSFER_BINARY or INTERNET_FLAG_TRANSFER_ASCII or INTERNET_FLAG_FWD_BACK or INTERNET_FLAG_BGUPDATE + INTERNET_FLAGS_MASK* = + INTERNET_FLAG_RELOAD or INTERNET_FLAG_RAW_DATA or INTERNET_FLAG_EXISTING_CONNECT or + INTERNET_FLAG_ASYNC or INTERNET_FLAG_PASSIVE or INTERNET_FLAG_NO_CACHE_WRITE or + INTERNET_FLAG_MAKE_PERSISTENT or INTERNET_FLAG_FROM_CACHE or INTERNET_FLAG_SECURE or + INTERNET_FLAG_KEEP_CONNECTION or INTERNET_FLAG_NO_AUTO_REDIRECT or + INTERNET_FLAG_READ_PREFETCH or INTERNET_FLAG_NO_COOKIES or INTERNET_FLAG_NO_AUTH or + INTERNET_FLAG_CACHE_IF_NET_FAIL or SECURITY_INTERNET_MASK or + INTERNET_FLAG_RESYNCHRONIZE or INTERNET_FLAG_HYPERLINK or INTERNET_FLAG_NO_UI or + INTERNET_FLAG_PRAGMA_NOCACHE or INTERNET_FLAG_CACHE_ASYNC or + INTERNET_FLAG_FORMS_SUBMIT or INTERNET_FLAG_NEED_FILE or + INTERNET_FLAG_RESTRICTED_ZONE or INTERNET_FLAG_TRANSFER_BINARY or + INTERNET_FLAG_TRANSFER_ASCII or INTERNET_FLAG_FWD_BACK or INTERNET_FLAG_BGUPDATE INTERNET_ERROR_MASK_INSERT_CDROM* = 0x1 INTERNET_ERROR_MASK_COMBINED_SEC_CERT* = 0x2 INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG* = 0X4 @@ -592,7 +663,10 @@ SECURITY_FLAG_IGNORE_CERT_DATE_INVALID* = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS* = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP* = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP - SECURITY_SET_MASK* = SECURITY_FLAG_IGNORE_REVOCATION or SECURITY_FLAG_IGNORE_UNKNOWN_CA or SECURITY_FLAG_IGNORE_CERT_CN_INVALID or SECURITY_FLAG_IGNORE_CERT_DATE_INVALID or SECURITY_FLAG_IGNORE_WRONG_USAGE + SECURITY_SET_MASK* = + SECURITY_FLAG_IGNORE_REVOCATION or SECURITY_FLAG_IGNORE_UNKNOWN_CA or + SECURITY_FLAG_IGNORE_CERT_CN_INVALID or SECURITY_FLAG_IGNORE_CERT_DATE_INVALID or + SECURITY_FLAG_IGNORE_WRONG_USAGE AUTODIAL_MODE_NEVER* = 1 AUTODIAL_MODE_ALWAYS* = 2 AUTODIAL_MODE_NO_NETWORK_PRESENT* = 4 @@ -660,7 +734,11 @@ GOPHER_TYPE_UNKNOWN* = 0x20000000 GOPHER_TYPE_ASK* = 0x40000000 GOPHER_TYPE_GOPHER_PLUS* = 0x80000000'i32 - GOPHER_TYPE_FILE_MASK* = GOPHER_TYPE_TEXT_FILE or GOPHER_TYPE_MAC_BINHEX or GOPHER_TYPE_DOS_ARCHIVE or GOPHER_TYPE_UNIX_UUENCODED or GOPHER_TYPE_BINARY or GOPHER_TYPE_GIF or GOPHER_TYPE_IMAGE or GOPHER_TYPE_BITMAP or GOPHER_TYPE_MOVIE or GOPHER_TYPE_SOUND or GOPHER_TYPE_HTML or GOPHER_TYPE_PDF or GOPHER_TYPE_CALENDAR or GOPHER_TYPE_INLINE + GOPHER_TYPE_FILE_MASK* = + GOPHER_TYPE_TEXT_FILE or GOPHER_TYPE_MAC_BINHEX or GOPHER_TYPE_DOS_ARCHIVE or + GOPHER_TYPE_UNIX_UUENCODED or GOPHER_TYPE_BINARY or GOPHER_TYPE_GIF or + GOPHER_TYPE_IMAGE or GOPHER_TYPE_BITMAP or GOPHER_TYPE_MOVIE or GOPHER_TYPE_SOUND or + GOPHER_TYPE_HTML or GOPHER_TYPE_PDF or GOPHER_TYPE_CALENDAR or GOPHER_TYPE_INLINE MAX_GOPHER_CATEGORY_NAME* = 128 MAX_GOPHER_ATTRIBUTE_NAME* = 128 MIN_GOPHER_ATTRIBUTE_LENGTH* = 256 @@ -685,31 +763,31 @@ GOPHER_VIEW_ATTRIBUTE* = "View" GOPHER_TREEWALK_ATTRIBUTE* = "treewalk" GOPHER_ATTRIBUTE_ID_BASE* = 0xabcccc00'i32 - GOPHER_CATEGORY_ID_ALL* = GOPHER_ATTRIBUTE_ID_BASE+1 - GOPHER_CATEGORY_ID_INFO* = GOPHER_ATTRIBUTE_ID_BASE+2 - GOPHER_CATEGORY_ID_ADMIN* = GOPHER_ATTRIBUTE_ID_BASE+3 - GOPHER_CATEGORY_ID_VIEWS* = GOPHER_ATTRIBUTE_ID_BASE+4 - GOPHER_CATEGORY_ID_ABSTRACT* = GOPHER_ATTRIBUTE_ID_BASE+5 - GOPHER_CATEGORY_ID_VERONICA* = GOPHER_ATTRIBUTE_ID_BASE+6 - GOPHER_CATEGORY_ID_ASK* = GOPHER_ATTRIBUTE_ID_BASE+7 - GOPHER_CATEGORY_ID_UNKNOWN* = GOPHER_ATTRIBUTE_ID_BASE+8 - GOPHER_ATTRIBUTE_ID_ALL* = GOPHER_ATTRIBUTE_ID_BASE+9 - GOPHER_ATTRIBUTE_ID_ADMIN* = GOPHER_ATTRIBUTE_ID_BASE+10 - GOPHER_ATTRIBUTE_ID_MOD_DATE* = GOPHER_ATTRIBUTE_ID_BASE+11 - GOPHER_ATTRIBUTE_ID_TTL* = GOPHER_ATTRIBUTE_ID_BASE+12 - GOPHER_ATTRIBUTE_ID_SCORE* = GOPHER_ATTRIBUTE_ID_BASE+13 - GOPHER_ATTRIBUTE_ID_RANGE* = GOPHER_ATTRIBUTE_ID_BASE+14 - GOPHER_ATTRIBUTE_ID_SITE* = GOPHER_ATTRIBUTE_ID_BASE+15 - GOPHER_ATTRIBUTE_ID_ORG* = GOPHER_ATTRIBUTE_ID_BASE+16 - GOPHER_ATTRIBUTE_ID_LOCATION* = GOPHER_ATTRIBUTE_ID_BASE+17 - GOPHER_ATTRIBUTE_ID_GEOG* = GOPHER_ATTRIBUTE_ID_BASE+18 - GOPHER_ATTRIBUTE_ID_TIMEZONE* = GOPHER_ATTRIBUTE_ID_BASE+19 - GOPHER_ATTRIBUTE_ID_PROVIDER* = GOPHER_ATTRIBUTE_ID_BASE+20 - GOPHER_ATTRIBUTE_ID_VERSION* = GOPHER_ATTRIBUTE_ID_BASE+21 - GOPHER_ATTRIBUTE_ID_ABSTRACT* = GOPHER_ATTRIBUTE_ID_BASE+22 - GOPHER_ATTRIBUTE_ID_VIEW* = GOPHER_ATTRIBUTE_ID_BASE+23 - GOPHER_ATTRIBUTE_ID_TREEWALK* = GOPHER_ATTRIBUTE_ID_BASE+24 - GOPHER_ATTRIBUTE_ID_UNKNOWN* = GOPHER_ATTRIBUTE_ID_BASE+25 + GOPHER_CATEGORY_ID_ALL* = GOPHER_ATTRIBUTE_ID_BASE + 1 + GOPHER_CATEGORY_ID_INFO* = GOPHER_ATTRIBUTE_ID_BASE + 2 + GOPHER_CATEGORY_ID_ADMIN* = GOPHER_ATTRIBUTE_ID_BASE + 3 + GOPHER_CATEGORY_ID_VIEWS* = GOPHER_ATTRIBUTE_ID_BASE + 4 + GOPHER_CATEGORY_ID_ABSTRACT* = GOPHER_ATTRIBUTE_ID_BASE + 5 + GOPHER_CATEGORY_ID_VERONICA* = GOPHER_ATTRIBUTE_ID_BASE + 6 + GOPHER_CATEGORY_ID_ASK* = GOPHER_ATTRIBUTE_ID_BASE + 7 + GOPHER_CATEGORY_ID_UNKNOWN* = GOPHER_ATTRIBUTE_ID_BASE + 8 + GOPHER_ATTRIBUTE_ID_ALL* = GOPHER_ATTRIBUTE_ID_BASE + 9 + GOPHER_ATTRIBUTE_ID_ADMIN* = GOPHER_ATTRIBUTE_ID_BASE + 10 + GOPHER_ATTRIBUTE_ID_MOD_DATE* = GOPHER_ATTRIBUTE_ID_BASE + 11 + GOPHER_ATTRIBUTE_ID_TTL* = GOPHER_ATTRIBUTE_ID_BASE + 12 + GOPHER_ATTRIBUTE_ID_SCORE* = GOPHER_ATTRIBUTE_ID_BASE + 13 + GOPHER_ATTRIBUTE_ID_RANGE* = GOPHER_ATTRIBUTE_ID_BASE + 14 + GOPHER_ATTRIBUTE_ID_SITE* = GOPHER_ATTRIBUTE_ID_BASE + 15 + GOPHER_ATTRIBUTE_ID_ORG* = GOPHER_ATTRIBUTE_ID_BASE + 16 + GOPHER_ATTRIBUTE_ID_LOCATION* = GOPHER_ATTRIBUTE_ID_BASE + 17 + GOPHER_ATTRIBUTE_ID_GEOG* = GOPHER_ATTRIBUTE_ID_BASE + 18 + GOPHER_ATTRIBUTE_ID_TIMEZONE* = GOPHER_ATTRIBUTE_ID_BASE + 19 + GOPHER_ATTRIBUTE_ID_PROVIDER* = GOPHER_ATTRIBUTE_ID_BASE + 20 + GOPHER_ATTRIBUTE_ID_VERSION* = GOPHER_ATTRIBUTE_ID_BASE + 21 + GOPHER_ATTRIBUTE_ID_ABSTRACT* = GOPHER_ATTRIBUTE_ID_BASE + 22 + GOPHER_ATTRIBUTE_ID_VIEW* = GOPHER_ATTRIBUTE_ID_BASE + 23 + GOPHER_ATTRIBUTE_ID_TREEWALK* = GOPHER_ATTRIBUTE_ID_BASE + 24 + GOPHER_ATTRIBUTE_ID_UNKNOWN* = GOPHER_ATTRIBUTE_ID_BASE + 25 HTTP_MAJOR_VERSION* = 1 HTTP_MINOR_VERSION* = 0 HTTP_QUERY_MIME_VERSION* = 0 @@ -797,7 +875,9 @@ HTTP_QUERY_FLAG_SYSTEMTIME* = 0x40000000 HTTP_QUERY_FLAG_NUMBER* = 0x20000000 HTTP_QUERY_FLAG_COALESCE* = 0x10000000 - HTTP_QUERY_MODIFIER_FLAGS_MASK* = HTTP_QUERY_FLAG_REQUEST_HEADERS or HTTP_QUERY_FLAG_SYSTEMTIME or HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_FLAG_COALESCE + HTTP_QUERY_MODIFIER_FLAGS_MASK* = + HTTP_QUERY_FLAG_REQUEST_HEADERS or HTTP_QUERY_FLAG_SYSTEMTIME or + HTTP_QUERY_FLAG_NUMBER or HTTP_QUERY_FLAG_COALESCE HTTP_QUERY_HEADER_MASK* = not HTTP_QUERY_MODIFIER_FLAGS_MASK HTTP_STATUS_CONTINUE* = 100 HTTP_STATUS_SWITCH_PROTOCOLS* = 101 @@ -871,98 +951,98 @@ FLAGS_ERROR_UI_FLAGS_NO_UI* = 0x08 FLAGS_ERROR_UI_SERIALIZE_DIALOGS* = 0x10 INTERNET_ERROR_BASE* = 12000 - ERROR_INTERNET_OUT_OF_HANDLES* = INTERNET_ERROR_BASE+1 - ERROR_INTERNET_TIMEOUT* = INTERNET_ERROR_BASE+2 - ERROR_INTERNET_EXTENDED_ERROR* = INTERNET_ERROR_BASE+3 - ERROR_INTERNET_INTERNAL_ERROR* = INTERNET_ERROR_BASE+4 - ERROR_INTERNET_INVALID_URL* = INTERNET_ERROR_BASE+5 - ERROR_INTERNET_UNRECOGNIZED_SCHEME* = INTERNET_ERROR_BASE+6 - ERROR_INTERNET_NAME_NOT_RESOLVED* = INTERNET_ERROR_BASE+7 - ERROR_INTERNET_PROTOCOL_NOT_FOUND* = INTERNET_ERROR_BASE+8 - ERROR_INTERNET_INVALID_OPTION* = INTERNET_ERROR_BASE+9 - ERROR_INTERNET_BAD_OPTION_LENGTH* = INTERNET_ERROR_BASE+10 - ERROR_INTERNET_OPTION_NOT_SETTABLE* = INTERNET_ERROR_BASE+11 - ERROR_INTERNET_SHUTDOWN* = INTERNET_ERROR_BASE+12 - ERROR_INTERNET_INCORRECT_USER_NAME* = INTERNET_ERROR_BASE+13 - ERROR_INTERNET_INCORRECT_PASSWORD* = INTERNET_ERROR_BASE+14 - ERROR_INTERNET_LOGIN_FAILURE* = INTERNET_ERROR_BASE+15 - ERROR_INTERNET_INVALID_OPERATION* = INTERNET_ERROR_BASE+16 - ERROR_INTERNET_OPERATION_CANCELLED* = INTERNET_ERROR_BASE+17 - ERROR_INTERNET_INCORRECT_HANDLE_TYPE* = INTERNET_ERROR_BASE+18 - ERROR_INTERNET_INCORRECT_HANDLE_STATE* = INTERNET_ERROR_BASE+19 - ERROR_INTERNET_NOT_PROXY_REQUEST* = INTERNET_ERROR_BASE+20 - ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND* = INTERNET_ERROR_BASE+21 - ERROR_INTERNET_BAD_REGISTRY_PARAMETER* = INTERNET_ERROR_BASE+22 - ERROR_INTERNET_NO_DIRECT_ACCESS* = INTERNET_ERROR_BASE+23 - ERROR_INTERNET_NO_CONTEXT* = INTERNET_ERROR_BASE+24 - ERROR_INTERNET_NO_CALLBACK* = INTERNET_ERROR_BASE+25 - ERROR_INTERNET_REQUEST_PENDING* = INTERNET_ERROR_BASE+26 - ERROR_INTERNET_INCORRECT_FORMAT* = INTERNET_ERROR_BASE+27 - ERROR_INTERNET_ITEM_NOT_FOUND* = INTERNET_ERROR_BASE+28 - ERROR_INTERNET_CANNOT_CONNECT* = INTERNET_ERROR_BASE+29 - ERROR_INTERNET_CONNECTION_ABORTED* = INTERNET_ERROR_BASE+30 - ERROR_INTERNET_CONNECTION_RESET* = INTERNET_ERROR_BASE+31 - ERROR_INTERNET_FORCE_RETRY* = INTERNET_ERROR_BASE+32 - ERROR_INTERNET_INVALID_PROXY_REQUEST* = INTERNET_ERROR_BASE+33 - ERROR_INTERNET_NEED_UI* = INTERNET_ERROR_BASE+34 - ERROR_INTERNET_HANDLE_EXISTS* = INTERNET_ERROR_BASE+36 - ERROR_INTERNET_SEC_CERT_DATE_INVALID* = INTERNET_ERROR_BASE+37 - ERROR_INTERNET_SEC_CERT_CN_INVALID* = INTERNET_ERROR_BASE+38 - ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR* = INTERNET_ERROR_BASE+39 - ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR* = INTERNET_ERROR_BASE+40 - ERROR_INTERNET_MIXED_SECURITY* = INTERNET_ERROR_BASE+41 - ERROR_INTERNET_CHG_POST_IS_NON_SECURE* = INTERNET_ERROR_BASE+42 - ERROR_INTERNET_POST_IS_NON_SECURE* = INTERNET_ERROR_BASE+43 - ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED* = INTERNET_ERROR_BASE+44 - ERROR_INTERNET_INVALID_CA* = INTERNET_ERROR_BASE+45 - ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP* = INTERNET_ERROR_BASE+46 - ERROR_INTERNET_ASYNC_THREAD_FAILED* = INTERNET_ERROR_BASE+47 - ERROR_INTERNET_REDIRECT_SCHEME_CHANGE* = INTERNET_ERROR_BASE+48 - ERROR_INTERNET_DIALOG_PENDING* = INTERNET_ERROR_BASE+49 - ERROR_INTERNET_RETRY_DIALOG* = INTERNET_ERROR_BASE+50 - ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR* = INTERNET_ERROR_BASE+52 - ERROR_INTERNET_INSERT_CDROM* = INTERNET_ERROR_BASE+53 - ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED* = INTERNET_ERROR_BASE+54 - ERROR_INTERNET_SEC_CERT_ERRORS* = INTERNET_ERROR_BASE+55 - ERROR_INTERNET_SEC_CERT_NO_REV* = INTERNET_ERROR_BASE+56 - ERROR_INTERNET_SEC_CERT_REV_FAILED* = INTERNET_ERROR_BASE+57 - ERROR_FTP_TRANSFER_IN_PROGRESS* = INTERNET_ERROR_BASE+110 - ERROR_FTP_DROPPED* = INTERNET_ERROR_BASE+111 - ERROR_FTP_NO_PASSIVE_MODE* = INTERNET_ERROR_BASE+112 - ERROR_GOPHER_PROTOCOL_ERROR* = INTERNET_ERROR_BASE+130 - ERROR_GOPHER_NOT_FILE* = INTERNET_ERROR_BASE+131 - ERROR_GOPHER_DATA_ERROR* = INTERNET_ERROR_BASE+132 - ERROR_GOPHER_END_OF_DATA* = INTERNET_ERROR_BASE+133 - ERROR_GOPHER_INVALID_LOCATOR* = INTERNET_ERROR_BASE+134 - ERROR_GOPHER_INCORRECT_LOCATOR_TYPE* = INTERNET_ERROR_BASE+135 - ERROR_GOPHER_NOT_GOPHER_PLUS* = INTERNET_ERROR_BASE+136 - ERROR_GOPHER_ATTRIBUTE_NOT_FOUND* = INTERNET_ERROR_BASE+137 - ERROR_GOPHER_UNKNOWN_LOCATOR* = INTERNET_ERROR_BASE+138 - ERROR_HTTP_HEADER_NOT_FOUND* = INTERNET_ERROR_BASE+150 - ERROR_HTTP_DOWNLEVEL_SERVER* = INTERNET_ERROR_BASE+151 - ERROR_HTTP_INVALID_SERVER_RESPONSE* = INTERNET_ERROR_BASE+152 - ERROR_HTTP_INVALID_HEADER* = INTERNET_ERROR_BASE+153 - ERROR_HTTP_INVALID_QUERY_REQUEST* = INTERNET_ERROR_BASE+154 - ERROR_HTTP_HEADER_ALREADY_EXISTS* = INTERNET_ERROR_BASE+155 - ERROR_HTTP_REDIRECT_FAILED* = INTERNET_ERROR_BASE+156 - ERROR_HTTP_NOT_REDIRECTED* = INTERNET_ERROR_BASE+160 - ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION* = INTERNET_ERROR_BASE+161 - ERROR_HTTP_COOKIE_DECLINED* = INTERNET_ERROR_BASE+162 - ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION* = INTERNET_ERROR_BASE+168 - ERROR_INTERNET_SECURITY_CHANNEL_ERROR* = INTERNET_ERROR_BASE+157 - ERROR_INTERNET_UNABLE_TO_CACHE_FILE* = INTERNET_ERROR_BASE+158 - ERROR_INTERNET_TCPIP_NOT_INSTALLED* = INTERNET_ERROR_BASE+159 - ERROR_INTERNET_DISCONNECTED* = INTERNET_ERROR_BASE+163 - ERROR_INTERNET_SERVER_UNREACHABLE* = INTERNET_ERROR_BASE+164 - ERROR_INTERNET_PROXY_SERVER_UNREACHABLE* = INTERNET_ERROR_BASE+165 - ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT* = INTERNET_ERROR_BASE+166 - ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT* = INTERNET_ERROR_BASE+167 - ERROR_INTERNET_SEC_INVALID_CERT* = INTERNET_ERROR_BASE+169 - ERROR_INTERNET_SEC_CERT_REVOKED* = INTERNET_ERROR_BASE+170 - ERROR_INTERNET_FAILED_DUETOSECURITYCHECK* = INTERNET_ERROR_BASE+171 - ERROR_INTERNET_NOT_INITIALIZED* = INTERNET_ERROR_BASE+172 - ERROR_INTERNET_NEED_MSN_SSPI_PKG* = INTERNET_ERROR_BASE+173 - ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY* = INTERNET_ERROR_BASE+174 + ERROR_INTERNET_OUT_OF_HANDLES* = INTERNET_ERROR_BASE + 1 + ERROR_INTERNET_TIMEOUT* = INTERNET_ERROR_BASE + 2 + ERROR_INTERNET_EXTENDED_ERROR* = INTERNET_ERROR_BASE + 3 + ERROR_INTERNET_INTERNAL_ERROR* = INTERNET_ERROR_BASE + 4 + ERROR_INTERNET_INVALID_URL* = INTERNET_ERROR_BASE + 5 + ERROR_INTERNET_UNRECOGNIZED_SCHEME* = INTERNET_ERROR_BASE + 6 + ERROR_INTERNET_NAME_NOT_RESOLVED* = INTERNET_ERROR_BASE + 7 + ERROR_INTERNET_PROTOCOL_NOT_FOUND* = INTERNET_ERROR_BASE + 8 + ERROR_INTERNET_INVALID_OPTION* = INTERNET_ERROR_BASE + 9 + ERROR_INTERNET_BAD_OPTION_LENGTH* = INTERNET_ERROR_BASE + 10 + ERROR_INTERNET_OPTION_NOT_SETTABLE* = INTERNET_ERROR_BASE + 11 + ERROR_INTERNET_SHUTDOWN* = INTERNET_ERROR_BASE + 12 + ERROR_INTERNET_INCORRECT_USER_NAME* = INTERNET_ERROR_BASE + 13 + ERROR_INTERNET_INCORRECT_PASSWORD* = INTERNET_ERROR_BASE + 14 + ERROR_INTERNET_LOGIN_FAILURE* = INTERNET_ERROR_BASE + 15 + ERROR_INTERNET_INVALID_OPERATION* = INTERNET_ERROR_BASE + 16 + ERROR_INTERNET_OPERATION_CANCELLED* = INTERNET_ERROR_BASE + 17 + ERROR_INTERNET_INCORRECT_HANDLE_TYPE* = INTERNET_ERROR_BASE + 18 + ERROR_INTERNET_INCORRECT_HANDLE_STATE* = INTERNET_ERROR_BASE + 19 + ERROR_INTERNET_NOT_PROXY_REQUEST* = INTERNET_ERROR_BASE + 20 + ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND* = INTERNET_ERROR_BASE + 21 + ERROR_INTERNET_BAD_REGISTRY_PARAMETER* = INTERNET_ERROR_BASE + 22 + ERROR_INTERNET_NO_DIRECT_ACCESS* = INTERNET_ERROR_BASE + 23 + ERROR_INTERNET_NO_CONTEXT* = INTERNET_ERROR_BASE + 24 + ERROR_INTERNET_NO_CALLBACK* = INTERNET_ERROR_BASE + 25 + ERROR_INTERNET_REQUEST_PENDING* = INTERNET_ERROR_BASE + 26 + ERROR_INTERNET_INCORRECT_FORMAT* = INTERNET_ERROR_BASE + 27 + ERROR_INTERNET_ITEM_NOT_FOUND* = INTERNET_ERROR_BASE + 28 + ERROR_INTERNET_CANNOT_CONNECT* = INTERNET_ERROR_BASE + 29 + ERROR_INTERNET_CONNECTION_ABORTED* = INTERNET_ERROR_BASE + 30 + ERROR_INTERNET_CONNECTION_RESET* = INTERNET_ERROR_BASE + 31 + ERROR_INTERNET_FORCE_RETRY* = INTERNET_ERROR_BASE + 32 + ERROR_INTERNET_INVALID_PROXY_REQUEST* = INTERNET_ERROR_BASE + 33 + ERROR_INTERNET_NEED_UI* = INTERNET_ERROR_BASE + 34 + ERROR_INTERNET_HANDLE_EXISTS* = INTERNET_ERROR_BASE + 36 + ERROR_INTERNET_SEC_CERT_DATE_INVALID* = INTERNET_ERROR_BASE + 37 + ERROR_INTERNET_SEC_CERT_CN_INVALID* = INTERNET_ERROR_BASE + 38 + ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR* = INTERNET_ERROR_BASE + 39 + ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR* = INTERNET_ERROR_BASE + 40 + ERROR_INTERNET_MIXED_SECURITY* = INTERNET_ERROR_BASE + 41 + ERROR_INTERNET_CHG_POST_IS_NON_SECURE* = INTERNET_ERROR_BASE + 42 + ERROR_INTERNET_POST_IS_NON_SECURE* = INTERNET_ERROR_BASE + 43 + ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED* = INTERNET_ERROR_BASE + 44 + ERROR_INTERNET_INVALID_CA* = INTERNET_ERROR_BASE + 45 + ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP* = INTERNET_ERROR_BASE + 46 + ERROR_INTERNET_ASYNC_THREAD_FAILED* = INTERNET_ERROR_BASE + 47 + ERROR_INTERNET_REDIRECT_SCHEME_CHANGE* = INTERNET_ERROR_BASE + 48 + ERROR_INTERNET_DIALOG_PENDING* = INTERNET_ERROR_BASE + 49 + ERROR_INTERNET_RETRY_DIALOG* = INTERNET_ERROR_BASE + 50 + ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR* = INTERNET_ERROR_BASE + 52 + ERROR_INTERNET_INSERT_CDROM* = INTERNET_ERROR_BASE + 53 + ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED* = INTERNET_ERROR_BASE + 54 + ERROR_INTERNET_SEC_CERT_ERRORS* = INTERNET_ERROR_BASE + 55 + ERROR_INTERNET_SEC_CERT_NO_REV* = INTERNET_ERROR_BASE + 56 + ERROR_INTERNET_SEC_CERT_REV_FAILED* = INTERNET_ERROR_BASE + 57 + ERROR_FTP_TRANSFER_IN_PROGRESS* = INTERNET_ERROR_BASE + 110 + ERROR_FTP_DROPPED* = INTERNET_ERROR_BASE + 111 + ERROR_FTP_NO_PASSIVE_MODE* = INTERNET_ERROR_BASE + 112 + ERROR_GOPHER_PROTOCOL_ERROR* = INTERNET_ERROR_BASE + 130 + ERROR_GOPHER_NOT_FILE* = INTERNET_ERROR_BASE + 131 + ERROR_GOPHER_DATA_ERROR* = INTERNET_ERROR_BASE + 132 + ERROR_GOPHER_END_OF_DATA* = INTERNET_ERROR_BASE + 133 + ERROR_GOPHER_INVALID_LOCATOR* = INTERNET_ERROR_BASE + 134 + ERROR_GOPHER_INCORRECT_LOCATOR_TYPE* = INTERNET_ERROR_BASE + 135 + ERROR_GOPHER_NOT_GOPHER_PLUS* = INTERNET_ERROR_BASE + 136 + ERROR_GOPHER_ATTRIBUTE_NOT_FOUND* = INTERNET_ERROR_BASE + 137 + ERROR_GOPHER_UNKNOWN_LOCATOR* = INTERNET_ERROR_BASE + 138 + ERROR_HTTP_HEADER_NOT_FOUND* = INTERNET_ERROR_BASE + 150 + ERROR_HTTP_DOWNLEVEL_SERVER* = INTERNET_ERROR_BASE + 151 + ERROR_HTTP_INVALID_SERVER_RESPONSE* = INTERNET_ERROR_BASE + 152 + ERROR_HTTP_INVALID_HEADER* = INTERNET_ERROR_BASE + 153 + ERROR_HTTP_INVALID_QUERY_REQUEST* = INTERNET_ERROR_BASE + 154 + ERROR_HTTP_HEADER_ALREADY_EXISTS* = INTERNET_ERROR_BASE + 155 + ERROR_HTTP_REDIRECT_FAILED* = INTERNET_ERROR_BASE + 156 + ERROR_HTTP_NOT_REDIRECTED* = INTERNET_ERROR_BASE + 160 + ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION* = INTERNET_ERROR_BASE + 161 + ERROR_HTTP_COOKIE_DECLINED* = INTERNET_ERROR_BASE + 162 + ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION* = INTERNET_ERROR_BASE + 168 + ERROR_INTERNET_SECURITY_CHANNEL_ERROR* = INTERNET_ERROR_BASE + 157 + ERROR_INTERNET_UNABLE_TO_CACHE_FILE* = INTERNET_ERROR_BASE + 158 + ERROR_INTERNET_TCPIP_NOT_INSTALLED* = INTERNET_ERROR_BASE + 159 + ERROR_INTERNET_DISCONNECTED* = INTERNET_ERROR_BASE + 163 + ERROR_INTERNET_SERVER_UNREACHABLE* = INTERNET_ERROR_BASE + 164 + ERROR_INTERNET_PROXY_SERVER_UNREACHABLE* = INTERNET_ERROR_BASE + 165 + ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT* = INTERNET_ERROR_BASE + 166 + ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT* = INTERNET_ERROR_BASE + 167 + ERROR_INTERNET_SEC_INVALID_CERT* = INTERNET_ERROR_BASE + 169 + ERROR_INTERNET_SEC_CERT_REVOKED* = INTERNET_ERROR_BASE + 170 + ERROR_INTERNET_FAILED_DUETOSECURITYCHECK* = INTERNET_ERROR_BASE + 171 + ERROR_INTERNET_NOT_INITIALIZED* = INTERNET_ERROR_BASE + 172 + ERROR_INTERNET_NEED_MSN_SSPI_PKG* = INTERNET_ERROR_BASE + 173 + ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY* = INTERNET_ERROR_BASE + 174 INTERNET_ERROR_LAST* = ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY NORMAL_CACHE_ENTRY* = 0x00000001 STICKY_CACHE_ENTRY* = 0x00000004 @@ -972,7 +1052,9 @@ SPARSE_CACHE_ENTRY* = 0x00010000 COOKIE_CACHE_ENTRY* = 0x00100000 URLHISTORY_CACHE_ENTRY* = 0x00200000 - URLCACHE_FIND_DEFAULT_FILTER* = NORMAL_CACHE_ENTRY or COOKIE_CACHE_ENTRY or URLHISTORY_CACHE_ENTRY or TRACK_OFFLINE_CACHE_ENTRY or TRACK_ONLINE_CACHE_ENTRY or STICKY_CACHE_ENTRY + URLCACHE_FIND_DEFAULT_FILTER* = + NORMAL_CACHE_ENTRY or COOKIE_CACHE_ENTRY or URLHISTORY_CACHE_ENTRY or + TRACK_OFFLINE_CACHE_ENTRY or TRACK_ONLINE_CACHE_ENTRY or STICKY_CACHE_ENTRY CACHEGROUP_ATTRIBUTE_GET_ALL* = 0xffffffff'i32 CACHEGROUP_ATTRIBUTE_BASIC* = 0x00000001 CACHEGROUP_ATTRIBUTE_FLAG* = 0x00000002 @@ -986,7 +1068,9 @@ CACHEGROUP_SEARCH_ALL* = 0x00000000 CACHEGROUP_SEARCH_BYURL* = 0x00000001 CACHEGROUP_TYPE_INVALID* = 0x00000001 - CACHEGROUP_READWRITE_MASK* = CACHEGROUP_ATTRIBUTE_TYPE or CACHEGROUP_ATTRIBUTE_QUOTA or CACHEGROUP_ATTRIBUTE_GROUPNAME or CACHEGROUP_ATTRIBUTE_STORAGE + CACHEGROUP_READWRITE_MASK* = + CACHEGROUP_ATTRIBUTE_TYPE or CACHEGROUP_ATTRIBUTE_QUOTA or + CACHEGROUP_ATTRIBUTE_GROUPNAME or CACHEGROUP_ATTRIBUTE_STORAGE CACHE_ENTRY_ATTRIBUTE_FC* = 0x00000004 CACHE_ENTRY_HITRATE_FC* = 0x00000010 CACHE_ENTRY_MODTIME_FC* = 0x00000040 @@ -1006,7 +1090,9 @@ INTERNET_AUTODIAL_FORCE_UNATTENDED* = 2 INTERNET_AUTODIAL_FAILIFSECURITYCHECK* = 4 INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT* = 8 - INTERNET_AUTODIAL_FLAGS_MASK* = INTERNET_AUTODIAL_FORCE_ONLINE or INTERNET_AUTODIAL_FORCE_UNATTENDED or INTERNET_AUTODIAL_FAILIFSECURITYCHECK or INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT + INTERNET_AUTODIAL_FLAGS_MASK* = + INTERNET_AUTODIAL_FORCE_ONLINE or INTERNET_AUTODIAL_FORCE_UNATTENDED or + INTERNET_AUTODIAL_FAILIFSECURITYCHECK or INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT PROXY_AUTO_DETECT_TYPE_DHCP* = 1 PROXY_AUTO_DETECT_TYPE_DNS_A* = 2 INTERNET_CONNECTION_MODEM* = 0x01 @@ -1047,14 +1133,31 @@ INTERNET_MAX_URL_LENGTH* = 2084 INTERNET_INVALID_STATUS_CALLBACK* = cast[INTERNET_STATUS_CALLBACK](-1) type - GOPHER_ATTRIBUTE_ENUMERATOR* = proc (lpAttributeInfo: LPGOPHER_ATTRIBUTE_TYPE, dwError: DWORD): WINBOOL {.stdcall.} - PFN_AUTH_NOTIFY* = proc (P1: DWORD_PTR, P2: DWORD, P3: LPVOID): DWORD {.stdcall.} + GOPHER_ATTRIBUTE_ENUMERATOR* = + proc(lpAttributeInfo: LPGOPHER_ATTRIBUTE_TYPE, dwError: DWORD): WINBOOL {.stdcall.} + PFN_AUTH_NOTIFY* = proc(P1: DWORD_PTR, P2: DWORD, P3: LPVOID): DWORD {.stdcall.} AutoProxyHelperFunctions* {.pure.} = object lpVtbl*: ptr AutoProxyHelperVtbl - pfnInternetInitializeAutoProxyDll* = proc (dwVersion: DWORD, lpszDownloadedTempFile: LPSTR, lpszMime: LPSTR, lpAutoProxyCallbacks: ptr AutoProxyHelperFunctions, lpAutoProxyScriptBuffer: LPAUTO_PROXY_SCRIPT_BUFFER): WINBOOL {.stdcall.} - pfnInternetDeInitializeAutoProxyDll* = proc (lpszMime: LPSTR, dwReserved: DWORD): WINBOOL {.stdcall.} - pfnInternetGetProxyInfo* = proc (lpszUrl: LPCSTR, dwUrlLength: DWORD, lpszUrlHostName: LPSTR, dwUrlHostNameLength: DWORD, lplpszProxyHostName: ptr LPSTR, lpdwProxyHostNameLength: LPDWORD): WINBOOL {.stdcall.} - PFN_DIAL_HANDLER* = proc (P1: HWND, P2: LPCSTR, P3: DWORD, P4: LPDWORD): DWORD {.stdcall.} + + pfnInternetInitializeAutoProxyDll* = proc( + dwVersion: DWORD, + lpszDownloadedTempFile: LPSTR, + lpszMime: LPSTR, + lpAutoProxyCallbacks: ptr AutoProxyHelperFunctions, + lpAutoProxyScriptBuffer: LPAUTO_PROXY_SCRIPT_BUFFER, + ): WINBOOL {.stdcall.} + pfnInternetDeInitializeAutoProxyDll* = + proc(lpszMime: LPSTR, dwReserved: DWORD): WINBOOL {.stdcall.} + pfnInternetGetProxyInfo* = proc( + lpszUrl: LPCSTR, + dwUrlLength: DWORD, + lpszUrlHostName: LPSTR, + dwUrlHostNameLength: DWORD, + lplpszProxyHostName: ptr LPSTR, + lpdwProxyHostNameLength: LPDWORD, + ): WINBOOL {.stdcall.} + PFN_DIAL_HANDLER* = + proc(P1: HWND, P2: LPCSTR, P3: DWORD, P4: LPDWORD): DWORD {.stdcall.} IncomingCookieState* {.pure.} = object cSession*: int32 cPersistent*: int32 @@ -1063,204 +1166,1112 @@ cDowngraded*: int32 cBlocked*: int32 pszLocation*: ptr char + OutgoingCookieState* {.pure.} = object cSent*: int32 cSuppressed*: int32 pszLocation*: ptr char + InternetCookieHistory* {.pure.} = object fAccepted*: WINBOOL fLeashed*: WINBOOL fDowngraded*: WINBOOL fRejected*: WINBOOL + CookieDecision* {.pure.} = object dwCookieState*: DWORD fAllowSession*: WINBOOL + INTERNET_AUTH_NOTIFY_DATA* {.pure.} = object cbStruct*: DWORD dwOptions*: DWORD pfnNotify*: PFN_AUTH_NOTIFY dwContext*: DWORD_PTR + AutoProxyHelperVtbl* {.pure.} = object IsResolvable*: proc(lpszHost: LPSTR): WINBOOL {.stdcall.} - GetIPAddress*: proc(lpszIPAddress: LPSTR, lpdwIPAddressSize: LPDWORD): DWORD {.stdcall.} - ResolveHostName*: proc(lpszHostName: LPSTR, lpszIPAddress: LPSTR, lpdwIPAddressSize: LPDWORD): DWORD {.stdcall.} - IsInNet*: proc(lpszIPAddress: LPSTR, lpszDest: LPSTR, lpszMask: LPSTR): WINBOOL {.stdcall.} -proc InternetTimeFromSystemTimeA*(pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPSTR, cbTime: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetTimeFromSystemTimeW*(pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPWSTR, cbTime: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetTimeToSystemTimeA*(lpszTime: LPCSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetTimeToSystemTimeW*(lpszTime: LPCWSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCrackUrlA*(lpszUrl: LPCSTR, dwUrlLength: DWORD, dwFlags: DWORD, lpUrlComponents: LPURL_COMPONENTSA): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCrackUrlW*(lpszUrl: LPCWSTR, dwUrlLength: DWORD, dwFlags: DWORD, lpUrlComponents: LPURL_COMPONENTSW): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCreateUrlA*(lpUrlComponents: LPURL_COMPONENTSA, dwFlags: DWORD, lpszUrl: LPSTR, lpdwUrlLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCreateUrlW*(lpUrlComponents: LPURL_COMPONENTSW, dwFlags: DWORD, lpszUrl: LPWSTR, lpdwUrlLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCanonicalizeUrlA*(lpszUrl: LPCSTR, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCanonicalizeUrlW*(lpszUrl: LPCWSTR, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCombineUrlA*(lpszBaseUrl: LPCSTR, lpszRelativeUrl: LPCSTR, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCombineUrlW*(lpszBaseUrl: LPCWSTR, lpszRelativeUrl: LPCWSTR, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetOpenA*(lpszAgent: LPCSTR, dwAccessType: DWORD, lpszProxy: LPCSTR, lpszProxyBypass: LPCSTR, dwFlags: DWORD): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetOpenW*(lpszAgent: LPCWSTR, dwAccessType: DWORD, lpszProxy: LPCWSTR, lpszProxyBypass: LPCWSTR, dwFlags: DWORD): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCloseHandle*(hInternet: HINTERNET): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetConnectA*(hInternet: HINTERNET, lpszServerName: LPCSTR, nServerPort: INTERNET_PORT, lpszUserName: LPCSTR, lpszPassword: LPCSTR, dwService: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetConnectW*(hInternet: HINTERNET, lpszServerName: LPCWSTR, nServerPort: INTERNET_PORT, lpszUserName: LPCWSTR, lpszPassword: LPCWSTR, dwService: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetOpenUrlA*(hInternet: HINTERNET, lpszUrl: LPCSTR, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetOpenUrlW*(hInternet: HINTERNET, lpszUrl: LPCWSTR, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetReadFile*(hFile: HINTERNET, lpBuffer: LPVOID, dwNumberOfBytesToRead: DWORD, lpdwNumberOfBytesRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetReadFileExA*(hFile: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSA, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetReadFileExW*(hFile: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSW, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetFilePointer*(hFile: HINTERNET, lDistanceToMove: LONG, pReserved: PVOID, dwMoveMethod: DWORD, dwContext: DWORD_PTR): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetWriteFile*(hFile: HINTERNET, lpBuffer: LPCVOID, dwNumberOfBytesToWrite: DWORD, lpdwNumberOfBytesWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetQueryDataAvailable*(hFile: HINTERNET, lpdwNumberOfBytesAvailable: LPDWORD, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetFindNextFileA*(hFind: HINTERNET, lpvFindData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetFindNextFileW*(hFind: HINTERNET, lpvFindData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetQueryOptionA*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetQueryOptionW*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetOptionA*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetOptionW*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetOptionExA*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetOptionExW*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetLockRequestFile*(hInternet: HINTERNET, lphLockRequestInfo: ptr HANDLE): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetUnlockRequestFile*(hLockRequestInfo: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetLastResponseInfoA*(lpdwError: LPDWORD, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetLastResponseInfoW*(lpdwError: LPDWORD, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetStatusCallbackA*(hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK): INTERNET_STATUS_CALLBACK {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetStatusCallbackW*(hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK): INTERNET_STATUS_CALLBACK {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpFindFirstFileA*(hConnect: HINTERNET, lpszSearchFile: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpFindFirstFileW*(hConnect: HINTERNET, lpszSearchFile: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpGetFileA*(hConnect: HINTERNET, lpszRemoteFile: LPCSTR, lpszNewFile: LPCSTR, fFailIfExists: WINBOOL, dwFlagsAndAttributes: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpGetFileW*(hConnect: HINTERNET, lpszRemoteFile: LPCWSTR, lpszNewFile: LPCWSTR, fFailIfExists: WINBOOL, dwFlagsAndAttributes: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpPutFileA*(hConnect: HINTERNET, lpszLocalFile: LPCSTR, lpszNewRemoteFile: LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpPutFileW*(hConnect: HINTERNET, lpszLocalFile: LPCWSTR, lpszNewRemoteFile: LPCWSTR, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpGetFileEx*(hFtpSession: HINTERNET, lpszRemoteFile: LPCSTR, lpszNewFile: LPCWSTR, fFailIfExists: WINBOOL, dwFlagsAndAttributes: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpPutFileEx*(hFtpSession: HINTERNET, lpszLocalFile: LPCWSTR, lpszNewRemoteFile: LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpDeleteFileA*(hConnect: HINTERNET, lpszFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpDeleteFileW*(hConnect: HINTERNET, lpszFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpRenameFileA*(hConnect: HINTERNET, lpszExisting: LPCSTR, lpszNew: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpRenameFileW*(hConnect: HINTERNET, lpszExisting: LPCWSTR, lpszNew: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpOpenFileA*(hConnect: HINTERNET, lpszFileName: LPCSTR, dwAccess: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpOpenFileW*(hConnect: HINTERNET, lpszFileName: LPCWSTR, dwAccess: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpCreateDirectoryA*(hConnect: HINTERNET, lpszDirectory: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpCreateDirectoryW*(hConnect: HINTERNET, lpszDirectory: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpRemoveDirectoryA*(hConnect: HINTERNET, lpszDirectory: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpRemoveDirectoryW*(hConnect: HINTERNET, lpszDirectory: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpSetCurrentDirectoryA*(hConnect: HINTERNET, lpszDirectory: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpSetCurrentDirectoryW*(hConnect: HINTERNET, lpszDirectory: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpGetCurrentDirectoryA*(hConnect: HINTERNET, lpszCurrentDirectory: LPSTR, lpdwCurrentDirectory: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpGetCurrentDirectoryW*(hConnect: HINTERNET, lpszCurrentDirectory: LPWSTR, lpdwCurrentDirectory: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpCommandA*(hConnect: HINTERNET, fExpectResponse: WINBOOL, dwFlags: DWORD, lpszCommand: LPCSTR, dwContext: DWORD_PTR, phFtpCommand: ptr HINTERNET): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpCommandW*(hConnect: HINTERNET, fExpectResponse: WINBOOL, dwFlags: DWORD, lpszCommand: LPCWSTR, dwContext: DWORD_PTR, phFtpCommand: ptr HINTERNET): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FtpGetFileSize*(hFile: HINTERNET, lpdwFileSizeHigh: LPDWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherCreateLocatorA*(lpszHost: LPCSTR, nServerPort: INTERNET_PORT, lpszDisplayString: LPCSTR, lpszSelectorString: LPCSTR, dwGopherType: DWORD, lpszLocator: LPSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherCreateLocatorW*(lpszHost: LPCWSTR, nServerPort: INTERNET_PORT, lpszDisplayString: LPCWSTR, lpszSelectorString: LPCWSTR, dwGopherType: DWORD, lpszLocator: LPWSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherGetLocatorTypeA*(lpszLocator: LPCSTR, lpdwGopherType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherGetLocatorTypeW*(lpszLocator: LPCWSTR, lpdwGopherType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherFindFirstFileA*(hConnect: HINTERNET, lpszLocator: LPCSTR, lpszSearchString: LPCSTR, lpFindData: LPGOPHER_FIND_DATAA, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherFindFirstFileW*(hConnect: HINTERNET, lpszLocator: LPCWSTR, lpszSearchString: LPCWSTR, lpFindData: LPGOPHER_FIND_DATAW, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherOpenFileA*(hConnect: HINTERNET, lpszLocator: LPCSTR, lpszView: LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherOpenFileW*(hConnect: HINTERNET, lpszLocator: LPCWSTR, lpszView: LPCWSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherGetAttributeA*(hConnect: HINTERNET, lpszLocator: LPCSTR, lpszAttributeName: LPCSTR, lpBuffer: LPBYTE, dwBufferLength: DWORD, lpdwCharactersReturned: LPDWORD, lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GopherGetAttributeW*(hConnect: HINTERNET, lpszLocator: LPCWSTR, lpszAttributeName: LPCWSTR, lpBuffer: LPBYTE, dwBufferLength: DWORD, lpdwCharactersReturned: LPDWORD, lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpOpenRequestA*(hConnect: HINTERNET, lpszVerb: LPCSTR, lpszObjectName: LPCSTR, lpszVersion: LPCSTR, lpszReferrer: LPCSTR, lplpszAcceptTypes: ptr LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpOpenRequestW*(hConnect: HINTERNET, lpszVerb: LPCWSTR, lpszObjectName: LPCWSTR, lpszVersion: LPCWSTR, lpszReferrer: LPCWSTR, lplpszAcceptTypes: ptr LPCWSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpAddRequestHeadersA*(hRequest: HINTERNET, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, dwModifiers: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpAddRequestHeadersW*(hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, dwModifiers: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpSendRequestA*(hRequest: HINTERNET, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, lpOptional: LPVOID, dwOptionalLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpSendRequestW*(hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, lpOptional: LPVOID, dwOptionalLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpSendRequestExA*(hRequest: HINTERNET, lpBuffersIn: LPINTERNET_BUFFERSA, lpBuffersOut: LPINTERNET_BUFFERSA, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpSendRequestExW*(hRequest: HINTERNET, lpBuffersIn: LPINTERNET_BUFFERSW, lpBuffersOut: LPINTERNET_BUFFERSW, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpEndRequestA*(hRequest: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSA, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpEndRequestW*(hRequest: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSW, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpQueryInfoA*(hRequest: HINTERNET, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD, lpdwIndex: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc HttpQueryInfoW*(hRequest: HINTERNET, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD, lpdwIndex: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetCookieA*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetCookieW*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetCookieA*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPSTR, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetCookieW*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPWSTR, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetCookieExA*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPCSTR, dwFlags: DWORD, dwReserved: DWORD_PTR): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetCookieExW*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD_PTR): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetCookieExA*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPSTR, lpdwSize: LPDWORD, dwFlags: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetCookieExW*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPWSTR, lpdwSize: LPDWORD, dwFlags: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetAttemptConnect*(dwReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCheckConnectionA*(lpszUrl: LPCSTR, dwFlags: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetCheckConnectionW*(lpszUrl: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc ResumeSuspendedDownload*(hRequest: HINTERNET, dwResultCode: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetErrorDlg*(hWnd: HWND, hRequest: HINTERNET, dwError: DWORD, dwFlags: DWORD, lppvData: ptr LPVOID): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetConfirmZoneCrossingA*(hWnd: HWND, szUrlPrev: LPSTR, szUrlNew: LPSTR, bPost: WINBOOL): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetConfirmZoneCrossingW*(hWnd: HWND, szUrlPrev: LPWSTR, szUrlNew: LPWSTR, bPost: WINBOOL): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc CreateUrlCacheEntryA*(lpszUrlName: LPCSTR, dwExpectedFileSize: DWORD, lpszFileExtension: LPCSTR, lpszFileName: LPSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc CreateUrlCacheEntryW*(lpszUrlName: LPCWSTR, dwExpectedFileSize: DWORD, lpszFileExtension: LPCWSTR, lpszFileName: LPWSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc CommitUrlCacheEntryA*(lpszUrlName: LPCSTR, lpszLocalFileName: LPCSTR, ExpireTime: FILETIME, LastModifiedTime: FILETIME, CacheEntryType: DWORD, lpHeaderInfo: LPBYTE, dwHeaderSize: DWORD, lpszFileExtension: LPCSTR, lpszOriginalUrl: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc CommitUrlCacheEntryW*(lpszUrlName: LPCWSTR, lpszLocalFileName: LPCWSTR, ExpireTime: FILETIME, LastModifiedTime: FILETIME, CacheEntryType: DWORD, lpszHeaderInfo: LPWSTR, dwHeaders: DWORD, lpszFileExtension: LPCWSTR, lpszOriginalUrl: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc RetrieveUrlCacheEntryFileA*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc RetrieveUrlCacheEntryFileW*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc UnlockUrlCacheEntryFileA*(lpszUrlName: LPCSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc UnlockUrlCacheEntryFileW*(lpszUrlName: LPCWSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc RetrieveUrlCacheEntryStreamA*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD, fRandomRead: WINBOOL, dwReserved: DWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc RetrieveUrlCacheEntryStreamW*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD, fRandomRead: WINBOOL, dwReserved: DWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc ReadUrlCacheEntryStream*(hUrlCacheStream: HANDLE, dwLocation: DWORD, lpBuffer: LPVOID, lpdwLen: LPDWORD, Reserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc UnlockUrlCacheEntryStream*(hUrlCacheStream: HANDLE, Reserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GetUrlCacheEntryInfoA*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GetUrlCacheEntryInfoW*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindFirstUrlCacheGroup*(dwFlags: DWORD, dwFilter: DWORD, lpSearchCondition: LPVOID, dwSearchCondition: DWORD, lpGroupId: ptr GROUPID, lpReserved: LPVOID): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindNextUrlCacheGroup*(hFind: HANDLE, lpGroupId: ptr GROUPID, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GetUrlCacheGroupAttributeA*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, lpdwGroupInfo: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GetUrlCacheGroupAttributeW*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, lpdwGroupInfo: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc SetUrlCacheGroupAttributeA*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc SetUrlCacheGroupAttributeW*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc CreateUrlCacheGroup*(dwFlags: DWORD, lpReserved: LPVOID): GROUPID {.winapi, stdcall, dynlib: "wininet", importc.} -proc DeleteUrlCacheGroup*(GroupId: GROUPID, dwFlags: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GetUrlCacheEntryInfoExA*(lpszUrl: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD, lpszRedirectUrl: LPSTR, lpcbRedirectUrl: LPDWORD, lpReserved: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc GetUrlCacheEntryInfoExW*(lpszUrl: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD, lpszRedirectUrl: LPWSTR, lpcbRedirectUrl: LPDWORD, lpReserved: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc SetUrlCacheEntryInfoA*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, dwFieldControl: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc SetUrlCacheEntryInfoW*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, dwFieldControl: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc SetUrlCacheEntryGroupA*(lpszUrlName: LPCSTR, dwFlags: DWORD, GroupId: GROUPID, pbGroupAttributes: LPBYTE, cbGroupAttributes: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc SetUrlCacheEntryGroupW*(lpszUrlName: LPCWSTR, dwFlags: DWORD, GroupId: GROUPID, pbGroupAttributes: LPBYTE, cbGroupAttributes: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindFirstUrlCacheEntryExA*(lpszUrlSearchPattern: LPCSTR, dwFlags: DWORD, dwFilter: DWORD, GroupId: GROUPID, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindFirstUrlCacheEntryExW*(lpszUrlSearchPattern: LPCWSTR, dwFlags: DWORD, dwFilter: DWORD, GroupId: GROUPID, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindNextUrlCacheEntryExA*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindNextUrlCacheEntryExW*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindFirstUrlCacheEntryA*(lpszUrlSearchPattern: LPCSTR, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindFirstUrlCacheEntryW*(lpszUrlSearchPattern: LPCWSTR, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindNextUrlCacheEntryA*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindNextUrlCacheEntryW*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc FindCloseUrlCache*(hEnumHandle: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc DeleteUrlCacheEntryA*(lpszUrlName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc DeleteUrlCacheEntryW*(lpszUrlName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetDialA*(hwndParent: HWND, lpszConnectoid: LPSTR, dwFlags: DWORD, lpdwConnection: ptr DWORD_PTR, dwReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetDialW*(hwndParent: HWND, lpszConnectoid: LPWSTR, dwFlags: DWORD, lpdwConnection: ptr DWORD_PTR, dwReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetHangUp*(dwConnection: DWORD_PTR, dwReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGoOnlineA*(lpszURL: LPSTR, hwndParent: HWND, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGoOnlineW*(lpszURL: LPWSTR, hwndParent: HWND, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetAutodial*(dwFlags: DWORD, hwndParent: HWND): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetAutodialHangup*(dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetConnectedState*(lpdwFlags: LPDWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetConnectedStateExA*(lpdwFlags: LPDWORD, lpszConnectionName: LPSTR, dwBufLen: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetConnectedStateExW*(lpdwFlags: LPDWORD, lpszConnectionName: LPWSTR, dwBufLen: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetInitializeAutoProxyDll*(dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc DetectAutoProxyUrl*(lpszAutoProxyUrl: LPSTR, dwAutoProxyUrlLength: DWORD, dwDetectFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc CreateMD5SSOHash*(pszChallengeInfo: PWSTR, pwszRealm: PWSTR, pwszTarget: PWSTR, pbHexHash: PBYTE): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetDialStateA*(lpszConnectoid: LPCSTR, dwState: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetDialStateW*(lpszConnectoid: LPCWSTR, dwState: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetPerSiteCookieDecisionA*(pchHostName: LPCSTR, dwDecision: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetSetPerSiteCookieDecisionW*(pchHostName: LPCWSTR, dwDecision: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetPerSiteCookieDecisionA*(pchHostName: LPCSTR, pResult: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetGetPerSiteCookieDecisionW*(pchHostName: LPCWSTR, pResult: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetClearAllPerSiteCookieDecisions*(): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetEnumPerSiteCookieDecisionA*(pszSiteName: LPSTR, pcSiteNameSize: ptr int32, pdwDecision: ptr int32, dwIndex: int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc InternetEnumPerSiteCookieDecisionW*(pszSiteName: LPWSTR, pcSiteNameSize: ptr int32, pdwDecision: ptr int32, dwIndex: int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} -proc PrivacySetZonePreferenceW*(dwZone: DWORD, dwType: DWORD, dwTemplate: DWORD, pszPreference: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc PrivacyGetZonePreferenceW*(dwZone: DWORD, dwType: DWORD, pdwTemplate: LPDWORD, pszBuffer: LPWSTR, pdwBufferLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} -proc `dwReserved=`*(self: var INTERNET_CACHE_ENTRY_INFOA, x: DWORD) {.inline.} = self.union1.dwReserved = x -proc dwReserved*(self: INTERNET_CACHE_ENTRY_INFOA): DWORD {.inline.} = self.union1.dwReserved -proc dwReserved*(self: var INTERNET_CACHE_ENTRY_INFOA): var DWORD {.inline.} = self.union1.dwReserved -proc `dwExemptDelta=`*(self: var INTERNET_CACHE_ENTRY_INFOA, x: DWORD) {.inline.} = self.union1.dwExemptDelta = x -proc dwExemptDelta*(self: INTERNET_CACHE_ENTRY_INFOA): DWORD {.inline.} = self.union1.dwExemptDelta -proc dwExemptDelta*(self: var INTERNET_CACHE_ENTRY_INFOA): var DWORD {.inline.} = self.union1.dwExemptDelta -proc `dwReserved=`*(self: var INTERNET_CACHE_ENTRY_INFOW, x: DWORD) {.inline.} = self.union1.dwReserved = x -proc dwReserved*(self: INTERNET_CACHE_ENTRY_INFOW): DWORD {.inline.} = self.union1.dwReserved -proc dwReserved*(self: var INTERNET_CACHE_ENTRY_INFOW): var DWORD {.inline.} = self.union1.dwReserved -proc `dwExemptDelta=`*(self: var INTERNET_CACHE_ENTRY_INFOW, x: DWORD) {.inline.} = self.union1.dwExemptDelta = x -proc dwExemptDelta*(self: INTERNET_CACHE_ENTRY_INFOW): DWORD {.inline.} = self.union1.dwExemptDelta -proc dwExemptDelta*(self: var INTERNET_CACHE_ENTRY_INFOW): var DWORD {.inline.} = self.union1.dwExemptDelta + GetIPAddress*: + proc(lpszIPAddress: LPSTR, lpdwIPAddressSize: LPDWORD): DWORD {.stdcall.} + ResolveHostName*: proc( + lpszHostName: LPSTR, lpszIPAddress: LPSTR, lpdwIPAddressSize: LPDWORD + ): DWORD {.stdcall.} + IsInNet*: + proc(lpszIPAddress: LPSTR, lpszDest: LPSTR, lpszMask: LPSTR): WINBOOL {.stdcall.} + +proc InternetTimeFromSystemTimeA*( + pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPSTR, cbTime: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetTimeFromSystemTimeW*( + pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPWSTR, cbTime: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetTimeToSystemTimeA*( + lpszTime: LPCSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetTimeToSystemTimeW*( + lpszTime: LPCWSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCrackUrlA*( + lpszUrl: LPCSTR, + dwUrlLength: DWORD, + dwFlags: DWORD, + lpUrlComponents: LPURL_COMPONENTSA, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCrackUrlW*( + lpszUrl: LPCWSTR, + dwUrlLength: DWORD, + dwFlags: DWORD, + lpUrlComponents: LPURL_COMPONENTSW, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCreateUrlA*( + lpUrlComponents: LPURL_COMPONENTSA, + dwFlags: DWORD, + lpszUrl: LPSTR, + lpdwUrlLength: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCreateUrlW*( + lpUrlComponents: LPURL_COMPONENTSW, + dwFlags: DWORD, + lpszUrl: LPWSTR, + lpdwUrlLength: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCanonicalizeUrlA*( + lpszUrl: LPCSTR, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCanonicalizeUrlW*( + lpszUrl: LPCWSTR, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCombineUrlA*( + lpszBaseUrl: LPCSTR, + lpszRelativeUrl: LPCSTR, + lpszBuffer: LPSTR, + lpdwBufferLength: LPDWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCombineUrlW*( + lpszBaseUrl: LPCWSTR, + lpszRelativeUrl: LPCWSTR, + lpszBuffer: LPWSTR, + lpdwBufferLength: LPDWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetOpenA*( + lpszAgent: LPCSTR, + dwAccessType: DWORD, + lpszProxy: LPCSTR, + lpszProxyBypass: LPCSTR, + dwFlags: DWORD, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetOpenW*( + lpszAgent: LPCWSTR, + dwAccessType: DWORD, + lpszProxy: LPCWSTR, + lpszProxyBypass: LPCWSTR, + dwFlags: DWORD, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCloseHandle*( + hInternet: HINTERNET +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetConnectA*( + hInternet: HINTERNET, + lpszServerName: LPCSTR, + nServerPort: INTERNET_PORT, + lpszUserName: LPCSTR, + lpszPassword: LPCSTR, + dwService: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetConnectW*( + hInternet: HINTERNET, + lpszServerName: LPCWSTR, + nServerPort: INTERNET_PORT, + lpszUserName: LPCWSTR, + lpszPassword: LPCWSTR, + dwService: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetOpenUrlA*( + hInternet: HINTERNET, + lpszUrl: LPCSTR, + lpszHeaders: LPCSTR, + dwHeadersLength: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetOpenUrlW*( + hInternet: HINTERNET, + lpszUrl: LPCWSTR, + lpszHeaders: LPCWSTR, + dwHeadersLength: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetReadFile*( + hFile: HINTERNET, + lpBuffer: LPVOID, + dwNumberOfBytesToRead: DWORD, + lpdwNumberOfBytesRead: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetReadFileExA*( + hFile: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSA, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetReadFileExW*( + hFile: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSW, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetFilePointer*( + hFile: HINTERNET, + lDistanceToMove: LONG, + pReserved: PVOID, + dwMoveMethod: DWORD, + dwContext: DWORD_PTR, +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetWriteFile*( + hFile: HINTERNET, + lpBuffer: LPCVOID, + dwNumberOfBytesToWrite: DWORD, + lpdwNumberOfBytesWritten: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetQueryDataAvailable*( + hFile: HINTERNET, + lpdwNumberOfBytesAvailable: LPDWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetFindNextFileA*( + hFind: HINTERNET, lpvFindData: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetFindNextFileW*( + hFind: HINTERNET, lpvFindData: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetQueryOptionA*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetQueryOptionW*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetOptionA*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetOptionW*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetOptionExA*( + hInternet: HINTERNET, + dwOption: DWORD, + lpBuffer: LPVOID, + dwBufferLength: DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetOptionExW*( + hInternet: HINTERNET, + dwOption: DWORD, + lpBuffer: LPVOID, + dwBufferLength: DWORD, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetLockRequestFile*( + hInternet: HINTERNET, lphLockRequestInfo: ptr HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetUnlockRequestFile*( + hLockRequestInfo: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetLastResponseInfoA*( + lpdwError: LPDWORD, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetLastResponseInfoW*( + lpdwError: LPDWORD, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetStatusCallbackA*( + hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK +): INTERNET_STATUS_CALLBACK {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetStatusCallbackW*( + hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK +): INTERNET_STATUS_CALLBACK {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpFindFirstFileA*( + hConnect: HINTERNET, + lpszSearchFile: LPCSTR, + lpFindFileData: LPWIN32_FIND_DATAA, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpFindFirstFileW*( + hConnect: HINTERNET, + lpszSearchFile: LPCWSTR, + lpFindFileData: LPWIN32_FIND_DATAW, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpGetFileA*( + hConnect: HINTERNET, + lpszRemoteFile: LPCSTR, + lpszNewFile: LPCSTR, + fFailIfExists: WINBOOL, + dwFlagsAndAttributes: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpGetFileW*( + hConnect: HINTERNET, + lpszRemoteFile: LPCWSTR, + lpszNewFile: LPCWSTR, + fFailIfExists: WINBOOL, + dwFlagsAndAttributes: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpPutFileA*( + hConnect: HINTERNET, + lpszLocalFile: LPCSTR, + lpszNewRemoteFile: LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpPutFileW*( + hConnect: HINTERNET, + lpszLocalFile: LPCWSTR, + lpszNewRemoteFile: LPCWSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpGetFileEx*( + hFtpSession: HINTERNET, + lpszRemoteFile: LPCSTR, + lpszNewFile: LPCWSTR, + fFailIfExists: WINBOOL, + dwFlagsAndAttributes: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpPutFileEx*( + hFtpSession: HINTERNET, + lpszLocalFile: LPCWSTR, + lpszNewRemoteFile: LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpDeleteFileA*( + hConnect: HINTERNET, lpszFileName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpDeleteFileW*( + hConnect: HINTERNET, lpszFileName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpRenameFileA*( + hConnect: HINTERNET, lpszExisting: LPCSTR, lpszNew: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpRenameFileW*( + hConnect: HINTERNET, lpszExisting: LPCWSTR, lpszNew: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpOpenFileA*( + hConnect: HINTERNET, + lpszFileName: LPCSTR, + dwAccess: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpOpenFileW*( + hConnect: HINTERNET, + lpszFileName: LPCWSTR, + dwAccess: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpCreateDirectoryA*( + hConnect: HINTERNET, lpszDirectory: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpCreateDirectoryW*( + hConnect: HINTERNET, lpszDirectory: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpRemoveDirectoryA*( + hConnect: HINTERNET, lpszDirectory: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpRemoveDirectoryW*( + hConnect: HINTERNET, lpszDirectory: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpSetCurrentDirectoryA*( + hConnect: HINTERNET, lpszDirectory: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpSetCurrentDirectoryW*( + hConnect: HINTERNET, lpszDirectory: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpGetCurrentDirectoryA*( + hConnect: HINTERNET, lpszCurrentDirectory: LPSTR, lpdwCurrentDirectory: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpGetCurrentDirectoryW*( + hConnect: HINTERNET, lpszCurrentDirectory: LPWSTR, lpdwCurrentDirectory: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpCommandA*( + hConnect: HINTERNET, + fExpectResponse: WINBOOL, + dwFlags: DWORD, + lpszCommand: LPCSTR, + dwContext: DWORD_PTR, + phFtpCommand: ptr HINTERNET, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpCommandW*( + hConnect: HINTERNET, + fExpectResponse: WINBOOL, + dwFlags: DWORD, + lpszCommand: LPCWSTR, + dwContext: DWORD_PTR, + phFtpCommand: ptr HINTERNET, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FtpGetFileSize*( + hFile: HINTERNET, lpdwFileSizeHigh: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherCreateLocatorA*( + lpszHost: LPCSTR, + nServerPort: INTERNET_PORT, + lpszDisplayString: LPCSTR, + lpszSelectorString: LPCSTR, + dwGopherType: DWORD, + lpszLocator: LPSTR, + lpdwBufferLength: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherCreateLocatorW*( + lpszHost: LPCWSTR, + nServerPort: INTERNET_PORT, + lpszDisplayString: LPCWSTR, + lpszSelectorString: LPCWSTR, + dwGopherType: DWORD, + lpszLocator: LPWSTR, + lpdwBufferLength: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherGetLocatorTypeA*( + lpszLocator: LPCSTR, lpdwGopherType: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherGetLocatorTypeW*( + lpszLocator: LPCWSTR, lpdwGopherType: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherFindFirstFileA*( + hConnect: HINTERNET, + lpszLocator: LPCSTR, + lpszSearchString: LPCSTR, + lpFindData: LPGOPHER_FIND_DATAA, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherFindFirstFileW*( + hConnect: HINTERNET, + lpszLocator: LPCWSTR, + lpszSearchString: LPCWSTR, + lpFindData: LPGOPHER_FIND_DATAW, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherOpenFileA*( + hConnect: HINTERNET, + lpszLocator: LPCSTR, + lpszView: LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherOpenFileW*( + hConnect: HINTERNET, + lpszLocator: LPCWSTR, + lpszView: LPCWSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherGetAttributeA*( + hConnect: HINTERNET, + lpszLocator: LPCSTR, + lpszAttributeName: LPCSTR, + lpBuffer: LPBYTE, + dwBufferLength: DWORD, + lpdwCharactersReturned: LPDWORD, + lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GopherGetAttributeW*( + hConnect: HINTERNET, + lpszLocator: LPCWSTR, + lpszAttributeName: LPCWSTR, + lpBuffer: LPBYTE, + dwBufferLength: DWORD, + lpdwCharactersReturned: LPDWORD, + lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpOpenRequestA*( + hConnect: HINTERNET, + lpszVerb: LPCSTR, + lpszObjectName: LPCSTR, + lpszVersion: LPCSTR, + lpszReferrer: LPCSTR, + lplpszAcceptTypes: ptr LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpOpenRequestW*( + hConnect: HINTERNET, + lpszVerb: LPCWSTR, + lpszObjectName: LPCWSTR, + lpszVersion: LPCWSTR, + lpszReferrer: LPCWSTR, + lplpszAcceptTypes: ptr LPCWSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpAddRequestHeadersA*( + hRequest: HINTERNET, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, dwModifiers: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpAddRequestHeadersW*( + hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, dwModifiers: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpSendRequestA*( + hRequest: HINTERNET, + lpszHeaders: LPCSTR, + dwHeadersLength: DWORD, + lpOptional: LPVOID, + dwOptionalLength: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpSendRequestW*( + hRequest: HINTERNET, + lpszHeaders: LPCWSTR, + dwHeadersLength: DWORD, + lpOptional: LPVOID, + dwOptionalLength: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpSendRequestExA*( + hRequest: HINTERNET, + lpBuffersIn: LPINTERNET_BUFFERSA, + lpBuffersOut: LPINTERNET_BUFFERSA, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpSendRequestExW*( + hRequest: HINTERNET, + lpBuffersIn: LPINTERNET_BUFFERSW, + lpBuffersOut: LPINTERNET_BUFFERSW, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpEndRequestA*( + hRequest: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSA, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpEndRequestW*( + hRequest: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSW, + dwFlags: DWORD, + dwContext: DWORD_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpQueryInfoA*( + hRequest: HINTERNET, + dwInfoLevel: DWORD, + lpBuffer: LPVOID, + lpdwBufferLength: LPDWORD, + lpdwIndex: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc HttpQueryInfoW*( + hRequest: HINTERNET, + dwInfoLevel: DWORD, + lpBuffer: LPVOID, + lpdwBufferLength: LPDWORD, + lpdwIndex: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetCookieA*( + lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetCookieW*( + lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetCookieA*( + lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPSTR, lpdwSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetCookieW*( + lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPWSTR, lpdwSize: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetCookieExA*( + lpszUrl: LPCSTR, + lpszCookieName: LPCSTR, + lpszCookieData: LPCSTR, + dwFlags: DWORD, + dwReserved: DWORD_PTR, +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetCookieExW*( + lpszUrl: LPCWSTR, + lpszCookieName: LPCWSTR, + lpszCookieData: LPCWSTR, + dwFlags: DWORD, + dwReserved: DWORD_PTR, +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetCookieExA*( + lpszUrl: LPCSTR, + lpszCookieName: LPCSTR, + lpszCookieData: LPSTR, + lpdwSize: LPDWORD, + dwFlags: DWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetCookieExW*( + lpszUrl: LPCWSTR, + lpszCookieName: LPCWSTR, + lpszCookieData: LPWSTR, + lpdwSize: LPDWORD, + dwFlags: DWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetAttemptConnect*( + dwReserved: DWORD +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCheckConnectionA*( + lpszUrl: LPCSTR, dwFlags: DWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetCheckConnectionW*( + lpszUrl: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc ResumeSuspendedDownload*( + hRequest: HINTERNET, dwResultCode: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetErrorDlg*( + hWnd: HWND, hRequest: HINTERNET, dwError: DWORD, dwFlags: DWORD, lppvData: ptr LPVOID +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetConfirmZoneCrossingA*( + hWnd: HWND, szUrlPrev: LPSTR, szUrlNew: LPSTR, bPost: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetConfirmZoneCrossingW*( + hWnd: HWND, szUrlPrev: LPWSTR, szUrlNew: LPWSTR, bPost: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc CreateUrlCacheEntryA*( + lpszUrlName: LPCSTR, + dwExpectedFileSize: DWORD, + lpszFileExtension: LPCSTR, + lpszFileName: LPSTR, + dwReserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc CreateUrlCacheEntryW*( + lpszUrlName: LPCWSTR, + dwExpectedFileSize: DWORD, + lpszFileExtension: LPCWSTR, + lpszFileName: LPWSTR, + dwReserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc CommitUrlCacheEntryA*( + lpszUrlName: LPCSTR, + lpszLocalFileName: LPCSTR, + ExpireTime: FILETIME, + LastModifiedTime: FILETIME, + CacheEntryType: DWORD, + lpHeaderInfo: LPBYTE, + dwHeaderSize: DWORD, + lpszFileExtension: LPCSTR, + lpszOriginalUrl: LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc CommitUrlCacheEntryW*( + lpszUrlName: LPCWSTR, + lpszLocalFileName: LPCWSTR, + ExpireTime: FILETIME, + LastModifiedTime: FILETIME, + CacheEntryType: DWORD, + lpszHeaderInfo: LPWSTR, + dwHeaders: DWORD, + lpszFileExtension: LPCWSTR, + lpszOriginalUrl: LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc RetrieveUrlCacheEntryFileA*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + dwReserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc RetrieveUrlCacheEntryFileW*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + dwReserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc UnlockUrlCacheEntryFileA*( + lpszUrlName: LPCSTR, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc UnlockUrlCacheEntryFileW*( + lpszUrlName: LPCWSTR, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc RetrieveUrlCacheEntryStreamA*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + fRandomRead: WINBOOL, + dwReserved: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc RetrieveUrlCacheEntryStreamW*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + fRandomRead: WINBOOL, + dwReserved: DWORD, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc ReadUrlCacheEntryStream*( + hUrlCacheStream: HANDLE, + dwLocation: DWORD, + lpBuffer: LPVOID, + lpdwLen: LPDWORD, + Reserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc UnlockUrlCacheEntryStream*( + hUrlCacheStream: HANDLE, Reserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GetUrlCacheEntryInfoA*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GetUrlCacheEntryInfoW*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindFirstUrlCacheGroup*( + dwFlags: DWORD, + dwFilter: DWORD, + lpSearchCondition: LPVOID, + dwSearchCondition: DWORD, + lpGroupId: ptr GROUPID, + lpReserved: LPVOID, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindNextUrlCacheGroup*( + hFind: HANDLE, lpGroupId: ptr GROUPID, lpReserved: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GetUrlCacheGroupAttributeA*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, + lpdwGroupInfo: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GetUrlCacheGroupAttributeW*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, + lpdwGroupInfo: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc SetUrlCacheGroupAttributeA*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc SetUrlCacheGroupAttributeW*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc CreateUrlCacheGroup*( + dwFlags: DWORD, lpReserved: LPVOID +): GROUPID {.winapi, stdcall, dynlib: "wininet", importc.} + +proc DeleteUrlCacheGroup*( + GroupId: GROUPID, dwFlags: DWORD, lpReserved: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GetUrlCacheEntryInfoExA*( + lpszUrl: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + lpszRedirectUrl: LPSTR, + lpcbRedirectUrl: LPDWORD, + lpReserved: LPVOID, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc GetUrlCacheEntryInfoExW*( + lpszUrl: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + lpszRedirectUrl: LPWSTR, + lpcbRedirectUrl: LPDWORD, + lpReserved: LPVOID, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc SetUrlCacheEntryInfoA*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + dwFieldControl: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc SetUrlCacheEntryInfoW*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + dwFieldControl: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc SetUrlCacheEntryGroupA*( + lpszUrlName: LPCSTR, + dwFlags: DWORD, + GroupId: GROUPID, + pbGroupAttributes: LPBYTE, + cbGroupAttributes: DWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc SetUrlCacheEntryGroupW*( + lpszUrlName: LPCWSTR, + dwFlags: DWORD, + GroupId: GROUPID, + pbGroupAttributes: LPBYTE, + cbGroupAttributes: DWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindFirstUrlCacheEntryExA*( + lpszUrlSearchPattern: LPCSTR, + dwFlags: DWORD, + dwFilter: DWORD, + GroupId: GROUPID, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindFirstUrlCacheEntryExW*( + lpszUrlSearchPattern: LPCWSTR, + dwFlags: DWORD, + dwFilter: DWORD, + GroupId: GROUPID, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindNextUrlCacheEntryExA*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindNextUrlCacheEntryExW*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindFirstUrlCacheEntryA*( + lpszUrlSearchPattern: LPCSTR, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindFirstUrlCacheEntryW*( + lpszUrlSearchPattern: LPCWSTR, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, +): HANDLE {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindNextUrlCacheEntryA*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindNextUrlCacheEntryW*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc FindCloseUrlCache*( + hEnumHandle: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc DeleteUrlCacheEntryA*( + lpszUrlName: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc DeleteUrlCacheEntryW*( + lpszUrlName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetDialA*( + hwndParent: HWND, + lpszConnectoid: LPSTR, + dwFlags: DWORD, + lpdwConnection: ptr DWORD_PTR, + dwReserved: DWORD, +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetDialW*( + hwndParent: HWND, + lpszConnectoid: LPWSTR, + dwFlags: DWORD, + lpdwConnection: ptr DWORD_PTR, + dwReserved: DWORD, +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetHangUp*( + dwConnection: DWORD_PTR, dwReserved: DWORD +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGoOnlineA*( + lpszURL: LPSTR, hwndParent: HWND, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGoOnlineW*( + lpszURL: LPWSTR, hwndParent: HWND, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetAutodial*( + dwFlags: DWORD, hwndParent: HWND +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetAutodialHangup*( + dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetConnectedState*( + lpdwFlags: LPDWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetConnectedStateExA*( + lpdwFlags: LPDWORD, lpszConnectionName: LPSTR, dwBufLen: DWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetConnectedStateExW*( + lpdwFlags: LPDWORD, lpszConnectionName: LPWSTR, dwBufLen: DWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetInitializeAutoProxyDll*( + dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc DetectAutoProxyUrl*( + lpszAutoProxyUrl: LPSTR, dwAutoProxyUrlLength: DWORD, dwDetectFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc CreateMD5SSOHash*( + pszChallengeInfo: PWSTR, pwszRealm: PWSTR, pwszTarget: PWSTR, pbHexHash: PBYTE +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetDialStateA*( + lpszConnectoid: LPCSTR, dwState: DWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetDialStateW*( + lpszConnectoid: LPCWSTR, dwState: DWORD, dwReserved: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetPerSiteCookieDecisionA*( + pchHostName: LPCSTR, dwDecision: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetSetPerSiteCookieDecisionW*( + pchHostName: LPCWSTR, dwDecision: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetPerSiteCookieDecisionA*( + pchHostName: LPCSTR, pResult: ptr int32 +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetGetPerSiteCookieDecisionW*( + pchHostName: LPCWSTR, pResult: ptr int32 +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetClearAllPerSiteCookieDecisions*(): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc +.} + +proc InternetEnumPerSiteCookieDecisionA*( + pszSiteName: LPSTR, pcSiteNameSize: ptr int32, pdwDecision: ptr int32, dwIndex: int32 +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc InternetEnumPerSiteCookieDecisionW*( + pszSiteName: LPWSTR, pcSiteNameSize: ptr int32, pdwDecision: ptr int32, dwIndex: int32 +): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc.} + +proc PrivacySetZonePreferenceW*( + dwZone: DWORD, dwType: DWORD, dwTemplate: DWORD, pszPreference: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc PrivacyGetZonePreferenceW*( + dwZone: DWORD, + dwType: DWORD, + pdwTemplate: LPDWORD, + pszBuffer: LPWSTR, + pdwBufferLength: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "wininet", importc.} + +proc `dwReserved=`*(self: var INTERNET_CACHE_ENTRY_INFOA, x: DWORD) {.inline.} = + self.union1.dwReserved = x + +proc dwReserved*(self: INTERNET_CACHE_ENTRY_INFOA): DWORD {.inline.} = + self.union1.dwReserved + +proc dwReserved*(self: var INTERNET_CACHE_ENTRY_INFOA): var DWORD {.inline.} = + self.union1.dwReserved + +proc `dwExemptDelta=`*(self: var INTERNET_CACHE_ENTRY_INFOA, x: DWORD) {.inline.} = + self.union1.dwExemptDelta = x + +proc dwExemptDelta*(self: INTERNET_CACHE_ENTRY_INFOA): DWORD {.inline.} = + self.union1.dwExemptDelta + +proc dwExemptDelta*(self: var INTERNET_CACHE_ENTRY_INFOA): var DWORD {.inline.} = + self.union1.dwExemptDelta + +proc `dwReserved=`*(self: var INTERNET_CACHE_ENTRY_INFOW, x: DWORD) {.inline.} = + self.union1.dwReserved = x + +proc dwReserved*(self: INTERNET_CACHE_ENTRY_INFOW): DWORD {.inline.} = + self.union1.dwReserved + +proc dwReserved*(self: var INTERNET_CACHE_ENTRY_INFOW): var DWORD {.inline.} = + self.union1.dwReserved + +proc `dwExemptDelta=`*(self: var INTERNET_CACHE_ENTRY_INFOW, x: DWORD) {.inline.} = + self.union1.dwExemptDelta = x + +proc dwExemptDelta*(self: INTERNET_CACHE_ENTRY_INFOW): DWORD {.inline.} = + self.union1.dwExemptDelta + +proc dwExemptDelta*(self: var INTERNET_CACHE_ENTRY_INFOW): var DWORD {.inline.} = + self.union1.dwExemptDelta + when winimUnicode: type INTERNET_PER_CONN_OPTION* = INTERNET_PER_CONN_OPTIONW @@ -1277,73 +2288,480 @@ LPINTERNET_CACHE_ENTRY_INFO* = LPINTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_GROUP_INFO* = INTERNET_CACHE_GROUP_INFOW LPINTERNET_CACHE_GROUP_INFO* = LPINTERNET_CACHE_GROUP_INFOW - proc InternetCrackUrl*(lpszUrl: LPCWSTR, dwUrlLength: DWORD, dwFlags: DWORD, lpUrlComponents: LPURL_COMPONENTSW): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCrackUrlW".} - proc InternetCreateUrl*(lpUrlComponents: LPURL_COMPONENTSW, dwFlags: DWORD, lpszUrl: LPWSTR, lpdwUrlLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCreateUrlW".} - proc InternetCanonicalizeUrl*(lpszUrl: LPCWSTR, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCanonicalizeUrlW".} - proc InternetCombineUrl*(lpszBaseUrl: LPCWSTR, lpszRelativeUrl: LPCWSTR, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCombineUrlW".} - proc InternetOpen*(lpszAgent: LPCWSTR, dwAccessType: DWORD, lpszProxy: LPCWSTR, lpszProxyBypass: LPCWSTR, dwFlags: DWORD): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenW".} - proc InternetConnect*(hInternet: HINTERNET, lpszServerName: LPCWSTR, nServerPort: INTERNET_PORT, lpszUserName: LPCWSTR, lpszPassword: LPCWSTR, dwService: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetConnectW".} - proc InternetOpenUrl*(hInternet: HINTERNET, lpszUrl: LPCWSTR, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenUrlW".} - proc InternetReadFileEx*(hFile: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSW, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetReadFileExW".} - proc InternetFindNextFile*(hFind: HINTERNET, lpvFindData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetFindNextFileW".} - proc InternetQueryOption*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetQueryOptionW".} - proc InternetSetOption*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionW".} - proc InternetSetOptionEx*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionExW".} - proc InternetGetLastResponseInfo*(lpdwError: LPDWORD, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetLastResponseInfoW".} - proc FtpFindFirstFile*(hConnect: HINTERNET, lpszSearchFile: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpFindFirstFileW".} - proc FtpGetFile*(hConnect: HINTERNET, lpszRemoteFile: LPCWSTR, lpszNewFile: LPCWSTR, fFailIfExists: WINBOOL, dwFlagsAndAttributes: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetFileW".} - proc FtpPutFile*(hConnect: HINTERNET, lpszLocalFile: LPCWSTR, lpszNewRemoteFile: LPCWSTR, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpPutFileW".} - proc FtpDeleteFile*(hConnect: HINTERNET, lpszFileName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpDeleteFileW".} - proc FtpRenameFile*(hConnect: HINTERNET, lpszExisting: LPCWSTR, lpszNew: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRenameFileW".} - proc FtpOpenFile*(hConnect: HINTERNET, lpszFileName: LPCWSTR, dwAccess: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpOpenFileW".} - proc FtpCreateDirectory*(hConnect: HINTERNET, lpszDirectory: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCreateDirectoryW".} - proc FtpRemoveDirectory*(hConnect: HINTERNET, lpszDirectory: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRemoveDirectoryW".} - proc FtpSetCurrentDirectory*(hConnect: HINTERNET, lpszDirectory: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpSetCurrentDirectoryW".} - proc FtpGetCurrentDirectory*(hConnect: HINTERNET, lpszCurrentDirectory: LPWSTR, lpdwCurrentDirectory: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetCurrentDirectoryW".} - proc FtpCommand*(hConnect: HINTERNET, fExpectResponse: WINBOOL, dwFlags: DWORD, lpszCommand: LPCWSTR, dwContext: DWORD_PTR, phFtpCommand: ptr HINTERNET): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCommandW".} - proc GopherCreateLocator*(lpszHost: LPCWSTR, nServerPort: INTERNET_PORT, lpszDisplayString: LPCWSTR, lpszSelectorString: LPCWSTR, dwGopherType: DWORD, lpszLocator: LPWSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherCreateLocatorW".} - proc GopherGetLocatorType*(lpszLocator: LPCWSTR, lpdwGopherType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetLocatorTypeW".} - proc GopherFindFirstFile*(hConnect: HINTERNET, lpszLocator: LPCWSTR, lpszSearchString: LPCWSTR, lpFindData: LPGOPHER_FIND_DATAW, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherFindFirstFileW".} - proc GopherOpenFile*(hConnect: HINTERNET, lpszLocator: LPCWSTR, lpszView: LPCWSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherOpenFileW".} - proc GopherGetAttribute*(hConnect: HINTERNET, lpszLocator: LPCWSTR, lpszAttributeName: LPCWSTR, lpBuffer: LPBYTE, dwBufferLength: DWORD, lpdwCharactersReturned: LPDWORD, lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetAttributeW".} - proc HttpOpenRequest*(hConnect: HINTERNET, lpszVerb: LPCWSTR, lpszObjectName: LPCWSTR, lpszVersion: LPCWSTR, lpszReferrer: LPCWSTR, lplpszAcceptTypes: ptr LPCWSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "HttpOpenRequestW".} - proc HttpAddRequestHeaders*(hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, dwModifiers: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpAddRequestHeadersW".} - proc HttpSendRequest*(hRequest: HINTERNET, lpszHeaders: LPCWSTR, dwHeadersLength: DWORD, lpOptional: LPVOID, dwOptionalLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestW".} - proc HttpSendRequestEx*(hRequest: HINTERNET, lpBuffersIn: LPINTERNET_BUFFERSW, lpBuffersOut: LPINTERNET_BUFFERSW, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestExW".} - proc HttpEndRequest*(hRequest: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSW, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpEndRequestW".} - proc HttpQueryInfo*(hRequest: HINTERNET, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD, lpdwIndex: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpQueryInfoW".} - proc InternetSetCookie*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieW".} - proc InternetGetCookie*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPWSTR, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieW".} - proc InternetSetCookieEx*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD_PTR): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieExW".} - proc InternetGetCookieEx*(lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPWSTR, lpdwSize: LPDWORD, dwFlags: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieExW".} - proc InternetCheckConnection*(lpszUrl: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCheckConnectionW".} - proc CreateUrlCacheEntry*(lpszUrlName: LPCWSTR, dwExpectedFileSize: DWORD, lpszFileExtension: LPCWSTR, lpszFileName: LPWSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CreateUrlCacheEntryW".} - proc CommitUrlCacheEntry*(lpszUrlName: LPCWSTR, lpszLocalFileName: LPCWSTR, ExpireTime: FILETIME, LastModifiedTime: FILETIME, CacheEntryType: DWORD, lpszHeaderInfo: LPWSTR, dwHeaders: DWORD, lpszFileExtension: LPCWSTR, lpszOriginalUrl: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CommitUrlCacheEntryW".} - proc RetrieveUrlCacheEntryFile*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryFileW".} - proc UnlockUrlCacheEntryFile*(lpszUrlName: LPCWSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "UnlockUrlCacheEntryFileW".} - proc RetrieveUrlCacheEntryStream*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD, fRandomRead: WINBOOL, dwReserved: DWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryStreamW".} - proc GetUrlCacheEntryInfo*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoW".} - proc GetUrlCacheGroupAttribute*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, lpdwGroupInfo: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheGroupAttributeW".} - proc SetUrlCacheGroupAttribute*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheGroupAttributeW".} - proc GetUrlCacheEntryInfoEx*(lpszUrl: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD, lpszRedirectUrl: LPWSTR, lpcbRedirectUrl: LPDWORD, lpReserved: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoExW".} - proc SetUrlCacheEntryInfo*(lpszUrlName: LPCWSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, dwFieldControl: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryInfoW".} - proc FindFirstUrlCacheEntryEx*(lpszUrlSearchPattern: LPCWSTR, dwFlags: DWORD, dwFilter: DWORD, GroupId: GROUPID, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryExW".} - proc FindNextUrlCacheEntryEx*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryExW".} - proc FindFirstUrlCacheEntry*(lpszUrlSearchPattern: LPCWSTR, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryW".} - proc FindNextUrlCacheEntry*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryW".} - proc InternetSetPerSiteCookieDecision*(pchHostName: LPCWSTR, dwDecision: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetPerSiteCookieDecisionW".} - proc InternetGetPerSiteCookieDecision*(pchHostName: LPCWSTR, pResult: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetPerSiteCookieDecisionW".} - proc InternetEnumPerSiteCookieDecision*(pszSiteName: LPWSTR, pcSiteNameSize: ptr int32, pdwDecision: ptr int32, dwIndex: int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetEnumPerSiteCookieDecisionW".} - proc InternetTimeFromSystemTime*(pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPWSTR, cbTime: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetTimeFromSystemTimeW".} - proc InternetTimeToSystemTime*(lpszTime: LPCWSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetTimeToSystemTimeW".} - proc InternetSetStatusCallback*(hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK): INTERNET_STATUS_CALLBACK {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetStatusCallbackW".} - proc InternetConfirmZoneCrossing*(hWnd: HWND, szUrlPrev: LPWSTR, szUrlNew: LPWSTR, bPost: WINBOOL): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetConfirmZoneCrossingW".} - proc InternetDial*(hwndParent: HWND, lpszConnectoid: LPWSTR, dwFlags: DWORD, lpdwConnection: ptr DWORD_PTR, dwReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetDialW".} - proc InternetGoOnline*(lpszURL: LPWSTR, hwndParent: HWND, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGoOnlineW".} - proc DeleteUrlCacheEntry*(lpszUrlName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "DeleteUrlCacheEntryW".} - proc SetUrlCacheEntryGroup*(lpszUrlName: LPCWSTR, dwFlags: DWORD, GroupId: GROUPID, pbGroupAttributes: LPBYTE, cbGroupAttributes: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryGroupW".} - proc InternetSetDialState*(lpszConnectoid: LPCWSTR, dwState: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetDialStateW".} - proc InternetGetConnectedStateEx*(lpdwFlags: LPDWORD, lpszConnectionName: LPWSTR, dwBufLen: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetConnectedStateExW".} + + proc InternetCrackUrl*( + lpszUrl: LPCWSTR, + dwUrlLength: DWORD, + dwFlags: DWORD, + lpUrlComponents: LPURL_COMPONENTSW, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCrackUrlW".} + + proc InternetCreateUrl*( + lpUrlComponents: LPURL_COMPONENTSW, + dwFlags: DWORD, + lpszUrl: LPWSTR, + lpdwUrlLength: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCreateUrlW".} + + proc InternetCanonicalizeUrl*( + lpszUrl: LPCWSTR, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCanonicalizeUrlW".} + + proc InternetCombineUrl*( + lpszBaseUrl: LPCWSTR, + lpszRelativeUrl: LPCWSTR, + lpszBuffer: LPWSTR, + lpdwBufferLength: LPDWORD, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCombineUrlW".} + + proc InternetOpen*( + lpszAgent: LPCWSTR, + dwAccessType: DWORD, + lpszProxy: LPCWSTR, + lpszProxyBypass: LPCWSTR, + dwFlags: DWORD, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenW".} + + proc InternetConnect*( + hInternet: HINTERNET, + lpszServerName: LPCWSTR, + nServerPort: INTERNET_PORT, + lpszUserName: LPCWSTR, + lpszPassword: LPCWSTR, + dwService: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetConnectW".} + + proc InternetOpenUrl*( + hInternet: HINTERNET, + lpszUrl: LPCWSTR, + lpszHeaders: LPCWSTR, + dwHeadersLength: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenUrlW".} + + proc InternetReadFileEx*( + hFile: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSW, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetReadFileExW".} + + proc InternetFindNextFile*( + hFind: HINTERNET, lpvFindData: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetFindNextFileW".} + + proc InternetQueryOption*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetQueryOptionW".} + + proc InternetSetOption*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionW".} + + proc InternetSetOptionEx*( + hInternet: HINTERNET, + dwOption: DWORD, + lpBuffer: LPVOID, + dwBufferLength: DWORD, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionExW".} + + proc InternetGetLastResponseInfo*( + lpdwError: LPDWORD, lpszBuffer: LPWSTR, lpdwBufferLength: LPDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetGetLastResponseInfoW" + .} + + proc FtpFindFirstFile*( + hConnect: HINTERNET, + lpszSearchFile: LPCWSTR, + lpFindFileData: LPWIN32_FIND_DATAW, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpFindFirstFileW".} + + proc FtpGetFile*( + hConnect: HINTERNET, + lpszRemoteFile: LPCWSTR, + lpszNewFile: LPCWSTR, + fFailIfExists: WINBOOL, + dwFlagsAndAttributes: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetFileW".} + + proc FtpPutFile*( + hConnect: HINTERNET, + lpszLocalFile: LPCWSTR, + lpszNewRemoteFile: LPCWSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpPutFileW".} + + proc FtpDeleteFile*( + hConnect: HINTERNET, lpszFileName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpDeleteFileW".} + + proc FtpRenameFile*( + hConnect: HINTERNET, lpszExisting: LPCWSTR, lpszNew: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRenameFileW".} + + proc FtpOpenFile*( + hConnect: HINTERNET, + lpszFileName: LPCWSTR, + dwAccess: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpOpenFileW".} + + proc FtpCreateDirectory*( + hConnect: HINTERNET, lpszDirectory: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCreateDirectoryW".} + + proc FtpRemoveDirectory*( + hConnect: HINTERNET, lpszDirectory: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRemoveDirectoryW".} + + proc FtpSetCurrentDirectory*( + hConnect: HINTERNET, lpszDirectory: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpSetCurrentDirectoryW".} + + proc FtpGetCurrentDirectory*( + hConnect: HINTERNET, lpszCurrentDirectory: LPWSTR, lpdwCurrentDirectory: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetCurrentDirectoryW".} + + proc FtpCommand*( + hConnect: HINTERNET, + fExpectResponse: WINBOOL, + dwFlags: DWORD, + lpszCommand: LPCWSTR, + dwContext: DWORD_PTR, + phFtpCommand: ptr HINTERNET, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCommandW".} + + proc GopherCreateLocator*( + lpszHost: LPCWSTR, + nServerPort: INTERNET_PORT, + lpszDisplayString: LPCWSTR, + lpszSelectorString: LPCWSTR, + dwGopherType: DWORD, + lpszLocator: LPWSTR, + lpdwBufferLength: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherCreateLocatorW".} + + proc GopherGetLocatorType*( + lpszLocator: LPCWSTR, lpdwGopherType: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetLocatorTypeW".} + + proc GopherFindFirstFile*( + hConnect: HINTERNET, + lpszLocator: LPCWSTR, + lpszSearchString: LPCWSTR, + lpFindData: LPGOPHER_FIND_DATAW, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherFindFirstFileW".} + + proc GopherOpenFile*( + hConnect: HINTERNET, + lpszLocator: LPCWSTR, + lpszView: LPCWSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherOpenFileW".} + + proc GopherGetAttribute*( + hConnect: HINTERNET, + lpszLocator: LPCWSTR, + lpszAttributeName: LPCWSTR, + lpBuffer: LPBYTE, + dwBufferLength: DWORD, + lpdwCharactersReturned: LPDWORD, + lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetAttributeW".} + + proc HttpOpenRequest*( + hConnect: HINTERNET, + lpszVerb: LPCWSTR, + lpszObjectName: LPCWSTR, + lpszVersion: LPCWSTR, + lpszReferrer: LPCWSTR, + lplpszAcceptTypes: ptr LPCWSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "HttpOpenRequestW".} + + proc HttpAddRequestHeaders*( + hRequest: HINTERNET, + lpszHeaders: LPCWSTR, + dwHeadersLength: DWORD, + dwModifiers: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpAddRequestHeadersW".} + + proc HttpSendRequest*( + hRequest: HINTERNET, + lpszHeaders: LPCWSTR, + dwHeadersLength: DWORD, + lpOptional: LPVOID, + dwOptionalLength: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestW".} + + proc HttpSendRequestEx*( + hRequest: HINTERNET, + lpBuffersIn: LPINTERNET_BUFFERSW, + lpBuffersOut: LPINTERNET_BUFFERSW, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestExW".} + + proc HttpEndRequest*( + hRequest: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSW, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpEndRequestW".} + + proc HttpQueryInfo*( + hRequest: HINTERNET, + dwInfoLevel: DWORD, + lpBuffer: LPVOID, + lpdwBufferLength: LPDWORD, + lpdwIndex: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpQueryInfoW".} + + proc InternetSetCookie*( + lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieW".} + + proc InternetGetCookie*( + lpszUrl: LPCWSTR, lpszCookieName: LPCWSTR, lpszCookieData: LPWSTR, lpdwSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieW".} + + proc InternetSetCookieEx*( + lpszUrl: LPCWSTR, + lpszCookieName: LPCWSTR, + lpszCookieData: LPCWSTR, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieExW".} + + proc InternetGetCookieEx*( + lpszUrl: LPCWSTR, + lpszCookieName: LPCWSTR, + lpszCookieData: LPWSTR, + lpdwSize: LPDWORD, + dwFlags: DWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieExW".} + + proc InternetCheckConnection*( + lpszUrl: LPCWSTR, dwFlags: DWORD, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCheckConnectionW".} + + proc CreateUrlCacheEntry*( + lpszUrlName: LPCWSTR, + dwExpectedFileSize: DWORD, + lpszFileExtension: LPCWSTR, + lpszFileName: LPWSTR, + dwReserved: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CreateUrlCacheEntryW".} + + proc CommitUrlCacheEntry*( + lpszUrlName: LPCWSTR, + lpszLocalFileName: LPCWSTR, + ExpireTime: FILETIME, + LastModifiedTime: FILETIME, + CacheEntryType: DWORD, + lpszHeaderInfo: LPWSTR, + dwHeaders: DWORD, + lpszFileExtension: LPCWSTR, + lpszOriginalUrl: LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CommitUrlCacheEntryW".} + + proc RetrieveUrlCacheEntryFile*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + dwReserved: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryFileW" + .} + + proc UnlockUrlCacheEntryFile*( + lpszUrlName: LPCWSTR, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "UnlockUrlCacheEntryFileW".} + + proc RetrieveUrlCacheEntryStream*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + fRandomRead: WINBOOL, + dwReserved: DWORD, + ): HANDLE {. + winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryStreamW" + .} + + proc GetUrlCacheEntryInfo*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoW".} + + proc GetUrlCacheGroupAttribute*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, + lpdwGroupInfo: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheGroupAttributeW" + .} + + proc SetUrlCacheGroupAttribute*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOW, + lpReserved: LPVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheGroupAttributeW" + .} + + proc GetUrlCacheEntryInfoEx*( + lpszUrl: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + lpszRedirectUrl: LPWSTR, + lpcbRedirectUrl: LPDWORD, + lpReserved: LPVOID, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoExW".} + + proc SetUrlCacheEntryInfo*( + lpszUrlName: LPCWSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + dwFieldControl: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryInfoW".} + + proc FindFirstUrlCacheEntryEx*( + lpszUrlSearchPattern: LPCWSTR, + dwFlags: DWORD, + dwFilter: DWORD, + GroupId: GROUPID, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, + ): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryExW".} + + proc FindNextUrlCacheEntryEx*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryExW".} + + proc FindFirstUrlCacheEntry*( + lpszUrlSearchPattern: LPCWSTR, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + ): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryW".} + + proc FindNextUrlCacheEntry*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOW, + lpcbCacheEntryInfo: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryW".} + + proc InternetSetPerSiteCookieDecision*( + pchHostName: LPCWSTR, dwDecision: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetSetPerSiteCookieDecisionW" + .} + + proc InternetGetPerSiteCookieDecision*( + pchHostName: LPCWSTR, pResult: ptr int32 + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetGetPerSiteCookieDecisionW" + .} + + proc InternetEnumPerSiteCookieDecision*( + pszSiteName: LPWSTR, + pcSiteNameSize: ptr int32, + pdwDecision: ptr int32, + dwIndex: int32, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetEnumPerSiteCookieDecisionW" + .} + + proc InternetTimeFromSystemTime*( + pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPWSTR, cbTime: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetTimeFromSystemTimeW" + .} + + proc InternetTimeToSystemTime*( + lpszTime: LPCWSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetTimeToSystemTimeW" + .} + + proc InternetSetStatusCallback*( + hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK + ): INTERNET_STATUS_CALLBACK {. + winapi, stdcall, dynlib: "wininet", importc: "InternetSetStatusCallbackW" + .} + + proc InternetConfirmZoneCrossing*( + hWnd: HWND, szUrlPrev: LPWSTR, szUrlNew: LPWSTR, bPost: WINBOOL + ): DWORD {. + winapi, stdcall, dynlib: "wininet", importc: "InternetConfirmZoneCrossingW" + .} + + proc InternetDial*( + hwndParent: HWND, + lpszConnectoid: LPWSTR, + dwFlags: DWORD, + lpdwConnection: ptr DWORD_PTR, + dwReserved: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetDialW".} + + proc InternetGoOnline*( + lpszURL: LPWSTR, hwndParent: HWND, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGoOnlineW".} + + proc DeleteUrlCacheEntry*( + lpszUrlName: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "DeleteUrlCacheEntryW".} + + proc SetUrlCacheEntryGroup*( + lpszUrlName: LPCWSTR, + dwFlags: DWORD, + GroupId: GROUPID, + pbGroupAttributes: LPBYTE, + cbGroupAttributes: DWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryGroupW".} + + proc InternetSetDialState*( + lpszConnectoid: LPCWSTR, dwState: DWORD, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetDialStateW".} + + proc InternetGetConnectedStateEx*( + lpdwFlags: LPDWORD, lpszConnectionName: LPWSTR, dwBufLen: DWORD, dwReserved: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetGetConnectedStateExW" + .} + when winimAnsi: type INTERNET_PER_CONN_OPTION* = INTERNET_PER_CONN_OPTIONA @@ -1360,70 +2778,473 @@ LPINTERNET_CACHE_ENTRY_INFO* = LPINTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_GROUP_INFO* = INTERNET_CACHE_GROUP_INFOA LPINTERNET_CACHE_GROUP_INFO* = LPINTERNET_CACHE_GROUP_INFOA - proc InternetCrackUrl*(lpszUrl: LPCSTR, dwUrlLength: DWORD, dwFlags: DWORD, lpUrlComponents: LPURL_COMPONENTSA): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCrackUrlA".} - proc InternetCreateUrl*(lpUrlComponents: LPURL_COMPONENTSA, dwFlags: DWORD, lpszUrl: LPSTR, lpdwUrlLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCreateUrlA".} - proc InternetCanonicalizeUrl*(lpszUrl: LPCSTR, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCanonicalizeUrlA".} - proc InternetCombineUrl*(lpszBaseUrl: LPCSTR, lpszRelativeUrl: LPCSTR, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCombineUrlA".} - proc InternetOpen*(lpszAgent: LPCSTR, dwAccessType: DWORD, lpszProxy: LPCSTR, lpszProxyBypass: LPCSTR, dwFlags: DWORD): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenA".} - proc InternetConnect*(hInternet: HINTERNET, lpszServerName: LPCSTR, nServerPort: INTERNET_PORT, lpszUserName: LPCSTR, lpszPassword: LPCSTR, dwService: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetConnectA".} - proc InternetOpenUrl*(hInternet: HINTERNET, lpszUrl: LPCSTR, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenUrlA".} - proc InternetReadFileEx*(hFile: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSA, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetReadFileExA".} - proc InternetFindNextFile*(hFind: HINTERNET, lpvFindData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetFindNextFileA".} - proc InternetQueryOption*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetQueryOptionA".} - proc InternetSetOption*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionA".} - proc InternetSetOptionEx*(hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionExA".} - proc InternetGetLastResponseInfo*(lpdwError: LPDWORD, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetLastResponseInfoA".} - proc FtpFindFirstFile*(hConnect: HINTERNET, lpszSearchFile: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpFindFirstFileA".} - proc FtpGetFile*(hConnect: HINTERNET, lpszRemoteFile: LPCSTR, lpszNewFile: LPCSTR, fFailIfExists: WINBOOL, dwFlagsAndAttributes: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetFileA".} - proc FtpPutFile*(hConnect: HINTERNET, lpszLocalFile: LPCSTR, lpszNewRemoteFile: LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpPutFileA".} - proc FtpDeleteFile*(hConnect: HINTERNET, lpszFileName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpDeleteFileA".} - proc FtpRenameFile*(hConnect: HINTERNET, lpszExisting: LPCSTR, lpszNew: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRenameFileA".} - proc FtpOpenFile*(hConnect: HINTERNET, lpszFileName: LPCSTR, dwAccess: DWORD, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpOpenFileA".} - proc FtpCreateDirectory*(hConnect: HINTERNET, lpszDirectory: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCreateDirectoryA".} - proc FtpRemoveDirectory*(hConnect: HINTERNET, lpszDirectory: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRemoveDirectoryA".} - proc FtpSetCurrentDirectory*(hConnect: HINTERNET, lpszDirectory: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpSetCurrentDirectoryA".} - proc FtpGetCurrentDirectory*(hConnect: HINTERNET, lpszCurrentDirectory: LPSTR, lpdwCurrentDirectory: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetCurrentDirectoryA".} - proc FtpCommand*(hConnect: HINTERNET, fExpectResponse: WINBOOL, dwFlags: DWORD, lpszCommand: LPCSTR, dwContext: DWORD_PTR, phFtpCommand: ptr HINTERNET): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCommandA".} - proc GopherCreateLocator*(lpszHost: LPCSTR, nServerPort: INTERNET_PORT, lpszDisplayString: LPCSTR, lpszSelectorString: LPCSTR, dwGopherType: DWORD, lpszLocator: LPSTR, lpdwBufferLength: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherCreateLocatorA".} - proc GopherGetLocatorType*(lpszLocator: LPCSTR, lpdwGopherType: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetLocatorTypeA".} - proc GopherFindFirstFile*(hConnect: HINTERNET, lpszLocator: LPCSTR, lpszSearchString: LPCSTR, lpFindData: LPGOPHER_FIND_DATAA, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherFindFirstFileA".} - proc GopherOpenFile*(hConnect: HINTERNET, lpszLocator: LPCSTR, lpszView: LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherOpenFileA".} - proc GopherGetAttribute*(hConnect: HINTERNET, lpszLocator: LPCSTR, lpszAttributeName: LPCSTR, lpBuffer: LPBYTE, dwBufferLength: DWORD, lpdwCharactersReturned: LPDWORD, lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetAttributeA".} - proc HttpOpenRequest*(hConnect: HINTERNET, lpszVerb: LPCSTR, lpszObjectName: LPCSTR, lpszVersion: LPCSTR, lpszReferrer: LPCSTR, lplpszAcceptTypes: ptr LPCSTR, dwFlags: DWORD, dwContext: DWORD_PTR): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "HttpOpenRequestA".} - proc HttpAddRequestHeaders*(hRequest: HINTERNET, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, dwModifiers: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpAddRequestHeadersA".} - proc HttpSendRequest*(hRequest: HINTERNET, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, lpOptional: LPVOID, dwOptionalLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestA".} - proc HttpSendRequestEx*(hRequest: HINTERNET, lpBuffersIn: LPINTERNET_BUFFERSA, lpBuffersOut: LPINTERNET_BUFFERSA, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestExA".} - proc HttpEndRequest*(hRequest: HINTERNET, lpBuffersOut: LPINTERNET_BUFFERSA, dwFlags: DWORD, dwContext: DWORD_PTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpEndRequestA".} - proc HttpQueryInfo*(hRequest: HINTERNET, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD, lpdwIndex: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpQueryInfoA".} - proc InternetSetCookie*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieA".} - proc InternetGetCookie*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPSTR, lpdwSize: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieA".} - proc InternetSetCookieEx*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPCSTR, dwFlags: DWORD, dwReserved: DWORD_PTR): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieExA".} - proc InternetGetCookieEx*(lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPSTR, lpdwSize: LPDWORD, dwFlags: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieExA".} - proc InternetCheckConnection*(lpszUrl: LPCSTR, dwFlags: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCheckConnectionA".} - proc CreateUrlCacheEntry*(lpszUrlName: LPCSTR, dwExpectedFileSize: DWORD, lpszFileExtension: LPCSTR, lpszFileName: LPSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CreateUrlCacheEntryA".} - proc CommitUrlCacheEntry*(lpszUrlName: LPCSTR, lpszLocalFileName: LPCSTR, ExpireTime: FILETIME, LastModifiedTime: FILETIME, CacheEntryType: DWORD, lpHeaderInfo: LPBYTE, dwHeaderSize: DWORD, lpszFileExtension: LPCSTR, lpszOriginalUrl: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CommitUrlCacheEntryA".} - proc RetrieveUrlCacheEntryFile*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryFileA".} - proc UnlockUrlCacheEntryFile*(lpszUrlName: LPCSTR, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "UnlockUrlCacheEntryFileA".} - proc RetrieveUrlCacheEntryStream*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD, fRandomRead: WINBOOL, dwReserved: DWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryStreamA".} - proc GetUrlCacheEntryInfo*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoA".} - proc GetUrlCacheGroupAttribute*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, lpdwGroupInfo: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheGroupAttributeA".} - proc SetUrlCacheGroupAttribute*(gid: GROUPID, dwFlags: DWORD, dwAttributes: DWORD, lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheGroupAttributeA".} - proc GetUrlCacheEntryInfoEx*(lpszUrl: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD, lpszRedirectUrl: LPSTR, lpcbRedirectUrl: LPDWORD, lpReserved: LPVOID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoExA".} - proc SetUrlCacheEntryInfo*(lpszUrlName: LPCSTR, lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, dwFieldControl: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryInfoA".} - proc FindFirstUrlCacheEntryEx*(lpszUrlSearchPattern: LPCSTR, dwFlags: DWORD, dwFilter: DWORD, GroupId: GROUPID, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryExA".} - proc FindNextUrlCacheEntryEx*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbEntryInfo: LPDWORD, lpGroupAttributes: LPVOID, lpcbGroupAttributes: LPDWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryExA".} - proc FindFirstUrlCacheEntry*(lpszUrlSearchPattern: LPCSTR, lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryA".} - proc FindNextUrlCacheEntry*(hEnumHandle: HANDLE, lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, lpcbCacheEntryInfo: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryA".} - proc InternetSetPerSiteCookieDecision*(pchHostName: LPCSTR, dwDecision: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetPerSiteCookieDecisionA".} - proc InternetGetPerSiteCookieDecision*(pchHostName: LPCSTR, pResult: ptr int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetPerSiteCookieDecisionA".} - proc InternetEnumPerSiteCookieDecision*(pszSiteName: LPSTR, pcSiteNameSize: ptr int32, pdwDecision: ptr int32, dwIndex: int32): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetEnumPerSiteCookieDecisionA".} - proc InternetTimeFromSystemTime*(pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPSTR, cbTime: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetTimeFromSystemTimeA".} - proc InternetTimeToSystemTime*(lpszTime: LPCSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetTimeToSystemTimeA".} - proc InternetSetStatusCallback*(hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK): INTERNET_STATUS_CALLBACK {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetStatusCallbackA".} - proc InternetConfirmZoneCrossing*(hWnd: HWND, szUrlPrev: LPSTR, szUrlNew: LPSTR, bPost: WINBOOL): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetConfirmZoneCrossingA".} - proc InternetDial*(hwndParent: HWND, lpszConnectoid: LPSTR, dwFlags: DWORD, lpdwConnection: ptr DWORD_PTR, dwReserved: DWORD): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetDialA".} - proc InternetGoOnline*(lpszURL: LPSTR, hwndParent: HWND, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGoOnlineA".} - proc DeleteUrlCacheEntry*(lpszUrlName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "DeleteUrlCacheEntryA".} - proc SetUrlCacheEntryGroup*(lpszUrlName: LPCSTR, dwFlags: DWORD, GroupId: GROUPID, pbGroupAttributes: LPBYTE, cbGroupAttributes: DWORD, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryGroupA".} - proc InternetSetDialState*(lpszConnectoid: LPCSTR, dwState: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetDialStateA".} - proc InternetGetConnectedStateEx*(lpdwFlags: LPDWORD, lpszConnectionName: LPSTR, dwBufLen: DWORD, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetConnectedStateExA".} + + proc InternetCrackUrl*( + lpszUrl: LPCSTR, + dwUrlLength: DWORD, + dwFlags: DWORD, + lpUrlComponents: LPURL_COMPONENTSA, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCrackUrlA".} + + proc InternetCreateUrl*( + lpUrlComponents: LPURL_COMPONENTSA, + dwFlags: DWORD, + lpszUrl: LPSTR, + lpdwUrlLength: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCreateUrlA".} + + proc InternetCanonicalizeUrl*( + lpszUrl: LPCSTR, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCanonicalizeUrlA".} + + proc InternetCombineUrl*( + lpszBaseUrl: LPCSTR, + lpszRelativeUrl: LPCSTR, + lpszBuffer: LPSTR, + lpdwBufferLength: LPDWORD, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCombineUrlA".} + + proc InternetOpen*( + lpszAgent: LPCSTR, + dwAccessType: DWORD, + lpszProxy: LPCSTR, + lpszProxyBypass: LPCSTR, + dwFlags: DWORD, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenA".} + + proc InternetConnect*( + hInternet: HINTERNET, + lpszServerName: LPCSTR, + nServerPort: INTERNET_PORT, + lpszUserName: LPCSTR, + lpszPassword: LPCSTR, + dwService: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetConnectA".} + + proc InternetOpenUrl*( + hInternet: HINTERNET, + lpszUrl: LPCSTR, + lpszHeaders: LPCSTR, + dwHeadersLength: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "InternetOpenUrlA".} + + proc InternetReadFileEx*( + hFile: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSA, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetReadFileExA".} + + proc InternetFindNextFile*( + hFind: HINTERNET, lpvFindData: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetFindNextFileA".} + + proc InternetQueryOption*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, lpdwBufferLength: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetQueryOptionA".} + + proc InternetSetOption*( + hInternet: HINTERNET, dwOption: DWORD, lpBuffer: LPVOID, dwBufferLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionA".} + + proc InternetSetOptionEx*( + hInternet: HINTERNET, + dwOption: DWORD, + lpBuffer: LPVOID, + dwBufferLength: DWORD, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetOptionExA".} + + proc InternetGetLastResponseInfo*( + lpdwError: LPDWORD, lpszBuffer: LPSTR, lpdwBufferLength: LPDWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetGetLastResponseInfoA" + .} + + proc FtpFindFirstFile*( + hConnect: HINTERNET, + lpszSearchFile: LPCSTR, + lpFindFileData: LPWIN32_FIND_DATAA, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpFindFirstFileA".} + + proc FtpGetFile*( + hConnect: HINTERNET, + lpszRemoteFile: LPCSTR, + lpszNewFile: LPCSTR, + fFailIfExists: WINBOOL, + dwFlagsAndAttributes: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetFileA".} + + proc FtpPutFile*( + hConnect: HINTERNET, + lpszLocalFile: LPCSTR, + lpszNewRemoteFile: LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpPutFileA".} + + proc FtpDeleteFile*( + hConnect: HINTERNET, lpszFileName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpDeleteFileA".} + + proc FtpRenameFile*( + hConnect: HINTERNET, lpszExisting: LPCSTR, lpszNew: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRenameFileA".} + + proc FtpOpenFile*( + hConnect: HINTERNET, + lpszFileName: LPCSTR, + dwAccess: DWORD, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "FtpOpenFileA".} + + proc FtpCreateDirectory*( + hConnect: HINTERNET, lpszDirectory: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCreateDirectoryA".} + + proc FtpRemoveDirectory*( + hConnect: HINTERNET, lpszDirectory: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpRemoveDirectoryA".} + + proc FtpSetCurrentDirectory*( + hConnect: HINTERNET, lpszDirectory: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpSetCurrentDirectoryA".} + + proc FtpGetCurrentDirectory*( + hConnect: HINTERNET, lpszCurrentDirectory: LPSTR, lpdwCurrentDirectory: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpGetCurrentDirectoryA".} + + proc FtpCommand*( + hConnect: HINTERNET, + fExpectResponse: WINBOOL, + dwFlags: DWORD, + lpszCommand: LPCSTR, + dwContext: DWORD_PTR, + phFtpCommand: ptr HINTERNET, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FtpCommandA".} + + proc GopherCreateLocator*( + lpszHost: LPCSTR, + nServerPort: INTERNET_PORT, + lpszDisplayString: LPCSTR, + lpszSelectorString: LPCSTR, + dwGopherType: DWORD, + lpszLocator: LPSTR, + lpdwBufferLength: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherCreateLocatorA".} + + proc GopherGetLocatorType*( + lpszLocator: LPCSTR, lpdwGopherType: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetLocatorTypeA".} + + proc GopherFindFirstFile*( + hConnect: HINTERNET, + lpszLocator: LPCSTR, + lpszSearchString: LPCSTR, + lpFindData: LPGOPHER_FIND_DATAA, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherFindFirstFileA".} + + proc GopherOpenFile*( + hConnect: HINTERNET, + lpszLocator: LPCSTR, + lpszView: LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "GopherOpenFileA".} + + proc GopherGetAttribute*( + hConnect: HINTERNET, + lpszLocator: LPCSTR, + lpszAttributeName: LPCSTR, + lpBuffer: LPBYTE, + dwBufferLength: DWORD, + lpdwCharactersReturned: LPDWORD, + lpfnEnumerator: GOPHER_ATTRIBUTE_ENUMERATOR, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GopherGetAttributeA".} + + proc HttpOpenRequest*( + hConnect: HINTERNET, + lpszVerb: LPCSTR, + lpszObjectName: LPCSTR, + lpszVersion: LPCSTR, + lpszReferrer: LPCSTR, + lplpszAcceptTypes: ptr LPCSTR, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): HINTERNET {.winapi, stdcall, dynlib: "wininet", importc: "HttpOpenRequestA".} + + proc HttpAddRequestHeaders*( + hRequest: HINTERNET, lpszHeaders: LPCSTR, dwHeadersLength: DWORD, dwModifiers: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpAddRequestHeadersA".} + + proc HttpSendRequest*( + hRequest: HINTERNET, + lpszHeaders: LPCSTR, + dwHeadersLength: DWORD, + lpOptional: LPVOID, + dwOptionalLength: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestA".} + + proc HttpSendRequestEx*( + hRequest: HINTERNET, + lpBuffersIn: LPINTERNET_BUFFERSA, + lpBuffersOut: LPINTERNET_BUFFERSA, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpSendRequestExA".} + + proc HttpEndRequest*( + hRequest: HINTERNET, + lpBuffersOut: LPINTERNET_BUFFERSA, + dwFlags: DWORD, + dwContext: DWORD_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpEndRequestA".} + + proc HttpQueryInfo*( + hRequest: HINTERNET, + dwInfoLevel: DWORD, + lpBuffer: LPVOID, + lpdwBufferLength: LPDWORD, + lpdwIndex: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "HttpQueryInfoA".} + + proc InternetSetCookie*( + lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieA".} + + proc InternetGetCookie*( + lpszUrl: LPCSTR, lpszCookieName: LPCSTR, lpszCookieData: LPSTR, lpdwSize: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieA".} + + proc InternetSetCookieEx*( + lpszUrl: LPCSTR, + lpszCookieName: LPCSTR, + lpszCookieData: LPCSTR, + dwFlags: DWORD, + dwReserved: DWORD_PTR, + ): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetCookieExA".} + + proc InternetGetCookieEx*( + lpszUrl: LPCSTR, + lpszCookieName: LPCSTR, + lpszCookieData: LPSTR, + lpdwSize: LPDWORD, + dwFlags: DWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGetCookieExA".} + + proc InternetCheckConnection*( + lpszUrl: LPCSTR, dwFlags: DWORD, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetCheckConnectionA".} + + proc CreateUrlCacheEntry*( + lpszUrlName: LPCSTR, + dwExpectedFileSize: DWORD, + lpszFileExtension: LPCSTR, + lpszFileName: LPSTR, + dwReserved: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CreateUrlCacheEntryA".} + + proc CommitUrlCacheEntry*( + lpszUrlName: LPCSTR, + lpszLocalFileName: LPCSTR, + ExpireTime: FILETIME, + LastModifiedTime: FILETIME, + CacheEntryType: DWORD, + lpHeaderInfo: LPBYTE, + dwHeaderSize: DWORD, + lpszFileExtension: LPCSTR, + lpszOriginalUrl: LPCSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "CommitUrlCacheEntryA".} + + proc RetrieveUrlCacheEntryFile*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + dwReserved: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryFileA" + .} + + proc UnlockUrlCacheEntryFile*( + lpszUrlName: LPCSTR, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "UnlockUrlCacheEntryFileA".} + + proc RetrieveUrlCacheEntryStream*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + fRandomRead: WINBOOL, + dwReserved: DWORD, + ): HANDLE {. + winapi, stdcall, dynlib: "wininet", importc: "RetrieveUrlCacheEntryStreamA" + .} + + proc GetUrlCacheEntryInfo*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoA".} + + proc GetUrlCacheGroupAttribute*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, + lpdwGroupInfo: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheGroupAttributeA" + .} + + proc SetUrlCacheGroupAttribute*( + gid: GROUPID, + dwFlags: DWORD, + dwAttributes: DWORD, + lpGroupInfo: LPINTERNET_CACHE_GROUP_INFOA, + lpReserved: LPVOID, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheGroupAttributeA" + .} + + proc GetUrlCacheEntryInfoEx*( + lpszUrl: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + lpszRedirectUrl: LPSTR, + lpcbRedirectUrl: LPDWORD, + lpReserved: LPVOID, + dwFlags: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "GetUrlCacheEntryInfoExA".} + + proc SetUrlCacheEntryInfo*( + lpszUrlName: LPCSTR, + lpCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + dwFieldControl: DWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryInfoA".} + + proc FindFirstUrlCacheEntryEx*( + lpszUrlSearchPattern: LPCSTR, + dwFlags: DWORD, + dwFilter: DWORD, + GroupId: GROUPID, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, + ): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryExA".} + + proc FindNextUrlCacheEntryEx*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbEntryInfo: LPDWORD, + lpGroupAttributes: LPVOID, + lpcbGroupAttributes: LPDWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryExA".} + + proc FindFirstUrlCacheEntry*( + lpszUrlSearchPattern: LPCSTR, + lpFirstCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + ): HANDLE {.winapi, stdcall, dynlib: "wininet", importc: "FindFirstUrlCacheEntryA".} + + proc FindNextUrlCacheEntry*( + hEnumHandle: HANDLE, + lpNextCacheEntryInfo: LPINTERNET_CACHE_ENTRY_INFOA, + lpcbCacheEntryInfo: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "FindNextUrlCacheEntryA".} + + proc InternetSetPerSiteCookieDecision*( + pchHostName: LPCSTR, dwDecision: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetSetPerSiteCookieDecisionA" + .} + + proc InternetGetPerSiteCookieDecision*( + pchHostName: LPCSTR, pResult: ptr int32 + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetGetPerSiteCookieDecisionA" + .} + + proc InternetEnumPerSiteCookieDecision*( + pszSiteName: LPSTR, + pcSiteNameSize: ptr int32, + pdwDecision: ptr int32, + dwIndex: int32, + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetEnumPerSiteCookieDecisionA" + .} + + proc InternetTimeFromSystemTime*( + pst: ptr SYSTEMTIME, dwRFC: DWORD, lpszTime: LPSTR, cbTime: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetTimeFromSystemTimeA" + .} + + proc InternetTimeToSystemTime*( + lpszTime: LPCSTR, pst: ptr SYSTEMTIME, dwReserved: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetTimeToSystemTimeA" + .} + + proc InternetSetStatusCallback*( + hInternet: HINTERNET, lpfnInternetCallback: INTERNET_STATUS_CALLBACK + ): INTERNET_STATUS_CALLBACK {. + winapi, stdcall, dynlib: "wininet", importc: "InternetSetStatusCallbackA" + .} + + proc InternetConfirmZoneCrossing*( + hWnd: HWND, szUrlPrev: LPSTR, szUrlNew: LPSTR, bPost: WINBOOL + ): DWORD {. + winapi, stdcall, dynlib: "wininet", importc: "InternetConfirmZoneCrossingA" + .} + + proc InternetDial*( + hwndParent: HWND, + lpszConnectoid: LPSTR, + dwFlags: DWORD, + lpdwConnection: ptr DWORD_PTR, + dwReserved: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "wininet", importc: "InternetDialA".} + + proc InternetGoOnline*( + lpszURL: LPSTR, hwndParent: HWND, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetGoOnlineA".} + + proc DeleteUrlCacheEntry*( + lpszUrlName: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "DeleteUrlCacheEntryA".} + + proc SetUrlCacheEntryGroup*( + lpszUrlName: LPCSTR, + dwFlags: DWORD, + GroupId: GROUPID, + pbGroupAttributes: LPBYTE, + cbGroupAttributes: DWORD, + lpReserved: LPVOID, + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "SetUrlCacheEntryGroupA".} + + proc InternetSetDialState*( + lpszConnectoid: LPCSTR, dwState: DWORD, dwReserved: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "wininet", importc: "InternetSetDialStateA".} + + proc InternetGetConnectedStateEx*( + lpdwFlags: LPDWORD, lpszConnectionName: LPSTR, dwBufLen: DWORD, dwReserved: DWORD + ): WINBOOL {. + winapi, stdcall, dynlib: "wininet", importc: "InternetGetConnectedStateExA" + .} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winioctl.nim --- a/semicongine/thirdparty/winim/winim/inc/winioctl.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winioctl.nim Thu Aug 22 18:32:21 2024 +0700 @@ -42,6 +42,7 @@ BlockLength*: ULONG NumberOfBlocks*: LARGE_INTEGER DiskLength*: LARGE_INTEGER + PSTORAGE_READ_CAPACITY* = ptr STORAGE_READ_CAPACITY DEVICE_MANAGE_DATA_SET_ATTRIBUTES* {.pure.} = object Size*: DWORD @@ -51,10 +52,12 @@ ParameterBlockLength*: DWORD DataSetRangesOffset*: DWORD DataSetRangesLength*: DWORD + PDEVICE_MANAGE_DATA_SET_ATTRIBUTES* = ptr DEVICE_MANAGE_DATA_SET_ATTRIBUTES DEVICE_DATA_SET_RANGE* {.pure.} = object StartingOffset*: LONGLONG LengthInBytes*: DWORDLONG + PDEVICE_DATA_SET_RANGE* = ptr DEVICE_DATA_SET_RANGE STORAGE_HOTPLUG_INFO* {.pure.} = object Size*: DWORD @@ -62,14 +65,17 @@ MediaHotplug*: BOOLEAN DeviceHotplug*: BOOLEAN WriteCacheEnableOverride*: BOOLEAN + PSTORAGE_HOTPLUG_INFO* = ptr STORAGE_HOTPLUG_INFO STORAGE_DEVICE_NUMBER* {.pure.} = object DeviceType*: DEVICE_TYPE DeviceNumber*: DWORD PartitionNumber*: DWORD + PSTORAGE_DEVICE_NUMBER* = ptr STORAGE_DEVICE_NUMBER STORAGE_BUS_RESET_REQUEST* {.pure.} = object PathId*: BYTE + PSTORAGE_BUS_RESET_REQUEST* = ptr STORAGE_BUS_RESET_REQUEST STORAGE_BREAK_RESERVATION_REQUEST* {.pure.} = object Length*: DWORD @@ -77,13 +83,16 @@ PathId*: BYTE TargetId*: BYTE Lun*: BYTE + PSTORAGE_BREAK_RESERVATION_REQUEST* = ptr STORAGE_BREAK_RESERVATION_REQUEST PREVENT_MEDIA_REMOVAL* {.pure.} = object PreventMediaRemoval*: BOOLEAN + PPREVENT_MEDIA_REMOVAL* = ptr PREVENT_MEDIA_REMOVAL CLASS_MEDIA_CHANGE_CONTEXT* {.pure.} = object MediaChangeCount*: DWORD NewState*: DWORD + PCLASS_MEDIA_CHANGE_CONTEXT* = ptr CLASS_MEDIA_CHANGE_CONTEXT TAPE_STATISTICS* {.pure.} = object Version*: DWORD @@ -94,9 +103,11 @@ UnrecoveredReads*: LARGE_INTEGER CompressionRatioReads*: BYTE CompressionRatioWrites*: BYTE + PTAPE_STATISTICS* = ptr TAPE_STATISTICS TAPE_GET_STATISTICS* {.pure.} = object Operation*: DWORD + PTAPE_GET_STATISTICS* = ptr TAPE_GET_STATISTICS DEVICE_MEDIA_INFO_DeviceSpecific_DiskInfo* {.pure.} = object Cylinders*: LARGE_INTEGER @@ -106,6 +117,7 @@ BytesPerSector*: DWORD NumberMediaSides*: DWORD MediaCharacteristics*: DWORD + DEVICE_MEDIA_INFO_DeviceSpecific_RemovableDiskInfo* {.pure.} = object Cylinders*: LARGE_INTEGER MediaType*: STORAGE_MEDIA_TYPE @@ -114,32 +126,41 @@ BytesPerSector*: DWORD NumberMediaSides*: DWORD MediaCharacteristics*: DWORD + DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo_BusSpecificData_ScsiInformation* {.pure.} = object MediumType*: BYTE DensityCode*: BYTE + DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo_BusSpecificData* {.pure, union.} = object - ScsiInformation*: DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo_BusSpecificData_ScsiInformation + ScsiInformation*: + DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo_BusSpecificData_ScsiInformation + DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo* {.pure.} = object MediaType*: STORAGE_MEDIA_TYPE MediaCharacteristics*: DWORD CurrentBlockSize*: DWORD BusType*: STORAGE_BUS_TYPE BusSpecificData*: DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo_BusSpecificData + DEVICE_MEDIA_INFO_DeviceSpecific* {.pure, union.} = object DiskInfo*: DEVICE_MEDIA_INFO_DeviceSpecific_DiskInfo RemovableDiskInfo*: DEVICE_MEDIA_INFO_DeviceSpecific_RemovableDiskInfo TapeInfo*: DEVICE_MEDIA_INFO_DeviceSpecific_TapeInfo + DEVICE_MEDIA_INFO* {.pure.} = object DeviceSpecific*: DEVICE_MEDIA_INFO_DeviceSpecific + PDEVICE_MEDIA_INFO* = ptr DEVICE_MEDIA_INFO GET_MEDIA_TYPES* {.pure.} = object DeviceType*: DWORD MediaInfoCount*: DWORD MediaInfo*: array[1, DEVICE_MEDIA_INFO] + PGET_MEDIA_TYPES* = ptr GET_MEDIA_TYPES STORAGE_PREDICT_FAILURE* {.pure.} = object PredictFailure*: DWORD VendorSpecific*: array[512, BYTE] + PSTORAGE_PREDICT_FAILURE* = ptr STORAGE_PREDICT_FAILURE FORMAT_PARAMETERS* {.pure.} = object MediaType*: MEDIA_TYPE @@ -147,6 +168,7 @@ EndCylinderNumber*: DWORD StartHeadNumber*: DWORD EndHeadNumber*: DWORD + PFORMAT_PARAMETERS* = ptr FORMAT_PARAMETERS FORMAT_EX_PARAMETERS* {.pure.} = object MediaType*: MEDIA_TYPE @@ -157,6 +179,7 @@ FormatGapLength*: WORD SectorsPerTrack*: WORD SectorNumber*: array[1, WORD] + PFORMAT_EX_PARAMETERS* = ptr FORMAT_EX_PARAMETERS DISK_GEOMETRY* {.pure.} = object Cylinders*: LARGE_INTEGER @@ -164,6 +187,7 @@ TracksPerCylinder*: DWORD SectorsPerTrack*: DWORD BytesPerSector*: DWORD + PDISK_GEOMETRY* = ptr DISK_GEOMETRY PARTITION_INFORMATION* {.pure.} = object StartingOffset*: LARGE_INTEGER @@ -174,70 +198,86 @@ BootIndicator*: BOOLEAN RecognizedPartition*: BOOLEAN RewritePartition*: BOOLEAN + PPARTITION_INFORMATION* = ptr PARTITION_INFORMATION SET_PARTITION_INFORMATION* {.pure.} = object PartitionType*: BYTE + PSET_PARTITION_INFORMATION* = ptr SET_PARTITION_INFORMATION DRIVE_LAYOUT_INFORMATION* {.pure.} = object PartitionCount*: DWORD Signature*: DWORD PartitionEntry*: array[1, PARTITION_INFORMATION] + PDRIVE_LAYOUT_INFORMATION* = ptr DRIVE_LAYOUT_INFORMATION VERIFY_INFORMATION* {.pure.} = object StartingOffset*: LARGE_INTEGER Length*: DWORD + PVERIFY_INFORMATION* = ptr VERIFY_INFORMATION REASSIGN_BLOCKS* {.pure.} = object Reserved*: WORD Count*: WORD BlockNumber*: array[1, DWORD] + PREASSIGN_BLOCKS* = ptr REASSIGN_BLOCKS REASSIGN_BLOCKS_EX* {.pure, packed.} = object Reserved*: WORD Count*: WORD BlockNumber*: array[1, LARGE_INTEGER] + PREASSIGN_BLOCKS_EX* = ptr REASSIGN_BLOCKS_EX PARTITION_INFORMATION_GPT* {.pure.} = object PartitionType*: GUID PartitionId*: GUID Attributes*: DWORD64 Name*: array[36, WCHAR] + PPARTITION_INFORMATION_GPT* = ptr PARTITION_INFORMATION_GPT PARTITION_INFORMATION_MBR* {.pure.} = object PartitionType*: BYTE BootIndicator*: BOOLEAN RecognizedPartition*: BOOLEAN HiddenSectors*: DWORD + PPARTITION_INFORMATION_MBR* = ptr PARTITION_INFORMATION_MBR SET_PARTITION_INFORMATION_MBR* = SET_PARTITION_INFORMATION SET_PARTITION_INFORMATION_GPT* = PARTITION_INFORMATION_GPT SET_PARTITION_INFORMATION_EX_UNION1* {.pure, union.} = object Mbr*: SET_PARTITION_INFORMATION_MBR Gpt*: SET_PARTITION_INFORMATION_GPT + SET_PARTITION_INFORMATION_EX* {.pure.} = object PartitionStyle*: PARTITION_STYLE union1*: SET_PARTITION_INFORMATION_EX_UNION1 + PSET_PARTITION_INFORMATION_EX* = ptr SET_PARTITION_INFORMATION_EX CREATE_DISK_GPT* {.pure.} = object DiskId*: GUID MaxPartitionCount*: DWORD + PCREATE_DISK_GPT* = ptr CREATE_DISK_GPT CREATE_DISK_MBR* {.pure.} = object Signature*: DWORD + PCREATE_DISK_MBR* = ptr CREATE_DISK_MBR CREATE_DISK_UNION1* {.pure, union.} = object Mbr*: CREATE_DISK_MBR Gpt*: CREATE_DISK_GPT + CREATE_DISK* {.pure.} = object PartitionStyle*: PARTITION_STYLE union1*: CREATE_DISK_UNION1 + PCREATE_DISK* = ptr CREATE_DISK GET_LENGTH_INFORMATION* {.pure.} = object Length*: LARGE_INTEGER + PGET_LENGTH_INFORMATION* = ptr GET_LENGTH_INFORMATION PARTITION_INFORMATION_EX_UNION1* {.pure, union.} = object Mbr*: PARTITION_INFORMATION_MBR Gpt*: PARTITION_INFORMATION_GPT + PARTITION_INFORMATION_EX* {.pure.} = object PartitionStyle*: PARTITION_STYLE StartingOffset*: LARGE_INTEGER @@ -245,24 +285,29 @@ PartitionNumber*: DWORD RewritePartition*: BOOLEAN union1*: PARTITION_INFORMATION_EX_UNION1 + PPARTITION_INFORMATION_EX* = ptr PARTITION_INFORMATION_EX DRIVE_LAYOUT_INFORMATION_GPT* {.pure.} = object DiskId*: GUID StartingUsableOffset*: LARGE_INTEGER UsableLength*: LARGE_INTEGER MaxPartitionCount*: DWORD + PDRIVE_LAYOUT_INFORMATION_GPT* = ptr DRIVE_LAYOUT_INFORMATION_GPT DRIVE_LAYOUT_INFORMATION_MBR* {.pure.} = object Signature*: DWORD + PDRIVE_LAYOUT_INFORMATION_MBR* = ptr DRIVE_LAYOUT_INFORMATION_MBR DRIVE_LAYOUT_INFORMATION_EX_UNION1* {.pure, union.} = object Mbr*: DRIVE_LAYOUT_INFORMATION_MBR Gpt*: DRIVE_LAYOUT_INFORMATION_GPT + DRIVE_LAYOUT_INFORMATION_EX* {.pure.} = object PartitionStyle*: DWORD PartitionCount*: DWORD union1*: DRIVE_LAYOUT_INFORMATION_EX_UNION1 PartitionEntry*: array[1, PARTITION_INFORMATION_EX] + PDRIVE_LAYOUT_INFORMATION_EX* = ptr DRIVE_LAYOUT_INFORMATION_EX DISK_INT13_INFO* {.pure.} = object DriveSelect*: WORD @@ -270,6 +315,7 @@ SectorsPerTrack*: WORD MaxHeads*: WORD NumberDrives*: WORD + PDISK_INT13_INFO* = ptr DISK_INT13_INFO DISK_EX_INT13_INFO* {.pure.} = object ExBufferSize*: WORD @@ -280,49 +326,62 @@ ExSectorsPerDrive*: DWORD64 ExSectorSize*: WORD ExReserved*: WORD + PDISK_EX_INT13_INFO* = ptr DISK_EX_INT13_INFO DISK_DETECTION_INFO_UNION1_STRUCT1* {.pure.} = object Int13*: DISK_INT13_INFO ExInt13*: DISK_EX_INT13_INFO + DISK_DETECTION_INFO_UNION1* {.pure, union.} = object struct1*: DISK_DETECTION_INFO_UNION1_STRUCT1 + DISK_DETECTION_INFO* {.pure.} = object SizeOfDetectInfo*: DWORD DetectionType*: DETECTION_TYPE union1*: DISK_DETECTION_INFO_UNION1 + PDISK_DETECTION_INFO* = ptr DISK_DETECTION_INFO DISK_PARTITION_INFO_UNION1_Mbr* {.pure.} = object Signature*: DWORD CheckSum*: DWORD + DISK_PARTITION_INFO_UNION1_Gpt* {.pure.} = object DiskId*: GUID + DISK_PARTITION_INFO_UNION1* {.pure, union.} = object Mbr*: DISK_PARTITION_INFO_UNION1_Mbr Gpt*: DISK_PARTITION_INFO_UNION1_Gpt + DISK_PARTITION_INFO* {.pure.} = object SizeOfPartitionInfo*: DWORD PartitionStyle*: PARTITION_STYLE union1*: DISK_PARTITION_INFO_UNION1 + PDISK_PARTITION_INFO* = ptr DISK_PARTITION_INFO DISK_GEOMETRY_EX* {.pure.} = object Geometry*: DISK_GEOMETRY DiskSize*: LARGE_INTEGER Data*: array[1, BYTE] + PDISK_GEOMETRY_EX* = ptr DISK_GEOMETRY_EX DISK_CONTROLLER_NUMBER* {.pure.} = object ControllerNumber*: DWORD DiskNumber*: DWORD + PDISK_CONTROLLER_NUMBER* = ptr DISK_CONTROLLER_NUMBER DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch* {.pure.} = object Minimum*: WORD Maximum*: WORD MaximumBlocks*: WORD + DISK_CACHE_INFORMATION_UNION1_BlockPrefetch* {.pure.} = object Minimum*: WORD Maximum*: WORD + DISK_CACHE_INFORMATION_UNION1* {.pure, union.} = object ScalarPrefetch*: DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch BlockPrefetch*: DISK_CACHE_INFORMATION_UNION1_BlockPrefetch + DISK_CACHE_INFORMATION* {.pure.} = object ParametersSavable*: BOOLEAN ReadCacheEnabled*: BOOLEAN @@ -332,14 +391,17 @@ DisablePrefetchTransferLength*: WORD PrefetchScalar*: BOOLEAN union1*: DISK_CACHE_INFORMATION_UNION1 + PDISK_CACHE_INFORMATION* = ptr DISK_CACHE_INFORMATION DISK_GROW_PARTITION* {.pure.} = object PartitionNumber*: DWORD BytesToGrow*: LARGE_INTEGER + PDISK_GROW_PARTITION* = ptr DISK_GROW_PARTITION HISTOGRAM_BUCKET* {.pure.} = object Reads*: DWORD Writes*: DWORD + PHISTOGRAM_BUCKET* = ptr HISTOGRAM_BUCKET DISK_HISTOGRAM* {.pure.} = object DiskSize*: LARGE_INTEGER @@ -353,6 +415,7 @@ ReadCount*: DWORD WriteCount*: DWORD Histogram*: PHISTOGRAM_BUCKET + PDISK_HISTOGRAM* = ptr DISK_HISTOGRAM DISK_PERFORMANCE* {.pure.} = object BytesRead*: LARGE_INTEGER @@ -367,6 +430,7 @@ QueryTime*: LARGE_INTEGER StorageDeviceNumber*: DWORD StorageManagerName*: array[8, WCHAR] + PDISK_PERFORMANCE* = ptr DISK_PERFORMANCE DISK_RECORD* {.pure.} = object ByteOffset*: LARGE_INTEGER @@ -376,28 +440,34 @@ NumberOfBytes*: DWORD DeviceNumber*: BYTE ReadRequest*: BOOLEAN + PDISK_RECORD* = ptr DISK_RECORD DISK_LOGGING* {.pure.} = object Function*: BYTE BufferAddress*: PVOID BufferSize*: DWORD + PDISK_LOGGING* = ptr DISK_LOGGING BIN_RANGE* {.pure.} = object StartValue*: LARGE_INTEGER Length*: LARGE_INTEGER + PBIN_RANGE* = ptr BIN_RANGE PERF_BIN* {.pure.} = object NumberOfBins*: DWORD TypeOfBin*: DWORD BinsRanges*: array[1, BIN_RANGE] + PPERF_BIN* = ptr PERF_BIN BIN_COUNT* {.pure.} = object BinRange*: BIN_RANGE BinCount*: DWORD + PBIN_COUNT* = ptr BIN_COUNT BIN_RESULTS* {.pure.} = object NumberOfBins*: DWORD BinCounts*: array[1, BIN_COUNT] + PBIN_RESULTS* = ptr BIN_RESULTS GETVERSIONINPARAMS* {.pure.} = object bVersion*: BYTE @@ -406,6 +476,7 @@ bIDEDeviceMap*: BYTE fCapabilities*: DWORD dwReserved*: array[4, DWORD] + PGETVERSIONINPARAMS* = ptr GETVERSIONINPARAMS LPGETVERSIONINPARAMS* = ptr GETVERSIONINPARAMS IDEREGS* {.pure.} = object @@ -417,6 +488,7 @@ bDriveHeadReg*: BYTE bCommandReg*: BYTE bReserved*: BYTE + PIDEREGS* = ptr IDEREGS LPIDEREGS* = ptr IDEREGS SENDCMDINPARAMS* {.pure, packed.} = object @@ -426,6 +498,7 @@ bReserved*: array[3, BYTE] dwReserved*: array[4, DWORD] bBuffer*: array[1, BYTE] + PSENDCMDINPARAMS* = ptr SENDCMDINPARAMS LPSENDCMDINPARAMS* = ptr SENDCMDINPARAMS DRIVERSTATUS* {.pure.} = object @@ -433,21 +506,25 @@ bIDEError*: BYTE bReserved*: array[2, BYTE] dwReserved*: array[2, DWORD] + PDRIVERSTATUS* = ptr DRIVERSTATUS LPDRIVERSTATUS* = ptr DRIVERSTATUS SENDCMDOUTPARAMS* {.pure, packed.} = object cBufferSize*: DWORD DriverStatus*: DRIVERSTATUS bBuffer*: array[1, BYTE] + PSENDCMDOUTPARAMS* = ptr SENDCMDOUTPARAMS LPSENDCMDOUTPARAMS* = ptr SENDCMDOUTPARAMS CHANGER_ELEMENT* {.pure.} = object ElementType*: ELEMENT_TYPE ElementAddress*: DWORD + PCHANGER_ELEMENT* = ptr CHANGER_ELEMENT CHANGER_ELEMENT_LIST* {.pure.} = object Element*: CHANGER_ELEMENT NumberOfElements*: DWORD + PCHANGER_ELEMENT_LIST* = ptr CHANGER_ELEMENT_LIST GET_CHANGER_PARAMETERS* {.pure.} = object Size*: DWORD @@ -478,7 +555,9 @@ PositionCapabilities*: BYTE Reserved1*: array[2, BYTE] Reserved2*: array[2, DWORD] + PGET_CHANGER_PARAMETERS* = ptr GET_CHANGER_PARAMETERS + const VENDOR_ID_LENGTH* = 8 PRODUCT_ID_LENGTH* = 16 @@ -491,17 +570,20 @@ Revision*: array[REVISION_LENGTH, BYTE] SerialNumber*: array[SERIAL_NUMBER_LENGTH, BYTE] DeviceType*: BYTE + PCHANGER_PRODUCT_DATA* = ptr CHANGER_PRODUCT_DATA CHANGER_SET_ACCESS* {.pure.} = object Element*: CHANGER_ELEMENT Control*: DWORD + PCHANGER_SET_ACCESS* = ptr CHANGER_SET_ACCESS CHANGER_READ_ELEMENT_STATUS* {.pure.} = object ElementList*: CHANGER_ELEMENT_LIST VolumeTagInfo*: BOOLEAN + PCHANGER_READ_ELEMENT_STATUS* = ptr CHANGER_READ_ELEMENT_STATUS -const - MAX_VOLUME_ID_SIZE* = 36 + +const MAX_VOLUME_ID_SIZE* = 36 type CHANGER_ELEMENT_STATUS* {.pure.} = object Element*: CHANGER_ELEMENT @@ -513,6 +595,7 @@ Reserved*: WORD PrimaryVolumeID*: array[MAX_VOLUME_ID_SIZE, BYTE] AlternateVolumeID*: array[MAX_VOLUME_ID_SIZE, BYTE] + PCHANGER_ELEMENT_STATUS* = ptr CHANGER_ELEMENT_STATUS CHANGER_ELEMENT_STATUS_EX* {.pure.} = object Element*: CHANGER_ELEMENT @@ -527,15 +610,18 @@ VendorIdentification*: array[VENDOR_ID_LENGTH, BYTE] ProductIdentification*: array[PRODUCT_ID_LENGTH, BYTE] SerialNumber*: array[SERIAL_NUMBER_LENGTH, BYTE] + PCHANGER_ELEMENT_STATUS_EX* = ptr CHANGER_ELEMENT_STATUS_EX CHANGER_INITIALIZE_ELEMENT_STATUS* {.pure.} = object ElementList*: CHANGER_ELEMENT_LIST BarCodeScan*: BOOLEAN + PCHANGER_INITIALIZE_ELEMENT_STATUS* = ptr CHANGER_INITIALIZE_ELEMENT_STATUS CHANGER_SET_POSITION* {.pure.} = object Transport*: CHANGER_ELEMENT Destination*: CHANGER_ELEMENT Flip*: BOOLEAN + PCHANGER_SET_POSITION* = ptr CHANGER_SET_POSITION CHANGER_EXCHANGE_MEDIUM* {.pure.} = object Transport*: CHANGER_ELEMENT @@ -544,31 +630,37 @@ Destination2*: CHANGER_ELEMENT Flip1*: BOOLEAN Flip2*: BOOLEAN + PCHANGER_EXCHANGE_MEDIUM* = ptr CHANGER_EXCHANGE_MEDIUM CHANGER_MOVE_MEDIUM* {.pure.} = object Transport*: CHANGER_ELEMENT Source*: CHANGER_ELEMENT Destination*: CHANGER_ELEMENT Flip*: BOOLEAN + PCHANGER_MOVE_MEDIUM* = ptr CHANGER_MOVE_MEDIUM -const - MAX_VOLUME_TEMPLATE_SIZE* = 40 + +const MAX_VOLUME_TEMPLATE_SIZE* = 40 type CHANGER_SEND_VOLUME_TAG_INFORMATION* {.pure.} = object StartingElement*: CHANGER_ELEMENT ActionCode*: DWORD VolumeIDTemplate*: array[MAX_VOLUME_TEMPLATE_SIZE, BYTE] + PCHANGER_SEND_VOLUME_TAG_INFORMATION* = ptr CHANGER_SEND_VOLUME_TAG_INFORMATION READ_ELEMENT_ADDRESS_INFO* {.pure.} = object NumberOfElements*: DWORD ElementStatus*: array[1, CHANGER_ELEMENT_STATUS] + PREAD_ELEMENT_ADDRESS_INFO* = ptr READ_ELEMENT_ADDRESS_INFO PATHNAME_BUFFER* {.pure.} = object PathNameLength*: DWORD Name*: array[1, WCHAR] + PPATHNAME_BUFFER* = ptr PATHNAME_BUFFER FSCTL_QUERY_FAT_BPB_BUFFER* {.pure.} = object First0x24BytesOfBootSector*: array[0x24, BYTE] + PFSCTL_QUERY_FAT_BPB_BUFFER* = ptr FSCTL_QUERY_FAT_BPB_BUFFER NTFS_VOLUME_DATA_BUFFER* {.pure.} = object VolumeSerialNumber*: LARGE_INTEGER @@ -585,63 +677,77 @@ Mft2StartLcn*: LARGE_INTEGER MftZoneStart*: LARGE_INTEGER MftZoneEnd*: LARGE_INTEGER + PNTFS_VOLUME_DATA_BUFFER* = ptr NTFS_VOLUME_DATA_BUFFER NTFS_EXTENDED_VOLUME_DATA* {.pure.} = object ByteCount*: DWORD MajorVersion*: WORD MinorVersion*: WORD + PNTFS_EXTENDED_VOLUME_DATA* = ptr NTFS_EXTENDED_VOLUME_DATA STARTING_LCN_INPUT_BUFFER* {.pure.} = object StartingLcn*: LARGE_INTEGER + PSTARTING_LCN_INPUT_BUFFER* = ptr STARTING_LCN_INPUT_BUFFER VOLUME_BITMAP_BUFFER* {.pure.} = object StartingLcn*: LARGE_INTEGER BitmapSize*: LARGE_INTEGER Buffer*: array[1, BYTE] + PVOLUME_BITMAP_BUFFER* = ptr VOLUME_BITMAP_BUFFER STARTING_VCN_INPUT_BUFFER* {.pure.} = object StartingVcn*: LARGE_INTEGER + PSTARTING_VCN_INPUT_BUFFER* = ptr STARTING_VCN_INPUT_BUFFER RETRIEVAL_POINTERS_BUFFER_Extents* {.pure.} = object NextVcn*: LARGE_INTEGER Lcn*: LARGE_INTEGER + RETRIEVAL_POINTERS_BUFFER* {.pure.} = object ExtentCount*: DWORD StartingVcn*: LARGE_INTEGER Extents*: array[1, RETRIEVAL_POINTERS_BUFFER_Extents] + PRETRIEVAL_POINTERS_BUFFER* = ptr RETRIEVAL_POINTERS_BUFFER NTFS_FILE_RECORD_INPUT_BUFFER* {.pure.} = object FileReferenceNumber*: LARGE_INTEGER + PNTFS_FILE_RECORD_INPUT_BUFFER* = ptr NTFS_FILE_RECORD_INPUT_BUFFER NTFS_FILE_RECORD_OUTPUT_BUFFER* {.pure.} = object FileReferenceNumber*: LARGE_INTEGER FileRecordLength*: DWORD FileRecordBuffer*: array[1, BYTE] + PNTFS_FILE_RECORD_OUTPUT_BUFFER* = ptr NTFS_FILE_RECORD_OUTPUT_BUFFER MOVE_FILE_DATA* {.pure.} = object FileHandle*: HANDLE StartingVcn*: LARGE_INTEGER StartingLcn*: LARGE_INTEGER ClusterCount*: DWORD + PMOVE_FILE_DATA* = ptr MOVE_FILE_DATA FIND_BY_SID_DATA* {.pure.} = object Restart*: DWORD Sid*: SID + PFIND_BY_SID_DATA* = ptr FIND_BY_SID_DATA FIND_BY_SID_OUTPUT* {.pure.} = object NextEntryOffset*: DWORD FileIndex*: DWORD FileNameLength*: DWORD FileName*: array[1, WCHAR] + PFIND_BY_SID_OUTPUT* = ptr FIND_BY_SID_OUTPUT MFT_ENUM_DATA* {.pure.} = object StartFileReferenceNumber*: DWORDLONG LowUsn*: USN HighUsn*: USN + PMFT_ENUM_DATA* = ptr MFT_ENUM_DATA CREATE_USN_JOURNAL_DATA* {.pure.} = object MaximumSize*: DWORDLONG AllocationDelta*: DWORDLONG + PCREATE_USN_JOURNAL_DATA* = ptr CREATE_USN_JOURNAL_DATA READ_USN_JOURNAL_DATA* {.pure.} = object StartUsn*: USN @@ -650,6 +756,7 @@ Timeout*: DWORDLONG BytesToWaitFor*: DWORDLONG UsnJournalID*: DWORDLONG + PREAD_USN_JOURNAL_DATA* = ptr READ_USN_JOURNAL_DATA USN_RECORD* {.pure.} = object RecordLength*: DWORD @@ -666,6 +773,7 @@ FileNameLength*: WORD FileNameOffset*: WORD FileName*: array[1, WCHAR] + PUSN_RECORD* = ptr USN_RECORD USN_JOURNAL_DATA* {.pure.} = object UsnJournalID*: DWORDLONG @@ -675,24 +783,29 @@ MaxUsn*: USN MaximumSize*: DWORDLONG AllocationDelta*: DWORDLONG + PUSN_JOURNAL_DATA* = ptr USN_JOURNAL_DATA DELETE_USN_JOURNAL_DATA* {.pure.} = object UsnJournalID*: DWORDLONG DeleteFlags*: DWORD + PDELETE_USN_JOURNAL_DATA* = ptr DELETE_USN_JOURNAL_DATA MARK_HANDLE_INFO* {.pure.} = object UsnSourceInfo*: DWORD VolumeHandle*: HANDLE HandleInfo*: DWORD + PMARK_HANDLE_INFO* = ptr MARK_HANDLE_INFO BULK_SECURITY_TEST_DATA* {.pure.} = object DesiredAccess*: ACCESS_MASK SecurityIds*: array[1, DWORD] + PBULK_SECURITY_TEST_DATA* = ptr BULK_SECURITY_TEST_DATA FILE_PREFETCH* {.pure.} = object Type*: DWORD Count*: DWORD Prefetch*: array[1, DWORDLONG] + PFILE_PREFETCH* = ptr FILE_PREFETCH FILESYSTEM_STATISTICS* {.pure.} = object FileSystemType*: WORD @@ -710,6 +823,7 @@ MetaDataWrites*: DWORD MetaDataWriteBytes*: DWORD MetaDataDiskWrites*: DWORD + PFILESYSTEM_STATISTICS* = ptr FILESYSTEM_STATISTICS FAT_STATISTICS* {.pure.} = object CreateHits*: DWORD @@ -721,6 +835,7 @@ NonCachedWriteBytes*: DWORD NonCachedDiskReads*: DWORD NonCachedDiskWrites*: DWORD + PFAT_STATISTICS* = ptr FAT_STATISTICS EXFAT_STATISTICS* {.pure.} = object CreateHits*: DWORD @@ -732,26 +847,31 @@ NonCachedWriteBytes*: DWORD NonCachedDiskReads*: DWORD NonCachedDiskWrites*: DWORD + PEXFAT_STATISTICS* = ptr EXFAT_STATISTICS NTFS_STATISTICS_MftWritesUserLevel* {.pure.} = object Write*: WORD Create*: WORD SetInfo*: WORD Flush*: WORD + NTFS_STATISTICS_Mft2WritesUserLevel* {.pure.} = object Write*: WORD Create*: WORD SetInfo*: WORD Flush*: WORD + NTFS_STATISTICS_BitmapWritesUserLevel* {.pure.} = object Write*: WORD Create*: WORD SetInfo*: WORD + NTFS_STATISTICS_MftBitmapWritesUserLevel* {.pure.} = object Write*: WORD Create*: WORD SetInfo*: WORD Flush*: WORD + NTFS_STATISTICS_Allocate* {.pure.} = object Calls*: DWORD Clusters*: DWORD @@ -763,6 +883,7 @@ CacheClusters*: DWORD CacheMiss*: DWORD CacheMissClusters*: DWORD + NTFS_STATISTICS* {.pure.} = object LogFileFullExceptions*: DWORD OtherExceptions*: DWORD @@ -809,39 +930,49 @@ LogFileWrites*: DWORD LogFileWriteBytes*: DWORD Allocate*: NTFS_STATISTICS_Allocate + PNTFS_STATISTICS* = ptr NTFS_STATISTICS FILE_OBJECTID_BUFFER_UNION1_STRUCT1* {.pure.} = object BirthVolumeId*: array[16, BYTE] BirthObjectId*: array[16, BYTE] DomainId*: array[16, BYTE] + FILE_OBJECTID_BUFFER_UNION1* {.pure, union.} = object struct1*: FILE_OBJECTID_BUFFER_UNION1_STRUCT1 ExtendedInfo*: array[48, BYTE] + FILE_OBJECTID_BUFFER* {.pure.} = object ObjectId*: array[16, BYTE] union1*: FILE_OBJECTID_BUFFER_UNION1 + PFILE_OBJECTID_BUFFER* = ptr FILE_OBJECTID_BUFFER FILE_SET_SPARSE_BUFFER* {.pure.} = object SetSparse*: BOOLEAN + PFILE_SET_SPARSE_BUFFER* = ptr FILE_SET_SPARSE_BUFFER FILE_ZERO_DATA_INFORMATION* {.pure.} = object FileOffset*: LARGE_INTEGER BeyondFinalZero*: LARGE_INTEGER + PFILE_ZERO_DATA_INFORMATION* = ptr FILE_ZERO_DATA_INFORMATION FILE_ALLOCATED_RANGE_BUFFER* {.pure.} = object FileOffset*: LARGE_INTEGER Length*: LARGE_INTEGER + PFILE_ALLOCATED_RANGE_BUFFER* = ptr FILE_ALLOCATED_RANGE_BUFFER ENCRYPTION_BUFFER* {.pure.} = object EncryptionOperation*: DWORD Private*: array[1, BYTE] + PENCRYPTION_BUFFER* = ptr ENCRYPTION_BUFFER DECRYPTION_STATUS_BUFFER* {.pure.} = object NoEncryptedStreams*: BOOLEAN + PDECRYPTION_STATUS_BUFFER* = ptr DECRYPTION_STATUS_BUFFER REQUEST_RAW_ENCRYPTED_DATA* {.pure.} = object FileOffset*: LONGLONG Length*: DWORD + PREQUEST_RAW_ENCRYPTED_DATA* = ptr REQUEST_RAW_ENCRYPTED_DATA ENCRYPTED_DATA_INFO* {.pure.} = object StartingFileOffset*: DWORDLONG @@ -855,26 +986,31 @@ EncryptionFormat*: BYTE NumberOfDataBlocks*: WORD DataBlockSize*: array[ANYSIZE_ARRAY, DWORD] + PENCRYPTED_DATA_INFO* = ptr ENCRYPTED_DATA_INFO PLEX_READ_DATA_REQUEST* {.pure.} = object ByteOffset*: LARGE_INTEGER ByteLength*: DWORD PlexNumber*: DWORD + PPLEX_READ_DATA_REQUEST* = ptr PLEX_READ_DATA_REQUEST SI_COPYFILE* {.pure.} = object SourceFileNameLength*: DWORD DestinationFileNameLength*: DWORD Flags*: DWORD FileNameBuffer*: array[1, WCHAR] + PSI_COPYFILE* = ptr SI_COPYFILE STORAGE_DESCRIPTOR_HEADER* {.pure.} = object Version*: DWORD Size*: DWORD + PSTORAGE_DESCRIPTOR_HEADER* = ptr STORAGE_DESCRIPTOR_HEADER STORAGE_PROPERTY_QUERY* {.pure.} = object PropertyId*: STORAGE_PROPERTY_ID QueryType*: STORAGE_QUERY_TYPE AdditionalParameters*: array[1, BYTE] + PSTORAGE_PROPERTY_QUERY* = ptr STORAGE_PROPERTY_QUERY STORAGE_DEVICE_DESCRIPTOR* {.pure.} = object Version*: DWORD @@ -890,6 +1026,7 @@ BusType*: STORAGE_BUS_TYPE RawPropertiesLength*: DWORD RawDeviceProperties*: array[1, BYTE] + PSTORAGE_DEVICE_DESCRIPTOR* = ptr STORAGE_DEVICE_DESCRIPTOR STORAGE_ADAPTER_DESCRIPTOR* {.pure.} = object Version*: DWORD @@ -904,27 +1041,33 @@ BusType*: BYTE BusMajorVersion*: WORD BusMinorVersion*: WORD + PSTORAGE_ADAPTER_DESCRIPTOR* = ptr STORAGE_ADAPTER_DESCRIPTOR STORAGE_DEVICE_ID_DESCRIPTOR* {.pure.} = object Version*: DWORD Size*: DWORD NumberOfIdentifiers*: DWORD Identifiers*: array[1, BYTE] + PSTORAGE_DEVICE_ID_DESCRIPTOR* = ptr STORAGE_DEVICE_ID_DESCRIPTOR VOLUME_GET_GPT_ATTRIBUTES_INFORMATION* {.pure.} = object GptAttributes*: ULONGLONG + PVOLUME_GET_GPT_ATTRIBUTES_INFORMATION* = ptr VOLUME_GET_GPT_ATTRIBUTES_INFORMATION FILE_MAKE_COMPATIBLE_BUFFER* {.pure.} = object CloseDisc*: BOOLEAN + PFILE_MAKE_COMPATIBLE_BUFFER* = ptr FILE_MAKE_COMPATIBLE_BUFFER FILE_SET_DEFECT_MGMT_BUFFER* {.pure.} = object Disable*: BOOLEAN + PFILE_SET_DEFECT_MGMT_BUFFER* = ptr FILE_SET_DEFECT_MGMT_BUFFER FILE_QUERY_SPARING_BUFFER* {.pure.} = object SparingUnitBytes*: ULONG SoftwareSparing*: BOOLEAN TotalSpareBlocks*: ULONG FreeSpareBlocks*: ULONG + PFILE_QUERY_SPARING_BUFFER* = ptr FILE_QUERY_SPARING_BUFFER FILE_QUERY_ON_DISK_VOL_INFO_BUFFER* {.pure.} = object DirectoryCount*: LARGE_INTEGER @@ -938,11 +1081,13 @@ AbstractInfo*: array[34, WCHAR] FormattingImplementationInfo*: array[34, WCHAR] LastModifyingImplementationInfo*: array[34, WCHAR] + PFILE_QUERY_ON_DISK_VOL_INFO_BUFFER* = ptr FILE_QUERY_ON_DISK_VOL_INFO_BUFFER SHRINK_VOLUME_INFORMATION* {.pure.} = object ShrinkRequestType*: SHRINK_VOLUME_REQUEST_TYPES Flags*: DWORDLONG NewNumberOfSectors*: LONGLONG + PSHRINK_VOLUME_INFORMATION* = ptr SHRINK_VOLUME_INFORMATION TXFS_MODIFY_RM* {.pure.} = object Flags*: ULONG @@ -953,6 +1098,7 @@ LogAutoShrinkPercentage*: ULONG Reserved*: ULONGLONG LoggingMode*: USHORT + PTXFS_MODIFY_RM* = ptr TXFS_MODIFY_RM TXFS_QUERY_RM_INFORMATION* {.pure.} = object BytesRequired*: ULONG @@ -981,12 +1127,14 @@ OldestTransactionAge*: ULONGLONG RMName*: GUID TmLogPathOffset*: ULONG + PTXFS_QUERY_RM_INFORMATION* = ptr TXFS_QUERY_RM_INFORMATION TXFS_ROLLFORWARD_REDO_INFORMATION* {.pure.} = object LastVirtualClock*: LARGE_INTEGER LastRedoLsn*: ULONGLONG HighestRecoveryLsn*: ULONGLONG Flags*: ULONG + PTXFS_ROLLFORWARD_REDO_INFORMATION* = ptr TXFS_ROLLFORWARD_REDO_INFORMATION TXFS_START_RM_INFORMATION* {.pure.} = object Flags*: ULONG @@ -1001,15 +1149,18 @@ LogPathLength*: USHORT Reserved*: USHORT LogPath*: array[1, WCHAR] + PTXFS_START_RM_INFORMATION* = ptr TXFS_START_RM_INFORMATION TXFS_GET_METADATA_INFO_OUT_TxfFileId* {.pure.} = object LowPart*: LONGLONG HighPart*: LONGLONG + TXFS_GET_METADATA_INFO_OUT* {.pure.} = object TxfFileId*: TXFS_GET_METADATA_INFO_OUT_TxfFileId LockingTransaction*: GUID LastLsn*: ULONGLONG TransactionState*: ULONG + PTXFS_GET_METADATA_INFO_OUT* = ptr TXFS_GET_METADATA_INFO_OUT TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY* {.pure.} = object Offset*: ULONGLONG @@ -1019,12 +1170,15 @@ Reserved2*: ULONG Reserved3*: LONGLONG FileName*: array[1, WCHAR] - PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY* = ptr TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY + + PTXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY* = + ptr TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY TXFS_LIST_TRANSACTION_LOCKED_FILES* {.pure.} = object KtmTransaction*: GUID NumberOfFiles*: ULONGLONG BufferSizeRequired*: ULONGLONG Offset*: ULONGLONG + PTXFS_LIST_TRANSACTION_LOCKED_FILES* = ptr TXFS_LIST_TRANSACTION_LOCKED_FILES TXFS_LIST_TRANSACTIONS_ENTRY* {.pure.} = object TransactionId*: GUID @@ -1032,19 +1186,24 @@ Reserved1*: ULONG Reserved2*: ULONG Reserved3*: LONGLONG + PTXFS_LIST_TRANSACTIONS_ENTRY* = ptr TXFS_LIST_TRANSACTIONS_ENTRY TXFS_LIST_TRANSACTIONS* {.pure.} = object NumberOfTransactions*: ULONGLONG BufferSizeRequired*: ULONGLONG + PTXFS_LIST_TRANSACTIONS* = ptr TXFS_LIST_TRANSACTIONS TXFS_READ_BACKUP_INFORMATION_OUT_UNION1* {.pure, union.} = object BufferLength*: ULONG Buffer*: UCHAR + TXFS_READ_BACKUP_INFORMATION_OUT* {.pure.} = object union1*: TXFS_READ_BACKUP_INFORMATION_OUT_UNION1 + PTXFS_READ_BACKUP_INFORMATION_OUT* = ptr TXFS_READ_BACKUP_INFORMATION_OUT TXFS_WRITE_BACKUP_INFORMATION* {.pure.} = object Buffer*: UCHAR + PTXFS_WRITE_BACKUP_INFORMATION* = ptr TXFS_WRITE_BACKUP_INFORMATION TXFS_GET_TRANSACTED_VERSION* {.pure.} = object ThisBaseVersion*: ULONG @@ -1052,20 +1211,24 @@ ThisMiniVersion*: USHORT FirstMiniVersion*: USHORT LatestMiniVersion*: USHORT + PTXFS_GET_TRANSACTED_VERSION* = ptr TXFS_GET_TRANSACTED_VERSION TXFS_SAVEPOINT_INFORMATION* {.pure.} = object KtmTransaction*: HANDLE ActionCode*: ULONG SavepointId*: ULONG + PTXFS_SAVEPOINT_INFORMATION* = ptr TXFS_SAVEPOINT_INFORMATION TXFS_CREATE_MINIVERSION_INFO* {.pure.} = object StructureVersion*: USHORT StructureLength*: USHORT BaseVersion*: ULONG MiniVersion*: USHORT + PTXFS_CREATE_MINIVERSION_INFO* = ptr TXFS_CREATE_MINIVERSION_INFO TXFS_TRANSACTION_ACTIVE_INFO* {.pure.} = object TransactionsActiveAtSnapshot*: WINBOOL + PTXFS_TRANSACTION_ACTIVE_INFO* = ptr TXFS_TRANSACTION_ACTIVE_INFO STORAGE_WRITE_CACHE_PROPERTY* {.pure.} = object Version*: DWORD @@ -1077,6 +1240,7 @@ FlushCacheSupported*: BOOLEAN UserDefinedPowerProtection*: BOOLEAN NVCacheEnabled*: BOOLEAN + PSTORAGE_WRITE_CACHE_PROPERTY* = ptr STORAGE_WRITE_CACHE_PROPERTY STORAGE_MINIPORT_DESCRIPTOR* {.pure.} = object Version*: DWORD @@ -1084,6 +1248,7 @@ Portdriver*: STORAGE_PORT_CODE_SET LUNResetSupported*: BOOLEAN TargetResetSupported*: BOOLEAN + PSTORAGE_MINIPORT_DESCRIPTOR* = ptr STORAGE_MINIPORT_DESCRIPTOR STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR* {.pure.} = object Version*: DWORD @@ -1093,22 +1258,26 @@ BytesPerLogicalSector*: DWORD BytesPerPhysicalSector*: DWORD BytesOffsetForSectorAlignment*: DWORD + PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR* = ptr STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR DEVICE_SEEK_PENALTY_DESCRIPTOR* {.pure.} = object Version*: DWORD Size*: DWORD IncursSeekPenalty*: BOOLEAN + PDEVICE_SEEK_PENALTY_DESCRIPTOR* = ptr DEVICE_SEEK_PENALTY_DESCRIPTOR DEVICE_TRIM_DESCRIPTOR* {.pure.} = object Version*: DWORD Size*: DWORD TrimEnabled*: BOOLEAN + PDEVICE_TRIM_DESCRIPTOR* = ptr DEVICE_TRIM_DESCRIPTOR REQUEST_OPLOCK_INPUT_BUFFER* {.pure.} = object StructureVersion*: WORD StructureLength*: WORD RequestedOplockLevel*: DWORD Flags*: DWORD + PREQUEST_OPLOCK_INPUT_BUFFER* = ptr REQUEST_OPLOCK_INPUT_BUFFER REQUEST_OPLOCK_OUTPUT_BUFFER* {.pure.} = object StructureVersion*: WORD @@ -1118,28 +1287,35 @@ Flags*: DWORD AccessMode*: ACCESS_MASK ShareMode*: WORD + PREQUEST_OPLOCK_OUTPUT_BUFFER* = ptr REQUEST_OPLOCK_OUTPUT_BUFFER BOOT_AREA_INFO_BootSectors* {.pure.} = object Offset*: LARGE_INTEGER + BOOT_AREA_INFO* {.pure.} = object BootSectorCount*: ULONG BootSectors*: array[2, BOOT_AREA_INFO_BootSectors] + PBOOT_AREA_INFO* = ptr BOOT_AREA_INFO RETRIEVAL_POINTER_BASE* {.pure.} = object FileAreaOffset*: LARGE_INTEGER + PRETRIEVAL_POINTER_BASE* = ptr RETRIEVAL_POINTER_BASE FILE_SYSTEM_RECOGNITION_INFORMATION* {.pure.} = object FileSystem*: array[9, CHAR] + PFILE_SYSTEM_RECOGNITION_INFORMATION* = ptr FILE_SYSTEM_RECOGNITION_INFORMATION LOOKUP_STREAM_FROM_CLUSTER_INPUT* {.pure.} = object Flags*: DWORD NumberOfClusters*: DWORD Cluster*: array[1, LARGE_INTEGER] + PLOOKUP_STREAM_FROM_CLUSTER_INPUT* = ptr LOOKUP_STREAM_FROM_CLUSTER_INPUT LOOKUP_STREAM_FROM_CLUSTER_OUTPUT* {.pure.} = object Offset*: DWORD NumberOfMatches*: DWORD BufferSizeRequired*: DWORD + PLOOKUP_STREAM_FROM_CLUSTER_OUTPUT* = ptr LOOKUP_STREAM_FROM_CLUSTER_OUTPUT LOOKUP_STREAM_FROM_CLUSTER_ENTRY* {.pure.} = object OffsetToNext*: DWORD @@ -1147,16 +1323,20 @@ Reserved*: LARGE_INTEGER Cluster*: LARGE_INTEGER FileName*: array[1, WCHAR] + PLOOKUP_STREAM_FROM_CLUSTER_ENTRY* = ptr LOOKUP_STREAM_FROM_CLUSTER_ENTRY DISK_EXTENT* {.pure.} = object DiskNumber*: DWORD StartingOffset*: LARGE_INTEGER ExtentLength*: LARGE_INTEGER + PDISK_EXTENT* = ptr DISK_EXTENT VOLUME_DISK_EXTENTS* {.pure.} = object NumberOfDiskExtents*: DWORD Extents*: array[1, DISK_EXTENT] + PVOLUME_DISK_EXTENTS* = ptr VOLUME_DISK_EXTENTS + const GUID_DEVINTERFACE_DISK* = DEFINE_GUID("53f56307-b6bf-11d0-94f2-00a0c91efb8b") GUID_DEVINTERFACE_CDROM* = DEFINE_GUID("53f56308-b6bf-11d0-94f2-00a0c91efb8b") @@ -1169,7 +1349,8 @@ GUID_DEVINTERFACE_CDCHANGER* = DEFINE_GUID("53f56312-b6bf-11d0-94f2-00a0c91efb8b") GUID_DEVINTERFACE_STORAGEPORT* = DEFINE_GUID("2accfe60-c130-11d2-b082-00a0c91efb8b") GUID_DEVINTERFACE_COMPORT* = DEFINE_GUID("86e0d1e0-8089-11d0-9ce4-08003e301f73") - GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR* = DEFINE_GUID("4d36e978-e325-11ce-bfc1-08002be10318") + GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR* = + DEFINE_GUID("4d36e978-e325-11ce-bfc1-08002be10318") diskClassGuid* = GUID_DEVINTERFACE_DISK cdRomClassGuid* = GUID_DEVINTERFACE_CDROM partitionClassGuid* = GUID_DEVINTERFACE_PARTITION @@ -1252,33 +1433,63 @@ FILE_READ_ACCESS* = 0x0001 FILE_WRITE_ACCESS* = 0x0002 IOCTL_STORAGE_BASE* = FILE_DEVICE_MASS_STORAGE -template CTL_CODE*(t: untyped, f: untyped, m: untyped, a:untyped): untyped = (t shl 16) or (a shl 14) or (f shl 2) or m +template CTL_CODE*(t: untyped, f: untyped, m: untyped, a: untyped): untyped = + (t shl 16) or (a shl 14) or (f shl 2) or m + const - IOCTL_STORAGE_CHECK_VERIFY* = CTL_CODE(IOCTL_STORAGE_BASE,0x0200,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_CHECK_VERIFY2* = CTL_CODE(IOCTL_STORAGE_BASE,0x0200,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_MEDIA_REMOVAL* = CTL_CODE(IOCTL_STORAGE_BASE,0x0201,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_EJECT_MEDIA* = CTL_CODE(IOCTL_STORAGE_BASE,0x0202,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_LOAD_MEDIA* = CTL_CODE(IOCTL_STORAGE_BASE,0x0203,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_LOAD_MEDIA2* = CTL_CODE(IOCTL_STORAGE_BASE,0x0203,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_RESERVE* = CTL_CODE(IOCTL_STORAGE_BASE,0x0204,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_RELEASE* = CTL_CODE(IOCTL_STORAGE_BASE,0x0205,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_FIND_NEW_DEVICES* = CTL_CODE(IOCTL_STORAGE_BASE,0x0206,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_EJECTION_CONTROL* = CTL_CODE(IOCTL_STORAGE_BASE,0x0250,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_MCN_CONTROL* = CTL_CODE(IOCTL_STORAGE_BASE,0x0251,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_GET_MEDIA_TYPES* = CTL_CODE(IOCTL_STORAGE_BASE,0x0300,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_GET_MEDIA_TYPES_EX* = CTL_CODE(IOCTL_STORAGE_BASE,0x0301,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER* = CTL_CODE(IOCTL_STORAGE_BASE,0x0304,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_GET_HOTPLUG_INFO* = CTL_CODE(IOCTL_STORAGE_BASE,0x0305,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_SET_HOTPLUG_INFO* = CTL_CODE(IOCTL_STORAGE_BASE,0x0306,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_STORAGE_RESET_BUS* = CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_RESET_DEVICE* = CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_BREAK_RESERVATION* = CTL_CODE(IOCTL_STORAGE_BASE,0x0405,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_STORAGE_GET_DEVICE_NUMBER* = CTL_CODE(IOCTL_STORAGE_BASE,0x0420,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_PREDICT_FAILURE* = CTL_CODE(IOCTL_STORAGE_BASE,0x0440,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_READ_CAPACITY* = CTL_CODE(IOCTL_STORAGE_BASE,0x0450,METHOD_BUFFERED,FILE_READ_ACCESS) - OBSOLETE_IOCTL_STORAGE_RESET_BUS* = CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - OBSOLETE_IOCTL_STORAGE_RESET_DEVICE* = CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES* = CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS) + IOCTL_STORAGE_CHECK_VERIFY* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_CHECK_VERIFY2* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0200, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_MEDIA_REMOVAL* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_EJECT_MEDIA* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_LOAD_MEDIA* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_LOAD_MEDIA2* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0203, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_RESERVE* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_RELEASE* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_FIND_NEW_DEVICES* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_EJECTION_CONTROL* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0250, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_MCN_CONTROL* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0251, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_GET_MEDIA_TYPES* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_GET_MEDIA_TYPES_EX* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0301, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0304, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_GET_HOTPLUG_INFO* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0305, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_SET_HOTPLUG_INFO* = CTL_CODE( + IOCTL_STORAGE_BASE, 0x0306, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_STORAGE_RESET_BUS* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_RESET_DEVICE* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_BREAK_RESERVATION* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0405, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_STORAGE_GET_DEVICE_NUMBER* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0420, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_PREDICT_FAILURE* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0440, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_READ_CAPACITY* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS) + OBSOLETE_IOCTL_STORAGE_RESET_BUS* = CTL_CODE( + IOCTL_STORAGE_BASE, 0x0400, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + OBSOLETE_IOCTL_STORAGE_RESET_DEVICE* = CTL_CODE( + IOCTL_STORAGE_BASE, 0x0401, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS) DeviceDsmActionFlag_NonDestructive* = 0x80000000'i32 DeviceDsmAction_None* = 0 DeviceDsmAction_Trim* = 1 @@ -1381,55 +1592,121 @@ busTypeMax* = 0x1 busTypeMaxReserved* = 0x7F IOCTL_DISK_BASE* = FILE_DEVICE_DISK - IOCTL_DISK_GET_DRIVE_GEOMETRY* = CTL_CODE(IOCTL_DISK_BASE,0x0000,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_GET_PARTITION_INFO* = CTL_CODE(IOCTL_DISK_BASE,0x0001,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_SET_PARTITION_INFO* = CTL_CODE(IOCTL_DISK_BASE,0x0002,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_GET_DRIVE_LAYOUT* = CTL_CODE(IOCTL_DISK_BASE,0x0003,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_SET_DRIVE_LAYOUT* = CTL_CODE(IOCTL_DISK_BASE,0x0004,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_VERIFY* = CTL_CODE(IOCTL_DISK_BASE,0x0005,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_FORMAT_TRACKS* = CTL_CODE(IOCTL_DISK_BASE,0x0006,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_REASSIGN_BLOCKS* = CTL_CODE(IOCTL_DISK_BASE,0x0007,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_PERFORMANCE* = CTL_CODE(IOCTL_DISK_BASE,0x0008,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_IS_WRITABLE* = CTL_CODE(IOCTL_DISK_BASE,0x0009,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_LOGGING* = CTL_CODE(IOCTL_DISK_BASE,0x000a,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_FORMAT_TRACKS_EX* = CTL_CODE(IOCTL_DISK_BASE,0x000b,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_HISTOGRAM_STRUCTURE* = CTL_CODE(IOCTL_DISK_BASE,0x000c,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_HISTOGRAM_DATA* = CTL_CODE(IOCTL_DISK_BASE,0x000d,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_HISTOGRAM_RESET* = CTL_CODE(IOCTL_DISK_BASE,0x000e,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_REQUEST_STRUCTURE* = CTL_CODE(IOCTL_DISK_BASE,0x000f,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_REQUEST_DATA* = CTL_CODE(IOCTL_DISK_BASE,0x0010,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_PERFORMANCE_OFF* = CTL_CODE(IOCTL_DISK_BASE,0x0018,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_CONTROLLER_NUMBER* = CTL_CODE(IOCTL_DISK_BASE,0x0011,METHOD_BUFFERED,FILE_ANY_ACCESS) - SMART_GET_VERSION* = CTL_CODE(IOCTL_DISK_BASE,0x0020,METHOD_BUFFERED,FILE_READ_ACCESS) - SMART_SEND_DRIVE_COMMAND* = CTL_CODE(IOCTL_DISK_BASE,0x0021,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - SMART_RCV_DRIVE_DATA* = CTL_CODE(IOCTL_DISK_BASE,0x0022,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_GET_PARTITION_INFO_EX* = CTL_CODE(IOCTL_DISK_BASE,0x0012,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_SET_PARTITION_INFO_EX* = CTL_CODE(IOCTL_DISK_BASE,0x0013,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_GET_DRIVE_LAYOUT_EX* = CTL_CODE(IOCTL_DISK_BASE,0x0014,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_SET_DRIVE_LAYOUT_EX* = CTL_CODE(IOCTL_DISK_BASE,0x0015,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_CREATE_DISK* = CTL_CODE(IOCTL_DISK_BASE,0x0016,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_GET_LENGTH_INFO* = CTL_CODE(IOCTL_DISK_BASE,0x0017,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_GET_DRIVE_GEOMETRY_EX* = CTL_CODE(IOCTL_DISK_BASE,0x0028,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_REASSIGN_BLOCKS_EX* = CTL_CODE(IOCTL_DISK_BASE,0x0029,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_UPDATE_DRIVE_SIZE* = CTL_CODE(IOCTL_DISK_BASE,0x0032,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_GROW_PARTITION* = CTL_CODE(IOCTL_DISK_BASE,0x0034,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_GET_CACHE_INFORMATION* = CTL_CODE(IOCTL_DISK_BASE,0x0035,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_SET_CACHE_INFORMATION* = CTL_CODE(IOCTL_DISK_BASE,0x0036,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - OBSOLETE_DISK_GET_WRITE_CACHE_STATE* = CTL_CODE(IOCTL_DISK_BASE,0x0037,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_DELETE_DRIVE_LAYOUT* = CTL_CODE(IOCTL_DISK_BASE,0x0040,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_UPDATE_PROPERTIES* = CTL_CODE(IOCTL_DISK_BASE,0x0050,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_RESET_SNAPSHOT_INFO* = CTL_CODE(IOCTL_DISK_BASE,0x0084,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_FORMAT_DRIVE* = CTL_CODE(IOCTL_DISK_BASE,0x00f3,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_DISK_SENSE_DEVICE* = CTL_CODE(IOCTL_DISK_BASE,0x00f8,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_DISK_CHECK_VERIFY* = CTL_CODE(IOCTL_DISK_BASE,0x0200,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_MEDIA_REMOVAL* = CTL_CODE(IOCTL_DISK_BASE,0x0201,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_EJECT_MEDIA* = CTL_CODE(IOCTL_DISK_BASE,0x0202,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_LOAD_MEDIA* = CTL_CODE(IOCTL_DISK_BASE,0x0203,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_RESERVE* = CTL_CODE(IOCTL_DISK_BASE,0x0204,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_RELEASE* = CTL_CODE(IOCTL_DISK_BASE,0x0205,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_FIND_NEW_DEVICES* = CTL_CODE(IOCTL_DISK_BASE,0x0206,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_DISK_GET_MEDIA_TYPES* = CTL_CODE(IOCTL_DISK_BASE,0x0300,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_STORAGE_QUERY_PROPERTY* = CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_GET_DRIVE_GEOMETRY* = + CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_GET_PARTITION_INFO* = + CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_SET_PARTITION_INFO* = CTL_CODE( + IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_GET_DRIVE_LAYOUT* = + CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_SET_DRIVE_LAYOUT* = CTL_CODE( + IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_VERIFY* = + CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_FORMAT_TRACKS* = CTL_CODE( + IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_REASSIGN_BLOCKS* = CTL_CODE( + IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_PERFORMANCE* = + CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_IS_WRITABLE* = + CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_LOGGING* = + CTL_CODE(IOCTL_DISK_BASE, 0x000a, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_FORMAT_TRACKS_EX* = CTL_CODE( + IOCTL_DISK_BASE, 0x000b, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_HISTOGRAM_STRUCTURE* = + CTL_CODE(IOCTL_DISK_BASE, 0x000c, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_HISTOGRAM_DATA* = + CTL_CODE(IOCTL_DISK_BASE, 0x000d, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_HISTOGRAM_RESET* = + CTL_CODE(IOCTL_DISK_BASE, 0x000e, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_REQUEST_STRUCTURE* = + CTL_CODE(IOCTL_DISK_BASE, 0x000f, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_REQUEST_DATA* = + CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_PERFORMANCE_OFF* = + CTL_CODE(IOCTL_DISK_BASE, 0x0018, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_CONTROLLER_NUMBER* = + CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS) + SMART_GET_VERSION* = + CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS) + SMART_SEND_DRIVE_COMMAND* = CTL_CODE( + IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + SMART_RCV_DRIVE_DATA* = CTL_CODE( + IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_GET_PARTITION_INFO_EX* = + CTL_CODE(IOCTL_DISK_BASE, 0x0012, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_SET_PARTITION_INFO_EX* = CTL_CODE( + IOCTL_DISK_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_GET_DRIVE_LAYOUT_EX* = + CTL_CODE(IOCTL_DISK_BASE, 0x0014, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_SET_DRIVE_LAYOUT_EX* = CTL_CODE( + IOCTL_DISK_BASE, 0x0015, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_CREATE_DISK* = CTL_CODE( + IOCTL_DISK_BASE, 0x0016, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_GET_LENGTH_INFO* = + CTL_CODE(IOCTL_DISK_BASE, 0x0017, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_GET_DRIVE_GEOMETRY_EX* = + CTL_CODE(IOCTL_DISK_BASE, 0x0028, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_REASSIGN_BLOCKS_EX* = CTL_CODE( + IOCTL_DISK_BASE, 0x0029, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_UPDATE_DRIVE_SIZE* = CTL_CODE( + IOCTL_DISK_BASE, 0x0032, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_GROW_PARTITION* = CTL_CODE( + IOCTL_DISK_BASE, 0x0034, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_GET_CACHE_INFORMATION* = + CTL_CODE(IOCTL_DISK_BASE, 0x0035, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_SET_CACHE_INFORMATION* = CTL_CODE( + IOCTL_DISK_BASE, 0x0036, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + OBSOLETE_DISK_GET_WRITE_CACHE_STATE* = + CTL_CODE(IOCTL_DISK_BASE, 0x0037, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_DELETE_DRIVE_LAYOUT* = CTL_CODE( + IOCTL_DISK_BASE, 0x0040, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_UPDATE_PROPERTIES* = + CTL_CODE(IOCTL_DISK_BASE, 0x0050, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_RESET_SNAPSHOT_INFO* = CTL_CODE( + IOCTL_DISK_BASE, 0x0084, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_FORMAT_DRIVE* = CTL_CODE( + IOCTL_DISK_BASE, 0x00f3, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_DISK_SENSE_DEVICE* = + CTL_CODE(IOCTL_DISK_BASE, 0x00f8, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_DISK_CHECK_VERIFY* = + CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_MEDIA_REMOVAL* = + CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_EJECT_MEDIA* = + CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_LOAD_MEDIA* = + CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_RESERVE* = + CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_RELEASE* = + CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_FIND_NEW_DEVICES* = + CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_DISK_GET_MEDIA_TYPES* = + CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_STORAGE_QUERY_PROPERTY* = + CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS) PARTITION_ENTRY_UNUSED* = 0x00 PARTITION_FAT_12* = 0x01 PARTITION_XENIX_1* = 0x02 @@ -1537,17 +1814,31 @@ RETURN_SMART_STATUS* = 0xDA ENABLE_DISABLE_AUTO_OFFLINE* = 0xDB IOCTL_CHANGER_BASE* = FILE_DEVICE_CHANGER - IOCTL_CHANGER_GET_PARAMETERS* = CTL_CODE(IOCTL_CHANGER_BASE,0x0000,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_GET_STATUS* = CTL_CODE(IOCTL_CHANGER_BASE,0x0001,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_GET_PRODUCT_DATA* = CTL_CODE(IOCTL_CHANGER_BASE,0x0002,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_SET_ACCESS* = CTL_CODE(IOCTL_CHANGER_BASE,0x0004,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_CHANGER_GET_ELEMENT_STATUS* = CTL_CODE(IOCTL_CHANGER_BASE,0x0005,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS* = CTL_CODE(IOCTL_CHANGER_BASE,0x0006,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_SET_POSITION* = CTL_CODE(IOCTL_CHANGER_BASE,0x0007,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_EXCHANGE_MEDIUM* = CTL_CODE(IOCTL_CHANGER_BASE,0x0008,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_MOVE_MEDIUM* = CTL_CODE(IOCTL_CHANGER_BASE,0x0009,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_REINITIALIZE_TRANSPORT* = CTL_CODE(IOCTL_CHANGER_BASE,0x000A,METHOD_BUFFERED,FILE_READ_ACCESS) - IOCTL_CHANGER_QUERY_VOLUME_TAGS* = CTL_CODE(IOCTL_CHANGER_BASE,0x000B,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) + IOCTL_CHANGER_GET_PARAMETERS* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_GET_STATUS* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_GET_PRODUCT_DATA* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_SET_ACCESS* = CTL_CODE( + IOCTL_CHANGER_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_CHANGER_GET_ELEMENT_STATUS* = CTL_CODE( + IOCTL_CHANGER_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_CHANGER_INITIALIZE_ELEMENT_STATUS* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_SET_POSITION* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_EXCHANGE_MEDIUM* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_MOVE_MEDIUM* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_REINITIALIZE_TRANSPORT* = + CTL_CODE(IOCTL_CHANGER_BASE, 0x000A, METHOD_BUFFERED, FILE_READ_ACCESS) + IOCTL_CHANGER_QUERY_VOLUME_TAGS* = CTL_CODE( + IOCTL_CHANGER_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) allElements* = 0 changerTransport* = 1 changerSlot* = 2 @@ -1655,11 +1946,16 @@ deviceProblemCartridgeEjectError* = 11 deviceProblemGripperError* = 12 deviceProblemDriveError* = 13 - IOCTL_SERIAL_LSRMST_INSERT* = CTL_CODE(FILE_DEVICE_SERIAL_PORT,31,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_SERENUM_EXPOSE_HARDWARE* = CTL_CODE(FILE_DEVICE_SERENUM,128,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_SERENUM_REMOVE_HARDWARE* = CTL_CODE(FILE_DEVICE_SERENUM,129,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_SERENUM_PORT_DESC* = CTL_CODE(FILE_DEVICE_SERENUM,130,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_SERENUM_GET_PORT_NAME* = CTL_CODE(FILE_DEVICE_SERENUM,131,METHOD_BUFFERED,FILE_ANY_ACCESS) + IOCTL_SERIAL_LSRMST_INSERT* = + CTL_CODE(FILE_DEVICE_SERIAL_PORT, 31, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_SERENUM_EXPOSE_HARDWARE* = + CTL_CODE(FILE_DEVICE_SERENUM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_SERENUM_REMOVE_HARDWARE* = + CTL_CODE(FILE_DEVICE_SERENUM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_SERENUM_PORT_DESC* = + CTL_CODE(FILE_DEVICE_SERENUM, 130, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_SERENUM_GET_PORT_NAME* = + CTL_CODE(FILE_DEVICE_SERENUM, 131, METHOD_BUFFERED, FILE_ANY_ACCESS) SERIAL_LSRMST_ESCAPE* = BYTE 0x00 SERIAL_LSRMST_LSR_DATA* = BYTE 0x01 SERIAL_LSRMST_LSR_NODATA* = BYTE 0x02 @@ -1677,67 +1973,132 @@ SERIAL_IOC_MCR_OUT1* = DWORD 0x00000004 SERIAL_IOC_MCR_OUT2* = DWORD 0x00000008 SERIAL_IOC_MCR_LOOP* = DWORD 0x00000010 - FSCTL_REQUEST_OPLOCK_LEVEL_1* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,0,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_REQUEST_OPLOCK_LEVEL_2* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,1,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_REQUEST_BATCH_OPLOCK* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,2,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_OPLOCK_BREAK_ACKNOWLEDGE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,3,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_OPBATCH_ACK_CLOSE_PENDING* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,4,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_OPLOCK_BREAK_NOTIFY* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,5,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_LOCK_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,6,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_UNLOCK_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,7,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_DISMOUNT_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,8,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_IS_VOLUME_MOUNTED* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,10,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_IS_PATHNAME_VALID* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,11,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_MARK_VOLUME_DIRTY* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,12,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_QUERY_RETRIEVAL_POINTERS* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,14,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_GET_COMPRESSION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_SET_COMPRESSION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA or FILE_WRITE_DATA) - FSCTL_MARK_AS_SYSTEM_HIVE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,19,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_OPLOCK_BREAK_ACK_NO_2* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,20,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_INVALIDATE_VOLUMES* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,21,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_QUERY_FAT_BPB* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,22,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_REQUEST_FILTER_OPLOCK* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,23,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_FILESYSTEM_GET_STATISTICS* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,24,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_GET_NTFS_VOLUME_DATA* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,25,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_GET_NTFS_FILE_RECORD* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,26,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_GET_VOLUME_BITMAP* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,27,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_GET_RETRIEVAL_POINTERS* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,28,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_MOVE_FILE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,29,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_IS_VOLUME_DIRTY* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,30,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_ALLOW_EXTENDED_DASD_IO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,32,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_FIND_FILES_BY_SID* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,35,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_SET_OBJECT_ID* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,38,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_GET_OBJECT_ID* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,39,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_DELETE_OBJECT_ID* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,40,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_SET_REPARSE_POINT* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,41,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_GET_REPARSE_POINT* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,42,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_DELETE_REPARSE_POINT* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,43,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_ENUM_USN_DATA* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,44,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_SECURITY_ID_CHECK* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,45,METHOD_NEITHER,FILE_READ_DATA) - FSCTL_READ_USN_JOURNAL* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,46,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_SET_OBJECT_ID_EXTENDED* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,47,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_CREATE_OR_GET_OBJECT_ID* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,48,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_SET_SPARSE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,49,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) - FSCTL_SET_ZERO_DATA* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,50,METHOD_BUFFERED,FILE_WRITE_DATA) - FSCTL_QUERY_ALLOCATED_RANGES* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,51,METHOD_NEITHER,FILE_READ_DATA) - FSCTL_SET_ENCRYPTION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,53,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_ENCRYPTION_FSCTL_IO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,54,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_WRITE_RAW_ENCRYPTED* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,55,METHOD_NEITHER,FILE_SPECIAL_ACCESS) - FSCTL_READ_RAW_ENCRYPTED* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,56,METHOD_NEITHER,FILE_SPECIAL_ACCESS) - FSCTL_CREATE_USN_JOURNAL* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,57,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_READ_FILE_USN_DATA* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,58,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_WRITE_USN_CLOSE_RECORD* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,59,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_EXTEND_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,60,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_QUERY_USN_JOURNAL* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,61,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_DELETE_USN_JOURNAL* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,62,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_MARK_HANDLE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,63,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_SIS_COPYFILE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,64,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_SIS_LINK_FILES* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,65,METHOD_BUFFERED,FILE_READ_DATA or FILE_WRITE_DATA) - FSCTL_HSM_MSG* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,66,METHOD_BUFFERED,FILE_READ_DATA or FILE_WRITE_DATA) - FSCTL_HSM_DATA* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,68,METHOD_NEITHER,FILE_READ_DATA or FILE_WRITE_DATA) - FSCTL_RECALL_FILE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,69,METHOD_NEITHER,FILE_ANY_ACCESS) - FSCTL_READ_FROM_PLEX* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,71,METHOD_OUT_DIRECT,FILE_READ_DATA) - FSCTL_FILE_PREFETCH* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,72,METHOD_BUFFERED,FILE_SPECIAL_ACCESS) + FSCTL_REQUEST_OPLOCK_LEVEL_1* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_REQUEST_OPLOCK_LEVEL_2* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_REQUEST_BATCH_OPLOCK* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 2, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_OPLOCK_BREAK_ACKNOWLEDGE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 3, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_OPBATCH_ACK_CLOSE_PENDING* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_OPLOCK_BREAK_NOTIFY* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_LOCK_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_UNLOCK_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_DISMOUNT_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_IS_VOLUME_MOUNTED* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 10, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_IS_PATHNAME_VALID* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 11, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_MARK_VOLUME_DIRTY* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_RETRIEVAL_POINTERS* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 14, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_GET_COMPRESSION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SET_COMPRESSION* = CTL_CODE( + FILE_DEVICE_FILE_SYSTEM, 16, METHOD_BUFFERED, FILE_READ_DATA or FILE_WRITE_DATA + ) + FSCTL_MARK_AS_SYSTEM_HIVE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 19, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_OPLOCK_BREAK_ACK_NO_2* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 20, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_INVALIDATE_VOLUMES* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 21, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_FAT_BPB* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 22, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_REQUEST_FILTER_OPLOCK* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 23, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_FILESYSTEM_GET_STATISTICS* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 24, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_GET_NTFS_VOLUME_DATA* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 25, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_GET_NTFS_FILE_RECORD* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 26, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_GET_VOLUME_BITMAP* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 27, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_GET_RETRIEVAL_POINTERS* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 28, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_MOVE_FILE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 29, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_IS_VOLUME_DIRTY* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 30, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_ALLOW_EXTENDED_DASD_IO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 32, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_FIND_FILES_BY_SID* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 35, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_SET_OBJECT_ID* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 38, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_GET_OBJECT_ID* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 39, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_DELETE_OBJECT_ID* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 40, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_SET_REPARSE_POINT* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 41, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_GET_REPARSE_POINT* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 42, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_DELETE_REPARSE_POINT* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 43, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_ENUM_USN_DATA* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 44, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_SECURITY_ID_CHECK* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 45, METHOD_NEITHER, FILE_READ_DATA) + FSCTL_READ_USN_JOURNAL* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 46, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_SET_OBJECT_ID_EXTENDED* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 47, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_CREATE_OR_GET_OBJECT_ID* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 48, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SET_SPARSE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 49, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_SET_ZERO_DATA* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 50, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_QUERY_ALLOCATED_RANGES* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 51, METHOD_NEITHER, FILE_READ_DATA) + FSCTL_SET_ENCRYPTION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 53, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_ENCRYPTION_FSCTL_IO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 54, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_WRITE_RAW_ENCRYPTED* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 55, METHOD_NEITHER, FILE_SPECIAL_ACCESS) + FSCTL_READ_RAW_ENCRYPTED* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 56, METHOD_NEITHER, FILE_SPECIAL_ACCESS) + FSCTL_CREATE_USN_JOURNAL* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 57, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_READ_FILE_USN_DATA* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 58, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_WRITE_USN_CLOSE_RECORD* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 59, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_EXTEND_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 60, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_USN_JOURNAL* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 61, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_DELETE_USN_JOURNAL* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 62, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_MARK_HANDLE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 63, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SIS_COPYFILE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 64, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SIS_LINK_FILES* = CTL_CODE( + FILE_DEVICE_FILE_SYSTEM, 65, METHOD_BUFFERED, FILE_READ_DATA or FILE_WRITE_DATA + ) + FSCTL_HSM_MSG* = CTL_CODE( + FILE_DEVICE_FILE_SYSTEM, 66, METHOD_BUFFERED, FILE_READ_DATA or FILE_WRITE_DATA + ) + FSCTL_HSM_DATA* = CTL_CODE( + FILE_DEVICE_FILE_SYSTEM, 68, METHOD_NEITHER, FILE_READ_DATA or FILE_WRITE_DATA + ) + FSCTL_RECALL_FILE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 69, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_READ_FROM_PLEX* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 71, METHOD_OUT_DIRECT, FILE_READ_DATA) + FSCTL_FILE_PREFETCH* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 72, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) USN_PAGE_SIZE* = 0x1000 USN_REASON_DATA_OVERWRITE* = 0x00000001 USN_REASON_DATA_EXTEND* = 0x00000002 @@ -1799,39 +2160,72 @@ propertyExistsQuery* = 1 propertyMaskQuery* = 2 propertyQueryMaxDefined* = 3 - FSCTL_MAKE_MEDIA_COMPATIBLE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_SET_DEFECT_MANAGEMENT* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_QUERY_SPARING_INFO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_QUERY_ON_DISK_VOLUME_INFO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_SET_VOLUME_COMPRESSION_STATE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) - FSCTL_TXFS_MODIFY_RM* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,81, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_QUERY_RM_INFORMATION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,82, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_TXFS_ROLLFORWARD_REDO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,84, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_ROLLFORWARD_UNDO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,85, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_START_RM* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,86, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_SHUTDOWN_RM* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_READ_BACKUP_INFORMATION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,88, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_TXFS_WRITE_BACKUP_INFORMATION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,89, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_CREATE_SECONDARY_RM* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,90,METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_GET_METADATA_INFO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,91, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_TXFS_GET_TRANSACTED_VERSION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,92, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_TXFS_SAVEPOINT_INFORMATION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,94, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_CREATE_MINIVERSION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA) - FSCTL_TXFS_TRANSACTION_ACTIVE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,99, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_SET_ZERO_ON_DEALLOCATION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) - FSCTL_SET_REPAIR* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_GET_REPAIR* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_WAIT_FOR_REPAIR* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_INITIATE_REPAIR* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_CSC_INTERNAL* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS) - FSCTL_SHRINK_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) - FSCTL_SET_SHORT_NAME_BEHAVIOR* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_DFSR_SET_GHOST_HANDLE_STATE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_TXFS_LIST_TRANSACTIONS* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA) - FSCTL_QUERY_PAGEFILE_ENCRYPTION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_RESET_VOLUME_ALLOCATION_HINTS* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_TXFS_READ_BACKUP_INFORMATION2* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_MAKE_MEDIA_COMPATIBLE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 76, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_SET_DEFECT_MANAGEMENT* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 77, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_QUERY_SPARING_INFO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 78, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_ON_DISK_VOLUME_INFO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 79, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SET_VOLUME_COMPRESSION_STATE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 80, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_TXFS_MODIFY_RM* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 81, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_QUERY_RM_INFORMATION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 82, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_TXFS_ROLLFORWARD_REDO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 84, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_ROLLFORWARD_UNDO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 85, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_START_RM* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 86, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_SHUTDOWN_RM* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 87, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_READ_BACKUP_INFORMATION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 88, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_TXFS_WRITE_BACKUP_INFORMATION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 89, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_CREATE_SECONDARY_RM* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 90, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_GET_METADATA_INFO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 91, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_TXFS_GET_TRANSACTED_VERSION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 92, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_TXFS_SAVEPOINT_INFORMATION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 94, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_CREATE_MINIVERSION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 95, METHOD_BUFFERED, FILE_WRITE_DATA) + FSCTL_TXFS_TRANSACTION_ACTIVE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 99, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_SET_ZERO_ON_DEALLOCATION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 101, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_SET_REPAIR* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 102, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_GET_REPAIR* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 103, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_WAIT_FOR_REPAIR* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 104, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_INITIATE_REPAIR* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 106, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_CSC_INTERNAL* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 107, METHOD_NEITHER, FILE_ANY_ACCESS) + FSCTL_SHRINK_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 108, METHOD_BUFFERED, FILE_SPECIAL_ACCESS) + FSCTL_SET_SHORT_NAME_BEHAVIOR* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 109, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_DFSR_SET_GHOST_HANDLE_STATE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 110, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_TXFS_LIST_TRANSACTION_LOCKED_FILES* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 120, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_TXFS_LIST_TRANSACTIONS* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 121, METHOD_BUFFERED, FILE_READ_DATA) + FSCTL_QUERY_PAGEFILE_ENCRYPTION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 122, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_RESET_VOLUME_ALLOCATION_HINTS* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 123, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_TXFS_READ_BACKUP_INFORMATION2* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 126, METHOD_BUFFERED, FILE_ANY_ACCESS) SET_REPAIR_ENABLED* = 0x00000001 SET_REPAIR_VOLUME_BITMAP_SCAN* = 0x00000002 SET_REPAIR_DELETE_CROSSLINK* = 0x00000004 @@ -1864,15 +2258,31 @@ TXFS_TRANSACTION_STATE_ACTIVE* = 1 TXFS_TRANSACTION_STATE_PREPARED* = 2 TXFS_TRANSACTION_STATE_NOTACTIVE* = 3 - TXFS_MODIFY_RM_VALID_FLAGS* = TXFS_RM_FLAG_LOGGING_MODE or TXFS_RM_FLAG_RENAME_RM or TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX or TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN or TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS or TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT or TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE or TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX or TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN or TXFS_RM_FLAG_SHRINK_LOG or TXFS_RM_FLAG_GROW_LOG or TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE or TXFS_RM_FLAG_PRESERVE_CHANGES or TXFS_RM_FLAG_RESET_RM_AT_NEXT_START or TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START or TXFS_RM_FLAG_PREFER_CONSISTENCY or TXFS_RM_FLAG_PREFER_AVAILABILITY + TXFS_MODIFY_RM_VALID_FLAGS* = + TXFS_RM_FLAG_LOGGING_MODE or TXFS_RM_FLAG_RENAME_RM or + TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX or TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN or + TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS or + TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT or TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE or + TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX or TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN or + TXFS_RM_FLAG_SHRINK_LOG or TXFS_RM_FLAG_GROW_LOG or TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE or + TXFS_RM_FLAG_PRESERVE_CHANGES or TXFS_RM_FLAG_RESET_RM_AT_NEXT_START or + TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START or TXFS_RM_FLAG_PREFER_CONSISTENCY or + TXFS_RM_FLAG_PREFER_AVAILABILITY TXFS_RM_STATE_NOT_STARTED* = 0 TXFS_RM_STATE_STARTING* = 1 TXFS_RM_STATE_ACTIVE* = 3 TXFS_RM_STATE_SHUTTING_DOWN* = 4 - TXFS_QUERY_RM_INFORMATION_VALID_FLAGS* = TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS or TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT or TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX or TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN or TXFS_RM_FLAG_RESET_RM_AT_NEXT_START or TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START or TXFS_RM_FLAG_PREFER_CONSISTENCY or TXFS_RM_FLAG_PREFER_AVAILABILITY + TXFS_QUERY_RM_INFORMATION_VALID_FLAGS* = + TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS or + TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT or TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX or + TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN or TXFS_RM_FLAG_RESET_RM_AT_NEXT_START or + TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START or TXFS_RM_FLAG_PREFER_CONSISTENCY or + TXFS_RM_FLAG_PREFER_AVAILABILITY TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN* = 0x01 TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK* = 0x02 - TXFS_ROLLFORWARD_REDO_VALID_FLAGS* = TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN or TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK + TXFS_ROLLFORWARD_REDO_VALID_FLAGS* = + TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN or + TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX* = 0x00000001 TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN* = 0x00000002 TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE* = 0x00000004 @@ -1886,7 +2296,16 @@ TXFS_START_RM_FLAG_PRESERVE_CHANGES* = 0x00000800 TXFS_START_RM_FLAG_PREFER_CONSISTENCY* = 0x00001000 TXFS_START_RM_FLAG_PREFER_AVAILABILITY* = 0x00002000 - TXFS_START_RM_VALID_FLAGS* = TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX or TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN or TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE or TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS or TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT or TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE or TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT or TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX or TXFS_START_RM_FLAG_LOGGING_MODE or TXFS_START_RM_FLAG_PRESERVE_CHANGES or TXFS_START_RM_FLAG_PREFER_CONSISTENCY or TXFS_START_RM_FLAG_PREFER_AVAILABILITY + TXFS_START_RM_VALID_FLAGS* = + TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX or + TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN or TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE or + TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS or + TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT or + TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE or + TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT or + TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX or TXFS_START_RM_FLAG_LOGGING_MODE or + TXFS_START_RM_FLAG_PRESERVE_CHANGES or TXFS_START_RM_FLAG_PREFER_CONSISTENCY or + TXFS_START_RM_FLAG_PREFER_AVAILABILITY TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED* = 0x00000001 TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED* = 0x000000012 TXFS_TRANSACTED_VERSION_NONTRANSACTED* = 0xFFFFFFFE'i32 @@ -1919,106 +2338,305 @@ LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA* = 0x01000000 LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX* = 0x02000000 LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM* = 0x03000000 - FSCTL_QUERY_DEPENDENT_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,124, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_SD_GLOBAL_CHANGE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,125, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_LOOKUP_STREAM_FROM_CLUSTER* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,127, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_TXFS_WRITE_BACKUP_INFORMATION2* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,128, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_FILE_TYPE_NOTIFICATION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,129, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_GET_BOOT_AREA_INFO* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,140, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_GET_RETRIEVAL_POINTER_BASE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,141, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_SET_PERSISTENT_VOLUME_STATE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_QUERY_PERSISTENT_VOLUME_STATE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_REQUEST_OPLOCK* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,144,METHOD_BUFFERED,FILE_ANY_ACCESS) - FSCTL_CSV_TUNNEL_REQUEST* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_IS_CSV_FILE* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_QUERY_FILE_SYSTEM_RECOGNITION* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,147, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_CSV_GET_VOLUME_PATH_NAME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM,148, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS) - FSCTL_IS_FILE_ON_CSV_VOLUME* = CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_DEPENDENT_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 124, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SD_GLOBAL_CHANGE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 125, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_LOOKUP_STREAM_FROM_CLUSTER* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 127, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_TXFS_WRITE_BACKUP_INFORMATION2* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 128, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_FILE_TYPE_NOTIFICATION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 129, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_GET_BOOT_AREA_INFO* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 140, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_GET_RETRIEVAL_POINTER_BASE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 141, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_SET_PERSISTENT_VOLUME_STATE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 142, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_PERSISTENT_VOLUME_STATE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 143, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_REQUEST_OPLOCK* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 144, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_CSV_TUNNEL_REQUEST* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 145, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_IS_CSV_FILE* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 146, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_QUERY_FILE_SYSTEM_RECOGNITION* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 147, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_CSV_GET_VOLUME_PATH_NAME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 148, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_CSV_GET_VOLUME_NAME_FOR_VOLUME_MOUNT_POINT* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 149, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS) + FSCTL_IS_FILE_ON_CSV_VOLUME* = + CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS) IOCTL_VOLUME_BASE* = (DWORD) 'V' - IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS* = CTL_CODE(IOCTL_VOLUME_BASE,0,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE* = CTL_CODE(IOCTL_VOLUME_BASE,1,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_ONLINE* = CTL_CODE(IOCTL_VOLUME_BASE,2,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_VOLUME_OFFLINE* = CTL_CODE(IOCTL_VOLUME_BASE,3,METHOD_BUFFERED,FILE_READ_ACCESS or FILE_WRITE_ACCESS) - IOCTL_VOLUME_IS_OFFLINE* = CTL_CODE(IOCTL_VOLUME_BASE,4,METHOD_BUFFERED, FILE_ANY_ACCESS) - IOCTL_VOLUME_IS_IO_CAPABLE* = CTL_CODE(IOCTL_VOLUME_BASE,5,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_QUERY_FAILOVER_SET* = CTL_CODE(IOCTL_VOLUME_BASE,6,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_QUERY_VOLUME_NUMBER* = CTL_CODE(IOCTL_VOLUME_BASE,7,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_LOGICAL_TO_PHYSICAL* = CTL_CODE(IOCTL_VOLUME_BASE,8,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_PHYSICAL_TO_LOGICAL* = CTL_CODE(IOCTL_VOLUME_BASE,9,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_IS_CLUSTERED* = CTL_CODE(IOCTL_VOLUME_BASE,12,METHOD_BUFFERED,FILE_ANY_ACCESS) - IOCTL_VOLUME_GET_GPT_ATTRIBUTES* = CTL_CODE(IOCTL_VOLUME_BASE,14,METHOD_BUFFERED,FILE_ANY_ACCESS) + IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS* = + CTL_CODE(IOCTL_VOLUME_BASE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_SUPPORTS_ONLINE_OFFLINE* = + CTL_CODE(IOCTL_VOLUME_BASE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_ONLINE* = CTL_CODE( + IOCTL_VOLUME_BASE, 2, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_VOLUME_OFFLINE* = CTL_CODE( + IOCTL_VOLUME_BASE, 3, METHOD_BUFFERED, FILE_READ_ACCESS or FILE_WRITE_ACCESS + ) + IOCTL_VOLUME_IS_OFFLINE* = + CTL_CODE(IOCTL_VOLUME_BASE, 4, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_IS_IO_CAPABLE* = + CTL_CODE(IOCTL_VOLUME_BASE, 5, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_QUERY_FAILOVER_SET* = + CTL_CODE(IOCTL_VOLUME_BASE, 6, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_QUERY_VOLUME_NUMBER* = + CTL_CODE(IOCTL_VOLUME_BASE, 7, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_LOGICAL_TO_PHYSICAL* = + CTL_CODE(IOCTL_VOLUME_BASE, 8, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_PHYSICAL_TO_LOGICAL* = + CTL_CODE(IOCTL_VOLUME_BASE, 9, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_IS_CLUSTERED* = + CTL_CODE(IOCTL_VOLUME_BASE, 12, METHOD_BUFFERED, FILE_ANY_ACCESS) + IOCTL_VOLUME_GET_GPT_ATTRIBUTES* = + CTL_CODE(IOCTL_VOLUME_BASE, 14, METHOD_BUFFERED, FILE_ANY_ACCESS) HISTOGRAM_BUCKET_SIZE* = 0x00000008 DISK_HISTOGRAM_SIZE* = 0x00000048 -type - FILE_SYSTEM_RECOGNITION_STRUCTURE* {.pure.} = object - Jmp*: array[3, UCHAR] - FsName*: array[8, UCHAR] - MustBeZero*: array[5, UCHAR] - Identifier*: ULONG - Length*: USHORT - Checksum*: USHORT -proc `Mbr=`*(self: var SET_PARTITION_INFORMATION_EX, x: SET_PARTITION_INFORMATION_MBR) {.inline.} = self.union1.Mbr = x -proc Mbr*(self: SET_PARTITION_INFORMATION_EX): SET_PARTITION_INFORMATION_MBR {.inline.} = self.union1.Mbr -proc Mbr*(self: var SET_PARTITION_INFORMATION_EX): var SET_PARTITION_INFORMATION_MBR {.inline.} = self.union1.Mbr -proc `Gpt=`*(self: var SET_PARTITION_INFORMATION_EX, x: SET_PARTITION_INFORMATION_GPT) {.inline.} = self.union1.Gpt = x -proc Gpt*(self: SET_PARTITION_INFORMATION_EX): SET_PARTITION_INFORMATION_GPT {.inline.} = self.union1.Gpt -proc Gpt*(self: var SET_PARTITION_INFORMATION_EX): var SET_PARTITION_INFORMATION_GPT {.inline.} = self.union1.Gpt -proc `Mbr=`*(self: var CREATE_DISK, x: CREATE_DISK_MBR) {.inline.} = self.union1.Mbr = x -proc Mbr*(self: CREATE_DISK): CREATE_DISK_MBR {.inline.} = self.union1.Mbr -proc Mbr*(self: var CREATE_DISK): var CREATE_DISK_MBR {.inline.} = self.union1.Mbr -proc `Gpt=`*(self: var CREATE_DISK, x: CREATE_DISK_GPT) {.inline.} = self.union1.Gpt = x -proc Gpt*(self: CREATE_DISK): CREATE_DISK_GPT {.inline.} = self.union1.Gpt -proc Gpt*(self: var CREATE_DISK): var CREATE_DISK_GPT {.inline.} = self.union1.Gpt -proc `Mbr=`*(self: var PARTITION_INFORMATION_EX, x: PARTITION_INFORMATION_MBR) {.inline.} = self.union1.Mbr = x -proc Mbr*(self: PARTITION_INFORMATION_EX): PARTITION_INFORMATION_MBR {.inline.} = self.union1.Mbr -proc Mbr*(self: var PARTITION_INFORMATION_EX): var PARTITION_INFORMATION_MBR {.inline.} = self.union1.Mbr -proc `Gpt=`*(self: var PARTITION_INFORMATION_EX, x: PARTITION_INFORMATION_GPT) {.inline.} = self.union1.Gpt = x -proc Gpt*(self: PARTITION_INFORMATION_EX): PARTITION_INFORMATION_GPT {.inline.} = self.union1.Gpt -proc Gpt*(self: var PARTITION_INFORMATION_EX): var PARTITION_INFORMATION_GPT {.inline.} = self.union1.Gpt -proc `Mbr=`*(self: var DRIVE_LAYOUT_INFORMATION_EX, x: DRIVE_LAYOUT_INFORMATION_MBR) {.inline.} = self.union1.Mbr = x -proc Mbr*(self: DRIVE_LAYOUT_INFORMATION_EX): DRIVE_LAYOUT_INFORMATION_MBR {.inline.} = self.union1.Mbr -proc Mbr*(self: var DRIVE_LAYOUT_INFORMATION_EX): var DRIVE_LAYOUT_INFORMATION_MBR {.inline.} = self.union1.Mbr -proc `Gpt=`*(self: var DRIVE_LAYOUT_INFORMATION_EX, x: DRIVE_LAYOUT_INFORMATION_GPT) {.inline.} = self.union1.Gpt = x -proc Gpt*(self: DRIVE_LAYOUT_INFORMATION_EX): DRIVE_LAYOUT_INFORMATION_GPT {.inline.} = self.union1.Gpt -proc Gpt*(self: var DRIVE_LAYOUT_INFORMATION_EX): var DRIVE_LAYOUT_INFORMATION_GPT {.inline.} = self.union1.Gpt -proc `Int13=`*(self: var DISK_DETECTION_INFO, x: DISK_INT13_INFO) {.inline.} = self.union1.struct1.Int13 = x -proc Int13*(self: DISK_DETECTION_INFO): DISK_INT13_INFO {.inline.} = self.union1.struct1.Int13 -proc Int13*(self: var DISK_DETECTION_INFO): var DISK_INT13_INFO {.inline.} = self.union1.struct1.Int13 -proc `ExInt13=`*(self: var DISK_DETECTION_INFO, x: DISK_EX_INT13_INFO) {.inline.} = self.union1.struct1.ExInt13 = x -proc ExInt13*(self: DISK_DETECTION_INFO): DISK_EX_INT13_INFO {.inline.} = self.union1.struct1.ExInt13 -proc ExInt13*(self: var DISK_DETECTION_INFO): var DISK_EX_INT13_INFO {.inline.} = self.union1.struct1.ExInt13 -proc `Mbr=`*(self: var DISK_PARTITION_INFO, x: DISK_PARTITION_INFO_UNION1_Mbr) {.inline.} = self.union1.Mbr = x -proc Mbr*(self: DISK_PARTITION_INFO): DISK_PARTITION_INFO_UNION1_Mbr {.inline.} = self.union1.Mbr -proc Mbr*(self: var DISK_PARTITION_INFO): var DISK_PARTITION_INFO_UNION1_Mbr {.inline.} = self.union1.Mbr -proc `Gpt=`*(self: var DISK_PARTITION_INFO, x: DISK_PARTITION_INFO_UNION1_Gpt) {.inline.} = self.union1.Gpt = x -proc Gpt*(self: DISK_PARTITION_INFO): DISK_PARTITION_INFO_UNION1_Gpt {.inline.} = self.union1.Gpt -proc Gpt*(self: var DISK_PARTITION_INFO): var DISK_PARTITION_INFO_UNION1_Gpt {.inline.} = self.union1.Gpt -proc `ScalarPrefetch=`*(self: var DISK_CACHE_INFORMATION, x: DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch) {.inline.} = self.union1.ScalarPrefetch = x -proc ScalarPrefetch*(self: DISK_CACHE_INFORMATION): DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch {.inline.} = self.union1.ScalarPrefetch -proc ScalarPrefetch*(self: var DISK_CACHE_INFORMATION): var DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch {.inline.} = self.union1.ScalarPrefetch -proc `BlockPrefetch=`*(self: var DISK_CACHE_INFORMATION, x: DISK_CACHE_INFORMATION_UNION1_BlockPrefetch) {.inline.} = self.union1.BlockPrefetch = x -proc BlockPrefetch*(self: DISK_CACHE_INFORMATION): DISK_CACHE_INFORMATION_UNION1_BlockPrefetch {.inline.} = self.union1.BlockPrefetch -proc BlockPrefetch*(self: var DISK_CACHE_INFORMATION): var DISK_CACHE_INFORMATION_UNION1_BlockPrefetch {.inline.} = self.union1.BlockPrefetch -proc `BirthVolumeId=`*(self: var FILE_OBJECTID_BUFFER, x: array[16, BYTE]) {.inline.} = self.union1.struct1.BirthVolumeId = x -proc BirthVolumeId*(self: FILE_OBJECTID_BUFFER): array[16, BYTE] {.inline.} = self.union1.struct1.BirthVolumeId -proc BirthVolumeId*(self: var FILE_OBJECTID_BUFFER): var array[16, BYTE] {.inline.} = self.union1.struct1.BirthVolumeId -proc `BirthObjectId=`*(self: var FILE_OBJECTID_BUFFER, x: array[16, BYTE]) {.inline.} = self.union1.struct1.BirthObjectId = x -proc BirthObjectId*(self: FILE_OBJECTID_BUFFER): array[16, BYTE] {.inline.} = self.union1.struct1.BirthObjectId -proc BirthObjectId*(self: var FILE_OBJECTID_BUFFER): var array[16, BYTE] {.inline.} = self.union1.struct1.BirthObjectId -proc `DomainId=`*(self: var FILE_OBJECTID_BUFFER, x: array[16, BYTE]) {.inline.} = self.union1.struct1.DomainId = x -proc DomainId*(self: FILE_OBJECTID_BUFFER): array[16, BYTE] {.inline.} = self.union1.struct1.DomainId -proc DomainId*(self: var FILE_OBJECTID_BUFFER): var array[16, BYTE] {.inline.} = self.union1.struct1.DomainId -proc `ExtendedInfo=`*(self: var FILE_OBJECTID_BUFFER, x: array[48, BYTE]) {.inline.} = self.union1.ExtendedInfo = x -proc ExtendedInfo*(self: FILE_OBJECTID_BUFFER): array[48, BYTE] {.inline.} = self.union1.ExtendedInfo -proc ExtendedInfo*(self: var FILE_OBJECTID_BUFFER): var array[48, BYTE] {.inline.} = self.union1.ExtendedInfo -proc `BufferLength=`*(self: var TXFS_READ_BACKUP_INFORMATION_OUT, x: ULONG) {.inline.} = self.union1.BufferLength = x -proc BufferLength*(self: TXFS_READ_BACKUP_INFORMATION_OUT): ULONG {.inline.} = self.union1.BufferLength -proc BufferLength*(self: var TXFS_READ_BACKUP_INFORMATION_OUT): var ULONG {.inline.} = self.union1.BufferLength -proc `Buffer=`*(self: var TXFS_READ_BACKUP_INFORMATION_OUT, x: UCHAR) {.inline.} = self.union1.Buffer = x -proc Buffer*(self: TXFS_READ_BACKUP_INFORMATION_OUT): UCHAR {.inline.} = self.union1.Buffer -proc Buffer*(self: var TXFS_READ_BACKUP_INFORMATION_OUT): var UCHAR {.inline.} = self.union1.Buffer +type FILE_SYSTEM_RECOGNITION_STRUCTURE* {.pure.} = object + Jmp*: array[3, UCHAR] + FsName*: array[8, UCHAR] + MustBeZero*: array[5, UCHAR] + Identifier*: ULONG + Length*: USHORT + Checksum*: USHORT + +proc `Mbr=`*( + self: var SET_PARTITION_INFORMATION_EX, x: SET_PARTITION_INFORMATION_MBR +) {.inline.} = + self.union1.Mbr = x + +proc Mbr*( + self: SET_PARTITION_INFORMATION_EX +): SET_PARTITION_INFORMATION_MBR {.inline.} = + self.union1.Mbr + +proc Mbr*( + self: var SET_PARTITION_INFORMATION_EX +): var SET_PARTITION_INFORMATION_MBR {.inline.} = + self.union1.Mbr + +proc `Gpt=`*( + self: var SET_PARTITION_INFORMATION_EX, x: SET_PARTITION_INFORMATION_GPT +) {.inline.} = + self.union1.Gpt = x + +proc Gpt*( + self: SET_PARTITION_INFORMATION_EX +): SET_PARTITION_INFORMATION_GPT {.inline.} = + self.union1.Gpt + +proc Gpt*( + self: var SET_PARTITION_INFORMATION_EX +): var SET_PARTITION_INFORMATION_GPT {.inline.} = + self.union1.Gpt + +proc `Mbr=`*(self: var CREATE_DISK, x: CREATE_DISK_MBR) {.inline.} = + self.union1.Mbr = x + +proc Mbr*(self: CREATE_DISK): CREATE_DISK_MBR {.inline.} = + self.union1.Mbr + +proc Mbr*(self: var CREATE_DISK): var CREATE_DISK_MBR {.inline.} = + self.union1.Mbr + +proc `Gpt=`*(self: var CREATE_DISK, x: CREATE_DISK_GPT) {.inline.} = + self.union1.Gpt = x + +proc Gpt*(self: CREATE_DISK): CREATE_DISK_GPT {.inline.} = + self.union1.Gpt + +proc Gpt*(self: var CREATE_DISK): var CREATE_DISK_GPT {.inline.} = + self.union1.Gpt + +proc `Mbr=`*( + self: var PARTITION_INFORMATION_EX, x: PARTITION_INFORMATION_MBR +) {.inline.} = + self.union1.Mbr = x + +proc Mbr*(self: PARTITION_INFORMATION_EX): PARTITION_INFORMATION_MBR {.inline.} = + self.union1.Mbr + +proc Mbr*( + self: var PARTITION_INFORMATION_EX +): var PARTITION_INFORMATION_MBR {.inline.} = + self.union1.Mbr + +proc `Gpt=`*( + self: var PARTITION_INFORMATION_EX, x: PARTITION_INFORMATION_GPT +) {.inline.} = + self.union1.Gpt = x + +proc Gpt*(self: PARTITION_INFORMATION_EX): PARTITION_INFORMATION_GPT {.inline.} = + self.union1.Gpt + +proc Gpt*( + self: var PARTITION_INFORMATION_EX +): var PARTITION_INFORMATION_GPT {.inline.} = + self.union1.Gpt + +proc `Mbr=`*( + self: var DRIVE_LAYOUT_INFORMATION_EX, x: DRIVE_LAYOUT_INFORMATION_MBR +) {.inline.} = + self.union1.Mbr = x + +proc Mbr*(self: DRIVE_LAYOUT_INFORMATION_EX): DRIVE_LAYOUT_INFORMATION_MBR {.inline.} = + self.union1.Mbr + +proc Mbr*( + self: var DRIVE_LAYOUT_INFORMATION_EX +): var DRIVE_LAYOUT_INFORMATION_MBR {.inline.} = + self.union1.Mbr + +proc `Gpt=`*( + self: var DRIVE_LAYOUT_INFORMATION_EX, x: DRIVE_LAYOUT_INFORMATION_GPT +) {.inline.} = + self.union1.Gpt = x + +proc Gpt*(self: DRIVE_LAYOUT_INFORMATION_EX): DRIVE_LAYOUT_INFORMATION_GPT {.inline.} = + self.union1.Gpt + +proc Gpt*( + self: var DRIVE_LAYOUT_INFORMATION_EX +): var DRIVE_LAYOUT_INFORMATION_GPT {.inline.} = + self.union1.Gpt + +proc `Int13=`*(self: var DISK_DETECTION_INFO, x: DISK_INT13_INFO) {.inline.} = + self.union1.struct1.Int13 = x + +proc Int13*(self: DISK_DETECTION_INFO): DISK_INT13_INFO {.inline.} = + self.union1.struct1.Int13 + +proc Int13*(self: var DISK_DETECTION_INFO): var DISK_INT13_INFO {.inline.} = + self.union1.struct1.Int13 + +proc `ExInt13=`*(self: var DISK_DETECTION_INFO, x: DISK_EX_INT13_INFO) {.inline.} = + self.union1.struct1.ExInt13 = x + +proc ExInt13*(self: DISK_DETECTION_INFO): DISK_EX_INT13_INFO {.inline.} = + self.union1.struct1.ExInt13 + +proc ExInt13*(self: var DISK_DETECTION_INFO): var DISK_EX_INT13_INFO {.inline.} = + self.union1.struct1.ExInt13 + +proc `Mbr=`*( + self: var DISK_PARTITION_INFO, x: DISK_PARTITION_INFO_UNION1_Mbr +) {.inline.} = + self.union1.Mbr = x + +proc Mbr*(self: DISK_PARTITION_INFO): DISK_PARTITION_INFO_UNION1_Mbr {.inline.} = + self.union1.Mbr + +proc Mbr*( + self: var DISK_PARTITION_INFO +): var DISK_PARTITION_INFO_UNION1_Mbr {.inline.} = + self.union1.Mbr + +proc `Gpt=`*( + self: var DISK_PARTITION_INFO, x: DISK_PARTITION_INFO_UNION1_Gpt +) {.inline.} = + self.union1.Gpt = x + +proc Gpt*(self: DISK_PARTITION_INFO): DISK_PARTITION_INFO_UNION1_Gpt {.inline.} = + self.union1.Gpt + +proc Gpt*( + self: var DISK_PARTITION_INFO +): var DISK_PARTITION_INFO_UNION1_Gpt {.inline.} = + self.union1.Gpt + +proc `ScalarPrefetch=`*( + self: var DISK_CACHE_INFORMATION, x: DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch +) {.inline.} = + self.union1.ScalarPrefetch = x + +proc ScalarPrefetch*( + self: DISK_CACHE_INFORMATION +): DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch {.inline.} = + self.union1.ScalarPrefetch + +proc ScalarPrefetch*( + self: var DISK_CACHE_INFORMATION +): var DISK_CACHE_INFORMATION_UNION1_ScalarPrefetch {.inline.} = + self.union1.ScalarPrefetch + +proc `BlockPrefetch=`*( + self: var DISK_CACHE_INFORMATION, x: DISK_CACHE_INFORMATION_UNION1_BlockPrefetch +) {.inline.} = + self.union1.BlockPrefetch = x + +proc BlockPrefetch*( + self: DISK_CACHE_INFORMATION +): DISK_CACHE_INFORMATION_UNION1_BlockPrefetch {.inline.} = + self.union1.BlockPrefetch + +proc BlockPrefetch*( + self: var DISK_CACHE_INFORMATION +): var DISK_CACHE_INFORMATION_UNION1_BlockPrefetch {.inline.} = + self.union1.BlockPrefetch + +proc `BirthVolumeId=`*(self: var FILE_OBJECTID_BUFFER, x: array[16, BYTE]) {.inline.} = + self.union1.struct1.BirthVolumeId = x + +proc BirthVolumeId*(self: FILE_OBJECTID_BUFFER): array[16, BYTE] {.inline.} = + self.union1.struct1.BirthVolumeId + +proc BirthVolumeId*(self: var FILE_OBJECTID_BUFFER): var array[16, BYTE] {.inline.} = + self.union1.struct1.BirthVolumeId + +proc `BirthObjectId=`*(self: var FILE_OBJECTID_BUFFER, x: array[16, BYTE]) {.inline.} = + self.union1.struct1.BirthObjectId = x + +proc BirthObjectId*(self: FILE_OBJECTID_BUFFER): array[16, BYTE] {.inline.} = + self.union1.struct1.BirthObjectId + +proc BirthObjectId*(self: var FILE_OBJECTID_BUFFER): var array[16, BYTE] {.inline.} = + self.union1.struct1.BirthObjectId + +proc `DomainId=`*(self: var FILE_OBJECTID_BUFFER, x: array[16, BYTE]) {.inline.} = + self.union1.struct1.DomainId = x + +proc DomainId*(self: FILE_OBJECTID_BUFFER): array[16, BYTE] {.inline.} = + self.union1.struct1.DomainId + +proc DomainId*(self: var FILE_OBJECTID_BUFFER): var array[16, BYTE] {.inline.} = + self.union1.struct1.DomainId + +proc `ExtendedInfo=`*(self: var FILE_OBJECTID_BUFFER, x: array[48, BYTE]) {.inline.} = + self.union1.ExtendedInfo = x + +proc ExtendedInfo*(self: FILE_OBJECTID_BUFFER): array[48, BYTE] {.inline.} = + self.union1.ExtendedInfo + +proc ExtendedInfo*(self: var FILE_OBJECTID_BUFFER): var array[48, BYTE] {.inline.} = + self.union1.ExtendedInfo + +proc `BufferLength=`*(self: var TXFS_READ_BACKUP_INFORMATION_OUT, x: ULONG) {.inline.} = + self.union1.BufferLength = x + +proc BufferLength*(self: TXFS_READ_BACKUP_INFORMATION_OUT): ULONG {.inline.} = + self.union1.BufferLength + +proc BufferLength*(self: var TXFS_READ_BACKUP_INFORMATION_OUT): var ULONG {.inline.} = + self.union1.BufferLength + +proc `Buffer=`*(self: var TXFS_READ_BACKUP_INFORMATION_OUT, x: UCHAR) {.inline.} = + self.union1.Buffer = x + +proc Buffer*(self: TXFS_READ_BACKUP_INFORMATION_OUT): UCHAR {.inline.} = + self.union1.Buffer + +proc Buffer*(self: var TXFS_READ_BACKUP_INFORMATION_OUT): var UCHAR {.inline.} = + self.union1.Buffer + when winimCpu64: type MOVE_FILE_DATA32* {.pure.} = object @@ -2026,9 +2644,11 @@ StartingVcn*: LARGE_INTEGER StartingLcn*: LARGE_INTEGER ClusterCount*: DWORD + PMOVE_FILE_DATA32* = ptr MOVE_FILE_DATA32 MARK_HANDLE_INFO32* {.pure.} = object UsnSourceInfo*: DWORD VolumeHandle*: UINT32 HandleInfo*: DWORD + PMARK_HANDLE_INFO32* = ptr MARK_HANDLE_INFO32 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winldap.nim --- a/semicongine/thirdparty/winim/winim/inc/winldap.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winldap.nim Thu Aug 22 18:32:21 2024 +0700 @@ -21,6 +21,7 @@ SecPkgContext_IssuerListInfo* {.pure.} = object cbIssuerList*: DWORD pIssuerList*: PBYTE + PSecPkgContext_IssuerListInfo* = ptr SecPkgContext_IssuerListInfo SecPkgContext_RemoteCredentialInfo* {.pure.} = object cbCertificateChain*: DWORD @@ -28,6 +29,7 @@ cCertificates*: DWORD fFlags*: DWORD dwBits*: DWORD + PSecPkgContext_RemoteCredentialInfo* = ptr SecPkgContext_RemoteCredentialInfo SecPkgContext_RemoteCredenitalInfo* = SecPkgContext_RemoteCredentialInfo PSecPkgContext_RemoteCredenitalInfo* = ptr SecPkgContext_RemoteCredentialInfo @@ -37,23 +39,28 @@ cCertificates*: DWORD fFlags*: DWORD dwBits*: DWORD + PSecPkgContext_LocalCredentialInfo* = ptr SecPkgContext_LocalCredentialInfo SecPkgContext_LocalCredenitalInfo* = SecPkgContext_LocalCredentialInfo PSecPkgContext_LocalCredenitalInfo* = ptr SecPkgContext_LocalCredentialInfo SecPkgCred_SupportedAlgs* {.pure.} = object cSupportedAlgs*: DWORD palgSupportedAlgs*: ptr ALG_ID + PSecPkgCred_SupportedAlgs* = ptr SecPkgCred_SupportedAlgs SecPkgCred_CipherStrengths* {.pure.} = object dwMinimumCipherStrength*: DWORD dwMaximumCipherStrength*: DWORD + PSecPkgCred_CipherStrengths* = ptr SecPkgCred_CipherStrengths SecPkgCred_SupportedProtocols* {.pure.} = object grbitProtocol*: DWORD + PSecPkgCred_SupportedProtocols* = ptr SecPkgCred_SupportedProtocols SecPkgContext_IssuerListInfoEx* {.pure.} = object aIssuers*: PCERT_NAME_BLOB cIssuers*: DWORD + PSecPkgContext_IssuerListInfoEx* = ptr SecPkgContext_IssuerListInfoEx SecPkgContext_ConnectionInfo* {.pure.} = object dwProtocol*: DWORD @@ -63,24 +70,29 @@ dwHashStrength*: DWORD aiExch*: ALG_ID dwExchStrength*: DWORD + PSecPkgContext_ConnectionInfo* = ptr SecPkgContext_ConnectionInfo SecPkgContext_EapKeyBlock* {.pure.} = object rgbKeys*: array[128, BYTE] rgbIVs*: array[64, BYTE] + PSecPkgContext_EapKeyBlock* = ptr SecPkgContext_EapKeyBlock SecPkgContext_MappedCredAttr* {.pure.} = object dwAttribute*: DWORD pvBuffer*: PVOID + PSecPkgContext_MappedCredAttr* = ptr SecPkgContext_MappedCredAttr SecPkgContext_SessionInfo* {.pure.} = object dwFlags*: DWORD cbSessionId*: DWORD rgbSessionId*: array[32, BYTE] + PSecPkgContext_SessionInfo* = ptr SecPkgContext_SessionInfo SecPkgContext_SessionAppData* {.pure.} = object dwFlags*: DWORD cbAppData*: DWORD pbAppData*: PBYTE + PSecPkgContext_SessionAppData* = ptr SecPkgContext_SessionAppData HMAPPER* {.pure.} = object SCHANNEL_CRED* {.pure.} = object @@ -98,12 +110,14 @@ dwSessionLifespan*: DWORD dwFlags*: DWORD dwCredFormat*: DWORD + PSCHANNEL_CRED* = ptr SCHANNEL_CRED SCHANNEL_CERT_HASH* {.pure.} = object dwLength*: DWORD dwFlags*: DWORD hProv*: HCRYPTPROV ShaHash*: array[20, BYTE] + PSCHANNEL_CERT_HASH* = ptr SCHANNEL_CERT_HASH SSL_CREDENTIAL_CERTIFICATE* {.pure.} = object cbPrivateKey*: DWORD @@ -111,6 +125,7 @@ cbCertificate*: DWORD pCertificate*: PBYTE pszPassword*: PSTR + PSSL_CREDENTIAL_CERTIFICATE* = ptr SSL_CREDENTIAL_CERTIFICATE SCH_CRED* {.pure.} = object dwVersion*: DWORD @@ -119,30 +134,36 @@ paPublic*: ptr PVOID cMappers*: DWORD aphMappers*: ptr ptr HMAPPER + PSCH_CRED* = ptr SCH_CRED SCH_CRED_SECRET_CAPI* {.pure.} = object dwType*: DWORD hProv*: HCRYPTPROV + PSCH_CRED_SECRET_CAPI* = ptr SCH_CRED_SECRET_CAPI SCH_CRED_SECRET_PRIVKEY* {.pure.} = object dwType*: DWORD pPrivateKey*: PBYTE cbPrivateKey*: DWORD pszPassword*: PSTR + PSCH_CRED_SECRET_PRIVKEY* = ptr SCH_CRED_SECRET_PRIVKEY SCH_CRED_PUBLIC_CERTCHAIN* {.pure.} = object dwType*: DWORD cbCertChain*: DWORD pCertChain*: PBYTE + PSCH_CRED_PUBLIC_CERTCHAIN* = ptr SCH_CRED_PUBLIC_CERTCHAIN SCH_CRED_PUBLIC_CAPI* {.pure.} = object dwType*: DWORD hProv*: HCRYPTPROV + PSCH_CRED_PUBLIC_CAPI* = ptr SCH_CRED_PUBLIC_CAPI PctPublicKey* {.pure.} = object Type*: DWORD cbKey*: DWORD pKey*: array[1, UCHAR] + X509Certificate* {.pure.} = object Version*: DWORD SerialNumber*: array[4, DWORD] @@ -152,20 +173,24 @@ pszIssuer*: PSTR pszSubject*: PSTR pPublicKey*: ptr PctPublicKey + PX509Certificate* = ptr X509Certificate SecPkgContext_EapPrfInfo* {.pure.} = object dwVersion*: DWORD cbPrfData*: DWORD + PSecPkgContext_EapPrfInfo* = ptr SecPkgContext_EapPrfInfo SecPkgContext_SupportedSignatures* {.pure.} = object cSignatureAndHashAlgorithms*: WORD pSignatureAndHashAlgorithms*: ptr WORD + PSecPkgContext_SupportedSignatures* = ptr SecPkgContext_SupportedSignatures LDAP_ld_sb* {.pure.} = object sb_sd*: UINT_PTR - Reserved1*: array[(10*sizeof(ULONG))+1, UCHAR] + Reserved1*: array[(10 * sizeof(ULONG)) + 1, UCHAR] sb_naddr*: ULONG_PTR - Reserved2*: array[(6*sizeof(ULONG)), UCHAR] + Reserved2*: array[(6 * sizeof(ULONG)), UCHAR] + LDAP* {.pure.} = object ld_sb*: LDAP_ld_sb ld_host*: PCHAR @@ -178,19 +203,22 @@ ld_matched*: PCHAR ld_error*: PCHAR ld_msgid*: ULONG - Reserved3*: array[(6*sizeof(ULONG))+1, UCHAR] + Reserved3*: array[(6 * sizeof(ULONG)) + 1, UCHAR] ld_cldaptries*: ULONG ld_cldaptimeout*: ULONG ld_refhoplimit*: ULONG ld_options*: ULONG + PLDAP* = ptr LDAP LDAP_TIMEVAL* {.pure.} = object tv_sec*: LONG tv_usec*: LONG + PLDAP_TIMEVAL* = ptr LDAP_TIMEVAL LDAP_BERVAL* {.pure.} = object bv_len*: ULONG bv_val*: PCHAR + PLDAP_BERVAL* = ptr LDAP_BERVAL BERVAL* = LDAP_BERVAL PBERVAL* = ptr LDAP_BERVAL @@ -209,47 +237,57 @@ lm_chased*: BOOLEAN lm_eom*: BOOLEAN ConnectionReferenced*: BOOLEAN + PLDAPMessage* = ptr LDAPMessage LDAPControlA* {.pure.} = object ldctl_oid*: PCHAR ldctl_value*: BERVAL ldctl_iscritical*: BOOLEAN + PLDAPControlA* = ptr LDAPControlA LDAPControlW* {.pure.} = object ldctl_oid*: PWCHAR ldctl_value*: BERVAL ldctl_iscritical*: BOOLEAN + PLDAPControlW* = ptr LDAPControlW LDAPModW_mod_vals* {.pure, union.} = object modv_strvals*: ptr PWCHAR modv_bvals*: ptr ptr BERVAL + LDAPModW* {.pure.} = object mod_op*: ULONG mod_type*: PWCHAR mod_vals*: LDAPModW_mod_vals + PLDAPModW* = ptr LDAPModW LDAPModA_mod_vals* {.pure, union.} = object modv_strvals*: ptr PCHAR modv_bvals*: ptr ptr BERVAL + LDAPModA* {.pure.} = object mod_op*: ULONG mod_type*: PCHAR mod_vals*: LDAPModA_mod_vals + PLDAPModA* = ptr LDAPModA LDAP_VERSION_INFO* {.pure.} = object lv_size*: ULONG lv_major*: ULONG lv_minor*: ULONG + PLDAP_VERSION_INFO* = ptr LDAP_VERSION_INFO LDAPSortKeyW* {.pure.} = object sk_attrtype*: PWCHAR sk_matchruleoid*: PWCHAR sk_reverseorder*: BOOLEAN + PLDAPSortKeyW* = ptr LDAPSortKeyW LDAPSortKeyA* {.pure.} = object sk_attrtype*: PCHAR sk_matchruleoid*: PCHAR sk_reverseorder*: BOOLEAN + PLDAPSortKeyA* = ptr LDAPSortKeyA LDAPVLVInfo* {.pure.} = object ldvlv_version*: int32 @@ -260,19 +298,42 @@ ldvlv_attrvalue*: PBERVAL ldvlv_context*: PBERVAL ldvlv_extradata*: pointer + PLDAPVLVInfo* = ptr LDAPVLVInfo - QUERYFORCONNECTION* = proc (PrimaryConnection: PLDAP, ReferralFromConnection: PLDAP, NewDN: PWCHAR, HostName: PCHAR, PortNumber: ULONG, SecAuthIdentity: PVOID, CurrentUserToken: PVOID, ConnectionToUse: ptr PLDAP): ULONG {.stdcall.} - NOTIFYOFNEWCONNECTION* = proc (PrimaryConnection: PLDAP, ReferralFromConnection: PLDAP, NewDN: PWCHAR, HostName: PCHAR, NewConnection: PLDAP, PortNumber: ULONG, SecAuthIdentity: PVOID, CurrentUser: PVOID, ErrorCodeFromBind: ULONG): BOOLEAN {.stdcall.} - DEREFERENCECONNECTION* = proc (PrimaryConnection: PLDAP, ConnectionToDereference: PLDAP): ULONG {.stdcall.} + QUERYFORCONNECTION* = proc( + PrimaryConnection: PLDAP, + ReferralFromConnection: PLDAP, + NewDN: PWCHAR, + HostName: PCHAR, + PortNumber: ULONG, + SecAuthIdentity: PVOID, + CurrentUserToken: PVOID, + ConnectionToUse: ptr PLDAP, + ): ULONG {.stdcall.} + NOTIFYOFNEWCONNECTION* = proc( + PrimaryConnection: PLDAP, + ReferralFromConnection: PLDAP, + NewDN: PWCHAR, + HostName: PCHAR, + NewConnection: PLDAP, + PortNumber: ULONG, + SecAuthIdentity: PVOID, + CurrentUser: PVOID, + ErrorCodeFromBind: ULONG, + ): BOOLEAN {.stdcall.} + DEREFERENCECONNECTION* = + proc(PrimaryConnection: PLDAP, ConnectionToDereference: PLDAP): ULONG {.stdcall.} LDAP_REFERRAL_CALLBACK* {.pure.} = object SizeOfCallbacks*: ULONG QueryForConnection*: ptr QUERYFORCONNECTION NotifyRoutine*: ptr NOTIFYOFNEWCONNECTION DereferenceRoutine*: ptr DEREFERENCECONNECTION + PLDAP_REFERRAL_CALLBACK* = ptr LDAP_REFERRAL_CALLBACK - DBGPRINT* = proc (Format: PCH): ULONG {.varargs, cdecl.} + DBGPRINT* = proc(Format: PCH): ULONG {.varargs, cdecl.} LDAPSearch* {.pure.} = object PLDAPSearch* = ptr LDAPSearch + const LBER_ERROR* = 0xffffffff'i32 LBER_DEFAULT* = 0xffffffff'i32 @@ -365,9 +426,9 @@ TLS1_ALERT_NO_RENEGOTIATATION* = 100 SSL_SESSION_ENABLE_RECONNECTS* = 1 SSL_SESSION_DISABLE_RECONNECTS* = 2 - CERT_SCHANNEL_IIS_PRIVATE_KEY_PROP_ID* = CERT_FIRST_USER_PROP_ID+0 - CERT_SCHANNEL_IIS_PASSWORD_PROP_ID* = CERT_FIRST_USER_PROP_ID+1 - CERT_SCHANNEL_SGC_CERTIFICATE_PROP_ID* = CERT_FIRST_USER_PROP_ID+2 + CERT_SCHANNEL_IIS_PRIVATE_KEY_PROP_ID* = CERT_FIRST_USER_PROP_ID + 0 + CERT_SCHANNEL_IIS_PASSWORD_PROP_ID* = CERT_FIRST_USER_PROP_ID + 1 + CERT_SCHANNEL_SGC_CERTIFICATE_PROP_ID* = CERT_FIRST_USER_PROP_ID + 2 SP_PROT_PCT1_SERVER* = 0x00000001 SP_PROT_PCT1_CLIENT* = 0x00000002 SP_PROT_PCT1* = SP_PROT_PCT1_SERVER or SP_PROT_PCT1_CLIENT @@ -388,8 +449,12 @@ SP_PROT_UNI* = SP_PROT_UNI_SERVER or SP_PROT_UNI_CLIENT SP_PROT_ALL* = 0xffffffff'i32 SP_PROT_NONE* = 0 - SP_PROT_CLIENTS* = SP_PROT_PCT1_CLIENT or SP_PROT_SSL2_CLIENT or SP_PROT_SSL3_CLIENT or SP_PROT_UNI_CLIENT or SP_PROT_TLS1_CLIENT - SP_PROT_SERVERS* = SP_PROT_PCT1_SERVER or SP_PROT_SSL2_SERVER or SP_PROT_SSL3_SERVER or SP_PROT_UNI_SERVER or SP_PROT_TLS1_SERVER + SP_PROT_CLIENTS* = + SP_PROT_PCT1_CLIENT or SP_PROT_SSL2_CLIENT or SP_PROT_SSL3_CLIENT or + SP_PROT_UNI_CLIENT or SP_PROT_TLS1_CLIENT + SP_PROT_SERVERS* = + SP_PROT_PCT1_SERVER or SP_PROT_SSL2_SERVER or SP_PROT_SSL3_SERVER or + SP_PROT_UNI_SERVER or SP_PROT_TLS1_SERVER SCHANNEL_SECRET_TYPE_CAPI* = 0x00000001 SCHANNEL_SECRET_PRIVKEY* = 0x00000002 SCH_CRED_X509_CERTCHAIN* = 0x00000001 @@ -619,25 +684,38 @@ LDAP_OPT_REF_DEREF_CONN_PER_MSG* = 0x94 LDAP_OPT_ON* = 0x00000001 LDAP_OPT_OFF* = 0x00000000 -type - BerElement* {.pure.} = object - opaque*: PCHAR -const - NULLBER* = cast[ptr BerElement](0) +type BerElement* {.pure.} = object + opaque*: PCHAR + +const NULLBER* = cast[ptr BerElement](0) type - SSL_EMPTY_CACHE_FN_A* = proc (pszTargetName: LPSTR, dwFlags: DWORD): WINBOOL {.stdcall.} - SSL_EMPTY_CACHE_FN_W* = proc (pszTargetName: LPWSTR, dwFlags: DWORD): WINBOOL {.stdcall.} - SSL_CRACK_CERTIFICATE_FN* = proc (pbCertificate: PUCHAR, cbCertificate: DWORD, VerifySignature: WINBOOL, ppCertificate: ptr PX509Certificate): WINBOOL {.stdcall.} - SSL_FREE_CERTIFICATE_FN* = proc (pCertificate: PX509Certificate): VOID {.stdcall.} - QUERYCLIENTCERT* = proc (Connection: PLDAP, trusted_CAs: PSecPkgContext_IssuerListInfoEx, ppCertificate: ptr PCCERT_CONTEXT): BOOLEAN {.stdcall.} - VERIFYSERVERCERT* = proc (Connection: PLDAP, pServerCert: PCCERT_CONTEXT): BOOLEAN {.stdcall.} + SSL_EMPTY_CACHE_FN_A* = + proc(pszTargetName: LPSTR, dwFlags: DWORD): WINBOOL {.stdcall.} + SSL_EMPTY_CACHE_FN_W* = + proc(pszTargetName: LPWSTR, dwFlags: DWORD): WINBOOL {.stdcall.} + SSL_CRACK_CERTIFICATE_FN* = proc( + pbCertificate: PUCHAR, + cbCertificate: DWORD, + VerifySignature: WINBOOL, + ppCertificate: ptr PX509Certificate, + ): WINBOOL {.stdcall.} + SSL_FREE_CERTIFICATE_FN* = proc(pCertificate: PX509Certificate): VOID {.stdcall.} + QUERYCLIENTCERT* = proc( + Connection: PLDAP, + trusted_CAs: PSecPkgContext_IssuerListInfoEx, + ppCertificate: ptr PCCERT_CONTEXT, + ): BOOLEAN {.stdcall.} + VERIFYSERVERCERT* = + proc(Connection: PLDAP, pServerCert: PCCERT_CONTEXT): BOOLEAN {.stdcall.} SCHANNEL_ALERT_TOKEN* {.pure.} = object dwTokenType*: DWORD dwAlertType*: DWORD dwAlertNumber*: DWORD + SCHANNEL_SESSION_TOKEN* {.pure.} = object dwTokenType*: DWORD dwFlags*: DWORD + LDAPAPIInfoA* {.pure.} = object ldapai_info_version*: int32 ldapai_api_version*: int32 @@ -645,6 +723,7 @@ ldapai_extensions*: ptr ptr char ldapai_vendor_name*: ptr char ldapai_vendor_version*: int32 + LDAPAPIInfoW* {.pure.} = object ldapai_info_version*: int32 ldapai_api_version*: int32 @@ -652,203 +731,1101 @@ ldapai_extensions*: ptr PWCHAR ldapai_vendor_name*: PWCHAR ldapai_vendor_version*: int32 + LDAPAPIFeatureInfoA* {.pure.} = object ldapaif_info_version*: int32 ldapaif_name*: ptr char ldapaif_version*: int32 + LDAPAPIFeatureInfoW* {.pure.} = object ldapaif_info_version*: int32 ldapaif_name*: PWCHAR ldapaif_version*: int32 -proc ber_init*(pBerVal: ptr BERVAL): ptr BerElement {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_free*(pBerElement: ptr BerElement, fbuf: INT): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_bvfree*(pBerVal: ptr BERVAL): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_bvecfree*(pBerVal: ptr PBERVAL): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_bvdup*(pBerVal: ptr BERVAL): ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_alloc_t*(options: INT): ptr BerElement {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_skip_tag*(pBerElement: ptr BerElement, pLen: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_peek_tag*(pBerElement: ptr BerElement, pLen: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_first_element*(pBerElement: ptr BerElement, pLen: ptr ULONG, ppOpaque: ptr ptr CHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_next_element*(pBerElement: ptr BerElement, pLen: ptr ULONG, opaque: ptr CHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_flatten*(pBerElement: ptr BerElement, pBerVal: ptr PBERVAL): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ber_printf*(pBerElement: ptr BerElement, fmt: PSTR): INT {.winapi, cdecl, varargs, dynlib: "wldap32", importc.} -proc ber_scanf*(pBerElement: ptr BerElement, fmt: PSTR): ULONG {.winapi, cdecl, varargs, dynlib: "wldap32", importc.} -proc SslEmptyCacheA*(pszTargetName: LPSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc.} -proc SslEmptyCacheW*(pszTargetName: LPWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc.} -proc SslGenerateRandomBits*(pRandomData: PUCHAR, cRandomData: LONG): VOID {.winapi, stdcall, dynlib: "schannel", importc.} -proc SslCrackCertificate*(pbCertificate: PUCHAR, cbCertificate: DWORD, dwFlags: DWORD, ppCertificate: ptr PX509Certificate): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc.} -proc SslFreeCertificate*(pCertificate: PX509Certificate): VOID {.winapi, stdcall, dynlib: "schannel", importc.} -proc SslGetMaximumKeySize*(Reserved: DWORD): DWORD {.winapi, stdcall, dynlib: "schannel", importc.} -proc ldap_openW*(HostName: PWCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_openA*(HostName: PCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_initW*(HostName: PWCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_initA*(HostName: PCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_sslinitW*(HostName: PWCHAR, PortNumber: ULONG, secure: int32): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_sslinitA*(HostName: PCHAR, PortNumber: ULONG, secure: int32): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_connect*(ld: ptr LDAP, timeout: ptr LDAP_TIMEVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc cldap_openW*(HostName: PWCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} -proc cldap_openA*(HostName: PCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_init*( + pBerVal: ptr BERVAL +): ptr BerElement {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_free*( + pBerElement: ptr BerElement, fbuf: INT +): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_bvfree*( + pBerVal: ptr BERVAL +): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_bvecfree*( + pBerVal: ptr PBERVAL +): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_bvdup*( + pBerVal: ptr BERVAL +): ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_alloc_t*( + options: INT +): ptr BerElement {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_skip_tag*( + pBerElement: ptr BerElement, pLen: ptr ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_peek_tag*( + pBerElement: ptr BerElement, pLen: ptr ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_first_element*( + pBerElement: ptr BerElement, pLen: ptr ULONG, ppOpaque: ptr ptr CHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_next_element*( + pBerElement: ptr BerElement, pLen: ptr ULONG, opaque: ptr CHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_flatten*( + pBerElement: ptr BerElement, pBerVal: ptr PBERVAL +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ber_printf*( + pBerElement: ptr BerElement, fmt: PSTR +): INT {.winapi, cdecl, varargs, dynlib: "wldap32", importc.} + +proc ber_scanf*( + pBerElement: ptr BerElement, fmt: PSTR +): ULONG {.winapi, cdecl, varargs, dynlib: "wldap32", importc.} + +proc SslEmptyCacheA*( + pszTargetName: LPSTR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc.} + +proc SslEmptyCacheW*( + pszTargetName: LPWSTR, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc.} + +proc SslGenerateRandomBits*( + pRandomData: PUCHAR, cRandomData: LONG +): VOID {.winapi, stdcall, dynlib: "schannel", importc.} + +proc SslCrackCertificate*( + pbCertificate: PUCHAR, + cbCertificate: DWORD, + dwFlags: DWORD, + ppCertificate: ptr PX509Certificate, +): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc.} + +proc SslFreeCertificate*( + pCertificate: PX509Certificate +): VOID {.winapi, stdcall, dynlib: "schannel", importc.} + +proc SslGetMaximumKeySize*( + Reserved: DWORD +): DWORD {.winapi, stdcall, dynlib: "schannel", importc.} + +proc ldap_openW*( + HostName: PWCHAR, PortNumber: ULONG +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_openA*( + HostName: PCHAR, PortNumber: ULONG +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_initW*( + HostName: PWCHAR, PortNumber: ULONG +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_initA*( + HostName: PCHAR, PortNumber: ULONG +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_sslinitW*( + HostName: PWCHAR, PortNumber: ULONG, secure: int32 +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_sslinitA*( + HostName: PCHAR, PortNumber: ULONG, secure: int32 +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_connect*( + ld: ptr LDAP, timeout: ptr LDAP_TIMEVAL +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc cldap_openW*( + HostName: PWCHAR, PortNumber: ULONG +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc cldap_openA*( + HostName: PCHAR, PortNumber: ULONG +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_unbind*(ld: ptr LDAP): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} proc ldap_unbind_s*(ld: ptr LDAP): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_optionW*(ld: ptr LDAP, option: int32, outvalue: pointer): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_set_optionW*(ld: ptr LDAP, option: int32, invalue: pointer): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_simple_bindW*(ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_simple_bindA*(ld: ptr LDAP, dn: PCHAR, passwd: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_simple_bind_sW*(ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_simple_bind_sA*(ld: ptr LDAP, dn: PCHAR, passwd: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_bindW*(ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_bindA*(ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_bind_sW*(ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_bind_sA*(ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_sasl_bindA*(ExternalHandle: ptr LDAP, DistName: PCHAR, AuthMechanism: PCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlA, ClientCtrls: ptr PLDAPControlA, MessageNumber: ptr int32): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_sasl_bindW*(ExternalHandle: ptr LDAP, DistName: PWCHAR, AuthMechanism: PWCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlW, ClientCtrls: ptr PLDAPControlW, MessageNumber: ptr int32): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_sasl_bind_sA*(ExternalHandle: ptr LDAP, DistName: PCHAR, AuthMechanism: PCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlA, ClientCtrls: ptr PLDAPControlA, ServerData: ptr PBERVAL): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_sasl_bind_sW*(ExternalHandle: ptr LDAP, DistName: PWCHAR, AuthMechanism: PWCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlW, ClientCtrls: ptr PLDAPControlW, ServerData: ptr PBERVAL): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_searchW*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_searchA*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_sW*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_sA*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_stW*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, timeout: ptr LDAP_TIMEVAL, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_stA*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, timeout: ptr LDAP_TIMEVAL, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_extW*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, TimeLimit: ULONG, SizeLimit: ULONG, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_extA*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, TimeLimit: ULONG, SizeLimit: ULONG, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_ext_sW*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, timeout: ptr LDAP_TIMEVAL, SizeLimit: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_ext_sA*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, timeout: ptr LDAP_TIMEVAL, SizeLimit: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_check_filterW*(ld: ptr LDAP, SearchFilter: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_check_filterA*(ld: ptr LDAP, SearchFilter: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modifyW*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modifyA*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modify_sW*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modify_sA*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modify_extW*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modify_extA*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modify_ext_sW*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modify_ext_sA*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdn2W*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR, DeleteOldRdn: INT): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdn2A*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR, DeleteOldRdn: INT): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdnW*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdnA*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdn2_sW*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR, DeleteOldRdn: INT): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdn2_sA*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR, DeleteOldRdn: INT): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdn_sW*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_modrdn_sA*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_rename_extW*(ld: ptr LDAP, dn: PWCHAR, NewRDN: PWCHAR, NewParent: PWCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_rename_extA*(ld: ptr LDAP, dn: PCHAR, NewRDN: PCHAR, NewParent: PCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_rename_ext_sW*(ld: ptr LDAP, dn: PWCHAR, NewRDN: PWCHAR, NewParent: PWCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_rename_ext_sA*(ld: ptr LDAP, dn: PCHAR, NewRDN: PCHAR, NewParent: PCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_addW*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_addA*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_add_sW*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_add_sA*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_add_extW*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_add_extA*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_add_ext_sW*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_add_ext_sA*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compareW*(ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compareA*(ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compare_sW*(ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compare_sA*(ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compare_extW*(ld: ptr LDAP, dn: PWCHAR, Attr: PWCHAR, Value: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compare_extA*(ld: ptr LDAP, dn: PCHAR, Attr: PCHAR, Value: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compare_ext_sW*(ld: ptr LDAP, dn: PWCHAR, Attr: PWCHAR, Value: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_compare_ext_sA*(ld: ptr LDAP, dn: PCHAR, Attr: PCHAR, Value: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_deleteW*(ld: ptr LDAP, dn: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_deleteA*(ld: ptr LDAP, dn: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_delete_sW*(ld: ptr LDAP, dn: PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_delete_sA*(ld: ptr LDAP, dn: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_delete_extW*(ld: ptr LDAP, dn: PWCHAR, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_delete_extA*(ld: ptr LDAP, dn: PCHAR, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_delete_ext_sW*(ld: ptr LDAP, dn: PWCHAR, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_delete_ext_sA*(ld: ptr LDAP, dn: PCHAR, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_abandon*(ld: ptr LDAP, msgid: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_result*(ld: ptr LDAP, msgid: ULONG, all: ULONG, timeout: ptr LDAP_TIMEVAL, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_msgfree*(res: ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_result2error*(ld: ptr LDAP, res: ptr LDAPMessage, freeit: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_resultW*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ReturnCode: ptr ULONG, MatchedDNs: ptr PWCHAR, ErrorMessage: ptr PWCHAR, Referrals: ptr ptr PWCHAR, ServerControls: ptr ptr PLDAPControlW, Freeit: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_resultA*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ReturnCode: ptr ULONG, MatchedDNs: ptr PCHAR, ErrorMessage: ptr PCHAR, Referrals: ptr ptr PCHAR, ServerControls: ptr ptr PLDAPControlA, Freeit: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_extended_resultA*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ResultOID: ptr PCHAR, ResultData: ptr ptr BERVAL, Freeit: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_extended_resultW*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ResultOID: ptr PWCHAR, ResultData: ptr ptr BERVAL, Freeit: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_controls_freeA*(Controls: ptr ptr LDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_control_freeA*(Controls: ptr LDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_controls_freeW*(Control: ptr ptr LDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_control_freeW*(Control: ptr LDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_free_controlsW*(Controls: ptr ptr LDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_free_controlsA*(Controls: ptr ptr LDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} +proc ldap_get_optionW*( + ld: ptr LDAP, option: int32, outvalue: pointer +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_set_optionW*( + ld: ptr LDAP, option: int32, invalue: pointer +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_simple_bindW*( + ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_simple_bindA*( + ld: ptr LDAP, dn: PCHAR, passwd: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_simple_bind_sW*( + ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_simple_bind_sA*( + ld: ptr LDAP, dn: PCHAR, passwd: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_bindW*( + ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_bindA*( + ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_bind_sW*( + ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_bind_sA*( + ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_sasl_bindA*( + ExternalHandle: ptr LDAP, + DistName: PCHAR, + AuthMechanism: PCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlA, + ClientCtrls: ptr PLDAPControlA, + MessageNumber: ptr int32, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_sasl_bindW*( + ExternalHandle: ptr LDAP, + DistName: PWCHAR, + AuthMechanism: PWCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlW, + ClientCtrls: ptr PLDAPControlW, + MessageNumber: ptr int32, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_sasl_bind_sA*( + ExternalHandle: ptr LDAP, + DistName: PCHAR, + AuthMechanism: PCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlA, + ClientCtrls: ptr PLDAPControlA, + ServerData: ptr PBERVAL, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_sasl_bind_sW*( + ExternalHandle: ptr LDAP, + DistName: PWCHAR, + AuthMechanism: PWCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlW, + ClientCtrls: ptr PLDAPControlW, + ServerData: ptr PBERVAL, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_searchW*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_searchA*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_sW*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_sA*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_stW*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + timeout: ptr LDAP_TIMEVAL, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_stA*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + timeout: ptr LDAP_TIMEVAL, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_extW*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + TimeLimit: ULONG, + SizeLimit: ULONG, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_extA*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + TimeLimit: ULONG, + SizeLimit: ULONG, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_ext_sW*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + timeout: ptr LDAP_TIMEVAL, + SizeLimit: ULONG, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_ext_sA*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + timeout: ptr LDAP_TIMEVAL, + SizeLimit: ULONG, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_check_filterW*( + ld: ptr LDAP, SearchFilter: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_check_filterA*( + ld: ptr LDAP, SearchFilter: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modifyW*( + ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modifyA*( + ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modify_sW*( + ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modify_sA*( + ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modify_extW*( + ld: ptr LDAP, + dn: PWCHAR, + mods: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modify_extA*( + ld: ptr LDAP, + dn: PCHAR, + mods: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modify_ext_sW*( + ld: ptr LDAP, + dn: PWCHAR, + mods: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modify_ext_sA*( + ld: ptr LDAP, + dn: PCHAR, + mods: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdn2W*( + ExternalHandle: ptr LDAP, + DistinguishedName: PWCHAR, + NewDistinguishedName: PWCHAR, + DeleteOldRdn: INT, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdn2A*( + ExternalHandle: ptr LDAP, + DistinguishedName: PCHAR, + NewDistinguishedName: PCHAR, + DeleteOldRdn: INT, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdnW*( + ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdnA*( + ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdn2_sW*( + ExternalHandle: ptr LDAP, + DistinguishedName: PWCHAR, + NewDistinguishedName: PWCHAR, + DeleteOldRdn: INT, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdn2_sA*( + ExternalHandle: ptr LDAP, + DistinguishedName: PCHAR, + NewDistinguishedName: PCHAR, + DeleteOldRdn: INT, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdn_sW*( + ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_modrdn_sA*( + ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_rename_extW*( + ld: ptr LDAP, + dn: PWCHAR, + NewRDN: PWCHAR, + NewParent: PWCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_rename_extA*( + ld: ptr LDAP, + dn: PCHAR, + NewRDN: PCHAR, + NewParent: PCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_rename_ext_sW*( + ld: ptr LDAP, + dn: PWCHAR, + NewRDN: PWCHAR, + NewParent: PWCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_rename_ext_sA*( + ld: ptr LDAP, + dn: PCHAR, + NewRDN: PCHAR, + NewParent: PCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_addW*( + ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_addA*( + ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_add_sW*( + ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_add_sA*( + ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_add_extW*( + ld: ptr LDAP, + dn: PWCHAR, + attrs: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_add_extA*( + ld: ptr LDAP, + dn: PCHAR, + attrs: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_add_ext_sW*( + ld: ptr LDAP, + dn: PWCHAR, + attrs: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_add_ext_sA*( + ld: ptr LDAP, + dn: PCHAR, + attrs: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compareW*( + ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compareA*( + ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compare_sW*( + ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compare_sA*( + ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compare_extW*( + ld: ptr LDAP, + dn: PWCHAR, + Attr: PWCHAR, + Value: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compare_extA*( + ld: ptr LDAP, + dn: PCHAR, + Attr: PCHAR, + Value: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compare_ext_sW*( + ld: ptr LDAP, + dn: PWCHAR, + Attr: PWCHAR, + Value: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_compare_ext_sA*( + ld: ptr LDAP, + dn: PCHAR, + Attr: PCHAR, + Value: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_deleteW*( + ld: ptr LDAP, dn: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_deleteA*( + ld: ptr LDAP, dn: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_delete_sW*( + ld: ptr LDAP, dn: PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_delete_sA*( + ld: ptr LDAP, dn: PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_delete_extW*( + ld: ptr LDAP, + dn: PWCHAR, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_delete_extA*( + ld: ptr LDAP, + dn: PCHAR, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_delete_ext_sW*( + ld: ptr LDAP, + dn: PWCHAR, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_delete_ext_sA*( + ld: ptr LDAP, + dn: PCHAR, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_abandon*( + ld: ptr LDAP, msgid: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_result*( + ld: ptr LDAP, + msgid: ULONG, + all: ULONG, + timeout: ptr LDAP_TIMEVAL, + res: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_msgfree*( + res: ptr LDAPMessage +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_result2error*( + ld: ptr LDAP, res: ptr LDAPMessage, freeit: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_resultW*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ReturnCode: ptr ULONG, + MatchedDNs: ptr PWCHAR, + ErrorMessage: ptr PWCHAR, + Referrals: ptr ptr PWCHAR, + ServerControls: ptr ptr PLDAPControlW, + Freeit: BOOLEAN, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_resultA*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ReturnCode: ptr ULONG, + MatchedDNs: ptr PCHAR, + ErrorMessage: ptr PCHAR, + Referrals: ptr ptr PCHAR, + ServerControls: ptr ptr PLDAPControlA, + Freeit: BOOLEAN, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_extended_resultA*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ResultOID: ptr PCHAR, + ResultData: ptr ptr BERVAL, + Freeit: BOOLEAN, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_extended_resultW*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ResultOID: ptr PWCHAR, + ResultData: ptr ptr BERVAL, + Freeit: BOOLEAN, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_controls_freeA*( + Controls: ptr ptr LDAPControlA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_control_freeA*( + Controls: ptr LDAPControlA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_controls_freeW*( + Control: ptr ptr LDAPControlW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_control_freeW*( + Control: ptr LDAPControlW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_free_controlsW*( + Controls: ptr ptr LDAPControlW +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_free_controlsA*( + Controls: ptr ptr LDAPControlA +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_err2stringW*(err: ULONG): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} proc ldap_err2stringA*(err: ULONG): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_perror*(ld: ptr LDAP, msg: PCHAR): void {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_first_entry*(ld: ptr LDAP, res: ptr LDAPMessage): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_next_entry*(ld: ptr LDAP, entry: ptr LDAPMessage): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_count_entries*(ld: ptr LDAP, res: ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_first_attributeW*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_first_attributeA*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_next_attributeW*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_next_attributeA*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_valuesW*(ld: ptr LDAP, entry: ptr LDAPMessage, attr: PWCHAR): ptr PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_valuesA*(ld: ptr LDAP, entry: ptr LDAPMessage, attr: PCHAR): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_values_lenW*(ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PWCHAR): ptr ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_values_lenA*(ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PCHAR): ptr ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_count_valuesW*(vals: ptr PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_count_valuesA*(vals: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_count_values_len*(vals: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_value_freeW*(vals: ptr PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_value_freeA*(vals: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_value_free_len*(vals: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_dnW*(ld: ptr LDAP, entry: ptr LDAPMessage): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_dnA*(ld: ptr LDAP, entry: ptr LDAPMessage): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_explode_dnW*(dn: PWCHAR, notypes: ULONG): ptr PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_explode_dnA*(dn: PCHAR, notypes: ULONG): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} +proc ldap_perror*( + ld: ptr LDAP, msg: PCHAR +): void {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_first_entry*( + ld: ptr LDAP, res: ptr LDAPMessage +): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_next_entry*( + ld: ptr LDAP, entry: ptr LDAPMessage +): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_count_entries*( + ld: ptr LDAP, res: ptr LDAPMessage +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_first_attributeW*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement +): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_first_attributeA*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement +): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_next_attributeW*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement +): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_next_attributeA*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement +): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_valuesW*( + ld: ptr LDAP, entry: ptr LDAPMessage, attr: PWCHAR +): ptr PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_valuesA*( + ld: ptr LDAP, entry: ptr LDAPMessage, attr: PCHAR +): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_values_lenW*( + ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PWCHAR +): ptr ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_values_lenA*( + ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PCHAR +): ptr ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_count_valuesW*( + vals: ptr PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_count_valuesA*( + vals: ptr PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_count_values_len*( + vals: ptr ptr BERVAL +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_value_freeW*( + vals: ptr PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_value_freeA*( + vals: ptr PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_value_free_len*( + vals: ptr ptr BERVAL +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_dnW*( + ld: ptr LDAP, entry: ptr LDAPMessage +): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_dnA*( + ld: ptr LDAP, entry: ptr LDAPMessage +): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_explode_dnW*( + dn: PWCHAR, notypes: ULONG +): ptr PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_explode_dnA*( + dn: PCHAR, notypes: ULONG +): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_dn2ufnW*(dn: PWCHAR): PWCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} proc ldap_dn2ufnA*(dn: PCHAR): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} proc ldap_memfreeW*(Block: PWCHAR): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} proc ldap_memfreeA*(Block: PCHAR): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} proc ber_bvfree*(bv: ptr BERVAL): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_ufn2dnW*(ufn: PWCHAR, pDn: ptr PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_ufn2dnA*(ufn: PCHAR, pDn: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_startup*(version: PLDAP_VERSION_INFO, Instance: ptr HANDLE): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_cleanup*(hInstance: HANDLE): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_escape_filter_elementW*(sourceFilterElement: PCHAR, sourceLength: ULONG, destFilterElement: PWCHAR, destLength: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_escape_filter_elementA*(sourceFilterElement: PCHAR, sourceLength: ULONG, destFilterElement: PCHAR, destLength: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_set_dbg_flags*(NewFlags: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_set_dbg_routine*(DebugPrintRoutine: DBGPRINT): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} -proc LdapUTF8ToUnicode*(lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32): int32 {.winapi, cdecl, dynlib: "wldap32", importc.} -proc LdapUnicodeToUTF8*(lpSrcStr: LPCWSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32): int32 {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_create_sort_controlA*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyA, IsCritical: UCHAR, Control: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_create_sort_controlW*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyW, IsCritical: UCHAR, Control: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_sort_controlA*(ExternalHandle: PLDAP, Control: ptr PLDAPControlA, Result: ptr ULONG, Attribute: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_sort_controlW*(ExternalHandle: PLDAP, Control: ptr PLDAPControlW, Result: ptr ULONG, Attribute: ptr PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_encode_sort_controlW*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyW, Control: PLDAPControlW, Criticality: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_encode_sort_controlA*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyA, Control: PLDAPControlA, Criticality: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_create_page_controlW*(ExternalHandle: PLDAP, PageSize: ULONG, Cookie: ptr BERVAL, IsCritical: UCHAR, Control: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_create_page_controlA*(ExternalHandle: PLDAP, PageSize: ULONG, Cookie: ptr BERVAL, IsCritical: UCHAR, Control: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_page_controlW*(ExternalHandle: PLDAP, ServerControls: ptr PLDAPControlW, TotalCount: ptr ULONG, Cookie: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_page_controlA*(ExternalHandle: PLDAP, ServerControls: ptr PLDAPControlA, TotalCount: ptr ULONG, Cookie: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_init_pageW*(ExternalHandle: PLDAP, DistinguishedName: PWCHAR, ScopeOfSearch: ULONG, SearchFilter: PWCHAR, AttributeList: ptr PWCHAR, AttributesOnly: ULONG, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, PageTimeLimit: ULONG, TotalSizeLimit: ULONG, SortKeys: ptr PLDAPSortKeyW): PLDAPSearch {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_init_pageA*(ExternalHandle: PLDAP, DistinguishedName: PCHAR, ScopeOfSearch: ULONG, SearchFilter: PCHAR, AttributeList: ptr PCHAR, AttributesOnly: ULONG, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, PageTimeLimit: ULONG, TotalSizeLimit: ULONG, SortKeys: ptr PLDAPSortKeyA): PLDAPSearch {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_next_page*(ExternalHandle: PLDAP, SearchHandle: PLDAPSearch, PageSize: ULONG, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_next_page_s*(ExternalHandle: PLDAP, SearchHandle: PLDAPSearch, timeout: ptr LDAP_TIMEVAL, PageSize: ULONG, TotalCount: ptr ULONG, Results: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_get_paged_count*(ExternalHandle: PLDAP, SearchBlock: PLDAPSearch, TotalCount: ptr ULONG, Results: PLDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_search_abandon_page*(ExternalHandle: PLDAP, SearchBlock: PLDAPSearch): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_create_vlv_controlW*(ExternalHandle: PLDAP, VlvInfo: PLDAPVLVInfo, IsCritical: UCHAR, Control: ptr PLDAPControlW): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_create_vlv_controlA*(ExternalHandle: PLDAP, VlvInfo: PLDAPVLVInfo, IsCritical: UCHAR, Control: ptr PLDAPControlA): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_vlv_controlW*(ExternalHandle: PLDAP, Control: ptr PLDAPControlW, TargetPos: PULONG, ListCount: PULONG, Context: ptr PBERVAL, ErrCode: PINT): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_vlv_controlA*(ExternalHandle: PLDAP, Control: ptr PLDAPControlA, TargetPos: PULONG, ListCount: PULONG, Context: ptr PBERVAL, ErrCode: PINT): INT {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_start_tls_sW*(ExternalHandle: PLDAP, ServerReturnValue: PULONG, result: ptr ptr LDAPMessage, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_start_tls_sA*(ExternalHandle: PLDAP, ServerReturnValue: PULONG, result: ptr ptr LDAPMessage, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_stop_tls_s*(ExternalHandle: PLDAP): BOOLEAN {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_first_reference*(ld: ptr LDAP, res: ptr LDAPMessage): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_next_reference*(ld: ptr LDAP, entry: ptr LDAPMessage): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_count_references*(ld: ptr LDAP, res: ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_referenceW*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PWCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_parse_referenceA*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_extended_operationW*(ld: ptr LDAP, Oid: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_extended_operationA*(ld: ptr LDAP, Oid: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_extended_operation_sA*(ExternalHandle: ptr LDAP, Oid: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, ReturnedOid: ptr PCHAR, ReturnedData: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_extended_operation_sW*(ExternalHandle: ptr LDAP, Oid: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, ReturnedOid: ptr PWCHAR, ReturnedData: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_close_extended_op*(ld: ptr LDAP, MessageNumber: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} +proc ldap_ufn2dnW*( + ufn: PWCHAR, pDn: ptr PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_ufn2dnA*( + ufn: PCHAR, pDn: ptr PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_startup*( + version: PLDAP_VERSION_INFO, Instance: ptr HANDLE +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_cleanup*( + hInstance: HANDLE +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_escape_filter_elementW*( + sourceFilterElement: PCHAR, + sourceLength: ULONG, + destFilterElement: PWCHAR, + destLength: ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_escape_filter_elementA*( + sourceFilterElement: PCHAR, + sourceLength: ULONG, + destFilterElement: PCHAR, + destLength: ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_set_dbg_flags*( + NewFlags: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_set_dbg_routine*( + DebugPrintRoutine: DBGPRINT +): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc LdapUTF8ToUnicode*( + lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32 +): int32 {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc LdapUnicodeToUTF8*( + lpSrcStr: LPCWSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32 +): int32 {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_create_sort_controlA*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyA, + IsCritical: UCHAR, + Control: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_create_sort_controlW*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyW, + IsCritical: UCHAR, + Control: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_sort_controlA*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlA, + Result: ptr ULONG, + Attribute: ptr PCHAR, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_sort_controlW*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlW, + Result: ptr ULONG, + Attribute: ptr PWCHAR, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_encode_sort_controlW*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyW, + Control: PLDAPControlW, + Criticality: BOOLEAN, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_encode_sort_controlA*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyA, + Control: PLDAPControlA, + Criticality: BOOLEAN, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_create_page_controlW*( + ExternalHandle: PLDAP, + PageSize: ULONG, + Cookie: ptr BERVAL, + IsCritical: UCHAR, + Control: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_create_page_controlA*( + ExternalHandle: PLDAP, + PageSize: ULONG, + Cookie: ptr BERVAL, + IsCritical: UCHAR, + Control: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_page_controlW*( + ExternalHandle: PLDAP, + ServerControls: ptr PLDAPControlW, + TotalCount: ptr ULONG, + Cookie: ptr ptr BERVAL, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_page_controlA*( + ExternalHandle: PLDAP, + ServerControls: ptr PLDAPControlA, + TotalCount: ptr ULONG, + Cookie: ptr ptr BERVAL, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_init_pageW*( + ExternalHandle: PLDAP, + DistinguishedName: PWCHAR, + ScopeOfSearch: ULONG, + SearchFilter: PWCHAR, + AttributeList: ptr PWCHAR, + AttributesOnly: ULONG, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + PageTimeLimit: ULONG, + TotalSizeLimit: ULONG, + SortKeys: ptr PLDAPSortKeyW, +): PLDAPSearch {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_init_pageA*( + ExternalHandle: PLDAP, + DistinguishedName: PCHAR, + ScopeOfSearch: ULONG, + SearchFilter: PCHAR, + AttributeList: ptr PCHAR, + AttributesOnly: ULONG, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + PageTimeLimit: ULONG, + TotalSizeLimit: ULONG, + SortKeys: ptr PLDAPSortKeyA, +): PLDAPSearch {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_next_page*( + ExternalHandle: PLDAP, + SearchHandle: PLDAPSearch, + PageSize: ULONG, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_next_page_s*( + ExternalHandle: PLDAP, + SearchHandle: PLDAPSearch, + timeout: ptr LDAP_TIMEVAL, + PageSize: ULONG, + TotalCount: ptr ULONG, + Results: ptr ptr LDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_get_paged_count*( + ExternalHandle: PLDAP, + SearchBlock: PLDAPSearch, + TotalCount: ptr ULONG, + Results: PLDAPMessage, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_search_abandon_page*( + ExternalHandle: PLDAP, SearchBlock: PLDAPSearch +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_create_vlv_controlW*( + ExternalHandle: PLDAP, + VlvInfo: PLDAPVLVInfo, + IsCritical: UCHAR, + Control: ptr PLDAPControlW, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_create_vlv_controlA*( + ExternalHandle: PLDAP, + VlvInfo: PLDAPVLVInfo, + IsCritical: UCHAR, + Control: ptr PLDAPControlA, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_vlv_controlW*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlW, + TargetPos: PULONG, + ListCount: PULONG, + Context: ptr PBERVAL, + ErrCode: PINT, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_vlv_controlA*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlA, + TargetPos: PULONG, + ListCount: PULONG, + Context: ptr PBERVAL, + ErrCode: PINT, +): INT {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_start_tls_sW*( + ExternalHandle: PLDAP, + ServerReturnValue: PULONG, + result: ptr ptr LDAPMessage, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_start_tls_sA*( + ExternalHandle: PLDAP, + ServerReturnValue: PULONG, + result: ptr ptr LDAPMessage, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_stop_tls_s*( + ExternalHandle: PLDAP +): BOOLEAN {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_first_reference*( + ld: ptr LDAP, res: ptr LDAPMessage +): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_next_reference*( + ld: ptr LDAP, entry: ptr LDAPMessage +): ptr LDAPMessage {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_count_references*( + ld: ptr LDAP, res: ptr LDAPMessage +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_referenceW*( + Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PWCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_parse_referenceA*( + Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PCHAR +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_extended_operationW*( + ld: ptr LDAP, + Oid: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_extended_operationA*( + ld: ptr LDAP, + Oid: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_extended_operation_sA*( + ExternalHandle: ptr LDAP, + Oid: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ReturnedOid: ptr PCHAR, + ReturnedData: ptr ptr BERVAL, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_extended_operation_sW*( + ExternalHandle: ptr LDAP, + Oid: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ReturnedOid: ptr PWCHAR, + ReturnedData: ptr ptr BERVAL, +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_close_extended_op*( + ld: ptr LDAP, MessageNumber: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + proc LdapGetLastError*(): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc LdapMapErrorToWin32*(LdapError: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} -proc ldap_conn_from_msg*(PrimaryConn: ptr LDAP, res: ptr LDAPMessage): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} +proc LdapMapErrorToWin32*( + LdapError: ULONG +): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + +proc ldap_conn_from_msg*( + PrimaryConn: ptr LDAP, res: ptr LDAPMessage +): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + when winimUnicode: type LDAPControl* = LDAPControlW @@ -860,6 +1837,7 @@ LDAPSortKey* = LDAPSortKeyW PLDAPSortKey* = PLDAPSortKeyW SSL_EMPTY_CACHE_FN* = SSL_EMPTY_CACHE_FN_W + const LDAP_UNICODE* = 1 UNISP_NAME* = UNISP_NAME_W @@ -868,79 +1846,489 @@ SSL3SP_NAME* = SSL3SP_NAME_W TLS1SP_NAME* = TLS1SP_NAME_W SCHANNEL_NAME* = SCHANNEL_NAME_W - proc ldap_open*(HostName: PWCHAR, PortNumber: ULONG): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_openW".} - proc ldap_init*(HostName: PWCHAR, PortNumber: ULONG): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_initW".} - proc ldap_sslinit*(HostName: PWCHAR, PortNumber: ULONG, secure: int32): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sslinitW".} - proc cldap_open*(HostName: PWCHAR, PortNumber: ULONG): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "cldap_openW".} - proc ldap_get_option*(ld: ptr LDAP, option: int32, outvalue: pointer): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_optionW".} - proc ldap_set_option*(ld: ptr LDAP, option: int32, invalue: pointer): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_set_optionW".} - proc ldap_simple_bind*(ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_simple_bindW".} - proc ldap_simple_bind_s*(ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_simple_bind_sW".} - proc ldap_bind*(ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_bindW".} - proc ldap_bind_s*(ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_bind_sW".} - proc ldap_sasl_bind*(ExternalHandle: ptr LDAP, DistName: PWCHAR, AuthMechanism: PWCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlW, ClientCtrls: ptr PLDAPControlW, MessageNumber: ptr int32): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bindW".} - proc ldap_sasl_bind_s*(ExternalHandle: ptr LDAP, DistName: PWCHAR, AuthMechanism: PWCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlW, ClientCtrls: ptr PLDAPControlW, ServerData: ptr PBERVAL): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bind_sW".} - proc ldap_search*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_searchW".} - proc ldap_search_s*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_sW".} - proc ldap_search_st*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, timeout: ptr LDAP_TIMEVAL, res: ptr ptr LDAPMessage): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_stW".} - proc ldap_search_ext*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, TimeLimit: ULONG, SizeLimit: ULONG, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_extW".} - proc ldap_search_ext_s*(ld: ptr LDAP, base: PWCHAR, scope: ULONG, filter: PWCHAR, attrs: ptr PWCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, timeout: ptr LDAP_TIMEVAL, SizeLimit: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_ext_sW".} - proc ldap_check_filter*(ld: ptr LDAP, SearchFilter: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_check_filterW".} - proc ldap_modify*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modifyW".} - proc ldap_modify_s*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modify_sW".} - proc ldap_modify_ext*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modify_extW".} - proc ldap_modify_ext_s*(ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modify_ext_sW".} - proc ldap_modrdn2*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR, DeleteOldRdn: INT): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdn2W".} - proc ldap_modrdn*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdnW".} - proc ldap_modrdn2_s*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR, DeleteOldRdn: INT): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdn2_sW".} - proc ldap_modrdn_s*(ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdn_sW".} - proc ldap_rename*(ld: ptr LDAP, dn: PWCHAR, NewRDN: PWCHAR, NewParent: PWCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_extW".} - proc ldap_rename_s*(ld: ptr LDAP, dn: PWCHAR, NewRDN: PWCHAR, NewParent: PWCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_ext_sW".} - proc ldap_rename_ext*(ld: ptr LDAP, dn: PWCHAR, NewRDN: PWCHAR, NewParent: PWCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_extW".} - proc ldap_rename_ext_s*(ld: ptr LDAP, dn: PWCHAR, NewRDN: PWCHAR, NewParent: PWCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_ext_sW".} - proc ldap_add*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_addW".} - proc ldap_add_s*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_add_sW".} - proc ldap_add_ext*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_add_extW".} - proc ldap_add_ext_s*(ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_add_ext_sW".} - proc ldap_compare*(ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compareW".} - proc ldap_compare_s*(ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compare_sW".} - proc ldap_compare_ext*(ld: ptr LDAP, dn: PWCHAR, Attr: PWCHAR, Value: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compare_extW".} - proc ldap_compare_ext_s*(ld: ptr LDAP, dn: PWCHAR, Attr: PWCHAR, Value: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compare_ext_sW".} - proc ldap_delete*(ld: ptr LDAP, dn: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_deleteW".} - proc ldap_delete_ext*(ld: ptr LDAP, dn: PWCHAR, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_delete_extW".} - proc ldap_delete_s*(ld: ptr LDAP, dn: PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_delete_sW".} - proc ldap_delete_ext_s*(ld: ptr LDAP, dn: PWCHAR, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_delete_ext_sW".} - proc ldap_parse_result*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ReturnCode: ptr ULONG, MatchedDNs: ptr PWCHAR, ErrorMessage: ptr PWCHAR, Referrals: ptr ptr PWCHAR, ServerControls: ptr ptr PLDAPControlW, Freeit: BOOLEAN): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_resultW".} - proc ldap_controls_free*(Control: ptr ptr LDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_controls_freeW".} - proc ldap_control_free*(Control: ptr LDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_control_freeW".} - proc ldap_free_controls*(Controls: ptr ptr LDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_free_controlsW".} - proc ldap_parse_extended_result*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ResultOID: ptr PWCHAR, ResultData: ptr ptr BERVAL, Freeit: BOOLEAN): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_extended_resultW".} - proc ldap_err2string*(err: ULONG): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_err2stringW".} - proc ldap_first_attribute*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_first_attributeW".} - proc ldap_next_attribute*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_next_attributeW".} - proc ldap_get_values*(ld: ptr LDAP, entry: ptr LDAPMessage, attr: PWCHAR): ptr PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_valuesW".} - proc ldap_get_values_len*(ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PWCHAR): ptr ptr BERVAL {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_values_lenW".} - proc ldap_count_values*(vals: ptr PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_count_valuesW".} - proc ldap_value_free*(vals: ptr PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_value_freeW".} - proc ldap_get_dn*(ld: ptr LDAP, entry: ptr LDAPMessage): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_dnW".} - proc ldap_explode_dn*(dn: PWCHAR, notypes: ULONG): ptr PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_explode_dnW".} - proc ldap_dn2ufn*(dn: PWCHAR): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_dn2ufnW".} - proc ldap_memfree*(Block: PWCHAR): VOID {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_memfreeW".} - proc ldap_ufn2dn*(ufn: PWCHAR, pDn: ptr PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_ufn2dnW".} - proc ldap_escape_filter_element*(sourceFilterElement: PCHAR, sourceLength: ULONG, destFilterElement: PWCHAR, destLength: ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_escape_filter_elementW".} - proc ldap_create_sort_control*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyW, IsCritical: UCHAR, Control: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_sort_controlW".} - proc ldap_parse_sort_control*(ExternalHandle: PLDAP, Control: ptr PLDAPControlW, Result: ptr ULONG, Attribute: ptr PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_sort_controlW".} - proc ldap_encode_sort_control*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyW, Control: PLDAPControlW, Criticality: BOOLEAN): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_encode_sort_controlW".} - proc ldap_create_page_control*(ExternalHandle: PLDAP, PageSize: ULONG, Cookie: ptr BERVAL, IsCritical: UCHAR, Control: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_page_controlW".} - proc ldap_parse_page_control*(ExternalHandle: PLDAP, ServerControls: ptr PLDAPControlW, TotalCount: ptr ULONG, Cookie: ptr ptr BERVAL): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_page_controlW".} - proc ldap_search_init_page*(ExternalHandle: PLDAP, DistinguishedName: PWCHAR, ScopeOfSearch: ULONG, SearchFilter: PWCHAR, AttributeList: ptr PWCHAR, AttributesOnly: ULONG, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, PageTimeLimit: ULONG, TotalSizeLimit: ULONG, SortKeys: ptr PLDAPSortKeyW): PLDAPSearch {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_init_pageW".} - proc ldap_create_vlv_control*(ExternalHandle: PLDAP, VlvInfo: PLDAPVLVInfo, IsCritical: UCHAR, Control: ptr PLDAPControlW): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_vlv_controlW".} - proc ldap_parse_vlv_control*(ExternalHandle: PLDAP, Control: ptr PLDAPControlW, TargetPos: PULONG, ListCount: PULONG, Context: ptr PBERVAL, ErrCode: PINT): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_vlv_controlW".} - proc ldap_start_tls_s*(ExternalHandle: PLDAP, ServerReturnValue: PULONG, result: ptr ptr LDAPMessage, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_start_tls_sW".} - proc ldap_parse_reference*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PWCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_referenceW".} - proc ldap_extended_operation*(ld: ptr LDAP, Oid: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_extended_operationW".} - proc ldap_extended_operation_s*(ExternalHandle: ptr LDAP, Oid: PWCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlW, ClientControls: ptr PLDAPControlW, ReturnedOid: ptr PWCHAR, ReturnedData: ptr ptr BERVAL): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_extended_operation_sW".} - proc SslEmptyCache*(pszTargetName: LPWSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc: "SslEmptyCacheW".} + proc ldap_open*( + HostName: PWCHAR, PortNumber: ULONG + ): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_openW".} + + proc ldap_init*( + HostName: PWCHAR, PortNumber: ULONG + ): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_initW".} + + proc ldap_sslinit*( + HostName: PWCHAR, PortNumber: ULONG, secure: int32 + ): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sslinitW".} + + proc cldap_open*( + HostName: PWCHAR, PortNumber: ULONG + ): ptr LDAP {.winapi, stdcall, dynlib: "wldap32", importc: "cldap_openW".} + + proc ldap_get_option*( + ld: ptr LDAP, option: int32, outvalue: pointer + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_optionW".} + + proc ldap_set_option*( + ld: ptr LDAP, option: int32, invalue: pointer + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_set_optionW".} + + proc ldap_simple_bind*( + ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_simple_bindW".} + + proc ldap_simple_bind_s*( + ld: ptr LDAP, dn: PWCHAR, passwd: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_simple_bind_sW".} + + proc ldap_bind*( + ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_bindW".} + + proc ldap_bind_s*( + ld: ptr LDAP, dn: PWCHAR, cred: PWCHAR, `method`: ULONG + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_bind_sW".} + + proc ldap_sasl_bind*( + ExternalHandle: ptr LDAP, + DistName: PWCHAR, + AuthMechanism: PWCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlW, + ClientCtrls: ptr PLDAPControlW, + MessageNumber: ptr int32, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bindW".} + + proc ldap_sasl_bind_s*( + ExternalHandle: ptr LDAP, + DistName: PWCHAR, + AuthMechanism: PWCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlW, + ClientCtrls: ptr PLDAPControlW, + ServerData: ptr PBERVAL, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bind_sW".} + + proc ldap_search*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_searchW".} + + proc ldap_search_s*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + res: ptr ptr LDAPMessage, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_sW".} + + proc ldap_search_st*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + timeout: ptr LDAP_TIMEVAL, + res: ptr ptr LDAPMessage, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_stW".} + + proc ldap_search_ext*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + TimeLimit: ULONG, + SizeLimit: ULONG, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_extW".} + + proc ldap_search_ext_s*( + ld: ptr LDAP, + base: PWCHAR, + scope: ULONG, + filter: PWCHAR, + attrs: ptr PWCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + timeout: ptr LDAP_TIMEVAL, + SizeLimit: ULONG, + res: ptr ptr LDAPMessage, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_ext_sW".} + + proc ldap_check_filter*( + ld: ptr LDAP, SearchFilter: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_check_filterW".} + + proc ldap_modify*( + ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modifyW".} + + proc ldap_modify_s*( + ld: ptr LDAP, dn: PWCHAR, mods: ptr ptr LDAPModW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modify_sW".} + + proc ldap_modify_ext*( + ld: ptr LDAP, + dn: PWCHAR, + mods: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modify_extW".} + + proc ldap_modify_ext_s*( + ld: ptr LDAP, + dn: PWCHAR, + mods: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modify_ext_sW".} + + proc ldap_modrdn2*( + ExternalHandle: ptr LDAP, + DistinguishedName: PWCHAR, + NewDistinguishedName: PWCHAR, + DeleteOldRdn: INT, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdn2W".} + + proc ldap_modrdn*( + ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdnW".} + + proc ldap_modrdn2_s*( + ExternalHandle: ptr LDAP, + DistinguishedName: PWCHAR, + NewDistinguishedName: PWCHAR, + DeleteOldRdn: INT, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdn2_sW".} + + proc ldap_modrdn_s*( + ExternalHandle: ptr LDAP, DistinguishedName: PWCHAR, NewDistinguishedName: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_modrdn_sW".} + + proc ldap_rename*( + ld: ptr LDAP, + dn: PWCHAR, + NewRDN: PWCHAR, + NewParent: PWCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_extW".} + + proc ldap_rename_s*( + ld: ptr LDAP, + dn: PWCHAR, + NewRDN: PWCHAR, + NewParent: PWCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_ext_sW".} + + proc ldap_rename_ext*( + ld: ptr LDAP, + dn: PWCHAR, + NewRDN: PWCHAR, + NewParent: PWCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_extW".} + + proc ldap_rename_ext_s*( + ld: ptr LDAP, + dn: PWCHAR, + NewRDN: PWCHAR, + NewParent: PWCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_ext_sW".} + + proc ldap_add*( + ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_addW".} + + proc ldap_add_s*( + ld: ptr LDAP, dn: PWCHAR, attrs: ptr ptr LDAPModW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_add_sW".} + + proc ldap_add_ext*( + ld: ptr LDAP, + dn: PWCHAR, + attrs: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_add_extW".} + + proc ldap_add_ext_s*( + ld: ptr LDAP, + dn: PWCHAR, + attrs: ptr ptr LDAPModW, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_add_ext_sW".} + + proc ldap_compare*( + ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compareW".} + + proc ldap_compare_s*( + ld: ptr LDAP, dn: PWCHAR, attr: PWCHAR, value: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compare_sW".} + + proc ldap_compare_ext*( + ld: ptr LDAP, + dn: PWCHAR, + Attr: PWCHAR, + Value: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compare_extW".} + + proc ldap_compare_ext_s*( + ld: ptr LDAP, + dn: PWCHAR, + Attr: PWCHAR, + Value: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_compare_ext_sW".} + + proc ldap_delete*( + ld: ptr LDAP, dn: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_deleteW".} + + proc ldap_delete_ext*( + ld: ptr LDAP, + dn: PWCHAR, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_delete_extW".} + + proc ldap_delete_s*( + ld: ptr LDAP, dn: PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_delete_sW".} + + proc ldap_delete_ext_s*( + ld: ptr LDAP, + dn: PWCHAR, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_delete_ext_sW".} + + proc ldap_parse_result*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ReturnCode: ptr ULONG, + MatchedDNs: ptr PWCHAR, + ErrorMessage: ptr PWCHAR, + Referrals: ptr ptr PWCHAR, + ServerControls: ptr ptr PLDAPControlW, + Freeit: BOOLEAN, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_resultW".} + + proc ldap_controls_free*( + Control: ptr ptr LDAPControlW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_controls_freeW".} + + proc ldap_control_free*( + Control: ptr LDAPControlW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_control_freeW".} + + proc ldap_free_controls*( + Controls: ptr ptr LDAPControlW + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_free_controlsW".} + + proc ldap_parse_extended_result*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ResultOID: ptr PWCHAR, + ResultData: ptr ptr BERVAL, + Freeit: BOOLEAN, + ): ULONG {. + winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_extended_resultW" + .} + + proc ldap_err2string*( + err: ULONG + ): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_err2stringW".} + + proc ldap_first_attribute*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement + ): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_first_attributeW".} + + proc ldap_next_attribute*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement + ): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_next_attributeW".} + + proc ldap_get_values*( + ld: ptr LDAP, entry: ptr LDAPMessage, attr: PWCHAR + ): ptr PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_valuesW".} + + proc ldap_get_values_len*( + ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PWCHAR + ): ptr ptr BERVAL {. + winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_values_lenW" + .} + + proc ldap_count_values*( + vals: ptr PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_count_valuesW".} + + proc ldap_value_free*( + vals: ptr PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_value_freeW".} + + proc ldap_get_dn*( + ld: ptr LDAP, entry: ptr LDAPMessage + ): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_get_dnW".} + + proc ldap_explode_dn*( + dn: PWCHAR, notypes: ULONG + ): ptr PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_explode_dnW".} + + proc ldap_dn2ufn*( + dn: PWCHAR + ): PWCHAR {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_dn2ufnW".} + + proc ldap_memfree*( + Block: PWCHAR + ): VOID {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_memfreeW".} + + proc ldap_ufn2dn*( + ufn: PWCHAR, pDn: ptr PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_ufn2dnW".} + + proc ldap_escape_filter_element*( + sourceFilterElement: PCHAR, + sourceLength: ULONG, + destFilterElement: PWCHAR, + destLength: ULONG, + ): ULONG {. + winapi, stdcall, dynlib: "wldap32", importc: "ldap_escape_filter_elementW" + .} + + proc ldap_create_sort_control*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyW, + IsCritical: UCHAR, + Control: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_sort_controlW".} + + proc ldap_parse_sort_control*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlW, + Result: ptr ULONG, + Attribute: ptr PWCHAR, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_sort_controlW".} + + proc ldap_encode_sort_control*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyW, + Control: PLDAPControlW, + Criticality: BOOLEAN, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_encode_sort_controlW".} + + proc ldap_create_page_control*( + ExternalHandle: PLDAP, + PageSize: ULONG, + Cookie: ptr BERVAL, + IsCritical: UCHAR, + Control: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_page_controlW".} + + proc ldap_parse_page_control*( + ExternalHandle: PLDAP, + ServerControls: ptr PLDAPControlW, + TotalCount: ptr ULONG, + Cookie: ptr ptr BERVAL, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_page_controlW".} + + proc ldap_search_init_page*( + ExternalHandle: PLDAP, + DistinguishedName: PWCHAR, + ScopeOfSearch: ULONG, + SearchFilter: PWCHAR, + AttributeList: ptr PWCHAR, + AttributesOnly: ULONG, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + PageTimeLimit: ULONG, + TotalSizeLimit: ULONG, + SortKeys: ptr PLDAPSortKeyW, + ): PLDAPSearch {. + winapi, stdcall, dynlib: "wldap32", importc: "ldap_search_init_pageW" + .} + + proc ldap_create_vlv_control*( + ExternalHandle: PLDAP, + VlvInfo: PLDAPVLVInfo, + IsCritical: UCHAR, + Control: ptr PLDAPControlW, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_vlv_controlW".} + + proc ldap_parse_vlv_control*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlW, + TargetPos: PULONG, + ListCount: PULONG, + Context: ptr PBERVAL, + ErrCode: PINT, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_vlv_controlW".} + + proc ldap_start_tls_s*( + ExternalHandle: PLDAP, + ServerReturnValue: PULONG, + result: ptr ptr LDAPMessage, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_start_tls_sW".} + + proc ldap_parse_reference*( + Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PWCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_referenceW".} + + proc ldap_extended_operation*( + ld: ptr LDAP, + Oid: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_extended_operationW".} + + proc ldap_extended_operation_s*( + ExternalHandle: ptr LDAP, + Oid: PWCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlW, + ClientControls: ptr PLDAPControlW, + ReturnedOid: ptr PWCHAR, + ReturnedData: ptr ptr BERVAL, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_extended_operation_sW".} + + proc SslEmptyCache*( + pszTargetName: LPWSTR, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc: "SslEmptyCacheW".} + when winimAnsi: type LDAPControl* = LDAPControlA @@ -952,6 +2340,7 @@ LDAPSortKey* = LDAPSortKeyA PLDAPSortKey* = PLDAPSortKeyA SSL_EMPTY_CACHE_FN* = SSL_EMPTY_CACHE_FN_A + const LDAP_UNICODE* = 0 UNISP_NAME* = UNISP_NAME_A @@ -960,75 +2349,463 @@ SSL3SP_NAME* = SSL3SP_NAME_A TLS1SP_NAME* = TLS1SP_NAME_A SCHANNEL_NAME* = SCHANNEL_NAME_A - proc ldap_open*(HostName: PCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_init*(HostName: PCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_sslinit*(HostName: PCHAR, PortNumber: ULONG, secure: int32): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} - proc cldap_open*(HostName: PCHAR, PortNumber: ULONG): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_get_option*(ld: ptr LDAP, option: int32, outvalue: pointer): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_set_option*(ld: ptr LDAP, option: int32, invalue: pointer): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_simple_bind*(ld: ptr LDAP, dn: PCHAR, passwd: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_simple_bind_s*(ld: ptr LDAP, dn: PCHAR, passwd: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_bind*(ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_bind_s*(ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_sasl_bind*(ExternalHandle: ptr LDAP, DistName: PCHAR, AuthMechanism: PCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlA, ClientCtrls: ptr PLDAPControlA, MessageNumber: ptr int32): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bindA".} - proc ldap_sasl_bind_s*(ExternalHandle: ptr LDAP, DistName: PCHAR, AuthMechanism: PCHAR, cred: ptr BERVAL, ServerCtrls: ptr PLDAPControlA, ClientCtrls: ptr PLDAPControlA, ServerData: ptr PBERVAL): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bind_sA".} - proc ldap_search*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_search_s*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_search_st*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, timeout: ptr LDAP_TIMEVAL, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_search_ext*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, TimeLimit: ULONG, SizeLimit: ULONG, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_search_ext_s*(ld: ptr LDAP, base: PCHAR, scope: ULONG, filter: PCHAR, attrs: ptr PCHAR, attrsonly: ULONG, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, timeout: ptr LDAP_TIMEVAL, SizeLimit: ULONG, res: ptr ptr LDAPMessage): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_check_filter*(ld: ptr LDAP, SearchFilter: PCHAR): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_check_filterA".} - proc ldap_modify*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modify_s*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modify_ext*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modify_ext_s*(ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modrdn2*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR, DeleteOldRdn: INT): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modrdn*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modrdn2_s*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR, DeleteOldRdn: INT): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_modrdn_s*(ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_rename*(ld: ptr LDAP, dn: PCHAR, NewRDN: PCHAR, NewParent: PCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_extA".} - proc ldap_rename_s*(ld: ptr LDAP, dn: PCHAR, NewRDN: PCHAR, NewParent: PCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_ext_sA".} - proc ldap_rename_ext*(ld: ptr LDAP, dn: PCHAR, NewRDN: PCHAR, NewParent: PCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_rename_ext_s*(ld: ptr LDAP, dn: PCHAR, NewRDN: PCHAR, NewParent: PCHAR, DeleteOldRdn: INT, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_add*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPMod): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_add_s*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPMod): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_add_ext*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_add_ext_s*(ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPModA, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_compare*(ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_compare_s*(ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_compare_ext*(ld: ptr LDAP, dn: PCHAR, Attr: PCHAR, Value: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_compare_ext_s*(ld: ptr LDAP, dn: PCHAR, Attr: PCHAR, Value: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_delete*(ld: ptr LDAP, dn: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_delete_s*(ld: ptr LDAP, dn: PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_delete_ext*(ld: ptr LDAP, dn: PCHAR, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_delete_ext_s*(ld: ptr LDAP, dn: PCHAR, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_parse_extended_result*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ResultOID: ptr PCHAR, ResultData: ptr ptr BERVAL, Freeit: BOOLEAN): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_extended_resultA".} - proc ldap_parse_result*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, ReturnCode: ptr ULONG, MatchedDNs: ptr PCHAR, ErrorMessage: ptr PCHAR, Referrals: ptr ptr PCHAR, ServerControls: ptr ptr PLDAPControlA, Freeit: BOOLEAN): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_controls_free*(Controls: ptr ptr LDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_control_free*(Control: ptr LDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_free_controls*(Controls: ptr ptr LDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_open*( + HostName: PCHAR, PortNumber: ULONG + ): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_init*( + HostName: PCHAR, PortNumber: ULONG + ): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_sslinit*( + HostName: PCHAR, PortNumber: ULONG, secure: int32 + ): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc cldap_open*( + HostName: PCHAR, PortNumber: ULONG + ): ptr LDAP {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_get_option*( + ld: ptr LDAP, option: int32, outvalue: pointer + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_set_option*( + ld: ptr LDAP, option: int32, invalue: pointer + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_simple_bind*( + ld: ptr LDAP, dn: PCHAR, passwd: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_simple_bind_s*( + ld: ptr LDAP, dn: PCHAR, passwd: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_bind*( + ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_bind_s*( + ld: ptr LDAP, dn: PCHAR, cred: PCHAR, `method`: ULONG + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_sasl_bind*( + ExternalHandle: ptr LDAP, + DistName: PCHAR, + AuthMechanism: PCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlA, + ClientCtrls: ptr PLDAPControlA, + MessageNumber: ptr int32, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bindA".} + + proc ldap_sasl_bind_s*( + ExternalHandle: ptr LDAP, + DistName: PCHAR, + AuthMechanism: PCHAR, + cred: ptr BERVAL, + ServerCtrls: ptr PLDAPControlA, + ClientCtrls: ptr PLDAPControlA, + ServerData: ptr PBERVAL, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_sasl_bind_sA".} + + proc ldap_search*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_search_s*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + res: ptr ptr LDAPMessage, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_search_st*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + timeout: ptr LDAP_TIMEVAL, + res: ptr ptr LDAPMessage, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_search_ext*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + TimeLimit: ULONG, + SizeLimit: ULONG, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_search_ext_s*( + ld: ptr LDAP, + base: PCHAR, + scope: ULONG, + filter: PCHAR, + attrs: ptr PCHAR, + attrsonly: ULONG, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + timeout: ptr LDAP_TIMEVAL, + SizeLimit: ULONG, + res: ptr ptr LDAPMessage, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_check_filter*( + ld: ptr LDAP, SearchFilter: PCHAR + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_check_filterA".} + + proc ldap_modify*( + ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modify_s*( + ld: ptr LDAP, dn: PCHAR, mods: ptr ptr LDAPModA + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modify_ext*( + ld: ptr LDAP, + dn: PCHAR, + mods: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modify_ext_s*( + ld: ptr LDAP, + dn: PCHAR, + mods: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modrdn2*( + ExternalHandle: ptr LDAP, + DistinguishedName: PCHAR, + NewDistinguishedName: PCHAR, + DeleteOldRdn: INT, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modrdn*( + ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modrdn2_s*( + ExternalHandle: ptr LDAP, + DistinguishedName: PCHAR, + NewDistinguishedName: PCHAR, + DeleteOldRdn: INT, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_modrdn_s*( + ExternalHandle: ptr LDAP, DistinguishedName: PCHAR, NewDistinguishedName: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_rename*( + ld: ptr LDAP, + dn: PCHAR, + NewRDN: PCHAR, + NewParent: PCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_extA".} + + proc ldap_rename_s*( + ld: ptr LDAP, + dn: PCHAR, + NewRDN: PCHAR, + NewParent: PCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_rename_ext_sA".} + + proc ldap_rename_ext*( + ld: ptr LDAP, + dn: PCHAR, + NewRDN: PCHAR, + NewParent: PCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_rename_ext_s*( + ld: ptr LDAP, + dn: PCHAR, + NewRDN: PCHAR, + NewParent: PCHAR, + DeleteOldRdn: INT, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_add*( + ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPMod + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_add_s*( + ld: ptr LDAP, dn: PCHAR, attrs: ptr ptr LDAPMod + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_add_ext*( + ld: ptr LDAP, + dn: PCHAR, + attrs: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_add_ext_s*( + ld: ptr LDAP, + dn: PCHAR, + attrs: ptr ptr LDAPModA, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_compare*( + ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_compare_s*( + ld: ptr LDAP, dn: PCHAR, attr: PCHAR, value: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_compare_ext*( + ld: ptr LDAP, + dn: PCHAR, + Attr: PCHAR, + Value: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_compare_ext_s*( + ld: ptr LDAP, + dn: PCHAR, + Attr: PCHAR, + Value: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_delete*( + ld: ptr LDAP, dn: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_delete_s*( + ld: ptr LDAP, dn: PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_delete_ext*( + ld: ptr LDAP, + dn: PCHAR, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_delete_ext_s*( + ld: ptr LDAP, + dn: PCHAR, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_parse_extended_result*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ResultOID: ptr PCHAR, + ResultData: ptr ptr BERVAL, + Freeit: BOOLEAN, + ): ULONG {. + winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_extended_resultA" + .} + + proc ldap_parse_result*( + Connection: ptr LDAP, + ResultMessage: ptr LDAPMessage, + ReturnCode: ptr ULONG, + MatchedDNs: ptr PCHAR, + ErrorMessage: ptr PCHAR, + Referrals: ptr ptr PCHAR, + ServerControls: ptr ptr PLDAPControlA, + Freeit: BOOLEAN, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_controls_free*( + Controls: ptr ptr LDAPControlA + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_control_free*( + Control: ptr LDAPControlA + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_free_controls*( + Controls: ptr ptr LDAPControlA + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_err2string*(err: ULONG): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_first_attribute*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_next_attribute*(ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_get_values*(ld: ptr LDAP, entry: ptr LDAPMessage, attr: PCHAR): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_get_values_len*(ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PCHAR): ptr ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_count_values*(vals: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_value_free*(vals: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_get_dn*(ld: ptr LDAP, entry: ptr LDAPMessage): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_explode_dn*(dn: PCHAR, notypes: ULONG): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_first_attribute*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr ptr BerElement + ): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_next_attribute*( + ld: ptr LDAP, entry: ptr LDAPMessage, `ptr`: ptr BerElement + ): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_get_values*( + ld: ptr LDAP, entry: ptr LDAPMessage, attr: PCHAR + ): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_get_values_len*( + ExternalHandle: ptr LDAP, Message: ptr LDAPMessage, attr: PCHAR + ): ptr ptr BERVAL {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_count_values*( + vals: ptr PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_value_free*( + vals: ptr PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_get_dn*( + ld: ptr LDAP, entry: ptr LDAPMessage + ): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_explode_dn*( + dn: PCHAR, notypes: ULONG + ): ptr PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} + proc ldap_dn2ufn*(dn: PCHAR): PCHAR {.winapi, cdecl, dynlib: "wldap32", importc.} proc ldap_memfree*(Block: PCHAR): VOID {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_ufn2dn*(ufn: PCHAR, pDn: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_escape_filter_element*(sourceFilterElement: PCHAR, sourceLength: ULONG, destFilterElement: PCHAR, destLength: ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_create_sort_control*(ExternalHandle: PLDAP, SortKeys: ptr PLDAPSortKeyA, IsCritical: UCHAR, Control: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_parse_sort_control*(ExternalHandle: PLDAP, Control: ptr PLDAPControlA, Result: ptr ULONG, Attribute: ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_create_page_control*(ExternalHandle: PLDAP, PageSize: ULONG, Cookie: ptr BERVAL, IsCritical: UCHAR, Control: ptr PLDAPControlA): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_parse_page_control*(ExternalHandle: PLDAP, ServerControls: ptr PLDAPControlA, TotalCount: ptr ULONG, Cookie: ptr ptr BERVAL): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_search_init_page*(ExternalHandle: PLDAP, DistinguishedName: PCHAR, ScopeOfSearch: ULONG, SearchFilter: PCHAR, AttributeList: ptr PCHAR, AttributesOnly: ULONG, ServerControls: ptr PLDAPControl, ClientControls: ptr PLDAPControl, PageTimeLimit: ULONG, TotalSizeLimit: ULONG, SortKeys: ptr PLDAPSortKey): PLDAPSearch {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_create_vlv_control*(ExternalHandle: PLDAP, VlvInfo: PLDAPVLVInfo, IsCritical: UCHAR, Control: ptr PLDAPControlA): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_vlv_controlA".} - proc ldap_parse_vlv_control*(ExternalHandle: PLDAP, Control: ptr PLDAPControlA, TargetPos: PULONG, ListCount: PULONG, Context: ptr PBERVAL, ErrCode: PINT): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_vlv_controlA".} - proc ldap_start_tls_s*(ExternalHandle: PLDAP, ServerReturnValue: PULONG, result: ptr ptr LDAPMessage, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_start_tls_sA".} - proc ldap_parse_reference*(Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PCHAR): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_extended_operation*(ld: ptr LDAP, Oid: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, MessageNumber: ptr ULONG): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} - proc ldap_extended_operation_s*(ExternalHandle: ptr LDAP, Oid: PCHAR, Data: ptr BERVAL, ServerControls: ptr PLDAPControlA, ClientControls: ptr PLDAPControlA, ReturnedOid: ptr PCHAR, ReturnedData: ptr ptr BERVAL): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_extended_operation_sA".} - proc SslEmptyCache*(pszTargetName: LPSTR, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc: "SslEmptyCacheA".} + proc ldap_ufn2dn*( + ufn: PCHAR, pDn: ptr PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_escape_filter_element*( + sourceFilterElement: PCHAR, + sourceLength: ULONG, + destFilterElement: PCHAR, + destLength: ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_create_sort_control*( + ExternalHandle: PLDAP, + SortKeys: ptr PLDAPSortKeyA, + IsCritical: UCHAR, + Control: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_parse_sort_control*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlA, + Result: ptr ULONG, + Attribute: ptr PCHAR, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_create_page_control*( + ExternalHandle: PLDAP, + PageSize: ULONG, + Cookie: ptr BERVAL, + IsCritical: UCHAR, + Control: ptr PLDAPControlA, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_parse_page_control*( + ExternalHandle: PLDAP, + ServerControls: ptr PLDAPControlA, + TotalCount: ptr ULONG, + Cookie: ptr ptr BERVAL, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_search_init_page*( + ExternalHandle: PLDAP, + DistinguishedName: PCHAR, + ScopeOfSearch: ULONG, + SearchFilter: PCHAR, + AttributeList: ptr PCHAR, + AttributesOnly: ULONG, + ServerControls: ptr PLDAPControl, + ClientControls: ptr PLDAPControl, + PageTimeLimit: ULONG, + TotalSizeLimit: ULONG, + SortKeys: ptr PLDAPSortKey, + ): PLDAPSearch {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_create_vlv_control*( + ExternalHandle: PLDAP, + VlvInfo: PLDAPVLVInfo, + IsCritical: UCHAR, + Control: ptr PLDAPControlA, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_create_vlv_controlA".} + + proc ldap_parse_vlv_control*( + ExternalHandle: PLDAP, + Control: ptr PLDAPControlA, + TargetPos: PULONG, + ListCount: PULONG, + Context: ptr PBERVAL, + ErrCode: PINT, + ): INT {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_parse_vlv_controlA".} + + proc ldap_start_tls_s*( + ExternalHandle: PLDAP, + ServerReturnValue: PULONG, + result: ptr ptr LDAPMessage, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_start_tls_sA".} + + proc ldap_parse_reference*( + Connection: ptr LDAP, ResultMessage: ptr LDAPMessage, Referrals: ptr ptr PCHAR + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_extended_operation*( + ld: ptr LDAP, + Oid: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + MessageNumber: ptr ULONG, + ): ULONG {.winapi, cdecl, dynlib: "wldap32", importc.} + + proc ldap_extended_operation_s*( + ExternalHandle: ptr LDAP, + Oid: PCHAR, + Data: ptr BERVAL, + ServerControls: ptr PLDAPControlA, + ClientControls: ptr PLDAPControlA, + ReturnedOid: ptr PCHAR, + ReturnedData: ptr ptr BERVAL, + ): ULONG {.winapi, stdcall, dynlib: "wldap32", importc: "ldap_extended_operation_sA".} + + proc SslEmptyCache*( + pszTargetName: LPSTR, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "schannel", importc: "SslEmptyCacheA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winnetwk.nim --- a/semicongine/thirdparty/winim/winim/inc/winnetwk.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winnetwk.nim Thu Aug 22 18:32:21 2024 +0700 @@ -19,6 +19,7 @@ lpRemoteName*: LPSTR lpComment*: LPSTR lpProvider*: LPSTR + LPNETRESOURCEA* = ptr NETRESOURCEA NETRESOURCEW* {.pure.} = object dwScope*: DWORD @@ -29,6 +30,7 @@ lpRemoteName*: LPWSTR lpComment*: LPWSTR lpProvider*: LPWSTR + LPNETRESOURCEW* = ptr NETRESOURCEW CONNECTDLGSTRUCTA* {.pure.} = object cbStructure*: DWORD @@ -36,6 +38,7 @@ lpConnRes*: LPNETRESOURCEA dwFlags*: DWORD dwDevNum*: DWORD + LPCONNECTDLGSTRUCTA* = ptr CONNECTDLGSTRUCTA CONNECTDLGSTRUCTW* {.pure.} = object cbStructure*: DWORD @@ -43,6 +46,7 @@ lpConnRes*: LPNETRESOURCEW dwFlags*: DWORD dwDevNum*: DWORD + LPCONNECTDLGSTRUCTW* = ptr CONNECTDLGSTRUCTW DISCDLGSTRUCTA* {.pure.} = object cbStructure*: DWORD @@ -50,6 +54,7 @@ lpLocalName*: LPSTR lpRemoteName*: LPSTR dwFlags*: DWORD + LPDISCDLGSTRUCTA* = ptr DISCDLGSTRUCTA DISCDLGSTRUCTW* {.pure.} = object cbStructure*: DWORD @@ -57,22 +62,27 @@ lpLocalName*: LPWSTR lpRemoteName*: LPWSTR dwFlags*: DWORD + LPDISCDLGSTRUCTW* = ptr DISCDLGSTRUCTW UNIVERSAL_NAME_INFOA* {.pure.} = object lpUniversalName*: LPSTR + LPUNIVERSAL_NAME_INFOA* = ptr UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFOW* {.pure.} = object lpUniversalName*: LPWSTR + LPUNIVERSAL_NAME_INFOW* = ptr UNIVERSAL_NAME_INFOW REMOTE_NAME_INFOA* {.pure.} = object lpUniversalName*: LPSTR lpConnectionName*: LPSTR lpRemainingPath*: LPSTR + LPREMOTE_NAME_INFOA* = ptr REMOTE_NAME_INFOA REMOTE_NAME_INFOW* {.pure.} = object lpUniversalName*: LPWSTR lpConnectionName*: LPWSTR lpRemainingPath*: LPWSTR + LPREMOTE_NAME_INFOW* = ptr REMOTE_NAME_INFOW NETINFOSTRUCT* {.pure.} = object cbStructure*: DWORD @@ -83,6 +93,7 @@ wNetType*: WORD dwPrinters*: DWORD dwDrives*: DWORD + LPNETINFOSTRUCT* = ptr NETINFOSTRUCT NETCONNECTINFOSTRUCT* {.pure.} = object cbStructure*: DWORD @@ -90,7 +101,9 @@ dwSpeed*: DWORD dwDelay*: DWORD dwOptDataSize*: DWORD + LPNETCONNECTINFOSTRUCT* = ptr NETCONNECTINFOSTRUCT + const WNNC_NET_MSNET* = 0x00010000 WNNC_NET_SMB* = 0x00020000 @@ -176,7 +189,8 @@ RESOURCEUSAGE_NOLOCALDEVICE* = 0x00000004 RESOURCEUSAGE_SIBLING* = 0x00000008 RESOURCEUSAGE_ATTACHED* = 0x00000010 - RESOURCEUSAGE_ALL* = RESOURCEUSAGE_CONNECTABLE or RESOURCEUSAGE_CONTAINER or RESOURCEUSAGE_ATTACHED + RESOURCEUSAGE_ALL* = + RESOURCEUSAGE_CONNECTABLE or RESOURCEUSAGE_CONTAINER or RESOURCEUSAGE_ATTACHED RESOURCEUSAGE_RESERVED* = 0x80000000'i32 RESOURCEDISPLAYTYPE_GENERIC* = 0x00000000 RESOURCEDISPLAYTYPE_DOMAIN* = 0x00000001 @@ -273,54 +287,242 @@ WNCON_SLOWLINK* = 0x00000004 WNCON_DYNAMIC* = 0x00000008 type - PFNGETPROFILEPATHA* = proc (pszUsername: LPCSTR, pszBuffer: LPSTR, cbBuffer: UINT): UINT {.stdcall.} - PFNGETPROFILEPATHW* = proc (pszUsername: LPCWSTR, pszBuffer: LPWSTR, cbBuffer: UINT): UINT {.stdcall.} - PFNRECONCILEPROFILEA* = proc (pszCentralFile: LPCSTR, pszLocalFile: LPCSTR, dwFlags: DWORD): UINT {.stdcall.} - PFNRECONCILEPROFILEW* = proc (pszCentralFile: LPCWSTR, pszLocalFile: LPCWSTR, dwFlags: DWORD): UINT {.stdcall.} - PFNPROCESSPOLICIESA* = proc (hwnd: HWND, pszPath: LPCSTR, pszUsername: LPCSTR, pszComputerName: LPCSTR, dwFlags: DWORD): WINBOOL {.stdcall.} - PFNPROCESSPOLICIESW* = proc (hwnd: HWND, pszPath: LPCWSTR, pszUsername: LPCWSTR, pszComputerName: LPCWSTR, dwFlags: DWORD): WINBOOL {.stdcall.} -proc WNetAddConnectionA*(lpRemoteName: LPCSTR, lpPassword: LPCSTR, lpLocalName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetAddConnectionW*(lpRemoteName: LPCWSTR, lpPassword: LPCWSTR, lpLocalName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetAddConnection2A*(lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetAddConnection2W*(lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserName: LPCWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetAddConnection3A*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetAddConnection3W*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserName: LPCWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetCancelConnectionA*(lpName: LPCSTR, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetCancelConnectionW*(lpName: LPCWSTR, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetCancelConnection2A*(lpName: LPCSTR, dwFlags: DWORD, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetCancelConnection2W*(lpName: LPCWSTR, dwFlags: DWORD, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetConnectionA*(lpLocalName: LPCSTR, lpRemoteName: LPSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetConnectionW*(lpLocalName: LPCWSTR, lpRemoteName: LPWSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetUseConnectionA*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserID: LPCSTR, dwFlags: DWORD, lpAccessName: LPSTR, lpBufferSize: LPDWORD, lpResult: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetUseConnectionW*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserID: LPCWSTR, dwFlags: DWORD, lpAccessName: LPWSTR, lpBufferSize: LPDWORD, lpResult: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetConnectionDialog*(hwnd: HWND, dwType: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetDisconnectDialog*(hwnd: HWND, dwType: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetRestoreSingleConnectionW*(hwndParent: HWND, lpDevice: LPCWSTR, fUseUI: BOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetConnectionDialog1A*(lpConnDlgStruct: LPCONNECTDLGSTRUCTA): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetConnectionDialog1W*(lpConnDlgStruct: LPCONNECTDLGSTRUCTW): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetDisconnectDialog1A*(lpConnDlgStruct: LPDISCDLGSTRUCTA): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetDisconnectDialog1W*(lpConnDlgStruct: LPDISCDLGSTRUCTW): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetOpenEnumA*(dwScope: DWORD, dwType: DWORD, dwUsage: DWORD, lpNetResource: LPNETRESOURCEA, lphEnum: LPHANDLE): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetOpenEnumW*(dwScope: DWORD, dwType: DWORD, dwUsage: DWORD, lpNetResource: LPNETRESOURCEW, lphEnum: LPHANDLE): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetEnumResourceA*(hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetEnumResourceW*(hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + PFNGETPROFILEPATHA* = + proc(pszUsername: LPCSTR, pszBuffer: LPSTR, cbBuffer: UINT): UINT {.stdcall.} + PFNGETPROFILEPATHW* = + proc(pszUsername: LPCWSTR, pszBuffer: LPWSTR, cbBuffer: UINT): UINT {.stdcall.} + PFNRECONCILEPROFILEA* = + proc(pszCentralFile: LPCSTR, pszLocalFile: LPCSTR, dwFlags: DWORD): UINT {.stdcall.} + PFNRECONCILEPROFILEW* = proc( + pszCentralFile: LPCWSTR, pszLocalFile: LPCWSTR, dwFlags: DWORD + ): UINT {.stdcall.} + PFNPROCESSPOLICIESA* = proc( + hwnd: HWND, + pszPath: LPCSTR, + pszUsername: LPCSTR, + pszComputerName: LPCSTR, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + PFNPROCESSPOLICIESW* = proc( + hwnd: HWND, + pszPath: LPCWSTR, + pszUsername: LPCWSTR, + pszComputerName: LPCWSTR, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + +proc WNetAddConnectionA*( + lpRemoteName: LPCSTR, lpPassword: LPCSTR, lpLocalName: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetAddConnectionW*( + lpRemoteName: LPCWSTR, lpPassword: LPCWSTR, lpLocalName: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetAddConnection2A*( + lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetAddConnection2W*( + lpNetResource: LPNETRESOURCEW, + lpPassword: LPCWSTR, + lpUserName: LPCWSTR, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetAddConnection3A*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEA, + lpPassword: LPCSTR, + lpUserName: LPCSTR, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetAddConnection3W*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEW, + lpPassword: LPCWSTR, + lpUserName: LPCWSTR, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetCancelConnectionA*( + lpName: LPCSTR, fForce: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetCancelConnectionW*( + lpName: LPCWSTR, fForce: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetCancelConnection2A*( + lpName: LPCSTR, dwFlags: DWORD, fForce: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetCancelConnection2W*( + lpName: LPCWSTR, dwFlags: DWORD, fForce: WINBOOL +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetConnectionA*( + lpLocalName: LPCSTR, lpRemoteName: LPSTR, lpnLength: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetConnectionW*( + lpLocalName: LPCWSTR, lpRemoteName: LPWSTR, lpnLength: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetUseConnectionA*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEA, + lpPassword: LPCSTR, + lpUserID: LPCSTR, + dwFlags: DWORD, + lpAccessName: LPSTR, + lpBufferSize: LPDWORD, + lpResult: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetUseConnectionW*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEW, + lpPassword: LPCWSTR, + lpUserID: LPCWSTR, + dwFlags: DWORD, + lpAccessName: LPWSTR, + lpBufferSize: LPDWORD, + lpResult: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetConnectionDialog*( + hwnd: HWND, dwType: DWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetDisconnectDialog*( + hwnd: HWND, dwType: DWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetRestoreSingleConnectionW*( + hwndParent: HWND, lpDevice: LPCWSTR, fUseUI: BOOL +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetConnectionDialog1A*( + lpConnDlgStruct: LPCONNECTDLGSTRUCTA +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetConnectionDialog1W*( + lpConnDlgStruct: LPCONNECTDLGSTRUCTW +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetDisconnectDialog1A*( + lpConnDlgStruct: LPDISCDLGSTRUCTA +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetDisconnectDialog1W*( + lpConnDlgStruct: LPDISCDLGSTRUCTW +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetOpenEnumA*( + dwScope: DWORD, + dwType: DWORD, + dwUsage: DWORD, + lpNetResource: LPNETRESOURCEA, + lphEnum: LPHANDLE, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetOpenEnumW*( + dwScope: DWORD, + dwType: DWORD, + dwUsage: DWORD, + lpNetResource: LPNETRESOURCEW, + lphEnum: LPHANDLE, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetEnumResourceA*( + hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetEnumResourceW*( + hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + proc WNetCloseEnum*(hEnum: HANDLE): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetResourceParentA*(lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetResourceParentW*(lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetResourceInformationA*(lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD, lplpSystem: ptr LPSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetResourceInformationW*(lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD, lplpSystem: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetUniversalNameA*(lpLocalPath: LPCSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetUniversalNameW*(lpLocalPath: LPCWSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetUserA*(lpName: LPCSTR, lpUserName: LPSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetUserW*(lpName: LPCWSTR, lpUserName: LPWSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetProviderNameA*(dwNetType: DWORD, lpProviderName: LPSTR, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetProviderNameW*(dwNetType: DWORD, lpProviderName: LPWSTR, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetNetworkInformationA*(lpProvider: LPCSTR, lpNetInfoStruct: LPNETINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetNetworkInformationW*(lpProvider: LPCWSTR, lpNetInfoStruct: LPNETINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetLastErrorA*(lpError: LPDWORD, lpErrorBuf: LPSTR, nErrorBufSize: DWORD, lpNameBuf: LPSTR, nNameBufSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc WNetGetLastErrorW*(lpError: LPDWORD, lpErrorBuf: LPWSTR, nErrorBufSize: DWORD, lpNameBuf: LPWSTR, nNameBufSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc MultinetGetConnectionPerformanceA*(lpNetResource: LPNETRESOURCEA, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} -proc MultinetGetConnectionPerformanceW*(lpNetResource: LPNETRESOURCEW, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} +proc WNetGetResourceParentA*( + lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetResourceParentW*( + lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetResourceInformationA*( + lpNetResource: LPNETRESOURCEA, + lpBuffer: LPVOID, + lpcbBuffer: LPDWORD, + lplpSystem: ptr LPSTR, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetResourceInformationW*( + lpNetResource: LPNETRESOURCEW, + lpBuffer: LPVOID, + lpcbBuffer: LPDWORD, + lplpSystem: ptr LPWSTR, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetUniversalNameA*( + lpLocalPath: LPCSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetUniversalNameW*( + lpLocalPath: LPCWSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetUserA*( + lpName: LPCSTR, lpUserName: LPSTR, lpnLength: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetUserW*( + lpName: LPCWSTR, lpUserName: LPWSTR, lpnLength: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetProviderNameA*( + dwNetType: DWORD, lpProviderName: LPSTR, lpBufferSize: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetProviderNameW*( + dwNetType: DWORD, lpProviderName: LPWSTR, lpBufferSize: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetNetworkInformationA*( + lpProvider: LPCSTR, lpNetInfoStruct: LPNETINFOSTRUCT +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetNetworkInformationW*( + lpProvider: LPCWSTR, lpNetInfoStruct: LPNETINFOSTRUCT +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetLastErrorA*( + lpError: LPDWORD, + lpErrorBuf: LPSTR, + nErrorBufSize: DWORD, + lpNameBuf: LPSTR, + nNameBufSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc WNetGetLastErrorW*( + lpError: LPDWORD, + lpErrorBuf: LPWSTR, + nErrorBufSize: DWORD, + lpNameBuf: LPWSTR, + nNameBufSize: DWORD, +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc MultinetGetConnectionPerformanceA*( + lpNetResource: LPNETRESOURCEA, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + +proc MultinetGetConnectionPerformanceW*( + lpNetResource: LPNETRESOURCEW, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT +): DWORD {.winapi, stdcall, dynlib: "mpr", importc.} + when winimUnicode: type NETRESOURCE* = NETRESOURCEW @@ -336,25 +538,110 @@ PFNGETPROFILEPATH* = PFNGETPROFILEPATHW PFNRECONCILEPROFILE* = PFNRECONCILEPROFILEW PFNPROCESSPOLICIES* = PFNPROCESSPOLICIESW - proc WNetAddConnection*(lpRemoteName: LPCWSTR, lpPassword: LPCWSTR, lpLocalName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnectionW".} - proc WNetAddConnection2*(lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserName: LPCWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection2W".} - proc WNetAddConnection3*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserName: LPCWSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection3W".} - proc WNetCancelConnection*(lpName: LPCWSTR, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnectionW".} - proc WNetCancelConnection2*(lpName: LPCWSTR, dwFlags: DWORD, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnection2W".} - proc WNetGetConnection*(lpLocalName: LPCWSTR, lpRemoteName: LPWSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetConnectionW".} - proc WNetUseConnection*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserID: LPCWSTR, dwFlags: DWORD, lpAccessName: LPWSTR, lpBufferSize: LPDWORD, lpResult: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetUseConnectionW".} - proc WNetConnectionDialog1*(lpConnDlgStruct: LPCONNECTDLGSTRUCTW): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetConnectionDialog1W".} - proc WNetDisconnectDialog1*(lpConnDlgStruct: LPDISCDLGSTRUCTW): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetDisconnectDialog1W".} - proc WNetOpenEnum*(dwScope: DWORD, dwType: DWORD, dwUsage: DWORD, lpNetResource: LPNETRESOURCEW, lphEnum: LPHANDLE): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetOpenEnumW".} - proc WNetEnumResource*(hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetEnumResourceW".} - proc WNetGetResourceParent*(lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceParentW".} - proc WNetGetResourceInformation*(lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD, lplpSystem: ptr LPWSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceInformationW".} - proc WNetGetUniversalName*(lpLocalPath: LPCWSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUniversalNameW".} - proc WNetGetUser*(lpName: LPCWSTR, lpUserName: LPWSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUserW".} - proc WNetGetProviderName*(dwNetType: DWORD, lpProviderName: LPWSTR, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetProviderNameW".} - proc WNetGetNetworkInformation*(lpProvider: LPCWSTR, lpNetInfoStruct: LPNETINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetNetworkInformationW".} - proc WNetGetLastError*(lpError: LPDWORD, lpErrorBuf: LPWSTR, nErrorBufSize: DWORD, lpNameBuf: LPWSTR, nNameBufSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetLastErrorW".} - proc MultinetGetConnectionPerformance*(lpNetResource: LPNETRESOURCEW, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "MultinetGetConnectionPerformanceW".} + + proc WNetAddConnection*( + lpRemoteName: LPCWSTR, lpPassword: LPCWSTR, lpLocalName: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnectionW".} + + proc WNetAddConnection2*( + lpNetResource: LPNETRESOURCEW, + lpPassword: LPCWSTR, + lpUserName: LPCWSTR, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection2W".} + + proc WNetAddConnection3*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEW, + lpPassword: LPCWSTR, + lpUserName: LPCWSTR, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection3W".} + + proc WNetCancelConnection*( + lpName: LPCWSTR, fForce: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnectionW".} + + proc WNetCancelConnection2*( + lpName: LPCWSTR, dwFlags: DWORD, fForce: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnection2W".} + + proc WNetGetConnection*( + lpLocalName: LPCWSTR, lpRemoteName: LPWSTR, lpnLength: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetConnectionW".} + + proc WNetUseConnection*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEW, + lpPassword: LPCWSTR, + lpUserID: LPCWSTR, + dwFlags: DWORD, + lpAccessName: LPWSTR, + lpBufferSize: LPDWORD, + lpResult: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetUseConnectionW".} + + proc WNetConnectionDialog1*( + lpConnDlgStruct: LPCONNECTDLGSTRUCTW + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetConnectionDialog1W".} + + proc WNetDisconnectDialog1*( + lpConnDlgStruct: LPDISCDLGSTRUCTW + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetDisconnectDialog1W".} + + proc WNetOpenEnum*( + dwScope: DWORD, + dwType: DWORD, + dwUsage: DWORD, + lpNetResource: LPNETRESOURCEW, + lphEnum: LPHANDLE, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetOpenEnumW".} + + proc WNetEnumResource*( + hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetEnumResourceW".} + + proc WNetGetResourceParent*( + lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceParentW".} + + proc WNetGetResourceInformation*( + lpNetResource: LPNETRESOURCEW, + lpBuffer: LPVOID, + lpcbBuffer: LPDWORD, + lplpSystem: ptr LPWSTR, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceInformationW".} + + proc WNetGetUniversalName*( + lpLocalPath: LPCWSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUniversalNameW".} + + proc WNetGetUser*( + lpName: LPCWSTR, lpUserName: LPWSTR, lpnLength: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUserW".} + + proc WNetGetProviderName*( + dwNetType: DWORD, lpProviderName: LPWSTR, lpBufferSize: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetProviderNameW".} + + proc WNetGetNetworkInformation*( + lpProvider: LPCWSTR, lpNetInfoStruct: LPNETINFOSTRUCT + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetNetworkInformationW".} + + proc WNetGetLastError*( + lpError: LPDWORD, + lpErrorBuf: LPWSTR, + nErrorBufSize: DWORD, + lpNameBuf: LPWSTR, + nNameBufSize: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetLastErrorW".} + + proc MultinetGetConnectionPerformance*( + lpNetResource: LPNETRESOURCEW, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT + ): DWORD {. + winapi, stdcall, dynlib: "mpr", importc: "MultinetGetConnectionPerformanceW" + .} + when winimAnsi: type NETRESOURCE* = NETRESOURCEA @@ -370,22 +657,106 @@ PFNGETPROFILEPATH* = PFNGETPROFILEPATHA PFNRECONCILEPROFILE* = PFNRECONCILEPROFILEA PFNPROCESSPOLICIES* = PFNPROCESSPOLICIESA - proc WNetAddConnection*(lpRemoteName: LPCSTR, lpPassword: LPCSTR, lpLocalName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnectionA".} - proc WNetAddConnection2*(lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection2A".} - proc WNetAddConnection3*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection3A".} - proc WNetCancelConnection*(lpName: LPCSTR, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnectionA".} - proc WNetCancelConnection2*(lpName: LPCSTR, dwFlags: DWORD, fForce: WINBOOL): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnection2A".} - proc WNetGetConnection*(lpLocalName: LPCSTR, lpRemoteName: LPSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetConnectionA".} - proc WNetUseConnection*(hwndOwner: HWND, lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserID: LPCSTR, dwFlags: DWORD, lpAccessName: LPSTR, lpBufferSize: LPDWORD, lpResult: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetUseConnectionA".} - proc WNetConnectionDialog1*(lpConnDlgStruct: LPCONNECTDLGSTRUCTA): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetConnectionDialog1A".} - proc WNetDisconnectDialog1*(lpConnDlgStruct: LPDISCDLGSTRUCTA): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetDisconnectDialog1A".} - proc WNetOpenEnum*(dwScope: DWORD, dwType: DWORD, dwUsage: DWORD, lpNetResource: LPNETRESOURCEA, lphEnum: LPHANDLE): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetOpenEnumA".} - proc WNetEnumResource*(hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetEnumResourceA".} - proc WNetGetResourceParent*(lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceParentA".} - proc WNetGetResourceInformation*(lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD, lplpSystem: ptr LPSTR): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceInformationA".} - proc WNetGetUniversalName*(lpLocalPath: LPCSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUniversalNameA".} - proc WNetGetUser*(lpName: LPCSTR, lpUserName: LPSTR, lpnLength: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUserA".} - proc WNetGetProviderName*(dwNetType: DWORD, lpProviderName: LPSTR, lpBufferSize: LPDWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetProviderNameA".} - proc WNetGetNetworkInformation*(lpProvider: LPCSTR, lpNetInfoStruct: LPNETINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetNetworkInformationA".} - proc WNetGetLastError*(lpError: LPDWORD, lpErrorBuf: LPSTR, nErrorBufSize: DWORD, lpNameBuf: LPSTR, nNameBufSize: DWORD): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetLastErrorA".} - proc MultinetGetConnectionPerformance*(lpNetResource: LPNETRESOURCEA, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "MultinetGetConnectionPerformanceA".} + + proc WNetAddConnection*( + lpRemoteName: LPCSTR, lpPassword: LPCSTR, lpLocalName: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnectionA".} + + proc WNetAddConnection2*( + lpNetResource: LPNETRESOURCEA, + lpPassword: LPCSTR, + lpUserName: LPCSTR, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection2A".} + + proc WNetAddConnection3*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEA, + lpPassword: LPCSTR, + lpUserName: LPCSTR, + dwFlags: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetAddConnection3A".} + + proc WNetCancelConnection*( + lpName: LPCSTR, fForce: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnectionA".} + + proc WNetCancelConnection2*( + lpName: LPCSTR, dwFlags: DWORD, fForce: WINBOOL + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetCancelConnection2A".} + + proc WNetGetConnection*( + lpLocalName: LPCSTR, lpRemoteName: LPSTR, lpnLength: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetConnectionA".} + + proc WNetUseConnection*( + hwndOwner: HWND, + lpNetResource: LPNETRESOURCEA, + lpPassword: LPCSTR, + lpUserID: LPCSTR, + dwFlags: DWORD, + lpAccessName: LPSTR, + lpBufferSize: LPDWORD, + lpResult: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetUseConnectionA".} + + proc WNetConnectionDialog1*( + lpConnDlgStruct: LPCONNECTDLGSTRUCTA + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetConnectionDialog1A".} + + proc WNetDisconnectDialog1*( + lpConnDlgStruct: LPDISCDLGSTRUCTA + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetDisconnectDialog1A".} + + proc WNetOpenEnum*( + dwScope: DWORD, + dwType: DWORD, + dwUsage: DWORD, + lpNetResource: LPNETRESOURCEA, + lphEnum: LPHANDLE, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetOpenEnumA".} + + proc WNetEnumResource*( + hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetEnumResourceA".} + + proc WNetGetResourceParent*( + lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceParentA".} + + proc WNetGetResourceInformation*( + lpNetResource: LPNETRESOURCEA, + lpBuffer: LPVOID, + lpcbBuffer: LPDWORD, + lplpSystem: ptr LPSTR, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetResourceInformationA".} + + proc WNetGetUniversalName*( + lpLocalPath: LPCSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUniversalNameA".} + + proc WNetGetUser*( + lpName: LPCSTR, lpUserName: LPSTR, lpnLength: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetUserA".} + + proc WNetGetProviderName*( + dwNetType: DWORD, lpProviderName: LPSTR, lpBufferSize: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetProviderNameA".} + + proc WNetGetNetworkInformation*( + lpProvider: LPCSTR, lpNetInfoStruct: LPNETINFOSTRUCT + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetNetworkInformationA".} + + proc WNetGetLastError*( + lpError: LPDWORD, + lpErrorBuf: LPSTR, + nErrorBufSize: DWORD, + lpNameBuf: LPSTR, + nNameBufSize: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "mpr", importc: "WNetGetLastErrorA".} + + proc MultinetGetConnectionPerformance*( + lpNetResource: LPNETRESOURCEA, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT + ): DWORD {. + winapi, stdcall, dynlib: "mpr", importc: "MultinetGetConnectionPerformanceA" + .} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winnls.nim --- a/semicongine/thirdparty/winim/winim/inc/winnls.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winnls.nim Thu Aug 22 18:32:21 2024 +0700 @@ -23,6 +23,7 @@ GEOID* = LONG GEOTYPE* = DWORD GEOCLASS* = DWORD + const MAX_DEFAULTCHAR* = 2 MAX_LEADBYTES* = 12 @@ -31,6 +32,7 @@ MaxCharSize*: UINT DefaultChar*: array[MAX_DEFAULTCHAR, BYTE] LeadByte*: array[MAX_LEADBYTES, BYTE] + LPCPINFO* = ptr CPINFO CPINFOEXA* {.pure.} = object MaxCharSize*: UINT @@ -39,6 +41,7 @@ UnicodeDefaultChar*: WCHAR CodePage*: UINT CodePageName*: array[MAX_PATH, CHAR] + LPCPINFOEXA* = ptr CPINFOEXA CPINFOEXW* {.pure.} = object MaxCharSize*: UINT @@ -47,6 +50,7 @@ UnicodeDefaultChar*: WCHAR CodePage*: UINT CodePageName*: array[MAX_PATH, WCHAR] + LPCPINFOEXW* = ptr CPINFOEXW NUMBERFMTA* {.pure.} = object NumDigits*: UINT @@ -55,6 +59,7 @@ lpDecimalSep*: LPSTR lpThousandSep*: LPSTR NegativeOrder*: UINT + LPNUMBERFMTA* = ptr NUMBERFMTA NUMBERFMTW* {.pure.} = object NumDigits*: UINT @@ -63,6 +68,7 @@ lpDecimalSep*: LPWSTR lpThousandSep*: LPWSTR NegativeOrder*: UINT + LPNUMBERFMTW* = ptr NUMBERFMTW CURRENCYFMTA* {.pure.} = object NumDigits*: UINT @@ -73,6 +79,7 @@ NegativeOrder*: UINT PositiveOrder*: UINT lpCurrencySymbol*: LPSTR + LPCURRENCYFMTA* = ptr CURRENCYFMTA CURRENCYFMTW* {.pure.} = object NumDigits*: UINT @@ -83,6 +90,7 @@ NegativeOrder*: UINT PositiveOrder*: UINT lpCurrencySymbol*: LPWSTR + LPCURRENCYFMTW* = ptr CURRENCYFMTW NLSVERSIONINFO* {.pure.} = object dwNLSVersionInfoSize*: DWORD @@ -90,6 +98,7 @@ dwDefinedVersion*: DWORD dwEffectiveId*: DWORD guidCustomVersion*: GUID + LPNLSVERSIONINFO* = ptr NLSVERSIONINFO NLSVERSIONINFOEX* {.pure.} = object dwNLSVersionInfoSize*: DWORD @@ -97,6 +106,7 @@ dwDefinedVersion*: DWORD dwEffectiveId*: DWORD guidCustomVersion*: GUID + LPNLSVERSIONINFOEX* = ptr NLSVERSIONINFOEX FILEMUIINFO* {.pure.} = object dwSize*: DWORD @@ -112,7 +122,9 @@ dwTypeIDMUIOffset*: DWORD dwTypeNameMUIOffset*: DWORD abBuffer*: array[8, BYTE] + PFILEMUIINFO* = ptr FILEMUIINFO + const HIGH_SURROGATE_START* = 0xd800 HIGH_SURROGATE_END* = 0xdbff @@ -661,159 +673,783 @@ LOCALE_NAME_INVARIANT* = "" LOCALE_NAME_SYSTEM_DEFAULT* = "!x-sys-default-locale" type - LANGUAGEGROUP_ENUMPROCA* = proc (P1: LGRPID, P2: LPSTR, P3: LPSTR, P4: DWORD, P5: LONG_PTR): WINBOOL {.stdcall.} - LANGGROUPLOCALE_ENUMPROCA* = proc (P1: LGRPID, P2: LCID, P3: LPSTR, P4: LONG_PTR): WINBOOL {.stdcall.} - UILANGUAGE_ENUMPROCA* = proc (P1: LPSTR, P2: LONG_PTR): WINBOOL {.stdcall.} - CODEPAGE_ENUMPROCA* = proc (P1: LPSTR): WINBOOL {.stdcall.} - DATEFMT_ENUMPROCA* = proc (P1: LPSTR): WINBOOL {.stdcall.} - DATEFMT_ENUMPROCEXA* = proc (P1: LPSTR, P2: CALID): WINBOOL {.stdcall.} - TIMEFMT_ENUMPROCA* = proc (P1: LPSTR): WINBOOL {.stdcall.} - CALINFO_ENUMPROCA* = proc (P1: LPSTR): WINBOOL {.stdcall.} - CALINFO_ENUMPROCEXA* = proc (P1: LPSTR, P2: CALID): WINBOOL {.stdcall.} - LOCALE_ENUMPROCA* = proc (P1: LPSTR): WINBOOL {.stdcall.} - LOCALE_ENUMPROCW* = proc (P1: LPWSTR): WINBOOL {.stdcall.} - LANGUAGEGROUP_ENUMPROCW* = proc (P1: LGRPID, P2: LPWSTR, P3: LPWSTR, P4: DWORD, P5: LONG_PTR): WINBOOL {.stdcall.} - LANGGROUPLOCALE_ENUMPROCW* = proc (P1: LGRPID, P2: LCID, P3: LPWSTR, P4: LONG_PTR): WINBOOL {.stdcall.} - UILANGUAGE_ENUMPROCW* = proc (P1: LPWSTR, P2: LONG_PTR): WINBOOL {.stdcall.} - CODEPAGE_ENUMPROCW* = proc (P1: LPWSTR): WINBOOL {.stdcall.} - DATEFMT_ENUMPROCW* = proc (P1: LPWSTR): WINBOOL {.stdcall.} - DATEFMT_ENUMPROCEXW* = proc (P1: LPWSTR, P2: CALID): WINBOOL {.stdcall.} - TIMEFMT_ENUMPROCW* = proc (P1: LPWSTR): WINBOOL {.stdcall.} - CALINFO_ENUMPROCW* = proc (P1: LPWSTR): WINBOOL {.stdcall.} - CALINFO_ENUMPROCEXW* = proc (P1: LPWSTR, P2: CALID): WINBOOL {.stdcall.} - GEO_ENUMPROC* = proc (P1: GEOID): WINBOOL {.stdcall.} - CALINFO_ENUMPROCEXEX* = proc (P1: LPWSTR, P2: CALID, P3: LPWSTR, P4: LPARAM): WINBOOL {.stdcall.} - DATEFMT_ENUMPROCEXEX* = proc (P1: LPWSTR, P2: CALID, P3: LPARAM): WINBOOL {.stdcall.} - TIMEFMT_ENUMPROCEX* = proc (P1: LPWSTR, P2: LPARAM): WINBOOL {.stdcall.} - LOCALE_ENUMPROCEX* = proc (P1: LPWSTR, P2: DWORD, P3: LPARAM): WINBOOL {.stdcall.} -proc GetTimeFormatEx*(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpTime: ptr SYSTEMTIME, lpFormat: LPCWSTR, lpTimeStr: LPWSTR, cchTime: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDateFormatEx*(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpDate: ptr SYSTEMTIME, lpFormat: LPCWSTR, lpDateStr: LPWSTR, cchDate: int32, lpCalendar: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDateFormatA*(Locale: LCID, dwFlags: DWORD, lpDate: ptr SYSTEMTIME, lpFormat: LPCSTR, lpDateStr: LPSTR, cchDate: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDateFormatW*(Locale: LCID, dwFlags: DWORD, lpDate: ptr SYSTEMTIME, lpFormat: LPCWSTR, lpDateStr: LPWSTR, cchDate: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTimeFormatA*(Locale: LCID, dwFlags: DWORD, lpTime: ptr SYSTEMTIME, lpFormat: LPCSTR, lpTimeStr: LPSTR, cchTime: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetTimeFormatW*(Locale: LCID, dwFlags: DWORD, lpTime: ptr SYSTEMTIME, lpFormat: LPCWSTR, lpTimeStr: LPWSTR, cchTime: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CompareStringW*(Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZWCH, cchCount1: int32, lpString2: PCNZWCH, cchCount2: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FoldStringW*(dwMapFlags: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStringTypeExW*(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpCharType: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CompareStringEx*(lpLocaleName: LPCWSTR, dwCmpFlags: DWORD, lpString1: LPCWCH, cchCount1: int32, lpString2: LPCWCH, cchCount2: int32, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CompareStringOrdinal*(lpString1: LPCWCH, cchCount1: int32, lpString2: LPCWCH, cchCount2: int32, bIgnoreCase: WINBOOL): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStringTypeW*(dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpCharType: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MultiByteToWideChar*(CodePage: UINT, dwFlags: DWORD, lpMultiByteStr: LPCCH, cbMultiByte: int32, lpWideCharStr: LPWSTR, cchWideChar: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WideCharToMultiByte*(CodePage: UINT, dwFlags: DWORD, lpWideCharStr: LPCWCH, cchWideChar: int32, lpMultiByteStr: LPSTR, cbMultiByte: int32, lpDefaultChar: LPCCH, lpUsedDefaultChar: LPBOOL): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsValidCodePage*(CodePage: UINT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + LANGUAGEGROUP_ENUMPROCA* = + proc(P1: LGRPID, P2: LPSTR, P3: LPSTR, P4: DWORD, P5: LONG_PTR): WINBOOL {.stdcall.} + LANGGROUPLOCALE_ENUMPROCA* = + proc(P1: LGRPID, P2: LCID, P3: LPSTR, P4: LONG_PTR): WINBOOL {.stdcall.} + UILANGUAGE_ENUMPROCA* = proc(P1: LPSTR, P2: LONG_PTR): WINBOOL {.stdcall.} + CODEPAGE_ENUMPROCA* = proc(P1: LPSTR): WINBOOL {.stdcall.} + DATEFMT_ENUMPROCA* = proc(P1: LPSTR): WINBOOL {.stdcall.} + DATEFMT_ENUMPROCEXA* = proc(P1: LPSTR, P2: CALID): WINBOOL {.stdcall.} + TIMEFMT_ENUMPROCA* = proc(P1: LPSTR): WINBOOL {.stdcall.} + CALINFO_ENUMPROCA* = proc(P1: LPSTR): WINBOOL {.stdcall.} + CALINFO_ENUMPROCEXA* = proc(P1: LPSTR, P2: CALID): WINBOOL {.stdcall.} + LOCALE_ENUMPROCA* = proc(P1: LPSTR): WINBOOL {.stdcall.} + LOCALE_ENUMPROCW* = proc(P1: LPWSTR): WINBOOL {.stdcall.} + LANGUAGEGROUP_ENUMPROCW* = proc( + P1: LGRPID, P2: LPWSTR, P3: LPWSTR, P4: DWORD, P5: LONG_PTR + ): WINBOOL {.stdcall.} + LANGGROUPLOCALE_ENUMPROCW* = + proc(P1: LGRPID, P2: LCID, P3: LPWSTR, P4: LONG_PTR): WINBOOL {.stdcall.} + UILANGUAGE_ENUMPROCW* = proc(P1: LPWSTR, P2: LONG_PTR): WINBOOL {.stdcall.} + CODEPAGE_ENUMPROCW* = proc(P1: LPWSTR): WINBOOL {.stdcall.} + DATEFMT_ENUMPROCW* = proc(P1: LPWSTR): WINBOOL {.stdcall.} + DATEFMT_ENUMPROCEXW* = proc(P1: LPWSTR, P2: CALID): WINBOOL {.stdcall.} + TIMEFMT_ENUMPROCW* = proc(P1: LPWSTR): WINBOOL {.stdcall.} + CALINFO_ENUMPROCW* = proc(P1: LPWSTR): WINBOOL {.stdcall.} + CALINFO_ENUMPROCEXW* = proc(P1: LPWSTR, P2: CALID): WINBOOL {.stdcall.} + GEO_ENUMPROC* = proc(P1: GEOID): WINBOOL {.stdcall.} + CALINFO_ENUMPROCEXEX* = + proc(P1: LPWSTR, P2: CALID, P3: LPWSTR, P4: LPARAM): WINBOOL {.stdcall.} + DATEFMT_ENUMPROCEXEX* = proc(P1: LPWSTR, P2: CALID, P3: LPARAM): WINBOOL {.stdcall.} + TIMEFMT_ENUMPROCEX* = proc(P1: LPWSTR, P2: LPARAM): WINBOOL {.stdcall.} + LOCALE_ENUMPROCEX* = proc(P1: LPWSTR, P2: DWORD, P3: LPARAM): WINBOOL {.stdcall.} + +proc GetTimeFormatEx*( + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lpTime: ptr SYSTEMTIME, + lpFormat: LPCWSTR, + lpTimeStr: LPWSTR, + cchTime: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDateFormatEx*( + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lpDate: ptr SYSTEMTIME, + lpFormat: LPCWSTR, + lpDateStr: LPWSTR, + cchDate: int32, + lpCalendar: LPCWSTR, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDateFormatA*( + Locale: LCID, + dwFlags: DWORD, + lpDate: ptr SYSTEMTIME, + lpFormat: LPCSTR, + lpDateStr: LPSTR, + cchDate: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDateFormatW*( + Locale: LCID, + dwFlags: DWORD, + lpDate: ptr SYSTEMTIME, + lpFormat: LPCWSTR, + lpDateStr: LPWSTR, + cchDate: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTimeFormatA*( + Locale: LCID, + dwFlags: DWORD, + lpTime: ptr SYSTEMTIME, + lpFormat: LPCSTR, + lpTimeStr: LPSTR, + cchTime: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetTimeFormatW*( + Locale: LCID, + dwFlags: DWORD, + lpTime: ptr SYSTEMTIME, + lpFormat: LPCWSTR, + lpTimeStr: LPWSTR, + cchTime: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CompareStringW*( + Locale: LCID, + dwCmpFlags: DWORD, + lpString1: PCNZWCH, + cchCount1: int32, + lpString2: PCNZWCH, + cchCount2: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FoldStringW*( + dwMapFlags: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStringTypeExW*( + Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpCharType: LPWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CompareStringEx*( + lpLocaleName: LPCWSTR, + dwCmpFlags: DWORD, + lpString1: LPCWCH, + cchCount1: int32, + lpString2: LPCWCH, + cchCount2: int32, + lpVersionInformation: LPNLSVERSIONINFO, + lpReserved: LPVOID, + lParam: LPARAM, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc CompareStringOrdinal*( + lpString1: LPCWCH, + cchCount1: int32, + lpString2: LPCWCH, + cchCount2: int32, + bIgnoreCase: WINBOOL, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStringTypeW*( + dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpCharType: LPWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc MultiByteToWideChar*( + CodePage: UINT, + dwFlags: DWORD, + lpMultiByteStr: LPCCH, + cbMultiByte: int32, + lpWideCharStr: LPWSTR, + cchWideChar: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WideCharToMultiByte*( + CodePage: UINT, + dwFlags: DWORD, + lpWideCharStr: LPCWCH, + cchWideChar: int32, + lpMultiByteStr: LPSTR, + cbMultiByte: int32, + lpDefaultChar: LPCCH, + lpUsedDefaultChar: LPBOOL, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsValidCodePage*( + CodePage: UINT +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetACP*(): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetOEMCP*(): UINT {.winapi, stdcall, dynlib: "kernel32", importc.} -proc CompareStringA*(Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZCH, cchCount1: int32, lpString2: PCNZCH, cchCount2: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LCMapStringW*(Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LCMapStringA*(Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLocaleInfoW*(Locale: LCID, LCType: LCTYPE, lpLCData: LPWSTR, cchData: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLocaleInfoA*(Locale: LCID, LCType: LCTYPE, lpLCData: LPSTR, cchData: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsDBCSLeadByte*(TestChar: BYTE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsDBCSLeadByteEx*(CodePage: UINT, TestChar: BYTE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumberFormatA*(Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: ptr NUMBERFMTA, lpNumberStr: LPSTR, cchNumber: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumberFormatW*(Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ptr NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrencyFormatA*(Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: ptr CURRENCYFMTA, lpCurrencyStr: LPSTR, cchCurrency: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrencyFormatW*(Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ptr CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumCalendarInfoA*(lpCalInfoEnumProc: CALINFO_ENUMPROCA, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumCalendarInfoW*(lpCalInfoEnumProc: CALINFO_ENUMPROCW, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumCalendarInfoExA*(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumCalendarInfoExW*(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumTimeFormatsA*(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumTimeFormatsW*(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumDateFormatsA*(lpDateFmtEnumProc: DATEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumDateFormatsW*(lpDateFmtEnumProc: DATEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumDateFormatsExA*(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumDateFormatsExW*(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsValidLanguageGroup*(LanguageGroup: LGRPID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNLSVersion*(Function: NLS_FUNCTION, Locale: LCID, lpVersionInformation: LPNLSVERSIONINFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsNLSDefinedString*(Function: NLS_FUNCTION, dwFlags: DWORD, lpVersionInformation: LPNLSVERSIONINFO, lpString: LPCWSTR, cchStr: INT): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsValidLocale*(Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetLocaleInfoA*(Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetLocaleInfoW*(Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCalendarInfoA*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPSTR, cchData: int32, lpValue: LPDWORD): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCalendarInfoW*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPWSTR, cchData: int32, lpValue: LPDWORD): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCalendarInfoA*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetCalendarInfoW*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDurationFormat*(Locale: LCID, dwFlags: DWORD, lpDuration: ptr SYSTEMTIME, ullDuration: ULONGLONG, lpFormat: LPCWSTR, lpDurationStr: LPWSTR, cchDuration: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNLSString*(Locale: LCID, dwFindNLSStringFlags: DWORD, lpStringSource: LPCWSTR, cchSource: int32, lpStringValue: LPCWSTR, cchValue: int32, pcchFound: LPINT): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetGeoInfoA*(Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPSTR, cchData: int32, LangId: LANGID): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetGeoInfoW*(Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPWSTR, cchData: int32, LangId: LANGID): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemGeoID*(GeoClass: GEOCLASS, ParentGeoId: GEOID, lpGeoEnumProc: GEO_ENUMPROC): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetUserGeoID*(GeoClass: GEOCLASS): GEOID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCPInfo*(CodePage: UINT, lpCPInfo: LPCPINFO): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCPInfoExA*(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCPInfoExW*(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LCIDToLocaleName*(Locale: LCID, lpName: LPWSTR, cchName: int32, dwFlags: DWORD): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LocaleNameToLCID*(lpName: LPCWSTR, dwFlags: DWORD): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetUserGeoID*(GeoId: GEOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ConvertDefaultLocale*(Locale: LCID): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc CompareStringA*( + Locale: LCID, + dwCmpFlags: DWORD, + lpString1: PCNZCH, + cchCount1: int32, + lpString2: PCNZCH, + cchCount2: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LCMapStringW*( + Locale: LCID, + dwMapFlags: DWORD, + lpSrcStr: LPCWSTR, + cchSrc: int32, + lpDestStr: LPWSTR, + cchDest: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LCMapStringA*( + Locale: LCID, + dwMapFlags: DWORD, + lpSrcStr: LPCSTR, + cchSrc: int32, + lpDestStr: LPSTR, + cchDest: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLocaleInfoW*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPWSTR, cchData: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLocaleInfoA*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPSTR, cchData: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsDBCSLeadByte*( + TestChar: BYTE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsDBCSLeadByteEx*( + CodePage: UINT, TestChar: BYTE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumberFormatA*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCSTR, + lpFormat: ptr NUMBERFMTA, + lpNumberStr: LPSTR, + cchNumber: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumberFormatW*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCWSTR, + lpFormat: ptr NUMBERFMTW, + lpNumberStr: LPWSTR, + cchNumber: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrencyFormatA*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCSTR, + lpFormat: ptr CURRENCYFMTA, + lpCurrencyStr: LPSTR, + cchCurrency: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrencyFormatW*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCWSTR, + lpFormat: ptr CURRENCYFMTW, + lpCurrencyStr: LPWSTR, + cchCurrency: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumCalendarInfoA*( + lpCalInfoEnumProc: CALINFO_ENUMPROCA, Locale: LCID, Calendar: CALID, CalType: CALTYPE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumCalendarInfoW*( + lpCalInfoEnumProc: CALINFO_ENUMPROCW, Locale: LCID, Calendar: CALID, CalType: CALTYPE +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumCalendarInfoExA*( + lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumCalendarInfoExW*( + lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumTimeFormatsA*( + lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumTimeFormatsW*( + lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumDateFormatsA*( + lpDateFmtEnumProc: DATEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumDateFormatsW*( + lpDateFmtEnumProc: DATEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumDateFormatsExA*( + lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumDateFormatsExW*( + lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsValidLanguageGroup*( + LanguageGroup: LGRPID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNLSVersion*( + Function: NLS_FUNCTION, Locale: LCID, lpVersionInformation: LPNLSVERSIONINFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsNLSDefinedString*( + Function: NLS_FUNCTION, + dwFlags: DWORD, + lpVersionInformation: LPNLSVERSIONINFO, + lpString: LPCWSTR, + cchStr: INT, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsValidLocale*( + Locale: LCID, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetLocaleInfoA*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetLocaleInfoW*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCalendarInfoA*( + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + lpCalData: LPSTR, + cchData: int32, + lpValue: LPDWORD, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCalendarInfoW*( + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + lpCalData: LPWSTR, + cchData: int32, + lpValue: LPDWORD, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCalendarInfoA*( + Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetCalendarInfoW*( + Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDurationFormat*( + Locale: LCID, + dwFlags: DWORD, + lpDuration: ptr SYSTEMTIME, + ullDuration: ULONGLONG, + lpFormat: LPCWSTR, + lpDurationStr: LPWSTR, + cchDuration: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNLSString*( + Locale: LCID, + dwFindNLSStringFlags: DWORD, + lpStringSource: LPCWSTR, + cchSource: int32, + lpStringValue: LPCWSTR, + cchValue: int32, + pcchFound: LPINT, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetGeoInfoA*( + Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPSTR, cchData: int32, LangId: LANGID +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetGeoInfoW*( + Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPWSTR, cchData: int32, LangId: LANGID +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemGeoID*( + GeoClass: GEOCLASS, ParentGeoId: GEOID, lpGeoEnumProc: GEO_ENUMPROC +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetUserGeoID*( + GeoClass: GEOCLASS +): GEOID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCPInfo*( + CodePage: UINT, lpCPInfo: LPCPINFO +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCPInfoExA*( + CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCPInfoExW*( + CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LCIDToLocaleName*( + Locale: LCID, lpName: LPWSTR, cchName: int32, dwFlags: DWORD +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LocaleNameToLCID*( + lpName: LPCWSTR, dwFlags: DWORD +): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetUserGeoID*( + GeoId: GEOID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ConvertDefaultLocale*( + Locale: LCID +): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetThreadLocale*(): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadLocale*(Locale: LCID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemDefaultUILanguage*(): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetUserDefaultUILanguage*(): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetThreadLocale*( + Locale: LCID +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemDefaultUILanguage*(): LANGID {. + winapi, stdcall, dynlib: "kernel32", importc +.} + +proc GetUserDefaultUILanguage*(): LANGID {. + winapi, stdcall, dynlib: "kernel32", importc +.} + proc GetSystemDefaultLangID*(): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetUserDefaultLangID*(): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetSystemDefaultLCID*(): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} proc GetUserDefaultLCID*(): LCID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadUILanguage*(LangId: LANGID): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStringTypeExA*(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpCharType: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStringTypeA*(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpCharType: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FoldStringA*(dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemLocalesA*(lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemLocalesW*(lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemLanguageGroupsA*(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemLanguageGroupsW*(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumLanguageGroupLocalesA*(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumLanguageGroupLocalesW*(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumUILanguagesA*(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumUILanguagesW*(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} +proc SetThreadUILanguage*( + LangId: LANGID +): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStringTypeExA*( + Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpCharType: LPWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStringTypeA*( + Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpCharType: LPWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FoldStringA*( + dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemLocalesA*( + lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemLocalesW*( + lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemLanguageGroupsA*( + lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemLanguageGroupsW*( + lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumLanguageGroupLocalesA*( + lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, + LanguageGroup: LGRPID, + dwFlags: DWORD, + lParam: LONG_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumLanguageGroupLocalesW*( + lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, + LanguageGroup: LGRPID, + dwFlags: DWORD, + lParam: LONG_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumUILanguagesA*( + lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumUILanguagesW*( + lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + proc GetThreadUILanguage*(): LANGID {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetProcessPreferredUILanguages*(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetProcessPreferredUILanguages*(dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetUserPreferredUILanguages*(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemPreferredUILanguages*(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetThreadPreferredUILanguages*(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc SetThreadPreferredUILanguages*(dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileMUIInfo*(dwFlags: DWORD, pcwszFilePath: PCWSTR, pFileMUIInfo: PFILEMUIINFO, pcbFileMUIInfo: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetFileMUIPath*(dwFlags: DWORD, pcwszFilePath: PCWSTR, pwszLanguage: PWSTR, pcchLanguage: PULONG, pwszFileMUIPath: PWSTR, pcchFileMUIPath: PULONG, pululEnumerator: PULONGLONG): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetUILanguageInfo*(dwFlags: DWORD, pwmszLanguage: PCZZWSTR, pwszFallbackLanguages: PZZWSTR, pcchFallbackLanguages: PDWORD, pAttributes: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc NotifyUILanguageChange*(dwFlags: DWORD, pcwstrNewLanguage: PCWSTR, pcwstrPreviousLanguage: PCWSTR, dwReserved: DWORD, pdwStatusRtrn: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemCodePagesA*(lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemCodePagesW*(lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc NormalizeString*(NormForm: NORM_FORM, lpSrcString: LPCWSTR, cwSrcLength: int32, lpDstString: LPWSTR, cwDstLength: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsNormalizedString*(NormForm: NORM_FORM, lpString: LPCWSTR, cwLength: int32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IdnToAscii*(dwFlags: DWORD, lpUnicodeCharStr: LPCWSTR, cchUnicodeChar: int32, lpASCIICharStr: LPWSTR, cchASCIIChar: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IdnToNameprepUnicode*(dwFlags: DWORD, lpUnicodeCharStr: LPCWSTR, cchUnicodeChar: int32, lpNameprepCharStr: LPWSTR, cchNameprepChar: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IdnToUnicode*(dwFlags: DWORD, lpASCIICharStr: LPCWSTR, cchASCIIChar: int32, lpUnicodeCharStr: LPWSTR, cchUnicodeChar: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc VerifyScripts*(dwFlags: DWORD, lpLocaleScripts: LPCWSTR, cchLocaleScripts: int32, lpTestScripts: LPCWSTR, cchTestScripts: int32): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetStringScripts*(dwFlags: DWORD, lpString: LPCWSTR, cchString: int32, lpScripts: LPWSTR, cchScripts: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetLocaleInfoEx*(lpLocaleName: LPCWSTR, LCType: LCTYPE, lpLCData: LPWSTR, cchData: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCalendarInfoEx*(lpLocaleName: LPCWSTR, Calendar: CALID, lpReserved: LPCWSTR, CalType: CALTYPE, lpCalData: LPWSTR, cchData: int32, lpValue: LPDWORD): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetDurationFormatEx*(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpDuration: ptr SYSTEMTIME, ullDuration: ULONGLONG, lpFormat: LPCWSTR, lpDurationStr: LPWSTR, cchDuration: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNumberFormatEx*(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ptr NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetCurrencyFormatEx*(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ptr CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetUserDefaultLocaleName*(lpLocaleName: LPWSTR, cchLocaleName: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetSystemDefaultLocaleName*(lpLocaleName: LPWSTR, cchLocaleName: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc GetNLSVersionEx*(function: NLS_FUNCTION, lpLocaleName: LPCWSTR, lpVersionInformation: LPNLSVERSIONINFOEX): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc FindNLSStringEx*(lpLocaleName: LPCWSTR, dwFindNLSStringFlags: DWORD, lpStringSource: LPCWSTR, cchSource: int32, lpStringValue: LPCWSTR, cchValue: int32, pcchFound: LPINT, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, sortHandle: LPARAM): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc LCMapStringEx*(lpLocaleName: LPCWSTR, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, sortHandle: LPARAM): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsValidLocaleName*(lpLocaleName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumCalendarInfoExEx*(pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX, lpLocaleName: LPCWSTR, Calendar: CALID, lpReserved: LPCWSTR, CalType: CALTYPE, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumDateFormatsExEx*(lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX, lpLocaleName: LPCWSTR, dwFlags: DWORD, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumTimeFormatsEx*(lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX, lpLocaleName: LPCWSTR, dwFlags: DWORD, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc EnumSystemLocalesEx*(lpLocaleEnumProcEx: LOCALE_ENUMPROCEX, dwFlags: DWORD, lParam: LPARAM, lpReserved: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} -proc ResolveLocaleName*(lpNameToResolve: LPCWSTR, lpLocaleName: LPWSTR, cchLocaleName: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc IsValidNLSVersion*(function: NLS_FUNCTION, lpLocaleName: LPCWSTR, lpVersionInformation: LPNLSVERSIONINFOEX): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} -template IS_HIGH_SURROGATE*(wch: untyped): bool = (wch >= HIGH_SURROGATE_START) and (wch <= HIGH_SURROGATE_END) -template IS_LOW_SURROGATE*(wch: untyped): bool = (wch >= LOW_SURROGATE_START) and (wch <= LOW_SURROGATE_END) -template IS_SURROGATE_PAIR*(hs: untyped, ls: untyped): bool = IS_HIGH_SURROGATE(hs) and IS_LOW_SURROGATE(ls) -template FILEMUIINFO_GET_CULTURE*(pInfo: PFILEMUIINFO): LPWSTR = cast[LPWSTR](if pInfo.dwLanguageNameOffset > 0: cast[int](pInfo) + pInfo.dwLanguageNameOffset else: 0) -template FILEMUIINFO_GET_MAIN_TYPEIDS*(pInfo: PFILEMUIINFO): PDWORD = cast[PDWORD](if pInfo.dwTypeIDMainOffset > 0: cast[int](pInfo) + pInfo.dwTypeIDMainOffset else: 0) -template FILEMUIINFO_GET_MAIN_TYPEID*(pInfo: PFILEMUIINFO, iType: DWORD): DWORD = (if (iType < pInfo.dwTypeIDMainSize) and (pInfo.dwTypeIDMainOffset > 0): (cast[PDWORD](cast[int](pInfo) + pInfo.dwTypeIDMainOffset + iType * sizeof(DWORD)))[] else: 0) -template FILEMUIINFO_GET_MAIN_TYPENAMES*(pInfo: PFILEMUIINFO): LPWSTR = cast[LPWSTR](if pInfo.dwTypeNameMainOffset > 0: cast[int](pInfo) + pInfo.dwTypeNameMainOffset else: 0) -template FILEMUIINFO_GET_MUI_TYPEIDS*(pInfo: PFILEMUIINFO): PDWORD = cast[PDWORD](if pInfo.dwTypeIDMUIOffset > 0: cast[int](pInfo) + pInfo.dwTypeIDMUIOffset else: 0) -template FILEMUIINFO_GET_MUI_TYPEID*(pInfo: PFILEMUIINFO, iType): DWORD = (if (iType < pInfo.dwTypeIDMUISize) and (pInfo.dwTypeIDMUIOffset > 0): (cast[PDWORD](cast[int](pInfo) + pInfo.dwTypeIDMUIOffset + iType * sizeof(DWORD)))[] else: 0) -template FILEMUIINFO_GET_MUI_TYPENAMES*(pInfo: PFILEMUIINFO): LPWSTR = cast[LPWSTR](if pInfo.dwTypeNameMUIOffset > 0: cast[int](pInfo) + pInfo.dwTypeNameMUIOffset else: 0) +proc GetProcessPreferredUILanguages*( + dwFlags: DWORD, + pulNumLanguages: PULONG, + pwszLanguagesBuffer: PZZWSTR, + pcchLanguagesBuffer: PULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetProcessPreferredUILanguages*( + dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetUserPreferredUILanguages*( + dwFlags: DWORD, + pulNumLanguages: PULONG, + pwszLanguagesBuffer: PZZWSTR, + pcchLanguagesBuffer: PULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemPreferredUILanguages*( + dwFlags: DWORD, + pulNumLanguages: PULONG, + pwszLanguagesBuffer: PZZWSTR, + pcchLanguagesBuffer: PULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetThreadPreferredUILanguages*( + dwFlags: DWORD, + pulNumLanguages: PULONG, + pwszLanguagesBuffer: PZZWSTR, + pcchLanguagesBuffer: PULONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc SetThreadPreferredUILanguages*( + dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileMUIInfo*( + dwFlags: DWORD, + pcwszFilePath: PCWSTR, + pFileMUIInfo: PFILEMUIINFO, + pcbFileMUIInfo: ptr DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetFileMUIPath*( + dwFlags: DWORD, + pcwszFilePath: PCWSTR, + pwszLanguage: PWSTR, + pcchLanguage: PULONG, + pwszFileMUIPath: PWSTR, + pcchFileMUIPath: PULONG, + pululEnumerator: PULONGLONG, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetUILanguageInfo*( + dwFlags: DWORD, + pwmszLanguage: PCZZWSTR, + pwszFallbackLanguages: PZZWSTR, + pcchFallbackLanguages: PDWORD, + pAttributes: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc NotifyUILanguageChange*( + dwFlags: DWORD, + pcwstrNewLanguage: PCWSTR, + pcwstrPreviousLanguage: PCWSTR, + dwReserved: DWORD, + pdwStatusRtrn: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemCodePagesA*( + lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemCodePagesW*( + lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc NormalizeString*( + NormForm: NORM_FORM, + lpSrcString: LPCWSTR, + cwSrcLength: int32, + lpDstString: LPWSTR, + cwDstLength: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsNormalizedString*( + NormForm: NORM_FORM, lpString: LPCWSTR, cwLength: int32 +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IdnToAscii*( + dwFlags: DWORD, + lpUnicodeCharStr: LPCWSTR, + cchUnicodeChar: int32, + lpASCIICharStr: LPWSTR, + cchASCIIChar: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IdnToNameprepUnicode*( + dwFlags: DWORD, + lpUnicodeCharStr: LPCWSTR, + cchUnicodeChar: int32, + lpNameprepCharStr: LPWSTR, + cchNameprepChar: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IdnToUnicode*( + dwFlags: DWORD, + lpASCIICharStr: LPCWSTR, + cchASCIIChar: int32, + lpUnicodeCharStr: LPWSTR, + cchUnicodeChar: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc VerifyScripts*( + dwFlags: DWORD, + lpLocaleScripts: LPCWSTR, + cchLocaleScripts: int32, + lpTestScripts: LPCWSTR, + cchTestScripts: int32, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetStringScripts*( + dwFlags: DWORD, + lpString: LPCWSTR, + cchString: int32, + lpScripts: LPWSTR, + cchScripts: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetLocaleInfoEx*( + lpLocaleName: LPCWSTR, LCType: LCTYPE, lpLCData: LPWSTR, cchData: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCalendarInfoEx*( + lpLocaleName: LPCWSTR, + Calendar: CALID, + lpReserved: LPCWSTR, + CalType: CALTYPE, + lpCalData: LPWSTR, + cchData: int32, + lpValue: LPDWORD, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetDurationFormatEx*( + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lpDuration: ptr SYSTEMTIME, + ullDuration: ULONGLONG, + lpFormat: LPCWSTR, + lpDurationStr: LPWSTR, + cchDuration: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNumberFormatEx*( + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lpValue: LPCWSTR, + lpFormat: ptr NUMBERFMTW, + lpNumberStr: LPWSTR, + cchNumber: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetCurrencyFormatEx*( + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lpValue: LPCWSTR, + lpFormat: ptr CURRENCYFMTW, + lpCurrencyStr: LPWSTR, + cchCurrency: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetUserDefaultLocaleName*( + lpLocaleName: LPWSTR, cchLocaleName: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetSystemDefaultLocaleName*( + lpLocaleName: LPWSTR, cchLocaleName: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc GetNLSVersionEx*( + function: NLS_FUNCTION, + lpLocaleName: LPCWSTR, + lpVersionInformation: LPNLSVERSIONINFOEX, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc FindNLSStringEx*( + lpLocaleName: LPCWSTR, + dwFindNLSStringFlags: DWORD, + lpStringSource: LPCWSTR, + cchSource: int32, + lpStringValue: LPCWSTR, + cchValue: int32, + pcchFound: LPINT, + lpVersionInformation: LPNLSVERSIONINFO, + lpReserved: LPVOID, + sortHandle: LPARAM, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc LCMapStringEx*( + lpLocaleName: LPCWSTR, + dwMapFlags: DWORD, + lpSrcStr: LPCWSTR, + cchSrc: int32, + lpDestStr: LPWSTR, + cchDest: int32, + lpVersionInformation: LPNLSVERSIONINFO, + lpReserved: LPVOID, + sortHandle: LPARAM, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsValidLocaleName*( + lpLocaleName: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumCalendarInfoExEx*( + pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX, + lpLocaleName: LPCWSTR, + Calendar: CALID, + lpReserved: LPCWSTR, + CalType: CALTYPE, + lParam: LPARAM, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumDateFormatsExEx*( + lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX, + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lParam: LPARAM, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumTimeFormatsEx*( + lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX, + lpLocaleName: LPCWSTR, + dwFlags: DWORD, + lParam: LPARAM, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc EnumSystemLocalesEx*( + lpLocaleEnumProcEx: LOCALE_ENUMPROCEX, + dwFlags: DWORD, + lParam: LPARAM, + lpReserved: LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc ResolveLocaleName*( + lpNameToResolve: LPCWSTR, lpLocaleName: LPWSTR, cchLocaleName: int32 +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc IsValidNLSVersion*( + function: NLS_FUNCTION, + lpLocaleName: LPCWSTR, + lpVersionInformation: LPNLSVERSIONINFOEX, +): DWORD {.winapi, stdcall, dynlib: "kernel32", importc.} + +template IS_HIGH_SURROGATE*(wch: untyped): bool = + (wch >= HIGH_SURROGATE_START) and (wch <= HIGH_SURROGATE_END) + +template IS_LOW_SURROGATE*(wch: untyped): bool = + (wch >= LOW_SURROGATE_START) and (wch <= LOW_SURROGATE_END) + +template IS_SURROGATE_PAIR*(hs: untyped, ls: untyped): bool = + IS_HIGH_SURROGATE(hs) and IS_LOW_SURROGATE(ls) + +template FILEMUIINFO_GET_CULTURE*(pInfo: PFILEMUIINFO): LPWSTR = + cast[LPWSTR](if pInfo.dwLanguageNameOffset > 0: + cast[int](pInfo) + pInfo.dwLanguageNameOffset + else: + 0) + +template FILEMUIINFO_GET_MAIN_TYPEIDS*(pInfo: PFILEMUIINFO): PDWORD = + cast[PDWORD](if pInfo.dwTypeIDMainOffset > 0: + cast[int](pInfo) + pInfo.dwTypeIDMainOffset + else: + 0) + +template FILEMUIINFO_GET_MAIN_TYPEID*(pInfo: PFILEMUIINFO, iType: DWORD): DWORD = + ( + if (iType < pInfo.dwTypeIDMainSize) and (pInfo.dwTypeIDMainOffset > 0): ( + cast[PDWORD](cast[int](pInfo) + pInfo.dwTypeIDMainOffset + iType * sizeof(DWORD)) + )[] + else: 0 + ) + +template FILEMUIINFO_GET_MAIN_TYPENAMES*(pInfo: PFILEMUIINFO): LPWSTR = + cast[LPWSTR](if pInfo.dwTypeNameMainOffset > 0: + cast[int](pInfo) + pInfo.dwTypeNameMainOffset + else: + 0) + +template FILEMUIINFO_GET_MUI_TYPEIDS*(pInfo: PFILEMUIINFO): PDWORD = + cast[PDWORD](if pInfo.dwTypeIDMUIOffset > 0: + cast[int](pInfo) + pInfo.dwTypeIDMUIOffset + else: + 0) + +template FILEMUIINFO_GET_MUI_TYPEID*(pInfo: PFILEMUIINFO, iType): DWORD = + ( + if (iType < pInfo.dwTypeIDMUISize) and (pInfo.dwTypeIDMUIOffset > 0): + (cast[PDWORD](cast[int](pInfo) + pInfo.dwTypeIDMUIOffset + iType * sizeof(DWORD)))[] + else: 0 + ) + +template FILEMUIINFO_GET_MUI_TYPENAMES*(pInfo: PFILEMUIINFO): LPWSTR = + cast[LPWSTR](if pInfo.dwTypeNameMUIOffset > 0: + cast[int](pInfo) + pInfo.dwTypeNameMUIOffset + else: + 0) + when winimUnicode: type LANGUAGEGROUP_ENUMPROC* = LANGUAGEGROUP_ENUMPROCW @@ -832,30 +1468,155 @@ LPNUMBERFMT* = LPNUMBERFMTW CURRENCYFMT* = CURRENCYFMTW LPCURRENCYFMT* = LPCURRENCYFMTW - proc CompareString*(Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZWCH, cchCount1: int32, lpString2: PCNZWCH, cchCount2: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "CompareStringW".} - proc FoldString*(dwMapFlags: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "FoldStringW".} - proc GetStringTypeEx*(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpCharType: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetStringTypeExW".} - proc LCMapString*(Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: int32, lpDestStr: LPWSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "LCMapStringW".} - proc GetLocaleInfo*(Locale: LCID, LCType: LCTYPE, lpLCData: LPWSTR, cchData: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetLocaleInfoW".} - proc GetDateFormat*(Locale: LCID, dwFlags: DWORD, lpDate: ptr SYSTEMTIME, lpFormat: LPCWSTR, lpDateStr: LPWSTR, cchDate: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetDateFormatW".} - proc GetTimeFormat*(Locale: LCID, dwFlags: DWORD, lpTime: ptr SYSTEMTIME, lpFormat: LPCWSTR, lpTimeStr: LPWSTR, cchTime: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetTimeFormatW".} - proc SetLocaleInfo*(Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetLocaleInfoW".} - proc GetCalendarInfo*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPWSTR, cchData: int32, lpValue: LPDWORD): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCalendarInfoW".} - proc SetCalendarInfo*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCalendarInfoW".} - proc GetNumberFormat*(Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ptr NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetNumberFormatW".} - proc GetCurrencyFormat*(Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ptr CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrencyFormatW".} - proc EnumCalendarInfo*(lpCalInfoEnumProc: CALINFO_ENUMPROCW, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoW".} - proc EnumCalendarInfoEx*(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoExW".} - proc EnumTimeFormats*(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumTimeFormatsW".} - proc EnumDateFormats*(lpDateFmtEnumProc: DATEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsW".} - proc EnumDateFormatsEx*(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsExW".} - proc GetGeoInfo*(Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPWSTR, cchData: int32, LangId: LANGID): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetGeoInfoW".} - proc GetCPInfoEx*(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetCPInfoExW".} - proc EnumSystemLocales*(lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLocalesW".} - proc EnumSystemLanguageGroups*(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLanguageGroupsW".} - proc EnumLanguageGroupLocales*(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumLanguageGroupLocalesW".} - proc EnumUILanguages*(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumUILanguagesW".} - proc EnumSystemCodePages*(lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemCodePagesW".} + + proc CompareString*( + Locale: LCID, + dwCmpFlags: DWORD, + lpString1: PCNZWCH, + cchCount1: int32, + lpString2: PCNZWCH, + cchCount2: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "CompareStringW".} + + proc FoldString*( + dwMapFlags: DWORD, + lpSrcStr: LPCWCH, + cchSrc: int32, + lpDestStr: LPWSTR, + cchDest: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "FoldStringW".} + + proc GetStringTypeEx*( + Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: int32, lpCharType: LPWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetStringTypeExW".} + + proc LCMapString*( + Locale: LCID, + dwMapFlags: DWORD, + lpSrcStr: LPCWSTR, + cchSrc: int32, + lpDestStr: LPWSTR, + cchDest: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "LCMapStringW".} + + proc GetLocaleInfo*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPWSTR, cchData: int32 + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetLocaleInfoW".} + + proc GetDateFormat*( + Locale: LCID, + dwFlags: DWORD, + lpDate: ptr SYSTEMTIME, + lpFormat: LPCWSTR, + lpDateStr: LPWSTR, + cchDate: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetDateFormatW".} + + proc GetTimeFormat*( + Locale: LCID, + dwFlags: DWORD, + lpTime: ptr SYSTEMTIME, + lpFormat: LPCWSTR, + lpTimeStr: LPWSTR, + cchTime: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetTimeFormatW".} + + proc SetLocaleInfo*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetLocaleInfoW".} + + proc GetCalendarInfo*( + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + lpCalData: LPWSTR, + cchData: int32, + lpValue: LPDWORD, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCalendarInfoW".} + + proc SetCalendarInfo*( + Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCalendarInfoW".} + + proc GetNumberFormat*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCWSTR, + lpFormat: ptr NUMBERFMTW, + lpNumberStr: LPWSTR, + cchNumber: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetNumberFormatW".} + + proc GetCurrencyFormat*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCWSTR, + lpFormat: ptr CURRENCYFMTW, + lpCurrencyStr: LPWSTR, + cchCurrency: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrencyFormatW".} + + proc EnumCalendarInfo*( + lpCalInfoEnumProc: CALINFO_ENUMPROCW, + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoW".} + + proc EnumCalendarInfoEx*( + lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoExW".} + + proc EnumTimeFormats*( + lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumTimeFormatsW".} + + proc EnumDateFormats*( + lpDateFmtEnumProc: DATEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsW".} + + proc EnumDateFormatsEx*( + lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, Locale: LCID, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsExW".} + + proc GetGeoInfo*( + Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPWSTR, cchData: int32, LangId: LANGID + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetGeoInfoW".} + + proc GetCPInfoEx*( + CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetCPInfoExW".} + + proc EnumSystemLocales*( + lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLocalesW".} + + proc EnumSystemLanguageGroups*( + lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLanguageGroupsW" + .} + + proc EnumLanguageGroupLocales*( + lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, + LanguageGroup: LGRPID, + dwFlags: DWORD, + lParam: LONG_PTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "EnumLanguageGroupLocalesW" + .} + + proc EnumUILanguages*( + lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumUILanguagesW".} + + proc EnumSystemCodePages*( + lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemCodePagesW".} + when winimAnsi: type LANGUAGEGROUP_ENUMPROC* = LANGUAGEGROUP_ENUMPROCA @@ -874,27 +1635,147 @@ LPNUMBERFMT* = LPNUMBERFMTA CURRENCYFMT* = CURRENCYFMTA LPCURRENCYFMT* = LPCURRENCYFMTA - proc CompareString*(Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZCH, cchCount1: int32, lpString2: PCNZCH, cchCount2: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "CompareStringA".} - proc LCMapString*(Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "LCMapStringA".} - proc GetLocaleInfo*(Locale: LCID, LCType: LCTYPE, lpLCData: LPSTR, cchData: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetLocaleInfoA".} - proc FoldString*(dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "FoldStringA".} - proc GetStringTypeEx*(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpCharType: LPWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetStringTypeExA".} - proc GetDateFormat*(Locale: LCID, dwFlags: DWORD, lpDate: ptr SYSTEMTIME, lpFormat: LPCSTR, lpDateStr: LPSTR, cchDate: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetDateFormatA".} - proc GetTimeFormat*(Locale: LCID, dwFlags: DWORD, lpTime: ptr SYSTEMTIME, lpFormat: LPCSTR, lpTimeStr: LPSTR, cchTime: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetTimeFormatA".} - proc SetLocaleInfo*(Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetLocaleInfoA".} - proc GetCalendarInfo*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPSTR, cchData: int32, lpValue: LPDWORD): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCalendarInfoA".} - proc SetCalendarInfo*(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCalendarInfoA".} - proc GetNumberFormat*(Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: ptr NUMBERFMTA, lpNumberStr: LPSTR, cchNumber: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetNumberFormatA".} - proc GetCurrencyFormat*(Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: ptr CURRENCYFMTA, lpCurrencyStr: LPSTR, cchCurrency: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrencyFormatA".} - proc EnumCalendarInfo*(lpCalInfoEnumProc: CALINFO_ENUMPROCA, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoA".} - proc EnumCalendarInfoEx*(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, Locale: LCID, Calendar: CALID, CalType: CALTYPE): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoExA".} - proc EnumTimeFormats*(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumTimeFormatsA".} - proc EnumDateFormats*(lpDateFmtEnumProc: DATEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsA".} - proc EnumDateFormatsEx*(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, Locale: LCID, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsExA".} - proc GetGeoInfo*(Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPSTR, cchData: int32, LangId: LANGID): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetGeoInfoA".} - proc GetCPInfoEx*(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetCPInfoExA".} - proc EnumSystemLocales*(lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLocalesA".} - proc EnumSystemLanguageGroups*(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLanguageGroupsA".} - proc EnumLanguageGroupLocales*(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumLanguageGroupLocalesA".} - proc EnumUILanguages*(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumUILanguagesA".} - proc EnumSystemCodePages*(lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemCodePagesA".} + + proc CompareString*( + Locale: LCID, + dwCmpFlags: DWORD, + lpString1: PCNZCH, + cchCount1: int32, + lpString2: PCNZCH, + cchCount2: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "CompareStringA".} + + proc LCMapString*( + Locale: LCID, + dwMapFlags: DWORD, + lpSrcStr: LPCSTR, + cchSrc: int32, + lpDestStr: LPSTR, + cchDest: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "LCMapStringA".} + + proc GetLocaleInfo*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPSTR, cchData: int32 + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetLocaleInfoA".} + + proc FoldString*( + dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpDestStr: LPSTR, cchDest: int32 + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "FoldStringA".} + + proc GetStringTypeEx*( + Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: int32, lpCharType: LPWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetStringTypeExA".} + + proc GetDateFormat*( + Locale: LCID, + dwFlags: DWORD, + lpDate: ptr SYSTEMTIME, + lpFormat: LPCSTR, + lpDateStr: LPSTR, + cchDate: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetDateFormatA".} + + proc GetTimeFormat*( + Locale: LCID, + dwFlags: DWORD, + lpTime: ptr SYSTEMTIME, + lpFormat: LPCSTR, + lpTimeStr: LPSTR, + cchTime: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetTimeFormatA".} + + proc SetLocaleInfo*( + Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetLocaleInfoA".} + + proc GetCalendarInfo*( + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + lpCalData: LPSTR, + cchData: int32, + lpValue: LPDWORD, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCalendarInfoA".} + + proc SetCalendarInfo*( + Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "SetCalendarInfoA".} + + proc GetNumberFormat*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCSTR, + lpFormat: ptr NUMBERFMTA, + lpNumberStr: LPSTR, + cchNumber: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetNumberFormatA".} + + proc GetCurrencyFormat*( + Locale: LCID, + dwFlags: DWORD, + lpValue: LPCSTR, + lpFormat: ptr CURRENCYFMTA, + lpCurrencyStr: LPSTR, + cchCurrency: int32, + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetCurrencyFormatA".} + + proc EnumCalendarInfo*( + lpCalInfoEnumProc: CALINFO_ENUMPROCA, + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoA".} + + proc EnumCalendarInfoEx*( + lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, + Locale: LCID, + Calendar: CALID, + CalType: CALTYPE, + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumCalendarInfoExA".} + + proc EnumTimeFormats*( + lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumTimeFormatsA".} + + proc EnumDateFormats*( + lpDateFmtEnumProc: DATEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsA".} + + proc EnumDateFormatsEx*( + lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, Locale: LCID, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumDateFormatsExA".} + + proc GetGeoInfo*( + Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPSTR, cchData: int32, LangId: LANGID + ): int32 {.winapi, stdcall, dynlib: "kernel32", importc: "GetGeoInfoA".} + + proc GetCPInfoEx*( + CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "GetCPInfoExA".} + + proc EnumSystemLocales*( + lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLocalesA".} + + proc EnumSystemLanguageGroups*( + lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemLanguageGroupsA" + .} + + proc EnumLanguageGroupLocales*( + lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, + LanguageGroup: LGRPID, + dwFlags: DWORD, + lParam: LONG_PTR, + ): WINBOOL {. + winapi, stdcall, dynlib: "kernel32", importc: "EnumLanguageGroupLocalesA" + .} + + proc EnumUILanguages*( + lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumUILanguagesA".} + + proc EnumSystemCodePages*( + lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "kernel32", importc: "EnumSystemCodePagesA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winperf.nim --- a/semicongine/thirdparty/winim/winim/inc/winperf.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winperf.nim Thu Aug 22 18:32:21 2024 +0700 @@ -25,69 +25,70 @@ PerfTime100nSec*: LARGE_INTEGER SystemNameLength*: DWORD SystemNameOffset*: DWORD + PPERF_DATA_BLOCK* = ptr PERF_DATA_BLOCK + when winimCpu64: - type - PERF_OBJECT_TYPE* {.pure.} = object - TotalByteLength*: DWORD - DefinitionLength*: DWORD - HeaderLength*: DWORD - ObjectNameTitleIndex*: DWORD - ObjectNameTitle*: DWORD - ObjectHelpTitleIndex*: DWORD - ObjectHelpTitle*: DWORD - DetailLevel*: DWORD - NumCounters*: DWORD - DefaultCounter*: LONG - NumInstances*: LONG - CodePage*: DWORD - PerfTime*: LARGE_INTEGER - PerfFreq*: LARGE_INTEGER + type PERF_OBJECT_TYPE* {.pure.} = object + TotalByteLength*: DWORD + DefinitionLength*: DWORD + HeaderLength*: DWORD + ObjectNameTitleIndex*: DWORD + ObjectNameTitle*: DWORD + ObjectHelpTitleIndex*: DWORD + ObjectHelpTitle*: DWORD + DetailLevel*: DWORD + NumCounters*: DWORD + DefaultCounter*: LONG + NumInstances*: LONG + CodePage*: DWORD + PerfTime*: LARGE_INTEGER + PerfFreq*: LARGE_INTEGER + when winimCpu32: - type - PERF_OBJECT_TYPE* {.pure.} = object - TotalByteLength*: DWORD - DefinitionLength*: DWORD - HeaderLength*: DWORD - ObjectNameTitleIndex*: DWORD - ObjectNameTitle*: LPWSTR - ObjectHelpTitleIndex*: DWORD - ObjectHelpTitle*: LPWSTR - DetailLevel*: DWORD - NumCounters*: DWORD - DefaultCounter*: LONG - NumInstances*: LONG - CodePage*: DWORD - PerfTime*: LARGE_INTEGER - PerfFreq*: LARGE_INTEGER -type - PPERF_OBJECT_TYPE* = ptr PERF_OBJECT_TYPE + type PERF_OBJECT_TYPE* {.pure.} = object + TotalByteLength*: DWORD + DefinitionLength*: DWORD + HeaderLength*: DWORD + ObjectNameTitleIndex*: DWORD + ObjectNameTitle*: LPWSTR + ObjectHelpTitleIndex*: DWORD + ObjectHelpTitle*: LPWSTR + DetailLevel*: DWORD + NumCounters*: DWORD + DefaultCounter*: LONG + NumInstances*: LONG + CodePage*: DWORD + PerfTime*: LARGE_INTEGER + PerfFreq*: LARGE_INTEGER + +type PPERF_OBJECT_TYPE* = ptr PERF_OBJECT_TYPE when winimCpu64: - type - PERF_COUNTER_DEFINITION* {.pure.} = object - ByteLength*: DWORD - CounterNameTitleIndex*: DWORD - CounterNameTitle*: DWORD - CounterHelpTitleIndex*: DWORD - CounterHelpTitle*: DWORD - DefaultScale*: LONG - DetailLevel*: DWORD - CounterType*: DWORD - CounterSize*: DWORD - CounterOffset*: DWORD + type PERF_COUNTER_DEFINITION* {.pure.} = object + ByteLength*: DWORD + CounterNameTitleIndex*: DWORD + CounterNameTitle*: DWORD + CounterHelpTitleIndex*: DWORD + CounterHelpTitle*: DWORD + DefaultScale*: LONG + DetailLevel*: DWORD + CounterType*: DWORD + CounterSize*: DWORD + CounterOffset*: DWORD + when winimCpu32: - type - PERF_COUNTER_DEFINITION* {.pure.} = object - ByteLength*: DWORD - CounterNameTitleIndex*: DWORD - CounterNameTitle*: LPWSTR - CounterHelpTitleIndex*: DWORD - CounterHelpTitle*: LPWSTR - DefaultScale*: LONG - DetailLevel*: DWORD - CounterType*: DWORD - CounterSize*: DWORD - CounterOffset*: DWORD + type PERF_COUNTER_DEFINITION* {.pure.} = object + ByteLength*: DWORD + CounterNameTitleIndex*: DWORD + CounterNameTitle*: LPWSTR + CounterHelpTitleIndex*: DWORD + CounterHelpTitle*: LPWSTR + DefaultScale*: LONG + DetailLevel*: DWORD + CounterType*: DWORD + CounterSize*: DWORD + CounterOffset*: DWORD + type PPERF_COUNTER_DEFINITION* = ptr PERF_COUNTER_DEFINITION PERF_INSTANCE_DEFINITION* {.pure.} = object @@ -97,10 +98,13 @@ UniqueID*: LONG NameOffset*: DWORD NameLength*: DWORD + PPERF_INSTANCE_DEFINITION* = ptr PERF_INSTANCE_DEFINITION PERF_COUNTER_BLOCK* {.pure.} = object ByteLength*: DWORD + PPERF_COUNTER_BLOCK* = ptr PERF_COUNTER_BLOCK + const PERF_DATA_VERSION* = 1 PERF_DATA_REVISION* = 1 @@ -138,45 +142,111 @@ PERF_DISPLAY_PERCENT* = 0x20000000 PERF_DISPLAY_SECONDS* = 0x30000000 PERF_DISPLAY_NOSHOW* = 0x40000000 - PERF_COUNTER_COUNTER* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PER_SEC - PERF_COUNTER_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT - PERF_COUNTER_QUEUELEN_TYPE* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_LARGE_QUEUELEN_TYPE* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_100NS_QUEUELEN_TYPE* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_OBJECT_TIMER or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_BULK_COUNT* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PER_SEC - PERF_COUNTER_TEXT* = PERF_SIZE_VARIABLE_LEN or PERF_TYPE_TEXT or PERF_TEXT_UNICODE or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_RAWCOUNT* = PERF_SIZE_DWORD or PERF_TYPE_NUMBER or PERF_NUMBER_DECIMAL or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_LARGE_RAWCOUNT* = PERF_SIZE_LARGE or PERF_TYPE_NUMBER or PERF_NUMBER_DECIMAL or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_RAWCOUNT_HEX* = PERF_SIZE_DWORD or PERF_TYPE_NUMBER or PERF_NUMBER_HEX or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_LARGE_RAWCOUNT_HEX* = PERF_SIZE_LARGE or PERF_TYPE_NUMBER or PERF_NUMBER_HEX or PERF_DISPLAY_NO_SUFFIX - PERF_SAMPLE_FRACTION* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DELTA_COUNTER or PERF_DELTA_BASE or PERF_DISPLAY_PERCENT - PERF_SAMPLE_COUNTER* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_COUNTER* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_PER_SEC + PERF_COUNTER_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT + PERF_COUNTER_QUEUELEN_TYPE* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_LARGE_QUEUELEN_TYPE* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_100NS_QUEUELEN_TYPE* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_TIMER_100NS or + PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_OBJ_TIME_QUEUELEN_TYPE* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_QUEUELEN or PERF_OBJECT_TIMER or + PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_BULK_COUNT* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_PER_SEC + PERF_COUNTER_TEXT* = + PERF_SIZE_VARIABLE_LEN or PERF_TYPE_TEXT or PERF_TEXT_UNICODE or + PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_RAWCOUNT* = + PERF_SIZE_DWORD or PERF_TYPE_NUMBER or PERF_NUMBER_DECIMAL or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_LARGE_RAWCOUNT* = + PERF_SIZE_LARGE or PERF_TYPE_NUMBER or PERF_NUMBER_DECIMAL or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_RAWCOUNT_HEX* = + PERF_SIZE_DWORD or PERF_TYPE_NUMBER or PERF_NUMBER_HEX or PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_LARGE_RAWCOUNT_HEX* = + PERF_SIZE_LARGE or PERF_TYPE_NUMBER or PERF_NUMBER_HEX or PERF_DISPLAY_NO_SUFFIX + PERF_SAMPLE_FRACTION* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DELTA_COUNTER or + PERF_DELTA_BASE or PERF_DISPLAY_PERCENT + PERF_SAMPLE_COUNTER* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX PERF_COUNTER_NODATA* = PERF_SIZE_ZERO or PERF_DISPLAY_NOSHOW - PERF_COUNTER_TIMER_INV* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT - PERF_SAMPLE_BASE* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW or 0x00000001 - PERF_AVERAGE_TIMER* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_SECONDS - PERF_AVERAGE_BASE* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW or 0x00000002 - PERF_AVERAGE_BULK* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_NOSHOW - PERF_OBJ_TIME_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_OBJECT_TIMER or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT - PERF_100NSEC_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT - PERF_100NSEC_TIMER_INV* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT - PERF_COUNTER_MULTI_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_DELTA_COUNTER or PERF_TIMER_TICK or PERF_MULTI_COUNTER or PERF_DISPLAY_PERCENT - PERF_COUNTER_MULTI_TIMER_INV* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_DELTA_COUNTER or PERF_MULTI_COUNTER or PERF_TIMER_TICK or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT - PERF_COUNTER_MULTI_BASE* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_MULTI_COUNTER or PERF_DISPLAY_NOSHOW - PERF_100NSEC_MULTI_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_DELTA_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_100NS or PERF_MULTI_COUNTER or PERF_DISPLAY_PERCENT - PERF_100NSEC_MULTI_TIMER_INV* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_DELTA_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_100NS or PERF_MULTI_COUNTER or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT - PERF_RAW_FRACTION* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_PERCENT - PERF_LARGE_RAW_FRACTION* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_PERCENT - PERF_RAW_BASE* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW or 0x00000003 - PERF_LARGE_RAW_BASE* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW - PERF_ELAPSED_TIME* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_ELAPSED or PERF_OBJECT_TIMER or PERF_DISPLAY_SECONDS + PERF_COUNTER_TIMER_INV* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT + PERF_SAMPLE_BASE* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW or + 0x00000001 + PERF_AVERAGE_TIMER* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_SECONDS + PERF_AVERAGE_BASE* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW or + 0x00000002 + PERF_AVERAGE_BULK* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_NOSHOW + PERF_OBJ_TIME_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_OBJECT_TIMER or + PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT + PERF_100NSEC_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_100NS or + PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT + PERF_100NSEC_TIMER_INV* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_TIMER_100NS or + PERF_DELTA_COUNTER or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT + PERF_COUNTER_MULTI_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_DELTA_COUNTER or + PERF_TIMER_TICK or PERF_MULTI_COUNTER or PERF_DISPLAY_PERCENT + PERF_COUNTER_MULTI_TIMER_INV* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_RATE or PERF_DELTA_COUNTER or + PERF_MULTI_COUNTER or PERF_TIMER_TICK or PERF_INVERSE_COUNTER or PERF_DISPLAY_PERCENT + PERF_COUNTER_MULTI_BASE* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_MULTI_COUNTER or + PERF_DISPLAY_NOSHOW + PERF_100NSEC_MULTI_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_DELTA_COUNTER or PERF_COUNTER_RATE or + PERF_TIMER_100NS or PERF_MULTI_COUNTER or PERF_DISPLAY_PERCENT + PERF_100NSEC_MULTI_TIMER_INV* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_DELTA_COUNTER or PERF_COUNTER_RATE or + PERF_TIMER_100NS or PERF_MULTI_COUNTER or PERF_INVERSE_COUNTER or + PERF_DISPLAY_PERCENT + PERF_RAW_FRACTION* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_PERCENT + PERF_LARGE_RAW_FRACTION* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_FRACTION or PERF_DISPLAY_PERCENT + PERF_RAW_BASE* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW or + 0x00000003 + PERF_LARGE_RAW_BASE* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_BASE or PERF_DISPLAY_NOSHOW + PERF_ELAPSED_TIME* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_ELAPSED or PERF_OBJECT_TIMER or + PERF_DISPLAY_SECONDS PERF_COUNTER_HISTOGRAM_TYPE* = 0x80000000'i32 - PERF_COUNTER_DELTA* = PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_VALUE or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX - PERF_COUNTER_LARGE_DELTA* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_VALUE or PERF_DELTA_COUNTER or PERF_DISPLAY_NO_SUFFIX - PERF_PRECISION_SYSTEM_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_PRECISION or PERF_TIMER_TICK or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT - PERF_PRECISION_100NS_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_PRECISION or PERF_TIMER_100NS or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT - PERF_PRECISION_OBJECT_TIMER* = PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_PRECISION or PERF_OBJECT_TIMER or PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT + PERF_COUNTER_DELTA* = + PERF_SIZE_DWORD or PERF_TYPE_COUNTER or PERF_COUNTER_VALUE or PERF_DELTA_COUNTER or + PERF_DISPLAY_NO_SUFFIX + PERF_COUNTER_LARGE_DELTA* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_VALUE or PERF_DELTA_COUNTER or + PERF_DISPLAY_NO_SUFFIX + PERF_PRECISION_SYSTEM_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_PRECISION or PERF_TIMER_TICK or + PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT + PERF_PRECISION_100NS_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_PRECISION or PERF_TIMER_100NS or + PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT + PERF_PRECISION_OBJECT_TIMER* = + PERF_SIZE_LARGE or PERF_TYPE_COUNTER or PERF_COUNTER_PRECISION or PERF_OBJECT_TIMER or + PERF_DELTA_COUNTER or PERF_DISPLAY_PERCENT PERF_PRECISION_TIMESTAMP* = PERF_LARGE_RAW_BASE PERF_DETAIL_NOVICE* = 100 PERF_DETAIL_ADVANCED* = 200 @@ -192,7 +262,9 @@ WINPERF_LOG_DEBUG* = 2 WINPERF_LOG_VERBOSE* = 3 type - PM_OPEN_PROC* = proc (P1: LPWSTR): DWORD {.stdcall.} - PM_COLLECT_PROC* = proc (P1: LPWSTR, P2: ptr LPVOID, P3: LPDWORD, P4: LPDWORD): DWORD {.stdcall.} - PM_CLOSE_PROC* = proc (): DWORD {.stdcall.} - PM_QUERY_PROC* = proc (P1: LPDWORD, P2: ptr LPVOID, P3: LPDWORD, P4: LPDWORD): DWORD {.stdcall.} + PM_OPEN_PROC* = proc(P1: LPWSTR): DWORD {.stdcall.} + PM_COLLECT_PROC* = + proc(P1: LPWSTR, P2: ptr LPVOID, P3: LPDWORD, P4: LPDWORD): DWORD {.stdcall.} + PM_CLOSE_PROC* = proc(): DWORD {.stdcall.} + PM_QUERY_PROC* = + proc(P1: LPDWORD, P2: ptr LPVOID, P3: LPDWORD, P4: LPDWORD): DWORD {.stdcall.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winreg.nim --- a/semicongine/thirdparty/winim/winim/inc/winreg.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winreg.nim Thu Aug 22 18:32:21 2024 +0700 @@ -16,32 +16,44 @@ valuelen*: int32 value_context*: LPVOID val_buff_ptr*: LPVOID + PVALCONTEXT* = ptr val_context PVALUEA* {.pure.} = object pv_valuename*: LPSTR pv_valuelen*: int32 pv_value_context*: LPVOID pv_type*: DWORD + PPVALUEA* = ptr PVALUEA PVALUEW* {.pure.} = object pv_valuename*: LPWSTR pv_valuelen*: int32 pv_value_context*: LPVOID pv_type*: DWORD + PPVALUEW* = ptr PVALUEW - QUERYHANDLER* = proc (keycontext: LPVOID, val_list: PVALCONTEXT, num_vals: DWORD, outputbuffer: LPVOID, total_outlen: ptr DWORD, input_blen: DWORD): DWORD {.cdecl.} + QUERYHANDLER* = proc( + keycontext: LPVOID, + val_list: PVALCONTEXT, + num_vals: DWORD, + outputbuffer: LPVOID, + total_outlen: ptr DWORD, + input_blen: DWORD, + ): DWORD {.cdecl.} PQUERYHANDLER* = QUERYHANDLER VALENTA* {.pure.} = object ve_valuename*: LPSTR ve_valuelen*: DWORD ve_valueptr*: DWORD_PTR ve_type*: DWORD + PVALENTA* = ptr VALENTA VALENTW* {.pure.} = object ve_valuename*: LPWSTR ve_valuelen*: DWORD ve_valueptr*: DWORD_PTR ve_type*: DWORD + PVALENTW* = ptr VALENTW REG_PROVIDER* {.pure.} = object pi_R0_1val*: PQUERYHANDLER @@ -50,7 +62,9 @@ pi_R3_allvals*: PQUERYHANDLER pi_flags*: DWORD pi_key_context*: LPVOID + PPROVIDER* = ptr REG_PROVIDER + const RRF_RT_REG_NONE* = 0x00000001 RRF_RT_REG_SZ* = 0x00000002 @@ -142,7 +156,7 @@ REASON_UNKNOWN* = SHTDN_REASON_UNKNOWN REASON_LEGACY_API* = SHTDN_REASON_LEGACY_API REASON_PLANNED_FLAG* = SHTDN_REASON_FLAG_PLANNED - MAX_SHUTDOWN_TIMEOUT* = 10*365*24*60*60 + MAX_SHUTDOWN_TIMEOUT* = 10 * 365 * 24 * 60 * 60 SHUTDOWN_FORCE_OTHERS* = 0x00000001 SHUTDOWN_FORCE_SELF* = 0x00000002 SHUTDOWN_RESTART* = 0x00000004 @@ -162,179 +176,1097 @@ HKEY_PERFORMANCE_TEXT* = HKEY 0x80000050'i32 HKEY_USERS* = HKEY 0x80000003'i32 proc RegCloseKey*(hKey: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOverridePredefKey*(hKey: HKEY, hNewHKey: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenUserClassesRoot*(hToken: HANDLE, dwOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenCurrentUser*(samDesired: REGSAM, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} +proc RegOverridePredefKey*( + hKey: HKEY, hNewHKey: HKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenUserClassesRoot*( + hToken: HANDLE, dwOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenCurrentUser*( + samDesired: REGSAM, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + proc RegDisablePredefinedCache*(): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegConnectRegistryA*(lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegConnectRegistryW*(lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegConnectRegistryExA*(lpMachineName: LPCSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegConnectRegistryExW*(lpMachineName: LPCWSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCreateKeyA*(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCreateKeyW*(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCreateKeyExA*(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCreateKeyExW*(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyA*(hKey: HKEY, lpSubKey: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyW*(hKey: HKEY, lpSubKey: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyExA*(hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyExW*(hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDisableReflectionKey*(hBase: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnableReflectionKey*(hBase: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryReflectionKey*(hBase: HKEY, bIsReflectionDisabled: ptr WINBOOL): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteValueA*(hKey: HKEY, lpValueName: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteValueW*(hKey: HKEY, lpValueName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnumKeyA*(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnumKeyW*(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnumKeyExA*(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, lpcchName: LPDWORD, lpReserved: LPDWORD, lpClass: LPSTR, lpcchClass: LPDWORD, lpftLastWriteTime: PFILETIME): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnumKeyExW*(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, lpcchName: LPDWORD, lpReserved: LPDWORD, lpClass: LPWSTR, lpcchClass: LPDWORD, lpftLastWriteTime: PFILETIME): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnumValueA*(hKey: HKEY, dwIndex: DWORD, lpValueName: LPSTR, lpcchValueName: LPDWORD, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegEnumValueW*(hKey: HKEY, dwIndex: DWORD, lpValueName: LPWSTR, lpcchValueName: LPDWORD, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} +proc RegConnectRegistryA*( + lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegConnectRegistryW*( + lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegConnectRegistryExA*( + lpMachineName: LPCSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegConnectRegistryExW*( + lpMachineName: LPCWSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCreateKeyA*( + hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCreateKeyW*( + hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCreateKeyExA*( + hKey: HKEY, + lpSubKey: LPCSTR, + Reserved: DWORD, + lpClass: LPSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCreateKeyExW*( + hKey: HKEY, + lpSubKey: LPCWSTR, + Reserved: DWORD, + lpClass: LPWSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyA*( + hKey: HKEY, lpSubKey: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyW*( + hKey: HKEY, lpSubKey: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyExA*( + hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyExW*( + hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDisableReflectionKey*( + hBase: HKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnableReflectionKey*( + hBase: HKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryReflectionKey*( + hBase: HKEY, bIsReflectionDisabled: ptr WINBOOL +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteValueA*( + hKey: HKEY, lpValueName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteValueW*( + hKey: HKEY, lpValueName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnumKeyA*( + hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnumKeyW*( + hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnumKeyExA*( + hKey: HKEY, + dwIndex: DWORD, + lpName: LPSTR, + lpcchName: LPDWORD, + lpReserved: LPDWORD, + lpClass: LPSTR, + lpcchClass: LPDWORD, + lpftLastWriteTime: PFILETIME, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnumKeyExW*( + hKey: HKEY, + dwIndex: DWORD, + lpName: LPWSTR, + lpcchName: LPDWORD, + lpReserved: LPDWORD, + lpClass: LPWSTR, + lpcchClass: LPDWORD, + lpftLastWriteTime: PFILETIME, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnumValueA*( + hKey: HKEY, + dwIndex: DWORD, + lpValueName: LPSTR, + lpcchValueName: LPDWORD, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegEnumValueW*( + hKey: HKEY, + dwIndex: DWORD, + lpValueName: LPWSTR, + lpcchValueName: LPDWORD, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + proc RegFlushKey*(hKey: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegGetKeySecurity*(hKey: HKEY, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpcbSecurityDescriptor: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegLoadKeyA*(hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegLoadKeyW*(hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegNotifyChangeKeyValue*(hKey: HKEY, bWatchSubtree: WINBOOL, dwNotifyFilter: DWORD, hEvent: HANDLE, fAsynchronous: WINBOOL): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenKeyA*(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenKeyW*(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenKeyExA*(hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenKeyExW*(hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc 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): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryValueA*(hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryValueW*(hKey: HKEY, lpSubKey: LPCWSTR, lpData: LPWSTR, lpcbData: PLONG): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryMultipleValuesA*(hKey: HKEY, val_list: PVALENTA, num_vals: DWORD, lpValueBuf: LPSTR, ldwTotsize: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryMultipleValuesW*(hKey: HKEY, val_list: PVALENTW, num_vals: DWORD, lpValueBuf: LPWSTR, ldwTotsize: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryValueExA*(hKey: HKEY, lpValueName: LPCSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegQueryValueExW*(hKey: HKEY, lpValueName: LPCWSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegReplaceKeyA*(hKey: HKEY, lpSubKey: LPCSTR, lpNewFile: LPCSTR, lpOldFile: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegReplaceKeyW*(hKey: HKEY, lpSubKey: LPCWSTR, lpNewFile: LPCWSTR, lpOldFile: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegRestoreKeyA*(hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegRestoreKeyW*(hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSaveKeyA*(hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSaveKeyW*(hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetKeySecurity*(hKey: HKEY, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetValueA*(hKey: HKEY, lpSubKey: LPCSTR, dwType: DWORD, lpData: LPCSTR, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetValueW*(hKey: HKEY, lpSubKey: LPCWSTR, dwType: DWORD, lpData: LPCWSTR, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetValueExA*(hKey: HKEY, lpValueName: LPCSTR, Reserved: DWORD, dwType: DWORD, lpData: ptr BYTE, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetValueExW*(hKey: HKEY, lpValueName: LPCWSTR, Reserved: DWORD, dwType: DWORD, lpData: ptr BYTE, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegUnLoadKeyA*(hKey: HKEY, lpSubKey: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegUnLoadKeyW*(hKey: HKEY, lpSubKey: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegGetValueA*(hkey: HKEY, lpSubKey: LPCSTR, lpValue: LPCSTR, dwFlags: DWORD, pdwType: LPDWORD, pvData: PVOID, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegGetValueW*(hkey: HKEY, lpSubKey: LPCWSTR, lpValue: LPCWSTR, dwFlags: DWORD, pdwType: LPDWORD, pvData: PVOID, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitiateSystemShutdownA*(lpMachineName: LPSTR, lpMessage: LPSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitiateSystemShutdownW*(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AbortSystemShutdownA*(lpMachineName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc AbortSystemShutdownW*(lpMachineName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitiateSystemShutdownExA*(lpMachineName: LPSTR, lpMessage: LPSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL, dwReason: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitiateSystemShutdownExW*(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL, dwReason: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSaveKeyExA*(hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSaveKeyExW*(hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCopyTreeA*(hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCopyTreeW*(hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCreateKeyTransactedA*(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegCreateKeyTransactedW*(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyTransactedA*(hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyTransactedW*(hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyValueA*(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteKeyValueW*(hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteTreeA*(hKey: HKEY, lpSubKey: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDeleteTreeW*(hKey: HKEY, lpSubKey: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegDisablePredefinedCacheEx*(): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegLoadAppKeyA*(lpFile: LPCSTR, phkResult: PHKEY, samDesired: REGSAM, dwOptions: DWORD, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegLoadAppKeyW*(lpFile: LPCWSTR, phkResult: PHKEY, samDesired: REGSAM, dwOptions: DWORD, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegLoadMUIStringA*(hKey: HKEY, pszValue: LPCSTR, pszOutBuf: LPSTR, cbOutBuf: DWORD, pcbData: LPDWORD, Flags: DWORD, pszDirectory: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegLoadMUIStringW*(hKey: HKEY, pszValue: LPCWSTR, pszOutBuf: LPWSTR, cbOutBuf: DWORD, pcbData: LPDWORD, Flags: DWORD, pszDirectory: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenKeyTransactedA*(hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegOpenKeyTransactedW*(hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetKeyValueA*(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR, dwType: DWORD, lpData: LPCVOID, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegSetKeyValueW*(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR, dwType: DWORD, lpData: LPCVOID, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitiateShutdownA*(lpMachineName: LPSTR, lpMessage: LPSTR, dwGracePeriod: DWORD, dwShutdownFlags: DWORD, dwReason: DWORD): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc InitiateShutdownW*(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwGracePeriod: DWORD, dwShutdownFlags: DWORD, dwReason: DWORD): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} +proc RegGetKeySecurity*( + hKey: HKEY, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, + lpcbSecurityDescriptor: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegLoadKeyA*( + hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegLoadKeyW*( + hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegNotifyChangeKeyValue*( + hKey: HKEY, + bWatchSubtree: WINBOOL, + dwNotifyFilter: DWORD, + hEvent: HANDLE, + fAsynchronous: WINBOOL, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenKeyA*( + hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenKeyW*( + hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenKeyExA*( + hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenKeyExW*( + hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc 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, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryValueA*( + hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryValueW*( + hKey: HKEY, lpSubKey: LPCWSTR, lpData: LPWSTR, lpcbData: PLONG +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryMultipleValuesA*( + hKey: HKEY, + val_list: PVALENTA, + num_vals: DWORD, + lpValueBuf: LPSTR, + ldwTotsize: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryMultipleValuesW*( + hKey: HKEY, + val_list: PVALENTW, + num_vals: DWORD, + lpValueBuf: LPWSTR, + ldwTotsize: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryValueExA*( + hKey: HKEY, + lpValueName: LPCSTR, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegQueryValueExW*( + hKey: HKEY, + lpValueName: LPCWSTR, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegReplaceKeyA*( + hKey: HKEY, lpSubKey: LPCSTR, lpNewFile: LPCSTR, lpOldFile: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegReplaceKeyW*( + hKey: HKEY, lpSubKey: LPCWSTR, lpNewFile: LPCWSTR, lpOldFile: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegRestoreKeyA*( + hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegRestoreKeyW*( + hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSaveKeyA*( + hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSaveKeyW*( + hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetKeySecurity*( + hKey: HKEY, + SecurityInformation: SECURITY_INFORMATION, + pSecurityDescriptor: PSECURITY_DESCRIPTOR, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetValueA*( + hKey: HKEY, lpSubKey: LPCSTR, dwType: DWORD, lpData: LPCSTR, cbData: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetValueW*( + hKey: HKEY, lpSubKey: LPCWSTR, dwType: DWORD, lpData: LPCWSTR, cbData: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetValueExA*( + hKey: HKEY, + lpValueName: LPCSTR, + Reserved: DWORD, + dwType: DWORD, + lpData: ptr BYTE, + cbData: DWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetValueExW*( + hKey: HKEY, + lpValueName: LPCWSTR, + Reserved: DWORD, + dwType: DWORD, + lpData: ptr BYTE, + cbData: DWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegUnLoadKeyA*( + hKey: HKEY, lpSubKey: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegUnLoadKeyW*( + hKey: HKEY, lpSubKey: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegGetValueA*( + hkey: HKEY, + lpSubKey: LPCSTR, + lpValue: LPCSTR, + dwFlags: DWORD, + pdwType: LPDWORD, + pvData: PVOID, + pcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegGetValueW*( + hkey: HKEY, + lpSubKey: LPCWSTR, + lpValue: LPCWSTR, + dwFlags: DWORD, + pdwType: LPDWORD, + pvData: PVOID, + pcbData: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitiateSystemShutdownA*( + lpMachineName: LPSTR, + lpMessage: LPSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitiateSystemShutdownW*( + lpMachineName: LPWSTR, + lpMessage: LPWSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AbortSystemShutdownA*( + lpMachineName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc AbortSystemShutdownW*( + lpMachineName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitiateSystemShutdownExA*( + lpMachineName: LPSTR, + lpMessage: LPSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, + dwReason: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitiateSystemShutdownExW*( + lpMachineName: LPWSTR, + lpMessage: LPWSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, + dwReason: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSaveKeyExA*( + hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSaveKeyExW*( + hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCopyTreeA*( + hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCopyTreeW*( + hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCreateKeyTransactedA*( + hKey: HKEY, + lpSubKey: LPCSTR, + Reserved: DWORD, + lpClass: LPSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, + hTransaction: HANDLE, + pExtendedParemeter: PVOID, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegCreateKeyTransactedW*( + hKey: HKEY, + lpSubKey: LPCWSTR, + Reserved: DWORD, + lpClass: LPWSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, + hTransaction: HANDLE, + pExtendedParemeter: PVOID, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyTransactedA*( + hKey: HKEY, + lpSubKey: LPCSTR, + samDesired: REGSAM, + Reserved: DWORD, + hTransaction: HANDLE, + pExtendedParameter: PVOID, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyTransactedW*( + hKey: HKEY, + lpSubKey: LPCWSTR, + samDesired: REGSAM, + Reserved: DWORD, + hTransaction: HANDLE, + pExtendedParameter: PVOID, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyValueA*( + hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteKeyValueW*( + hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteTreeA*( + hKey: HKEY, lpSubKey: LPCSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDeleteTreeW*( + hKey: HKEY, lpSubKey: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegDisablePredefinedCacheEx*(): LONG {. + winapi, stdcall, dynlib: "advapi32", importc +.} + +proc RegLoadAppKeyA*( + lpFile: LPCSTR, + phkResult: PHKEY, + samDesired: REGSAM, + dwOptions: DWORD, + Reserved: DWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegLoadAppKeyW*( + lpFile: LPCWSTR, + phkResult: PHKEY, + samDesired: REGSAM, + dwOptions: DWORD, + Reserved: DWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegLoadMUIStringA*( + hKey: HKEY, + pszValue: LPCSTR, + pszOutBuf: LPSTR, + cbOutBuf: DWORD, + pcbData: LPDWORD, + Flags: DWORD, + pszDirectory: LPCSTR, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegLoadMUIStringW*( + hKey: HKEY, + pszValue: LPCWSTR, + pszOutBuf: LPWSTR, + cbOutBuf: DWORD, + pcbData: LPDWORD, + Flags: DWORD, + pszDirectory: LPCWSTR, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenKeyTransactedA*( + hKey: HKEY, + lpSubKey: LPCSTR, + ulOptions: DWORD, + samDesired: REGSAM, + phkResult: PHKEY, + hTransaction: HANDLE, + pExtendedParameter: PVOID, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegOpenKeyTransactedW*( + hKey: HKEY, + lpSubKey: LPCWSTR, + ulOptions: DWORD, + samDesired: REGSAM, + phkResult: PHKEY, + hTransaction: HANDLE, + pExtendedParameter: PVOID, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetKeyValueA*( + hKey: HKEY, + lpSubKey: LPCSTR, + lpValueName: LPCSTR, + dwType: DWORD, + lpData: LPCVOID, + cbData: DWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegSetKeyValueW*( + hKey: HKEY, + lpSubKey: LPCSTR, + lpValueName: LPCSTR, + dwType: DWORD, + lpData: LPCVOID, + cbData: DWORD, +): LONG {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitiateShutdownA*( + lpMachineName: LPSTR, + lpMessage: LPSTR, + dwGracePeriod: DWORD, + dwShutdownFlags: DWORD, + dwReason: DWORD, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc InitiateShutdownW*( + lpMachineName: LPWSTR, + lpMessage: LPWSTR, + dwGracePeriod: DWORD, + dwShutdownFlags: DWORD, + dwReason: DWORD, +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + when winimUnicode: type PVALUE* = PVALUEW PPVALUE* = PPVALUEW VALENT* = VALENTW PVALENT* = PVALENTW - proc RegConnectRegistry*(lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryW".} - proc RegConnectRegistryEx*(lpMachineName: LPCWSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryExW".} - proc RegCreateKey*(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyW".} - proc RegCreateKeyEx*(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyExW".} - proc RegDeleteKey*(hKey: HKEY, lpSubKey: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyW".} - proc RegDeleteKeyEx*(hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyExW".} - proc RegDeleteValue*(hKey: HKEY, lpValueName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteValueW".} - proc RegEnumKey*(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyW".} - proc RegEnumKeyEx*(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, lpcchName: LPDWORD, lpReserved: LPDWORD, lpClass: LPWSTR, lpcchClass: LPDWORD, lpftLastWriteTime: PFILETIME): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyExW".} - proc RegEnumValue*(hKey: HKEY, dwIndex: DWORD, lpValueName: LPWSTR, lpcchValueName: LPDWORD, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumValueW".} - proc RegLoadKey*(hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadKeyW".} - proc RegOpenKey*(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyW".} - proc RegOpenKeyEx*(hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyExW".} - proc RegQueryInfoKey*(hKey: HKEY, lpClass: LPWSTR, lpcchClass: LPDWORD, lpReserved: LPDWORD, lpcSubKeys: LPDWORD, lpcbMaxSubKeyLen: LPDWORD, lpcbMaxClassLen: LPDWORD, lpcValues: LPDWORD, lpcbMaxValueNameLen: LPDWORD, lpcbMaxValueLen: LPDWORD, lpcbSecurityDescriptor: LPDWORD, lpftLastWriteTime: PFILETIME): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryInfoKeyW".} - proc RegQueryValue*(hKey: HKEY, lpSubKey: LPCWSTR, lpData: LPWSTR, lpcbData: PLONG): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueW".} - proc RegQueryMultipleValues*(hKey: HKEY, val_list: PVALENTW, num_vals: DWORD, lpValueBuf: LPWSTR, ldwTotsize: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryMultipleValuesW".} - proc RegQueryValueEx*(hKey: HKEY, lpValueName: LPCWSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueExW".} - proc RegReplaceKey*(hKey: HKEY, lpSubKey: LPCWSTR, lpNewFile: LPCWSTR, lpOldFile: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegReplaceKeyW".} - proc RegRestoreKey*(hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegRestoreKeyW".} - proc RegSaveKey*(hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyW".} - proc RegSetValue*(hKey: HKEY, lpSubKey: LPCWSTR, dwType: DWORD, lpData: LPCWSTR, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueW".} - proc RegSetValueEx*(hKey: HKEY, lpValueName: LPCWSTR, Reserved: DWORD, dwType: DWORD, lpData: ptr BYTE, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueExW".} - proc RegUnLoadKey*(hKey: HKEY, lpSubKey: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegUnLoadKeyW".} - proc RegGetValue*(hkey: HKEY, lpSubKey: LPCWSTR, lpValue: LPCWSTR, dwFlags: DWORD, pdwType: LPDWORD, pvData: PVOID, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegGetValueW".} - proc InitiateSystemShutdown*(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownW".} - proc AbortSystemShutdown*(lpMachineName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AbortSystemShutdownW".} - proc InitiateSystemShutdownEx*(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL, dwReason: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownExW".} - proc RegSaveKeyEx*(hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyExW".} - proc RegCopyTree*(hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCopyTreeW".} - proc RegCreateKeyTransacted*(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyTransactedW".} - proc RegDeleteKeyTransacted*(hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyTransactedW".} - proc RegDeleteKeyValue*(hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyValueW".} - proc RegDeleteTree*(hKey: HKEY, lpSubKey: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteTreeW".} - proc RegLoadAppKey*(lpFile: LPCWSTR, phkResult: PHKEY, samDesired: REGSAM, dwOptions: DWORD, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadAppKeyW".} - proc RegLoadMUIString*(hKey: HKEY, pszValue: LPCWSTR, pszOutBuf: LPWSTR, cbOutBuf: DWORD, pcbData: LPDWORD, Flags: DWORD, pszDirectory: LPCWSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadMUIStringW".} - proc RegOpenKeyTransacted*(hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyTransactedW".} - proc RegSetKeyValue*(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR, dwType: DWORD, lpData: LPCVOID, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetKeyValueW".} - proc InitiateShutdown*(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwGracePeriod: DWORD, dwShutdownFlags: DWORD, dwReason: DWORD): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateShutdownW".} + + proc RegConnectRegistry*( + lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryW".} + + proc RegConnectRegistryEx*( + lpMachineName: LPCWSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryExW".} + + proc RegCreateKey*( + hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyW".} + + proc RegCreateKeyEx*( + hKey: HKEY, + lpSubKey: LPCWSTR, + Reserved: DWORD, + lpClass: LPWSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyExW".} + + proc RegDeleteKey*( + hKey: HKEY, lpSubKey: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyW".} + + proc RegDeleteKeyEx*( + hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyExW".} + + proc RegDeleteValue*( + hKey: HKEY, lpValueName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteValueW".} + + proc RegEnumKey*( + hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyW".} + + proc RegEnumKeyEx*( + hKey: HKEY, + dwIndex: DWORD, + lpName: LPWSTR, + lpcchName: LPDWORD, + lpReserved: LPDWORD, + lpClass: LPWSTR, + lpcchClass: LPDWORD, + lpftLastWriteTime: PFILETIME, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyExW".} + + proc RegEnumValue*( + hKey: HKEY, + dwIndex: DWORD, + lpValueName: LPWSTR, + lpcchValueName: LPDWORD, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumValueW".} + + proc RegLoadKey*( + hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadKeyW".} + + proc RegOpenKey*( + hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyW".} + + proc RegOpenKeyEx*( + hKey: HKEY, + lpSubKey: LPCWSTR, + ulOptions: DWORD, + samDesired: REGSAM, + phkResult: PHKEY, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyExW".} + + proc RegQueryInfoKey*( + hKey: HKEY, + lpClass: LPWSTR, + lpcchClass: LPDWORD, + lpReserved: LPDWORD, + lpcSubKeys: LPDWORD, + lpcbMaxSubKeyLen: LPDWORD, + lpcbMaxClassLen: LPDWORD, + lpcValues: LPDWORD, + lpcbMaxValueNameLen: LPDWORD, + lpcbMaxValueLen: LPDWORD, + lpcbSecurityDescriptor: LPDWORD, + lpftLastWriteTime: PFILETIME, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryInfoKeyW".} + + proc RegQueryValue*( + hKey: HKEY, lpSubKey: LPCWSTR, lpData: LPWSTR, lpcbData: PLONG + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueW".} + + proc RegQueryMultipleValues*( + hKey: HKEY, + val_list: PVALENTW, + num_vals: DWORD, + lpValueBuf: LPWSTR, + ldwTotsize: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryMultipleValuesW".} + + proc RegQueryValueEx*( + hKey: HKEY, + lpValueName: LPCWSTR, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueExW".} + + proc RegReplaceKey*( + hKey: HKEY, lpSubKey: LPCWSTR, lpNewFile: LPCWSTR, lpOldFile: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegReplaceKeyW".} + + proc RegRestoreKey*( + hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegRestoreKeyW".} + + proc RegSaveKey*( + hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyW".} + + proc RegSetValue*( + hKey: HKEY, lpSubKey: LPCWSTR, dwType: DWORD, lpData: LPCWSTR, cbData: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueW".} + + proc RegSetValueEx*( + hKey: HKEY, + lpValueName: LPCWSTR, + Reserved: DWORD, + dwType: DWORD, + lpData: ptr BYTE, + cbData: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueExW".} + + proc RegUnLoadKey*( + hKey: HKEY, lpSubKey: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegUnLoadKeyW".} + + proc RegGetValue*( + hkey: HKEY, + lpSubKey: LPCWSTR, + lpValue: LPCWSTR, + dwFlags: DWORD, + pdwType: LPDWORD, + pvData: PVOID, + pcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegGetValueW".} + + proc InitiateSystemShutdown*( + lpMachineName: LPWSTR, + lpMessage: LPWSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownW".} + + proc AbortSystemShutdown*( + lpMachineName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AbortSystemShutdownW".} + + proc InitiateSystemShutdownEx*( + lpMachineName: LPWSTR, + lpMessage: LPWSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, + dwReason: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownExW" + .} + + proc RegSaveKeyEx*( + hKey: HKEY, + lpFile: LPCWSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + Flags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyExW".} + + proc RegCopyTree*( + hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCopyTreeW".} + + proc RegCreateKeyTransacted*( + hKey: HKEY, + lpSubKey: LPCWSTR, + Reserved: DWORD, + lpClass: LPWSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, + hTransaction: HANDLE, + pExtendedParemeter: PVOID, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyTransactedW".} + + proc RegDeleteKeyTransacted*( + hKey: HKEY, + lpSubKey: LPCWSTR, + samDesired: REGSAM, + Reserved: DWORD, + hTransaction: HANDLE, + pExtendedParameter: PVOID, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyTransactedW".} + + proc RegDeleteKeyValue*( + hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyValueW".} + + proc RegDeleteTree*( + hKey: HKEY, lpSubKey: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteTreeW".} + + proc RegLoadAppKey*( + lpFile: LPCWSTR, + phkResult: PHKEY, + samDesired: REGSAM, + dwOptions: DWORD, + Reserved: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadAppKeyW".} + + proc RegLoadMUIString*( + hKey: HKEY, + pszValue: LPCWSTR, + pszOutBuf: LPWSTR, + cbOutBuf: DWORD, + pcbData: LPDWORD, + Flags: DWORD, + pszDirectory: LPCWSTR, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadMUIStringW".} + + proc RegOpenKeyTransacted*( + hKey: HKEY, + lpSubKey: LPCWSTR, + ulOptions: DWORD, + samDesired: REGSAM, + phkResult: PHKEY, + hTransaction: HANDLE, + pExtendedParameter: PVOID, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyTransactedW".} + + proc RegSetKeyValue*( + hKey: HKEY, + lpSubKey: LPCSTR, + lpValueName: LPCSTR, + dwType: DWORD, + lpData: LPCVOID, + cbData: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetKeyValueW".} + + proc InitiateShutdown*( + lpMachineName: LPWSTR, + lpMessage: LPWSTR, + dwGracePeriod: DWORD, + dwShutdownFlags: DWORD, + dwReason: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateShutdownW".} + when winimAnsi: type PVALUE* = PVALUEA PPVALUE* = PPVALUEA VALENT* = VALENTA PVALENT* = PVALENTA - proc RegConnectRegistry*(lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryA".} - proc RegConnectRegistryEx*(lpMachineName: LPCSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryExA".} - proc RegCreateKey*(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyA".} - proc RegCreateKeyEx*(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyExA".} - proc RegDeleteKey*(hKey: HKEY, lpSubKey: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyA".} - proc RegDeleteKeyEx*(hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyExA".} - proc RegDeleteValue*(hKey: HKEY, lpValueName: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteValueA".} - proc RegEnumKey*(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyA".} - proc RegEnumKeyEx*(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, lpcchName: LPDWORD, lpReserved: LPDWORD, lpClass: LPSTR, lpcchClass: LPDWORD, lpftLastWriteTime: PFILETIME): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyExA".} - proc RegEnumValue*(hKey: HKEY, dwIndex: DWORD, lpValueName: LPSTR, lpcchValueName: LPDWORD, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumValueA".} - proc RegLoadKey*(hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadKeyA".} - proc RegOpenKey*(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyA".} - proc RegOpenKeyEx*(hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyExA".} - proc RegQueryInfoKey*(hKey: HKEY, lpClass: LPSTR, lpcchClass: LPDWORD, lpReserved: LPDWORD, lpcSubKeys: LPDWORD, lpcbMaxSubKeyLen: LPDWORD, lpcbMaxClassLen: LPDWORD, lpcValues: LPDWORD, lpcbMaxValueNameLen: LPDWORD, lpcbMaxValueLen: LPDWORD, lpcbSecurityDescriptor: LPDWORD, lpftLastWriteTime: PFILETIME): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryInfoKeyA".} - proc RegQueryValue*(hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueA".} - proc RegQueryMultipleValues*(hKey: HKEY, val_list: PVALENTA, num_vals: DWORD, lpValueBuf: LPSTR, ldwTotsize: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryMultipleValuesA".} - proc RegQueryValueEx*(hKey: HKEY, lpValueName: LPCSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueExA".} - proc RegReplaceKey*(hKey: HKEY, lpSubKey: LPCSTR, lpNewFile: LPCSTR, lpOldFile: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegReplaceKeyA".} - proc RegRestoreKey*(hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegRestoreKeyA".} - proc RegSaveKey*(hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyA".} - proc RegSetValue*(hKey: HKEY, lpSubKey: LPCSTR, dwType: DWORD, lpData: LPCSTR, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueA".} - proc RegSetValueEx*(hKey: HKEY, lpValueName: LPCSTR, Reserved: DWORD, dwType: DWORD, lpData: ptr BYTE, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueExA".} - proc RegUnLoadKey*(hKey: HKEY, lpSubKey: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegUnLoadKeyA".} - proc RegGetValue*(hkey: HKEY, lpSubKey: LPCSTR, lpValue: LPCSTR, dwFlags: DWORD, pdwType: LPDWORD, pvData: PVOID, pcbData: LPDWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegGetValueA".} - proc InitiateSystemShutdown*(lpMachineName: LPSTR, lpMessage: LPSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownA".} - proc AbortSystemShutdown*(lpMachineName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AbortSystemShutdownA".} - proc InitiateSystemShutdownEx*(lpMachineName: LPSTR, lpMessage: LPSTR, dwTimeout: DWORD, bForceAppsClosed: WINBOOL, bRebootAfterShutdown: WINBOOL, dwReason: DWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownExA".} - proc RegSaveKeyEx*(hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyExA".} - proc RegCopyTree*(hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCopyTreeA".} - proc RegCreateKeyTransacted*(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyTransactedA".} - proc RegDeleteKeyTransacted*(hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyTransactedA".} - proc RegDeleteKeyValue*(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyValueA".} - proc RegDeleteTree*(hKey: HKEY, lpSubKey: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteTreeA".} - proc RegLoadAppKey*(lpFile: LPCSTR, phkResult: PHKEY, samDesired: REGSAM, dwOptions: DWORD, Reserved: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadAppKeyA".} - proc RegLoadMUIString*(hKey: HKEY, pszValue: LPCSTR, pszOutBuf: LPSTR, cbOutBuf: DWORD, pcbData: LPDWORD, Flags: DWORD, pszDirectory: LPCSTR): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadMUIStringA".} - proc RegOpenKeyTransacted*(hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY, hTransaction: HANDLE, pExtendedParameter: PVOID): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyTransactedA".} - proc RegSetKeyValue*(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR, dwType: DWORD, lpData: LPCVOID, cbData: DWORD): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetKeyValueA".} - proc InitiateShutdown*(lpMachineName: LPSTR, lpMessage: LPSTR, dwGracePeriod: DWORD, dwShutdownFlags: DWORD, dwReason: DWORD): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateShutdownA".} + + proc RegConnectRegistry*( + lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryA".} + + proc RegConnectRegistryEx*( + lpMachineName: LPCSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegConnectRegistryExA".} + + proc RegCreateKey*( + hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyA".} + + proc RegCreateKeyEx*( + hKey: HKEY, + lpSubKey: LPCSTR, + Reserved: DWORD, + lpClass: LPSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyExA".} + + proc RegDeleteKey*( + hKey: HKEY, lpSubKey: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyA".} + + proc RegDeleteKeyEx*( + hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyExA".} + + proc RegDeleteValue*( + hKey: HKEY, lpValueName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteValueA".} + + proc RegEnumKey*( + hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyA".} + + proc RegEnumKeyEx*( + hKey: HKEY, + dwIndex: DWORD, + lpName: LPSTR, + lpcchName: LPDWORD, + lpReserved: LPDWORD, + lpClass: LPSTR, + lpcchClass: LPDWORD, + lpftLastWriteTime: PFILETIME, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumKeyExA".} + + proc RegEnumValue*( + hKey: HKEY, + dwIndex: DWORD, + lpValueName: LPSTR, + lpcchValueName: LPDWORD, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegEnumValueA".} + + proc RegLoadKey*( + hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadKeyA".} + + proc RegOpenKey*( + hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyA".} + + proc RegOpenKeyEx*( + hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyExA".} + + proc RegQueryInfoKey*( + hKey: HKEY, + lpClass: LPSTR, + lpcchClass: LPDWORD, + lpReserved: LPDWORD, + lpcSubKeys: LPDWORD, + lpcbMaxSubKeyLen: LPDWORD, + lpcbMaxClassLen: LPDWORD, + lpcValues: LPDWORD, + lpcbMaxValueNameLen: LPDWORD, + lpcbMaxValueLen: LPDWORD, + lpcbSecurityDescriptor: LPDWORD, + lpftLastWriteTime: PFILETIME, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryInfoKeyA".} + + proc RegQueryValue*( + hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueA".} + + proc RegQueryMultipleValues*( + hKey: HKEY, + val_list: PVALENTA, + num_vals: DWORD, + lpValueBuf: LPSTR, + ldwTotsize: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryMultipleValuesA".} + + proc RegQueryValueEx*( + hKey: HKEY, + lpValueName: LPCSTR, + lpReserved: LPDWORD, + lpType: LPDWORD, + lpData: LPBYTE, + lpcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegQueryValueExA".} + + proc RegReplaceKey*( + hKey: HKEY, lpSubKey: LPCSTR, lpNewFile: LPCSTR, lpOldFile: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegReplaceKeyA".} + + proc RegRestoreKey*( + hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegRestoreKeyA".} + + proc RegSaveKey*( + hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyA".} + + proc RegSetValue*( + hKey: HKEY, lpSubKey: LPCSTR, dwType: DWORD, lpData: LPCSTR, cbData: DWORD + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueA".} + + proc RegSetValueEx*( + hKey: HKEY, + lpValueName: LPCSTR, + Reserved: DWORD, + dwType: DWORD, + lpData: ptr BYTE, + cbData: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetValueExA".} + + proc RegUnLoadKey*( + hKey: HKEY, lpSubKey: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegUnLoadKeyA".} + + proc RegGetValue*( + hkey: HKEY, + lpSubKey: LPCSTR, + lpValue: LPCSTR, + dwFlags: DWORD, + pdwType: LPDWORD, + pvData: PVOID, + pcbData: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegGetValueA".} + + proc InitiateSystemShutdown*( + lpMachineName: LPSTR, + lpMessage: LPSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownA".} + + proc AbortSystemShutdown*( + lpMachineName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "AbortSystemShutdownA".} + + proc InitiateSystemShutdownEx*( + lpMachineName: LPSTR, + lpMessage: LPSTR, + dwTimeout: DWORD, + bForceAppsClosed: WINBOOL, + bRebootAfterShutdown: WINBOOL, + dwReason: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "InitiateSystemShutdownExA" + .} + + proc RegSaveKeyEx*( + hKey: HKEY, + lpFile: LPCSTR, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + Flags: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSaveKeyExA".} + + proc RegCopyTree*( + hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCopyTreeA".} + + proc RegCreateKeyTransacted*( + hKey: HKEY, + lpSubKey: LPCSTR, + Reserved: DWORD, + lpClass: LPSTR, + dwOptions: DWORD, + samDesired: REGSAM, + lpSecurityAttributes: LPSECURITY_ATTRIBUTES, + phkResult: PHKEY, + lpdwDisposition: LPDWORD, + hTransaction: HANDLE, + pExtendedParemeter: PVOID, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegCreateKeyTransactedA".} + + proc RegDeleteKeyTransacted*( + hKey: HKEY, + lpSubKey: LPCSTR, + samDesired: REGSAM, + Reserved: DWORD, + hTransaction: HANDLE, + pExtendedParameter: PVOID, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyTransactedA".} + + proc RegDeleteKeyValue*( + hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteKeyValueA".} + + proc RegDeleteTree*( + hKey: HKEY, lpSubKey: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegDeleteTreeA".} + + proc RegLoadAppKey*( + lpFile: LPCSTR, + phkResult: PHKEY, + samDesired: REGSAM, + dwOptions: DWORD, + Reserved: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadAppKeyA".} + + proc RegLoadMUIString*( + hKey: HKEY, + pszValue: LPCSTR, + pszOutBuf: LPSTR, + cbOutBuf: DWORD, + pcbData: LPDWORD, + Flags: DWORD, + pszDirectory: LPCSTR, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegLoadMUIStringA".} + + proc RegOpenKeyTransacted*( + hKey: HKEY, + lpSubKey: LPCSTR, + ulOptions: DWORD, + samDesired: REGSAM, + phkResult: PHKEY, + hTransaction: HANDLE, + pExtendedParameter: PVOID, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegOpenKeyTransactedA".} + + proc RegSetKeyValue*( + hKey: HKEY, + lpSubKey: LPCSTR, + lpValueName: LPCSTR, + dwType: DWORD, + lpData: LPCVOID, + cbData: DWORD, + ): LONG {.winapi, stdcall, dynlib: "advapi32", importc: "RegSetKeyValueA".} + + proc InitiateShutdown*( + lpMachineName: LPSTR, + lpMessage: LPSTR, + dwGracePeriod: DWORD, + dwShutdownFlags: DWORD, + dwReason: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "InitiateShutdownA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winscard.nim --- a/semicongine/thirdparty/winim/winim/inc/winscard.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winscard.nim Thu Aug 22 18:32:21 2024 +0700 @@ -18,6 +18,7 @@ SCARD_IO_REQUEST* {.pure.} = object dwProtocol*: DWORD cbPciLength*: DWORD + PSCARD_IO_REQUEST* = ptr SCARD_IO_REQUEST LPSCARD_IO_REQUEST* = ptr SCARD_IO_REQUEST LPCSCARD_IO_REQUEST* = ptr SCARD_IO_REQUEST @@ -27,19 +28,23 @@ bP1*: BYTE bP2*: BYTE bP3*: BYTE + LPSCARD_T0_COMMAND* = ptr SCARD_T0_COMMAND SCARD_T0_REQUEST_UNION1* {.pure, union.} = object CmdBytes*: SCARD_T0_COMMAND rgbHeader*: array[5, BYTE] + SCARD_T0_REQUEST* {.pure.} = object ioRequest*: SCARD_IO_REQUEST bSw1*: BYTE bSw2*: BYTE union1*: SCARD_T0_REQUEST_UNION1 + PSCARD_T0_REQUEST* = ptr SCARD_T0_REQUEST LPSCARD_T0_REQUEST* = ptr SCARD_T0_REQUEST SCARD_T1_REQUEST* {.pure.} = object ioRequest*: SCARD_IO_REQUEST + PSCARD_T1_REQUEST* = ptr SCARD_T1_REQUEST LPSCARD_T1_REQUEST* = ptr SCARD_T1_REQUEST PSCARDCONTEXT* = ptr SCARDCONTEXT @@ -53,6 +58,7 @@ dwEventState*: DWORD cbAtr*: DWORD rgbAtr*: array[36, BYTE] + PSCARD_READERSTATEA* = ptr SCARD_READERSTATEA LPSCARD_READERSTATEA* = ptr SCARD_READERSTATEA SCARD_READERSTATEW* {.pure.} = object @@ -62,17 +68,21 @@ dwEventState*: DWORD cbAtr*: DWORD rgbAtr*: array[36, BYTE] + PSCARD_READERSTATEW* = ptr SCARD_READERSTATEW LPSCARD_READERSTATEW* = ptr SCARD_READERSTATEW SCARD_ATRMASK* {.pure.} = object cbAtr*: DWORD rgbAtr*: array[36, BYTE] rgbMask*: array[36, BYTE] + PSCARD_ATRMASK* = ptr SCARD_ATRMASK LPSCARD_ATRMASK* = ptr SCARD_ATRMASK - LPOCNCHKPROC* = proc (P1: SCARDCONTEXT, P2: SCARDHANDLE, P3: PVOID): WINBOOL {.stdcall.} - LPOCNCONNPROCA* = proc (P1: SCARDCONTEXT, P2: LPSTR, P3: LPSTR, P4: PVOID): SCARDHANDLE {.stdcall.} - LPOCNDSCPROC* = proc (P1: SCARDCONTEXT, P2: SCARDHANDLE, P3: PVOID): void {.stdcall.} + LPOCNCHKPROC* = + proc(P1: SCARDCONTEXT, P2: SCARDHANDLE, P3: PVOID): WINBOOL {.stdcall.} + LPOCNCONNPROCA* = + proc(P1: SCARDCONTEXT, P2: LPSTR, P3: LPSTR, P4: PVOID): SCARDHANDLE {.stdcall.} + LPOCNDSCPROC* = proc(P1: SCARDCONTEXT, P2: SCARDHANDLE, P3: PVOID): void {.stdcall.} OPENCARD_SEARCH_CRITERIAA* {.pure.} = object dwStructSize*: DWORD lpstrGroupNames*: LPSTR @@ -87,9 +97,11 @@ pvUserData*: LPVOID dwShareMode*: DWORD dwPreferredProtocols*: DWORD + POPENCARD_SEARCH_CRITERIAA* = ptr OPENCARD_SEARCH_CRITERIAA LPOPENCARD_SEARCH_CRITERIAA* = ptr OPENCARD_SEARCH_CRITERIAA - LPOCNCONNPROCW* = proc (P1: SCARDCONTEXT, P2: LPWSTR, P3: LPWSTR, P4: PVOID): SCARDHANDLE {.stdcall.} + LPOCNCONNPROCW* = + proc(P1: SCARDCONTEXT, P2: LPWSTR, P3: LPWSTR, P4: PVOID): SCARDHANDLE {.stdcall.} OPENCARD_SEARCH_CRITERIAW* {.pure.} = object dwStructSize*: DWORD lpstrGroupNames*: LPWSTR @@ -104,6 +116,7 @@ pvUserData*: LPVOID dwShareMode*: DWORD dwPreferredProtocols*: DWORD + POPENCARD_SEARCH_CRITERIAW* = ptr OPENCARD_SEARCH_CRITERIAW LPOPENCARD_SEARCH_CRITERIAW* = ptr OPENCARD_SEARCH_CRITERIAW OPENCARDNAME_EXA* {.pure.} = object @@ -125,6 +138,7 @@ nMaxCard*: DWORD dwActiveProtocol*: DWORD hCardHandle*: SCARDHANDLE + POPENCARDNAME_EXA* = ptr OPENCARDNAME_EXA LPOPENCARDNAME_EXA* = ptr OPENCARDNAME_EXA OPENCARDNAME_EXW* {.pure.} = object @@ -146,6 +160,7 @@ nMaxCard*: DWORD dwActiveProtocol*: DWORD hCardHandle*: SCARDHANDLE + POPENCARDNAME_EXW* = ptr OPENCARDNAME_EXW LPOPENCARDNAME_EXW* = ptr OPENCARDNAME_EXW OPENCARDNAMEA_EX* = OPENCARDNAME_EXA @@ -178,6 +193,7 @@ lpfnCheck*: LPOCNCHKPROC lpfnDisconnect*: LPOCNDSCPROC hCardHandle*: SCARDHANDLE + POPENCARDNAMEA* = ptr OPENCARDNAMEA LPOPENCARDNAMEA* = ptr OPENCARDNAMEA OPENCARDNAMEW* {.pure.} = object @@ -204,8 +220,10 @@ lpfnCheck*: LPOCNCHKPROC lpfnDisconnect*: LPOCNDSCPROC hCardHandle*: SCARDHANDLE + POPENCARDNAMEW* = ptr OPENCARDNAMEW LPOPENCARDNAMEW* = ptr OPENCARDNAMEW + const SCARD_ATR_LENGTH* = 33 SCARD_PROTOCOL_UNDEFINED* = 0x00000000 @@ -218,7 +236,9 @@ SCARD_POWER_DOWN* = 0 SCARD_COLD_RESET* = 1 SCARD_WARM_RESET* = 2 -template SCARD_CTL_CODE*(code: untyped): untyped = CTL_CODE(FILE_DEVICE_SMARTCARD, code, METHOD_BUFFERED, FILE_ANY_ACCESS) +template SCARD_CTL_CODE*(code: untyped): untyped = + CTL_CODE(FILE_DEVICE_SMARTCARD, code, METHOD_BUFFERED, FILE_ANY_ACCESS) + const IOCTL_SMARTCARD_POWER* = SCARD_CTL_CODE(1) IOCTL_SMARTCARD_GET_ATTRIBUTE* = SCARD_CTL_CODE(2) @@ -246,54 +266,56 @@ SCARD_CLASS_ICC_STATE* = 9 SCARD_CLASS_PERF* = 0x7ffe SCARD_CLASS_SYSTEM* = 0x7fff -template SCARD_ATTR_VALUE*(class: untyped, tag: untyped): untyped = (class shl 16) or tag +template SCARD_ATTR_VALUE*(class: untyped, tag: untyped): untyped = + (class shl 16) or tag + const - SCARD_ATTR_VENDOR_NAME* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO,0x0100) - SCARD_ATTR_VENDOR_IFD_TYPE* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO,0x0101) - SCARD_ATTR_VENDOR_IFD_VERSION* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO,0x0102) - SCARD_ATTR_VENDOR_IFD_SERIAL_NO* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO,0x0103) - SCARD_ATTR_CHANNEL_ID* = SCARD_ATTR_VALUE(SCARD_CLASS_COMMUNICATIONS,0x0110) - SCARD_ATTR_PROTOCOL_TYPES* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL,0x0120) - SCARD_ATTR_DEFAULT_CLK* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL,0x0121) - SCARD_ATTR_MAX_CLK* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL,0x0122) - SCARD_ATTR_DEFAULT_DATA_RATE* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL,0x0123) - SCARD_ATTR_MAX_DATA_RATE* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL,0x0124) - SCARD_ATTR_MAX_IFSD* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL,0x0125) - SCARD_ATTR_POWER_MGMT_SUPPORT* = SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT,0x0131) - SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE* = SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY,0x0140) - SCARD_ATTR_USER_AUTH_INPUT_DEVICE* = SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY,0x0142) - SCARD_ATTR_CHARACTERISTICS* = SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL,0x0150) - SCARD_ATTR_CURRENT_PROTOCOL_TYPE* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0201) - SCARD_ATTR_CURRENT_CLK* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0202) - SCARD_ATTR_CURRENT_F* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0203) - SCARD_ATTR_CURRENT_D* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0204) - SCARD_ATTR_CURRENT_N* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0205) - SCARD_ATTR_CURRENT_W* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0206) - SCARD_ATTR_CURRENT_IFSC* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0207) - SCARD_ATTR_CURRENT_IFSD* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0208) - SCARD_ATTR_CURRENT_BWT* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x0209) - SCARD_ATTR_CURRENT_CWT* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x020a) - SCARD_ATTR_CURRENT_EBC_ENCODING* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x020b) - SCARD_ATTR_EXTENDED_BWT* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL,0x020c) - SCARD_ATTR_ICC_PRESENCE* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE,0x0300) - SCARD_ATTR_ICC_INTERFACE_STATUS* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE,0x0301) - SCARD_ATTR_CURRENT_IO_STATE* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE,0x0302) - SCARD_ATTR_ATR_STRING* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE,0x0303) - SCARD_ATTR_ICC_TYPE_PER_ATR* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE,0x0304) - SCARD_ATTR_ESC_RESET* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED,0xA000) - SCARD_ATTR_ESC_CANCEL* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED,0xA003) - SCARD_ATTR_ESC_AUTHREQUEST* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED,0xA005) - SCARD_ATTR_MAXINPUT* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED,0xA007) - SCARD_ATTR_DEVICE_UNIT* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0001) - SCARD_ATTR_DEVICE_IN_USE* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0002) - SCARD_ATTR_DEVICE_FRIENDLY_NAME_A* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0003) - SCARD_ATTR_DEVICE_SYSTEM_NAME_A* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0004) - SCARD_ATTR_DEVICE_FRIENDLY_NAME_W* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0005) - SCARD_ATTR_DEVICE_SYSTEM_NAME_W* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0006) - SCARD_ATTR_SUPRESS_T1_IFS_REQUEST* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM,0x0007) - SCARD_PERF_NUM_TRANSMISSIONS* = SCARD_ATTR_VALUE(SCARD_CLASS_PERF,0x0001) - SCARD_PERF_BYTES_TRANSMITTED* = SCARD_ATTR_VALUE(SCARD_CLASS_PERF,0x0002) - SCARD_PERF_TRANSMISSION_TIME* = SCARD_ATTR_VALUE(SCARD_CLASS_PERF,0x0003) + SCARD_ATTR_VENDOR_NAME* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0100) + SCARD_ATTR_VENDOR_IFD_TYPE* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0101) + SCARD_ATTR_VENDOR_IFD_VERSION* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0102) + SCARD_ATTR_VENDOR_IFD_SERIAL_NO* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_INFO, 0x0103) + SCARD_ATTR_CHANNEL_ID* = SCARD_ATTR_VALUE(SCARD_CLASS_COMMUNICATIONS, 0x0110) + SCARD_ATTR_PROTOCOL_TYPES* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0120) + SCARD_ATTR_DEFAULT_CLK* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0121) + SCARD_ATTR_MAX_CLK* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0122) + SCARD_ATTR_DEFAULT_DATA_RATE* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0123) + SCARD_ATTR_MAX_DATA_RATE* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0124) + SCARD_ATTR_MAX_IFSD* = SCARD_ATTR_VALUE(SCARD_CLASS_PROTOCOL, 0x0125) + SCARD_ATTR_POWER_MGMT_SUPPORT* = SCARD_ATTR_VALUE(SCARD_CLASS_POWER_MGMT, 0x0131) + SCARD_ATTR_USER_TO_CARD_AUTH_DEVICE* = SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0140) + SCARD_ATTR_USER_AUTH_INPUT_DEVICE* = SCARD_ATTR_VALUE(SCARD_CLASS_SECURITY, 0x0142) + SCARD_ATTR_CHARACTERISTICS* = SCARD_ATTR_VALUE(SCARD_CLASS_MECHANICAL, 0x0150) + SCARD_ATTR_CURRENT_PROTOCOL_TYPE* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0201) + SCARD_ATTR_CURRENT_CLK* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0202) + SCARD_ATTR_CURRENT_F* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0203) + SCARD_ATTR_CURRENT_D* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0204) + SCARD_ATTR_CURRENT_N* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0205) + SCARD_ATTR_CURRENT_W* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0206) + SCARD_ATTR_CURRENT_IFSC* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0207) + SCARD_ATTR_CURRENT_IFSD* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0208) + SCARD_ATTR_CURRENT_BWT* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x0209) + SCARD_ATTR_CURRENT_CWT* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020a) + SCARD_ATTR_CURRENT_EBC_ENCODING* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020b) + SCARD_ATTR_EXTENDED_BWT* = SCARD_ATTR_VALUE(SCARD_CLASS_IFD_PROTOCOL, 0x020c) + SCARD_ATTR_ICC_PRESENCE* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0300) + SCARD_ATTR_ICC_INTERFACE_STATUS* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0301) + SCARD_ATTR_CURRENT_IO_STATE* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0302) + SCARD_ATTR_ATR_STRING* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0303) + SCARD_ATTR_ICC_TYPE_PER_ATR* = SCARD_ATTR_VALUE(SCARD_CLASS_ICC_STATE, 0x0304) + SCARD_ATTR_ESC_RESET* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA000) + SCARD_ATTR_ESC_CANCEL* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA003) + SCARD_ATTR_ESC_AUTHREQUEST* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA005) + SCARD_ATTR_MAXINPUT* = SCARD_ATTR_VALUE(SCARD_CLASS_VENDOR_DEFINED, 0xA007) + SCARD_ATTR_DEVICE_UNIT* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0001) + SCARD_ATTR_DEVICE_IN_USE* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0002) + SCARD_ATTR_DEVICE_FRIENDLY_NAME_A* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0003) + SCARD_ATTR_DEVICE_SYSTEM_NAME_A* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0004) + SCARD_ATTR_DEVICE_FRIENDLY_NAME_W* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0005) + SCARD_ATTR_DEVICE_SYSTEM_NAME_W* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0006) + SCARD_ATTR_SUPRESS_T1_IFS_REQUEST* = SCARD_ATTR_VALUE(SCARD_CLASS_SYSTEM, 0x0007) + SCARD_PERF_NUM_TRANSMISSIONS* = SCARD_ATTR_VALUE(SCARD_CLASS_PERF, 0x0001) + SCARD_PERF_BYTES_TRANSMITTED* = SCARD_ATTR_VALUE(SCARD_CLASS_PERF, 0x0002) + SCARD_PERF_TRANSMISSION_TIME* = SCARD_ATTR_VALUE(SCARD_CLASS_PERF, 0x0003) SCARD_T0_HEADER_LENGTH* = 7 SCARD_T0_CMD_LENGTH* = 5 SCARD_T1_PROLOGUE_LENGTH* = 3 @@ -352,80 +374,407 @@ SCERR_NOCARDNAME* = 0x4000 SCERR_NOGUIDS* = 0x8000 SCARD_AUTOALLOCATE* = DWORD(-1) -proc SCardEstablishContext*(dwScope: DWORD, pvReserved1: LPCVOID, pvReserved2: LPCVOID, phContext: LPSCARDCONTEXT): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardReleaseContext*(hContext: SCARDCONTEXT): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIsValidContext*(hContext: SCARDCONTEXT): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListReaderGroupsA*(hContext: SCARDCONTEXT, mszGroups: LPSTR, pcchGroups: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListReaderGroupsW*(hContext: SCARDCONTEXT, mszGroups: LPWSTR, pcchGroups: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListReadersA*(hContext: SCARDCONTEXT, mszGroups: LPCSTR, mszReaders: LPSTR, pcchReaders: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListReadersW*(hContext: SCARDCONTEXT, mszGroups: LPCWSTR, mszReaders: LPWSTR, pcchReaders: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListCardsA*(hContext: SCARDCONTEXT, pbAtr: LPCBYTE, rgquidInterfaces: LPCGUID, cguidInterfaceCount: DWORD, mszCards: LPSTR, pcchCards: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListCardsW*(hContext: SCARDCONTEXT, pbAtr: LPCBYTE, rgquidInterfaces: LPCGUID, cguidInterfaceCount: DWORD, mszCards: LPWSTR, pcchCards: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListInterfacesA*(hContext: SCARDCONTEXT, szCard: LPCSTR, pguidInterfaces: LPGUID, pcguidInterfaces: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardListInterfacesW*(hContext: SCARDCONTEXT, szCard: LPCWSTR, pguidInterfaces: LPGUID, pcguidInterfaces: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetProviderIdA*(hContext: SCARDCONTEXT, szCard: LPCSTR, pguidProviderId: LPGUID): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetProviderIdW*(hContext: SCARDCONTEXT, szCard: LPCWSTR, pguidProviderId: LPGUID): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetCardTypeProviderNameA*(hContext: SCARDCONTEXT, szCardName: LPCSTR, dwProviderId: DWORD, szProvider: LPSTR, pcchProvider: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetCardTypeProviderNameW*(hContext: SCARDCONTEXT, szCardName: LPCWSTR, dwProviderId: DWORD, szProvider: LPWSTR, pcchProvider: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIntroduceReaderGroupA*(hContext: SCARDCONTEXT, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIntroduceReaderGroupW*(hContext: SCARDCONTEXT, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardForgetReaderGroupA*(hContext: SCARDCONTEXT, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardForgetReaderGroupW*(hContext: SCARDCONTEXT, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIntroduceReaderA*(hContext: SCARDCONTEXT, szReaderName: LPCSTR, szDeviceName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIntroduceReaderW*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szDeviceName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardForgetReaderA*(hContext: SCARDCONTEXT, szReaderName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardForgetReaderW*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardAddReaderToGroupA*(hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardAddReaderToGroupW*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardRemoveReaderFromGroupA*(hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardRemoveReaderFromGroupW*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIntroduceCardTypeA*(hContext: SCARDCONTEXT, szCardName: LPCSTR, pguidPrimaryProvider: LPCGUID, rgguidInterfaces: LPCGUID, dwInterfaceCount: DWORD, pbAtr: LPCBYTE, pbAtrMask: LPCBYTE, cbAtrLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardIntroduceCardTypeW*(hContext: SCARDCONTEXT, szCardName: LPCWSTR, pguidPrimaryProvider: LPCGUID, rgguidInterfaces: LPCGUID, dwInterfaceCount: DWORD, pbAtr: LPCBYTE, pbAtrMask: LPCBYTE, cbAtrLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardSetCardTypeProviderNameA*(hContext: SCARDCONTEXT, szCardName: LPCSTR, dwProviderId: DWORD, szProvider: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardSetCardTypeProviderNameW*(hContext: SCARDCONTEXT, szCardName: LPCWSTR, dwProviderId: DWORD, szProvider: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardForgetCardTypeA*(hContext: SCARDCONTEXT, szCardName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardForgetCardTypeW*(hContext: SCARDCONTEXT, szCardName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardFreeMemory*(hContext: SCARDCONTEXT, pvMem: LPCVOID): LONG {.winapi, stdcall, dynlib: "winscard", importc.} +proc SCardEstablishContext*( + dwScope: DWORD, pvReserved1: LPCVOID, pvReserved2: LPCVOID, phContext: LPSCARDCONTEXT +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardReleaseContext*( + hContext: SCARDCONTEXT +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIsValidContext*( + hContext: SCARDCONTEXT +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListReaderGroupsA*( + hContext: SCARDCONTEXT, mszGroups: LPSTR, pcchGroups: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListReaderGroupsW*( + hContext: SCARDCONTEXT, mszGroups: LPWSTR, pcchGroups: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListReadersA*( + hContext: SCARDCONTEXT, mszGroups: LPCSTR, mszReaders: LPSTR, pcchReaders: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListReadersW*( + hContext: SCARDCONTEXT, mszGroups: LPCWSTR, mszReaders: LPWSTR, pcchReaders: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListCardsA*( + hContext: SCARDCONTEXT, + pbAtr: LPCBYTE, + rgquidInterfaces: LPCGUID, + cguidInterfaceCount: DWORD, + mszCards: LPSTR, + pcchCards: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListCardsW*( + hContext: SCARDCONTEXT, + pbAtr: LPCBYTE, + rgquidInterfaces: LPCGUID, + cguidInterfaceCount: DWORD, + mszCards: LPWSTR, + pcchCards: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListInterfacesA*( + hContext: SCARDCONTEXT, + szCard: LPCSTR, + pguidInterfaces: LPGUID, + pcguidInterfaces: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardListInterfacesW*( + hContext: SCARDCONTEXT, + szCard: LPCWSTR, + pguidInterfaces: LPGUID, + pcguidInterfaces: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetProviderIdA*( + hContext: SCARDCONTEXT, szCard: LPCSTR, pguidProviderId: LPGUID +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetProviderIdW*( + hContext: SCARDCONTEXT, szCard: LPCWSTR, pguidProviderId: LPGUID +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetCardTypeProviderNameA*( + hContext: SCARDCONTEXT, + szCardName: LPCSTR, + dwProviderId: DWORD, + szProvider: LPSTR, + pcchProvider: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetCardTypeProviderNameW*( + hContext: SCARDCONTEXT, + szCardName: LPCWSTR, + dwProviderId: DWORD, + szProvider: LPWSTR, + pcchProvider: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIntroduceReaderGroupA*( + hContext: SCARDCONTEXT, szGroupName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIntroduceReaderGroupW*( + hContext: SCARDCONTEXT, szGroupName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardForgetReaderGroupA*( + hContext: SCARDCONTEXT, szGroupName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardForgetReaderGroupW*( + hContext: SCARDCONTEXT, szGroupName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIntroduceReaderA*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR, szDeviceName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIntroduceReaderW*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szDeviceName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardForgetReaderA*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardForgetReaderW*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardAddReaderToGroupA*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardAddReaderToGroupW*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardRemoveReaderFromGroupA*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardRemoveReaderFromGroupW*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIntroduceCardTypeA*( + hContext: SCARDCONTEXT, + szCardName: LPCSTR, + pguidPrimaryProvider: LPCGUID, + rgguidInterfaces: LPCGUID, + dwInterfaceCount: DWORD, + pbAtr: LPCBYTE, + pbAtrMask: LPCBYTE, + cbAtrLen: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardIntroduceCardTypeW*( + hContext: SCARDCONTEXT, + szCardName: LPCWSTR, + pguidPrimaryProvider: LPCGUID, + rgguidInterfaces: LPCGUID, + dwInterfaceCount: DWORD, + pbAtr: LPCBYTE, + pbAtrMask: LPCBYTE, + cbAtrLen: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardSetCardTypeProviderNameA*( + hContext: SCARDCONTEXT, szCardName: LPCSTR, dwProviderId: DWORD, szProvider: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardSetCardTypeProviderNameW*( + hContext: SCARDCONTEXT, szCardName: LPCWSTR, dwProviderId: DWORD, szProvider: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardForgetCardTypeA*( + hContext: SCARDCONTEXT, szCardName: LPCSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardForgetCardTypeW*( + hContext: SCARDCONTEXT, szCardName: LPCWSTR +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardFreeMemory*( + hContext: SCARDCONTEXT, pvMem: LPCVOID +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + proc SCardAccessStartedEvent*(): HANDLE {.winapi, stdcall, dynlib: "winscard", importc.} proc SCardReleaseStartedEvent*(): void {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardLocateCardsA*(hContext: SCARDCONTEXT, mszCards: LPCSTR, rgReaderStates: LPSCARD_READERSTATEA, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardLocateCardsW*(hContext: SCARDCONTEXT, mszCards: LPCWSTR, rgReaderStates: LPSCARD_READERSTATEW, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardLocateCardsByATRA*(hContext: SCARDCONTEXT, rgAtrMasks: LPSCARD_ATRMASK, cAtrs: DWORD, rgReaderStates: LPSCARD_READERSTATEA, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardLocateCardsByATRW*(hContext: SCARDCONTEXT, rgAtrMasks: LPSCARD_ATRMASK, cAtrs: DWORD, rgReaderStates: LPSCARD_READERSTATEW, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetStatusChangeA*(hContext: SCARDCONTEXT, dwTimeout: DWORD, rgReaderStates: LPSCARD_READERSTATEA, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetStatusChangeW*(hContext: SCARDCONTEXT, dwTimeout: DWORD, rgReaderStates: LPSCARD_READERSTATEW, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardCancel*(hContext: SCARDCONTEXT): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardConnectA*(hContext: SCARDCONTEXT, szReader: LPCSTR, dwShareMode: DWORD, dwPreferredProtocols: DWORD, phCard: LPSCARDHANDLE, pdwActiveProtocol: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardConnectW*(hContext: SCARDCONTEXT, szReader: LPCWSTR, dwShareMode: DWORD, dwPreferredProtocols: DWORD, phCard: LPSCARDHANDLE, pdwActiveProtocol: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardReconnect*(hCard: SCARDHANDLE, dwShareMode: DWORD, dwPreferredProtocols: DWORD, dwInitialization: DWORD, pdwActiveProtocol: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardDisconnect*(hCard: SCARDHANDLE, dwDisposition: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardBeginTransaction*(hCard: SCARDHANDLE): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardEndTransaction*(hCard: SCARDHANDLE, dwDisposition: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardState*(hCard: SCARDHANDLE, pdwState: LPDWORD, pdwProtocol: LPDWORD, pbAtr: LPBYTE, pcbAtrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardStatusA*(hCard: SCARDHANDLE, szReaderName: LPSTR, pcchReaderLen: LPDWORD, pdwState: LPDWORD, pdwProtocol: LPDWORD, pbAtr: LPBYTE, pcbAtrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardStatusW*(hCard: SCARDHANDLE, szReaderName: LPWSTR, pcchReaderLen: LPDWORD, pdwState: LPDWORD, pdwProtocol: LPDWORD, pbAtr: LPBYTE, pcbAtrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardTransmit*(hCard: SCARDHANDLE, pioSendPci: LPCSCARD_IO_REQUEST, pbSendBuffer: LPCBYTE, cbSendLength: DWORD, pioRecvPci: LPSCARD_IO_REQUEST, pbRecvBuffer: LPBYTE, pcbRecvLength: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardControl*(hCard: SCARDHANDLE, dwControlCode: DWORD, lpInBuffer: LPCVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesReturned: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetAttrib*(hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPBYTE, pcbAttrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardGetReaderCapabilities*(hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPBYTE, pcbAttrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetAttrib".} -proc SCardSetAttrib*(hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPCBYTE, cbAttrLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardSetReaderCapabilities*(hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPCBYTE, cbAttrLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardSetAttrib".} -proc SCardUIDlgSelectCardA*(P1: LPOPENCARDNAMEA_EX): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} -proc SCardUIDlgSelectCardW*(P1: LPOPENCARDNAMEW_EX): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} -proc GetOpenCardNameA*(P1: LPOPENCARDNAMEA): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} -proc GetOpenCardNameW*(P1: LPOPENCARDNAMEW): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} +proc SCardLocateCardsA*( + hContext: SCARDCONTEXT, + mszCards: LPCSTR, + rgReaderStates: LPSCARD_READERSTATEA, + cReaders: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardLocateCardsW*( + hContext: SCARDCONTEXT, + mszCards: LPCWSTR, + rgReaderStates: LPSCARD_READERSTATEW, + cReaders: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardLocateCardsByATRA*( + hContext: SCARDCONTEXT, + rgAtrMasks: LPSCARD_ATRMASK, + cAtrs: DWORD, + rgReaderStates: LPSCARD_READERSTATEA, + cReaders: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardLocateCardsByATRW*( + hContext: SCARDCONTEXT, + rgAtrMasks: LPSCARD_ATRMASK, + cAtrs: DWORD, + rgReaderStates: LPSCARD_READERSTATEW, + cReaders: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetStatusChangeA*( + hContext: SCARDCONTEXT, + dwTimeout: DWORD, + rgReaderStates: LPSCARD_READERSTATEA, + cReaders: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetStatusChangeW*( + hContext: SCARDCONTEXT, + dwTimeout: DWORD, + rgReaderStates: LPSCARD_READERSTATEW, + cReaders: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardCancel*( + hContext: SCARDCONTEXT +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardConnectA*( + hContext: SCARDCONTEXT, + szReader: LPCSTR, + dwShareMode: DWORD, + dwPreferredProtocols: DWORD, + phCard: LPSCARDHANDLE, + pdwActiveProtocol: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardConnectW*( + hContext: SCARDCONTEXT, + szReader: LPCWSTR, + dwShareMode: DWORD, + dwPreferredProtocols: DWORD, + phCard: LPSCARDHANDLE, + pdwActiveProtocol: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardReconnect*( + hCard: SCARDHANDLE, + dwShareMode: DWORD, + dwPreferredProtocols: DWORD, + dwInitialization: DWORD, + pdwActiveProtocol: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardDisconnect*( + hCard: SCARDHANDLE, dwDisposition: DWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardBeginTransaction*( + hCard: SCARDHANDLE +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardEndTransaction*( + hCard: SCARDHANDLE, dwDisposition: DWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardState*( + hCard: SCARDHANDLE, + pdwState: LPDWORD, + pdwProtocol: LPDWORD, + pbAtr: LPBYTE, + pcbAtrLen: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardStatusA*( + hCard: SCARDHANDLE, + szReaderName: LPSTR, + pcchReaderLen: LPDWORD, + pdwState: LPDWORD, + pdwProtocol: LPDWORD, + pbAtr: LPBYTE, + pcbAtrLen: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardStatusW*( + hCard: SCARDHANDLE, + szReaderName: LPWSTR, + pcchReaderLen: LPDWORD, + pdwState: LPDWORD, + pdwProtocol: LPDWORD, + pbAtr: LPBYTE, + pcbAtrLen: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardTransmit*( + hCard: SCARDHANDLE, + pioSendPci: LPCSCARD_IO_REQUEST, + pbSendBuffer: LPCBYTE, + cbSendLength: DWORD, + pioRecvPci: LPSCARD_IO_REQUEST, + pbRecvBuffer: LPBYTE, + pcbRecvLength: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardControl*( + hCard: SCARDHANDLE, + dwControlCode: DWORD, + lpInBuffer: LPCVOID, + nInBufferSize: DWORD, + lpOutBuffer: LPVOID, + nOutBufferSize: DWORD, + lpBytesReturned: LPDWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetAttrib*( + hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPBYTE, pcbAttrLen: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardGetReaderCapabilities*( + hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPBYTE, pcbAttrLen: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetAttrib".} + +proc SCardSetAttrib*( + hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPCBYTE, cbAttrLen: DWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardSetReaderCapabilities*( + hCard: SCARDHANDLE, dwAttrId: DWORD, pbAttr: LPCBYTE, cbAttrLen: DWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardSetAttrib".} + +proc SCardUIDlgSelectCardA*( + P1: LPOPENCARDNAMEA_EX +): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} + +proc SCardUIDlgSelectCardW*( + P1: LPOPENCARDNAMEW_EX +): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} + +proc GetOpenCardNameA*( + P1: LPOPENCARDNAMEA +): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} + +proc GetOpenCardNameW*( + P1: LPOPENCARDNAMEW +): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} + proc SCardDlgExtendedError*(): LONG {.winapi, stdcall, dynlib: "scarddlg", importc.} -proc SCardGetTransmitCount*(hCard: SCARDHANDLE, pcTransmitCount: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardReadCacheA*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPSTR, Data: PBYTE, DataLen: ptr DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardReadCacheW*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPWSTR, Data: PBYTE, DataLen: ptr DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardWriteCacheA*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPSTR, Data: PBYTE, DataLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc SCardWriteCacheW*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPWSTR, Data: PBYTE, DataLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc.} -proc `CmdBytes=`*(self: var SCARD_T0_REQUEST, x: SCARD_T0_COMMAND) {.inline.} = self.union1.CmdBytes = x -proc CmdBytes*(self: SCARD_T0_REQUEST): SCARD_T0_COMMAND {.inline.} = self.union1.CmdBytes -proc CmdBytes*(self: var SCARD_T0_REQUEST): var SCARD_T0_COMMAND {.inline.} = self.union1.CmdBytes -proc `rgbHeader=`*(self: var SCARD_T0_REQUEST, x: array[5, BYTE]) {.inline.} = self.union1.rgbHeader = x -proc rgbHeader*(self: SCARD_T0_REQUEST): array[5, BYTE] {.inline.} = self.union1.rgbHeader -proc rgbHeader*(self: var SCARD_T0_REQUEST): var array[5, BYTE] {.inline.} = self.union1.rgbHeader +proc SCardGetTransmitCount*( + hCard: SCARDHANDLE, pcTransmitCount: LPDWORD +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardReadCacheA*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPSTR, + Data: PBYTE, + DataLen: ptr DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardReadCacheW*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPWSTR, + Data: PBYTE, + DataLen: ptr DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardWriteCacheA*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPSTR, + Data: PBYTE, + DataLen: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc SCardWriteCacheW*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPWSTR, + Data: PBYTE, + DataLen: DWORD, +): LONG {.winapi, stdcall, dynlib: "winscard", importc.} + +proc `CmdBytes=`*(self: var SCARD_T0_REQUEST, x: SCARD_T0_COMMAND) {.inline.} = + self.union1.CmdBytes = x + +proc CmdBytes*(self: SCARD_T0_REQUEST): SCARD_T0_COMMAND {.inline.} = + self.union1.CmdBytes + +proc CmdBytes*(self: var SCARD_T0_REQUEST): var SCARD_T0_COMMAND {.inline.} = + self.union1.CmdBytes + +proc `rgbHeader=`*(self: var SCARD_T0_REQUEST, x: array[5, BYTE]) {.inline.} = + self.union1.rgbHeader = x + +proc rgbHeader*(self: SCARD_T0_REQUEST): array[5, BYTE] {.inline.} = + self.union1.rgbHeader + +proc rgbHeader*(self: var SCARD_T0_REQUEST): var array[5, BYTE] {.inline.} = + self.union1.rgbHeader + when winimUnicode: type SCARD_READERSTATE* = SCARD_READERSTATEW @@ -441,34 +790,174 @@ OPENCARDNAME* = OPENCARDNAMEW POPENCARDNAME* = POPENCARDNAMEW LPOPENCARDNAME* = LPOPENCARDNAMEW + const SCARD_ATTR_DEVICE_FRIENDLY_NAME* = SCARD_ATTR_DEVICE_FRIENDLY_NAME_W SCARD_ATTR_DEVICE_SYSTEM_NAME* = SCARD_ATTR_DEVICE_SYSTEM_NAME_W - proc SCardListReaderGroups*(hContext: SCARDCONTEXT, mszGroups: LPWSTR, pcchGroups: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReaderGroupsW".} - proc SCardListReaders*(hContext: SCARDCONTEXT, mszGroups: LPCWSTR, mszReaders: LPWSTR, pcchReaders: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReadersW".} - proc SCardListCards*(hContext: SCARDCONTEXT, pbAtr: LPCBYTE, rgquidInterfaces: LPCGUID, cguidInterfaceCount: DWORD, mszCards: LPWSTR, pcchCards: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsW".} - proc SCardListInterfaces*(hContext: SCARDCONTEXT, szCard: LPCWSTR, pguidInterfaces: LPGUID, pcguidInterfaces: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListInterfacesW".} - proc SCardGetProviderId*(hContext: SCARDCONTEXT, szCard: LPCWSTR, pguidProviderId: LPGUID): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetProviderIdW".} - proc SCardGetCardTypeProviderName*(hContext: SCARDCONTEXT, szCardName: LPCWSTR, dwProviderId: DWORD, szProvider: LPWSTR, pcchProvider: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetCardTypeProviderNameW".} - proc SCardIntroduceReaderGroup*(hContext: SCARDCONTEXT, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderGroupW".} - proc SCardForgetReaderGroup*(hContext: SCARDCONTEXT, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderGroupW".} - proc SCardIntroduceReader*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szDeviceName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderW".} - proc SCardForgetReader*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderW".} - proc SCardAddReaderToGroup*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardAddReaderToGroupW".} - proc SCardRemoveReaderFromGroup*(hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardRemoveReaderFromGroupW".} - proc SCardIntroduceCardType*(hContext: SCARDCONTEXT, szCardName: LPCWSTR, pguidPrimaryProvider: LPCGUID, rgguidInterfaces: LPCGUID, dwInterfaceCount: DWORD, pbAtr: LPCBYTE, pbAtrMask: LPCBYTE, cbAtrLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceCardTypeW".} - proc SCardSetCardTypeProviderName*(hContext: SCARDCONTEXT, szCardName: LPCWSTR, dwProviderId: DWORD, szProvider: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardSetCardTypeProviderNameW".} - proc SCardForgetCardType*(hContext: SCARDCONTEXT, szCardName: LPCWSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetCardTypeW".} - proc SCardListCardTypes*(hContext: SCARDCONTEXT, pbAtr: LPCBYTE, rgquidInterfaces: LPCGUID, cguidInterfaceCount: DWORD, mszCards: LPWSTR, pcchCards: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsW".} - proc SCardLocateCards*(hContext: SCARDCONTEXT, mszCards: LPCWSTR, rgReaderStates: LPSCARD_READERSTATEW, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsW".} - proc SCardLocateCardsByATR*(hContext: SCARDCONTEXT, rgAtrMasks: LPSCARD_ATRMASK, cAtrs: DWORD, rgReaderStates: LPSCARD_READERSTATEW, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsByATRW".} - proc SCardGetStatusChange*(hContext: SCARDCONTEXT, dwTimeout: DWORD, rgReaderStates: LPSCARD_READERSTATEW, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetStatusChangeW".} - proc SCardConnect*(hContext: SCARDCONTEXT, szReader: LPCWSTR, dwShareMode: DWORD, dwPreferredProtocols: DWORD, phCard: LPSCARDHANDLE, pdwActiveProtocol: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardConnectW".} - proc SCardStatus*(hCard: SCARDHANDLE, szReaderName: LPWSTR, pcchReaderLen: LPDWORD, pdwState: LPDWORD, pdwProtocol: LPDWORD, pbAtr: LPBYTE, pcbAtrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardStatusW".} - proc SCardUIDlgSelectCard*(P1: LPOPENCARDNAMEW_EX): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "SCardUIDlgSelectCardW".} - proc GetOpenCardName*(P1: LPOPENCARDNAMEW): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "GetOpenCardNameW".} - proc SCardReadCache*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPWSTR, Data: PBYTE, DataLen: ptr DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardReadCacheW".} - proc SCardWriteCache*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPWSTR, Data: PBYTE, DataLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardWriteCacheW".} + proc SCardListReaderGroups*( + hContext: SCARDCONTEXT, mszGroups: LPWSTR, pcchGroups: LPDWORD + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReaderGroupsW".} + + proc SCardListReaders*( + hContext: SCARDCONTEXT, mszGroups: LPCWSTR, mszReaders: LPWSTR, pcchReaders: LPDWORD + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReadersW".} + + proc SCardListCards*( + hContext: SCARDCONTEXT, + pbAtr: LPCBYTE, + rgquidInterfaces: LPCGUID, + cguidInterfaceCount: DWORD, + mszCards: LPWSTR, + pcchCards: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsW".} + + proc SCardListInterfaces*( + hContext: SCARDCONTEXT, + szCard: LPCWSTR, + pguidInterfaces: LPGUID, + pcguidInterfaces: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListInterfacesW".} + + proc SCardGetProviderId*( + hContext: SCARDCONTEXT, szCard: LPCWSTR, pguidProviderId: LPGUID + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetProviderIdW".} + + proc SCardGetCardTypeProviderName*( + hContext: SCARDCONTEXT, + szCardName: LPCWSTR, + dwProviderId: DWORD, + szProvider: LPWSTR, + pcchProvider: LPDWORD, + ): LONG {. + winapi, stdcall, dynlib: "winscard", importc: "SCardGetCardTypeProviderNameW" + .} + + proc SCardIntroduceReaderGroup*( + hContext: SCARDCONTEXT, szGroupName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderGroupW".} + + proc SCardForgetReaderGroup*( + hContext: SCARDCONTEXT, szGroupName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderGroupW".} + + proc SCardIntroduceReader*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szDeviceName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderW".} + + proc SCardForgetReader*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderW".} + + proc SCardAddReaderToGroup*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardAddReaderToGroupW".} + + proc SCardRemoveReaderFromGroup*( + hContext: SCARDCONTEXT, szReaderName: LPCWSTR, szGroupName: LPCWSTR + ): LONG {. + winapi, stdcall, dynlib: "winscard", importc: "SCardRemoveReaderFromGroupW" + .} + + proc SCardIntroduceCardType*( + hContext: SCARDCONTEXT, + szCardName: LPCWSTR, + pguidPrimaryProvider: LPCGUID, + rgguidInterfaces: LPCGUID, + dwInterfaceCount: DWORD, + pbAtr: LPCBYTE, + pbAtrMask: LPCBYTE, + cbAtrLen: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceCardTypeW".} + + proc SCardSetCardTypeProviderName*( + hContext: SCARDCONTEXT, + szCardName: LPCWSTR, + dwProviderId: DWORD, + szProvider: LPCWSTR, + ): LONG {. + winapi, stdcall, dynlib: "winscard", importc: "SCardSetCardTypeProviderNameW" + .} + + proc SCardForgetCardType*( + hContext: SCARDCONTEXT, szCardName: LPCWSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetCardTypeW".} + + proc SCardListCardTypes*( + hContext: SCARDCONTEXT, + pbAtr: LPCBYTE, + rgquidInterfaces: LPCGUID, + cguidInterfaceCount: DWORD, + mszCards: LPWSTR, + pcchCards: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsW".} + + proc SCardLocateCards*( + hContext: SCARDCONTEXT, + mszCards: LPCWSTR, + rgReaderStates: LPSCARD_READERSTATEW, + cReaders: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsW".} + + proc SCardLocateCardsByATR*( + hContext: SCARDCONTEXT, + rgAtrMasks: LPSCARD_ATRMASK, + cAtrs: DWORD, + rgReaderStates: LPSCARD_READERSTATEW, + cReaders: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsByATRW".} + + proc SCardGetStatusChange*( + hContext: SCARDCONTEXT, + dwTimeout: DWORD, + rgReaderStates: LPSCARD_READERSTATEW, + cReaders: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetStatusChangeW".} + + proc SCardConnect*( + hContext: SCARDCONTEXT, + szReader: LPCWSTR, + dwShareMode: DWORD, + dwPreferredProtocols: DWORD, + phCard: LPSCARDHANDLE, + pdwActiveProtocol: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardConnectW".} + + proc SCardStatus*( + hCard: SCARDHANDLE, + szReaderName: LPWSTR, + pcchReaderLen: LPDWORD, + pdwState: LPDWORD, + pdwProtocol: LPDWORD, + pbAtr: LPBYTE, + pcbAtrLen: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardStatusW".} + + proc SCardUIDlgSelectCard*( + P1: LPOPENCARDNAMEW_EX + ): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "SCardUIDlgSelectCardW".} + + proc GetOpenCardName*( + P1: LPOPENCARDNAMEW + ): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "GetOpenCardNameW".} + + proc SCardReadCache*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPWSTR, + Data: PBYTE, + DataLen: ptr DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardReadCacheW".} + + proc SCardWriteCache*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPWSTR, + Data: PBYTE, + DataLen: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardWriteCacheW".} + when winimAnsi: type SCARD_READERSTATE* = SCARD_READERSTATEA @@ -484,31 +973,167 @@ OPENCARDNAME* = OPENCARDNAMEA POPENCARDNAME* = POPENCARDNAMEA LPOPENCARDNAME* = LPOPENCARDNAMEA + const SCARD_ATTR_DEVICE_FRIENDLY_NAME* = SCARD_ATTR_DEVICE_FRIENDLY_NAME_A SCARD_ATTR_DEVICE_SYSTEM_NAME* = SCARD_ATTR_DEVICE_SYSTEM_NAME_A - proc SCardListReaderGroups*(hContext: SCARDCONTEXT, mszGroups: LPSTR, pcchGroups: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReaderGroupsA".} - proc SCardListReaders*(hContext: SCARDCONTEXT, mszGroups: LPCSTR, mszReaders: LPSTR, pcchReaders: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReadersA".} - proc SCardListCards*(hContext: SCARDCONTEXT, pbAtr: LPCBYTE, rgquidInterfaces: LPCGUID, cguidInterfaceCount: DWORD, mszCards: LPSTR, pcchCards: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsA".} - proc SCardListInterfaces*(hContext: SCARDCONTEXT, szCard: LPCSTR, pguidInterfaces: LPGUID, pcguidInterfaces: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListInterfacesA".} - proc SCardGetProviderId*(hContext: SCARDCONTEXT, szCard: LPCSTR, pguidProviderId: LPGUID): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetProviderIdA".} - proc SCardGetCardTypeProviderName*(hContext: SCARDCONTEXT, szCardName: LPCSTR, dwProviderId: DWORD, szProvider: LPSTR, pcchProvider: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetCardTypeProviderNameA".} - proc SCardIntroduceReaderGroup*(hContext: SCARDCONTEXT, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderGroupA".} - proc SCardForgetReaderGroup*(hContext: SCARDCONTEXT, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderGroupA".} - proc SCardIntroduceReader*(hContext: SCARDCONTEXT, szReaderName: LPCSTR, szDeviceName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderA".} - proc SCardForgetReader*(hContext: SCARDCONTEXT, szReaderName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderA".} - proc SCardAddReaderToGroup*(hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardAddReaderToGroupA".} - proc SCardRemoveReaderFromGroup*(hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardRemoveReaderFromGroupA".} - proc SCardIntroduceCardType*(hContext: SCARDCONTEXT, szCardName: LPCSTR, pguidPrimaryProvider: LPCGUID, rgguidInterfaces: LPCGUID, dwInterfaceCount: DWORD, pbAtr: LPCBYTE, pbAtrMask: LPCBYTE, cbAtrLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceCardTypeA".} - proc SCardSetCardTypeProviderName*(hContext: SCARDCONTEXT, szCardName: LPCSTR, dwProviderId: DWORD, szProvider: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardSetCardTypeProviderNameA".} - proc SCardForgetCardType*(hContext: SCARDCONTEXT, szCardName: LPCSTR): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetCardTypeA".} - proc SCardListCardTypes*(hContext: SCARDCONTEXT, pbAtr: LPCBYTE, rgquidInterfaces: LPCGUID, cguidInterfaceCount: DWORD, mszCards: LPSTR, pcchCards: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsA".} - proc SCardLocateCards*(hContext: SCARDCONTEXT, mszCards: LPCSTR, rgReaderStates: LPSCARD_READERSTATEA, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsA".} - proc SCardLocateCardsByATR*(hContext: SCARDCONTEXT, rgAtrMasks: LPSCARD_ATRMASK, cAtrs: DWORD, rgReaderStates: LPSCARD_READERSTATEA, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsByATRA".} - proc SCardGetStatusChange*(hContext: SCARDCONTEXT, dwTimeout: DWORD, rgReaderStates: LPSCARD_READERSTATEA, cReaders: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetStatusChangeA".} - proc SCardConnect*(hContext: SCARDCONTEXT, szReader: LPCSTR, dwShareMode: DWORD, dwPreferredProtocols: DWORD, phCard: LPSCARDHANDLE, pdwActiveProtocol: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardConnectA".} - proc SCardStatus*(hCard: SCARDHANDLE, szReaderName: LPSTR, pcchReaderLen: LPDWORD, pdwState: LPDWORD, pdwProtocol: LPDWORD, pbAtr: LPBYTE, pcbAtrLen: LPDWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardStatusA".} - proc SCardUIDlgSelectCard*(P1: LPOPENCARDNAMEA_EX): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "SCardUIDlgSelectCardA".} - proc GetOpenCardName*(P1: LPOPENCARDNAMEA): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "GetOpenCardNameA".} - proc SCardReadCache*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPSTR, Data: PBYTE, DataLen: ptr DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardReadCacheA".} - proc SCardWriteCache*(hContext: SCARDCONTEXT, CardIdentifier: ptr UUID, FreshnessCounter: DWORD, LookupName: LPSTR, Data: PBYTE, DataLen: DWORD): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardWriteCacheA".} + proc SCardListReaderGroups*( + hContext: SCARDCONTEXT, mszGroups: LPSTR, pcchGroups: LPDWORD + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReaderGroupsA".} + + proc SCardListReaders*( + hContext: SCARDCONTEXT, mszGroups: LPCSTR, mszReaders: LPSTR, pcchReaders: LPDWORD + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListReadersA".} + + proc SCardListCards*( + hContext: SCARDCONTEXT, + pbAtr: LPCBYTE, + rgquidInterfaces: LPCGUID, + cguidInterfaceCount: DWORD, + mszCards: LPSTR, + pcchCards: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsA".} + + proc SCardListInterfaces*( + hContext: SCARDCONTEXT, + szCard: LPCSTR, + pguidInterfaces: LPGUID, + pcguidInterfaces: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListInterfacesA".} + + proc SCardGetProviderId*( + hContext: SCARDCONTEXT, szCard: LPCSTR, pguidProviderId: LPGUID + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetProviderIdA".} + + proc SCardGetCardTypeProviderName*( + hContext: SCARDCONTEXT, + szCardName: LPCSTR, + dwProviderId: DWORD, + szProvider: LPSTR, + pcchProvider: LPDWORD, + ): LONG {. + winapi, stdcall, dynlib: "winscard", importc: "SCardGetCardTypeProviderNameA" + .} + + proc SCardIntroduceReaderGroup*( + hContext: SCARDCONTEXT, szGroupName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderGroupA".} + + proc SCardForgetReaderGroup*( + hContext: SCARDCONTEXT, szGroupName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderGroupA".} + + proc SCardIntroduceReader*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR, szDeviceName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceReaderA".} + + proc SCardForgetReader*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetReaderA".} + + proc SCardAddReaderToGroup*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardAddReaderToGroupA".} + + proc SCardRemoveReaderFromGroup*( + hContext: SCARDCONTEXT, szReaderName: LPCSTR, szGroupName: LPCSTR + ): LONG {. + winapi, stdcall, dynlib: "winscard", importc: "SCardRemoveReaderFromGroupA" + .} + + proc SCardIntroduceCardType*( + hContext: SCARDCONTEXT, + szCardName: LPCSTR, + pguidPrimaryProvider: LPCGUID, + rgguidInterfaces: LPCGUID, + dwInterfaceCount: DWORD, + pbAtr: LPCBYTE, + pbAtrMask: LPCBYTE, + cbAtrLen: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardIntroduceCardTypeA".} + + proc SCardSetCardTypeProviderName*( + hContext: SCARDCONTEXT, szCardName: LPCSTR, dwProviderId: DWORD, szProvider: LPCSTR + ): LONG {. + winapi, stdcall, dynlib: "winscard", importc: "SCardSetCardTypeProviderNameA" + .} + + proc SCardForgetCardType*( + hContext: SCARDCONTEXT, szCardName: LPCSTR + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardForgetCardTypeA".} + + proc SCardListCardTypes*( + hContext: SCARDCONTEXT, + pbAtr: LPCBYTE, + rgquidInterfaces: LPCGUID, + cguidInterfaceCount: DWORD, + mszCards: LPSTR, + pcchCards: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardListCardsA".} + + proc SCardLocateCards*( + hContext: SCARDCONTEXT, + mszCards: LPCSTR, + rgReaderStates: LPSCARD_READERSTATEA, + cReaders: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsA".} + + proc SCardLocateCardsByATR*( + hContext: SCARDCONTEXT, + rgAtrMasks: LPSCARD_ATRMASK, + cAtrs: DWORD, + rgReaderStates: LPSCARD_READERSTATEA, + cReaders: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardLocateCardsByATRA".} + + proc SCardGetStatusChange*( + hContext: SCARDCONTEXT, + dwTimeout: DWORD, + rgReaderStates: LPSCARD_READERSTATEA, + cReaders: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardGetStatusChangeA".} + + proc SCardConnect*( + hContext: SCARDCONTEXT, + szReader: LPCSTR, + dwShareMode: DWORD, + dwPreferredProtocols: DWORD, + phCard: LPSCARDHANDLE, + pdwActiveProtocol: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardConnectA".} + + proc SCardStatus*( + hCard: SCARDHANDLE, + szReaderName: LPSTR, + pcchReaderLen: LPDWORD, + pdwState: LPDWORD, + pdwProtocol: LPDWORD, + pbAtr: LPBYTE, + pcbAtrLen: LPDWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardStatusA".} + + proc SCardUIDlgSelectCard*( + P1: LPOPENCARDNAMEA_EX + ): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "SCardUIDlgSelectCardA".} + + proc GetOpenCardName*( + P1: LPOPENCARDNAMEA + ): LONG {.winapi, stdcall, dynlib: "scarddlg", importc: "GetOpenCardNameA".} + + proc SCardReadCache*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPSTR, + Data: PBYTE, + DataLen: ptr DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardReadCacheA".} + + proc SCardWriteCache*( + hContext: SCARDCONTEXT, + CardIdentifier: ptr UUID, + FreshnessCounter: DWORD, + LookupName: LPSTR, + Data: PBYTE, + DataLen: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winscard", importc: "SCardWriteCacheA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winsock.nim --- a/semicongine/thirdparty/winim/winim/inc/winsock.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winsock.nim Thu Aug 22 18:32:21 2024 +0700 @@ -54,14 +54,16 @@ WSAEVENT* = HANDLE IN_ADDR* {.pure.} = object S_addr*: int32 + PIN_ADDR* = ptr IN_ADDR LPIN_ADDR* = ptr IN_ADDR -const - FD_SETSIZE* = 64 + +const FD_SETSIZE* = 64 type fd_set* {.pure.} = object fd_count*: int32 fd_array*: array[FD_SETSIZE, SOCKET] + PFD_SET* = ptr fd_set LPFD_SET* = ptr fd_set hostent* {.pure.} = object @@ -70,23 +72,25 @@ h_addrtype*: int16 h_length*: int16 h_addr_list*: ptr ptr char + HOSTENT* = hostent PHOSTENT* = ptr hostent LPHOSTENT* = ptr hostent + when winimCpu64: - type - servent* {.pure.} = object - s_name*: ptr char - s_aliases*: ptr ptr char - s_proto*: ptr char - s_port*: int16 + type servent* {.pure.} = object + s_name*: ptr char + s_aliases*: ptr ptr char + s_proto*: ptr char + s_port*: int16 + when winimCpu32: - type - servent* {.pure.} = object - s_name*: ptr char - s_aliases*: ptr ptr char - s_port*: int16 - s_proto*: ptr char + type servent* {.pure.} = object + s_name*: ptr char + s_aliases*: ptr ptr char + s_port*: int16 + s_proto*: ptr char + type SERVENT* = servent PSERVENT* = ptr servent @@ -95,12 +99,14 @@ p_name*: ptr char p_aliases*: ptr ptr char p_proto*: int16 + PROTOENT* = protoent PPROTOENT* = ptr protoent LPPROTOENT* = ptr protoent sockaddr* {.pure.} = object sa_family*: uint16 sa_data*: array[14, char] + SOCKADDR* = sockaddr PSOCKADDR* = ptr sockaddr LPSOCKADDR* = ptr sockaddr @@ -109,54 +115,61 @@ sin_port*: uint16 sin_addr*: IN_ADDR sin_zero*: array[8, char] + SOCKADDR_IN* = sockaddr_in PSOCKADDR_IN* = ptr sockaddr_in LPSOCKADDR_IN* = ptr sockaddr_in linger* {.pure.} = object l_onoff*: uint16 l_linger*: uint16 + LINGER* = linger PLINGER* = ptr linger LPLINGER* = ptr linger timeval* {.pure.} = object tv_sec*: int32 tv_usec*: int32 + TIMEVAL* = timeval PTIMEVAL* = ptr timeval LPTIMEVAL* = ptr timeval + const WSADESCRIPTION_LEN* = 256 WSASYS_STATUS_LEN* = 128 when winimCpu64: - type - WSADATA* {.pure.} = object - wVersion*: WORD - wHighVersion*: WORD - iMaxSockets*: uint16 - iMaxUdpDg*: uint16 - lpVendorInfo*: ptr char - szDescription*: array[WSADESCRIPTION_LEN+1, char] - szSystemStatus*: array[WSASYS_STATUS_LEN+1, char] + type WSADATA* {.pure.} = object + wVersion*: WORD + wHighVersion*: WORD + iMaxSockets*: uint16 + iMaxUdpDg*: uint16 + lpVendorInfo*: ptr char + szDescription*: array[WSADESCRIPTION_LEN + 1, char] + szSystemStatus*: array[WSASYS_STATUS_LEN + 1, char] + when winimCpu32: - type - WSADATA* {.pure.} = object - wVersion*: WORD - wHighVersion*: WORD - szDescription*: array[WSADESCRIPTION_LEN+1, char] - szSystemStatus*: array[WSASYS_STATUS_LEN+1, char] - iMaxSockets*: uint16 - iMaxUdpDg*: uint16 - lpVendorInfo*: ptr char + type WSADATA* {.pure.} = object + wVersion*: WORD + wHighVersion*: WORD + szDescription*: array[WSADESCRIPTION_LEN + 1, char] + szSystemStatus*: array[WSASYS_STATUS_LEN + 1, char] + iMaxSockets*: uint16 + iMaxUdpDg*: uint16 + lpVendorInfo*: ptr char + type LPWSADATA* = ptr WSADATA SCOPE_ID_UNION1_STRUCT1* {.pure.} = object - Zone* {.bitsize:28.}: ULONG - Level* {.bitsize:4.}: ULONG + Zone* {.bitsize: 28.}: ULONG + Level* {.bitsize: 4.}: ULONG + SCOPE_ID_UNION1* {.pure, union.} = object struct1*: SCOPE_ID_UNION1_STRUCT1 Value*: ULONG + SCOPE_ID* {.pure.} = object union1*: SCOPE_ID_UNION1 + PSCOPE_ID* = ptr SCOPE_ID LPWSAEVENT* = LPHANDLE WSAOVERLAPPED* = OVERLAPPED @@ -164,6 +177,7 @@ WSABUF* {.pure.} = object len*: int32 buf*: ptr char + LPWSABUF* = ptr WSABUF FLOWSPEC* {.pure.} = object TokenRate*: ULONG @@ -174,41 +188,48 @@ ServiceType*: SERVICETYPE MaxSduSize*: ULONG MinimumPolicedSize*: ULONG + PFLOWSPEC* = ptr FLOWSPEC LPFLOWSPEC* = ptr FLOWSPEC QOS_OBJECT_HDR* {.pure.} = object ObjectType*: ULONG ObjectLength*: ULONG + LPQOS_OBJECT_HDR* = ptr QOS_OBJECT_HDR QOS_SD_MODE* {.pure.} = object ObjectHdr*: QOS_OBJECT_HDR ShapeDiscardMode*: ULONG + LPQOS_SD_MODE* = ptr QOS_SD_MODE QOS_SHAPING_RATE* {.pure.} = object ObjectHdr*: QOS_OBJECT_HDR ShapingRate*: ULONG + LPQOS_SHAPING_RATE* = ptr QOS_SHAPING_RATE QOS* {.pure.} = object SendingFlowspec*: FLOWSPEC ReceivingFlowspec*: FLOWSPEC ProviderSpecific*: WSABUF + LPQOS* = ptr QOS -const - FD_MAX_EVENTS* = 10 + +const FD_MAX_EVENTS* = 10 type WSANETWORKEVENTS* {.pure.} = object lNetworkEvents*: int32 iErrorCode*: array[FD_MAX_EVENTS, int32] + LPWSANETWORKEVENTS* = ptr WSANETWORKEVENTS -const - MAX_PROTOCOL_CHAIN* = 7 + +const MAX_PROTOCOL_CHAIN* = 7 type WSAPROTOCOLCHAIN* {.pure.} = object ChainLen*: int32 ChainEntries*: array[MAX_PROTOCOL_CHAIN, DWORD] + LPWSAPROTOCOLCHAIN* = ptr WSAPROTOCOLCHAIN -const - WSAPROTOCOL_LEN* = 255 + +const WSAPROTOCOL_LEN* = 255 type WSAPROTOCOL_INFOA* {.pure.} = object dwServiceFlags1*: DWORD @@ -230,7 +251,8 @@ iSecurityScheme*: int32 dwMessageSize*: DWORD dwProviderReserved*: DWORD - szProtocol*: array[WSAPROTOCOL_LEN+1, CHAR] + szProtocol*: array[WSAPROTOCOL_LEN + 1, CHAR] + LPWSAPROTOCOL_INFOA* = ptr WSAPROTOCOL_INFOA WSAPROTOCOL_INFOW* {.pure.} = object dwServiceFlags1*: DWORD @@ -252,32 +274,42 @@ iSecurityScheme*: int32 dwMessageSize*: DWORD dwProviderReserved*: DWORD - szProtocol*: array[WSAPROTOCOL_LEN+1, WCHAR] + szProtocol*: array[WSAPROTOCOL_LEN + 1, WCHAR] + LPWSAPROTOCOL_INFOW* = ptr WSAPROTOCOL_INFOW WSACOMPLETION_Parameters_WindowMessage* {.pure.} = object hWnd*: HWND uMsg*: UINT context*: WPARAM + WSACOMPLETION_Parameters_Event* {.pure.} = object lpOverlapped*: LPWSAOVERLAPPED - LPWSAOVERLAPPED_COMPLETION_ROUTINE* = proc (dwError: DWORD, cbTransferred: DWORD, lpOverlapped: LPWSAOVERLAPPED, dwFlags: DWORD): void {.stdcall.} + + LPWSAOVERLAPPED_COMPLETION_ROUTINE* = proc( + dwError: DWORD, cbTransferred: DWORD, lpOverlapped: LPWSAOVERLAPPED, dwFlags: DWORD + ): void {.stdcall.} WSACOMPLETION_Parameters_Apc* {.pure.} = object lpOverlapped*: LPWSAOVERLAPPED lpfnCompletionProc*: LPWSAOVERLAPPED_COMPLETION_ROUTINE + WSACOMPLETION_Parameters_Port* {.pure.} = object lpOverlapped*: LPWSAOVERLAPPED hPort*: HANDLE Key*: ULONG_PTR + WSACOMPLETION_Parameters* {.pure, union.} = object WindowMessage*: WSACOMPLETION_Parameters_WindowMessage Event*: WSACOMPLETION_Parameters_Event Apc*: WSACOMPLETION_Parameters_Apc Port*: WSACOMPLETION_Parameters_Port + WSACOMPLETION* {.pure.} = object Type*: WSACOMPLETIONTYPE Parameters*: WSACOMPLETION_Parameters + PWSACOMPLETION* = ptr WSACOMPLETION LPWSACOMPLETION* = ptr WSACOMPLETION + const SS_PAD1SIZE* = 0x00000006 SS_PAD2SIZE* = 0x00000070 @@ -287,16 +319,19 @@ ss_pad1*: array[SS_PAD1SIZE, char] ss_align*: int64 ss_pad2*: array[SS_PAD2SIZE, char] + SOCKADDR_STORAGE* = sockaddr_storage PSOCKADDR_STORAGE* = ptr sockaddr_storage LPSOCKADDR_STORAGE* = ptr sockaddr_storage BLOB* {.pure.} = object cbSize*: ULONG pBlobData*: ptr BYTE + LPBLOB* = ptr BLOB SOCKET_ADDRESS* {.pure.} = object lpSockaddr*: LPSOCKADDR iSockaddrLength*: INT + PSOCKET_ADDRESS* = ptr SOCKET_ADDRESS LPSOCKET_ADDRESS* = ptr SOCKET_ADDRESS CSADDR_INFO* {.pure.} = object @@ -304,21 +339,25 @@ RemoteAddr*: SOCKET_ADDRESS iSocketType*: INT iProtocol*: INT + PCSADDR_INFO* = ptr CSADDR_INFO LPCSADDR_INFO* = ptr CSADDR_INFO SOCKET_ADDRESS_LIST* {.pure.} = object iAddressCount*: INT Address*: array[1, SOCKET_ADDRESS] + PSOCKET_ADDRESS_LIST* = ptr SOCKET_ADDRESS_LIST LPSOCKET_ADDRESS_LIST* = ptr SOCKET_ADDRESS_LIST AFPROTOCOLS* {.pure.} = object iAddressFamily*: INT iProtocol*: INT + PAFPROTOCOLS* = ptr AFPROTOCOLS LPAFPROTOCOLS* = ptr AFPROTOCOLS WSAVERSION* {.pure.} = object dwVersion*: DWORD ecHow*: WSAECOMPARATOR + PWSAVERSION* = ptr WSAVERSION LPWSAVERSION* = ptr WSAVERSION WSAQUERYSETA* {.pure.} = object @@ -337,6 +376,7 @@ lpcsaBuffer*: LPCSADDR_INFO dwOutputFlags*: DWORD lpBlob*: LPBLOB + PWSAQUERYSETA* = ptr WSAQUERYSETA LPWSAQUERYSETA* = ptr WSAQUERYSETA WSAQUERYSETW* {.pure.} = object @@ -355,6 +395,7 @@ lpcsaBuffer*: LPCSADDR_INFO dwOutputFlags*: DWORD lpBlob*: LPBLOB + PWSAQUERYSETW* = ptr WSAQUERYSETW LPWSAQUERYSETW* = ptr WSAQUERYSETW WSANSCLASSINFOA* {.pure.} = object @@ -363,6 +404,7 @@ dwValueType*: DWORD dwValueSize*: DWORD lpValue*: LPVOID + PWSANSCLASSINFOA* = ptr WSANSCLASSINFOA LPWSANSCLASSINFOA* = ptr WSANSCLASSINFOA WSANSCLASSINFOW* {.pure.} = object @@ -371,6 +413,7 @@ dwValueType*: DWORD dwValueSize*: DWORD lpValue*: LPVOID + PWSANSCLASSINFOW* = ptr WSANSCLASSINFOW LPWSANSCLASSINFOW* = ptr WSANSCLASSINFOW WSASERVICECLASSINFOA* {.pure.} = object @@ -378,6 +421,7 @@ lpszServiceClassName*: LPSTR dwCount*: DWORD lpClassInfos*: LPWSANSCLASSINFOA + PWSASERVICECLASSINFOA* = ptr WSASERVICECLASSINFOA LPWSASERVICECLASSINFOA* = ptr WSASERVICECLASSINFOA WSASERVICECLASSINFOW* {.pure.} = object @@ -385,6 +429,7 @@ lpszServiceClassName*: LPWSTR dwCount*: DWORD lpClassInfos*: LPWSANSCLASSINFOW + PWSASERVICECLASSINFOW* = ptr WSASERVICECLASSINFOW LPWSASERVICECLASSINFOW* = ptr WSASERVICECLASSINFOW WSANAMESPACE_INFOA* {.pure.} = object @@ -393,6 +438,7 @@ fActive*: WINBOOL dwVersion*: DWORD lpszIdentifier*: LPSTR + PWSANAMESPACE_INFOA* = ptr WSANAMESPACE_INFOA LPWSANAMESPACE_INFOA* = ptr WSANAMESPACE_INFOA WSANAMESPACE_INFOW* {.pure.} = object @@ -401,6 +447,7 @@ fActive*: WINBOOL dwVersion*: DWORD lpszIdentifier*: LPWSTR + PWSANAMESPACE_INFOW* = ptr WSANAMESPACE_INFOW LPWSANAMESPACE_INFOW* = ptr WSANAMESPACE_INFOW WSAMSG* {.pure.} = object @@ -410,6 +457,7 @@ dwBufferCount*: DWORD Control*: WSABUF dwFlags*: DWORD + PWSAMSG* = ptr WSAMSG LPWSAMSG* = ptr WSAMSG WSANAMESPACE_INFOEXA* {.pure.} = object @@ -419,6 +467,7 @@ dwVersion*: DWORD lpszIdentifier*: LPSTR ProviderSpecific*: BLOB + PWSANAMESPACE_INFOEXA* = ptr WSANAMESPACE_INFOEXA LPWSANAMESPACE_INFOEXA* = ptr WSANAMESPACE_INFOEXA WSANAMESPACE_INFOEXW* {.pure.} = object @@ -428,6 +477,7 @@ dwVersion*: DWORD lpszIdentifier*: LPWSTR ProviderSpecific*: BLOB + PWSANAMESPACE_INFOEXW* = ptr WSANAMESPACE_INFOEXW LPWSANAMESPACE_INFOEXW* = ptr WSANAMESPACE_INFOEXW WSAQUERYSET2A* {.pure.} = object @@ -445,6 +495,7 @@ lpcsaBuffer*: LPCSADDR_INFO dwOutputFlags*: DWORD lpBlob*: LPBLOB + PWSAQUERYSET2A* = ptr WSAQUERYSET2A LPWSAQUERYSET2A* = ptr WSAQUERYSET2A WSAQUERYSET2W* {.pure.} = object @@ -462,27 +513,32 @@ lpcsaBuffer*: LPCSADDR_INFO dwOutputFlags*: DWORD lpBlob*: LPBLOB + PWSAQUERYSET2W* = ptr WSAQUERYSET2W LPWSAQUERYSET2W* = ptr WSAQUERYSET2W WSAPOLLFD* {.pure.} = object fd*: SOCKET events*: int16 revents*: int16 + PWSAPOLLFD* = ptr WSAPOLLFD LPWSAPOLLFD* = ptr WSAPOLLFD IN6_ADDR* {.pure.} = object Byte*: array[16, uint8] + PIN6_ADDR* = ptr IN6_ADDR LPIN6_ADDR* = ptr IN6_ADDR sockaddr_in6_UNION1* {.pure, union.} = object sin6_scope_id*: int32 sin6_scope_struct*: SCOPE_ID + sockaddr_in6* {.pure.} = object sin6_family*: int16 sin6_port*: uint16 sin6_flowinfo*: int32 sin6_addr*: IN6_ADDR union1*: sockaddr_in6_UNION1 + SOCKADDR_IN6* = sockaddr_in6 PSOCKADDR_IN6* = ptr sockaddr_in6 LPSOCKADDR_IN6* = ptr sockaddr_in6 @@ -491,24 +547,29 @@ sin6_port*: uint16 sin6_flowinfo*: int32 sin6_addr*: IN6_ADDR + sockaddr_gen* {.pure, union.} = object Address*: sockaddr AddressIn*: sockaddr_in AddressIn6*: sockaddr_in6_old + TINTERFACE_INFO* {.pure.} = object iiFlags*: int32 iiAddress*: sockaddr_gen iiBroadcastAddress*: sockaddr_gen iiNetmask*: sockaddr_gen + LPTINTERFACE_INFO* = ptr TINTERFACE_INFO SOCKADDR_IN6_PAIR* {.pure.} = object SourceAddress*: PSOCKADDR_IN6 DestinationAddress*: PSOCKADDR_IN6 + PSOCKADDR_IN6_PAIR* = ptr SOCKADDR_IN6_PAIR SOCKADDR_INET* {.pure, union.} = object Ipv4*: SOCKADDR_IN Ipv6*: SOCKADDR_IN6 si_family*: ADDRESS_FAMILY + PSOCKADDR_INET* = ptr SOCKADDR_INET GROUP_FILTER* {.pure.} = object gf_interface*: ULONG @@ -516,21 +577,25 @@ gf_fmode*: MULTICAST_MODE_TYPE gf_numsrc*: ULONG gf_slist*: array[1, SOCKADDR_STORAGE] + PGROUP_FILTER* = ptr GROUP_FILTER GROUP_REQ* {.pure.} = object gr_interface*: ULONG gr_group*: SOCKADDR_STORAGE + PGROUP_REQ* = ptr GROUP_REQ GROUP_SOURCE_REQ* {.pure.} = object gsr_interface*: ULONG gsr_group*: SOCKADDR_STORAGE gsr_source*: SOCKADDR_STORAGE + PGROUP_SOURCE_REQ* = ptr GROUP_SOURCE_REQ INTERFACE_INFO_EX* {.pure.} = object iiFlags*: int32 iiAddress*: SOCKET_ADDRESS iiBroadcastAddress*: SOCKET_ADDRESS iiNetmask*: SOCKET_ADDRESS + LPINTERFACE_INFO_EX* = ptr INTERFACE_INFO_EX ADDRINFOA* {.pure.} = object ai_flags*: int32 @@ -541,6 +606,7 @@ ai_canonname*: ptr char ai_addr*: ptr sockaddr ai_next*: ptr ADDRINFOA + PADDRINFOA* = ptr ADDRINFOA ADDRINFOW* {.pure.} = object ai_flags*: int32 @@ -551,14 +617,25 @@ ai_canonname*: PWSTR ai_addr*: ptr sockaddr ai_next*: ptr ADDRINFOW + PADDRINFOW* = ptr ADDRINFOW ADDRINFO* = ADDRINFOA LPADDRINFO* = ptr ADDRINFOA - LPFN_GETADDRINFO* = proc (nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA): int32 {.stdcall.} + LPFN_GETADDRINFO* = proc( + nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA + ): int32 {.stdcall.} LPFN_GETADDRINFOA* = LPFN_GETADDRINFO - LPFN_FREEADDRINFO* = proc (ai: ptr ADDRINFOA): void {.stdcall.} + LPFN_FREEADDRINFO* = proc(ai: ptr ADDRINFOA): void {.stdcall.} LPFN_FREEADDRINFOA* = LPFN_FREEADDRINFO - LPFN_GETNAMEINFO* = proc (sa: ptr sockaddr, salen: socklen_t, host: ptr char, hostlen: DWORD, serv: ptr char, servlen: DWORD, flags: int32): int32 {.stdcall.} + LPFN_GETNAMEINFO* = proc( + sa: ptr sockaddr, + salen: socklen_t, + host: ptr char, + hostlen: DWORD, + serv: ptr char, + servlen: DWORD, + flags: int32, + ): int32 {.stdcall.} LPFN_GETNAMEINFOA* = LPFN_GETNAMEINFO ADDRINFOEXA* {.pure.} = object ai_flags*: int32 @@ -572,6 +649,7 @@ ai_bloblen*: int ai_provider*: LPGUID ai_next*: ptr ADDRINFOEXA + PADDRINFOEXA* = ptr ADDRINFOEXA ADDRINFOEXW* {.pure.} = object ai_flags*: int32 @@ -585,62 +663,76 @@ ai_bloblen*: int ai_provider*: LPGUID ai_next*: ptr ADDRINFOEXW + PADDRINFOEXW* = ptr ADDRINFOEXW TRANSMIT_FILE_BUFFERS* {.pure.} = object Head*: LPVOID HeadLength*: DWORD Tail*: LPVOID TailLength*: DWORD + PTRANSMIT_FILE_BUFFERS* = ptr TRANSMIT_FILE_BUFFERS LPTRANSMIT_FILE_BUFFERS* = ptr TRANSMIT_FILE_BUFFERS TRANSMIT_PACKETS_ELEMENT_UNION1_STRUCT1* {.pure.} = object nFileOffset*: LARGE_INTEGER hFile*: HANDLE + TRANSMIT_PACKETS_ELEMENT_UNION1* {.pure, union.} = object struct1*: TRANSMIT_PACKETS_ELEMENT_UNION1_STRUCT1 pBuffer*: PVOID + TRANSMIT_PACKETS_ELEMENT* {.pure.} = object dwElFlags*: ULONG cLength*: ULONG union1*: TRANSMIT_PACKETS_ELEMENT_UNION1 + PTRANSMIT_PACKETS_ELEMENT* = ptr TRANSMIT_PACKETS_ELEMENT LPTRANSMIT_PACKETS_ELEMENT* = ptr TRANSMIT_PACKETS_ELEMENT NLA_BLOB_header* {.pure.} = object `type`*: NLA_BLOB_DATA_TYPE dwSize*: DWORD nextOffset*: DWORD + NLA_BLOB_data_interfaceData* {.pure.} = object dwType*: DWORD dwSpeed*: DWORD adapterName*: array[1, CHAR] + NLA_BLOB_data_locationData* {.pure.} = object information*: array[1, CHAR] + NLA_BLOB_data_connectivity* {.pure.} = object `type`*: NLA_CONNECTIVITY_TYPE internet*: NLA_INTERNET + NLA_BLOB_data_ICS_remote* {.pure.} = object speed*: DWORD `type`*: DWORD state*: DWORD machineName*: array[256, WCHAR] sharedAdapterName*: array[256, WCHAR] + NLA_BLOB_data_ICS* {.pure.} = object remote*: NLA_BLOB_data_ICS_remote + NLA_BLOB_data* {.pure, union.} = object rawData*: array[1, CHAR] interfaceData*: NLA_BLOB_data_interfaceData locationData*: NLA_BLOB_data_locationData connectivity*: NLA_BLOB_data_connectivity ICS*: NLA_BLOB_data_ICS + NLA_BLOB* {.pure.} = object header*: NLA_BLOB_header data*: NLA_BLOB_data + PNLA_BLOB* = ptr NLA_BLOB LPNLA_BLOB* = ptr NLA_BLOB WSACMSGHDR* {.pure.} = object cmsg_len*: SIZE_T cmsg_level*: INT cmsg_type*: INT + PWSACMSGHDR* = ptr WSACMSGHDR LPWSACMSGHDR* = ptr WSACMSGHDR WSAPOLLDATA* {.pure.} = object @@ -648,6 +740,7 @@ fds*: ULONG timeout*: INT fdArray*: UncheckedArray[WSAPOLLFD] + LPWSAPOLLDATA* = ptr WSAPOLLDATA TWSASENDMSG* {.pure.} = object lpMsg*: LPWSAMSG @@ -655,22 +748,21 @@ lpNumberOfBytesSent*: LPDWORD lpOverlapped*: LPWSAOVERLAPPED lpCompletionRoutine*: LPWSAOVERLAPPED_COMPLETION_ROUTINE + LPWSASENDMSG* = ptr TWSASENDMSG addrinfo* = ADDRINFOA addrinfoW* = ADDRINFOW addrinfoExA* = ADDRINFOEXA addrinfoExW* = ADDRINFOEXW + when winimUnicode: - type - addrinfoEx* = addrinfoExW + type addrinfoEx* = addrinfoExW when winimAnsi: - type - addrinfoEx* = addrinfoExA -type - ADDRINFOEX* = addrinfoEx + type addrinfoEx* = addrinfoExA +type ADDRINFOEX* = addrinfoEx const INCL_WINSOCK_API_TYPEDEFS* = 0 - WINSOCK_VERSION* = MAKEWORD(2,2) + WINSOCK_VERSION* = MAKEWORD(2, 2) SOCKET_ERROR* = -1 scopeLevelInterface* = 1 scopeLevelLink* = 2 @@ -879,7 +971,7 @@ FD_ROUTING_INTERFACE_CHANGE* = 1 shl FD_ROUTING_INTERFACE_CHANGE_BIT FD_ADDRESS_LIST_CHANGE_BIT* = 9 FD_ADDRESS_LIST_CHANGE* = 1 shl FD_ADDRESS_LIST_CHANGE_BIT - FD_ALL_EVENTS* = (1 shl FD_MAX_EVENTS)-1 + FD_ALL_EVENTS* = (1 shl FD_MAX_EVENTS) - 1 WSA_IO_PENDING* = ERROR_IO_PENDING WSA_IO_INCOMPLETE* = ERROR_IO_INCOMPLETE WSA_INVALID_HANDLE* = ERROR_INVALID_HANDLE @@ -911,10 +1003,10 @@ QOS_NOT_SPECIFIED* = 0xFFFFFFFF'i32 POSITIVE_INFINITY_RATE* = 0xFFFFFFFE'i32 QOS_GENERAL_ID_BASE* = 2000 - QOS_OBJECT_END_OF_LIST* = 0x00000001+QOS_GENERAL_ID_BASE - QOS_OBJECT_SD_MODE* = 0x00000002+QOS_GENERAL_ID_BASE - QOS_OBJECT_SHAPING_RATE* = 0x00000003+QOS_GENERAL_ID_BASE - QOS_OBJECT_DESTADDR* = 0x00000004+QOS_GENERAL_ID_BASE + QOS_OBJECT_END_OF_LIST* = 0x00000001 + QOS_GENERAL_ID_BASE + QOS_OBJECT_SD_MODE* = 0x00000002 + QOS_GENERAL_ID_BASE + QOS_OBJECT_SHAPING_RATE* = 0x00000003 + QOS_GENERAL_ID_BASE + QOS_OBJECT_DESTADDR* = 0x00000004 + QOS_GENERAL_ID_BASE TC_NONCONF_BORROW* = 0 TC_NONCONF_SHAPE* = 1 TC_NONCONF_DISCARD* = 2 @@ -1260,187 +1352,590 @@ SIO_BASE_HANDLE* = 0x48000022'i32 INVALID_SOCKET* = SOCKET(-1) WSA_INVALID_EVENT* = WSAEVENT 0 - IN6ADDR_ANY_INIT* = IN6_ADDR(Byte: [0'u8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]) - IN6ADDR_LOOPBACK_INIT* = IN6_ADDR(Byte: [0'u8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]) - WSAID_TRANSMITFILE* = DEFINE_GUID(0xb5367df0'i32, 0xcbac, 0x11cf, [0x95'u8, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92]) - WSAID_ACCEPTEX* = DEFINE_GUID(0xb5367df1'i32, 0xcbac, 0x11cf, [0x95'u8, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92]) - WSAID_GETACCEPTEXSOCKADDRS* = DEFINE_GUID(0xb5367df2'i32, 0xcbac, 0x11cf, [0x95'u8, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92]) - WSAID_TRANSMITPACKETS* = DEFINE_GUID(0xd9689da0'i32, 0x1f90, 0x11d3, [0x99'u8, 0x71, 0x00, 0xc0, 0x4f, 0x68, 0xc8, 0x76]) - WSAID_CONNECTEX* = DEFINE_GUID(0x25a207b9'i32, 0xddf3, 0x4660, [0x8e'u8, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e]) - WSAID_DISCONNECTEX* = DEFINE_GUID(0x7fda2e11'i32, 0x8630, 0x436f, [0xa0'u8, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57]) - NLA_NAMESPACE_GUID* = DEFINE_GUID(0x6642243a'i32, 0x3ba8, 0x4aa6, [0xba'u8, 0xa5, 0x2e, 0xb, 0xd7, 0x1f, 0xdd, 0x83]) - NLA_SERVICE_CLASS_GUID* = DEFINE_GUID(0x37e515'i32, 0xb5c9, 0x4a43, [0xba'u8, 0xda, 0x8b, 0x48, 0xa8, 0x7a, 0xd2, 0x39]) - WSAID_WSARECVMSG* = DEFINE_GUID(0xf689d7c8'i32, 0x6f1f, 0x436b, [0x8a'u8, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22]) - WSAID_WSAPOLL* = DEFINE_GUID(0x18C76F85'i32, 0xDC66, 0x4964, [0x97'u8, 0x2E, 0x23, 0xC2, 0x72, 0x38, 0x31, 0x2B]) - WSAID_WSASENDMSG* = DEFINE_GUID(0xa441e712'i32, 0x754f, 0x43ca, [0x84'u8, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d]) + IN6ADDR_ANY_INIT* = + IN6_ADDR(Byte: [0'u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) + IN6ADDR_LOOPBACK_INIT* = + IN6_ADDR(Byte: [0'u8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]) + WSAID_TRANSMITFILE* = DEFINE_GUID( + 0xb5367df0'i32, 0xcbac, 0x11cf, [0x95'u8, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92] + ) + WSAID_ACCEPTEX* = DEFINE_GUID( + 0xb5367df1'i32, 0xcbac, 0x11cf, [0x95'u8, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92] + ) + WSAID_GETACCEPTEXSOCKADDRS* = DEFINE_GUID( + 0xb5367df2'i32, 0xcbac, 0x11cf, [0x95'u8, 0xca, 0x00, 0x80, 0x5f, 0x48, 0xa1, 0x92] + ) + WSAID_TRANSMITPACKETS* = DEFINE_GUID( + 0xd9689da0'i32, 0x1f90, 0x11d3, [0x99'u8, 0x71, 0x00, 0xc0, 0x4f, 0x68, 0xc8, 0x76] + ) + WSAID_CONNECTEX* = DEFINE_GUID( + 0x25a207b9'i32, 0xddf3, 0x4660, [0x8e'u8, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e] + ) + WSAID_DISCONNECTEX* = DEFINE_GUID( + 0x7fda2e11'i32, 0x8630, 0x436f, [0xa0'u8, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57] + ) + NLA_NAMESPACE_GUID* = DEFINE_GUID( + 0x6642243a'i32, 0x3ba8, 0x4aa6, [0xba'u8, 0xa5, 0x2e, 0xb, 0xd7, 0x1f, 0xdd, 0x83] + ) + NLA_SERVICE_CLASS_GUID* = DEFINE_GUID( + 0x37e515'i32, 0xb5c9, 0x4a43, [0xba'u8, 0xda, 0x8b, 0x48, 0xa8, 0x7a, 0xd2, 0x39] + ) + WSAID_WSARECVMSG* = DEFINE_GUID( + 0xf689d7c8'i32, 0x6f1f, 0x436b, [0x8a'u8, 0x53, 0xe5, 0x4f, 0xe3, 0x51, 0xc3, 0x22] + ) + WSAID_WSAPOLL* = DEFINE_GUID( + 0x18C76F85'i32, 0xDC66, 0x4964, [0x97'u8, 0x2E, 0x23, 0xC2, 0x72, 0x38, 0x31, 0x2B] + ) + WSAID_WSASENDMSG* = DEFINE_GUID( + 0xa441e712'i32, 0x754f, 0x43ca, [0x84'u8, 0xa7, 0x0d, 0xee, 0x44, 0xcf, 0x60, 0x6d] + ) type - LPCONDITIONPROC* = proc (lpCallerId: LPWSABUF, lpCallerData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, lpCalleeId: LPWSABUF, lpCalleeData: LPWSABUF, g: ptr GROUP, dwCallbackData: DWORD_PTR): int32 {.stdcall.} - LPFN_ACCEPT* = proc (s: SOCKET, `addr`: ptr sockaddr, addrlen: ptr int32): SOCKET {.stdcall.} - LPFN_BIND* = proc (s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.stdcall.} - LPFN_CLOSESOCKET* = proc (s: SOCKET): int32 {.stdcall.} - LPFN_CONNECT* = proc (s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.stdcall.} - LPFN_IOCTLSOCKET* = proc (s: SOCKET, cmd: int32, argp: ptr int32): int32 {.stdcall.} - LPFN_GETPEERNAME* = proc (s: SOCKET, name: ptr sockaddr, namelen: ptr int32): int32 {.stdcall.} - LPFN_GETSOCKNAME* = proc (s: SOCKET, name: ptr sockaddr, namelen: ptr int32): int32 {.stdcall.} - LPFN_GETSOCKOPT* = proc (s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: ptr int32): int32 {.stdcall.} - LPFN_HTONL* = proc (hostlong: int32): int32 {.stdcall.} - LPFN_HTONS* = proc (hostshort: uint16): uint16 {.stdcall.} - LPFN_INET_ADDR* = proc (cp: ptr char): int32 {.stdcall.} - LPFN_INET_NTOA* = proc (`in`: IN_ADDR): ptr char {.stdcall.} - LPFN_LISTEN* = proc (s: SOCKET, backlog: int32): int32 {.stdcall.} - LPFN_NTOHL* = proc (netlong: int32): int32 {.stdcall.} - LPFN_NTOHS* = proc (netshort: uint16): uint16 {.stdcall.} - LPFN_RECV* = proc (s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.stdcall.} - LPFN_RECVFROM* = proc (s: SOCKET, buf: ptr char, len: int32, flags: int32, `from`: ptr sockaddr, fromlen: ptr int32): int32 {.stdcall.} - LPFN_SELECT* = proc (nfds: int32, readfds: ptr fd_set, writefds: ptr fd_set, exceptfds: ptr fd_set, timeout: PTIMEVAL): int32 {.stdcall.} - LPFN_SEND* = proc (s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.stdcall.} - LPFN_SENDTO* = proc (s: SOCKET, buf: ptr char, len: int32, flags: int32, to: ptr sockaddr, tolen: int32): int32 {.stdcall.} - LPFN_SETSOCKOPT* = proc (s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: int32): int32 {.stdcall.} - LPFN_SHUTDOWN* = proc (s: SOCKET, how: int32): int32 {.stdcall.} - LPFN_SOCKET* = proc (af: int32, `type`: int32, protocol: int32): SOCKET {.stdcall.} - LPFN_GETHOSTBYADDR* = proc (`addr`: ptr char, len: int32, `type`: int32): ptr hostent {.stdcall.} - LPFN_GETHOSTBYNAME* = proc (name: ptr char): ptr hostent {.stdcall.} - LPFN_GETHOSTNAME* = proc (name: ptr char, namelen: int32): int32 {.stdcall.} - LPFN_GETSERVBYPORT* = proc (port: int32, proto: ptr char): ptr servent {.stdcall.} - LPFN_GETSERVBYNAME* = proc (name: ptr char, proto: ptr char): ptr servent {.stdcall.} - LPFN_GETPROTOBYNUMBER* = proc (number: int32): ptr protoent {.stdcall.} - LPFN_GETPROTOBYNAME* = proc (name: ptr char): ptr protoent {.stdcall.} - LPFN_WSASTARTUP* = proc (wVersionRequested: WORD, lpWSAData: LPWSADATA): int32 {.stdcall.} - LPFN_WSACLEANUP* = proc (): int32 {.stdcall.} - LPFN_WSASETLASTERROR* = proc (iError: int32): void {.stdcall.} - LPFN_WSAGETLASTERROR* = proc (): int32 {.stdcall.} - LPFN_WSAISBLOCKING* = proc (): WINBOOL {.stdcall.} - LPFN_WSAUNHOOKBLOCKINGHOOK* = proc (): int32 {.stdcall.} - LPFN_WSASETBLOCKINGHOOK* = proc (lpBlockFunc: FARPROC): FARPROC {.stdcall.} - LPFN_WSACANCELBLOCKINGCALL* = proc (): int32 {.stdcall.} - LPFN_WSAASYNCGETSERVBYNAME* = proc (hWnd: HWND, wMsg: int32, name: ptr char, proto: ptr char, buf: ptr char, buflen: int32): HANDLE {.stdcall.} - LPFN_WSAASYNCGETSERVBYPORT* = proc (hWnd: HWND, wMsg: int32, port: int32, proto: ptr char, buf: ptr char, buflen: int32): HANDLE {.stdcall.} - LPFN_WSAASYNCGETPROTOBYNAME* = proc (hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32): HANDLE {.stdcall.} - LPFN_WSAASYNCGETPROTOBYNUMBER* = proc (hWnd: HWND, wMsg: int32, number: int32, buf: ptr char, buflen: int32): HANDLE {.stdcall.} - LPFN_WSAASYNCGETHOSTBYNAME* = proc (hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32): HANDLE {.stdcall.} - LPFN_WSAASYNCGETHOSTBYADDR* = proc (hWnd: HWND, wMsg: int32, `addr`: ptr char, len: int32, `type`: int32, buf: ptr char, buflen: int32): HANDLE {.stdcall.} - LPFN_WSACANCELASYNCREQUEST* = proc (hAsyncTaskHandle: HANDLE): int32 {.stdcall.} - LPFN_WSAASYNCSELECT* = proc (s: SOCKET, hWnd: HWND, wMsg: int32, lEvent: int32): int32 {.stdcall.} - LPFN_WSAACCEPT* = proc (s: SOCKET, `addr`: ptr sockaddr, addrlen: LPINT, lpfnCondition: LPCONDITIONPROC, dwCallbackData: DWORD_PTR): SOCKET {.stdcall.} - LPFN_WSACLOSEEVENT* = proc (hEvent: WSAEVENT): WINBOOL {.stdcall.} - LPFN_WSACONNECT* = proc (s: SOCKET, name: ptr sockaddr, namelen: int32, lpCallerData: LPWSABUF, lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS): int32 {.stdcall.} - LPFN_WSACREATEEVENT* = proc (): WSAEVENT {.stdcall.} - LPFN_WSADUPLICATESOCKETA* = proc (s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA): int32 {.stdcall.} - LPFN_WSADUPLICATESOCKETW* = proc (s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW): int32 {.stdcall.} - LPFN_WSAENUMNETWORKEVENTS* = proc (s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS): int32 {.stdcall.} - LPFN_WSAENUMPROTOCOLSA* = proc (lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOA, lpdwBufferLength: LPDWORD): int32 {.stdcall.} - LPFN_WSAENUMPROTOCOLSW* = proc (lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD): int32 {.stdcall.} - LPFN_WSAEVENTSELECT* = proc (s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: int32): int32 {.stdcall.} - LPFN_WSAGETOVERLAPPEDRESULT* = proc (s: SOCKET, lpOverlapped: LPWSAOVERLAPPED, lpcbTransfer: LPDWORD, fWait: WINBOOL, lpdwFlags: LPDWORD): WINBOOL {.stdcall.} - LPFN_WSAGETQOSBYNAME* = proc (s: SOCKET, lpQOSName: LPWSABUF, lpQOS: LPQOS): WINBOOL {.stdcall.} - LPFN_WSAHTONL* = proc (s: SOCKET, hostlong: int32, lpnetlong: ptr int32): int32 {.stdcall.} - LPFN_WSAHTONS* = proc (s: SOCKET, hostshort: uint16, lpnetshort: ptr uint16): int32 {.stdcall.} - LPFN_WSAIOCTL* = proc (s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.stdcall.} - LPFN_WSAJOINLEAF* = proc (s: SOCKET, name: ptr sockaddr, namelen: int32, lpCallerData: LPWSABUF, lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, dwFlags: DWORD): SOCKET {.stdcall.} - LPFN_WSANTOHL* = proc (s: SOCKET, netlong: int32, lphostlong: ptr int32): int32 {.stdcall.} - LPFN_WSANTOHS* = proc (s: SOCKET, netshort: uint16, lphostshort: ptr uint16): int32 {.stdcall.} - LPFN_WSARECV* = proc (s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, lpFlags: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.stdcall.} - LPFN_WSARECVDISCONNECT* = proc (s: SOCKET, lpInboundDisconnectData: LPWSABUF): int32 {.stdcall.} - LPFN_WSARECVFROM* = proc (s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, lpFlags: LPDWORD, lpFrom: ptr sockaddr, lpFromlen: LPINT, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.stdcall.} - LPFN_WSARESETEVENT* = proc (hEvent: WSAEVENT): WINBOOL {.stdcall.} - LPFN_WSASEND* = proc (s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, dwFlags: DWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.stdcall.} - LPFN_WSASENDDISCONNECT* = proc (s: SOCKET, lpOutboundDisconnectData: LPWSABUF): int32 {.stdcall.} - LPFN_WSASENDTO* = proc (s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, dwFlags: DWORD, lpTo: ptr sockaddr, iTolen: int32, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.stdcall.} - LPFN_WSASETEVENT* = proc (hEvent: WSAEVENT): WINBOOL {.stdcall.} - LPFN_WSASOCKETA* = proc (af: int32, `type`: int32, protocol: int32, lpProtocolInfo: LPWSAPROTOCOL_INFOA, g: GROUP, dwFlags: DWORD): SOCKET {.stdcall.} - LPFN_WSASOCKETW* = proc (af: int32, `type`: int32, protocol: int32, lpProtocolInfo: LPWSAPROTOCOL_INFOW, g: GROUP, dwFlags: DWORD): SOCKET {.stdcall.} - LPFN_WSAWAITFORMULTIPLEEVENTS* = proc (cEvents: DWORD, lphEvents: ptr WSAEVENT, fWaitAll: WINBOOL, dwTimeout: DWORD, fAlertable: WINBOOL): DWORD {.stdcall.} - LPFN_WSAADDRESSTOSTRINGA* = proc (lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpszAddressString: LPSTR, lpdwAddressStringLength: LPDWORD): INT {.stdcall.} - LPFN_WSAADDRESSTOSTRINGW* = proc (lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpszAddressString: LPWSTR, lpdwAddressStringLength: LPDWORD): INT {.stdcall.} - LPFN_WSASTRINGTOADDRESSA* = proc (AddressString: LPSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpAddress: LPSOCKADDR, lpAddressLength: LPINT): INT {.stdcall.} - LPFN_WSASTRINGTOADDRESSW* = proc (AddressString: LPWSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpAddress: LPSOCKADDR, lpAddressLength: LPINT): INT {.stdcall.} - LPFN_WSALOOKUPSERVICEBEGINA* = proc (lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE): INT {.stdcall.} - LPFN_WSALOOKUPSERVICEBEGINW* = proc (lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE): INT {.stdcall.} - LPFN_WSALOOKUPSERVICENEXTA* = proc (hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETA): INT {.stdcall.} - LPFN_WSALOOKUPSERVICENEXTW* = proc (hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETW): INT {.stdcall.} - LPFN_WSANSPIOCTL* = proc (hLookup: HANDLE, dwControlCode: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, lpCompletion: LPWSACOMPLETION): INT {.stdcall.} - LPFN_WSALOOKUPSERVICEEND* = proc (hLookup: HANDLE): INT {.stdcall.} - LPFN_WSAINSTALLSERVICECLASSA* = proc (lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.stdcall.} - LPFN_WSAINSTALLSERVICECLASSW* = proc (lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.stdcall.} - LPFN_WSAREMOVESERVICECLASS* = proc (lpServiceClassId: LPGUID): INT {.stdcall.} - LPFN_WSAGETSERVICECLASSINFOA* = proc (lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.stdcall.} - LPFN_WSAGETSERVICECLASSINFOW* = proc (lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.stdcall.} - LPFN_WSAENUMNAMESPACEPROVIDERSA* = proc (lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA): INT {.stdcall.} - LPFN_WSAENUMNAMESPACEPROVIDERSW* = proc (lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW): INT {.stdcall.} - LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA* = proc (lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD): INT {.stdcall.} - LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW* = proc (lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD): INT {.stdcall.} - LPFN_WSASETSERVICEA* = proc (lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD): INT {.stdcall.} - LPFN_WSASETSERVICEW* = proc (lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD): INT {.stdcall.} - LPFN_WSAPROVIDERCONFIGCHANGE* = proc (lpNotificationHandle: LPHANDLE, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): INT {.stdcall.} - LPFN_GETADDRINFOW* = proc (pNodeName: PCWSTR, pServiceName: PCWSTR, pHints: ptr ADDRINFOW, ppResult: ptr PADDRINFOW): int32 {.stdcall.} - LPFN_FREEADDRINFOW* = proc (pAddrInfo: PADDRINFOW): void {.stdcall.} - LPFN_GETNAMEINFOW* = proc (pSockaddr: ptr SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PWCHAR, NodeBufferSize: DWORD, pServiceBuffer: PWCHAR, ServiceBufferSize: DWORD, Flags: INT): INT {.stdcall.} - LPFN_GETADDRINFOEXA* = proc (pName: PCSTR, pServiceName: PCSTR, dwNameSpace: DWORD, lpNspId: LPGUID, pHints: ptr ADDRINFOEXA, ppResult: ptr PADDRINFOEXA, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.stdcall.} - LPFN_GETADDRINFOEXW* = proc (pName: PCWSTR, pServiceName: PCWSTR, dwNameSpace: DWORD, lpNspId: LPGUID, pHints: ptr ADDRINFOEXW, ppResult: ptr PADDRINFOEXW, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.stdcall.} - LPFN_SETADDRINFOEXA* = proc (pName: PCSTR, pServiceName: PCSTR, pAddresses: ptr SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.stdcall.} - LPFN_SETADDRINFOEXW* = proc (pName: PCWSTR, pServiceName: PCWSTR, pAddresses: ptr SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.stdcall.} - LPFN_FREEADDRINFOEXA* = proc (pAddrInfo: PADDRINFOEXA): void {.stdcall.} - LPFN_FREEADDRINFOEXW* = proc (pAddrInfo: PADDRINFOEXW): void {.stdcall.} - LPFN_TRANSMITFILE* = proc (hSocket: SOCKET, hFile: HANDLE, nNumberOfBytesToWrite: DWORD, nNumberOfBytesPerSend: DWORD, lpOverlapped: LPOVERLAPPED, lpTransmitBuffers: LPTRANSMIT_FILE_BUFFERS, dwReserved: DWORD): WINBOOL {.stdcall.} - LPFN_ACCEPTEX* = proc (sListenSocket: SOCKET, sAcceptSocket: SOCKET, lpOutputBuffer: PVOID, dwReceiveDataLength: DWORD, dwLocalAddressLength: DWORD, dwRemoteAddressLength: DWORD, lpdwBytesReceived: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.stdcall.} - LPFN_GETACCEPTEXSOCKADDRS* = proc (lpOutputBuffer: PVOID, dwReceiveDataLength: DWORD, dwLocalAddressLength: DWORD, dwRemoteAddressLength: DWORD, LocalSockaddr: ptr ptr sockaddr, LocalSockaddrLength: LPINT, RemoteSockaddr: ptr ptr sockaddr, RemoteSockaddrLength: LPINT): VOID {.stdcall.} - LPFN_TRANSMITPACKETS* = proc (hSocket: SOCKET, lpPacketArray: LPTRANSMIT_PACKETS_ELEMENT, nElementCount: DWORD, nSendSize: DWORD, lpOverlapped: LPOVERLAPPED, dwFlags: DWORD): WINBOOL {.stdcall.} - LPFN_CONNECTEX* = proc (s: SOCKET, name: ptr sockaddr, namelen: int32, lpSendBuffer: PVOID, dwSendDataLength: DWORD, lpdwBytesSent: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.stdcall.} - LPFN_DISCONNECTEX* = proc (s: SOCKET, lpOverlapped: LPOVERLAPPED, dwFlags: DWORD, dwReserved: DWORD): WINBOOL {.stdcall.} - LPFN_WSARECVMSG* = proc (s: SOCKET, lpMsg: LPWSAMSG, lpdwNumberOfBytesRecvd: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): INT {.stdcall.} - LPFN_WSAPOLL* = proc (fdarray: LPWSAPOLLFD, nfds: ULONG, timeout: INT): INT {.stdcall.} - LPFN_WSASENDMSG* = proc (s: SOCKET, lpMsg: LPWSAMSG, dwFlags: DWORD, lpNumberOfBytesSent: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): INT {.stdcall.} + LPCONDITIONPROC* = proc( + lpCallerId: LPWSABUF, + lpCallerData: LPWSABUF, + lpSQOS: LPQOS, + lpGQOS: LPQOS, + lpCalleeId: LPWSABUF, + lpCalleeData: LPWSABUF, + g: ptr GROUP, + dwCallbackData: DWORD_PTR, + ): int32 {.stdcall.} + LPFN_ACCEPT* = + proc(s: SOCKET, `addr`: ptr sockaddr, addrlen: ptr int32): SOCKET {.stdcall.} + LPFN_BIND* = proc(s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.stdcall.} + LPFN_CLOSESOCKET* = proc(s: SOCKET): int32 {.stdcall.} + LPFN_CONNECT* = proc(s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.stdcall.} + LPFN_IOCTLSOCKET* = proc(s: SOCKET, cmd: int32, argp: ptr int32): int32 {.stdcall.} + LPFN_GETPEERNAME* = + proc(s: SOCKET, name: ptr sockaddr, namelen: ptr int32): int32 {.stdcall.} + LPFN_GETSOCKNAME* = + proc(s: SOCKET, name: ptr sockaddr, namelen: ptr int32): int32 {.stdcall.} + LPFN_GETSOCKOPT* = proc( + s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: ptr int32 + ): int32 {.stdcall.} + LPFN_HTONL* = proc(hostlong: int32): int32 {.stdcall.} + LPFN_HTONS* = proc(hostshort: uint16): uint16 {.stdcall.} + LPFN_INET_ADDR* = proc(cp: ptr char): int32 {.stdcall.} + LPFN_INET_NTOA* = proc(`in`: IN_ADDR): ptr char {.stdcall.} + LPFN_LISTEN* = proc(s: SOCKET, backlog: int32): int32 {.stdcall.} + LPFN_NTOHL* = proc(netlong: int32): int32 {.stdcall.} + LPFN_NTOHS* = proc(netshort: uint16): uint16 {.stdcall.} + LPFN_RECV* = + proc(s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.stdcall.} + LPFN_RECVFROM* = proc( + s: SOCKET, + buf: ptr char, + len: int32, + flags: int32, + `from`: ptr sockaddr, + fromlen: ptr int32, + ): int32 {.stdcall.} + LPFN_SELECT* = proc( + nfds: int32, + readfds: ptr fd_set, + writefds: ptr fd_set, + exceptfds: ptr fd_set, + timeout: PTIMEVAL, + ): int32 {.stdcall.} + LPFN_SEND* = + proc(s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.stdcall.} + LPFN_SENDTO* = proc( + s: SOCKET, buf: ptr char, len: int32, flags: int32, to: ptr sockaddr, tolen: int32 + ): int32 {.stdcall.} + LPFN_SETSOCKOPT* = proc( + s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: int32 + ): int32 {.stdcall.} + LPFN_SHUTDOWN* = proc(s: SOCKET, how: int32): int32 {.stdcall.} + LPFN_SOCKET* = proc(af: int32, `type`: int32, protocol: int32): SOCKET {.stdcall.} + LPFN_GETHOSTBYADDR* = + proc(`addr`: ptr char, len: int32, `type`: int32): ptr hostent {.stdcall.} + LPFN_GETHOSTBYNAME* = proc(name: ptr char): ptr hostent {.stdcall.} + LPFN_GETHOSTNAME* = proc(name: ptr char, namelen: int32): int32 {.stdcall.} + LPFN_GETSERVBYPORT* = proc(port: int32, proto: ptr char): ptr servent {.stdcall.} + LPFN_GETSERVBYNAME* = proc(name: ptr char, proto: ptr char): ptr servent {.stdcall.} + LPFN_GETPROTOBYNUMBER* = proc(number: int32): ptr protoent {.stdcall.} + LPFN_GETPROTOBYNAME* = proc(name: ptr char): ptr protoent {.stdcall.} + LPFN_WSASTARTUP* = + proc(wVersionRequested: WORD, lpWSAData: LPWSADATA): int32 {.stdcall.} + LPFN_WSACLEANUP* = proc(): int32 {.stdcall.} + LPFN_WSASETLASTERROR* = proc(iError: int32): void {.stdcall.} + LPFN_WSAGETLASTERROR* = proc(): int32 {.stdcall.} + LPFN_WSAISBLOCKING* = proc(): WINBOOL {.stdcall.} + LPFN_WSAUNHOOKBLOCKINGHOOK* = proc(): int32 {.stdcall.} + LPFN_WSASETBLOCKINGHOOK* = proc(lpBlockFunc: FARPROC): FARPROC {.stdcall.} + LPFN_WSACANCELBLOCKINGCALL* = proc(): int32 {.stdcall.} + LPFN_WSAASYNCGETSERVBYNAME* = proc( + hWnd: HWND, + wMsg: int32, + name: ptr char, + proto: ptr char, + buf: ptr char, + buflen: int32, + ): HANDLE {.stdcall.} + LPFN_WSAASYNCGETSERVBYPORT* = proc( + hWnd: HWND, wMsg: int32, port: int32, proto: ptr char, buf: ptr char, buflen: int32 + ): HANDLE {.stdcall.} + LPFN_WSAASYNCGETPROTOBYNAME* = proc( + hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32 + ): HANDLE {.stdcall.} + LPFN_WSAASYNCGETPROTOBYNUMBER* = proc( + hWnd: HWND, wMsg: int32, number: int32, buf: ptr char, buflen: int32 + ): HANDLE {.stdcall.} + LPFN_WSAASYNCGETHOSTBYNAME* = proc( + hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32 + ): HANDLE {.stdcall.} + LPFN_WSAASYNCGETHOSTBYADDR* = proc( + hWnd: HWND, + wMsg: int32, + `addr`: ptr char, + len: int32, + `type`: int32, + buf: ptr char, + buflen: int32, + ): HANDLE {.stdcall.} + LPFN_WSACANCELASYNCREQUEST* = proc(hAsyncTaskHandle: HANDLE): int32 {.stdcall.} + LPFN_WSAASYNCSELECT* = + proc(s: SOCKET, hWnd: HWND, wMsg: int32, lEvent: int32): int32 {.stdcall.} + LPFN_WSAACCEPT* = proc( + s: SOCKET, + `addr`: ptr sockaddr, + addrlen: LPINT, + lpfnCondition: LPCONDITIONPROC, + dwCallbackData: DWORD_PTR, + ): SOCKET {.stdcall.} + LPFN_WSACLOSEEVENT* = proc(hEvent: WSAEVENT): WINBOOL {.stdcall.} + LPFN_WSACONNECT* = proc( + s: SOCKET, + name: ptr sockaddr, + namelen: int32, + lpCallerData: LPWSABUF, + lpCalleeData: LPWSABUF, + lpSQOS: LPQOS, + lpGQOS: LPQOS, + ): int32 {.stdcall.} + LPFN_WSACREATEEVENT* = proc(): WSAEVENT {.stdcall.} + LPFN_WSADUPLICATESOCKETA* = proc( + s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA + ): int32 {.stdcall.} + LPFN_WSADUPLICATESOCKETW* = proc( + s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW + ): int32 {.stdcall.} + LPFN_WSAENUMNETWORKEVENTS* = proc( + s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS + ): int32 {.stdcall.} + LPFN_WSAENUMPROTOCOLSA* = proc( + lpiProtocols: LPINT, + lpProtocolBuffer: LPWSAPROTOCOL_INFOA, + lpdwBufferLength: LPDWORD, + ): int32 {.stdcall.} + LPFN_WSAENUMPROTOCOLSW* = proc( + lpiProtocols: LPINT, + lpProtocolBuffer: LPWSAPROTOCOL_INFOW, + lpdwBufferLength: LPDWORD, + ): int32 {.stdcall.} + LPFN_WSAEVENTSELECT* = + proc(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: int32): int32 {.stdcall.} + LPFN_WSAGETOVERLAPPEDRESULT* = proc( + s: SOCKET, + lpOverlapped: LPWSAOVERLAPPED, + lpcbTransfer: LPDWORD, + fWait: WINBOOL, + lpdwFlags: LPDWORD, + ): WINBOOL {.stdcall.} + LPFN_WSAGETQOSBYNAME* = + proc(s: SOCKET, lpQOSName: LPWSABUF, lpQOS: LPQOS): WINBOOL {.stdcall.} + LPFN_WSAHTONL* = + proc(s: SOCKET, hostlong: int32, lpnetlong: ptr int32): int32 {.stdcall.} + LPFN_WSAHTONS* = + proc(s: SOCKET, hostshort: uint16, lpnetshort: ptr uint16): int32 {.stdcall.} + LPFN_WSAIOCTL* = proc( + s: SOCKET, + dwIoControlCode: DWORD, + lpvInBuffer: LPVOID, + cbInBuffer: DWORD, + lpvOutBuffer: LPVOID, + cbOutBuffer: DWORD, + lpcbBytesReturned: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): int32 {.stdcall.} + LPFN_WSAJOINLEAF* = proc( + s: SOCKET, + name: ptr sockaddr, + namelen: int32, + lpCallerData: LPWSABUF, + lpCalleeData: LPWSABUF, + lpSQOS: LPQOS, + lpGQOS: LPQOS, + dwFlags: DWORD, + ): SOCKET {.stdcall.} + LPFN_WSANTOHL* = + proc(s: SOCKET, netlong: int32, lphostlong: ptr int32): int32 {.stdcall.} + LPFN_WSANTOHS* = + proc(s: SOCKET, netshort: uint16, lphostshort: ptr uint16): int32 {.stdcall.} + LPFN_WSARECV* = proc( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesRecvd: LPDWORD, + lpFlags: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): int32 {.stdcall.} + LPFN_WSARECVDISCONNECT* = + proc(s: SOCKET, lpInboundDisconnectData: LPWSABUF): int32 {.stdcall.} + LPFN_WSARECVFROM* = proc( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesRecvd: LPDWORD, + lpFlags: LPDWORD, + lpFrom: ptr sockaddr, + lpFromlen: LPINT, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): int32 {.stdcall.} + LPFN_WSARESETEVENT* = proc(hEvent: WSAEVENT): WINBOOL {.stdcall.} + LPFN_WSASEND* = proc( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesSent: LPDWORD, + dwFlags: DWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): int32 {.stdcall.} + LPFN_WSASENDDISCONNECT* = + proc(s: SOCKET, lpOutboundDisconnectData: LPWSABUF): int32 {.stdcall.} + LPFN_WSASENDTO* = proc( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesSent: LPDWORD, + dwFlags: DWORD, + lpTo: ptr sockaddr, + iTolen: int32, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): int32 {.stdcall.} + LPFN_WSASETEVENT* = proc(hEvent: WSAEVENT): WINBOOL {.stdcall.} + LPFN_WSASOCKETA* = proc( + af: int32, + `type`: int32, + protocol: int32, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + g: GROUP, + dwFlags: DWORD, + ): SOCKET {.stdcall.} + LPFN_WSASOCKETW* = proc( + af: int32, + `type`: int32, + protocol: int32, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + g: GROUP, + dwFlags: DWORD, + ): SOCKET {.stdcall.} + LPFN_WSAWAITFORMULTIPLEEVENTS* = proc( + cEvents: DWORD, + lphEvents: ptr WSAEVENT, + fWaitAll: WINBOOL, + dwTimeout: DWORD, + fAlertable: WINBOOL, + ): DWORD {.stdcall.} + LPFN_WSAADDRESSTOSTRINGA* = proc( + lpsaAddress: LPSOCKADDR, + dwAddressLength: DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + lpszAddressString: LPSTR, + lpdwAddressStringLength: LPDWORD, + ): INT {.stdcall.} + LPFN_WSAADDRESSTOSTRINGW* = proc( + lpsaAddress: LPSOCKADDR, + dwAddressLength: DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + lpszAddressString: LPWSTR, + lpdwAddressStringLength: LPDWORD, + ): INT {.stdcall.} + LPFN_WSASTRINGTOADDRESSA* = proc( + AddressString: LPSTR, + AddressFamily: INT, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + lpAddress: LPSOCKADDR, + lpAddressLength: LPINT, + ): INT {.stdcall.} + LPFN_WSASTRINGTOADDRESSW* = proc( + AddressString: LPWSTR, + AddressFamily: INT, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + lpAddress: LPSOCKADDR, + lpAddressLength: LPINT, + ): INT {.stdcall.} + LPFN_WSALOOKUPSERVICEBEGINA* = proc( + lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE + ): INT {.stdcall.} + LPFN_WSALOOKUPSERVICEBEGINW* = proc( + lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE + ): INT {.stdcall.} + LPFN_WSALOOKUPSERVICENEXTA* = proc( + hLookup: HANDLE, + dwControlFlags: DWORD, + lpdwBufferLength: LPDWORD, + lpqsResults: LPWSAQUERYSETA, + ): INT {.stdcall.} + LPFN_WSALOOKUPSERVICENEXTW* = proc( + hLookup: HANDLE, + dwControlFlags: DWORD, + lpdwBufferLength: LPDWORD, + lpqsResults: LPWSAQUERYSETW, + ): INT {.stdcall.} + LPFN_WSANSPIOCTL* = proc( + hLookup: HANDLE, + dwControlCode: DWORD, + lpvInBuffer: LPVOID, + cbInBuffer: DWORD, + lpvOutBuffer: LPVOID, + cbOutBuffer: DWORD, + lpcbBytesReturned: LPDWORD, + lpCompletion: LPWSACOMPLETION, + ): INT {.stdcall.} + LPFN_WSALOOKUPSERVICEEND* = proc(hLookup: HANDLE): INT {.stdcall.} + LPFN_WSAINSTALLSERVICECLASSA* = + proc(lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.stdcall.} + LPFN_WSAINSTALLSERVICECLASSW* = + proc(lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.stdcall.} + LPFN_WSAREMOVESERVICECLASS* = proc(lpServiceClassId: LPGUID): INT {.stdcall.} + LPFN_WSAGETSERVICECLASSINFOA* = proc( + lpProviderId: LPGUID, + lpServiceClassId: LPGUID, + lpdwBufSize: LPDWORD, + lpServiceClassInfo: LPWSASERVICECLASSINFOA, + ): INT {.stdcall.} + LPFN_WSAGETSERVICECLASSINFOW* = proc( + lpProviderId: LPGUID, + lpServiceClassId: LPGUID, + lpdwBufSize: LPDWORD, + lpServiceClassInfo: LPWSASERVICECLASSINFOW, + ): INT {.stdcall.} + LPFN_WSAENUMNAMESPACEPROVIDERSA* = + proc(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA): INT {.stdcall.} + LPFN_WSAENUMNAMESPACEPROVIDERSW* = + proc(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW): INT {.stdcall.} + LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA* = proc( + lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD + ): INT {.stdcall.} + LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW* = proc( + lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD + ): INT {.stdcall.} + LPFN_WSASETSERVICEA* = proc( + lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD + ): INT {.stdcall.} + LPFN_WSASETSERVICEW* = proc( + lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD + ): INT {.stdcall.} + LPFN_WSAPROVIDERCONFIGCHANGE* = proc( + lpNotificationHandle: LPHANDLE, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): INT {.stdcall.} + LPFN_GETADDRINFOW* = proc( + pNodeName: PCWSTR, + pServiceName: PCWSTR, + pHints: ptr ADDRINFOW, + ppResult: ptr PADDRINFOW, + ): int32 {.stdcall.} + LPFN_FREEADDRINFOW* = proc(pAddrInfo: PADDRINFOW): void {.stdcall.} + LPFN_GETNAMEINFOW* = proc( + pSockaddr: ptr SOCKADDR, + SockaddrLength: socklen_t, + pNodeBuffer: PWCHAR, + NodeBufferSize: DWORD, + pServiceBuffer: PWCHAR, + ServiceBufferSize: DWORD, + Flags: INT, + ): INT {.stdcall.} + LPFN_GETADDRINFOEXA* = proc( + pName: PCSTR, + pServiceName: PCSTR, + dwNameSpace: DWORD, + lpNspId: LPGUID, + pHints: ptr ADDRINFOEXA, + ppResult: ptr PADDRINFOEXA, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.stdcall.} + LPFN_GETADDRINFOEXW* = proc( + pName: PCWSTR, + pServiceName: PCWSTR, + dwNameSpace: DWORD, + lpNspId: LPGUID, + pHints: ptr ADDRINFOEXW, + ppResult: ptr PADDRINFOEXW, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.stdcall.} + LPFN_SETADDRINFOEXA* = proc( + pName: PCSTR, + pServiceName: PCSTR, + pAddresses: ptr SOCKET_ADDRESS, + dwAddressCount: DWORD, + lpBlob: LPBLOB, + dwFlags: DWORD, + dwNameSpace: DWORD, + lpNspId: LPGUID, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.stdcall.} + LPFN_SETADDRINFOEXW* = proc( + pName: PCWSTR, + pServiceName: PCWSTR, + pAddresses: ptr SOCKET_ADDRESS, + dwAddressCount: DWORD, + lpBlob: LPBLOB, + dwFlags: DWORD, + dwNameSpace: DWORD, + lpNspId: LPGUID, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.stdcall.} + LPFN_FREEADDRINFOEXA* = proc(pAddrInfo: PADDRINFOEXA): void {.stdcall.} + LPFN_FREEADDRINFOEXW* = proc(pAddrInfo: PADDRINFOEXW): void {.stdcall.} + LPFN_TRANSMITFILE* = proc( + hSocket: SOCKET, + hFile: HANDLE, + nNumberOfBytesToWrite: DWORD, + nNumberOfBytesPerSend: DWORD, + lpOverlapped: LPOVERLAPPED, + lpTransmitBuffers: LPTRANSMIT_FILE_BUFFERS, + dwReserved: DWORD, + ): WINBOOL {.stdcall.} + LPFN_ACCEPTEX* = proc( + sListenSocket: SOCKET, + sAcceptSocket: SOCKET, + lpOutputBuffer: PVOID, + dwReceiveDataLength: DWORD, + dwLocalAddressLength: DWORD, + dwRemoteAddressLength: DWORD, + lpdwBytesReceived: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ): WINBOOL {.stdcall.} + LPFN_GETACCEPTEXSOCKADDRS* = proc( + lpOutputBuffer: PVOID, + dwReceiveDataLength: DWORD, + dwLocalAddressLength: DWORD, + dwRemoteAddressLength: DWORD, + LocalSockaddr: ptr ptr sockaddr, + LocalSockaddrLength: LPINT, + RemoteSockaddr: ptr ptr sockaddr, + RemoteSockaddrLength: LPINT, + ): VOID {.stdcall.} + LPFN_TRANSMITPACKETS* = proc( + hSocket: SOCKET, + lpPacketArray: LPTRANSMIT_PACKETS_ELEMENT, + nElementCount: DWORD, + nSendSize: DWORD, + lpOverlapped: LPOVERLAPPED, + dwFlags: DWORD, + ): WINBOOL {.stdcall.} + LPFN_CONNECTEX* = proc( + s: SOCKET, + name: ptr sockaddr, + namelen: int32, + lpSendBuffer: PVOID, + dwSendDataLength: DWORD, + lpdwBytesSent: LPDWORD, + lpOverlapped: LPOVERLAPPED, + ): WINBOOL {.stdcall.} + LPFN_DISCONNECTEX* = proc( + s: SOCKET, lpOverlapped: LPOVERLAPPED, dwFlags: DWORD, dwReserved: DWORD + ): WINBOOL {.stdcall.} + LPFN_WSARECVMSG* = proc( + s: SOCKET, + lpMsg: LPWSAMSG, + lpdwNumberOfBytesRecvd: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): INT {.stdcall.} + LPFN_WSAPOLL* = proc(fdarray: LPWSAPOLLFD, nfds: ULONG, timeout: INT): INT {.stdcall.} + LPFN_WSASENDMSG* = proc( + s: SOCKET, + lpMsg: LPWSAMSG, + dwFlags: DWORD, + lpNumberOfBytesSent: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, + ): INT {.stdcall.} netent* {.pure.} = object n_name*: ptr char n_aliases*: ptr ptr char n_addrtype*: int16 n_net*: int32 + sockproto* {.pure.} = object sp_family*: uint16 sp_protocol*: uint16 + IPV6_MREQ* {.pure.} = object ipv6mr_multiaddr*: IN6_ADDR ipv6mr_interface*: int32 + ip_mreq* {.pure.} = object imr_multiaddr*: IN_ADDR imr_interface*: IN_ADDR + ip_mreq_source* {.pure.} = object imr_multiaddr*: IN_ADDR imr_sourceaddr*: IN_ADDR imr_interface*: IN_ADDR + ip_msfilter* {.pure.} = object imsf_multiaddr*: IN_ADDR imsf_interface*: IN_ADDR imsf_fmode*: int32 imsf_numsrc*: int32 imsf_slist*: array[1, IN_ADDR] + IN_PKTINFO* {.pure.} = object ipi_addr*: IN_ADDR ipi_ifindex*: UINT + IN6_PKTINFO* {.pure.} = object ipi6_addr*: IN6_ADDR ipi6_ifindex*: UINT + tcp_keepalive* {.pure.} = object onoff*: int32 keepalivetime*: int32 keepaliveinterval*: int32 + SOCKET_PEER_TARGET_NAME* {.pure.} = object SecurityProtocol*: SOCKET_SECURITY_PROTOCOL PeerAddress*: SOCKADDR_STORAGE PeerTargetNameStringLen*: ULONG AllStrings*: UncheckedArray[uint16] + SOCKET_SECURITY_QUERY_INFO* {.pure.} = object SecurityProtocol*: SOCKET_SECURITY_PROTOCOL Flags*: ULONG PeerApplicationAccessTokenHandle*: UINT64 PeerMachineAccessTokenHandle*: UINT64 + SOCKET_SECURITY_QUERY_TEMPLATE* {.pure.} = object SecurityProtocol*: SOCKET_SECURITY_PROTOCOL PeerAddress*: SOCKADDR_STORAGE PeerTokenAccessMask*: ULONG + SOCKET_SECURITY_SETTINGS* {.pure.} = object SecurityProtocol*: SOCKET_SECURITY_PROTOCOL SecurityFlags*: ULONG + SOCKET_SECURITY_SETTINGS_IPSEC* {.pure.} = object SecurityProtocol*: SOCKET_SECURITY_PROTOCOL SecurityFlags*: ULONG @@ -1453,197 +1948,942 @@ DomainNameStringLen*: ULONG PasswordStringLen*: ULONG AllStrings*: UncheckedArray[uint16] -proc WSAFDIsSet*(P1: SOCKET, P2: ptr fd_set): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "__WSAFDIsSet".} -proc accept*(s: SOCKET, `addr`: ptr sockaddr, addrlen: ptr int32): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc `bind`*(s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAFDIsSet*( + P1: SOCKET, P2: ptr fd_set +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "__WSAFDIsSet".} + +proc accept*( + s: SOCKET, `addr`: ptr sockaddr, addrlen: ptr int32 +): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc `bind`*( + s: SOCKET, name: ptr sockaddr, namelen: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc closesocket*(s: SOCKET): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc connect*(s: SOCKET, name: ptr sockaddr, namelen: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc ioctlsocket*(s: SOCKET, cmd: int32, argp: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getpeername*(s: SOCKET, name: ptr sockaddr, namelen: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getsockname*(s: SOCKET, name: ptr sockaddr, namelen: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getsockopt*(s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} +proc connect*( + s: SOCKET, name: ptr sockaddr, namelen: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc ioctlsocket*( + s: SOCKET, cmd: int32, argp: ptr int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getpeername*( + s: SOCKET, name: ptr sockaddr, namelen: ptr int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getsockname*( + s: SOCKET, name: ptr sockaddr, namelen: ptr int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getsockopt*( + s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: ptr int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc htonl*(hostlong: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} proc htons*(hostshort: uint16): uint16 {.winapi, stdcall, dynlib: "ws2_32", importc.} proc inet_addr*(cp: ptr char): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} proc inet_ntoa*(`in`: IN_ADDR): ptr char {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc listen*(s: SOCKET, backlog: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} +proc listen*( + s: SOCKET, backlog: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc ntohl*(netlong: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} proc ntohs*(netshort: uint16): uint16 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc recv*(s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc recvfrom*(s: SOCKET, buf: ptr char, len: int32, flags: int32, `from`: ptr sockaddr, fromlen: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc select*(nfds: int32, readfds: ptr fd_set, writefds: ptr fd_set, exceptfds: ptr fd_set, timeout: PTIMEVAL): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc send*(s: SOCKET, buf: ptr char, len: int32, flags: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc sendto*(s: SOCKET, buf: ptr char, len: int32, flags: int32, to: ptr sockaddr, tolen: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc setsockopt*(s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc shutdown*(s: SOCKET, how: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc socket*(af: int32, `type`: int32, protocol: int32): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc gethostbyaddr*(`addr`: ptr char, len: int32, `type`: int32): ptr hostent {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc gethostbyname*(name: ptr char): ptr hostent {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc gethostname*(name: ptr char, namelen: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getservbyport*(port: int32, proto: ptr char): ptr servent {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getservbyname*(name: ptr char, proto: ptr char): ptr servent {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getprotobynumber*(number: int32): ptr protoent {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getprotobyname*(name: ptr char): ptr protoent {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAStartup*(wVersionRequested: WORD, lpWSAData: LPWSADATA): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} +proc recv*( + s: SOCKET, buf: ptr char, len: int32, flags: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc recvfrom*( + s: SOCKET, + buf: ptr char, + len: int32, + flags: int32, + `from`: ptr sockaddr, + fromlen: ptr int32, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc select*( + nfds: int32, + readfds: ptr fd_set, + writefds: ptr fd_set, + exceptfds: ptr fd_set, + timeout: PTIMEVAL, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc send*( + s: SOCKET, buf: ptr char, len: int32, flags: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc sendto*( + s: SOCKET, buf: ptr char, len: int32, flags: int32, to: ptr sockaddr, tolen: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc setsockopt*( + s: SOCKET, level: int32, optname: int32, optval: ptr char, optlen: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc shutdown*( + s: SOCKET, how: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc socket*( + af: int32, `type`: int32, protocol: int32 +): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc gethostbyaddr*( + `addr`: ptr char, len: int32, `type`: int32 +): ptr hostent {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc gethostbyname*( + name: ptr char +): ptr hostent {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc gethostname*( + name: ptr char, namelen: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getservbyport*( + port: int32, proto: ptr char +): ptr servent {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getservbyname*( + name: ptr char, proto: ptr char +): ptr servent {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getprotobynumber*( + number: int32 +): ptr protoent {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getprotobyname*( + name: ptr char +): ptr protoent {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAStartup*( + wVersionRequested: WORD, lpWSAData: LPWSADATA +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc WSACleanup*(): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASetLastError*(iError: int32): void {.winapi, stdcall, dynlib: "ws2_32", importc.} +proc WSASetLastError*( + iError: int32 +): void {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc WSAGetLastError*(): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} proc WSAIsBlocking*(): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} proc WSAUnhookBlockingHook*(): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASetBlockingHook*(lpBlockFunc: FARPROC): FARPROC {.winapi, stdcall, dynlib: "ws2_32", importc.} +proc WSASetBlockingHook*( + lpBlockFunc: FARPROC +): FARPROC {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc WSACancelBlockingCall*(): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncGetServByName*(hWnd: HWND, wMsg: int32, name: ptr char, proto: ptr char, buf: ptr char, buflen: int32): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncGetServByPort*(hWnd: HWND, wMsg: int32, port: int32, proto: ptr char, buf: ptr char, buflen: int32): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncGetProtoByName*(hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncGetProtoByNumber*(hWnd: HWND, wMsg: int32, number: int32, buf: ptr char, buflen: int32): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncGetHostByName*(hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncGetHostByAddr*(hWnd: HWND, wMsg: int32, `addr`: ptr char, len: int32, `type`: int32, buf: ptr char, buflen: int32): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSACancelAsyncRequest*(hAsyncTaskHandle: HANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAsyncSelect*(s: SOCKET, hWnd: HWND, wMsg: int32, lEvent: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAccept*(s: SOCKET, `addr`: ptr sockaddr, addrlen: LPINT, lpfnCondition: LPCONDITIONPROC, dwCallbackData: DWORD_PTR): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSACloseEvent*(hEvent: WSAEVENT): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAConnect*(s: SOCKET, name: ptr sockaddr, namelen: int32, lpCallerData: LPWSABUF, lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} +proc WSAAsyncGetServByName*( + hWnd: HWND, wMsg: int32, name: ptr char, proto: ptr char, buf: ptr char, buflen: int32 +): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAsyncGetServByPort*( + hWnd: HWND, wMsg: int32, port: int32, proto: ptr char, buf: ptr char, buflen: int32 +): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAsyncGetProtoByName*( + hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32 +): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAsyncGetProtoByNumber*( + hWnd: HWND, wMsg: int32, number: int32, buf: ptr char, buflen: int32 +): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAsyncGetHostByName*( + hWnd: HWND, wMsg: int32, name: ptr char, buf: ptr char, buflen: int32 +): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAsyncGetHostByAddr*( + hWnd: HWND, + wMsg: int32, + `addr`: ptr char, + len: int32, + `type`: int32, + buf: ptr char, + buflen: int32, +): HANDLE {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSACancelAsyncRequest*( + hAsyncTaskHandle: HANDLE +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAsyncSelect*( + s: SOCKET, hWnd: HWND, wMsg: int32, lEvent: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAccept*( + s: SOCKET, + `addr`: ptr sockaddr, + addrlen: LPINT, + lpfnCondition: LPCONDITIONPROC, + dwCallbackData: DWORD_PTR, +): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSACloseEvent*( + hEvent: WSAEVENT +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAConnect*( + s: SOCKET, + name: ptr sockaddr, + namelen: int32, + lpCallerData: LPWSABUF, + lpCalleeData: LPWSABUF, + lpSQOS: LPQOS, + lpGQOS: LPQOS, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc WSACreateEvent*(): WSAEVENT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSADuplicateSocketA*(s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSADuplicateSocketW*(s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumNetworkEvents*(s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumProtocolsA*(lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOA, lpdwBufferLength: LPDWORD): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumProtocolsW*(lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEventSelect*(s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAGetOverlappedResult*(s: SOCKET, lpOverlapped: LPWSAOVERLAPPED, lpcbTransfer: LPDWORD, fWait: WINBOOL, lpdwFlags: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAGetQOSByName*(s: SOCKET, lpQOSName: LPWSABUF, lpQOS: LPQOS): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAHtonl*(s: SOCKET, hostlong: int32, lpnetlong: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAHtons*(s: SOCKET, hostshort: uint16, lpnetshort: ptr uint16): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAIoctl*(s: SOCKET, dwIoControlCode: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAJoinLeaf*(s: SOCKET, name: ptr sockaddr, namelen: int32, lpCallerData: LPWSABUF, lpCalleeData: LPWSABUF, lpSQOS: LPQOS, lpGQOS: LPQOS, dwFlags: DWORD): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSANtohl*(s: SOCKET, netlong: int32, lphostlong: ptr int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSANtohs*(s: SOCKET, netshort: uint16, lphostshort: ptr uint16): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSARecv*(s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, lpFlags: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSARecvDisconnect*(s: SOCKET, lpInboundDisconnectData: LPWSABUF): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSARecvFrom*(s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesRecvd: LPDWORD, lpFlags: LPDWORD, lpFrom: ptr sockaddr, lpFromlen: LPINT, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAResetEvent*(hEvent: WSAEVENT): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASend*(s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, dwFlags: DWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASendDisconnect*(s: SOCKET, lpOutboundDisconnectData: LPWSABUF): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASendTo*(s: SOCKET, lpBuffers: LPWSABUF, dwBufferCount: DWORD, lpNumberOfBytesSent: LPDWORD, dwFlags: DWORD, lpTo: ptr sockaddr, iTolen: int32, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASetEvent*(hEvent: WSAEVENT): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASocketA*(af: int32, `type`: int32, protocol: int32, lpProtocolInfo: LPWSAPROTOCOL_INFOA, g: GROUP, dwFlags: DWORD): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASocketW*(af: int32, `type`: int32, protocol: int32, lpProtocolInfo: LPWSAPROTOCOL_INFOW, g: GROUP, dwFlags: DWORD): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAWaitForMultipleEvents*(cEvents: DWORD, lphEvents: ptr WSAEVENT, fWaitAll: WINBOOL, dwTimeout: DWORD, fAlertable: WINBOOL): DWORD {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAddressToStringA*(lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpszAddressString: LPSTR, lpdwAddressStringLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAAddressToStringW*(lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpszAddressString: LPWSTR, lpdwAddressStringLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAStringToAddressA*(AddressString: LPSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpAddress: LPSOCKADDR, lpAddressLength: LPINT): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAStringToAddressW*(AddressString: LPWSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpAddress: LPSOCKADDR, lpAddressLength: LPINT): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSALookupServiceBeginA*(lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSALookupServiceBeginW*(lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSALookupServiceNextA*(hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETA): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSALookupServiceNextW*(hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETW): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSANSPIoctl*(hLookup: HANDLE, dwControlCode: DWORD, lpvInBuffer: LPVOID, cbInBuffer: DWORD, lpvOutBuffer: LPVOID, cbOutBuffer: DWORD, lpcbBytesReturned: LPDWORD, lpCompletion: LPWSACOMPLETION): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSALookupServiceEnd*(hLookup: HANDLE): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAInstallServiceClassA*(lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAInstallServiceClassW*(lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSARemoveServiceClass*(lpServiceClassId: LPGUID): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAGetServiceClassInfoA*(lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAGetServiceClassInfoW*(lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumNameSpaceProvidersA*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumNameSpaceProvidersW*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAGetServiceClassNameByClassIdA*(lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAGetServiceClassNameByClassIdW*(lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASetServiceA*(lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASetServiceW*(lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAProviderConfigChange*(lpNotificationHandle: LPHANDLE, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAConnectByList*(s: SOCKET, SocketAddressList: PSOCKET_ADDRESS_LIST, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: PTIMEVAL, Reserved: LPWSAOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAConnectByNameA*(s: SOCKET, nodename: LPSTR, servicename: LPSTR, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: PTIMEVAL, Reserved: LPWSAOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAConnectByNameW*(s: SOCKET, nodename: LPWSTR, servicename: LPWSTR, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: PTIMEVAL, Reserved: LPWSAOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumNameSpaceProvidersExA*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXA): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAEnumNameSpaceProvidersExW*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAPoll*(fdarray: ptr WSAPOLLFD, nfds: ULONG, timeout: INT): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSASendMsg*(s: SOCKET, lpMsg: LPWSAMSG, dwFlags: DWORD, lpNumberOfBytesSent: LPDWORD, lpOverlapped: LPWSAOVERLAPPED, lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc getaddrinfo*(nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc GetAddrInfoW*(pNodeName: PCWSTR, pServiceName: PCWSTR, pHints: ptr ADDRINFOW, ppResult: ptr PADDRINFOW): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc GetAddrInfoA*(nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getaddrinfo".} -proc freeaddrinfo*(pAddrInfo: LPADDRINFO): void {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc FreeAddrInfoW*(pAddrInfo: PADDRINFOW): void {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc FreeAddrInfoA*(pAddrInfo: LPADDRINFO): void {.winapi, stdcall, dynlib: "ws2_32", importc: "freeaddrinfo".} -proc getnameinfo*(sa: ptr sockaddr, salen: socklen_t, host: ptr char, hostlen: DWORD, serv: ptr char, servlen: DWORD, flags: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc GetNameInfoW*(pSockaddr: ptr SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PWCHAR, NodeBufferSize: DWORD, pServiceBuffer: PWCHAR, ServiceBufferSize: DWORD, Flags: INT): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc GetNameInfoA*(sa: ptr sockaddr, salen: socklen_t, host: ptr char, hostlen: DWORD, serv: ptr char, servlen: DWORD, flags: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getnameinfo".} -proc RtlIpv6AddressToStringA*(Addr: ptr IN6_ADDR, S: LPSTR): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv6AddressToStringW*(Addr: ptr IN6_ADDR, S: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv6AddressToStringExA*(Address: ptr IN6_ADDR, ScopeId: ULONG, Port: USHORT, AddressString: LPSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv6AddressToStringExW*(Address: ptr IN6_ADDR, ScopeId: ULONG, Port: USHORT, AddressString: LPWSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4AddressToStringA*(Addr: ptr IN_ADDR, S: LPSTR): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4AddressToStringW*(Addr: ptr IN_ADDR, S: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4AddressToStringExA*(Address: ptr IN_ADDR, Port: USHORT, AddressString: LPSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4AddressToStringExW*(Address: ptr IN_ADDR, Port: USHORT, AddressString: LPWSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4StringToAddressA*(S: PCSTR, Strict: BOOLEAN, Terminator: ptr LPSTR, Addr: ptr IN_ADDR): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4StringToAddressW*(S: PCWSTR, Strict: BOOLEAN, Terminator: ptr LPWSTR, Addr: ptr IN_ADDR): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4StringToAddressExA*(AddressString: PCSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv4StringToAddressExW*(AddressString: PCWSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv6StringToAddressExA*(AddressString: PCSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc RtlIpv6StringToAddressExW*(AddressString: PCWSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} -proc GetAddrInfoExA*(pName: PCSTR, pServiceName: PCSTR, dwNameSpace: DWORD, lpNspId: LPGUID, pHints: ptr ADDRINFOEXA, ppResult: ptr PADDRINFOEXA, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc GetAddrInfoExW*(pName: PCWSTR, pServiceName: PCWSTR, dwNameSpace: DWORD, lpNspId: LPGUID, pHints: ptr ADDRINFOEXW, ppResult: ptr PADDRINFOEXW, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc SetAddrInfoExA*(pName: PCSTR, pServiceName: PCSTR, pAddresses: ptr SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc SetAddrInfoExW*(pName: PCWSTR, pServiceName: PCWSTR, pAddresses: ptr SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc FreeAddrInfoExW*(pAddrInfo: PADDRINFOEXW): void {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSAImpersonateSocketPeer*(Socket: SOCKET, PeerAddress: ptr sockaddr, peerAddressLen: ULONG): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} -proc WSAQuerySocketSecurity*(Socket: SOCKET, SecurityQueryTemplate: ptr SOCKET_SECURITY_QUERY_TEMPLATE, SecurityQueryTemplateLen: ULONG, SecurityQueryInfo: ptr SOCKET_SECURITY_QUERY_INFO, SecurityQueryInfoLen: ptr ULONG, Overlapped: LPWSAOVERLAPPED, CompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} +proc WSADuplicateSocketA*( + s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSADuplicateSocketW*( + s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumNetworkEvents*( + s: SOCKET, hEventObject: WSAEVENT, lpNetworkEvents: LPWSANETWORKEVENTS +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumProtocolsA*( + lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOA, lpdwBufferLength: LPDWORD +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumProtocolsW*( + lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEventSelect*( + s: SOCKET, hEventObject: WSAEVENT, lNetworkEvents: int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAGetOverlappedResult*( + s: SOCKET, + lpOverlapped: LPWSAOVERLAPPED, + lpcbTransfer: LPDWORD, + fWait: WINBOOL, + lpdwFlags: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAGetQOSByName*( + s: SOCKET, lpQOSName: LPWSABUF, lpQOS: LPQOS +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAHtonl*( + s: SOCKET, hostlong: int32, lpnetlong: ptr int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAHtons*( + s: SOCKET, hostshort: uint16, lpnetshort: ptr uint16 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAIoctl*( + s: SOCKET, + dwIoControlCode: DWORD, + lpvInBuffer: LPVOID, + cbInBuffer: DWORD, + lpvOutBuffer: LPVOID, + cbOutBuffer: DWORD, + lpcbBytesReturned: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAJoinLeaf*( + s: SOCKET, + name: ptr sockaddr, + namelen: int32, + lpCallerData: LPWSABUF, + lpCalleeData: LPWSABUF, + lpSQOS: LPQOS, + lpGQOS: LPQOS, + dwFlags: DWORD, +): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSANtohl*( + s: SOCKET, netlong: int32, lphostlong: ptr int32 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSANtohs*( + s: SOCKET, netshort: uint16, lphostshort: ptr uint16 +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSARecv*( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesRecvd: LPDWORD, + lpFlags: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSARecvDisconnect*( + s: SOCKET, lpInboundDisconnectData: LPWSABUF +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSARecvFrom*( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesRecvd: LPDWORD, + lpFlags: LPDWORD, + lpFrom: ptr sockaddr, + lpFromlen: LPINT, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAResetEvent*( + hEvent: WSAEVENT +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASend*( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesSent: LPDWORD, + dwFlags: DWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASendDisconnect*( + s: SOCKET, lpOutboundDisconnectData: LPWSABUF +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASendTo*( + s: SOCKET, + lpBuffers: LPWSABUF, + dwBufferCount: DWORD, + lpNumberOfBytesSent: LPDWORD, + dwFlags: DWORD, + lpTo: ptr sockaddr, + iTolen: int32, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASetEvent*( + hEvent: WSAEVENT +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASocketA*( + af: int32, + `type`: int32, + protocol: int32, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + g: GROUP, + dwFlags: DWORD, +): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASocketW*( + af: int32, + `type`: int32, + protocol: int32, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + g: GROUP, + dwFlags: DWORD, +): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAWaitForMultipleEvents*( + cEvents: DWORD, + lphEvents: ptr WSAEVENT, + fWaitAll: WINBOOL, + dwTimeout: DWORD, + fAlertable: WINBOOL, +): DWORD {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAddressToStringA*( + lpsaAddress: LPSOCKADDR, + dwAddressLength: DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + lpszAddressString: LPSTR, + lpdwAddressStringLength: LPDWORD, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAAddressToStringW*( + lpsaAddress: LPSOCKADDR, + dwAddressLength: DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + lpszAddressString: LPWSTR, + lpdwAddressStringLength: LPDWORD, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAStringToAddressA*( + AddressString: LPSTR, + AddressFamily: INT, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + lpAddress: LPSOCKADDR, + lpAddressLength: LPINT, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAStringToAddressW*( + AddressString: LPWSTR, + AddressFamily: INT, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + lpAddress: LPSOCKADDR, + lpAddressLength: LPINT, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSALookupServiceBeginA*( + lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSALookupServiceBeginW*( + lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSALookupServiceNextA*( + hLookup: HANDLE, + dwControlFlags: DWORD, + lpdwBufferLength: LPDWORD, + lpqsResults: LPWSAQUERYSETA, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSALookupServiceNextW*( + hLookup: HANDLE, + dwControlFlags: DWORD, + lpdwBufferLength: LPDWORD, + lpqsResults: LPWSAQUERYSETW, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSANSPIoctl*( + hLookup: HANDLE, + dwControlCode: DWORD, + lpvInBuffer: LPVOID, + cbInBuffer: DWORD, + lpvOutBuffer: LPVOID, + cbOutBuffer: DWORD, + lpcbBytesReturned: LPDWORD, + lpCompletion: LPWSACOMPLETION, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSALookupServiceEnd*( + hLookup: HANDLE +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAInstallServiceClassA*( + lpServiceClassInfo: LPWSASERVICECLASSINFOA +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAInstallServiceClassW*( + lpServiceClassInfo: LPWSASERVICECLASSINFOW +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSARemoveServiceClass*( + lpServiceClassId: LPGUID +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAGetServiceClassInfoA*( + lpProviderId: LPGUID, + lpServiceClassId: LPGUID, + lpdwBufSize: LPDWORD, + lpServiceClassInfo: LPWSASERVICECLASSINFOA, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAGetServiceClassInfoW*( + lpProviderId: LPGUID, + lpServiceClassId: LPGUID, + lpdwBufSize: LPDWORD, + lpServiceClassInfo: LPWSASERVICECLASSINFOW, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumNameSpaceProvidersA*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumNameSpaceProvidersW*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAGetServiceClassNameByClassIdA*( + lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAGetServiceClassNameByClassIdW*( + lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASetServiceA*( + lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASetServiceW*( + lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAProviderConfigChange*( + lpNotificationHandle: LPHANDLE, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAConnectByList*( + s: SOCKET, + SocketAddressList: PSOCKET_ADDRESS_LIST, + LocalAddressLength: LPDWORD, + LocalAddress: LPSOCKADDR, + RemoteAddressLength: LPDWORD, + RemoteAddress: LPSOCKADDR, + timeout: PTIMEVAL, + Reserved: LPWSAOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAConnectByNameA*( + s: SOCKET, + nodename: LPSTR, + servicename: LPSTR, + LocalAddressLength: LPDWORD, + LocalAddress: LPSOCKADDR, + RemoteAddressLength: LPDWORD, + RemoteAddress: LPSOCKADDR, + timeout: PTIMEVAL, + Reserved: LPWSAOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAConnectByNameW*( + s: SOCKET, + nodename: LPWSTR, + servicename: LPWSTR, + LocalAddressLength: LPDWORD, + LocalAddress: LPSOCKADDR, + RemoteAddressLength: LPDWORD, + RemoteAddress: LPSOCKADDR, + timeout: PTIMEVAL, + Reserved: LPWSAOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumNameSpaceProvidersExA*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXA +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAEnumNameSpaceProvidersExW*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAPoll*( + fdarray: ptr WSAPOLLFD, nfds: ULONG, timeout: INT +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSASendMsg*( + s: SOCKET, + lpMsg: LPWSAMSG, + dwFlags: DWORD, + lpNumberOfBytesSent: LPDWORD, + lpOverlapped: LPWSAOVERLAPPED, + lpCompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc getaddrinfo*( + nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc GetAddrInfoW*( + pNodeName: PCWSTR, + pServiceName: PCWSTR, + pHints: ptr ADDRINFOW, + ppResult: ptr PADDRINFOW, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc GetAddrInfoA*( + nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getaddrinfo".} + +proc freeaddrinfo*( + pAddrInfo: LPADDRINFO +): void {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc FreeAddrInfoW*( + pAddrInfo: PADDRINFOW +): void {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc FreeAddrInfoA*( + pAddrInfo: LPADDRINFO +): void {.winapi, stdcall, dynlib: "ws2_32", importc: "freeaddrinfo".} + +proc getnameinfo*( + sa: ptr sockaddr, + salen: socklen_t, + host: ptr char, + hostlen: DWORD, + serv: ptr char, + servlen: DWORD, + flags: int32, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc GetNameInfoW*( + pSockaddr: ptr SOCKADDR, + SockaddrLength: socklen_t, + pNodeBuffer: PWCHAR, + NodeBufferSize: DWORD, + pServiceBuffer: PWCHAR, + ServiceBufferSize: DWORD, + Flags: INT, +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc GetNameInfoA*( + sa: ptr sockaddr, + salen: socklen_t, + host: ptr char, + hostlen: DWORD, + serv: ptr char, + servlen: DWORD, + flags: int32, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getnameinfo".} + +proc RtlIpv6AddressToStringA*( + Addr: ptr IN6_ADDR, S: LPSTR +): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv6AddressToStringW*( + Addr: ptr IN6_ADDR, S: LPWSTR +): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv6AddressToStringExA*( + Address: ptr IN6_ADDR, + ScopeId: ULONG, + Port: USHORT, + AddressString: LPSTR, + AddressStringLength: PULONG, +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv6AddressToStringExW*( + Address: ptr IN6_ADDR, + ScopeId: ULONG, + Port: USHORT, + AddressString: LPWSTR, + AddressStringLength: PULONG, +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4AddressToStringA*( + Addr: ptr IN_ADDR, S: LPSTR +): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4AddressToStringW*( + Addr: ptr IN_ADDR, S: LPWSTR +): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4AddressToStringExA*( + Address: ptr IN_ADDR, Port: USHORT, AddressString: LPSTR, AddressStringLength: PULONG +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4AddressToStringExW*( + Address: ptr IN_ADDR, Port: USHORT, AddressString: LPWSTR, AddressStringLength: PULONG +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4StringToAddressA*( + S: PCSTR, Strict: BOOLEAN, Terminator: ptr LPSTR, Addr: ptr IN_ADDR +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4StringToAddressW*( + S: PCWSTR, Strict: BOOLEAN, Terminator: ptr LPWSTR, Addr: ptr IN_ADDR +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4StringToAddressExA*( + AddressString: PCSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv4StringToAddressExW*( + AddressString: PCWSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv6StringToAddressExA*( + AddressString: PCSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc RtlIpv6StringToAddressExW*( + AddressString: PCWSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT +): LONG {.winapi, stdcall, dynlib: "ntdll", importc.} + +proc GetAddrInfoExA*( + pName: PCSTR, + pServiceName: PCSTR, + dwNameSpace: DWORD, + lpNspId: LPGUID, + pHints: ptr ADDRINFOEXA, + ppResult: ptr PADDRINFOEXA, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc GetAddrInfoExW*( + pName: PCWSTR, + pServiceName: PCWSTR, + dwNameSpace: DWORD, + lpNspId: LPGUID, + pHints: ptr ADDRINFOEXW, + ppResult: ptr PADDRINFOEXW, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc SetAddrInfoExA*( + pName: PCSTR, + pServiceName: PCSTR, + pAddresses: ptr SOCKET_ADDRESS, + dwAddressCount: DWORD, + lpBlob: LPBLOB, + dwFlags: DWORD, + dwNameSpace: DWORD, + lpNspId: LPGUID, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc SetAddrInfoExW*( + pName: PCWSTR, + pServiceName: PCWSTR, + pAddresses: ptr SOCKET_ADDRESS, + dwAddressCount: DWORD, + lpBlob: LPBLOB, + dwFlags: DWORD, + dwNameSpace: DWORD, + lpNspId: LPGUID, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, +): int32 {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc FreeAddrInfoExW*( + pAddrInfo: PADDRINFOEXW +): void {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSAImpersonateSocketPeer*( + Socket: SOCKET, PeerAddress: ptr sockaddr, peerAddressLen: ULONG +): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} + +proc WSAQuerySocketSecurity*( + Socket: SOCKET, + SecurityQueryTemplate: ptr SOCKET_SECURITY_QUERY_TEMPLATE, + SecurityQueryTemplateLen: ULONG, + SecurityQueryInfo: ptr SOCKET_SECURITY_QUERY_INFO, + SecurityQueryInfoLen: ptr ULONG, + Overlapped: LPWSAOVERLAPPED, + CompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} + proc WSARevertImpersonation*(): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} -proc WSASetSocketPeerTargetName*(Socket: SOCKET, PeerTargetName: ptr SOCKET_PEER_TARGET_NAME, PeerTargetNameLen: ULONG, Overlapped: LPWSAOVERLAPPED, CompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} -proc WSASetSocketSecurity*(Socket: SOCKET, SecuritySettings: ptr SOCKET_SECURITY_SETTINGS, SecuritySettingsLen: ULONG, Overlapped: LPWSAOVERLAPPED, CompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} -proc InetNtopW*(Family: INT, pAddr: PVOID, pStringBuf: LPWSTR, StringBufSIze: int): LPCWSTR {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc inet_ntop*(Family: INT, pAddr: PVOID, pStringBuf: LPSTR, StringBufSize: int): LPCSTR {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc InetPtonW*(Family: INT, pStringBuf: LPCWSTR, pAddr: PVOID): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc inet_pton*(Family: INT, pStringBuf: LPCSTR, pAddr: PVOID): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} -proc WSARecvEx*(s: SOCKET, buf: ptr char, len: int32, flags: ptr int32): int32 {.winapi, stdcall, dynlib: "mswsock", importc.} -proc TransmitFile*(hSocket: SOCKET, hFile: HANDLE, nNumberOfBytesToWrite: DWORD, nNumberOfBytesPerSend: DWORD, lpOverlapped: LPOVERLAPPED, lpTransmitBuffers: LPTRANSMIT_FILE_BUFFERS, dwReserved: DWORD): WINBOOL {.winapi, stdcall, dynlib: "mswsock", importc.} -proc AcceptEx*(sListenSocket: SOCKET, sAcceptSocket: SOCKET, lpOutputBuffer: PVOID, dwReceiveDataLength: DWORD, dwLocalAddressLength: DWORD, dwRemoteAddressLength: DWORD, lpdwBytesReceived: LPDWORD, lpOverlapped: LPOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "mswsock", importc.} -proc GetAcceptExSockaddrs*(lpOutputBuffer: PVOID, dwReceiveDataLength: DWORD, dwLocalAddressLength: DWORD, dwRemoteAddressLength: DWORD, LocalSockaddr: ptr ptr sockaddr, LocalSockaddrLength: LPINT, RemoteSockaddr: ptr ptr sockaddr, RemoteSockaddrLength: LPINT): VOID {.winapi, stdcall, dynlib: "mswsock", importc.} -proc InetNtopA*(Family: INT, pAddr: PVOID, pStringBuf: LPSTR, StringBufSize: int): LPCSTR {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_ntop".} -proc InetPtonA*(Family: INT, pStringBuf: LPCSTR, pAddr: PVOID): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_pton".} -template `<`*(x: TIMEVAL, y: TIMEVAL): bool = (x.tv_sec < y.tv_sec or (x.tv_sec == y.tv_sec and x.tv_usec < y.tv_usec)) -template `<=`*(x: TIMEVAL, y: TIMEVAL): bool = (x.tv_sec < y.tv_sec or (x.tv_sec == y.tv_sec and x.tv_usec <= y.tv_usec)) -template timerisset*(tvp: TIMEVAL): bool = tvp.tv_sec != 0 or tvp.tv_usec != 0 -template timerclear*(tvp: var TIMEVAL) = tvp.tv_sec = 0; tvp.tv_usec = 0 -template IN_CLASSA*(i: untyped): bool = (i and 0x80000000) == 0 -template IN_CLASSB*(i: untyped): bool = (i and 0xc0000000) == 0x80000000 -template IN_CLASSC*(i: untyped): bool = (i and 0xe0000000) == 0xc0000000 -template IN_CLASSD*(i: untyped): bool = (i and 0xf0000000) == 0xe0000000 -template IN_MULTICAST*(i: untyped): bool = IN_CLASSD(i) -template WSAMAKEASYNCREPLY*(buflen: untyped, error: untyped): untyped = MAKELONG(buflen, error) -template WSAMAKESELECTREPLY*(event: untyped, error: untyped): untyped = MAKELONG(event, error) -template WSAGETASYNCBUFLEN*(lParam: untyped): untyped = LOWORD(lParam) -template WSAGETASYNCERROR*(lParam: untyped): untyped = HIWORD(lParam) -template WSAGETSELECTEVENT*(lParam: untyped): untyped = LOWORD(lParam) -template WSAGETSELECTERROR*(lParam: untyped): untyped = HIWORD(lParam) -proc FD_CLR*(fd: SOCKET, s: ptr fd_set): void {.importc: "FD_CLR", header: "".} -proc FD_SET*(fd: SOCKET, s: ptr fd_set): void {.importc: "FD_SET", header: "".} +proc WSASetSocketPeerTargetName*( + Socket: SOCKET, + PeerTargetName: ptr SOCKET_PEER_TARGET_NAME, + PeerTargetNameLen: ULONG, + Overlapped: LPWSAOVERLAPPED, + CompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} + +proc WSASetSocketSecurity*( + Socket: SOCKET, + SecuritySettings: ptr SOCKET_SECURITY_SETTINGS, + SecuritySettingsLen: ULONG, + Overlapped: LPWSAOVERLAPPED, + CompletionRoutine: LPWSAOVERLAPPED_COMPLETION_ROUTINE, +): int32 {.winapi, stdcall, dynlib: "fwpuclnt", importc.} + +proc InetNtopW*( + Family: INT, pAddr: PVOID, pStringBuf: LPWSTR, StringBufSIze: int +): LPCWSTR {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc inet_ntop*( + Family: INT, pAddr: PVOID, pStringBuf: LPSTR, StringBufSize: int +): LPCSTR {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc InetPtonW*( + Family: INT, pStringBuf: LPCWSTR, pAddr: PVOID +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc inet_pton*( + Family: INT, pStringBuf: LPCSTR, pAddr: PVOID +): INT {.winapi, stdcall, dynlib: "ws2_32", importc.} + +proc WSARecvEx*( + s: SOCKET, buf: ptr char, len: int32, flags: ptr int32 +): int32 {.winapi, stdcall, dynlib: "mswsock", importc.} + +proc TransmitFile*( + hSocket: SOCKET, + hFile: HANDLE, + nNumberOfBytesToWrite: DWORD, + nNumberOfBytesPerSend: DWORD, + lpOverlapped: LPOVERLAPPED, + lpTransmitBuffers: LPTRANSMIT_FILE_BUFFERS, + dwReserved: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "mswsock", importc.} + +proc AcceptEx*( + sListenSocket: SOCKET, + sAcceptSocket: SOCKET, + lpOutputBuffer: PVOID, + dwReceiveDataLength: DWORD, + dwLocalAddressLength: DWORD, + dwRemoteAddressLength: DWORD, + lpdwBytesReceived: LPDWORD, + lpOverlapped: LPOVERLAPPED, +): WINBOOL {.winapi, stdcall, dynlib: "mswsock", importc.} + +proc GetAcceptExSockaddrs*( + lpOutputBuffer: PVOID, + dwReceiveDataLength: DWORD, + dwLocalAddressLength: DWORD, + dwRemoteAddressLength: DWORD, + LocalSockaddr: ptr ptr sockaddr, + LocalSockaddrLength: LPINT, + RemoteSockaddr: ptr ptr sockaddr, + RemoteSockaddrLength: LPINT, +): VOID {.winapi, stdcall, dynlib: "mswsock", importc.} + +proc InetNtopA*( + Family: INT, pAddr: PVOID, pStringBuf: LPSTR, StringBufSize: int +): LPCSTR {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_ntop".} + +proc InetPtonA*( + Family: INT, pStringBuf: LPCSTR, pAddr: PVOID +): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_pton".} + +template `<`*(x: TIMEVAL, y: TIMEVAL): bool = + (x.tv_sec < y.tv_sec or (x.tv_sec == y.tv_sec and x.tv_usec < y.tv_usec)) + +template `<=`*(x: TIMEVAL, y: TIMEVAL): bool = + (x.tv_sec < y.tv_sec or (x.tv_sec == y.tv_sec and x.tv_usec <= y.tv_usec)) + +template timerisset*(tvp: TIMEVAL): bool = + tvp.tv_sec != 0 or tvp.tv_usec != 0 + +template timerclear*(tvp: var TIMEVAL) = + tvp.tv_sec = 0 + tvp.tv_usec = 0 + +template IN_CLASSA*(i: untyped): bool = + (i and 0x80000000) == 0 + +template IN_CLASSB*(i: untyped): bool = + (i and 0xc0000000) == 0x80000000 + +template IN_CLASSC*(i: untyped): bool = + (i and 0xe0000000) == 0xc0000000 + +template IN_CLASSD*(i: untyped): bool = + (i and 0xf0000000) == 0xe0000000 + +template IN_MULTICAST*(i: untyped): bool = + IN_CLASSD(i) + +template WSAMAKEASYNCREPLY*(buflen: untyped, error: untyped): untyped = + MAKELONG(buflen, error) + +template WSAMAKESELECTREPLY*(event: untyped, error: untyped): untyped = + MAKELONG(event, error) + +template WSAGETASYNCBUFLEN*(lParam: untyped): untyped = + LOWORD(lParam) + +template WSAGETASYNCERROR*(lParam: untyped): untyped = + HIWORD(lParam) + +template WSAGETSELECTEVENT*(lParam: untyped): untyped = + LOWORD(lParam) + +template WSAGETSELECTERROR*(lParam: untyped): untyped = + HIWORD(lParam) + +proc FD_CLR*( + fd: SOCKET, s: ptr fd_set +): void {.importc: "FD_CLR", header: "".} + +proc FD_SET*( + fd: SOCKET, s: ptr fd_set +): void {.importc: "FD_SET", header: "".} + proc FD_ZERO*(s: ptr fd_set): void {.importc: "FD_ZERO", header: "".} -proc FD_ISSET*(fd: SOCKET, s: ptr fd_set): bool {.winapi, inline.} = bool WSAFDIsSet(fd, s) -proc IN6_ADDR_EQUAL*(a: ptr IN6_ADDR, b: ptr IN6_ADDR): bool {.winapi, inline.} = equalMem(a, b, sizeof(IN6_ADDR)) -proc FreeAddrInfoExA*(pAddrInfo: PADDRINFOEXA): void {.winapi, stdcall, dynlib: "ws2_32", importc: "FreeAddrInfoEx".} -proc `Zone=`*(self: var SCOPE_ID, x: ULONG) {.inline.} = self.union1.struct1.Zone = x -proc Zone*(self: SCOPE_ID): ULONG {.inline.} = self.union1.struct1.Zone -proc `Level=`*(self: var SCOPE_ID, x: ULONG) {.inline.} = self.union1.struct1.Level = x -proc Level*(self: SCOPE_ID): ULONG {.inline.} = self.union1.struct1.Level -proc `Value=`*(self: var SCOPE_ID, x: ULONG) {.inline.} = self.union1.Value = x -proc Value*(self: SCOPE_ID): ULONG {.inline.} = self.union1.Value -proc Value*(self: var SCOPE_ID): var ULONG {.inline.} = self.union1.Value -proc `sin6_scope_id=`*(self: var sockaddr_in6, x: int32) {.inline.} = self.union1.sin6_scope_id = x -proc sin6_scope_id*(self: sockaddr_in6): int32 {.inline.} = self.union1.sin6_scope_id -proc sin6_scope_id*(self: var sockaddr_in6): var int32 {.inline.} = self.union1.sin6_scope_id -proc `sin6_scope_struct=`*(self: var sockaddr_in6, x: SCOPE_ID) {.inline.} = self.union1.sin6_scope_struct = x -proc sin6_scope_struct*(self: sockaddr_in6): SCOPE_ID {.inline.} = self.union1.sin6_scope_struct -proc sin6_scope_struct*(self: var sockaddr_in6): var SCOPE_ID {.inline.} = self.union1.sin6_scope_struct -proc `nFileOffset=`*(self: var TRANSMIT_PACKETS_ELEMENT, x: LARGE_INTEGER) {.inline.} = self.union1.struct1.nFileOffset = x -proc nFileOffset*(self: TRANSMIT_PACKETS_ELEMENT): LARGE_INTEGER {.inline.} = self.union1.struct1.nFileOffset -proc nFileOffset*(self: var TRANSMIT_PACKETS_ELEMENT): var LARGE_INTEGER {.inline.} = self.union1.struct1.nFileOffset -proc `hFile=`*(self: var TRANSMIT_PACKETS_ELEMENT, x: HANDLE) {.inline.} = self.union1.struct1.hFile = x -proc hFile*(self: TRANSMIT_PACKETS_ELEMENT): HANDLE {.inline.} = self.union1.struct1.hFile -proc hFile*(self: var TRANSMIT_PACKETS_ELEMENT): var HANDLE {.inline.} = self.union1.struct1.hFile -proc `pBuffer=`*(self: var TRANSMIT_PACKETS_ELEMENT, x: PVOID) {.inline.} = self.union1.pBuffer = x -proc pBuffer*(self: TRANSMIT_PACKETS_ELEMENT): PVOID {.inline.} = self.union1.pBuffer -proc pBuffer*(self: var TRANSMIT_PACKETS_ELEMENT): var PVOID {.inline.} = self.union1.pBuffer +proc FD_ISSET*(fd: SOCKET, s: ptr fd_set): bool {.winapi, inline.} = + bool WSAFDIsSet(fd, s) + +proc IN6_ADDR_EQUAL*(a: ptr IN6_ADDR, b: ptr IN6_ADDR): bool {.winapi, inline.} = + equalMem(a, b, sizeof(IN6_ADDR)) + +proc FreeAddrInfoExA*( + pAddrInfo: PADDRINFOEXA +): void {.winapi, stdcall, dynlib: "ws2_32", importc: "FreeAddrInfoEx".} + +proc `Zone=`*(self: var SCOPE_ID, x: ULONG) {.inline.} = + self.union1.struct1.Zone = x + +proc Zone*(self: SCOPE_ID): ULONG {.inline.} = + self.union1.struct1.Zone + +proc `Level=`*(self: var SCOPE_ID, x: ULONG) {.inline.} = + self.union1.struct1.Level = x + +proc Level*(self: SCOPE_ID): ULONG {.inline.} = + self.union1.struct1.Level + +proc `Value=`*(self: var SCOPE_ID, x: ULONG) {.inline.} = + self.union1.Value = x + +proc Value*(self: SCOPE_ID): ULONG {.inline.} = + self.union1.Value + +proc Value*(self: var SCOPE_ID): var ULONG {.inline.} = + self.union1.Value + +proc `sin6_scope_id=`*(self: var sockaddr_in6, x: int32) {.inline.} = + self.union1.sin6_scope_id = x + +proc sin6_scope_id*(self: sockaddr_in6): int32 {.inline.} = + self.union1.sin6_scope_id + +proc sin6_scope_id*(self: var sockaddr_in6): var int32 {.inline.} = + self.union1.sin6_scope_id + +proc `sin6_scope_struct=`*(self: var sockaddr_in6, x: SCOPE_ID) {.inline.} = + self.union1.sin6_scope_struct = x + +proc sin6_scope_struct*(self: sockaddr_in6): SCOPE_ID {.inline.} = + self.union1.sin6_scope_struct + +proc sin6_scope_struct*(self: var sockaddr_in6): var SCOPE_ID {.inline.} = + self.union1.sin6_scope_struct + +proc `nFileOffset=`*(self: var TRANSMIT_PACKETS_ELEMENT, x: LARGE_INTEGER) {.inline.} = + self.union1.struct1.nFileOffset = x + +proc nFileOffset*(self: TRANSMIT_PACKETS_ELEMENT): LARGE_INTEGER {.inline.} = + self.union1.struct1.nFileOffset + +proc nFileOffset*(self: var TRANSMIT_PACKETS_ELEMENT): var LARGE_INTEGER {.inline.} = + self.union1.struct1.nFileOffset + +proc `hFile=`*(self: var TRANSMIT_PACKETS_ELEMENT, x: HANDLE) {.inline.} = + self.union1.struct1.hFile = x + +proc hFile*(self: TRANSMIT_PACKETS_ELEMENT): HANDLE {.inline.} = + self.union1.struct1.hFile + +proc hFile*(self: var TRANSMIT_PACKETS_ELEMENT): var HANDLE {.inline.} = + self.union1.struct1.hFile + +proc `pBuffer=`*(self: var TRANSMIT_PACKETS_ELEMENT, x: PVOID) {.inline.} = + self.union1.pBuffer = x + +proc pBuffer*(self: TRANSMIT_PACKETS_ELEMENT): PVOID {.inline.} = + self.union1.pBuffer + +proc pBuffer*(self: var TRANSMIT_PACKETS_ELEMENT): var PVOID {.inline.} = + self.union1.pBuffer + when winimUnicode: type WSAPROTOCOL_INFO* = WSAPROTOCOL_INFOW @@ -1683,41 +2923,196 @@ LPFN_GETADDRINFOEX* = LPFN_GETADDRINFOEXW LPFN_SETADDRINFOEX* = LPFN_SETADDRINFOEXW LPFN_FREEADDRINFOEX* = LPFN_FREEADDRINFOEXW + const SO_PROTOCOL_INFO* = SO_PROTOCOL_INFOW SERVICE_TYPE_VALUE_SAPID* = SERVICE_TYPE_VALUE_SAPIDW SERVICE_TYPE_VALUE_TCPPORT* = SERVICE_TYPE_VALUE_TCPPORTW SERVICE_TYPE_VALUE_UDPPORT* = SERVICE_TYPE_VALUE_UDPPORTW SERVICE_TYPE_VALUE_OBJECTID* = SERVICE_TYPE_VALUE_OBJECTIDW - proc WSADuplicateSocket*(s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSADuplicateSocketW".} - proc WSAEnumProtocols*(lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOW, lpdwBufferLength: LPDWORD): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumProtocolsW".} - proc WSAAddressToString*(lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpszAddressString: LPWSTR, lpdwAddressStringLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAAddressToStringW".} - proc WSASocket*(af: int32, `type`: int32, protocol: int32, lpProtocolInfo: LPWSAPROTOCOL_INFOW, g: GROUP, dwFlags: DWORD): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASocketW".} - proc WSAStringToAddress*(AddressString: LPWSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOW, lpAddress: LPSOCKADDR, lpAddressLength: LPINT): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAStringToAddressW".} - proc WSALookupServiceBegin*(lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceBeginW".} - proc WSALookupServiceNext*(hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETW): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceNextW".} - proc WSAInstallServiceClass*(lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAInstallServiceClassW".} - proc WSAGetServiceClassInfo*(lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOW): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassInfoW".} - proc WSAEnumNameSpaceProviders*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersW".} - proc WSAGetServiceClassNameByClassId*(lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassNameByClassIdW".} - proc WSASetService*(lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASetServiceW".} - proc WSAConnectByName*(s: SOCKET, nodename: LPWSTR, servicename: LPWSTR, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: PTIMEVAL, Reserved: LPWSAOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAConnectByNameW".} - proc WSAEnumNameSpaceProvidersEx*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersExW".} - proc GetAddrInfo*(pNodeName: PCWSTR, pServiceName: PCWSTR, pHints: ptr ADDRINFOW, ppResult: ptr PADDRINFOW): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "GetAddrInfoW".} - proc FreeAddrInfo*(pAddrInfo: PADDRINFOW): void {.winapi, stdcall, dynlib: "ws2_32", importc: "FreeAddrInfoW".} - proc GetNameInfo*(pSockaddr: ptr SOCKADDR, SockaddrLength: socklen_t, pNodeBuffer: PWCHAR, NodeBufferSize: DWORD, pServiceBuffer: PWCHAR, ServiceBufferSize: DWORD, Flags: INT): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "GetNameInfoW".} - proc RtlIpv6AddressToString*(Addr: ptr IN6_ADDR, S: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringW".} - proc RtlIpv6AddressToStringEx*(Address: ptr IN6_ADDR, ScopeId: ULONG, Port: USHORT, AddressString: LPWSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringExW".} - proc RtlIpv4AddressToString*(Addr: ptr IN_ADDR, S: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringW".} - proc RtlIpv4AddressToStringEx*(Address: ptr IN_ADDR, Port: USHORT, AddressString: LPWSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringExW".} - proc RtlIpv4StringToAddress*(S: PCWSTR, Strict: BOOLEAN, Terminator: ptr LPWSTR, Addr: ptr IN_ADDR): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressW".} - proc RtlIpv4StringToAddressEx*(AddressString: PCWSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressExW".} - proc RtlIpv6StringToAddressEx*(AddressString: PCWSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6StringToAddressExW".} - proc GetAddrInfoEx*(pName: PCWSTR, pServiceName: PCWSTR, dwNameSpace: DWORD, lpNspId: LPGUID, pHints: ptr ADDRINFOEXW, ppResult: ptr PADDRINFOEXW, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "GetAddrInfoExW".} - proc SetAddrInfoEx*(pName: PCWSTR, pServiceName: PCWSTR, pAddresses: ptr SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "SetAddrInfoExW".} - proc FreeAddrInfoEx*(pAddrInfo: PADDRINFOEXW): void {.winapi, stdcall, dynlib: "ws2_32", importc: "FreeAddrInfoExW".} - proc InetNtop*(Family: INT, pAddr: PVOID, pStringBuf: LPWSTR, StringBufSIze: int): LPCWSTR {.winapi, stdcall, dynlib: "ws2_32", importc: "InetNtopW".} - proc InetPton*(Family: INT, pStringBuf: LPCWSTR, pAddr: PVOID): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "InetPtonW".} + proc WSADuplicateSocket*( + s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOW + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSADuplicateSocketW".} + + proc WSAEnumProtocols*( + lpiProtocols: LPINT, + lpProtocolBuffer: LPWSAPROTOCOL_INFOW, + lpdwBufferLength: LPDWORD, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumProtocolsW".} + + proc WSAAddressToString*( + lpsaAddress: LPSOCKADDR, + dwAddressLength: DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + lpszAddressString: LPWSTR, + lpdwAddressStringLength: LPDWORD, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAAddressToStringW".} + + proc WSASocket*( + af: int32, + `type`: int32, + protocol: int32, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + g: GROUP, + dwFlags: DWORD, + ): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASocketW".} + + proc WSAStringToAddress*( + AddressString: LPWSTR, + AddressFamily: INT, + lpProtocolInfo: LPWSAPROTOCOL_INFOW, + lpAddress: LPSOCKADDR, + lpAddressLength: LPINT, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAStringToAddressW".} + + proc WSALookupServiceBegin*( + lpqsRestrictions: LPWSAQUERYSETW, dwControlFlags: DWORD, lphLookup: LPHANDLE + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceBeginW".} + + proc WSALookupServiceNext*( + hLookup: HANDLE, + dwControlFlags: DWORD, + lpdwBufferLength: LPDWORD, + lpqsResults: LPWSAQUERYSETW, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceNextW".} + + proc WSAInstallServiceClass*( + lpServiceClassInfo: LPWSASERVICECLASSINFOW + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAInstallServiceClassW".} + + proc WSAGetServiceClassInfo*( + lpProviderId: LPGUID, + lpServiceClassId: LPGUID, + lpdwBufSize: LPDWORD, + lpServiceClassInfo: LPWSASERVICECLASSINFOW, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassInfoW".} + + proc WSAEnumNameSpaceProviders*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOW + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersW".} + + proc WSAGetServiceClassNameByClassId*( + lpServiceClassId: LPGUID, lpszServiceClassName: LPWSTR, lpdwBufferLength: LPDWORD + ): INT {. + winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassNameByClassIdW" + .} + + proc WSASetService*( + lpqsRegInfo: LPWSAQUERYSETW, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASetServiceW".} + + proc WSAConnectByName*( + s: SOCKET, + nodename: LPWSTR, + servicename: LPWSTR, + LocalAddressLength: LPDWORD, + LocalAddress: LPSOCKADDR, + RemoteAddressLength: LPDWORD, + RemoteAddress: LPSOCKADDR, + timeout: PTIMEVAL, + Reserved: LPWSAOVERLAPPED, + ): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAConnectByNameW".} + + proc WSAEnumNameSpaceProvidersEx*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXW + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersExW".} + + proc GetAddrInfo*( + pNodeName: PCWSTR, + pServiceName: PCWSTR, + pHints: ptr ADDRINFOW, + ppResult: ptr PADDRINFOW, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "GetAddrInfoW".} + + proc FreeAddrInfo*( + pAddrInfo: PADDRINFOW + ): void {.winapi, stdcall, dynlib: "ws2_32", importc: "FreeAddrInfoW".} + + proc GetNameInfo*( + pSockaddr: ptr SOCKADDR, + SockaddrLength: socklen_t, + pNodeBuffer: PWCHAR, + NodeBufferSize: DWORD, + pServiceBuffer: PWCHAR, + ServiceBufferSize: DWORD, + Flags: INT, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "GetNameInfoW".} + + proc RtlIpv6AddressToString*( + Addr: ptr IN6_ADDR, S: LPWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringW".} + + proc RtlIpv6AddressToStringEx*( + Address: ptr IN6_ADDR, + ScopeId: ULONG, + Port: USHORT, + AddressString: LPWSTR, + AddressStringLength: PULONG, + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringExW".} + + proc RtlIpv4AddressToString*( + Addr: ptr IN_ADDR, S: LPWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringW".} + + proc RtlIpv4AddressToStringEx*( + Address: ptr IN_ADDR, + Port: USHORT, + AddressString: LPWSTR, + AddressStringLength: PULONG, + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringExW".} + + proc RtlIpv4StringToAddress*( + S: PCWSTR, Strict: BOOLEAN, Terminator: ptr LPWSTR, Addr: ptr IN_ADDR + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressW".} + + proc RtlIpv4StringToAddressEx*( + AddressString: PCWSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressExW".} + + proc RtlIpv6StringToAddressEx*( + AddressString: PCWSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6StringToAddressExW".} + + proc GetAddrInfoEx*( + pName: PCWSTR, + pServiceName: PCWSTR, + dwNameSpace: DWORD, + lpNspId: LPGUID, + pHints: ptr ADDRINFOEXW, + ppResult: ptr PADDRINFOEXW, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "GetAddrInfoExW".} + + proc SetAddrInfoEx*( + pName: PCWSTR, + pServiceName: PCWSTR, + pAddresses: ptr SOCKET_ADDRESS, + dwAddressCount: DWORD, + lpBlob: LPBLOB, + dwFlags: DWORD, + dwNameSpace: DWORD, + lpNspId: LPGUID, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "SetAddrInfoExW".} + + proc FreeAddrInfoEx*( + pAddrInfo: PADDRINFOEXW + ): void {.winapi, stdcall, dynlib: "ws2_32", importc: "FreeAddrInfoExW".} + + proc InetNtop*( + Family: INT, pAddr: PVOID, pStringBuf: LPWSTR, StringBufSIze: int + ): LPCWSTR {.winapi, stdcall, dynlib: "ws2_32", importc: "InetNtopW".} + + proc InetPton*( + Family: INT, pStringBuf: LPCWSTR, pAddr: PVOID + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "InetPtonW".} + when winimAnsi: type WSAPROTOCOL_INFO* = WSAPROTOCOL_INFOA @@ -1757,38 +3152,189 @@ LPFN_GETADDRINFOEX* = LPFN_GETADDRINFOEXA LPFN_SETADDRINFOEX* = LPFN_SETADDRINFOEXA LPFN_FREEADDRINFOEX* = LPFN_FREEADDRINFOEXA + const SO_PROTOCOL_INFO* = SO_PROTOCOL_INFOA SERVICE_TYPE_VALUE_SAPID* = SERVICE_TYPE_VALUE_SAPIDA SERVICE_TYPE_VALUE_TCPPORT* = SERVICE_TYPE_VALUE_TCPPORTA SERVICE_TYPE_VALUE_UDPPORT* = SERVICE_TYPE_VALUE_UDPPORTA SERVICE_TYPE_VALUE_OBJECTID* = SERVICE_TYPE_VALUE_OBJECTIDA - proc WSADuplicateSocket*(s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSADuplicateSocketA".} - proc WSAEnumProtocols*(lpiProtocols: LPINT, lpProtocolBuffer: LPWSAPROTOCOL_INFOA, lpdwBufferLength: LPDWORD): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumProtocolsA".} - proc WSAAddressToString*(lpsaAddress: LPSOCKADDR, dwAddressLength: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpszAddressString: LPSTR, lpdwAddressStringLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAAddressToStringA".} - proc WSASocket*(af: int32, `type`: int32, protocol: int32, lpProtocolInfo: LPWSAPROTOCOL_INFOA, g: GROUP, dwFlags: DWORD): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASocketA".} - proc WSAStringToAddress*(AddressString: LPSTR, AddressFamily: INT, lpProtocolInfo: LPWSAPROTOCOL_INFOA, lpAddress: LPSOCKADDR, lpAddressLength: LPINT): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAStringToAddressA".} - proc WSALookupServiceBegin*(lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceBeginA".} - proc WSALookupServiceNext*(hLookup: HANDLE, dwControlFlags: DWORD, lpdwBufferLength: LPDWORD, lpqsResults: LPWSAQUERYSETA): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceNextA".} - proc WSAInstallServiceClass*(lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAInstallServiceClassA".} - proc WSAGetServiceClassInfo*(lpProviderId: LPGUID, lpServiceClassId: LPGUID, lpdwBufSize: LPDWORD, lpServiceClassInfo: LPWSASERVICECLASSINFOA): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassInfoA".} - proc WSAEnumNameSpaceProviders*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersA".} - proc WSAGetServiceClassNameByClassId*(lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassNameByClassIdA".} - proc WSASetService*(lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASetServiceA".} - proc WSAConnectByName*(s: SOCKET, nodename: LPSTR, servicename: LPSTR, LocalAddressLength: LPDWORD, LocalAddress: LPSOCKADDR, RemoteAddressLength: LPDWORD, RemoteAddress: LPSOCKADDR, timeout: PTIMEVAL, Reserved: LPWSAOVERLAPPED): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAConnectByNameA".} - proc WSAEnumNameSpaceProvidersEx*(lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXA): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersExA".} - proc GetAddrInfo*(nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getaddrinfo".} - proc FreeAddrInfo*(pAddrInfo: LPADDRINFO): void {.winapi, stdcall, dynlib: "ws2_32", importc: "freeaddrinfo".} - proc GetNameInfo*(sa: ptr sockaddr, salen: socklen_t, host: ptr char, hostlen: DWORD, serv: ptr char, servlen: DWORD, flags: int32): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getnameinfo".} - proc RtlIpv6AddressToString*(Addr: ptr IN6_ADDR, S: LPSTR): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringA".} - proc RtlIpv6AddressToStringEx*(Address: ptr IN6_ADDR, ScopeId: ULONG, Port: USHORT, AddressString: LPSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringExA".} - proc RtlIpv4AddressToString*(Addr: ptr IN_ADDR, S: LPSTR): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringA".} - proc RtlIpv4AddressToStringEx*(Address: ptr IN_ADDR, Port: USHORT, AddressString: LPSTR, AddressStringLength: PULONG): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringExA".} - proc RtlIpv4StringToAddress*(S: PCSTR, Strict: BOOLEAN, Terminator: ptr LPSTR, Addr: ptr IN_ADDR): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressA".} - proc RtlIpv4StringToAddressEx*(AddressString: PCSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressExA".} - proc RtlIpv6StringToAddressEx*(AddressString: PCSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6StringToAddressExA".} - proc GetAddrInfoEx*(pName: PCSTR, pServiceName: PCSTR, dwNameSpace: DWORD, lpNspId: LPGUID, pHints: ptr ADDRINFOEXA, ppResult: ptr PADDRINFOEXA, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "GetAddrInfoExA".} - proc SetAddrInfoEx*(pName: PCSTR, pServiceName: PCSTR, pAddresses: ptr SOCKET_ADDRESS, dwAddressCount: DWORD, lpBlob: LPBLOB, dwFlags: DWORD, dwNameSpace: DWORD, lpNspId: LPGUID, timeout: PTIMEVAL, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, lpNameHandle: LPHANDLE): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "SetAddrInfoExA".} - proc InetNtop*(Family: INT, pAddr: PVOID, pStringBuf: LPSTR, StringBufSize: int): LPCSTR {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_ntop".} - proc InetPton*(Family: INT, pStringBuf: LPCSTR, pAddr: PVOID): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_pton".} - proc FreeAddrInfoEx*(pAddrInfo: PADDRINFOEXA): void {.winapi, stdcall, dynlib: "ws2_32", importc.} + proc WSADuplicateSocket*( + s: SOCKET, dwProcessId: DWORD, lpProtocolInfo: LPWSAPROTOCOL_INFOA + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSADuplicateSocketA".} + + proc WSAEnumProtocols*( + lpiProtocols: LPINT, + lpProtocolBuffer: LPWSAPROTOCOL_INFOA, + lpdwBufferLength: LPDWORD, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumProtocolsA".} + + proc WSAAddressToString*( + lpsaAddress: LPSOCKADDR, + dwAddressLength: DWORD, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + lpszAddressString: LPSTR, + lpdwAddressStringLength: LPDWORD, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAAddressToStringA".} + + proc WSASocket*( + af: int32, + `type`: int32, + protocol: int32, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + g: GROUP, + dwFlags: DWORD, + ): SOCKET {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASocketA".} + + proc WSAStringToAddress*( + AddressString: LPSTR, + AddressFamily: INT, + lpProtocolInfo: LPWSAPROTOCOL_INFOA, + lpAddress: LPSOCKADDR, + lpAddressLength: LPINT, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAStringToAddressA".} + + proc WSALookupServiceBegin*( + lpqsRestrictions: LPWSAQUERYSETA, dwControlFlags: DWORD, lphLookup: LPHANDLE + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceBeginA".} + + proc WSALookupServiceNext*( + hLookup: HANDLE, + dwControlFlags: DWORD, + lpdwBufferLength: LPDWORD, + lpqsResults: LPWSAQUERYSETA, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSALookupServiceNextA".} + + proc WSAInstallServiceClass*( + lpServiceClassInfo: LPWSASERVICECLASSINFOA + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAInstallServiceClassA".} + + proc WSAGetServiceClassInfo*( + lpProviderId: LPGUID, + lpServiceClassId: LPGUID, + lpdwBufSize: LPDWORD, + lpServiceClassInfo: LPWSASERVICECLASSINFOA, + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassInfoA".} + + proc WSAEnumNameSpaceProviders*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOA + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersA".} + + proc WSAGetServiceClassNameByClassId*( + lpServiceClassId: LPGUID, lpszServiceClassName: LPSTR, lpdwBufferLength: LPDWORD + ): INT {. + winapi, stdcall, dynlib: "ws2_32", importc: "WSAGetServiceClassNameByClassIdA" + .} + + proc WSASetService*( + lpqsRegInfo: LPWSAQUERYSETA, essoperation: WSAESETSERVICEOP, dwControlFlags: DWORD + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSASetServiceA".} + + proc WSAConnectByName*( + s: SOCKET, + nodename: LPSTR, + servicename: LPSTR, + LocalAddressLength: LPDWORD, + LocalAddress: LPSOCKADDR, + RemoteAddressLength: LPDWORD, + RemoteAddress: LPSOCKADDR, + timeout: PTIMEVAL, + Reserved: LPWSAOVERLAPPED, + ): WINBOOL {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAConnectByNameA".} + + proc WSAEnumNameSpaceProvidersEx*( + lpdwBufferLength: LPDWORD, lpnspBuffer: LPWSANAMESPACE_INFOEXA + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "WSAEnumNameSpaceProvidersExA".} + + proc GetAddrInfo*( + nodename: ptr char, servname: ptr char, hints: ptr ADDRINFOA, res: ptr ptr ADDRINFOA + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getaddrinfo".} + + proc FreeAddrInfo*( + pAddrInfo: LPADDRINFO + ): void {.winapi, stdcall, dynlib: "ws2_32", importc: "freeaddrinfo".} + + proc GetNameInfo*( + sa: ptr sockaddr, + salen: socklen_t, + host: ptr char, + hostlen: DWORD, + serv: ptr char, + servlen: DWORD, + flags: int32, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "getnameinfo".} + + proc RtlIpv6AddressToString*( + Addr: ptr IN6_ADDR, S: LPSTR + ): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringA".} + + proc RtlIpv6AddressToStringEx*( + Address: ptr IN6_ADDR, + ScopeId: ULONG, + Port: USHORT, + AddressString: LPSTR, + AddressStringLength: PULONG, + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6AddressToStringExA".} + + proc RtlIpv4AddressToString*( + Addr: ptr IN_ADDR, S: LPSTR + ): LPSTR {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringA".} + + proc RtlIpv4AddressToStringEx*( + Address: ptr IN_ADDR, + Port: USHORT, + AddressString: LPSTR, + AddressStringLength: PULONG, + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4AddressToStringExA".} + + proc RtlIpv4StringToAddress*( + S: PCSTR, Strict: BOOLEAN, Terminator: ptr LPSTR, Addr: ptr IN_ADDR + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressA".} + + proc RtlIpv4StringToAddressEx*( + AddressString: PCSTR, Strict: BOOLEAN, Address: ptr IN_ADDR, Port: PUSHORT + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv4StringToAddressExA".} + + proc RtlIpv6StringToAddressEx*( + AddressString: PCSTR, Address: ptr IN6_ADDR, ScopeId: PULONG, Port: PUSHORT + ): LONG {.winapi, stdcall, dynlib: "ntdll", importc: "RtlIpv6StringToAddressExA".} + + proc GetAddrInfoEx*( + pName: PCSTR, + pServiceName: PCSTR, + dwNameSpace: DWORD, + lpNspId: LPGUID, + pHints: ptr ADDRINFOEXA, + ppResult: ptr PADDRINFOEXA, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "GetAddrInfoExA".} + + proc SetAddrInfoEx*( + pName: PCSTR, + pServiceName: PCSTR, + pAddresses: ptr SOCKET_ADDRESS, + dwAddressCount: DWORD, + lpBlob: LPBLOB, + dwFlags: DWORD, + dwNameSpace: DWORD, + lpNspId: LPGUID, + timeout: PTIMEVAL, + lpOverlapped: LPOVERLAPPED, + lpCompletionRoutine: LPLOOKUPSERVICE_COMPLETION_ROUTINE, + lpNameHandle: LPHANDLE, + ): int32 {.winapi, stdcall, dynlib: "ws2_32", importc: "SetAddrInfoExA".} + + proc InetNtop*( + Family: INT, pAddr: PVOID, pStringBuf: LPSTR, StringBufSize: int + ): LPCSTR {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_ntop".} + + proc InetPton*( + Family: INT, pStringBuf: LPCSTR, pAddr: PVOID + ): INT {.winapi, stdcall, dynlib: "ws2_32", importc: "inet_pton".} + + proc FreeAddrInfoEx*( + pAddrInfo: PADDRINFOEXA + ): void {.winapi, stdcall, dynlib: "ws2_32", importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winspool.nim --- a/semicongine/thirdparty/winim/winim/inc/winspool.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winspool.nim Thu Aug 22 18:32:21 2024 +0700 @@ -20,6 +20,7 @@ pDescription*: LPSTR pName*: LPSTR pComment*: LPSTR + PPRINTER_INFO_1A* = ptr PRINTER_INFO_1A LPPRINTER_INFO_1A* = ptr PRINTER_INFO_1A PRINTER_INFO_1W* {.pure.} = object @@ -27,6 +28,7 @@ pDescription*: LPWSTR pName*: LPWSTR pComment*: LPWSTR + PPRINTER_INFO_1W* = ptr PRINTER_INFO_1W LPPRINTER_INFO_1W* = ptr PRINTER_INFO_1W PRINTER_INFO_2A* {.pure.} = object @@ -51,6 +53,7 @@ Status*: DWORD cJobs*: DWORD AveragePPM*: DWORD + PPRINTER_INFO_2A* = ptr PRINTER_INFO_2A LPPRINTER_INFO_2A* = ptr PRINTER_INFO_2A PRINTER_INFO_2W* {.pure.} = object @@ -75,22 +78,26 @@ Status*: DWORD cJobs*: DWORD AveragePPM*: DWORD + PPRINTER_INFO_2W* = ptr PRINTER_INFO_2W LPPRINTER_INFO_2W* = ptr PRINTER_INFO_2W PRINTER_INFO_3* {.pure.} = object pSecurityDescriptor*: PSECURITY_DESCRIPTOR + PPRINTER_INFO_3* = ptr PRINTER_INFO_3 LPPRINTER_INFO_3* = ptr PRINTER_INFO_3 PRINTER_INFO_4A* {.pure.} = object pPrinterName*: LPSTR pServerName*: LPSTR Attributes*: DWORD + PPRINTER_INFO_4A* = ptr PRINTER_INFO_4A LPPRINTER_INFO_4A* = ptr PRINTER_INFO_4A PRINTER_INFO_4W* {.pure.} = object pPrinterName*: LPWSTR pServerName*: LPWSTR Attributes*: DWORD + PPRINTER_INFO_4W* = ptr PRINTER_INFO_4W LPPRINTER_INFO_4W* = ptr PRINTER_INFO_4W PRINTER_INFO_5A* {.pure.} = object @@ -99,6 +106,7 @@ Attributes*: DWORD DeviceNotSelectedTimeout*: DWORD TransmissionRetryTimeout*: DWORD + PPRINTER_INFO_5A* = ptr PRINTER_INFO_5A LPPRINTER_INFO_5A* = ptr PRINTER_INFO_5A PRINTER_INFO_5W* {.pure.} = object @@ -107,36 +115,44 @@ Attributes*: DWORD DeviceNotSelectedTimeout*: DWORD TransmissionRetryTimeout*: DWORD + PPRINTER_INFO_5W* = ptr PRINTER_INFO_5W LPPRINTER_INFO_5W* = ptr PRINTER_INFO_5W PRINTER_INFO_6* {.pure.} = object dwStatus*: DWORD + PPRINTER_INFO_6* = ptr PRINTER_INFO_6 LPPRINTER_INFO_6* = ptr PRINTER_INFO_6 PRINTER_INFO_7A* {.pure.} = object pszObjectGUID*: LPSTR dwAction*: DWORD + PPRINTER_INFO_7A* = ptr PRINTER_INFO_7A LPPRINTER_INFO_7A* = ptr PRINTER_INFO_7A PRINTER_INFO_7W* {.pure.} = object pszObjectGUID*: LPWSTR dwAction*: DWORD + PPRINTER_INFO_7W* = ptr PRINTER_INFO_7W LPPRINTER_INFO_7W* = ptr PRINTER_INFO_7W PRINTER_INFO_8A* {.pure.} = object pDevMode*: LPDEVMODEA + PPRINTER_INFO_8A* = ptr PRINTER_INFO_8A LPPRINTER_INFO_8A* = ptr PRINTER_INFO_8A PRINTER_INFO_8W* {.pure.} = object pDevMode*: LPDEVMODEW + PPRINTER_INFO_8W* = ptr PRINTER_INFO_8W LPPRINTER_INFO_8W* = ptr PRINTER_INFO_8W PRINTER_INFO_9A* {.pure.} = object pDevMode*: LPDEVMODEA + PPRINTER_INFO_9A* = ptr PRINTER_INFO_9A LPPRINTER_INFO_9A* = ptr PRINTER_INFO_9A PRINTER_INFO_9W* {.pure.} = object pDevMode*: LPDEVMODEW + PPRINTER_INFO_9W* = ptr PRINTER_INFO_9W LPPRINTER_INFO_9W* = ptr PRINTER_INFO_9W JOB_INFO_1A* {.pure.} = object @@ -153,6 +169,7 @@ TotalPages*: DWORD PagesPrinted*: DWORD Submitted*: SYSTEMTIME + PJOB_INFO_1A* = ptr JOB_INFO_1A LPJOB_INFO_1A* = ptr JOB_INFO_1A JOB_INFO_1W* {.pure.} = object @@ -169,6 +186,7 @@ TotalPages*: DWORD PagesPrinted*: DWORD Submitted*: SYSTEMTIME + PJOB_INFO_1W* = ptr JOB_INFO_1W LPJOB_INFO_1W* = ptr JOB_INFO_1W JOB_INFO_2A* {.pure.} = object @@ -195,6 +213,7 @@ Submitted*: SYSTEMTIME Time*: DWORD PagesPrinted*: DWORD + PJOB_INFO_2A* = ptr JOB_INFO_2A LPJOB_INFO_2A* = ptr JOB_INFO_2A JOB_INFO_2W* {.pure.} = object @@ -221,30 +240,36 @@ Submitted*: SYSTEMTIME Time*: DWORD PagesPrinted*: DWORD + PJOB_INFO_2W* = ptr JOB_INFO_2W LPJOB_INFO_2W* = ptr JOB_INFO_2W JOB_INFO_3* {.pure.} = object JobId*: DWORD NextJobId*: DWORD Reserved*: DWORD + PJOB_INFO_3* = ptr JOB_INFO_3 LPJOB_INFO_3* = ptr JOB_INFO_3 ADDJOB_INFO_1A* {.pure.} = object Path*: LPSTR JobId*: DWORD + PADDJOB_INFO_1A* = ptr ADDJOB_INFO_1A LPADDJOB_INFO_1A* = ptr ADDJOB_INFO_1A ADDJOB_INFO_1W* {.pure.} = object Path*: LPWSTR JobId*: DWORD + PADDJOB_INFO_1W* = ptr ADDJOB_INFO_1W LPADDJOB_INFO_1W* = ptr ADDJOB_INFO_1W DRIVER_INFO_1A* {.pure.} = object pName*: LPSTR + PDRIVER_INFO_1A* = ptr DRIVER_INFO_1A LPDRIVER_INFO_1A* = ptr DRIVER_INFO_1A DRIVER_INFO_1W* {.pure.} = object pName*: LPWSTR + PDRIVER_INFO_1W* = ptr DRIVER_INFO_1W LPDRIVER_INFO_1W* = ptr DRIVER_INFO_1W DRIVER_INFO_2A* {.pure.} = object @@ -254,6 +279,7 @@ pDriverPath*: LPSTR pDataFile*: LPSTR pConfigFile*: LPSTR + PDRIVER_INFO_2A* = ptr DRIVER_INFO_2A LPDRIVER_INFO_2A* = ptr DRIVER_INFO_2A DRIVER_INFO_2W* {.pure.} = object @@ -263,6 +289,7 @@ pDriverPath*: LPWSTR pDataFile*: LPWSTR pConfigFile*: LPWSTR + PDRIVER_INFO_2W* = ptr DRIVER_INFO_2W LPDRIVER_INFO_2W* = ptr DRIVER_INFO_2W DRIVER_INFO_3A* {.pure.} = object @@ -276,6 +303,7 @@ pDependentFiles*: LPSTR pMonitorName*: LPSTR pDefaultDataType*: LPSTR + PDRIVER_INFO_3A* = ptr DRIVER_INFO_3A LPDRIVER_INFO_3A* = ptr DRIVER_INFO_3A DRIVER_INFO_3W* {.pure.} = object @@ -289,6 +317,7 @@ pDependentFiles*: LPWSTR pMonitorName*: LPWSTR pDefaultDataType*: LPWSTR + PDRIVER_INFO_3W* = ptr DRIVER_INFO_3W LPDRIVER_INFO_3W* = ptr DRIVER_INFO_3W DRIVER_INFO_4A* {.pure.} = object @@ -303,6 +332,7 @@ pMonitorName*: LPSTR pDefaultDataType*: LPSTR pszzPreviousNames*: LPSTR + PDRIVER_INFO_4A* = ptr DRIVER_INFO_4A LPDRIVER_INFO_4A* = ptr DRIVER_INFO_4A DRIVER_INFO_4W* {.pure.} = object @@ -317,6 +347,7 @@ pMonitorName*: LPWSTR pDefaultDataType*: LPWSTR pszzPreviousNames*: LPWSTR + PDRIVER_INFO_4W* = ptr DRIVER_INFO_4W LPDRIVER_INFO_4W* = ptr DRIVER_INFO_4W DRIVER_INFO_5A* {.pure.} = object @@ -329,6 +360,7 @@ dwDriverAttributes*: DWORD dwConfigVersion*: DWORD dwDriverVersion*: DWORD + PDRIVER_INFO_5A* = ptr DRIVER_INFO_5A LPDRIVER_INFO_5A* = ptr DRIVER_INFO_5A DRIVER_INFO_5W* {.pure.} = object @@ -341,6 +373,7 @@ dwDriverAttributes*: DWORD dwConfigVersion*: DWORD dwDriverVersion*: DWORD + PDRIVER_INFO_5W* = ptr DRIVER_INFO_5W LPDRIVER_INFO_5W* = ptr DRIVER_INFO_5W DRIVER_INFO_6A* {.pure.} = object @@ -361,6 +394,7 @@ pszOEMUrl*: LPSTR pszHardwareID*: LPSTR pszProvider*: LPSTR + PDRIVER_INFO_6A* = ptr DRIVER_INFO_6A LPDRIVER_INFO_6A* = ptr DRIVER_INFO_6A DRIVER_INFO_6W* {.pure.} = object @@ -381,18 +415,21 @@ pszOEMUrl*: LPWSTR pszHardwareID*: LPWSTR pszProvider*: LPWSTR + PDRIVER_INFO_6W* = ptr DRIVER_INFO_6W LPDRIVER_INFO_6W* = ptr DRIVER_INFO_6W DOC_INFO_1A* {.pure.} = object pDocName*: LPSTR pOutputFile*: LPSTR pDatatype*: LPSTR + PDOC_INFO_1A* = ptr DOC_INFO_1A LPDOC_INFO_1A* = ptr DOC_INFO_1A DOC_INFO_1W* {.pure.} = object pDocName*: LPWSTR pOutputFile*: LPWSTR pDatatype*: LPWSTR + PDOC_INFO_1W* = ptr DOC_INFO_1W LPDOC_INFO_1W* = ptr DOC_INFO_1W FORM_INFO_1A* {.pure.} = object @@ -400,6 +437,7 @@ pName*: LPSTR Size*: SIZEL ImageableArea*: RECTL + PFORM_INFO_1A* = ptr FORM_INFO_1A LPFORM_INFO_1A* = ptr FORM_INFO_1A FORM_INFO_1W* {.pure.} = object @@ -407,6 +445,7 @@ pName*: LPWSTR Size*: SIZEL ImageableArea*: RECTL + PFORM_INFO_1W* = ptr FORM_INFO_1W LPFORM_INFO_1W* = ptr FORM_INFO_1W DOC_INFO_2A* {.pure.} = object @@ -415,6 +454,7 @@ pDatatype*: LPSTR dwMode*: DWORD JobId*: DWORD + PDOC_INFO_2A* = ptr DOC_INFO_2A LPDOC_INFO_2A* = ptr DOC_INFO_2A DOC_INFO_2W* {.pure.} = object @@ -423,6 +463,7 @@ pDatatype*: LPWSTR dwMode*: DWORD JobId*: DWORD + PDOC_INFO_2W* = ptr DOC_INFO_2W LPDOC_INFO_2W* = ptr DOC_INFO_2W DOC_INFO_3A* {.pure.} = object @@ -430,6 +471,7 @@ pOutputFile*: LPSTR pDatatype*: LPSTR dwFlags*: DWORD + PDOC_INFO_3A* = ptr DOC_INFO_3A LPDOC_INFO_3A* = ptr DOC_INFO_3A DOC_INFO_3W* {.pure.} = object @@ -437,14 +479,17 @@ pOutputFile*: LPWSTR pDatatype*: LPWSTR dwFlags*: DWORD + PDOC_INFO_3W* = ptr DOC_INFO_3W LPDOC_INFO_3W* = ptr DOC_INFO_3W PRINTPROCESSOR_INFO_1A* {.pure.} = object pName*: LPSTR + PPRINTPROCESSOR_INFO_1A* = ptr PRINTPROCESSOR_INFO_1A LPPRINTPROCESSOR_INFO_1A* = ptr PRINTPROCESSOR_INFO_1A PRINTPROCESSOR_INFO_1W* {.pure.} = object pName*: LPWSTR + PPRINTPROCESSOR_INFO_1W* = ptr PRINTPROCESSOR_INFO_1W LPPRINTPROCESSOR_INFO_1W* = ptr PRINTPROCESSOR_INFO_1W PRINTPROCESSOR_CAPS_1* {.pure.} = object @@ -452,13 +497,16 @@ dwNupOptions*: DWORD dwPageOrderFlags*: DWORD dwNumberOfCopies*: DWORD + PPRINTPROCESSOR_CAPS_1* = ptr PRINTPROCESSOR_CAPS_1 PORT_INFO_1A* {.pure.} = object pName*: LPSTR + PPORT_INFO_1A* = ptr PORT_INFO_1A LPPORT_INFO_1A* = ptr PORT_INFO_1A PORT_INFO_1W* {.pure.} = object pName*: LPWSTR + PPORT_INFO_1W* = ptr PORT_INFO_1W LPPORT_INFO_1W* = ptr PORT_INFO_1W PORT_INFO_2A* {.pure.} = object @@ -467,6 +515,7 @@ pDescription*: LPSTR fPortType*: DWORD Reserved*: DWORD + PPORT_INFO_2A* = ptr PORT_INFO_2A LPPORT_INFO_2A* = ptr PORT_INFO_2A PORT_INFO_2W* {.pure.} = object @@ -475,58 +524,69 @@ pDescription*: LPWSTR fPortType*: DWORD Reserved*: DWORD + PPORT_INFO_2W* = ptr PORT_INFO_2W LPPORT_INFO_2W* = ptr PORT_INFO_2W PORT_INFO_3A* {.pure.} = object dwStatus*: DWORD pszStatus*: LPSTR dwSeverity*: DWORD + PPORT_INFO_3A* = ptr PORT_INFO_3A LPPORT_INFO_3A* = ptr PORT_INFO_3A PORT_INFO_3W* {.pure.} = object dwStatus*: DWORD pszStatus*: LPWSTR dwSeverity*: DWORD + PPORT_INFO_3W* = ptr PORT_INFO_3W LPPORT_INFO_3W* = ptr PORT_INFO_3W MONITOR_INFO_1A* {.pure.} = object pName*: LPSTR + PMONITOR_INFO_1A* = ptr MONITOR_INFO_1A LPMONITOR_INFO_1A* = ptr MONITOR_INFO_1A MONITOR_INFO_1W* {.pure.} = object pName*: LPWSTR + PMONITOR_INFO_1W* = ptr MONITOR_INFO_1W LPMONITOR_INFO_1W* = ptr MONITOR_INFO_1W MONITOR_INFO_2A* {.pure.} = object pName*: LPSTR pEnvironment*: LPSTR pDLLName*: LPSTR + PMONITOR_INFO_2A* = ptr MONITOR_INFO_2A LPMONITOR_INFO_2A* = ptr MONITOR_INFO_2A MONITOR_INFO_2W* {.pure.} = object pName*: LPWSTR pEnvironment*: LPWSTR pDLLName*: LPWSTR + PMONITOR_INFO_2W* = ptr MONITOR_INFO_2W LPMONITOR_INFO_2W* = ptr MONITOR_INFO_2W DATATYPES_INFO_1A* {.pure.} = object pName*: LPSTR + PDATATYPES_INFO_1A* = ptr DATATYPES_INFO_1A LPDATATYPES_INFO_1A* = ptr DATATYPES_INFO_1A DATATYPES_INFO_1W* {.pure.} = object pName*: LPWSTR + PDATATYPES_INFO_1W* = ptr DATATYPES_INFO_1W LPDATATYPES_INFO_1W* = ptr DATATYPES_INFO_1W PRINTER_DEFAULTSA* {.pure.} = object pDatatype*: LPSTR pDevMode*: LPDEVMODEA DesiredAccess*: ACCESS_MASK + PPRINTER_DEFAULTSA* = ptr PRINTER_DEFAULTSA LPPRINTER_DEFAULTSA* = ptr PRINTER_DEFAULTSA PRINTER_DEFAULTSW* {.pure.} = object pDatatype*: LPWSTR pDevMode*: LPDEVMODEW DesiredAccess*: ACCESS_MASK + PPRINTER_DEFAULTSW* = ptr PRINTER_DEFAULTSW LPPRINTER_DEFAULTSW* = ptr PRINTER_DEFAULTSW PRINTER_ENUM_VALUESA* {.pure.} = object @@ -535,6 +595,7 @@ dwType*: DWORD pData*: LPBYTE cbData*: DWORD + PPRINTER_ENUM_VALUESA* = ptr PRINTER_ENUM_VALUESA LPPRINTER_ENUM_VALUESA* = ptr PRINTER_ENUM_VALUESA PRINTER_ENUM_VALUESW* {.pure.} = object @@ -543,6 +604,7 @@ dwType*: DWORD pData*: LPBYTE cbData*: DWORD + PPRINTER_ENUM_VALUESW* = ptr PRINTER_ENUM_VALUESW LPPRINTER_ENUM_VALUESW* = ptr PRINTER_ENUM_VALUESW PRINTER_NOTIFY_OPTIONS_TYPE* {.pure.} = object @@ -552,6 +614,7 @@ Reserved2*: DWORD Count*: DWORD pFields*: PWORD + PPRINTER_NOTIFY_OPTIONS_TYPE* = ptr PRINTER_NOTIFY_OPTIONS_TYPE LPPRINTER_NOTIFY_OPTIONS_TYPE* = ptr PRINTER_NOTIFY_OPTIONS_TYPE PRINTER_NOTIFY_OPTIONS* {.pure.} = object @@ -559,20 +622,24 @@ Flags*: DWORD Count*: DWORD pTypes*: PPRINTER_NOTIFY_OPTIONS_TYPE + PPRINTER_NOTIFY_OPTIONS* = ptr PRINTER_NOTIFY_OPTIONS LPPRINTER_NOTIFY_OPTIONS* = ptr PRINTER_NOTIFY_OPTIONS PRINTER_NOTIFY_INFO_DATA_NotifyData_Data* {.pure.} = object cbBuf*: DWORD pBuf*: LPVOID + PRINTER_NOTIFY_INFO_DATA_NotifyData* {.pure, union.} = object adwData*: array[2, DWORD] Data*: PRINTER_NOTIFY_INFO_DATA_NotifyData_Data + PRINTER_NOTIFY_INFO_DATA* {.pure.} = object Type*: WORD Field*: WORD Reserved*: DWORD Id*: DWORD NotifyData*: PRINTER_NOTIFY_INFO_DATA_NotifyData + PPRINTER_NOTIFY_INFO_DATA* = ptr PRINTER_NOTIFY_INFO_DATA LPPRINTER_NOTIFY_INFO_DATA* = ptr PRINTER_NOTIFY_INFO_DATA PRINTER_NOTIFY_INFO* {.pure.} = object @@ -580,11 +647,13 @@ Flags*: DWORD Count*: DWORD aData*: array[1, PRINTER_NOTIFY_INFO_DATA] + PPRINTER_NOTIFY_INFO* = ptr PRINTER_NOTIFY_INFO LPPRINTER_NOTIFY_INFO* = ptr PRINTER_NOTIFY_INFO BINARY_CONTAINER* {.pure.} = object cbBuf*: DWORD pData*: LPBYTE + PBINARY_CONTAINER* = ptr BINARY_CONTAINER BIDI_DATA_u* {.pure, union.} = object bData*: WINBOOL @@ -592,22 +661,26 @@ sData*: LPWSTR fData*: FLOAT biData*: BINARY_CONTAINER + BIDI_DATA* {.pure.} = object dwBidiType*: DWORD u*: BIDI_DATA_u + PBIDI_DATA* = ptr BIDI_DATA LPBIDI_DATA* = ptr BIDI_DATA BIDI_REQUEST_DATA* {.pure.} = object dwReqNumber*: DWORD pSchema*: LPWSTR data*: BIDI_DATA + PBIDI_REQUEST_DATA* = ptr BIDI_REQUEST_DATA LPBIDI_REQUEST_DATA* = ptr BIDI_REQUEST_DATA BIDI_REQUEST_CONTAINER* {.pure.} = object Version*: DWORD Flags*: DWORD Count*: DWORD - aData*: array[1 , BIDI_REQUEST_DATA] + aData*: array[1, BIDI_REQUEST_DATA] + PBIDI_REQUEST_CONTAINER* = ptr BIDI_REQUEST_CONTAINER LPBIDI_REQUEST_CONTAINER* = ptr BIDI_REQUEST_CONTAINER BIDI_RESPONSE_DATA* {.pure.} = object @@ -615,38 +688,45 @@ dwReqNumber*: DWORD pSchema*: LPWSTR data*: BIDI_DATA + PBIDI_RESPONSE_DATA* = ptr BIDI_RESPONSE_DATA LPBIDI_RESPONSE_DATA* = ptr BIDI_RESPONSE_DATA BIDI_RESPONSE_CONTAINER* {.pure.} = object Version*: DWORD Flags*: DWORD Count*: DWORD - aData*: array[1 , BIDI_RESPONSE_DATA] + aData*: array[1, BIDI_RESPONSE_DATA] + PBIDI_RESPONSE_CONTAINER* = ptr BIDI_RESPONSE_CONTAINER LPBIDI_RESPONSE_CONTAINER* = ptr BIDI_RESPONSE_CONTAINER PROVIDOR_INFO_1A* {.pure.} = object pName*: LPSTR pEnvironment*: LPSTR pDLLName*: LPSTR + PPROVIDOR_INFO_1A* = ptr PROVIDOR_INFO_1A LPPROVIDOR_INFO_1A* = ptr PROVIDOR_INFO_1A PROVIDOR_INFO_1W* {.pure.} = object pName*: LPWSTR pEnvironment*: LPWSTR pDLLName*: LPWSTR + PPROVIDOR_INFO_1W* = ptr PROVIDOR_INFO_1W LPPROVIDOR_INFO_1W* = ptr PROVIDOR_INFO_1W PROVIDOR_INFO_2A* {.pure.} = object pOrder*: LPSTR + PPROVIDOR_INFO_2A* = ptr PROVIDOR_INFO_2A LPPROVIDOR_INFO_2A* = ptr PROVIDOR_INFO_2A PROVIDOR_INFO_2W* {.pure.} = object pOrder*: LPWSTR + PPROVIDOR_INFO_2W* = ptr PROVIDOR_INFO_2W LPPROVIDOR_INFO_2W* = ptr PROVIDOR_INFO_2W PRINTER_CONNECTION_INFO_1* {.pure.} = object dwFlags*: DWORD pszDriverName*: LPTSTR + PPRINTER_CONNECTION_INFO_1* = ptr PRINTER_CONNECTION_INFO_1 DRIVER_INFO_8W* {.pure.} = object cVersion*: DWORD @@ -674,6 +754,7 @@ pszzCoreDriverDependencies*: LPWSTR ftMinInboxDriverVerDate*: FILETIME dwlMinInboxDriverVerVersion*: DWORDLONG + PDRIVER_INFO_8W* = ptr DRIVER_INFO_8W LPDRIVER_INFO_8W* = ptr DRIVER_INFO_8W DRIVER_INFO_8A* {.pure.} = object @@ -702,6 +783,7 @@ pszzCoreDriverDependencies*: LPSTR ftMinInboxDriverVerDate*: FILETIME dwlMinInboxDriverVerVersion*: DWORDLONG + PDRIVER_INFO_8A* = ptr DRIVER_INFO_8A LPDRIVER_INFO_8A* = ptr DRIVER_INFO_8A FORM_INFO_2A* {.pure.} = object @@ -715,6 +797,7 @@ dwResourceId*: DWORD pDisplayName*: LPCSTR wLangId*: LANGID + PFORM_INFO_2A* = ptr FORM_INFO_2A FORM_INFO_2W* {.pure.} = object Flags*: DWORD @@ -727,6 +810,7 @@ dwResourceId*: DWORD pDisplayName*: LPCWSTR wLangId*: LANGID + PFORM_INFO_2W* = ptr FORM_INFO_2W PRINTPROCESSOR_CAPS_2* {.pure.} = object dwLevel*: DWORD @@ -738,23 +822,28 @@ dwBookletHandlingCaps*: DWORD dwDuplexHandlingCaps*: DWORD dwScalingCaps*: DWORD + PPRINTPROCESSOR_CAPS_2* = ptr PRINTPROCESSOR_CAPS_2 CORE_PRINTER_DRIVERA* {.pure.} = object CoreDriverGUID*: GUID ftDriverDate*: FILETIME dwlDriverVersion*: DWORDLONG szPackageID*: array[MAX_PATH, CHAR] + PCORE_PRINTER_DRIVERA* = ptr CORE_PRINTER_DRIVERA CORE_PRINTER_DRIVERW* {.pure.} = object CoreDriverGUID*: GUID ftDriverDate*: FILETIME dwlDriverVersion*: DWORDLONG szPackageID*: array[MAX_PATH, WCHAR] + PCORE_PRINTER_DRIVERW* = ptr CORE_PRINTER_DRIVERW PRINTER_OPTIONS* {.pure.} = object cbSize*: UINT dwFlags*: DWORD + PPRINTER_OPTIONS* = ptr PRINTER_OPTIONS + const DSPRINT_PUBLISH* = 0x00000001 DSPRINT_UPDATE* = 0x00000002 @@ -962,11 +1051,11 @@ ERROR_BIDI_STATUS_OK* = 0 ERROR_BIDI_NOT_SUPPORTED* = ERROR_NOT_SUPPORTED ERROR_BIDI_ERROR_BASE* = 13000 - ERROR_BIDI_STATUS_WARNING* = ERROR_BIDI_ERROR_BASE+1 - ERROR_BIDI_SCHEMA_READ_ONLY* = ERROR_BIDI_ERROR_BASE+2 - ERROR_BIDI_SERVER_OFFLINE* = ERROR_BIDI_ERROR_BASE+3 - ERROR_BIDI_DEVICE_OFFLINE* = ERROR_BIDI_ERROR_BASE+4 - ERROR_BIDI_SCHEMA_NOT_SUPPORTED* = ERROR_BIDI_ERROR_BASE+5 + ERROR_BIDI_STATUS_WARNING* = ERROR_BIDI_ERROR_BASE + 1 + ERROR_BIDI_SCHEMA_READ_ONLY* = ERROR_BIDI_ERROR_BASE + 2 + ERROR_BIDI_SERVER_OFFLINE* = ERROR_BIDI_ERROR_BASE + 3 + ERROR_BIDI_DEVICE_OFFLINE* = ERROR_BIDI_ERROR_BASE + 4 + ERROR_BIDI_SCHEMA_NOT_SUPPORTED* = ERROR_BIDI_ERROR_BASE + 5 PRINTER_CHANGE_ADD_PRINTER* = 0x00000001 PRINTER_CHANGE_SET_PRINTER* = 0x00000002 PRINTER_CHANGE_DELETE_PRINTER* = 0x00000004 @@ -1029,11 +1118,14 @@ PRINTER_ACCESS_USE* = 0x00000008 JOB_ACCESS_ADMINISTER* = 0x00000010 JOB_ACCESS_READ* = 0x00000020 - SERVER_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SERVER_ACCESS_ADMINISTER or SERVER_ACCESS_ENUMERATE + SERVER_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or SERVER_ACCESS_ADMINISTER or SERVER_ACCESS_ENUMERATE SERVER_READ* = STANDARD_RIGHTS_READ or SERVER_ACCESS_ENUMERATE - SERVER_WRITE* = STANDARD_RIGHTS_WRITE or SERVER_ACCESS_ADMINISTER or SERVER_ACCESS_ENUMERATE + SERVER_WRITE* = + STANDARD_RIGHTS_WRITE or SERVER_ACCESS_ADMINISTER or SERVER_ACCESS_ENUMERATE SERVER_EXECUTE* = STANDARD_RIGHTS_EXECUTE or SERVER_ACCESS_ENUMERATE - PRINTER_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or PRINTER_ACCESS_ADMINISTER or PRINTER_ACCESS_USE + PRINTER_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or PRINTER_ACCESS_ADMINISTER or PRINTER_ACCESS_USE PRINTER_READ* = STANDARD_RIGHTS_READ or PRINTER_ACCESS_USE PRINTER_WRITE* = STANDARD_RIGHTS_WRITE or PRINTER_ACCESS_USE PRINTER_EXECUTE* = STANDARD_RIGHTS_EXECUTE or PRINTER_ACCESS_USE @@ -1111,161 +1203,927 @@ kFontAdded* = 7 kImageAdded* = 8 kXpsDocumentCommitted* = 9 -proc EnumPrintersA*(Flags: DWORD, Name: LPSTR, Level: DWORD, pPrinterEnum: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrintersW*(Flags: DWORD, Name: LPWSTR, Level: DWORD, pPrinterEnum: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc OpenPrinterA*(pPrinterName: LPSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSA): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc OpenPrinterW*(pPrinterName: LPWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSW): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ResetPrinterA*(hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSA): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ResetPrinterW*(hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSW): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetJobA*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetJobW*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetJobA*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetJobW*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumJobsA*(hPrinter: HANDLE, FirstJob: DWORD, NoJobs: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumJobsW*(hPrinter: HANDLE, FirstJob: DWORD, NoJobs: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterA*(pName: LPSTR, Level: DWORD, pPrinter: LPBYTE): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterW*(pName: LPWSTR, Level: DWORD, pPrinter: LPBYTE): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPrinterA*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPrinterW*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterA*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterW*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterDriverA*(pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterDriverW*(pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterDriverExA*(pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterDriverExW*(pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterDriversA*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterDriversW*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriverA*(hPrinter: HANDLE, pEnvironment: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriverW*(hPrinter: HANDLE, pEnvironment: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriverDirectoryA*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pDriverDirectory: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriverDirectoryW*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pDriverDirectory: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDriverA*(pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDriverW*(pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDriverExA*(pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR, dwDeleteFlag: DWORD, dwVersionFlag: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDriverExW*(pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR, dwDeleteFlag: DWORD, dwVersionFlag: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrintProcessorA*(pName: LPSTR, pEnvironment: LPSTR, pPathName: LPSTR, pPrintProcessorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrintProcessorW*(pName: LPWSTR, pEnvironment: LPWSTR, pPathName: LPWSTR, pPrintProcessorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrintProcessorsA*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrintProcessorsW*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrintProcessorDirectoryA*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrintProcessorDirectoryW*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrintProcessorDatatypesA*(pName: LPSTR, pPrintProcessorName: LPSTR, Level: DWORD, pDatatypes: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrintProcessorDatatypesW*(pName: LPWSTR, pPrintProcessorName: LPWSTR, Level: DWORD, pDatatypes: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrintProcessorA*(pName: LPSTR, pEnvironment: LPSTR, pPrintProcessorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrintProcessorW*(pName: LPWSTR, pEnvironment: LPWSTR, pPrintProcessorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc StartDocPrinterA*(hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc StartDocPrinterW*(hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc StartPagePrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc WritePrinter*(hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pcWritten: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc FlushPrinter*(hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pcWritten: LPDWORD, cSleep: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EndPagePrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AbortPrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ReadPrinter*(hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pNoBytesRead: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EndDocPrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddJobA*(hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddJobW*(hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ScheduleJob*(hPrinter: HANDLE, JobId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc PrinterProperties*(hWnd: HWND, hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DocumentPropertiesA*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPSTR, pDevModeOutput: PDEVMODEA, pDevModeInput: PDEVMODEA, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DocumentPropertiesW*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPWSTR, pDevModeOutput: PDEVMODEW, pDevModeInput: PDEVMODEW, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AdvancedDocumentPropertiesA*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPSTR, pDevModeOutput: PDEVMODEA, pDevModeInput: PDEVMODEA): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AdvancedDocumentPropertiesW*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPWSTR, pDevModeOutput: PDEVMODEW, pDevModeInput: PDEVMODEW): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ExtDeviceMode*(hWnd: HWND, hInst: HANDLE, pDevModeOutput: LPDEVMODEA, pDeviceName: LPSTR, pPort: LPSTR, pDevModeInput: LPDEVMODEA, pProfile: LPSTR, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDataA*(hPrinter: HANDLE, pValueName: LPSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDataW*(hPrinter: HANDLE, pValueName: LPWSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDataExA*(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDataExW*(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterDataA*(hPrinter: HANDLE, dwIndex: DWORD, pValueName: LPSTR, cbValueName: DWORD, pcbValueName: LPDWORD, pType: LPDWORD, pData: LPBYTE, cbData: DWORD, pcbData: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterDataW*(hPrinter: HANDLE, dwIndex: DWORD, pValueName: LPWSTR, cbValueName: DWORD, pcbValueName: LPDWORD, pType: LPDWORD, pData: LPBYTE, cbData: DWORD, pcbData: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterDataExA*(hPrinter: HANDLE, pKeyName: LPCSTR, pEnumValues: LPBYTE, cbEnumValues: DWORD, pcbEnumValues: LPDWORD, pnEnumValues: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterDataExW*(hPrinter: HANDLE, pKeyName: LPCWSTR, pEnumValues: LPBYTE, cbEnumValues: DWORD, pcbEnumValues: LPDWORD, pnEnumValues: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterKeyA*(hPrinter: HANDLE, pKeyName: LPCSTR, pSubkey: LPSTR, cbSubkey: DWORD, pcbSubkey: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPrinterKeyW*(hPrinter: HANDLE, pKeyName: LPCWSTR, pSubkey: LPWSTR, cbSubkey: DWORD, pcbSubkey: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPrinterDataA*(hPrinter: HANDLE, pValueName: LPSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPrinterDataW*(hPrinter: HANDLE, pValueName: LPWSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPrinterDataExA*(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPrinterDataExW*(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDataA*(hPrinter: HANDLE, pValueName: LPSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDataW*(hPrinter: HANDLE, pValueName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDataExA*(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDataExW*(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterKeyA*(hPrinter: HANDLE, pKeyName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterKeyW*(hPrinter: HANDLE, pKeyName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc WaitForPrinterChange*(hPrinter: HANDLE, Flags: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc FindFirstPrinterChangeNotification*(hPrinter: HANDLE, fdwFlags: DWORD, fdwOptions: DWORD, pPrinterNotifyOptions: LPVOID): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc FindNextPrinterChangeNotification*(hChange: HANDLE, pdwChange: PDWORD, pPrinterNotifyOptions: LPVOID, ppPrinterNotifyInfo: ptr LPVOID): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc FreePrinterNotifyInfo*(pPrinterNotifyInfo: PPRINTER_NOTIFY_INFO): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc FindClosePrinterChangeNotification*(hChange: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc PrinterMessageBoxA*(hPrinter: HANDLE, Error: DWORD, hWnd: HWND, pText: LPSTR, pCaption: LPSTR, dwType: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc PrinterMessageBoxW*(hPrinter: HANDLE, Error: DWORD, hWnd: HWND, pText: LPWSTR, pCaption: LPWSTR, dwType: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ClosePrinter*(hPrinter: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddFormA*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddFormW*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeleteFormA*(hPrinter: HANDLE, pFormName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeleteFormW*(hPrinter: HANDLE, pFormName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetFormA*(hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetFormW*(hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetFormA*(hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetFormW*(hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumFormsA*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumFormsW*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumMonitorsA*(pName: LPSTR, Level: DWORD, pMonitor: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumMonitorsW*(pName: LPWSTR, Level: DWORD, pMonitor: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddMonitorA*(pName: LPSTR, Level: DWORD, pMonitorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddMonitorW*(pName: LPWSTR, Level: DWORD, pMonitorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeleteMonitorA*(pName: LPSTR, pEnvironment: LPSTR, pMonitorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeleteMonitorW*(pName: LPWSTR, pEnvironment: LPWSTR, pMonitorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPortsA*(pName: LPSTR, Level: DWORD, pPorts: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc EnumPortsW*(pName: LPWSTR, Level: DWORD, pPorts: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPortA*(pName: LPSTR, hWnd: HWND, pMonitorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPortW*(pName: LPWSTR, hWnd: HWND, pMonitorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ConfigurePortA*(pName: LPSTR, hWnd: HWND, pPortName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ConfigurePortW*(pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePortA*(pName: LPSTR, hWnd: HWND, pPortName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePortW*(pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc XcvDataW*(hXcv: HANDLE, pszDataName: PCWSTR, pInputData: PBYTE, cbInputData: DWORD, pOutputData: PBYTE, cbOutputData: DWORD, pcbOutputNeeded: PDWORD, pdwStatus: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc XcvData*(hXcv: HANDLE, pszDataName: PCWSTR, pInputData: PBYTE, cbInputData: DWORD, pOutputData: PBYTE, cbOutputData: DWORD, pcbOutputNeeded: PDWORD, pdwStatus: PDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "XcvDataW".} -proc GetDefaultPrinterA*(pszBuffer: LPSTR, pcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetDefaultPrinterW*(pszBuffer: LPWSTR, pcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetDefaultPrinterA*(pszPrinter: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetDefaultPrinterW*(pszPrinter: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPortA*(pName: LPSTR, pPortName: LPSTR, dwLevel: DWORD, pPortInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc SetPortW*(pName: LPWSTR, pPortName: LPWSTR, dwLevel: DWORD, pPortInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterConnectionA*(pName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterConnectionW*(pName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterConnectionA*(pName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterConnectionW*(pName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ConnectToPrinterDlg*(hwnd: HWND, Flags: DWORD): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrintProvidorA*(pName: LPSTR, level: DWORD, pProvidorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrintProvidorW*(pName: LPWSTR, level: DWORD, pProvidorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrintProvidorA*(pName: LPSTR, pEnvironment: LPSTR, pPrintProvidorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrintProvidorW*(pName: LPWSTR, pEnvironment: LPWSTR, pPrintProvidorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc IsValidDevmodeA*(pDevmode: PDEVMODEA, DevmodeSize: int): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc IsValidDevmodeW*(pDevmode: PDEVMODEW, DevmodeSize: int): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterConnection2W*(hWnd: HWND, pszName: LPCWSTR, dwLevel: DWORD, pConnectionInfo: PVOID): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc AddPrinterConnection2A*(hWnd: HWND, pszName: LPCSTR, dwLevel: DWORD, pConnectionInfo: PVOID): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDriverPackageA*(pszServer: LPCSTR, pszInfPath: LPCSTR, pszEnvironment: LPCSTR): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc DeletePrinterDriverPackageW*(pszServer: LPCWSTR, pszInfPath: LPCWSTR, pszEnvironment: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc ReportJobProcessingProgress*(printerHandle: HANDLE, jobId: ULONG, jobOperation: EPrintXPSJobOperation, jobProgress: EPrintXPSJobProgress): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetCorePrinterDriversA*(pszServer: LPCSTR, pszEnvironment: LPCSTR, pszzCoreDriverDependencies: LPCSTR, cCorePrinterDrivers: DWORD, pCorePrinterDrivers: PCORE_PRINTER_DRIVERA): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetCorePrinterDriversW*(pszServer: LPCWSTR, pszEnvironment: LPCWSTR, pszzCoreDriverDependencies: LPCWSTR, cCorePrinterDrivers: DWORD, pCorePrinterDrivers: PCORE_PRINTER_DRIVERW): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriver2A*(hWnd: HWND, hPrinter: HANDLE, pEnvironment: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriver2W*(hWnd: HWND, hPrinter: HANDLE, pEnvironment: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriverPackagePathA*(pszServer: LPCSTR, pszEnvironment: LPCSTR, pszLanguage: LPCSTR, pszPackageID: LPCSTR, pszDriverPackageCab: LPSTR, cchDriverPackageCab: DWORD, pcchRequiredSize: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc GetPrinterDriverPackagePathW*(pszServer: LPCWSTR, pszEnvironment: LPCWSTR, pszLanguage: LPCWSTR, pszPackageID: LPCWSTR, pszDriverPackageCab: LPWSTR, cchDriverPackageCab: DWORD, pcchRequiredSize: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc CommitSpoolData*(hPrinter: HANDLE, hSpoolFile: HANDLE, cbCommit: DWORD): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc CloseSpoolFileHandle*(hPrinter: HANDLE, hSpoolFile: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} +proc EnumPrintersA*( + Flags: DWORD, + Name: LPSTR, + Level: DWORD, + pPrinterEnum: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrintersW*( + Flags: DWORD, + Name: LPWSTR, + Level: DWORD, + pPrinterEnum: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc OpenPrinterA*( + pPrinterName: LPSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSA +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc OpenPrinterW*( + pPrinterName: LPWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSW +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ResetPrinterA*( + hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSA +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ResetPrinterW*( + hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSW +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetJobA*( + hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetJobW*( + hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetJobA*( + hPrinter: HANDLE, + JobId: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetJobW*( + hPrinter: HANDLE, + JobId: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumJobsA*( + hPrinter: HANDLE, + FirstJob: DWORD, + NoJobs: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumJobsW*( + hPrinter: HANDLE, + FirstJob: DWORD, + NoJobs: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterA*( + pName: LPSTR, Level: DWORD, pPrinter: LPBYTE +): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterW*( + pName: LPWSTR, Level: DWORD, pPrinter: LPBYTE +): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinter*( + hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPrinterA*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPrinterW*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterA*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterW*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterDriverA*( + pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterDriverW*( + pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterDriverExA*( + pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterDriverExW*( + pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterDriversA*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterDriversW*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriverA*( + hPrinter: HANDLE, + pEnvironment: LPSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriverW*( + hPrinter: HANDLE, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriverDirectoryA*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pDriverDirectory: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriverDirectoryW*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverDirectory: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDriverA*( + pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDriverW*( + pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDriverExA*( + pName: LPSTR, + pEnvironment: LPSTR, + pDriverName: LPSTR, + dwDeleteFlag: DWORD, + dwVersionFlag: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDriverExW*( + pName: LPWSTR, + pEnvironment: LPWSTR, + pDriverName: LPWSTR, + dwDeleteFlag: DWORD, + dwVersionFlag: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrintProcessorA*( + pName: LPSTR, pEnvironment: LPSTR, pPathName: LPSTR, pPrintProcessorName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrintProcessorW*( + pName: LPWSTR, pEnvironment: LPWSTR, pPathName: LPWSTR, pPrintProcessorName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrintProcessorsA*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrintProcessorsW*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrintProcessorDirectoryA*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrintProcessorDirectoryW*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrintProcessorDatatypesA*( + pName: LPSTR, + pPrintProcessorName: LPSTR, + Level: DWORD, + pDatatypes: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrintProcessorDatatypesW*( + pName: LPWSTR, + pPrintProcessorName: LPWSTR, + Level: DWORD, + pDatatypes: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrintProcessorA*( + pName: LPSTR, pEnvironment: LPSTR, pPrintProcessorName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrintProcessorW*( + pName: LPWSTR, pEnvironment: LPWSTR, pPrintProcessorName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc StartDocPrinterA*( + hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc StartDocPrinterW*( + hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc StartPagePrinter*( + hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc WritePrinter*( + hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pcWritten: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc FlushPrinter*( + hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pcWritten: LPDWORD, cSleep: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EndPagePrinter*( + hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AbortPrinter*( + hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ReadPrinter*( + hPrinter: HANDLE, pBuf: LPVOID, cbBuf: DWORD, pNoBytesRead: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EndDocPrinter*( + hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddJobA*( + hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddJobW*( + hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ScheduleJob*( + hPrinter: HANDLE, JobId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc PrinterProperties*( + hWnd: HWND, hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DocumentPropertiesA*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPSTR, + pDevModeOutput: PDEVMODEA, + pDevModeInput: PDEVMODEA, + fMode: DWORD, +): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DocumentPropertiesW*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPWSTR, + pDevModeOutput: PDEVMODEW, + pDevModeInput: PDEVMODEW, + fMode: DWORD, +): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AdvancedDocumentPropertiesA*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPSTR, + pDevModeOutput: PDEVMODEA, + pDevModeInput: PDEVMODEA, +): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AdvancedDocumentPropertiesW*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPWSTR, + pDevModeOutput: PDEVMODEW, + pDevModeInput: PDEVMODEW, +): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ExtDeviceMode*( + hWnd: HWND, + hInst: HANDLE, + pDevModeOutput: LPDEVMODEA, + pDeviceName: LPSTR, + pPort: LPSTR, + pDevModeInput: LPDEVMODEA, + pProfile: LPSTR, + fMode: DWORD, +): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDataA*( + hPrinter: HANDLE, + pValueName: LPSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDataW*( + hPrinter: HANDLE, + pValueName: LPWSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDataExA*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pValueName: LPCSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDataExW*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pValueName: LPCWSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterDataA*( + hPrinter: HANDLE, + dwIndex: DWORD, + pValueName: LPSTR, + cbValueName: DWORD, + pcbValueName: LPDWORD, + pType: LPDWORD, + pData: LPBYTE, + cbData: DWORD, + pcbData: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterDataW*( + hPrinter: HANDLE, + dwIndex: DWORD, + pValueName: LPWSTR, + cbValueName: DWORD, + pcbValueName: LPDWORD, + pType: LPDWORD, + pData: LPBYTE, + cbData: DWORD, + pcbData: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterDataExA*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pEnumValues: LPBYTE, + cbEnumValues: DWORD, + pcbEnumValues: LPDWORD, + pnEnumValues: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterDataExW*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pEnumValues: LPBYTE, + cbEnumValues: DWORD, + pcbEnumValues: LPDWORD, + pnEnumValues: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterKeyA*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pSubkey: LPSTR, + cbSubkey: DWORD, + pcbSubkey: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPrinterKeyW*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pSubkey: LPWSTR, + cbSubkey: DWORD, + pcbSubkey: LPDWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPrinterDataA*( + hPrinter: HANDLE, pValueName: LPSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPrinterDataW*( + hPrinter: HANDLE, pValueName: LPWSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPrinterDataExA*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pValueName: LPCSTR, + Type: DWORD, + pData: LPBYTE, + cbData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPrinterDataExW*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pValueName: LPCWSTR, + Type: DWORD, + pData: LPBYTE, + cbData: DWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDataA*( + hPrinter: HANDLE, pValueName: LPSTR +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDataW*( + hPrinter: HANDLE, pValueName: LPWSTR +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDataExA*( + hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDataExW*( + hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterKeyA*( + hPrinter: HANDLE, pKeyName: LPCSTR +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterKeyW*( + hPrinter: HANDLE, pKeyName: LPCWSTR +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc WaitForPrinterChange*( + hPrinter: HANDLE, Flags: DWORD +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc FindFirstPrinterChangeNotification*( + hPrinter: HANDLE, fdwFlags: DWORD, fdwOptions: DWORD, pPrinterNotifyOptions: LPVOID +): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc FindNextPrinterChangeNotification*( + hChange: HANDLE, + pdwChange: PDWORD, + pPrinterNotifyOptions: LPVOID, + ppPrinterNotifyInfo: ptr LPVOID, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc FreePrinterNotifyInfo*( + pPrinterNotifyInfo: PPRINTER_NOTIFY_INFO +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc FindClosePrinterChangeNotification*( + hChange: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc PrinterMessageBoxA*( + hPrinter: HANDLE, + Error: DWORD, + hWnd: HWND, + pText: LPSTR, + pCaption: LPSTR, + dwType: DWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc PrinterMessageBoxW*( + hPrinter: HANDLE, + Error: DWORD, + hWnd: HWND, + pText: LPWSTR, + pCaption: LPWSTR, + dwType: DWORD, +): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ClosePrinter*( + hPrinter: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddFormA*( + hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddFormW*( + hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeleteFormA*( + hPrinter: HANDLE, pFormName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeleteFormW*( + hPrinter: HANDLE, pFormName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetFormA*( + hPrinter: HANDLE, + pFormName: LPSTR, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetFormW*( + hPrinter: HANDLE, + pFormName: LPWSTR, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetFormA*( + hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetFormW*( + hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumFormsA*( + hPrinter: HANDLE, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumFormsW*( + hPrinter: HANDLE, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumMonitorsA*( + pName: LPSTR, + Level: DWORD, + pMonitor: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumMonitorsW*( + pName: LPWSTR, + Level: DWORD, + pMonitor: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddMonitorA*( + pName: LPSTR, Level: DWORD, pMonitorInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddMonitorW*( + pName: LPWSTR, Level: DWORD, pMonitorInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeleteMonitorA*( + pName: LPSTR, pEnvironment: LPSTR, pMonitorName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeleteMonitorW*( + pName: LPWSTR, pEnvironment: LPWSTR, pMonitorName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPortsA*( + pName: LPSTR, + Level: DWORD, + pPorts: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc EnumPortsW*( + pName: LPWSTR, + Level: DWORD, + pPorts: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPortA*( + pName: LPSTR, hWnd: HWND, pMonitorName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPortW*( + pName: LPWSTR, hWnd: HWND, pMonitorName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ConfigurePortA*( + pName: LPSTR, hWnd: HWND, pPortName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ConfigurePortW*( + pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePortA*( + pName: LPSTR, hWnd: HWND, pPortName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePortW*( + pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc XcvDataW*( + hXcv: HANDLE, + pszDataName: PCWSTR, + pInputData: PBYTE, + cbInputData: DWORD, + pOutputData: PBYTE, + cbOutputData: DWORD, + pcbOutputNeeded: PDWORD, + pdwStatus: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc XcvData*( + hXcv: HANDLE, + pszDataName: PCWSTR, + pInputData: PBYTE, + cbInputData: DWORD, + pOutputData: PBYTE, + cbOutputData: DWORD, + pcbOutputNeeded: PDWORD, + pdwStatus: PDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "XcvDataW".} + +proc GetDefaultPrinterA*( + pszBuffer: LPSTR, pcchBuffer: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetDefaultPrinterW*( + pszBuffer: LPWSTR, pcchBuffer: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetDefaultPrinterA*( + pszPrinter: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetDefaultPrinterW*( + pszPrinter: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPortA*( + pName: LPSTR, pPortName: LPSTR, dwLevel: DWORD, pPortInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc SetPortW*( + pName: LPWSTR, pPortName: LPWSTR, dwLevel: DWORD, pPortInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterConnectionA*( + pName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterConnectionW*( + pName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterConnectionA*( + pName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterConnectionW*( + pName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ConnectToPrinterDlg*( + hwnd: HWND, Flags: DWORD +): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrintProvidorA*( + pName: LPSTR, level: DWORD, pProvidorInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrintProvidorW*( + pName: LPWSTR, level: DWORD, pProvidorInfo: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrintProvidorA*( + pName: LPSTR, pEnvironment: LPSTR, pPrintProvidorName: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrintProvidorW*( + pName: LPWSTR, pEnvironment: LPWSTR, pPrintProvidorName: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc IsValidDevmodeA*( + pDevmode: PDEVMODEA, DevmodeSize: int +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc IsValidDevmodeW*( + pDevmode: PDEVMODEW, DevmodeSize: int +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterConnection2W*( + hWnd: HWND, pszName: LPCWSTR, dwLevel: DWORD, pConnectionInfo: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc AddPrinterConnection2A*( + hWnd: HWND, pszName: LPCSTR, dwLevel: DWORD, pConnectionInfo: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDriverPackageA*( + pszServer: LPCSTR, pszInfPath: LPCSTR, pszEnvironment: LPCSTR +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc DeletePrinterDriverPackageW*( + pszServer: LPCWSTR, pszInfPath: LPCWSTR, pszEnvironment: LPCWSTR +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc ReportJobProcessingProgress*( + printerHandle: HANDLE, + jobId: ULONG, + jobOperation: EPrintXPSJobOperation, + jobProgress: EPrintXPSJobProgress, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetCorePrinterDriversA*( + pszServer: LPCSTR, + pszEnvironment: LPCSTR, + pszzCoreDriverDependencies: LPCSTR, + cCorePrinterDrivers: DWORD, + pCorePrinterDrivers: PCORE_PRINTER_DRIVERA, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetCorePrinterDriversW*( + pszServer: LPCWSTR, + pszEnvironment: LPCWSTR, + pszzCoreDriverDependencies: LPCWSTR, + cCorePrinterDrivers: DWORD, + pCorePrinterDrivers: PCORE_PRINTER_DRIVERW, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriver2A*( + hWnd: HWND, + hPrinter: HANDLE, + pEnvironment: LPSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriver2W*( + hWnd: HWND, + hPrinter: HANDLE, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriverPackagePathA*( + pszServer: LPCSTR, + pszEnvironment: LPCSTR, + pszLanguage: LPCSTR, + pszPackageID: LPCSTR, + pszDriverPackageCab: LPSTR, + cchDriverPackageCab: DWORD, + pcchRequiredSize: LPDWORD, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc GetPrinterDriverPackagePathW*( + pszServer: LPCWSTR, + pszEnvironment: LPCWSTR, + pszLanguage: LPCWSTR, + pszPackageID: LPCWSTR, + pszDriverPackageCab: LPWSTR, + cchDriverPackageCab: DWORD, + pcchRequiredSize: LPDWORD, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc CommitSpoolData*( + hPrinter: HANDLE, hSpoolFile: HANDLE, cbCommit: DWORD +): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc CloseSpoolFileHandle*( + hPrinter: HANDLE, hSpoolFile: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + when winimUnicode: - type - LPPRINTER_DEFAULTS* = LPPRINTER_DEFAULTSW + type LPPRINTER_DEFAULTS* = LPPRINTER_DEFAULTSW when winimAnsi: - type - LPPRINTER_DEFAULTS* = LPPRINTER_DEFAULTSA -proc OpenPrinter2A*(pPrinterName: LPCSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTS, pOptions: PPRINTER_OPTIONS): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc OpenPrinter2W*(pPrinterName: LPCWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTS, pOptions: PPRINTER_OPTIONS): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc UploadPrinterDriverPackageA*(pszServer: LPCSTR, pszInfPath: LPCSTR, pszEnvironment: LPCSTR, dwFlags: DWORD, hwnd: HWND, pszDestInfPath: LPSTR, pcchDestInfPath: PULONG): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} -proc UploadPrinterDriverPackageW*(pszServer: LPCWSTR, pszInfPath: LPCWSTR, pszEnvironment: LPCWSTR, dwFlags: DWORD, hwnd: HWND, pszDestInfPath: LPWSTR, pcchDestInfPath: PULONG): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + type LPPRINTER_DEFAULTS* = LPPRINTER_DEFAULTSA +proc OpenPrinter2A*( + pPrinterName: LPCSTR, + phPrinter: LPHANDLE, + pDefault: LPPRINTER_DEFAULTS, + pOptions: PPRINTER_OPTIONS, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc OpenPrinter2W*( + pPrinterName: LPCWSTR, + phPrinter: LPHANDLE, + pDefault: LPPRINTER_DEFAULTS, + pOptions: PPRINTER_OPTIONS, +): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc UploadPrinterDriverPackageA*( + pszServer: LPCSTR, + pszInfPath: LPCSTR, + pszEnvironment: LPCSTR, + dwFlags: DWORD, + hwnd: HWND, + pszDestInfPath: LPSTR, + pcchDestInfPath: PULONG, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + +proc UploadPrinterDriverPackageW*( + pszServer: LPCWSTR, + pszInfPath: LPCWSTR, + pszEnvironment: LPCWSTR, + dwFlags: DWORD, + hwnd: HWND, + pszDestInfPath: LPWSTR, + pcchDestInfPath: PULONG, +): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc.} + when winimUnicode: type PRINTER_INFO_1* = PRINTER_INFO_1W @@ -1367,69 +2225,438 @@ PFORM_INFO_2* = PFORM_INFO_2W CORE_PRINTER_DRIVER* = CORE_PRINTER_DRIVERW PCORE_PRINTER_DRIVER* = PCORE_PRINTER_DRIVERW - proc EnumPrinters*(Flags: DWORD, Name: LPWSTR, Level: DWORD, pPrinterEnum: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintersW".} - proc OpenPrinter*(pPrinterName: LPWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSW): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinterW".} - proc ResetPrinter*(hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSW): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ResetPrinterW".} - proc SetJob*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetJobW".} - proc GetJob*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetJobW".} - proc EnumJobs*(hPrinter: HANDLE, FirstJob: DWORD, NoJobs: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumJobsW".} - proc AddPrinter*(pName: LPWSTR, Level: DWORD, pPrinter: LPBYTE): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterW".} - proc SetPrinter*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterW".} - proc GetPrinter*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterW".} - proc AddPrinterDriver*(pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverW".} - proc AddPrinterDriverEx*(pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverExW".} - proc EnumPrinterDrivers*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDriversW".} - proc GetPrinterDriver*(hPrinter: HANDLE, pEnvironment: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverW".} - proc GetPrinterDriverDirectory*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pDriverDirectory: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverDirectoryW".} - proc DeletePrinterDriver*(pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverW".} - proc DeletePrinterDriverEx*(pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR, dwDeleteFlag: DWORD, dwVersionFlag: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverExW".} - proc AddPrintProcessor*(pName: LPWSTR, pEnvironment: LPWSTR, pPathName: LPWSTR, pPrintProcessorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProcessorW".} - proc EnumPrintProcessors*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorsW".} - proc GetPrintProcessorDirectory*(pName: LPWSTR, pEnvironment: LPWSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrintProcessorDirectoryW".} - proc EnumPrintProcessorDatatypes*(pName: LPWSTR, pPrintProcessorName: LPWSTR, Level: DWORD, pDatatypes: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorDatatypesW".} - proc DeletePrintProcessor*(pName: LPWSTR, pEnvironment: LPWSTR, pPrintProcessorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProcessorW".} - proc StartDocPrinter*(hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "StartDocPrinterW".} - proc AddJob*(hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddJobW".} - proc DocumentProperties*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPWSTR, pDevModeOutput: PDEVMODEW, pDevModeInput: PDEVMODEW, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "DocumentPropertiesW".} - proc AdvancedDocumentProperties*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPWSTR, pDevModeOutput: PDEVMODEW, pDevModeInput: PDEVMODEW): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "AdvancedDocumentPropertiesW".} - proc GetPrinterData*(hPrinter: HANDLE, pValueName: LPWSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataW".} - proc GetPrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataExW".} - proc EnumPrinterData*(hPrinter: HANDLE, dwIndex: DWORD, pValueName: LPWSTR, cbValueName: DWORD, pcbValueName: LPDWORD, pType: LPDWORD, pData: LPBYTE, cbData: DWORD, pcbData: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataW".} - proc EnumPrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCWSTR, pEnumValues: LPBYTE, cbEnumValues: DWORD, pcbEnumValues: LPDWORD, pnEnumValues: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataExW".} - proc EnumPrinterKey*(hPrinter: HANDLE, pKeyName: LPCWSTR, pSubkey: LPWSTR, cbSubkey: DWORD, pcbSubkey: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterKeyW".} - proc SetPrinterData*(hPrinter: HANDLE, pValueName: LPWSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataW".} - proc SetPrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataExW".} - proc DeletePrinterData*(hPrinter: HANDLE, pValueName: LPWSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataW".} - proc DeletePrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataExW".} - proc DeletePrinterKey*(hPrinter: HANDLE, pKeyName: LPCWSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterKeyW".} - proc PrinterMessageBox*(hPrinter: HANDLE, Error: DWORD, hWnd: HWND, pText: LPWSTR, pCaption: LPWSTR, dwType: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "PrinterMessageBoxW".} - proc AddForm*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddFormW".} - proc DeleteForm*(hPrinter: HANDLE, pFormName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteFormW".} - proc GetForm*(hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetFormW".} - proc SetForm*(hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetFormW".} - proc EnumForms*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumFormsW".} - proc EnumMonitors*(pName: LPWSTR, Level: DWORD, pMonitor: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumMonitorsW".} - proc AddMonitor*(pName: LPWSTR, Level: DWORD, pMonitorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddMonitorW".} - proc DeleteMonitor*(pName: LPWSTR, pEnvironment: LPWSTR, pMonitorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteMonitorW".} - proc EnumPorts*(pName: LPWSTR, Level: DWORD, pPorts: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPortsW".} - proc AddPort*(pName: LPWSTR, hWnd: HWND, pMonitorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPortW".} - proc ConfigurePort*(pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ConfigurePortW".} - proc DeletePort*(pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePortW".} - proc GetDefaultPrinter*(pszBuffer: LPWSTR, pcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetDefaultPrinterW".} - proc SetDefaultPrinter*(pszPrinter: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetDefaultPrinterW".} - proc SetPort*(pName: LPWSTR, pPortName: LPWSTR, dwLevel: DWORD, pPortInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPortW".} - proc AddPrinterConnection*(pName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnectionW".} - proc DeletePrinterConnection*(pName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterConnectionW".} - proc AddPrintProvidor*(pName: LPWSTR, level: DWORD, pProvidorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProvidorW".} - proc DeletePrintProvidor*(pName: LPWSTR, pEnvironment: LPWSTR, pPrintProvidorName: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProvidorW".} - proc IsValidDevmode*(pDevmode: PDEVMODEW, DevmodeSize: int): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "IsValidDevmodeW".} - proc AddPrinterConnection2*(hWnd: HWND, pszName: LPCWSTR, dwLevel: DWORD, pConnectionInfo: PVOID): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnection2W".} - proc DeletePrinterDriverPackage*(pszServer: LPCWSTR, pszInfPath: LPCWSTR, pszEnvironment: LPCWSTR): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverPackageW".} - proc GetCorePrinterDrivers*(pszServer: LPCWSTR, pszEnvironment: LPCWSTR, pszzCoreDriverDependencies: LPCWSTR, cCorePrinterDrivers: DWORD, pCorePrinterDrivers: PCORE_PRINTER_DRIVERW): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetCorePrinterDriversW".} - proc GetPrinterDriver2*(hWnd: HWND, hPrinter: HANDLE, pEnvironment: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriver2W".} - proc GetPrinterDriverPackagePath*(pszServer: LPCWSTR, pszEnvironment: LPCWSTR, pszLanguage: LPCWSTR, pszPackageID: LPCWSTR, pszDriverPackageCab: LPWSTR, cchDriverPackageCab: DWORD, pcchRequiredSize: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverPackagePathW".} - proc OpenPrinter2*(pPrinterName: LPCWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTS, pOptions: PPRINTER_OPTIONS): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinter2W".} - proc UploadPrinterDriverPackage*(pszServer: LPCWSTR, pszInfPath: LPCWSTR, pszEnvironment: LPCWSTR, dwFlags: DWORD, hwnd: HWND, pszDestInfPath: LPWSTR, pcchDestInfPath: PULONG): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "UploadPrinterDriverPackageW".} + + proc EnumPrinters*( + Flags: DWORD, + Name: LPWSTR, + Level: DWORD, + pPrinterEnum: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintersW".} + + proc OpenPrinter*( + pPrinterName: LPWSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSW + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinterW".} + + proc ResetPrinter*( + hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSW + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ResetPrinterW".} + + proc SetJob*( + hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetJobW".} + + proc GetJob*( + hPrinter: HANDLE, + JobId: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetJobW".} + + proc EnumJobs*( + hPrinter: HANDLE, + FirstJob: DWORD, + NoJobs: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumJobsW".} + + proc AddPrinter*( + pName: LPWSTR, Level: DWORD, pPrinter: LPBYTE + ): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterW".} + + proc SetPrinter*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterW".} + + proc GetPrinter*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterW".} + + proc AddPrinterDriver*( + pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverW".} + + proc AddPrinterDriverEx*( + pName: LPWSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverExW".} + + proc EnumPrinterDrivers*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDriversW".} + + proc GetPrinterDriver*( + hPrinter: HANDLE, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverW".} + + proc GetPrinterDriverDirectory*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverDirectory: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverDirectoryW" + .} + + proc DeletePrinterDriver*( + pName: LPWSTR, pEnvironment: LPWSTR, pDriverName: LPWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverW" + .} + + proc DeletePrinterDriverEx*( + pName: LPWSTR, + pEnvironment: LPWSTR, + pDriverName: LPWSTR, + dwDeleteFlag: DWORD, + dwVersionFlag: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverExW" + .} + + proc AddPrintProcessor*( + pName: LPWSTR, pEnvironment: LPWSTR, pPathName: LPWSTR, pPrintProcessorName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProcessorW".} + + proc EnumPrintProcessors*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorsW" + .} + + proc GetPrintProcessorDirectory*( + pName: LPWSTR, + pEnvironment: LPWSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrintProcessorDirectoryW" + .} + + proc EnumPrintProcessorDatatypes*( + pName: LPWSTR, + pPrintProcessorName: LPWSTR, + Level: DWORD, + pDatatypes: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorDatatypesW" + .} + + proc DeletePrintProcessor*( + pName: LPWSTR, pEnvironment: LPWSTR, pPrintProcessorName: LPWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProcessorW" + .} + + proc StartDocPrinter*( + hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "StartDocPrinterW".} + + proc AddJob*( + hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddJobW".} + + proc DocumentProperties*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPWSTR, + pDevModeOutput: PDEVMODEW, + pDevModeInput: PDEVMODEW, + fMode: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "DocumentPropertiesW".} + + proc AdvancedDocumentProperties*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPWSTR, + pDevModeOutput: PDEVMODEW, + pDevModeInput: PDEVMODEW, + ): LONG {. + winapi, stdcall, dynlib: "winspool.drv", importc: "AdvancedDocumentPropertiesW" + .} + + proc GetPrinterData*( + hPrinter: HANDLE, + pValueName: LPWSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataW".} + + proc GetPrinterDataEx*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pValueName: LPCWSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataExW".} + + proc EnumPrinterData*( + hPrinter: HANDLE, + dwIndex: DWORD, + pValueName: LPWSTR, + cbValueName: DWORD, + pcbValueName: LPDWORD, + pType: LPDWORD, + pData: LPBYTE, + cbData: DWORD, + pcbData: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataW".} + + proc EnumPrinterDataEx*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pEnumValues: LPBYTE, + cbEnumValues: DWORD, + pcbEnumValues: LPDWORD, + pnEnumValues: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataExW".} + + proc EnumPrinterKey*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pSubkey: LPWSTR, + cbSubkey: DWORD, + pcbSubkey: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterKeyW".} + + proc SetPrinterData*( + hPrinter: HANDLE, pValueName: LPWSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataW".} + + proc SetPrinterDataEx*( + hPrinter: HANDLE, + pKeyName: LPCWSTR, + pValueName: LPCWSTR, + Type: DWORD, + pData: LPBYTE, + cbData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataExW".} + + proc DeletePrinterData*( + hPrinter: HANDLE, pValueName: LPWSTR + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataW".} + + proc DeletePrinterDataEx*( + hPrinter: HANDLE, pKeyName: LPCWSTR, pValueName: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataExW".} + + proc DeletePrinterKey*( + hPrinter: HANDLE, pKeyName: LPCWSTR + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterKeyW".} + + proc PrinterMessageBox*( + hPrinter: HANDLE, + Error: DWORD, + hWnd: HWND, + pText: LPWSTR, + pCaption: LPWSTR, + dwType: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "PrinterMessageBoxW".} + + proc AddForm*( + hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddFormW".} + + proc DeleteForm*( + hPrinter: HANDLE, pFormName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteFormW".} + + proc GetForm*( + hPrinter: HANDLE, + pFormName: LPWSTR, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetFormW".} + + proc SetForm*( + hPrinter: HANDLE, pFormName: LPWSTR, Level: DWORD, pForm: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetFormW".} + + proc EnumForms*( + hPrinter: HANDLE, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumFormsW".} + + proc EnumMonitors*( + pName: LPWSTR, + Level: DWORD, + pMonitor: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumMonitorsW".} + + proc AddMonitor*( + pName: LPWSTR, Level: DWORD, pMonitorInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddMonitorW".} + + proc DeleteMonitor*( + pName: LPWSTR, pEnvironment: LPWSTR, pMonitorName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteMonitorW".} + + proc EnumPorts*( + pName: LPWSTR, + Level: DWORD, + pPorts: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPortsW".} + + proc AddPort*( + pName: LPWSTR, hWnd: HWND, pMonitorName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPortW".} + + proc ConfigurePort*( + pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ConfigurePortW".} + + proc DeletePort*( + pName: LPWSTR, hWnd: HWND, pPortName: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePortW".} + + proc GetDefaultPrinter*( + pszBuffer: LPWSTR, pcchBuffer: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetDefaultPrinterW".} + + proc SetDefaultPrinter*( + pszPrinter: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetDefaultPrinterW".} + + proc SetPort*( + pName: LPWSTR, pPortName: LPWSTR, dwLevel: DWORD, pPortInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPortW".} + + proc AddPrinterConnection*( + pName: LPWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnectionW" + .} + + proc DeletePrinterConnection*( + pName: LPWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterConnectionW" + .} + + proc AddPrintProvidor*( + pName: LPWSTR, level: DWORD, pProvidorInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProvidorW".} + + proc DeletePrintProvidor*( + pName: LPWSTR, pEnvironment: LPWSTR, pPrintProvidorName: LPWSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProvidorW" + .} + + proc IsValidDevmode*( + pDevmode: PDEVMODEW, DevmodeSize: int + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "IsValidDevmodeW".} + + proc AddPrinterConnection2*( + hWnd: HWND, pszName: LPCWSTR, dwLevel: DWORD, pConnectionInfo: PVOID + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnection2W" + .} + + proc DeletePrinterDriverPackage*( + pszServer: LPCWSTR, pszInfPath: LPCWSTR, pszEnvironment: LPCWSTR + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverPackageW" + .} + + proc GetCorePrinterDrivers*( + pszServer: LPCWSTR, + pszEnvironment: LPCWSTR, + pszzCoreDriverDependencies: LPCWSTR, + cCorePrinterDrivers: DWORD, + pCorePrinterDrivers: PCORE_PRINTER_DRIVERW, + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetCorePrinterDriversW" + .} + + proc GetPrinterDriver2*( + hWnd: HWND, + hPrinter: HANDLE, + pEnvironment: LPWSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriver2W".} + + proc GetPrinterDriverPackagePath*( + pszServer: LPCWSTR, + pszEnvironment: LPCWSTR, + pszLanguage: LPCWSTR, + pszPackageID: LPCWSTR, + pszDriverPackageCab: LPWSTR, + cchDriverPackageCab: DWORD, + pcchRequiredSize: LPDWORD, + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverPackagePathW" + .} + + proc OpenPrinter2*( + pPrinterName: LPCWSTR, + phPrinter: LPHANDLE, + pDefault: LPPRINTER_DEFAULTS, + pOptions: PPRINTER_OPTIONS, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinter2W".} + + proc UploadPrinterDriverPackage*( + pszServer: LPCWSTR, + pszInfPath: LPCWSTR, + pszEnvironment: LPCWSTR, + dwFlags: DWORD, + hwnd: HWND, + pszDestInfPath: LPWSTR, + pcchDestInfPath: PULONG, + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "UploadPrinterDriverPackageW" + .} + when winimAnsi: type PRINTER_INFO_1* = PRINTER_INFO_1A @@ -1531,66 +2758,434 @@ PFORM_INFO_2* = PFORM_INFO_2A CORE_PRINTER_DRIVER* = CORE_PRINTER_DRIVERA PCORE_PRINTER_DRIVER* = PCORE_PRINTER_DRIVERA - proc EnumPrinters*(Flags: DWORD, Name: LPSTR, Level: DWORD, pPrinterEnum: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintersA".} - proc OpenPrinter*(pPrinterName: LPSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSA): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinterA".} - proc ResetPrinter*(hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSA): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ResetPrinterA".} - proc SetJob*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetJobA".} - proc GetJob*(hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetJobA".} - proc EnumJobs*(hPrinter: HANDLE, FirstJob: DWORD, NoJobs: DWORD, Level: DWORD, pJob: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumJobsA".} - proc AddPrinter*(pName: LPSTR, Level: DWORD, pPrinter: LPBYTE): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterA".} - proc SetPrinter*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterA".} - proc GetPrinter*(hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterA".} - proc AddPrinterDriver*(pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverA".} - proc AddPrinterDriverEx*(pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverExA".} - proc EnumPrinterDrivers*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDriversA".} - proc GetPrinterDriver*(hPrinter: HANDLE, pEnvironment: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverA".} - proc GetPrinterDriverDirectory*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pDriverDirectory: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverDirectoryA".} - proc DeletePrinterDriver*(pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverA".} - proc DeletePrinterDriverEx*(pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR, dwDeleteFlag: DWORD, dwVersionFlag: DWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverExA".} - proc AddPrintProcessor*(pName: LPSTR, pEnvironment: LPSTR, pPathName: LPSTR, pPrintProcessorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProcessorA".} - proc EnumPrintProcessors*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorsA".} - proc GetPrintProcessorDirectory*(pName: LPSTR, pEnvironment: LPSTR, Level: DWORD, pPrintProcessorInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrintProcessorDirectoryA".} - proc EnumPrintProcessorDatatypes*(pName: LPSTR, pPrintProcessorName: LPSTR, Level: DWORD, pDatatypes: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorDatatypesA".} - proc DeletePrintProcessor*(pName: LPSTR, pEnvironment: LPSTR, pPrintProcessorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProcessorA".} - proc StartDocPrinter*(hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "StartDocPrinterA".} - proc AddJob*(hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddJobA".} - proc DocumentProperties*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPSTR, pDevModeOutput: PDEVMODEA, pDevModeInput: PDEVMODEA, fMode: DWORD): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "DocumentPropertiesA".} - proc AdvancedDocumentProperties*(hWnd: HWND, hPrinter: HANDLE, pDeviceName: LPSTR, pDevModeOutput: PDEVMODEA, pDevModeInput: PDEVMODEA): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "AdvancedDocumentPropertiesA".} - proc GetPrinterData*(hPrinter: HANDLE, pValueName: LPSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataA".} - proc GetPrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR, pType: LPDWORD, pData: LPBYTE, nSize: DWORD, pcbNeeded: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataExA".} - proc EnumPrinterData*(hPrinter: HANDLE, dwIndex: DWORD, pValueName: LPSTR, cbValueName: DWORD, pcbValueName: LPDWORD, pType: LPDWORD, pData: LPBYTE, cbData: DWORD, pcbData: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataA".} - proc EnumPrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCSTR, pEnumValues: LPBYTE, cbEnumValues: DWORD, pcbEnumValues: LPDWORD, pnEnumValues: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataExA".} - proc EnumPrinterKey*(hPrinter: HANDLE, pKeyName: LPCSTR, pSubkey: LPSTR, cbSubkey: DWORD, pcbSubkey: LPDWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterKeyA".} - proc SetPrinterData*(hPrinter: HANDLE, pValueName: LPSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataA".} - proc SetPrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataExA".} - proc DeletePrinterData*(hPrinter: HANDLE, pValueName: LPSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataA".} - proc DeletePrinterDataEx*(hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataExA".} - proc DeletePrinterKey*(hPrinter: HANDLE, pKeyName: LPCSTR): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterKeyA".} - proc PrinterMessageBox*(hPrinter: HANDLE, Error: DWORD, hWnd: HWND, pText: LPSTR, pCaption: LPSTR, dwType: DWORD): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "PrinterMessageBoxA".} - proc AddForm*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddFormA".} - proc DeleteForm*(hPrinter: HANDLE, pFormName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteFormA".} - proc GetForm*(hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetFormA".} - proc SetForm*(hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetFormA".} - proc EnumForms*(hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumFormsA".} - proc EnumMonitors*(pName: LPSTR, Level: DWORD, pMonitor: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumMonitorsA".} - proc AddMonitor*(pName: LPSTR, Level: DWORD, pMonitorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddMonitorA".} - proc DeleteMonitor*(pName: LPSTR, pEnvironment: LPSTR, pMonitorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteMonitorA".} - proc EnumPorts*(pName: LPSTR, Level: DWORD, pPorts: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD, pcReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPortsA".} - proc AddPort*(pName: LPSTR, hWnd: HWND, pMonitorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPortA".} - proc ConfigurePort*(pName: LPSTR, hWnd: HWND, pPortName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ConfigurePortA".} - proc DeletePort*(pName: LPSTR, hWnd: HWND, pPortName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePortA".} - proc GetDefaultPrinter*(pszBuffer: LPSTR, pcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetDefaultPrinterA".} - proc SetDefaultPrinter*(pszPrinter: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetDefaultPrinterA".} - proc SetPort*(pName: LPSTR, pPortName: LPSTR, dwLevel: DWORD, pPortInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPortA".} - proc AddPrinterConnection*(pName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnectionA".} - proc DeletePrinterConnection*(pName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterConnectionA".} - proc AddPrintProvidor*(pName: LPSTR, level: DWORD, pProvidorInfo: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProvidorA".} - proc DeletePrintProvidor*(pName: LPSTR, pEnvironment: LPSTR, pPrintProvidorName: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProvidorA".} - proc IsValidDevmode*(pDevmode: PDEVMODEA, DevmodeSize: int): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "IsValidDevmodeA".} - proc AddPrinterConnection2*(hWnd: HWND, pszName: LPCSTR, dwLevel: DWORD, pConnectionInfo: PVOID): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnection2A".} - proc DeletePrinterDriverPackage*(pszServer: LPCSTR, pszInfPath: LPCSTR, pszEnvironment: LPCSTR): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverPackageA".} - proc GetCorePrinterDrivers*(pszServer: LPCSTR, pszEnvironment: LPCSTR, pszzCoreDriverDependencies: LPCSTR, cCorePrinterDrivers: DWORD, pCorePrinterDrivers: PCORE_PRINTER_DRIVERA): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetCorePrinterDriversA".} - proc GetPrinterDriver2*(hWnd: HWND, hPrinter: HANDLE, pEnvironment: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriver2A".} - proc GetPrinterDriverPackagePath*(pszServer: LPCSTR, pszEnvironment: LPCSTR, pszLanguage: LPCSTR, pszPackageID: LPCSTR, pszDriverPackageCab: LPSTR, cchDriverPackageCab: DWORD, pcchRequiredSize: LPDWORD): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverPackagePathA".} - proc OpenPrinter2*(pPrinterName: LPCSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTS, pOptions: PPRINTER_OPTIONS): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinter2A".} - proc UploadPrinterDriverPackage*(pszServer: LPCSTR, pszInfPath: LPCSTR, pszEnvironment: LPCSTR, dwFlags: DWORD, hwnd: HWND, pszDestInfPath: LPSTR, pcchDestInfPath: PULONG): HRESULT {.winapi, stdcall, dynlib: "winspool.drv", importc: "UploadPrinterDriverPackageA".} + + proc EnumPrinters*( + Flags: DWORD, + Name: LPSTR, + Level: DWORD, + pPrinterEnum: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintersA".} + + proc OpenPrinter*( + pPrinterName: LPSTR, phPrinter: LPHANDLE, pDefault: LPPRINTER_DEFAULTSA + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinterA".} + + proc ResetPrinter*( + hPrinter: HANDLE, pDefault: LPPRINTER_DEFAULTSA + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ResetPrinterA".} + + proc SetJob*( + hPrinter: HANDLE, JobId: DWORD, Level: DWORD, pJob: LPBYTE, Command: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetJobA".} + + proc GetJob*( + hPrinter: HANDLE, + JobId: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetJobA".} + + proc EnumJobs*( + hPrinter: HANDLE, + FirstJob: DWORD, + NoJobs: DWORD, + Level: DWORD, + pJob: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumJobsA".} + + proc AddPrinter*( + pName: LPSTR, Level: DWORD, pPrinter: LPBYTE + ): HANDLE {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterA".} + + proc SetPrinter*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, Command: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterA".} + + proc GetPrinter*( + hPrinter: HANDLE, Level: DWORD, pPrinter: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterA".} + + proc AddPrinterDriver*( + pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverA".} + + proc AddPrinterDriverEx*( + pName: LPSTR, Level: DWORD, pDriverInfo: LPBYTE, dwFileCopyFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterDriverExA".} + + proc EnumPrinterDrivers*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDriversA".} + + proc GetPrinterDriver*( + hPrinter: HANDLE, + pEnvironment: LPSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverA".} + + proc GetPrinterDriverDirectory*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pDriverDirectory: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverDirectoryA" + .} + + proc DeletePrinterDriver*( + pName: LPSTR, pEnvironment: LPSTR, pDriverName: LPSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverA" + .} + + proc DeletePrinterDriverEx*( + pName: LPSTR, + pEnvironment: LPSTR, + pDriverName: LPSTR, + dwDeleteFlag: DWORD, + dwVersionFlag: DWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverExA" + .} + + proc AddPrintProcessor*( + pName: LPSTR, pEnvironment: LPSTR, pPathName: LPSTR, pPrintProcessorName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProcessorA".} + + proc EnumPrintProcessors*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorsA" + .} + + proc GetPrintProcessorDirectory*( + pName: LPSTR, + pEnvironment: LPSTR, + Level: DWORD, + pPrintProcessorInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrintProcessorDirectoryA" + .} + + proc EnumPrintProcessorDatatypes*( + pName: LPSTR, + pPrintProcessorName: LPSTR, + Level: DWORD, + pDatatypes: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrintProcessorDatatypesA" + .} + + proc DeletePrintProcessor*( + pName: LPSTR, pEnvironment: LPSTR, pPrintProcessorName: LPSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProcessorA" + .} + + proc StartDocPrinter*( + hPrinter: HANDLE, Level: DWORD, pDocInfo: LPBYTE + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "StartDocPrinterA".} + + proc AddJob*( + hPrinter: HANDLE, Level: DWORD, pData: LPBYTE, cbBuf: DWORD, pcbNeeded: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddJobA".} + + proc DocumentProperties*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPSTR, + pDevModeOutput: PDEVMODEA, + pDevModeInput: PDEVMODEA, + fMode: DWORD, + ): LONG {.winapi, stdcall, dynlib: "winspool.drv", importc: "DocumentPropertiesA".} + + proc AdvancedDocumentProperties*( + hWnd: HWND, + hPrinter: HANDLE, + pDeviceName: LPSTR, + pDevModeOutput: PDEVMODEA, + pDevModeInput: PDEVMODEA, + ): LONG {. + winapi, stdcall, dynlib: "winspool.drv", importc: "AdvancedDocumentPropertiesA" + .} + + proc GetPrinterData*( + hPrinter: HANDLE, + pValueName: LPSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataA".} + + proc GetPrinterDataEx*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pValueName: LPCSTR, + pType: LPDWORD, + pData: LPBYTE, + nSize: DWORD, + pcbNeeded: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDataExA".} + + proc EnumPrinterData*( + hPrinter: HANDLE, + dwIndex: DWORD, + pValueName: LPSTR, + cbValueName: DWORD, + pcbValueName: LPDWORD, + pType: LPDWORD, + pData: LPBYTE, + cbData: DWORD, + pcbData: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataA".} + + proc EnumPrinterDataEx*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pEnumValues: LPBYTE, + cbEnumValues: DWORD, + pcbEnumValues: LPDWORD, + pnEnumValues: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterDataExA".} + + proc EnumPrinterKey*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pSubkey: LPSTR, + cbSubkey: DWORD, + pcbSubkey: LPDWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPrinterKeyA".} + + proc SetPrinterData*( + hPrinter: HANDLE, pValueName: LPSTR, Type: DWORD, pData: LPBYTE, cbData: DWORD + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataA".} + + proc SetPrinterDataEx*( + hPrinter: HANDLE, + pKeyName: LPCSTR, + pValueName: LPCSTR, + Type: DWORD, + pData: LPBYTE, + cbData: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPrinterDataExA".} + + proc DeletePrinterData*( + hPrinter: HANDLE, pValueName: LPSTR + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataA".} + + proc DeletePrinterDataEx*( + hPrinter: HANDLE, pKeyName: LPCSTR, pValueName: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDataExA".} + + proc DeletePrinterKey*( + hPrinter: HANDLE, pKeyName: LPCSTR + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterKeyA".} + + proc PrinterMessageBox*( + hPrinter: HANDLE, + Error: DWORD, + hWnd: HWND, + pText: LPSTR, + pCaption: LPSTR, + dwType: DWORD, + ): DWORD {.winapi, stdcall, dynlib: "winspool.drv", importc: "PrinterMessageBoxA".} + + proc AddForm*( + hPrinter: HANDLE, Level: DWORD, pForm: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddFormA".} + + proc DeleteForm*( + hPrinter: HANDLE, pFormName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteFormA".} + + proc GetForm*( + hPrinter: HANDLE, + pFormName: LPSTR, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetFormA".} + + proc SetForm*( + hPrinter: HANDLE, pFormName: LPSTR, Level: DWORD, pForm: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetFormA".} + + proc EnumForms*( + hPrinter: HANDLE, + Level: DWORD, + pForm: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumFormsA".} + + proc EnumMonitors*( + pName: LPSTR, + Level: DWORD, + pMonitor: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumMonitorsA".} + + proc AddMonitor*( + pName: LPSTR, Level: DWORD, pMonitorInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddMonitorA".} + + proc DeleteMonitor*( + pName: LPSTR, pEnvironment: LPSTR, pMonitorName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeleteMonitorA".} + + proc EnumPorts*( + pName: LPSTR, + Level: DWORD, + pPorts: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + pcReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "EnumPortsA".} + + proc AddPort*( + pName: LPSTR, hWnd: HWND, pMonitorName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPortA".} + + proc ConfigurePort*( + pName: LPSTR, hWnd: HWND, pPortName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "ConfigurePortA".} + + proc DeletePort*( + pName: LPSTR, hWnd: HWND, pPortName: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePortA".} + + proc GetDefaultPrinter*( + pszBuffer: LPSTR, pcchBuffer: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetDefaultPrinterA".} + + proc SetDefaultPrinter*( + pszPrinter: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetDefaultPrinterA".} + + proc SetPort*( + pName: LPSTR, pPortName: LPSTR, dwLevel: DWORD, pPortInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "SetPortA".} + + proc AddPrinterConnection*( + pName: LPSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnectionA" + .} + + proc DeletePrinterConnection*( + pName: LPSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterConnectionA" + .} + + proc AddPrintProvidor*( + pName: LPSTR, level: DWORD, pProvidorInfo: LPBYTE + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrintProvidorA".} + + proc DeletePrintProvidor*( + pName: LPSTR, pEnvironment: LPSTR, pPrintProvidorName: LPSTR + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrintProvidorA" + .} + + proc IsValidDevmode*( + pDevmode: PDEVMODEA, DevmodeSize: int + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "IsValidDevmodeA".} + + proc AddPrinterConnection2*( + hWnd: HWND, pszName: LPCSTR, dwLevel: DWORD, pConnectionInfo: PVOID + ): WINBOOL {. + winapi, stdcall, dynlib: "winspool.drv", importc: "AddPrinterConnection2A" + .} + + proc DeletePrinterDriverPackage*( + pszServer: LPCSTR, pszInfPath: LPCSTR, pszEnvironment: LPCSTR + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "DeletePrinterDriverPackageA" + .} + + proc GetCorePrinterDrivers*( + pszServer: LPCSTR, + pszEnvironment: LPCSTR, + pszzCoreDriverDependencies: LPCSTR, + cCorePrinterDrivers: DWORD, + pCorePrinterDrivers: PCORE_PRINTER_DRIVERA, + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetCorePrinterDriversA" + .} + + proc GetPrinterDriver2*( + hWnd: HWND, + hPrinter: HANDLE, + pEnvironment: LPSTR, + Level: DWORD, + pDriverInfo: LPBYTE, + cbBuf: DWORD, + pcbNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriver2A".} + + proc GetPrinterDriverPackagePath*( + pszServer: LPCSTR, + pszEnvironment: LPCSTR, + pszLanguage: LPCSTR, + pszPackageID: LPCSTR, + pszDriverPackageCab: LPSTR, + cchDriverPackageCab: DWORD, + pcchRequiredSize: LPDWORD, + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "GetPrinterDriverPackagePathA" + .} + + proc OpenPrinter2*( + pPrinterName: LPCSTR, + phPrinter: LPHANDLE, + pDefault: LPPRINTER_DEFAULTS, + pOptions: PPRINTER_OPTIONS, + ): WINBOOL {.winapi, stdcall, dynlib: "winspool.drv", importc: "OpenPrinter2A".} + + proc UploadPrinterDriverPackage*( + pszServer: LPCSTR, + pszInfPath: LPCSTR, + pszEnvironment: LPCSTR, + dwFlags: DWORD, + hwnd: HWND, + pszDestInfPath: LPSTR, + pcchDestInfPath: PULONG, + ): HRESULT {. + winapi, stdcall, dynlib: "winspool.drv", importc: "UploadPrinterDriverPackageA" + .} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winsvc.nim --- a/semicongine/thirdparty/winim/winim/inc/winsvc.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winsvc.nim Thu Aug 22 18:32:21 2024 +0700 @@ -15,13 +15,16 @@ SERVICE_STATUS_HANDLE* = HANDLE SERVICE_DESCRIPTIONA* {.pure.} = object lpDescription*: LPSTR + LPSERVICE_DESCRIPTIONA* = ptr SERVICE_DESCRIPTIONA SERVICE_DESCRIPTIONW* {.pure.} = object lpDescription*: LPWSTR + LPSERVICE_DESCRIPTIONW* = ptr SERVICE_DESCRIPTIONW SC_ACTION* {.pure.} = object Type*: SC_ACTION_TYPE Delay*: DWORD + LPSC_ACTION* = ptr SC_ACTION SERVICE_FAILURE_ACTIONSA* {.pure.} = object dwResetPeriod*: DWORD @@ -29,6 +32,7 @@ lpCommand*: LPSTR cActions*: DWORD lpsaActions*: ptr SC_ACTION + LPSERVICE_FAILURE_ACTIONSA* = ptr SERVICE_FAILURE_ACTIONSA SERVICE_FAILURE_ACTIONSW* {.pure.} = object dwResetPeriod*: DWORD @@ -36,6 +40,7 @@ lpCommand*: LPWSTR cActions*: DWORD lpsaActions*: ptr SC_ACTION + LPSERVICE_FAILURE_ACTIONSW* = ptr SERVICE_FAILURE_ACTIONSW LPSC_HANDLE* = ptr SC_HANDLE SERVICE_STATUS* {.pure.} = object @@ -46,6 +51,7 @@ dwServiceSpecificExitCode*: DWORD dwCheckPoint*: DWORD dwWaitHint*: DWORD + LPSERVICE_STATUS* = ptr SERVICE_STATUS SERVICE_STATUS_PROCESS* {.pure.} = object dwServiceType*: DWORD @@ -57,37 +63,44 @@ dwWaitHint*: DWORD dwProcessId*: DWORD dwServiceFlags*: DWORD + LPSERVICE_STATUS_PROCESS* = ptr SERVICE_STATUS_PROCESS ENUM_SERVICE_STATUSA* {.pure.} = object lpServiceName*: LPSTR lpDisplayName*: LPSTR ServiceStatus*: SERVICE_STATUS + LPENUM_SERVICE_STATUSA* = ptr ENUM_SERVICE_STATUSA ENUM_SERVICE_STATUSW* {.pure.} = object lpServiceName*: LPWSTR lpDisplayName*: LPWSTR ServiceStatus*: SERVICE_STATUS + LPENUM_SERVICE_STATUSW* = ptr ENUM_SERVICE_STATUSW ENUM_SERVICE_STATUS_PROCESSA* {.pure.} = object lpServiceName*: LPSTR lpDisplayName*: LPSTR ServiceStatusProcess*: SERVICE_STATUS_PROCESS + LPENUM_SERVICE_STATUS_PROCESSA* = ptr ENUM_SERVICE_STATUS_PROCESSA ENUM_SERVICE_STATUS_PROCESSW* {.pure.} = object lpServiceName*: LPWSTR lpDisplayName*: LPWSTR ServiceStatusProcess*: SERVICE_STATUS_PROCESS + LPENUM_SERVICE_STATUS_PROCESSW* = ptr ENUM_SERVICE_STATUS_PROCESSW SC_LOCK* = LPVOID TQUERY_SERVICE_LOCK_STATUSA* {.pure.} = object fIsLocked*: DWORD lpLockOwner*: LPSTR dwLockDuration*: DWORD + LPQUERY_SERVICE_LOCK_STATUSA* = ptr TQUERY_SERVICE_LOCK_STATUSA TQUERY_SERVICE_LOCK_STATUSW* {.pure.} = object fIsLocked*: DWORD lpLockOwner*: LPWSTR dwLockDuration*: DWORD + LPQUERY_SERVICE_LOCK_STATUSW* = ptr TQUERY_SERVICE_LOCK_STATUSW TQUERY_SERVICE_CONFIGA* {.pure.} = object dwServiceType*: DWORD @@ -99,6 +112,7 @@ lpDependencies*: LPSTR lpServiceStartName*: LPSTR lpDisplayName*: LPSTR + LPQUERY_SERVICE_CONFIGA* = ptr TQUERY_SERVICE_CONFIGA TQUERY_SERVICE_CONFIGW* {.pure.} = object dwServiceType*: DWORD @@ -110,28 +124,35 @@ lpDependencies*: LPWSTR lpServiceStartName*: LPWSTR lpDisplayName*: LPWSTR + LPQUERY_SERVICE_CONFIGW* = ptr TQUERY_SERVICE_CONFIGW - LPSERVICE_MAIN_FUNCTIONA* = proc (dwNumServicesArgs: DWORD, lpServiceArgVectors: ptr LPSTR): VOID {.stdcall.} + LPSERVICE_MAIN_FUNCTIONA* = + proc(dwNumServicesArgs: DWORD, lpServiceArgVectors: ptr LPSTR): VOID {.stdcall.} SERVICE_TABLE_ENTRYA* {.pure.} = object lpServiceName*: LPSTR lpServiceProc*: LPSERVICE_MAIN_FUNCTIONA + LPSERVICE_TABLE_ENTRYA* = ptr SERVICE_TABLE_ENTRYA - LPSERVICE_MAIN_FUNCTIONW* = proc (dwNumServicesArgs: DWORD, lpServiceArgVectors: ptr LPWSTR): VOID {.stdcall.} + LPSERVICE_MAIN_FUNCTIONW* = + proc(dwNumServicesArgs: DWORD, lpServiceArgVectors: ptr LPWSTR): VOID {.stdcall.} SERVICE_TABLE_ENTRYW* {.pure.} = object lpServiceName*: LPWSTR lpServiceProc*: LPSERVICE_MAIN_FUNCTIONW + LPSERVICE_TABLE_ENTRYW* = ptr SERVICE_TABLE_ENTRYW SERVICE_CONTROL_STATUS_REASON_PARAMSA* {.pure.} = object dwReason*: DWORD pszComment*: LPSTR ServiceStatus*: SERVICE_STATUS_PROCESS + PSERVICE_CONTROL_STATUS_REASON_PARAMSA* = ptr SERVICE_CONTROL_STATUS_REASON_PARAMSA SERVICE_CONTROL_STATUS_REASON_PARAMSW* {.pure.} = object dwReason*: DWORD pszComment*: LPWSTR ServiceStatus*: SERVICE_STATUS_PROCESS + PSERVICE_CONTROL_STATUS_REASON_PARAMSW* = ptr SERVICE_CONTROL_STATUS_REASON_PARAMSW - PFN_SC_NOTIFY_CALLBACK* = proc (pParameter: PVOID): VOID {.stdcall.} + PFN_SC_NOTIFY_CALLBACK* = proc(pParameter: PVOID): VOID {.stdcall.} SERVICE_NOTIFYA* {.pure.} = object dwVersion*: DWORD pfnNotifyCallback*: PFN_SC_NOTIFY_CALLBACK @@ -140,6 +161,7 @@ ServiceStatus*: SERVICE_STATUS_PROCESS dwNotificationTriggered*: DWORD pszServiceNames*: LPSTR + PSERVICE_NOTIFYA* = ptr SERVICE_NOTIFYA SERVICE_NOTIFYW* {.pure.} = object dwVersion*: DWORD @@ -149,25 +171,33 @@ ServiceStatus*: SERVICE_STATUS_PROCESS dwNotificationTriggered*: DWORD pszServiceNames*: LPWSTR + PSERVICE_NOTIFYW* = ptr SERVICE_NOTIFYW SERVICE_DELAYED_AUTO_START_INFO* {.pure.} = object fDelayedAutostart*: WINBOOL + LPSERVICE_DELAYED_AUTO_START_INFO* = ptr SERVICE_DELAYED_AUTO_START_INFO SERVICE_FAILURE_ACTIONS_FLAG* {.pure.} = object fFailureActionsOnNonCrashFailures*: WINBOOL + LPSERVICE_FAILURE_ACTIONS_FLAG* = ptr SERVICE_FAILURE_ACTIONS_FLAG SERVICE_PRESHUTDOWN_INFO* {.pure.} = object dwPreshutdownTimeout*: DWORD + LPSERVICE_PRESHUTDOWN_INFO* = ptr SERVICE_PRESHUTDOWN_INFO SERVICE_REQUIRED_PRIVILEGES_INFOA* {.pure.} = object pmszRequiredPrivileges*: LPSTR + LPSERVICE_REQUIRED_PRIVILEGES_INFOA* = ptr SERVICE_REQUIRED_PRIVILEGES_INFOA SERVICE_REQUIRED_PRIVILEGES_INFOW* {.pure.} = object pmszRequiredPrivileges*: LPWSTR + LPSERVICE_REQUIRED_PRIVILEGES_INFOW* = ptr SERVICE_REQUIRED_PRIVILEGES_INFOW SERVICE_SID_INFO* {.pure.} = object dwServiceSidType*: DWORD + LPSERVICE_SID_INFO* = ptr SERVICE_SID_INFO + const SERVICES_ACTIVE_DATABASEW* = "ServicesActive" SERVICES_FAILED_DATABASEW* = "ServicesFailed" @@ -212,7 +242,10 @@ SC_MANAGER_LOCK* = 0x0008 SC_MANAGER_QUERY_LOCK_STATUS* = 0x0010 SC_MANAGER_MODIFY_BOOT_CONFIG* = 0x0020 - SC_MANAGER_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SC_MANAGER_CONNECT or SC_MANAGER_CREATE_SERVICE or SC_MANAGER_ENUMERATE_SERVICE or SC_MANAGER_LOCK or SC_MANAGER_QUERY_LOCK_STATUS or SC_MANAGER_MODIFY_BOOT_CONFIG + SC_MANAGER_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or SC_MANAGER_CONNECT or SC_MANAGER_CREATE_SERVICE or + SC_MANAGER_ENUMERATE_SERVICE or SC_MANAGER_LOCK or SC_MANAGER_QUERY_LOCK_STATUS or + SC_MANAGER_MODIFY_BOOT_CONFIG SERVICE_QUERY_CONFIG* = 0x0001 SERVICE_CHANGE_CONFIG* = 0x0002 SERVICE_QUERY_STATUS* = 0x0004 @@ -222,7 +255,10 @@ SERVICE_PAUSE_CONTINUE* = 0x0040 SERVICE_INTERROGATE* = 0x0080 SERVICE_USER_DEFINED_CONTROL* = 0x0100 - SERVICE_ALL_ACCESS* = STANDARD_RIGHTS_REQUIRED or SERVICE_QUERY_CONFIG or SERVICE_CHANGE_CONFIG or SERVICE_QUERY_STATUS or SERVICE_ENUMERATE_DEPENDENTS or SERVICE_START or SERVICE_STOP or SERVICE_PAUSE_CONTINUE or SERVICE_INTERROGATE or SERVICE_USER_DEFINED_CONTROL + SERVICE_ALL_ACCESS* = + STANDARD_RIGHTS_REQUIRED or SERVICE_QUERY_CONFIG or SERVICE_CHANGE_CONFIG or + SERVICE_QUERY_STATUS or SERVICE_ENUMERATE_DEPENDENTS or SERVICE_START or SERVICE_STOP or + SERVICE_PAUSE_CONTINUE or SERVICE_INTERROGATE or SERVICE_USER_DEFINED_CONTROL SERVICE_RUNS_IN_SYSTEM_PROCESS* = 0x00000001 SERVICE_CONFIG_DESCRIPTION* = 1 SERVICE_CONFIG_FAILURE_ACTIONS* = 2 @@ -275,57 +311,335 @@ SC_GROUP_IDENTIFIERA* = '+' SC_GROUP_IDENTIFIERW* = WCHAR '+' type - LPHANDLER_FUNCTION* = proc (dwControl: DWORD): VOID {.stdcall.} - LPHANDLER_FUNCTION_EX* = proc (dwControl: DWORD, dwEventType: DWORD, lpEventData: LPVOID, lpContext: LPVOID): DWORD {.stdcall.} -proc ChangeServiceConfigA*(hService: SC_HANDLE, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCSTR, lpLoadOrderGroup: LPCSTR, lpdwTagId: LPDWORD, lpDependencies: LPCSTR, lpServiceStartName: LPCSTR, lpPassword: LPCSTR, lpDisplayName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ChangeServiceConfigW*(hService: SC_HANDLE, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCWSTR, lpLoadOrderGroup: LPCWSTR, lpdwTagId: LPDWORD, lpDependencies: LPCWSTR, lpServiceStartName: LPCWSTR, lpPassword: LPCWSTR, lpDisplayName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ChangeServiceConfig2A*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ChangeServiceConfig2W*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CloseServiceHandle*(hSCObject: SC_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ControlService*(hService: SC_HANDLE, dwControl: DWORD, lpServiceStatus: LPSERVICE_STATUS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreateServiceA*(hSCManager: SC_HANDLE, lpServiceName: LPCSTR, lpDisplayName: LPCSTR, dwDesiredAccess: DWORD, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCSTR, lpLoadOrderGroup: LPCSTR, lpdwTagId: LPDWORD, lpDependencies: LPCSTR, lpServiceStartName: LPCSTR, lpPassword: LPCSTR): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc CreateServiceW*(hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, lpDisplayName: LPCWSTR, dwDesiredAccess: DWORD, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCWSTR, lpLoadOrderGroup: LPCWSTR, lpdwTagId: LPDWORD, lpDependencies: LPCWSTR, lpServiceStartName: LPCWSTR, lpPassword: LPCWSTR): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc DeleteService*(hService: SC_HANDLE): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EnumDependentServicesA*(hService: SC_HANDLE, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EnumDependentServicesW*(hService: SC_HANDLE, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EnumServicesStatusA*(hSCManager: SC_HANDLE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EnumServicesStatusW*(hSCManager: SC_HANDLE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EnumServicesStatusExA*(hSCManager: SC_HANDLE, InfoLevel: SC_ENUM_TYPE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD, pszGroupName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc EnumServicesStatusExW*(hSCManager: SC_HANDLE, InfoLevel: SC_ENUM_TYPE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD, pszGroupName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetServiceKeyNameA*(hSCManager: SC_HANDLE, lpDisplayName: LPCSTR, lpServiceName: LPSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetServiceKeyNameW*(hSCManager: SC_HANDLE, lpDisplayName: LPCWSTR, lpServiceName: LPWSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetServiceDisplayNameA*(hSCManager: SC_HANDLE, lpServiceName: LPCSTR, lpDisplayName: LPSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc GetServiceDisplayNameW*(hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, lpDisplayName: LPWSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc LockServiceDatabase*(hSCManager: SC_HANDLE): SC_LOCK {.winapi, stdcall, dynlib: "advapi32", importc.} -proc NotifyBootConfigStatus*(BootAcceptable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenSCManagerA*(lpMachineName: LPCSTR, lpDatabaseName: LPCSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenSCManagerW*(lpMachineName: LPCWSTR, lpDatabaseName: LPCWSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenServiceA*(hSCManager: SC_HANDLE, lpServiceName: LPCSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc OpenServiceW*(hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceConfigA*(hService: SC_HANDLE, lpServiceConfig: LPQUERY_SERVICE_CONFIGA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceConfigW*(hService: SC_HANDLE, lpServiceConfig: LPQUERY_SERVICE_CONFIGW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceConfig2A*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpBuffer: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceConfig2W*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpBuffer: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceLockStatusA*(hSCManager: SC_HANDLE, lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceLockStatusW*(hSCManager: SC_HANDLE, lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceObjectSecurity*(hService: SC_HANDLE, dwSecurityInformation: SECURITY_INFORMATION, lpSecurityDescriptor: PSECURITY_DESCRIPTOR, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceStatus*(hService: SC_HANDLE, lpServiceStatus: LPSERVICE_STATUS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc QueryServiceStatusEx*(hService: SC_HANDLE, InfoLevel: SC_STATUS_TYPE, lpBuffer: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterServiceCtrlHandlerA*(lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterServiceCtrlHandlerW*(lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterServiceCtrlHandlerExA*(lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc RegisterServiceCtrlHandlerExW*(lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetServiceObjectSecurity*(hService: SC_HANDLE, dwSecurityInformation: SECURITY_INFORMATION, lpSecurityDescriptor: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc SetServiceStatus*(hServiceStatus: SERVICE_STATUS_HANDLE, lpServiceStatus: LPSERVICE_STATUS): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc StartServiceCtrlDispatcherA*(lpServiceStartTable: ptr SERVICE_TABLE_ENTRYA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc StartServiceCtrlDispatcherW*(lpServiceStartTable: ptr SERVICE_TABLE_ENTRYW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc StartServiceA*(hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc StartServiceW*(hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc UnlockServiceDatabase*(ScLock: SC_LOCK): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ControlServiceExA*(hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc ControlServiceExW*(hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} -proc NotifyServiceStatusChangeA*(hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYA): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} -proc NotifyServiceStatusChangeW*(hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYW): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + LPHANDLER_FUNCTION* = proc(dwControl: DWORD): VOID {.stdcall.} + LPHANDLER_FUNCTION_EX* = proc( + dwControl: DWORD, dwEventType: DWORD, lpEventData: LPVOID, lpContext: LPVOID + ): DWORD {.stdcall.} + +proc ChangeServiceConfigA*( + hService: SC_HANDLE, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCSTR, + lpLoadOrderGroup: LPCSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCSTR, + lpServiceStartName: LPCSTR, + lpPassword: LPCSTR, + lpDisplayName: LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ChangeServiceConfigW*( + hService: SC_HANDLE, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCWSTR, + lpLoadOrderGroup: LPCWSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCWSTR, + lpServiceStartName: LPCWSTR, + lpPassword: LPCWSTR, + lpDisplayName: LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ChangeServiceConfig2A*( + hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ChangeServiceConfig2W*( + hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CloseServiceHandle*( + hSCObject: SC_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ControlService*( + hService: SC_HANDLE, dwControl: DWORD, lpServiceStatus: LPSERVICE_STATUS +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreateServiceA*( + hSCManager: SC_HANDLE, + lpServiceName: LPCSTR, + lpDisplayName: LPCSTR, + dwDesiredAccess: DWORD, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCSTR, + lpLoadOrderGroup: LPCSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCSTR, + lpServiceStartName: LPCSTR, + lpPassword: LPCSTR, +): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc CreateServiceW*( + hSCManager: SC_HANDLE, + lpServiceName: LPCWSTR, + lpDisplayName: LPCWSTR, + dwDesiredAccess: DWORD, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCWSTR, + lpLoadOrderGroup: LPCWSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCWSTR, + lpServiceStartName: LPCWSTR, + lpPassword: LPCWSTR, +): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc DeleteService*( + hService: SC_HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EnumDependentServicesA*( + hService: SC_HANDLE, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EnumDependentServicesW*( + hService: SC_HANDLE, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EnumServicesStatusA*( + hSCManager: SC_HANDLE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EnumServicesStatusW*( + hSCManager: SC_HANDLE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EnumServicesStatusExA*( + hSCManager: SC_HANDLE, + InfoLevel: SC_ENUM_TYPE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, + pszGroupName: LPCSTR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc EnumServicesStatusExW*( + hSCManager: SC_HANDLE, + InfoLevel: SC_ENUM_TYPE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, + pszGroupName: LPCWSTR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetServiceKeyNameA*( + hSCManager: SC_HANDLE, + lpDisplayName: LPCSTR, + lpServiceName: LPSTR, + lpcchBuffer: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetServiceKeyNameW*( + hSCManager: SC_HANDLE, + lpDisplayName: LPCWSTR, + lpServiceName: LPWSTR, + lpcchBuffer: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetServiceDisplayNameA*( + hSCManager: SC_HANDLE, + lpServiceName: LPCSTR, + lpDisplayName: LPSTR, + lpcchBuffer: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc GetServiceDisplayNameW*( + hSCManager: SC_HANDLE, + lpServiceName: LPCWSTR, + lpDisplayName: LPWSTR, + lpcchBuffer: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc LockServiceDatabase*( + hSCManager: SC_HANDLE +): SC_LOCK {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc NotifyBootConfigStatus*( + BootAcceptable: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenSCManagerA*( + lpMachineName: LPCSTR, lpDatabaseName: LPCSTR, dwDesiredAccess: DWORD +): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenSCManagerW*( + lpMachineName: LPCWSTR, lpDatabaseName: LPCWSTR, dwDesiredAccess: DWORD +): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenServiceA*( + hSCManager: SC_HANDLE, lpServiceName: LPCSTR, dwDesiredAccess: DWORD +): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc OpenServiceW*( + hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, dwDesiredAccess: DWORD +): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceConfigA*( + hService: SC_HANDLE, + lpServiceConfig: LPQUERY_SERVICE_CONFIGA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceConfigW*( + hService: SC_HANDLE, + lpServiceConfig: LPQUERY_SERVICE_CONFIGW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceConfig2A*( + hService: SC_HANDLE, + dwInfoLevel: DWORD, + lpBuffer: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceConfig2W*( + hService: SC_HANDLE, + dwInfoLevel: DWORD, + lpBuffer: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceLockStatusA*( + hSCManager: SC_HANDLE, + lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceLockStatusW*( + hSCManager: SC_HANDLE, + lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceObjectSecurity*( + hService: SC_HANDLE, + dwSecurityInformation: SECURITY_INFORMATION, + lpSecurityDescriptor: PSECURITY_DESCRIPTOR, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceStatus*( + hService: SC_HANDLE, lpServiceStatus: LPSERVICE_STATUS +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc QueryServiceStatusEx*( + hService: SC_HANDLE, + InfoLevel: SC_STATUS_TYPE, + lpBuffer: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterServiceCtrlHandlerA*( + lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION +): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterServiceCtrlHandlerW*( + lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION +): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterServiceCtrlHandlerExA*( + lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID +): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc RegisterServiceCtrlHandlerExW*( + lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID +): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetServiceObjectSecurity*( + hService: SC_HANDLE, + dwSecurityInformation: SECURITY_INFORMATION, + lpSecurityDescriptor: PSECURITY_DESCRIPTOR, +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc SetServiceStatus*( + hServiceStatus: SERVICE_STATUS_HANDLE, lpServiceStatus: LPSERVICE_STATUS +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc StartServiceCtrlDispatcherA*( + lpServiceStartTable: ptr SERVICE_TABLE_ENTRYA +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc StartServiceCtrlDispatcherW*( + lpServiceStartTable: ptr SERVICE_TABLE_ENTRYW +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc StartServiceA*( + hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc StartServiceW*( + hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc UnlockServiceDatabase*( + ScLock: SC_LOCK +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ControlServiceExA*( + hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc ControlServiceExW*( + hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID +): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc NotifyServiceStatusChangeA*( + hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYA +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + +proc NotifyServiceStatusChangeW*( + hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYW +): DWORD {.winapi, stdcall, dynlib: "advapi32", importc.} + when winimUnicode: type SERVICE_DESCRIPTION* = SERVICE_DESCRIPTIONW @@ -348,29 +662,154 @@ SERVICE_NOTIFY* = SERVICE_NOTIFYW PSERVICE_NOTIFY* = PSERVICE_NOTIFYW SERVICE_REQUIRED_PRIVILEGES_INFO* = SERVICE_REQUIRED_PRIVILEGES_INFOW + const SERVICES_ACTIVE_DATABASE* = SERVICES_ACTIVE_DATABASEW SERVICES_FAILED_DATABASE* = SERVICES_FAILED_DATABASEW SC_GROUP_IDENTIFIER* = SC_GROUP_IDENTIFIERW - proc ChangeServiceConfig*(hService: SC_HANDLE, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCWSTR, lpLoadOrderGroup: LPCWSTR, lpdwTagId: LPDWORD, lpDependencies: LPCWSTR, lpServiceStartName: LPCWSTR, lpPassword: LPCWSTR, lpDisplayName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfigW".} - proc ChangeServiceConfig2*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfig2W".} - proc CreateService*(hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, lpDisplayName: LPCWSTR, dwDesiredAccess: DWORD, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCWSTR, lpLoadOrderGroup: LPCWSTR, lpdwTagId: LPDWORD, lpDependencies: LPCWSTR, lpServiceStartName: LPCWSTR, lpPassword: LPCWSTR): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "CreateServiceW".} - proc EnumDependentServices*(hService: SC_HANDLE, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumDependentServicesW".} - proc EnumServicesStatus*(hSCManager: SC_HANDLE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusW".} - proc EnumServicesStatusEx*(hSCManager: SC_HANDLE, InfoLevel: SC_ENUM_TYPE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD, pszGroupName: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusExW".} - proc GetServiceKeyName*(hSCManager: SC_HANDLE, lpDisplayName: LPCWSTR, lpServiceName: LPWSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceKeyNameW".} - proc GetServiceDisplayName*(hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, lpDisplayName: LPWSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceDisplayNameW".} - proc OpenSCManager*(lpMachineName: LPCWSTR, lpDatabaseName: LPCWSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenSCManagerW".} - proc OpenService*(hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenServiceW".} - proc QueryServiceConfig*(hService: SC_HANDLE, lpServiceConfig: LPQUERY_SERVICE_CONFIGW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfigW".} - proc QueryServiceConfig2*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpBuffer: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfig2W".} - proc QueryServiceLockStatus*(hSCManager: SC_HANDLE, lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceLockStatusW".} - proc RegisterServiceCtrlHandler*(lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerW".} - proc RegisterServiceCtrlHandlerEx*(lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerExW".} - proc StartServiceCtrlDispatcher*(lpServiceStartTable: ptr SERVICE_TABLE_ENTRYW): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "StartServiceCtrlDispatcherW".} - proc StartService*(hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "StartServiceW".} - proc ControlServiceEx*(hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ControlServiceExW".} - proc NotifyServiceStatusChange*(hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYW): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "NotifyServiceStatusChangeW".} + proc ChangeServiceConfig*( + hService: SC_HANDLE, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCWSTR, + lpLoadOrderGroup: LPCWSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCWSTR, + lpServiceStartName: LPCWSTR, + lpPassword: LPCWSTR, + lpDisplayName: LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfigW".} + + proc ChangeServiceConfig2*( + hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfig2W".} + + proc CreateService*( + hSCManager: SC_HANDLE, + lpServiceName: LPCWSTR, + lpDisplayName: LPCWSTR, + dwDesiredAccess: DWORD, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCWSTR, + lpLoadOrderGroup: LPCWSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCWSTR, + lpServiceStartName: LPCWSTR, + lpPassword: LPCWSTR, + ): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "CreateServiceW".} + + proc EnumDependentServices*( + hService: SC_HANDLE, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumDependentServicesW".} + + proc EnumServicesStatus*( + hSCManager: SC_HANDLE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusW".} + + proc EnumServicesStatusEx*( + hSCManager: SC_HANDLE, + InfoLevel: SC_ENUM_TYPE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, + pszGroupName: LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusExW".} + + proc GetServiceKeyName*( + hSCManager: SC_HANDLE, + lpDisplayName: LPCWSTR, + lpServiceName: LPWSTR, + lpcchBuffer: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceKeyNameW".} + + proc GetServiceDisplayName*( + hSCManager: SC_HANDLE, + lpServiceName: LPCWSTR, + lpDisplayName: LPWSTR, + lpcchBuffer: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceDisplayNameW".} + + proc OpenSCManager*( + lpMachineName: LPCWSTR, lpDatabaseName: LPCWSTR, dwDesiredAccess: DWORD + ): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenSCManagerW".} + + proc OpenService*( + hSCManager: SC_HANDLE, lpServiceName: LPCWSTR, dwDesiredAccess: DWORD + ): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenServiceW".} + + proc QueryServiceConfig*( + hService: SC_HANDLE, + lpServiceConfig: LPQUERY_SERVICE_CONFIGW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfigW".} + + proc QueryServiceConfig2*( + hService: SC_HANDLE, + dwInfoLevel: DWORD, + lpBuffer: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfig2W".} + + proc QueryServiceLockStatus*( + hSCManager: SC_HANDLE, + lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSW, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceLockStatusW".} + + proc RegisterServiceCtrlHandler*( + lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION + ): SERVICE_STATUS_HANDLE {. + winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerW" + .} + + proc RegisterServiceCtrlHandlerEx*( + lpServiceName: LPCWSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID + ): SERVICE_STATUS_HANDLE {. + winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerExW" + .} + + proc StartServiceCtrlDispatcher*( + lpServiceStartTable: ptr SERVICE_TABLE_ENTRYW + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "StartServiceCtrlDispatcherW" + .} + + proc StartService*( + hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "StartServiceW".} + + proc ControlServiceEx*( + hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ControlServiceExW".} + + proc NotifyServiceStatusChange*( + hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYW + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "NotifyServiceStatusChangeW" + .} + when winimAnsi: type SERVICE_DESCRIPTION* = SERVICE_DESCRIPTIONA @@ -393,26 +832,150 @@ SERVICE_NOTIFY* = SERVICE_NOTIFYA PSERVICE_NOTIFY* = PSERVICE_NOTIFYA SERVICE_REQUIRED_PRIVILEGES_INFO* = SERVICE_REQUIRED_PRIVILEGES_INFOA + const SERVICES_ACTIVE_DATABASE* = SERVICES_ACTIVE_DATABASEA SERVICES_FAILED_DATABASE* = SERVICES_FAILED_DATABASEA SC_GROUP_IDENTIFIER* = SC_GROUP_IDENTIFIERA - proc ChangeServiceConfig*(hService: SC_HANDLE, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCSTR, lpLoadOrderGroup: LPCSTR, lpdwTagId: LPDWORD, lpDependencies: LPCSTR, lpServiceStartName: LPCSTR, lpPassword: LPCSTR, lpDisplayName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfigA".} - proc ChangeServiceConfig2*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfig2A".} - proc CreateService*(hSCManager: SC_HANDLE, lpServiceName: LPCSTR, lpDisplayName: LPCSTR, dwDesiredAccess: DWORD, dwServiceType: DWORD, dwStartType: DWORD, dwErrorControl: DWORD, lpBinaryPathName: LPCSTR, lpLoadOrderGroup: LPCSTR, lpdwTagId: LPDWORD, lpDependencies: LPCSTR, lpServiceStartName: LPCSTR, lpPassword: LPCSTR): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "CreateServiceA".} - proc EnumDependentServices*(hService: SC_HANDLE, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumDependentServicesA".} - proc EnumServicesStatus*(hSCManager: SC_HANDLE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPENUM_SERVICE_STATUSA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusA".} - proc EnumServicesStatusEx*(hSCManager: SC_HANDLE, InfoLevel: SC_ENUM_TYPE, dwServiceType: DWORD, dwServiceState: DWORD, lpServices: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD, lpServicesReturned: LPDWORD, lpResumeHandle: LPDWORD, pszGroupName: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusExA".} - proc GetServiceKeyName*(hSCManager: SC_HANDLE, lpDisplayName: LPCSTR, lpServiceName: LPSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceKeyNameA".} - proc GetServiceDisplayName*(hSCManager: SC_HANDLE, lpServiceName: LPCSTR, lpDisplayName: LPSTR, lpcchBuffer: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceDisplayNameA".} - proc OpenSCManager*(lpMachineName: LPCSTR, lpDatabaseName: LPCSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenSCManagerA".} - proc OpenService*(hSCManager: SC_HANDLE, lpServiceName: LPCSTR, dwDesiredAccess: DWORD): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenServiceA".} - proc QueryServiceConfig*(hService: SC_HANDLE, lpServiceConfig: LPQUERY_SERVICE_CONFIGA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfigA".} - proc QueryServiceConfig2*(hService: SC_HANDLE, dwInfoLevel: DWORD, lpBuffer: LPBYTE, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfig2A".} - proc QueryServiceLockStatus*(hSCManager: SC_HANDLE, lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceLockStatusA".} - proc RegisterServiceCtrlHandler*(lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerA".} - proc RegisterServiceCtrlHandlerEx*(lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID): SERVICE_STATUS_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerExA".} - proc StartServiceCtrlDispatcher*(lpServiceStartTable: ptr SERVICE_TABLE_ENTRYA): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "StartServiceCtrlDispatcherA".} - proc StartService*(hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "StartServiceA".} - proc ControlServiceEx*(hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ControlServiceExA".} - proc NotifyServiceStatusChange*(hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYA): DWORD {.winapi, stdcall, dynlib: "advapi32", importc: "NotifyServiceStatusChangeA".} + proc ChangeServiceConfig*( + hService: SC_HANDLE, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCSTR, + lpLoadOrderGroup: LPCSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCSTR, + lpServiceStartName: LPCSTR, + lpPassword: LPCSTR, + lpDisplayName: LPCSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfigA".} + + proc ChangeServiceConfig2*( + hService: SC_HANDLE, dwInfoLevel: DWORD, lpInfo: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ChangeServiceConfig2A".} + + proc CreateService*( + hSCManager: SC_HANDLE, + lpServiceName: LPCSTR, + lpDisplayName: LPCSTR, + dwDesiredAccess: DWORD, + dwServiceType: DWORD, + dwStartType: DWORD, + dwErrorControl: DWORD, + lpBinaryPathName: LPCSTR, + lpLoadOrderGroup: LPCSTR, + lpdwTagId: LPDWORD, + lpDependencies: LPCSTR, + lpServiceStartName: LPCSTR, + lpPassword: LPCSTR, + ): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "CreateServiceA".} + + proc EnumDependentServices*( + hService: SC_HANDLE, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumDependentServicesA".} + + proc EnumServicesStatus*( + hSCManager: SC_HANDLE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPENUM_SERVICE_STATUSA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusA".} + + proc EnumServicesStatusEx*( + hSCManager: SC_HANDLE, + InfoLevel: SC_ENUM_TYPE, + dwServiceType: DWORD, + dwServiceState: DWORD, + lpServices: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + lpServicesReturned: LPDWORD, + lpResumeHandle: LPDWORD, + pszGroupName: LPCSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "EnumServicesStatusExA".} + + proc GetServiceKeyName*( + hSCManager: SC_HANDLE, + lpDisplayName: LPCSTR, + lpServiceName: LPSTR, + lpcchBuffer: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceKeyNameA".} + + proc GetServiceDisplayName*( + hSCManager: SC_HANDLE, + lpServiceName: LPCSTR, + lpDisplayName: LPSTR, + lpcchBuffer: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "GetServiceDisplayNameA".} + + proc OpenSCManager*( + lpMachineName: LPCSTR, lpDatabaseName: LPCSTR, dwDesiredAccess: DWORD + ): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenSCManagerA".} + + proc OpenService*( + hSCManager: SC_HANDLE, lpServiceName: LPCSTR, dwDesiredAccess: DWORD + ): SC_HANDLE {.winapi, stdcall, dynlib: "advapi32", importc: "OpenServiceA".} + + proc QueryServiceConfig*( + hService: SC_HANDLE, + lpServiceConfig: LPQUERY_SERVICE_CONFIGA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfigA".} + + proc QueryServiceConfig2*( + hService: SC_HANDLE, + dwInfoLevel: DWORD, + lpBuffer: LPBYTE, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceConfig2A".} + + proc QueryServiceLockStatus*( + hSCManager: SC_HANDLE, + lpLockStatus: LPQUERY_SERVICE_LOCK_STATUSA, + cbBufSize: DWORD, + pcbBytesNeeded: LPDWORD, + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "QueryServiceLockStatusA".} + + proc RegisterServiceCtrlHandler*( + lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION + ): SERVICE_STATUS_HANDLE {. + winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerA" + .} + + proc RegisterServiceCtrlHandlerEx*( + lpServiceName: LPCSTR, lpHandlerProc: LPHANDLER_FUNCTION_EX, lpContext: LPVOID + ): SERVICE_STATUS_HANDLE {. + winapi, stdcall, dynlib: "advapi32", importc: "RegisterServiceCtrlHandlerExA" + .} + + proc StartServiceCtrlDispatcher*( + lpServiceStartTable: ptr SERVICE_TABLE_ENTRYA + ): WINBOOL {. + winapi, stdcall, dynlib: "advapi32", importc: "StartServiceCtrlDispatcherA" + .} + + proc StartService*( + hService: SC_HANDLE, dwNumServiceArgs: DWORD, lpServiceArgVectors: ptr LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "StartServiceA".} + + proc ControlServiceEx*( + hService: SC_HANDLE, dwControl: DWORD, dwInfoLevel: DWORD, pControlParams: PVOID + ): WINBOOL {.winapi, stdcall, dynlib: "advapi32", importc: "ControlServiceExA".} + + proc NotifyServiceStatusChange*( + hService: SC_HANDLE, dwNotifyMask: DWORD, pNotifyBuffer: PSERVICE_NOTIFYA + ): DWORD {. + winapi, stdcall, dynlib: "advapi32", importc: "NotifyServiceStatusChangeA" + .} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/wintrust.nim --- a/semicongine/thirdparty/winim/winim/inc/wintrust.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/wintrust.nim Thu Aug 22 18:32:21 2024 +0700 @@ -18,6 +18,7 @@ pcwszFilePath*: LPCWSTR hFile*: HANDLE pgKnownSubject*: ptr GUID + WINTRUST_CATALOG_INFO* {.pure.} = object cbStruct*: DWORD dwCatalogVersion*: DWORD @@ -28,6 +29,7 @@ pbCalculatedFileHash*: ptr BYTE cbCalculatedFileHash*: DWORD pcCatalogContext*: PCCTL_CONTEXT + WINTRUST_BLOB_INFO* {.pure.} = object cbStruct*: DWORD gSubject*: GUID @@ -36,12 +38,14 @@ pbMemObject*: ptr BYTE cbMemSignedMsg*: DWORD pbMemSignedMsg*: ptr BYTE + WINTRUST_SGNR_INFO* {.pure.} = object cbStruct*: DWORD pcwszDisplayName*: LPCWSTR psSignerInfo*: ptr CMSG_SIGNER_INFO chStores*: DWORD pahStores*: ptr HCERTSTORE + WINTRUST_CERT_INFO* {.pure.} = object cbStruct*: DWORD pcwszDisplayName*: LPCWSTR @@ -50,12 +54,14 @@ pahStores*: ptr HCERTSTORE dwFlags*: DWORD psftVerifyAsOf*: ptr FILETIME + WINTRUST_DATA_UNION1* {.pure, union.} = object pFile*: ptr WINTRUST_FILE_INFO pCatalog*: ptr WINTRUST_CATALOG_INFO pBlob*: ptr WINTRUST_BLOB_INFO pSgnr*: ptr WINTRUST_SGNR_INFO pCert*: ptr WINTRUST_CERT_INFO + WINTRUST_DATA* {.pure.} = object cbStruct*: DWORD pPolicyCallbackData*: LPVOID @@ -69,15 +75,18 @@ pwszURLReference*: ptr WCHAR dwProvFlags*: DWORD dwUIContext*: DWORD + PWINTRUST_DATA* = ptr WINTRUST_DATA PWINTRUST_FILE_INFO* = ptr WINTRUST_FILE_INFO PWINTRUST_CATALOG_INFO* = ptr WINTRUST_CATALOG_INFO PWINTRUST_BLOB_INFO* = ptr WINTRUST_BLOB_INFO PWINTRUST_SGNR_INFO* = ptr WINTRUST_SGNR_INFO PWINTRUST_CERT_INFO* = ptr WINTRUST_CERT_INFO - PFN_CPD_MEM_ALLOC* = proc (cbSize: DWORD): pointer {.stdcall.} - PFN_CPD_MEM_FREE* = proc (pvMem2Free: pointer): void {.stdcall.} - PFN_CPD_ADD_STORE* = proc (pProvData: ptr CRYPT_PROVIDER_DATA, hStore2Add: HCERTSTORE): WINBOOL {.stdcall.} + PFN_CPD_MEM_ALLOC* = proc(cbSize: DWORD): pointer {.stdcall.} + PFN_CPD_MEM_FREE* = proc(pvMem2Free: pointer): void {.stdcall.} + PFN_CPD_ADD_STORE* = proc( + pProvData: ptr CRYPT_PROVIDER_DATA, hStore2Add: HCERTSTORE + ): WINBOOL {.stdcall.} CRYPT_PROVIDER_CERT* {.pure.} = object cbStruct*: DWORD pCert*: PCCERT_CONTEXT @@ -94,6 +103,7 @@ dwCtlError*: DWORD fIsCyclic*: WINBOOL pChainElement*: PCERT_CHAIN_ELEMENT + CRYPT_PROVIDER_SGNR* {.pure.} = object cbStruct*: DWORD sftVerifyAsOf*: FILETIME @@ -105,21 +115,47 @@ csCounterSigners*: DWORD pasCounterSigners*: ptr CRYPT_PROVIDER_SGNR pChainContext*: PCCERT_CHAIN_CONTEXT - PFN_CPD_ADD_SGNR* = proc (pProvData: ptr CRYPT_PROVIDER_DATA, fCounterSigner: WINBOOL, idxSigner: DWORD, pSgnr2Add: ptr CRYPT_PROVIDER_SGNR): WINBOOL {.stdcall.} - PFN_CPD_ADD_CERT* = proc (pProvData: ptr CRYPT_PROVIDER_DATA, idxSigner: DWORD, fCounterSigner: WINBOOL, idxCounterSigner: DWORD, pCert2Add: PCCERT_CONTEXT): WINBOOL {.stdcall.} + + PFN_CPD_ADD_SGNR* = proc( + pProvData: ptr CRYPT_PROVIDER_DATA, + fCounterSigner: WINBOOL, + idxSigner: DWORD, + pSgnr2Add: ptr CRYPT_PROVIDER_SGNR, + ): WINBOOL {.stdcall.} + PFN_CPD_ADD_CERT* = proc( + pProvData: ptr CRYPT_PROVIDER_DATA, + idxSigner: DWORD, + fCounterSigner: WINBOOL, + idxCounterSigner: DWORD, + pCert2Add: PCCERT_CONTEXT, + ): WINBOOL {.stdcall.} CRYPT_PROVIDER_PRIVDATA* {.pure.} = object cbStruct*: DWORD gProviderID*: GUID cbProvData*: DWORD pvProvData*: pointer - PFN_CPD_ADD_PRIVDATA* = proc (pProvData: ptr CRYPT_PROVIDER_DATA, pPrivData2Add: ptr CRYPT_PROVIDER_PRIVDATA): WINBOOL {.stdcall.} - PFN_PROVIDER_INIT_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} - PFN_PROVIDER_OBJTRUST_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} - PFN_PROVIDER_SIGTRUST_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} - PFN_PROVIDER_CERTTRUST_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} - PFN_PROVIDER_FINALPOLICY_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} - PFN_PROVIDER_CERTCHKPOLICY_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA, idxSigner: DWORD, fCounterSignerChain: WINBOOL, idxCounterSigner: DWORD): WINBOOL {.stdcall.} - PFN_PROVIDER_TESTFINALPOLICY_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + + PFN_CPD_ADD_PRIVDATA* = proc( + pProvData: ptr CRYPT_PROVIDER_DATA, pPrivData2Add: ptr CRYPT_PROVIDER_PRIVDATA + ): WINBOOL {.stdcall.} + PFN_PROVIDER_INIT_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + PFN_PROVIDER_OBJTRUST_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + PFN_PROVIDER_SIGTRUST_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + PFN_PROVIDER_CERTTRUST_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + PFN_PROVIDER_FINALPOLICY_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + PFN_PROVIDER_CERTCHKPOLICY_CALL* = proc( + pProvData: ptr CRYPT_PROVIDER_DATA, + idxSigner: DWORD, + fCounterSignerChain: WINBOOL, + idxCounterSigner: DWORD, + ): WINBOOL {.stdcall.} + PFN_PROVIDER_TESTFINALPOLICY_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} CRYPT_PROVUI_DATA* {.pure.} = object cbStruct*: DWORD dwFinalError*: DWORD @@ -130,7 +166,10 @@ pCopyActionText*: ptr WCHAR pCopyActionTextNoTS*: ptr WCHAR pCopyActionTextNotSigned*: ptr WCHAR - PFN_PROVUI_CALL* = proc (hWndSecurityDialog: HWND, pProvData: ptr CRYPT_PROVIDER_DATA): WINBOOL {.stdcall.} + + PFN_PROVUI_CALL* = proc( + hWndSecurityDialog: HWND, pProvData: ptr CRYPT_PROVIDER_DATA + ): WINBOOL {.stdcall.} CRYPT_PROVUI_FUNCS* {.pure.} = object cbStruct*: DWORD psUIData*: ptr CRYPT_PROVUI_DATA @@ -138,7 +177,9 @@ pfnOnMoreInfoClickDefault*: PFN_PROVUI_CALL pfnOnAdvancedClick*: PFN_PROVUI_CALL pfnOnAdvancedClickDefault*: PFN_PROVUI_CALL - PFN_PROVIDER_CLEANUP_CALL* = proc (pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} + + PFN_PROVIDER_CLEANUP_CALL* = + proc(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.stdcall.} CRYPT_PROVIDER_FUNCTIONS* {.pure.} = object cbStruct*: DWORD pfnAlloc*: PFN_CPD_MEM_ALLOC @@ -156,13 +197,16 @@ pfnTestFinalPolicy*: PFN_PROVIDER_TESTFINALPOLICY_CALL psUIpfns*: ptr CRYPT_PROVUI_FUNCS pfnCleanupPolicy*: PFN_PROVIDER_CLEANUP_CALL + SIP_INDIRECT_DATA* {.pure.} = object Data*: CRYPT_ATTRIBUTE_TYPE_VALUE DigestAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Digest*: CRYPT_HASH_BLOB + MS_ADDINFO_FLAT* {.pure.} = object cbStruct*: DWORD pIndirectData*: ptr SIP_INDIRECT_DATA + CRYPTCATSTORE* {.pure.} = object CRYPTCATMEMBER* {.pure.} = object cbStruct*: DWORD @@ -176,20 +220,24 @@ hReserved*: HANDLE sEncodedIndirectData*: CRYPT_ATTR_BLOB sEncodedMemberInfo*: CRYPT_ATTR_BLOB + MS_ADDINFO_CATALOGMEMBER* {.pure.} = object cbStruct*: DWORD pStore*: ptr CRYPTCATSTORE pMember*: ptr CRYPTCATMEMBER + MS_ADDINFO_BLOB* {.pure.} = object cbStruct*: DWORD cbMemObject*: DWORD pbMemObject*: ptr BYTE cbMemSignedMsg*: DWORD pbMemSignedMsg*: ptr BYTE + SIP_SUBJECTINFO_UNION1* {.pure, union.} = object psFlat*: ptr MS_ADDINFO_FLAT psCatMember*: ptr MS_ADDINFO_CATALOGMEMBER psBlob*: ptr MS_ADDINFO_BLOB + SIP_SUBJECTINFO* {.pure.} = object cbSize*: DWORD pgSubjectType*: ptr GUID @@ -209,11 +257,31 @@ dwUnionChoice*: DWORD union1*: SIP_SUBJECTINFO_UNION1 pClientData*: LPVOID - pCryptSIPGetSignedDataMsg* = proc (pSubjectInfo: ptr SIP_SUBJECTINFO, pdwEncodingType: ptr DWORD, dwIndex: DWORD, pcbSignedDataMsg: ptr DWORD, pbSignedDataMsg: ptr BYTE): WINBOOL {.stdcall.} - pCryptSIPPutSignedDataMsg* = proc (pSubjectInfo: ptr SIP_SUBJECTINFO, dwEncodingType: DWORD, pdwIndex: ptr DWORD, cbSignedDataMsg: DWORD, pbSignedDataMsg: ptr BYTE): WINBOOL {.stdcall.} - pCryptSIPCreateIndirectData* = proc (pSubjectInfo: ptr SIP_SUBJECTINFO, pcbIndirectData: ptr DWORD, pIndirectData: ptr SIP_INDIRECT_DATA): WINBOOL {.stdcall.} - pCryptSIPVerifyIndirectData* = proc (pSubjectInfo: ptr SIP_SUBJECTINFO, pIndirectData: ptr SIP_INDIRECT_DATA): WINBOOL {.stdcall.} - pCryptSIPRemoveSignedDataMsg* = proc (pSubjectInfo: ptr SIP_SUBJECTINFO, dwIndex: DWORD): WINBOOL {.stdcall.} + + pCryptSIPGetSignedDataMsg* = proc( + pSubjectInfo: ptr SIP_SUBJECTINFO, + pdwEncodingType: ptr DWORD, + dwIndex: DWORD, + pcbSignedDataMsg: ptr DWORD, + pbSignedDataMsg: ptr BYTE, + ): WINBOOL {.stdcall.} + pCryptSIPPutSignedDataMsg* = proc( + pSubjectInfo: ptr SIP_SUBJECTINFO, + dwEncodingType: DWORD, + pdwIndex: ptr DWORD, + cbSignedDataMsg: DWORD, + pbSignedDataMsg: ptr BYTE, + ): WINBOOL {.stdcall.} + pCryptSIPCreateIndirectData* = proc( + pSubjectInfo: ptr SIP_SUBJECTINFO, + pcbIndirectData: ptr DWORD, + pIndirectData: ptr SIP_INDIRECT_DATA, + ): WINBOOL {.stdcall.} + pCryptSIPVerifyIndirectData* = proc( + pSubjectInfo: ptr SIP_SUBJECTINFO, pIndirectData: ptr SIP_INDIRECT_DATA + ): WINBOOL {.stdcall.} + pCryptSIPRemoveSignedDataMsg* = + proc(pSubjectInfo: ptr SIP_SUBJECTINFO, dwIndex: DWORD): WINBOOL {.stdcall.} SIP_DISPATCH_INFO* {.pure.} = object cbSize*: DWORD hSIP*: HANDLE @@ -222,6 +290,7 @@ pfCreate*: pCryptSIPCreateIndirectData pfVerify*: pCryptSIPVerifyIndirectData pfRemove*: pCryptSIPRemoveSignedDataMsg + PROVDATA_SIP* {.pure.} = object cbStruct*: DWORD gSubject*: GUID @@ -230,8 +299,10 @@ psSipSubjectInfo*: ptr SIP_SUBJECTINFO psSipCATSubjectInfo*: ptr SIP_SUBJECTINFO psIndirectData*: ptr SIP_INDIRECT_DATA + CRYPT_PROVIDER_DATA_UNION1* {.pure, union.} = object pPDSip*: ptr PROVDATA_SIP + CRYPT_PROVIDER_DATA* {.pure.} = object cbStruct*: DWORD pWintrustData*: ptr WINTRUST_DATA @@ -264,6 +335,7 @@ pRequestUsage*: PCERT_USAGE_MATCH dwTrustPubSettings*: DWORD dwUIStateFlags*: DWORD + PCRYPT_PROVIDER_DATA* = ptr CRYPT_PROVIDER_DATA PCRYPT_PROVIDER_FUNCTIONS* = ptr CRYPT_PROVIDER_FUNCTIONS PCRYPT_PROVUI_FUNCS* = ptr CRYPT_PROVUI_FUNCS @@ -276,6 +348,7 @@ cbStruct*: DWORD pwszDLLName*: ptr WCHAR pwszFunctionName*: ptr WCHAR + PCRYPT_TRUST_REG_ENTRY* = ptr CRYPT_TRUST_REG_ENTRY CRYPT_REGISTER_ACTIONID* {.pure.} = object cbStruct*: DWORD @@ -287,6 +360,7 @@ sFinalPolicyProvider*: CRYPT_TRUST_REG_ENTRY sTestPolicyProvider*: CRYPT_TRUST_REG_ENTRY sCleanupProvider*: CRYPT_TRUST_REG_ENTRY + PCRYPT_REGISTER_ACTIONID* = ptr CRYPT_REGISTER_ACTIONID CRYPT_PROVIDER_REGDEFUSAGE* {.pure.} = object cbStruct*: DWORD @@ -294,20 +368,23 @@ pwszDllName*: ptr WCHAR pwszLoadCallbackDataFunctionName*: ptr char pwszFreeCallbackDataFunctionName*: ptr char + PCRYPT_PROVIDER_REGDEFUSAGE* = ptr CRYPT_PROVIDER_REGDEFUSAGE CRYPT_PROVIDER_DEFUSAGE* {.pure.} = object cbStruct*: DWORD gActionID*: GUID pDefPolicyCallbackData*: LPVOID pDefSIPClientData*: LPVOID + PCRYPT_PROVIDER_DEFUSAGE* = ptr CRYPT_PROVIDER_DEFUSAGE -const - SPC_UUID_LENGTH* = 16 + +const SPC_UUID_LENGTH* = 16 type SPC_UUID* = array[SPC_UUID_LENGTH, BYTE] SPC_SERIALIZED_OBJECT* {.pure.} = object ClassId*: SPC_UUID SerializedData*: CRYPT_DATA_BLOB + PSPC_SERIALIZED_OBJECT* = ptr SPC_SERIALIZED_OBJECT SPC_SIGINFO* {.pure.} = object dwSipVersion*: DWORD @@ -317,27 +394,33 @@ dwReserved3*: DWORD dwReserved4*: DWORD dwReserved5*: DWORD + PSPC_SIGINFO* = ptr SPC_SIGINFO SPC_LINK_UNION1* {.pure, union.} = object pwszUrl*: LPWSTR Moniker*: SPC_SERIALIZED_OBJECT pwszFile*: LPWSTR + SPC_LINK* {.pure.} = object dwLinkChoice*: DWORD union1*: SPC_LINK_UNION1 + PSPC_LINK* = ptr SPC_LINK SPC_PE_IMAGE_DATA* {.pure.} = object Flags*: CRYPT_BIT_BLOB pFile*: PSPC_LINK + PSPC_PE_IMAGE_DATA* = ptr SPC_PE_IMAGE_DATA SPC_INDIRECT_DATA_CONTENT* {.pure.} = object Data*: CRYPT_ATTRIBUTE_TYPE_VALUE DigestAlgorithm*: CRYPT_ALGORITHM_IDENTIFIER Digest*: CRYPT_HASH_BLOB + PSPC_INDIRECT_DATA_CONTENT* = ptr SPC_INDIRECT_DATA_CONTENT SPC_FINANCIAL_CRITERIA* {.pure.} = object fFinancialInfoAvailable*: WINBOOL fMeetsCriteria*: WINBOOL + PSPC_FINANCIAL_CRITERIA* = ptr SPC_FINANCIAL_CRITERIA SPC_IMAGE* {.pure.} = object pImageLink*: ptr SPC_LINK @@ -345,59 +428,71 @@ Metafile*: CRYPT_DATA_BLOB EnhancedMetafile*: CRYPT_DATA_BLOB GifFile*: CRYPT_DATA_BLOB + PSPC_IMAGE* = ptr SPC_IMAGE SPC_SP_AGENCY_INFO* {.pure.} = object pPolicyInformation*: ptr SPC_LINK pwszPolicyDisplayText*: LPWSTR pLogoImage*: PSPC_IMAGE pLogoLink*: ptr SPC_LINK + PSPC_SP_AGENCY_INFO* = ptr SPC_SP_AGENCY_INFO SPC_STATEMENT_TYPE* {.pure.} = object cKeyPurposeId*: DWORD rgpszKeyPurposeId*: ptr LPSTR + PSPC_STATEMENT_TYPE* = ptr SPC_STATEMENT_TYPE SPC_SP_OPUS_INFO* {.pure.} = object pwszProgramName*: LPCWSTR pMoreInfo*: ptr SPC_LINK pPublisherInfo*: ptr SPC_LINK + PSPC_SP_OPUS_INFO* = ptr SPC_SP_OPUS_INFO CAT_NAMEVALUE* {.pure.} = object pwszTag*: LPWSTR fdwFlags*: DWORD Value*: CRYPT_DATA_BLOB + PCAT_NAMEVALUE* = ptr CAT_NAMEVALUE CAT_MEMBERINFO* {.pure.} = object pwszSubjGuid*: LPWSTR dwCertVersion*: DWORD + PCAT_MEMBERINFO* = ptr CAT_MEMBERINFO WIN_CERTIFICATE* {.pure.} = object dwLength*: DWORD wRevision*: WORD wCertificateType*: WORD bCertificate*: array[ANYSIZE_ARRAY, BYTE] + LPWIN_CERTIFICATE* = ptr WIN_CERTIFICATE WIN_TRUST_SUBJECT* = LPVOID WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT* {.pure.} = object hClientToken*: HANDLE SubjectType*: ptr GUID Subject*: WIN_TRUST_SUBJECT + LPWIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT* = ptr WIN_TRUST_ACTDATA_CONTEXT_WITH_SUBJECT WIN_TRUST_ACTDATA_SUBJECT_ONLY* {.pure.} = object SubjectType*: ptr GUID Subject*: WIN_TRUST_SUBJECT + LPWIN_TRUST_ACTDATA_SUBJECT_ONLY* = ptr WIN_TRUST_ACTDATA_SUBJECT_ONLY WIN_TRUST_SUBJECT_FILE* {.pure.} = object hFile*: HANDLE lpPath*: LPCWSTR + LPWIN_TRUST_SUBJECT_FILE* = ptr WIN_TRUST_SUBJECT_FILE WIN_TRUST_SUBJECT_FILE_AND_DISPLAY* {.pure.} = object hFile*: HANDLE lpPath*: LPCWSTR lpDisplayName*: LPCWSTR + LPWIN_TRUST_SUBJECT_FILE_AND_DISPLAY* = ptr WIN_TRUST_SUBJECT_FILE_AND_DISPLAY WIN_SPUB_TRUSTED_PUBLISHER_DATA* {.pure.} = object hClientToken*: HANDLE lpCertificate*: LPWIN_CERTIFICATE + LPWIN_SPUB_TRUSTED_PUBLISHER_DATA* = ptr WIN_SPUB_TRUSTED_PUBLISHER_DATA CRYPT_DIGEST_DATA* = CRYPT_HASH_BLOB LPSIP_SUBJECTINFO* = ptr SIP_SUBJECTINFO @@ -418,7 +513,9 @@ pwszVerifyFuncName*: ptr WCHAR pwszRemoveFuncName*: ptr WCHAR pwszIsFunctionNameFmt2*: ptr WCHAR + PSIP_ADD_NEWPROVIDER* = ptr SIP_ADD_NEWPROVIDER + const WTD_UI_ALL* = 1 WTD_UI_NONE* = 2 @@ -569,9 +666,12 @@ WIN_TRUST_SUBJTYPE_JAVA_CLASSEX* = DEFINE_GUID("6f458113-c2f1-11cf-8a69-00aa006c3706") WIN_TRUST_SUBJTYPE_CABINETEX* = DEFINE_GUID("6f458114-c2f1-11cf-8a69-00aa006c3706") WIN_TRUST_SUBJTYPE_OLE_STORAGE* = DEFINE_GUID("c257e740-8da0-11cf-8736-00aa00a485eb") - WIN_SPUB_ACTION_TRUSTED_PUBLISHER* = DEFINE_GUID("66426730-8da1-11cf-8736-00aa00a485eb") - WIN_SPUB_ACTION_NT_ACTIVATE_IMAGE* = DEFINE_GUID("8bc96b00-8da1-11cf-8736-00aa00a485eb") - WIN_SPUB_ACTION_PUBLISHED_SOFTWARE* = DEFINE_GUID("64b9d180-8da2-11cf-8736-00aa00a485eb") + WIN_SPUB_ACTION_TRUSTED_PUBLISHER* = + DEFINE_GUID("66426730-8da1-11cf-8736-00aa00a485eb") + WIN_SPUB_ACTION_NT_ACTIVATE_IMAGE* = + DEFINE_GUID("8bc96b00-8da1-11cf-8736-00aa00a485eb") + WIN_SPUB_ACTION_PUBLISHED_SOFTWARE* = + DEFINE_GUID("64b9d180-8da2-11cf-8736-00aa00a485eb") MSSIP_FLAGS_PROHIBIT_RESIZE_ON_CREATE* = 0x00010000 MSSIP_FLAGS_USE_CATALOG* = 0x00020000 SPC_INC_PE_RESOURCES_FLAG* = 0x80 @@ -600,11 +700,17 @@ CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES* = 0x00020002 CRYPTCAT_E_CDF_ATTR_TYPECOMBO* = 0x00020004 type - PFN_ALLOCANDFILLDEFUSAGE* = proc (pszUsageOID: ptr char, psDefUsage: ptr CRYPT_PROVIDER_DEFUSAGE): WINBOOL {.stdcall.} - PFN_FREEDEFUSAGE* = proc (pszUsageOID: ptr char, psDefUsage: ptr CRYPT_PROVIDER_DEFUSAGE): WINBOOL {.stdcall.} - pfnIsFileSupported* = proc (hFile: HANDLE, pgSubject: ptr GUID): WINBOOL {.stdcall.} - pfnIsFileSupportedName* = proc (pwszFileName: ptr WCHAR, pgSubject: ptr GUID): WINBOOL {.stdcall.} - PFN_CDF_PARSE_ERROR_CALLBACK* = proc (P1: DWORD, P2: DWORD, P3: ptr WCHAR): void {.stdcall.} + PFN_ALLOCANDFILLDEFUSAGE* = proc( + pszUsageOID: ptr char, psDefUsage: ptr CRYPT_PROVIDER_DEFUSAGE + ): WINBOOL {.stdcall.} + PFN_FREEDEFUSAGE* = proc( + pszUsageOID: ptr char, psDefUsage: ptr CRYPT_PROVIDER_DEFUSAGE + ): WINBOOL {.stdcall.} + pfnIsFileSupported* = proc(hFile: HANDLE, pgSubject: ptr GUID): WINBOOL {.stdcall.} + pfnIsFileSupportedName* = + proc(pwszFileName: ptr WCHAR, pgSubject: ptr GUID): WINBOOL {.stdcall.} + PFN_CDF_PARSE_ERROR_CALLBACK* = + proc(P1: DWORD, P2: DWORD, P3: ptr WCHAR): void {.stdcall.} CRYPTCATATTRIBUTE* {.pure.} = object cbStruct*: DWORD pwszReferenceTag*: LPWSTR @@ -612,9 +718,11 @@ cbValue*: DWORD pbValue*: ptr BYTE dwReserved*: DWORD + CATALOG_INFO* {.pure.} = object cbStruct*: DWORD wszCatalogFile*: array[MAX_PATH, WCHAR] + CRYPTCATCDF* {.pure.} = object cbStruct*: DWORD hFile*: HANDLE @@ -623,78 +731,289 @@ fEOF*: WINBOOL pwszResultDir*: LPWSTR hCATStore*: HANDLE -proc WinVerifyTrust*(hwnd: HWND, pgActionID: ptr GUID, pWVTData: LPVOID): LONG {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WinVerifyTrustEx*(hwnd: HWND, pgActionID: ptr GUID, pWinTrustData: ptr WINTRUST_DATA): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustGetRegPolicyFlags*(pdwPolicyFlags: ptr DWORD): void {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustSetRegPolicyFlags*(dwPolicyFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustAddActionID*(pgActionID: ptr GUID, fdwFlags: DWORD, psProvInfo: ptr CRYPT_REGISTER_ACTIONID): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustRemoveActionID*(pgActionID: ptr GUID): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustLoadFunctionPointers*(pgActionID: ptr GUID, pPfns: ptr CRYPT_PROVIDER_FUNCTIONS): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustAddDefaultForUsage*(pszUsageOID: ptr char, psDefUsage: ptr CRYPT_PROVIDER_REGDEFUSAGE): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustGetDefaultForUsage*(dwAction: DWORD, pszUsageOID: ptr char, psUsage: ptr CRYPT_PROVIDER_DEFUSAGE): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WTHelperGetProvSignerFromChain*(pProvData: ptr CRYPT_PROVIDER_DATA, idxSigner: DWORD, fCounterSigner: WINBOOL, idxCounterSigner: DWORD): ptr CRYPT_PROVIDER_SGNR {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WTHelperGetProvCertFromChain*(pSgnr: ptr CRYPT_PROVIDER_SGNR, idxCert: DWORD): ptr CRYPT_PROVIDER_CERT {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WTHelperProvDataFromStateData*(hStateData: HANDLE): ptr CRYPT_PROVIDER_DATA {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WTHelperGetProvPrivateDataFromChain*(pProvData: ptr CRYPT_PROVIDER_DATA, pgProviderID: ptr GUID): ptr CRYPT_PROVIDER_PRIVDATA {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WTHelperCertIsSelfSigned*(dwEncoding: DWORD, pCert: ptr CERT_INFO): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WTHelperCertCheckValidSignature*(pProvData: ptr CRYPT_PROVIDER_DATA): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} -proc WintrustSetDefaultIncludePEPageHashes*(fIncludePEPageHashes: WINBOOL): void {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptSIPGetSignedDataMsg*(pSubjectInfo: ptr SIP_SUBJECTINFO, pdwEncodingType: ptr DWORD, dwIndex: DWORD, pcbSignedDataMsg: ptr DWORD, pbSignedDataMsg: ptr BYTE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPPutSignedDataMsg*(pSubjectInfo: ptr SIP_SUBJECTINFO, dwEncodingType: DWORD, pdwIndex: ptr DWORD, cbSignedDataMsg: DWORD, pbSignedDataMsg: ptr BYTE): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPCreateIndirectData*(pSubjectInfo: ptr SIP_SUBJECTINFO, pcbIndirectData: ptr DWORD, pIndirectData: ptr SIP_INDIRECT_DATA): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPVerifyIndirectData*(pSubjectInfo: ptr SIP_SUBJECTINFO, pIndirectData: ptr SIP_INDIRECT_DATA): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPRemoveSignedDataMsg*(pSubjectInfo: ptr SIP_SUBJECTINFO, dwIndex: DWORD): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPLoad*(pgSubject: ptr GUID, dwFlags: DWORD, pSipDispatch: ptr SIP_DISPATCH_INFO): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPRetrieveSubjectGuid*(FileName: LPCWSTR, hFileIn: HANDLE, pgSubject: ptr GUID): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPRetrieveSubjectGuidForCatalogFile*(FileName: LPCWSTR, hFileIn: HANDLE, pgSubject: ptr GUID): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPAddProvider*(psNewProv: ptr SIP_ADD_NEWPROVIDER): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptSIPRemoveProvider*(pgProv: ptr GUID): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} -proc CryptCATAdminAcquireContext*(P1: ptr HCATADMIN, P2: ptr GUID, P3: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminAddCatalog*(P1: HCATADMIN, P2: PWSTR, P3: PWSTR, P4: DWORD): HCATINFO {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminCalcHashFromFileHandle*(P1: HANDLE, P2: ptr DWORD, P3: ptr BYTE, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminEnumCatalogFromHash*(P1: HCATADMIN, P2: ptr BYTE, P3: DWORD, P4: DWORD, P5: ptr HCATINFO): HCATINFO {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminReleaseCatalogContext*(P1: HCATADMIN, P2: HCATINFO, P3: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminReleaseContext*(P1: HCATADMIN, P2: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminRemoveCatalog*(P1: HCATADMIN, P2: LPCWSTR, P3: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATAdminResolveCatalogPath*(P1: HCATADMIN, P2: ptr WCHAR, P3: ptr CATALOG_INFO, P4: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATCatalogInfoFromContext*(P1: HCATINFO, P2: ptr CATALOG_INFO, P3: DWORD): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATCDFClose*(P1: ptr CRYPTCATCDF): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATCDFEnumMembersByCDFTagEx*(P1: ptr CRYPTCATCDF, P2: LPWSTR, P3: PFN_CDF_PARSE_ERROR_CALLBACK, P4: ptr ptr CRYPTCATMEMBER, P5: WINBOOL, P6: LPVOID): LPWSTR {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATClose*(P1: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} -proc CryptCATOpen*(P1: LPWSTR, P2: DWORD, P3: HCRYPTPROV, P4: DWORD, P5: DWORD): HANDLE {.winapi, stdcall, dynlib: "wintrust", importc.} -proc `pFile=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_FILE_INFO) {.inline.} = self.union1.pFile = x -proc pFile*(self: WINTRUST_DATA): ptr WINTRUST_FILE_INFO {.inline.} = self.union1.pFile -proc pFile*(self: var WINTRUST_DATA): var ptr WINTRUST_FILE_INFO {.inline.} = self.union1.pFile -proc `pCatalog=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_CATALOG_INFO) {.inline.} = self.union1.pCatalog = x -proc pCatalog*(self: WINTRUST_DATA): ptr WINTRUST_CATALOG_INFO {.inline.} = self.union1.pCatalog -proc pCatalog*(self: var WINTRUST_DATA): var ptr WINTRUST_CATALOG_INFO {.inline.} = self.union1.pCatalog -proc `pBlob=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_BLOB_INFO) {.inline.} = self.union1.pBlob = x -proc pBlob*(self: WINTRUST_DATA): ptr WINTRUST_BLOB_INFO {.inline.} = self.union1.pBlob -proc pBlob*(self: var WINTRUST_DATA): var ptr WINTRUST_BLOB_INFO {.inline.} = self.union1.pBlob -proc `pSgnr=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_SGNR_INFO) {.inline.} = self.union1.pSgnr = x -proc pSgnr*(self: WINTRUST_DATA): ptr WINTRUST_SGNR_INFO {.inline.} = self.union1.pSgnr -proc pSgnr*(self: var WINTRUST_DATA): var ptr WINTRUST_SGNR_INFO {.inline.} = self.union1.pSgnr -proc `pCert=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_CERT_INFO) {.inline.} = self.union1.pCert = x -proc pCert*(self: WINTRUST_DATA): ptr WINTRUST_CERT_INFO {.inline.} = self.union1.pCert -proc pCert*(self: var WINTRUST_DATA): var ptr WINTRUST_CERT_INFO {.inline.} = self.union1.pCert -proc `pPDSip=`*(self: var CRYPT_PROVIDER_DATA, x: ptr PROVDATA_SIP) {.inline.} = self.union1.pPDSip = x -proc pPDSip*(self: CRYPT_PROVIDER_DATA): ptr PROVDATA_SIP {.inline.} = self.union1.pPDSip -proc pPDSip*(self: var CRYPT_PROVIDER_DATA): var ptr PROVDATA_SIP {.inline.} = self.union1.pPDSip -proc `pwszUrl=`*(self: var SPC_LINK, x: LPWSTR) {.inline.} = self.union1.pwszUrl = x -proc pwszUrl*(self: SPC_LINK): LPWSTR {.inline.} = self.union1.pwszUrl -proc pwszUrl*(self: var SPC_LINK): var LPWSTR {.inline.} = self.union1.pwszUrl -proc `Moniker=`*(self: var SPC_LINK, x: SPC_SERIALIZED_OBJECT) {.inline.} = self.union1.Moniker = x -proc Moniker*(self: SPC_LINK): SPC_SERIALIZED_OBJECT {.inline.} = self.union1.Moniker -proc Moniker*(self: var SPC_LINK): var SPC_SERIALIZED_OBJECT {.inline.} = self.union1.Moniker -proc `pwszFile=`*(self: var SPC_LINK, x: LPWSTR) {.inline.} = self.union1.pwszFile = x -proc pwszFile*(self: SPC_LINK): LPWSTR {.inline.} = self.union1.pwszFile -proc pwszFile*(self: var SPC_LINK): var LPWSTR {.inline.} = self.union1.pwszFile -proc `psFlat=`*(self: var SIP_SUBJECTINFO, x: ptr MS_ADDINFO_FLAT) {.inline.} = self.union1.psFlat = x -proc psFlat*(self: SIP_SUBJECTINFO): ptr MS_ADDINFO_FLAT {.inline.} = self.union1.psFlat -proc psFlat*(self: var SIP_SUBJECTINFO): var ptr MS_ADDINFO_FLAT {.inline.} = self.union1.psFlat -proc `psCatMember=`*(self: var SIP_SUBJECTINFO, x: ptr MS_ADDINFO_CATALOGMEMBER) {.inline.} = self.union1.psCatMember = x -proc psCatMember*(self: SIP_SUBJECTINFO): ptr MS_ADDINFO_CATALOGMEMBER {.inline.} = self.union1.psCatMember -proc psCatMember*(self: var SIP_SUBJECTINFO): var ptr MS_ADDINFO_CATALOGMEMBER {.inline.} = self.union1.psCatMember -proc `psBlob=`*(self: var SIP_SUBJECTINFO, x: ptr MS_ADDINFO_BLOB) {.inline.} = self.union1.psBlob = x -proc psBlob*(self: SIP_SUBJECTINFO): ptr MS_ADDINFO_BLOB {.inline.} = self.union1.psBlob -proc psBlob*(self: var SIP_SUBJECTINFO): var ptr MS_ADDINFO_BLOB {.inline.} = self.union1.psBlob + +proc WinVerifyTrust*( + hwnd: HWND, pgActionID: ptr GUID, pWVTData: LPVOID +): LONG {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WinVerifyTrustEx*( + hwnd: HWND, pgActionID: ptr GUID, pWinTrustData: ptr WINTRUST_DATA +): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustGetRegPolicyFlags*( + pdwPolicyFlags: ptr DWORD +): void {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustSetRegPolicyFlags*( + dwPolicyFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustAddActionID*( + pgActionID: ptr GUID, fdwFlags: DWORD, psProvInfo: ptr CRYPT_REGISTER_ACTIONID +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustRemoveActionID*( + pgActionID: ptr GUID +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustLoadFunctionPointers*( + pgActionID: ptr GUID, pPfns: ptr CRYPT_PROVIDER_FUNCTIONS +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustAddDefaultForUsage*( + pszUsageOID: ptr char, psDefUsage: ptr CRYPT_PROVIDER_REGDEFUSAGE +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustGetDefaultForUsage*( + dwAction: DWORD, pszUsageOID: ptr char, psUsage: ptr CRYPT_PROVIDER_DEFUSAGE +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WTHelperGetProvSignerFromChain*( + pProvData: ptr CRYPT_PROVIDER_DATA, + idxSigner: DWORD, + fCounterSigner: WINBOOL, + idxCounterSigner: DWORD, +): ptr CRYPT_PROVIDER_SGNR {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WTHelperGetProvCertFromChain*( + pSgnr: ptr CRYPT_PROVIDER_SGNR, idxCert: DWORD +): ptr CRYPT_PROVIDER_CERT {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WTHelperProvDataFromStateData*( + hStateData: HANDLE +): ptr CRYPT_PROVIDER_DATA {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WTHelperGetProvPrivateDataFromChain*( + pProvData: ptr CRYPT_PROVIDER_DATA, pgProviderID: ptr GUID +): ptr CRYPT_PROVIDER_PRIVDATA {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WTHelperCertIsSelfSigned*( + dwEncoding: DWORD, pCert: ptr CERT_INFO +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WTHelperCertCheckValidSignature*( + pProvData: ptr CRYPT_PROVIDER_DATA +): HRESULT {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc WintrustSetDefaultIncludePEPageHashes*( + fIncludePEPageHashes: WINBOOL +): void {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptSIPGetSignedDataMsg*( + pSubjectInfo: ptr SIP_SUBJECTINFO, + pdwEncodingType: ptr DWORD, + dwIndex: DWORD, + pcbSignedDataMsg: ptr DWORD, + pbSignedDataMsg: ptr BYTE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPPutSignedDataMsg*( + pSubjectInfo: ptr SIP_SUBJECTINFO, + dwEncodingType: DWORD, + pdwIndex: ptr DWORD, + cbSignedDataMsg: DWORD, + pbSignedDataMsg: ptr BYTE, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPCreateIndirectData*( + pSubjectInfo: ptr SIP_SUBJECTINFO, + pcbIndirectData: ptr DWORD, + pIndirectData: ptr SIP_INDIRECT_DATA, +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPVerifyIndirectData*( + pSubjectInfo: ptr SIP_SUBJECTINFO, pIndirectData: ptr SIP_INDIRECT_DATA +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPRemoveSignedDataMsg*( + pSubjectInfo: ptr SIP_SUBJECTINFO, dwIndex: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPLoad*( + pgSubject: ptr GUID, dwFlags: DWORD, pSipDispatch: ptr SIP_DISPATCH_INFO +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPRetrieveSubjectGuid*( + FileName: LPCWSTR, hFileIn: HANDLE, pgSubject: ptr GUID +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPRetrieveSubjectGuidForCatalogFile*( + FileName: LPCWSTR, hFileIn: HANDLE, pgSubject: ptr GUID +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPAddProvider*( + psNewProv: ptr SIP_ADD_NEWPROVIDER +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptSIPRemoveProvider*( + pgProv: ptr GUID +): WINBOOL {.winapi, stdcall, dynlib: "crypt32", importc.} + +proc CryptCATAdminAcquireContext*( + P1: ptr HCATADMIN, P2: ptr GUID, P3: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminAddCatalog*( + P1: HCATADMIN, P2: PWSTR, P3: PWSTR, P4: DWORD +): HCATINFO {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminCalcHashFromFileHandle*( + P1: HANDLE, P2: ptr DWORD, P3: ptr BYTE, P4: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminEnumCatalogFromHash*( + P1: HCATADMIN, P2: ptr BYTE, P3: DWORD, P4: DWORD, P5: ptr HCATINFO +): HCATINFO {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminReleaseCatalogContext*( + P1: HCATADMIN, P2: HCATINFO, P3: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminReleaseContext*( + P1: HCATADMIN, P2: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminRemoveCatalog*( + P1: HCATADMIN, P2: LPCWSTR, P3: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATAdminResolveCatalogPath*( + P1: HCATADMIN, P2: ptr WCHAR, P3: ptr CATALOG_INFO, P4: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATCatalogInfoFromContext*( + P1: HCATINFO, P2: ptr CATALOG_INFO, P3: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATCDFClose*( + P1: ptr CRYPTCATCDF +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATCDFEnumMembersByCDFTagEx*( + P1: ptr CRYPTCATCDF, + P2: LPWSTR, + P3: PFN_CDF_PARSE_ERROR_CALLBACK, + P4: ptr ptr CRYPTCATMEMBER, + P5: WINBOOL, + P6: LPVOID, +): LPWSTR {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATClose*( + P1: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc CryptCATOpen*( + P1: LPWSTR, P2: DWORD, P3: HCRYPTPROV, P4: DWORD, P5: DWORD +): HANDLE {.winapi, stdcall, dynlib: "wintrust", importc.} + +proc `pFile=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_FILE_INFO) {.inline.} = + self.union1.pFile = x + +proc pFile*(self: WINTRUST_DATA): ptr WINTRUST_FILE_INFO {.inline.} = + self.union1.pFile + +proc pFile*(self: var WINTRUST_DATA): var ptr WINTRUST_FILE_INFO {.inline.} = + self.union1.pFile + +proc `pCatalog=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_CATALOG_INFO) {.inline.} = + self.union1.pCatalog = x + +proc pCatalog*(self: WINTRUST_DATA): ptr WINTRUST_CATALOG_INFO {.inline.} = + self.union1.pCatalog + +proc pCatalog*(self: var WINTRUST_DATA): var ptr WINTRUST_CATALOG_INFO {.inline.} = + self.union1.pCatalog + +proc `pBlob=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_BLOB_INFO) {.inline.} = + self.union1.pBlob = x + +proc pBlob*(self: WINTRUST_DATA): ptr WINTRUST_BLOB_INFO {.inline.} = + self.union1.pBlob + +proc pBlob*(self: var WINTRUST_DATA): var ptr WINTRUST_BLOB_INFO {.inline.} = + self.union1.pBlob + +proc `pSgnr=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_SGNR_INFO) {.inline.} = + self.union1.pSgnr = x + +proc pSgnr*(self: WINTRUST_DATA): ptr WINTRUST_SGNR_INFO {.inline.} = + self.union1.pSgnr + +proc pSgnr*(self: var WINTRUST_DATA): var ptr WINTRUST_SGNR_INFO {.inline.} = + self.union1.pSgnr + +proc `pCert=`*(self: var WINTRUST_DATA, x: ptr WINTRUST_CERT_INFO) {.inline.} = + self.union1.pCert = x + +proc pCert*(self: WINTRUST_DATA): ptr WINTRUST_CERT_INFO {.inline.} = + self.union1.pCert + +proc pCert*(self: var WINTRUST_DATA): var ptr WINTRUST_CERT_INFO {.inline.} = + self.union1.pCert + +proc `pPDSip=`*(self: var CRYPT_PROVIDER_DATA, x: ptr PROVDATA_SIP) {.inline.} = + self.union1.pPDSip = x + +proc pPDSip*(self: CRYPT_PROVIDER_DATA): ptr PROVDATA_SIP {.inline.} = + self.union1.pPDSip + +proc pPDSip*(self: var CRYPT_PROVIDER_DATA): var ptr PROVDATA_SIP {.inline.} = + self.union1.pPDSip + +proc `pwszUrl=`*(self: var SPC_LINK, x: LPWSTR) {.inline.} = + self.union1.pwszUrl = x + +proc pwszUrl*(self: SPC_LINK): LPWSTR {.inline.} = + self.union1.pwszUrl + +proc pwszUrl*(self: var SPC_LINK): var LPWSTR {.inline.} = + self.union1.pwszUrl + +proc `Moniker=`*(self: var SPC_LINK, x: SPC_SERIALIZED_OBJECT) {.inline.} = + self.union1.Moniker = x + +proc Moniker*(self: SPC_LINK): SPC_SERIALIZED_OBJECT {.inline.} = + self.union1.Moniker + +proc Moniker*(self: var SPC_LINK): var SPC_SERIALIZED_OBJECT {.inline.} = + self.union1.Moniker + +proc `pwszFile=`*(self: var SPC_LINK, x: LPWSTR) {.inline.} = + self.union1.pwszFile = x + +proc pwszFile*(self: SPC_LINK): LPWSTR {.inline.} = + self.union1.pwszFile + +proc pwszFile*(self: var SPC_LINK): var LPWSTR {.inline.} = + self.union1.pwszFile + +proc `psFlat=`*(self: var SIP_SUBJECTINFO, x: ptr MS_ADDINFO_FLAT) {.inline.} = + self.union1.psFlat = x + +proc psFlat*(self: SIP_SUBJECTINFO): ptr MS_ADDINFO_FLAT {.inline.} = + self.union1.psFlat + +proc psFlat*(self: var SIP_SUBJECTINFO): var ptr MS_ADDINFO_FLAT {.inline.} = + self.union1.psFlat + +proc `psCatMember=`*( + self: var SIP_SUBJECTINFO, x: ptr MS_ADDINFO_CATALOGMEMBER +) {.inline.} = + self.union1.psCatMember = x + +proc psCatMember*(self: SIP_SUBJECTINFO): ptr MS_ADDINFO_CATALOGMEMBER {.inline.} = + self.union1.psCatMember + +proc psCatMember*( + self: var SIP_SUBJECTINFO +): var ptr MS_ADDINFO_CATALOGMEMBER {.inline.} = + self.union1.psCatMember + +proc `psBlob=`*(self: var SIP_SUBJECTINFO, x: ptr MS_ADDINFO_BLOB) {.inline.} = + self.union1.psBlob = x + +proc psBlob*(self: SIP_SUBJECTINFO): ptr MS_ADDINFO_BLOB {.inline.} = + self.union1.psBlob + +proc psBlob*(self: var SIP_SUBJECTINFO): var ptr MS_ADDINFO_BLOB {.inline.} = + self.union1.psBlob diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winuser.nim --- a/semicongine/thirdparty/winim/winim/inc/winuser.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winuser.nim Thu Aug 22 18:32:21 2024 +0700 @@ -30,9 +30,9 @@ HELPPOLY* = DWORD HRAWINPUT* = HANDLE HGESTUREINFO* = HANDLE - NAMEENUMPROCA* = proc (P1: LPSTR, P2: LPARAM): WINBOOL {.stdcall.} + NAMEENUMPROCA* = proc(P1: LPSTR, P2: LPARAM): WINBOOL {.stdcall.} WINSTAENUMPROCA* = NAMEENUMPROCA - NAMEENUMPROCW* = proc (P1: LPWSTR, P2: LPARAM): WINBOOL {.stdcall.} + NAMEENUMPROCW* = proc(P1: LPWSTR, P2: LPARAM): WINBOOL {.stdcall.} WINSTAENUMPROCW* = NAMEENUMPROCW DESKTOPENUMPROCA* = NAMEENUMPROCA DESKTOPENUMPROCW* = NAMEENUMPROCW @@ -49,9 +49,11 @@ lpszName*: LPCSTR lpszClass*: LPCSTR dwExStyle*: DWORD + CBT_CREATEWNDA* {.pure.} = object lpcs*: ptr CREATESTRUCTA hwndInsertAfter*: HWND + LPCBT_CREATEWNDA* = ptr CBT_CREATEWNDA CREATESTRUCTW* {.pure.} = object lpCreateParams*: LPVOID @@ -66,21 +68,26 @@ lpszName*: LPCWSTR lpszClass*: LPCWSTR dwExStyle*: DWORD + CBT_CREATEWNDW* {.pure.} = object lpcs*: ptr CREATESTRUCTW hwndInsertAfter*: HWND + LPCBT_CREATEWNDW* = ptr CBT_CREATEWNDW CBTACTIVATESTRUCT* {.pure.} = object fMouse*: WINBOOL hWndActive*: HWND + LPCBTACTIVATESTRUCT* = ptr CBTACTIVATESTRUCT WTSSESSION_NOTIFICATION* {.pure.} = object cbSize*: DWORD dwSessionId*: DWORD + PWTSSESSION_NOTIFICATION* = ptr WTSSESSION_NOTIFICATION SHELLHOOKINFO* {.pure.} = object hwnd*: HWND rc*: RECT + LPSHELLHOOKINFO* = ptr SHELLHOOKINFO EVENTMSG* {.pure.} = object message*: UINT @@ -88,6 +95,7 @@ paramH*: UINT time*: DWORD hwnd*: HWND + PEVENTMSGMSG* = ptr EVENTMSG NPEVENTMSGMSG* = ptr EVENTMSG LPEVENTMSGMSG* = ptr EVENTMSG @@ -99,6 +107,7 @@ wParam*: WPARAM message*: UINT hwnd*: HWND + PCWPSTRUCT* = ptr CWPSTRUCT NPCWPSTRUCT* = ptr CWPSTRUCT LPCWPSTRUCT* = ptr CWPSTRUCT @@ -108,6 +117,7 @@ wParam*: WPARAM message*: UINT hwnd*: HWND + PCWPRETSTRUCT* = ptr CWPRETSTRUCT NPCWPRETSTRUCT* = ptr CWPRETSTRUCT LPCWPRETSTRUCT* = ptr CWPRETSTRUCT @@ -117,6 +127,7 @@ flags*: DWORD time*: DWORD dwExtraInfo*: ULONG_PTR + LPKBDLLHOOKSTRUCT* = ptr KBDLLHOOKSTRUCT PKBDLLHOOKSTRUCT* = ptr KBDLLHOOKSTRUCT MSLLHOOKSTRUCT* {.pure.} = object @@ -125,6 +136,7 @@ flags*: DWORD time*: DWORD dwExtraInfo*: ULONG_PTR + LPMSLLHOOKSTRUCT* = ptr MSLLHOOKSTRUCT PMSLLHOOKSTRUCT* = ptr MSLLHOOKSTRUCT DEBUGHOOKINFO* {.pure.} = object @@ -133,6 +145,7 @@ lParam*: LPARAM wParam*: WPARAM code*: int32 + PDEBUGHOOKINFO* = ptr DEBUGHOOKINFO NPDEBUGHOOKINFO* = ptr DEBUGHOOKINFO LPDEBUGHOOKINFO* = ptr DEBUGHOOKINFO @@ -141,11 +154,13 @@ hwnd*: HWND wHitTestCode*: UINT dwExtraInfo*: ULONG_PTR + LPMOUSEHOOKSTRUCT* = ptr MOUSEHOOKSTRUCT PMOUSEHOOKSTRUCT* = ptr MOUSEHOOKSTRUCT MOUSEHOOKSTRUCTEX* {.pure.} = object unnamed*: MOUSEHOOKSTRUCT mouseData*: DWORD + LPMOUSEHOOKSTRUCTEX* = ptr MOUSEHOOKSTRUCTEX PMOUSEHOOKSTRUCTEX* = ptr MOUSEHOOKSTRUCTEX HARDWAREHOOKSTRUCT* {.pure.} = object @@ -153,6 +168,7 @@ message*: UINT wParam*: WPARAM lParam*: LPARAM + LPHARDWAREHOOKSTRUCT* = ptr HARDWAREHOOKSTRUCT PHARDWAREHOOKSTRUCT* = ptr HARDWAREHOOKSTRUCT MOUSEMOVEPOINT* {.pure.} = object @@ -160,14 +176,16 @@ y*: int32 time*: DWORD dwExtraInfo*: ULONG_PTR + PMOUSEMOVEPOINT* = ptr MOUSEMOVEPOINT LPMOUSEMOVEPOINT* = ptr MOUSEMOVEPOINT USEROBJECTFLAGS* {.pure.} = object fInherit*: WINBOOL fReserved*: WINBOOL dwFlags*: DWORD + PUSEROBJECTFLAGS* = ptr USEROBJECTFLAGS - WNDPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): LRESULT {.stdcall.} + WNDPROC* = proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): LRESULT {.stdcall.} WNDCLASSEXA* {.pure.} = object cbSize*: UINT style*: UINT @@ -181,6 +199,7 @@ lpszMenuName*: LPCSTR lpszClassName*: LPCSTR hIconSm*: HICON + PWNDCLASSEXA* = ptr WNDCLASSEXA NPWNDCLASSEXA* = ptr WNDCLASSEXA LPWNDCLASSEXA* = ptr WNDCLASSEXA @@ -197,6 +216,7 @@ lpszMenuName*: LPCWSTR lpszClassName*: LPCWSTR hIconSm*: HICON + PWNDCLASSEXW* = ptr WNDCLASSEXW NPWNDCLASSEXW* = ptr WNDCLASSEXW LPWNDCLASSEXW* = ptr WNDCLASSEXW @@ -211,6 +231,7 @@ hbrBackground*: HBRUSH lpszMenuName*: LPCSTR lpszClassName*: LPCSTR + PWNDCLASSA* = ptr WNDCLASSA NPWNDCLASSA* = ptr WNDCLASSA LPWNDCLASSA* = ptr WNDCLASSA @@ -225,6 +246,7 @@ hbrBackground*: HBRUSH lpszMenuName*: LPCWSTR lpszClassName*: LPCWSTR + PWNDCLASSW* = ptr WNDCLASSW NPWNDCLASSW* = ptr WNDCLASSW LPWNDCLASSW* = ptr WNDCLASSW @@ -235,6 +257,7 @@ lParam*: LPARAM time*: DWORD pt*: POINT + PMSG* = ptr MSG NPMSG* = ptr MSG LPMSG* = ptr MSG @@ -244,23 +267,27 @@ ptMaxPosition*: POINT ptMinTrackSize*: POINT ptMaxTrackSize*: POINT + PMINMAXINFO* = ptr MINMAXINFO LPMINMAXINFO* = ptr MINMAXINFO COPYDATASTRUCT* {.pure.} = object dwData*: ULONG_PTR cbData*: DWORD lpData*: PVOID + PCOPYDATASTRUCT* = ptr COPYDATASTRUCT MDINEXTMENU* {.pure.} = object hmenuIn*: HMENU hmenuNext*: HMENU hwndNext*: HWND + PMDINEXTMENU* = ptr MDINEXTMENU LPMDINEXTMENU* = ptr MDINEXTMENU POWERBROADCAST_SETTING* {.pure.} = object PowerSetting*: GUID DataLength*: DWORD Data*: array[1, UCHAR] + PPOWERBROADCAST_SETTING* = ptr POWERBROADCAST_SETTING WINDOWPOS* {.pure.} = object hwnd*: HWND @@ -270,22 +297,26 @@ cx*: int32 cy*: int32 flags*: UINT + LPWINDOWPOS* = ptr WINDOWPOS PWINDOWPOS* = ptr WINDOWPOS NCCALCSIZE_PARAMS* {.pure.} = object rgrc*: array[3, RECT] lppos*: PWINDOWPOS + LPNCCALCSIZE_PARAMS* = ptr NCCALCSIZE_PARAMS TTRACKMOUSEEVENT* {.pure.} = object cbSize*: DWORD dwFlags*: DWORD hwndTrack*: HWND dwHoverTime*: DWORD + LPTRACKMOUSEEVENT* = ptr TTRACKMOUSEEVENT ACCEL* {.pure.} = object fVirt*: BYTE key*: WORD cmd*: WORD + LPACCEL* = ptr ACCEL PAINTSTRUCT* {.pure.} = object hdc*: HDC @@ -294,6 +325,7 @@ fRestore*: WINBOOL fIncUpdate*: WINBOOL rgbReserved*: array[32, BYTE] + PPAINTSTRUCT* = ptr PAINTSTRUCT NPPAINTSTRUCT* = ptr PAINTSTRUCT LPPAINTSTRUCT* = ptr PAINTSTRUCT @@ -306,16 +338,19 @@ ptMinPosition*: POINT ptMaxPosition*: POINT rcNormalPosition*: RECT + PWINDOWPLACEMENT* = ptr WINDOWPLACEMENT LPWINDOWPLACEMENT* = ptr WINDOWPLACEMENT NMHDR* {.pure.} = object hwndFrom*: HWND idFrom*: UINT_PTR code*: UINT + LPNMHDR* = ptr NMHDR STYLESTRUCT* {.pure.} = object styleOld*: DWORD styleNew*: DWORD + LPSTYLESTRUCT* = ptr STYLESTRUCT MEASUREITEMSTRUCT* {.pure.} = object CtlType*: UINT @@ -324,6 +359,7 @@ itemWidth*: UINT itemHeight*: UINT itemData*: ULONG_PTR + PMEASUREITEMSTRUCT* = ptr MEASUREITEMSTRUCT LPMEASUREITEMSTRUCT* = ptr MEASUREITEMSTRUCT DRAWITEMSTRUCT* {.pure.} = object @@ -336,6 +372,7 @@ hDC*: HDC rcItem*: RECT itemData*: ULONG_PTR + PDRAWITEMSTRUCT* = ptr DRAWITEMSTRUCT LPDRAWITEMSTRUCT* = ptr DRAWITEMSTRUCT DELETEITEMSTRUCT* {.pure.} = object @@ -344,6 +381,7 @@ itemID*: UINT hwndItem*: HWND itemData*: ULONG_PTR + PDELETEITEMSTRUCT* = ptr DELETEITEMSTRUCT LPDELETEITEMSTRUCT* = ptr DELETEITEMSTRUCT COMPAREITEMSTRUCT* {.pure.} = object @@ -355,6 +393,7 @@ itemID2*: UINT itemData2*: ULONG_PTR dwLocaleId*: DWORD + PCOMPAREITEMSTRUCT* = ptr COMPAREITEMSTRUCT LPCOMPAREITEMSTRUCT* = ptr COMPAREITEMSTRUCT BSMINFO* {.pure.} = object @@ -362,6 +401,7 @@ hdesk*: HDESK hwnd*: HWND luid*: LUID + PBSMINFO* = ptr BSMINFO PHDEVNOTIFY* = ptr HDEVNOTIFY PHPOWERNOTIFY* = ptr HPOWERNOTIFY @@ -376,6 +416,7 @@ pblend*: ptr BLENDFUNCTION dwFlags*: DWORD prcDirty*: ptr RECT + PUPDATELAYEREDWINDOWINFO* = ptr UPDATELAYEREDWINDOWINFO FLASHWINFO* {.pure.} = object cbSize*: UINT @@ -383,6 +424,7 @@ dwFlags*: DWORD uCount*: UINT dwTimeout*: DWORD + PFLASHWINFO* = ptr FLASHWINFO DLGTEMPLATE* {.pure, packed.} = object style*: DWORD @@ -392,6 +434,7 @@ y*: int16 cx*: int16 cy*: int16 + LPDLGTEMPLATEA* = ptr DLGTEMPLATE LPDLGTEMPLATEW* = ptr DLGTEMPLATE LPCDLGTEMPLATEA* = ptr DLGTEMPLATE @@ -404,6 +447,7 @@ cx*: int16 cy*: int16 id*: WORD + PDLGITEMTEMPLATEA* = ptr DLGITEMTEMPLATE PDLGITEMTEMPLATEW* = ptr DLGITEMTEMPLATE LPDLGITEMTEMPLATEA* = ptr DLGITEMTEMPLATE @@ -415,6 +459,7 @@ dwFlags*: DWORD time*: DWORD dwExtraInfo*: ULONG_PTR + PMOUSEINPUT* = ptr MOUSEINPUT LPMOUSEINPUT* = ptr MOUSEINPUT KEYBDINPUT* {.pure.} = object @@ -423,21 +468,25 @@ dwFlags*: DWORD time*: DWORD dwExtraInfo*: ULONG_PTR + PKEYBDINPUT* = ptr KEYBDINPUT LPKEYBDINPUT* = ptr KEYBDINPUT HARDWAREINPUT* {.pure.} = object uMsg*: DWORD wParamL*: WORD wParamH*: WORD + PHARDWAREINPUT* = ptr HARDWAREINPUT LPHARDWAREINPUT* = ptr HARDWAREINPUT INPUT_UNION1* {.pure, union.} = object mi*: MOUSEINPUT ki*: KEYBDINPUT hi*: HARDWAREINPUT + INPUT* {.pure.} = object `type`*: DWORD union1*: INPUT_UNION1 + PINPUT* = ptr INPUT LPINPUT* = ptr INPUT TOUCHINPUT* {.pure.} = object @@ -451,6 +500,7 @@ dwExtraInfo*: ULONG_PTR cxContact*: DWORD cyContact*: DWORD + PTOUCHINPUT* = ptr TOUCHINPUT PCTOUCHINPUT* = ptr TOUCHINPUT POINTER_FLAGS* = UINT32 @@ -461,6 +511,7 @@ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION* {.pure.} = object score*: UINT16 adjustedPoint*: POINT + PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION* = ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION TOUCH_HIT_TESTING_INPUT* {.pure.} = object pointerId*: UINT32 @@ -468,10 +519,12 @@ boundingBox*: RECT nonOccludedBoundingBox*: RECT orientation*: UINT32 + PTOUCH_HIT_TESTING_INPUT* = ptr TOUCH_HIT_TESTING_INPUT LASTINPUTINFO* {.pure.} = object cbSize*: UINT dwTime*: DWORD + PLASTINPUTINFO* = ptr LASTINPUTINFO MENUINFO* {.pure.} = object cbSize*: DWORD @@ -481,10 +534,12 @@ hbrBack*: HBRUSH dwContextHelpID*: DWORD dwMenuData*: ULONG_PTR + LPMENUINFO* = ptr MENUINFO TPMPARAMS* {.pure.} = object cbSize*: UINT rcExclude*: RECT + LPTPMPARAMS* = ptr TPMPARAMS LPCMENUINFO* = ptr MENUINFO MENUGETOBJECTINFO* {.pure.} = object @@ -493,6 +548,7 @@ hmenu*: HMENU riid*: PVOID pvObj*: PVOID + PMENUGETOBJECTINFO* = ptr MENUGETOBJECTINFO MENUITEMINFOA* {.pure.} = object cbSize*: UINT @@ -507,6 +563,7 @@ dwTypeData*: LPSTR cch*: UINT hbmpItem*: HBITMAP + LPMENUITEMINFOA* = ptr MENUITEMINFOA MENUITEMINFOW* {.pure.} = object cbSize*: UINT @@ -521,6 +578,7 @@ dwTypeData*: LPWSTR cch*: UINT hbmpItem*: HBITMAP + LPMENUITEMINFOW* = ptr MENUITEMINFOW LPCMENUITEMINFOA* = ptr MENUITEMINFOA LPCMENUITEMINFOW* = ptr MENUITEMINFOW @@ -531,6 +589,7 @@ dwData*: ULONG_PTR ptDrop*: POINT dwControlData*: DWORD + PDROPSTRUCT* = ptr DROPSTRUCT LPDROPSTRUCT* = ptr DROPSTRUCT DRAWTEXTPARAMS* {.pure.} = object @@ -539,6 +598,7 @@ iLeftMargin*: int32 iRightMargin*: int32 uiLengthDrawn*: UINT + LPDRAWTEXTPARAMS* = ptr DRAWTEXTPARAMS HELPINFO* {.pure.} = object cbSize*: UINT @@ -547,8 +607,9 @@ hItemHandle*: HANDLE dwContextId*: DWORD_PTR MousePos*: POINT + LPHELPINFO* = ptr HELPINFO - MSGBOXCALLBACK* = proc (lpHelpInfo: LPHELPINFO): VOID {.stdcall.} + MSGBOXCALLBACK* = proc(lpHelpInfo: LPHELPINFO): VOID {.stdcall.} MSGBOXPARAMSA* {.pure.} = object cbSize*: UINT hwndOwner*: HWND @@ -560,6 +621,7 @@ dwContextHelpId*: DWORD_PTR lpfnMsgBoxCallback*: MSGBOXCALLBACK dwLanguageId*: DWORD + PMSGBOXPARAMSA* = ptr MSGBOXPARAMSA LPMSGBOXPARAMSA* = ptr MSGBOXPARAMSA MSGBOXPARAMSW* {.pure.} = object @@ -573,16 +635,19 @@ dwContextHelpId*: DWORD_PTR lpfnMsgBoxCallback*: MSGBOXCALLBACK dwLanguageId*: DWORD + PMSGBOXPARAMSW* = ptr MSGBOXPARAMSW LPMSGBOXPARAMSW* = ptr MSGBOXPARAMSW MENUITEMTEMPLATEHEADER* {.pure.} = object versionNumber*: WORD offset*: WORD + PMENUITEMTEMPLATEHEADER* = ptr MENUITEMTEMPLATEHEADER MENUITEMTEMPLATE* {.pure.} = object mtOption*: WORD mtID*: WORD mtString*: array[1, WCHAR] + PMENUITEMTEMPLATE* = ptr MENUITEMTEMPLATE ICONINFO* {.pure.} = object fIcon*: WINBOOL @@ -590,6 +655,7 @@ yHotspot*: DWORD hbmMask*: HBITMAP hbmColor*: HBITMAP + PICONINFO* = ptr ICONINFO CURSORSHAPE* {.pure.} = object xHotSpot*: int32 @@ -599,6 +665,7 @@ cbWidth*: int32 Planes*: BYTE BitsPixel*: BYTE + LPCURSORSHAPE* = ptr CURSORSHAPE ICONINFOEXA* {.pure.} = object cbSize*: DWORD @@ -610,6 +677,7 @@ wResID*: WORD szModName*: array[MAX_PATH, CHAR] szResName*: array[MAX_PATH, CHAR] + PICONINFOEXA* = ptr ICONINFOEXA ICONINFOEXW* {.pure.} = object cbSize*: DWORD @@ -621,6 +689,7 @@ wResID*: WORD szModName*: array[MAX_PATH, WCHAR] szResName*: array[MAX_PATH, WCHAR] + PICONINFOEXW* = ptr ICONINFOEXW SCROLLINFO* {.pure.} = object cbSize*: UINT @@ -630,6 +699,7 @@ nPage*: UINT nPos*: int32 nTrackPos*: int32 + LPSCROLLINFO* = ptr SCROLLINFO LPCSCROLLINFO* = ptr SCROLLINFO MDICREATESTRUCTA* {.pure.} = object @@ -642,6 +712,7 @@ cy*: int32 style*: DWORD lParam*: LPARAM + LPMDICREATESTRUCTA* = ptr MDICREATESTRUCTA MDICREATESTRUCTW* {.pure.} = object szClass*: LPCWSTR @@ -653,21 +724,25 @@ cy*: int32 style*: DWORD lParam*: LPARAM + LPMDICREATESTRUCTW* = ptr MDICREATESTRUCTW CLIENTCREATESTRUCT* {.pure.} = object hWindowMenu*: HANDLE idFirstChild*: UINT + LPCLIENTCREATESTRUCT* = ptr CLIENTCREATESTRUCT MULTIKEYHELPA* {.pure.} = object mkSize*: DWORD mkKeylist*: CHAR szKeyphrase*: array[1, CHAR] + PMULTIKEYHELPA* = ptr MULTIKEYHELPA LPMULTIKEYHELPA* = ptr MULTIKEYHELPA MULTIKEYHELPW* {.pure.} = object mkSize*: DWORD mkKeylist*: WCHAR szKeyphrase*: array[1, WCHAR] + PMULTIKEYHELPW* = ptr MULTIKEYHELPW LPMULTIKEYHELPW* = ptr MULTIKEYHELPW HELPWININFOA* {.pure.} = object @@ -678,6 +753,7 @@ dy*: int32 wMax*: int32 rgchMember*: array[2, CHAR] + PHELPWININFOA* = ptr HELPWININFOA LPHELPWININFOA* = ptr HELPWININFOA HELPWININFOW* {.pure.} = object @@ -688,6 +764,7 @@ dy*: int32 wMax*: int32 rgchMember*: array[2, WCHAR] + PHELPWININFOW* = ptr HELPWININFOW LPHELPWININFOW* = ptr HELPWININFOW TOUCHPREDICTIONPARAMETERS* {.pure.} = object @@ -695,6 +772,7 @@ dwLatency*: UINT dwSampleTime*: UINT bUseHWTimeStamp*: UINT + PTOUCHPREDICTIONPARAMETERS* = ptr TOUCHPREDICTIONPARAMETERS NONCLIENTMETRICSA* {.pure.} = object cbSize*: UINT @@ -713,6 +791,7 @@ lfStatusFont*: LOGFONTA lfMessageFont*: LOGFONTA iPaddedBorderWidth*: int32 + PNONCLIENTMETRICSA* = ptr NONCLIENTMETRICSA LPNONCLIENTMETRICSA* = ptr NONCLIENTMETRICSA NONCLIENTMETRICSW* {.pure.} = object @@ -732,6 +811,7 @@ lfStatusFont*: LOGFONTW lfMessageFont*: LOGFONTW iPaddedBorderWidth*: int32 + PNONCLIENTMETRICSW* = ptr NONCLIENTMETRICSW LPNONCLIENTMETRICSW* = ptr NONCLIENTMETRICSW MINIMIZEDMETRICS* {.pure.} = object @@ -740,6 +820,7 @@ iHorzGap*: int32 iVertGap*: int32 iArrange*: int32 + PMINIMIZEDMETRICS* = ptr MINIMIZEDMETRICS LPMINIMIZEDMETRICS* = ptr MINIMIZEDMETRICS ICONMETRICSA* {.pure.} = object @@ -748,6 +829,7 @@ iVertSpacing*: int32 iTitleWrap*: int32 lfFont*: LOGFONTA + PICONMETRICSA* = ptr ICONMETRICSA LPICONMETRICSA* = ptr ICONMETRICSA ICONMETRICSW* {.pure.} = object @@ -756,11 +838,13 @@ iVertSpacing*: int32 iTitleWrap*: int32 lfFont*: LOGFONTW + PICONMETRICSW* = ptr ICONMETRICSW LPICONMETRICSW* = ptr ICONMETRICSW ANIMATIONINFO* {.pure.} = object cbSize*: UINT iMinAnimate*: int32 + LPANIMATIONINFO* = ptr ANIMATIONINFO SERIALKEYSA* {.pure.} = object cbSize*: UINT @@ -770,6 +854,7 @@ iBaudRate*: UINT iPortState*: UINT iActive*: UINT + LPSERIALKEYSA* = ptr SERIALKEYSA SERIALKEYSW* {.pure.} = object cbSize*: UINT @@ -779,16 +864,19 @@ iBaudRate*: UINT iPortState*: UINT iActive*: UINT + LPSERIALKEYSW* = ptr SERIALKEYSW HIGHCONTRASTA* {.pure.} = object cbSize*: UINT dwFlags*: DWORD lpszDefaultScheme*: LPSTR + LPHIGHCONTRASTA* = ptr HIGHCONTRASTA HIGHCONTRASTW* {.pure.} = object cbSize*: UINT dwFlags*: DWORD lpszDefaultScheme*: LPWSTR + LPHIGHCONTRASTW* = ptr HIGHCONTRASTW VIDEOPARAMETERS* {.pure.} = object Guid*: GUID @@ -814,6 +902,7 @@ dwCPKey*: ULONG bCP_APSTriggerBits*: ULONG bOEMCopyProtection*: array[256, UCHAR] + PVIDEOPARAMETERS* = ptr VIDEOPARAMETERS LPVIDEOPARAMETERS* = ptr VIDEOPARAMETERS FILTERKEYS* {.pure.} = object @@ -823,10 +912,12 @@ iDelayMSec*: DWORD iRepeatMSec*: DWORD iBounceMSec*: DWORD + LPFILTERKEYS* = ptr FILTERKEYS STICKYKEYS* {.pure.} = object cbSize*: UINT dwFlags*: DWORD + LPSTICKYKEYS* = ptr STICKYKEYS MOUSEKEYS* {.pure.} = object cbSize*: UINT @@ -836,11 +927,13 @@ iCtrlSpeed*: DWORD dwReserved1*: DWORD dwReserved2*: DWORD + LPMOUSEKEYS* = ptr MOUSEKEYS ACCESSTIMEOUT* {.pure.} = object cbSize*: UINT dwFlags*: DWORD iTimeOutMSec*: DWORD + LPACCESSTIMEOUT* = ptr ACCESSTIMEOUT SOUNDSENTRYA* {.pure.} = object cbSize*: UINT @@ -855,6 +948,7 @@ iWindowsEffectMSec*: DWORD lpszWindowsEffectDLL*: LPSTR iWindowsEffectOrdinal*: DWORD + LPSOUNDSENTRYA* = ptr SOUNDSENTRYA SOUNDSENTRYW* {.pure.} = object cbSize*: UINT @@ -869,39 +963,47 @@ iWindowsEffectMSec*: DWORD lpszWindowsEffectDLL*: LPWSTR iWindowsEffectOrdinal*: DWORD + LPSOUNDSENTRYW* = ptr SOUNDSENTRYW TOGGLEKEYS* {.pure.} = object cbSize*: UINT dwFlags*: DWORD + LPTOGGLEKEYS* = ptr TOGGLEKEYS MONITORINFO* {.pure.} = object cbSize*: DWORD rcMonitor*: RECT rcWork*: RECT dwFlags*: DWORD + LPMONITORINFO* = ptr MONITORINFO AUDIODESCRIPTION* {.pure.} = object cbSize*: UINT Enabled*: WINBOOL Locale*: LCID + LPAUDIODESCRIPTION* = ptr AUDIODESCRIPTION MONITORINFOEXA_STRUCT1* {.pure.} = object cbSize*: DWORD rcMonitor*: RECT rcWork*: RECT dwFlags*: DWORD + MONITORINFOEXA* {.pure.} = object struct1*: MONITORINFOEXA_STRUCT1 szDevice*: array[CCHDEVICENAME, CHAR] + LPMONITORINFOEXA* = ptr MONITORINFOEXA MONITORINFOEXW_STRUCT1* {.pure.} = object cbSize*: DWORD rcMonitor*: RECT rcWork*: RECT dwFlags*: DWORD + MONITORINFOEXW* {.pure.} = object struct1*: MONITORINFOEXW_STRUCT1 szDevice*: array[CCHDEVICENAME, WCHAR] + LPMONITORINFOEXW* = ptr MONITORINFOEXW GUITHREADINFO* {.pure.} = object cbSize*: DWORD @@ -913,6 +1015,7 @@ hwndMoveSize*: HWND hwndCaret*: HWND rcCaret*: RECT + PGUITHREADINFO* = ptr GUITHREADINFO LPGUITHREADINFO* = ptr GUITHREADINFO CURSORINFO* {.pure.} = object @@ -920,6 +1023,7 @@ flags*: DWORD hCursor*: HCURSOR ptScreenPos*: POINT + PCURSORINFO* = ptr CURSORINFO LPCURSORINFO* = ptr CURSORINFO WINDOWINFO* {.pure.} = object @@ -933,15 +1037,17 @@ cyWindowBorders*: UINT atomWindowType*: ATOM wCreatorVersion*: WORD + PWINDOWINFO* = ptr WINDOWINFO LPWINDOWINFO* = ptr WINDOWINFO -const - CCHILDREN_TITLEBAR* = 5 + +const CCHILDREN_TITLEBAR* = 5 type TITLEBARINFO* {.pure.} = object cbSize*: DWORD rcTitleBar*: RECT rgstate*: array[CCHILDREN_TITLEBAR + 1, DWORD] + PTITLEBARINFO* = ptr TITLEBARINFO LPTITLEBARINFO* = ptr TITLEBARINFO TITLEBARINFOEX* {.pure.} = object @@ -949,6 +1055,7 @@ rcTitleBar*: RECT rgstate*: array[CCHILDREN_TITLEBAR + 1, DWORD] rgrect*: array[CCHILDREN_TITLEBAR + 1, RECT] + PTITLEBARINFOEX* = ptr TITLEBARINFOEX LPTITLEBARINFOEX* = ptr TITLEBARINFOEX MENUBARINFO* {.pure.} = object @@ -956,12 +1063,13 @@ rcBar*: RECT hMenu*: HMENU hwndMenu*: HWND - fBarFocused* {.bitsize:1.}: WINBOOL - fFocused* {.bitsize:1.}: WINBOOL + fBarFocused* {.bitsize: 1.}: WINBOOL + fFocused* {.bitsize: 1.}: WINBOOL + PMENUBARINFO* = ptr MENUBARINFO LPMENUBARINFO* = ptr MENUBARINFO -const - CCHILDREN_SCROLLBAR* = 5 + +const CCHILDREN_SCROLLBAR* = 5 type SCROLLBARINFO* {.pure.} = object cbSize*: DWORD @@ -971,6 +1079,7 @@ xyThumbBottom*: int32 reserved*: int32 rgstate*: array[CCHILDREN_SCROLLBAR + 1, DWORD] + PSCROLLBARINFO* = ptr SCROLLBARINFO LPSCROLLBARINFO* = ptr SCROLLBARINFO COMBOBOXINFO* {.pure.} = object @@ -981,6 +1090,7 @@ hwndCombo*: HWND hwndItem*: HWND hwndList*: HWND + PCOMBOBOXINFO* = ptr COMBOBOXINFO LPCOMBOBOXINFO* = ptr COMBOBOXINFO ALTTABINFO* {.pure.} = object @@ -993,6 +1103,7 @@ cxItem*: int32 cyItem*: int32 ptStart*: POINT + PALTTABINFO* = ptr ALTTABINFO LPALTTABINFO* = ptr ALTTABINFO RAWINPUTHEADER* {.pure.} = object @@ -1000,14 +1111,17 @@ dwSize*: DWORD hDevice*: HANDLE wParam*: WPARAM + PRAWINPUTHEADER* = ptr RAWINPUTHEADER LPRAWINPUTHEADER* = ptr RAWINPUTHEADER RAWMOUSE_UNION1_STRUCT1* {.pure.} = object usButtonFlags*: USHORT usButtonData*: USHORT + RAWMOUSE_UNION1* {.pure, union.} = object ulButtons*: ULONG struct1*: RAWMOUSE_UNION1_STRUCT1 + RAWMOUSE* {.pure.} = object usFlags*: USHORT union1*: RAWMOUSE_UNION1 @@ -1015,6 +1129,7 @@ lLastX*: LONG lLastY*: LONG ulExtraInformation*: ULONG + PRAWMOUSE* = ptr RAWMOUSE LPRAWMOUSE* = ptr RAWMOUSE RAWKEYBOARD* {.pure.} = object @@ -1024,21 +1139,25 @@ VKey*: USHORT Message*: UINT ExtraInformation*: ULONG + PRAWKEYBOARD* = ptr RAWKEYBOARD LPRAWKEYBOARD* = ptr RAWKEYBOARD RAWHID* {.pure.} = object dwSizeHid*: DWORD dwCount*: DWORD bRawData*: array[1, BYTE] + PRAWHID* = ptr RAWHID LPRAWHID* = ptr RAWHID RAWINPUT_data* {.pure, union.} = object mouse*: RAWMOUSE keyboard*: RAWKEYBOARD hid*: RAWHID + RAWINPUT* {.pure.} = object header*: RAWINPUTHEADER data*: RAWINPUT_data + PRAWINPUT* = ptr RAWINPUT LPRAWINPUT* = ptr RAWINPUT RID_DEVICE_INFO_MOUSE* {.pure.} = object @@ -1046,6 +1165,7 @@ dwNumberOfButtons*: DWORD dwSampleRate*: DWORD fHasHorizontalWheel*: WINBOOL + PRID_DEVICE_INFO_MOUSE* = ptr RID_DEVICE_INFO_MOUSE RID_DEVICE_INFO_KEYBOARD* {.pure.} = object dwType*: DWORD @@ -1054,6 +1174,7 @@ dwNumberOfFunctionKeys*: DWORD dwNumberOfIndicators*: DWORD dwNumberOfKeysTotal*: DWORD + PRID_DEVICE_INFO_KEYBOARD* = ptr RID_DEVICE_INFO_KEYBOARD RID_DEVICE_INFO_HID* {.pure.} = object dwVendorId*: DWORD @@ -1061,15 +1182,18 @@ dwVersionNumber*: DWORD usUsagePage*: USHORT usUsage*: USHORT + PRID_DEVICE_INFO_HID* = ptr RID_DEVICE_INFO_HID RID_DEVICE_INFO_UNION1* {.pure, union.} = object mouse*: RID_DEVICE_INFO_MOUSE keyboard*: RID_DEVICE_INFO_KEYBOARD hid*: RID_DEVICE_INFO_HID + RID_DEVICE_INFO* {.pure.} = object cbSize*: DWORD dwType*: DWORD union1*: RID_DEVICE_INFO_UNION1 + PRID_DEVICE_INFO* = ptr RID_DEVICE_INFO LPRID_DEVICE_INFO* = ptr RID_DEVICE_INFO RAWINPUTDEVICE* {.pure.} = object @@ -1077,16 +1201,19 @@ usUsage*: USHORT dwFlags*: DWORD hwndTarget*: HWND + PRAWINPUTDEVICE* = ptr RAWINPUTDEVICE LPRAWINPUTDEVICE* = ptr RAWINPUTDEVICE PCRAWINPUTDEVICE* = ptr RAWINPUTDEVICE RAWINPUTDEVICELIST* {.pure.} = object hDevice*: HANDLE dwType*: DWORD + PRAWINPUTDEVICELIST* = ptr RAWINPUTDEVICELIST CHANGEFILTERSTRUCT* {.pure.} = object cbSize*: DWORD ExtStatus*: DWORD + PCHANGEFILTERSTRUCT* = ptr CHANGEFILTERSTRUCT GESTUREINFO* {.pure.} = object cbSize*: UINT @@ -1098,6 +1225,7 @@ dwSequenceID*: DWORD ullArguments*: ULONGLONG cbExtraArgs*: UINT + PGESTUREINFO* = ptr GESTUREINFO PCGESTUREINFO* = ptr GESTUREINFO GESTURENOTIFYSTRUCT* {.pure.} = object @@ -1106,13 +1234,18 @@ hwndTarget*: HWND ptsLocation*: POINTS dwInstanceID*: DWORD + PGESTURENOTIFYSTRUCT* = ptr GESTURENOTIFYSTRUCT GESTURECONFIG* {.pure.} = object dwID*: DWORD dwWant*: DWORD dwBlock*: DWORD + PGESTURECONFIG* = ptr GESTURECONFIG -template MAKEINTRESOURCE*(i: untyped): untyped = cast[LPTSTR](i and 0xffff) + +template MAKEINTRESOURCE*(i: untyped): untyped = + cast[LPTSTR](i and 0xffff) + const RT_CURSOR* = MAKEINTRESOURCE(1) RT_BITMAP* = MAKEINTRESOURCE(2) @@ -1531,7 +1664,10 @@ WINSTA_EXITWINDOWS* = 0x0040 WINSTA_ENUMERATE* = 0x0100 WINSTA_READSCREEN* = 0x0200 - WINSTA_ALL_ACCESS* = WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN + WINSTA_ALL_ACCESS* = + WINSTA_ENUMDESKTOPS or WINSTA_READATTRIBUTES or WINSTA_ACCESSCLIPBOARD or + WINSTA_CREATEDESKTOP or WINSTA_WRITEATTRIBUTES or WINSTA_ACCESSGLOBALATOMS or + WINSTA_EXITWINDOWS or WINSTA_ENUMERATE or WINSTA_READSCREEN CWF_CREATE_ONLY* = 0x00000001 WSF_VISIBLE* = 0x0001 UOI_FLAGS* = 1 @@ -1960,7 +2096,9 @@ WS_TILED* = WS_OVERLAPPED WS_ICONIC* = WS_MINIMIZE WS_SIZEBOX* = WS_THICKFRAME - WS_OVERLAPPEDWINDOW* = WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_THICKFRAME or WS_MINIMIZEBOX or WS_MAXIMIZEBOX + WS_OVERLAPPEDWINDOW* = + WS_OVERLAPPED or WS_CAPTION or WS_SYSMENU or WS_THICKFRAME or WS_MINIMIZEBOX or + WS_MAXIMIZEBOX WS_TILEDWINDOW* = WS_OVERLAPPEDWINDOW WS_POPUPWINDOW* = WS_POPUP or WS_BORDER or WS_SYSMENU WS_CHILDWINDOW* = WS_CHILD @@ -2372,7 +2510,8 @@ MWMO_INPUTAVAILABLE* = 0x0004 QS_ALLPOSTMESSAGE* = 0x0100 QS_ALLEVENTS* = QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY - QS_ALLINPUT* = QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY or QS_SENDMESSAGE + QS_ALLINPUT* = + QS_INPUT or QS_POSTMESSAGE or QS_TIMER or QS_PAINT or QS_HOTKEY or QS_SENDMESSAGE USER_TIMER_MAXIMUM* = 0x7FFFFFFF USER_TIMER_MINIMUM* = 0x0000000A TIMERV_DEFAULT_COALESCING* = 0 @@ -3087,11 +3226,10 @@ DWL_DLGPROC* = 4 DWL_USER* = 8 DWLP_MSGRESULT* = 0 - DWLP_DLGPROC* = DWLP_MSGRESULT+sizeof(LRESULT) -type - DLGPROC* = proc (P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): INT_PTR {.stdcall.} + DWLP_DLGPROC* = DWLP_MSGRESULT + sizeof(LRESULT) +type DLGPROC* = proc(P1: HWND, P2: UINT, P3: WPARAM, P4: LPARAM): INT_PTR {.stdcall.} const - DWLP_USER* = DWLP_DLGPROC+sizeof(DLGPROC) + DWLP_USER* = DWLP_DLGPROC + sizeof(DLGPROC) DDL_READWRITE* = 0x0000 DDL_READONLY* = 0x0001 DDL_HIDDEN* = 0x0002 @@ -3117,9 +3255,9 @@ DS_CONTEXTHELP* = 0x2000 DS_SHELLFONT* = DS_SETFONT or DS_FIXEDSYS DS_USEPIXELS* = 0x8000 - DM_GETDEFID* = WM_USER+0 - DM_SETDEFID* = WM_USER+1 - DM_REPOSITION* = WM_USER+2 + DM_GETDEFID* = WM_USER + 0 + DM_SETDEFID* = WM_USER + 1 + DM_REPOSITION* = WM_USER + 2 DC_HASDEFID* = 0x534B DLGC_WANTARROWS* = 0x0001 DLGC_WANTTAB* = 0x0002 @@ -4061,26 +4199,42 @@ ORIENTATION_PREFERENCE_PORTRAIT* = 0x2 ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED* = 0x4 ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED* = 0x8 - RT_GROUP_CURSOR* = MAKEINTRESOURCE(1+DIFFERENCE) - RT_GROUP_ICON* = MAKEINTRESOURCE(3+DIFFERENCE) + RT_GROUP_CURSOR* = MAKEINTRESOURCE(1 + DIFFERENCE) + RT_GROUP_ICON* = MAKEINTRESOURCE(3 + DIFFERENCE) SETWALLPAPER_DEFAULT* = cast[LPWSTR](-1) WHEEL_PAGESCROLL* = 0xffffffff'i32 type - TIMERPROC* = proc (P1: HWND, P2: UINT, P3: UINT_PTR, P4: DWORD): VOID {.stdcall.} - GRAYSTRINGPROC* = proc (P1: HDC, P2: LPARAM, P3: int32): WINBOOL {.stdcall.} - WNDENUMPROC* = proc (P1: HWND, P2: LPARAM): WINBOOL {.stdcall.} - HOOKPROC* = proc (code: int32, wParam: WPARAM, lParam: LPARAM): LRESULT {.stdcall.} - SENDASYNCPROC* = proc (P1: HWND, P2: UINT, P3: ULONG_PTR, P4: LRESULT): VOID {.stdcall.} - PROPENUMPROCA* = proc (P1: HWND, P2: LPCSTR, P3: HANDLE): WINBOOL {.stdcall.} - PROPENUMPROCW* = proc (P1: HWND, P2: LPCWSTR, P3: HANDLE): WINBOOL {.stdcall.} - PROPENUMPROCEXA* = proc (P1: HWND, P2: LPSTR, P3: HANDLE, P4: ULONG_PTR): WINBOOL {.stdcall.} - PROPENUMPROCEXW* = proc (P1: HWND, P2: LPWSTR, P3: HANDLE, P4: ULONG_PTR): WINBOOL {.stdcall.} - EDITWORDBREAKPROCA* = proc (lpch: LPSTR, ichCurrent: int32, cch: int32, code: int32): int32 {.stdcall.} - EDITWORDBREAKPROCW* = proc (lpch: LPWSTR, ichCurrent: int32, cch: int32, code: int32): int32 {.stdcall.} - DRAWSTATEPROC* = proc (hdc: HDC, lData: LPARAM, wData: WPARAM, cx: int32, cy: int32): WINBOOL {.stdcall.} - PREGISTERCLASSNAMEW* = proc (P1: LPCWSTR): BOOLEAN {.stdcall.} - MONITORENUMPROC* = proc (P1: HMONITOR, P2: HDC, P3: LPRECT, P4: LPARAM): WINBOOL {.stdcall.} - WINEVENTPROC* = proc (hWinEventHook: HWINEVENTHOOK, event: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG, idEventThread: DWORD, dwmsEventTime: DWORD): VOID {.stdcall.} + TIMERPROC* = proc(P1: HWND, P2: UINT, P3: UINT_PTR, P4: DWORD): VOID {.stdcall.} + GRAYSTRINGPROC* = proc(P1: HDC, P2: LPARAM, P3: int32): WINBOOL {.stdcall.} + WNDENUMPROC* = proc(P1: HWND, P2: LPARAM): WINBOOL {.stdcall.} + HOOKPROC* = proc(code: int32, wParam: WPARAM, lParam: LPARAM): LRESULT {.stdcall.} + SENDASYNCPROC* = + proc(P1: HWND, P2: UINT, P3: ULONG_PTR, P4: LRESULT): VOID {.stdcall.} + PROPENUMPROCA* = proc(P1: HWND, P2: LPCSTR, P3: HANDLE): WINBOOL {.stdcall.} + PROPENUMPROCW* = proc(P1: HWND, P2: LPCWSTR, P3: HANDLE): WINBOOL {.stdcall.} + PROPENUMPROCEXA* = + proc(P1: HWND, P2: LPSTR, P3: HANDLE, P4: ULONG_PTR): WINBOOL {.stdcall.} + PROPENUMPROCEXW* = + proc(P1: HWND, P2: LPWSTR, P3: HANDLE, P4: ULONG_PTR): WINBOOL {.stdcall.} + EDITWORDBREAKPROCA* = + proc(lpch: LPSTR, ichCurrent: int32, cch: int32, code: int32): int32 {.stdcall.} + EDITWORDBREAKPROCW* = + proc(lpch: LPWSTR, ichCurrent: int32, cch: int32, code: int32): int32 {.stdcall.} + DRAWSTATEPROC* = proc( + hdc: HDC, lData: LPARAM, wData: WPARAM, cx: int32, cy: int32 + ): WINBOOL {.stdcall.} + PREGISTERCLASSNAMEW* = proc(P1: LPCWSTR): BOOLEAN {.stdcall.} + MONITORENUMPROC* = + proc(P1: HMONITOR, P2: HDC, P3: LPRECT, P4: LPARAM): WINBOOL {.stdcall.} + WINEVENTPROC* = proc( + hWinEventHook: HWINEVENTHOOK, + event: DWORD, + hwnd: HWND, + idObject: LONG, + idChild: LONG, + idEventThread: DWORD, + dwmsEventTime: DWORD, + ): VOID {.stdcall.} POINTER_INFO* {.pure.} = object pointerType*: POINTER_INPUT_TYPE pointerId*: UINT32 @@ -4098,6 +4252,7 @@ dwKeyStates*: DWORD PerformanceCount*: UINT64 ButtonChangeType*: POINTER_BUTTON_CHANGE_TYPE + POINTER_TOUCH_INFO* {.pure.} = object pointerInfo*: POINTER_INFO touchFlags*: TOUCH_FLAGS @@ -4106,6 +4261,7 @@ rcContactRaw*: RECT orientation*: UINT32 pressure*: UINT32 + POINTER_PEN_INFO* {.pure.} = object pointerInfo*: POINTER_INFO penFlags*: PEN_FLAGS @@ -4114,6 +4270,7 @@ rotation*: UINT32 tiltX*: INT32 tiltY*: INT32 + POINTER_DEVICE_INFO* {.pure.} = object displayOrientation*: DWORD device*: HANDLE @@ -4122,6 +4279,7 @@ startingCursorId*: ULONG maxActiveContacts*: USHORT productString*: array[POINTER_DEVICE_PRODUCT_STRING_MAX, WCHAR] + POINTER_DEVICE_PROPERTY* {.pure.} = object logicalMin*: INT32 logicalMax*: INT32 @@ -4131,12 +4289,15 @@ unitExponent*: UINT32 usagePageId*: USHORT usageId*: USHORT + POINTER_DEVICE_CURSOR_INFO* {.pure.} = object cursorId*: UINT32 cursor*: POINTER_DEVICE_CURSOR_TYPE + INPUT_MESSAGE_SOURCE* {.pure.} = object deviceType*: INPUT_MESSAGE_DEVICE_TYPE originId*: INPUT_MESSAGE_ORIGIN_ID + INPUT_TRANSFORM_UNION1_STRUCT1* {.pure.} = object m11*: float32 m12*: float32 @@ -4154,249 +4315,1010 @@ m42*: float32 m43*: float32 m44*: float32 + INPUT_TRANSFORM_UNION1* {.pure, union.} = object struct1*: INPUT_TRANSFORM_UNION1_STRUCT1 m*: array[4, array[4, float32]] + INPUT_TRANSFORM* {.pure.} = object union1*: INPUT_TRANSFORM_UNION1 + MENUTEMPLATEA* {.pure.} = object MENUTEMPLATEW* {.pure.} = object -proc wvsprintfA*(P1: LPSTR, P2: LPCSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc wvsprintfW*(P1: LPWSTR, P2: LPCWSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc wsprintfA*(P1: LPSTR, P2: LPCSTR): int32 {.winapi, cdecl, varargs, dynlib: "user32", importc.} -proc wsprintfW*(P1: LPWSTR, P2: LPCWSTR): int32 {.winapi, cdecl, varargs, dynlib: "user32", importc.} -proc LoadKeyboardLayoutA*(pwszKLID: LPCSTR, Flags: UINT): HKL {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadKeyboardLayoutW*(pwszKLID: LPCWSTR, Flags: UINT): HKL {.winapi, stdcall, dynlib: "user32", importc.} -proc ActivateKeyboardLayout*(hkl: HKL, Flags: UINT): HKL {.winapi, stdcall, dynlib: "user32", importc.} -proc ToUnicodeEx*(wVirtKey: UINT, wScanCode: UINT, lpKeyState: ptr BYTE, pwszBuff: LPWSTR, cchBuff: int32, wFlags: UINT, dwhkl: HKL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc UnloadKeyboardLayout*(hkl: HKL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyboardLayoutNameA*(pwszKLID: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyboardLayoutNameW*(pwszKLID: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyboardLayoutList*(nBuff: int32, lpList: ptr HKL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyboardLayout*(idThread: DWORD): HKL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMouseMovePointsEx*(cbSize: UINT, lppt: LPMOUSEMOVEPOINT, lpptBuf: LPMOUSEMOVEPOINT, nBufPoints: int32, resolution: DWORD): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDesktopA*(lpszDesktop: LPCSTR, lpszDevice: LPCSTR, pDevmode: LPDEVMODEA, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDesktopW*(lpszDesktop: LPCWSTR, lpszDevice: LPCWSTR, pDevmode: LPDEVMODEW, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDesktopExA*(lpszDesktop: LPCSTR, lpszDevice: LPCSTR, pDevmode: ptr DEVMODEA, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES, ulHeapSize: ULONG, pvoid: PVOID): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDesktopExW*(lpszDesktop: LPCWSTR, lpszDevice: LPCWSTR, pDevmode: ptr DEVMODEW, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES, ulHeapSize: ULONG, pvoid: PVOID): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc OpenDesktopA*(lpszDesktop: LPCSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc OpenDesktopW*(lpszDesktop: LPCWSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc OpenInputDesktop*(dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDesktopsA*(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDesktopsW*(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDesktopWindows*(hDesktop: HDESK, lpfn: WNDENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SwitchDesktop*(hDesktop: HDESK): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetThreadDesktop*(hDesktop: HDESK): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CloseDesktop*(hDesktop: HDESK): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetThreadDesktop*(dwThreadId: DWORD): HDESK {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateWindowStationA*(lpwinsta: LPCSTR, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateWindowStationW*(lpwinsta: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} -proc OpenWindowStationA*(lpszWinSta: LPCSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} -proc OpenWindowStationW*(lpszWinSta: LPCWSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumWindowStationsA*(lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumWindowStationsW*(lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CloseWindowStation*(hWinSta: HWINSTA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetProcessWindowStation*(hWinSta: HWINSTA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc wvsprintfA*( + P1: LPSTR, P2: LPCSTR, arglist: va_list +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc wvsprintfW*( + P1: LPWSTR, P2: LPCWSTR, arglist: va_list +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc wsprintfA*( + P1: LPSTR, P2: LPCSTR +): int32 {.winapi, cdecl, varargs, dynlib: "user32", importc.} + +proc wsprintfW*( + P1: LPWSTR, P2: LPCWSTR +): int32 {.winapi, cdecl, varargs, dynlib: "user32", importc.} + +proc LoadKeyboardLayoutA*( + pwszKLID: LPCSTR, Flags: UINT +): HKL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadKeyboardLayoutW*( + pwszKLID: LPCWSTR, Flags: UINT +): HKL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ActivateKeyboardLayout*( + hkl: HKL, Flags: UINT +): HKL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ToUnicodeEx*( + wVirtKey: UINT, + wScanCode: UINT, + lpKeyState: ptr BYTE, + pwszBuff: LPWSTR, + cchBuff: int32, + wFlags: UINT, + dwhkl: HKL, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnloadKeyboardLayout*( + hkl: HKL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyboardLayoutNameA*( + pwszKLID: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyboardLayoutNameW*( + pwszKLID: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyboardLayoutList*( + nBuff: int32, lpList: ptr HKL +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyboardLayout*( + idThread: DWORD +): HKL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMouseMovePointsEx*( + cbSize: UINT, + lppt: LPMOUSEMOVEPOINT, + lpptBuf: LPMOUSEMOVEPOINT, + nBufPoints: int32, + resolution: DWORD, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDesktopA*( + lpszDesktop: LPCSTR, + lpszDevice: LPCSTR, + pDevmode: LPDEVMODEA, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDesktopW*( + lpszDesktop: LPCWSTR, + lpszDevice: LPCWSTR, + pDevmode: LPDEVMODEW, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDesktopExA*( + lpszDesktop: LPCSTR, + lpszDevice: LPCSTR, + pDevmode: ptr DEVMODEA, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ulHeapSize: ULONG, + pvoid: PVOID, +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDesktopExW*( + lpszDesktop: LPCWSTR, + lpszDevice: LPCWSTR, + pDevmode: ptr DEVMODEW, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ulHeapSize: ULONG, + pvoid: PVOID, +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc OpenDesktopA*( + lpszDesktop: LPCSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc OpenDesktopW*( + lpszDesktop: LPCWSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc OpenInputDesktop*( + dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDesktopsA*( + hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDesktopsW*( + hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDesktopWindows*( + hDesktop: HDESK, lpfn: WNDENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SwitchDesktop*( + hDesktop: HDESK +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetThreadDesktop*( + hDesktop: HDESK +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CloseDesktop*( + hDesktop: HDESK +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetThreadDesktop*( + dwThreadId: DWORD +): HDESK {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateWindowStationA*( + lpwinsta: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, +): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateWindowStationW*( + lpwinsta: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, +): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} + +proc OpenWindowStationA*( + lpszWinSta: LPCSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK +): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} + +proc OpenWindowStationW*( + lpszWinSta: LPCWSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK +): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumWindowStationsA*( + lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumWindowStationsW*( + lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CloseWindowStation*( + hWinSta: HWINSTA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetProcessWindowStation*( + hWinSta: HWINSTA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetProcessWindowStation*(): HWINSTA {.winapi, stdcall, dynlib: "user32", importc.} -proc SetUserObjectSecurity*(hObj: HANDLE, pSIRequested: PSECURITY_INFORMATION, pSID: PSECURITY_DESCRIPTOR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetUserObjectSecurity*(hObj: HANDLE, pSIRequested: PSECURITY_INFORMATION, pSID: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetUserObjectInformationA*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetUserObjectInformationW*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetUserObjectInformationA*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetUserObjectInformationW*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsHungAppWindow*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DisableProcessWindowsGhosting*(): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterWindowMessageA*(lpString: LPCSTR): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterWindowMessageW*(lpString: LPCWSTR): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc TrackMouseEvent*(lpEventTrack: LPTRACKMOUSEEVENT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawEdge*(hdc: HDC, qrc: LPRECT, edge: UINT, grfFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawFrameControl*(P1: HDC, P2: LPRECT, P3: UINT, P4: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawCaption*(hwnd: HWND, hdc: HDC, lprect: ptr RECT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawAnimatedRects*(hwnd: HWND, idAni: int32, lprcFrom: ptr RECT, lprcTo: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMessageA*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMessageW*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc TranslateMessage*(lpMsg: ptr MSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DispatchMessageA*(lpMsg: ptr MSG): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc DispatchMessageW*(lpMsg: ptr MSG): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMessageQueue*(cMessagesMax: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PeekMessageA*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PeekMessageW*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterHotKey*(hWnd: HWND, id: int32, fsModifiers: UINT, vk: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterHotKey*(hWnd: HWND, id: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ExitWindowsEx*(uFlags: UINT, dwReason: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SwapMouseButton*(fSwap: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc SetUserObjectSecurity*( + hObj: HANDLE, pSIRequested: PSECURITY_INFORMATION, pSID: PSECURITY_DESCRIPTOR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetUserObjectSecurity*( + hObj: HANDLE, + pSIRequested: PSECURITY_INFORMATION, + pSID: PSECURITY_DESCRIPTOR, + nLength: DWORD, + lpnLengthNeeded: LPDWORD, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetUserObjectInformationA*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetUserObjectInformationW*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetUserObjectInformationA*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetUserObjectInformationW*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsHungAppWindow*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DisableProcessWindowsGhosting*(): VOID {. + winapi, stdcall, dynlib: "user32", importc +.} + +proc RegisterWindowMessageA*( + lpString: LPCSTR +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterWindowMessageW*( + lpString: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc TrackMouseEvent*( + lpEventTrack: LPTRACKMOUSEEVENT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawEdge*( + hdc: HDC, qrc: LPRECT, edge: UINT, grfFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawFrameControl*( + P1: HDC, P2: LPRECT, P3: UINT, P4: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawCaption*( + hwnd: HWND, hdc: HDC, lprect: ptr RECT, flags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawAnimatedRects*( + hwnd: HWND, idAni: int32, lprcFrom: ptr RECT, lprcTo: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMessageA*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMessageW*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc TranslateMessage*( + lpMsg: ptr MSG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DispatchMessageA*( + lpMsg: ptr MSG +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DispatchMessageW*( + lpMsg: ptr MSG +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMessageQueue*( + cMessagesMax: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PeekMessageA*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PeekMessageW*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterHotKey*( + hWnd: HWND, id: int32, fsModifiers: UINT, vk: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterHotKey*( + hWnd: HWND, id: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ExitWindowsEx*( + uFlags: UINT, dwReason: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SwapMouseButton*( + fSwap: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetMessagePos*(): DWORD {.winapi, stdcall, dynlib: "user32", importc.} proc GetMessageTime*(): LONG {.winapi, stdcall, dynlib: "user32", importc.} proc GetMessageExtraInfo*(): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} proc GetUnpredictedMessagePos*(): DWORD {.winapi, stdcall, dynlib: "user32", importc.} proc IsWow64Message*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMessageExtraInfo*(lParam: LPARAM): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} -proc SendMessageA*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc SendMessageW*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc SendMessageTimeoutA*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, fuFlags: UINT, uTimeout: UINT, lpdwResult: PDWORD_PTR): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc SendMessageTimeoutW*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, fuFlags: UINT, uTimeout: UINT, lpdwResult: PDWORD_PTR): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc SendNotifyMessageA*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SendNotifyMessageW*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SendMessageCallbackA*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, lpResultCallBack: SENDASYNCPROC, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SendMessageCallbackW*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, lpResultCallBack: SENDASYNCPROC, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc BroadcastSystemMessageExA*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM, pbsmInfo: PBSMINFO): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} -proc BroadcastSystemMessageExW*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM, pbsmInfo: PBSMINFO): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} -proc BroadcastSystemMessageA*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} -proc BroadcastSystemMessageW*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterPowerSettingNotification*(hRecipient: HANDLE, PowerSettingGuid: LPCGUID, Flags: DWORD): HPOWERNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterPowerSettingNotification*(Handle: HPOWERNOTIFY): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterSuspendResumeNotification*(hRecipient: HANDLE, Flags: DWORD): HPOWERNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterSuspendResumeNotification*(Handle: HPOWERNOTIFY): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PostMessageA*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PostMessageW*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PostThreadMessageA*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PostThreadMessageW*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AttachThreadInput*(idAttach: DWORD, idAttachTo: DWORD, fAttach: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ReplyMessage*(lResult: LRESULT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc SetMessageExtraInfo*( + lParam: LPARAM +): LPARAM {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendMessageA*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendMessageW*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendMessageTimeoutA*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + fuFlags: UINT, + uTimeout: UINT, + lpdwResult: PDWORD_PTR, +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendMessageTimeoutW*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + fuFlags: UINT, + uTimeout: UINT, + lpdwResult: PDWORD_PTR, +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendNotifyMessageA*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendNotifyMessageW*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendMessageCallbackA*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + lpResultCallBack: SENDASYNCPROC, + dwData: ULONG_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendMessageCallbackW*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + lpResultCallBack: SENDASYNCPROC, + dwData: ULONG_PTR, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc BroadcastSystemMessageExA*( + flags: DWORD, + lpInfo: LPDWORD, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pbsmInfo: PBSMINFO, +): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc BroadcastSystemMessageExW*( + flags: DWORD, + lpInfo: LPDWORD, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pbsmInfo: PBSMINFO, +): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc BroadcastSystemMessageA*( + flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc BroadcastSystemMessageW*( + flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterPowerSettingNotification*( + hRecipient: HANDLE, PowerSettingGuid: LPCGUID, Flags: DWORD +): HPOWERNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterPowerSettingNotification*( + Handle: HPOWERNOTIFY +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterSuspendResumeNotification*( + hRecipient: HANDLE, Flags: DWORD +): HPOWERNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterSuspendResumeNotification*( + Handle: HPOWERNOTIFY +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PostMessageA*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PostMessageW*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PostThreadMessageA*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PostThreadMessageW*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AttachThreadInput*( + idAttach: DWORD, idAttachTo: DWORD, fAttach: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ReplyMessage*( + lResult: LRESULT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc WaitMessage*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc WaitForInputIdle*(hProcess: HANDLE, dwMilliseconds: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc DefWindowProcA*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc DefWindowProcW*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc PostQuitMessage*(nExitCode: int32): VOID {.winapi, stdcall, dynlib: "user32", importc.} +proc WaitForInputIdle*( + hProcess: HANDLE, dwMilliseconds: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefWindowProcA*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefWindowProcW*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc PostQuitMessage*( + nExitCode: int32 +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + proc InSendMessage*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InSendMessageEx*(lpReserved: LPVOID): DWORD {.winapi, stdcall, dynlib: "user32", importc.} +proc InSendMessageEx*( + lpReserved: LPVOID +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + proc GetDoubleClickTime*(): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDoubleClickTime*(P1: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterClassA*(lpWndClass: ptr WNDCLASSA): ATOM {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterClassW*(lpWndClass: ptr WNDCLASSW): ATOM {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterClassA*(lpClassName: LPCSTR, hInstance: HINSTANCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterClassW*(lpClassName: LPCWSTR, hInstance: HINSTANCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassInfoA*(hInstance: HINSTANCE, lpClassName: LPCSTR, lpWndClass: LPWNDCLASSA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassInfoW*(hInstance: HINSTANCE, lpClassName: LPCWSTR, lpWndClass: LPWNDCLASSW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterClassExA*(P1: ptr WNDCLASSEXA): ATOM {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterClassExW*(P1: ptr WNDCLASSEXW): ATOM {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassInfoExA*(hInstance: HINSTANCE, lpszClass: LPCSTR, lpwcx: LPWNDCLASSEXA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassInfoExW*(hInstance: HINSTANCE, lpszClass: LPCWSTR, lpwcx: LPWNDCLASSEXW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CallWindowProcA*(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc CallWindowProcW*(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterDeviceNotificationA*(hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD): HDEVNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterDeviceNotificationW*(hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD): HDEVNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterDeviceNotification*(Handle: HDEVNOTIFY): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateWindowExA*(dwExStyle: DWORD, lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateWindowExW*(dwExStyle: DWORD, lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, stdcall, dynlib: "user32", importc.} +proc SetDoubleClickTime*( + P1: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterClassA*( + lpWndClass: ptr WNDCLASSA +): ATOM {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterClassW*( + lpWndClass: ptr WNDCLASSW +): ATOM {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterClassA*( + lpClassName: LPCSTR, hInstance: HINSTANCE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterClassW*( + lpClassName: LPCWSTR, hInstance: HINSTANCE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassInfoA*( + hInstance: HINSTANCE, lpClassName: LPCSTR, lpWndClass: LPWNDCLASSA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassInfoW*( + hInstance: HINSTANCE, lpClassName: LPCWSTR, lpWndClass: LPWNDCLASSW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterClassExA*( + P1: ptr WNDCLASSEXA +): ATOM {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterClassExW*( + P1: ptr WNDCLASSEXW +): ATOM {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassInfoExA*( + hInstance: HINSTANCE, lpszClass: LPCSTR, lpwcx: LPWNDCLASSEXA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassInfoExW*( + hInstance: HINSTANCE, lpszClass: LPCWSTR, lpwcx: LPWNDCLASSEXW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CallWindowProcA*( + lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc CallWindowProcW*( + lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterDeviceNotificationA*( + hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD +): HDEVNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterDeviceNotificationW*( + hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD +): HDEVNOTIFY {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterDeviceNotification*( + Handle: HDEVNOTIFY +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateWindowExA*( + dwExStyle: DWORD, + lpClassName: LPCSTR, + lpWindowName: LPCSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateWindowExW*( + dwExStyle: DWORD, + lpClassName: LPCWSTR, + lpWindowName: LPCWSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + proc IsWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc IsMenu*(hMenu: HMENU): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsChild*(hWndParent: HWND, hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc IsChild*( + hWndParent: HWND, hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc DestroyWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShowWindow*(hWnd: HWND, nCmdShow: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AnimateWindow*(hWnd: HWND, dwTime: DWORD, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UpdateLayeredWindow*(hWnd: HWND, hdcDst: HDC, pptDst: ptr POINT, psize: ptr SIZE, hdcSrc: HDC, pptSrc: ptr POINT, crKey: COLORREF, pblend: ptr BLENDFUNCTION, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UpdateLayeredWindowIndirect*(hWnd: HWND, pULWInfo: ptr UPDATELAYEREDWINDOWINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetLayeredWindowAttributes*(hwnd: HWND, pcrKey: ptr COLORREF, pbAlpha: ptr BYTE, pdwFlags: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PrintWindow*(hwnd: HWND, hdcBlt: HDC, nFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetLayeredWindowAttributes*(hwnd: HWND, crKey: COLORREF, bAlpha: BYTE, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShowWindowAsync*(hWnd: HWND, nCmdShow: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc FlashWindow*(hWnd: HWND, bInvert: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc FlashWindowEx*(pfwi: PFLASHWINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShowOwnedPopups*(hWnd: HWND, fShow: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc ShowWindow*( + hWnd: HWND, nCmdShow: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AnimateWindow*( + hWnd: HWND, dwTime: DWORD, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UpdateLayeredWindow*( + hWnd: HWND, + hdcDst: HDC, + pptDst: ptr POINT, + psize: ptr SIZE, + hdcSrc: HDC, + pptSrc: ptr POINT, + crKey: COLORREF, + pblend: ptr BLENDFUNCTION, + dwFlags: DWORD, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UpdateLayeredWindowIndirect*( + hWnd: HWND, pULWInfo: ptr UPDATELAYEREDWINDOWINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetLayeredWindowAttributes*( + hwnd: HWND, pcrKey: ptr COLORREF, pbAlpha: ptr BYTE, pdwFlags: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PrintWindow*( + hwnd: HWND, hdcBlt: HDC, nFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetLayeredWindowAttributes*( + hwnd: HWND, crKey: COLORREF, bAlpha: BYTE, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ShowWindowAsync*( + hWnd: HWND, nCmdShow: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc FlashWindow*( + hWnd: HWND, bInvert: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc FlashWindowEx*( + pfwi: PFLASHWINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ShowOwnedPopups*( + hWnd: HWND, fShow: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc OpenIcon*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc CloseWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MoveWindow*(hWnd: HWND, X: int32, Y: int32, nWidth: int32, nHeight: int32, bRepaint: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowPos*(hWnd: HWND, hWndInsertAfter: HWND, X: int32, Y: int32, cx: int32, cy: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowPlacement*(hWnd: HWND, lpwndpl: ptr WINDOWPLACEMENT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowPlacement*(hWnd: HWND, lpwndpl: ptr WINDOWPLACEMENT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowDisplayAffinity*(hWnd: HWND, pdwAffinity: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowDisplayAffinity*(hWnd: HWND, dwAffinity: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc BeginDeferWindowPos*(nNumWindows: int32): HDWP {.winapi, stdcall, dynlib: "user32", importc.} -proc DeferWindowPos*(hWinPosInfo: HDWP, hWnd: HWND, hWndInsertAfter: HWND, x: int32, y: int32, cx: int32, cy: int32, uFlags: UINT): HDWP {.winapi, stdcall, dynlib: "user32", importc.} -proc EndDeferWindowPos*(hWinPosInfo: HDWP): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsWindowVisible*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc MoveWindow*( + hWnd: HWND, X: int32, Y: int32, nWidth: int32, nHeight: int32, bRepaint: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowPos*( + hWnd: HWND, + hWndInsertAfter: HWND, + X: int32, + Y: int32, + cx: int32, + cy: int32, + uFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowPlacement*( + hWnd: HWND, lpwndpl: ptr WINDOWPLACEMENT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowPlacement*( + hWnd: HWND, lpwndpl: ptr WINDOWPLACEMENT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowDisplayAffinity*( + hWnd: HWND, pdwAffinity: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowDisplayAffinity*( + hWnd: HWND, dwAffinity: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc BeginDeferWindowPos*( + nNumWindows: int32 +): HDWP {.winapi, stdcall, dynlib: "user32", importc.} + +proc DeferWindowPos*( + hWinPosInfo: HDWP, + hWnd: HWND, + hWndInsertAfter: HWND, + x: int32, + y: int32, + cx: int32, + cy: int32, + uFlags: UINT, +): HDWP {.winapi, stdcall, dynlib: "user32", importc.} + +proc EndDeferWindowPos*( + hWinPosInfo: HDWP +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsWindowVisible*( + hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc IsIconic*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc AnyPopup*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc BringWindowToTop*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc BringWindowToTop*( + hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc IsZoomed*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDialogParamA*(hInstance: HINSTANCE, lpTemplateName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDialogParamW*(hInstance: HINSTANCE, lpTemplateName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDialogIndirectParamA*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateDialogIndirectParamW*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc DialogBoxParamA*(hInstance: HINSTANCE, lpTemplateName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} -proc DialogBoxParamW*(hInstance: HINSTANCE, lpTemplateName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} -proc DialogBoxIndirectParamA*(hInstance: HINSTANCE, hDialogTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} -proc DialogBoxIndirectParamW*(hInstance: HINSTANCE, hDialogTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} -proc EndDialog*(hDlg: HWND, nResult: INT_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDlgItem*(hDlg: HWND, nIDDlgItem: int32): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDlgItemInt*(hDlg: HWND, nIDDlgItem: int32, uValue: UINT, bSigned: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDlgItemInt*(hDlg: HWND, nIDDlgItem: int32, lpTranslated: ptr WINBOOL, bSigned: WINBOOL): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDlgItemTextA*(hDlg: HWND, nIDDlgItem: int32, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDlgItemTextW*(hDlg: HWND, nIDDlgItem: int32, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDlgItemTextA*(hDlg: HWND, nIDDlgItem: int32, lpString: LPSTR, cchMax: int32): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDlgItemTextW*(hDlg: HWND, nIDDlgItem: int32, lpString: LPWSTR, cchMax: int32): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc CheckDlgButton*(hDlg: HWND, nIDButton: int32, uCheck: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CheckRadioButton*(hDlg: HWND, nIDFirstButton: int32, nIDLastButton: int32, nIDCheckButton: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsDlgButtonChecked*(hDlg: HWND, nIDButton: int32): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc SendDlgItemMessageA*(hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc SendDlgItemMessageW*(hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetNextDlgGroupItem*(hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc GetNextDlgTabItem*(hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL): HWND {.winapi, stdcall, dynlib: "user32", importc.} +proc CreateDialogParamA*( + hInstance: HINSTANCE, + lpTemplateName: LPCSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDialogParamW*( + hInstance: HINSTANCE, + lpTemplateName: LPCWSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDialogIndirectParamA*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateDialogIndirectParamW*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc DialogBoxParamA*( + hInstance: HINSTANCE, + lpTemplateName: LPCSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc DialogBoxParamW*( + hInstance: HINSTANCE, + lpTemplateName: LPCWSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc DialogBoxIndirectParamA*( + hInstance: HINSTANCE, + hDialogTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc DialogBoxIndirectParamW*( + hInstance: HINSTANCE, + hDialogTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, +): INT_PTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc EndDialog*( + hDlg: HWND, nResult: INT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetDlgItem*( + hDlg: HWND, nIDDlgItem: int32 +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetDlgItemInt*( + hDlg: HWND, nIDDlgItem: int32, uValue: UINT, bSigned: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetDlgItemInt*( + hDlg: HWND, nIDDlgItem: int32, lpTranslated: ptr WINBOOL, bSigned: WINBOOL +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetDlgItemTextA*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetDlgItemTextW*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetDlgItemTextA*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPSTR, cchMax: int32 +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetDlgItemTextW*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPWSTR, cchMax: int32 +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc CheckDlgButton*( + hDlg: HWND, nIDButton: int32, uCheck: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CheckRadioButton*( + hDlg: HWND, nIDFirstButton: int32, nIDLastButton: int32, nIDCheckButton: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsDlgButtonChecked*( + hDlg: HWND, nIDButton: int32 +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendDlgItemMessageA*( + hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendDlgItemMessageW*( + hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetNextDlgGroupItem*( + hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetNextDlgTabItem*( + hDlg: HWND, hCtl: HWND, bPrevious: WINBOOL +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + proc GetDlgCtrlID*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc.} proc GetDialogBaseUnits*(): LONG32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DefDlgProcA*(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc DefDlgProcW*(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc CallMsgFilterA*(lpMsg: LPMSG, nCode: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CallMsgFilterW*(lpMsg: LPMSG, nCode: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc OpenClipboard*(hWndNewOwner: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc DefDlgProcA*( + hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefDlgProcW*( + hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc CallMsgFilterA*( + lpMsg: LPMSG, nCode: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CallMsgFilterW*( + lpMsg: LPMSG, nCode: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc OpenClipboard*( + hWndNewOwner: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc CloseClipboard*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc GetClipboardSequenceNumber*(): DWORD {.winapi, stdcall, dynlib: "user32", importc.} proc GetClipboardOwner*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc SetClipboardViewer*(hWndNewViewer: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} +proc SetClipboardViewer*( + hWndNewViewer: HWND +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + proc GetClipboardViewer*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeClipboardChain*(hWndRemove: HWND, hWndNewNext: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetClipboardData*(uFormat: UINT, hMem: HANDLE): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClipboardData*(uFormat: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterClipboardFormatA*(lpszFormat: LPCSTR): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterClipboardFormatW*(lpszFormat: LPCWSTR): UINT {.winapi, stdcall, dynlib: "user32", importc.} +proc ChangeClipboardChain*( + hWndRemove: HWND, hWndNewNext: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetClipboardData*( + uFormat: UINT, hMem: HANDLE +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClipboardData*( + uFormat: UINT +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterClipboardFormatA*( + lpszFormat: LPCSTR +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterClipboardFormatW*( + lpszFormat: LPCWSTR +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + proc CountClipboardFormats*(): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumClipboardFormats*(format: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClipboardFormatNameA*(format: UINT, lpszFormatName: LPSTR, cchMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClipboardFormatNameW*(format: UINT, lpszFormatName: LPWSTR, cchMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc EnumClipboardFormats*( + format: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClipboardFormatNameA*( + format: UINT, lpszFormatName: LPSTR, cchMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClipboardFormatNameW*( + format: UINT, lpszFormatName: LPWSTR, cchMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc EmptyClipboard*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsClipboardFormatAvailable*(format: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPriorityClipboardFormat*(paFormatPriorityList: ptr UINT, cFormats: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc IsClipboardFormatAvailable*( + format: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPriorityClipboardFormat*( + paFormatPriorityList: ptr UINT, cFormats: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc GetOpenClipboardWindow*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc AddClipboardFormatListener*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RemoveClipboardFormatListener*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetUpdatedClipboardFormats*(lpuiFormats: PUINT, cFormats: UINT, pcFormatsOut: PUINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CharToOemA*(lpszSrc: LPCSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CharToOemW*(lpszSrc: LPCWSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc OemToCharA*(lpszSrc: LPCSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc OemToCharW*(lpszSrc: LPCSTR, lpszDst: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CharToOemBuffA*(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CharToOemBuffW*(lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc OemToCharBuffA*(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc OemToCharBuffW*(lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc AddClipboardFormatListener*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RemoveClipboardFormatListener*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetUpdatedClipboardFormats*( + lpuiFormats: PUINT, cFormats: UINT, pcFormatsOut: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharToOemA*( + lpszSrc: LPCSTR, lpszDst: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharToOemW*( + lpszSrc: LPCWSTR, lpszDst: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc OemToCharA*( + lpszSrc: LPCSTR, lpszDst: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc OemToCharW*( + lpszSrc: LPCSTR, lpszDst: LPWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharToOemBuffA*( + lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharToOemBuffW*( + lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc OemToCharBuffA*( + lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc OemToCharBuffW*( + lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc CharUpperA*(lpsz: LPSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} proc CharUpperW*(lpsz: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc CharUpperBuffA*(lpsz: LPSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc CharUpperBuffW*(lpsz: LPWSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} +proc CharUpperBuffA*( + lpsz: LPSTR, cchLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharUpperBuffW*( + lpsz: LPWSTR, cchLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + proc CharLowerA*(lpsz: LPSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} proc CharLowerW*(lpsz: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc CharLowerBuffA*(lpsz: LPSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc CharLowerBuffW*(lpsz: LPWSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} +proc CharLowerBuffA*( + lpsz: LPSTR, cchLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharLowerBuffW*( + lpsz: LPWSTR, cchLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + proc CharNextA*(lpsz: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} proc CharNextW*(lpsz: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc CharPrevA*(lpszStart: LPCSTR, lpszCurrent: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc CharPrevW*(lpszStart: LPCWSTR, lpszCurrent: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc CharNextExA*(CodePage: WORD, lpCurrentChar: LPCSTR, dwFlags: DWORD): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc CharPrevExA*(CodePage: WORD, lpStart: LPCSTR, lpCurrentChar: LPCSTR, dwFlags: DWORD): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} -proc AnsiToOem*(lpszSrc: LPCSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemA".} -proc OemToAnsi*(lpszSrc: LPCSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharA".} -proc AnsiToOemBuff*(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemBuffA".} -proc OemToAnsiBuff*(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharBuffA".} -proc AnsiUpper*(lpsz: LPSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharUpperA".} -proc AnsiUpperBuff*(lpsz: LPSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharUpperBuffA".} -proc AnsiLower*(lpsz: LPSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharLowerA".} -proc AnsiLowerBuff*(lpsz: LPSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharLowerBuffA".} -proc AnsiNext*(lpsz: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharNextA".} -proc AnsiPrev*(lpszStart: LPCSTR, lpszCurrent: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharPrevA".} +proc CharPrevA*( + lpszStart: LPCSTR, lpszCurrent: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharPrevW*( + lpszStart: LPCWSTR, lpszCurrent: LPCWSTR +): LPWSTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharNextExA*( + CodePage: WORD, lpCurrentChar: LPCSTR, dwFlags: DWORD +): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc CharPrevExA*( + CodePage: WORD, lpStart: LPCSTR, lpCurrentChar: LPCSTR, dwFlags: DWORD +): LPSTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc AnsiToOem*( + lpszSrc: LPCSTR, lpszDst: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemA".} + +proc OemToAnsi*( + lpszSrc: LPCSTR, lpszDst: LPSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharA".} + +proc AnsiToOemBuff*( + lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemBuffA".} + +proc OemToAnsiBuff*( + lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharBuffA".} + +proc AnsiUpper*( + lpsz: LPSTR +): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharUpperA".} + +proc AnsiUpperBuff*( + lpsz: LPSTR, cchLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharUpperBuffA".} + +proc AnsiLower*( + lpsz: LPSTR +): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharLowerA".} + +proc AnsiLowerBuff*( + lpsz: LPSTR, cchLength: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharLowerBuffA".} + +proc AnsiNext*( + lpsz: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharNextA".} + +proc AnsiPrev*( + lpszStart: LPCSTR, lpszCurrent: LPCSTR +): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharPrevA".} + proc IsCharAlphaA*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc IsCharAlphaW*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsCharAlphaNumericA*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsCharAlphaNumericW*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc IsCharAlphaNumericA*( + ch: CHAR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsCharAlphaNumericW*( + ch: WCHAR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc IsCharUpperA*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc IsCharUpperW*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc IsCharLowerA*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} @@ -4406,618 +5328,2506 @@ proc GetFocus*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc GetKBCodePage*(): UINT {.winapi, stdcall, dynlib: "user32", importc.} proc GetKeyState*(nVirtKey: int32): SHORT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetAsyncKeyState*(vKey: int32): SHORT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyboardState*(lpKeyState: PBYTE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetKeyboardState*(lpKeyState: LPBYTE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyNameTextA*(lParam: LONG, lpString: LPSTR, cchSize: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyNameTextW*(lParam: LONG, lpString: LPWSTR, cchSize: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetKeyboardType*(nTypeFlag: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc ToAscii*(uVirtKey: UINT, uScanCode: UINT, lpKeyState: ptr BYTE, lpChar: LPWORD, uFlags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc ToAsciiEx*(uVirtKey: UINT, uScanCode: UINT, lpKeyState: ptr BYTE, lpChar: LPWORD, uFlags: UINT, dwhkl: HKL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc ToUnicode*(wVirtKey: UINT, wScanCode: UINT, lpKeyState: ptr BYTE, pwszBuff: LPWSTR, cchBuff: int32, wFlags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc GetAsyncKeyState*( + vKey: int32 +): SHORT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyboardState*( + lpKeyState: PBYTE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetKeyboardState*( + lpKeyState: LPBYTE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyNameTextA*( + lParam: LONG, lpString: LPSTR, cchSize: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyNameTextW*( + lParam: LONG, lpString: LPWSTR, cchSize: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetKeyboardType*( + nTypeFlag: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc ToAscii*( + uVirtKey: UINT, uScanCode: UINT, lpKeyState: ptr BYTE, lpChar: LPWORD, uFlags: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc ToAsciiEx*( + uVirtKey: UINT, + uScanCode: UINT, + lpKeyState: ptr BYTE, + lpChar: LPWORD, + uFlags: UINT, + dwhkl: HKL, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc ToUnicode*( + wVirtKey: UINT, + wScanCode: UINT, + lpKeyState: ptr BYTE, + pwszBuff: LPWSTR, + cchBuff: int32, + wFlags: UINT, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc OemKeyScan*(wOemChar: WORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} proc VkKeyScanA*(ch: CHAR): SHORT {.winapi, stdcall, dynlib: "user32", importc.} proc VkKeyScanW*(ch: WCHAR): SHORT {.winapi, stdcall, dynlib: "user32", importc.} -proc VkKeyScanExA*(ch: CHAR, dwhkl: HKL): SHORT {.winapi, stdcall, dynlib: "user32", importc.} -proc VkKeyScanExW*(ch: WCHAR, dwhkl: HKL): SHORT {.winapi, stdcall, dynlib: "user32", importc.} -proc keybd_event*(bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: ULONG_PTR): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc mouse_event*(dwFlags: DWORD, dx: DWORD, dy: DWORD, dwData: DWORD, dwExtraInfo: ULONG_PTR): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc SendInput*(cInputs: UINT, pInputs: LPINPUT, cbSize: int32): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetTouchInputInfo*(hTouchInput: HTOUCHINPUT, cInputs: UINT, pInputs: PTOUCHINPUT, cbSize: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CloseTouchInputHandle*(hTouchInput: HTOUCHINPUT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterTouchWindow*(hwnd: HWND, ulFlags: ULONG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterTouchWindow*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsTouchWindow*(hwnd: HWND, pulFlags: PULONG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InitializeTouchInjection*(maxCount: UINT32, dwMode: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InjectTouchInput*(count: UINT32, contacts: ptr POINTER_TOUCH_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerType*(pointerId: UINT32, pointerType: ptr POINTER_INPUT_TYPE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerCursorId*(pointerId: UINT32, cursorId: ptr UINT32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerInfo*(pointerId: UINT32, pointerInfo: ptr POINTER_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerInfoHistory*(pointerId: UINT32, entriesCount: ptr UINT32, pointerInfo: ptr POINTER_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerFrameInfo*(pointerId: UINT32, pointerCount: ptr UINT32, pointerInfo: ptr POINTER_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerFrameInfoHistory*(pointerId: UINT32, entriesCount: ptr UINT32, pointerCount: ptr UINT32, pointerInfo: ptr POINTER_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerTouchInfo*(pointerId: UINT32, touchInfo: ptr POINTER_TOUCH_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerTouchInfoHistory*(pointerId: UINT32, entriesCount: ptr UINT32, touchInfo: ptr POINTER_TOUCH_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerFrameTouchInfo*(pointerId: UINT32, pointerCount: ptr UINT32, touchInfo: ptr POINTER_TOUCH_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerFrameTouchInfoHistory*(pointerId: UINT32, entriesCount: ptr UINT32, pointerCount: ptr UINT32, touchInfo: ptr POINTER_TOUCH_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerPenInfo*(pointerId: UINT32, penInfo: ptr POINTER_PEN_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerPenInfoHistory*(pointerId: UINT32, entriesCount: ptr UINT32, penInfo: ptr POINTER_PEN_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerFramePenInfo*(pointerId: UINT32, pointerCount: ptr UINT32, penInfo: ptr POINTER_PEN_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerFramePenInfoHistory*(pointerId: UINT32, entriesCount: ptr UINT32, pointerCount: ptr UINT32, penInfo: ptr POINTER_PEN_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SkipPointerFrameMessages*(pointerId: UINT32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterPointerInputTarget*(hwnd: HWND, pointerType: POINTER_INPUT_TYPE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UnregisterPointerInputTarget*(hwnd: HWND, pointerType: POINTER_INPUT_TYPE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnableMouseInPointer*(fEnable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc VkKeyScanExA*( + ch: CHAR, dwhkl: HKL +): SHORT {.winapi, stdcall, dynlib: "user32", importc.} + +proc VkKeyScanExW*( + ch: WCHAR, dwhkl: HKL +): SHORT {.winapi, stdcall, dynlib: "user32", importc.} + +proc keybd_event*( + bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: ULONG_PTR +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + +proc mouse_event*( + dwFlags: DWORD, dx: DWORD, dy: DWORD, dwData: DWORD, dwExtraInfo: ULONG_PTR +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + +proc SendInput*( + cInputs: UINT, pInputs: LPINPUT, cbSize: int32 +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetTouchInputInfo*( + hTouchInput: HTOUCHINPUT, cInputs: UINT, pInputs: PTOUCHINPUT, cbSize: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CloseTouchInputHandle*( + hTouchInput: HTOUCHINPUT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterTouchWindow*( + hwnd: HWND, ulFlags: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterTouchWindow*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsTouchWindow*( + hwnd: HWND, pulFlags: PULONG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InitializeTouchInjection*( + maxCount: UINT32, dwMode: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InjectTouchInput*( + count: UINT32, contacts: ptr POINTER_TOUCH_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerType*( + pointerId: UINT32, pointerType: ptr POINTER_INPUT_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerCursorId*( + pointerId: UINT32, cursorId: ptr UINT32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerInfo*( + pointerId: UINT32, pointerInfo: ptr POINTER_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerInfoHistory*( + pointerId: UINT32, entriesCount: ptr UINT32, pointerInfo: ptr POINTER_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerFrameInfo*( + pointerId: UINT32, pointerCount: ptr UINT32, pointerInfo: ptr POINTER_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerFrameInfoHistory*( + pointerId: UINT32, + entriesCount: ptr UINT32, + pointerCount: ptr UINT32, + pointerInfo: ptr POINTER_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerTouchInfo*( + pointerId: UINT32, touchInfo: ptr POINTER_TOUCH_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerTouchInfoHistory*( + pointerId: UINT32, entriesCount: ptr UINT32, touchInfo: ptr POINTER_TOUCH_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerFrameTouchInfo*( + pointerId: UINT32, pointerCount: ptr UINT32, touchInfo: ptr POINTER_TOUCH_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerFrameTouchInfoHistory*( + pointerId: UINT32, + entriesCount: ptr UINT32, + pointerCount: ptr UINT32, + touchInfo: ptr POINTER_TOUCH_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerPenInfo*( + pointerId: UINT32, penInfo: ptr POINTER_PEN_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerPenInfoHistory*( + pointerId: UINT32, entriesCount: ptr UINT32, penInfo: ptr POINTER_PEN_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerFramePenInfo*( + pointerId: UINT32, pointerCount: ptr UINT32, penInfo: ptr POINTER_PEN_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerFramePenInfoHistory*( + pointerId: UINT32, + entriesCount: ptr UINT32, + pointerCount: ptr UINT32, + penInfo: ptr POINTER_PEN_INFO, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SkipPointerFrameMessages*( + pointerId: UINT32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterPointerInputTarget*( + hwnd: HWND, pointerType: POINTER_INPUT_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnregisterPointerInputTarget*( + hwnd: HWND, pointerType: POINTER_INPUT_TYPE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnableMouseInPointer*( + fEnable: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc IsMouseInPointerEnabled*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterTouchHitTestingWindow*(hwnd: HWND, value: ULONG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EvaluateProximityToRect*(controlBoundingBox: ptr RECT, pHitTestingInput: ptr TOUCH_HIT_TESTING_INPUT, pProximityEval: ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EvaluateProximityToPolygon*(numVertices: UINT32, controlPolygon: ptr POINT, pHitTestingInput: ptr TOUCH_HIT_TESTING_INPUT, pProximityEval: ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PackTouchHitTestingProximityEvaluation*(pHitTestingInput: ptr TOUCH_HIT_TESTING_INPUT, pProximityEval: ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowFeedbackSetting*(hwnd: HWND, feedback: FEEDBACK_TYPE, dwFlags: DWORD, pSize: ptr UINT32, config: pointer): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowFeedbackSetting*(hwnd: HWND, feedback: FEEDBACK_TYPE, dwFlags: DWORD, size: UINT32, configuration: pointer): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetLastInputInfo*(plii: PLASTINPUTINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MapVirtualKeyA*(uCode: UINT, uMapType: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc MapVirtualKeyW*(uCode: UINT, uMapType: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc MapVirtualKeyExA*(uCode: UINT, uMapType: UINT, dwhkl: HKL): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc MapVirtualKeyExW*(uCode: UINT, uMapType: UINT, dwhkl: HKL): UINT {.winapi, stdcall, dynlib: "user32", importc.} +proc RegisterTouchHitTestingWindow*( + hwnd: HWND, value: ULONG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EvaluateProximityToRect*( + controlBoundingBox: ptr RECT, + pHitTestingInput: ptr TOUCH_HIT_TESTING_INPUT, + pProximityEval: ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EvaluateProximityToPolygon*( + numVertices: UINT32, + controlPolygon: ptr POINT, + pHitTestingInput: ptr TOUCH_HIT_TESTING_INPUT, + pProximityEval: ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PackTouchHitTestingProximityEvaluation*( + pHitTestingInput: ptr TOUCH_HIT_TESTING_INPUT, + pProximityEval: ptr TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowFeedbackSetting*( + hwnd: HWND, + feedback: FEEDBACK_TYPE, + dwFlags: DWORD, + pSize: ptr UINT32, + config: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowFeedbackSetting*( + hwnd: HWND, + feedback: FEEDBACK_TYPE, + dwFlags: DWORD, + size: UINT32, + configuration: pointer, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetLastInputInfo*( + plii: PLASTINPUTINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc MapVirtualKeyA*( + uCode: UINT, uMapType: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc MapVirtualKeyW*( + uCode: UINT, uMapType: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc MapVirtualKeyExA*( + uCode: UINT, uMapType: UINT, dwhkl: HKL +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc MapVirtualKeyExW*( + uCode: UINT, uMapType: UINT, dwhkl: HKL +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + proc GetInputState*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc GetQueueStatus*(flags: UINT): DWORD {.winapi, stdcall, dynlib: "user32", importc.} proc GetCapture*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc SetCapture*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc ReleaseCapture*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MsgWaitForMultipleObjects*(nCount: DWORD, pHandles: ptr HANDLE, fWaitAll: WINBOOL, dwMilliseconds: DWORD, dwWakeMask: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc MsgWaitForMultipleObjectsEx*(nCount: DWORD, pHandles: ptr HANDLE, dwMilliseconds: DWORD, dwWakeMask: DWORD, dwFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc SetTimer*(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC): UINT_PTR {.winapi, stdcall, dynlib: "user32", importc.} -proc KillTimer*(hWnd: HWND, uIDEvent: UINT_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsWindowUnicode*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnableWindow*(hWnd: HWND, bEnable: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsWindowEnabled*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadAcceleratorsA*(hInstance: HINSTANCE, lpTableName: LPCSTR): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadAcceleratorsW*(hInstance: HINSTANCE, lpTableName: LPCWSTR): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateAcceleratorTableA*(paccel: LPACCEL, cAccel: int32): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateAcceleratorTableW*(paccel: LPACCEL, cAccel: int32): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} -proc DestroyAcceleratorTable*(hAccel: HACCEL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CopyAcceleratorTableA*(hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc CopyAcceleratorTableW*(hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc TranslateAcceleratorA*(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc TranslateAcceleratorW*(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc SetCoalescableTimer*(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC, uToleranceDelay: ULONG): UINT_PTR {.winapi, stdcall, dynlib: "user32", importc.} -proc GetSystemMetrics*(nIndex: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadMenuA*(hInstance: HINSTANCE, lpMenuName: LPCSTR): HMENU {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadMenuW*(hInstance: HINSTANCE, lpMenuName: LPCWSTR): HMENU {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadMenuIndirectA*(lpMenuTemplate: ptr MENUTEMPLATEA): HMENU {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadMenuIndirectW*(lpMenuTemplate: ptr MENUTEMPLATEW): HMENU {.winapi, stdcall, dynlib: "user32", importc.} +proc MsgWaitForMultipleObjects*( + nCount: DWORD, + pHandles: ptr HANDLE, + fWaitAll: WINBOOL, + dwMilliseconds: DWORD, + dwWakeMask: DWORD, +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc MsgWaitForMultipleObjectsEx*( + nCount: DWORD, + pHandles: ptr HANDLE, + dwMilliseconds: DWORD, + dwWakeMask: DWORD, + dwFlags: DWORD, +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetTimer*( + hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC +): UINT_PTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc KillTimer*( + hWnd: HWND, uIDEvent: UINT_PTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsWindowUnicode*( + hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnableWindow*( + hWnd: HWND, bEnable: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsWindowEnabled*( + hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadAcceleratorsA*( + hInstance: HINSTANCE, lpTableName: LPCSTR +): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadAcceleratorsW*( + hInstance: HINSTANCE, lpTableName: LPCWSTR +): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateAcceleratorTableA*( + paccel: LPACCEL, cAccel: int32 +): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateAcceleratorTableW*( + paccel: LPACCEL, cAccel: int32 +): HACCEL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DestroyAcceleratorTable*( + hAccel: HACCEL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CopyAcceleratorTableA*( + hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc CopyAcceleratorTableW*( + hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc TranslateAcceleratorA*( + hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc TranslateAcceleratorW*( + hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetCoalescableTimer*( + hWnd: HWND, + nIDEvent: UINT_PTR, + uElapse: UINT, + lpTimerFunc: TIMERPROC, + uToleranceDelay: ULONG, +): UINT_PTR {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetSystemMetrics*( + nIndex: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadMenuA*( + hInstance: HINSTANCE, lpMenuName: LPCSTR +): HMENU {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadMenuW*( + hInstance: HINSTANCE, lpMenuName: LPCWSTR +): HMENU {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadMenuIndirectA*( + lpMenuTemplate: ptr MENUTEMPLATEA +): HMENU {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadMenuIndirectW*( + lpMenuTemplate: ptr MENUTEMPLATEW +): HMENU {.winapi, stdcall, dynlib: "user32", importc.} + proc GetMenu*(hWnd: HWND): HMENU {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenu*(hWnd: HWND, hMenu: HMENU): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeMenuA*(hMenu: HMENU, cmd: UINT, lpszNewItem: LPCSTR, cmdInsert: UINT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeMenuW*(hMenu: HMENU, cmd: UINT, lpszNewItem: LPCWSTR, cmdInsert: UINT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc HiliteMenuItem*(hWnd: HWND, hMenu: HMENU, uIDHiliteItem: UINT, uHilite: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuStringA*(hMenu: HMENU, uIDItem: UINT, lpString: LPSTR, cchMax: int32, flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuStringW*(hMenu: HMENU, uIDItem: UINT, lpString: LPWSTR, cchMax: int32, flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuState*(hMenu: HMENU, uId: UINT, uFlags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} +proc SetMenu*( + hWnd: HWND, hMenu: HMENU +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeMenuA*( + hMenu: HMENU, cmd: UINT, lpszNewItem: LPCSTR, cmdInsert: UINT, flags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeMenuW*( + hMenu: HMENU, cmd: UINT, lpszNewItem: LPCWSTR, cmdInsert: UINT, flags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc HiliteMenuItem*( + hWnd: HWND, hMenu: HMENU, uIDHiliteItem: UINT, uHilite: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuStringA*( + hMenu: HMENU, uIDItem: UINT, lpString: LPSTR, cchMax: int32, flags: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuStringW*( + hMenu: HMENU, uIDItem: UINT, lpString: LPWSTR, cchMax: int32, flags: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuState*( + hMenu: HMENU, uId: UINT, uFlags: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + proc DrawMenuBar*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetSystemMenu*(hWnd: HWND, bRevert: WINBOOL): HMENU {.winapi, stdcall, dynlib: "user32", importc.} +proc GetSystemMenu*( + hWnd: HWND, bRevert: WINBOOL +): HMENU {.winapi, stdcall, dynlib: "user32", importc.} + proc CreateMenu*(): HMENU {.winapi, stdcall, dynlib: "user32", importc.} proc CreatePopupMenu*(): HMENU {.winapi, stdcall, dynlib: "user32", importc.} proc DestroyMenu*(hMenu: HMENU): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CheckMenuItem*(hMenu: HMENU, uIDCheckItem: UINT, uCheck: UINT): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc EnableMenuItem*(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetSubMenu*(hMenu: HMENU, nPos: int32): HMENU {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuItemID*(hMenu: HMENU, nPos: int32): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuItemCount*(hMenu: HMENU): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc InsertMenuA*(hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InsertMenuW*(hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AppendMenuA*(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AppendMenuW*(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ModifyMenuA*(hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ModifyMenuW*(hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RemoveMenu*(hMenu: HMENU, uPosition: UINT, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DeleteMenu*(hMenu: HMENU, uPosition: UINT, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenuItemBitmaps*(hMenu: HMENU, uPosition: UINT, uFlags: UINT, hBitmapUnchecked: HBITMAP, hBitmapChecked: HBITMAP): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc CheckMenuItem*( + hMenu: HMENU, uIDCheckItem: UINT, uCheck: UINT +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnableMenuItem*( + hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetSubMenu*( + hMenu: HMENU, nPos: int32 +): HMENU {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuItemID*( + hMenu: HMENU, nPos: int32 +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuItemCount*( + hMenu: HMENU +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc InsertMenuA*( + hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InsertMenuW*( + hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AppendMenuA*( + hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AppendMenuW*( + hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ModifyMenuA*( + hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ModifyMenuW*( + hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RemoveMenu*( + hMenu: HMENU, uPosition: UINT, uFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DeleteMenu*( + hMenu: HMENU, uPosition: UINT, uFlags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMenuItemBitmaps*( + hMenu: HMENU, + uPosition: UINT, + uFlags: UINT, + hBitmapUnchecked: HBITMAP, + hBitmapChecked: HBITMAP, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetMenuCheckMarkDimensions*(): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc TrackPopupMenu*(hMenu: HMENU, uFlags: UINT, x: int32, y: int32, nReserved: int32, hWnd: HWND, prcRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc TrackPopupMenuEx*(P1: HMENU, P2: UINT, P3: int32, P4: int32, P5: HWND, P6: LPTPMPARAMS): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuInfo*(P1: HMENU, P2: LPMENUINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenuInfo*(P1: HMENU, P2: LPCMENUINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc TrackPopupMenu*( + hMenu: HMENU, + uFlags: UINT, + x: int32, + y: int32, + nReserved: int32, + hWnd: HWND, + prcRect: ptr RECT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc TrackPopupMenuEx*( + P1: HMENU, P2: UINT, P3: int32, P4: int32, P5: HWND, P6: LPTPMPARAMS +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuInfo*( + P1: HMENU, P2: LPMENUINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMenuInfo*( + P1: HMENU, P2: LPCMENUINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc EndMenu*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CalculatePopupWindowPosition*(anchorPoint: ptr POINT, windowSize: ptr SIZE, flags: UINT, excludeRect: ptr RECT, popupWindowPosition: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InsertMenuItemA*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InsertMenuItemW*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuItemInfoA*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuItemInfoW*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenuItemInfoA*(hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenuItemInfoW*(hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuDefaultItem*(hMenu: HMENU, fByPos: UINT, gmdiFlags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenuDefaultItem*(hMenu: HMENU, uItem: UINT, fByPos: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuItemRect*(hWnd: HWND, hMenu: HMENU, uItem: UINT, lprcItem: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MenuItemFromPoint*(hWnd: HWND, hMenu: HMENU, ptScreen: POINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DragObject*(hwndParent: HWND, hwndFrom: HWND, fmt: UINT, data: ULONG_PTR, hcur: HCURSOR): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc DragDetect*(hwnd: HWND, pt: POINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawIcon*(hDC: HDC, X: int32, Y: int32, hIcon: HICON): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawTextA*(hdc: HDC, lpchText: LPCSTR, cchText: int32, lprc: LPRECT, format: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawTextW*(hdc: HDC, lpchText: LPCWSTR, cchText: int32, lprc: LPRECT, format: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawTextExA*(hdc: HDC, lpchText: LPSTR, cchText: int32, lprc: LPRECT, format: UINT, lpdtp: LPDRAWTEXTPARAMS): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawTextExW*(hdc: HDC, lpchText: LPWSTR, cchText: int32, lprc: LPRECT, format: UINT, lpdtp: LPDRAWTEXTPARAMS): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GrayStringA*(hDC: HDC, hBrush: HBRUSH, lpOutputFunc: GRAYSTRINGPROC, lpData: LPARAM, nCount: int32, X: int32, Y: int32, nWidth: int32, nHeight: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GrayStringW*(hDC: HDC, hBrush: HBRUSH, lpOutputFunc: GRAYSTRINGPROC, lpData: LPARAM, nCount: int32, X: int32, Y: int32, nWidth: int32, nHeight: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawStateA*(hdc: HDC, hbrFore: HBRUSH, qfnCallBack: DRAWSTATEPROC, lData: LPARAM, wData: WPARAM, x: int32, y: int32, cx: int32, cy: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawStateW*(hdc: HDC, hbrFore: HBRUSH, qfnCallBack: DRAWSTATEPROC, lData: LPARAM, wData: WPARAM, x: int32, y: int32, cx: int32, cy: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc TabbedTextOutA*(hdc: HDC, x: int32, y: int32, lpString: LPCSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT, nTabOrigin: int32): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc TabbedTextOutW*(hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT, nTabOrigin: int32): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc GetTabbedTextExtentA*(hdc: HDC, lpString: LPCSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc GetTabbedTextExtentW*(hdc: HDC, lpString: LPCWSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT): DWORD {.winapi, stdcall, dynlib: "user32", importc.} +proc CalculatePopupWindowPosition*( + anchorPoint: ptr POINT, + windowSize: ptr SIZE, + flags: UINT, + excludeRect: ptr RECT, + popupWindowPosition: ptr RECT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InsertMenuItemA*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InsertMenuItemW*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuItemInfoA*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuItemInfoW*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMenuItemInfoA*( + hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMenuItemInfoW*( + hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuDefaultItem*( + hMenu: HMENU, fByPos: UINT, gmdiFlags: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMenuDefaultItem*( + hMenu: HMENU, uItem: UINT, fByPos: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuItemRect*( + hWnd: HWND, hMenu: HMENU, uItem: UINT, lprcItem: LPRECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc MenuItemFromPoint*( + hWnd: HWND, hMenu: HMENU, ptScreen: POINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DragObject*( + hwndParent: HWND, hwndFrom: HWND, fmt: UINT, data: ULONG_PTR, hcur: HCURSOR +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc DragDetect*( + hwnd: HWND, pt: POINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawIcon*( + hDC: HDC, X: int32, Y: int32, hIcon: HICON +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawTextA*( + hdc: HDC, lpchText: LPCSTR, cchText: int32, lprc: LPRECT, format: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawTextW*( + hdc: HDC, lpchText: LPCWSTR, cchText: int32, lprc: LPRECT, format: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawTextExA*( + hdc: HDC, + lpchText: LPSTR, + cchText: int32, + lprc: LPRECT, + format: UINT, + lpdtp: LPDRAWTEXTPARAMS, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawTextExW*( + hdc: HDC, + lpchText: LPWSTR, + cchText: int32, + lprc: LPRECT, + format: UINT, + lpdtp: LPDRAWTEXTPARAMS, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GrayStringA*( + hDC: HDC, + hBrush: HBRUSH, + lpOutputFunc: GRAYSTRINGPROC, + lpData: LPARAM, + nCount: int32, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GrayStringW*( + hDC: HDC, + hBrush: HBRUSH, + lpOutputFunc: GRAYSTRINGPROC, + lpData: LPARAM, + nCount: int32, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawStateA*( + hdc: HDC, + hbrFore: HBRUSH, + qfnCallBack: DRAWSTATEPROC, + lData: LPARAM, + wData: WPARAM, + x: int32, + y: int32, + cx: int32, + cy: int32, + uFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawStateW*( + hdc: HDC, + hbrFore: HBRUSH, + qfnCallBack: DRAWSTATEPROC, + lData: LPARAM, + wData: WPARAM, + x: int32, + y: int32, + cx: int32, + cy: int32, + uFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc TabbedTextOutA*( + hdc: HDC, + x: int32, + y: int32, + lpString: LPCSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, + nTabOrigin: int32, +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc TabbedTextOutW*( + hdc: HDC, + x: int32, + y: int32, + lpString: LPCWSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, + nTabOrigin: int32, +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetTabbedTextExtentA*( + hdc: HDC, + lpString: LPCSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetTabbedTextExtentW*( + hdc: HDC, + lpString: LPCWSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + proc UpdateWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc SetActiveWindow*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc GetForegroundWindow*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc PaintDesktop*(hdc: HDC): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SwitchToThisWindow*(hwnd: HWND, fUnknown: WINBOOL): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc SetForegroundWindow*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AllowSetForegroundWindow*(dwProcessId: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LockSetForegroundWindow*(uLockCode: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc SwitchToThisWindow*( + hwnd: HWND, fUnknown: WINBOOL +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetForegroundWindow*( + hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AllowSetForegroundWindow*( + dwProcessId: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LockSetForegroundWindow*( + uLockCode: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc WindowFromDC*(hDC: HDC): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc GetDC*(hWnd: HWND): HDC {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDCEx*(hWnd: HWND, hrgnClip: HRGN, flags: DWORD): HDC {.winapi, stdcall, dynlib: "user32", importc.} +proc GetDCEx*( + hWnd: HWND, hrgnClip: HRGN, flags: DWORD +): HDC {.winapi, stdcall, dynlib: "user32", importc.} + proc GetWindowDC*(hWnd: HWND): HDC {.winapi, stdcall, dynlib: "user32", importc.} -proc ReleaseDC*(hWnd: HWND, hDC: HDC): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc BeginPaint*(hWnd: HWND, lpPaint: LPPAINTSTRUCT): HDC {.winapi, stdcall, dynlib: "user32", importc.} -proc EndPaint*(hWnd: HWND, lpPaint: ptr PAINTSTRUCT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetUpdateRect*(hWnd: HWND, lpRect: LPRECT, bErase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetUpdateRgn*(hWnd: HWND, hRgn: HRGN, bErase: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowRgn*(hWnd: HWND, hRgn: HRGN, bRedraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowRgn*(hWnd: HWND, hRgn: HRGN): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowRgnBox*(hWnd: HWND, lprc: LPRECT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc ExcludeUpdateRgn*(hDC: HDC, hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc InvalidateRect*(hWnd: HWND, lpRect: ptr RECT, bErase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ValidateRect*(hWnd: HWND, lpRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InvalidateRgn*(hWnd: HWND, hRgn: HRGN, bErase: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ValidateRgn*(hWnd: HWND, hRgn: HRGN): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RedrawWindow*(hWnd: HWND, lprcUpdate: ptr RECT, hrgnUpdate: HRGN, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LockWindowUpdate*(hWndLock: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ScrollWindow*(hWnd: HWND, XAmount: int32, YAmount: int32, lpRect: ptr RECT, lpClipRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ScrollDC*(hDC: HDC, dx: int32, dy: int32, lprcScroll: ptr RECT, lprcClip: ptr RECT, hrgnUpdate: HRGN, lprcUpdate: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ScrollWindowEx*(hWnd: HWND, dx: int32, dy: int32, prcScroll: ptr RECT, prcClip: ptr RECT, hrgnUpdate: HRGN, prcUpdate: LPRECT, flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc SetScrollPos*(hWnd: HWND, nBar: int32, nPos: int32, bRedraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetScrollPos*(hWnd: HWND, nBar: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc SetScrollRange*(hWnd: HWND, nBar: int32, nMinPos: int32, nMaxPos: int32, bRedraw: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetScrollRange*(hWnd: HWND, nBar: int32, lpMinPos: LPINT, lpMaxPos: LPINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShowScrollBar*(hWnd: HWND, wBar: int32, bShow: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnableScrollBar*(hWnd: HWND, wSBflags: UINT, wArrows: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetPropA*(hWnd: HWND, lpString: LPCSTR, hData: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetPropW*(hWnd: HWND, lpString: LPCWSTR, hData: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPropA*(hWnd: HWND, lpString: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPropW*(hWnd: HWND, lpString: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc RemovePropA*(hWnd: HWND, lpString: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc RemovePropW*(hWnd: HWND, lpString: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumPropsExA*(hWnd: HWND, lpEnumFunc: PROPENUMPROCEXA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumPropsExW*(hWnd: HWND, lpEnumFunc: PROPENUMPROCEXW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumPropsA*(hWnd: HWND, lpEnumFunc: PROPENUMPROCA): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumPropsW*(hWnd: HWND, lpEnumFunc: PROPENUMPROCW): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowTextA*(hWnd: HWND, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowTextW*(hWnd: HWND, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowTextA*(hWnd: HWND, lpString: LPSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowTextW*(hWnd: HWND, lpString: LPWSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowTextLengthA*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowTextLengthW*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClientRect*(hWnd: HWND, lpRect: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowRect*(hWnd: HWND, lpRect: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AdjustWindowRect*(lpRect: LPRECT, dwStyle: DWORD, bMenu: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc AdjustWindowRectEx*(lpRect: LPRECT, dwStyle: DWORD, bMenu: WINBOOL, dwExStyle: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowContextHelpId*(P1: HWND, P2: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowContextHelpId*(P1: HWND): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc SetMenuContextHelpId*(P1: HMENU, P2: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuContextHelpId*(P1: HMENU): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc MessageBoxA*(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc MessageBoxW*(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc MessageBoxExA*(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT, wLanguageId: WORD): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc MessageBoxExW*(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT, wLanguageId: WORD): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc MessageBoxIndirectA*(lpmbp: ptr MSGBOXPARAMSA): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc MessageBoxIndirectW*(lpmbp: ptr MSGBOXPARAMSW): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc ReleaseDC*( + hWnd: HWND, hDC: HDC +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc BeginPaint*( + hWnd: HWND, lpPaint: LPPAINTSTRUCT +): HDC {.winapi, stdcall, dynlib: "user32", importc.} + +proc EndPaint*( + hWnd: HWND, lpPaint: ptr PAINTSTRUCT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetUpdateRect*( + hWnd: HWND, lpRect: LPRECT, bErase: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetUpdateRgn*( + hWnd: HWND, hRgn: HRGN, bErase: WINBOOL +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowRgn*( + hWnd: HWND, hRgn: HRGN, bRedraw: WINBOOL +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowRgn*( + hWnd: HWND, hRgn: HRGN +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowRgnBox*( + hWnd: HWND, lprc: LPRECT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc ExcludeUpdateRgn*( + hDC: HDC, hWnd: HWND +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc InvalidateRect*( + hWnd: HWND, lpRect: ptr RECT, bErase: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ValidateRect*( + hWnd: HWND, lpRect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InvalidateRgn*( + hWnd: HWND, hRgn: HRGN, bErase: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ValidateRgn*( + hWnd: HWND, hRgn: HRGN +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RedrawWindow*( + hWnd: HWND, lprcUpdate: ptr RECT, hrgnUpdate: HRGN, flags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LockWindowUpdate*( + hWndLock: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ScrollWindow*( + hWnd: HWND, XAmount: int32, YAmount: int32, lpRect: ptr RECT, lpClipRect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ScrollDC*( + hDC: HDC, + dx: int32, + dy: int32, + lprcScroll: ptr RECT, + lprcClip: ptr RECT, + hrgnUpdate: HRGN, + lprcUpdate: LPRECT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ScrollWindowEx*( + hWnd: HWND, + dx: int32, + dy: int32, + prcScroll: ptr RECT, + prcClip: ptr RECT, + hrgnUpdate: HRGN, + prcUpdate: LPRECT, + flags: UINT, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetScrollPos*( + hWnd: HWND, nBar: int32, nPos: int32, bRedraw: WINBOOL +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetScrollPos*( + hWnd: HWND, nBar: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetScrollRange*( + hWnd: HWND, nBar: int32, nMinPos: int32, nMaxPos: int32, bRedraw: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetScrollRange*( + hWnd: HWND, nBar: int32, lpMinPos: LPINT, lpMaxPos: LPINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ShowScrollBar*( + hWnd: HWND, wBar: int32, bShow: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnableScrollBar*( + hWnd: HWND, wSBflags: UINT, wArrows: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetPropA*( + hWnd: HWND, lpString: LPCSTR, hData: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetPropW*( + hWnd: HWND, lpString: LPCWSTR, hData: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPropA*( + hWnd: HWND, lpString: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPropW*( + hWnd: HWND, lpString: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc RemovePropA*( + hWnd: HWND, lpString: LPCSTR +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc RemovePropW*( + hWnd: HWND, lpString: LPCWSTR +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumPropsExA*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCEXA, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumPropsExW*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCEXW, lParam: LPARAM +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumPropsA*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCA +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumPropsW*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCW +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowTextA*( + hWnd: HWND, lpString: LPCSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowTextW*( + hWnd: HWND, lpString: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowTextA*( + hWnd: HWND, lpString: LPSTR, nMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowTextW*( + hWnd: HWND, lpString: LPWSTR, nMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowTextLengthA*( + hWnd: HWND +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowTextLengthW*( + hWnd: HWND +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClientRect*( + hWnd: HWND, lpRect: LPRECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowRect*( + hWnd: HWND, lpRect: LPRECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AdjustWindowRect*( + lpRect: LPRECT, dwStyle: DWORD, bMenu: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc AdjustWindowRectEx*( + lpRect: LPRECT, dwStyle: DWORD, bMenu: WINBOOL, dwExStyle: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowContextHelpId*( + P1: HWND, P2: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowContextHelpId*( + P1: HWND +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetMenuContextHelpId*( + P1: HMENU, P2: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuContextHelpId*( + P1: HMENU +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc MessageBoxA*( + hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc MessageBoxW*( + hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc MessageBoxExA*( + hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT, wLanguageId: WORD +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc MessageBoxExW*( + hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT, wLanguageId: WORD +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc MessageBoxIndirectA*( + lpmbp: ptr MSGBOXPARAMSA +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc MessageBoxIndirectW*( + lpmbp: ptr MSGBOXPARAMSW +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc MessageBeep*(uType: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc ShowCursor*(bShow: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc SetCursorPos*(X: int32, Y: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetCursor*(hCursor: HCURSOR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc GetCursorPos*(lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ClipCursor*(lpRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClipCursor*(lpRect: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc SetCursorPos*( + X: int32, Y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetCursor*( + hCursor: HCURSOR +): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetCursorPos*( + lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ClipCursor*( + lpRect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClipCursor*( + lpRect: LPRECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetCursor*(): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateCaret*(hWnd: HWND, hBitmap: HBITMAP, nWidth: int32, nHeight: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc CreateCaret*( + hWnd: HWND, hBitmap: HBITMAP, nWidth: int32, nHeight: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetCaretBlinkTime*(): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc SetCaretBlinkTime*(uMSeconds: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc SetCaretBlinkTime*( + uMSeconds: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc DestroyCaret*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc HideCaret*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc ShowCaret*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetCaretPos*(X: int32, Y: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetCaretPos*(lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ClientToScreen*(hWnd: HWND, lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ScreenToClient*(hWnd: HWND, lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MapWindowPoints*(hWndFrom: HWND, hWndTo: HWND, lpPoints: LPPOINT, cPoints: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc SetCaretPos*( + X: int32, Y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetCaretPos*( + lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ClientToScreen*( + hWnd: HWND, lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ScreenToClient*( + hWnd: HWND, lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc MapWindowPoints*( + hWndFrom: HWND, hWndTo: HWND, lpPoints: LPPOINT, cPoints: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc WindowFromPoint*(Point: POINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc ChildWindowFromPoint*(hWndParent: HWND, Point: POINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc ChildWindowFromPointEx*(hwnd: HWND, pt: POINT, flags: UINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc SetPhysicalCursorPos*(X: int32, Y: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPhysicalCursorPos*(lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LogicalToPhysicalPoint*(hWnd: HWND, lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PhysicalToLogicalPoint*(hWnd: HWND, lpPoint: LPPOINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc WindowFromPhysicalPoint*(Point: POINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} +proc ChildWindowFromPoint*( + hWndParent: HWND, Point: POINT +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChildWindowFromPointEx*( + hwnd: HWND, pt: POINT, flags: UINT +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetPhysicalCursorPos*( + X: int32, Y: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPhysicalCursorPos*( + lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LogicalToPhysicalPoint*( + hWnd: HWND, lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PhysicalToLogicalPoint*( + hWnd: HWND, lpPoint: LPPOINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc WindowFromPhysicalPoint*( + Point: POINT +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + proc GetSysColor*(nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc GetSysColorBrush*(nIndex: int32): HBRUSH {.winapi, stdcall, dynlib: "user32", importc.} -proc SetSysColors*(cElements: int32, lpaElements: ptr INT, lpaRgbValues: ptr COLORREF): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawFocusRect*(hDC: HDC, lprc: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc FillRect*(hDC: HDC, lprc: ptr RECT, hbr: HBRUSH): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc FrameRect*(hDC: HDC, lprc: ptr RECT, hbr: HBRUSH): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc InvertRect*(hDC: HDC, lprc: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetRect*(lprc: LPRECT, xLeft: int32, yTop: int32, xRight: int32, yBottom: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc GetSysColorBrush*( + nIndex: int32 +): HBRUSH {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetSysColors*( + cElements: int32, lpaElements: ptr INT, lpaRgbValues: ptr COLORREF +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawFocusRect*( + hDC: HDC, lprc: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc FillRect*( + hDC: HDC, lprc: ptr RECT, hbr: HBRUSH +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc FrameRect*( + hDC: HDC, lprc: ptr RECT, hbr: HBRUSH +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc InvertRect*( + hDC: HDC, lprc: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetRect*( + lprc: LPRECT, xLeft: int32, yTop: int32, xRight: int32, yBottom: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc SetRectEmpty*(lprc: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CopyRect*(lprcDst: LPRECT, lprcSrc: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc InflateRect*(lprc: LPRECT, dx: int32, dy: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IntersectRect*(lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UnionRect*(lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SubtractRect*(lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc OffsetRect*(lprc: LPRECT, dx: int32, dy: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsRectEmpty*(lprc: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EqualRect*(lprc1: ptr RECT, lprc2: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PtInRect*(lprc: ptr RECT, pt: POINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowWord*(hWnd: HWND, nIndex: int32): WORD {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowWord*(hWnd: HWND, nIndex: int32, wNewWord: WORD): WORD {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowLongA*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowLongW*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowLongA*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowLongW*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassWord*(hWnd: HWND, nIndex: int32): WORD {.winapi, stdcall, dynlib: "user32", importc.} -proc SetClassWord*(hWnd: HWND, nIndex: int32, wNewWord: WORD): WORD {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassLongA*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassLongW*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc SetClassLongA*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc SetClassLongW*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc GetProcessDefaultLayout*(pdwDefaultLayout: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetProcessDefaultLayout*(dwDefaultLayout: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc CopyRect*( + lprcDst: LPRECT, lprcSrc: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc InflateRect*( + lprc: LPRECT, dx: int32, dy: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IntersectRect*( + lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnionRect*( + lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SubtractRect*( + lprcDst: LPRECT, lprcSrc1: ptr RECT, lprcSrc2: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc OffsetRect*( + lprc: LPRECT, dx: int32, dy: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsRectEmpty*( + lprc: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EqualRect*( + lprc1: ptr RECT, lprc2: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PtInRect*( + lprc: ptr RECT, pt: POINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowWord*( + hWnd: HWND, nIndex: int32 +): WORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowWord*( + hWnd: HWND, nIndex: int32, wNewWord: WORD +): WORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowLongA*( + hWnd: HWND, nIndex: int32 +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowLongW*( + hWnd: HWND, nIndex: int32 +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowLongA*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowLongW*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassWord*( + hWnd: HWND, nIndex: int32 +): WORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetClassWord*( + hWnd: HWND, nIndex: int32, wNewWord: WORD +): WORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassLongA*( + hWnd: HWND, nIndex: int32 +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassLongW*( + hWnd: HWND, nIndex: int32 +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetClassLongA*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetClassLongW*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetProcessDefaultLayout*( + pdwDefaultLayout: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetProcessDefaultLayout*( + dwDefaultLayout: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetDesktopWindow*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} proc GetParent*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc SetParent*(hWndChild: HWND, hWndNewParent: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumChildWindows*(hWndParent: HWND, lpEnumFunc: WNDENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc FindWindowA*(lpClassName: LPCSTR, lpWindowName: LPCSTR): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc FindWindowW*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc FindWindowExA*(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCSTR, lpszWindow: LPCSTR): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc FindWindowExW*(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCWSTR, lpszWindow: LPCWSTR): HWND {.winapi, stdcall, dynlib: "user32", importc.} +proc SetParent*( + hWndChild: HWND, hWndNewParent: HWND +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumChildWindows*( + hWndParent: HWND, lpEnumFunc: WNDENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc FindWindowA*( + lpClassName: LPCSTR, lpWindowName: LPCSTR +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc FindWindowW*( + lpClassName: LPCWSTR, lpWindowName: LPCWSTR +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc FindWindowExA*( + hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCSTR, lpszWindow: LPCSTR +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc FindWindowExW*( + hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCWSTR, lpszWindow: LPCWSTR +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + proc GetShellWindow*(): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterShellHookWindow*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DeregisterShellHookWindow*(hwnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumWindows*(lpEnumFunc: WNDENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumThreadWindows*(dwThreadId: DWORD, lpfn: WNDENUMPROC, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassNameA*(hWnd: HWND, lpClassName: LPSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetClassNameW*(hWnd: HWND, lpClassName: LPWSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc RegisterShellHookWindow*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DeregisterShellHookWindow*( + hwnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumWindows*( + lpEnumFunc: WNDENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumThreadWindows*( + dwThreadId: DWORD, lpfn: WNDENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassNameA*( + hWnd: HWND, lpClassName: LPSTR, nMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetClassNameW*( + hWnd: HWND, lpClassName: LPWSTR, nMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc GetTopWindow*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowThreadProcessId*(hWnd: HWND, lpdwProcessId: LPDWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc IsGUIThread*(bConvert: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetLastActivePopup*(hWnd: HWND): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindow*(hWnd: HWND, uCmd: UINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowsHookA*(nFilterType: int32, pfnFilterProc: HOOKPROC): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowsHookW*(nFilterType: int32, pfnFilterProc: HOOKPROC): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} -proc UnhookWindowsHook*(nCode: int32, pfnFilterProc: HOOKPROC): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowsHookExA*(idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWindowsHookExW*(idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} -proc UnhookWindowsHookEx*(hhk: HHOOK): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CallNextHookEx*(hhk: HHOOK, nCode: int32, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc CheckMenuRadioItem*(hmenu: HMENU, first: UINT, last: UINT, check: UINT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadBitmapA*(hInstance: HINSTANCE, lpBitmapName: LPCSTR): HBITMAP {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadBitmapW*(hInstance: HINSTANCE, lpBitmapName: LPCWSTR): HBITMAP {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadCursorA*(hInstance: HINSTANCE, lpCursorName: LPCSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadCursorW*(hInstance: HINSTANCE, lpCursorName: LPCWSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadCursorFromFileA*(lpFileName: LPCSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadCursorFromFileW*(lpFileName: LPCWSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateCursor*(hInst: HINSTANCE, xHotSpot: int32, yHotSpot: int32, nWidth: int32, nHeight: int32, pvANDPlane: pointer, pvXORPlane: pointer): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} -proc DestroyCursor*(hCursor: HCURSOR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetSystemCursor*(hcur: HCURSOR, id: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadIconA*(hInstance: HINSTANCE, lpIconName: LPCSTR): HICON {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadIconW*(hInstance: HINSTANCE, lpIconName: LPCWSTR): HICON {.winapi, stdcall, dynlib: "user32", importc.} -proc PrivateExtractIconsA*(szFileName: LPCSTR, nIconIndex: int32, cxIcon: int32, cyIcon: int32, phicon: ptr HICON, piconid: ptr UINT, nIcons: UINT, flags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc PrivateExtractIconsW*(szFileName: LPCWSTR, nIconIndex: int32, cxIcon: int32, cyIcon: int32, phicon: ptr HICON, piconid: ptr UINT, nIcons: UINT, flags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateIcon*(hInstance: HINSTANCE, nWidth: int32, nHeight: int32, cPlanes: BYTE, cBitsPixel: BYTE, lpbANDbits: ptr BYTE, lpbXORbits: ptr BYTE): HICON {.winapi, stdcall, dynlib: "user32", importc.} +proc GetWindowThreadProcessId*( + hWnd: HWND, lpdwProcessId: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsGUIThread*( + bConvert: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetLastActivePopup*( + hWnd: HWND +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindow*( + hWnd: HWND, uCmd: UINT +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowsHookA*( + nFilterType: int32, pfnFilterProc: HOOKPROC +): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowsHookW*( + nFilterType: int32, pfnFilterProc: HOOKPROC +): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnhookWindowsHook*( + nCode: int32, pfnFilterProc: HOOKPROC +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowsHookExA*( + idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD +): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWindowsHookExW*( + idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD +): HHOOK {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnhookWindowsHookEx*( + hhk: HHOOK +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CallNextHookEx*( + hhk: HHOOK, nCode: int32, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc CheckMenuRadioItem*( + hmenu: HMENU, first: UINT, last: UINT, check: UINT, flags: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadBitmapA*( + hInstance: HINSTANCE, lpBitmapName: LPCSTR +): HBITMAP {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadBitmapW*( + hInstance: HINSTANCE, lpBitmapName: LPCWSTR +): HBITMAP {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadCursorA*( + hInstance: HINSTANCE, lpCursorName: LPCSTR +): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadCursorW*( + hInstance: HINSTANCE, lpCursorName: LPCWSTR +): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadCursorFromFileA*( + lpFileName: LPCSTR +): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadCursorFromFileW*( + lpFileName: LPCWSTR +): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateCursor*( + hInst: HINSTANCE, + xHotSpot: int32, + yHotSpot: int32, + nWidth: int32, + nHeight: int32, + pvANDPlane: pointer, + pvXORPlane: pointer, +): HCURSOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc DestroyCursor*( + hCursor: HCURSOR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetSystemCursor*( + hcur: HCURSOR, id: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadIconA*( + hInstance: HINSTANCE, lpIconName: LPCSTR +): HICON {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadIconW*( + hInstance: HINSTANCE, lpIconName: LPCWSTR +): HICON {.winapi, stdcall, dynlib: "user32", importc.} + +proc PrivateExtractIconsA*( + szFileName: LPCSTR, + nIconIndex: int32, + cxIcon: int32, + cyIcon: int32, + phicon: ptr HICON, + piconid: ptr UINT, + nIcons: UINT, + flags: UINT, +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc PrivateExtractIconsW*( + szFileName: LPCWSTR, + nIconIndex: int32, + cxIcon: int32, + cyIcon: int32, + phicon: ptr HICON, + piconid: ptr UINT, + nIcons: UINT, + flags: UINT, +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateIcon*( + hInstance: HINSTANCE, + nWidth: int32, + nHeight: int32, + cPlanes: BYTE, + cBitsPixel: BYTE, + lpbANDbits: ptr BYTE, + lpbXORbits: ptr BYTE, +): HICON {.winapi, stdcall, dynlib: "user32", importc.} + proc DestroyIcon*(hIcon: HICON): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc LookupIconIdFromDirectory*(presbits: PBYTE, fIcon: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc LookupIconIdFromDirectoryEx*(presbits: PBYTE, fIcon: WINBOOL, cxDesired: int32, cyDesired: int32, Flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateIconFromResource*(presbits: PBYTE, dwResSize: DWORD, fIcon: WINBOOL, dwVer: DWORD): HICON {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateIconFromResourceEx*(presbits: PBYTE, dwResSize: DWORD, fIcon: WINBOOL, dwVer: DWORD, cxDesired: int32, cyDesired: int32, Flags: UINT): HICON {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadImageA*(hInst: HINSTANCE, name: LPCSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc LoadImageW*(hInst: HINSTANCE, name: LPCWSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc CopyImage*(h: HANDLE, `type`: UINT, cx: int32, cy: int32, flags: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} -proc DrawIconEx*(hdc: HDC, xLeft: int32, yTop: int32, hIcon: HICON, cxWidth: int32, cyWidth: int32, istepIfAniCur: UINT, hbrFlickerFreeDraw: HBRUSH, diFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateIconIndirect*(piconinfo: PICONINFO): HICON {.winapi, stdcall, dynlib: "user32", importc.} +proc LookupIconIdFromDirectory*( + presbits: PBYTE, fIcon: WINBOOL +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc LookupIconIdFromDirectoryEx*( + presbits: PBYTE, fIcon: WINBOOL, cxDesired: int32, cyDesired: int32, Flags: UINT +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateIconFromResource*( + presbits: PBYTE, dwResSize: DWORD, fIcon: WINBOOL, dwVer: DWORD +): HICON {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateIconFromResourceEx*( + presbits: PBYTE, + dwResSize: DWORD, + fIcon: WINBOOL, + dwVer: DWORD, + cxDesired: int32, + cyDesired: int32, + Flags: UINT, +): HICON {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadImageA*( + hInst: HINSTANCE, name: LPCSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc LoadImageW*( + hInst: HINSTANCE, name: LPCWSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc CopyImage*( + h: HANDLE, `type`: UINT, cx: int32, cy: int32, flags: UINT +): HANDLE {.winapi, stdcall, dynlib: "user32", importc.} + +proc DrawIconEx*( + hdc: HDC, + xLeft: int32, + yTop: int32, + hIcon: HICON, + cxWidth: int32, + cyWidth: int32, + istepIfAniCur: UINT, + hbrFlickerFreeDraw: HBRUSH, + diFlags: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateIconIndirect*( + piconinfo: PICONINFO +): HICON {.winapi, stdcall, dynlib: "user32", importc.} + proc CopyIcon*(hIcon: HICON): HICON {.winapi, stdcall, dynlib: "user32", importc.} -proc GetIconInfo*(hIcon: HICON, piconinfo: PICONINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetIconInfoExA*(hicon: HICON, piconinfo: PICONINFOEXA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetIconInfoExW*(hicon: HICON, piconinfo: PICONINFOEXW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsDialogMessageA*(hDlg: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsDialogMessageW*(hDlg: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MapDialogRect*(hDlg: HWND, lpRect: LPRECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirListA*(hDlg: HWND, lpPathSpec: LPSTR, nIDListBox: int32, nIDStaticPath: int32, uFileType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirListW*(hDlg: HWND, lpPathSpec: LPWSTR, nIDListBox: int32, nIDStaticPath: int32, uFileType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirSelectExA*(hwndDlg: HWND, lpString: LPSTR, chCount: int32, idListBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirSelectExW*(hwndDlg: HWND, lpString: LPWSTR, chCount: int32, idListBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirListComboBoxA*(hDlg: HWND, lpPathSpec: LPSTR, nIDComboBox: int32, nIDStaticPath: int32, uFiletype: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirListComboBoxW*(hDlg: HWND, lpPathSpec: LPWSTR, nIDComboBox: int32, nIDStaticPath: int32, uFiletype: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirSelectComboBoxExA*(hwndDlg: HWND, lpString: LPSTR, cchOut: int32, idComboBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DlgDirSelectComboBoxExW*(hwndDlg: HWND, lpString: LPWSTR, cchOut: int32, idComboBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetScrollInfo*(hwnd: HWND, nBar: int32, lpsi: LPCSCROLLINFO, redraw: WINBOOL): int32 {.winapi, stdcall, dynlib: "user32", importc.} -proc GetScrollInfo*(hwnd: HWND, nBar: int32, lpsi: LPSCROLLINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc DefFrameProcA*(hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc DefFrameProcW*(hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc DefMDIChildProcA*(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc DefMDIChildProcW*(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc TranslateMDISysAccel*(hWndClient: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ArrangeIconicWindows*(hWnd: HWND): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateMDIWindowA*(lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hInstance: HINSTANCE, lParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc CreateMDIWindowW*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hInstance: HINSTANCE, lParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc TileWindows*(hwndParent: HWND, wHow: UINT, lpRect: ptr RECT, cKids: UINT, lpKids: ptr HWND): WORD {.winapi, stdcall, dynlib: "user32", importc.} -proc CascadeWindows*(hwndParent: HWND, wHow: UINT, lpRect: ptr RECT, cKids: UINT, lpKids: ptr HWND): WORD {.winapi, stdcall, dynlib: "user32", importc.} -proc WinHelpA*(hWndMain: HWND, lpszHelp: LPCSTR, uCommand: UINT, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc WinHelpW*(hWndMain: HWND, lpszHelp: LPCWSTR, uCommand: UINT, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetGuiResources*(hProcess: HANDLE, uiFlags: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeDisplaySettingsA*(lpDevMode: LPDEVMODEA, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeDisplaySettingsW*(lpDevMode: LPDEVMODEW, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeDisplaySettingsExA*(lpszDeviceName: LPCSTR, lpDevMode: LPDEVMODEA, hwnd: HWND, dwflags: DWORD, lParam: LPVOID): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeDisplaySettingsExW*(lpszDeviceName: LPCWSTR, lpDevMode: LPDEVMODEW, hwnd: HWND, dwflags: DWORD, lParam: LPVOID): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplaySettingsA*(lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplaySettingsW*(lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplaySettingsExA*(lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplaySettingsExW*(lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplayDevicesA*(lpDevice: LPCSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplayDevicesW*(lpDevice: LPCWSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDisplayConfigBufferSizes*(flags: UINT32, numPathArrayElements: ptr UINT32, numModeInfoArrayElements: ptr UINT32): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDisplayConfig*(numPathArrayElements: UINT32, pathArray: ptr DISPLAYCONFIG_PATH_INFO, numModeInfoArrayElements: UINT32, modeInfoArray: ptr DISPLAYCONFIG_MODE_INFO, flags: UINT32): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc QueryDisplayConfig*(flags: UINT32, numPathArrayElements: ptr UINT32, pathArray: ptr DISPLAYCONFIG_PATH_INFO, numModeInfoArrayElements: ptr UINT32, modeInfoArray: ptr DISPLAYCONFIG_MODE_INFO, currentTopologyId: ptr DISPLAYCONFIG_TOPOLOGY_ID): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc DisplayConfigGetDeviceInfo*(requestPacket: ptr DISPLAYCONFIG_DEVICE_INFO_HEADER): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc DisplayConfigSetDeviceInfo*(setPacket: ptr DISPLAYCONFIG_DEVICE_INFO_HEADER): LONG {.winapi, stdcall, dynlib: "user32", importc.} -proc SystemParametersInfoA*(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SystemParametersInfoW*(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDebugErrorLevel*(dwLevel: DWORD): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc SetLastErrorEx*(dwErrCode: DWORD, dwType: DWORD): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc InternalGetWindowText*(hWnd: HWND, pString: LPWSTR, cchMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc.} +proc GetIconInfo*( + hIcon: HICON, piconinfo: PICONINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetIconInfoExA*( + hicon: HICON, piconinfo: PICONINFOEXA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetIconInfoExW*( + hicon: HICON, piconinfo: PICONINFOEXW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsDialogMessageA*( + hDlg: HWND, lpMsg: LPMSG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsDialogMessageW*( + hDlg: HWND, lpMsg: LPMSG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc MapDialogRect*( + hDlg: HWND, lpRect: LPRECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirListA*( + hDlg: HWND, + lpPathSpec: LPSTR, + nIDListBox: int32, + nIDStaticPath: int32, + uFileType: UINT, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirListW*( + hDlg: HWND, + lpPathSpec: LPWSTR, + nIDListBox: int32, + nIDStaticPath: int32, + uFileType: UINT, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirSelectExA*( + hwndDlg: HWND, lpString: LPSTR, chCount: int32, idListBox: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirSelectExW*( + hwndDlg: HWND, lpString: LPWSTR, chCount: int32, idListBox: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirListComboBoxA*( + hDlg: HWND, + lpPathSpec: LPSTR, + nIDComboBox: int32, + nIDStaticPath: int32, + uFiletype: UINT, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirListComboBoxW*( + hDlg: HWND, + lpPathSpec: LPWSTR, + nIDComboBox: int32, + nIDStaticPath: int32, + uFiletype: UINT, +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirSelectComboBoxExA*( + hwndDlg: HWND, lpString: LPSTR, cchOut: int32, idComboBox: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DlgDirSelectComboBoxExW*( + hwndDlg: HWND, lpString: LPWSTR, cchOut: int32, idComboBox: int32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetScrollInfo*( + hwnd: HWND, nBar: int32, lpsi: LPCSCROLLINFO, redraw: WINBOOL +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetScrollInfo*( + hwnd: HWND, nBar: int32, lpsi: LPSCROLLINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefFrameProcA*( + hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefFrameProcW*( + hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefMDIChildProcA*( + hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefMDIChildProcW*( + hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc TranslateMDISysAccel*( + hWndClient: HWND, lpMsg: LPMSG +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ArrangeIconicWindows*( + hWnd: HWND +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateMDIWindowA*( + lpClassName: LPCSTR, + lpWindowName: LPCSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hInstance: HINSTANCE, + lParam: LPARAM, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc CreateMDIWindowW*( + lpClassName: LPCWSTR, + lpWindowName: LPCWSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hInstance: HINSTANCE, + lParam: LPARAM, +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc TileWindows*( + hwndParent: HWND, wHow: UINT, lpRect: ptr RECT, cKids: UINT, lpKids: ptr HWND +): WORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc CascadeWindows*( + hwndParent: HWND, wHow: UINT, lpRect: ptr RECT, cKids: UINT, lpKids: ptr HWND +): WORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc WinHelpA*( + hWndMain: HWND, lpszHelp: LPCSTR, uCommand: UINT, dwData: ULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc WinHelpW*( + hWndMain: HWND, lpszHelp: LPCWSTR, uCommand: UINT, dwData: ULONG_PTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetGuiResources*( + hProcess: HANDLE, uiFlags: DWORD +): DWORD {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeDisplaySettingsA*( + lpDevMode: LPDEVMODEA, dwFlags: DWORD +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeDisplaySettingsW*( + lpDevMode: LPDEVMODEW, dwFlags: DWORD +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeDisplaySettingsExA*( + lpszDeviceName: LPCSTR, + lpDevMode: LPDEVMODEA, + hwnd: HWND, + dwflags: DWORD, + lParam: LPVOID, +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeDisplaySettingsExW*( + lpszDeviceName: LPCWSTR, + lpDevMode: LPDEVMODEW, + hwnd: HWND, + dwflags: DWORD, + lParam: LPVOID, +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplaySettingsA*( + lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplaySettingsW*( + lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplaySettingsExA*( + lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplaySettingsExW*( + lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplayDevicesA*( + lpDevice: LPCSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEA, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplayDevicesW*( + lpDevice: LPCWSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEW, dwFlags: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetDisplayConfigBufferSizes*( + flags: UINT32, numPathArrayElements: ptr UINT32, numModeInfoArrayElements: ptr UINT32 +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetDisplayConfig*( + numPathArrayElements: UINT32, + pathArray: ptr DISPLAYCONFIG_PATH_INFO, + numModeInfoArrayElements: UINT32, + modeInfoArray: ptr DISPLAYCONFIG_MODE_INFO, + flags: UINT32, +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc QueryDisplayConfig*( + flags: UINT32, + numPathArrayElements: ptr UINT32, + pathArray: ptr DISPLAYCONFIG_PATH_INFO, + numModeInfoArrayElements: ptr UINT32, + modeInfoArray: ptr DISPLAYCONFIG_MODE_INFO, + currentTopologyId: ptr DISPLAYCONFIG_TOPOLOGY_ID, +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc DisplayConfigGetDeviceInfo*( + requestPacket: ptr DISPLAYCONFIG_DEVICE_INFO_HEADER +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc DisplayConfigSetDeviceInfo*( + setPacket: ptr DISPLAYCONFIG_DEVICE_INFO_HEADER +): LONG {.winapi, stdcall, dynlib: "user32", importc.} + +proc SystemParametersInfoA*( + uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SystemParametersInfoW*( + uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetDebugErrorLevel*( + dwLevel: DWORD +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetLastErrorEx*( + dwErrCode: DWORD, dwType: DWORD +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + +proc InternalGetWindowText*( + hWnd: HWND, pString: LPWSTR, cchMaxCount: int32 +): int32 {.winapi, stdcall, dynlib: "user32", importc.} + proc CancelShutdown*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc MonitorFromPoint*(pt: POINT, dwFlags: DWORD): HMONITOR {.winapi, stdcall, dynlib: "user32", importc.} -proc MonitorFromRect*(lprc: LPCRECT, dwFlags: DWORD): HMONITOR {.winapi, stdcall, dynlib: "user32", importc.} -proc MonitorFromWindow*(hwnd: HWND, dwFlags: DWORD): HMONITOR {.winapi, stdcall, dynlib: "user32", importc.} -proc EndTask*(hWnd: HWND, fShutDown: WINBOOL, fForce: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc MonitorFromPoint*( + pt: POINT, dwFlags: DWORD +): HMONITOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc MonitorFromRect*( + lprc: LPCRECT, dwFlags: DWORD +): HMONITOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc MonitorFromWindow*( + hwnd: HWND, dwFlags: DWORD +): HMONITOR {.winapi, stdcall, dynlib: "user32", importc.} + +proc EndTask*( + hWnd: HWND, fShutDown: WINBOOL, fForce: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc SoundSentry*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMonitorInfoA*(hMonitor: HMONITOR, lpmi: LPMONITORINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMonitorInfoW*(hMonitor: HMONITOR, lpmi: LPMONITORINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc EnumDisplayMonitors*(hdc: HDC, lprcClip: LPCRECT, lpfnEnum: MONITORENUMPROC, dwData: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc NotifyWinEvent*(event: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG): VOID {.winapi, stdcall, dynlib: "user32", importc.} -proc SetWinEventHook*(eventMin: DWORD, eventMax: DWORD, hmodWinEventProc: HMODULE, pfnWinEventProc: WINEVENTPROC, idProcess: DWORD, idThread: DWORD, dwFlags: DWORD): HWINEVENTHOOK {.winapi, stdcall, dynlib: "user32", importc.} -proc IsWinEventHookInstalled*(event: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UnhookWinEvent*(hWinEventHook: HWINEVENTHOOK): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetGUIThreadInfo*(idThread: DWORD, pgui: PGUITHREADINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc BlockInput*(fBlockIt: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowModuleFileNameA*(hwnd: HWND, pszFileName: LPSTR, cchFileNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowModuleFileNameW*(hwnd: HWND, pszFileName: LPWSTR, cchFileNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} +proc GetMonitorInfoA*( + hMonitor: HMONITOR, lpmi: LPMONITORINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMonitorInfoW*( + hMonitor: HMONITOR, lpmi: LPMONITORINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc EnumDisplayMonitors*( + hdc: HDC, lprcClip: LPCRECT, lpfnEnum: MONITORENUMPROC, dwData: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc NotifyWinEvent*( + event: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG +): VOID {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetWinEventHook*( + eventMin: DWORD, + eventMax: DWORD, + hmodWinEventProc: HMODULE, + pfnWinEventProc: WINEVENTPROC, + idProcess: DWORD, + idThread: DWORD, + dwFlags: DWORD, +): HWINEVENTHOOK {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsWinEventHookInstalled*( + event: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc UnhookWinEvent*( + hWinEventHook: HWINEVENTHOOK +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetGUIThreadInfo*( + idThread: DWORD, pgui: PGUITHREADINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc BlockInput*( + fBlockIt: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowModuleFileNameA*( + hwnd: HWND, pszFileName: LPSTR, cchFileNameMax: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowModuleFileNameW*( + hwnd: HWND, pszFileName: LPWSTR, cchFileNameMax: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + proc SetProcessDPIAware*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} proc IsProcessDPIAware*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetCursorInfo*(pci: PCURSORINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetWindowInfo*(hwnd: HWND, pwi: PWINDOWINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetTitleBarInfo*(hwnd: HWND, pti: PTITLEBARINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetMenuBarInfo*(hwnd: HWND, idObject: LONG, idItem: LONG, pmbi: PMENUBARINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetScrollBarInfo*(hwnd: HWND, idObject: LONG, psbi: PSCROLLBARINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetComboBoxInfo*(hwndCombo: HWND, pcbi: PCOMBOBOXINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetAncestor*(hwnd: HWND, gaFlags: UINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc RealChildWindowFromPoint*(hwndParent: HWND, ptParentClientCoords: POINT): HWND {.winapi, stdcall, dynlib: "user32", importc.} -proc RealGetWindowClassA*(hwnd: HWND, ptszClassName: LPSTR, cchClassNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc RealGetWindowClassW*(hwnd: HWND, ptszClassName: LPWSTR, cchClassNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetAltTabInfoA*(hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPSTR, cchItemText: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetAltTabInfoW*(hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPWSTR, cchItemText: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} +proc GetCursorInfo*( + pci: PCURSORINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetWindowInfo*( + hwnd: HWND, pwi: PWINDOWINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetTitleBarInfo*( + hwnd: HWND, pti: PTITLEBARINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetMenuBarInfo*( + hwnd: HWND, idObject: LONG, idItem: LONG, pmbi: PMENUBARINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetScrollBarInfo*( + hwnd: HWND, idObject: LONG, psbi: PSCROLLBARINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetComboBoxInfo*( + hwndCombo: HWND, pcbi: PCOMBOBOXINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetAncestor*( + hwnd: HWND, gaFlags: UINT +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc RealChildWindowFromPoint*( + hwndParent: HWND, ptParentClientCoords: POINT +): HWND {.winapi, stdcall, dynlib: "user32", importc.} + +proc RealGetWindowClassA*( + hwnd: HWND, ptszClassName: LPSTR, cchClassNameMax: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc RealGetWindowClassW*( + hwnd: HWND, ptszClassName: LPWSTR, cchClassNameMax: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetAltTabInfoA*( + hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPSTR, cchItemText: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetAltTabInfoW*( + hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPWSTR, cchItemText: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + proc GetListBoxInfo*(hwnd: HWND): DWORD {.winapi, stdcall, dynlib: "user32", importc.} proc LockWorkStation*(): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc UserHandleGrantAccess*(hUserHandle: HANDLE, hJob: HANDLE, bGrant: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRawInputData*(hRawInput: HRAWINPUT, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT, cbSizeHeader: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRawInputDeviceInfoA*(hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRawInputDeviceInfoW*(hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRawInputBuffer*(pData: PRAWINPUT, pcbSize: PUINT, cbSizeHeader: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterRawInputDevices*(pRawInputDevices: PCRAWINPUTDEVICE, uiNumDevices: UINT, cbSize: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRegisteredRawInputDevices*(pRawInputDevices: PRAWINPUTDEVICE, puiNumDevices: PUINT, cbSize: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRawInputDeviceList*(pRawInputDeviceList: PRAWINPUTDEVICELIST, puiNumDevices: PUINT, cbSize: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc.} -proc DefRawInputProc*(paRawInput: ptr PRAWINPUT, nInput: INT, cbSizeHeader: UINT): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerDevices*(deviceCount: ptr UINT32, pointerDevices: ptr POINTER_DEVICE_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerDevice*(device: HANDLE, pointerDevice: ptr POINTER_DEVICE_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerDeviceProperties*(device: HANDLE, propertyCount: ptr UINT32, pointerProperties: ptr POINTER_DEVICE_PROPERTY): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc RegisterPointerDeviceNotifications*(window: HWND, notifyRange: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerDeviceRects*(device: HANDLE, pointerDeviceRect: ptr RECT, displayRect: ptr RECT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerDeviceCursors*(device: HANDLE, cursorCount: ptr UINT32, deviceCursors: ptr POINTER_DEVICE_CURSOR_INFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetRawPointerDeviceData*(pointerId: UINT32, historyCount: UINT32, propertiesCount: UINT32, pProperties: ptr POINTER_DEVICE_PROPERTY, pValues: ptr LONG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeWindowMessageFilter*(message: UINT, dwFlag: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ChangeWindowMessageFilterEx*(hwnd: HWND, message: UINT, action: DWORD, pChangeFilterStruct: PCHANGEFILTERSTRUCT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetGestureInfo*(hGestureInfo: HGESTUREINFO, pGestureInfo: PGESTUREINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetGestureExtraArgs*(hGestureInfo: HGESTUREINFO, cbExtraArgs: UINT, pExtraArgs: PBYTE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc CloseGestureInfoHandle*(hGestureInfo: HGESTUREINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetGestureConfig*(hwnd: HWND, dwReserved: DWORD, cIDs: UINT, pGestureConfig: PGESTURECONFIG, cbSize: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetGestureConfig*(hwnd: HWND, dwReserved: DWORD, dwFlags: DWORD, pcIDs: PUINT, pGestureConfig: PGESTURECONFIG, cbSize: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShutdownBlockReasonCreate*(hWnd: HWND, pwszReason: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShutdownBlockReasonQuery*(hWnd: HWND, pwszBuff: LPWSTR, pcchBuff: ptr DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc ShutdownBlockReasonDestroy*(hWnd: HWND): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetCurrentInputMessageSource*(inputMessageSource: ptr INPUT_MESSAGE_SOURCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetCIMSSM*(inputMessageSource: ptr INPUT_MESSAGE_SOURCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetAutoRotationState*(pState: PAR_STATE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetDisplayAutoRotationPreferences*(pOrientation: ptr ORIENTATION_PREFERENCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetDisplayAutoRotationPreferences*(orientation: ORIENTATION_PREFERENCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc IsImmersiveProcess*(hProcess: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc SetProcessRestrictionExemption*(fEnableExemption: WINBOOL): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc GetPointerInputTransform*(pointerId: UINT32, historyCount: UINT32, inputTransform: ptr UINT32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} -proc PostAppMessageA*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageA".} -proc PostAppMessageW*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageW".} -proc GetNextWindow*(hWnd: HWND, uCmd: UINT): HWND {.winapi, stdcall, dynlib: "user32", importc: "GetWindow".} -proc CopyCursor*(hIcon: HICON): HICON {.winapi, stdcall, dynlib: "user32", importc: "CopyIcon".} -template MAKEINTRESOURCEA*(i: untyped): untyped = cast[LPSTR](i and 0xffff) -template MAKEINTRESOURCEW*(i: untyped): untyped = cast[LPWSTR](i and 0xffff) -template IS_INTRESOURCE*(r: untyped): bool = cast[int](r) shr 16 == 0 -template GET_APPCOMMAND_LPARAM*(lParam: untyped): SHORT = cast[SHORT](HIWORD(lParam) and (not WORD FAPPCOMMAND_MASK)) -template GET_DEVICE_LPARAM*(lParam: untyped): WORD = HIWORD(lParam) and WORD FAPPCOMMAND_MASK -template GET_MOUSEORKEY_LPARAM*(lParam: untyped): WORD = HIWORD(lParam) and WORD FAPPCOMMAND_MASK -template GET_FLAGS_LPARAM*(lParam: untyped): WORD = LOWORD(lParam) -template GET_KEYSTATE_LPARAM*(lParam: untyped): WORD = LOWORD(lParam) -template POINTSTOPOINT*(pt: POINT, pts: POINTS) = pt.x = pts.x; pt.y = pts.y -template POINTTOPOINTS*(pt: POINT): POINTS = POINTS(x: int16 pt.x, y: int16 pt.y) -template MAKEWPARAM*(l: untyped, h: untyped): WPARAM = WPARAM MAKELONG(l, h) -template MAKELPARAM*(l: untyped, h: untyped): LPARAM = LPARAM MAKELONG(l, h) -template MAKELRESULT*(l: untyped, h: untyped): LRESULT = LRESULT MAKELONG(l, h) -template GET_WHEEL_DELTA_WPARAM*(wParam: untyped): SHORT = cast[SHORT](HIWORD(wParam)) -template GET_KEYSTATE_WPARAM*(wParam: untyped): WORD = LOWORD(wParam) -template GET_NCHITTEST_WPARAM*(wParam: untyped): SHORT = cast[SHORT](LOWORD(wParam)) -template GET_XBUTTON_WPARAM*(wParam: untyped): WORD = HIWORD(wParam) -template TOUCH_COORD_TO_PIXEL*(L: untyped): LONG = LONG((int L) / 100) -template GET_POINTERID_WPARAM*(wParam: untyped): WORD = LOWORD(wParam) -template IS_POINTER_FLAG_SET_WPARAM*(wParam: untyped, flag: untyped): bool = (DWORD(HIWORD(wParam)) and DWORD flag) == DWORD flag -template IS_POINTER_NEW_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_NEW) -template IS_POINTER_INRANGE_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_INRANGE) -template IS_POINTER_INCONTACT_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_INCONTACT) -template IS_POINTER_FIRSTBUTTON_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FIRSTBUTTON) -template IS_POINTER_SECONDBUTTON_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_SECONDBUTTON) -template IS_POINTER_THIRDBUTTON_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_THIRDBUTTON) -template IS_POINTER_FOURTHBUTTON_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FOURTHBUTTON) -template IS_POINTER_FIFTHBUTTON_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FIFTHBUTTON) -template IS_POINTER_PRIMARY_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_PRIMARY) -template HAS_POINTER_CONFIDENCE_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_CONFIDENCE) -template IS_POINTER_CANCELED_WPARAM*(wParam: untyped): bool = IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_CANCELED) -template GET_RAWINPUT_CODE_WPARAM*(wParam: untyped): WPARAM = WPARAM(wParam and 0xff) -template GET_SC_WPARAM*(wParam: untyped): LONG = LONG(wParam and 0xfff0) -template RIDEV_EXMODE*(mode: untyped): DWORD = DWORD(mode and RIDEV_EXMODEMASK) -template GET_DEVICE_CHANGE_WPARAM*(wParam: untyped): WPARAM = WPARAM(LOWORD(wParam)) -template GET_DEVICE_CHANGE_LPARAM*(lParam: untyped): LPARAM = LPARAM(LOWORD(lParam)) -template GID_ROTATE_ANGLE_TO_ARGUMENT*(arg: untyped): USHORT = USHORT((arg + 2.0 * 3.14159265) / (4.0 * 3.14159265) * 65535.0) -template GID_ROTATE_ANGLE_FROM_ARGUMENT*(arg: untyped): DOUBLE = (((arg.DOUBLE / 65535.0) * 4.0 * 3.14159265) - 2.0 * 3.14159265) -proc ExitWindows*(dwReserved: DWORD, uReserved: UINT): WINBOOL {.winapi, inline.} = ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF'i32) -proc EnumTaskWindows*(hTask: HANDLE, lpfn: WNDENUMPROC, lParam: LPARAM): WINBOOL {.winapi, inline.} = EnumThreadWindows(DWORD hTask, lpfn, lParam) -proc GetWindowTask*(hWnd: HWND): DWORD {.winapi, inline.} = GetWindowThreadProcessId(hWnd, nil) -proc DefHookProc*(nCode: int32, wParam: WPARAM, lParam: LPARAM, phhk: ptr HHOOK): LRESULT {.winapi, inline.} = CallNextHookEx(phhk[], nCode, wParam, lParam) +proc UserHandleGrantAccess*( + hUserHandle: HANDLE, hJob: HANDLE, bGrant: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRawInputData*( + hRawInput: HRAWINPUT, + uiCommand: UINT, + pData: LPVOID, + pcbSize: PUINT, + cbSizeHeader: UINT, +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRawInputDeviceInfoA*( + hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRawInputDeviceInfoW*( + hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRawInputBuffer*( + pData: PRAWINPUT, pcbSize: PUINT, cbSizeHeader: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterRawInputDevices*( + pRawInputDevices: PCRAWINPUTDEVICE, uiNumDevices: UINT, cbSize: UINT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRegisteredRawInputDevices*( + pRawInputDevices: PRAWINPUTDEVICE, puiNumDevices: PUINT, cbSize: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRawInputDeviceList*( + pRawInputDeviceList: PRAWINPUTDEVICELIST, puiNumDevices: PUINT, cbSize: UINT +): UINT {.winapi, stdcall, dynlib: "user32", importc.} + +proc DefRawInputProc*( + paRawInput: ptr PRAWINPUT, nInput: INT, cbSizeHeader: UINT +): LRESULT {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerDevices*( + deviceCount: ptr UINT32, pointerDevices: ptr POINTER_DEVICE_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerDevice*( + device: HANDLE, pointerDevice: ptr POINTER_DEVICE_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerDeviceProperties*( + device: HANDLE, + propertyCount: ptr UINT32, + pointerProperties: ptr POINTER_DEVICE_PROPERTY, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc RegisterPointerDeviceNotifications*( + window: HWND, notifyRange: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerDeviceRects*( + device: HANDLE, pointerDeviceRect: ptr RECT, displayRect: ptr RECT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerDeviceCursors*( + device: HANDLE, cursorCount: ptr UINT32, deviceCursors: ptr POINTER_DEVICE_CURSOR_INFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetRawPointerDeviceData*( + pointerId: UINT32, + historyCount: UINT32, + propertiesCount: UINT32, + pProperties: ptr POINTER_DEVICE_PROPERTY, + pValues: ptr LONG, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeWindowMessageFilter*( + message: UINT, dwFlag: DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ChangeWindowMessageFilterEx*( + hwnd: HWND, message: UINT, action: DWORD, pChangeFilterStruct: PCHANGEFILTERSTRUCT +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetGestureInfo*( + hGestureInfo: HGESTUREINFO, pGestureInfo: PGESTUREINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetGestureExtraArgs*( + hGestureInfo: HGESTUREINFO, cbExtraArgs: UINT, pExtraArgs: PBYTE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc CloseGestureInfoHandle*( + hGestureInfo: HGESTUREINFO +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetGestureConfig*( + hwnd: HWND, + dwReserved: DWORD, + cIDs: UINT, + pGestureConfig: PGESTURECONFIG, + cbSize: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetGestureConfig*( + hwnd: HWND, + dwReserved: DWORD, + dwFlags: DWORD, + pcIDs: PUINT, + pGestureConfig: PGESTURECONFIG, + cbSize: UINT, +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ShutdownBlockReasonCreate*( + hWnd: HWND, pwszReason: LPCWSTR +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ShutdownBlockReasonQuery*( + hWnd: HWND, pwszBuff: LPWSTR, pcchBuff: ptr DWORD +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc ShutdownBlockReasonDestroy*( + hWnd: HWND +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetCurrentInputMessageSource*( + inputMessageSource: ptr INPUT_MESSAGE_SOURCE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetCIMSSM*( + inputMessageSource: ptr INPUT_MESSAGE_SOURCE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetAutoRotationState*( + pState: PAR_STATE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetDisplayAutoRotationPreferences*( + pOrientation: ptr ORIENTATION_PREFERENCE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetDisplayAutoRotationPreferences*( + orientation: ORIENTATION_PREFERENCE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc IsImmersiveProcess*( + hProcess: HANDLE +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc SetProcessRestrictionExemption*( + fEnableExemption: WINBOOL +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc GetPointerInputTransform*( + pointerId: UINT32, historyCount: UINT32, inputTransform: ptr UINT32 +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc.} + +proc PostAppMessageA*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageA".} + +proc PostAppMessageW*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM +): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageW".} + +proc GetNextWindow*( + hWnd: HWND, uCmd: UINT +): HWND {.winapi, stdcall, dynlib: "user32", importc: "GetWindow".} + +proc CopyCursor*( + hIcon: HICON +): HICON {.winapi, stdcall, dynlib: "user32", importc: "CopyIcon".} + +template MAKEINTRESOURCEA*(i: untyped): untyped = + cast[LPSTR](i and 0xffff) + +template MAKEINTRESOURCEW*(i: untyped): untyped = + cast[LPWSTR](i and 0xffff) + +template IS_INTRESOURCE*(r: untyped): bool = + cast[int](r) shr 16 == 0 + +template GET_APPCOMMAND_LPARAM*(lParam: untyped): SHORT = + cast[SHORT](HIWORD(lParam) and (not WORD FAPPCOMMAND_MASK)) + +template GET_DEVICE_LPARAM*(lParam: untyped): WORD = + HIWORD(lParam) and WORD FAPPCOMMAND_MASK + +template GET_MOUSEORKEY_LPARAM*(lParam: untyped): WORD = + HIWORD(lParam) and WORD FAPPCOMMAND_MASK + +template GET_FLAGS_LPARAM*(lParam: untyped): WORD = + LOWORD(lParam) + +template GET_KEYSTATE_LPARAM*(lParam: untyped): WORD = + LOWORD(lParam) + +template POINTSTOPOINT*(pt: POINT, pts: POINTS) = + pt.x = pts.x + pt.y = pts.y + +template POINTTOPOINTS*(pt: POINT): POINTS = + POINTS(x: int16 pt.x, y: int16 pt.y) + +template MAKEWPARAM*(l: untyped, h: untyped): WPARAM = + WPARAM MAKELONG(l, h) + +template MAKELPARAM*(l: untyped, h: untyped): LPARAM = + LPARAM MAKELONG(l, h) + +template MAKELRESULT*(l: untyped, h: untyped): LRESULT = + LRESULT MAKELONG(l, h) + +template GET_WHEEL_DELTA_WPARAM*(wParam: untyped): SHORT = + cast[SHORT](HIWORD(wParam)) + +template GET_KEYSTATE_WPARAM*(wParam: untyped): WORD = + LOWORD(wParam) + +template GET_NCHITTEST_WPARAM*(wParam: untyped): SHORT = + cast[SHORT](LOWORD(wParam)) + +template GET_XBUTTON_WPARAM*(wParam: untyped): WORD = + HIWORD(wParam) + +template TOUCH_COORD_TO_PIXEL*(L: untyped): LONG = + LONG((int L) / 100) + +template GET_POINTERID_WPARAM*(wParam: untyped): WORD = + LOWORD(wParam) + +template IS_POINTER_FLAG_SET_WPARAM*(wParam: untyped, flag: untyped): bool = + (DWORD(HIWORD(wParam)) and DWORD flag) == DWORD flag + +template IS_POINTER_NEW_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_NEW) + +template IS_POINTER_INRANGE_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_INRANGE) + +template IS_POINTER_INCONTACT_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_INCONTACT) + +template IS_POINTER_FIRSTBUTTON_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FIRSTBUTTON) + +template IS_POINTER_SECONDBUTTON_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_SECONDBUTTON) + +template IS_POINTER_THIRDBUTTON_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_THIRDBUTTON) + +template IS_POINTER_FOURTHBUTTON_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FOURTHBUTTON) + +template IS_POINTER_FIFTHBUTTON_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_FIFTHBUTTON) + +template IS_POINTER_PRIMARY_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_PRIMARY) + +template HAS_POINTER_CONFIDENCE_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_CONFIDENCE) + +template IS_POINTER_CANCELED_WPARAM*(wParam: untyped): bool = + IS_POINTER_FLAG_SET_WPARAM(wParam, POINTER_MESSAGE_FLAG_CANCELED) + +template GET_RAWINPUT_CODE_WPARAM*(wParam: untyped): WPARAM = + WPARAM(wParam and 0xff) + +template GET_SC_WPARAM*(wParam: untyped): LONG = + LONG(wParam and 0xfff0) + +template RIDEV_EXMODE*(mode: untyped): DWORD = + DWORD(mode and RIDEV_EXMODEMASK) + +template GET_DEVICE_CHANGE_WPARAM*(wParam: untyped): WPARAM = + WPARAM(LOWORD(wParam)) + +template GET_DEVICE_CHANGE_LPARAM*(lParam: untyped): LPARAM = + LPARAM(LOWORD(lParam)) + +template GID_ROTATE_ANGLE_TO_ARGUMENT*(arg: untyped): USHORT = + USHORT((arg + 2.0 * 3.14159265) / (4.0 * 3.14159265) * 65535.0) + +template GID_ROTATE_ANGLE_FROM_ARGUMENT*(arg: untyped): DOUBLE = + (((arg.DOUBLE / 65535.0) * 4.0 * 3.14159265) - 2.0 * 3.14159265) + +proc ExitWindows*(dwReserved: DWORD, uReserved: UINT): WINBOOL {.winapi, inline.} = + ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF'i32) + +proc EnumTaskWindows*( + hTask: HANDLE, lpfn: WNDENUMPROC, lParam: LPARAM +): WINBOOL {.winapi, inline.} = + EnumThreadWindows(DWORD hTask, lpfn, lParam) + +proc GetWindowTask*(hWnd: HWND): DWORD {.winapi, inline.} = + GetWindowThreadProcessId(hWnd, nil) + +proc DefHookProc*( + nCode: int32, wParam: WPARAM, lParam: LPARAM, phhk: ptr HHOOK +): LRESULT {.winapi, inline.} = + CallNextHookEx(phhk[], nCode, wParam, lParam) + when winimAnsi: - proc CreateWindowEx*(dwExStyle: DWORD, lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowExA".} -proc CreateWindowA*(lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, inline.} = CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) + proc CreateWindowEx*( + dwExStyle: DWORD, + lpClassName: LPCSTR, + lpWindowName: LPCSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowExA".} + +proc CreateWindowA*( + lpClassName: LPCSTR, + lpWindowName: LPCSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, +): HWND {.winapi, inline.} = + CreateWindowExA( + 0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, + hInstance, lpParam, + ) + when winimUnicode: - proc CreateWindowEx*(dwExStyle: DWORD, lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowExW".} -proc CreateWindowW*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, inline.} = CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) -when winimAnsi: - proc CreateDialogParam*(hInstance: HINSTANCE, lpTemplateName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogParamA".} -proc CreateDialogA*(hInstance: HINSTANCE, lpName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0) -when winimUnicode: - proc CreateDialogParam*(hInstance: HINSTANCE, lpTemplateName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogParamW".} -proc CreateDialogW*(hInstance: HINSTANCE, lpName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0) + proc CreateWindowEx*( + dwExStyle: DWORD, + lpClassName: LPCWSTR, + lpWindowName: LPCWSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowExW".} + +proc CreateWindowW*( + lpClassName: LPCWSTR, + lpWindowName: LPCWSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, +): HWND {.winapi, inline.} = + CreateWindowExW( + 0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, + hInstance, lpParam, + ) + when winimAnsi: - proc CreateDialogIndirectParam*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogIndirectParamA".} -proc CreateDialogIndirectA*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + proc CreateDialogParam*( + hInstance: HINSTANCE, + lpTemplateName: LPCSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogParamA".} + +proc CreateDialogA*( + hInstance: HINSTANCE, lpName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC +): HWND {.winapi, inline.} = + CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0) + when winimUnicode: - proc CreateDialogIndirectParam*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogIndirectParamW".} -proc CreateDialogIndirectW*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) -when winimAnsi: - proc DialogBoxParam*(hInstance: HINSTANCE, lpTemplateName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxParamA".} -proc DialogBoxA*(hInstance: HINSTANCE, lpTemplate: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) -when winimUnicode: - proc DialogBoxParam*(hInstance: HINSTANCE, lpTemplateName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxParamW".} -proc DialogBoxW*(hInstance: HINSTANCE, lpTemplate: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + proc CreateDialogParam*( + hInstance: HINSTANCE, + lpTemplateName: LPCWSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogParamW".} + +proc CreateDialogW*( + hInstance: HINSTANCE, lpName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC +): HWND {.winapi, inline.} = + CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0) + when winimAnsi: - proc DialogBoxIndirectParam*(hInstance: HINSTANCE, hDialogTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxIndirectParamA".} -proc DialogBoxIndirectA*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + proc CreateDialogIndirectParam*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogIndirectParamA".} + +proc CreateDialogIndirectA*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, +): HWND {.winapi, inline.} = + CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + +when winimUnicode: + proc CreateDialogIndirectParam*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateDialogIndirectParamW".} + +proc CreateDialogIndirectW*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, +): HWND {.winapi, inline.} = + CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + +when winimAnsi: + proc DialogBoxParam*( + hInstance: HINSTANCE, + lpTemplateName: LPCSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxParamA".} + +proc DialogBoxA*( + hInstance: HINSTANCE, lpTemplate: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC +): INT_PTR {.winapi, inline.} = + DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + +when winimUnicode: + proc DialogBoxParam*( + hInstance: HINSTANCE, + lpTemplateName: LPCWSTR, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxParamW".} + +proc DialogBoxW*( + hInstance: HINSTANCE, lpTemplate: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC +): INT_PTR {.winapi, inline.} = + DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + +when winimAnsi: + proc DialogBoxIndirectParam*( + hInstance: HINSTANCE, + hDialogTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxIndirectParamA".} + +proc DialogBoxIndirectA*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, +): INT_PTR {.winapi, inline.} = + DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + when winimUnicode: - proc DialogBoxIndirectParam*(hInstance: HINSTANCE, hDialogTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxIndirectParamW".} -proc DialogBoxIndirectW*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) -proc `mi=`*(self: var INPUT, x: MOUSEINPUT) {.inline.} = self.union1.mi = x -proc mi*(self: INPUT): MOUSEINPUT {.inline.} = self.union1.mi -proc mi*(self: var INPUT): var MOUSEINPUT {.inline.} = self.union1.mi -proc `ki=`*(self: var INPUT, x: KEYBDINPUT) {.inline.} = self.union1.ki = x -proc ki*(self: INPUT): KEYBDINPUT {.inline.} = self.union1.ki -proc ki*(self: var INPUT): var KEYBDINPUT {.inline.} = self.union1.ki -proc `hi=`*(self: var INPUT, x: HARDWAREINPUT) {.inline.} = self.union1.hi = x -proc hi*(self: INPUT): HARDWAREINPUT {.inline.} = self.union1.hi -proc hi*(self: var INPUT): var HARDWAREINPUT {.inline.} = self.union1.hi -proc `cbSize=`*(self: var MONITORINFOEXA, x: DWORD) {.inline.} = self.struct1.cbSize = x -proc cbSize*(self: MONITORINFOEXA): DWORD {.inline.} = self.struct1.cbSize -proc cbSize*(self: var MONITORINFOEXA): var DWORD {.inline.} = self.struct1.cbSize -proc `rcMonitor=`*(self: var MONITORINFOEXA, x: RECT) {.inline.} = self.struct1.rcMonitor = x -proc rcMonitor*(self: MONITORINFOEXA): RECT {.inline.} = self.struct1.rcMonitor -proc rcMonitor*(self: var MONITORINFOEXA): var RECT {.inline.} = self.struct1.rcMonitor -proc `rcWork=`*(self: var MONITORINFOEXA, x: RECT) {.inline.} = self.struct1.rcWork = x -proc rcWork*(self: MONITORINFOEXA): RECT {.inline.} = self.struct1.rcWork -proc rcWork*(self: var MONITORINFOEXA): var RECT {.inline.} = self.struct1.rcWork -proc `dwFlags=`*(self: var MONITORINFOEXA, x: DWORD) {.inline.} = self.struct1.dwFlags = x -proc dwFlags*(self: MONITORINFOEXA): DWORD {.inline.} = self.struct1.dwFlags -proc dwFlags*(self: var MONITORINFOEXA): var DWORD {.inline.} = self.struct1.dwFlags -proc `cbSize=`*(self: var MONITORINFOEXW, x: DWORD) {.inline.} = self.struct1.cbSize = x -proc cbSize*(self: MONITORINFOEXW): DWORD {.inline.} = self.struct1.cbSize -proc cbSize*(self: var MONITORINFOEXW): var DWORD {.inline.} = self.struct1.cbSize -proc `rcMonitor=`*(self: var MONITORINFOEXW, x: RECT) {.inline.} = self.struct1.rcMonitor = x -proc rcMonitor*(self: MONITORINFOEXW): RECT {.inline.} = self.struct1.rcMonitor -proc rcMonitor*(self: var MONITORINFOEXW): var RECT {.inline.} = self.struct1.rcMonitor -proc `rcWork=`*(self: var MONITORINFOEXW, x: RECT) {.inline.} = self.struct1.rcWork = x -proc rcWork*(self: MONITORINFOEXW): RECT {.inline.} = self.struct1.rcWork -proc rcWork*(self: var MONITORINFOEXW): var RECT {.inline.} = self.struct1.rcWork -proc `dwFlags=`*(self: var MONITORINFOEXW, x: DWORD) {.inline.} = self.struct1.dwFlags = x -proc dwFlags*(self: MONITORINFOEXW): DWORD {.inline.} = self.struct1.dwFlags -proc dwFlags*(self: var MONITORINFOEXW): var DWORD {.inline.} = self.struct1.dwFlags -proc `ulButtons=`*(self: var RAWMOUSE, x: ULONG) {.inline.} = self.union1.ulButtons = x -proc ulButtons*(self: RAWMOUSE): ULONG {.inline.} = self.union1.ulButtons -proc ulButtons*(self: var RAWMOUSE): var ULONG {.inline.} = self.union1.ulButtons -proc `usButtonFlags=`*(self: var RAWMOUSE, x: USHORT) {.inline.} = self.union1.struct1.usButtonFlags = x -proc usButtonFlags*(self: RAWMOUSE): USHORT {.inline.} = self.union1.struct1.usButtonFlags -proc usButtonFlags*(self: var RAWMOUSE): var USHORT {.inline.} = self.union1.struct1.usButtonFlags -proc `usButtonData=`*(self: var RAWMOUSE, x: USHORT) {.inline.} = self.union1.struct1.usButtonData = x -proc usButtonData*(self: RAWMOUSE): USHORT {.inline.} = self.union1.struct1.usButtonData -proc usButtonData*(self: var RAWMOUSE): var USHORT {.inline.} = self.union1.struct1.usButtonData -proc `mouse=`*(self: var RID_DEVICE_INFO, x: RID_DEVICE_INFO_MOUSE) {.inline.} = self.union1.mouse = x -proc mouse*(self: RID_DEVICE_INFO): RID_DEVICE_INFO_MOUSE {.inline.} = self.union1.mouse -proc mouse*(self: var RID_DEVICE_INFO): var RID_DEVICE_INFO_MOUSE {.inline.} = self.union1.mouse -proc `keyboard=`*(self: var RID_DEVICE_INFO, x: RID_DEVICE_INFO_KEYBOARD) {.inline.} = self.union1.keyboard = x -proc keyboard*(self: RID_DEVICE_INFO): RID_DEVICE_INFO_KEYBOARD {.inline.} = self.union1.keyboard -proc keyboard*(self: var RID_DEVICE_INFO): var RID_DEVICE_INFO_KEYBOARD {.inline.} = self.union1.keyboard -proc `hid=`*(self: var RID_DEVICE_INFO, x: RID_DEVICE_INFO_HID) {.inline.} = self.union1.hid = x -proc hid*(self: RID_DEVICE_INFO): RID_DEVICE_INFO_HID {.inline.} = self.union1.hid -proc hid*(self: var RID_DEVICE_INFO): var RID_DEVICE_INFO_HID {.inline.} = self.union1.hid -proc `m11=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m11 = x -proc m11*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m11 -proc m11*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m11 -proc `m12=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m12 = x -proc m12*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m12 -proc m12*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m12 -proc `m13=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m13 = x -proc m13*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m13 -proc m13*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m13 -proc `m14=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m14 = x -proc m14*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m14 -proc m14*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m14 -proc `m21=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m21 = x -proc m21*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m21 -proc m21*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m21 -proc `m22=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m22 = x -proc m22*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m22 -proc m22*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m22 -proc `m23=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m23 = x -proc m23*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m23 -proc m23*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m23 -proc `m24=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m24 = x -proc m24*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m24 -proc m24*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m24 -proc `m31=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m31 = x -proc m31*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m31 -proc m31*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m31 -proc `m32=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m32 = x -proc m32*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m32 -proc m32*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m32 -proc `m33=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m33 = x -proc m33*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m33 -proc m33*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m33 -proc `m34=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m34 = x -proc m34*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m34 -proc m34*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m34 -proc `m41=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m41 = x -proc m41*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m41 -proc m41*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m41 -proc `m42=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m42 = x -proc m42*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m42 -proc m42*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m42 -proc `m43=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m43 = x -proc m43*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m43 -proc m43*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m43 -proc `m44=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = self.union1.struct1.m44 = x -proc m44*(self: INPUT_TRANSFORM): float32 {.inline.} = self.union1.struct1.m44 -proc m44*(self: var INPUT_TRANSFORM): var float32 {.inline.} = self.union1.struct1.m44 -proc `m=`*(self: var INPUT_TRANSFORM, x: array[4, array[4, float32]]) {.inline.} = self.union1.m = x -proc m*(self: INPUT_TRANSFORM): array[4, array[4, float32]] {.inline.} = self.union1.m -proc m*(self: var INPUT_TRANSFORM): var array[4, array[4, float32]] {.inline.} = self.union1.m + proc DialogBoxIndirectParam*( + hInstance: HINSTANCE, + hDialogTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + dwInitParam: LPARAM, + ): INT_PTR {.winapi, stdcall, dynlib: "user32", importc: "DialogBoxIndirectParamW".} + +proc DialogBoxIndirectW*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, +): INT_PTR {.winapi, inline.} = + DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + +proc `mi=`*(self: var INPUT, x: MOUSEINPUT) {.inline.} = + self.union1.mi = x + +proc mi*(self: INPUT): MOUSEINPUT {.inline.} = + self.union1.mi + +proc mi*(self: var INPUT): var MOUSEINPUT {.inline.} = + self.union1.mi + +proc `ki=`*(self: var INPUT, x: KEYBDINPUT) {.inline.} = + self.union1.ki = x + +proc ki*(self: INPUT): KEYBDINPUT {.inline.} = + self.union1.ki + +proc ki*(self: var INPUT): var KEYBDINPUT {.inline.} = + self.union1.ki + +proc `hi=`*(self: var INPUT, x: HARDWAREINPUT) {.inline.} = + self.union1.hi = x + +proc hi*(self: INPUT): HARDWAREINPUT {.inline.} = + self.union1.hi + +proc hi*(self: var INPUT): var HARDWAREINPUT {.inline.} = + self.union1.hi + +proc `cbSize=`*(self: var MONITORINFOEXA, x: DWORD) {.inline.} = + self.struct1.cbSize = x + +proc cbSize*(self: MONITORINFOEXA): DWORD {.inline.} = + self.struct1.cbSize + +proc cbSize*(self: var MONITORINFOEXA): var DWORD {.inline.} = + self.struct1.cbSize + +proc `rcMonitor=`*(self: var MONITORINFOEXA, x: RECT) {.inline.} = + self.struct1.rcMonitor = x + +proc rcMonitor*(self: MONITORINFOEXA): RECT {.inline.} = + self.struct1.rcMonitor + +proc rcMonitor*(self: var MONITORINFOEXA): var RECT {.inline.} = + self.struct1.rcMonitor + +proc `rcWork=`*(self: var MONITORINFOEXA, x: RECT) {.inline.} = + self.struct1.rcWork = x + +proc rcWork*(self: MONITORINFOEXA): RECT {.inline.} = + self.struct1.rcWork + +proc rcWork*(self: var MONITORINFOEXA): var RECT {.inline.} = + self.struct1.rcWork + +proc `dwFlags=`*(self: var MONITORINFOEXA, x: DWORD) {.inline.} = + self.struct1.dwFlags = x + +proc dwFlags*(self: MONITORINFOEXA): DWORD {.inline.} = + self.struct1.dwFlags + +proc dwFlags*(self: var MONITORINFOEXA): var DWORD {.inline.} = + self.struct1.dwFlags + +proc `cbSize=`*(self: var MONITORINFOEXW, x: DWORD) {.inline.} = + self.struct1.cbSize = x + +proc cbSize*(self: MONITORINFOEXW): DWORD {.inline.} = + self.struct1.cbSize + +proc cbSize*(self: var MONITORINFOEXW): var DWORD {.inline.} = + self.struct1.cbSize + +proc `rcMonitor=`*(self: var MONITORINFOEXW, x: RECT) {.inline.} = + self.struct1.rcMonitor = x + +proc rcMonitor*(self: MONITORINFOEXW): RECT {.inline.} = + self.struct1.rcMonitor + +proc rcMonitor*(self: var MONITORINFOEXW): var RECT {.inline.} = + self.struct1.rcMonitor + +proc `rcWork=`*(self: var MONITORINFOEXW, x: RECT) {.inline.} = + self.struct1.rcWork = x + +proc rcWork*(self: MONITORINFOEXW): RECT {.inline.} = + self.struct1.rcWork + +proc rcWork*(self: var MONITORINFOEXW): var RECT {.inline.} = + self.struct1.rcWork + +proc `dwFlags=`*(self: var MONITORINFOEXW, x: DWORD) {.inline.} = + self.struct1.dwFlags = x + +proc dwFlags*(self: MONITORINFOEXW): DWORD {.inline.} = + self.struct1.dwFlags + +proc dwFlags*(self: var MONITORINFOEXW): var DWORD {.inline.} = + self.struct1.dwFlags + +proc `ulButtons=`*(self: var RAWMOUSE, x: ULONG) {.inline.} = + self.union1.ulButtons = x + +proc ulButtons*(self: RAWMOUSE): ULONG {.inline.} = + self.union1.ulButtons + +proc ulButtons*(self: var RAWMOUSE): var ULONG {.inline.} = + self.union1.ulButtons + +proc `usButtonFlags=`*(self: var RAWMOUSE, x: USHORT) {.inline.} = + self.union1.struct1.usButtonFlags = x + +proc usButtonFlags*(self: RAWMOUSE): USHORT {.inline.} = + self.union1.struct1.usButtonFlags + +proc usButtonFlags*(self: var RAWMOUSE): var USHORT {.inline.} = + self.union1.struct1.usButtonFlags + +proc `usButtonData=`*(self: var RAWMOUSE, x: USHORT) {.inline.} = + self.union1.struct1.usButtonData = x + +proc usButtonData*(self: RAWMOUSE): USHORT {.inline.} = + self.union1.struct1.usButtonData + +proc usButtonData*(self: var RAWMOUSE): var USHORT {.inline.} = + self.union1.struct1.usButtonData + +proc `mouse=`*(self: var RID_DEVICE_INFO, x: RID_DEVICE_INFO_MOUSE) {.inline.} = + self.union1.mouse = x + +proc mouse*(self: RID_DEVICE_INFO): RID_DEVICE_INFO_MOUSE {.inline.} = + self.union1.mouse + +proc mouse*(self: var RID_DEVICE_INFO): var RID_DEVICE_INFO_MOUSE {.inline.} = + self.union1.mouse + +proc `keyboard=`*(self: var RID_DEVICE_INFO, x: RID_DEVICE_INFO_KEYBOARD) {.inline.} = + self.union1.keyboard = x + +proc keyboard*(self: RID_DEVICE_INFO): RID_DEVICE_INFO_KEYBOARD {.inline.} = + self.union1.keyboard + +proc keyboard*(self: var RID_DEVICE_INFO): var RID_DEVICE_INFO_KEYBOARD {.inline.} = + self.union1.keyboard + +proc `hid=`*(self: var RID_DEVICE_INFO, x: RID_DEVICE_INFO_HID) {.inline.} = + self.union1.hid = x + +proc hid*(self: RID_DEVICE_INFO): RID_DEVICE_INFO_HID {.inline.} = + self.union1.hid + +proc hid*(self: var RID_DEVICE_INFO): var RID_DEVICE_INFO_HID {.inline.} = + self.union1.hid + +proc `m11=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m11 = x + +proc m11*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m11 + +proc m11*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m11 + +proc `m12=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m12 = x + +proc m12*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m12 + +proc m12*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m12 + +proc `m13=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m13 = x + +proc m13*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m13 + +proc m13*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m13 + +proc `m14=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m14 = x + +proc m14*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m14 + +proc m14*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m14 + +proc `m21=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m21 = x + +proc m21*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m21 + +proc m21*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m21 + +proc `m22=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m22 = x + +proc m22*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m22 + +proc m22*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m22 + +proc `m23=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m23 = x + +proc m23*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m23 + +proc m23*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m23 + +proc `m24=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m24 = x + +proc m24*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m24 + +proc m24*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m24 + +proc `m31=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m31 = x + +proc m31*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m31 + +proc m31*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m31 + +proc `m32=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m32 = x + +proc m32*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m32 + +proc m32*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m32 + +proc `m33=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m33 = x + +proc m33*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m33 + +proc m33*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m33 + +proc `m34=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m34 = x + +proc m34*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m34 + +proc m34*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m34 + +proc `m41=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m41 = x + +proc m41*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m41 + +proc m41*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m41 + +proc `m42=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m42 = x + +proc m42*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m42 + +proc m42*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m42 + +proc `m43=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m43 = x + +proc m43*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m43 + +proc m43*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m43 + +proc `m44=`*(self: var INPUT_TRANSFORM, x: float32) {.inline.} = + self.union1.struct1.m44 = x + +proc m44*(self: INPUT_TRANSFORM): float32 {.inline.} = + self.union1.struct1.m44 + +proc m44*(self: var INPUT_TRANSFORM): var float32 {.inline.} = + self.union1.struct1.m44 + +proc `m=`*(self: var INPUT_TRANSFORM, x: array[4, array[4, float32]]) {.inline.} = + self.union1.m = x + +proc m*(self: INPUT_TRANSFORM): array[4, array[4, float32]] {.inline.} = + self.union1.m + +proc m*(self: var INPUT_TRANSFORM): var array[4, array[4, float32]] {.inline.} = + self.union1.m + when winimUnicode: type MENUTEMPLATE* = MENUTEMPLATEW @@ -5073,138 +7883,660 @@ LPSOUNDSENTRY* = LPSOUNDSENTRYW MONITORINFOEX* = MONITORINFOEXW LPMONITORINFOEX* = LPMONITORINFOEXW - proc wvsprintf*(P1: LPWSTR, P2: LPCWSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "user32", importc: "wvsprintfW".} - proc wsprintf*(P1: LPWSTR, P2: LPCWSTR): int32 {.winapi, stdcall, dynlib: "user32", importc: "wsprintfW".} - proc LoadKeyboardLayout*(pwszKLID: LPCWSTR, Flags: UINT): HKL {.winapi, stdcall, dynlib: "user32", importc: "LoadKeyboardLayoutW".} - proc GetKeyboardLayoutName*(pwszKLID: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetKeyboardLayoutNameW".} - proc CreateDesktop*(lpszDesktop: LPCWSTR, lpszDevice: LPCWSTR, pDevmode: LPDEVMODEW, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopW".} - proc CreateDesktopEx*(lpszDesktop: LPCWSTR, lpszDevice: LPCWSTR, pDevmode: ptr DEVMODEW, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES, ulHeapSize: ULONG, pvoid: PVOID): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopExW".} - proc OpenDesktop*(lpszDesktop: LPCWSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HDESK {.winapi, stdcall, dynlib: "user32", importc: "OpenDesktopW".} - proc EnumDesktops*(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDesktopsW".} - proc CreateWindowStation*(lpwinsta: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowStationW".} - proc OpenWindowStation*(lpszWinSta: LPCWSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "OpenWindowStationW".} - proc EnumWindowStations*(lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumWindowStationsW".} - proc GetUserObjectInformation*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetUserObjectInformationW".} - proc SetUserObjectInformation*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetUserObjectInformationW".} - proc RegisterWindowMessage*(lpString: LPCWSTR): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterWindowMessageW".} - proc GetMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMessageW".} - proc DispatchMessage*(lpMsg: ptr MSG): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DispatchMessageW".} - proc PeekMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PeekMessageW".} - proc SendMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageW".} - proc SendMessageTimeout*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, fuFlags: UINT, uTimeout: UINT, lpdwResult: PDWORD_PTR): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageTimeoutW".} - proc SendNotifyMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendNotifyMessageW".} - proc SendMessageCallback*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, lpResultCallBack: SENDASYNCPROC, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendMessageCallbackW".} - proc BroadcastSystemMessageEx*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM, pbsmInfo: PBSMINFO): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageExW".} - proc BroadcastSystemMessage*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageW".} - proc RegisterDeviceNotification*(hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD): HDEVNOTIFY {.winapi, stdcall, dynlib: "user32", importc: "RegisterDeviceNotificationW".} - proc PostMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostMessageW".} - proc PostThreadMessage*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageW".} - proc DefWindowProc*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefWindowProcW".} - proc CallWindowProc*(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "CallWindowProcW".} - proc RegisterClass*(lpWndClass: ptr WNDCLASSW): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassW".} - proc UnregisterClass*(lpClassName: LPCWSTR, hInstance: HINSTANCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "UnregisterClassW".} - proc GetClassInfo*(hInstance: HINSTANCE, lpClassName: LPCWSTR, lpWndClass: LPWNDCLASSW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoW".} - proc RegisterClassEx*(P1: ptr WNDCLASSEXW): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassExW".} - proc GetClassInfoEx*(hInstance: HINSTANCE, lpszClass: LPCWSTR, lpwcx: LPWNDCLASSEXW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoExW".} - proc SetDlgItemText*(hDlg: HWND, nIDDlgItem: int32, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetDlgItemTextW".} - proc GetDlgItemText*(hDlg: HWND, nIDDlgItem: int32, lpString: LPWSTR, cchMax: int32): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetDlgItemTextW".} - proc SendDlgItemMessage*(hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendDlgItemMessageW".} - proc DefDlgProc*(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefDlgProcW".} - proc CallMsgFilter*(lpMsg: LPMSG, nCode: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CallMsgFilterW".} - proc RegisterClipboardFormat*(lpszFormat: LPCWSTR): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterClipboardFormatW".} - proc GetClipboardFormatName*(format: UINT, lpszFormatName: LPWSTR, cchMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClipboardFormatNameW".} - proc CharToOem*(lpszSrc: LPCWSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemW".} - proc OemToChar*(lpszSrc: LPCSTR, lpszDst: LPWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharW".} - proc CharToOemBuff*(lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemBuffW".} - proc OemToCharBuff*(lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharBuffW".} - proc CharUpper*(lpsz: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharUpperW".} - proc CharUpperBuff*(lpsz: LPWSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharUpperBuffW".} - proc CharLower*(lpsz: LPWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharLowerW".} - proc CharLowerBuff*(lpsz: LPWSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharLowerBuffW".} - proc CharNext*(lpsz: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharNextW".} - proc CharPrev*(lpszStart: LPCWSTR, lpszCurrent: LPCWSTR): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharPrevW".} - proc IsCharAlpha*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaW".} - proc IsCharAlphaNumeric*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaNumericW".} - proc IsCharUpper*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharUpperW".} - proc IsCharLower*(ch: WCHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharLowerW".} - proc GetKeyNameText*(lParam: LONG, lpString: LPWSTR, cchSize: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetKeyNameTextW".} - proc VkKeyScan*(ch: WCHAR): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanW".} - proc VkKeyScanEx*(ch: WCHAR, dwhkl: HKL): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanExW".} - proc MapVirtualKey*(uCode: UINT, uMapType: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyW".} - proc MapVirtualKeyEx*(uCode: UINT, uMapType: UINT, dwhkl: HKL): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyExW".} - proc LoadAccelerators*(hInstance: HINSTANCE, lpTableName: LPCWSTR): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "LoadAcceleratorsW".} - proc CreateAcceleratorTable*(paccel: LPACCEL, cAccel: int32): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "CreateAcceleratorTableW".} - proc CopyAcceleratorTable*(hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "CopyAcceleratorTableW".} - proc TranslateAccelerator*(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG): int32 {.winapi, stdcall, dynlib: "user32", importc: "TranslateAcceleratorW".} - proc LoadMenu*(hInstance: HINSTANCE, lpMenuName: LPCWSTR): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuW".} - proc LoadMenuIndirect*(lpMenuTemplate: ptr MENUTEMPLATEW): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuIndirectW".} - proc ChangeMenu*(hMenu: HMENU, cmd: UINT, lpszNewItem: LPCWSTR, cmdInsert: UINT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ChangeMenuW".} - proc GetMenuString*(hMenu: HMENU, uIDItem: UINT, lpString: LPWSTR, cchMax: int32, flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetMenuStringW".} - proc InsertMenu*(hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuW".} - proc AppendMenu*(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "AppendMenuW".} - proc ModifyMenu*(hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ModifyMenuW".} - proc InsertMenuItem*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuItemW".} - proc GetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMenuItemInfoW".} - proc SetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetMenuItemInfoW".} - proc DrawText*(hdc: HDC, lpchText: LPCWSTR, cchText: int32, lprc: LPRECT, format: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextW".} - proc DrawTextEx*(hdc: HDC, lpchText: LPWSTR, cchText: int32, lprc: LPRECT, format: UINT, lpdtp: LPDRAWTEXTPARAMS): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextExW".} - proc GrayString*(hDC: HDC, hBrush: HBRUSH, lpOutputFunc: GRAYSTRINGPROC, lpData: LPARAM, nCount: int32, X: int32, Y: int32, nWidth: int32, nHeight: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GrayStringW".} - proc DrawState*(hdc: HDC, hbrFore: HBRUSH, qfnCallBack: DRAWSTATEPROC, lData: LPARAM, wData: WPARAM, x: int32, y: int32, cx: int32, cy: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DrawStateW".} - proc TabbedTextOut*(hdc: HDC, x: int32, y: int32, lpString: LPCWSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT, nTabOrigin: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "TabbedTextOutW".} - proc GetTabbedTextExtent*(hdc: HDC, lpString: LPCWSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetTabbedTextExtentW".} - proc SetProp*(hWnd: HWND, lpString: LPCWSTR, hData: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetPropW".} - proc GetProp*(hWnd: HWND, lpString: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "GetPropW".} - proc RemoveProp*(hWnd: HWND, lpString: LPCWSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "RemovePropW".} - proc EnumPropsEx*(hWnd: HWND, lpEnumFunc: PROPENUMPROCEXW, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsExW".} - proc EnumProps*(hWnd: HWND, lpEnumFunc: PROPENUMPROCW): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsW".} - proc SetWindowText*(hWnd: HWND, lpString: LPCWSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetWindowTextW".} - proc GetWindowText*(hWnd: HWND, lpString: LPWSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextW".} - proc GetWindowTextLength*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextLengthW".} - proc MessageBox*(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxW".} - proc MessageBoxEx*(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT, wLanguageId: WORD): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxExW".} - proc MessageBoxIndirect*(lpmbp: ptr MSGBOXPARAMSW): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxIndirectW".} - proc GetWindowLong*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".} - proc SetWindowLong*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".} - proc GetClassLong*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongW".} - proc SetClassLong*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongW".} - proc FindWindow*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowW".} - proc FindWindowEx*(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCWSTR, lpszWindow: LPCWSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowExW".} - proc GetClassName*(hWnd: HWND, lpClassName: LPWSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClassNameW".} - proc SetWindowsHook*(nFilterType: int32, pfnFilterProc: HOOKPROC): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookW".} - proc SetWindowsHookEx*(idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookExW".} - proc LoadBitmap*(hInstance: HINSTANCE, lpBitmapName: LPCWSTR): HBITMAP {.winapi, stdcall, dynlib: "user32", importc: "LoadBitmapW".} - proc LoadCursor*(hInstance: HINSTANCE, lpCursorName: LPCWSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorW".} - proc LoadCursorFromFile*(lpFileName: LPCWSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorFromFileW".} - proc LoadIcon*(hInstance: HINSTANCE, lpIconName: LPCWSTR): HICON {.winapi, stdcall, dynlib: "user32", importc: "LoadIconW".} - proc PrivateExtractIcons*(szFileName: LPCWSTR, nIconIndex: int32, cxIcon: int32, cyIcon: int32, phicon: ptr HICON, piconid: ptr UINT, nIcons: UINT, flags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "PrivateExtractIconsW".} - proc LoadImage*(hInst: HINSTANCE, name: LPCWSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "LoadImageW".} - proc GetIconInfoEx*(hicon: HICON, piconinfo: PICONINFOEXW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetIconInfoExW".} - proc IsDialogMessage*(hDlg: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsDialogMessageW".} - proc DlgDirList*(hDlg: HWND, lpPathSpec: LPWSTR, nIDListBox: int32, nIDStaticPath: int32, uFileType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListW".} - proc DlgDirSelectEx*(hwndDlg: HWND, lpString: LPWSTR, chCount: int32, idListBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectExW".} - proc DlgDirListComboBox*(hDlg: HWND, lpPathSpec: LPWSTR, nIDComboBox: int32, nIDStaticPath: int32, uFiletype: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListComboBoxW".} - proc DlgDirSelectComboBoxEx*(hwndDlg: HWND, lpString: LPWSTR, cchOut: int32, idComboBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectComboBoxExW".} - proc DefFrameProc*(hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefFrameProcW".} - proc DefMDIChildProc*(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefMDIChildProcW".} - proc CreateMDIWindow*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hInstance: HINSTANCE, lParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateMDIWindowW".} - proc WinHelp*(hWndMain: HWND, lpszHelp: LPCWSTR, uCommand: UINT, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "WinHelpW".} - proc ChangeDisplaySettings*(lpDevMode: LPDEVMODEW, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsW".} - proc ChangeDisplaySettingsEx*(lpszDeviceName: LPCWSTR, lpDevMode: LPDEVMODEW, hwnd: HWND, dwflags: DWORD, lParam: LPVOID): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsExW".} - proc EnumDisplaySettings*(lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsW".} - proc EnumDisplaySettingsEx*(lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsExW".} - proc EnumDisplayDevices*(lpDevice: LPCWSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEW, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplayDevicesW".} - proc SystemParametersInfo*(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SystemParametersInfoW".} - proc GetMonitorInfo*(hMonitor: HMONITOR, lpmi: LPMONITORINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMonitorInfoW".} - proc GetWindowModuleFileName*(hwnd: HWND, pszFileName: LPWSTR, cchFileNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetWindowModuleFileNameW".} - proc RealGetWindowClass*(hwnd: HWND, ptszClassName: LPWSTR, cchClassNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "RealGetWindowClassW".} - proc GetAltTabInfo*(hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPWSTR, cchItemText: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetAltTabInfoW".} - proc GetRawInputDeviceInfo*(hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetRawInputDeviceInfoW".} - proc PostAppMessage*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageW".} - proc CreateWindow*(lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, inline.} = CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) - proc CreateDialog*(hInstance: HINSTANCE, lpName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0) - proc CreateDialogIndirect*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) - proc DialogBox*(hInstance: HINSTANCE, lpTemplate: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) - proc DialogBoxIndirect*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + + proc wvsprintf*( + P1: LPWSTR, P2: LPCWSTR, arglist: va_list + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "wvsprintfW".} + + proc wsprintf*( + P1: LPWSTR, P2: LPCWSTR + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "wsprintfW".} + + proc LoadKeyboardLayout*( + pwszKLID: LPCWSTR, Flags: UINT + ): HKL {.winapi, stdcall, dynlib: "user32", importc: "LoadKeyboardLayoutW".} + + proc GetKeyboardLayoutName*( + pwszKLID: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetKeyboardLayoutNameW".} + + proc CreateDesktop*( + lpszDesktop: LPCWSTR, + lpszDevice: LPCWSTR, + pDevmode: LPDEVMODEW, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopW".} + + proc CreateDesktopEx*( + lpszDesktop: LPCWSTR, + lpszDevice: LPCWSTR, + pDevmode: ptr DEVMODEW, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ulHeapSize: ULONG, + pvoid: PVOID, + ): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopExW".} + + proc OpenDesktop*( + lpszDesktop: LPCWSTR, + dwFlags: DWORD, + fInherit: WINBOOL, + dwDesiredAccess: ACCESS_MASK, + ): HDESK {.winapi, stdcall, dynlib: "user32", importc: "OpenDesktopW".} + + proc EnumDesktops*( + hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDesktopsW".} + + proc CreateWindowStation*( + lpwinsta: LPCWSTR, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowStationW".} + + proc OpenWindowStation*( + lpszWinSta: LPCWSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK + ): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "OpenWindowStationW".} + + proc EnumWindowStations*( + lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumWindowStationsW".} + + proc GetUserObjectInformation*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetUserObjectInformationW".} + + proc SetUserObjectInformation*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetUserObjectInformationW".} + + proc RegisterWindowMessage*( + lpString: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterWindowMessageW".} + + proc GetMessage*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMessageW".} + + proc DispatchMessage*( + lpMsg: ptr MSG + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DispatchMessageW".} + + proc PeekMessage*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PeekMessageW".} + + proc SendMessage*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageW".} + + proc SendMessageTimeout*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + fuFlags: UINT, + uTimeout: UINT, + lpdwResult: PDWORD_PTR, + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageTimeoutW".} + + proc SendNotifyMessage*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendNotifyMessageW".} + + proc SendMessageCallback*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + lpResultCallBack: SENDASYNCPROC, + dwData: ULONG_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendMessageCallbackW".} + + proc BroadcastSystemMessageEx*( + flags: DWORD, + lpInfo: LPDWORD, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pbsmInfo: PBSMINFO, + ): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageExW".} + + proc BroadcastSystemMessage*( + flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageW".} + + proc RegisterDeviceNotification*( + hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD + ): HDEVNOTIFY {. + winapi, stdcall, dynlib: "user32", importc: "RegisterDeviceNotificationW" + .} + + proc PostMessage*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostMessageW".} + + proc PostThreadMessage*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageW".} + + proc DefWindowProc*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefWindowProcW".} + + proc CallWindowProc*( + lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "CallWindowProcW".} + + proc RegisterClass*( + lpWndClass: ptr WNDCLASSW + ): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassW".} + + proc UnregisterClass*( + lpClassName: LPCWSTR, hInstance: HINSTANCE + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "UnregisterClassW".} + + proc GetClassInfo*( + hInstance: HINSTANCE, lpClassName: LPCWSTR, lpWndClass: LPWNDCLASSW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoW".} + + proc RegisterClassEx*( + P1: ptr WNDCLASSEXW + ): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassExW".} + + proc GetClassInfoEx*( + hInstance: HINSTANCE, lpszClass: LPCWSTR, lpwcx: LPWNDCLASSEXW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoExW".} + + proc SetDlgItemText*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetDlgItemTextW".} + + proc GetDlgItemText*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPWSTR, cchMax: int32 + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetDlgItemTextW".} + + proc SendDlgItemMessage*( + hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendDlgItemMessageW".} + + proc DefDlgProc*( + hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefDlgProcW".} + + proc CallMsgFilter*( + lpMsg: LPMSG, nCode: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CallMsgFilterW".} + + proc RegisterClipboardFormat*( + lpszFormat: LPCWSTR + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterClipboardFormatW".} + + proc GetClipboardFormatName*( + format: UINT, lpszFormatName: LPWSTR, cchMaxCount: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClipboardFormatNameW".} + + proc CharToOem*( + lpszSrc: LPCWSTR, lpszDst: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemW".} + + proc OemToChar*( + lpszSrc: LPCSTR, lpszDst: LPWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharW".} + + proc CharToOemBuff*( + lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemBuffW".} + + proc OemToCharBuff*( + lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharBuffW".} + + proc CharUpper*( + lpsz: LPWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharUpperW".} + + proc CharUpperBuff*( + lpsz: LPWSTR, cchLength: DWORD + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharUpperBuffW".} + + proc CharLower*( + lpsz: LPWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharLowerW".} + + proc CharLowerBuff*( + lpsz: LPWSTR, cchLength: DWORD + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharLowerBuffW".} + + proc CharNext*( + lpsz: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharNextW".} + + proc CharPrev*( + lpszStart: LPCWSTR, lpszCurrent: LPCWSTR + ): LPWSTR {.winapi, stdcall, dynlib: "user32", importc: "CharPrevW".} + + proc IsCharAlpha*( + ch: WCHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaW".} + + proc IsCharAlphaNumeric*( + ch: WCHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaNumericW".} + + proc IsCharUpper*( + ch: WCHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharUpperW".} + + proc IsCharLower*( + ch: WCHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharLowerW".} + + proc GetKeyNameText*( + lParam: LONG, lpString: LPWSTR, cchSize: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetKeyNameTextW".} + + proc VkKeyScan*( + ch: WCHAR + ): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanW".} + + proc VkKeyScanEx*( + ch: WCHAR, dwhkl: HKL + ): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanExW".} + + proc MapVirtualKey*( + uCode: UINT, uMapType: UINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyW".} + + proc MapVirtualKeyEx*( + uCode: UINT, uMapType: UINT, dwhkl: HKL + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyExW".} + + proc LoadAccelerators*( + hInstance: HINSTANCE, lpTableName: LPCWSTR + ): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "LoadAcceleratorsW".} + + proc CreateAcceleratorTable*( + paccel: LPACCEL, cAccel: int32 + ): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "CreateAcceleratorTableW".} + + proc CopyAcceleratorTable*( + hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "CopyAcceleratorTableW".} + + proc TranslateAccelerator*( + hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "TranslateAcceleratorW".} + + proc LoadMenu*( + hInstance: HINSTANCE, lpMenuName: LPCWSTR + ): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuW".} + + proc LoadMenuIndirect*( + lpMenuTemplate: ptr MENUTEMPLATEW + ): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuIndirectW".} + + proc ChangeMenu*( + hMenu: HMENU, cmd: UINT, lpszNewItem: LPCWSTR, cmdInsert: UINT, flags: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ChangeMenuW".} + + proc GetMenuString*( + hMenu: HMENU, uIDItem: UINT, lpString: LPWSTR, cchMax: int32, flags: UINT + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetMenuStringW".} + + proc InsertMenu*( + hMenu: HMENU, + uPosition: UINT, + uFlags: UINT, + uIDNewItem: UINT_PTR, + lpNewItem: LPCWSTR, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuW".} + + proc AppendMenu*( + hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "AppendMenuW".} + + proc ModifyMenu*( + hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ModifyMenuW".} + + proc InsertMenuItem*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuItemW".} + + proc GetMenuItemInfo*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMenuItemInfoW".} + + proc SetMenuItemInfo*( + hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetMenuItemInfoW".} + + proc DrawText*( + hdc: HDC, lpchText: LPCWSTR, cchText: int32, lprc: LPRECT, format: UINT + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextW".} + + proc DrawTextEx*( + hdc: HDC, + lpchText: LPWSTR, + cchText: int32, + lprc: LPRECT, + format: UINT, + lpdtp: LPDRAWTEXTPARAMS, + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextExW".} + + proc GrayString*( + hDC: HDC, + hBrush: HBRUSH, + lpOutputFunc: GRAYSTRINGPROC, + lpData: LPARAM, + nCount: int32, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GrayStringW".} + + proc DrawState*( + hdc: HDC, + hbrFore: HBRUSH, + qfnCallBack: DRAWSTATEPROC, + lData: LPARAM, + wData: WPARAM, + x: int32, + y: int32, + cx: int32, + cy: int32, + uFlags: UINT, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DrawStateW".} + + proc TabbedTextOut*( + hdc: HDC, + x: int32, + y: int32, + lpString: LPCWSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, + nTabOrigin: int32, + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "TabbedTextOutW".} + + proc GetTabbedTextExtent*( + hdc: HDC, + lpString: LPCWSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetTabbedTextExtentW".} + + proc SetProp*( + hWnd: HWND, lpString: LPCWSTR, hData: HANDLE + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetPropW".} + + proc GetProp*( + hWnd: HWND, lpString: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "GetPropW".} + + proc RemoveProp*( + hWnd: HWND, lpString: LPCWSTR + ): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "RemovePropW".} + + proc EnumPropsEx*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCEXW, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsExW".} + + proc EnumProps*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCW + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsW".} + + proc SetWindowText*( + hWnd: HWND, lpString: LPCWSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetWindowTextW".} + + proc GetWindowText*( + hWnd: HWND, lpString: LPWSTR, nMaxCount: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextW".} + + proc GetWindowTextLength*( + hWnd: HWND + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextLengthW".} + + proc MessageBox*( + hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxW".} + + proc MessageBoxEx*( + hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT, wLanguageId: WORD + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxExW".} + + proc MessageBoxIndirect*( + lpmbp: ptr MSGBOXPARAMSW + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxIndirectW".} + + proc GetWindowLong*( + hWnd: HWND, nIndex: int32 + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".} + + proc SetWindowLong*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".} + + proc GetClassLong*( + hWnd: HWND, nIndex: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongW".} + + proc SetClassLong*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongW".} + + proc FindWindow*( + lpClassName: LPCWSTR, lpWindowName: LPCWSTR + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowW".} + + proc FindWindowEx*( + hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCWSTR, lpszWindow: LPCWSTR + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowExW".} + + proc GetClassName*( + hWnd: HWND, lpClassName: LPWSTR, nMaxCount: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClassNameW".} + + proc SetWindowsHook*( + nFilterType: int32, pfnFilterProc: HOOKPROC + ): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookW".} + + proc SetWindowsHookEx*( + idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD + ): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookExW".} + + proc LoadBitmap*( + hInstance: HINSTANCE, lpBitmapName: LPCWSTR + ): HBITMAP {.winapi, stdcall, dynlib: "user32", importc: "LoadBitmapW".} + + proc LoadCursor*( + hInstance: HINSTANCE, lpCursorName: LPCWSTR + ): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorW".} + + proc LoadCursorFromFile*( + lpFileName: LPCWSTR + ): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorFromFileW".} + + proc LoadIcon*( + hInstance: HINSTANCE, lpIconName: LPCWSTR + ): HICON {.winapi, stdcall, dynlib: "user32", importc: "LoadIconW".} + + proc PrivateExtractIcons*( + szFileName: LPCWSTR, + nIconIndex: int32, + cxIcon: int32, + cyIcon: int32, + phicon: ptr HICON, + piconid: ptr UINT, + nIcons: UINT, + flags: UINT, + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "PrivateExtractIconsW".} + + proc LoadImage*( + hInst: HINSTANCE, name: LPCWSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT + ): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "LoadImageW".} + + proc GetIconInfoEx*( + hicon: HICON, piconinfo: PICONINFOEXW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetIconInfoExW".} + + proc IsDialogMessage*( + hDlg: HWND, lpMsg: LPMSG + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsDialogMessageW".} + + proc DlgDirList*( + hDlg: HWND, + lpPathSpec: LPWSTR, + nIDListBox: int32, + nIDStaticPath: int32, + uFileType: UINT, + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListW".} + + proc DlgDirSelectEx*( + hwndDlg: HWND, lpString: LPWSTR, chCount: int32, idListBox: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectExW".} + + proc DlgDirListComboBox*( + hDlg: HWND, + lpPathSpec: LPWSTR, + nIDComboBox: int32, + nIDStaticPath: int32, + uFiletype: UINT, + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListComboBoxW".} + + proc DlgDirSelectComboBoxEx*( + hwndDlg: HWND, lpString: LPWSTR, cchOut: int32, idComboBox: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectComboBoxExW".} + + proc DefFrameProc*( + hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefFrameProcW".} + + proc DefMDIChildProc*( + hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefMDIChildProcW".} + + proc CreateMDIWindow*( + lpClassName: LPCWSTR, + lpWindowName: LPCWSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hInstance: HINSTANCE, + lParam: LPARAM, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateMDIWindowW".} + + proc WinHelp*( + hWndMain: HWND, lpszHelp: LPCWSTR, uCommand: UINT, dwData: ULONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "WinHelpW".} + + proc ChangeDisplaySettings*( + lpDevMode: LPDEVMODEW, dwFlags: DWORD + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsW".} + + proc ChangeDisplaySettingsEx*( + lpszDeviceName: LPCWSTR, + lpDevMode: LPDEVMODEW, + hwnd: HWND, + dwflags: DWORD, + lParam: LPVOID, + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsExW".} + + proc EnumDisplaySettings*( + lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsW".} + + proc EnumDisplaySettingsEx*( + lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEW, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsExW".} + + proc EnumDisplayDevices*( + lpDevice: LPCWSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEW, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplayDevicesW".} + + proc SystemParametersInfo*( + uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SystemParametersInfoW".} + + proc GetMonitorInfo*( + hMonitor: HMONITOR, lpmi: LPMONITORINFO + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMonitorInfoW".} + + proc GetWindowModuleFileName*( + hwnd: HWND, pszFileName: LPWSTR, cchFileNameMax: UINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetWindowModuleFileNameW".} + + proc RealGetWindowClass*( + hwnd: HWND, ptszClassName: LPWSTR, cchClassNameMax: UINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "RealGetWindowClassW".} + + proc GetAltTabInfo*( + hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPWSTR, cchItemText: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetAltTabInfoW".} + + proc GetRawInputDeviceInfo*( + hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetRawInputDeviceInfoW".} + + proc PostAppMessage*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageW".} + + proc CreateWindow*( + lpClassName: LPCWSTR, + lpWindowName: LPCWSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, + ): HWND {.winapi, inline.} = + CreateWindowExW( + 0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, + hInstance, lpParam, + ) + + proc CreateDialog*( + hInstance: HINSTANCE, lpName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC + ): HWND {.winapi, inline.} = + CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0) + + proc CreateDialogIndirect*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + ): HWND {.winapi, inline.} = + CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + + proc DialogBox*( + hInstance: HINSTANCE, lpTemplate: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC + ): INT_PTR {.winapi, inline.} = + DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + + proc DialogBoxIndirect*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEW, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + ): INT_PTR {.winapi, inline.} = + DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + when winimAnsi: type MENUTEMPLATE* = MENUTEMPLATEA @@ -5260,179 +8592,789 @@ LPSOUNDSENTRY* = LPSOUNDSENTRYA MONITORINFOEX* = MONITORINFOEXA LPMONITORINFOEX* = LPMONITORINFOEXA - proc wvsprintf*(P1: LPSTR, P2: LPCSTR, arglist: va_list): int32 {.winapi, stdcall, dynlib: "user32", importc: "wvsprintfA".} - proc wsprintf*(P1: LPSTR, P2: LPCSTR): int32 {.winapi, stdcall, dynlib: "user32", importc: "wsprintfA".} - proc LoadKeyboardLayout*(pwszKLID: LPCSTR, Flags: UINT): HKL {.winapi, stdcall, dynlib: "user32", importc: "LoadKeyboardLayoutA".} - proc GetKeyboardLayoutName*(pwszKLID: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetKeyboardLayoutNameA".} - proc CreateDesktop*(lpszDesktop: LPCSTR, lpszDevice: LPCSTR, pDevmode: LPDEVMODEA, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopA".} - proc CreateDesktopEx*(lpszDesktop: LPCSTR, lpszDevice: LPCSTR, pDevmode: ptr DEVMODEA, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES, ulHeapSize: ULONG, pvoid: PVOID): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopExA".} - proc OpenDesktop*(lpszDesktop: LPCSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HDESK {.winapi, stdcall, dynlib: "user32", importc: "OpenDesktopA".} - proc EnumDesktops*(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDesktopsA".} - proc CreateWindowStation*(lpwinsta: LPCSTR, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowStationA".} - proc OpenWindowStation*(lpszWinSta: LPCSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "OpenWindowStationA".} - proc EnumWindowStations*(lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumWindowStationsA".} - proc GetUserObjectInformation*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetUserObjectInformationA".} - proc SetUserObjectInformation*(hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetUserObjectInformationA".} - proc RegisterWindowMessage*(lpString: LPCSTR): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterWindowMessageA".} - proc GetMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMessageA".} - proc DispatchMessage*(lpMsg: ptr MSG): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DispatchMessageA".} - proc PeekMessage*(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PeekMessageA".} - proc SendMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageA".} - proc SendMessageTimeout*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, fuFlags: UINT, uTimeout: UINT, lpdwResult: PDWORD_PTR): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageTimeoutA".} - proc SendNotifyMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendNotifyMessageA".} - proc SendMessageCallback*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, lpResultCallBack: SENDASYNCPROC, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendMessageCallbackA".} - proc BroadcastSystemMessageEx*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM, pbsmInfo: PBSMINFO): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageExA".} - proc BroadcastSystemMessage*(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageA".} - proc RegisterDeviceNotification*(hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD): HDEVNOTIFY {.winapi, stdcall, dynlib: "user32", importc: "RegisterDeviceNotificationA".} - proc PostMessage*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostMessageA".} - proc PostThreadMessage*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageA".} - proc DefWindowProc*(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefWindowProcA".} - proc CallWindowProc*(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "CallWindowProcA".} - proc RegisterClass*(lpWndClass: ptr WNDCLASSA): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassA".} - proc UnregisterClass*(lpClassName: LPCSTR, hInstance: HINSTANCE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "UnregisterClassA".} - proc GetClassInfo*(hInstance: HINSTANCE, lpClassName: LPCSTR, lpWndClass: LPWNDCLASSA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoA".} - proc RegisterClassEx*(P1: ptr WNDCLASSEXA): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassExA".} - proc GetClassInfoEx*(hInstance: HINSTANCE, lpszClass: LPCSTR, lpwcx: LPWNDCLASSEXA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoExA".} - proc SetDlgItemText*(hDlg: HWND, nIDDlgItem: int32, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetDlgItemTextA".} - proc GetDlgItemText*(hDlg: HWND, nIDDlgItem: int32, lpString: LPSTR, cchMax: int32): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetDlgItemTextA".} - proc SendDlgItemMessage*(hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendDlgItemMessageA".} - proc DefDlgProc*(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefDlgProcA".} - proc CallMsgFilter*(lpMsg: LPMSG, nCode: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CallMsgFilterA".} - proc RegisterClipboardFormat*(lpszFormat: LPCSTR): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterClipboardFormatA".} - proc GetClipboardFormatName*(format: UINT, lpszFormatName: LPSTR, cchMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClipboardFormatNameA".} - proc CharToOem*(lpszSrc: LPCSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemA".} - proc OemToChar*(lpszSrc: LPCSTR, lpszDst: LPSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharA".} - proc CharToOemBuff*(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemBuffA".} - proc OemToCharBuff*(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharBuffA".} - proc CharUpper*(lpsz: LPSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharUpperA".} - proc CharUpperBuff*(lpsz: LPSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharUpperBuffA".} - proc CharLower*(lpsz: LPSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharLowerA".} - proc CharLowerBuff*(lpsz: LPSTR, cchLength: DWORD): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharLowerBuffA".} - proc CharNext*(lpsz: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharNextA".} - proc CharPrev*(lpszStart: LPCSTR, lpszCurrent: LPCSTR): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharPrevA".} - proc IsCharAlpha*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaA".} - proc IsCharAlphaNumeric*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaNumericA".} - proc IsCharUpper*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharUpperA".} - proc IsCharLower*(ch: CHAR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharLowerA".} - proc GetKeyNameText*(lParam: LONG, lpString: LPSTR, cchSize: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetKeyNameTextA".} - proc VkKeyScan*(ch: CHAR): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanA".} - proc VkKeyScanEx*(ch: CHAR, dwhkl: HKL): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanExA".} - proc MapVirtualKey*(uCode: UINT, uMapType: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyA".} - proc MapVirtualKeyEx*(uCode: UINT, uMapType: UINT, dwhkl: HKL): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyExA".} - proc LoadAccelerators*(hInstance: HINSTANCE, lpTableName: LPCSTR): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "LoadAcceleratorsA".} - proc CreateAcceleratorTable*(paccel: LPACCEL, cAccel: int32): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "CreateAcceleratorTableA".} - proc CopyAcceleratorTable*(hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "CopyAcceleratorTableA".} - proc TranslateAccelerator*(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG): int32 {.winapi, stdcall, dynlib: "user32", importc: "TranslateAcceleratorA".} - proc LoadMenu*(hInstance: HINSTANCE, lpMenuName: LPCSTR): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuA".} - proc LoadMenuIndirect*(lpMenuTemplate: ptr MENUTEMPLATEA): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuIndirectA".} - proc ChangeMenu*(hMenu: HMENU, cmd: UINT, lpszNewItem: LPCSTR, cmdInsert: UINT, flags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ChangeMenuA".} - proc GetMenuString*(hMenu: HMENU, uIDItem: UINT, lpString: LPSTR, cchMax: int32, flags: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetMenuStringA".} - proc InsertMenu*(hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuA".} - proc AppendMenu*(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "AppendMenuA".} - proc ModifyMenu*(hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ModifyMenuA".} - proc InsertMenuItem*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuItemA".} - proc GetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMenuItemInfoA".} - proc SetMenuItemInfo*(hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetMenuItemInfoA".} - proc DrawText*(hdc: HDC, lpchText: LPCSTR, cchText: int32, lprc: LPRECT, format: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextA".} - proc DrawTextEx*(hdc: HDC, lpchText: LPSTR, cchText: int32, lprc: LPRECT, format: UINT, lpdtp: LPDRAWTEXTPARAMS): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextExA".} - proc GrayString*(hDC: HDC, hBrush: HBRUSH, lpOutputFunc: GRAYSTRINGPROC, lpData: LPARAM, nCount: int32, X: int32, Y: int32, nWidth: int32, nHeight: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GrayStringA".} - proc DrawState*(hdc: HDC, hbrFore: HBRUSH, qfnCallBack: DRAWSTATEPROC, lData: LPARAM, wData: WPARAM, x: int32, y: int32, cx: int32, cy: int32, uFlags: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DrawStateA".} - proc TabbedTextOut*(hdc: HDC, x: int32, y: int32, lpString: LPCSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT, nTabOrigin: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "TabbedTextOutA".} - proc GetTabbedTextExtent*(hdc: HDC, lpString: LPCSTR, chCount: int32, nTabPositions: int32, lpnTabStopPositions: ptr INT): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetTabbedTextExtentA".} - proc SetProp*(hWnd: HWND, lpString: LPCSTR, hData: HANDLE): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetPropA".} - proc GetProp*(hWnd: HWND, lpString: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "GetPropA".} - proc RemoveProp*(hWnd: HWND, lpString: LPCSTR): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "RemovePropA".} - proc EnumPropsEx*(hWnd: HWND, lpEnumFunc: PROPENUMPROCEXA, lParam: LPARAM): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsExA".} - proc EnumProps*(hWnd: HWND, lpEnumFunc: PROPENUMPROCA): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsA".} - proc SetWindowText*(hWnd: HWND, lpString: LPCSTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetWindowTextA".} - proc GetWindowText*(hWnd: HWND, lpString: LPSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextA".} - proc GetWindowTextLength*(hWnd: HWND): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextLengthA".} - proc MessageBox*(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxA".} - proc MessageBoxEx*(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT, wLanguageId: WORD): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxExA".} - proc MessageBoxIndirect*(lpmbp: ptr MSGBOXPARAMSA): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxIndirectA".} - proc GetWindowLong*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".} - proc SetWindowLong*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".} - proc GetClassLong*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongA".} - proc SetClassLong*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongA".} - proc FindWindow*(lpClassName: LPCSTR, lpWindowName: LPCSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowA".} - proc FindWindowEx*(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCSTR, lpszWindow: LPCSTR): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowExA".} - proc GetClassName*(hWnd: HWND, lpClassName: LPSTR, nMaxCount: int32): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClassNameA".} - proc SetWindowsHook*(nFilterType: int32, pfnFilterProc: HOOKPROC): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookA".} - proc SetWindowsHookEx*(idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookExA".} - proc LoadBitmap*(hInstance: HINSTANCE, lpBitmapName: LPCSTR): HBITMAP {.winapi, stdcall, dynlib: "user32", importc: "LoadBitmapA".} - proc LoadCursor*(hInstance: HINSTANCE, lpCursorName: LPCSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorA".} - proc LoadCursorFromFile*(lpFileName: LPCSTR): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorFromFileA".} - proc LoadIcon*(hInstance: HINSTANCE, lpIconName: LPCSTR): HICON {.winapi, stdcall, dynlib: "user32", importc: "LoadIconA".} - proc PrivateExtractIcons*(szFileName: LPCSTR, nIconIndex: int32, cxIcon: int32, cyIcon: int32, phicon: ptr HICON, piconid: ptr UINT, nIcons: UINT, flags: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "PrivateExtractIconsA".} - proc LoadImage*(hInst: HINSTANCE, name: LPCSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "LoadImageA".} - proc GetIconInfoEx*(hicon: HICON, piconinfo: PICONINFOEXA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetIconInfoExA".} - proc IsDialogMessage*(hDlg: HWND, lpMsg: LPMSG): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsDialogMessageA".} - proc DlgDirList*(hDlg: HWND, lpPathSpec: LPSTR, nIDListBox: int32, nIDStaticPath: int32, uFileType: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListA".} - proc DlgDirSelectEx*(hwndDlg: HWND, lpString: LPSTR, chCount: int32, idListBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectExA".} - proc DlgDirListComboBox*(hDlg: HWND, lpPathSpec: LPSTR, nIDComboBox: int32, nIDStaticPath: int32, uFiletype: UINT): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListComboBoxA".} - proc DlgDirSelectComboBoxEx*(hwndDlg: HWND, lpString: LPSTR, cchOut: int32, idComboBox: int32): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectComboBoxExA".} - proc DefFrameProc*(hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefFrameProcA".} - proc DefMDIChildProc*(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefMDIChildProcA".} - proc CreateMDIWindow*(lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: int32, Y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hInstance: HINSTANCE, lParam: LPARAM): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateMDIWindowA".} - proc WinHelp*(hWndMain: HWND, lpszHelp: LPCSTR, uCommand: UINT, dwData: ULONG_PTR): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "WinHelpA".} - proc ChangeDisplaySettings*(lpDevMode: LPDEVMODEA, dwFlags: DWORD): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsA".} - proc ChangeDisplaySettingsEx*(lpszDeviceName: LPCSTR, lpDevMode: LPDEVMODEA, hwnd: HWND, dwflags: DWORD, lParam: LPVOID): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsExA".} - proc EnumDisplaySettings*(lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsA".} - proc EnumDisplaySettingsEx*(lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsExA".} - proc EnumDisplayDevices*(lpDevice: LPCSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEA, dwFlags: DWORD): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplayDevicesA".} - proc SystemParametersInfo*(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SystemParametersInfoA".} - proc GetMonitorInfo*(hMonitor: HMONITOR, lpmi: LPMONITORINFO): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMonitorInfoA".} - proc GetWindowModuleFileName*(hwnd: HWND, pszFileName: LPSTR, cchFileNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetWindowModuleFileNameA".} - proc RealGetWindowClass*(hwnd: HWND, ptszClassName: LPSTR, cchClassNameMax: UINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "RealGetWindowClassA".} - proc GetAltTabInfo*(hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPSTR, cchItemText: UINT): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetAltTabInfoA".} - proc GetRawInputDeviceInfo*(hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetRawInputDeviceInfoA".} - proc PostAppMessage*(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageA".} - proc CreateWindow*(lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, x: int32, y: int32, nWidth: int32, nHeight: int32, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID): HWND {.winapi, inline.} = CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) - proc CreateDialog*(hInstance: HINSTANCE, lpName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0) - proc CreateDialogIndirect*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC): HWND {.winapi, inline.} = CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) - proc DialogBox*(hInstance: HINSTANCE, lpTemplate: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) - proc DialogBoxIndirect*(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC): INT_PTR {.winapi, inline.} = DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + + proc wvsprintf*( + P1: LPSTR, P2: LPCSTR, arglist: va_list + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "wvsprintfA".} + + proc wsprintf*( + P1: LPSTR, P2: LPCSTR + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "wsprintfA".} + + proc LoadKeyboardLayout*( + pwszKLID: LPCSTR, Flags: UINT + ): HKL {.winapi, stdcall, dynlib: "user32", importc: "LoadKeyboardLayoutA".} + + proc GetKeyboardLayoutName*( + pwszKLID: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetKeyboardLayoutNameA".} + + proc CreateDesktop*( + lpszDesktop: LPCSTR, + lpszDevice: LPCSTR, + pDevmode: LPDEVMODEA, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopA".} + + proc CreateDesktopEx*( + lpszDesktop: LPCSTR, + lpszDevice: LPCSTR, + pDevmode: ptr DEVMODEA, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ulHeapSize: ULONG, + pvoid: PVOID, + ): HDESK {.winapi, stdcall, dynlib: "user32", importc: "CreateDesktopExA".} + + proc OpenDesktop*( + lpszDesktop: LPCSTR, dwFlags: DWORD, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK + ): HDESK {.winapi, stdcall, dynlib: "user32", importc: "OpenDesktopA".} + + proc EnumDesktops*( + hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDesktopsA".} + + proc CreateWindowStation*( + lpwinsta: LPCSTR, + dwFlags: DWORD, + dwDesiredAccess: ACCESS_MASK, + lpsa: LPSECURITY_ATTRIBUTES, + ): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "CreateWindowStationA".} + + proc OpenWindowStation*( + lpszWinSta: LPCSTR, fInherit: WINBOOL, dwDesiredAccess: ACCESS_MASK + ): HWINSTA {.winapi, stdcall, dynlib: "user32", importc: "OpenWindowStationA".} + + proc EnumWindowStations*( + lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumWindowStationsA".} + + proc GetUserObjectInformation*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetUserObjectInformationA".} + + proc SetUserObjectInformation*( + hObj: HANDLE, nIndex: int32, pvInfo: PVOID, nLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetUserObjectInformationA".} + + proc RegisterWindowMessage*( + lpString: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterWindowMessageA".} + + proc GetMessage*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMessageA".} + + proc DispatchMessage*( + lpMsg: ptr MSG + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DispatchMessageA".} + + proc PeekMessage*( + lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PeekMessageA".} + + proc SendMessage*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageA".} + + proc SendMessageTimeout*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + fuFlags: UINT, + uTimeout: UINT, + lpdwResult: PDWORD_PTR, + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendMessageTimeoutA".} + + proc SendNotifyMessage*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendNotifyMessageA".} + + proc SendMessageCallback*( + hWnd: HWND, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + lpResultCallBack: SENDASYNCPROC, + dwData: ULONG_PTR, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SendMessageCallbackA".} + + proc BroadcastSystemMessageEx*( + flags: DWORD, + lpInfo: LPDWORD, + Msg: UINT, + wParam: WPARAM, + lParam: LPARAM, + pbsmInfo: PBSMINFO, + ): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageExA".} + + proc BroadcastSystemMessage*( + flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LONG32 {.winapi, stdcall, dynlib: "user32", importc: "BroadcastSystemMessageA".} + + proc RegisterDeviceNotification*( + hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD + ): HDEVNOTIFY {. + winapi, stdcall, dynlib: "user32", importc: "RegisterDeviceNotificationA" + .} + + proc PostMessage*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostMessageA".} + + proc PostThreadMessage*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageA".} + + proc DefWindowProc*( + hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefWindowProcA".} + + proc CallWindowProc*( + lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "CallWindowProcA".} + + proc RegisterClass*( + lpWndClass: ptr WNDCLASSA + ): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassA".} + + proc UnregisterClass*( + lpClassName: LPCSTR, hInstance: HINSTANCE + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "UnregisterClassA".} + + proc GetClassInfo*( + hInstance: HINSTANCE, lpClassName: LPCSTR, lpWndClass: LPWNDCLASSA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoA".} + + proc RegisterClassEx*( + P1: ptr WNDCLASSEXA + ): ATOM {.winapi, stdcall, dynlib: "user32", importc: "RegisterClassExA".} + + proc GetClassInfoEx*( + hInstance: HINSTANCE, lpszClass: LPCSTR, lpwcx: LPWNDCLASSEXA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetClassInfoExA".} + + proc SetDlgItemText*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetDlgItemTextA".} + + proc GetDlgItemText*( + hDlg: HWND, nIDDlgItem: int32, lpString: LPSTR, cchMax: int32 + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetDlgItemTextA".} + + proc SendDlgItemMessage*( + hDlg: HWND, nIDDlgItem: int32, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "SendDlgItemMessageA".} + + proc DefDlgProc*( + hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefDlgProcA".} + + proc CallMsgFilter*( + lpMsg: LPMSG, nCode: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CallMsgFilterA".} + + proc RegisterClipboardFormat*( + lpszFormat: LPCSTR + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "RegisterClipboardFormatA".} + + proc GetClipboardFormatName*( + format: UINT, lpszFormatName: LPSTR, cchMaxCount: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClipboardFormatNameA".} + + proc CharToOem*( + lpszSrc: LPCSTR, lpszDst: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemA".} + + proc OemToChar*( + lpszSrc: LPCSTR, lpszDst: LPSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharA".} + + proc CharToOemBuff*( + lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "CharToOemBuffA".} + + proc OemToCharBuff*( + lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "OemToCharBuffA".} + + proc CharUpper*( + lpsz: LPSTR + ): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharUpperA".} + + proc CharUpperBuff*( + lpsz: LPSTR, cchLength: DWORD + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharUpperBuffA".} + + proc CharLower*( + lpsz: LPSTR + ): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharLowerA".} + + proc CharLowerBuff*( + lpsz: LPSTR, cchLength: DWORD + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "CharLowerBuffA".} + + proc CharNext*( + lpsz: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharNextA".} + + proc CharPrev*( + lpszStart: LPCSTR, lpszCurrent: LPCSTR + ): LPSTR {.winapi, stdcall, dynlib: "user32", importc: "CharPrevA".} + + proc IsCharAlpha*( + ch: CHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaA".} + + proc IsCharAlphaNumeric*( + ch: CHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharAlphaNumericA".} + + proc IsCharUpper*( + ch: CHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharUpperA".} + + proc IsCharLower*( + ch: CHAR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsCharLowerA".} + + proc GetKeyNameText*( + lParam: LONG, lpString: LPSTR, cchSize: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetKeyNameTextA".} + + proc VkKeyScan*( + ch: CHAR + ): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanA".} + + proc VkKeyScanEx*( + ch: CHAR, dwhkl: HKL + ): SHORT {.winapi, stdcall, dynlib: "user32", importc: "VkKeyScanExA".} + + proc MapVirtualKey*( + uCode: UINT, uMapType: UINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyA".} + + proc MapVirtualKeyEx*( + uCode: UINT, uMapType: UINT, dwhkl: HKL + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "MapVirtualKeyExA".} + + proc LoadAccelerators*( + hInstance: HINSTANCE, lpTableName: LPCSTR + ): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "LoadAcceleratorsA".} + + proc CreateAcceleratorTable*( + paccel: LPACCEL, cAccel: int32 + ): HACCEL {.winapi, stdcall, dynlib: "user32", importc: "CreateAcceleratorTableA".} + + proc CopyAcceleratorTable*( + hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "CopyAcceleratorTableA".} + + proc TranslateAccelerator*( + hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "TranslateAcceleratorA".} + + proc LoadMenu*( + hInstance: HINSTANCE, lpMenuName: LPCSTR + ): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuA".} + + proc LoadMenuIndirect*( + lpMenuTemplate: ptr MENUTEMPLATEA + ): HMENU {.winapi, stdcall, dynlib: "user32", importc: "LoadMenuIndirectA".} + + proc ChangeMenu*( + hMenu: HMENU, cmd: UINT, lpszNewItem: LPCSTR, cmdInsert: UINT, flags: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ChangeMenuA".} + + proc GetMenuString*( + hMenu: HMENU, uIDItem: UINT, lpString: LPSTR, cchMax: int32, flags: UINT + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetMenuStringA".} + + proc InsertMenu*( + hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuA".} + + proc AppendMenu*( + hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "AppendMenuA".} + + proc ModifyMenu*( + hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "ModifyMenuA".} + + proc InsertMenuItem*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmi: LPCMENUITEMINFOA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "InsertMenuItemA".} + + proc GetMenuItemInfo*( + hmenu: HMENU, item: UINT, fByPosition: WINBOOL, lpmii: LPMENUITEMINFOA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMenuItemInfoA".} + + proc SetMenuItemInfo*( + hmenu: HMENU, item: UINT, fByPositon: WINBOOL, lpmii: LPCMENUITEMINFOA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetMenuItemInfoA".} + + proc DrawText*( + hdc: HDC, lpchText: LPCSTR, cchText: int32, lprc: LPRECT, format: UINT + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextA".} + + proc DrawTextEx*( + hdc: HDC, + lpchText: LPSTR, + cchText: int32, + lprc: LPRECT, + format: UINT, + lpdtp: LPDRAWTEXTPARAMS, + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DrawTextExA".} + + proc GrayString*( + hDC: HDC, + hBrush: HBRUSH, + lpOutputFunc: GRAYSTRINGPROC, + lpData: LPARAM, + nCount: int32, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GrayStringA".} + + proc DrawState*( + hdc: HDC, + hbrFore: HBRUSH, + qfnCallBack: DRAWSTATEPROC, + lData: LPARAM, + wData: WPARAM, + x: int32, + y: int32, + cx: int32, + cy: int32, + uFlags: UINT, + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DrawStateA".} + + proc TabbedTextOut*( + hdc: HDC, + x: int32, + y: int32, + lpString: LPCSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, + nTabOrigin: int32, + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "TabbedTextOutA".} + + proc GetTabbedTextExtent*( + hdc: HDC, + lpString: LPCSTR, + chCount: int32, + nTabPositions: int32, + lpnTabStopPositions: ptr INT, + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetTabbedTextExtentA".} + + proc SetProp*( + hWnd: HWND, lpString: LPCSTR, hData: HANDLE + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetPropA".} + + proc GetProp*( + hWnd: HWND, lpString: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "GetPropA".} + + proc RemoveProp*( + hWnd: HWND, lpString: LPCSTR + ): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "RemovePropA".} + + proc EnumPropsEx*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCEXA, lParam: LPARAM + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsExA".} + + proc EnumProps*( + hWnd: HWND, lpEnumFunc: PROPENUMPROCA + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "EnumPropsA".} + + proc SetWindowText*( + hWnd: HWND, lpString: LPCSTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SetWindowTextA".} + + proc GetWindowText*( + hWnd: HWND, lpString: LPSTR, nMaxCount: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextA".} + + proc GetWindowTextLength*( + hWnd: HWND + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetWindowTextLengthA".} + + proc MessageBox*( + hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxA".} + + proc MessageBoxEx*( + hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT, wLanguageId: WORD + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxExA".} + + proc MessageBoxIndirect*( + lpmbp: ptr MSGBOXPARAMSA + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "MessageBoxIndirectA".} + + proc GetWindowLong*( + hWnd: HWND, nIndex: int32 + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".} + + proc SetWindowLong*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".} + + proc GetClassLong*( + hWnd: HWND, nIndex: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongA".} + + proc SetClassLong*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongA".} + + proc FindWindow*( + lpClassName: LPCSTR, lpWindowName: LPCSTR + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowA".} + + proc FindWindowEx*( + hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCSTR, lpszWindow: LPCSTR + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "FindWindowExA".} + + proc GetClassName*( + hWnd: HWND, lpClassName: LPSTR, nMaxCount: int32 + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "GetClassNameA".} + + proc SetWindowsHook*( + nFilterType: int32, pfnFilterProc: HOOKPROC + ): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookA".} + + proc SetWindowsHookEx*( + idHook: int32, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD + ): HHOOK {.winapi, stdcall, dynlib: "user32", importc: "SetWindowsHookExA".} + + proc LoadBitmap*( + hInstance: HINSTANCE, lpBitmapName: LPCSTR + ): HBITMAP {.winapi, stdcall, dynlib: "user32", importc: "LoadBitmapA".} + + proc LoadCursor*( + hInstance: HINSTANCE, lpCursorName: LPCSTR + ): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorA".} + + proc LoadCursorFromFile*( + lpFileName: LPCSTR + ): HCURSOR {.winapi, stdcall, dynlib: "user32", importc: "LoadCursorFromFileA".} + + proc LoadIcon*( + hInstance: HINSTANCE, lpIconName: LPCSTR + ): HICON {.winapi, stdcall, dynlib: "user32", importc: "LoadIconA".} + + proc PrivateExtractIcons*( + szFileName: LPCSTR, + nIconIndex: int32, + cxIcon: int32, + cyIcon: int32, + phicon: ptr HICON, + piconid: ptr UINT, + nIcons: UINT, + flags: UINT, + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "PrivateExtractIconsA".} + + proc LoadImage*( + hInst: HINSTANCE, name: LPCSTR, `type`: UINT, cx: int32, cy: int32, fuLoad: UINT + ): HANDLE {.winapi, stdcall, dynlib: "user32", importc: "LoadImageA".} + + proc GetIconInfoEx*( + hicon: HICON, piconinfo: PICONINFOEXA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetIconInfoExA".} + + proc IsDialogMessage*( + hDlg: HWND, lpMsg: LPMSG + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "IsDialogMessageA".} + + proc DlgDirList*( + hDlg: HWND, + lpPathSpec: LPSTR, + nIDListBox: int32, + nIDStaticPath: int32, + uFileType: UINT, + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListA".} + + proc DlgDirSelectEx*( + hwndDlg: HWND, lpString: LPSTR, chCount: int32, idListBox: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectExA".} + + proc DlgDirListComboBox*( + hDlg: HWND, + lpPathSpec: LPSTR, + nIDComboBox: int32, + nIDStaticPath: int32, + uFiletype: UINT, + ): int32 {.winapi, stdcall, dynlib: "user32", importc: "DlgDirListComboBoxA".} + + proc DlgDirSelectComboBoxEx*( + hwndDlg: HWND, lpString: LPSTR, cchOut: int32, idComboBox: int32 + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "DlgDirSelectComboBoxExA".} + + proc DefFrameProc*( + hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefFrameProcA".} + + proc DefMDIChildProc*( + hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM + ): LRESULT {.winapi, stdcall, dynlib: "user32", importc: "DefMDIChildProcA".} + + proc CreateMDIWindow*( + lpClassName: LPCSTR, + lpWindowName: LPCSTR, + dwStyle: DWORD, + X: int32, + Y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hInstance: HINSTANCE, + lParam: LPARAM, + ): HWND {.winapi, stdcall, dynlib: "user32", importc: "CreateMDIWindowA".} + + proc WinHelp*( + hWndMain: HWND, lpszHelp: LPCSTR, uCommand: UINT, dwData: ULONG_PTR + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "WinHelpA".} + + proc ChangeDisplaySettings*( + lpDevMode: LPDEVMODEA, dwFlags: DWORD + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsA".} + + proc ChangeDisplaySettingsEx*( + lpszDeviceName: LPCSTR, + lpDevMode: LPDEVMODEA, + hwnd: HWND, + dwflags: DWORD, + lParam: LPVOID, + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "ChangeDisplaySettingsExA".} + + proc EnumDisplaySettings*( + lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsA".} + + proc EnumDisplaySettingsEx*( + lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: LPDEVMODEA, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplaySettingsExA".} + + proc EnumDisplayDevices*( + lpDevice: LPCSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEA, dwFlags: DWORD + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "EnumDisplayDevicesA".} + + proc SystemParametersInfo*( + uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "SystemParametersInfoA".} + + proc GetMonitorInfo*( + hMonitor: HMONITOR, lpmi: LPMONITORINFO + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetMonitorInfoA".} + + proc GetWindowModuleFileName*( + hwnd: HWND, pszFileName: LPSTR, cchFileNameMax: UINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetWindowModuleFileNameA".} + + proc RealGetWindowClass*( + hwnd: HWND, ptszClassName: LPSTR, cchClassNameMax: UINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "RealGetWindowClassA".} + + proc GetAltTabInfo*( + hwnd: HWND, iItem: int32, pati: PALTTABINFO, pszItemText: LPSTR, cchItemText: UINT + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "GetAltTabInfoA".} + + proc GetRawInputDeviceInfo*( + hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT + ): UINT {.winapi, stdcall, dynlib: "user32", importc: "GetRawInputDeviceInfoA".} + + proc PostAppMessage*( + idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM + ): WINBOOL {.winapi, stdcall, dynlib: "user32", importc: "PostThreadMessageA".} + + proc CreateWindow*( + lpClassName: LPCSTR, + lpWindowName: LPCSTR, + dwStyle: DWORD, + x: int32, + y: int32, + nWidth: int32, + nHeight: int32, + hWndParent: HWND, + hMenu: HMENU, + hInstance: HINSTANCE, + lpParam: LPVOID, + ): HWND {.winapi, inline.} = + CreateWindowExA( + 0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, + hInstance, lpParam, + ) + + proc CreateDialog*( + hInstance: HINSTANCE, lpName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC + ): HWND {.winapi, inline.} = + CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0) + + proc CreateDialogIndirect*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + ): HWND {.winapi, inline.} = + CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + + proc DialogBox*( + hInstance: HINSTANCE, lpTemplate: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC + ): INT_PTR {.winapi, inline.} = + DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + + proc DialogBoxIndirect*( + hInstance: HINSTANCE, + lpTemplate: LPCDLGTEMPLATEA, + hWndParent: HWND, + lpDialogFunc: DLGPROC, + ): INT_PTR {.winapi, inline.} = + DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0) + when winimCpu64: const CONSOLE_APPLICATION_16BIT* = 0x0000 GUI_16BITTASK* = 0x00000000 - proc GetWindowLongPtrA*(hWnd: HWND, nIndex: int32): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc GetWindowLongPtrW*(hWnd: HWND, nIndex: int32): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc SetWindowLongPtrA*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc SetWindowLongPtrW*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc GetClassLongPtrA*(hWnd: HWND, nIndex: int32): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc GetClassLongPtrW*(hWnd: HWND, nIndex: int32): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc SetClassLongPtrA*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} - proc SetClassLongPtrW*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + proc GetWindowLongPtrA*( + hWnd: HWND, nIndex: int32 + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc GetWindowLongPtrW*( + hWnd: HWND, nIndex: int32 + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc SetWindowLongPtrA*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc SetWindowLongPtrW*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc GetClassLongPtrA*( + hWnd: HWND, nIndex: int32 + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc GetClassLongPtrW*( + hWnd: HWND, nIndex: int32 + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc SetClassLongPtrA*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + + proc SetClassLongPtrW*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc.} + when winimUnicode and winimCpu64: - proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongPtrW".} - proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongPtrW".} - proc GetClassLongPtr*(hWnd: HWND, nIndex: int32): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongPtrW".} - proc SetClassLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongPtrW".} + proc GetWindowLongPtr*( + hWnd: HWND, nIndex: int32 + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongPtrW".} + + proc SetWindowLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongPtrW".} + + proc GetClassLongPtr*( + hWnd: HWND, nIndex: int32 + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongPtrW".} + + proc SetClassLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongPtrW".} + when winimAnsi and winimCpu64: - proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongPtrA".} - proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongPtrA".} - proc GetClassLongPtr*(hWnd: HWND, nIndex: int32): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongPtrA".} - proc SetClassLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongPtrA".} + proc GetWindowLongPtr*( + hWnd: HWND, nIndex: int32 + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongPtrA".} + + proc SetWindowLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): LONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongPtrA".} + + proc GetClassLongPtr*( + hWnd: HWND, nIndex: int32 + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongPtrA".} + + proc SetClassLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG_PTR + ): ULONG_PTR {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongPtrA".} + when winimCpu32: const CONSOLE_APPLICATION_16BIT* = 0x0001 GUI_16BITTASK* = 0x00000020 - proc GetWindowLongPtrA*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".} - proc GetWindowLongPtrW*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".} - proc SetWindowLongPtrA*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".} - proc SetWindowLongPtrW*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".} - proc GetClassLongPtrA*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongA".} - proc GetClassLongPtrW*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongW".} - proc SetClassLongPtrA*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongA".} - proc SetClassLongPtrW*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongW".} + proc GetWindowLongPtrA*( + hWnd: HWND, nIndex: int32 + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".} + + proc GetWindowLongPtrW*( + hWnd: HWND, nIndex: int32 + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".} + + proc SetWindowLongPtrA*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".} + + proc SetWindowLongPtrW*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".} + + proc GetClassLongPtrA*( + hWnd: HWND, nIndex: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongA".} + + proc GetClassLongPtrW*( + hWnd: HWND, nIndex: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongW".} + + proc SetClassLongPtrA*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongA".} + + proc SetClassLongPtrW*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongW".} + when winimUnicode and winimCpu32: - proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".} - proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".} - proc GetClassLongPtr*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongW".} - proc SetClassLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongW".} + proc GetWindowLongPtr*( + hWnd: HWND, nIndex: int32 + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongW".} + + proc SetWindowLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongW".} + + proc GetClassLongPtr*( + hWnd: HWND, nIndex: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongW".} + + proc SetClassLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongW".} + when winimAnsi and winimCpu32: - proc GetWindowLongPtr*(hWnd: HWND, nIndex: int32): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".} - proc SetWindowLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".} - proc GetClassLongPtr*(hWnd: HWND, nIndex: int32): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongA".} - proc SetClassLongPtr*(hWnd: HWND, nIndex: int32, dwNewLong: LONG): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongA".} + proc GetWindowLongPtr*( + hWnd: HWND, nIndex: int32 + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "GetWindowLongA".} + + proc SetWindowLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): LONG {.winapi, stdcall, dynlib: "user32", importc: "SetWindowLongA".} + + proc GetClassLongPtr*( + hWnd: HWND, nIndex: int32 + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "GetClassLongA".} + + proc SetClassLongPtr*( + hWnd: HWND, nIndex: int32, dwNewLong: LONG + ): DWORD {.winapi, stdcall, dynlib: "user32", importc: "SetClassLongA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/inc/winver.nim --- a/semicongine/thirdparty/winim/winim/inc/winver.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/inc/winver.nim Thu Aug 22 18:32:21 2024 +0700 @@ -87,44 +87,171 @@ VIF_BUFFTOOSMALL* = 0x00040000 VIF_CANNOTLOADLZ32* = 0x00080000 VIF_CANNOTLOADCABINET* = 0x00100000 -type - VS_FIXEDFILEINFO* {.pure.} = object - 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 -proc VerFindFileA*(uFlags: DWORD, szFileName: LPSTR, szWinDir: LPSTR, szAppDir: LPSTR, szCurDir: LPSTR, lpuCurDirLen: PUINT, szDestDir: LPSTR, lpuDestDirLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc VerFindFileW*(uFlags: DWORD, szFileName: LPWSTR, szWinDir: LPWSTR, szAppDir: LPWSTR, szCurDir: LPWSTR, lpuCurDirLen: PUINT, szDestDir: LPWSTR, lpuDestDirLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc VerInstallFileA*(uFlags: DWORD, szSrcFileName: LPSTR, szDestFileName: LPSTR, szSrcDir: LPSTR, szDestDir: LPSTR, szCurDir: LPSTR, szTmpFile: LPSTR, lpuTmpFileLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc VerInstallFileW*(uFlags: DWORD, szSrcFileName: LPWSTR, szDestFileName: LPWSTR, szSrcDir: LPWSTR, szDestDir: LPWSTR, szCurDir: LPWSTR, szTmpFile: LPWSTR, lpuTmpFileLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc GetFileVersionInfoSizeA*(lptstrFilename: LPCSTR, lpdwHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc GetFileVersionInfoSizeW*(lptstrFilename: LPCWSTR, lpdwHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc GetFileVersionInfoA*(lptstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} -proc GetFileVersionInfoW*(lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} -proc VerLanguageNameA*(wLang: DWORD, szLang: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc VerLanguageNameW*(wLang: DWORD, szLang: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "version", importc.} -proc VerQueryValueA*(pBlock: LPVOID, lpSubBlock: LPCSTR, lplpBuffer: ptr LPVOID, puLen: PUINT): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} -proc VerQueryValueW*(pBlock: LPVOID, lpSubBlock: LPCWSTR, lplpBuffer: ptr LPVOID, puLen: PUINT): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} +type VS_FIXEDFILEINFO* {.pure.} = object + 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 + +proc VerFindFileA*( + uFlags: DWORD, + szFileName: LPSTR, + szWinDir: LPSTR, + szAppDir: LPSTR, + szCurDir: LPSTR, + lpuCurDirLen: PUINT, + szDestDir: LPSTR, + lpuDestDirLen: PUINT, +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc VerFindFileW*( + uFlags: DWORD, + szFileName: LPWSTR, + szWinDir: LPWSTR, + szAppDir: LPWSTR, + szCurDir: LPWSTR, + lpuCurDirLen: PUINT, + szDestDir: LPWSTR, + lpuDestDirLen: PUINT, +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc VerInstallFileA*( + uFlags: DWORD, + szSrcFileName: LPSTR, + szDestFileName: LPSTR, + szSrcDir: LPSTR, + szDestDir: LPSTR, + szCurDir: LPSTR, + szTmpFile: LPSTR, + lpuTmpFileLen: PUINT, +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc VerInstallFileW*( + uFlags: DWORD, + szSrcFileName: LPWSTR, + szDestFileName: LPWSTR, + szSrcDir: LPWSTR, + szDestDir: LPWSTR, + szCurDir: LPWSTR, + szTmpFile: LPWSTR, + lpuTmpFileLen: PUINT, +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc GetFileVersionInfoSizeA*( + lptstrFilename: LPCSTR, lpdwHandle: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc GetFileVersionInfoSizeW*( + lptstrFilename: LPCWSTR, lpdwHandle: LPDWORD +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc GetFileVersionInfoA*( + lptstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} + +proc GetFileVersionInfoW*( + lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID +): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} + +proc VerLanguageNameA*( + wLang: DWORD, szLang: LPSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc VerLanguageNameW*( + wLang: DWORD, szLang: LPWSTR, nSize: DWORD +): DWORD {.winapi, stdcall, dynlib: "version", importc.} + +proc VerQueryValueA*( + pBlock: LPVOID, lpSubBlock: LPCSTR, lplpBuffer: ptr LPVOID, puLen: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} + +proc VerQueryValueW*( + pBlock: LPVOID, lpSubBlock: LPCWSTR, lplpBuffer: ptr LPVOID, puLen: PUINT +): WINBOOL {.winapi, stdcall, dynlib: "version", importc.} + when winimUnicode: - proc VerFindFile*(uFlags: DWORD, szFileName: LPWSTR, szWinDir: LPWSTR, szAppDir: LPWSTR, szCurDir: LPWSTR, lpuCurDirLen: PUINT, szDestDir: LPWSTR, lpuDestDirLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerFindFileW".} - proc VerInstallFile*(uFlags: DWORD, szSrcFileName: LPWSTR, szDestFileName: LPWSTR, szSrcDir: LPWSTR, szDestDir: LPWSTR, szCurDir: LPWSTR, szTmpFile: LPWSTR, lpuTmpFileLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerInstallFileW".} - proc GetFileVersionInfoSize*(lptstrFilename: LPCWSTR, lpdwHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoSizeW".} - proc GetFileVersionInfo*(lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoW".} - proc VerLanguageName*(wLang: DWORD, szLang: LPWSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerLanguageNameW".} - proc VerQueryValue*(pBlock: LPVOID, lpSubBlock: LPCWSTR, lplpBuffer: ptr LPVOID, puLen: PUINT): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "VerQueryValueW".} + proc VerFindFile*( + uFlags: DWORD, + szFileName: LPWSTR, + szWinDir: LPWSTR, + szAppDir: LPWSTR, + szCurDir: LPWSTR, + lpuCurDirLen: PUINT, + szDestDir: LPWSTR, + lpuDestDirLen: PUINT, + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerFindFileW".} + + proc VerInstallFile*( + uFlags: DWORD, + szSrcFileName: LPWSTR, + szDestFileName: LPWSTR, + szSrcDir: LPWSTR, + szDestDir: LPWSTR, + szCurDir: LPWSTR, + szTmpFile: LPWSTR, + lpuTmpFileLen: PUINT, + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerInstallFileW".} + + proc GetFileVersionInfoSize*( + lptstrFilename: LPCWSTR, lpdwHandle: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoSizeW".} + + proc GetFileVersionInfo*( + lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoW".} + + proc VerLanguageName*( + wLang: DWORD, szLang: LPWSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerLanguageNameW".} + + proc VerQueryValue*( + pBlock: LPVOID, lpSubBlock: LPCWSTR, lplpBuffer: ptr LPVOID, puLen: PUINT + ): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "VerQueryValueW".} + when winimAnsi: - proc VerFindFile*(uFlags: DWORD, szFileName: LPSTR, szWinDir: LPSTR, szAppDir: LPSTR, szCurDir: LPSTR, lpuCurDirLen: PUINT, szDestDir: LPSTR, lpuDestDirLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerFindFileA".} - proc VerInstallFile*(uFlags: DWORD, szSrcFileName: LPSTR, szDestFileName: LPSTR, szSrcDir: LPSTR, szDestDir: LPSTR, szCurDir: LPSTR, szTmpFile: LPSTR, lpuTmpFileLen: PUINT): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerInstallFileA".} - proc GetFileVersionInfoSize*(lptstrFilename: LPCSTR, lpdwHandle: LPDWORD): DWORD {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoSizeA".} - proc GetFileVersionInfo*(lptstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoA".} - proc VerLanguageName*(wLang: DWORD, szLang: LPSTR, nSize: DWORD): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerLanguageNameA".} - proc VerQueryValue*(pBlock: LPVOID, lpSubBlock: LPCSTR, lplpBuffer: ptr LPVOID, puLen: PUINT): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "VerQueryValueA".} + proc VerFindFile*( + uFlags: DWORD, + szFileName: LPSTR, + szWinDir: LPSTR, + szAppDir: LPSTR, + szCurDir: LPSTR, + lpuCurDirLen: PUINT, + szDestDir: LPSTR, + lpuDestDirLen: PUINT, + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerFindFileA".} + + proc VerInstallFile*( + uFlags: DWORD, + szSrcFileName: LPSTR, + szDestFileName: LPSTR, + szSrcDir: LPSTR, + szDestDir: LPSTR, + szCurDir: LPSTR, + szTmpFile: LPSTR, + lpuTmpFileLen: PUINT, + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerInstallFileA".} + + proc GetFileVersionInfoSize*( + lptstrFilename: LPCSTR, lpdwHandle: LPDWORD + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoSizeA".} + + proc GetFileVersionInfo*( + lptstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID + ): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "GetFileVersionInfoA".} + + proc VerLanguageName*( + wLang: DWORD, szLang: LPSTR, nSize: DWORD + ): DWORD {.winapi, stdcall, dynlib: "version", importc: "VerLanguageNameA".} + + proc VerQueryValue*( + pBlock: LPVOID, lpSubBlock: LPCSTR, lplpBuffer: ptr LPVOID, puLen: PUINT + ): WINBOOL {.winapi, stdcall, dynlib: "version", importc: "VerQueryValueA".} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/shell.nim --- a/semicongine/thirdparty/winim/winim/shell.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/shell.nim Thu Aug 22 18:32:21 2024 +0700 @@ -7,8 +7,12 @@ # #==================================================================== -import inc/[commctrl, commdlg, richedit, imm, shellapi, regstr, setupapi, vssym32, - uxtheme, dwmapi, msi] +import + inc/[ + commctrl, commdlg, richedit, imm, shellapi, regstr, setupapi, vssym32, uxtheme, + dwmapi, msi, + ] -export commctrl, commdlg, richedit, imm, shellapi, regstr, setupapi, vssym32, - uxtheme, dwmapi, msi +export + commctrl, commdlg, richedit, imm, shellapi, regstr, setupapi, vssym32, uxtheme, + dwmapi, msi diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/utils.nim --- a/semicongine/thirdparty/winim/winim/utils.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/utils.nim Thu Aug 22 18:32:21 2024 +0700 @@ -47,10 +47,11 @@ ## pUk.QueryInterface(&IID_IDispatch, &pDisp) else: - template `&`*(x: object): ptr type(x) = unsafeaddr x + template `&`*(x: object): ptr type(x) = ## Use `&` to gets pointer for const object. For example: ## ## .. code-block:: Nim ## # pUk is "ptr IUnknown" for some object ## var pDisp: ptr IDispatch ## pUk.QueryInterface(&IID_IDispatch, &pDisp) + unsafeaddr x diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/winim/winim/winstr.nim --- a/semicongine/thirdparty/winim/winim/winstr.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/winim/winim/winstr.nim Thu Aug 22 18:32:21 2024 +0700 @@ -159,8 +159,7 @@ export strutils.toHex, winimbase when not declared(IndexDefect): - type - IndexDefect = object of IndexError + type IndexDefect = object of IndexError # generate from winimx (avoid importing objbase everytime) const @@ -169,8 +168,26 @@ proc lstrlenA(lpString: LPCSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} proc lstrlenW(lpString: LPCWSTR): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc MultiByteToWideChar(CodePage: UINT, dwFlags: DWORD, lpMultiByteStr: LPCCH, cbMultiByte: int32, lpWideCharStr: LPWSTR, cchWideChar: int32): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} -proc WideCharToMultiByte(CodePage: UINT, dwFlags: DWORD, lpWideCharStr: LPCWCH, cchWideChar: int32, lpMultiByteStr: LPSTR, cbMultiByte: int32, lpDefaultChar: LPCCH, lpUsedDefaultChar: LPBOOL): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} +proc MultiByteToWideChar( + CodePage: UINT, + dwFlags: DWORD, + lpMultiByteStr: LPCCH, + cbMultiByte: int32, + lpWideCharStr: LPWSTR, + cchWideChar: int32, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + +proc WideCharToMultiByte( + CodePage: UINT, + dwFlags: DWORD, + lpWideCharStr: LPCWCH, + cchWideChar: int32, + lpMultiByteStr: LPSTR, + cbMultiByte: int32, + lpDefaultChar: LPCCH, + lpUsedDefaultChar: LPBOOL, +): int32 {.winapi, stdcall, dynlib: "kernel32", importc.} + proc SysStringLen(P1: BSTR): UINT {.winapi, stdcall, dynlib: "oleaut32", importc.} # helper functions @@ -192,13 +209,13 @@ result = toHex($s) when defined(cpu64): - converter NaturalToInt32(x: Natural): int32 = int32 x + converter NaturalToInt32(x: Natural): int32 = + int32 x # new string types type # for wstring, always add extra null wchar to ensure null-terminated. - wstring* = distinct string ## New string type to store wide character string (aka. unicode string). @@ -209,14 +226,13 @@ ## Use `mIndex` in substr, [] or []= for `mstring` means ## index by MBCS characters, not by bytes. - SomeChar* = byte | char | WCHAR - ## Type class matching all char types. + SomeChar* = byte | char | WCHAR ## Type class matching all char types. + + SomeString* = string | mstring | wstring ## Type class matching all string types. - SomeString* = string | mstring | wstring - ## Type class matching all string types. - - SomeBuffer*[I] = ptr SomeChar | array[I, SomeChar] | ptr array[I, SomeChar] | - ptr UncheckedArray[SomeChar] | openArray[SomeChar] | seq[SomeChar] + SomeBuffer*[I] = + ptr SomeChar | array[I, SomeChar] | ptr array[I, SomeChar] | + ptr UncheckedArray[SomeChar] | openArray[SomeChar] | seq[SomeChar] ## Type class matching all string buffer types. Stringable* = SomeChar | SomeString | SomeBuffer | cstring | BSTR @@ -228,17 +244,21 @@ template `^^`(s, i: untyped): untyped = (when i is BackwardsIndex: s.len - int(i) else: int(i)) -proc newWString*(L: Natural): wstring = wstring(newString((L + 1) * 2)) +proc newWString*(L: Natural): wstring = ## Returns a new `wstring` of length L, counting by wide characters. + wstring(newString((L + 1) * 2)) -proc newMString*(L: Natural): mstring = mstring(newString(L)) +proc newMString*(L: Natural): mstring = ## Returns a new `mstring` of length L, counting by bytes. + mstring(newString(L)) -proc len*(s: wstring): int {.inline.} = max(string(s).len div 2 - 1, 0) +proc len*(s: wstring): int {.inline.} = ## Returns the length of `wstring`, counting by wide characters. + max(string(s).len div 2 - 1, 0) -proc len*(s: mstring): int {.inline.} = string(s).len +proc len*(s: mstring): int {.inline.} = ## Returns the length of `mstring`, counting by bytes. + string(s).len proc newWStringOfCap*(L: Natural): wstring = ## Returns a new `wstring` of length 0 but with capacity L, counting by wide characters. @@ -274,24 +294,24 @@ ## Get address of the first char of a `mstring`. result = &(string(s)) -proc `UTF8->wstring`(source: ptr char, L: Natural): wstring = +proc `UTF8 -> wstring`(source: ptr char, L: Natural): wstring = if not source.isNil: var wLen = MultiByteToWideChar(CP_UTF8, 0, source, L, nil, 0) result = newWString(wLen) discard MultiByteToWideChar(CP_UTF8, 0, source, L, &result, wLen) -proc `ANSI->wstring`(source: ptr char, L: Natural): wstring = +proc `ANSI -> wstring`(source: ptr char, L: Natural): wstring = if not source.isNil: var wLen = MultiByteToWideChar(CP_ACP, 0, source, L, nil, 0) result = newWString(wLen) discard MultiByteToWideChar(CP_ACP, 0, source, L, &result, wLen) -proc `UNICODE->wstring`(source: ptr WCHAR, L: Natural): wstring = +proc `UNICODE -> wstring`(source: ptr WCHAR, L: Natural): wstring = if not source.isNil: result = newWString(L) copyMem(&result, source, L * 2) -proc `UTF8->mstring`(source: ptr char, L: Natural): mstring = +proc `UTF8 -> mstring`(source: ptr char, L: Natural): mstring = if not source.isNil: var wLen = MultiByteToWideChar(CP_UTF8, 0, source, L, nil, 0) var buffer = cast[ptr WCHAR](alloc(wLen * 2)) @@ -303,23 +323,23 @@ discard WideCharToMultiByte(CP_ACP, 0, buffer, wLen, &result, mLen, nil, nil) dealloc(buffer) -proc `ANSI->mstring`(source: ptr char, L: Natural): mstring = +proc `ANSI -> mstring`(source: ptr char, L: Natural): mstring = if not source.isNil: result = newMString(L) copyMem(&result, source, L) -proc `UNICODE->mstring`(source: ptr WCHAR, L: Natural): mstring = +proc `UNICODE -> mstring`(source: ptr WCHAR, L: Natural): mstring = if not source.isNil: var mLen = WideCharToMultiByte(CP_ACP, 0, source, L, nil, 0, nil, nil) result = newMString(mLen) discard WideCharToMultiByte(CP_ACP, 0, source, L, &result, mLen, nil, nil) -proc `UTF8->string`(source: ptr char, L: Natural): string = +proc `UTF8 -> string`(source: ptr char, L: Natural): string = if not source.isNil: result = newString(L) copyMem(&result, source, L) -proc `ANSI->string`(source: ptr char, L: Natural): string = +proc `ANSI -> string`(source: ptr char, L: Natural): string = if not source.isNil: var wLen = MultiByteToWideChar(CP_ACP, 0, source, L, nil, 0) var buffer = cast[ptr WCHAR](alloc(wLen * 2)) @@ -331,7 +351,7 @@ discard WideCharToMultiByte(CP_UTF8, 0, buffer, wLen, &result, mLen, nil, nil) dealloc(buffer) -proc `UNICODE->string`(source: ptr WCHAR, L: Natural): string = +proc `UNICODE -> string`(source: ptr WCHAR, L: Natural): string = if not source.isNil: var mLen = WideCharToMultiByte(CP_UTF8, 0, source, L, nil, 0, nil, nil) result = newString(mLen) @@ -340,70 +360,67 @@ template getptr[T](x: openArray[T]): untyped = when sizeof(T) == 1: cast[ptr char](unsafeaddr x[0]) - elif sizeof(T) == 2: cast[ptr WCHAR](unsafeaddr x[0]) template getptr[T](x: ptr UncheckedArray[T]): untyped = when sizeof(T) == 1: cast[ptr char](unsafeaddr x[0]) - elif sizeof(T) == 2: cast[ptr WCHAR](unsafeaddr x[0]) -proc `UTF8->wstring`(source: openArray[byte|char]): wstring {.inline.} = - `UTF8->wstring`(source.getptr, source.len) +proc `UTF8 -> wstring`(source: openArray[byte | char]): wstring {.inline.} = + `UTF8 -> wstring`(source.getptr, source.len) -proc `ANSI->wstring`(source: openArray[byte|char]): wstring {.inline.} = - `ANSI->wstring`(source.getptr, source.len) +proc `ANSI -> wstring`(source: openArray[byte | char]): wstring {.inline.} = + `ANSI -> wstring`(source.getptr, source.len) -proc `UNICODE->wstring`(source: openArray[WCHAR]): wstring {.inline.} = - `UNICODE->wstring`(source.getptr, source.len) +proc `UNICODE -> wstring`(source: openArray[WCHAR]): wstring {.inline.} = + `UNICODE -> wstring`(source.getptr, source.len) -proc `UTF8->mstring`(source: openArray[byte|char]): mstring {.inline.} = - `UTF8->mstring`(source.getptr, source.len) +proc `UTF8 -> mstring`(source: openArray[byte | char]): mstring {.inline.} = + `UTF8 -> mstring`(source.getptr, source.len) -proc `ANSI->mstring`(source: openArray[byte|char]): mstring {.inline.} = - `ANSI->mstring`(source.getptr, source.len) +proc `ANSI -> mstring`(source: openArray[byte | char]): mstring {.inline.} = + `ANSI -> mstring`(source.getptr, source.len) -proc `UNICODE->mstring`(source: openArray[WCHAR]): mstring {.inline.} = - `UNICODE->mstring`(source.getptr, source.len) +proc `UNICODE -> mstring`(source: openArray[WCHAR]): mstring {.inline.} = + `UNICODE -> mstring`(source.getptr, source.len) -proc `UTF8->string`(source: openArray[byte|char]): string {.inline.} = - `UTF8->string`(source.getptr, source.len) +proc `UTF8 -> string`(source: openArray[byte | char]): string {.inline.} = + `UTF8 -> string`(source.getptr, source.len) -proc `ANSI->string`(source: openArray[byte|char]): string {.inline.} = - `ANSI->string`(source.getptr, source.len) +proc `ANSI -> string`(source: openArray[byte | char]): string {.inline.} = + `ANSI -> string`(source.getptr, source.len) -proc `UNICODE->string`(source: openArray[WCHAR]): string {.inline.} = - `UNICODE->string`(source.getptr, source.len) +proc `UNICODE -> string`(source: openArray[WCHAR]): string {.inline.} = + `UNICODE -> string`(source.getptr, source.len) # wstring functions -proc high*(s: wstring): int {.inline.} = s.len - 1 +proc high*(s: wstring): int {.inline.} = ## Returns the highest possible index of `wstring`. + s.len - 1 -proc low*(s: wstring): int {.inline.} = 0 +proc low*(s: wstring): int {.inline.} = ## Returns the lowest possible index of `wstring`. + 0 proc cmp*(x, y: wstring): int {.borrow.} ## Compare proc for `wstring` (in binary format only). -proc `==`*(x, y: wstring): bool {.borrow.} - ## Checks for equality between two `wstring`. +proc `==`*(x, y: wstring): bool {.borrow.} ## Checks for equality between two `wstring`. proc `<=`*(x, y: wstring): bool {.borrow.} ## Lexicographic ``<=`` operator for `wstring`. -proc `<`*(x, y: wstring): bool {.borrow.} - ## Lexicographic ``<`` operator for `wstring`. +proc `<`*(x, y: wstring): bool {.borrow.} ## Lexicographic ``<`` operator for `wstring`. proc substr*(s: wstring, first, last: int): wstring = ## Copies a slice of `s` into a new `wstring` and returns it. result = wstring(string(s).substr(first * 2, last * 2 + 3)) if result.len != 0: result.raw(result.len) = 0 - else: result = newWString(0) @@ -419,7 +436,7 @@ result = s.raw(i) -proc `[]=`*(s: var wstring, i: int, c: WCHAR|char) {.inline.} = +proc `[]=`*(s: var wstring, i: int, c: WCHAR | char) {.inline.} = ## Index assignment operator for `wstring`. when compileOption("boundChecks"): if i >= s.len: @@ -434,29 +451,33 @@ when compileOption("boundChecks"): if a < 0 or a + L > s.len: raise newException(IndexDefect, "index out of bounds") - result = s.substr(a, a + L-1) + result = s.substr(a, a + L - 1) proc `[]=`*[T, U](s: var wstring, x: HSlice[T, U], b: wstring) = ## Slice assignment for `wstring`. let a = s ^^ x.a let L = (s ^^ x.b) - a + 1 if L == b.len: - for i in 0 ..< L: s[i+a] = b[i] + for i in 0 ..< L: + s[i + a] = b[i] else: var slen = s.len var shift = b.len - L var newLen = slen + shift if shift > 0: setLen(s, newLen) - for i in countdown(newLen-1, a+shift+1): s[i] = s[i-shift] + for i in countdown(newLen - 1, a + shift + 1): + s[i] = s[i - shift] else: - for i in countup(a+b.len, s.len-1+shift): s[i] = s[i-shift] + for i in countup(a + b.len, s.len - 1 + shift): + s[i] = s[i - shift] setLen(s, newLen) - for i in 0 ..< b.len: s[i+a] = b[i] + for i in 0 ..< b.len: + s[i + a] = b[i] s.raw(s.len) = 0 -proc add*(s: var wstring, c: char|WCHAR) = +proc add*(s: var wstring, c: char | WCHAR) = ## Appends `c` to `s` in place. s.raw(s.len) = WCHAR c string(s).add "\0\0" @@ -466,7 +487,7 @@ setLen(string(s), string(s).len - 2) string(s).add(string(u)) -proc `&`*(s: wstring, c: WCHAR|char): wstring {.inline.} = +proc `&`*(s: wstring, c: WCHAR | char): wstring {.inline.} = ## Concatenates `s` with `c`. result = s result.add c @@ -516,11 +537,10 @@ for w in s: if w == 0: result.add "\\0" + else: + result.add `UNICODE -> string`(w.unsafeaddr, 1) - else: - result.add `UNICODE->string`(w.unsafeaddr, 1) - - result.add "\"" + result.add "\"" # mstring functions @@ -531,20 +551,17 @@ proc high*(s: mstring): int {.borrow.} ## Returns the highest possible index of `mstring`. -proc low*(s: mstring): int {.borrow.} - ## Returns the lowest possible index of `mstring`. +proc low*(s: mstring): int {.borrow.} ## Returns the lowest possible index of `mstring`. proc cmp*(x, y: mstring): int {.borrow.} ## Compare proc for `mstring` (in binary format only). -proc `==`*(x, y: mstring): bool {.borrow.} - ## Checks for equality between two `mstring`. +proc `==`*(x, y: mstring): bool {.borrow.} ## Checks for equality between two `mstring`. proc `<=`*(x, y: mstring): bool {.borrow.} ## Lexicographic ``<=`` operator for `mstring`. -proc `<`*(x, y: mstring): bool {.borrow.} - ## Lexicographic ``<`` operator for `mstring`. +proc `<`*(x, y: mstring): bool {.borrow.} ## Lexicographic ``<`` operator for `mstring`. proc substr*(s: mstring, first, last: int): mstring {.borrow.} ## Copies a slice of `s` into a new `mstring` and returns it, counting by bytes. @@ -552,82 +569,76 @@ proc substr*(s: mstring, first = 0): mstring {.borrow.} ## Copies a slice of `s` into a new `mstring` and returns it, counting by bytes. -proc `[]`*(s: mstring, i: int): char {.inline.} = string(s)[i] +proc `[]`*(s: mstring, i: int): char {.inline.} = ## Index operator for `mstring`, counting by bytes. + string(s)[i] -proc `[]=`*(s: var mstring, i: int, x: char|byte) {.inline.} = string(s)[i] = cast[char](x) +proc `[]=`*(s: var mstring, i: int, x: char | byte) {.inline.} = ## Index assignment operator for `mstring`, counting by bytes. + string(s)[i] = cast[char](x) proc substr*(s: mstring, first, last: mIndex): mstring = ## Copies a slice of `s` into a new `mstring` and returns it, counting by MBCS characters. - var ws = `ANSI->wstring`(&s, s.len) + var ws = `ANSI -> wstring`(&s, s.len) ws = ws.substr(int first, int last) - result = `UNICODE->mstring`(&ws, ws.len) + result = `UNICODE -> mstring`(&ws, ws.len) proc substr*(s: mstring, first: mIndex = 0.mIndex): mstring = ## Copies a slice of `s` into a new `mstring` and returns it, counting by MBCS characters. - var ws = `ANSI->wstring`(&s, s.len) + var ws = `ANSI -> wstring`(&s, s.len) ws = ws.substr(int first) - result = `UNICODE->mstring`(&ws, ws.len) + result = `UNICODE -> mstring`(&ws, ws.len) proc `[]`*(s: mstring, i: mIndex): mstring = ## Index operator for `mstring`, counting by MBCS characters. - let ws = `ANSI->wstring`(&s, s.len) + let ws = `ANSI -> wstring`(&s, s.len) var wchar = ws[int i] - result = `UNICODE->mstring`(addr wchar, 1) + result = `UNICODE -> mstring`(addr wchar, 1) proc `[]=`*(s: var mstring, i: mIndex, u: mstring) = ## Index assignment operator for `mstring`, counting by MBCS characters, ## and only first MBCS characters of `u` will be used. - var ws = `ANSI->wstring`(&s, s.len) - let wu = `ANSI->wstring`(&u, u.len) + var ws = `ANSI -> wstring`(&s, s.len) + let wu = `ANSI -> wstring`(&u, u.len) if wu.len == 0: ws[int i] = 0 - else: ws[int i] = wu[0] - s = `UNICODE->mstring`(&ws, ws.len) + s = `UNICODE -> mstring`(&ws, ws.len) proc `[]`*[T, U](s: mstring, x: HSlice[T, U]): mstring = ## Slice operation for `mstring`. when T is mIndex or U is mIndex: - var ws = `[]`(`ANSI->wstring`(&s, s.len), x) - result = `UNICODE->mstring`(&ws, ws.len) - + var ws = `[]`(`ANSI -> wstring`(&s, s.len), x) + result = `UNICODE -> mstring`(&ws, ws.len) else: result = mstring(`[]`(string(s), x)) proc `[]=`*[T, U](s: var mstring, x: HSlice[T, U], u: mstring) = ## Slice assignment for `mstrings`. when T is mIndex or U is mIndex: - var ws = `ANSI->wstring`(&s, s.len) - `[]=`(ws, x, `ANSI->wstring`(&u, u.len)) - s = `UNICODE->mstring`(&ws, ws.len) + var ws = `ANSI -> wstring`(&s, s.len) + `[]=`(ws, x, `ANSI -> wstring`(&u, u.len)) + s = `UNICODE -> mstring`(&ws, ws.len) else: `[]=`(string(s), x, string(u)) -proc add*(x: var mstring, y: char) {.borrow.} - ## Appends `y` to `x` in place. +proc add*(x: var mstring, y: char) {.borrow.} ## Appends `y` to `x` in place. -proc add*(x: var mstring, y: string) {.borrow.} - ## Appends `y` to `x` in place. +proc add*(x: var mstring, y: string) {.borrow.} ## Appends `y` to `x` in place. -proc add*(x: var mstring, y: mstring) {.borrow.} - ## Appends `y` to `x` in place. +proc add*(x: var mstring, y: mstring) {.borrow.} ## Appends `y` to `x` in place. -proc add*(x: var mstring, y: byte) {.inline.} = x.add(char(y)) - ## Appends `y` to `x` in place. - -proc `&`*(x: mstring, y: char): mstring {.borrow.} - ## Concatenates `x` with `y`. +proc add*(x: var mstring, y: byte) {.inline.} = ## Appends `y` to `x` in place. + x.add(char(y)) -proc `&`*(x, y: mstring): mstring {.borrow.} - ## Concatenates `x` with `y`. +proc `&`*(x: mstring, y: char): mstring {.borrow.} ## Concatenates `x` with `y`. -proc `&`*(x: char, y: mstring): mstring {.borrow.} - ## Concatenates `x` with `y`. +proc `&`*(x, y: mstring): mstring {.borrow.} ## Concatenates `x` with `y`. + +proc `&`*(x: char, y: mstring): mstring {.borrow.} ## Concatenates `x` with `y`. proc toHex*(s: mstring): string {.inline.} = ## Converts `mstring` to its hexadecimal representation. @@ -636,15 +647,15 @@ iterator items*(s: mstring): mstring = ## Iterates over each MBCS character of `mstring`. - var ws = `ANSI->wstring`(&s, s.len) + var ws = `ANSI -> wstring`(&s, s.len) for wchar in ws.mitems: - yield `UNICODE->mstring`(addr wchar, 1) + yield `UNICODE -> mstring`(addr wchar, 1) iterator pairs*(s: mstring): tuple[key: mIndex, val: mstring] = ## Iterates over each MBCS character of `mstring`. Yields `(mIndex, mstring)` pairs. - var ws = `ANSI->wstring`(&s, s.len) + var ws = `ANSI -> wstring`(&s, s.len) for i, wchar in ws.mpairs: - yield (mIndex i, `UNICODE->mstring`(addr wchar, 1)) + yield (mIndex i, `UNICODE -> mstring`(addr wchar, 1)) proc repr*(s: mstring): string = ## Returns string representation of `mstring`. @@ -653,9 +664,8 @@ for m in s: if m[0] == '\0': result.add "\\0" - else: - result.add `ANSI->string`(&m, m.len) + result.add `ANSI -> string`(&m, m.len) result &= "\"" @@ -673,157 +683,259 @@ proc `$`*(s: Stringable): string {.inline.} = ## Convert any stringable type to `string`. ## This operator assume `string|cstring|ptr char|openArray[char]` is utf8 encoding. - when s is char|byte: system.`$`(s) - elif s is WCHAR: system.`$`(s) - elif s is string: s - elif s is mstring: `ANSI->string`(&s, s.len) - elif s is wstring: `UNICODE->string`(&s, s.len) - elif s is cstring|ptr char|ptr byte: system.`$`(cast[cstring](s)) - elif s is ptr WCHAR: `UNICODE->string`(s, lstrlenW(s)) - elif s is BSTR: `UNICODE->string`(s, int SysStringLen(s)) - elif s is array|seq|openArray: + when s is char | byte: + system.`$`(s) + elif s is WCHAR: + system.`$`(s) + elif s is string: + s + elif s is mstring: + `ANSI -> string`(&s, s.len) + elif s is wstring: + `UNICODE -> string`(&s, s.len) + elif s is cstring | ptr char | ptr byte: + system.`$`(cast[cstring](s)) + elif s is ptr WCHAR: + `UNICODE -> string`(s, lstrlenW(s)) + elif s is BSTR: + `UNICODE -> string`(s, int SysStringLen(s)) + elif s is array | seq | openArray: if isOpenArrayStringable: - when sizeof(s[0]) == 1: `UTF8->string`(s) - elif sizeof(s[0]) == 2: `UNICODE->string`(s) - else: {.fatal: "invalid type".} + when sizeof(s[0]) == 1: + `UTF8 -> string`(s) + elif sizeof(s[0]) == 2: + `UNICODE -> string`(s) + else: + {.fatal: "invalid type".} else: system.`$`(s) elif s is ptr array: - when sizeof(s[][0]) == 1: `UTF8->string`(s[]) - elif sizeof(s[][0]) == 2: `UNICODE->string`(s[]) - else: {.fatal: "invalid type".} + when sizeof(s[][0]) == 1: + `UTF8 -> string`(s[]) + elif sizeof(s[][0]) == 2: + `UNICODE -> string`(s[]) + else: + {.fatal: "invalid type".} elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `UTF8->string`(s.getptr, lstrlenA(s.getptr)) - elif sizeof(s[0]) == 2: `UNICODE->string`(s.getptr, lstrlenW(s.getptr)) - else: {.fatal: "invalid type".} - else: {.fatal: "invalid type".} + when sizeof(s[0]) == 1: + `UTF8 -> string`(s.getptr, lstrlenA(s.getptr)) + elif sizeof(s[0]) == 2: + `UNICODE -> string`(s.getptr, lstrlenW(s.getptr)) + else: + {.fatal: "invalid type".} + else: + {.fatal: "invalid type".} proc `%$`*(s: Stringable): string {.inline.} = ## Convert any stringable type to `string`. Always treat `openArray[SomeChar]` as string. ## This operator assume `string|cstring|ptr char|openArray[char]` is utf8 encoding. - when s is char|byte: system.`$`(s) - elif s is WCHAR: `UNICODE->string`(unsafeaddr s, 1) - elif s is string: s - elif s is mstring: `ANSI->string`(&s, s.len) - elif s is wstring: `UNICODE->string`(&s, s.len) - elif s is cstring|ptr char|ptr byte: system.`$`(cast[cstring](s)) - elif s is ptr WCHAR: `UNICODE->string`(s, lstrlenW(s)) - elif s is BSTR: `UNICODE->string`(s, int SysStringLen(s)) - elif s is array|seq|openArray: - when sizeof(s[0]) == 1: `UTF8->string`(s) - elif sizeof(s[0]) == 2: `UNICODE->string`(s) - else: {.fatal: "invalid type".} + when s is char | byte: + system.`$`(s) + elif s is WCHAR: + `UNICODE -> string`(unsafeaddr s, 1) + elif s is string: + s + elif s is mstring: + `ANSI -> string`(&s, s.len) + elif s is wstring: + `UNICODE -> string`(&s, s.len) + elif s is cstring | ptr char | ptr byte: + system.`$`(cast[cstring](s)) + elif s is ptr WCHAR: + `UNICODE -> string`(s, lstrlenW(s)) + elif s is BSTR: + `UNICODE -> string`(s, int SysStringLen(s)) + elif s is array | seq | openArray: + when sizeof(s[0]) == 1: + `UTF8 -> string`(s) + elif sizeof(s[0]) == 2: + `UNICODE -> string`(s) + else: + {.fatal: "invalid type".} elif s is ptr array: - when sizeof(s[][0]) == 1: `UTF8->string`(s[]) - elif sizeof(s[][0]) == 2: `UNICODE->string`(s[]) - else: {.fatal: "invalid type".} + when sizeof(s[][0]) == 1: + `UTF8 -> string`(s[]) + elif sizeof(s[][0]) == 2: + `UNICODE -> string`(s[]) + else: + {.fatal: "invalid type".} elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `UTF8->string`(s.getptr, lstrlenA(s.getptr)) - elif sizeof(s[0]) == 2: `UNICODE->string`(s.getptr, lstrlenW(s.getptr)) - else: {.fatal: "invalid type".} - else: {.fatal: "invalid type".} + when sizeof(s[0]) == 1: + `UTF8 -> string`(s.getptr, lstrlenA(s.getptr)) + elif sizeof(s[0]) == 2: + `UNICODE -> string`(s.getptr, lstrlenW(s.getptr)) + else: + {.fatal: "invalid type".} + else: + {.fatal: "invalid type".} proc `+$`*(s: Stringable): wstring {.inline.} = ## Convert any stringable type to `wstring`. ## This operator assume `string|cstring|ptr char|openArray[char]` is utf8 encoding. - when s is char|byte: `UTF8->wstring`(cast[ptr char](unsafeaddr s), 1) - elif s is WCHAR: `UNICODE->wstring`(unsafeaddr s, 1) - elif s is string: `UTF8->wstring`(&s, s.len) - elif s is mstring: `ANSI->wstring`(&s, s.len) - elif s is wstring: s - elif s is cstring|ptr char|ptr byte: `UTF8->wstring`(cast[ptr char](s), cast[cstring](s).len) - elif s is ptr WCHAR: `UNICODE->wstring`(s, lstrlenW(s)) - elif s is BSTR: `UNICODE->wstring`(s, int SysStringLen(s)) - elif s is array|seq|openArray: - when sizeof(s[0]) == 1: `UTF8->wstring`(s) - elif sizeof(s[0]) == 2: `UNICODE->wstring`(s) - else: {.fatal: "invalid type".} + when s is char | byte: + `UTF8 -> wstring`(cast[ptr char](unsafeaddr s), 1) + elif s is WCHAR: + `UNICODE -> wstring`(unsafeaddr s, 1) + elif s is string: + `UTF8 -> wstring`(&s, s.len) + elif s is mstring: + `ANSI -> wstring`(&s, s.len) + elif s is wstring: + s + elif s is cstring | ptr char | ptr byte: + `UTF8 -> wstring`(cast[ptr char](s), cast[cstring](s).len) + elif s is ptr WCHAR: + `UNICODE -> wstring`(s, lstrlenW(s)) + elif s is BSTR: + `UNICODE -> wstring`(s, int SysStringLen(s)) + elif s is array | seq | openArray: + when sizeof(s[0]) == 1: + `UTF8 -> wstring`(s) + elif sizeof(s[0]) == 2: + `UNICODE -> wstring`(s) + else: + {.fatal: "invalid type".} elif s is ptr array: - when sizeof(s[][0]) == 1: `UTF8->wstring`(s[]) - elif sizeof(s[][0]) == 2: `UNICODE->wstring`(s[]) - else: {.fatal: "invalid type".} + when sizeof(s[][0]) == 1: + `UTF8 -> wstring`(s[]) + elif sizeof(s[][0]) == 2: + `UNICODE -> wstring`(s[]) + else: + {.fatal: "invalid type".} elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `UTF8->wstring`(s.getptr, lstrlenA(s.getptr)) - elif sizeof(s[0]) == 2: `UNICODE->wstring`(s.getptr, lstrlenW(s.getptr)) - else: {.fatal: "invalid type".} - else: {.fatal: "invalid type".} + when sizeof(s[0]) == 1: + `UTF8 -> wstring`(s.getptr, lstrlenA(s.getptr)) + elif sizeof(s[0]) == 2: + `UNICODE -> wstring`(s.getptr, lstrlenW(s.getptr)) + else: + {.fatal: "invalid type".} + else: + {.fatal: "invalid type".} proc `-$`*(s: Stringable): mstring {.inline.} = ## Convert any stringable type to `mstring`. ## This operator assume `string|cstring|ptr char|openArray[char]` is utf8 encoding. - when s is char|byte: `UTF8->mstring`(cast[ptr char](unsafeaddr s), 1) - elif s is WCHAR: `UNICODE->mstring`(unsafeaddr s, 1) - elif s is string: `UTF8->mstring`(&s, s.len) - elif s is mstring: s - elif s is wstring: `UNICODE->mstring`(&s, s.len) - elif s is cstring|ptr char|ptr byte: `UTF8->mstring`(cast[ptr char](s), cast[cstring](s).len) - elif s is ptr WCHAR: `UNICODE->mstring`(s, lstrlenW(s)) - elif s is BSTR: `UNICODE->mstring`(s, int SysStringLen(s)) - elif s is array|seq|openArray: - when sizeof(s[0]) == 1: `UTF8->mstring`(s) - elif sizeof(s[0]) == 2: `UNICODE->mstring`(s) - else: {.fatal: "invalid type".} + when s is char | byte: + `UTF8 -> mstring`(cast[ptr char](unsafeaddr s), 1) + elif s is WCHAR: + `UNICODE -> mstring`(unsafeaddr s, 1) + elif s is string: + `UTF8 -> mstring`(&s, s.len) + elif s is mstring: + s + elif s is wstring: + `UNICODE -> mstring`(&s, s.len) + elif s is cstring | ptr char | ptr byte: + `UTF8 -> mstring`(cast[ptr char](s), cast[cstring](s).len) + elif s is ptr WCHAR: + `UNICODE -> mstring`(s, lstrlenW(s)) + elif s is BSTR: + `UNICODE -> mstring`(s, int SysStringLen(s)) + elif s is array | seq | openArray: + when sizeof(s[0]) == 1: + `UTF8 -> mstring`(s) + elif sizeof(s[0]) == 2: + `UNICODE -> mstring`(s) + else: + {.fatal: "invalid type".} elif s is ptr array: - when sizeof(s[][0]) == 1: `UTF8->mstring`(s[]) - elif sizeof(s[][0]) == 2: `UNICODE->mstring`(s[]) - else: {.fatal: "invalid type".} + when sizeof(s[][0]) == 1: + `UTF8 -> mstring`(s[]) + elif sizeof(s[][0]) == 2: + `UNICODE -> mstring`(s[]) + else: + {.fatal: "invalid type".} elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `UTF8->mstring`(s.getptr, lstrlenA(s.getptr)) - elif sizeof(s[0]) == 2: `UNICODE->mstring`(s.getptr, lstrlenW(s.getptr)) - else: {.fatal: "invalid type".} - else: {.fatal: "invalid type".} + when sizeof(s[0]) == 1: + `UTF8 -> mstring`(s.getptr, lstrlenA(s.getptr)) + elif sizeof(s[0]) == 2: + `UNICODE -> mstring`(s.getptr, lstrlenW(s.getptr)) + else: + {.fatal: "invalid type".} + else: + {.fatal: "invalid type".} proc `$$`*(s: Stringable): string {.inline.} = ## Convert any stringable type to `string`. ## This operator assume `string|cstring|ptr char|openArray[char]` is ansi encoding. # Only exception is `WCHAR(uint16)`: regard as number in `$`, but string in `$$` - when s is WCHAR: `UNICODE->string`(unsafeaddr s, 1) - elif s is string: `ANSI->string`(&s, s.len) - elif s is cstring|ptr char|ptr byte: `ANSI->string`(cast[ptr char](s), cast[cstring](s).len) - elif s is array|seq|openArray: - when sizeof(s[0]) == 1: `ANSI->string`(s) - elif sizeof(s[0]) == 2: `UNICODE->string`(s) + when s is WCHAR: + `UNICODE -> string`(unsafeaddr s, 1) + elif s is string: + `ANSI -> string`(&s, s.len) + elif s is cstring | ptr char | ptr byte: + `ANSI -> string`(cast[ptr char](s), cast[cstring](s).len) + elif s is array | seq | openArray: + when sizeof(s[0]) == 1: + `ANSI -> string`(s) + elif sizeof(s[0]) == 2: + `UNICODE -> string`(s) elif s is ptr array: - when sizeof(s[][0]) == 1: `ANSI->string`(s[]) - else: `$`(s) + when sizeof(s[][0]) == 1: + `ANSI -> string`(s[]) + else: + `$`(s) elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `ANSI->string`(s.getptr, lstrlenA(s.getptr)) - else: `$`(s) - else: `$`(s) + when sizeof(s[0]) == 1: + `ANSI -> string`(s.getptr, lstrlenA(s.getptr)) + else: + `$`(s) + else: + `$`(s) proc `+$$`*(s: Stringable): wstring {.inline.} = ## Convert any stringable type to `wstring`. ## This operator assume `string|cstring|ptr char|openArray[char]` is ansi encoding. - when s is string: `ANSI->wstring`(&s, s.len) - elif s is cstring|ptr char|ptr byte: `ANSI->wstring`(cast[ptr char](s), cast[cstring](s).len) - elif s is array|seq|openArray: - when sizeof(s[0]) == 1: `ANSI->wstring`(s) - else: `+$`(s) + when s is string: + `ANSI -> wstring`(&s, s.len) + elif s is cstring | ptr char | ptr byte: + `ANSI -> wstring`(cast[ptr char](s), cast[cstring](s).len) + elif s is array | seq | openArray: + when sizeof(s[0]) == 1: + `ANSI -> wstring`(s) + else: + `+$`(s) elif s is ptr array: - when sizeof(s[][0]) == 1: `ANSI->wstring`(s[]) - else: `+$`(s) + when sizeof(s[][0]) == 1: + `ANSI -> wstring`(s[]) + else: + `+$`(s) elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `ANSI->wstring`(s.getptr, lstrlenA(s.getptr)) - else: `+$`(s) - else: `+$`(s) + when sizeof(s[0]) == 1: + `ANSI -> wstring`(s.getptr, lstrlenA(s.getptr)) + else: + `+$`(s) + else: + `+$`(s) proc `-$$`*(s: Stringable): mstring {.inline.} = ## Convert any stringable type to `mstring`. ## This operator assume `string|cstring|ptr char|openArray[char]` is ansi encoding. - when s is string: `ANSI->mstring`(&s, s.len) - elif s is cstring|ptr char|ptr byte: `ANSI->mstring`(cast[ptr char](s), cast[cstring](s).len) - elif s is array|seq|openArray: - when sizeof(s[0]) == 1: `ANSI->mstring`(s) - else: `-$`(s) + when s is string: + `ANSI -> mstring`(&s, s.len) + elif s is cstring | ptr char | ptr byte: + `ANSI -> mstring`(cast[ptr char](s), cast[cstring](s).len) + elif s is array | seq | openArray: + when sizeof(s[0]) == 1: + `ANSI -> mstring`(s) + else: + `-$`(s) elif s is ptr array: - when sizeof(s[][0]) == 1: `ANSI->mstring`(s[]) - else: `-$`(s) + when sizeof(s[][0]) == 1: + `ANSI -> mstring`(s[]) + else: + `-$`(s) elif s is ptr UncheckedArray: - when sizeof(s[0]) == 1: `ANSI->mstring`(s.getptr, lstrlenA(s.getptr)) - else: `-$`(s) - else: `-$`(s) + when sizeof(s[0]) == 1: + `ANSI -> mstring`(s.getptr, lstrlenA(s.getptr)) + else: + `-$`(s) + else: + `-$`(s) -proc fillBuffer[T: SomeChar](a: var openArray[T], s: SomeString, skip = 0, inclNull = false) = +proc fillBuffer[T: SomeChar]( + a: var openArray[T], s: SomeString, skip = 0, inclNull = false +) = when sizeof(a[0]) != sizeof(s[0]): {.fatal: "type mismatch".} @@ -834,7 +946,9 @@ a[s.len - skip] = cast[T](0) # fill as much as possible before raise an exception - if (not inclNull and a.high < s.len - skip - 1) or (inclNull and a.high < s.len - skip): + if (not inclNull and a.high < s.len - skip - 1) or ( + inclNull and a.high < s.len - skip + ): raise newException(IndexDefect, "string length too long") proc fillString[T: SomeChar](s: var SomeString, a: openArray[T], skip = 0) = @@ -844,7 +958,7 @@ for i in 0 .. min(a.high, s.len - skip - 1): s[i + skip] = cast[s[0].type](a[i]) -template `<<`*[A: SomeBuffer|SomeString, B: SomeBuffer|SomeString](a: A, b: B) = +template `<<`*[A: SomeBuffer | SomeString, B: SomeBuffer | SomeString](a: A, b: B) = ## Fill operator for `SomeBuffer` and `SomeString`. ## Please make sure both side have the same character size. ## If destination don't have the length information (e.g. `pointer` or `UncheckedArray`), @@ -852,59 +966,46 @@ when A is SomeString and B is SomeString: # treat string a as buffer var v = cast[ptr UncheckedArray[a[0].type]](&a) - fillBuffer(v.toOpenArray(0, a.len - 1), b, inclNull=false) - + fillBuffer(v.toOpenArray(0, a.len - 1), b, inclNull = false) elif A is not SomeString and B is SomeString: when A is array: - fillBuffer(a.toOpenArray(a.low, a.high), b, skip=a.low, inclNull=false) - + fillBuffer(a.toOpenArray(a.low, a.high), b, skip = a.low, inclNull = false) elif A is ptr array: - fillBuffer(a[].toOpenArray(a[].low, a[].high), b, skip=a[].low, inclNull=false) - + fillBuffer( + a[].toOpenArray(a[].low, a[].high), b, skip = a[].low, inclNull = false + ) elif A is ptr char | ptr byte: var v = cast[ptr UncheckedArray[byte]](a) - fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull=false) - + fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull = false) elif A is ptr WCHAR: var v = cast[ptr UncheckedArray[WCHAR]](a) - fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull=false) - + fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull = false) elif A is ptr UncheckedArray: var v = a - fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull=false) - + fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull = false) elif A is openArray | seq: - fillBuffer(a, b, inclNull=false) - + fillBuffer(a, b, inclNull = false) else: {.fatal: "type mismatch".} - elif A is SomeString and B is not SomeString: when B is array: - fillString(a, b.toOpenArray(b.low, b.high), skip=b.low) - + fillString(a, b.toOpenArray(b.low, b.high), skip = b.low) elif B is ptr array: - fillString(a, b[].toOpenArray(b[].low, b[].high), skip=b[].low) - + fillString(a, b[].toOpenArray(b[].low, b[].high), skip = b[].low) elif B is ptr char | ptr byte: fillString(a, cast[ptr UncheckedArray[byte]](b).toOpenArray(0, int.high - 1)) - elif B is ptr WCHAR: fillString(a, cast[ptr UncheckedArray[WCHAR]](b).toOpenArray(0, int.high - 1)) - elif B is ptr UncheckedArray: fillString(a, b.toOpenArray(0, int.high - 1)) - elif B is openArray | seq: fillString(a, b) - else: {.fatal: "type mismatch".} - else: {.fatal: "type mismatch".} -template `<<<`*[A: SomeBuffer|SomeString](a: A, b: SomeString) = +template `<<<`*[A: SomeBuffer | SomeString](a: A, b: SomeString) = ## Fill buffer by string, include a null. ## Please make sure both side have the same character size. ## If destination don't have the length information (e.g. `pointer` or `UncheckedArray`), @@ -912,30 +1013,23 @@ when A is SomeString: # treat string a as buffer var v = cast[ptr UncheckedArray[a[0].type]](&a) - fillBuffer(v.toOpenArray(0, a.len - 1), b, inclNull=true) - + fillBuffer(v.toOpenArray(0, a.len - 1), b, inclNull = true) else: when A is array: - fillBuffer(a.toOpenArray(a.low, a.high), b, skip=a.low, inclNull=true) - + fillBuffer(a.toOpenArray(a.low, a.high), b, skip = a.low, inclNull = true) elif A is ptr array: - fillBuffer(a[].toOpenArray(a[].low, a[].high), b, skip=a[].low, inclNull=true) - + fillBuffer(a[].toOpenArray(a[].low, a[].high), b, skip = a[].low, inclNull = true) elif A is ptr char | ptr byte: var v = cast[ptr UncheckedArray[byte]](a) - fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull=true) - + fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull = true) elif A is ptr WCHAR: var v = cast[ptr UncheckedArray[WCHAR]](a) - fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull=true) - + fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull = true) elif A is ptr UncheckedArray: var v = a - fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull=true) - + fillBuffer(v.toOpenArray(0, int.high - 1), b, inclNull = true) elif A is openArray | seq: - fillBuffer(a, b, inclNull=true) - + fillBuffer(a, b, inclNull = true) else: {.fatal: "type mismatch".} @@ -949,60 +1043,65 @@ proc nullTerminate*(s: var SomeString) {.inline.} = ## Assume a string is null terminated and set the correct length. - when s is string|mstring: + when s is string | mstring: let L = lstrlenA(cast[LPCSTR](&s)) if L < s.len: s.setLen(L) - elif s is wstring: let L = lstrlenW(cast[LPWSTR](&s)) if L < s.len: s.setLen(L) - - else: {.fatal: "invalid type".} + else: + {.fatal: "invalid type".} proc nullTerminated*[T: SomeString](s: T): T {.inline.} = ## Assume a string is null terminated and return the length-corrected string. when s is string: result = newString(lstrlenA(cast[LPCSTR](&s))) result << &s - elif s is mstring: result = newMString(lstrlenA(cast[LPCSTR](&s))) result << &s - elif s is wstring: result = newWString(lstrlenW(cast[LPWSTR](&s))) result << &s - - else: {.fatal: "invalid type".} + else: + {.fatal: "invalid type".} # generics has problems on converters, define one by one -converter winstrConverterWStringToLPWSTR*(x: wstring): LPWSTR = cast[LPWSTR](&x) +converter winstrConverterWStringToLPWSTR*(x: wstring): LPWSTR = ## Converts `wstring` to `LPWSTR` automatically. + cast[LPWSTR](&x) -converter winstrConverterWStringToBSTR*(x: wstring): BSTR = cast[BSTR](&x) +converter winstrConverterWStringToBSTR*(x: wstring): BSTR = ## Converts `wstring` to `BSTR` automatically. + cast[BSTR](&x) -converter winstrConverterBSTRToLPWSTR*(x: BSTR): LPWSTR = cast[LPWSTR](x) +converter winstrConverterBSTRToLPWSTR*(x: BSTR): LPWSTR = ## Converts `BSTR` to `LPWSTR` automatically. + cast[LPWSTR](x) -converter winstrConverterStringToPtrChar*(x: string): ptr char = cast[ptr char](&x) +converter winstrConverterStringToPtrChar*(x: string): ptr char = ## Converts `string` to `ptr char` automatically. + cast[ptr char](&x) -converter winstrConverterCStringToPtrChar*(x: cstring): ptr char = cast[ptr char](x) +converter winstrConverterCStringToPtrChar*(x: cstring): ptr char = ## Converts `cstring` to `ptr char` automatically. + cast[ptr char](x) -converter winstrConverterMStringToPtrChar*(x: mstring): ptr char = cast[ptr char](&x) +converter winstrConverterMStringToPtrChar*(x: mstring): ptr char = ## Converts `mstring` to `ptr char` automatically. + cast[ptr char](&x) -converter winstrConverterMStringToLPSTR*(x: mstring): LPSTR = cast[LPSTR](&x) +converter winstrConverterMStringToLPSTR*(x: mstring): LPSTR = ## Converts `mstring` to `LPSTR` automatically. + cast[LPSTR](&x) when defined(gcDestructors): - converter winstrConverterWideCStringToLPWSTR*(x: WideCStringObj): LPWSTR = cast[LPWSTR](x[0].unsafeaddr) + converter winstrConverterWideCStringToLPWSTR*(x: WideCStringObj): LPWSTR = ## Converts `WideCString` to `LPWSTR` automatically. + cast[LPWSTR](x[0].unsafeaddr) proc `+$`*(s: WideCStringObj): wstring {.inline.} = ## Converts `WideCString` to `wstring`. @@ -1018,8 +1117,9 @@ s >> result else: - converter winstrConverterWideCStringToLPWSTR*(x: WideCString): LPWSTR = cast[LPWSTR](x[0].unsafeaddr) + converter winstrConverterWideCStringToLPWSTR*(x: WideCString): LPWSTR = ## Converts `WideCString` to `LPWSTR` automatically. + cast[LPWSTR](x[0].unsafeaddr) proc `+$`*(s: WideCString): wstring {.inline.} = ## Converts `WideCString` to `wstring`. @@ -1047,45 +1147,54 @@ if not wstringQueueInit: wstringQueue = initDeque[wstring]() wstringQueueInit = true - elif wstringQueue.len > 128: - wstringQueue.shrink(fromFirst=64) + wstringQueue.shrink(fromFirst = 64) wstringQueue.addLast str &wstringQueue[^1] - converter winstrConverterStringToLPWSTR*(x: string): LPWSTR = saddr(+$x) + converter winstrConverterStringToLPWSTR*(x: string): LPWSTR = ## Converts `string` to `LPWSTR` automatically. + saddr(+$x) - converter winstrConverterCStringToLPWSTR*(x: cstring): LPWSTR = saddr(+$x) + converter winstrConverterCStringToLPWSTR*(x: cstring): LPWSTR = ## Converts `cstring` to `LPWSTR` automatically. + saddr(+$x) - converter winstrConverterStringToBSTR*(x: string): BSTR = cast[BSTR](saddr(+$x)) + converter winstrConverterStringToBSTR*(x: string): BSTR = ## Converts `string` to `BSTR` automatically. + cast[BSTR](saddr(+$x)) - converter winstrConverterCStringToBSTR*(x: cstring): BSTR = cast[BSTR](saddr(+$x)) + converter winstrConverterCStringToBSTR*(x: cstring): BSTR = ## Converts `cstring` to `BSTR` automatically. + cast[BSTR](saddr(+$x)) else: - converter winstrConverterStringToLPWSTR*(x: string): LPWSTR = cast[LPWSTR](&(+$x)) + converter winstrConverterStringToLPWSTR*(x: string): LPWSTR = ## Converts `string` to `LPWSTR` automatically. + cast[LPWSTR](&(+$x)) - converter winstrConverterCStringToLPWSTR*(x: cstring): LPWSTR = cast[LPWSTR](&(+$x)) + converter winstrConverterCStringToLPWSTR*(x: cstring): LPWSTR = ## Converts `cstring` to `LPWSTR` automatically. + cast[LPWSTR](&(+$x)) - converter winstrConverterStringToBSTR*(x: string): BSTR = cast[BSTR](&(+$x)) + converter winstrConverterStringToBSTR*(x: string): BSTR = ## Converts `string` to `BSTR` automatically. + cast[BSTR](&(+$x)) - converter winstrConverterCStringToBSTR*(x: cstring): BSTR = cast[BSTR](&(+$x)) + converter winstrConverterCStringToBSTR*(x: cstring): BSTR = ## Converts `cstring` to `BSTR` automatically. + cast[BSTR](&(+$x)) -proc newWString*(s: cstring|string|mstring): wstring {.inline, - deprecated: "use `+$` instead".} = +proc newWString*( + s: cstring | string | mstring +): wstring {.inline, deprecated: "use `+$` instead".} = ## Return a new `wstring`. result = +$s -proc newMString*(s: string|cstring|wstring): mstring {.inline, - deprecated: "use `-$` instead".} = +proc newMString*( + s: string | cstring | wstring +): mstring {.inline, deprecated: "use `-$` instead".} = ## Return a new `mstring`. result = -$s @@ -1105,41 +1214,49 @@ UNI_SUR_LOW_END = 0xDFFF UNI_REPL = 0xFFFD - template ones(n: untyped): untyped = ((1 shl n)-1) + template ones(n: untyped): untyped = + ((1 shl n) - 1) template fastRuneAt(s: cstring, i, L: int, result: untyped, doInc = true) = if ord(s[i]) <= 127: result = ord(s[i]) - when doInc: inc(i) + when doInc: + inc(i) elif ord(s[i]) shr 5 == 0b110: if i <= L - 2: - result = (ord(s[i]) and (ones(5))) shl 6 or (ord(s[i+1]) and ones(6)) - when doInc: inc(i, 2) + result = (ord(s[i]) and (ones(5))) shl 6 or (ord(s[i + 1]) and ones(6)) + when doInc: + inc(i, 2) else: result = UNI_REPL - when doInc: inc(i) + when doInc: + inc(i) elif ord(s[i]) shr 4 == 0b1110: if i <= L - 3: - result = (ord(s[i]) and ones(4)) shl 12 or - (ord(s[i+1]) and ones(6)) shl 6 or - (ord(s[i+2]) and ones(6)) - when doInc: inc(i, 3) + result = + (ord(s[i]) and ones(4)) shl 12 or (ord(s[i + 1]) and ones(6)) shl 6 or + (ord(s[i + 2]) and ones(6)) + when doInc: + inc(i, 3) else: result = UNI_REPL - when doInc: inc(i) + when doInc: + inc(i) elif ord(s[i]) shr 3 == 0b11110: if i <= L - 4: - result = (ord(s[i]) and ones(3)) shl 18 or - (ord(s[i+1]) and ones(6)) shl 12 or - (ord(s[i+2]) and ones(6)) shl 6 or - (ord(s[i+3]) and ones(6)) - when doInc: inc(i, 4) + result = + (ord(s[i]) and ones(3)) shl 18 or (ord(s[i + 1]) and ones(6)) shl 12 or + (ord(s[i + 2]) and ones(6)) shl 6 or (ord(s[i + 3]) and ones(6)) + when doInc: + inc(i, 4) else: result = UNI_REPL - when doInc: inc(i) + when doInc: + inc(i) else: result = 0xFFFD - when doInc: inc(i) + when doInc: + inc(i) iterator runes(s: cstring, L: int): int = var @@ -1177,8 +1294,9 @@ const wstr = ctNewWString(x) wstr -template L*(x: string): wstring = +$x +template L*(x: string): wstring = ## Same as `+$` for dynamic string (string at run-time). + +$x template T*(x: string): untyped = ## Generate wstring or mstring depend on conditional symbol: `useWinAnsi`. @@ -1197,11 +1315,12 @@ newWString(x) when winimAnsi: - type - TString* = mstring ## `wstring` or `mstring` depend on conditional symbol: `useWinAnsi`. + type TString* = mstring + ## `wstring` or `mstring` depend on conditional symbol: `useWinAnsi`. + else: - type - TString* = wstring ## `wstring` or `mstring` depend on conditional symbol: `useWinAnsi`. + type TString* = wstring + ## `wstring` or `mstring` depend on conditional symbol: `useWinAnsi`. when isMainModule: let str = "the quick brown fox jumps over the lazy dog" diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/keysym.nim --- a/semicongine/thirdparty/x11/keysym.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/keysym.nim Thu Aug 22 18:32:21 2024 +0700 @@ -13,8 +13,7 @@ #* default keysyms * import x -const - XK_VoidSymbol*: KeySym = 0x00FFFFFF # void symbol +const XK_VoidSymbol*: KeySym = 0x00FFFFFF # void symbol when defined(XK_MISCELLANY) or true: const @@ -23,74 +22,78 @@ # * programming, but could have been arbitrary (at the cost of lookup # * tables in client code. # * - XK_BackSpace*: KeySym = 0x0000FF08 # back space, back char + XK_BackSpace*: KeySym = 0x0000FF08 # back space, back char XK_Tab*: KeySym = 0x0000FF09 - XK_Linefeed*: KeySym = 0x0000FF0A # Linefeed, LF + XK_Linefeed*: KeySym = 0x0000FF0A # Linefeed, LF XK_Clear*: KeySym = 0x0000FF0B - XK_Return*: KeySym = 0x0000FF0D # Return, enter - XK_Pause*: KeySym = 0x0000FF13 # Pause, hold + XK_Return*: KeySym = 0x0000FF0D # Return, enter + XK_Pause*: KeySym = 0x0000FF13 # Pause, hold XK_Scroll_Lock*: KeySym = 0x0000FF14 XK_Sys_Req*: KeySym = 0x0000FF15 XK_Escape*: KeySym = 0x0000FF1B - XK_Delete*: KeySym = 0x0000FFFF # Delete, rubout \ - # International & multi-key character composition - XK_Multi_key*: KeySym = 0x0000FF20 # Multi-key character compose + XK_Delete*: KeySym = 0x0000FFFF + # Delete, rubout \ + # International & multi-key character composition + XK_Multi_key*: KeySym = 0x0000FF20 # Multi-key character compose XK_Codeinput*: KeySym = 0x0000FF37 XK_SingleCandidate*: KeySym = 0x0000FF3C XK_MultipleCandidate*: KeySym = 0x0000FF3D XK_PreviousCandidate*: KeySym = 0x0000FF3E # Japanese keyboard support - XK_Kanji*: KeySym = 0x0000FF21 # Kanji, Kanji convert - XK_Muhenkan*: KeySym = 0x0000FF22 # Cancel Conversion + XK_Kanji*: KeySym = 0x0000FF21 # Kanji, Kanji convert + XK_Muhenkan*: KeySym = 0x0000FF22 # Cancel Conversion XK_Henkan_Mode*: KeySym = 0x0000FF23 # Start/Stop Conversion - XK_Henkan*: KeySym = 0x0000FF23 # Alias for Henkan_Mode - XK_Romaji*: KeySym = 0x0000FF24 # to Romaji - XK_Hiragana*: KeySym = 0x0000FF25 # to Hiragana - XK_Katakana*: KeySym = 0x0000FF26 # to Katakana + XK_Henkan*: KeySym = 0x0000FF23 # Alias for Henkan_Mode + XK_Romaji*: KeySym = 0x0000FF24 # to Romaji + XK_Hiragana*: KeySym = 0x0000FF25 # to Hiragana + XK_Katakana*: KeySym = 0x0000FF26 # to Katakana XK_Hiragana_Katakana*: KeySym = 0x0000FF27 # Hiragana/Katakana toggle - XK_Zenkaku*: KeySym = 0x0000FF28 # to Zenkaku - XK_Hankaku*: KeySym = 0x0000FF29 # to Hankaku + XK_Zenkaku*: KeySym = 0x0000FF28 # to Zenkaku + XK_Hankaku*: KeySym = 0x0000FF29 # to Hankaku XK_Zenkaku_Hankaku*: KeySym = 0x0000FF2A # Zenkaku/Hankaku toggle - XK_Touroku*: KeySym = 0x0000FF2B # Add to Dictionary - XK_Massyo*: KeySym = 0x0000FF2C # Delete from Dictionary - XK_Kana_Lock*: KeySym = 0x0000FF2D # Kana Lock + XK_Touroku*: KeySym = 0x0000FF2B # Add to Dictionary + XK_Massyo*: KeySym = 0x0000FF2C # Delete from Dictionary + XK_Kana_Lock*: KeySym = 0x0000FF2D # Kana Lock XK_Kana_Shift*: KeySym = 0x0000FF2E # Kana Shift XK_Eisu_Shift*: KeySym = 0x0000FF2F # Alphanumeric Shift XK_Eisu_toggle*: KeySym = 0x0000FF30 # Alphanumeric toggle XK_Kanji_Bangou*: KeySym = 0x0000FF37 # Codeinput - XK_Zen_Koho*: KeySym = 0x0000FF3D # Multiple/All Candidate(s) - XK_Mae_Koho*: KeySym = 0x0000FF3E # Previous Candidate \ - # = $FF31 thru = $FF3F are under XK_KOREAN - # Cursor control & motion + XK_Zen_Koho*: KeySym = 0x0000FF3D # Multiple/All Candidate(s) + XK_Mae_Koho*: KeySym = 0x0000FF3E + # Previous Candidate \ + # = $FF31 thru = $FF3F are under XK_KOREAN + # Cursor control & motion XK_Home*: KeySym = 0x0000FF50 - XK_Left*: KeySym = 0x0000FF51 # Move left, left arrow - XK_Up*: KeySym = 0x0000FF52 # Move up, up arrow - XK_Right*: KeySym = 0x0000FF53 # Move right, right arrow - XK_Down*: KeySym = 0x0000FF54 # Move down, down arrow - XK_Prior*: KeySym = 0x0000FF55 # Prior, previous + XK_Left*: KeySym = 0x0000FF51 # Move left, left arrow + XK_Up*: KeySym = 0x0000FF52 # Move up, up arrow + XK_Right*: KeySym = 0x0000FF53 # Move right, right arrow + XK_Down*: KeySym = 0x0000FF54 # Move down, down arrow + XK_Prior*: KeySym = 0x0000FF55 # Prior, previous XK_Page_Up*: KeySym = 0x0000FF55 - XK_Next*: KeySym = 0x0000FF56 # Next + XK_Next*: KeySym = 0x0000FF56 # Next XK_Page_Down*: KeySym = 0x0000FF56 - XK_End*: KeySym = 0x0000FF57 # EOL - XK_Begin*: KeySym = 0x0000FF58 # BOL \ - # Misc Functions - XK_Select*: KeySym = 0x0000FF60 # Select, mark + XK_End*: KeySym = 0x0000FF57 # EOL + XK_Begin*: KeySym = 0x0000FF58 + # BOL \ + # Misc Functions + XK_Select*: KeySym = 0x0000FF60 # Select, mark XK_Print*: KeySym = 0x0000FF61 - XK_Execute*: KeySym = 0x0000FF62 # Execute, run, do - XK_Insert*: KeySym = 0x0000FF63 # Insert, insert here - XK_Undo*: KeySym = 0x0000FF65 # Undo, oops - XK_Redo*: KeySym = 0x0000FF66 # redo, again + XK_Execute*: KeySym = 0x0000FF62 # Execute, run, do + XK_Insert*: KeySym = 0x0000FF63 # Insert, insert here + XK_Undo*: KeySym = 0x0000FF65 # Undo, oops + XK_Redo*: KeySym = 0x0000FF66 # redo, again XK_Menu*: KeySym = 0x0000FF67 - XK_Find*: KeySym = 0x0000FF68 # Find, search - XK_Cancel*: KeySym = 0x0000FF69 # Cancel, stop, abort, exit - XK_Help*: KeySym = 0x0000FF6A # Help + XK_Find*: KeySym = 0x0000FF68 # Find, search + XK_Cancel*: KeySym = 0x0000FF69 # Cancel, stop, abort, exit + XK_Help*: KeySym = 0x0000FF6A # Help XK_Break*: KeySym = 0x0000FF6B XK_Mode_switch*: KeySym = 0x0000FF7E # Character set switch XK_script_switch*: KeySym = 0x0000FF7E # Alias for mode_switch - XK_Num_Lock*: KeySym = 0x0000FF7F # Keypad Functions, keypad numbers cleverly chosen to map to ascii - XK_KP_Space*: KeySym = 0x0000FF80 # space + XK_Num_Lock*: KeySym = 0x0000FF7F + # Keypad Functions, keypad numbers cleverly chosen to map to ascii + XK_KP_Space*: KeySym = 0x0000FF80 # space XK_KP_Tab*: KeySym = 0x0000FF89 - XK_KP_Enter*: KeySym = 0x0000FF8D # enter - XK_KP_F1*: KeySym = 0x0000FF91 # PF1, KP_A, ... + XK_KP_Enter*: KeySym = 0x0000FF8D # enter + XK_KP_F1*: KeySym = 0x0000FF91 # PF1, KP_A, ... XK_KP_F2*: KeySym = 0x0000FF92 XK_KP_F3*: KeySym = 0x0000FF93 XK_KP_F4*: KeySym = 0x0000FF94 @@ -107,7 +110,7 @@ XK_KP_Begin*: KeySym = 0x0000FF9D XK_KP_Insert*: KeySym = 0x0000FF9E XK_KP_Delete*: KeySym = 0x0000FF9F - XK_KP_Equal*: KeySym = 0x0000FFBD # equals + XK_KP_Equal*: KeySym = 0x0000FFBD # equals XK_KP_Multiply*: KeySym = 0x0000FFAA XK_KP_Add*: KeySym = 0x0000FFAB XK_KP_Separator*: KeySym = 0x0000FFAC # separator, often comma @@ -123,12 +126,13 @@ XK_KP_6*: KeySym = 0x0000FFB6 XK_KP_7*: KeySym = 0x0000FFB7 XK_KP_8*: KeySym = 0x0000FFB8 - XK_KP_9*: KeySym = 0x0000FFB9 #*\ - # * Auxilliary Functions; note the duplicate definitions for left and right - # * function keys; Sun keyboards and a few other manufactures have such - # * function key groups on the left and/or right sides of the keyboard. - # * We've not found a keyboard with more than 35 function keys total. - # * + XK_KP_9*: KeySym = 0x0000FFB9 + #*\ + # * Auxilliary Functions; note the duplicate definitions for left and right + # * function keys; Sun keyboards and a few other manufactures have such + # * function key groups on the left and/or right sides of the keyboard. + # * We've not found a keyboard with more than 35 function keys total. + # * XK_F1*: KeySym = 0x0000FFBE XK_F2*: KeySym = 0x0000FFBF XK_F3*: KeySym = 0x0000FFC0 @@ -188,21 +192,21 @@ XK_F34*: KeySym = 0x0000FFDF XK_R14*: KeySym = 0x0000FFDF XK_F35*: KeySym = 0x0000FFE0 - XK_R15*: KeySym = 0x0000FFE0 # Modifiers - XK_Shift_L*: KeySym = 0x0000FFE1 # Left shift - XK_Shift_R*: KeySym = 0x0000FFE2 # Right shift - XK_Control_L*: KeySym = 0x0000FFE3 # Left control - XK_Control_R*: KeySym = 0x0000FFE4 # Right control - XK_Caps_Lock*: KeySym = 0x0000FFE5 # Caps lock + XK_R15*: KeySym = 0x0000FFE0 # Modifiers + XK_Shift_L*: KeySym = 0x0000FFE1 # Left shift + XK_Shift_R*: KeySym = 0x0000FFE2 # Right shift + XK_Control_L*: KeySym = 0x0000FFE3 # Left control + XK_Control_R*: KeySym = 0x0000FFE4 # Right control + XK_Caps_Lock*: KeySym = 0x0000FFE5 # Caps lock XK_Shift_Lock*: KeySym = 0x0000FFE6 # Shift lock - XK_Meta_L*: KeySym = 0x0000FFE7 # Left meta - XK_Meta_R*: KeySym = 0x0000FFE8 # Right meta - XK_Alt_L*: KeySym = 0x0000FFE9 # Left alt - XK_Alt_R*: KeySym = 0x0000FFEA # Right alt - XK_Super_L*: KeySym = 0x0000FFEB # Left super - XK_Super_R*: KeySym = 0x0000FFEC # Right super - XK_Hyper_L*: KeySym = 0x0000FFED # Left hyper - XK_Hyper_R*: KeySym = 0x0000FFEE # Right hyper + XK_Meta_L*: KeySym = 0x0000FFE7 # Left meta + XK_Meta_R*: KeySym = 0x0000FFE8 # Right meta + XK_Alt_L*: KeySym = 0x0000FFE9 # Left alt + XK_Alt_R*: KeySym = 0x0000FFEA # Right alt + XK_Super_L*: KeySym = 0x0000FFEB # Left super + XK_Super_R*: KeySym = 0x0000FFEC # Right super + XK_Hyper_L*: KeySym = 0x0000FFED # Left hyper + XK_Hyper_R*: KeySym = 0x0000FFEE # Right hyper # XK_MISCELLANY #* # * ISO 9995 Function and Modifier Keys @@ -423,7 +427,7 @@ XK_asciicircum*: KeySym = 0x0000005E XK_underscore*: KeySym = 0x0000005F XK_grave*: KeySym = 0x00000060 - XK_quoteleft*: KeySym = 0x00000060 # deprecated + XK_quoteleft*: KeySym = 0x00000060 # deprecated XK_a*: KeySym = 0x00000061 XK_b*: KeySym = 0x00000062 XK_c*: KeySym = 0x00000063 @@ -656,7 +660,7 @@ when defined(XK_LATIN4) or true: const XK_kra*: KeySym = 0x000003A2 - XK_kappa*: KeySym = 0x000003A2 # deprecated + XK_kappa*: KeySym = 0x000003A2 # deprecated XKc_Rcedilla*: KeySym = 0x000003A3 XKc_Itilde*: KeySym = 0x000003A5 XKc_Lcedilla*: KeySym = 0x000003A6 @@ -761,7 +765,7 @@ XK_kana_yu*: KeySym = 0x000004AD XK_kana_yo*: KeySym = 0x000004AE XK_kana_tsu*: KeySym = 0x000004AF - XK_kana_tu*: KeySym = 0x000004AF # deprecated + XK_kana_tu*: KeySym = 0x000004AF # deprecated XK_prolongedsound*: KeySym = 0x000004B0 XKc_kana_A*: KeySym = 0x000004B1 XKc_kana_I*: KeySym = 0x000004B2 @@ -780,9 +784,9 @@ XKc_kana_SO*: KeySym = 0x000004BF XKc_kana_TA*: KeySym = 0x000004C0 XKc_kana_CHI*: KeySym = 0x000004C1 - XKc_kana_TI*: KeySym = 0x000004C1 # deprecated + XKc_kana_TI*: KeySym = 0x000004C1 # deprecated XKc_kana_TSU*: KeySym = 0x000004C2 - XKc_kana_TU*: KeySym = 0x000004C2 # deprecated + XKc_kana_TU*: KeySym = 0x000004C2 # deprecated XKc_kana_TE*: KeySym = 0x000004C3 XKc_kana_TO*: KeySym = 0x000004C4 XKc_kana_NA*: KeySym = 0x000004C5 @@ -793,7 +797,7 @@ XKc_kana_HA*: KeySym = 0x000004CA XKc_kana_HI*: KeySym = 0x000004CB XKc_kana_FU*: KeySym = 0x000004CC - XKc_kana_HU*: KeySym = 0x000004CC # deprecated + XKc_kana_HU*: KeySym = 0x000004CC # deprecated XKc_kana_HE*: KeySym = 0x000004CD XKc_kana_HO*: KeySym = 0x000004CE XKc_kana_MA*: KeySym = 0x000004CF @@ -1498,7 +1502,7 @@ when defined(XK_KOREAN) or true: const - XK_Hangul*: KeySym = 0x0000FF31 # Hangul start/stop(toggle) + XK_Hangul*: KeySym = 0x0000FF31 # Hangul start/stop(toggle) XK_Hangul_Start*: KeySym = 0x0000FF32 # Hangul start XK_Hangul_End*: KeySym = 0x0000FF33 # Hangul end, English start XK_Hangul_Hanja*: KeySym = 0x0000FF34 # Start Hangul->Hanja Conversion @@ -1513,8 +1517,9 @@ XK_Hangul_MultipleCandidate*: KeySym = 0x0000FF3D # Multiple candidate XK_Hangul_PreviousCandidate*: KeySym = 0x0000FF3E # Previous candidate XK_Hangul_Special*: KeySym = 0x0000FF3F # Special symbols - XK_Hangul_switch*: KeySym = 0x0000FF7E # Alias for mode_switch \ - # Hangul Consonant Characters + XK_Hangul_switch*: KeySym = 0x0000FF7E + # Alias for mode_switch \ + # Hangul Consonant Characters XK_Hangul_Kiyeog*: KeySym = 0x00000EA1 XK_Hangul_SsangKiyeog*: KeySym = 0x00000EA2 XK_Hangul_KiyeogSios*: KeySym = 0x00000EA3 @@ -1565,7 +1570,7 @@ XK_Hangul_YU*: KeySym = 0x00000ED0 XK_Hangul_EU*: KeySym = 0x00000ED1 XK_Hangul_YI*: KeySym = 0x00000ED2 - XK_Hangul_I*: KeySym = 0x00000ED3 # Hangul syllable-final (JongSeong) Characters + XK_Hangul_I*: KeySym = 0x00000ED3 # Hangul syllable-final (JongSeong) Characters XK_Hangul_J_Kiyeog*: KeySym = 0x00000ED4 XK_Hangul_J_SsangKiyeog*: KeySym = 0x00000ED5 XK_Hangul_J_KiyeogSios*: KeySym = 0x00000ED6 @@ -1601,7 +1606,8 @@ XK_Hangul_SunkyeongeumPhieuf*: KeySym = 0x00000EF4 XK_Hangul_YeorinHieuh*: KeySym = 0x00000EF5 # Ancient Hangul Vowel Characters XK_Hangul_AraeA*: KeySym = 0x00000EF6 - XK_Hangul_AraeAE*: KeySym = 0x00000EF7 # Ancient Hangul syllable-final (JongSeong) Characters + XK_Hangul_AraeAE*: KeySym = 0x00000EF7 + # Ancient Hangul syllable-final (JongSeong) Characters XK_Hangul_J_PanSios*: KeySym = 0x00000EF8 XK_Hangul_J_KkogjiDalrinIeung*: KeySym = 0x00000EF9 XK_Hangul_J_YeorinHieuh*: KeySym = 0x00000EFA # Korean currency symbol @@ -1793,8 +1799,9 @@ XK_ocaron*: KeySym = 0x000016BD XK_obarred*: KeySym = 0x000016BF XKc_SCHWA*: KeySym = 0x000016C6 - XK_schwa*: KeySym = 0x000016F6 # those are not really Caucasus, but I put them here for now\ - # For Inupiak + XK_schwa*: KeySym = 0x000016F6 + # those are not really Caucasus, but I put them here for now\ + # For Inupiak XKc_Lbelowdot*: KeySym = 0x000016D1 XKc_Lstrokebelowdot*: KeySym = 0x000016D2 XK_lbelowdot*: KeySym = 0x000016E1 @@ -1897,10 +1904,10 @@ XK_yhook*: KeySym = 0x00001EF7 XKc_Ytilde*: KeySym = 0x00001EF8 XK_ytilde*: KeySym = 0x00001EF9 - XKc_Ohorn*: KeySym = 0x00001EFA # U+01a0 - XK_ohorn*: KeySym = 0x00001EFB # U+01a1 - XKc_Uhorn*: KeySym = 0x00001EFC # U+01af - XK_uhorn*: KeySym = 0x00001EFD # U+01b0 + XKc_Ohorn*: KeySym = 0x00001EFA # U+01a0 + XK_ohorn*: KeySym = 0x00001EFB # U+01a1 + XKc_Uhorn*: KeySym = 0x00001EFC # U+01af + XK_uhorn*: KeySym = 0x00001EFD # U+01b0 XK_combining_tilde*: KeySym = 0x00001E9F # U+0303 XK_combining_grave*: KeySym = 0x00001EF2 # U+0300 XK_combining_acute*: KeySym = 0x00001EF3 # U+0301 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/x.nim --- a/semicongine/thirdparty/x11/x.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/x.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,4 +1,3 @@ - # # Automatically converted by H2Pas 0.99.15 from x.h # The following command line parameters were used: diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/x11pragma.nim --- a/semicongine/thirdparty/x11/x11pragma.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/x11pragma.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,20 +1,17 @@ # included from xlib bindings - when defined(use_pkg_config) or defined(use_pkg_config_static): - {.pragma: libx11, cdecl, importc.} - {.pragma: libx11c, cdecl.} - when defined(use_pkg_config_static): - {.passl: gorge("pkg-config x11 --static --libs").} - else: - {.passl: gorge("pkg-config x11 --libs").} + {.pragma: libx11, cdecl, importc.} + {.pragma: libx11c, cdecl.} + when defined(use_pkg_config_static): + {.passl: gorge("pkg-config x11 --static --libs").} + else: + {.passl: gorge("pkg-config x11 --libs").} else: - when defined(macosx): - const - libX11* = "libX11.dylib" - else: - const - libX11* = "libX11.so(|.6)" + when defined(macosx): + const libX11* = "libX11.dylib" + else: + const libX11* = "libX11.so(|.6)" - {.pragma: libx11, cdecl, dynlib: libX11, importc.} - {.pragma: libx11c, cdecl, dynlib: libX11.} + {.pragma: libx11, cdecl, dynlib: libX11, importc.} + {.pragma: libx11c, cdecl, dynlib: libX11.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xatom.nim --- a/semicongine/thirdparty/x11/xatom.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xatom.nim Thu Aug 22 18:32:21 2024 +0700 @@ -4,8 +4,7 @@ # Do not change! Changing this file implies a protocol change! # -import - x +import x const XA_PRIMARY* = Atom(1) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xcms.nim --- a/semicongine/thirdparty/x11/xcms.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xcms.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,5 +1,4 @@ -import - x, xlib +import x, xlib #const # libX11* = "X11" @@ -42,94 +41,100 @@ PXcmsFloat* = ptr XcmsFloat XcmsFloat* = float64 PXcmsRGB* = ptr XcmsRGB - XcmsRGB*{.final.} = object + XcmsRGB* {.final.} = object red*: int16 green*: int16 blue*: int16 PXcmsRGBi* = ptr XcmsRGBi - XcmsRGBi*{.final.} = object + XcmsRGBi* {.final.} = object red*: XcmsFloat green*: XcmsFloat blue*: XcmsFloat PXcmsCIEXYZ* = ptr XcmsCIEXYZ - XcmsCIEXYZ*{.final.} = object + XcmsCIEXYZ* {.final.} = object X*: XcmsFloat Y*: XcmsFloat Z*: XcmsFloat PXcmsCIEuvY* = ptr XcmsCIEuvY - XcmsCIEuvY*{.final.} = object + XcmsCIEuvY* {.final.} = object u_prime*: XcmsFloat v_prime*: XcmsFloat Y*: XcmsFloat PXcmsCIExyY* = ptr XcmsCIExyY - XcmsCIExyY*{.final.} = object + XcmsCIExyY* {.final.} = object x*: XcmsFloat y*: XcmsFloat theY*: XcmsFloat PXcmsCIELab* = ptr XcmsCIELab - XcmsCIELab*{.final.} = object + XcmsCIELab* {.final.} = object L_star*: XcmsFloat a_star*: XcmsFloat b_star*: XcmsFloat PXcmsCIELuv* = ptr XcmsCIELuv - XcmsCIELuv*{.final.} = object + XcmsCIELuv* {.final.} = object L_star*: XcmsFloat u_star*: XcmsFloat v_star*: XcmsFloat PXcmsTekHVC* = ptr XcmsTekHVC - XcmsTekHVC*{.final.} = object + XcmsTekHVC* {.final.} = object H*: XcmsFloat V*: XcmsFloat C*: XcmsFloat PXcmsPad* = ptr XcmsPad - XcmsPad*{.final.} = object + XcmsPad* {.final.} = object pad0*: XcmsFloat pad1*: XcmsFloat pad2*: XcmsFloat pad3*: XcmsFloat PXcmsColor* = ptr XcmsColor - XcmsColor*{.final.} = object # spec : record - # case longint of - # 0 : ( RGB : XcmsRGB ); - # 1 : ( RGBi : XcmsRGBi ); - # 2 : ( CIEXYZ : XcmsCIEXYZ ); - # 3 : ( CIEuvY : XcmsCIEuvY ); - # 4 : ( CIExyY : XcmsCIExyY ); - # 5 : ( CIELab : XcmsCIELab ); - # 6 : ( CIELuv : XcmsCIELuv ); - # 7 : ( TekHVC : XcmsTekHVC ); - # 8 : ( Pad : XcmsPad ); - # end; + XcmsColor* {.final.} = object + # spec : record + # case longint of + # 0 : ( RGB : XcmsRGB ); + # 1 : ( RGBi : XcmsRGBi ); + # 2 : ( CIEXYZ : XcmsCIEXYZ ); + # 3 : ( CIEuvY : XcmsCIEuvY ); + # 4 : ( CIExyY : XcmsCIExyY ); + # 5 : ( CIELab : XcmsCIELab ); + # 6 : ( CIELuv : XcmsCIELuv ); + # 7 : ( TekHVC : XcmsTekHVC ); + # 8 : ( Pad : XcmsPad ); + # end; pad*: XcmsPad pixel*: int32 format*: XcmsColorFormat PXcmsPerScrnInfo* = ptr XcmsPerScrnInfo - XcmsPerScrnInfo*{.final.} = object + XcmsPerScrnInfo* {.final.} = object screenWhitePt*: XcmsColor functionSet*: XPointer screenData*: XPointer state*: int8 - pad*: array[0..2, char] + pad*: array[0 .. 2, char] PXcmsCCC* = ptr XcmsCCC - XcmsCompressionProc* = proc (para1: PXcmsCCC, para2: PXcmsColor, - para3: int32, para4: int32, para5: PBool): Status{. - cdecl.} - XcmsWhiteAdjustProc* = proc (para1: PXcmsCCC, para2: PXcmsColor, - para3: PXcmsColor, para4: XcmsColorFormat, - para5: PXcmsColor, para6: int32, para7: PBool): Status{. - cdecl.} - XcmsCCC*{.final.} = object + XcmsCompressionProc* = proc( + para1: PXcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool + ): Status {.cdecl.} + XcmsWhiteAdjustProc* = proc( + para1: PXcmsCCC, + para2: PXcmsColor, + para3: PXcmsColor, + para4: XcmsColorFormat, + para5: PXcmsColor, + para6: int32, + para7: PBool, + ): Status {.cdecl.} + XcmsCCC* {.final.} = object dpy*: PDisplay screenNumber*: int32 visual*: PVisual @@ -143,19 +148,19 @@ PXcmsCCCRec* = ptr XcmsCCCRec XcmsCCCRec* = XcmsCCC - XcmsScreenInitProc* = proc (para1: PDisplay, para2: int32, - para3: PXcmsPerScrnInfo): Status{.cdecl.} - XcmsScreenFreeProc* = proc (para1: XPointer){.cdecl.} + XcmsScreenInitProc* = + proc(para1: PDisplay, para2: int32, para3: PXcmsPerScrnInfo): Status {.cdecl.} + XcmsScreenFreeProc* = proc(para1: XPointer) {.cdecl.} - XcmsConversionProc* = proc (){.cdecl.} + XcmsConversionProc* = proc() {.cdecl.} PXcmsFuncListPtr* = ptr XcmsFuncListPtr XcmsFuncListPtr* = XcmsConversionProc - XcmsParseStringProc* = proc (para1: cstring, para2: PXcmsColor): int32{.cdecl.} + XcmsParseStringProc* = proc(para1: cstring, para2: PXcmsColor): int32 {.cdecl.} PXcmsColorSpace* = ptr XcmsColorSpace - XcmsColorSpace*{.final.} = object + XcmsColorSpace* {.final.} = object prefix*: cstring id*: XcmsColorFormat parseString*: XcmsParseStringProc @@ -164,185 +169,313 @@ inverse_flag*: int32 PXcmsFunctionSet* = ptr XcmsFunctionSet - XcmsFunctionSet*{.final.} = object # error - # extern Status XcmsAddColorSpace ( - # in declaration at line 323 + XcmsFunctionSet* {.final.} = object + # error + # extern Status XcmsAddColorSpace ( + # in declaration at line 323 DDColorSpaces*: ptr PXcmsColorSpace screenInitProc*: XcmsScreenInitProc screenFreeProc*: XcmsScreenFreeProc -proc XcmsAddFunctionSet*(para1: PXcmsFunctionSet): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsAllocColor*(para1: PDisplay, para2: Colormap, para3: PXcmsColor, - para4: XcmsColorFormat): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsAllocNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring, - para4: PXcmsColor, para5: PXcmsColor, - para6: XcmsColorFormat): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCCCOfColormap*(para1: PDisplay, para2: Colormap): XcmsCCC{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELabClipab*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELabClipL*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELabClipLab*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELabQueryMaxC*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsCIELabQueryMaxL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsCIELabQueryMaxLC*(para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsCIELabQueryMinL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsCIELabToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIELabWhiteShiftColors*(para1: XcmsCCC, para2: PXcmsColor, - para3: PXcmsColor, para4: XcmsColorFormat, - para5: PXcmsColor, para6: int32, para7: PBool): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsCIELuvClipL*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELuvClipLuv*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELuvClipuv*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCIELuvQueryMaxC*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsCIELuvQueryMaxL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsCIELuvQueryMaxLC*(para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsCIELuvQueryMinL*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsCIELuvToCIEuvY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIELuvWhiteShiftColors*(para1: XcmsCCC, para2: PXcmsColor, - para3: PXcmsColor, para4: XcmsColorFormat, - para5: PXcmsColor, para6: int32, para7: PBool): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsCIEXYZToCIELab*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIEXYZToCIEuvY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIEXYZToCIExyY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIEXYZToRGBi*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: PBool): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIEuvYToCIELuv*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIEuvYToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIEuvYToTekHVC*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsCIExyYToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsClientWhitePointOfCCC*(para1: XcmsCCC): PXcmsColor{.cdecl, - dynlib: libX11, importc.} -proc XcmsConvertColors*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: XcmsColorFormat, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsCreateCCC*(para1: PDisplay, para2: int32, para3: PVisual, - para4: PXcmsColor, para5: XcmsCompressionProc, - para6: XPointer, para7: XcmsWhiteAdjustProc, - para8: XPointer): XcmsCCC{.cdecl, dynlib: libX11, importc.} -proc XcmsDefaultCCC*(para1: PDisplay, para2: int32): XcmsCCC{.cdecl, - dynlib: libX11, importc.} -proc XcmsDisplayOfCCC*(para1: XcmsCCC): PDisplay{.cdecl, dynlib: libX11, - importc.} -proc XcmsFormatOfPrefix*(para1: cstring): XcmsColorFormat{.cdecl, - dynlib: libX11, importc.} -proc XcmsFreeCCC*(para1: XcmsCCC){.cdecl, dynlib: libX11, importc.} -proc XcmsLookupColor*(para1: PDisplay, para2: Colormap, para3: cstring, - para4: PXcmsColor, para5: PXcmsColor, - para6: XcmsColorFormat): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsPrefixOfFormat*(para1: XcmsColorFormat): cstring{.cdecl, - dynlib: libX11, importc.} -proc XcmsQueryBlack*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsQueryBlue*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsQueryColor*(para1: PDisplay, para2: Colormap, para3: PXcmsColor, - para4: XcmsColorFormat): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsQueryColors*(para1: PDisplay, para2: Colormap, para3: PXcmsColor, - para4: int32, para5: XcmsColorFormat): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsQueryGreen*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsQueryRed*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsQueryWhite*(para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsRGBiToCIEXYZ*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: PBool): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsRGBiToRGB*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: PBool): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsRGBToRGBi*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: PBool): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsScreenNumberOfCCC*(para1: XcmsCCC): int32{.cdecl, dynlib: libX11, - importc.} -proc XcmsScreenWhitePointOfCCC*(para1: XcmsCCC): PXcmsColor{.cdecl, - dynlib: libX11, importc.} -proc XcmsSetCCCOfColormap*(para1: PDisplay, para2: Colormap, para3: XcmsCCC): XcmsCCC{. - cdecl, dynlib: libX11, importc.} -proc XcmsSetCompressionProc*(para1: XcmsCCC, para2: XcmsCompressionProc, - para3: XPointer): XcmsCompressionProc{.cdecl, - dynlib: libX11, importc.} -proc XcmsSetWhiteAdjustProc*(para1: XcmsCCC, para2: XcmsWhiteAdjustProc, - para3: XPointer): XcmsWhiteAdjustProc{.cdecl, - dynlib: libX11, importc.} -proc XcmsSetWhitePoint*(para1: XcmsCCC, para2: PXcmsColor): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsStoreColor*(para1: PDisplay, para2: Colormap, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsStoreColors*(para1: PDisplay, para2: Colormap, para3: PXcmsColor, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsTekHVCClipC*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsTekHVCClipV*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsTekHVCClipVC*(para1: XcmsCCC, para2: PXcmsColor, para3: int32, - para4: int32, para5: PBool): Status{.cdecl, - dynlib: libX11, importc.} -proc XcmsTekHVCQueryMaxC*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsTekHVCQueryMaxV*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsTekHVCQueryMaxVC*(para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsTekHVCQueryMaxVSamples*(para1: XcmsCCC, para2: XcmsFloat, - para3: PXcmsColor, para4: int32): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsTekHVCQueryMinV*(para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, - para4: PXcmsColor): Status{.cdecl, dynlib: libX11, - importc.} -proc XcmsTekHVCToCIEuvY*(para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, - para4: int32): Status{.cdecl, dynlib: libX11, importc.} -proc XcmsTekHVCWhiteShiftColors*(para1: XcmsCCC, para2: PXcmsColor, - para3: PXcmsColor, para4: XcmsColorFormat, - para5: PXcmsColor, para6: int32, para7: PBool): Status{. - cdecl, dynlib: libX11, importc.} -proc XcmsVisualOfCCC*(para1: XcmsCCC): PVisual{.cdecl, dynlib: libX11, importc.} +proc XcmsAddFunctionSet*( + para1: PXcmsFunctionSet +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsAllocColor*( + para1: PDisplay, para2: Colormap, para3: PXcmsColor, para4: XcmsColorFormat +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsAllocNamedColor*( + para1: PDisplay, + para2: Colormap, + para3: cstring, + para4: PXcmsColor, + para5: PXcmsColor, + para6: XcmsColorFormat, +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCCCOfColormap*( + para1: PDisplay, para2: Colormap +): XcmsCCC {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabClipab*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabClipL*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabClipLab*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabQueryMaxC*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabQueryMaxL*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabQueryMaxLC*( + para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabQueryMinL*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabToCIEXYZ*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELabWhiteShiftColors*( + para1: XcmsCCC, + para2: PXcmsColor, + para3: PXcmsColor, + para4: XcmsColorFormat, + para5: PXcmsColor, + para6: int32, + para7: PBool, +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvClipL*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvClipLuv*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvClipuv*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvQueryMaxC*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvQueryMaxL*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvQueryMaxLC*( + para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvQueryMinL*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvToCIEuvY*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIELuvWhiteShiftColors*( + para1: XcmsCCC, + para2: PXcmsColor, + para3: PXcmsColor, + para4: XcmsColorFormat, + para5: PXcmsColor, + para6: int32, + para7: PBool, +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEXYZToCIELab*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEXYZToCIEuvY*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEXYZToCIExyY*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEXYZToRGBi*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEuvYToCIELuv*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEuvYToCIEXYZ*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIEuvYToTekHVC*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCIExyYToCIEXYZ*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsClientWhitePointOfCCC*( + para1: XcmsCCC +): PXcmsColor {.cdecl, dynlib: libX11, importc.} + +proc XcmsConvertColors*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: XcmsColorFormat, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsCreateCCC*( + para1: PDisplay, + para2: int32, + para3: PVisual, + para4: PXcmsColor, + para5: XcmsCompressionProc, + para6: XPointer, + para7: XcmsWhiteAdjustProc, + para8: XPointer, +): XcmsCCC {.cdecl, dynlib: libX11, importc.} + +proc XcmsDefaultCCC*( + para1: PDisplay, para2: int32 +): XcmsCCC {.cdecl, dynlib: libX11, importc.} + +proc XcmsDisplayOfCCC*(para1: XcmsCCC): PDisplay {.cdecl, dynlib: libX11, importc.} +proc XcmsFormatOfPrefix*( + para1: cstring +): XcmsColorFormat {.cdecl, dynlib: libX11, importc.} + +proc XcmsFreeCCC*(para1: XcmsCCC) {.cdecl, dynlib: libX11, importc.} +proc XcmsLookupColor*( + para1: PDisplay, + para2: Colormap, + para3: cstring, + para4: PXcmsColor, + para5: PXcmsColor, + para6: XcmsColorFormat, +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsPrefixOfFormat*( + para1: XcmsColorFormat +): cstring {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryBlack*( + para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryBlue*( + para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryColor*( + para1: PDisplay, para2: Colormap, para3: PXcmsColor, para4: XcmsColorFormat +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryColors*( + para1: PDisplay, + para2: Colormap, + para3: PXcmsColor, + para4: int32, + para5: XcmsColorFormat, +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryGreen*( + para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryRed*( + para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsQueryWhite*( + para1: XcmsCCC, para2: XcmsColorFormat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsRGBiToCIEXYZ*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsRGBiToRGB*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsRGBToRGBi*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsScreenNumberOfCCC*(para1: XcmsCCC): int32 {.cdecl, dynlib: libX11, importc.} +proc XcmsScreenWhitePointOfCCC*( + para1: XcmsCCC +): PXcmsColor {.cdecl, dynlib: libX11, importc.} + +proc XcmsSetCCCOfColormap*( + para1: PDisplay, para2: Colormap, para3: XcmsCCC +): XcmsCCC {.cdecl, dynlib: libX11, importc.} + +proc XcmsSetCompressionProc*( + para1: XcmsCCC, para2: XcmsCompressionProc, para3: XPointer +): XcmsCompressionProc {.cdecl, dynlib: libX11, importc.} + +proc XcmsSetWhiteAdjustProc*( + para1: XcmsCCC, para2: XcmsWhiteAdjustProc, para3: XPointer +): XcmsWhiteAdjustProc {.cdecl, dynlib: libX11, importc.} + +proc XcmsSetWhitePoint*( + para1: XcmsCCC, para2: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsStoreColor*( + para1: PDisplay, para2: Colormap, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsStoreColors*( + para1: PDisplay, para2: Colormap, para3: PXcmsColor, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCClipC*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCClipV*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCClipVC*( + para1: XcmsCCC, para2: PXcmsColor, para3: int32, para4: int32, para5: PBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCQueryMaxC*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCQueryMaxV*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCQueryMaxVC*( + para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCQueryMaxVSamples*( + para1: XcmsCCC, para2: XcmsFloat, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCQueryMinV*( + para1: XcmsCCC, para2: XcmsFloat, para3: XcmsFloat, para4: PXcmsColor +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCToCIEuvY*( + para1: XcmsCCC, para2: PXcmsColor, para3: PXcmsColor, para4: int32 +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsTekHVCWhiteShiftColors*( + para1: XcmsCCC, + para2: PXcmsColor, + para3: PXcmsColor, + para4: XcmsColorFormat, + para5: PXcmsColor, + para6: int32, + para7: PBool, +): Status {.cdecl, dynlib: libX11, importc.} + +proc XcmsVisualOfCCC*(para1: XcmsCCC): PVisual {.cdecl, dynlib: libX11, importc.} # implementation proc XcmsUndefinedFormat(): XcmsColorFormat = @@ -390,4 +523,3 @@ proc FunctionSetOfCCC(ccc: XcmsCCC): Xpointer = result = ccc.pPerScrnInfo.functionSet - diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xf86dga.nim --- a/semicongine/thirdparty/x11/xf86dga.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xf86dga.nim Thu Aug 22 18:32:21 2024 +0700 @@ -3,11 +3,9 @@ # # $XFree86: xc/include/extensions/xf86dga.h,v 3.20 1999/10/13 04:20:48 dawes Exp $ -import - x, xlib +import x, xlib -const - libXxf86dga* = "libXxf86dga.so" +const libXxf86dga* = "libXxf86dga.so" #type # cfloat* = float32 @@ -25,8 +23,7 @@ # #************************************************************************ -type - PPcchar* = ptr ptr cstring +type PPcchar* = ptr ptr cstring const X_XF86DGAQueryVersion* = 0 @@ -46,40 +43,73 @@ XF86DGAHasColormap* = 0x00000100 XF86DGADirectColormap* = 0x00000200 -proc XF86DGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, - minorVersion: Pcint): XBool{.cdecl, - dynlib: libXxf86dga, importc.} -proc XF86DGAQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): XBool{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAGetVideoLL*(dpy: PDisplay, screen: cint, base_addr: Pcint, - width: Pcint, bank_size: Pcint, ram_size: Pcint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAGetVideo*(dpy: PDisplay, screen: cint, base_addr: PPcchar, - width: Pcint, bank_size: Pcint, ram_size: Pcint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGADirectVideo*(dpy: PDisplay, screen: cint, enable: cint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGADirectVideoLL*(dpy: PDisplay, screen: cint, enable: cint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAGetViewPortSize*(dpy: PDisplay, screen: cint, width: Pcint, - height: Pcint): Status{.cdecl, - dynlib: libXxf86dga, importc.} -proc XF86DGASetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAGetVidPage*(dpy: PDisplay, screen: cint, vid_page: Pcint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGASetVidPage*(dpy: PDisplay, screen: cint, vid_page: cint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAInstallColormap*(dpy: PDisplay, screen: cint, Colormap: Colormap): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAForkApp*(screen: cint): cint{.cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAQueryDirectVideo*(dpy: PDisplay, screen: cint, flags: Pcint): Status{. - cdecl, dynlib: libXxf86dga, importc.} -proc XF86DGAViewPortChanged*(dpy: PDisplay, screen: cint, n: cint): XBool{. - cdecl, dynlib: libXxf86dga, importc.} +proc XF86DGAQueryVersion*( + dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint +): XBool {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAQueryExtension*( + dpy: PDisplay, event_base: Pcint, error_base: Pcint +): XBool {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAGetVideoLL*( + dpy: PDisplay, + screen: cint, + base_addr: Pcint, + width: Pcint, + bank_size: Pcint, + ram_size: Pcint, +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAGetVideo*( + dpy: PDisplay, + screen: cint, + base_addr: PPcchar, + width: Pcint, + bank_size: Pcint, + ram_size: Pcint, +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGADirectVideo*( + dpy: PDisplay, screen: cint, enable: cint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGADirectVideoLL*( + dpy: PDisplay, screen: cint, enable: cint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAGetViewPortSize*( + dpy: PDisplay, screen: cint, width: Pcint, height: Pcint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGASetViewPort*( + dpy: PDisplay, screen: cint, x: cint, y: cint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAGetVidPage*( + dpy: PDisplay, screen: cint, vid_page: Pcint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGASetVidPage*( + dpy: PDisplay, screen: cint, vid_page: cint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAInstallColormap*( + dpy: PDisplay, screen: cint, Colormap: Colormap +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAForkApp*(screen: cint): cint {.cdecl, dynlib: libXxf86dga, importc.} +proc XF86DGAQueryDirectVideo*( + dpy: PDisplay, screen: cint, flags: Pcint +): Status {.cdecl, dynlib: libXxf86dga, importc.} + +proc XF86DGAViewPortChanged*( + dpy: PDisplay, screen: cint, n: cint +): XBool {.cdecl, dynlib: libXxf86dga, importc.} + const - X_XDGAQueryVersion* = 0 # 1 through 9 are in xf86dga1.pp - # 10 and 11 are reserved to avoid conflicts with rogue DGA extensions + X_XDGAQueryVersion* = 0 + # 1 through 9 are in xf86dga1.pp + # 10 and 11 are reserved to avoid conflicts with rogue DGA extensions X_XDGAQueryModes* = 12 X_XDGASetMode* = 13 X_XDGASetViewport* = 14 @@ -117,17 +147,17 @@ type PXDGAMode* = ptr XDGAMode - XDGAMode*{.final.} = object - num*: cint # A unique identifier for the mode (num > 0) - name*: cstring # name of mode given in the XF86Config + XDGAMode* {.final.} = object + num*: cint # A unique identifier for the mode (num > 0) + name*: cstring # name of mode given in the XF86Config verticalRefresh*: cfloat - flags*: cint # DGA_CONCURRENT_ACCESS, etc... - imageWidth*: cint # linear accessible portion (pixels) + flags*: cint # DGA_CONCURRENT_ACCESS, etc... + imageWidth*: cint # linear accessible portion (pixels) imageHeight*: cint - pixmapWidth*: cint # Xlib accessible portion (pixels) - pixmapHeight*: cint # both fields ignored if no concurrent access + pixmapWidth*: cint # Xlib accessible portion (pixels) + pixmapHeight*: cint # both fields ignored if no concurrent access bytesPerScanline*: cint - byteOrder*: cint # MSBFirst, LSBFirst + byteOrder*: cint # MSBFirst, LSBFirst depth*: cint bitsPerPixel*: cint redMask*: culong @@ -138,20 +168,20 @@ viewportHeight*: cint xViewportStep*: cint # viewport position granularity yViewportStep*: cint - maxViewportX*: cint # max viewport origin + maxViewportX*: cint # max viewport origin maxViewportY*: cint viewportFlags*: cint # types of page flipping possible reserved1*: cint reserved2*: cint PXDGADevice* = ptr XDGADevice - XDGADevice*{.final.} = object + XDGADevice* {.final.} = object mode*: XDGAMode data*: Pcuchar pixmap*: Pixmap PXDGAButtonEvent* = ptr XDGAButtonEvent - XDGAButtonEvent*{.final.} = object + XDGAButtonEvent* {.final.} = object theType*: cint serial*: culong display*: PDisplay @@ -161,7 +191,7 @@ button*: cuint PXDGAKeyEvent* = ptr XDGAKeyEvent - XDGAKeyEvent*{.final.} = object + XDGAKeyEvent* {.final.} = object theType*: cint serial*: culong display*: PDisplay @@ -171,7 +201,7 @@ keycode*: cuint PXDGAMotionEvent* = ptr XDGAMotionEvent - XDGAMotionEvent*{.final.} = object + XDGAMotionEvent* {.final.} = object theType*: cint serial*: culong display*: PDisplay @@ -182,53 +212,101 @@ dy*: cint PXDGAEvent* = ptr XDGAEvent - XDGAEvent*{.final.} = object - pad*: array[0..23, clong] # sorry you have to cast if you want access - # Case LongInt Of - # 0 : (_type : cint); - # 1 : (xbutton : XDGAButtonEvent); - # 2 : (xkey : XDGAKeyEvent); - # 3 : (xmotion : XDGAMotionEvent); - # 4 : (pad : Array[0..23] Of clong); + XDGAEvent* {.final.} = object + pad*: array[0 .. 23, clong] + # sorry you have to cast if you want access + # Case LongInt Of + # 0 : (_type : cint); + # 1 : (xbutton : XDGAButtonEvent); + # 2 : (xkey : XDGAKeyEvent); + # 3 : (xmotion : XDGAMotionEvent); + # 4 : (pad : Array[0..23] Of clong); + +proc XDGAQueryExtension*( + dpy: PDisplay, eventBase: Pcint, erroBase: Pcint +): XBool {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAQueryVersion*( + dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint +): XBool {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAQueryModes*( + dpy: PDisplay, screen: cint, num: Pcint +): PXDGAMode {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGASetMode*( + dpy: PDisplay, screen: cint, mode: cint +): PXDGADevice {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAOpenFramebuffer*( + dpy: PDisplay, screen: cint +): XBool {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGACloseFramebuffer*( + dpy: PDisplay, screen: cint +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGASetViewport*( + dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAInstallColormap*( + dpy: PDisplay, screen: cint, cmap: Colormap +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGACreateColormap*( + dpy: PDisplay, screen: cint, device: PXDGADevice, alloc: cint +): Colormap {.cdecl, dynlib: libXxf86dga, importc.} -proc XDGAQueryExtension*(dpy: PDisplay, eventBase: Pcint, erroBase: Pcint): XBool{. - cdecl, dynlib: libXxf86dga, importc.} -proc XDGAQueryVersion*(dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint): XBool{. - cdecl, dynlib: libXxf86dga, importc.} -proc XDGAQueryModes*(dpy: PDisplay, screen: cint, num: Pcint): PXDGAMode{.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGASetMode*(dpy: PDisplay, screen: cint, mode: cint): PXDGADevice{.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGAOpenFramebuffer*(dpy: PDisplay, screen: cint): XBool{.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGACloseFramebuffer*(dpy: PDisplay, screen: cint){.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGASetViewport*(dpy: PDisplay, screen: cint, x: cint, y: cint, flags: cint){. - cdecl, dynlib: libXxf86dga, importc.} -proc XDGAInstallColormap*(dpy: PDisplay, screen: cint, cmap: Colormap){.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGACreateColormap*(dpy: PDisplay, screen: cint, device: PXDGADevice, - alloc: cint): Colormap{.cdecl, dynlib: libXxf86dga, - importc.} -proc XDGASelectInput*(dpy: PDisplay, screen: cint, event_mask: clong){.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGAFillRectangle*(dpy: PDisplay, screen: cint, x: cint, y: cint, - width: cuint, height: cuint, color: culong){.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGACopyArea*(dpy: PDisplay, screen: cint, srcx: cint, srcy: cint, - width: cuint, height: cuint, dstx: cint, dsty: cint){.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGACopyTransparentArea*(dpy: PDisplay, screen: cint, srcx: cint, - srcy: cint, width: cuint, height: cuint, - dstx: cint, dsty: cint, key: culong){.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGAGetViewportStatus*(dpy: PDisplay, screen: cint): cint{.cdecl, - dynlib: libXxf86dga, importc.} -proc XDGASync*(dpy: PDisplay, screen: cint){.cdecl, dynlib: libXxf86dga, importc.} -proc XDGASetClientVersion*(dpy: PDisplay): XBool{.cdecl, dynlib: libXxf86dga, - importc.} -proc XDGAChangePixmapMode*(dpy: PDisplay, screen: cint, x: Pcint, y: Pcint, - mode: cint){.cdecl, dynlib: libXxf86dga, importc.} -proc XDGAKeyEventToXKeyEvent*(dk: PXDGAKeyEvent, xk: PXKeyEvent){.cdecl, - dynlib: libXxf86dga, importc.} +proc XDGASelectInput*( + dpy: PDisplay, screen: cint, event_mask: clong +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAFillRectangle*( + dpy: PDisplay, + screen: cint, + x: cint, + y: cint, + width: cuint, + height: cuint, + color: culong, +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGACopyArea*( + dpy: PDisplay, + screen: cint, + srcx: cint, + srcy: cint, + width: cuint, + height: cuint, + dstx: cint, + dsty: cint, +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGACopyTransparentArea*( + dpy: PDisplay, + screen: cint, + srcx: cint, + srcy: cint, + width: cuint, + height: cuint, + dstx: cint, + dsty: cint, + key: culong, +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAGetViewportStatus*( + dpy: PDisplay, screen: cint +): cint {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGASync*(dpy: PDisplay, screen: cint) {.cdecl, dynlib: libXxf86dga, importc.} +proc XDGASetClientVersion*(dpy: PDisplay): XBool {.cdecl, dynlib: libXxf86dga, importc.} +proc XDGAChangePixmapMode*( + dpy: PDisplay, screen: cint, x: Pcint, y: Pcint, mode: cint +) {.cdecl, dynlib: libXxf86dga, importc.} + +proc XDGAKeyEventToXKeyEvent*( + dk: PXDGAKeyEvent, xk: PXKeyEvent +) {.cdecl, dynlib: libXxf86dga, importc.} + # implementation diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xf86vmode.nim --- a/semicongine/thirdparty/x11/xf86vmode.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xf86vmode.nim Thu Aug 22 18:32:21 2024 +0700 @@ -31,14 +31,11 @@ # $Xorg: xf86vmode.h,v 1.3 2000/08/18 04:05:46 coskrey Exp $ # THIS IS NOT AN X CONSORTIUM STANDARD OR AN X PROJECT TEAM SPECIFICATION -import - x, xlib +import x, xlib -const - libXxf86vm* = "libXxf86vm.so" +const libXxf86vm* = "libXxf86vm.so" -type - PINT32* = ptr int32 +type PINT32* = ptr int32 const X_XF86VidModeQueryVersion* = 0 @@ -72,8 +69,7 @@ XF86VidModeNonEvent* = 0 XF86VidModeModeChange* = 1 else: - const - XF86VidModeNumberEvents* = 0 + const XF86VidModeNumberEvents* = 0 const XF86VidModeBadClock* = 0 XF86VidModeBadHTimings* = 1 @@ -88,7 +84,7 @@ type PXF86VidModeModeLine* = ptr XF86VidModeModeLine - XF86VidModeModeLine*{.final.} = object + XF86VidModeModeLine* {.final.} = object hdisplay*: cushort hsyncstart*: cushort hsyncend*: cushort @@ -105,7 +101,7 @@ PPPXF86VidModeModeInfo* = ptr PPXF86VidModeModeInfo PPXF86VidModeModeInfo* = ptr PXF86VidModeModeInfo PXF86VidModeModeInfo* = ptr XF86VidModeModeInfo - XF86VidModeModeInfo*{.final.} = object + XF86VidModeModeInfo* {.final.} = object dotclock*: cuint hdisplay*: cushort hsyncstart*: cushort @@ -121,12 +117,12 @@ c_private*: PINT32 PXF86VidModeSyncRange* = ptr XF86VidModeSyncRange - XF86VidModeSyncRange*{.final.} = object + XF86VidModeSyncRange* {.final.} = object hi*: cfloat lo*: cfloat PXF86VidModeMonitor* = ptr XF86VidModeMonitor - XF86VidModeMonitor*{.final.} = object + XF86VidModeMonitor* {.final.} = object vendor*: cstring model*: cstring EMPTY*: cfloat @@ -136,88 +132,132 @@ vsync*: PXF86VidModeSyncRange PXF86VidModeNotifyEvent* = ptr XF86VidModeNotifyEvent - XF86VidModeNotifyEvent*{.final.} = object - theType*: cint # of event - serial*: culong # # of last request processed by server + XF86VidModeNotifyEvent* {.final.} = object + theType*: cint # of event + serial*: culong # # of last request processed by server send_event*: XBool # true if this came from a SendEvent req display*: PDisplay # Display the event was read from - root*: Window # root window of event screen - state*: cint # What happened - kind*: cint # What happened - forced*: XBool # extents of new region - time*: Time # event timestamp + root*: Window # root window of event screen + state*: cint # What happened + kind*: cint # What happened + forced*: XBool # extents of new region + time*: Time # event timestamp PXF86VidModeGamma* = ptr XF86VidModeGamma - XF86VidModeGamma*{.final.} = object - red*: cfloat # Red Gamma value + XF86VidModeGamma* {.final.} = object + red*: cfloat # Red Gamma value green*: cfloat # Green Gamma value - blue*: cfloat # Blue Gamma value + blue*: cfloat # Blue Gamma value when defined(MACROS): proc XF86VidModeSelectNextMode*(disp: PDisplay, scr: cint): XBool proc XF86VidModeSelectPrevMode*(disp: PDisplay, scr: cint): XBool -proc XF86VidModeQueryVersion*(dpy: PDisplay, majorVersion: Pcint, - minorVersion: Pcint): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeQueryExtension*(dpy: PDisplay, event_base: Pcint, - error_base: Pcint): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeSetClientVersion*(dpy: PDisplay): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeGetModeLine*(dpy: PDisplay, screen: cint, dotclock: Pcint, - modeline: PXF86VidModeModeLine): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeGetAllModeLines*(dpy: PDisplay, screen: cint, modecount: Pcint, - modelinesPtr: PPPXF86VidModeModeInfo): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeAddModeLine*(dpy: PDisplay, screen: cint, - new_modeline: PXF86VidModeModeInfo, - after_modeline: PXF86VidModeModeInfo): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeDeleteModeLine*(dpy: PDisplay, screen: cint, - modeline: PXF86VidModeModeInfo): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeModModeLine*(dpy: PDisplay, screen: cint, - modeline: PXF86VidModeModeLine): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeValidateModeLine*(dpy: PDisplay, screen: cint, - modeline: PXF86VidModeModeInfo): Status{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeSwitchMode*(dpy: PDisplay, screen: cint, zoom: cint): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeSwitchToMode*(dpy: PDisplay, screen: cint, - modeline: PXF86VidModeModeInfo): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeLockModeSwitch*(dpy: PDisplay, screen: cint, lock: cint): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeGetMonitor*(dpy: PDisplay, screen: cint, - monitor: PXF86VidModeMonitor): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeGetViewPort*(dpy: PDisplay, screen: cint, x_return: Pcint, - y_return: Pcint): XBool{.cdecl, dynlib: libXxf86vm, - importc.} -proc XF86VidModeSetViewPort*(dpy: PDisplay, screen: cint, x: cint, y: cint): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeGetDotClocks*(dpy: PDisplay, screen: cint, flags_return: Pcint, - number_of_clocks_return: Pcint, - max_dot_clock_return: Pcint, clocks_return: PPcint): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeGetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeSetGamma*(dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeSetGammaRamp*(dpy: PDisplay, screen: cint, size: cint, - red_array: Pcushort, green_array: Pcushort, - blue_array: Pcushort): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeGetGammaRamp*(dpy: PDisplay, screen: cint, size: cint, - red_array: Pcushort, green_array: Pcushort, - blue_array: Pcushort): XBool{.cdecl, - dynlib: libXxf86vm, importc.} -proc XF86VidModeGetGammaRampSize*(dpy: PDisplay, screen: cint, size: Pcint): XBool{. - cdecl, dynlib: libXxf86vm, importc.} -proc XF86VidModeGetPermissions*(dpy: PDisplay, screen: cint, permissions: Pcint): XBool{. - cdecl, dynlib: libXxf86vm, importc.} +proc XF86VidModeQueryVersion*( + dpy: PDisplay, majorVersion: Pcint, minorVersion: Pcint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeQueryExtension*( + dpy: PDisplay, event_base: Pcint, error_base: Pcint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeSetClientVersion*( + dpy: PDisplay +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetModeLine*( + dpy: PDisplay, screen: cint, dotclock: Pcint, modeline: PXF86VidModeModeLine +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetAllModeLines*( + dpy: PDisplay, screen: cint, modecount: Pcint, modelinesPtr: PPPXF86VidModeModeInfo +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeAddModeLine*( + dpy: PDisplay, + screen: cint, + new_modeline: PXF86VidModeModeInfo, + after_modeline: PXF86VidModeModeInfo, +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeDeleteModeLine*( + dpy: PDisplay, screen: cint, modeline: PXF86VidModeModeInfo +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeModModeLine*( + dpy: PDisplay, screen: cint, modeline: PXF86VidModeModeLine +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeValidateModeLine*( + dpy: PDisplay, screen: cint, modeline: PXF86VidModeModeInfo +): Status {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeSwitchMode*( + dpy: PDisplay, screen: cint, zoom: cint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeSwitchToMode*( + dpy: PDisplay, screen: cint, modeline: PXF86VidModeModeInfo +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeLockModeSwitch*( + dpy: PDisplay, screen: cint, lock: cint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetMonitor*( + dpy: PDisplay, screen: cint, monitor: PXF86VidModeMonitor +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetViewPort*( + dpy: PDisplay, screen: cint, x_return: Pcint, y_return: Pcint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeSetViewPort*( + dpy: PDisplay, screen: cint, x: cint, y: cint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetDotClocks*( + dpy: PDisplay, + screen: cint, + flags_return: Pcint, + number_of_clocks_return: Pcint, + max_dot_clock_return: Pcint, + clocks_return: PPcint, +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetGamma*( + dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeSetGamma*( + dpy: PDisplay, screen: cint, Gamma: PXF86VidModeGamma +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeSetGammaRamp*( + dpy: PDisplay, + screen: cint, + size: cint, + red_array: Pcushort, + green_array: Pcushort, + blue_array: Pcushort, +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetGammaRamp*( + dpy: PDisplay, + screen: cint, + size: cint, + red_array: Pcushort, + green_array: Pcushort, + blue_array: Pcushort, +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetGammaRampSize*( + dpy: PDisplay, screen: cint, size: Pcint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + +proc XF86VidModeGetPermissions*( + dpy: PDisplay, screen: cint, permissions: Pcint +): XBool {.cdecl, dynlib: libXxf86vm, importc.} + # implementation #when defined(MACROS): @@ -225,4 +265,4 @@ XF86VidModeSwitchMode(disp, scr, 1) proc XF86VidModeSelectPrevMode(disp: PDisplay, scr: cint): XBool = - XF86VidModeSwitchMode(disp, scr, - 1) + XF86VidModeSwitchMode(disp, scr, -1) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xft.nim --- a/semicongine/thirdparty/x11/xft.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xft.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,12 +1,7 @@ # Converted from X11/Xft/Xft.h -import - x, - xlib, - xrender, - xutil +import x, xlib, xrender, xutil -const - xftLib = "libXft.so" +const xftLib = "libXft.so" # Defined in the FreeType library type @@ -18,11 +13,16 @@ # Defined in the fontconfig library type FcEndian* = enum - FcEndianBig, FcEndianLittle + FcEndianBig + FcEndianLittle FcResult* = enum - FcResultMatch, FcResultNoMatch, FcResultTypeMismatch, - FcResultNoId, FcResultOutOfMemory + FcResultMatch + FcResultNoMatch + FcResultTypeMismatch + FcResultNoId + FcResultOutOfMemory + PFcResult* = ptr FcResult FcBool* = cint @@ -37,6 +37,7 @@ nfont*: cint sfont*: cint fonts*: ptr PFcPattern + PFcFontSet* = ptr FcFontSet FcChar8* = cuchar @@ -49,7 +50,7 @@ PFcChar32* = ptr FcChar32 type - XftFontInfo* = object + XftFontInfo* = object PXftFontInfo* = ptr XftFontInfo XftFont* = object ascent*: cint @@ -57,7 +58,8 @@ height*: cint max_advance_width*: cint charset*: PFcCharSet - pattern*: PFcPattern + pattern*: PFcPattern + PXftFont* = ptr XftFont XftDraw* = object @@ -66,12 +68,14 @@ XftColor* = object pixel*: culong color*: XRenderColor + PXftColor* = ptr XftColor XftCharSpec* = object ucs4*: FcChar32 x*: cshort y*: cshort + PXftCharSpec* = ptr XftCharSpec XftCharFontSpec* = object @@ -79,12 +83,14 @@ ucs4*: FcChar32 x*: cshort y*: cshort + PXftCharFontSpec* = ptr XftCharFontSpec XftGlyphSpec* = object glyph*: FT_UInt x*: cshort y*: cshort + PXftGlyphSpec* = ptr XftGlyphSpec XftGlyphFontSpec* = object @@ -92,15 +98,12 @@ glyph*: FT_UInt x*: cshort y*: cshort + PXftGlyphFontSpec = ptr XftGlyphFontSpec # xftcolor.c proc XftColorAllocName*( - display: PDisplay, - visual: PVisual, - cmap: Colormap, - name: cstring, - result: PXftColor + display: PDisplay, visual: PVisual, cmap: Colormap, name: cstring, result: PXftColor ): XBool {.cdecl, dynlib: xftLib, importc.} proc XftColorAllocValue*( @@ -108,83 +111,55 @@ visual: PVisual, cmap: Colormap, color: PXRenderColor, - result: PXftColor + result: PXftColor, ): XBool {.cdecl, dynlib: xftLib, importc.} proc XftColorFree*( - display: PDisplay, - visual: PVisual, - cmap: Colormap, - color: PXftColor -) {.cdecl, dynlib: xftLib, importc.} + display: PDisplay, visual: PVisual, cmap: Colormap, color: PXftColor +) {.cdecl, dynlib: xftLib, importc.} # xftdpy.c -proc XftDefaultHasRender*( - display: PDisplay -): XBool {.cdecl, dynlib: xftLib, importc.} +proc XftDefaultHasRender*(display: PDisplay): XBool {.cdecl, dynlib: xftLib, importc.} proc XftDefaultSet*( - display: PDisplay, - defaults: PFcPattern + display: PDisplay, defaults: PFcPattern ): XBool {.cdecl, dynlib: xftLib, importc.} proc XftDefaultSubstitute*( - display: PDisplay, - screen: cint, - pattern: PFcPattern + display: PDisplay, screen: cint, pattern: PFcPattern ) {.cdecl, dynlib: xftLib, importc.} # xftdraw.c proc XftDrawCreate*( - display: PDisplay, - drawable: Drawable, - visual: PVisual, - colormap: Colormap + display: PDisplay, drawable: Drawable, visual: PVisual, colormap: Colormap ): PXftDraw {.cdecl, dynlib: xftLib, importc.} proc XftDrawCreateBitmap*( - display: PDisplay, - bitmap: Pixmap + display: PDisplay, bitmap: Pixmap ): PXftDraw {.cdecl, dynlib: xftLib, importc.} proc XftDrawCreateAlpha*( - display: PDisplay, - pixmap: Pixmap, - depth: cint + display: PDisplay, pixmap: Pixmap, depth: cint ): PXftDraw {.cdecl, dynlib: xftLib, importc.} proc XftDrawChange*( - draw: PXftDraw, - drawable: Drawable -) {.cdecl, dynlib: xftLib, importc.} - -proc XftDrawDisplay*( - draw: PXftDraw -): PDisplay {.cdecl, dynlib: xftLib, importc.} - -proc XftDrawDrawable*( - draw: PXftDraw -): Drawable {.cdecl, dynlib: xftLib, importc.} - -proc XftDrawColormap*( - draw: PXftDraw -): Colormap {.cdecl, dynlib: xftLib, importc.} - -proc XftDrawVisual*( - draw: PXftDraw -): PVisual {.cdecl, dynlib: xftLib, importc.} - -proc XftDrawDestroy*( - draw: PXftDraw + draw: PXftDraw, drawable: Drawable ) {.cdecl, dynlib: xftLib, importc.} -proc XftDrawPicture*( - draw: PXftDraw -): Picture {.cdecl, dynlib: xftLib, importc.} +proc XftDrawDisplay*(draw: PXftDraw): PDisplay {.cdecl, dynlib: xftLib, importc.} + +proc XftDrawDrawable*(draw: PXftDraw): Drawable {.cdecl, dynlib: xftLib, importc.} + +proc XftDrawColormap*(draw: PXftDraw): Colormap {.cdecl, dynlib: xftLib, importc.} + +proc XftDrawVisual*(draw: PXftDraw): PVisual {.cdecl, dynlib: xftLib, importc.} + +proc XftDrawDestroy*(draw: PXftDraw) {.cdecl, dynlib: xftLib, importc.} + +proc XftDrawPicture*(draw: PXftDraw): Picture {.cdecl, dynlib: xftLib, importc.} proc XftDrawSrcPicture*( - draw: PXftDraw, - color: PXftColor + draw: PXftDraw, color: PXftColor ): Picture {.cdecl, dynlib: xftLib, importc.} proc XftDrawGlyphs*( @@ -194,8 +169,8 @@ x: cint, y: cint, glyphs: PFt_UInt, - nglyphs: cint -) {.cdecl, dynlib: xftLib, importc.} + nglyphs: cint, +) {.cdecl, dynlib: xftLib, importc.} proc XftDrawString8*( draw: PXftDraw, @@ -204,7 +179,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawString16*( @@ -214,7 +189,7 @@ x: cint, y: cint, str: PFcChar16, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawString32*( @@ -224,7 +199,7 @@ x: cint, y: cint, str: PFcChar32, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawStringUtf8*( @@ -234,7 +209,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawStringUtf16*( @@ -244,64 +219,39 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawCharSpec*( - draw: PXftDraw, - color: PXftColor, - pub: PXftFont, - chars: PXftCharSpec, - len: cint + draw: PXftDraw, color: PXftColor, pub: PXftFont, chars: PXftCharSpec, len: cint ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawCharFontSpec*( - draw: PXftDraw, - color: PXftColor, - chars: PXftCharFontSpec, - len: cint + draw: PXftDraw, color: PXftColor, chars: PXftCharFontSpec, len: cint ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawGlyphSpec*( - draw: PXftDraw, - color: PXftColor, - pub: PXftFont, - glyphs: PXftGlyphSpec, - len: cint + draw: PXftDraw, color: PXftColor, pub: PXftFont, glyphs: PXftGlyphSpec, len: cint ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawGlyphFontSpec*( - draw: PXftDraw, - color: PXftColor, - glyphs: PXftGlyphFontSpec, - len: cint + draw: PXftDraw, color: PXftColor, glyphs: PXftGlyphFontSpec, len: cint ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawRect*( - draw: PXftDraw, - color: PXftColor, - x: cint, - y: cint, - width: cuint, - height: cuint + draw: PXftDraw, color: PXftColor, x: cint, y: cint, width: cuint, height: cuint ) {.cdecl, dynlib: xftLib, importc.} proc XftDrawSetClip*( - draw: PXftDraw, - r: Region + draw: PXftDraw, r: Region ): XBool {.cdecl, dynlib: xftLib, importc.} proc XftDrawSetClipRectangles*( - draw: PXftDraw, - xOrigin: cint, - yOrigin: cint, - rects: PXRectangle, - n: cint + draw: PXftDraw, xOrigin: cint, yOrigin: cint, rects: PXRectangle, n: cint ): XBool {.cdecl, dynlib: xftLib, importc.} proc XftDrawSetSubwindowMode*( - draw: PXftDraw, - mode: cint + draw: PXftDraw, mode: cint ) {.cdecl, dynlib: xftLib, importc.} # xftextent.c @@ -310,39 +260,23 @@ pub: PXftFont, glyphs: PFT_UInt, nglyphs: cint, - extends: PXGlyphInfo + extends: PXGlyphInfo, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextExtents8*( - display: PDisplay, - pub: PXftFont, - str: PFcChar8, - len: cint, - extents: PXGlyphInfo + display: PDisplay, pub: PXftFont, str: PFcChar8, len: cint, extents: PXGlyphInfo ) {.cdecl, dynlib: xftLib, importc.} proc XftTextExtents16*( - display: PDisplay, - pub: PXftFont, - str: PFcChar16, - len: cint, - extents: PXGlyphInfo + display: PDisplay, pub: PXftFont, str: PFcChar16, len: cint, extents: PXGlyphInfo ) {.cdecl, dynlib: xftLib, importc.} proc XftTextExtents32*( - display: PDisplay, - pub: PXftFont, - str: PFcChar32, - len: cint, - extents: PXGlyphInfo + display: PDisplay, pub: PXftFont, str: PFcChar32, len: cint, extents: PXGlyphInfo ) {.cdecl, dynlib: xftLib, importc.} proc XftTextExtentsUtf8*( - display: PDisplay, - pub: PXftFont, - str: PFcChar8, - len: cint, - extents: PXGlyphInfo + display: PDisplay, pub: PXftFont, str: PFcChar8, len: cint, extents: PXGlyphInfo ) {.cdecl, dynlib: xftLib, importc.} proc XftTextExtentsUtf16*( @@ -351,100 +285,69 @@ str: PFcChar8, endian: FcEndian, len: cint, - extents: PXGlyphInfo + extents: PXGlyphInfo, ) {.cdecl, dynlib: xftLib, importc.} # xftfont.c proc XftFontMatch*( - display: PDisplay, - screen: cint, - pattern: PFcPattern, - result: PFcResult + display: PDisplay, screen: cint, pattern: PFcPattern, result: PFcResult ): PFcPattern {.cdecl, dynlib: xftLib, importc.} # Expects display to be nil as an argument proc XftFontOpen*( - display: PDisplay, - screen: cint + display: PDisplay, screen: cint ): PXftFont {.cdecl, dynlib: xftLib, importc, varargs.} proc XftFontOpenName*( - display: PDisplay, - screen: cint, - name: cstring + display: PDisplay, screen: cint, name: cstring ): PXftFont {.cdecl, dynlib: xftLib, importc.} proc XftFontOpenXlfd*( - display: PDisplay, - screen: cint, - xlfd: cstring + display: PDisplay, screen: cint, xlfd: cstring ): PXftFont {.cdecl, dynlib: xftLib, importc.} # xftfreetype.c -proc XftLockFace*( - pub: PXftFont -): FT_Face {.cdecl, dynlib: xftLib, importc.} +proc XftLockFace*(pub: PXftFont): FT_Face {.cdecl, dynlib: xftLib, importc.} -proc XftUnlockFace*( - pub: PXftFont -) {.cdecl, dynlib: xftLib, importc.} +proc XftUnlockFace*(pub: PXftFont) {.cdecl, dynlib: xftLib, importc.} proc XftFontInfoCreate*( - display: PDisplay, - pattern: PFcPattern + display: PDisplay, pattern: PFcPattern ): PXftFontInfo {.cdecl, dynlib: xftLib, importc.} proc XftFontInfoDestroy*( - display: PDisplay, - fi: PXftFontInfo + display: PDisplay, fi: PXftFontInfo ) {.cdecl, dynlib: xftLib, importc.} -proc XftFontInfoHash*( - fi: PXftFontInfo -): PFcChar32 {.cdecl, dynlib: xftLib, importc.} +proc XftFontInfoHash*(fi: PXftFontInfo): PFcChar32 {.cdecl, dynlib: xftLib, importc.} proc XftFontInfoEqual*( - a: PXftFontInfo, - b: PXftFontInfo + a: PXftFontInfo, b: PXftFontInfo ): FcBool {.cdecl, dynlib: xftLib, importc.} proc XftFontOpenInfo*( - display: PDisplay, - pattern: PFcPattern, - fi: PXftFontInfo + display: PDisplay, pattern: PFcPattern, fi: PXftFontInfo ): PXftFont {.cdecl, dynlib: xftLib, importc.} proc XftFontOpenPattern*( - display: PDisplay, - pattern: PFcPattern + display: PDisplay, pattern: PFcPattern ): PXftFont {.cdecl, dynlib: xftLib, importc.} proc XftFontCopy*( - display: PDisplay, - pub: PXftFont + display: PDisplay, pub: PXftFont ): PXftFont {.cdecl, dynlib: xftLib, importc.} -proc XftFontClose*( - display: PDisplay, - pub: PXftFont -) {.cdecl, dynlib: xftLib, importc.} +proc XftFontClose*(display: PDisplay, pub: PXftFont) {.cdecl, dynlib: xftLib, importc.} proc XftInitFtLibrary*(): FcBool {.cdecl, dynlib: xftLib, importc.} # xftglyphs.c proc XftFontLoadGlyphs*( - display: PDisplay, - pub: PXftFont, - need_bitmaps: FcBool, - glyphs: PFT_UInt, - nglyph: cint + display: PDisplay, pub: PXftFont, need_bitmaps: FcBool, glyphs: PFT_UInt, nglyph: cint ) {.cdecl, dynlib: xftLib, importc.} proc XftFontUnloadGlyphs*( - display: PDisplay, - pub: PXftFont, - glyphs: PFT_UInt, - nglyph: cint + display: PDisplay, pub: PXftFont, glyphs: PFT_UInt, nglyph: cint ) {.cdecl, dynlib: xftLib, importc.} const XFT_NMISSING* = 256 @@ -455,42 +358,34 @@ need_bitmaps: FcBool, glyph: FT_UInt, missing: PFT_UInt, - nmissing: cint + nmissing: cint, ): FcBool {.cdecl, dynlib: xftLib, importc.} proc XftCharExists*( - display: PDisplay, - pub: PXftFont, - ucs4: FcChar32 + display: PDisplay, pub: PXftFont, ucs4: FcChar32 ): FcBool {.cdecl, dynlib: xftLib, importc.} proc XftCharIndex*( - display: PDisplay, - pub: PXftFont, - ucs4: FcChar32 + display: PDisplay, pub: PXftFont, ucs4: FcChar32 ): FT_UInt {.cdecl, dynlib: xftLib, importc.} # xftinit.c -proc XftInit*( - config: cstring -): FcBool {.cdecl, dynlib: xftLib, importc.} +proc XftInit*(config: cstring): FcBool {.cdecl, dynlib: xftLib, importc.} proc XftGetVersion*(): cint {.cdecl, dynlib: xftLib, importc.} # xftlist.c # Expects display to be nil as an argument proc XftListFonts*( - display: PDisplay, - screen: cint + display: PDisplay, screen: cint ): PFcFontSet {.cdecl, dynlib: xftLib, importc, varargs.} # xftname.c -proc XftNameParse*( - name: cstring -): PFcPattern {.cdecl, dynlib: xftLib, importc.} +proc XftNameParse*(name: cstring): PFcPattern {.cdecl, dynlib: xftLib, importc.} # xftrender.c -proc XftGlyphRender*(display: PDisplay, +proc XftGlyphRender*( + display: PDisplay, op: cint, src: Picture, pub: PXftFont, @@ -500,10 +395,11 @@ x: cint, y: cint, glyphs: PFT_UInt, - nglyphs: cint + nglyphs: cint, ) {.cdecl, dynlib: xftLib, importc.} -proc XftGlyphSpecRender*(display: PDisplay, +proc XftGlyphSpecRender*( + display: PDisplay, op: cint, src: Picture, pub: PXftFont, @@ -511,10 +407,11 @@ srcx: cint, srcy: cint, glyphs: PXftGlyphSpec, - nglyphs: cint + nglyphs: cint, ) {.cdecl, dynlib: xftLib, importc.} -proc XftCharSpecRender*(display: PDisplay, +proc XftCharSpecRender*( + display: PDisplay, op: cint, src: Picture, pub: PXftFont, @@ -522,30 +419,33 @@ srcx: cint, srcy: cint, chars: PXftCharSpec, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} -proc XftGlyphFontSpecRender*(display: PDisplay, +proc XftGlyphFontSpecRender*( + display: PDisplay, op: cint, src: Picture, dst: Picture, srcx: cint, srcy: cint, glyphs: PXftGlyphFontSpec, - nglyphs: cint + nglyphs: cint, ) {.cdecl, dynlib: xftLib, importc.} -proc XftCharFontSpecRender*(display: PDisplay, +proc XftCharFontSpecRender*( + display: PDisplay, op: cint, src: Picture, dst: Picture, srcx: cint, srcy: cint, chars: PXftCharFontSpec, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} -proc XftTextRender8*(display: PDisplay, +proc XftTextRender8*( + display: PDisplay, op: cint, src: Picture, pub: PXftFont, @@ -555,7 +455,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRender16*( @@ -569,7 +469,7 @@ x: cint, y: cint, str: PFcChar16, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRender16BE*( @@ -583,7 +483,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRender16LE*( @@ -597,7 +497,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRender32*( @@ -611,7 +511,7 @@ x: cint, y: cint, str: PFcChar32, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRender32BE*( @@ -625,7 +525,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRender32LE*( @@ -639,7 +539,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRenderUtf8*( @@ -653,7 +553,7 @@ x: cint, y: cint, str: PFcChar8, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} proc XftTextRenderUtf16*( @@ -668,13 +568,10 @@ y: cint, str: PFcChar8, endian: FcEndian, - len: cint + len: cint, ) {.cdecl, dynlib: xftLib, importc.} # xftxlfd.c proc XftXlfdParse8*( - xlfd_orig: cstring, - ignore_scalable: XBool, - complete: XBool + xlfd_orig: cstring, ignore_scalable: XBool, complete: XBool ): PFcPattern {.cdecl, dynlib: xftLib, importc.} - diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xi.nim --- a/semicongine/thirdparty/x11/xi.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xi.nim Thu Aug 22 18:32:21 2024 +0700 @@ -59,8 +59,7 @@ # 2004/10/03 - Conversion from C header to Pascal unit. # -const - libXi* = "libXi.so(|.6)" +const libXi* = "libXi.so(|.6)" const sz_xGetExtensionVersionReq* = 8 @@ -121,8 +120,7 @@ sz_xChangeDeviceControlReq* = 8 sz_xChangeDeviceControlReply* = 32 -const - INAME* = "XInputExtension" +const INAME* = "XInputExtension" const XI_KEYBOARD* = "KEYBOARD" @@ -171,11 +169,9 @@ XI_Add_XChangeDeviceControl_Major* = 1 XI_Add_XChangeDeviceControl_Minor* = 3 -const - DEVICE_RESOLUTION* = 1 +const DEVICE_RESOLUTION* = 1 -const - NoSuchExtension* = 1 +const NoSuchExtension* = 1 const COUNT* = 0 @@ -189,8 +185,7 @@ XPOINTER* = 0 XKEYBOARD* = 1 -const - UseXKeyboard* = 0x000000FF +const UseXKeyboard* = 0x000000FF const IsXPointer* = 0 @@ -224,16 +219,14 @@ DvKey* = int(1) shl 6 DvAutoRepeatMode* = 1 shl 7 -const - DvString* = int(1) shl 0 +const DvString* = int(1) shl 0 -const - DvInteger* = int(1) shl 0 +const DvInteger* = int(1) shl 0 const DeviceMode* = int(1) shl 0 Relative* = 0 - Absolute* = 1 # Merged from Metrolink tree for XINPUT stuff + Absolute* = 1 # Merged from Metrolink tree for XINPUT stuff TS_Raw* = 57 TS_Scaled* = 58 SendCoreEvents* = 59 @@ -282,17 +275,16 @@ XI_BadEvent* = 1 XI_BadMode* = 2 XI_DeviceBusy* = 3 - XI_BadClass* = 4 # Make XEventClass be a CARD32 for 64 bit servers. Don't affect client - # definition of XEventClass since that would be a library interface change. - # See the top of X.h for more _XSERVER64 magic. - # + XI_BadClass* = 4 + # Make XEventClass be a CARD32 for 64 bit servers. Don't affect client + # definition of XEventClass since that would be a library interface change. + # See the top of X.h for more _XSERVER64 magic. + # when defined(XSERVER64): - type - XEventClass* = CARD32 + type XEventClass* = CARD32 else: - type - XEventClass* = int32 + type XEventClass* = int32 #****************************************************************** # * # * Extension version structure. @@ -301,7 +293,7 @@ type PXExtensionVersion* = ptr XExtensionVersion - XExtensionVersion*{.final.} = object + XExtensionVersion* {.final.} = object present*: int16 major_version*: int16 minor_version*: int16 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xi2.nim --- a/semicongine/thirdparty/x11/xi2.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xi2.nim Thu Aug 22 18:32:21 2024 +0700 @@ -5,8 +5,7 @@ from xi import libXi export libXi -const - XInput_2_0* = 7 +const XInput_2_0* = 7 ## DO NOT ADD TO THIS LIST. These are libXi-specific defines. ## See commit libXi-1.4.2-21-ge8531dd @@ -31,8 +30,7 @@ ## Special property type used for XIGetProperty -const - XIAnyPropertyType* = 0 +const XIAnyPropertyType* = 0 ## Enter/Leave and Focus In/Out modes @@ -174,13 +172,11 @@ ## Device event flags (common) ## Device event flags (key events only) -const - XIKeyRepeat* = (1 shl 16) +const XIKeyRepeat* = (1 shl 16) ## Device event flags (pointer events only) -const - XIPointerEmulated* = (1 shl 16) +const XIPointerEmulated* = (1 shl 16) ## Device event flags (touch events only) @@ -204,12 +200,16 @@ type XIMask = ptr UncheckedArray[uint8] template XISetMask*(mask: pointer, event: untyped): untyped = - ((cast[XIMask]((mask)))[(event) shr 3] = (cast[XIMask]((mask)))[ - (event) shr 3] or (1 shl ((event) and 7))) + ( + (cast[XIMask]((mask)))[(event) shr 3] = + (cast[XIMask]((mask)))[(event) shr 3] or (1 shl ((event) and 7)) + ) template XIClearMask*(mask: pointer, event: untyped): untyped = - ((cast[XIMask]((mask)))[(event) shr 3] = (cast[XIMask]((mask)))[ - (event) shr 3] and not (1 shl ((event) and 7))) + ( + (cast[XIMask]((mask)))[(event) shr 3] = + (cast[XIMask]((mask)))[(event) shr 3] and not (1 shl ((event) and 7)) + ) template XIMaskIsSet*(mask: pointer, event: untyped): untyped = ((cast[XIMask]((mask)))[(event) shr 3].int and (1 shl ((event) and 7))) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xinerama.nim --- a/semicongine/thirdparty/x11/xinerama.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xinerama.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,24 +1,26 @@ # Converted from X11/Xinerama.h -import - xlib +import xlib -const - xineramaLib = "libXinerama.so" +const xineramaLib = "libXinerama.so" type PXineramaScreenInfo* = ptr XineramaScreenInfo - XineramaScreenInfo*{.final.} = object + XineramaScreenInfo* {.final.} = object screen_number*: cint x_org*: int16 y_org*: int16 width*: int16 height*: int16 -proc XineramaQueryExtension*(dpy: PDisplay, event_base: Pcint, error_base: Pcint): XBool{. - cdecl, dynlib: xineramaLib, importc.} -proc XineramaQueryVersion*(dpy: PDisplay, major: Pcint, minor: Pcint): Status{. - cdecl, dynlib: xineramaLib, importc.} -proc XineramaIsActive*(dpy: PDisplay): XBool{.cdecl, dynlib: xineramaLib, importc.} -proc XineramaQueryScreens*(dpy: PDisplay, number: Pcint): PXineramaScreenInfo{. - cdecl, dynlib: xineramaLib, importc.} +proc XineramaQueryExtension*( + dpy: PDisplay, event_base: Pcint, error_base: Pcint +): XBool {.cdecl, dynlib: xineramaLib, importc.} +proc XineramaQueryVersion*( + dpy: PDisplay, major: Pcint, minor: Pcint +): Status {.cdecl, dynlib: xineramaLib, importc.} + +proc XineramaIsActive*(dpy: PDisplay): XBool {.cdecl, dynlib: xineramaLib, importc.} +proc XineramaQueryScreens*( + dpy: PDisplay, number: Pcint +): PXineramaScreenInfo {.cdecl, dynlib: xineramaLib, importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xinput.nim --- a/semicongine/thirdparty/x11/xinput.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xinput.nim Thu Aug 22 18:32:21 2024 +0700 @@ -223,11 +223,12 @@ window*: Window ## "event" window reported relative to deviceid*: XID mode*: cint ## NotifyNormal, NotifyGrab, NotifyUngrab - detail*: cint ## - ## NotifyAncestor, NotifyVirtual, NotifyInferior, - ## NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer, - ## NotifyPointerRoot, NotifyDetailNone - ## + detail*: cint + ## + ## NotifyAncestor, NotifyVirtual, NotifyInferior, + ## NotifyNonLinear,NotifyNonLinearVirtual, NotifyPointer, + ## NotifyPointerRoot, NotifyDetailNone + ## time*: Time PXDeviceFocusInEvent* = PXDeviceFocusChangeEvent @@ -318,8 +319,9 @@ window*: Window ## unused deviceid*: XID time*: Time - request*: cint ## one of MappingModifier, MappingKeyboard, - ## MappingPointer + request*: cint + ## one of MappingModifier, MappingKeyboard, + ## MappingPointer first_keycode*: cint ## first keycode count*: cint ## defines range of change w. first_keycode @@ -360,14 +362,14 @@ PXDevicePropertyNotifyEvent* = ptr XDevicePropertyNotifyEvent XDevicePropertyNotifyEvent* {.final.} = object `type`*: cint - serial*: culong ## # of last request processed by server + serial*: culong ## # of last request processed by server send_event*: XBool ## true if this came from a SendEvent request display*: PDisplay ## Display the event was read from - window*: Window ## unused + window*: Window ## unused time*: Time - deviceid*: XID ## id of the device that changed - atom*: Atom ## the property that changed - state*: cint ## PropertyNewValue or PropertyDeleted + deviceid*: XID ## id of the device that changed + atom*: Atom ## the property that changed + state*: cint ## PropertyNewValue or PropertyDeleted PXFeedbackState* = ptr XFeedbackState XFeedbackState* {.final.} = object @@ -659,41 +661,83 @@ num_buttons*: cshort buttons*: array[32, char] - {.push cdecl, importc, dynlib: libXi.} proc XChangeKeyboardDevice*(a1: PDisplay, a2: PXDevice): cint proc XChangePointerDevice*(a1: PDisplay, a2: PXDevice, a3, a4: cint): cint -proc XGrabDevice*(a1: PDisplay, a2: PXDevice, a3: Window, a4: XBool, a5: cint, - a6: ptr UncheckedArray[XEventClass], a7, a8: cint, a9: Time): cint +proc XGrabDevice*( + a1: PDisplay, + a2: PXDevice, + a3: Window, + a4: XBool, + a5: cint, + a6: ptr UncheckedArray[XEventClass], + a7, a8: cint, + a9: Time, +): cint + proc XUngrabDevice*(a1: PDisplay, a2: PXDevice, a3: Time): cint -proc XGrabDeviceKey*(a1: PDisplay, a2: PXDevice, a3, a4: cuint, - a5: PXDevice, a6: Window, a7: XBool, a8: cuint, - a9: ptr UncheckedArray[XEventClass], a10, a11: cint): cint -proc XUngrabDeviceKey*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint, - a5: PXDevice, a6: Window): cint -proc XGrabDeviceButton*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint, - a5: PXDevice, a6: Window, a7: XBool, a8: cuint, - a9: ptr UncheckedArray[XEventClass], a10: cint, a11: cint): cint -proc XUngrabDeviceButton*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint, - a5: PXDevice, a6: Window): cint +proc XGrabDeviceKey*( + a1: PDisplay, + a2: PXDevice, + a3, a4: cuint, + a5: PXDevice, + a6: Window, + a7: XBool, + a8: cuint, + a9: ptr UncheckedArray[XEventClass], + a10, a11: cint, +): cint + +proc XUngrabDeviceKey*( + a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint, a5: PXDevice, a6: Window +): cint + +proc XGrabDeviceButton*( + a1: PDisplay, + a2: PXDevice, + a3: cuint, + a4: cuint, + a5: PXDevice, + a6: Window, + a7: XBool, + a8: cuint, + a9: ptr UncheckedArray[XEventClass], + a10: cint, + a11: cint, +): cint + +proc XUngrabDeviceButton*( + a1: PDisplay, a2: PXDevice, a3: cuint, a4: cuint, a5: PXDevice, a6: Window +): cint + proc XAllowDeviceEvents*(a1: PDisplay, a2: PXDevice, a3: cint, a4: Time): cint -proc XGetDeviceFocus*(a1: PDisplay, a2: PXDevice, a3: PWindow, a4: ptr cint, - a5: ptr Time): cint +proc XGetDeviceFocus*( + a1: PDisplay, a2: PXDevice, a3: PWindow, a4: ptr cint, a5: ptr Time +): cint + proc XSetDeviceFocus*(a1: PDisplay, a2: PXDevice, a3: Window, a4: cint, a5: Time): cint proc XGetFeedbackControl*(a1: PDisplay, a2: PXDevice, a3: ptr cint): PXFeedbackState proc XFreeFeedbackList*(a1: PXFeedbackState) -proc XChangeFeedbackControl*(a1: PDisplay, a2: PXDevice, a3: culong, - a4: PXFeedbackControl): cint +proc XChangeFeedbackControl*( + a1: PDisplay, a2: PXDevice, a3: culong, a4: PXFeedbackControl +): cint + proc XDeviceBell*(a1: PDisplay, a2: PXDevice, a3, a4: XID, a5: cint): cint -proc XGetDeviceKeyMapping*(a1: PDisplay, a2: PXDevice, +proc XGetDeviceKeyMapping*( + a1: PDisplay, + a2: PXDevice, a3: (when xNeedWidePrototypes: cuint else: KeyCode), - a4: cint, a5: ptr cint): PKeySym -proc XChangeDeviceKeyMapping*(a1: PDisplay, a2: PXDevice, a3: cint, a4: cint, - a5: PKeySym, a6: cint): cint + a4: cint, + a5: ptr cint, +): PKeySym + +proc XChangeDeviceKeyMapping*( + a1: PDisplay, a2: PXDevice, a3: cint, a4: cint, a5: PKeySym, a6: cint +): cint + proc XGetDeviceModifierMapping*(a1: PDisplay, a2: PXDevice): PXModifierKeymap -proc XSetDeviceModifierMapping*(a1: PDisplay, a2: PXDevice, - a3: PXModifierKeymap): cint +proc XSetDeviceModifierMapping*(a1: PDisplay, a2: PXDevice, a3: PXModifierKeymap): cint proc XSetDeviceButtonMapping*(a1: PDisplay, a2: PXDevice, a3: cstring, a4: cint): cint proc XGetDeviceButtonMapping*(a1: PDisplay, a2: PXDevice, a3: cstring, a4: cuint): cint proc XQueryDeviceState*(a1: PDisplay, a2: PXDevice): PXDeviceState @@ -704,29 +748,77 @@ proc XOpenDevice*(a1: PDisplay, a2: XID): PXDevice proc XCloseDevice*(a1: PDisplay, a2: PXDevice): cint proc XSetDeviceMode*(a1: PDisplay, a2: PXDevice, a3: cint): cint -proc XSetDeviceValuators*(a1: PDisplay, a2: PXDevice, a3: ptr cint, a4: cint, a5: cint): cint +proc XSetDeviceValuators*( + a1: PDisplay, a2: PXDevice, a3: ptr cint, a4: cint, a5: cint +): cint + proc XGetDeviceControl*(a1: PDisplay, a2: PXDevice, a3: cint): PXDeviceControl -proc XChangeDeviceControl*(a1: PDisplay, a2: PXDevice, a3: cint, - a4: PXDeviceControl): cint -proc XSelectExtensionEvent*(a1: PDisplay, a2: Window, a3: ptr UncheckedArray[XEventClass], a4: cint): cint -proc XGetSelectedExtensionEvents*(a1: PDisplay, a2: Window, a3: ptr cint, - a4: ptr ptr UncheckedArray[XEventClass], a5: ptr cint, - a6: ptr ptr UncheckedArray[XEventClass]): cint -proc XChangeDeviceDontPropagateList*(a1: PDisplay, a2: Window, a3: cint, - a4: ptr UncheckedArray[XEventClass], a5: cint): cint -proc XGetDeviceDontPropagateList*(a1: PDisplay, a2: Window, a3: ptr cint): ptr UncheckedArray[XEventClass] -proc XSendExtensionEvent*(a1: PDisplay, a2: PXDevice, a3: Window, a4: XBool, a5: cint, - a6: ptr UncheckedArray[XEventClass], a7: PXEvent): Status -proc XGetDeviceMotionEvents*(a1: PDisplay, a2: PXDevice, a3, a4: Time, - a5, a6, a7: ptr cint): PXDeviceTimeCoord +proc XChangeDeviceControl*( + a1: PDisplay, a2: PXDevice, a3: cint, a4: PXDeviceControl +): cint + +proc XSelectExtensionEvent*( + a1: PDisplay, a2: Window, a3: ptr UncheckedArray[XEventClass], a4: cint +): cint + +proc XGetSelectedExtensionEvents*( + a1: PDisplay, + a2: Window, + a3: ptr cint, + a4: ptr ptr UncheckedArray[XEventClass], + a5: ptr cint, + a6: ptr ptr UncheckedArray[XEventClass], +): cint + +proc XChangeDeviceDontPropagateList*( + a1: PDisplay, a2: Window, a3: cint, a4: ptr UncheckedArray[XEventClass], a5: cint +): cint + +proc XGetDeviceDontPropagateList*( + a1: PDisplay, a2: Window, a3: ptr cint +): ptr UncheckedArray[XEventClass] + +proc XSendExtensionEvent*( + a1: PDisplay, + a2: PXDevice, + a3: Window, + a4: XBool, + a5: cint, + a6: ptr UncheckedArray[XEventClass], + a7: PXEvent, +): Status + +proc XGetDeviceMotionEvents*( + a1: PDisplay, a2: PXDevice, a3, a4: Time, a5, a6, a7: ptr cint +): PXDeviceTimeCoord + proc XFreeDeviceMotionEvents*(a1: PXDeviceTimeCoord) proc XFreeDeviceControl*(a1: PXDeviceControl) proc XListDeviceProperties*(a1: PDisplay, a2: PXDevice, a3: ptr cint): PAtom -proc XChangeDeviceProperty*(a1: PDisplay, a2: PXDevice, a3: Atom, a4: Atom, a5: cint, - a6: cint, a7: cstring, a8: cint) +proc XChangeDeviceProperty*( + a1: PDisplay, + a2: PXDevice, + a3: Atom, + a4: Atom, + a5: cint, + a6: cint, + a7: cstring, + a8: cint, +) + proc XDeleteDeviceProperty*(a1: PDisplay, a2: PXDevice, a3: Atom) -proc XGetDeviceProperty*(a1: PDisplay, a2: PXDevice, a3: Atom, a4, a5: clong, - a6: XBool, a7: Atom, a8: PAtom, a9: ptr cint, a10: ptr culong, - a11: ptr culong, a12: ptr cstring): Status +proc XGetDeviceProperty*( + a1: PDisplay, + a2: PXDevice, + a3: Atom, + a4, a5: clong, + a6: XBool, + a7: Atom, + a8: PAtom, + a9: ptr cint, + a10: ptr culong, + a11: ptr culong, + a12: ptr cstring, +): Status {.pop.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xinput2.nim --- a/semicongine/thirdparty/x11/xinput2.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xinput2.nim Thu Aug 22 18:32:21 2024 +0700 @@ -18,7 +18,7 @@ XIRemoveMasterInfo* {.final.} = object `type`*: cint deviceid*: cint - return_mode*: cint ## AttachToMaster, Floating + return_mode*: cint ## AttachToMaster, Floating return_pointer*: cint return_keyboard*: cint @@ -35,7 +35,7 @@ PXIAnyHierarchyChangeInfo* = ptr XIAnyHierarchyChangeInfo XIAnyHierarchyChangeInfo* {.final, union.} = object - `type`*: cint ## must be first element + `type`*: cint ## must be first element add*: XIAddMasterInfo remove*: XIRemoveMasterInfo attach*: XIAttachSlaveInfo @@ -100,7 +100,6 @@ resolution*: cint mode*: cint - ## new in XI 2.1 type @@ -150,11 +149,11 @@ type PXIEvent* = ptr XIEvent XIEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset evtype*: cint time*: Time @@ -174,12 +173,12 @@ type PXIHierarchyEvent* = ptr XIHierarchyEvent XIHierarchyEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset - evtype*: cint ## XI_HierarchyChanged + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset + evtype*: cint ## XI_HierarchyChanged time*: Time flags*: cint num_info*: cint @@ -193,26 +192,26 @@ type PXIDeviceChangedEvent* = ptr XIDeviceChangedEvent XIDeviceChangedEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset - evtype*: cint ## XI_DeviceChanged + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset + evtype*: cint ## XI_DeviceChanged time*: Time - deviceid*: cint ## id of the device that changed - sourceid*: cint ## Source for the new classes. - reason*: cint ## Reason for the change + deviceid*: cint ## id of the device that changed + sourceid*: cint ## Source for the new classes. + reason*: cint ## Reason for the change num_classes*: cint classes*: ptr ptr XIAnyClassInfo ## same as in XIDeviceInfo PXIDeviceEvent* = ptr XIDeviceEvent XIDeviceEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset evtype*: cint time*: Time deviceid*: cint @@ -233,15 +232,16 @@ PXIRawEvent* = ptr XIRawEvent XIRawEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset - evtype*: cint ## XI_RawKeyPress, XI_RawKeyRelease, etc. + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset + evtype*: cint ## XI_RawKeyPress, XI_RawKeyRelease, etc. time*: Time deviceid*: cint - sourceid*: cint ## Bug: Always 0. https://bugs.freedesktop.org//show_bug.cgi?id=34240 + sourceid*: cint + ## Bug: Always 0. https://bugs.freedesktop.org//show_bug.cgi?id=34240 detail*: cint flags*: cint valuators*: XIValuatorState @@ -249,11 +249,11 @@ PXIEnterEvent* = ptr XIEnterEvent XIEnterEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset evtype*: cint time*: Time deviceid*: cint @@ -283,24 +283,24 @@ PXIPropertyEvent* = ptr XIPropertyEvent XIPropertyEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset - evtype*: cint ## XI_PropertyEvent + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset + evtype*: cint ## XI_PropertyEvent time*: Time - deviceid*: cint ## id of the device that changed + deviceid*: cint ## id of the device that changed property*: Atom what*: cint PXITouchOwnershipEvent* = ptr XITouchOwnershipEvent XITouchOwnershipEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset evtype*: cint time*: Time deviceid*: cint @@ -313,11 +313,11 @@ PXIBarrierEvent* = ptr XIBarrierEvent XIBarrierEvent* {.final.} = object - `type`*: cint ## GenericEvent - serial*: culong ## # of last request processed by server - send_event*: XBool ## true if this came from a SendEvent request - display*: PDisplay ## Display the event was read from - extension*: cint ## XI extension offset + `type`*: cint ## GenericEvent + serial*: culong ## # of last request processed by server + send_event*: XBool ## true if this came from a SendEvent request + display*: PDisplay ## Display the event was read from + extension*: cint ## XI extension offset evtype*: cint time*: Time deviceid*: cint @@ -336,86 +336,234 @@ ## ## XI2 Procs, uses same shared object as XI ## - + {.push cdecl, importc, dynlib: libXi.} -proc XIQueryPointer*(display: PDisplay; deviceid: cint; win: Window; - root: PWindow; child: PWindow; root_x: ptr cdouble; - root_y: ptr cdouble; win_x: ptr cdouble; win_y: ptr cdouble; - buttons: PXIButtonState; mods: PXIModifierState; - group: PXIGroupState): XBool -proc XIWarpPointer*(display: PDisplay; deviceid: cint; src_win: Window; - dst_win: Window; src_x: cdouble; src_y: cdouble; src_width: cuint; - src_height: cuint; dst_x: cdouble; dst_y: cdouble): XBool -proc XIDefineCursor*(display: PDisplay; deviceid: cint; win: Window; cursor: Cursor): Status -proc XIUndefineCursor*(display: PDisplay; deviceid: cint; win: Window): Status -proc XIChangeHierarchy*(display: PDisplay; changes: PXIAnyHierarchyChangeInfo; - num_changes: cint): Status -proc XISetClientPointer*(dpy: PDisplay; win: Window; deviceid: cint): Status -proc XIGetClientPointer*(dpy: PDisplay; win: Window; deviceid: ptr cint): XBool -proc XISelectEvents*(dpy: PDisplay; win: Window; masks: PXIEventMask; - num_masks: cint): cint -proc XIGetSelectedEvents*(dpy: PDisplay; win: Window; num_masks_return: ptr cint): PXIEventMask -proc XIQueryVersion*(dpy: PDisplay; major_version_inout: ptr cint; - minor_version_inout: ptr cint): Status -proc XIQueryDevice*(dpy: PDisplay; deviceid: cint; ndevices_return: ptr cint): PXIDeviceInfo -proc XISetFocus*(dpy: PDisplay; deviceid: cint; focus: Window; time: Time): Status -proc XIGetFocus*(dpy: PDisplay; deviceid: cint; focus_return: PWindow): Status -proc XIGrabDevice*(dpy: PDisplay; deviceid: cint; grab_window: Window; time: Time; - cursor: Cursor; grab_mode: cint; paired_device_mode: cint; - owner_events: XBool; mask: PXIEventMask): Status -proc XIUngrabDevice*(dpy: PDisplay; deviceid: cint; time: Time): Status -proc XIAllowEvents*(display: PDisplay; deviceid: cint; event_mode: cint; time: Time): Status -proc XIAllowTouchEvents*(display: PDisplay; deviceid: cint; touchid: cuint; - grab_window: Window; event_mode: cint): Status -proc XIGrabButton*(display: PDisplay; deviceid: cint; button: cint; - grab_window: Window; cursor: Cursor; grab_mode: cint; - paired_device_mode: cint; owner_events: cint; - mask: PXIEventMask; num_modifiers: cint; - modifiers_inout: PXIGrabModifiers): cint -proc XIGrabKeycode*(display: PDisplay; deviceid: cint; keycode: cint; - grab_window: Window; grab_mode: cint; paired_device_mode: cint; - owner_events: cint; mask: PXIEventMask; num_modifiers: cint; - modifiers_inout: PXIGrabModifiers): cint -proc XIGrabEnter*(display: PDisplay; deviceid: cint; grab_window: Window; - cursor: Cursor; grab_mode: cint; paired_device_mode: cint; - owner_events: cint; mask: PXIEventMask; num_modifiers: cint; - modifiers_inout: PXIGrabModifiers): cint -proc XIGrabFocusIn*(display: PDisplay; deviceid: cint; grab_window: Window; - grab_mode: cint; paired_device_mode: cint; owner_events: cint; - mask: PXIEventMask; num_modifiers: cint; - modifiers_inout: PXIGrabModifiers): cint -proc XIGrabTouchBegin*(display: PDisplay; deviceid: cint; grab_window: Window; - owner_events: cint; mask: PXIEventMask; num_modifiers: cint; - modifiers_inout: PXIGrabModifiers): cint -proc XIUngrabButton*(display: PDisplay; deviceid: cint; button: cint; - grab_window: Window; num_modifiers: cint; - modifiers: PXIGrabModifiers): Status -proc XIUngrabKeycode*(display: PDisplay; deviceid: cint; keycode: cint; - grab_window: Window; num_modifiers: cint; - modifiers: PXIGrabModifiers): Status -proc XIUngrabEnter*(display: PDisplay; deviceid: cint; grab_window: Window; - num_modifiers: cint; modifiers: PXIGrabModifiers): Status -proc XIUngrabFocusIn*(display: PDisplay; deviceid: cint; grab_window: Window; - num_modifiers: cint; modifiers: PXIGrabModifiers): Status -proc XIUngrabTouchBegin*(display: PDisplay; deviceid: cint; grab_window: Window; - num_modifiers: cint; modifiers: PXIGrabModifiers): Status -proc XIListProperties*(display: PDisplay; deviceid: cint; - num_props_return: ptr cint): PAtom -proc XIChangeProperty*(display: PDisplay; deviceid: cint; property: Atom; - `type`: Atom; format: cint; mode: cint; data: ptr cuchar; - num_items: cint) -proc XIDeleteProperty*(display: PDisplay; deviceid: cint; property: Atom) -proc XIGetProperty*(display: PDisplay; deviceid: cint; property: Atom; offset: clong; - length: clong; delete_property: XBool; `type`: Atom; - type_return: PAtom; format_return: ptr cint; - num_items_return: ptr culong; bytes_after_return: ptr culong; - data: ptr ptr cuchar): Status -proc XIBarrierReleasePointers*(display: PDisplay; - barriers: PXIBarrierReleasePointerInfo; - num_barriers: cint) -proc XIBarrierReleasePointer*(display: PDisplay; deviceid: cint; - barrier: PointerBarrier; eventid: BarrierEventID) +proc XIQueryPointer*( + display: PDisplay, + deviceid: cint, + win: Window, + root: PWindow, + child: PWindow, + root_x: ptr cdouble, + root_y: ptr cdouble, + win_x: ptr cdouble, + win_y: ptr cdouble, + buttons: PXIButtonState, + mods: PXIModifierState, + group: PXIGroupState, +): XBool + +proc XIWarpPointer*( + display: PDisplay, + deviceid: cint, + src_win: Window, + dst_win: Window, + src_x: cdouble, + src_y: cdouble, + src_width: cuint, + src_height: cuint, + dst_x: cdouble, + dst_y: cdouble, +): XBool + +proc XIDefineCursor*( + display: PDisplay, deviceid: cint, win: Window, cursor: Cursor +): Status + +proc XIUndefineCursor*(display: PDisplay, deviceid: cint, win: Window): Status +proc XIChangeHierarchy*( + display: PDisplay, changes: PXIAnyHierarchyChangeInfo, num_changes: cint +): Status + +proc XISetClientPointer*(dpy: PDisplay, win: Window, deviceid: cint): Status +proc XIGetClientPointer*(dpy: PDisplay, win: Window, deviceid: ptr cint): XBool +proc XISelectEvents*( + dpy: PDisplay, win: Window, masks: PXIEventMask, num_masks: cint +): cint + +proc XIGetSelectedEvents*( + dpy: PDisplay, win: Window, num_masks_return: ptr cint +): PXIEventMask + +proc XIQueryVersion*( + dpy: PDisplay, major_version_inout: ptr cint, minor_version_inout: ptr cint +): Status + +proc XIQueryDevice*( + dpy: PDisplay, deviceid: cint, ndevices_return: ptr cint +): PXIDeviceInfo + +proc XISetFocus*(dpy: PDisplay, deviceid: cint, focus: Window, time: Time): Status +proc XIGetFocus*(dpy: PDisplay, deviceid: cint, focus_return: PWindow): Status +proc XIGrabDevice*( + dpy: PDisplay, + deviceid: cint, + grab_window: Window, + time: Time, + cursor: Cursor, + grab_mode: cint, + paired_device_mode: cint, + owner_events: XBool, + mask: PXIEventMask, +): Status + +proc XIUngrabDevice*(dpy: PDisplay, deviceid: cint, time: Time): Status +proc XIAllowEvents*( + display: PDisplay, deviceid: cint, event_mode: cint, time: Time +): Status + +proc XIAllowTouchEvents*( + display: PDisplay, + deviceid: cint, + touchid: cuint, + grab_window: Window, + event_mode: cint, +): Status + +proc XIGrabButton*( + display: PDisplay, + deviceid: cint, + button: cint, + grab_window: Window, + cursor: Cursor, + grab_mode: cint, + paired_device_mode: cint, + owner_events: cint, + mask: PXIEventMask, + num_modifiers: cint, + modifiers_inout: PXIGrabModifiers, +): cint + +proc XIGrabKeycode*( + display: PDisplay, + deviceid: cint, + keycode: cint, + grab_window: Window, + grab_mode: cint, + paired_device_mode: cint, + owner_events: cint, + mask: PXIEventMask, + num_modifiers: cint, + modifiers_inout: PXIGrabModifiers, +): cint + +proc XIGrabEnter*( + display: PDisplay, + deviceid: cint, + grab_window: Window, + cursor: Cursor, + grab_mode: cint, + paired_device_mode: cint, + owner_events: cint, + mask: PXIEventMask, + num_modifiers: cint, + modifiers_inout: PXIGrabModifiers, +): cint + +proc XIGrabFocusIn*( + display: PDisplay, + deviceid: cint, + grab_window: Window, + grab_mode: cint, + paired_device_mode: cint, + owner_events: cint, + mask: PXIEventMask, + num_modifiers: cint, + modifiers_inout: PXIGrabModifiers, +): cint + +proc XIGrabTouchBegin*( + display: PDisplay, + deviceid: cint, + grab_window: Window, + owner_events: cint, + mask: PXIEventMask, + num_modifiers: cint, + modifiers_inout: PXIGrabModifiers, +): cint + +proc XIUngrabButton*( + display: PDisplay, + deviceid: cint, + button: cint, + grab_window: Window, + num_modifiers: cint, + modifiers: PXIGrabModifiers, +): Status + +proc XIUngrabKeycode*( + display: PDisplay, + deviceid: cint, + keycode: cint, + grab_window: Window, + num_modifiers: cint, + modifiers: PXIGrabModifiers, +): Status + +proc XIUngrabEnter*( + display: PDisplay, + deviceid: cint, + grab_window: Window, + num_modifiers: cint, + modifiers: PXIGrabModifiers, +): Status + +proc XIUngrabFocusIn*( + display: PDisplay, + deviceid: cint, + grab_window: Window, + num_modifiers: cint, + modifiers: PXIGrabModifiers, +): Status + +proc XIUngrabTouchBegin*( + display: PDisplay, + deviceid: cint, + grab_window: Window, + num_modifiers: cint, + modifiers: PXIGrabModifiers, +): Status + +proc XIListProperties*( + display: PDisplay, deviceid: cint, num_props_return: ptr cint +): PAtom + +proc XIChangeProperty*( + display: PDisplay, + deviceid: cint, + property: Atom, + `type`: Atom, + format: cint, + mode: cint, + data: ptr cuchar, + num_items: cint, +) + +proc XIDeleteProperty*(display: PDisplay, deviceid: cint, property: Atom) +proc XIGetProperty*( + display: PDisplay, + deviceid: cint, + property: Atom, + offset: clong, + length: clong, + delete_property: XBool, + `type`: Atom, + type_return: PAtom, + format_return: ptr cint, + num_items_return: ptr culong, + bytes_after_return: ptr culong, + data: ptr ptr cuchar, +): Status + +proc XIBarrierReleasePointers*( + display: PDisplay, barriers: PXIBarrierReleasePointerInfo, num_barriers: cint +) + +proc XIBarrierReleasePointer*( + display: PDisplay, deviceid: cint, barrier: PointerBarrier, eventid: BarrierEventID +) + proc XIFreeDeviceInfo*(info: PXIDeviceInfo) -{.pop.} \ No newline at end of file +{.pop.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xkb.nim --- a/semicongine/thirdparty/x11/xkb.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xkb.nim Thu Aug 22 18:32:21 2024 +0700 @@ -68,8 +68,7 @@ # 2004/09/15 - 16 - Convertion from the c header of XKB.h. # -import - x, xlib +import x, xlib include "x11pragma.nim" @@ -79,11 +78,12 @@ # # Common data structures and access macros # + type - PWord* = ptr array[0..64_000, int16] + PWord* = ptr array[0 .. 64_000, int16] PByte* = ptr byte PXkbStatePtr* = ptr XkbStateRec - XkbStateRec*{.final.} = object + XkbStateRec* {.final.} = object group*: int8 locked_group*: int8 base_group*: int16 @@ -99,8 +99,6 @@ compat_lookup_mods*: int8 ptr_buttons*: int16 - - proc XkbModLocks*(s: PXkbStatePtr): int8 proc XkbStateMods*(s: PXkbStatePtr): int16 proc XkbGroupLock*(s: PXkbStatePtr): int8 @@ -109,25 +107,21 @@ proc XkbGrabStateFromRec*(s: PXkbStatePtr): int type PXkbModsPtr* = ptr XkbModsRec - XkbModsRec*{.final.} = object + XkbModsRec* {.final.} = object mask*: int8 # effective mods real_mods*: int8 vmods*: int16 - - type PXkbKTMapEntryPtr* = ptr XkbKTMapEntryRec - XkbKTMapEntryRec*{.final.} = object + XkbKTMapEntryRec* {.final.} = object active*: bool level*: int8 mods*: XkbModsRec - - type PXkbKeyTypePtr* = ptr XkbKeyTypeRec - XkbKeyTypeRec*{.final.} = object + XkbKeyTypeRec* {.final.} = object mods*: XkbModsRec num_levels*: int8 map_count*: int8 @@ -136,8 +130,6 @@ name*: Atom level_names*: Atom - - proc XkbNumGroups*(g: int16): int16 proc XkbOutOfRangeGroupInfo*(g: int16): int16 proc XkbOutOfRangeGroupAction*(g: int16): int16 @@ -147,17 +139,16 @@ # # Structures and access macros used primarily by the server # + type PXkbBehavior* = ptr XkbBehavior - XkbBehavior*{.final.} = object + XkbBehavior* {.final.} = object theType*: int8 data*: int8 - - type PXkbModAction* = ptr XkbModAction - XkbModAction*{.final.} = object + XkbModAction* {.final.} = object theType*: int8 flags*: int8 mask*: int8 @@ -165,24 +156,20 @@ vmods1*: int8 vmods2*: int8 - - proc XkbModActionVMods*(a: PXkbModAction): int16 proc XkbSetModActionVMods*(a: PXkbModAction, v: int8) type PXkbGroupAction* = ptr XkbGroupAction - XkbGroupAction*{.final.} = object + XkbGroupAction* {.final.} = object theType*: int8 flags*: int8 group_XXX*: int8 - - proc XkbSAGroup*(a: PXkbGroupAction): int8 proc XkbSASetGroupProc*(a: PXkbGroupAction, g: int8) type PXkbISOAction* = ptr XkbISOAction - XkbISOAction*{.final.} = object + XkbISOAction* {.final.} = object theType*: int8 flags*: int8 mask*: int8 @@ -192,11 +179,9 @@ vmods1*: int8 vmods2*: int8 - - type PXkbPtrAction* = ptr XkbPtrAction - XkbPtrAction*{.final.} = object + XkbPtrAction* {.final.} = object theType*: int8 flags*: int8 high_XXX*: int8 @@ -204,48 +189,40 @@ high_YYY*: int8 low_YYY*: int8 - - proc XkbPtrActionX*(a: PXkbPtrAction): int16 proc XkbPtrActionY*(a: PXkbPtrAction): int16 proc XkbSetPtrActionX*(a: PXkbPtrAction, x: int8) proc XkbSetPtrActionY*(a: PXkbPtrAction, y: int8) type PXkbPtrBtnAction* = ptr XkbPtrBtnAction - XkbPtrBtnAction*{.final.} = object + XkbPtrBtnAction* {.final.} = object theType*: int8 flags*: int8 count*: int8 button*: int8 - - type PXkbPtrDfltAction* = ptr XkbPtrDfltAction - XkbPtrDfltAction*{.final.} = object + XkbPtrDfltAction* {.final.} = object theType*: int8 flags*: int8 affect*: int8 valueXXX*: int8 - - proc XkbSAPtrDfltValue*(a: PXkbPtrDfltAction): int8 proc XkbSASetPtrDfltValue*(a: PXkbPtrDfltAction, c: pointer) type PXkbSwitchScreenAction* = ptr XkbSwitchScreenAction - XkbSwitchScreenAction*{.final.} = object + XkbSwitchScreenAction* {.final.} = object theType*: int8 flags*: int8 screenXXX*: int8 - - proc XkbSAScreen*(a: PXkbSwitchScreenAction): int8 proc XkbSASetScreen*(a: PXkbSwitchScreenAction, s: pointer) type PXkbCtrlsAction* = ptr XkbCtrlsAction - XkbCtrlsAction*{.final.} = object + XkbCtrlsAction* {.final.} = object theType*: int8 flags*: int8 ctrls3*: int8 @@ -253,22 +230,18 @@ ctrls1*: int8 ctrls0*: int8 - - proc XkbActionSetCtrls*(a: PXkbCtrlsAction, c: int8) proc XkbActionCtrls*(a: PXkbCtrlsAction): int16 type PXkbMessageAction* = ptr XkbMessageAction - XkbMessageAction*{.final.} = object + XkbMessageAction* {.final.} = object theType*: int8 flags*: int8 - message*: array[0..5, char] - - + message*: array[0 .. 5, char] type PXkbRedirectKeyAction* = ptr XkbRedirectKeyAction - XkbRedirectKeyAction*{.final.} = object + XkbRedirectKeyAction* {.final.} = object theType*: int8 new_key*: int8 mods_mask*: int8 @@ -278,28 +251,25 @@ vmods0*: int8 vmods1*: int8 - - proc XkbSARedirectVMods*(a: PXkbRedirectKeyAction): int16 proc XkbSARedirectSetVMods*(a: PXkbRedirectKeyAction, m: int8) proc XkbSARedirectVModsMask*(a: PXkbRedirectKeyAction): int16 proc XkbSARedirectSetVModsMask*(a: PXkbRedirectKeyAction, m: int8) type PXkbDeviceBtnAction* = ptr XkbDeviceBtnAction - XkbDeviceBtnAction*{.final.} = object + XkbDeviceBtnAction* {.final.} = object theType*: int8 flags*: int8 count*: int8 button*: int8 device*: int8 - - type PXkbDeviceValuatorAction* = ptr XkbDeviceValuatorAction - XkbDeviceValuatorAction*{.final.} = object # - # Macros to classify key actions - # + XkbDeviceValuatorAction* {.final.} = object + # + # Macros to classify key actions + # theType*: int8 device*: int8 v1_what*: int8 @@ -309,29 +279,25 @@ v2_ndx*: int8 v2_value*: int8 - - -const - XkbAnyActionDataSize* = 7 +const XkbAnyActionDataSize* = 7 type PXkbAnyAction* = ptr XkbAnyAction - XkbAnyAction*{.final.} = object + XkbAnyAction* {.final.} = object theType*: int8 - data*: array[0..XkbAnyActionDataSize - 1, int8] - - + data*: array[0 .. XkbAnyActionDataSize - 1, int8] proc XkbIsModAction*(a: PXkbAnyAction): bool proc XkbIsGroupAction*(a: PXkbAnyAction): bool proc XkbIsPtrAction*(a: PXkbAnyAction): bool type PXkbAction* = ptr XkbAction - XkbAction*{.final.} = object # - # XKB request codes, used in: - # - xkbReqType field of all requests - # - requestMinor field of some events - # + XkbAction* {.final.} = object + # + # XKB request codes, used in: + # - xkbReqType field of all requests + # - requestMinor field of some events + # any*: XkbAnyAction mods*: XkbModAction group*: XkbGroupAction @@ -347,8 +313,6 @@ devval*: XkbDeviceValuatorAction theType*: int8 - - const X_kbUseExtension* = 0 X_kbSelectEvents* = 1 @@ -375,20 +339,22 @@ X_kbGetKbdByName* = 23 X_kbGetDeviceInfo* = 24 X_kbSetDeviceInfo* = 25 - X_kbSetDebuggingFlags* = 101 # - # In the X sense, XKB reports only one event. - # The type field of all XKB events is XkbEventCode - # + X_kbSetDebuggingFlags* = 101 + # + # In the X sense, XKB reports only one event. + # The type field of all XKB events is XkbEventCode + # const XkbEventCode* = 0 - XkbNumberEvents* = XkbEventCode + 1 # - # XKB has a minor event code so it can use one X event code for - # multiple purposes. - # - reported in the xkbType field of all XKB events. - # - XkbSelectEventDetails: Indicates the event for which event details - # are being changed - # + XkbNumberEvents* = XkbEventCode + 1 + # + # XKB has a minor event code so it can use one X event code for + # multiple purposes. + # - reported in the xkbType field of all XKB events. + # - XkbSelectEventDetails: Indicates the event for which event details + # are being changed + # const XkbNewKeyboardNotify* = 0 @@ -402,10 +368,11 @@ XkbBellNotify* = 8 XkbActionMessage* = 9 XkbAccessXNotify* = 10 - XkbExtensionDeviceNotify* = 11 # - # Event Mask: - # - XkbSelectEvents: Specifies event interest. - # + XkbExtensionDeviceNotify* = 11 + # + # Event Mask: + # - XkbSelectEvents: Specifies event interest. + # const XkbNewKeyboardNotifyMask* = int(1) shl 0 @@ -420,19 +387,21 @@ XkbActionMessageMask* = int(1) shl 9 XkbAccessXNotifyMask* = int(1) shl 10 XkbExtensionDeviceNotifyMask* = int(1) shl 11 - XkbAllEventsMask* = 0x00000FFF # - # NewKeyboardNotify event details: - # + XkbAllEventsMask* = 0x00000FFF + # + # NewKeyboardNotify event details: + # const XkbNKN_KeycodesMask* = int(1) shl 0 XkbNKN_GeometryMask* = int(1) shl 1 XkbNKN_DeviceIDMask* = int(1) shl 2 - XkbAllNewKeyboardEventsMask* = 0x00000007 # - # AccessXNotify event types: - # - The 'what' field of AccessXNotify events reports the - # reason that the event was generated. - # + XkbAllNewKeyboardEventsMask* = 0x00000007 + # + # AccessXNotify event types: + # - The 'what' field of AccessXNotify events reports the + # reason that the event was generated. + # const XkbAXN_SKPress* = 0 @@ -441,11 +410,12 @@ XkbAXN_SKRelease* = 3 XkbAXN_BKAccept* = 4 XkbAXN_BKReject* = 5 - XkbAXN_AXKWarning* = 6 # - # AccessXNotify details: - # - Used as an event detail mask to limit the conditions under which - # AccessXNotify events are reported - # + XkbAXN_AXKWarning* = 6 + # + # AccessXNotify details: + # - Used as an event detail mask to limit the conditions under which + # AccessXNotify events are reported + # const XkbAXN_SKPressMask* = int(1) shl 0 @@ -455,13 +425,14 @@ XkbAXN_BKAcceptMask* = int(1) shl 4 XkbAXN_BKRejectMask* = int(1) shl 5 XkbAXN_AXKWarningMask* = int(1) shl 6 - XkbAllAccessXEventsMask* = 0x0000000F # - # State detail mask: - # - The 'changed' field of StateNotify events reports which of - # the keyboard state components have changed. - # - Used as an event detail mask to limit the conditions under - # which StateNotify events are reported. - # + XkbAllAccessXEventsMask* = 0x0000000F + # + # State detail mask: + # - The 'changed' field of StateNotify events reports which of + # the keyboard state components have changed. + # - Used as an event detail mask to limit the conditions under + # which StateNotify events are reported. + # const XkbModifierStateMask* = int(1) shl 0 @@ -478,34 +449,35 @@ XkbLookupModsMask* = int(1) shl 11 XkbCompatLookupModsMask* = int(1) shl 12 XkbPointerButtonMask* = int(1) shl 13 - XkbAllStateComponentsMask* = 0x00003FFF # - # Controls detail masks: - # The controls specified in XkbAllControlsMask: - # - The 'changed' field of ControlsNotify events reports which of - # the keyboard controls have changed. - # - The 'changeControls' field of the SetControls request specifies - # the controls for which values are to be changed. - # - Used as an event detail mask to limit the conditions under - # which ControlsNotify events are reported. - # - # The controls specified in the XkbAllBooleanCtrlsMask: - # - The 'enabledControls' field of ControlsNotify events reports the - # current status of the boolean controls. - # - The 'enabledControlsChanges' field of ControlsNotify events reports - # any boolean controls that have been turned on or off. - # - The 'affectEnabledControls' and 'enabledControls' fields of the - # kbSetControls request change the set of enabled controls. - # - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of - # an XkbControlsRec specify the controls to be changed if the keyboard - # times out and the values to which they should be changed. - # - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags - # request specifies the specify the controls to be reset when the - # client exits and the values to which they should be reset. - # - The 'ctrls' field of an indicator map specifies the controls - # that drive the indicator. - # - Specifies the boolean controls affected by the SetControls and - # LockControls key actions. - # + XkbAllStateComponentsMask* = 0x00003FFF + # + # Controls detail masks: + # The controls specified in XkbAllControlsMask: + # - The 'changed' field of ControlsNotify events reports which of + # the keyboard controls have changed. + # - The 'changeControls' field of the SetControls request specifies + # the controls for which values are to be changed. + # - Used as an event detail mask to limit the conditions under + # which ControlsNotify events are reported. + # + # The controls specified in the XkbAllBooleanCtrlsMask: + # - The 'enabledControls' field of ControlsNotify events reports the + # current status of the boolean controls. + # - The 'enabledControlsChanges' field of ControlsNotify events reports + # any boolean controls that have been turned on or off. + # - The 'affectEnabledControls' and 'enabledControls' fields of the + # kbSetControls request change the set of enabled controls. + # - The 'accessXTimeoutMask' and 'accessXTimeoutValues' fields of + # an XkbControlsRec specify the controls to be changed if the keyboard + # times out and the values to which they should be changed. + # - The 'autoCtrls' and 'autoCtrlsValues' fields of the PerClientFlags + # request specifies the specify the controls to be reset when the + # client exits and the values to which they should be reset. + # - The 'ctrls' field of an indicator map specifies the controls + # that drive the indicator. + # - Specifies the boolean controls affected by the SetControls and + # LockControls key actions. + # const XkbRepeatKeysMask* = int(1) shl 0 @@ -528,29 +500,31 @@ XkbControlsEnabledMask* = int(1) shl 31 XkbAccessXOptionsMask* = XkbStickyKeysMask or XkbAccessXFeedbackMask XkbAllBooleanCtrlsMask* = 0x00001FFF - XkbAllControlsMask* = 0xF8001FFF # - # Compatibility Map Compontents: - # - Specifies the components to be allocated in XkbAllocCompatMap. - # + XkbAllControlsMask* = 0xF8001FFF + # + # Compatibility Map Compontents: + # - Specifies the components to be allocated in XkbAllocCompatMap. + # const XkbSymInterpMask* = 1 shl 0 XkbGroupCompatMask* = 1 shl 1 - XkbAllCompatMask* = 0x00000003 # - # Assorted constants and limits. - # + XkbAllCompatMask* = 0x00000003 + # + # Assorted constants and limits. + # -const - XkbAllIndicatorsMask* = 0xFFFFFFFF # - # Map components masks: - # Those in AllMapComponentsMask: - # - Specifies the individual fields to be loaded or changed for the - # GetMap and SetMap requests. - # Those in ClientInfoMask: - # - Specifies the components to be allocated by XkbAllocClientMap. - # Those in ServerInfoMask: - # - Specifies the components to be allocated by XkbAllocServerMap. - # +const XkbAllIndicatorsMask* = 0xFFFFFFFF + # + # Map components masks: + # Those in AllMapComponentsMask: + # - Specifies the individual fields to be loaded or changed for the + # GetMap and SetMap requests. + # Those in ClientInfoMask: + # - Specifies the components to be allocated by XkbAllocClientMap. + # Those in ServerInfoMask: + # - Specifies the components to be allocated by XkbAllocServerMap. + # const XkbKeyTypesMask* = 1 shl 0 @@ -561,17 +535,18 @@ XkbKeyBehaviorsMask* = 1 shl 5 XkbVirtualModsMask* = 1 shl 6 XkbVirtualModMapMask* = 1 shl 7 - XkbAllClientInfoMask* = XkbKeyTypesMask or XkbKeySymsMask or - XkbModifierMapMask - XkbAllServerInfoMask* = XkbExplicitComponentsMask or XkbKeyActionsMask or - XkbKeyBehaviorsMask or XkbVirtualModsMask or XkbVirtualModMapMask - XkbAllMapComponentsMask* = XkbAllClientInfoMask or XkbAllServerInfoMask # - # Names component mask: - # - Specifies the names to be loaded or changed for the GetNames and - # SetNames requests. - # - Specifies the names that have changed in a NamesNotify event. - # - Specifies the names components to be allocated by XkbAllocNames. - # + XkbAllClientInfoMask* = XkbKeyTypesMask or XkbKeySymsMask or XkbModifierMapMask + XkbAllServerInfoMask* = + XkbExplicitComponentsMask or XkbKeyActionsMask or XkbKeyBehaviorsMask or + XkbVirtualModsMask or XkbVirtualModMapMask + XkbAllMapComponentsMask* = XkbAllClientInfoMask or XkbAllServerInfoMask + # + # Names component mask: + # - Specifies the names to be loaded or changed for the GetNames and + # SetNames requests. + # - Specifies the names that have changed in a NamesNotify event. + # - Specifies the names components to be allocated by XkbAllocNames. + # const XkbKeycodesNameMask* = 1 shl 0 @@ -589,11 +564,12 @@ XkbGroupNamesMask* = 1 shl 12 XkbRGNamesMask* = 1 shl 13 XkbComponentNamesMask* = 0x0000003F - XkbAllNamesMask* = 0x00003FFF # - # Miscellaneous event details: - # - event detail masks for assorted events that don't reall - # have any details. - # + XkbAllNamesMask* = 0x00003FFF + # + # Miscellaneous event details: + # - event detail masks for assorted events that don't reall + # have any details. + # const XkbAllStateEventsMask* = XkbAllStateComponentsMask @@ -603,29 +579,31 @@ XkbAllNameEventsMask* = XkbAllNamesMask XkbAllCompatMapEventsMask* = XkbAllCompatMask XkbAllBellEventsMask* = int(1) shl 0 - XkbAllActionMessagesMask* = int(1) shl 0 # - # XKB reports one error: BadKeyboard - # A further reason for the error is encoded into to most significant - # byte of the resourceID for the error: - # XkbErr_BadDevice - the device in question was not found - # XkbErr_BadClass - the device was found but it doesn't belong to - # the appropriate class. - # XkbErr_BadId - the device was found and belongs to the right - # class, but not feedback with a matching id was - # found. - # The low byte of the resourceID for this error contains the device - # id, class specifier or feedback id that failed. - # + XkbAllActionMessagesMask* = int(1) shl 0 + # + # XKB reports one error: BadKeyboard + # A further reason for the error is encoded into to most significant + # byte of the resourceID for the error: + # XkbErr_BadDevice - the device in question was not found + # XkbErr_BadClass - the device was found but it doesn't belong to + # the appropriate class. + # XkbErr_BadId - the device was found and belongs to the right + # class, but not feedback with a matching id was + # found. + # The low byte of the resourceID for this error contains the device + # id, class specifier or feedback id that failed. + # const XkbKeyboard* = 0 XkbNumberErrors* = 1 XkbErr_BadDevice* = 0x000000FF XkbErr_BadClass* = 0x000000FE - XkbErr_BadId* = 0x000000FD # - # Keyboard Components Mask: - # - Specifies the components that follow a GetKeyboardByNameReply - # + XkbErr_BadId* = 0x000000FD + # + # Keyboard Components Mask: + # - Specifies the components that follow a GetKeyboardByNameReply + # const XkbClientMapMask* = int(1) shl 0 @@ -635,15 +613,16 @@ XkbNamesMask* = int(1) shl 4 XkbGeometryMask* = int(1) shl 5 XkbControlsMask* = int(1) shl 6 - XkbAllComponentsMask* = 0x0000007F # - # AccessX Options Mask - # - The 'accessXOptions' field of an XkbControlsRec specifies the - # AccessX options that are currently in effect. - # - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues' - # fields of an XkbControlsRec specify the Access X options to be - # changed if the keyboard times out and the values to which they - # should be changed. - # + XkbAllComponentsMask* = 0x0000007F + # + # AccessX Options Mask + # - The 'accessXOptions' field of an XkbControlsRec specifies the + # AccessX options that are currently in effect. + # - The 'accessXTimeoutOptionsMask' and 'accessXTimeoutOptionsValues' + # fields of an XkbControlsRec specify the Access X options to be + # changed if the keyboard times out and the values to which they + # should be changed. + # const XkbAX_SKPressFBMask* = int(1) shl 0 @@ -660,33 +639,34 @@ XkbAX_DumbBellFBMask* = int(1) shl 11 XkbAX_FBOptionsMask* = 0x00000F3F XkbAX_SKOptionsMask* = 0x000000C0 - XkbAX_AllOptionsMask* = 0x00000FFF # - # XkbUseCoreKbd is used to specify the core keyboard without having - # to look up its X input extension identifier. - # XkbUseCorePtr is used to specify the core pointer without having - # to look up its X input extension identifier. - # XkbDfltXIClass is used to specify "don't care" any place that the - # XKB protocol is looking for an X Input Extension - # device class. - # XkbDfltXIId is used to specify "don't care" any place that the - # XKB protocol is looking for an X Input Extension - # feedback identifier. - # XkbAllXIClasses is used to get information about all device indicators, - # whether they're part of the indicator feedback class - # or the keyboard feedback class. - # XkbAllXIIds is used to get information about all device indicator - # feedbacks without having to list them. - # XkbXINone is used to indicate that no class or id has been specified. - # XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs - # XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells - # XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device - # XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class - # XkbExplicitXIId(c) True if 'i' explicitly specifies a device id - # XkbSingleXIClass(c) True if 'c' specifies exactly one device class, - # including the default. - # XkbSingleXIId(i) True if 'i' specifies exactly one device - # identifier, including the default. - # + XkbAX_AllOptionsMask* = 0x00000FFF + # + # XkbUseCoreKbd is used to specify the core keyboard without having + # to look up its X input extension identifier. + # XkbUseCorePtr is used to specify the core pointer without having + # to look up its X input extension identifier. + # XkbDfltXIClass is used to specify "don't care" any place that the + # XKB protocol is looking for an X Input Extension + # device class. + # XkbDfltXIId is used to specify "don't care" any place that the + # XKB protocol is looking for an X Input Extension + # feedback identifier. + # XkbAllXIClasses is used to get information about all device indicators, + # whether they're part of the indicator feedback class + # or the keyboard feedback class. + # XkbAllXIIds is used to get information about all device indicator + # feedbacks without having to list them. + # XkbXINone is used to indicate that no class or id has been specified. + # XkbLegalXILedClass(c) True if 'c' specifies a legal class with LEDs + # XkbLegalXIBellClass(c) True if 'c' specifies a legal class with bells + # XkbExplicitXIDevice(d) True if 'd' explicitly specifies a device + # XkbExplicitXIClass(c) True if 'c' explicitly specifies a device class + # XkbExplicitXIId(c) True if 'i' explicitly specifies a device id + # XkbSingleXIClass(c) True if 'c' specifies exactly one device class, + # including the default. + # XkbSingleXIId(i) True if 'i' specifies exactly one device + # identifier, including the default. + # const XkbUseCoreKbd* = 0x00000100 @@ -714,11 +694,12 @@ XkbAllVirtualModsMask* = 0x0000FFFF XkbNumKbdGroups* = 4 XkbMaxKbdGroup* = XkbNumKbdGroups - 1 - XkbMaxMouseKeysBtn* = 4 # - # Group Index and Mask: - # - Indices into the kt_index array of a key type. - # - Mask specifies types to be changed for XkbChangeTypesOfKey - # + XkbMaxMouseKeysBtn* = 4 + # + # Group Index and Mask: + # - Indices into the kt_index array of a key type. + # - Mask specifies types to be changed for XkbChangeTypesOfKey + # const XkbGroup1Index* = 0 @@ -732,13 +713,14 @@ XkbGroup3Mask* = 1 shl 2 XkbGroup4Mask* = 1 shl 3 XkbAnyGroupMask* = 1 shl 7 - XkbAllGroupsMask* = 0x0000000F # - # BuildCoreState: Given a keyboard group and a modifier state, - # construct the value to be reported an event. - # GroupForCoreState: Given the state reported in an event, - # determine the keyboard group. - # IsLegalGroup: Returns TRUE if 'g' is a valid group index. - # + XkbAllGroupsMask* = 0x0000000F + # + # BuildCoreState: Given a keyboard group and a modifier state, + # construct the value to be reported an event. + # GroupForCoreState: Given the state reported in an event, + # determine the keyboard group. + # IsLegalGroup: Returns TRUE if 'g' is a valid group index. + # proc XkbBuildCoreState*(m, g: int): int proc XkbGroupForCoreState*(s: int): int @@ -751,39 +733,41 @@ # specify the interpretation of out of range groups for the # corresponding key. # + const XkbWrapIntoRange* = 0x00000000 XkbClampIntoRange* = 0x00000040 - XkbRedirectIntoRange* = 0x00000080 # - # Action flags: Reported in the 'flags' field of most key actions. - # Interpretation depends on the type of the action; not all actions - # accept all flags. - # - # Option Used for Actions - # ------ ---------------- - # ClearLocks SetMods, LatchMods, SetGroup, LatchGroup - # LatchToLock SetMods, LatchMods, SetGroup, LatchGroup - # LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn - # LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn - # UseModMapMods SetMods, LatchMods, LockMods, ISOLock - # GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock - # UseDfltButton PtrBtn, LockPtrBtn - # NoAcceleration MovePtr - # MoveAbsoluteX MovePtr - # MoveAbsoluteY MovePtr - # ISODfltIsGroup ISOLock - # ISONoAffectMods ISOLock - # ISONoAffectGroup ISOLock - # ISONoAffectPtr ISOLock - # ISONoAffectCtrls ISOLock - # MessageOnPress ActionMessage - # MessageOnRelease ActionMessage - # MessageGenKeyEvent ActionMessage - # AffectDfltBtn SetPtrDflt - # DfltBtnAbsolute SetPtrDflt - # SwitchApplication SwitchScreen - # SwitchAbsolute SwitchScreen - # + XkbRedirectIntoRange* = 0x00000080 + # + # Action flags: Reported in the 'flags' field of most key actions. + # Interpretation depends on the type of the action; not all actions + # accept all flags. + # + # Option Used for Actions + # ------ ---------------- + # ClearLocks SetMods, LatchMods, SetGroup, LatchGroup + # LatchToLock SetMods, LatchMods, SetGroup, LatchGroup + # LockNoLock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn + # LockNoUnlock LockMods, ISOLock, LockPtrBtn, LockDeviceBtn + # UseModMapMods SetMods, LatchMods, LockMods, ISOLock + # GroupAbsolute SetGroup, LatchGroup, LockGroup, ISOLock + # UseDfltButton PtrBtn, LockPtrBtn + # NoAcceleration MovePtr + # MoveAbsoluteX MovePtr + # MoveAbsoluteY MovePtr + # ISODfltIsGroup ISOLock + # ISONoAffectMods ISOLock + # ISONoAffectGroup ISOLock + # ISONoAffectPtr ISOLock + # ISONoAffectCtrls ISOLock + # MessageOnPress ActionMessage + # MessageOnRelease ActionMessage + # MessageGenKeyEvent ActionMessage + # AffectDfltBtn SetPtrDflt + # DfltBtnAbsolute SetPtrDflt + # SwitchApplication SwitchScreen + # SwitchAbsolute SwitchScreen + # const XkbSA_ClearLocks* = int(1) shl 0 @@ -808,12 +792,13 @@ XkbSA_AffectDfltBtn* = 1 XkbSA_DfltBtnAbsolute* = int(1) shl 2 XkbSA_SwitchApplication* = int(1) shl 0 - XkbSA_SwitchAbsolute* = int(1) shl 2 # - # The following values apply to the SA_DeviceValuator - # action only. Valuator operations specify the action - # to be taken. Values specified in the action are - # multiplied by 2^scale before they are applied. - # + XkbSA_SwitchAbsolute* = int(1) shl 2 + # + # The following values apply to the SA_DeviceValuator + # action only. Valuator operations specify the action + # to be taken. Values specified in the action are + # multiplied by 2^scale before they are applied. + # const XkbSA_IgnoreVal* = 0x00000000 @@ -831,6 +816,7 @@ # Action types: specifies the type of a key action. Reported in the # type field of all key actions. # + const XkbSA_NoAction* = 0x00000000 XkbSA_SetMods* = 0x00000001 @@ -856,30 +842,31 @@ XkbSA_LastAction* = XkbSA_DeviceValuator XkbSA_NumActions* = XkbSA_LastAction + 1 -const - XkbSA_XFree86Private* = 0x00000086 - # - # Specifies the key actions that clear latched groups or modifiers. - # +const XkbSA_XFree86Private* = 0x00000086 + # + # Specifies the key actions that clear latched groups or modifiers. + # -const ##define XkbSA_BreakLatch \ +const ##define XkbSA_BreakLatch \ # ((1<type>=XkbSA_MovePtr)&&((a)->type<=XkbSA_SetPtrDflt)) - result = (a.theType >= XkbSA_MovePtr) and - (a.theType <= XkbSA_SetPtrDflt) + result = (a.theType >= XkbSA_MovePtr) and (a.theType <= XkbSA_SetPtrDflt) proc XkbIsLegalKeycode(k: int): bool = ##define XkbIsLegalKeycode(k) (((k)>=XkbMinLegalKeyCode)&&((k)<=XkbMaxLegalKeyCode)) @@ -2039,8 +2150,10 @@ proc XkbcharToInt(v: int8): int16 = ##define XkbcharToInt(v) ((v)&0x80?(int)((v)|(~0xff)):(int)((v)&0x7f)) - if ((v and 0x80'i8) != 0'i8): result = v or (not 0xFF'i16) - else: result = int16(v and 0x7F'i8) + if ((v and 0x80'i8) != 0'i8): + result = v or (not 0xFF'i16) + else: + result = int16(v and 0x7F'i8) proc XkbIntTo2chars(i: int16, h, L: var int8) = ##define XkbIntTo2chars(i,h,l) (((h)=((i>>8)&0xff)),((l)=((i)&0xff))) @@ -2100,8 +2213,7 @@ proc XkbSetGroupInfo(g, w, n: int16): int16 = ##define XkbSetGroupInfo(g,w,n) (((w)&0xc0)|(((n)&3)<<4)|((g)&0x0f)) - result = (w and 0x000000C0'i16) or - ((n and 3'i16) shl 4'i16) or (g and 0x0000000F'i16) + result = (w and 0x000000C0'i16) or ((n and 3'i16) shl 4'i16) or (g and 0x0000000F'i16) proc XkbSetNumGroups(g, n: int16): int16 = ##define XkbSetNumGroups(g,n) (((g)&0xf0)|((n)&0x0f)) @@ -2167,8 +2279,7 @@ proc XkbActionCtrls(a: PXkbCtrlsAction): int16 = ##define XkbActionCtrls(a) ((((unsigned int)(a)->ctrls3)<<24)|(((unsigned int)(a)->ctrls2)<<16)| # (((unsigned int)(a)->ctrls1)<<8)|((unsigned int)((a)->ctrls0))) - result = int16((a.ctrls3 shl 24) or (a.ctrls2 shl 16) or - (a.ctrls1 shl 8) or a.ctrls0) + result = int16((a.ctrls3 shl 24) or (a.ctrls2 shl 16) or (a.ctrls1 shl 8) or a.ctrls0) proc XkbSARedirectVMods(a: PXkbRedirectKeyAction): int16 = ##define XkbSARedirectVMods(a) ((((unsigned int)(a)->vmods1)<<8)|((unsigned int)(a)->vmods0)) @@ -2244,14 +2355,17 @@ proc XkbIM_IsAuto(i: PXkbIndicatorMapPtr): bool = ##define XkbIM_IsAuto(i) ((((i)->flags&XkbIM_NoAutomatic)==0)&&(((i)->which_groups&&(i)->groups)|| # ((i)->which_mods&&(i)->mods.mask)|| ((i)->ctrls))) - result = ((i.flags and XkbIM_NoAutomatic) == 0) and - (((i.which_groups > 0'i8) and (i.groups > 0'i8)) or - ((i.which_mods > 0'i8) and (i.mods.mask > 0'i8)) or (i.ctrls > 0'i8)) + result = + ((i.flags and XkbIM_NoAutomatic) == 0) and ( + ((i.which_groups > 0'i8) and (i.groups > 0'i8)) or + ((i.which_mods > 0'i8) and (i.mods.mask > 0'i8)) or (i.ctrls > 0'i8) + ) proc XkbIM_InUse(i: PXkbIndicatorMapPtr): bool = ##define XkbIM_InUse(i) (((i)->flags)||((i)->which_groups)||((i)->which_mods)||((i)->ctrls)) - result = (i.flags > 0'i8) or (i.which_groups > 0'i8) or (i.which_mods > 0'i8) or - (i.ctrls > 0'i8) + result = + (i.flags > 0'i8) or (i.which_groups > 0'i8) or (i.which_mods > 0'i8) or + (i.ctrls > 0'i8) proc XkbKeyKeyTypeIndex(d: PXkbDescPtr, k: int16, g: int8): int8 = ##define XkbKeyKeyTypeIndex(d,k,g) (XkbCMKeyTypeIndex((d)->map,k,g)) @@ -2287,7 +2401,8 @@ proc XkbKeySym(d: PXkbDescPtr, k: int16, n: int16): KeySym = ##define XkbKeySym(d,k,n) (XkbKeySymsPtr(d,k)[n]) - result = cast[ptr array[0..0xffff, KeySym]](XkbKeySymsPtr(d, k))[n] # XXX: this seems strange! + result = cast[ptr array[0 .. 0xffff, KeySym]](XkbKeySymsPtr(d, k))[n] + # XXX: this seems strange! proc XkbKeySymEntry(d: PXkbDescPtr, k: int16, sl: int16, g: int8): KeySym = ##define XkbKeySymEntry(d,k,sl,g) (XkbKeySym(d,k,((XkbKeyGroupsWidth(d,k)*(g))+(sl)))) @@ -2314,8 +2429,10 @@ proc XkbKeyNumActions(d: PXkbDescPtr, k: int16): int16 = ##define XkbKeyNumActions(d,k) (XkbKeyHasActions(d,k)?XkbKeyNumSyms(d,k):1) - if (XkbKeyHasActions(d, k)): result = XkbKeyNumSyms(d, k) - else: result = 1'i16 + if (XkbKeyHasActions(d, k)): + result = XkbKeyNumSyms(d, k) + else: + result = 1'i16 proc XkbKeyActionsPtr(d: PXkbDescPtr, k: int16): PXkbAction = ##define XkbKeyActionsPtr(d,k) (XkbSMKeyActionsPtr((d)->server,k)) @@ -2351,7 +2468,8 @@ proc XkbOutlineIndex(s: PXkbShapePtr, o: PXkbOutlinePtr): int32 = ##define XkbOutlineIndex(s,o) ((int)((o)-&(s)->outlines[0])) - result = int32((cast[int](o) - cast[int](addr(s.outlines[0]))) div sizeof(PXkbOutlinePtr)) + result = + int32((cast[int](o) - cast[int](addr(s.outlines[0]))) div sizeof(PXkbOutlinePtr)) proc XkbShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr): PXkbColorPtr = ##define XkbShapeDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) @@ -2361,51 +2479,67 @@ ##define XkbShapeDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) result = addr(g.shapes[d.shape_ndx]) -proc XkbSetShapeDoodadColor(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, - c: PXkbColorPtr) = +proc XkbSetShapeDoodadColor( + g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, c: PXkbColorPtr +) = ##define XkbSetShapeDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) - d.color_ndx = int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) + d.color_ndx = + int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) -proc XkbSetShapeDoodadShape(g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, - s: PXkbShapePtr) = +proc XkbSetShapeDoodadShape( + g: PXkbGeometryPtr, d: PXkbShapeDoodadPtr, s: PXkbShapePtr +) = ##define XkbSetShapeDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) - d.shape_ndx = int16((cast[int](s) - cast[int](addr(g.shapes[0]))) div sizeof(XkbShapeRec)) + d.shape_ndx = + int16((cast[int](s) - cast[int](addr(g.shapes[0]))) div sizeof(XkbShapeRec)) proc XkbTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr): PXkbColorPtr = ##define XkbTextDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) result = addr(g.colors[d.color_ndx]) -proc XkbSetTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr, - c: PXkbColorPtr) = +proc XkbSetTextDoodadColor(g: PXkbGeometryPtr, d: PXkbTextDoodadPtr, c: PXkbColorPtr) = ##define XkbSetTextDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) - d.color_ndx = int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) + d.color_ndx = + int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) -proc XkbIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbShapeDoodadPtr = +proc XkbIndicatorDoodadShape( + g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr +): PXkbShapeDoodadPtr = ##define XkbIndicatorDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) result = cast[PXkbShapeDoodadPtr](addr(g.shapes[d.shape_ndx])) -proc XkbIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr = +proc XkbIndicatorDoodadOnColor( + g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr +): PXkbColorPtr = ##define XkbIndicatorDoodadOnColor(g,d) (&(g)->colors[(d)->on_color_ndx]) result = addr(g.colors[d.on_color_ndx]) -proc XkbIndicatorDoodadOffColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr): PXkbColorPtr = +proc XkbIndicatorDoodadOffColor( + g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr +): PXkbColorPtr = ##define XkbIndicatorDoodadOffColor(g,d) (&(g)->colors[(d)->off_color_ndx]) result = addr(g.colors[d.off_color_ndx]) -proc XkbSetIndicatorDoodadOnColor(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, - c: PXkbColorPtr) = +proc XkbSetIndicatorDoodadOnColor( + g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr +) = ##define XkbSetIndicatorDoodadOnColor(g,d,c) ((d)->on_color_ndx= (c)-&(g)->colors[0]) - d.on_color_ndx = int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) + d.on_color_ndx = + int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) -proc XkbSetIndicatorDoodadOffColor(g: PXkbGeometryPtr, - d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr) = +proc XkbSetIndicatorDoodadOffColor( + g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, c: PXkbColorPtr +) = ##define XkbSetIndicatorDoodadOffColor(g,d,c) ((d)->off_color_ndx= (c)-&(g)->colors[0]) - d.off_color_ndx = int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) + d.off_color_ndx = + int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) -proc XkbSetIndicatorDoodadShape(g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, - s: PXkbShapeDoodadPtr) = +proc XkbSetIndicatorDoodadShape( + g: PXkbGeometryPtr, d: PXkbIndicatorDoodadPtr, s: PXkbShapeDoodadPtr +) = ##define XkbSetIndicatorDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) - d.shape_ndx = int16((cast[int](s) - (cast[int](addr(g.shapes[0])))) div sizeof(XkbShapeRec)) + d.shape_ndx = + int16((cast[int](s) - (cast[int](addr(g.shapes[0])))) div sizeof(XkbShapeRec)) proc XkbLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr): PXkbColorPtr = ##define XkbLogoDoodadColor(g,d) (&(g)->colors[(d)->color_ndx]) @@ -2415,15 +2549,17 @@ ##define XkbLogoDoodadShape(g,d) (&(g)->shapes[(d)->shape_ndx]) result = cast[PXkbShapeDoodadPtr](addr(g.shapes[d.shape_ndx])) -proc XkbSetLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, - c: PXkbColorPtr) = +proc XkbSetLogoDoodadColor(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, c: PXkbColorPtr) = ##define XkbSetLogoDoodadColor(g,d,c) ((d)->color_ndx= (c)-&(g)->colors[0]) - d.color_ndx = int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) + d.color_ndx = + int16((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) -proc XkbSetLogoDoodadShape(g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, - s: PXkbShapeDoodadPtr) = +proc XkbSetLogoDoodadShape( + g: PXkbGeometryPtr, d: PXkbLogoDoodadPtr, s: PXkbShapeDoodadPtr +) = ##define XkbSetLogoDoodadShape(g,d,s) ((d)->shape_ndx= (s)-&(g)->shapes[0]) - d.shape_ndx = int16((cast[int](s) - cast[int](addr(g.shapes[0]))) div sizeof(XkbShapeRec)) + d.shape_ndx = + int16((cast[int](s) - cast[int](addr(g.shapes[0]))) div sizeof(XkbShapeRec)) proc XkbKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr): PXkbShapeDoodadPtr = ##define XkbKeyShape(g,k) (&(g)->shapes[(k)->shape_ndx]) @@ -2435,12 +2571,15 @@ proc XkbSetKeyShape(g: PXkbGeometryPtr, k: PXkbKeyPtr, s: PXkbShapeDoodadPtr) = ##define XkbSetKeyShape(g,k,s) ((k)->shape_ndx= (s)-&(g)->shapes[0]) - k.shape_ndx = int8((cast[int](s) - cast[int](addr(g.shapes[0]))) div sizeof(XkbShapeRec)) + k.shape_ndx = + int8((cast[int](s) - cast[int](addr(g.shapes[0]))) div sizeof(XkbShapeRec)) proc XkbSetKeyColor(g: PXkbGeometryPtr, k: PXkbKeyPtr, c: PXkbColorPtr) = ##define XkbSetKeyColor(g,k,c) ((k)->color_ndx= (c)-&(g)->colors[0]) - k.color_ndx = int8((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) + k.color_ndx = + int8((cast[int](c) - cast[int](addr(g.colors[0]))) div sizeof(XkbColorRec)) proc XkbGeomColorIndex(g: PXkbGeometryPtr, c: PXkbColorPtr): int32 = ##define XkbGeomColorIndex(g,c) ((int)((c)-&(g)->colors[0])) - result = int16((cast[int](c) - (cast[int](addr(g.colors[0])))) div sizeof(XkbColorRec)) + result = + int16((cast[int](c) - (cast[int](addr(g.colors[0])))) div sizeof(XkbColorRec)) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xkblib.nim --- a/semicongine/thirdparty/x11/xkblib.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xkblib.nim Thu Aug 22 18:32:21 2024 +0700 @@ -49,59 +49,54 @@ # # -import - x, xlib, xkb - +import x, xlib, xkb include "x11pragma.nim" - type PXkbAnyEvent* = ptr XkbAnyEvent - XkbAnyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? + XkbAnyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds; - xkb_type*: int16 # XKB event minor code - device*: int16 # device ID - + time*: Time # milliseconds; + xkb_type*: int16 # XKB event minor code + device*: int16 # device ID type PXkbNewKeyboardNotifyEvent* = ptr XkbNewKeyboardNotifyEvent - XkbNewKeyboardNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbNewKeyboardNotify - device*: int16 # device ID - old_device*: int16 # device ID of previous keyboard - min_key_code*: int16 # minimum key code - max_key_code*: int16 # maximum key code + XkbNewKeyboardNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbNewKeyboardNotify + device*: int16 # device ID + old_device*: int16 # device ID of previous keyboard + min_key_code*: int16 # minimum key code + max_key_code*: int16 # maximum key code old_min_key_code*: int16 # min key code of previous kbd old_max_key_code*: int16 # max key code of previous kbd - changed*: int16 # changed aspects of the keyboard - req_major*: int8 # major and minor opcode of req - req_minor*: int8 # that caused change, if applicable - + changed*: int16 # changed aspects of the keyboard + req_major*: int8 # major and minor opcode of req + req_minor*: int8 # that caused change, if applicable type PXkbMapNotifyEvent* = ptr XkbMapNotifyEvent - XkbMapNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request + XkbMapNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbMapNotify - device*: int16 # device ID - changed*: int16 # fields which have been changed - flags*: int16 # reserved + time*: Time # milliseconds + xkb_type*: int16 # XkbMapNotify + device*: int16 # device ID + changed*: int16 # fields which have been changed + flags*: int16 # reserved first_type*: int16 # first changed key type - num_types*: int16 # number of changed key types + num_types*: int16 # number of changed key types min_key_code*: KeyCode max_key_code*: KeyCode first_key_sym*: KeyCode @@ -116,193 +111,184 @@ num_key_explicit*: int16 num_modmap_keys*: int16 num_vmodmap_keys*: int16 - vmods*: int16 # mask of changed virtual mods - + vmods*: int16 # mask of changed virtual mods type PXkbStateNotifyEvent* = ptr XkbStateNotifyEvent - XkbStateNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbStateNotify - device*: int16 # device ID - changed*: int16 # mask of changed state components - group*: int16 # keyboard group - base_group*: int16 # base keyboard group - latched_group*: int16 # latched keyboard group - locked_group*: int16 # locked keyboard group - mods*: int16 # modifier state - base_mods*: int16 # base modifier state - latched_mods*: int16 # latched modifiers - locked_mods*: int16 # locked modifiers - compat_state*: int16 # compatibility state - grab_mods*: int8 # mods used for grabs - compat_grab_mods*: int8 # grab mods for non-XKB clients - lookup_mods*: int8 # mods sent to clients + XkbStateNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbStateNotify + device*: int16 # device ID + changed*: int16 # mask of changed state components + group*: int16 # keyboard group + base_group*: int16 # base keyboard group + latched_group*: int16 # latched keyboard group + locked_group*: int16 # locked keyboard group + mods*: int16 # modifier state + base_mods*: int16 # base modifier state + latched_mods*: int16 # latched modifiers + locked_mods*: int16 # locked modifiers + compat_state*: int16 # compatibility state + grab_mods*: int8 # mods used for grabs + compat_grab_mods*: int8 # grab mods for non-XKB clients + lookup_mods*: int8 # mods sent to clients compat_lookup_mods*: int8 # mods sent to non-XKB clients - ptr_buttons*: int16 # pointer button state - keycode*: KeyCode # keycode that caused the change - event_type*: int8 # KeyPress or KeyRelease - req_major*: int8 # Major opcode of request - req_minor*: int8 # Minor opcode of request - + ptr_buttons*: int16 # pointer button state + keycode*: KeyCode # keycode that caused the change + event_type*: int8 # KeyPress or KeyRelease + req_major*: int8 # Major opcode of request + req_minor*: int8 # Minor opcode of request type PXkbControlsNotifyEvent* = ptr XkbControlsNotifyEvent - XkbControlsNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbControlsNotify - device*: int16 # device ID - changed_ctrls*: int16 # controls with changed sub-values - enabled_ctrls*: int16 # controls currently enabled + XkbControlsNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbControlsNotify + device*: int16 # device ID + changed_ctrls*: int16 # controls with changed sub-values + enabled_ctrls*: int16 # controls currently enabled enabled_ctrl_changes*: int16 # controls just {en,dis}abled - num_groups*: int16 # total groups on keyboard - keycode*: KeyCode # key that caused change or 0 - event_type*: int8 # type of event that caused change - req_major*: int8 # if keycode==0, major and minor - req_minor*: int8 # opcode of req that caused change - + num_groups*: int16 # total groups on keyboard + keycode*: KeyCode # key that caused change or 0 + event_type*: int8 # type of event that caused change + req_major*: int8 # if keycode==0, major and minor + req_minor*: int8 # opcode of req that caused change type PXkbIndicatorNotifyEvent* = ptr XkbIndicatorNotifyEvent - XkbIndicatorNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? + XkbIndicatorNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbIndicatorNotify - device*: int16 # device - changed*: int16 # indicators with new state or map - state*: int16 # current state of all indicators - + time*: Time # milliseconds + xkb_type*: int16 # XkbIndicatorNotify + device*: int16 # device + changed*: int16 # indicators with new state or map + state*: int16 # current state of all indicators type PXkbNamesNotifyEvent* = ptr XkbNamesNotifyEvent - XkbNamesNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbNamesNotify - device*: int16 # device ID - changed*: int32 # names that have changed - first_type*: int16 # first key type with new name - num_types*: int16 # number of key types with new names - first_lvl*: int16 # first key type new new level names - num_lvls*: int16 # # of key types w/new level names - num_aliases*: int16 # total number of key aliases - num_radio_groups*: int16 # total number of radio groups - changed_vmods*: int16 # virtual modifiers with new names - changed_groups*: int16 # groups with new names + XkbNamesNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbNamesNotify + device*: int16 # device ID + changed*: int32 # names that have changed + first_type*: int16 # first key type with new name + num_types*: int16 # number of key types with new names + first_lvl*: int16 # first key type new new level names + num_lvls*: int16 # # of key types w/new level names + num_aliases*: int16 # total number of key aliases + num_radio_groups*: int16 # total number of radio groups + changed_vmods*: int16 # virtual modifiers with new names + changed_groups*: int16 # groups with new names changed_indicators*: int16 # indicators with new names - first_key*: int16 # first key with new name - num_keys*: int16 # number of keys with new names - + first_key*: int16 # first key with new name + num_keys*: int16 # number of keys with new names type PXkbCompatMapNotifyEvent* = ptr XkbCompatMapNotifyEvent - XkbCompatMapNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbCompatMapNotify - device*: int16 # device ID + XkbCompatMapNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbCompatMapNotify + device*: int16 # device ID changed_groups*: int16 # groups with new compat maps - first_si*: int16 # first new symbol interp - num_si*: int16 # number of new symbol interps - num_total_si*: int16 # total # of symbol interps - + first_si*: int16 # first new symbol interp + num_si*: int16 # number of new symbol interps + num_total_si*: int16 # total # of symbol interps type PXkbBellNotifyEvent* = ptr XkbBellNotifyEvent - XkbBellNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? + XkbBellNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbBellNotify - device*: int16 # device ID - percent*: int16 # requested volume as a % of maximum - pitch*: int16 # requested pitch in Hz - duration*: int16 # requested duration in useconds + time*: Time # milliseconds + xkb_type*: int16 # XkbBellNotify + device*: int16 # device ID + percent*: int16 # requested volume as a % of maximum + pitch*: int16 # requested pitch in Hz + duration*: int16 # requested duration in useconds bell_class*: int16 # (input extension) feedback class - bell_id*: int16 # (input extension) ID of feedback - name*: Atom # "name" of requested bell - window*: Window # window associated with event - event_only*: bool # "event only" requested - + bell_id*: int16 # (input extension) ID of feedback + name*: Atom # "name" of requested bell + window*: Window # window associated with event + event_only*: bool # "event only" requested type PXkbActionMessageEvent* = ptr XkbActionMessageEvent - XkbActionMessageEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbActionMessage - device*: int16 # device ID - keycode*: KeyCode # key that generated the event - press*: bool # true if act caused by key press - key_event_follows*: bool # true if key event also generated - group*: int16 # effective group - mods*: int16 # effective mods - message*: array[0..XkbActionMessageLength, char] # message -- leave space for NUL - + XkbActionMessageEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbActionMessage + device*: int16 # device ID + keycode*: KeyCode # key that generated the event + press*: bool # true if act caused by key press + key_event_follows*: bool # true if key event also generated + group*: int16 # effective group + mods*: int16 # effective mods + message*: array[0 .. XkbActionMessageLength, char] # message -- leave space for NUL type PXkbAccessXNotifyEvent* = ptr XkbAccessXNotifyEvent - XkbAccessXNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbAccessXNotify - device*: int16 # device ID - detail*: int16 # XkbAXN_* - keycode*: int16 # key of event - sk_delay*: int16 # current slow keys delay + XkbAccessXNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbAccessXNotify + device*: int16 # device ID + detail*: int16 # XkbAXN_* + keycode*: int16 # key of event + sk_delay*: int16 # current slow keys delay debounce_delay*: int16 # current debounce delay - type PXkbExtensionDeviceNotifyEvent* = ptr XkbExtensionDeviceNotifyEvent - XkbExtensionDeviceNotifyEvent*{.final.} = object - theType*: int16 # XkbAnyEvent - serial*: int32 # of last req processed by server - send_event*: bool # is this `from` a SendEvent request? - display*: PDisplay # Display the event was read `from` - time*: Time # milliseconds - xkb_type*: int16 # XkbExtensionDeviceNotify - device*: int16 # device ID - reason*: int16 # reason for the event - supported*: int16 # mask of supported features - unsupported*: int16 # mask of unsupported features - # that some app tried to use - first_btn*: int16 # first button that changed - num_btns*: int16 # range of buttons changed + XkbExtensionDeviceNotifyEvent* {.final.} = object + theType*: int16 # XkbAnyEvent + serial*: int32 # of last req processed by server + send_event*: bool # is this `from` a SendEvent request? + display*: PDisplay # Display the event was read `from` + time*: Time # milliseconds + xkb_type*: int16 # XkbExtensionDeviceNotify + device*: int16 # device ID + reason*: int16 # reason for the event + supported*: int16 # mask of supported features + unsupported*: int16 + # mask of unsupported features + # that some app tried to use + first_btn*: int16 # first button that changed + num_btns*: int16 # range of buttons changed leds_defined*: int16 # indicators with names or maps - led_state*: int16 # current state of the indicators - led_class*: int16 # feedback class for led changes - led_id*: int16 # feedback id for led changes - + led_state*: int16 # current state of the indicators + led_class*: int16 # feedback class for led changes + led_id*: int16 # feedback id for led changes type PXkbEvent* = ptr XkbEvent - XkbEvent*{.final.} = object + XkbEvent* {.final.} = object theType*: int16 any*: XkbAnyEvent new_kbd*: XkbNewKeyboardNotifyEvent @@ -318,10 +304,9 @@ device*: XkbExtensionDeviceNotifyEvent core*: XEvent - type PXkbKbdDpyStatePtr* = ptr XkbKbdDpyStateRec - XkbKbdDpyStateRec*{.final.} = object # XkbOpenDisplay error codes + XkbKbdDpyStateRec* {.final.} = object # XkbOpenDisplay error codes const XkbOD_Success* = 0 @@ -342,294 +327,542 @@ XkbLC_AllComposeControls* = 0xC0000000 XkbLC_AllControls* = 0xC000001F -proc XkbIgnoreExtension*(ignore: bool): bool{.libx11c, - importc: "XkbIgnoreExtension".} -proc XkbOpenDisplay*(name: cstring, ev_rtrn, err_rtrn, major_rtrn, minor_rtrn, - reason: ptr int16): PDisplay{.libx11c, importc: "XkbOpenDisplay".} -proc XkbQueryExtension*(dpy: PDisplay, opcodeReturn, eventBaseReturn, - errorBaseReturn, majorRtrn, minorRtrn: ptr int16): bool{. - libx11c, importc: "XkbQueryExtension".} -proc XkbUseExtension*(dpy: PDisplay, major_rtrn, minor_rtrn: ptr int16): bool{. - libx11c, importc: "XkbUseExtension".} -proc XkbLibraryVersion*(libMajorRtrn, libMinorRtrn: ptr int16): bool{.libx11c, importc: "XkbLibraryVersion".} -proc XkbSetXlibControls*(dpy: PDisplay, affect, values: int16): int16{.libx11c, importc: "XkbSetXlibControls".} -proc XkbGetXlibControls*(dpy: PDisplay): int16{.libx11c, - importc: "XkbGetXlibControls".} -type - XkbInternAtomFunc* = proc (dpy: PDisplay, name: cstring, only_if_exists: bool): Atom{. - cdecl.} +proc XkbIgnoreExtension*(ignore: bool): bool {.libx11c, importc: "XkbIgnoreExtension".} +proc XkbOpenDisplay*( + name: cstring, ev_rtrn, err_rtrn, major_rtrn, minor_rtrn, reason: ptr int16 +): PDisplay {.libx11c, importc: "XkbOpenDisplay".} + +proc XkbQueryExtension*( + dpy: PDisplay, + opcodeReturn, eventBaseReturn, errorBaseReturn, majorRtrn, minorRtrn: ptr int16, +): bool {.libx11c, importc: "XkbQueryExtension".} + +proc XkbUseExtension*( + dpy: PDisplay, major_rtrn, minor_rtrn: ptr int16 +): bool {.libx11c, importc: "XkbUseExtension".} + +proc XkbLibraryVersion*( + libMajorRtrn, libMinorRtrn: ptr int16 +): bool {.libx11c, importc: "XkbLibraryVersion".} + +proc XkbSetXlibControls*( + dpy: PDisplay, affect, values: int16 +): int16 {.libx11c, importc: "XkbSetXlibControls".} + +proc XkbGetXlibControls*( + dpy: PDisplay +): int16 {.libx11c, importc: "XkbGetXlibControls".} + +type XkbInternAtomFunc* = + proc(dpy: PDisplay, name: cstring, only_if_exists: bool): Atom {.cdecl.} + +type XkbGetAtomNameFunc* = proc(dpy: PDisplay, atom: Atom): cstring {.cdecl.} -type - XkbGetAtomNameFunc* = proc (dpy: PDisplay, atom: Atom): cstring{.cdecl.} +proc XkbSetAtomFuncs*( + getAtom: XkbInternAtomFunc, getName: XkbGetAtomNameFunc +) {.libx11c, importc: "XkbSetAtomFuncs".} + +proc XkbKeycodeToKeysym*( + dpy: PDisplay, kc: KeyCode, group, level: int16 +): KeySym {.libx11c, importc: "XkbKeycodeToKeysym".} + +proc XkbKeysymToModifiers*( + dpy: PDisplay, ks: KeySym +): int16 {.libx11c, importc: "XkbKeysymToModifiers".} + +proc XkbLookupKeySym*( + dpy: PDisplay, + keycode: KeyCode, + modifiers, modifiers_return: int16, + keysym_return: PKeySym, +): bool {.libx11c, importc: "XkbLookupKeySym".} + +proc XkbLookupKeyBinding*( + dpy: PDisplay, + sym_rtrn: KeySym, + mods: int16, + buffer: cstring, + nbytes: int16, + extra_rtrn: ptr int16, +): int16 {.libx11c, importc: "XkbLookupKeyBinding".} + +proc XkbTranslateKeyCode*( + xkb: PXkbDescPtr, + keycode: KeyCode, + modifiers, modifiers_return: int16, + keysym_return: PKeySym, +): bool {.libx11c, importc: "XkbTranslateKeyCode".} -proc XkbSetAtomFuncs*(getAtom: XkbInternAtomFunc, getName: XkbGetAtomNameFunc){. - libx11c, importc: "XkbSetAtomFuncs".} -proc XkbKeycodeToKeysym*(dpy: PDisplay, kc: KeyCode, group, level: int16): KeySym{. - libx11c, importc: "XkbKeycodeToKeysym".} -proc XkbKeysymToModifiers*(dpy: PDisplay, ks: KeySym): int16{.libx11c, importc: "XkbKeysymToModifiers".} -proc XkbLookupKeySym*(dpy: PDisplay, keycode: KeyCode, - modifiers, modifiers_return: int16, keysym_return: PKeySym): bool{. - libx11c, importc: "XkbLookupKeySym".} -proc XkbLookupKeyBinding*(dpy: PDisplay, sym_rtrn: KeySym, mods: int16, - buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{. - libx11c, importc: "XkbLookupKeyBinding".} -proc XkbTranslateKeyCode*(xkb: PXkbDescPtr, keycode: KeyCode, - modifiers, modifiers_return: int16, - keysym_return: PKeySym): bool{.libx11c, - importc: "XkbTranslateKeyCode".} -proc XkbTranslateKeySym*(dpy: PDisplay, sym_return: KeySym, modifiers: int16, - buffer: cstring, nbytes: int16, extra_rtrn: ptr int16): int16{. - libx11c, importc: "XkbTranslateKeySym".} -proc XkbSetAutoRepeatRate*(dpy: PDisplay, deviceSpec, delay, interval: int16): bool{. - libx11c, importc: "XkbSetAutoRepeatRate".} -proc XkbGetAutoRepeatRate*(dpy: PDisplay, deviceSpec: int16, - delayRtrn, intervalRtrn: PWord): bool{.libx11c, importc: "XkbGetAutoRepeatRate".} -proc XkbChangeEnabledControls*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{. - libx11c, importc: "XkbChangeEnabledControls".} -proc XkbDeviceBell*(dpy: PDisplay, win: Window, - deviceSpec, bellClass, bellID, percent: int16, name: Atom): bool{. - libx11c, importc: "XkbDeviceBell".} -proc XkbForceDeviceBell*(dpy: PDisplay, - deviceSpec, bellClass, bellID, percent: int16): bool{. - libx11c, importc: "XkbForceDeviceBell".} -proc XkbDeviceBellEvent*(dpy: PDisplay, win: Window, - deviceSpec, bellClass, bellID, percent: int16, - name: Atom): bool{.libx11c, - importc: "XkbDeviceBellEvent".} -proc XkbBell*(dpy: PDisplay, win: Window, percent: int16, name: Atom): bool{. - libx11c, importc: "XkbBell".} -proc XkbForceBell*(dpy: PDisplay, percent: int16): bool{.libx11c, - importc: "XkbForceBell".} -proc XkbBellEvent*(dpy: PDisplay, win: Window, percent: int16, name: Atom): bool{. - libx11c, importc: "XkbBellEvent".} -proc XkbSelectEvents*(dpy: PDisplay, deviceID, affect, values: int16): bool{. - libx11c, importc: "XkbSelectEvents".} -proc XkbSelectEventDetails*(dpy: PDisplay, deviceID, eventType: int16, - affect, details: int32): bool{.libx11c, importc: "XkbSelectEventDetails".} -proc XkbNoteMapChanges*(old: PXkbMapChangesPtr, new: PXkbMapNotifyEvent, - wanted: int16){.libx11c, - importc: "XkbNoteMapChanges".} -proc XkbNoteNameChanges*(old: PXkbNameChangesPtr, new: PXkbNamesNotifyEvent, - wanted: int16){.libx11c, - importc: "XkbNoteNameChanges".} -proc XkbGetIndicatorState*(dpy: PDisplay, deviceSpec: int16, pStateRtrn: PWord): Status{. - libx11c, importc: "XkbGetIndicatorState".} -proc XkbGetDeviceIndicatorState*(dpy: PDisplay, - deviceSpec, ledClass, ledID: int16, - pStateRtrn: PWord): Status{.libx11c, importc: "XkbGetDeviceIndicatorState".} -proc XkbGetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetIndicatorMap".} -proc XkbSetIndicatorMap*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{. - libx11c, importc: "XkbSetIndicatorMap".} +proc XkbTranslateKeySym*( + dpy: PDisplay, + sym_return: KeySym, + modifiers: int16, + buffer: cstring, + nbytes: int16, + extra_rtrn: ptr int16, +): int16 {.libx11c, importc: "XkbTranslateKeySym".} + +proc XkbSetAutoRepeatRate*( + dpy: PDisplay, deviceSpec, delay, interval: int16 +): bool {.libx11c, importc: "XkbSetAutoRepeatRate".} + +proc XkbGetAutoRepeatRate*( + dpy: PDisplay, deviceSpec: int16, delayRtrn, intervalRtrn: PWord +): bool {.libx11c, importc: "XkbGetAutoRepeatRate".} + +proc XkbChangeEnabledControls*( + dpy: PDisplay, deviceSpec, affect, values: int16 +): bool {.libx11c, importc: "XkbChangeEnabledControls".} + +proc XkbDeviceBell*( + dpy: PDisplay, win: Window, deviceSpec, bellClass, bellID, percent: int16, name: Atom +): bool {.libx11c, importc: "XkbDeviceBell".} + +proc XkbForceDeviceBell*( + dpy: PDisplay, deviceSpec, bellClass, bellID, percent: int16 +): bool {.libx11c, importc: "XkbForceDeviceBell".} + +proc XkbDeviceBellEvent*( + dpy: PDisplay, win: Window, deviceSpec, bellClass, bellID, percent: int16, name: Atom +): bool {.libx11c, importc: "XkbDeviceBellEvent".} + +proc XkbBell*( + dpy: PDisplay, win: Window, percent: int16, name: Atom +): bool {.libx11c, importc: "XkbBell".} + +proc XkbForceBell*( + dpy: PDisplay, percent: int16 +): bool {.libx11c, importc: "XkbForceBell".} + +proc XkbBellEvent*( + dpy: PDisplay, win: Window, percent: int16, name: Atom +): bool {.libx11c, importc: "XkbBellEvent".} + +proc XkbSelectEvents*( + dpy: PDisplay, deviceID, affect, values: int16 +): bool {.libx11c, importc: "XkbSelectEvents".} + +proc XkbSelectEventDetails*( + dpy: PDisplay, deviceID, eventType: int16, affect, details: int32 +): bool {.libx11c, importc: "XkbSelectEventDetails".} + +proc XkbNoteMapChanges*( + old: PXkbMapChangesPtr, new: PXkbMapNotifyEvent, wanted: int16 +) {.libx11c, importc: "XkbNoteMapChanges".} + +proc XkbNoteNameChanges*( + old: PXkbNameChangesPtr, new: PXkbNamesNotifyEvent, wanted: int16 +) {.libx11c, importc: "XkbNoteNameChanges".} + +proc XkbGetIndicatorState*( + dpy: PDisplay, deviceSpec: int16, pStateRtrn: PWord +): Status {.libx11c, importc: "XkbGetIndicatorState".} + +proc XkbGetDeviceIndicatorState*( + dpy: PDisplay, deviceSpec, ledClass, ledID: int16, pStateRtrn: PWord +): Status {.libx11c, importc: "XkbGetDeviceIndicatorState".} + +proc XkbGetIndicatorMap*( + dpy: PDisplay, which: int32, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetIndicatorMap".} + +proc XkbSetIndicatorMap*( + dpy: PDisplay, which: int32, desc: PXkbDescPtr +): bool {.libx11c, importc: "XkbSetIndicatorMap".} + proc XkbNoteIndicatorMapChanges*(o, n: PXkbIndicatorChangesPtr, w: int16) proc XkbNoteIndicatorStateChanges*(o, n: PXkbIndicatorChangesPtr, w: int16) -proc XkbGetIndicatorMapChanges*(d: PDisplay, x: PXkbDescPtr, - c: PXkbIndicatorChangesPtr): Status -proc XkbChangeIndicatorMaps*(d: PDisplay, x: PXkbDescPtr, - c: PXkbIndicatorChangesPtr): bool -proc XkbGetNamedIndicator*(dpy: PDisplay, name: Atom, pNdxRtrn: ptr int16, - pStateRtrn: ptr bool, pMapRtrn: PXkbIndicatorMapPtr, - pRealRtrn: ptr bool): bool{.libx11c, - importc: "XkbGetNamedIndicator".} -proc XkbGetNamedDeviceIndicator*(dpy: PDisplay, - deviceSpec, ledClass, ledID: int16, - name: Atom, pNdxRtrn: ptr int16, - pStateRtrn: ptr bool, - pMapRtrn: PXkbIndicatorMapPtr, - pRealRtrn: ptr bool): bool{.libx11c, importc: "XkbGetNamedDeviceIndicator".} -proc XkbSetNamedIndicator*(dpy: PDisplay, name: Atom, - changeState, state, createNewMap: bool, - pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedIndicator".} -proc XkbSetNamedDeviceIndicator*(dpy: PDisplay, - deviceSpec, ledClass, ledID: int16, - name: Atom, - changeState, state, createNewMap: bool, - pMap: PXkbIndicatorMapPtr): bool{.libx11c, importc: "XkbSetNamedDeviceIndicator".} -proc XkbLockModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{. - libx11c, importc: "XkbLockModifiers".} -proc XkbLatchModifiers*(dpy: PDisplay, deviceSpec, affect, values: int16): bool{. - libx11c, importc: "XkbLatchModifiers".} -proc XkbLockGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLockGroup".} -proc XkbLatchGroup*(dpy: PDisplay, deviceSpec, group: int16): bool{.libx11c, importc: "XkbLatchGroup".} -proc XkbSetServerInternalMods*(dpy: PDisplay, deviceSpec, affectReal, - realValues, affectVirtual, virtualValues: int16): bool{.libx11c, importc: "XkbSetServerInternalMods".} -proc XkbSetIgnoreLockMods*(dpy: PDisplay, deviceSpec, affectReal, realValues, - affectVirtual, virtualValues: int16): bool{.libx11c, - importc: "XkbSetIgnoreLockMods".} -proc XkbVirtualModsToReal*(dpy: PDisplay, virtual_mask: int16, mask_rtrn: PWord): bool{. - libx11c, importc: "XkbVirtualModsToReal".} -proc XkbComputeEffectiveMap*(xkb: PXkbDescPtr, theType: PXkbKeyTypePtr, - map_rtrn: PByte): bool{.libx11c, - importc: "XkbComputeEffectiveMap".} -proc XkbInitCanonicalKeyTypes*(xkb: PXkbDescPtr, which: int16, keypadVMod: int16): Status{. - libx11c, importc: "XkbInitCanonicalKeyTypes".} -proc XkbAllocKeyboard*(): PXkbDescPtr{.libx11c, - importc: "XkbAllocKeyboard".} -proc XkbFreeKeyboard*(xkb: PXkbDescPtr, which: int16, freeDesc: bool){.libx11c, importc: "XkbFreeKeyboard".} -proc XkbAllocClientMap*(xkb: PXkbDescPtr, which, nTypes: int16): Status{.libx11c, importc: "XkbAllocClientMap".} -proc XkbAllocServerMap*(xkb: PXkbDescPtr, which, nActions: int16): Status{. - libx11c, importc: "XkbAllocServerMap".} -proc XkbFreeClientMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeClientMap".} -proc XkbFreeServerMap*(xkb: PXkbDescPtr, what: int16, freeMap: bool){.libx11c, importc: "XkbFreeServerMap".} -proc XkbAddKeyType*(xkb: PXkbDescPtr, name: Atom, map_count: int16, - want_preserve: bool, num_lvls: int16): PXkbKeyTypePtr{. - libx11c, importc: "XkbAddKeyType".} -proc XkbAllocIndicatorMaps*(xkb: PXkbDescPtr): Status{.libx11c, - importc: "XkbAllocIndicatorMaps".} -proc XkbFreeIndicatorMaps*(xkb: PXkbDescPtr){.libx11c, - importc: "XkbFreeIndicatorMaps".} -proc XkbGetMap*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{.libx11c, importc: "XkbGetMap".} -proc XkbGetUpdatedMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetUpdatedMap".} -proc XkbGetMapChanges*(dpy: PDisplay, xkb: PXkbDescPtr, - changes: PXkbMapChangesPtr): Status{.libx11c, importc: "XkbGetMapChanges".} -proc XkbRefreshKeyboardMapping*(event: PXkbMapNotifyEvent): Status{.libx11c, importc: "XkbRefreshKeyboardMapping".} -proc XkbGetKeyTypes*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetKeyTypes".} -proc XkbGetKeySyms*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetKeySyms".} -proc XkbGetKeyActions*(dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetKeyActions".} -proc XkbGetKeyBehaviors*(dpy: PDisplay, firstKey, nKeys: int16, - desc: PXkbDescPtr): Status{.libx11c, - importc: "XkbGetKeyBehaviors".} -proc XkbGetVirtualMods*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetVirtualMods".} -proc XkbGetKeyExplicitComponents*(dpy: PDisplay, firstKey, nKeys: int16, - desc: PXkbDescPtr): Status{.libx11c, importc: "XkbGetKeyExplicitComponents".} -proc XkbGetKeyModifierMap*(dpy: PDisplay, firstKey, nKeys: int16, - desc: PXkbDescPtr): Status{.libx11c, - importc: "XkbGetKeyModifierMap".} -proc XkbAllocControls*(xkb: PXkbDescPtr, which: int16): Status{.libx11c, importc: "XkbAllocControls".} -proc XkbFreeControls*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeControls".} -proc XkbGetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetControls".} -proc XkbSetControls*(dpy: PDisplay, which: int32, desc: PXkbDescPtr): bool{. - libx11c, importc: "XkbSetControls".} -proc XkbNoteControlsChanges*(old: PXkbControlsChangesPtr, - new: PXkbControlsNotifyEvent, wanted: int16){. - libx11c, importc: "XkbNoteControlsChanges".} -proc XkbGetControlsChanges*(d: PDisplay, x: PXkbDescPtr, - c: PXkbControlsChangesPtr): Status +proc XkbGetIndicatorMapChanges*( + d: PDisplay, x: PXkbDescPtr, c: PXkbIndicatorChangesPtr +): Status + +proc XkbChangeIndicatorMaps*( + d: PDisplay, x: PXkbDescPtr, c: PXkbIndicatorChangesPtr +): bool + +proc XkbGetNamedIndicator*( + dpy: PDisplay, + name: Atom, + pNdxRtrn: ptr int16, + pStateRtrn: ptr bool, + pMapRtrn: PXkbIndicatorMapPtr, + pRealRtrn: ptr bool, +): bool {.libx11c, importc: "XkbGetNamedIndicator".} + +proc XkbGetNamedDeviceIndicator*( + dpy: PDisplay, + deviceSpec, ledClass, ledID: int16, + name: Atom, + pNdxRtrn: ptr int16, + pStateRtrn: ptr bool, + pMapRtrn: PXkbIndicatorMapPtr, + pRealRtrn: ptr bool, +): bool {.libx11c, importc: "XkbGetNamedDeviceIndicator".} + +proc XkbSetNamedIndicator*( + dpy: PDisplay, + name: Atom, + changeState, state, createNewMap: bool, + pMap: PXkbIndicatorMapPtr, +): bool {.libx11c, importc: "XkbSetNamedIndicator".} + +proc XkbSetNamedDeviceIndicator*( + dpy: PDisplay, + deviceSpec, ledClass, ledID: int16, + name: Atom, + changeState, state, createNewMap: bool, + pMap: PXkbIndicatorMapPtr, +): bool {.libx11c, importc: "XkbSetNamedDeviceIndicator".} + +proc XkbLockModifiers*( + dpy: PDisplay, deviceSpec, affect, values: int16 +): bool {.libx11c, importc: "XkbLockModifiers".} + +proc XkbLatchModifiers*( + dpy: PDisplay, deviceSpec, affect, values: int16 +): bool {.libx11c, importc: "XkbLatchModifiers".} + +proc XkbLockGroup*( + dpy: PDisplay, deviceSpec, group: int16 +): bool {.libx11c, importc: "XkbLockGroup".} + +proc XkbLatchGroup*( + dpy: PDisplay, deviceSpec, group: int16 +): bool {.libx11c, importc: "XkbLatchGroup".} + +proc XkbSetServerInternalMods*( + dpy: PDisplay, deviceSpec, affectReal, realValues, affectVirtual, virtualValues: int16 +): bool {.libx11c, importc: "XkbSetServerInternalMods".} + +proc XkbSetIgnoreLockMods*( + dpy: PDisplay, deviceSpec, affectReal, realValues, affectVirtual, virtualValues: int16 +): bool {.libx11c, importc: "XkbSetIgnoreLockMods".} + +proc XkbVirtualModsToReal*( + dpy: PDisplay, virtual_mask: int16, mask_rtrn: PWord +): bool {.libx11c, importc: "XkbVirtualModsToReal".} + +proc XkbComputeEffectiveMap*( + xkb: PXkbDescPtr, theType: PXkbKeyTypePtr, map_rtrn: PByte +): bool {.libx11c, importc: "XkbComputeEffectiveMap".} + +proc XkbInitCanonicalKeyTypes*( + xkb: PXkbDescPtr, which: int16, keypadVMod: int16 +): Status {.libx11c, importc: "XkbInitCanonicalKeyTypes".} + +proc XkbAllocKeyboard*(): PXkbDescPtr {.libx11c, importc: "XkbAllocKeyboard".} +proc XkbFreeKeyboard*( + xkb: PXkbDescPtr, which: int16, freeDesc: bool +) {.libx11c, importc: "XkbFreeKeyboard".} + +proc XkbAllocClientMap*( + xkb: PXkbDescPtr, which, nTypes: int16 +): Status {.libx11c, importc: "XkbAllocClientMap".} + +proc XkbAllocServerMap*( + xkb: PXkbDescPtr, which, nActions: int16 +): Status {.libx11c, importc: "XkbAllocServerMap".} + +proc XkbFreeClientMap*( + xkb: PXkbDescPtr, what: int16, freeMap: bool +) {.libx11c, importc: "XkbFreeClientMap".} + +proc XkbFreeServerMap*( + xkb: PXkbDescPtr, what: int16, freeMap: bool +) {.libx11c, importc: "XkbFreeServerMap".} + +proc XkbAddKeyType*( + xkb: PXkbDescPtr, name: Atom, map_count: int16, want_preserve: bool, num_lvls: int16 +): PXkbKeyTypePtr {.libx11c, importc: "XkbAddKeyType".} + +proc XkbAllocIndicatorMaps*( + xkb: PXkbDescPtr +): Status {.libx11c, importc: "XkbAllocIndicatorMaps".} + +proc XkbFreeIndicatorMaps*( + xkb: PXkbDescPtr +) {.libx11c, importc: "XkbFreeIndicatorMaps".} + +proc XkbGetMap*( + dpy: PDisplay, which, deviceSpec: int16 +): PXkbDescPtr {.libx11c, importc: "XkbGetMap".} + +proc XkbGetUpdatedMap*( + dpy: PDisplay, which: int16, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetUpdatedMap".} + +proc XkbGetMapChanges*( + dpy: PDisplay, xkb: PXkbDescPtr, changes: PXkbMapChangesPtr +): Status {.libx11c, importc: "XkbGetMapChanges".} + +proc XkbRefreshKeyboardMapping*( + event: PXkbMapNotifyEvent +): Status {.libx11c, importc: "XkbRefreshKeyboardMapping".} + +proc XkbGetKeyTypes*( + dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetKeyTypes".} + +proc XkbGetKeySyms*( + dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetKeySyms".} + +proc XkbGetKeyActions*( + dpy: PDisplay, first, num: int16, xkb: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetKeyActions".} + +proc XkbGetKeyBehaviors*( + dpy: PDisplay, firstKey, nKeys: int16, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetKeyBehaviors".} + +proc XkbGetVirtualMods*( + dpy: PDisplay, which: int16, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetVirtualMods".} + +proc XkbGetKeyExplicitComponents*( + dpy: PDisplay, firstKey, nKeys: int16, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetKeyExplicitComponents".} + +proc XkbGetKeyModifierMap*( + dpy: PDisplay, firstKey, nKeys: int16, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetKeyModifierMap".} + +proc XkbAllocControls*( + xkb: PXkbDescPtr, which: int16 +): Status {.libx11c, importc: "XkbAllocControls".} + +proc XkbFreeControls*( + xkb: PXkbDescPtr, which: int16, freeMap: bool +) {.libx11c, importc: "XkbFreeControls".} + +proc XkbGetControls*( + dpy: PDisplay, which: int32, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetControls".} + +proc XkbSetControls*( + dpy: PDisplay, which: int32, desc: PXkbDescPtr +): bool {.libx11c, importc: "XkbSetControls".} + +proc XkbNoteControlsChanges*( + old: PXkbControlsChangesPtr, new: PXkbControlsNotifyEvent, wanted: int16 +) {.libx11c, importc: "XkbNoteControlsChanges".} + +proc XkbGetControlsChanges*( + d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr +): Status + proc XkbChangeControls*(d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr): bool -proc XkbAllocCompatMap*(xkb: PXkbDescPtr, which, nInterpret: int16): Status{. - libx11c, importc: "XkbAllocCompatMap".} -proc XkbFreeCompatMap*(xkib: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeCompatMap".} -proc XkbGetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetCompatMap".} -proc XkbSetCompatMap*(dpy: PDisplay, which: int16, xkb: PXkbDescPtr, - updateActions: bool): bool{.libx11c, - importc: "XkbSetCompatMap".} -proc XkbAddSymInterpret*(xkb: PXkbDescPtr, si: PXkbSymInterpretPtr, - updateMap: bool, changes: PXkbChangesPtr): PXkbSymInterpretPtr{. - libx11c, importc: "XkbAddSymInterpret".} -proc XkbAllocNames*(xkb: PXkbDescPtr, which: int16, - nTotalRG, nTotalAliases: int16): Status{.libx11c, importc: "XkbAllocNames".} -proc XkbGetNames*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): Status{. - libx11c, importc: "XkbGetNames".} -proc XkbSetNames*(dpy: PDisplay, which, firstType, nTypes: int16, - desc: PXkbDescPtr): bool{.libx11c, - importc: "XkbSetNames".} -proc XkbChangeNames*(dpy: PDisplay, xkb: PXkbDescPtr, - changes: PXkbNameChangesPtr): bool{.libx11c, - importc: "XkbChangeNames".} -proc XkbFreeNames*(xkb: PXkbDescPtr, which: int16, freeMap: bool){.libx11c, importc: "XkbFreeNames".} -proc XkbGetState*(dpy: PDisplay, deviceSpec: int16, rtrnState: PXkbStatePtr): Status{. - libx11c, importc: "XkbGetState".} -proc XkbSetMap*(dpy: PDisplay, which: int16, desc: PXkbDescPtr): bool{.libx11c, importc: "XkbSetMap".} -proc XkbChangeMap*(dpy: PDisplay, desc: PXkbDescPtr, changes: PXkbMapChangesPtr): bool{. - libx11c, importc: "XkbChangeMap".} -proc XkbSetDetectableAutoRepeat*(dpy: PDisplay, detectable: bool, - supported: ptr bool): bool{.libx11c, importc: "XkbSetDetectableAutoRepeat".} -proc XkbGetDetectableAutoRepeat*(dpy: PDisplay, supported: ptr bool): bool{. - libx11c, importc: "XkbGetDetectableAutoRepeat".} -proc XkbSetAutoResetControls*(dpy: PDisplay, changes: int16, - auto_ctrls, auto_values: PWord): bool{.libx11c, importc: "XkbSetAutoResetControls".} -proc XkbGetAutoResetControls*(dpy: PDisplay, auto_ctrls, auto_ctrl_values: PWord): bool{. - libx11c, importc: "XkbGetAutoResetControls".} -proc XkbSetPerClientControls*(dpy: PDisplay, change: int16, values: PWord): bool{. - libx11c, importc: "XkbSetPerClientControls".} -proc XkbGetPerClientControls*(dpy: PDisplay, ctrls: PWord): bool{.libx11c, importc: "XkbGetPerClientControls".} -proc XkbCopyKeyType*(`from`, into: PXkbKeyTypePtr): Status{.libx11c, importc: "XkbCopyKeyType".} -proc XkbCopyKeyTypes*(`from`, into: PXkbKeyTypePtr, num_types: int16): Status{. - libx11c, importc: "XkbCopyKeyTypes".} -proc XkbResizeKeyType*(xkb: PXkbDescPtr, type_ndx, map_count: int16, - want_preserve: bool, new_num_lvls: int16): Status{. - libx11c, importc: "XkbResizeKeyType".} -proc XkbResizeKeySyms*(desc: PXkbDescPtr, forKey, symsNeeded: int16): PKeySym{. - libx11c, importc: "XkbResizeKeySyms".} -proc XkbResizeKeyActions*(desc: PXkbDescPtr, forKey, actsNeeded: int16): PXkbAction{. - libx11c, importc: "XkbResizeKeyActions".} -proc XkbChangeTypesOfKey*(xkb: PXkbDescPtr, key, num_groups: int16, - groups: int16, newTypes: ptr int16, - pChanges: PXkbMapChangesPtr): Status{.libx11c, importc: "XkbChangeTypesOfKey".} +proc XkbAllocCompatMap*( + xkb: PXkbDescPtr, which, nInterpret: int16 +): Status {.libx11c, importc: "XkbAllocCompatMap".} + +proc XkbFreeCompatMap*( + xkib: PXkbDescPtr, which: int16, freeMap: bool +) {.libx11c, importc: "XkbFreeCompatMap".} + +proc XkbGetCompatMap*( + dpy: PDisplay, which: int16, xkb: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetCompatMap".} + +proc XkbSetCompatMap*( + dpy: PDisplay, which: int16, xkb: PXkbDescPtr, updateActions: bool +): bool {.libx11c, importc: "XkbSetCompatMap".} + +proc XkbAddSymInterpret*( + xkb: PXkbDescPtr, si: PXkbSymInterpretPtr, updateMap: bool, changes: PXkbChangesPtr +): PXkbSymInterpretPtr {.libx11c, importc: "XkbAddSymInterpret".} + +proc XkbAllocNames*( + xkb: PXkbDescPtr, which: int16, nTotalRG, nTotalAliases: int16 +): Status {.libx11c, importc: "XkbAllocNames".} + +proc XkbGetNames*( + dpy: PDisplay, which: int16, desc: PXkbDescPtr +): Status {.libx11c, importc: "XkbGetNames".} + +proc XkbSetNames*( + dpy: PDisplay, which, firstType, nTypes: int16, desc: PXkbDescPtr +): bool {.libx11c, importc: "XkbSetNames".} + +proc XkbChangeNames*( + dpy: PDisplay, xkb: PXkbDescPtr, changes: PXkbNameChangesPtr +): bool {.libx11c, importc: "XkbChangeNames".} + +proc XkbFreeNames*( + xkb: PXkbDescPtr, which: int16, freeMap: bool +) {.libx11c, importc: "XkbFreeNames".} + +proc XkbGetState*( + dpy: PDisplay, deviceSpec: int16, rtrnState: PXkbStatePtr +): Status {.libx11c, importc: "XkbGetState".} + +proc XkbSetMap*( + dpy: PDisplay, which: int16, desc: PXkbDescPtr +): bool {.libx11c, importc: "XkbSetMap".} + +proc XkbChangeMap*( + dpy: PDisplay, desc: PXkbDescPtr, changes: PXkbMapChangesPtr +): bool {.libx11c, importc: "XkbChangeMap".} + +proc XkbSetDetectableAutoRepeat*( + dpy: PDisplay, detectable: bool, supported: ptr bool +): bool {.libx11c, importc: "XkbSetDetectableAutoRepeat".} + +proc XkbGetDetectableAutoRepeat*( + dpy: PDisplay, supported: ptr bool +): bool {.libx11c, importc: "XkbGetDetectableAutoRepeat".} + +proc XkbSetAutoResetControls*( + dpy: PDisplay, changes: int16, auto_ctrls, auto_values: PWord +): bool {.libx11c, importc: "XkbSetAutoResetControls".} + +proc XkbGetAutoResetControls*( + dpy: PDisplay, auto_ctrls, auto_ctrl_values: PWord +): bool {.libx11c, importc: "XkbGetAutoResetControls".} + +proc XkbSetPerClientControls*( + dpy: PDisplay, change: int16, values: PWord +): bool {.libx11c, importc: "XkbSetPerClientControls".} + +proc XkbGetPerClientControls*( + dpy: PDisplay, ctrls: PWord +): bool {.libx11c, importc: "XkbGetPerClientControls".} + +proc XkbCopyKeyType*( + `from`, into: PXkbKeyTypePtr +): Status {.libx11c, importc: "XkbCopyKeyType".} + +proc XkbCopyKeyTypes*( + `from`, into: PXkbKeyTypePtr, num_types: int16 +): Status {.libx11c, importc: "XkbCopyKeyTypes".} + +proc XkbResizeKeyType*( + xkb: PXkbDescPtr, type_ndx, map_count: int16, want_preserve: bool, new_num_lvls: int16 +): Status {.libx11c, importc: "XkbResizeKeyType".} + +proc XkbResizeKeySyms*( + desc: PXkbDescPtr, forKey, symsNeeded: int16 +): PKeySym {.libx11c, importc: "XkbResizeKeySyms".} + +proc XkbResizeKeyActions*( + desc: PXkbDescPtr, forKey, actsNeeded: int16 +): PXkbAction {.libx11c, importc: "XkbResizeKeyActions".} + +proc XkbChangeTypesOfKey*( + xkb: PXkbDescPtr, + key, num_groups: int16, + groups: int16, + newTypes: ptr int16, + pChanges: PXkbMapChangesPtr, +): Status {.libx11c, importc: "XkbChangeTypesOfKey".} -proc XkbListComponents*(dpy: PDisplay, deviceSpec: int16, - ptrns: PXkbComponentNamesPtr, max_inout: ptr int16): PXkbComponentListPtr{. - libx11c, importc: "XkbListComponents".} -proc XkbFreeComponentList*(list: PXkbComponentListPtr){.libx11c, - importc: "XkbFreeComponentList".} -proc XkbGetKeyboard*(dpy: PDisplay, which, deviceSpec: int16): PXkbDescPtr{. - libx11c, importc: "XkbGetKeyboard".} -proc XkbGetKeyboardByName*(dpy: PDisplay, deviceSpec: int16, - names: PXkbComponentNamesPtr, want, need: int16, - load: bool): PXkbDescPtr{.libx11c, - importc: "XkbGetKeyboardByName".} +proc XkbListComponents*( + dpy: PDisplay, deviceSpec: int16, ptrns: PXkbComponentNamesPtr, max_inout: ptr int16 +): PXkbComponentListPtr {.libx11c, importc: "XkbListComponents".} + +proc XkbFreeComponentList*( + list: PXkbComponentListPtr +) {.libx11c, importc: "XkbFreeComponentList".} + +proc XkbGetKeyboard*( + dpy: PDisplay, which, deviceSpec: int16 +): PXkbDescPtr {.libx11c, importc: "XkbGetKeyboard".} + +proc XkbGetKeyboardByName*( + dpy: PDisplay, + deviceSpec: int16, + names: PXkbComponentNamesPtr, + want, need: int16, + load: bool, +): PXkbDescPtr {.libx11c, importc: "XkbGetKeyboardByName".} -proc XkbKeyTypesForCoreSymbols*(xkb: PXkbDescPtr, - map_width: int16, # keyboard device - core_syms: PKeySym, # always mapWidth symbols - protected: int16, # explicit key types - types_inout: ptr int16, # always four type indices - xkb_syms_rtrn: PKeySym): int16{.libx11c, importc: "XkbKeyTypesForCoreSymbols".} - # must have enough space -proc XkbApplyCompatMapToKey*(xkb: PXkbDescPtr, - key: KeyCode, # key to be updated - changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyCompatMapToKey".} - # resulting changes to map -proc XkbUpdateMapFromCore*(xkb: PXkbDescPtr, - first_key: KeyCode, # first changed key - num_keys, - map_width: int16, - core_keysyms: PKeySym, # symbols `from` core keymap - changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbUpdateMapFromCore".} +proc XkbKeyTypesForCoreSymbols*( + xkb: PXkbDescPtr, + map_width: int16, # keyboard device + core_syms: PKeySym, # always mapWidth symbols + protected: int16, # explicit key types + types_inout: ptr int16, # always four type indices + xkb_syms_rtrn: PKeySym, +): int16 {.libx11c, importc: "XkbKeyTypesForCoreSymbols".} # must have enough space + +proc XkbApplyCompatMapToKey*( + xkb: PXkbDescPtr, + key: KeyCode, # key to be updated + changes: PXkbChangesPtr, +): bool {.libx11c, importc: "XkbApplyCompatMapToKey".} # resulting changes to map + +proc XkbUpdateMapFromCore*( + xkb: PXkbDescPtr, + first_key: KeyCode, # first changed key + num_keys, map_width: int16, + core_keysyms: PKeySym, # symbols `from` core keymap + changes: PXkbChangesPtr, +): bool {.libx11c, importc: "XkbUpdateMapFromCore".} + +proc XkbAddDeviceLedInfo*( + devi: PXkbDeviceInfoPtr, ledClass, ledId: int16 +): PXkbDeviceLedInfoPtr {.libx11c, importc: "XkbAddDeviceLedInfo".} + +proc XkbResizeDeviceButtonActions*( + devi: PXkbDeviceInfoPtr, newTotal: int16 +): Status {.libx11c, importc: "XkbResizeDeviceButtonActions".} -proc XkbAddDeviceLedInfo*(devi: PXkbDeviceInfoPtr, ledClass, ledId: int16): PXkbDeviceLedInfoPtr{. - libx11c, importc: "XkbAddDeviceLedInfo".} -proc XkbResizeDeviceButtonActions*(devi: PXkbDeviceInfoPtr, newTotal: int16): Status{. - libx11c, importc: "XkbResizeDeviceButtonActions".} -proc XkbAllocDeviceInfo*(deviceSpec, nButtons, szLeds: int16): PXkbDeviceInfoPtr{. - libx11c, importc: "XkbAllocDeviceInfo".} -proc XkbFreeDeviceInfo*(devi: PXkbDeviceInfoPtr, which: int16, freeDevI: bool){. - libx11c, importc: "XkbFreeDeviceInfo".} -proc XkbNoteDeviceChanges*(old: PXkbDeviceChangesPtr, - new: PXkbExtensionDeviceNotifyEvent, wanted: int16){. - libx11c, importc: "XkbNoteDeviceChanges".} -proc XkbGetDeviceInfo*(dpy: PDisplay, which, deviceSpec, ledClass, ledID: int16): PXkbDeviceInfoPtr{. - libx11c, importc: "XkbGetDeviceInfo".} -proc XkbGetDeviceInfoChanges*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, - changes: PXkbDeviceChangesPtr): Status{.libx11c, importc: "XkbGetDeviceInfoChanges".} -proc XkbGetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, - all: bool, first, nBtns: int16): Status{.libx11c, importc: "XkbGetDeviceButtonActions".} -proc XkbGetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, - ledClass, ledId, which: int16): Status{.libx11c, importc: "XkbGetDeviceLedInfo".} -proc XkbSetDeviceInfo*(dpy: PDisplay, which: int16, devi: PXkbDeviceInfoPtr): bool{. - libx11c, importc: "XkbSetDeviceInfo".} -proc XkbChangeDeviceInfo*(dpy: PDisplay, desc: PXkbDeviceInfoPtr, - changes: PXkbDeviceChangesPtr): bool{.libx11c, importc: "XkbChangeDeviceInfo".} -proc XkbSetDeviceLedInfo*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, - ledClass, ledID, which: int16): bool{.libx11c, importc: "XkbSetDeviceLedInfo".} -proc XkbSetDeviceButtonActions*(dpy: PDisplay, devi: PXkbDeviceInfoPtr, - first, nBtns: int16): bool{.libx11c, importc: "XkbSetDeviceButtonActions".} +proc XkbAllocDeviceInfo*( + deviceSpec, nButtons, szLeds: int16 +): PXkbDeviceInfoPtr {.libx11c, importc: "XkbAllocDeviceInfo".} + +proc XkbFreeDeviceInfo*( + devi: PXkbDeviceInfoPtr, which: int16, freeDevI: bool +) {.libx11c, importc: "XkbFreeDeviceInfo".} + +proc XkbNoteDeviceChanges*( + old: PXkbDeviceChangesPtr, new: PXkbExtensionDeviceNotifyEvent, wanted: int16 +) {.libx11c, importc: "XkbNoteDeviceChanges".} + +proc XkbGetDeviceInfo*( + dpy: PDisplay, which, deviceSpec, ledClass, ledID: int16 +): PXkbDeviceInfoPtr {.libx11c, importc: "XkbGetDeviceInfo".} + +proc XkbGetDeviceInfoChanges*( + dpy: PDisplay, devi: PXkbDeviceInfoPtr, changes: PXkbDeviceChangesPtr +): Status {.libx11c, importc: "XkbGetDeviceInfoChanges".} + +proc XkbGetDeviceButtonActions*( + dpy: PDisplay, devi: PXkbDeviceInfoPtr, all: bool, first, nBtns: int16 +): Status {.libx11c, importc: "XkbGetDeviceButtonActions".} + +proc XkbGetDeviceLedInfo*( + dpy: PDisplay, devi: PXkbDeviceInfoPtr, ledClass, ledId, which: int16 +): Status {.libx11c, importc: "XkbGetDeviceLedInfo".} -proc XkbToControl*(c: int8): int8{.libx11c, - importc: "XkbToControl".} +proc XkbSetDeviceInfo*( + dpy: PDisplay, which: int16, devi: PXkbDeviceInfoPtr +): bool {.libx11c, importc: "XkbSetDeviceInfo".} + +proc XkbChangeDeviceInfo*( + dpy: PDisplay, desc: PXkbDeviceInfoPtr, changes: PXkbDeviceChangesPtr +): bool {.libx11c, importc: "XkbChangeDeviceInfo".} + +proc XkbSetDeviceLedInfo*( + dpy: PDisplay, devi: PXkbDeviceInfoPtr, ledClass, ledID, which: int16 +): bool {.libx11c, importc: "XkbSetDeviceLedInfo".} -proc XkbSetDebuggingFlags*(dpy: PDisplay, mask, flags: int16, msg: cstring, - ctrls_mask, ctrls, rtrn_flags, rtrn_ctrls: int16): bool{. - libx11c, importc: "XkbSetDebuggingFlags".} -proc XkbApplyVirtualModChanges*(xkb: PXkbDescPtr, changed: int16, - changes: PXkbChangesPtr): bool{.libx11c, importc: "XkbApplyVirtualModChanges".} +proc XkbSetDeviceButtonActions*( + dpy: PDisplay, devi: PXkbDeviceInfoPtr, first, nBtns: int16 +): bool {.libx11c, importc: "XkbSetDeviceButtonActions".} + +proc XkbToControl*(c: int8): int8 {.libx11c, importc: "XkbToControl".} + +proc XkbSetDebuggingFlags*( + dpy: PDisplay, + mask, flags: int16, + msg: cstring, + ctrls_mask, ctrls, rtrn_flags, rtrn_ctrls: int16, +): bool {.libx11c, importc: "XkbSetDebuggingFlags".} + +proc XkbApplyVirtualModChanges*( + xkb: PXkbDescPtr, changed: int16, changes: PXkbChangesPtr +): bool {.libx11c, importc: "XkbApplyVirtualModChanges".} # implementation @@ -641,18 +874,21 @@ ##define XkbNoteIndicatorStateChanges(o,n,w) ((o)->state_changes|=((n)->state_changes&(w))) o.state_changes = o.state_changes or (n.state_changes and (w)) -proc XkbGetIndicatorMapChanges(d: PDisplay, x: PXkbDescPtr, - c: PXkbIndicatorChangesPtr): Status = +proc XkbGetIndicatorMapChanges( + d: PDisplay, x: PXkbDescPtr, c: PXkbIndicatorChangesPtr +): Status = ##define XkbGetIndicatorMapChanges(d,x,c) (XkbGetIndicatorMap((d),(c)->map_changes,x) result = XkbGetIndicatorMap(d, c.map_changes, x) -proc XkbChangeIndicatorMaps(d: PDisplay, x: PXkbDescPtr, - c: PXkbIndicatorChangesPtr): bool = +proc XkbChangeIndicatorMaps( + d: PDisplay, x: PXkbDescPtr, c: PXkbIndicatorChangesPtr +): bool = ##define XkbChangeIndicatorMaps(d,x,c) (XkbSetIndicatorMap((d),(c)->map_changes,x)) result = XkbSetIndicatorMap(d, c.map_changes, x) -proc XkbGetControlsChanges(d: PDisplay, x: PXkbDescPtr, - c: PXkbControlsChangesPtr): Status = +proc XkbGetControlsChanges( + d: PDisplay, x: PXkbDescPtr, c: PXkbControlsChangesPtr +): Status = ##define XkbGetControlsChanges(d,x,c) XkbGetControls(d,(c)->changed_ctrls,x) result = XkbGetControls(d, c.changed_ctrls, x) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xlib.nim --- a/semicongine/thirdparty/x11/xlib.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xlib.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,6 +1,4 @@ - -import - x +import x include "x11pragma.nim" @@ -16,6 +14,7 @@ Pcuchar* = cstring Pcuint* = ptr cuint Pcushort* = ptr uint16 + # Automatically converted by H2Pas 0.99.15 from xlib.h # The following command line parameters were used: # -p @@ -25,8 +24,7 @@ # -c # xlib.h -const - XlibSpecificationRelease* = 6 +const XlibSpecificationRelease* = 6 type PXPointer* = ptr XPointer @@ -44,27 +42,27 @@ type PPXExtData* = ptr PXExtData PXExtData* = ptr XExtData - XExtData*{.final.} = object + XExtData* {.final.} = object number*: cint next*: PXExtData - free_private*: proc (extension: PXExtData): cint{.cdecl.} + free_private*: proc(extension: PXExtData): cint {.cdecl.} private_data*: XPointer PXExtCodes* = ptr XExtCodes - XExtCodes*{.final.} = object + XExtCodes* {.final.} = object extension*: cint major_opcode*: cint first_event*: cint first_error*: cint PXPixmapFormatValues* = ptr XPixmapFormatValues - XPixmapFormatValues*{.final.} = object + XPixmapFormatValues* {.final.} = object depth*: cint bits_per_pixel*: cint scanline_pad*: cint PXGCValues* = ptr XGCValues - XGCValues*{.final.} = object + XGCValues* {.final.} = object function*: cint plane_mask*: culong foreground*: culong @@ -90,11 +88,11 @@ dashes*: cchar PXGC* = ptr XGC - XGC*{.final.} = object + XGC* {.final.} = object GC* = PXGC PGC* = ptr GC PVisual* = ptr Visual - Visual*{.final.} = object + Visual* {.final.} = object ext_data*: PXExtData visualid*: VisualID c_class*: cint @@ -103,16 +101,16 @@ map_entries*: cint PDepth* = ptr Depth - Depth*{.final.} = object + Depth* {.final.} = object depth*: cint nvisuals*: cint visuals*: PVisual PXDisplay* = ptr XDisplay - XDisplay*{.final.} = object + XDisplay* {.final.} = object PScreen* = ptr Screen - Screen*{.final.} = object + Screen* {.final.} = object ext_data*: PXExtData display*: PXDisplay root*: Window @@ -132,14 +130,14 @@ root_input_mask*: clong PScreenFormat* = ptr ScreenFormat - ScreenFormat*{.final.} = object + ScreenFormat* {.final.} = object ext_data*: PXExtData depth*: cint bits_per_pixel*: cint scanline_pad*: cint PXSetWindowAttributes* = ptr XSetWindowAttributes - XSetWindowAttributes*{.final.} = object + XSetWindowAttributes* {.final.} = object background_pixmap*: Pixmap background_pixel*: culong border_pixmap*: Pixmap @@ -157,7 +155,7 @@ cursor*: Cursor PXWindowAttributes* = ptr XWindowAttributes - XWindowAttributes*{.final.} = object + XWindowAttributes* {.final.} = object x*, y*: cint width*, height*: cint border_width*: cint @@ -181,33 +179,42 @@ screen*: PScreen PXHostAddress* = ptr XHostAddress - XHostAddress*{.final.} = object + XHostAddress* {.final.} = object family*: cint len*: cint address*: cstring PXServerInterpretedAddress* = ptr XServerInterpretedAddress - XServerInterpretedAddress*{.final.} = object + XServerInterpretedAddress* {.final.} = object typelength*: cint valuelength*: cint theType*: cstring value*: cstring PXImage* = ptr XImage - F*{.final.} = object - create_image*: proc (para1: PXDisplay, para2: PVisual, para3: cuint, - para4: cint, para5: cint, para6: cstring, para7: cuint, - para8: cuint, para9: cint, para10: cint): PXImage{. - cdecl.} - destroy_image*: proc (para1: PXImage): cint{.cdecl.} - get_pixel*: proc (para1: PXImage, para2: cint, para3: cint): culong{.cdecl.} - put_pixel*: proc (para1: PXImage, para2: cint, para3: cint, para4: culong): cint{. - cdecl.} - sub_image*: proc (para1: PXImage, para2: cint, para3: cint, para4: cuint, - para5: cuint): PXImage{.cdecl.} - add_pixel*: proc (para1: PXImage, para2: clong): cint{.cdecl.} + F* {.final.} = object + create_image*: proc( + para1: PXDisplay, + para2: PVisual, + para3: cuint, + para4: cint, + para5: cint, + para6: cstring, + para7: cuint, + para8: cuint, + para9: cint, + para10: cint, + ): PXImage {.cdecl.} + destroy_image*: proc(para1: PXImage): cint {.cdecl.} + get_pixel*: proc(para1: PXImage, para2: cint, para3: cint): culong {.cdecl.} + put_pixel*: + proc(para1: PXImage, para2: cint, para3: cint, para4: culong): cint {.cdecl.} + sub_image*: proc( + para1: PXImage, para2: cint, para3: cint, para4: cuint, para5: cuint + ): PXImage {.cdecl.} + add_pixel*: proc(para1: PXImage, para2: clong): cint {.cdecl.} - XImage*{.final.} = object + XImage* {.final.} = object width*, height*: cint xoffset*: cint format*: cint @@ -226,7 +233,7 @@ f*: F PXWindowChanges* = ptr XWindowChanges - XWindowChanges*{.final.} = object + XWindowChanges* {.final.} = object x*, y*: cint width*, height*: cint border_width*: cint @@ -234,33 +241,33 @@ stack_mode*: cint PXColor* = ptr XColor - XColor*{.final.} = object + XColor* {.final.} = object pixel*: culong red*, green*, blue*: cushort flags*: cchar pad*: cchar PXSegment* = ptr XSegment - XSegment*{.final.} = object + XSegment* {.final.} = object x1*, y1*, x2*, y2*: cshort PXPoint* = ptr XPoint - XPoint*{.final.} = object + XPoint* {.final.} = object x*, y*: cshort PXRectangle* = ptr XRectangle - XRectangle*{.final.} = object + XRectangle* {.final.} = object x*, y*: cshort width*, height*: cushort PXArc* = ptr XArc - XArc*{.final.} = object + XArc* {.final.} = object x*, y*: cshort width*, height*: cushort angle1*, angle2*: cshort PXKeyboardControl* = ptr XKeyboardControl - XKeyboardControl*{.final.} = object + XKeyboardControl* {.final.} = object key_click_percent*: cint bell_percent*: cint bell_pitch*: cint @@ -271,21 +278,21 @@ auto_repeat_mode*: cint PXKeyboardState* = ptr XKeyboardState - XKeyboardState*{.final.} = object + XKeyboardState* {.final.} = object key_click_percent*: cint bell_percent*: cint bell_pitch*, bell_duration*: cuint led_mask*: culong global_auto_repeat*: cint - auto_repeats*: array[0..31, cchar] + auto_repeats*: array[0 .. 31, cchar] PXTimeCoord* = ptr XTimeCoord - XTimeCoord*{.final.} = object + XTimeCoord* {.final.} = object time*: Time x*, y*: cshort PXModifierKeymap* = ptr XModifierKeymap - XModifierKeymap*{.final.} = object + XModifierKeymap* {.final.} = object max_keypermod*: cint modifiermap*: PKeyCode @@ -293,13 +300,13 @@ Display* = XDisplay PXPrivate* = ptr Private - Private*{.final.} = object + Private* {.final.} = object PXrmHashBucketRec* = ptr XrmHashBucketRec - XrmHashBucketRec*{.final.} = object + XrmHashBucketRec* {.final.} = object PXPrivDisplay* = ptr XPrivDisplay - XPrivDisplay*{.final.} = object + XPrivDisplay* {.final.} = object ext_data*: PXExtData private1*: PXPrivate fd*: cint @@ -311,7 +318,7 @@ private4*: XID private5*: XID private6*: cint - resource_alloc*: proc (para1: PXDisplay): XID{.cdecl.} + resource_alloc*: proc(para1: PXDisplay): XID {.cdecl.} byte_order*: cint bitmap_unit*: cint bitmap_pad*: cint @@ -330,7 +337,7 @@ private14*: XPointer max_request_size*: cunsigned db*: PXrmHashBucketRec - private15*: proc (para1: PXDisplay): cint{.cdecl.} + private15*: proc(para1: PXDisplay): cint {.cdecl.} display_name*: cstring default_screen*: cint nscreens*: cint @@ -345,7 +352,7 @@ xdefaults*: cstring PXKeyEvent* = ptr XKeyEvent - XKeyEvent*{.final.} = object + XKeyEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -367,7 +374,7 @@ XKeyReleasedEvent* = XKeyEvent PXButtonEvent* = ptr XButtonEvent - XButtonEvent*{.final.} = object + XButtonEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -389,7 +396,7 @@ XButtonReleasedEvent* = XButtonEvent PXMotionEvent* = ptr XMotionEvent - XMotionEvent*{.final.} = object + XMotionEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -408,7 +415,7 @@ XPointerMovedEvent* = XMotionEvent PXCrossingEvent* = ptr XCrossingEvent - XCrossingEvent*{.final.} = object + XCrossingEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -432,7 +439,7 @@ XLeaveWindowEvent* = XCrossingEvent PXFocusChangeEvent* = ptr XFocusChangeEvent - XFocusChangeEvent*{.final.} = object + XFocusChangeEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -448,16 +455,16 @@ XFocusOutEvent* = XFocusChangeEvent PXKeymapEvent* = ptr XKeymapEvent - XKeymapEvent*{.final.} = object + XKeymapEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool display*: PDisplay window*: Window - key_vector*: array[0..31, cchar] + key_vector*: array[0 .. 31, cchar] PXExposeEvent* = ptr XExposeEvent - XExposeEvent*{.final.} = object + XExposeEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -468,7 +475,7 @@ count*: cint PXGraphicsExposeEvent* = ptr XGraphicsExposeEvent - XGraphicsExposeEvent*{.final.} = object + XGraphicsExposeEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -481,7 +488,7 @@ minor_code*: cint PXNoExposeEvent* = ptr XNoExposeEvent - XNoExposeEvent*{.final.} = object + XNoExposeEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -491,7 +498,7 @@ minor_code*: cint PXVisibilityEvent* = ptr XVisibilityEvent - XVisibilityEvent*{.final.} = object + XVisibilityEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -500,7 +507,7 @@ state*: cint PXCreateWindowEvent* = ptr XCreateWindowEvent - XCreateWindowEvent*{.final.} = object + XCreateWindowEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -513,7 +520,7 @@ override_redirect*: XBool PXDestroyWindowEvent* = ptr XDestroyWindowEvent - XDestroyWindowEvent*{.final.} = object + XDestroyWindowEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -522,7 +529,7 @@ window*: Window PXUnmapEvent* = ptr XUnmapEvent - XUnmapEvent*{.final.} = object + XUnmapEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -532,7 +539,7 @@ from_configure*: XBool PXMapEvent* = ptr XMapEvent - XMapEvent*{.final.} = object + XMapEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -542,7 +549,7 @@ override_redirect*: XBool PXMapRequestEvent* = ptr XMapRequestEvent - XMapRequestEvent*{.final.} = object + XMapRequestEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -551,7 +558,7 @@ window*: Window PXReparentEvent* = ptr XReparentEvent - XReparentEvent*{.final.} = object + XReparentEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -563,7 +570,7 @@ override_redirect*: XBool PXConfigureEvent* = ptr XConfigureEvent - XConfigureEvent*{.final.} = object + XConfigureEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -577,7 +584,7 @@ override_redirect*: XBool PXGravityEvent* = ptr XGravityEvent - XGravityEvent*{.final.} = object + XGravityEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -587,7 +594,7 @@ x*, y*: cint PXResizeRequestEvent* = ptr XResizeRequestEvent - XResizeRequestEvent*{.final.} = object + XResizeRequestEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -596,7 +603,7 @@ width*, height*: cint PXConfigureRequestEvent* = ptr XConfigureRequestEvent - XConfigureRequestEvent*{.final.} = object + XConfigureRequestEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -611,7 +618,7 @@ value_mask*: culong PXCirculateEvent* = ptr XCirculateEvent - XCirculateEvent*{.final.} = object + XCirculateEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -621,7 +628,7 @@ place*: cint PXCirculateRequestEvent* = ptr XCirculateRequestEvent - XCirculateRequestEvent*{.final.} = object + XCirculateRequestEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -631,7 +638,7 @@ place*: cint PXPropertyEvent* = ptr XPropertyEvent - XPropertyEvent*{.final.} = object + XPropertyEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -642,7 +649,7 @@ state*: cint PXSelectionClearEvent* = ptr XSelectionClearEvent - XSelectionClearEvent*{.final.} = object + XSelectionClearEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -652,7 +659,7 @@ time*: Time PXSelectionRequestEvent* = ptr XSelectionRequestEvent - XSelectionRequestEvent*{.final.} = object + XSelectionRequestEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -665,7 +672,7 @@ time*: Time PXSelectionEvent* = ptr XSelectionEvent - XSelectionEvent*{.final.} = object + XSelectionEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -677,7 +684,7 @@ time*: Time PXColormapEvent* = ptr XColormapEvent - XColormapEvent*{.final.} = object + XColormapEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -694,7 +701,7 @@ s*: array[10, cshort] l*: array[5, clong] - XClientMessageEvent*{.final.} = object + XClientMessageEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -705,7 +712,7 @@ data*: XClientMessageData PXMappingEvent* = ptr XMappingEvent - XMappingEvent*{.final.} = object + XMappingEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -716,7 +723,7 @@ count*: cint PXErrorEvent* = ptr XErrorEvent - XErrorEvent*{.final.} = object + XErrorEvent* {.final.} = object theType*: cint display*: PDisplay resourceid*: XID @@ -726,7 +733,7 @@ minor_code*: char PXAnyEvent* = ptr XAnyEvent - XAnyEvent*{.final.} = object + XAnyEvent* {.final.} = object theType*: cint serial*: culong send_event*: XBool @@ -734,27 +741,27 @@ window*: Window PXGenericEvent* = ptr XGenericEvent - XGenericEvent*{.final.} = object - theType*: cint ## of event. Always GenericEvent - serial*: culong ## # of last request processed + XGenericEvent* {.final.} = object + theType*: cint ## of event. Always GenericEvent + serial*: culong ## # of last request processed send_event*: XBool ## true if from SendEvent request display*: PDisplay ## Display the event was read from - extension*: cint ## major opcode of extension that caused the event - evtype*: cint ## actual event type. + extension*: cint ## major opcode of extension that caused the event + evtype*: cint ## actual event type. PXGenericEventCookie* = ptr XGenericEventCookie - XGenericEventCookie*{.final.} = object - theType*: cint ## of event. Always GenericEvent - serial*: culong ## # of last request processed + XGenericEventCookie* {.final.} = object + theType*: cint ## of event. Always GenericEvent + serial*: culong ## # of last request processed send_event*: XBool ## true if from SendEvent request display*: PDisplay ## Display the event was read from - extension*: cint ## major opcode of extension that caused the event - evtype*: cint ## actual event type. + extension*: cint ## major opcode of extension that caused the event + evtype*: cint ## actual event type. cookie*: cuint data*: pointer PXEvent* = ptr XEvent - XEvent*{.final, union.} = object + XEvent* {.final, union.} = object theType*: cint xany*: XAnyEvent xkey*: XKeyEvent @@ -789,12 +796,11 @@ xkeymap*: XKeymapEvent xgeneric*: XGenericEvent xcookie*: XGenericEventCookie - pad: array[0..23, clong] - + pad: array[0 .. 23, clong] type PXCharStruct* = ptr XCharStruct - XCharStruct*{.final.} = object + XCharStruct* {.final.} = object lbearing*: cshort rbearing*: cshort width*: cshort @@ -803,14 +809,14 @@ attributes*: cushort PXFontProp* = ptr XFontProp - XFontProp*{.final.} = object + XFontProp* {.final.} = object name*: Atom card32*: culong PPPXFontStruct* = ptr PPXFontStruct PPXFontStruct* = ptr PXFontStruct PXFontStruct* = ptr XFontStruct - XFontStruct*{.final.} = object + XFontStruct* {.final.} = object ext_data*: PXExtData fid*: Font direction*: cunsigned @@ -829,57 +835,58 @@ descent*: cint PXTextItem* = ptr XTextItem - XTextItem*{.final.} = object + XTextItem* {.final.} = object chars*: cstring nchars*: cint delta*: cint font*: Font PXChar2b* = ptr XChar2b - XChar2b*{.final.} = object + XChar2b* {.final.} = object byte1*: char byte2*: char PXTextItem16* = ptr XTextItem16 - XTextItem16*{.final.} = object + XTextItem16* {.final.} = object chars*: PXChar2b nchars*: cint delta*: cint font*: Font PXEDataObject* = ptr XEDataObject - XEDataObject*{.final.} = object - display*: PDisplay # case longint of - # 0 : ( display : PDisplay ); - # 1 : ( gc : GC ); - # 2 : ( visual : PVisual ); - # 3 : ( screen : PScreen ); - # 4 : ( pixmap_format : PScreenFormat ); - # 5 : ( font : PXFontStruct ); + XEDataObject* {.final.} = object + display*: PDisplay + # case longint of + # 0 : ( display : PDisplay ); + # 1 : ( gc : GC ); + # 2 : ( visual : PVisual ); + # 3 : ( screen : PScreen ); + # 4 : ( pixmap_format : PScreenFormat ); + # 5 : ( font : PXFontStruct ); PXFontSetExtents* = ptr XFontSetExtents - XFontSetExtents*{.final.} = object + XFontSetExtents* {.final.} = object max_ink_extent*: XRectangle max_logical_extent*: XRectangle PXOM* = ptr XOM - XOM*{.final.} = object + XOM* {.final.} = object PXOC* = ptr XOC - XOC*{.final.} = object + XOC* {.final.} = object PXFontSet* = ptr XFontSet XFontSet* = PXOC PXmbTextItem* = ptr XmbTextItem - XmbTextItem*{.final.} = object + XmbTextItem* {.final.} = object chars*: cstring nchars*: cint delta*: cint font_set*: XFontSet PXwcTextItem* = ptr XwcTextItem - XwcTextItem*{.final.} = object + XwcTextItem* {.final.} = object chars*: PWideChar #wchar_t* nchars*: cint delta*: cint @@ -899,42 +906,44 @@ type PXOMCharSetList* = ptr XOMCharSetList - XOMCharSetList*{.final.} = object + XOMCharSetList* {.final.} = object charset_count*: cint charset_list*: PPChar PXOrientation* = ptr XOrientation XOrientation* = enum - XOMOrientation_LTR_TTB, XOMOrientation_RTL_TTB, XOMOrientation_TTB_LTR, - XOMOrientation_TTB_RTL, XOMOrientation_Context + XOMOrientation_LTR_TTB + XOMOrientation_RTL_TTB + XOMOrientation_TTB_LTR + XOMOrientation_TTB_RTL + XOMOrientation_Context PXOMOrientation* = ptr XOMOrientation - XOMOrientation*{.final.} = object + XOMOrientation* {.final.} = object num_orientation*: cint orientation*: PXOrientation PXOMFontInfo* = ptr XOMFontInfo - XOMFontInfo*{.final.} = object + XOMFontInfo* {.final.} = object num_font*: cint font_struct_list*: ptr PXFontStruct font_name_list*: PPChar - XIM*{.final.} = ptr object + XIM* {.final.} = ptr object - XIC*{.final.} = ptr object + XIC* {.final.} = ptr object - XIMProc* = proc (para1: XIM, para2: XPointer, para3: XPointer){.cdecl.} + XIMProc* = proc(para1: XIM, para2: XPointer, para3: XPointer) {.cdecl.} - XICProc* = proc (para1: XIC, para2: XPointer, para3: XPointer): XBool{. - cdecl.} + XICProc* = proc(para1: XIC, para2: XPointer, para3: XPointer): XBool {.cdecl.} - XIDProc* = proc (para1: PDisplay, para2: XPointer, para3: XPointer){.cdecl.} + XIDProc* = proc(para1: PDisplay, para2: XPointer, para3: XPointer) {.cdecl.} PXIMStyle* = ptr XIMStyle XIMStyle* = culong PXIMStyles* = ptr XIMStyles - XIMStyles*{.final.} = object + XIMStyles* {.final.} = object count_styles*: cushort supported_styles*: PXIMStyle @@ -990,7 +999,7 @@ XNHotKeyState* = "hotKeyState" XNPreeditState* = "preeditState" XNSeparatorofNestedList* = "separatorofNestedList" - XBufferOverflow* = - (1) + XBufferOverflow* = -(1) XLookupNone* = 1 XLookupChars* = 2 XLookupKeySymVal* = 3 @@ -1001,12 +1010,12 @@ XVaNestedList* = pointer PXIMCallback* = ptr XIMCallback - XIMCallback*{.final.} = object + XIMCallback* {.final.} = object client_data*: XPointer callback*: XIMProc PXICCallback* = ptr XICCallback - XICCallback*{.final.} = object + XICCallback* {.final.} = object client_data*: XPointer callback*: XICProc @@ -1026,7 +1035,7 @@ type PXIMText* = ptr XIMText - XIMText*{.final.} = object + XIMText* {.final.} = object len*: cushort feedback*: PXIMFeedback encoding_is_wchar*: XBool @@ -1042,7 +1051,7 @@ type PXIMPreeditStateNotifyCallbackStruct* = ptr XIMPreeditStateNotifyCallbackStruct - XIMPreeditStateNotifyCallbackStruct*{.final.} = object + XIMPreeditStateNotifyCallbackStruct* {.final.} = object state*: XIMPreeditState PXIMResetState* = ptr XIMResetState @@ -1066,7 +1075,7 @@ type PXIMStringConversionText* = ptr XIMStringConversionText - XIMStringConversionText*{.final.} = object + XIMStringConversionText* {.final.} = object len*: cushort feedback*: PXIMStringConversionFeedback encoding_is_wchar*: XBool @@ -1095,12 +1104,21 @@ type PXIMCaretDirection* = ptr XIMCaretDirection XIMCaretDirection* = enum - XIMForwardChar, XIMBackwardChar, XIMForwardWord, XIMBackwardWord, - XIMCaretUp, XIMCaretDown, XIMNextLine, XIMPreviousLine, XIMLineStart, - XIMLineEnd, XIMAbsolutePosition, XIMDontChange + XIMForwardChar + XIMBackwardChar + XIMForwardWord + XIMBackwardWord + XIMCaretUp + XIMCaretDown + XIMNextLine + XIMPreviousLine + XIMLineStart + XIMLineEnd + XIMAbsolutePosition + XIMDontChange PXIMStringConversionCallbackStruct* = ptr XIMStringConversionCallbackStruct - XIMStringConversionCallbackStruct*{.final.} = object + XIMStringConversionCallbackStruct* {.final.} = object position*: XIMStringConversionPosition direction*: XIMCaretDirection operation*: XIMStringConversionOperation @@ -1108,7 +1126,7 @@ text*: PXIMStringConversionText PXIMPreeditDrawCallbackStruct* = ptr XIMPreeditDrawCallbackStruct - XIMPreeditDrawCallbackStruct*{.final.} = object + XIMPreeditDrawCallbackStruct* {.final.} = object caret*: cint chg_first*: cint chg_length*: cint @@ -1116,31 +1134,34 @@ PXIMCaretStyle* = ptr XIMCaretStyle XIMCaretStyle* = enum - XIMIsInvisible, XIMIsPrimary, XIMIsSecondary + XIMIsInvisible + XIMIsPrimary + XIMIsSecondary PXIMPreeditCaretCallbackStruct* = ptr XIMPreeditCaretCallbackStruct - XIMPreeditCaretCallbackStruct*{.final.} = object + XIMPreeditCaretCallbackStruct* {.final.} = object position*: cint direction*: XIMCaretDirection style*: XIMCaretStyle PXIMStatusDataType* = ptr XIMStatusDataType XIMStatusDataType* = enum - XIMTextType, XIMBitmapType + XIMTextType + XIMBitmapType PXIMStatusDrawCallbackStruct* = ptr XIMStatusDrawCallbackStruct - XIMStatusDrawCallbackStruct*{.final.} = object + XIMStatusDrawCallbackStruct* {.final.} = object theType*: XIMStatusDataType bitmap*: Pixmap PXIMHotKeyTrigger* = ptr XIMHotKeyTrigger - XIMHotKeyTrigger*{.final.} = object + XIMHotKeyTrigger* {.final.} = object keysym*: KeySym modifier*: cint modifier_mask*: cint PXIMHotKeyTriggers* = ptr XIMHotKeyTriggers - XIMHotKeyTriggers*{.final.} = object + XIMHotKeyTriggers* {.final.} = object num_hot_key*: cint key*: PXIMHotKeyTrigger @@ -1153,705 +1174,1392 @@ type PXIMValuesList* = ptr XIMValuesList - XIMValuesList*{.final.} = object + XIMValuesList* {.final.} = object count_values*: cushort supported_values*: PPChar +type + funcdisp* = proc(display: PDisplay): cint {.cdecl.} + funcifevent* = proc(display: PDisplay, event: PXEvent, p: XPointer): XBool {.cdecl.} + chararr32* = array[0 .. 31, char] -type - funcdisp* = proc (display: PDisplay): cint{.cdecl.} - funcifevent* = proc (display: PDisplay, event: PXEvent, p: XPointer): XBool{. - cdecl.} - chararr32* = array[0..31, char] +const AllPlanes*: culong = not culong(0) + +proc XLoadQueryFont*(para1: PDisplay, para2: cstring): PXFontStruct {.libx11.} +proc XQueryFont*(para1: PDisplay, para2: XID): PXFontStruct {.libx11.} +proc XGetMotionEvents*( + para1: PDisplay, para2: Window, para3: Time, para4: Time, para5: Pcint +): PXTimeCoord {.libx11.} + +proc XDeleteModifiermapEntry*( + para1: PXModifierKeymap, para2: KeyCode, para3: cint +): PXModifierKeymap {.libx11.} + +proc XGetModifierMapping*(para1: PDisplay): PXModifierKeymap {.libx11.} +proc XInsertModifiermapEntry*( + para1: PXModifierKeymap, para2: KeyCode, para3: cint +): PXModifierKeymap {.libx11.} + +proc XNewModifiermap*(para1: cint): PXModifierKeymap {.libx11.} +proc XCreateImage*( + para1: PDisplay, + para2: PVisual, + para3: cuint, + para4: cint, + para5: cint, + para6: cstring, + para7: cuint, + para8: cuint, + para9: cint, + para10: cint, +): PXImage {.libx11.} + +proc XInitImage*(para1: PXImage): Status {.libx11.} +proc XGetImage*( + para1: PDisplay, + para2: Drawable, + para3: cint, + para4: cint, + para5: cuint, + para6: cuint, + para7: culong, + para8: cint, +): PXImage {.libx11.} + +proc XGetSubImage*( + para1: PDisplay, + para2: Drawable, + para3: cint, + para4: cint, + para5: cuint, + para6: cuint, + para7: culong, + para8: cint, + para9: PXImage, + para10: cint, + para11: cint, +): PXImage {.libx11.} + +proc XOpenDisplay*(para1: cstring): PDisplay {.libx11.} +proc XrmInitialize*() {.libx11.} +proc XFetchBytes*(para1: PDisplay, para2: Pcint): cstring {.libx11.} +proc XFetchBuffer*(para1: PDisplay, para2: Pcint, para3: cint): cstring {.libx11.} +proc XGetAtomName*(para1: PDisplay, para2: Atom): cstring {.libx11.} +proc XGetAtomNames*( + para1: PDisplay, para2: PAtom, para3: cint, para4: PPchar +): Status {.libx11.} + +proc XGetDefault*(para1: PDisplay, para2: cstring, para3: cstring): cstring {.libx11.} +proc XDisplayName*(para1: cstring): cstring {.libx11.} +proc XKeysymToString*(para1: KeySym): cstring {.libx11.} +proc XSynchronize*(para1: PDisplay, para2: XBool): funcdisp {.libx11.} +proc XSetAfterFunction*(para1: PDisplay, para2: funcdisp): funcdisp {.libx11.} +proc XInternAtom*(para1: PDisplay, para2: cstring, para3: XBool): Atom {.libx11.} +proc XInternAtoms*( + para1: PDisplay, para2: PPchar, para3: cint, para4: XBool, para5: PAtom +): Status {.libx11.} + +proc XCopyColormapAndFree*(para1: PDisplay, para2: Colormap): Colormap {.libx11.} +proc XCreateColormap*( + para1: PDisplay, para2: Window, para3: PVisual, para4: cint +): Colormap {.libx11.} + +proc XCreatePixmapCursor*( + para1: PDisplay, + para2: Pixmap, + para3: Pixmap, + para4: PXColor, + para5: PXColor, + para6: cuint, + para7: cuint, +): Cursor {.libx11.} + +proc XCreateGlyphCursor*( + para1: PDisplay, + para2: Font, + para3: Font, + para4: cuint, + para5: cuint, + para6: PXColor, + para7: PXColor, +): Cursor {.libx11.} + +proc XCreateFontCursor*(para1: PDisplay, para2: cuint): Cursor {.libx11.} +proc XLoadFont*(para1: PDisplay, para2: cstring): Font {.libx11.} +proc XCreateGC*( + para1: PDisplay, para2: Drawable, para3: culong, para4: PXGCValues +): GC {.libx11.} + +proc XGContextFromGC*(para1: GC): GContext {.libx11.} +proc XFlushGC*(para1: PDisplay, para2: GC) {.libx11.} +proc XCreatePixmap*( + para1: PDisplay, para2: Drawable, para3: cuint, para4: cuint, para5: cuint +): Pixmap {.libx11.} + +proc XCreateBitmapFromData*( + para1: PDisplay, para2: Drawable, para3: cstring, para4: cuint, para5: cuint +): Pixmap {.libx11.} + +proc XCreatePixmapFromBitmapData*( + para1: PDisplay, + para2: Drawable, + para3: cstring, + para4: cuint, + para5: cuint, + para6: culong, + para7: culong, + para8: cuint, +): Pixmap {.libx11.} + +proc XCreateSimpleWindow*( + para1: PDisplay, + para2: Window, + para3: cint, + para4: cint, + para5: cuint, + para6: cuint, + para7: cuint, + para8: culong, + para9: culong, +): Window {.libx11.} + +proc XGetSelectionOwner*(para1: PDisplay, para2: Atom): Window {.libx11.} +proc XCreateWindow*( + para1: PDisplay, + para2: Window, + para3: cint, + para4: cint, + para5: cuint, + para6: cuint, + para7: cuint, + para8: cint, + para9: cuint, + para10: PVisual, + para11: culong, + para12: PXSetWindowAttributes, +): Window {.libx11.} + +proc XListInstalledColormaps*( + para1: PDisplay, para2: Window, para3: Pcint +): PColormap {.libx11.} + +proc XListFonts*( + para1: PDisplay, para2: cstring, para3: cint, para4: Pcint +): PPChar {.libx11.} -const - AllPlanes*: culong = not culong(0) +proc XListFontsWithInfo*( + para1: PDisplay, para2: cstring, para3: cint, para4: Pcint, para5: PPXFontStruct +): PPChar {.libx11.} + +proc XGetFontPath*(para1: PDisplay, para2: Pcint): PPChar {.libx11.} +proc XListExtensions*(para1: PDisplay, para2: Pcint): PPChar {.libx11.} +proc XListProperties*(para1: PDisplay, para2: Window, para3: Pcint): PAtom {.libx11.} +proc XListHosts*(para1: PDisplay, para2: Pcint, para3: PBool): PXHostAddress {.libx11.} +proc XKeycodeToKeysym*(para1: PDisplay, para2: KeyCode, para3: cint): KeySym {.libx11.} +proc XLookupKeysym*(para1: PXKeyEvent, para2: cint): KeySym {.libx11.} +proc XGetKeyboardMapping*( + para1: PDisplay, para2: KeyCode, para3: cint, para4: Pcint +): PKeySym {.libx11.} + +proc XStringToKeysym*(para1: cstring): KeySym {.libx11.} +proc XMaxRequestSize*(para1: PDisplay): clong {.libx11.} +proc XExtendedMaxRequestSize*(para1: PDisplay): clong {.libx11.} +proc XResourceManagerString*(para1: PDisplay): cstring {.libx11.} +proc XScreenResourceString*(para1: PScreen): cstring {.libx11.} +proc XDisplayMotionBufferSize*(para1: PDisplay): culong {.libx11.} +proc XVisualIDFromVisual*(para1: PVisual): VisualID {.libx11.} +proc XInitThreads*(): Status {.libx11.} +proc XLockDisplay*(para1: PDisplay) {.libx11.} +proc XUnlockDisplay*(para1: PDisplay) {.libx11.} +proc XInitExtension*(para1: PDisplay, para2: cstring): PXExtCodes {.libx11.} +proc XAddExtension*(para1: PDisplay): PXExtCodes {.libx11.} +proc XFindOnExtensionList*(para1: PPXExtData, para2: cint): PXExtData {.libx11.} +proc XEHeadOfExtensionList*(para1: XEDataObject): PPXExtData {.libx11.} +proc XRootWindow*(para1: PDisplay, para2: cint): Window {.libx11.} +proc XDefaultRootWindow*(para1: PDisplay): Window {.libx11.} +proc XRootWindowOfScreen*(para1: PScreen): Window {.libx11.} +proc XDefaultVisual*(para1: PDisplay, para2: cint): PVisual {.libx11.} +proc XDefaultVisualOfScreen*(para1: PScreen): PVisual {.libx11.} +proc XDefaultGC*(para1: PDisplay, para2: cint): GC {.libx11.} +proc XDefaultGCOfScreen*(para1: PScreen): GC {.libx11.} +proc XBlackPixel*(para1: PDisplay, para2: cint): culong {.libx11.} +proc XWhitePixel*(para1: PDisplay, para2: cint): culong {.libx11.} +proc XAllPlanes*(): culong {.libx11.} +proc XBlackPixelOfScreen*(para1: PScreen): culong {.libx11.} +proc XWhitePixelOfScreen*(para1: PScreen): culong {.libx11.} +proc XNextRequest*(para1: PDisplay): culong {.libx11.} +proc XLastKnownRequestProcessed*(para1: PDisplay): culong {.libx11.} +proc XServerVendor*(para1: PDisplay): cstring {.libx11.} +proc XDisplayString*(para1: PDisplay): cstring {.libx11.} +proc XDefaultColormap*(para1: PDisplay, para2: cint): Colormap {.libx11.} +proc XDefaultColormapOfScreen*(para1: PScreen): Colormap {.libx11.} +proc XDisplayOfScreen*(para1: PScreen): PDisplay {.libx11.} +proc XScreenOfDisplay*(para1: PDisplay, para2: cint): PScreen {.libx11.} +proc XDefaultScreenOfDisplay*(para1: PDisplay): PScreen {.libx11.} +proc XEventMaskOfScreen*(para1: PScreen): clong {.libx11.} +proc XScreenNumberOfScreen*(para1: PScreen): cint {.libx11.} + +type XErrorHandler* = proc(para1: PDisplay, para2: PXErrorEvent): cint {.cdecl.} + +proc XSetErrorHandler*(para1: XErrorHandler): XErrorHandler {.libx11.} +type XIOErrorHandler* = proc(para1: PDisplay): cint {.cdecl.} + +proc XSetIOErrorHandler*(para1: XIOErrorHandler): XIOErrorHandler {.libx11.} +proc XListPixmapFormats*(para1: PDisplay, para2: Pcint): PXPixmapFormatValues {.libx11.} +proc XListDepths*(para1: PDisplay, para2: cint, para3: Pcint): Pcint {.libx11.} +proc XReconfigureWMWindow*( + para1: PDisplay, para2: Window, para3: cint, para4: cuint, para5: PXWindowChanges +): Status {.libx11.} + +proc XGetWMProtocols*( + para1: PDisplay, para2: Window, para3: PPAtom, para4: Pcint +): Status {.libx11.} + +proc XSetWMProtocols*( + para1: PDisplay, para2: Window, para3: PAtom, para4: cint +): Status {.libx11.} + +proc XIconifyWindow*(para1: PDisplay, para2: Window, para3: cint): Status {.libx11.} +proc XWithdrawWindow*(para1: PDisplay, para2: Window, para3: cint): Status {.libx11.} +proc XGetCommand*( + para1: PDisplay, para2: Window, para3: PPPchar, para4: Pcint +): Status {.libx11.} + +proc XGetWMColormapWindows*( + para1: PDisplay, para2: Window, para3: PPWindow, para4: Pcint +): Status {.libx11.} + +proc XSetWMColormapWindows*( + para1: PDisplay, para2: Window, para3: PWindow, para4: cint +): Status {.libx11.} + +proc XFreeStringList*(para1: PPchar) {.libx11.} +proc XSetTransientForHint*( + para1: PDisplay, para2: Window, para3: Window +): cint {.libx11.} + +proc XActivateScreenSaver*(para1: PDisplay): cint {.libx11.} +proc XAddHost*(para1: PDisplay, para2: PXHostAddress): cint {.libx11.} +proc XAddHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint {.libx11.} +proc XAddToExtensionList*(para1: PPXExtData, para2: PXExtData): cint {.libx11.} +proc XAddToSaveSet*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XAllocColor*(para1: PDisplay, para2: Colormap, para3: PXColor): Status {.libx11.} +proc XAllocColorCells*( + para1: PDisplay, + para2: Colormap, + para3: XBool, + para4: Pculong, + para5: cuint, + para6: Pculong, + para7: cuint, +): Status {.libx11.} + +proc XAllocColorPlanes*( + para1: PDisplay, + para2: Colormap, + para3: XBool, + para4: Pculong, + para5: cint, + para6: cint, + para7: cint, + para8: cint, + para9: Pculong, + para10: Pculong, + para11: Pculong, +): Status {.libx11.} + +proc XAllocNamedColor*( + para1: PDisplay, para2: Colormap, para3: cstring, para4: PXColor, para5: PXColor +): Status {.libx11.} + +proc XAllowEvents*(para1: PDisplay, para2: cint, para3: Time): cint {.libx11.} +proc XAutoRepeatOff*(para1: PDisplay): cint {.libx11.} +proc XAutoRepeatOn*(para1: PDisplay): cint {.libx11.} +proc XBell*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XBitmapBitOrder*(para1: PDisplay): cint {.libx11.} +proc XBitmapPad*(para1: PDisplay): cint {.libx11.} +proc XBitmapUnit*(para1: PDisplay): cint {.libx11.} +proc XCellsOfScreen*(para1: PScreen): cint {.libx11.} +proc XChangeActivePointerGrab*( + para1: PDisplay, para2: cuint, para3: Cursor, para4: Time +): cint {.libx11.} + +proc XChangeGC*( + para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues +): cint {.libx11.} + +proc XChangeKeyboardControl*( + para1: PDisplay, para2: culong, para3: PXKeyboardControl +): cint {.libx11.} + +proc XChangeKeyboardMapping*( + para1: PDisplay, para2: cint, para3: cint, para4: PKeySym, para5: cint +): cint {.libx11.} + +proc XChangePointerControl*( + para1: PDisplay, para2: XBool, para3: XBool, para4: cint, para5: cint, para6: cint +): cint {.libx11.} + +proc XChangeProperty*( + para1: PDisplay, + para2: Window, + para3: Atom, + para4: Atom, + para5: cint, + para6: cint, + para7: Pcuchar, + para8: cint, +): cint {.libx11.} + +proc XChangeSaveSet*(para1: PDisplay, para2: Window, para3: cint): cint {.libx11.} +proc XChangeWindowAttributes*( + para1: PDisplay, para2: Window, para3: culong, para4: PXSetWindowAttributes +): cint {.libx11.} -proc XLoadQueryFont*(para1: PDisplay, para2: cstring): PXFontStruct{.libx11.} -proc XQueryFont*(para1: PDisplay, para2: XID): PXFontStruct{.libx11.} -proc XGetMotionEvents*(para1: PDisplay, para2: Window, para3: Time, - para4: Time, para5: Pcint): PXTimeCoord{.libx11.} -proc XDeleteModifiermapEntry*(para1: PXModifierKeymap, para2: KeyCode, - para3: cint): PXModifierKeymap{.libx11.} -proc XGetModifierMapping*(para1: PDisplay): PXModifierKeymap{.libx11.} -proc XInsertModifiermapEntry*(para1: PXModifierKeymap, para2: KeyCode, - para3: cint): PXModifierKeymap{.libx11.} -proc XNewModifiermap*(para1: cint): PXModifierKeymap{.libx11.} -proc XCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, para4: cint, - para5: cint, para6: cstring, para7: cuint, para8: cuint, - para9: cint, para10: cint): PXImage{.libx11.} -proc XInitImage*(para1: PXImage): Status{.libx11.} -proc XGetImage*(para1: PDisplay, para2: Drawable, para3: cint, para4: cint, - para5: cuint, para6: cuint, para7: culong, para8: cint): PXImage{. - libx11.} -proc XGetSubImage*(para1: PDisplay, para2: Drawable, para3: cint, para4: cint, - para5: cuint, para6: cuint, para7: culong, para8: cint, - para9: PXImage, para10: cint, para11: cint): PXImage{.libx11.} -proc XOpenDisplay*(para1: cstring): PDisplay{.libx11.} -proc XrmInitialize*(){.libx11.} -proc XFetchBytes*(para1: PDisplay, para2: Pcint): cstring{.libx11.} -proc XFetchBuffer*(para1: PDisplay, para2: Pcint, para3: cint): cstring{.libx11.} -proc XGetAtomName*(para1: PDisplay, para2: Atom): cstring{.libx11.} -proc XGetAtomNames*(para1: PDisplay, para2: PAtom, para3: cint, para4: PPchar): Status{. - libx11.} -proc XGetDefault*(para1: PDisplay, para2: cstring, para3: cstring): cstring{. - libx11.} -proc XDisplayName*(para1: cstring): cstring{.libx11.} -proc XKeysymToString*(para1: KeySym): cstring{.libx11.} -proc XSynchronize*(para1: PDisplay, para2: XBool): funcdisp{.libx11.} -proc XSetAfterFunction*(para1: PDisplay, para2: funcdisp): funcdisp{.libx11.} -proc XInternAtom*(para1: PDisplay, para2: cstring, para3: XBool): Atom{.libx11.} -proc XInternAtoms*(para1: PDisplay, para2: PPchar, para3: cint, para4: XBool, - para5: PAtom): Status{.libx11.} -proc XCopyColormapAndFree*(para1: PDisplay, para2: Colormap): Colormap{.libx11.} -proc XCreateColormap*(para1: PDisplay, para2: Window, para3: PVisual, - para4: cint): Colormap{.libx11.} -proc XCreatePixmapCursor*(para1: PDisplay, para2: Pixmap, para3: Pixmap, - para4: PXColor, para5: PXColor, para6: cuint, - para7: cuint): Cursor{.libx11.} -proc XCreateGlyphCursor*(para1: PDisplay, para2: Font, para3: Font, - para4: cuint, para5: cuint, para6: PXColor, - para7: PXColor): Cursor{.libx11.} -proc XCreateFontCursor*(para1: PDisplay, para2: cuint): Cursor{.libx11.} -proc XLoadFont*(para1: PDisplay, para2: cstring): Font{.libx11.} -proc XCreateGC*(para1: PDisplay, para2: Drawable, para3: culong, - para4: PXGCValues): GC{.libx11.} -proc XGContextFromGC*(para1: GC): GContext{.libx11.} -proc XFlushGC*(para1: PDisplay, para2: GC){.libx11.} -proc XCreatePixmap*(para1: PDisplay, para2: Drawable, para3: cuint, - para4: cuint, para5: cuint): Pixmap{.libx11.} -proc XCreateBitmapFromData*(para1: PDisplay, para2: Drawable, para3: cstring, - para4: cuint, para5: cuint): Pixmap{.libx11.} -proc XCreatePixmapFromBitmapData*(para1: PDisplay, para2: Drawable, - para3: cstring, para4: cuint, para5: cuint, - para6: culong, para7: culong, para8: cuint): Pixmap{. - libx11.} -proc XCreateSimpleWindow*(para1: PDisplay, para2: Window, para3: cint, - para4: cint, para5: cuint, para6: cuint, para7: cuint, - para8: culong, para9: culong): Window{.libx11.} -proc XGetSelectionOwner*(para1: PDisplay, para2: Atom): Window{.libx11.} -proc XCreateWindow*(para1: PDisplay, para2: Window, para3: cint, para4: cint, - para5: cuint, para6: cuint, para7: cuint, para8: cint, - para9: cuint, para10: PVisual, para11: culong, - para12: PXSetWindowAttributes): Window{.libx11.} -proc XListInstalledColormaps*(para1: PDisplay, para2: Window, para3: Pcint): PColormap{. - libx11.} -proc XListFonts*(para1: PDisplay, para2: cstring, para3: cint, para4: Pcint): PPChar{. - libx11.} -proc XListFontsWithInfo*(para1: PDisplay, para2: cstring, para3: cint, - para4: Pcint, para5: PPXFontStruct): PPChar{.libx11.} -proc XGetFontPath*(para1: PDisplay, para2: Pcint): PPChar{.libx11.} -proc XListExtensions*(para1: PDisplay, para2: Pcint): PPChar{.libx11.} -proc XListProperties*(para1: PDisplay, para2: Window, para3: Pcint): PAtom{. - libx11.} -proc XListHosts*(para1: PDisplay, para2: Pcint, para3: PBool): PXHostAddress{. - libx11.} -proc XKeycodeToKeysym*(para1: PDisplay, para2: KeyCode, para3: cint): KeySym{. - libx11.} -proc XLookupKeysym*(para1: PXKeyEvent, para2: cint): KeySym{.libx11.} -proc XGetKeyboardMapping*(para1: PDisplay, para2: KeyCode, para3: cint, - para4: Pcint): PKeySym{.libx11.} -proc XStringToKeysym*(para1: cstring): KeySym{.libx11.} -proc XMaxRequestSize*(para1: PDisplay): clong{.libx11.} -proc XExtendedMaxRequestSize*(para1: PDisplay): clong{.libx11.} -proc XResourceManagerString*(para1: PDisplay): cstring{.libx11.} -proc XScreenResourceString*(para1: PScreen): cstring{.libx11.} -proc XDisplayMotionBufferSize*(para1: PDisplay): culong{.libx11.} -proc XVisualIDFromVisual*(para1: PVisual): VisualID{.libx11.} -proc XInitThreads*(): Status{.libx11.} -proc XLockDisplay*(para1: PDisplay){.libx11.} -proc XUnlockDisplay*(para1: PDisplay){.libx11.} -proc XInitExtension*(para1: PDisplay, para2: cstring): PXExtCodes{.libx11.} -proc XAddExtension*(para1: PDisplay): PXExtCodes{.libx11.} -proc XFindOnExtensionList*(para1: PPXExtData, para2: cint): PXExtData{.libx11.} -proc XEHeadOfExtensionList*(para1: XEDataObject): PPXExtData{.libx11.} -proc XRootWindow*(para1: PDisplay, para2: cint): Window{.libx11.} -proc XDefaultRootWindow*(para1: PDisplay): Window{.libx11.} -proc XRootWindowOfScreen*(para1: PScreen): Window{.libx11.} -proc XDefaultVisual*(para1: PDisplay, para2: cint): PVisual{.libx11.} -proc XDefaultVisualOfScreen*(para1: PScreen): PVisual{.libx11.} -proc XDefaultGC*(para1: PDisplay, para2: cint): GC{.libx11.} -proc XDefaultGCOfScreen*(para1: PScreen): GC{.libx11.} -proc XBlackPixel*(para1: PDisplay, para2: cint): culong{.libx11.} -proc XWhitePixel*(para1: PDisplay, para2: cint): culong{.libx11.} -proc XAllPlanes*(): culong{.libx11.} -proc XBlackPixelOfScreen*(para1: PScreen): culong{.libx11.} -proc XWhitePixelOfScreen*(para1: PScreen): culong{.libx11.} -proc XNextRequest*(para1: PDisplay): culong{.libx11.} -proc XLastKnownRequestProcessed*(para1: PDisplay): culong{.libx11.} -proc XServerVendor*(para1: PDisplay): cstring{.libx11.} -proc XDisplayString*(para1: PDisplay): cstring{.libx11.} -proc XDefaultColormap*(para1: PDisplay, para2: cint): Colormap{.libx11.} -proc XDefaultColormapOfScreen*(para1: PScreen): Colormap{.libx11.} -proc XDisplayOfScreen*(para1: PScreen): PDisplay{.libx11.} -proc XScreenOfDisplay*(para1: PDisplay, para2: cint): PScreen{.libx11.} -proc XDefaultScreenOfDisplay*(para1: PDisplay): PScreen{.libx11.} -proc XEventMaskOfScreen*(para1: PScreen): clong{.libx11.} -proc XScreenNumberOfScreen*(para1: PScreen): cint{.libx11.} +proc XCheckIfEvent*( + para1: PDisplay, para2: PXEvent, para3: funcifevent, para4: XPointer +): XBool {.libx11.} + +proc XCheckMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): XBool {.libx11.} +proc XCheckTypedEvent*(para1: PDisplay, para2: cint, para3: PXEvent): XBool {.libx11.} +proc XCheckTypedWindowEvent*( + para1: PDisplay, para2: Window, para3: cint, para4: PXEvent +): XBool {.libx11.} + +proc XCheckWindowEvent*( + para1: PDisplay, para2: Window, para3: clong, para4: PXEvent +): XBool {.libx11.} + +proc XCirculateSubwindows*(para1: PDisplay, para2: Window, para3: cint): cint {.libx11.} +proc XCirculateSubwindowsDown*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XCirculateSubwindowsUp*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XClearArea*( + para1: PDisplay, + para2: Window, + para3: cint, + para4: cint, + para5: cuint, + para6: cuint, + para7: XBool, +): cint {.libx11.} + +proc XClearWindow*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XCloseDisplay*(para1: PDisplay): cint {.libx11.} +proc XConfigureWindow*( + para1: PDisplay, para2: Window, para3: cuint, para4: PXWindowChanges +): cint {.libx11.} + +proc XConnectionNumber*(para1: PDisplay): cint {.libx11.} +proc XConvertSelection*( + para1: PDisplay, para2: Atom, para3: Atom, para4: Atom, para5: Window, para6: Time +): cint {.libx11.} + +proc XCopyArea*( + para1: PDisplay, + para2: Drawable, + para3: Drawable, + para4: GC, + para5: cint, + para6: cint, + para7: cuint, + para8: cuint, + para9: cint, + para10: cint, +): cint {.libx11.} + +proc XCopyGC*(para1: PDisplay, para2: GC, para3: culong, para4: GC): cint {.libx11.} +proc XCopyPlane*( + para1: PDisplay, + para2: Drawable, + para3: Drawable, + para4: GC, + para5: cint, + para6: cint, + para7: cuint, + para8: cuint, + para9: cint, + para10: cint, + para11: culong, +): cint {.libx11.} + +proc XDefaultDepth*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDefaultDepthOfScreen*(para1: PScreen): cint {.libx11.} +proc XDefaultScreen*(para1: PDisplay): cint {.libx11.} +proc XDefineCursor*(para1: PDisplay, para2: Window, para3: Cursor): cint {.libx11.} +proc XDeleteProperty*(para1: PDisplay, para2: Window, para3: Atom): cint {.libx11.} +proc XDestroyWindow*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XDestroySubwindows*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XDoesBackingStore*(para1: PScreen): cint {.libx11.} +proc XDoesSaveUnders*(para1: PScreen): XBool {.libx11.} +proc XDisableAccessControl*(para1: PDisplay): cint {.libx11.} +proc XDisplayCells*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDisplayHeight*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDisplayHeightMM*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDisplayKeycodes*(para1: PDisplay, para2: Pcint, para3: Pcint): cint {.libx11.} +proc XDisplayPlanes*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDisplayWidth*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDisplayWidthMM*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XDrawArc*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cuint, + para7: cuint, + para8: cint, + para9: cint, +): cint {.libx11.} + +proc XDrawArcs*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc, para5: cint +): cint {.libx11.} + +proc XDrawImageString*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cstring, + para7: cint, +): cint {.libx11.} + +proc XDrawImageString16*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXChar2b, + para7: cint, +): cint {.libx11.} + +proc XDrawLine*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cint, + para7: cint, +): cint {.libx11.} + +proc XDrawLines*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint, para5: cint, para6: cint +): cint {.libx11.} + +proc XDrawPoint*( + para1: PDisplay, para2: Drawable, para3: GC, para4: cint, para5: cint +): cint {.libx11.} + +proc XDrawPoints*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint, para5: cint, para6: cint +): cint {.libx11.} + +proc XDrawRectangle*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cuint, + para7: cuint, +): cint {.libx11.} + +proc XDrawRectangles*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXRectangle, para5: cint +): cint {.libx11.} + +proc XDrawSegments*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXSegment, para5: cint +): cint {.libx11.} + +proc XDrawString*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cstring, + para7: cint, +): cint {.libx11.} -type - XErrorHandler* = proc (para1: PDisplay, para2: PXErrorEvent): cint{.cdecl.} +proc XDrawString16*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXChar2b, + para7: cint, +): cint {.libx11.} + +proc XDrawText*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXTextItem, + para7: cint, +): cint {.libx11.} + +proc XDrawText16*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXTextItem16, + para7: cint, +): cint {.libx11.} + +proc XEnableAccessControl*(para1: PDisplay): cint {.libx11.} +proc XEventsQueued*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XFetchName*(para1: PDisplay, para2: Window, para3: PPchar): Status {.libx11.} +proc XFillArc*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cuint, + para7: cuint, + para8: cint, + para9: cint, +): cint {.libx11.} + +proc XFillArcs*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc, para5: cint +): cint {.libx11.} + +proc XFillPolygon*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: PXPoint, + para5: cint, + para6: cint, + para7: cint, +): cint {.libx11.} + +proc XFillRectangle*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: cuint, + para7: cuint, +): cint {.libx11.} + +proc XFillRectangles*( + para1: PDisplay, para2: Drawable, para3: GC, para4: PXRectangle, para5: cint +): cint {.libx11.} + +proc XFlush*(para1: PDisplay): cint {.libx11.} +proc XForceScreenSaver*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XFree*(para1: pointer): cint {.libx11.} +proc XFreeColormap*(para1: PDisplay, para2: Colormap): cint {.libx11.} +proc XFreeColors*( + para1: PDisplay, para2: Colormap, para3: Pculong, para4: cint, para5: culong +): cint {.libx11.} -proc XSetErrorHandler*(para1: XErrorHandler): XErrorHandler{.libx11.} -type - XIOErrorHandler* = proc (para1: PDisplay): cint{.cdecl.} +proc XFreeCursor*(para1: PDisplay, para2: Cursor): cint {.libx11.} +proc XFreeExtensionList*(para1: PPchar): cint {.libx11.} +proc XFreeFont*(para1: PDisplay, para2: PXFontStruct): cint {.libx11.} +proc XFreeFontInfo*(para1: PPchar, para2: PXFontStruct, para3: cint): cint {.libx11.} +proc XFreeFontNames*(para1: PPchar): cint {.libx11.} +proc XFreeFontPath*(para1: PPchar): cint {.libx11.} +proc XFreeGC*(para1: PDisplay, para2: GC): cint {.libx11.} +proc XFreeModifiermap*(para1: PXModifierKeymap): cint {.libx11.} +proc XFreePixmap*(para1: PDisplay, para2: Pixmap): cint {.libx11.} +proc XGeometry*( + para1: PDisplay, + para2: cint, + para3: cstring, + para4: cstring, + para5: cuint, + para6: cuint, + para7: cuint, + para8: cint, + para9: cint, + para10: Pcint, + para11: Pcint, + para12: Pcint, + para13: Pcint, +): cint {.libx11.} + +proc XGetErrorDatabaseText*( + para1: PDisplay, + para2: cstring, + para3: cstring, + para4: cstring, + para5: cstring, + para6: cint, +): cint {.libx11.} + +proc XGetErrorText*( + para1: PDisplay, para2: cint, para3: cstring, para4: cint +): cint {.libx11.} + +proc XGetFontProperty*( + para1: PXFontStruct, para2: Atom, para3: Pculong +): XBool {.libx11.} + +proc XGetGCValues*( + para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues +): Status {.libx11.} + +proc XGetGeometry*( + para1: PDisplay, + para2: Drawable, + para3: PWindow, + para4: Pcint, + para5: Pcint, + para6: Pcuint, + para7: Pcuint, + para8: Pcuint, + para9: Pcuint, +): Status {.libx11.} + +proc XGetIconName*(para1: PDisplay, para2: Window, para3: PPchar): Status {.libx11.} +proc XGetInputFocus*(para1: PDisplay, para2: PWindow, para3: Pcint): cint {.libx11.} +proc XGetKeyboardControl*(para1: PDisplay, para2: PXKeyboardState): cint {.libx11.} +proc XGetPointerControl*( + para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint +): cint {.libx11.} + +proc XGetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint {.libx11.} +proc XGetScreenSaver*( + para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint, para5: Pcint +): cint {.libx11.} + +proc XGetTransientForHint*( + para1: PDisplay, para2: Window, para3: PWindow +): Status {.libx11.} + +proc XGetWindowProperty*( + para1: PDisplay, + para2: Window, + para3: Atom, + para4: clong, + para5: clong, + para6: XBool, + para7: Atom, + para8: PAtom, + para9: Pcint, + para10: Pculong, + para11: Pculong, + para12: PPcuchar, +): cint {.libx11.} + +proc XGetWindowAttributes*( + para1: PDisplay, para2: Window, para3: PXWindowAttributes +): Status {.libx11.} -proc XSetIOErrorHandler*(para1: XIOErrorHandler): XIOErrorHandler{.libx11.} -proc XListPixmapFormats*(para1: PDisplay, para2: Pcint): PXPixmapFormatValues{. - libx11.} -proc XListDepths*(para1: PDisplay, para2: cint, para3: Pcint): Pcint{.libx11.} -proc XReconfigureWMWindow*(para1: PDisplay, para2: Window, para3: cint, - para4: cuint, para5: PXWindowChanges): Status{. - libx11.} -proc XGetWMProtocols*(para1: PDisplay, para2: Window, para3: PPAtom, - para4: Pcint): Status{.libx11.} -proc XSetWMProtocols*(para1: PDisplay, para2: Window, para3: PAtom, para4: cint): Status{. - libx11.} -proc XIconifyWindow*(para1: PDisplay, para2: Window, para3: cint): Status{. - libx11.} -proc XWithdrawWindow*(para1: PDisplay, para2: Window, para3: cint): Status{. - libx11.} -proc XGetCommand*(para1: PDisplay, para2: Window, para3: PPPchar, para4: Pcint): Status{. - libx11.} -proc XGetWMColormapWindows*(para1: PDisplay, para2: Window, para3: PPWindow, - para4: Pcint): Status{.libx11.} -proc XSetWMColormapWindows*(para1: PDisplay, para2: Window, para3: PWindow, - para4: cint): Status{.libx11.} -proc XFreeStringList*(para1: PPchar){.libx11.} -proc XSetTransientForHint*(para1: PDisplay, para2: Window, para3: Window): cint{. - libx11.} -proc XActivateScreenSaver*(para1: PDisplay): cint{.libx11.} -proc XAddHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.} -proc XAddHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{. - libx11.} -proc XAddToExtensionList*(para1: PPXExtData, para2: PXExtData): cint{.libx11.} -proc XAddToSaveSet*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XAllocColor*(para1: PDisplay, para2: Colormap, para3: PXColor): Status{. - libx11.} -proc XAllocColorCells*(para1: PDisplay, para2: Colormap, para3: XBool, - para4: Pculong, para5: cuint, para6: Pculong, - para7: cuint): Status{.libx11.} -proc XAllocColorPlanes*(para1: PDisplay, para2: Colormap, para3: XBool, - para4: Pculong, para5: cint, para6: cint, para7: cint, - para8: cint, para9: Pculong, para10: Pculong, - para11: Pculong): Status{.libx11.} -proc XAllocNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring, - para4: PXColor, para5: PXColor): Status{.libx11.} -proc XAllowEvents*(para1: PDisplay, para2: cint, para3: Time): cint{.libx11.} -proc XAutoRepeatOff*(para1: PDisplay): cint{.libx11.} -proc XAutoRepeatOn*(para1: PDisplay): cint{.libx11.} -proc XBell*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XBitmapBitOrder*(para1: PDisplay): cint{.libx11.} -proc XBitmapPad*(para1: PDisplay): cint{.libx11.} -proc XBitmapUnit*(para1: PDisplay): cint{.libx11.} -proc XCellsOfScreen*(para1: PScreen): cint{.libx11.} -proc XChangeActivePointerGrab*(para1: PDisplay, para2: cuint, para3: Cursor, - para4: Time): cint{.libx11.} -proc XChangeGC*(para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues): cint{. - libx11.} -proc XChangeKeyboardControl*(para1: PDisplay, para2: culong, - para3: PXKeyboardControl): cint{.libx11.} -proc XChangeKeyboardMapping*(para1: PDisplay, para2: cint, para3: cint, - para4: PKeySym, para5: cint): cint{.libx11.} -proc XChangePointerControl*(para1: PDisplay, para2: XBool, para3: XBool, - para4: cint, para5: cint, para6: cint): cint{.libx11.} -proc XChangeProperty*(para1: PDisplay, para2: Window, para3: Atom, - para4: Atom, para5: cint, para6: cint, para7: Pcuchar, - para8: cint): cint{.libx11.} -proc XChangeSaveSet*(para1: PDisplay, para2: Window, para3: cint): cint{.libx11.} -proc XChangeWindowAttributes*(para1: PDisplay, para2: Window, para3: culong, - para4: PXSetWindowAttributes): cint{.libx11.} -proc XCheckIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, - para4: XPointer): XBool{.libx11.} -proc XCheckMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): XBool{. - libx11.} -proc XCheckTypedEvent*(para1: PDisplay, para2: cint, para3: PXEvent): XBool{. - libx11.} -proc XCheckTypedWindowEvent*(para1: PDisplay, para2: Window, para3: cint, - para4: PXEvent): XBool{.libx11.} -proc XCheckWindowEvent*(para1: PDisplay, para2: Window, para3: clong, - para4: PXEvent): XBool{.libx11.} -proc XCirculateSubwindows*(para1: PDisplay, para2: Window, para3: cint): cint{. - libx11.} -proc XCirculateSubwindowsDown*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XCirculateSubwindowsUp*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XClearArea*(para1: PDisplay, para2: Window, para3: cint, para4: cint, - para5: cuint, para6: cuint, para7: XBool): cint{.libx11.} -proc XClearWindow*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XCloseDisplay*(para1: PDisplay): cint{.libx11.} -proc XConfigureWindow*(para1: PDisplay, para2: Window, para3: cuint, - para4: PXWindowChanges): cint{.libx11.} -proc XConnectionNumber*(para1: PDisplay): cint{.libx11.} -proc XConvertSelection*(para1: PDisplay, para2: Atom, para3: Atom, - para4: Atom, para5: Window, para6: Time): cint{. - libx11.} -proc XCopyArea*(para1: PDisplay, para2: Drawable, para3: Drawable, para4: GC, - para5: cint, para6: cint, para7: cuint, para8: cuint, - para9: cint, para10: cint): cint{.libx11.} -proc XCopyGC*(para1: PDisplay, para2: GC, para3: culong, para4: GC): cint{. - libx11.} -proc XCopyPlane*(para1: PDisplay, para2: Drawable, para3: Drawable, - para4: GC, para5: cint, para6: cint, para7: cuint, - para8: cuint, para9: cint, para10: cint, para11: culong): cint{. - libx11.} -proc XDefaultDepth*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDefaultDepthOfScreen*(para1: PScreen): cint{.libx11.} -proc XDefaultScreen*(para1: PDisplay): cint{.libx11.} -proc XDefineCursor*(para1: PDisplay, para2: Window, para3: Cursor): cint{. - libx11.} -proc XDeleteProperty*(para1: PDisplay, para2: Window, para3: Atom): cint{. - libx11.} -proc XDestroyWindow*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XDestroySubwindows*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XDoesBackingStore*(para1: PScreen): cint{.libx11.} -proc XDoesSaveUnders*(para1: PScreen): XBool{.libx11.} -proc XDisableAccessControl*(para1: PDisplay): cint{.libx11.} -proc XDisplayCells*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDisplayHeight*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDisplayHeightMM*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDisplayKeycodes*(para1: PDisplay, para2: Pcint, para3: Pcint): cint{. - libx11.} -proc XDisplayPlanes*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDisplayWidth*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDisplayWidthMM*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XDrawArc*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{. - libx11.} -proc XDrawArcs*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc, - para5: cint): cint{.libx11.} -proc XDrawImageString*(para1: PDisplay, para2: Drawable, para3: GC, - para4: cint, para5: cint, para6: cstring, para7: cint): cint{. - libx11.} -proc XDrawImageString16*(para1: PDisplay, para2: Drawable, para3: GC, - para4: cint, para5: cint, para6: PXChar2b, para7: cint): cint{. - libx11.} -proc XDrawLine*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: cint, para7: cint): cint{.libx11.} -proc XDrawLines*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint, - para5: cint, para6: cint): cint{.libx11.} -proc XDrawPoint*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint): cint{.libx11.} -proc XDrawPoints*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXPoint, - para5: cint, para6: cint): cint{.libx11.} -proc XDrawRectangle*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: cuint, para7: cuint): cint{.libx11.} -proc XDrawRectangles*(para1: PDisplay, para2: Drawable, para3: GC, - para4: PXRectangle, para5: cint): cint{.libx11.} -proc XDrawSegments*(para1: PDisplay, para2: Drawable, para3: GC, - para4: PXSegment, para5: cint): cint{.libx11.} -proc XDrawString*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: cstring, para7: cint): cint{.libx11.} -proc XDrawString16*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: PXChar2b, para7: cint): cint{.libx11.} -proc XDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: PXTextItem, para7: cint): cint{.libx11.} -proc XDrawText16*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: PXTextItem16, para7: cint): cint{.libx11.} -proc XEnableAccessControl*(para1: PDisplay): cint{.libx11.} -proc XEventsQueued*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XFetchName*(para1: PDisplay, para2: Window, para3: PPchar): Status{. - libx11.} -proc XFillArc*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: cuint, para7: cuint, para8: cint, para9: cint): cint{. - libx11.} -proc XFillArcs*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXArc, - para5: cint): cint{.libx11.} -proc XFillPolygon*(para1: PDisplay, para2: Drawable, para3: GC, - para4: PXPoint, para5: cint, para6: cint, para7: cint): cint{. - libx11.} -proc XFillRectangle*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: cuint, para7: cuint): cint{.libx11.} -proc XFillRectangles*(para1: PDisplay, para2: Drawable, para3: GC, - para4: PXRectangle, para5: cint): cint{.libx11.} -proc XFlush*(para1: PDisplay): cint{.libx11.} -proc XForceScreenSaver*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XFree*(para1: pointer): cint{.libx11.} -proc XFreeColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.} -proc XFreeColors*(para1: PDisplay, para2: Colormap, para3: Pculong, - para4: cint, para5: culong): cint{.libx11.} -proc XFreeCursor*(para1: PDisplay, para2: Cursor): cint{.libx11.} -proc XFreeExtensionList*(para1: PPchar): cint{.libx11.} -proc XFreeFont*(para1: PDisplay, para2: PXFontStruct): cint{.libx11.} -proc XFreeFontInfo*(para1: PPchar, para2: PXFontStruct, para3: cint): cint{. - libx11.} -proc XFreeFontNames*(para1: PPchar): cint{.libx11.} -proc XFreeFontPath*(para1: PPchar): cint{.libx11.} -proc XFreeGC*(para1: PDisplay, para2: GC): cint{.libx11.} -proc XFreeModifiermap*(para1: PXModifierKeymap): cint{.libx11.} -proc XFreePixmap*(para1: PDisplay, para2: Pixmap): cint{.libx11.} -proc XGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring, - para5: cuint, para6: cuint, para7: cuint, para8: cint, - para9: cint, para10: Pcint, para11: Pcint, para12: Pcint, - para13: Pcint): cint{.libx11.} -proc XGetErrorDatabaseText*(para1: PDisplay, para2: cstring, para3: cstring, - para4: cstring, para5: cstring, para6: cint): cint{. - libx11.} -proc XGetErrorText*(para1: PDisplay, para2: cint, para3: cstring, para4: cint): cint{. - libx11.} -proc XGetFontProperty*(para1: PXFontStruct, para2: Atom, para3: Pculong): XBool{. - libx11.} -proc XGetGCValues*(para1: PDisplay, para2: GC, para3: culong, para4: PXGCValues): Status{. - libx11.} -proc XGetGeometry*(para1: PDisplay, para2: Drawable, para3: PWindow, - para4: Pcint, para5: Pcint, para6: Pcuint, para7: Pcuint, - para8: Pcuint, para9: Pcuint): Status{.libx11.} -proc XGetIconName*(para1: PDisplay, para2: Window, para3: PPchar): Status{. - libx11.} -proc XGetInputFocus*(para1: PDisplay, para2: PWindow, para3: Pcint): cint{. - libx11.} -proc XGetKeyboardControl*(para1: PDisplay, para2: PXKeyboardState): cint{.libx11.} -proc XGetPointerControl*(para1: PDisplay, para2: Pcint, para3: Pcint, - para4: Pcint): cint{.libx11.} -proc XGetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{. - libx11.} -proc XGetScreenSaver*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: Pcint, - para5: Pcint): cint{.libx11.} -proc XGetTransientForHint*(para1: PDisplay, para2: Window, para3: PWindow): Status{. - libx11.} -proc XGetWindowProperty*(para1: PDisplay, para2: Window, para3: Atom, - para4: clong, para5: clong, para6: XBool, para7: Atom, - para8: PAtom, para9: Pcint, para10: Pculong, - para11: Pculong, para12: PPcuchar): cint{.libx11.} -proc XGetWindowAttributes*(para1: PDisplay, para2: Window, - para3: PXWindowAttributes): Status{.libx11.} -proc XGrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: Window, - para5: XBool, para6: cuint, para7: cint, para8: cint, - para9: Window, para10: Cursor): cint{.libx11.} -proc XGrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: Window, - para5: XBool, para6: cint, para7: cint): cint{.libx11.} -proc XGrabKeyboard*(para1: PDisplay, para2: Window, para3: XBool, para4: cint, - para5: cint, para6: Time): cint{.libx11.} -proc XGrabPointer*(para1: PDisplay, para2: Window, para3: XBool, para4: cuint, - para5: cint, para6: cint, para7: Window, para8: Cursor, - para9: Time): cint{.libx11.} -proc XGrabServer*(para1: PDisplay): cint{.libx11.} -proc XHeightMMOfScreen*(para1: PScreen): cint{.libx11.} -proc XHeightOfScreen*(para1: PScreen): cint{.libx11.} -proc XIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, - para4: XPointer): cint{.libx11.} -proc XImageByteOrder*(para1: PDisplay): cint{.libx11.} -proc XInstallColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.} -proc XKeysymToKeycode*(para1: PDisplay, para2: KeySym): KeyCode{.libx11.} -proc XKillClient*(para1: PDisplay, para2: XID): cint{.libx11.} -proc XLookupColor*(para1: PDisplay, para2: Colormap, para3: cstring, - para4: PXColor, para5: PXColor): Status{.libx11.} -proc XLowerWindow*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XMapRaised*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XMapSubwindows*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XMapWindow*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): cint{.libx11.} -proc XMaxCmapsOfScreen*(para1: PScreen): cint{.libx11.} -proc XMinCmapsOfScreen*(para1: PScreen): cint{.libx11.} -proc XMoveResizeWindow*(para1: PDisplay, para2: Window, para3: cint, - para4: cint, para5: cuint, para6: cuint): cint{.libx11.} -proc XMoveWindow*(para1: PDisplay, para2: Window, para3: cint, para4: cint): cint{. - libx11.} -proc XNextEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.} -proc XNoOp*(para1: PDisplay): cint{.libx11.} -proc XParseColor*(para1: PDisplay, para2: Colormap, para3: cstring, - para4: PXColor): Status{.libx11.} -proc XParseGeometry*(para1: cstring, para2: Pcint, para3: Pcint, para4: Pcuint, - para5: Pcuint): cint{.libx11.} -proc XPeekEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.} -proc XPeekIfEvent*(para1: PDisplay, para2: PXEvent, para3: funcifevent, - para4: XPointer): cint{.libx11.} -proc XPending*(para1: PDisplay): cint{.libx11.} -proc XPlanesOfScreen*(para1: PScreen): cint{.libx11.} -proc XProtocolRevision*(para1: PDisplay): cint{.libx11.} -proc XProtocolVersion*(para1: PDisplay): cint{.libx11.} -proc XPutBackEvent*(para1: PDisplay, para2: PXEvent): cint{.libx11.} -proc XPutImage*(para1: PDisplay, para2: Drawable, para3: GC, para4: PXImage, - para5: cint, para6: cint, para7: cint, para8: cint, - para9: cuint, para10: cuint): cint{.libx11.} -proc XQLength*(para1: PDisplay): cint{.libx11.} -proc XQueryBestCursor*(para1: PDisplay, para2: Drawable, para3: cuint, - para4: cuint, para5: Pcuint, para6: Pcuint): Status{. - libx11.} -proc XQueryBestSize*(para1: PDisplay, para2: cint, para3: Drawable, - para4: cuint, para5: cuint, para6: Pcuint, para7: Pcuint): Status{. - libx11.} -proc XQueryBestStipple*(para1: PDisplay, para2: Drawable, para3: cuint, - para4: cuint, para5: Pcuint, para6: Pcuint): Status{. - libx11.} -proc XQueryBestTile*(para1: PDisplay, para2: Drawable, para3: cuint, - para4: cuint, para5: Pcuint, para6: Pcuint): Status{. - libx11.} -proc XQueryColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint{. - libx11.} -proc XQueryColors*(para1: PDisplay, para2: Colormap, para3: PXColor, - para4: cint): cint{.libx11.} -proc XQueryExtension*(para1: PDisplay, para2: cstring, para3: Pcint, - para4: Pcint, para5: Pcint): XBool{.libx11.} - #? -proc XQueryKeymap*(para1: PDisplay, para2: chararr32): cint{.libx11.} -proc XQueryPointer*(para1: PDisplay, para2: Window, para3: PWindow, - para4: PWindow, para5: Pcint, para6: Pcint, para7: Pcint, - para8: Pcint, para9: Pcuint): XBool{.libx11.} -proc XQueryTextExtents*(para1: PDisplay, para2: XID, para3: cstring, - para4: cint, para5: Pcint, para6: Pcint, para7: Pcint, - para8: PXCharStruct): cint{.libx11.} -proc XQueryTextExtents16*(para1: PDisplay, para2: XID, para3: PXChar2b, - para4: cint, para5: Pcint, para6: Pcint, para7: Pcint, - para8: PXCharStruct): cint{.libx11.} -proc XQueryTree*(para1: PDisplay, para2: Window, para3: PWindow, - para4: PWindow, para5: PPWindow, para6: Pcuint): Status{. - libx11.} -proc XRaiseWindow*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XReadBitmapFile*(para1: PDisplay, para2: Drawable, para3: cstring, - para4: Pcuint, para5: Pcuint, para6: PPixmap, - para7: Pcint, para8: Pcint): cint{.libx11.} -proc XReadBitmapFileData*(para1: cstring, para2: Pcuint, para3: Pcuint, - para4: PPcuchar, para5: Pcint, para6: Pcint): cint{. - libx11.} -proc XRebindKeysym*(para1: PDisplay, para2: KeySym, para3: PKeySym, - para4: cint, para5: Pcuchar, para6: cint): cint{.libx11.} -proc XRecolorCursor*(para1: PDisplay, para2: Cursor, para3: PXColor, - para4: PXColor): cint{.libx11.} -proc XRefreshKeyboardMapping*(para1: PXMappingEvent): cint{.libx11.} -proc XRemoveFromSaveSet*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XRemoveHost*(para1: PDisplay, para2: PXHostAddress): cint{.libx11.} -proc XRemoveHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint{. - libx11.} -proc XReparentWindow*(para1: PDisplay, para2: Window, para3: Window, - para4: cint, para5: cint): cint{.libx11.} -proc XResetScreenSaver*(para1: PDisplay): cint{.libx11.} -proc XResizeWindow*(para1: PDisplay, para2: Window, para3: cuint, para4: cuint): cint{. - libx11.} -proc XRestackWindows*(para1: PDisplay, para2: PWindow, para3: cint): cint{. - libx11.} -proc XRotateBuffers*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XRotateWindowProperties*(para1: PDisplay, para2: Window, para3: PAtom, - para4: cint, para5: cint): cint{.libx11.} -proc XScreenCount*(para1: PDisplay): cint{.libx11.} -proc XSelectInput*(para1: PDisplay, para2: Window, para3: clong): cint{.libx11.} -proc XSendEvent*(para1: PDisplay, para2: Window, para3: XBool, para4: clong, - para5: PXEvent): Status{.libx11.} -proc XSetAccessControl*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XSetArcMode*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.} -proc XSetBackground*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.} -proc XSetClipMask*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.} -proc XSetClipOrigin*(para1: PDisplay, para2: GC, para3: cint, para4: cint): cint{. - libx11.} -proc XSetClipRectangles*(para1: PDisplay, para2: GC, para3: cint, para4: cint, - para5: PXRectangle, para6: cint, para7: cint): cint{. - libx11.} -proc XSetCloseDownMode*(para1: PDisplay, para2: cint): cint{.libx11.} -proc XSetCommand*(para1: PDisplay, para2: Window, para3: PPchar, para4: cint): cint{. - libx11.} -proc XSetDashes*(para1: PDisplay, para2: GC, para3: cint, para4: cstring, - para5: cint): cint{.libx11.} -proc XSetFillRule*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.} -proc XSetFillStyle*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.} -proc XSetFont*(para1: PDisplay, para2: GC, para3: Font): cint{.libx11.} -proc XSetFontPath*(para1: PDisplay, para2: PPchar, para3: cint): cint{.libx11.} -proc XSetForeground*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.} -proc XSetFunction*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.} -proc XSetGraphicsExposures*(para1: PDisplay, para2: GC, para3: XBool): cint{. - libx11.} -proc XSetIconName*(para1: PDisplay, para2: Window, para3: cstring): cint{. - libx11.} -proc XSetInputFocus*(para1: PDisplay, para2: Window, para3: cint, para4: Time): cint{. - libx11.} -proc XSetLineAttributes*(para1: PDisplay, para2: GC, para3: cuint, para4: cint, - para5: cint, para6: cint): cint{.libx11.} -proc XSetModifierMapping*(para1: PDisplay, para2: PXModifierKeymap): cint{. - libx11.} -proc XSetPlaneMask*(para1: PDisplay, para2: GC, para3: culong): cint{.libx11.} -proc XSetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint{. - libx11.} -proc XSetScreenSaver*(para1: PDisplay, para2: cint, para3: cint, para4: cint, - para5: cint): cint{.libx11.} -proc XSetSelectionOwner*(para1: PDisplay, para2: Atom, para3: Window, - para4: Time): cint{.libx11.} -proc XSetState*(para1: PDisplay, para2: GC, para3: culong, para4: culong, - para5: cint, para6: culong): cint{.libx11.} -proc XSetStipple*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.} -proc XSetSubwindowMode*(para1: PDisplay, para2: GC, para3: cint): cint{.libx11.} -proc XSetTSOrigin*(para1: PDisplay, para2: GC, para3: cint, para4: cint): cint{. - libx11.} -proc XSetTile*(para1: PDisplay, para2: GC, para3: Pixmap): cint{.libx11.} -proc XSetWindowBackground*(para1: PDisplay, para2: Window, para3: culong): cint{. - libx11.} -proc XSetWindowBackgroundPixmap*(para1: PDisplay, para2: Window, para3: Pixmap): cint{. - libx11.} -proc XSetWindowBorder*(para1: PDisplay, para2: Window, para3: culong): cint{. - libx11.} -proc XSetWindowBorderPixmap*(para1: PDisplay, para2: Window, para3: Pixmap): cint{. - libx11.} -proc XSetWindowBorderWidth*(para1: PDisplay, para2: Window, para3: cuint): cint{. - libx11.} -proc XSetWindowColormap*(para1: PDisplay, para2: Window, para3: Colormap): cint{. - libx11.} -proc XStoreBuffer*(para1: PDisplay, para2: cstring, para3: cint, para4: cint): cint{. - libx11.} -proc XStoreBytes*(para1: PDisplay, para2: cstring, para3: cint): cint{.libx11.} -proc XStoreColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint{. - libx11.} -proc XStoreColors*(para1: PDisplay, para2: Colormap, para3: PXColor, - para4: cint): cint{.libx11.} -proc XStoreName*(para1: PDisplay, para2: Window, para3: cstring): cint{.libx11.} -proc XStoreNamedColor*(para1: PDisplay, para2: Colormap, para3: cstring, - para4: culong, para5: cint): cint{.libx11.} -proc XSync*(para1: PDisplay, para2: XBool): cint{.libx11.} -proc XTextExtents*(para1: PXFontStruct, para2: cstring, para3: cint, - para4: Pcint, para5: Pcint, para6: Pcint, para7: PXCharStruct): cint{. - libx11.} -proc XTextExtents16*(para1: PXFontStruct, para2: PXChar2b, para3: cint, - para4: Pcint, para5: Pcint, para6: Pcint, - para7: PXCharStruct): cint{.libx11.} -proc XTextWidth*(para1: PXFontStruct, para2: cstring, para3: cint): cint{.libx11.} -proc XTextWidth16*(para1: PXFontStruct, para2: PXChar2b, para3: cint): cint{. - libx11.} -proc XTranslateCoordinates*(para1: PDisplay, para2: Window, para3: Window, - para4: cint, para5: cint, para6: Pcint, - para7: Pcint, para8: PWindow): XBool{.libx11.} -proc XUndefineCursor*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XUngrabButton*(para1: PDisplay, para2: cuint, para3: cuint, para4: Window): cint{. - libx11.} -proc XUngrabKey*(para1: PDisplay, para2: cint, para3: cuint, para4: Window): cint{. - libx11.} -proc XUngrabKeyboard*(para1: PDisplay, para2: Time): cint{.libx11.} -proc XUngrabPointer*(para1: PDisplay, para2: Time): cint{.libx11.} -proc XUngrabServer*(para1: PDisplay): cint{.libx11.} -proc XUninstallColormap*(para1: PDisplay, para2: Colormap): cint{.libx11.} -proc XUnloadFont*(para1: PDisplay, para2: Font): cint{.libx11.} -proc XUnmapSubwindows*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XUnmapWindow*(para1: PDisplay, para2: Window): cint{.libx11.} -proc XVendorRelease*(para1: PDisplay): cint{.libx11.} -proc XWarpPointer*(para1: PDisplay, para2: Window, para3: Window, para4: cint, - para5: cint, para6: cuint, para7: cuint, para8: cint, - para9: cint): cint{.libx11.} -proc XWidthMMOfScreen*(para1: PScreen): cint{.libx11.} -proc XWidthOfScreen*(para1: PScreen): cint{.libx11.} -proc XWindowEvent*(para1: PDisplay, para2: Window, para3: clong, para4: PXEvent): cint{. - libx11.} -proc XWriteBitmapFile*(para1: PDisplay, para2: cstring, para3: Pixmap, - para4: cuint, para5: cuint, para6: cint, para7: cint): cint{. - libx11.} -proc XSupportsLocale*(): XBool{.libx11.} -proc XSetLocaleModifiers*(para1: cstring): cstring{.libx11.} -proc XOpenOM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, - para4: cstring): XOM{.libx11.} -proc XCloseOM*(para1: XOM): Status{.libx11.} -proc XSetOMValues*(para1: XOM): cstring{.varargs, libx11.} -proc XGetOMValues*(para1: XOM): cstring{.varargs, libx11.} -proc XDisplayOfOM*(para1: XOM): PDisplay{.libx11.} -proc XLocaleOfOM*(para1: XOM): cstring{.libx11.} -proc XCreateOC*(para1: XOM): XOC{.varargs, libx11.} -proc XDestroyOC*(para1: XOC){.libx11.} -proc XOMOfOC*(para1: XOC): XOM{.libx11.} -proc XSetOCValues*(para1: XOC): cstring{.varargs, libx11.} -proc XGetOCValues*(para1: XOC): cstring{.varargs, libx11.} -proc XCreateFontSet*(para1: PDisplay, para2: cstring, para3: PPPchar, - para4: Pcint, para5: PPchar): XFontSet{.libx11.} -proc XFreeFontSet*(para1: PDisplay, para2: XFontSet){.libx11.} -proc XFontsOfFontSet*(para1: XFontSet, para2: PPPXFontStruct, para3: PPPchar): cint{. - libx11.} -proc XBaseFontNameListOfFontSet*(para1: XFontSet): cstring{.libx11.} -proc XLocaleOfFontSet*(para1: XFontSet): cstring{.libx11.} -proc XContextDependentDrawing*(para1: XFontSet): XBool{.libx11.} -proc XDirectionalDependentDrawing*(para1: XFontSet): XBool{.libx11.} -proc XContextualDrawing*(para1: XFontSet): XBool{.libx11.} -proc XExtentsOfFontSet*(para1: XFontSet): PXFontSetExtents{.libx11.} -proc XmbTextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint{. - libx11.} -proc XwcTextEscapement*(para1: XFontSet, para2: PWideChar, para3: cint): cint{. - libx11.} -proc Xutf8TextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint{. - libx11.} -proc XmbTextExtents*(para1: XFontSet, para2: cstring, para3: cint, - para4: PXRectangle, para5: PXRectangle): cint{.libx11.} -proc XwcTextExtents*(para1: XFontSet, para2: PWideChar, para3: cint, - para4: PXRectangle, para5: PXRectangle): cint{.libx11.} -proc Xutf8TextExtents*(para1: XFontSet, para2: cstring, para3: cint, - para4: PXRectangle, para5: PXRectangle): cint{.libx11.} -proc XmbTextPerCharExtents*(para1: XFontSet, para2: cstring, para3: cint, - para4: PXRectangle, para5: PXRectangle, para6: cint, - para7: Pcint, para8: PXRectangle, para9: PXRectangle): Status{. - libx11.} -proc XwcTextPerCharExtents*(para1: XFontSet, para2: PWideChar, para3: cint, - para4: PXRectangle, para5: PXRectangle, para6: cint, - para7: Pcint, para8: PXRectangle, para9: PXRectangle): Status{. - libx11.} -proc Xutf8TextPerCharExtents*(para1: XFontSet, para2: cstring, para3: cint, - para4: PXRectangle, para5: PXRectangle, - para6: cint, para7: Pcint, para8: PXRectangle, - para9: PXRectangle): Status{.libx11.} -proc XmbDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: PXmbTextItem, para7: cint){.libx11.} -proc XwcDrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: PXwcTextItem, para7: cint){.libx11.} -proc Xutf8DrawText*(para1: PDisplay, para2: Drawable, para3: GC, para4: cint, - para5: cint, para6: PXmbTextItem, para7: cint){.libx11.} -proc XmbDrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet, - para4: GC, para5: cint, para6: cint, para7: cstring, - para8: cint){.libx11.} -proc XwcDrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet, - para4: GC, para5: cint, para6: cint, para7: PWideChar, - para8: cint){.libx11.} -proc Xutf8DrawString*(para1: PDisplay, para2: Drawable, para3: XFontSet, - para4: GC, para5: cint, para6: cint, para7: cstring, - para8: cint){.libx11.} -proc XmbDrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet, - para4: GC, para5: cint, para6: cint, para7: cstring, - para8: cint){.libx11.} -proc XwcDrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet, - para4: GC, para5: cint, para6: cint, para7: PWideChar, - para8: cint){.libx11.} -proc Xutf8DrawImageString*(para1: PDisplay, para2: Drawable, para3: XFontSet, - para4: GC, para5: cint, para6: cint, para7: cstring, - para8: cint){.libx11.} -proc XOpenIM*(para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, - para4: cstring): XIM{.libx11.} -proc XCloseIM*(para1: XIM): Status{.libx11.} -proc XGetIMValues*(para1: XIM): cstring{.varargs, libx11.} -proc XSetIMValues*(para1: XIM): cstring{.varargs, libx11.} -proc XDisplayOfIM*(para1: XIM): PDisplay{.libx11.} -proc XLocaleOfIM*(para1: XIM): cstring{.libx11.} -proc XCreateIC*(para1: XIM): XIC{.varargs, libx11.} -proc XDestroyIC*(para1: XIC){.libx11.} -proc XSetICFocus*(para1: XIC){.libx11.} -proc XUnsetICFocus*(para1: XIC){.libx11.} -proc XwcResetIC*(para1: XIC): PWideChar{.libx11.} -proc XmbResetIC*(para1: XIC): cstring{.libx11.} -proc Xutf8ResetIC*(para1: XIC): cstring{.libx11.} -proc XSetICValues*(para1: XIC): cstring{.varargs, libx11.} -proc XGetICValues*(para1: XIC): cstring{.varargs, libx11.} -proc XIMOfIC*(para1: XIC): XIM{.libx11.} -proc XFilterEvent*(para1: PXEvent, para2: Window): XBool{.libx11.} -proc XmbLookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: cstring, - para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.} -proc XwcLookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: PWideChar, - para4: cint, para5: PKeySym, para6: PStatus): cint{.libx11.} -proc Xutf8LookupString*(para1: XIC, para2: PXKeyPressedEvent, para3: cstring, - para4: cint, para5: PKeySym, para6: PStatus): cint{. - libx11.} -proc XVaCreateNestedList*(unused: cint): XVaNestedList{.varargs, libx11.} -proc XRegisterIMInstantiateCallback*(para1: PDisplay, para2: PXrmHashBucketRec, - para3: cstring, para4: cstring, - para5: XIDProc, para6: XPointer): XBool{. - libx11.} -proc XUnregisterIMInstantiateCallback*(para1: PDisplay, - para2: PXrmHashBucketRec, para3: cstring, - para4: cstring, para5: XIDProc, - para6: XPointer): XBool{.libx11.} -type - XConnectionWatchProc* = proc (para1: PDisplay, para2: XPointer, para3: cint, - para4: XBool, para5: PXPointer){.cdecl.} +proc XGrabButton*( + para1: PDisplay, + para2: cuint, + para3: cuint, + para4: Window, + para5: XBool, + para6: cuint, + para7: cint, + para8: cint, + para9: Window, + para10: Cursor, +): cint {.libx11.} + +proc XGrabKey*( + para1: PDisplay, + para2: cint, + para3: cuint, + para4: Window, + para5: XBool, + para6: cint, + para7: cint, +): cint {.libx11.} + +proc XGrabKeyboard*( + para1: PDisplay, para2: Window, para3: XBool, para4: cint, para5: cint, para6: Time +): cint {.libx11.} + +proc XGrabPointer*( + para1: PDisplay, + para2: Window, + para3: XBool, + para4: cuint, + para5: cint, + para6: cint, + para7: Window, + para8: Cursor, + para9: Time, +): cint {.libx11.} + +proc XGrabServer*(para1: PDisplay): cint {.libx11.} +proc XHeightMMOfScreen*(para1: PScreen): cint {.libx11.} +proc XHeightOfScreen*(para1: PScreen): cint {.libx11.} +proc XIfEvent*( + para1: PDisplay, para2: PXEvent, para3: funcifevent, para4: XPointer +): cint {.libx11.} + +proc XImageByteOrder*(para1: PDisplay): cint {.libx11.} +proc XInstallColormap*(para1: PDisplay, para2: Colormap): cint {.libx11.} +proc XKeysymToKeycode*(para1: PDisplay, para2: KeySym): KeyCode {.libx11.} +proc XKillClient*(para1: PDisplay, para2: XID): cint {.libx11.} +proc XLookupColor*( + para1: PDisplay, para2: Colormap, para3: cstring, para4: PXColor, para5: PXColor +): Status {.libx11.} + +proc XLowerWindow*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XMapRaised*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XMapSubwindows*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XMapWindow*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XMaskEvent*(para1: PDisplay, para2: clong, para3: PXEvent): cint {.libx11.} +proc XMaxCmapsOfScreen*(para1: PScreen): cint {.libx11.} +proc XMinCmapsOfScreen*(para1: PScreen): cint {.libx11.} +proc XMoveResizeWindow*( + para1: PDisplay, para2: Window, para3: cint, para4: cint, para5: cuint, para6: cuint +): cint {.libx11.} + +proc XMoveWindow*( + para1: PDisplay, para2: Window, para3: cint, para4: cint +): cint {.libx11.} + +proc XNextEvent*(para1: PDisplay, para2: PXEvent): cint {.libx11.} +proc XNoOp*(para1: PDisplay): cint {.libx11.} +proc XParseColor*( + para1: PDisplay, para2: Colormap, para3: cstring, para4: PXColor +): Status {.libx11.} + +proc XParseGeometry*( + para1: cstring, para2: Pcint, para3: Pcint, para4: Pcuint, para5: Pcuint +): cint {.libx11.} + +proc XPeekEvent*(para1: PDisplay, para2: PXEvent): cint {.libx11.} +proc XPeekIfEvent*( + para1: PDisplay, para2: PXEvent, para3: funcifevent, para4: XPointer +): cint {.libx11.} + +proc XPending*(para1: PDisplay): cint {.libx11.} +proc XPlanesOfScreen*(para1: PScreen): cint {.libx11.} +proc XProtocolRevision*(para1: PDisplay): cint {.libx11.} +proc XProtocolVersion*(para1: PDisplay): cint {.libx11.} +proc XPutBackEvent*(para1: PDisplay, para2: PXEvent): cint {.libx11.} +proc XPutImage*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: PXImage, + para5: cint, + para6: cint, + para7: cint, + para8: cint, + para9: cuint, + para10: cuint, +): cint {.libx11.} + +proc XQLength*(para1: PDisplay): cint {.libx11.} +proc XQueryBestCursor*( + para1: PDisplay, + para2: Drawable, + para3: cuint, + para4: cuint, + para5: Pcuint, + para6: Pcuint, +): Status {.libx11.} + +proc XQueryBestSize*( + para1: PDisplay, + para2: cint, + para3: Drawable, + para4: cuint, + para5: cuint, + para6: Pcuint, + para7: Pcuint, +): Status {.libx11.} + +proc XQueryBestStipple*( + para1: PDisplay, + para2: Drawable, + para3: cuint, + para4: cuint, + para5: Pcuint, + para6: Pcuint, +): Status {.libx11.} + +proc XQueryBestTile*( + para1: PDisplay, + para2: Drawable, + para3: cuint, + para4: cuint, + para5: Pcuint, + para6: Pcuint, +): Status {.libx11.} + +proc XQueryColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint {.libx11.} +proc XQueryColors*( + para1: PDisplay, para2: Colormap, para3: PXColor, para4: cint +): cint {.libx11.} + +proc XQueryExtension*( + para1: PDisplay, para2: cstring, para3: Pcint, para4: Pcint, para5: Pcint +): XBool {.libx11.} #? + +proc XQueryKeymap*(para1: PDisplay, para2: chararr32): cint {.libx11.} +proc XQueryPointer*( + para1: PDisplay, + para2: Window, + para3: PWindow, + para4: PWindow, + para5: Pcint, + para6: Pcint, + para7: Pcint, + para8: Pcint, + para9: Pcuint, +): XBool {.libx11.} + +proc XQueryTextExtents*( + para1: PDisplay, + para2: XID, + para3: cstring, + para4: cint, + para5: Pcint, + para6: Pcint, + para7: Pcint, + para8: PXCharStruct, +): cint {.libx11.} + +proc XQueryTextExtents16*( + para1: PDisplay, + para2: XID, + para3: PXChar2b, + para4: cint, + para5: Pcint, + para6: Pcint, + para7: Pcint, + para8: PXCharStruct, +): cint {.libx11.} + +proc XQueryTree*( + para1: PDisplay, + para2: Window, + para3: PWindow, + para4: PWindow, + para5: PPWindow, + para6: Pcuint, +): Status {.libx11.} + +proc XRaiseWindow*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XReadBitmapFile*( + para1: PDisplay, + para2: Drawable, + para3: cstring, + para4: Pcuint, + para5: Pcuint, + para6: PPixmap, + para7: Pcint, + para8: Pcint, +): cint {.libx11.} + +proc XReadBitmapFileData*( + para1: cstring, + para2: Pcuint, + para3: Pcuint, + para4: PPcuchar, + para5: Pcint, + para6: Pcint, +): cint {.libx11.} + +proc XRebindKeysym*( + para1: PDisplay, + para2: KeySym, + para3: PKeySym, + para4: cint, + para5: Pcuchar, + para6: cint, +): cint {.libx11.} + +proc XRecolorCursor*( + para1: PDisplay, para2: Cursor, para3: PXColor, para4: PXColor +): cint {.libx11.} + +proc XRefreshKeyboardMapping*(para1: PXMappingEvent): cint {.libx11.} +proc XRemoveFromSaveSet*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XRemoveHost*(para1: PDisplay, para2: PXHostAddress): cint {.libx11.} +proc XRemoveHosts*(para1: PDisplay, para2: PXHostAddress, para3: cint): cint {.libx11.} +proc XReparentWindow*( + para1: PDisplay, para2: Window, para3: Window, para4: cint, para5: cint +): cint {.libx11.} + +proc XResetScreenSaver*(para1: PDisplay): cint {.libx11.} +proc XResizeWindow*( + para1: PDisplay, para2: Window, para3: cuint, para4: cuint +): cint {.libx11.} + +proc XRestackWindows*(para1: PDisplay, para2: PWindow, para3: cint): cint {.libx11.} +proc XRotateBuffers*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XRotateWindowProperties*( + para1: PDisplay, para2: Window, para3: PAtom, para4: cint, para5: cint +): cint {.libx11.} + +proc XScreenCount*(para1: PDisplay): cint {.libx11.} +proc XSelectInput*(para1: PDisplay, para2: Window, para3: clong): cint {.libx11.} +proc XSendEvent*( + para1: PDisplay, para2: Window, para3: XBool, para4: clong, para5: PXEvent +): Status {.libx11.} + +proc XSetAccessControl*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XSetArcMode*(para1: PDisplay, para2: GC, para3: cint): cint {.libx11.} +proc XSetBackground*(para1: PDisplay, para2: GC, para3: culong): cint {.libx11.} +proc XSetClipMask*(para1: PDisplay, para2: GC, para3: Pixmap): cint {.libx11.} +proc XSetClipOrigin*( + para1: PDisplay, para2: GC, para3: cint, para4: cint +): cint {.libx11.} + +proc XSetClipRectangles*( + para1: PDisplay, + para2: GC, + para3: cint, + para4: cint, + para5: PXRectangle, + para6: cint, + para7: cint, +): cint {.libx11.} + +proc XSetCloseDownMode*(para1: PDisplay, para2: cint): cint {.libx11.} +proc XSetCommand*( + para1: PDisplay, para2: Window, para3: PPchar, para4: cint +): cint {.libx11.} + +proc XSetDashes*( + para1: PDisplay, para2: GC, para3: cint, para4: cstring, para5: cint +): cint {.libx11.} + +proc XSetFillRule*(para1: PDisplay, para2: GC, para3: cint): cint {.libx11.} +proc XSetFillStyle*(para1: PDisplay, para2: GC, para3: cint): cint {.libx11.} +proc XSetFont*(para1: PDisplay, para2: GC, para3: Font): cint {.libx11.} +proc XSetFontPath*(para1: PDisplay, para2: PPchar, para3: cint): cint {.libx11.} +proc XSetForeground*(para1: PDisplay, para2: GC, para3: culong): cint {.libx11.} +proc XSetFunction*(para1: PDisplay, para2: GC, para3: cint): cint {.libx11.} +proc XSetGraphicsExposures*(para1: PDisplay, para2: GC, para3: XBool): cint {.libx11.} +proc XSetIconName*(para1: PDisplay, para2: Window, para3: cstring): cint {.libx11.} +proc XSetInputFocus*( + para1: PDisplay, para2: Window, para3: cint, para4: Time +): cint {.libx11.} + +proc XSetLineAttributes*( + para1: PDisplay, para2: GC, para3: cuint, para4: cint, para5: cint, para6: cint +): cint {.libx11.} + +proc XSetModifierMapping*(para1: PDisplay, para2: PXModifierKeymap): cint {.libx11.} +proc XSetPlaneMask*(para1: PDisplay, para2: GC, para3: culong): cint {.libx11.} +proc XSetPointerMapping*(para1: PDisplay, para2: Pcuchar, para3: cint): cint {.libx11.} +proc XSetScreenSaver*( + para1: PDisplay, para2: cint, para3: cint, para4: cint, para5: cint +): cint {.libx11.} + +proc XSetSelectionOwner*( + para1: PDisplay, para2: Atom, para3: Window, para4: Time +): cint {.libx11.} + +proc XSetState*( + para1: PDisplay, para2: GC, para3: culong, para4: culong, para5: cint, para6: culong +): cint {.libx11.} + +proc XSetStipple*(para1: PDisplay, para2: GC, para3: Pixmap): cint {.libx11.} +proc XSetSubwindowMode*(para1: PDisplay, para2: GC, para3: cint): cint {.libx11.} +proc XSetTSOrigin*( + para1: PDisplay, para2: GC, para3: cint, para4: cint +): cint {.libx11.} + +proc XSetTile*(para1: PDisplay, para2: GC, para3: Pixmap): cint {.libx11.} +proc XSetWindowBackground*( + para1: PDisplay, para2: Window, para3: culong +): cint {.libx11.} + +proc XSetWindowBackgroundPixmap*( + para1: PDisplay, para2: Window, para3: Pixmap +): cint {.libx11.} + +proc XSetWindowBorder*(para1: PDisplay, para2: Window, para3: culong): cint {.libx11.} +proc XSetWindowBorderPixmap*( + para1: PDisplay, para2: Window, para3: Pixmap +): cint {.libx11.} + +proc XSetWindowBorderWidth*( + para1: PDisplay, para2: Window, para3: cuint +): cint {.libx11.} + +proc XSetWindowColormap*( + para1: PDisplay, para2: Window, para3: Colormap +): cint {.libx11.} + +proc XStoreBuffer*( + para1: PDisplay, para2: cstring, para3: cint, para4: cint +): cint {.libx11.} + +proc XStoreBytes*(para1: PDisplay, para2: cstring, para3: cint): cint {.libx11.} +proc XStoreColor*(para1: PDisplay, para2: Colormap, para3: PXColor): cint {.libx11.} +proc XStoreColors*( + para1: PDisplay, para2: Colormap, para3: PXColor, para4: cint +): cint {.libx11.} -proc XInternalConnectionNumbers*(para1: PDisplay, para2: PPcint, para3: Pcint): Status{. - libx11.} -proc XProcessInternalConnection*(para1: PDisplay, para2: cint){.libx11.} -proc XAddConnectionWatch*(para1: PDisplay, para2: XConnectionWatchProc, - para3: XPointer): Status{.libx11.} -proc XRemoveConnectionWatch*(para1: PDisplay, para2: XConnectionWatchProc, - para3: XPointer){.libx11.} -proc XSetAuthorization*(para1: cstring, para2: cint, para3: cstring, para4: cint){. - libx11.} +proc XStoreName*(para1: PDisplay, para2: Window, para3: cstring): cint {.libx11.} +proc XStoreNamedColor*( + para1: PDisplay, para2: Colormap, para3: cstring, para4: culong, para5: cint +): cint {.libx11.} + +proc XSync*(para1: PDisplay, para2: XBool): cint {.libx11.} +proc XTextExtents*( + para1: PXFontStruct, + para2: cstring, + para3: cint, + para4: Pcint, + para5: Pcint, + para6: Pcint, + para7: PXCharStruct, +): cint {.libx11.} + +proc XTextExtents16*( + para1: PXFontStruct, + para2: PXChar2b, + para3: cint, + para4: Pcint, + para5: Pcint, + para6: Pcint, + para7: PXCharStruct, +): cint {.libx11.} + +proc XTextWidth*(para1: PXFontStruct, para2: cstring, para3: cint): cint {.libx11.} +proc XTextWidth16*(para1: PXFontStruct, para2: PXChar2b, para3: cint): cint {.libx11.} +proc XTranslateCoordinates*( + para1: PDisplay, + para2: Window, + para3: Window, + para4: cint, + para5: cint, + para6: Pcint, + para7: Pcint, + para8: PWindow, +): XBool {.libx11.} + +proc XUndefineCursor*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XUngrabButton*( + para1: PDisplay, para2: cuint, para3: cuint, para4: Window +): cint {.libx11.} + +proc XUngrabKey*( + para1: PDisplay, para2: cint, para3: cuint, para4: Window +): cint {.libx11.} + +proc XUngrabKeyboard*(para1: PDisplay, para2: Time): cint {.libx11.} +proc XUngrabPointer*(para1: PDisplay, para2: Time): cint {.libx11.} +proc XUngrabServer*(para1: PDisplay): cint {.libx11.} +proc XUninstallColormap*(para1: PDisplay, para2: Colormap): cint {.libx11.} +proc XUnloadFont*(para1: PDisplay, para2: Font): cint {.libx11.} +proc XUnmapSubwindows*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XUnmapWindow*(para1: PDisplay, para2: Window): cint {.libx11.} +proc XVendorRelease*(para1: PDisplay): cint {.libx11.} +proc XWarpPointer*( + para1: PDisplay, + para2: Window, + para3: Window, + para4: cint, + para5: cint, + para6: cuint, + para7: cuint, + para8: cint, + para9: cint, +): cint {.libx11.} + +proc XWidthMMOfScreen*(para1: PScreen): cint {.libx11.} +proc XWidthOfScreen*(para1: PScreen): cint {.libx11.} +proc XWindowEvent*( + para1: PDisplay, para2: Window, para3: clong, para4: PXEvent +): cint {.libx11.} + +proc XWriteBitmapFile*( + para1: PDisplay, + para2: cstring, + para3: Pixmap, + para4: cuint, + para5: cuint, + para6: cint, + para7: cint, +): cint {.libx11.} + +proc XSupportsLocale*(): XBool {.libx11.} +proc XSetLocaleModifiers*(para1: cstring): cstring {.libx11.} +proc XOpenOM*( + para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, para4: cstring +): XOM {.libx11.} + +proc XCloseOM*(para1: XOM): Status {.libx11.} +proc XSetOMValues*(para1: XOM): cstring {.varargs, libx11.} +proc XGetOMValues*(para1: XOM): cstring {.varargs, libx11.} +proc XDisplayOfOM*(para1: XOM): PDisplay {.libx11.} +proc XLocaleOfOM*(para1: XOM): cstring {.libx11.} +proc XCreateOC*(para1: XOM): XOC {.varargs, libx11.} +proc XDestroyOC*(para1: XOC) {.libx11.} +proc XOMOfOC*(para1: XOC): XOM {.libx11.} +proc XSetOCValues*(para1: XOC): cstring {.varargs, libx11.} +proc XGetOCValues*(para1: XOC): cstring {.varargs, libx11.} +proc XCreateFontSet*( + para1: PDisplay, para2: cstring, para3: PPPchar, para4: Pcint, para5: PPchar +): XFontSet {.libx11.} + +proc XFreeFontSet*(para1: PDisplay, para2: XFontSet) {.libx11.} +proc XFontsOfFontSet*( + para1: XFontSet, para2: PPPXFontStruct, para3: PPPchar +): cint {.libx11.} + +proc XBaseFontNameListOfFontSet*(para1: XFontSet): cstring {.libx11.} +proc XLocaleOfFontSet*(para1: XFontSet): cstring {.libx11.} +proc XContextDependentDrawing*(para1: XFontSet): XBool {.libx11.} +proc XDirectionalDependentDrawing*(para1: XFontSet): XBool {.libx11.} +proc XContextualDrawing*(para1: XFontSet): XBool {.libx11.} +proc XExtentsOfFontSet*(para1: XFontSet): PXFontSetExtents {.libx11.} +proc XmbTextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint {.libx11.} +proc XwcTextEscapement*(para1: XFontSet, para2: PWideChar, para3: cint): cint {.libx11.} +proc Xutf8TextEscapement*(para1: XFontSet, para2: cstring, para3: cint): cint {.libx11.} +proc XmbTextExtents*( + para1: XFontSet, para2: cstring, para3: cint, para4: PXRectangle, para5: PXRectangle +): cint {.libx11.} + +proc XwcTextExtents*( + para1: XFontSet, para2: PWideChar, para3: cint, para4: PXRectangle, para5: PXRectangle +): cint {.libx11.} + +proc Xutf8TextExtents*( + para1: XFontSet, para2: cstring, para3: cint, para4: PXRectangle, para5: PXRectangle +): cint {.libx11.} + +proc XmbTextPerCharExtents*( + para1: XFontSet, + para2: cstring, + para3: cint, + para4: PXRectangle, + para5: PXRectangle, + para6: cint, + para7: Pcint, + para8: PXRectangle, + para9: PXRectangle, +): Status {.libx11.} + +proc XwcTextPerCharExtents*( + para1: XFontSet, + para2: PWideChar, + para3: cint, + para4: PXRectangle, + para5: PXRectangle, + para6: cint, + para7: Pcint, + para8: PXRectangle, + para9: PXRectangle, +): Status {.libx11.} + +proc Xutf8TextPerCharExtents*( + para1: XFontSet, + para2: cstring, + para3: cint, + para4: PXRectangle, + para5: PXRectangle, + para6: cint, + para7: Pcint, + para8: PXRectangle, + para9: PXRectangle, +): Status {.libx11.} + +proc XmbDrawText*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXmbTextItem, + para7: cint, +) {.libx11.} + +proc XwcDrawText*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXwcTextItem, + para7: cint, +) {.libx11.} + +proc Xutf8DrawText*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: cint, + para5: cint, + para6: PXmbTextItem, + para7: cint, +) {.libx11.} + +proc XmbDrawString*( + para1: PDisplay, + para2: Drawable, + para3: XFontSet, + para4: GC, + para5: cint, + para6: cint, + para7: cstring, + para8: cint, +) {.libx11.} + +proc XwcDrawString*( + para1: PDisplay, + para2: Drawable, + para3: XFontSet, + para4: GC, + para5: cint, + para6: cint, + para7: PWideChar, + para8: cint, +) {.libx11.} + +proc Xutf8DrawString*( + para1: PDisplay, + para2: Drawable, + para3: XFontSet, + para4: GC, + para5: cint, + para6: cint, + para7: cstring, + para8: cint, +) {.libx11.} + +proc XmbDrawImageString*( + para1: PDisplay, + para2: Drawable, + para3: XFontSet, + para4: GC, + para5: cint, + para6: cint, + para7: cstring, + para8: cint, +) {.libx11.} + +proc XwcDrawImageString*( + para1: PDisplay, + para2: Drawable, + para3: XFontSet, + para4: GC, + para5: cint, + para6: cint, + para7: PWideChar, + para8: cint, +) {.libx11.} + +proc Xutf8DrawImageString*( + para1: PDisplay, + para2: Drawable, + para3: XFontSet, + para4: GC, + para5: cint, + para6: cint, + para7: cstring, + para8: cint, +) {.libx11.} + +proc XOpenIM*( + para1: PDisplay, para2: PXrmHashBucketRec, para3: cstring, para4: cstring +): XIM {.libx11.} + +proc XCloseIM*(para1: XIM): Status {.libx11.} +proc XGetIMValues*(para1: XIM): cstring {.varargs, libx11.} +proc XSetIMValues*(para1: XIM): cstring {.varargs, libx11.} +proc XDisplayOfIM*(para1: XIM): PDisplay {.libx11.} +proc XLocaleOfIM*(para1: XIM): cstring {.libx11.} +proc XCreateIC*(para1: XIM): XIC {.varargs, libx11.} +proc XDestroyIC*(para1: XIC) {.libx11.} +proc XSetICFocus*(para1: XIC) {.libx11.} +proc XUnsetICFocus*(para1: XIC) {.libx11.} +proc XwcResetIC*(para1: XIC): PWideChar {.libx11.} +proc XmbResetIC*(para1: XIC): cstring {.libx11.} +proc Xutf8ResetIC*(para1: XIC): cstring {.libx11.} +proc XSetICValues*(para1: XIC): cstring {.varargs, libx11.} +proc XGetICValues*(para1: XIC): cstring {.varargs, libx11.} +proc XIMOfIC*(para1: XIC): XIM {.libx11.} +proc XFilterEvent*(para1: PXEvent, para2: Window): XBool {.libx11.} +proc XmbLookupString*( + para1: XIC, + para2: PXKeyPressedEvent, + para3: cstring, + para4: cint, + para5: PKeySym, + para6: PStatus, +): cint {.libx11.} + +proc XwcLookupString*( + para1: XIC, + para2: PXKeyPressedEvent, + para3: PWideChar, + para4: cint, + para5: PKeySym, + para6: PStatus, +): cint {.libx11.} + +proc Xutf8LookupString*( + para1: XIC, + para2: PXKeyPressedEvent, + para3: cstring, + para4: cint, + para5: PKeySym, + para6: PStatus, +): cint {.libx11.} + +proc XVaCreateNestedList*(unused: cint): XVaNestedList {.varargs, libx11.} +proc XRegisterIMInstantiateCallback*( + para1: PDisplay, + para2: PXrmHashBucketRec, + para3: cstring, + para4: cstring, + para5: XIDProc, + para6: XPointer, +): XBool {.libx11.} + +proc XUnregisterIMInstantiateCallback*( + para1: PDisplay, + para2: PXrmHashBucketRec, + para3: cstring, + para4: cstring, + para5: XIDProc, + para6: XPointer, +): XBool {.libx11.} + +type XConnectionWatchProc* = proc( + para1: PDisplay, para2: XPointer, para3: cint, para4: XBool, para5: PXPointer +) {.cdecl.} + +proc XInternalConnectionNumbers*( + para1: PDisplay, para2: PPcint, para3: Pcint +): Status {.libx11.} + +proc XProcessInternalConnection*(para1: PDisplay, para2: cint) {.libx11.} +proc XAddConnectionWatch*( + para1: PDisplay, para2: XConnectionWatchProc, para3: XPointer +): Status {.libx11.} + +proc XRemoveConnectionWatch*( + para1: PDisplay, para2: XConnectionWatchProc, para3: XPointer +) {.libx11.} + +proc XSetAuthorization*( + para1: cstring, para2: cint, para3: cstring, para4: cint +) {.libx11.} # # _Xmbtowc? # _Xwctomb? # + proc XGetEventData*(para1: PDisplay, para2: PXGenericEventCookie): XBool {.libX11.} proc XFreeEventData*(para1: PDisplay, para2: PXGenericEventCookie) {.libX11.} #when defined(MACROS): @@ -1909,7 +2617,8 @@ # implementation #when defined(MACROS): -template privDisp: untyped = cast[PXPrivDisplay](dpy) +template privDisp(): untyped = + cast[PXPrivDisplay](dpy) proc ConnectionNumber(dpy: PDisplay): cint = privDisp.fd @@ -1999,8 +2708,9 @@ privDisp.last_request_read # from fowltek/pointer_arithm, required for ScreenOfDisplay() -proc offset[A] (some: ptr A; b: int): ptr A = +proc offset[A](some: ptr A, b: int): ptr A = cast[ptr A](cast[int](some) + (b * sizeof(A))) + proc ScreenOfDisplay(dpy: PDisplay, scr: cint): PScreen = #addr(((privDisp.screens)[scr])) privDisp.screens.offset(scr.int) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xrandr.nim --- a/semicongine/thirdparty/x11/xrandr.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xrandr.nim Thu Aug 22 18:32:21 2024 +0700 @@ -24,11 +24,9 @@ # Author: Jim Gettys, HP Labs, HP. # -import - x, xlib +import x, xlib -const - libXrandr* = "libXrandr.so(.2|)" +const libXrandr* = "libXrandr.so(.2|)" # * $XFree86: xc/include/extensions/randr.h,v 1.4 2001/11/24 07:24:58 keithp Exp $ # * @@ -86,19 +84,20 @@ RANDR_MINOR* = 1 RRNumberErrors* = 0 RRNumberEvents* = 1 - constX_RRQueryVersion* = 0 # we skip 1 to make old clients fail pretty immediately + constX_RRQueryVersion* = 0 # we skip 1 to make old clients fail pretty immediately X_RROldGetScreenInfo* = 1 - X_RR1_0SetScreenConfig* = 2 # V1.0 apps share the same set screen config request id + X_RR1_0SetScreenConfig* = 2 # V1.0 apps share the same set screen config request id constX_RRSetScreenConfig* = 2 X_RROldScreenChangeSelectInput* = 3 # 3 used to be ScreenChangeSelectInput; deprecated constX_RRSelectInput* = 4 - constX_RRGetScreenInfo* = 5 # used in XRRSelectInput + constX_RRGetScreenInfo* = 5 # used in XRRSelectInput RRScreenChangeNotifyMask* = 1 shl 0 - RRScreenChangeNotify* = 0 # used in the rotation field; rotation and reflection in 0.1 proto. + RRScreenChangeNotify* = 0 + # used in the rotation field; rotation and reflection in 0.1 proto. RR_Rotate_0* = 1 RR_Rotate_90* = 2 RR_Rotate_180* = 4 - RR_Rotate_270* = 8 # new in 1.0 protocol, to allow reflection of screen + RR_Rotate_270* = 8 # new in 1.0 protocol, to allow reflection of screen RR_Reflect_X* = 16 RR_Reflect_Y* = 32 RRSetConfigSuccess* = 0 @@ -111,21 +110,23 @@ type PXRRScreenSize* = ptr XRRScreenSize - XRRScreenSize*{.final.} = object # - # Events. - # + XRRScreenSize* {.final.} = object + # + # Events. + # width*, height*: cint mwidth*, mheight*: cint - XRRScreenChangeNotifyEvent*{.final.} = object # internal representation is private to the library - typ*: cint # event base - serial*: culong # # of last request processed by server - send_event*: XBool # true if this came from a SendEvent request - display*: PDisplay # Display the event was read from - window*: Window # window which selected for this event - root*: Window # Root window for changed screen - timestamp*: Time # when the screen change occurred - config_timestamp*: Time # when the last configuration change + XRRScreenChangeNotifyEvent* {.final.} = object + # internal representation is private to the library + typ*: cint # event base + serial*: culong # # of last request processed by server + send_event*: XBool # true if this came from a SendEvent request + display*: PDisplay # Display the event was read from + window*: Window # window which selected for this event + root*: Window # Root window for changed screen + timestamp*: Time # when the screen change occurred + config_timestamp*: Time # when the last configuration change size_index*: SizeID subpixel_order*: SubpixelOrder rotation*: Rotation @@ -181,22 +182,37 @@ values: ptr UncheckedArray[clong] RandrFormat* = enum - randrFormat16bit = 16, randrFormat32bit = 32 + randrFormat16bit = 16 + randrFormat32bit = 32 + +proc XRRQueryExtension*( + dpy: PDisplay, event_basep, error_basep: Pcint +): XBool {.cdecl, dynlib: libXrandr, importc.} + +proc XRRQueryVersion*( + dpy: PDisplay, major_versionp: Pcint, minor_versionp: Pcint +): Status {.cdecl, dynlib: libXrandr, importc.} + +proc XRRQueryOutputProperty*( + dpy: PDisplay, output: RROutput, property: Atom +): PXRRPropertyInfo {.cdecl, dynlib: libXrandr, importc.} -proc XRRQueryExtension*(dpy: PDisplay, event_basep, error_basep: Pcint): XBool{. - cdecl, dynlib: libXrandr, importc.} -proc XRRQueryVersion*(dpy: PDisplay, major_versionp: Pcint, - minor_versionp: Pcint): Status{.cdecl, dynlib: libXrandr, - importc.} -proc XRRQueryOutputProperty*(dpy: PDisplay, output: RROutput, property: Atom): - PXRRPropertyInfo {.cdecl, dynlib: libXrandr, importc.} -proc XRRChangeOutputProperty*(dpy: PDisplay, output: RROutput, - property, kind: Atom, format, mode: cint, data: ptr cuchar, nelements: cint) {. - cdecl, dynlib: libXrandr, importc.} -proc XRRGetScreenInfo*(dpy: PDisplay, draw: Drawable): PXRRScreenConfiguration{. - cdecl, dynlib: libXrandr, importc.} -proc XRRFreeScreenConfigInfo*(config: PXRRScreenConfiguration){.cdecl, - dynlib: libXrandr, importc.} +proc XRRChangeOutputProperty*( + dpy: PDisplay, + output: RROutput, + property, kind: Atom, + format, mode: cint, + data: ptr cuchar, + nelements: cint, +) {.cdecl, dynlib: libXrandr, importc.} + +proc XRRGetScreenInfo*( + dpy: PDisplay, draw: Drawable +): PXRRScreenConfiguration {.cdecl, dynlib: libXrandr, importc.} + +proc XRRFreeScreenConfigInfo*( + config: PXRRScreenConfiguration +) {.cdecl, dynlib: libXrandr, importc.} # # Note that screen configuration changes are only permitted if the client can # prove it has up to date configuration information. We are trying to @@ -204,32 +220,53 @@ # we want to ensure the client knows what it is talking about when requesting # changes. # -proc XRRSetScreenConfig*(dpy: PDisplay, config: PXRRScreenConfiguration, - draw: Drawable, size_index: cint, rotation: Rotation, - timestamp: Time): Status{.cdecl, dynlib: libXrandr, - importc.} - # added in v1.1, sorry for the lame name -proc XRRSetScreenConfigAndRate*(dpy: PDisplay, config: PXRRScreenConfiguration, - draw: Drawable, size_index: cint, - rotation: Rotation, rate: cshort, - timestamp: Time): Status{.cdecl, - dynlib: libXrandr, importc.} -proc XRRConfigRotations*(config: PXRRScreenConfiguration, - current_rotation: PRotation): Rotation{.cdecl, - dynlib: libXrandr, importc.} -proc XRRConfigTimes*(config: PXRRScreenConfiguration, config_timestamp: PTime): Time{. - cdecl, dynlib: libXrandr, importc.} -proc XRRConfigSizes*(config: PXRRScreenConfiguration, nsizes: Pcint): PXRRScreenSize{. - cdecl, dynlib: libXrandr, importc.} -proc XRRConfigRates*(config: PXRRScreenConfiguration, sizeID: cint, - nrates: Pcint): ptr int16{.cdecl, dynlib: libXrandr, importc.} -proc XRRConfigCurrentConfiguration*(config: PXRRScreenConfiguration, - rotation: PRotation): SizeID{.cdecl, - dynlib: libXrandr, importc.} -proc XRRConfigCurrentRate*(config: PXRRScreenConfiguration): cshort{.cdecl, - dynlib: libXrandr, importc.} -proc XRRRootToScreen*(dpy: PDisplay, root: Window): cint{.cdecl, - dynlib: libXrandr, importc.} + +proc XRRSetScreenConfig*( + dpy: PDisplay, + config: PXRRScreenConfiguration, + draw: Drawable, + size_index: cint, + rotation: Rotation, + timestamp: Time, +): Status {.cdecl, dynlib: libXrandr, importc.} # added in v1.1, sorry for the lame name + +proc XRRSetScreenConfigAndRate*( + dpy: PDisplay, + config: PXRRScreenConfiguration, + draw: Drawable, + size_index: cint, + rotation: Rotation, + rate: cshort, + timestamp: Time, +): Status {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfigRotations*( + config: PXRRScreenConfiguration, current_rotation: PRotation +): Rotation {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfigTimes*( + config: PXRRScreenConfiguration, config_timestamp: PTime +): Time {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfigSizes*( + config: PXRRScreenConfiguration, nsizes: Pcint +): PXRRScreenSize {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfigRates*( + config: PXRRScreenConfiguration, sizeID: cint, nrates: Pcint +): ptr int16 {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfigCurrentConfiguration*( + config: PXRRScreenConfiguration, rotation: PRotation +): SizeID {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfigCurrentRate*( + config: PXRRScreenConfiguration +): cshort {.cdecl, dynlib: libXrandr, importc.} + +proc XRRRootToScreen*( + dpy: PDisplay, root: Window +): cint {.cdecl, dynlib: libXrandr, importc.} # # returns the screen configuration for the specified screen; does a lazy # evalution to delay getting the information, and caches the result. @@ -237,37 +274,56 @@ # to avoid unneeded round trips to the X server. These are new # in protocol version 0.1. # -proc XRRScreenConfig*(dpy: PDisplay, screen: cint): PXRRScreenConfiguration{. - cdecl, dynlib: libXrandr, importc.} -proc XRRConfig*(screen: PScreen): PXRRScreenConfiguration{.cdecl, - dynlib: libXrandr, importc.} -proc XRRSelectInput*(dpy: PDisplay, window: Window, mask: cint){.cdecl, - dynlib: libXrandr, importc.} + +proc XRRScreenConfig*( + dpy: PDisplay, screen: cint +): PXRRScreenConfiguration {.cdecl, dynlib: libXrandr, importc.} + +proc XRRConfig*( + screen: PScreen +): PXRRScreenConfiguration {.cdecl, dynlib: libXrandr, importc.} + +proc XRRSelectInput*( + dpy: PDisplay, window: Window, mask: cint +) {.cdecl, dynlib: libXrandr, importc.} # # the following are always safe to call, even if RandR is not implemented # on a screen # -proc XRRRotations*(dpy: PDisplay, screen: cint, current_rotation: PRotation): Rotation{. - cdecl, dynlib: libXrandr, importc.} -proc XRRSizes*(dpy: PDisplay, screen: cint, nsizes: Pcint): PXRRScreenSize{. - cdecl, dynlib: libXrandr, importc.} -proc XRRRates*(dpy: PDisplay, screen: cint, sizeID: cint, nrates: Pcint): ptr int16{. - cdecl, dynlib: libXrandr, importc.} -proc XRRTimes*(dpy: PDisplay, screen: cint, config_timestamp: PTime): Time{. - cdecl, dynlib: libXrandr, importc.} + +proc XRRRotations*( + dpy: PDisplay, screen: cint, current_rotation: PRotation +): Rotation {.cdecl, dynlib: libXrandr, importc.} + +proc XRRSizes*( + dpy: PDisplay, screen: cint, nsizes: Pcint +): PXRRScreenSize {.cdecl, dynlib: libXrandr, importc.} + +proc XRRRates*( + dpy: PDisplay, screen: cint, sizeID: cint, nrates: Pcint +): ptr int16 {.cdecl, dynlib: libXrandr, importc.} + +proc XRRTimes*( + dpy: PDisplay, screen: cint, config_timestamp: PTime +): Time {.cdecl, dynlib: libXrandr, importc.} # # intended to take RRScreenChangeNotify, or # ConfigureNotify (on the root window) # returns 1 if it is an event type it understands, 0 if not # -proc XRRUpdateConfiguration*(event: PXEvent): cint{.cdecl, dynlib: libXrandr, - importc.} + +proc XRRUpdateConfiguration*(event: PXEvent): cint {.cdecl, dynlib: libXrandr, importc.} # implementation -proc XRRGetScreenResourcesCurrent*(dpy: PDisplay, win: Window): - PXRRScreenResources {.cdecl, dynlib: libXrandr, importc.} -proc XRRFreeScreenResources*(res: PXRRScreenResources) {.cdecl, - dynlib: libXrandr, importc.} -proc XRRGetOutputInfo*(dpy: PDisplay, res: PXRRScreenResources, ret: RROutput): - PXRROutputInfo {.cdecl, dynlib: libXrandr, importc.} -proc XRRFreeOutputInfo*(info: PXRROutputInfo) {.cdecl, dynlib: libXrandr, - importc.} +proc XRRGetScreenResourcesCurrent*( + dpy: PDisplay, win: Window +): PXRRScreenResources {.cdecl, dynlib: libXrandr, importc.} + +proc XRRFreeScreenResources*( + res: PXRRScreenResources +) {.cdecl, dynlib: libXrandr, importc.} + +proc XRRGetOutputInfo*( + dpy: PDisplay, res: PXRRScreenResources, ret: RROutput +): PXRROutputInfo {.cdecl, dynlib: libXrandr, importc.} + +proc XRRFreeOutputInfo*(info: PXRROutputInfo) {.cdecl, dynlib: libXrandr, importc.} diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xresource.nim --- a/semicongine/thirdparty/x11/xresource.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xresource.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,6 +1,4 @@ - -import - x, xlib +import x, xlib #const # libX11* = "libX11.so" @@ -16,7 +14,7 @@ # xresource.h # -proc Xpermalloc*(para1: int32): cstring{.cdecl, dynlib: libX11, importc.} +proc Xpermalloc*(para1: int32): cstring {.cdecl, dynlib: libX11, importc.} type PXrmQuark* = ptr XrmQuark @@ -32,29 +30,29 @@ XrmString* = ptr char proc NULLSTRING*(): XrmString -proc XrmStringToQuark*(para1: cstring): XrmQuark{.cdecl, dynlib: libX11, - importc.} -proc XrmPermStringToQuark*(para1: cstring): XrmQuark{.cdecl, dynlib: libX11, - importc.} -proc XrmQuarkToString*(para1: XrmQuark): XrmString{.cdecl, dynlib: libX11, - importc.} -proc XrmUniqueQuark*(): XrmQuark{.cdecl, dynlib: libX11, importc.} +proc XrmStringToQuark*(para1: cstring): XrmQuark {.cdecl, dynlib: libX11, importc.} +proc XrmPermStringToQuark*(para1: cstring): XrmQuark {.cdecl, dynlib: libX11, importc.} +proc XrmQuarkToString*(para1: XrmQuark): XrmString {.cdecl, dynlib: libX11, importc.} +proc XrmUniqueQuark*(): XrmQuark {.cdecl, dynlib: libX11, importc.} #when defined(MACROS): proc XrmStringsEqual*(a1, a2: cstring): bool type PXrmBinding* = ptr XrmBinding XrmBinding* = enum - XrmBindTightly, XrmBindLoosely + XrmBindTightly + XrmBindLoosely XrmBindingList* = PXrmBinding PXrmBindingList* = ptr XrmBindingList -proc XrmStringToQuarkList*(para1: cstring, para2: XrmQuarkList){.cdecl, - dynlib: libX11, importc.} -proc XrmStringToBindingQuarkList*(para1: cstring, para2: XrmBindingList, - para3: XrmQuarkList){.cdecl, dynlib: libX11, - importc.} +proc XrmStringToQuarkList*( + para1: cstring, para2: XrmQuarkList +) {.cdecl, dynlib: libX11, importc.} + +proc XrmStringToBindingQuarkList*( + para1: cstring, para2: XrmBindingList, para3: XrmQuarkList +) {.cdecl, dynlib: libX11, importc.} type PXrmName* = ptr XrmName @@ -90,7 +88,7 @@ type PXrmValue* = ptr XrmValue - XrmValue*{.final.} = object + XrmValue* {.final.} = object size*: int32 address*: XPointer @@ -98,7 +96,7 @@ XrmValuePtr* = PXrmValue PXrmHashBucketRec* = ptr XrmHashBucketRec - XrmHashBucketRec*{.final.} = object + XrmHashBucketRec* {.final.} = object PXrmHashBucket* = ptr XrmHashBucket XrmHashBucket* = PXrmHashBucketRec @@ -109,66 +107,105 @@ PXrmDatabase* = ptr XrmDatabase XrmDatabase* = PXrmHashBucketRec -proc XrmDestroyDatabase*(para1: XrmDatabase){.cdecl, dynlib: libX11, importc.} -proc XrmQPutResource*(para1: PXrmDatabase, para2: XrmBindingList, - para3: XrmQuarkList, para4: XrmRepresentation, - para5: PXrmValue){.cdecl, dynlib: libX11, importc.} -proc XrmPutResource*(para1: PXrmDatabase, para2: cstring, para3: cstring, - para4: PXrmValue){.cdecl, dynlib: libX11, importc.} -proc XrmQPutStringResource*(para1: PXrmDatabase, para2: XrmBindingList, - para3: XrmQuarkList, para4: cstring){.cdecl, - dynlib: libX11, importc.} -proc XrmPutStringResource*(para1: PXrmDatabase, para2: cstring, para3: cstring){. - cdecl, dynlib: libX11, importc.} -proc XrmPutLineResource*(para1: PXrmDatabase, para2: cstring){.cdecl, - dynlib: libX11, importc.} -proc XrmQGetResource*(para1: XrmDatabase, para2: XrmNameList, - para3: XrmClassList, para4: PXrmRepresentation, - para5: PXrmValue): XBool{.cdecl, dynlib: libX11, importc.} -proc XrmGetResource*(para1: XrmDatabase, para2: cstring, para3: cstring, - para4: PPchar, para5: PXrmValue): XBool{.cdecl, - dynlib: libX11, importc.} +proc XrmDestroyDatabase*(para1: XrmDatabase) {.cdecl, dynlib: libX11, importc.} +proc XrmQPutResource*( + para1: PXrmDatabase, + para2: XrmBindingList, + para3: XrmQuarkList, + para4: XrmRepresentation, + para5: PXrmValue, +) {.cdecl, dynlib: libX11, importc.} + +proc XrmPutResource*( + para1: PXrmDatabase, para2: cstring, para3: cstring, para4: PXrmValue +) {.cdecl, dynlib: libX11, importc.} + +proc XrmQPutStringResource*( + para1: PXrmDatabase, para2: XrmBindingList, para3: XrmQuarkList, para4: cstring +) {.cdecl, dynlib: libX11, importc.} + +proc XrmPutStringResource*( + para1: PXrmDatabase, para2: cstring, para3: cstring +) {.cdecl, dynlib: libX11, importc.} + +proc XrmPutLineResource*( + para1: PXrmDatabase, para2: cstring +) {.cdecl, dynlib: libX11, importc.} + +proc XrmQGetResource*( + para1: XrmDatabase, + para2: XrmNameList, + para3: XrmClassList, + para4: PXrmRepresentation, + para5: PXrmValue, +): XBool {.cdecl, dynlib: libX11, importc.} + +proc XrmGetResource*( + para1: XrmDatabase, para2: cstring, para3: cstring, para4: PPchar, para5: PXrmValue +): XBool {.cdecl, dynlib: libX11, importc.} # There is no definition of XrmSearchList #function XrmQGetSearchList(para1:XrmDatabase; para2:XrmNameList; para3:XrmClassList; para4:XrmSearchList; para5:longint):XBool;cdecl;external libX11; #function XrmQGetSearchResource(para1:XrmSearchList; para2:XrmName; para3:XrmClass; para4:PXrmRepresentation; para5:PXrmValue):XBool;cdecl;external libX11; -proc XrmSetDatabase*(para1: PDisplay, para2: XrmDatabase){.cdecl, - dynlib: libX11, importc.} -proc XrmGetDatabase*(para1: PDisplay): XrmDatabase{.cdecl, dynlib: libX11, - importc.} -proc XrmGetFileDatabase*(para1: cstring): XrmDatabase{.cdecl, dynlib: libX11, - importc.} -proc XrmCombineFileDatabase*(para1: cstring, para2: PXrmDatabase, para3: XBool): Status{. - cdecl, dynlib: libX11, importc.} -proc XrmGetStringDatabase*(para1: cstring): XrmDatabase{.cdecl, dynlib: libX11, - importc.} -proc XrmPutFileDatabase*(para1: XrmDatabase, para2: cstring){.cdecl, - dynlib: libX11, importc.} -proc XrmMergeDatabases*(para1: XrmDatabase, para2: PXrmDatabase){.cdecl, - dynlib: libX11, importc.} -proc XrmCombineDatabase*(para1: XrmDatabase, para2: PXrmDatabase, para3: XBool){. - cdecl, dynlib: libX11, importc.} + +proc XrmSetDatabase*( + para1: PDisplay, para2: XrmDatabase +) {.cdecl, dynlib: libX11, importc.} + +proc XrmGetDatabase*(para1: PDisplay): XrmDatabase {.cdecl, dynlib: libX11, importc.} +proc XrmGetFileDatabase*(para1: cstring): XrmDatabase {.cdecl, dynlib: libX11, importc.} +proc XrmCombineFileDatabase*( + para1: cstring, para2: PXrmDatabase, para3: XBool +): Status {.cdecl, dynlib: libX11, importc.} + +proc XrmGetStringDatabase*( + para1: cstring +): XrmDatabase {.cdecl, dynlib: libX11, importc.} + +proc XrmPutFileDatabase*( + para1: XrmDatabase, para2: cstring +) {.cdecl, dynlib: libX11, importc.} + +proc XrmMergeDatabases*( + para1: XrmDatabase, para2: PXrmDatabase +) {.cdecl, dynlib: libX11, importc.} + +proc XrmCombineDatabase*( + para1: XrmDatabase, para2: PXrmDatabase, para3: XBool +) {.cdecl, dynlib: libX11, importc.} + const XrmEnumAllLevels* = 0 XrmEnumOneLevel* = 1 -type - funcbool* = proc (): XBool {.cdecl.} +type funcbool* = proc(): XBool {.cdecl.} -proc XrmEnumerateDatabase*(para1: XrmDatabase, para2: XrmNameList, - para3: XrmClassList, para4: int32, para5: funcbool, - para6: XPointer): XBool{.cdecl, dynlib: libX11, - importc.} -proc XrmLocaleOfDatabase*(para1: XrmDatabase): cstring{.cdecl, dynlib: libX11, - importc.} +proc XrmEnumerateDatabase*( + para1: XrmDatabase, + para2: XrmNameList, + para3: XrmClassList, + para4: int32, + para5: funcbool, + para6: XPointer, +): XBool {.cdecl, dynlib: libX11, importc.} + +proc XrmLocaleOfDatabase*( + para1: XrmDatabase +): cstring {.cdecl, dynlib: libX11, importc.} type PXrmOptionKind* = ptr XrmOptionKind XrmOptionKind* = enum - XrmoptionNoArg, XrmoptionIsArg, XrmoptionStickyArg, XrmoptionSepArg, - XrmoptionResArg, XrmoptionSkipArg, XrmoptionSkipLine, XrmoptionSkipNArgs + XrmoptionNoArg + XrmoptionIsArg + XrmoptionStickyArg + XrmoptionSepArg + XrmoptionResArg + XrmoptionSkipArg + XrmoptionSkipLine + XrmoptionSkipNArgs PXrmOptionDescRec* = ptr XrmOptionDescRec - XrmOptionDescRec*{.final.} = object + XrmOptionDescRec* {.final.} = object option*: cstring specifier*: cstring argKind*: XrmOptionKind @@ -177,9 +214,15 @@ XrmOptionDescList* = PXrmOptionDescRec PXrmOptionDescList* = ptr XrmOptionDescList -proc XrmParseCommand*(para1: PXrmDatabase, para2: XrmOptionDescList, - para3: int32, para4: cstring, para5: ptr int32, - para6: PPchar){.cdecl, dynlib: libX11, importc.} +proc XrmParseCommand*( + para1: PXrmDatabase, + para2: XrmOptionDescList, + para3: int32, + para4: cstring, + para5: ptr int32, + para6: PPchar, +) {.cdecl, dynlib: libX11, importc.} + # implementation proc NULLQUARK(): XrmQuark = diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xshm.nim --- a/semicongine/thirdparty/x11/xshm.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xshm.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,8 +1,6 @@ -import - x, xlib +import x, xlib -const - libXext* = "libXext.so(.6|)" +const libXext* = "libXext.so(.6|)" # # Automatically converted by H2Pas 0.99.15 from xshm.h @@ -16,61 +14,97 @@ # const - constX_ShmQueryVersion* = 0 - constX_ShmAttach* = 1 - constX_ShmDetach* = 2 - constX_ShmPutImage* = 3 - constX_ShmGetImage* = 4 - constX_ShmCreatePixmap* = 5 - ShmCompletion* = 0 - ShmNumberEvents* = ShmCompletion + 1 - BadShmSeg* = 0 - ShmNumberErrors* = BadShmSeg + 1 + constX_ShmQueryVersion* = 0 + constX_ShmAttach* = 1 + constX_ShmDetach* = 2 + constX_ShmPutImage* = 3 + constX_ShmGetImage* = 4 + constX_ShmCreatePixmap* = 5 + ShmCompletion* = 0 + ShmNumberEvents* = ShmCompletion + 1 + BadShmSeg* = 0 + ShmNumberErrors* = BadShmSeg + 1 type - PShmSeg* = ptr ShmSeg - ShmSeg* = culong + PShmSeg* = ptr ShmSeg + ShmSeg* = culong + + PXShmCompletionEvent* = ptr XShmCompletionEvent + XShmCompletionEvent* {.final.} = object + theType*: cint + serial*: culong + send_event*: XBool + display*: PDisplay + drawable*: Drawable + major_code*: cint + minor_code*: cint + shmseg*: ShmSeg + offset*: culong - PXShmCompletionEvent* = ptr XShmCompletionEvent - XShmCompletionEvent*{.final.} = object - theType*: cint - serial*: culong - send_event*: XBool - display*: PDisplay - drawable*: Drawable - major_code*: cint - minor_code*: cint - shmseg*: ShmSeg - offset*: culong + PXShmSegmentInfo* = ptr XShmSegmentInfo + XShmSegmentInfo* {.final.} = object + shmseg*: ShmSeg + shmid*: cint + shmaddr*: cstring + readOnly*: XBool - PXShmSegmentInfo* = ptr XShmSegmentInfo - XShmSegmentInfo*{.final.} = object - shmseg*: ShmSeg - shmid*: cint - shmaddr*: cstring - readOnly*: XBool +proc XShmQueryExtension*(para1: PDisplay): XBool {.cdecl, dynlib: libXext, importc.} +proc XShmGetEventBase*(para1: PDisplay): cint {.cdecl, dynlib: libXext, importc.} +proc XShmQueryVersion*( + para1: PDisplay, para2: Pcint, para3: Pcint, para4: PBool +): XBool {.cdecl, dynlib: libXext, importc.} + +proc XShmPixmapFormat*(para1: PDisplay): cint {.cdecl, dynlib: libXext, importc.} +proc XShmAttach*( + para1: PDisplay, para2: PXShmSegmentInfo +): Status {.cdecl, dynlib: libXext, importc.} + +proc XShmDetach*( + para1: PDisplay, para2: PXShmSegmentInfo +): Status {.cdecl, dynlib: libXext, importc.} -proc XShmQueryExtension*(para1: PDisplay): XBool{.cdecl, dynlib: libXext, importc.} -proc XShmGetEventBase*(para1: PDisplay): cint{.cdecl, dynlib: libXext, importc.} -proc XShmQueryVersion*(para1: PDisplay, para2: Pcint, para3: Pcint, para4: PBool): XBool{. - cdecl, dynlib: libXext, importc.} -proc XShmPixmapFormat*(para1: PDisplay): cint{.cdecl, dynlib: libXext, importc.} -proc XShmAttach*(para1: PDisplay, para2: PXShmSegmentInfo): Status{.cdecl, - dynlib: libXext, importc.} -proc XShmDetach*(para1: PDisplay, para2: PXShmSegmentInfo): Status{.cdecl, - dynlib: libXext, importc.} -proc XShmPutImage*(para1: PDisplay, para2: Drawable, para3: GC, - para4: PXImage, para5: cint, para6: cint, para7: cint, - para8: cint, para9: cuint, para10: cuint, para11: XBool): Status{. - cdecl, dynlib: libXext, importc.} -proc XShmGetImage*(para1: PDisplay, para2: Drawable, para3: PXImage, - para4: cint, para5: cint, para6: culong): Status{.cdecl, - dynlib: libXext, importc.} -proc XShmCreateImage*(para1: PDisplay, para2: PVisual, para3: cuint, - para4: cint, para5: cstring, para6: PXShmSegmentInfo, - para7: cuint, para8: cuint): PXImage{.cdecl, - dynlib: libXext, importc.} -proc XShmCreatePixmap*(para1: PDisplay, para2: Drawable, para3: cstring, - para4: PXShmSegmentInfo, para5: cuint, para6: cuint, - para7: cuint): Pixmap{.cdecl, dynlib: libXext, importc.} +proc XShmPutImage*( + para1: PDisplay, + para2: Drawable, + para3: GC, + para4: PXImage, + para5: cint, + para6: cint, + para7: cint, + para8: cint, + para9: cuint, + para10: cuint, + para11: XBool, +): Status {.cdecl, dynlib: libXext, importc.} + +proc XShmGetImage*( + para1: PDisplay, + para2: Drawable, + para3: PXImage, + para4: cint, + para5: cint, + para6: culong, +): Status {.cdecl, dynlib: libXext, importc.} + +proc XShmCreateImage*( + para1: PDisplay, + para2: PVisual, + para3: cuint, + para4: cint, + para5: cstring, + para6: PXShmSegmentInfo, + para7: cuint, + para8: cuint, +): PXImage {.cdecl, dynlib: libXext, importc.} + +proc XShmCreatePixmap*( + para1: PDisplay, + para2: Drawable, + para3: cstring, + para4: PXShmSegmentInfo, + para5: cuint, + para6: cuint, + para7: cuint, +): Pixmap {.cdecl, dynlib: libXext, importc.} + # implementation diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xtst.nim --- a/semicongine/thirdparty/x11/xtst.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xtst.nim Thu Aug 22 18:32:21 2024 +0700 @@ -53,15 +53,15 @@ PXRecordRange* = ptr XRecordRange XRecordRange* {.final.} = object - core_requests*: XRecordRange8 ## core X requests - core_replies*: XRecordRange8 ## core X replies - ext_requests*: XRecordExtRange ## extension requests - ext_replies*: XRecordExtRange ## extension replies + core_requests*: XRecordRange8 ## core X requests + core_replies*: XRecordRange8 ## core X replies + ext_requests*: XRecordExtRange ## extension requests + ext_replies*: XRecordExtRange ## extension replies delivered_events*: XRecordRange8 ## delivered core and ext events - device_events*: XRecordRange8 ## all core and ext device events - errors*: XRecordRange8 ## core X and ext errors - client_started*: XBool ## connection setup reply - client_died*: XBool ## notice of client disconnect + device_events*: XRecordRange8 ## all core and ext device events + errors*: XRecordRange8 ## core X and ext errors + client_started*: XBool ## connection setup reply + client_died*: XBool ## notice of client disconnect PXRecordClientInfo* = ptr XRecordClientInfo XRecordClientInfo* {.final.} = object @@ -86,37 +86,49 @@ data*: cstring data_len*: culong ## in 4-byte units - XRecordInterceptProc* = proc (a1: XPointer, a2: PXRecordInterceptData) + XRecordInterceptProc* = proc(a1: XPointer, a2: PXRecordInterceptData) {.push cdecl, importc, dynlib: libXtst.} proc XRecordIdBaseMask*(dpy: PDisplay): XID proc XRecordQueryVersion*(a1: PDisplay, a2, a3: ptr cint): Status -proc XRecordCreateContext*(a1: PDisplay, - a2: cint, a3: PXRecordClientSpec, - a4: cint, a5: ptr UncheckedArray[XRecordRange], - a6: cint): XRecordContext -proc XRecordAllocRange*: PXRecordRange -proc XRecordRegisterClients*(a1: PDisplay, - a2: XRecordContext, - a3: cint, a4: PXRecordClientSpec, - a5: cint, a6: ptr UncheckedArray[XRecordRange], - a7: cint): Status -proc XRecordUnregisterClients*(a1: PDisplay, - a2: XRecordContext, - a3: PXRecordClientSpec, - a4: cint): Status -proc XRecordGetContext*(a1: PDisplay, - a2: XRecordContext, - a3: ptr UncheckedArray[XRecordState]): Status +proc XRecordCreateContext*( + a1: PDisplay, + a2: cint, + a3: PXRecordClientSpec, + a4: cint, + a5: ptr UncheckedArray[XRecordRange], + a6: cint, +): XRecordContext + +proc XRecordAllocRange*(): PXRecordRange +proc XRecordRegisterClients*( + a1: PDisplay, + a2: XRecordContext, + a3: cint, + a4: PXRecordClientSpec, + a5: cint, + a6: ptr UncheckedArray[XRecordRange], + a7: cint, +): Status + +proc XRecordUnregisterClients*( + a1: PDisplay, a2: XRecordContext, a3: PXRecordClientSpec, a4: cint +): Status + +proc XRecordGetContext*( + a1: PDisplay, a2: XRecordContext, a3: ptr UncheckedArray[XRecordState] +): Status + proc XRecordFreeState*(a1: PXRecordState) -proc XRecordEnableContext*(a1: PDisplay, - a2: XRecordContext, - a3: XRecordInterceptProc, - a4: XPointer): Status -proc XRecordEnableContextAsync*(a1: PDisplay, a2: XRecordContext, - a3: XRecordInterceptProc, - a4: XPointer): Status +proc XRecordEnableContext*( + a1: PDisplay, a2: XRecordContext, a3: XRecordInterceptProc, a4: XPointer +): Status + +proc XRecordEnableContextAsync*( + a1: PDisplay, a2: XRecordContext, a3: XRecordInterceptProc, a4: XPointer +): Status + proc XRecordProcessReplies*(a1: PDisplay) proc XRecordFreeData*(a1: PXRecordInterceptData) proc XRecordDisableContext*(a1: PDisplay, a2: XRecordContext): Status @@ -128,14 +140,22 @@ proc XTestFakeButtonEvent*(a1: PDisplay, a2: cuint, a3: XBool, a4: culong): cint proc XTestFakeMotionEvent*(a1: PDisplay, a2, a3, a4: cint, a5: culong): cint proc XTestFakeRelativeMotionEvent*(a1: PDisplay, a2, a3: cint, a4: culong): cint -proc XTestFakeDeviceKeyEvent*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: XBool, - a5: ptr cint, a6: cint, a7: culong): cint -proc XTestFakeDeviceButtonEvent*(a1: PDisplay, a2: PXDevice, a3: cuint, a4: XBool, - a5: ptr cint, a6: cint, a7: culong): cint -proc XTestFakeProximityEvent*(a1: PDisplay, a2: PXDevice, a3: XBool, a4: ptr cint, - a5: cint, a6: culong): cint -proc XTestFakeDeviceMotionEvent*(a1: PDisplay, a2: PXDevice, a3: XBool, a4: cint, - a5: ptr cint, a6: cint, a7: culong): cint +proc XTestFakeDeviceKeyEvent*( + a1: PDisplay, a2: PXDevice, a3: cuint, a4: XBool, a5: ptr cint, a6: cint, a7: culong +): cint + +proc XTestFakeDeviceButtonEvent*( + a1: PDisplay, a2: PXDevice, a3: cuint, a4: XBool, a5: ptr cint, a6: cint, a7: culong +): cint + +proc XTestFakeProximityEvent*( + a1: PDisplay, a2: PXDevice, a3: XBool, a4: ptr cint, a5: cint, a6: culong +): cint + +proc XTestFakeDeviceMotionEvent*( + a1: PDisplay, a2: PXDevice, a3: XBool, a4: cint, a5: ptr cint, a6: cint, a7: culong +): cint + proc XTestGrabControl*(a1: PDisplay, a2: XBool): cint proc XTestSetGContextOfGC*(a1: GC, a2: GContext) proc XTestSetVisualIDOfVisual*(a1: PVisual, a2: VisualID) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xutil.nim --- a/semicongine/thirdparty/x11/xutil.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xutil.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,6 +1,4 @@ - -import - x, xlib, keysym +import x, xlib, keysym #const # libX11* = "libX11.so" @@ -27,12 +25,12 @@ YNegative* = 0x00000020 type - CPoint*{.final.} = object + CPoint* {.final.} = object x*: cint y*: cint PXSizeHints* = ptr XSizeHints - XSizeHints*{.final.} = object + XSizeHints* {.final.} = object flags*: clong x*, y*: cint width*, height*: cint @@ -54,12 +52,11 @@ PAspect* = 1 shl 7 PBaseSize* = 1 shl 8 PWinGravity* = 1 shl 9 - PAllHints* = PPosition or PSize or PMinSize or PMaxSize or PResizeInc or - PAspect + PAllHints* = PPosition or PSize or PMinSize or PMaxSize or PResizeInc or PAspect type PXWMHints* = ptr XWMHints - XWMHints*{.final.} = object + XWMHints* {.final.} = object flags*: clong input*: XBool initial_state*: cint @@ -69,7 +66,6 @@ icon_mask*: Pixmap window_group*: XID - const InputHint* = 1 shl 0 StateHint* = 1 shl 1 @@ -78,8 +74,9 @@ IconPositionHint* = 1 shl 4 IconMaskHint* = 1 shl 5 WindowGroupHint* = 1 shl 6 - AllHints* = InputHint or StateHint or IconPixmapHint or IconWindowHint or - IconPositionHint or IconMaskHint or WindowGroupHint + AllHints* = + InputHint or StateHint or IconPixmapHint or IconWindowHint or IconPositionHint or + IconMaskHint or WindowGroupHint XUrgencyHint* = 1 shl 8 WithdrawnState* = 0 NormalState* = 1 @@ -90,47 +87,47 @@ type PXTextProperty* = ptr XTextProperty - XTextProperty*{.final.} = object + XTextProperty* {.final.} = object value*: Pcuchar encoding*: Atom format*: cint nitems*: culong - const - XNoMemory* = - 1 - XLocaleNotSupported* = - 2 - XConverterNotFound* = - 3 + XNoMemory* = -1 + XLocaleNotSupported* = -2 + XConverterNotFound* = -3 type PXICCEncodingStyle* = ptr XICCEncodingStyle XICCEncodingStyle* = enum - XStringStyle, XCompoundTextStyle, XTextStyle, XStdICCTextStyle, + XStringStyle + XCompoundTextStyle + XTextStyle + XStdICCTextStyle XUTF8StringStyle PPXIconSize* = ptr PXIconSize PXIconSize* = ptr XIconSize - XIconSize*{.final.} = object + XIconSize* {.final.} = object min_width*, min_height*: cint max_width*, max_height*: cint width_inc*, height_inc*: cint PXClassHint* = ptr XClassHint - XClassHint*{.final.} = object + XClassHint* {.final.} = object res_name*: cstring res_class*: cstring - type PXComposeStatus* = ptr XComposeStatus - XComposeStatus*{.final.} = object + XComposeStatus* {.final.} = object compose_ptr*: XPointer chars_matched*: cint - type PXRegion* = ptr XRegion - XRegion*{.final.} = object + XRegion* {.final.} = object PRegion* = ptr Region Region* = PXRegion @@ -142,7 +139,7 @@ type PXVisualInfo* = ptr XVisualInfo - XVisualInfo*{.final.} = object + XVisualInfo* {.final.} = object visual*: PVisual visualid*: VisualID screen*: cint @@ -154,7 +151,6 @@ colormap_size*: cint bits_per_rgb*: cint - const VisualNoMask* = 0x00000000 VisualIDMask* = 0x00000001 @@ -171,7 +167,7 @@ type PPXStandardColormap* = ptr PXStandardColormap PXStandardColormap* = ptr XStandardColormap - XStandardColormap*{.final.} = object + XStandardColormap* {.final.} = object colormap*: Colormap red_max*: culong red_mult*: culong @@ -183,7 +179,6 @@ visualid*: VisualID killid*: XID - const BitmapSuccess* = 0 BitmapOpenFailed* = 1 @@ -198,165 +193,313 @@ PXContext* = ptr XContext XContext* = cint -proc XAllocClassHint*(): PXClassHint{.cdecl, dynlib: libX11, importc.} -proc XAllocIconSize*(): PXIconSize{.cdecl, dynlib: libX11, importc.} -proc XAllocSizeHints*(): PXSizeHints{.cdecl, dynlib: libX11, importc.} -proc XAllocStandardColormap*(): PXStandardColormap{.cdecl, dynlib: libX11, - importc.} -proc XAllocWMHints*(): PXWMHints{.cdecl, dynlib: libX11, importc.} -proc XClipBox*(para1: Region, para2: PXRectangle): cint{.cdecl, dynlib: libX11, - importc.} -proc XCreateRegion*(): Region{.cdecl, dynlib: libX11, importc.} -proc XDefaultString*(): cstring{.cdecl, dynlib: libX11, importc.} -proc XDeleteContext*(para1: PDisplay, para2: XID, para3: XContext): cint{. - cdecl, dynlib: libX11, importc.} -proc XDestroyRegion*(para1: Region): cint{.cdecl, dynlib: libX11, importc.} -proc XEmptyRegion*(para1: Region): cint{.cdecl, dynlib: libX11, importc.} -proc XEqualRegion*(para1: Region, para2: Region): cint{.cdecl, dynlib: libX11, - importc.} -proc XFindContext*(para1: PDisplay, para2: XID, para3: XContext, - para4: PXPointer): cint{.cdecl, dynlib: libX11, importc.} -proc XGetClassHint*(para1: PDisplay, para2: Window, para3: PXClassHint): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetIconSizes*(para1: PDisplay, para2: Window, para3: PPXIconSize, - para4: Pcint): Status{.cdecl, dynlib: libX11, importc.} -proc XGetNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetRGBColormaps*(para1: PDisplay, para2: Window, - para3: PPXStandardColormap, para4: Pcint, para5: Atom): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints, - para4: Atom): Status{.cdecl, dynlib: libX11, importc.} -proc XGetStandardColormap*(para1: PDisplay, para2: Window, - para3: PXStandardColormap, para4: Atom): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetTextProperty*(para1: PDisplay, para2: Window, para3: PXTextProperty, - para4: Atom): Status{.cdecl, dynlib: libX11, importc.} -proc XGetVisualInfo*(para1: PDisplay, para2: clong, para3: PXVisualInfo, - para4: Pcint): PXVisualInfo{.cdecl, dynlib: libX11, importc.} -proc XGetWMClientMachine*(para1: PDisplay, para2: Window, para3: PXTextProperty): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetWMHints*(para1: PDisplay, para2: Window): PXWMHints{.cdecl, - dynlib: libX11, importc.} -proc XGetWMIconName*(para1: PDisplay, para2: Window, para3: PXTextProperty): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetWMName*(para1: PDisplay, para2: Window, para3: PXTextProperty): Status{. - cdecl, dynlib: libX11, importc.} -proc XGetWMNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints, - para4: ptr int): Status{.cdecl, dynlib: libX11, importc.} -proc XGetWMSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints, - para4: ptr int, para5: Atom): Status{.cdecl, - dynlib: libX11, importc.} -proc XGetZoomHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): Status{. - cdecl, dynlib: libX11, importc.} -proc XIntersectRegion*(para1: Region, para2: Region, para3: Region): cint{. - cdecl, dynlib: libX11, importc.} -proc XConvertCase*(para1: KeySym, para2: PKeySym, para3: PKeySym){.cdecl, - dynlib: libX11, importc.} -proc XLookupString*(para1: PXKeyEvent, para2: cstring, para3: cint, - para4: PKeySym, para5: PXComposeStatus): cint{.cdecl, - dynlib: libX11, importc.} -proc XMatchVisualInfo*(para1: PDisplay, para2: cint, para3: cint, para4: cint, - para5: PXVisualInfo): Status{.cdecl, dynlib: libX11, - importc.} -proc XOffsetRegion*(para1: Region, para2: cint, para3: cint): cint{.cdecl, - dynlib: libX11, importc.} -proc XPointInRegion*(para1: Region, para2: cint, para3: cint): XBool{.cdecl, - dynlib: libX11, importc.} -proc XPolygonRegion*(para1: PXPoint, para2: cint, para3: cint): Region{.cdecl, - dynlib: libX11, importc.} -proc XRectInRegion*(para1: Region, para2: cint, para3: cint, para4: cuint, - para5: cuint): cint{.cdecl, dynlib: libX11, importc.} -proc XSaveContext*(para1: PDisplay, para2: XID, para3: XContext, - para4: cstring): cint{.cdecl, dynlib: libX11, importc.} -proc XSetClassHint*(para1: PDisplay, para2: Window, para3: PXClassHint): cint{. - cdecl, dynlib: libX11, importc.} -proc XSetIconSizes*(para1: PDisplay, para2: Window, para3: PXIconSize, - para4: cint): cint{.cdecl, dynlib: libX11, importc.} -proc XSetNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): cint{. - cdecl, dynlib: libX11, importc.} -proc XSetRGBColormaps*(para1: PDisplay, para2: Window, - para3: PXStandardColormap, para4: cint, para5: Atom){. - cdecl, dynlib: libX11, importc.} -proc XSetSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints, - para4: Atom): cint{.cdecl, dynlib: libX11, importc.} -proc XSetStandardProperties*(para1: PDisplay, para2: Window, para3: cstring, - para4: cstring, para5: Pixmap, para6: PPchar, - para7: cint, para8: PXSizeHints): cint{.cdecl, - dynlib: libX11, importc.} -proc XSetTextProperty*(para1: PDisplay, para2: Window, para3: PXTextProperty, - para4: Atom){.cdecl, dynlib: libX11, importc.} -proc XSetWMClientMachine*(para1: PDisplay, para2: Window, para3: PXTextProperty){. - cdecl, dynlib: libX11, importc.} -proc XSetWMHints*(para1: PDisplay, para2: Window, para3: PXWMHints): cint{. - cdecl, dynlib: libX11, importc.} -proc XSetWMIconName*(para1: PDisplay, para2: Window, para3: PXTextProperty){. - cdecl, dynlib: libX11, importc.} -proc XSetWMName*(para1: PDisplay, para2: Window, para3: PXTextProperty){.cdecl, - dynlib: libX11, importc.} -proc XSetWMNormalHints*(para1: PDisplay, para2: Window, para3: PXSizeHints){. - cdecl, dynlib: libX11, importc.} -proc XSetWMProperties*(para1: PDisplay, para2: Window, para3: PXTextProperty, - para4: PXTextProperty, para5: PPchar, para6: cint, - para7: PXSizeHints, para8: PXWMHints, para9: PXClassHint){. - cdecl, dynlib: libX11, importc.} -proc XmbSetWMProperties*(para1: PDisplay, para2: Window, para3: cstring, - para4: cstring, para5: PPchar, para6: cint, - para7: PXSizeHints, para8: PXWMHints, - para9: PXClassHint){.cdecl, dynlib: libX11, importc.} -proc Xutf8SetWMProperties*(para1: PDisplay, para2: Window, para3: cstring, - para4: cstring, para5: PPchar, para6: cint, - para7: PXSizeHints, para8: PXWMHints, - para9: PXClassHint){.cdecl, dynlib: libX11, importc.} -proc XSetWMSizeHints*(para1: PDisplay, para2: Window, para3: PXSizeHints, - para4: Atom){.cdecl, dynlib: libX11, importc.} -proc XSetRegion*(para1: PDisplay, para2: GC, para3: Region): cint{.cdecl, - dynlib: libX11, importc.} -proc XSetStandardColormap*(para1: PDisplay, para2: Window, - para3: PXStandardColormap, para4: Atom){.cdecl, - dynlib: libX11, importc.} -proc XSetZoomHints*(para1: PDisplay, para2: Window, para3: PXSizeHints): cint{. - cdecl, dynlib: libX11, importc.} -proc XShrinkRegion*(para1: Region, para2: cint, para3: cint): cint{.cdecl, - dynlib: libX11, importc.} -proc XStringListToTextProperty*(para1: PPchar, para2: cint, - para3: PXTextProperty): Status{.cdecl, - dynlib: libX11, importc.} -proc XSubtractRegion*(para1: Region, para2: Region, para3: Region): cint{. - cdecl, dynlib: libX11, importc.} -proc XmbTextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint, - para4: XICCEncodingStyle, para5: PXTextProperty): cint{. - cdecl, dynlib: libX11, importc.} -proc XwcTextListToTextProperty*(para1: PDisplay, para2: ptr ptr int16, para3: cint, - para4: XICCEncodingStyle, para5: PXTextProperty): cint{. - cdecl, dynlib: libX11, importc.} -proc Xutf8TextListToTextProperty*(para1: PDisplay, para2: PPchar, para3: cint, - para4: XICCEncodingStyle, - para5: PXTextProperty): cint{.cdecl, - dynlib: libX11, importc.} -proc XwcFreeStringList*(para1: ptr ptr int16){.cdecl, dynlib: libX11, importc.} -proc XTextPropertyToStringList*(para1: PXTextProperty, para2: PPPchar, - para3: Pcint): Status{.cdecl, dynlib: libX11, - importc.} -proc XmbTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, - para3: PPPchar, para4: Pcint): cint{.cdecl, - dynlib: libX11, importc.} -proc XwcTextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, - para3: ptr ptr ptr int16, para4: Pcint): cint{.cdecl, - dynlib: libX11, importc.} -proc Xutf8TextPropertyToTextList*(para1: PDisplay, para2: PXTextProperty, - para3: PPPchar, para4: Pcint): cint{.cdecl, - dynlib: libX11, importc.} -proc XUnionRectWithRegion*(para1: PXRectangle, para2: Region, para3: Region): cint{. - cdecl, dynlib: libX11, importc.} -proc XUnionRegion*(para1: Region, para2: Region, para3: Region): cint{.cdecl, - dynlib: libX11, importc.} -proc XWMGeometry*(para1: PDisplay, para2: cint, para3: cstring, para4: cstring, - para5: cuint, para6: PXSizeHints, para7: Pcint, para8: Pcint, - para9: Pcint, para10: Pcint, para11: Pcint): cint{.cdecl, - dynlib: libX11, importc.} -proc XXorRegion*(para1: Region, para2: Region, para3: Region): cint{.cdecl, - dynlib: libX11, importc.} +proc XAllocClassHint*(): PXClassHint {.cdecl, dynlib: libX11, importc.} +proc XAllocIconSize*(): PXIconSize {.cdecl, dynlib: libX11, importc.} +proc XAllocSizeHints*(): PXSizeHints {.cdecl, dynlib: libX11, importc.} +proc XAllocStandardColormap*(): PXStandardColormap {.cdecl, dynlib: libX11, importc.} +proc XAllocWMHints*(): PXWMHints {.cdecl, dynlib: libX11, importc.} +proc XClipBox*( + para1: Region, para2: PXRectangle +): cint {.cdecl, dynlib: libX11, importc.} + +proc XCreateRegion*(): Region {.cdecl, dynlib: libX11, importc.} +proc XDefaultString*(): cstring {.cdecl, dynlib: libX11, importc.} +proc XDeleteContext*( + para1: PDisplay, para2: XID, para3: XContext +): cint {.cdecl, dynlib: libX11, importc.} + +proc XDestroyRegion*(para1: Region): cint {.cdecl, dynlib: libX11, importc.} +proc XEmptyRegion*(para1: Region): cint {.cdecl, dynlib: libX11, importc.} +proc XEqualRegion*( + para1: Region, para2: Region +): cint {.cdecl, dynlib: libX11, importc.} + +proc XFindContext*( + para1: PDisplay, para2: XID, para3: XContext, para4: PXPointer +): cint {.cdecl, dynlib: libX11, importc.} + +proc XGetClassHint*( + para1: PDisplay, para2: Window, para3: PXClassHint +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetIconSizes*( + para1: PDisplay, para2: Window, para3: PPXIconSize, para4: Pcint +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetNormalHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetRGBColormaps*( + para1: PDisplay, para2: Window, para3: PPXStandardColormap, para4: Pcint, para5: Atom +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetSizeHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints, para4: Atom +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetStandardColormap*( + para1: PDisplay, para2: Window, para3: PXStandardColormap, para4: Atom +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetTextProperty*( + para1: PDisplay, para2: Window, para3: PXTextProperty, para4: Atom +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetVisualInfo*( + para1: PDisplay, para2: clong, para3: PXVisualInfo, para4: Pcint +): PXVisualInfo {.cdecl, dynlib: libX11, importc.} + +proc XGetWMClientMachine*( + para1: PDisplay, para2: Window, para3: PXTextProperty +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetWMHints*( + para1: PDisplay, para2: Window +): PXWMHints {.cdecl, dynlib: libX11, importc.} + +proc XGetWMIconName*( + para1: PDisplay, para2: Window, para3: PXTextProperty +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetWMName*( + para1: PDisplay, para2: Window, para3: PXTextProperty +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetWMNormalHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints, para4: ptr int +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetWMSizeHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints, para4: ptr int, para5: Atom +): Status {.cdecl, dynlib: libX11, importc.} + +proc XGetZoomHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints +): Status {.cdecl, dynlib: libX11, importc.} + +proc XIntersectRegion*( + para1: Region, para2: Region, para3: Region +): cint {.cdecl, dynlib: libX11, importc.} + +proc XConvertCase*( + para1: KeySym, para2: PKeySym, para3: PKeySym +) {.cdecl, dynlib: libX11, importc.} + +proc XLookupString*( + para1: PXKeyEvent, para2: cstring, para3: cint, para4: PKeySym, para5: PXComposeStatus +): cint {.cdecl, dynlib: libX11, importc.} + +proc XMatchVisualInfo*( + para1: PDisplay, para2: cint, para3: cint, para4: cint, para5: PXVisualInfo +): Status {.cdecl, dynlib: libX11, importc.} + +proc XOffsetRegion*( + para1: Region, para2: cint, para3: cint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XPointInRegion*( + para1: Region, para2: cint, para3: cint +): XBool {.cdecl, dynlib: libX11, importc.} + +proc XPolygonRegion*( + para1: PXPoint, para2: cint, para3: cint +): Region {.cdecl, dynlib: libX11, importc.} + +proc XRectInRegion*( + para1: Region, para2: cint, para3: cint, para4: cuint, para5: cuint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSaveContext*( + para1: PDisplay, para2: XID, para3: XContext, para4: cstring +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetClassHint*( + para1: PDisplay, para2: Window, para3: PXClassHint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetIconSizes*( + para1: PDisplay, para2: Window, para3: PXIconSize, para4: cint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetNormalHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetRGBColormaps*( + para1: PDisplay, para2: Window, para3: PXStandardColormap, para4: cint, para5: Atom +) {.cdecl, dynlib: libX11, importc.} + +proc XSetSizeHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints, para4: Atom +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetStandardProperties*( + para1: PDisplay, + para2: Window, + para3: cstring, + para4: cstring, + para5: Pixmap, + para6: PPchar, + para7: cint, + para8: PXSizeHints, +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetTextProperty*( + para1: PDisplay, para2: Window, para3: PXTextProperty, para4: Atom +) {.cdecl, dynlib: libX11, importc.} + +proc XSetWMClientMachine*( + para1: PDisplay, para2: Window, para3: PXTextProperty +) {.cdecl, dynlib: libX11, importc.} + +proc XSetWMHints*( + para1: PDisplay, para2: Window, para3: PXWMHints +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetWMIconName*( + para1: PDisplay, para2: Window, para3: PXTextProperty +) {.cdecl, dynlib: libX11, importc.} + +proc XSetWMName*( + para1: PDisplay, para2: Window, para3: PXTextProperty +) {.cdecl, dynlib: libX11, importc.} + +proc XSetWMNormalHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints +) {.cdecl, dynlib: libX11, importc.} + +proc XSetWMProperties*( + para1: PDisplay, + para2: Window, + para3: PXTextProperty, + para4: PXTextProperty, + para5: PPchar, + para6: cint, + para7: PXSizeHints, + para8: PXWMHints, + para9: PXClassHint, +) {.cdecl, dynlib: libX11, importc.} + +proc XmbSetWMProperties*( + para1: PDisplay, + para2: Window, + para3: cstring, + para4: cstring, + para5: PPchar, + para6: cint, + para7: PXSizeHints, + para8: PXWMHints, + para9: PXClassHint, +) {.cdecl, dynlib: libX11, importc.} + +proc Xutf8SetWMProperties*( + para1: PDisplay, + para2: Window, + para3: cstring, + para4: cstring, + para5: PPchar, + para6: cint, + para7: PXSizeHints, + para8: PXWMHints, + para9: PXClassHint, +) {.cdecl, dynlib: libX11, importc.} + +proc XSetWMSizeHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints, para4: Atom +) {.cdecl, dynlib: libX11, importc.} + +proc XSetRegion*( + para1: PDisplay, para2: GC, para3: Region +): cint {.cdecl, dynlib: libX11, importc.} + +proc XSetStandardColormap*( + para1: PDisplay, para2: Window, para3: PXStandardColormap, para4: Atom +) {.cdecl, dynlib: libX11, importc.} + +proc XSetZoomHints*( + para1: PDisplay, para2: Window, para3: PXSizeHints +): cint {.cdecl, dynlib: libX11, importc.} + +proc XShrinkRegion*( + para1: Region, para2: cint, para3: cint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XStringListToTextProperty*( + para1: PPchar, para2: cint, para3: PXTextProperty +): Status {.cdecl, dynlib: libX11, importc.} + +proc XSubtractRegion*( + para1: Region, para2: Region, para3: Region +): cint {.cdecl, dynlib: libX11, importc.} + +proc XmbTextListToTextProperty*( + para1: PDisplay, + para2: PPchar, + para3: cint, + para4: XICCEncodingStyle, + para5: PXTextProperty, +): cint {.cdecl, dynlib: libX11, importc.} + +proc XwcTextListToTextProperty*( + para1: PDisplay, + para2: ptr ptr int16, + para3: cint, + para4: XICCEncodingStyle, + para5: PXTextProperty, +): cint {.cdecl, dynlib: libX11, importc.} + +proc Xutf8TextListToTextProperty*( + para1: PDisplay, + para2: PPchar, + para3: cint, + para4: XICCEncodingStyle, + para5: PXTextProperty, +): cint {.cdecl, dynlib: libX11, importc.} + +proc XwcFreeStringList*(para1: ptr ptr int16) {.cdecl, dynlib: libX11, importc.} +proc XTextPropertyToStringList*( + para1: PXTextProperty, para2: PPPchar, para3: Pcint +): Status {.cdecl, dynlib: libX11, importc.} + +proc XmbTextPropertyToTextList*( + para1: PDisplay, para2: PXTextProperty, para3: PPPchar, para4: Pcint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XwcTextPropertyToTextList*( + para1: PDisplay, para2: PXTextProperty, para3: ptr ptr ptr int16, para4: Pcint +): cint {.cdecl, dynlib: libX11, importc.} + +proc Xutf8TextPropertyToTextList*( + para1: PDisplay, para2: PXTextProperty, para3: PPPchar, para4: Pcint +): cint {.cdecl, dynlib: libX11, importc.} + +proc XUnionRectWithRegion*( + para1: PXRectangle, para2: Region, para3: Region +): cint {.cdecl, dynlib: libX11, importc.} + +proc XUnionRegion*( + para1: Region, para2: Region, para3: Region +): cint {.cdecl, dynlib: libX11, importc.} + +proc XWMGeometry*( + para1: PDisplay, + para2: cint, + para3: cstring, + para4: cstring, + para5: cuint, + para6: PXSizeHints, + para7: Pcint, + para8: Pcint, + para9: Pcint, + para10: Pcint, + para11: Pcint, +): cint {.cdecl, dynlib: libX11, importc.} + +proc XXorRegion*( + para1: Region, para2: Region, para3: Region +): cint {.cdecl, dynlib: libX11, importc.} + #when defined(MACROS): proc XDestroyImage*(ximage: PXImage): cint proc XGetPixel*(ximage: PXImage, x, y: cint): culong @@ -372,6 +515,7 @@ proc IsModifierKey*(keysym: KeySym): bool #function XUniqueContext : XContext; #function XStringToContext(_string : Pchar) : XContext; + # implementation #when defined(MACROS): @@ -409,5 +553,5 @@ (keysym >= XK_Select) and (keysym <= XK_Break) proc IsModifierKey(keysym: KeySym): bool = - ((keysym >= XK_Shift_L) and (keysym <= XK_Hyper_R)) or - (keysym == XK_Mode_switch) or (keysym == XK_Num_Lock) + ((keysym >= XK_Shift_L) and (keysym <= XK_Hyper_R)) or (keysym == XK_Mode_switch) or + (keysym == XK_Num_Lock) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xv.nim --- a/semicongine/thirdparty/x11/xv.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xv.nim Thu Aug 22 18:32:21 2024 +0700 @@ -23,8 +23,7 @@ #****************************************************************** # $XFree86: xc/include/extensions/Xv.h,v 1.3 1999/05/23 06:33:22 dawes Exp $ -import - x +import x const XvName* = "libXVideo.so" @@ -53,10 +52,10 @@ XvPacked* = 0 XvPlanar* = 1 XvTopToBottom* = 0 - XvBottomToTop* = 1 # Events + XvBottomToTop* = 1 # Events XvVideoNotify* = 0 XvPortNotify* = 1 - XvNumEvents* = 2 # Video Notify Reasons + XvNumEvents* = 2 # Video Notify Reasons XvStarted* = 0 XvStopped* = 1 XvBusy* = 2 @@ -70,11 +69,11 @@ XvPreemptedMask* = 1 shl XvPreempted XvHardErrorMask* = 1 shl XvHardError XvAnyReasonMask* = (1 shl XvNumReasons) - 1 - XvNoReasonMask* = 0 # Errors + XvNoReasonMask* = 0 # Errors XvBadPort* = 0 XvBadEncoding* = 1 XvBadControl* = 2 - XvNumErrors* = 3 # Status + XvNumErrors* = 3 # Status XvBadExtension* = 1 XvAlreadyGrabbed* = 2 XvInvalidTime* = 3 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/x11/xvlib.nim --- a/semicongine/thirdparty/x11/xvlib.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/x11/xvlib.nim Thu Aug 22 18:32:21 2024 +0700 @@ -50,20 +50,18 @@ #** #* -import - x, xlib, xshm, xv +import x, xlib, xshm, xv -const - libXv* = "libXv.so" +const libXv* = "libXv.so" type PXvRational* = ptr XvRational - XvRational*{.final.} = object + XvRational* {.final.} = object numerator*: cint denominator*: cint PXvAttribute* = ptr XvAttribute - XvAttribute*{.final.} = object + XvAttribute* {.final.} = object flags*: cint # XvGettable, XvSettable min_value*: cint max_value*: cint @@ -71,7 +69,7 @@ PPXvEncodingInfo* = ptr PXvEncodingInfo PXvEncodingInfo* = ptr XvEncodingInfo - XvEncodingInfo*{.final.} = object + XvEncodingInfo* {.final.} = object encoding_id*: XvEncodingID name*: cstring width*: culong @@ -80,13 +78,13 @@ num_encodings*: culong PXvFormat* = ptr XvFormat - XvFormat*{.final.} = object + XvFormat* {.final.} = object depth*: cchar visual_id*: culong PPXvAdaptorInfo* = ptr PXvAdaptorInfo PXvAdaptorInfo* = ptr XvAdaptorInfo - XvAdaptorInfo*{.final.} = object + XvAdaptorInfo* {.final.} = object base_id*: XvPortID num_ports*: culong thetype*: cchar @@ -96,56 +94,57 @@ num_adaptors*: culong PXvVideoNotifyEvent* = ptr XvVideoNotifyEvent - XvVideoNotifyEvent*{.final.} = object + XvVideoNotifyEvent* {.final.} = object theType*: cint - serial*: culong # # of last request processed by server - send_event*: XBool # true if this came from a SendEvent request - display*: PDisplay # Display the event was read from + serial*: culong # # of last request processed by server + send_event*: XBool # true if this came from a SendEvent request + display*: PDisplay # Display the event was read from drawable*: Drawable # drawable - reason*: culong # what generated this event - port_id*: XvPortID # what port - time*: Time # milliseconds + reason*: culong # what generated this event + port_id*: XvPortID # what port + time*: Time # milliseconds PXvPortNotifyEvent* = ptr XvPortNotifyEvent - XvPortNotifyEvent*{.final.} = object + XvPortNotifyEvent* {.final.} = object theType*: cint - serial*: culong # # of last request processed by server + serial*: culong # # of last request processed by server send_event*: XBool # true if this came from a SendEvent request display*: PDisplay # Display the event was read from port_id*: XvPortID # what port - time*: Time # milliseconds - attribute*: Atom # atom that identifies attribute - value*: clong # value of attribute + time*: Time # milliseconds + attribute*: Atom # atom that identifies attribute + value*: clong # value of attribute PXvEvent* = ptr XvEvent - XvEvent*{.final.} = object - pad*: array[0..23, clong] # case longint of - # 0 : ( - # theType : cint; - # ); - # 1 : ( - # xvvideo : XvVideoNotifyEvent; - # ); - # 2 : ( - # xvport : XvPortNotifyEvent; - # ); - # 3 : ( - # - # ); + XvEvent* {.final.} = object + pad*: array[0 .. 23, clong] + # case longint of + # 0 : ( + # theType : cint; + # ); + # 1 : ( + # xvvideo : XvVideoNotifyEvent; + # ); + # 2 : ( + # xvport : XvPortNotifyEvent; + # ); + # 3 : ( + # + # ); PXvImageFormatValues* = ptr XvImageFormatValues - XvImageFormatValues*{.final.} = object - id*: cint # Unique descriptor for the format - theType*: cint # XvRGB, XvYUV - byte_order*: cint # LSBFirst, MSBFirst - guid*: array[0..15, cchar] # Globally Unique IDentifier + XvImageFormatValues* {.final.} = object + id*: cint # Unique descriptor for the format + theType*: cint # XvRGB, XvYUV + byte_order*: cint # LSBFirst, MSBFirst + guid*: array[0 .. 15, cchar] # Globally Unique IDentifier bits_per_pixel*: cint - format*: cint # XvPacked, XvPlanar - num_planes*: cint # for RGB formats only + format*: cint # XvPacked, XvPlanar + num_planes*: cint # for RGB formats only depth*: cint red_mask*: cuint green_mask*: cuint - blue_mask*: cuint # for YUV formats only + blue_mask*: cuint # for YUV formats only y_sample_bits*: cuint u_sample_bits*: cuint v_sample_bits*: cuint @@ -155,79 +154,159 @@ vert_y_period*: cuint vert_u_period*: cuint vert_v_period*: cuint - component_order*: array[0..31, char] # eg. UYVY - scanline_order*: cint # XvTopToBottom, XvBottomToTop + component_order*: array[0 .. 31, char] # eg. UYVY + scanline_order*: cint # XvTopToBottom, XvBottomToTop PXvImage* = ptr XvImage - XvImage*{.final.} = object + XvImage* {.final.} = object id*: cint width*, height*: cint data_size*: cint # bytes num_planes*: cint - pitches*: cint # bytes - offsets*: cint # bytes + pitches*: cint # bytes + offsets*: cint # bytes data*: pointer obdata*: XPointer -proc XvQueryExtension*(display: PDisplay, p_version, p_revision, p_requestBase, - p_eventBase, p_errorBase: cuint): cint{.cdecl, dynlib: libXv, importc.} -proc XvQueryAdaptors*(display: PDisplay, window: Window, p_nAdaptors: cuint, - p_pAdaptors: PPXvAdaptorInfo): cint{.cdecl, dynlib: libXv, - importc.} -proc XvQueryEncodings*(display: PDisplay, port: XvPortID, p_nEncoding: cuint, - p_pEncoding: PPXvEncodingInfo): cint{.cdecl, - dynlib: libXv, importc.} -proc XvPutVideo*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, - vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. - cdecl, dynlib: libXv, importc.} -proc XvPutStill*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, - vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. - cdecl, dynlib: libXv, importc.} -proc XvGetVideo*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, - vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. - cdecl, dynlib: libXv, importc.} -proc XvGetStill*(display: PDisplay, port: XvPortID, d: Drawable, gc: GC, - vx, vy: cint, vw, vh: cuint, dx, dy: cint, dw, dh: cuint): cint{. - cdecl, dynlib: libXv, importc.} -proc XvStopVideo*(display: PDisplay, port: XvPortID, drawable: Drawable): cint{. - cdecl, dynlib: libXv, importc.} -proc XvGrabPort*(display: PDisplay, port: XvPortID, time: Time): cint{.cdecl, - dynlib: libXv, importc.} -proc XvUngrabPort*(display: PDisplay, port: XvPortID, time: Time): cint{. - cdecl, dynlib: libXv, importc.} -proc XvSelectVideoNotify*(display: PDisplay, drawable: Drawable, onoff: XBool): cint{. - cdecl, dynlib: libXv, importc.} -proc XvSelectPortNotify*(display: PDisplay, port: XvPortID, onoff: XBool): cint{. - cdecl, dynlib: libXv, importc.} -proc XvSetPortAttribute*(display: PDisplay, port: XvPortID, attribute: Atom, - value: cint): cint{.cdecl, dynlib: libXv, importc.} -proc XvGetPortAttribute*(display: PDisplay, port: XvPortID, attribute: Atom, - p_value: cint): cint{.cdecl, dynlib: libXv, importc.} -proc XvQueryBestSize*(display: PDisplay, port: XvPortID, motion: XBool, - vid_w, vid_h, drw_w, drw_h: cuint, - p_actual_width, p_actual_height: cuint): cint{.cdecl, - dynlib: libXv, importc.} -proc XvQueryPortAttributes*(display: PDisplay, port: XvPortID, number: cint): PXvAttribute{. - cdecl, dynlib: libXv, importc.} -proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo){.cdecl, dynlib: libXv, importc.} -proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo){.cdecl, dynlib: libXv, - importc.} -proc XvListImageFormats*(display: PDisplay, port_id: XvPortID, - count_return: cint): PXvImageFormatValues{.cdecl, - dynlib: libXv, importc.} -proc XvCreateImage*(display: PDisplay, port: XvPortID, id: cint, data: pointer, - width, height: cint): PXvImage{.cdecl, dynlib: libXv, - importc.} -proc XvPutImage*(display: PDisplay, id: XvPortID, d: Drawable, gc: GC, - image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, - dest_x, dest_y: cint, dest_w, dest_h: cuint): cint{.cdecl, - dynlib: libXv, importc.} -proc XvShmPutImage*(display: PDisplay, id: XvPortID, d: Drawable, gc: GC, - image: PXvImage, src_x, src_y: cint, src_w, src_h: cuint, - dest_x, dest_y: cint, dest_w, dest_h: cuint, - send_event: XBool): cint{.cdecl, dynlib: libXv, importc.} -proc XvShmCreateImage*(display: PDisplay, port: XvPortID, id: cint, - data: pointer, width, height: cint, - shminfo: PXShmSegmentInfo): PXvImage{.cdecl, - dynlib: libXv, importc.} +proc XvQueryExtension*( + display: PDisplay, + p_version, p_revision, p_requestBase, p_eventBase, p_errorBase: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvQueryAdaptors*( + display: PDisplay, window: Window, p_nAdaptors: cuint, p_pAdaptors: PPXvAdaptorInfo +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvQueryEncodings*( + display: PDisplay, port: XvPortID, p_nEncoding: cuint, p_pEncoding: PPXvEncodingInfo +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvPutVideo*( + display: PDisplay, + port: XvPortID, + d: Drawable, + gc: GC, + vx, vy: cint, + vw, vh: cuint, + dx, dy: cint, + dw, dh: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvPutStill*( + display: PDisplay, + port: XvPortID, + d: Drawable, + gc: GC, + vx, vy: cint, + vw, vh: cuint, + dx, dy: cint, + dw, dh: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvGetVideo*( + display: PDisplay, + port: XvPortID, + d: Drawable, + gc: GC, + vx, vy: cint, + vw, vh: cuint, + dx, dy: cint, + dw, dh: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvGetStill*( + display: PDisplay, + port: XvPortID, + d: Drawable, + gc: GC, + vx, vy: cint, + vw, vh: cuint, + dx, dy: cint, + dw, dh: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvStopVideo*( + display: PDisplay, port: XvPortID, drawable: Drawable +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvGrabPort*( + display: PDisplay, port: XvPortID, time: Time +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvUngrabPort*( + display: PDisplay, port: XvPortID, time: Time +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvSelectVideoNotify*( + display: PDisplay, drawable: Drawable, onoff: XBool +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvSelectPortNotify*( + display: PDisplay, port: XvPortID, onoff: XBool +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvSetPortAttribute*( + display: PDisplay, port: XvPortID, attribute: Atom, value: cint +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvGetPortAttribute*( + display: PDisplay, port: XvPortID, attribute: Atom, p_value: cint +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvQueryBestSize*( + display: PDisplay, + port: XvPortID, + motion: XBool, + vid_w, vid_h, drw_w, drw_h: cuint, + p_actual_width, p_actual_height: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvQueryPortAttributes*( + display: PDisplay, port: XvPortID, number: cint +): PXvAttribute {.cdecl, dynlib: libXv, importc.} + +proc XvFreeAdaptorInfo*(adaptors: PXvAdaptorInfo) {.cdecl, dynlib: libXv, importc.} +proc XvFreeEncodingInfo*(encodings: PXvEncodingInfo) {.cdecl, dynlib: libXv, importc.} +proc XvListImageFormats*( + display: PDisplay, port_id: XvPortID, count_return: cint +): PXvImageFormatValues {.cdecl, dynlib: libXv, importc.} + +proc XvCreateImage*( + display: PDisplay, port: XvPortID, id: cint, data: pointer, width, height: cint +): PXvImage {.cdecl, dynlib: libXv, importc.} + +proc XvPutImage*( + display: PDisplay, + id: XvPortID, + d: Drawable, + gc: GC, + image: PXvImage, + src_x, src_y: cint, + src_w, src_h: cuint, + dest_x, dest_y: cint, + dest_w, dest_h: cuint, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvShmPutImage*( + display: PDisplay, + id: XvPortID, + d: Drawable, + gc: GC, + image: PXvImage, + src_x, src_y: cint, + src_w, src_h: cuint, + dest_x, dest_y: cint, + dest_w, dest_h: cuint, + send_event: XBool, +): cint {.cdecl, dynlib: libXv, importc.} + +proc XvShmCreateImage*( + display: PDisplay, + port: XvPortID, + id: cint, + data: pointer, + width, height: cint, + shminfo: PXShmSegmentInfo, +): PXvImage {.cdecl, dynlib: libXv, importc.} + # implementation diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy.nim --- a/semicongine/thirdparty/zippy/zippy.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,5 +1,11 @@ -import zippy/adler32, zippy/common, zippy/crc, zippy/deflate, - zippy/gzip, zippy/inflate, zippy/internal +import + zippy/adler32, + zippy/common, + zippy/crc, + zippy/deflate, + zippy/gzip, + zippy/inflate, + zippy/internal when (NimMajor, NimMinor, NimPatch) >= (1, 6, 0): import std/sysrand @@ -9,15 +15,12 @@ export common proc compress*( - src: pointer, - len: int, - level = DefaultCompression, - dataFormat = dfGzip + src: pointer, len: int, level = DefaultCompression, dataFormat = dfGzip ): string {.raises: [ZippyError].} = ## Compresses src and returns the compressed data. let src = cast[ptr UncheckedArray[uint8]](src) - case dataFormat: + case dataFormat of dfGzip: result.setLen(10) result[0] = 31.char @@ -56,7 +59,6 @@ result.add(((isize shr 8) and 255).char) result.add(((isize shr 16) and 255).char) result.add(((isize shr 24) and 255).char) - of dfZlib: const cm = 8.uint8 @@ -76,57 +78,44 @@ result.add(((checksum shr 16) and 255).char) result.add(((checksum shr 8) and 255).char) result.add(((checksum shr 0) and 255).char) - of dfDeflate: deflate(result, src, len, level) - else: raise newException(ZippyError, "Invalid data format " & $dfDetect) proc compress*( - src: string, - level = DefaultCompression, - dataFormat = dfGzip + src: string, level = DefaultCompression, dataFormat = dfGzip ): string {.raises: [ZippyError].} = compress(src.cstring, src.len, level, dataFormat) proc compress*( - src: seq[uint8], - level = DefaultCompression, - dataFormat = dfGzip + src: seq[uint8], level = DefaultCompression, dataFormat = dfGzip ): seq[uint8] {.raises: [ZippyError].} = cast[seq[uint8]](compress(cast[string](src).cstring, src.len, level, dataFormat)) proc uncompress*( - src: pointer, - len: int, - dataFormat = dfDetect + src: pointer, len: int, dataFormat = dfDetect ): string {.raises: [ZippyError].} = ## Uncompresses src and returns the uncompressed data. let src = cast[ptr UncheckedArray[uint8]](src) - case dataFormat: + case dataFormat of dfDetect: if ( - len > 18 and - src[0].uint8 == 31 and src[1].uint8 == 139 and src[2].uint8 == 8 and + len > 18 and src[0].uint8 == 31 and src[1].uint8 == 139 and src[2].uint8 == 8 and (src[3].uint8 and 0b11100000) == 0 ): return uncompress(src, len, dfGzip) if ( - len > 6 and - (src[0].uint8 and 0b00001111) == 8 and - (src[0].uint8 shr 4) <= 7 and + len > 6 and (src[0].uint8 and 0b00001111) == 8 and (src[0].uint8 shr 4) <= 7 and ((src[0].uint16 * 256) + src[1].uint8) mod 31 == 0 ): return uncompress(src, len, dfZlib) raise newException(ZippyError, "Unable to detect compressed data format") - of dfGzip: uncompressGzip(result, src, len) - of dfZlib: if len < 6: failUncompress() @@ -152,26 +141,19 @@ inflate(result, src, len, 2) let checksum = ( - src[len - 4].uint32 shl 24 or - src[len - 3].uint32 shl 16 or - src[len - 2].uint32 shl 8 or - src[len - 1].uint32 + src[len - 4].uint32 shl 24 or src[len - 3].uint32 shl 16 or + src[len - 2].uint32 shl 8 or src[len - 1].uint32 ) if checksum != adler32(result): raise newException(ZippyError, "Checksum verification failed") - of dfDeflate: inflate(result, src, len, 0) -proc uncompress*( - src: string, - dataFormat = dfDetect -): string {.raises: [ZippyError].} = +proc uncompress*(src: string, dataFormat = dfDetect): string {.raises: [ZippyError].} = uncompress(src.cstring, src.len, dataFormat) proc uncompress*( - src: seq[uint8], - dataFormat = dfDetect + src: seq[uint8], dataFormat = dfDetect ): seq[uint8] {.raises: [ZippyError].} = cast[seq[uint8]](uncompress(cast[string](src).cstring, src.len, dataFormat)) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/adler32_simd.nim --- a/semicongine/thirdparty/zippy/zippy/adler32_simd.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/adler32_simd.nim Thu Aug 22 18:32:21 2024 +0700 @@ -25,13 +25,19 @@ func mm_loadu_si128(p: pointer): M128i {.importc: "_mm_loadu_si128".} func mm_setzero_si128(): M128i {.importc: "_mm_setzero_si128".} func mm_set_epi32(a, b, c, d: int32 | uint32): M128i {.importc: "_mm_set_epi32".} - func mm_setr_epi8(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p: int8 | uint8): M128i {.importc: "_mm_setr_epi8".} + func mm_setr_epi8( + a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p: int8 | uint8 + ): M128i {.importc: "_mm_setr_epi8".} func mm_set1_epi16(a: int16 | uint16): M128i {.importc: "_mm_set1_epi16".} func mm_add_epi32(a, b: M128i): M128i {.importc: "_mm_add_epi32".} func mm_sad_epu8(a, b: M128i): M128i {.importc: "_mm_sad_epu8".} func mm_madd_epi16(a, b: M128i): M128i {.importc: "_mm_madd_epi16".} - func mm_slli_epi32(a: M128i, imm8: int32 | uint32): M128i {.importc: "_mm_slli_epi32".} - func mm_shuffle_epi32(a: M128i, imm8: int32 | uint32): M128i {.importc: "_mm_shuffle_epi32".} + func mm_slli_epi32( + a: M128i, imm8: int32 | uint32 + ): M128i {.importc: "_mm_slli_epi32".} + func mm_shuffle_epi32( + a: M128i, imm8: int32 | uint32 + ): M128i {.importc: "_mm_shuffle_epi32".} func mm_cvtsi128_si32(a: M128i): int32 {.importc: "_mm_cvtsi128_si32".} {.pop.} @@ -64,7 +70,8 @@ remaining -= (blocks * blockSize) let - tap1 = mm_setr_epi8(32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17) + tap1 = + mm_setr_epi8(32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17) tap2 = mm_setr_epi8(16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1) zero = mm_setzero_si128() ones = mm_set1_epi16(1) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/bitstreams.nim --- a/semicongine/thirdparty/zippy/zippy/bitstreams.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/bitstreams.nim Thu Aug 22 18:32:21 2024 +0700 @@ -48,9 +48,7 @@ b.bitsBuffered += 8 * bytesAdded proc readBits*( - b: var BitStreamReader, - bits: int, - fillBitBuffer: static[bool] = true + b: var BitStreamReader, bits: int, fillBitBuffer: static[bool] = true ): uint16 {.inline.} = assert bits >= 0 and bits <= 16 @@ -85,12 +83,7 @@ b.pos += (bits + b.bitPos) shr 3 b.bitPos = (bits + b.bitPos) and 7 -proc addBits*( - b: var BitStreamWriter, - dst: var string, - value: uint32, - bitLen: int -) = +proc addBits*(b: var BitStreamWriter, dst: var string, value: uint32, bitLen: int) = assert bitLen >= 0 and bitLen <= 32 if b.pos + 8 > dst.len: @@ -104,10 +97,10 @@ b.incPos(bitLen) proc addBytes*( - b: var BitStreamWriter, - dst: var string, - src: ptr UncheckedArray[uint8], - srcPos, len: int + b: var BitStreamWriter, + dst: var string, + src: ptr UncheckedArray[uint8], + srcPos, len: int, ) = if b.bitPos != 0: raise newException(ZippyError, "Must be at a byte boundary") diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/common.nim --- a/semicongine/thirdparty/zippy/zippy/common.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/common.nim Thu Aug 22 18:32:21 2024 +0700 @@ -2,7 +2,10 @@ ZippyError* = object of CatchableError ## Raised if an operation fails. CompressedDataFormat* = enum ## Supported compressed data formats - dfDetect, dfZlib, dfGzip, dfDeflate + dfDetect + dfZlib + dfGzip + dfDeflate const NoCompression* = 0 diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/crc.nim --- a/semicongine/thirdparty/zippy/zippy/crc.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/crc.nim Thu Aug 22 18:32:21 2024 +0700 @@ -37,14 +37,10 @@ one = read32(src, i) xor result two = read32(src, i + 4) result = - crcTables[7][one and 255] xor - crcTables[6][(one shr 8) and 255] xor - crcTables[5][(one shr 16) and 255] xor - crcTables[4][one shr 24] xor - crcTables[3][two and 255] xor - crcTables[2][(two shr 8) and 255] xor - crcTables[1][(two shr 16) and 255] xor - crcTables[0][two shr 24] + crcTables[7][one and 255] xor crcTables[6][(one shr 8) and 255] xor + crcTables[5][(one shr 16) and 255] xor crcTables[4][one shr 24] xor + crcTables[3][two and 255] xor crcTables[2][(two shr 8) and 255] xor + crcTables[1][(two shr 16) and 255] xor crcTables[0][two shr 24] i += 8 for j in i ..< len: diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/crc32_simd.nim --- a/semicongine/thirdparty/zippy/zippy/crc32_simd.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/crc32_simd.nim Thu Aug 22 18:32:21 2024 +0700 @@ -17,7 +17,9 @@ func mm_loadu_si128(p: pointer): M128i {.importc: "_mm_loadu_si128".} func mm_loadl_epi64(p: pointer): M128i {.importc: "_mm_loadl_epi64".} func mm_setr_epi32(a, b, c, d: int32 | uint32): M128i {.importc: "_mm_setr_epi32".} - func mm_srli_si128(a: M128i, imm8: int32 | uint32): M128i {.importc: "_mm_srli_si128".} + func mm_srli_si128( + a: M128i, imm8: int32 | uint32 + ): M128i {.importc: "_mm_srli_si128".} func mm_xor_si128(a, b: M128i): M128i {.importc: "_mm_xor_si128".} func mm_and_si128(a, b: M128i): M128i {.importc: "_mm_and_si128".} func mm_cvtsi32_si128(a: int32 | uint32): M128i {.importc: "_mm_cvtsi32_si128".} @@ -26,13 +28,17 @@ {.push header: "smmintrin.h".} - func mm_extract_epi32(a: M128i, imm8: int32 | uint32): int32 {.importc: "_mm_extract_epi32".} + func mm_extract_epi32( + a: M128i, imm8: int32 | uint32 + ): int32 {.importc: "_mm_extract_epi32".} {.pop.} {.push header: "wmmintrin.h".} - func mm_clmulepi64_si128(a, b: M128i, imm8: int32 | uint32): M128i {.importc: "_mm_clmulepi64_si128".} + func mm_clmulepi64_si128( + a, b: M128i, imm8: int32 | uint32 + ): M128i {.importc: "_mm_clmulepi64_si128".} {.pop.} @@ -145,7 +151,9 @@ elif defined(arm64): func crc32b(crc: uint32, v: uint8): uint32 {.importc: "__builtin_arm_crc32b", nodecl.} - func crc32d(crc: uint32, v: uint64): uint32 {.importc: "__builtin_arm_crc32d", nodecl.} + func crc32d( + crc: uint32, v: uint64 + ): uint32 {.importc: "__builtin_arm_crc32d", nodecl.} proc crc32_armv8a_crypto*(src: pointer, len: int): uint32 = let src = cast[ptr UncheckedArray[uint8]](src) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/deflate.nim --- a/semicongine/thirdparty/zippy/zippy/deflate.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/deflate.nim Thu Aug 22 18:32:21 2024 +0700 @@ -11,8 +11,7 @@ a.freq < b.freq proc huffmanCodes( - frequencies: openArray[uint32], - minCodes, codeLengthLimit: int + frequencies: openArray[uint32], minCodes, codeLengthLimit: int ): (seq[uint16], seq[uint8]) = # https://en.wikipedia.org/wiki/Huffman_coding#Length-limited_Huffman_coding # https://en.wikipedia.org/wiki/Canonical_Huffman_code @@ -55,11 +54,7 @@ heap.push(node) while heap.len >= 2: - let node = Node( - symbol: -1, - left: heap.pop(), - right: heap.pop() - ) + let node = Node(symbol: -1, left: heap.pop(), right: heap.pop()) node.freq = node.left.freq + node.right.freq heap.push(node) @@ -151,11 +146,11 @@ (codes, codeLens) proc encodeAllLiterals( - encoding: var seq[uint16], - ep: var int, - metadata: var BlockMetadata, - src: ptr UncheckedArray[uint8], - start, len: int + encoding: var seq[uint16], + ep: var int, + metadata: var BlockMetadata, + src: ptr UncheckedArray[uint8], + start, len: int, ) = for i in 0 ..< len: inc metadata.litLenFreq[src[start + i]] @@ -177,24 +172,20 @@ metadata.numLiterals = len proc addNoCompressionBlock( - b: var BitStreamWriter, - dst: var string, - src: ptr UncheckedArray[uint8], - blockStart, blockLen: int, - finalBlock: bool + b: var BitStreamWriter, + dst: var string, + src: ptr UncheckedArray[uint8], + blockStart, blockLen: int, + finalBlock: bool, ) = - let uncompressedBlockCount = max( - (blockLen + maxUncompressedBlockSize - 1) div maxUncompressedBlockSize, - 1 - ) + let uncompressedBlockCount = + max((blockLen + maxUncompressedBlockSize - 1) div maxUncompressedBlockSize, 1) for blockNum in 0 ..< uncompressedBlockCount: let uncompressedFinalBlock = blockNum == (uncompressedBlockCount - 1) uncompressedBlockStart = blockStart + blockNum * maxUncompressedBlockSize - uncompressedBlockLen = min( - blockStart + blockLen - uncompressedBlockStart, - maxUncompressedBlockSize - ) + uncompressedBlockLen = + min(blockStart + blockLen - uncompressedBlockStart, maxUncompressedBlockSize) b.addBits(dst, if finalBlock and uncompressedFinalBlock: 1 else: 0, 1) b.addBits(dst, 0, 2) @@ -212,10 +203,8 @@ b.pos = dst.len if level == 0: - let blockCount = max( - (len + maxUncompressedBlockSize - 1) div maxUncompressedBlockSize, - 1 - ) + let blockCount = + max((len + maxUncompressedBlockSize - 1) div maxUncompressedBlockSize, 1) for blockNum in 0 ..< blockCount: let finalBlock = blockNum == (blockCount - 1) @@ -240,25 +229,11 @@ var metadata: BlockMetadata - case level: + case level of -2: - encodeAllLiterals( - encoding, - encodingLen, - metadata, - src, - blockStart, - blockLen - ) + encodeAllLiterals(encoding, encodingLen, metadata, src, blockStart, blockLen) of 1: - encodeSnappy( - encoding, - encodingLen, - metadata, - src, - blockStart, - blockLen - ) + encodeSnappy(encoding, encodingLen, metadata, src, blockStart, blockLen) else: # -1 or [2, 9] encodeLz77( @@ -268,7 +243,7 @@ metadata, src, blockStart, - blockLen + blockLen, ) # If encoding returned almost all literals then write uncompressed. @@ -311,7 +286,7 @@ while i < numCodes: var repeatCount: int while i + repeatCount + 1 < numCodes and - codeLengths[i + repeatCount + 1] == codeLengths[i]: + codeLengths[i + repeatCount + 1] == codeLengths[i]: inc repeatCount if codeLengths[i] == 0 and repeatCount >= 2: @@ -431,7 +406,6 @@ if bitLen > 0: b.addBits(dst, buf.uint32, bitLen) - else: let literalsLength = encoding[encPos].int inc encPos diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/gzip.nim --- a/semicongine/thirdparty/zippy/zippy/gzip.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/gzip.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,10 +1,7 @@ import common, crc, inflate, internal proc uncompressGzip*( - dst: var string, - src: ptr UncheckedArray[uint8], - len: int, - trustSize = false + dst: var string, src: ptr UncheckedArray[uint8], len: int, trustSize = false ) = # Assumes the gzip src data only contains one file. if len < 18: diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/inflate.nim --- a/semicongine/thirdparty/zippy/zippy/inflate.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/inflate.nim Thu Aug 22 18:32:21 2024 +0700 @@ -4,6 +4,7 @@ func bitreverse16(v: uint16): uint16 {.importc: "__builtin_bitreverse16", nodecl.} proc reverseBits(v: uint16): uint16 {.inline.} = bitreverse16(v) + else: import std/bitops @@ -52,8 +53,7 @@ for i, len in codeLengths: if len > 0.uint8: - let symbolId = - nextCode[len] - result.firstCode[len] + result.firstSymbol[len] + let symbolId = nextCode[len] - result.firstCode[len] + result.firstSymbol[len] # result.lengths[symbolId] = len result.values[symbolId] = i.uint16 if len <= fastBits: @@ -82,8 +82,7 @@ return uint16.high let symbolId = - (k shr (16.uint16 - codeLength)) - - h.firstCode[codeLength] + + (k shr (16.uint16 - codeLength)) - h.firstCode[codeLength] + h.firstSymbol[codeLength] result = h.values[symbolId] @@ -102,10 +101,7 @@ result = b.decodeSymbolSlow(h) proc inflateBlock( - dst: var string, - b: var BitStreamReader, - op: var int, - fixedCodes: bool + dst: var string, b: var BitStreamReader, op: var int, fixedCodes: bool ) = var literalsHuffman, distancesHuffman: Huffman if fixedCodes: @@ -204,8 +200,8 @@ failUncompress() let copyLength = ( - baseLengths[lengthIdx] + - b.readBits(baseLengthsExtraBits[lengthIdx].int, false) # Up to 5 + baseLengths[lengthIdx] + b.readBits(baseLengthsExtraBits[lengthIdx].int, false) + # Up to 5 ).int let distanceIdx = decodeSymbol(b, distancesHuffman) # Up to 15 @@ -249,11 +245,7 @@ remaining -= 8 op += copyLength -proc inflateNoCompression( - dst: var string, - b: var BitStreamReader, - op: var int -) = +proc inflateNoCompression(dst: var string, b: var BitStreamReader, op: var int) = b.skipRemainingBitsInCurrentByte() let len = b.readBits(16).int @@ -278,7 +270,7 @@ if bfinal != 0.uint16: finalBlock = true - case btype: + case btype of 0: # No compression inflateNoCompression(dst, b, op) of 1: # Compressed with fixed Huffman codes diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/internal.nim --- a/semicongine/thirdparty/zippy/zippy/internal.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/internal.nim Thu Aug 22 18:32:21 2024 +0700 @@ -24,91 +24,152 @@ maxLiteralLength* = uint16.high.int shr 1 baseLengths* = [ - 3.uint16, 4, 5, 6, 7, 8, 9, 10, # 257 - 264 - 11, 13, 15, 17, # 265 - 268 - 19, 23, 27, 31, # 269 - 273 - 35, 43, 51, 59, # 274 - 276 - 67, 83, 99, 115, # 278 - 280 - 131, 163, 195, 227, # 281 - 284 - 258 # 285 + 3.uint16, + 4, + 5, + 6, + 7, + 8, + 9, + 10, # 257 - 264 + 11, + 13, + 15, + 17, # 265 - 268 + 19, + 23, + 27, + 31, # 269 - 273 + 35, + 43, + 51, + 59, # 274 - 276 + 67, + 83, + 99, + 115, # 278 - 280 + 131, + 163, + 195, + 227, # 281 - 284 + 258, # 285 ] baseLengthsExtraBits* = [ - 0.uint8, 0, 0, 0, 0, 0, 0, 0, # 257 - 264 - 1, 1, 1, 1, # 265 - 268 - 2, 2, 2, 2, # 269 - 273 - 3, 3, 3, 3, # 274 - 276 - 4, 4, 4, 4, # 278 - 280 - 5, 5, 5, 5, # 281 - 284 - 0 # 285 + 0.uint8, + 0, + 0, + 0, + 0, + 0, + 0, + 0, # 257 - 264 + 1, + 1, + 1, + 1, # 265 - 268 + 2, + 2, + 2, + 2, # 269 - 273 + 3, + 3, + 3, + 3, # 274 - 276 + 4, + 4, + 4, + 4, # 278 - 280 + 5, + 5, + 5, + 5, # 281 - 284 + 0, # 285 ] baseLengthIndices* = [ - 0.uint8, 1, 2, 3, 4, 5, 6, 7, 8, 8, - 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, - 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, - 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, - 17, 17, 17, 17, 17, 17, 17, 17, 18, 18, - 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, - 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, - 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, - 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, - 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, - 27, 27, 27, 27, 27, 28 + 0.uint8, 1, 2, 3, 4, 5, 6, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, + 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, + 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, + 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, + 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, + 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, + 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, + 27, 27, 28, ] baseDistances* = [ - 1.uint16, 2, 3, 4, # 0-3 - 5, 7, # 4-5 - 9, 13, # 6-7 - 17, 25, # 8-9 - 33, 49, # 10-11 - 65, 97, # 12-13 - 129, 193, # 14-15 - 257, 385, # 16-17 - 513, 769, # 18-19 - 1025, 1537, # 20-21 - 2049, 3073, # 22-23 - 4097, 6145, # 24-25 - 8193, 12289, # 26-27 - 16385, 24577 # 28-29 + 1.uint16, + 2, + 3, + 4, # 0-3 + 5, + 7, # 4-5 + 9, + 13, # 6-7 + 17, + 25, # 8-9 + 33, + 49, # 10-11 + 65, + 97, # 12-13 + 129, + 193, # 14-15 + 257, + 385, # 16-17 + 513, + 769, # 18-19 + 1025, + 1537, # 20-21 + 2049, + 3073, # 22-23 + 4097, + 6145, # 24-25 + 8193, + 12289, # 26-27 + 16385, + 24577, # 28-29 ] baseDistanceExtraBits* = [ - 0.uint8, 0, 0, 0, # 0-3 - 1, 1, # 4-5 - 2, 2, # 6-7 - 3, 3, # 8-9 - 4, 4, # 10-11 - 5, 5, # 12-13 - 6, 6, # 14-15 - 7, 7, # 16-17 - 8, 8, # 18-19 - 9, 9, # 20-21 - 10, 10, # 22-23 - 11, 11, # 24-25 - 12, 12, # 26-27 - 13, 13 # 28-29 + 0.uint8, + 0, + 0, + 0, # 0-3 + 1, + 1, # 4-5 + 2, + 2, # 6-7 + 3, + 3, # 8-9 + 4, + 4, # 10-11 + 5, + 5, # 12-13 + 6, + 6, # 14-15 + 7, + 7, # 16-17 + 8, + 8, # 18-19 + 9, + 9, # 20-21 + 10, + 10, # 22-23 + 11, + 11, # 24-25 + 12, + 12, # 26-27 + 13, + 13, # 28-29 ] - clclOrder* = [ - 16.uint8, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 - ] + clclOrder* = [16.uint8, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] S_IFDIR* = 0o0040000 TUREAD* = 0o00400 # read by owner */ @@ -185,7 +246,7 @@ CompressionConfig(good: 8, lazy: 16, nice: 128, chain: 128), # Default CompressionConfig(good: 8, lazy: 32, nice: 256, chain: 256), CompressionConfig(good: 32, lazy: 128, nice: 258, chain: 1024), - CompressionConfig(good: 32, lazy: 258, nice: 258, chain: 4096) # Max compression + CompressionConfig(good: 32, lazy: 258, nice: 258, chain: 4096), # Max compression ] template failUncompress*() = @@ -223,22 +284,18 @@ proc distanceCodeIndex*(value: uint16): uint16 = const distanceCodes = [ - 0.uint8, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, - 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 + 0.uint8, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, + 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, ] if value < distanceCodes.len: @@ -249,8 +306,7 @@ distanceCodes[value shr 14] + 28 proc determineMatchLength*( - src: ptr UncheckedArray[uint8], - s1, s2, limit: int + src: ptr UncheckedArray[uint8], s1, s2, limit: int ): int {.inline.} = var s1 = s1 @@ -281,15 +337,24 @@ result.incl fpGroupRead result.incl fpOthersRead else: - if (permissions and TUREAD) != 0: result.incl(fpUserRead) - if (permissions and TUWRITE) != 0: result.incl(fpUserWrite) - if (permissions and TUEXEC) != 0: result.incl(fpUserExec) - if (permissions and TGREAD) != 0: result.incl(fpGroupRead) - if (permissions and TGWRITE) != 0: result.incl(fpGroupWrite) - if (permissions and TGEXEC) != 0: result.incl(fpGroupExec) - if (permissions and TOREAD) != 0: result.incl(fpOthersRead) - if (permissions and TOWRITE) != 0: result.incl(fpOthersWrite) - if (permissions and TOEXEC) != 0: result.incl(fpOthersExec) + if (permissions and TUREAD) != 0: + result.incl(fpUserRead) + if (permissions and TUWRITE) != 0: + result.incl(fpUserWrite) + if (permissions and TUEXEC) != 0: + result.incl(fpUserExec) + if (permissions and TGREAD) != 0: + result.incl(fpGroupRead) + if (permissions and TGWRITE) != 0: + result.incl(fpGroupWrite) + if (permissions and TGEXEC) != 0: + result.incl(fpGroupExec) + if (permissions and TOREAD) != 0: + result.incl(fpOthersRead) + if (permissions and TOWRITE) != 0: + result.incl(fpOthersWrite) + if (permissions and TOEXEC) != 0: + result.incl(fpOthersExec) proc verifyPathIsSafeToExtract*(path: string) = if path.isAbsolute(): @@ -324,8 +389,10 @@ # Runtime check if SSE 4.1 and PCLMULQDQ are available proc cpuid*(eaxi, ecxi: int32): tuple[eax, ebx, ecx, edx: int32] = when defined(vcc): - proc cpuid(cpuInfo: ptr int32, functionId, subFunctionId: int32) - {.cdecl, importc: "__cpuidex", header: "intrin.h".} + proc cpuid( + cpuInfo: ptr int32, functionId, subFunctionId: int32 + ) {.cdecl, importc: "__cpuidex", header: "intrin.h".} + cpuid(result.eax.addr, eaxi, ecxi) else: var (eaxr, ebxr, ecxr, edxr) = (0'i32, 0'i32, 0'i32, 0'i32) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/lz77.nim --- a/semicongine/thirdparty/zippy/zippy/lz77.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/lz77.nim Thu Aug 22 18:32:21 2024 +0700 @@ -8,14 +8,13 @@ {.push checks: off.} proc encodeLz77*( - encoding: var seq[uint16], - ep: var int, - config: CompressionConfig, - metadata: var BlockMetadata, - src: ptr UncheckedArray[uint8], - blockStart, blockLen: int + encoding: var seq[uint16], + ep: var int, + config: CompressionConfig, + metadata: var BlockMetadata, + src: ptr UncheckedArray[uint8], + blockStart, blockLen: int, ) = - template addLiteral(start, length: int) = for i in 0 ..< length: inc metadata.litLenFreq[src[start + i]] @@ -60,7 +59,7 @@ literalLen: int hash: uint32 windowPos: uint16 - head = newSeq[uint16](hashSize) # hash -> pos + head = newSeq[uint16](hashSize) # hash -> pos chain = newSeq[uint16](maxWindowSize) # pos a -> pos b template hash4(start: int): uint32 = diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/snappy.nim --- a/semicongine/thirdparty/zippy/zippy/snappy.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/snappy.nim Thu Aug 22 18:32:21 2024 +0700 @@ -10,12 +10,12 @@ {.push checks: off.} proc encodeFragment( - encoding: var seq[uint16], - metadata: var BlockMetadata, - src: ptr UncheckedArray[uint8], - ep: var int, - start, bytesToRead: int, - compressTable: var array[maxCompressTableSize, uint16] + encoding: var seq[uint16], + metadata: var BlockMetadata, + src: ptr UncheckedArray[uint8], + ep: var int, + start, bytesToRead: int, + compressTable: var array[maxCompressTableSize, uint16], ) = let ipEnd = start + bytesToRead var @@ -136,11 +136,11 @@ emitRemainder() proc encodeSnappy*( - encoding: var seq[uint16], - ep: var int, - metadata: var BlockMetadata, - src: ptr UncheckedArray[uint8], - blockStart, blockLen: int + encoding: var seq[uint16], + ep: var int, + metadata: var BlockMetadata, + src: ptr UncheckedArray[uint8], + blockStart, blockLen: int, ) = metadata.litLenFreq[256] = 1 # Alway 1 end-of-block symbol @@ -151,15 +151,7 @@ let fragmentSize = blockStart + blockLen - pos bytesToRead = min(fragmentSize, maxWindowSize) - encodeFragment( - encoding, - metadata, - src, - ep, - pos, - bytesToRead, - compressTable - ) + encodeFragment(encoding, metadata, src, ep, pos, bytesToRead, compressTable) pos += bytesToRead when defined(release): diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/ziparchives.nim --- a/semicongine/thirdparty/zippy/zippy/ziparchives.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/ziparchives.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,5 +1,16 @@ -import common, crc, internal, std/memfiles, std/os, std/strutils, std/tables, - std/times, std/unicode, ziparchives_v1, ../zippy, std/sequtils +import + common, + crc, + internal, + std/memfiles, + std/os, + std/strutils, + std/tables, + std/times, + std/unicode, + ziparchives_v1, + ../zippy, + std/sequtils export common, ziparchives_v1 @@ -14,7 +25,8 @@ type ZipArchiveRecordKind = enum - FileRecord, DirectoryRecord + FileRecord + DirectoryRecord ZipArchiveRecord = object kind: ZipArchiveRecordKind @@ -37,9 +49,8 @@ yield record.path proc extractFile*( - reader: ZipArchiveReader, path: string + reader: ZipArchiveReader, path: string ): string {.raises: [ZippyError].} = - template failNoFileRecord() = raise newException(ZippyError, "No file record found for " & path) @@ -76,7 +87,7 @@ if pos + record.compressedSize > reader.memFile.size: failArchiveEOF() - case record.kind: + case record.kind of FileRecord: if compressionMethod == 0: # No compression if record.compressedSize > 0: @@ -105,41 +116,154 @@ years = ((date shr 9) and 0b0000000001111111).int if seconds <= 59 and minutes <= 59 and hours <= 23: result = initDateTime( - days.MonthdayRange, - months.Month, - years + 1980, - hours.HourRange, - minutes.MinuteRange, - seconds.SecondRange, - local() - ).toTime() + days.MonthdayRange, + months.Month, + years + 1980, + hours.HourRange, + minutes.MinuteRange, + seconds.SecondRange, + local(), + ) + .toTime() proc utf8ify(fileName: string): string = const cp437AfterAscii = [ # 0x80 - 0x8f - 0x00c7.uint32, 0x00fc, 0x00e9, 0x00e2, 0x00e4, 0x00e0, 0x00e5, 0x00e7, - 0x00ea, 0x00eb, 0x00e8, 0x00ef, 0x00ee, 0x00ec, 0x00c4, 0x00c5, + 0x00c7.uint32, + 0x00fc, + 0x00e9, + 0x00e2, + 0x00e4, + 0x00e0, + 0x00e5, + 0x00e7, + 0x00ea, + 0x00eb, + 0x00e8, + 0x00ef, + 0x00ee, + 0x00ec, + 0x00c4, + 0x00c5, # 0x90 - 0x9f - 0x00c9, 0x00e6, 0x00c6, 0x00f4, 0x00f6, 0x00f2, 0x00fb, 0x00f9, - 0x00ff, 0x00d6, 0x00dc, 0x00a2, 0x00a3, 0x00a5, 0x20a7, 0x0192, + 0x00c9, + 0x00e6, + 0x00c6, + 0x00f4, + 0x00f6, + 0x00f2, + 0x00fb, + 0x00f9, + 0x00ff, + 0x00d6, + 0x00dc, + 0x00a2, + 0x00a3, + 0x00a5, + 0x20a7, + 0x0192, # 0xa0 - 0xaf - 0x00e1, 0x00ed, 0x00f3, 0x00fa, 0x00f1, 0x00d1, 0x00aa, 0x00ba, - 0x00bf, 0x2310, 0x00ac, 0x00bd, 0x00bc, 0x00a1, 0x00ab, 0x00bb, + 0x00e1, + 0x00ed, + 0x00f3, + 0x00fa, + 0x00f1, + 0x00d1, + 0x00aa, + 0x00ba, + 0x00bf, + 0x2310, + 0x00ac, + 0x00bd, + 0x00bc, + 0x00a1, + 0x00ab, + 0x00bb, # 0xb0 - 0xbf - 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, - 0x2555, 0x2563, 0x2551, 0x2557, 0x255d, 0x255c, 0x255b, 0x2510, + 0x2591, + 0x2592, + 0x2593, + 0x2502, + 0x2524, + 0x2561, + 0x2562, + 0x2556, + 0x2555, + 0x2563, + 0x2551, + 0x2557, + 0x255d, + 0x255c, + 0x255b, + 0x2510, # 0xc0 - 0xcf - 0x2514, 0x2534, 0x252c, 0x251c, 0x2500, 0x253c, 0x255e, 0x255f, - 0x255a, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256c, 0x2567, + 0x2514, + 0x2534, + 0x252c, + 0x251c, + 0x2500, + 0x253c, + 0x255e, + 0x255f, + 0x255a, + 0x2554, + 0x2569, + 0x2566, + 0x2560, + 0x2550, + 0x256c, + 0x2567, # 0xd0 - 0xdf - 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256b, - 0x256a, 0x2518, 0x250c, 0x2588, 0x2584, 0x258c, 0x2590, 0x2580, + 0x2568, + 0x2564, + 0x2565, + 0x2559, + 0x2558, + 0x2552, + 0x2553, + 0x256b, + 0x256a, + 0x2518, + 0x250c, + 0x2588, + 0x2584, + 0x258c, + 0x2590, + 0x2580, # 0xd0 - 0xdf - 0x03b1, 0x00df, 0x0393, 0x03c0, 0x03a3, 0x03c3, 0x00b5, 0x03c4, - 0x03a6, 0x0398, 0x03a9, 0x03b4, 0x221e, 0x03c6, 0x03b5, 0x2229, + 0x03b1, + 0x00df, + 0x0393, + 0x03c0, + 0x03a3, + 0x03c3, + 0x00b5, + 0x03c4, + 0x03a6, + 0x0398, + 0x03a9, + 0x03b4, + 0x221e, + 0x03c6, + 0x03b5, + 0x2229, # 0xf0 - 0xff - 0x2261, 0x00b1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00f7, 0x2248, - 0x00b0, 0x2219, 0x00b7, 0x221a, 0x207f, 0x00b2, 0x25a0, 0x00a0 + 0x2261, + 0x00b1, + 0x2265, + 0x2264, + 0x2320, + 0x2321, + 0x00f7, + 0x2248, + 0x00b0, + 0x2219, + 0x00b7, + 0x221a, + 0x207f, + 0x00b2, + 0x25a0, + 0x00a0, ] if validateUtf8(fileName) == -1: @@ -167,8 +291,7 @@ dec result proc findStartOfCentralDirectory( - reader: ZipArchiveReader, - start, numRecordEntries: int + reader: ZipArchiveReader, start, numRecordEntries: int ): int = let src = cast[ptr UncheckedArray[uint8]](reader.memFile.mem) @@ -184,7 +307,7 @@ dec result proc openZipArchive*( - zipPath: string + zipPath: string ): ZipArchiveReader {.raises: [IOError, OSError, ZippyError].} = result = ZipArchiveReader() result.memFile = memfiles.open(zipPath) @@ -224,9 +347,9 @@ raise newException(ZippyError, "Invalid central directory file header") # let - # endOfCentralDirectorySize = read64(src, pos + 4).int - # versionMadeBy = read16(src, pos + 12) - # minVersionToExtract = read16(src, pos + 14) + # endOfCentralDirectorySize = read64(src, pos + 4).int + # versionMadeBy = read16(src, pos + 12) + # minVersionToExtract = read16(src, pos + 14) diskNumber = read32(src, pos + 16).int startDisk = read32(src, pos + 20).int numRecordsOnDisk = read64(src, pos + 24).int @@ -383,7 +506,7 @@ compressedSize: compressedSize, uncompressedSize: uncompressedSize, uncompressedCrc32: uncompressedCrc32, - filePermissions: parseFilePermissions(externalFileAttr.int shr 16) + filePermissions: parseFilePermissions(externalFileAttr.int shr 16), ) except IOError as e: result.close() @@ -395,9 +518,7 @@ result.close() raise e -proc extractAll*( - zipPath, dest: string -) {.raises: [IOError, OSError, ZippyError].} = +proc extractAll*(zipPath, dest: string) {.raises: [IOError, OSError, ZippyError].} = ## Extracts the files stored in archive to the destination directory. ## The path to the destination directory must exist. ## The destination directory itself must not exist (it is not overwitten). @@ -421,7 +542,7 @@ try: # Create the directories and write the extracted files for _, record in reader.records: - case record.kind: + case record.kind of DirectoryRecord: createDir(dest / record.path) of FileRecord: @@ -455,9 +576,8 @@ when (NimMajor, NimMinor, NimPatch) >= (1, 6, 0): # For some reason `sink Table | OrderedTable` does not work, so work around: template createZipArchiveImpl( - entries: var Table[string, string] | var OrderedTable[string, string] + entries: var Table[string, string] | var OrderedTable[string, string] ) = - proc add16(dst: var string, v: int16 | uint16) = dst.setLen(dst.len + 2) var tmp = v @@ -527,13 +647,18 @@ compressed = compress(contents, BestSpeed, dfDeflate) compressionMethod = 8 - records.add((fileName, ArchiveEntry( - fileHeaderOffset: result.len, - uncompressedLen: uncompressedLen, - compressedLen: compressed.len, - compressionMethod: compressionMethod, - uncompressedCrc32: uncompressedCrc32 - ))) + records.add( + ( + fileName, + ArchiveEntry( + fileHeaderOffset: result.len, + uncompressedLen: uncompressedLen, + compressedLen: compressed.len, + compressionMethod: compressionMethod, + uncompressedCrc32: uncompressedCrc32, + ), + ) + ) result.add32(fileHeaderSignature) result.add16(45) # Min version to extract @@ -558,9 +683,7 @@ if compressed != "": result.setLen(result.len + compressed.len) copyMem( - result[result.len - compressed.len].addr, - compressed.cstring, - compressed.len + result[result.len - compressed.len].addr, compressed.cstring, compressed.len ) let centralDirectoryStart = result.len @@ -583,7 +706,8 @@ result.add16(0) # Disk number where file starts result.add16(0) # Internal file attributes result.add32(0) # External file attributes - result.add32(uint32.high) # Relative offset of local file header (or 0xffffffff for ZIP64) + result.add32(uint32.high) + # Relative offset of local file header (or 0xffffffff for ZIP64) result.add(records[i][0]) @@ -614,18 +738,22 @@ result.add32(endOfCentralDirectorySignature) result.add16(0) # Number of this disk result.add16(0) # Disk where central directory starts - result.add16(uint16.high) # Number of central directory records on this disk (or 0xffff for ZIP64) - result.add16(uint16.high) # Total number of central directory records (or 0xffff for ZIP64) - result.add32(uint32.high) # Size of central directory (bytes) (or 0xffffffff for ZIP64) - result.add32(uint32.high) # Offset of start of central directory, relative to start of archive (or 0xffffffff for ZIP64) + result.add16(uint16.high) + # Number of central directory records on this disk (or 0xffff for ZIP64) + result.add16(uint16.high) + # Total number of central directory records (or 0xffff for ZIP64) + result.add32(uint32.high) + # Size of central directory (bytes) (or 0xffffffff for ZIP64) + result.add32(uint32.high) + # Offset of start of central directory, relative to start of archive (or 0xffffffff for ZIP64) result.add16(0) proc createZipArchive*( - entries: sink Table[string, string] + entries: sink Table[string, string] ): string {.raises: [ZippyError].} = createZipArchiveImpl(entries) proc createZipArchive*( - entries: sink OrderedTable[string, string] + entries: sink OrderedTable[string, string] ): string {.raises: [ZippyError].} = createZipArchiveImpl(entries) diff -r df3c075e5dea -r 966032c7a3aa semicongine/thirdparty/zippy/zippy/ziparchives_v1.nim --- a/semicongine/thirdparty/zippy/zippy/ziparchives_v1.nim Thu Aug 22 18:31:59 2024 +0700 +++ b/semicongine/thirdparty/zippy/zippy/ziparchives_v1.nim Thu Aug 22 18:32:21 2024 +0700 @@ -1,5 +1,13 @@ -import common, crc, internal, std/os, std/streams, std/strutils, std/tables, - std/times, ../zippy +import + common, + crc, + internal, + std/os, + std/streams, + std/strutils, + std/tables, + std/times, + ../zippy export common @@ -10,7 +18,8 @@ type EntryKind* = enum - ekFile, ekDirectory + ekFile + ekDirectory ArchiveEntry* = object kind*: EntryKind @@ -27,7 +36,7 @@ ArchiveEntry(kind: ekDirectory) for kind, path in walkDir(base / relative, relative = true): - case kind: + case kind of pcFile: archive.contents[(relative / path).toUnixPath()] = ArchiveEntry( kind: ekFile, @@ -41,25 +50,24 @@ discard proc addDir*( - archive: ZipArchive, dir: string + archive: ZipArchive, dir: string ) {.raises: [IOError, OSError, ZippyError].} = ## Recursively adds all of the files and directories inside dir to archive. if splitFile(dir).ext.len > 0: raise newException( - ZippyError, - "Error adding dir " & dir & " to archive, appears to be a file?" + ZippyError, "Error adding dir " & dir & " to archive, appears to be a file?" ) let (head, tail) = splitPath(dir) archive.addDir(head, tail) proc addFile*( - archive: ZipArchive, path: string + archive: ZipArchive, path: string ) {.raises: [IOError, OSError, ZippyError].} = ## Adds a single file to the archive. let fileInfo = getFileInfo(path) - case fileInfo.kind: + case fileInfo.kind of {pcFile, pcLinkToFile}: archive.contents[path.extractFilename] = ArchiveEntry( kind: ekFile, @@ -70,7 +78,7 @@ else: raise newException( ZippyError, - "Error adding file " & path & " to archive, appears to be a directory?" + "Error adding file " & path & " to archive, appears to be a directory?", ) proc clear*(archive: ZipArchive) {.raises: [].} = @@ -92,15 +100,24 @@ result.incl fpGroupWrite result.incl fpOthersRead else: - if (permissions and 0o00400) != 0: result.incl fpUserRead - if (permissions and 0o00200) != 0: result.incl fpUserWrite - if (permissions and 0o00100) != 0: result.incl fpUserExec - if (permissions and 0o00040) != 0: result.incl fpGroupRead - if (permissions and 0o00020) != 0: result.incl fpGroupWrite - if (permissions and 0o00010) != 0: result.incl fpGroupExec - if (permissions and 0o00004) != 0: result.incl fpOthersRead - if (permissions and 0o00002) != 0: result.incl fpOthersWrite - if (permissions and 0o00001) != 0: result.incl fpOthersExec + if (permissions and 0o00400) != 0: + result.incl fpUserRead + if (permissions and 0o00200) != 0: + result.incl fpUserWrite + if (permissions and 0o00100) != 0: + result.incl fpUserExec + if (permissions and 0o00040) != 0: + result.incl fpGroupRead + if (permissions and 0o00020) != 0: + result.incl fpGroupWrite + if (permissions and 0o00010) != 0: + result.incl fpGroupExec + if (permissions and 0o00004) != 0: + result.incl fpOthersRead + if (permissions and 0o00002) != 0: + result.incl fpOthersWrite + if (permissions and 0o00001) != 0: + result.incl fpOthersExec proc openStreamImpl*(archive: ZipArchive, stream: Stream) = let data = stream.readAll() # TODO: actually treat as a stream @@ -116,7 +133,7 @@ failEOF() let signature = read32(data, pos) - case signature: + case signature of 0x04034b50: # Local file header if pos + 30 > data.len: failEOF() @@ -136,16 +153,11 @@ pos += 30 # Move to end of fixed-size entries if (generalPurposeFlag and 0b100) != 0: - raise newException( - ZippyError, - "Unsupported zip archive, data descriptor bit set" - ) + raise + newException(ZippyError, "Unsupported zip archive, data descriptor bit set") if (generalPurposeFlag and 0b1000) != 0: - raise newException( - ZippyError, - "Unsupported zip archive, uses deflate64" - ) + raise newException(ZippyError, "Unsupported zip archive, uses deflate64") # echo minVersionToExtract # echo generalPurposeFlag @@ -169,19 +181,19 @@ var lastModified: times.Time if seconds <= 59 and minutes <= 59 and hours <= 23: lastModified = initDateTime( - days.MonthdayRange, - months.Month, - years + 1980, - hours.HourRange, - minutes.MinuteRange, - seconds.SecondRange, - local() - ).toTime() + days.MonthdayRange, + months.Month, + years + 1980, + hours.HourRange, + minutes.MinuteRange, + seconds.SecondRange, + local(), + ) + .toTime() if compressionMethod notin [0.uint16, 8]: raise newException( - ZippyError, - "Unsupported zip archive compression method " & $compressionMethod + ZippyError, "Unsupported zip archive compression method " & $compressionMethod ) if pos + fileNameLength + extraFieldLength > data.len: @@ -207,23 +219,17 @@ if crc32(uncompressed) != uncompressedCrc32: raise newException( - ZippyError, - "Verifying archive entry " & fileName & " CRC-32 failed" + ZippyError, "Verifying archive entry " & fileName & " CRC-32 failed" ) if uncompressed.len != uncompressedSize: raise newException( - ZippyError, - "Unexpected error verifying " & fileName & " uncompressed size" + ZippyError, "Unexpected error verifying " & fileName & " uncompressed size" ) archive.contents[fileName.toUnixPath()] = - ArchiveEntry( - contents: uncompressed, - lastModified: lastModified, - ) + ArchiveEntry(contents: uncompressed, lastModified: lastModified) pos += compressedSize - of 0x02014b50: # Central directory header if pos + 46 > data.len: failEOF() @@ -291,7 +297,6 @@ archive.contents[fileName].permissions = externalFileAttr.extractPermissions() except KeyError: failOpen() - of 0x06054b50: # End of central directory record if pos + 22 > data.len: failEOF() @@ -324,20 +329,20 @@ # echo comment break - else: failOpen() when (NimMajor, NimMinor, NimPatch) >= (1, 4, 0): proc open*( - archive: ZipArchive, stream: Stream + archive: ZipArchive, stream: Stream ) {.raises: [IOError, OSError, ZippyError].} = ## Opens the zip archive from a stream and reads its contents into ## archive.contents (clears any existing archive.contents entries). openStreamImpl(archive, stream) + else: proc open*( - archive: ZipArchive, stream: Stream + archive: ZipArchive, stream: Stream ) {.raises: [Defect, IOError, OSError, ZippyError].} = ## Opens the zip archive from a stream and reads its contents into ## archive.contents (clears any existing archive.contents entries). @@ -369,7 +374,7 @@ (lastModifiedTime, lastModifiedDate) proc writeZipArchive*( - archive: ZipArchive, path: string + archive: ZipArchive, path: string ) {.raises: [IOError, ZippyError].} = ## Writes archive.contents to a zip file at path. @@ -459,7 +464,7 @@ data.add([0.uint8, 0]) # Internal file attrib # External file attrib - case entry.kind: + case entry.kind of ekDirectory: data.add([0x10.uint8, 0, 0, 0]) of ekFile: @@ -486,44 +491,39 @@ writeFile(path, cast[string](data)) proc extractAll*( - archive: ZipArchive, dest: string + archive: ZipArchive, dest: string ) {.raises: [IOError, OSError, ZippyError].} = ## Extracts the files stored in archive to the destination directory. ## The path to the destination directory must exist. ## The destination directory itself must not exist (it is not overwitten). if dirExists(dest): - raise newException( - ZippyError, "Destination " & dest & " already exists" - ) + raise newException(ZippyError, "Destination " & dest & " already exists") let (head, tail) = splitPath(dest) if tail != "" and not dirExists(head): - raise newException( - ZippyError, "Path to destination " & dest & " does not exist" - ) + raise newException(ZippyError, "Path to destination " & dest & " does not exist") # Ensure we only raise exceptions we handle below proc writeContents( - archive: ZipArchive, dest: string + archive: ZipArchive, dest: string ) {.raises: [IOError, OSError, ZippyError].} = for path, entry in archive.contents: if path.isAbsolute(): raise newException( - ZippyError, - "Extracting absolute paths is not supported (" & path & ")" + ZippyError, "Extracting absolute paths is not supported (" & path & ")" ) if path.startsWith("../") or path.startsWith(r"..\"): raise newException( ZippyError, - "Extracting paths starting with `..` is not supported (" & path & ")" + "Extracting paths starting with `..` is not supported (" & path & ")", ) if "/../" in path or r"\..\" in path: raise newException( ZippyError, - "Extracting paths containing `/../` is not supported (" & path & ")" + "Extracting paths containing `/../` is not supported (" & path & ")", ) - case entry.kind: + case entry.kind of ekDirectory: createDir(dest / path) of ekFile: @@ -546,7 +546,7 @@ raise e proc createZipArchive*( - source, dest: string + source, dest: string ) {.raises: [IOError, OSError, ZippyError].} = ## Creates an archive containing all of the files and directories inside ## source and writes the zip file to dest.